Bonjour à tous,

Je suis en train de reprendre mes études et j'ai attaqué un master en informatique embarquée...hélas, venant du coté obscur (a.k.a : le développement web) j'ai de grosses lacunes en architecture.

Or me voici donc face à un problème concernant des bouts de code d'assembleurs (très courts) et je dois dire comment se comporte le pipeline.

Voici le détail de l'exercice sur lequel je bloque (ensuite j'indique aussi mes idées de réponses...

On a donc un pipeline en 5 étapes.
IF : on fetch les instructions
ID : on décode l'instruction et on lit les registres
X : on exécute ce qu'il y a à faire
M : on accède à la mémoire si nécessaire (load ou store)
W : on écrit dans le registre ce qui a été calculé


Il faut donc que j'indique comment les instruction des différents morceaux de code d'assembleur ci-dessous sont exécutées dans le cadre de ce pipeline.

Voici les bouts de code

Code 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
CMP R1, #0 ; compare R1 to zero
BEQ label1 ; branch to label1 if equal (assume R1 ≠ 0)
ADD R2, R1 ; add R1 to R2
SUB R3, R4  ; subtract R4 from R3
Code 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
ADD R0, R1 ; add R1 to R0
SUB R2, R0 ; subtract R0 from R2
Code 3
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
LOAD R1, 20(R2) ; load the value at Mem(20+[R2]) into R1
SUB R0, R1 ; subtract R1 from R0
STORE R0, 20(R3) ; store R0 into Mem(20+[R3])
Il faut décrire l’exécution de ces bouts de code avec un pipeline SANS forwarding et avec un pipeline AVEC forwarding. (forwarding = on peut utiliser un résultat directement après son exécution)

A cette adresse vous trouverez les résultats de mon travail :
http://www.scribd.com/doc/66268398

C'est un fichier Excel...Nettement plus facile de présenter mon travail dans un fichier Excel quand dans un tableau sur le SDZ.
Si ça pose problème dites le moi et je mettrai tout ça dans le forum.

Je vous remercie par avance si vous pouvez m'aider