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

3 179288 4 memóriacím megadható egy regiszterpár tartalma' ként is (indirekt címzés). 2. Aritmetikai és logikai utasítások. Ezeket álta­lában az akkumulátor regiszter és egy konstans, az akkumulátor regiszter és egy memóriarekesz, vala­mint az akkumulátor regiszter és egy általános célú regiszter között értelmezik. Az eredmény az akku mulátor regiszterben áll elő. 3. Feltételekhez kötött ugró, szubrutinhívó és visszatérő utasítás csoport. Ezek általában zéró túlcsorduláshoz, páros és plusz feltételekhez és ezek negáltjaihoz kötöttek. Egyéb más feltételeknél igé­nyelt elágazásokat programtechnikai eszközökkel ezekre a feltételekre kell visszavezetni. 4. Input-output típusú utasítások általában I/O portok és az akkumulátor regiszter között értelme­zettek. A processzoros rendszerekben gyakran előfordul, hogy olyan feladatok ellátására van szükség, ame­lyek a fenti utasításokkal nem, vagy pedig csak viszonylag lassan végezhetők el. A sebesség megnöve­lésének és a feladatvégrehajtás során nyújtott szol­gáltatások kibővítésének, végül a programozás le­egyszerűsítésének a gyakorlatban igen nagy jelentő­sége van. A mikroprocesszoros rendszerekben a szubrutinra való ugrásokat (JTS utasítás — jump to subrutine) és az onnan való visszatérést stack regiszter segítsé­gével végzik el. A stack funkció ellátásával kapcso­latban az ismert megoldások három fő típusa ter­jedt el: 1. Külső hardware stack alkalmazása. Az operatív memóriától független LIFO (last in first out) típusú regisztertömb 8—16 mélységben, melybe JTS utasí­tás esetén az aktuális programcím számláló érték betöltődik, RTS (return to subroutine) utasítás ese­tén az utolsó beírt programcím számláló érték a kimenetéről visszatöltődik a programcím számlálóba A folyamat automatikus menetéről hardware komp lexumok gondoskodnak (például SIGNETICS 2650). 2. Stackpointer alkalmazása, amely az operatív memóriában tárolt visszatérési címek közül mindig az aktuálisra mutat (INTEL 8080). 3. Egyes processzoros rendszerekben, például a Fairchild F8 rendszere, csak egyszeres mélységű stacket alkalmaznak. Amennyiben többszörös mély­ségű szubrutin hívások fordulhatnak elő, ennek a memóriába való elmentéséről külön gondoskodni kell, és ez nagymértékben csökkenti a rendszer működési sebességét. Az itt összefoglalt stack kezelésen kívül szükség van ezeknél rugalmasabb, gyorsabb működésű és a különböző ismétlődő feladatokhoz jobban alkalmaz kodó stack kezelés kialakítására. A találmány feladata olyan nagysebességű mikro programozott processzor elrendezés létrehozása, amely egyrészt képes arra, hogy a fentiekben leírt utasításkészletekkel megvalósítható feladatokat gyor­sabban oldja meg, további igényeket is ki tudjon elégíteni, ugyanakkor a stack kezelés tekintetében a felsorolt kiképzéstől eltérően különleges stack keze­lés biztosításával a műveletvégrehajtást gyorsítsa, és ezzel lehetővé tegye a multiprocesszoros üzemmód szimulálását programtechnikai eszközökkel. Felismertük, hogy a kitűzött feladat megoldásá­hoz, tehát az egyidőben lezajló nagysebességű folya­matok vezérlésére a szokásos megközelítési módok helyett olyan processzorelrendezést célszerű létre­hozni, amely hardware szempontból egyetlen, soft­ware szempontból azonban „n” számú processzor­ként viselkedik. Ez a többprocesszoros viselkedés természetesen nem azonos a nagyszámítógépeknél alkalmazott REAL TIME üzemmóddal, bár a felhasználó számára ez is virtuálisan többprocesszoros üzemmód­nak tűnik. REAL TIME rendszerekben egy virtuális processzor egyszeri tényleges működése igen nagy számú (104—106) összefüggő utasításcsoportot fog­lal magába, tehát az ilyen rendszerek reagálási ideje gyors folyamatok igényeihez képest irreálisan nagy. A találmány szerint kialakított processzor elrende­zésnél az ilyen gyors folyamatokhoz tartozó reagálá­si idők utasításfinomságú léptékben szabályozhatók, A találmány szerinti processzor elrendezés 1 db V utasítás/sec sebességű, vagy „n” darab olyan procesz­­szorként működtethető, amelyek sebessége rendre Vi, V2,... Vn utasítás/sec. Amennyiben ez az n számú virtuális processzor n számú vezérelt folyamat vezérlő programjait hajtja végre, a Vt ... Vn sebes­ségek az egyes programok végrehajtásának az átlagse­bességei, és érvényes rájuk, hogy Vi+V2+... + vn=v. A találmány szerinti processzor elrendezés többprocesszoros működését az a felismerés tette lehetővé, hogy ha egy hagyományos processzorele­mekből felépített struktúrát kiegészítünk egy megfe­lelően alkalmazott utasítás ciklus számlálóval, továb­bá a hagyományos elrendezés általános célú regiszte­rei közül kettőt speciális feladatra tartalékolunk, és az utasításkészletet kiegészítjük két speciális utasítás­sal, akkor a többprocesszoros üzemmód megvalósít­ható. A fentiek alapján érthetővé válik a REAL TIME rendszerekkel történő kedvező összehasonlítás is. Fő különbség az, hogy a találmány szerinti pro­cesszor elrendezésnél a virtuális többprocesszoros működés megszervezése software eszközökkel az el­rendezés elindításakor, de hardware sebességgel történik, és ez nagyon kedvező a REAL TIME rend­szerek hosszadalmas software adminisztrációjához képest, ahol a futtatás során folyamatos nagy soft­ware igény jelentkezik. Egy hagyományos elemekből felépített processzor struktúrában az utasítás ciklus számláló létezése a fentieken túlmenően lehetőséget nyújt egy az eddig ismert processzoros rendszerekben nem használt uta­sítás típus létrehozására. Ennek az utasításnak az a célja, hogy alkalmazásával egy már megírt program­­területről 2 ... n számú összefüggő utasításcsoportot a program más helyére mintegy beollózzunk egyet­len utasítás segítségével. Ez az eljárás hasonlít a közismert szubrutinhívási technikához, azonban a visszatérés helyét nem a szubrutint lezáró RTS (re­turn from subrutine) utasítás határozza meg, hanem a hívó utasításban specifikálható, ami jelentős prog­­ramteijedelem megtakarítást tesz lehetővé. 5 10 15 20 25 )0 35 40 45 50 55 S0 65 2

Next

/
Thumbnails
Contents