x86-64 (x64, AMD64/Intel64) — definicja architektury 64-bitowej
Poznaj x86-64 (x64, AMD64/Intel64) — przegląd architektury 64-bitowej, zgodność z x86, główni producenci (AMD, Intel, VIA) oraz zastosowania w komputerach i konsolach.
x86-64 to ogólna nazwa serii procesorów 64-bitowych oraz powiązanej z nimi architektury zestawu instrukcji. Architektura ta rozszerza klasyczne x86 do 64 bitów zachowując wsteczną zgodność z starszym oprogramowaniem x86. Nazwy handlowe obejmują m.in. AMD64 (AMD) i Intel64 (Intel); popularne określenie dla systemów opartych na tej architekturze to x64 (spotykane też jako x86_64). Ludzie często używają x64 w odniesieniu do powiązanej architektury zestawu instrukcji i procesora.
Krótka historia
Architekturę x86-64 zaproponowała firma AMD na początku XXI wieku jako rozszerzenie dobrze znanego 32‑bitowego x86. Pierwsze układy zgodne z AMD64 trafiły na rynek w 2003 roku (seria Opteron/Athlon 64). Intel początkowo promował inną koncepcję (IA-64 dla Itanium), jednak w praktyce przyjął rozszerzenia AMD i wprowadził je do własnych procesorów jako Intel64 (czasem nazywane EM64T). Ostatecznie większość współczesnych procesorów klasy PC — włączając modele firm AMD, Intel i VIA (np. VIA Nano) — wspiera tę 64‑bitową architekturę. Konsole do gier takie jak Microsoft Xbox One i Sony PlayStation 4 używają własnych pół-wyprodukowanych APU o architekturze opartej na AMD64 jako głównych procesorów.
Cechy techniczne i najważniejsze rozszerzenia
- Szersze rejestry ogólnego przeznaczenia: zamiast 8 rejestrów 32‑bitowych (EAX, EBX, ...), x86-64 oferuje 16 rejestrów 64‑bitowych (RAX, RBX, RCX, RDX, RDI, RSI, RBP, RSP oraz R8–R15), co znacząco poprawia wydajność przez zmniejszenie potrzeby używania pamięci do przechowywania tymczasowych danych.
- 64‑bitowe wskaźniki i typy całkowite: adresy pamięci i wskaźniki mają typowo 64 bity, co umożliwia znacznie większą przestrzeń adresową niż w 32‑bitowym x86.
- Tryb długi (Long Mode): nowy tryb pracy procesora, w którym działają aplikacje 64‑bitowe; zawiera podtryb „64‑bit” oraz podtryb „kompatybilności” do wykonywania binarek 32‑bitowych.
- RIP‑relative addressing: instrukcje mogą używać adresowania względnego względem rejestru instrukcji (RIP), co ułatwia tworzenie pozycyjnie niezależnego kodu (PIC).
- Współczesne rozszerzenia: wiele układów wspiera też instrukcje SIMD (SSE, AVX), mechanizmy bezpieczeństwa (NX/DEP), oraz rozbudowane możliwości adresowania fizycznej pamięci (różna liczba bitów fizycznego adresu w zależności od modelu CPU).
- Stosowanie standardów ABI: np. System V AMD64 ABI dla systemów uniksowych oraz Microsoft x64 calling convention dla Windows — określają one sposób przekazywania argumentów, wyrównanie stosu i wykorzystanie rejestrów.
Tryby pracy i zgodność wsteczna
Procesory x86-64 obsługują kilka trybów pracy, co pozwala na uruchamianie starszego kodu:
- Tryb długi (Long Mode) — przeznaczony dla aplikacji 64‑bitowych.
- Tryb kompatybilności — uruchamianie aplikacji 32‑bitowych (binarek x86) wewnątrz 64‑bitowego systemu operacyjnego bez emulacji.
- Tryb chroniony (Legacy/Protected Mode) — klasyczny tryb 32‑bitowy, stosowany przez starsze systemy operacyjne i aplikacje.
Dzięki temu większość istniejącego oprogramowania 32‑bitowego może działać na systemach x64 (jeśli system operacyjny zapewnia odpowiednie wsparcie), co ułatwiło przejście z 32 do 64 bitów.
Wsparcie systemów operacyjnych i kompilatorów
Obecnie wszystkie popularne systemy operacyjne wspierają architekturę x86-64: wiele dystrybucji Linux, Windows (wersje 64‑bitowe od Windows XP x64/Windows 7 wzwyż), różne dystrybucje BSD oraz macOS (Apple przeszło na x86-64 w 2006 r.). Kompilatory (GCC, Clang, MSVC) generują kod 64‑bitowy zgodny z obowiązującymi ABI; by wykorzystać pełne rozszerzenia trzeba kompilować programy jako 64‑bitowe.
Zalety i kompromisy
- Zalety:
- Zwiększona przestrzeń adresowa (możliwość pracy z dużymi zestawami danych i pamięcią >4 GB).
- Więcej rejestrów ogólnego przeznaczenia — lepsza wydajność przy optymalizacji kompilatora.
- Nowe instrukcje i ulepszenia architektury wpływają pozytywnie na obliczenia numeryczne i multimedia.
- Wady/koszty:
- Większe zużycie pamięci — 64‑bitowe wskaźniki i struktury są większe, co może zwiększać zużycie RAM i rozmiar binarek.
- Konieczność portowania/kompilowania oprogramowania 32‑bitowego, by w pełni korzystać z możliwości 64 bitów.
Różnice wobec innych 64‑bitowych architektur
x86-64 jest rozszerzeniem ewolucyjnym architektury x86; różni się od rozwiązań zupełnie nowych, takich jak IA-64 (Itanium) — tam projekt był architekturą CISC/RISC‑like z odmiennym modelem instrukcji i nie był wstecznie zgodny z x86. Dlatego przyjęcie AMD64 w praktyce okazało się bardziej efektywne dla rynku PC.
Podsumowanie
Architektura x86-64 (x64, AMD64/Intel64) stała się de facto standardem dla komputerów osobistych i serwerów, łącząc wsteczną zgodność z x86 oraz korzyści wynikające z 64‑bitowego przetwarzania. Daje to większą przestrzeń adresową, więcej rejestrów i liczne ulepszenia instrukcji, przy jednoczesnym zachowaniu zdolności uruchamiania istniejącego oprogramowania 32‑bitowego w trybie kompatybilności.
Procesory do komputerów stacjonarnych
AMD64
- AMD Athlon 64
- AMD Athlon X2
- AMD Athlon II
- AMD Sempron
- AMD Sempron X2
- AMD Phenom
- AMD Phenom II
- AMD FX
- AMD APU A4/A6/A8/A9/A10/A12
- AMD APU Athlon
- AMD APU Sempron
- AMD Ryzen
Intel 64 (EM64T)
- Intel Pentium 4
- Intel Pentium D
- Intel Celeron D
- Intel Pentium Dual Core
- Intel Celeron
- Intel Core 2
- Intel Core i3/i5/i7/i9
- Intel Atom
VIA x86-64
VIA Nano
Desktopowy system operacyjny
Windows XP Professional x64
Windows Vista/7/8/8.1/10 x64
Mac OS X 10.4.7 i nowsze
Solaris 10 i późniejsze
Linux 2.4.x i nowsze
Przeszukaj encyklopedię