AMD64

Z Wikipedie, otevřené encyklopedie

AMD64 (též x86-64) je 64bitová architektura procesoru od firmy AMD. Na rozdíl od IA-64 od Intelu se jedná o zpětně kompatibilní rozšíření architektury x86, respektive i386. Stejně jako pozdější implementace i386 je realizováno jako interně RISCová architektura emulující vnějškově CISCovou.

Procesory této architektury začal později vyrábět i Intel pod názvem EM64T.

[editovat] 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 chyb, které se často použí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.

[editovat] Operační módy

Operační módy Operační systém vyžadován Překlad i386 aplikace vyžadován Default velikost adresy Default velikost operandu Rozšíření registrů Typická šířka operace
Long mode 64-bit mode Nový 64-bit (x86-64) OS (např. WinXPx64, 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

[editovat] Implementace

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