2016-10-29 1 views
0

Il existe deux mécanismes pour exécuter des instructions.Cycle d'horloge dans la mise en œuvre de pipelines et de cycles à horloge unique

  1. cycle d'horloge unique mise en œuvre
  2. pipelining.

Dans l'architecture MIPS (du livre organisation informatique et conception), l'instruction a 5 étapes. Ainsi, dans la mise en œuvre d'un cycle d'horloge unique, ce qui signifie qu'au cours d'un cycle d'horloge, 5 étapes sont exécutées pour une instruction.

Par exemple, l'instruction de chargement (elle comporte 5 étapes) est exécutée en un cycle d'horloge. Ainsi, d'autres instructions peuvent être exécutées après ce cycle d'horloge. Supposons qu'un cycle d'horloge dure 10 secondes.

Et maintenant, dans le pipeline, plusieurs instructions peuvent se chevaucher. Je suis confus de ce concept par rapport à l'heure d'un cycle d'horloge dans l'exemple ci-dessus.

enter image description here

Ici pour Execute 5 instructions, il a besoin 9 cycles d'horloge. Cela signifie que pour exécuter 5 instructions, il faut 90 secondes. Mais dans la mise en œuvre du cycle d'horloge unique, il suffit de 50 secondes pour exécuter 5 instructions. Pipelining a besoin de plus de cycles d'horloge. (Pas bon) Est-ce que je me trompe ?? ou est-ce que je manque quelque chose ??

Et ici, Alors, pour exécuter la première instruction lw $10, 20($1), il faut 50 secondes ??

+0

* Supposons qu'un cycle d'horloge dure 10 secondes. * 1 nanoseconde serait un choix plus probable (CPU 1GHz). Même un RISC très précoce qui pourrait utiliser un pipeline aussi simple fonctionnerait probablement à 100 MHz. –

+1

Ce qui vous manque, c'est que le pipelining vous permet de synchroniser le design plus rapidement que si une instruction entière devait fetch/decode/execute/writeback en un seul cycle. (Plus généralement, un processeur non piloté comme le 8086 original d'Intel prendrait plusieurs cycles pour chaque instruction, au lieu d'exécuter l'horloge très lentement et de la subdiviser en opérations internes de temps.) –

Répondre

1

Je pense que l'idée fausse que vous avez est que vous considérez qu'une durée d'un cycle d'horloge dans les deux conceptions est la même, ce qui n'est pas le cas. Signalons un cycle d'horloge dans la conception d'un cycle unique comme X et un cycle d'horloge dans la conception de pipeline Y. Dans une conception à cycle unique 5 instructions prendront 5X cycles et dans une conception de pipeline cela prendra 9Y cycles. Nous avons maintenant besoin de trouver une relation entre X et Y. Pensez maintenant à un cas où vous n'avez qu'une seule instruction à exécuter. Dans une conception à cycle unique, cela prendra X cycles et dans une conception de pipeline, cela prendra 5Y. Si les deux sont synchronisés au même débit, X doit être égal à 5Y.

permet maintenant faire un peu de mathématiques de substitution :-)

Cycle unique - 5X

Pipeline - 9Y

Substituer X = 5Y

Cycle unique - 25Y

Pipeline - 9Y

Et voilà. La conception à cycle unique est 2,7 fois plus lente qu'une conception à cycles multiples.

+0

En attente de 5 instructions pour aller du début à la fin la finition de la conception pipelined est un peu irréaliste. La situation stable d'exécution d'un long flux d'instructions est idéalement de «5Y» cycles. (Bien sûr, les stands en raison d'un parallélisme limité et d'une mauvaise prédiction de branche ralentiront les choses, donc 9Y pourrait être réaliste après tout). –

+0

Mais de la façon dont vous l'utilisez, il serait plus raisonnable de s'attendre à ce que le temps CPU de 1 instruction passe par le pipeline pour être à peu près égal au temps CPU non-pipeliné pour une instruction (si vous pipeline le montant minimum nécessaire). Ainsi, le rapport de vitesse d'horloge peut facilement être aussi grand que 5: 1 (par rapport à un design stupide qui est si lent qu'il peut exécuter toutes les instructions dans un seul cycle). –