Lezione 3 La pipeline Vittorio Scarano rchitettra orso di Larea in Informatica Università degli Stdi di Salerno 2 Organizzazione della lezione La pipeline il concetto alcni problemi (le criticità) e le solzioni La nità di elaborazione con pipeline progettazione Un esempio pratico di pipeline onfronto tra ciclo singolo e pipeline 6 P 7 8 9 2 2 6 P 7 8 9 2 2 6 P 7 8 9 2 2 6 P 7 8 9 2 2 ompiti: lavaggio ascigatra stiratra riordino $, ($) $2, 2($) 2 6 8 2 6 8 LU 8ns ata 2 6 8 2 $, ($) ata LU $2, 2($) ata LU ata LU LU 8ns ata... 8ns 3 La nità di elaborazione a ciclo singolo IF: P ddress dd I: decode/ file read isters 6 Si gn EX: Eecte/ address calclation dd dd resl t LU LU E:emory ddress ata W: back lcni commenti slla pipeline La presenza di na pipeline fa amentare il nmero di istrzioni contemporaneamente in eseczione non fa ridrre il tempo necessario alla eseczione di na eseczione na istrzione che richiede 5 passi, richiede sempre 5 cicli di clock La pipeline migliora il nmero di istrzioni esegite per nità di tempo (il throghpt) e non il tempo di eseczione di ciascna istrzione I set di istrzione devono essere progettati in maniera opportna per poter introdrre le pipeline con efficacia 5 6
7 Le criticità nelle architettre a pipeline Sorgono qando non è possibile esegire na istrzione nel ciclo di clock immediatamente segente Tre tipi di criticità: criticità strttrale qando le risorse hardware non possono spportare la combinazione di istrzioni contemporaneamente il IPS (nità a ciclo singolo) è progettato per l so di pipeline: sare de memorie (dati/programmi) aita criticità sl controllo necessario scegliere alternative con operazioni ancora in eseczione tipico esempio: il salto condizionato: se sto esegendo beq come faccio a sapere (in anticipo) qale è la istrzione sccessiva da iniziare a esegire? 8 riticità sl controllo: n esempio Uno stallo : la istrzione dopo la beq viene esegita con ritardo introdcendo n bco (bbble) 2 6 8 2 6 ata add $, $5,$6 LU beq $, $2, ns LU ata LU ata 9 riticità sl controllo Esistono altre solzioni irciti di predizione del comportamento dei salti condizionati esempio: prediciamo che ttti i salti condizionati non vengono esegiti : se abbiamo ragione, la pipeline fnziona a massima velocità altrimenti dobbiamo bttare il lavoro fatto (svotamento della pipe) e ricominciare irciti di predizione dinamica adattano la predizione al comportamento del programma esempio: nelle istrzioni ssembler corrispondenti a for (i = ; i < 2; i++). il salto per ritornare all inizio del ciclo (bne) viene sempre esegito tranne l ltima volta (qando si esce dal ciclo) Lo svotamento della pipe add $, $5, $6 beq $, $2, add $, $5,$6 beq $, $2, or $7, $8, $9 2 ns 2 ns 2 6 8 2 2 ns LU ata LU ata LU ata 2 6 8 2 ns LU ata LU ata bbble bbble bbble bbble bbble LU ata riticità si dati Terzo tipo di criticità: qando na istrzione dipende dal risltato di na istrzione precedente che si trova nella pipeline d esempio: add $s, $t, $t sb $t2, $s, $t3 la sottrazione sa il risltato della somma Una solzione la propagazione o scavalcamento qando la LU genera n risltato qesto viene messo a disposizione sbito per il passo della istrzione che sege riordinare il codice: spostare istrzioni innoce in modo che esse eliminino la criticità Prima solzione: la propagazione 2 add $s, $t, $t add $s, $t, $t sb $t2, $s, $t3 Instr. Fetch 2 6 8 lettra scrittra IF I EX E W ec/ister Eseczione emoria dati 2 6 8 IF I EX E W IF I EX E -back nei registri W 2
Seconda solzione: il riordino delle istrzini L assemblatore riordina il codice riticità $t, ($t) $t2, ($t) sw $t2, ($t) sw $t, ($t) $t, ($t) $t2, ($t) sw $t, ($t) sw $t2, ($t) Organizzazione della lezione La pipeline il concetto alcni problemi (le criticità) e le solzioni La nità di elaborazione con pipeline progettazione 3 Lo spostamento dei dati nella nità Eseczione delle istrzioni IF: P ddress d d Instr ction me mory I: decode/ file read isters 6 2 EX: Eecte/ address calclation dd dd LU LU E: emory ddress ata memo ry W: back indirizzo di salto calcolato (da destra verso sinistra) $2, 2($) (in clock cycles) solo lettra 2 3 5 6 7 $, ($) I LU solo scrittra I LU I LU 5 scrittra risltato nel banco dei registri 6 La nità di elaborazione con pipeline Principio gida: permettere il riso delle componenti per la istrzione sccessiva Introdzione di registri di pipeline ad ogni ciclo di clock le informazioni necessarie procedono da n registro di pipeline a qello sccessivo il nome del registro è dato dai de stadi che separa registro IF/I ( Fetch / ecode) registro I/EX ( ecode / Eseczione) registro EX/E (Eseczione /emoria) registro E/W (emoria / back) La nità con pipeline P ddress dd IF/I I/EX EX/E E/W Ins trction isters 2 6 dd dd LU LU ddress ata 7 8 3
Uso della nità con pipeline escriviamo come viene esegita na istrzione nei vari stadi della pipeline Istrzione prelievo della istrzione ( ) decodifica della istrzione e lettra dei registri eseczione (so LU per il calcolo dell indirizzo) lettra dalla memoria scrittra nel registro (write-back) Eseczione di : primo stadio P ddress dd IF/I I/EX EX/E E/W isters dd dd LU LU ddress ata 6 9 2 Eseczione di : secondo stadio Eseczione di : terzo stadio decode Eection IF/I I/EX EX/E E/W IF/I I/EX EX/E E/W P dd ddress Instr cti on isters 2 dd dd LU LU ddress ata P d d dd ress isters 2 dd dd LU LU ddress ata 6 6 2 22 Eseczione di : qarto stadio Eseczione di : qinto stadio emory back IF/I I/EX EX/E E/W IF/I I/EX EX/E E/W dd dd P ddress Instr ction isters 6 dd dd LU LU ddress ata P ddress isters 6 dd dd LU LU ddress ata 23 2
accia all errore La solzione back gginta ai registri di pipeline la informazione sl registro da scrivere IF/I I/EX EX/E E/W IF/I I/EX EX/E E/W dd dd P ddress isters 6 dd dd LU LU ddress ata P ddress isters 6 dd dd LU LU ddress Wri te a ta da ta 25 26 La solzione e istrzioni insieme gginta ai registri di pipeline la informazione sl registro da scrivere $, 2($) IF/I I/EX EX/E E/W dd IF/I I/EX EX/E E/W P ddress isters 6 dd dd LU LU ddress Wri te a ta da ta P dd ddress Re ad isters Re ad 6 dd dd LU LU ddress ata lock 27 28 e istrzioni insieme e istrzioni insieme sb $, $2, $3 $, 2($) decode sb $, $2, $3 decode $, 2($) Eection P dd ddress IF/I I/EX EX/E E/W isters 6 Si gn dd dd LU LU ddress ata P dd ddress IF/I I/EX EX/E E/W isters 2 regi ster 6 dd dd LU LU ddress ata Wr ite lock 3 lock 2 29 3 5
e istrzioni insieme e istrzioni insieme sb $, $2, $3 Eection $, 2($) emory sb $, $2, $3 emory $, 2($) back IF/I I/EX EX/E E/W IF/I I/EX EX/E E/W P dd ddress isters dat a dat a 2 dd dd LU LU d dress ata P dd ddress 2 isters 2 dd dd LU LU ddress ata 6 6 lock lock 5 3 e istrzioni insieme sb $, $2, $3 back IF/I I/EX EX/E E/W P dd ddress 2 isters dd dd LU LU ddress ata 6 lock 6 33 6