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.

Slides:



Advertisements
Hasonló előadás
Alaplap.
Advertisements

Algoritmusok.
1 Számítógépek felépítése 9. előadás I/O rendszerek.
A számítógép felépítése
PLC alapismeretek.
Az integrált áramkörök (IC-k) tervezése
A mikroprocesszor 1. rész.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
Számítógépek felépítése sínrendszer, megszakítás
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés
Rekurzió (Horváth Gyula és Szlávi Péter előadásai felhasználásával)
4. VÉGES HALMAZOK 4.1 Alaptulajdonságok
13.a CAD-CAM informatikus
A hardver és a személyi számítógép konfigurációja
Szoftevrismeret Operációs rendszerek.
Nagy Gábor MF01-M2.
11. előadás (2005. május 10.) A make segédprogram Alacsony szintű műveletek és bitmezők Fájl, katalógus rendszer hívások 1.
Mérés és adatgyűjtés Kincses Zoltán, Mingesz Róbert, Vadai Gergely 10. Óra MA-DAQ – Műszer vezérlése November 12., 15. v
Ez a dokumentum az Európai Unió pénzügyi támogatásával valósult meg. A dokumentum tartalmáért teljes mértékben Szegedi Tudományegyetem vállalja a felelősséget,
C A C nyelv utasításai.
A verem működése fpga-n
A Neumann-elvű számítógép jellemzői:
A számítógéprendszer.
Alapfogalmak Adat: fogalmak, tények, jelenségek olyan formalizált ábrázolása, amely emberi vagy gépi értelmezésre, feldolgozásra, közlésre alkalmas. Információ:
Algoritmizálás Göncziné Kapros Katalin humaninformatika.ektf.hu.
SZÁMÍTÓGÉP ARCHITEKTÚRÁK
Java programozási nyelv 2. rész – Vezérlő szerkezetek
Mikroszámítógépek I 8085 processzor.
Mikroszámítógépek I 8085 processzor.
Utasítás végrehajtás lépései
CISC - RISC processzor jellemzők
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
A RobotinoView programozása
TÉTELEK Info_tech_2012. Simon Béláné. 1. TÉTEL 1.a. A digitális számítógép és a logikai áramkör kapcsolata (6.4.1.) 1.b. Az ÉS logikai áramkörnek adja.
Egy egyszerű gép vázlata
Egy harmadik generációs gép (az IBM 360) felépítése
1 Operációs rendszerek Az ütemezés megvalósítása.
Ethernet technológiák A 10 Mbit/s sebességű Ethernet.
A Unix operációs rendszer Előadást tarja: Lázár András.
Hálózati architektúrák
modul 3.0 tananyagegység Hálózatok
SZÁMÍTÓGÉP ARCHITEKTÚRÁK - 5
SZÁMÍTÓGÉP ARCHITEKTÚRÁK - 4
Mikrokontroller (MCU, mikroC)
Tömbök és programozási tételek
Programozási nyelvek.
VÉGES AUTOMATA ALAPÚ TERVEZÉSI MODELL
Egy második generációs gép (az IBM 7094) felépítése
Egy első generációs gép (az IAS) felépítése
Objektum orientált programozás
Adamkó Attila UML2 Adamkó Attila
Mikroprocesszor.
Programozás, programtervezés
Török Katalin és Marosi Nóra 11/c. Pascal: Az es években megjelent magas szintű programozási nyelv, közel áll az emberi gondolkodáshoz. Nevét.
Írja fel a tizes számrendszerbeli
Algoritmizálás, adatmodellezés
IT ALAPFOGALMAK HARDVER.
Adva S  parbegin S 1 ...  S n parend; Párhuzamos programszerkezet két vagy több olyan folyamatot tartalmaz, amelyek egymással közös változó segítségével.
PÁRHUZAMOS ARCHITEKTÚRÁK – 13 INFORMÁCIÓFELDOLGOZÓ HÁLÓZATOK TUDÁS ALAPÚ MODELLEZÉSE Németh Gábor.
Számítógépek felépítése 4. előadás ALU megvalósítása, vezérlő egység
PIC mikrokontroller.
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
Modellek a számítógép megismeréshez Takács Béla
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
1 A számítógépek felépítése jellemzői, működése. 2 A számítógép feladata Az adatok Bevitele Tárolása Feldolgozása Kivitele (eredmény megjelenítése)
Sz&p prof.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
A számítógép működésének alapjai
Számítógépek felépítése 9. előadás I/O rendszerek
Előadás másolata:

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 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.

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.

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.

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!)

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!

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.

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.

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.

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;

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);

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.

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.

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.

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

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).

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

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.

2001Németh Gábor: Számítógép architektúrák 19 TRANSPUTER 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.

2001Németh Gábor: Számítógép architektúrák 20 TRANSPUTER 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!

2001Németh Gábor: Számítógép architektúrák 21 TRANSPUTER 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!

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.

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

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).

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).