Prof. Cristina Silvano Dipartimento di Elettronica e Informazione.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Prof. Cristina Silvano Dipartimento di Elettronica e Informazione."

Transcript

1 Pipelining nel processore IPS Prof. Cristina Silvano Dipartimento di Elettronica e Informazione Politecnico di ilano silvano@elet.polimi.it Cristina Silvano Politecnico di ilano Pipelining Tecnica per migliorare le prestazioni basata sulla sovrapposizione dell esecuzione di più istruzioni appartenenti ad un flusso di esecuzione sequenziale. Idea base: Il lavoro svolto in una CP pipeline per eseguire un istruzione è diviso in passi (stadi di pipeline), che richiedono una frazione del tempo necessario al completamento dell intera istruzione. Gli stadi sono sovrapposti per formare la pipeline: le istruzioni entrano da una estremità, vengono elaborate attraverso gli stadi, escono dall altro estremo. Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 1

2 Pipelining (cont.) Principale vantaggio: tecnica trasparente al programmatore. Tecnica simile ad una catena di montaggio: una nuova automobile esce dalla catena nel tempo necessario per svolgere uno dei molti passi. na catena di montaggio non riduce il tempo di realizzazione di una singola automobile, ma aumenta il numero di automobili costruite simultaneamente e pertanto la frequenza con cui le automobili vengono iniziate e completate. Cristina Silvano Politecnico di ilano Esecuzione sequenziale vs. pipelining I1 I2 ECC 10 ns 10 ns I1 Tempo I2 I3 I4 I5 Ordine di esecuzione delle istruzioni Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 2

3 Pipelining (cont.) Il tempo necessario per far avanzare un istruzione di uno stadio lungo la pipeline corrisponde idealmente ad un ciclo di clock. Poiché gli stadi di pipeline sono collegati in successione, devono tutti operare in modo sincrono: la durata di un ciclo di clock è determinata dal tempo richiesto per lo stadio più lento della pipeline (es. ). L obiettivo dei progettisti è bilanciare la lunghezza di ciascuno stadio. Se gli stadi sono perfettamente bilanciati, l accelerazione ideale dovuta al pipelining è pari al numero di stadi di pipeline: una CP pipeline a 5 stadi è 5 volte più veloce della stessa CP senza pipeline. Cristina Silvano Politecnico di ilano Pipelining (cont.) In generale, gli stadi non sono perfettamente bilanciati e l introduzione del pipelining comporta costi aggiuntivi L intervallo di tempo fra il completamento di 2 istruzioni è superiore al valore minimo possibile L incremento di velocità sarà minore del numero di stadi di pipeline introdotto (in genere una pipeline a 5 stadi non riesce a quintuplicare le prestazioni). Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 3

4 iglioramento delle prestazioni rchitettura IPS : Istruzioni suddivise al massimo in 5 passi Pipeline a 5 stadi. Ogni stadio di pipeline ha una durata prefissata (ciclo di pipeline), che deve essere sufficientemente lunga da consentire l esecuzione dell operazione più lenta: ad esempio si deve adottare un ciclo di almeno, sebbene alcuni stadi richiedano solo 1 ns. Cristina Silvano Politecnico di ilano Esecuzione pipeline di 5 operazioni di load lw $s1, 0($s0) Tempo lw $s2, 4($s0) lw $s3, 8($s0) lw $s4, 8($s0) lw $s5, 8($s0) Ordine di esecuzione delle istruzioni Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 4

5 iglioramento delle prestazioni (cont( cont.) Sebbene il miglioramento ideale delle istruzioni di load sia pari a 4 volte, il tempo di esecuzione totale di 5 istruzioni di load comporta un miglioramento più modesto: 5 istruzioni di load senza pipeline: 40 ns 5 istruzioni di load con pipeline: 18 ns 18 ns invece di 40 ns (40 / 18 = 2,22) Questa differenza è provocata dal tempo necessario a riempire e svuotare la pipeline: servono 4 stadi per riempire la pipeline. Cristina Silvano Politecnico di ilano iglioramento delle prestazioni (cont( cont.) l crescere del numero di istruzioni il rapporto tra i tempi totali di esecuzione dei programmi su macchine senza e con pipeline è vicino al limite ideale (stabilito dal rapporto dei tempi di completamento delle istruzioni): 1000 istruzioni di load senza pipeline: ns = 8000 ns 1000 istruzioni di load con pipeline: ns = 2008ns 8000 ns/2008 ns 3,98 Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 5

6 iglioramento delle prestazioni (cont( cont.) Caso ideale (Caso asintotico): La latenza (tempo di esecuzione totale) della singola istruzione di load è peggiorata perché è passata da 8 ns a 10 ns. Il throughput (numero di istruzioni completate nell unità di tempo) è migliorato di 4 volte: (1 istruzione di load completata ogni 8 ns) vs. (1 istruzione di load completata ogni ). Cristina Silvano Politecnico di ilano iglioramento delle prestazioni (cont( cont.) Se avessimo considerato una CP1 a singolo ciclo da 10 ns composta da 5 stadi ciascuno da e una CP2 pipeline ideale (caso asintotico) con 5 stadi da avremmo trovato: La latenza di ogni singola istruzione rimane invariata e pari a 10 ns. Il throughput è migliorato di 5 volte: (1 istruzione di load completata ogni 10 ns) vs. (1 istruzione completata ogni ). Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 6

7 Passi svolti durante l esecuzione l delle istruzioni Istruzioni aritmetico-logiche: op $x, $y, $z Prelievo Istruz. & Increm. PC Lettura Registri Sorgente $y e $z Op. L sui Dati Letti ( $y op $z) Scrittura nel Reg. Destinazione $x Istruzioni di caricamento (load): l w $x, offset($y) Prelievo Istruz. & Increm. PC Lettura Registro Base $y Op. L ( $y+of f set ) Prelievo Dato ( $y+of f set ) Scrittura nel Reg. Destinazione $x Istruzioni di memorizzazione (store): sw $x,offset($y) Prelievo Istruz. & Increm. PC Lettura Registri Base $y & Sorg. $x Op. L ( $y+of f set ) Istruzioni di salto condizionato: beq $x, $y, of f set Prelievo Istruz. & Increm. PC Lettura Registri Sorgente $x e $y Op. L ($x- $y) & (PC+4+of f s et ) Scrittura Dato ( $y+of f set ) Scrittura nel PC Istruzioni di salto non condizionato: j L1 Prelievo Istruz. & Increm. PC (PC+4 L1 00) Scrittura nel PC Cristina Silvano Politecnico di ilano Passi svolti durante l esecuzione l delle istruzioni in modalità pipeline Prelievo Istruzione (Instruction Fetch) Decodifica Istruzione (Instruction Decode) Esecuzione (Execution) ccesso alla emoria (emory ccess) Riscrittura Registri (Write Back) Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 7

8 Passi svolti durante l esecuzione l delle istruzioni in modalità pipeline Prelievo Istruzione (Instruction Fetch) Decodifica Istruzione (Instruction Decode) Esecuzione (Execution) ccesso alla emoria (emory ccess) Riscrittura Registri (Write Back) Istruzioni aritmetico-logiche: op $x,$y,$z Prelievo Istruz. & Increm. PC Istruzioni di caricamento (load): lw $x,offset($y) Prelievo Istruz. & Increm. PC Lettura Registri Sorgente $y e $z Lettura Registro Base $y Op. L sui Dati Letti ($y op $z) Op. L ($y+offset) Prelievo Dato ($y+offset) Scrittura nel Reg. Destinazione $x Scrittura nel Reg. Destinazione $x Istruzioni di memorizzazione (store): sw $x,offset($y) Prelievo Istruz. & Increm. PC Istruzioni di salto condizionato: beq $x,$y,offset Prelievo Istruz. & Increm. PC Lettura Registri Base $y & Sorg. $x Lettura Registri Sorgente $x e $y Op. L ($y+offset) Op. L ($x-$y) & (PC+4+offset) Istruzioni di salto non condizionato: j L1 Scrittura Dato ($y+offset) Scrittura nel PC Prelievo Istruz. & Increm. PC (PC+4 L1 00) Cristina Silvano Politecnico di ilano Scrittura nel PC Struttura pipeline della CP IPS La suddivisione dell esecuzione di un istruzione in 5 stadi implica che in ogni ciclo di clock siano in esecuzione 5 istruzioni la struttura di una CP pipeline a 5 stadi deve essere scomposta in 5 parti o stadi di esecuzione, ciascuna corrispondente ad una delle fasi di pipeline devono essere introdotti registri di pipeline che separano i diversi stadi. Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 8

9 Struttura pipeline della CP IPS (cont( cont.) Decodifica Istruzioni Esecuzione Istruzioni ccesso alla emoria Riscrittura Instruction decode Execution emory access Write back +4 / / / / PC Sommatore Indirizzo le ttura Istruzione e mo ria Istruzioni Prelievo Istruzioni Instruction fetch [25-21] [20-16] [15-11] [15-0] Registro lettura 1 Registro lettura 2 Registro scrittura Dati per scrittura 16 bit WR Regis tri Estensione di segno Contenuto registro 1 Contenuto registro 2 32 bit Scorri a sinistra di 2 bit Sommatore OP L Zero Risultato Indirizzo di lettura Indirizzo di scrittura Dati per scrittura WR RD Dati letti e mo ria Dati Cristina Silvano Politecnico di ilano Struttura pipeline della CP IPS (cont.) L istruzione memorizzata nel registro di pipeline / fornisce il numero del registro di scrittura, mentre i dati scritti sono quelli relativi all istruzione che si trova nel registro / occorre modificare la CP in modo da trasmettere attraverso i registri di pipeline (/, / e /) l indirizzo del registro da scrivere durante lo stadio. L indirizzo del registro di scrittura, che viene fatto passare attraverso gli stadi intermedi, proviene dal registro di pipeline / insieme ai dati. Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 9

10 Struttura pipeline della CP IPS (cont.) +4 / Decodifica Istruzioni Esecuzione Istruzioni ccesso alla emoria Riscrittura Instruction decode Execution emory access Write back / / / PC Sommatore Indirizzo lettura Is truzione e mo ria Istruzioni [25-21] [20-16] [15-11] Registro lettura 1 Registro lettura 2 Registro scrittura Dati per scrittura WR Regis tri Contenuto registro 1 Contenuto registro 2 Scorri a sinistra di 2 bit Sommatore OP L Zero Risultato Indirizzo di lettura Indirizzo di scrittura Dati per scrittura WR RD Dati letti e mo ria Dati Prelievo Istruzioni Instruction fetch [15-0] 16 bit Estensione di segno 32 bit Cristina Silvano Politecnico di ilano tilizzo delle risorse durante l esecuzione l pipeline I1 I2 I3 I4 I5 I REG L D REG I REG L D REG I REG L D REG I REG L D REG Ordine di esecuzione delle istruzioni Tempo I REG L D REG I = emoria Istruzioni; REG = Banco di Registri; D = emoria Dati Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 10

11 Problema dei conflitti Conflitti strutturali: tentativo di usare la stessa risorsa da parte di diverse istruzioni in modi diversi nello stesso intervallo di tempo: Esempio: se avessimo un unica memoria per istruzioni e dati Conflitti sui dati: tentativo di utilizzare un risultato prima che sia pronto Esempio: istruzione che dipende dal risultato di un istruzione precedente che è ancora nella pipeline Conflitti sul controllo: tentativo di prendere una decisione sulla prossima istruzione da eseguire prima che la condizione sia valutata Esempio: istruzioni di salto condizionato Cristina Silvano Politecnico di ilano Problema dei conflitti strutturali Nell architettura IPS non abbiamo conflitti strutturali: emoria Istruzioni separata dalla emoria Dati Banco di Registri usato nello stesso intervallo di tempo facendo un accesso in lettura da parte di un istruzione e in scrittura da parte di un altra istruzione I1 I REG RD L D REG WR Tempo I2 I REG RD L D REG WR I3 I REG RD L D REG WR I4 I REG RD L D REG WR I5 Ordine di esecuzione delle istruzioni I REG RD L D REG WR Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 11

12 Problema del conflitto di dati Se le istruzioni eseguite nella pipeline sono dipendenti tra loro possono nascere problemi dovuti a conflitti di dati. Esempio: le ultime quattro istruzioni dipendono dal risultato scritto nel registro $2 dalla prima istruzione, ma solo l ultima istruzione accede al valore corretto: sub $2, $1, $3 # Reg. $2 scritto dalla istruzione sub and $12, $2, $5 # Il 1 operando($2) dipende dalla sub or $13, $6, $2 # Il 2 operando($2) dipende dalla sub add $14, $2, $2 # 1 ($2) & 2 ($2) dipendono dalla sub sw $15,100($2) # Il reg. indice($2) dipende dalla sub Cristina Silvano Politecnico di ilano Problema del conflitto di dati: : Esempio CK8 CK9 Tempo (cicli di clock) sub $2, $1, $3 and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15,100($2) Contenuto di $ / Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 12

13 Soluzioni al problema del conflitto di dati Tecniche di compilazione del codice: Inserimento di istruzioni nop (no operation). Scheduling o riordino delle istruzioni in modo da impedire che istruzioni correlate siano troppo vicine. Il compilatore cerca di inserire tra le istruzioni correlate (che presentano dei conflitti) delle istruzioni indipendenti dal risultato delle precedenti operazioni, facendo così scomparire tutti i conflitti. Quando il compilatore non riesce a trovare istruzioni indipendenti deve inserire istruzioni nop. Tecniche di tipo hardware: Inserimento di bolle o stalli nella pipeline. Propagazione dei dati in avanti i dati (forwarding o bypassing) Cristina Silvano Politecnico di ilano Inserimento di nop: : Esempio Esempio: il compilatore deve inserire tra le istruzioni sub e and tre istruzioni nop, facendo così scomparire tutti i conflitti. CK8 CK sub $2, $1, $3 nop Tempo (cicli di clock) nop nop and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15,100($2) Contenuto di $ / Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 13

14 Scheduling: : Esempio Esempio: sub $2, $1, $3 sub $2, $1, $3 and $12, $2, $5 add $4, $10, $11 or $13, $6, $2 and $7, $8, $9 add $14, $2, $2 lw $16, 100($18) sw $15,100($2) lw $17, 200($19) add $4, $10, $11 and $12, $2, $5 and $7, $8, $9 or $13, $6, $2 lw $16, 100($18) add $14, $2, $2 lw $17, 200($19) sw $15,100($2) Cristina Silvano Politecnico di ilano Inserimento di bolle o stalli: Esempio na possibile soluzione di tipo hardware consiste nell inserire delle bolle nella pipeline, cioè bloccare il flusso di istruzioni nella pipeline fino a quando il conflitto non è risolto. Lo stato in cui si trova la CP quando le istruzioni sono bloccate è indicato con il termine stallo. Nell esempio significa inserire 3 bolle o stalli per fermare le istruzioni che seguono l istruzione sub affinché possano essere letti i dati corretti. Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 14

15 Inserimento di bolle o stalli: Esempio CK8 CK sub $2, $1, $3 Tempo (cicli di clock) and $12, $2, $5 bolla bolla bolla or $13, $6, $2 add $14, $2, $2 sw $15,100($2) Contenuto di $ / Cristina Silvano Politecnico di ilano Inserimento di bolle o stalli: Esempio Purché il contenuto dei registri PC e / vengano conservati, l istruzione nello stadio continuerà ad essere letta utilizzando lo stesso PC, ed i registri nello stadio continueranno ad essere letti utilizzando la stessa istruzione nel registro di pipeline /. L istruzione and resta nel registro di pipeline / per 3 cicli di clock, mentre vengono generate 3 bolle separate nella pipeline. Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 15

16 Problema del conflitto di dati: Esempio L1: add $2, $2, $2 # Reg. $2 scritto dall istruz. L1 L2: add $2, $2, $2 # 1 e 2 operando dipendono dalla L1 L3: add $2, $2, $2 # 1 e 2 operando dipendono dalla L2 add $2, $2, $2 Tempo (cicli di clock) add $2, $2, $2 add $2, $2, $2 Contenuto di $ / Cristina Silvano Politecnico di ilano Problema del conflitto di dati: Esempio CK8 CK add $2, $2, $2 Tempo (cicli di clock) add $2, $2, $2 add $2, $2, $2 Contenuto di $ / / Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 16

17 Forwarding n altra possibile soluzione hardware consiste nella propagazione in avanti dei dati: il valore richiesto dall istruzione and, è già disponibile nel registro di pipeline / dell istruzione sub. nalogamente, l ingresso dell L per l istruzione or successiva si trova nel registro di pipeline / dell istruzione sub. E possibile fornire all L gli ingressi richiesti dalle istruzioni and e or propagando in avanti i risultati che si trovano nei registri di pipeline, senza aspettare che siano scritti nel banco di registri. Cristina Silvano Politecnico di ilano Forwarding Questa tecnica, che utilizza risultati temporanei invece di attendere che i registri siano scritti, si chiama propagazione in avanti dei risultati (forwarding) o bypassing. ggiungendo multiplexer agli ingressi dell L in modo da prelevare gli ingressi da qualsiasi registro di pipeline e non solo dal registro /, la pipeline può procedere senza stalli anche in presenza di conflitti di dati. Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 17

18 Forwarding: : Esempio CK8 CK9 sub $2, $1, $3 Tempo (cicli di clock) and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15,100($2) Contenuto di $2 / / / Cristina Silvano Politecnico di ilano Forwarding: : Esempio I1 I REG RD / path L D / path REG WR / path Tempo I2 I REG RD L D REG WR I3 I REG RD L D REG WR I4 I REG RD L D REG WR I5 Ordine di esecuzione delle istruzioni I REG RD L D REG WR Sono necessari tre percorsi di forwarding: / path / path / path Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 18

19 Struttura della CP con unità di forwarding / / / / PC emoria Istruzioni Instruction path Reg. ux ux ux ux L emoria Dati ux /.RegisterRs Rs /.RegisterRt Rt /.RegisterRt /.RegisterRd Rt Rd ux /.RegisterRd / path / path Forwarding /.RegisterRd unit / path Cristina Silvano Politecnico di ilano Problema del conflitto di dati: load/use L1: lw $s0, 4($t1) # $s0 <- [4 + $t1] L2: add $s5, $s0, $s1 # Il 1 operando dipende dalla L1 lw $s0, 4($t1) add $s5,$s0,$s1 Contenuto di $s / Senza forwarding : Necessari 3 stalli Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 19

20 Problema del conflitto di dati: load/use Con forwarding: Necessario 1 stallo Si utilizza il percorso / lw $s0, 4($t1) add $s5,$s0,$s1 Contenuto di $s / Contenuto di / x x x x Cristina Silvano Politecnico di ilano Problema del conflitto di dati: load/store L1: lw $s0, 4($t1) # $s0 <- [4 + $t1] L2: sw $s0, 4($t2) # [4 + $t2] <- $s0 lw $s0, 4($t1) sw $s0, 4($t2) Contenuto di $s / Senza forwarding : Necessari 3 stalli Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 20

21 Problema del conflitto di dati: load/store Con forwarding: Nessuno stallo Devo usare un percorso di forwarding per portare il risultato della load dalla memoria in / all ingresso della memoria per effettuare la store. lw $s0, 4($t1) sw $s0, 4($t2) Contenuto di $s / Contenuto di / x x x x Cristina Silvano Politecnico di ilano Struttura della CP con unità di Forwarding / / / / PC emoria Istruzioni Instruction path Reg. ux u x ux ux L ux em. Dati ux /.RegisterRs Rs /.RegisterRt /.RegisterRt /.RegisterRd / path Rt Rt Rd / path u x / path /.RegisterRd Forwarding /.RegisterRd unit / path In totale sono necessari 4 percorsi di forwarding: / path / path / path / path Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 21

22 Pipeline Ottimizzata Il Banco di Registri (Register File) è usato in 2 stadi: in lettura nello stadio e in scrittura nello stadio. Cosa succede se lettura e scrittura fanno riferimento allo stesso registro nello stesso ciclo? Devo inserire una bolla o stallo. Pipeline ottimizzata: si suppone che la lettura del RF avvenga nella seconda metà del ciclo di clock e la scrittura nella prima metà del ciclo. Cosa succede se lettura e scrittura fanno riferimento allo stesso registro nello stesso ciclo? Non devo inserire una bolla o stallo. Cristina Silvano Politecnico di ilano tilizzo delle risorse durante l esecuzione l pipeline ottimizzata I1 I2 I3 I4 I5 I REG L D REG I REG L D REG I REG L D REG I REG L D REG Ordine di esecuzione delle istruzioni Tempo I REG L D REG I = emoria Istruzioni; REG = Banco di Registri; D = emoria Dati Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 22

23 Problema del conflitto di dati: : Esempio CK8 CK9 Tempo (cicli di clock) sub $2, $1, $3 and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15,100($2) Contenuto di $ Cristina Silvano Politecnico di ilano Problema del conflitto di dati: : Esempio sub and or add sw I REG L D REG I REG L D REG I REG L D REG I REG L D REG Ordine di esecuzione delle istruzioni Tempo I REG L D REG Devo inserire due bolle o stalli Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 23

24 Inserimento di bolle o stalli: Esempio CK8 CK sub $2, $1, $3 Tempo (cicli di clock) and $12, $2, $5 bolla bolla or $13, $6, $2 add $14, $2, $2 sw $15,100($2) Contenuto di $ Cristina Silvano Politecnico di ilano Forwarding nella pipeline ottimizzata: Esempio CK8 CK9 sub $2, $1, $3 Tempo (cicli di clock) and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15,100($2) Contenuto di $2 / / Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 24

25 sub and or add sw Forwarding nella pipeline ottimizzata: Esempio I REG L D REG I REG L D REG I REG L D REG I REG L D REG Ordine di esecuzione delle istruzioni / path / path Tempo I REG L D REG Nell esempio sono sufficienti 2 percorsi di forwarding: / path / path Cristina Silvano Politecnico di ilano Struttura della CP con pipeline ottimizzata e unità di forwarding / / / / PC emoria Istruzioni Instruction path Reg. ux ux L u x em. Dati ux /.RegisterRs Rs /.RegisterRt /.RegisterRt /.RegisterRd Rt Rt Rd ux / path /.RegisterRd Forwarding unit /.RegisterRd / path / path In totale sono necessari 3 percorsi di forwarding: / path / path / path Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 25

26 Conflitti sui dati I conflitti sui dati sinora visti sono di tipo: RW (RED FTER WRITE): l istruzione n+1 cerca di leggere un registro sorgente prima che l istruzione precedente n lo abbia scritto. Esempio: add $r1, $r2, $r3 sub $r4, $r1, $r5 Si è visto che introducendo il forwarding è sempre possibile risolvere questo tipo di conflitti senza introdurre stalli, tranne nel caso del conflitto load/use dove è necessario aggiungere uno stallo. Cristina Silvano Politecnico di ilano Conflitti sui dati ltri tipi di possibili conflitti sui dati: WW (WRITE FTER WRITE) WR (WRITE FTER RED) Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 26

27 Conflitti sui dati: WW (WRITE FTER WRITE) L istruzione n+1 cerca di scrivere un operando destinazione prima che sia stato scritto dall istruzione precedente n scritture eseguite nell ordine sbagliato. Tale conflitto non può avvenire nella pipeline del processore IPS (perché tutte le scritture nei registri avvengono nello stadio ). Cristina Silvano Politecnico di ilano Conflitti sui dati: WW (WRITE FTER WRITE) Esempio: Se supponiamo che la scrittura dei registri nelle operazioni aritmetico-logiche avvenga nello stadio e che siano necessari due stadi per l accesso alla memoria dati abbiamo che: lw $r1, 0($r2) 1 2 add $r1,$r2,$r3 Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 27

28 Conflitti sui dati: WW (WRITE FTER WRITE) Esempio: Se supponiamo che le operazioni aritmetiche in virgola mobile prevedano uno stadio di esecuzione multiciclo abbiamo che: CK8 mul $f6,$f2,$f2 L1 L2 L3 L4 add $f6,$f2,$f2 D1 D2 Cristina Silvano Politecnico di ilano Conflitti sui dati: WR (WRITE FTER RED) L istruzione n+1 cerca di scrivere un operando destinazione prima che sia stato letto dall istruzione precedente n l istruzione n legge il valore scorretto. Tale conflitto non può avvenire nella pipeline del processore IPS (perché la lettura degli operandi avviene nello stadio e la scrittura nello stadio ). Se supponiamo come prima che la scrittura dei registri nelle operazioni aritmetico-logiche avvenga nello stadio e che siano necessari due stadi per l accesso alla memoria dati, abbiamo che alcune istruzioni possono leggere gli operandi troppo tardi nella pipeline. Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 28

29 Conflitti sui dati: WR (WRITE FTER RED) Esempio: L istruzione sw legge $r2 nella seconda metà dello stadio 2 e l istruzione add scrive $r2 nella prima metà dello stadio sw legge il nuovo valore di $r2. sw $r1, 0($r2) 1 2 add $r2, $r3, $r4 Cristina Silvano Politecnico di ilano Problema del conflitto di controllo Per alimentare la pipeline si deve prelevare un istruzione ad ogni ciclo di clock, però la decisione relativa al salto condizionato non viene presa fino allo stadio. Questo ritardo nel determinare l istruzione corretta da prelevare viene chiamato conflitto di controllo o conflitto di salto condizionato. Tali conflitti sono statisticamente meno frequenti dei conflitti sui dati. Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 29

30 Problema del conflitto di controllo: Esempio CK8 CK9 40 beq $1, $3, 72 Tempo (cicli di clock) 44 and $12, $2, $5 48 or $13, $6, $2 52 add $14, $2, $2 72 lw $4,50($7) Poiché l istruzione di salto condizionato effettua la decisione se effettuare o meno il salto nello stadio, le 3 istruzioni immediatamente successive vengono prelevate e viene iniziata la loro esecuzione. Se non si interviene, queste 3 istruzioni verranno completate prima dell istruzione lw che si trova all indirizzo di destinazione del salto (72) Necessaria una flush delle 3 istruzioni già presenti nella pipeline Cristina Silvano Politecnico di ilano Soluzioni al problema del conflitto di controllo Bloccare la pipeline in uno stato di stallo Senza forwarding : per tre cicli di clock Con forwarding: per due cicli di clock Con ottimizzazione hardware che vedremo: per un ciclo di clock Ipotizzare che il salto non sia eseguito (branch not taken) Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 30

31 Soluzioni al problema del conflitto di controllo (cont( cont.) na soluzione consiste nel bloccare il flusso di istruzioni (stallo della pipeline) fino a quando la decisione relativa al salto condizionato non viene presa e poi proseguire con l esecuzione delle istruzioni corrette. Se la condizione non è soddisfatta, la penalizzazione di tre cicli di clock introdotta non è giustificata diminuzione del throughput. Cristina Silvano Politecnico di ilano Soluzioni al problema del conflitto di controllo: Esempio senza forwarding CK8 CK beq $1, $3, 7 44 and $12, $2, $5 bolla bolla bolla 48 or $13, $6, $2 52 add $14, $2, $2 Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 31

32 Soluzioni al problema del conflitto di controllo: Esempio con forwarding CK8 CK beq $1, $3, 7 44 and $12, $2, $5 bolla bolla 48 or $13, $6, $2 52 add $14, $2, $2 Cristina Silvano Politecnico di ilano Soluzioni al problema del conflitto di controllo: : nticipo del calcolo del PC Per migliorare le prestazioni nel caso di conflitti di controllo, è possibile aggiungere risorse hardware in modo da: Confrontare i registri; Calcolare l indirizzo di destinazione del salto; ggiornare il PC nello stadio Vediamo la struttura della CP modificata (trascurando la logica di forwarding) Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 32

33 Soluzioni al problema del conflitto di controllo: : nticipo del calcolo del PC +4 / Sommatore / / / Sommatore Shift WR 2 bit PC Indirizzo lettura Istruzione emoria Istruzioni 16 bit Registro lettura 1 Registro lettura 2 Registro scrittura Dati per scrittu ra Estensione di segno Cont. Reg. 1 Registri Cont. Reg bit = L OP Risultato Dati letti emoria Dati Cristina Silvano Politecnico di ilano Soluzioni al problema del conflitto di controllo: : nticipo del calcolo del PC Risultato: Riduzione del costo associato ad ogni salto: Necessario solo uno stallo dopo ogni salto Oppure necessaria la flush solo di una istruzione che segue il salto (presente nello stadio della pipeline). Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 33

34 Soluzioni al problema del conflitto di controllo: : nticipo del calcolo del PC CK8 CK beq $1, $3, 7 44 and $12, $2, $5 bolla 48 or $13, $6, $2 52 add $14, $2, $2 Cristina Silvano Politecnico di ilano Conseguenza Conseguenza dell anticipo della decisione relativa al salto nello stadio : Nel caso di istruzioni di load (o add) seguita da branch che ne testa il risultato devo introdurre uno stallo. Esempio: CK8 CK9 0 1 add $1, $2, $3 beq $1, $6, L1 bolla Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 34

35 Soluzioni al problema del conflitto di controllo: Predizione statica dei salti n approccio migliore consiste nel fare una predizione statica: ipotizziamo che il salto non sia eseguito (branch not taken) e che quindi si possa continuare l esecuzione secondo il flusso sequenziale delle istruzioni. Se la condizione risulta poi non soddisfatta (la predizione si è rivelata corretta) preservo le prestazioni. 40 beq $1, $3, 72 CK8 CK9 Tempo (cicli di clock) 44 and $12, $2, $5 48 or $13, $6, $2 52 add $14, $2, $2 Cristina Silvano Politecnico di ilano Soluzioni al problema del conflitto di controllo: Predizione statica dei salti Se la condizione risulta poi soddisfatta (la predizione non si è rivelata corretta) e il salto viene eseguito (branch taken): Devo eseguire una flush dell istruzione già prelevata (che non deve provocare alcun effetto) e l esecuzione può proseguire dall indirizzo di destinazione del salto (penalizzazione di un ciclo di clock se la predizione non è verificata). CK8 CK9 40 beq $1, $3, and $12, $2, $5 Tempo (cicli di clock) 72 lw $4, 50($7) Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 35

36 Soluzioni al problema del conflitto di controllo: Predizione statica dei salti Se in media metà delle volte i salti non vengono eseguiti con questa ipotesi si riesce a dimezzare il costo dei conflitti di controllo. Se in media è elevata la probabilità che il salto non venga eseguito con questa ipotesi riesco a ottimizzare il costo dei conflitti di controllo. Cristina Silvano Politecnico di ilano Predizione statica dei salti Questo schema non è altro che una forma di predizione statica dei salti condizionati (static branch prediction). In questo caso, si prevede che il salto non venga eseguito, svuotando la pipeline se si commette un errore. Schema di predizione statica dei salti: Se la predizione si rivela corretta ottimizzo le prestazioni Se la predizione si rivela errata devo perdere un ciclo di clock per eseguire la flush dell istruzione già prelevata. Esempio: per i salti che si trovano alla fine dei cicli che servono a tornare indietro a inizio ciclo dell iterazione successiva ipotizziamo che i salti all indietro siano sempre eseguiti (branch taken) Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 36

37 Predizione dinamica dei salti Idea base: tilizzare il comportamento passato per predire il futuro. tilizzare una tabella per memorizzare la storia di ciascun salto (contenente il l indirizzo delle istruzioni di salto e il risultato delle precedenti esecuzioni) per vedere se l ultima volta che quella istruzione è stata eseguita il salto è stato effettuato o meno. In caso affermativo, si procede prelevando le nuove istruzioni dallo stesso indirizzo della volta precedente. Se la predizione si rivela errata, la logica di controllo deve garantire la flush della pipeline. Cristina Silvano Politecnico di ilano Predizione dei salti In generale, il problema della predizione dei salti si aggrava nei processori con pipeline profonde poiché aumenta il costo delle predizioni errate (i salti sono risolti diversi stadi dopo lo stadio ) Obiettivo: predire prima possibile il risultato di un salto. Le prestazioni di una tecnica di predizione dei salti dipendono da: ccuratezza misurata in termini di percentuale di predizioni errate. Costo di una predizione errata misurata in termini di tempo perso per eseguire istruzioni inutili. Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 37

38 Predizione dinamica dei salti Branch History Table (o Branch Prediction Buffer): Tabella contenente 1 bit per dire se il salto è stato eseguito o no la volta precedente. Tabella indicizzata dalla porzione bassa dell indirizzo dell istruzione di salto. Predizione: suggerimento che potrebbe provenire da un altra istruzione di salto. Se la predizione si rivela scorretta, il bit di predizione è invertito e memorizzato e viene eseguita la sequenza corretta. Cristina Silvano Politecnico di ilano ccuratezza della Branch History Table vviene una predizione errata quando: La predizione risulta errata per quel salto Oppure perché lo stesso indice può essere referenziato da due diversi salti, e la storia precedente si riferiva all altro salto. Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 38

39 Branch History Table su 1 bit Problema dello schema di predizione su singolo bit (1 bit BHT): In un ciclo, tale schema causa due predizioni errate: ll ultima iterazione occorre uscire dal ciclo, mentre la BHT predice di rimanere nel ciclo. Rientrando nel ciclo, alla prima iterazione del ciclo, raggiungiamo la fine ciclo e dobbiamo rimanere nel ciclo, mentre il bit di predizione dice di uscire dal ciclo perché era stato invertito nella precedente esecuzione dell ultima iterazione del ciclo. Cristina Silvano Politecnico di ilano Branch History Table su 2 bit La predizione deve risultare sbagliata due volte prima che sia cambiata. Per ogni indice della tabella, i 2 bit codificano lo stato di una macchina a stati basata su 4 stati. Nell esempio precedente: quando si arriva all ultima iterazione di un ciclo, non dobbiamo cambiare la predizione. Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 39

40 FS per Branch History Table su 2 bit Cristina Silvano Politecnico di ilano Salti Correlati Idea base: I salti eseguiti recentemente sono correlati, cioè il comportamento dei salti recentemente eseguiti influenza la predizione del salto corrente. Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 40

41 Esempio di salti correlati If(a==2) bb1; L1: If(b==2) bb2; L2: If(a!=b) bb3; subi R3,R1,2 bnez R3,L1 add r1,r0,r0; bb1 L1: subi r3,r1,2 bnez r3,l2 add r2,r0,r0; bb2 L2: sub r3,r1,r2 beqz r3,l3...; bb3 L3: Branch L2 correlato con i salti precedenti. Se entrambi sono not taken, allora L2 é taken (a!=b) Cristina Silvano Politecnico di ilano Idea base: Predittori Correlati (o 2-level 2 Predictors) emorizzare se gli m branch più recentemente eseguiti sono stati taken o not taken. Il salto è predetto sulla base del salto precedentemente eseguito selezionando l appropriata BHT a 1 bit. Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 41

42 Esempio di semplice predittore correlato Branch Prediction Table if branch taken Branch Prediction Table if last branch not taken Branch to be predicted Last Branch Result Effective Branch Result Cristina Silvano Politecnico di ilano Branch Target Buffer Necessario predire l indirizzo di destinazione del salto (Branch Target ddress) entro la fine della fase. Il BTB rappresenta una cache che memorizza l indirizzo predetto per l istruzione successiva al salto. ccesso al BTB nello stadio usando l indirizzo dell istruzione prelevata per indicizzare la cache. Entry del BTB: Exact ddress of a Branch Predicted PC Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 42

43 Struttura di un Branch Target Buffer Pc of fetched instruction ssociative lookup Predicted PC se lowest bits Of the PC Need also some validity bits = No, instruction is not predicted To be a branch, proceed normally Yes, instruction is a a branch, PC should be used as next PC Cristina Silvano Politecnico di ilano Delayed Branch: : Tecnica dei salti ritardati Il compilatore IPS pone sempre un istruzione non dipendente dal salto subito dopo l istruzione di salto ritardato. Esempio: Presente una istruzione add precedente rispetto al salto che non ha effetti sul salto Soluzione: add posta nella posizione chiamata Delayed Branch Slot CK8 CK9 0 1 beq $1, $2, L1 add $4, $5, $6 DELYED BRNCH SLOT lw $3, 300($0) Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 43

44 Delayed Branch In genere i compilatori sono in grado i riempire circa il 50% dei Delayed Branch Slot con istruzioni utili, le rimanenti vengono riempite con NOP. Se la pipeline fosse più lunga, ci sarebbero più slot da riempire per ogni salto, più difficile il riempimento con istruzioni utili. Cristina Silvano Politecnico di ilano Calcolo delle prestazioni nella pipeline CI = Conto Istruzioni Num. Cicli di Clock = CI + Num. Cicli di Stallo + 4 CPI = Clock per Istruzioni = Num. Cicli di Clock / CI = (CI + Num. Cicli di Stallo + 4) / CI IPS = f clock / (CPI * 10 6 ) Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 44

45 Esempio CI = Conto Istruzioni = 5 Num. Cicli di clock = CI + Num. Cicli di Stallo + 4 = = 12 CPI = Clock per Istruzioni = Num. Cicli di Clock / CI = 12 / 5 = 2.4 IPS = f clock / (CPI * 10 6 ) = 500 Hz / 2.4 * 10 6 = CK8 CK sub $2, $1, $3 Tempo (cicli di clock) and $12, $2, $5 bolla bolla bolla or $13, $6, $2 add $14, $2, $2 sw $15,100($2) Contenuto di $ Cristina Silvano Politecnico di ilano Calcolo delle prestazioni asintotiche Esempio: Si considerino n iterazioni di un ciclo composto da m istruzioni che richiedono k stalli CI S = Conto Istruzioni S = m * n Num. Cicli di Clock = CI S + (Num. Cicli di Stallo) S + 4 CPI S = lim n -> ( CI S + Num. Cicli di Stallo S +4) /CI S = lim n -> ( m *n + k * n + 4 ) / m * n = (m + k) / m IPS S = f clock / (CPI S * 10 6 ) Cristina Silvano Politecnico di ilano Prof. Cristina Silvano Politecnico di ilano Pag. 45

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

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

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

Architettura del processore MIPS

Architettura del processore MIPS Architettura del processore IPS Prof. Cristina Silvano Dipartimento di Elettronica e Informazione Politecnico di ilano email: : silvano@elet elet.polimi.itit Sommario Instruction Set semplificato Esecuzione

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

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

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

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

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

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

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

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

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

Pipeline Problemi 1. Pipeline Problemi 2

Pipeline Problemi 1. Pipeline Problemi 2 Problemi 1 Vari fenomeni pregiudicano il raggiungimento del massimo di parallelismo teorico (stallo) Sbilanciamento delle fasi Durata diversa per fase e per istruzione Problemi strutturali La sovrapposizione

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

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

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

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

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

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

Calcolatori Elettronici T Ingegneria Informatica. ISA DLX: implementazione pipelined

Calcolatori Elettronici T Ingegneria Informatica. ISA DLX: implementazione pipelined Calcolatori Elettronici T Ingegneria Informatica ISA DL: implementazione pipelined Principio del Pipelining Il pipelining è oggi la principale tecnica di base impiegata per rendere veloce una CP. L idea

Dettagli

CPU pipeline 3 criticità di dati e di controllo

CPU pipeline 3 criticità di dati e di controllo Architettura degli Elaboratori e delle Reti Lezione 24 CPU pipeline 3 criticità di dati e di controllo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi

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

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

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

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

ESERCIZIO 1. Sia dato il seguente ciclo di un programma in linguaggio ad alto livello:

ESERCIZIO 1. Sia dato il seguente ciclo di un programma in linguaggio ad alto livello: ESERIZIO 1 Sia dato il seguente ciclo di un programma in linguaggio ad alto livello: do { BASE[i] = BASEA[i] + BASEB[i] + IN1 + IN2; i++; } while (i!= N) Il programma sia stato compilato nel seguente codice

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

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

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

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

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

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

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

Hazard sul controllo. Sommario

Hazard sul controllo. Sommario Hazard sul controllo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento al Patterson: 4.7, 4.8 1/30 Sommario Riorganizzazione

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

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

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

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

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

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

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

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

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

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

Calcolatori Elettronici B a.a. 2006/2007

Calcolatori Elettronici B a.a. 2006/2007 Calcolatori Elettronici B a.a. 2006/2007 Pipeline, criticità e prestazioni: Esercizi Massimiliano Giacomin 1 Influenza delle criticità sulle prestazioni Tipi di criticità: criticità strutturale: ad esempio,

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

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

Calcolatori Elettronici T. ISA DLX: Implementazione Tramite Struttura Pipelined

Calcolatori Elettronici T. ISA DLX: Implementazione Tramite Struttura Pipelined Calcolatori Elettronici T ISA L: Implementazione Tramite Struttura Pipelined 1 Principio del Pipelining Il pipelining è oggi la principale tecnica di base impiegata per rendere veloce una CP. L idea alla

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

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

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

Il pipelining: criticità sul controllo ed eccezioni

Il pipelining: criticità sul controllo ed eccezioni Il pipelining: criticità sul controllo ed eccezioni Architetture Avanzate dei Calcolatori Valeria Cardellini Criticità sul controllo Criticità sul controllo: tentativo di prendere una decisione sulla prossima

Dettagli

Linguaggio macchina e register file

Linguaggio macchina e register file Linguaggio macchina e register file Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4,

Dettagli

Hazard sul controllo. Sommario

Hazard sul controllo. Sommario Hazard sul controllo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento al Patterson: 4.7, 4.8 1/22 Sommario Riorganizzazione

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

Architettura degli Elaboratori Gestione dei control-hazard nella pipeline. Prof. Andrea Sterbini

Architettura degli Elaboratori Gestione dei control-hazard nella pipeline. Prof. Andrea Sterbini Architettura degli Elaboratori Gestione dei control-hazard nella pipeline Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti - Spostare Jump nella fase IF - Come gestire i control hazard - Eliminare

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 set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

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

La CPU a singolo ciclo

La CPU a singolo ciclo La CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 5 (fino a 5.4) /46 Sommario

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

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

Una CPU multi-ciclo. Sommario

Una CPU multi-ciclo. Sommario Una CPU multi-ciclo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/3 http:\\homes.dsi.unimi.it\ borghese Sommario I problemi della

Dettagli

CALCOLATORI ELETTRONICI 30 agosto 2010

CALCOLATORI ELETTRONICI 30 agosto 2010 CALCOLATORI ELETTRONICI 30 agosto 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

Sommario. Gestione delle criticità sui dati nella pipeline. CPU con pipeline. Criticità nei dati. Hazard nei dati: soluzione tramite compilatore

Sommario. Gestione delle criticità sui dati nella pipeline. CPU con pipeline. Criticità nei dati. Hazard nei dati: soluzione tramite compilatore Gestione delle criticità sui dati nella pipeline Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Sommario di tipo R. di lw. Università degli Studi di Milano 1/33

Dettagli

Architettura del calcolatore (Seconda parte)

Architettura del calcolatore (Seconda parte) Architettura del calcolatore (Seconda parte) Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin LINGUAGGIO E ORGANIZZAZIONE DEL CALCOLATORE Linguaggio assembly

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

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

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

Architettura della CPU multi-ciclo

Architettura della CPU multi-ciclo Architettura della CPU multi-ciclo Architettura degli Elaboratori e delle Reti, Turno I Alberto Borghese Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: borghese@dsi.unimi.it

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

La CPU a singolo ciclo

La CPU a singolo ciclo La CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 5 (fino a 5.4) 1/44 Sommario

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

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

ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET:

ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET: Università degli Studi di Milano Corso Architettura degli elaboratori e delle reti Prof. Cristina Silvano A.A. 2004/2005 Esame scritto del 15 luglio 2005 Cognome: Matricola: Nome: Istruzioni Scrivere solo

Dettagli

Si ricorda il primo schema elementare della pipeline. che verrà indicato in modo sommario come

Si ricorda il primo schema elementare della pipeline. che verrà indicato in modo sommario come Principi di architetture dei calcolatori: il pipelining. Esercizi. Mariagiovanna Sami CPU Pipelined Si ricorda il primo schema elementare della pipeline buffer interstadio (registri di pipeline) stadio

Dettagli

Esercitazione del 04/05/2006 Soluzioni

Esercitazione del 04/05/2006 Soluzioni Esercitazione del 04/05/2006 Soluzioni 1. CPU singolo ciclo vs CPU multi ciclo. Una CPU a ciclo singolo richiede un ciclo di clock di durata sufficiente a permettere la stabilizzazione del circuito nel

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

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

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

Architettura degli elaboratori - II Le architetture multi-ciclo

Architettura degli elaboratori - II Le architetture multi-ciclo Architettura degli elaboratori - II Le architetture multi-ciclo Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano 1/41 Sommario Principi ispiratori

Dettagli

CALCOLATORI ELETTRONICI 29 giugno 2015

CALCOLATORI ELETTRONICI 29 giugno 2015 CALCOLATORI ELETTRONICI 29 giugno 2015 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli a stampa 1. Relativamente al confronto tra le implementazioni del processore

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come

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

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

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

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

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded Microelettronica Corso introduttivo di progettazione di sistemi embedded Organizzazione hardware del processore ARM prof. Stefano Salvatori A.A. 2017/2018 Eccetto dove diversamente specificato, i contenuti

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

CALCOLATORI ELETTRONICI 9 gennaio 2013

CALCOLATORI ELETTRONICI 9 gennaio 2013 CALCOLATORI ELETTRONICI 9 gennaio 2013 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

Stall on load. Sommario

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

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici CPU a singolo ciclo assimiliano Giacomin Schema del processore (e memoria) Unità di controllo PC emoria indirizzo IR Condizioni SEGNALI DI CONTROLLO dato letto UNITA DI ELABORAZIONE

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