X86-64

x64 (også kjent som x86_64 og AMD64) er 64- bitsversjonen av x86 - instruksjonssettet . Den støtter en mye større mengde virtuelt minne og fysisk minne enn forgjengerne kunne, slik at programmer kan lagre store mengder data i minnet. x86-64 gir også 64-biters generelle registre og mange andre forbedringer. Spesifikasjonen ble laget av AMD , og ​​er implementert av AMD, Intel , VIA og andre. Den er fullstendig bakoverkompatibel med 16 -biters og 32-biters x86-kode . [ 1 ] ​: 13–14  Fordi hele 16-biters og 32-biters x86-instruksjonssettet er implementert i maskinvare uten emulering, kan eksisterende x86 kjørbare programmer kjøres uten hastighets- eller kompatibilitetsstraff, [ 2 ] mens eksisterende applikasjoner som var omkodet for å dra nytte av den nye prosessorens funksjoner kan oppnå ytelsesforbedringer.

Før utgivelsen ble navnene "x86-64" og "x86_64" brukt for å referere til instruksjonssettet. Ved publisering kalte AMD den "AMD64". [ 3 ] Intel brukte opprinnelig navnene IA-32e og EM64T før de brukte "Intel 64" for implementeringen. Noen, inkludert Apple , [ 4 ] [ 5 ] [ 6 ] bruker "x86-64" og "x86_64", mens andre, spesielt Sun Microsystems [ 7 ] (nå Oracle Corporation) og Microsoft , [ 8 ] bruk "x64" mens BSD -familien av operativsystemer og mange Linux-distribusjoner [ 9 ] [ 10 ] bruker "AMD64".

AMD K8 -prosessoren var den første som implementerte denne arkitekturen; det var den første som gjorde et stort tillegg til x86-arkitekturen designet av et annet selskap enn Intel. Intel ble tvunget til å følge etter og gi ut en modifisert NetBurst -familie som var fullstendig programvarekompatibel med AMDs spesifikasjoner og design. VIA Technologies introduserte x86-64 på deres VIA Isaiah-arkitektur med VIA Nano .

x86-64-spesifikasjonen er forskjellig fra Intel Itanium-arkitekturen (tidligere "IA-64"), som ikke støtter x86-arkitekturens opprinnelige instruksjonssett.

Oversikt

Det er en arkitektur opprinnelig utviklet av AMD fra x86 -arkitekturen , og implementert under navnet AMD64 . Den første prosessoren (for personlige datamaskiner) med støtte for dette instruksjonssettet var Opteron , utgitt i april 2003 . Den har senere blitt implementert i flere varianter av Athlon 64 og senere.

Intel -selskapet utviklet en kompatibel arkitektur under navnet Intel 64 (tidligere EM64T ). Som har blitt brukt i Pentium 4 og senere mikroprosessorer til selskapet.

Arkitekturbeskrivelse

AMD x86-64 (senere omdøpt til AMD64) instruksjonssettet er en direkte utvidelse av x86-arkitekturen til en 64-bits arkitektur, motivert av det faktum at 4 GB minne som er direkte adresserbart av en 32-bits CPU-bit ikke lenger er nok for alle applikasjoner. Noen av endringene:

Driftsmoduser

Driftsmodus Kreves av operativsystemet Rekompilering kreves standard rutingstørrelse standardstørrelse på operander Registerutvidelser Typisk registerstørrelse for generell bruk
lang modus 64 bit modus Nyere 64-biters OS Ja 64 32 Ja 64
kompatibilitetsmodus
_
Nei 32 Nei 32
16 16 16
Arvemodus
_
beskyttet modus Eldre 32-biters OS Nei 32 32 Nei 32
16 16
virtuell 8086-modus 16 16 16
kongelig modus Eldre 16 bit OS
Forklaring av driftsmodusen

Det er to primære driftsmoduser for denne arkitekturen:

Lang modus

Den brukes av noen BSD - er, GNU/Linux (x86_64), Solaris 10 og av 64-biters utgaver av Windows XP Professional, Windows Vista, Windows 7 og Windows 8.

Siden instruksjonssettet er det samme, er det ingen stor straff ved å kjøre x86-kode. Dette er ikke tilfellet på Intel IA-64- arkitekturen , der forskjeller i den underliggende ISA betyr at å kjøre 32-bits kode tilsvarer å bruke en helt annen prosessor. Uansett, på AMD 64 kan 32-bits x86-applikasjoner fortsatt ha nytte av en 64-bits rekompilering. De ekstra registrene som er tilgjengelige i 64-bits kode kan brukes av en kompilator på høyt nivå for optimalisering.

Ved å bruke lang modus kan et 64-biters operativsystem kjøre både 32-biters og 64-biters applikasjoner samtidig. En x86-64 inkluderer også innebygd støtte for å kjøre x86 16-bits applikasjoner. Microsoft har eksplisitt ekskludert støtte for 16-bits applikasjoner i x64-utgaven av Windows XP Professional på grunn av problemer med å få 16-biters x86-kode til å fungere med WoW64- emulatoren .

Arvemodus

Modusen som brukes av 16-biters operativsystemer, for eksempel MS-DOS , og 32-biters operativsystemer, for eksempel Windows XP . I denne modusen kan bare 16-biters eller 32-biters kode utføres. 64-biters operativsystemer som Windows XP Professional x64 og Windows Server 2003 x64 vil ikke kjøre.

AMD64

Markedsundersøkelse

AMD64 representerer en endring fra fortiden til AMD hvis oppførsel var å følge Intel -standardene , selv om den opprettholder den tidligere oppførselen til Intel ved å utvide arkitekturen til x86 , fra 16-bit 8086 til 32-bit 80386 , alltid uten å eliminere bakoverkompatibilitet. AMD64-arkitekturen utvider 32-bits x86-arkitekturen ( IA-32 ) ved å legge til 64-bits registre, med fulle 32-biters og 16-biters kompatibilitetsmoduser for eksisterende programvare. Selv 64-bits modus tillater bakoverkompatibilitet, noe som gjør det enkelt for x86-verktøy som kompilatorer å bli portert til AMD64-arkitekturen med minimal innsats. AMD64-arkitekturen har funksjoner som NX-biten .

Implementeringer

Følgende prosessorer implementerer AMD64-arkitekturen:

Intel 64

Intel 64 (tidligere kjent som EM64T ) er Intels implementering av x86-64-teknologi.

Historikk

I lang tid i historien har AMD produsert og sendt prosessorer basert på de originale Intel-designene, men i en vri av historien tok Intel, som så muligheten, i bruk AMDs x86-64-arkitektur, skapt som en forlengelse av AMDs x86-64-arkitektur. Intels egen serie med x86 -prosessorer. Ettersom AMD senere ga nytt navn til sin arkitektur til AMD64, endret Intel også deres til Intel 64.

Implementeringer

Denne arkitekturen er implementert i følgende prosessormodeller:

  • Pentium 4 720 Extreme Edition
  • Pentium 4 630
  • 6xx-serien
  • Pentium 4 524
  • 5x6-serien
  • 5x1-serien
  • Celeron D 355
  • Celeron D 331
  • 3x6-serien
  • 3x1-serien

Forskjeller mellom AMD64 og Intel 64

Selv om det er et høyt nivå av kompatibilitet på binært nivå, kan det finnes mindre forskjeller mellom de to instruksjonssettene. Et mindre eksempel er tillegget av CMPXCHG16B-instruksjonen (bytte to 64-bits ord ), en utvidelse av CMPXCHG8B-instruksjonen som finnes i de fleste x86-prosessorer på markedet; tidlige AMD-prosessorer hadde ikke denne instruksjonen, så alle EM64T-prosessorer inkluderte den.

Se også

Referanser

  1. AMD Corporation (september 2012). "Volum 2: Systemprogrammering" (PDF) . AMD64 arkitekturprogrammeringshåndbok . AMDCorporation . Hentet 17. februar 2014 . 
  2. IBM Corporation (6. september 2007). "IBM WebSphere Application Server 64-bit ytelse avmystifisert" . s. 14 . Hentet 9. april 2010 . Figurene 5, 6 og 7 viser også 32-bitsversjonen av WAS kjører applikasjoner med full innebygd maskinvareytelse på POWER- og x86-64-plattformene. I motsetning til noen 64-bits prosessorarkitekturer, emulerer ikke POWER- og x86-64-maskinvaren 32-bits modus. Derfor kan applikasjoner som ikke drar nytte av 64-bits funksjoner kjøre med full ytelse på 32-biters versjonen av WebSphere som kjører på de ovennevnte 64-bits plattformene. » 
  3. "Debian AMD64 FAQ" . DebianWiki . Hentet 3. mai 2012 . 
  4. ^ "x86-64-kodemodell" . Apple . Hentet 2012-11-23 . 
  5. arch(1)  Generelle kommandoer i Darwin BSD og Mac OS X - manualen
  6. Kevin Van Vechten (9. august 2006). "re: Intel XNU feilrapport" . Darwin-dev e-postliste . Apple-datamaskin . Arkivert fra originalen 1. februar 2020 . Hentet 5. oktober 2006 . "Kjernen og utviklerverktøyene har standardisert på "x86_64" for navnet på Mach-O-arkitekturen. 
  7. ^ "Solaris 10 på AMD Opteron" . Oracle . Hentet 9. desember 2010 . 
  8. ^ "Microsoft 64-bit databehandling" . Microsoft. Arkivert fra originalen 12. desember 2010 . Hentet 9. desember 2010 . 
  9. ^ "AMD64-port" . Debian . Hentet 2012-11-23 . 
  10. ^ "Gentoo/AMD64-prosjektet" . Gentoo-prosjektet. Arkivert fra originalen 3. juni 2013 . Hentet 27. mai 2013 . 

Eksterne lenker