Intel 8080

Från Wikipedia
Hoppa till: navigering, sök
Intel 8080
KL Intel i8080 Black Background.jpg
Intel C8080A
Information
Tillverkningsår Från 1974 till 1990
Tillverkare
Max. CPU klockfrekvens 2 MHz
Min. feature size 6 µm
Instruktionsuppsättning 8080
Kärnor 1
Kapsling
Intel C8080A-processor. Det första stiftet är markerat med ett litet svart kors
AMD-klon

Intel 8080 var en tidig 8-bitars mikroprocessor som utvecklades av Intel. Den första versionen, med 2 MHz klockfrekvens släpptes 1974. 8080-processorn betraktas allmänt vara den första verkligen användbara mikroprocessorn.

Beskrivning[redigera | redigera wikitext]

8080-processorn var efterföljaren till Intel 8008; den var därmed också källkodskompatibel. 8080:s stora 40-stifts DIP-kapsel tillät den ha en 16-bitars extern adressbuss och en 8-bitars databuss, vilket möjliggjorde enkel tillgång till 64 KiB arbetsminne.

Register[redigera | redigera wikitext]

Processorn hade sju 8-bitars processorregister (A, B, C, D, E, H, L), varav sex kunde kombineras i tre 16-bitars registerpar (BC, DE, HL). Den hade också en 16-bitars stackpekare som ersatte 8008:ns interna stack, och en 16-bitars instruktionspekare.

Instruktioner[redigera | redigera wikitext]

De flesta av 8-bitarsoperationerna som addition och subtraktion gjordes mellan ackumulator A och antingen ett av registren eller minnescellen M som var den plats i minnet vars adress fanns i HL-registerparet. Dessutom bestod 1/4 av alla möjliga instruktioner av flyttoperationer mellan registren och minnescellen M. Detta gav upphov till no-op-instrutioner (till exempel MOV B,B) utan effekt; dessa användes för att i programväg sakta ner processorn. Instruktionen MOV M,M, som syftar på att flytta innehållet i minnescellen M till sig själv, blev i själva verket tolkad som HLT, d.v.s. processorn stoppades tills en interrupt togs emot.

Alla instruktioner kodades med en byte, men några åtföljdes av en eller två extra bytes data, minnesadress, eller portnummer.

16-bitarsinstruktioner[redigera | redigera wikitext]

Trots att 8080:n var allmänt en 8-bitarsprocessor, kunde den öka eller minska ett registerpar med 1 (INX, DCX), addera registerparen (DAD) och byta värdena på HL och DE (XCHG).

In-/ut-portarna[redigera | redigera wikitext]

8080-processorn had stöd för upp till 256 in- och utportar som program kunde använda via speciella I/O-instruktioner. Detta system—att använda en separat adressrymd för I/O— används numera mindre sällan än minnesmappning som förenklar instruktionsuppsättningen (inget behov för separat I/O-instruktioner). Vid 8080:ns lansering sågs dock denna separat adressrymd som en fördel eftersom man inte behövde offra 256 bytes ur arbetsminnets adressrymd för I/O-ändamål. I/O-portarna användes även i de efterkommande 8085- och 8086-processorerna.

Separat adressrymd för stacken[redigera | redigera wikitext]

En av bitarna i processorns statusregister användes som indikation på att processorn använde sig av stackpekaren. Med denna signal var det möjligt att implementera en separat adressrymd för stacken. Denna finess användes dock sällan.

De 40 pinnarna[redigera | redigera wikitext]

Adressbussen hade 16 egna pinnar och databussen åtta pinnar som kunde användas utan multiplex. Genom detta och de två färdiga signalerna RD och WR var det möjligt att bygga ett enklare mikrodatorsystem. För att använda separat I/O, interrupt, eller DMA behövdes dock extra hårdvara, bland annat för att avkoda kontrollsignalerna på databussen. Bussarnas drivförmåga var ganska begränsad så även enkla tillämpningar måste ofta använda buffertkretsar.

Processorn behövde tre spänningar: -5, +5 och +12 volt samt två icke-överlappande synkroniseringssignaler på 0/5 volt. Det var alltså inte tillräckligt med TTL-nivåerna på 0.8/2.2 volt. Det är dock känt att minst en sovjetisk version, КР580ВМ80А, klarade att arbeta med enkel +5V-matning (+12V-pinnen kopplad till +5V och -5V-pinnen till jord). Intel 8080 utvecklade runt 1.3 W vid 2 MHz.

Pinnarnas användning beskrevs som följer:

Pin nummer Signal Typ Kommentar
1 A10 utgång Adressbit 10
2 GND matning jord
3 D4 ingång/utgång Dubbelriktad databuss. Processorn anger här tillfälligt "processorns tillstånd", alltså information om vad processorn för närvarande gör:
  • D0=1 <=> Läser en RST- eller CALL-instruktion i respons till ett interrupt. Denna läggs på databussen av extern hårdvara för att överföra kontrollen till en avbrottsdrivrutin.
  • D1=1 <=> Läser (D1=0 <=> skriver)
  • D2=1 <=> Använder stackpekaren (en separat adressrymd för stacken var förmodligen planerad)
  • D3=1 <=> Halt-läge på grund av en HLT-instruktion
  • D4=1 <=> Skriver till utport
  • D5=1 <=> Läser opkod
  • D6=1 <=> Läser data från inport
  • D7=1 <=> Läser data från minnet
4 D5
5 D6
6 D7
7 D3
8 D2
9 D1
10 D0
11 -5V matning Negativ 5V-spänning. Denna måste vara den första att kopplas på och den sista att kopplas från för att inte kretsen skall ta skada.
12 R ingång RESET=0 => Programpekaren sätts till 0000H. Övriga register påverkas ej.
13 DMA ingång Önskemål om en DMA-överföring (utan processorinblandning). Processorn lägger så småningom bussarna på hög impedans och talar om detta via ACK DMA.
14 INT ingång Interrupt-ingång, tas om hand så snart nuvarande instruktion är klar och detta signaleras med ACK INT.
15 CLC2 ingång Den andra fasen av tvåfas-klockan
16 ACK INT utgång 8080 hade två sätt att styra denna utgång. Normalt användes den för INT ACK enligt ovan, men den kunde också användas som en ordinär utgång i enklare applikationer.
17 RD utgång RD=0 signalerar läsning från minne eller inport.
18 WR utgång WR=0 signalerar skrivning till minne eller utport.
19 S utgång Indikerar att processorn har lagt ut sitt "tillstånd" på databussen. De olika bitarna ger extra information för minne, I/O, interrupt och DMA. Dessa signaler är alltså multiplexade med databussen och måste ofta demultiplexas innan de kan användas.
20 5 V matning Den huvudsakliga matningsspänningen på 5V.

21 ACK DMA utgång Bekräftar att 8080 har lagt bussarna på hög impedans så att annan hårdvara kan kontrollera bussarna, till exempel för DMA.
22 CLC1 ingång Första fasen på tvåfas-klockan.
23 RDY ingång Med denna ingång är det möjligt att plötsligt hejda processorns arbete. Det kunde till exempel användas för hårdvarubaserad stegvis avlusning.
24 WAIT utgång Indikerar att processorn är i WAIT-läge.
25 A0 utgång Adressbuss
26 A1
27 A2
28 12 V matning Negativ 12V-spänning. Denna måste vara den sista att anslutas och den första att kopplas bort för att inte kretsen skall ta skada.
29 A3 utgång Adressbussen kan läggas på hög impedans på förfrågan utifrån (via DMA-ingången).
30 A4
31 A5
32 A6
33 A7
34 A8
35 A9
36 A15
37 A12
38 A13
39 A14
40 A11

Konstruktion[redigera | redigera wikitext]

8080-processorns integrerade krets tillverkades i NMOS-process där minsta detaljstorlek var 6 µm. Ett enda metallskikt användes för att hopkoppla de c:a 6000 transistorerna. Själva chipytan var ungefär 20 mm².

Inflytande[redigera | redigera wikitext]

Tillämpningar och efterföljare[redigera | redigera wikitext]

8080-processorn användes i många tidiga mikrodatorer som Altair 8800 och IMSAI 8080 och i maskiner med operativsystemet CP/M. Den senare, helt kompatibla och mer kapabla Zilog Z80-processorn utnyttjade detta: Z80 och CP/M blev den dominerande CPU- och OS-kombinationen under det tidiga 1980-talet, på samma sätt som x86 och MS-DOS blev för PC:n ett årtionde senare.

Strax efter att 8080-processorn lanserats introducerades den konkurrerande processorn Motorola 6800 och senare MOS Technology 6502, en variant av 6800-processorn. Zilog introducerade sin Z80-processor, som hade ett helt kompatibelt maskinspråk och ursprungligen identiskt samma assemblerspråk. Av juridiska skäl utvecklade dock Zilog snart ett alternativt och syntaktiskt olikt assemblerspåk för Z80-processorn. Intel följde upp 8080-processorn med den kompatibla och (elektrisk) elegantare 8085-processorn. Senare kom den källkodskompatibla 16-bitarsprocessorn 8086 och 8/16-bitarsprocessorn 8088. Den senare valdes av IBM för sin nya IBM PC som lanserades 1981. 8080-processon gjorde alltså genom sin instruktionsuppsättning ett bestående intryck i datorhistorien.

Sovjetunionen tillverkade en komplett 8080-analog processor KP580ИK80 (senare även KP580BM80), där till och med kontaktstiften hade samma placering. Denna processor var grunden för (Радио 86РКryska), antagligen den mest populära amatörbyggsatsdatorn i Sovjetunionen.

Effekter på datorindustrin[redigera | redigera wikitext]

8080-processorn ändrade också sättet på vilket datorer byggdes. När 8080-processorn introducerades tillverkades datorsystem ofta av datortillverkare som Digital Equipment Corporation, Hewlett Packard, eller IBM. En tillverkare framställde kompletta datorsystem, inklusive processor, terminaler, och systemmjukvara som operativsystem och kompilatorer. 8080-processorn var egentligen utvecklad för, i princip, vilken tillämpning som helst förutom kompletta datorsystem. HP 2647 var en terminal som kunde köra BASIC på 8080-processorn. Microsoft skapade det första populära programmeringspråket för 8080-processorn, Microsoft BASIC.

8080-processorns och dess efterföljares grundläggande arkitektur har i stort ersatt stordatorer och motstått utmaningar från konkurrerande teknologier som RISC. De flesta datortillverkare har slutat tillverka egna processorer. Även om x86-arkitekturen inte är den elegantaste eller ens den teoretiskt mest effektiva, har den enorma marknadskraften av dess framgång gjort att x86-familjen idag och i många år framöver kommer att vara den dominanta processorarkitekturen. Den har till och med överskuggat Intels egna försök att ersätta den med inkompatibla arkitekturer som iAPX 432 och Itanium.

Externa länkar[redigera | redigera wikitext]