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
5 170181 6 többcímes utasítások beépítése, természetszerűleg azt jelenti, hogy a kisszámítógép hardware-ének többszavas utasítások végrehajtását kell elvégeznie. A kisszámítógépek utasításrendszerének bővítésére a jelenleg ismert megoldások szerint két megoldás alakult ki. A bővítés egyik megoldását az egycímes vagy nullacímes utasításrendszerben fennmaradó, kihasználatlan, ún. „opciókra őrzötf-optionally reserved — utasításkódok nyújtják. Az opcionális egy és többcímes utasítások az utasításrendszer alaputasításai mellett új utasítások, melyek egyszavas formában általában nem adhatók meg. Az első utasításszó tipikusan a műveletet határozza meg, az ezt követő utasításszó (vagy szavak) tárolócímet vagy címeket ad(nak) meg. Az ilyenformán történő bővítés három lényeges negatív következménnyel jár: 1. Hátrányos, hogy ugyanazt a műveletet, melyet az alap-utasításkészletben valamely utasításkód akkumulátorregiszter tartalmára hivatkozva előír, az opciós utasítások között egy, az előbb említettől eltérő kódú új utasítás is előírja, tárolótartalomra hivatkozva. Az adatok elérése után az előírt művelet elvégzéséhez szükséges vezérlési folyamat nem különbözik egymástól, a vezérlési folyamatot irányító utasításkódok viszont általában jelentősen különböznek, ami számottevő hardware többletet okozhat. 2. Hátrányos továbbá, hogy az opcionális utasításoknak az operandus tárolóhelyét meghatározó címzési mezői nem esnek egybe az alap-utasításrendszerben szereplő címzési mezőkkel, így az opciós utasítások által előírt címzési folyamatok a központi vezérlőegység részére feltétlenül jelentős hardwaretöbbletet okoznak, még akkor is, ha (célszerűen) ezen címzések rendszere egyébként megegyezik az alap-utasításkészletben meglevő címzési rendszerrel. 3. Legjelentősebb hátrányként említhető, hogy a bővítés során ténylegesen új, több szóhosszúságú kódokkal jellemzett utasítások jönnek létre, melyeknek végrehajtása az utasítástároló regiszter és a végrehajtást vezérlő logikai — és szekvenciális hálózatok jelentős bővítését igényli. Az említett bővítési eljárás hátrányai olyan jelentősek, hogy emiatt kisszámítógépekben gyakorlatilag nem valósítanak meg olyan rendszert, mely lehetővé tenné a felhasználó számára, hogy az alap-útasításrendszerben levő, akkumulátorregiszterre hivatkozó műveleteket egy-, két- és háromcímes formában is, az általános címzési módok szabad alkalmazásával előírhassa. Tipikus megoldás, hogy a kisszámítógép utasításrendszerét olyan utasítások bővítik, melyek lehetőséget nyújtanak néhány fontosabb művelet korlátozott címzési módokkal történő kétcímes végrehajtására. Háromcímes műveleteket általában nem valósítanak meg. A kisszámítógépek egy-, ill. nullacímes utasításrendszerének kibővítésére az előbb ismertetettől eltérő megoldást valósított meg a Digital Equipment Corporation cég (USA) a PDP-11 típusú kisszámítógép-család kialakítása során. A rendszer lényegében klasszikus kétcímes rendszer, amelyet oly módon alakítottak a kisszámítógépek rövid utasításhosszához, hogy különleges, az utasítás kódjában kevés bitet igénylő címzési módokat vezettek be, így biztosítván, hogy a rövid szóhosszú utasítások egy vagy két címdefiníciós mezőt tartalmazhassanak. Ezek a címdefiníciós mezők akkumulátorregiszterre, vagy akkumulátorregiszteren keresztül, közvetve, tárolóhelyre mutatnak. 5 Ezzel a megoldással elérhető, hogy minden művelet, mely akkumulátorok között végrehajtható, végrehajtható legyen akkumulátorregiszter és tárolóhely ill. két tárolóhely között is, és minthogy ezen változatokat nem különböző utasítások, hanem egyazon utasí-10 tás különböző címzési módjai írják elő, az előbbi bővítési móddal kapcsolatban említett hátrányok itt nem jelentkeznek. A rendszer jelentős hátránya viszont az, hogy a tárolóban levő operandusok címzési lehetőségeit az 15 ismert nulla — és egycímes rendszerhez képest — a kevés címkijelölő bit következtében — rendkívül szűk korlátok közé szorítja. Háromcímes utasításokat a rendszerben nem lehet megvalósítani. A találmány a nulla vagy egycímes kisszámítógép 20 utasításrendszerének bővítésére az előbbiektől eltérő, új megoldást valósít meg, mely kiküszöböli az ismert megoldások említett hátrányait és lehetővé teszi a kisszámítógépekben az akkumulátorregiszterekre hivatkozó utasítások egy- két- és háromcímes formában, 25 az általános címzési módok alkalmazásával történő végrehajtását. A kisszámítógépekben az általános címzési módok megtartásával hagyományos módon kialakítható egy-, két- és háromcímes opciós utasítások megvalósítása-30 kor fellépő komoly nehézségek abból adódnak, hogy ezen utasítások mindegyike ténylegesen új, többszavas utasításként jelentkezik az utasításrendszerben. Ezek végrehajtásához jelentősen új vezérlő szekvenciák szükségesek, az utasítástároló regiszter hosszát nö-35 vélni kell, az opciós utasítások végrehajtásához szükséges műveleti és címzési vezérléseket az utasítástároló regiszter más bitjei írják elő, mint az alap-utasításkészlet megfelelő utasítása esetén. A találmány szerinti megoldás kialakításakor az 40 volt a kívánalom, hogy a kisszámítógép minden akkumulátorregiszterre hivatkozó utasítása egy-, kétes háromcímes módon is végrehajtható legyen, anélkül, hogy ezen egy-, két- és háromcímes műveletek előírásához az utasításrendszerben új utasításokat — 45 utasításkódokat — kellene létrehozni. Ezt a célkitűzést úgy érjük el, hogy az opcionális egy-, két- és háromcímes műveletek előírásához nem új utasításokat vezetünk be, hanem a központi vezérlőegység "négy utasításvégrehajtási módját hoz-50 zuk létre: nullacímes, egycímes, kétcímes és háromcímes módokat. Nullacímes állapotban a központi vezérlőegység az előnyösen nullacímes utasításrendszer minden utasítását a szokásos módon hajtja végre, egycímes, kétcímes és háromcímes módban azonban 55 ugyanezen utasítások végrehajtása során a műveletek . operandusainak kiválasztása és az eredmény beírása módosul. Az utasítás mindössze egyetlen új utasítást tartalmaz az előnyösen nullacímes utasításrendszerhez ké-60 pest, ezt az utasítást a továbbiakban GET-nek nevezzük. A GET utasítás arra szolgál, hogy a központi egység utasításvégrehajtási módját megváltoztassa, ugyanakkor kijelöl a memóriában egy tárolóhelyet, ugyanazokkal a standard címzési lehetőségekkel, me-65 lyekkel az alap-utasításkészlet adátmozgató és ugró 3