x86-64 (myös AMD64/Intel64/EM64T) on 64-bittinen versio (alun perin laajennus) x86 - arkkitehtuurista , jonka AMD on kehittänyt ja esitellyt vuonna 2000 [1] ja jonka avulla ohjelmat voivat ajaa 64-bittisessä tilassa.
Se on x86-arkkitehtuurin laajennus , ja nyt se on x86-arkkitehtuurin versio, joka on lähes täysin taaksepäin yhteensopiva x86-arkkitehtuurin 32-bittisen version kanssa, joka tunnetaan nykyään nimellä IA-32 .
Microsoft ja Oracle käyttävät termiä "x64" viittaamaan tähän x86-arkkitehtuurin versioon, mutta 64-bittisessä Microsoft Windowsissa arkkitehtuurin tiedostot sisältävää hakemistoa kutsutaan nimellä "amd64" ("i386" x86:lle). Tämä havaitaan myös useimpien Linux - jakelujen arkistoissa.
x86-64-käskysarja on tällä hetkellä tuettu:
Tälle 64-bittiselle x86-versiolle on olemassa seuraavat nimeämiskäytännöt:
Tällä hetkellä x86:n 64-bittisen version yleisimmät nimet ovat: "x64", "x86-64" ja "AMD64".
Joskus AMD : n mainitseminen johtaa käyttäjiä harhaan siinä määrin, että he kieltäytyvät käyttämästä käyttöjärjestelmän alkuperäisten versioiden jakeluja väittäen, että AMD-versio ei toimi heidän Intel-prosessorissaan - itse asiassa ohjelmistojen jakelijat käyttävät nimeä amd64 vain siksi, että AMD oli edelläkävijä x86:n 64-bittisen version kehittämisessä.
Usein käyttäjät sekoittavat x86-64-arkkitehtuurin ja IA-64 :n , lataamalla vahingossa ohjelmiston tälle arkkitehtuurille ja huomaavat sitten, että ohjelma ei käynnisty. Tällaisten virheiden välttämiseksi on muistettava, että Intel 64 ja IA-64 ovat täysin erilaisia, yhteensopimattomia mikroprosessoriarkkitehtuureja. Jälkimmäinen ei ole yhteensopiva x86-64:n kanssa.
Intel 64:n edustajat:
IA-64:n edustajat: Itanium- ja Itanium 2 -perheet .
Tämän arkkitehtuurin prosessorit tukevat kahta toimintatilaa: Long mode ("pitkä" tila) ja Legacy-tila ("perintynyt" - yhteensopivuustila 32-bittisen x86:n kanssa).
"Pitkä"-tila on "natiivi" AMD64-prosessoreille. Tämä tila mahdollistaa täyden hyödyn x86-64-arkkitehtuurista. Tämä tila vaatii minkä tahansa 64-bittisen käyttöjärjestelmän (esimerkiksi Windows Server 2003/2003R2/2008/2008R2/2012, Windows XP Professional x64 Edition, Windows Vista x64, Windows 7/8/8.1/10/11 x64 tai 64-bittinen muunnelmia UNIX - tyyppisistä järjestelmistä GNU/Linux , FreeBSD , OpenBSD , NetBSD (puhtaat 64-bittiset koontiversiot voivat kuitenkin ajaa 32-bittisiä sovelluksia), Solaris (sekoitettu 32/64-koonti eri ytimillä 32-bittisille ja 64-bittiset prosessorit), Mac OS X (sekoitettu 32/64-koontiversio 32-bittisellä ytimellä, versiosta 10.4.7 alkaen).
Tässä tilassa voit ajaa 64-bittisiä ohjelmia. Myös (taaksepäin yhteensopivuuden vuoksi) tuki tarjotaan 32-bittisen koodin suorittamiseen, esimerkiksi 32-bittiset sovellukset (luonnollisesti 32-bittiset ohjelmat eivät voi käyttää 64-bittisessä järjestelmässä edes käytettäessä 64-bittistä koodia -bittiset järjestelmäkirjastot ja päinvastoin). Tämän tehtävän suorittamiseksi useimmat 64-bittiset käyttöjärjestelmät tarjoavat kaksi vaadittua järjestelmäsovellusliittymää : yhden 64- bittisille sovelluksille ja toisen 32-bittisille ohjelmille (sama tekniikka, jota käytetään varhaisissa 32-bittisissä järjestelmissä, kuten Windows 95 ja Windows NT 16-bittisten ohjelmien suorittamiseen).
"Pitässä" tilassa useat x86-32- arkkitehtuurin "alkeet" poistetaan, erityisesti, kuten virtuaalinen 8086 -tila , segmentoitu muistimalli (on kuitenkin edelleen mahdollista käyttää FS- ja GS-segmenttejä, jotka on hyödyllinen tärkeiden säikeen tietojen nopeaan löytämiseen tehtäviä vaihdettaessa ), laitteiston monitoimia sekä useita komentoja, jotka sekä toteuttavat lopetettuja ominaisuuksia että toimivat BCD - numeroiden kanssa, joita ei käytännössä käytetty uusissa ohjelmissa. "Pitkä" tila aktivoidaan asettamalla CR0.PG-lippu, jota käytetään haku- MMU :n sallimiseen (edellyttäen, että tällainen vaihto on käytössä (EFER.LME=1), muuten se ottaa MMU:n käyttöön "vanhassa" tilassa. ). Näin ollen on mahdotonta suorittaa 64-bittistä koodia kielletyllä hakutoiminnolla. Tämä aiheuttaa tiettyjä vaikeuksia ohjelmointiin, koska vaihdettaessa "pitkästä" tilasta "vanhaan" ja päinvastoin (esimerkiksi BIOS- tai DOS -toimintojen, virtuaalikoneen monitorin jne. kutsumiseksi), MMU:n kaksinkertainen nollaus vaaditaan, jonka vaihtokoodin on oltava samalla tavalla hahmonnetulla sivulla.
Tämä "perintö"-tila sallii x86-64-prosessorin suorittaa käskyjä x86-prosessoreille ja siten toteuttaa täydellisen yhteensopivuuden 32-bittisen koodin ja 32-bittisten käyttöjärjestelmien kanssa x86:lle. Tässä tilassa prosessori toimii täsmälleen kuten x86-prosessori (kuten Athlon tai Pentium III). x86-64-arkkitehtuurin tarjoamat toiminnot ja ominaisuudet (esimerkiksi 64-bittiset rekisterit) eivät luonnollisesti ole käytettävissä tässä tilassa. Tässä tilassa 64-bittiset ohjelmat ja käyttöjärjestelmät eivät toimi.
AMD:n x86-64-käskysarja (myöhemmin nimeltään AMD64) on Intel IA-32 (x86-32) -arkkitehtuurin laajennus. AMD64:n tärkein erottuva piirre on tuki 64-bittisille yleiskäyttöisille rekistereille, 64-bittisille aritmeettisille ja loogisille operaatioille kokonaisluvuille sekä 64-bittisille virtuaalisille osoitteille. Uusien komentorekisterien käsittelemiseksi otettiin käyttöön ns. "rekisterilaajennusetuliitteet", joille valittiin koodialue 40h-4Fh, jota käytetään INC <register> ja DEC <register> komentoihin 32-bittisissä tiloissa. INC- ja DEC-komennot 64-bittisessä tilassa on koodattava yleisempään kaksitavuiseen muotoon.
x86-64-arkkitehtuurissa on:
AMD64-arkkitehtuuria (x86-64:n AMD-toteutuksia) kehittäessään AMD :n insinöörit päättivät luopua x86-arkkitehtuurin tärkeimmistä "alkeista" lopullisesti - segmentoidusta muistimallista, jota on tuettu 8086 :sta lähtien . Tästä johtuen VMware - ohjelmoijat kohtasivat virtualisointituotteestaan ensimmäistä x86-64-versiota kehittäessään ylitsepääsemättömiä vaikeuksia virtuaalikoneen toteuttamisessa 64-bittisille vierasjärjestelmille [2] : koska ohjelma käytti segmentointimekanismia, tämä tehtävä on tullut lähes ratkaisematon.
Ymmärtäessään virheen AMD palautti rajoitetun version segmentoidusta muistiorganisaatiosta alkaen AMD64-arkkitehtuurin versiosta D, joka salli 64-bittisen käyttöjärjestelmän käytön virtuaalikoneen . Intel ei seurannut tätä esimerkkiä, ja sen prosessoreissa, jotka eivät tue Intel VT (Intel Virtualization Technology) [3] laitteiston virtualisointityökaluja , on mahdotonta käyttää 64-bittistä virtuaalikoneen [4] . VMware tarjoaa tuotteidensa mukana erityisen apuohjelman tarkistaakseen, pystyykö prosessori käyttämään 64-bittisiä vieraskäyttöjärjestelmiä.
64-bittisten vierasjärjestelmien käynnistäminen ja asentaminen tällä hetkellä (vuodesta 2013 lähtien) on jo mahdollista (VMwaren tuote - ESXi (työasema jne.) - tukee x86-64-arkkitehtuuria).
On syytä huomata, että alun perin veitsen alle jääneet LAHF- ja SAHF-komennot, joita myös virtualisointiohjelmistot aktiivisesti käyttävät, palautettiin komentojärjestelmään. Laitteiston virtualisointityökalujen (Intel VT, AMD-V) leviämisen myötä segmentoinnin tarve häviää vähitellen.
prosessoritekniikat | Digitaaliset|||||||||
---|---|---|---|---|---|---|---|---|---|
Arkkitehtuuri | |||||||||
Ohjesarjan arkkitehtuuri | |||||||||
koneen sana |
| ||||||||
Rinnakkaisuus |
| ||||||||
Toteutukset | |||||||||
Komponentit | |||||||||
Virranhallinta |