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 бита.
Режимы работы [ править ]
Рабочий режим | Требуется операционная система | Тип выполняемого кода | Размер адреса по умолчанию | Размер операнда по умолчанию | Типичная ширина георадара |
---|---|---|---|---|---|
Защищенный режим | 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 бит |
Нереальный режим | 16-битная операционная система реального режима или загрузчик, или 32-битный загрузчик | 16-битный код реального режима | 32 бит | 16 бит | 16 или 32 бит |
См. Также [ править ]
- x86-64
- IA-64
- Список бывших производителей процессоров, совместимых с IA-32
Ссылки [ править ]
- ^ "DITTO" . Руководство по основным командам BSD . Apple . 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/