Università degli Studi dell’Insubria Dipartimento di Scienze Teoriche e Applicate
Architettura degli elaboratori
Il clock e i bistabili
Marco Tarini
Dipartimento di Scienze Teoriche e Applicate marco.tarini@uninsubria.it
Memoria
Le reti combinatorie sono prive di memoria: l’uscita di una rete combinatoria dipende solo dai valori logici applicati agli ingressi della rete
Out(t) = In(t) [comportamento ideale]
Out(t) = In(t-Dt) [comportamento reale, con ritardo]
Per eseguire certe elaborazioni, anche molto semplici, occorre conservare memoria di eventi (cioè di segnali binari) passati
Ad es., l’uscita vale 1 se l’ingresso è stato 1 per un certo tempo
Un circuito sequenziale
Progettare un circuito digitale dotato di due ingressi S e R, e di un’uscita Q. Il circuito:
manda a 1 l’uscita se S = 1 (S è attivo) manda a 0 l’uscita se R = 1 (R è attivo) altrimenti, l’uscita Q non subisce variazioni nota: non accade mai che S = R = 1
Il clock e i bistabili
Architettura degli elaboratori - 3 -
Domanda
Cosa vale l’uscita quanto S = R = 0, cioè quando entrambi gli ingressi S e R sono inattivi?
L’uscita Q potrebbe valere sia 1 che 0: il valore dell’uscita Q dipende dalla successione di eventi verificatisi su S e R in precedenza!
Infatti:
se R = 0 e S = 1, allora Q = 1; se poi S va a 0 l’uscita Q resta a 1 se R = 1 e S = 0, allora Q = 0; se poi R va a 0 l’uscita Q resta a 0 Conclusione: quando S = R = 0 l’uscita Q potrebbe valere 1 oppure 0
Cioè il circuito ricordaquale tra S e R è stato 1 l’ultima volta Cioè:
Q = valore del bit
S = segnale di Set («set» = «metti a 1») R = segnale di Reset («reset» = «metti a 0»)
Il diagramma temporale
Un buon modo per visualizzare comportamenti di circuiti digitali che dipendono dal tempo e da eventi passati è il diagramma temporale Diagramma temporale: sistema di assi cartesiani, con
in ascissa il tempo (in istanti discreti)
in ordinata i vari segnali i cui valori logici si succedono al trascorrere del tempo
Il clock e i bistabili
Architettura degli elaboratori - 5 -
Ancora l’esempio
Diagramma temporale del circuito descritto prima
effetto
Al tempo T1 si ha: S = R = 0 e Q = 1 Al tempo T2 si ha: S = R = 0 e Q = 0
Tempo S
R Q
1 1 0 10
0
T1 T2
osservazione
al tempo T1 osservazione al tempo T2
causa
rapporto causa-effetto
Commento
Il diagramma temporale mostra che sapere che in ingresso si ha S=0 e R=0 non basta a determinare il valore dell’uscita Q
Il circuito digitale che risolve il problema di progetto appena descritto non può dunque essere di tipo combinatorio!
Il clock e i bistabili
Architettura degli elaboratori - 7 -
vietato!
S R Q 0 0 0, 1 0 1 … 1 0 … 1 1 …
Una descrizione del comportamento del circuito come macchina a stati
Q=0
Q=1
<S=0, R=0>
<S=0, R=0>
<S=0, R=1>
<S=1, R=0>
<S=0, R=1>
Se R=0, S=0:
resta nello stato corrente.
Se S=1 :
va nello stato Q=1.
Se R=1 :
va nello stato Q=0.
Realizziamo questo circuito che «memorizza un bit»
Sarà un elemento funzionale elementare dotato di memoria In grado di memorizzare il valore di un singolo bit
Un modo per realizzare tale elemento funzionale consiste nel collegare due porte logiche di tipo NOR (porta OR con uscita negata) in modo
retroazionato
(a differenza delle reti combinatorie, usiamo collegamenti retroazionati!)
Il clock e i bistabili
Architettura degli elaboratori - 9 -
Come memorizzare un bit: bistabile SR
Ingressi, S e R (Set e Reset)
Uscite: Q e /Q (valore del bit, e suo negato)
Bistabile SR (SR latch, o SC latch)
retroazione
retroazione S
R
Q
Q
Come funziona il bistabile SR
Il clock e i bistabili
Architettura degli elaboratori - 11 -
S = R = 0 e Q = 1
memorizza il bit 1 S = R = 0 e Q = 0
memorizza il bit 0 Il circuito ha due stati di equilibrio (bistabile)
S
R
Q
Q 0
0
1 0
0 1
S
R
Q
Q 0
0
0 1
1 0
Stati di memorizzazione: note
Il bistabile SR è in grado di memorizzare due distinti valori logici:
quando Q = 1 , il bistabile «sta memorizzando» 1 quando Q = 0 , il bistabile «sta memorizzando» 0 La capacità di memoria del bistabile SR è dunque di un bit
(cioè memorizza uno dei due possibili valori per un bit) Un bistabile di questo tipo è detto anche Latch
Come funziona il bistabile SR
Il bistabile SR ha un comportamento ben diverso da una rete combinatoria.
Infatti:
se S = R = 0, le uscite Q e /Q possono valere 1 e 0, rispettivamente, ma possono anche valere 0 e 1, rispettivamente
Dunque:
a parità di ingressi (cioè S = R = 0) l’uscita Q ammette due possibili valori.
(Non è un comportamento da rete combinatoria!)
Il clock e i bistabili
Architettura degli elaboratori - 13 -
Transizioni di stato
Se il bistabile SR non potesse cambiare stato di memorizzazione, sarebbe un circuito digitale del tutto inutile per scopi pratici di memorizzazione
È possibile fare transitare il bistabile SR dallo stato di memorizzazione 1 allo stato di memorizzazione 0, e viceversa, manovrando gli ingressi S e R in modo opportuno
Transizione da 1 a 0
Il clock e i bistabili
Architettura degli elaboratori - 15 -
S
R
Q
Q 1
0 0
1
10 0
A B
C
S = R = 0 e Q = 0; ha memorizzato il bit 0
0 D
Transizione da 0 a 1
S
R
Q
Q 0
0 10
01 1 A
B
C 0 D
Riassumendo
Funzionamento del bistabile SR:
quando S = R = 0
l’uscita Q mantiene memorizzato il valore logico di un bit (0 oppure 1) se S = 1 e R = 0,
l’uscita Q assume il valore logico 1 (il bit si setta a 1) se S = 0 e R = 1,
l’uscita Q assume il valore logico 0 (il bit si resetta a 0) la configurazione di ingresso S = R = 1 non è valida
(in questa circostanza il comportamento del bistabile SR non è definito)
Il clock e i bistabili
Architettura degli elaboratori - 19 -
Diagramma temporale del bistabile SR
Tempo S
R Q
1
1 0
1
0
0 0
T1 T2
osservazione
al tempo T1 osservazione al tempo T2
T3 osservazione
al tempo T3 1 1
0
Le frecce indicano un rapporto tra i fronti di tipo causa-effetto causa-effetto
causa-effetto
Dettagli
Quando S = R = 1, Q = /Q = 0
Ma l’evoluzione successiva è imprevedibile:
se R va a 0 prima (anche poco) di S, Q = 1 se S torna a 0 prima (anche poco) di R, Q = 0
ed è sostanzialmente impossibile fare commutare S e R simultaneamente
Il clock e i bistabili
Architettura degli elaboratori - 21 -
S
R
Q
1 Q
1 0
0 0
0
Rappresentazione
Il bistabile SR (set-reset) come blocco funzionale SEQUENZIALE
S
R
Q
Q
S R
Q Q bistabile SR
Usi caratteristici
Il bistabile SR è un circuito digitale (sequenziale) fondamentale.
Usi tipici:
è l’elemento funzionale elementare per la costruzione di altri tipi di bistabili, più raffinati o specializzati
viene usato per memorizzare segnali binari
viene usato come adattatore, o interfaccia per un dispositivo
Il clock e i bistabili
Architettura degli elaboratori - 23 -
Esempio di Latch come adattatore
Si supponga di avere una periferica (ad es. una tastiera) che deve mandare un segnale di richiesta (ad es. un interrupt) a un processore
Ma la periferica genera solo un breve impulso di richiesta
Mentre il processore potrebbe essere occupato e non in grado di rispondere subito alla richiesta, onorandola
Il Latch tiene traccia della richiesta pendente fino a quando il processore la può onorare
È dunque necessario interporre tra periferica e processore un circuito digitale adattatore (interfaccia), che:
riceva l’impulso di richiesta proveniente dalla periferica, lo memorizzi, stabilizzandolo, e lo mandi al processore
mantenga attiva la richiesta fintantoché il processore non sia disponibile a onorarla
cancelli la richiesta, quando il processore segnalasse di averla acquisita e di essere pronto a onorarla
Schema logico
Il bistabile SR funziona come adattatore, o interfaccia, tra periferica e processore
Il clock e i bistabili
Architettura degli elaboratori - 25 -
breve impulso di richiesta
S R
Q Q bistabile SR
PERIFERCA PROCESSORE
non usato
richiesta stabilizzata e tenuta pendente
impulso di acquisizione l’impulso cancella la
richiesta
Sincronizzazione
In molte situazioni, è necessario impedire che lo stato di un bistabile possa cambiare, tranne in determinati istanti di tempo o intervalli di tempo
Per ottenere questo scopo occorre:
disporre di un segnale di clock che scandisca gli istanti o intervalli di tempo in cui le transizioni di stato possono avvenire
sincronizzare il bistabile con questo segnare di clock
Il segnale di clock:
utile in molte altre occasioni
In molti casi, le funzioni svolte dai circuiti digitali sono tali che L’ordine temporale con cui si verificano
gli eventi è una caratteristica significativa
Si debba garantire la precedenza tra due segnali
Si debba sincronizzare due eventi che devono essere simultanei (o trattati come tali)
Si debba garantire la distanza temporale tra due eventi ...
Il clock e i bistabili
Architettura degli elaboratori - 27 -
Il segnale di clock
Per definire e scandire il tempo, nei circuiti digitali si usa il segnale di clock (o «di temporizzazione»)
Il clock è un segnale binario, con andamento periodico nel tempo Il segnale di clock è una successione di impulsi
Ogni impulso ha una larghezza costante e due impulsi consecutivi stanno a una distanza costante
Clock Tempo Tensione
Il segnale di clock
Il clock e i bistabili
Architettura degli elaboratori - 29 -
Frequenza di clock = 1 / periodo di clock Qui: periodo = 1 / 10 ns Frequenza = 100 MHz
Clock
fronte
di salita fronte di discesa
livello (intervallo)
alto
Tempo 1° ciclo 2° ciclo 3° ciclo
10 ns
periodo di clock
livello (intervallo) basso
Bistabile D sincronizzato
Il bistabile SR memorizza un bit e ha due ingressi: S per portare a 1 lo stato, R per portarlo a 0
S e R funzionano sia come comandi che come dati:
Indicano quale valore memorizzare Indicano quando memorizzarlo
Molto spesso occorre un bistabile dotato di un solo ingresso, che si limiti a memorizzare il bit presente sul suo unico ingresso: il bistabile D sincronizzato (o D flip-flop)
D è l’unico ingresso dati,
Il clock funziona come comando di memorizzazione
Frequenze tipiche di clock
Il clock e i bistabili
Architettura degli elaboratori - 31 -
Periodo di clock
(misura: secondi) Frequenza di Clock
(misura: Hertz = 1 / secondo)
secondo1 1 s 100sec 1 Hertz 1 Hz 100Hz
millisecondo1 1 ms 10-3sec 1 KiloHertz 1 KHz 103Hz 1 micro
secondo 1 μs 10-6sec 1 MegaHertz 1 MHz 106Hz
1 nano
secondo 1 ns 10-9sec 1 GigaHertz 1 GHz 109Hz
La frequenza di clock di un tipico processore si misura in qualche GigaHertz
(quindi, milioni di cicli di clock al sec)
Bistabile D sincronizzato
Clock = 0 il bistabile mantiene lo stato
0
0
0 D
/Q
Q Clock
Bistabile D sincronizzato
Il clock e i bistabili
Architettura degli elaboratori - 33 -
Se clock = 1 il bistabile memorizza l’ingresso D
0
1
1 0
0 1 D
/Q
Q Clock
Bistabile D sincronizzato
Se clock torna a zero, lo stato del bistabile resta “congelato”
0
0
0 0
0 1 D
/Q
Q Clock
Diagramma temporale
Il clock e i bistabili
Architettura degli elaboratori - 35 -
Le variazioni dell’uscita sono sincronizzate con il clock
Tempo D
Q
1° ciclo 2° ciclo Clock
3° ciclo
1 0 0 1
0 1
Un possibile funzionamento del flip-flop:
Bistabile D sincronizzato
Nel bistabile D sincronizzato:
Quando il clock vale 0,
l’ingresso D non ha alcun effetto,
il bistabile mantiene memorizzato il suo stato corrente Quando il clock vale 1,
l’ingresso D è efficace,
il bistabile memorizza il valore logico (0 oppure 1) presente sul D Lo stato del bistabile può cambiare solo nell’ «intervallo alto» del clock Detto anche: D-latch
Rappresentazione bistabile D
Il clock e i bistabili
Architettura degli elaboratori - 37 -
Il bistabile D sincrono come blocco funzionale SEQUENZIALE sincrono
D Q
Q bistabile D
CK D
/Q Q Clock
Comando di ripristino
Tutti i tipi di bistabili dispongono di varianti dotate di un comando di ripristino CLR («clear» o «reset»), che forza lo stato del bistabile a 0
Il comando di ripristino è molto utile per (re)inizializzare lo stato dei bistabili Alcuni bistabili dispongono anche del comando di precarica PR («preset»), che forza lo stato del bistabile a 1
Rappresentazione
Bistabile di tipo D, dotato di comandi di ripristino e di precarica.
Di norma questi comandi sono asincroni, cioè agiscono immediatamente, non appena vengono attivati, senza attendere il clock
Il clock e i bistabili
Architettura degli elaboratori - 39 -
D Q
Q bistabile D
CK CLR
PR
Realizzazione
Il bistabile D sincrono con comando CLEAR
D /Q
Clock Q
D Q
Q bistabile D
con CLR CK
CLR CLR
D Q
Q bistabile D
CK
Tempo
Così come i circuiti combinatori, anche i bistabili (sincronizzati o no) presentano un ritardo di commutazione dell’uscita
Per forza: sono fatti entrambi con porte logiche
La commutazione dell’uscita del bistabile avviene con un certo ritardo rispetto alla variazione degli ingressi o rispetto al fronte di clock che hanno indotto la transizione di stato
Il ritardo di commutazione dipende dalla tecnologia microelettronica
Il clock e i bistabili
Architettura degli elaboratori - 41 -
Diagramma temporale
Il bistabile sincrono di tipo D ha un ritardo di commutazione di 1 ns dell’uscita rispetto al fronte del clock
Tempo D
Q
1° ciclo 2° ciclo Clock
3° ciclo
1 ns 1 ns 1 ns
Il fenomeno della trasparenza
Il bistabile D sincronizzato ha un comportamento sgradevole:
nell’intervallo alto del clock, l’ingresso D è efficace: le variazioni di D si propagano immediatamente (o quasi) all’uscita Q, la quale può dunque variare più volte; solo quando il clock torna a zero Q si stabilizza
è come se, nell’intervallo alto del clock, il bistabile non esercitasse alcuna funzione effettiva di memorizzazione
es: se il flip-flop è nello stato 0, se, durante lo stato del clock «alto»:
1. D passa da 0 a 1 il flip-flip passa allo stato 1 2. D torna a 0 il flip-flip torna allo stato 0.
Questo fenomeno si chiama trasparenza
Il clock e i bistabili
Architettura degli elaboratori - 43 -
Diagramma temporale
Nel 2ociclo, mentre clock = 1, si verifica il fenomeno della trasparenza del bistabile
Tempo D
Q
1° ciclo 2° ciclo Clock
3° ciclo
0 1 1 0 0 1
D varia mentre clock=1 Trasparenza
Problema
Il bistabile D sincronizzato visto presenta il fenomeno di trasparenza Il fenomeno della trasparenza rende tali bistabili inadatti come elementi funzionali base per circuiti sequenziali
Serve un nuovo tipo di sincronizzazione!
Il clock e i bistabili
Architettura degli elaboratori - 46 -
Verso la soluzione ...
Vi sono due modi per sincronizzare un bistabile con il clock:
sincronizzazione «sul livello»: (quella che abbiamo usato fin’ora) quando il clock vale 1: (cioè nell’intervallo alto del clock)
gli ingressi al bistabile sono efficaci
quando il clock vale 0: (cioè nell’intervallo basso del clock) lo stato del bistabile è congelato
( comporta trasparenza!) sincronizzazione «sul fronte»:
nell’istante in cui il clock passa da 0 a 1 (cioè al fronte di salita del clock) gli ingressi al bistabile sono efficaci
in entrambi gli intervalli alto e basso del clock lo stato del bistabile è congelato!
Il sincronismo sul fronte
In un bistabile sincronizzato sul fronte, gli ingressi sono efficaci solo nell’istante di tempo del fronte di salita del clock
Dunque l’uscita del bistabile può commutare solo in corrispondenza del fronte di salita del clock
Durante tutto il resto del ciclo di clock, l’uscita è necessariamente stabile
il fenomeno di trasparenza non esiste!
(se non nel brevissimo intervallo di durata del fronte di salita)
Il clock e i bistabili
Architettura degli elaboratori - 48 -
Realizzare il sincronismo sul fronte
Si prende un bistabile di tipo D sincronizzato sul livello ma come clock gli si applica un segnale con livello alto di durata molto inferiore al livello basso, ovvero un clock di tipo impulsivo (o “asimmetrico”)
L’ingresso D del bistabile è dunque efficace solo per un brevissimo intervallo di tempo, che idealmente coincide con l’istante del fronte di salita del segnale di clock
Idealmente ...
L’impulso di clock è un livello alto molto stretto Sincronizzazione (quasi) perfetta con il fronte!
Il clock e i bistabili
Architettura degli elaboratori - 50 -
Tempo D
Q
1° ciclo 2° ciclo Clock
3° ciclo
0 1 1 0 0 1
10 ns
Bistabile sincrono sul fronte: FLIP-FLOP
Il bistabile D sincrono sul fronte come blocco funzionale SEQUENZIALE D
/Q Q Clock Generatoredi impulsi
D Q
Q bistabile D
sincrono sul fronte
CK
sincronismo con
il fronte di salita … o con il fronte di discesa Dà al clock
forma impulsiva
CK
Il generatore di impulsi
Il clock e i bistabili
Architettura degli elaboratori - 52 -
a b
c
t
a b
c a and b
ritardo dell’AND
ritardo della porta NOT
Ricap della terminologia in Eng
To Set («impostare»): mettere il bit ad 1
To Reset, («reimpostare») o to Clear, : mettere il bit a 0 To Preset , («preimpostare») : inizializzare il bit a 1 Clock cycle: ciclo di clock
Latch: una rete (sequenziale) bi-stabile, tipicamente non sincronizzata Es: il RS-Latch
Flip-Flop: una rete (sequenziale) bi-stabile, tipicamente sincronizzata Quindi
Flip-Flop level-sensitive: con sincronizzazione sul livello Flip-Flop edge-sensitive: con sincronizzazione sul fronte