Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

SZÁMÍTÓGÉP ARCHITEKTÚRÁK - 16 Németh Gábor. 2001Németh Gábor: Számítógép architektúrák 2 TRANSPUTER ARCHITEKTÚRA - 1 Nagyméretű és bonyolult feladatok.

Hasonló előadás


Az előadások a következő témára: "SZÁMÍTÓGÉP ARCHITEKTÚRÁK - 16 Németh Gábor. 2001Németh Gábor: Számítógép architektúrák 2 TRANSPUTER ARCHITEKTÚRA - 1 Nagyméretű és bonyolult feladatok."— Előadás másolata:

1 SZÁMÍTÓGÉP ARCHITEKTÚRÁK - 16 Németh Gábor

2 2001Németh Gábor: Számítógép architektúrák 2 TRANSPUTER ARCHITEKTÚRA - 1 Nagyméretű és bonyolult feladatok jól kezelhetőek a konkurrens kommunikáló folyamatok és a lépésenkénti finomítás elvek alkalmazásával.  Az OCCAM nyelv egy ilyen tervezési koncepció egyik nagyon hatékony formalizmusa és a  TRANSPUTER eszköz egy univerzális építőelem az e formalizmussal megtervezett algoritmusok megvalósítására.

3 2001Németh Gábor: Számítógép architektúrák 3 TRANSPUTER ARCHITEKTÚRA - 2  A nyelv és az eszköz által képviselt architektúra a folyamatokat szoftver és/vagy hardver építőelemekként kezeli.  Az OCCAM nyelv az architektúra logikai oldalát, míg a  TRANSPUTER az architektúra fizikai oldalát képviseli.

4 2001Németh Gábor: Számítógép architektúrák 4 OCCAM NYELV - 1 Az Occam nyelv a konkurrenciát és a kommunikációt a nyelv alapelemeinek tekinti (ahogy más nyelvek pl. az értékadási vagy olvasási műveleteket). A nyelvnek nagyon kevés és nagyon egyszerű tulajdonsága van. (William of Occam [14. sz.]: "Entia non sunt multiplicanda praeter necessitatem.") Csak a nyelv alapelveit és azokon belül főleg a folyamatok konkurrenciája és együttműködése kezelését tárgyaljuk.

5 2001Németh Gábor: Számítógép architektúrák 5 OCCAM NYELV - 2 A nyelv alapvető entitása a (véges) folyamat (process), mely kezdete és vége között bizonyos műveletsorozatot hajt végre. A folyamatok egymással pont-pont, egyirányú csatornákon keresztül kommunikálnak. A folyamat végrehajtása alatt várakozó állapotban lehet (egy vagy több csatornáján keresztül kommunikációra vár). A folyamat belső szerkezete a környezete elől el van rejtve (egyedileg tervezhető és fordítható). (Sajnos ez a nyelv újabb változataiban nem egészen igaz!)

6 2001Németh Gábor: Számítógép architektúrák 6 OCCAM NYELV - 3 A nyelv az elemi folyamatok gyakorlatilag tetszőleges összefogásával (soros vagy konkurrens csoportosításá- val) lehetővé teszi a rendszer hierarchikus szerkezeté- nek leírását. Egy TRANSPUTER-en futó program formálisan egyenértékű egy OCCAM folyamattal.  TRANSPUTER-ek hálózata közvetlenül leírható OCCAM programként.  OCCAM program közvetlenül leképezhető TRANSPUTER-ek hálózatára.  A nyelv ”párhuzamos” folyamatoknak nevezi a konkurrens folyamatokat!

7 2001Németh Gábor: Számítógép architektúrák 7 OCCAM NYELV - 4 A folyamatok egymással a kommunikációs csatornákon keresztül átküldött üzenetekkel kommunikálnak. –Minden csatorna egyirányú összeköttetést biztosít (de a csatornákat több folyamat között meg lehet osztani). –A kommunikáció szinkronizált. (A kommunikáció akkor és csak akkor megy végbe, ha mindkét fél kész a kommunikációra ugyanazon csatornán kereszztül.) –Az üzenetkommunikáció különböző TRANSPUTER- eken elhelyezett folyamatok esetén a soros összekötte- téseken (link-eken) vagy I/O-port-okon keresztül tör- ténik, míg egy TRANSPUTER-en belüli folyamatok között memóriában történő adatmozgatással történik.

8 2001Németh Gábor: Számítógép architektúrák 8 OCCAM NYELV - 5 A nyelvben nincs GOTO, EXIT és címke (ahogy azt egy struktúrált nyelvtől el is várjuk). PRIMITÍVEK: –Értékadás status := OK--a status nevű változó felveszi az OK nevű változó (kifejezés) értékét. –Bevitel command ? status--a status nevű változónak átadjuk a command nevű csatornáról beolvasott értéket.

9 2001Németh Gábor: Számítógép architektúrák 9 OCCAM NYELV - 6 –Kivitel response ! Status--a status nevű változó (kifejezés) értékét kiadjuk a response nevű csatornára. ÖSSZERAKÓK (CONSTRUCTORS): –Kisebb (vagy al-) folyamatokat nagyobb folyamatok- ká lehet összerakni. Elő lehet írni, hogy az összerakott folyamatgyűjtemény szekvenciálisan (SEQ), vagy párhuzamosan [pontosabban: konkurrensen] (PAR) fusson.

10 2001Németh Gábor: Számítógép architektúrák 10 OCCAM NYELV - 7 –Az összerakás lehet:  feltétel nélküli;  feltételes:IF 1. feltétel 1. folyamat 2. feltétel 2. folyamat ………………;  ismétlődő: WHILE feltétel  folyamat;

11 2001Németh Gábor: Számítógép architektúrák 11 OCCAM NYELV - 8  alternatív:ALT  1. bemenet  1. folyamat  2. bemenet  2. folyamat  ………………;  (csak az a folyamat indul el, mely legelőször kap üzenetet);

12 2001Németh Gábor: Számítógép architektúrák 12 OCCAM NYELV - 9  szelektív:CASE s  n  1. folyamat  m, q  2. folyamat  ………………;  (ha s értéke n, akkor az 1. folyamat hajtódik végre). MÁSOLÓ: i = [j FOR k] (a folyamatok k-j példányát hozza létre).  Az összerakók és a másolók tetszőlegesen egymásba skatulyázhatók.

13 2001Németh Gábor: Számítógép architektúrák 13 OCCAM NYELV - 10 ILLUSZTRATÍV PÉLDA: FFT algoritmus. –Az egyik lehetséges megoldás: összekapcsolt lepkék halmazát használó algoritmus. Egy lepke (butterfly): a b x = a+b y = w(a-b) a, b és w komplex változók; w a lepke helyének függvénye. –A lepkét egy folyamat képviseli, melynek 2 bemenő és 2 kimenő csatornája van.

14 2001Németh Gábor: Számítógép architektúrák 14 PROC butterfly (CHAN a, b, x, y, VALUE wr, wi)= VAR areal, aimag, breal, bimag, r1, r2: WHILE TRUE SEQ PAR a ? areal b ? breal PAR a ? aimag b ? bimag...... OCCAM NYELV - 11 folyamat deklarációja folyamat lokális változóinak deklarációja mindig éljen egymásután egyszerre beolvassuk a két bemenet valós értékét, majd képzetes értékét.

15 2001Németh Gábor: Számítógép architektúrák 15 OCCAM NYELV - 12 PAR x ! areal + breal SEQ r1 := wr * (areal-breal) r2 := wi * (aimag-bimag) y ! r1 - r2 PAR x! aimag + bimag SEQ r1 := wi * (areal-breal) r2 := wr * (aimag-bimag) y! r1 + r2 (SEQ) ………………. egymásután kiszámítjuk és a kimene- tekre egyszerre kiadjuk x és y valós értékét DE y valós értékének kiszámítása több, egymástkövető lépésből áll! majd kiszámítjuk és a kimenetekre egyszerre kiadjuk x és y képzetes értékét

16 2001Németh Gábor: Számítógép architektúrák 16 OCCAM NYELV - 13 Az OCCAM nyelv az összerakók egymásba skatulyázására rövidítési lehetőségeket tartalmaz (ezeket az elvek megvilágítása érdekében itt nem használtuk). 16 pontos FFT esetén 4-fokozatú pipeline kell (4 oszlop), minden fokozatban (oszlopban) 8 lepkével. –A kívánt számú lepkét (és csatornáikat) másolókkal hozzuk létre. –A csatornákat megszámozzuk és az egyik (i) lepke x kimenetének összekötését egy másik (j) lepke a bemenetével úgy hozzuk létre, hogy a kettő közötti csatorna száma azonos legyen (pl. x i = a j = 9).

17 2001Németh Gábor: Számítógép architektúrák 17 OCCAM NYELV - 14 DEFN = 16, order = 4: CHAN c[N * (order+1)]: PROC fft= PAR step = [0 FOR order] PAR node = [0 FOR N/2] SEQ wr := …… wi := …… butterfly (c[step*N)+node], c[(step*N)+node+(N/2)], c[((step+1)*N)+(node*2)], c[((step+1)*N)+(node*2)+1], wr, wi): minták száma pipeline hossza ennyi csatorna kell egyszerre létrehozzuk a 4 oszlopot, és azokon belül a 8-8 lepkét ezeken belül egymásután jöhet a súly- tényezők, majd a csatornaszá- mok kiszámí- tása

18 2001Németh Gábor: Számítógép architektúrák 18 TRANSPUTER - 1 Ez egy család, tagjai univerzális rendszer-építőelemek. Folyamat architektúra. RISC utasításkészlet. Hardver prioritásos ütemező. Speciális utasítások a konkurrens folyamatok ütemezésére. Speciális utasítások a konkurrens folyamatok kommunikációjára. A szóhossz és az utasításkészlet tetszőlegesen bővíthető. Egy OCCAM programot végrehajtó TRANSPUTER egy hardver folyamat.

19 2001Németh Gábor: Számítógép architektúrák 19 TRANSPUTER - 2 4 Gbyte címtarto- mány, 26 Mbyte/s átviteli sebesség, be- épített DMA vezér- lő, minden mással átlapolva működik. T424 (a család legkisebb tagja) memória interfész 2. adatsín (32 bites) 1. adatsín (32 bites) utasítás várakozási sor (8) műveleti kód (4 bit) vezérlő operandus (4 bit) K Az utasítás műve- leti kód 4 bites, így látszólag csak 16 utasítása van. Az operandus hossza 4 bit, így látszólag csak 0-15 közötti egész- számokat kezelhet.

20 2001Németh Gábor: Számítógép architektúrák 20 TRANSPUTER - 3 2. adatsín (32 bites)1. adatsín (32 bites) ALU A B C hardver stack Négy 10 Mbit/s-es teljesen duplex soros összeköttetés. Egymástól független, kon- kurrens kommunikációk. 1. link2. link 3. link4. link Az egyik irány adása mul- tiplexálva van a másik irány nyugtájával. Az összeköttetések a processzor többi ré- szétől függetlenül mű- ködnek!

21 2001Németh Gábor: Számítógép architektúrák 21 TRANSPUTER - 4 2. adatsín (32 bites)1. adatsín (32 bites) 1 k * 32 belső regiszterek utasítás mutató munkaterület mutató logikai óra prioritásos ütemező operandus regiszter K Sok belső regiszter a RISC szervezés miatt. Az utasításkészlet memória- rezidens változókon alapul; a munkaterület mutató a jelenleg végrehajtott folya- mat változóinak báziscíme. Az operandus regiszter (32 bites) aljára érkezik a 4 bites operandus. Az operációs rendszer legbelső magja: hardver!

22 2001Németh Gábor: Számítógép architektúrák 22 TRANSPUTER - 5 UTASÍTÁSKÉSZLET: load local store local load local pointer A munkaterület mutatóhoz viszonyí- tott memóriahelyet címez meg, az operandus regiszterbe/munkaterület mutatóba tölt be. load nonlocal store nonlocal load nonlocal pointer Az A regiszterhez (stack) viszonyí- tott memóriahelyet címez meg. load constant add constant add to memory jump 0 és 15 közötti állandót tölt be az operandus regiszterbe.

23 2001Németh Gábor: Számítógép architektúrák 23 TRANSPUTER - 6 conditional jump call adjust workspace A prefix utasítás 4 adatbitjét beteszi az operandus regiszter aljára, azután tartalmát 4 helyértékkel fel- felé lépteti. Ilymódon TETSZŐLEGES HOSSZÚSÁ- GÚ OPERANDUSok hozhatók létre. A complement prefix az operandus regiszter tartalmát komplemen- tálja a léptetés előtt (könnyebb a negatív számok előállítása.) prefix complement prefix

24 2001Németh Gábor: Számítógép architektúrák 24 TRANSPUTER - 7 operate Címnélküli utasítás, melynek alsó 4 bitjét a műveleti kód kiterjesztésének tekintjük. Így legegyszerűbb esetben is 16 különböző operate utasítás van, DE a prefix utasítá- sokkal ez a kiterjesztés (és így az utasítások száma is) tetszőlegesen bővíthető! Egy aktív folyamat normál vagy prioritásos (pl. interrupt kezelés, üzenet vétele) lehet. Mindkét szinthez tartozik egy-egy láncolt listás várakozá- si sor (a megfelelő munkaterület mutatókat tartalmazza).

25 2001Németh Gábor: Számítógép architektúrák 25 TRANSPUTER - 8 Az átütemezés folyamatközi kommunikáció, vagy folyamat befejeződés miatt történik. Két speciális utasítás segíti az ütemezést: –start PROCESSi (nem indít el új folyamatot: új munkaterület mutatót fűz az ütemezési lista végéhez); –end PROCESSj (nem állít le folyamatot: az aktivizálandó folyamat csak akkor futhat, ha PROCESSj végrehajtása befejeződött).


Letölteni ppt "SZÁMÍTÓGÉP ARCHITEKTÚRÁK - 16 Németh Gábor. 2001Németh Gábor: Számítógép architektúrák 2 TRANSPUTER ARCHITEKTÚRA - 1 Nagyméretű és bonyolult feladatok."

Hasonló előadás


Google Hirdetések