![]() |
Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Architettura degli elaboratori e delle reti (http://www.dsy.it/forum/forumdisplay.php?forumid=210)
-- [Borghese] - risoluzione II compitino 03/04 (http://www.dsy.it/forum/showthread.php?threadid=19897)
[Architettura - Borghese] - risoluzione II compitino 03/04
Ciao, mi servirebbe un chiarimento sul 1° punto dell'esercizio n° 4 del II compitino del 2003/2004
Riporto il testo:
4. Con riferimento alla CPU riportata qui a fianco specificare il contenuto dei
registri ed il valore dei segnali di controllo al termine (prima della commutazione
del clock) del terzo stadio di esecuzione dell’istruzione lw: [8]
400: add $t0, $t1, $t2
404: addi $t1, $t2, 100
408: lw $t4, 0($t7)
412: beq $t5, $t6, -32
416: add $t0, $t1, $t2
Tenere conto che i codici operativi sono: add = 0, addi = 8, beq = 4, lw = 35, che il
campo funct della add = 32 e che $t0 = $7.
Come si deve modificare la CPU a destra per potere mettere la pipe-line in stallo?
[4].
Io pensavo così:
-Sapendo che gli stadi sono 5 (IF,ID,EX,MEM,WB), il termine del 3° stadio indica lo stadio EX
-Quindi i registri conterranno le istruzioni :
- IF/ID: 416: add $t0, $t1, $t2
- ID/EX: 412: beq $t5, $t6, -32
- EX/MEM: 408:lw $t4, 0($t7)
- MEM/WB: 404: addi $t1, $t2, 100
Lasciando perdere i particolari di cosa è contenuto, è giusta la mia soluzione, e quindi nei registri (prima della commutazione del clock) metto lo stato master del registro? Oppure devo mettere lo stato slave? O entrambi?
non vorrei dire una cazzata, ma i 5 stadi della pipeline (IF/ID/EX/MEM/WB) nn contengono solo 1 ustruzione??
nn era una cosa del genere:
IF ID EX MEM WB (1 istruzione)
.... IF ID EX MEM WB (2 istruzione)
........ IF ID EX MEM WB (3 istruzione)
anke io nn riesco a capire bene questo esercizio.. se qualcuno sa qualcosa di + ci fa un favore!
Nella fase di esecuzione della lw
IF/ID dovrebbe contenere la fetch di add $t0,$t1,$t2 ( quindi il pc+4 e l'istruzione )
ID/EX la decodifica di beq $t5, $t6, -32 ( i registri rt rs ed rd, il pc+4 e i vari segnali di controllo )
EX/MEM l'esecuzione di lw $t4, 0($t1) ( il pc+4 + offset*4, lo zero, il risultato della alu, il registro destinazione )
MEM/WB l'accesso alla memoria di addi $t1,$t2,100 ( il risultato della alu, il dato eventuale letto dalla mdr, ancora il registor destinazione )
e poi non so bene dove mettere il writeback di add $t0,$t1, $t2
Cmq e' qualcosa del genere... O almeno credo. Conferme ?
Ma poi col suddetto esercizio venivano forniti i codici operativi delle varie istruzioni, a cosa servirebbero alla fine ? Visto che il codice operativo e' contenuto unicamente nella fase di fetch, e quindi nel nostro caso ci servirebbe solo quello della ADD
Il segnale di writeback per la add viene settato nella fase di decodifica. per adesso non si prende in considerazione.
I codici delle operazioni sono necessari, perchè l'istruzione viene comunque passata ai registri degli stadi successivi.
Originally posted by grilmar
Il segnale di writeback per la add viene settato nella fase di decodifica. per adesso non si prende in considerazione.
I codici delle operazioni sono necessari, perchè l'istruzione viene comunque passata ai registri degli stadi successivi.
All times are GMT. The time now is 08:45. | Show all 6 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.