Ciao a tutti,
sto facendo un esercizio di preparazione ad un esame. Il testo è:
Si consideri il seguente programma (accanto ad ogni istruzione è riportata la rappresentazione in binario):
PC= 0x00400000
lw $s0, ($s1) 100011 10001 10000 0000000000000000
add $s1, $s1, $s0 000000 10001 10000 10001 00000 100000
addi $s2, $s1, 4 001000 10001 10010 0000000000000100
lw $s0, ($s1) 100011 10001 10000 0000000000000000

Assumendo un’esecuzione in pipeline secondo lo schema riportato nella pagina seguente (è quello visto a lezione) e che quando inizia l’esecuzione, al ciclo di clock 1, i contenuti dei registri sono s0 = 0x00000000, s1 = 0x10000000, s2 = 0x00000000 e la word in memoria all’indirizzo 0x10000000 è 0x00000010, determinare il contenuto dei registri di pipeline alla fine del ciclo 5 riempendo lo schema qui sotto riportato.

A questo link ci sono gli schemi per riempire il contenuto dei registri temporanei di pipeline. Non capisco cosa sono P,I per IF/ID, C,ds,dt,t,s per ID/EX, dt,A,d per EX,MEM e R,A per MEM/WB. Inoltre ho visto la soluzione dell'esercizio e nella parte MEM/WB non c'è scritto nulla ma solo STALLO, perchè? Lo stallo non dovrebbe esserci nella fase EX dell'istruzione add $s1, $s1, $s0? Cioè al terzo ciclo di clock, quando la prima istruzione sta ancora alla fase MEM.
Grazie