unità di elaborazione dati con pipeline : data hazard e unità di propagazione ing. rosa senatore...

14
Unità di elaborazione dati con Pipeline : Data Hazard e Unità di propagazione Ing. Rosa Senatore [email protected] Università degli Studi di Salerno Corso di Calcolatori Elettronici Anno 2013/14

Upload: consolata-gigli

Post on 02-May-2015

215 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Unità di elaborazione dati con Pipeline : Data Hazard e Unità di propagazione Ing. Rosa Senatore rsenatore@unisa.it Università degli Studi di Salerno Corso

Unità di elaborazione dati con Pipeline : Data Hazard e

Unità di propagazione

Ing. Rosa Senatore

[email protected]

Università degli Studi di SalernoCorso di Calcolatori Elettronici

Anno 2013/14

Page 2: Unità di elaborazione dati con Pipeline : Data Hazard e Unità di propagazione Ing. Rosa Senatore rsenatore@unisa.it Università degli Studi di Salerno Corso

2143 32 2

I5

I1

I2

I3

I4

14352 1 1 1

Page 3: Unità di elaborazione dati con Pipeline : Data Hazard e Unità di propagazione Ing. Rosa Senatore rsenatore@unisa.it Università degli Studi di Salerno Corso

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% 10% 5% 25%

b. 15% 5% 10% 20%

I0

I1

I2

Page 4: Unità di elaborazione dati con Pipeline : Data Hazard e Unità di propagazione Ing. Rosa Senatore rsenatore@unisa.it Università degli Studi di Salerno Corso

•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:

a. CPI= 1+0.45*2+0.05*1=1.95b. CPI= 1+0.40*2+0.10*1=1.9

Da EX a 1

Da EX a 1 e 2

Da Ex a 2

Da MEM a 1

a. 10% 10% 5% 25%

b. 15% 5% 10% 20%

La percentuale di cicli di stallo è pari a :

a. 0.95/1.95= 0.49 → 49%b. 0.9/1.9=0.47 →47%

Page 5: Unità di elaborazione dati con Pipeline : Data Hazard e Unità di propagazione Ing. Rosa Senatore rsenatore@unisa.it Università degli Studi di Salerno Corso

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% 10% 5% 25%

b. 15% 5% 10% 20%

L’ unica dipendenza che causa 1 stallo è quella tra lo stadio MEM e l’istruzione successiva.Supponendo che la pipeline sia a

regime:

a. CPI= 1+0.25*1=1.25b. CPI= 1+0.20*1=1.20

La percentuale di cicli di stallo è pari a:

c. 0.25/1.25= 0.2 → 20%d. 0.2/1.2=0.17 →17%

Page 6: Unità di elaborazione dati con Pipeline : Data Hazard e Unità di propagazione Ing. Rosa Senatore rsenatore@unisa.it Università degli Studi di Salerno Corso

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% 10% 5% 25%

b. 15% 5% 10% 20%

IF ID EX (no propag

)

EX(propag

completa)

EX(propag solo

da EX/ME

M)

EX (propag solo da

MEM/WB)

MEM WB

a. 100 ps

50 ps 75 ps 110 ps 100 ps 100 ps 100 ps

60 ps

b. 250 ps

300 ps

200 ps 350 ps 320 ps 310 ps 300 ps

200 ps

Page 7: Unità di elaborazione dati con Pipeline : Data Hazard e Unità di propagazione Ing. Rosa Senatore rsenatore@unisa.it Università degli Studi di Salerno Corso

Il tempo necessario all’esecuzione di un’istruzione sarà, per quella senza propagazione:

a. Tistr = 1.95*100 ps = 195 psb. Tistr = 1.90*300 ps = 570 ps

Mentre per una pipeline con propagazione completa:

c. Tistr = 1.25*110 ps = 137.5 psd. Tistr = 1.20*350 ps = 420 ps

IF ID EX (no propag

)

EX(propag

completa)

EX(propag solo

da EX/ME

M)

EX (propag solo da

MEM/WB)

MEM WB

a. 100 ps

50 ps 75 ps 110 ps 100 ps 100 ps 100 ps

60 ps

b. 250 ps

300 ps

200 ps 350 ps 320 ps 310 ps 300 ps

200 ps

Dagli es. 2.1 e 2.2, per una pipeline senza propagazione:

a. CPI= 1+0.45*2+0.05*1=1.95b. CPI= 1+0.40*2+0.10*1=1.9

Mentre per una pipeline con propagazione completa:

c. CPI= 1+0.25*1=1.25d. CPI= 1+0.20*1=1.20

L’incremento di velocità è quindi pari a :

a. Speed_up = 195/137.5 = 1.42

b. Speed_up = 570/420 = 1.36

Page 8: Unità di elaborazione dati con Pipeline : Data Hazard e Unità di propagazione Ing. Rosa Senatore rsenatore@unisa.it Università degli Studi di Salerno Corso

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% 10% 5% 25%

b. 15% 5% 10% 20%

Page 9: Unità di elaborazione dati con Pipeline : Data Hazard e Unità di propagazione Ing. Rosa Senatore rsenatore@unisa.it Università degli Studi di Salerno Corso

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:

a. 0.10 + 0.05 + 0.50=0.65b. 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:

a. 0.10 + 0.10 + 0.25=0.45b. 0.15 + 0.05 + 0.20=0.40

Da EX a 1

Da EX a 1 e 2

Da Ex a 2 Da MEM a 1

a. 10% 10% 5% 25%

b. 15% 5% 10% 20%

Page 10: Unità di elaborazione dati con Pipeline : Data Hazard e Unità di propagazione Ing. Rosa Senatore rsenatore@unisa.it Università degli Studi di Salerno Corso

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% 10% 5% 25%

b. 15% 5% 10% 20%

IF ID EX (no propag

)

EX(propag

completa)

EX(propag solo

da EX/ME

M)

EX (propag solo da

MEM/WB)

MEM WB

a. 100 ps

50 ps 75 ps 110 ps 100 ps 100 ps 100 ps

60 ps

b. 250 ps

300 ps

200 ps 350 ps 320 ps 310 ps 300 ps

200 ps

Page 11: Unità di elaborazione dati con Pipeline : Data Hazard e Unità di propagazione Ing. Rosa Senatore rsenatore@unisa.it Università degli Studi di Salerno Corso

Dall’esercizio 2.4: Considerando la propagazione solo attraverso il registro di pipeline EX/MEM, i cicli di stallo per ogni istruzione sono:

a. 0.10 + 0.05 + 0.50=0.65b. 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:

c. 0.10 + 0.10 + 0.25=0.45d. 0.15 + 0.05 + 0.20=0.40

IF ID EX (no propag

)

EX(propag

completa)

EX(propag solo

da EX/ME

M)

EX (propag solo da

MEM/WB)

MEM WB

a. 100 ps

50 ps 75 ps 110 ps 100 ps 100 ps 100 ps

60 ps

b. 250 ps

300 ps

200 ps 350 ps 320 ps 310 ps 300 ps

200 ps

Il CPI è quindi pari a :

a. CPI= 1+0.65 = 1.65

b. CPI= 1+0.55 = 1.55

Il tempo di esecuzione di un’istruzione è quindi pari a:a. Tistr = 1.65*100 ps =

165 psb. Tistr = 1.55*320 ps =

496 ps

Il CPI è quindi pari a :

a. CPI= 1+0.45 = 1.45

b. CPI= 1+0.40 = 1.40

Il tempo di esecuzione di un’istruzione è quindi pari a:a. Tistr = 1.45*100 ps =

145 psb. Tistr = 1.40*310 ps =

434 ps

Page 12: Unità di elaborazione dati con Pipeline : Data Hazard e Unità di propagazione Ing. Rosa Senatore rsenatore@unisa.it Università degli Studi di Salerno Corso

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% 10% 5% 25%

b. 15% 5% 10% 20%

IF ID EX (no propag

)

EX(propag

completa)

EX(propag solo

da EX/ME

M)

EX (propag solo da

MEM/WB)

MEM WB

a. 100 ps

50 ps 75 ps 110 ps 100 ps 100 ps 100 ps

60 ps

b. 250 ps

300 ps

200 ps 350 ps 320 ps 310 ps 300 ps

200 ps

Page 13: Unità di elaborazione dati con Pipeline : Data Hazard e Unità di propagazione Ing. Rosa Senatore rsenatore@unisa.it Università degli Studi di Salerno Corso

Il tempo necessario all’esecuzione di un’istruzione con il circuito di propagazione in avanti è pari a :a. Tistr = 1*210 ps = 210 psb. Tistr = 1*450 ps = 450 ps

Di conseguenza, lo speed_up è pari a :

c. Speed_up = 137.5/210 = 0.65 d. Speed_up = 420/450 = 0.93

IF ID EX (no propag

)

EX(propag

completa)

EX(propag solo

da EX/ME

M)

EX (propag solo da

MEM/WB)

MEM WB

a. 100 ps

50 ps 75 ps 110 ps 100 ps 100 ps 100 ps

60 ps

b. 250 ps

300 ps

200 ps 350 ps 320 ps 310 ps 300 ps

200 ps

Dall’ es. 2.3, il tempo per istruzione con propagazione completa è pari a:a. Tistr = 1.25*110 ps = 137.5 psb. Tistr = 1.20*350 ps = 420 ps

Nonostante il circuito aggiuntivo elimini tutti gli hazard, il tempo di esecuzione di un’istruzione aumenta, quindi il processore è più lento.

Page 14: Unità di elaborazione dati con Pipeline : Data Hazard e Unità di propagazione Ing. Rosa Senatore rsenatore@unisa.it Università degli Studi di Salerno Corso

Unità di elaborazione dati con Pipeline : Data Hazard e

Unità di Propagazione

Ing. Rosa Senatore

[email protected]

Università degli Studi di SalernoCorso di Calcolatori Elettronici

Anno 2013/14