Concetti di base del PIPELINING. L architettura MIPS pipelined. L architettura MIPS pipelined

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Concetti di base del PIPELINING. L architettura MIPS pipelined. L architettura MIPS pipelined"

Transcript

1 Concetti di base del PIPELINING L architettura MIPS pipelined I problemi del pipelining Alcune soluzioni di base ai problemi del pipelining Versioni più sofisticate di pipeline Osservazioni conclusive. 1 L architettura MIPS pipelined Come abbiamo visto, la semplice architettura della macchina MIPS potrebbe essere implementata in modo tale che ogni istruzione possa essere eseguita in un unico ciclo di clock lungo approssimativamente come l insieme dei 5 cicli necessari a completare le 5 fasi. Una ragione per cui usare una macchina monociclo sia poco conveniente la conosciamo già: il ciclo lungo sarebbe uno spreco per tutte quelle istruzioni che richiedono meno tempo (cioé meno lavoro) per essere eseguite. 2 L architettura MIPS pipelined Ma c è un altra ragione importante: Suddividendo l esecuzione di ciascuna istruzione in più fasi (ossia cicli di clock), possiamo sovrapporre (almeno parzialmente) l esecuzione di istruzioni diverse. Ad ogni ciclo di clock, mentre una porzione del datapath è impegnata nell esecuzione di una istruzione, un altra porzione del datapath può essere usata per eseguire un altra istruzione. 3 1

2 L architettura MIPS pipelined Se possiamo far partire una nuova istruzione ad ogni ciclo di clock, ognuna delle 5 fasi della macchina MIPS multiciclo diviene uno stage di una pipeline, e lo schema di esecuzione di una sequenza di istruzioni diviene il seguente (H-P5, Fig. C.1): istr. number istr. i IF ID EX MEM WB istr. i+1 IF ID EX MEM WB istr. i+2 IF ID EX MEM WB istr. i+3 IF ID EX MEM WB istr. i+4 IF ID EX MEM WB 4 L architettura MIPS pipelined Perché il pipelining funzioni, occorre però evitare di compiere contemporaneamente due operazioni differenti che usano le stesse risorse del data path: per esempio, se nel data path è presente una sola ALU, questa non può contemporaneamente calcolare l indirizzo effettivo di una load e eseguire una sottrazione fra i due operandi di un altra istruzione L uso di istruzioni semplici (RISC, appunto) rende di solito abbastanza facile stabilire in ogni istante quali risorse del data path sono in uso e quali libere. Questo è fondamentale per sfruttare al massimo le risorse della CPU, (a maggior ragione nel multiple issue: l avvio e l esecuzione in parallelo di più istruzioni) 5 L architettura MIPS pipelined Però, notate, nella figura precedente sono state evidenziate le fasi WB e ID del quinto ciclo di clock. Cos hanno di particolare? Poniamo che l istruzione i sia una load, e la i+3 sia di tipo-r: nel ciclo di clock 5 si sta contemporaneamente scrivendo nel register file il risultato dell istruzione i e si stanno leggendo dal register file gli operandi dell istruzione i+3. Insomma, sembra proprio che stiamo cercando di usare la stessa risorsa funzionale nello stesso ciclo di clock per due istruzioni diverse 6 2

3 L architettura MIPS pipelined In realtà questo si può fare perché alcune unità funzionali possono essere usate due volte in parti diverse dello stesso ciclo di clock. QUI FIGURA In questo schema di esecuzione di una load, ogni fase è associata all unità funzionale usata in quella fase: la parte tratteggiata indica che l unità non è usata in quella porzione del ciclo di clock. (adattata da Patterson-Henessy 3 rd ed., fig. 6.4): IF IM ID Reg EX ALU MEM DM WB Reg CC1 CC2 CC3 CC4 CC5 Così, nella fase WB il register file viene scritto nella prima parte del ciclo di clock, mentre nella fase ID, il register file viene letto nella seconda parte del ciclo di clock. 7 L architettura MIPS pipelined Ed ecco allora che la pipeline MIPS può essere vista come una serie di datapath traslati nel tempo, uno per ciascuna istruzione in esecuzione. Notate ancora come è indicato l accesso al register file, attraverso le linee tratteggiate (H-P5, Fig. C.2): 8 L architettura MIPS pipelined Sulla schematizzazione del pipelining del lucido precedente si possono fare due osservazioni: 1. Dobbiamo necessariamente ipotizzare l esistenza di memorie (cache) diverse per dati (DM) e istruzioni (IM), in modo da evitare conflitti tra le fasi IF e MEM. Entrambe le fasi accedono alla memoria, che ora viene interrogata 5 volte più di frequente del caso senza pipelining. La memoria deve essere in grado di sopportare questo carico di richieste. 2. La figura non mostra la gestione del PC, che deve essere incrementato ad ogni ciclo di clock, nella fase IF (a meno che non sia l istruzione stessa un branch o un jump a modificare il PC) 9 3

4 Registri del pipelining In una implementazione reale, ogni stage della pipeline è separato e collegato allo stage successivo da opportuni registri della pipeline (ovviamente invisibili all utilizzatore della CPU, ossia il programma in esecuzione) Alla fine di un ciclo di clock il risultato, ossia l output delle operazioni di ogni stage viene memorizzato in un registro della pipeline in modo da poter essere usato come input dello stage successivo al successivo ciclo di clock. Questi registri servono anche a trasportare risultati intermedi calcolati nella pipeline tra due stage non adiacenti della pipeline (capiremo più avanti con un esempio) 10 Registri del pipelining Questi registri svolgono lo stesso ruolo dei (e di fatto includono i) registri interni che avevamo introdotto per passare dalla versione monociclo a quella multiciclo della MIPS: i registri interni IR, A, B ALUoutput, ed MDR. Servono cioè a rendere disponibili i valori prodotti in output da una fase della pipeline alla successiva. Possiamo fare un analogia con una catena di montaggio: quando l operatore di una fase ha completato il suo lavoro sul pezzo, lo deposita in un contenitore, in modo da renderlo disponibile all operatore della fase successiva. 11 Architettura MIPS con Pipeline Conveniamo di chiamare l insieme dei registri di pipeline che permettono di accoppiare due stadi adiacenti della pipeline con il nome dei due stadi. Avremo così i registri IF/ID, ID/EX, EX/MEM e MEM/WB. Naturalmente questi registri devono avere una dimensione sufficiente a contenere tutti i dati che devono fluire da una fase alla successiva (P-H5,fig. 4.35, lucido successivo) 12 4

5 Architettura MIPS con Pipeline 13 Architettura MIPS con Pipeline Notate che non vi sono registri di pipeline dopo la fase WB, ossia nello stadio di scrittura del risultato. Infatti, alla fine di questo stadio tutte le istruzioni devono alterare qualche elemento di stato del processore visibile al livello ISA: il register file, la memoria dati o il PC. Ad esempio, una istruzione di tipo-r modifica un registro, e il valore con cui deve essere aggiornato il registro di output può essere messo direttamente nel registro specificato nell istruzione, dove sarà disponibile per l istruzione successiva (ma più avanti dovremo modificare questo modo ingenuo di vedere la cosa ) 14 Registri del pipelining Il datapath di esecuzione delle istruzioni nella pipeline con i registri di pipeline tra gli stadi in evidenza (H-P5, fig. C.3): IF/ID ID/EX EX/MEM MEM/WB Program execution order of the (instructions) 15 5

6 Esecuzione di una istruzione nella MIPS pipelined Illustriamo il funzionamento della pipeline usando l esempio di esecuzione di una load. Nelle figure che seguono è evidenziata in blu la parte destra della memoria e dei registri (register file e registri di pipeline) quando questi vengono letti, ed è evidenziata in blu la parte sinistra quando questi vengono scritti. Sono anche evidenziate in blu le altre unità funzionali attive in ciascuna fase. 16 Esecuzione di una istruzione nella MIPS pipelined Instruction Fetch: l istruzione viene letta dalla Instruction Memory indirizzata dal PC, e viene posta nel registro IF/ID. (Patterson- Hennessy, fig. 4.36a) 17 Esecuzione di una istruzione nella MIPS pipelined Instruction Fetch: Il PC viene incrementato e riscritto in PC, ma anche salvato in IF/ID, perché potrebbe servire in una fase successiva (infatti in questo momento non si sa ancora che istruzione si sta eseguendo ). 18 6

7 Esecuzione di una istruzione nella MIPS pipelined Instruction Decode: il registro IF/ID viene letto per indirizzare il register file. Vengono letti i due registri, anche se se ne userà uno solo. I 16 bit del valore immediato vengono convertiti in un valore a 32 bit, e i 3 valori vengono scritti in ID/EX insieme al valore incrementato del PC (Patterson- Hennessy, fig. 4.36b) 19 Esecuzione di una istruzione nella MIPS pipelined EXecution: la load legge da ID/EX il contenuto del registro 1 e il valore immediato, li somma attraverso la ALU e scrive il risultato in EX/MEM. (Patterson-Hennessy, fig. 4.37). 20 Esecuzione di una istruzione nella MIPS pipelined EXecution: notate come, se l istruzione in esecuzione fosse un salto, l ADDER userebbe il valore del PC (contenuto in ID/EX) per calcolare il valore del PC in caso di salto eseguito. 21 7

8 Esecuzione di una istruzione nella MIPS pipelined MEMory: avviene l accesso alla memoria dati, indirizzata dal valore letto nel registro EX/MEM. Il dato letto viene scritto in MEM/WB. (Patterson-Hennessy, fig. 4.38a). 22 Esecuzione di una istruzione nella MIPS pipelined Write Back: Viene scritto il registro di destinazione della load col valore prelevato dalla memoria dati (Patterson-Hennessy, fig. 4.38b). Domanda: dov è scritto il numero del registro da modificare (ossia il registro di destinazione della load)? 23 Esecuzione di una istruzione nella MIPS pipelined L esecuzione pipelined non è semplice come sembra: nel datapath usato, durante la fase WB di una istruzione, il registro IF/ID contiene già il numero del registro di destinazione di una istruzione successiva! Per evitare di caricare il dato dalla memoria nel registro sbagliato, il registro di destinazione della load non deve limitarsi a memorizzare il suo numero nel registro IF/ID, altrimenti verrebbe sovrascritto al ciclo di clock successivo, quando un altra istruzione entra nella fase IF. Durante le varie fasi di esecuzione della load, il numero del registro di destinazione va trasmesso da IF/ID attraverso ID/EX e EX/MEM fino a MEM/WB, in modo da usarlo nella fase WB per scrivere il registro giusto. 24 8

9 Esecuzione di una istruzione nella MIPS pipelined Ecco una versione corretta del datapath pipelined per gestire la load: il numero del registro di destinazione passa attraverso tutti i registri di pipeline per essere disponibile nella fase WB della load. Ovviamente, la dimensione dei registri di pipeline deve essere estesa (di quanti bit?) per contenere anche questo valore (Patterson-Hennessy, fig. 4.41) 25 Prestazioni La presenza della pipeline (e quindi di hardware più sofisticato) rende evidentemente l esecuzione di una singola istruzione più lenta di una istruzione identica senza pipeline Ma il throughput della CPU aumenta, ossia i programmi girano più velocemente. ma quanto più velocemente? Supponiamo una CPU senza pipeline con i seguenti dati: Operazioni con la ALU e branch richiedono 4 cicli di clock. Operazioni di accesso alla memoria richiedono 5 cicli di clock. op. ALU = 40%; branch = 20%; accessi alla memoria = 40%. clock = 1 ns. 26 Prestazioni Qual è il tempo medio di esecuzione di una istruzione? Avg. exec time = (0,4 + 0,2) x 4ns + 0,4 x 5 ns = 4,4 ns. Supponiamo ora che la CPU sia dotata di pipeline, e ipotiziamo che l overhead introdotto ad ogni ciclo dall hardware necessario ad implementare la pipeline sia di 0,2 ns (è un valore ragionevole). Abbiamo: speedup = avg. exec time senza pipeline / avg. exec time con pipeline = 4,4 ns / 1,2 ns = 3,7. Ossia un incremento (teorico) delle prestazioni di 3,7 volte 27 9

10 Problemi del pipelining Purtroppo, le cose non funzionano in modo così semplice. Ci sono tre classi di problemi che possono limitare la produttività della pipeline: 1. Problemi strutturali: quando alcune particolari combinazioni di istruzioni non possono essere eseguite simultaneamente nella pipeline a causa del numero limitato di unità funzionali disponibili (se ad esempio c è una sola ALU non può essere usata nello stesso ciclo di clock da due diverse istruzioni ) 2. Problemi sui dati: quando una istruzione ha bisogno del risultato di una precedente ma quel dato non è ancora stato prodotto 3. Problemi di controllo: quando vengono eseguiti branch, che possono cambiare il valore del PC: fino a che non si conosce l esito della valutazione della condizione del branch non si sa dove prosegue l esecuzione del programma. 28 Problemi del pipelining Quando si verifica uno di questi problemi è necessario fermare (to stall) la pipeline. In particolare, quando una istruzione I genera un problema nella pipeline: le istruzioni avviate prima di I (che quindi si trovano in una fase più avanzata della pipeline) possono proseguire fino ad essere completate. le istruzioni avviate dopo I (che quindi che si trovano in fasi precedenti della pipeline) devono essere fermate, fino a che non viene risolto il problema dell istruzione I. Nel seguito vediamo alcune soluzioni di base ai tre tipi di problemi del pipelining, che erano già implementate nell architettura MIPS. Nel prossimo capitolo vedremo le tecniche più sofisticate che permettono ad alcune delle istruzioni avviate dopo I di proseguire la loro esecuzione indipendentemente da I. 29 Problemi Strutturali In generale, i problemi strutturali si verificano perché (per ragioni di complessità o di costi di produzione) alcune risorse hardware all interno del datapath non sono duplicate, e ovviamente non possono essere contemporaneamente usate da due istruzioni nella pipeline Ad esempio, la presenza di una cache L1 unica per dati e istruzioni genererebbe frequentissimi problemi strutturali, ed è per questo che sono solitamente disponibili due cache di primo livello separate. Ad esempio due istruzioni nella pipeline non possono usare la stessa ALU nello stesso ciclo di clock

11 Problemi Strutturali Per questa ragione nelle moderne CPU (ma anche in quelle vecchie, per la verità), molte unità funzionali, in particolare quelle combinatorie, come le ALU, sono duplicate più volte (ne vedremo più avanti vari esempi). Ma ovviamente questo richiede circuiti più complessi, che consumano di più e costano di più. E il progettista deve quindi trovare un compromesso tra la complessità del progetto, delle prestazioni, dei consumi e dei costi di produzione. 31 Problemi sui Dati I problemi sui dati si verificano perché, ovviamente, le istruzioni di un programma non sono scorrelate da loro, e alcune istruzioni devono usare valori calcolati da istruzioni precedenti. Consideriamo la seguente sequenza di istruzioni macchina: DADD R1, R2, R3 // R1 = R2 + R3 DSUB R4, R1, R5 AND R6, R1, R7 OR R8, R1, R9 XOR R10, R1, R11 R1 è scritto dalla DADD nello stage WB, ma la DSUB dovrebbe usare tale valore nello stage ID, prima che sia stato calcolato! 32 Problemi sui Dati L uso del risultato della DADD nelle istruzioni successive crea un problema, perché il registro R1 viene scritto dopo che le istruzioni tentano di leggerlo (H-P5, Fig. C.6) IF/ID ID/EX EX/MEM MEM/WB 33 11

12 Problemi sui Dati Notate anche la AND: la scrittura di R1 è completata alla fine del ciclo di clock n. 5, ma letta dalla AND al ciclo 4. Invece, la OR opera senza problemi, perché legge R1 nella seconda parte del ciclo di clock n. 5, mentre la scrittura del registro è avvenuta nella prima parte del ciclo stesso. Chiaramente anche la XOR funziona correttamente. 34 Problemi sui Dati: il forwarding Una semplice tecnica usata per risolvere questo tipo di problemi è detta forwarding (ma anche bypassing, o short-circuiting) L idea è di rendere il risultato dell esecuzione di una istruzione (nel nostro esempio, il risultato della DADD) disponibile per le istruzioni successive il prima possibile (prima ancora della fase WB della stessa DADD) Questo può essere fatto usando i registri della pipeline che memorizzano i risultati intermedi delle varie fasi della pipeline 35 Problemi sui Dati: il forwarding Si può infatti notare che il risultato dell operazione della ALU, contenuto nei registri EX/MEM e MEM/WB, può essere riutilizzato come input della ALU stessa nei successivi cicli di clock. Se la Control Unit si accorge che una precedente operazione della ALU sta scrivendo un registro che deve immediatamente essere riusato come input per la ALU stessa, preleva il valore da un opportuno registro della pipeline anziché aspettare che sia presente nel registro di destinazione

13 Problemi sui Dati: il forwarding l uso del forwarding permette di evitare alcuni stall sui dati (H- P5, Fig. C.7) IF/ID ID/EX EX/MEM MEM/WB 37 Problemi sui Dati: un caso di stall La tecnica del forwarding non può però risolvere tutte le situazioni di stalling della pipeline dovute ai dati. Considerate questa sequenza di istruzioni macchina: LD R1, 0(R2) // indirizzo = contenuto di R2 + 0 DSUB R4, R1, R5 AND R6, R1, R7 OR R8, R1, R9 38 Problemi sui Dati: un caso di stall Il dato indirizzato dalla LD sarà presente nel registro MEM/WB solo alla fine del ciclo di clock 4, mentre la DSUB ne ha bisogno all inizio di quel ciclo. In altre parole quando è coinvolta una load, fino a che il dato proveniente dalla cache (o peggio, dalla RAM) non è effettivamente presente in CPU, non può essere usato da alcuna istruzione successiva, e si verifica uno stalling della pipeline. L hardware della pipeline si accorge della situazione e ferma le istruzioni successive (per uno o più cicli di clock) fino a che non è disponibile il dato di cui hanno bisogno

14 Problemi sui Dati: un caso di stall La LD può passare il risultato alle AND e OR, ma non alla DSUB (H-P5, Fig. C.9) IF/ID ID/EX EX/MEM MEM/WB 40 Problemi di Controllo I problemi di controllo si presentano quando viene eseguita un istruzione di branch, che può cambiare il valore del PC. Anche assumendo una implementazione aggressiva che esegue un branch in due cicli di clock, se il salto viene eseguito il PC non viene aggiornato fino alla fine del secondo ciclo di clock, nello stage ID, dopo che è stato calcolato l indirizzo da inserire nel PC. Quindi l istruzione fisicamente successiva al branch (ossia quella all indirizzo PC+4) ha già terminato la fase IF. Ma se il salto va effettuato non è quella la prossima istruzione da eseguire. 41 Problemi di Controllo Considerate questo semplice esempio: LD R1, 0 (R4) BNE R0, R1, else DADD R1, R1, R2 JMP next else: DSUB R1, R1, R3 next: OR R4, R5, R6 Quando sappiamo se il branch verrà eseguito, la DADD ha già completato la fase IF 42 14

15 Problemi di Controllo Un modo semplice di gestire la situazione è di eseguire comunque la fase di fetch dell istruzione fisicamente successiva al branch (ossia la DADD). Alla fine della fase ID del branch, si sa se il salto verrà eseguito o no. Se non viene eseguito, tutto bene, la DADD prosegue con la fase ID Se il salto va eseguito, si deve eseguire la DSUB, che riparte ovviamente dalla fase IF, e si è quindi sprecato un ciclo di clock: la fase IF della ADD. Ossia: branch instr. IF ID EX MEM WB branch succ. IF DADD IF DSUB ID EX... branch succ.+1 IF OR ID EX 43 Problemi di Controllo Ovviamente, si sprecano dei cicli di clock, il cui numero dipende dalla frequenza dei branch in un programma, e dal fatto che in ogni specifico branch il test abbia successo o no. Notate che nell esempio visto lo spreco relativo ad un branch è al più di un ciclo di clock, perché assumiamo un datapath in grado di completare un branch in due cicli di clock Istruzioni di branch che usano gli operandi in modo più complesso, possono richiedere più cicli di clock per la valutazione della condizione di salto, e l eventuale spreco può essere molto maggiore. 44 Problemi di Controllo Un altra soluzione consiste nel fare delle assunzioni a priori sulle istruzioni di salto. Si parla allora di predizione statica dei branch. Ad esempio, l hardware della pipeline potrebbe assumere che: 1. Tutti i branch all indietro sono sempre eseguiti 2. Tutti i branch in avanti non vengono mai eseguiti e continuare il fetching dell istruzione successiva al branch in ciascuno dei due casi. Se però l assunzione è errata, l istruzione di cui si è iniziata l esecuzione erroneamente deve essere trasformata in una no-op, e bisogna ripartire dal fetching dell istruzione giusta. Notiamo che con una predizione statica, in caso di salto effettuato è necessario in ogni caso calcolare il valore del nuovo PC prima che sia possibile sapere qual è la prossima istruzione da eseguire

16 Problemi di Controllo Se la maggior parte delle predizioni si rivela corretta, lo spreco di cicli di clock risulta abbastanza limitato. Ad esempio, in un loop eseguito più volte il salto all indietro viene eseguito più volte, e quello in avanti solo quando il loop termina, e quindi una volta sola. I salti in avanti possono essere usati in caso di condizioni di errore, per trasferire il controllo al codice di gestione dell errore. Se si assume che gli errori siano rari... Naturalmente, questo tipo di predizione non funziona molto bene per dei semplici if then else 46 Problemi di Controllo Un ulteriore tecnica, usata già nelle prime architetture RISC, è detta delayed branch. Consiste nel piazzare dopo un branch, una istruzione che è comunque necessario eseguire, indipendentemente dall esito del branch. l istruzione viene quindi portata a termine e solo a quel punto il salto viene (o meno) eseguito. Questa tecnica richiede l intervento del compilatore, e ovviamente non è sempre facilmente applicabile (vedremo più avanti quanto il compilatore possa essere fondamentale per migliorare le prestazioni della CPU). 47 Problemi di Controllo il caso (a) è facile da gestire per il compilatore, ma gli altri... (H-P5, Fig. C.14)

17 Eccezioni Interrupts, trap, eccezioni di varia natura che interrompono il normale flusso di istruzioni sono molto difficili da gestire in un sistema con pipeline, dove l esecuzione delle istruzioni è sovrapposto. In generale, quando una istruzione I genera una eccezione, la pipeline deve essere fermata, permettendo alle istruzioni dopo I di terminare, e a quelle prima di I (ma già nella pipeline) di essere fatte ripartire dall inizio dopo che l eccezione è stata gestita. Ci risparmieremo per il resto del corso di capire come il tutto viene fatto funzionare, ma sappiate che è una cosa molto complicata, che aumenta sensibilmente la complessità della CPU (numero di transistors, consumi,...) 49 Versioni più sofisticate di Pipeline Lo schema della pipeline diviso in 5 stage era già usato nei primi processori RISC, ed è ancora usato nei processori di fascia bassa, in particolare per applicazioni embedded: processori per alcuni semplici tipi di console per video giochi processori per stampanti laser, macchine fotografiche, videocamere, routers 50 Versioni più sofisticate di Pipeline Se una pipeline è efficace, perché non usarne due? Fintanto che: Riusciamo a prelevare dalla Instruction Memory due istruzioni contemporaneamente, le due istruzioni lanciate in parallelo non generano conflitti sull uso dei registri, e non dipendono l una dall altra si avrà un ulteriore guadagno computazionale Anche in questo caso, eventuali conflitti dovranno essere minimizzati dal compilatore, o a run time (con le tecniche che vedremo più avanti)

18 Versioni più sofisticate di Pipeline Una architettura a due pipeline con cinque (circa) stage era adottata nel primo Pentium (ossia l 80586, il successore dell 80486). La pipeline u poteva eseguire qualsiasi istruzione macchina, mentre la pipeline v era per semplici istruzioni intere (Tanenbaum, Fig. 2.5) BTW, Cosa c è di strano in questa figura, dal punto di vista di una architettura RISC? 52 Versioni più sofisticate di Pipeline Le istruzioni venivano eseguite in-order, ossia nell ordine in cui comparivano nel programma (vedremo più avanti che si può anche fare diversamente) e alcune regole fisse stabilivano se due istruzioni erano compatibili, in modo da poterle eseguire in parallelo. Altrimenti, veniva eseguita solo la prima, e si tentava l accoppiamento della seconda con la terza, e così via... Compilatori specifici per il Pentium erano in grado di generare codice con un alto numero di istruzioni adiacenti compatibili. Un Pentium con compilatore ottimizzato faceva girare codice due volte più velocemente di un 486 con lo stesso clock 53 Versioni più sofisticate di Pipeline Naturalmente si potrebbe pensare di avere ancora più pipeline in parallelo, ma le architetture moderne sono andate in una direzione leggermente diversa, introducendo più unità funzionali per l esecuzione della fase EX (H-P5, Fig. C.33) 54 18

19 Versioni più sofisticate di Pipeline Infatti, in una CPU reale, che esegue un insieme completo di istruzioni macchina, alcune istruzioni richiedono una fase EX molto più lunga delle altre fasi: Somma/sottrazione di numeri floating point moltiplicazione e divisione tra numeri interi Moltiplicazione e divisione tra numeri floating point eseguire queste operazioni in un unico ciclo di clock molto lungo sarebbe possibile, ma questo penalizzerebbe inutilmente le altre fasi, alle quali basta un ciclo di clock molto più breve. 55 Versioni più sofisticate di Pipeline Del resto, la fase EX ha bisogno di un clock breve anche quando viene eseguita una operazione di somma o sottrazione tra interi, o una operazione logica (AND, OR) o un confronto tra i valori di due registri. La soluzione ottimale è allora di: 1. usare un ciclo di clock breve, adeguato alle fasi IF, ID, MEM, WB, e alla fase EX quando viene eseguita una operazione semplice 2. e usare, per le operazioni più complesse, che richiedono più tempo, delle unità funzionali a loro volta suddivise in più fasi e (di solito) a loro volta pipelined. 56 Versioni più sofisticate di Pipeline Struttura della pipeline con unità funzionali multiple dell architettura MIPS (H-P5, Fig. C.35): 57 19

20 Versioni più sofisticate di Pipeline L architettura schematizzata nel lucido precedente rappresenta bene ad alto livello il funzionamento delle architetture moderne. Da questo schema deduciamo alcune proprietà comuni a tutte le CPU moderne: 1. la lunghezza della pipeline dipende dal tipo di istruzione in esecuzione, e istruzioni più complesse richiedono più cicli di clock per essere eseguite. 2. Ci possono essere più istruzioni contemporaneamente in esecuzione nella fase EX. Nel nostro esempio, potremmo avere fino a 4 operazioni di somma F.P., e 7 operazioni intere o F.P. di moltiplicazione, contemporaneamente attive. (Nota tecnica: in molti casi reali l unità di divisione è suddivisa in più fasi, ma non è pipelined) 58 Versioni più sofisticate di Pipeline E quasi inutile osservare che i problemi strutturali, sui dati e sul controllo diventano ancora più critici da gestire e complicati da risolvere. Pensate: già il CDC 6600, a metà degli anni 60, aveva le seguenti unità funzionali: 4 unità floating point 5 unità per gli accessi in memoria 7 unità per le operazioni intere 59 Scheduling statico della Pipeline Lo schema di pipelining visto fin ora assume che le istruzioni vengano eseguite in ordine (in-order), ossia secondo l ordine in cui sono incontrate dal PC. Se si verifica un problema strutturale o sui dati che non può essere risolto col forwarding, la pipeline viene temporaneamente fermata. Questo tipo di pipeline è detto Pipeline schedulata staticamente Come vedremo più avanti però, le CPU moderne implementano spesso una qualche forma di scheduling dinamico della Pipeline, modificando l ordine di esecuzione delle istruzioni per cercare di limitare l effetto degli stall della pipeline

21 Architetture superscalari Le architetture che sfruttano più unità funzionali nella fase EX, vengono comunemente definite superscalari. In realtà, formalmente, una architettura è superscalare se è in grado di mandare in esecuzione più istruzioni per ciclo di clock. Evidentemente, ciò è utile solo se l architettura possiede più unità funzionali che possono operare in parallelo nella fase EX (ci torneremo ampiamente quando parleremo dell Instruction Level Parallelism) Una architettura superscalare richiede quindi un datapath più ampio, in grado di trasportare da una fase all altra della pipeline più istruzioni in fase di esecuzione. 61 Osservazioni conclusive Riassumendo, le architetture RISC sono particolarmente adeguate per il pipelining per tre motivi fondamentali: 1. Le istruzioni hanno tutte la stessa lunghezza: ciò ne semplifica il prelievo dalla Instruction Memory nella fase IF e la loro decodifica nella fase ID. Nel set di istruzioni dell architettura 80x86 le istruzioni hanno lunghezza variabile da 1 a 17 byte, e dunque prelievo e decodifica sono più laboriosi. Nei processori Intel più recenti, le istruzioni macchina vengono tradotte in microistruzioni di tipo RISC prima di procedere alla fase EX. AMD fa qualcosa di simile, e addirittura chiama queste microistruzioni rop da RISC operation (ci torneremo più avanti). 62 Osservazioni conclusive 2. Il livello ISA di una qualsiasi architettura RISC ha un numero ridotto di formati di istruzioni, e in tutti i formati i registri sorgente stanno sempre nella stessa posizione. (ovviamente per quanto permesso dalla semantica dell istruzione) Tale regolarità permette allo stadio ID di iniziare a leggere il register file in parallelo alla decodifica dell istruzione da parte delle Control Unit. Se ciò non fosse possibile, occorrerebbe spezzare la fase ID in due fasi separate di Instruction Decode e Operand Fetch, allungando così la pipeline (ritornate alla figura 2.5 del Tanenbaum) 63 21

22 Osservazioni conclusive 3. Nelle architetture RISC gli operandi in memoria dati compaiono solo nelle load e nelle store: questo vincolo permette di usare lo stadio EX per calcolare l indirizzo di memoria e lo stadio successivo (MEM) per accedere alla memoria. Al contrario, se si potessero specificare operazioni direttamente sugli operandi in memoria (come nelle architetture CISC) avremmo bisogno di 3 stadi: per calcolare l indirizzo, per accedere alla memoria, per eseguire l operazione. Senza contare il fatto che la memoria costituisce un collo di bottiglia per l esecuzione delle istruzioni

Concetti di base del PIPELINING

Concetti di base del PIPELINING Concetti di base del PIPELINING L architettura MIPS pipelined I problemi del pipelining Alcune soluzioni di base ai problemi del pipelining Versioni più sofisticate di pipeline Osservazioni conclusive.

Dettagli

Concetti di base del PIPELINING

Concetti di base del PIPELINING Concetti di base del PIPELINING L architettura MIPS pipelined I problemi del pipelining Alcune soluzioni di base ai problemi del pipelining Versioni più sofisticate di pipeline Osservazioni conclusive.

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Tecniche Pipeline: Elementi di base Massimiliano Giacomin 1 Esecuzione delle istruzioni MIPS con multiciclo: rivisitazione - esame dell istruzione lw (la più complessa) - in rosso

Dettagli

Come si definisce il concetto di performance? Tempo di esecuzione di un programma. numero di task/transazioni eseguiti per unità di tempo

Come si definisce il concetto di performance? Tempo di esecuzione di un programma. numero di task/transazioni eseguiti per unità di tempo Performance Come si definisce il concetto di performance? Tempo di esecuzione di un programma Wall-clock time CPU time tiene conto solo del tempo in cui il programma usa la CPU user time + system time

Dettagli

La pipeline. Sommario

La pipeline. Sommario La pipeline Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento al Patterson edizione 5: 4.5 e 4.6 1/28 http:\\borghese.di.unimi.it\

Dettagli

La pipeline. Sommario

La pipeline. Sommario La pipeline Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento al Patterson edizione 5: 4.5 e 4.6 1/31 http:\\borghese.di.unimi.it\

Dettagli

Instruction Level Parallelism Andrea Gasparetto

Instruction Level Parallelism Andrea Gasparetto Tutorato di architettura degli elaboratori Instruction Level Parallelism Andrea Gasparetto andrea.gasparetto@unive.it IF: Instruction Fetch (memoria istruzioni) ID: Instruction decode e lettura registri

Dettagli

Cicli di clock e istruzioni

Cicli di clock e istruzioni Cicli di clock e istruzioni Numero di cicli di clock differenti per istruzioni differenti Le moltiplicazioni impiegano più tempo delle addizioni Operazioni in virgola mobile impiegano più tempo delle operazioni

Dettagli

Architetture moderne

Architetture moderne Architetture moderne Esecuzione delle istruzioni in pipeline Predizione dei branch Multiple issue Register renaming Esecuzione fuori ordine Cache non bloccanti Architetture avanzate - 1 Pipelining PIPELINING

Dettagli

Unità di controllo della pipeline

Unità di controllo della pipeline Unità di controllo della pipeline Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento al Patterson: 6.3 /5 Sommario La CPU

Dettagli

Problemi del ciclo singolo

Problemi del ciclo singolo Problemi del ciclo singolo Ciclo di clock lungo Istruzioni potenzialmente veloci sono rallentate Impiegano sempre lo stesso tempo dell istruzione più lenta Unità funzionale e collegamenti della parte operativa

Dettagli

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa) Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo

Dettagli

Esercitazione del 10/05/ Soluzioni

Esercitazione del 10/05/ Soluzioni Esercitazione del 10/05/2007 - Soluzioni Una CPU a ciclo singolo come pure una CPU multi ciclo eseguono una sola istruzione alla volta. Durante l esecuzione parte dell hardware della CPU rimane inutilizzato

Dettagli

Pipelining: Unità di Elaborazione e di Controllo Barbara Masucci

Pipelining: Unità di Elaborazione e di Controllo Barbara Masucci Architettura degli Elaboratori Pipelining: Unità di Elaborazione e di Controllo Barbara Masucci Punto della situazione Ø Abbiamo studiato Ø Una prima implementazione hardware (a ciclo singolo) di un sottoinsieme

Dettagli

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Progetto della CPU MIPS a 1 colpo di clock - Istruzioni da implementare - Unità

Dettagli

Fasi (MIPS) Dove NPC è un registro temporaneo PC (program counter) è il registro IP (instruction pointer)

Fasi (MIPS) Dove NPC è un registro temporaneo PC (program counter) è il registro IP (instruction pointer) Fasi (MIPS) Fasi senza pipeline: IF (istruction fetch): IR Mem[PC] ; NPC PC + 4 ; Dove NPC è un registro temporaneo PC (program counter) è il registro IP (instruction pointer) Lezione Architettura degli

Dettagli

L'architettura del processore MIPS

L'architettura del processore MIPS L'architettura del processore MIPS Piano della lezione Ripasso di formati istruzione e registri MIPS Passi di esecuzione delle istruzioni: Formato R (istruzioni aritmetico-logiche) Istruzioni di caricamento

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC

Dettagli

Architettura dei calcolatori e sistemi operativi. Il processore pipeline Capitolo 4 P&H

Architettura dei calcolatori e sistemi operativi. Il processore pipeline Capitolo 4 P&H Architettura dei calcolatori e sistemi operativi Il processore pipeline Capitolo 4 P&H 4. 11. 2015 Pipelining Tecnica per migliorare le prestazioni basata sulla sovrapposizione dell esecuzione di più istruzioni

Dettagli

Il pipelining: tecniche di base

Il pipelining: tecniche di base Il pipelining: tecniche di base Il pipelining E una tecnica per migliorare le prestazioni del processore basata sulla sovrapposizione dell esecuzione di più istruzioni appartenenti ad un flusso di esecuzione

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC

Dettagli

Il pipelining: tecniche di base

Il pipelining: tecniche di base Definizione di pipelining Il pipelining: tecniche di base Architetture Avanzate dei Calcolatori E una tecnica per migliorare le prestazioni del processore basata sulla sovrapposizione dell esecuzione di

Dettagli

Architettura dei calcolatori e sistemi operativi. Pipelining e Hazard Capitolo 4 P&H

Architettura dei calcolatori e sistemi operativi. Pipelining e Hazard Capitolo 4 P&H Architettura dei calcolatori e sistemi operativi Pipelining e Hazard Capitolo 4 P&H 16. 11. 2015 Problema dei conflitti Conflitti strutturali: tentativo di usare la stessa risorsa da parte di diverse istruzioni

Dettagli

Stall on load e Hazard sul controllo

Stall on load e Hazard sul controllo Stall on load e Hazard sul controllo Prof. N.Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento al Patterson: 4.7, 4.8 1/38 Sommario Identificazione

Dettagli

Calcolatori Elettronici B a.a. 2005/2006

Calcolatori Elettronici B a.a. 2005/2006 Calcolatori Elettronici B a.a. 25/26 Tecniche Pipeline: Elementi di base assimiliano Giacomin Reg[IR[2-6]] = DR Dal processore multiciclo DR= em[aluout] em[aluout] =B Reg[IR[5-]] =ALUout CASO IPS lw sw

Dettagli

Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico

Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico Architettura degli Elaboratori e Laboratorio Matteo Manzali Università degli Studi di Ferrara Anno Accademico 2016-2017 Lavanderia Assumiamo di avere: una lavatrice (richiede 30 minuti) una asciugatrice

Dettagli

CPU pipeline 4: le CPU moderne

CPU pipeline 4: le CPU moderne Architettura degli Elaboratori e delle Reti Lezione 25 CPU pipeline 4: le CPU moderne Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 25 1/16

Dettagli

Esercitazione del 30/04/ Soluzioni

Esercitazione del 30/04/ Soluzioni Esercitazione del 30/04/2010 - Soluzioni Una CPU a ciclo singolo come pure una CPU multi ciclo eseguono una sola istruzione alla volta. Durante l esecuzione parte dell hardware della CPU rimane inutilizzato

Dettagli

Calcolatori Elettronici B a.a. 2007/2008

Calcolatori Elettronici B a.a. 2007/2008 Calcolatori Elettronici B a.a. 27/28 Tecniche Pipeline: Elementi di base assimiliano Giacomin Reg[IR[2-6]] = DR Dal processore multiciclo DR= em[aluout] em[aluout] =B Reg[IR[5-]] =ALUout CASO IPS lw sw

Dettagli

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Introduzione all'architettura dei Calcolatori. Maurizio Palesi Introduzione all'architettura dei Calcolatori Maurizio Palesi 1 Agenda Architettura generale di un Sistema di Elaborazione La memoria principale Il sottosistema di comunicazione La CPU Miglioramento delle

Dettagli

Pipelining. Architetture moderne

Pipelining. Architetture moderne Architetture moderne Pipelining Esecuzione delle istruzioni in pipeline Predizione dei branch Multiple issue Register renaming Esecuzione fuori ordine Cache non bloccanti PIPELINING utile per eseguire

Dettagli

Sia per la II prova intercorso che per le prove di esame è necessaria la PRENOTAZIONE

Sia per la II prova intercorso che per le prove di esame è necessaria la PRENOTAZIONE Seconda Prova Intercorso ed Esami di Febbraio Lezione 24 Valutazione delle Prestazioni Vittorio Scarano rchitettura Corso di Laurea in Informatica Università degli Studi di Salerno Seconda prova intercorso:

Dettagli

CPU pipeline hazards

CPU pipeline hazards Architettura degli Elaboratori e delle Reti Lezione 23 CPU pipeline hazards Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 23 /24 Sommario!

Dettagli

Stall on load e Hazard sul controllo

Stall on load e Hazard sul controllo Stall on load e Hazard sul controllo Prof. N.Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento al Patterson: 4.7, 4.8 1/38 Sommario Identificazione

Dettagli

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa) Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo

Dettagli

Pipeline criticità e forwarding

Pipeline criticità e forwarding 1 Pipeline criticità e forwarding Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento al Patterson: 4.5, 4.6 1/42 Sommario La CPU con

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni

Dettagli

Il processore Pentium

Il processore Pentium Caratteristiche principali (I) Architettura interna a 32 bit Address bus a 32 bit: si possono indirizzare fino a 4 GB di memoria fisica Data bus a 64 bit (si tratta in pratica di 2 data bus a 32 bit in

Dettagli

Architettura del processore e esecuzione delle istruzioni

Architettura del processore e esecuzione delle istruzioni Architettura del processore e esecuzione delle istruzioni Prof. CAPEZIO Francesco Quest'opera è soggetta alla licenza Creative Commons Attribuzione Non Commerciale Introduzione Il compito di un processore

Dettagli

La pipeline. Sommario

La pipeline. Sommario La pipeline Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento al Patterson: 4.5 e 4.6 1/27 http:\\homes.dsi.unimi.it\ borghese

Dettagli

Esercitazione del 05/05/ Soluzioni

Esercitazione del 05/05/ Soluzioni Esercitazione del 05/05/2005 - Soluzioni Una CPU a ciclo singolo richiede un ciclo di clock di durata sufficiente a permettere la stabilizzazione del circuito nel caso dell istruzione più complicata (con

Dettagli

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti Architettura degli Elaboratori e delle Reti Lezione 18 CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 18 1/2 Sommario!

Dettagli

Esercitazione del 05/05/ Soluzioni

Esercitazione del 05/05/ Soluzioni Esercitazione del 05/05/2010 - Soluzioni Criticità nella distribuzione dei dati e dei flussi Anche se in media una CPU pipelined richiede un ciclo di clock per istruzione, le singole istruzioni richiedono

Dettagli

Lezione di Tutorato Di Architettura degli Elaboratori B 18/05/2005 SOLUZIONI: PIPELINE

Lezione di Tutorato Di Architettura degli Elaboratori B 18/05/2005 SOLUZIONI: PIPELINE SOLUZIONI: PIPELINE Consegna per le domande del compito: (da 3 a 5 domande) Rispondere alle seguenti domande in maniera sintetica, usando il presente foglio per scrivere le risposte. Non è possibile consultare

Dettagli

Instruction Level Parallelism Salvatore Orlando

Instruction Level Parallelism Salvatore Orlando Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Organizzazione parallela del processore I processori moderni hanno un organizzazione interna che permette di eseguire più istruzioni

Dettagli

Instruction Level Parallelism

Instruction Level Parallelism Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Organizzazione parallela del processore I processori moderni hanno un organizzazione interna che permette di eseguire più istruzioni

Dettagli

La pipeline. Sommario

La pipeline. Sommario La pipeline Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento al Patterson: 4.5 e 4.6 1/28 http:\\homes.dsi.unimi.it\ borghese

Dettagli

Il processore: unità di elaborazione

Il processore: unità di elaborazione Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero

Dettagli

Indirettezza. Fetch/Execute. Fetch/Execute. Introduzione della Indirettezza (indirect)

Indirettezza. Fetch/Execute. Fetch/Execute. Introduzione della Indirettezza (indirect) Ciclo esecutivo delle istruzioni: Fetch/Execute Lo avete visto nel corso di Introduzione alle Architetture degli Elaboratori Stallings, Capitolo 3 Ne vediamo una versione revisionata Indirettezza Per recuperare

Dettagli

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa) Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Parte di Controllo La Parte Controllo (Control) della CPU è un circuito sequenziale istruzioni eseguite in più cicli di clock

Dettagli

Evoluzione delle architetture Evoluzione strutturale

Evoluzione delle architetture Evoluzione strutturale Evoluzione delle architetture Evoluzione strutturale Parallelismo Se un lavoro non può essere svolto più velocemente da una sola persona (unità), allora conviene decomporlo in parti che possano essere

Dettagli

Progetto CPU a singolo ciclo

Progetto CPU a singolo ciclo Architettura degli Elaboratori e delle Reti Progetto CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano 1/50 Sommario! La CPU! Sintesi di

Dettagli

Architettura dei sistemi di elaborazione: La CPU: Architettura (parte 2)

Architettura dei sistemi di elaborazione: La CPU: Architettura (parte 2) Architettura dei sistemi di elaborazione: La CPU: Architettura (parte 2) ALU L unità aritmetico logica o ALU rappresenta l apparato muscolare di un calcolatore, il dispositivo cioè che esegue le operazioni

Dettagli

Architettura del Calcolatore

Architettura del Calcolatore Giuseppe Manco Lezione 3 17 Ottobre 2003 Architettura del calcolatore Il calcolatore è uno strumento programmabile per la rappresentazione, la memorizzazione e l elaborazione delle informazioni un calcolatore

Dettagli

L unità di controllo di CPU a singolo ciclo

L unità di controllo di CPU a singolo ciclo L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D,

Dettagli

Esercitazione su Instruction Level Parallelism

Esercitazione su Instruction Level Parallelism Esercitazione su Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Pipeline con e senza forwarding Si considerino due processori MIPS (processore A e B) entrambi con pipeline a

Dettagli

Un quadro della situazione. Cosa abbiamo fatto. Lezione 30 Valutazione delle Prestazioni. Dove stiamo andando.. Perché:

Un quadro della situazione. Cosa abbiamo fatto. Lezione 30 Valutazione delle Prestazioni. Dove stiamo andando.. Perché: Un quadro della situazione Lezione 3 Valutazione delle Prestazioni Vittorio Scarano rchitettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione

Dettagli

Arch. Elab. - S. Orlando 2. ma aumentiamo il rate di accesso alla memoria (per leggere istruzioni e. leggere/scrivere dati) von Neumann bottleneck

Arch. Elab. - S. Orlando 2. ma aumentiamo il rate di accesso alla memoria (per leggere istruzioni e. leggere/scrivere dati) von Neumann bottleneck Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Pipeline Le unità funzionali (lavatrice, asciugatrice, stiratrice, armadio) sono usate sequenzialmente per eseguire i vari job

Dettagli

Architettura degli Elaboratori Lez. 10 Esercizi su CPU MIPS a 1 ciclo di clock. Prof. Andrea Sterbini

Architettura degli Elaboratori Lez. 10 Esercizi su CPU MIPS a 1 ciclo di clock. Prof. Andrea Sterbini Architettura degli Elaboratori Lez. 10 Esercizi su CPU MIPS a 1 ciclo di clock Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Argomenti della lezione - Esercizi sulla CPU MIPS a 1 colpo di clock

Dettagli

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H Architettura dei calcolatori e sistemi operativi Il processore Capitolo 4 P&H 4. 11. 2015 Sommario Instruction Set di riferimento per il processore Esecuzione delle istruzioni Struttura del processore

Dettagli

ARCHITETTURE AVANZATE DEI CALCOLATORI, A.A. 2007/08 Soluzione esercizi sul pipelining

ARCHITETTURE AVANZATE DEI CALCOLATORI, A.A. 2007/08 Soluzione esercizi sul pipelining ARCHITETTURE AVANZATE DEI CALCOLATORI, A.A. 2007/08 Soluzione esercizi sul pipelining Esercizio 1) N.B. Nei diagrammi a cicli multipli non sono indicati i registri di pipeline (per semplicità) a) Si tratta

Dettagli

CALCOLATORI ELETTRONICI 14 giugno 2010

CALCOLATORI ELETTRONICI 14 giugno 2010 CALCOLATORI ELETTRONICI 14 giugno 2010 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si implementi per mezzo di porte logiche di AND, OR e NOT la funzione combinatoria (a

Dettagli

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori rchitettura dei Calcolatori Giuseppe Pozzi Impianti di Elaborazione Facoltà di Ingegneria dell'informazione Politecnico di Milano giuseppe.pozzi@polimi.it - versione del 20 settembre 2002 - rchitettura

Dettagli

Capitolo 5 Struttura di base del processore

Capitolo 5 Struttura di base del processore Capitolo 5 Struttura di base del processore 5.1. Il periodo di clock deve ospitare tutti i ritardi di propagazione più il tempo di impostazione per i registri. a. Minimo periodo di clock = 70 + 600 + 50

Dettagli

L unità di controllo di CPU a singolo ciclo

L unità di controllo di CPU a singolo ciclo L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1,

Dettagli

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero

Dettagli

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto Un quadro della situazione Lezione 15 Il Set di Istruzioni (2) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri

Dettagli

Sistemi e reti CPU Concetti di base

Sistemi e reti CPU Concetti di base Sistemi e reti CPU Concetti di base A cura dell Ing. Claudio Traini Cenni Storici 1971 il primo processore mai realizzato : Intel 4004 Progettato dal vicentino Federico Faggin 1 Cenni Storici 1976 Faggin

Dettagli

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Salvatore Orlando Arch. Elab. - S. Orlando 1 Livelli di astrazione Scendendo di livello, diventiamo più concreti e scopriamo

Dettagli

CPU a ciclo multiplo

CPU a ciclo multiplo Architettura degli Elaboratori e delle Reti Lezione CPU a ciclo multiplo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 1/8 Sommario! I problemi

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

Dettagli

CALCOLATORI ELETTRONICI 25 giugno 2018

CALCOLATORI ELETTRONICI 25 giugno 2018 CALCOLATORI ELETTRONICI 25 giugno 2018 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si implementi per mezzo di porte logiche OR, AND, NOT la funzione combinatoria (a 3 ingressi

Dettagli

Il processore: unità di controllo

Il processore: unità di controllo Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Dettagli

Esercitazione su Instruction Level Parallelism Salvatore Orlando

Esercitazione su Instruction Level Parallelism Salvatore Orlando Esercitazione su Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Pipeline con e senza forwarding Si considerino due processori MIPS (processore A e B) entrambi con pipeline a

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Andrea Torsello, Marta Simeoni " Architettura degli Elaboratori 1 1 Istruzioni

Dettagli

Esercitazione 06 Progettazione di una CPU RISC-V

Esercitazione 06 Progettazione di una CPU RISC-V Esercitazione 06 Progettazione di una CPU RISC-V Gianluca Brilli gianluca.brilli@unimore.it 04/06/19 ARCHITETTURA DEI CALCOLATORI 1 Overview In questa esercitazione andremo a progettare una semplice architettura

Dettagli

Stall on load e Hazard sul controllo. Sommario

Stall on load e Hazard sul controllo. Sommario Stall on load e Hazard sul controllo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento al Patterson: 4.7, 4.8 1/31 Sommario

Dettagli

Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico

Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico Architettura degli Elaboratori e Laboratorio Matteo Manzali Università degli Studi di Ferrara Anno Accademico 2016-2017 Criticità sui dati Questo è l esempio utilizzato per spiegare il funzionamento della

Dettagli

Esercitazione del 12/05/ Soluzioni

Esercitazione del 12/05/ Soluzioni Esercitazione del 12/05/2005 - Soluzioni Una CPU a ciclo singolo come pure una CPU multi ciclo eseguono una sola istruzione alla volta. Durante l esecuzione poi, alcuni stadi della CPU rimangono inutilizzate

Dettagli

Esercitazione del 14/05/ Soluzioni

Esercitazione del 14/05/ Soluzioni Esercitazione del 14/0/2009 - Soluzioni 1) Criticità nella distribuzione dei dati e dei flussi Anche se in media una CPU pipelined richiede un ciclo di clock per istruzione, le singole istruzioni richiedo

Dettagli

Capitolo 4 Parte 1 Le infrastrutture hardware. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Capitolo 4 Parte 1 Le infrastrutture hardware. Il processore La memoria centrale La memoria di massa Le periferiche di I/O Capitolo 4 Parte 1 Le infrastrutture hardware Il processore La memoria centrale La memoria di massa Le periferiche di I/O Funzionalità di un calcolatore Trasferimento Elaborazione Controllo Memorizzazione

Dettagli

La pipeline. Luigi Palopoli

La pipeline. Luigi Palopoli La pipeline Luigi Palopoli Ripartiamo da questo. Abbiamo visto come realizzare un semplice processore che esegue le istruzioni in un ciclo Questo non si fa più perché: A dettare il clock sono le istruzioni

Dettagli

Architettura degli elaboratori CPU a ciclo singolo

Architettura degli elaboratori CPU a ciclo singolo Architettura degli elaboratori CPU a ciclo singolo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo

Dettagli

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina

Dettagli

Architettura degli elaboratori CPU a ciclo singolo

Architettura degli elaboratori CPU a ciclo singolo Architettura degli elaboratori CPU a ciclo singolo Prof. Alberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano iferimento sul Patterson: capitolo 4.2, 4.4,

Dettagli

Controllo a ciclo singolo

Controllo a ciclo singolo Controllo a ciclo singolo Il controllo della CPU a singolo ciclo è combinatorio Il datapath è invece un circuito sequenziale i suoi output dipendono anche dal valore dei registri es. Zero, oppure l indirizzo

Dettagli

Trend di sviluppo delle pipeline

Trend di sviluppo delle pipeline Trend di sviluppo delle pipeline Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@.unimi.it Università degli Studi di Milano Patterson 4.10, 4.11 1/36 Sommario Superpipeline

Dettagli

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto Un quadro della situazione Lezione 14 Il Set di Istruzioni (2) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri

Dettagli

Informatica di base 4 crediti 32 ore!!

Informatica di base 4 crediti 32 ore!! Informatica di base 4 crediti 32 ore!! Programma Architettura dei computer L informazione ed il computer Le reti dei calcolatori I sistemi operativi La programmazione Informazioni utili Utilizzo dei computer

Dettagli

CPU multiciclo eccezioni CPU pipeline

CPU multiciclo eccezioni CPU pipeline Architettura degli Elaboratori e delle Reti Lezione 22 CPU multiciclo eccezioni CPU pipeline Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Architettura dell elaboratore

Architettura dell elaboratore Architettura dell elaboratore Riprendiamo il discorso lasciato in sospeso ad inizio corso Riepilogando I programmi e i dati risiedono nella memoria secondaria Per essere eseguiti (i programmi) e usati

Dettagli

Architettura dell elaboratore

Architettura dell elaboratore Architettura dell elaboratore Riprendiamo il discorso lasciato in sospeso ad inizio corso Riepilogando I programmi e i dati risiedono nella memoria secondaria Per essere eseguiti (i programmi) e usati

Dettagli

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche 3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 Programma del corso Informatica di

Dettagli

Lezione 29 Il processore: unità di controllo (2)

Lezione 29 Il processore: unità di controllo (2) Lezione 29 Il processore: unità di lo (2) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione 2 Un riepilogo: ruolo della unità di

Dettagli

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II) 1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 La inserita nella architettura dell elaboratore Informatica Facoltà di Medicina Veterinaria a.a.

Dettagli

CPU a ciclo multiplo

CPU a ciclo multiplo Architettura degli Elaboratori e delle Reti Lezione CPU a ciclo multiplo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L /9 Sommario! I problemi

Dettagli