Transcript Lezione 1

Università degli Studi di Napoli “Federico II”
Facoltà di Ingegneria
Dipartimento di Informatica e Sistemistica
Sistemi ad elevate prestazioni
Lezione 1
Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca
Introduzione al corso

Il corso di Sistemi ad elevate prestazioni è
basato su due moduli fondamentali:

Architetture ad elevate prestazioni;

Sistemi dependable.
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca
Sistemi ad elevate prestazioni


Ci occuperemo di architetture reali, caratterizzate da
precisi accorgimenti sul parallelismo interno e/o sul
clock, tali da permettere il miglioramento delle
prestazioni.
Nell’ambito dello studio di sistemi ad elevate
prestazioni possiamo delineare due diverse soluzioni:


Architetture monoprocessore a parallelismo
interno (le architetture SuperScalari, i VLIW - Very
Long Instruction Word, e i DSP);
Architetture Parallele (sistemi multiprocessore e
sistemi multicomputer)
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca
Architetture monoprocessore:
CISC e RISC




Concentriamoci per ora solo sui sistemi monoprocessore, dove
ci sono più unità che evolvono in parallelo;
Per poter effettivamente parlare di unità che evolvono in
parallelo bisogna accertarsi che il processo elaborativo possa
essere sviluppato da unità che elaborano in modo disgiunto;
Nell’ambito degli studi abbiamo visto due modelli principali, il
modello CISC e quello RISC, che differiscono principalmente
per:
 Codici Operativi;
 Operandi ammessi dal processore;
 Modi di indirizzamento.
Questi sono i presupposti da cui partiamo per costruire un
sistema monoprocessore basato su pipe, cioè vogliamo
costruire un sistema con pochi codici operativi, caratterizzato
da codici di load e store, e con pochi modi di indirizzamento.
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca
Incremento delle prestazioni in
un’architettura monoprocessore
Le cose più importanti su cui su può agire per
migliorare le prestazioni del sistema appena
delineato sono:




Aumentare il clock;
Replicare le risorse hardware;
Implementare il parallelismo (all’interno) del nodo o
microparallelismo.
MAR’
MDR’
MAR
PC
TEMPi2
MDR
ID
TEMPi3
ALU
Registro
Stato
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca
Figura 1 : Schema di un processore RISC LIKE.
RC
La tecnica del pipelining (1)



Un’architettura che può realizzare microparallelismo e,
quindi, il pipelining rispetta delle fasi principali:
1-IF 2-ID 3-EX 4-MEM 5-WB
Fasi: (prelievo (Fetch), interpretazione (Decode),
esecuzione (Execution), Memorizzazione ed eventuale
Scrittura dei risultati in memoria (Write Back)).
Si può partire dall’idea che se le cinque fasi sono
eseguite in modo strettamente sequenziale, ogni unità
lavora per una quota parte del tempo di esecuzione della
singola istruzione; ad esempio, quando l’istruzione è in
fase di interpretazione, le unità associate alle altre fasi
sono inattive; il processore non è, quindi, sfruttato al
massimo.
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca
La tecnica del pipelining (2)


Quindi per rendere il sistema più veloce è
possibile prelevare una nuova istruzione, mentre
la precedente è ancora in esecuzione (tecnica
del prefetching);
Più in generale, è possibile parallelizzare le tutte
fasi, implementando la tecnica del pipelining.
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca
Alcuni vantaggi





La tecnica del pipelining permette di diminuire il tempo di
esecuzione di un programma, anche se il tempo di
attraversamento della singola istruzione non varia.
Tempo di attraversamento
TA = TIF + TID + TEX + TMEM + TWB
Tempo di risposta
TR = max {TIF,TID,TEX,TMEM,TWB}
In particolare se N sono le fasi, in condizioni ottimali, il tempo
di esecuzione del programma a regime diventa pari ad 1/N del
tempo di esecuzione dello stesso programma, in caso di
esecuzione sequenziale;
il throughput (produttività), diventa N volte maggiore rispetto
all’esecuzione sequenziale.
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca
I limiti del pipelining
1.
2.
3.
Limiti di tempo;
Limiti tecnologici (es. skew del clock);
Problemi di gestione delle istruzioni di
salto (es. branch penality);
Problemi di conflitto sui dati;
Problemi della gestione delle
interruzioni;
Problemi di conflitto per l’accesso in
memoria.
Figura 2: Circuito induttivo/capacitivo.
4.
5.
6.
Figura 3: Lo skew del segnale di clock.
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca
Prossima Lezione

Conflitti nei sistemi basati su pipelining:
Conflitti per salti – Approccio ottimistico
e conservativo
Sistemi ad elevate prestazioni Prof. re Nicola Mazzocca