Sunteți pe pagina 1din 13

Cap. 10. Sisteme Multiprocesor 10.1.

Taxonomia arhitecturilor de calculatoare Una dintre cele mai cunoscute taxonomii (clasificri) ale arhitecturilor de calculatoare este taxonomia lui Flynn. Michael Flynn a clasificat arhitecturile de calculatoare n patru categorii, n funcie de prezena unui singur ir sau a mai multor iruri de instruciuni i de date. Un ir de instruciuni este un set de instruciuni secveniale executate de un singur procesor, iar un ir de date este fluxul secvenial de date necesar irului de instruciuni. Cele patru categorii ale lui Flynn sunt urmtoarele: 1. SISD (Single Instruction stream, Single Data stream). Aceast categorie corespunde arhitecturii von Neumann, n care se execut n orice moment o singur instruciune. Calculatoarele SISD sunt numite i calculatoare seriale scalare. Aceste calculatoare utilizeaz un registru numit contor de program PC, care determin execuia serial a instruciunilor. Pe msur ce fiecare instruciune este ncrcat din memorie, contorul de program este actualizat pentru a conine adresa urmtoarei instruciuni care se va ncrca i se va executa n ordine secvenial. Exist actualmente doar un numr redus de calculatoare SISD; chiar i procesoarele din calculatoarele personale utilizeaz paralelismul n scopul creterii eficienei. In cele mai multe situaii, acestea pot executa dou sau mai multe instruciuni simultan. 2. MISD (Multiple Instruction stream, Single Data stream). In acest caz, mai multe instruciuni opereaz asupra unei singure date. Exist dou posibiliti de interpretare a structurii calculatoarelor MISD. Prima posibilitate este de a se considera o clas de calculatoare la care mai multe uniti de prelucrare distincte primesc instruciuni distincte care opereaz asupra acelorai date. Aceast clas de calculatoare este considerat ca nepractic sau imposibil de ctre unii proiectani 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 uniti 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 utiliznd o serie de etaje, iar fiecare din acestea execut o anumit funcie 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 aparinnd aceleiai date, iar fiecare etaj pipeline prelucreaz mai multe instruciuni care opereaz asupra acelui vector. 3. SIMD (Single Instruction stream, Multiple Data stream). In acest caz, o singur instruciune prelucreaz simultan date diferite. La calculatoarele de acest tip, exist mai multe uniti de prelucrare i o singur unitate de control. Calculatoarele SIMD pot executa, de asemenea, prelucrri vectoriale. Aceasta se realizeaz prin asignarea elementelor vectorilor unor uniti de prelucrare diferite pentru o prelucrare concurent. In aceast categorie pot fi considerate

procesoarele matriciale. 4. MIMD (Multiple Instruction stream, Multiple Data stream). Aceast categorie cuprinde calculatoare cu mai multe uniti de prelucrare n care mai multe instruciuni pot opera simultan asupra unor date diferite. Calculatoarele MIMD reprezint arhitecturile cele mai complexe, obinnd o eficien ridicat prin prelucrare concurent. In acest caz, concurena implic faptul c nu exist doar procesoare multiple care opereaz n paralel, dar i faptul c se execut procese multiple n acelai timp. Taxonomia lui Flynn s-a dovedit o metod corespunztoare pentru clasificarea arhitecturilor de calculatoare. Totui, progresele industriei de calculatoare au creat arhitecturi care nu pot fi clasificate n mod clar prin taxonomia lui Flynn. De exemplu, aceast taxonomie nu clasific n mod
SISD
Arhitecturi von Neuman Multiprocesoare

MIMD DD Arhitecturi de calculatoare SIMD MISD D Hibride Speciale

Multicalculatoare Multi-multiprocesoare Calculatoare cu flux de date Procesoare matriciale Procesoare vectoriale pipeline Matrici sistolice Calculatoare MIMD-SIMD Calculatoare MIMD-MISD Reele neuronale artificiale Procesoare cu logic fuzzy

Fig. 10.1 Figura 10.1 prezint o taxonomie care cuprinde caracteristici ale mai multor taxonomii propuse. Aceast taxonomie clasific arhitecturile mai recente, dar nu reprezint o caracterizare complet a arhitecturilor paralele. Dup cum se arat n figura 10.1, categoria calculatoarelor MIMD este mprit 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 de procesoarele matriciale. Categoria MISD este mprit n dou tipuri de arhitecturi: procesoare vectoriale de tip pipeline i matrice sistolice. Celelalte arhitecturi sunt grupate n dou categorii: calculatoare hibride i procesoare speciale. Aceste arhitecturi sunt descrise n seciunea urmtoare.

10.2. Prezentare general a arhitecturilor de calculatoare 10.2.1. Sisteme Multiprocesor Multiprocesorul este un calculator paralel constnd din mai multe procesoare interconectate care partajeaz un sistem de memorie. Procesoarele pot fi configurate astfel nct fiecare s execute cte o parte diferit a aceluiai program sau astfel nct fiecare s execute simultan mai multe programe diferite. O schem bloc a unui multiprocesor este prezentat n figura 10.2.
P1 P2 Pn Procesoare

Reea de interconectare Module de memorie

M1

M2

Mm

Fig. 10.2. In general, un multiprocesor const din n procesoare i m module de memorie ( n > 1 , m > 0 ). Procesoarele sunt notate cu P 1 , P2 ,..., Pn iar modulele de memorie sunt notate cu M 1 , M 2 ,..., M m . Reeaua de interconectare RI conecteaz fiecare procesor la un anumit subset al modulelor de memorie. O instruciune de transfer determin transferul datelor de la un anumit procesor ctre 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 funcie de organizarea sistemului de memorie, multiprocesoarele pot fi mprite n dou grupe, cu legtur strns i cu legtur slab. In cazul unui multiprocesor cu legtur strns, un sistem central de memorie, numit memorie principal sau memorie global, asigur acelai timp de acces pentru fiecare procesor. Sistemul central de memorie poate fi implementat fie ca un singur modul de memorie, fie ca un set de module de memorie care pot fi accesate n paralel de diferite procesoare. In ultimul caz, se reduce conflictul la memorie i astfel sistemul este mai eficient. Conflictul la memorie se refer la situaia n care mai multe procesoare solicit acces la memorie ntr-un interval scurt de timp, rezultnd ntrzieri mari de acces. Pe lng sistemul central de memorie, fiecare procesor poate avea i o memorie cache de dimensiuni reduse. Aceste memorii cache ajut de asemenea la reducerea conflictelor la memorie. In cazul unui multiprocesor cu legtur slab, pentru a se reduce conflictele la memorie, sistemul de memorie este partiionat ntre procesoare, deci fiecrui procesor i se ataeaz o memorie local. Astfel, fiecare procesor poate accesa n mod direct memoria sa local i toate memoriile locale ale

celorlalte procesoare. Timpul de acces la o memorie care nu este local este ns mult mai ridicat dect cel la memoria local. Indiferent de tipul multiprocesorului, toate procesoarele acestuia utilizeaz acelai sistem de operare. Sistemul de operare asigur interaciunea dintre procesoare i taskurile acestora. De obicei, procesoarele sunt de acelai tip; n acest caz, multiprocesorul se numete omogen. Dac procesoarele sunt de tipuri diferite, multiprocesorul se numete eterogen. Oricare din procesoare poate 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. Un procesor are acces direct doar la memoria sa local i nu poate adresa memoriile locale ale altor procesoare. Aceast adresabilitate local este o caracteristic important care deosebete multicalculatoarele de multiprocesoare. O schem bloc a acestei arhitecturi este prezentat n figura 10.3.
Reea de interconectare RI

P1

P2

Pn

M1

M2

Mn

Noduri de procesare

Fig. 10.3 In figura 10.3, exist n noduri de procesare i fiecare nod const dintr-un procesor i o memorie local. Reeaua de interconectare (RI) conecteaz fiecare nod de procesare la un anumit subset al celorlalte noduri de procesare. O instruciune de transfer determin transferul datelor de la un anumit nod la unul din nodurile cu care este conectat. Pentru transferul datelor ntre dou noduri care nu pot fi conectate direct prin reeaua de interconectare, datele trebuie transferate prin noduri intermediare utiliznd un mecanism cu transmitere de mesaje. Intr-un mecanism cu transmitere de mesaje, un procesor poate transmite (sau recepiona) un bloc de informaii la (sau de la) fiecare din celelalte procesoare prin canale de comunicaie. Aceste canale sunt conexiuni fizice ntre procesoare, aranjate pe baza unei topologii a reelei de interconectare. Fiecare procesor este conectat la un canal de comunicaie printr-un dispozitiv numit interfa de comunicaie. Acest dispozitiv poate transmite sau recepiona date

printr-un canal de comunicaie i poate executa funcii pentru a asigura c datele sunt transmise i recepionate corect. nainte ca un bloc de informaii s fie transmis printr-un canal, blocul este mpachetat ntr-un mesaj cu un cmp al antetului la nceput i un cmp al sumei de control la sfrit. Cmpul antetului const din informaii de identificare, cuprinznd adresa surs, adresa destinaie i lungimea mesajului. Cmpul sumei de control const din mai muli bii de detecie a erorilor de transmisie. La anumite implementri, interfaa de comunicaie este capabil de a crea i a decodifica cmpul antetului i al sumei de control. Comparnd multiprocesoarele i multicalculatoarele, primele pot fi programate mai uor dect cele din urm. Multiprocesoarele reprezint arhitectura dominant n cazul sistemelor paralele de dimensiuni reduse. In general, pe msur ce numrul de procesoare crete, multicalculatoarele devin mai economice dect multiprocesoarele. Multicalculatoarele sunt arhitecturi eficiente pentru sistemele paralele de dimensiuni mari. Aceasta se datoreaz urmtoarelor motive: - Calculele tiinifice pot fi partiionate astfel nct aproape toate operaiile pot fi executate local; - Se obine o mbuntire semnificativ a performanelor dac majoritatea referinelor la memorie sunt efectuate la memoriile locale. 10.2.3. Sisteme Multi-multiprocesoare Odat cu progresele tehnologiei VLSI, a devenit posibil construirea unor calculatoare paralele de dimensiuni mari utiliznd microprocesoare cu performane ridicate. Pentru proiectarea unor asemenea calculatoare, pot fi combinate caracteristicile multiprocesoarelor i multicalculatoarelor, ntr-o arhitectur numit multi-multiprocesor (sau multiprocesor distribuit). Deci, un multi-multiprocesor poate fi considerat un multicalculator n care fiecare nod de procesare este un multiprocesor. Figura 10.4 prezint structura general a unui multi-multiprocesor.
Reea de interconectare

Multiprocesor 1

Multiprocesor 2

Multiprocesor n

Fig. 10.4. Fiecare nod permite ca taskurile cu un grad relativ ridicat de interaciune s fie executate local de ctre un multiprocesor, reducnd astfel timpul necesar comunicaiei. Dac fiecare nod este un multiprocesor, complexitatea programrii paralele a unui multicalculator va fi redus.

10.2.4. Arhitecturi cu flux de date Intr-o arhitectur cu flux de date (dataflow), o instruciune este gata pentru execuie atunci cnd datele care reprezint operanzii instruciunii devin disponibile. Rezultatele instruciunilor executate anterior formeaz operanzii instruciunilor care ateapt s fie executate. Se formeaz astfel un flux de date, care declaneaz execuia instruciunilor. Astfel nu este necesar un contor de program care exist ntr-o arhitectur von Neumann pentru a controla execuia instruciunilor. Instruciunile unui calculator cu flux de date nu adreseaz variabile ntr-o memorie partajat global, ci ele conin valorile variabilelor utilizate. Intr-o arhitectur cu flux de date, execuia instruciunilor nu afecteaz alte instruciuni care sunt gata pentru execuie. Astfel mai multe instruciuni pot fi executate simultan, ceea ce conduce la posibilitatea unor calcule cu un grad ridicat de concuren. Figura 10.5 prezint o schem bloc a unui calculator cu flux de date. Instruciunile, mpreun cu operanzii acestora, sunt pstrate n memoria de instruciuni i date (I&D). Ori de cte ori o instruciune este gata pentru execuie, aceasta este transferat la unul din elementele de procesare (EP) prin reeaua de arbitrare. Fiecare element de procesare este un simplu procesor cu o memorie local limitat. La recepionarea unei instruciuni, elementul de procesare execut operaia cerut i transmite rezultatul la destinaia din memorie prin intermediul reelei de distribuie.
EP

EP EP

I&D I&D Reea de distribuie Date (rezultate) RI RI Reea de arbitrare Instruciuni i date

I&D Memorie de instruciuni i date

Fig. 10.5 Arhitecturile cu flux de date pot fi clasificate n dou grupe: statice i dinamice. Intr-o arhitectur static, o instruciune este validat ori de cte ori toi

operanzii necesari sunt recepionai i o alt instruciune ateapt rezultatul acestei instruciuni; n caz contrar, instruciunea rmne invalidat. Aceast constrngere poate fi impus prin utilizarea semnalelor de achitare. Intr-o arhitectur dinamic, o instruciune este validat ori de cte ori toi operanzii necesari sunt recepionai. In acest caz, pot deveni disponibile mai multe seturi de operanzi ale unei instruciuni n acelai timp. Comparativ cu arhitecturile statice cu flux de date, arhitecturile dinamice permit un grad mai ridicat de paralelism, deoarece o instruciune nu trebuie s atepte dup o alt instruciune nainte de a-i plasa rezultatul. In cazul metodei dinamice trebuie stabilit ns un mecanism pentru a distinge diferitele seturi de operanzi pentru o instruciune. 10.2.5. Procesoare matriciale Un procesor matricial (figura 10.6) const dintr-un set de noduri de procesare (NP) i un procesor scalar, toate funcionnd sub controlul unei uniti de control centralizate. Unitatea de control ncarc instruciunile din memoria principal, le decodific i apoi le transmite fie la procesorul scalar, fie la nodurile de procesare, n funcie de tipul acestora. Dac instruciunea ncrcat este o instruciune vectorial, aceasta este transmis la toate nodurile de procesare. Toate nodurile execut simultan aceeai instruciune asupra datelor diferite pstrate n memoriile lor locale. Astfel, un procesor matricial necesit un singur program pentru a controla toate nodurile de procesare din sistem i nu este necesar duplicarea codului programului la fiecare nod de procesare.
Procesor scalar Instruciuni vectoriale
P1 P2 Pn

Reea de interconectare RI

Instruciuni scalare

M1

M2

Noduri de procesare Date

Mn

Unitate de control

Instruciuni Date

Memorie principal

Fig. 10.6. Un procesor matricial poate fi definit, de exemplu, sub forma unei grile n care fiecare intersecie reprezint un NP, iar liniile dintre intersecii reprezint ci de comunicaie. Fiecare NP din matrice poate transmite (sau recepiona) date la (sau de la) cele patru noduri vecine. Unul dintre procesoare, reprezentnd

unitatea de control, decide operaiile care trebuie executate de fiecare NP n timpul fiecrui ciclu de procesare i transferurile de date necesare ntre nodurile de procesare. Ideea principal a unui procesor matricial este de a se exploata paralelismul existent n setul de date al unei anumite probleme i nu de a se paraleliza secvena de execuie a instruciunilor pentru acea problem. Calculul paralel se realizeaz prin asignarea fiecrui procesor la o partiie a datelor. Dac setul de date este un vector, partiia va fi un element al vectorului. Matricele de procesoare mbuntesc performanele prin operarea simultan asupra tuturor partiiilor de date. Aceste procesoare pot executa eficient operaii aritmetice sau logice asupra vectorilor. De aceea, ele se mai numesc i procesoare vectoriale. 10.2.6. Procesoare vectoriale de tip pipeline Un procesor vectorial de tip pipeline poate prelucra n mod eficient operanzi vectoriali (iruri continue de date). In timp ce procesoarele matriciale sunt controlate de instruciuni, procesoarele vectoriale de tip pipeline sunt controlate de iruri continue de date. Aceasta este diferena principal ntre un procesor matricial sau vectorial i un procesor vectorial de tip pipeline. Figura 10.7 prezint structura de baz a unui procesor vectorial de tip pipeline.
Procesor scalar Instruciuni vectoriale Etaj 1 Etaj 2 Procesor vectorial Etaj n
Unitate de control

Instruciuni scalare

Instruciuni M1 M2 Memorie principal Mn Date

Fig. 10.7 Exist dou procesoare principale: un procesor scalar i un procesor vectorial. Procesorul scalar execut instruciunile scalare, iar procesorul vectorial execut instruciunile vectoriale utiliznd mai multe etaje de prelucrare. Unitatea de control ncarc instruciunile din memoria principal, le decodific i apoi le transmite fie la procesorul scalar, fie la procesorul vectorial realizat sub form de sistem pipeline, n funcie de tipul acestora.

Procesoarele vectoriale de tip pipeline utilizeaz mai multe module de memorie pentru a furniza etajelor de prelucrare un ir continuu de date. Adesea se utilizeaz un compilator cu vectorizare pentru a aranja datele ntr-un ir care poate fi utilizat apoi de cele dou procesoare. 10.2.7. Matrice sistolice Pentru calculele tiinifice, adesea este necesar rezolvarea unor sisteme de ecuaii liniare de dimensiuni mari. De obicei, pentru rezolvarea unor asemenea sisteme de ecuaii se utilizeaz algebra matriceal. Datorit secvenelor lungi ale calculelor aritmetice, majoritatea operaiilor algebrice matriciale sunt executate pe calculatoare digitale cu vitez ridicat utiliznd pachete software dedicate. Un dezavantaj major al execuiei operaiilor algebrice matriciale pe calculatoare generale este timpul de execuie ridicat. De asemenea, n cazul unui calculator general memoria principal nu are o dimensiune suficient pentru a permite plasarea unor matrice foarte mari. Pentru acest motiv sunt necesare numeroase transferuri de I/E, ceea ce crete timpul de execuie. Pentru rezolvarea acestei probleme, au fost introduse arhitecturi speciale. O soluie const n utilizarea unei matrice sistolice (figura 10.8). In cazul acestei arhitecturi, exist un numr mare de elemente de procesare (EP) identice.
EP EP Intrri EP EP EP RI EP EP RI EP EP Ieiri

Fig. 10.8 Fiecare element de procesare are o memorie local redus ca dimensiune i, pentru a nu se limita numrul de elemente de procesare plasate ntr-o matrice, fiecare EP poate fi conectat numai cu elementele de procesare vecine prin reele de interconectare. Deci, elementele de procesare sunt aranjate ntr-o structur de tip pipeline, sub forma unei matrice liniare sau bidimensionale. Intro matrice sistolic elementele de date i rezultatele pariale parcurg elementele de procesare n timpul execuiei, constnd din mai multe cicluri de procesare. In fiecare ciclu de procesare, anumite elemente de procesare execut aceeai operaie relativ simpl (de exemplu, adunare sau nmulire) asupra elementelor de date i transmit aceste elemente sau rezultate pariale la alte elemente de procesare vecine.

De obicei, o matrice sistolic are o form rectangular sau hexagonal, dar poate avea orice form. Utiliznd tehnologia VLSI, este posibil s se obin o putere de calcul foarte ridicat cu un sistem constnd dintr-un numr mare de procesoare identice organizate ntr-o manier structural. 10.2.8. Arhitecturi hibride Arhitecturile hibride cuprind caracteristici ale unor arhitecturi diferite pentru a obine performane mai ridicate ale calculelor paralele. In general, exist dou tipuri de paralelism care se pot utiliza: paralelism de control i paralelism de date. In cazul paralelismului de control, se execut simultan dou sau mai multe operaii de ctre procesoare diferite. Calculatoarele MIMD sunt ideale pentru implementarea paralelismului de control. Acestea sunt adecvate pentru probleme care necesit executarea simultan a unor operaii diferite asupra datelor diferite. In cazul paralelismului de date, se execut aceeai operaie asupra mai multor partiii ale datelor de ctre mai multe procesoare. Calculatoarele SIMD sunt ideale pentru implementarea paralelismului de date. Acestea sunt adecvate pentru probleme n care aceeai operaie poate fi executat simultan asupra unor poriuni diferite ale datelor. Calculatoarele MISD sunt de asemenea potrivite pentru paralelismul de date. Aceste calculatoare permit procesarea vectorilor utiliznd tehnica pipeline. In practic, cele mai mari avantaje se obin prin utilizarea paralelismului de date deoarece, n acest caz, se beneficiaz de pe urma paralelismului n mod proporional cu cantitatea datelor implicate n calcule. Totui, uneori nu este posibil s se exploateze la maxim paralelismul de date, fiind necesar utilizarea att a paralelismului de control ct i a celui de date. De exemplu, n cazul unor programe de aplicaie rezultatele cele mai bune se pot obine atunci cnd aceste programe sunt divizate n mai multe pri care utilizeaz paralelismul de date, iar prile componente utilizeaz paralelismul prin tehnica pipeline. Un grup de procesoare culege datele i execut anumite prelucrri preliminare. Procesoarele transmit apoi rezultatele lor la al doilea grup de procesoare care execut alte calcule asupra rezultatelor. Al doilea grup transmite rezultatele obinute la al treilea grup de procesoare, care obine rezultatele finale. Deci, un calculator paralel care cuprinde att caracteristici ale arhitecturilor MIMD, ct i cele ale SIMD (sau MISD) poate rezolva n mod eficient o gam larg de probleme. 10.2.9. Reele neuronale artificiale Un exemplu de arhitectur special este o reea neuronal artificial. O asemenea reea const dintr-un numr mare de elemente de procesare (EP) care funcioneaz n paralel. Aceste reele pot rezolva ntr-un mod mai eficient unele probleme pentru care arhitecturile von Neumann sunt ineficiente, ca de exemplu emularea informaiilor naturale sau recunoaterea formelor. Arhitecturile bazate pe reele neuronale sunt capabile de nvare i sunt adaptive la schimbrile de mediu.

EP

EP

EP

EP

EP

EP

EP Intrri

EP

EP Ieiri

Fig. 10.9 Figura 10.9 prezint structura general a unei reele neuronale artificiale. Fiecare element de procesare emuleaz unele caracteristici ale neuronului biologic. Acesta are un set de intrri i una sau mai multe ieiri. Fiecrei intrri i se asigneaz o pondere numeric. Aceast pondere corespunde potenialului sinaptic al unui neuron biologic. O sinaps reprezint conexiunea dintre un neuron i un terminal al altui neuron (terminal numit axon). Transmiterea informaiilor de la un neuron la altul are loc prin intermediul sinapselor i axonilor. Intrrile unui element de procesare sunt multiplicate cu ponderile lor i sunt apoi nsumate pentru a determina nivelul de activare al neuronului. Dup determinarea nivelului de activare, se aplic o funcie de activare pentru a produce semnalul de ieire. Ieirile combinate ale unui strat (nivel) precedent devin intrrile urmtorului strat, n care acestea sunt din nou nsumate i evaluate. Acest proces este repetat pn cnd se traverseaz reeaua i se ajunge la o anumit decizie. Spre deosebire de arhitecturile von Neumann, la care elementul primar de calcul este procesorul, n cazul reelelor neuronale artificiale acest element este reprezentat de conexiunile dintre elementele de procesare. Pentru o problem dat, trebuie s se determine valorile corecte ale ponderilor astfel nct reeaua s poat executa prelucrrile necesare. De multe ori, determinarea valorilor corespunztoare ale ponderilor se realizeaz prin ajustarea iterativ a ponderilor cu scopul de a crete performanele reelei. Regula de ajustare a ponderilor este numit regul de nvare, iar ntregul proces de obinere a ponderilor corespunztoare este numit nvare. Toate modelele de reele neuronale artificiale sunt caracterizate prin operarea paralel i interconectarea dens ntre elementele de procesare. In acelai timp, exist diferene majore ntre modelele individuale n ceea ce privete arhitectura lor, regulile de nvare i modul de interaciune cu mediul. O taxonomie general a acestor modele este prezentat n continuare. Distincia cea mai general ntre diferitele modele de reele neuronale artificiale este metoda de nvare. Dac mediul furnizeaz exemplele de nvare sub forma perechilor de vectori de intrare/ieire, metoda de nvare este numit supervizat. Aceast metod este numit i nvare cu un profesor, deoarece

mediul are rolul unui profesor pentru reeaua neuronal, punnd la dispoziie exemple detaliate despre ceea ce trebuie nvat. Dac, din contr, mediul specific intrarea dar nu i ieirea, nvarea este nesupervizat. In acest caz, reeaua neuronal trebuie s descopere soluia la problema de nvare. In cazul nvrii cu ajutor (reinforcement learning), mediul furnizeaz anumite informaii de ieire, dar aceste informaii sunt sub forma evalurii unei performane a reelei neuronale i nu sub forma unor exemple de nvare. Aceast metod este numit i nvare cu un critic, spre deosebire de nvarea cu un profesor, deoarece mediul nu specific ceea ce trebuie nvat, ci numai dac ceea ce se nva este corect. O alt distincie ntre diferite modele de reele neuronale artificiale se bazeaz pe arhitectura acestora. Arhitectura se refer la tipul de prelucrare executat de neuronii artificiali i la interconexiunile dintre acetia. Modelele de reele neuronale artificiale pot fi mprite n dou grupe: deterministe i stohastice. Reelele deterministe produc ntotdeauna acelai rezultat la ieire pentru aceeai intrare, n timp ce la reelele stohastice ieirea pentru o intrare dat poate varia n funcie de o anumit distribuie a probabilitii de ieire. Modelele stohastice sunt de obicei mai dificil de analizat i simulat, dar n acelai timp ele sunt mai realiste n numeroase aplicaii. Adesea, modelele de reele neuronale artificiale sunt simulate prin program. Aceast metod este flexibil, dar este lent. Metoda cea mai eficient pentru implementarea unei reele neuronale artificiale este implementarea prin hardware. In ultimii ani, au fost dezvoltate mai multe circuite pentru reelele neuronale artificiale. In general, sunt disponibile trei tehnologii diferite pentru implementarea prin hardware a unei reele neuronale artificiale: electronic, optic i electro-optic. Tehnologia electronic poate fi mprit la rndul ei n trei tipuri de implementri: analogic, digital i hibrid. O implementare analogic reduce complexitatea circuitului, dar este mai puin precis i, de multe ori, nu permite obinerea unui grad de precizie de 6 bii. Aceasta se datoreaz n principal nivelului redus de precizie al rezistoarelor. O implementare digital asigur o precizie mai ridicat, dar de multe ori necesit un spaiu mai mare n cadrul circuitului integrat. O implementare hibrid conine elemente analogice i digitale pentru a obine avantajele ambelor implementri. Tehnologia optic poate soluiona anumite probleme ale tehnologiei electronice, n special cele legate de conectivitatea ntre neuroni, din cauza ntrzierilor i a spaiului necesar n cadrul circuitului integrat. Prin utilizarea interconexiunilor optice, nu este necesar nici o izolaie ntre traseele semnalelor, deoarece razele de lumin pot trece unele prin altele fr a interaciona ntre ele. De asemenea, traseele semnalelor pot fi realizate tridimensional. In sfrit, ponderile pot fi memorate sub forma unor holograme. Cu toate aceste avantaje, exist numeroase probleme asociate cu tehnologia optic, n special faptul c unele caracteristici fizice ale dispozitivelor optice nu sunt compatibile cu cerinele reelelor neuronale.

Intr-o implementare electro-optic, interconexiunile sunt realizate optic. Deoarece reelele neuronale artificiale sunt puternic interconectate, aceast metod devine o alternativ atractiv de implementare. 10.2.10. Procesoare bazate pe logica fuzzy Un alt exemplu de arhitectur special este reprezentat de un procesor bazat pe logica fuzzy. Logica fuzzy a fost propus de Lofti Zadeh pentru a mbunti utilizarea tehnicilor inteligenei artificiale n anumite domenii cum este recunoaterea vorbirii. In inteligena artificial, logica cu dou valori reprezint semnificaia unei propoziii ca adevrat sau fals, dar nu poate reprezenta o propoziie cu o semnificaie imprecis. In logica fuzzy, o propoziie poate fi adevrat sau fals, sau poate avea o valoare intermediar (de exemplu, foarte adevrat). Logica fuzzy se ocup de principiile formale ale raionamentului aproximativ. Aceast logic ncearc s trateze n mod eficient complexitatea procesului cognitiv uman i elimin unele dezavantaje asociate cu logica clasic binar, care nu reflect n mod corespunztor procesele cognitive umane complexe. 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 limite clare, o msur indicnd gradul de apartenen al unui obiect la o clas. Logica fuzzy a fost aplicat n numeroase domenii, cum sunt controlul proceselor, recunoaterea imaginilor, robotic i sisteme expert. Controlul fuzzy este prima aplicaie industrial a logicii fuzzy. Un controler fuzzy poate controla sisteme care puteau fi controlate anterior numai de ctre operatori experimentai. In Japonia, s-au obinut progrese semnificative n logica fuzzy, iar aceast logic a fost aplicat unei mari varieti de produse, cum sunt sisteme de control al navigaiei pentru automobile, camere video i maini de splat. Dei implementarea prin software a logicii fuzzy asigur rezultate bune pentru unele aplicaii, pentru implementarea aplicaiilor cu performane ridicate sunt necesare procesoare fuzzy dedicate, numite acceleratoare fuzzy.

S-ar putea să vă placă și