IA -32 - IA-32

IA-32 (zkratka „ Intel Architecture, 32-bit “, někdy také nazývaná i386 ) je 32bitová verze architektury instrukční sady x86 , kterou navrhla společnost Intel a byla poprvé implementována v mikroprocesoru 80386 v roce 1985. IA-32 je první inkarnace x86, která podporuje 32bitové výpočty; v důsledku toho může být termín „IA-32“ použit jako metonymum pro označení všech verzí x86, které podporují 32bitové výpočty.

V rámci různých směrnic programovacího jazyka je IA-32 stále někdy označován jako architektura „i386“. V některých jiných kontextech jsou některé iterace IA-32 ISA někdy označeny i486, i586 a i686, s odkazem na supersety instrukcí nabízené mikroarchitekturami 80486 , P5 a P6 . Tyto aktualizace nabídly řadu doplňků vedle základní sady IA-32, tj. Schopnosti s plovoucí desetinnou čárkou a rozšíření MMX .

Intel byl historicky největším výrobcem procesorů IA-32, přičemž druhým největším dodavatelem byla AMD . V průběhu 90. let vyráběli VIA , Transmeta a další výrobci čipů také procesory kompatibilní s IA-32 (např. WinChip ). V moderní době Intel stále vyrábí procesory IA-32 v rámci platformy mikrokontroléru Intel Quark ; od roku 2000 se však většina výrobců (včetně společnosti Intel) přesunula téměř výhradně k implementaci procesorů založených na 64bitové variantě x86, x86-64 . x86-64, podle specifikace, nabízí starší operační režimy, které fungují na IA-32 ISA pro zpětnou kompatibilitu. I vzhledem k současné prevalenci x86-64 jsou od roku 2018 verze chráněných režimů IA-32 mnoha moderních operačních systémů stále zachovány, např. Microsoft Windows a distribuce Debian Linux . Navzdory názvu IA-32 (a způsobujícímu potenciální zmatek) by 64bitová evoluce x86, která pocházela z AMD, nebyla známá jako „IA-64“, místo toho by patřila architektuře Intel Itanium .

Architektonické prvky

Primární definující charakteristikou IA-32 je dostupnost 32bitových registrů obecných procesorů (například EAX a EBX), 32bitové celočíselné aritmetické a logické operace, 32bitové offsety v rámci segmentu v chráněném režimu a překlad segmentovaných adres na 32bitové lineární adresy. Designéři využili příležitosti a provedli také další vylepšení. Některé z nejvýznamnějších změn jsou popsány níže.

Možnost 32bitového celého čísla
Všechny obecné registry (GPR) jsou rozšířeny ze 16  bitů na 32 bitů a všechny aritmetické a logické operace, operace s registrací z paměti do registru a z registru do paměti atd. Mohou pracovat přímo na 32bitových celých číslech. Pushes and popps on the stack default to 4-byte strides, and non-segmented pointers are 4 bytes wide.
Obecnější režimy adresování
Jakýkoli GPR lze použít jako základní registr a jakýkoli jiný GPR než ESP lze použít jako indexový registr v paměti. Hodnotu rejstříkového registru lze před přidáním k hodnotě základního registru a posunutím vynásobit 1, 2, 4 nebo 8.
Další segmentové registry
K dispozici jsou dva další segmentové registry, FS a GS.
Větší virtuální adresní prostor
Architektura IA-32 definuje 48bitový segmentovaný formát adresy se 16bitovým číslem segmentu a 32bitovým offsetem v rámci segmentu. Segmentované adresy jsou mapovány na 32bitové lineární adresy.
Vyžadujte stránkování
32bitové lineární adresy jsou spíše virtuální adresy než fyzické adresy; jsou přeloženy na fyzické adresy prostřednictvím tabulky stránek . V 80386, 80486 a původních procesorech Pentium byla fyzická adresa 32 bitů; v procesorech Pentium Pro a novějších umožnilo rozšíření fyzické adresy 36bitové fyzické adresy, ačkoli velikost lineární adresy byla stále 32 bitů.

Provozní režimy

Pracovní režim Je vyžadován operační systém Typ spuštěného kódu Výchozí velikost adresy Výchozí velikost operandu Typická šířka GPR
Chráněný režim 32bitový operační systém nebo zavaděč 32bitový kód v chráněném režimu 32 bitů 32 bitů 32 bitů
16bitový operační systém s chráněným režimem nebo zavaděč nebo 32bitový zavaděč 16bitový kód v chráněném režimu 16 bitů 16 bitů 16 nebo 32 bitů
Virtuální režim 8086 16- nebo 32bitový operační systém v chráněném režimu 16bitový kód v reálném režimu 16 bitů 16 bitů 16 nebo 32 bitů
Skutečný režim 16bitový operační systém v reálném režimu nebo zavaděč nebo 32bitový zavaděč 16bitový kód v reálném režimu 16 bitů 16 bitů 16 nebo 32 bitů
Neskutečný režim 16bitový operační systém v reálném režimu nebo zavaděč nebo 32bitový zavaděč 16bitový kód v reálném režimu 32 bitů 16 bitů 16 nebo 32 bitů

Viz také

Reference