X86-arkitekturtillägg

x86-arkitekturtillägg (x86 utökade funktioner) är tekniska lösningar utvecklade av olika x86- mikroprocessortillverkare för sina egna processorer, som ofta finns i vissa modeller och inte i andra. Mjukvaruutvecklare måste, innan de kan användas i sina egna program, utföra ett speciellt CPUID-kommando som rapporterar förekomsten av vissa tillägg. Om tillägget inte stöds måste programmet antingen avslutas eller använda andra algoritmer som inte använder tillägg.

Ibland används tillägg ofta i populära program, då börjar nästan alla tillverkare inkludera dem i sina processorer.

De mest kända tilläggen är MMX , SSE , 3DNow! , Hyper-threading . I grund och botten utvecklas nya tillägg av Intel och plockas sedan upp av andra tillverkare. Men ibland händer det att Intel själv inkluderar tillägg skapade av andra företag i sina processorer. Till exempel var detta fallet med x86-64-arkitekturen , först utvecklad av AMD och senare implementerad av Intel som Intel64/EM64T.

Standarduppsättning av tillägg ("från Intel")

Förlängning CPUID- flagga Beskrivning
FPU EDX[0] Inbäddad flyttalsenhet
VME EDX[1] V86-lägesförlängning
DE EDX[2] Förbättrade felsökningsverktyg
PSE EDX[3] Stora sidor (4MiB/2MiB)
TSC EDX[4] Inbyggd tidsräknare (maskincykler)
MSR EDX[5] Modellberoende register
PAE EDX[6] Fysisk adresstillägg
MCE EDX[7] Generera ett maskinkontrollundantag
CX8 EDX[8] CMPXCHG8B instruktion stöds
APIC EDX[9] Inbyggd lokal avbrottskontroller
SEP EDX[11] SYSENTER- och SYSEXIT-instruktioner stöds
MTRR EDX[12] Det är möjligt att ställa in typ av cache för vissa minnesområden i speciella register
PGE EDX[13] Global sidflagga stöds (inte spolas till TLB vid kontextväxling)
MCA EDX[14] Maskinkontroller stöds
CMOV EDX[15] Villkorliga dataöverföringsinstruktioner stöds
P.A.T. EDX[16] Stöder utökade cachingattribut för enskilda sidor
PSE36 EDX[17] Stora sidor (4MiB) på fysiska adresser över 4GiB
PSN EDX[18] Det är möjligt att läsa processorns serienummer
CLFL EDX[19] CLLUSH-instruktionen stöds
DTES EDX[21] Debug Trace och EMON Store MSRs
ACPI EDX[22] Det finns medel för att mäta temperaturen på processorkärnan
MMX EDX[23] Instruktionsuppsättning för Intel MMX-teknik stöds
FXSR EDX[24] Det är möjligt att spara/återställa det utökade sammanhanget
SSE EDX[25] SSE-instruktionsuppsättning stöds
SSE2 EDX[26] SSE2-instruktionsuppsättning stöds
SS EDX[27] självsnoop
HTT EDX[28] HyperThreading- teknik stöds .
TM1 EDX[29] Stöder avancerad temperaturkontroll med avbrottsgenerering
IA-64 EDX[30] Programmet körs i emuleringsläge på en Itanium-processor
PBE EDX[31] väntande paushändelse
SSE3 ECX[0] SSE3-instruktionsuppsättning stöds
PCLMUL ECX[1] PCLMUL-instruktion stöds
DTES64 ECX[2] 64-bitars Debug Trace och EMON Store MSRs
MÅN ECX[3] MONITOR/MWAIT-instruktioner stöds
DSCPL ECX[4] CPL-kvalificerad Debug Store
VMX ECX[5] Stöder Intel VT Virtualization Technology (Vanderpool)
SMX ECX[6] Stöder Intel TXT Trust Management Technology (LaGrande)
EST ECX[7] Stöds av Enhanced SpeedStep Technology
TM2 EDX[8] Stöder avancerad temperaturkontroll med avbrottsgenerering och THERM2_CONTROL-register
SSSE3 ECX[9] Stöder SSSE3 instruktionsuppsättning
CID ECX[10] kontext-ID: L1-datacachen kan ställas in på adaptivt eller delat läge
FMA ECX[12] FMA-instruktionsuppsättning stöds
CX16 EDX[13] CMPXCHG16B instruktion stöds
ETPRD ECX[14] MISC_ENABLE.ETPRD
PDCM ECX[15] Performance Debug Capability MSR
DCA ECX[18] Direct Cache Access (det vill säga möjligheten att förhämta data från MMIO)
SSE4.1 ECX[19] SSE4.1-teknikinstruktionsuppsättning stöds
SSE4.2 ECX[20] SSE4.2-teknikinstruktionsuppsättning stöds
x2APIC ECX[21] Lokalt APIC- tillägg , 32-bitars ID, APIC-register tillgängliga som MSR
MOVBE ECX[22] MOVBE-instruktioner stöds
POPCNT ECX[23] POPCNT-instruktioner stöds
AES ECX[25] Stöder hårdvaruacceleration för AES- krypteringsalgoritm
XSAVE ECX[26] Utökat stöd för hel eller partiell lagring/återställning av utökade sammanhang
OSXSAVE ECX[27] Flagga som indikerar för applikationen att operativsystemet kan spara/återställa utökade sammanhang (XMM-register, etc.)
AVX ECX[28] Stöder AVX vektorinstruktionsuppsättning och kodning med VEX-prefix

Ytterligare uppsättning tillägg ("av AMD")

Förlängning CPUID- flagga [1] Beskrivning
SYSCALL EDX[11] SYSCALL- och SYSRET-instruktioner stöds
FCMOV EDX[16] Flyttalsinstruktioner för villkorad dataöverföring (FPU) stöds [2] .
MP EDX[19] Flerprocessorkonfigurationer stöds
NX EDX[20] Ett sidattribut stöds som förbjuder exekvering av programkod.
MMX+ EDX[22] AMD MMX-tekniktillägg stöds
MMX+ [3] EDX[24] MMX-tekniktillägg från Cyrix [4] stöds .
FFXSR EDX[25] Snabb lagring/återställning av utökade sammanhang stöds
PG1G EDX[26] Jättesidor (1GiB)
TSCP EDX[27] Förbättrat stöd för inbyggd tidsräknare
LM EDX[29] Långt läge
3DNOW+ EDX[30] Stöder 3DNow!
3DNOW EDX[31] Stöder 3DNow!
AHF64 ECX[0] LAHF/SAHF-instruktioner tillgängliga från 64-bitarsläge
CMP ECX[1] HTT=1 anger HTT(0) eller CMP(1)
SVM ECX[2] Stöder AMD-V (Pacifica) virtualiseringsteknik
EAS ECX[3] APIC-tillägg stöds (APIC_VER.EAS, EXT_APIC_FEAT, etc.)
CR8D ECX[4] Registrera CR8 tillgänglig från äldre läge
LZCNT ECX[5] LZCNT-instruktion stöds
SSE4A ECX[6] SSE4A-instruktionsuppsättning stöds
MSSE ECX[7] Brist på anpassning i SSE är acceptabelt
3DNu! ECX[8] PREFETCH/PREFETCHHW-instruktioner stöds
OSVW ECX[9] OS-synlig lösning
IBS ECX[10] instruktionsbaserad provtagning
SKINIT ECX[12] AMD-V förtroendehanteringsteknik stöds
WDT ECX[13] Inbyggd vakthund stöds
SHA Stöder hårdvaruacceleration för SHA-krypteringsalgoritm

Anteckningar

  1. Vissa flaggor liknar standardtilläggsflaggor och är inte listade här.
  2. På K7-processorer indikerar flaggan närvaron av PAT-förlängningen från standarduppsättningen
  3. Från Cyrix
  4. På icke-Cyrix-processorer indikerar flaggan närvaron av FXSR-förlängningen från standarduppsättningen

Länkar