Почему x86 представляет 32 бита, а x64 представляет 64 бита? [закрыто]


97

Мой вопрос: почему сокращение для 32-битной x86, когда сокращение для 64-битной является x64?

Я предполагаю, что это как-то связано со временами 386-х и 486-х годов, когда все 32-разрядные процессоры закончились в 86, но наверняка были процессоры, которые не заканчивались в 86 и были еще 32-разрядными?

Кто-нибудь знает историю этого или может направить меня к хорошему источнику информации?

Спасибо


7
всегда хотел знать это +1 за бессознательное любопытство!
Габриэль Гимарайнш

Я просто спросил себя сегодня утром!
Шон Ховат,

9
Я думаю, что полный термин - не x64, а x86_64
Kedare

3
ИМХО, «x86» не означает (и никогда не имел в виду) просто какую-то общую 32-битную архитектуру. Ответ Даниила ниже дает историю. Есть много других 32-битных процессоров, которые одновременно (или старше) 80386, и многие из них все еще живы и здоровы на рынке сегодня. Например, семейство 68000 (используемое в оригинальном Macintosh) намного старше, чем 8086. PowerPC претендовал на славу, когда новинка была сильной поддержкой эмуляции для x86 и 68K. ARM 32-битный, более современный и довольно распространенный.
RBerteig

Я не вижу его как x64, по крайней мере, я так не пишу. Я пишу это как 32b и 64b, соответственно.
Vol7ron

Ответы:


34

Вероятно потому, что линия x86 стала синонимом 32-битных процессоров в течение достаточно долгого времени, в то время как x64 была определенно обозначением для 64-битных, так как приложения и операционные системы были перенесены, и теперь есть программные приложения, которым требуется 64-битное обозначение для запуска (как некоторые программы для виртуальных машин).

Другими словами, это скорее маркетинг, чем технология.


20
x86 происходит от 8086, 286, 386, 486, 586 и т. д. Это могло бы быть так же легко, как «* 86»
gWaldo

6
И поскольку x86 возникла в 8086 году, я так и не смог понять, почему он всегда связан с 32 битами. Насколько я помню, 8086 был 16-битным процессором, который использовал двойные регистры для обеспечения 32-битной адресации памяти. В те дни Intel была далеко не лидером в этой области. КСТАТИ @gWaldo, вы пропустили 80186.
Джон Гарденье

Совпадение. Из Википедии: «Поэтому и небольшая группа людей довольно быстро разработала и архитектуру, и физический чип, используя те же базовые элементы микроархитектуры и методы физической реализации, которые использовались для чуть более старого 8085 (и для которого 8086 также будет функционировать»). как продолжение). " Были также 8087 и 8089.
Барт Сильверстрим

Да, я пропустил 80186, потому что честно не мог вспомнить, был ли это выпущенный продукт (и мне было лень его искать ...)
gWaldo

1
В этом ответе нет ничего неправильного, но я, честно говоря, считаю, что Даниэль должен быть принят, так как он гораздо более подробный.
Массимо

190

Ну, когда-то был чип под названием 8086 с более дешевой версией 8088, которая использовалась в персональном компьютере под названием IBM PC. Была сделана улучшенная версия этого чипа под названием 80186, хотя она не была очень популярной. Тем не менее, была сделана улучшенная улучшенная версия под названием 80286. Теперь это был очень популярный чип, в частности потому, что он использовался в компьютере под названием IBM PC AT.

Позже Intel, которая создала и продала чипы 8086, 8088, 80186 и 80286, каждый из которых имел 16-битную архитектуру, увидела необходимость создания 32-битного чипа, чтобы конкурировать с аналогичными предложениями других. Чтобы воспользоваться своим нынешним положением, он сделал новый чип способным работать с программным обеспечением, созданным для ранее упомянутых чипов. Естественно, Intel назвала этот новый чип 80386.

К тому времени было много компьютеров, использующих различные версии чипов Intel, и были также чипы не-Intel, совместимые с чипами Intel. Люди стали называть их 80х86.

Через некоторое время Intel выпустила новый чип, но она решила отбросить 80, поэтому она стала 486 вместо 80486. Аналогично, люди отбрасывали «80» с фронта «80x86» и называли этот материал просто x86. ,

Теперь я уверен, что некоторые придут и скажут, что Intel выпускала свои чипы x86 в то же самое время, что и они, но мне все равно.

Дело в том, что постоянно увеличивающаяся средняя цифра порождает 80x86, и x86 происходит от этого - даже если 80186 и 80286 не были 32 битами.

Итак, когда Intel наконец перешла на 64-битную версию, как она назвала свою новую архитектуру? Правильно! IA64! :-) Он также задним числом переименовал x86 в IA32, так сказать. Только IA64 не был совместим с x86, я имею в виду IA32, поэтому все игнорировали его.

А затем появилась AMD, которая решила, что рынок хочет 64-битный процессор, который, насколько это возможно, совместим с семейством x86. В качестве маркетингового обращения они назвали это семейством «x86-64», и они были чрезвычайно успешными. Настолько, что Intel неохотно последовал за своим 64-битным процессором на базе x86.

Позже, поскольку люди ленивы, x86-64 стал известен просто как x64.

Итак, в ответ на ваш вопрос, потому что x64 короче, чем x86-64.


10
Не для того, чтобы выбрать, а чтобы быть точным, AMD никогда не продавала 64-битный чип. В x64 или x86_64, которые выпустила AMD, были добавлены 64-битные расширения к набору инструкций x86, созданному Intel - следовательно, x86_64 в отличие от Intel Itanium (IA_64), который был настоящим 64-битным чипом, не совместимым с набором инструкций x86.
Джереми Хайек

6
Кроме того, я считаю, что Intel столкнулась с проблемами с товарными знаками, потому что они просто использовали цифры, и вы не можете пометить товарным знаком последовательность чисел, поэтому то, что было бы 80586, стало Pentium, выдуманным именем, которое они могли бы продолжать торговать товарным знаком.
cdkMoose

3
Для пояснения: AMD назвала свои расширения AMD64, а Intel называет их (которые они лицензировали у AMD) Intel64. Есть несколько тонких различий (они не совместимы на 100%), поэтому большинство поставщиков ОС обычно используют общий поднабор. На DVD-диске Windows 2008 папка установки фактически называется AMD64 (в отличие от I386 в 32-разрядной версии). Я не знаю, откуда взялся x86_64: от AMD, поскольку это расширение к x86, или от Unix-Vendors, которые хотели получить нейтральный термин.
Майкл Стум

20
@Jeremy Hajek: AMD64 / x86_64 - это настоящий 64-битный чип, его 64-битный режим не является эмуляцией и не влияет на производительность (и на самом деле его 32-битный режим также не является эмуляцией). Чип имеет 64-битный набор команд и 64-битные регистры, что делает его 64-битным чипом. Я не знаю, откуда у вас сложилось впечатление, что AMD никогда не продавала 64-битный чип. Правда, AMD никогда не продавала 64-битную версию, которая нарушает совместимость с 32-битной микросхемой, как Intel сделала с IA64.
Ли Райан

1
x64 используется только в терминологии Windows / Microsoft. GNU / Linux называет архитектуру x86-64 или amd64. (И вызывает 32-битный x86 i386). Только (или, по крайней мере, в основном) в мире Windows x86 означает 32-битный x86. Большинство аппаратных специалистов, говорящих о процессорах, понимают, что под x86 подразумевается любой ЦП, который обратно совместим с 8086, независимо от того, в каком режиме он работает (обычно это 64-битный длинный режим или иногда 32-битный режим сжатия под 64-битным ядром.) Если Я говорю, что «у x86 есть эффективный выпуск / получение атомных соединений без блокировки», я не исключаю 64-битную.
Питер Кордес,

16

Из Википедии : Термин x86 относится к семейству архитектур наборов команд, основанных на процессоре Intel 8086.


3

Технически, x86 просто означает семейство процессоров и набор инструкций, которые они все используют. Это на самом деле не говорит ничего конкретного о размерах данных.

x86 начинался как 16-битный набор инструкций для 16-битных процессоров (процессоры 8086 и 8088), затем был расширен до 32-битного набора инструкций для 32-битных процессоров (80386 и 80486), а теперь расширен до 64-битный набор команд для 64-битных процессоров. Раньше он был записан как 80x86, чтобы отразить изменяющееся значение в середине номера модели чипа, но где-то вдоль линии 80 спереди было отброшено, оставив только x86.

Обвините Pentium и его потомков в том, что они изменили способ, которым процессоры были названы и представлены на рынке, хотя все более новые процессоры, использующие набор команд Intel x86, все еще упоминаются как совместимые с x86, i386 или i686 (что означает, что все они используют расширения исходного 8086). Набор инструкций).

x64 действительно странный человек здесь. Первое имя для 64-битного расширения набора x86 называлось x86-64. Позже он был назван AMD64 (потому что именно AMD изначально предложила 64-битное расширение). Intel лицензировала 64-битный набор инструкций и назвала их версию EM64T. Оба набора команд и процессоры, которые их используют, все еще считаются x86.


x86-64 снова стал независимым от поставщиков термином, включающим AMD64 и EM64T. Первые 80 всегда были в номере детали, но после 80186 стало легче, скажем, 186 против 8086 против 386. Pentium никогда официально не назывался 586 или 80586 в своих номерах ( cpu-world.com/sspec/Pentium. html ); Термины i586 и i686 были просто основаны на поле «семейства» CPUID того, как процессоры сообщали о себе.
Питер Кордес

3

x86 и x64 - это имена архитектур процессора . В архитектуре процессора есть нечто большее, чем просто количество бит в регистре.

x64 берет имя, потому что переход на 64 бита является самым большим изменением в архитектуре по сравнению с x86, но этот переход далеко не единственное изменение.

x86 получил свое имя от почтенного процессора 8086 и семейства, которое включало 80286, 80368, 486 и т. д. В то время, когда x86 стал называться архитектурой, 32 бита на регистр не считались достаточно важной функцией, чтобы оправдать построение это во имя.


2

Ну, на x64самом деле никогда не пришли от набора инструкций или производителя чипа. Первоначально он пришел из Windows XP. Первая 64-битная версия Windows получила название Windows XP x64. И я думаю, что термин x64застрял оттуда.

x86Кличка происходит от набора команд 32 - битных. Таким образом, все x86процессоры (без ведущего 80) выполняют один и тот же набор 32-битных команд (и, следовательно, все они совместимы). Таким образом x86, стало именем де-факто для этого набора (и, следовательно, 32-разрядный).

x86Было названо оригинальное 64-битное расширение AMD AMD64. Позже Intel лицензировала его, но даже для 64-битных x86инструкций это название обычно AMD64.

Но в основном это отличительная черта бренда. Вот что несколько разных основных дистрибутивов операционной системы называют каждым 64-битным вариантом:

В общем, кажется, что Linux предпочитает x86_64, BSD предпочитает amd64и другие x64...

Но важно отметить, что все они означают одно и то же для маркетинговых целей. В тонкости они действительно означают разные вещи (ну, это amd64означает что-то отличное от x86_64(первая - это архитектура, специфичная для поставщика, а вторая - подмножество архитектур двух поставщиков), но x86_64=== x64), но для всех, кроме программистов, пишущих на ассемблере или машине код это действительно не делает по-другому ...


1
Все текущие x64 на самом деле AMD-64 с момента смерти IA64.
Сверхразум

@ Overmind: x64 и IA-64 всегда были разными вещами. IA-64 совершенно не связан с x86 или x86-64. (За исключением того, что ранние реализации IA-64 включали ядро ​​x86 по соображениям совместимости, потому что Intel ...)
Питер Кордес

Да это верно. Но "он мертв, Джим".
Сверхразум
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.