Criticità sul controllo

Slides:



Advertisements
Presentazioni simili
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
Advertisements

Perché le interruzioni?
Università degli Studi di Napoli Federico II Facoltà di Ingegneria Dipartimento di Informatica e Sistemistica Corso di Sistemi ad elevate prestazioni –
Ottimizzazione statica del codice per processori pipelined Canella Matteo & Miglioli Filippo.
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
Tipo Documento: unità didattica 0 Modulo 0 Compilatore: ??? Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione C.Corpo D.Riepilogo.
2 Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione dati memorizzazione dati trasferimento.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
Corso di Informatica (Programmazione)
Risorse e Stallo.
CALCOLATORI ELETTRONICI Gestione delle subroutine.
Caratteristiche principali dell’architettura del processore MIPS
Caratteristiche principali dell’architettura del processore MIPS
Criticità sui dati Consideriamo una sequenza di 5 istruzioni
Il pipelining E’ una tecnica Analogia con la catena di montaggio
Il pipelining E’ una tecnica Analogia con la catena di montaggio
Criticità sui dati (1° esempio)
Caratteristiche principali dell’architettura del processore MIPS
Il pipelining: tecniche di base Lucidi fatti in collaborazione con lIng. Valeria Cardellini.
Criticità sui dati (esempio da fare on line)
Criticità sul controllo
Criticità sul controllo
Il livello Microarchitetturale
Convertitore A/D e circuito S/H
Il Linguaggio Macchina
Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.
Estensioni allarchitettura di Von Neumann Vito Perrone Corso di Informatica A per Gestionali.
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Le procedure di gestione input/output Poiché le operazioni di input/output sono più lente rispetto alla velocità del processore, occorrerà sincronizzarle.
Sistemi Complessi di reti sequenziali Pipeline
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
Architettura degli elaboratori
I vettore interruzioni
Architetture dei Calcolatori (Lettere j-z ) Il Processore
Architettura del calcolatore
Architettura degli Elaboratori II (canale P-Z) Istruzioni di controllo Dott. Franco Liberati.
Università degli Studi di Salerno Corso di Calcolatori Elettronici
Calcolatori Elettronici Introduzione al Pipelining Francesco Lo Presti Rielaborate da Salvatore Tucci.
Introduzione al linguaggio assembly del microprocessore a parte
Sistemi ad elevate prestazioni Lezione 1
Università degli Studi di Napoli “Federico II” Facoltà di Ingegneria Dipartimento di Informatica e Sistemistica Corso di Sistemi ad elevate prestazioni.
Gli interrupt Quando una periferica richiede attenzione alla cpu genera un segnale detto di interrupt.
Arch. Elab. - S. Orlando 1 Esercitazione su Instruction Level Parallelism Salvatore Orlando.
Architettura di una CPU
Arch. Elab. - S. Orlando 1 Progetto del processore e supporto del processore al SO (interruzioni – eccezioni) Salvatore Orlando.
Traformazioni fra Bistabili e Registri
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano introduzione alle architetture superscalari Come.
Migliorare le prestazioni delle cache
Bus Interface Unit L1 I-CacheL1 D-Cache Fetch/Decode unit Dispatch/Execute unit Retire unit Instruction Pool System Bus L2 Cache 256 KB integrata 4 cicli.
Calcolatori Elettronici Introduzione al Pipelining
1 Introduzione Sistema di calcolo Valutazione dell’impatto delle varie modifiche sulle prestazioni globali del sistema Modifiche all’architettura.
Calcolatori Elettronici Il Processore
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Calcolatori Elettronici Il Processore (2)
Tipo Documento: unità didattica 3 Modulo 7 Compilatore: Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione C.Corpo D.Riepilogo.
Calcolatori Elettronici Valutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci.
UNIVERSITÀ DEGLI STUDI DI BOLOGNA
Architettura di un calcolatore e linguaggio macchina.
L’esecuzione dei programmi
SPIM Esercizi. Esercizio 1 – il comando ‘li’ Il codice deve eseguire una singola operazione: mettere il valore immediato 1023 nel registro s3.
Informatica Generale Marzia Buscemi
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
Tipo Documento: unità didattica 3 Modulo 7 Compilatore: Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione C.Corpo D.Riepilogo.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata (3) Istruzioni J-type Istruzioni di salto Istruzioni.
1 Metodo I metodi sono uno strumento che i programmatori usano per strutturare i programmi, sia per renderli più facili da capire che per permettere il.
Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
Esercitazione su Instruction Level Parallelism
Transcript della presentazione:

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

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

Salto condizionato nel MIPS Implementazione vista finora dell’istruzione beq: La decisione sul salto avviene nello stadio MEM Salto eseguito: dopo l’esecuzione di beq, salto all’istruzione di indirizzo 72 (40+4+7*4) 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)

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

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)

Soluz. pessimistica: stallo della pipeline Si blocca la pipeline finché non viene presa la decisione sul salto e poi si carica la pipeline con l’istruzione 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 ID IF EX MEM WB beq $1, $3, L1 and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 bolla

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

Se invece il salto viene eseguito (la predizione è errata) Si scartano le istruzioni che sono state nel frattempo caricate nella pipeline Nell’esempio 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 dall’istruzione di destinazione del salto (nell’esempio del lucido 2 l’istruzione 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 all’istruzione 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

Soluzione ottimistica ( caso con salto - 1) Annullamento delle tre istruzioni successive alla beq Necessità di riportare lo status register in una condizione precedente all’esecuzione dell’istruzione successiva al brench (ROLL-BACK)

Soluzione ottimistica (con salto - 2) Annullamento delle tre istruzioni successive Riportare lo status register in una condizione precedente all’esecuzione dell’istruzione sucessiva al brench (ROLL-BACK)

Terza soluzione: Riduzione dei tempi Si anticipa la decisione sul salto ad uno stadio precedente a MEM Occorre anticipare tre azioni Calcolare l’indirizzo 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 dell’indirizzo di salto Se l’indirizzo di salto è calcolato alla fine dello stadio EX: due stalli alla fine dello stadio ID: uno stallo – quindi più conveniente Si sposta l’addizionatore per l’indirizzo di salto nello stadio ID

Riduzione dei tempi (2) Per confrontare i registri Nel caso di beq: l’unità di confronto posta nello stadio ID esegue lo XOR bit a bit dei due registri e poi l’OR del risultato dello XOR Può essere necessario uno stallo per risolvere una criticità sui dati Es.: l’istruzione immediatamente precedente beq produce uno dei due operandi confrontati add $6, $6, $4 beq $6, $7, Loop Occorre gestire la propagazione all’ingresso dell’unità 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)

Riduzione dei tempi (3) Per aggiornare il PC Si sposta nello stadio IF la porta AND con ingressi il segnale di controllo Branch e l’uscita dell’unità di confronto Se il salto è eseguito, il PC è scritto con l’indirizzo 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

Modifica dell’unità di elaborazione Unità di confronto Addizionatore IF.Flush: segnale per azzerare i campi dell’istruzione nel registro di pipeline IF/ID (si simula il fetch di una istruzione nop)

Esempio Consideriamo la sequenza di istruzioni MIPS Assumiamo che: 36 sub $10, $4, $8 40 beq $1, $3, 7 # 40+4+4*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) l’esecuzione del salto sia stata anticipata allo stadio ID

Esempio: cicli di clock 3 e 4 L’istruzione 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) L’istruzione lw (corrispondente alla destinazione del salto) viene caricata nella pipeline

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

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

Eccezioni nel MIPS E’ un’altra forma di criticità sul controllo Azioni da intraprendere caso eccezione overflow Caricare il PC con l’indirizzo di gestione dell’eccezione Serve per eseguire il driver (indirizzo: 40000040hex ) Memorizzare l’indirizzo dell’istr. che ha causato l’eccez. Si usa un registro ad hoc (EPC), serve per diagnostica Svuotare immediatamente la pipeline dalle istruzioni caricate successivamente a quella che ha generato l’eccezione Segnali IF.Flush, ID.Flush, EX.Flush Permettere di identificare lo stato dei registri Es.: se l’istruzione add $1, $2, $1 causa overflow occorre preservare il vecchio valore di $1 e quello dello Status Register Memorizzare la causa dell’eccezione Si usa un registro ad hoc (cause)

Unità di elaborazione con pipelining e gestione delle eccezioni

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 l’istruzione add genera un’eccezione (nel suo stadio EX: ciclo di clock 6)

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

Eccezioni imprecise In un calcolatore con pipelining è difficile associare sempre in modo corretto un’eccezione all’istruzione che l’ha provocata (ci sono in esecuzione un numero di istruzioni pari al numero degli stadi) Eccezione imprecisa: non è associata all’istruzione esatta che ha causato l’eccezione Esempio con eccezione imprecisa: in EPC 58hex anche se l’istruzione che ha provocato l’eccezione è all’indirizzo 4Chex Eccezione precisa: è sempre associata all’istruzione esatta che ha causato l’eccezione L’istruzione che solleva l’eccezione è anche l’istruzione interrotta

L’unità completa di elaborazione e di controllo del processore MIPS con pipeline