Sistemi Complessi di reti
sequenziali
Pipeline
Corso ASE - Prof. Antonino Mazzeo
Ing. Valentina Casola
2009/2010
1
Tempificazione dei sistemi sequenziali
complessi
I
U
X
Y
CK
2
Il segnale di clock
• Il clock è un segnale indipendente caratterizzato da un
periodo di clock (o ciclo di clock) TCK.
• Frequenza del clock: fCK= 1/TCK;
• Nel periodo TCK il segnale assume Il valore logico 1 per
un tempo TH e il valore logico 0 per un tempo TL
• Il rapporto TH / TCK è detto duty-cycle
• Il passaggio dal valore 0 al valore 1 è detto fronte di
salita
• Il passaggio dal valore 1 al valore 0 è detto fronte di
discesa
3
Tempi caratteristici di un flip-flop
• Per essere riconosciuto correttamente, l’ingresso
deve rimanere stabile all’interno di una finestra di
tempo nell’intorno di un fronte del clock
• Tempo di Set-Up (Ts)
– Intervallo minimo che precede l’evento di clock
durante il quale l’ingresso deve essere mantenuto
stabile;
• Tempo di Hold (TH)
– Intervallo minimo che segue l’evento di clock durante
il quale l’ingresso deve essere mantenuto stabile
• Tempo di propagazione (Tq)
4
Tempificazione di un sistema
sequenziale: vincoli
T deve soddisfare la
condizione:
T ≥ tq + τc,max +tsetup
tq è il tempo di
commutazione
τc,max è il tempo di calcolo
della rete
tsetup è il tempo di set-up
del registro
Vincolo sui FF:
5
Note: clock skew
Y
W
M
M
CK’
CK
Δ
T + Δ ≥ tq + τc,max +tsetup
tq + τc,min >th + Δ
6
Interconnessione fra reti sequenziali
Rete
1
Rete
3
Rete
2
Rete
4
7
Ciascuna rete sequenziale può essere
•
•
•
•
Una rete di Mealy
Una rete di Moore
Ciascuna rete può essere di tipo impulsivo o asincrona
Se le reti sono di tipo differente la descrizione del
funzionamento del sistema dipende dal tipo di ogni
singola rete e dalla loro interconnessione
• Se le reti sono omogenee e di tipo LLC è possibile
descrivere il loro comportamento in modo sistematico
con metodi di specifica e verifica ben consolidati nel
mondo industriale (i sistemi digitali complessi sono di
questo tipo).
8
Determinazione del tempo di ciclo
• In una rete level input, level output, clocked (LLC)
occorre determinare il periodo del clock, ovvero il
tempo di ciclo (intervallo minimo tra due impulsi
di abilitazione della rete)
• Il tempo di ciclo dipende dalla tipologia delle
macchine adottate (Mealy, Moore) e dalla
topologia della loro interconnessione;
• Analizziamo:
– Catene a ciclo aperto,
– Catene a ciclo chiuso
9
Catene aperte e catene chiuse di reti
sequenziali
• Una catena aperta è costituita da una cascata
di reti sequenziali in cui l’uscita dell’una è
applicata all’ingresso della successiva, fatta
eccezione della prima e dell’ultima
Rete
Combin.
Rete
Combin.
Rete
Combin.
10
Reti di Mealy e di Moore e dipendenza
dalle informazioni (input e stato)
Rete di Mealy
I
Rete di Moore
U
S
S’
CK
I
U
S
S’
CK
11
Definizioni e determinazione del ciclo
di clock
• Per classificare le reti si introduce il concetto
di percorso, fatto da diverse tratte connesse in
cascata:
– Percorso libero è fatto di tratte libere, ovvero
costituite da sole reti combinatorie (es. funzione
uscita e funzione stato prossimo);
– Percorso condizionato, se è presente almeno una
tratta condizionata, ovvero che contiene almeno
un registro.
12
Catena aperta di macchine di Mealy
I
U
I
U
I
U
S
S
’
S
S
’
S
S
’
CK
13
Determinazione del ciclo di clock per
catena aperta Mealy
• Esiste più di un percorso libero che connette
l’ingresso con l’uscita:
– ω1(i1,s1), ω2(i2,s2),…….. ωn(in,sn)
– ω1(i1,s1), ω2(i2,s2),…….. δn(in,sn)
T ≥ (n-1) tω,max + max (tω,max , tδ,max ) ≈ n tω,max
14
Catena aperta di macchine di Mealy-Moore
I
U I
U
I
U
I
U
S
S S
’
S
’
S
S
’
S
S
’
CK
15
Determinazione del ciclo di clock per
catena aperta Mealy- Moore
• Esiste più di un percorso libero che connette
l’ingresso con l’uscita; le tipologie di tratte libere:
– Ingresso, tratte Mealy, tratta Moore
– Tratta Moore, tratte Mealy, tratta Moore
– Tratta Moore, tratte Mealy, uscita
– Il T sarà calcolato considerando il tempo di
propagazione massimo tra tutti i percorsi liberi
16
Catena aperta di macchine di Moore
I
U
I
U
I
U
S
S
’
S
S
’
S
S
’
CK
17
Determinazione del ciclo di clock per
catena aperta Moore
• Caso particolare del precedente, i percorsi liberi
sono:
– Ingresso esterno, tratta δ
– Tratta ω, tratta δ
– Tratta ω, uscita
• Il tempo di propagazione massimo è dato al più
dalla somma di due reti combinatorie MA:
l’ingresso applicato all’ingresso condiziona
l’uscita solo dopo n cicli di clock, dunque è
sempre necessario attendere nT
18
Catena chiusa di macchine di Mealy
I
U
I
U
I
U
S
S
’
S
S
’
S
S
’
CK
Queste macchine possono non funzionare correttamente, l’uscita dipende da se stessa e
Il sistema può non stabilizzarsi:
un= ωn(in,sn) = ωn(ωn-1(in-1,sn-1),sn) = ωn(ωn-1( ……. ω1(u1,s1)),sn)
19
Catena chiusa Mealy-Moore
I
U I
U
I
U
I
U
S
S S
’
S
’
S
S
’
S
S
’
CK
20
Determinazione del ciclo di clock
per catena chiusa Moore
Come nel caso di catena chiusa ma senza ingressi ed
uscite esterne:
– Una tratta δ
– Una tratta ωmoore
– Zero, una o più tratte ωmealy
• Il tempo di propagazione massimo è
dimensionato dal massimo tra i tempi dei vari
percorsi possibili
21
Realizzare una catena chiusa avendo solo
macchine di Mealy: aggiunta registro
I
U
I
U
M
S
S’
S
S’
CK
Percorsi:
-ω2,δ1
-ω2, ω1
-δ2
22
Catena aperta di reti combinatorie
Y
A
D
F
G
H
D
CK
Tmin = tq + ts + tpF + tpG + tpH ≈ 3 tp,comb
23
Pipeline: Introduzione
• Il miglioramento delle prestazioni di un generico circuito digitale è
legato principalmente alla riduzione della profondità combinatoria
• Tale riduzione si può ottenere:
– Ottimizzando le parti puramente combinatorie del circuito
– Frazionando opportunamente le parti combinatorie per mezzo di registri
• Un generico data-path è costituito da una sequenza di operazioni
eseguite in cascata: questa struttura si presta molto bene al
frazionamento
• Una architettura in cui sono presenti registri con lo scopo di
frazionare la computazione viene detta pipeline
• Nelle architetture dei calcolatori l’introduzione di pipeline aumenta
il numero di istruzioni eseguite nell’unità di tempo
24
Pipeline di reti combinatorie
A
M
XF
F
YF
M
XG
G
M
H
M
Ck
25
Tempificazione di una Pipeline
Tmin ≈ max( tpF , tpG , tpH )
Il fattore guadagnato è pari al numero di stadi della pipe
26
Architetture pipeline parallele
• 3 reti con tempi di calcolo di 50 ns e una rete
con tempo di calcolo di 100 ns
– Frequenza di pipe non può essere migliore di 100
MHz (T=1/f=100 ns) e le tre reti più veloci sono
sfruttate al 50%
• Soluzione parallela che duplica rete a 100 ns,
con reti funzionanti in controfase, multiplate
nel tempo
27
Architettura pipeline con reti parallelo
φ/2
φ/2
M
C1
M
!φ/2
C2
M
Cn
M
M
φ
φ/2
T-FF
!φ/2
28
Calcolo del tempo di ciclo
• T per la rete lenta è vincolato da
2T ≥ tf + 2τcmax + τmux+ tsetup
da cui
T ≥ τcmax + ½(tf + 2τmux+ tsetup)
• T per la rete veloce è vincolato da
T ≥ tf + τcmax + tsetup
• Va scelto il massimo fra i due:
T ≥ τcmax + max(½(tf + τmux+ tsetup), (tf + tsetup))
29
Applicazioni delle pipeline alle CPU
• L’esecuzione di una istruzione assembler consiste nello
svolgimento di alcune operazioni in sequenza
• E’ possibile scomporre una istruzione in un numero
variabile di operazioni:
– Una scelta comune consiste nella decomposizione in 5
operazioni
– Le architetture moderne arrivano fino a 20 operazioni
• Le varie operazioni, dette fasi o stadi, possono essere
eseguite:
– Nello stesso ciclo di clock
– In cicli di clock successivi
• Nel secondo caso si parla di una architettura pipeline
30
Esempio: Fasi di esecuzione del
Processore DLX
• La decomposizione in 5 fasi consiste in
– Fetch: Lettura dell’istruzione (una o più parole) dalla
memoria di programma. L’istruzione viene memorizzata
nel registro IR
– Decode: Scomposizione dell’istruzione in campi (codice
operativo, registro, costante, ecc), a seconda del formato e
delle modalità di indirazzamento
– Execute: Esecuzione delle operazioni aritmetico-logiche
oppure calcolo dell’indirizzo di destinazione di un salto
– Memory access: Accesso in lettura o scrittura alla
memoria o ad una periferica
– Write back: Salvataggio del risultato prodotto
dall’istruzione nel registro destinazione
31
Modello di riferimento del DLX
Istruzione i
istruzione i+1
istruzione i+2
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
32
Pipeline: Speed up e latenza
• Teoricamente, se gli stage della pipe sono
perfettamente bilanciati e non si verificano
condizioni di stallo, il tempo per ogni singola
istruzione è:
Ti = tempo per istruzione senza pipe
Nstage della pipe
• Il tempo per avere la prima istruzione è detto tempo
di latenza ( si ha ogni qual volta si verifica uno stallo)
• In realtà bisogna considerare il tempo di setup dei
latch tra i vari stadi della pipe ed il bus skew
33
Fasi di esecuzione
• Si noti che:
– Non tutte le fasi devono essere sempre presenti.
Alcune istruzioni possono necessitare solo di
alcune delle fasi descritte
– Non tutte le fasi devono essere sempre distinte.
Alcune istruzioni possono raggruppare due o più
fasi in una sola
– La fase di fetch è sempre presente
– Fasi diverse possono avere durate diverse
34
Esempio: Sistemi Superscalari con
più Pipeline
Addizione:
Addizione e
Moltiplicazione:
35
Conclusioni
• Throghput: quantità di dati elaborati nell’unità di tempo
• Thoughput = Noperations / T
• Latenza: ritardo tra l’ingresso e l’uscita (tempo necessario da attendere per
l’esecuzione della prima istruzione)
• Latenza = Ty - Tx = T
• L’introduzione di pipelining è vantaggioso in quanto:
• Throughputpipe >>Throughput no pipe
• Latenzapipe ≈ Latenzano pipe
36
Scarica

Sistemi di reti sequenziali