IA-32 - IA-32
IA-32 (zkratka pro "Intel Architecture, 32-bit", někdy také nazývaný i386[1][2])[3] je 32-bit verze x86 architektura sady instrukcí, navrhl Intel a poprvé implementováno v 80386 mikroprocesor v roce 1985. IA-32 je první inkarnací x86, která podporuje 32bitové výpočty;[4] ve výsledku lze termín „IA-32“ použít jako metonym k označení všech verzí x86, které podporují 32bitové výpočty.[5][6]
V rámci různých programovací jazyk směrnic, je IA-32 stále někdy označována jako architektura „i386“. V některých jiných kontextech jsou někdy označeny určité iterace IA-32 ISA i486, i586 a i686, s odkazem na instrukci nadmnožiny nabízené 80486, P5 a Mikroarchitektury P6 resp. Tyto aktualizace nabídly řadu doplňků vedle základní sady IA-32, tj. funkce s plovoucí desetinnou čárkou a Rozšíření MMX.
Intel byl historicky největším výrobcem procesorů IA-32 a druhým největším dodavatelem byl AMD. V 90. letech PŘES, Transmeta a další výrobci čipů také vyráběli procesory kompatibilní s IA-32 (např. WinChip ). V moderní době Intel stále vyrábí procesory IA-32 pod Intel Quark mikrokontrolér od roku 2000 se však většina výrobců (včetně 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ší provozní režimy, které fungují na IA-32 ISA pro zpětnou kompatibilitu. I vzhledem k současné prevalenci x86-64 je od roku 2018 stále zachována verze chráněného režimu IA-32 mnoha moderních operačních systémů, např. Microsoft Windows[7] a Debian Linuxová distribuce.[8] Navzdory jménu IA-32 (a způsobujícímu potenciální zmatek) by 64bitový vývoj x86, který vznikl z AMD, nebyl znám jako „IA-64“, tento název místo toho náležel Architektura Intel Itanium.
Architektonické prvky
Primární definující charakteristikou IA-32 je dostupnost 32bitového univerzálního zařízení registry procesorů (například EAX a EBX), 32bitová celé číslo aritmetické a logické operace, 32bitové posuny v rámci segmentu v chráněný režim a překlad segmentovaných adres na 32bitové lineární adresy. Návrhář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.
- 32bitové celé číslo
- Všechno univerzální registry (GPR) jsou rozšířeny z 16bity až 32 bitů a všechny aritmetické a logické operace, operace paměti k registraci a registru k paměti atd. mohou pracovat přímo na celých 32bitových celých číslech. Zatlačí a vyskočí na zásobník výchozí jsou 4bajtové kroky a nesegmentované ukazatele jsou 4 bajty široké.
- Obecnější režimy adresování
- Jakýkoli GPR lze použít jako základní registr a jakýkoli GPR jiný než ESP lze použít jako indexový registr, v paměti odkaz. Hodnota indexového registru může být vynásobena 1, 2, 4 nebo 8 před přidáním k hodnotě základního registru a posunutí.
- Další segmentové registry
- K dispozici jsou dva další segmentové registry, FS a GS.
- Větší virtuální adresový prostor
- Architektura IA-32 definuje 48bitový segmentovaný formát adresy s 16bitovým číslem segmentu a 32bitovým offsetem v rámci segmentu. Segmentované adresy jsou mapovány na 32bitové lineární adresy.
- Stránkování poptávky
- 32bitové lineární adresy jsou spíše virtuální adresy než fyzické adresy; jsou přeloženy na fyzické adresy pomocí a tabulka stránek. V 80386, 80486 a původní Pentium procesory, fyzická adresa byla 32 bitů; v Pentium Pro a novější procesory Rozšíření fyzické adresy povoleno 36bitové fyzické adresy, i když velikost lineární adresy byla stále 32 bitů.
Provozní režimy
Pracovní režim | Operační systém Požadované | Typ spuštěného kódu | Výchozí velikost adresy | Výchozí velikost operandu | Typický GPR šířka |
---|---|---|---|---|---|
Chráněný režim | 32bitový operační systém nebo zavaděč | 32bitový kód chráněného 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 chráněného režimu | 16 bitů | 16 bitů | 16 nebo 32 bitů | |
Virtuální režim 8086 | 16- nebo 32bitový operační systém s chráněným režimem | 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ů |
Viz také
Reference
- ^ "TOTÉŽ". Příručka obecných příkazů BSD. Jablko. 19. prosince 2008. Citováno 3. srpna 2013.
Tenké univerzální binární soubory k určené architektuře [...] by měly být zadány jako „i386“, „x86_64“ atd.
- ^ „Další předdefinovaná makra“. software.intel.com. Intel. Citováno 25. listopadu 2020.
- ^ Kemp, Steve. „Spouštění 32bitových aplikací na 64bitovém systému Debian GNU / Linux“. Správa Debianu.
- ^ „Příručka pro vývojáře softwaru Intel 64 a IA-32 Architectures“. Intel Corporation. Září 2014. str. 31.
Procesor Intel386 byl prvním 32bitovým procesorem v rodině architektury IA-32. Zavádí 32bitové registry pro použití jak k zadržení operandů, tak k adresování.
- ^ Green, Ronald W. (5. května 2009). „Co znamenají architektury IA-32, Intel 64 a IA-64?“. software.intel.com. Intel. Citováno 19. prosince 2014.
- ^ „Podporovaný hardware“. Nápověda Ubuntu. Kanonický. Archivovány od originál dne 19. prosince 2014. Citováno 31. srpna 2013.
- ^ „Systémové požadavky a specifikace systému Windows 10 | Microsoft“. www.microsoft.com. Citováno 20. srpna 2018.
- ^ https://www.debian.org/ports/i386/