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


97

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

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

Хтось знає історію цього чи може направити мене на хороше джерело інформації?

Дякую


7
завжди хотів дізнатися цей +1 за непристойну цікавість!
Габріель Гімараес

Я просто запитав себе цього сьогодні вранці!
Шон Хоат

9
Я думаю, що повний термін не x64, а x86_64
Kedare

3
IMHO, "x86" не означає (і ніколи не означав) просто будь-яку загальну 32-бітну архітектуру. Відповідь Даниїла нижче дає історію. Є багато інших 32-розрядних процесорів, які одночасно (або старші за) 80386, і досить багато ще живих і здорових сьогодні на ринку. Сім'я 68000 (використовується в оригіналі Macintosh), набагато старша, наприклад, 8086. Претензія PowerPC на славу, коли нова була сильною підтримкою емуляції як для x86, так і для 68K. АРМ - 32-бітний, більш сучасний, а також досить поширений.
RBerteig

Я не бачу це як x64, принаймні, я не пишу це так. Я записую це як 32b і 64b відповідно.
vol7ron

Відповіді:


34

Можливо, через те, що лінія x86 стала синонімом 32-бітових процесорів протягом досить тривалого часу, в той час як x64 був специфічним позначенням для 64 біт, оскільки додатки та операційні системи були перенесені, і тепер є програмні програми, які потребують 64-бітного позначення для запуску (як-от програмне забезпечення VM).

Іншими словами, це більше маркетинг, ніж технологія.


20
x86 походить з 8086, 286, 386, 486, 586 і т. д. Це могло бути так само легко "* 86"
gWaldo

6
А тому, що x86 бере свій початок із 8086, я ніколи не зміг розібратися, чому це завжди асоціюється з 32 бітами. Як я пам’ятаю, 8086 був 16-бітовим процесором, який використовував подвійні регістри для включення 32-бітової адреси пам'яті. Intel в ті часи був далеко не лідером у цій галузі. BTW @gWaldo, ви залишили поза межами 80186.
John Gardeniers

Збіг обставин З Вікіпедії: "І архітектура, і фізичний чіп були розвинені досить швидко невеликою групою людей, використовуючи ті ж основні елементи мікроархітектури та методи фізичної реалізації, що використовуються для трохи старшого 8085 року (і для якого 8086 також функціонував би як продовження) ". Були також 8087 та 8089 рр.
Барт Сільверстрім

Так, я покинув 80186, тому що я, чесно кажучи, не міг згадати, чи був випущений продукт (і мені було занадто ледаче його шукати ...)
gWaldo

1
Ця відповідь не має нічого поганого, але я, чесно кажучи, вважаю, що Даніель повинен бути прийнятим, оскільки він набагато докладніший.
Массімо

189

Ну, колись був чіп під назвою 8086, з більш дешевою версією під назвою 8088, яка використовувалася в персональному комп'ютері під назвою IBM PC. Вдосконалена версія цього чіпа була створена і називалася 80186, хоча це була не дуже популярна версія. Однак тоді була створена вдосконалена вдосконалена версія під назвою 80286. Тепер це був дуже популярний чіп, зокрема, тому, що він використовувався в комп'ютері під назвою IBM PC AT.

Пізніше Intel, яка створила та продала мікросхеми 8086, 8088, 80186 та 80286, усі з яких мали 16-бітну архітектуру, побачила необхідність створити 32-бітовий чіп, щоб конкурувати з подібними пропозиціями інших. Щоб скористатися своїм місцем, він створив новий чіп, здатний запускати програмне забезпечення, зроблене для раніше згаданих чіпів. Звичайно, Intel назвала цей новий чіп 80386.

На той час було багато комп'ютерів, що використовували різні версії мікросхем Intel, а також були мікросхеми, що не були Intel, сумісні з Intel. Тож люди почали називати їх 80x86.

Через деякий час 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-розрядне розширення, створене набором інструкцій Intel x86 - отже, x86_64 на відміну від Itanium (IA_64) Intel, який був справжнім 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, які бажали нейтрального терміна.
Майкл Стум

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-бітному режимі compat під 64-бітним ядром.) Я кажу, що "x86 має ефективний випуск / придбання безблокової атомики", я не виключаю 64-розрядні.
Пітер Кордес

16

З Вікіпедії : Термін x86 відноситься до сімейства архітектурних наборів інструкцій на основі процесора Intel 8086.


3

Технічно x86 просто відноситься до сімейства процесорів та набору інструкцій, якими вони користуються. Насправді це не говорить нічого конкретного щодо розмірів даних.

x86 розпочався як 16-розрядний набір інструкцій для 16-бітних процесорів (процесори 8086 і 8088), потім був розширений до 32-розрядного набору інструкцій для 32-бітних процесорів (80386 і 80486), а тепер був розширений до набір інструкцій для 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. Пентій офіційно ніколи не називався 586 або 80586 у своїх частинах ( cpu-world.com/sspec/Pentium). html ); терміни i586 та i686 якраз базувалися на полі "сімейного" CPUID того, як CPU звітували про себе.
Пітер Кордес

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-х бітним).

Викликано оригінальне 64-розрядне розширення AMD на x86наборі 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.