Staatilised võrgud Ahel Ring Täht Puu Hüperkuup
Dünaamilised võrgud
Dünaamilised võrgud jagatakse blokeeruvateks ja mitteblokeeruvateks. Mitteblokeeruva võrgu puhul on suvalisel ajahetkel võimalik ühendada omavahel suvalised kaks protsessorit.
Omega võrk
Omega võrgu elementideks on kahe sisendiga ja kahe väljundiga lülitid:
Kui sihtkoha aadressi vanim bitt on 0, valitakse esimeses järgus ülemine väljund,
kui 1, siis alumine väljund. Keskmises järgus ühendatakse lüliti sihtaadressi keskmise ja viimases järgus noorima biti järgi.
Andmevooarvutid
Tavalise SISD arvuti puhul täidetakse kõiki programmi käske, mis on salvestatud programmimälusse, kindlas järjekorras. Multiprotsessorsüsteemides täidetakse paralleelselt mitut sellist käskude jada, kuid käskude täitmise põhimõtte jääb samaks - käskude täitmist juhib käsuloenduriga varustatud juhtseade. Andmevooarvutite puhul täidetakse järgmine käsk siis, kui kõik operandid selle täitmiseks on olemas. Arvutuste kirjeldamiseks kasutatakse andmevoo graafi. Graafi tipud tähistavad operatsione ja kaared näitavad andmete liikumist nende vahel. Tippu sisenevad kaared kujutavad endast operatsiooni täitmiseks vajaminevaid andmeid ja tipust väljuvad kaared tulemusi. Mööda kaari liikuvad andmed sisalduvad tokenites.
Tingimuslikke käske on andmevoo graafides kahesuguseid: MERGE ja BRANCH.
Eristatakse staatilisi ja dünaamilisi andmevooarvuteid. Staatilise andmevoo puhul on andmevoo graaf juba enne programmi täitmist kindlaks määratud. Dünaamilise andmevoo puhul võib see täitmise käigus muutuda.
Andmevooarvuti realisatsioon
Protsessorid võtavad vastu operatsioonide paketid kujul
op.kood operandid sihtkohad
Numbrid pole kunagi määratud viitadega nende aadressile, vaid sisalduvad alati paketis eneses.
Tulemuste paketil on kuju:
tulemus sihtkoht.
Tulemuste paketid edastatakse läbi võrgu mälumoodulisse, mis on määratud sihtkoha aadressiga. Seal genereeritakse operatisoonide pakett siis, kui kõik tulemuste paketid on kohale jõudnud. Operatisoonide pakett saadetakse uuesti täitmiseks protsessorisse. Kui protsessorid on kõik ühesugused, valitakse suvaline vaba protsessor. Kui protsessorid on spetsialiseeritud, valitakse täitmiseks sobiv protsessor op. koodi abil.
Programmeerimiskeeled
Kõige paremini sobivad andmevooarvutitel programmeerimiseks funktsionaalsed keeled. Funktsionaalses keeles kirjutatud programm koosneb ainult funktisoonidest. Funktsioonid võivad omakorda kutsuda välja funktsioone, kuni lõpuks kõige madalama taseme funktsioonid koosnevad lausetest. Funktisonaalsetes keeltes peaaegu puuduvad omistamislaused, muutujatele võib ainult üks kord väärtuse omistada. Seega saab muutujaid rohkem käsitleda defineeritud konstantidena. Selliseid keeli, kus muutuja võib ainult üks kord esineda omistamislause vasakul poolel nimetatakse single assignment languages.
Makroandmevooarvutid
Tavalise andmevooarvuti puhul iga tipp graafis kujutab endast mingit operatsiooni. Makroandmevooarvutite puhul iga tipp tähistab mingit keerulisemat järjestikuliste käskude jada (funktsiooni, protseduuri). Tippu sisendevad kaared tähistavad funktisoonide/protseduuride sisendparameetreid ja tipust väljuvad kaared väljundparameetreid.
|