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-битная операционная система или загрузчик | 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 бита |
Бинарные файлы Thin Universal для указанной архитектуры [...] следует указывать как "i386", "x86_64" и т. д.
Процессор Intel386 был первым 32-разрядным процессором в семействе архитектуры IA-32. Он представил 32-разрядные регистры для использования как для хранения операндов, так и для адресации.