lunes, 11 de junio de 2007

Hablemos un poco mas sobre el Procesador Cell


El procesador Cell es el resultado del esfuerzo conjunto entre IBM, Sony y Toshiba para desarrollar un procesador de última generación, que además es el corazón de la consola PlayStation 3. Dichos esfuerzos se han venido desarrollando conjuntamente desde hace más de 3 años y con un costo de más de 400 millones de dólares.



Este procesador ha sido diseñado para realizar cargas de trabajo de cálculo intensivo y aplicaciones de banda ancha con contenido multimedia, entre las que se incluyen videojuegos, películas y otras formas de contenido digital. Todo ello está conformado por una arquitectura IBM POWER y múltiples unidades de cálculo vectorial del tipo SIMD (una instrucción-múltiples datos) capaces de realizar importantes cálculos en coma flotante.



Este procesador es escalable y puede utilizarse en una amplia variedad de dispositivos, desde televisores hasta estaciones de trabajo.



Los detalles concretos sobre la arquitectura se publicaron en la ISSCC (Conferencia Internacional de Circuitos en Estado Sólido) del 6 al 10 de febrero de 2005 en San Francisco. Algunas de las características de esta arquitectura son:





  • Arquitectura Multi-hilo y multi-núcleo.


  • Gran ancho de banda a/desde la memoria principal.


  • Interfaz de entrada/salida flexible.


  • Manejo de los recursos en tiempo real para aplicaciones en tiempo real.


  • Sistema DRM (Administración de Derechos Digitales en sus siglas en inglés) en el propio chip.


  • Fabricación en 90nm (nanómetros).


  • Frecuencia de trabajo desde 3.2 GHz.


  • 1,3 Voltios.


  • Operación a 85ºC con un disipador.


La primera generación de este microprocesador trabaja a 4.8 Ghz y la versión instalada en el PS3 a 3.2 Ghz.




Esta es la tecnología que Sony, Toshiba e IBM pretenden usar para inundar el mercado con dispositivos aprovechando su gran escalabilidad, posibilitando que sistemas con, en principio poca potencia de cálculo, compitan con los superordenadores científico.




Linux y PS3



En breves palabras, el procesador Cell consiste en 1 nucleo 64-bit Power/PPC de propósito general conectado a 8 núcleos DSP de propósitos especiales (o SPU). La arquitectura básica es descrita por IBM como un “system on a chip” (SoC) pero ArsTechnica prefiere describirlo como un “network on a chip”, y me parece que es más correcto. Los ocho SPUs son esencialmente completos “computadores” vectoriales, ya que consisten de CPUs relativamente simples con su propio almacenamiento, todos conectados entre ellos y con el núcleo PPC. La magia consiste en que este procesador (cuya primera generación es de 4.8 Ghz), será capaz de usar conectividad de banda ancha de ultra alta velocidad (”ultra high-speed“) para que un procesador interopere con otro como si fueran un gran sistema. Similar al sistema en que las celulas neuronales interoperan sobre la red del cerebro. (Wow. Deberian llamarlo “Brain Cell”.)


¿Qué tiene esto que ver con GNU/Linux, el PlayStation 3 y Apple?


Bueno primero que nada, partimos por lo último. Apple e IBM acaban de tomar caminos diferentes. Apple optó por Intel (x86) en vez de seguir usando la tecnología de IBM (Power/PPC). Analicemos esto por un segundo. Apple usa procesadores PowerPC y Cell tiene un núcleo PowerPC. Hasta ahi todo bien, y teoricamente Apple podría haber aprovechado los giga flops de poder (15 GFlops del G5 versus 218 GFlops del Cell) para seguir avanzando por ese camino. Al fin y al cabo, 8 de los 15 Top SuperComputers son Power/PPC. El primer problema, es que todo ese poder todavía no es portátil y Apple vende más portátiles que estaciones de escritorio (la fortaleza de Intel, que ahora promete un Pentium M “Yonah” dóble núcleo de 2 Ghz para portátiles el 2006). El segundo, es que para incrustar un núcleo PPC en el Cell, tuvieron que simplificar su unidad VMX/AltiVec (la gracia del G5) al nivel que no es mejor que el VMX/AltiVec del G4. La tercera razón es que Apple igual hubiese tenido que reoptimizar todo para sacar provecho de las SPUs. Tecnicamente hubiesen podido, pero ya han invertido fuertemente en AltiVec y este procesador es relativamente débil en AltiVec.


Las fortalezas de Cell hacen que sea un candidato perfecto para ser el procesador de, por decir cualquier cosa, un PlayStation, y (oh! sorpresa) efectivamente es el corazón del próximo PlayStation 3. Con 218 GFlops es increiblemente poderoso, pero ni se acerca a un “supercomputador” (no importa que diga Sony, el BlueGene, el supercomputador más poderoso del mundo constituido por 131,072 procesadores, produce 91,750 GFlops), mejor dicho, ni le alcanza para entrar al Top 500. La gracia es que el procesador Cell esta optimizado para actividades de red, de audio y video. Perfecto para un centro de entretenimiento (Nintendo y Microsoft ambos usan procesadores Power/PPC de IBM pero sólo Sony usa un procesador Cell). En el caso del PlayStation, usa un CPU Cell con un núcleo PowerPC a 3.2 Ghz y 8 SPUs a 3.2 Ghz cada uno (con 1 reservado para redundancia), entregando un rendimiento de punto flotante de 218 GFlops (repito, PowerMac G5 = 15 GFlops). Adicionalmente tendrá un GPU dedicado (procesador gráfico), desarrollado por nVidia, RSX a 550 Mhz procesando 1.8 TFlops. Ahora imaginense a los tipos de “Enchulame la Maquina” instalando 3 de esos en un Honda Integra.


Lo interesante no es únicamente que a mediados del 2006 vamos a tener un equipo que cueste entre US$300 y US$500 con 2 TFlops (CPU + GPU) de poder y un procesador capaz de trabajar en ambientes de procesamiento colaborativo, repartiendo la carga sobre todos los procesadores que esten en red (como un cluster funciona sobre redes de Gigabit Ethernet o Fiber Channel). Adicionalmente, Sony anunció que apoyará Linux y que vendrá instalado en un disco duro removible que será vendido por ellos. Linux en Cell está más avanzado de lo que parece. En LinuxTag 2005 apareció Arnd Bergmann hablando sobre su trabajo en eso:


"A diferencia de sistemas SMP o chips multi-núcleos (multi-core), sólo el núcleo PowerPC de propósito general, es capaz de correr un sistema operativo generico, mientras que las SPUs son especializadas en correr tareas computacionales. Portar Linux para que corra en el núcleo PowerPC de un procesador Cell es una tarea relativamente simple por las similaridades existentes con plataformas como la IBM pSeries o Apple PowerMac, pero no da acceso al inmenso poder computacional de las SPUs.


Se ha propuesto un modelo para proporcionar una interfaz que intente integrarse bien al set existente de llamadas del sistema en Linux y permita que los desarrolladores de software puedan facilmente integrar el uso de SPUs a sus propias librerias y aplicaciones."

No hay comentarios: