You are on page 1of 14

Universitatea tefan cel Mare Suceava

Facultatea de Inginerie Electric i tiinta Calculatoarelor


Specializarea: tiinta i Ingineria Calculatoarelor

PROIECT

Implementarea i testarea jocului SUDOKU pe arhitectura


CELL

Profesor ndrumtor: .l. dr. ing.Tnase Cristian Andy


Student: ing. Robu Andrei
Discriplina: Sisteme de Prelucrare Numeric a Semnalelor

Cuprins:
1.

Necesitatea calcului paralel: ....................................................................................................... 3

2.

Descrierea temei acestui proiect: ............................................................................................... 4

3.

Prezentarea procesorului CELL: ................................................................................................ 6


3.1 Arhitectura procesorului CELL: ............................................................................................... 7
3.2

Power Processor Element (PPE) ....................................................................................... 7

3.3 Synergistic Processing Elements (SPE) ................................................................................ 8


3.4 Element Interconnect Bus (EIB): ............................................................................................. 9
3.5 Controlere de memorie i intrare/ieire: ................................................................................. 9
3.6 Modul de programare al procesorului CELL: ....................................................................... 10
4.Sudoku: ............................................................................................................................................. 11
4.1 Soluii informatice:.................................................................................................................... 12
5.Implementarea jocului Sudoku pe procesorul Cell:.................................................................... 13
6.Bibliografie: ....................................................................................................................................... 14

1. Necesitatea calcului paralel:


Procesarea paralela are un impact deosebit asupra multor domenii ale tiintei.
Folosind imensa putere de calcul a calculatoarelor paralele, acum e posibil tratarea
unor probleme considerate pn nu de mult imposibile de rezolvat cu mijloace de
calcul tradiionale.
Cateva din aplicaiile ce necesit procesare paralel:

modularea climatului global;


modularea n astro-fizic;
modularea cutremurelor de pmnt;
cutarea informaiilor pe web;
proiectarea armelor nucleare;
modelarea fenomenelor macro-economice;

Exist o serie de aspecte foarte importante legate de procesarea


acestea sunt:

paralel, iar

Construierea unor calculatoare paralele eficiente. Scalabilitatea arhitercturilor


paralele este un aspect foarte important n construirea de noi calculatoare
paralele. Asta nseamn c un calculator s poat suporta un numr mare de
procesoare fr o scadere n efiecien a utilizrii acestora. De asemenea
reelele de conectare ntre procesoare trebuie s transfere date la viteze foarte
mari.
Proiectarea unor algoritmi paraleli eficieni. Dac nu am avea la dispoziie
algoritmi efiecieni, calculatoarele paralele singure, nu ar fi de prea mare folos.
Problema proiectri unor algoritmi paraleli eficieni este foarte dificil, iar
aceast dificultate se datoreaz faptului c algoritmi paraleli sunt n mare
msur diferii de cei secveniali.
Calculatoarele paralele se clasific astfel:
SISD (Single Instruction Single Data).
SIMD (Single Instruction Multiple Data).
MISD (Multiple Instruction Single Data).
MIMD (Multiple Instruction Multiple Data).
Procesorul CELL este utilizat pe calculatoare SIMD:
Calculatoarele SIMD mai sunt i denumite arii de procesoare. Ele au o singur
unitate de control care distribuie aceai instruciune ctre toate elementele de
procesare. Fiecare element de procesare va executa aceast instruciune n mod

sincron dar cu date proprii. Din figur se observ c memoria este partajat de toate
elementele de procesare i poate fi alctuit din mai multe module de memorii.

Schema bloc a unui calculator SIMD.

2. Descrierea temei acestui proiect:


Aplicaia i propune s implementeze o tehnic de procesare pipeline a
matricelor mari. Varianta clasica de prelucrare n aceste cazuri, este de a diviza
matricea in 6 submatrici (pentru fiecare SPU) i de a distribui fiecrei uniti de
procesare o submatrice. Aceasta este prelucrat i rescris n memorie. n cazul
sistemelor CELL, transferul DMA se face n blocuri de 2 n octei. Datorit limitrii
dimensiunii memoriei LS (memoria dedicat unui SPU) o submatrice nu poate fi
transferat n ntregime n LS. Astfel, sunt necesare mai multe accese DMA (citiri din
memoria principal prelucrri scrieri n memoria principal) pentru a prelucra n
ntregime ntreaga submatrice de catre un SPU. Avand un numr de 6 SPU-uri atunci
apare, inevitabil, fenomenul de bottleneck. Vor exista momente n care magistrala de
comunicatie (EIB) va fi ocupat i vor fi procesoare SPU care vor atepta mai mult
pentru finalizarea unui ciclu DMA. Din acest motiv, magistrala EIB este alcatuit din 4
inele de comunicaie (dou ntr-un sens i dou n cellalt sens). Dar i aa, apar
timpi mori n procesarea datelor. (Se presupune c prelucrarea const din ase
operaii diferite asupra vectorului)

Figura 1 Varianta clasic de prelucrare.

Pentru a se evita aceast supraaglomerare a magistralei, se propune o


metod de procesare care mbin meotda clasic cu o procesare stil pipeline a
datelor. Adic se mparte matricea principal n trei submatrici (nu ase ca n varianta
clasic), i se trimite cte o submatrice la cte un grup format din dou SPU-uri
adiacente (SPU-urile trebuie alese ca fiind fizic adiacente pentru a minimiza
transferul). Astfel, un grup de dou SPU-uri vor extrage un bloc din submatricea
aferent, primul SPU l va prelucra cu primele trei operaii i apoi va transfera blocul
ctre urmtorul SPU. Acesta termin prelucrarea cu ultimele trei operaii i va scrie
rezultatul napoi n memoria principal. n acest timp, primul SPU extrage urmtorul
bloc i tot aa. Astfel se suprapun timpii de prelucrare (figura 2).
Fa de versiunea original, apare un timp de transfer SPU-SPU n plus.
Acesta poate fi anulat prin folosirea vectorilor de prelucrare dublu-buffer-ai. La fel, se
pot folosi i n versiune original vectori dublu-buffer-ai dar acetia nu pot elimina
ntrzierile datorate blocrilor magistralei.
n prima variant putem avea maxim 6 transferuri simultane pe patru canale
de comunicaie (suprasaturare). n varianta a doua la fel avem 6 transferuri simultane
(adic primul SPU din fiecare grup extrage un boc nou iar al doilea extrage blocul
deja prelucrat de primul). Avantajul este c transferurile nu se suprapun deoarece
calea ntre dou SPU-uri adiacente nu se intersecteaz cu nici o alt cale. Iar
unitatea MFC - Memory Flow Controller poate lucra n paralel (transmisie recepie).
Rezult un maxim de trei transferuri (doar cele de la memoria principal la primul
SPU din grup). Avnd la dispoziie 4 canale de comunicaie, rezult c acesta nu va
fi supraaglomerat. Chiar dac ar exista suprauneri cu transferurile de la primul la al
doilea SPU ele se pot face fr probleme pe canalul patru.

Figura 2 Varianta de prelucrare cu pipeline.

3. Prezentarea procesorului CELL:

Cell este un microprocesor dezvoltat de o alian format din Sony mpreun


cu IBM i Toshiba denumit "STI".
Designul arhitectural i prima punere n aplicare au fost efectuate la STI
Design Center din Austin, Texas, pe o perioad de patru ani ncepnd din martie
2001 cu un buget conform Sony ce se apropie de 400 de milioane de dolari
americani. Cell este prescurtarea de la Cell Broadband Engine Architecture,
prescurtat frecvent CBEA sau Cell BE. Procesorul Cell este format dintr-un nucleu de
procesare de uz general cu arhitectur PowerPC cu performane relativ modeste i
mai multe co-procesoare pentru accelerarea execuiei aplicaiilor de tip multimedia, a
calculelor vectoriale sau a altor tipuri de aplicaii specializate.
Prima aplicaie comercial important Cell a fost ncorporarea lui n consola
de jocuri video PlayStation 3 a celor de la Sony. Toshiba a anunat c are planuri
pentru ncorporarea microprocesorului Cell n televizoare HD, dar se pare c a
abandonat idea. Caracteristici deosebite ca memoriile XDR i interconexiuni coerente
Element Interconnect Bus (EIB)vor fi folosite probabil pentru viitoarele aplicaii la
supercalculatoare.
Cell Broadband Engine a fost conceput ca un microprocesor specializat pentru
aplicaii multimedia, n special pentru jocuri i coninut video n format HD. n afara
utilizrii lui ca microprocesor n PlayStation 3 se poate preta foarte bine i n
procesarea imaginilor digitale n medicin sau n domeniul tiinific sau pentru
simularea comportrii fizice a unor modele virtuale complexe.
Privit din punct de vedere al arhitecturii procesoarelor actuale el este o
combinaie ntre un procesor de uz general(precum Seria I de la Intel sau Athlon 64
de la AMD ) i unul grafic din seria GeForce de la Nvidia sau Radeon de la ATI.
Pn la apariia sa creterile de performan ale unui procesor de uz general
erau obinute prin mrirea frecvenei de funcionare, folosirea unui numr mai mare
de uniti de calcul puse n paralel n interiorul unui nucleu(arhitectur super-scalar)
sau a unei linii de execuie cu mai multe etape (arhitectur super-pipeline). Cu toate
acestea, fr o cretere proporional a vitezei memoriei, aceste abordri au dus
doar la creterea timpilor de acces la memorie. Mai mult, datorit imposibilitii de a
avea unui numr mare de accesri concurente la memorie, nucleele de procesare
complexe ajung s nu foloseasc la maxim linia de execuie (englez:pipeline) i
limea de band maxim a memoriei. Aceste neajunsuri duc la utilizarea deficitar a
spaiului pe pastila de siliciu i o cretere disproporionat a puterii disipate n raport
cu performana general.
Abordarea adoptat de ctre "STI" pentru Cell a fost concentrarea pe
mbuntirea raportului ntre performan i suprafa a raportului ntre performan
i puterea disipat. Aceste obiective sunt n mare parte realizate prin utilizarea unor
6

nuclee puternice dar simple ce folosesc suprafaa pastilei de siliciu mai eficient i cu
o putere disipat mai mic. Susinute de o interconectare cu lime de band mare,
aceste nuclee pot lucra att independent ct i mpreun. Prin suportarea unui
numr mare de accesri simultane de memorie de ctre nuclee, limea de band
disponibil poate fi folosit mai eficient. Aceast filosofie de design este oarecum
similar cu tendinele actuale de a avea mai multe nuclee de uz general n acelai
cip,ns n Cell nucleele sunt mai simple, dar mai multe i specializate pe diferite
tipuri de calcule.
3.1 Arhitectura procesorului CELL:

Schema bloc a procesorului CELL.

Cell Broadband Engine include un nucleu de uz general pe 64 de bii ce


poart numele de POWER Processing Element(PPE) i opt Synergistic Processing
Elements(SPEs) interconectate printr-o magistral de mare vitez numit Element
Interconnect Bus(EIB). Aceast implementare iniial a Cell BE este proiectat pentru
a rula la 3,2GHz.
Unitile SIMD(englez: single instruction-multiple data) din cele opt SPE-uri
furnizeaz majoritatea puterii de calcul a microprocesorului. Cnd se utilizeaz
instruciuni n virgul mobil cu precizie simpl, cele opt entiti SPE din Cell pot
efectua un total de 64 de operaii n virgul mobil pe ciclu de ceas.
Controlerul de memorie integrat ce poart numele de Memory interface
controller(MIC) ofer o lime de band de vrf de 25,6 GB/s ctre o memorie XDR
extern, n timp ce controlerul de intrare/ieire asigur limi de band de vrf de 25
GB/s (pentru intrare) i 35 GB/s (pentru ieire). EIB suport o lime de band
maxim de 204,8 GB/s pentru transferul de date n interiorul cipului ntre PPE, SPEuri, memorie i controlerul de intrare/ieire.
3.2 Power Processor Element (PPE)

PPE const dintr-un POWER Processing Unit (PPU), conectat la un cache L2


de 512KB. PPE este procesorul principal al Cell BE i este responsabil pentru rularea
sistemului de operare i coordonarea SPE-urilor. Obiectivele cheie de proiectare ale
PPE au fost maximizarea raportului performan/putere disipat, precum i a
7

raportului performan/suprafa ocupat. PPU este un procesor cu execuie a


instruciunilor n ordine i suport "dual-threading".

Schema bloc a procesorulului PPE.

Nucleul PPE poate aduce patru i emite dou instruciuni ntr-un ciclu de ceas.
Pentru a mbunti performana pipeline-ului su cu execuie n ordine, PPE
utilizeaz pipeline cu execuie ntrziat i permite execuia limitat de tip "ordine
aleatoare" (englez: out-of-order execution) pentru instruciuni de ncrcare din
memorie. Acest lucru permite PPE s obin unele dintre avantajele execuiei de tip
"ordine aleatoare", fr nici o cretere semnificativ n complexitate.
3.3 Synergistic Processing Elements (SPE)

Schema bloc a procesorului SPE.

SPE este un design modular constnd dintr-un Synergistic Processing


Unit(SPU) i un Memory Flow Controller(MFC). Un SPU este un motor de calcul cu
suport SIMD i 256KB de memorie dedicat local. MFC conine un controler DMA
(Direct memory access) cu un Memory Management Unit(MMU) asociat, precum i o
unitate ce se ocup de operaiunile de sincronizare cu alte uniti SPU i cu PPU.
O unitate SPU dispune de execuie n ordine cu o lime a datelor de intrare
de 128 de bii i cu spaiu de registre pe 128 de bii utilizate att pentru operaiuni n
virgul mobil ct i pe ntregi. SPU opereaz direct pe instruciuni i date din
8

memoria local dedicat, i se bazeaz pe o interfa de canal pentru a accesa


memoria principal, i memoriile locale. Interfaa de canal, se afl n MFC, ruleaz
independent de SPU i este capabil s traduc adrese i s fac transferuri DMA n
timp ce SPU continu cu execuia programului.
Datorit suportului pentru SIMD unitile SPU pot efectua ntr-un singur ciclu
de ceas aisprezece operaii cu ntregi pe 8 bii, opt operaii cu ntregi pe 16 bii,
patru operaii cu ntregi pe 32 de bii, sau patru operaii cu numere n virgul mobil
cu precizie simpl. La 3,2GHz, fiecare SPU este capabil s execute pn la 51,2
miliarde de operaii cu ntregi pe 8 bii sau 25.6 GFLOPs n precizie simpl pe
secund.
3.4 Element Interconnect Bus (EIB):

Element Interconnect Bus(EIB), permite comunicarea ntre PPE, SPE,


memoria RAM, i dispozitivele de intrare/ieire. EIB este format dintr-o magistral de
adrese i patru inele de date cu lime de 16 octei, dintre care dou funcioneaz n
sensul acelor de ceasornic, iar celelalte dou n sensul invers acelor de ceasornic.
Fiecare inel poate permite maxim pn la trei transferuri simultane de date, atta
timp ct cile lor nu se suprapun. EIB funcioneaz la jumtate din viteza
procesorului.

Schema bloc a EIB.

Fiecare unitate din EIB poate trimite i primi simultan 16 octei de date n
fiecare ciclu de magistral. Deoarece fiecare cerere de adres poate transfera pn
la maxim 128 de octei, teoretic limea de band maxim a EIB la 3,2GHz este de
128 octei x 1,6GHz = 204,8GB/s.
3.5 Controlere de memorie i intrare/ieire:

Memory interface controller(MIC) din Cell este conectat la memoria principal


RAMBUS XDR prin dou canale XIO care funcioneaz la o frecven maxim de
3,2GHz. Ambele canale RAMBUS pot avea opt bancuri de memorie concurente i o
dimensiune maxim de 256MB, pentru un total de 512MB.
Exist apte legturi de transmisie i cinci de primire RAMBUS RRAC FlexIO
ce au o lime de 1 octet fiecare. Aceste legturi pot fi configurate ca dou interfee
logice. Cu ajutorul legturilor FlexIO ce funcioneaz la 5GHz, interfaa de
intrare/ieire asigur o lime de band brut de 35GB/s pentru ieire i 25GB/s
9

pentru intrare. O configuraie tipic poate avea o interfa de intrare/ieire configurat


cu limi de band brute de 30GB/s pentru ieire i 20GB/s pentru intrare, i cealalt
interfa de intrare/ieire cu limi de band brute de 5GB/s la ieire i 5GB/s la
intrare.
3.6 Modul de programare al procesorului CELL:

Modul de baza prin care se programeaza procesorul CELL.

Cea mai cunoscut utilizare a microprocesorului Cell este n consola de jocuri


video PlayStation 3. Lansat pe 11 noiembrie 2006 n Japonia, consola celor de la
Sony s-a lovit n prima parte a existenei sale de probleme cu portarea de pe alte
platforme a jocurilor sau cu dezvoltarea exclusiv a acestora pentru PlayStation 3
datorit modului complicat de programare a procesorului Cell. La nceput,
programatorii au ntmpinat dificulti n programarea i optimizarea pentru folosirea
la maxim a resurselor disponibile n dezvoltarea de jocuri. Aceasta a fost i principala
critic adus procesorului, ns n prezent aceste probleme au fost depite i unele
jocuri video dezvoltate exclusiv pentru PlayStation 3 au impresionat print calitatea
efectelor vizuale i a simulrii fizicii.
Probleme abordate n programarea paralel:
Existena unor matrici de evaluare a performaelor algoritmilor paraleli.
Problemele la care trebuie s raspund aceste metode de evaluare sunt de
genul: ct de rapid poate fi rezolvat o problem cu un calculator paralel, ct
de eficient sunt utilizate procesoarelele calculatorului, care e dimensiunea
maxim a problemei care poate fi rezolvat ntr-un anumit interval de timp dat,
cum trebuie s varieze dimensiunea problemei fa de numrul de procesoare
astfel nct s se pstreze o anumit valoare a eficienei utilizri
procesoarelor.
Limbaje de procesare paralel: algoritmii paraleli sunt implementai cu ajutorul
unor limbaje pentru programarea paralela. Acestea trebuie sa fie flexibile i
uor de utilizat.
10

Intrumentele pentru programarea paralel: pentru dezvoltarea programelor


complexe este nevoie de existena unor medii de programare, precum i de
instrumente cum ar fi depanatoarele, profilele, simulatoarele, etc. D un
feedback al resurselor folosite, se poate face o comparaie a dou programe,
face profilul aplicaiei (timp,resurse,energie).
Realizarea unor programe portabile. Portabilitatea a fost un impediment major
n rspndirea calculului paralel. De obicei, un program scris pentru un tip de
calculator trebuie modificat substanial pentru a putea fi scris pe un alt tip de
calculator. O dat cu apariia unor biblioteci, precum MPI (Message Phase
Interface) sau PVM (Paralel Virtual Machine), programele paralele devin
portabile astfel nct ele pot fi rulate fr modificri pe cele mai diverse tipuri
de calculatoare, de la clustere de staii de lucru pn la calculatoare masiv
paralele.
Modul n care se execut thread-urile este urmtorul: run thread,wait
thread,kill thread.
4.Sudoku:
Sudoku, din japonez , s, cifr, i , doku, unic, este un joc n form de
gril inventat n 1979 i inspirat de ptratul latin i de problema celor 36 ofieri a lui
Leonhard Euler. Scopul jocului este de a umple aceast gril cu cifrele de la 1 la 9
respectnd anumite condiii, cu unele cifre fiind de la nceput dispuse n gril.

Grila de joc Sudoku.

Grila jocului este un ptrat de nou pe nou csue, subdivizat n tot attea
ptrate identice, numite regiuni (vedei figura). Regula jocului este simpl: fiecare
rnd, coloan sau regiune nu trebuie s conin dect o dat cifrele de la unu la

11

nou. Formulat altfel, fiecare ansamblu trebuie s conin cifrele de la unu la nou o
singur dat.
Interesul jocului consist n simplitatea regulilor sale i n complexitatea
soluiilor sale. Grilele publicate au de obicei un nivel de dificultate indicat, iar editorul
are posibilitatea s indice i un timp de rezovare probabil. Cu toate c, n general,
grilele ce conin mai multe cifre completate sunt mai uoare, inversul nu este n
totdeauna adevrat. Dificultatea veritabil a jocului rmne totui n a gsi suita
exact a cifrelor rmase.
Acest joc a inspirat deja mai multe versiuni electronice care aduc un interes
diferit rezolvrii grilelor Sudoku. Forma sa de tip gril i folosirea lui ntr-un scop ludic
l aduc mai aproape de alte jocuri publicate n ziare, cum ar fi careurile i problemele
de ah.
Profesorii recomand practicarea jocului Sudoku ca antrenament pentru gndirea
logic. Nivelul de dificultate poate n acest caz s fie adaptat publicului.

4.1 Soluii informatice:

Pentru un informatician, a programa cutarea unei soluii prin intermediul


contingenelor sau multiplelor contingene (aa cum se cere pentru problemele cele
mai dificile) este o sarcin relativ simpl. Un astfel program imit un juctor uman
care caut o soluie fr s caute la ntmplare.
Este de asemenea relativ simplu conceperea unui algoritm de cutare prin
backtracking. De obicei, este suficient ca algoritmul s aleag 1 pentru prima celul,
apoi 2 pentru urmtoarea, atta timp ct nu apare nici o contradicie. Cnd apare o
astfel de contradicie, algoritmul ncearc o alt valoare pentru csua care duce la
contradicie. O dat epuizate toate posibilitile pentru aceast csu, algoritmul
"revine" i rencepe cu penultima celul.
Chiar dac acest algoritm nu este foarte eficace, el va gsi o soluie dac
dispune de suficient timp. O gril de 99 este de obicei rezolvat n mai puin de trei
secunde de un computer modern care are acces la un interpretor, i n mai puin timp
cu un limbaj compilat.
Un program mai eficace se va baza pe cifre candidate poteniale pentru
fiecare csu, eliminnd cifrele candidat imposibile pn cnd rmne o singur
cifr. Cunoscnd aceast cifr, algoritmul poate gsi o alt cifr pentru o alt csu,
i tot aa. O alternativ la backtracking este aceea de a recurge la metodele
preconizate de programarea logic, aa cum este implementat de Prolog i de
Scheme. n acest caz, se furnizeaz programului constrngerile grilei (o cifr pe
rnd, pe coloan i pe regiune; cifrele descoperite); acest program va lua singur
deciziile pentru rezolvarea problema. tiind c majoritatea grilelor au o soluie unic,
cutarea va avea cu siguran succes. Donald Knuth a pus la punct un algoritm care
face apel la listele dublu nlnuite, i care se pare c este foarte eficace pentru
rezolvarea acestui tip de problem. S-a demonstrat c acest algoritm este indicat
12

pentru rezolvarea unui Sudoku, durnd doar cteva milisecunde. Datorit vitezei
sale, este acum preferat de majoritatea programatorilor.
5.Implementarea jocului Sudoku pe procesorul Cell:

13

6.Bibliografie:
1. Wikipedia - http://en.wikipedia.org/wiki/Cell_(microprocessor) ;
2. Sudoku - http://ro.wikipedia.org/wiki/Sudoku
3. Cursuri Arhitecturi Paralele (Calculatoare an IV) profesor: .l. dr. ing.Tnase
Cristian Andy;

4. Laboratoare Procesare Paralel;


5. Laboratoare Sisteme de Prelucrare Numeric a Semnalelor;
6. https://www.kernel.org/pub/linux/kernel/people/geoff/cell/ps3-linux
docs/CellProgrammingTutorial/BasicsOfCellArchitecture.html ;
7. https://www.research.ibm.com/cell/SPU.html .

14

You might also like