sisteme multiprocesor

13
Cap. 10. Sisteme Multiprocesor 10.1. Taxonomia arhitecturilor de calculatoare Una dintre cele mai cunoscute taxonomii (clasificări) ale arhitecturilor de calculatoare este taxonomia lui Flynn. Michael Flynn a clasificat arhitecturile de calculatoare în patru categorii, în funcţie de prezenţa unui singur şir sau a mai multor şiruri de instrucţiuni şi de date. Un şir de instrucţiuni este un set de instrucţiuni secvenţiale executate de un singur procesor, iar un şir de date este fluxul secvenţial de date necesar şirului de instrucţiuni. Cele patru categorii ale lui Flynn sunt următoarele: 1.  SISD (Single Instruction stream, Single Data stream). Această categorie corespunde arhitecturii von Neumann,  în care se execută în orice moment o singură instrucţiune. Calculatoarele SISD sunt numite şi calculatoare seriale scalare. Aceste calculatoare utilizează un registru numit contor de program – PC, care determină execuţia serială a instrucţiunilor. Pe măsură ce fiecare instrucţiune este încărcată din memorie, contorul de program este actualizat pentru a conţine adresa următoarei instrucţiuni care se va încărca şi se va executa în ordine secvenţială. Există actualmente doar un număr redus de calculatoare SISD; chiar şi procesoarele din calculatoarele personale utilizează paralelismul în scopul creşterii eficienţei. In cele mai multe situaţii, acestea pot executa două sau mai multe instrucţiuni simultan.  2.  MISD (Multiple Instruction stream, Single Data stream). In acest caz, mai multe instrucţiuni operează asupra unei singure date. Există două posibilităţi de interpretare a structurii calculatoarelor MISD. Prima posibilitate este de a se considera o clasă de calculatoare la care mai multe unităţi de prelucrare distincte primesc instrucţiuni distincte care operează asupra aceloraşi date. Această clasă de calculatoare este considerată ca nepractică sau imposibilă de către unii proiectanţi de calculatoare şi în prezent nu există exemple de acest tip. A doua posibilitate este de a se considera o clasă de calculatoare în care datele sunt trecute printr-o serie de unităţi de prelucrare. Unele arhitecturile de tip  pipeline, ca de exemplu procesoarele vectoriale sau arhitecturile sistolice, sunt considerate calculatoare de acest tip. Arhitecturile de tip  pipeline execută o prelucrare vectorială utilizând o serie de etaje, iar fiecare din acestea execută o anumită funcţie şi produce un rezultat intermediar. Motivul pentru care asemenea arhitecturi sunt clasificate ca sisteme MISD este faptul că elementele unui vector pot fi considerate ca aparţinând aceleiaşi date, iar fiecare etaj  pipeline prelucrează mai multe instrucţiuni care operează asupra acelui vector. 3. SIMD (Single Instruction stream, Multiple Data stream). In acest caz, o singură instrucţiune prelucrează simultan date diferite. La calculatoarele de acest tip, există mai multe unităţi de prelucrare şi o singură unitate de control. Calculatoarele SIMD pot executa, de asemenea, prelucrări vectoriale. Aceasta se realizează prin asignarea elementelor vectorilor unor unităţi de prelucrare diferite pentru o prelucrare concurentă . In această categorie pot fi considerate

Upload: doru-lupu

Post on 30-Oct-2015

154 views

Category:

Documents


2 download

DESCRIPTION

Materie SAC

TRANSCRIPT

7/16/2019 Sisteme Multiprocesor

http://slidepdf.com/reader/full/sisteme-multiprocesor-56338491da0d2 1/13

Cap. 10. Sisteme Multiprocesor 

10.1. Taxonomia arhitecturilor de calculatoareUna dintre cele mai cunoscute taxonomii (clasificări) ale arhitecturilor de

calculatoare este taxonomia lui Flynn. Michael Flynn a clasificat arhitecturile decalculatoare în patru categorii, în funcţie de prezenţa unui singur şir sau a mai

multor şiruri de instrucţiuni şi de date. Un şir de instrucţiuni  este un set deinstrucţiuni secvenţiale executate de un singur procesor, iar un şir de date estefluxul secvenţial de date necesar şirului de instrucţiuni. Cele patru categorii alelui Flynn sunt următoarele:

1. SISD (Single Instruction stream, Single Data stream). Această categoriecorespunde arhitecturii von Neumann,  în care se execută în orice moment osingură instrucţiune. Calculatoarele SISD sunt numite şi calculatoare serialescalare. Aceste calculatoare utilizează un registru numit contor de program –PC, care determină execuţia serială a instrucţiunilor. Pe măsură ce fiecareinstrucţiune este încărcată din memorie, contorul de program este actualizat

pentru a conţine adresa următoarei instrucţiuni care se va încărca şi se vaexecuta în ordine secvenţială. Există actualmente doar un număr redus decalculatoare SISD; chiar şi procesoarele din calculatoarele personale utilizeazăparalelismul în scopul creşterii eficienţei. In cele mai multe situaţii, acestea potexecuta două sau mai multe instrucţiuni simultan. 

2. MISD  (Multiple Instruction stream, Single Data stream). In acest caz,mai multe instrucţiuni operează asupra unei singure date. Există două posibilităţide interpretare a structurii calculatoarelor MISD. Prima posibilitate este de a seconsidera o clasă de calculatoare la care mai multe unităţi de prelucrare

distincte primesc instrucţiuni distincte care operează asupra aceloraşi date.Această clasă de calculatoare este considerată ca nepractică sau imposibilă decătre unii proiectanţi de calculatoare şi în prezent nu există exemple de acesttip. A doua posibilitate este de a se considera o clasă de calculatoare în caredatele sunt trecute printr-o serie de unităţi de prelucrare.

Unele arhitecturile de tip  pipeline, ca de exemplu procesoarele vectorialesau arhitecturile sistolice, sunt considerate calculatoare de acest tip.Arhitecturile de tip  pipeline execută o prelucrare vectorială utilizând o serie deetaje, iar fiecare din acestea execută o anumită funcţie şi produce un rezultatintermediar. Motivul pentru care asemenea arhitecturi sunt clasificate ca sisteme

MISD este faptul că elementele unui vector pot fi considerate ca aparţinândaceleiaşi date, iar fiecare etaj  pipeline prelucrează mai multe instrucţiuni careoperează asupra acelui vector.

3. SIMD (Single Instruction stream, Multiple Data stream). In acest caz, osingură instrucţiune prelucrează simultan date diferite. La calculatoarele deacest tip, există mai multe unităţi de prelucrare şi o singură unitate de control.Calculatoarele SIMD pot executa, de asemenea, prelucrări vectoriale. Aceastase realizează prin asignarea elementelor vectorilor unor unităţi de prelucrarediferite pentru o prelucrare concurentă. In această categorie pot fi considerate

7/16/2019 Sisteme Multiprocesor

http://slidepdf.com/reader/full/sisteme-multiprocesor-56338491da0d2 2/13

procesoarele matriciale. 4. MIMD  (Multiple Instruction stream, Multiple Data stream). Această

categorie cuprinde calculatoare cu mai multe unităţi de prelucrare în care maimulte instrucţiuni pot opera simultan asupra unor date diferite. CalculatoareleMIMD reprezintă arhitecturile cele mai complexe, obţinând o eficienţă ridicatăprin prelucrare concurentă. In acest caz, concurenţa implică faptul că nu există

doar procesoare multiple care operează în paralel, dar şi faptul că se executăprocese multiple în acelaşi timp. Taxonomia lui Flynn s-a dovedit o metodă corespunzătoare pentru

clasificarea arhitecturilor de calculatoare. Totuşi, progresele industriei decalculatoare au creat arhitecturi care nu pot fi clasificate în mod clar printaxonomia lui Flynn. De exemplu, această taxonomie nu clasifică în mod

Fig. 10.1

Figura 10.1 prezintă o taxonomie care cuprinde caracteristici ale maimultor taxonomii propuse. Această taxonomie clasifică arhitecturile mairecente, dar nu reprezintă o caracterizare completă a arhitecturilor paralele.

După cum se arată în figura 10.1, categoria calculatoarelor MIMD este împărţită în patru tipuri de arhitecturi paralele: multiprocesoare,multicalculatoare, multi-multiprocesoare şi calculatoare cu flux de date. In

categoria SIMD, există un singur tip de arhitectură, reprezentată deprocesoarele matriciale. Categoria MISD este împărţită în două tipuri dearhitecturi: procesoare vectoriale de tip  pipeline şi matrice sistolice. Celelaltearhitecturi sunt grupate în două categorii: calculatoare hibride şi procesoarespeciale. Aceste arhitecturi sunt descrise în secţiunea următoare.

Arhitecturi de

calculatoare

SISD

MIMD

 

Speciale

Hibride

Arhitecturi von Neuman

Multicalculatoare

Multi-multiprocesoare

Multiprocesoare

MISD

 

SIMD Procesoare matriciale

Calculatoare cu flux de date

Procesoare vectoriale pipeline

Matrici sistolice

Calculatoare MIMD-SIMD

Procesoare cu logică fuzzy

Calculatoare MIMD-MISD

Reţele neuronale artificiale

7/16/2019 Sisteme Multiprocesor

http://slidepdf.com/reader/full/sisteme-multiprocesor-56338491da0d2 3/13

10.2. Prezentare generală a arhitecturilor de calculatoare 

10.2.1. Sisteme Multiprocesor Multiprocesorul  este un calculator paralel constând din mai multe

procesoare interconectate care partajează un sistem de memorie. Procesoarelepot fi configurate astfel încât fiecare să execute câte o parte diferită a aceluiaşi

program sau astfel încât fiecare să execute simultan mai multe programediferite. O schemă bloc a unui multiprocesor este prezentată în figura 10.2.

Fig. 10.2.

In general, un multiprocesor constă din n procesoare şi m module dememorie (  1>n , 0>m ). Procesoarele sunt notate cu

n P  P  P  ,...,, 21 iar modulele de

memorie sunt notate cum

 M  M  M  ,...,, 21 . Reţeaua de interconectare RIconectează fiecare procesor la un anumit subset al modulelor de memorie. Oinstrucţiune de transfer determină transferul datelor de la un anumit procesor către memoria cu care este conectat procesorul. Pentru transferul datelor între

două procesoare, trebuie să se execute o secvenţă programată, care transferădatele între memorii şi procesoare intermediare.

In funcţie de organizarea sistemului de memorie, multiprocesoarele pot fi împărţite în două grupe, cu legătură strânsă şi cu legătură slabă. 

In cazul unui multiprocesor cu legătură strânsă, un sistem central dememorie, numită memorie principală sau memorie globală, asigură acelaşi timpde acces pentru fiecare procesor. Sistemul central de memorie poate fiimplementat fie ca un singur modul de memorie, fie ca un set de module dememorie care pot fi accesate în paralel de diferite procesoare. In ultimul caz, se

reduce conflictul la memorie şi astfel sistemul este mai eficient. Conflictul lamemorie se referă la situaţia în care mai multe procesoare solicită acces lamemorie într-un interval scurt de timp, rezultând întârzieri mari de acces. Pelângă sistemul central de memorie, fiecare procesor poate avea şi o memoriecache de dimensiuni reduse. Aceste memorii cache ajută de asemenea lareducerea conflictelor la memorie.

In cazul unui multiprocesor cu legătură slabă, pentru a se reduceconflictele la memorie, sistemul de memorie este partiţionat între procesoare,deci fiecărui procesor i se ataşează o memorie locală. Astfel, fiecare procesor poate accesa în mod direct memoria sa locală şi toate memoriile locale ale

P1 P2 Pn

Reţea de interconectare

M1 M2 Mm

Procesoare

Module de

memorie

7/16/2019 Sisteme Multiprocesor

http://slidepdf.com/reader/full/sisteme-multiprocesor-56338491da0d2 4/13

celorlalte procesoare. Timpul de acces la o memorie care nu este locală este însă mult mai ridicat decât cel la memoria locală.

Indiferent de tipul multiprocesorului, toate procesoarele acestuia utilizeazăacelaşi sistem de operare. Sistemul de operare asigură interacţiunea dintreprocesoare şi taskurile acestora. De obicei, procesoarele sunt de acelaşi tip; înacest caz, multiprocesorul se numeşte omogen. Dacă procesoarele sunt de

tipuri diferite, multiprocesorul se numeşte eterogen. Oricare din procesoarepoate accesa oricare din dispozitivele de I/E.

10.2.2. Sisteme multicalculator Spre deosebire de un multiprocesor, un multicalculator poate fi considerat

un calculator paralel în care fiecare procesor are o memorie locală proprie. Unprocesor are acces direct doar la memoria sa locală şi nu poate adresamemoriile locale ale altor procesoare. Această adresabilitate locală este ocaracteristică importantă care deosebeşte multicalculatoarele demultiprocesoare. O schemă bloc a acestei arhitecturi este prezentată în figura

10.3.

Fig. 10.3

In figura 10.3, există n noduri de procesare şi fiecare nod constă dintr-unprocesor şi o memorie locală. Reţeaua de interconectare (RI) conecteazăfiecare nod de procesare la un anumit subset al celorlalte noduri de procesare.O instrucţiune de transfer determină transferul datelor de la un anumit nod launul din nodurile cu care este conectat. Pentru transferul datelor între douănoduri care nu pot fi conectate direct prin reţeaua de interconectare, datele

trebuie transferate prin noduri intermediare utilizând un mecanism cutransmitere de mesaje.

Intr-un mecanism cu transmitere de mesaje, un procesor poate transmite(sau recepţiona) un bloc de informaţii la (sau de la) fiecare din celelalteprocesoare prin canale de comunicaţie. Aceste canale sunt conexiuni fizice întreprocesoare, aranjate pe baza unei topologii a reţelei de interconectare. Fiecareprocesor este conectat la un canal de comunicaţie printr-un dispozitiv numitinterfaţă de comunicaţie. Acest dispozitiv poate transmite sau recepţiona date

P1 P2 P  

Reţea de interconectare RI

M1

Noduri

de

procesareMnM2

7/16/2019 Sisteme Multiprocesor

http://slidepdf.com/reader/full/sisteme-multiprocesor-56338491da0d2 5/13

printr-un canal de comunicaţie şi poate executa funcţii pentru a asigura cădatele sunt transmise şi recepţionate corect.

 Înainte ca un bloc de informaţii să fie transmis printr-un canal, blocul este împachetat într-un mesaj cu un câmp al antetului la început şi un câmp al sumeide control la sfârşit. Câmpul antetului constă din informaţii de identificare,cuprinzând adresa sursă, adresa destinaţie şi lungimea mesajului. Câmpul

sumei de control constă din mai mulţi biţi de detecţie a erorilor de transmisie. Laanumite implementări, interfaţa de comunicaţie este capabilă de a crea şi adecodifica câmpul antetului şi al sumei de control.

Comparând multiprocesoarele şi multicalculatoarele, primele pot fiprogramate mai uşor decât cele din urmă. Multiprocesoarele reprezintăarhitectura dominantă în cazul sistemelor paralele de dimensiuni reduse. Ingeneral, pe măsură ce numărul de procesoare creşte, multicalculatoarele devinmai economice decât multiprocesoarele. Multicalculatoarele sunt arhitecturieficiente pentru sistemele paralele de dimensiuni mari. Aceasta se datoreazăurmătoarelor motive:

- Calculele ştiinţifice pot fi partiţionate astfel încât aproape toate operaţiilepot fi executate local;

- Se obţine o îmbunătăţire semnificativă a performanţelor dacă majoritateareferinţelor la memorie sunt efectuate la memoriile locale.

10.2.3. Sisteme Multi-multiprocesoareOdată cu progresele tehnologiei VLSI, a devenit posibilă construirea unor 

calculatoare paralele de dimensiuni mari utilizând microprocesoare cuperformanţe ridicate. Pentru proiectarea unor asemenea calculatoare, pot fi

combinate caracteristicile multiprocesoarelor şi multicalculatoarelor, într-oarhitectură numită multi-multiprocesor  (sau multiprocesor distribuit). Deci, unmulti-multiprocesor poate fi considerat un multicalculator în care fiecare nod deprocesare este un multiprocesor. Figura 10.4 prezintă structura generală a unuimulti-multiprocesor.

Fig. 10.4.

Fiecare nod permite ca taskurile cu un grad relativ ridicat de interacţiunesă fie executate local de către un multiprocesor, reducând astfel timpul necesar comunicaţiei. Dacă fiecare nod este un multiprocesor, complexitatea programăriiparalele a unui multicalculator va fi redusă.

Reţea de interconectare

Multiprocesor 1  Multiprocesor 2  Multiprocesor n 

7/16/2019 Sisteme Multiprocesor

http://slidepdf.com/reader/full/sisteme-multiprocesor-56338491da0d2 6/13

10.2.4. Arhitecturi cu flux de dateIntr-o arhitectură cu flux de date (dataflow), o instrucţiune este gata pentru

execuţie atunci când datele care reprezintă operanzii instrucţiunii devindisponibile. Rezultatele instrucţiunilor executate anterior formează operanziiinstrucţiunilor care aşteaptă să fie executate. Se formează astfel un flux de date,care declanşează execuţia instrucţiunilor. Astfel nu este necesar un contor de

program care există într-o arhitectură von Neumann pentru a controla execuţiainstrucţiunilor.Instrucţiunile unui calculator cu flux de date nu adresează variabile într-o

memorie partajată globală, ci ele conţin valorile variabilelor utilizate. Intr-oarhitectură cu flux de date, execuţia instrucţiunilor nu afectează alte instrucţiunicare sunt gata pentru execuţie. Astfel mai multe instrucţiuni pot fi executatesimultan, ceea ce conduce la posibilitatea unor calcule cu un grad ridicat deconcurenţă.

Figura 10.5 prezintă o schemă bloc a unui calculator cu flux de date.Instrucţiunile, împreună cu operanzii acestora, sunt păstrate în memoria de

instrucţiuni şi date (I&D). Ori de câte ori o instrucţiune este gata pentru execuţie,aceasta este transferată la unul din elementele de procesare (EP) prin reţeauade arbitrare. Fiecare element de procesare este un simplu procesor cu omemorie locală limitată. La recepţionarea unei instrucţiuni, elementul deprocesare execută operaţia cerută şi transmite rezultatul la destinaţia dinmemorie prin intermediul reţelei de distribuţie.

Fig. 10.5Arhitecturile cu flux de date pot fi clasificate în două grupe: statice şi

dinamice. Intr-o arhitectură statică, o instrucţiune este validată ori de câte ori toţi

Date

(rezultate)Instrucţiuni

şi dateMemorie de

instrucţiuni şi date

Reţea de

arbitrare

Reţea de

distribuţie

EP

EP

EP

I & D

I & D

I & D

RI RI

7/16/2019 Sisteme Multiprocesor

http://slidepdf.com/reader/full/sisteme-multiprocesor-56338491da0d2 7/13

operanzii necesari sunt recepţionaţi şi o altă instrucţiune aşteaptă rezultatulacestei instrucţiuni; în caz contrar, instrucţiunea rămâne invalidată. Aceastăconstrângere poate fi impusă prin utilizarea semnalelor de achitare. Intr-oarhitectură dinamică, o instrucţiune este validată ori de câte ori toţi operanziinecesari sunt recepţionaţi. In acest caz, pot deveni disponibile mai multe seturide operanzi ale unei instrucţiuni în acelaşi timp. Comparativ cu arhitecturile

statice cu flux de date, arhitecturile dinamice permit un grad mai ridicat deparalelism, deoarece o instrucţiune nu trebuie să aştepte după o altăinstrucţiune înainte de a-şi plasa rezultatul. In cazul metodei dinamice trebuiestabilit însă un mecanism pentru a distinge diferitele seturi de operanzi pentru oinstrucţiune.

10.2.5. Procesoare matricialeUn  procesor matricial  (figura 10.6) constă dintr-un set de noduri de

procesare (NP) şi un procesor scalar, toate funcţionând sub controlul unei unităţide control centralizate. Unitatea de control încarcă instrucţiunile din memoria

principală, le decodifică şi apoi le transmite fie la procesorul scalar, fie lanodurile de procesare, în funcţie de tipul acestora. Dacă instrucţiunea încărcatăeste o instrucţiune vectorială, aceasta este transmisă la toate nodurile deprocesare. Toate nodurile execută simultan aceeaşi instrucţiune asupra datelor diferite păstrate în memoriile lor locale. Astfel, un procesor matricial necesită unsingur program pentru a controla toate nodurile de procesare din sistem şi nueste necesară duplicarea codului programului la fiecare nod de procesare.

Fig. 10.6.

Un procesor matricial poate fi definit, de exemplu, sub forma unei grile încare fiecare intersecţie reprezintă un NP, iar liniile dintre intersecţii reprezintă căide comunicaţie. Fiecare NP din matrice poate transmite (sau recepţiona) date la(sau de la) cele patru noduri vecine. Unul dintre procesoare, reprezentând

Instruc iuniDate

Date

Instrucţiuni

scalareInstrucţiuni

vectoriale

Noduri

de

procesare

P1 P2 P  

Reţea de interconectare RI

M1 MnM2

Memorie principală

Unitate

de

control

Procesor

scalar

7/16/2019 Sisteme Multiprocesor

http://slidepdf.com/reader/full/sisteme-multiprocesor-56338491da0d2 8/13

unitatea de control, decide operaţiile care trebuie executate de fiecare NP întimpul fiecărui ciclu de procesare şi transferurile de date necesare între nodurilede procesare.

Ideea principală a unui procesor matricial este de a se exploataparalelismul existent în setul de date al unei anumite probleme şi nu de a separaleliza secvenţa de execuţie a instrucţiunilor pentru acea problemă. Calculul

paralel se realizează prin asignarea fiecărui procesor la o partiţie a datelor.Dacă setul de date este un vector, partiţia va fi un element al vectorului.Matricele de procesoare îmbunătăţesc performanţele prin operarea simultanăasupra tuturor partiţiilor de date. Aceste procesoare pot executa eficient operaţiiaritmetice sau logice asupra vectorilor. De aceea, ele se mai numesc şi

 procesoare vectoriale. 

10.2.6. Procesoare vectoriale de tip pipelineUn  procesor vectorial de tip pipeline poate prelucra în mod eficient

operanzi vectoriali (şiruri continue de date). In timp ce procesoarele matricialesunt controlate de instrucţiuni, procesoarele vectoriale de tip  pipeline suntcontrolate de şiruri continue de date. Aceasta este diferenţa principală între unprocesor matricial sau vectorial şi un procesor vectorial de tip  pipeline. Figura10.7 prezintă structura de bază a unui procesor vectorial de tip pipeline. 

Fig. 10.7

Există două procesoare principale: un procesor scalar şi un procesor vectorial. Procesorul scalar execută instrucţiunile scalare, iar procesorulvectorial execută instrucţiunile vectoriale utilizând mai multe etaje de prelucrare.Unitatea de control încarcă instrucţiunile din memoria principală, le decodifică şiapoi le transmite fie la procesorul scalar, fie la procesorul vectorial realizat subformă de sistem pipeline, în funcţie de tipul acestora.

Memorie principală

Instrucţiuni

Date

Instrucţiuni

scalare

Instrucţiuni

vectoriale

Procesor vectorial

Etaj 1 

Unitate

de

control

Procesor

scalar

MnM2M1

Etaj 2  Etaj n 

7/16/2019 Sisteme Multiprocesor

http://slidepdf.com/reader/full/sisteme-multiprocesor-56338491da0d2 9/13

 Procesoarele vectoriale de tip  pipeline utilizează mai multe module de

memorie pentru a furniza etajelor de prelucrare un şir continuu de date. Adesease utilizează un compilator cu vectorizare pentru a aranja datele într-un şir carepoate fi utilizat apoi de cele două procesoare.

10.2.7. Matrice sistolicePentru calculele ştiinţifice, adesea este necesară rezolvarea unor sistemede ecuaţii liniare de dimensiuni mari. De obicei, pentru rezolvarea unor asemenea sisteme de ecuaţii se utilizează algebra matriceală. Datorităsecvenţelor lungi ale calculelor aritmetice, majoritatea operaţiilor algebricematriciale sunt executate pe calculatoare digitale cu viteză ridicată utilizândpachete software dedicate. Un dezavantaj major al execuţiei operaţiilor algebrice matriciale pe calculatoare generale este timpul de execuţie ridicat. Deasemenea, în cazul unui calculator general memoria principală nu are odimensiune suficientă pentru a permite plasarea unor matrice foarte mari.

Pentru acest motiv sunt necesare numeroase transferuri de I/E, ceea ce creştetimpul de execuţie.

Pentru rezolvarea acestei probleme, au fost introduse arhitecturi speciale.O soluţie constă în utilizarea unei matrice sistolice (figura 10.8). In cazul acesteiarhitecturi, există un număr mare de elemente de procesare (EP) identice.

Fig. 10.8

Fiecare element de procesare are o memorie locală redusă ca dimensiuneşi, pentru a nu se limita numărul de elemente de procesare plasate într-omatrice, fiecare EP poate fi conectat numai cu elementele de procesare vecineprin reţele de interconectare. Deci, elementele de procesare sunt aranjate într-ostructură de tip pipeline, sub forma unei matrice liniare sau bidimensionale. Intr-o matrice sistolică elementele de date şi rezultatele parţiale parcurg elementelede procesare în timpul execuţiei, constând din mai multe cicluri de procesare. Infiecare ciclu de procesare, anumite elemente de procesare execută aceeaşioperaţie relativ simplă (de exemplu, adunare sau înmulţire) asupra elementelor de date şi transmit aceste elemente sau rezultate parţiale la alte elemente deprocesare vecine.

IeşiriIntrări

EP

EP

EPRI RI EP

EP

EP EP

EP

EP

7/16/2019 Sisteme Multiprocesor

http://slidepdf.com/reader/full/sisteme-multiprocesor-56338491da0d2 10/13

De obicei, o matrice sistolică are o formă rectangulară sau hexagonală,dar poate avea orice formă. Utilizând tehnologia VLSI, este posibil să se obţinăo putere de calcul foarte ridicată cu un sistem constând dintr-un număr mare deprocesoare identice organizate într-o manieră structurală.

10.2.8. Arhitecturi hibride

 Arhitecturile hibride cuprind caracteristici ale unor arhitecturi diferite pentrua obţine performanţe mai ridicate ale calculelor paralele. In general, există douătipuri de paralelism care se pot utiliza: paralelism de control şi paralelism dedate. In cazul paralelismului de control, se execută simultan două sau mai multeoperaţii de către procesoare diferite. Calculatoarele MIMD sunt ideale pentruimplementarea paralelismului de control. Acestea sunt adecvate pentruprobleme care necesită executarea simultană a unor operaţii diferite asupradatelor diferite. In cazul  paralelismului de date, se execută aceeaşi operaţieasupra mai multor partiţii ale datelor de către mai multe procesoare.Calculatoarele SIMD sunt ideale pentru implementarea paralelismului de date.

Acestea sunt adecvate pentru probleme în care aceeaşi operaţie poate fiexecutată simultan asupra unor porţiuni diferite ale datelor. Calculatoarele MISDsunt de asemenea potrivite pentru paralelismul de date. Aceste calculatoarepermit procesarea vectorilor utilizând tehnica pipeline. 

In practică, cele mai mari avantaje se obţin prin utilizarea paralelismului dedate deoarece, în acest caz, se beneficiază de pe urma paralelismului în modproporţional cu cantitatea datelor implicate în calcule. Totuşi, uneori nu esteposibil să se exploateze la maxim paralelismul de date, fiind necesară utilizareaatât a paralelismului de control cât şi a celui de date. De exemplu, în cazul unor 

programe de aplicaţie rezultatele cele mai bune se pot obţine atunci cândaceste programe sunt divizate în mai multe părţi care utilizează paralelismul dedate, iar părţile componente utilizează paralelismul prin tehnica  pipeline. Ungrup de procesoare culege datele şi execută anumite prelucrări preliminare.Procesoarele transmit apoi rezultatele lor la al doilea grup de procesoare careexecută alte calcule asupra rezultatelor. Al doilea grup transmite rezultateleobţinute la al treilea grup de procesoare, care obţine rezultatele finale. Deci, uncalculator paralel care cuprinde atât caracteristici ale arhitecturilor MIMD, cât şicele ale SIMD (sau MISD) poate rezolva în mod eficient o gamă largă deprobleme.

10.2.9. Reţele neuronale artificialeUn exemplu de arhitectură specială este o reţea neuronală artificială. O

asemenea reţea constă dintr-un număr mare de elemente de procesare (EP)care funcţionează în paralel. Aceste reţele pot rezolva într-un mod mai eficientunele probleme pentru care arhitecturile von Neumann sunt ineficiente, ca deexemplu emularea informaţiilor naturale sau recunoaşterea formelor.Arhitecturile bazate pe reţele neuronale sunt capabile de învăţare şi suntadaptive la schimbările de mediu.

7/16/2019 Sisteme Multiprocesor

http://slidepdf.com/reader/full/sisteme-multiprocesor-56338491da0d2 11/13

 Fig. 10.9

Figura 10.9 prezintă structura generală a unei reţele neuronale artificiale.Fiecare element de procesare emulează unele caracteristici ale neuronuluibiologic. Acesta are un set de intrări şi una sau mai multe ieşiri. Fiecărei intrări ise asignează o pondere numerică. Această pondere corespunde potenţialuluisinaptic al unui neuron biologic. O sinapsă reprezintă conexiunea dintre unneuron şi un terminal al altui neuron (terminal numit axon). Transmitereainformaţiilor de la un neuron la altul are loc prin intermediul sinapselor şiaxonilor. Intrările unui element de procesare sunt multiplicate cu ponderile lor şisunt apoi însumate pentru a determina nivelul de activare al neuronului. Dupădeterminarea nivelului de activare, se aplică o funcţie de activare pentru aproduce semnalul de ieşire. Ieşirile combinate ale unui strat (nivel) precedentdevin intrările următorului strat, în care acestea sunt din nou însumate şievaluate. Acest proces este repetat până când se traversează reţeaua şi se

ajunge la o anumită decizie.Spre deosebire de arhitecturile von Neumann, la care elementul primar de

calcul este procesorul, în cazul reţelelor neuronale artificiale acest element estereprezentat de conexiunile dintre elementele de procesare. Pentru o problemădată, trebuie să se determine valorile corecte ale ponderilor astfel încât reţeauasă poată executa prelucrările necesare. De multe ori, determinarea valorilor corespunzătoare ale ponderilor se realizează prin ajustarea iterativă aponderilor cu scopul de a creşte performanţele reţelei. Regula de ajustare aponderilor este numită regulă de învăţare, iar întregul proces de obţinere a

ponderilor corespunzătoare este numit învăţare. Toate modelele de reţele neuronale artificiale sunt caracterizate prinoperarea paralelă şi interconectarea densă între elementele de procesare. Inacelaşi timp, există diferenţe majore între modelele individuale în ceea cepriveşte arhitectura lor, regulile de învăţare şi modul de interacţiune cu mediul.

O taxonomie generală a acestor modele este prezentată în continuare.Distincţia cea mai generală între diferitele modele de reţele neuronale artificialeeste metoda de învăţare. Dacă mediul furnizează exemplele de învăţare subforma perechilor de vectori de intrare/ieşire, metoda de învăţare este numităsupervizată. Această metodă este numită şi învăţare cu un profesor, deoarece

Ieşiri

EP

EP

EP EP

EP

EP EP

EP

EP

Intrări

7/16/2019 Sisteme Multiprocesor

http://slidepdf.com/reader/full/sisteme-multiprocesor-56338491da0d2 12/13

mediul are rolul unui profesor pentru reţeaua neuronală, punând la dispoziţieexemple detaliate despre ceea ce trebuie învăţat. Dacă, din contră, mediulspecifică intrarea dar nu şi ieşirea, învăţarea este nesupervizată. In acest caz,reţeaua neuronală trebuie să descopere soluţia la problema de învăţare. Incazul învăţării cu ajutor (reinforcement learning), mediul furnizează anumiteinformaţii de ieşire, dar aceste informaţii sunt sub forma evaluării unei

performanţe a reţelei neuronale şi nu sub forma unor exemple de învăţare.Această metodă este numită şi învăţare cu un critic, spre deosebire de învăţarea cu un profesor, deoarece mediul nu specifică ceea ce trebuie învăţat,ci numai dacă ceea ce se învaţă este corect.

O altă distincţie între diferite modele de reţele neuronale artificiale sebazează pe arhitectura acestora. Arhitectura se referă la tipul de prelucrareexecutată de neuronii artificiali şi la interconexiunile dintre aceştia. Modelele dereţele neuronale artificiale pot fi împărţite în două grupe: deterministe şistohastice. Reţelele deterministe produc întotdeauna acelaşi rezultat la ieşirepentru aceeaşi intrare, în timp ce la reţelele stohastice ieşirea pentru o intrare

dată poate varia în funcţie de o anumită distribuţie a probabilităţii de ieşire.Modelele stohastice sunt de obicei mai dificil de analizat şi simulat, dar înacelaşi timp ele sunt mai realiste în numeroase aplicaţii.

Adesea, modelele de reţele neuronale artificiale sunt simulate prinprogram. Această metodă este flexibilă, dar este lentă. Metoda cea mai eficientăpentru implementarea unei reţele neuronale artificiale este implementarea prinhardware. In ultimii ani, au fost dezvoltate mai multe circuite pentru reţeleleneuronale artificiale. In general, sunt disponibile trei tehnologii diferite pentruimplementarea prin hardware a unei reţele neuronale artificiale: electronică,

optică şi electro-optică. Tehnologia electronică poate fi împărţită la rândul ei în trei tipuri deimplementări: analogică, digitală şi hibridă. O implementare analogică reducecomplexitatea circuitului, dar este mai puţin precisă şi, de multe ori, nu permiteobţinerea unui grad de precizie de 6 biţi. Aceasta se datorează în principalnivelului redus de precizie al rezistoarelor. O implementare digitală asigură oprecizie mai ridicată, dar de multe ori necesită un spaţiu mai mare în cadrulcircuitului integrat. O implementare hibridă conţine elemente analogice şidigitale pentru a obţine avantajele ambelor implementări.

Tehnologia optică poate soluţiona anumite probleme ale tehnologiei

electronice, în special cele legate de conectivitatea între neuroni, din cauza întârzierilor şi a spaţiului necesar în cadrul circuitului integrat. Prin utilizareainterconexiunilor optice, nu este necesară nici o izolaţie între traseelesemnalelor, deoarece razele de lumină pot trece unele prin altele fără ainteracţiona între ele. De asemenea, traseele semnalelor pot fi realizatetridimensional. In sfârşit, ponderile pot fi memorate sub forma unor holograme.Cu toate aceste avantaje, există numeroase probleme asociate cu tehnologiaoptică, în special faptul că unele caracteristici fizice ale dispozitivelor optice nusunt compatibile cu cerinţele reţelelor neuronale.

7/16/2019 Sisteme Multiprocesor

http://slidepdf.com/reader/full/sisteme-multiprocesor-56338491da0d2 13/13

Intr-o implementare electro-optică, interconexiunile sunt realizate optic.Deoarece reţelele neuronale artificiale sunt puternic interconectate, aceastămetodă devine o alternativă atractivă de implementare.

10.2.10. Procesoare bazate pe logica fuzzyUn alt exemplu de arhitectură specială este reprezentată de un procesor 

bazat pe logica fuzzy. Logica fuzzy  a fost propusă de Lofti Zadeh pentru a îmbunătăţi utilizarea tehnicilor inteligenţei artificiale în anumite domenii cum esterecunoaşterea vorbirii. In inteligenţa artificială, logica cu două valori reprezintăsemnificaţia unei propoziţii ca adevărată sau falsă, dar nu poate reprezenta opropoziţie cu o semnificaţie imprecisă. In logica fuzzy, o propoziţie poate fiadevărată sau falsă, sau poate avea o valoare intermediară (de exemplu, foarteadevărat).

Logica fuzzy  se ocupă de principiile formale ale raţionamentului aproximativ. Această logică încearcă să trateze în mod eficient complexitateaprocesului cognitiv uman şi elimină unele dezavantaje asociate cu logica clasică

binară, care nu reflectă în mod corespunzător procesele cognitive umanecomplexe. Logica clasică binară consideră clase cu limite clare, de exemplu,negru sau alb. In acest fel, un obiect este fie un membru al unei clase, fie nu.Spre deosebire de această logică, logica fuzzy consideră clase care nu au limiteclare, o măsură indicând gradul de apartenenţă al unui obiect la o clasă.

Logica fuzzy  a fost aplicată în numeroase domenii, cum sunt controlulproceselor, recunoaşterea imaginilor, robotică şi sisteme expert. Controlul fuzzy este prima aplicaţie industrială a logicii fuzzy. Un controler fuzzy poate controlasisteme care puteau fi controlate anterior numai de către operatori

experimentaţi. In Japonia, s-au obţinut progrese semnificative în logica fuzzy, iar această logică a fost aplicată unei mari varietăţi de produse, cum sunt sistemede control al navigaţiei pentru automobile, camere video şi maşini de spălat.Deşi implementarea prin software a logicii fuzzy asigură rezultate bune pentruunele aplicaţii, pentru implementarea aplicaţiilor cu performanţe ridicate suntnecesare procesoare fuzzy dedicate, numite acceleratoare fuzzy.