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