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

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

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

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

Спасибо

6 ответов

Решение

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

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

Ну, когда-то был чип под названием 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.

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

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

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

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

Технически, 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.

Что ж, x64 never really came from an instruction set or chip manufacturer. It originally came from Windows XP. The first 64 bit edition of Windows was given the title Windows XP x64, And I guess the term x64 stuck from there.

x86 moniker comes from the 32bit instruction set. So all x86 processors (without a leading 80) run the same 32 bit instruction set (and hence are all compatible). Так x86 has become a defacto name for that set (and hence 32 bit).

AMD's original 64 bit extension on the x86 set was called AMD64, Intel later licensed it, but even still the name for the 64 bit x86 instruction set is typically AMD64,

But mostly it's brand distinction. Here's what a few different major Operating System distributions call each 64 bit flavor:

В общем, похоже, что Linux предпочитает x86_64, BSD предпочитает amd64 и др x64...

Но важно отметить, что все они означают одно и то же для маркетинговых целей. В тонкости они означают разные вещи (ну, amd64 означает что-то отличное от x86_64 (первая представляет собой архитектуру, специфичную для поставщика, а вторая - подмножество архитектур двух поставщиков), но x86_64 === x64), but for anyone except programmers writing in assembly or machine code it really doesn't make a different...

Другие вопросы по тегам