1 / 15

Systèmes Pipeline – opérations multicycles

Systèmes Pipeline – opérations multicycles. Nous avons vu jusqu’à maintenant comment faire un pipeline simple, avec une seule unité d’exécution. Comment peut-on ajouter de multiples unités d’exécution, certaines utilisant plus d’un coup d’horloge pour faire leurs calculs?.

Download Presentation

Systèmes Pipeline – opérations multicycles

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Systèmes Pipeline – opérations multicycles Nous avons vu jusqu’à maintenant comment faire un pipeline simple, avec une seule unité d’exécution. Comment peut-on ajouter de multiples unités d’exécution, certaines utilisant plus d’un coup d’horloge pour faire leurs calculs?

  2. DLX plus complet: plus d’unités d’exécution • Pour améliorer le DLX, nous allons maintenant considérer l’ajout de plusieurs unités d’exécution à l’ALU initial: • Unité d’addition point flottant • Unité de multiplication d’entiers • Unité de multiplication point flottant • Unite de division

  3. Le DLX avec des unités d’exécution multiples

  4. Pipeline: Comment utiliser des opérations multicycles? • Jusqu’à maintenant, nous n’avons considéré que des opérations sur les entiers dans l’ALU. Qu’arrive-t-il lorsqu’on incorpore des opérations à point flottant? • Ou bien on allonge le cycle de l’horloge • Ou bien on augmente la taille du circuit • On bien on permet d’intégrer des opérations multi-cycles dans le pipeline

  5. Le DLX avec des unité d’exécution point flottant

  6. Pipeline: intégration des opérations multicycles • But: permettre à un opérateur point flottant d’utiliser plus d’un cycle d’horloge pour effectuer son travail • Nous supposerons que l’unité point flottant peut utiliser un nombre arbitraire de cycles (le nombre exact dépend du type d’opération). Nous supposerons de plus qu’il peut y avoir plusieurs unités point flottant en parallèle

  7. Pipeline: intégration des opérations multicycles (2) • Nous définissons 2 termes: la latence et l’intervalle d’émission • Latence: durée de l’opération totale par rapport à la durée d’une opération ALU sur des entiers • Intervalle d’émission (initiation interval): délai entre l’émission de deux opérations du même type

  8. Pipeline: unités multicycles • Soient les 5 opérations suivantes: ALU entier, accès à la mémoire, addition FP, multiplication FP/entier, division FP, avec les paramètres suivants: Quelles sont les implications de ce tableau?

  9. Pipeline: implications multicycles • Toutes les opérations peuvent commencer une instruction par coup d’horloge, excepté la division. Celle-ci peut donc causer des problèmes structuraux (structural hazards). Dans ce cas, la seule solution est de faire des « stalls » • Puisque les opérations sont de durée variable, il se peut que deux opérations atteignent l’étage d’écriture en même temps • Il peut y avoir des problèmes de dépendance de données de type WAW • Les instructions peuvent être complétées dans un ordre différent que l’ordre d’émission • Puisque la latence est plus longue, il y aura plus de problèmes de type RAW

  10. Pipeline multicycle: solution à l’écriture multiple • Il est possible que deux instructions ou plus se terminent en même temps, et tentent d’écrire leurs résultats simultanément. Quoi faire? • On pourrait ajouter des registres à plusieurs ports d’entrée. On ajouterait beaucoup de matériel pour un cas relativement peu fréquent. Et il faudrait de toutes façons gérer l’écriture simultanée au même registre • Une meilleure solution est de détecter l’utilisation simultanée (on peut le faire dès l’étage ID), et réserver l’utilisation de l’étage d’écriture. Comment? En utilisant un registre à décalage pour réserver l’étage MEM. De cette façon, on peut faire un « stall » de l’opération problématique au niveau du ID.

  11. Pipeline multicycles: sommaire du contrôle • Vérification de problèmes de structure (seulement avec le diviseur) • Vérification de problèmes de type RAW • Vérification de problèmes de type WAW

  12. Pipeline: quoi d’autre? • Que peut-on faire pour augmenter l’efficacité des méthodes de pipeline? • Dans le MIPS 4000, on a utilisé plus d’étages de pipeline (8 au lieu de 5). En répartissant les opérations sur plus d’étages, il est possible d’augmenter la vitesse de l’horloge. • Dans le R4000, on a ajouté des étages pour l’accès à la mémoire. On appelle parfois cette technique le « superpipelining »

  13. Le MIPS R4000 • Dans le MIPS R4000, les étages sont les suivants: • IF / IS / RF / EX / DF / DS / TC / WB • IF: première partie du « instruction fetch » (sélection du PC, début d’accès) • ID: deuxième partie du « instruction fetch » (lecture) • RF: instruction decode, register fetch, cache hit? • EX: unité d’exécution • DF: data fetch • DS: deuxième partie de l’accès à la mémoire (lecture) • TC: cache hit? • WB: write back

  14. Le MIPS R4000 (2)

  15. La suite chez SGI

More Related