Calcolatori Elettronici
|
|
- Mariana Bettini
- 5 anni fa
- Visualizzazioni
Transcript
1 Calcolatori Elettronici Tecniche Pipeline: Gestione delle criticità e delle eccezioni Massimiliano Giacomin 1
2 Pipeline: i problemi Idealmente, il throughput è di una istruzione per ciclo di clock! Purtroppo, in realtà esistono diverse problematiche: - Criticità strutturali: HW non può eseguire una certa combinazione di istruzioni [es: una stessa risorsa è contesa da parte di più istruzioni] - Criticità sui dati: un istruzione dipende dal risultato di un istruzione precedente che si trova ancora nella pipeline. E necessario attendere che il risultato sia pronto. - Criticità sul controllo: l istruzione successiva ad un istruzione di salto deve attendere l esecuzione della precedente, per sapere se/dove saltare. 2
3 CRITICITA STRUTTURALI E STALLO 3
4 CASO 1 - unità funzionale contesa in due stadi diversi (es: memoria) controllo P C F: fetch PC=PC+4 D: Decodifica Prelievo operandi O: esegui l operazione W: scrivi i risultati Cache istruzioni e dati I1 I2 I3 I4 I5 I6 C1 C2 C3 C4 C5 C6 C7 C8 F1 D1 O1 W1 F2 D2 O2 W2 F3 D3 O3 W3 F4 D4 O4 W4 F5 D5 O5 W5 F6 D6 O6 W6 Tempo cicli di clock istruzioni 4
5 Conflitto per tutte le istruzioni che accedono in MEM (es: I 1, I 2, I 3 ) RIMEDIO: DIVIDERE LA MEMORIA IN DUE! controllo P C F: fetch PC=PC+4 D: Decodifica Prelievo operandi O: esegui l operazione W: scrivi i risultati Cache istruzioni Cache dati NB: questa è la soluzione adottata nel MIPS didattico [cfr. Patterson & Hennessy] In questo modo nel MIPS si evitano le criticità strutturali (a parte miss) Altro effetto: aumento capacità di trasferimento cache 5
6 CASO 2 - uno stadio richiede più cicli di clock per una istruzione (realizzazione multiciclo: risparmio hw + limitazione numero di stadi) Esempio I2: mul R5,R7,R6 O richiede due cicli di clock aggiuntivi I1 I2 I3 I4 I5 I6 C1 C2 C3 C4 C5 C6 C7 C8 F1 D1 O1 W1 F2 D2 O O O2 W2 F3 D D D3 O3 F F F4 D4 W3 O4 W4 Cicli di clock istruzioni Durante il ciclo di clock 5 e 6: O non va avanti con I 2 Lo stadio D rimane per I 3 e non accetta I 4 (O impegnato da I 2 ) F rimane per I 4 e non accetta nuova istruzione 6
7 La pipeline può essere pensata come un registro a scorrimento : - al termine di ogni ciclo, ogni istruzione si sposta in avanti di uno stadio (informazioni contenute in ogni registro interstadio elaborate e memorizzate nel registro interstadio successivo) - se uno stadio richiede più cicli di clock, si dice che la pipeline entra in stallo per quel numero di cicli: l istruzione nello stadio precedente (NB: seguente nel programma!) non può entrare finché lo stadio non ha terminato il suo compito (e il registro ricomincia a scorrere ) Stadio bloccato e i precedenti non accettano nuove istruzioni - nel caso precedente stallo di 2 cicli di clock 7
8 CASO 3 - Miss di cache (fallimenti di accesso alla memoria cache) - In fase di fetch (memoria istruzioni) o di accesso alla memoria da parte di istruzioni lw e sw (memoria dati) Esempio - 3 cicli di penalità nel fetch dell istruzione I 2 I1 I2 I3 I4 I5 I6 C1 C2 C3 C4 C5 C6 C7 C8 F1 D1 O1 W1 F F F F2 D2 F3 O2 D3 W2 O3 W3 istruzioni Durante il ciclo di clock 3, 4, 5: lo stadio F non va avanti con I 2 Lo stadio D non fa alcuna operazione (no dati su cui lavorare) Lo stadio F non accetta nuove istruzioni 8
9 Stallo: concetti generali (1) 1. Durante un ciclo di clock C i, un certo stadio S non può completare la sua operazione e necessita quindi di un ciclo addizionale successivo C i+1 [es. precedenti: F per miss di cache, O per operazioni aritmetiche lunghe ] P C F S-1 S S+1 S+2 Registro interstadio S-1 / S non sovrascritto da stadio S-1 nel prossimo fronte del segnale di clock (alla fine del ciclo C i ) [Þ durante il ciclo successivo i dati in ingresso restano immutati] 9
10 Stallo: concetti generali (2) 2. Gli stadi precedenti devono mantenere nel prossimo ciclo di clock C i+1 le istruzioni correnti: l operazione nello stadio S-1 non può procedere; IDEM per tutti gli stadi precedenti S-2 F P C F S-1 S S+1 S+2 registri interstadio precedenti (incluso PC) non sovrascritti nel fronte successivo 10
11 Stallo: concetti generali (3) 3. Nel ciclo successivo Ci+1 lo stadio S+1 non può ricevere dati significativi: è necessario fare in modo che sia esso sia gli stadi successivi non alterino in modo indefinito registri o memoria P C F S-1 S S+1 S+2 al fronte di clock successivo nel registro interstadio S/S+1: segnali di controllo che corrispondono a non effettuare alcuna operazione Creazione di una bolla che attraverserà tutta la pipeline, a partire da stadio S+1 fino all ultimo stadio, senza alcun effetto 11
12 Stallo: realizzazione circuitale controllo 0 P C F D S S+1... Write Write Write Unità di rilevamento criticità 12
13 Spiegazione lucido precedente Sulla base di segnali dallo stadio S: in C i rilevata necessità di stallo di un ciclo di clock Per porre la pipeline in stallo, durante il ciclo di clock C i : - i segnali Write (normalmente a 1) sono posti a 0, impedendo la scrittura dei registri interstadio precedenti Þ nel ciclo di clock C i+1 nulla cambia per gli stadi F, S - nel registro interstadio S/S+1 segnali di controllo per formare una bolla (NB: che si propagherà negli stadi successivi) Nota: stallo di n cicli di clock (istruzione in S per n+1 cicli) Durante ognuno dei primi n cicli si rileva necessità di stallo (ciclo successivo addizionale) e la pipeline viene posta in stallo sullo stadio S Durante l ultimo ciclo no stallo Þ la pipeline torna a procedere regolarmente 13
14 ESEMPIO CASO 2: stallo di due cicli con S=O (istruzione I 2 ) I1 I2 I3 I4 I5 I6 C1 C2 C3 C4 C5 C6 C7 C8 F1 D1 O1 W1 F2 D2 O O O2 W2 F3 D D D3 F F F4 O3 D4 W3 O4 Tempo cicli di clock W4 istruzioni C4 F D O W I 4 I 3 I 2 I 1 C5 I 4 I 3 I 2 B C6 I 4 I 3 I 2 B C7 I 5 I 4 I 3 I 2 14
15 ESEMPIO BIS CASO 2: stallo di due cicli con S=O (istruzione I 2 ) con pipeline a 5 stadi (F-D-O-M-W) I1 I2 I3 I4 I5 I6 C1 C2 C3 C4 C5 C6 C7 C8 F1 D1 O1 M1 W1 F2 D2 O O O2 M2 F3 D D D3 O3 F F F4 D4 W2 M3 O4 Tempo cicli di clock W3 M4 istruzioni C4 F D O M W I 4 I 3 I 2 I 1 C5 I 4 I 3 I 2 B I 1 C6 I 4 I 3 I 2 B B C7 I 5 I 4 I 3 I 2 B 15
16 Spiegazione lucido precedente L unità di rilevazione criticità sulla base dei segnali provenienti dallo stadio O rileva la necessità di mettere in stallo la pipeline (S=O) Per due cicli di clock: - Impedisce la scrittura di PC e dei due buffer F/D e D/O (attesa degli stadi di fetch, decode, execute) - Forza i segnali di controllo del buffer O/M in modo da mettere una bolla nello stadio M (impedendo nei cicli di clock successivi la scrittura di registri e memoria) 16
17 ESEMPIO CASO 3: stallo di tre cicli con S = F (istruzione I 2 ) I1 I2 I3 I4 I5 I6 C1 C2 C3 C4 C5 C6 C7 C8 F1 D1 O1 W1 F F F F2 D2 F3 O2 D3 W2 O3 W3 istruzioni C2 F D O W I 2 I 1 C3 I 2 B I 1 C4 I 2 B B I 1 C5 I 2 B B B C6 I 3 I 2 B B 17
18 Spiegazione lucido precedente L unità di rilevazione criticità sulla base dei segnali provenienti dalla cache rileva la necessità di mettere in stallo la pipeline (S=F) Fino a quando la cache non fornisce il dato (per tre cicli di clock): - Impedisce la scrittura di PC mettendo in attesa lo stadio Fetch - Forza i segnali di controllo del buffer F/D in modo da mettere una bolla nello stadio D (impedendo nei cicli di clock successivi la scrittura di registri e memoria) 18
19 NB: Stalli su più stadi controllo 0 0 P C F D S S+1 Write 1 Unità di rilevamento criticità Unità di rilevamento criticità Write 2 19
20 ORGANIZZAZIONE HW FINO A QUESTO PUNTO Unità di controllo (gestisce il controllo della pipeline ma non le criticità). Unità di rilevamento delle criticità (gestiscono le criticità, finora solo strutturali, mettendo in stallo la pipeline). In linea teorica, tutte le criticità che vedremo potrebbero essere gestite in questo modo (soltanto mediante stallo), tuttavia questo approccio è di fatto inefficiente. 20
21 Influenza degli stalli sulle prestazioni S 1 S 2 S 3 S 4 S 5 Stallo di 1 ciclo: 1 ciclo in più rispetto a CPI=1 S 1 S 2 S 3 S 3 S 4 S 5 S 1 S 2 S 2 S 3 S 4 S 5 S 1 S 1 S 2 S 3 S 4 S 5 S 1 S 2 S 3 S 4 S 5 T esecuzione = #istruzioni * CPI * T clock CPI = CPI ideale + δ STALLI = 1 + f Iconstallo *C stallo-iconstallo Throughput pipeline = 1/CPI (espresso come istruzioni/ciclo) 1/(CPI*T clock ) (espresso come istruzioni/sec) 21
22 PIPELINE: CRITICITA SUI DATI 22
23 Esempio addi $s0, $zero, 5 # s0=5 addi $s0, $s0, 3 addi $s1, $s0, 4 # s0=s0+3 # s1=s0+4 Un dato sorgente è risultato di istruzione precedente Con multiciclo: $s1=12 Con pipeline a 5 stadi addi $s0, $s0, 3 addi $s1, $s0, 4 F D E M W F D E M W Risulta s1= 9 NB: non accade ad esempio con addi $s1, $s0, 3 addi $s2, $s0, 5 23
24 TECNICA 1: gestione dipendenze via software Esempio con pipeline a 4 stadi add $1, $2, $3 F D add W Solo dal ciclo di clock 5 è disponibile $1 aggiornato sub $2, $1, $4 F D sub W Il compilatore può gestire la dipendenza inserendo due istruzioni indipendenti tra add e sub [eventualmente due istruzioni NOP] add $1, $2, $3 F D add W NOP F D O W NOP sub $2, $1, $4 F D O W F D sub W PRELIEVO $1 aggiornato 24
25 TECNICA 2: gestione dipendenze con stallo I1: add $1, $2, $3 I2: sub $2, $1, $4.. controllo P C F: fetch PC=PC+4 ma da C3 a C5 PC= ind. I 3 D: decode Prelievo operandi O: esegui l operazione W: scrivi i risultati I1 I2 I3 I4 I5 I6 C1 C2 C3 C4 C5 C6 C7 C8 F1 D1 O1 W1 F2 D2 D2 D2 O2 W2 F3 F3 F3 D3 O3 W3 F4 D4 O4 W4 F5 D5 O5 F6 D6 Tempo cicli di clock istruzioni Rilevazione criticità: $1 non aggiornato Dato aggiornato in $1 (scritto da W1 alla fine di C4) 25
26 Realizzazione circuitale controllo 0 P C F: fetch Alimenta l istruzione D: decode Prelievo operandi O: esegui l operazione W: scrivi i risultati Write Write criticità NB: ovviamente, per gestire eventuali criticità strutturali servono tutte le opportune unità di gestione 26
27 Spiegazione lucidi precedenti Stallo in stadio Decode: istruzione dipendente preleva operandi Rilevamento criticità: - operando da prelevare operando destinazione di istruzione ancora in pipeline - sulla base di: campi istruzioni dipendente (stadio D) + registri interstadio successivi (istruzioni precedenti ancora in pipeline) Numero di cicli di stallo in D: se un istruzione ancora in pipeline deve aggiornare un operando sorgente da leggere in D l istruzione in D stalla per un (ulteriore) ciclo Þ esecuzione istruzione dipendente procede con lettura operando solo dopo che sia stato aggiornato da istruzione precedente 27
28 TECNICA 3: propagazione dei dati I1: add $1, $2, $3 I2: sub $2, $1, $4.. IDEA: quando I2 deve utilizzare $1 in O valore aggiornato già disponibile in RSLT controllo P C F: fetch PC=PC+4 D: decode Prelievo operandi SRC1 SRC2 Esegui Operaz. RSLT W: scrivi i risultati I 2 I 1 28
29 TECNICA 3: propagazione dei dati I1: add $1, $2, $3 I2: sub $2, $4, $1.. controllo POSSIBILE PROPAGARLO DA REGISTRO INTERSTADIO SUCCESSIVO! P C F: fetch PC=PC+4 D: decode Prelievo operandi SRC1 SRC2 Esegui Operaz. RSLT W: scrivi i risultati I1 I2 I3 I4 C1 C2 C3 C4 C5 C6 C7 C8 F1 D1 $2+$3 $1 F2 D2 $4 - $1 W2 F3 D3 O3 W3 F4 D4 O4 W4 Tempo in cicli di clock istruzioni SI EVITA STALLO DI DUE CICLI DI CLOCK! 29
30 Realizzazione circuitale (CON PIPELINE A 5 STADI) controllo P C F: fetch PC=PC+4 D: decode Prelievo operandi SRC1 SRC2 EX: Esegui Operazione RSLT M: accesso memoria RSL2WRIT E W: scrivi i risultati Controllo mux Unità di propagazione 30
31 Spiegazione lucido precedente Unità di propagazione: - sulla base del registro interstadio in stadio EX (dove serve il dato) e dei valori dei registri successivi (istruzioni precedenti ancora in pipeline) determina se il dato è obsoleto (ovvero: verrà sovrascritto da istruzioni precedenti ancora in pipeline) - se c è dipendenza da risolvere asserisce i segnali nei mux per propagazione: la ALU preleva operando dipendente non da SRCi, ma da RSLT - NB: tutto ciò si intende replicato per ogni ingresso della ALU Propagazione effettuata nello stadio in cui un dato è usato (EX in questo caso), non in stadi precedenti: aspettando il più possibile le istruzioni precedenti aumentano le possibilità che il dato sia stato prodotto! 31
32 DIPENDENZA DA UNO STESSO OPERANDO PRESENTE IN PIU STADI I 5 I 4 I 3 esegui ottimistiche (alimenta operandi) SRC1 SRC2 Esegui Operazione Controllo mux RSLT Unità di propagazione Il dato da propagare è quello dell istruzione più recente, ovvero la più vicina tra quelle precedenti (I 4 ). Questa si trova nello stadio più a sinistra (il meno avanzato) Vince il dato dello stadio meno avanzato! (il rosso nel caso in figura) Es. add R2, R3, R4 add R2, R5, R6 add R4, R3, R2 I 3 I 4 I 5 dipendenze 32
33 PROPAGAZIONE IN GENERALE (A) I n-2 F D... S S W S +1 In registri interstadio successivi: istruzioni precedenti nel codice I n-1 F D... S S W S +1 I n F D... S S +1 S W Prelievo dato (obsoleto) Utilizzo dato Il dato necessario che I n usa in S è prelevato dal registro interstadio (tra i successivi) in cui è presente l istruzione che lo ha prodotto 33
34 PROPAGAZIONE IN GENERALE (B) Possono esserci più stadi in cui si utilizzano i dati, p.es. con pipeline a 5 stadi: - stadio E: operandi ALU - stadio M: valore registro da scrivere in memoria Talvolta l hardware prevede una sola unità di propagazione nel primo stadio in cui i dati vengono utilizzati (con pipeline a 5 stadi in E) un dato propagato in uno stadio S può essere utilizzato in uno stadio successivo S+i ES: add $t1, $s2, $s3 sw $t1, 20($s1) // valore $t1 propagato (sostituito) in E, // portato avanti e utilizzato in M 34
35 UN ESEMPIO ERRATO P C F: fetch alimenta istruzione D: decode Prelievo operandi SRC1 SRC2 Esegui Operazione RSLT M: accesso memoria RSL2WRIT E W: scrivi i risultati Controllo mux Unità di propagazione Esempio: add $s0, $s1, $s2 lw $s1, 10($t0) Se l istruzione nello stadio E dipende da quella che si trova nello stadio MEM (per il dato prelevato dalla memoria) sembra di poter propagare da uscita memoria Ma avrei in serie memoria e ALU!!! Allungamento del periodo di clock! 35
36 ERRORE COMUNE NEGLI ESERCIZI I valori sono propagati da un registro interstadio, MAI dall uscita di un elemento combinatorio critico : non allungare T clock! 36
37 Esempio corretto nel caso di pipeline a 5 stadi P C F: fetch alimenta istruzione D: decode Prelievo operandi SRC1 SRC2 Esegui Operazione RSLT M: accesso memoria RSL2WRIT E W: scrivi i risultati Controllo mux Unità di propagazione Esempio: add $s0, $s1, $s2 BOLLA lw $s1, 10($t0) Se l istruzione nello stadio E dipende da quella che si trova nello stadio MEM (per il dato prelevato dalla memoria) è purtroppo necessario uno stallo! (si parla di criticità carica e usa ) 37
38 Il quadro globale Unità di controllo: determina nello stadio D i segnali di controllo da assegnare al buffer interstadio D/D+1 Unità di propagazione: risolve alcune dipendenze anticipando gli operandi (posta nello stadio in cui si usano, non prima!) Unità di rilevamento delle criticità: gestisce le criticità strutturali e le criticità sui dati che non sono risolte dalla propagazione [è possibile identificarle già in stadio Decode, poiché le istruzioni precedenti sono tutte negli stadi successivi] NB: se non si usasse la propagazione l unità di rilevamento delle criticità sarebbe progettata in modo da riconoscere più criticità: si tornerebbe al caso rimedio con solo stallo. 38
39 Esempio di gestione di criticità mediante stallo e successiva propagazione Pipeline a 5 stadi [MIPS] e uso dell istruzione lw [MIPS] lw $s2, 20($s1) F D 20+$s1 Read W and $s4, $s2, $s5 F D EX(Ù) MEM W Nello stadio Decode, si rileva che l istruzione and non potrà gestire la dipendenza con la propagazione Þstallo di un ciclo di clock, poi la propagazione gestirà la dipendenza Nota: questo tipo di criticità viene chiamata carica-e-usa 39
40 Altro esempio: pipeline più lunga (6 stadi) I 1 I 2 F D O 1 O 2 O 3 W F D O 1 O 2 O 3 W Il dato è prodotto in O 3 da I 1 e utilizzato da I 2 in O 1 : con propagazione si riduce stallo di due cicli di clock ma è inevitabile stallo di 2 cicli. NB: la pipeline può essere dotata di più unità di propagazione in corrispondenza degli stadi in cui si usano i valori degli operandi per evitare alcuni cicli di stallo (VEDERE ESERCIZI) 40
41 L ESEMPIO DEL MIPS Scelte progettuali (non univoche) - pipeline a 5 stadi - una sola unità di propagazione verso lo stadio EX (ALU per TIPO-R, calcolo indirizzo lw e sw, confronto operandi beq) in grado di propagare i dati dai registri EX/MEM e MEM/WB Vediamo nell ordine: - unità di propagazione (quali criticità risolve?) - unità di gestione delle criticità (quali criticità deve gestire con stallo?) 41
42 Unità di propagazione verso E ForwardA EX/MEM.RegWrite MEM/WB. RegWrite sign-extend ForwardB 42
43 Spiegazione lucido precedente IF ID EX MEM WB I n I n-1 I n-2 L unità di propagazione verso lo stadio EX riceve in ingresso: - i valori dal registro ID/EX da cui può riconoscere quali operandi usa I n - i valori da EX/MEM da cui può riconoscere se I n-1 scrive in destinazione (EX/MEM.RegWrite=1) e qual è la destinazione di I n-1 (EX/MEM.RegisterRd) - i valori da MEM/WB da cui può riconoscere se I n-2 scrive in destinazione (MEM/WB.RegWrite=1) e qual è la destinazione di I n-2 (MEM/WB.RegisterRd) Se una delle due istruzioni precedenti I n-1 e I n-2 scrive in un registro destinazione pari ad un registro sorgente (di I n ) questo viene propagato dal registro interstadio 43
44 COMPLICAZIONI DA GESTIRE IF ID EX MEM WB I n I n-1 I n-2 - come visto, il dato da I n-2 (ovvero da MEM/WB) va propagato solo se non deve essere propagato anche da I n-1 (EX/MEM): l istruzione più recente vince! - COMPLICAZIONE DOVUTA AL REGISTRO $0 (ovvero $zero): nel MIPS il registro $0 può essere utilizzato come destinazione, ma il suo valore non cambia e rimane 0 (il Register File restituisce sempre valore nullo!) Se il registro interessato è $0 (l istruzione I n usa $0 come operando, una istruzione precedente scrive un valore nel registro $0) allora il propagato sarebbe sbagliato (avrei il risultato di una istruzione precedente che in generale è non nullo), quello letto da Reg. File è corretto (nullo)! 44
45 Controllo del primo ingresso della ALU ( rs ): if (EX/MEM.RegWrite and EX/MEM.RegisterRd < > 0 and EX/MEM.RegisterRd = ID/EX.RegisterRs) then ForwardA = 10 (2 10 ) Propagazione da EX/MEM if (MEM/WB.RegWrite and MEM/WB.RegisterRd < > 0 and MEM/WB.RegisterRd = ID/EX.RegisterRs and not (EX/MEM.RegisterRd = ID/EX.RegisterRs and EX/MEM.RegWrite) ) then ForwardA = 01 (1 10 ) Propagazione da MEM/WB e analogamente per il secondo ingresso ( rt ) 45
46 UNITA DI GESTIONE CRITICITA MIPS: I COMPITI Vediamo cosa succede quando un istruzione I n si trova in D: NB: - le uniche istruzioni che alterano la destinazione sono TIPO-R e lw - le istruzioni TIPO-R producono il dato nello stadio E, lw nello stadio M I n-4 F D E M W Questa e le precedenti non generano criticità! I n-3 F D E M W Risolta con propagazione sul Register File (vedi dopo)! I n-2 F D E M W Quando I n è in E, il dato è disponibile in M/W I n-1 F D E M W Tipo-R: quando I n è in E, dato è disponibile in E/M (propagazione) lw: quando I n è in E, il dato non è disponibile (si sta leggendo dalla memoria): stallo un ciclo! I n F D E M W 46
47 NB: l unità di propagazione gestisce la dipendenza rispetto a due istruzioni precedenti (infatti propago da due registri interstadio: EX/MEM e MEM/WB). Come gestire la dipendenza dall istruzione che precede di tre posizioni? Altro accorgimento usato nel MIPS: scrive $s1 I 1 F D E M W I 2 I 3 F D E M W F D E M W Scrittura Register File nella prima metà del ciclo di clock, Lettura nella seconda metà del ciclo di clock I 4 F D E M W legge $s1: dato corretto 47
48 Clock in controfase nel register file clock Scrittura MEM/WB Scrittura Register File Scrittura ID/EX Lettura R. File Assunzioni: T prop-mem/wb + T setup-rf < T clock /2 T prop-rf + T setup-id/ex < T clock /2 48
49 Unità di rilevazione criticità gestisce solo criticità carica-e-usa 49
50 Spiegazione lucido precedente Hazard Detection Unit gestisce criticità carica-e-usa : istruzione in D carica un registro che è destinazione di lw immediatamente precedente (attualmente nello stadio EX) Riconoscimento: - ID/EX.MemRead = 1 (lw è l unica che legge dalla memoria!) - ID/EX.RegisterRt = sorgente istruzione in D Eventuale stallo: - 1 ciclo di clock Realizzazione stallo (usuale): - pone bolla in ID/EX - impedisce scrittura di IF/ID e PC (per un ciclo) 50
51 QUADRO RIASSUNTIVO (FINO A QUESTO PUNTO) Controllo pipeline: - sul secondo stadio di decodifica [dopo lo stadio di fetch] - controllo combinatorio: IR decode Registro Interstadio (nello stadio di decodifica solo ottimistiche) Problemi: - Criticità strutturali (miss di cache + stadio richiede più cicli di clock) Þ stallo su uno stadio S (es. stadio di fetch esecuzione) Þ unità di rilevazione delle criticità (forza lo stallo) sullo stadio S Riceve segnali da: stadio S (e registro interstadio) + stadi successivi (istruzioni precedenti!) -Criticità sui dati Þ unità di propagazione dei dati: propagazione verso uno stadio S: propaga dati da uno stadio successivo (riceve info su stadio S e successivi!) NB: si propaga sempre verso lo stadio dove viene usato il dato: è così possibile aspettare più istruzioni che potrebbero produrlo Criticità rimanenti risolte attraverso stalli Þ UNITA DI PROPAGAZIONE SGRAVA UNITA RILEVAZ. CRITICITA 51
52 Il ruolo del compilatore Esempio ipotetico programma MIPS (presenza unità gest. criticità + propagazione) add $t5, $t5, $t6 lw $t2, 4($t1) add $t4, $t2, $t3 criticità carica-e-usa Se il compilatore riordina le istruzioni così lw $t2, 4($t1) add $t5, $t5, $t6 add $t4, $t2, $t3 Il risultato non cambia (la seconda add lavora su registri diversi!) ma la distanza tra le due istruzioni dipendenti ora è aumentata: la propagazione evita lo stallo!!! 52
53 ESEMPIO TIPICO La tipica configurazione di codice che deriva da istruzioni del tipo A = B + C genera uno stallo sul valore del secondo dato lw $s1, 0($t0) F D E M W $s1 lw $s2, 0($t1) add $s3, $s1, $s2 sw $s3, 0($t2) F D E M W F D F $s2 D F E D M $s3 E W M W 53
54 Ruolo del compilatore: Il compilatore può modificare la sequenza di codice per eliminare lo stallo Il compilatore cerca di evitare di fare eseguire il caricamento e immediatamente dopo usare il registro destinazione del caricamento VEDIAMO COME PARTENDO DA UN ESEMPIO 54
55 Codice di partenza a = b + c; d = e f; Þ stallo su c nell addizione [se si carica prima b, altrimenti stallo su b] Þ stallo su f nella sottrazione Supponiamo che b, c, e ed f siano nelle locazioni di memoria il cui indirizzo è rispettivamente in $t0, $t1, $t3, $t4 a e d vadano memorizzati nelle locazioni il cui indirizzo è rispettivamente in $t2 e $t5 55
56 Esecuzione senza intervento del compilatore lw $s1, 0($t0) # carica b lw $s2, 0($t1) # carica c add $s3, $s1, $s2 # somma con stallo sw $s3, 0($t2) # memorizza a lw $s4, 0($t3) # carica e lw $s5, 0($t4) # carica f sub $s6, $s4, $s5 # sottrazione con stallo sw $s6, 0($t5) # memorizza d 56
57 intervento del compilatore lw $s1, 0($t0) # carica b lw $s2, 0($t1) # carica c add $s3, $s1, $s2 # somma con stallo sw $s3, 0($t2) # memorizza a lw $s4, 0($t3) # carica e lw $s5, 0($t4) # carica f sub $s6, $s4, $s5 # sottrazione con stallo sw $s6, 0($t5) # memorizza d 57
58 Esecuzione con intervento del compilatore lw $s1, 0($t0) # carica b lw $s2, 0($t1) # carica c lw $s4, 0($t3) # carica e add $s3, $s1, $s2 # (scambiate lw e add) lw $s5, 0($t4) # carica f sw $s3, 0($t2) # scambiate lw e sw sub $s6, $s4, $s5 # sottrazione sw $s6, 0($t5) # memorizza d Con l unità di propagazione verso E, non si ha più alcuno stallo! 58
59 PIPELINE: CRITICITA SUL CONTROLLO 59
60 Criticità sul controllo L istruzione di salto viene eseguita in un certo stadio della pipeline (supponiamo il quarto): I3: Jump j. condiz. I4: I3 F D addr PC I5: I6: I4 F D O W.. F D O W I5 J branch I6 I7 F D O W F D O W Se il salto è effettuato, I4, I5, I6 vengono eseguite comunque, mentre l istruzione a cui si salta viene caricata ed eseguita successivamente Due tipi di salti: - salto incondizionato (jump) - salto condizionato o diramazione (branch) 60
61 TECNICA 1: salto ritardato Gestione interamente al software (compilatore): no unità di gestione criticità! In pratica, il comportamento è quello schematizzato nel lucido precedente L istruzione è caratterizzata da uno o più intervalli di ritardo del salto ( branch delay slot ) ovvero posti che il compilatore deve riempire con istruzioni che devono sempre essere eseguite. Il numero di branch delay slot corrisponde allo stadio in cui viene eseguito il salto (1 per il secondo stadio, 2 per il terzo, ecc.). Maggiore è il numero di slot, più difficile è il compito del compilatore: in mancanza di istruzioni, è sempre possibile usare l istruzione NOP. 61
62 SALTO INCONDIZIONATO Esempio: supponiamo aggiornamento del PC nel terzo stadio (O) I3: lw R1, 100(R3) I4: add R2, R2, R3 I5: sub R4, R5, R6 I6: j I110.. Riordino I3: lw R1, 100(R3) I4: j I110 I5: add R2, R2, R3 I6: sub R4, R5, R6.. I4: j I110 I5 F D PC W F D O W jump I6 F D O W F D O W I110 62
63 SALTO CONDIZIONATO Esempio: supponiamo che si abbia un solo slot.. Dest: add $s2, $s1, $s3 sub $s4, $s2, $s1 beq $s1, $zero, Dest.. Riordino.. Dest: add $s2, $s1, $s3 beq $s1, $zero, Dest sub $s4, $s2, $s1.. Questa strategia non è applicabile se le istruzioni che precedono la diramazione modificano le condizioni su cui si basa il test di diramazione, ad esempio:.. Dest: add $s7, $s1, $s3 sub $s4, $s2, $s1 beq $s4, $zero, Dest mul $s5, $s2, $s1.... Dest: add $s7, $s1, $s3 beq $s4, $zero, Dest mul $s5, $s2, $s1.. [in tal caso la condizione di salto deve essere successiva a sub] 63
64 TECNICA 2: stallo nella pipeline SALTO INCONDIZIONATO Esempio: aggiornamento PC nel quarto stadio I3: Jump I10 I4: I5: I6:.. F D addr PC F F F F stallo stallo stallo J D O W F D O W I10 I11 Realizzazione nel modo visto (con S = F e riconoscimento del salto posto in stadio ID) Write P C F Gestione criticità controllo ID Riconoscimento J Se un istruzione jump in pipeline è in stadio S scritturapc : - BOLLA - no scrittura PC a meno che jump non sia in S scritturapc 64
65 NB: per limitare il numero di bolle [cicli di stallo della pipeline] è bene che l esecuzione del salto [aggiornamento PC] sia fatto in uno stadio quanto più possibile anticipato. Meglio se il numero degli stadi della pipeline è limitato! In ogni caso, anche anticipando l esecuzione del salto nello stadio ID, rimane comunque uno stallo: F PC O W J stallo F D O W SALTO CONDIZIONATO E ovviamente possibile utilizzare la stessa tecnica; tuttavia, poiché il salto potrebbe non essere effettuato (e quindi eseguite le istruzioni seguenti) si utilizzano tecniche di predizione. 65
66 TECNICA 3: Predizione di salto non effettuato Salto condizionato: si continuano a prelevare le istruzioni successive. Condizione di salto indica salto non effettuato : tutto procede normalmente. Condizione di salto indica salto effettuato : - istruzioni già in pipeline (stadi precedenti a esecuzione salto) scartate - si procede con il fetch indirizzo di destinazione. ESEMPIO (verifica + calcolo indirizzo nel terzo stadio) +4 P C NOP F NOP ID branch condizione di salto EX destinazione 66
67 ESEMPIO (supponendo che il salto sia eseguito nel terzo stadio) 40 beq $1, $3, 7 44 and $12, $2, $5 F D E M W F D E M W 48 or $13, $6, $2 F D E M W 52 add $14, $2, $ lw $4, 50($7) Se il salto viene effettuato, le istruzioni 44 e 48 vanno scartate, si introduce un ritardo di 2 cicli di clock Decisione relativa al salto 67
68 Questo si può indicare nel diagramma con cicli di purge (P) 40 beq $1, $3, 7 44 and $12, $2, $5 F D E M W F P E M W 48 or $13, $6, $2 P D E M W 52 add $14, $2, $ lw $4, 50($7) F D E M W 68
69 COMMENTI: SALTO RITARDATO VS STALLO Stallo introduce cicli di clock persi talvolta evitabili con salto ritardato Þ Salto ritardato è sempre più efficiente rispetto allo stallo! Salto ritardato richiede collaborazione tra hardware e software (il compilatore deve riordinare istruzioni tenendo presente dettagli hardware) Þ Richiede collaborazione progettisti HW e SW Þ Salto ritardato utilizzabile per processori RISC di nuova generazione, impraticabile se si vuole mantenere la compatibilità con software pre-esistente (non compilato per tener conto del salto ritardato). ES. Intel: introdotta la pipeline dal 486 Con l avvento delle pipeline superscalari e dinamiche (non viste in questo corso) aumenta il numero di slot [in un ciclo cominciano l esecuzione più istruzioni] ed il salto ritardato è difficilmente gestibile. Sono più efficaci le tecniche di predizione del salti 69
70 COMMENTI: TECNICHE DI PREDIZIONE COMPLESSE Tecniche di predizione dei salti condizionati (salto eseguito o no) - salto eseguito: unità di fetch carica istruzioni a partire da ind. destinazione - salto non eseguito: unità di fetch carica a partire da ind. successivo Esecuzione speculativa istruzioni: - predizione corretta: non ci sono cicli di penalità - predizione errata: si scartano istruzioni entrate in pipeline da non eseguire, penalità di uno o più cicli di clock Due possibili tipologie di tecniche: - PREDIZIONE STATICA: realizzata dal compilatore - PREDIZIONE DINAMICA: realizzata dal processore (predizione a runtime sulla base della storia passata : diramazione può avere predizioni diverse nel corso dell esecuzione) 70
71 PIPELINE: GESTIONE DELLE ECCEZIONI 71
72 Gestione delle eccezioni nel caso di controllo con pipeline: PROBLEMI: Nel momento in cui avviene un eccezione, ci saranno più istruzioni nella pipeline... Quale istruzione è responsabile dell eccezione? Cosa fare delle istruzioni precedenti ancora presenti in pipeline? Cosa fare delle istruzioni successive già presenti nella pipeline? La gestione può essere diversa a seconda delle tipologie di causa: 1. Eccezioni interne [chiamata S.O. Overflow o istruzione indefinita ] 2. Interruzioni esterne da parte dei sistemi I/O [Malfunzionamento HW può essere rilevato da eccezione interna o esterna] 72
73 Vediamo la gestione delle eccezioni interne: In questo caso l istruzione responsabile dell eccezione è chiaramente definita - l eccezione avviene in uno stadio specifico S [p.es. overflow: stadio EX istruzione indefinita: stadio D] E necessario passare il controllo ad una routine di servizio, ma anche prevedere la gestione di più istruzioni nella pipeline: - l istruzione responsabile dell eccezione deve essere immediatamente interrotta ed eliminata [non deve modificare i registri] - le istruzioni che seguono l istruzione responsabile [negli stadi precedenti S] devono essere eliminate: completare la loro esecuzione sarebbe dannoso dopo il verificarsi di un eccezione - le istruzioni che precedono l istruzione responsabile [negli stadi seguenti S] devono essere completate: la routine di servizio deve conoscere lo stato che precede l esecuzione dell istruzione responsabile dell eccezione [vedi esempio nel lucido seguente] 73
74 addi $s1, $s1, 100 add $s1, $s2, $s1 Valore di $s1 usato da add [via propagazione!] Overflow aritmetico: add interrotta nello stadio EX Dipende anche dal valore di $s1: la routine di servizio potrebbe dover conoscere il valore. Ma questo, quando add è nello stato EX, è stato propagato dalla addi ma non è ancora stato scritto nel register file dalla addi [che si trova in M]. E necessario allora lasciare che le istruzioni precedenti vengano eseguite; ciò non significa ritardare la chiamata alla routine di servizio: le istruzioni della routine di servizio sono caricate in pipeline normalmente! QUINDI - eliminare (segnali a reg. interstadio) istruzione responsabile e seguenti - scrivere in opportuni registri la causa e l indirizzo dell istruzione interrotta - modificare PC: caricamento prima istruzione routine di servizio 74
75 Realizzazione (schema astratto) Causa Indirizzo routine di servizio controllo Write EPC NOP P C F N O P controllo... N O P P C S N O P S+1 75
76 NOTE AL LUCIDO PRECEDENTE: - il concetto fondamentale è che le istruzioni fino a S sono scartate, quelle in stadi successivi continuano e i registri EPC, Causa, PC sono aggiornati opportunamente - l introduzione di un valore NOP in un registro interstadio si intende ottenuta comandando un opportuno MUX [vedi p.es. i dettagli nella specifica realizzazione proposta dal Patterson] Analogamente, la scrittura dell indirizzo della routine di servizio nel PC avviene comandando opportunamente il MUX uno dei cui ingressi è collegato a valore costante corrispondente all indirizzo stesso - nell esempio si usa un registro di causa, ma è facile immaginare la modifica per interruzioni vettorizzate (p.es. basta usare un MUX opportuno verso PC, i diversi ingressi corrispondono ai diversi indirizzi delle routine di servizio) 76
77 L esempio del MIPS (per la gestione dell overflow aritmetico) (NB: gestione eccezioni demandata all unità di controllo) 77
78 PROBLEMA: In uno stesso ciclo di clock più eccezioni da diversi stadi, con cause diverse - Si assegna una priorità alle eccezioni: servita quella a priorità più alta (di solito istruzione più vecchia = stadio più avanzato) - Il registro Causa può mantenere tutte le eccezioni che si verificano in un ciclo di clock: quando è stata servita la prima, sono disponibili le informazioni sulle altre Per le interruzioni esterne: - È possibile attribuire l interruzione all istruzione più conveniente, tipicamente completando tutte le istruzioni già entrate nella pipeline (altrimenti dovrei scartarle e avrei dei cicli di penalità inutili!) - Per i malfunzionamenti hardware: trattati come le interruzioni esterne se di natura esterna, altrimenti come le interruzioni interne! 78
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
DettagliClassificazione dipendenze
Classificazione dipendenze 1a. EX/MEM.RegisterRd = ID/EX.registerRs 1b. EX/MEM.RegisterRd = ID/EX.registerRt Il registro (campo Rs oppure Rt di una istruzione) che è stato letto nella fase ID ed il cui
DettagliStall on load e Hazard sul controllo
Stall on load e Hazard sul controllo Prof. N.Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento al Patterson: 4.7, 4.8 1/38 Sommario Identificazione
DettagliStall on load e Hazard sul controllo
Stall on load e Hazard sul controllo Prof. N.Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento al Patterson: 4.7, 4.8 1/38 Sommario Identificazione
DettagliCome si definisce il concetto di performance? Tempo di esecuzione di un programma. numero di task/transazioni eseguiti per unità di tempo
Performance Come si definisce il concetto di performance? Tempo di esecuzione di un programma Wall-clock time CPU time tiene conto solo del tempo in cui il programma usa la CPU user time + system time
DettagliCalcolatori 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,
DettagliCalcolatori Elettronici B a.a. 2004/2005
Calcolatori Elettronici B a.a. 2004/2005 Pipeline Superscalari e Dinamiche Massimiliano Giacomin 1 Eccezioni con pipeline Tipologie di eccezioni Eccezioni interne - chiamata al sistema operativo da parte
DettagliCalcolatori Elettronici B a.a. 2007/2008
Calcolatori Elettronici B a.a. 27/28 Tecniche Pipeline: Elementi di base assimiliano Giacomin Reg[IR[2-6]] = DR Dal processore multiciclo DR= em[aluout] em[aluout] =B Reg[IR[5-]] =ALUout CASO IPS lw sw
DettagliStall on load e Hazard sul controllo. Sommario
Stall on load e Hazard sul controllo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento al Patterson: 4.7, 4.8 1/31 Sommario
DettagliARCHITETTURE AVANZATE DEI CALCOLATORI, A.A. 2007/08 Soluzione esercizi sul pipelining
ARCHITETTURE AVANZATE DEI CALCOLATORI, A.A. 2007/08 Soluzione esercizi sul pipelining Esercizio 1) N.B. Nei diagrammi a cicli multipli non sono indicati i registri di pipeline (per semplicità) a) Si tratta
DettagliProblemi del ciclo singolo
Problemi del ciclo singolo Ciclo di clock lungo Istruzioni potenzialmente veloci sono rallentate Impiegano sempre lo stesso tempo dell istruzione più lenta Unità funzionale e collegamenti della parte operativa
DettagliArchitettura 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
DettagliInstruction Level Parallelism Andrea Gasparetto
Tutorato di architettura degli elaboratori Instruction Level Parallelism Andrea Gasparetto andrea.gasparetto@unive.it IF: Instruction Fetch (memoria istruzioni) ID: Instruction decode e lettura registri
DettagliCALCOLATORI ELETTRONICI 14 giugno 2010
CALCOLATORI ELETTRONICI 14 giugno 2010 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si implementi per mezzo di porte logiche di AND, OR e NOT la funzione combinatoria (a
DettagliCalcolatori Elettronici B a.a. 2005/2006
Calcolatori Elettronici B a.a. 25/26 Tecniche Pipeline: Elementi di base assimiliano Giacomin Reg[IR[2-6]] = DR Dal processore multiciclo DR= em[aluout] em[aluout] =B Reg[IR[5-]] =ALUout CASO IPS lw sw
DettagliCalcolatori Elettronici B a.a. 2004/2005
Calcolatori Elettronici B a.a. 2004/2005 Tecniche Pipeline Massimiliano Giacomin 1 Reg[IR[20-16]] = MDR Dal processore multiciclo MDR= Mem[ALUout] Mem[ALUout] =B Reg[IR[15-11]] =ALUout CASO MIPS lw sw
DettagliCPU 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
DettagliCALCOLATORI ELETTRONICI 27 giugno 2017
CALCOLATORI ELETTRONICI 27 giugno 2017 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
DettagliCPU pipeline hazards
Architettura degli Elaboratori e delle Reti Lezione 23 CPU pipeline hazards Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 23 /24 Sommario!
DettagliArchitettura dei calcolatori e sistemi operativi. Pipelining e Hazard Capitolo 4 P&H
Architettura dei calcolatori e sistemi operativi Pipelining e Hazard Capitolo 4 P&H 16. 11. 2015 Problema dei conflitti Conflitti strutturali: tentativo di usare la stessa risorsa da parte di diverse istruzioni
DettagliCALCOLATORI ELETTRONICI 25 giugno 2018
CALCOLATORI ELETTRONICI 25 giugno 2018 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si implementi per mezzo di porte logiche OR, AND, NOT la funzione combinatoria (a 3 ingressi
DettagliPipeline criticità e forwarding
1 Pipeline criticità e forwarding Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento al Patterson: 4.5, 4.6 1/42 Sommario La CPU con
DettagliUnità di controllo della pipeline
Unità di controllo della pipeline Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento al Patterson: 6.3 /5 Sommario La CPU
DettagliEsercitazione del 05/05/ Soluzioni
Esercitazione del 05/05/2010 - Soluzioni Criticità nella distribuzione dei dati e dei flussi Anche se in media una CPU pipelined richiede un ciclo di clock per istruzione, le singole istruzioni richiedono
DettagliHazard 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
DettagliPipelining: Unità di Elaborazione e di Controllo Barbara Masucci
Architettura degli Elaboratori Pipelining: Unità di Elaborazione e di Controllo Barbara Masucci Punto della situazione Ø Abbiamo studiato Ø Una prima implementazione hardware (a ciclo singolo) di un sottoinsieme
DettagliCALCOLATORI 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
DettagliIl pipelining: tecniche di base
Definizione di pipelining Il pipelining: tecniche di base Architetture Avanzate dei Calcolatori E una tecnica per migliorare le prestazioni del processore basata sulla sovrapposizione dell esecuzione di
DettagliIl pipelining: tecniche di base
Il pipelining: tecniche di base Il pipelining E una tecnica per migliorare le prestazioni del processore basata sulla sovrapposizione dell esecuzione di più istruzioni appartenenti ad un flusso di esecuzione
DettagliEsercitazione del 14/05/ Soluzioni
Esercitazione del 14/0/2009 - Soluzioni 1) Criticità nella distribuzione dei dati e dei flussi Anche se in media una CPU pipelined richiede un ciclo di clock per istruzione, le singole istruzioni richiedo
DettagliCALCOLATORI 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
DettagliCALCOLATORI ELETTRONICI 9 settembre 2011
CALCOLATORI ELETTRONICI 9 settembre 2011 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si implementi per mezzo di porte logiche AND, OR e NOT la funzione combinatoria (a
DettagliL'architettura del processore MIPS
L'architettura del processore MIPS Piano della lezione Ripasso di formati istruzione e registri MIPS Passi di esecuzione delle istruzioni: Formato R (istruzioni aritmetico-logiche) Istruzioni di caricamento
DettagliStall 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à
DettagliLa pipeline. Sommario
La pipeline Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento al Patterson edizione 5: 4.5 e 4.6 1/31 http:\\borghese.di.unimi.it\
DettagliArchitettura dei calcolatori e sistemi operativi. Il processore pipeline Capitolo 4 P&H
Architettura dei calcolatori e sistemi operativi Il processore pipeline Capitolo 4 P&H 4. 11. 2015 Pipelining Tecnica per migliorare le prestazioni basata sulla sovrapposizione dell esecuzione di più istruzioni
DettagliLa pipeline. Sommario
La pipeline Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento al Patterson edizione 5: 4.5 e 4.6 1/28 http:\\borghese.di.unimi.it\
DettagliArchitettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico
Architettura degli Elaboratori e Laboratorio Matteo Manzali Università degli Studi di Ferrara Anno Accademico 2016-2017 Criticità sui dati Questo è l esempio utilizzato per spiegare il funzionamento della
DettagliCalcolatori Elettronici B a.a. 2007/2008
Calcolatori Elettronici B a.a. 2007/2008 Pipeline: Tecniche Avanzate (Instruction Level Parallelism ILP) Massimiliano Giacomin 1 PIPELINE: LA CODA DELLE ISTRUZIONI 2 Può prelevare dalla cache più istruzioni
DettagliLezione di Tutorato Di Architettura degli Elaboratori B 18/05/2005 SOLUZIONI: PIPELINE
SOLUZIONI: PIPELINE Consegna per le domande del compito: (da 3 a 5 domande) Rispondere alle seguenti domande in maniera sintetica, usando il presente foglio per scrivere le risposte. Non è possibile consultare
DettagliESERCIZIO 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
DettagliCALCOLATORI ELETTRONICI 15 giugno 2015
CALCOLATORI ELETTRONICI 15 giugno 2015 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si implementi per mezzo di porte logiche di AND, OR e NOT la funzione combinatoria (a
DettagliArchitettura 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à
DettagliCALCOLATORI 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
DettagliSommario. 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
DettagliCicli di clock e istruzioni
Cicli di clock e istruzioni Numero di cicli di clock differenti per istruzioni differenti Le moltiplicazioni impiegano più tempo delle addizioni Operazioni in virgola mobile impiegano più tempo delle operazioni
DettagliRichiami sull architettura del processore MIPS a 32 bit
Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC
DettagliSi 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
DettagliCALCOLATORI ELETTRONICI 15 luglio 2014
CALCOLATORI ELETTRONICI 15 luglio 2014 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si disegni lo schema di un flip-flop master-slave sensibile ai fronti di salita e se
DettagliEsercitazione del 12/05/ Soluzioni
Esercitazione del 12/05/2005 - Soluzioni Una CPU a ciclo singolo come pure una CPU multi ciclo eseguono una sola istruzione alla volta. Durante l esecuzione poi, alcuni stadi della CPU rimangono inutilizzate
DettagliCalcolatori 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,
DettagliHazard 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
DettagliCPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti
Architettura degli Elaboratori e delle Reti Lezione 18 CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 18 1/2 Sommario!
DettagliArchitettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Pre-appello del 12 Gennaio Attenzione:
Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Pre-appello del 12 Gennaio 2018 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.
DettagliProgetto CPU a singolo ciclo
Architettura degli Elaboratori e delle Reti Progetto CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano 1/50 Sommario! La CPU! Sintesi di
DettagliCALCOLATORI ELETTRONICI 27 marzo 2018
CALCOLATORI ELETTRONICI 27 marzo 2018 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
DettagliCalcolatori Elettronici
Calcolatori Elettronici Memoria cache: Esercizi individuali proposti Massimiliano Giacomin Esercizio 1: collocazione dei blocchi nella cache Sia data la seguente sequenza di indirizzi di byte a cui si
DettagliRichiami sull architettura del processore MIPS a 32 bit
Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC
DettagliGestione delle eccezioni (CPU multiciclo) La CPU pipeline
Architettura degli Elaboratori e delle Reti Lezione 22 Gestione delle eccezioni (CPU multiciclo) La CPU pipeline A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi
DettagliEsercitazione su Instruction Level Parallelism
Esercitazione su Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Pipeline con e senza forwarding Si considerino due processori MIPS (processore A e B) entrambi con pipeline a
DettagliArchitettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 22 giugno Attenzione:
Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 22 giugno 2017 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina. Preparare
DettagliL unità di controllo di CPU a singolo ciclo
L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D,
DettagliCalcolatori Elettronici B a.a. 2008/2009
Calcolatori Elettronici B a.a. 2008/2009 Pipeline: Tecniche Avanzate (Instruction Level Parallelism ILP) Massimiliano Giacomin 1 PIPELINE: LA CODA DELLE ISTRUZIONI 2 Può prelevare dalla cache più istruzioni
DettagliEsercitazione del 10/05/ Soluzioni
Esercitazione del 10/05/2007 - Soluzioni Una CPU a ciclo singolo come pure una CPU multi ciclo eseguono una sola istruzione alla volta. Durante l esecuzione parte dell hardware della CPU rimane inutilizzato
DettagliCPU multiciclo eccezioni CPU pipeline
Architettura degli Elaboratori e delle Reti Lezione 22 CPU multiciclo eccezioni CPU pipeline Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliArchitettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:
Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 18 Febbraio 2015 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.
DettagliCPU 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
DettagliArchitettura degli elaboratori CPU a ciclo singolo
Architettura degli elaboratori CPU a ciclo singolo Prof. Alberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano iferimento sul Patterson: capitolo 4.2, 4.4,
DettagliUn quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto
Un quadro della situazione Lezione 15 Il Set di Istruzioni (2) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri
DettagliArchitettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 20 Giugno Attenzione:
Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 20 Giugno 2016 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina. Preparare
DettagliInstruction Level Parallelism Salvatore Orlando
Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Organizzazione parallela del processore I processori moderni hanno un organizzazione interna che permette di eseguire più istruzioni
DettagliInstruction Level Parallelism
Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Organizzazione parallela del processore I processori moderni hanno un organizzazione interna che permette di eseguire più istruzioni
DettagliCALCOLATORI ELETTRONICI 20 gennaio 2012
CALCOLATORI ELETTRONICI 20 gennaio 2012 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
DettagliEsercitazione su Instruction Level Parallelism Salvatore Orlando
Esercitazione su Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Pipeline con e senza forwarding Si considerino due processori MIPS (processore A e B) entrambi con pipeline a
DettagliPipeline 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
DettagliUna 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
DettagliPipeline nel Mondo Reale
Pipeline nel Mondo Reale Luca Abeni May 26, 2016 Pipeline Ideali... Abbiamo visto come fare il bucato eseguire un istruzione macchina usando un pipeline... Pipeline a 5 stadi: Fetch Decode Exec Memory
DettagliProgetto CPU a singolo ciclo
Architettura degli Elaboratori e delle Reti Progetto CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano 1/60 Sommario v La CPU v Sintesi di
DettagliCalcolatori Elettronici
Calcolatori Elettronici CPU multiciclo Massimiliano Giacomin SVANTAGGI DEL PROCESSORE A SINGOLO CICLO Tutte le istruzioni lunghe un ciclo di clock T clock determinato dall istruzione più lenta Istruzioni
DettagliArchitettura 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
DettagliArchitettura degli elaboratori CPU a ciclo singolo
Architettura degli elaboratori CPU a ciclo singolo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo
DettagliIl processore: unità di controllo
Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune
DettagliEsercitazione del 30/04/ Soluzioni
Esercitazione del 30/04/2010 - Soluzioni Una CPU a ciclo singolo come pure una CPU multi ciclo eseguono una sola istruzione alla volta. Durante l esecuzione parte dell hardware della CPU rimane inutilizzato
DettagliL unità di controllo di CPU a singolo ciclo
L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1,
DettagliArchitettura degli Elaboratori Lez. 10 Esercizi su CPU MIPS a 1 ciclo di clock. Prof. Andrea Sterbini
Architettura degli Elaboratori Lez. 10 Esercizi su CPU MIPS a 1 ciclo di clock Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Argomenti della lezione - Esercizi sulla CPU MIPS a 1 colpo di clock
DettagliArch. Elab. - S. Orlando 2. ma aumentiamo il rate di accesso alla memoria (per leggere istruzioni e. leggere/scrivere dati) von Neumann bottleneck
Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Pipeline Le unità funzionali (lavatrice, asciugatrice, stiratrice, armadio) sono usate sequenzialmente per eseguire i vari job
DettagliESERCIZIO 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
DettagliProcessore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)
Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Parte di Controllo La Parte Controllo (Control) della CPU è un circuito sequenziale istruzioni eseguite in più cicli di clock
DettagliCalcolatori Elettronici B a.a. 2004/2005
Calcolatori Elettronici B a.a. 2004/2005 PIPELINE: CONCLUSIONI Massimiliano Giacomin 1 Pipeline: influenza su struttura delle istruzioni La struttura delle istruzioni è influenzata dalla struttura dell
DettagliIl processore: unità di elaborazione
Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero
DettagliProgettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore
Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero
DettagliArchitettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 19 Febbraio Attenzione:
Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 19 Febbraio 2016 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.
DettagliUn quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto
Un quadro della situazione Lezione 14 Il Set di Istruzioni (2) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri
DettagliLa pipeline. Sommario
La pipeline Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento al Patterson: 4.5 e 4.6 1/28 http:\\homes.dsi.unimi.it\ borghese
DettagliLinguaggio 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,
DettagliCalcolatori 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