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, un
singur ir de instruciuni 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 adecvat procesoarele vectoriale i arhitecturile hibride. Pentru a rezolva aceast problem, au fost propuse
mai multe taxonomii.
SISD

Arhitecturi von Neuman


Multiprocesoare

MIMD
Arhitecturi de
calculatoare

Multicalculatoare
Multi-multiprocesoare
Calculatoare cu flux de date

SIMD
MISD

Procesoare matriciale
Procesoare vectoriale pipeline
Matrici sistolice

Hibride
Speciale

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 (RI)

M1

M2

Mm

Module de
memorie

Fig. 10.2.
In general, un multiprocesor const din n procesoare i m module de
memorie. Procesoarele sunt notate cu P1 , 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 multimultiprocesor.
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

I&D
Memorie de instruciuni i date

Fig. 10.5

Reea de
arbitrare
Instruciuni
i date

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

Reea de interconectare RI

Instruciuni
scalare

Instruciuni
vectoriale
P1

P2

M1

M2

Pn

Noduri
de procesare

Mn

Date
Memorie principal

Unitate
de
control

Instruciuni

Date

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

Instruciuni
scalare

Etaj n

Etaj 2

Unitate
de
control

Procesor vectorial

Instruciuni
M1

M2

Mn

Date

Memorie principal

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

EP

EP
RI

EP

RI

EP
Ieiri

Intrri
EP

EP

EP

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, prin reele de interconectare, numai cu elementele de procesare vecine. 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.

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
Pentru a obine performane mai ridicate ale calculelor paralele, se utilizeaz arhitecturi hibride, care cuprind caracteristici ale unor arhitecturi diferite.
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

EP

EP
Ieiri

Intrri

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. Cu scopul de a crete performanele reelei, determinarea valorilor corespunztoare ale ponderilor se realizeaz prin
ajustarea iterativ a acestora. 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.
Intr-o alt metode de nvare, numit nvare 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