La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Il pipelining: criticità sul controllo ed eccezioni Lucidi fatti in collaborazione con lIng. Valeria Cardellini.

Presentazioni simili


Presentazione sul tema: "Il pipelining: criticità sul controllo ed eccezioni Lucidi fatti in collaborazione con lIng. Valeria Cardellini."— Transcript della presentazione:

1 Il pipelining: criticità sul controllo ed eccezioni Lucidi fatti in collaborazione con lIng. Valeria Cardellini

2 1 Criticità sul controllo Criticità sul controllo: tentativo di prendere una decisione sulla prossima istruzione da caricare prima che sia stata valutata la condizione di salto Determinata dal pipelining di: –istruzioni di salto condizionato criticità anche detta conflitto di salto condizionato caso più frequente –altre istruzioni che modificano il PC salti incondizionati, … Statisticamente meno frequente della criticità sui dati Degrada le prestazioni rispetto allo speedup ideale ottenibile con il pipelining poiché può rendere necessario lo stallo della pipeline

3 2 Salto condizionato nel MIPS Implementazione vista finora dellistruzione beq: –La decisione sul salto avviene nello stadio MEM Salto eseguito: dopo lesecuzione di beq, salto allistruzione di indirizzo 72 (40+4+7*4) Salto eseguito (taken): il salto causa il trasferimento del controllo alla destinazione del salto Salto non eseguito (not taken): al salto seguono le istruzioni successive del programma (fall-through) 40 beq, $1, $3, 7

4 3 Salto condizionato nel MIPS (2) Decisione sul salto Indirizzo di destinazione del salto (da EX/MEM)

5 4 Soluzioni possibili Pessimistica: stallo della pipeline Ottimistica: ipotizzare che il salto condizionato non sia eseguito (branch not taken) Ridurre i ritardi associati ai salti Predizione (probabilistica) dei salti (non verrà trattato)

6 5 Soluz. pessimistica: stallo della pipeline Si blocca la pipeline finché non viene presa la decisione sul salto e poi si carica la pipeline con listruzione corretta (stalling until resolution) Decisione sul salto nello stadio MEM –E necessario inserire tre stalli Anticipando la decisione sul salto nello stadio EX –E comunque necessario inserire due stalli IDIFEXMEM WB IDIFEXMEM WB IDIFEXMEM WB IDIFEXMEM WB beq $1, $3, L1 and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 bolla

7

8 7 Soluz. ottimist.: ipotesi salto non eseguito Si assume che il salto non venga eseguito (branch not taken) –Si continuano a caricare nella pipeline le istruzioni successive a quella di salto condizionato Se il salto non è effettivamente eseguito –Non cè nessuna penalizzazione Se invece il salto viene eseguito (la predizione è errata) –Si scartano le istruzioni che sono state nel frattempo caricate nella pipeline Nellesempio del lucido 2, 3 istruz. (and, or, add) sono da scartare –Si puliscono gli stadi IF, ID, EX Flushing (annullamento) delle istruzioni –La pipeline viene caricata a partire dallistruzione di destinazione del salto (nellesempio del lucido 2 listruzione lw) –Non è stato modificato nessun registro perché nessuna istruzione successiva al salto ha raggiunto lo stadio WB –Necessità di ripristinare lo Status Register al valore relativo allistruzione precedente il salto

9 Soluzione ottimistica ( caso con salto - 1) Annullamento delle tre istruzioni successive alla beq Necessità di riportare lo status register in una condizione precedente allesecuzione dellistruzione sucessiva al brench (ROLL-BACK)

10 Soluzione ottimistica (con salto - 2) Annullamento delle tre istruzioni successive Riportare lo status register in una condizione precedente allesecuzione dellistruzione sucessiva al brench (ROLL- BACK)

11 10 Terza soluzione: Riduzione dei tempi Si anticipa la decisione sul salto ad uno stadio precedente a MEM Occorre anticipare tre azioni 1.Calcolare lindirizzo di salto 2.Valutare la decisione del salto per beq e bne occorre confrontare i registri 3.Aggiornare il PC Occorre aggiungere delle risorse hardware 1.Per il calcolo dellindirizzo di salto –Se lindirizzo di salto è calcolato alla fine dello stadio EX: due stalli alla fine dello stadio ID: uno stallo – quindi più conveniente –Si sposta laddizionatore per lindirizzo di salto nello stadio ID

12 11 Riduzione dei tempi (2) 2.Per confrontare i registri –Nel caso di beq: lunità di confronto posta nello stadio ID esegue lo XOR bit a bit dei due registri e poi lOR del risultato dello XOR –Può essere necessario uno stallo per risolvere una criticità sui dati Es.: listruzione immediatamente precedente beq produce uno dei due operandi confrontati add $6, $6, $4 beq $6, $7, Loop Occorre gestire la propagazione allingresso dellunità di confronto –gli operandi sorgente possono provenire dai registri di pipeline EX/MEM o MEM/WB (PER NON INGARBUGLIARE I DISEGNI NON E PREVISTO NELLE FIGURE SUCCESSIVI)

13 12 Riduzione dei tempi (3) 3.Per aggiornare il PC –Si sposta nello stadio IF la porta AND con ingressi il segnale di controllo Branch e luscita dellunità di confronto –Se il salto è eseguito, il PC è scritto con lindirizzo di destinazione del salto al termine del ciclo di clock dello stadio ID di beq Anticipando la decisione sul salto allo stadio ID si riducono i ritardi associati ai salti (branch penalty) –occorre inserire un solo stallo dopo ogni salto –oppure svuotare la pipeline di una sola istruzione

14 13 Modifica dellunità di elaborazione IF.Flush: segnale per azzerare i campi dellistruzione nel registro di pipeline IF/ID Unità di confronto Addizionatore

15 14 Esempio Consideriamo la sequenza di istruzioni MIPS 36sub $10, $4, $8 40beq $1, $3, 7# *7=72 44 and $12, $2, $5 48 or $13, $2, $6 52 add $14, $4, $2 56 add $15, $6, $7 … 72 lw $4, 50($7) Assumiamo che: –la pipeline sia ottimizzata per SOLUZIONE OTTIMISTICA (salti non eseguiti) –lesecuzione del salto sia stata anticipata allo stadio ID

16 15 Esempio: cicli di clock 3 e 4 Listruzione and entra nella pipeline (branch not taken) Nello stadio ID si determina che il salto deve essere eseguito (predizione errata) Viene selezionato 72 come prossimo valore del PC Viene azzerato il caricamento di and nella pipeline (segnale IF.Flush) Listruzione lw (corrispondente alla destinazione del salto) viene caricata nella pipeline

17 16 Influenza sulle prestazioni delle criticità sul controllo Speedup pipeline = Profondità pipeline 1 + cicli stallo pipeline per salto Dato che cicli stallo pipeline per salto = frequenza salto penalizzazione salto Si ottiene Speedup pipeline = Profondità pipeline 1 + frequenza salto penalizzazione salto

18 17 Eccezioni nel MIPS Alcuni tipi di eccezioni –Overflow –Istruzioni illegali E unaltra forma di criticità sul controllo Azioni da intraprendere caso eccezione overflow –Caricare il PC con lindirizzo di gestione delleccezione Serve per eseguire il driver (indirizzo: hex ) –Memorizzare lindirizzo dellistr. che ha causato leccez. Si usa un registro ad hoc (EPC), serve per diagnostica –Svuotare immediatamente la pipeline dalle istruzioni caricate successivamente a quella che ha generato leccezione Segnali IF.Flush, ID.Flush, EX.Flush –Permettere di identificare lo stato dei registri Es.: se listruzione add $1, $2, $1 causa overflow occorre preservare il vecchio valore di $1 e quello dello Status Register –Memorizzare la causa delleccezione Si usa un registro ad hoc (cause)

19 18 Unità di elaborazione con pipelining e gestione delle eccezioni

20 19 Esempio Consideriamo la sequenza di istruzioni MIPS 40 hex sub $11, $2, $4 44 hex and $12, $2, $5 48 hex or $13, $2, $6 4C hex add $1, $2, $1 50 hex slt $15, $6, $7 54 hex lw $16, 4($7) … Assumiamo che le istruzioni eseguite in caso di eccezione siano hex sw $25, 1000($0) hex sw $25, 1004($0) Analizziamo cosa succede se listruzione add genera uneccezione (nel suo stadio EX: ciclo di clock 6)

21 20 Esempio: cicli di clock 6 e 7 In EPC 4C hex +4=50 hex Vengono asseriti tutti i segnali di flushing (IF.Flush, ID.Flush e EX.Flush) I segnali di controllo per add vengono messi a 0 Listruzione and termina Viene caricata nella pipeline la prima istruzione della routine di gestione delle eccezioni Listruzione or termina

22 21 Eccezioni imprecise In un calcolatore con pipelining è difficile associare sempre in modo corretto uneccezione allistruzione che lha provocata (ci sono in esecuzione un numero di istruzioni pari al numero degli stadi) Eccezione imprecisa: non è associata allistruzione esatta che ha causato leccezione –Esempio con eccezione imprecisa: in EPC 58 hex anche se listruzione che ha provocato leccezione è allindirizzo 4C hex Eccezione precisa: è sempre associata allistruzione esatta che ha causato leccezione –Listruzione che solleva leccezione è anche listruzione interrotta

23 22 Lunità completa di elaborazione e di controllo del processore MIPS con pipeline


Scaricare ppt "Il pipelining: criticità sul controllo ed eccezioni Lucidi fatti in collaborazione con lIng. Valeria Cardellini."

Presentazioni simili


Annunci Google