Uspon i pad tehnološkog monstruma: Kako je Cell procesor definisao i prokleo PlayStation 3
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.
Glavno jezgro za OS i raspodelu poslova
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:
- SPU (Synergistic Processing Unit): Izvršna jedinica koja je procesirala podatke.
- 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.
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.
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:
- 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.
- 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.