Десять имён для одной архитектуры

На пятничном семинаре учебного проекта лаборатории МФТИ-Интел один из студентов задал мне примерно такой вопрос: а почему 64-битный вариант архитектуры процессоров Intel называется x64, а 32-битный — x86? Я начал объяснять, что не всё так просто. Захотелось нарисовать более полную картину. Ведь на самом деле это не x64, и даже не x86.
386-ые, Пентиумы и Коры
На самом деле названий для этого феномена, около сорока лет присутствующего на сцене процессорных технологий, было придумано несколько. Даже больше, чем хотелось бы. Они появились из разных источников и используются в разных контекстах, разными компаниями и разными сообществами. Конечно же, это вносит некоторую неразбериху.
Я постарался здесь собрать все известные мне названия. Не хочу пытаться доказать, что одна группа имён лучше другой, — меньше использовать их не станут.
8086 и семейство
В 1978 году был выпущен 16-битный процессор Intel, который имел «имя» 8086. За ним были 8088, 80186, 80286, 80386 (плюс вариации), 80486 (плюс вариации). Легко заметить, что (почти) все эти числовые имена оканчиваются на две цифры 86, что дало название всей серии x86. Оно укрепилось, его продолжили использовать и после того, как процессорам перестали давать цифровые имена, а появились Intel Pentium, Celeron, Xeon, Core, Atom и т.д. Совместимые продукты других вендоров, таких как IBM, AMD, Cyrix, VIA и т.д., также описываются как x86.
По моим наблюдениям, x86 — самый популярный вариант для имени этой архитектуры в Интернете, статьях и прочей литературе, особенно, когда не стоит задачи точно специфицировать разрядность архитектуры или речь явным образом идёт о 32-битном варианте.
Используются также вариации этого названия для 32-битных вариантов, позволяющие более точно указать минимальный набор поддерживаемых инструкций: i386, i486, i586, i686, — например, для различения вариантов сборок бинарных пакетов дистрибутивов Linux.
Пришествие 64 бит
Своими стараниями Intel расширила машинное слово в описанной ранее серии процессоров с 16 до 32 бит. Достигнуть этой архитектуре 64 бит помогла компания AMD, в 2003 году представившая процессор, поддерживающий новые инструкции и регистры и реализующий AMD64.
Для того, чтобы явно указать повышенную битность процессора/кода/пакета, имя x86 стало получать новый суффикс «64». Вот только через какой знак его приписывать не договорились, и иногда видишь x86_64, а порой x86-64. Например, вывод команды uname в Linux использует подчерк. Наконец, у пакетов можно увидеть и суффикс amd64 строчными буквами.
Intel же обозначала это расширение архитектуры сперва IA-32e, затем EM64T. В настоящее время можно встретить оба варианта в различных именах пакетов, документации и прочем. Тем не менее, есть и третье введённое Intel название…
Как это называет Intel
В официальной документации 32-битная архитектура имеет имя IA-32; её 64-битный вариант получил довольно странное с моей точки зрения имя Intel 64. Почему странное — оно создаёт потенциал для путаницы, как мы увидим ближе к концу статьи.
Компании-поставщики софта
Всё вместе
Ложные имена
Как известно, за свою сорокалетнюю историю Intel выпускала (и выпускает сейчас) не только процессоры IA-32. Были и до сих пор присутствуют продукты других архитектур. Они тоже имеют свои имена, иногда несколько созвучные. При этом происходит путаница, от которой хотелось бы предостеречь.
Intel IA-64. Является полным синонимом термина «Intel Itanium». Используется для обозначения 64-битной архитектуры, несовместимой ни с IA-32, ни с 64-битным её вариантом ни по набору команд, ни по принципам работы. Да, существуют аппаратные и программные прослойки для запуска IA-32 приложений на Итаниуме, но это — тема для отдельного и интересного рассказа. Кстати, и для Itanium есть ещё одно обозначение — IPF, используемое изредка как суффикс.
К сожалению, линейки таких семейств процессоров Intel, как i432, i860, i960 или не дожили до наших дней, или же имеют крайне узкую нишу применения. А то глядишь — пришлось бы для каждого из них запоминать ещё по десятку имён.
Физический факультет
x86 (Intel 80×86) — это общее название семейства микропроцессоров, как разработанных и выпускаемых компанией Intel, так и совместимых с ними процессоров других производителей (AMD, VIA, Transmeta, Winchip и т. д.).
Такое имя закрепилось за семейством этих микропроцессоров, так как названия ранних моделей процессоров Intel заканчивались на число 86 — 8086, 80186, 80286 (i286), 80386 (i386), 80486 (i486). Более поздние модели стали называть именами собственными, например — Пентиум (Pentium), чтобы иметь возможность зарегистрировать их как торговую марку (для усложнения жизни конкурентам). Другое название для архитектуры этого типа — IA (Intel Architecture) или же IA-32.
Оглавление документа
Основные особенности архитектуры
Реальный режим
Классический режим, использованный в ранних IBM PC. Позволяет адресовать 1 мегабайт памяти и не имеет встроенных средств для защиты памяти и переключения задач, что, впрочем, не мешает реализовать программную многозадачность.
Расширения
Дополнительный набор инструкций, выполняющих характерные для процессов кодирования/декодирования потоковых аудио/видео данных действия за одну машинную инструкцию. Впервые появился в процессорах Pentium MMX. Обеспечивает только целочисленные вычисления.
SSE (англ. Streaming SIMD Extensions, потоковое SIMD-расширение процессора) — это SIMD (англ. Single Instruction, Multiple Data, Одна инструкция — множество данных) набор инструкций, разработанный Intel, и впервые представленный в процессорах серии Pentium III. Поддерживает вычисления с плавающей точкой.
Улучшенное расширение SSE. Появилось в процессорах Pentium 4. Производит потоковые вычисления с вещественными числами двойной точности (2 числа в одном регистре SSE). Кроме того, добавлены инструкции аналогичные расширению MMX, работающие с регистрами SSE (16 байт, 8 слов, 4 двойных слова или 2 учетверенных слова в одном регистре).
Продолжение SSE и SSE2, появилось в процессорах Prescott
SSSE3
Дополнение к SSE3 для работы с упакованными целыми.
3DNow!
64-битный режим
К началу 2000-х годов стало очевидно, что 32-битное адресное пространство архитектуры x86 ограничивает производительность приложений, работающих с большими объёмами данных. 32-разрядное адресное пространство позволяет процессору осуществлять непосредственную адресацию лишь 4 Гб данных, этого может оказаться недостаточным для некоторых приложений, связанных, например, с обработкой видео или обслуживанием баз данных.
В литературе и названиях версий своих продуктов компании Microsoft и Sun используют объединенное именование AMD64/EM64T, когда речь заходит о 64-х разрядных версиях их операционных систем Windows и Solaris соответственно. В то же время, поставщики программ для операционных систем GNU/Linux, BSD и Mac OS X используют метки «x 86–64 » или «amd64», если необходимо подчеркнуть, что данное ПО использует 64-разрядные инструкции.
Процессоры
Процессоры x86 Intel
16-разрядный процессор i8086 был создан в июне 1978 года, сначала работал на частотах 4,77 МГц, а затем и на 8 и на 10 МГц. Изготавливался по 3 мкм технологии и имел 29000 транзисторов.
Чуть позже, в 1979 году был разработан i8088, который работал на тех же частотах, что и i8086, но использовал 8-разрядную шину данных (внутренняя шина процессора осталась 16-разрядной) для обеспечения большей совместимости с имевшейся в то время в ходу периферией. Благодаря более низкой цене, широко использовался в ранних системах IBM PC вместо 8086.
80186
В 1982 были выпущены 80186 и 80188, которые первоначально не получили широкого распространения из-за того, что IBM не стала использовать их в своих персональных компьютерах. Впрочем, некоторые производители «клонов» сделали это, выпустив ускоренные варианты IBM PC XT. В то же время, эти процессоры оказались чрезвычайно удачными для использования во встроенных системах, и в различных модификациях выпускаются до настоящего времени[источник?]. В эти процессоры были первоначально добавлено несколько новых команд, повышена тактовая частота. Впоследствии появились модификации, содержащие дополнительные аппаратные средства, такие, как интегрированные контроллеры последовательного порта.
80286
80386
Первый 32-разрядный процессор ( 16–33 МГц). Появился в 1985 году. Знаменовал собой революцию в мире процессоров x86. Основные принципы, заложенные в этом чипе, без кардинальных изменений дожили и до наших дней (за всё это время изменения касались, в основном, повышения производительности, расширения набора команд, увеличения разрядности).
Pentium
Pentium (1993 год) — первый суперскалярный процессор и суперконвейерный процессор Intel. Суперскалярность — термин, означающий, что процессор позволяет выполнять более одной операции за один такт. Суперконвейерность означает, что процессор имеет несколько вычислительных конвейеров. У Pentium их два, что позволяет ему при одинаковых частотах в идеале быть вдвое производительней 486, выполняя сразу 2 инструкции за такт. Кроме этого, особенностью процессора Pentium являлся полностью переработанный и очень мощный на то время блок FPU, производительность которого оставалась недостижимой для конкурентов вплоть до конца 90-х годов.
Pentium Pro
Pentium Pro (1995 год) – первый процессор шестого поколения. Идеи и технологии, заложенные в данный чип, определили архитектуры всех современных x86-процессоров: блоки предсказания ветвлений, переименование регистров, RISC-ядро, интегрированный кеш второго уровня. Однако технологическая сложность ядра данного процессора привела к сравнительно невысокому выходу годных чипов при технологиях того времени, что сказалось на высокой цене Pentium Pro. Поэтому данный процессор применялся только в High-End системах и серверах.
Pentium MMX
Pentuum MMX (январь 1997 года) – процессор пятого поколения, и по сути, просто модификация ядра Pentium. Был добавлен новый блок целочисленных матричных вычислений MMX (Multi-Media eXtensions) и увеличен до 32К объем кеша первого уровня.
Pentium II
Pentium II (май 1997 года) – модификация ядра Pentium Pro с целью сделать его более доступным. Интегрированный кеш был вынесен на отдельную микросхему с пониженной в два раза частотой. Это упростило и удешевило ядро, хотя и сделало его более медленным, чем Pentium Pro. Новая конструкция процессора потребовала размещение элементов на печатной плате, что, в свою очередь, привело к изменению конструктива процессора. Данные чипы выпускались в виде картриджей, устанавливающихся в специальный разъем на плате (Slot 1). Кроме этого, в ядро Pentuim II был добавлен блок MMX.
Celeron
Celeron — упрощённый вариант Pentium II/III/IV для построения недорогих компьютеров. Основные отличия этих процессоров в объёме кэша второго уровня и частоте шины.
Pentium III
Pentium III, изготовленный по 0,18 мкм технологическому процессу, отличается от P2 главным образом, добавлением SSE-инструкций.
Pentium 4
Принципиально новый процессор с гиперконвейеризацией (hyperpipelining) — с конвейером, состоящим из 20 ступеней. Согласно заявлениям Intel, процессоры, основанные на данной технологии, позволяют добиться увеличения частоты примерно на 40 процентов относительно семейства P6 при одинаковом технологическом процессе (при «правильной» загрузке процессора).
На практике же, первые модели работали даже медленнее, чем Pentium III.
Семейство процессоров, ориентированных на серверы и многопоточные вычисления.
Процессоры x86 AMD
Процессоры-аналоги i486. В то время, как Intel остановился на частоте 100 МГц у i486, AMD выпускала процессоры с частотами 120 МГц и 133 МГц. Также они отличались увеличенным объёмом кэша первого уровня (16 Кбайт).
Процессоры — аналоги Pentium. Несмотря на превосходство в целочисленных операциях над аналогами от Intel (в ядре данного процессора применялся ряд технологий шестого поколения), производительность блока вычислений с плавающей запятой раза в полтора уступала по производительности процессорам Pentium с аналогичной тактовой частотой. Кроме того, наблюдалась плохая совместимость с ПО некоторых производителей. Недостатки K5 были чрезвычайно преувеличены в различных сетевых и других неформальных обсуждениях и на долгое время способствовали (в целом — несправедливому) ухудшению репутации продукции AMD у пользователей.
Выпущен в апреле 1997 года. Принципиально новый процессор AMD, основанный на ядре, приобретенном у NextGen. Данный процессор имел конструктив пятого поколения, однако относился к шестому поколению и позиционировался как конкурент Pentuim II. Включал в себя блок MMX, и несколько переработанный блок FPU. Однако данные блоки все равно работали на 15–20 % медленнее, чем у аналогичных по частоте процессоров Intel. Процессор имел 64 Кбайт кэша первого уровня. В целом сравнимая с Pentum II производительность, совместимость со старыми материнскими платами и более ранний старт (AMD представила К6 на месяц раньше, чем Intel представила P-II) сделали его достаточно популярным, однако проблемы с производством у АМД значительно испортили репутацию данного процессора.
Дальнейшее развитие ядра К-6. В этих процессорах была добавлена поддержка специализированного набора команд 3DNow!. Реальная производительность, однако, оказалась существенно ниже, чем у аналогичных по частоте Pentium II (это было вызвано тем, что прирост производительности с ростом частоты у P-II был выше благодаря внутреннему кешу), и конкурировать К 6–2 смогли лишь с Celeron. Процессор имел 64 Кбайт кэша первого уровня.
K6-III
K6-III+
Аналог К6-III+ с урезанным до 128 Кб кэшем второго уровня.
Athlon
Очень успешный процессор, благодаря которому фирма AMD сумела восстановить почти утраченные позиции на рынке микропроцессоров. Кэш первого уровня — 128 Кб. Первоначально процессор выпускался в картридже, с размещением кэша второго уровня (512 Кб) на плате, и устанавливался в разъём Slot A, механически, но не электрически совместимый с интеловским Slot 1. Затем устанавливался в разъём Socket A и имел кэш второго уровня (256 Кб) в ядре. По быстродействию — примерный аналог Pentium III.
Duron
Конкурент Celeron поколений Pentium III/4. Отличается от Athlon’a объёмом кэша второго уровня (всего 64 Кб), зато интегрированным в кристалл и работавшем на частоте ядра. Производительность заметно выше, чем у аналогичного Celeron, и при выполнении многих задач соответствует Pentium III.
Athlon XP
Продолжение развития архитектуры Athlon. По быстродействию — аналог Pentium 4. По сравнению с обычным Athlon’ом, добавлена поддержка SSE инструкций.
Sempron
Более дешёвый (за счёт уменьшенного кэша второго уровня) вариант процессоров Athlon XP и Athlon 64. Первоначально процессоры Sempron представляли из себя перемаркированные чипы Athlon XP на ядре Thorton, имевшим 256 Kb кэша 2-го уровня. Поздние представляют собой урезанные версии Athlon 64 (socket 754, одноканальный режим работы с памятью).
Athlon 64
Первый процессор, поддерживающий архитектуру x86_64.
Athlon 64 X2
Продолжение архитектуры Athlon 64, имеет 2 вычислительных ядра.
Athlon FX
Имеет репутацию «самого быстрого процессора для игрушек». Является, по сути, серверным процессором Opteron 1xx на десктопных сокетах без поддержки Registered-memory. Выпускается малыми партиями. Стоит значительно дороже своих «массовых» собратьев.
Geode
Семейство процессоров, ориентированное на сектор встраиваемых решений, SOC.
Выпускала серию процессоров, часть из которых (ядро V20/V30) была программно совместима как с Intel x186, так и с Intel 8080. Переключение между режимами работы осуществлялось при помощи 3 дополнительных инструкций. Аппаратно они выглядели как сильно ускоренная версия 8088 или 8086.
Процессоры на основе ядра V33 не имели режима эмуляции 8080, зато поддерживали, при помощи двух дополнительных инструкций, расширенный режим адресации.
Процессоры МЦСТ
Компанией ЗАО «МЦСТ» выпущен первый процессор «Эльбрус» и вычислительный комплекс на его базе — «Эльбрус–3М1», позволяющий работать в режиме двоичной совместимости с семейством x86 процессоров.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
| Авторство | ||
| В.И. Ромашов | ||
| Согласовано: 24.04.2016 | ||
| Дизайнер | Intel, AMD |
|---|---|
| Биты | 16-bit, 32-bit and 64-bit |
| Представлен | 1978 (16-bit), 1985 (32-bit), 2003 (64-bit) |
| Дизайн | CISC |
| Тип | Register-memory |
| Кодирование | Variable (1 to 15 bytes) |
| Разветвление | Status register |
| Порядок байтов | Little |
| Размер страницы | 8086–i286: None i386, i486: 4 KB pages P5 Pentium: added 4 MB pages (Legacy PAE: 4 KB→2 MB) x86-64: added 1 GB pages |
| Расширения | x87, IA-32, MMX, SSE, SSE2, x86-64, SSE3, SSSE3, SSE4, SSE5, AVX |
| Открыто | Partly. For some advanced features, x86 may require license from Intel; x86-64 may require an additional license from AMD. The 80486 processor has been on the market for more than 20 years [1] and so cannot be subject to patent claims. The pre-586 subset of the x86 architecture is therefore fully open. |
| Регистры | |
| Общее назначение | |
















