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


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


86
2017-10-06 14:48


origine


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
Je pense que le terme complet n'est pas x64 mais x86_64 - Kedare
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 célébrité 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:


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, et qu’il existe désormais des applications logicielles qui nécessitent la désignation 64 bits pour fonctionner. (comme certains logiciels de VM).

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


32
2017-10-06 14:53



x86 vient des 8086, 286, 386, 486, 586, etc. Il aurait aussi facilement pu être "* 86" - gWaldo
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 laissé le 80186. - John Gardeniers
Coïncidence. D'après Wikipédia, "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 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 rechercher ...) - gWaldo
Cette réponse n'a rien d'anormal, mais honnêtement, je pense que Daniel devrait être celui qui est accepté, car il est beaucoup plus détaillé. - Massimo


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é à se référer à eux comme 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.

Alors, une fois que Intel est enfin passé au 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 vif 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.


172
2017-10-06 15:23



+1 pour une bonne explication. - Gup3rSuR4c
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ù x86_64 par opposition à Itanium (IA_64) d’Intel, véritable puce 64 bits non compatible avec le jeu d’instructions x86. - Jeremy Hajek
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
Pour clarifier: AMD a appelé leurs extensions AMD64 et Intel appelle les leurs (qu’elles ont 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 est en réalité appelé 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♦
@ 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 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


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


14
2017-10-06 14:52





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é 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 de 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, le nombre de 80 à l'avant a été supprimé, 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 logiciel 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.


3
2018-06-07 05:50



x86-64 est redevenu un terme indépendant du vendeur qui inclut AMD64 et EM64T. Les 80 premiers ont toujours été présents dans le numéro de pièce, mais après 80186, il est devenu plus facile de dire 186, 8086 contre 386. Pentium n'a jamais été appelé officiellement 586 ou 80586 dans ses numéros de pièce (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


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

x64 prend son nom car le saut à 64 bits est la le plus gros changer dans l'architecture de x86, mais ce saut est loin de la seulement 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.


3
2017-10-07 18:28





Bien, x64 jamais 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 x64 coincé à partir de là.

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

L'extension 64 bits d'origine d'AMD sur le x86 l'ensemble a été appelé AMD64. Intel a ensuite octroyé une licence, mais le nom du 64 bits est toujours x86 jeu d'instructions est généralement 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 amd64 et 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 (enfin, amd64 signifie quelque chose de différent de x86_64 (le premier étant une architecture spécifique au vendeur, et le second le sous-ensemble de deux architectures de vendeurs), mais x86_64 === x64), mais pour quiconque excepté les programmeurs écrivant en assembleur ou en code machine, cela ne change pas vraiment la ...


2
2017-10-07 12:50



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 d'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