179288. lajstromszámú szabadalom • Nagyssebességű mikroprogramozott processzor elrendezés
13 179288 14 cesszorokhoz képest kb. háromszoros sebességnövekedést okoz. Most tekintsünk át egy egyszerű feladatot, amelyet először egy ismert FAIRCHILD F 8 típusú rendszerrel, majd az 1. ábrán vázolt találmány szerinti rendszenei oldunk meg. A feladat egy N byteból álló adatblokk kivitele egy perifériára programvezérelten. Az F8 konfiguráció egyszerűsített vázlatát a 2. ábra szemlélteti, amelyen a jelölések a FAIRCHILD konvekciókat követik. A feladat végrehajtásához tartozó program a következő: DCI KEZDŐCÍM tárterület és ciklusszám beáll. U LR N rl, A IM Y LR r2, A test bit low AND 80 várás BZ Cl LM adatkivitel OUT X a data portra Li A, r2 OR 01 2° bit képzés OUT Y IN Y AND 80 27 bit high várás BNZ C2 DS rl ciklus test BNZ Cl Ennél a megoldásnál az egy adatkiviteli ciklus lossza 70 mikroszekundum értékű. A találmány szerinti processzor elrendezéssel a feladatot az alábbiak szerint lehet megoldani. Az 1. ábrán vázolt processzor elrendezést lényegében a 3. ábra processzor elnevezésű blokkja jelöli, és ehhez csatlakozik a választott Rx regiszter, amibe a szóban forgó adatblokkot kell betölteni. Mivel az előzőekben nem definiáltuk a találmány szerinti processzor elrendezéshez használható MNEMONIKUS kódokat, a feladat végrehajtásához tartozó utasításokat a 4. ábrán verbális alakban írtuk le. A feladat végrehajtásának 1. lépését a kezdő cím beállítás képezi a RAM memória MX helyén. Ezt követően a MUX 5 multiplexer z-edik bemenetének állapotát vizsgáljuk. Ez a vizsgálat három-öt mikrociklust vesz igénybe. Amennyiben a z-edik bemenet alacsony volt, a következő utasítás szerint a RAM memória MX helyén levő adatokat indirekt címzés után betöltjük az RX regiszterbe. Ez az utasítás a korábbiban vázolt módon négy mikrociklust igényel. Ezt követően az MX hely címzését megnöveljük. A megnövelés 4 mikrociklust igényel. A következő utasítás szerint az AKKU R akkumulátor regiszterrel összehasonlítást végzünk, majd a végcímet közöljük. Ez az utasítás három mikrociklust vesz igénybe. A feladat végrehajtását az ALU aritmetikai és logikai egység FLAG kimeneteinek a vizsgálatával folytatjuk, ami három-öt mikrociklus alatt elvégezhető. Befejezésként visszatérünk az eredeti szubrutinra (RTS művelet). Látható, hogy a találmány szerinti elrendezésnél az adatkiviteli hurok 5 utasításból és átlagosan mintegy 20 mikrociklusból áll, amelynek összideje körülbelül 2 mikroszekundum. Ha a programteijedelmet hasonlítjuk össze a 2. ábrán vázolt Fairchild rendszerével, akkor azt tapasztaljuk, hogy az ismert rendszer egy adatkiviteli ciklusa 24 byte hosszúságú, ugyanakkor a találmány szerinti rendszernél 5x3, azaz 15 byte terjedelmű. A működés sebességével kapcsolatban megállapíthatjuk, hogy azt főleg az alkalmazott RAM memória sebessége határozza meg. Ha a RAM memóriát 74S201 típusú memóriából valósítjuk meg, akkor egy mikrociklus ideje 100 ns lesz. Egy indirekt relatív címzésű adatmozgató utasítás például 5 mikrociklust vesz igénybe, azaz 500 ns ideig tart. Figyelembe véve még az előzőekben tárgyalt közvetlen hardware feltételeknek a programból való figyelését, valamint a közvetlen utasítás hatékonyságát (egy ilyen utasítás ideje 300 vagy 500 ns), megállapíthatjuk, hogy az előzőekben említett célokra való használat esetén, összehasonlítva a jelenleg elérhető bipoláris és MOS mikroprocesszorokkal, mintegy 15-20- -szoros sebességnövelés érhető el. A relatív címezhetőség jelentősége több, azonos típusú periféria egyidejű kezelésénél jelentkezik. Relatív címzéssel megírt program változtatás nélkül használható több azonos típusú egyidőben működő perifériára, mert a programparaméterek és a transzferálandó és feldolgozandó adatok a relatív címzés miatt a RAM memóriának egymást nem átfedő különböző tartományaiban helyezkedhetnek el. így elkerülhető a vezérlő program duplikálása. A leírás bevezető részében hivatkoztunk a mikroprocesszorok stack kezelésének ismert lehetőségeire. Az alábbiakban a találmány szerint megvalósított különleges stack kezelést mutatjuk be, amely a multiprocesszoros üzemmód szimulálását teszi lehetővé programtechnikai eszközökkel. Az ilyen stack kezelés jellemzőit az alábbiakban foglalhatjuk össze: 1. Processzor funkciónként külön-külön stack memória hozható létre, és ezek az operatív RAM memóriának a felhasználó által megszabott tetszőleges helyét foglalhatják el, és mélységük ésszerű határok között szintén tetszőleges lehet. 2. Stack pointer alkalmazása, amelynek aktuális értéke elhelyezhető az operatív RAM memóriában. 3. A PC programcím számláló aktuális értéke az SCK stack regiszterben és egy külön erre a célra kijelölt BRO regiszterben eltárolható (1. ábra). 4. A Stackpointer, azaz az SCK stack regiszter memóriában levő helye a BRI regiszterben tárolódik. 5. A BR2 és BR3 regiszterek aktuális értéke is eltárolható az SCK stack regiszterben. Ezeket a hardware által adott lehetőségeket a következő speciális J & R (ugrás és visszatérés) utasítás automatikusan használja, és segítségével a multiprocesszoros üzem megvalósítható. Az utasítás funkciója: ugrás a PM program memória kétszeresen indirekt címére N számú utasítás ciklusra, és visszatérés a visszatérési cím és paraméterek eltárolásával. 5 IC 15 20 25 30 35 40 45 50 55 60 65 7