Lezione 20 CPU con pipeline

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Lezione 20 CPU con pipeline"

Transcript

1 Lezione 20 CPU con pipeline All figures from Computer Organization and Design: The Hardware/Software Approach, Second Edition, by David Patterson and John Hennessy, are copyrighted material. (COPYRIGHT 1998 ORGAN KAUFANN PUBLISHERS, INC. ALL RIGHTS RESERVED.) Figures may be reproduced only for classroom or personal educational use in conjunction with the book and only when the above copyright line is included. They may not be otherwise reproduced, distributed, or incorporated into other works without the prior written consent of the publisher. Roberto Giorgi, Universita di Siena, C107L20, Slide 1 Other material is adapted from CS152 Copyright (C) 2000 UCB Il Pipelining e Naturale! Esempio della Lavanderia Ann, Brian, Cathy, Dave devono: A B C D Lavare Asciugare Stirare ettere a posto Supponiamo che ognuna di queste operazioni richieda 30 minuti e che ci sia una sola lavatrice, una asciugatrice, un ferro da stiro, un banco Roberto Giorgi, Universita di Siena, C107L20, Slide 2

2 Lavanderia Sequenziale 6 P A T a s k O r d e r Tempo A B C D Lavanderia sequenziale: 8 ore per 4 carichi Se utilizzassero il pipelining, quanto impiegherebbero? Roberto Giorgi, Universita di Siena, C107L20, Slide 3 T a s k O r d e r Lavanderia a Pipeline: Start work ASAP 12 2 A 6 P A B C D Tempo Lavanderia a pipeline: 3.5 ore per 4 carichi! Roberto Giorgi, Universita di Siena, C107L20, Slide 4

3 Le lezioni di pipelining T a s k O r d e r A B C D 6 P Roberto Giorgi, Universita di Siena, C107L20, Slide 5 Tempo Il pipelining non riduce il tempo di esecuzione di ogni singola istruzione, bensi aumenta il loro throughput Tutti gli stadi lavorano in contemporanea utilizzando risorse separate Incremento potenziale di velocita = numero di stadi della pipeline La velocita della pipeline e limitata dallo stadio piu lento Gli stadi della pipeline non bilanciati riducono l incremento di velocita Il tempo per riempire la pipeline ed il tempo per svuotarla riducono l incremento di velocita Stallo per dipendenze Idea di base: suddivisione in stadi della CPU F: Instruction fetch D: Instruction decode/ register file read ux 0 X: Execute/ address calculation : ory access W : Write back 1 Add 4 Shift left 2 Add Add result PC Address Instruction memory Instruction Read register 1 Read data 1 Read register 2 Registers Read data 2 Write register Write data 0 u x 1 Zero result Address Data memory Write data Read data ux Sign extend 32 Cosa dobbiamo aggiungere per suddividere il datapath in stadi? Roberto Giorgi, Universita di Siena, C107L20, Slide 6

4 I cinque passi per eseguire un istruzione F = Prelievo dell istruzione (Instruction Fetch) D = Decodifica dell istruzione (Instruction Decode) e lettura dei registri (Register Fetch) X = Esecuzione, calcolo dell indirizzo di memoria, completamento del salto (Branch Completion) = Accesso alla memoria o completamento di istruzione di tipo R W = Scrittura del risultato in un registro (Write-Back) LE ISTRUZIONI RICHIEDONO 3-5 CICLI! Roberto Giorgi, Universita di Siena, C107L20, Slide 7 Passo 1: Instruction Fetch Viene letta dalla memoria l istruzione puntata dal Program Counter (PC) L istruzione viene posta nell Instruction Register (IR) PC viene incrementato di 4 e riscritto nuovamente in PC Tali operazioni si possono descrivere utilizzando un linguaggio RTL (Register-Transfer Language) IR = ory[pc]; PC = PC + 4; Da IR si determinano i valori dei segnali di controllo Qual e il vantaggio di aggiornare il PC in questo passo? Roberto Giorgi, Universita di Siena, C107L20, Slide 8

5 Passo 2: Instruction Decode e Register Fetch I contenuti dei registri indicati nei campi rs e rt vengono letti e trasferiti nei registri di appoggio A e B Non e detto che siano successivamente utilizzati Calcolo dell indirizzo target del salto, nel caso in cui l istruzione sia un salto RTL: A = Reg[IR[25-21]]; B = Reg[IR[20-16]]; Out = PC + (sign-extend(ir[15-0]) << 2); Le linee di controllo non assumono alcun valore in dipendenza dal tipo di istruzione (per il momento, dato che la decodifica e ancora in corso) Roberto Giorgi, Universita di Siena, C107L20, Slide 9 Sign-extend effettua l estensione da 16 a 32 bit con segno Passo 3 (dipendente dall istruzione) La esegue una delle seguenti tre funzioni, in base al tipo di istruzione: Accesso alla memoria: Out = A + sign-extend(ir[15-0]); Istruzione di tipo R relativa ad una operazione op: Out = A op B; Salto: if (A = = B) PC = Out; Roberto Giorgi, Universita di Siena, C107L20, Slide 10

6 Passo 4 (R-type o accesso alla memoria) Le istruzioni load e store accedono alla memoria DR = ory[out]; (load) ory[out] = B; (store) Le istruzioni di tipo R possono scrivere il risultato Reg[IR[15-11]] = Out; La scrittura avviene alla fine del ciclo, sul fronte in discesa Roberto Giorgi, Universita di Siena, C107L20, Slide 11 Passo 5: Write-Back Reg[IR[20-16]]= DR; Cosa succede alle altre istruzioni? Roberto Giorgi, Universita di Siena, C107L20, Slide 12

7 Riassumendo Nome del passo Prelievo dell'istruzione Decodifica dell'istruzione /lettura dei registri Operazioni per le istruzioni di tipo R Operazioni per le istruzioni che Operazioni accedono alla memoria per branch IR = ory[pc] PC = PC + 4 A = Reg [IR[25-21]] B = Reg [IR[20-16]] Out = PC + (sign-extend (IR[15-0]) << 2) Operazioni per jump Esecuzione, calcolo del Out = A op B Out = A + sign-extend(ir[15-0]) if (A ==B) then PC = PC [31-28] II inidirizzo, completamento PC = Out (IR[25-0]<<2) di branch/jump Accesso alla memoria o Reg [IR[15-11]] = Load: DR = ory[out] completamento Out oppure dell'istruzione di tipo R Store: ory [Out] = B Completamento della lettura Load: Reg[IR[20-16]] = DR della memoria Roberto Giorgi, Universita di Siena, C107L20, Slide 13 Ciclo ultiplo: i cinque stadi della load Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Load F D X W F: Instruction Fetch Prelievo dell istruzione dalla memoria istruzioni D: Registers Fetch, Instruction Decode Lettura dei registri e decodifica delle istruzioni X: Calcolo dell indirizzo di memoria : Lettura dei dati dalla memoria dati W: Scrittura dei dati nel register file Roberto Giorgi, Universita di Siena, C107L20, Slide 14

8 Ciclo ultiplo: i quattro stadi della store Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Store F D X W F: Instruction Fetch Prelievo dell istruzione dalla memoria istruzioni D: Registers Fetch, Instruction Decode X: Calcolo dell indirizzo di memoria : Scrittura dei dati in memoria dati Roberto Giorgi, Universita di Siena, C107L20, Slide 15 Ciclo ultiplo: i quattro stadi dell istruzione di tipo R Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 R-type F D X W F: Instruction Fetch Prelievo dell istruzione dalla memoria istruzioni D: Registers Fetch, Instruction Decode X: opera su due operandi in registri Aggiornamento del PC W: Scrittura del risultato dall nel register file Roberto Giorgi, Universita di Siena, C107L20, Slide 16

9 Ciclo ultiplo: i tre stadi della Beq Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Beq F D X W F: Instruction Fetch D: X: Prelievo dell istruzione dalla memoria istruzioni Registers Fetch, Instruction Decode confronto dei due operandi in registri, selezione dell indirizzo di salto corretto memorizzazione dell indirizzo in PC Roberto Giorgi, Universita di Siena, C107L20, Slide 17 odelli a singolo ciclo e multiplo ciclo vs. pipeline Ciclo 1 Ciclo 2 Clk Implementazione a singolo ciclo: Load Store Waste Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9 Ciclo 10 Clk Implementazione a multiplo ciclo: Load F D X W Store F D X R-type F Implementazione a pipeline: Load F D X W Store F D X W R-type F D X W Roberto Giorgi, Universita di Siena, C107L20, Slide 18

10 Esercizio: verificare la bonta del pipelining Supponiamo che si eseguano 100 instruzioni acchina a singolo ciclo 45 ns/ciclo x 1 CPI x 100 inst = 4500 ns acchina a multiplo ciclo 10 ns/ciclo x 4.6 CPI (dovuto al mix di istruzioni) x 100 inst = 4600 ns acchina con pipeline ideale 10 ns/ciclo x (1 CPI x 100 inst + 4 cicli per svuotamento) = 1040 ns Roberto Giorgi, Universita di Siena, C107L20, Slide 19 Il Pipelining igliora le prestazioni aumentando il throughput delle istruzioni Program execution order Time (in instructions) lw $1, 100($0) Instruction fetch Reg Data access Reg lw $2, 200($0) 8ns Instruction fetch Reg Data access Reg lw $3, 300($0) Program execution Time order (in instructions) lw $1, 100($0) Instruction fetch 8ns Reg Data access Reg Instruction fetch 8ns... lw $2, 200($0) 2ns Instruction fetch Reg Data access Reg lw $3, 300($0) 2ns Instruction fetch Reg Data access Reg L aumento di velocita ideale e pari al numero di stadi della pipeline. Riusciamo ad ottenerlo? Roberto Giorgi, Universita di Siena, C107L20, Slide 20 2ns 2ns 2ns 2ns 2ns

11 Rappresentazione grafica delle pipeline Program execution order (in instructions) lw $10, 20($1) Time (in clock cycles) CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 I Reg D Reg sub $11, $2, $3 I Reg D Reg L uso della rappresentazione grafica aiuta a capire il datapath: quanti cicli utilizza l esecuzione di questo codice? cosa fa l durante il ciclo 4? Roberto Giorgi, Universita di Siena, C107L20, Slide 21 Rappresentazione convenzionale dell esecuzione a pipeline Tempo F D X W F D X W F D X W F D X W F D X W Flusso di programma F D X W Roberto Giorgi, Universita di Siena, C107L20, Slide 22

12 Perche la pipeline? Utilizzo ottimale delle risorse! Tempo (cicli di clock) I n s t r. O r d e r Inst 0 Inst 1 Inst 2 Inst 3 Inst 4 Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Roberto Giorgi, Universita di Siena, C107L20, Slide 23 Datapath semplificato IR <- [PC]; PC < PC+4; A <- R[rs]; B< R[rt] S < A + B; S < A or ZX; S < A + SX; S < A + SX; If Cond PC < PC+SX; < S < S < [S] [S] <- B R[rd] < S; R[rt] < S; R[rd] < ; Equal Next PC PC Inst. IR Reg File A B Exec S D Access Data Reg. File Roberto Giorgi, Universita di Siena, C107L20, Slide 24

13 Datapath + Data Stationary Control Inst. IR fun rt rs op Decode rs rt v rw wb me ex im v rw wb me Ctrl v rw wb Reg File A B Exec S Reg. File Access Data Next PC PC WB Ctrl D Roberto Giorgi, Universita di Siena, C107L20, Slide 25 Proviamolo! 10 lw r1, r2(35) 14 addi r2, r2, 3 20 sub r3, r4, r5 24 beq r6, r7, ori r8, r9, add r10, r11, r and r13, r14, 15 Roberto Giorgi, Universita di Siena, C107L20, Slide 26

14 Start: Fetch 10 n n n n Inst. IR Decode rs rt im Ctrl WB Ctrl Reg File A B Exec S Reg. File D Access Data 10 lw r1, r2(35) 14 addi r2, r2, 3 Next PC sub r3, r4, r5 24 beq r6, r7, ori r8, r9, 17 PC 34 add r10, r11, r12 Roberto Giorgi, Universita di Siena, C107L20, Slide and r13, r14, 15 Fetch 14, Decode 10 Inst. lw r1, r2(35) IR Decode 2 rt n n n im Ctrl WB Ctrl Reg File A B Exec S Reg. File D Access Data 10 lw r1, r2(35) 14 addi r2, r2, 3 Next PC sub r3, r4, r5 24 beq r6, r7, ori r8, r9, 17 PC 34 add r10, r11, r12 Roberto Giorgi, Universita di Siena, C107L20, Slide and r13, r14, 15

15 Fetch 20, Decode 14, Exec 10 Inst. addi r2, r2, 3 IR Decode 2 rt lw r1 35 n Ctrl n WB Ctrl Reg File r2 B Exec S Reg. File D Access Data 10 lw r1, r2(35) 14 addi r2, r2, 3 Next PC sub r3, r4, r5 24 beq r6, r7, ori r8, r9, 17 PC 34 add r10, r11, r12 Roberto Giorgi, Universita di Siena, C107L20, Slide and r13, r14, 15 Fetch 24, Decode 20, Exec 14, 10 Inst. sub r3, r4, r5 IR Decode 4 5 addi r2 3 lw r1 Ctrl n WB Ctrl Reg File r2 B Exec r2+35 Reg. File D Access Data 10 lw r1, r2(35) 14 addi r2, r2, 3 Next PC sub r3, r4, r5 24 beq r6, r7, ori r8, r9, 17 PC 34 add r10, r11, r12 Roberto Giorgi, Universita di Siena, C107L20, Slide and r13, r14, 15

16 Fetch 30, Dcd 24, Ex 20, 14, WB 10 Inst. beq r6, r7 100 IR Decode 6 7 sub r3 addi r2 Ctrl lw r1 WB Ctrl Reg File r4 r5 Exec r2+3 [r2+35] Reg. File D Access Data 10 lw r1, r2(35) 14 addi r2, r2, 3 Next PC sub r3, r4, r5 24 beq r6, r7, ori r8, r9, 17 PC 34 add r10, r11, r12 Roberto Giorgi, Universita di Siena, C107L20, Slide and r13, r14, 15 Fetch 34, Dcd 30, Ex 24, 20, WB 14 Inst. ori r8, r9 17 IR Decode 9 xx Reg File 100 beq r6 r7 Exec sub r3 r4-r5 Ctrl addi r2 r2+3 WB Ctrl Reg. File r1=[r2+35] D Access Data 10 lw r1, r2(35) 14 addi r2, r2, 3 Next PC sub r3, r4, r5 24 beq r6, r7, ori r8, r9, 17 PC 34 add r10, r11, r12 Roberto Giorgi, Universita di Siena, C107L20, Slide and r13, r14, 15

17 Fetch 100, Dcd 34, Ex 30, 24, WB 20 Inst. add r10, r11, r12 Decode ori r8 beq Ctrl sub r3 WB Ctrl IR Reg File r9 x Exec xxx r4-r5 Reg. File r1=[r2+35] r2 = r2+3 D Access Data 10 lw r1, r2(35) 14 addi r2, r2, 3 Next PC sub r3, r4, r5 24 beq r6, r7, ori r8, r9, 17 PC 34 add r10, r11, r12 Roberto Giorgi, Universita di Siena, C107L20, Slide and r13, r14, 15 Fetch 104, Dcd 100, Ex 34, 30, WB 24 Inst. and r13, r14, r15 Decode n add r10 xx ori r8 Ctrl beq WB Ctrl IR Reg File r11 r12 Exec r9 17 xxx Reg. File r1=[r2+35] r2 = r2+3 r3 = r4-r5 D Access Data 10 lw r1, r2(35) 14 addi r2, r2, 3 Next PC sub r3, r4, r5 24 beq r6, r7, ori r8, r9, 17 PC 34 add r10, r11, r12 Roberto Giorgi, Universita di Siena, C107L20, Slide and r13, r14, 15

18 Fetch 108, Dcd 104, Ex 100, 34, WB 30 n Inst. Decode and r13 add r10 Ctrl ori r8 WB Ctrl xx IR Reg File r14 r15 Exec r11+r12 r9 17 Reg. File r1=[r2+35] r2 = r2+3 r3 = r4-r5 D Access Data 10 lw r1, r2(35) 14 addi r2, r2, 3 Next PC sub r3, r4, r5 24 beq r6, r7, ori r8, r9, 17 PC 34 add r10, r11, r12 Roberto Giorgi, Universita di Siena, C107L20, Slide and r13, r14, 15 Fetch 114, Dcd 110, Ex 104, 100, WB 34 Inst. Decode and r13 Ctrl n add r10 WB Ctrl NO WB NO Ovflow IR Reg File Exec r14 & R15 D Access r11+r12 Data Reg. File r1=[r2+35] r2 = r2+3 r3 = r4-r5 r8 = r lw r1, r2(35) 14 addi r2, r2, 3 Next PC sub r3, r4, r5 24 beq r6, r7, ori r8, r9, 17 PC 34 add r10, r11, r12 Roberto Giorgi, Universita di Siena, C107L20, Slide and r13, r14, 15

19 Il pipelining puo provocare problemi? Si : Criticita nelle pipeline criticita strutturali: tentativo di utilizzare le stesse risorse due volte allo stesso tempo - Esempio: utilizzo di un unica macchina lavatrice/asciugatrice anziche due macchine separate, oppure risorsa impegnata in qualche altro compito criticita sui dati: tentativo di utilizzare un dato prima che sia prodotto - Esempio: cerco di effettuare la stiratura prima di avere effettuato l asciugatura criticita sul controllo: tentativo di saltare pur avendo caricato istruzioni del ramo non-preso - Esempio: cerco di fare l asciugatura a 100 gradi invece che a 30 gradi perche non ho verificato che tipo di capo sto asciugando Le criticita si possono sempre risolvere aspettando, il controllo della pipeline deve: 1) rilevare la criticita 2) gestirla (o rimandare l operazione) per risolverla Roberto Giorgi, Universita di Siena, C107L20, Slide 37 Profondita delle pipeline La pipeline non puo essere troppo profonda Criticita sono frequenti molti stalli nelle pipeline profonde Too Deep! Prestazioni Relativi Superpipelined Roberto Giorgi, Universita di Siena, C107L20, Slide Profondita della pipeline

20 CISC e pipeline Anche i processori CISC ad alta velocita sono a pipeline Sovrapposizione degli stadi F, X Ostacoli lunghezza variabile delle istruzioni tempo di esecuzione variabile (numero dei cicli di microcodice) - sbilanciamento della pipeline - backup degli stadi di pipe - difficolta del rilevamento delle criticita modi di indirizzamento complessi auto-increment aggiorna address register numerosi accessi alla memoria richiesti Un flusso senza stalli nella pipeline e molto difficile! Roberto Giorgi, Universita di Siena, C107L20, Slide 39 Ricapitolando Il pipelining e un concetto fondamentale Si cerca di non lasciare inutilizzate risorse distinte, schedulando oppurtunamente le operazioni ad ogni passo Per un corretto funzionamento occorre limitare la lunghezza dello stadio piu lungo rilevare e risolvere criticita Roberto Giorgi, Universita di Siena, C107L20, Slide 40

21 Criticita di tipo strutturale Supponiamo di avere istruzioni di tipo R a 4 cicli Cio puo comportare la seguente situazione: Clock Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9 R-type F D X W Abbiamo un problema! R-type F D X W Load F D X W R-type F D X W Due istruzioni stanno tentando di scrivere nel register file contemporaneamente! La porta di scrittura e unica Abbiamo una criticita strutturale Roberto Giorgi, Universita di Siena, C107L20, Slide 41 R-type F D X W Osservazione importante Ogni unita di elaborazione puo essere utilizzata una volta sola per istruzione Ogni unita di elaborazione deve essere utilizzata nello stesso stadio per tutte le instruzioni: La Load utilizza la porta di scrittura del Register File nel suo quinto stadio Load F D X W L istruzione R-type utilizza la porta di scrittura del Register File nel suo quarto stadio R-type F D X W Esistono due modi per risolvere questa criticita della pipeline. Roberto Giorgi, Universita di Siena, C107L20, Slide 42

22 Soluzione 1: Inserire una bolla nella pipeline Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9 Clock F D X W Load F D X W R-type F D X W R-type F D Pipeline X W R-type F Bubble D X W F D X Inserire una bolla nella pipeline per impedire due scritture in stesso ciclo La logica di controllo puo essere complessa. Nessuna instruzione comincia nel ciclo 6! Roberto Giorgi, Universita di Siena, C107L20, Slide 43 Soluzione 2: Rimandare la scrittura del registro per un ciclo (istruzioni di tipo R) Ora le istruzioni di tipo R possono utilizzare la porta di scrittura del Register File nello stadio 5 Lo stadio non fa niente R-type F D X W Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9 Clock R-type F D X W R-type F D X W Load F D X W R-type F D X W R-type F D X W Roberto Giorgi, Universita di Siena, C107L20, Slide 44

23 Criticita sui dati criticita sui dati: tentativo di utilizzare un unita prima che sia pronta un istruzione dipende dal risultato di un istruzione precedente, anch essa in pipeline add r1,r2,r3 sub r4, r1,r3 Data Hazard on r1 and r6, r1,r7 or r8, r1,r9 xor r10, r1,r11 Roberto Giorgi, Universita di Siena, C107L20, Slide 45 Classificazione di criticita sui dati RAW Un istruzione successiva cerca di LEGGERE un registro prima che l istruzione precedente lo abbia scritto WAR WAW un istruzione successiva cerca di SCRIVERE un registro prima che l istruzione precedente lo abbia letto Un istruzione cerca di SCRIVERE un registro prima che l istruzione precedente lo abbia scritto (quando questo avviene, il valore non sara piu associato all istruzione piu recente) Roberto Giorgi, Universita di Siena, C107L20, Slide 46

24 Criticita sui dati - classificazione Read after Write (RAW) L istruzione 1 deve scrivere prima che l instruzione 2 legga Write after Read (WAR) L istruzione 1 legge L istruzione 2 scrive (riscrive) L istruzione 2 non deve scrivere prima che la 1 legga Write after Write (WAW) Entrambe le istruzioni 1 e 2 scrivono L istruzione 2 deve scrivere dopo la 1 Gli algorithmi di riordinamento del codice devono considerare tutti e tre i casi! Roberto Giorgi, Universita di Siena, C107L20, Slide 47 Riassumendo Criticita sui dati RAW i piu comuni WAW WAR Il compilatore cerca le dipendenze funzionali poi riordina il codice Hardware Rete di controllo delle criticita - Sorveglia le dipendenze Rete di propagazione del valore - propaga i risultati dallo stadio X o a stadi precedenti Roberto Giorgi, Universita di Siena, C107L20, Slide 48

25 I n s t r. O r d e r Data Hazard su r1: Le dipendenze indietro nel tempo sono criticita di tipo RAW Tempo (cicli di clock) F D X W add r1,r2,r3 sub r4,r1,r3 and r6,r1,r7 or r8,r1,r9 xor r10,r1,r11 Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Roberto Giorgi, Universita di Siena, C107L20, Slide 49 Soluzione per la criticita sui dati Propagare il risultato da uno stadio all altro ( forwarding ) I n s t r. O r d e r Tempo (cicli di clock) F D X W add r1,r2,r3 sub r4,r1,r3 and r6,r1,r7 or r8,r1,r9 xor r10,r1,r11 or OK se definisco read/write in un modo appropriato Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Roberto Giorgi, Universita di Siena, C107L20, Slide 50

26 Rete per la propagazione e rete di rilevamento criticita Hazard detection unit D/ X.Read D/ X F/ DWrite F/ D Control 0 u x WB EX X/ WB /W WB PCWrite PC Instruction memory Instruction Registers u x u x Data memory u x F/ D.RegisterRs F/ D.RegisterRt F/ D.RegisterRt F/ D.RegisterRd D/ X.RegisterRt Rt Rd Rs Rt u x Forwarding unit X/. RegisterRd /W.RegisterRd Roberto Giorgi, Universita di Siena, C107L20, Slide 51 Interlock: Cosa si fa con criticita su load Le dipendenze indietro nel tempo sono criticita Time (clock cycles) F D X W lw r1,0(r2) Im Reg Dm Reg sub r4,r1,r3 Im Reg Dm Reg Non si puo risolvere con propagazione Le istruzioni che dipendono da una load devono essere ritardate/mandate in stallo ad hardware Questo si chiama interlock Roberto Giorgi, Universita di Siena, C107L20, Slide 52

27 Criticita sul controllo: Branching (1/6) Supponiamo che la logica di decisione dei salti sia nello stadio di Allora due istruzioni in piu dopo il salto saranno sempre prelevate Funzionalita desiderata del salto se il salto non viene effettuato, non perdere tempo e continuare con la normale esecuzione se il salto viene effettuato, non eseguire istruzioni dopo il salto, ma saltare sulla etichetta desiderata Roberto Giorgi, Universita di Siena, C107L20, Slide 53 Criticita sul controllo: Branching (2/6) Soluzione iniziale: sospendere l esecuzione fino a quando non si prende la decisione Inserire istruzioni nop : non fanno nulla, solo consumano tempo Svantaggio: ogni salto consuma 3 cicli (anziche 1) (a patto che il comparatore sia stato messo nello stadio di ) Roberto Giorgi, Universita di Siena, C107L20, Slide 54

28 Criticita sul controllo: Branching (3/6) Ottimizzazione #1: Spostare il comparatore (e calcolo branch target) nello stadio 2 Non appena l istruzione viene decodificata (opcode identifica un salto), prendere la decisione e impostare il valore di PC (se necessario) Beneficio: poiche il salto e completo nello stadio 2, solo una istruzione del ramo sbagliato viene prelevata, e solo una nop e richiesta Nota: in questo caso, i salti non fanno nulla negli stadi 3, 4 e 5 Roberto Giorgi, Universita di Siena, C107L20, Slide 55 Criticita sul controllo: Branching (4/6) I n s t r. O r d e r Inserire una singola nop (bolla o bubble ) Add Beq Load Time (clock cycles) I$ Reg D$ Reg I$ Reg D$ Reg bub ble I$ Reg D$ Reg Impatto: 2 cicli di clock per istruzione di salto lento Roberto Giorgi, Universita di Siena, C107L20, Slide 56

29 u x Propagazione e spostamento di decisione del salto La propagazione/bypassing attualmente influisce sullo stadio di esecuzione: Invece di utilizzare il valore letto nei registri nello stadio di Decode, utilizzare il valore risultante dalla o dalla memoria Lo spostamento della decisione di salto dallo stadio di esecuzione allo stadio di decodifica significa che la propagazione/bypassing deve arrivare fino allo stadio di decodifica Cioe, il seguente codice deve comunque funzionare: addiu $s1, $s1, -4 beq $s1, $s2, Exit Roberto Giorgi, Universita di Siena, C107L20, Slide 57 Rete di propagazione con branch anticipato nello stadio D F.Flush Hazard detection unit u x D/ X WB X/ Control 0 u x WB /W F/ D EX WB PC 4 Instruction memory Shift left 2 Registers = u x u x Data memory u x Sign extend Forwarding unit Roberto Giorgi, Universita di Siena, C107L20, Slide 58

30 Criticita sul controllo: Branching (5/6) Ottimizazione #2: Ridefinire i salti Definizione vecchia: se il salto viene effettuato, nessuna istruzione dopo il salto viene eseguita Definizione nuova: sia che si faccia il salto, sia che non si faccia, viene eseguita l istruzione che segue immediatamente il salto (detto branch-delay slot) Roberto Giorgi, Universita di Siena, C107L20, Slide 59 Criticita sul controllo: Branching (6/6) Osservazioni sul Branch-Delay Slot Caso peggiore: si puo sempre inserire una nop nel branch-delay slot Caso migliore: si puo trovare un istruzione prima del salto che puo essere messa nel branch-delay slot senza influenzare il flusso di programma - il riordinamento delle istruzioni e un metodo comunemente utilizzato per velocizzare i programmi - il compilatore deve essere molto furbo per trovare le istruzioni appropriate - tipicamente i compilatori sono in grado di riempire circa il 50% di tali posizioni Roberto Giorgi, Universita di Siena, C107L20, Slide 60

31 Esempio: Nondelayed vs. Delayed Branch Nondelayed Branch or $8, $9,$10 add $1,$2,$3 sub $4, $5,$6 beq $1, $4, Exit xor $10, $1,$11 Delayed Branch add $1,$2,$3 sub $4, $5,$6 beq $1, $4, Exit or $8, $9,$10 xor $10, $1,$11 Exit: Exit: Roberto Giorgi, Universita di Siena, C107L20, Slide 61 Quanto dura l esecuzione? Assumiamo: delayed branch, pipeline di 5 stadi, propagazione/bypassing, interlock sulle criticita di load non risolte Loop: lw $t0, 0($s1) addiu $t0, $t0, $s2 sw $t0, 0($s1) addiu $s1, $s1, -4 bne $s1, $zero, Loop nop Quanti cicli di clock sono necessari per eseguire questo codice per un iterazione di loop? a)<= 5 b) 6 c) 7 d) 8 e) >=9 (dopo 1000 iterazioni, quando la pipeline e piena) Roberto Giorgi, Universita di Siena, C107L20, Slide 62

32 Quanto dura l esecuzione? Assumere delayed branch, la pipeline di 5 stadi, propagazione/bypassing, interlock sulle criticita di load non risolte Diamo un occhiata a questo codice: Loop: 1. lw $t0, 0($s1) addiu $t0, $t0, $s2 3. sw $t0, 0($s1) 4. addiu $s1, $s1, bne $s1, $zero, Loop 6. nop (delayed branch so execute nop) 2. (data hazard so stall) 7. Quanti cicli di clock sono necessari per eseguire questo codice per un iterazione di loop? a)<= 5 b) 6 c) 7 d) 8 e) >=9 Roberto Giorgi, Universita di Siena, C107L20, Slide 63 Riscrivere il ciclo per migliorare le prestazioni Riscrivere questo codice per ridurre al minimo i cicli di clock del loop : Loop: lw $t0, 0($s1) addu $t0, $t0, $s2 sw $t0, 0($s1) addiu $s1, $s1, -4 bne $s1, $zero, Loop nop Quanti cicli di clock sono necessari per eseguire il codice riscritto per un iterazione di loop? a) 4 b) 5 c) 6 d) 7 Roberto Giorgi, Universita di Siena, C107L20, Slide 64

33 Riscrivere il ciclo per migliorare le prestazioni Riscrivere questo codice per ridurre il numero dei cicli di clock al minimo per un iterazione del loop : Loop: 1. lw $t0, 0($s1) (no hazard since extra cycle) 2. addiu $s1, $s1, addu $t0, $t0, $s2 4. bne $s1, $zero, Loop 5. sw $t0, +4($s1) (modified sw to put past addiu) Quanti cicli di clock sono necessari per eseguire il codice riscritto per un iterazione di loop? a) 4 b) 5 c) 6 d) 7 Roberto Giorgi, Universita di Siena, C107L20, Slide 65 Ricapitolando: Le criticita nelle pipeline I-Fet ch DCD OpFetch OpFetch Exec Store Structural Hazard IFetch DCD I-Fet ch DCD OpFetch Jump Control Hazard IFetch DCD IF DCD EX WB IF DCD EX WB Roberto Giorgi, Universita di Siena, C107L20, Slide 66 IF DCD EX WB RAW (read after write) Data Hazard WAW Data Hazard (write after write) IF DCD OF Ex IF DCD OF Ex WAR Data Hazard (write after read)

34 Punti principali del pipelining Le pipeline fanno passare informazioni di controllo al loro interno nello stesso modo in cui fanno passare i dati Propagazione e stalli sono gestiti dal controllo locale Le criticita limitano le prestazioni Strutturali: richiedono piu risorse HW Dati: richiedono propagazione, schedulazione dal compilatore Controllo: valutazione preliminare, delayed branch, predizione Aumentando la lunghezza della pipe aumenta l impatto delle criticita ; pipelining migliora il throughput delle istruzioni, e non la loro latenza Interruzioni, Instruction Set, FP rendono il pipelining piu difficile I compilatori riducono il costo delle criticita sui dati e sul controllo Load delay slots Branch delay slots Branch prediction Roberto Giorgi, Universita di Siena, C107L20, Slide 67 Ricapitolando: Criticita sui dati Evitare alcune durante la progettazione eliminare WAR prelevando presto gli operandi (DCD) in pipe eleminare WAW eseguendo tutti i WB in ordine (nell ultimo stadio) Rivelare e risolvere quelli rimasti andare in stallo o propagare (se possibile) IF DCD EX WB RAW Data Hazard IF DCD EX WB IF DCD EX WB WAW Data Hazard IF DCD OF Ex IF DCD OF Ex WAR Data Hazard Roberto Giorgi, Universita di Siena, C107L20, Slide 68

35 Rivelamento delle criticita Supponiamo che l istruzione j stia per essere elaborata e l istruzione precedente i si trovi ancora nella pipeline. Una criticita RAW esiste su registro ρ se ρ Wregs( i ) Rregs( j ) Tenere traccia delle scritture in attesa (per le istruzioni nella pipe) e confrontare con i registri di operandi della istruzione corrente. Quando l istruzione viene elaborata, prenotare il suo registro del risultato. Quando l istruzione e completa, rimuovere la sua prenotazione di scrittura. Una criticita WAW esiste su registro ρ se ρ Wregs( i ) Wregs( j ) Una criticita WAR esiste su registro ρ se ρ Rregs( i ) Wregs( j ) Roberto Giorgi, Universita di Siena, C107L20, Slide 69 Traccia delle scritture in attesa IAU Regs B alu S D mem Regs npc I mem A im n op rd n n op rd rs rt op op rd rd PC Attuali registri operand Letture in attesa criticita <= ((rs == rd ex ) & regwrite ex ) OR ((rs == rd mem ) & regwrite mem ) OR ((rs == rd wb ) & regwrite wb ) OR ((rt == rd ex ) & regwrite ex ) OR ((rt == rd mem ) & regwrite mem ) OR ((rt == rd wb ) & regwrite wb ) Roberto Giorgi, Universita di Siena, C107L20, Slide 70 RegWrite segnala una istruz. che scrive nei registri

36 Risolvere RAW con la propagazione Regs Forward mux B alu S IAU npc I mem A im n op rd n op rd rs rt op rd PC Trovare l operazione di scrittura (indicata dal registro corrispondente nell istruzione) piu vicina e valida. Propagarla all op-latch dello stadio che richiede quel valore Si aggiungeranno piu mux per path provenienti dai registri di pipeline D mem n op rd Regs Roberto Giorgi, Universita di Siena, C107L20, Slide 71 Data Forwarding = Data Bypassing Cosa si fa con operazioni di memoria? Se istruzioni sono cominciate in ordine e le operazioni avvengono sempre nello stesso stadio, non possono esistere criticita sulle operazioni di memoria! op Rd Ra Rb Qual e il prezzo del ritardo dello writeback per operazioni aritmetiche? cicli? hardware? op Rd Ra Rb A B Dipendenza dei dati per le load? R1 <- R4 + R5 R2 <- [ R2 + I ] R3 <- R2 + R1 => "Delayed Loads" Rd Rd R T to reg file Roberto Giorgi, Universita di Siena, C107L20, Slide 72

37 Interruzioni, Trap, Fault? Interruzioni: Permettono lo svuotamento della pipeline Scrivono l indirizzo dell interruzione in PC Fault (dentro l istruzione, restartable) forzare l istruzione di trap in IF impedire le scritture fino a quando trap raggiunge WB memorizzare piu PC o PC + stato Roberto Giorgi, Universita di Siena, C107L20, Slide 73 Refer to IPS solution Gestione delle eccezioni IAU npc I mem rivelare indirizzo sbagliato dell istruzione Regs B alu S lw $2,20($5) A im n op rd PC rivelare istruzione sbagliata rivelare overflow D mem rivelare indirizzo sbagliato dei dati Regs Permettere l eccezione Roberto Giorgi, Universita di Siena, C107L20, Slide 74

38 Problema delle eccezioni Eccezioni/Interruzioni: 5 istruzioni si eseguono nella pipeline di 5 stadi Come bloccare la pipeline? Come riprendere l esecuzione? Stadio Problema per cui si verifica l interruzione IF page fault on instruction fetch; misaligned memory access; memory-protection violation ID opcode non definito EX eccezione aritmetica E page fault on data fetch; misaligned memory access; memory-protection violation; memory error Load con data page fault, Add con instruction page fault? Soluzione 1: vettore di interruzione (come un istruzione) Solution 2: interrompere ASAP, riprendere le parti non completate Roberto Giorgi, Universita di Siena, C107L20, Slide 75 Soluzione: Congelare la parte superiore e inserire bolle nella parte inferiore IAU npc I mem freeze Regs op rw rs rt PC bubble B A im n op rw alu S n op rw D mem m n op rw Regs Roberto Giorgi, Universita di Siena, C107L20, Slide 76

39 Clocking nel IPS R3000 phi1 phi2 Clock di 2-fasi, non-overlapping Lo stadio della pipeline comprende due latch (sensibili al livello) Edge-triggered phi1 phi2 phi1 Roberto Giorgi, Universita di Siena, C107L20, Slide 77 Visione dettagliata della Instruction Pipeline nell R3000 Inst Fetch Decode Reg. Read / E.A ory Write Reg TLB I-Cache RF Operation WB Utilizzo delle risorse E.A. TLB D-Cache TLB TLB I-cache RF WB D-Cache Scrittura in fase 1, lettura in fase 2 => elimina bypassing da WB Roberto Giorgi, Universita di Siena, C107L20, Slide 78

40 Percentuale di stalli su load tex spice no forwarding forwarding gcc Roberto Giorgi, Universita di Siena, C107L20, Slide 79 Criticita sui dati su r1 I n s t r. O r d e r Tempo (cicli di clock) IF ID/RF EX E WB add r1,r2,r3 sub r4,r1,r3 and r6,r1,r7 or r8,r1,r9 xor r10,r1,r11 Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg In alcuni casi, con le pipeline del IPS R3000, non e necessario il propagamento dallo stadio WB Roberto Giorgi, Universita di Siena, C107L20, Slide 80

41 Riepilogo (1/2) Pipeline ottimale Ogni stadio esegue una parte dell istruzione in ogni ciclo di clock. Un istruzione finisce durante ogni ciclo di clock. In media, l esecuzione e molto piu veloce. Come funziona? Le similarita delle istruzioni permettono di utilizzare gli stessi stadi per tutte le istruzioni (in generale). Ogni stadio consuma circa lo stesso tempo: il tempo perso e poco. Roberto Giorgi, Universita di Siena, C107L20, Slide 81 Riepilogo (2/2) Il pipelining e una grande idea: e un concetto utilizzato comunemente Perche non e perfetto? Criticita strutturali: se avessimo solo una cache? Sono necessari piu risorse HW Criticita sul controllo: dobbiamo occuparci delle istruzioni di salto? Delayed branch Criticita sui dati: un istruzione dipende dall istruzione precedente Roberto Giorgi, Universita di Siena, C107L20, Slide 82

42 Il pipelining nei processori Pipelining Super-pipeline - Issue one instruction per (fast) cycle - takes multiple cycles IF D Ex W IF D Ex W IF D Ex W IF D Ex W IF D Ex W IF D Ex W IF D Ex W IF D Ex W Limitation Issue rate, FU stalls, FU depth Clock skew, FU stalls, FU depth Super-scalar - Issue multiple scalar instructions per cycle IF D Ex W IF D Ex W IF D Ex W IF D Ex W Hazard resolution VLIW ( EPIC ) - Each instruction specifies multiple scalar operations - Compiler determines parallelism IF D Ex W Ex W Ex W Ex W Packing Vector operations - Each instruction specifies series of identical operations IF D Ex W Ex W Ex W Ex W Applicability Roberto Giorgi, Universita di Siena, C107L20, Slide 83 Limiti dell Instruction Level Parallelism (ILP) Weiss and Smith [1984] Sohi and Vajapeyam [1987] Tjaden and Flynn [1970] Tjaden and Flynn [1973] Uht [1986] Smith et al. [1989] Jouppi and Wall [1988] Johnson [1991] Acosta et al. [1986] Wedig [1982] Butler et al. [1991] elvin and Patt [1991] Wall [1991] Kuck et al. [1972] Riseman and Foster [1972] Nicolau and Fisher [1984] (Flynn s bottleneck) (Jouppi disagreed) 8 51 (no control dependences) 90 (Fisher s optimism) Roberto Giorgi, Universita di Siena, C107L20, Slide 84

43 Superscalar Proposal Go beyond single instruction pipeline, achieve IPC > 1 Dispatch multiple instructions per cycle Provide more generally applicable form of concurrency (not just vectors) Geared for sequential code that is hard to parallelize otherwise Exploit fine-grained or instruction-level parallelism (ILP) Roberto Giorgi, Universita di Siena, C107L20, Slide 85 Classifying ILP achines [Jouppi, DECWRL 1991] Baseline scalar RISC Issue parallelism = IP = 1 Operation latency = OP = 1 Peak IPC = 1 SUCCESSIVE INSTRUCTIONS IF DE EX WB Roberto Giorgi, Universita di Siena, C107L20, Slide 86 TIE IN CYCLES (OF BASELINE ACHINE)

44 Classifying ILP achines [Jouppi, DECWRL 1991] Superpipelined: cycle time = 1/m of baseline Issue parallelism = IP = 1 inst / minor cycle Operation latency = OP = m minor cycles Peak IPC = m instr / major cycle (m x speedup?) IF DE EX WB Roberto Giorgi, Universita di Siena, C107L20, Slide Classifying ILP achines [Jouppi, DECWRL 1991] Superscalar: Issue parallelism = IP = n inst / cycle Operation latency = OP = 1 cycle Peak IPC = n instr / cycle (n x speedup?) IF DE EX WB Roberto Giorgi, Universita di Siena, C107L20, Slide 88

45 Classifying ILP achines [Jouppi, DECWRL 1991] VLIW: Very Long Instruction Word Issue parallelism = IP = n inst / cycle Operation latency = OP = 1 cycle Peak IPC = n instr / cycle = 1 VLIW / cycle IF DE WB EX Roberto Giorgi, Universita di Siena, C107L20, Slide 89 Classifying ILP achines [Jouppi, DECWRL 1991] Superpipelined-Superscalar Issue parallelism = IP = n inst / minor cycle Operation latency = OP = m minor cycles Peak IPC = n x m instr / major cycle IF DE EX WB Roberto Giorgi, Universita di Siena, C107L20, Slide 90

46 Superscalar vs. Superpipelined Roughly equivalent performance If n = m then both have about the same IPC Parallelism exposed in space vs. time SUPERSCALAR Key: SUPERPIPELINED IFetch Dcode Execute Writeback Time in Cycles (of Base achine) Roberto Giorgi, Universita di Siena, C107L20, Slide 91 Superpipelining Superpipelining is a new and special term meaning pipelining. The prefix is attached to increase the probability of funding for research proposals. There is no theoretical basis distinguishing superpipelining from pipelining. Etymology of the term is probably similar to the derivation of the now-common terms, methodology and functionality as pompous substitutes for method and function. The novelty of the term superpipelining lies in its reliance on a prefix rather than a suffix for the pompous extension of the root word. - Nick Tredennick, 1991 Roberto Giorgi, Universita di Siena, C107L20, Slide 92

47 Superpipelining: Hype vs. Reality Superpipelining - Jouppi, 1989 essentially describes a pipelined execution stage Jouppií s base m achine Underpipelined machines cannot issue instructions as fast as they are executed Underpipelined machine Superpipelined machine Note - key characteristic of Superpipelined machines is that results are not available to -1 successive instructions Roberto Giorgi, Universita di Siena, C107L20, Slide 93 Prefetch Buffer Vital performance determinant Rate of instruction fetch High Performance processors Fetch multiple instructions in each cycle common Use wide datapath to memory - PowerPC bits = 4 instructions Dispatch unit - Examine dependencies - Determine which instructions can be dispatched Roberto Giorgi, Universita di Siena, C107L20, Slide 94

48 Instruction Queues Q matches fetch/dispatch rates General Strategy for matching Producers - Consumers Use of FIFO-style Queues Absorb Asynchronous Delivery / Consumption Rates Provides Elasticity in pipelines Differing Instantaneous Rates Producer FIFO Consumer Roberto Giorgi, Universita di Siena, C107L20, Slide 95 Superscalar Processors ultiple Functional Units PowerPC way superscalar Branch Unit LoadStore Unit 3 Integer Units Floating Point Unit Dispatch Unit Sends ready instructions to all free units PowerPC 604: - potential 4 instructions/cycle (pipeline lengths are different!) - reality: 2-3 instructions/cycle? (program dependent!) Roberto Giorgi, Universita di Siena, C107L20, Slide 96

49 Summary Pipelining is a fundamental concept multiple steps using distinct resources Utilize capabilities of the Datapath by pipelined instruction processing start next instruction while working on the current one limited by length of longest stage (plus fill/flush) detect and resolve hazards Roberto Giorgi, Universita di Siena, C107L20, Slide 97 Summary: Pipelining What makes it easy all instructions are the same length just a few instruction formats memory operands appear only in loads and stores What makes it hard? structural hazards: suppose we had only one memory control hazards: need to worry about branch instructions data hazards: an instruction depends on a previous instruction We ll talk about modern processors and what really makes it hard: exception handling trying to improve performance with out-of-order execution, etc. Roberto Giorgi, Universita di Siena, C107L20, Slide 98

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/28 Sommario Riorganizzazione

Dettagli

Università degli Studi di Cassino e del Lazio Meridionale

Università degli Studi di Cassino e del Lazio Meridionale di Cassino e del Lazio Meridionale Corso di Pipeline Anno Accademico Francesco Tortorella Progettazione del datapath Prima soluzione: d.p. a ciclo singolo Semplice da realizzare Condizionato dal worst

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

L unità di elaborazione pipeline L unità Pipelining

L unità di elaborazione pipeline L unità Pipelining Struttura del processore L unità di elaborazione pipeline Corso ACSO prof. Cristina SILVANO Politecnico di Milano Incremento delle Per migliorare ulteriormente le si può: ridurre il periodo di clock aumentare

Dettagli

CALCOLATORI ELETTRONICI 15 aprile 2014

CALCOLATORI ELETTRONICI 15 aprile 2014 CALCOLATORI ELETTRONICI 15 aprile 2014 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli a stampa 1 Di seguito è riportato lo schema di una ALU a 32 bit in grado

Dettagli

CALCOLATORI ELETTRONICI 31 marzo 2015

CALCOLATORI ELETTRONICI 31 marzo 2015 CALCOLATORI ELETTRONICI 31 marzo 2015 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli a stampa 1. Tradurre in linguaggio assembly MIPS il seguente frammento di

Dettagli

Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo

Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo Calcolatori Elettronici La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo La pipeline CRITICITÀ SUI DATI Calcolatori Elettronici - Pipeline (2) - Slide 2 L. Tarantino

Dettagli

CALCOLATORI ELETTRONICI 29 giugno 2011

CALCOLATORI ELETTRONICI 29 giugno 2011 CALCOLATORI ELETTRONICI 29 giugno 2011 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si implementi per mezzo di una PLA la funzione combinatoria (a 3 ingressi e due uscite)

Dettagli

CALCOLATORI ELETTRONICI 29 giugno 2010

CALCOLATORI ELETTRONICI 29 giugno 2010 CALCOLATORI ELETTRONICI 29 giugno 2010 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si disegni lo schema di un flip-flop master-slave S-R sensibile ai fronti di salita e

Dettagli

Architettura di tipo registro-registro (load/store)

Architettura di tipo registro-registro (load/store) Caratteristiche principali dell architettura del processore MIPS E un architettura RISC (Reduced Instruction Set Computer) Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito da poche

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

Schedulazione dinamica. Elettronica dei Calcolatori 1

Schedulazione dinamica. Elettronica dei Calcolatori 1 Schedulazione dinamica Elettronica dei Calcolatori 1 Schedulazione dinamica delle operazioni Impossibile risolvere tutti i conflitti staticamente I possibile predire tutti i salti condizionati HW fa durante

Dettagli

Esercitazione sulle CPU pipeline

Esercitazione sulle CPU pipeline Esercitazione sulle CPU pipeline 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 perché

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici La Pipeline Superpipeline Pipeline superscalare Schedulazione dinamica della pipeline Processori reali: l architettura Intel e la pipeline dell AMD Opteron X4 Ricapitolando Con

Dettagli

Esempio: aggiungere j

Esempio: aggiungere j Esempio: aggiungere j Eccezioni e interruzioni Il progetto del controllo del processore si complica a causa della necessità di considerare, durante l esecuzione delle istruzioni, il verificarsi di eventi

Dettagli

Architettura del calcolatore

Architettura del calcolatore Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale

Dettagli

L architettura di riferimento

L architettura di riferimento Architetture degli elaboratori e delle reti Lezione 10 L architettura di riferimento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 10 1/27

Dettagli

MODELLO DLX IN UNISIM

MODELLO DLX IN UNISIM Architettura e descrizione del modello MODELLO DLX IN UNISIM RINGRAZIAMENTI : I materiali per questa presentazione sono tratti dal tutorial ufficiale di UNISIM - https://unisim.org/site/tutorials/start

Dettagli

Metodi Software per ottenere ILP

Metodi Software per ottenere ILP Metodi Software per ottenere ILP Calcolatori Elettronici 2 http://www.dii.unisi.it/~giorgi/didattica/calel2 Scaletta Tecnologie nel compilatore BRANCH PREDICTION A SOFTWARE (nel compilatore) - Gia vista

Dettagli

CPU pipeline 4: le CPU moderne

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

Dettagli

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Dettagli

Calcolatori Elettronici

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

Dettagli

Struttura del calcolatore

Struttura del calcolatore Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione

Dettagli

L unità di controllo di CPU multi-ciclo

L unità di controllo di CPU multi-ciclo L unità di controllo di CPU multi-ciclo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano A.A. 23-24 /2 Sommario I segnali di controllo

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Classificazione dei calcolatori elettronici Sistemi basati sull architettura di von Neumann rchitettura dei calcolatori: definizioni Evoluzione dell architettura rchitettura della

Dettagli

La macchina programmata Instruction Set Architecture (1)

La macchina programmata Instruction Set Architecture (1) Corso di Laurea in Informatica Architettura degli elaboratori a.a. 2014-15 La macchina programmata Instruction Set Architecture (1) Schema base di esecuzione Istruzioni macchina Outline Componenti di un

Dettagli

CPU pipeline 4: le CPU moderne

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

Dettagli

Tutorato Architettura degli elaboratori

Tutorato Architettura degli elaboratori Tutorato Architettura degli elaboratori Dott. Damiano Braga Before we start.. Orario 12 Aprile h. 14.00-16.00 aula F6 20 Aprile h. 11.30-13.30 aula F6 10 Maggio h. 14.00-16.00 aula F4 18 Maggio h. 11.30-13.30

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Aggiornato il 18 giugno 2015. 1 Questa affermazione richiede una precisazione. A parità di altre condizioni, l eliminazione dello stadio ME allunga la

Aggiornato il 18 giugno 2015. 1 Questa affermazione richiede una precisazione. A parità di altre condizioni, l eliminazione dello stadio ME allunga la 8 Questo documento contiene le soluzioni ad un numero selezionato di esercizi del Capitolo 8 del libro Calcolatori Elettronici - Architettura e organizzazione, Mc-Graw Hill 2009. Sarò grato a coloro che

Dettagli

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4 ARCHITETTURE MICROPROGRAMMATE. 1 Necessità di un architettura microprogrammata 1 Cos è un architettura microprogrammata? 4 Struttura di una microistruzione. 5 Esempi di microprogrammi 9 Esempio 1 9 Esempio

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

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica prof. ing. Corrado Santoro Schema a blocchi di una CPU Arithmetic Logic Unit Control Unit Register File BUS Control

Dettagli

Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18

Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18 Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Calcolatore: sottosistemi Processore o CPU (Central Processing

Dettagli

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1

Dettagli

Architettura di un calcolatore: introduzione

Architettura di un calcolatore: introduzione Corso di Calcolatori Elettronici I Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie

Dettagli

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6 Ciclo di Istruzione Può essere suddiviso in 4 tipi di sequenze di microoperazioni (cioè attività di calcolo aritmetico/logico, trasferimento e memorizzazione dei dati), non tutte necessariamente da realizzare

Dettagli

Aumentare il parallelismo a livello di istruzione (2)

Aumentare il parallelismo a livello di istruzione (2) Processori multiple-issue issue Aumentare il parallelismo a livello di istruzione (2) Architetture Avanzate dei Calcolatori Valeria Cardellini Nei processori multiple-issue vengono lanciate più istruzioni

Dettagli

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema La macchina di Von Neumann rchite(ura di un calcolatore us di sistema Collegamento Unità di Elaborazione (CPU) Memoria Centrale (MM) Esecuzione istruzioni Memoria di lavoro Interfaccia Periferica P 1 Interfaccia

Dettagli

Valutazione delle Prestazioni

Valutazione delle Prestazioni Valutazione delle Prestazioni Sia data una macchina X, definiamo: 1 PrestazioneX = --------------------------- Tempo di esecuzione X La prestazione aumenta con il diminuire del tempo di esecuzione (e diminuisce

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Realizzazione del Data path Data path a ciclo singolo Anno Accademico 27/28 Francesco Tortorella (si ringrazia il prof. M. De Santo per parte del materiale presente in queste slides) Realizzazione

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput Valutazione delle Prestazioni Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare

Dettagli

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello): Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

Tecniche di parallelismo, processori RISC

Tecniche di parallelismo, processori RISC Testo di riferimento: [Congiu] 9.1-9.3 (pg. 253 264) Tecniche di parallelismo, processori RISC 09.a Pipelining Altre tecniche di parallelismo Processori superscalari Caratteristiche dei processori RISC

Dettagli

Architettura hw. La memoria e la cpu

Architettura hw. La memoria e la cpu Architettura hw La memoria e la cpu La memoria centrale e la CPU Bus controllo Bus indirizzi Bus dati Bus di collegamento con la cpu indirizzi controllo dati Bus Indirizzi 11 Bus controllo Leggi/scrivi

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Realizzazione del path path a ciclo singolo Anno Accademico 24/25 Francesco Tortorella Realizzazione del data path. Analizzare l instruction set => Specifiche sul datapath il significato di ciascuna

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Classificazione dei calcolatori elettronici Sistemi basati sull architettura di Von Neumann Sistemi basati sull architettura Harward Architettura dei calcolatori: definizioni Evoluzione

Dettagli

Fondamenti di informatica: un po di storia

Fondamenti di informatica: un po di storia Fondamenti di informatica: un po di storia L idea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal, Leibniz) Nell ottocento vengono realizzati i primi

Dettagli

Università degli Studi di Cassino e del Lazio Meridionale

Università degli Studi di Cassino e del Lazio Meridionale Università degli Studi di Cassino e del Lazio Meridionale di Pipeline Anno Accademico Alessandra Scotto di Freca Si ringrazia il prof.francesco Tortorella per il materiale didattico Progettazione del datapath

Dettagli

Architettura di un computer

Architettura di un computer Architettura di un computer Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Architettura A.A. 2012-2013 1 / 36 La tecnologia Cerchiamo di capire alcuni concetti su

Dettagli

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale Calcolatori Elettronici La memoria gerarchica La memoria virtuale Come usare la memoria secondaria oltre che per conservare permanentemente dati e programmi Idea Tenere parte del codice in mem princ e

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

Dettagli

ESERCIZIO 1 Riferimento: PROCESSORE PIPELINE e CAMPI REGISTRI INTER-STADIO

ESERCIZIO 1 Riferimento: PROCESSORE PIPELINE e CAMPI REGISTRI INTER-STADIO ESERCIZIO Riferimento: PROCESSORE PIPELINE e CAMPI REGISTRI INTER-STADIO Sono dati il seguente frammento di codice assemblatore che comincia all indirizzo indicato, e i valori iniziali specificati per

Dettagli

Università degli Studi di Cassino e del Lazio Meridionale

Università degli Studi di Cassino e del Lazio Meridionale Università degli Studi di Cassino e del Lazio Meridionale di Calcolatori Elettronici Realizzazione del Data path a ciclo singolo Anno Accademico 22/23 Alessandra Scotto di Freca Si ringrazia il prof.francesco

Dettagli

CALCOLATORI ELETTRONICI

CALCOLATORI ELETTRONICI CALCOLATORI ELETTRONICI Giuseppe Coldani Tel. 0382 985678 e-mail: giuseppe.coldani@unipv.it giuseppe.coldani@tin.it orario delle lezioni: Mercoledì 14.00-18.00 orario di ricevimento: su appuntamento 1

Dettagli

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella. Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell

Dettagli

Il memory manager. Gestione della memoria centrale

Il memory manager. Gestione della memoria centrale Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda

Dettagli

In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline a CPU molto complesse per applicazioni ad

In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline a CPU molto complesse per applicazioni ad Principi di architetture dei calcolatori: l architettura ARM. Mariagiovanna Sami Che cosa è ARM In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline

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

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:

Dettagli

Calcolatori Elettronici B a.a. 2008/2009

Calcolatori Elettronici B a.a. 2008/2009 Calcolatori Elettronici B a.a. 2008/2009 Tecniche Pipeline: Gestione delle criticità Massimiliano Giacomin 1 Pipeline: i problemi Idealmente, il throughput è di una istruzione per ciclo di clock! Purtroppo,

Dettagli

Von Neumann. John Von Neumann (1903-1957)

Von Neumann. John Von Neumann (1903-1957) Linguaggio macchina Von Neumann John Von Neumann (1903-1957) Inventore dell EDVAC (Electronic Discrete Variables AutomaFc Computer), la prima macchina digitale programmabile tramite un soiware basata su

Dettagli

ESERCIZIO 1 Riferimento: PROCESSORE PIPELINE e CAMPI REGISTRI INTER-STADIO

ESERCIZIO 1 Riferimento: PROCESSORE PIPELINE e CAMPI REGISTRI INTER-STADIO ESERCIZIO 1 Riferimento: PROCESSORE PIPELINE e CAMPI REGISTRI INTER-STADIO Sono dati il seguente frammento di codice assemblatore che comincia all indirizzo indicato, e i valori iniziali specificati per

Dettagli

Lezione 7 Sommatori e Moltiplicatori

Lezione 7 Sommatori e Moltiplicatori Architettura degli Elaboratori e delle Reti Lezione 7 Sommatori e Moltiplicatori Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 7 1/36 Sommario!

Dettagli

ARCHITETTURA DELL ELABORATORE

ARCHITETTURA DELL ELABORATORE 1 ISTITUTO DI ISTRUZIONE SUPERIORE ANGIOY ARCHITETTURA DELL ELABORATORE Prof. G. Ciaschetti 1. Tipi di computer Nella vita di tutti giorni, abbiamo a che fare con tanti tipi di computer, da piccoli o piccolissimi

Dettagli

Lezione 3: Architettura del calcolatore

Lezione 3: Architettura del calcolatore Lezione 3: Architettura del calcolatore Architettura di Von Neumann BUS, CPU e Memoria centrale Ciclo di esecuzione delle istruzioni Architettura del calcolatore Il calcolatore è: uno strumento programmabile

Dettagli

Calcolatori Elettronici B a.a. 2006/2007

Calcolatori Elettronici B a.a. 2006/2007 Calcolatori Elettronici B a.a. 2006/2007 RETI LOGICHE: RICHIAMI Massimiliano Giacomin 1 Due tipi di unità funzionali Elementi di tipo combinatorio: - valori di uscita dipendono solo da valori in ingresso

Dettagli

La memoria centrale (RAM)

La memoria centrale (RAM) La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica: Veloce ma volatile e costosa Due eccezioni R.O.M.

Dettagli

INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE

INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE 1 INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE TIPI DI PARALLELISMO E CLASSIFICAZIONE DI FLYNN PIPELINING DELLE ISTRUZIONI I PROCESSORI SUPERSCALARI I PROCESSORI VLIW MULTITHREADING, CHIP MULTI PROCESSOR

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Architettura degli elaboratori (A)

Architettura degli elaboratori (A) Laurea in Informatica a.a. 2010-2011 Laboratorio del corso di Architettura degli elaboratori (A) Modulo 1: l Architettura dell 8086 Valeria Carofiglio Linguaggi a vari livelli e loro relazioni Programma

Dettagli

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine. Quinto Homework 1) Si vuole progettare una cache a mappatura diretta per un sistema a 32 bit per una memoria da 2 GB (quindi sono solo 31 i bit utili per gli indirizzi) e blocchi di 64 byte. Rispondere

Dettagli

Calcolo numerico e programmazione Architettura dei calcolatori

Calcolo numerico e programmazione Architettura dei calcolatori Calcolo numerico e programmazione Architettura dei calcolatori Tullio Facchinetti 30 marzo 2012 08:57 http://robot.unipv.it/toolleeo Il calcolatore tre funzionalità essenziali:

Dettagli

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici Uniamo VM e CACHE Physically addressed Ci sono varie alternative architetturali physically addressed virtually addressed virtually indexed Sono quelle piu semplici un dato puo essere in cache solo se e

Dettagli

UNITÀ DI ELABORAZIONE (CPU) UNITÀ DI ELABORAZIONE (CPU) Opcode OpCode Operazione

UNITÀ DI ELABORAZIONE (CPU) UNITÀ DI ELABORAZIONE (CPU) Opcode OpCode Operazione RCHITETTUR DI UN ELORTORE MCCHIN DI VON NEUMNN Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for dvanced Study, anni 40). UNITÀ FUNZIONLI fondamentali Processore (CPU) Centrale

Dettagli

23/02/2014. Dalla scorsa lezione. La Macchina di Von Neumann. Uomo come esecutore di algoritmi

23/02/2014. Dalla scorsa lezione. La Macchina di Von Neumann. Uomo come esecutore di algoritmi Dalla scorsa lezione LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica LA MACCHINA DI VON NEUMANN Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico

Dettagli

COMPITINO #1 di CALCOLATORI ELETTRONICI 1 del 03-11-09 COGNOME NOME

COMPITINO #1 di CALCOLATORI ELETTRONICI 1 del 03-11-09 COGNOME NOME MATRICOLA COGNOME NOME 1) [28/40] Trovare il codice assembly MIPS corrispondente dei seguenti micro-benchmark (utilizzando solo e unicamente istruzioni dalla tabella sottostante), rispettando le convenzioni

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

Il Processore: i registri

Il Processore: i registri Il Processore: i registri Il processore contiene al suo interno un certo numero di registri (unità di memoria estremamente veloci) Le dimensioni di un registro sono di pochi byte (4, 8) I registri contengono

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,

Dettagli

DMA Accesso Diretto alla Memoria

DMA Accesso Diretto alla Memoria Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati

Dettagli

Lezione n.9. Introduzione al linguaggio macchina

Lezione n.9. Introduzione al linguaggio macchina Lezione n.9 Autore:Luca Orrù 1 Sommario Esecuzione delle istruzioni Architettura interna ed esterna Linguaggio assembler e modi d indirizzamento Consideriamo ora la singola istruzione e la scomponiamo

Dettagli

Architettura del Set di Istruzioni (ISA)

Architettura del Set di Istruzioni (ISA) Architettura del Set di Istruzioni (ISA) Maurizio Palesi Maurizio Palesi 1 Instruction Set Architecture (ISA) Software instruction set Hardware Maurizio Palesi 2 1 Instruction Set Architecture (ISA) Applicazioni

Dettagli

La memoria - generalità

La memoria - generalità Calcolatori Elettronici La memoria gerarchica Introduzione La memoria - generalità n Funzioni: Supporto alla CPU: deve fornire dati ed istruzioni il più rapidamente possibile Archiviazione: deve consentire

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

Le virtual machine e la memoria virtuale

Le virtual machine e la memoria virtuale Le virtual machine e la memoria virtuale Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento Patterson 5: 5.6, 5.7. 1/29

Dettagli

Aumentare il parallelismo a livello di istruzione (1)

Aumentare il parallelismo a livello di istruzione (1) Aumentare il parallelismo a livello di istruzione (1) Architetture Avanzate dei Calcolatori Valeria Cardellini Parallelismo Il parallelismo consente di migliorare le prestazioni grazie all esecuzione simultanea

Dettagli

Le virtual machine e la memoria virtuale

Le virtual machine e la memoria virtuale Le virtual machine e la memoria virtuale Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento Patterson 5: 5.6, 5.7. 1/30

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

Introduzione all'architettura dei Calcolatori

Introduzione all'architettura dei Calcolatori Introduzione all'architettura dei Calcolatori Introduzione Che cos è un calcolatore? Come funziona un calcolatore? è possibile rispondere a queste domande in molti modi, ciascuno relativo a un diverso

Dettagli

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

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