Introducción al procesador Cell (I)

Escrito por coder el 23 de enero de 2005 en Informática | Hits: 1391

En OSNews han linkado un artículo con información sobre el procesador Cell, que es el que operará debajo de la carcasa de la PlayStation 3.

Me he tomado la libertad de hacer una traducción-resumen sobre dicho artículo para estar un poco al día de cómo funcionará -en teoría- este procesador -quizá- llamado a acabar con el reinado del PC. Por supuesto este resúmen puede (y seguro, tiene) contener erratas derivadas de mi absurdas conclusiones sobre lo leído. No me hago responsable de ello xD pero pido disculpas por si le afecta esto a alguien xD

El artículo está compuesto por cinco páginas html explicando cinco apartados semi distintos, y yo voy a hacer lo mismo aquí.

Dentro del Cell

Aunque se lleva tiempo diciendo que este procesador será el que lleve la consola de ¿sexta? generación PlayStation 3 (que teóricamente aparecerá a principios de 2006 en Europa), este micro ha sido diseñado para poder ser el corazón de cualquier ordenador, ya sea de bolsillo (PDAs), en servidores, workstations o, por supuesto, videoconsolas.

La arquitectura Cell se compone de células hardware y de células software. Las células soft están compuestas a su vez por datos y programas (conocidos como APUlets), los cuales son enviados a las células hardware, dónde se procesan y se devuelven.

Una de las cosas más atractivas que he leído en el artículo es que los Cell no son, digamos, un hardware cerrado en el sentido de que si tienes una PS3 y una PDA, y ambos aparatos llevan por CPU un Cell, pueden trabajar juntos, cooperando para procesar los datos de forma conjunta. Vamos, yo entiendo esto como algún tipo de 'clustering distribuido', lo cual me parece un concepto cojonudo.

El esquema de cómo funciona el Cell es el siguiente:



Aunque los Cell parece van a ser realmente escalables, un sólo Cell por sí mismo va a ser muy potente. Quién sabe, igual lo suficiente para ser considerado Arma de Destrucción Masiva. Han llamado PE (Processing Element) a la unidad individual de computación del Cell y según se comenta tendrán una teórica capacidad de operación de 250 Gigaflops (miles de millones de operaciones de coma flotante por segundo). Como dicen en el artículo y todo el mundo sabe, en informática siempre hay una diferencia abismal de las cifras sobre el papel a lo que realmente ofrecen en la práctica (y si no mirad por ejemplo el rendimiento de un disco IDE xD); sin embargo, dicen que esta vez puede ser que realmente el Cell alcance casi en la práctica lo expuesto en la teoría, lo cual, sin duda alguna, es algo de lo que -de producirse- deberemos alegrarnos.

Las especificaciones de una Hardware Cell (célula hardware) son las siguientes:

* 1 Unidad de Procesamiento (PU)
* 8 Unidades de Proceso Adjuntas (APUs)
* Controlador de acceso directo a memoria (DMAC)
* Un interfaz de entrada salida (I/O)
* Velocidad: 4.6 GHz
* 1.3v
* Calor: 85º C con un disipador (a mí me parece mucho)
* Comunicación entre chips a 6.4 Gigabits por segundo

Mucha parte del poder de los Cell son las APUs, y como cada Cell lleva 8, han de poder comunicarse la velocidad del rayo porque sino estaríamos desaprovechando las características hardware. Sony y Toshiba han licenciado un sistema de I/O derivado de Rambus llamado Yellowstone/Redwood.

La PU es una Arquitectura Power (IBM) que opera a 64 bits. Es la arquitectura que IBM lleva usando en sus máquinas Power y PowerPC, donde tiene actualmente tan sólo tres CPUs usando dicha arch: POWER4, POWER5 y PowerPC 970 (el G5 de Mac, el cual es una derivación del POWER4).

Según notas de prensa de IBM, los procesadores Cell son multi-thread, multi-core, pero al parecer las APUs no son multi-hilo así que según parece la PU se basa en el core del POWER5, el mismo que en teoría llevará el Apple G6. También existe por supuesto la posibilidad de que IBM haya desarrollado otra CPU de 64 completamente distinta de la cual nunca se ha hablado antes. Según comentan en el artículo, esta idea no es nada descabellada pues IBM hace esto con cierta frecuencia. Por ejemplo: a la CPU 440 usada en el supercomputador BlueGene (el sucesor del Deep Blue que ganó a Kasparov) le llaman 440 pero es una CPU muy distinta de la que podemos encontrar en sistemas embebidos.

La archiquectura POWER exige una alimentación bestial por lo que no debemos esperar que opere a frecuencias demasiado elevadas. Quizá por eso (no lo sé) se diga que la PS3 llevará 4 Cells, lo cual suena fantástico hasta que te das cuenta de que las PU no son más que controladores, que el poder real está en las APUs...

APUs

Cada Cell contiene 8 APUs. Cada APU es una unidad de proceso vectorial que actúa independientemente de las otras 7. Contienen registros de 128 X 128 bits. También tienen 4 unidades de coma flotante capaces de operar a 32 GFLOPS y 4 unidades de enteros (también funcionando a 32GFLOPS). Las APUs también incluyen una memoria local de 128Kb en vez de una caché (lo cual intuyo se notará un huuuuevo). Otro dato interesante es que no se usa memoria virtual en tiempo de ejecución.

Las APUs NO son coprocesadores: cada una funciona de forma completamente independiente del resto y a su libre albedrío. La PU pone las células software en marcha. Una vez en funcionamiento, una APU ejecuta el apulet en la célula software hasta que completa la tarea lo le dicen que pare. La PU actúa sobre las APUs mediante llamadas RPC, pero estas llamadas se envían mediante el controlador de acceso directo a memoria DMAC, que también se encarga de llevar a cabo las operaciones de lectura/escritura de memoria que sean necesarias.

Procesamiento vectorial

Las APUs son procesadores vectoriales (o SIMD -Single Instruction, Multiple Data (vease el tomo 1 de IA-32 de Intel)). Este tipo de procesadores se llevan usando en mainframes desde los 70 y las CPU modernas llevan aceleradores 'multimedia' como AltiVec en Mac o SSE en los Pentium3 y posteriores. Cada APU es capaz de hacer 4 operaciones de 32 bits por ciclo (8 si se cuentan sumas y multiplicaciones).

AltiVec?

Se especula sobre si las unidades vectoriales son las AltiVec que llevan los G4 y G5 pero el autor del artículo original cree que no. Primero e importante: porque los AltiVec cuentan con 32 registros y estas unidades van con 128. Segundo por la memoria local ya comentada más arriba y de la que carecen los AltiVec y tercero y último porque AltiVec es un añadido puesto en el chip PowerPC y opera como parte del procesador, pero las APUs operan cada una de forma independiente como ya hemos dicho.

Memoria Local de las APUs

Como no tienen caché ni usan memoria virtual, las APUs han de trabajar de manera distinta a la que estamos acostumbrados. Esto hará que sean más difíciles de programar pero han sido diseñadas así para reducir la complejidad y aumentar las prestaciones.

Cada APU tiene una memoria local, desde la que lee y en la que escribe cuando opera en los registros. Esta memoria local puede acceder a memoria principal en bloques de 1024 bits, pero las APUs no pueden acceder a memoria principal de forma directa.

Como cada APU lleva su propia memoria local y no la comparte con otra unidad, no se da la problematica que surge en las máquinas dual core en las que se comparte la caché, de forma que las APUs no se ven afectadas por cachés desactualizadas por otra CPU y no enlentecen su actividad.

Este modelo hace que las APUs sean realmente complejas a la hora de ser programadas, pero si se pueden mover 2 registros por ciclo desde o hacia la memoria local, se pueden estar moviendo 147 Gigabytes por segundo y por APU, lo que significa algo más de un Terabyte por segundo. Absolutamente ninguna CPU en el mercado actual tiene una caché de este tamaño.

¿Y cómo hace el Cell para que dos APUs no accedan a la misma zona de memoria (principal, no local) al mismo tiempo? Pues estableciendo algún tipo de mecanismo que marca como busy (ocupada) la zona de memoria que está siendo accedida por una APU. Esto enlentece el sistema seguro, porque una APU tendrá que chequear esos bits (o registros, flags o lo que pongan) busy y perderá tiempo en ello. Si metieran la RAM en los chips las cosas se acelerarían pero seguro que no lo hacen porque sería carísimo.



         

« Comparador salarial

Comparación de polvo entre Spirit y Opportunity »



Comentarios

  • El 2005-01-24 10:49:24, QuasaR (80.59.217.92) dijo:

    http://blog.fluzo.org/resources/234/files/Cell_1.pdf

    Forbidden
    You don't have permission to access /resources/234/files/Cell_1.pdf on this server.
    Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

  • El 2005-01-24 12:56:47, Pollo (192.168.180.2 217.126.76.205) dijo:

    Estube leyendo el articulo original reportado por VIC aka Vic search engine.
    El Cell es una jodida revolucion y si sale bien manda al puto pc a tomar por le culo , a ver como afrontan AMD y Intel el temita este , parece que van a sacar unos Dual Core pero eso es basura comparado con esto xD.

  • El 2005-01-24 19:55:21, coder (192.168.0.5) dijo:

    QuasaR: arreglat ;-)

[ Comentar la jugada ]