x86-64

Z Multimediaexpo.cz

x86-64 (dříve AMD64) je v informatice označení generace 64bitových procesorů pro počítače IBM PC kompatibilní. Procesor je zpětně kompatibilní s 32bitovou (viz IA-32) a 16bitovou architekturou (viz x86), a proto se na IBM PC prosadil.

Procesory jsou stejně jako předchozí generace realizovány interně jako RISCová architektura emulující pomocí mikrokódu architekturu CISC.

Obsah

Vývoj

Architekturu x86-64 vyvinula firma AMD a uvedla ji na trh v roce 2003. Firma Intel do té doby prosazovala zpětně nekompatibilní 64bitovou architekturu IA-64 (procesor Itanium), později však licencovala x86-64 od AMD a prodávala tyto procesory pod označením EM64T.

Základní rozšíření

Kvůli zpětné kompatibilitě je rozšíření realizováno jako další módy procesoru. K reálnému, chráněnému a V86 módu i386, nyní zvanými 'Legacy' (zděděné) módy, přibyly dva 'Long' (dlouhé) módy: '64bitový' a 'kompatibilní'. Procesor je možné provozovat buď s 32bitovým jádrem operačního systému (kterým může být i systém určený pro i386) v Legacy módech, nebo s 64bitovým jádrem v Long módech - jádro potom běží v 64bitovém módu a aplikace v 64bitovém nebo v kompatibilním.

Většina vylepšení architektury se týká pouze 64bitového módu, menšina i kompatibilního. Legacy módy nemají žádné vylepšení (na rozdíl od i386, kde byl vylepšen i starý reálný mód).

  • Plná podpora 64bitových celých čísel - veškeré aritmetické i logické operace se provádí v 64bitech.
  • Rozšíření registrů - registry byly rozšířeny na 64bitů (stále je přístupná 32bitová, 16bitová a 8bitová část).
  • Rozšíření počtu registrů - k původní sadě 8 'general-purpose' registrů přibylo dalších 8. To umožňuje držet více lokálních proměnných v registrech a tedy významně zrychluje aplikace. 16 registrů je ovšem stále málo v porovnání s RISCovými stroji. Zdvojnásoben z 8 na 16 byl i počet XMM registrů.
  • Rozšíření virtuálního adresového prostoru - současné implementace AMD64 mohou adresovat 256 terabyte (248), v budoucnu bude možné to rozšířit na 16 exabyte (264). Pointerová aritmetika běží v 64bitech, omezení je dáno metodou překladu virtuálních adres na fyzické.
  • Rozšíření fyzického adresového prostoru - současné implementace AMD64 mohou adresovat 1 terabyte (240) RAM, architektura povoluje rozšíření na 4 petabyte (252). V legacy módech je podporováno PAE (rozšíření fyzických adres), stejně jako na moderních procesorech architektury i386, umožňující přístup k 64 gigabyte.
  • Adresace relativní k ukazateli instrukce - adresace relativní k RIP zvyšuje efektivitu kódu nezávislého na pozici používaného ve sdílených knihovnách.
  • SSE instrukce - součástí architektury je povinná implementace rozšíření procesorů i386 SSE a SSE2 pro výpočty v pohyblivé řádové čárce. Podpora SSE3 byla přidána dodatečně.
  • Bit No-eXecute (nespustitelné) - stránku paměti je bitem NX možné označit jako obsahující pouze data a zabránit tak spuštění kódu z dané stránky. Tato vlastnost umožňuje chránit systém před většinou buffer overrun (přetečení bufferu) chyb, které se často zneužívají k útoku.
  • Odstranění starších vlastností - v Long módech procesor nepodporuje některé méně používané vlastnosti i386, jako je segmentace (částečně stále fungují registry FS a GS), TSS nebo v86.

Operační módy

Operační módy Operační systém vyžadován Překlad i386 aplikace vyžadován Výchozí velikost adresy Výchozí velikost operandu Rozšíření registrů Typická šířka operace
Long mode 64-bit mode 64-bit OS (např. WinXP x64, Linux x86-64, Solaris 10) ano 64 32 ano 64
Compatibility mode ne 32 32 ne 32
16 16 16
Legacy Mode Protected Mode Legacy 16-bit nebo 32-bit OS ne 32 32 ne 32
16 16 16
Virtual 8086 mode 16 16 16
Real mode Legacy 16-bit OS

Implementace

První procesor, který používal tuto architekturu, byl AMD Athlon 64 s jádry „Clawhammer“ (Socket 754) a „Sledgehammer“ (Socket 940).

Externí odkazy