2010-03-01 2 views
6

Si je comprends ces deux articles, l'architecture Intel, à son niveau le plus bas, est passé à l'aide d'instructions RISC, au lieu de l'instruction traditionnelle CISC établi que Intel est connu pour:Est-ce que les puces x86/x64 utilisent encore la microprogrammation?

http://www.hardwaresecrets.com/article/235/4

http://www.tomshardware.com/reviews/intel,264-6.html

Si c'est le cas, alors les puces x86/x64 sont-elles encore microprogrammées ou utilisent-elles un contrôle câblé comme les puces RISC traditionnelles? Je vais deviner qu'il est encore microprogrammé mais voulait vérifier.

+0

Cela dépend de la puce en particulier. x86/x64 est une énorme classe de puces. –

+0

@Adam, l'article se réfère à des puces qui sont de sixième génération et au-dessus des processeurs Intel, ce qui signifie Pentium Pro et plus tard, selon ce: http://e-articles.info/e/a/title/Intel-P6- (686) -Sixth-Generation-Processors/ –

Répondre

4

Le microcode existe depuis longtemps, si c'est ce dont vous parlez. Donc, je ne sais pas à quoi sert l'article HardwareSecrets, à moins qu'Intel ne construise maintenant des processeurs RISC sur les processeurs CISC.

Même l'article HardwareSecrets les appelle des micro-instructions. Pomme de terre, potahto.

http://en.wikipedia.org/wiki/Microcode

+0

Oui, je voulais dire microcode. – Sajee

2

Sur les processeurs x86 modernes, la plupart des instructions sans execute microcode (*), mais certains plus complexes ou rarement exécutées ne pas utiliser microcode. (*) À ne pas confondre avec les micro-ops - dans les processeurs x86 en panne, les instructions x86 sont généralement décodées en un ou plusieurs micro-ops qui sont ensuite mis en attente d'exécution (sans microcode!) Dans le pipeline d'exécution en panne.

Il est également intéressant de noter que les processeurs x86 modernes ont la possibilité de patcher/mettre à jour le microcode afin de corriger les errata sur le terrain.

3

J'ai trouvé la réponse. Référence à «ORGANISATION DES SYSTÈMES D'ORDINATEUR» par Andrew Tanenbaum, page 54 à page 59. Les puces Intel sont basées sur l'ICCA et toutes les puces basées sur l'ICCA ont un interpréteur (microcode) pour décomposer les instructions complexes en petites étapes. Auparavant, toutes les puces contenaient un microprogramme. il n'y avait pas de terme CISC, jusqu'au moment où le concept RISC a été introduit par David Patterson et Carlo Sequin en 1980. RISC est l'abréviation de computer set d'instructions réduites. En ce moment, la taille de l'ensemble d'instructions n'a pas d'importance. Ce qui compte dans la conception de RISC, c'est la simplicité des instructions, mais le nom «réduit». La conception RISC consiste à émettre rapidement des instructions de plus en plus simples. combien de temps une instruction a pris moins de temps que combien pourrait être démarré par seconde. En outre, l'avantage d'utiliser une mémoire ROM d'unité centrale plus rapide par rapport à la mémoire principale plus lente de la conception CISC, est passé par l'apparition d'une mémoire principale également plus rapide. RISC est définitivement meilleur que la performance du CISC. alors pourquoi le fabricant de puces Intel n'est pas passé à RISC? pour deux raisons. Tout d'abord, il y a la question de la rétrocompatibilité et les milliards de dollars que les entreprises ont investis dans les logiciels pour la ligne Intel. deuxièmement, Intel pourrait utiliser l'idée de RISC dans ses puces CISC. à partir de 486, les processeurs intel contiennent un cœur RISC qui exécute les instructions les plus simples et les plus courantes dans un seul cycle de chemin de données, tout en interprétant les instructions plus complexes de la manière habituelle de l'ICCA. Je suppose que Intel est passé à l'approche hybride pour garder le visage/la notoriété/la bonne volonté du marché en ligne avec les avancées technologiques. Je prendrais des puces Intel comme CISC seulement.

+0

LA réponse? Il y a beaucoup de battage médiatique sur la façon dont le RISC est plus rapide ou meilleur que le CISC et je suppose que Intel voulait faire en sorte que ses puces apparaissent RISC pour tirer profit du battage médiatique. Pourtant, les puces x86 ont été capables d'exécuter certaines instructions dans un cycle d'horloge (ou plus rapide) pendant un certain temps, de sorte que la «fonction» RISC n'est pas exclusive à RISC. Les instructions RISC ne s'exécutent pas toutes dans un cycle d'horloge non plus. Il a fallu AMD pour étendre x86 dans l'autre territoire RISC - un fichier de registre plus grand - en ajoutant les registres R8 à R15 aux registres x86 traditionnels. En outre, même les processeurs RISC prétendent être "rétrocompatibles". –

1

Les UC x86 actuelles utilisent encore le microcode car le jeu d'instructions x86 est très complexe par rapport aux processeurs RISC classiques. Ceci est vrai au moins pour certaines instructions.

En interne, les instructions complexes sont divisées en instructions simples de type RISC qui sont ensuite traitées par un noyau de type RISC sophistiqué. Les instructions de type RISC sont parfois réorganisées ou exécutées en parallèle.

0

Des exemples typiques d'instructions microcodées sont la division et la multiplication et c'est le cas pour CISC et RISC. Il ne vaut pas la peine de mettre en œuvre la division dans le matériel en considérant comment (relativement) rarement il est utilisé. Les multiplications sont beaucoup plus simples à mettre en œuvre mais sont également micro-codées bien sûr pas au même degré. Selon ce document Instruction Latencies and Throughput for ... x86 Processors les latences pour mul et div pour le processeur K10 sont 5 et 77 ou 15.4X. Pour intel SBR (?) Les valeurs correspondantes sont 4 et 92 ou 23X. Un aperçu supplémentaire de leur complexité relative est leur débit respectif: sur K10 une multiplication tous les deux cycles d'horloge peut être maintenue (2.5 - 5/2 - en fonctionnement simultanément) mais ne supporte qu'une division tous les 77 cycles (comme la latence de division) .

D'autres exemples sont sh? D (shift? Double) et bs? (numérisation de bit?).

Questions connexes