Buscar en este blog

Tema 4.b: Comparativa entre el Cell y el Xenon


Para hacer la comparativa entre los núcleos de ambas consolas lo más lógico sería referirse al artículo anterior y hacer en este una explicación similar del Cell. Sin embargo, vamos a dar por sabido lo que ya se ha visto en el citado artículo y vamos a repasar las principales características del Cell en comparación al Xenon.

Al igual que pasaba con la Xbox 360, la Playstation 3 de Sony también ha pasado por infinidad de versiones. De hecho parece ser la tendencia actual, ya que en el mercado de las portátiles también hay varios modelos de Nintendo DS (“normal”, Lite, XL, DSi, 3DS…) y de PSP (1000, 3000, Go, PSVita, …). Menos la Wii, que sepa, todas las consolas de la generación actuales ya sean o no portátiles han sufrido varios cambios desde su lanzamiento.

En el ámbito que nos ocupa, la única diferencia relevante es que el proceso de fabricación del Cell ha cambiado de los 90nm originales a los 45nm que tiene en su versión para la PS3 “slim”. Sin embargo en la Xbox 360 vimos que en la última revisión de su motor empaquetaron CPU, GPU y eDRAM en un mismo “chip”.

En el Xenon nos encontramos con tres procesadores PowerPC iguales y sin embargo en el Cell encontramos un único PowerPC (“Power Processing Element” o PPE) y 8 coprocesadores o SPEs (“Synergistic Processing Element”). Vamos a comparar primero los procesadores principales en una pequeña tabla:


Xenon
Cell
Tipo de procesador principal
PowerPC
PowerPC
Velocidad
3.2 GHz
3.2 GHz
Etapas de segmentación
21
23
¿Ejecución fuera de orden?
No
No
¿Hyperthreading?
Sí; dos hilos
Sí; dos hilos
Extensiones al juego de instrucciones
VMXSIMD(VMX128)
VMXSIMD(VMX128)
Caché L1 (kB)
32 inst. + 32 datos
32 inst. + 32 datos
Caché L2 (kB)
1024, compartida
512 dedicados

A continuación muestro dos fotos con las respectivas arquitecturas:


Los tamaños no pretenden ser representativos aunque deben a estar a escalas muy parecidas basándonos en el tamaño de la memoria caché L2 que en el Cell es la mitad que en el Xenon.

Como puede verse en la tabla, los procesadores principales son virtualmente idénticos ya que como comentamos en el otro artículo, los 3 núcleos del Xenon son una evolución del desarrollo que se estaba haciendo para el Cell de Sony prácticamente a la vez.

Aparte de lo que ya se ha comentado, la filosofía de Microsoft con la Xbox360 es radicalmente distinta de la de Sony con la Playstation 3. Mientras que Microsoft intenta construir una plataforma dedicada fundamentalmente a manejo de aplicaciones en 3D usando para ello procesadores de propósito general, Sony utiliza uno de estos sólo para armonizar el conjunto, pero su verdadera potencia reside en los coprocesadores dedicados, que obtienen el mismo rendimiento en menor espacio y con muchos menos recursos. Siempre y cuando se usen para lo que están diseñados, claro, ya que si intentamos ejecutar código con muchos saltos perderán eficiencia rápidamente porque no tienen un sistema de predicción de saltos.

Esta diferencia de filosofía se aprecia ostensiblemente en la jerarquía de memoria ya que aunque se siga el esquema tradicional para el PPE del Cell, los SPEs carecen de caché teniendo 128 registros de 128 bits cada uno y un sistema de almacenamiento local de 256 kB que es accesible por parte del PPE.

Frente a la forma más “tradicional” del Xenon de gestionar la memoria y la intercomunicación entre sus componentes, el Cell dispone de un único bus, el EIB (Element Interconnect Bus), con 4 anillos de 4 bits de ancho, que puede funcionar con hasta 3 transferencias simultáneas por anillo y que es extremadamente rápido ya que alcanza velocidades de hasta 300 Gb/s.


Debido a esta forma de hacer las cosas, se han reducido muchos elementos en el Cell a base de pasarle la responsabilidad de la optimización del código al compilador y al desarrollador. Eso resulta frustrante para muchos estudios, Valve hizo declaraciones muy fuertes al respecto, pero desde mi punto de vista tampoco me parece una mala idea. Es responsabilidad de los programadores el generar un código eficiente y que se atenga a los estándares publicados.

En su lanzamiento, IBM declaraba que el Cell podía dar un rendimiento teórico de 201 GFLOPS si los 8 SPEs funcionaban a 25.12 GF cada uno (1 GFLOP = 106 operaciones en coma flotante por segundo). Ahora bien, hoy en día sabemos que a Sony le fabrican los Cells con uno de los SPEs desconectado y que además dejo otro en exclusiva para el sistema operativo, con lo que realmente tenemos 1 PPE y 6 SPEs que nos dan un rendimiento teórico máximo de 150.72 GFLPS. Esta es una medida teórica que en la práctica no se puede alcanzar, lo más cerca que se ha estado es en una prueba realizada con una multiplicación de matrices optimizada en la que se extraía un rendimiento del 98%. Si consideramos que cualquier buena máquina tiene un rendimiento de al menos un 85% (que es mucho suponer) nos da un rendimiento real de 128 GF (que es en sí misma una métrica poco representativa). Ahora bien, la Xbox 360 tiene un rendimiento probado de 115.2 GF, que no está tan lejos de la PS3 como nos habían dicho.

Ninguno de los datos anteriores es del todo fiable y hay cientos de páginas en donde se toma partido por un bando u otro basándose en declaraciones oficiales, características, benchmarks (aunque no existen benchmarks oficiales que puedan medir el rendimiento de ambas consolas), análisis, rumores y consideraciones sin fundamento. En mi modesta opinión a la PS3 le ha pasado lo mismo que a la PS2: se ha adelantado a su tiempo y no ha tenido en cuenta a los desarrolladores. 

En el caso de la PS3 hay un factor que agrava la situación aún más: en esta ocasión además tampoco tuvieron en cuenta a los usuarios.



Bibliografía:

No hay comentarios: