Il pipelining: criticit - PowerPoint PPT Presentation

About This Presentation
Title:

Il pipelining: criticit

Description:

Title: Organizzazione del corso Author: Valeria Cardellini Last modified by: bruno ciciani Created Date: 1/17/2002 8:33:22 PM Document presentation format – PowerPoint PPT presentation

Number of Views:68
Avg rating:3.0/5.0
Slides: 29
Provided by: Valeri175
Category:

less

Transcript and Presenter's Notes

Title: Il pipelining: criticit


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

2
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
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 (40474)
40 beq, 1, 3, 7
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)
4
(No Transcript)
5
Salto condizionato nel MIPS (2)
Indirizzo di destinazione del salto (da EX/MEM)
Decisione sul salto
6
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)

7
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

8
(No Transcript)
9
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)
  • (vedi lucido succ.)

10
  • 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 del banco
    reg. perché nessuna istruzione successiva al
    salto ha raggiunto lo stadio WB
  • Necessità di ripristinare lo Status Register al
    valore relativo allistruzione precedente il
    salto NORMALMENTE VIENE FATTO USANDO UNA COPPIA
    DI REGISTRI, di cui uno memorizza il valore del
    secondo quando si è sicuri che tale valore non
    verrà mai annullato Richiami al checkpointing

11
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 successiva al brench (ROLL-BACK)

12
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)

13
Terza soluzione Riduzione dei tempi
  • Si anticipa la decisione sul salto ad uno stadio
    precedente a MEM
  • Occorre anticipare tre azioni
  • Calcolare lindirizzo di salto
  • Valutare la decisione del salto
  • per beq e bne occorre confrontare i registri
  • Aggiornare il PC
  • Occorre aggiungere delle risorse hardware
  • 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

14
Riduzione dei tempi (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)

15
Riduzione dei tempi (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

16
Modifica dellunità di elaborazione
Unità di confronto
Addizionatore
IF.Flush segnale per azzerare i campi
dellistruzione nel registro di pipeline
IF/ID (si simula il fetch di una istruzione nop)
17
Esempio
  • Consideriamo la sequenza di istruzioni MIPS
  • 36 sub 10, 4, 8
  • 40 beq 1, 3, 7 4044772
  • 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

18
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

19
(No Transcript)
20
(No Transcript)
21
Influenza sulle prestazioni delle
criticità sul controllo
  • Speeduppipeline Profondità
    pipeline
  • 1 cicli stallo
    pipeline per salto
  • Dato che
  • cicli stallo pipeline per salto frequenza salto
    ? penalizzazione salto
  • Si ottiene
  • Speeduppipeline
    Profondità pipeline
  • 1 frequenza
    salto ? penalizzazione salto

22
Interruzioni ed eccezioni nel MIPS
  • Gergo MIPS (ma abbastanza usato come terminologia
    anche
  • da altri costruttori)
  • Interruzioni (interrupts)
  • eventi esterni (come PD32)
  • Eccezioni (exceptions)
  • eventi interni, p.e
  • overflow
  • esecuzione di istruzioni illegali

23
Eccezioni nel MIPS
  • 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
    40000040hex )
  • 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)

24
Unità di elaborazione con pipelining e gestione
delle eccezioni
25
Esempio
  • Consideriamo la sequenza di istruzioni MIPS
  • 40hex sub 11, 2, 4
  • 44hex and 12, 2, 5
  • 48hex or 13, 2, 6
  • 4Chex add 1, 2, 1
  • 50hex slt 15, 6, 7
  • 54hex lw 16, 4(7)
  • Assumiamo che le istruzioni eseguite in caso di
    eccezione siano
  • 40000040hex sw 25, 1000(0)
  • 40000044hex sw 25, 1004(0)
  • Analizziamo cosa succede se listruzione add
    genera uneccezione (nel suo stadio EX ciclo di
    clock 6)

26
Esempio cicli di clock 6 e 7
  • In EPC 4Chex450hex
  • 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

27
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 58hex
    anche se listruzione che ha provocato
    leccezione è allindirizzo 4Chex
  • Eccezione precisa è sempre associata
    allistruzione esatta che ha causato leccezione
  • Listruzione che solleva leccezione è anche
    listruzione interrotta

28
Lunità completa di elaborazione e di controllo
del processore MIPS con pipeline
Write a Comment
User Comments (0)
About PowerShow.com