Entendiendo al "enemigo": El Cell

Entendiendo al "enemigo": ratataaaa El Cell.

El Cell es un microprocesador diseñado conjuntamente entre Sony, IBM y Toshiba para aplicaciones y funciones multimedia que requieren una enorme potencia. ¿Pero que es el Cell y para que esta diseñado? Pues en esta entrada lo sabras de forma amena y didactica para entender cual es el plan de Sony y poder ver porque ese interes en llevar al Cell más alla del mundo de los videojuegos por parte del consorcio STI.

Aplicaciones convencionales vs aplicaciones multimedia.

Hace 10 años lo multimedia era tan asquerosamente minoritario que era una tonteria hacer un microprocecesador especializado en multimedia mientras que hoy en dia el 80% de las aplicaciones usadas por las personas son 100% multimedia y estan corriendo en microprocesadores que unicamente estan preparados en un 20% para multimedia. [mad]

Programas como un navegador de internet, un gestor P2P, un gestor de correo electronico, un procesador de texto...; son programas convencionales y cuya evolución ha sido casi nula en los ultimos 10 años.

Programas como un reproductor de video, un reproductor músical, un editor de video, un editor de imagen, un videojuego, una presentación en flash...; son programas multimedia y lo que han ido marcando la evolución en los ultimos 10 años.

Las unidades SIMD

Una unidad SIMD es un tipo de unidad en la que con una sola instrucción se puede hacer varias veces repetidas el mismo calculo en el mismo ciclo y con diferentes valores cada vez.

Justamente las aplicaciones multimedia se caracterizan por hacer los mismos calculos repetidas veces pero con valores distintos. Por eso unidades como el 3Dnow de AMD, el VMX/Altivec/Velocity engine de los PowerPC, los SSE de Intel y muchos otros más estan considerados como aceleradores multimedia porque realmente si un programa se optimiza para ellos y este es multimedia la velocidad ganada en algunos casos suele ser de varias veces más.

Diseño del Cell.

¿Que pasaria si hicieramos el diseño de un microprocesador al reves de la forma convencional?

El Cell esta compuesto por 2 bloques heterogeneos. El primer bloque esta compuesto por el solitario PPE, un microprocesador de forma tradicional con una potencia inferior a un Pentium4 a 1.6Ghz, se encarga de la parte del codigo que no se beneficia para nada de las unidades SIMD, pero dado que PS3 es una consola y no un ordenador la cantidad de aplicaciones de este tipo se reduce a menus de DVD, menus de juegos y el navegador y una potencia asi es suficiente para este tipo de procesadores.

Pero el segundo bloque es más importante ya que es el porque del Cell. Se trata de 7 nucleos compuestos por 1 unidad SIMD, el set de registros e instrucciones asociado a esta unidad, un DMA y una memoria local cada uno y el nombre de cada una de ellas es SPE.

-Cada unidad SIMD puede hacer 8 operaciones por ciclo contra las 4 operaciones por ciclo que hace el SSE3 de los actuales microprocesadores de Intel. Esto significa que en temas multimedia un soloe SPE es el doble de rapido que un Pentium4 a 3.2Ghz y tan rapido como un PentiumD a 3.2Ghz. Pero es que el Cell tenemos 7 de estos elementos.

-La unidad DMA es el controlador de memoria interno del SPE, comunica con los otros SPE y con el EIB del Cell (más abajo teneis la explicación) pero sobretodo comunica con los 256KB de memoria local que estan alli para que los SPE no tengan cuellos de botella por tener que usar el bus de memoria principal.

Broadband Engine

Es el nombre correcto del Cell, ya que Cell es el nombre de la arquitectura mientras que el nombre del Microprocesador es Broadband Engine. Se le llama asi por el EIB.

El EIB es un coprocesador interno en el Cell, no es ningun nucleo más y no calcula nada de codigo de programa sino que se comunica internamente con todas las unidades y controla la conexión de estas con la memoria principal y el RSX.

La memoria principal tiene una velocidad de 25.6GB/seg [fumando] y si no existiese el EIB el diseño del Cell seria automaticamente inutil ya que como mucho cada nucleo tendria 3.2GB/seg para comunicarse con la memoria, algo que supondria un enorme cuello de botella. Pero en el caso del EIB es unicamente el EIB el que se comunica con la memoria y luego cada uno de los 8 elementos tiene una comunicación de 25.6GB/seg con el EIB para no tener nunca cuellos de botella, de ahi a que se le llame motor de banda ancha o Broadband Engine.

El Cell más alla del mercado de los videojuegos.

-Los productos de gama alta de Sony y Toshiba usaran el Cell o variaciones de este con más o menos potencia dentro de sus entrañas.

-IBM esta produciendo Blade Servers con el Cell dentro, se rumorea de que tienen pensado de que sea el sucesor del PowerPC 440 en los Blade Server en detrinimiento del PowerPC 970/G5. La razon para eso es que con el G5 unicamente pueden poner 2 procesadores por placa mientras que con el Cell pueden poner hasta 16.

-Raytheon los va a usar para simulación balistica avanzada.

-Toshiba tiene en proyecto en el que en una retransmisión deportiva ellos darian la retransmisión con varios angulos de camara distintos, luego el usuario mientras viese el partido podria ir cambiando a tiempo real con que angulo quiere usarlo.

-Mercury es una empresa de informatica medica que ya ha lanzado una estación de trabajo con el Cell dentro.

-La universidad de Stanford esta preparando un superordenador compuesto por decenas de microprocesadores Cell.

Videojuegos y multimedia.

-El Cell es más facil de programar que el EE de PS2 debido a que funciona con C++ para programar todos los elementos del microprocesador en vez de ensamblador como pasaba con PS2. Todo el mundo esta diciendo que es más facil el desarollo de PS3 que el de PS2.
Weno si es mas faci que el de la play 2 , porque no sale nada?,
perilla escribió:Weno si es mas faci que el de la play 2 , porque no sale nada?,
Porque, aunque es mas facil, sigue siendo más dificil que programar para otras plataformas y los programadores, son algo vagos... Prefieren hacer cutreconversiones antes de currar algo más para conseguir una buena calidad....
Gran explicación sobre este aparatito que nos está llevando de cabeza a todos los usuarios de PS3.
A ver si los programadores se animan! que no es tan dificil! [qmparto]
Un Saludo!
Gran explicación! Según todo lo que as dicho y si no me equivoco podríamos decir que Cell está diseñado para supercomputación verdad?
Un saludo
hola gente,
acabo de hacer un trabajo para la universidad sobre la arquitectura del cell y no estoy de acuerdo sobre lo que se ha puesto. Para los que no se quieran leer todo el pedazo de POST que me ha salido, las conclusiones es que CELL es un procesador MUY avanzado y MUY revolucionario y es por eso por lo que los programadores no dan de momento con la forma de usarlo eficientemente. El tema está en que hay MUY POCOS buenos programadores EN PARALELO.
Es como si pones a un eoliano normal a conducir un mercedes slk mclaren.. no sacaría el mismo rendimiento que un profesional.

os comento lo que se (si me equivoco, me corrijan). hay cosas que ya se han dicho y cosas que no...

CELL se creó por parte de la alianza SIT (Sony, Ibm, Toshiba). Se buscaba un procesador con una arquitectura muy revolucionaria. Se buscaba un procesador de propósito general con gran capacidad de procesamiento y que sirviera para los productos de las empresas aliadas.

La estructura interna de CELL tiene, por asi decir, 9 núcleos.
Uno de ellos se conoce como el PPE, es un procesador basado en PowerPC que es el encargado del sistema operativo, hacer funcionar algunas aplicaciones y controlar los núcleos de proceso.

Luego tiene 8 núcleos, llamados SPE, que son los procesadores SIMD que procesan datos a lo bestia, se pueden "encadenar" de forma que 2 ó 3 procesen unos datos y los otros procesen otros datos.
cada nucleo tiene una memoria interna, como la caché, pero NO es caché es diferente. Los SPE solo pueden trabajar sobre los datos que se le carguen en sus memorias locales o en las memorias locales de los otros SPE, NUNCA sobre la memoria principal.

El EIB es el BUS de comunicación interno del procesador y no el procesador como se ha dicho.

El procesador tiene un modulo de entrada/salida y una memoria principal X DR Rambus.

En principio se desarrolló en tecnología de 90nm y ahora hay disponible uno en 65nm. Puede correr a velocidades de 4GHz.

Hasta aqui son las caracteristicas del CELL convencional, en nuestras ps3 tiene los siguientes cambios:

De los 8 núcleos SPE, sólo hay disponibles 6, uno se eliminó para reducir costes de fabricación y el otro esta reservado para uso del sistema operativo.

La velocidad del reloj es de 3,2Ghz.

Por último, CELL se usa y usará para consolas, televisiones, servidores, supercomputadores..

Lo mas curioso es que si tenemos dos aparatejos que tengan CELL, según los fabricantes, ambos procesadores se podran interconectar entre sí para compartir la capacidad de proceso.

Bueno, hay más cosas... pero ya creo que me he pasado con las dimensiones del post...jeje perdon por la longitu y espero que os haya parecido interesante
Puntualizando a dbz:

El SPU usado para el sistema se podría liberar para uso en juegos en próximas actualizaciones, ya se ha comentado que es la idea, el octavo spu no se utiliza por economía, pero en otras palabras, se dejo redundante, por la posibilidad de que uno de los 8 fuera inoperativo, es decir, solo se programa para 7 y solo trabajaran 7 por si alguno de los 8 es defectuoso.

En cuanto al creador del post, buena explicación, como algunos te podrían preguntar: Todo esto esta muy bién, pero yo quiero jugar no dividir el átomo, resultados ¿cuando?. Mi respuesta: pasara como con la ps2, a lo largo de la vida útil de la ps3, se irá evolucionando y sacando realmente rendimiento al cell, con lo cual en los 5, 6 o 7 o los que sea años de vida de la ps3, nos iremos encontrando con evoluciones en los juegos.
Desventajas: No es una máquina en la que de un día para otro se consiga el 100 % de lo que es capaz.
Ventajas: Cuando creiamos haber visto lo mas de lo mas en nuestra máquina, nos sorprenderan con un nuevo desarrollo.
Gracias por la puntualización gcs190 :D

Estoy de acuerdo contigo, el cell es muy potente, muy avanzado y muy distinto a lo que se habia hecho hasta ahora, por eso los programadores se estan acostrumbrando a él, porque programar en paralelo no es como programar en secuencial que lo hace cualquiera jejeje [jaja]
La programación concurrente multinúcleo es UN MUNDO chavales... y los programadores no es que sea(mos) vagos, es que desde cambia el tema no ya desde el nivel de código, sino desde la mismísima planificación del programa.

Es como hacer un proyecto con un tio solo que se encargue de todo o tener un grupo de curritos especializados + un coordinador que lo lleve. El curro se hará igual de las dos maneras, pero la planificación y optimización no tiene nada que ver una con otra. No se si me he explicado bien.
Como se libere la PS3 y el potencial de cell, ESTO VA A SER EL POLLO POPEYE
dbz escribió:Lo mas curioso es que si tenemos dos aparatejos que tengan CELL, según los fabricantes, ambos procesadores se podran interconectar entre sí para compartir la capacidad de proceso.


No, si ya estoy viendo yo en las caratulas de los juegos "requiere sony bravia para jugar" [rtfm]

PD:Muy buen post, me ha ayudado a entender un paoquito mas el cell XD
Juer, pues si es asi como decis, la PS3 va a dar mucha chicha no? ;)

Que se pongan a currar los programadores!! :D
ffelagund dices que no hay librerias para porgramar en condiciones para la PS3... y yo dentro de mi ignorancia pregunto... cada vez que se crea una consola ¿no mandan los paquetes de programacion para dicha maquina?
Pues supongo que enviarán algo asi como la API y es precisamente lo que tienen que hacer, adaptar las librerías de la API de por ejemplo x86 a la API de CELL
Al fin y al cabo, nada que no se supiera ya, que cuando se curre para y en el Cell, conseguiremos grandes maravillas.
Está claro que es cosa de programación, pero no de los programadores que hacen los videojuegos.

Sony debe, y seguro que lo está haciendo, facilitar toda la labor posible en sus kits de desarrollo, así como para trabajar en que las librearías utilicen todo este sistema de procesamiento en paralelo sin que el programador deba hacerlo 'a bajo nivel'.

Debe hacerlo así, porque otras consolas del mercado, como por ejemplo, 360, ya trabajan en librearías conocidas y con tiempo de madurez, es decir, DirectX.

Para que esto ocurra, sólo es cuestión de que vaya pasando el tiempo y todo se irá perfeccionando.

Saludos.
No estoy del todo de acuerdo contigo. DirectX no es sólo una librería de gráficos, incluye muchas más, como una librería para el sonido, de controladores, de red, etc. No es exactamente el equivalente a OpenGL.

Con respecto al resto de librerías, recuerda que 360 también es multinucleo, no de la misma forma que el procesamiento en paralelo del Cell, pero también requiere un balanceo de la ejecución.

Olvidemos SourceForge. El que se tiene que poner las pilas es Sony y facilitar en todo lo posible el trabajo de los equipos. El éxito de su consola depende de ello.

Saludos.
MUCHÍSIMAS GRACIAS por crear este hilo, me viene de perlas para recopilar información sobre el CELL, sobre el cual tengo que hacer un trabajo y exposición para fin de trimestre. Con un poco de suerte, me vendrá genial.

Salu2 y gracias!
yo pensaba que el cell era un quadcore como mucho, pero joder 8 nucleos(procesador + 8 SIMD(- 1 inactivo))...
Ahora entiendo el potencial de esta maquina...
No creas que es oro todo lo que reluce , aunque tenga 8 cores , como te han comentado antes , solo 1 de ellos es de proposito general , los otros 8 cores se tratan de unidades vectoriales , no son quizas la unidad que tu tienes en mente , no es que tenga 8 nucleos como los que tienes en tu pc ...

Felicidades por la explicacion al creador , a mi quizas la principal pega que le veo a cell es su incapaz para ejecutar fuera de orden y su pobre prediccion de saltos , aparte de eso la unidad de proposito general solo puede ejecutar 2 hilos , frente a otras unidades que poseen mas, sin embargo y como se ha dicho mas de una vez , para codigos que saquen rendimiento a las unidades vectoriales el aumento en flops va a ser espectacular , es el punto fuerte de esta plataforma.
muy buen hilo !

si alguien quiere algo más de información puede mirar el el blog de The need for gaming:
http://theneedforgaming.blogspot.com/2006/10/programando-la-ps3-vs-xbox360.html

y hay otro articulo super interesante sobre los costos de programación xbox-ps3 bastante interesante:

http://theneedforgaming.blogspot.com/2007/11/costes-de-creacin-de-juegos-ps3-y-xbox.html

Creo sinceramente que no va a haber nada decente para la ps3 hasta verano, y ésto le puede costar caro a sony por ¿ falta de planificación ? )
en fin, esperemos que aguante mientras tanto...
un saludo
24 respuestas