You are on page 1of 21

UNIVERZITET U BIHAU

TEHNIKI FAKULTET
Elektrotehniki odsjek
Informatika

Seminarski rad iz predmeta:


Arhitektura raunara

Cell procesor

(Cell Broadband Engine Architecture)

Studenti: Br. Indexa:


Igor Pra 173
Aladin Halilagi 177
Sadraj
Sadraj ................................................................................................................................. 1
Uvod ..................................................................................................................................... 2
Moor-ov zakon................................................................................................................... 2
Arhitektura Cell procesora ................................................................................................. 3
PPE (Power Processing Element) ..................................................................................... 5
SPE (Synergistic Processing Element) .............................................................................. 6
SPU (Synergistic Processing Unit)................................................................................. 7
SPU Pipeline ................................................................................................................. 8
Lokalna memorija (Local Store) ..................................................................................... 9
MFC (Memory Flow Controller).....................................................................................10
EIB (Element Interconnect Bus)........................................................................................12
Ulazno/izlazno suelje FlexIO........................................................................................13
MIC (Memory Interface Controller) ...................................................................................14
Programiranje Cell procesora ...........................................................................................15
Pervasively Data Parallel Computing................................................................................15
Data-parallel conditional execution ...................................................................................16
Aplikacije za Cell procesor................................................................................................17
Zakljuak.............................................................................................................................19
Literatura.............................................................................................................................20

1
Uvod
Glavno podruje razvoja novih procesora je orjentirano na kompatibilnost i
kontinuiranost. Stoga je trite procesora dominirano sa x86 kompatibilnim procesorima ve
gotovo dva desetljea. Nekoliko novih koncepata je pokualo stei neki udio u tritu, ali nisu
bili u stanju prevladati stari koncept kompatibilnosti.
Cell procesor je novi pokuaj u iskoritavanju rastueg broja tranzistora po ipu na
efikasan nain. Novi procesor je namijenjen za trite igraih konzola i potroake
elektronike radi poveanja kvalitete ovih proizvoda. Ovaj pristup vodi do irenja i ako svatko
ima dva ili vie cell procesora u televizoru, igraoj konzoli ili PDA, pojavljuje se interesantno
pitanje: ta je mogue uraditi sa ovim procesorom?
Razvoj procesora je poeo 2000. godine, kada su tri kompanije Sony, Toshiba i IBM
osnovale istraivaku grupu sa ciljem razvoja novog procesora koji bi odgovarao zahtjevima
multimedijalnih aplikacija. Sony je imao iskustvo u dizajniranju procesora i programiranju
kroz razvoj Play Station 1 i 2 igraih konzola. Njihova vizija je bila postii da Play Station 3
(PS3) bude bri 100 puta od prethodnika PS2. Toshiba je nudila iskustvo u podruju razvoja i
proizvodnje u velikim koliinama. IBM predstavlja tradicionalnog proizvoaa i dizajnera
procesora, pogotovo u 90nm SOI tehnologiji sa bakarnim oienjem.
Sve tri kompanije su imale budue planove za koritenje ove nove tehnologije, Sony je
elio ugraditi Cell u PS3, Toshiba u HDTV ureaje i IBM u servere i radne stanice. Njihov cilj
je bio napraviti vienamjenski procesor sa visokim taktom i visokom propusnou. Postojalo
je vie razloga da se ne izabere klasian x86 nego potpuno novi dizajn. Memorijska latencija
je prilino visoka u tradicionalnom x86 dizajnu, zbog postojanja von Neumann-ovog uskog
grla izmeu procesora i memorije. Druga negativna injenica je poveana instrukcijska
latencija zbog kompleksne logike za rasporeivanje instrukcija pri izvravanju van reda (out
of order execution) i sloja kompatibilnosti koji prevodi ISA CISC (x86) instrukcije u RISC
instrukcije unutar same jezgre. Ke memorijska hijerarhija zauzima mnogo prostora na ipu
te je teka za kontrolu programerima. Sve navedene osobine modernih procesora vode do
relativno dugog kontrolnog logikog puta koji ograniava maksimalni takt koji se moe
postii.

Moor-ov zakon
Moor-ov zakon tvrdi da se broj tranzistora na ipu udvostrui svaki 18 mjeseci. Time se
postavlja pitanje, ta uraditi sa svim tim novim tranzistorima? Mogu li oni uiniti brim
procesor? Odgovor je ne, oni ga mogu uiniti irim. Mnogi proizvoai procesora pokuavaju
poboljati brzinu procesora radei posao paralelno, praktino izvoei vie procesorskih
instrukcija paralelno. Ali pri tome se pojavljuju zavisnosti u podacima koje onemoguuju
ovakav rad. Ako procesorska instrukcija obrauje podatak koji prethodna instrukcija daje kao
izlaz one se nemogu izvravati paralelno. Postoji vie trikova za pronalaenje vie
paralelizma u kodu, kao to je super-skalarno izvoenje van reda koji veinom koristi
Tomasulo-vu emu ili spekulativno izvravanje. Ali sve ove eme uvode veu sloenost u
kod i poveavaju kritini put. Time se ograniava frekvencija takta (jer se najdui put mora
nanovo uitavati svakog ciklusa) i poveava latencija instrukcija. Pipeline pomae
maskirajui instrukcijsku latenciju i poveavajui ciklus sata dijelei kritini put u vie dijelova,
ali uvodi probleme zastoja, pranjenja i ponovnog punjenja. Svi ovi problemi su dobro
poznati dananjim arhitektima procesora i vode do efekta da dvostruki broj tranzistora daje
samo 1,4 puta bolju preformansu. To je efektivno veliko rasipanje tranzistora svake godine.
Novi koncepti viejezgrenih procesora su uvedeni da bi odgovorili na to pitanje i dajui
zadatak programeru u paralelizaciji koda.

2
Arhitektura Cell procesora
Arhitektura Cell procesora je patentirana od strane Ken Kuturagi-ja iz kompanije Sony
1999. godine. On je napravio razliku izmeu softverske i hardverske elije (cell). Softverska
elija je program sa pridruenim podacima, a hardverska elija je izvrna jedinica sa
mogunosti izvravanja softverske elije. U osnovnom dizajnu on nije utvrdio nikakvu fiksnu
arhitekturu, softverske elije mogu slobodno plutati okolo i biti obraene na bilo kojoj
dostupnoj hardverskoj eliji. Vie ovakvih hardverskih elija mogu stvoriti vei elijski raunar
(sam po sebi). Naravno ovo je samo arhitektonska vizija, procesori u realnom svijetu su
vezani za jedan ip i plutajue elije su jo uvijek samo fikcija.
Osnovni princip Cell procesora je isti, te se on sastoji od:
PPE (PowerPC Processing Element) koji se ponaa kao glavni procesor za
rasporeivanje zadataka (softverskih elija),
MFC (Memory Flow Controler) koji slui kao suelje izmeu izvrnih i
memorijskih jedinica,
Vie SPE (Synergistic Processing Elements), koji su hardverske elije sa
vlastitom memorijom, i
EIB (Element Interconect Bus) preko koje su svi elementi povezani u jedinstven
sistem.

Slika 1. Blok dijagram Cell procesora.


Iz ovoga se moe zakljuiti da je Cell procesor kombinacija PowerPC procesora sa 8
malih vektorskih procesora (koprocesora). Sve ove jedinice su povezane preko EIB (Element
Interconect Bus) sabirnice i komuniciraju sa vanjskim ureajima ili drugim procesorom preko
FlexIO suelja. Ovaj procesor nudi 256 GFlop operacija sa pominim zarezom jednostruke
preciznosti.
U nastavku rada e biti opisane svaka od komponenti posebno, sa posebnim osvrtom
na SPE jedinicu jer ona prestavlja glavnu osobinu ovog Cell procesora.

3
Slika 2. Detaljniji prikaz unutranje organizacije Cell procesora.
Prototip je proizveden sa 90nm SOI tehnologijom i 8-slojnim bakrenim oienjem.
Sastoji se od 241 miliona tranzistora na ipu povrine 235 mm i troi 60-80 W. Radni takt
procesora je 4 GHz pri naponu od 1,1V. IBM virtualizacijska tehnologija je ukljuena u PPE.

Slika 3. Fotografija prototipa Cell procesora sa naznaenim dijelovima.

4
PPE (Power Processing Element)
PPE je dvo-nitni 64-bitni RISC procesor opte namjene koji odgovara specifikacijama
PowerPC arhitekture verzija 2.02, sa Vector/SIMD Multimedijalnim Ekstenzijama (VMX), koje
su usporedive sa SSE ekstenzijama kod x86 procesora. Njegova arhitektura je veoma
jednostavna da bi omoguavala visok radni takt. Stoga, on koristi samo izvoenje u redu sa
dubokim super skalarnim dvosmjernim pipelinom koji ima vie od 20 stepeni. Programi pisani
za PowerPC 970 procesor se mogu izvoditi bez modifikacije na Cell procesoru.
PPE se sastoji od dvije glavne jedinice, PPU (Power Processor Unit) i PPSS (Power
Processor Storage Subsystem), kao to je prikazano na slici. PPE je odgovoran za
cjelokupnu kontrolu sistema. On izvrava operativni sistem za sve aplikacije koje rade na
Cell procesoru.

Slika 4. Osnovni blok dijagram PPE jedinice.


PPU jedinica vri kontrolu i izvravanje instrukcija. Ona ukljuuje cijeli set 64-bitnih
registara PowerPC procesora, 32 128-bitna vektorska registra, 32 KB instrukcijski ke prvog
nivoa i 32 kB podatkovni ke prvog nivoa, jedinicu instrukcijske kontrole, load-store jedinicu,
jedinicu za cjelobrojno raunanje, jedinicu za raunanje sa pominim zarezom, vektorsku
jedinicu, jednicu sa predvianje grananja te jedinicu za kontrolu virtuelne memorije.
PPU podrava istovremeno izvravanje dvije niti i moe se posmatrati kao dvo ulazni
multiprocesor sa dijeljenim tokom podataka. Na ovaj nain softver ga vidi kao dvije
nezavisne procesorske jedinice. Stanje svake niti je duplicirano, ukljuujui sve
arhitekturalne registre i registre specijalne namjene osim onih koji se odnose na resurse na
nivou sistema, kao to su logike particije, memorija i kontrola niti. Ostali resursi, kao to su
ke i redovi za ekanje, dijele obje niti, osim u sluaju kada je resurs mali ili nudi kritino
poboljanje performansi u vienitnim aplikacijama.
PPSS kontrolira pristup memoriji od strane PPE i sve vanjske zahtjeve prema PPE-u od
drugih procesora ili I/O ureaja. On ukljuuje jedinstveni 512 KB ke za instrukcije i podatke
drugog nivoa, razne vrste redova za ekanje, i jedinicu za pristup sabirnici (BIU) koja vri
upravljanje sabirnicom te pristup EIB sabirnici.
PPE posmatra glavnu memorija kao linearni niz bajtova indeksiranih od 0 do 2 64 1 .
Svaki bajt je odreen svojim indeksom koji se zove adresa. Ke drugog nivoa i keevi za
prijevode adresa koriste tabele za izmjenu koje omoguavaju softveru kontrolu nad
koritenjem ke memorije. Ova kontrola je posebno korisna u real-time programiranju.

5
SPE (Synergistic Processing Element)
SPE je potpuni vektorski CPU sa vlastitom radnom memorijom. Njegova ISA nije
kompatibilna sa VMX-om i ima fiksnu duinu od 32 bita. Trenutni SPE ima oko 21 miliona
tranzistora, gde 2/3 njih ini SRAM lokalnu memoriju. Procesor nema predvianje skoka ili
logiku rasporeivanja instrukcija oslanjajui se na programera i kompajler u pronalaenju
paralelizma u kodu. Kao i kod PPE, koristi dva nezavisna pipeline-a i izvrava dvije
instrukcije po ciklusu, jednu SIMD operaciju raunanja i jednu operaciju pristupa memoriji.
Sve se instrukcije izvravaju striktno u redosljedu i svaka instrukcija radi sa 128-bitnim
vezanim podatkovnim elementima. etiri jedinice za raunanje sa pominim zarezom
jednostruke preciznosti i etiri cjelobrojne jedinice nude propusnost od 32 GOps (giga
operacija u sekundi) pojedinano. Jedinice za raunanje sa pominim zarezom jednostruke
preciznosti nisu kompatibline sa IEEE754 standardom u terminima zaokruivanja i
specijalnih vrijednosti. One se takoer mogu koristiti za izraunavanje operacija sa pominim
zarezom dvostruke preciznosti koje su kompatibilne sa IEEE754 standardom, ali je njihovo
izraunavanje relativno sporo (3-4 GOps).

Slika 5. Blok dijagram arhitekture SPE jedinice.


Shema arhitekture jednog SPE je prikazana na slici. Memorijska organizacija unutar
SPE je takoer dosta specifina, svaki SPE ima vlastitu 256 kB lokalnu memoriju (Local
Storage). Ovoj SRAM memoriji mogue je pristupiti veoma brzo preko 128-bitnih linija.
Dodatno, svaki SPE posjeduje veliki skup registara ope namjene, tanije 128 128-bitnih
registara koji mogu pohraniti sve dostupne tipove podataka. Za lokalnu memoriju ne postoji
ke, podrka za virtuelnu memoriju i koherencije. Podaci se mogu premjetati pomou DMA
pristupa u i iz glavne memorije preko EIB sabirnice, pri emu se MFC ponaa kao MMU te
daje podrku za virtuelnu memoriju pri pristupu glavnoj memoriji.
Namjena SPE-a je da popuni prazninu izmeu procesora opte namjene i
specijaliziranog hardvera. Procesori opte namjene imaju cilj da postignu najbolju srednju
performansu za iroki spektar aplikacija. Specijaliziran hardver tei da ostvari najbolje
performanse za jednu aplikaciju. SPE naprotiv tei da postigne vodee performanse na

6
kritinim radnim optereenjima u igrama, obradi medija i raunarski zahtjevnim sistemima.
Namjena SPE-ova i CBE arhitekture je davanje velikog nivoa kontrole ekspertnim (real-time)
programerima pritom zadravajui jednostavnost samog programiranja.

SPU (Synergistic Processing Unit)


SPU arhitektura je bazirana na principu Pervasively Data Parallel Comuting (PDPC), iji
je cilj da stvori i iskoristi iroke puteve podataka kroz sistem. Procesor tada izvrava zajedno
skalarne i podatkovno paralelne SIMD operacije na ovim irokim podatkovnim putevima,
eliminirajui premaaj zbog dodatnih jedinica za izdavanje naredbi, odvojenih pipeline-a te
kompleksnosti kontrole dodatnih skalarnih jedinica. Procesor takoer koristi ove iroke
puteve podataka da pribavi instrukcije iz memorije do izvrnih jedinica.
Kao dodatak poboljanju efikasnosti mnogih vektorskih transformacija, ovaj pristup
reducira podruje i premaaj koje namee skalarno procesiranje. Svako smanjenje
kompleksnosti se direktno prenosi u poveanje performansi jer omoguava smjetanje
dodatnih procesorskih jezgri na dato podruje.
Za programe sa skromnim koliinama paralelizma na nivou podataka, davanje podrke
za paralelne operacije nad podacima prue veliku prednost u odnosu na prevoenje
paralelizma na nivou podataka u paralelizam na nivou instrukcija. Procesori koji nude
kompatibilnost u nazad koriste zadnje navedeni pristup, koji zahtjeva obradu i praenje
poveanog broja instrukcija i obino donosi znaajne kazne, jer se paralelizam mora ponovo
otkriti u instrukcijama koritenjem kontrolne logike koja zauzima veliko podruje i poveava
potronju.

Slika 6. Blok dijagram elemenata SPU jedinice.

7
SPU implementira novu ISA (Instruction Set Architecture). Glavne karakteristike ove
arhitekture su:
Load-store arhitektura sa sekvencijalnom semantikom i upotrebom seta od 128
registara od kojih je svaki 128-bitni.
SIMD (single-instruction multiple-data) sposobnost:
esnaest 8-bitnih registara,
Osam 16-bitnih registara,
etiri 32-bitna registra ili etiri vrijednosti sa pominim zarezom jednostruke
preciznosti,
Dvije vrijednosti sa pominim zarezom dvostruke preciznosti.
SPU load-store instrukcije pristupaju samo registrima u lokalnoj memoriji.
Pristup vanjskim podacima vri se preko vie kanala koje kontrolie MFC.
SPU posjeduje slijedea ogranienja:
Nema direktnog pristupa glavnoj memoriji (pristup se vri samo preko MFC-a).
Nepostojanje razlike izmeu korisnikog i privilegovanog moda.
Nema pristupa kritinoj sistemskoj kontroli kao to su unosi u tabelu stranica.
Nema sinhronizacijskih operacija za dijeljeni pristup lokalnoj memoriji.

SPU Pipeline
SPU posjeduje dva pipeline-a imenovana parni (even) i neparni (odd), u koje moe
izdati i izvriti dvije instrukcije po ciklusu, po jednu u svakom pipeline-u. Da li e instrukcija
biti poslana na parni ili neparni pipeline zavisi od tipa instrukcije, koji je vezan za izvrnu
jedinicu koja obavlja traenu funkciju. Svaka izvrna jedinica je dodjeljena jednom od
pipeline-a. U slijedeoj tabeli su prikazani instrukcijski tipovi, latencije i odreeni pipeline.
Klasa
Opis Latencija Pipeline
instrukcija
LS Load and store 6 Odd
HB Branch hints 15 Odd
BR Branch resolution 4 Odd
CH Channel interface, special-purpose registers 6 Odd
SP Single-precision floating-point 6 Even
DP Duble-precision floating-point 13 Even
FI Floating-ponit integer 7 Even
SH Shuffle 4 Odd
FX Simple fixed-point 2 Even
WS Word rotate and shift 4 Even
BO Byte operations 4 Even
NOP No operation (execute) - Even
LNOP No operation (load) - Odd
Tabela 1.
SPU izdaje sve instrukcije na osnovu reda u programu prema odreenom pipeline-u.
Svaka instrukcija je dio para instrukcija u formatu duple rijei koja se zove fletch grupa. Ova
grupa moe imati jednu ili dvije validne instrukcije, ali mora biti poravnata prema granicama
duple rijei. Ovo znai da se prva instrukcija u grupi nalazi na neparnoj adresi rijei, dok se
druga instrukcija nalazi na parnoj adresi rijei.
SPU generie fletch grupe jednu za drugom, nastavljajui do slijedee grupe kada
trenutna instrukcijska grupa postane prazna. Instrukcija postaje izvodljiva kada se zadovolje
registarske zavisnosti i ne postoje strukturalni hazardi sa prethodnim instrukcijama ili DMA i
ECC aktivnostima.

8
Dvostruko izvravanje se deava kada fletch grupa ima dvije izvodljive instrukcije od
kojih prva instrukcija moe biti izvrena na parnom pipeline-u, a druga instrukcija izvrena na
neparnom pipeline-u. Ako je nemogue izvriti obje instrukcije, ali je mogue izvriti prvu
instrukciju, ona se alje odgovarajuem pipeline-u, a druga instrukcija se zadrava dok ne
bude u mogunosti da se izvri. Nova fletch grupa se uitava nakon to se izvre obje
instrukcije trenutne fletch grupe.

Slika 6. Mikroarhitektura pipeline-a SPU jedinice.

Lokalna memorija (Local Store)


Lokalna memorija se moe posmatrati kao softverski kontrolirani ke koji se puni i prazni
pomou DMA transfera. Glavne karakteristike lokalne memorije ukljuuju:
U njoj se nalaze instrukcije i podaci,
Propusnost od 16 bajtova po ciklusu load i store instrukcija,
Propusnost DMA transfera od 128 bajtova po ciklusu,
Ulazno uitavanje instrukcija od 128 bajtova po ciklusu.
Kada se javi nadmetanje za pristup lokalnoj memoriji od strane operacija itanja,
pisanja, DMA itanja, DMA pisanja i pribavljanja instrukcija, SPU jedinica odreuje pristup
prema sljedeim prioritetima:
1. DMA itanja i pisanja od strane PPE ili I/O ureaja,
2. SPU itanja i pisanja,
3. uitavanje instrukcija.
DMA itanja i pisanja uvijek imaju najvei prioritet. Zbog podrke u hardveru operacije
128-bitnog DMA transfera oduzimaju, najvie, jedan u osam ciklusa pristupa lokalnoj
memoriji. Stoga, osim za visoko optimizirane kodove, utjecaj DMA transfera na dostupnost
lokalne memorije za ostale operacije se moe zanemariti.

9
Nakon DMA transfera, sljedee operacije po visini prioriteta su operacije itanja i pisanja
lokalne memorije. Razlog za ovo je injenica da te instrukcije obino pomau napretku
programa, dok su operacije pribavljanja instrukcija obino spekulativne. SPU podrava samo
16-bajtne operacije itanja i pisanja koje su poravnate. Za postavljanje bajtova u drugaiji
redosljed SPU koristi drugu instrukciju (byte shuffle).
Najnii prioritet pristupa lokalnoj memoriji dat je operacijama pribavljanju instrukcija,
kojih postoje tri tipa:
flush-initiated fetches,
inline prefetches, i
hint fetches.
Operacije pribavljanja instrukcija vre uitavanje 32 instrukcije po zahtjevu SPU-a
pristupajui svim stranicama lokalne memorije istovremeno.

MFC (Memory Flow Controller)


U CBE arhitekturi MFC slui kao suelje prema sistemu i drugim elementima za
pojedinu SPU jedinicu. On prua primarni mehanizam za prijenos podataka, zatitu i
sinhronizaciju izmeu glavne memorije i lokalne memorije pojedine jedinice.

Slika 7. Blok dijagram elemenata MFC jedinice.


MFC posjeduje dva suelja prema SPU, dva suelja prema BIU jedinici (Bus Interface
Unit) i dva suelja prema opcionalnom DMA keu prvog nivoa (SL1). Suelja prema SPU su
SPU kanalno suelje i suelje prema lokalnoj memoriji SPU-a. SPU kanalno suelje
omoguava pristup SPU jedinice mogunostima MFC-a i izdavanje MFC naredbi. MFC
koristi suelje prema lokalnoj memoriji za pristup sadraju lokalne memorije. Jedno suelje
prema BIU omoguava memorijski mapiranim I/O ureajima (MMIO) pristup MFC-u. Ovo
suelje takoer omoguava drugim procesorima izdavanje MFC naredbi. Naredbe izdane

10
koritenjem MMIO se zovu MFC proxy naredbe. Drugo suelje prema BIU prenosi realne
adrese.
Suelje prema SL1 keu se koristi uglavnom za prijenos podataka. MFC koristi jedno
suelje za pristup tablicama za prijevod adresa u glavnoj memoriji. Drugo suelje ka SL1
keu prenosi podatke izmeu lokalne i glavne memorije.
MFC jedinica se sastoji od sljedeih glavnih jedinica:
MMIO suelje,
MFC registri,
DMA kontroler.
MMIO suelje mapira MFC mogunosti pojedinog SPU-a u realni adresni prostor
sistema. Ovo omoguava pristup MFC-u sa bilo kojeg procesora ili ureaja na sistemu. Kao
dodatak, MMIO suelje se moe podesiti da mapira lokalnu memoriju SPU-a u realni adresni
prostor. Time je omoguen direktni pristup lokalnoj memoriji sa bilo kojeg procesora ili
ureaja na sistemu i mogunost prijenosa podataka izmeu dvije lokalne memorije, odnosno,
direktni pristup domeni lokalne memorije svakom I/O ureaju.
Sinhronizacija i prijenos podataka su glavna odgovornost DMA kontrolera unutar MFC
jedinice. DMA kontroler moe prenositi podatke izmeu lokalne memorije SPU jedinice i
glavne memorije. Opcionalno podaci mogu biti keirani u SL1. SPE i PPE jedinice nareuju
MFC-u izvoenje ovih DMA operacija izdavanjem DMA komandi za MFC preko jednog od
redova za ekanje:
Naredbe poslane od SPE-ova se alju na MFC SPU red ekanja.
Naredbe poslane od PPE se alju na MFC proxy red ekanja.
MFC koristi MMU (Memory Management Unit) za izvoenje svih MFC adresnih
prevoenja i provjera pristupnih prava potrebnih prilikom DMA prijenosa. MMU obrauje
MFC prijenose na isti nain kao to PPE izvrava load i store operacije. MFC koristi efektivno
adresno polje od 64 bita, koje se prvo prevodi pa onda koristi za pristup glavnoj memoriji. 32-
bitno adresno polje se koristi u direktnom pristupu lokalnoj memoriji.

11
EIB (Element Interconnect Bus)
Jedno od glavnih ogranienja kod novih procesora je I/O usko grlo. Svaki novi procesor
postaje sve bri i bri i to sa trendom koji memorijski kontroleri i ipovi nemogu pratiti. Cell
procesor uvodi znaajni porast performansi, ali sa 9 jezgri potrebna mu je velika memorijska
propusnost i brzina.
Veina prijenosa podataka je dizajnirana da bude unutar samog procesora. Ako se
prijenos podataka odvija izmeu pojedinih SPE-ova, ne dolazi do zaguenja vanjske
sabirnice i memorije, to znai da se dobija vie raunarske snage bez porasta pristupa
memoriji. Unutar Cell procesora osnovni komunikacijski kanal predstavlja Element
Interconect Bus.

Slika 8. Nain povezivanja elemenata na EIB sabirnicu.


EIB sabirnica je centralni komunikcijski kanal unutar Cell procesora. Sastoji se od etiri
128-bitna koncentrina prstena. Prsteni koriste ponit to point komunikaciju sa
meuspremnicima u prijenosu podataka, pa su stoga proirivi sa novim elementima, to
praktino znai da u sljedeim izvedbama Cell procesora je vrlo jednostavno povezati i
ugraditi jo SPE jedinica.
Sabirnica moe prenositi 96 bajtova u jednom ciklusu i optimizirana je za 1024-bitne
blokove podataka. Dodatni vorovi, tj. SPE mogu se jednostavno dodati, te poveavaju samo
maksimalnu latenciju prstena. Svaki element ima hardverski garantovanu propusnost od
1/brojElemenata kako bi se poveala pogodnost primjene u real-time sistemima.

12
Ulazno/izlazno suelje FlexIO
FlexIO povezuje Cell procesor tj. EIB sabirnicu sa vanjskim svijetom. Ova sabirnica
moe raditi od 400 MHz do 8 GHz, te je kompatibilna sa HyperTransport, RapidIO i SPI-4
sueljima. Za rad nudi 12 jednosmjernih izlaznih linija za bajtove koji ine 96 pinova. Svaka
linija moe prenositi do 6,4 GB/s, to daje 76,8 GB/s akumulirane propusnosti. Sedam linija
su odlazne (44,8 GB/s) i 5 linija ulazne (32 GB/s). Postoje dvije vrste veza, CPU interconnect
i Device interconnect, pa je mogue direktno povezati dva Cell procesora ili koritenjem
swich-a povezati vie Cell procesora u jedinstven sistem. Naini povezivanja Cell procesora
su prikazani na slijedeim slikama.

Slika 9. Konfiguracija sa jednim vorom i dva I/O suelja.

Slika 10. Konfiguracija sa dva direktno povezana procesora, od kojih svaki ima po jedno
I/O suelje, dok je drugo konfigurisano kao Broadband Engine Interface (BIF) za
direktnu komunikaciju izmeu procesora.

13
Slika 10. Multi-node konfiguracija koja povezuje vie procesora koritenjem switch-a
koji je prikljuen na portove konfigurisane kao Broadband Engine Interface.

MIC (Memory Interface Controller)


MIC povezuje EIB sabirnicu sa glavnom DRAM memorijom sistema, koja je u ovom
sluaju Rambusova XDR memorija koja nudi propusnost od 25,2 GB/s. Svaki XDR ip radi
na 3,2 GHz i pri tome prenosi 2 bajta istovremeno. Memorija je ECC zatiena to pokazuje
da e se ovaj procesor koristiti ne samo u igraim konzolama i potroakoj elektronici. MIC
nudi dostupnost virtualne memorije za PPE i SPE jezgre. Memorije sama po sebi nije
keirana, samo PPE ima vlastitu ke hijerarhiju.

Slika 8. Povezivanje memorije na Cell procesor.

Ukupna memorijska propusnost Cell procesora koja se ostvaruje pomou FlexIO i XDR
memorije iznosi 100 GB/s, pri emu su oba suelja potpuno neovisna jedno o drugom.

14
Programiranje Cell procesora
Programiranje Cell procesora je specifino kao i njegova arhitektura. Velika prednost je
nepostojanje apstrakcijskog sloja izmeu vanjske ISA i one unutar same jezgre (u poreenju
sa x86). Ali strogi RISC dizajn pomjera napor za generiranje optimalnog koda gore prema
kompajleru i programeru. Takoer, opi problemi razvoja paralelnih ili streaming aplikacija
ostaje isti kao kod svih viejezgrenih procesora.
SPE-ovi se programiraju direktno, kao autonomni procesori sa vlastitom 256kB
memorijom i 128 registara. Specifikacija asemblerskog jezika je dostupna od IBM-a, ali su
vii programski jezici kao C ili C++ podrani za razvoj aplikacija. Raspodjela zadataka i
alokacija SPE-ova se u potpunosti vri softverski. Operativni sistem ih moe koristiti kao
djeljive resurse i virtualizirati ih za vie poslova (svaki posao vidi vlasitit SPE, a generalno
vie nego to stvarno postoji). PPE se programira kao standardni PPC970 i operativni sistem
Linux moe odmah raditi (bez podrke za SPE, ali od IBM je dostupna zakrpa).

Pervasively Data Parallel Computing


Tokom posljednje dekade, mikroprocesori su postali dovoljno moni da prihvate
prethodno nedostine zadatke i dovoljno jeftini da se primjene u irokom podruju novih
aplikacija. U meuvremenu, koliina podataka koje je potebno obraditi je, tako rei,
eksplodirala. Ova pojava je vidljiva u svemu, od potroake elektronike, koja prelazi sa
analognog na digitalni medij, do super-raunarskih aplikacija, koje poinju obraivati dosad
nerijeive probleme koji ukljuuju velike koliine podataka.
Da bi se odgovorilo na ovaj prijelaz sa kontrolne funkcije na obradu podataka, izvreno
je dizajniranje SPU jedinica koje iskoritavaju paralelizam na nivou podataka kroz SIMD
arhitekturu te integriu skalarno i SIMD izvravanje. Kao dodatak poboljanju efikasnosti
mnogih vektorskih transformacija, ovaj pristup reducira podruje i premaaj koje namee
skalarno procesiranje. Svako smanjenje kompleksnosti se direktno prenosi u poveanje
performansi jer omoguava smjetanje dodatnih procesorskih jezgri na dato podruje. Za
programe sa skromnim koliinama paralelizma na nivou podataka, davanje podrke za
paralelne operacije nad podacima prue veliku prednost u odnosu na prevoenje paralelizma
na nivou podataka u paralelizam na nivou instrukcija. Procesori koji nude kompatibilnost u
nazad koriste zadnje navedeni pristup, koji zahtjeva obradu i praenje poveanog broja
instrukcija i obino donosi znaajne kazne, jer se paralelizam mora ponovo otkriti u
instrukcijama koritenjem kontrolne logike koja zauzima veliko podruje i poveava
potronju.

15
Data-parallel conditional execution
Cell procesor, koji je dizajniran kao PDPC, koristi podatkovno paralelne metode izbora
kod uvjetovanog raunanja. Ovaj pristup uzima dva ulazna podatka i kontrolni ulaz (svi su
pohranjeni u jedinstveni registar) i nezavisno odabire jedan od dva podatkovna ulaza za
svaki vektorski odjeljak pod kontrolom odabrane kontrolne jedinice. Na taj nain se integriu
operacije uvjetovanog raunanja u SIMD operacije bez potrebe za pretvaranja skalarnih u
vektorske podatke.

Slika 9. Iskoritavanje paralelizma u podacima.

Kao to je prikazano na slici, za koritanje ovih uvjetovanih opreracija grananja potrebno


je da kompajler prevede jednostavnu element baziranu reprezentaciju podataka u sekvencu
skalarnih uvjetovanih testova, koje slijede podatkovno zavisna grananja. Kao dodatak
sekvencijalnom poretku, svako pojedino grananje je zavisno od podataka i mnoga grananja
su podlona pogrenom predvianju, makar se koristi najsofisticiraniji dinamiki algoritam
predikcije. Ovo proizvodi veoma veliku latenciju kontrolnih instrukcija produenu sa svakom
kaznom za pogreno predvianje grananja.
Preferirana metoda uvjetovanog izvravanja u SPE-u je iskoritavanje paralelizma na
nivou podataka i implementiranje uvjetovanog izvravanja sa kratkim sekvencama SIMD
instrukcijama sa paralelnim podacima. Sekvenca sa paralelnim podacima zamjenjuje
dugaku testiraj i granaj sekvencu sa etiri instrukcije (dva mnoenja, jedna komparacija i
instrukcija selekcije paralelnih podataka) koje se izvode na vektoru od etiri elementa. Na
ovaj nain postiu se znaajna poboljanja jer se reducira broj izvrenih operacija sa jedne
po elementu vektora na jednu po izvrnom putu.

16
Aplikacije za Cell procesor
Poto je PPE unutar Cell procesora potpuno kompatibilan sa PowerPC arhitekturom,
sve aplikacije napisane za tu arhitekturu mogu se izvoditi bez problema. Da bi se iskoristio
puni kapacitet Cell procesora, napisana aplikacija mora biti vienitna i upotrebljavati PPE i
SPE jezgre koristei potrebne nizove instrukcija.
Integrirani izvrni program za Cell procesor je PowerPC binarni program koji sadri
programski kod za jednu ili vie SPE jedinica integriranih u tekstualni segment PowerPC
binarnog programa. U trenutnoj softverskoj arhitekturi svaka aplikacija za Cell procesor se
sastoji od procesa koji moe upravljati sa vie PPE i SPE niti koje su dodjeljene
odgovarajuim procesorskim jezgrama. Nakon pokretanja aplikacije, inicijalizuje se jedna
PPE nit i sva se kontrola nalazi u PPE jezgri. PPE nit tada moe pokrenuti vie drugih niti
koje se mogu izvoditi na PPE ili SPE jezgrama. Softversko okruenje za Cell procesor nudi
biblioteku za upravljanje nitima baziranu na pthreads modelu.
Upravljanje nitima ukljuuje dodatne funkcije, kao to je prijenos SPE dijela koda Cell
aplikacije u lokalnu memoriju SPE jezgre, prijenos podataka aplikacije u i iz lokalne
memorije, komunikaciju izmeu niti koritenjem potanskih saduia, te poetno izvoenje
preneenog koda sa odreene startne adrese kao dio stvaranja niti.
Jednom kada se izvri pokretanje SPE niti Cell aplikacije, moe se nastaviti istovremeno
izvoenje PPE i SPE niti te aplikacije.
SPE programski model je posebno optimiziran za obradu aplikacija sa velikom koliinom
podataka, gdje se blok podataka prenosi u lokalnu memoriju SPE jezgre i obrauje.
Rezultujui podaci se pohranjuju u lokalnu memoriju i eventualno prenose nazad u glavnu
sistemsku memoriju ili direktno na I/O ureaj.
PPE obino izvodi vei broj kontrolnih funkcija, kao to su raspodjela poslova na vie
SPE niti za obradu podataka, balansiranje unosa i funkcije nad particijama memorije, te sav
kontrolom dominirani aplikacijski kod pri emu se koristi PPE-ova hijerarhija ke memorije.
Sljedea slika prikazuje Cell programski model, te potrebne korake za pokretanje
aplikacije koja e se uspjeno izvoditi na heterogenim jezgrama unutar procesora.

Slika 9. Nain pokretanja integrisane Cell aplikacije.

17
Na poetku slika aplikacije se nalazi na vanjskoj memoriji. Izvrni kod se nalazi u
objektnom formatu kao to je ELF, te se sastoji od read-only tekstualnog dijela i read/write
sekcije podataka. Kao dodatak instrukcijama i read-only podacima, tekstualna sekcija sadri i
kopije jedne ili vie SPE izvrnih slika koje odreuju rad jedne ili vie SPE niti.
Da bi se pokrenula aplikacija, prvo se uitava PowerPC objektni fajl i poinje izvoenje
niti PowerPC aplikacije na PPE jezgri. Ovako pokrenuta PPE nit vri pokretanje aplikacijskih
niti na SPE jezgrama. Da bi se to postiglo, potrebno je prvo prenijeti izvrnu sliku niti u
lokalnu memoriju SPE jezgre. PPE pokree ovaj prijenos nareujui MFC-u da izvri prijenos
iz sistemske u lokalnu memoriju, ta naredba se stavlja u red ekanja unutar MFC-a. MFC
izvrava traeni prijenos podataka preko EIB sabirnice. Ovi koraci se mogu vie puta
ponavljati da bi se prenijela slika niti koja je segmentirana radi bolje iskoritenosti memorije.
Dodatni prijenosi mogu biti koriteni za prijenos ulaznih podataka niti. Kada se zavri ovaj
prijenos, PPE nareuje MFC-u da pokrene izvoenje SPE niti na odreenoj adresi.

18
Zakljuak
CBE implementira multiprocesor na jednom ipu sa devet procesora koji rade na
djeljenoj cjelovitoj sistemskoj memoriji. Funkcija procesorskih elemenata je specijalizirana u
dva tipa: PPE je optimiziran za kontrolne zadatke i osam SPE-ova koji daju izvrni prostor
optimiziran za obradu podataka. Dizajnerski ciljevi za SPE i njegova arhitekturalna
specifikacija bila je optimiziranje za izvedbu male povrine i sloenosti. PPE je izgraen na
osnovu IBM-ove 64-bitne PowerPC arhitekture sa implementaciom 128-bitnog VMX i ke
memorijom na ipu sa dvoslojnom hijerarhijom. Potpuno je kompatibilan sa specifikacijama
64-bitne PowerPC arhitekture i moe izvoditi 32 i 64-bitne operativne sisteme i aplikacije.
SPE-ovi su nezavisni procesori, od kojih svaki izvodi jednu nezavisnu aplikacijsku nit.
Dizajn je optimiziran za aplikacije sa intenzivnim raunanjem. Svaki SPE ukljuuje privatnu
lokalnu memoriju za efikasno pristupanje podacima i instrukcijama, ali takoer posjeduje
potpuni pristup ukupnoj dijeljenoj memoriji ukljuujui memorijski mapiran I/O prostor. Oba
tipa procesorskih jezgri dijele pristup zajednikom adresnom prostoru, koji ukljuuje glavnu
memoriju i adresna podruja koja odgovaraju svakoj pojedinoj lokalnoj memoriji SPE-ova,
kontrolnih registara i I/O ureaja.
PPE i SPE su visoko integrirani. PPE daje zajedniku kontrolnu funkciju, izvrava
operativni sistem, i prua kontrolu aplikacija, dok SPE-ovi pruaju veu koliinu performansi
za aplikacije. PPE i SPE-ovi dijele adresne translacije i arhitekturu virtuelne memorije,
takoer dijele tabele sistemskih stranica i sistemske funkcije kao to je prestavljanje prekida,
na kraju oni dijele formate tipova podataka i semantiku operacija kako bi se omoguilo
efikasno dijeljenje podataka meu njima.

19
Literatura

[1] IBM Corporation, Cell Broadband Engine Architecture v1.01, 2006.

[2] IBM Corporation, Cell Broadband Engine Programing Tutorial v2.1, 2007.

[3] IBM Corporation, Synergistic Processor Unit Instruction Set Architecture v1.2, 2007.

[4] IBM Corporation, Synergistic Processor Unit Assembly Language Specification v1.5, 2007.

[5] IBM Corporation, PowerPC User Instruction Set Architecture v2.02, 2005.

[6] IBM Corporation, Cell Broadband Engine CMOS SOI 10KE Hardware Initialization Guide v1.4,
2006.

[7] M. Gschwind, P. Hofstee, B. Flachs, M. Hopkins, Y. Watanabe, T. Yamazaki,


A novel SIMD architecture for the Cell heterogeneous chip-multiprocessor, 2005.

[8] M. Gschwind, P. Hofstee, B. Flachs, M. Hopkins, Y. Watanabe, T. Yamazaki,


Synergistic Processing in Cells Multicore Architecture, 2006.

[9] Michael Gschwind, The Cell Broadband Engine: Exploiting Multiple Levels of Parallelism in a
Chip Multiprocessor, 2006.

[10] Peter Hofstee, Power Efficient Processor Design and the Cell Processor, 2005.

[11] Torsten Hoefler, The Cell Processor - A short Introduction, 2005.

20

You might also like