Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Struttura della CPU
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 1
Ing. Giancarlo Iannizzotto
3 – La CPU
La CPU
• La CPU (Central Processing Unit), svolge
tutte le funzioni fondamentali di
processamento dei dati.
• Si compone di una Control Unit (CU),
una ArithmeticLogic Unit (ALU), un
insieme di Registri, un Clock ed un Bus
interno.
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 2
Ing. Giancarlo Iannizzotto
3 – La CPU
La CPU
• Schema a blocchi di una CPU:
ALU clock
Registro di stato C
Accumulatore
BUS U
Registro B
Registro Dati PC
Registro C
Registro Indirizzi IR
Registro …
Registro di stack
Registro Interruzioni
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 3
Ing. Giancarlo Iannizzotto
3 – La CPU
La Control Unit
• Ha la funzione di eseguire le istruzioni in
memoria una alla volta attraverso le fasi:
fetch, decode, execute
Esegui…
Preleva…
Decodifica…
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 4
Ing. Giancarlo Iannizzotto
3 – La CPU
Istruzione
• Istruzione: parola binaria che indica alla CPU
di eseguire una funzione fra quelle disponibili.
• Un' Istruzione è composta da due campi:
Codice Operativo Campo Operandi
Sempre presente. Può non esistere.
Specifica l’operazione da Specifica il valore o la
eseguire tramite un codice posizione in memoria di
numerico univoco uno o più operandi
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 5
Ing. Giancarlo Iannizzotto
3 – La CPU
Fase di Fetch
• La CU preleva un’istruzione dalla memoria.
• Il codice operativo viene copiato nel registro detto
Instruction Register.
Instruction Register
• Il codice operativo indica se è necessario
prelevare zero, uno o due operandi.
• Gli operandi vengono prelevati e copiati nei registri
registri
specificati fra Accumulatore, B, C…
Accumulatore
Area di memorizzazione
temporanea ad alta
velocità di accesso
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 6
Ing. Giancarlo Iannizzotto
3 – La CPU
Fase di Fetch
• L’indirizzo di memoria dal quale la CU
preleva l’istruzione da eseguire è
contenuto nel registro detto Program
Counter (PC).
Counter
• Dopo il fetch, il PC viene aggiornato.
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 7
Ing. Giancarlo Iannizzotto
3 – La CPU
Fase di Decode
• La CU determina il tipo di istruzione che
deve essere eseguita;
• Qualora l’istruzione sia di tipo aritmetico
o logico, viene passata alla ALU.
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 8
Ing. Giancarlo Iannizzotto
3 – La CPU
Fase di Execute
• La CU esegue l’istruzione;
– Se l’istruzione è aritmetica o logica, è stata
eseguita dalla ALU.
• L’esecuzione potrebbe richiedere il
trasferimento del contenuto di un
registro in una locazione di memoria
specificata da un altro registro.
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 9
Ing. Giancarlo Iannizzotto
3 – La CPU
Fase di Execute
• L’esecuzione potrebbe richiedere che il
contenuto del registro PC venga sostituito
con il contenuto di un altro registro.
• Questa operazione comporterà, al
prossimo ciclo, l’esecuzione della
istruzione situata in una locazione di
memoria non consecutiva a quella
appena acceduta (JUMP: salto).
salto
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 10
Ing. Giancarlo Iannizzotto
3 – La CPU
La ALU
• L’Unità Aritmetico/Logica (ALU) esegue le
operazioni di tipo aritmetico o logico sui dati
contenuti nei registri Accumulatore, B, C…
• Il risultato dell’operazione viene
memorizzato nell’Accumulatore.
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 11
Ing. Giancarlo Iannizzotto
3 – La CPU
Il Registro di Stato
• Il Registro di Stato, o Flag Register,
segnala il verificarsi di determinati eventi
durante la esecuzione del programma.
• Ciascun bit del registro è associato ad un
evento la cui occorrenza è segnalata dal
valore assunto dal bit.
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 12
Ing. Giancarlo Iannizzotto
3 – La CPU
Il Registro di Stato
• Ad esempio, un particolare bit a ‘1’
segnala che si è verificata, durante
l’esecuzione dell’ultima operazione
aritmetica, una divisione per zero.
divisione per zero
• Un altro bit segnala, se posto a ‘1’, che
durante l’esecuzione dell’ultima
operazione aritmetico/logica il risultato è
stato ‘0’.
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 13
Ing. Giancarlo Iannizzotto
3 – La CPU
Il Registro di Stato
• I bit del Registro di Stato sono detti
FLAG proprio per la loro funzione di
segnalazione di eventi.
segnalazione
• Altri flag:
– Riporto
– Overflow
– Segno …
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 14
Ing. Giancarlo Iannizzotto
3 – La CPU
Il Clock
• La CPU è una macchina sincrona, il che
macchina sincrona
significa (in breve) che essa necessita di
un segnale periodico che stimoli le sue
componenti a progredire nella
esecuzione.
• Tale segnale funge da “orologio comune”
per tutte le componenti della CPU.
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 15
Ing. Giancarlo Iannizzotto
3 – La CPU
Il Clock
• Il clock genera un segnale periodico a
frequenza molto elevata.
• Il segnale ha un massimo per ogni periodo,
in corrispondenza del quale tutti i dispositivi
si sincronizzano. Tale massimo è spesso
detto “tick”.
• L’esecuzione di una istruzione può
richiedere anche diversi tick (cicli di clock).
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 16
Ing. Giancarlo Iannizzotto
3 – La CPU
Il Clock
• Il segnale di clock può essere fornito o
da un generatore esterno o da un circuito
interno al microprocessore.
• Ciascuna delle operazioni di prelievo
dalla memoria, decodifica ed esecuzione
di un'istruzione richiede un ciclomacchina
ciclomacchina
(alcuni periodi del segnale di clock).
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 17
Ing. Giancarlo Iannizzotto
3 – La CPU
Il Bus
• Il Bus interno della CPU mette in
comunicazione le unità funzionali della
CPU ed è composto di:
– Bus Indirizzi: identifica l’unità da
indirizzare;
– Bus Dati: contiene il dato da trasferire
– Bus di Controllo: specifica l’operazione da
eseguire (lettura o scrittura)
• La CU funge da Bus Master.
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 18
Ing. Giancarlo Iannizzotto
3 – La CPU
I Registri Dati e Indirizzi
• I Registri Dati ed Indirizzi sono utilizzati dalla
CU nelle operazioni di lettura e scrittura dalla
memoria (che avvengono tramite il Bus di
Sistema)
– Il registro Dati contiene il dato che deve essere
depositato o che è stato prelevato dalla memoria;
– Il Registro Indirizzi contiene l’indirizzo della
locazione di memoria da cui prelevare o su cui
depositare il dato.
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 19
Ing. Giancarlo Iannizzotto
3 – La CPU
Lettura dalla memoria
• Ciclo di lettura dalla memoria:
– La CU scrive nel Registro degli Indirizzi l’indirizzo della
locazione;
– La CU segnala sul Control Bus di Sistema che intende
operare una lettura.
– La memoria trasferisce (tramite il Bus Dati di Sistema)
nel Registro Dati il contenuto della locazione.
– Quando il trasferimento è terminato la memoria segnala
tramite il Control Bus di Sistema che la lettura è
avvenuta.
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 20
Ing. Giancarlo Iannizzotto
3 – La CPU
Scrittura in memoria
• Ciclo di scrittura in memoria:
– La CU scrive nel Registro degli Indirizzi l’indirizzo della
locazione;
– La CU scrive nel Registro Dati il valore che vuole scrivere
in memoria
– La CU segnala sul Control Bus di Sistema che intende
operare una scrittura.
– La memoria trasferisce (tramite il Bus Dati di Sistema) il
contenuto del Registro Dati nella locazione.
– Quando il trasferimento è terminato la memoria segnala
tramite il Control Bus di Sistema che la scrittura è
avvenuta.
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 21
Ing. Giancarlo Iannizzotto
3 – La CPU
Interrupt Register
• Il Registro delle Interruzioni (Interrupt
Registro delle Interruzioni
Register) segnala l’eventuale
occorrenza di una condizione di
interruzione.
interruzione
• Le interruzioni sono particolari eventi
per cui il normale flusso di esecuzione
di un programma viene interrotto.
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 22
Ing. Giancarlo Iannizzotto
3 – La CPU
Interrupt
• Quando il registro delle interruzioni
segnala un interrupt, un particolare
indirizzo viene copiato nel registro PC.
• Il precedente valore del PC viene
salvato in una locazione di una
particolare area di memoria detta
STACK, la cui posizione è contenuta nel
STACK
Registro di Stack
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 23
Ing. Giancarlo Iannizzotto
3 – La CPU
Interrupt
• Anche il contenuto degli altri registri
viene salvato nello STACK, in modo da
poter essere recuperato.
• La CPU passa quindi ad eseguire una
sequenza di istruzioni detta Routine di
Gestione delle Interruzioni.
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 24
Ing. Giancarlo Iannizzotto
3 – La CPU
Interrupt
• Quando la procedura di gestione delle
interruzioni termina, il valore del registro
PC che era stato salvato nello STACK
viene ripristinato insieme ai valori degli
altri registri.
• L’esecuzione del programma riprende
così da dove era stata interrotta.
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 25
Ing. Giancarlo Iannizzotto
3 – La CPU
Note
• Il modello di CPU descritto è un modello
realistico ma semplificato e corrisponde
sostanzialmente alla struttura delle CPU
dei primi anni ’80.
• La struttura delle CPU attuali è molto più
complessa, principalmente a causa
dell’introduzione di meccanismi per la
parallelizzazione interna (pipelining).
parallelizzazione interna
Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni 26
Ing. Giancarlo Iannizzotto