179288. lajstromszámú szabadalom • Nagyssebességű mikroprogramozott processzor elrendezés

15 179288 16 Az utasítás formátuma: Op. kód N INDIR2 CÍM Az utasítás végrehajtásának mikrociklusai: 0. Az Op. kód és az N értéke a Pr 1 regiszterben, az INDIR2 (kétszeresen indirekt ugrási) cím a Pr 2 regiszterben tárolódik, a PC programcím számláló továbblép. 1. A PC programcím számláló értéke az MUX 3 multiplexeren keresztül a BRO regiszterbe töltődik. 2. A Pr 2 regiszter értéke a MUX 1 és MUX 2 multiplexereken keresztül a BRI regiszterbe és a RAM ADDR címregiszterbe töltődik, N értéke az UCY utasítás ciklus számlálóba töltődik a Pr 1 re­giszterből. A PR puffer regiszter töltődik a Pr 1' regiszterből. Az FF2 flip flop bebillen, és az AND kapun keresztül az UCY utasítás ciklus számláló CY kimenetét a MUX 4 multiplexer bemenetére kapcsol­ja. 3. A RAM ADDR címregiszter által meghatáro­zott memóriarekesz tartalma a MUX 1 és MUX 2 regisztereken keresztül az SCK stack regiszterbe ás a RAM ADDR címregiszterbe töltődik. A memóriare­­kesz felső három bitje a FLAG ST flag tárolóba töltődik. 4. A RAM ADDR címregiszter által meghatáro­zott memóriarekesz tartalma a MUX 1 és MUX 2 multiplexereken keresztül a BR3 regiszterbe töltő­dik. Az SCK stack regiszter és a RAM ADDR címre­giszter dekrementálódik. 5. A RAM ADDR címregiszter által meghatáro­zott memóriarekesz tartalma a MUX 1 és MUX 2 multiplexereken keresztül a BR2 regiszterbe töltő­dik. Az SCK stack regiszter és a RAM ADDR címre­giszter dekrementálódik. 6. A RAM ADDR címregiszter által meghatáro­zott memóriarekesz tartalma a PC programcím számlálóba töltődik. 7. A BRO regiszter értéke a PC programcím számlálóba töltődik, és ettől a programcímtől kezd­ve folytatódik az utasításvégrehajtás. Az FF2 flip flop visszabillen, az AND kapu tiltódik. Ennek az utasításnak a használatával elugorha­­tunk a PM program memória kétszeresen indirekt címére, ott N számú utasítást végrehajthatunk, azu­tán visszaugrás történik oly módon, hogy a visszaug­­rási cím a BR2 és a BR3 regiszter, valamint a FLAG ST flag tároló értéke a stack memóriában elraktáro­zódik. Amennyiben ez az utasítás ismétlődik, a fent elraktározott PC programcím számláló, BR2, BR3 regiszter és FLAG ST flag tároló értékekkel folytat­hatjuk a félbehagyott (N számú utasítás után) prog­ramvégrehajtást. Az utasításban megadott kétszere­sen indirekt címmel a RAM memóriának azt a reke­szét adjuk meg, ahol a Stackpointer értéke és a felső három bitben a flag-ek találhatók, ez pedig annak a memóriarekesznek a címe, amely a BR3 regiszter programmegszakítás előtti aktuális értékét tartalmaz­za, az eggyel kisebb memóriacím a BR2 regiszterét, a következő RAM memória cím pedig azt a PC programcím számláló értéket, ahol a programvégre­hajtást megszakítottuk. összegezve tehát az utasítás címrésze egy adott processzor Stackpointer tartalmának a helyét jelöli ki a RAM memóriában, N számú paraméterrel pedig meghatározhatjuk, hogy a processzor hány darab utasítást hajthat végre egymás után. A Stackpointer tartalmát a szubrutin írások és a J & R utasítás befo­lyásolhatja. Most a találmány szerinti processzor elrendezés­nek a többprocesszoros működését szemléltetjük. Az alábbiakban az egyszerűség kedvéért a kétprocesszo­ros üzemmódot tárgyaljuk. Válasszunk két egymástól független feladatot, amelyek megoldását a Pi és P2 programok valósítják meg. A feladat jellege olyan, hogy szükség van a P! és P2 programok egyidejű futtatására. A korábbi ismert megoldásoknál ezt két hardware processzor végezte el (multiprocesszoros rendszer) V utasítás­végrehajtási sebességgel, amely a programok időbeni végrehajtásának a szükségleteivel volt összhangban. Ha létezik egy olyan processzor, amelynek utasítás­végrehajtási sebessége nagyobb, mint két V, akkor a jeladat a következőképpen is megoldható. Elkezdődik a Pj program futása. Ni utasítás végre­hajtása után a futást felfüggesztjük, a felfüggesztési állapot paramétereit eltároljuk, és elkezdjük a P2 program futtatását. N2 utasítás végrehajtása után hasonlóan az előzőekhez a P2 program futása áll le, és a Pi program felfüggesztési állapotának a paramé­terei visszatöltődnek, és ismét a Pi program futása következik Ni ciklusra. A további működés hasonló ciklikussággal folytatódik. Amennyiben az N szám értéke 1-től Nx-ig változhat, a kívánalmaknak megfe­lelően tetszőleges finomságú együttfutást állíthatunk be (szélsőséges esetben a két program utasításai fel­váltva hajthatók végre). Az 1. ábrán feltüntetett rendszer speciális stack kezelése, egyetlen UCY uta­sítás ciklus számláló regisztere és nagy sebessége miatt alkalmas a többprocesszoros üzemet szimuláló feladatok megoldására. Egy N processzoros rendszer fő program blokk­vázlatát az 5. ábrán tüntettük fel. Az 5. ábrán vázolt algoritmus lényegében külön magyarázatra nem szorul. A 3. utasításban meghatá­rozott J & R (ADDR 1) utasítás azt jelenti, hogy ugrást írunk elő az ADDR 1 kétszeresen indirekt címre N számú utasítás elvégzésére, majd innen visz­­szatérést kezdeményezünk, a többi processzornál ta­lálható hasonló ugrás utasítása ezzel azonos tartal­mú, csak itt a megfelelő címek változnak. Inidalizáláskor minden egyes processzornak be kell állítania a RAM memóriában azt az ADDR N címtartalmat, amely ezen processzorhoz tartozó stack memóriarész harmadik rekeszére mutat, ami­ben a BR3 regiszter értékét, a második rekeszben a BR2 regiszter értékét, az első rekeszben pedig ehhez a processzorhoz tartozó kezdeti programcímet kell beállítani. A találmány szerinti processzor elrendezés egy másik jellegzetes utasítása: ugrás a PM program me­mória direkt címére N számú utasítás végrehajtására és visszatérés. 5 10 15 20 25 30 35 40 45 50 55 60 65 8

Next

/
Oldalképek
Tartalom