I made an analysis of Cell with the few knowledge that I have in these themes, but I have a problem, is in spanish and I have fear that a bad translation could ruin the article.
The article is this.
Sorry if the post is innecesary.
The article is this.
Arquitectura Cell analizada.
El Cell es una arquitectura creada por Sony para un procesador basado en stream. El Cell es un concepto basado en Hardware+Software.
Hardware.
Las APU son el núcleo del Cell, estas se componen por 2 unidades SIMD (una para coma flotante y otra para enteros) con 128K de memoria asignada.
Software.
El software para el Cell se llaman Apulets, se basa en el hecho de enviar un programa a una APU para que lo procese paralelamente al resto de componentes, en pocas palabras podriamos decir que todo software procesado por las APU desde su cache se llama Apulet.
Arquitectura para el Cell.
La idea necesita una arquitectura, asi que Sony se puso a trabajar con IBM y Toshiba para obtener esta arquitectura, al final obtuvieron una idea llamada Processor Element. El Processor Element ha pasado por 2 ideas distantas, una de ellas con conexión directa con la memoria RAM y otra con memoria embebida, dado el alto coste de la memoria embebida se ha optado al final por la que tiene acceso directo a la memoria RAM. Un Processor Element esta formado por un PU (una CPU principal con arquitectura PowerPC), un DMAC (un controlador de memoria que se encarga de controlar el acceso a la memoria RAM por parte de las APU) y un numero variable de APUs.
El ancho de banda es un problema.
Una arquitectura como la Cell depende muchisimo del ancho de banda de la memoria, el procesador no puede ir a mayor velocidad de reloj que la memoria porque perderia rendimiento, tampoco la memoria puede ir a un mayor ancho de banda porque ahogaria el procesador. Pero este caso solo serie pausible en una arquitectura de procesador+memoria tomada desde la idea del Streaming, las memoria no tienen la velocidad de reloj que tienen las CPU y es por eso que en computación tradicional no se usa este tipo de arquitecturas. Pero Sony no es una fabricante de CPU de alta velocidad, no invierte su I+D en transistores, lo invierte en televisores, es por eso que necesita una arquitectura que haga lo que necesita pero sin necesidad de ponerse a investigar en transistores para un solo producto.
La ultima información que teniamos sobre la memoria del sistema era esta:
4.6Ghz de velocidad.
6,4Gbits/Pin
128 bits.
4 canales.
Lo que hacen 100GB/seg aproximadamente que se convertirian en capacidad de calculo en el transporte de 25GFLOPS de precisión de 32 bits unicamente (el calculo es sencillo, pasamos de bytes a bits y lo dividimos entre 32) que es una cifra mucho más baja de lo esperado ¿se ha colado Sony en este aspecto?
Funcionamiento del DMAC.
El DMAC es el que se encarga siempre de dividir los datos de la memoria RAM entre los diferentes componentes del procesador, en PS2 Sony ya ha usado un DMAC compuesto por 10 canales y una RAMBUS especial formada por 10 canales, pero resulta que aquí tenemos una RAMBUS de 4 canales, la DMAC puede tener un variado numero de canales, pero debido a que son 4 como minimo el numero minimo de APU en PS3 sera de 4 y siempre un numero multiple de 4.
Avanzemos pues.
-Tenemos una potencia limitada a 25GFLOPS por culpa del ancho de banda.
-Tenemos 4 canales por lo que son 4 APU por cada PE.
-El procesador no puede correr a la misma velocidad que la RAM (4.6Ghz).
Primero lo intentare con lo que dijo Kutaragi “un Cell tiene una potencia de 1 GFLOP†esto significaria que un Cell correria a una velocidad de 250Mhz (cosa bastante improbable) y necesitaríamos 25 APU para llegar a 25GFLOPS, cosa bastante improbable porque estamos hablando de 4 canales (no 25).
La otra solución es usar la logica matematica, tenemos 4 nucleos para 25GFLOPS, esto hacen a 6.25GFLOPS por núcleo lo que esun numero bastante sospechoso por cierto.
¿Cómo esta formada una APU?
La APU sigue siendo un misterio, de momento se barajan 3 estratagemas.
1. Es una unidad VMX (SIMD) PowerPC.
2. Son 2 ALU (FXU+FPU) separadas.
3. Es derivada de las VU de Playstation2.
Dentro de las dichas las más economicas y plausibles son el punto 1 y 3, pero la patente describe al punto 2, debido a que la patente siempre ha descrito al punto 2 lo tomaremos como referencia.
La precisión de una APU es obviamente de 128 bits, la razon es simple, seria una tonteria que la memoria corriese a 128 bits si el procesador solo puede mover bloques de 64 bits, por lo que podemos dar por echo que son 128 bits. SIMD 128 bits= 4x32 bits. Eso hacen 4 op/ciclo de reloj, para llegar a los 6.25 tendriamos que hablar de 1.56Ghz por APU.
Segundo gran problema, 1.56Ghz no son matemáticamente compatibles con 4.6Ghz.
He dicho más atrás de que la regla para un procesador en stream es que no puede pasar de la velocidad de la RAM, sino que como mucho puede igualarla, sabemos que la CPU pude mover 25GFLOPS a 1.56Ghz, pero en realidad no puede porque depende directamente de la velocidad de reloj de la memoria, por lo que se quedan en 4x1.15Ghz. Lo que haria que la supuesta CPU de PS3 se quedase en 18,4 GFLOPS.
¿Es esto competente?
Sinceramente no lo es, para empezar es una cifra ridicula si hablamos de un hardware que saldra en 2006, luego esta el hecho de que el hardware depende demasiado de la memoria RAM y un unico modulo de memoria podria llegar a hacer mucho daño. ¿Pero que pasaria si en vez de tener un modulo de memoria tuvieramos varios? Que se permitiria el uso de más APU y de un PE mucho más complejo.
El Broadband Engine.
Este diseño es el que aparecia en las patentes del Cell correspondientes al año 2002. Se trata de 4 PE compuestos cada uno por 8 APU cada uno (32 APU en total), lo que significarian 2 modulos de memoria por PE y que el DMAC pase a ser 8 canales, la gracia de todo esto es que en las patentes siempre se ha especificado que el DMAC aguanta hasta 16 canales por lo que cada DMAC soporta hasta 4 modulos de memoria. La otra parte es si es posible hacer algo como el BE a nivel de fabricación, de esta parte no dire nada, no se si sera posible o no, pero el Emotion Engine fue creado con 13 millones de transistores en una precisión de 250 nanometros, la precisón para el Cell es de 90nm lo que significarian más de 60 millones de transistores con el mismo coste del que tuvo el EE en 1999.
Gracias por leer este documento.
Sorry if the post is innecesary.