IA-32

Z Multimediaexpo.cz

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 podmnožinu předchozí architektury x86, ale rozšíření, která procesor Intel 80386 přinesl – především stránkování paměti a 32bitové registry – byla 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ů pustily 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

Architektura

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.

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

Indexové

Tyto registry 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ů)

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)

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.

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.

Výrobci

  • Intel
  • AMD
  • Cyrix
  • NexGen
  • IBM
  • Texas Instruments

Předchozí architektura

Procesory této architektury

Navazující architektury