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:
Publicar un comentario