ИА-32

32-битная версия архитектуры x86

IA-32 (сокращение от « Intel Architecture, 32-bit », обычно называемая 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 до 2019 года; однако с 2000-х годов большинство производителей (включая Intel) перешли почти исключительно на реализацию ЦП на основе 64-битного варианта x86, x86-64 . x86-64, согласно спецификации, предлагает устаревшие режимы работы, которые работают на IA-32 ISA для обратной совместимости. Даже учитывая современную распространенность x86-64, на сегодняшний день версии защищенного режима IA-32 многих современных операционных систем все еще поддерживаются, например, Microsoft Windows (до Windows 10 ), [7] Windows Server (до Windows Server 2008 ) [8] и дистрибутив Debian Linux . [9] Несмотря на название IA-32 (и вызывающее некоторую потенциальную путаницу), 64-битная эволюция x86, которая возникла в AMD, не будет известна как «IA-64», это название вместо этого принадлежит архитектуре Itanium компании Intel .

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

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

Возможность работы с 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 бита.

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

Режим работыТребуется операционная системаТип выполняемого кодаРазмер адреса по умолчаниюРазмер операнда по умолчаниюТипичная ширина георадара
Защищенный режим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 бита
Нереальный режим16-разрядная операционная система реального режима или загрузчик, или 32-разрядный загрузчик16-битный код реального режима32 бита16 бит16 или 32 бита

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

Ссылки

  1. ^ "ditto(1) Mac OS X Manual Page". BSD General Commands Manual . Apple . 19 декабря 2008 г. Архивировано из оригинала 2 июня 2012 г. Получено 3 августа 2013 г. Бинарные файлы Thin Universal для указанной архитектуры [...] следует указывать как "i386", "x86_64" и т. д.
  2. ^ "Дополнительные предопределенные макросы". software.intel.com . Intel . Архивировано из оригинала 15 февраля 2021 г. . Получено 25 ноября 2020 г. .
  3. ^ Кемп, Стив. «Запуск 32-битных приложений на 64-битной версии Debian GNU/Linux». Администрирование Debian . Архивировано из оригинала 16 сентября 2013 г. Получено 31 августа 2013 г.
  4. ^ "Intel 64 and IA-32 Architectures Software Developer's Manual". Intel Corporation . Сентябрь 2014. стр. 31. Архивировано из оригинала 26 января 2012 г. Получено 19 декабря 2014 г. Процессор Intel386 был первым 32-разрядным процессором в семействе архитектуры IA-32. Он представил 32-разрядные регистры для использования как для хранения операндов, так и для адресации.
  5. ^ Грин, Рональд В. (5 мая 2009 г.). «Что означают IA-32, Intel 64 и архитектура IA-64?». software.intel.com . Intel . Архивировано из оригинала 19 декабря 2014 г. . Получено 19 декабря 2014 г. .
  6. ^ "Поддерживаемое оборудование". Справка Ubuntu . Canonical . Архивировано из оригинала 19 декабря 2014 г. Получено 31 августа 2013 г.
  7. ^ "Системные требования и характеристики Windows 10 | Microsoft". www.microsoft.com . Архивировано из оригинала 1 мая 2018 г. Получено 20 августа 2018 г.
  8. Скотт М. Фултон, III (16 мая 2007 г.). «Windows Server 2008 „Последняя 32-разрядная операционная система“». BetaNews . Архивировано из оригинала 1 апреля 2023 г. . Получено 1 апреля 2023 г. .
  9. ^ "Debian GNU/Linux на машинах x86". Архивировано из оригинала 28 апреля 2019 г. Получено 20 августа 2020 г.
Взято с "https://en.wikipedia.org/w/index.php?title=IA-32&oldid=1231141938"