2017-06-12 1 views
0

Sur un pipeline statique à deux numéros pour MIPS, puis-je utiliser les chemins de réacheminement avec deux instructions exécutées dans le même cycle d'horloge?MIPS - Transmission en cas de problème multiple statique

Par exemple:

1. add $t0, $t0, $t1 2. sw $t0, 0($t2)

Puis-je exécuter ces deux instructions sur le même cycle d'horloge? Le sw peut utiliser la valeur résultante du add lorsqu'il doit exécuter l'étape MEM.

Est-ce correct?

+1

Si vous pouvez obtenir les bonnes données au bon moment et sans insérer de bulles (bien que cela n'affecterait que les performances), je ne vois aucun problème à implémenter ce chemin de transfert. –

Répondre

2

Si vous considérez un pipeline typique à 5 étages (IF, ID, EX, MEM, WB), la sortie du ADD sera disponible à l'interface EX -> MEM. Pour l'étape MEM de l'instruction SW, il faut l'adresse mémoire, qui est 0 + ($t2) et les données qui sont censées être dans $t0. Toutefois $t0 n'a pas encore été mis à jour, car le pipeline n'a pas atteint WB étape. Cependant, la valeur qui est supposée être écrite à $t0 est disponible à l'étape EX->MEM. Par conséquent, vous pouvez utiliser le transfert dans ce scénario pour exécuter l'instruction SW sans attendre ADD pour terminer.