IA-32

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

IA-32(скорочення від «Intel Architecture, 32-bit», інколи також відомий якi386[1][2][3]32-бітнийваріантнабору процесорних інструкційx86,спроектований компанієюIntelі вперше реалізований у виглядімікропроцесораIntel 803861985 року. IA-32 є першою «інкарнацією» x86, що підтримує «чисте» 32-розрядне програмування[4];як результат, термін «IA-32» може застосовуватися до всіх версій x86, що підтримують 32-розрядні обчислення[5][6].

У опціях багатьохкомпіляторівмов програмуванняIA-32 досі інколи позначається як «архітектура i386». У деяких інших контекстах для IA-32 використовуються синонімиi486,i586абоi686щодо надмножин, реалізованих у відповідних мікроархітектурах (486, P5, P6), що мають доповнення до базової 32-розрядної архітектури IA-32 (такі, як підтримка рухомої коми абоMMX).

Історично фірма Intel була найбільшим виробником процесорів IA-32; другим за обсягом виробництва булаAMD.У 1990-х роках такі процесори виробляли такожVIA Technologies,Transmeta,Centaurта деякі інші фірми. У 21-му столітті Intel деякий час продовжувала виробництво процесорів IA-32 у рамках мікроконтролерної платформиIntel Quark.Втім, у 2010-х роках більшість виробників (включно з Intel) перейшли до виробництва майже винятково процесорів 64-розрядної архітектуриx86-64.

Станом на 2018 рік версії операційних систем для IA-32 все ще існують (наприклад,Microsoft Windows[7]абоUbuntu Linux[8]).

Архітектурні особливості

[ред.|ред. код]

Основною визначною характеристикою архітектури IA-32 є наявність 32-розряднихрегістрів загального призначення(таких, як EAX або EBX), 32-розрядні арифметичні та логічні операції 32-розрядні зміщення у сегменті (у захищеному або «нереальному» режимі роботи процесора), а також трансляціясегментованих адресу 32-розрядні лінійні адреси.

Проектувальники i386, користуючись нагодою, імплементували також і інші корисні нововведення, зокрема:

  • Узагальнені режими адресування: будь-який регістр загального призначення може використовуватися як базовий, і будь-який крім ESP може бутиіндексним регістромпри зверненні до пам'яті. Значення індексного регістру можна помножити на 1, 2, 4 або 8 перед додаванням до базового регістра (і, опційно, зміщення (англ.displacement)).
  • Додаткові сегментні регістри (FS і GS).
  • Збільшений адресний простір для віртуальних адрес (48 біт, що отримуються складанням 16-розрядного номера сегмента з 32-розрядним зміщенням). Після обчислення сегментної адреси вона відображується на 32-розрядну лінійну.
  • Механізмпідкачування сторінокз 32-розрядними або 36-розрядними (у пізніших процесорах) фізичними адресами пам'яті.

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

[ред.|ред. код]
Режим роботи Операційна система Тип коду, що може запускатися Розмір адреси (за замовчуванням) Розмір операндів (за замовчуванням) Типова ширина регістрів процесора загального призначення
Захищений 32-розрядна ОС або завантажник 32-розрядний код 32 біт 32 біт 32 біт
16-розрядна ОС захищеного режиму або завантажник, або 32-розрядний завантажник 16-розрядний код захищеного режиму 16 біт 16 біт 16 або 32 біт
Virtual 8086 mode[en] 16- або 32-розрядна ОС захищеного режиму 16-розрядний код реального режиму 16 біт 16 біт 16 або 32 біт
Реальний 16-розрядна ОС реального режиму або завантажник, або 32-розрядний завантажник 16-розрядний код реального режиму 16 біт 16 біт 16 або 32 біт

Див. також

[ред.|ред. код]

Джерела

[ред.|ред. код]
  1. DITTO.BSD General Commands Manual.Apple.19 грудня 2008. Архіворигіналуза 2 червня 2012.Процитовано 3 серпня 2013.Thin Universal binaries to the specified architecture [...] should be specified as "i386", "x86_64", etc.
  2. Additional Predefined Macros.intel.com(англ.).Intel.Процитовано 31 серпня 2013.
  3. Kemp, Steve.Running 32-bit Applications on 64-bit Debian GNU/Linux.Debian Administration.Архіворигіналуза 16 вересня 2013.Процитовано 19 січня 2020.
  4. Intel 64 and IA-32 Architectures Software Developer's Manual(англ.).Intel Corporation.September 2014. с. 31. Архіворигіналуза 26 січня 2012.Процитовано 19 січня 2020.The Intel386 processor was the first 32-bit processor in the IA-32 architecture family. It introduced 32-bit registers for use both to hold operands and for addressing.
  5. Green, Ronald W. (5 травня 2009).What do IA-32, Intel 64 and IA-64 Architecture mean?.software.intel.com.Intel.Архіворигіналуза 19 грудня 2014.Процитовано 19 грудня 2014.
  6. Supported Hardware.Ubuntu Help.Canonical.Архіворигіналуза 5 лютого 2020.Процитовано 31 серпня 2013.
  7. Windows 10 System Requirements & Specifications.www.microsoft.com(англ.).Архіворигіналуза 1 травня 2018.Процитовано 20 серпня 2018.
  8. Alternative downloads.www.ubuntu.com(англ.).Canonical. Архіворигіналуза 20 серпня 2018.Процитовано 20 серпня 2018.