Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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 . В течение 1990-х годов VIA , 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 многих современных операционных систем все еще поддерживаются, например Microsoft Windows [7] и дистрибутив Debian Linux. [8] Несмотря на название IA-32 (и вызывающее некоторую потенциальную путаницу), 64-битная эволюция x86, которая возникла у AMD, не будет называться «IA-64», это имя вместо этого принадлежит архитектуре Intel Itanium .

Архитектурные особенности [ править ]

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

Возможность 32-битного целого числа
Все регистры общего назначения (GPR) расширяются с 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 бита.

Режимы работы [ править ]

См. Также [ править ]

  • x86-64
  • IA-64
  • Список бывших производителей процессоров, совместимых с IA-32

Ссылки [ править ]

  1. ^ "DITTO" . Руководство по основным командам BSD . Apple . 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/