博冠股份净利润亏损355.63万元 因对美国子公司投入大
x86-64 (té? AMD64, EM64T, IA-32E) je v informatice ozna?ení generace 64bitovych 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í vyhodou nastupujícího 64bitového re?imu je odstranění limitu p?ímé dostupnosti paměti nad 4 GiB opera?ní paměti RAM, podpora NX bitu a vy??í rychlost zpracování 64bitovych operací. Procesory jsou obdobně jako p?edchozí generace realizovány interně jako RISCová architektura emulující pomocí mikrokódu architekturu CISC.
Vlastnosti
[editovat | editovat zdroj]V novém 64bitovém re?imu jsou pou?ity strojové instrukce, které pracují se 64bitovymi ?í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ěti RAM (reálně v?ak podporují procesory méně, viz ní?e). Kv?li prodlou?ení operand? strojovych instrukcí z 32bitovych na 64bitové do?lo k tzv. z?ídnutí kódu (stejny strojovy kód je v 64bitové variantě del?í, ne? v 32bitové), a proto jsou nároky na dostupnou opera?ní pamě? u 64bitového systému vy??í, ne? kdyby byl pou?it stejny 32bitovy opera?ní systém (v systému Windows 7 jsou minimální po?adavky 1 GB pro 32bitovy systém a 2 GB RAM pro 64bitovy systém).[1]
Velikost paměti
[editovat | editovat zdroj]Teoreticky m??e 64bitovy procesor pou?ívat 64bitové adresy pro adresaci paměti, ale z praktickych 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 byt opera?ní paměti RAM v po?íta?i mnohem méně). Procesor díky mechanismu stránkování paměti umo?ňuje efektivně vyu?ívat i tak velky adresní prostor procesu.
V roce 2019 zavedla 10. generace procesor? Intel (Ice Lake) podporu pro 5 úrovní tabulek stránek pro stránkování paměti. Firma AMD uvedla podporu v procesoru Zen 4 vydaném v roce 2022. Podporu pro jádro Linuxu za?ala firma Intel vytvá?et u? v roce 2017. Tato vlastnost slou?í k podpo?e 57bitové adresace virtuální paměti, co? je 128 PB (257=1,4×1017).[2]
úrovně architektury
[editovat | editovat zdroj]V roce 2020 definovaly firmy AMD, Intel, Red Hat a SUSE úrovně architektury (anglicky architecture 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ě?nych programech. Definované úrovně architektury jsou:
- x86-64-v1 – nejstar?í 64bitové procesory (AMD Opteron z roku 2003, Intel Xeon Nocona z roku 2004)
- x86-64-v2 – instrukce sady SSE4.2, SSSE3, instrukci POPCNT a CMPXCHG16B (Intel Nehalem z roku 2008, AMD Bulldozer z roku 2011)
- x86-64-v3 – vektorové instrukce do AVX2, MOVBE (AMD Excavator z roku 2015, Intel Haswell z roku 2013)[4]
- x86-64-v4 – vektorové instrukce od variant AVX-512 (AMD Zen 4 z roku 2022, některé modely Intel Skylake od roku 2015, mimo procesor? Atom)[3]
V roce 2022 byl stanoven minimální po?adavek na x86-64 procesor v Red Hat Enterprise Linuxu verze 9 na x86-64-v2 (na star?ích nebě?í),[3] pro verzi RHEL 10 se uva?uje o minimálním po?adavku na x86-64-v3.[5] K rozli?ení schopností procesor? je pou?ívána instrukce CPUID, úroveň architektury lze v Linuxu zjistit u?ivatelsky r?znymi 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). Od Windows 8.1 (rok 2013) byly na 64bitové platformě po?adovány některé strojové instrukce, které chyběly u prvních 64bitovych 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? Intel Coffee Lake z roku 2017, ale běh na star?ích procesorech je v roce 2024 stále mo?ny, pokud splní podmínku pro verzi 8.1.[7] Windows 11 24H2 vy?adují alespoň procesor s instruk?ní sadou SSE 4.2,[8] co? je úroveň architektury x86-64-v2 (tj. procesory od roku 2008).
64bitovy re?im
[editovat | editovat zdroj]Je-li na po?íta?i s 64bitovym procesorem (x86-64) spu?těn 64bitovy opera?ní systém, je mo?né p?ímo spou?tět 64bitové i 32bitové aplikace v chráněném re?imu. Dále je mo?né spou?tět 16bitové aplikace v chráněném re?imu procesoru Intel 80286, av?ak nelze spou?tět 16bitové aplikace v reálném re?imu procesoru Intel 8086.
V 64bitovych Windows NT (nap?. Windows 7 nebo Windows 10) v?ak subsystém NTVDM nepodporuje běh 16bitovych 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ému Linux lze 16bitové aplikace v chráněném re?imu procesoru Intel 80286 spou?tět bez omezení pomocí Wine.
32bitovy re?im
[editovat | editovat zdroj]Je-li na po?íta?i se 64bitovym procesorem pou?it 32bitovy 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.
16bitovy re?im
[editovat | editovat zdroj]Na po?íta?i s 64bitovym procesorem (x86-64) lze spustit 16bitovy systém v reálném re?imu (nap?. opera?ní systém DOS), 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í privilegovany 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í byt bez restartu po?íta?e mo?ny.
Vyvoj
[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?e IA-64, kterou se sna?ila prosadit dvojice Intel a Hewlett-Packard.[9] AMD64 byl evolu?ní krok CISC architektury podobny 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?).[10][11] 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,[12] zatímco Intel pou?ívá u svych procesor? ozna?ení EM64T a IA-32E[13] a VIA ?64-bit processors in VIA's x86 platform“.[14] Microsoft technologii nazyvá ?64-bit extended systems“ nebo x64.[13]
Základní roz?í?ení
[editovat | editovat zdroj]Kv?li zpětné kompatibilitě je roz?í?ení realizováno jako dal?í re?imy procesoru. K reálnému, chráněnému a V86 re?imu i386, nyní zvanymi ?Legacy“ (zděděny) re?im, p?ibyly dva ?Long“ (dlouhé) re?imy: 64bitovy a kompatibilní. Procesor je mo?né provozovat bu? s 32bitovym jádrem opera?ního systému (kterym m??e byt i systém ur?eny pro i386) v Legacy re?imech, nebo s 64bitovym 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 tyká 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 stary reálny re?im).
- Plná podpora 64bitovych celych ?í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ěnnych v registrech a tedy vyznamně zrychluje aplikace. 16 registr? je ov?em stále málo v porovnání s RISCovymi 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 TiB (248), v budoucnu bude mo?né roz?í?it na 16 EiB (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ě 1 TiB (240) RAM; od roku 2007 (AMD K10) je pou?íváno 48 bit?, co? je adresace maximálně 256 TiB; architektura umo?ňuje roz?í?ení a? na 4 PiB (252). V legacy re?imech je podporováno PAE (roz?í?ení fyzickych adres), stejně jako na moderních procesorech architektury i386, umo?ňující p?ístup k 64 GiB.
- Adresace relativní k ukazateli instrukce – adresace relativní k RIP zvy?uje efektivitu kódu nezávislého na pozici pou?ívaného ve sdílenych knihovnách.
- SSE instrukce – sou?ástí architektury je povinná implementace roz?í?ení procesor? i386 SSE a SSE2 pro vypo?ty v pohyblivé ?ádové ?árce. Podpora SSE3 byla p?idána dodate?ně.
- No-eXecute bit – 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é ?asto zneu?ívá k útoku malware.
- Odstranění star?ích vlastností – v Long re?imu procesor nepodporuje některé méně pou?ívané vlastnosti i386, jako je segmentace paměti (?áste?ně stále fungují registry FS a GS), TSS nebo v86.
Opera?ní módy
[editovat | editovat zdroj]Re?im procesoru | Pot?ebny opera?ní systém | Nutno znovu p?elo?it stávající programy | Vychozí velikost adresy | Vychozí velikost operandu | Je k dispozici 64bitové roz?í?ení registr? | Typická ?í?ka registru | |
---|---|---|---|---|---|---|---|
Nové re?imy | 64bitovy Long | 64bitovy OS | ano | 64 | 32 | ano | 64 |
Re?im kompatibility | ne | 32 | 32 | ne | 32 | ||
16 | 16 | 16 | |||||
Dosavadní re?imy | Chráněny re?im | Klasicky 16 nebo 32bitovy OS | ne | 32 | 32 | ne | 32 |
16 | 16 | 16 | |||||
Virtuální 8086 re?im | 16 | 16 | 16 | ||||
Reálny re?im | Klasicky 16bitovy OS |
Podpora opera?ních systém?
[editovat | editovat zdroj]Následuje popis některych opera?ních systém?, které podporují architekturu x86-64:
DOS
[editovat | editovat zdroj]Je mo?né provozovat long mód pod DOSem bez DOS roz?í?ení, ale u?ivatel se musí vrátit do normálního módu BIOS 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?, ktery 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 dostupny x86-64 hardware. Linux ov?em také poskytuje zpětnou kompatibilitu pro spou?tění 32bitovych program?.
Několik linuxovych distribucí je v sou?asné době dodáváno s nativními x86-64 jádry. Některé, jako nap?íklad Arch Linux, SUSE, Mandriva nebo Debian umo?ňují u?ivatel?m instalovat 32bitové komponenty a knihovny, které pobě?í mimo x86-64. Jiné distribuce, nap?íklad Fedora, Slackware nebo Ubuntu jsou dostupné ve verzích pro jak pro 32bitovou architekturu, tak i pro x86-64. Fedora a Red Hat Enterprise Linux dovolují instalaci v?ech komponent v obou verzích (32 i 64bitové) na 64bitovy systém.
X32 ABI (Application Binary Interface), které bylo p?edstaveno ve verzi 3.4 jádra Linuxu, dovoluje program?m kompilovanym 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ěkterych p?ípadech to umo?ní programu bě?et rychleji.
64bitovy 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 64bitovych utilit p?íkazového ?ádku pomocí POSIXu a matematickych knihoven na za?ízeních s 64bitovymi Intel procesory i 64bitovymi PowerPC. ?ádné jiné knihovny nebo frameworky nepracují s 64bitovymi aplikacemi v Mac OS X v10.4. Jádro spole?ně se svymi 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 64bitovymi Intel procesory i s 64bitovymi PowerPC. 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 32bitovych aplikací. Obě jádra také podporují 64bitové aplikace. 32bitové aplikace mají virtuální adresní prostor limitovany 4 GB pod jádrem.
OS X v10.7 a vy??í má pouze 64bitové jádro, ale je ponechaná podpora běhu 32bitovych 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 architektura SPARC) má pouze jeden obraz opera?ního systému, ktery obsahuje 32 i 64bitové jádro. Má název ?x64/x86“ DVD-ROM image. Vychozí chování je to, ?e se nabootuje 64bitové jádro umo?ňující běh 32 i 64bitovych program?. 32bitové jádro m??e byt zvoleno manuálně, ale znamená to, ?e bude umo?něn běh pouze 32bitovych aplikací. P?íkazem isainfo
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 a Windows 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í stejny zdroj a binárky, tak?e i systémové updaty jsou vydávány v unifikovanych balí?cích.[zdroj?]
- Windows Vista, ktery má mnoho r?znych edicí, byl vydán v lednu 2007.
- Windows 7 vy?el v ?ervnu 2009.
- Windows Server 2008 (R2), od R2 dostupné pouze v 64bitovych verzích.
- Windows Server 2012 (R2)
Windows x64 má tyto charakteristiky:
- 8 TB virtuálního adresního prostoru pro jeden proces (user mode). 64bitovy 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 32bitovych 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 32bitovych aplikací (.exe) a dynamickych knihoven (.dll) s pou?itím WoW64. Mimoto, pokud je 32bitovy program nalinkován s mo?ností ?large address aware“, m??e pou?ít a? 4 GB virtuálního adresního prostoru v 64bitovych 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é typy int a long jsou ?iroké 32 bit?, long long je 64bitovy, pokud jsou ukazatele a typy odvozeny od 64bitovych ukazatel?.
- Na 64bitovych systémech musí byt kernel mode ovlada?e 64bitové. User-mode ovlada?e mohou byt 32bitové.
- 16bitové Windows a aplikace pro DOS nebě?í na 64bitovych 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 32bitovych 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 byt pouze spu?těna na 64bitovych Windows nebo na architektu?e IA-32, která doká?e spustit 32bitovou aplikaci na 32bitovych Windows nebo 64bitovych Windows s WoW64 emula?ním módem.
BSD
[editovat | editovat zdroj]Opera?ní systémy DragonFly BSD, FreeBSD, NetBSD a OpenBSD také podporují 64bitovou architekturu.
Reference
[editovat | editovat zdroj]V tomto ?lánku byl pou?it p?eklad textu z ?lánku x86-64 na anglické Wikipedii.
- ↑ Po?adavky na systém Windows 7. [s.l.]: [s.n.] Dostupné online.
- ↑ a b LARABEL, Michael. Linux Looking To Make 5-Level Paging Support Unconditional For x86_64 Kernel Builds. Phoronix.com [online]. 2025-08-14 [cit. 2025-08-14]. Dostupné online. (anglicky)
- ↑ a b c WEIMER, Florian. Building Red Hat Enterprise Linux 9 for the x86-64-v2 microarchitecture level. Red Hat Developer [online]. 2025-08-14 [cit. 2025-08-14]. Dostupné online. (anglicky)
- ↑ JE?EK, David. Red Hat Enterprise Linux 10 a úvahy o x86-64-v3. Root.cz [online]. 2025-08-14 [cit. 2025-08-14]. Dostupné online.
- ↑ WEIMER, Florian. Exploring x86-64-v3 for Red Hat Enterprise Linux 10. Red Hat Developer [online]. 2025-08-14 [cit. 2025-08-14]. Dostupné online. (anglicky)
- ↑ How do I check if my CPU supports x86-64-v2?. Unix & Linux Stack Exchange [online]. 2025-08-14 [cit. 2025-08-14]. Dostupné online. (anglicky)
- ↑ Instalace Windows 11 na za?ízeních, která nesplňují minimální po?adavky na systém. support.microsoft.com [online]. Podpora Microsoftu [cit. 2025-08-14]. Dostupné online.
- ↑ SOU?EK, Ji?í. Windows 11 24H2 nenajedou bez SSE 4.2. Diit.cz [online]. 2025-08-14 [cit. 2025-08-14]. Dostupné online.
- ↑ Advanced Micro Devices: AMD Releases x86-64 Architectural Specification; Enables Market Driven Migration to 64-Bit Computing, tisková zpráva, August 10, 2000, [cit. 2025-08-14], Dostupné on-line.
- ↑ Andi Kleen. Porting Linux to x86-64 [online]. 2025-08-14 [cit. 2025-08-14]. Dostupné v archivu po?ízeném dne 2025-08-14.
- ↑ Andi Kleen. Andi Kleen's Page [online]. Dostupné online.
- ↑ – The Debian GNU/Linux AMD64 HOW-TO. alioth.debian.org [online]. [cit. 2025-08-14]. Dostupné v archivu po?ízeném dne 2025-08-14.
- ↑ a b – AMD64? X86-64? EM64T? X64? Anymore?
- ↑ VIA. VIA Nano? Processor [online]. VIA [cit. 2025-08-14]. Dostupné v archivu po?ízeném dne 2025-08-14. (anglicky)
Externí odkazy
[editovat | editovat zdroj]- Matthew Kerner, Neil Padgett: A History of Modern 64-bit Computing