Ing. Rosa Senatore rsenatore@unisa.it Università degli Studi di Salerno Corso di Calcolatori Elettronici Anno 2013/14 Unità di elaborazione dati con Pipeline : Data Hazard e Unità di propagazione Ing. Rosa Senatore rsenatore@unisa.it
3 2 5 1 4 1 4 3 2 1 2 3 2 1 1 I1 I2 I3 I4 I5
Esercizio 2: Si supponga che, tra tutte le istruzioni eseguite da un processore dotato di pipeline, una parte esibisca dipendenza tra i dati, come riportato in tabella: 2.1. Se non utilizzassimo la propagazione, quale sarebbe la percentuale di cicli di clock nei quali occorre inserire uno stallo a causa degli hazard sui dati? Da EX a 1 Da EX a 1 e 2 Da Ex a 2 Da MEM a 1 a. 10% 5% 25% b. 15% 20% I0 I1 I2
Da EX a 1 Da EX a 1 e 2 Da Ex a 2 Da MEM a 1 a. 10% 5% 25% b. 15% 20% La dipendenza tra lo stadio EX e l’istruzione successiva determina 2 stalli. La dipendenza tra lo stadio EX e le due successive istruzioni determina 2 stalli. La dipendenza tra lo stadio EX e la seconda istruzione successiva determina 1 stallo. La dipendenza tra lo stadio MEM e l’istruzione successiva determina 2 stalli. Supponendo che la pipeline sia a regime: CPI= 1+0.45*2+0.05*1=1.95 CPI= 1+0.40*2+0.10*1=1.9 La percentuale di cicli di stallo è pari a : 0.95/1.95= 0.49 → 49% 0.9/1.9=0.47 →47%
Esercizio 2: Si supponga che, tra tutte le istruzioni eseguite da un processore dotato di pipeline, una parte esibisca dipendenza tra i dati, come riportato in tabella: 2.2 Se utilizzassimo la propagazione completa, cioè la propagazione di tutti i risultati che si possono propagare, quale sarebbe la percentuale di cicli di clock nei quali occorre inserire uno stallo a causa degli hazard sui dati? Da EX a 1 Da EX a 1 e 2 Da Ex a 2 Da MEM a 1 a. 10% 5% 25% b. 15% 20% L’ unica dipendenza che causa 1 stallo è quella tra lo stadio MEM e l’istruzione successiva. Supponendo che la pipeline sia a regime: CPI= 1+0.25*1=1.25 CPI= 1+0.20*1=1.20 La percentuale di cicli di stallo è pari a: 0.25/1.25= 0.2 → 20% 0.2/1.2=0.17 →17%
Esercizio 2: Si supponga che, tra tutte le istruzioni eseguite da un processore dotato di pipeline, una parte esibisca dipendenza tra i dati, come riportato in tabella: Considerando le latenze dei singoli stadi della pipeline riportati in tabella: 2.3 Qual è l’incremento di velocità ottenuto aggiungendo una propagazione completa a una pipeline senza propagazione, data la percentuale di hazard e le latenze delle istruzioni? Da EX a 1 Da EX a 1 e 2 Da Ex a 2 Da MEM a 1 a. 10% 5% 25% b. 15% 20% IF ID EX (no propag) EX(propag completa) EX(propag solo da EX/MEM) EX (propag solo da MEM/WB) MEM WB a. 100 ps 50 ps 75 ps 110 ps 60 ps b. 250 ps 300 ps 200 ps 350 ps 320 ps 310 ps
EX(propag solo da EX/MEM) EX (propag solo da MEM/WB) MEM WB IF ID EX (no propag) EX(propag completa) EX(propag solo da EX/MEM) EX (propag solo da MEM/WB) MEM WB a. 100 ps 50 ps 75 ps 110 ps 60 ps b. 250 ps 300 ps 200 ps 350 ps 320 ps 310 ps Dagli es. 2.1 e 2.2, per una pipeline senza propagazione: CPI= 1+0.45*2+0.05*1=1.95 CPI= 1+0.40*2+0.10*1=1.9 Mentre per una pipeline con propagazione completa: CPI= 1+0.25*1=1.25 CPI= 1+0.20*1=1.20 Il tempo necessario all’esecuzione di un’istruzione sarà, per quella senza propagazione: Tistr = 1.95*100 ps = 195 ps Tistr = 1.90*300 ps = 570 ps Mentre per una pipeline con propagazione completa: Tistr = 1.25*110 ps = 137.5 ps Tistr = 1.20*350 ps = 420 ps L’incremento di velocità è quindi pari a : Speed_up = 195/137.5 = 1.42 Speed_up = 570/420 = 1.36
Esercizio 2: Si supponga che, tra tutte le istruzioni eseguite da un processore dotato di pipeline, una parte esibisca dipendenza tra i dati, come riportato in tabella: 2.4 Si supponga di utilizzare un multiplexer a tre input, quali quelli riportati nello schema completo di propagazione. In questo caso occorre decidere se sia meglio propagare il dato dal registro di pipeline EX/MEM oppure dal registro di pipeline MEM/WB. Quale soluzione porta ad un minore numero di stalli? Da EX a 1 Da EX a 1 e 2 Da Ex a 2 Da MEM a 1 a. 10% 5% 25% b. 15% 20%
I cicli di stallo per ogni istruzione sono: 0.10 + 0.05 + 0.50=0.65 Da EX a 1 Da EX a 1 e 2 Da Ex a 2 Da MEM a 1 a. 10% 5% 25% b. 15% 20% Considerando la propagazione solo attraverso il registro di pipeline EX/MEM: La dipendenza tra lo stadio EX e l’istruzione successiva non determina stalli. La dipendenza tra lo stadio EX e le due successive istruzioni determina 1 stallo. La dipendenza tra lo stadio EX e la seconda istruzione successiva determina 1 stallo. La dipendenza tra lo stadio MEM e l’istruzione successiva determina 2 stalli. I cicli di stallo per ogni istruzione sono: 0.10 + 0.05 + 0.50=0.65 0.05 + 0.10 + 0.40=0.55 Considerando la propagazione solo attraverso il registro di pipeline MEM/WB: La dipendenza tra lo stadio EX e l’istruzione successiva determina 1 stallo. La dipendenza tra lo stadio EX e le due successive istruzioni determina 1 stallo. La dipendenza tra lo stadio EX e la seconda istruzione successiva non determina stalli. La dipendenza tra lo stadio MEM e l’istruzione successiva determina 1 stallo. I cicli di stallo per ogni istruzione sono: 0.10 + 0.10 + 0.25=0.45 0.15 + 0.05 + 0.20=0.40
Esercizio 2: Si supponga che, tra tutte le istruzioni eseguite da un processore dotato di pipeline, una parte esibisca dipendenza tra i dati, come riportato in tabella: Considerando le latenze dei singoli stadi della pipeline riportati in tabella: 2.5 Risolvere il problema 2.4 determinando quale delle due opzioni produce un tempo di esecuzione minore per singola istruzione. Da EX a 1 Da EX a 1 e 2 Da Ex a 2 Da MEM a 1 a. 10% 5% 25% b. 15% 20% IF ID EX (no propag) EX(propag completa) EX(propag solo da EX/MEM) EX (propag solo da MEM/WB) MEM WB a. 100 ps 50 ps 75 ps 110 ps 60 ps b. 250 ps 300 ps 200 ps 350 ps 320 ps 310 ps
EX(propag solo da EX/MEM) EX (propag solo da MEM/WB) MEM WB IF ID EX (no propag) EX(propag completa) EX(propag solo da EX/MEM) EX (propag solo da MEM/WB) MEM WB a. 100 ps 50 ps 75 ps 110 ps 60 ps b. 250 ps 300 ps 200 ps 350 ps 320 ps 310 ps Dall’esercizio 2.4: Considerando la propagazione solo attraverso il registro di pipeline EX/MEM, i cicli di stallo per ogni istruzione sono: 0.10 + 0.05 + 0.50=0.65 0.05 + 0.10 + 0.40=0.55 Considerando la propagazione solo attraverso il registro di pipeline MEM/WB, i cicli di stallo per ogni istruzione sono: 0.10 + 0.10 + 0.25=0.45 0.15 + 0.05 + 0.20=0.40 Il CPI è quindi pari a : CPI= 1+0.65 = 1.65 CPI= 1+0.55 = 1.55 Il tempo di esecuzione di un’istruzione è quindi pari a: Tistr = 1.65*100 ps = 165 ps Tistr = 1.55*320 ps = 496 ps Il tempo di esecuzione di un’istruzione è quindi pari a: Tistr = 1.45*100 ps = 145 ps Tistr = 1.40*310 ps = 434 ps Il CPI è quindi pari a : CPI= 1+0.45 = 1.45 CPI= 1+0.40 = 1.40
Esercizio 2: Si supponga che, tra tutte le istruzioni eseguite da un processore dotato di pipeline, una parte esibisca dipendenza tra i dati, come riportato in tabella: Considerando le latenze dei singoli stadi della pipeline riportati in tabella: 2.6 Qual è l’incremento di velocità ulteriore, rispetto al processore dotato di propagazione completa, se si aggiungesse un circuito per la propagazione in avanti che elimina tutti hazard sui dati? Si supponga che questo circuito richieda altri 100 ps in aggiunta alla latenza dello stadio EX nella pipeline dotata di propagazione completa. Da EX a 1 Da EX a 1 e 2 Da Ex a 2 Da MEM a 1 a. 10% 5% 25% b. 15% 20% IF ID EX (no propag) EX(propag completa) EX(propag solo da EX/MEM) EX (propag solo da MEM/WB) MEM WB a. 100 ps 50 ps 75 ps 110 ps 60 ps b. 250 ps 300 ps 200 ps 350 ps 320 ps 310 ps
EX(propag solo da EX/MEM) EX (propag solo da MEM/WB) MEM WB IF ID EX (no propag) EX(propag completa) EX(propag solo da EX/MEM) EX (propag solo da MEM/WB) MEM WB a. 100 ps 50 ps 75 ps 110 ps 60 ps b. 250 ps 300 ps 200 ps 350 ps 320 ps 310 ps Dall’ es. 2.3, il tempo per istruzione con propagazione completa è pari a: Tistr = 1.25*110 ps = 137.5 ps Tistr = 1.20*350 ps = 420 ps Il tempo necessario all’esecuzione di un’istruzione con il circuito di propagazione in avanti è pari a : Tistr = 1*210 ps = 210 ps Tistr = 1*450 ps = 450 ps Di conseguenza, lo speed_up è pari a : Speed_up = 137.5/210 = 0.65 Speed_up = 420/450 = 0.93 Nonostante il circuito aggiuntivo elimini tutti gli hazard, il tempo di esecuzione di un’istruzione aumenta, quindi il processore è più lento.
Ing. Rosa Senatore rsenatore@unisa.it Università degli Studi di Salerno Corso di Calcolatori Elettronici Anno 2013/14 Unità di elaborazione dati con Pipeline : Data Hazard e Unità di Propagazione Ing. Rosa Senatore rsenatore@unisa.it