# Cell

* Per a altres significats, vegeu «Cell (desambiguació)».
Cell és una Unitat Central de Procés (ang.: CPU) (xip principal d'un ordinador) desenvolupat per Sony, IBM i Toshiba per a la consola de jocs Playstation 3 inicialment però també per a aplicacions d'aparells Cinema a casa i com a Estació de treball d'alt nivell.
El Cell té una potència de càlcul d'un superordinador, superior al Cray X1E segons l'estudi del LBNL (Lawrence Berkeley National Laboratory) (PPT) (PDF) però per a treure'n partit caldrà desenvolupar-hi programes específics.
Imatge. Incorpora un nucli principal (dit PPE: Power Processor Element) i vuit nuclis addicionals (S.P.E.: Elements de Procés Sinèrgics).

## PPE

El nucli principal (PPE) és un PowerPC nou i pot gestionar dos fils de procés (ang. Threads) simultàniament (SMT ang.: Simultaneous MultiThreading) de manera similar al sistema Hyper-threading de Intel.
El PPE està destinat al procés de tasques tradicional accedint a la memòria principal mitjançant memòries cau de nivell 1 i 2.

## SPE

Els nuclis addicionals (SPE) no treballen sobre la memòria principal sinó sobre una memòria local interna (SRAM) incorporada en el xip, sense memòria cau intermèdia. Aquesta memòria local es carrega / descarrega mitjançant un mecanisme de DMA (Accés directe a memòria) de càrrega de blocs de memòria.
Aquest fet proporciona un accés molt més ràpid i previsible (sense memòria cau, i al mateix xip) a les dades que no l'accés a la memòria principal mitjançant memòria cau i unitàriament (amb els retards en cas que el valor cercat manqui i s'hagi d'anar a cercar a la memòria principal).
Tanmateix els SPE, condicionats per l'entrada / sortida per DMA (en blocs) i la reduïda memòria local (256 KB), no són aptes per a aplicacions genèriques amb accesos aleatoris, sinó més aviat per a aplicacions de tractament intensiu de dades (procés multimèdia, xifratge, codificació / descodificació, etc.) mitjançant codi compacte que es pot estructurar en Overlays o Plugins en cas de no cabre-hi tot.

## Programari de simulació

Existeix un programari de simulació del xip i compilador creuat per al desenvolupament de programes sobre el sistema Linux Fedora Core que està disponible al Centre de Supercomputació de Barcelona.

## Referències de l'SPE a l'espai d'adreces de memòria principal i compilació

Les referències a l'espai d'adreces principal dit també EA (Effective Address) es materialitzen en una taula d'adreces particular dita TOE (Table Of Efective Address References) que és linka amb el programa SPE però que cal resoldre en l'espai del PPE.
Les entrades en aquesta taula tenen com a etiqueta el prefix _EAR_ seguit de l'identificador de l'adreça referenciada, i el contingut es deixa a 0 per a no obstaculitzar el linkatge del SPE.
Al final del procés el compilador ppu-gcc emprarà les etiquetes _EAR_ per a omplir la taula en encaixar-lo dins el programa PPE.
Exemple de taula TOE en font assembler:
Imatge En el procés de compilació i linkatge, hem d'obtenir un executable per al PPE que inclogui el del SPE com en una motxilla, per a poder-lo llançar. El format d'aquesta motxilla es diu CESOF (Cell Embedded SPE Object Format).
Exemple de programa "Hola Món" per a l'SPE:
Exemple de programa controlador de l'anterior per al PPE:
Primer es compila (spu-gcc) el font de l'SPE i s'acobla (spu-gas) la taula TOE. Es linken els objectes (spu-gcc) i l'executable s'embolcalla (embedspu) com a objecte, especificant un identificador de base que el PPE emprarà per a carregar-lo, obtenint un mòdul objecte CESOF (executable embolcallat) per a linkar-lo amb el programa PPE.
Posteriorment es compila el programa del PPE (ppu-gcc) i es linka el resultat amb el mòdul CESOF (ppu-gcc altre cop) omplint la taula TOE amb les referències a l'espai del PPE dels sufixos de les etiquetes _EAR_ obtenint l'executable conjunt final.

## Sistemes amb processador Cell
### PlayStation 3

Des del 23 de març de 2007 estarà disponible a Europa la consola de jocs PlayStation 3 que incorpora el processador Cell.
Encara que curta de memòria RAM (256MB en les versions inicials) és una plataforma interessant per als desenvolupament d'aplicacions per a les SPU del Cell.
Per a fer-la servir com a plataforma de desenvolupament cal instal·lar-hi el sistema operatiu Linux amb les variants explicades a l'article Linux a la PlayStation 3. En acabat hi instal·larem el kit de desenvolupament Cell BE SDK i l'IDE basat en l'Eclipse.

### Les targetes IBM BladeCenter QS20

Des del 12 de setembre de 2006 estan disponibles al mercat les targetes IBM BladeCenter QS20.

## Referències

* ↑ LBNL - El Potencial del Cell per al Càlcul Científic (PPT) Arxivat 2006-09-16 a Wayback Machine. (anglès)
* ↑ LBNL - El Potencial del Cell per al Càlcul Científic (PDF) Arxivat 2007-04-18 a Wayback Machine. (anglès)
* ↑ Prototipus ordinador targeta (ang.: blade server) amb dos processadors (anglès)
* ↑ Cell BE Software Development Kit v. 2.0 Arxivat 2007-03-11 a Wayback Machine. (anglès)
* ↑ IBM Integrated Development Environment for Cell Broadband Engine SDK Arxivat 2007-03-11 a Wayback Machine. (anglès)
* ↑ Servidors Cell de IBM surten a la palestra (anglès)
* ↑ IBM - IBM BladeCenter QS20 (anglès)

## Enllaços externs

* Prototipus ordinador targeta (ang.: blade server) amb dos processadors (anglès)
* Anandtech - Entendre el processador Cell (anglès)
* IBM - Tecnologia avançada de compilació per a explotar el rendiment de l'arquitectura Cell Broadband Engine™ (anglès)
* IBM - Deslliurant la potència del microprocessador Cell (anglès)
* Recerca Unió Europea - Projecte ACOTES: Advanced Compiler Technologies for Embedded Streaming. (anglès) La UPC hi participa. El projecte, basat en el Cell, pretén millorar l'eficiència del programador en aplic. de tractament de corrents de dades en processament paral·lel.
Viccionari