Architettura degli elaboratori - Eccezioni (cenni) A.A. 2017/18
Università dell'Insubria - Marco Tarini 1
Università degli Studi dell’Insubria Dipartimento di Scienze Teoriche e Applicate
Architettura degli elaboratori
Gestione delle eccezioni (cenni)
Marco Tarini
Dipartimento di Scienze Teoriche e Applicate [email protected]
Capacità della CPU
Finora abbiamo ragionato sulla CPU in base alle istruzioni da implementare.
In realtà esistono altre responsabilità della CPU oltre all’esecuzione (corretta) delle istruzioni.
La CPU deve essere in grado di gestire eventi esterni e far fronte a casi imprevisti interni
Eventi esterni come:
«l’utente ha premuto un tasto sulla tastiera» o
«è arrivato un pacchetto IP dalla rete»
Casi imprevisti interni come:
«hai diviso per zero» o
«hai acceduto ad un indirizzo di memoria invalido»
Unità di controllo microprogrammata
Architettura degli elaboratori - 2 -
Architettura degli elaboratori - Eccezioni (cenni) A.A. 2017/18
Università dell'Insubria - Marco Tarini 2
Eccezioni
Eccezione = trasferimento del flusso di esecuzione non programmato Gestito dal sistema
Salva l’indirizzo dell’istruzione che ha causato l’eccezione, insieme al resto dello stato della CPU!
Al return, si restituisce il controllo al programma utente e si riprisitna lo stato
Unità di controllo microprogrammata
Architettura degli elaboratori - 3 -
User program Exception Handler
“return from Exception”
Salto al gestore dell’eccezione
Ritorno al programma utente L’eccezione si
verifica quando la CPU sta eseguendo questa
istruzione
Due tipi di eccezioni
Interrupt
Causa: eventi esterni alla CPU Asincroni rispetto all’esecuzione
Non si può prevedere quando capiteranno
Capitano mentre la CPU sta eseguendo una qualsiasi istruzione Vanno gestiti tra due istruzioni successive:
alla fine di ogni istruzione si guarda se c’è un interrupt pendente da gestire Trap (per MIPS:exception)
Causa: da eventi interni alla CPU
Esempi: overflow, divisioni per zero, errori di parità,
accessi in memoria incorretti (page fault), invocazione di servizi del S.O Sincroni all’esecuzione
Una data istruzione li genera, nel corso del datapath
Vengono detectati dopo la fine di una istruzione (o microistruzione) CPU La condizione eccezionale deve essere risolta nell’istruzione successiva
Eseguend un apposito handler
Come? Per es: ripetendo l’istruzione che ha causato l’evento, o simulandola, o terminando il programma, o Blue Screen of Death, o…
Al termine, si torna al programma utente (oppure no)
Unità di controllo microprogrammata
Architettura degli elaboratori - 4 -
Architettura degli elaboratori - Eccezioni (cenni) A.A. 2017/18
Università dell'Insubria - Marco Tarini 3
Eccezioni: Unità di controllo
CPU multiciclo
Architettura degli elaboratori - 5 -
Op
next step
WMFC
dalla ALU bit di esito
read / write alla RAM
(via bus)
alla ALU
ALU op
…
al datapath da IR
int00 pending
S R Q
2
step n.
N
trap 00 trap 01
set int. 00 dalla ALU o datapath
int01 pending
S R Q
set int. 01
Logica di controllo
dai dispositivi (via BUS)
Eccezion in MIPS (esempi)
Evento Origine Tipo
I/O device request Esterna Interrupt
Invoke OS by user program Interna Exception
Arithmetic overflow Interna Exception
Using an undefined instruction Interna Exception
Hardware malfunctions qualsiasi Exception o Interrupt
Unità di controllo microprogrammata
Architettura degli elaboratori - 6 -
Architettura degli elaboratori - Eccezioni (cenni) A.A. 2017/18
Università dell'Insubria - Marco Tarini 4
Indirizzamento del gestore delle eccezioni
Interrupt Vector Table
PC MEM[IV_base + cause || 00]
usatissimo in Intel, AMD, … RISC Handler Table
PC IT_base + cause || 0000 saves state and jumps
MIPS: fixed entry PC EXC_addr
Unità di controllo microprogrammata
Architettura degli elaboratori - 7 -
IV_base
cause
handler code
IT_base
cause handler entry code
MIPS: supporto alla gestione delle eccezioni
Registri specializzati per la gestione delle eccezioni/SVC
EPC: registro (a 32 bit) che contiene l’indirizzo dell’istruzione coinvolta.
Cause: registro usato per registrare la causa dell’eccezione.
BadVAddr: contiene l’indirizzo di memoria il cui riferimento ha causato l’eccezione.
Status: program status register (PSR o PSW)
Segnali di controllo per i registri EPC, Cause, BadVAddr, e Status Possibilità di caricare PC con l’indirizzo della routine di gestione delle eccezioni
Possibilità di decrementare PC (PC = PC – 4) per compensarne l’incremento (EPC deve indicare l’istruzione “colpevole” non la successiva).
Unità di controllo microprogrammata
Architettura degli elaboratori - 8 -