l 11 flipflopregistri - unimi.it · 2012-11-22 · shift register t i = d 3q = d 2 t q = d1 q 1 = u...

21
1 I flip-flop ed il register file Prof. Alberto Borghese Dipartimento di Scienze dell’Informazione [email protected] Università degli Studi di Milano A.A. 2012-2013 http:\\borghese.di.unimi.it\ 1/41 Riferimento sul Patterson: Sezioni C.9 e C.11 Sommario I problemi dei latch trasparenti sincroni I flip-flop D I flip-flop D I registri ed il register file A.A. 2012-2013 http:\\borghese.di.unimi.it\ 2/41

Upload: others

Post on 01-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

1

I flip-flop ed il register file

Prof. Alberto BorgheseDipartimento di Scienze dell’Informazione

[email protected]

Università degli Studi di Milano

A.A. 2012-2013 http:\\borghese.di.unimi.it\1/41

Riferimento sul Patterson: Sezioni C.9 e C.11

Sommario

I problemi dei latch trasparenti sincroni

I flip-flop DI flip-flop D

I registri ed il register file

A.A. 2012-2013 http:\\borghese.di.unimi.it\2/41

Page 2: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

2

I bistabili

• Elementi di memoria (latch)• “Cancelli” (flip-flop)

A.A. 2012-2013 http:\\borghese.di.unimi.it\3/41

•D

I latch

I latch sono chiamati anche dispositivi trasparenti: quando il clock è alto, il valore di D viene riportato in uscita, Q = D.

•Clk

Per tutto il tempo in cui il clock è attivo l’uscita è collegata all’ingresso D dopo di che il

A.A. 2012-2013 http:\\borghese.di.unimi.it\4/41

Per tutto il tempo in cui il clock è attivo, l uscita è collegata all ingresso D, dopo di che il “cancello” si chiude.

Il “cancello” è aperto per tutta la durata di un semiperiodo del clock. Problema?

Page 3: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

3

Struttura di un circuito sequenziale

Logica combinatoriaD Q

Flip-flop

D QFlip-flop

Logica combinatoriaD Q

Flip-flop

D QFlip-flopFlip-flop

T

p pT

Flip-flopT

p pT

Clock

A.A. 2012-2013 http:\\borghese.di.unimi.it\5/41

Clock

Shift register

TT

I = D3 Q3 = D2

T

Q2 = D1 Q1 = U

Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso I e un’unica uscita U.

Clk

A.A. 2012-2013 http:\\borghese.di.unimi.it\6/41

g•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?•Qual’è il problema con l’utilizzo dei latch?

Page 4: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

4

Shift register con i latch (i problemi)

TT

I = D3 Q3 = D2

T

Q2 = D1 Q1 = U

Clk

I

Clk

A.A. 2012-2013 http:\\borghese.di.unimi.it\7/41

I

Q3

Q2

Q1=U3Δτ 3Δτ 3Δτ

Sommario

I problemi dei latch trasparenti sincroni

I flip-flop DI flip-flop D

I registri ed il register file

A.A. 2012-2013 http:\\borghese.di.unimi.it\8/41

Page 5: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

5

Dispositivo di sincronizzazione

A.A. 2012-2013 http:\\borghese.di.unimi.it\9/41

Flip-flopDispositivi 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.

T

D

T

D Q = Qslave

__Qslave

Qmaster

__Qmaster

DslaveD

TT T

A.A. 2012-2013 http:\\borghese.di.unimi.it\10/41

Configurazione Master-Slave

Clk

Page 6: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

6

_ Q’

ClkDFlip-flop D

DQ

_ Qm

___ __ ClkQm

Clk

Qm

_ Q

Flip

_ D

_ClkD

___Clk·•

__ ClkQm

A.A. 2012-2013 http:\\borghese.di.unimi.it\11/41

Clk

D_ Qm

Qm_ Q

Q

_ Q’

ClkDFunzionamento del flip-flop D

DQ

_ Qm

___ __ ClkQm

Clk

Qm

_ Q

Flip

_ D

_ClkD

___Clk·•

__ ClkQm

A.A. 2012-2013 http:\\borghese.di.unimi.it\12/41

Clk

D_ Qm

Qm_ Q

Q

Page 7: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

7

Clk

_ Q’

Funzionamento del flip-flop D (flip)D

Q

Flip

_ Qm

___Clk·

ClkD

Clk

_

Qm

_ Q

Qm

_ D

Clk

Clk_D

A.A. 2012-2013 http:\\borghese.di.unimi.it\13/41

Clk

D

Qm

ClkD

t

Funzionamento del flip-flop D (flop)

Clk

_ Q’

D

QFlip Flop

_ Qm

___Clk·

ClkD

_ ___Qm Clk

Q_Q

Clk

Qm

_ Q

Clk

_ D ___

Qm Clk

A.A. 2012-2013 http:\\borghese.di.unimi.it\14/41 t

Clk

___ QmClk_ __ QmClk

Q

Ritardo globale:3 Δτmisurato a partiredal fronte di discesa.

Page 8: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

8

Temporizzazione dei flip-flop

Clk

_ Q’

D

Q

Flip Flop

_ Qm

_ __ QmClk

E’ attivo su quale fronte?

Q_Q

Qm

_ Q

___ QmClkD

Qm

_ D

A.A. 2012-2013 http:\\borghese.di.unimi.it\15/41

quale fronte?

t

___ QmClk

Clk

_ __ QmClk

Q

TT

I=D3 Qs3 = D2

T

Clk

Qs2 = D1 Qs

1 = U

Shift register con i flip-flop

1 1

=>0

0

I

Clk

Q3 = Qs3

Qm3

FlipFlop

A.A. 2012-2013 http:\\borghese.di.unimi.it\16/41

Q3 Q 3

Qm2

U = Qs1

Qs2

3Δτ3Δτ 3Δτ 3Δτ

Page 9: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

9

Configurazione master-slave

• Semi-periodo di clock alto:Il master è trasparente: ingresso > uscita del latch master– Il master è trasparente: ingresso -> uscita del latch master.

– Lo slave è “opaco” -> mantiene l’uscita.– Lo slave è “disaccoppiato” dal latch master.

• Semi-periodo di clock basso:– Il master è opaco: l’uscita del latch master si mantiene.

A.A. 2012-2013 http:\\borghese.di.unimi.it\17/41

Il master è opaco: l uscita del latch master si mantiene.– Il master è “disaccoppiato” dall’ingresso esterno.– Lo slave è trasparente e porta in uscita l’uscita del latch

master.

Struttura di un circuito sequenziale

Logica combinatoriaD Q

Flip-flop

D QFlip-flopFlip-flop

T

p pT

Pone dei problemi di sincronizzazione: la logica combinatoria deve terminare la commutazione in tempo utile.

A.A. 2012-2013 http:\\borghese.di.unimi.it\18/41

Page 10: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

10

Temporizzazione di un circuito sequenziale

Logica combinatoriaD Q

Flip-flop

D QFlip-flopFlip-flop

T

p pT

•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.

A.A. 2012-2013 http:\\borghese.di.unimi.it\19/41

•Il clock arriva contemporaneamente a tutti i dispositivi sincronizzati.

Temporizzazione: problemi

Logica combinatoriaD Q

Flip-flopT

D QFlip-flopT

L’input D deve essere stabile intorno alla commutazione del clock:•Tempo di set_up: è il tempo minimo per cui deve rimanere stabile l’input D prima del fronte di clock. •Tempo di hold: è il tempo minimo per cui deve rimanere stabile l’input D dopo il fronte di clock (solitamente trascurabile).•Tempo necessario per fare commutare l’uscita master di un flip-flop.

T T

A.A. 2012-2013 http:\\borghese.di.unimi.it\20/41

p p f f p f p

t

Tempo di holdTempo di set-up

D

Clk

Page 11: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

11

Temporizzazione: Come si dimensiona il clock

Logica combinatoriaD Q

Flip-flop

D QFlip-flop

T > k * (tp+ tc + ts+ tw)

Tempo di propagazione: è il tempo necessario per propagare il segnale nel flip-flip e qundi alla logica combinatoria (tp).Tempo di skew: ritardo massimo del clock (tw).

Flip-flopT

p pT

Tempo di hold (th)Tempo di propagazione (tp)

(> Tempo di hold)Tempo logica Tempo di hold

A.A. 2012-2013 http:\\borghese.di.unimi.it\21/41 t

Tempo di set-up (ts)

D

Clk

e po og cacombinatoria (tc)

Sommario

I problemi dei latch trasparenti sincroni

I flip-flop DI flip-flop D

I registri ed il register file

A.A. 2012-2013 http:\\borghese.di.unimi.it\22/41

Page 12: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

12

Cella di memoriaLa memoria è suddivisa in celle, ciascuna delle quali assume un valore binario stabile.Si può scrivere il valore 0/1 in una cella.Si può leggere il valore di ciascuna cella.

A.A. 2012-2013 http:\\borghese.di.unimi.it\23/41

Control (lettura – scrittura)Select (selezione)Data in & Sense (Data in & Data out).

Latch sincrono come elemento di memoria

E’ trasparente quando Write = 1Se Write = 1 Qt+1 = DSe Write = 0 Qt+1 = Qt

D

WriteS’

•D

A.A. 2012-2013 http:\\borghese.di.unimi.it\24/41

DC’•

Clk = Write

Page 13: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

13

Registro

Data in Data out

Write

A.A. 2012-2013 http:\\borghese.di.unimi.it\25/41

Registri

A.A. 2012-2013 http:\\borghese.di.unimi.it\26/41

Un registro a 4 bit. Memorizza 4 bit.

NB Non è un registro a scorrimento (shift register!)

Latch di tipo D

Page 14: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

14

Lettura di un registro

Lo stato (contenuto) del bistabile è sempre disponibile.

A.A. 2012-2013 http:\\borghese.di.unimi.it\27/41

La lettura è possibile per tutta la durata del ciclo di clock.

Scrittura di un registroAd ogni colpo di clock lo stato del registro assume il valore dell’ingresso dati.

Cosa occorre modificare perchè il registro venga scritto d ?

Write

A.A. 2012-2013 http:\\borghese.di.unimi.it\28/41

quando serve?Introdurre una sorta di “apertura del cancello (chiusura circuito)” .Può essere sincronizzata o meno con il clock.

Il clock apre il passaggio al conteuto di D attraverso il latch. Quando il segnale di Write è a zero, lo stato non varia.

D

Clk

S’

C’

D

Clk

D

Clk

S’

C’Write

Page 15: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

15

Un banco 4 registri x 3bit

D Q D Q D Q

Q0 2Q0 1Q0 0

D2 D1 D0

W0

Clk

D Q D Q D Q

D Q D Q D Q

Q0.2Q0.1Q0.0

Q1.2Q1.1Q1.0W1

W

A.A. 2012-2013 http:\\borghese.di.unimi.it\29/41

D Q D Q D Q

Q2.2Q2.1Q2.0

Q3.2Q3.1Q3.0

W2

W3

Funzionamento del banco di registriDato Write

Dato ReadRegistro 0

Write Registro 2

bit3 bit1bit2 bit0

A.A. 2012-2013 http:\\borghese.di.unimi.it\30/41

Come seleziono il dato da leggere fra i 3 dati possibili?Come seleziono il registro su cui scrivere fra i 3 registri?

Page 16: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

16

Lettura del banco di registriDato Write

DatoRegistro 0

#RegRead(2bit)

Write

Dato Read

Registro 2

bit3 bit1bit2 bit0

A.A. 2012-2013 http:\\borghese.di.unimi.it\31/41

Seleziono uno dei registri = porto in uscita l’uscita Q di tutti i bit del registro selezionatoAvrò tanti Mux quanti sono i bit che costituiscono il registro (in questo caso .....)

Scrittura del banco di registri

Dato

Dato Read

Registro 0

dec

#RegWrite(2bit)

Dato Write

Write

Registro 0

Registro 2

bit3 bit1bit2 bit0

A.A. 2012-2013 http:\\borghese.di.unimi.it\32/41

Invio il dato da scrivere a tutti i registri ma devo inviare il segnale di scrittura solamente al registro selezionato

Page 17: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

17

Banco di Registri Struttura costituita da un insieme di registri32 bit

2 re

gist

ers

A.A. 2012-2013 http:\\borghese.di.unimi.it\33/41

32

Register file

Banco di registri utilizzabile come memoria

#Reg read 1g

#Reg read 2Contenuto 1

Contenuto 2

#Reg write

Contenuto Write

Insieme di 32 registri da 32 bit

A.A. 2012-2013 http:\\borghese.di.unimi.it\34/41

Possono essere letti / scritti fornendo il numero del registro.

R WX

Page 18: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

18

Gestione del register fileLa lettura non modifica il contenuto di un registro (collego uscita Slave con il circuito combinatorio).

La scrittura invece richiede la modifica

#Reg read 1

#Reg read 2Contenuto 1

Contenuto 2

#Reg write

Insieme di 32 registri da 32 bit

#Reg read 1

#Reg read 2Contenuto 1

Contenuto 2

#Reg write

Insieme di 32 registri da 32 bit

La scrittura invece richiede la modifica. Occorre il segnale W.Contenuto Write

R WXContenuto Write

R WX

A.A. 2012-2013 http:\\borghese.di.unimi.it\35/41

#bit_indirizzamento = log2 #bit

Porta di lettura del register file#Reg read 1

#Reg read 2Contenuto 1

Contenuto 2

#Reg write

Contenuto Write

Insieme di 32 registri da 32 bit

#Reg read 1

#Reg read 2Contenuto 1

Contenuto 2

#Reg write

Contenuto Write

Insieme di 32 registri da 32 bit

5

5

32R WXR WX

Un mux per ogni porta di lettura.

Ciascun Mux la la

A.A. 2012-2013 http:\\borghese.di.unimi.it\36/41

Ciascun Mux la la complessità di 32 mux, uno per ogni bit.

Page 19: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

19

Possibile porta di scrittura del register file

5

Clk W#Reg read 1

#Reg read 2Contenuto 1

Contenuto 2

#Reg write

C W i

Insieme di 32 registri da 32 bit

#Reg read 1

#Reg read 2Contenuto 1

Contenuto 2

#Reg write

C W i

Insieme di 32 registri da 32 bit #RegWrite

32 Logica control

-loContenutoWrite

Registro 0

Registro k

Contenuto Write

R WXContenuto Write

R WX

A.A. 2012-2013 http:\\borghese.di.unimi.it\37/41

Registro N-1

Porta di scrittura del register file

W

#Reg read 1

#Reg read 2Contenuto 1

Contenuto 2

#Reg write

Contenuto Write

Insieme di 32 registri da 32 bit

#Reg read 1

#Reg read 2Contenuto 1

Contenuto 2

#Reg write

Contenuto Write

Insieme di 32 registri da 32 bit

Clk W

Ho ridotto drasticamente il numero di porte AND.

WR WXR WX

Ingresso C del latch dei registri:Decodificatore per indirizzare il registro

AND

Clk W

#Reg Write#Reg Write

n-1

A.A. 2012-2013 http:\\borghese.di.unimi.it\38/41

AND Comando W

Ingresso D del latch dei registri:Bit dato corrispondente. DatoDato

Page 20: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

20

Register file

#Reg Write#Reg Write

RegWrite

n-2n-1

A.A. 2012-2013 http:\\borghese.di.unimi.it\39/41

DatoDato

n-1

n - 2

n-1

I bistabili: riassunto

• Semplici elementi di memoria (1 bit)• “Cancelli”• Latch o flip-flop.

• 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).

• Differenti tipi (S-R, D, J-K, T, sincroni o asincroni,..)

A.A. 2012-2013 http:\\borghese.di.unimi.it\40/41

p ( )

• Differenti realizzazioni (con porte NOR, NAND,...)

Page 21: L 11 FlipFlopRegistri - unimi.it · 2012-11-22 · Shift register T I = D 3Q = D 2 T Q = D1 Q 1 = U Registro a scorrimento (shift register o barrel shifter). •Un unico ingresso

21

Sommario

I problemi dei latch trasparenti sincroni

I flip-flop DI flip-flop D

I registri ed il register file

A.A. 2012-2013 http:\\borghese.di.unimi.it\41/41