IA-32 - IA-32

IA-32 (Короче для "Архитектура Intel, 32-разрядная", иногда также называемый i386[1][2])[3] это 32-битный версия x86 архитектура набора команд, разработано Intel и впервые реализовано в 80386 микропроцессор в 1985 году. IA-32 - первое воплощение x86, которое поддерживает 32-битные вычисления;[4] в результате термин «IA-32» может использоваться как метоним для обозначения всех версий x86, которые поддерживают 32-разрядные вычисления.[5][6]

В рамках различных язык программирования директив, IA-32 все еще иногда называют архитектурой "i386". В некоторых других контекстах некоторые итерации IA-32 ISA иногда помечаются как i486, i586 и i686, ссылаясь на инструкцию суперсеты предложенный 80486, то P5 и Микроархитектуры P6 соответственно. Эти обновления предлагали многочисленные дополнения к базовому набору IA-32, т.е. возможности с плавающей запятой и Расширения MMX.

Исторически Intel была крупнейшим производителем процессоров IA-32, а вторым по величине поставщиком был AMD. В 90-е годы ЧЕРЕЗ, Transmeta и другие производители микросхем также производили процессоры, совместимые с IA-32 (например, WinChip ). В современную эпоху Intel по-прежнему производит процессоры IA-32 под Intel Quark микроконтроллер платформы, однако с 2000-х годов большинство производителей (включая Intel) перешли почти исключительно на реализацию процессоров на основе 64-разрядного варианта x86, x86-64. x86-64, по спецификации, предлагает унаследованные рабочие режимы, которые работают на ISA IA-32 для обратной совместимости. Даже учитывая современное преобладание x86-64, по состоянию на 2018 год версии защищенного режима IA-32 многих современных операционных систем все еще поддерживаются, например Майкрософт Виндоус[7] и Debian Дистрибутив Linux.[8] Несмотря на название IA-32 (и вызывающее некоторую потенциальную путаницу), 64-битная эволюция x86, которая возникла у AMD, не будет известна как "IA-64", это имя вместо этого принадлежит Архитектура Intel Itanium.

Архитектурные особенности

Основной определяющей характеристикой IA-32 является наличие 32-битных универсальных регистры процессора (например, EAX и EBX), 32-битный целое число арифметические и логические операции, 32-битные смещения внутри сегмента в защищенный режим и преобразование сегментированных адресов в 32-битные линейные адреса. Дизайнеры воспользовались возможностью, чтобы внести и другие улучшения. Ниже описаны некоторые из наиболее значительных изменений.

32-битная целочисленная способность
Все регистры общего назначения (Георадаров) расширены с 16биты до 32 разряда, и все арифметические и логические операции, операции преобразования памяти в регистр и регистр в память и т. д. могут работать непосредственно с 32-разрядными целыми числами. Толкает и хлопает на куча по умолчанию 4-байтовые шаги и несегментированные указатели имеют ширину 4 байта.
Более общие режимы адресации
Любой GPR может использоваться как базовый регистр, а любой GPR, кроме ESP, может использоваться как индексный регистр в ссылке на память. Значение индексного регистра можно умножить на 1, 2, 4 или 8 перед добавлением к значению базового регистра и смещению.
Дополнительные сегментные регистры
Предусмотрены два дополнительных сегментных регистра FS и GS.
Большее виртуальное адресное пространство
Архитектура IA-32 определяет 48-битный формат сегментированного адреса с 16-битным номером сегмента и 32-битным смещением внутри сегмента. Сегментированные адреса отображаются на 32-битные линейные адреса.
Пейджинг по запросу
32-битные линейные адреса - это виртуальные адреса, а не физические адреса; они переводятся на физические адреса через таблица страниц. В 80386, 80486, а оригинальный Pentium процессоры, физический адрес был 32 бита; в Pentium Pro и более поздние процессоры, Расширение физического адреса разрешены 36-битные физические адреса, хотя размер линейного адреса все еще составлял 32 бита.

Режимы работы

Рабочий режимОперационная система требуетсяТип выполняемого кодаРазмер адреса по умолчаниюРазмер операнда по умолчаниюТипичный Георадар ширина
Защищенный режим32-битная операционная система или загрузчик32-битный код защищенного режима32 бит32 бит32 бит
16-разрядная операционная система или загрузчик в защищенном режиме, или 32-разрядный загрузчик16-битный код защищенного режима16 бит16 бит16 или 32 бит
Виртуальный режим 808616- или 32-разрядная операционная система в защищенном режиме16-битный код реального режима16 бит16 бит16 или 32 бит
Реальный режим16-битная операционная система реального режима или загрузчик, или 32-битный загрузчик16-битный код реального режима16 бит16 бит16 или 32 бит

Смотрите также

Рекомендации

  1. ^ "DITTO". Руководство по основным командам BSD. яблоко. 19 декабря 2008 г.. Получено 3 августа, 2013. Тонкие универсальные двоичные файлы для указанной архитектуры [...] должны быть указаны как «i386», «x86_64» и т. Д.
  2. ^ «Дополнительные предопределенные макросы». software.intel.com. Intel. Получено 25 ноября, 2020.
  3. ^ Кемп, Стив. «Запуск 32-битных приложений в 64-битном Debian GNU / Linux». Администрация Debian.
  4. ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32». Корпорация Intel. Сентябрь 2014. с. 31. Процессор Intel386 был первым 32-разрядным процессором в семействе архитектуры IA-32. Он представил 32-битные регистры для использования как для хранения операндов, так и для адресации.
  5. ^ Грин, Рональд В. (5 мая 2009 г.). «Что означают архитектуры IA-32, Intel 64 и IA-64?». software.intel.com. Intel. Получено 19 декабря, 2014.
  6. ^ «Поддерживаемое оборудование». Справка Ubuntu. Канонический. Архивировано из оригинал 19 декабря 2014 г.. Получено 31 августа, 2013.
  7. ^ «Системные требования и спецификации Windows 10 | Microsoft». www.microsoft.com. Получено 20 августа, 2018.
  8. ^ https://www.debian.org/ports/i386/