186323. lajstromszámú szabadalom • Multimikroprocesszoros rendszer
9 1S6323 10 mikroprocesszor modulokra a 6 szekvenciális be-/kimeneti áramkör 7 be-/kimeneti és vezérlősínén keresztül is lehet szekvenciális adatokat adni. Az órajeleket egy órajel-generátor kimenetéről adjuk a mikroprocesszorok e célra szolgáló 13 órajel impulzus bemenetéire. A 18 kommutációs áramkör a következőképpen működik: Ha a 27 bemeneti sínekre egy meghatározott kódot adunk, a 25 regiszterek közötti adatcseréhez az alábbi transzformációk közül egyet végrehajtunk. B0 = 12.. . .N, Bi = =123.. ■ N, 12.. . ,N 213... ,N B2=1234. ..N, . . . , Bn-i = 12... ,N— 1 N, 2314. ..N 23... ,N 1 Bn= 123. ..N-1 N, 234. ..N N ahol a felső sor a regisztereknek azon futó számait tartalmazza, amelyek az alsó sorban levő megfelelő regiszterek tartalmát felveszik. Egy B0, Bj, ..., BN bázistranszformációkból álló sorozat összes N-regisztere kicserélésére vonatkozó tetszőleges transzformáció felbontására léteznek már algoritmusok és programok, így például ha arra szükség van, hogy a 4. modul tar talmát az 1., 2. és 3. modulokba vezessük, ugyanakkor az 1. modulból érkező adatokat kell venni, ahol a címek, amelyekkel B0, B,, B2, B3, B4-et megvalósítjuk, a 80, 81, 82, 83, 84-nek felelnek meg, és a mikroprocesszor beállítása az A 73 címmel történik (az összes cím hexadecimális formában van megadva), akkor egy utasítássorozatra van szükség, amelyet az első modulnak kell végrehajtani (N=4, a modulok tartalma, amelyeket ki kell cserélni, a megfelelő regiszterekben találhatóak): F181, F183, F182, mivel a szükséges cserét a 1234 444! transzformációval lehet ábrázolni, amely a B3, B4, B, sorrendet felbontja. A program futása innen az F1A7 Î utasításra megy, ahol az FI kód egy fiktív utasítás (olyan utasítás, amely létezik, de a végeredményt tekintve semmiféle hatást nem idéz elő). Amikor a transzformáció egy permutáció, annak felbontása N—1-nel nem hosszabb, amire egy egyszerű analitikus formula és egy megfelelő program van. Az MSIMD multimikroprocesszoros rendszer működésmódja a következő. Minden egyes 35 SIMD multimikroprocesszoros rendszer a saját programját hajtja végre, amely részben megegyezhet egy másik 35 SIMD multimikroprocesszoros rendszer programjával. Fia kell, rendszerben levő összes 16 mikroprocesszor modul adatait ki lehet egymás után cserélni, azaz átírni, éspedig az elemi modulok transzformációjával, ahol íz adatcsere a következőképpen megy végbe: a szükséges transzformáció (amely legyen például egy p permutáció) a (12), (123).........(12.. .N) ciklusok szorzatába lesz felbontva, ahol N a rendszerben levő összes modul száma. Ezután a ciklusokat szekvenciálisán, azaz sorrendben egymás után végrehajtjuk, ahol a párhuzamos alappermutációkat az egyes hierarchia-lépcsők 18 ko nmutációs áramköreiben vagy kicserélő-regiszter áramköreiben valósítjuk meg. így például, ha az 5. ábrán bemutatott rendszernél arra van szükség, a p=(024... 2426 1 3 ... 25 27 28 29 ... 53 54) permutációt (amely ciklus formájában van megadva, nem pedig két sor os ábrázolásban) úgy lehet végrehajtani, hogy egy standard eljárással a (0 1 2 ... 25 26) • (0 1 2 ... 53 54) szorzatra bontjuk. Az első permutációt három ütemben hajtjuk végre, (egy ütemben egy alap permutációt). Az első ütemben a (0 1 2 3), (4 5 6 7), (8 9 10 11), (12 13 14 15), (16 17 18 19), (20 21 22 23), (24 25 26) permutációkat az SIMD rendszerekben végezzük el, azaz a nulladik hierarchia-lépcső 25 regisztereiben. A második ütem során a (0 4 8 12), (16 20 24) permutációkat az első hierarchia-lépcső 25 regisztereiben párhuzamosan hajtjuk végre, ahol a számjegyekkel a különböző hierarchia-lépcsők áramköreiben levő 25 regisztereket jelöltük, amelyek megfelelnek a rendszerben levő modulok számainak. A második permutációt szintén három ütemben hajtjuk végre, ahol az első ütem során a (0123)-tól (48 49 50 51)-ig levő összes ciklust és az (52 53 54) ciklust hajtjuk végre. A második ütemben a (0 4 8 12), (16 20 24 28), (32 36 40 44 48 52) ciklusokat párhuzamosan valósítjuk meg, és a harmadik ütemben pedig a (0 16 32 48) permutációt. A teljes p permutációt 6 ütemben hajtjuk végre. A találmány szerinti multimikroprocesszoros rendszereket különböző mikroprocesszor családokból lehet felépíteni. A találmányon végzett kísérletezés során különböző mikroprocesszoros rendszereket vetítettünk az INTEL és MOTOROLA család mikroprocesszorainak alapjára, miáltal a találmányt nem korlátozzuk, csak lényegét ismertetjük közelebbről. Ezekre a rendszerekre kidolgoztunk eljárásokat, algoritmusokat és programokat különböző feladatok egész sorának a párhuzamos megoldására. Ha a 16 mikroprocesszor modul helyi cím-mezőjében egy ROM típusú 38 tárolót iktatunk be, a 2. ábrán bemutatott multímikroprocesszoros rendszer egy SIMD/ MIND rendszerré alakul át, azaz ennél a rendszernél egy új funkcionális konfiguráció kialakításánál az egyik típusról egy másik típusra csak a szóbanforgó modul 1 mikroprocesszorának programszámlálójában található címtől függően lehet áttérni. Ha a programszámláló egy ebben a helyi 38 tárolóban található program címét tartalmazza, akkor ez a modul önállóan és a többitől függetlenül dolgozik (vagyis a rendszer egy MIND rendszer). Lehetséges az is, hogy egy adott időpontban egyes 16 mikroprocesszor modulok (amelyek a 2. ábrán bemutatott rendszerben vannak) saját programjaik szerint működjenek, ugyanakkor a több 16 mikroprocesszor modul egy közös programot hajtson végre, mely közös program a ROM típusú 20 közös tárolóban van. A modulok a saját programjaikról áttérhetnek a közös programra, éspedig a saját programjaikban elhelyezett hívási címeken keresztül, mely hívási címek a saját vagy helyi címmezőn kívül helyezkednek el és egy „közös”, több modulra vonatkozó hívási utasítást tartalmaznak. Ez a funkcionális új konfiguráció, amely automatikusan megy végbe, a találmány egyik jelentős előnyét jelenti, annál is inkább, mivel ennek megvalósítása nagyon egyszerű. Ez kibővíti a találmány alkalmazhatóságának a körét, amennyiben azt különböző feladatok megoldására lehet használni úgy, hogy működési sebessége nagyobb, a teljes rendszer tárigénye pedig kisebb lesz. Az a lehetőség, hogy a 16 mikroprocesszor modulokban ROM típusú 38 tárolókat lehet használni, hogy egy MSIMD rendszerű kivetített hierarchikus multimikroprocesszoros rendszert a program végrehajtásakor funkcionálisan M—SIMD/MIMD, SIMD vagy MISD rendszerű új konfigurációként használjuk. Ez megnöveli a hatékonyságot, mivel bizonyos feladatoknál (problé5 10 15 20 25 30 35 40 45 50 55 60 65 6