I bistabili ed il register file Prof. Alberto Borghese ipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/32 Sommario I problemi dei latch trasparenti sincroni I bistabili I registri ed il register file 2/32
Latch e Bistabili I latch sono dispositivi trasparenti: quando il clock è alto, il valore di viene riportato in uscita, =. Per tutto il tempo in cui il clock è attivo, l uscita è collegata all ingresso. ual è il problema? A noi interessa memorizzare l informazione al termine di un (semi)periodo di clock. 3/32 Sincronizzazione CPU FF ecod Exec R/W WB Il cancello viene inserito solamente in alcuni punti dell architettura. In questi punti si sincronizza l attività. Gangli di sincronizzazione. 4/32
Problemi con i latch sincroni I = 3 3 = 2 2 = 1 1 = U Registro a scorrimento (shift register o barrel shifter). Un unico ingresso I e un unica uscita U. In presenza di un segnale attivo (clock alto), il contenuto viene spostato verso dx di una posizione. Il valore contenuto nell elemento più a dx dove va? ual è il problema con l utilizzo dei latch? 5/32 Shift register con i latch (trasparenti sincroni) I = 3 3 = 2 2 = 1 1 = U I 3 2 1 =U 6/32 3 τ 3 τ 3 τ
Sommario I problemi dei latch trasparenti sincroni I bistabili I registri ed il register file 7/32 Bistabili ispositivi attivi sul fronte (di salita o discesa) del clock (edge sensitive): il loro stato (uscita) può commutare solo in corrispondenza della transizione alto->basso o basso->alto del clock. master master slave = slave slave Configurazione Master-Slave 8/32
Funzionamento dei bistabili (flip-flop) Flip m m m m m m 9/32 Funzionamento dei bistabili (flip) m Flip m m m 10/32 t
Funzionamento dei bistabili (Flop) Flip m Flop m m m m 11/32 t m Ritardo globale: 3 τ misurato a partire dal fronte di discesa. emporizzazione dei bistabili m Flip Flop m m m m m m E attivo su quale fronte? 12/32 t
Shift register con i bistabili I= 3 =>0 s 3 = 2 s 2 = 1 s 1 = U 1 0 1 I 3 = s 3 m 3 m 2 s 2 U = s 1 13/32 3 τ 3 τ Struttura di un circuito sequenziale Flip-flop Logica combinatoria Flip-flop Pone dei problemi di sincronizzazione: la logica combinatoria deve terminare la commutazione in tempo utile. 14/32
emporizzazione di un circuito sequenziale Flip-flop Logica combinatoria Flip-flop La logica ha tempo sufficiente per completare la commutazione. Il periodo di clock è tale, per cui la commutazione del clock avviene dopo che la logica combinatoria ha terminato tutte le commutazioni. Il tempo necessario alla logica combinatoria per commutare è tempo associato al cammino critico. Il clock arriva contemporaneamente a tutti i dispositivi sincronizzati. 15/32 emporizzazione: problemi Flip-flop Logica combinatoria Flip-flop L input deve essere stabile intorno alla commutazione del clock: empo di setup: è il tempo minimo per cui deve rimanere stabile l input prima del fronte di clock. empo di hold: è il tempo minimo per cui deve rimanere stabile l input dopo il fronte di clock (solitamente trascurabile). empo di set-up empo di hold 16/32 t
emporizzazione: Come si dimensiona il clock > k * (t p + t c + t s + t w ) Flip-flop Logica combinatoria Flip-flop empo di propagazione: è il tempo necessario per propagare il segnale dall uscita slave alla logica combinatoria (t p ). empo di skew: ritardo massimo del clock (t w ). empo di propagazione (t p ) (> empo di hold) empo di set-up (t s ) empo di hold (t h ) empo logica combinatoria (t c ) 17/32 t I bistabili: riassunto Semplici elementi di memoria (1 bit) I latch possono essere asincroni o sincroni. La differenza tra latch e flip-flop sta nel fatto che nel primo, lo stato può cambiare (anche più volte) se il clock è alto, mentre nel secondo può cambiare solo su un fronte di clock (salita o discesa secondo l implementazione). ifferenti tipi (S-R,, J-K,, sincroni o asincroni,..) ifferenti realizzazioni (con porte NOR, NAN,...) 18/32
Sommario I problemi dei latch trasparenti sincroni I bistabili I registri ed il register file 19/32 Registri Un registro a 4 bit. Memorizza 4 bit. 20/32
Lettura di un registro Lo stato (contenuto) del bistabile è sempre disponibile. La lettura è possibile per tutta la durata del ciclo di clock. 21/32 Scrittura di un registro Ad ogni colpo di clock lo stato del registro assume il valore dell ingresso dati. W Cosa occorre modificare perchè il registro venga scritto quando serve? Introdurre una sorta di abilitazione. S Il clock apre la linea del bistabile allo stadio Master. uando il clock è a zero, S =C = 0 e lo stato non varia. C 22/32
Banco di Registri 32 bit Struttura costituita da un insieme di registri 32 registers 23/32 Register file Banco di registri utilizzabile come memoria #Reg read 1 #Reg read 2 #Reg write Insieme di 32 registri da 32 bit Contenuto 1 Contenuto 2 Contenuto Write RX W Possono essere letti / scritti fornendo il numero del registro. 24/32
Gestione del register file #Reg read 1 #Reg read 2 Insieme di 32 registri da 32 bit Contenuto 1 Contenuto 2 La lettura non modifica il contenuto di un registro (collego uscita Slave con il circuito combinatorio). #Reg write Contenuto Write La scrittura invece richiede la modifica. Occorre il segnale W. X R W #bitindirizzamento = log 2 #bit 25/32 #Reg read 1 #Reg read 2 Porta di lettura del register file Contenuto 1 Insieme di 32 Contenuto 2 registri da 32 bit #Reg write Contenuto Write X R W 5 32 Un mux per ogni porta di lettura. Ciascun Mux la la complessità di 32 mux, uno per ogni bit. 5 26/32
#Reg read 1 #Reg read 2 #Reg write Contenuto Write Possibile porta di scrittura del register file Insieme di 32 registri da 32 bit X R W Contenuto 1 Contenuto 2 5 32 Logica controllo Contenuto Write #RegWrite W Registro 0 Registro k Registro N-1 27/32 Logica controllo del circuito scrittura ecoder: abilita uno dei registri (segnale a i ). L ingrsso dati ai registri sarà 0 tranne che per il registro i-esimo che avrà in ingresso la parola da scrivere [d 0...d M-1 ]. #RegWrite 5 32 Contenuto Write #RegWrite 5 Logica controllo W Registro 0 Registro k a 0 d 0 ecoder a k a N-1 d k Registro N-1 Per ogni registro ho 1 porta AN per ogni bit (M porte). 32 Contenuto Write d M-1 28/32 #Porte AN: M * N + ecoder E complesso!
#Reg read 1 #Reg read 2 #Reg write Porta di scrittura del register file Insieme di 32 registri da 32 bit Contenuto 1 Contenuto 2 Ho ridotto drasticamente il numero di porte AN. Contenuto Write X R W W W #Reg Write Ingresso C del Master dei registri: ecodificatore per indirizzare il registro AN Comando W n-1 Ingresso del Master dei registri: Bit dato corrispondente. ato 29/32 Register file n-2 n-1 RegWrite Clock #Reg Write n-1 n - 2 ato n-1 30/32
Register file a lettura / scrittura sincrona Modifichiamo la circuiteria di controllo del Register File. Comparatore n-2 n-1 RegWrite Clock #Reg Write n-1 n - 2 1 ato n-1 0 1 31/32 Sommario I problemi dei latch trasparenti sincroni I bistabili I registri ed il register file 32/32