thumb|right|El procesador Cell B.E. de una placa principal de la PS3.
Cell es una arquitectura de microprocesadorThe Cell Project. desarrollada conjuntamente por Sony Computer Entertainment, Toshiba, e IBM, en una alianza conocida con el nombre de “STI”. El diseño de arquitectura y su primera implementación se llevaron a cabo en el STI Design Center de Austin, Texas, durante un periodo total de cuatro años que comenzó en marzo de 2001, empleando un presupuesto de 400 millones de dólares según IBM.
Cell es la abreviatura de Cell Broadband Engine Architecture (“arquitectura de motor Cell de banda ancha”), conocida también como CBEA por sus siglas al completo o Cell BE. Cell emplea una combinación de la arquitectura de núcleo PowerPC, de propósito general y medianas prestaciones, con elementos coprocesadores en cascada, los cuales aceleran notablemente aplicaciones de procesado de vectores y multimedia, así como otras formas de computación dedicada.
La primera gran aplicación comercial del Cell fue la videoconsola PlayStation 3 de Sony. También podemos encontrar este procesador en servidores duales Cell, blade (tipo de servidor autocontenido) Cell en configuración dual, tarjetas aceleradoras PCI-Express y adaptadores de televisión de alta definición.
Características únicas como el subsistema de memoria XDR de RAMBUS y el bus de interconexión de elementos (Element Interconnect Bus, EIB) parece que posicionan el Cell de manera ventajosa en el empleo de aplicaciones futuras en el campo de la supercomputación, donde se sacaría provecho de la habilidad del procesador para manejar núcleos de coma flotante. IBM ha anunciado planes para incorporar procesadores Cell como tarjetas de expansión en sus mainframes IBM System z9, para que de este modo puedan ser empleados como servidores en juegos de rol multijugador en línea masivos (MMORPGs).
En noviembre de 2006, David A. Bader, del Instituto Tecnológico de Georgia fue escogido por Sony, Toshiba e IBM de entre más de una docena de universidades para dirigir el primer Centro STI de expertos para el procesador Cell (STI Center of Competence for the Cell Processor). Esta alianza tiene por objetivo crear una comunidad de programadores y ampliar el apoyo de la industria al procesador Cell. Existe un vídeo tutorial sobre cómo programar el Cell a disposición del público.
Historia thumb|200px|Peter Hofstee, uno de los jefes de arquitectos del Cell.
En el año 2000, Sony Computer Entertainment, Toshiba Corporation, e IBM formaron una alianza (STI) para diseñar y manufacturar el procesador. El centro de diseño STI (STI Design Center) abrió sus puertas en marzo de 2001. El Cell estuvo en fase de diseño durante cuatro años, empleando versiones mejoradas de las herramientas de diseño usadas con el procesador POWER4. Alrededor de 400 ingenieros de las tres compañías trabajaron en Austin, con el estrecho apoyo de once de los centros de diseño de IBM.
Durante este periodo, IBM registró diversas patentes relacionadas con la arquitectura Cell, el proceso de fabricación y el entorno software. La primera versión de la patente del Broadband Engine mostraba un encapsulado de chip conteniendo cuatro “elementos de procesamiento” (Processing Elements), lo cual era la descripción en la patente de lo que ahora se conoce como “elementos power de proceso” (Power Processing Element). Cada elemento del proceso contenía 8 procesadores aritméticos, designados como SPEs en el actual chip Broadband Engine. Dicho encapsulamiento se especula que habitualmente poseía una velocidad de reloj de 4 GHz, con 32 unidades de procesamiento aritmético que proporcionaban un total de 32 GFLOPS cada una. De este modo, el Broadband Engine mostraba un Teraflop de potencia de computación bruta.
En marzo de 2007, IBM hizo público que la versión en 65 nm del Cell BE se encontraba en producción en su planta de East Fishkill, Nueva York.
Nuevamente, durante el mes de febrero de 2008, IBM anunció su intención de comenzar la fabricación de procesadores Cell con tecnología de 45nm.IBM shrinks Cell to 45nm. Cheaper PS3s will follow
Comercialización
El 17 de mayo de 2005, Sony Computer Entertainment confirmó algunas de las especificaciones del procesador Cell que sería incluido dentro de la futura videoconsola PlayStation 3. En esta configuración del Cell, se incluiría un elemento power de proceso (PPE) en el núcleo, junto con 8 unidades sinergísticas de proceso (SPEs) en la oblea de silicio. En la PlayStation 3, las SPEss son 8 , y 1 se reserva para el sistema operativo, dejando con ello 7 SPEs libres para ejecutar el código de los juegos. La velocidad de reloj objetivo durante su lanzamiento son 3,4 GHz El primer diseño se fabricó usando tecnología de fabricación SOI de 90 nm, de cuya producción inicial se encargó la fábrica de IBM en East Fishkill.
La relación existente entre núcleos e hilos es una fuente usual de confusiones. El PPE es capaz de manejar dos hilos de ejecución y se muestra en software como tal, mientras que cada SPE activa se muestra como uno sólo. En la configuración de la PlayStation 3, tal y como la describe Sony, el procesador Cell proporciona nueve hilos de ejecución.
El 28 de junio de 2005, IBM y Mercury Computer Systems hicieron público un acuerdo para producir sistemas basados en Cell para aplicaciones embebidas tales como producción de imágenes médicas, inspección industrial, procesamiento aeroespacial, aplicaciones de defensa, de detección de seísmos y también para telecomunicaciones. Mercury ha comercializado desde entonces blades, servidores convencionales en armario y aceleradoras PCI-Express con procesadores Cell.
En el otoño de 2006, IBM lanzó el módulo blade QS20, empleando procesadores Cell BE dobles que proporcionaba un tremendo rendimiento en cierto tipo de aplicaciones, alcanzando un máximo de 410 GFLOPS por módulo. Los módulos QS22 integran supercomputador IBM Roadrunner, que entró en funcionamiento en el 2008. Mercury e IBM hacen uso del procesador Cell al completo, con sus 8 SPEs activas.
Análisis
El procesador de banda ancha Cell (Cell Broadband Engine) –o más comúnmente Cell– es un microprocesador diseñado para cubrir el hueco existente entre procesadores convencionales de sistemas de escritorio (tales como las familias Athlon, Pentium y PowerPC) y los procesadores especializados de alto rendimiento, como los procesadores gráficos (GPUs) de NVIDIA y ATI Technologies. Su nombre completo indica las especificaciones de su uso, principalmente como componente en sistemas de distribución digital presentes y futuros. Como tal, puede ser empleado en pantallas y equipo de grabación de alta definición, así como en sistemas de entretenimiento informático para la era HDTV. De manera adicional, el procesador puede ser el apropiado para sistemas digitales de obtención de imagen (médicas, científicas, etc.), así como para simulaciones físicas (por ejemplo, modelado de ingeniería estructural o científico).
En un análisis simple, el procesador Cell se puede descomponer en cuatro partes:
estructuras externas de I/O,
el procesador principal (llamado Power Processing Element (PPE), consistente en un núcleo Power ISA (Instruction Set Architecture) v.2.03 de dos vías multihilo simultáneo,
ocho coprocesadores funcionales denominados Synergistic Processing Elements, o SPEs;
y un bus de datos circular especializado de gran ancho de banda que conecta la PPE, los elementos I/O y las SPEs, llamado “bus de interconexión de elementos” o Element Interconnect Bus (EIB).
Para alcanzar el alto rendimiento necesario para tareas matemáticas intensivas como: decodificar o codificar secuencias MPEG; generar o transformar datos 3D; o llevar a cabo análisis Fourier de datos, el procesador Cell aúna las SPE y el PPE por medio del EIB para proporcionarles acceso tanto a la memoria principal como a dispositivos externos de almacenamiento.
El PPE, que es capaz de ejecutar un sistema operativo convencional, posee el control sobre las SPEs y puede comenzar, interrumpir y programar procesos para que se ejecuten en las mismas. Tiene para este fin instrucciones adicionales relativas al control de las SPE. A pesar de presentar arquitecturas Turing completas, las SPE no son completamente autónomas y requieren que el PPE les envíe órdenes antes de poder ejecutar ninguna tarea de utilidad. Sin embargo, la mayor parte del “caballaje” proviene de las unidades sinergísticas de proceso.
El PPE y la arquitectura de bus incluyen varios modos de operación que proporcionan diferentes niveles de protección de memoria. Permitiendo que ciertas áreas de la memoria se protejan del acceso por parte de procesos específicos que se estén ejecutando en las SPE o en la PPE.
Tanto la arquitectura de la PPE como las de las SPE son de tipo RISC, con instrucciones de un tamaño de palabra fijo de 32 bits. El PPE contiene un juego de registros de propósito general de 64 bits (GPR), un registro de coma flotante de 64 bits (FPR) y un juego de registros de tipo Altivec de 128 bits. La SPE contiene solamente registros de 128 bits. Estos se pueden emplear para diversos tipos de datos escalares que pueden ir desde los 8 hasta los 128 bits de tamaño o, para cálculos SIMD, en una variedad de formatos enteros o de coma flotante.
Las direcciones de memoria tanto para el PPE como para las SPEs se expresan como valores de 64 bits, proporcionando un rango teórico de direcciones de 264 bytes (16.777.216 terabytes). En la práctica no todos esos bits se implementan por hardware. De todos modos, el espacio de direcciones es extremadamente grande. Las direcciones de almacenamiento locales de las SPE se expresan como palabras de 32 bits. En la documentación relativa al Cell, el término palabra siempre se refiere a 32 bits, doble palabra a 64 bits y cuádruple palabra a 128 bits.
PowerXCell 8i
En el 2008, IBM anunció una variante revisada del Cell llamada PowerXCell 8i, la cual está disponible en los Servidores Blade QS22 de IBM. El PowerXCell es fabricado con proceso de 65 nm, y agrega soporte de hasta 32 GB de memoria DDR3, así como también unas prestaciones dramáticamente mejoradas en coma flotante de doble precisión en los SPE con picos de alrededor de 12,8 GFLOPS hasta 102,4 GFLOPS total para ocho SPEs. La supercomputadora IBM Roadrunner, actualmente la segunda más rápida del mundo, consiste de 12.240 procesadores PowerXCell 8i, junto a 6.562 procesadores AMD Opteron. Junto al QS22 y la computadora RoadRunner, el procesador PowerXCell también está disponible como un acelerador en una tarjeta PCI-Express y se utiliza como el procesador de núcleo en el proyecto QPACE.
Influencias y contrastes
En algunos aspectos el sistema Cell se asemeja a los primeros diseños de Seymour Cray, pero a la inversa. El conocido CDC6600 empleaba un único procesador, muy rápido, para manejar los cálculos matemáticos, mientras que diez sistemas de menor velocidad ejecutaban programas más pequeños para así mantener a la memoria principal alimentada con datos.
El problema ha sido invertido en el Cell: leer datos ya no constituye el problema gracias a los complejos códigos empleados en la industria. Hoy en día el problema es decodificar los datos en un formato cada vez menos y menos comprimido lo más rápido posible.
Las modernas tarjetas gráficas tienen elementos muy parecidos a los de las SPEs, conocidos como unidades de sombreado, con una memoria de alta velocidad asociada. Unos programas, conocidos como “sombreadores” (shaders), se cargan en dichas unidades para procesar el flujo de datos de entrada que proporcionan estadios previos (posiblemente la CPU), de acuerdo con las operaciones requeridas.
Las principales diferencias se aprecian en que las SPEs del Cell son de propósito mucho más general que las unidades de sombreado, y la habilidad de encadenar bajo el control de un programa varias SPEs ofrece una flexibilidad mucho mayor, permitiendo que el Cell maneje gráficos, sonido o cualquier otra carga de trabajo.