Uspon i pad tehnološkog monstruma: Kako je Cell procesor definisao i prokleo PlayStation 3

Uspon i pad tehnološkog monstruma: Kako je Cell procesor definisao i prokleo PlayStation 3 (16:9 ilustracija)

Uvod u eru tehnološkog giganta

Sredinom dvehiljaditih godina, industrija video igara nalazila se na prelomnoj tački. Prelazak sa šeste na sedmu generaciju konzola obećavao je ne samo skok u rezoluciji, već i fundamentalnu promenu u načinu na koji se virtuelni svetovi simuliraju i renderuju. Na čelu te revolucije bio je Sony. Nakon neverovatnog uspeha konzole PlayStation 2, koja je i danas najprodavanija konzola svih vremena, japanski gigant je bio ispunjen bezgraničnim samopouzdanjem.

Ken Kutaragi, vizionar i "otac PlayStationa", zamišljao je sledeći korak ne samo kao igračku konzolu, već kao trojanskog konja koji će ući u svaku dnevnu sobu i postati centar kućne zabave i računarstva. Srce tog ambicioznog plana bio je Cell Broadband Engine (skraćeno Cell) – mikroprocesor koji je trebalo da redefiniše granice silicijumske tehnologije.

Međutim, ono što je na papiru izgledalo kao naučnofantastični superkompjuter, u praksi se pretvorilo u jedan od najkontroverznijih inženjerskih poduhvata u istoriji gejminga. PlayStation 3 je lansiran 2006. godine sa astronomskom cenom od 599 dolara, komplikovanom arhitekturom i reputacijom hardvera na kojem je gotovo nemoguće programirati. Ovo je priča o tom tehnološkom monstrumu, njegovom unutrašnjem lavirintu i nasleđu koje i danas intrigira inženjere širom sveta.


Nastanak zveri: Savez STI (Sony, Toshiba, IBM)

Razvoj Cell procesora počeo je 2000. godine, neposredno nakon lansiranja PlayStationa 2. Sony je udružio snage sa tehnološkim gigantima IBM i Toshiba, formirajući takozvani STI savez1. Budžet za ovaj projekat bio je kolosalan – procenjuje se da je u razvoj Cell procesora i prateće infrastrukture uloženo preko 400 miliona dolara.

Dizajnerski centar u Ostinu, u Teksasu, bio je mesto gde je preko 300 inženjera radilo pet godina na stvaranju arhitekture koja bi mogla da se koristi ne samo u konzolama, već i u televizorima, medicinskoj opremi, serverima i superkompjuterima. Ideja je bila stvoriti visoko paralelni procesor koji može da obrađuje ogromne količine podataka u realnom vremenu (stream processing).

U to vreme, tradicionalni procesori (poput onih u PC računarima) oslanjali su se na povećanje radnog takta (frekvencije) i izvršavanje instrukcija van redosleda (out-of-order execution) kako bi poboljšali performanse. Međutim, inženjeri STI saveza su uvideli da ovaj pristup nailazi na "termički zid" (potrošnja energije i oslobađanje toplote postajali su nepremostiva prepreka). Odlučili su se za radikalan zaokret: asimetričnu višejezgarnu arhitekturu.


Anatomija Cell procesora: Arhitektura koja je prkosila vremenu

Da bismo razumeli zašto je Cell bio toliko moćan, ali i težak za programiranje, moramo zaroniti duboko u njegovu specifičnu strukturu. Za razliku od modernih procesora koji koriste više identičnih, simetričnih jezgara (poput današnjih osmojezgarnih procesora u PS5 ili Xbox Series X), Cell je bio asimetričan sistem.

Cell Broadband Engine Arhitektura (PS3)
PPE (Power Processing Element)
Glavno jezgro za OS i raspodelu poslova
EIB (Element Interconnect Bus - Ring Bus, 96 GB/s)
SPE 1
SPE 2
SPE 3
SPE 4
SPE 5
SPE 6
SPE 7
SPE 8
PPE rukovodi opštim računanjem, dok 8 ko-procesora (SPE) obavljaju paralelno računanje fizike i grafike.

PPE (Power Processing Element)

Na vrhu hijerarhije nalazio se PPE (Power Processing Element). To je bio dvojezgarni (dual-threaded) 64-bitni procesor zasnovan na PowerPC arhitekturi, koji je radio na taktu od 3.2 GHz. Njegov glavni zadatak bio je da deluje kao "dirigent orkestra". PPE je upravljao operativnim sistemom, raspoređivao zadatke, kontrolisao resurse i upravljao memorijom.

Međutim, sam po sebi, PPE nije bio preterano moćan. Da bi se uštedeo prostor na čipu i smanjila potrošnja energije, PPE je dizajniran da izvršava instrukcije isključivo po redosledu (in-order execution). Za razliku od PC procesora tog vremena koji su mogli da reorganizuju instrukcije u letu kako bi izbegli zastoje, PPE je čekao da se svaka instrukcija završi pre nego što pređe na sledeću, što ga je činilo relativno sporim za opšte računarske zadatke.

SPE (Synergistic Processing Elements)

Prava snaga Cella ležala je u njegovim "radnicima" – SPE (Synergistic Processing Elements). Cell je na jednom čipu imao osam fizičkih SPE jezgara. Svaki SPE je bio specijalizovani 128-bitni RISC procesor, optimizovan za matematičke proračune sa pokretnim zarezom (floating-point).

Svaki SPE je imao dve ključne komponente:

  1. SPU (Synergistic Processing Unit): Izvršna jedinica koja je procesirala podatke.
  2. Local Store (Lokalna memorija): Izuzetno brza SRAM memorija kapaciteta od samo 256 KB.

Ovde dolazimo do najveće specifičnosti i "prokletstva" Cell arhitekture. SPE jezgra nisu imala direktan pristup glavnoj sistemskoj memoriji (RAM-u). Umesto toga, ako je SPE želeo da obradi neki podatak, taj podatak je morao biti prebačen iz glavne memorije u njegov Local Store od 256 KB putem DMA (Direct Memory Access) transfera. Nakon što bi SPE završio proračun, rezultat se morao ponovo poslati nazad u glavnu memoriju.

Od osam fizičkih SPE jezgara na čipu PlayStation 3 konzole:

  • Jedan SPE je bio hardverski isključen kako bi se povećao procenat ispravnih čipova tokom proizvodnje (yield rate). Ako bi jedno jezgro bilo defektno, čip se i dalje mogao koristiti.
  • Jedan SPE je bio rezervisan isključivo za operativni sistem konzole (XMB, pozadinske procese, sigurnost).
  • Preostalih šest SPE jezgara bilo je slobodno za programere i same igre.

EIB (Element Interconnect Bus)

Kako bi se omogućila komunikacija između PPE, SPE jezgara, memorijskog kontrolera i grafičkog čipa, inženjeri su dizajnirali EIB (Element Interconnect Bus). EIB je bio ultra-brza magistrala u obliku prstena (ring bus), sposobna da prenosi podatke brzinom od teorijskih 96 GB/s po smeru. Ova magistrala je omogućavala da se podaci munjevito kreću kroz procesor, sprečavajući uska grla pod uslovom da su programeri znali kako da je pravilno opterete.


Tehničke specifikacije: PS3 vs. Xbox 360

Da bismo stavili performanse PlayStation 3 konzole u istorijski kontekst, neophodno je uporediti je sa njenim najvećim rivalom – konzolom Xbox 360.

Karakteristika Sony PlayStation 3 (Cell) Microsoft Xbox 360 (Xenon)
CPU Arhitektura 1x PPE (PowerPC) + 7x aktivnih SPE 3x Simetrična PowerPC jezgra (SMP)
Radni takt procesora 3.2 GHz 3.2 GHz
Teorijske GFLOPS performanse (CPU) ~230 GFLOPS ~115 GFLOPS
Sistemska memorija 256 MB XDR RAM (glavna) + 256 MB GDDR3 (VRAM) 512 MB GDDR3 (Unifikovana memorija)
Propusni opseg memorije Glavna: 25.6 GB/s, VRAM: 22.4 GB/s Unifikovana: 22.4 GB/s (+ 256 GB/s ka eDRAM-u)
Grafički procesor (GPU) NVIDIA RSX (Reality Synthesizer) @ 500 MHz ATI Xenos @ 500 MHz
Arhitektura grafičkog čipa Tradicionalna (odvojeni piksel/verteks šejderi) Unifikovana šejder arhitektura

Iz tabele je jasno vidljivo da je Cell procesor na papiru nudio dvostruko više sirovih performansi (GFLOPS) u odnosu na trojezgarni Xenon procesor u Xbox 360. Međutim, đavo je ležao u detaljima – tačnije u memorijskoj arhitekturi i grafičkom čipu.


Noćna mora programera: Zašto su developeri mrzeli Cell

Kada su razvojni timovi dobili prve razvojne pakete (dev kits) za PlayStation 3, usledio je hladan tuš. Dotadašnji način programiranja igara bio je potpuno neupotrebljiv na novom Sonyjevom hardveru.

"PS3 je potpuna katastrofa na toliko nivoa... Mislim da je sasvim jasno da je Sony izgubio pojam o tome šta kupci i programeri zapravo žele. Trebalo je da naprave konzolu koja je lakša za programiranje, umesto što su kreirali ovaj arhitektonski košmar."
Gabe Newell, suosnivač kompanije Valve (izjava iz 2007. godine)2

Glavni problem bio je pomenuti Local Store od 256 KB na svakom SPE jezgru. U tradicionalnom programiranju, procesor automatski upravlja keš memorijom (cache coherency). Na Cellu, programer je morao biti "ručni skretničar". Ako bi podaci za fiziku, veštačku inteligenciju ili geometriju prešli granicu od 256 KB, program bi se jednostavno srušio. Programeri su morali da pišu kompleksne algoritme koji seckaju podatke na male delove (pakete), šalju ih u SPE, čekaju da se obrade, i zatim ih spajaju u glavnoj memoriji.

Protok podataka između glavne memorije (RAM) i SPE jezgara
Glavna Memorija (RAM)
DMA Transfer (Čitanje)
DMA Transfer (Upis)
SPE Local Store 1
Maksimalno 256 KB
Podaci → SPU 1
SPE Local Store 2
Maksimalno 256 KB
Podaci → SPU 2

Ovo je zahtevalo potpuno drugačiji način razmišljanja. Dok je Xbox 360 koristio tri simetrična jezgra gde je nit (thread) mogla lako da skače sa jednog na drugo uz minimalne izmene u kodu, PS3 je zahtevao asinhrono programiranje. Multiplatformske igre (naslovi koji su izlazili i za PS3 i za Xbox 360) patile su godinama. Verzije za PS3 su često imale nižu rezoluciju, lošiji framerate i mutnije teksture, jer programeri trećih strana (third-party) jednostavno nisu imali vremena ni budžeta da optimizuju kod za komplikovani Cell.

Napomena

Većina multiplatformskih igara u ranoj fazi PS3 ere (poput Bayonetta ili The Elder Scrolls IV: Oblivion) razvijana je primarno za Xbox 360, a potom portovana na PS3. Zbog komplikovane arhitekture, ti portovi su često bili tehnički inferiorniji, što je stvaralo lažnu sliku da je PS3 slabija konzola.


Grafički paradoks: RSX Reality Synthesizer i memorijski jaz

Prvobitna vizija Kena Kutaragija bila je još radikalnija: on uopšte nije planirao da ugradi namenski grafički procesor (GPU) u PlayStation 3! Verovao je da je Cell toliko moćan da može samostalno da obavlja i procesorske i grafičke proračune (softverski rendering).

Međutim, kako se lansiranje konzole približavalo, postalo je jasno da Cell, uprkos svojoj sirovoj snazi, ne može efikasno da se nosi sa kompleksnim operacijama rasterizacije i teksturisanja koje zahteva moderna 3D grafika. U panici, Sony se obratio kompaniji NVIDIA.

Rezultat te saradnje bio je RSX (Reality Synthesizer), grafički čip zasnovan na arhitekturi GeForce 7800 GTX kartice. RSX je bio solidan čip, ali je patio od nekoliko ključnih nedostataka u poređenju sa ATI Xenos čipom u Xbox 360:

  1. Odvojena memorija: PS3 je imao strogo podeljenu memoriju – 256 MB brze XDR memorije za procesor i 256 MB GDDR3 memorije za grafiku. Ako bi grafičkom čipu ponestalo memorije za teksture, on nije mogao lako da koristi sistemsku memoriju bez ozbiljnog pada performansi. Xbox 360 je, s druge strane, imao 512 MB unifikovane memorije koju su CPU i GPU delili dinamički.
  2. Nedostatak eDRAM-u: Xbox 360 je imao 10 MB ultra-brze eDRAM memorije direktno na grafičkom čipu, što mu je omogućavalo besplatan anti-aliasing (zaglađivanje ivica) u rezoluciji 720p. PS3 je morao da troši dragocene resurse RSX-a ili Cella da bi postigao sličan efekat.

Igre koje su ukrotile zver: Trijumf prve strane

Dok su se spoljni razvojni timovi mučili, Sonyjevi interni studiji (first-party) imali su luksuz vremena, direktne tehničke podrške i dubokog razumevanja hardvera. Upravo su ove ekskluzive pokazale šta je Cell zapravo bio u stanju da uradi kada se pravilno programira.

Naughty Dog i Uncharted trilogija

Studiji poput Naughty Dog-a odbacili su tradicionalne metode razvoja. Shvatili su da, ukoliko žele da izvuku maksimum iz konzole, moraju da prebace grafičke i fizičke proračune sa preopterećenog RSX grafičkog čipa na slobodna SPE jezgra Cell procesora.

U igri Uncharted 2: Among Thieves (2009), Naughty Dog je koristio SPE jezgra za:

  • Kalkulaciju fizike vode i simulaciju tkanine.
  • Dinamičko osvetljenje i senčenje.
  • Dekompresiju tekstura u letu.

Rezultat je bio vizuelni spektakl koji je u tom trenutku izgledao nedostižno za bilo koji drugi hardver na tržištu, uključujući i PC računare sličnog cenovnog ranga.

The Last of Us: Labuđi pev jedne generacije

Krunski dokaz moći Cell procesora stigao je na samom kraju životnog ciklusa konzole, 2013. godine. The Last of Us je pomerio granice onoga što se smatralo mogućim na hardveru sa samo 256 MB sistemske memorije.

Inženjeri su uspeli da implementiraju napredni sistem veštačke inteligencije (gde neprijatelji komuniciraju i menjaju taktiku u zavisnosti od igračevih akcija), kompleksnu fiziku i sistem osvetljenja (ambijentalna okluzija) koji je u potpunosti procesiran kroz SPE jezgra. Cell je bukvalno iskorišćen do poslednjeg tranzistora.


Druga strana medalje: Superkompjuteri i naučni rad

Paradoksalno, ono što je činilo Cell teškim za gejming, činilo ga je savršenim za naučna istraživanja i superkompjuterske proračune. Pošto su SPE jezgra bila izuzetno efikasna u matematici sa pokretnim zarezom, PlayStation 3 je postao najjeftiniji izvor sirove računarske snage na svetu.

Projekat Folding@home

Sony je u saradnji sa Univerzitetom Stanford integrisao klijent Folding@home u operativni sistem konzole. Korisnici širom sveta mogli su da ostave svoje PS3 konzole upaljene tokom noći kako bi procesor simulirao savijanje proteina, što je pomoglo u istraživanju bolesti poput Alchajmerove, Parkinsonove i različitih oblika kancera. PS3 mreža je u jednom trenutku postala najmoćniji distribuirani računarski sistem na planeti, premašivši performanse tadašnjih superkompjutera.

Condor Cluster: Američko ratno vazduhoplovstvo

U 2010. godini, Istraživačka laboratorija Ratnog vazduhoplovstva SAD (AFRL) izgradila je superkompjuter nazvan "Condor Cluster" povezivanjem 1.760 konzola PlayStation 33. Ovaj superkompjuter je korišćen za obradu satelitskih snimaka visoke rezolucije, prepoznavanje objekata i obradu radarskih podataka na terenu, ostvarujući dramatične uštede u odnosu na tradicionalnu superkompjutersku opremu. Cell procesor je time ostao upamćen ne samo kao kontroverzno srce jedne legendarne konzole, već kao impresivan spomenik inženjerske smelosti koji je naterao čitavu industriju da redefiniše granice procesorske arhitekture.