Intel 8086

Intel 8086 Beskrivelse av dette bildet, også kommentert nedenfor En versjon i keramisk etui C8086. Generelle opplysninger
Produksjon Fra 1978 til 1990-tallet
Maker Intel
Fremførelser
Frekvens 4,77  MHz  til 10  MHz
Fysiske spesifikasjoner
Boliger 40-pinners keramikk- eller plastdyp
Graveringsfinhet um
Den header -parameteren er obligatorisk.Arkitektur og klassifisering
Arkitektur x86

Den Intel 8086 (også kjent som iAPX 86 ) er et 16- bit CISC mikroprosessor fremstilt av Intel starter i 1978 . Det er den første prosessoren i x86- familien , som har blitt den mest populære prosessorarkitekturen i verden av personlige datamaskiner , arbeidsstasjoner og dataservere på grunn av IBMs valg om å bruke den som grunnlag for den. ' IBM PC ga ut noen år seinere. Hovedkonkurrenten var Motorola 68000 som ble utgitt i 1979 og spesielt brukt i Apple Macintosh .

Den ble lansert i mai 1978 til en pris på 360 dollar .

Etterfølgeren til 8080 , en 8-biters prosessor, vedtar den en total 16-biters arkitektur: registerene, databussen og beregningene utføres i 16 bits. Adressebussen har 20 bits, som gjør at den kan adressere 1 MB minne. Til sammenligning vil 68000 være en 16/32-biters hybridløsning et år senere, ved hjelp av 32-biters registre, en 24-biters adressebuss og en 16-biters ALU og databuss.

Den inneholder 29 000 transistorer etset i 3 µm . Dens datakraft varierer fra 0,33 MIPS (når den er klokket til 4,77  MHz som i IBM PC ) og opp til 0,75 MIPS for 10 MHz- versjonen  .

I stand til å utføre de fire grunnleggende operasjonene på heltall (ADD, SUB, MUL, DIV), kan den også utvides ved samtrafikk med en Intel 8087- prosessor som gir mulighet for prosessering av flytende punktnummer.

Historie

Prosjekt 8086 startet i Mai 1976. Den ble opprinnelig tenkt som en midlertidig erstatning for iAPX 432 , et veldig ambisiøst prosjekt som ennå ikke ble fullført, og som noen år senere vil være en kommersiell fiasko. Intel håpet dermed å avvise konkurranseprosessorer (inkludert Motorola , Zilog og MOS-teknologi ) mens de motarbeidet trusselen fra Z80 , designet av en tidligere Intel-ansatt som jobbet på 8080.

Arkitekturen til brikken ble raskt utviklet av en liten gruppe mennesker, ved å bruke de samme produksjonsteknikkene som for Intel 8085 for å sikre kompatibilitet.

Ved å tillate bruk av samme monteringsspråk som for 8008, 8080 og 8085, ble 8086 således presentert som perfekt kompatibel, og krever liten eller ingen endring av kildekoden til programmene. Det tilbyr imidlertid full 16-bits støtte, i motsetning til 8080 og 8085, som bare hadde veldig grunnleggende 16-biters evner.

Fortsatt med sikte på å lette adopsjonen, vil produsenten i 1979 avslå en versjon med navnet 8088 hvis eksterne busser er redusert til 8 bits (data) og 16 bits (adresse) for å gjøre den mer kompatibel med 8-biters hovedkort designet for l ' Intel 8080 . Denne tilnærmingen vil også eksistere for dens etterfølgere som 80186 (80188).

Anekdote

I 2002 ble NASA tvunget til å kjøpe 8086 prosessorer på eBay fordi de ikke hadde blitt produsert av Intel siden 90-tallet på grunn av foreldelse av valideringssystemene .

I 2018 lanserte Intel en prosessor med begrenset opplag, Intel Core i7 - 8086K , for å feire 40 år av Intel 8086.

Emballasje

Det finnes flere versjoner av 8086, med forskjellige boksetyper og flere maksimale frekvenser støttet.

Husene kan være av keramikk eller plast. 8086-suffikset angir maksimal frekvens: 5  MHz for 8086, 8  MHz for 8086-2 og 10  MHz for 8086-1.

Varianter

I 1979 lanserte Intel en variant av denne prosessoren, men med en ekstern databuss på bare 8 bits var det Intel 8088 . Det var denne billigere versjonen som ble valgt av IBM for å lage den første IBM-PCen .

Arkitektur

Hovedtrekkene

Minne adressering

Prosessoren har en 20-biters adressebuss mens arkitekturen er basert på en 16-biters ALU. For å overvinne denne begrensningen, bruker prosessoren en minnesegmenteringsmekanisme: en-byte-adressen oppnås ved kombinasjonen av to 16-biters registre via en tilleggsoperasjon som gir et 20-bit resultat.

Konkret avgrenser et såkalt segmentregister en blokk på 64 KB minne hvis startadresse er lik verdi_registrer x 0x10 (derfor et venstre skift på 4 bits: verdien 0x1234 spesifiserer derfor den virkelige adressen 0x12340). Til denne verdien som kommer fra segmentregisteret tillegges en verdi kalt forskyvning som kommer enten fra et annet mer generelt register, eller fra en direkte verdi av programmet.

Adressen til en byte bestemmes derfor som følger: fysisk adresse = segmentregistreringsverdi x 0x10 + forskyvning.

Segmentet identifiseres alltid av et av de 4 ALU-segmentregistrene: CS, DS, SS eller ES.

Etter konvensjon er segmenterte adresser notert som følger: XX: YY eller XX er navnet på segmentregisteret som brukes (eller noen ganger en direkte verdi) og YY navnet på registeret som inneholder forskyvningen (eller igjen en direkte verdi).

For eksempel CS: IP er en adresse dannet av en kombinasjon av Code Segment register (CS) og Instruction Pointer register (IP).

Registrerer

I motsetning til 68000, hvis veldig ortogonale arkitektur gjør det mulig å betrakte de fleste av registerene som likeverdige, har registerene til 8086 enten en dedikert funksjon eller spesifikke egenskaper som resulterer i operasjoner som bare gjelder dem. Det er derfor viktig å ha god forståelse av kapasiteten til hvert av registerene, og å bygge en effektiv kode, for å fremme optimal bruk av disse.

Avbrudd

Prosessoren har totalt 256 avbrudd, noen relatert til maskinvare, andre kan brukes av programvare. Avbruddstabellen er en minneblokk på 1024 byte som starter ved den fysiske adressen 0x00000 og består av 256 pekere i form Segment: Offset (derfor 4 byte hver). Avbruddsvektortabellen strekker seg derfor til adressen 0x003FF. Hver peker angir adressen til den tilknyttede avbruddshåndtereren. Så den første pekeren tilsvarer avbrudd 0, etc.

Når et avbrudd av nummer X heves, laster prosessoren pekeren som er tilstede ved minneadressen X * 4 inn i CS: IP-registerene, etter å ha lagret innholdet på stakken.

Antallet avbrudd avhenger av opprinnelsen:

Siden den samme logikken for å beregne lederens adresse brukes for hver type avbrudd, er det ikke noe reelt skille mellom maskinvare, ikke-maskerbar eller programvareavbrudd. Det er derfor nødvendig å unngå overlapp i tildelingen av tall.

De fem første avbruddene er reservert og produsert av selve prosessoren, enten direkte eller i forbindelse med de perifere komponentene:

Av denne grunn kan ikke maskinvare eller programvare avbryter 0 til 4, og mer bredt, spesifikasjonsreservene avbryter 5 til 31 for maskinvarebruk.

Alle andre avbrudd, utover 32, er gratis å bruke og kan spesielt utløses av en INT x-instruksjon.

Inngangs- / utgangsporter

I / O-portene har sin egen adresseplass som dekker totalt 64 KB. Portene varierer fra 0x0000 til 0xFFFF og håndteres av spesifikke instruksjoner:

Merknader og referanser

  1. (in) S. Mazor, "  Intel 8086's  " , IEEE Annals of the History of Computing , Vol.  32, n o  1,Januar-mars 2010, s.  75-79 ( DOI  10.1109 / MAHC.2010.22 , les online )
  2. William J. Broad, "  NASA sjekker EBay for foreldede deler  " , New York Times ,12. mai 2002
  3. Intel, "  Gratulerer med dagen, 8086: 8. utgave av Intel Core i7-8086K i begrenset utgave, gir topp spillopplevelse  " , Intel Newsroom,5. juni 2018
  4. 8086 16-BIT HMOS MICROPROCESSOR 8086 / 8086-2 / 8086-1 (offisielle tekniske data fra Intel)