x86-arkitektur

Fra Wikipedia, den frie encyklopedi
(Omdirigert fra «Intel 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]