x86-64 (x64): 64-bittinen prosessori- ja käskykanta-arkkitehtuuri
x86-64 (x64) – 64‑bittinen prosessori- ja käskykanta-arkkitehtuuri: AMD/Intel-yhteensopivuus, parempi suorituskyky ja muistin tuki palvelimissa, työasemissa ja pelikonsoleissa.
x86-64 on 64-bittisten prosessoreiden sarjan ja niihin liittyvän käskykanta-arkkitehtuurin yleisnimi. Nämä prosessorit ovat yhteensopivia vanhojen x86-ohjelmistojen kanssa.
AMD ja Intel ovat tärkeimmät valmistajat, ja myös VIA tuki sitä VIA Nano -prosessoreilla. Ne kutsuvat omia 64-bittisiä prosessoreitaan AMD64-, Intel64- ja VIA x86-64 -prosessoreiksi. Pelikonsolit, kuten Microsoft Xbox One ja Sony PlayStation 4, käyttävät omia puoliksi räätälöityjä AMD64-pohjaisia APU:ita pääprosessoreina.
x64 on toinen nimitys, jota käytetään viittaamaan 64-bittisiin laajennettuihin järjestelmiin, jotka perustuvat tällaisiin prosessoreihin. Usein x64:llä viitataan siihen liittyvään käskykanta-arkkitehtuuriin ja prosessoriin.
Periaatteet ja keskeiset erot 32-bittiseen x86:een
x86-64 laajentaa perinteisen x86-arkkitehtuurin 64-bittiseksi. Keskeisiä muutoksia ovat:
- 64-bittiset yleiskäyttöiset rekisterit (esimerkiksi RAX, RBX, RCX, RDX ja uudet R8–R15), jotka vähentävät muistisiirtoja ja rekisterien ylivuotoa.
- laajempi osoiteavaruus: teoreettinen osoiteavaruus on 2^64, mutta käytännössä nykyiset toteutukset käyttävät osittaista osoiteavaruuden laajennusta (esim. 48 tai 57 bittiä), jotta osoitteet pysyvät "kanonisina".
- pitkä tila (long mode), joka sisältää 64-bittisen tilan ja yhteensopivuustilan (eli mahdollisuuden ajaa 32-bittisiä sovelluksia 64-bittisessä käyttöjärjestelmässä).
- parannukset muistin hallintaan, kuten NX (no-execute) -bitin tuki sivutauluissa, joka parantaa suojausta koodin suorittamista vastaan muistialueilta.
Käyttöjärjestelmät, yhteensopivuus ja ohjelmistot
Useimmat nykyaikaiset käyttöjärjestelmät tukevat x86-64:ää: Linux, Windows, macOS sekä useat BSD-toteutukset ja Solaris. 64-bittinen käyttöjärjestelmä voi yleensä ajaa 32-bittisiä sovelluksia yhteensopivuustilan tai emulaation avulla (esimerkiksi Windowsin WoW64), kunhan käyttöjärjestelmä sisältää tarvittavat kirjastot ja tuki on paikallaan.
Kääntäjät ja työkaluputket käyttävät eri nimeämisiä kohdentamaan 64-bittistä x86-koodia (yleisesti x86_64 tai amd64). Ohjelmiston siirtämisessä 32-bitisestä 64-bittiseen on huomioitava mm. osoitteiden ja osoitinkokojen kasvu sekä tietorakenteiden (struct) muuttuminen, mikä voi aiheuttaa yhteensopivuusongelmia binäärirajapinnoissa.
Suorituskyky ja rajoitukset
64-bittinen arkkitehtuuri tarjoaa usein suorituskykyetuja, kuten enemmän rekistereitä ja mahdollisuuden käsitellä suuria lukuja sekä suurempia muistiavaruuksia. Toisaalta 64-bittiset osoitteet ja laajennetut pointer-muodot lisäävät muistin kulutusta ja voivat kasvattaa välimuistin kuormitusta, mikä joissakin tapauksissa heikentää suorituskykyä verrattuna 32-bittiseen versioon.
Kutsukonventiot ja järjestelmäkutsut
On olemassa eri kutsumiskäytännöt (calling conventions) 64-bittiselle x86:lle. Tunnetuimmat ovat System V AMD64 -kutsukäytäntö (käytössä useimmissa Unixin-kaltaisissa järjestelmissä) ja Microsoft x64 -kutsukäytäntö Windowsissa. Ne eroavat muun muassa siinä, mitkä parametrit välitetään rekistereissä ja mitkä pinotaan pinoon, sekä siitä, kuka vapauttaa pinon.
Laitevalmistajien nimitykset ja historia
AMD kehitti alkuperäisen 64-bittisen laajennuksen nimellä AMD64, ja Intel lisäsi myöhemmin oman toteutuksensa nimillä kuten Intel64 (aiemmin markkinoitiin myös EM64T). Näitä laajennuksia kutsutaan yleisesti myös x86-64:ksi tai lyhyemmin x64:ksi.
Lisäominaisuudet ja laajennukset
- SSE/AVX-ominaisuudet ja muut SIMD-laajennukset suorituskyvyn parantamiseksi multimedia- ja laskentatehtävissä.
- virtualisointituki laitteistotasolla (esim. Intel VT-x, AMD-V), joka helpottaa virtuaalikoneiden suorittamista.
- sivutaulutasoinen suojaus, NX-bit ja muut muistiin liittyvät turvaominaisuudet.
Yhteenveto
x86-64 (x64) on nykyaikainen ja laajasti käytetty 64-bittinen laajennus perinteiselle x86-arkkitehtuurille. Se yhdistää taaksepäin yhteensopivuuden vanhojen 32-bittisten ohjelmien kanssa sekä uusia mahdollisuuksia laajemmalle osoiteavaruudelle, lisääntyneille rekistereille ja suorituskyvylle. Siirtymä 32-bitisestä 64-bittiseen tuo mukanaan sekä hyötyjä että huomioon otettavia käytännön seikkoja ohjelmistoille ja järjestelmänrakentajille.
Työpöytäprosessorit
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
Työpöydän käyttöjärjestelmä
Windows XP Professional x64
Windows Vista/7/8/8.1/10 x64
Mac OS X 10.4.7 ja uudempi versio
Solaris 10 ja uudemmat versiot
Linux 2.4.x ja uudempi
Etsiä