2017-01-02 1 views
0

Comment dessiner des attentes de dépendance de données lors du dessin d'un diagramme de pipeline en 5 étapes? Est-ce que ma réponse est correcte?Comment dessiner des attentes de dépendance de données lors du dessin d'un diagramme de pipeline en 5 étapes?

Instructions

1. ADD X, Y, Y 
2. ADD Z, Y, X 
3. SUB V, X, W 
4. ADD Z, Z, V 

Voici le diagramme de pipeline

Pipeline diagram

est mon schéma de conduite correct?

+0

Nous avons besoin d'informations supplémentaires: 1) Le transfert est-il présent? C'est-à-dire que les résultats écrits dans l'étape * WR * peuvent être lus immédiatement par l'étape * EX *? 2) L'architecture peut-elle être récupérée lors de l'accès à la mémoire? Architectures Harward ou architectures avec deux ports mémoire peuvent. Enfin, y a-t-il une raison pour que l'étape * ID * de la troisième instruction ne puisse pas commencer au cycle 5? En outre, une telle instruction dépend de * X * et * W * qui sont prêts sur le cycle 7. Dites-nous votre raisonnement afin que nous puissions dire si c'est vrai ou faux, sinon nous sommes réduits à deviner –

+0

Bonjour Mme Bloom, la question a seulement ces informations. Supposons que nous utilisions un pipeline avec une instruction en 5 étapes: IF, ID, EX, MEM et WR. Supposons que le pipeline n'utilise pas le transfert d'opérandes et que les seules sources de blocage de pipeline sont les dangers liés aux données. Dessinez un diagramme de pipeline à plusieurs cycles pour montrer l'exécution des cinq instructions énumérées en (a). Combien de temps faut-il pour terminer la séquence d'instructions? _ – Trang

Répondre

0

Je suppose que le format d'instruction est op <dest>, <src1>, <src2>

Nous pouvons suivre la dépendance explicitement

1. ADD X, Y, Y Depends on: Y  Produces: X 
2. ADD Z, Y, X Depends on: Y, X Produces: Z 
3. SUB V, X, W Depends on: X, W Produces: V 
4. ADD Z, Z, V Depends on: Z, V Produces: Z 

Sachant qu'il n'y a pas opérande expédition, et l'instruction i peut lire un résultat d'une instruction j seulement après j complète l'étape WR.

ADD X, Y, Y dépend de Y mais aucune instruction ne le produit, il est déjà prêt. Ainsi, il peut commencer à s'exécuter juste après avoir été récupéré et décodé.
Il commence sur le cycle 1 et se termine sur le cycle 5

Pipeline until instruction 1

ADD Z, Y, X est tiré par les cheveux dès que l'unité d'extraction est libre, cela arrive au cycle 2. Il est décode alors dès que l'unité de décodage est libre après cela, au cycle 3.
il ne peut pas être exécuté juste après, sur le cycle 4, car cela dépend de Y et X, ce dernier étant produit par instruction 1 et donc disponible uniquement au cycle 6.
Note ici que l'étape qui stagne n'est pas SI mais ID. C'est cette étape qui empêche de déplacer des données sur la suivante. Imaginez qu'il y ait un verrou entre chaque étape.
IF peut commence aller chercher la nouvelle instruction sur le prochain cycle, mais il ne peut pas terminer (c.-à-doit être bloqué trop) jusqu'à ce que ID est autorisé à écrire sa sortie (sinon l'entrée de ID changerait et voilà ce que sa sortie).

Pipeline until instruction 2

SUB V, X, W peuvent être récupérés au cycle 3 parce que l'extraction de l'instruction se termine à 2 cycles 3 et donc l'unité d'extraction est libre.
Cependant, l'unité d'extraction ne peut pas écrire le résultat dans le verrou entre elle-même et l'unité de décodage parce que l'unité de décodage est bloquée et doit conserver sa valeur d'entrée actuelle (ou le décodage changerait).
Le chargement doit donc également être bloqué jusqu'à ce que l'unité de décodage écrit dans son verrou de sortie au cycle 6.
Le décodage peut ainsi démarrer au cycle 6.
L'instruction dépend de X et W, la première est disponible au cycle 6 et la seconde depuis le cycle 1; ainsi le EX peut commence juste après ID, soit au cycle 7.

Pipeline until instruction 3

ADD Z, Z, V peut commencer à être tiré par les cheveux au cycle 6, lorsque l'unité d'extraction avait écrit son résultat au verrou du décodage unité.
L'exécution peut commencer seulement au cycle 10 parce que cette instruction dépend de V qui est produit par l'instruction 3 au cycle 10.
La dépendance à l'égard Z est pas un problème puisque ces données sont disponibles au cycle 9.

Pipeline until instruction 4

+0

Merci Mme Bloom, Dieu merci, je pense que je l'ai bien compris. (Avez-vous vu ma réponse révisée que j'ai postée avant votre réponse?). Votre réponse m'a aidé à confirmer que j'ai bien appris cela correctement. En fait, je n'ai pas de professeurs et tout est fait en étudiant moi-même. Je suis en train de parcourir les livres Stallings, Tanenbaum, Schneider. Bookshear en plus de Youtube et d'autres sites Web). Le plus gros problème que j'ai est de m'assurer que je les ai appris correctement. Merci pour votre soutien. – Trang

+0

@Trang De rien. Il semble qu'il y ait les [solutions des exercices de Stalling] (https://www.pearsonhighered.com/product/Stallings-Solutions-for-Computer-Organization-and-Architecture-8th-Edition/9780136088592.html) en ligne. Je ne sais pas exactement ce qu'ils sont vraiment. Peut-être que cela peut vous aider à vérifier vos réponses. –