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.

Autor: Leandro Alegsa

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ę
AlegsaOnline.com - 2020 / 2025 - License CC3