Différence entre Instruction, opérations et micro-opération (uop) [fermé]


3

J'essaie de comprendre les termes complexes liés à la performance des processeurs.

La performance de l'ordinateur est mesurée en FLOPS, ce qui est l'abréviation de FLOP par seconde . FLOPslui-même représente les opérations en virgule flottante .

Maintenant, pourquoi les opérations en virgule flottante sont-elles considérées pour les performances d’un ordinateur? Qu'en est-il des opérations entières? Existe-t-il une source en ligne (citation officielle) qui expliquerait cette tendance? Google ne m'a rien donné avec mes recherches.

Maintenant, que signifie exactement opération dans FLOP? Est -ce que , comme cela signifie une opération mathématique MUL, ADD, DIVetc?

Dans ce cas, quelle serait une instruction ? Si une instruction ressemble à quelque chose comme ADDPD, ADDSDetc., comme je peux le voir ici ( http://docs.oracle.com/cd/E26502_01/html/E28388/epmpv.html ), une instruction peut entraîner de nombreuses opérations internes. S'agirait-il de micro-opérations ou d' ops ?

Je n'ai pas trouvé l'explication de la micro-opération sur Wikipedia utile. Celui qui explique cela clairement ici devra probablement aussi améliorer l'article de Wikipedia :)

Selon le livre de Hennessy / Patterson sur l'architecture des ordinateurs (5e édition, page 233), l' ARM Cortex-A8 (RISC) est capable d'exécuter deux instructions par horloge. Cela signifie-t-il que le processeur peut exécuter, par exemple, un ADDPDet un ADDSD(total = 2 instructions) en un cycle?

Cette source ( http://en.community.dell.com/techcenter/high-performance-computing/w/wiki/2329 ) indique ce qui suit:

La plupart des microprocesseurs actuels peuvent effectuer quatre (4) FLOP par cycle d'horloge, soit 4 FLOP par Hz.

Je crois que l'auteur a tort. Il impliquait probablement 4 instructions par cycle , se limitant aux processeurs basés sur CISC (Intel par exemple). En effet, certaines instructions telles que FMA sur Haswell peuvent améliorer les performances car le processeur peut traiter plus d'opérations par cycle. En d'autres termes, une FMA instruction se traduit par deux opérations . Ai-je raison?

IPC signifie Instruction par Cycle. Quelles instructions sont référées ici? Les instructions retirées par le processeur? Avec un compteur matériel, je peux compter le nombre de cycles de la CPU et le nombre de INST_RETIRED.ANY. Serait-ce la bonne façon de calculer l'IPC?

Merci beaucoup pour vos réponses et vos commentaires. J'espère que ma question aidera beaucoup d'autres âmes confuses :)


2
Bienvenue sur SuperUser. Pouvez-vous s'il vous plaît être plus précis sur votre question? Vous avez également posé plus d'une question ici et il est donc difficile de répondre à cette question. S'il vous plaît voir l'aide de ce site.
Uwe Plonus

Comprenez-vous la différence entre une opération ADD portant sur un entier et une opération ADD portant sur une virgule flottante? Pour comprendre une réponse à cette question, vous devez comprendre la différence.
Ramhound le

@Ramhound, les ADD seraient différents puisque deux ALU différentes les calculaient. Sur Sandy Bridge / Ivy Bridge, par exemple, il existe deux ALU distinctes sous le port 0 qui effectuent ces calculs. Cependant, lorsque nous parlons de performance, nous parlons de FLOPS. Les opérations entières ne sont pas prises en compte. Donc, c'est déroutant. Je pense que toutes les sous-questions se rapportent à la plus grande question qui concerne la différence entre les trois termes. Je reformulerai toute la question afin d'obtenir de meilleures réponses et moins de
votes négatifs

@shailenTJ - Pour être honnête, la question me laisse perplexe. Vous comprenez moins bien la différence de traitement d’un nombre entier et d’un nombre à virgule flottante.
Ramhound le

Réponses:


1

Maintenant, pourquoi les opérations en virgule flottante sont-elles considérées pour les performances d’un ordinateur? Qu'en est-il des opérations entières?

Les opérations en virgule flottante ne sont que l’un des nombreux indicateurs utilisés au cours des années pour évaluer les performances des ordinateurs. Mesurer les opérations de PF est considéré comme plus applicable pour certaines applications du monde réel (telles que les simulations météorologiques) que les opérations de nombre entier. Si vous évaluiez des ordinateurs pour une application de base de données, vous ignorez probablement les spécifications FLOPS et vous concentrez sur l'IPS (instructions par seconde) et les performances d'E / S.

Maintenant, que signifie exactement opération dans FLOP? Est-ce que cela signifie une opération mathématique comme MUL, ADD, DIV, etc.?

L '"opération" est l'exécution de "l'instruction", qui est un code machine (c'est-à-dire une valeur binaire), ou un calcul effectué par la FPU, Floating Point Unit. La FPU (la plus ancienne) s'exécute généralement de manière asynchrone avec la CPU et l'ALU, afin de ne pas entraver l'exécution du programme qui ne dépend pas du résultat de la FP.

Notez qu'un ordinateur (vers 1980) qui ne possédait pas de FPU pourrait être mis à niveau avec un périphérique FPU. La bibliothèque FP de routines logicielles implémentant des opérations FP fondamentales (additionner, soustraire, multiplier, diviser, racine carrée, etc.) serait remplacée par une bibliothèque invoquant des instructions d'E / S pour accéder au périphérique FPU. Une interruption de la FPU avertirait la CPU que l'opération FP était terminée.

Les premiers PC étaient de construction similaire. Le PC IBM d'origine utilisait le microprocesseur Intel 8088 qui ne possédait pas de capacité FP matérielle. Mais un coprocesseur mathématique 8087 pourrait être installé, de sorte que les instructions de PF puissent être exécutées par le matériel au lieu d'être redirigées vers des routines logicielles. Finalement, Intel a intégré le co-processeur mathématique dans le package de processeur pour le i486

Dans ce cas, quelle serait une instruction?

"Instruction" ne devrait pas être une entité ambiguë. C'est un code machine ou une mnémomique du processeur.

alors une instruction peut conduire à de nombreuses opérations internes. S'agirait-il de micro-opérations ou d'ops?

Apparemment, vous parlez de microprogrammes.
(Auparavant, une société d’informatique prenait la micro- programmation d’une itération plus basse: jusqu’au niveau de la nano- programmation. Les produits étaient destinés à l’émulation de CPU.) La
microprogrammation n’est pas vraiment pertinente pour la performance des programmes d’application. Autrement dit, vous ne pouvez généralement pas réécrire / améliorer la microprogrammation comme vous le feriez avec un processeur à nanoprogrammes.

Cela signifie-t-il que le processeur peut exécuter, par exemple, un ADDPD et un ADDSD (total = 2 instructions) en un cycle?

Sorte de. L'exécution de plus d'une instruction par cycle d'horloge nécessite un pipeline d '"unités d'exécution". Pensez à une chaîne de montage de fabrication (de véhicule). À chaque station, une tâche spécifique est effectuée. À la fin de la chaîne de montage (pipeline), un seul véhicule (instruction) est terminé à la fois. La simultanéité est échelonnée plutôt que synchronisée.

Quelles instructions sont référées ici?

Chaque instruction est un code machine.

En d'autres termes, une instruction FMA se traduit par deux opérations. Ai-je raison?

Non, une instruction est corrélée à une opération.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.