x86-64 er det generelle navn for en familie af 64-bit processorer og deres tilhørende instruktionssætarkitektur. Arkitekturen er designet til at være bagudkompatibel med ældre x86-software, så mange programmer skrevet til 32-bit x86 kan køre på moderne 64-bit systemer med enten indbygget kompatibilitet eller uden ændringer.
AMD og Intel er de største producenter af x86-64-processorer, og VIA har også tilbudt x86-64-implementeringer i nogle af deres VIA Nano-processorer. Producenterne bruger forskellige navn: AMD kalder det AMD64, Intel kalder deres implementering Intel64 (tidligere kendt som EM64T), og VIA omtaler sine som VIA x86-64-processorer. Spilkonsoller som Microsoft Xbox One og Sony PlayStation 4 bruger halvtilpassede AMD64-baserede APU'er som deres hovedprocessorer.
Tekniske hovedtræk
x86-64 udvider den klassiske x86-arkitektur til 64-bit registerniveau og adresseplads. De vigtigste tekniske ændringer omfatter blandt andet:
- Udvidelse af generelle registre fra 8 til 16 (fx RAX, RBX … R15), samt 64-bit versioner af programtælleren (RIP) og stakpekeren (RSP).
- Mulighed for 64-bit aritmetik og pointerstørrelser, hvilket giver et langt større virtuelt og fysisk adresseområde end 32-bit (i praksis meget større adresseringsrum, nok til terabyte-niveau og mere afhængigt af CPU-generation).
- Indbygget understøttelse for moderne sikkerhedsfunktioner som NX/XD (no-execute) og forbedret hukommelseshåndtering.
- Lang kørselstilstand (long mode) med underinddelinger: 64-bit mode (kører 64-bit programmer) og compatibility mode (muliggør kørsel af 32-bit programmer under en 64-bit OS-kontekst).
- Fuld videreførsel af eksisterende SIMD- og flydende punkt-udvidelser (SSE, AVX osv.), som fortsat bruges og udbygges i nyere CPU-design.
Kompatibilitet og understøttelse
Et af hovedmålene med x86-64 var bagudkompatibilitet: 32-bit x86-programmer kører normalt uden ændringer på et 64-bit operativsystem via compatibility mode. Dog er visse ældre 16-bit realmode- eller virtual-8086-programmer ikke direkte understøttet i long mode, så DOS-programmer eller nogle gamle installationsprogrammer kan kræve emulering eller en virtuel maskine.
Operativsystemer og distributionsnavne bruger forskellige betegnelser: Microsoft bruger ofte betegnelsen x64 (f.eks. Windows x64), mens mange Unix/Linux-distributioner og pakkearkiver bruger amd64 eller x86_64 som arkitekturbetegnelse. macOS skiftede til x86-64 på Intels platform i midten af 2000'erne, og de fleste moderne Linux-distributioner tilbyder ful support for x86-64.
Fordele og ulemper
- Fordele: Mere adressérbar hukommelse, større og flere registre (som kan øge ydeevnen for beregnings- og serveropgaver), og moderne sikkerhedsfunktioner.
- Ulemper: Større pointere betyder typisk øget hukommelsesforbrug for pointer-tunge applikationer, og nogle ældre softwarekomponenter (især 16-bit) kan kræve kompatibilitetslag eller virtualisering.
Samlet set har x86-64 (ofte kaldet x64) været den dominerende desktop- og serverarkitektur i mere end et årti, og den fortsætter med at udvikle sig gennem nye microarkitekturforbedringer og instruktionstilføjelser, samtidig med at den bevarer mulighed for at køre eksisterende x86-software.