Warum stellt x86 32-Bit dar, während x64 64-Bit darstellt? [geschlossen]

97

Meine Frage ist, warum ist die Kurzschrift für 32-Bit x86, wenn die Kurzschrift für 64-Bit x64 ist?

Ich vermute, es hat etwas mit den Tagen von 386s und 486s zu tun, als die 32-Bit-Prozessoren alle auf 86 endeten, aber es gab sicherlich Prozessoren, die nicht auf 86 endeten und immer noch 32-Bit waren?

Kennt jemand die Geschichte davon oder kann er mich auf eine gute Informationsquelle verweisen?

Vielen Dank

Simon Foster
quelle
7
wollte schon immer mal diese +1 für unbewusste neugier wissen!
Gabriel Guimarães
Ich habe mich heute morgen gefragt!
Sean Howat
9
Ich denke, die volle Laufzeit ist nicht x64, sondern x86_64
Kedare
3
Meiner Meinung nach bedeutet "x86" nicht irgendeine generische 32-Bit-Architektur (und hat sie auch nie gemeint). Daniels Antwort unten gibt die Geschichte. Es gibt viele andere 32-Bit-Prozessoren, die gleichzeitig (oder älter als) der 80386 sind, und einige sind noch am Leben und auf dem Markt. Die 68000-Familie (die im ursprünglichen Macintosh verwendet wird) ist zum Beispiel viel älter als die 8086. Der Bekanntheitsgrad des PowerPC war die starke Emulationsunterstützung für x86 und 68K. Der ARM ist 32-Bit, moderner und ebenfalls weit verbreitet.
RBerteig
Ich sehe es nicht als x64, zumindest schreibe ich es nicht so. Ich schreibe es als 32b bzw. 64b.
vol7ron

Antworten:

34

Wahrscheinlich, weil die x86-Linie für einige Zeit zum Synonym für 32-Bit-Prozessoren wurde, während x64 speziell als Bezeichnung für 64-Bit-Anwendungen und Betriebssysteme übernommen wurde, und jetzt gibt es Softwareanwendungen, für deren Ausführung die 64-Bit-Bezeichnung erforderlich ist (wie einige VM-Software).

Mit anderen Worten, es ist aus diesem Grund mehr Marketing als Technologie.

Bart Silverstrim
quelle
20
x86 stammt von den 8086, 286, 386, 486, 586 usw. Es hätte genauso gut "* 86" sein können
gWaldo
6
Und weil x86 mit dem 8086 entstanden ist, konnte ich nie herausfinden, warum es immer mit 32 Bit assoziiert ist. Wie ich mich erinnere, war der 8086 ein 16-Bit-Prozessor, der Doppelregister verwendete, um eine 32-Bit-Speicheradressierung zu ermöglichen. Intel war in jenen Tagen weit davon entfernt, führend auf diesem Gebiet zu sein. Übrigens @gWaldo, Sie haben die 80186 ausgelassen.
John Gardeniers
Zufall. Aus Wikipedia: "Sowohl die Architektur als auch der physische Chip wurden daher von einer kleinen Gruppe von Menschen relativ schnell entwickelt und verwendeten dieselben grundlegenden Mikroarchitekturelemente und Techniken zur physischen Implementierung wie für den etwas älteren 8085 (und für den der 8086 auch funktionieren würde) als Fortsetzung). " Es gab auch eine 8087 und 8089.
Bart Silverstrim
Ja, ich habe den 80186 ausgelassen, weil ich mich ehrlich gesagt nicht erinnern konnte, ob es ein veröffentlichtes Produkt war (und ich fühlte mich zu faul, um es
nachzuschlagen
1
Diese Antwort hat nichts auszusetzen, aber ich denke ehrlich, Daniel sollte die akzeptierte sein, da es viel detaillierter ist.
Massimo
189

Nun, es gab einmal einen Chip mit dem Namen 8086 und eine billigere Version mit dem Namen 8088, die in einem PC mit dem Namen IBM PC verwendet wurde. Eine verbesserte Version dieses Chips wurde hergestellt und 80186 genannt, obwohl dies keine sehr beliebte Version war. Dann wurde jedoch eine verbesserte Version mit der Bezeichnung 80286 hergestellt. Dies war ein sehr beliebter Chip, insbesondere, weil er in einem Computer mit der Bezeichnung IBM PC AT verwendet wurde.

Später erkannte Intel, das die 8086-, 8088-, 80186- und 80286-Chips herstellte und verkaufte, die alle eine 16-Bit-Architektur hatten, die Notwendigkeit, einen 32-Bit-Chip zu entwickeln, um mit ähnlichen Angeboten anderer zu konkurrieren. Um die Vorteile seiner derzeitigen Position zu nutzen, hat er den neuen Chip so gestaltet, dass er Software für die zuvor genannten Chips ausführen kann. Intel nannte diesen neuen Chip natürlich den 80386.

Zu diesem Zeitpunkt gab es viele Computer, die verschiedene Versionen der Intel-Chips verwendeten, und es gab auch Nicht-Intel-Chips, die mit den Intel-Chips kompatibel waren. Also haben die Leute angefangen, sie als 80x86 zu bezeichnen.

Nach einer Weile brachte Intel einen neuen Chip auf den Markt, entschied sich jedoch dafür, den 80er-Chip fallen zu lassen, sodass er zum 486-Chip anstatt zum 80486-Chip wurde. In ähnlicher Weise wurde der 80er-Chip von der Vorderseite des 80x86-Chips aus abgesetzt und nur als x86-Chip bezeichnet .

Nun, ich bin mir ziemlich sicher, dass einige sagen werden, Intel habe ihre Chips x86 zu dieser und jener Zeit gebrandmarkt, was sie auch getan haben, aber es ist mir egal.

Tatsache ist, dass die stetig steigende mittlere Ziffer zu 80x86 führte und x86 daraus entstand - auch wenn 80186 und 80286 keine 32-Bit-Zeichen waren.

Also, als Intel endlich 64-Bit ging, wie nannte es seine neue Architektur? Richtig! IA64! :-) Es wurde auch sozusagen rückwirkend in x86 in IA32 umbenannt. Nur IA64 war nicht kompatibel mit x86, ich meine, IA32, so dass jeder es ignorierte.

Und dann kam AMD, das entschied, dass der Markt eine 64-Bit-CPU haben wollte, die so weit wie möglich mit der x86-Familie kompatibel ist. Als Marketing-Appeal nannten sie es die "x86-64" -Familie, und sie waren äußerst erfolgreich. So sehr, dass Intel widerwillig mit seiner eigenen 64-Bit-CPU auf x86-Basis folgte.

Später wurde der x86-64 einfach als x64 bekannt, weil die Leute faul sind.

Also, als Antwort auf Ihre Frage, weil x64 kürzer als x86-64 ist.

Daniel C. Sobral
quelle
10
AMD hat nie einen 64-Bit-Chip auf den Markt gebracht, um genau zu sein. x64 oder x86_64, mit denen AMD aufwies, wurden dem von Intel erstellten x86-Befehlssatz 64-Bit-Erweiterungen hinzugefügt - daher x86_64 im Gegensatz zu Intels Itanium (IA_64), einem echten 64-Bit-Chip, der nicht mit dem x86-Befehlssatz kompatibel war.
Jeremy Hajek
6
Ich bin außerdem der Meinung, dass Intel mit Markenproblemen konfrontiert war, weil nur Zahlen verwendet wurden und man keine Folge von Zahlen als Marke verwenden kann. Aus diesem Grund wurde aus dem 80586 der Pentium, ein erfundener Name, den sie weiterhin als Marke verwenden könnten.
cdkMoose
3
Zur Verdeutlichung: AMD nannte ihre Erweiterungen AMD64, und Intel nennt ihre (von AMD lizenzierten) Intel64. Es gibt ein paar subtile Unterschiede (sie sind nicht zu 100% kompatibel), sodass die meisten Betriebssystemanbieter normalerweise die gemeinsame Teilmenge verwenden. Auf einer Windows 2008-DVD heißt der Installationsordner AMD64 (im Gegensatz zu I386 auf 32-Bit). Ich weiß nicht, woher x86_64 kommt: Von AMD, da es sich um eine Erweiterung auf x86 handelt, oder von Unix-Anbietern, die einen neutralen Begriff wollten.
Michael Stum
20
@ Jeremy Hajek: AMD64 / x86_64 ist ein echtes 64-Bit-Chip-Design, sein 64-Bit-Modus ist keine Emulation und hat keine Auswirkung auf die Leistung (und tatsächlich ist sein 32-Bit-Modus auch keine Emulation). Der Chip hat einen 64-Bit-Befehlssatz und 64-Bit-Register, was ihn zu einem 64-Bit-Chip macht. Ich weiß nicht, woher Sie den Eindruck haben, dass AMD noch nie einen 64-Bit-Chip vermarktet hat. Es ist jedoch wahr, dass AMD niemals ein 64-Bit-Produkt auf den Markt gebracht hat, das die Kompatibilität mit 32-Bit-Chips aufhebt, wie dies Intel mit seinem IA64 getan hat.
Lie Ryan
1
x64 wird nur in der Windows / Microsoft-Terminologie verwendet. GNU / Linux nennt die Architektur x86-64 oder amd64. (Und ruft 32-Bit-x86 auf i386). Nur (oder zumindest größtenteils) in der Windows-Welt bedeutet x86 speziell 32-Bit-x86. Die meisten Hardware-Experten, die über CPUs sprechen, verstehen unter x86 jede CPU, die mit 8086 abwärtskompatibel ist, unabhängig davon, in welchem ​​Modus sie betrieben wird (normalerweise im 64-Bit-Modus oder manchmal im 32-Bit-Kompatibilitätsmodus unter einem 64-Bit-Kernel) Ich sage, dass "x86 eine effiziente Freigabe / Erwerb sperrenloser Atomics" hat, ich schließe 64-Bit nicht aus.
Peter Cordes
16

Aus Wikipedia : Der Begriff x86 bezieht sich auf eine Familie von Befehlssatzarchitekturen, die auf der Intel 8086-CPU basieren.

bindbn
quelle
3

Technisch gesehen bezieht sich x86 einfach auf eine Prozessorfamilie und den Befehlssatz, den sie alle verwenden. Es sagt eigentlich nichts spezifisches über die Datengröße aus.

x86 wurde als 16-Bit-Befehlssatz für 16-Bit-Prozessoren (8086- und 8088-Prozessoren) gestartet, dann auf einen 32-Bit-Befehlssatz für 32-Bit-Prozessoren (80386 und 80486) erweitert und jetzt auf erweitert Ein 64-Bit-Befehlssatz für 64-Bit-Prozessoren. Früher wurde 80 x 86 geschrieben, um den sich ändernden Wert in der Mitte der Chip-Modellnummern wiederzugeben, aber irgendwo entlang der Linie wurde die 80 in der Front weggelassen, sodass nur x86 übrig blieb.

Beschuldigen Sie den Pentium und seine Nachkommen, dass er die Art und Weise geändert hat, in der Prozessoren genannt und vermarktet wurden, obwohl alle neueren Prozessoren, die den x86-Befehlssatz von Intel verwenden, weiterhin als x86-, i386- oder i686-kompatibel bezeichnet werden (was bedeutet, dass sie alle Erweiterungen des ursprünglichen 8086 verwenden) Befehlssatz).

x64 ist wirklich der seltsame Mann hier draußen. Der Vorname für die 64-Bit-Erweiterung des x86-Sets lautete x86-64. Es wurde später zu AMD64 umbenannt (da AMD ursprünglich die 64-Bit-Erweiterung entwickelte). Intel lizenzierte den 64-Bit-Befehlssatz und nannte seine Version EM64T. Sowohl Befehlssätze als auch die Prozessoren, die sie verwenden, werden weiterhin als x86 betrachtet.

Skorpion
quelle
x86-64 ist wieder ein herstellerneutraler Begriff, der AMD64 und EM64T umfasst. Die führende 80 war immer in der Teilenummer vorhanden , aber nach 80186 wurde es einfacher, 186 vs. 8086 vs. 386 zu sagen. Pentium wurde in seinen Teilenummern nie offiziell 586 oder 80586 genannt ( cpu-world.com/sspec/Pentium). html ); Die Begriffe i586 und i686 basierten lediglich auf dem Feld "CPUID family", in dem angegeben wurde, wie sich CPUs gemeldet haben.
Peter Cordes
3

x86 und x64 sind die Namen der CPU- Architekturen . Zu einer CPU-Architektur gehört mehr als nur die Anzahl der Bits pro Register.

x64 nimmt ist der Name, weil der Sprung auf 64 Bit die größte Änderung in der Architektur von x86 ist, aber dieser Sprung ist weit von der einzigen Änderung entfernt.

Der Name von x86 stammt von dem ehrwürdigen 8086-Prozessor und der ehrwürdigen 8086-Familie, zu der 80286, 80368, 486 usw. gehörten. Als x86 als Name für die Architektur etabliert wurde, galten 32 Bit pro Register als nicht wichtig genug, um ein Gebäude zu rechtfertigen es in den Namen.

Joel Coel
quelle
2

Naja, kam x64nie wirklich von einem Befehlssatz- oder Chiphersteller. Es kam ursprünglich von Windows XP. Die erste 64-Bit-Edition von Windows erhielt den Titel Windows XP x64. Und ich denke, der Begriff ist x64von da an festgefahren.

Der x86Moniker stammt aus dem 32-Bit-Befehlssatz. Alle x86Prozessoren (ohne führende 80) führen also denselben 32-Bit-Befehlssatz aus (und sind daher alle kompatibel). So x86ist ein defacto Name für diesen Satz (und folglich 32 Bit) geworden.

AMDs ursprüngliche 64-Bit-Erweiterung auf dem x86Set wurde aufgerufen AMD64. Intel hat es später lizenziert, aber der Name für den 64-Bit- x86Befehlssatz ist in der Regel immer noch AMD64.

Aber meistens ist es Markenunterscheidung. Die folgenden wichtigen Betriebssystemdistributionen bezeichnen jede 64-Bit-Version als:

Es scheint also, als würde Linux x86_64, BSD amd64und die anderen bevorzugen x64...

Das Wichtigste ist jedoch, dass sie alle für Marketingzwecke dasselbe bedeuten. Auf subtile Weise bedeuten sie verschiedene Dinge ( naja , amd64etwas anderes als x86_64(das x86_64erste ist eine herstellerspezifische Architektur und das zweite die Teilmenge von Architekturen zweier Hersteller), aber === x64), außer für alle Programmierer, die in Baugruppen oder Maschinen schreiben Code macht es wirklich nicht anders ...

ircmaxell
quelle
1
Alle aktuellen x64 ist tatsächlich AMD-64 seit IA64 gestorben.
Overmind
@Overmind: x64 und IA-64 waren immer getrennte Dinge. IA-64 hat nichts mit x86 oder x86-64 zu tun. (Außer, dass frühe IA-64-Implementierungen aus Kompatibilitätsgründen einen x86-Kern enthielten, weil Intel ...)
Peter Cordes
Ja, das ist richtig. Aber "es ist tot, Jim".
Overmind