Egy első generációs számítógép

Itt bemutatjuk a korábban már említett IAS számítógép logikai felépítését és programozását. Ezt jellemzőnek tekinthetjük az első generációs gépekre.

Az információ tárolási formája

A gép 40 bites szavakat használt, a memóriája 4096 szó kapacitású volt. Bármelyik memóriacímen lévő információ lehetett utasítás vagy adat.

Az adatok bináris fixpontos alakban voltak. A szó első bitje volt az előjel, a második a 2-1 helyiérték, aztán a 2-2, és így tovább, tehát -1 és 1 közötti számokat tudtak ábrázolni. A negatív számokat kettes komplemens formában tárolták.

Az utasítások 20 bit hosszúak voltak, ezért egy szóban két utasítást tároltak. Ez — mint látni fogjuk — némileg megbonyolította a processzor munkáját. Az utasítások első 8 bitje volt a végrehajtandó művelet kódja, a jobb oldali 12 bit pedig az operandusz címe. Ez éppen elég volt a 4096 szó megcímzéséhez, tehát minden cím közvetlen fizikai tárcím volt.

A CPU felépítése

Az adatok feldolgozását az aritmetikai-logikai áramkörök végezték. A vezérlő áramkörök dekódolták az utasításokat, vezérelték az információ haladását a rendszeren keresztül és gondoskodtak a tevékenységek időzítéséről. Egy óra szinkronizálta a rendszer működését.

A processzor több regisztert tartalmazott. Az adatregiszter (DR, data register) 40 bites volt. Egyszerre egy egész szót tudott fogadni a memóriából vagy oda elküldeni. A műveletek végrehajtása közben a DR tartalmazta az egyik operanduszt. Ugyanezen a regiszteren keresztül történt a perifériákra való adatküldés vagy az onnan való adatfogadás. Ez azt jelenti, hogy ha egy memóriában tárolt szót ki akartak iratni valamelyik perifériára, akkor azt egy utasítással beolvasták a DR-be, majd egy másik utasítással innen kiiratták.

A DR és a memória közötti adatátvitelnél a memóriacímet a 12 bites címregiszter (AR, address register) tartalmazta.

Műveletvégzésnél az operanduszok és az eredmény átmeneti tárolására szolgált az akkumulátor (AC, accumulator) és a szorzó-hányados regiszter (MQ, multiplier-qoutient).

Miután a memóriában egy szóban két utasítást tároltak, a memóriából való olvasásnál egyszerre két utasítás került a processzorba. Amelyiket éppen nem kellett végrehajtani, azt félretették az utasításpuffer regiszterbe (IBR, instruction buffer register).

A végrehajtandó utasítás kód részét az utasításregiszterbe (IR, instruction register) tették, innen dekódolta a processzor. Az utasítás címrésze az említett AR címregiszterbe került.

Volt a gépnek még egy címregisztere, ami a következő utasítás címét tartalmazta. Ez volt az utasításcím regiszter vagy más néven a programszámláló (PC, program counter). Ha nem vezérlésátadó utasítást hajtott végre a gép, akkor a PC tartalmát minden utasítás után 1-gyel megnövelte, tehát alapvetően egymás utáni memóriacímeken lévő utasításokat hajtott végre a gép.

A gép utasításkészlete

Adatátviteli utasítások:

Feltétlen vezérlésátadás:

Feltételes vezérlésátadás:

Aritmetikai:

Cím-módosító:

Input-output:

A cím-módosító utasítás kiválóan alkalmas pl. vektorokkal végzendő műveletekhez: a cím módosításával ugyanazt az utasítást lehetett végrehajtatni ciklusban más-más operanduszokkal. Ez a megoldás persze azzal jár, hogy a program maga megváltozik a futás során, így ha újra le kell futtatni, akkor újra az eredeti formáját kell a memóriába tölteni, a program nem újraindítható (nem reentrant).

Nincs a gépnek viszont olyan utasítása, ami alkalmas volna szubrutin-hívásra. Nincsenek lebegőpontos utasítások sem.