Mikroprocesszorok

Az integrált áramkörök előállítására használt LSI (Large-Scale Integration) technológia lehetővé tette, hogy a CPU-t egyetlen IC-ben valósítsák meg. Ez a mikroprocesszor.

Az első kereskedelmi forgalomba kerülő mikroprocesszor az Intel által készített 4004 volt 1971-ben. A processzor 4 bites volt, azaz 4 bitet tudott párhuzamosan feldolgozni. Összesen 45 utasításból állt az utasításkészlete.

Aztán több cég is előállította a saját mikroprocesszorait. A 4 bites mikroporcesszorok után megjelentek a 8, 16, 32, majd a 64 bites mikroprocesszorok.

1973-ban jelent meg a 8 bites Intel 8080-as mikropocesszor, ami sok évre meghatározó volt az újabb processzorok fejlesztésében és a személyi számítógépek gyártásában. Ennek a processzornak 16 címvonala volt, így 64 kilobájt memóriát tudott megcímezni. A műveleteket azonban 8 bites adatokon tudta csak elvégezni, a belső busz is 8 bites volt. Az aritmetikai áramkörök fixpontos bináris és decimális számok összeadását és kivonását tudták elvégezni, a szorzást, osztást és a lebegőpontos műveleteket külön programozni kellett.

Az ábra az Intel 8080-as mikroprocesszor szerkezetét mutatja. Az akkumulátoron (AC) kívül a gépnek 6 darab 8 bites általános célú regisztere volt (B, C, D, E, H, L). A (B, C), (D, E) és (H, L) párokat egyetlen 16 bites regiszterként is lehetett kezelni címek tárolására. A processzort úgy tervezték, hogy bárhol az operatív tárban képes volt egy vermet kezelni, amit a szubrutinhívások és a megszakítások kezelésének egyszerűsítésére szántak. A 16 bites verem-mutató a verem tetején lévő első szabad helyre mutatott.

A 8080-as egyik fogyatékossága az indexregiszter hiánya. Ez sok más kortársánál is hiányzott, de már a korai mikroprocesszorok között is volt indexelt címzési lehetőség például a Motorola 6800-asnál.

Az Intel 8080 utasításkészlete 72 utasításból állt. Változó hosszúságú utasításokat használt, voltak egy, kettő és három bájt hosszú utasításai is (a három bájt elegendő az utasításkód és egy 16 bites cím megadására). Minden szokásos utasítás-típus megtalálható volt itt, beleértve a veremkezelő utasításokat is. Az IO műveleteket a 8080 közvetlenül saját maga végezte. A perifériák egy címezhető puffer-regiszteren keresztül kapcsolódtak a cím- és adatbuszra. Két utasítás, az IN és az OUT szolgált arra, hogy egy bájtot átvigyen az akkumulátor és a puffer-regiszter között.

Az FR flag-regiszter 5 darab flip-flopot tartalmazott. Ezek jeleztek bizonyos körülményeket, pl. egy művelet eredményének előjelét vagy a túlcsodulást. A flagek tartalmát feltételes ugró utasításokkal lehetett lekérdezni.

Az aritmetikai műveleteket (alapvetően az összeadást és kivonást) 8 bites adatokon hajtotta végre a 8080. Ez a nyolc bit tartalmazhatott egy 8 bites bináris számot vagy egy kétszámjegyű decimális számot (BCD kódolással). Mindkét fajta operandusz esetén ugyanazt az utasítást használták pl. az összeadás elvégzésére. Ez bináris számok esetén helyes eredményt adott, decimális számok esetén azonban nem. Ilyenkor az aritmetikai művelet elvégzése után még ki kellett adni egy DAA (Decimal Adjust Accumulator) utasítást, ami az eredmény helyes decimális formáját kialakította.

Mint látható, a 8080-as szolgáltatásai nagyjából az első generációs számítógépekkel vethetők össze. Nem összehasonlítható azonban az áruk: egy mikroprocesszort már néhány dollárért meg lehet venni. Ezért még olyan helyeken is, ahol korábban speciális logikai áramöröket használtak (pl. egy automata mosógép vagy egy közlekedési lámpa vezérlésénél), most már megérte mikroprocesszort alkalmazni megfelelően megírt programmal. Ez a megoldás általában jelentős költségcsökkenéssel járt és így növelte a mikroprocesszorok iránti igényt.