Intel 8080
Från Rilpedia
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.
Innehåll |
Beskrivning
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
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
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 (t.ex. 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
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
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 arbetminnets 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
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
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:
|
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
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
Tillämpningar och efterföljare
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 urpsrungligen 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РК på ryska), antagligen den mest populära amatörbyggsatsdatorn i Sovjetunionen.
Effekter på datorindustrin
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, or 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-familen 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
- Bilder på Intels och andra tillverkares versioner av 8080-processorn på cpu-collection.de
- Inscannade processorbeskrivning på datasheetarchive.com
- 8080-processorns historia
|