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ú kimene­tét vezérlő bemenetére (82), a megszakítás dekódo­ló (8) leválasztható háromállapotú kimenete (81) megszakítási címző vezetéken (í) keresztül a SE­QUENCER á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élfela­datokat ellátó nagysebességű mikroprogram­­megszakítás megvalósítására bit-szelet mikropro­cesszoros rendszerekben. Alkalmazása elsősorban sokcsatornás analizáto­rokban célszerű, ahol legfontosabb műszaki jellem­ző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 ada­tok 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 kez­dő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ódo­ló, 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 meg­hatá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 ke­­esztül a 2 mikroprogram tárban. Megszakitás-kérés esetén, amennyiben a végre­hajtás alatt levő mikroutasítás megszakítást enge­délyező b5 bitje engedélyezi a megszakítást, a meg­szakí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ú ug­rás utasítást hajtunk végre, melynek eredménye­képpen a megszakítást kezelő mikroprogram elejé­re jutunk. Ez a mikroprogram legalább három­né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 adat­buszon, 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 megfe­lelően a megszakítási feladatot elvégző mikroprog­ram kezdőcímét. Ez után következhet a megszaki­­tási feladatot elvégző mikroprogram indítása. Az ismert megoldás hátránya, hogy a főprog­ramró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 elfo­gadá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ű áram­kö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 el­rendezé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 befeje­zé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 ke­zelő szubrutint, a makroutasítás regisztert, a MAP­PING PROM-ot elhagyjuk és főprogram-megsza­­kítás multiplexert, s ezt kiszolgáló egyszerű áram­köröket alkalmazunk, továbbá a főprogram meg­szakítás előtti utolsó utasításának végrehajtása közben leválasztjuk a SEQUENCER áramkör ki­meneté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 vezet­jük, ugyanakkor a főprogram-megszakítás multip­lexeren át a STACK töltés fix kódját adjuk a SE­QUENCER áramkör bemenetére, akkor a megsza­kí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

Next

/
Thumbnails
Contents