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