Windows ia32 os что это

1.3. Архитектуры ia-32 и ia-64

Особенностью реализации современных CISC архитектур, таких как IA-32 (Intel Architecture 32 bit), позволившим им вырваться вперед и даже обогнать RISC архитектуры является аппаратная трансляция внутри процессора исходных комплексных инструкций в микрокоманды – RICS подобные инструкции. После трансляции все микрокоманды попадают в кэш микрокоманд, где далее анализируются на предмет независимости и возможности одновременного выполнения. Если есть независимые инструкции, то они выполняются одновременно. Такое распараллеливание позволяет в среднем поднять производительность в два раза и сократить простои процессора (см. рисунок 1.6.).

Рисунок 1.6 Внутренне устройство процессора архитектуры IA-32

Основным препятствием на пути распараллеливания и одновременного выполнения нескольких инструкций являются условные переходы. Если есть условный переход, то до вычисления условия мы не можем сказать по какому направлению будет двигаться выполнение программы, т.е. какие инструкции можно одновременно выполнять, а следовательно не можем их предварительно загрузить в кэш команд. Нам нужно будет подождать вычисление условия при этом блоки процессора, которые могли бы выполнять параллельно другие команды, будут простаивать.

Решением, реализованным в процессорах архитектур CISC, стал алгоритм предсказания переходов. Код предварительно анализируется и по некоторым характеристикам предполагается наиболее вероятное его продолжение. И это продолжение загружается в кэш и выполняется еще до вычисления условия перехода. После вычисления условия в случае правильного предсказания результаты работы выполненного после условия кода принимаются и выполнение продолжается. В случае не правильного предсказания перехода все выполненные результаты отбрасываются, конвейер команд очищается и загружается новым кодом. Это приводит к большим задержкам, но в среднем все равно процесс ускоряется, так как вероятность правильного предсказания переходов в процессорах достигает 90% .

Еще одним ограничением для одновременного выполнения нескольких команд является не связанное использование одних и тех же регистров. Для решения этой проблемы используют алгоритм переименования регистров, т.е. одному и тому же логическому регистру ставят в соответствие несколько физических, каждому независимому участку кода выделяют свой физический регистр.

Желание загрузить простаивающие блоки процессора привело к появлению технологии аппаратной поддержки параллельных процессов — Hyper-Threading. В рамках этой технологии на одном и том же процессоре выполняются одновременно два процесса, по мере возможности используя не занятые блоки. Это конечно не так эффективно как использование двух параллельных процессоров (что очень дорого). Но на разнородных одновременно выполняющихся задачах удается достичь выигрыша 20-30%.

Рисунок 1.7 Технология Hyper-Treading

Дальнейшее развитие CISC архитектуры привело к архитектуре IA-64.

Итак, основные особенности современных процессоров CISC архитектуры IA-32 это

1. Использование сложных инструкций переменной длины;

2. Преобразование инструкций в микрооперации;

3. Переупорядочивание и оптимизация микроопераций во время выполнения;

4. Переименование регистров;

5. Попытки предсказания переходов;

6. Загрузка данных из памяти по мере необходимости, в первую очередь проверяя кэш;

7. Использование простаивающих блоков процессора для выполнения параллельных потоков (псевдомультипроцессорность Hyper-Threading для P4).

Архитектура IA-64, ключевые моменты:

1. Использование простых инструкций, сгруппированных по три, одинаковой длины;

2. Переупорядочивание и оптимизация во время компиляции;

3. Использование нескольких последовательностей команд одновременно без предсказания переходов;

4. Загрузка данных до того как они потребуются, кэш проверяется вначале.

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

Intel IA-32

Intel IA-32
Дизайнер Intel Corporation
Биты 32-bit
Представлен 1985 год
Версия i386
Расширения MMX
Открыто Нет
Регистры
32 бита
Общее назначение 32 бита
FPU (Floating Point Unit) 32 бита

Intel IA-32 (сокращение от «Intel Architecture, 32-bit», иногда также называемое i386) – это 32-разрядная версия архитектуры набора инструкций x86, разработанная Intel и впервые реализованная в Intel 80386 в 1985 году, показанный на рисунке 1. IA-32 является первым воплощением x86, поддерживающим 32-разрядные вычисления, в результате термин «IA-32» может использоваться в качестве метонима для обозначения всех версий x86, поддерживающих 32-битные вычисления.

Читайте также:  Установка windows с flash накопителя

Рисунок 1 – Intel 80386

Содержание

Альтернативные названия

В различных директивах языка программирования IA-32 по-прежнему иногда называют архитектурой «i386». В некоторых других контекстах некоторые итерации ISA IA-32 иногда обозначаются как i486, i586 и i686, ссылаясь на наборы инструкций, предлагаемые Intel 80386, микроархитектурами P5 и P6 соответственно. Эти обновления предлагали множество дополнений наряду с базовым набором IA-32, то есть с плавающей запятой и расширениями MMX. [Источник 1]

Истоки появления

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 и дистрибутив Ubuntu Linux. Несмотря на то, что имя IA-32 (и вызывает некоторую потенциальную путаницу), 64-разрядная эволюция x86, которая возникла из AMD, не будет известна как «IA-64», которое вместо этого принадлежит архитектуре Intel Itanium. [Источник 2]

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

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

Рисунок 2 – Intel Pentium

32-битная целая функция

Все регистры общего назначения (GPR) расширяются от 16 бит до 32 бит, а все арифметические и логические операции, операции с памятью и регистром и памятью и т.д. Могут работать непосредственно с 32-битными целыми числами. Толкает и поставляет по стеку по умолчанию 4-байтные шаги, а несегментированные указатели имеют ширину 4 байта.

Более общие режимы адресации

Любой GPR может использоваться как базовый регистр, и любой GPR, отличный от ESP, может использоваться в качестве индексного регистра в ссылке на память. Значение регистра индекса может быть умножено на 1, 2, 4 или 8 перед добавлением к значению базового регистра и смещению.

Дополнительные сегментные регистры

Предусмотрены два дополнительных сегментарных регистра, FS и GS.

Большее виртуальное адресное пространство

Архитектура IA-32 определяет 48-битный сегментированный формат адреса с 16-разрядным номером сегмента и 32-битным смещением внутри сегмента. Сегментированные адреса сопоставляются с 32-битными линейными адресами.

Пейджинг спроса

32-битные линейные адреса — это виртуальные адреса, а не физические адреса; они переводятся на физические адреса через таблицу страниц. В Intel 80386, Intel 80486 и исходных процессорах Intel Pentium (представлен на рисунке 2) физический адрес составлял 32 бита; в процессорах Intel Pentium Pro и более поздних версиях расширение физического адреса допускало 36-битные физические адреса, хотя размер линейного адреса был еще 32 бита. [Источник 3]

Процессоры данной архитектуры

Ниже представлен список процессоров Intel, в которых использовалась данная архитектура.

Установка Windows x64 на 32-разрядный UEFI (EFI-IA32) через GRUB [дубликат]

этот вопрос уже есть ответ здесь:

Я пытаюсь установить Windows 10 x64 (64-разрядная версия) на устройстве, которое имеет только 32-разрядный UEFI (на данный момент)

Так как x64 Linux может быть загружен через пользовательский 32-разрядный GRUB.. Я предполагаю, что он также может сделать то же самое для Windows, но «как использовать grub, чтобы обойти 32бит UEFI для загрузки Windows 10 х64», похоже, указывает на иное, хотя данное объяснение не полностью объясняет, почему (по крайней мере, для меня).

Читайте также:  Ножницы для windows аналоги

Я считаю, что 32-битный EFI GRUB должен иметь возможность загружать 64-битный EFI Window.

в качестве альтернативы, можно ли использовать новый «ntldr-mod» grub для запуска Windows x64 install bootmgr? (как запустить установку ОС WINDOWS на жесткий диск с grub2)

этот вопрос, вероятно, будет развиваться на основе ответов.

ответы / комментарии относительно того, почему будут помечены как не по теме. Меня интересует только как. Если ваш ответ «не возможно», пожалуйста, предоставьте более подробную информацию.

‘архитектуры должны совпадать’ недопустимый ответ.

2 ответов

просто создайте загрузочное USB-устройство с разделом GPT и ESP-разделом, сформированным с помощью FAT32

вставьте в USB-накопитель структуру EFI для загрузки GRUB2 с 32 бит

поставить WinPE.iso в USB-накопителе.
поместите свой iso windowsxx x64 в USB-накопитель.
настройте GRUB2 для загрузки этого WinPE.

после загрузки с этого PE iso.
смонтируйте iso-образ Windows в качестве диска (в Windows 10 просто дважды щелкните его),
запускаем WinNTSetup.exe,
заполните информацию в WinNtSetup из origin (The mounted Windows iso)
и назначения (диска для установки)

Если все прошло нормально. установка производится

есть один еще один шаг, который вам, возможно, придется сделать, если windows не загружается.
(это может произойти, если прошивка пытается найти bootia32.efi вместо bootx64.efi)

загрузка с USB.
отформатируйте созданный GPT / ESP раздел windows (сначала его необходимо скрыть)
создать структуру ЭФИ (как и в USB-диск)
скопируйте также GRUB2 в этот раздел.

(просто будьте осторожны, чтобы не коснуться раздела NTFS где установлена windows)

создать запись GRUB2 для запуска Windows (по BOOTMGR в разделе FAT32 является лучшим вариантом).

Если у вас есть проблемы, вы можете alse скопировать BOOTMGR в раздел NTFS
также папка \ boot.

и отредактируйте BCD, указав BOOTMGR, который вы скопировали в раздел NTFS.

x86, x32, x64 — Что это всё значит?

В описании многих программ и операционных систем часто указаны странные слова, начинающиеся с английской буквы «крестик», и продолженные цифрами.

Предположительно, они должны сообщать пользователю, будет ли конкретно этот вариант программного продукта хотя бы пытаться работать на его компьютере, но по факту вызывает только появление витающих над головой вопросительных знаков. И дело тут отнюдь не только в том, что пользователи чего-то там не знают. Сами эти обозначения исторически вышли очень запутанными.

Откуда есть пошло

Вам ещё не надоел этот подзаголовок? 🙂

В далёком 1978 году был выпущен первый в мире 16-разрядный микропроцессор, Intel 8086 . В последующие два десятилетия компанией Intel было создано множество моделей процессоров, которые объединяло две вещи:

1. Полная совместимость с 8086 на уровне команд

Из этих двух признаков и было выведено наименование x86 . Это не название архитектуры процессора, нет. Это лишь указание на то, что процессор поддерживает все команды, которые поддерживал старичок 8086, умеет исполнять 16-разрядный код и может работать в так называемом реальном режиме доступа к памяти, а не только в защищённом.

Несложно понять, что под понятие x86 подходят не только реликтовые 16-разрядные экземпляры, но и более современные 32, 64, да хоть миллионо-разрядные. И это стало проблемой, ведь для использования преимуществ 32 и 64-битных процессоров необходимо писать программы именно под эти разрядности. Поначалу проблем не возникало из-за того, что на 32 битах работали уже другие операционные системы, такие как Windows, а 16 бит остались уделом старичка DOS и его ровесников. Поэтому и 16, и 32-битное ПО маркировали как написанное для x86.

Тем не менее, Intel соизволила дать архитектуре своих 32-битных процессоров официальное название: IA-32 . К тому времени на горизонте уже замаячила 64-битная архитектура, которую вполне логично было назвать IA-64 . Intel так и сделала. Как потом стало ясно, зря.

Читайте также:  Как проверить состояние оперативной памяти windows 10

И куда пришло

Ещё один замыливший глаза подзаголовок.

Первые в мире серийно выпускаемые 64-битные процессоры продавались под маркой Intel Itanium. Архитектуре этой серии дали официальное название IA-64. Предназначались они только для серверов. Возможно, в дальнейшем предполагалось выпускать варианты Itanium’ов и для домашних ПК, но если такие планы и были, то сбыться не могли. А всё почему?

Программы, собранные специально для IA-64, работали на этих процессорах замечательно, все преимущества 64 бит были в наличии. Вот только мало их было, таких программ, до смешного мало. Зато для IA-32 их было уже очень много. Никто не станет закупать процессоры, на которых нужные программы не будут работать, а разработчики большинства нужных программ ленивы, и не станут переписывать свои творения под архитектуру, которой никто не пользуется. Получается замкнутый круг, разорвать который может лишь разработчик этого нового процессора, добавив возможность выполнять на нём не только новые, но и старые программы. Потому ведь и с 8086 совместимость сохраняется до сих пор.

Но с IA-64 вышла неудача. Она кардинально отличалась от IA-32 (настолько, что ARM и IA-32 на её фоне кажутся близнецами), и для совместимости со старым ПО использовала режим эмуляции. Очень, очень медленный режим. Достаточно медленный, чтобы даже самые толерантные к медленному софту компании думали трижды перед покупкой сервера на базе Itanium. Было и множество других проблем: слишком горячие (требуется мощное охлаждение), слишком прожорливые (в плане электроэнергии), и так далее. Серия провалилась с треском.

И вот мы подошли к ключевой точке этой истории, с которой и началась подлинная чехарда названий. В 2003 году давний конкурент Intel, компания AMD представила собственный вариант 64-битного процессора. В отличие от Itanium’ом, их архитектура не содержала чего-то кардинально нового, это была та же IA-32, но дополненная новыми командами, и работающая с 64-битными числами. Точно так же сама Intel когда-то расширила x86, превратив её в IA-32.

AMD, не долго думая, дала своей новой архитектуре название AMD64 . Ей сопутствовал большой коммерческий успех, ведь 32-битные программы выполнялись так же быстро, как на IA-32. Правда, памяти потребляли гораздо больше, но это было не так важно.

Intel в этот раз не стала изобретать велосипед, а просто взяла AMD64, и с некоторыми упрощениями реализовала в своих новых процессорах.

Но появилась проблема: как называть эту архитектуру в документации? IA-64 — занято провальными Itanium. AMD64 — для Intel несолидно. И понеслась фантазия.

Един во многих лицах

Сама Intel меняла названия новой архитектуры несколько раз. Разработчики ПО и журналисты вносили ещё большую путаницу — редко кто использовал последнее официальное название, часто встречались старые или даже взятые с потолка. По итогам прошедших лет мы имеем:

Что-то мне подсказывает, что список неполный.

На сегодня официальным названием является Intel64 . Таким образом, главная причина смены названий всё ещё не решена: и AMD64, и Intel64 вводят пользователя в заблуждение. Он ведь не обязан знать, что эти две архитектуры совместимы в обе стороны. Вполне логично предположить, что программа для AMD64 будет работать лишь на процессорах AMD, а на Intel не будет. И наоборот. Но по факту это не так.

Кто есть кто

Вся статья задумана ради этого списка 🙂

x86 — совместимые с Intel 8086 , но обычно имеют в виду IA-32

i386 — совместимый с Intel 80386 , (первым 32-битным для IBM PC), синоним IA-32

i486 — совместимый с Intel 80486 , подмножество IA-32

i686 — совместимый с Pentium Pro , подмножество IA-32

AMD64, Intel64, x86-64, x86_64, x64, AA-64, IA-32e, EM64T — 64-битное подмножество x86

IA-64 — 64-битная архитектура линейки Intel Itanium, процессоры совместимы с программами IA-32, но не наоборот

На этом пока всё. Подписывайтесь на канал, ставьте лайки, делитесь в соцсетях — будет стимул писать дальше.

Есть вопрос, замечание, предложение, возмущение? Не держите в себе, оставьте комментарий!

Оцените статью