YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: Cell Procesor

UNIVERZITET U BIHAĆU TEHNIČKI FAKULTET Elektrotehni čki odsjek Informatika

Seminarski rad iz predmeta:

Arhitektura ra čunara

Cell procesor

(Cell Broadband Engine Architecture)

Studenti: Br. Indexa: Igor Prša 173 Aladin Halilagi ć 177

Page 2: Cell Procesor

1

Sadržaj

Sadržaj ............................................ ..................................................................................... 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 sučelje – 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

Zaklju čak.............................................................................................................................19

Literatura......................................... ....................................................................................20

Page 3: Cell Procesor

2

Uvod

Glavno područje razvoja novih procesora je orjentirano na kompatibilnost i kontinuiranost. Stoga je tržište procesora dominirano sa x86 kompatibilnim procesorima već gotovo dva desetljeća. Nekoliko novih koncepata je pokušalo steći neki udio u tržištu, ali nisu bili u stanju prevladati stari koncept kompatibilnosti.

Cell procesor je novi pokušaj u iskorištavanju rastućeg broja tranzistora po čipu na efikasan način. Novi procesor je namijenjen za tržište igraćih konzola i potrošačke elektronike radi povećanja kvalitete ovih proizvoda. Ovaj pristup vodi do širenja i ako svatko ima dva ili više cell procesora u televizoru, igraćoj konzoli ili PDA, pojavljuje se interesantno pitanje: šta je moguće uraditi sa ovim procesorom?

Razvoj procesora je počeo 2000. godine, kada su tri kompanije Sony, Toshiba i IBM osnovale istraživačku 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 igraćih konzola. Njihova vizija je bila postići da Play Station 3 (PS3) bude brži 100 puta od prethodnika PS2. Toshiba je nudila iskustvo u području razvoja i proizvodnje u velikim količinama. IBM predstavlja tradicionalnog proizvoñača i dizajnera procesora, pogotovo u 90nm SOI tehnologiji sa bakarnim ožičenjem.

Sve tri kompanije su imale buduće planove za korištenje ove nove tehnologije, Sony je želio ugraditi Cell u PS3, Toshiba u HDTV ureñaje i IBM u servere i radne stanice. Njihov cilj je bio napraviti višenamjenski procesor sa visokim taktom i visokom propusnošću. Postojalo je više razloga da se ne izabere klasičan x86 nego potpuno novi dizajn. Memorijska latencija je prilično visoka u tradicionalnom x86 dizajnu, zbog postojanja von Neumann-ovog uskog grla izmeñu procesora i memorije. Druga negativna činjenica je povećana instrukcijska latencija zbog kompleksne logike za rasporeñivanje instrukcija pri izvršavanju 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 teška za kontrolu programerima. Sve navedene osobine modernih procesora vode do relativno dugog kontrolnog logičkog puta koji ograničava maksimalni takt koji se može postići.

Moor-ov zakon

Moor-ov zakon tvrdi da se broj tranzistora na čipu udvostruči svaki 18 mjeseci. Time se postavlja pitanje, šta uraditi sa svim tim novim tranzistorima? Mogu li oni učiniti bržim procesor? Odgovor je ne, oni ga mogu učiniti širim. Mnogi proizvoñači procesora pokušavaju poboljšati brzinu procesora radeći posao paralelno, praktično izvoñeći više procesorskih instrukcija paralelno. Ali pri tome se pojavljuju zavisnosti u podacima koje onemogućuju ovakav rad. Ako procesorska instrukcija obrañuje podatak koji prethodna instrukcija daje kao izlaz one se nemogu izvršavati paralelno. Postoji više trikova za pronalaženje više paralelizma u kodu, kao što je super-skalarno izvoñenje van reda koji većinom koristi Tomasulo-vu šemu ili spekulativno izvršavanje. Ali sve ove šeme uvode veću složenost u kod i povećavaju kritični put. Time se ograničava frekvencija takta (jer se najduži put mora nanovo učitavati svakog ciklusa) i povećava latencija instrukcija. Pipeline pomaže maskirajući instrukcijsku latenciju i povećavajući ciklus sata dijeleći kritični put u više dijelova, ali uvodi probleme zastoja, pražnjenja i ponovnog punjenja. Svi ovi problemi su dobro poznati današnjim 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 višejezgrenih procesora su uvedeni da bi odgovorili na to pitanje i dajući zadatak programeru u paralelizaciji koda.

Page 4: Cell Procesor

3

Arhitektura Cell procesora

Arhitektura Cell procesora je patentirana od strane Ken Kuturagi-ja iz kompanije Sony 1999. godine. On je napravio razliku izmeñu softverske i hardverske ćelije (cell). Softverska ćelija je program sa pridruženim podacima, a hardverska ćelija je izvršna jedinica sa mogućnosti izvršavanja softverske ćelije. U osnovnom dizajnu on nije utvrdio nikakvu fiksnu arhitekturu, softverske ćelije mogu slobodno plutati okolo i biti obrañene na bilo kojoj dostupnoj hardverskoj ćeliji. Više ovakvih hardverskih ćelija mogu stvoriti veći ćelijski računar (sam po sebi). Naravno ovo je samo arhitektonska vizija, procesori u realnom svijetu su vezani za jedan čip i plutajuće ćelije su još uvijek samo fikcija.

Osnovni princip Cell procesora je isti, te se on sastoji od:

• PPE (PowerPC Processing Element) koji se ponaša kao glavni procesor za rasporeñivanje zadataka (softverskih ćelija),

• MFC (Memory Flow Controler) koji služi kao sučelje izmeñu izvršnih i memorijskih jedinica,

• Više 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 može zaključiti 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 ureñajima ili drugim procesorom preko FlexIO sučelja. Ovaj procesor nudi 256 GFlop operacija sa pomičnim 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.

Page 5: Cell Procesor

4

Slika 2. Detaljniji prikaz unutrašnje organizacije Cell procesora.

Prototip je proizveden sa 90nm SOI tehnologijom i 8-slojnim bakrenim ožičenjem. Sastoji se od 241 miliona tranzistora na čipu površine 235 mm² i troši 60-80 W. Radni takt procesora je 4 GHz pri naponu od 1,1V. IBM virtualizacijska tehnologija je uključena u PPE.

Slika 3. Fotografija prototipa Cell procesora sa naznačenim dijelovima.

Page 6: Cell Procesor

5

PPE (Power Processing Element)

PPE je dvo-nitni 64-bitni RISC procesor opšte 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 omogućavala visok radni takt. Stoga, on koristi samo izvoñenje u redu sa dubokim super skalarnim dvosmjernim pipelinom koji ima više 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 izvršava operativni sistem za sve aplikacije koje rade na Cell procesoru.

Slika 4. Osnovni blok dijagram PPE jedinice.

PPU jedinica vrši kontrolu i izvršavanje instrukcija. Ona uključuje 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 računanje, jedinicu za računanje sa pomičnim zarezom, vektorsku jedinicu, jednicu sa predviñanje grananja te jedinicu za kontrolu virtuelne memorije.

PPU podržava istovremeno izvršavanje dvije niti i može se posmatrati kao dvo ulazni multiprocesor sa dijeljenim tokom podataka. Na ovaj način softver ga vidi kao dvije nezavisne procesorske jedinice. Stanje svake niti je duplicirano, uključujući sve arhitekturalne registre i registre specijalne namjene osim onih koji se odnose na resurse na nivou sistema, kao što su logičke particije, memorija i kontrola niti. Ostali resursi, kao što su keš i redovi za čekanje, dijele obje niti, osim u slučaju kada je resurs mali ili nudi kritično poboljšanje performansi u višenitnim aplikacijama.

PPSS kontrolira pristup memoriji od strane PPE i sve vanjske zahtjeve prema PPE-u od drugih procesora ili I/O ureñaja. On uključuje jedinstveni 512 KB keš za instrukcije i podatke drugog nivoa, razne vrste redova za čekanje, i jedinicu za pristup sabirnici (BIU) koja vrši upravljanje sabirnicom te pristup EIB sabirnici.

PPE posmatra glavnu memorija kao linearni niz bajtova indeksiranih od 0 do 1264 − . Svaki bajt je odreñen svojim indeksom koji se zove adresa. Keš drugog nivoa i keševi za prijevode adresa koriste tabele za izmjenu koje omogućavaju softveru kontrolu nad korištenjem keš memorije. Ova kontrola je posebno korisna u real-time programiranju.

Page 7: Cell Procesor

6

SPE (Synergistic Processing Element)

SPE je potpuni vektorski CPU sa vlastitom radnom memorijom. Njegova ISA nije kompatibilna sa VMX-om i ima fiksnu dužinu od 32 bita. Trenutni SPE ima oko 21 miliona tranzistora, gde 2/3 njih čini SRAM lokalnu memoriju. Procesor nema predviñanje skoka ili logiku rasporeñivanja instrukcija oslanjajući se na programera i kompajler u pronalaženju paralelizma u kodu. Kao i kod PPE, koristi dva nezavisna pipeline-a i izvršava dvije instrukcije po ciklusu, jednu SIMD operaciju računanja i jednu operaciju pristupa memoriji.

Sve se instrukcije izvršavaju striktno u redosljedu i svaka instrukcija radi sa 128-bitnim vezanim podatkovnim elementima. Četiri jedinice za računanje sa pomičnim zarezom jednostruke preciznosti i četiri cjelobrojne jedinice nude propusnost od 32 GOps (giga operacija u sekundi) pojedinačno. Jedinice za računanje sa pomičnim zarezom jednostruke preciznosti nisu kompatibline sa IEEE754 standardom u terminima zaokruživanja i specijalnih vrijednosti. One se takoñer mogu koristiti za izračunavanje operacija sa pomičnim zarezom dvostruke preciznosti koje su kompatibilne sa IEEE754 standardom, ali je njihovo izračunavanje 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 takoñer dosta specifična, svaki SPE ima vlastitu 256 kB lokalnu memoriju (Local Storage). Ovoj SRAM memoriji moguće je pristupiti veoma brzo preko 128-bitnih linija. Dodatno, svaki SPE posjeduje veliki skup registara opće namjene, tačnije 128 128-bitnih registara koji mogu pohraniti sve dostupne tipove podataka. Za lokalnu memoriju ne postoji keš, podrška za virtuelnu memoriju i koherencije. Podaci se mogu premještati pomoću DMA pristupa u i iz glavne memorije preko EIB sabirnice, pri čemu se MFC ponaša kao MMU te daje podršku za virtuelnu memoriju pri pristupu glavnoj memoriji.

Namjena SPE-a je da popuni prazninu izmeñu procesora opšte namjene i specijaliziranog hardvera. Procesori opšte namjene imaju cilj da postignu najbolju srednju performansu za široki spektar aplikacija. Specijaliziran hardver teži da ostvari najbolje performanse za jednu aplikaciju. SPE naprotiv teži da postigne vodeće performanse na

Page 8: Cell Procesor

7

kritičnim radnim opterećenjima u igrama, obradi medija i računarski zahtjevnim sistemima. Namjena SPE-ova i CBE arhitekture je davanje velikog nivoa kontrole ekspertnim (real-time) programerima pritom zadržavajući 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 izvršava zajedno skalarne i podatkovno paralelne SIMD operacije na ovim širokim podatkovnim putevima, eliminirajući premašaj zbog dodatnih jedinica za izdavanje naredbi, odvojenih pipeline-a te kompleksnosti kontrole dodatnih skalarnih jedinica. Procesor takoñer koristi ove široke puteve podataka da pribavi instrukcije iz memorije do izvršnih jedinica.

Kao dodatak poboljšanju efikasnosti mnogih vektorskih transformacija, ovaj pristup reducira područje i premašaj koje nameće skalarno procesiranje. Svako smanjenje kompleksnosti se direktno prenosi u povećanje performansi jer omogućava smještanje dodatnih procesorskih jezgri na dato područje.

Za programe sa skromnim količinama paralelizma na nivou podataka, davanje podrške za paralelne operacije nad podacima pruže veliku prednost u odnosu na prevoñenje paralelizma na nivou podataka u paralelizam na nivou instrukcija. Procesori koji nude kompatibilnost u nazad koriste zadnje navedeni pristup, koji zahtjeva obradu i praćenje povećanog broja instrukcija i obično donosi značajne kazne, jer se paralelizam mora ponovo otkriti u instrukcijama korištenjem kontrolne logike koja zauzima veliko područje i povećava potrošnju.

Slika 6. Blok dijagram elemenata SPU jedinice.

Page 9: Cell Procesor

8

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 pomičnim zarezom jednostruke

preciznosti, – Dvije vrijednosti sa pomičnim zarezom dvostruke preciznosti.

• SPU load-store instrukcije pristupaju samo registrima u lokalnoj memoriji.

• Pristup vanjskim podacima vrši se preko više kanala koje kontroliše MFC.

SPU posjeduje slijedeća ograničenja:

• Nema direktnog pristupa glavnoj memoriji (pristup se vrši samo preko MFC-a).

• Nepostojanje razlike izmeñu korisničkog i privilegovanog moda.

• Nema pristupa kritičnoj 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 može

izdati i izvršiti 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 izvršnu jedinicu koja obavlja traženu funkciju. Svaka izvršna jedinica je dodjeljena jednom od pipeline-a. U slijedećoj tabeli su prikazani instrukcijski tipovi, latencije i odreñeni pipeline.

Klasa instrukcija

Opis Latencija Pipeline

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 odreñenom pipeline-u. Svaka instrukcija je dio para instrukcija u formatu duple riječi koja se zove fletch grupa. Ova grupa može imati jednu ili dvije validne instrukcije, ali mora biti poravnata prema granicama duple riječi. Ovo znači da se prva instrukcija u grupi nalazi na neparnoj adresi riječi, dok se druga instrukcija nalazi na parnoj adresi riječi.

SPU generiše fletch grupe jednu za drugom, nastavljajući do slijedeće 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.

Page 10: Cell Procesor

9

Dvostruko izvršavanje se dešava kada fletch grupa ima dvije izvodljive instrukcije od kojih prva instrukcija može biti izvršena na parnom pipeline-u, a druga instrukcija izvršena na neparnom pipeline-u. Ako je nemoguće izvršiti obje instrukcije, ali je moguće izvršiti prvu instrukciju, ona se šalje odgovarajućem pipeline-u, a druga instrukcija se zadržava dok ne bude u mogućnosti da se izvrši. Nova fletch grupa se učitava nakon što se izvrše obje instrukcije trenutne fletch grupe.

Slika 6. Mikroarhitektura pipeline-a SPU jedinice.

Lokalna memorija (Local Store) Lokalna memorija se može posmatrati kao softverski kontrolirani keš koji se puni i prazni

pomoću DMA transfera. Glavne karakteristike lokalne memorije uključuju:

• 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 učitavanje 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 odreñuje pristup prema sljedećim prioritetima:

1. DMA čitanja i pisanja od strane PPE ili I/O ureñaja,

2. SPU čitanja i pisanja,

3. učitavanje instrukcija.

DMA čitanja i pisanja uvijek imaju najveći prioritet. Zbog podrške u hardveru operacije 128-bitnog DMA transfera oduzimaju, najviše, jedan u osam ciklusa pristupa lokalnoj memoriji. Stoga, osim za visoko optimizirane kodove, utjecaj DMA transfera na dostupnost lokalne memorije za ostale operacije se može zanemariti.

Page 11: Cell Procesor

10

Nakon DMA transfera, sljedeće operacije po visini prioriteta su operacije čitanja i pisanja lokalne memorije. Razlog za ovo je činjenica da te instrukcije obično pomažu napretku programa, dok su operacije pribavljanja instrukcija obično spekulativne. SPU podržava samo 16-bajtne operacije čitanja i pisanja koje su poravnate. Za postavljanje bajtova u drugačiji redosljed SPU koristi drugu instrukciju (byte shuffle).

Najniži prioritet pristupa lokalnoj memoriji dat je operacijama pribavljanju instrukcija, kojih postoje tri tipa:

• flush-initiated fetches,

• inline prefetches, i

• hint fetches.

Operacije pribavljanja instrukcija vrše učitavanje 32 instrukcije po zahtjevu SPU-a pristupajući svim stranicama lokalne memorije istovremeno.

MFC (Memory Flow Controller) U CBE arhitekturi MFC služi kao sučelje prema sistemu i drugim elementima za

pojedinu SPU jedinicu. On pruža primarni mehanizam za prijenos podataka, zaštitu i sinhronizaciju izmeñu glavne memorije i lokalne memorije pojedine jedinice.

Slika 7. Blok dijagram elemenata MFC jedinice.

MFC posjeduje dva sučelja prema SPU, dva sučelja prema BIU jedinici (Bus Interface Unit) i dva sučelja prema opcionalnom DMA kešu prvog nivoa (SL1). Sučelja prema SPU su SPU kanalno sučelje i sučelje prema lokalnoj memoriji SPU-a. SPU kanalno sučelje omogućava pristup SPU jedinice mogućnostima MFC-a i izdavanje MFC naredbi. MFC koristi sučelje prema lokalnoj memoriji za pristup sadržaju lokalne memorije. Jedno sučelje prema BIU omogućava memorijski mapiranim I/O ureñajima (MMIO) pristup MFC-u. Ovo sučelje takoñer omogućava drugim procesorima izdavanje MFC naredbi. Naredbe izdane

Page 12: Cell Procesor

11

korištenjem MMIO se zovu MFC proxy naredbe. Drugo sučelje prema BIU prenosi realne adrese.

Sučelje prema SL1 kešu se koristi uglavnom za prijenos podataka. MFC koristi jedno sučelje za pristup tablicama za prijevod adresa u glavnoj memoriji. Drugo sučelje ka SL1 kešu prenosi podatke izmeñu lokalne i glavne memorije.

MFC jedinica se sastoji od sljedećih glavnih jedinica:

• MMIO sučelje,

• MFC registri,

• DMA kontroler.

MMIO sučelje mapira MFC mogućnosti pojedinog SPU-a u realni adresni prostor sistema. Ovo omogućava pristup MFC-u sa bilo kojeg procesora ili ureñaja na sistemu. Kao dodatak, MMIO sučelje se može podesiti da mapira lokalnu memoriju SPU-a u realni adresni prostor. Time je omogućen direktni pristup lokalnoj memoriji sa bilo kojeg procesora ili ureñaja na sistemu i mogućnost prijenosa podataka izmeñu dvije lokalne memorije, odnosno, direktni pristup domeni lokalne memorije svakom I/O ureñaju.

Sinhronizacija i prijenos podataka su glavna odgovornost DMA kontrolera unutar MFC jedinice. DMA kontroler može prenositi podatke izmeñu lokalne memorije SPU jedinice i glavne memorije. Opcionalno podaci mogu biti keširani u SL1. SPE i PPE jedinice nareñuju MFC-u izvoñenje 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 izvoñenje svih MFC adresnih prevoñenja i provjera pristupnih prava potrebnih prilikom DMA prijenosa. MMU obrañuje MFC prijenose na isti način kao što PPE izvršava 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.

Page 13: Cell Procesor

12

EIB (Element Interconnect Bus)

Jedno od glavnih ograničenja kod novih procesora je I/O usko grlo. Svaki novi procesor postaje sve brži i brži i to sa trendom koji memorijski kontroleri i čipovi nemogu pratiti. Cell procesor uvodi značajni porast performansi, ali sa 9 jezgri potrebna mu je velika memorijska propusnost i brzina.

Većina prijenosa podataka je dizajnirana da bude unutar samog procesora. Ako se prijenos podataka odvija izmeñu pojedinih SPE-ova, ne dolazi do zagušenja vanjske sabirnice i memorije, što znači da se dobija više računarske snage bez porasta pristupa memoriji. Unutar Cell procesora osnovni komunikacijski kanal predstavlja Element Interconect Bus.

Slika 8. Način povezivanja elemenata na EIB sabirnicu.

EIB sabirnica je centralni komunikcijski kanal unutar Cell procesora. Sastoji se od četiri 128-bitna koncentrična prstena. Prsteni koriste ponit to point komunikaciju sa meñuspremnicima u prijenosu podataka, pa su stoga proširivi sa novim elementima, to praktično znači da u sljedećim izvedbama Cell procesora je vrlo jednostavno povezati i ugraditi još SPE jedinica.

Sabirnica može prenositi 96 bajtova u jednom ciklusu i optimizirana je za 1024-bitne blokove podataka. Dodatni čvorovi, tj. SPE mogu se jednostavno dodati, te povećavaju samo maksimalnu latenciju prstena. Svaki element ima hardverski garantovanu propusnost od 1/brojElemenata kako bi se povećala pogodnost primjene u real-time sistemima.

Page 14: Cell Procesor

13

Ulazno/izlazno su čelje – FlexIO

FlexIO povezuje Cell procesor tj. EIB sabirnicu sa vanjskim svijetom. Ova sabirnica može raditi od 400 MHz do 8 GHz, te je kompatibilna sa HyperTransport, RapidIO i SPI-4 sučeljima. Za rad nudi 12 jednosmjernih izlaznih linija za bajtove koji čine 96 pinova. Svaka linija može 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 moguće direktno povezati dva Cell procesora ili korištenjem swich-a povezati više Cell procesora u jedinstven sistem. Načini povezivanja Cell procesora su prikazani na slijedećim slikama.

Slika 9. Konfiguracija sa jednim čvorom i dva I/O sučelja.

Slika 10. Konfiguracija sa dva direktno povezana procesora, od kojih svaki ima po jedno

I/O sučelje, dok je drugo konfigurisano kao Broadband Engine Interface (BIF) za direktnu komunikaciju izmeñu procesora.

Page 15: Cell Procesor

14

Slika 10. Multi-node konfiguracija koja povezuje više procesora korištenjem switch-a koji je priključen na portove konfigurisane kao Broadband Engine Interface.

MIC (Memory Interface Controller)

MIC povezuje EIB sabirnicu sa glavnom DRAM memorijom sistema, koja je u ovom slučaju 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 zaštićena što pokazuje da će se ovaj procesor koristiti ne samo u igraćim konzolama i potrošačkoj elektronici. MIC nudi dostupnost virtualne memorije za PPE i SPE jezgre. Memorije sama po sebi nije keširana, samo PPE ima vlastitu keš hijerarhiju.

Slika 8. Povezivanje memorije na Cell procesor.

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

Page 16: Cell Procesor

15

Programiranje Cell procesora

Programiranje Cell procesora je specifično kao i njegova arhitektura. Velika prednost je nepostojanje apstrakcijskog sloja izmeñu vanjske ISA i one unutar same jezgre (u poreñenju sa x86). Ali strogi RISC dizajn pomjera napor za generiranje optimalnog koda gore prema kompajleru i programeru. Takoñer, opći problemi razvoja paralelnih ili streaming aplikacija ostaje isti kao kod svih višejezgrenih 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 viši programski jezici kao C ili C++ podržani za razvoj aplikacija. Raspodjela zadataka i alokacija SPE-ova se u potpunosti vrši softverski. Operativni sistem ih može koristiti kao djeljive resurse i virtualizirati ih za više poslova (svaki posao vidi vlasitit SPE, a generalno više nego što stvarno postoji). PPE se programira kao standardni PPC970 i operativni sistem Linux može odmah raditi (bez podrške za SPE, ali od IBM je dostupna zakrpa).

Pervasively Data Parallel Computing

Tokom posljednje dekade, mikroprocesori su postali dovoljno moćni da prihvate prethodno nedostižne zadatke i dovoljno jeftini da se primjene u širokom području novih aplikacija. U meñuvremenu, količina podataka koje je potebno obraditi je, tako reći, eksplodirala. Ova pojava je vidljiva u svemu, od potrošačke elektronike, koja prelazi sa analognog na digitalni medij, do super-računarskih aplikacija, koje počinju obrañivati dosad neriješive probleme koji uključuju velike količine podataka.

Da bi se odgovorilo na ovaj prijelaz sa kontrolne funkcije na obradu podataka, izvršeno je dizajniranje SPU jedinica koje iskorištavaju paralelizam na nivou podataka kroz SIMD arhitekturu te integrišu skalarno i SIMD izvršavanje. Kao dodatak poboljšanju efikasnosti mnogih vektorskih transformacija, ovaj pristup reducira područje i premašaj koje nameće skalarno procesiranje. Svako smanjenje kompleksnosti se direktno prenosi u povećanje performansi jer omogućava smještanje dodatnih procesorskih jezgri na dato područje. Za programe sa skromnim količinama paralelizma na nivou podataka, davanje podrške za paralelne operacije nad podacima pruže veliku prednost u odnosu na prevoñenje paralelizma na nivou podataka u paralelizam na nivou instrukcija. Procesori koji nude kompatibilnost u nazad koriste zadnje navedeni pristup, koji zahtjeva obradu i praćenje povećanog broja instrukcija i obično donosi značajne kazne, jer se paralelizam mora ponovo otkriti u instrukcijama korištenjem kontrolne logike koja zauzima veliko područje i povećava potrošnju.

Page 17: Cell Procesor

16

Data-parallel conditional execution

Cell procesor, koji je dizajniran kao PDPC, koristi podatkovno paralelne metode izbora kod uvjetovanog računanja. 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 način se integrišu operacije uvjetovanog računanja u SIMD operacije bez potrebe za pretvaranja skalarnih u vektorske podatke.

Slika 9. Iskorištavanje paralelizma u podacima.

Kao što je prikazano na slici, za korištanje 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 podložna pogrešnom predviñanju, makar se koristi najsofisticiraniji dinamički algoritam predikcije. Ovo proizvodi veoma veliku latenciju kontrolnih instrukcija produženu sa svakom kaznom za pogrešno predviñanje grananja.

Preferirana metoda uvjetovanog izvršavanja u SPE-u je iskorištavanje paralelizma na nivou podataka i implementiranje uvjetovanog izvršavanja sa kratkim sekvencama SIMD instrukcijama sa paralelnim podacima. Sekvenca sa paralelnim podacima zamjenjuje dugačku testiraj i granaj sekvencu sa četiri instrukcije (dva množenja, jedna komparacija i instrukcija selekcije paralelnih podataka) koje se izvode na vektoru od četiri elementa. Na ovaj način postižu se značajna poboljšanja jer se reducira broj izvršenih operacija sa jedne po elementu vektora na jednu po izvršnom putu.

Page 18: Cell Procesor

17

Aplikacije za Cell procesor

Pošto 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 višenitna i upotrebljavati PPE i SPE jezgre koristeći potrebne nizove instrukcija.

Integrirani izvršni program za Cell procesor je PowerPC binarni program koji sadrži programski kod za jednu ili više SPE jedinica integriranih u tekstualni segment PowerPC binarnog programa. U trenutnoj softverskoj arhitekturi svaka aplikacija za Cell procesor se sastoji od procesa koji može upravljati sa više PPE i SPE niti koje su dodjeljene odgovarajućim procesorskim jezgrama. Nakon pokretanja aplikacije, inicijalizuje se jedna PPE nit i sva se kontrola nalazi u PPE jezgri. PPE nit tada može pokrenuti više drugih niti koje se mogu izvoditi na PPE ili SPE jezgrama. Softversko okruženje za Cell procesor nudi biblioteku za upravljanje nitima baziranu na pthreads modelu.

Upravljanje nitima uključuje 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 izmeñu niti korištenjem poštanskih sadučića, te početno izvoñenje prenešenog koda sa odreñene startne adrese kao dio stvaranja niti.

Jednom kada se izvrši pokretanje SPE niti Cell aplikacije, može se nastaviti istovremeno izvoñenje PPE i SPE niti te aplikacije.

SPE programski model je posebno optimiziran za obradu aplikacija sa velikom količinom podataka, gdje se blok podataka prenosi u lokalnu memoriju SPE jezgre i obrañuje. Rezultujući podaci se pohranjuju u lokalnu memoriju i eventualno prenose nazad u glavnu sistemsku memoriju ili direktno na I/O ureñaj.

PPE obično izvodi veći broj kontrolnih funkcija, kao što su raspodjela poslova na više 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.

Sljedeća slika prikazuje Cell programski model, te potrebne korake za pokretanje aplikacije koja će se uspješno izvoditi na heterogenim jezgrama unutar procesora.

Slika 9. Način pokretanja integrisane Cell aplikacije.

Page 19: Cell Procesor

18

Na početku slika aplikacije se nalazi na vanjskoj memoriji. Izvršni 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 sadrži i kopije jedne ili više SPE izvršnih slika koje odreñuju rad jedne ili više SPE niti.

Da bi se pokrenula aplikacija, prvo se učitava PowerPC objektni fajl i počinje izvoñenje niti PowerPC aplikacije na PPE jezgri. Ovako pokrenuta PPE nit vrši pokretanje aplikacijskih niti na SPE jezgrama. Da bi se to postiglo, potrebno je prvo prenijeti izvršnu sliku niti u lokalnu memoriju SPE jezgre. PPE pokreće ovaj prijenos nareñujući MFC-u da izvrši prijenos iz sistemske u lokalnu memoriju, ta naredba se stavlja u red čekanja unutar MFC-a. MFC izvršava traženi prijenos podataka preko EIB sabirnice. Ovi koraci se mogu više puta ponavljati da bi se prenijela slika niti koja je segmentirana radi bolje iskorištenosti memorije. Dodatni prijenosi mogu biti korišteni za prijenos ulaznih podataka niti. Kada se završi ovaj prijenos, PPE nareñuje MFC-u da pokrene izvoñenje SPE niti na odreñenoj adresi.

Page 20: Cell Procesor

19

Zaklju čak

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 izvršni prostor optimiziran za obradu podataka. Dizajnerski ciljevi za SPE i njegova arhitekturalna specifikacija bila je optimiziranje za izvedbu male površine i složenosti. PPE je izgrañen 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 može 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 računanjem. Svaki SPE uključuje privatnu lokalnu memoriju za efikasno pristupanje podacima i instrukcijama, ali takoñer posjeduje potpuni pristup ukupnoj dijeljenoj memoriji uključujući memorijski mapiran I/O prostor. Oba tipa procesorskih jezgri dijele pristup zajedničkom adresnom prostoru, koji uključuje glavnu memoriju i adresna područja koja odgovaraju svakoj pojedinoj lokalnoj memoriji SPE-ova, kontrolnih registara i I/O ureñaja.

PPE i SPE su visoko integrirani. PPE daje zajedničku kontrolnu funkciju, izvršava operativni sistem, i pruža kontrolu aplikacija, dok SPE-ovi pružaju veću količinu performansi za aplikacije. PPE i SPE-ovi dijele adresne translacije i arhitekturu virtuelne memorije, takoñer 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 omogućilo efikasno dijeljenje podataka meñu njima.

Page 21: Cell Procesor

20

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 Cell’s 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.


Related Documents