• Non ci sono risultati.

Università dell'InsubriaA.A. 2017/18Architettura degli elaboratori -Bistabili e clock -21Il diagramma temporale:rapporti di causa effetto fra fronti(caso ideale)

N/A
N/A
Protected

Academic year: 2021

Condividi "Università dell'InsubriaA.A. 2017/18Architettura degli elaboratori -Bistabili e clock -21Il diagramma temporale:rapporti di causa effetto fra fronti(caso ideale)"

Copied!
24
0
0

Testo completo

(1)

Il diagramma temporale:

rapporti di causa effetto fra fronti

(caso ideale)

Il clock e i bistabili

Architettura degli elaboratori - 25 -

t

1

t

3

t

5

t

0 1

X

0 1

Y

0 1

Z

t

2

t

4

t

6

causa

effetto

rapporto di causa-effetto

tempo di commutazione

Il diagramma temporale:

rapporti di causa effetto fra fronti

(caso reale – con ritardi)

t

1

t

3

t

5

t

0 1

X

0 1

Y

0 1

Z

t

2

t

4

t

6

(2)

Se 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

1

t

3

t

0 1

\Q

0 1

Q

0 1

R

t

2

t

4

(3)

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

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

(4)

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

(5)

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

(6)

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

(7)

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 = 1S=1 R=0 , e il latch assume 1) (D = 0S=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=1attivo 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

(8)

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

(9)

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

(10)

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

(11)

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)

(12)

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.

(13)

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

(14)

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

(15)

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.

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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.

(22)

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

(23)

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

(24)

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

Riferimenti

Documenti correlati

Metodi per individuare la differenza tra la sequenza di output e quella del generatore se

A recent overview of HTA guidelines identified that only 5 HTA agencies provide detailed advice on the sta- tistical methods that should be used for the validation of

tion dependence of diffusion and migration of chloride ions in pore solution by considering the 27.. effect of surrounding ions and

Use of all other works requires consent of the right holder (author or publisher) if not exempted from copyright protection by the applicable

22 Sul versante più strettamente neocomunitario cfr. Su quello più vicino al repubblicanesimo cfr.. recentemente la “concezione individualistica della società” ha guadagnato

Fra i doveri del generale vi era il controllo delle case congre- gate e l’osservanza della loro disciplina. Per questo motivo i succes- sori di Giovanni continuarono a spostarsi da

However, unlike models with a direct decay to diphotons where the signal can be fitted with moderate couplings to photons (see figure 1 ), the prompt axion decay condition

„ Large scale and complex simulation models may be unpractical to simulate on a single-processor execution unit: huge memory requirements, large amount of time required to