x86-64
x86-64 (též AMD64, EM64T, IA-32E) 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. Hlavní výhodou nastupujícího 64bitového režimu je odstranění limitu přímé dostupnosti paměti nad 4 GiB operační paměti RAM. Procesory jsou obdobně jako předchozí generace realizovány interně jako RISCová architektura emulující pomocí mikrokódu architekturu CISC.
Obsah |
Vlastnosti [editovat]
V novém 64bitovém režimu jsou použity strojové instrukce, které pracují se 64bitovou adresou, takže je teoreticky možné využívat až 264 operační paměti RAM, avšak reálně procesor podporuje 248 = 256 TB.
Vývoj [editovat]
Architektura AMD64 byla vyvinuta společností AMD jako alternativa k radikálně odlišné architektuře IA-64, kterou se snažila prosadit dvojice Intel a Hewlett-Packard.[1] AMD64 byl evoluční krok CISC architektury podobný nástupu 32bitové architektury IA-32 na rozdíl od architektury IA-64 (procesor Itanium), která byla pokusem o prosazení nové zpětně nekompatibilní 64bitové architektury typu RISC. Jako první bylo na novou architekturu adaptováno jádro Linuxu v roce 2001 (ještě před fyzickou dostupností procesorů).[2][3] Jako první byl s podporou x86-64 v roce 2003 na trh uveden procesor Opteron. Původní označení x86-64 bylo společností AMD změněno na AMD64,[4] zatímco Intel používá u svých procesorů označení EM64T a IA-32E[5] a VIA „64-bit processors in VIA's x86 platform“.[6] Microsoft technologii nazývá „64-bit extended systems“ nebo x64.[5]
Základní rozšíření [editovat]
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 [editovat]
| Režim procesoru | Potřebný operační systém | Nutno znovu přeložit stávající programy | Výchozí velikost adresy | Výchozí velikost operandu | Je k dispozici 64bitové rozšíření registrů | Typická šířka registru | |
|---|---|---|---|---|---|---|---|
| Nové režimy | 64bitový Long | 64bitový OS | ano | 64 | 32 | ano | 64 |
| Režim kompatibility | ne | 32 | 32 | ne | 32 | ||
| 16 | 16 | 16 | |||||
| Dosavadní režimy | Chráněný režim | Klasický 16 nebo 32bitový OS | ne | 32 | 32 | ne | 32 |
| 16 | 16 | 16 | |||||
| Virtuální 8086 režim | 16 | 16 | 16 | ||||
| Reálný režim | Klasický 16bitový OS | ||||||
Reference [editovat]
- ↑ Advanced Micro Devices: AMD Releases x86-64 Architectural Specification; Enables Market Driven Migration to 64-Bit Computing, tisková zpráva, August 10, 2000, [cit. 2007-08-03], Dostupné on-line.
- ↑ Andi Kleen. Porting Linux to x86-64 [online]. 2001-06-26. Dostupné online.
- ↑ Andi Kleen. Andi Kleen's Page [online]. . Dostupné online.
- ↑ http://alioth.debian.org/docman/view.php/30192/21/debian-amd64-howto.html – The Debian GNU/Linux AMD64 HOW-TO
- ↑ a b http://blogs.msdn.com/b/junfeng/archive/2004/08/11/212534.aspx – AMD64? X86-64? EM64T? X64? Anymore?
- ↑ VIA. VIA Nano™ Processor [online]. VIA, [cit. 2010-11-09]. Dostupné online. (anglicky)
Externí odkazy [editovat]
- Matthew Kerner, Neil Padgett: A History of Modern 64-bit Computing