170181. lajstromszámú szabadalom • Digitális kiszámítógép nulla-, egy-, két- és háromcímes utasítások végrehajtására
170181 3 .... 4 kijelölése az utasítás kódjában kevesebb bitet igényel. Az egyoperandus műveletek tipikusan az akkumulátorokra hivatkoznak, azok tartalmát módosítják. A kétoperandusú műveletek egyik operandusa akkumulátorban, másik operandusa az operatív tárolóban van az utasítások tehát legfeljebb egy általános tárolócímet specifikálnak. Az akkumulátorok tipikusan s bistabil multivibrátorokból felépített tároló regiszterek, nem pedig az operatív tároló kitüntetett helyei. Ez azt eredményezi, hogy az akkumulátorokra hivatkozó utasítások végrehajtási ideje jelentősen csökken az operatív tároló tartalmára hivatkozó utasításokéhoz képest, minthogy a hardware regiszterek tartalma közvetlenül rendelkezésre áll, ill. módosítható. A végrehajtási idő csökkenése - különösen mikor a félvezető eszközök fejlődésével az integrált áramkörök megjelenése a hardware regiszterek számának gazdaságos növelését lehetővé tette — jelentős pozitív tényezőként hatott az egydmes utasításrendszerek alkalmazása terén. Az egydmes utasításrendszer tette lehetővé az ún. kis kategóriájú számítógépek (kisszámítógépek) kialakítását, amelyek rövid szóhosszú (tipikusan 8,12,16, 18 bites) tárolókat alkalmaznak, és ennek megfelelően a tárolt utasítások szóhossza rövid. Az egydmes kisszámítógépek tipikusan csak egy olyan hardware akkumulátor regisztert tartalmaznak, mely a műveletek operandusát szolgáltatja, emellett általában rendelkeznek egy vagy több korlátozott funkciójú regiszterrel, az említett akkumulátorregiszter bővítésére, indexelési feladatok ellátására stb. Az egydmes kisszámítógépek utasításrendszerére általában jellemző, hogy az akkumulátorregiszter tartalmának vizsgálatára és módosítására egyoperandusú műveleteknek viszonylag gazdag választékát kínálja (ún. Regiszter típusú utasítások), az akkumulátorregiszter és tárolóhely tartalma közötti kétoperandusú műveletek száma a címmeghatározás nagy bit-igénye miatt jelentősen korlátozott (ún. Regiszter-Store utasítások), a tárolóhelyek tartalmát módosító egyoperandusú műveletek (ún. Store utasítások) száma a lehető legminimálisabb. Un. Immediate utasítások beépítésére, melyek közvetlenül tartalmazzák a művelet egyik operandusát (Regiszter-Irnmediate és Store-Immediate utasítások), rendszerint nincs lehetőség. Tipikus egydmes kisszámítógép család a Digital Equipment Corporation cég (USA) PDP-8 típusú 12 bites szóhosszúságú számítógépcsaládja, mely ma is az egyik legelterjedtebb kisszámítógép család a világon. A nullacímes utasításrendszerek kialakításával lehetővé vált a digitális kisszámítógépek utasításkészletének jelentős bővítése, nagyszámú kétoperandusú műveletek bevezetése. A rendszer alapgondolata az, hogy a címet specifikáló utasítások számát a lehetséges minimumra csökkenti, ugyanakkor az akkumulátorregiszterek számát növelik, és a műveleti utasítások tipikusan az akkumulátorregiszterek tartalmán ill. tartalmai között írnak elő műveletet. A hullatímes utasításrendszerekre jellemző, hogy csaknem mindén aritmetikai művelet operandusát az akkumulátorregiszterek szolgáltatják és a művelet eredménye is akkumulátorregiszterbe íródik (Regiszter ill. Regiszter-Regiszter típusú utasítások). A tárolóreferenciás utasítások általában csak LOAD/STORE típusúak, melyek nem írnak elő aritmetikai művele-i tet, szerepük mindössze az, hogy az operatív tároló egy tárolóhelyének tartalmát egy akkumulátorregiszterbe írják, ill. hogy egy akkumulátorregiszter tartalmát az operatív tároló egyik helyére eltárolják. 5 A ynullatímes utasításrendszer" elnevezés tehát természetesen nem jelenti azt, hogy nincs címes utasítása a rendszernek, az elnevezés arra utal, hogy x az aritmetikai/logikai műveletek nem specifikálnak tárölódmet, nem tárolóhelyekre, hanem akkumulátor-10 regiszterekre hivatkoznak. Kisszámítógépekben a nullacímes utasításrendszerek rendkívüli előnye az, hogy a megfelelő regiszterek) kijelölése lényegesen kevesebb bitet igényel az utasítás kódjában, mint a tárolóhely(ek) kijelölése, 15 így a gépi utasítások a rövid szóhossz ellenére meglepően nagyszámú és hatékony műveleteket képesek előírni. A nullacímes utasításrendszerekben a kisszámítógépeknél is lehetőség nyílik pl. Immediate (Regiszter-20 Immediate) utasítások létrehozására. Az akkumulátorregiszterekre hivatkozó műveleti utasítások végrehajtási ideje jelentősen rövidebb, mint ha ugyanazt a műveletet tárolóhely operandusán kellene végrehajtani - ti. nem szükséges tárolóciklus -; ez a tényező 25 és a nagyszámú műveletek jelenléte a nullacímes utasításrendszerek hatékonyságát a kisszámítógépek kategóriájában kétségtelenül az egydmes utasításrendszerek fölé emelik. Tipikusan nullacímes kisszámítógép-család a Data 30 General Corporation cég (USA) NOVA típusú 16 bites szóhosszúságú számítógép családja. A NOVA számítógépek standard utasításkészletében (természetesen az ugró utasításokon kívül) mindössze három tárolóreferenciás utasítás található: Kétféle utasítás a 35 négy 16 bites akkumulátorregiszter valamelyike és egy tárolóhely közötti adatátírás előírására (Regiszter-Store utasítások), valamint speciális INCREMENTAND-SKIP-IFZERO utasítás (store utasítás) valamely ciklusszámlálónak használt tárolóhely tartalmá-40 nak módosítására és az eredmény figyelésére szolgál. Az elmúlt 6—8 évben világszerte nagy mértékben elterjedtek akisszámítógépek. Rendkívül sokféle kísszámítőgépet fejlesztettek ki a gyártó cégek, ezeknek egymástól általában jelentősen eltérő utasításrend-45 szere egydmes vagy nullacímes. A legutóbbi években az integrált áramkörök ugrásszerű fejlődése - a közepes és magasfokú integrált áramkörök elterjedése — következtében a kisszámítógépek előállítási költsége rohamosan csökkent, ugyanakkor a számítás-50 technika nagyarányú fejlődése a kisszámítógépek felhasználási területeinek jelentős bővülését és az ún. software - programok - árhányadosának szembeötlő növekedését eredményezte. E két tényező együttesen olyan irányban hatott, hogy a kisszámítógépekben is 55 - legalábbis bővítési lehetőségként, opcionálisan -megvalósítsanak olyan utasításokat, melyek korábban csak a nagyszámítógépre voltak jellemzőek. Az utasításrendszer bővítésére való törekvés elsősorban olyan irányú, hogy a kisszámítógép a bővítés következtében 60 közvetlenül végrehajthasson Regiszter-Store, Store-Store, Store-Immediate stb. utasításokat, olyan utasításokat, melyekről az ismert egy címes és nullacímes utasításrendszerek kialakításakor le kellett mondani. A kisszámítógépek utasításrendszerének bővítése, a 65 korábban csak nagyszámítógépekben megvalósított»'* 2