IA-32 (скорочення від «Intel Architecture, 32-bit», інколи також відомий як i386[1][2][3]32-бітний варіант набору процесорних інструкцій x86, спроектований компанією Intel і вперше реалізований у вигляді мікропроцесора Intel 80386 1985-го року. 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. December 19, 2008. Процитовано August 3, 2013. «Thin Universal binaries to the specified architecture [...] should be specified as "i386", "x86_64", etc.» 
  2. Additional Predefined Macros. intel.com (en). Intel. Процитовано August 31, 2013. 
  3. Kemp, Steve. Running 32-bit Applications on 64-bit Debian GNU/Linux. Debian Administration. 
  4. Intel 64 and IA-32 Architectures Software Developer's Manual (en). Intel Corporation. September 2014. с. 31. «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. (May 5, 2009). What do IA-32, Intel 64 and IA-64 Architecture mean?. software.intel.com. Intel. Процитовано December 19, 2014. 
  6. Supported Hardware. Ubuntu Help. Canonical. Процитовано August 31, 2013. 
  7. Windows 10 System Requirements & Specifications. www.microsoft.com (en). Процитовано August 20, 2018. 
  8. Alternative downloads. www.ubuntu.com (en). Canonical. Процитовано August 20, 2018.