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

jdsant_2004_05_11_80x80.jpgOye, 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:

a) No existe la posibilidad de ejecutar instrucciones en orden diferente al que se presentan en memoria; esto simplifica enormemente el diseño del chip

b) 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

c) 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

d) 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 la semana que viene para desayunar, y te lo cuento 😉

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

No se si podré esperar un semana para la segunda parte del artículo. Por favor, publicadlo yaaaaaaaa, esta interessantisimooooooo, porfaaa, porfaaaaa

Anónimo
Anónimo
19 years ago

Hay una cosa que se te olvida Juan de Dios.

El nombre de Cell no viene por el procesador, sino por la idea de los Apulets (software) combinada con las SPE (hardware) esto combinado forma un Cell.

Cell es una combinación de programa+datos (Apulet) que esta almacenado en los 256K de cache de las SPE y se ejecuta simultaneamente el programa principal.

Esto permite crear subrutinas y/o subprogramas que interactuen con el programa principal.

Otro tema sobre la SPE es que no es una CPU escalar embedida dentro de otra, es una CPU vectorial SIMD, mas bien es una unidad VMX con DMA privada, memoria privada y subida de esteroides para funcionar casi como una CPU.

Y para acabar, un pequeño inciso, el PPE es un core Power5 reducida a PowerPC con VMX pero conservando sus caracteristicas.

Anónimo
Anónimo
19 years ago

Un rollo la parte del medio… Pero al final mejora, como los buenos vinos.

Anónimo
Anónimo
19 years ago

Se me olvidaba una cosa.

Los SPE no hacen 8 operaciones simultaneas en coma flotante de 64 bits cada una.

Son 4 operaciones por ciclo de reloj en coma flotante vectorial (SIMD 128 bits) y 4 operaciones en enteros vectorial(también SIMD 128 bits) ya que el SPE esta compuesto por 2 unidades FXU y FPU.

El unico momento en el que se hacen 8 Flops por hertzio es cuando se hacen operaciones FMAC.

Anónimo
Anónimo
19 years ago

Urian, gracias por tus comentarios, pero el artículo está pensado como artículo de divulgación muy ligero, no es precisamente una recopilación de lo que hay en Ars Technica 😉

Se menciona muy ligeramente el hecho de que hay 64 bits para marcar a quién va dirigido un determinado paquete de datos, y es evidente que con eso se puede llegar a más de 8 unidades… ¿Dónde se encuentran las 18.446.744.073.709.551.608 unidades restantes? 😉

De todas formas, se hace más hincapié en estas cosas, aunque desde un punto de vista también de divulgación, en la segunda parte.

Anónimo
Anónimo
19 years ago

Estooo… un off-topic curioso.

Estaba empezando a leer este artículo mientras escuchaba música y, a los pocos segundos, ha empezado a sonar el tema “The Cell” de Tangerine Dream.

??????????

Anónimo
Anónimo
19 years ago

“Synchronicity”, de The Police 😉

Anónimo
Anónimo
18 years ago

Buenas, soy estudiante de informatica y para una asignatura optativa de arquitecturas multimedia me gustaria intensificar informacion que tengo con coparativas de rendimiento o algo por estilo interesantes para mi trabajo de arquitectura cell please si alguien me puede ayudar se agradece, y si alguien necesita algo de informacion se puede pasar contactar a mi correo

Anónimo
Anónimo
18 years ago

Buenas a todos, os felicito Juan de Dios por el tema porque estainteresantísimo, lástima que no puedo entenderlo mucho porque todavía no estudio electrónica, solo tengo 15, sin embargo tengo una pregunta ¿Qué elementos son necesarios para crear un chip cell?es decir cómo es posible reducir una resistencia o un diodo a una escala de 90 nanómetros???

Anónimo
Anónimo
18 years ago

lo anterior es por que observo una gran diferencia entre la electronica que se trabaja a nivel “normal” y la que se ejerce en grandes compañías 🙂

Anónimo
Anónimo
18 years ago

Hola, Rubén, la diferencia fundamental es la electrónica integrada.

Un transistor es un trozo de cristal semiconductor —una sustancia que no deja pasar muy bien la corriente, pero que no es aislante, y que tiene estructura cristalina—, al que se han introducido impurezas de otros materiales, que comprimen o expanden la red cristalina.

Cuando eso se produce, es posible variar la cantidad de corriente que pasa entre los extremos de ese trozo de cristal variando el voltaje que se aplica a la parte intermedia. Eso es un transistor.

Si nosotros cubrimos un semiconductor con una capa de resina fotosensible, y aplicamos una cartulina con diferentes perforaciones y luz ultravioleta, podemos erosionar esa resina para que las impurezas que van a expandir la red entren en las zonas que hemos dejado descubiertas. Ahora, podemos lavar los restos de resina, aplicar otra nueva resina fotosensible, con perforaciones distintas, y podremos destapar las zonas donde queremos comprimir la red.

Así pues, teniendo herramientas capaces de recortar las formas en la “cartulina”, podemos ir dibujando transistores acoplados. Una resistencia la crearemos dibujando una pista en zigzag de material semiconductor, en lugar de utilizar metal. Un diodo, uniendo una zona comprimida con otra expandida, y un transistor uniendo tres zonas, alternativamente comprimida, expandida y comprimida, o al revés.

Con luz ultravioleta podemos llegar a dibujar formas definidas de hasta unos 200 nanómetros (0,2 micras), de modo que para disminuir el tamaño por debajo de esas dimensiones necesitamos utilizar rayos-X, y eso implica máscaras metálicas, y procesos mucho más caros, pero básicamente con los mismos principios enunciados anteriormente…

Anónimo
Anónimo
18 years ago

Se me ha olvidado decir que esas “compresiones” y “expansiones” de la red cristalina lo que consiguen es inyectar electrones, o dejar hueco para el movimiento de los electrones, de modo que cambia el carácter semiconductor del material en esas zonas.

Anónimo
Anónimo
18 years ago

Antes que nada muchas gracias Juan por la respuesta tan oportuna lástima que no había podido chequearla hasta hace unos pocos días y me tomó algo de tiempo “procesar la información”…
Leyendo más detenidamente las explicaciones sobre cell encontré este fragmento:
“El nombre de Cell no viene por el procesador, sino por la idea de los Apulets (software) combinada con las SPE (hardware) esto combinado forma un Cell.” y me devolvió a una inquietud que he tenido hace mucho tiempo, ¿cuál es la línea que divide al software del hardware?, es decir, cómo es posible incrustar un código en un circuito y luego poder hacer alusión a él, es decir cuando nó se trara de discos magnéticos ¿Cómo se guarda la información? ¿Cómo se mantiene intacta? y cómo se utiliza nuevamente?
Disculpame por alejar el foro del tema en discusión y por las molestias causadas. Gracias por todo.

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