Transcript Lezione 5

Università degli Studi di Napoli “Federico II”
Facoltà di Ingegneria
Dipartimento di Informatica e Sistemistica
Sistemi ad elevate prestazioni
Lezione 5
Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca
Il problema


Con l’introduzione del sistema a pipeline e del
meccanismo dell’internal forwarding, che altera
la sequenzialità delle istruzioni eseguite dal
processore, nasce il problema della gestione
delle interruzioni nei sistemi basati su pipelining;
è possibile che si generino delle ‘interruzioni non
esatte’, cioè situazioni in cui una istruzione
provoca una eccezione prima che tutte quelle
che la precedono siano completate.
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca
L’obiettivo


creare un sistema che sia in grado di arrestare
opportunamente la pipe in modo da completare le
istruzioni che precedono quella che ha generato
l’interruzione senza avviare quelle che seguono, così da
ottenere un comportamento che rispetti quello descritto
dal modello di Von Neumann che viene definito di
“gestione precisa” delle interruzioni;
Ma ciò non è semplice per la varietà di situazioni e
d’interruzioni da fronteggiare:


Interruzioni esterne (meno critico);
Interruzioni interne.
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca
Il caso delle interruzioni interne


Può accadere che, in una sequenza i1-i2, l’istruzione i2 (che
viene per seconda) generi un’eccezione (ad es. la divisione
per zero, che blocca il programma) prima che l’istruzione i1
abbia avuto il tempo di essere eseguita.
Es.:
IF
ID
EX
MEM
WB
i+1
i

Immaginiamo di avere due istruzioni, i ed i+1, l’istruzione i
effettua un accesso illegale in memoria generando una
eccezione nella stazione MEM, ma l’istruzione i+1 possiede
un codice illegale, quindi genera una interruzione nella fase di
identificazione ID della pipe prima che possa verificarsi
l’eccezione dovuta all’istruzione i.
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca
Possibili Soluzioni
Esistono diverse soluzioni
possono essere adottate:



che
Alcuni processori rinunciano del tutto ad avere
interruzioni ‘precise’ ;
Altri processori nei quali pure le istruzioni sono out
order riescono ciononostante a ricostruire delle
interruzioni precise. Le relative tecniche sono al
solito di tipo:

conservativo

ottimistico (roll-back).
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca
Come è possibile effettuare il
roll-back ?

Esistono fondamentalmente due tecniche,
entrambe le quali necessitano di memoria
aggiuntiva per essere applicate:
Tecnica del Check Point. Es.:
i
R4 = R1;
i+1 R2 = R0+ R6;
i+2 R3 = R1/R5

Tecnica dell’History buffer . Es.:
i
MEMA = R1;
i+1 R2 = R4+ R6;
i+2 R3 = R1/R5
(1) (2) (3) (4) (5)
i
IF ID EX MEM WB
i+1
IF ID Sistemi
EX adMEM
WB elevate prestazioni
i+2
IF Prof.
ID re Nicola
EX Mazzocca
MEM WB

i
i+1
14
i+2
INT
Alcune considerazioni




Entrambe le tecniche di roll-back aumentano l’efficienza di
funzionamento, ma sono attuabili solo quando le istruzioni su
cui operano sono invarianti, cioè la loro esecuzione non altera
lo stato del sistema.
L’H.B. deve essere grande quanto il numero di istruzioni che
possono generare contemporaneamente interruzioni.
La gestione dell’H.B. in assenza di interruzioni non costa nulla,
perché le operazioni di memorizzazione delle istruzioni e del
vecchio stato sono eseguite in parallelo alle normali operazioni
del processore. Il tutto è implementato, generalmente, in
hardware.
La difficoltà dell’approccio con check point consiste nel sapere
in quali momenti devono essere salvati gli ‘stati sicuri’; non è
possibile farlo spesso per non sovraccaricare il sistema, ma
farlo raramente causa
quando è
Sistemi adun
elevateritardo
prestazioni - maggiore
Prof. re Nicola Mazzocca
necessario rifare le operazioni
Architetture VLIW




Nelle architetture vliw (= Very Long Instruction Word) più
istruzioni sono impacchettate in una sola, che specifica molte
operazioni.
Finora abbiamo considerato un parallelismo a livello di singola
istruzione.
Nelle superscalari, il parallelismo diviene doppio: non solo
vengono eseguite in parallelo le diverse fasi delle istruzioni
grazie alla pipe, ma abbiamo più pipe in parallelo. Con due
pipe vengono schedulate due istruzioni alla volta.
Nelle VLIW abbiamo unità separate, non di tipo Pipelined, che
eseguono ciascuna un diverso tipo di operazione: una
l’addizione, una la moltiplicazione, una operazione logica ecc.
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca
Istruzioni

Le
istruzioni
del programma sono
impacchettate dal compilatore in modo
utilizzare tutte le diverse stazioni: cercano
cioè di alimentare contemporaneamente le
diverse stazioni con operazioni di
addizione, di moltiplicazione ecc.
ADD
MOL
LOG
X
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca
Istruzioni



Dunque, un certo numero di istruzioni vengono eseguite in
parallelo da unità disgiunte. Occorre però essere in grado
di creare macroistruzione a partire da microistruzioni, in
base alle unità funzionali disponibili.
Esiste una serie di problemi: se c’è una sola addizione da
fare non è possibile ovviamente inserirne due nella relativa
stazione; se due operazioni, dello stesso o di diverso tipo,
vanno in conflitto sui dati, non possono essere caricate in
un ordine casuale, ecc.
Inoltre, le istruzioni di salto diventano ancora più
complicate, poiché non si possono fare previsioni e non è
possibile bloccare la pipe dal momento che non esiste
alcuna pipe. Se si effettua
un salto sbagliato non c’è modo
Sistemi ad elevate prestazioni di tornare indietro. Prof. re Nicola Mazzocca
Applicazioni



Dove
trovano
applicazione
queste
architetture che, in apparenza, non fanno
altro che introdurre problemi notevoli?
Non nei comuni PC, ma piuttosto nei
processori DSP (Digital Signal Processing).
Un DSP è un processore orientato
all’elaborazione dei segnali; alcuni DSP sono
estremamente verticalizzati in tale finalità,
altri sono un po’ più general purpose.
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca
DSP e VLiW



Gli utenti DSP generalmente non programmano tali
processori ma li usano con librerie già pronte, perché
l’elaborazione numerica dei segnali si basa sul calcolo di
trasformate di Fourier e di altro genere.
Una libreria per DSP con architettura VLIW è ideata con
l’obiettivo di risolvere non uno, ma n problemi. Ciascun
problema è risolto attraverso l’utilizzo di una istruzione
della libreria, costituita da istruzioni elementari che sono
state impacchettate nel modo più conveniente.
Quindi una libreria offre le migliori implementazioni delle
varie operazioni, sfruttando al meglio il parallelismo dei
blocchi funzionali. Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca
Prossima Lezione


I processori DSP;
Approfondimenti: Un esempio di
architettura DSP - Texas Instruments
DSP TMS320 C6000
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca