Gestione delle eccezioni (CPU multiciclo) La CPU pipeline

Documenti analoghi
CPU multiciclo eccezioni CPU pipeline

La pipeline. Sommario

La pipeline. Sommario

La pipeline. Sommario

La pipeline. Sommario

CPU a ciclo multiplo: l unità di controllo

CPU a ciclo multiplo

Architettura della CPU multi-ciclo

CPU a ciclo multiplo

L unità di controllo di CPU multi-ciclo. Sommario

Una CPU multi-ciclo. Sommario

CPU pipeline hazards

L unità di controllo di CPU multi-ciclo

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

Architettura degli elaboratori - II Le architetture multi-ciclo

Unità di controllo della pipeline

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

Stall on load e Hazard sul controllo

Stall on load e Hazard sul controllo

L unità di controllo di CPU a singolo ciclo

Stall on load e Hazard sul controllo. Sommario

L unità di controllo di CPU a singolo ciclo

Calcolatori Elettronici

Pipelining: Unità di Elaborazione e di Controllo Barbara Masucci

L'architettura del processore MIPS

Progetto CPU a singolo ciclo

Richiami sull architettura del processore MIPS a 32 bit

Problemi del ciclo singolo

La CPU pipeline. Principio intuitivo della pipe-line. Architettura degli Elaboratori e delle Reti. A. Borghese, F. Pedersini

CALCOLATORI ELETTRONICI 14 giugno 2010

Stall on load. Sommario

Architettura dei calcolatori e sistemi operativi. Il processore pipeline Capitolo 4 P&H

Il processore: unità di controllo

Calcolatori Elettronici B a.a. 2007/2008

CALCOLATORI ELETTRONICI 9 settembre 2011

Richiami sull architettura del processore MIPS a 32 bit

CALCOLATORI ELETTRONICI 30 agosto 2010

CPU pipeline 3 criticità di dati e di controllo

CALCOLATORI ELETTRONICI 29 giugno 2015

Università degli Studi di Cassino

Pipeline criticità e forwarding

Sommario. Gestione delle criticità sui dati nella pipeline. CPU con pipeline. Criticità nei dati. Hazard nei dati: soluzione tramite compilatore

Calcolatori Elettronici B a.a. 2005/2006

Architettura degli elaboratori CPU a ciclo singolo

Calcolatori Elettronici

Una CPU multi-ciclo. Sommario

Una CPU multi-ciclo. Sommario

Architettura degli elaboratori CPU a ciclo singolo

Gestione delle eccezioni.

Lezione 29 Il processore: unità di controllo (2)

CALCOLATORI ELETTRONICI 20 gennaio 2012

La CPU a singolo ciclo

7 May INTERRUPT ED ECCEZIONI I. Frosio

L unità di controllo di CPU a singolo ciclo. Sommario

Progetto CPU a singolo ciclo

La CPU a singolo ciclo

Interrupt ed Eccezioni

CALCOLATORI ELETTRONICI 27 marzo 2018

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

CALCOLATORI ELETTRONICI 27 giugno 2017

Sia per la II prova intercorso che per le prove di esame è necessaria la PRENOTAZIONE

Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico

Architettura dell elaboratore

Architettura dell elaboratore

Esercitazione del 10/05/ Soluzioni

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Come si definisce il concetto di performance? Tempo di esecuzione di un programma. numero di task/transazioni eseguiti per unità di tempo

Hazard sul controllo. Sommario

Esercitazione del 05/05/ Soluzioni

Fasi (MIPS) Dove NPC è un registro temporaneo PC (program counter) è il registro IP (instruction pointer)

L unità di controllo di CPU multi-ciclo

CALCOLATORI ELETTRONICI 9 gennaio 2013

Il pipelining: tecniche di base

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Eccezioni. Università degli Studi di Milano Corso di Laurea in Informatica, A.A

15 April INTERRUPT ED ECCEZIONI I. Frosio

Il pipelining: tecniche di base

CALCOLATORI ELETTRONICI 15 giugno 2015

Sistemi e reti CPU Concetti di base

Un quadro della situazione. Cosa abbiamo fatto. Lezione 30 Valutazione delle Prestazioni. Dove stiamo andando.. Perché:

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Elementi di informatica

CALCOLATORI ELETTRONICI A 25 gennaio 2011

Università degli Studi di Cassino

Esercitazione del 30/04/ Soluzioni

Un quadro della situazione. Lezione 28 Il Processore: unità di controllo (2) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

Esercitazione del 30/04/ Soluzioni

Indirettezza. Fetch/Execute. Fetch/Execute. Introduzione della Indirettezza (indirect)

La pipeline. Luigi Palopoli

Cicli di clock e istruzioni

Università degli Studi di Cassino

Instruction Level Parallelism Salvatore Orlando

Instruction Level Parallelism

Instruction Level Parallelism Andrea Gasparetto

CPU pipeline 4: le CPU moderne

Architettura degli Elaboratori

Modi di esecuzione user / kernel

Transcript:

Architettura degli Elaboratori e delle Reti Lezione 22 Gestione delle eccezioni (CPU multiciclo) La CPU pipeline A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 22 1/29 Eccezioni ed Interrupt! Eccezioni: eventi che alterano l esecuzione di un programma " Eccezioni Generate internamente al processore (e.g. overflow) " Interrupts Generati esternamente al processore (e.g. richiesta di attenzione da parte di una periferica). Come si comporta la CPU a fronte di eccezioni?! In modo funzionalmente equivalente ad una jump Tipo di evento Richiesta di un dispositivo di I/O Uso di un istruzione non definita Overflow aritmetico Chiamata al S.O. da parte di un programma (es. syscall) Malfunzionamento hardware Provenienza Esterna Interna Interna Interna Entrambe Terminologia MIPS Interrupt Eccezione Eccezione Eccezione Eccezione / Interrupt L 22 2/29

Azioni in risposta ad un eccezione Come reagisce la CPU ad un eccezione? 1. Salvataggio dell indirizzo dell istruzione coinvolta indirizzo istruzione corrente: ($PC 4) 2. Trasferimento del controllo al Sistema Operativo: jump il quale deve gestire la condizione di eccezione.! Operazioni da svolgere: 1. Salvataggio ambiente, 2. Riconoscimento e gestione eccezione, 3. Ripristino ambiente " Gestione software operazione delicata. Per questo le eccezioni vengono gestite dal Sistema Operativo L 22 3/29 Hardware addizionale:! Registro EPC (Exception Program Counter) " registro a 32 bit utilizzato per memorizzare l indirizzo dell istruzione coinvolta! Registro Causa " registro utilizzato per memorizzare la causa dell eccezione; (MIPS: 32 bit) bit 0 = 0 # Causa: Istruzione indefinita (Illegal OpCode) bit 0 = 1 # Causa: Overflow aritmetico! Segnali di controllo aggiuntivi " EPCWrite scrittura nel registro EPC. " CausaWrite scrittura nel registro Causa. " CausaInt dato per il registro Causa.! Ingressi aggiuntivi alla UC (FSM) " Aggiunta di Overflow (proveniente dalla ALU) L 22 4/29

HW per risposta ad eccezioni! Salvataggio del PC: EPC $ PC 4; Selezione della causa (0...0, 0...1) PC $ exception address; PCSource exc. addr. 0 1 2 3 4 EPCWrite EPC CausaWrite Causa CausaInt!"""# 00..0 00..1 L 22 5/29 Gestione eccezioni: esempi Esempio: gestione di 2 tipi di eccezione: 1. Istruzione indefinita: " n esiste, al passo 2 (stato 1 Decodifica), uno stato futuro valido. " Nuovo stato futuro denominato: Invalid OpCode! Tale stato viene raggiunto al verificarsi dell eccezione. 2. Overflow aritmetico: " Al passo 4 di esecuzione dell operazione (ALU ha già eseguito l operazione manca la fase di Write-back nel RF) lo stato futuro è scelto in funzione del segnale di Overflow " Overflow # input aggiuntivo alla FSM della UC " Necessità di uno stato aggiuntivo: $Overflow% L 22 6/29

FSM di CPU Multi-ciclo: STG L 22 7/29 Stato 10: Invalid OpCode! Nuovo stato nella FSM dell unità di controllo: " Stato: Invalid OpCode stato 10 Stato 10: invalid OpCode Stato 1: Decodifica CausaInt = 0...0 ALUSrcA = 0 (PC) ALUSrcB = 01 (4) ALUOp = 01 ( ) PCSource = 11 (exc. addr.) CausaWrite EPCWrite PCWrite Stato 0: Fetch L 22 8/29

Stato11: Overflow! Nuovo stato nella FSM dell unità di controllo: " Stato: Overflow stato 11 " raggiungibile solo per istruzioni tipo R, dopo l esecuzione del calcolo (Esecuzione fase II) Stato 11: Overflow Stato 7: a/l tipo R: exe fase II CausaInt = 0...1 CausaWrite ALUSrcA = 0 ALUSrcB = 01 ALUOp = 01 PCSource = 11 EPCWrite PCWrite Stato 0: Fetch L 22 9/29 CPU multi-ciclo con gestione eccezioni: FSM L 22 10/29

Risposta ad un eccezione Eccezione # Risposta di tipo software Esistono diverse tecniche di reazione ad un eccezione:! Vettorializzata: " Ogni eccezione rimanda ad un indirizzo diverso del SO " Dall indirizzo si può ricavare la causa dell eccezione " Gli indirizzi sono in genere equispaziati (es. ogni 8 parole)! Tramite registro (MIPS: registro causa): " Il SO ha un unico entry point per la gestione delle eccezioni. " La prima istruzione è di decodifica della causa dell eccezione " L entry point è forzato tramite: PCSource = 11 L 22 11/29 MIPS: Co-processore 0 Coprocessore 0 presente nelle architetture MIPS " Raccolta e gestione delle informazioni e gli indirizzi per la gestione delle eccezioni! Registri: Registro Bad/Addr Stato Causa EPC N. registro C0 8 12 13 14 Utilizzo / Contenuto Indirizzo di memoria a cui si è fatto riferimento Maschera delle interruzioni e bit di abilitazione Tipo di interruzione / interruzione pendente Indirizzo istruzione che ha causato l interruzione! Istruzioni che interessano il coprocessore 0 (c0): " Lettura/scrittura da memoria a registri di c0 lwc0 $<reg_c0> <offset>($reg) swc0 $<reg_c0> <offset>($reg) " Move from/to, tra registri general-purpose e registri di c0 mfc0 $<reg>, $<reg_c0> (pseudo-istruzione) mtc0 $<reg_c0>, $<reg> (pseudo-istruzione) L 22 12/29

Sommario! La gestione delle eccezioni in una CPU multi-ciclo! Introduzione sulla Pipe-line L 22 13/29 Principio intuitivo della pipe-line! Anna, Bruno, Carla e Dario devono fare il bucato. Ciascuno deve: 1. lavare, 2. asciugare, 3. stirare 4. mettere via un carico di biancheria " La lavatrice richiede: 30 minuti " L asciugatrice: 30 minuti " Stirare richiede: 30 minuti " Piegare/mettere via: 30 minuti L 22 14/29

La lavanderia sequenziale Anna Bruno Carla Dario! le singole operazioni vengono svolte una alla volta T_totale = T_CicloCompleto * N_Utenti = = ( T_SingolaFase * N_Fasi ) * N_Utenti! Tempo totale richiesto: 8 ore L 22 15/29 La lavanderia pipe-line Anna Bruno Carla Dario! le singole operazioni vengono svolte in parallelo " T_totale = T_SingolaFase * ( N_Fasi + N_Utenti 1 )! Tempo totale richiesto: 3,5 ore L 22 16/29

Osservazioni sulla pipe-line! Il tempo di ciascuna operazione elementare non viene ridotto.! Gli stadi della pipe-line lavorano in contemporanea perché utilizzano unità funzionali differenti.! Le unità funzionali lavorano sequenzialmente (in passi successivi) su istruzioni successive % aumenta il Throughput (throughput = quantità di lavoro / tempo) L 22 17/29 Ciclo di esecuzione: istruzioni MIPS! MIPS è un architettura pipeline " le istruzioni richiedono 5 passi! MIPS: Pipeline a 5 stadi: 1. IF: Prelievo istruzione (Instruction Fetch) 2. ID: Decodifica istruzione (+ lettura RF) 3. EX: Esecuzione 4. MEM: Accesso a memoria (Read/Write) 5. WB: Scrittura del register file Prelievo istruzione: Fase di Fetch Decodifica Esecuzione Accesso Memoria Write Back L 22 18/29

I 5 stadi della pipeline! Tra cicli contigui sono posti i registri di pipe-line " Uno stadio inizia il suo lavoro quando il clock va basso e trasferisce in quello stadio l elaborazione effettuata dallo stadio precedente registri pipe-line Ciclo 1 IF Ciclo 2 ID Ciclo 3 EX Ciclo 4 MEM Ciclo 5 WB IF/ID ID/EX EX/Mem Mem/WB L 22 19/29 Rappresentazione della pipeline! Rappresenzatione convenzionale: " Ascisse (X): tempo " Ordinate (Y): Flusso di programma L 22 20/29

Rappresentazione grafica della pipeline Esempio: add $s0, $t0, $t1 # & ' ( )! Rappresentazione: " I rettangoli grigi a destra indicano lettura, a sinistra indicano scrittura. " I componenti bianchi, indicano il loro non utilizzo L 22 21/29 I vantaggi della pipeline L 22 22/29

Miglioramento delle prestazioni! Il miglioramento massimo è una riduzione del tempo di un fattore pari al numero di stadi della pipe-line " Nell esempio precedente (2 istruzioni lw,2ns ad istruzione), il tempo richiesto con la pipe-line è di 12 ns contro i 20 ns senza pipe-line. " Il miglioramento teorico prevedrebbe 4ns! Il Throughput migliora comunque! " Miglioramento relativo al lavoro globale (con pipe-line senza stalli) L 22 23/29 Utilizzo unità funzionali della CPU! Quali unità funzionali (ALU, RF, Mem) vengono utilizzate in ciascuna fase? Criticità strutturale: Se istruzioni diverse (in fasi diverse) necessitano contemporaneamente di una stessa risorsa, la risorsa va duplicata, oppure... si aspetta! Istruzioni # passo & Istruzioni tipo R Istruzioni di accesso a memoria Salto condizionato Salto non condizionato 1. Fetch 2. Decodifica IR = Memory[PC] ; PC = PC + 4 A = Reg[IR[25-21]] ; B = Reg[IR[20-16]] ALUout = PC + (sign_ext(ir[15-0]) << 2) 3. Esecuzione ALUOut = A oper B ALUOut = A + sign_ext(ir[15-0]) If (A==B) then PC = ALUOut PC = PC[31-28] IR[25-0]<<2 4. Mem: acc. R: WB Reg([IR[15-11]] = ALUOut lw: MDR=Mem[ALUOut] sw: Mem[ALUOut] = B 5. Mem: WB lw: Reg[IR[20-16]] = MDR L 22 24/29

Utilizzo unità funzionali della CPU! Passo esecuzione ALU Memoria Register File 1 Fase fetch (PC+4) 2 Decodifica (salto) Exec I beq (test) Exec I jump 3 Exec I tipo R (salto) Exec I sw (indirizzo) Exec I lw (indirizzo) Exec II tipo R (op) 4 Exec II sw Exec II lw 5 Exec III lw L 22 25/29 Pipeline per l istruzione: lw! Limitandoci a considerare solo istruzioni lw: Passo esecuzione ALU Memoria Register File IF (Fase fetch) ID (Decodifica) EX (Esecuzione) MEM (Accesso memoria) WB (riscrittura) Tempo # & Istruzioni t 0 t 1 t 2 t 3 t 4 t 5 lw $t0, 8($t2) Mem, ALU RF ALU Mem RF lw $t1, 12($t2) Mem, ALU RF ALU Mem RF L 22 26/29

Criticità (hazards)! 3 tipi di Criticità Hazards! Strutturali " Dovrei utilizzare la stessa unità funzionale due volte nello stesso passo. " Le unità funzionali non sono in grado di supportare le istruzioni (nelle diverse fasi) che devono essere eseguite in un determinato ciclo di clock.! di Dato " Dovrei eseguire un istruzione in cui uno dei dati è il risultato dell esecuzione di un istruzione precedente. " lw $t0, 16($s1) " add $t1, $t0, $s0! di Controllo/salto " Dovrei prendere una decisione (sull istruzione successiva) prima che l esecuzione dell istruzione sia terminata (e.g. branch) # generazione di situazioni di hazard L 22 27/29 Stallo della pipeline! Stallo: " In alcuni istanti di clock non può essere eseguita l istruzione successiva % La pipeline va in stallo " Detti buchi o bolle (o bubbles) Tempo # & Istruzioni t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7.. lw $t0, 8($s0) FF (Mem, ALU) DEC (RF) EXEC (ALU) MEM (Mem) WB (RF) $t0 disponibile add $t1, $t0, $s0 (FF) (DEC) (EXEC) (MEM) (WB) add $t1, $t0, $s0 add $t1, $t0, $s0 devo aspettare $t0! add $t1, $t0, $s0 FF DEC EXEC MEM L 22 28/29

Considerazioni! La tecnica di progettazione mediante pipeline sfrutta il parallelismo tra fasi diverse di istruzioni consecutive.! n aumenta la velocità di esecuzione della singola istruzione, ma del lavoro nel suo complesso (throughput) " Aumento di prestazioni massimo = n. di stadi di pipeline! L impossibilità di iniziare ad eseguire una fase di istruzione determina uno stallo della pipeline! Criticità (hazards) in una pipeline sono suddivisibili in: " strutturali, " di controllo, " sui dati.! La soluzione a tutte le criticità potrebbe essere aspettare! L 22 29/29