Sistemi ad elevate prestazioni 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
Sistemi ad elevate prestazioni - Prof. re 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 PC TEMPi2 TEMPi3 ALU Registro Stato ID RC MAR’ MDR’ Figura 1 : Schema di un processore RISC LIKE. Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca
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
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 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. Figura 3: Lo skew del segnale di clock. Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca
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