IA-32
Z Wikipedie, otevřené encyklopedie
IA-32 (Intel Architecture, 32-bit) je označení architektury procesorů. Firma Intel s tímto názvem přišla až při přípravě architektury IA-64, dříve se používalo označení i386. Jedna se o architekturu 32bitovou, registrovou, s CISCovou instrukční sadou. Je možné brát ji jako podmožinu předchozí architektury x86, ale rozšíření který procesor Intel 80386 přinesl - především stránkování a 32bitové registry – byly natolik významné, že procesory s ním kompatibilní lze označit za další architekturu.
Po úspěchu procesorů architektury x86 a tohoto procesoru se do výroby kompatibilních procesorů pustili i další firmy.
V průběhu vývoje AMD koupilo NexGen (procesor AMD K6 navazoval spíše na NexGen Nx586 než na AMD K5) a později i Cyrix, aby rozšířilo svojí řadu x86 procesorů.
S potřebou vyššího výkonu se začaly projevovat nevýhody komplikovanosti této architektury. Protože přejít na jinou architekturu nebyla reálná možnost, byly pozdější procesory stavěny vlastně ze dvou částí: jedné, která překódovávala instrukce i386 do jiné, RISCové architektury, a druhé, která instrukce této RISCové architektury zpracovávala s využitím instrukčního paralelismu, spekulativního vyhodnocování a dalších pokročilých metod.
Obsah |
[editovat] Architektura
- viz Intel 80386 a další konkrétní procesory
[editovat] Registry i386
Procesor 8086 měl pouze 16bitové registry, tzn. neměl jejich 32bitová rozšíření charakterizovaná předponou E. Tato 32bitová rozšíření se objevila až u procesorů 80386.
Registry procesorů i386 se dají rozdělit mnoha způsoby, zde najdete jedno z nejpoužívanějších.
[editovat] Univerzální
Tyto registry jsou 32bitové s možností přístupu buď k celému registru, nebo k jeho spodním 16 bitům, nebo k vyššímu a nižšímu bytu spodních šestnácti bitů. K horním 16 bitům registru přistupovat nejde.
Například k registru EAX lze přistupovat 32bitově (přístup k celému registru), nebo 16bitově k jeho spodní polovině (tato část se nazývá registr AX). Vyšších 8 bitů registru AX se nazývá registr AH (chová se jako osmibitový registr), jeho nižších 8 bitů se nazývá AL. Obdobně se chovají všechny ostatní univerzální registry (EBX - BX - BH - BL, …).
Univerzální registry může programátor využít jakkoli, zároveň má každý z nich nějakou zvláštní funkci:
- EAX - akumulátor (řada instrukcí ho má jako implicitní operand)
- EBX - bázový registr (tj. dá se využít pro adresaci)
- ECX - čítač (tj. určený pro počítání cyklů)
- EDX - rozšíření akumulátoru
[editovat] Indexové
Tyto registy slouží primárně pro adresaci v paměti. Jsou 32bitové, lze však samostatně přistupovat k jejich spodním 16 bitům (ty tvoří 16bitové registry). Např. spodních 16 bitů registru ESI se nazývá registr SI.
- ESI - source index - index pro zdroj (tj. pro čtení)
- EDI - destination index - index pro cíl (tj. pro zápis)
- EBP - určen jako ukazatel na záznam aktivní procedury na zásobníku (tím, že se implicitně spojoval s SS)
- ESP - ukazatel vrcholu zásobníku
- EIP - ukazatel kódu následující instrukce. Nelze k němu přímo přistupovat (jen pomocí instrukcí skoků)
[editovat] Segmentové
Slouží k ukládání adresy segmentu – pomocí nich se adresuje paměť. Jejich viditelná (přístupná) část je pouze 16bitová.
- CS - segment kódu
- DS - datový segment
- ES - extra segment
- SS - zásobníkový (stack) segment
- FS a GS - přibyly u novějších procesorů (od 80386 ???). Nemají zvláštní název (písmena byla vybrána podle abecedy pro doplnění řady CS, DS, ES, FS, GS)
[editovat] EFLAGS (registr příznaků)
Je 32bitový, jeho spodních 16 bitů se nazývá FLAGS. Ukládají se do něj informace o stavu procesoru, úspěšnosti provedených instrukcí, atd.
[editovat] Pojmenování
Nejprve byly procesory pojmenovávané prostě svými čísly v produkční řadě. Taková jména ovšem není možné chránit copyrightem, proto se Intel rozhodl pro překlad do řečtiny a pojmenoval další procesor Pentium.
[editovat] Výrobci
- Intel
- AMD
- Cyrix
- NexGen
- IBM
- Texas Instruments
[editovat] Předchozí architektura
[editovat] Procesory této architektury
- Intel
- Intel 80386
- Intel 80486
- Intel Pentium
- Intel Pentium Pro
- Intel Pentium II
- Intel Pentium III
- Intel Pentium IV Xeon
- AMD
- Am386
- Am486
- AMD K5
- AMD K6
- AMD Duron
- AMD Athlon
- NexGen


