Entendiendo al "enemigo": 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.
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
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.