Oye, Juande, tú que sabes de estas cosas, ¿qué es cell?
Cell es el nombre inglés de célula, o celda…
Eh, pero, ¿qué tiene eso que ver con la PlayStation 3?
¡Ah, entonces lo que quieres saber es qué es Cell, el chip anunciado por IBM, Toshiba y Sony!
Eso mismo…
De acuerdo. Cell es un chip compuesto por un núcleo microprocesador basado en tecnología PowerPC, junto a 8 unidades más, elementos de proceso sinérgico, término de marketing referido a unidades de co-procesamiento vectorial.
O sea…
Se trata de un “sistema en un chip”, que va más allá de un simple procesador. IBM ha simplificado el diseño del PowerPC, para que ocupe menos en el chip, ha creado unidades especializadas en el procesamiento vectorial (como Altivec) de datos de gran tamaño, cada una con su propia memoria dentro del chip, para que la ejecución sea lo más rápida posible.
En total, hay un procesador PowerPC de 64 bits, con arquitectura SMT (Simoultaneous Multi-Threading, equivalente al HyperThreading de Intel) , que controla el funcionamiento de 8 unidades basadas en PowerPC de 128 bits.
Entonces, ¿Cell es un PowerPC?
La unidad central está basada en el conjunto de instrucciones y registros PowerPC, concretamente la versión de 64 bits, pero presenta las siguientes diferencias:
- No existe la posibilidad de ejecutar instrucciones en orden diferente al que se presentan en memoria; esto simplifica enormemente el diseño del chip
- En un único núcleo hay un par de unidades de ejecución de instrucciones, de modo que el chip puede ejecutar dos hilos (tareas simultáneas) a la vez, cada una de ellas en el mismo orden en que se presentan; nada de más de 200 instrucciones “al vuelo” en el procesador, como en el PowerPC 970
- Dentro del chip hay un bus de comunicaciones que permite pasar 96bytes por ciclo de reloj, o lo que es lo mismo, 768 bits/ciclo, mucho más ancho que cualquier PowerPC
- Las comunicaciones van “marcadas”, para que cada unidad co-procesadora envíe y reciba información marcada. Esa información de marcado puede ser de 64 bits, con lo que se podría llegar a 2^64 unidades de procesamiento diferentes
¿Cómo es cada una de esas unidades de co-procesamiento?
Las “unidades co-procesadoras sinérgicas” (Synergistic Processing Elements) se parecen mucho a los PowerPC 601 en estructura, pero con 128 registros de 128 bits. Disponen de 256K de “RAM local”, es decir, no se trata de una caché —una memoria que se carga en anticipación de lo que es presumible que el programa necesite—, sino de un bloque de 256K en el cual el programador puede hacer lo que quiera.
El conjunto de instrucciones de los SPE permite realizar operaciones en un sólo ciclo al estilo Altivec, pero el número de registros disponibles es mucho mayor.
Entonces, ¿cuál es el rendimiento de un chip Cell?
Cada unidad SPE puede realizar hasta 8 operaciones de punto flotante de 64 simultáneamente por ciclo de reloj, por lo que el redimiento es de 32GFlops por unidad a 4GHz. En un chip con 8 SME (configuración típica, aunque puede haber chips con más y con menos unidades), el rendimiento puede llegar a 256GFlops por unidad.
¿Un PowerPC a 4GHz?
No es un PowerPC, es una versión mucho más recortada. La ausencia de cachés, y la simplificación enorme de la lógica de control permiten aumentar la frecuencia, sin aumentar la disipación tanto como en un PowerPC 970. Además, el gran número de unidades hacen que el chip sea más grande, favoreciendo una disipación menos concentrada.
Y 256GFlops son, ejem, equivalentes a unos 16 PowerPC G5 a 2GHz…
Exacto. Si la frecuencia del G5 fuese de 4GHz —igual que la del Cell—, el rendimiento sería exactamente el de una de las unidades procesadoras. Si mal no recuerdo, Sony quería que el rendimiento de la próxima PS3 fuera de unos 1024GFlops, o 1TFlop. Eso lo obtendrías con exactamente cuatro unidades Cell… en condiciones óptimas.
¿Condiciones óptimas?
Sí, el rendimiento en punto flotante que hemos calculado se obtiene al utilizar de forma continua las instrucciones más efectivas disponibles en la arquitectura PowerPC, pero existen muchas instrucciones intermedias que no tienen el mismo rendimiento en punto flotante, o que son necesarias para “acomodar” los datos en los registros, y que realmente no computan nada. En ese caso, el rendimiento baja mucho.
También estamos suponiendo que todas las unidades están trabajando a la vez, lo que no siempre será el caso. Aún así, esto ocurre con todos los procesadores, de modo que en todo caso una unidad Cell es un procesador impresionante.
¿Tan impresionante como para meterlo en una máquina de Apple?
Esa es una pregunta muy buena, pero ahora mismo tengo que irme… Quedamos para desayunar, y te lo cuento 😉
Comentarios
3 respuestas a «Todo lo que siempre quiso saber sobre Cell, y nunca se atrevió a preguntar (I)»
[…] Todo lo que siempre quiso saber sobre Cell, y nunca se atrevió a preguntar, parte 1 […]
[…] Aleatorio // SMS Mac, o cómo enviar SMS sin echar mano del móvil » « Todo lo que siempre quiso saber sobre Cell, y nunca se atrevió a preguntar (I) Todo lo que siempre quiso saber sobre Cell, y nunca se atrevió a preguntar […]
[…] lo que siempre quiso saber sobre Cell, y nunca se atrevió a preguntar, Parte I y Parte II Artículo de divulgación en dos partes sobre el procesador Cell de IBM, Sony y […]