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

