187964. lajstromszámú szabadalom • Áramköri elrendezés mikroprogram-megszakítás megvalósítására
1 187 9Ó4 2 (3) megszakítás megkezdését engedélyező bit (b5) ötödik kimenetére (36), az inverter (11) kimenete a megszakítás dekódoló (8) háromállapotú kimenetét vezérlő bemenetére (82), a megszakítás dekódoló (8) leválasztható háromállapotú kimenete (81) megszakítási címző vezetéken (í) keresztül a SEQUENCER áramkör (1) kimenetére (113) és a mikroprogram tár (2) bemenetére (21) csatlakozik. (2. ábra) A találmány tárgya áramköri elrendezés célfeladatokat ellátó nagysebességű mikroprogrammegszakítás megvalósítására bit-szelet mikroprocesszoros rendszerekben. Alkalmazása elsősorban sokcsatornás analizátorokban célszerű, ahol legfontosabb műszaki jellemzők közé tartozik a kis adatfeldolgozási holtidő. Az eddig ismert megoldások követik az univerzális számítógépek rendszerét. Eszerint a megszakítás-kérés egy vezetéken érkezik a gép vezérlő egységébe és a megszakítás engedélyezése esetén kiváltja a főprogram későbbi folytatásához szükséges adatok mentését. Ezt követve megszakítás lekezelő programot indít, amelyben a megszakítás áramkör által szolgáltatott státus szó alapján megkeresi a megszakítást kiváltó okot, majd előállítja az adott megszakítási feladatot elvégző mikroprogram kezdőcímét és elindítja ezt a mikroprogramot. Ilyen célra szolgáló ismert megoldás található pl. John R. Mick és Jim Brick (Advanced Micro Devices, Inc.) „Mikropromming Handbook” c, kiadványában, amelynek kiadási éve: 1976. Az ismert megoldás tömbvázlata az i. ábrán látható, ahol: 1 SEQUENCER áramkör, amely a mikroutasítások sorrendjét határozza meg, 2 mikroprogram tár, 3 PIPE LINE regiszter, amely a végrehajtás alatt levő mikroutasítást tárolja, 4 címmeghatározó áramkör, amely a következő mikroutasílás címét határozza meg, 5 feltétel multiplexer, 6 bitenként törölhető regiszter, amely a megszakítás-kéréseket tárolja, 7 prioritás áramkör, 8 megszakítás dekódoló, 12 makró-utasítás regiszter, 13 MAPPING PROM, amely a mikroprogramok kezelőcímeit tárolja, 14 adatbusz. Az 5 feltétel multiplexernek feltétel Fl, F2, ... Fm bemenetei, a 6 bitenként törölhető regiszternek interrupt INT RQ,, INT RQ2, ... INT RQn bemenetei vannak. A feltétel Fl, F2, ... Fm bemertetek feltételes programelágazásoknál az ugrás irányát határozzák meg, ill. azt, hogy történjen-e ugrás a programban, vagy a következő utasítás hajtódjon végre. Az interrupt INT RQ,, INT RQ2, ... INT RQn bemeneteken keresztül a program megszakítható. A 3 PIPE LINE regiszterben tárolt mikroutasítás tartalmaz ugrási cím b, bitcsoportot, következő ciklust meghatározó vezérlő b2 bitcsoportot, feltételt kiválasztó b3 bitcsoportot, megszakítás végét vezérlő b4 bitet, megszakítást engedélyező b5 bitet. Az 1. ábra szerinti áramköri elrendezés működése a következő: Tegyük fel, hogy a 3 PIPE LINE regiszter a főprogram éppen végrehajtás alatt levő inikroutasitásának kódját tartalmazza. Ennek ugási cím b, bitcsoportja és következő ciklust meghatározó vezérlő b2 bitcsoportja határozza meg a következő mikroutasítás cimét a 4 címmeghatározó áramkörön és az 1 SEQUENCER áramkörön keesztül a 2 mikroprogram tárban. Megszakitás-kérés esetén, amennyiben a végrehajtás alatt levő mikroutasítás megszakítást engedélyező b5 bitje engedélyezi a megszakítást, a megszakítás-kérés az 5 feltétel multiplexeren és a 4 cimmeghatározó áramkörön keresztül lezárja a 3 PIPE LINE regiszter b< kimenetét. Ezzel egyidőben nyitja a 13 MAPPING PROM kimenetét, így ez utóbbi fogja meghatározni a megszakítást kezdő mikroprogram kezdőcímét, tehát MAP típusú ugrás utasítást hajtunk végre, melynek eredményeképpen a megszakítást kezelő mikroprogram elejére jutunk. Ez a mikroprogram legalább háromnégy utasításból áll és elvégzi a főprogram későbbi folytatásához szükséges adatmentést és a 14 adatbuszon, valamint a 12 makroutasítás regiszteren keresztül meghatározza, hogy melyik megszakítási feladatot ellátó mikroprogramot kell végrehajtani. Ezen kívül beállítja a megszakítás jellegének megfelelően a megszakítási feladatot elvégző mikroprogram kezdőcímét. Ez után következhet a megszakitási feladatot elvégző mikroprogram indítása. Az ismert megoldás hátránya, hogy a főprogramról a megszakítási mikroprogramra való áttérés végrehajtásához interrupt kezelő szubrutin szükséges. Ez a szubrutin a megszakítás kérés elfogadásától a megszakítási feladat végrehajtásának kezdetéig tart, és a következő feladatokat látja el:- a főprogram adatainak mentését,- a megszakítás okának megállapítását,- a megfelelő mikroprogram-kezdőcímre való ugrást. Ezen szubrutin lefuttatásához igénybevett időtartam célfeladatokat ellátó nagysebességű áramköri elrendezésben megengedhetetlenül nagy időveszteségként jelentkezik. A találmány célul tűzte ki az ismert megoldás hátrányainak megszüntetését és olyan áramköri elrendezés létrehozását, amellyel külön többlépéses megszakítás lekezelő szubrutin alkalmazása nélkül a megszakítás elfogadásától a megszakítás befejezéséig eltelt idő csökkenthető, s így jelentős időmegtakarítás érhető el. A találmány szerinti megoldás azon a felismerésen alapul, hogy ha a főprogramról a megszakítási mikroprogramra való áttérést elvégző interrupt kezelő szubrutint, a makroutasítás regisztert, a MAPPING PROM-ot elhagyjuk és főprogram-megszakítás multiplexert, s ezt kiszolgáló egyszerű áramköröket alkalmazunk, továbbá a főprogram megszakítás előtti utolsó utasításának végrehajtása közben leválasztjuk a SEQUENCER áramkör kimenetét a mikroprogram tár címző bemenetéről és oda a megszakítás dekódoló által meghatározott megszakítási. program első lépésének címét vezetjük, ugyanakkor a főprogram-megszakítás multiplexeren át a STACK töltés fix kódját adjuk a SEQUENCER áramkör bemenetére, akkor a megszakítás elfogadásától a megszakítás befejezéséig eltelt idő jelentősen csökkenthető. 5 10 15 20 25 30 35 40 45 5C 55 60 65 2