Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
(Modulo B)
Lezione 5
Costruire un processore
Luca Manzoni
Cosa abbiamo
E cosa ci manca
• Ci servono poi tanti input e tanti output quanti sono i bit che
vogliamo salvare
D0 Q0
D1 Q1
D2 Q2
D3 Q3
D4 Q4
D5 Q5
D6 Q6 Questo bit viene usato per
D7 Q7 decidere se salvare il
valore fornito in input nel registro
Il clock viene poi distribuito CK
a tutti i ip op di cui è EN
composto il registro
Clock Enable
fl
fl
fi
Registro: come possiamo usarlo?
Salvare il risultato della somma
D0 Q0
Primo D1 Q1
operando
D2 Q2
D3 Q3
Adder D4 Q4
D5 Q5
Secondo D6 Q6
operando D7 Q7
CK
EN
Carry out
Clock Enable
Registri multipli
E scegliere dove salvare
Registro 0
Registro 1
Registro 2 Output
Input
Registro 0
Registro 1
Input Output
Registro 2 Possiamo abilitare o
disabilitare la lettura dell’output
con un bit aggiuntivo
Registro 3 (read enable)
Un demultiplexer ci permette di inviare il bit che Write Enable Indirizzo Read Enable
abilita la scrittura solamente a un registro:
tutti gli altri ignoreranno l’input
La dimensione (numero di bit) dell’indirizzo dipenderà
dal numero di registri che abbiamo a disposizione.
In generale il logaritmo in base 2 del numero di registri
Breve digressione sulla memoria
Memoria: un solo input e output
Data Bus
Read Enable
Data Bus
Write Enable Indirizzo
Multiplier
Output
Input A
Multiplier
Output
Operando A Risultato
ALU Condition
Operando B
codes
Opcode
Opcode
…e altre operazioni possibili
fl
Istruzioni e
Program counter
Proviamo a mettere assieme
Memoria e ALU
Nota: questa memoria è una unica solo rappresentata
gra camente in tre parti
Memoria Memoria
Operando A Risultato
ALU Condition
Operando B codes
Memoria
Opcode Indirizzo
del risultato
Indirizzo
dell’operando B
Indirizzo Ma cosa ci fornisce tutti questi bit per sapere che
operazioni eseguire, dove recuperare gli operandi e
dell’operando A dove salvare il risultato?
fi
Istruzioni
E dare comandi al processore
• Una memoria (da cui dovremo reperire sia dati che istruzioni)
• Un program counter
• Un instruction register per salvarsi l’istruzioni da eseguire dopo
averla letta dalla memoria
fi
Struttura di un processore
Versione sempli cata
Data bus
Address bus
Program counter
Register File
Selezione
dell’operando A
ALU
Ognuno dei multiplexer, ognuno Condition code
dei registri e memoria e la ALU Selezione register
hanno sei segnali di controllo dell’operando B
fi
Quanto stiamo semplificando?
Hint: moltissimo
• Possono esserci più unità (adder, multiplier, etc) per eseguire più
operazioni in contemporanea
• …
fi
fl
Materiale di lettura
Approfondimento e studio per interesse personale
Mostra come costruire un (semplice) computer a partire da zero.
Libro di testo del famoso corso denominato “Nand2Tetris”, il cui scopo è la costruzione
di un intero computer, il corrispondente compilatore no ad arrivare a programmi applicativi
fi