Todo lo que siempre quiso saber sobre Cell, y nunca se atrevió a preguntar (Parte II), por Juan de Dios Santander

jdsant_2004_05_11_80x80.jpg¿Qué te pido, Juande?

A ver, un café con leche… y una tostada de tomate.

¡Un café con leche y una de tomate para mi amigo! Y mientras, ¿me cuentas si el Cell lo va a utilizar Apple?

Je, je, eso es ir al grano 😉

Bueno, te había dicho que los Cell son procesadores que a 4GHz son capaces de proporcionar hasta 256GFlops, lo que los hacía máquinas impresionantes.

Sí, sí, o sea que es el próximo procesador que utilizará Apple, ¿no?

Pues yo creo que no, o al menos no para un “ordenador Macintosh”

A ver, explícate…

¿Recuerdas que te dije que los 256GFlops por procesador Cell se producen en condiciones óptimas?

Sí, utilizando un único tipo de instrucción de forma continua…

Y además, teniendo ocupadas al 100% todas las unidades de proceso “sinérgico” (los SPE), o miniprocesadores auxiliares…

Ajá… ¿Entonces?

Entonces resulta que un sistema operativo tiene que estar proporcionando continuamente tareas a cada una de los SPE para que el rendimiento sea suficientemente alto. Para un sistema operativo convencional, aunque multihilo y multitarea como es Mac OS X, eso es una carga de trabajo adicional que tendría que ejecutar el núcleo central de Cell, ese que dijimos que era como una especie de PowerPC G5 que servía para distribuir los cálculos a los SPE,

Pero no tuvimos en cuenta a ese procesador a la hora de calcular los Gigaflops del Cell

Exacto. No lo tuvimos en cuenta, porque el procesador central no dispone de unidades de proceso vectorial, algo que sí está presente en los SPE. El rendimiento vectorial del procesador central puede estar en torno a 1GFlop, cuando el de cada SPE es de 32GFlops como máximo…

Pero los SPEs, entonces, tienen Altivec, lo que Apple llama el “Velocity Engine”

Tienen un subconjunto de las instrucciones del Velocity Engine, y tienen muchos más registros (128 frente a 32, o lo que es lo mismo, 8 veces más), de modo que es más factible tener los SPEs con un flujo de instrucciones más o menos continuo. Las funciones de filtrado, y de transparencia, son las más apropiadas para los SPE.

Las instrucciones que faltan harían que Apple tuviera que modificar sustancialmente la aceleración Altivec del sistema operativo, de modo que haría falta una versión para PowerPC G4 y G5, y otra diferente para Cell.

Además, aún hay otra cosa que hace que Cell no sea un procesador pensado para ordenadores de sobremesa…

¿Cuál?

¿Recuerdas que la semana pasada comentábamos que Cell no disponía de cachés, para minimizar el número de transistores, y poder meter más unidades de ejecución, reduciendo al máximo la lógica de control?

Recuerdo algo así, sí: en lugar de caché, cada SPE disponía de sus propios 256K de RAM

Exacto. Se trata de una arquitectura dedicada a que cada una de las unidades SPE ejecute un pequeño programa independiente del resto, de forma que la cantidad de datos que entra y sale de cada SPE es pequeña, y la mayoría del trabajo se realiza dentro del SPE.

En una PlayStation 3, con 4 Cells, dispondríamos de 32 SPEs, cada uno de los cuales puede estar trabajando en tareas independientes, como controlar personajes no jugadores, controlar el entorno, decodificar un vídeo que se va a componer con otra parte de los gráficos…

Pero esa es justamente la tarea para la que están dotados: para manejar información que ha de ser decodificada, y que va cambiando con el tiempo, de modo que una caché en realidad no beneficia la velocidad de proceso, ya que hay que ir cargando continuamente los procesadores.

Las aplicaciones de escritorio, por contra, tienden a manejar muy poquito código cada vez, y luego aplicarlo a trozos de imagen, que caben en la caché de trozo en trozo. De esta forma, la caché siempre está llena, y cuando el procesador vaya a ir a por el trozo siguiente, la caché ya dispone de él en su interior.

Si hacemos cuentas, al final cada chip Cell tiene 2MB de RAM entre todos los SPEs, y 512KB más para el procesador central. Una aplicación pequeña, con muchas tareas muy bien definidas, pero computacionalmente intensa, es lo ideal para esta clase de chips.

¿Lo que me estás diciendo es que Cell tiene una gran capacidad de proceso para tareas específicas, pero que no es un gran procesador de propósito general?

Justo, lo has entendido a la primera 😉

Entonces, ¿no es probable que Apple lo utilice para próximas máquinas?

Esa es la expresión, no es probable, aunque no es imposible.

Una pregunta: ¿por qué he oído hablar de revolución Cell, si no es para tanto?

Es que aún no hemos hablado de una de las características más importantes de Cell, y es que Cell está pensado no para configuraciones de un Cell, ni siquiera configuraciones de cuatro Cells, como en la PS3, sino en combinaciones de millones de Cells.

¿¡Millones de Cells!?

Eso es: los procesadores Cell están pensados para que los procesadores centrales de un Cell pueda enviar trabajados a un SPE… pero ese SPE no tiene por qué estar en el mismo chip que el procesador central, ni siquiera en la misma placa madre, ni siquiera en la misma red local… Un procesador Cell puede enviar trabajos a un SPE que se encuentre en cualquier chip Cell al que se pueda conectar en red…

¿Cualquier procesador Cell puede enviar trabajo a cualquier unidad del mundo?

Excepto por temas de seguridad, conectividad, y otras consideraciones, que se puedan establecer, potencialmente es posible.

Ajá… Y si no es para ordenadores personales, ¿qué puede hacer Apple con Cell?

Bueno, vamos a especular un poquito…

En primer lugar, aunque no sea un procesador de proceso específico puro, Cell puede acomodar un buen número de tareas por sí mismo. Una de ellas podría ser simular otros procesadores 😉

Pero es que además dispone de conexiones de muy alta velocidad entre el procesador y otros elementos del sistema, al incorporar una tecnología, FlexIO, propiedad de Rambus. Con esa tecnología es con la que se pueden interconectar varios Cells entre sí, pero también un Cell o varios con periféricos, como discos duros de alta velocidad, u otro tipo de lectores.

Con un único procesador Cell sería posible descodificar en tiempo real varios canales de televisión digital, y estar grabándolos en disco duro, por ejemplo… Y no hablemos de canales de voz, conexiones a Internet de banda ancha…

El códec H.264 de Apple es especialmente bueno, porque es capaz de manejar tanto imágenes de alta calidad, como la resolución HDTV de 1920×1080 a 30 cuadros por segundo, y proporcionar, a partir de la misma fuente, señales de calidad progresivamente inferior, tanto en resolución como en cuadros por segundo, manteniendo la calidad “relativa” de la imagen. Pero es un códec muy pesado, con necesidad de una gran cantidad de proceso…

Así que alguien (y por qué no Apple 😉 ) podría utilizar el Cell dentro de algo del tamaño de un Mac mini, para codificar y descodificar vídeo digital en formato H.264, al tiempo que lo desencripta utilizando el DRM de Apple aplicado al vídeo…

Quizá el deseado iPod Video (¿Pod multi-media?) no sea en realidad un dispositivo portátil, sino un híbrido entre ordenador, descodificador multimedia, y consola de videojuegos… después de todo, sería el mismo procesador de una PlayStation 3 😉

A ti te ha sentado mal el café… 😉

¡Qué va, si no me ha dado tiempo a tomármelo con tanta charla! Camarero…

Primera parte del artículo:

Todo lo que siempre quiso saber sobre Cell, y nunca se atrevió a preguntar (Parte I), por Juan de Dios Santander

0 0 votos
Article Rating
Subscribe
Notify of
5 Comments
Oldest
Newest Most Voted
Opiniones Inline
Ver todos los comentarios
Anónimo
Anónimo
19 years ago

felicidades, alguien que SABE explicar conceptos tecno-frikis de una forma SENCILLA y AMIGABLE obviando las ganitas que demostró urian en la anterior entrega de lucirse aportando datos ininteligibles con un sospechoso tufillo a CUT&PASTE

mas articulillos como este contribuirian enormemente a culturizar a las masas y evitar el papanatismo tecnologico-casualero.

felicidades otra vez!

Anónimo
Anónimo
19 years ago

Impresionante y claro

Anónimo
Anónimo
19 years ago

A mi me ha gustado más la parte final de “Vamos a especular un poquito”.
¡Coñe! he ido hasta por palomitas y todo!

Gracias por ponernos al dia.

Anónimo
Anónimo
19 years ago

Juande… estás que te sales xaval!!

muy bueno y muy ameno y yo sigo especulando. Seguramente diciendo chorradas porque no tengo ni pajolera :-))) pero…

“pero ese SPE no tiene por qué estar en el mismo chip que el procesador central, ni siquiera en la misma placa madre, ni siquiera en la misma red local…”

¿y si meten el cacareado CELL en un superordenata que haga de servidor y envíe trabajo a terminales por ejemplo en granjas de renderizado, en empresas multinacionales con clientes por todo el mundo, en clusters para investigación…?

y pregunto yo, ¿podría implementarse en Macs dando el procesador trabajo a este micro para realizar tareas del mismo modo que el procesador descarga trabajo en la actualidad para que sea la tarjeta gráfica quien se encarga del dibujado de pantalla o incluso haciendo render por hardware de tarjeta como ya hay en lagunas aplicaciones? ¿podría ser este el corazxón de ese aparatito multimedia que enlazado por Wireless permitiese visualizar cualquier tipo de documento, incluso videoconferencia a varias bandas, a distancia sobre una o varias pantallas?

vamos … y no digo más barbaridades porque me tengo que cortar :-)))

Anónimo
Anónimo
19 years ago

Pues Manel, no es ninguna barbaridad, y esa es precisamente la forma más sencilla en que Apple podría hacer uso de los Cell: como coprocesadores. Y teniendo en cuenta que Tiger contará con tecnologías como Core Image…

Incluso si esas tarjetas coprocesadoras se pudieran instalar en ranuras PCI-X —¿adoptará Apple PCI-Express algún día?; supongo que sí—, podrías tener esa aceleración para máquinas antiguas.

Recordatorio histórico: las primeras estaciones de trabajo NeXT utilizaban un procesador RISC de Intel, el i860, como co-procesador gráfíco. Era tanto o más potente que el 68030 que llevaban, pero era tan difícil de programar que sólo era sencillo utilizarlo como copro. Quizá pase lo mismo con el Cell, porque acostumbrarse a dividir los problemas en subtareas que no administra el Sistema Operativo, sino un mini-programa, puede ser sólo rentable para tareas repetitivas…

ps. ¿Alguien recuerda las Radius 040 Booster? 😉

5
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x