Movatterモバイル変換


[0]ホーム

URL:


Přeskočit na obsah
WikipedieWikipedie: Otevřená encyklopedie
Hledání

x86-64

Z Wikipedie, otevřené encyklopedie
(přesměrováno zAMD64)
AMD Athlon 64.

x86-64 (téžAMD64,EM64T,IA-32E) je vinformatice označení generace64bitovýchprocesorů propočítačeIBM PC kompatibilní. Procesor jezpětně kompatibilní s32bitovou (vizIA-32) a16bitovou architekturou (vizx86), 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 GiBoperační pamětiRAM, podporaNX bitu a vyšší rychlost zpracování 64bitových operací. Procesory jsou obdobně jako předchozí generace realizovány interně jakoRISCová architektura emulující pomocí mikrokódu architekturuCISC.

Vlastnosti

[editovat |editovat zdroj]

V novém64bitovém režimu jsou použitystrojové instrukce, které pracují se 64bitovými čísly a adresami, takže je možné využívat celá čísla až 264=1,8×1019, což je až 18 Exabajtůoperační pamětiRAM (reálně však podporují procesory méně, viz níže). Kvůli prodloužení operandů strojových instrukcí z32bitových na 64bitové došlo k tzv. zřídnutí kódu (stejnýstrojový kód je v 64bitové variantě delší, než v 32bitové), a proto jsou nároky na dostupnouoperační paměť u 64bitového systému vyšší, než kdyby byl použit stejný 32bitový operační systém (v systémuWindows 7 jsou minimální požadavky 1 GB pro 32bitový systém a 2 GB RAM pro 64bitový systém).[1]

Velikost paměti

[editovat |editovat zdroj]

Teoreticky může 64bitový procesor používat 64bitové adresy pro adresaci paměti, ale z praktických důvodů je to méně. První 64bitové procesory používaly pro adresaci 48 bitů, což znamená maximálně 248 bajtů = 256 TB adresovatelné paměti (resp. virtuální paměti, protože reálně může býtoperační pamětiRAM v počítači mnohem méně). Procesor díky mechanismustránkování paměti umožňuje efektivně využívat i tak velký adresní prostor procesu.

V roce 2019 zavedla 10. generace procesorůIntel (Ice Lake) podporu pro 5 úrovnítabulek stránek prostránkování paměti. FirmaAMD uvedla podporu v procesoru Zen 4 vydaném v roce 2022. Podporu projádro Linuxu začala firma Intel vytvářet už v roce 2017. Tato vlastnost slouží k podpoře 57bitové adresacevirtuální paměti, což je 128 PB (257=1,4×1017).[2]

Úrovně architektury

[editovat |editovat zdroj]

V roce 2020 definovaly firmyAMD,Intel,Red Hat aSUSE úrovně architektury (anglickyarchitecture levels) pro 64bitové procesory Intel-kompatibilních procesorů,[3] které slouží k tomu, aby bylo možné lépe využívat rozšiřujících schopnosti novějších procesorů v knihovnách i v běžných programech. Definované úrovně architektury jsou:

V roce 2022 byl stanoven minimální požadavek na x86-64 procesor vRed Hat Enterprise Linuxu verze 9 na x86-64-v2 (na starších neběží),[3] pro verziRHEL 10 se uvažuje o minimálním požadavku na x86-64-v3.[5] K rozlišení schopností procesorů je používána instrukceCPUID, úroveň architektury lze v Linuxu zjistit uživatelsky různými způsoby (např. skriptem).[6]

Windows 8 (rok 2012) vyžadují procesor s podporou SSE2, čemuž vyhověly všechny 64bitové procesory (některé 32bitové však nikoliv). OdWindows 8.1 (rok 2013) byly na 64bitové platformě požadovány některé strojové instrukce, které chyběly u prvních 64bitových procesorů Intel a AMD (CMPXCHG16b, PrefetchW and LAHF/SAHF).[2]Windows 11 od svého vydání v roce 2021 vyžadují alespoň 8. generaci procesorů IntelCoffee Lake z roku 2017, ale běh na starších procesorech je v roce 2024 stále možný, pokud splní podmínku pro verzi 8.1.[7] Windows 11 24H2 vyžadují alespoň procesor s instrukční sadouSSE 4.2,[8] což je úroveň architektury x86-64-v2 (tj. procesory od roku 2008).

64bitový režim

[editovat |editovat zdroj]

Je-li na počítači s 64bitovým procesorem (x86-64) spuštěn 64bitovýoperační systém, je možné přímo spouštět64bitové i32bitové aplikace vchráněném režimu. Dále je možné spouštět16bitové aplikace vchráněném režimu procesoruIntel 80286, avšak nelze spouštět 16bitové aplikace v reálném režimu procesoruIntel 8086.

V 64bitovýchWindows NT (např.Windows 7 neboWindows 10) však subsystémNTVDM nepodporuje běh 16bitových aplikací v chráněném režimu procesoru Intel 80286, takže je nelze spustit, i když hardwarové omezení pro to není. Omezení lze obejít pomocí virtualizace (spuštění virtualizovaného 32bitového nebo 16bitového systému a uvnitř něj pak požadované aplikace).

V 64bitovém systémuLinux lze 16bitové aplikace v chráněném režimu procesoru Intel 80286 spouštět bez omezení pomocíWine.

32bitový režim

[editovat |editovat zdroj]

Je-li na počítači se 64bitovým procesorem použit 32bitový systém, není možné spouštět 64bitové aplikace, ale je možné spouštět 16bitové aplikace jak v chráněném režimu procesoru Intel 80286, tak v reálném režimu procesoru Intel 8086.

16bitový režim

[editovat |editovat zdroj]

Na počítači s 64bitovým procesorem (x86-64) lze spustit 16bitový systém v reálném režimu (např. operační systémDOS), avšak pak nelze přímo spustit ani 32bitové ani 64bitové aplikace. Protože však v reálném 16bitovém režimu neexistuje žádná ochrana a žádná omezení (chybíprivilegovaný režim), může si kterákoliv aplikace přepnout procesor do 32bitového nebo 64bitového režimu (jak to dělá např.DJGPP pro využitíDPMI). Návrat zpět pak nemusí být bez restartu počítače možný.

Vývoj

[editovat |editovat zdroj]

Architektura AMD64 byla ohlášena roku 1999 společnostíAMD a plně specifikována v srpnu 2000 jako alternativa k radikálně odlišné architektuřeIA-64, kterou se snažila prosadit dvojiceIntel aHewlett-Packard.[9] AMD64 byl evoluční krokCISC architektury podobný nástupu32bitové architekturyIA-32 na rozdíl od architektury IA-64 (procesorItanium), která byla pokusem o prosazení nové zpětně nekompatibilní 64bitové architektury typuRISC. Jako první bylo na novou architekturu adaptovánojádro Linuxu v roce 2001 (ještě před fyzickou dostupností procesorů).[10][11] Jako první byl s podporou x86-64 v roce2003 na trh uveden procesorOpteron. Původní označení x86-64 bylo společností AMD změněno na AMD64,[12] zatímco Intel používá u svých procesorů označení EM64T a IA-32E[13] a VIA „64-bit processors in VIA's x86 platform“.[14] Microsoft technologii nazývá „64-bit extended systems“ nebo x64.[13]

Základní rozšíření

[editovat |editovat zdroj]

Kvůlizpětné kompatibilitě je rozšíření realizováno jako další režimy procesoru. Kreálnému,chráněnému aV86 režimui386, nyní zvanými „Legacy“ (zděděný) režim, přibyly dva „Long“ (dlouhé) režimy:64bitový akompatibilní. Procesor je možné provozovat buď s 32bitovýmjádremoperačního systému (kterým může být i systém určený pro i386) v Legacy režimech, nebo s 64bitovým jádrem v Long režimu – jádro potom běží v 64bitovém režimu a aplikace v 64bitovém nebo v kompatibilním režimu.

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

  • Plná podpora 64bitových celých čísel – veškeré aritmetické i logické operace se provádí v 64 bitech.
  • Rozšíření registrůregistry byly rozšířeny na 64 bitů (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í sRISCový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 256TiB (248), v budoucnu bude možné rozšířit na 16EiB (264). Pointerová aritmetika běží v 64 bitech, omezení je dáno metodou překladu virtuálních adres na fyzické.
  • Rozšíření fyzického adresového prostoru – původní implementace AMD64 mohla adresovat maximálně 1TiB (240) RAM; od roku 2007 (AMD K10) je používáno 48 bitů, což je adresace maximálně 256TiB; architektura umožňuje rozšíření až na 4PiB (252). V legacy režimech je podporovánoPAE (rozšíření fyzických adres), stejně jako na moderních procesorech architektury i386, umožňující přístup k 64GiB.
  • 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ýchknihovnách.
  • SSE instrukce – součástí architektury je povinná implementace rozšíření procesorůi386SSE aSSE2 pro výpočty v pohyblivé řádové čárce. PodporaSSE3 byla přidána dodatečně.
  • No-eXecute bit – stránku paměti je bitemNX 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šinoubuffer overrun (přetečení bufferu) chyb, které často zneužívá k útokumalware.
  • Odstranění starších vlastností – v Long režimu procesor nepodporuje některé méně používané vlastnosti i386, jako jesegmentace paměti (částečně stále fungují registry FS a GS), TSS nebo v86.

Operační módy

[editovat |editovat zdroj]
Režim procesoruPotřebnýoperační systémNutno znovu přeložit stávající programyVýchozí velikost adresyVýchozí velikost operanduJe k dispozici 64bitové rozšíření registrůTypická šířka registru
Nové režimy64bitový Long64bitový OSano6432ano64
Režim kompatibilityne3232ne32
161616
Dosavadní režimyChráněný režimKlasický 16 nebo 32bitový OSne3232ne32
161616
Virtuální 8086 režim161616
Reálný režimKlasický 16bitový OS

Podpora operačních systémů

[editovat |editovat zdroj]

Následuje popis některých operačních systémů, které podporují architekturu x86-64:

DOS

[editovat |editovat zdroj]

Je možné provozovat long mód podDOSem bez DOS rozšíření, ale uživatel se musí vrátit do normálního móduBIOS nebo DOS přerušeními.Je dokonce možné vstoupit do long módu s rozšířením pro DOS podobně jako to děláDOS/4GW, ale mnohem komplexněji od té doby, co x86-64 nemá virtuální 8086 mód.

Linux

[editovat |editovat zdroj]

Linux byl prvním z operačních systémů, který podporoval architekturu x86-64 v long módu. Učinil tak ve své verzi 2.4 z ledna 2001, a to ještě dříve, než byl dostupný x86-64hardware. Linux ovšem také poskytuje zpětnou kompatibilitu pro spouštění 32bitových programů.

Několik linuxových distribucí je v současné době dodáváno s nativními x86-64 jádry. Některé, jako napříkladArch Linux,SUSE,Mandriva neboDebian umožňují uživatelům instalovat 32bitové komponenty a knihovny, které poběží mimo x86-64. Jiné distribuce, napříkladFedora,Slackware neboUbuntu jsou dostupné ve verzích pro jak pro 32bitovou architekturu, tak i pro x86-64. Fedora aRed Hat Enterprise Linux dovolují instalaci všech komponent v obou verzích (32 i 64bitové) na 64bitový systém.

X32 ABI (Application Binary Interface), které bylo představeno ve verzi 3.4 jádra Linuxu, dovoluje programům kompilovaným pro x32 ABI běžet v 64bitovém módu, když se používají 32bitové ukazatele a datové pole. I když to limituje program k využití 4 GB paměti, také to snižuje nároky na paměť programu a v některých případech to umožní programu běžet rychleji.

64bitový Linux dovoluje využít až 128 TB virtuálního adresního prostoru pro jeden proces a umí adresovat téměř 64 TB fyzické paměti (musí se přihlížet k limitům procesoru a systému).

OS X

[editovat |editovat zdroj]

Mac OS X verze 10.4.7 a vyšší verze Mac OS X v10.4 umožňují běh 64bitových utilitpříkazového řádku pomocí POSIXu a matematických knihoven na zařízeních s 64bitovými Intel procesory i 64bitovými PowerPC. Žádné jiné knihovny nebo frameworky nepracují s 64bitovými aplikacemi v Mac OS X v10.4. Jádro společně se svými rozšířeními je pouze 32bitové.

Mac OS X v10.5 podporuje 64bitové grafické aplikace a používá k tomu Cocoa, Quartz,OpenGL a X11 na zařízeních s 64bitovýmiIntel procesory i s 64bitovýmiPowerPC. Všechny negrafické knihovny a frameworky také podporují 64bitové verze. Jádro i jeho rozšíření jsou 32bitové.

Mac OS X v10.6 je první verze OS X, které má 64bitové jádro. Nicméně, ne všechny 64bitové počítače umožňují běh 64bitového jádra, a ne všechny, které to umí, to také implicitně dělají. 64bitové jádro, stejně jako to 32bitové, podporuje běh 32bitových aplikací. Obě jádra také podporují 64bitové aplikace. 32bitové aplikace mají virtuální adresní prostor limitovaný 4 GB pod jádrem.

OS X v10.7 a vyšší má pouze 64bitové jádro, ale je ponechaná podpora běhu 32bitových aplikací (a to dokonce i pro 64bitové počítače, které v Mac OS X 10.6 mohli používat pouze 32bitové jádro).

64bitové jádro nepodporuje 32bitové rozšíření jádra a 32bitové jádro nepodporuje 64bitové rozšíření jádra. Od OS X 10.9 lze používat pouze digitálně podepsaná 64bitová rozšíření jádra.

Solaris

[editovat |editovat zdroj]

Solaris 10 a pozdější podporují x86-64 architekturu. Solaris 10 (stejně jako architekturaSPARC) má pouze jeden obraz operačního systému, který obsahuje 32 i 64bitové jádro. Má název „x64/x86“ DVD-ROM image. Výchozí chování je to, že se nabootuje 64bitové jádro umožňující běh 32 i 64bitových programů. 32bitové jádro může být zvoleno manuálně, ale znamená to, že bude umožněn běh pouze 32bitových aplikací. Příkazemisainfo se zjistí, zda běží 64bitové jádro.

Solaris 11 už obsahuje pouze 64bitové jádro. Nicméně, 64bitové jádro podporuje 32 i 64bitové programy, knihovny a systémová volání.

Windows

[editovat |editovat zdroj]

Windows XP Professional x64 Edition aWindows Server 2003 x64 Edition byly prvními verzemi Windows s podporou 64bitového režimu. Obě tyto edice byly uvolněny v březnu 2005. Obě edice jsou interně stejného buildu (5. 2. 3790.1830 SP1). Obě sdílejí stejný zdroj a binárky, takže i systémové updaty jsou vydávány v unifikovaných balíčcích.[zdroj?]

Windows x64 má tyto charakteristiky:

  • 8 TB virtuálního adresního prostoru pro jeden proces (user mode). 64bitový program může využívat 8 TB v plném rozsahu, samozřejmě nehledě na limity systému. 8 TB je 4096× větší, než je poskytováno na 32bitových systémech Windows, tedy pouze 2 GB.
  • 8 TB virtuálního adresního prostoru pro jádro. Nárůst je opět 4096× (viz virtuální adresní prostor pro jeden proces).
  • Možnost běhu 32bitových aplikací (.exe) a dynamických knihoven (.dll) s použitímWoW64. Mimoto, pokud je 32bitový program nalinkován s možností „large address aware“, může použít až 4 GB virtuálního adresního prostoru v 64bitových Windows.
  • Pokud nejsou 32 i 64bitové aplikace nalinkovány s možností „large address aware“, jsou limitovány 2 GB virtuálního adresního prostoru.
  • Možnost využít fyzickou paměť (RAM) v těchto rozsazích: 128 GB (Windows XP a Vista), 192 GB (Windows 7), 512 GB (Windows 8) a 1 TB (Windows Server 2012).
  • LLP64: datové typyint along jsou široké 32 bitů,long long je 64bitový, pokud jsou ukazatele a typy odvozeny od 64bitových ukazatelů.
  • Na 64bitových systémech musí být kernel mode ovladače 64bitové. User-mode ovladače mohou být 32bitové.
  • 16bitové Windows a aplikace pro DOS neběží na 64bitových verzích Windows kvůli tomu, že byl odstraněn virtual DOS machine subsystém (NTVDM).
  • Plná implementace ochrany NX (No Execute) page. To je také implementováno v 32bitových verzích Windows, když jsou spuštěny v PAE módu.
  • Microsoft Visual Studio dokáže kompilovat nativní aplikace pro 64bitovou architekturu. Taková aplikace může být pouze spuštěna na 64bitových Windows nebo na architektuře IA-32, která dokáže spustit 32bitovou aplikaci na 32bitových Windows nebo 64bitových Windows s WoW64 emulačním módem.

BSD

[editovat |editovat zdroj]

Operační systémyDragonFly BSD, FreeBSD,NetBSD a OpenBSD také podporují 64bitovou architekturu.

Reference

[editovat |editovat zdroj]

V tomto článku byl použitpřeklad textu z článkux86-64 na anglické Wikipedii.

  1. Požadavky na systém Windows 7. [s.l.]: [s.n.]Dostupné online. 
  2. abLARABEL, Michael. Linux Looking To Make 5-Level Paging Support Unconditional For x86_64 Kernel Builds.Phoronix.com [online]. 2024-07-04 [cit. 2024-07-05].Dostupné online. (anglicky) 
  3. abcWEIMER, Florian. Building Red Hat Enterprise Linux 9 for the x86-64-v2 microarchitecture level.Red Hat Developer [online]. 2021-01-05 [cit. 2024-07-04].Dostupné online. (anglicky) 
  4. JEŽEK, David. Red Hat Enterprise Linux 10 a úvahy o x86-64-v3.Root.cz [online]. 2024-01-03 [cit. 2024-07-05].Dostupné online. 
  5. WEIMER, Florian. Exploring x86-64-v3 for Red Hat Enterprise Linux 10.Red Hat Developer [online]. 2024-01-02 [cit. 2024-07-05].Dostupné online. (anglicky) 
  6. How do I check if my CPU supports x86-64-v2?.Unix & Linux Stack Exchange [online]. 2021-01-28 [cit. 2024-07-05].Dostupné online. (anglicky) 
  7. Instalace Windows 11 na zařízeních, která nesplňují minimální požadavky na systém.support.microsoft.com [online]. Podpora Microsoftu [cit. 2024-07-05].Dostupné online. 
  8. SOUČEK, Jiří. Windows 11 24H2 nenajedou bez SSE 4.2.Diit.cz [online]. 2024-04-25 [cit. 2024-04-25].Dostupné online. 
  9. 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.Je zde použita šablona{{Cite press release}} označená jako k „pouze dočasnému použití“.
  10. Andi Kleen.Porting Linux to x86-64 [online]. 2001-06-26 [cit. 2010-11-09].Dostupné v archivu pořízeném dne 2010-09-10. 
  11. Andi Kleen.Andi Kleen's Page [online].Dostupné online. 
  12. – The Debian GNU/Linux AMD64 HOW-TO.alioth.debian.org [online]. [cit. 2010-11-09].Dostupné v archivu pořízeném dne 2010-11-13. 
  13. ab– AMD64? X86-64? EM64T? X64? Anymore?
  14. VIA.VIA Nano™ Processor [online]. VIA [cit. 2010-11-09].Dostupné v archivu pořízeném dne 2008-05-30. (anglicky) 

Externí odkazy

[editovat |editovat zdroj]
Citováno z „https://cs.wikipedia.org/w/index.php?title=X86-64&oldid=25279526
Kategorie:
Skryté kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp