arhitecturi paralele

Upload: pelikanul2004

Post on 09-Jul-2015

143 views

Category:

Documents


0 download

TRANSCRIPT

Arhitecturi paraleleO structur de calcul convenional se caracterizeaz prin urmtorii factori: 1. capacitatea procesorului: procesorul poate executa la un moment dat numai o instruciune; 2.capacitatea memoriei: memoria fizic poate suporta doar un acces R/W pe ciclu; 3. capacitatea porturilor I/O; un bus (magistrala) convenional care conecteaz procesorul de dispozitivele de interfaare cu lumea extern poate transporta doar o data pe ciclu. Pentru structurile paralele se impun urmtorii factori: 1. capacitatea procesorului: un program este mprit n mai multe partiii care se execut de ctre mai multe procesoare; 2.capacitatea memoriei: memoria sistemului este astfel proiectat nct datele necesare pot fi accesate n acelai ciclu de mai multe procesoare; 3. capacitatea porturilor I/O: sistemul de I/O permite transferul datelor mainii paralele cu o vitez comparabil cu puterea de calcul a acesteia; 4. capacitatea comunicaiilor: sistem de comunicare ntre procesoare care s permit transferul datelor rapid ori unde este necesar; 5. sincronizarea: existena unui mecanism de coordonare a activitii procesoarelor; 6. multiple posibiliti: o flexibilitate care s ofere posibilitatea suportrii diferitelor moduri de calcul. Calculatoarele paralele se mpart n trei clase: calculatoare vectoriale, sisteme multiprocesor i arii de procesare. Exist mai multe posibiliti n alegerea arhitecturii unei maini paralele, respectiv mai multe modele, care se ncadreaz n urmtoarele clase: 1. puternic sau slab legate/cuplate; 2. paralele sau distribuite;3.

cu memorie partajat/partiionat sau message passing;

4. sincrone sau asincrone; 5. SIMD sau MIMD;1

6. speciale sau arhitecturi generale. Pentru toate aceste clase exist o mare varietate de cazuri intermediare. Se poate spune, n general, c arhitecturile paralele sunt sincrone iar cele distribuite sunt asincrone (complet). Din punct de vedere sincron/asincron, problema este mai mult teoretic, deoarece marea majoritate a operaiilor se execut asincron, dar msuri speciale (hard/soft) fac s fie vzute ca sincrone. Exist mai multe modele de maini care se mpart dup diferite criterii. Din punct de vedere al structurii primare pot fi de tipul: 1. Data flow; 2. Actors; 3. Vector machines; 4. Wide aria networks; 5. LANs 6. Ultracomputer;7.

Conection machines;

8. VLSI; 9. Parallel Random - Acces Machines (PRAM); 10. Boolean Circuits - Cellular Automata; 11. Alternating Turing machines; 12. Syncronizing Turing machines. Ultracomputerele reprezint un model de main cu memorie partiionat. Const ntr-o arie de procesoare, o arie de module de memorie i o logic de interconectare. PRAM este modelul teoretic al mainii paralele; poate fi vazut ca o formalizare a circuitelor electronice. Mainile paralele reprezint o generalizare a mainii Turing nedeterministe. Se modeleaz recent i ca o maina Turing sincron (ATM) sau ca o main "alternating Turing machine".2

O posibilitate de reea este cea standard, dat de reeaua Omega (care conine switch-uri ce permit diferite conexiuni) - se mai numete X-ary Y-stage buterfly X - numrul de intrri pe switch; Y - numrul de stadii. Reeaua permite toate conexiunile posibile.

INPUT OUTPUT

Figura 1, 2 - ary 3 - stage butterflay. Structura de mai sus st i la baza legii de interfaare la ultracomputere, realiznd toate legturile posibile ntre procesoare i blocurile de memorie. Calea i sensul switch-urilor poate fi uor determinat din cmpul de adrese pentru memorie. Exist dou posibiliti pentru switch-uri - prima cale i a doua cale (ntreesut: Ii 0i+1; I = input, 0 = out) comandate de 0 i 1. Existnd trei rnduri de switch-uri (cazul de mai sus, particular) vor fi necesari trei bii (caz particular) n cmpul de memorie, cte unul pentru fiecare rnd de switch-uri; se consider c la un moment dat nu cere acces dect un procesor: Exemplu: 101 la sw1 : calea a doua la sw2 : prima cale la sw3 : calea a doua Prin prima cale i a doua cale se nelege sensul de transfer al informaiei.

3

O alt posibilitate de implementare a arhitecturii o reprezint structura hipercub. Exist zero-, mono-, bi- i tri-dimensional hipercub. Hipercubul quadrodimensional este de fapt un hipercub tri-dimensional cuprins n alt tri-hipercub.

Figura 2. Modelul hipercub quadro-dimensional. Alt tip de reea este reeaua "plas", puin mai realist. Este planar i are procesoarele aezate matricial, pe linii i coloane. De obicei, procesoarele se monteaz pe linie: prima linie de la stnga la dreapta, a doua linie de la dreapta la stnga .a.m.d. Acest tip de reea se implementeaz foarte uor pe VLSI i sunt foarte practice.

Un alt model este cel arbore.

4

Figura 3. Modelul arbore. O reea se caracterizeaz prin civa parametri importani. Parametrii i valorile lor au importan n stabilirea performanelor i a utilizabilitii structurilor. De subliniat c, ntr-un graf care descrie o reea, nodurile corespund procesoarelor sau/i switch-urilor de comand iar arcele, canalelor sau legturilor. Distana dintre o pereche oarecare de noduri este numrul minim de legturi care trebuiesc parcurse/traversate. Principalii parametri ai unei reele sunt: - Diametrul unei reele reprezint distana maxim dintre oricare dou noduri. - Gradul unui nod reprezint numrul de legturi/arce incidente n acel nod. Uzual, reelele de tip Omega au 2k noduri (figura anterioar este doar o exemplificare). - Permutarea reprezint de fapt timpul necesar unei schimbri, respectiv numrul de pai necesari, dar inndu-se seama de faptul c un pas se execut ntr-o unitate de timp de baz (clock). Prin permutare se nelege interschimbarea nodurilor ntre ele, cu numrul de pai corespunztori.

5

Arhitecturi de reele i procesoare pentru Message Driven computersPentru o reea trebuiesc luate n consideraie trei elemente care o definesc: topologia, alegerea cilor (routing) i controlul vehiculrii informaiei (flow control sau controlul comunicaiei). - Topologia se refer la interconectarea grafului unei reele I=G(N, C). Vrfurile (vertices) acestui graf sunt noduri de reea (N), iar arcele sunt canale fizice care conecteaz nodurile (C NxN). Dac se privete calculul paralel ca o problem de alocare a resurselor, topologia este prima problem care trebuie atacat. Printre posibilitile de interconectare pot fi enumerate modelele: plasa, fluture, arbore. - Routing este metoda de alegere a cilor ntr-o reea. Prin relaii (in CxNxN) se indic canalul ocupat de nceputul (head), mesajul (de header-ul mesajului) i nodul de destinaie al acestuia ntr-un set de canale care pot fi folosite apoi de mesaj. Routing-ul este forma de alocare run-time a resurselor. Dat o topologie, o poziie prezent i una de destinaie se determin relaia care descrie transmiterea optim a mesajului. - Controlul comunicaiei (flow control) permite vehicularea informaiilor n scopul obinerii unor timpi minimi i eliminarea conflictelor. 1. Topologii n afar de diametru, permutare, grad mai sunt utilizai i alii parametri, cum ar fi: - Limea biseciei (bisection width), bisecia canalelor notat B reprezint numrul minim de canale de comunicaie care dac sunt tiate mparte reeaua n dou pri egale. Daca Bw (limea biseciei) reprezint numarul de linii afectate de tietur, atunci Bw = BW, unde W este limea unui canal n bii; limea biseciei msoar densitatea de linii cerut de reea. Pentru o proiectare general, bisecia este fix i6

limea biseciei const n numrul de linii pentru un canal (limea canalului): W=Bw . B

- Lungimea legturilor. Lungimea legturilor determin viteza de lucru a reelei i puterea disipat de structur. - Simetria. O reea este simetric dac este izomorf cu ea nsi, n raport cu oricare nod marcat ca origine. Reelele rings i tori sunt simetrice, iar reele plas (mesh) i arie liniar nu sunt simetrice. Simetria reelei simplific mult problemele legate de proiectarea i controlul resurselor.

7

Clasificarea reelelor Reelele pot fi indirecte (R-ary n-stage butterfly not R-ary n-flys) sau directe (R-ary n-cubes). Reele indirecte. n reelele indirecte, nodurile de comutare (switching nodes) sunt distincte de nodurile de procesare (processing nodes). Se numesc indirecte deoarece mesajele ntre procesoare sunt conduse/dirijate indirect prin intermediul switch-urilor. Ca exemple, fie reelele din figura 4a) i 4b) n care nodurile din exterior sunt noduri de procesare (procesoare), iar cele din interior sunt noduri de comutare (switch-uri). n general reelele sunt nchise nct procesoarele din dreapta sunt aceleai cu cele din stnga (n figur reelele sunt desfurate).

Figura 4 a) Reele indirecte La alte maini, procesoarele sunt plasate ntr-o parte a reelei iar nodurile de memorie n alt parte. n proiectarea unei reele indirecte, importante sunt R (raza radix) i dimensiunea n .8

Figura 4 b) Reele indirecte O reea R-ary n-fly are N=Rn procesoare (noduri de procesare) legate prin "n" stadii (stage) cu Rn-1 R R noduri de comutare (switch-uri). Nodul de procesare i este conectat la o intrare a nodului (i-1) n primul nivel (stage) de comutare, iar ieirea nodului corespunztor la ultimul nivel de comutare. Ieirea portului j a nodului i n stadiul S este conectat la intrarea de port a nodului (i+j R(n-S-1)) mod N/R. Parametrii reelelor de mai sus ((a), (b)) sunt:Bi = N / 2, B wi = NW / 2, d ini = d outi = R , d i = 2 R , D i = n + 1, N = R n

indicele i indic faptul c teeaua este indirect. n figura 4.a, bisecia minim taie reeaua orizontal prin centru: B=N/2=4, gradul oricrui nod este d=2R=4, iar diametrul D=n+1=5. Reelele indirecte se caracterizeaz prin o mare lime a biseciei (N/2), grad sczut (2R), diametru mic i legturi (fire) lungi. Aceste reele sunt simetrice. La aceast clas de reele lungimea biseciei B=N/2 nu reflect densitatea maxim de legturi. Fiind o reea vertical, n orice punct, se taie N legturi. Suprafaa necesar pentru a lega/conecta o reea indirect este proporional cu N2, ceea ce conduce la un cost ridicat al legturilor.

9

Reele directe. n reelele directe switch-urile sunt prezente n nodurile de procesare. Prototip pentru aceste reele este reeaua R-ary n-cube (figura 5 a) i b)). O reea R-ary n-cube este un cub de raza R cu n dimensiuni. Raza implic faptul c exist R noduri n fiecare dimensiune. O reea R-ary 1-cube este prezentat n figura (a). O reea R-ary 2-cube este construit din R R-ary 1-cube conectnd elementele ca n R ringuri (inele). n general o arie R-ary n-cube este construit din R R-ary (n-1)-cube conectnd elementele n R ringuri (inele).

a)

b) Figura 5. Reeaua kary ncube.

Fiecare nod are o adres care este pe n digii. Nodurile sunt conectate la toate nodurile a cror adres difer numai printr-un digit. Reeaua are N=Rn noduri. Dac R=2 se obine n-cube -ul binar. Dac n=1, se obine un ring (inel), pentru n=2 se obine un tor. Parametrii pentru o structur R-ary n-cube sunt dai de:Bd = 2 N / R , B wd = 2 N W / R , d ind = d outd = n, d d = 2 n, D d = n R / 2

Pentru figura 5.a, limea biseciei este 2, gradul 2 i diametrul 4, iar pentru figura 5.b: 16, 4, 8. Bisecia este dat tind reeaua de-a lungul dimensiunii celei mai mari. Pentru un n mic reeaua se caracterizeaz printr-o lime a biseciei mic i controlabil, grad mic, diametru mare i legturi scurte (vitez mare, putere mic). Versiunea plas (mesh) a acestui tip de reea este asimetric. Complexitatea legturilor (wiring complexity) este proporional cu N, fa de N2 la cele indirecte. Limea biseciei depinde de alegerea lui R i n.10

2. Routing. Routing-ul este o metoda de alegere a cilor pentru mesaje peste (prin) canalele reelei. Se caracterizeaz printr-o relaie R i o funcie . R C N C N= mulimea nodurilor; C = mulimea canalelor; : P(c) C P(c) = descrie starea reelei; = depinde de mesaj; Relaia R indic cile permise care pot fi folosite de ctre mesaje pentru a ajunge la destinaie. Dat poziia prezent a mesajului C i nodul destinaiei N, R identific setul de canale permise. R este o relaie i nu o funcie pentru c pot exista mai multe posibiliti. Funcia selecteaz o cale din cele permise. La fiecare pas pe cale (route), gsete setul urmtoarelor canale posibile funcie de P(c), - informaii adiionale despre starea reelei i , i alege un canal particular c. Informaiile adiionale, , pot fi constante, aleatoare (random) sau bazate pe traficul n reea. Routing-ul consider poziia curent a mesajului ca fiind un canal, nu un nod, de aceea R este definit pe C N C i nu pe N C N. Metodele de routing pot fi clasificate ca deterministe, aleatoare sau adaptive. n metodele deterministe, calea mesajului depinde numai de nodurile sursa i destinaie (R este o funcie i o constant), la cele aleatoare se pot alege mai multe ci dar nu se iau n consideraie informaiile despre starea reelei (R este o relaie i este o funcie aleatoare sau de timp sau care depinde de coninutul mesajului), iar la cele adoptive se folosesc i informaiile despre starea reelei. n figura 6 a) i b) se prezint dou posibiliti deterministe.

11

7 6 5 4 3 2 1 0

7 6 5 4 3 2 1

a)3

0

2

1

0 1 2 3

b) Figura 6. Metode de routing deterministe. n figura 6.a (R-ary n-fly) mesajele pot fi rulate folosind digiii adresei de destinaie pentru a selecta portul de ieire al fiecrui switch. n starea i digitul n-i-1 al adresei de destinaie este tastat i se selecteaz portul respectiv. n figura 6.a este trasat o cale de la 2 la 5; adresa de destinaie este 101 (1 pentru primul stadiu, 0 la al doilea i 1 la al treilea). n figura 6.b, mesajele pot fi, de asemenea, rulate folosind digii din adresa destinaiei. Fiecare digit din adresa destinaiei corespunde unei dimensiuni. n structura 4-ary 2-cube din figura exist dou dimensiuni x i y corespunznd la 2 digii din adres. Algoritmul de routing examineaz adresa destinaiei, digit cu digit,12

pas cu pas. Pentru al i-lea digit se alege o cale n a i-a dimensiune. De exemplu, un mesaj este trimis de la (0,1) spre (2,3) parcurgnd mai nti pe direcia x (spre (2,1)) i apoi pe y(spre (2,3)). 3. Controlul comunicaiei (flow control) Se refer la metodele de control a comunicaiei n reea, determinnd cnd mesajul sau o parte a acestuia poate nainta. Blocul de control permite alocarea resurselor, a liniilor i a buffer-elor. n figura 7 se prezint grafic trei uniti informaionale ale controlului comunicaiei.

m

e s a j

i n

f o r mr o a u t i i i n

g

p a c h

e t

2

R

i n b l o c d e d a t e d a t a o n b y

f o r s e ac v ei i n m

Figura 7. Uniti informaionale ale controlului comunicaiei. Mesaj-ul este unitatea logic a comunicaiei. Pachet-ul. Un mesaj este divizat n pachete. Pachetul este cea mai mic unitate care conine informaii despre routing (de exemplu, adresa destinaiei). Dac exist mai multe pachete ntr-un mesaj, fiecare va conine informaii necesare reasamblrii. Cnd un mesaj este scurt, el se trimite uzual ca un pachet; mesajele lungi sunt sparte n pachete. Blocul de date (flit). Conine digii pentru controlul comunicaiei (flow control) i este cea mai mic unitate controlabil. Blocul conine informaii despre resursele comunicaiei, linii i buffer-e i, n general, nu conine informaii de routing.13

Numai blocul din capul pachetului (leadind flit) conine informaii de routing, celelalte blocuri urmeaz acest bloc pentru a li se determina ruta. Transmiterea mesajelor. Exist dou metode (mai des folosite) de transmitere a blocurilor: metoda nurubrii (worm hole routing; worm hole gaur nfiletat) i metoda pstreaznainteaz (store-and forward). La a II-a metod, pachetele sunt administrate ca un simplu bloc; un singur buffer este alocat unui singur pachet. La metoda nurubrii, liniile i buffer-ele sunt alocate blocurilor semnificativ mai mici dect ntregul pachet. Executarea controlului pe uniti mai mici reduce ntrzierile (latency) necesare (figura 8 b). La metoda "pstreaz - nainteaz" un pachet este recepionat n ntregime nainte de a fi transmis altui canal. Dac un pachet de L bii este transmis de-a lungul unui canal cu W bii/ciclu cu o perioad a ciclului TC i trebuiesc parcurse D canale, timpul necesar (zero-load latency) pentru o noua ncrcare este dat de:TSF = TC L D W

La metoda nurubrii pachetele sunt mprite n blocuri. Canalele i buffer-ele sunt alocate bloc cu bloc. Un bloc avanseaz cnd este alocat resursei care l necesit, nefiind necesare stri de wait pentru ntregul pachet. Cu aceast structur tip pipe-line ntrzierea devine suma timpilor necesari pentru a transmite un pachet pe un singur canal (TWH).

14

TS

F

L /W

FTW L /W

i g u8 r a )

H

F

i g u8 r ba )

15

D

D

O strategie hibrid, const n alocarea buffer-elor de stocare a pachetelor ca la metoda pstreaz/nainteaz, dar transmisia blocurilor este pe principii pipe-line ca la metoda nurubrii. Metoda nurubrii are i avantajul c necesit puin spaiu de stocare. Figura 9 ilustreaz resursele pe care blocul de control le aloca. Buffer-ele surs i destinaie i anumite stri ale canalului formeaz canalul virtual. Canalele virtuale sunt alocate pachet-cu-pachet. Buffer-ele asociate cu un canal virtual rmn alocate unui pachet pe durata vehiculrii acestuia. Canalul fizic este alocat bloc-cu-bloc (flit by-flit). Cnd primul bloc din pachet (leading flit) ajunge la un canal, el necesit un canal virtual care rmne alocat pn se gsete ultimul bloc din pachet. Pentru ca un bloc sa avanseze sunt necesare trei condiii: - s rmn rezident ntr-un buffer surs; - s fie alocat la un buffer destinaie gol; - s fie alocat pentru folosirea unui canal fizic. Pentru blocul de control al comunicaiilor (flow control) exist diferite metode pentru a elimina coliziunile, atunci cnd dou pachete solicit acelai canal. n general se acord prioriti. Metodele cel mai des folosite sunt:

= =

c nl aa

buffer-e surs (pstreaz blocurile n ateptare)

buffer-e destinaie (pstreaz blocurile care au folosit canalul)

Figura 9. Resurse alocate de blocul de control. - Buffer-area; Cnd un pachet este alocat canalului i un altul dorete accesul, ultimul este preluat i stocat ntr-un buffer. Dezavantajele constau n numrul mare de16

buffer-e necesare i n faptul c buffer-ele trebuie alocate ntr-o manier aciclic. Adesea buffer-ul este alocat n memoria nodului de procesare ceea ce ncetinete router-ul la accesul memorie. Avantajul const n eliberarea rapid a resurselor, fr risipirea lor. - Blocarea; Un alt pachet care cere acces este blocat, blocndu-se i resursele care i sunt alocate. - Eliminarea; Un alt pachet care cere acces este lsat s continue dac este posibil, lsnd blocurile sale s ajung ntr-un nod. Dac canalul devine ocupat, primele blocuri (pn la eliberarea canalului) se pierd i informaia trebuie retransmis. Implic o mare risip de resurse. - Deturnarea; (rutare incorect - misrouting). Un alt pachet care cere acces este rutat aleator pe un alt canal. Aceast metod determin o mare risip de resurse deoarece solicit alte buffer-e i canale, nct pn la urm, informaia s ajung la destinaie, nemodificat. Dup n cicli pachetul ajunge n aceeai poziie. Multe maini folosesc soluii hibride, cum ar fi ntre buffer-are i blocare.

ImpasuriBlocul de control al comunicaiilor, trebuie s aloce resursele pachetelor nct s evite impasurile. Impasurile pot s apar atunci cnd se intr ntr-o ncercare ciclic de posesie a resurselor; de exemplu, atunci cnd dou pachete (de aceeai prioritate) cer amndou accesul, n acelai moment la un canal care este ocupat de un alt pachet - ambele pachete vor fi blocate definitiv. O metod de ntrerupere/rupere a ncercrilor de a intra n posesie ntre bufferele pachetelor este s structureze fondul de buffer-e nct s formeze un angajament/clas fragmentar. Cnd primul bloc este acceptat, trebuie s existe suficient spaiu de stocare pentru ntregul pachet. Buffer-ele pachetelor sunt asociate cu nodurile nct odat (imediat) ce un pachet este buffer-at, canalul nu trebuie s memoreze sosirea lui acolo. Fondul de buffer-e este structurat nct un pachet, ntr-un buffer dat A, poate fi stocat numai ntr-un set restrns de buffer-e - S, n modul urmtor; dac buffer-ul17

B S, atunci exist o dependen de la A la B, dep(A, B). Alocarea buffer-elor este restrictiv. Se creaz un drum maxim, nct dac diametrul reelei este Dmax, atunci n fiecare nod se aloc buffer-e pentru pachete pe distana Dmax. Canale virtuale Prin utilizarea canalelor virtuale se elimin impasurile. Resursele alocate pentru pachete sunt canale virtuale. Dac mai multe canale virtuale sunt asociate cu un singur canal fizic, mai multe pachete pot folosi aceeai resurs fizic de comunicaie fr interaciune din punct de vedere al eliminrii impasurilor. Pentru a elimina impasurile se restricioneaz relaia de routing, stabilind o dependen aciclic a canalului. Se definete relaia de dependen a canalului dep C C ca fiind proiecia lui R n C C. O pereche de canale (a, b) sunt n dependena - dep - dac nN (a, n, b)R. Uzual, relaia de routing va avea cicli n graful de dependen al canalelor. Se restricioneaz R pentru a elimina aceti cicli, eventual se deconecteaz reeaua pentru a nu exista ci lungi ntre noduri. Pentru a reconecta reeaua se adaug noi canale virtuale. Aceste canale se adaug nct dep s rmn aciclic. Figura 10 ilustreaz aplicarea canalelor virtuale pentru patru cicli.n0 C0

C n1 C1

0

C

3

C

1

n3 Ci2

n2 Ce c t a r De2

g r ia n f t e r c o n

g r da ef p e C d ex tC n

a)

18

n0 C C3

C'

0

C n1'

0

C1

'

0

0

C C

C1

C

3

C C

1

'

C

1

n3

2

2

b) Figura 10. Aplicarea canalelor virtuale pentru patru cicli. Pentru c exist o singur cale de-a lungul reelei, exist un ciclu n graful de dependen al canalelor dep, deci pot exista impasuri. ntrerupnd legtura (C3, C0) din dep se deconecteaz reeaua. Reeaua iniial este prezentat n figura 10.a cu graful de dependen corespunztor. n figura 10.b se adaug dou canale virtuale C0, C1, care permit reconectarea reelei; acestea sunt n paralel cu C0 i C1, astfel se adaug tripletele (C3, ni, C0), i=1, 2 i (C0, n2, C1). Routing adaptiv. Figura 11 a) ilustreaz folosirea canalelor virtuale pentru realizarea unui routing adaptiv liber de impasuri. Se consider o reea R-ary 2-cube (tor sau plas). Dac trei noduri de pe aceeai linie asteapt s-i trimit mesajele, numai unul o va putea face. Aceeai problem se pune i pentru nodurile de pe aceeai coloan. Dac mesajele sunt translate pe y, revenirea pe x poate crea impasuri. Utilizarea canalelor virtuale mpiedic apariia acestora figura 11.b.

Ae c u b e

O

B

a d a p t i v e

s w i t c h

19

a) Figura 11.

b)

20

Proiectarea controller-elor de comunicaiiReelele multicomputer sunt compuse dintr-o reea (estur) de comunicaii i un set de controller-e de comunicaii sau routere. Buffer-ele router-elor, sincronizarea i calea mesajelor de-a lungul canalelor fizice sunt incluse n reeaua de comunicaii. Organizarea router-elor Componente primitive. Router-ele sunt construite pe baza a trei componente primitive, switch-uri pentru selectare, latch-uri i blocuri de control (secveniatoare/automate). Aceste componente se combin pentru a forma diverse forme de router-e figura 12.I

O

Figura 12 Router

la tc h

c o n t r o l

Se pot obine mai multe structuri - figura 13. - Fig. 13.a - structura conine un singur latch i un bloc de control care controleaz latch-ul ca s funcioneze ca un stadiu al cozii; - Fig 13.b - structura conine dou switch-uri i un latch i blocul de control; blocul de control exemineaz informaiile de routing i stabilete care bloc din pachet va fi ncarcat n latch. - Fig. 13.c - structura de arbitrare pentru dou cereri de acces pe canal (se mai numete routing automat. n situaiile particulare alese pn acum, nodurile pot21

avea fie n n switch-uri (cazul k-ary n-cubes) fie k k switch-uri (cazul k-ary nfly).

D

i

I en

O

D

o

D

i

I en

O R A

Do 1

o 1

R

o 1

i

R A

i i

B

. C

R A

o o

A

Bi

. C

D R A

o 2

o 2 o 2

R- request A - acknouwledge

a)

Figura 13 a) , b)

b)

D R i A i

i 1 1 1

D

o

Figura 13. c)

RDi R i A i2 2 2

o

B C

.

A

o

Aceste structuri sunt construite pe baza modulelor routing figura 14. Modulele sunt conectate n reea, realizndu-se switch-uri complexe. Dac un nod permite toate n permutrile posibile, el este construit pe principiul neblocrii. Structura din figura n 14.a, construit n(1/n) switch-uri i n(n/1) merge (multiplexoare) este o structur neblocabil.

22

+ x i

S

M

+ x o

P

i n

S- xi

S

M

- xoX X+ i n - o u t

S /

M

S /

M

X X

-i n

+ o u t

+ y i

S

M

+ y o

S /

M

- yi

S

M

- yo

Y Y

+ i n - o u t

S /

M

S /

M

Y Y

+ i n

-o u t

MPi

S

M

P

o

P

o u t S / M = s w i t c h / m e r g e

a) Figura 14. Module routing.

b)

De asemenea, se pot constitui reele cu blocare, care restricioneaz relaia routing i pot suferi datorit coliziunilor, dar dac se aleg bine cile se pot obine rezultate semnificative. Aria liniar din figura 14.b restricioneaz routing-ul i poate avea coliziuni interne (de exemplu pe dimensiunea y). Proiectarea modulelor routing Un modul de rutare conine trei submodule: modulul de intrare, cel de comutare (switching) i cel de ieire - figura 15.

23

A

A

A

input control

switch

output control

Figura 15. Componente modul de rutare. Circuitul de intrare controleaz vectorii (pachetele sau blocurile) de intrare, arbitrnd transferul blocurilor, direcionndu-le spre un canal; cnd s-a transmis i ultimul bloc se elibereaz canalul. Circuitul de switch-uri realizeaz arbitrarea canalelor virtuale i comutarea acestora pe mesaje. La nceperea unui mesaj se genereaz o cerere din partea blocului de intrare. Un arbitru pentru un canal virtual accept o cerere i le refuz pe celelalte. Switch-ul este configurat nct s conduc data i informaia de control de la mesajul care a generat cererea ctre cel mai apropiat buffer de ieire.

24

Circuitul de ieire arbitreaz transferul bloc cu bloc pentru utilizarea canalului fizic. La recepionarea unui bloc de la o structur de switch-uri se stabilete un canal fizic liber, iar dup transmisie se semnalizeaz switch-urilor trimiterea unui nou bloc. Un modul routing este un circuit de tip switch. Calea intrare-ieire este stabilit pe durata transmiterii mesajului. Sincronizarea evenimentelor (probleme de sincronizare) Pentru router, evenimentele sunt cerute i acceptate/recunoscute de ctre resurse (canale virtuale, buffer-e de blocuri, canale fizice). Logica de sincronizare controleaz achiziionarea canalului, sincronizarea blocurilor pe canal i eliberarea acestuia. Informaiile de comunicaii i protocoalele de control depind tot de tehnica de sincronizare folosit. Metoda self-time de sincronizare. Prin aceast metoda se asigur un minim de sincronizare necesar vehiculrii informaiilor. Fiecare modul de intrare i ieire i transport propriile informaii printr-un protocol request/acknowledge. Semnalele sunt uzual, active pe front. Cnd dou iruri de date asincrone sau surse de evenimente sunt combinate arbitrul sau modulul de sincronizare trebuie s evite problemele de instabilitate (incertitudine) care pot apare cnd dou evenimente apar n acelai timp. n figura 16 este prezentat modulul de control self-time al unui element merge (de interfaare).R A

L C

LCR A

L C

R A

L C

LClog com in ion l ic b a a

Figura 16. Modulul de control self-time al unui element merge (de interfaare).

25

Numai unuia din cele dou controller-e i este recunoscut accesul la ieire, de ctre arbitrul. Ieirea arbitrului strobeaz semnalele de cerere i recunoatere. Le mpiedic orice acces din cele recunoscute pn la luarea unei decizii. n figura 17 sunt reprezentate grafic trei posibiliti de sincronizare handshake. n figura 17.a este redat hand-shake-ul standard cu patru timpi (sau cicli = Rq, Ack, Rq, Ack). n figura 17.b, la sincronizarea cu doi cicli se consider c fiecare front al semnalelor R (request) i A (acknowledge) este activ.

R

R

A D

A

D

a) patru cicliR / A

b) doi cicli c) doi cicli combinai

D

Figura 17. Trei posibiliti de sincronizare hand-shake. Atunci cnd canalele virtuale sunt folosite este inacceptabil s se rein canalul fizic, ateptndu-se semnalul acknowledge. Din acest motiv protocolul cu doi cicli este modificat. Astfel tranziia lui R semnalizeaz c data este disponibil. Receptorul trebuie s fie pregtit pentru preluarea informaiei deoarece canalul este alocat pentru un timp fix, dup care este eliberat. Tranziia lui acknowledge semnalizeaz c receptorul poate primi date. Deoarece R i A nu pot apare niciodat simultan, este posibil s se combine aceste dou semnale pe aceeai linie - figura 17.c; transmitorul fornd linia pe 1 (request) iar receptorul cobornd-o (acknowledge). Se reduce astfel numrul de linii de sincronizare i timpul de transfer.26

Routere sincrone. n sistemele sincrone, toate evenimentele au loc la tranziiile unui semnal de clock global. Aceste sisteme prezint mai multe avantaje: semnalele/datele fiind memorate pe clock, se elimin mult hazardul i paraziii; toate semnalele sunt sincrone cu clock-ul; se simplific structura arbitrilor. Dezavantajul sistemelor sincrone const n reducerea vitezei de lucru, deoarece perioada clock-ului este dat de cea mai lent resurs. O alt problem este eliminarea hazardului skew-time - care apare mai ales cnd se utilizeaz circuite n tehnologie CMOS. Proiectarea Driver-elor. O mare parte din timpul i puterea router-elor este folosit pentru controlul i dirijarea legturilor care formeaz canalele fizice de comunicaie. n general se folosete pentru semnale, nivelele de tensiune standard TTL (5V), dar ntre router-e nu este neaprat necesar folosirea acestuia (se pot folosi diferite nivele de tensiune). Marea majoritate a zgomotelor se introduc capacitiv sau inductiv ntre firele de legtur sau ntre acestea i liniile de alimentare. Zgomotele parazite scad liniar cu tensiunea de lucru. Pentru reelele cu legturi lungi se recomand folosirea unei referine. O referin (reference pad) ajusteaz impedana de ieire a driver-ului pentru a corespunde impedanei liniei prin varierea tensiunii de alimentare pe ultimul etaj al driver-ului. Circuitul de referin conduce un pas (o variaie prestabil) i pstreaz valoarea liniei pn cnd se ntoarce unda reflectat. (Dac tensiunea este mai mic/mai mare dect o jumtate de pas, impedana de ieire crete/scade pn la adaptarea cu linia). Procesoare Message Driven (MDP). Un multicomputer eficient va avea cte un procesor strns cuplat n reea. Pn acum s-a pus problema transferului de mesaje ntre noduri n cteva microsecunde,27

care reprezint ntrzierea de reea; n afar de aceasta exist i ntrzierea de procesare n noduri. ntrzierea total va fi: T=Tnet+Tnode. Depunerea mesajului, buffer-area lui, preluarea i interpretarea precum i procesarea task-ului dureaz, n mod normal, mai mult de 100s. De aceea se caut mecanisme care s reduc acest timp sub 1s. Pentru a obine performane remarcabile se folosete din ce n ce mai mult tehnologia VLSI, apelndu-se i la modele fine-grain (gruntele), care execut relativ puine instruciuni. n tehnologia VLSI se poate construi un nod de procesare, cu memorie de mega octei, ntr-un singur nod (integrarea memoriei determin o vitez de acces mai mare). n esen, trei arii critice necesit suport hardware puternic: comunicaia - MDP utilizeaz o instruciune de tip SEND pentru a transmite mesajele n reea. Management-ul de coad permite alocarea de buffer-e mesajelor care vin, iar liniile de buffer-e sunt folosite pentru a mri limea memoriei la pstrarea irurilor de mesaje; sincronizarea - necesar transferrii mesajelor i procesrii acestora n coada de ateptare; translarea - MDP folosete instruciuni de translare pentru a transla adresele virtuale n descriptor de segmente fizice (pentru buffer-e i memorie).

Trimiterea, recepia i expedierea mesajelor Un MDP transmite mesajele n reea folosind o instruciune Send care transmite unul sau dou cuvinte (cel puin unul pentru memorie) i opional termin mesajul. Primul cuvnt este interpretat de reea ca o adres absolut de nod (n format x, y). Restul mesajului este transmis fr modificri. O situaie tipic este artat n figura 19. Prima instruciune trimite adresa absolut a nodului destinaie (n R0), a doua dou cuvinte de date (R1 i R2), iar ultima dou cuvinte adiionale de date, una din R3 i una din memorie. Instruciunea SEND2 marcheaz sfritul mesajului i determin transmiterea lui n reea. Un buffer FIFO este folosit pentru a asigura viteza de transmisie a mesajelor n reea, aceasta deoarece MDP nu poate trimite mesajele28

cu viteza cu care reeaua le poate transfera. n afar de buffer-e, se pot injecta bubbles (lipsa de cuvinte/ bule goale) n structura pipeline a reelei, dar degradnd performanele. Instruciunea Send ncarc unul sau dou cuvinte n buffer. Cnd mesajul este complet sau buffer-ul de opt cuvinte este plin, coninutul acestuia este trimis n reea. SENDR0 SEND2 SEND2 R1,R2 R3[3,A3] adr. receptor mesaj sfrit mesaj Figura 19. Uneori se folosete o singur instruciune, care transmite toate informaiile, urmat de mesaj, se specific un cuvnt al mesajului care este fie o constant (coninutul unui registru de date), fie un offset de referin pentru memorie printr-un registru de adrese (ca un operand descriptor). Metoda aceasta este foarte puin folosit (n raport cu mai multe instruciuni Send) deoarece nu reduce nici spaiul de cod, nici timpul de execuie. Unele structuri (calculatoare concurente) folosesc DMA sau canale I/O pentru a injecta direct mesajele n reea. La nceput o secven de instruciuni compune un mesaj n memorie. Registrele DMA sau cuvintele de comand pentru canalele I/O vor iniializa depunerea mesajului n reea. Aceast posibilitate este mai lent, deoarece necesit transferul mesajului n memorie, compunerea sa n memorie i trimiterea lui n reea. n al doilea rnd, pentru mesaje scurte, timpul necesar programrii DMAului sau a canalelor I/O depete timpul necesar trimiterii mesajului n reea. Un MDP menine dou cozi de mesaje. Cozile sunt implementate ca buffer-e circulare. Mesajele sosite din reea sunt buffer-ate n coada cea mai apropiat. Pentru a mri lrgimea memoriei, acestea sunt preluate (stocate) pe linie. Cuvintele mesajelor sosite sunt acumulate ntr-un buffer linie pn cnd acesta se umple sau mesajul este complet; buffer-ul este apoi scris n memorie. Trebuie ca aceast coad (buffer-e linie) s fie destul de performant nct s accepte cuvintele cu viteza transmisiei n reea; altfel mesajele vor fi ntoarse n reea crend congestii. n29

nodurile de procesare, un program poate fi rulat n paralel cu recepionarea mesajelor. Alocarea memoriei n buffer-e circulare la multicomputere este asemntoare cu alocarea memoriei n stive. Orice mesaj n coada unui MDP reprezint un task gata de rulare. Cnd un mesaj ajunge n capul cozii, este creat un task pentru tratarea acestuia. n orice timp MDP execut un task asociat cu primul mesaj din coada de nalt prioritate. Dac ambele cozi sunt goale, MDP-ul este nefolosit, executnd un task back-ground/de pregtire. Trimiterea unui mesaj implic activarea unui task n nodul destinaie. Mesajele devin active dac fie ajung la nod cnd acesta este nefolosit (nod idle) fie ajung n capul cozii cnd mesajul precedent suspend execuia. n momentul respectiv se creaz un task. Crearea task-lui, redirectarea controlului i crearea unui nou cadru (environment) de adresare sunt realizate ntr-un ciclu de clock, (figura 20).

30

L B

+O P C

L

I PFigura 20

c o d e

Expedierea mesajelor. ntr-un ciclu de clock se creaz un nou task prin: - (1) setarea instruction pointer pentru schimbarea cii de control (redirectare) - (2) crearea unui segment de mesaj pentru furnizarea adresei iniiale. Orice cap de mesaj conine un Op-code i lungimea mesajului (L-lenght). Op-code este ncrcat n IP. Lungimea este folosit cu capul cozii pentru a crea un descriptor de segment de mesaj care reprezint de fapt adresa iniial a task-ului. Cnd un task este creat, nu se salveaz variabila de stare. Dac un task A, devine activ, atunci cnd task-ul anterior B este suspendat; B trebuie s-i autosalveze variabilele de stare Multe mesaje specific modulul (handler modul de conducere) pentru localizarea metodei necesare tratrii i apoi transfer controlul acestuia. Executarea acestui modul este redat n figura 21.

31

P R C A L ML I

. e t o A d r a g u m . .e . n t

T r a n s l a r e H T r a n s l a r e

C A L L A N D L E R

A r g u m e n t e o b i e c t m C o d e t o d

N

e w

C o n t e x t T a b e l a d e t r a n s l a r e

M

e m

o r i e

Figura 21 Un mesaj CALL invoca o metod translnd indentificatorul de metod pentru a gsi codul, creaz un context pentru a salva variabilele de stare (dac este necesar) i transleaz indentificatorii argument n argumente locale. Multe versiuni de MDP au un set fix de modul handler create n microcod, dar la acestea performanele sunt limitate de accesul la memorie. Se poate lucra i n limbaj de asamblare. Op-code-ul mesajului se definete a fi adresa fizic a rutinei de conducere spre metoda corespunztoare. Sincronizarea cu tag-uri. Oricare registru sau locaie de memorie ntr-un MDP include un tag de 4 bii care indic tipul datei care ocup locaia. MDP folosete tag-urile pentru sincronizarea datelor disponibile n utilizarea lor dinamic (i verificarea timpilor de execuie). Pentru sincronizare sunt prevazute dou taguri: future este folosit pentru identificarea numelor locurilor de pstrare a datelor nc nedisponibile; c.future este folosit pentru a suspenda un task dac acesta ateapt s acceseze o dat care nu a sosit nc de la nod ndeprtat; dac un task trimite un mesaj cerd un32

replay, el marcheaz celula care va pstra replay-ul cu c.future, iar orice ateptare va suspenda task-ul. La sosirea datelor (replay) se terge c.future. n figura 22 este ilustrat folosirea lui c.future.

C A L L P L U S B 5 R e p l y t o C o n t e x t

a l t S l o t C B :

n o d 7

m

e s a j

C C T s

O N T E X T A + B t r a p s a g C a c o n t e x t f u t u r e e n d + 5 m e s s a g e t o B

A : B : C :

i n f 5 r e fO I D C F

a l t R e p l y c o n t e x t 1 2 C B :

n o d 7

m

e s a j

A : B : C :

i n f 5 r e fO I D C F

C O N T E X T B r e p l i e s ( h i g h e r p r i o r i t y ) w i t h r e s u l t a n d u p d a t e s C

Figura 22 Fie un program ce execut declaraia C: = A+B i descoper c B este ntr-un alt nod (necesit o ntrziere pentru a fi disponibil). Se trimite un mesaj lui B pentru calculul sumei i marcheaz C cu "c.future" pentru a indica c nu este prezent. Cnd valoarea este returnat din B se rescrie "c.future. O ncercare de referire a lui C nainte de sosirea valorii este defectuas. Translarea.33

MDP este o unificare a modelelor cu memorie partiionat (shared-memory) i calculatoarele paralele message-passing. Mainile cu memorie partiionat au un spaiu global uniform de adrese ceea ce permite accesarea datelor indiferent de localizare. Mainile message-passing permit comunicarea i sincronizarea mesajelor nod-nod. Cele dou concepte nu se exclud. MDP prevede un mecanism de adresare capabil s suporte un spaiu global de memorie, folosind un mecanism de execuie bazat pe pasarea/circularea mesajelor, implementnd un spatiu global de adrese virtuale cu mecanismul translrii. Memoria unui MDP permite fie o accesare indexat, fie una set-asociativ. Construind comparatoare n multiplexorul de coloane al chip-ului RAM, se permite un acces setasociativ numai prin creterea n mrime a circuitelor periferice RAM-ului. Mecanismul de translare accept instruciunile ENTER i XLATE. ENTER Ra, Rb - asociaz coninutul lui Ra (cheia) cu coninutul lui Rb (data). Asocierea este facut pe toi cei 36 bii ai cheii, nct tag-ul poate fi folosit pentru a distinge diferite chei: "XLATE Ra, Ab" indic asocierea datei cu coninutul lui Ra i stocheaz data n Ab. Instruciunea d erori dac data nu este un descriptor de segment. "XLATE Ra, Rb"poate fi folosit pentru orice alt tip de date. Se pot transla fie un descriptor de segment pentru un obiectiv local fie o adres de nod pentru un obiectiv global. Tag-ul face parte din mecanismul de adresare i permite deosebirea celor dou posibiliti de mai sus. Multe calculatoare au o memorie cache setasociativ care accelereaz translrile . Un obiectiv reprezint o unitate integrat de date i proceduri care pot aciona asupra datelor. Un program executabil reprezint o colecie de obiective. Aceste obiective pot fi apelate de mai multe noduri. Datele se gsesc n memorie sub form de variabile. Procedurile dintr-un obiectiv formeaz o metod. Datele dintr-un obiectiv care pot interaciona prin mesaje. Rezultatele deosebite n structurile de reele se obin folosind noduri de capaciti relativ mici (care execut puine instruciuni i au o memorie relativ mic) numite fine-grain (grauntele). Acestea permit o vehiculare rapid a mesajelor, dar numrul lor este mai mare dect cel al unor structuri (calculatoare) complexe, pentru reele echivalente figura 23.34

n figura 23 este redat graf-ul de calcul pentru un program paralel. Fiecare nod reprezint un task iar arcele indic dependena dintre task-uri. Comunicarea i sincronizarea sunt asociate cu fiecare arc.c o a r s e ( g r u n t e f i n e g r a i n g r a i n m a r e )

Figura 23. Graf-ul de calcul pentru un program paralel. Exist versiuni la care se utilizeaz un spaiu comun de obiective (memorie). Toate datele i codurile sunt stocate n obiectiv. Fiecare obiectiv este asigurat de o metod global unic. Un task din orice nod poate accesa un obiectiv. Obiectivele sunt libere s migreze ntre noduri.

35

Arhitecturi distribuite. La arhitecturile distribuite fiecare nod conine o memorie proprie n care se gsesc obiectivele corespunzatoare. Se exemplific structura pe o main DOOM. La aceasta main nodurile sunt realizate din calculatoare implementate cu microprocesorul 68020, iar reeaua este slab cuplat. Comunicaia ntre noduri se realizeaz prin pachete comutate point-to-point n reea. Structura unui nod este prezentat n figura 24.D P

g a t e w a y i n t e r f a c e

C

P

r e e a

M

M

U

D P d a t a p r o c e s s o r C P c o m m u n i c a t i o n p r o c e s s o r g a t e w a y i n t e r f a c e i n t e r f a h o s t

p h y s i c a l m e m

Figura 24. Structura unui nod.

D

P

D

P

C

P

C

P

C

P

D

P

D

P

C

P

C

P

D

P

Figura 25. Un model redus de reea. Nodurile sunt conectate ntre ele i sunt controlate de un host-computer care sorteaz programele din noduri. Interfaarea cu host-ul se realizeaz prin logica36

gatway interface care nu este obligatorie pentru toate nodurile. Procesorul de comunicaii realizeaz comunicaiile ntre noduri, care are loc prin intermediul pachetelor. Un mesaj este divizat n mai multe pachete de mrime fix care sunt transmise spre destinaie, unde are loc reansamblarea lor. Pachete pot nainta n paralel, pe ci diferite i pot ajunge la destinaie n ordine aleatoare. Un model redus de reea (cinci noduri) este redat n figura (25). Dac sistemul de operare trebuie ncrcat din host, fiecare nod poate fi interfaat cu acesta; astfel informaia va fi transmis din nod n nod. Un aspect important al arhitecturilor distribuite l reprezint suportul de comunicaie. Comparat cu o arhitectur cu memorie partiionat, aceast arhitectur are ntrzieri de comunicaie mai mari. Aceast deficien este compensat prin viteza de lucru n noduri. Deoarece structura nu este dedicat executrii unor algoritmi specifici, topologia este de caz general, n care legturile de comunicaie sunt neregulate i pot varia funcie de program. Cteva criterii sunt respectate, cum ar fi: diametrul, regularitatea, gradul pe nod, extensibilitatea, lungimea legturilor, tolerana reelei la noduri sau conexiuni defecte. Se respect teoria grafurilor (noduri, arce = canale de comunicaii). n acest caz reeaua este omogen, n sensul c inspectnd graful pornind dintrun vrf oarecare, rezultatul inspeciei este independent de vrful de start. Omogenitatea n comunicare implic faptul c toate nodurile au aceeai perspectiv (vedere) asupra restului reelei. Dac gradul este o msur a costului, iar diametrul d este invers cu performana, atunci raportul cost (c), performan (P) este: c/P = d (de notat c nu este o msur de acuratee deosebit a costului, dar l aproximeaz destul de bine).

37

Procesorul de comunicaii (CP). Un CP trebuie s satisfac urmtoarele condiii: absena impasurilor (situaii cnd progresul mesajelor este imposibil) i a situaiilor cnd acest progres este posibil dar nu este garantat; independena de topologia reelei sau de mrimea acesteia; utilizare i administrare eficient a spaiului de stocare a pachetelor; routing liber: pachetele pot ajunge la destinaie pe diferite ci; independena operaiilor: DP nu trebuie afectat de sosirea pachetelor la destinaie; implementabilitate cu VLSI. Conectarea DP n nod este, n principiu, identic cu conectarea la CP. CP folosete o tabel routing care este ncrcat n CP n timpul iniializrii structurii hardware. Fiecare pachet conine un cmp de destinaie. Cnd un pachet ajunge n CP, tabela de routing este indexat cu coninutul cmpului de destinaie pentru a gsi vectorul de routing cutat de pachet. Acesta este un vector binar, un bit pentru CP-to-CP, fiecare bit indicnd dac pachetul va fi sau nu condus mai departe pe ieirea respectiv. Dac mai muli bii sunt adevrai (1), mai multe ci sunt permise. Dac toi biii sunt fali nseamn c pachetul i-a gsit destinaia i el trebuie transmis ctre DP. Fiecrei ieiri a lui CP i este asociat o coad de adrese a pachetelor. Cnd un pachet ajunge la CP, el este stocat intern i adresa unde se afl este adugat la cozile asociate ieirilor indicate de biii din vectorul de routing. Cnd o ieire poate s transmit un pachet, o adres este scoas din coad, este tears din celelalte cozi, apoi pachetul este citit i transmis. Folosirea tabelelor de routing i a cozilor asociate permit o independen de topologie i un routing liber (adaptabil).

38

Structuri sistolice i procesoare VLSIDin punct de vedere al timing-ului (al sincronizrii) i al resurselor I/O, calculatoarele paralele se mpart n patru clase conform figurii (26). Ariile sistolice i wavefront sunt determinate de un pipeline pentru date concomitent cu procesarea. n al doilea rnd ariile wavefront folosesc capacitatea de data driven (date dirijate) n timp ce ariile sistolice folosesc coduri de instruciuni sincronizate local. SIMD i MIMD folosesc o zon global de date.

Figura 26. Ariile MIMD sunt o nglobare a tuturor capacitilor de procesare menionate, cum ar fi controlul distribuit asincron, dirijarea datelor, prencrcarea datelor de tip bus, memorie partiionat cu proprietatea difuzrii n structur. O structur tipic de SIMD este redat n figura 27.a, unde unitatea de control controleaz activitatea tuturor procesoarelor care comunica cu memoria pe un bus bidirecional, iar n figura 27.b este prezentat o structur de principiu pentru MIMD. Marea diferen ntre SIMD i MIMD const n folosirea comunicaiilor locale privind memoria global partiionat.39

a) Structur tipic de SIMD

b) Structur tipic de MIMD Figura 27.

Civa parametri ce caracterizeaz ariile de procesoare sunt folosii n analiza acestora: p (numrul de procesoare), T1 Tp (timpii necesari execuiei algoritmului de ctre un procesor, respectiv de aria de procesoare), Ep (eficiena sau utilizarea procesoarelor n implementarea propus). Cnd trebuie executat un algoritm,

40

indiferent de arhitectura aleas, exist anumite strangulri n transferul informaiilor care nu pot fi eliminate. Una dintre ele, numita legea lui Amdahl este folosit ca un argument n stabilirea limitelor calculului paralel. n general un algoritm poate fi descompus n dou pri: una secvenial, notat S i o parte paralel notat cu P. Presupunem c S i P au valori relative (de exemplu S+P=1) i se noteaz cu f raportul relativ S/P. Atunci timpul de execuie al algoritmului n paralel este TP=fT1+(1-f)T1/P i creterea de vitez obinut de implementarea prin arie de procesoare este:1 1 SP= f + 1 f f . P

Astfel, creterea vitezei este limitat (mrginit), nu liniar. Ea nu poate fi crescut prin creterea numrului de procesoare, fiind limitat de algoritmi, care determin o problem de descompunere a strangulrii. O alt strangulare este strangularea lui Von Neumann, care este rezultatul limitrii comunicaiilor datorat arhitecturii modelului. La nivelul actual al dezvoltrii tehnologiei VLSI, procesoarele execut task-urile mai rapid dect viteza de rspuns a memoriei i a dispozitivelor I/O. Este motivul pentru care ariile de procesare implementate VLSI sunt preferate arhitecturilor SIMD i MIMD care folosesc un bus global i memorie partiionat. Ideea este de a accepta data i a o prelucra n toate procesoarele nainte ca o nou dat s fie accesat n memorie. Acesta este principiul sistolic actual. Arii sistolice. Un sistem sistolic este o reea de procesoare care prelucreaz i transfer ritmic date n sistem. Memoria, n arhitectura tipic Von Neumann, este accesat dup procesarea datelor n fiecare procesor producndu-se o strangulare. Cnd o dat este tears din memorie, ea poate fi folosit de oricare celul, fiind pompat (transferat) din celul n celul, de-a lungul ariei. Astfel, dac rata de comunicaie cu memoria este mai mic dect rata de procesare, data este procesat de cteva procesoare pn se poate accesa din nou memoria. Factorii majori pentru adoptarea structurilor sistolice sunt simplitatea i regularitatea arhitecturii, a comunicaiei i echilibrarea procesrii cu ciclii I/O. Pentru operaii care necesit doi operanzi,41

curgerea datelor se realizeaz, n general, pe dou ci, x i y, n direcii opuse. Metoda d rezultate bune, de exemplu, la operaia de nmulire. Dou elemente consecutive trebuie s fie separate de dou uniti de timp, ntre timp ele urmnd a ntlni alte elemente din cellalt i r. O posibilitate este prezentat n figura 28.

ai yo xiPrincipii de proiectare.

n

y o u= ti yn+ i an x i yi xon

n

u t

x o u= t i xn

nFigura 28.

u t

Cteva principii de baz n proiectarea ariilor VLSI sunt: modularitate i simplitate (fiecare celul execut o simpl operaie asupra datei care este primit i care este rezident), regularitate (legturile formeaz o structur regulat), extensibilitate pipeline i paralelism (pentru creterea vitezei), eficien i vitez crescut (fiecare dat sau grupare de date este folosit n multiple operaii). Secvena de date care intr n arie curgnd ritmic se numete ir de date. Dac irul de date este folosit numai ca parametri de intrare pentru procesrile realizate n arie se numete ir de date de intrare (input data stream), iar dac conine elemente care au fost procesate n arie i trebuiesc stocate n memorie dup ce algoritmul a fost executat, se numete ir de date de ieire (output data stream). Arii tipice de procesare VLSI. Ariile plane uzual folosite sunt ariile triunghiulare, ptratice i hexagonale cu dou sau trei interconectri cu vecinii apropiai n direciile vertical, orizontal sau diagonal. Uzual, exist una, dou sau trei ci n aceeai direcie sau opus, ariile corespunztoare notndu-se cu ULA, BLA, TLA.42

Arie liniar unidirecional - ULA. Este o arie liniar de procesare cu irurile de date curgnd n aceeai direcie. Procesoarele n ULA pot comunica cu una, dou sau trei ci de date. Arie liniar bidirecional -BLA. Este o arie liniar de procesare cu irurile de date curgnd n dou direcii. Pot comunica cu una, dou, trei sau patru ci de date. Arie liniar cu trei ci de comunicaie - TLA. Este o arie liniar care folosete trei iruri de date n direcii diferite. O arie ULA care realizeaz nmulirea a doi vectori folosind un ir de date dinspre dreapta i unul rezident n arie este redat n figura 29. Un exemplu de BLA este redat n figura 30.

a0 a0 a0 a0x 3x 2x 1x 0

3 2 1 0

a1 a1 a1 a1 y1

3 2 1 0

a2 a2 a2 a2 y2

3 2 1 0

a3 a3 a3 a3 y3

3 2 1 0

y0

Figura 29.

a0

3

a1 a0

3 2

a2 a1 a0

3 2 1

a3 a2 a1 a0

3 2 1 0

a3 a2 a1

2 1 0

a3 a2

1 0

a3

0

y0 -

1

y-

2

y

x2 -

1

x-

0

x

Figura 30. Un exemplu de TLA este dat n figura 31 (implementarea filtrului ARMA). Pentru TLA exist mai multe versiuni, funcie de numrul irurilor de date de ieire i al valorilor rezidente n memorie.43

a0 w0 y0

a1 w1

a2 w2

a3 w3 y 2 - 3 y. . .

. . .2 - x1 x

x0

Figura 31. Exemplu de TLA.

x1 o yi n x2 x1 xo y2

u t

w w

1 2

x1 yo x2 y1 xi y2

i n u t i n

yo x1 x2

u= t iy n+ o o

x 1 i n w1i n i n

+ 2 i n w2 x

=u 1x t =u 2x t

o u t

i n u t i n

w w

u t o u yt 1 o = 1y i +n ix n

w1

1 2

n

y2

o

=u 2y i +n ix n w2 t

o u x o u = t ix n t

Figura 32. Celule dublu IPS. Procesoarele execut dou operaii IPs (inner product step - pas intern ) i sunt uzual numite celule dublu IPS. Dou versiuni de celule dublu IPS sunt redate n figura 32, avnd unul, respectiv dou iruri de ieire. Aceste celule de procesare pot folosi date de intrare externe n loc de valori rezidente n memorie figura 33.

44

a

1

a

2

x1 xo y2

i n u t i n

w w a

1 2

y1 o xin y2a2

u y n i u y 1 o = t1 i + x n t

a1

y2

o

= ty i + x n a2 u 2 n i

i o u tx o u = t x n

1

x1 o yi n x

u t

w w

1 2

x1 yo x

i n u t

yo x x

u = t iy n +

x 1i n i n

i n a1

+ x 2

i n a2

1 o 2 o

= tx u 1 = tx u 2

2 o u t

2 i n

Figura 33. TLA-urile se mai numesc structuri duble pipeline deoarece pot fi descompuse n dou BLA. ULA i BLA necesit acelai timp de execuie pentru o nmulire (cazul prezentat), dar implementarea ULA folosete date rezidente i timpi adiionali de ncrcare/stocare pentru procesarea total. Implementarea BLA necesit, de asemenea, timpi suplimentari I/O. Probleme de timing. Pentru ariile de procesoare implementate VLSI se definesc urmtorii parametri de timing: timpul necesar executrii procesrii complete; timpul de intrare (input time); timpul necesar datelor pentru a intr n procesorul unde are loc prima operaie; timpul de ieire (output time); timpul necesar datelor pentru a prsi aria de la procesorul unde a avut loc ultima operaie; timpul de ncrcare (load time); timpul necesar datelor pentru a intra corect n procesorul unde sunt rezidente; timpul de descrcare (unload time); timpul necesar datelor rezultate pentru a prsi aria dac au fost rezidente;

45

timpul total de procesare (total processing time); este suma timpilor pentru ncrcare, intrare, execuie, ieire i descrcare. Timpii de ncarcare i descrcare pot fi dai de calculul matricelor booleene care folosesc iruri de date de intrare. Algoritmi pentru arii sistolice. Dup identificarea task-urilor i a arhitecturii ce se implementeaz n VLSI, trebuiesc dezvoltai noi algoritmi cu grade de paralelism i regularitate, comunicaiile i dezvoltat sistemul I/O. Un algoritm implementat pe o arie de procesare VLSI este un set de reguli care rezolv o problema ntr-un numr finit de pai printr-un mare numr de procesoare interconectate. Algoritmii implementai pentru arii sistolice, ca subset al clasei algoritmilor paraleli, sunt identificai dup urmtoarele criterii: sincronism - se folosesc ambele metode de comunicare: sincron i asincron; control concurent - calculele trebuie s fie executabile pe structuri pipeline i paralele, deci s existe o dependen ntre ele; granulitate - fiecare subtask procesat pe o celul separat trebuie s fie ct mai simplu, dar destul de complex pentru a fi eficient; subtas-kul este dependent de comunicaii i memoria local a celulei; geometria comunicaiei - interconectrile locale necesit o dependen local a task-urilor pentru a fi executate n celulele vecine. Exist cteva definiii (particulare) pentru ariile sistolice VLSI, cum ar fi graful abstract, folosit i n automatele celulare. Pentru un algoritm indicatorii de cretere a vitezei i eficiena sunt dai de : SP = T1/TP, EP = SP/P. Arhitecturi complexe de reele. Pe baza celor patru modele de baz (mesh, butterfly, tree i cube) se pot obine prin combinarea acestor arhitecturi complexe. Cteva exemple sunt redate n figurile urmtoare.

46

Figura 34 a) Plasa de arbori

Figura 34 b) Piramida La reelele stea i cltit, nodurile sunt codificate (notate) prin permutri ale unui vector de simboluri {1, 2, ..., s}, n cazurile de mai sus s={1, 2, 3, 4}. n reeaua stea un procesor u este conectat la un procesor v dac i numai dac permutarea corespunztoare lui u poate fi obinut din cea a lui v prin schimbarea primului simbol cu simbolul al i-lea, pentru orice i, 2 i k (k = numr de digii). Reelele stea se noteaza cu SK. Reeaua din figur este S4. De exemplu nodurile47

(procesoarele) 3421 i 2431 sunt vecine. n reeaua cltit (notat uzual cu PK), un procesor v este conectat la un procesor u dac i numai dac eticheta lui u poate fi obinut din cea a lui v schimbnd primii i simboli simetrici ( de exemplu: 4231 2431 - primul simbol; 3142 2413 - primele dou simboluri). Reelele stea i cltit au vrfurile i arcele simetrice. Aceast proprietate permite ca toate procesoarele s fie identice i minimizeaz congestiile atunci cnd mesajele sunt rulate n reea. Fiecare vrf al acestor reele are exact (R - 1) arce.

1 2 3 4 3 2 1 4 2 3 1 4 2 1 3 4 3 1 2 4

4 2 3 1 3 2 4 1 2 4 3 1 3 4 2 1

1 2 3 4 3 2 1 4 2 1 3 4 2 3 1 4 3 1 2 4

4 2 3 1 3 2 4 1 2 3 4 1 4 3 2 1 2 4 3 1 3 4 2 1

2 3 4 1 4 3 2 1

1 3 2 4

1 3 2 4

3 4 1 2 3 4 1 2 4 3 1 2 1 3 4 2 1 4 3 2 4 1 3 2 2 4 1 3 4 2 1 3 1 2 4 3 1 4 2 3 4 1 2 3 4 3 1 2 1 3 4 2 1 4 3 2 4 1 3 2

2 4 1 3 4 2 1 3 1 2 4 3 1 4 2 3 4 1 2 3

3 1 4 2

2 1 4 3

3 1 4 2

2 1 4 3

Stea Figura 34. c) O alt structur este arhitectura rotator.

Cltit

48

Figura 34. d) Rotator

49

Calculatoare vectorialeArhitecturile vectoriale permit rezolvarea majoritii problemelor numerice. Majoritatea acestora au o structur pipeline, iar cnd aceasta nu este suficient pentru atingerea performanelor dorite se prevd structuri multi-pipeline. Majoritatea suport operaii complete n paralel prin permiterea arhitecturii multi-pipeline s prelucreze iruri independente de date. Raportul pret/performan este foarte avantajos, dar utilitatea lor este remarcabil doar la calcule care pot fi executate vectorial. O prezentare de principiu a acestora se poate realiza pe baza operaiei C = A + B, unde A = ai B = bisunt doi vectori. , Ideea de baz a acestor procesoare este de a combina doi vectori, element cu element, pentru a produce un vector de ieire. O posibilitate simplist de a realiza operaia de mai sus este prezentat n figura 35, existnd ci de date pentru A i B, ci pe care structura de memorie elibereaz cte un element la fiecare ciclu de clock.

Figura 35 a)

Figura 35 b) O extensie a arhitecturii este dat n figura 35.b n care memoria de baz este compus din mai multe module. Structura poate fi folosit pentru calculul vectorial.

50

Se consider c un ciclu de procesor, deci durata cerut pentru deservirea pipeline-ului din figura 35.b este cu cel putin ase cicluri mai mic dect n configuraia prezentat n figura 35.a. O reprezentare a alocrii memoriei este dat n figura 35.c, iar modulul de vehiculare a datelor i efectuare a operaiilor sunt oglindite n figura 35.d. Modulul 0 Modulul 1 Modulul 2 Modulul 3 Modulul 4 Modulul 5 Modulul 6 Modulul 7 A0 A1 A2 A3 A4 A5 A6 A7 B0 B1 B2 B3 B4 B5 Figura 35. c) C0 C1 C2 C3 B6 B7 C4 C5 C6 C7 -----------------

51

Stadiu 4 Stadiu 3 Stadiu 2 Stadiu 1 Modul 7 Modul 6 Modul 5 Modul 4 Modul 3

0

0 1

0 1 2

0 1 1 2 2 3 3 4 RB RB5 5

2 3 4 5 R A7 R

3 4 5 6 R

4 5 5 6 6 7 7 W3 W3

6 7

7

RB RB4 4

R A6 R

A7 W2 W2

RB RB3 3

R A5 R A4

A6 W1 W1

RB RB2 2

R A4 R A3

A5 W0 W0

R RB B1 1

R A3 R A2

Modul 2 R R B B0 0

R A2 R A1

RB7

W6

Modul 1

R A1

RB7

W5 W5

Modul 0 R R A A0 0

RB RB6 6

W4 W4

Figura 35. d) n figura 36 este redat o posibilitate de introducere a unor buffer-e care s elimine problemele de accesare a memoriei, mai ales cnd ambii vectori ncep n aceleai bande de memorie.

52

Figura 36. O arhitectur de calculator vectorial este prezentat n figura 37 i este o schem de principiu a calculatorului CDC STAR.

Figura 37. Arhitectur de calculator vectorial. Elementele de ntrziere permit asigurarea ntrzierilor ntre elemntele fizice ale structurii; se utilizeaz memorii de tip biport accesat de un registru de adrese pentru scriere, respectiv de unul pentru citire. Iniial registrul WRITE este ncrcat cu 0. Ambele registre sunt modificate prin incrementare. Dac se dorete asigurarea unei ntrzieri d atunci registrul READ va fi ncrcat cu -d (WRITE cu 0) i se execut incrementarea acestuia la fiecare ciclu de scriere. Dar data citit nu va fi disponibil pe magistrala de ieire dect dup ce registrul READ ajunge n 0, asigurndu-se astfel o ntrziere de d cicli ntre scrierea unui element i citirea lui.

53