Pourquoi x86 représente-t-il 32 bits alors que x64 représente 64 bits? [fermé]

97

Ma question est la suivante: pourquoi le raccourci pour 32 bits x86 lorsque le raccourci pour 64 bits est x64?

Je suppose que cela a quelque chose à voir avec l'époque des 386 et 486, lorsque les processeurs 32 bits se terminaient tous en 86, mais il y avait sûrement des processeurs qui ne s'étaient pas terminés en 86 et étaient toujours en 32 bits?

Est-ce que quelqu'un connaît l'histoire de cela ou peut me diriger vers une bonne source d'informations?

Merci

Simon Foster
la source
7
J'ai toujours voulu connaître ce +1 pour une curiosité inconsciente!
Gabriel Guimarães
Je viens de me demander ceci ce matin!
Sean Howat
9
Je pense que le terme complet n'est pas x64 mais x86_64
Kedare
3
IMHO, "x86" ne signifie pas (et n'a jamais voulu dire) n'importe quelle architecture générique 32 bits. La réponse de Daniel ci-dessous donne l'historique. Il existe de nombreux autres processeurs 32 bits qui sont à la fois contemporains (ou plus anciens) que le 80386, et bon nombre d’entre eux sont encore bien vivants sur le marché. La famille 68000 (utilisée dans le Macintosh d'origine) est beaucoup plus ancienne que la 8086, par exemple. La prétention du PowerPC à la gloire de la nouveauté était un puissant support d'émulation pour x86 et 68K. L'ARM est 32 bits, plus moderne et assez commun aussi.
RBerteig
Je ne le vois pas comme x64, du moins je ne l'écris pas comme ça. Je l'écris comme 32b et 64b, respectivement.
vol7ron

Réponses:

34

Probablement parce que la ligne x86 est depuis longtemps synonyme de processeurs 32 bits, alors que x64 désignait spécifiquement la version 64 bits au fur et à mesure de la transition des applications et des systèmes d’exploitation. (comme certains logiciels de VM).

En d'autres termes, c'est plus du marketing que de la technologie pour la raison.

Bart Silverstrim
la source
20
x86 vient des 8086, 286, 386, 486, 586, etc. Cela aurait aussi facilement pu être "* 86"
gWaldo
6
Et comme x86 est issu du 8086, je n’ai jamais pu comprendre pourquoi il est toujours associé à 32 bits. Si je me souviens bien, le 8086 était un processeur 16 bits qui utilisait des doubles registres pour permettre un adressage mémoire 32 bits. Intel était loin d’être un leader dans ce domaine à cette époque. BTW @gWaldo, vous avez oublié le 80186.
John Gardeniers
Coïncidence. D'après Wikipedia, "l'architecture et la puce physique ont donc été développées assez rapidement par un petit groupe de personnes, utilisant les mêmes éléments de base de la microarchitecture et les mêmes techniques de mise en œuvre que ceux utilisés pour le 8085 un peu plus ancien (et pour lequel le 8086 fonctionnerait également comme suite). " Il y avait aussi un 8087 et un 8089.
Bart Silverstrim
Oui, j'ai oublié le 80186 parce que, honnêtement, je ne me souvenais pas s'il s'agissait d'un produit sorti (et me sentais trop paresseux pour le regarder ...)
gWaldo
1
Cette réponse n'a rien d'anormal, mais honnêtement, je pense que Daniel devrait être celui qui a été accepté, car il est beaucoup plus détaillé.
Massimo
190

Eh bien, il était une fois une puce appelée 8086, avec une version moins chère appelée 8088 qui était utilisée dans un ordinateur appelé IBM PC. Une version améliorée de cette puce a été faite et appelée 80186, bien que ce ne soit pas une version très populaire. Cependant, une version améliorée améliorée a ensuite été mise au point et appelée 80286. Maintenant, c'était une puce très populaire, en particulier parce qu'elle était utilisée sur un ordinateur appelé IBM PC AT.

Plus tard, Intel, qui a créé et vendu les puces 8086, 8088, 80186 et 80286, toutes dotées d’une architecture 16 bits, a compris la nécessité de créer une puce 32 bits pour concurrencer les offres similaires proposées par d’autres. Pour tirer parti de sa position actuelle, il a permis à la nouvelle puce d’exécuter un logiciel conçu pour les puces susmentionnées. Naturellement, Intel a appelé cette nouvelle puce le 80386.

À ce moment-là, de nombreux ordinateurs utilisaient diverses versions des puces Intel, ainsi que des puces non-Intel compatibles avec celles d'Intel. Alors les gens ont commencé à les appeler 80x86.

Après un certain temps, Intel a lancé une nouvelle puce, mais il a décidé de laisser tomber le 80. Il est donc devenu le 486 au lieu de 80486. De même, les gens laissaient tomber le "80" de l'avant du "80x86", et appelaient ce genre de choses juste x86. .

Maintenant, je suis à peu près sûr que certains vont venir et dire qu'Intel a marqué leurs puces x86 à telle heure, ce qu'ils ont fait, mais ça m'est égal.

Le fait est que le chiffre du milieu, en augmentation constante, a donné naissance à 80x86, et que x86 en est issu - même si 80186 et 80286 n’étaient pas de 32 bits.

Ainsi, une fois qu'Intel a finalement adopté la version 64 bits, comment a-t-il appelé sa nouvelle architecture? Droite! IA64! :-) Il a également renommé rétroactivement le x86 en IA32, pour ainsi dire. Seul IA64 n'était pas compatible avec x86, je veux dire, IA32, donc tout le monde l'a ignoré.

Et ensuite, AMD a décidé que le marché souhaitait un processeur 64 bits compatible, dans la mesure du possible, avec la famille x86. En tant qu’appel marketing, ils l’appellent la famille "x86-64" et remportent un franc succès. À tel point que Intel a fini par suivre à contrecœur avec son propre processeur 64 bits basé sur x86.

Plus tard, parce que les gens sont paresseux, le x86-64 est devenu simplement le x64.

Donc, pour répondre à votre question, car x64 est plus court que x86-64.

Daniel C. Sobral
la source
10
Pour ne pas dénigrer, mais pour être tout à fait exact, AMD n’a jamais commercialisé de puce 64 bits. Les versions x64 ou x86_64 proposées par AMD ont été ajoutées au jeu d'instructions x86 créé par Intel, d'où le nom x86_64 par opposition au processeur Itanium (IA_64) d'Intel, véritable puce 64 bits non compatible avec le jeu d'instructions x86.
Jeremy Hajek
6
De plus, je pense qu'Intel a eu des problèmes de marque parce qu'ils utilisaient simplement des chiffres et que vous ne pouviez pas enregistrer de séquence de chiffres. C'est pourquoi ce qui aurait été le 80586 est devenu le Pentium, un nom inventé auquel ils pourraient continuer.
cdkMoose
3
Pour clarifier: AMD a appelé ses extensions AMD64 et Intel appelle les leurs (qu’il a licenciées à AMD) Intel64. Il existe quelques différences subtiles (elles ne sont pas compatibles à 100%), de sorte que la plupart des fournisseurs de systèmes d'exploitation utilisent généralement le sous-ensemble commun. Sur un DVD Windows 2008, le dossier d'installation s'appelle en réalité AMD64 (par opposition à I386 sur 32 bits). Je ne sais pas d'où vient x86_64: d'AMD puisqu'il s'agit d'une extension de x86 ou d'Unix-Vendors qui souhaitaient un terme neutre.
Michael Stum
20
@ Jeremy Hajek: AMD64 / x86_64 est une véritable conception de puce 64 bits, son mode 64 bits n'est pas une émulation et n'a aucun impact sur les performances (et en fait, son mode 32 bits n'est pas non plus une émulation). La puce possède un jeu d'instructions de 64 bits et des registres de 64 bits, ce qui en fait une puce de 64 bits. Je ne sais pas d'où vous avez l'impression qu'AMD n'a jamais commercialisé une puce 64 bits. Il est vrai cependant qu'AMD n'a jamais commercialisé un 64 bits qui rompt la compatibilité avec les puces 32 bits, comme le faisait Intel avec son IA64.
Lie Ryan
1
x64 n'est utilisé que dans la terminologie Windows / Microsoft. GNU / Linux appelle l'architecture x86-64 ou amd64. (Et appelle 32 bits x86 i386). C'est uniquement (ou du moins dans la plupart des cas) dans le monde Windows que x86 signifie spécifiquement x86 32 bits. La plupart des personnes qui parlent de processeur prennent en compte x86 tout processeur à rétro-compatibilité avec 8086, quel que soit le mode de fonctionnement (normalement, mode long 64 bits, ou parfois mode compat 32 bits avec un noyau 64 bits). Je dis que "x86 a une libération / acquisition efficace d'atomics sans verrouillage", je n'exclus pas le 64 bits.
Peter Cordes
16

De Wikipedia : Le terme x86 fait référence à une famille d'architectures de jeux d'instructions basées sur le processeur Intel 8086.

bindbn
la source
3

Techniquement, x86 fait simplement référence à une famille de processeurs et au jeu d’instructions qu’ils utilisent tous. En fait, il ne dit rien de spécifique sur la taille des données.

x86 a commencé avec un jeu d’instructions 16 bits pour les processeurs 16 bits (les processeurs 8086 et 8088), puis a été étendu à un jeu d’instructions 32 bits pour les processeurs 32 bits (80386 et 80486). un jeu d'instructions 64 bits pour les processeurs 64 bits. Auparavant, il était écrit en 80x86 pour refléter la valeur changeante située au centre des numéros de modèle de puce, mais quelque part sur la ligne, la valeur de 80 à l'avant a été supprimée, ne laissant que x86.

Blame le Pentium et sa progéniture pour avoir modifié la façon dont les processeurs ont été nommés et commercialisés, bien que tous les processeurs plus récents utilisant le jeu d'instructions x86 d'Intel soient toujours appelés compatibles x86, i386 ou i686 (ce qui signifie qu'ils utilisent tous des extensions du système 8086 d'origine. jeu d'instructions).

x64 est vraiment l'homme étrange ici. Le premier nom de l'extension 64 bits de l'ensemble x86 s'appelait x86-64. Il a ensuite été nommé AMD64 (car AMD était à l'origine de l'extension 64 bits à l'origine). Intel a concédé une licence pour le jeu d'instructions 64 bits et a nommé leur version EM64T. Les deux jeux d'instructions et les processeurs qui les utilisent sont toujours considérés comme x86.

Scorpion
la source
x86-64 est redevenu un terme indépendant du vendeur qui inclut AMD64 et EM64T. Les 80 premiers étaient toujours présents dans le numéro de pièce, mais après 80186, il devint plus facile de dire 186, 8086 contre 386. Pentium ne fut jamais appelé officiellement 586 ou 80586 dans ses références ( cpu-world.com/sspec/Pentium. html ); les termes i586 et i686 étaient juste basés sur le champ "famille" de CPUID de la façon dont les CPU se présentaient.
Peter Cordes
3

x86 et x64 sont les noms des architectures cpu . L’architecture cpu ne se limite pas au nombre de bits par registre.

x64 prend son nom car le saut à 64 bits est le plus gros changement d'architecture par rapport à x86, mais ce saut est loin d'être le seul changement.

x86 tire son nom du vénérable processeur 8086 et de sa famille, qui comprenait 80286, 80368, 486, etc. Au moment où x86 est devenu le nom de l'architecture, 32 bits par registre n'étaient pas considérés comme une fonctionnalité suffisamment importante pour justifier la construction. dans le nom.

Joel Coel
la source
2

Eh bien, x64jamais vraiment venu d'un fabricant d'instructions ou de puces. Il venait à l'origine de Windows XP. La première édition 64 bits de Windows a reçu le titre Windows XP x64. Et je suppose que le terme est x64coincé à partir de là.

Le x86surnom vient du jeu d'instructions 32 bits. Ainsi, tous les x86processeurs (sans interligne 80) exécutent le même jeu d'instructions de 32 bits (et sont donc tous compatibles). Ainsi x86est devenu un nom de fait pour cet ensemble (et donc 32 bits).

L'extension 64 bits d'origine d'AMD sur l' x86ensemble a été appelée AMD64. Intel a par la suite octroyé une licence, mais le nom du jeu d’ x86instructions 64 bits est toujours nommé AMD64.

Mais c'est surtout la distinction de la marque. Voici ce que différentes distributions majeures du système d'exploitation appellent chaque version 64 bits:

Donc, fondamentalement, il semble que Linux préfère x86_64, BSD préfère amd64et les autres x64...

Mais le point important à noter est qu’ils signifient tous la même chose à des fins de marketing. En subtilité, ils signifient différentes choses (bien, amd64signifie autre chose que x86_64(la première étant une architecture spécifique à un fournisseur, et la dernière un sous-ensemble d'architectures de deux vendeurs), mais x86_64=== x64), mais pour quiconque à l'exception des programmeurs écrivant en assembleur ou en machine. code ça ne fait pas vraiment un différent ...

ircmaxell
la source
1
Tous les x64 actuels sont en réalité AMD-64 depuis la mort de IA64.
Overmind
@ Overmind: x64 et IA-64 étaient toujours des choses séparées. IA-64 n'a aucun lien avec x86 ou x86-64. (Sauf que les premières implémentations de l'IA-64 incluaient un noyau x86 pour des raisons de compatibilité, car Intel ...)
Peter Cordes
Oui c'est correct. Mais "c'est mort, Jim".
Overmind