Concetti di base del PIPELINING. L architettura MIPS pipelined. L architettura MIPS pipelined
|
|
- Berta Fantini
- 7 anni fa
- Visualizzazioni
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 L architettura MIPS pipelined I problemi del pipelining Alcune soluzioni di base ai problemi del pipelining Versioni più sofisticate di pipeline Osservazioni conclusive.
DettagliConcetti 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.
DettagliCalcolatori 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
DettagliCome 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
DettagliLa 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\
DettagliLa 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\
DettagliInstruction 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
DettagliCicli 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
DettagliArchitetture 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
DettagliUnità 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
DettagliProblemi 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
DettagliProcessore. 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
DettagliEsercitazione 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
DettagliPipelining: 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
DettagliArchitettura 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à
DettagliFasi (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
DettagliL'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
DettagliRichiami 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
DettagliArchitettura 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
DettagliIl 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
DettagliRichiami 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
DettagliIl 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
DettagliArchitettura 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
DettagliStall 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
DettagliCalcolatori 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
DettagliArchitettura 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
DettagliCPU 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
DettagliEsercitazione 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
DettagliCalcolatori 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
DettagliIntroduzione 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
DettagliPipelining. 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
DettagliSia 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:
DettagliCPU 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!
DettagliStall 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
DettagliProcessore. 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
DettagliPipeline 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
DettagliArchitettura 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
DettagliIl 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
DettagliArchitettura 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
DettagliLa 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
DettagliEsercitazione 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
DettagliCPU 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!
DettagliEsercitazione 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
DettagliLezione 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
DettagliInstruction 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
DettagliInstruction 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
DettagliLa 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
DettagliIl 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
DettagliIndirettezza. 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
DettagliProcessore. 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
DettagliEvoluzione 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
DettagliProgetto 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
DettagliArchitettura 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
DettagliArchitettura 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
DettagliL 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,
DettagliEsercitazione 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
DettagliUn 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
DettagliArch. 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
DettagliArchitettura 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
DettagliArchitettura 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
DettagliARCHITETTURE 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
DettagliCALCOLATORI 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
DettagliArchitettura 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
DettagliCapitolo 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
DettagliL 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,
DettagliProgettazione 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
DettagliUn 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
DettagliSistemi 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
DettagliLinguaggio 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
DettagliCPU 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
DettagliArchitettura 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
DettagliCALCOLATORI 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
DettagliIl 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
DettagliEsercitazione 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
DettagliArchitettura 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
DettagliEsercitazione 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
DettagliStall 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
DettagliArchitettura 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
DettagliEsercitazione 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
DettagliEsercitazione 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
DettagliCapitolo 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
DettagliLa 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
DettagliArchitettura 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
DettagliArchitettura 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
DettagliArchitettura 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,
DettagliControllo 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
DettagliTrend 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
DettagliUn 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
DettagliInformatica 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
DettagliCPU 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
DettagliArchitettura 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
DettagliArchitettura 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
DettagliLinguaggio 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
DettagliSistemi 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
DettagliLezione 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
DettagliPag. 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.
DettagliCPU 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