Unità di controllo
In questa pagina 6
L'unità di controllo legge il codice operativo (e altri campi) dell'istruzione e genera i segnali di controllo che comandano il datapathMicroarchitettura come realizzazione dell'ISA; elementi del datapath (PC, memoria istruzioni e dati, banco dei registri, ALU, estensione del segno, multiplexer); percorso di un'istruzione aritmetica, di una load, di una store e di un salto; datapath a ciclo singolo e suo periodo di clock; datapath multiciclo.Datapath e microarchitettura →: quali registri leggere e scrivere, che operazione fa l'ALU, se la memoria legge o scrive, quali ingressi scelgono i multiplexer, come si aggiorna il PC.
Micro-operazioni
Ogni fase del Ciclo fetch-executeRegistri PC, IR, MAR e MBR; ciclo dell'istruzione diviso in fetch ed execute; i quattro tipi di operazioni; diagramma degli stati del ciclo con calcolo degli indirizzi degli operandi e controllo delle interruzioni; esempio su una macchina ad accumulatore.Ciclo fetch-execute → è una sequenza di micro-operazioni, trasferimenti elementari tra registri che avvengono in un ciclo di clock. Prelievo:
- :
- : ,
- :
Micro-operazioni senza conflitti (che non usano la stessa risorsa) possono stare nello stesso ciclo.
Segnali per un datapath a ciclo singolo
| Istruzione | RegDst | ALUSrc | MemtoReg | RegWrite | MemRead | MemWrite | Branch | ALUOp |
|---|---|---|---|---|---|---|---|---|
| aritmetica (R) | 1 | 0 | 0 | 1 | 0 | 0 | 0 | dal campo funct |
| load | 0 | 1 | 1 | 1 | 1 | 0 | 0 | somma |
| store | X | 1 | X | 0 | 0 | 1 | 0 | somma |
| salto cond. | X | 0 | X | 0 | 0 | 0 | 1 | sottrazione |
X = indifferente (il valore non conta perché il risultato non viene usato: per la store non si scrive nessun registro). Ogni colonna è una funzione booleana dei bit del codice operativo: è una rete combinatoria (vedi Reti combinatorie e mappe di KarnaughRete combinatoria (uscite funzione dei soli ingressi attuali); mintermini e maxtermini, forme canoniche SOP e POS; mappe di Karnaugh a 3 e 4 variabili con esempi svolti; condizioni di indifferenza; costo e ritardo di una rete a due livelli.Reti combinatorie e mappe di Karnaugh →).
Controllo cablato
I segnali sono prodotti da circuiti logici:
- combinatorio, nel datapath a ciclo singolo (tabella sopra);
- a stati finiti, nel datapath multiciclo: lo stato indica il passo corrente (prelievo, decodifica, …), le uscite sono i segnali del passo e la funzione di stato prossimo dipende dal codice operativo (vedi Reti sequenziali e automi a stati finitiModello di una rete sequenziale sincrona (stato in flip-flop, logica di stato prossimo e di uscita); automi di Moore e di Mealy; procedimento di sintesi con esempio svolto di un riconoscitore della sequenza 11.Reti sequenziali e automi a stati finiti →).
Veloce, ma difficile da progettare e da modificare quando le istruzioni sono molte e complesse. Usato nei processori RISC.
Controllo microprogrammato
Idea (Wilkes, 1951): i segnali di ogni passo sono una parola di bit, la microistruzione, memorizzata in una memoria di controllo (ROM). Ogni istruzione macchina corrisponde a un microprogramma.
Funzionamento: un microsequenziatore con un registro indirizzo di controllo legge una microistruzione, ne manda i bit come segnali al datapath e calcola l'indirizzo della successiva (sequenziale, salto condizionato, oppure salto all'inizio del microprogramma indicato dal codice operativo).
| Formato | Caratteristiche |
|---|---|
| orizzontale | un bit per segnale: molti bit (anche centinaia), massimo parallelismo, nessuna decodifica |
| verticale | segnali codificati in campi (es. 4 bit per scegliere una tra 16 operazioni ALU): microistruzioni corte, serve decodifica, meno parallelismo |
Confronto
| Cablato | Microprogrammato | |
|---|---|---|
| velocità | maggiore | minore (un accesso alla memoria di controllo per passo) |
| progetto e correzione | difficile | semplice: si riscrive il microcodice |
| istruzioni complesse | scomode | naturali |
| uso tipico | RISC (ARM, MIPS) | CISC storici; x86 per le istruzioni più complesse |
Errori tipici
- Pensare che il microcodice sia scritto dal programmatore: fa parte del processore ed è invisibile all'ISA.
- Considerare la tabella dei segnali una rete sequenziale: nel ciclo singolo è puramente combinatoria.
Versione ripasso
Dal codice operativo genera i segnali di controllo del datapathMicroarchitettura come realizzazione dell'ISA; elementi del datapath (PC, memoria istruzioni e dati, banco dei registri, ALU, estensione del segno, multiplexer); percorso di un'istruzione aritmetica, di una load, di una store e di un salto; datapath a ciclo singolo e suo periodo di clock; datapath multiciclo.Datapath e microarchitettura →.
Micro-operazioni e segnali
- Ogni fase del Ciclo fetch-executeRegistri PC, IR, MAR e MBR; ciclo dell'istruzione diviso in fetch ed execute; i quattro tipi di operazioni; diagramma degli stati del ciclo con calcolo degli indirizzi degli operandi e controllo delle interruzioni; esempio su una macchina ad accumulatore.Ciclo fetch-execute → è fatta di trasferimenti tra registri da un ciclo. Prelievo: : ; : , ; : .
- Ciclo singolo (RegDst, ALUSrc, MemtoReg, RegWrite, MemRead, MemWrite, Branch, ALUOp): aritmetica 1, 0, 0, 1, 0, 0, 0, funct; load 0, 1, 1, 1, 1, 0, 0, somma; store X, 1, X, 0, 0, 1, 0, somma; salto X, 0, X, 0, 0, 0, 1, sottrazione (X = indifferente). Sono funzioni booleane del codice operativo: rete combinatoria (Reti combinatorie e mappe di KarnaughRete combinatoria (uscite funzione dei soli ingressi attuali); mintermini e maxtermini, forme canoniche SOP e POS; mappe di Karnaugh a 3 e 4 variabili con esempi svolti; condizioni di indifferenza; costo e ritardo di una rete a due livelli.Reti combinatorie e mappe di Karnaugh →).
Cablato e microprogrammato
- Cablato: circuiti combinatori (ciclo singolo) o a stati finiti (multiciclo, Reti sequenziali e automi a stati finitiModello di una rete sequenziale sincrona (stato in flip-flop, logica di stato prossimo e di uscita); automi di Moore e di Mealy; procedimento di sintesi con esempio svolto di un riconoscitore della sequenza 11.Reti sequenziali e automi a stati finiti →); veloce, difficile da modificare; RISC.
- Microprogrammato (1951): ogni passo è una microistruzione in una memoria di controllo (ROM); ogni istruzione ha un microprogramma; un microsequenziatore ne calcola l'indirizzo successivo. Orizzontale: un bit per segnale, massimo parallelismo. Verticale: segnali codificati in campi, serve decodifica.
- Più lento, ma si corregge riscrivendo il microcodice e rende naturali le istruzioni complesse (CISC, x86).
Errori tipici: il microcodice è invisibile all'ISA; la tabella dei segnali a ciclo singolo è combinatoria, non sequenziale.