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

[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.

Registry procesorů x86

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

[editovat] Předchozí architektura

[editovat] Procesory této architektury

[editovat] Navazující architektury