195015. lajstromszámú szabadalom • Processzor elrendezés primitív és összetett eljárásokat meghatározó utasítások végrehajtására
195015 szí vissza a vezérlést, amely címtől kezdve a rendszerprogram indításához szükséges utasítások és állapotok szerepelnek az M memóriában. A terminátor utasítás és a hozzá tartozó kapcsolás ismertetése előtt egy további primitív utasítás és azt végrehajtó áramkör ismertetésére van szükség. A találmány szerinti elrendezés használójának a programozás bizonyos szabályait be kell tartania. Egy ilyen szabály például az, hogy összetett utasítás végrehajtása előtt az összetett utasítás kezdő címét, a 3. ábra példája esetén a 101- -es címet a PAR paraméterverembe be kell vinni. Valójában ennél eggyel kisebb címet, azaz a 100-at kell bevinni, mert a végrehajtási ciklusban automatikusan ezt az értéket eggyel növeljük. További szabály az, hogy minden összetett utasítás végrehajtása előtt egy EXECUTE elnevezésű primitív utasítást végre kell hajtani. Erről a feltételről a működést biztosító operációs rendszernek kell gondoskodnia. Amint rövidesen látni fogjuk, az EXECUTE utasítás gondoskodik arról, hogy az összetett utasítás végrehajtása után a megfelelő állapotba visszatérhessünk. A 4. ábrán az EXECUTE utasításhoz tartozó vezérlő áramkör látható. A 18 lokális vezérlő modulnak ez az áramköre két D típusú 24, 25 flip-flopból áll, amelyeket az órajelek engedélyeznek. A 24 flip-flop vezérlő bemenete a 17 eljárás dekóder megfelelő, a példakénti esetben huszonhetedik kimenetéről EXECUTE utasítás esetén kap 1-es logikai szintet. Az ezt követő első órajelre a 24 flip-flop kimenetén a következő vonalak kerülnek 1-es állapotba: !ERP, POPPAR és 1PR. Az ezt követő órajelre a 25 flip-flop kimenetén FETCH jel keletkezik. A !ERP állapot értelmét az 5. ábra kapcsán ismertetjük. A RET visszatérési verem vezérlését a 23 mutató regiszter végzi, amely a verem mélységét mutatja, és a példakénti esetben hat bites hosszúságú. A 23 mutató regiszterrel 26 átmeneti tár is kapcsolódik, mely szintén hat bit tárolására alkalmas, és a kapcsoláshoz tartozik egy 27 ekvivalencia vizsgáló áramkör, amely mind a 23 mutató regiszterrel, mind pedig a 27 ekvivalencia vizsgáló áramkörrel összeköttetésben áll. A 27 ekvivalencia vizsgáló áramkör kimeneti vonalán ?ERP = 1 állapot akkor következik be, amikor a 26 átmeneti tár értéke megegyezik a 23 mutató regiszterével. A 26 átmeneti tár beírását a !ERP állapot váltja ki, ennek 1-es értéke esetén a 23 mutató regiszter pillanatnyi értéke íródik be a 26 átmeneti tárba. Az összetett eljárásokat megelőző EXECUTE utasítás hatására a 24 flip-flop kimenetén előáll a !ERP állapot is, ennek hatására a 26 átmeneti tárba beíródik a RET visszatérési verem pillanatnyi mélysége. Ezzel egyidejűleg a POPPAR utasítás a PAR paraméter veremből az IADB buszra kihozza 9 az elvégzendő összetett eljárás paramétermezejének kezdőcímét (illetve az annál 1 -el kisebb értéket) és ez az érték az IPR állapot hatására az IP interpretation pointerbe íródik. A soronkövetkező FETCH állapot ezt eggyel megnöveli és az M memóriának ezen a címen tárolt tartalmát utasításként az IADB buszra viszi. Az összetett utasítás végrehajtása a már leírtak szerint történik. Az utasítás végrehajtása során szükség van a »;« terminátor utasításra. A 18 lokális vezérlő modulnak az ehhez tartozó áramköre a 6. ábrán látható. A 17 eljárás dekódernek a »;« terminátor utasításhoz tartozó huszonnyolcadik kimenete D-típusú 28, 29, 30 és 31 flip-flopokhoz, 32, 33 ÉS kapukhoz, 34 inverterhez és 35 VAGY kapuhoz csatlakozik, amelyek a 6. ábrán vázolt módon kapcsolódnak. Az eddigiekkel összhangban mindegyik flip-flop vezérlést a központi órajelektől kap. A terminátor utasítás végrehajtása a 28 flip-flop kimenete után elágazik. Az elágazás a ?ERP vonal állapotától függ. A 3. ábrán vázolt példa esetén az összetett utasítás végrehajtása során a terminátor utasítást először az M memória 1003-as címénél használtuk fel. Megjegyzendő, hogy az összetett utasítás indítása előtt az EXECUTE utasításban lévő !ERP jellel a 26 átmeneti tárba beírtuk a RET visszatérési verem pillanatnyi értékét, ami például éppen 0 volt. Amikor az 1003-as címen a »;« utasítást kiváltottuk, akkor a RET visszatérési verem már nem volt üres, benne tároljuk az IP interpretation pointernek az összetett eljárást megelőző 101 -es állapotát, ami a visszatérést lehetővé teszi. A 27 ekvivalencia vizsgáló áramkör kimenetén ezért 0 állapot van (nincs ekvivalencia), ezért ?ERP = 0 és így a 34 invertert követő 33 ÉS kapu nyit ki. A soronkövetkező órajelre POPRET és IPR = 1 állapotok keletkeznek, ennek hatására a RET visszatérési veremben tárolt visszatérési cím az IADB buszra, innen pedig az IP interpretation pointerbe íródik. Ez utóbbi értéke tehát 101. A 31 flip-flopon és a 35 VAGY kapun keresztül FETCH állapot keletkezik, amely az IP interpretation pointert eggyel növeli és a folyamatvégrehajtást az M memória 102-es címéről folytatja. Ehhez hasonlóképpen történik a 2004-es címen található »;« terminátor utasítás végrehajtása is, mert a RET visszatérési verem a 102-es visszatérési címet tárolja, ezért ?ERP ismét nulla értékű. A 103 címen azonban a terminátor utasítás primitív utasításként jelentkezik, a RET visszatérési verem már üres. Ez tulajdonképpen azt jelenti, hogy a 101 -es címen kezdődő összetett eljárás végrehajtása befejeződött. A terminátor ciklus végrehajtása során a 27 ekvivalencia vizsgáló áramkör észleli, hogy a 26 átmeneti térben tárolt 0 érték azonos a 23 mutató regiszter értékével, és ?ERP=1 állapot követ-10 7 5 10 15 20 25 30 35 40 45 50 55 60 65