stringtranslate.com

ИА-32

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», вместо этого это имя будет принадлежать архитектуре Intel Itanium .

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

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

32-битные целочисленные возможности
Все регистры общего назначения (GPR) расширены с 16  бит до 32 бит, и все арифметические и логические операции, операции между памятью и регистром и между регистрами и т. д. могут работать непосредственно с 32-битными целыми числами. По умолчанию операции push и pop в стеке выполняются с шагом в 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 бита.

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

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

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

  1. ^ «То же (1) Страница руководства Mac OS X» . Руководство по общим командам BSD . Яблоко . 19 декабря 2008 года. Архивировано из оригинала 2 июня 2012 года . Проверено 3 августа 2013 г. Двоичные файлы Thin Universal для указанной архитектуры [...] должны быть указаны как «i386», «x86_64» и т. д.
  2. ^ «Дополнительные предопределенные макросы». программное обеспечение.intel.com . Интел . Архивировано из оригинала 15 февраля 2021 года . Проверено 25 ноября 2020 г.
  3. ^ Кемп, Стив. «Запуск 32-битных приложений в 64-битной версии Debian GNU/Linux». Администрация Дебиан . Архивировано из оригинала 16 сентября 2013 года . Проверено 31 августа 2013 г.
  4. ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32» . Корпорация Интел . Сентябрь 2014. с. 31. Архивировано из оригинала 26 января 2012 года . Проверено 19 декабря 2014 г. Процессор Intel386 был первым 32-битным процессором в семействе архитектуры IA-32. Он представил 32-битные регистры для использования как для хранения операндов, так и для адресации.
  5. Грин, Рональд В. (5 мая 2009 г.). «Что означают архитектуры IA-32, Intel 64 и IA-64?». программное обеспечение.intel.com . Интел . Архивировано из оригинала 19 декабря 2014 года . Проверено 19 декабря 2014 г.
  6. ^ «Поддерживаемое оборудование». Помощь Ubuntu . Канонический . Архивировано из оригинала 19 декабря 2014 года . Проверено 31 августа 2013 г.
  7. ^ «Системные требования и характеристики Windows 10 | Microsoft» . www.microsoft.com . Архивировано из оригинала 1 мая 2018 года . Проверено 20 августа 2018 г.
  8. Скотт М. Фултон, III (16 мая 2007 г.). «Windows Server 2008: последняя 32-разрядная операционная система». БетаНьюс . Архивировано из оригинала 1 апреля 2023 года . Проверено 1 апреля 2023 г.
  9. ^ «Debian GNU/Linux на машинах x86» . Архивировано из оригинала 28 апреля 2019 года . Проверено 20 августа 2020 г.