Il Processore
Detto anche CPU, sigla di Central Processing Unit - Unità di elaborazione centrale.
Compie la fase di elaborazione, eseguendo un programma (sequenza di istruzioni elementari)
descritto nel linguaggio macchina proprio della CPU.
Tipi di istruzioni (rudimentali):
• lettura/scrittura in memoria,
• istruzioni aritmetiche,
• istruzioni logiche (confronti tra dati),
• istruzioni di salto.
Struttura interna CPU
Unità di controllo: coordina attività CPU
ALU: unità aritmetico-logica, esegue operazioni tra registri
registri: unità di memoria veloci per operazioni aritmetico-logiche (R1, R2 … )
e per usi speciali.
Ecco alcuni dei registri speciali, con la loro denominazione più comune:
PC program counter: contiene indirizzo prossima istruzione
IR instruction register: contiene l'istruzione corrente
PS registro di stato della CPU
MAR indirizzo cella di memoria da leggere/scrivere
MDR contenuto cella di memoria
Program Status Word
Funzionamento della CPU
Il funzionamento della CPU è regolato da un segnale di clock
La CPU esegue in sequenza le istruzioni di un programma.
L’esecuzione di una singola istruzione si compone di tre fasi:
1. lettura dalla memoria centrale dell’istruzione da eseguire (fase di fetch);
2. decodifica (interpretazione) dell’istruzione;
3. esecuzione vera e propria.
Ogni fase di esecuzione richiede più cicli di clock.
Come fa la CPU a conoscere l’indirizzo di memoria dell’istruzione ?
L’indirizzo è scritto nel Program Counter (PC, contatore programma), uno dei registri speciali della
CPU.
All’inizio dell’esecuzione di un programma, l’indirizzo della prima istruzione da eseguire viene
copiato nel PC e ogni volta che la CPU esegue un’istruzione, aggiorna il PC in modo da contenere
l’indirizzo della prossima istruzione da eseguire (l'aggiornamento consiste nel sommare al PC il
numero di byte occupati dall'istruzione).
Fase di fetch – lettura dell’istruzione dalla memoria principale. La CPU richiede la lettura dalla
memoria della cella il cui indirizzo è il valore del PC. Quando riceve dalla memoria l’istruzione, lo
trasferisce nell’Instruction Register (IR, registro istruzioni). Il PC è incrementato di un valore pari al
numero di byte occupati dall’istruzione.
Decodifica – il contenuto di IR è analizzato. Si individua il tipo di operazione e i suoi operandi:
registri generali oppure celle di memoria. In quest’ultimo caso, sarà necessario almeno un altro
accesso in memoria per reperire l’operando.
Esecuzione dell’istruzione – sotto la supervisione dell’unità di controllo. Se indichiamo con A -->
B l’assegnamento a B del valore di A e con Mem(x) la cella di memoria centrale di indirizzo x,
possiamo descrivere la fase di fetch come:
Mem (PC) --> IR
PC+L --> PC
dove L è la lunghezza (in byte) dell’istruzione da eseguire
Esempi tipici di istruzioni di una CPU:
lettura dalla memoria (LOAD): Mem (R3) --> R1
scrittura in memoria (STORE) : R2 --> Mem (R4)
istruzioni aritmetiche: R2+R1 --> R1
istruzioni logiche: R2=0 --> PS[Z]
istruzioni di salto: R3 --> PC
Formato Istruzioni
Un’istruzione della CPU è descritta da una sequenza binaria di lunghezza variabile, di solito da 1 a
8 byte. Tale sequenza si suddivide in porzioni che corrispondono, a partire dal bit più significativo,
al codice relativo all’istruzione (codice operativo) e all’elenco degli eventuali operandi (da 0 a 2).
L’insieme di tutte le sequenze binarie che corrispondono alle istruzioni che una CPU può eseguire
è il linguaggio macchina della CPU