Il diagramma temporale:
rapporti di causa effetto fra fronti
(caso ideale)
Il clock e i bistabili
Architettura degli elaboratori - 25 -
t
1t
3t
5t
0 1
X
0 1
Y
0 1
Z
t
2t
4t
6causa
effetto
rapporto di causa-effetto
tempo di commutazione
Il diagramma temporale:
rapporti di causa effetto fra fronti
(caso reale – con ritardi)
t
1t
3t
5t
0 1
X
0 1
Y
0 1
Z
t
2t
4t
6Se in input passo R = 1, S = 0 transizione da 1 a 0
Il clock e i bistabili
Architettura degli elaboratori - 27 -
S
R
Q
Q 0
0 0
1
01 1
t 1 t 2
t 3
0 t 4
Il diagramma temporale
della transizione precendente
t
1t
3t
0 1
\Q
0 1
Q
0 1
R
t
2t
4Esempio 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
Il clock e i bistabili
Architettura degli elaboratori - 29 -
Schema logico
Il bistabile SR funziona come adattatore, o interfaccia, tra periferica e processore
S R
Q Q bistabile SR
PERIFERCA PROCESSORE
breve impulso di richiesta
non usato
richiesta stabilizzata e tenuta pendente
impulso di acquisizione l’impulso cancella la
richiesta
Bistabile D con guardia (gated D-latch)
Il bistabile SR (SR-latch) memorizza un bit e ha due ingressi:
S«set», per portare lo stato a 1 R«reset», per portare lo stato a 0
Quindi S e R hanno una funzione sia di comando che di dato:
indicano che va memorizzatoun dato, e al contempo indicano quale valorememorizzare
Molto spesso è più ultile un bistabile che separi le due cose.
Il bistabile D con guardia(gated D-latch) ha due ingressi:
D«data» indica qualedato memorizzare (1 o 0)
E«enable» indica sememorizzarlo oppure no (il gate, la guardia) (se E vale 1, D viene memorizzato)
(se E vale 0, D viene ignorato)
Il clock e i bistabili
Architettura degli elaboratori - 31 -
Gated D-latch: implementazione
D E
S
R
Q
Q SR-latch
D
E
Q Q D-latch
Q
Q
Gated D-latch: implementazione
Il clock e i bistabili
Architettura degli elaboratori - 33 -
D E
S
R
Q
Q SR-latch
D
E
Q D-latch
Q
spesso, ometteremo
l’usicita \Q
Gated D-latch
funzionamento (visto a basso livello)
E = 0 il bistabile mantiene lo stato (qui, 1)
0
0
0 D
/Q
Q E
1 NON CONTA
0
Gated D-latch
funzionamento (visto a basso livello)
Il clock e i bistabili
Architettura degli elaboratori - 35 -
Se E = 1 il bistabile memorizza l’ingresso D (qui, 0)
0
1
1 0
0 1 D
/Q
Q E
Gated D-latch
funzionamento (visto a basso livello)
Se E torna a zero, lo stato del bistabile resta nello stato in cui è
0
0
0 NON CONTA
0 1 D
/Q
Q E
Gated D-latch: implementazione Note
Il segnale E viene messo in AND con entrambi gli input S-R del SR-latch quando E = 0, allora S = R = 0
quindi il bistabile mantiene sempre il suo stato si dice che il D-latch è congelato
oppure «opaco»:
l’output Q non dipende più da D l’input D “non si vede” da Q quando E = 1, allora S = D, R = \D
quindi il bistabile assume lo stato indicato da D (D = 1S=1 R=0 , e il latch assume 1) (D = 0S=0 R=1 , e il latch assume 0) nota: questo impedisce anche
che l’input “illegale” S=R=1 venga mai fornito al SR-latch
si dice che il D-latch è «trasparente», in condizione di «trasparenza»
perché l’input D “si vede” da Q
Il clock e i bistabili
Architettura degli elaboratori - 37 -
Gated D-latch: comportamento
0
X D
E Q
D-latch
0 o1
1
X D
E Q
D-latch
0 o1
X
0 o1
E=0 bloccato, frozen, opaco.
Dal latch leggo il bit memorizzato (in precedenza)
E=1attivo trasparente.
Nel latch scrivo il bit che mando in D.
(e da Q ne ricevo lo stesso D)
Y
0 o1
stato: Y
stato: X
Sincronizzazione
In molte situazioni, è necessario impedire che lo stato di un bistabile possa cambiare, tranne in determinati intervalli di tempo (meglio ancora, istanti 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 clock e i bistabili
Architettura degli elaboratori - 39 -
Il clock
Per definire e scandire il tempo, nei circuiti digitali si usa il segnale di clock (o «di temporizzazione»)
Il clock è dispositivo che produce
un segnale binario, con andamento periodico nel tempo il segnale viene propagato all’intero processore, dove serve Come si costruisce questo dispositivo?
domanda pertinente al livello dei dispositivi
CLOCK
Segnale di Clock
Il segnale di clock
Il clock e i bistabili
Architettura degli elaboratori - 41 -
Frequenza di clock = 1 / periodo di clock Qui: periodo = 1 / 10 ns Frequenza = 100 MHz
segnale di Clock
Tempo 1° ciclo 2° ciclo 3° ciclo
10 ns fronte di salita
intervallo basso
intervallo alto fronte
di discesa
periodo di clock 0
1
Note terminologiche sul segnale di clock
Convenzioni che adottiamo
Il fronte di discesadel clock è considerato l’ultimo (ed il primo) attimo di ogni ciclo di clock
Il fronte di salitadel clock avviene a metà di un ciclo di clock Un ciclo di clock = intervallo alto + intervallo basso
L’intervallo basso di clock perdura per la prima metà di un ciclo di clock L’intervallo altodi clock perdura per la seconda metà di un ciclo di clock
Frequenze tipiche di clock
Il clock e i bistabili
Architettura degli elaboratori - 43 -
Periodo di clock (misura: secondi)
Frequenza di Clock (misura: Hertz = 1 / secondo) 1
secondo 1 s 100sec 1 Hertz 1 Hz 100Hz
1
millisecondo 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 attualmente in qualche GigaHertz
(quindi, milioni di cicli di clock al sec)
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 ...
Bistabile D sincronizzato
Cosa succede se connetto il clock all’entrata E di un gated D latch ?
Ottengo un bistabile D sincronizzato: (“sincronizzato”… con il clock) Nell’intervallo basso del clock,
il bistabile è congelato(l’ingresso D è ignorato) Nell’intervallo alto del clock,
il bistabile è attivo(l’ingresso D è efficace, viene memorizzato) e trasparente(l’uscita Q riflette direttamente D)
Il clock e i bistabili
Architettura degli elaboratori - 45 -
D
E Q
CLOCK
bistabile D con gate
D
Sincronizzazione «sul livello»
Questo modo di sincronizzare un bistabile con il clock è detto sincronizzazione «sul livello»:
quando il clock vale 0: (cioè nell’intervallo basso del clock) il bistabili sono congelati.
In questo intervallo, l’output del latch è stabile
quando il clock vale 1: (cioè nell’intervallo alto del clock) gli ingressi ai vari bistabili dell’archietettura sono efficaci
e anche trasparenti (qui il problema)
Diagramma temporale
Il clock e i bistabili
Architettura degli elaboratori - 47 -
Le variazioni dell’uscita sono sincronizzate con il clock Avvengono quando il clock passa a 1
Tempo D
Q
1° ciclo 2° ciclo Clock
3° ciclo
1 0 0 1
0 1
Un possibile funzionamento del latch D sincronizzato:
Il fenomeno della trasparenza
La sicronizzazione sul livelloha un effetto sgradevole:
nell’intervallo alto del clock, i bistabile sono trasparenti :
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 latch è nello stato 0, se, durante lo stato del clock «alto»:
1. D passa da 0 a 1 il latch passa allo stato 1 2. D torna a 0 il latch torna allo stato 0.
Diagramma temporale
Il clock e i bistabili
Architettura degli elaboratori - 49 -
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, nell’intervallo alto del clock Trasparenza
Effetti negativi della trasparenza
Schema base semplificato di un circuito che elaboratore
Q D
E
Circuito combinatorio che calcola il prossimo stato Clock
Stato attuale
parte di memorizzazione
parte di
elaborazione
Effetti negativi della trasparenza 1/3
Per capire meglio quale sia il grave problema indotto dalla trasparenza in un elaboratore, partiamo da uno schema semplificato ai minimi termini
del suo funzionamento:
Un (insieme di) bistabili memorizza lo stato attuale dell’elaboratore (un bit per ogni bistabile), e lo rende disponibile all’elaborazione
Un (insieme di) circuiti combinatori calcola un passo della computazione:
prendono in input lo stato attuale (il segnale che proviene dalle uscite dei bistabili), e producono in output lo stato successivo,
che deve essere rimandato ai bistabili per memorizzarlo
ad ogni ciclo di clock, viene effettuato un passo dell’elaborazione:
1. i circuiti combinatori elaborano il nuovo stato (a partire da quello attuale)
2. i bistabili memorizzano il nuovo stato
Nota: l’intervallo di clock deve essere abbastanza lungo da consentire ai circuiti combinatori di produrre il loro output, per presentarlo ai bistabili
se il tempo di commutazione eccedesse il tempo a disposizione, nei bistabili si memorizzerebbe un risultato temporaneo e sbagliato: disastro.
Il clock e i bistabili
Architettura degli elaboratori - 51 -
Effetti negativi della trasparenza
Durante l’intervallo alto, i bistabili sincronizzati sul livello sono trasparenti e il circuito combinatorio è messo in diretto contatto coi suoi stessi output
Q D
E
Circuito combinatorio che calcola il prossimo stato Clock
Stato attuale
parte di memorizzazione
parte di
elaborazione
1
Effetti negativi della trasparenza 2/3
In questo contesto, il problema indotto dalla trasparenza è:
Quando i bistabili sono in stato di trasparenza,
la parte combinatoria dell’elaboratore ha in pratica i propri output collegati direttamente ai propri input.
Nota: nel cambiare gli input di un circuito combinatorio, durante il suo tempo di commutazione, gli output possono possono temporaneamente riportare un risultato (non definitivo) qualsiasi, “sbagliato a piacere”
ad esempio, alcune delle sue porte potrebbero avere parte dei propri ingressi già aggiornati, e parte ancora al valore precedente, e quando questo avviene possono produrre un risultato diverso sia dal quello iniziale, che da quello finale
quindi se, colleghiamo gli output di un circuito combinatorio direttamente a sui input, il circuito potrebbe anche non convergere mai a nessuna soluzione (tantomeno a quella giusta)
un circuito combinatorio collegato in input ai propri output, in generale, NON FUNZIONA.
Il clock e i bistabili
Architettura degli elaboratori - 53 -
Effetti negativi della trasparenza 3/3
Quindi, se i bistabili sono sincronizzati sul livello:
Intervallo alto del clock:
si memorizza l’elaborazione prodotta dai circuiti combinatori (ottimo!), ma poi i bistabili permangono in stato di trasparenza.
Il circuito combinatorio è in pratica connesso in input ai propri output, e non procedere davvero con l’elaborazione.
Intervallo basso del clock:
i bistabili sono bloccati
e forniscono un input stabile al circuito di elaborazione (combinatorio).
Il circuito combinatorio può finalmente procedere ad elaborare i propri output, avendo i propri input tenuti ad un valore costante.
Totale: LA META’ DEL TEMPO E’ INUTILIZZABILE ai fini dell’elborazione!
Certamente, è necessario che ci sia un momento in cui il risultato attuale della computazione viene immagazzinato; questo dovrebbe però essere il più breve possibile; idealmente, un istante.
Ci serve una modalità diversa di sincronizzazione.
Sincronizzazione «sul fronte»
In un bistabile sincronizzato «sul fronte»:
gli ingressi sono efficaci solo nell’istantein cui il clock passa da 1 a 0 cioè al fronte di discesa del clock
(variante: oppure quello di salita, quando il clock passa da 0 a 1) in entrambi gli intervalli alto e basso del clock il bistabile è congelato!
il bistabile non è mai in condizione di trasparenza dunque l’uscita del bistabile può commutare solo (poco dopo a) il fronte in discesa del clock
l’uscita del bistabile resta invariata per tutta la durata del ciclo di clock (eccettuando il breve tempo di commutazione del bistabile, che avviene all’inizio del clock)
Il clock e i bistabili
Architettura degli elaboratori - 55 -
Il Flip-Flop
Un bistabile sincronizzato sul fronte è detto Flip-Flop
come abbiamo visto questo è il tipo di sincronizzazione di gran lunga più utile per un elaboratore
Il flip-flop è l’unità standard per la memorizzazione di un bit in un computer ad esempio: un registro da 16 bit = 16 flip-flop
Nota: tutti i bit di memoria sono flip-flop … sincronizzati con il clock lo stesso segnale di clock propagato su ciascuno!
Avvertanza: in alcuni contesti (specialmente vecchi), si chiama Flip-Flop qualsiasi bistabile
del resto, flip-flop è un termine molto accattivante :)
FL1P-FL0P
Realizzare il sincronismo sul fronte Modo 1: clock ad impulsi
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
Il clock e i bistabili
Architettura degli elaboratori - 57 -
Idealmente ...
L’impulso di clock è un livello alto molto stretto Sincronizzazione (quasi) perfetta con il fronte!
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 clock e i bistabili
Architettura degli elaboratori - 59 -
Flip-flop come blocco funzionale SEQUENZIALE sincrono D
/Q
Q Clock Generatoredi impulsi
D Q
Q
questo triangolo rappresenta il sincronismo con il fronte di discesa
del clock
… o con il fronte di salita Dà al clock
forma impulsiva
CK
Il generatore di impulsi
a b
c
t
a
b
c a and b
ritardo dell’AND
ritardo della porta NOT
Realizzare il sincronismo sul fronte Modo 2: i flip-flop “master-slave”
Anche se è molto semplice ed economico da realizzare,
il «generatore di impulsi» non è un modo robusto (cioè affidabile) di realizzare la sincronizzazione sul fronte
la precisa durata dell’impulso è fondamentale:
troppo corta: non di da il tempo al latch D di commutare
troppo lunga: si mantiene il flip-flop in stato di trasparenza troppo a lungo si basa sulla previsione precisa del tempo di commutazione delle porta NOT che genera l’impulso, e delle porte che costituiscono il D-latch in pratica, ciascuna porta individuale presenta piccole discrepanze nei tempi di commutazione
I flip-flop cosiddetti “master-slave” (o a “memoria ausiliaria”) sono i più usati per realizzare il sincronismo sul fronte
rappresentano un ottimo compromesso tra complessità, costo e robustezza.
Il clock e i bistabili
Architettura degli elaboratori - 61 -
Flip-flop master-slave
Due bistabili D con gate, in cascata, sincronizzati su livello alto e basso risp.;
l’insieme dei due non si trova mai in condizione di trasparenza!
D Q
Q
CK Q
Q Q
Q D
E
D
E
CK gated D-latch
MASTER
gated D-latch SLAVE
Flip-flop master-slave
nell’intervallo basso (1° metà del ciclo)
Il clock e i bistabili
Architettura degli elaboratori - 63 -
D Q
Q
CK Q
Q Q
Q D
E
D
E
CK
non trasparente
Flip-flop master-slave
nell’intervallo alto (2° metà del ciclo)
D Q
Q
CK Q
Q Q
Q D
E
D
E
CK
non trasparente
Flip-Flop master/slave Funzionamento
Il flip-flop non è mai in stato di trasparenza:
nell’intervallo basso, il D-latch master è bloccato nell’intervallo alto, il D-latch slave è bloccato esattamente uno dei due è sempre bloccato
l’input del Flip-Flop non è mai propagato direttamente fino all’output
(a rigor di termini, sono entrambi sbloccati per un brevissimo intervallo al fronte di discesa, (il tempo di commutazione della porta NOT) ma non abbastanza a lungo da permettere ad un segnale di propagarsi dall’input all’output) )
Il clock e i bistabili
Architettura degli elaboratori - 65 -
Flip-Flop master/slave Funzionamento
Quando si passa dall’intervallo alto al quello basso (fronte in discesa) il latch master passa da attivo a bloccato:
il valore che il latch master sta memorizzando in quel preciso istante, cioè il valore segnale di input del flip-flop di quel momento,
diventa lo stato definitivo del flip-flop per l’intero il ciclo di clock (che è appena iniziato)
infatti, quello stesso segnale, alle cui spalle “la porta si è appena chiusa”, si trova ora la “strada aperta” fino all’uscita dell’intero flip-flop
(dato che lo slave è appena entrato in stato di trasparenza).
Molto presto (dopo un breve tempo di commutazione) il segnale si sarà dunque propagato fino all’uscita del flip-flop Se, durante lo stesso ciclo di clock, si presenta un valore diverso
all’entrata del flip-flop, questo verrà fermato dal master (nella prima metà del ciclo) o dallo slave (nella seconda), e non arriverà all’uscita
Risultato: il Flip-Flop memorizza il segnale preso nell’istante in cui scatta il fronte di discesa, e lo mantiene stabile in output per l’intero ciclo di clock.
Comando di ripristino Comando di precarica
Tutti i tipi di bistabili dispongono di varianti dotate di un comando di ripristino (CLR, «clear»):
forza lo stato del bistabile a 0 Altra variante:
aggiungere un comando di precarica (PR, «preset»):
forza lo stato del bistabile a 1
Il comando di ripristino (e/o precarica) è molto utile per (re)inizializzarelo stato dei bistabili (a 0 o 1)
I comandi di inizializzazione (cleare preset) sono tipicamente asincorni:
mandare un segnare su CLR azzera immediatamente il bistabile senza attendere il clock
Sincrono : quando lo dice il clock
Asincorno : indipendentemente dal clock
Il clock e i bistabili
Architettura degli elaboratori - 70 -
Rappresentazione
Flip-flop, 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
D Q
Q bistabile D
CK CLR
PR
Realizzazione
Il clock e i bistabili
Architettura degli elaboratori - 72 -
Un bistabile D sincrono con comando «CLEAR sincrono»
(non molto usato)
D /Q
Clock Q
D Q
Q bistabile D
con CLR CK
CLR CLR
D Q
Q bistabile D E
Realizzazione
Un bistabile D sincrono con comando «CLEAR asincrono»
(il tipo di CLEAR più tipico)
D Q
D
Q Clock
CLR
CLR
Flip-Flop (di tipo master slave) con comando di Clear asincrono
Nota: si agisce sullo slave (perché?)
Il clock e i bistabili
Architettura degli elaboratori - 74 -
D
Q
CK Q
Q Q
Q D
E
D
E
CK
CLR D-latch CLR
con guardia
D-latch con guardia e comando di
clear asincrono