Microprocessore Pipelined e DLX

« Older   Newer »
  Share  
Megghi
CAT_IMG Posted on 14/6/2012, 23:23




Scusate il disturbo ma ho un problema ...
Siccome sto studiando architettura, non riesco però a trovare nulla sui microprocessori pipelined e DLX...

Ho visto che nelle simulazioni Bogliolo fa due domande per simulazione ma che io però non ho capito per niente, qualcuno me le può spiegare?
Perché le risposte sono 2 nella domanda 2 e 3 della prima simulazione?

E poi scusate, ma dove posso studiarli questi due argomenti?
Grazie.
 
Top
catyabde
CAT_IMG Posted on 19/6/2012, 12:01




La LATENZA è una caratteristica funzionale della componente, quindi impossibile da migliorare: infatti rappresenta quanti cicli di clock sono necessari -da quanto riceve in input gli operandi- per produrre il risultato.
Invece il REPETITION TIME è una caratteristica funzionale dell'insieme di componenti usate, e rappresenta dopo quanti cicli di clock possiamo eseguire un istruzione dello stesso tipo. In pratica:

-con una singola componente: abbiamo RT = LATENZA in assenza di pipeline, oppure RT = 1 se c'è il pipeling
-con più componenti: se sono pipelined il RT è sempre = 1, in caso contrario è RT= LATENZA/ n° di componenti

Infatti considerando 4 componenti con latenza 4 che non lavorano in pipeline,avviando le prime 4 operazioni abbiamo:

|
| |
| | |
| | | |

quindi per l'esecuzione delle istruzioni successive, ad ogni ciclo di clock si libererà un componente, e quindi ad ogni ciclo di clock possiamo avviare una nuova istruzione!

Controlla se così ti torna :)
 
Top
SpartanY38
CAT_IMG Posted on 19/6/2012, 12:14




Se riesci a spiegare così bene anche la altre tipologie di esercizi (quelli con formule) sei il top!!
 
Top
Megghi
CAT_IMG Posted on 19/6/2012, 14:17




Penso di aver capito.... Sei stata esaustiva :)

Posso chiederti due o tre cose?
Primo punto il quesito 3 che ho capito ancora meno...

Secondo se nella domanda 5, che fa sempre uguale a quanto vedo, le risposte sono "solo" il common data bus, il reorder buffer e il register file o c'è qualcosa altra sorgente che carica gli operandi...

Infine il quesito 9... Negli appunti non ho la formula ma non sono sicura di aver capito né la formula né il procedimento..

Grazie Catia.
 
Top
catyabde
CAT_IMG Posted on 19/6/2012, 16:30




Per il terzo esercizio invece devi considerare le fasi di esecuzioni, in presenza di pipelining:

ISTR1 if id ex mem wb
ISTR2 if id ex mem wb

Considerando che normalmente gli operandi vengono caricati nella fase di ID e il risultato viene scritto nella fase di WB, se abbiamo una DIPENDENZA DI DATI (l'operando della seconda istruzione è il risultato della prima) allora l'esecusione della seconda sarà:

ISTR2 if - - - id ex mem wb

e quindi ci saranno tre stalli!

Se invece c'è il DATA FORWARDING, allora i dati verranno campionati tramite un bus subito dopo l'uscita dell'ALU (alla fine della fase EX) e quindi saranno già disponibili per l'istruzione 2:

ISTR2 if - id ex mem wb

e quindi possiamo ridurre gli stalli ad uno solo!

La 5 è teorica quindi non saprei cosa dirti, spero di aver tempo per studiarla domani :D

La 9 invece non penso ci sia proprio una formula, devi andare di ragionamento..
Partendo dal presupposto che conosci il funzionamento della cache (copiare alcune parti della ram), sai che devi leggere 1000 parole di un'array ma -invece di copiare dalla ram parola per parola- ogni volta copi l'intero blocco di 8 parole. Essendo la lettura sequenziale, sarà:

1 parola-> non presente (copio anche le 7 parole successive nella ram)
2-3-4-5-6-7 parola -> già caricate in cache (caricate insieme alla prima parola)
8 parola-> non presente (copio anche le 7 parole successive nella ram)

e così via .. quindi ogni 8 parole, devi copiare un blocco di otto parole in cache (o in altre parole, hai una possibilità su 8 di avere un cache miss) e quindi il miss-rate = 1/8= 0.125= 12.5%

Per la seconda lettura dell'array invece, avendo una politica LRU e leggendo nuovamente l'array dalla prima all'ultima parola, ad ogni nuovo blocco di parole caricato in cache, sarà necessario sovrascrivere un vecchio blocco .. e quindi non abbiamo alcun miglioramente, il miss-rate rimane il 12.5%­

@Spartan, almeno mi faccio un bel ripasso :)
ma quali intendi tu?
 
Top
SpartanY38
CAT_IMG Posted on 19/6/2012, 16:58




Il quesito 8 e 10 ;), e cmq sono Ale XD
 
Top
Megghi
CAT_IMG Posted on 19/6/2012, 23:46




Ma quindi Catia se ho capito...

La prima cosa che devo guardare è se c'è o no il data forwarding..
Se non c'è il risultato ( e quindi li stalli ) è uguale o proporzionale al numero di registri che ci sono in consegna ( in questo caso r1-r2-r3 quindi 3 stalli dopo l'if.. )..
Se invece c'è il risultato è sempre uno.. Anche se ho 30 registri...

Ho capito male?
 
Top
6 replies since 14/6/2012, 23:23   465 views
  Share