web-dev-qa-db-fra.com

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

Ma question est pourquoi le raccourci pour 32 bits x86 alors que le raccourci pour 64 bits est x64?

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

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

104
Simon Foster

Probablement parce que la ligne x86 est devenue synonyme de processeurs 32 bits pendant un certain temps, alors que x64 était spécifiquement une désignation pour 64 bits lors de la transition des applications et des systèmes d'exploitation, et il existe maintenant des applications logicielles qui nécessitent la désignation 64 bits pour fonctionner. (comme certains VM).

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

36
Bart Silverstrim

Eh bien, il y avait une fois une puce appelée 8086, avec une version moins chère appelée 8088 qui était utilisée dans un ordinateur personnel appelé IBM PC. Une version améliorée de cette puce a été créée 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é faite, et appelée 80286. Maintenant, c'était une puce très populaire, en particulier parce qu'elle était utilisée dans un ordinateur appelé IBM PC AT.

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

À ce moment-là, il y avait beaucoup d'ordinateurs utilisant différentes versions des puces Intel, et il y avait aussi des puces non Intel qui étaient compatibles avec celles d'Intel. Les gens ont donc 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 abandonnaient le "80" de l'avant du "80x86", et appelaient ce truc juste x86 .

Maintenant, je suis sûr que certains viendront et diront qu'Intel a marqué leurs puces x86 à tel ou tel moment, ce qu'ils ont fait, mais je m'en fiche.

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

Ainsi, une fois qu'Intel est finalement passé à 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 puis est venu AMD, qui a décidé que le marché voulait un processeur 64 bits compatible, dans la mesure du possible, avec la famille x86. En tant qu'attrait marketing, ils l'ont appelé la famille "x86-64", et ils ont connu un immense succès. Tant et si bien qu'Intel a fini à 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, en réponse à votre question, car x64 est plus court que x86-64.

195
Daniel C. Sobral

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

16
bindbn

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

x86 a commencé comme 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), et a maintenant été étendu à un jeu d'instructions 64 bits pour les processeurs 64 bits. Auparavant, il était écrit en 80x86 pour refléter la valeur changeante au milieu des numéros de modèle de puce, mais quelque part le long de la ligne, le 80 à l'avant a été supprimé, ne laissant que x86.

Blâme le Pentium et sa progéniture pour avoir changé la façon dont les processeurs ont été nommés et commercialisés, bien que tous les nouveaux processeurs 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 8086 original jeu d'instructions).

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

3
ScoRpion

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

x64 prend son nom car le saut à 64 bits est le plus grand changement dans l'architecture de x86, mais ce saut est loin du seulement changer.

x86 tire son nom du vénérable processeur et famille 8086, qui comprenait 80286, 80368, 486, etc. dans le nom.

3
Joel Coel

Bien, x64 n'est jamais vraiment venu d'un jeu d'instructions ou d'un fabricant de puces. Il provenait à 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 x64 coincé à partir de là.

Le x86 moniker provient du jeu d'instructions 32 bits. Donc tout x86 processeurs (sans leader 80) exécutent le même jeu d'instructions 32 bits (et sont donc tous compatibles). Donc x86 est devenu un nom de facto pour cet ensemble (et donc 32 bits).

Extension 64 bits d'origine d'AMD sur le x86 l'ensemble a été appelé AMD64. Intel l'a autorisé plus tard, mais même le nom du 64 bits x86 le jeu d'instructions est généralement AMD64.

Mais c'est surtout une distinction de marque. Voici ce que quelques distributions principales du système d'exploitation appellent chaque version 64 bits:

Donc, en gros, il semble que Linux préfère x86_64, BSD préfère AMD64 et les autres x64...

Mais la grande chose à noter est qu'ils signifient tous la même chose à des fins de marketing. Dans la subtilité, ils signifient des choses différentes (enfin, AMD64 signifie quelque chose de différent de x86_64 (la première étant une architecture spécifique au fournisseur, et la seconde le sous-ensemble de deux architectures de fournisseurs), mais x86_64 === x64), mais pour quiconque, sauf les programmeurs qui écrivent en assembleur ou en code machine, cela ne change vraiment rien ...

2
ircmaxell