Hopp til innhold

x86-arkitektur

Fra Wikipedia, den frie encyklopedi
(Omdirigert fra «X86»)
486-prosessor fra Intel

x86-arkitekturen er en instruksjonssettarkitektur som ble introdusert i 8086-prosessoren fra Intel i 1978. Den har siden blitt benyttet i en mengde andre mikroprosessorer, og denne arkitekturen brukes fortsatt i de fleste PC-er. Navnet kommer av at hovedprosessoren i hver av de første prosessorgenerasjonene hadde navn som sluttet på 86. Arkitekturen har vært i stadig utvikling siden starten, noe som leder til mange undervarianter. IA-32/x86-32 er en videreutvikling av x86-arkitekturen, og x86-64 en videreutvikling av x86-32. Begge er bortimot fullt ut bakoverkompatible med den opprinnelige x86-arkitekturen.

Suksessen til denne arkitekturen kom egentlig ikke av dens oppbygning. Arkitekturen presterte ikke noe bedre enn andre typer, og Intel hadde planer om å lansere en nyere prosessor med ny arkitektur tidlig på 80-tallet. IBMs suksess med PC-en, som brukte en 8088-prosessor, gjorde det mest lønnsomt å fortsette med x86-arkitekturen. De kansellerte fremtidsplanene, og fortsatte med å videreutvikle arkitekturen. Dette har ført til både positive og negative sider om den. Den største ulempen er kanskje at arkitekturen har mye gammel tankegang helt tilbake fra 70-tallet, men fordelen er at programmer for x86-prosessorer kan kjøres på utrolig mange PC-er fra 80-tallet og frem til i dag.

x86-prosessorer produseres av Intel og AMD. Også NEC, Harris, Cyrix (senere VIA), IBM m.fl. har produsert X86-prosessorer.

Arkitekturen

[rediger | rediger kilde]

x86 er en CISC-arkitektur, noe som gjenspeiles i at instuksjonssettet inneholder mange og til dels kompliserte instruksjoner. Den opprinnelige x86-arkitekturen hadde en standard ordlengde på 16 biter, men dette ble økt til 32 biter i IA-32 og 64 biter i x86-64. Lenge hadde arkitekturen relativt få prosessorregistre, men dette endret seg med tiden, spesielt med introduksjonen av x86-64-arkitekturen.

Som de fleste datamaskinarkitekturer benytter x86-arkitekturen toerkomplement for å representere negative heltall. Dette gjør at man for addisjon og subtraksjon kan bruke de samme instruksjonene for å regne på tallverdier som kan være negative og tallverdier som kun er positive, siden logikken er den samme.

En underarkitektur av x86-arkitekturen er x87. De første x86-prosessorene støttet bare heltallsoperasjoner, så hvis man hadde behov for å regne med flyttall måtte man enten gjøre det i programvaren eller koble til en x87-prosessor. Navnet gjenspeiler som for x86 det faktum at disse prosessorene hadde navn som sluttet på 87. Med Intel 80486 prosessoren begynte man å inkludere FPUen i x86-prosessorene. Etter at SSE ble introdusert har man faset ut x87-instruksjonene som hovedmåten å utføre flyttallsoperasjoner på, men de forblir tilgjengelig av hensyn til bakoverkompatibiliteten. x86/x87 følger hovedsakelig IEEE 754-standarden. Flyttall kan representeres i enkel presisjon (32 bit), dobbel presesjon (64 bit) eller i det interne 80-bit formatet (kun x87-operasjoner).

Støtte for SIMD ble introdusert av Intel med MMX i 1997 og har siden blitt utvidet av AMDs 3DNow! og Intels SSE.

Intels prosessorer

[rediger | rediger kilde]

Forgjengere til x86-serien (4-bit og 8-bit)

[rediger | rediger kilde]
Navn Lansert Register-
bredde
Data-
buss
Adresse-
buss
Maksimal
RAM
Merknad
4004 1971 4 4 10 1 Kb Første mikroprosessor på en brikke
4040 1974 4 4 13 8 Kb
8008 1972 8 8 14 16 Kb Første 8-bit mikroprosessor
8080 1974 8 8 16 64 Kb Første mikroprosessor til generelt bruk på en brikke
8085 1977 8 8 16 64 Kb
Annen produsent
Zilog Z80 1976 8 8 16 64 Kb Forbedret utgave av 8080 / 8085

x86-serien (16-bit)

[rediger | rediger kilde]
Navn Lansert Register-
bredde
Data-
buss
Adresse-
buss
Maksimal
RAM
Merknad
8086 1978 16 16 20 1 Mb Første 16-bit mikroprosessor på en brikke
8088 1979 16 8 20 1 Mb Mikroprosessoren brukt i IBM PC
80186 1982 16 16 20 1 Mb 8086 med input/output støtte på en brikke
80188 1982 16 8 20 1 Mb 8088 med input/output støtte på en brikke
80286 1982 16 16 24 16 Mb Første mikroprosessor med integrert MMU
Andre produsenter
AMD 8086 1979 16 16 20 1 Mb
Harris 8086 16 16 20 1 Mb
OKI 8086 16 16 20 1 Mb
MHS 8086 16 16 20 1 Mb
NEC 8086 16 16 20 1 Mb
Siemens 8086 16 16 20 1 Mb
Mitsubishi 8086 16 16 20 1 Mb
Fujitsu 8086 16 16 20 1 Mb
USSR 8086 16 16 20 1 Mb Klone av 8086 produsert i Sovjetunionen
AMD 8088 1979 16 16 20 1 Mb

x86-serien (32-bit)

[rediger | rediger kilde]
Navn Lansert Register-
bredde
Data-
buss
Adresse-
buss
Maksimal
RAM
Merknad
80386 1985 32 32 32 4 Gb Første 32-bit x86-prosessor
80386 SX 1988 32 16 32 4 Gb 80386 med 16-bit databuss
80486 1989 32 32 32 4 Gb Integrert flyttallsenhet
8 Kb nivå 1 Cache for data
og instruksjoner
80486 SX 1991 32 32 32 4 Gb 80486 uten flyttallsenhet
80486 DX2 1992 32 32 32 4 Gb 80486 med klokkedobling
80486 DX4 1992 32 32 32 4 Gb 80486 med 3 x klokkefrekvens
Pentium 1993 32 32 32 4 Gb Hyperskalær prosessor: 2 heltallsenheter og 1 flyttallsenhet 8 Kb nivå-1
Cache for data og 8 Kb Nivå-1 Cache for instruksjoner
Pentium MMX 1995 32 32 32 4 Gb Ekstra multimediaenhet (MMX)
16 Kb nivå-1 Cache for data og
16 Kb Nivå-1 Cache for instruksjoner
Pentium Pro 1995 32 32 36 36 Gb Hyperskaler prosessor (3 instruksjoner samtidig), RISC-
kjerne, register renaming, 40 nye generelle registre, out-of-order
execution, spekulativ utførelse,
ikke-blokkerende Nivå-2 Cache-RAM
Pentium II 1997 32 32 36 36 Gb Pentium Pro med innebygd MMX
Pentium III 1997 32 32 36 36 Gb Pentium II med forbedret MMX
innebygd støtte for AMDs SSE
Pentium 4 2000 32 32 36 36 Gb Ytterligere forbedret MMX og SSE
SSE2 og SSE3

Andre produsenter av x86-prosessorer

[rediger | rediger kilde]