Ero sivun ”AMD64” versioiden välillä

Wikipediasta
Siirry navigaatioon Siirry hakuun
[arvioimaton versio][katsottu versio]
Poistettu sisältö Lisätty sisältö
kun lisäät wikipediaan uutta tietoa, älä poista samalla vanhaa
Merkkaukset: Palautettu manuaalisesti aiempaan versioon Tämä muokkaus on kumottu  seulottavat 
Ipr1 (keskustelu | muokkaukset)
Hylättiin viimeisin tekstimuutos (tehnyt 84.250.164.152) ja palautettiin versio 19177331, jonka on tehnyt Anr
Merkkaus: Palautettu manuaalisesti aiempaan versioon
Rivi 1: Rivi 1:
[[Tiedosto:AMD64 Logo.png|pienoiskuva|AMD64 -logo.]]
[[Tiedosto:AMD64 Logo.png|pienoiskuva|AMD64 -logo.]]


'''AMD64''' (myös nimillä '''x86-64''', '''x86_64''' ja '''x64''') on [[AMD]]:n kehittämä 64-[[bitti]]nen [[suoritin]]arkkitehtuuri, joka suunniteltiin kehitysaskeleeksi 32-bittisestä [[x86]]-arkkitehtuurista.<ref name="hwsaa">{{Verkkoviite | osoite = https://www.hardwaresecrets.com/amd-64-bit-architecture-x86-64/ | nimeke = AMD 64-bit architecture (x86-64) | ajankohta = 27.10.2004 | viitattu = 20.9.2020 | kieli = {{en}} }}</ref> Vanhoja 16- ja 32-bittisiä ''real mode''- ja ''protected mode''-ohjelmia varten suorittimessa on vielä mukana niille tukea säilyttäen yhteensopivuuden vanhoille ohjelmille.<ref name="hwsaa" /> 64-bittiset ohjelmat suoritetaan ''long mode'' -tilassa.<ref name="hwsaa" />
'''AMD64''' (myös nimillä '''x86-64''', '''x86_64''' ja '''x64''') on [[AMD]]:n kehittämä 64-bittinen [[suoritin]]arkkitehtuuri. AMD64 rinnastetaan yleisesti [[Intel]]in vastaavan 64-bittisen [[EM64T]]-arkkitehtuurin kanssa.
[[Intel]]illä oli kilpaileva [[EM64T]]-arkkitehtuuri.<ref>{{verkkoviite | osoite = https://www.hardwaresecrets.com/intel-em64t-technology-explained/ | nimeke = Intel EM64T Technology Explained | ajankohta = 15.12.2005 | viitattu = 19.9.2020 | kieli = {{en}} }}</ref>
Vanhoja [[IA-32]]-tilan ohjelmia varten piirillä on mukana niitä tukeva käskykanta säilyttäen yhteensopivuuden vanhempien ohjelmistojen kanssa.


AMD ilmoitti arkkitehtuurista vuonna 1999<ref>{{Verkkoviite | osoite = http://www.amd.com/us/press-releases/Pages/Press_Release_751.aspx | arkisto = https://web.archive.org/web/20120308030806/http://www.amd.com/us/press-releases/Pages/Press_Release_751.aspx | nimeke = AMD Discloses New Technologies At Microporcessor Forum | ajankohta = 5.10.1999 | viitattu = 19.9.2020 | kieli = {{en}} }}</ref> ja julkaisi määrittelyn vuonna 2000.<ref>{{Verkkoviite | osoite = http://www.amd.com/us/press-releases/Pages/Press_Release_715.aspx | arkisto = https://web.archive.org/web/20120308025559/http://www.amd.com/us/press-releases/Pages/Press_Release_715.aspx | nimeke = AMD Releases x86-64™ Architectural Specification; Enables Market Driven Migration to 64-Bit Computing | ajankohta = 10.8.2000 | viitattu = 19.9.2020 | kieli = {{en}} }}</ref>
AMD julkaisi käskykannan määritelmät vuonna 2000 ja sitä ovat käyttäneet prosessoreissaan AMD:n itsensä lisäksi Intel ja [[VIA]]. Ensimmäinen käyttö nähtiin AMD K8 -mikroarkkitehtuurin Opteron ja Athlon 64 -prosessoreissa. AMD64 -käskykanta oli ensimmäinen merkittävä lisäys x86-arkkitehtuuriin, joka oli jonkun muun yhtiön kuin Intelin tekemä. Intelin oma strategia 64-bittisyyden suhteen oli julkaista Itanium (IA-64) -arkkitehtuuri, joka ei ollut alaspäin yhteensopiva ja jossa aikaisemmat PC:n käyttöjärjestelmät ja ohjelmat eivät siis toimineet. Intel joutui kuitenkin ottamaan käyttöön myös AMD64 -käskykannan, ensi kertaa vuonna 2004 NetBurst-mikroarkkitehtuurin Prescott-versiossa (prosessorit Celeron D, Pentium 4, Pentium 4 HT, Pentium 4 Extreme Edition). VIA Technologies käytti AMD64-käskykantaa VIA Isaiah -arkkitehtuurissaan (VIA Nano -prosessori).


== Lisensointi ==
== Lisensointi ==
Rivi 29: Rivi 29:
== Arkkitehtuurin eroja x86:een nähden ==
== Arkkitehtuurin eroja x86:een nähden ==


Samalla piirillä on ''legacy-mode'' tuki IA-32 käskykannalle.
Samalla piirillä on ''legacy-mode'' tuki [[IA-32]] käskykannalle.
Kun prosessori toimii ''long-mode'' tilassa tietyt erot tulevat voimaan.<ref name="suse">{{Verkkoviite | osoite = https://www.kernel.org/doc/ols/2001/x86-64.pdf | nimeke = Porting Linux to x86-64
Kun prosessori toimii ''long-mode'' tilassa tietyt erot tulevat voimaan.<ref name="suse">{{Verkkoviite | osoite = https://www.kernel.org/doc/ols/2001/x86-64.pdf | nimeke = Porting Linux to x86-64 | julkaisija = SuSE Labs | tiedostomuoto = PDF | viitattu = 12.1.2017 | kieli = {{en}} }}</ref>
| julkaisija = SuSE Labs | viitattu = 12.1.2017}}</ref>


* '''Enemmän [[rekisteri (tietokonetekniikka)|rekistereitä]]'''. Yleiskäyttöisten rekisterien määrä on nostettu [[x86-32]]:n kahdeksasta kuuteentoista.
* '''Enemmän [[rekisteri (tietokonetekniikka)|rekistereitä]]'''. Yleiskäyttöisten rekisterien määrä on nostettu IA-32:n kahdeksasta kuuteentoista.<ref name="suse" />
* '''Suurempi osoiteavaruus'''. Virtuaalisen osoiteavaruuden kokoa on kasvatettu 32 bitistä 48 bittiin. AMD64-arkkitehtuurissa suurin osoitettava muistin määrä on siis 256 [[Tavu (tietotekniikka)|teratavua]], kun ''x86-32''-arkkitehtuurissa se oli 4 [[Tavu (tietotekniikka)|gigatavua]]. Lisäksi osoittimien käyttämättömien bittien käyttöä on rajoitettu siten, että arkkitehtuuria on helppo myöhemmin laajentaa 64-bittiseen osoiteavaruuteen säilyttäen yhteensopivuus vanhoihin käyttäjätason ohjelmiin, vaatien muutoksia vain käyttöjärjestelmän muistinhallinnalta.
* '''Suurempi osoiteavaruus'''. Virtuaalisen osoiteavaruuden kokoa on kasvatettu 32 bitistä 48 bittiin.<ref name="suse" /> AMD64-arkkitehtuurissa suurin osoitettava muistin määrä on siis 256 [[Tavu (tietotekniikka)|teratavua]], kun ''x86-32''-arkkitehtuurissa se oli 4 [[Tavu (tietotekniikka)|gigatavua]]. Lisäksi osoittimien käyttämättömien bittien käyttöä on rajoitettu siten, että arkkitehtuuria on helppo myöhemmin laajentaa 64-bittiseen osoiteavaruuteen säilyttäen yhteensopivuus vanhoihin käyttäjätason ohjelmiin, vaatien muutoksia vain käyttöjärjestelmän muistinhallinnalta.
* '''Muistin osoittaminen suhteessa [[ohjelmalaskuri]]in''' (englanniksi ''instruction pointer relative data access'' – lyhyemmin ''RIP relative data access''). Muistiin pystyy AMD64-arkkitehtuurissa viittaamaan myös suhteessa ohjelmalaskuriin, mikä mahdollístaa osoiteriippumattoman koodin.
* '''Muistin osoittaminen suhteessa [[ohjelmalaskuri]]in''' (englanniksi ''instruction pointer relative data access'' – lyhyemmin ''RIP relative data access''). Muistiin pystyy AMD64-arkkitehtuurissa viittaamaan myös suhteessa ohjelmalaskuriin.<ref name="suse" /> Tämä mahdollístaa osoiteriippumattoman koodin.
* '''SSE-käskykanta'''. AMD64-arkkitehtuuri sisältää Intelin [[SSE]]- ja [[SSE2]]-käskykannat, ja uudemmat E-sarjan suorittimet tukevat myös [[SSE3]]-käskykantaa. Myös [[x87]]- ja [[x86#MMX|MMX]]-käskyt ovat tuettuja.
* '''SSE-käskykanta'''. AMD64-arkkitehtuuri sisältää [[SSE2]]-käskykantalaajennuksen [[x87]]- ja [[x86#MMX|MMX]]-käskyjen lisäksi.<ref name="suse" />
* '''[[NX-bitti]]'''. NX-bitti on suojausteknologia, joka mahdollistaa tiettyjen muistialueiden merkitsemisen suorituskieltoon. Näin pyritään ehkäisemään [[Puskurin ylivuotovirhe|puskuriylivuoto]]haavoittuvuuksien aiheuttamia haittoja.
* '''[[NX-bitti]]'''. NX-bitti on suojausteknologia, joka mahdollistaa tiettyjen muistialueiden merkitsemisen suorituskieltoon. Näin pyritään ehkäisemään [[Puskurin ylivuotovirhe|puskuriylivuoto]]haavoittuvuuksien aiheuttamia haittoja. AMD julkaisi tuen Athlon 64 -suorittimissa ja Intel Prescott-ytimellisissä Pentium 4 -suorittimissa.<ref>{{Verkkoviite | osoite = https://www.zdnet.com/article/amd-intel-put-antivirus-tech-into-chips/ | nimeke = AMD, Intel put antivirus tech into chips | ajankohta = 8.1.2004 | viitattu = 19.9.2020 | kieli = {{en}} }}</ref><ref>{{Verkkoviite | osoite = http://h10032.www1.hp.com/ctg/Manual/c00387685.pdf | nimeke = Data Execution Prevention | tiedostomuoto = PDF | viitattu = 19.9.2020 | kieli = {{en}} }}</ref><ref>{{Verkkoviite | osoite = https://lwn.net/Articles/87814/ | nimeke = x86 NX support | ajankohta = 2.6.2004 | viitattu = 20.9.2020 | kieli = {{en}} }}</ref>
* Segmentoitu muisti ei ole enää tuettu. [[Muistisivu]]jen käyttö on tyypillisempää ja mahdollistaa yksinkertaisemman ohjelmoinnin sekä tehokkaamman [[moniprosessointi|moniprosessoinnin]].<ref name="amd64">{{Verkkoviite | osoite = http://developer.amd.com/wordpress/media/2012/10/24593_APM_v21.pdf | nimeke = AMD64 Technology AMD64 Architecture Programmer’s Manual Volume 2: System Programming | julkaisija = AMD | viitattu = 12.1.2017}}</ref>
* Segmentoitu muisti ei ole enää tuettu. [[Muistisivu]]jen käyttö on tyypillisempää ja mahdollistaa yksinkertaisemman ohjelmoinnin sekä tehokkaamman [[moniprosessointi|moniprosessoinnin]].<ref name="amd64">{{Verkkoviite | osoite = http://developer.amd.com/wordpress/media/2012/10/24593_APM_v21.pdf | nimeke = AMD64 Technology AMD64 Architecture Programmer’s Manual Volume 2: System Programming | julkaisija = AMD | viitattu = 12.1.2017}}</ref>

Ohjelmien suorituksessa ''long mode'' -tilassa on käytössä uusi [[ABI]], muutoin käytössä on vanha yhteensopivuustila.<ref>{{Verkkoviite | osoite = https://refspecs.linuxbase.org/elf/x86_64-abi-0.99.pdf | nimeke = System V Application Binary Interface | sivu = 9 | tiedostomuoto = PDF | ajankohta = 2.7.2012 | viitattu = 20.9.2020 | kieli = {{en}} }}</ref>


== Toimintatilat ==
== Toimintatilat ==
Rivi 101: Rivi 102:


== Aiheesta muualla ==
== Aiheesta muualla ==
* [http://developer.amd.com/wordpress/media/2012/10/24593_APM_v21.pdf AMD64 Technology AMD64 Architecture Programmer’s Manual Volume 2: System Programming]
* [https://www.amd.com/system/files/TechDocs/24592.pdf AMD64 Architecture Programmer’s Manual Volume 1: Application Programming] (PDF) {{en}}
* [https://www.amd.com/system/files/TechDocs/24593.pdf AMD64 Architecture Programmer’s Manual Volume 2: System Programming] (PDF) {{en}}



{{AMD:n suorittimet}}
{{AMD:n suorittimet}}


{{Tynkä/Tietotekniikka}}
{{Tynkä/Tietotekniikka}}

[[Luokka:Suoritinarkkitehtuurit]]
[[Luokka:Suoritinarkkitehtuurit]]
[[Luokka:AMD]]
[[Luokka:AMD]]

Versio 20. syyskuuta 2020 kello 12.54

AMD64 -logo.

AMD64 (myös nimillä x86-64, x86_64 ja x64) on AMD:n kehittämä 64-bittinen suoritinarkkitehtuuri, joka suunniteltiin kehitysaskeleeksi 32-bittisestä x86-arkkitehtuurista.[1] Vanhoja 16- ja 32-bittisiä real mode- ja protected mode-ohjelmia varten suorittimessa on vielä mukana niille tukea säilyttäen yhteensopivuuden vanhoille ohjelmille.[1] 64-bittiset ohjelmat suoritetaan long mode -tilassa.[1] Intelillä oli kilpaileva EM64T-arkkitehtuuri.[2]

AMD ilmoitti arkkitehtuurista vuonna 1999[3] ja julkaisi määrittelyn vuonna 2000.[4]

Lisensointi

Intel ja AMD ovat sopineet ristiin lisensoinnista, jolloin myös Intel käyttää AMD64-tilaa prosessoreissaan.

Intel lisensoi AMD:lle oikeuden käyttää alkuperäistä x86 arkkitehtuuria.[5][6]

Vuonna 2009 AMD ja Intel sopivat useita lakikiistoja ja erimielisyyksiä jatkaen ristiinlisensointisopimuksia.[7][8]

Arkkitehtuurin eroja x86:een nähden

Samalla piirillä on legacy-mode tuki IA-32 käskykannalle. Kun prosessori toimii long-mode tilassa tietyt erot tulevat voimaan.[9]

  • Enemmän rekistereitä. Yleiskäyttöisten rekisterien määrä on nostettu IA-32:n kahdeksasta kuuteentoista.[9]
  • Suurempi osoiteavaruus. Virtuaalisen osoiteavaruuden kokoa on kasvatettu 32 bitistä 48 bittiin.[9] AMD64-arkkitehtuurissa suurin osoitettava muistin määrä on siis 256 teratavua, kun x86-32-arkkitehtuurissa se oli 4 gigatavua. Lisäksi osoittimien käyttämättömien bittien käyttöä on rajoitettu siten, että arkkitehtuuria on helppo myöhemmin laajentaa 64-bittiseen osoiteavaruuteen säilyttäen yhteensopivuus vanhoihin käyttäjätason ohjelmiin, vaatien muutoksia vain käyttöjärjestelmän muistinhallinnalta.
  • Muistin osoittaminen suhteessa ohjelmalaskuriin (englanniksi instruction pointer relative data access – lyhyemmin RIP relative data access). Muistiin pystyy AMD64-arkkitehtuurissa viittaamaan myös suhteessa ohjelmalaskuriin.[9] Tämä mahdollístaa osoiteriippumattoman koodin.
  • SSE-käskykanta. AMD64-arkkitehtuuri sisältää SSE2-käskykantalaajennuksen x87- ja MMX-käskyjen lisäksi.[9]
  • NX-bitti. NX-bitti on suojausteknologia, joka mahdollistaa tiettyjen muistialueiden merkitsemisen suorituskieltoon. Näin pyritään ehkäisemään puskuriylivuotohaavoittuvuuksien aiheuttamia haittoja. AMD julkaisi tuen Athlon 64 -suorittimissa ja Intel Prescott-ytimellisissä Pentium 4 -suorittimissa.[10][11][12]
  • Segmentoitu muisti ei ole enää tuettu. Muistisivujen käyttö on tyypillisempää ja mahdollistaa yksinkertaisemman ohjelmoinnin sekä tehokkaamman moniprosessoinnin.[13]

Ohjelmien suorituksessa long mode -tilassa on käytössä uusi ABI, muutoin käytössä on vanha yhteensopivuustila.[14]

Toimintatilat

Toimintatila Vaadittu käyttöjärjestelmän tyyppi Sovellusten uudelleenkääntäminen tarvitaan Osoitteen oletuskoko Operandin oletuskoko Rekisterilaajennukset Tyypillinen yleiskäyttöisen rekisterin koko
Long mode 64-bittinen tila Uusi 64-bittinen käyttöjärjestelmä kyllä 64 32 kyllä 64
Yhteensopivuustila ei 32 ei 32
16 16 16
Legacy
Mode
Suojattu tila Vanha 32-bittinen käyttöjärjestelmä ei 32 32 ei 32
16 16
Virtuaalinen 8086-tila 16 16 16
Reaalitila Vanha 16-bittinen käyttöjärjestelmä

Lähteet

  1. a b c AMD 64-bit architecture (x86-64) hardwaresecrets.com. 27.10.2004. Viitattu 20.9.2020. (englanniksi)
  2. Intel EM64T Technology Explained hardwaresecrets.com. 15.12.2005. Viitattu 19.9.2020. (englanniksi) 
  3. AMD Discloses New Technologies At Microporcessor Forum amd.com. 5.10.1999. Arkistoitu Viitattu 19.9.2020. (englanniksi)
  4. AMD Releases x86-64™ Architectural Specification; Enables Market Driven Migration to 64-Bit Computing amd.com. 10.8.2000. Arkistoitu Viitattu 19.9.2020. (englanniksi)
  5. AMD plays antitrust poker for Intel's X86 licence 3.2.2009. Incisive Media Limited. Viitattu 26.2.2009.
  6. Patent Cross License Agreement Between AMD and Intel contracts.corporate.findlaw.com. 1.1.2001. Arkistoitu June 21, 2007. Viitattu 23.8.2009.
  7. AMD Intel Settlement Agreement sec.gov.
  8. Stephen Shankland and Jonathan E. Skillings: Intel to pay AMD $1.25 billion in antitrust settlement 12.11.2009. CNET. Viitattu 24.4.2012.
  9. a b c d e Porting Linux to x86-64 (PDF) SuSE Labs. Viitattu 12.1.2017. (englanniksi) 
  10. AMD, Intel put antivirus tech into chips zdnet.com. 8.1.2004. Viitattu 19.9.2020. (englanniksi)
  11. Data Execution Prevention (PDF) h10032.www1.hp.com. Viitattu 19.9.2020. (englanniksi)
  12. x86 NX support lwn.net. 2.6.2004. Viitattu 20.9.2020. (englanniksi)
  13. AMD64 Technology AMD64 Architecture Programmer’s Manual Volume 2: System Programming AMD. Viitattu 12.1.2017.
  14. System V Application Binary Interface (PDF) refspecs.linuxbase.org. 2.7.2012. Viitattu 20.9.2020. (englanniksi) 

Aiheesta muualla

Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.