Stirea este foarte interesanta insa eu am retinerile mele in ceea ce privesc afirmatiile domnului GeoHot.

In primul rand vreau sa pornesc de la arhitectura acestui sistem folosit in PS3, insa nu exclusiv, el reprezinta
rezultatul cercetarii dezvoltate in Austin, Texas a 3 companii de renume : Sony, Toshiba si IBM.
Dezvoltarea tehnologiei CELL a inceput in 2001 si are la baza experienta si utilajele celor de IBM, fiind la origine
un CPU G4 POWER. Ideea ce sta la baza acestui tip de procesor se numeste Arhitectura Distribuita si este analizata
inca din anii '70, insa dezvoltarile hardware nu au facut posibila intregrarea lor in sisteme pentru utilizatori casinici
fiind rezervate pentru super-computerele vremii.
Vorbind strict de procesorul ce se gaseste in PS3, acesta are un element PPE (Power Processing Element) pe DIE acompaniat
de inca 8 Coprocesoare SPE (Synergistic Processing Elements) specializate in calcule vectoriale. Dintre acestea 8
procesoare, unul este rezervat Sistemului de Operare al consolei, iar altul este rezervat pentru realizarea functiilor
specifice Arhitecturii Distribuite.
Arhitectura CELL (cum mai este denumita) reprezinta o evolutie de la clasica Hardvard X86 sau X64 la arhitectura specificia
procesoarelor grafice dedicate, gasite atat la nVidia cat si la ATI.

Dar ce reprezinta aceasta Arhitectura Distribuita?

Exista mai multe definitii, insa nu exista una admisa in unanimitate, dar eu va voi explica punctul meu de vedere
(cat mai succint). O prima acceptiune a termenului de "distribuit" se refera la amplasarea unor entitati logice in
spatii geografice diferite. Ca un exemplu practic ne gandim la modul in care este organizata o banca si sucursalele sale.
Astfel orice sucursala efectueaza autonom fata de celelalta operatiunile bancare, iar rezultatul operatiunilor este trimis
sub forma de rapoarte bancii centrale.
O alta caracteristica a sistemului distribuit este repezentata de modalitatea de alocare a resurselor, astfel fiecare
entitate logica beneficiaza de resurse locale, nedisponibile partajat celorlalte entitati
Pornind de la cele doua postulate anterioare putem concluziona astfel:
Printr-un Sistem Distribuit se inteleg sistemele care prezinta urmatoarele caracteristici:
1. Entitatile logice nu se gasesc in aceasi locatie fizica;
2. Fiecare entitate are acces la resurse locale, nepartajate direct cu restul entitatilor.
Ca un exemplu usor de inteles, Arhitectura Paralela reprezinta un caz particulat de Arhitectura Distribuita, numita
Strans Legata. In acest mod, entitatile fizice pe langa resursele locale, acceseaza o resursa comuna, numita resursa partajata.
In capul procesoarelor resursa locala este reprezentata de cache-ul fiecarui Core, iar resursa partajata este reprezentata de cache-ul
de nivel superior.

Ei bine, procesorul CELL nu este o arhitectura paralela, cum este in cazul XBOX360,ci este o arhitectura distribuita de tipul loose-connection.
Modalitatea de comunicare intre entitatile fizice se face prin mesaje, cuvinte de cod cu structura bine definita (si codata), gestionate de PPE,
in cazul de fata un PowerG4 la 3.2 Ghz de la IBM. Acest PPE are rolul de Master in sistem, distribuind sarcinile unitarilor PPE (care la randul lor
contin Pipeline).
Registrii continuti in SPE sunt exclusivi pe 128 de biti, iar PPE poate functiona cu registrii de la 8 pana la 128 de biti, aducand performante ridicate
sistemului, insa este foarte greu de decriptat acest mod de operatie fara a avea acces la intrumente date de producator.
Memoriile locale folosite de SPE sunt accesate printr-o tehnica speciala, datorita lungimii cuvintelor (quadwords) printr-o magistrala special
construita pentru acest tip de memorie (EIB, o retea "ring" de interconectare a resurselor hardware din consola).

De ce este greu de intervenit in sistem?

Datorita Arhitecturii Distribuite, acest sistem nu functioneaza ca un computer personal, ci are un sistem de operare special conceput pentru aceasta
aplicatie (in cazul de fata, consola), sistem de operare ce lucreaza la nivel de byte ca informatie si la nivel de bit la prelucrarea registrilor.
Organizarea registrilor este unica si nu este facuta public, astfel este imposibil de cunoscut modalitate de operare si mai ales semnificatia bitilor
din registrii. Fara aceste elemente de baza nu ai cum sa accesezi corect resursele sistemului.
O alta problema este reprezinta chiar de arhitectura specifica CELL, care nu pastreaza multe lucruri de la X86 sau X64, astfel implementarea unei interfete
pe un FPGA este putin probabil, pentru ca efectiv inseamna emularea unui EIB compatibil.
Pentru cine nu cunoastea, FPGA reprezinta hardware reconfigurabil, astfel se pot creea procesoare de la zero numai din software, care controleaza
legaturile fizice din interiorul FPGA. Este foarte greu, ca nu spun imposibil emularea registrilor de 128 de biti pe un sisteme pe 32 de biti cum este FPGA.
O alta problema in calea modari este si tehnica de criptare, una hardware cu un SPE dedicat acestei operatiuni.

Parerea mea este ca acasa mi se pare imposibil de modat un sistem CELL tocmai datorita arhitecturii diferite pe care opereaza, ne fiind accesibila de pe o
platforma X86 sau X64 decat prin emulatoare foarte greu de construit si prespupunand cunostiinte perfecte despre registrii si diagramele de functionare ale
acestora.