web-dev-qa-db-fra.com

Pourquoi ne pouvez-vous pas avoir à la fois des instructions élevées par cycle et une vitesse d'horloge élevée?

Le mythe Megahertz est devenu une tactique promotionnelle en raison de différences entre le processeur Intel 8086 du PC et le processeur Rockwell 6502 d'Apple. Le 8086 a couru à 4,77 MHz tandis que les 6502 ont couru à 1 MHz. Cependant, les instructions sur les 6502 ont besoin de moins de cycles; Tant de moins, en fait, il a couru plus vite que le 8086. Pourquoi certaines instructions ont-elles besoin de moins de cycles? Et pourquoi ne pouvez pas les instructions du 6502, nécessitant moins de cycles, être combinée à un processeur de cyclisme rapide du 8086?

L'article de Wikipedia pour les instructions par cycle (IPC) dit

Facteurs régissant la CIB
Un niveau donné de instructions par seconde peut être obtenu avec une vitesse élevée IPC et une vitesse d'horloge basse ... ou d'une vitesse basse IPC et haute vitesse.

Pourquoi ne pouvez-vous pas avoir à la fois des instructions élevées par cycle et une vitesse d'horloge élevée?

Peut-être que cela a à voir avec quel cycle d'horloge est? Wikipedia mentionne la synchronisation des circuits? Je ne suis pas sûr de ce que cela veut dire.

Ou peut-être que cela a à voir avec la façon dont un pipeline fonctionne? Je ne sais pas pourquoi les instructions d'un pipeline court sont différentes des instructions dans un long pipeline.

Toute perspicacité serait géniale! J'essaie juste de comprendre l'architecture derrière le mythe. Merci!

Les références:

instruction par cycle vs augmentation du nombre de cycle

http://fr.wikipedia.org/wiki/instructions_per_cycle

http://fr.wikipedia.org/wiki/clock_cycle

37
dobus

J'imagine énormément cela, mais le point important à retenir est que ces termes comparent des pommes aux oranges. Un "cycle" n'est pas une unité de mesure unifiée unique qui est la même dans tous les processeurs, comme une "seconde" est une mesure unifiée du temps. Au lieu de cela, un cycle représente une certaine unité de travail, qui est défini quelque peu arbitrairement mais délimitée par la complexité de la conception du pipeline et bien sûr par la physique.

Dans de nombreux cas, beaucoup de travail dans un cycle pourraient vous permettre d'effacer tout le pipeline. En cas de succès, cela signifie que votre prochain cycle sera optimisé, car vous devez remplir à nouveau le pipeline, ce qui peut prendre un certain temps.

Je pourrais concevoir un processeur très simpliste qui traite une étape d'une instruction RISC chaque cycle, et s'il s'agissait de la base de mon processeur, je pouvais probablement obtenir des cycles très très élevés par seconde en raison de la complexité réduite de ce qui constitue "un cycle".

Les détails entrent dans beaucoup de physique et d'ingénierie électrique que je ne comprends pas vraiment, mais rappelez-vous que le taux d'horloge n'est pas obtenu en ajoutant naïvement une tension d'entrée au processeur et en espérant le meilleur. À tout le moins, le profil thermique est une autre préoccupation nécessaire.

8
allquixotic

Combien de temps votre ordinateur prend pour terminer une tâche particulière ne dépend pas de la vitesse d'horloge de l'ordinateur ... Cela dépend de la manière dont les unités de calcul sont conçues et conçues.

La vitesse d'horloge est en fait une décision arbitraire (plus ou moins) faite par le concepteur de la CPU, parfois pour de bonnes raisons (efficacité), parfois pour les pauvres (publicité).

Disons qu'une CPU donnée a un mélange d'instructions qui prennent entre 1 et 100 nanosecondes (NS) pour terminer. Vous pouvez définir la vitesse d'horloge de telle sorte que 1 "Tick" soit de 100 ns (10 MHz), ce qui signifie que chaque instruction finirait exactement dans 1 tick. Toutefois, si les temps d'exécution d'instructions sont répartis uniformément, cela signifie que vos unités de calculaient 50% de l'heure (la vitesse moyenne de l'exécution serait de 50ns, laissant les autres 50ns de la tickette inactuelle). Si, d'autre part, vous définissez votre tique pour être 10ns, les instructions vont entre 1 et 10 ticks, mais l'unité ne serait jamais inactive plus de 9ns avant le début des instructions suivantes et que l'inactif moyen serait de 5ns. Ce qui signifie que votre temps d'inactivité moyen est inférieur à 50% (moyenne de 50 ns sur 100) à 9% (car le temps d'exécution moyen est de 55 ns (exécution moyenne de 50ns + inacte moyenne de 5N)).

Au cours du développement, une CPU sera conçue pour fonctionner à une certaine vitesse, en fonction de la quantité de travail que la CPU est en réalité capable de réaliser. Si vous soulevez ou abaissez la vitesse de l'horloge, vous ne modifiez pas la quantité de travail que la CPU peut accomplir, vous ne faites que jouer avec le ratio d'efficacité.

(Et avant de pleurer sur l'overclocking des CPU: cela vous donne deux avantages qui entraînent des gains de vitesse réels: les instructions d'exécution rapide (qui prennent moins de 1 cycle) se retrouvent avec des temps d'exécution plus rapides et toutes les instructions ont moins de temps d'inactivité. Les deux D'après celles-ci peuvent en effet augmenter la quantité de travail que votre ordinateur peut effectuer, mais vous constaterez que l'overclocking d'une CPU de X% n'est pas toujours égal à X% d'augmentation du travail effectué lorsque vous devez le comparer.)

Tl; dr

Un processeur peut accomplir x travail dans une seconde. Si vous utilisez la vitesse d'horloge H et iPC, nous avons i = x/h. Changer H ne change pas x, mais cela affecte inversement I.

1
Benjamin Chambers

On ne peut pas avoir à la fois des instructions élevées par cycle et une vitesse d'horloge élevée, car les exigences sont contradictoires.

On peut montrer que, dans une première approximation, le IPC dépend de la complexité (a) de la conception comme

IPC = un sqrt (a)

aTTENDU QUE la fréquence maximale (F) réalisable par les échelles de conception comme [1]

F = 1/{B + C SQRT (A)}

avec des paramètres A, B et C.

Ainsi, augmenter la complexité du Muarch augmente le IPC au détriment de la réduction de la fréquence de travail, alors que la réduction de la complexité augmente la fréquence à la charge de la CIB. Ceci correspond aux deux cas extrêmes mentionnés dans le Article Wikipedia, mais la Wikipedia ne mentionne pas les noms: Braineiac et Speed-Demon.

  • Conception de la certitude: High IPC et basse fréquence
  • Démon de vitesse: haute fréquence et faible IPC.

[1] Certains auteurs affirment que l'expression de la fréquence est "1/{b + c a}", mais dans les deux cas, la complexité croissante réduit la fréquence maximale réalisable.

0
juanrga