x86-64: definicija 64-bitne arhitekture procesorjev (AMD64, Intel64, x64)
x86-64 je splošno ime serije 64-bitnih procesorjev in z njimi povezane arhitekture nabora ukazov. Ti procesorji so združljivi s starejšo programsko opremo x86.
Glavna proizvajalca sta AMD in Intel, podprla pa ga je tudi VIA s procesorji VIA Nano. Svoje 64-bitne procesorje imenujejo AMD64, Intel64 in VIA x86-64. Igralne konzole, kot sta Microsoft Xbox One in Sony PlayStation 4, kot glavne procesorje uporabljajo lastne polprilagojene APU na osnovi AMD64.
x64 je drugo ime, ki se uporablja za 64-bitne razširjene sisteme, ki temeljijo na tej vrsti procesorjev. Ljudje pogosto uporabljajo x64 za sklicevanje na povezano arhitekturo nabora ukazov in procesor.
Zgodovina in poimenovanje
Arhitekturo x86-64 je zasnoval AMD kot razširitev obstoječe 32-bitne x86 arhitekture, da bi dodal 64-bitno računsko moč in večji naslovni prostor, hkrati pa ohranil združljivost z obstoječo programsko opremo. Prve komercialne izvedbe so se pojavile v začetku 2000-ih (npr. AMD Opteron in Athlon 64). Intel je kasneje sprejel lastno implementacijo, prvotno znano kot EM64T, kasneje pa Intel64.
Ključne tehnične lastnosti
- 64-bitni registri: razširitev splošnih registrov na 64 bitov (RAX, RBX, RCX, ... R15), kar omogoča hitrejše izvajanje in delo z velikimi podatki.
- Long mode: način delovanja, ki vključuje 64-bitni način in compatibility mode za poganjanje 32-bitnih aplikacij znotraj 64-bitnega okolja.
- Uveljavitev dodatnih registrov: število splošnih registrov se je povečalo z 8 na 16, kar zmanjša potrebo po shranjevanju na sklad in pospeši izvajanje.
- Razširjen naslovni prostor: arhitektura omogoča veliko virtualno in fizično naslovno prostornost; v praksi ima večina procesorjev omejitve (npr. implementirana je pogosto 48-bitna kanonična virtualna naslovnost), vendar so te omejitve s časom razširili.
- Varnostne in strojne razširitve: podpora za NX/DEP (no-execute bit), funkcije za strojno virtualizacijo (AMD-V, Intel VT-x), ter novejše varnostne razširitve kot SMEP/SMAP na nekaterih procesorjih.
Združljivost in načini delovanja
x86-64 ohranja združljivost z obstoječo 32-bitno (x86) programsko opremo, kar omogoča poganjanje starejših aplikacij brez sprememb (ob ustrezni podpori operacijskega sistema). V okviru long mode obstajata:
- 64-bitni način: programska koda, ki izkorišča 64-bitne registre in razširitve.
- Compatibility mode: omogoča izvajanje 32-bitnih programov znotraj 64-bitnega sistema brez emulacije celotne arhitekture.
Programska podpora in konvencije
- Operacijski sistemi: skoraj vsi sodobni strežniški in namizni sistemi podpirajo x86-64 (Linux, Windows, macOS do prehoda na ARM pri Apple). Distribucije Linuxa pogosto arhitekturo označujejo kot "amd64".
- Razvijalci in prevajalniki: popularne orodja (GCC, Clang, MSVC) nudijo podporo za x86-64 in optimizacije za 64-bitno izvajanje.
- Konvencije klicev: obstajata dve široko uporabljeni konvenciji za prenos argumentov v funkcijah — System V AMD64 (Unix-like sistemi) in Microsoft x64 (Windows) — s specifičnimi registri za prve argumente in razlikami v poravnavi sklada.
Uporaba in vpliv
x86-64 je postal prevladujoča platforma za namizne in strežniške računalnike zaradi združevanja zmogljivosti, velikega naslovnega prostora in združljivosti z obstoječo programsko opremo. Uporablja se v širokem spektru naprav, od osebnih računalnikov in strežnikov do igralnih konzol in vgrajenih sistemov, kjer je smiselno. Zaradi podpore virtualizacije in večjih naslovnih možnosti je arhitektura priljubljena tudi v podatkovnih centrih in pri virtualnih strežnikih.
Imena in oznake
Različna poimenovanja se uporabljajo v različnih kontekstih:
- AMD64: izvorno ime arhitekture (AMD).
- Intel64: Intelova implementacija in blagovna znamka razširitve.
- x64 / x86-64: splošni izrazi, ki se pogosto uporabljajo v pogovornem in tehničnem jeziku.
- Debian/Distribucije: številne Linux distribucije za imenovanje 64-bitnih paketov uporabljajo oznako "amd64".
Praktični nasveti za uporabnike in razvijalce
- Pri prehodu programske opreme na 64-bitno okolje preverite odvisnosti: 32-bitne knjižnice morajo biti prisotne, če želite ohraniti združljivost.
- Uporabite prevajalnik z ustreznimi zastavicami (npr. -m64 pri GCC/Clang) za generiranje 64-bitne kode.
- Pri prenosu programske logike upoštevajte razlike v velikosti tipov (npr. velikost long se razlikuje med sistemi) in poravnavo podatkov.
Povzetek
x86-64 (znan tudi kot AMD64, Intel64 ali x64) je razširitev klasične x86 arhitekture, ki prinaša 64-bitne registre, večji naslovni prostor in sodobne strojne razširitve, pri tem pa ohranja združljivost z obstoječo 32-bitno programsko opremo. Zaradi teh lastnosti je postal industrijski standard za večino strežnikov in namiznih sistemov.
Namizni procesorji
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
Namizni operacijski sistem
Windows XP Professional x64
Windows Vista/7/8/8.1/10 x64
Mac OS X 10.4.7 in novejši
Solaris 10 in novejši
Linux 2.4.x in novejši