vuoi
o PayPal
tutte le volte che vuoi
Unità Centrale - CPU
Unità aritmetico-logica (o ALU);
Unità di controllo;
Registri:
- General purpose;
- Special purpose.
Memoria
Bus, canale di comunicazione che collega tutti i componenti fra loro.
BUS (BINARY UNIT SYSTEM)
- Canale di comunicazione che trasmette informazioni o dati di sistema nella forma di segnali elettrici tra i componenti di un elaboratore elettronico;
- È composto da fili in rame che costituiscono delle connessioni elettriche, ognuna delle quali può trasmettere cifre binarie (0 o 1) in successione, l'insieme delle quali è interpretato dai vari componenti del sistema secondo protocolli prestabiliti (come valore numerico o altro tipo di informazione o controllo).
CPU
- Il compito della CPU è quello di eseguire le istruzioni di un programma presente in memoria centrale o primaria (RAM) dopo aver prelevato dalla memoria secondaria o di massa, dalla ROM, o da altri dispositivi;
- Durante l'esecuzione del programma
La CPU legge o scrive dati in RAM.
Il risultato dell'esecuzione di una istruzione dipende:
- Dall'istruzione stessa
- Dal/i dato/i su cui opera
- Dallo stato interno in cui la CPU stessa si trova
La Central Processing Unit esegue automaticamente le istruzioni del programma regolandone la sequenza.
È composta da vari circuiti, preposti ad eseguire operazioni diverse, che interagiscono tra loro scambiandosi informazioni. La velocità di funzionamento dei circuiti è in generale diversa.
È un dispositivo sincrono: il suo stato cambia ogni volta che riceve un impulso di clock, che costituisce l'orologio del sistema e fornisce la temporizzazione delle operazioni.
Ad ogni impulso di clock la CPU cambia stato: "legge" il suo stato interno (determinato dal contenuto dei registri) e la sequenza di ingresso (determinata dalla istruzione e dati). Produce un nuovo stato "dipendente" dallo stato in cui si trovava.
originariamente.- SET DI ISTRUZIONI DI BASE: Istruzioni aritmetico/logiche - Somma (da cui sottrazione); - Scorrimento (shift). Istruzioni di accesso alla memoria (trasferimento dati) - Trasferimento (copia) di un dato da una locazione di memoria ad un'altra; - Trasferimento da memoria a un registro della CPU (LOAD); - Trasferimento da un registro della CPU a memoria (STORE). Istruzioni di controllo (es. salti condizionati o incondizionati, etc.) - Le operazioni (eccetto quelle di accesso alla memoria) sono eseguite all'interno della ALU e "coordinate" dall'unità di controllo. CLOCK Perché l'esecuzione automatica di un programma avvenga correttamente è necessario che ad ogni circuito che compone la CPU sia indicato il momento esatto in cui può ritenere validi i segnali che riceve in ingresso; Il clock è il segnale che si occupa di questo ed è condiviso tra tutti i circuiti; La frequenza del clock (Hertz oCONCETTO DI PROGRAMMA MEMORIZZATO
Un programma è rappresentato da stringhe di bit e memorizzato in memoria centrale.
La CPU carica dalla memoria le istruzioni (una per volta) e le esegue.
Il programma da eseguire può essere facilmente modificato.
SISTEMA DI NUMERAZIONE
base 2: binario > 0 1
base 8: ottale > 0 1 2 3 4 5 6 7
base 10: decimale > 0 1 2 3 4 5 6 7 8 9
base 16: esadecimale > 0 1 2 3 4 5 6 7 8 9 A B C D E F
ESEMPI
= 1100 = 14 = C1210 2 8 16
= 101010 = 52 = 2A4210 2 8 16
DEFINIZIONI
Istruzioni macchina: istruzione codificata come configurazione (o sequenza) di bit riconosciuta dalla CPU; esempio: 1000101100010000 (binario) 8 B 1 0 (esadec.)
Linguaggio macchina: insieme di tutte le istruzioni riconosciute da una specifica CPU.
LINGUAGGIO MACCHINA
- Reduced Instruction Set Computing (RISC): poche istruzioni semplici, efficienti e veloci.
- Complex Instruction Set Computing (CISC): molte istruzioni, comode da usare e potenti (es. Intel Pentium).
PARTI DI
- ISTRUZIONI MACCHINA:
- ESEMPI DI ISTRUZIONE:
- ALU:
- REGISTRI:
Codice operativo: specifica quale istruzione deve essere eseguita;
Operando: fornisce informazioni su come l'istruzione deve essere eseguita.
L'interpretazione dell'operando dipende dal codice operativo.
DECODIFICA
ESEMPIO
PROGRAMMA IN MEMORIA
ESEMPIO
ARCHITETTURA DI UNA CPU
La ALU (Arithmetic-Logic Unit) è un circuito in grado di eseguire operazioni aritmetiche e logiche su due operandi, rappresentati su n bit (es. 32 o 64 bit); oltre al risultato dell'operazione può produrre informazioni che verranno memorizzate nel registro dei Flag (risultato nullo, risultato positivo/negativo, overflow, etc.);
Il tipo di operazione selezionata, in un dato istante, dipende dallo stato di alcune linee di controllo provenienti dalla Unità di Controllo;
Esiste una unità specializzata per le operazioni in virgola mobile (Floating Point Unit).
Sono dispositivi di memorizzazione che consentono un accesso
REGISTRI E LORO FUNZIONI
Registri accumulatori: sono uno o più di uno, integrati alla ALU, che vi puòoperare direttamente; mantengono risultati temporanei;
Registro di stato (Flag): contiene informazioni che globalmente determinano, inogni istante, lo stato dell'unità centrale;
Program Counter (PC): contiene l'indirizzo della cella di memoria contenente laprossima istruzione da eseguire;
Registro puntatore allo stack (Stack Pointer): lo stack è un insieme di celle dimemoria che può essere acceduto in modalità LIFO (Last-In-First-Out); la posizione in cui
si trova l'elemento inserito per ultimo è la testa dello stack, che viene puntata dal registro SP; lo stack è organizzato in modo da crescere verso indirizzi decrescenti: SP viene decrementato ad ogni nuova immissione (push) ed incrementato ad ogni prelievo (pop).
REGISTRO DEI FLAG (O REGISTRO DI STATO)
- CF: Carry Flag o flag del riporto. Indica se l'operazione effettuata ha prodotto un risultato non contenibile nello spazio predisposto. Per esempio, se si effettua una operazione a 16 bit, indica il riporto al 17-esimo bit;
- OF: Overflow Flag. Indica se nell'operazione effettuata si è verificato un errore di overflow (risultato non rappresentabile nello spazio predisposto);
- IF: Interrupt Flag. Abilita o disabilita le interruzioni. Ogni volta che è terminato un ciclo di fetch-decode-execute il processore può essere interrotto da una periferica; interruzione che non si può accettare durante le tre fasi che comportano
L'esecuzione di una istruzione è chedevono essere eseguite, anche se prevedono diversi accessi in memoria, come se fosse un' unica operazione. Un interrupt da parte di una periferica comporta, se accettato, che la Control Unit conservi lo stato del programma attualmente in esecuzione (il contenuto del PC e dei registri generali) in una apposita area di memoria (lo Stack di sistema), carichinel PC l'indirizzo del programma di servizio dell'interruzione e, alla fine di questo, ripristini dallo stack i registri, in modo da continuare l'esecuzione del programma sospeso.
- ZF: Zero Flag. Indica se il risultato dell'operazione effettuata è stato nullo.
- SF: Sign Flag. indica il segno del risultato di una operazione.
CODICE DI ESECUZIONE DI UN'ISTRUZIONE
La memoria (ROM e RAM) contiene il programma e i dati sui quali opera la CPU.
Il Program Counter (PC) contiene l'indirizzo della cella di memoria contenete la prossima istruzione da eseguire.
PROGRAM
nte una sequenza di istruzioni, chiamata programma, che viene memorizzata in memoria. Durante l'esecuzione del programma, il processore esegue un ciclo di istruzioni che comprende tre fasi principali: fetch, decode ed execute. Durante la fase di fetch, il processore recupera l'istruzione successiva dal programma, utilizzando il Program Counter (PC) per determinare l'indirizzo di memoria corrispondente. L'istruzione viene quindi caricata nell'Instruction Register (IR), che la conterrà durante le fasi successive. Nella fase di decode, il processore analizza l'istruzione presente nell'Instruction Register per determinare quale operazione deve essere eseguita e quali dati devono essere utilizzati. Questa fase coinvolge la decodifica dell'istruzione e la preparazione dei dati necessari per l'esecuzione. Infine, nella fase di execute, il processore esegue effettivamente l'operazione specificata dall'istruzione. Questa fase può coinvolgere l'accesso alla memoria, il calcolo di operazioni aritmetiche o logiche, l'aggiornamento dei registri e altre operazioni necessarie per completare l'istruzione. Il ciclo di fetch-decode-execute viene ripetuto iterativamente fino a quando non vengono eseguite tutte le istruzioni del programma. Durante questo processo, il Program Counter viene aggiornato per puntare all'indirizzo della prossima istruzione da eseguire, consentendo al processore di avanzare nel programma. In conclusione, il ciclo di fetch-decode-execute è il meccanismo principale attraverso il quale un processore esegue le istruzioni di un programma, garantendo l'esecuzione sequenziale delle istruzioni e il corretto funzionamento del computer.