172377. lajstromszámú szabadalom • Mikroprogramzott adatfeldolgozó rendszer
11 172377 12 felhasználásukig védve legyen, tárfoglaltság jelzést hozunk létre, hogy ennek törléséig megakadályozzuk a mikroprogram szintváltozásokat. Ez a törlés célszerűen nem később következik be, mint meghatározott számú mikroutasítás elteltével, amely a tárcím 71 számláló beírását követi, és így megakadályozzuk egy szintváltozás határozatlan letiltását, amely rendkívül káros lenne egy periférikus gép számára, például szinkronműködő, lényegében puffer nélküli gépek, azaz lemez- és kártyaolvasók esetében. Ezt a meghatározott számot hardware útján automatikusan vagy alternatív megoldásként egy mikroprogram- irású megállapodás révén kijelölhetjük, és a példaként! esetben ezen meghatározott szám értéke öt. A 12 főtár kiolvasási művelete során a tárcímző 71 számlálót egy mikroutasítással terheljük meg, amely beállítja a tárfoglaltság feltételét, például oly módon, hogy a 71 számláló közelében elhelyezett 116 bistabil átbillen. Ezen a címen a kiolvasott adatokat a tár kimeneti 115 regiszterében a 71 számláló terhelését követő harmadik mikroutasítás során érvényesnek jelezzük, és a tárfoglaltság jelzést töröljük, mihelyt a tár kimeneti 115 regiszterét operán dus fonásként, már felhasználtuk. Két kiolvasási művelet egymást átlapolhatja, ha a második kiolvasást, amelyet a 71 számláló terhelésével kezdeményeztünk, még a 115 regisztert operandusforrásként felhasználó utasítást közvetlenül megelőző utasítás során végezzünk el. Ekkor a 115 regiszterbe juttatott második szót még a 71 számláló első megterhelését követő ötödik utasítás bekövetkezése előtt szintén operandusként kell felhasználni. Tárbeírás műveletnél a tárcím 71 számlálót megtöltjük, a 116 bistabil beállítjuk, majd a tárbeírási 114 regisztert töltjük. A 116 bistabilt akkor álltjuk vissza, amikor már a tárbeírási 114 regiszterhez hozzáfértünk. Két be írási művelet egymást nem fedheti át, de egy beírási művelet átfedhet egy kiolvasást, ha a 71 számláét azzá az utasítássá töltjük, amely közvetlenül megelőzi az a folyamatot, amikor a 115 regiszter kimenetét operandusként hasznájuk. Ekkor a bemeneti 114 regiszter megtöltését az olvasási művelethez használt 71 számláó megtöltését követő ötödik utasítás előtt kell elvégezni. Lehetővé tesszük még az olvasási-módosítási-be írási tárműveletet is, amelyet a térfoglaltsági feltételhez engedáyezett öt mikroutasításon belül lehet befejezni. A csatolók például a 33 tárcsatér 34 tárcsa olvasó, 35 nyomtató, 36 video egység, 37 Standardinterface, 38 mű olyan hardware áramkörök, amelyek az esetleg szükséges bármely spedáis rendeltetésű mikrokód sorozattá összhangban megváasztott felépítésük révén képesek bármely olyan különbség elrejtésére, amely egyébként egy operációrendelő kód számára nyilvánvaló lenne, amely kódból a tárolt mikroprogram lefordítja a belső processzorműveletek vezérléséhez ténylegesen hasznát utasítások áapkészletének a rutinját. Ez a tulajdonság az új periférikus berendezésekhez vagy mechanizmusokhoz viszonyítva nagy rugámasságot biztosít, mivel egy megfelelő csatoló rendelkezésre állása esetén mái nincs szükség a processzor újraszervezésére. A mikroutasítások áapkészlete több ismert utasításból ál. Például 32-bites, kétcímű utasítások felhasználhatók aritmetiká műveletekhez mint összeadáshoz, kivonáshoz és irányítási és logiká művele- 6 tekhez, mint például mozgatáshoz, és/vagy üzem-ekviváencia függvények képzéséhez. A háromcímű utasítások hasonló logiká függvényeket tartámazhatnak és kiterjednek még az és-nem, az ekviváencia, a nem-és függvényekre azzá együtt, hogy ezután összehasonlítják az ugrási és a rekesz vagy regiszter bitbeállítási műveleteket. 16-bites utasítások használatáná fő utasításként átáában a vátozó regiszter terhelésű, aritmetiká és logiká műveleteket néhány léptetési és rekeszbeálítási művelettel együtt hasznájuk. A 16-bites segéd utasítások ákámasak betölteni és aritmetiká műveletekhez az őket kísérő 16-bites főutasítások eredményei alapján,továbbá alkámasak a rekeszekkel és indikátorokkal vagy komparátoiokká kapcsolatos eredményektől függő különböző ugrási műveletekhez. Néhány különösen hasznos további mikroutasítástípust most részletesebben is leírunk. Egy ilyen núkroutasítástípus az ismertetett processzor előnyös byte-orientált szervezésével kapcsolatos, amelyben minden szó harminckét bitet tartámaz, és a szavak egyenként nyolc bitet tartalmazó négy byte-ra vannak osztva. Az érintett utasítástípust áapvetően az egyik operandus bármelyik byte-jának kivételére és egy másik operandus bármely más byte-jának helyettesítésére szánjuk. Felhasznáható továbbá kiválasztott byte-oknak egyenként történő továbbítására, valamint olyan szavak létrehozására, amelyekben egy byte az egyik forrásból, a másik három pedig egy másik forrásból származik. Az adott utasítástól függően általában mindkét forrást és rendeltetési helyet fel lehet cserélni. Például, ha az operandusok a 83, 84 tárak A és B regisztereiben helyezkednek el, a 107 vagy 108 multiplexerek megfelelő bemenetelnek kiválasztása útján bármelyik operandusokból szelektíven byte-okat vehetünk ki. Az így vezérelt műveletek, különösen amelyek alkalmasan megválasztott módosítókat használnak, hasznos, és rugalmas byte-kezelési képességet biztosítanak. Azokban az esetekben, ahol a karaktereket byterendszerben képezik és kezelik, a fentiekben említett utasítástípust igen hatásos karakterkezelési képességének lehet tekinteni. Az a tény, hogy a processzor byte-orientált jellegét karakterszervezésnek lehet tekinteni, azt jelenti, hogy azokat a cél utasításkódokat, amelyek inkább szó-, mint byte-orientáltak, előnyösen lehet alkalmazni. Szó-orientált cél utasításkóddal kapcsolatos adatokat a byte-orientált processzorral könnyen el lehet helyezni, ha a szóhosszúság mindkét esetben azonos. A processzor szóhosszánál kisebb sóhosszúsággal rendelkező célkódok továbbá szintén elhelyezhető, mégpedig két további núkroutasítástípus felhasználásával, amelyek egyike az szó-orientált alapot olyan részekre hasítják, amely kisebb a processzorhoz alkalmazott byte- hosszúságnál és a byte-ok megmaradó helyeit nullákkal tölti meg. Az ilyen utasítást EXPAND utasításnak nevezzük, és úgy hat a léptetőregiszterre, hogy az a bitekkel kapcsolatos műveleteket elvégzi, a nullákat pedig hozzáadja. A másik utasítást a feldolgozás után használjuk, hogy a nullákat eltávolítsuk és összefűzzük a szó értékes bitjeit, és ezt az utasítást COMPRESS utasításnak nevezzük, és ugyancsak léptetőregiszterrel kapcsolatban végezzük el. Négy byte-os 32 bites processzorszavak és 24 bites célkódszavak esetében egy megfelelő EXPAND utasítás 24 bitszót egy léptetőregiszter 0-23 helyzetében ír 5 10 15 20 25 30 35 40 45 50 55 60 65