IA-32

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

IA-32 (zkratka z Intel Architecture, 32bit) je v informatice označení architektury 32bitových CISC procesorů, které se používají zejména v počítačích PC/AT kompatibilních. Prvním procesorem architektury IA-32 byl Intel 80386 a následovalo mnoho kompatibilních procesorů jiných firem. Předchůdcem architektury IA-32 byla 16bitová architektura (Intel 8086) a nástupcem 64bitová architektura x86-64.

Označení[editovat | editovat zdroj]

Firma Intel začala označení IA-32 používat až při přípravě architektury IA-64, dříve se používalo označení i386 (podle Intel 80386). Architekturu IA-32 je možné brát jako podmnožinu předchozí architektury x86, ale rozšíření, která procesor 80386 přinesl (především stránkování paměti, ochrana paměti, privilegovaný režim, 32bitové registry), byla natolik významná, že ji označujeme za další architekturu.

Kompatibilní procesory[editovat | editovat zdroj]

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 svoji ř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.

Registry i386[editovat | editovat zdroj]

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í[editovat | editovat zdroj]

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 bajtu 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

Indexové[editovat | editovat zdroj]

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é[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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í[editovat | editovat zdroj]

Nejprve byly procesory pojmenovávány 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[editovat | editovat zdroj]

Předchozí architektura[editovat | editovat zdroj]

Procesory této architektury[editovat | editovat zdroj]

Navazující architektury[editovat | editovat zdroj]