Salta al contenuto
Note per Studenti Unità di controllo

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:

  1. t1t_1: MAR←PC\text{MAR} \leftarrow \text{PC}
  2. t2t_2: MBR←M[MAR]\text{MBR} \leftarrow M[\text{MAR}], PC←PC+4\text{PC} \leftarrow \text{PC} + 4
  3. t3t_3: IR←MBR\text{IR} \leftarrow \text{MBR}

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:

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

Cablato e microprogrammato

Errori tipici: il microcodice è invisibile all'ISA; la tabella dei segnali a ciclo singolo è combinatoria, non sequenziale.

Teoria collegata