360 likes | 496 Views
Sistemi Complessi di reti sequenziali Pipeline. Corso ASE - Prof. Antonino Mazzeo Ing. Valentina Casola 2009/2010. Tempificazione dei sistemi sequenziali complessi. I. U. X. Y. CK. Il segnale di clock.
E N D
Sistemi Complessi di reti sequenziali Pipeline Corso ASE - Prof. Antonino Mazzeo Ing. Valentina Casola 2009/2010
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
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)
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: • tq + τc,min >th
Note: clock skew M M Y W CK CK’ Δ T + Δ ≥ tq + τc,max +tsetup tq + τc,min >th + Δ
Interconnessione fra reti sequenziali Rete1 Rete3 Rete2 Rete4
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).
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
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.
Reti di Mealy e di Moore e dipendenza dalle informazioni (input e stato) Rete di Mealy Rete di Moore I U I U S S’ S S’ CK CK
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.
Catena aperta di macchine di Mealy U I I U I U S S’ S S’ S S’ CK
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
Catena aperta di macchine di Mealy-Moore I U U I I U I U S S’ S S’ S S’ S S’ CK
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
Catena aperta di macchine di Moore U I I U I U S S’ S S’ S S’ CK
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
Catena chiusa di macchine di Mealy U I 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)
Catena chiusa Mealy-Moore I U I U U I I U S S’ S S’ S S’ S S’ CK
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
Realizzare una catena chiusa avendo solo macchine di Mealy: aggiunta registro I U I U M S S’ S S’ • Percorsi: • ω2,δ1 • ω2, ω1 • δ2 CK
Catena aperta di reti combinatorie D D Y A F G H CK Tmin = tq + ts + tpF + tpG + tpH ≈ 3 tp,comb
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
Pipeline di reti combinatorie A XF YF XG M M M M H F G Ck
Tempificazione di una Pipeline Tmin ≈ max( tpF , tpG , tpH ) Il fattore guadagnato è pari al numero di stadi della pipe
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
Architettura pipeline con reti parallelo φ/2 φ/2 M M M M !φ/2 Cn C2 M C1 φ φ/2 T-FF !φ/2
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))
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
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
Istruzione i IF IF ID ID EX EX MEM MEM WB WB istruzione i+1 istruzione i+1 IF IF ID ID EX EX MEM MEM WB WB istruzione i+2 istruzione i+2 IF IF ID ID EX EX MEM MEM WB WB Modello di riferimento del DLX
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
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
Esempio: Sistemi Superscalari con più Pipeline Addizione e Moltiplicazione: Addizione:
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