172377. lajstromszámú szabadalom • Mikroprogramzott adatfeldolgozó rendszer
g 172377 10 processzor fő utasításkészletével összhangban lévő feldolgozási célok vezérlésénél van szükség. A 113 tár minden egyes mikroprogram szinthez egy-egy regiszterrel rendelkezik, tehát összesen tizenhattal. A fentiekben leírtuk, hogy egy magasabb elsőbbségű mikroprogram szintnek megfelelő periférikus csatoló ilyen módon képes bármely alacsonyabb elsőbbségű mikroprogram szint tevékenységének megszakításba. Azt is leírtuk, hogy egy mikroprogram szintre történő visszatérés során egy érvénytelenítő módosítást képes biztosítani, hogy az ugrások vagy a tárhozháférések semmilyen információveszteséget se okozzanak, még akkor sem, ha bekövetkezésük a megszakítás által érintett mikroprogram szint futása során történik. Az is lehetséges, hogy egy ilyen megszakítás során egy másik periférikus csatolótól szolgáltatásiránti kérés érkezik, amikor ezen második csatoló mikroprogram elsőbbségi szintje a megszakító csatolónál alacsonyabb, de a megszakított szintnél magasabb. Ezt a második periférikus csatolót még a megszakított szintre tortáiő visszatérés előtt kell kiszolgálni. Amíg azonban egy megszakított szintre történő normál visszatérés egyszerűen a megfelelő mikroprogram és üzemi regiszterek újrakiválasztását váltja ki, egy közbenső elsőbbségű új kérés kiszolgálásához az információ által érintett mikroprogramtár kezdeti cinének és a 49 többszörös vonalon és 50 többvonalas úton lévő üzemi tármódosító felvételére van szükség. Egy kiválasztott mikroprogram szintre való belépés egy további regiszter megfelelő jelölőbitjének beállításával van társítva, amikor ezen regiszternek tizenhat bitállapota van, tehát egy álapot minden mikroprogram szinthez. Ezt kényelmes módon a nullázó 74 tár egyes rekeszeinek járulékos bit-poziciójaként lehet kivitelezni, ahol a 74 tár beírása minden szintváltozáskor ML vonalon keresztül, vizsgálata pedig egy megszakításra adott válaszul M vonalon történik. A megszakítás befejeződésekor a legmagasabb elsőbbségű mikroprogram szinttel rendelkező kérés, amelyet a 31 vezérlőrendszer elsőbbség meghatározó tevékenysége állapít meg, egy megfelelő mikroprogram szintjelzést hoz létre. Ennek a szintnek megfelelő jelölőbitet vizsgáljuk meg. Ha ez egyezik a mikroprogram szint megfelelő értékével, akkor a C és K regisztereket, stb. használjuk. Ha ez a megegyezés nem áll fenn, ez azt jelenti, hogy az adott szintre első belépés történik, és a 49 többszörös vonalon és 50 többvonalas úton lévő jeleket éppen úgy gyűjtjük össze, mint megszakítás esetében. A megszakításos jelleg egy további jellemzője abban áll, hogy a csatolók által kezdeményezett és processzorhozzáférést igénylő kéréseket a processzorból érkező óraimpulzusok statikussá teszik, és a processzor ezeket az óraimpulzusokat mindig letilthatja, amennyiben a processzor megszakítást nem képes fogadni. Ez a megoldás biztosítja, hogy a periférikus kérések a processzor időzítéséhez vannak szinkronizálva. A csatoló kérések egészen addig rögzítetten haladnak, ameddig a processzor egy EXIT impulzust solgáltat egy kiválasztást vezérlő jellel együtt (97 dekódertől). Ez a megoldás gondoskodik arról, hogy a megszakításról vagy a megszakításokról való visszatérés előtt ezen megszakítási szintről nem feledkezünk meg. A leírt processzor a periférikus csatolók kéréseit a 0001-0111 mikroprogram szintek közül a megfelelő szinten szolgálja ki. Megszervezhetünk természetesen a megfelelő mikroprogram szintet használó periférikus tevékenységet is. Ezen a 0000-0111 szinten folyó műveleteket egy magasabb rangú szint megszakíthatja, és az ilyen megszakítást követően az üzemelés következő legmagasabb szolgáltatást igénylő szinten folytatódik, & ez az első megszakított szintre való visszatérést tovább késlelteti. Amint már az előzőekben említettük, a legmagasabb elsőbbségi szintet, a ’0000”mikroprogram szintet kritikus megszakítások számára, például paritáshibák vagy hardware meghibásodások számára tartjuk fenn. Mikor periférikus tevékenységre nincs szükség és ilyen kérés tincs függőben, a normál adatfeldolgozás az 1000-1111 mikroprogram szinteken történik. Az 1000-1111 mikroprogram szinteken történő üzemelés meglehetősen eltér a 0000-0111 szinteken megismert működéstől, amennyiben a szintről-szintre átmenetek a lerakott rutinok felrakás-típusú vezérlésével összhangban lévő normál sorrendben történik. Egy másik rutinhoz történő ugrásnál, amelyről visszatérés szükséges, az érintett és LINK mikroprogram utasítás dekódolásakor a mikroprogram szint 55 reverzibilis számlálóhoz vezetendő számlálóimpulzust hoz létre, hogy ezáltal biztosítsa a következő magasabb elsőbbségi szintet, amely kiválasztja a megfelelő mikroprogram címet és üzemi számíálóregisztereket ahhoz a beíráshoz, amelynek az indulási címét a LINK utasítás íja elő. Egy ugrásról való visszatérés esetében az érintett EXIT mikroprogram utasítás egy ellentétes irányú számimpulzust hoz létre, amelyet az 55 reverzibilis számlálóhoz vezetünk, hogy ezáltal a következő alacsonyabb elsőbbségű mikroprogram dmregiszter kiválasztásával a feldolgozást ezen szinten felújítsuk. Minden átmenetná a feldolgozási folyamat úgy folytatódhat, hogy megfeleljen a C és K üzemi regiszterek változásainak, és az összehasonlítás, a rutin és indikátor 113 tár a fentiekben vázolt átmenet kezdetétől számított két processzorciklus eltelte után következik be. Világos, hogy legfeljebb nyolc lerakott ugrást helyezhetünk el ezen rendszer felhasználásával, ha az időráfordításra, a tárolásra és az áttárazásra követelményt nem támasztunk. Az ugrási utasításokat olyan módon szimulálhatjuk, hogy a mindenkori pillanatnyi szint mikroprogram címregiszterét egy kiszámított címmel túlírjuk. Ez magában foglalja a mikroprogram címregisztemek operandus rendeltetéseként történő kinyüvánítását, és az utasítást feltétel nélküliként fogjuk kezelni, amikor a folyó sorozatban érvénytelenítést nem végzünk, és így a processzorciklusban veszteséget okozunk. Annak oka, hogy a főtár hozzáférése érvénytelenítést igényelhet, ha a hozzáférés a fővezetéknek 0000-0111 szintű megszakítása során következik be, abban rejlik, hogy a főtár bemeneti és kimeneti regisztereit a különböző mikroprogram szinteken nem ismételjük meg, és kihasználjuk a tárvezérlés szervezésének közösítéséből származó előnyöket. A 4. ábrán a 12 főtár alapvető elrendezését tüntettük fel, amelyben a tárhoz beírandó szavak részére 114 regisztert, a tárból kiolvasandó szavak részére 115 regisztert alkalmazunk és jelöltük a 66 multiplexer kimenetéről származó tár 17 cimutat, (lásd 2. ábra) és a 66 multiplexer kimenete akkor kerül ilyen áÚapotba, amikor 70 bemenete a 12 főtár címének 71 számlálójához kapcsolódik. Annak biztosítása céljából, hogy a 114, 115 regiszterek valamint a 71 számláló tartalma az éppen folyó szinten végzett mikroprogram művelet során történő 5 10 15 20 25 30 35 40 45 50 55 60 65