miércoles, 16 de diciembre de 2009

Xenon Xbox 360, al detalle

Vamos a comenzar por dar un vistazo en general al Xenon. Según las especificaciones tiene tres núcleos PowerPC de 21 etapas de segmentación, cada núcleo permite hyperthreading y trabaja a 3.2 GHz. Dicho así suena muy impresionante, pero vamos a mirarlo más de cerca.
Tanta frecuencia de reloj parece un poco abrumadora, pero si tenemos en cuenta que en cada ciclo se ejecuta una etapa de una instrucción cualquiera, y que una instrucción se divide en 21 etapas, ya veis que la velocidad de ejecución por instrucción es menor (y mejor medida de rendimiento) que la frecuencia de reloj. Pero de cara al mercado es mucho mejor decir que la CPU corre a 3.2 GHz, cosas del marketing.
Ahora vamos a meternos en la manera de trabajar del Xenon. AL contrario que otras CPU de proposito general, la Xenon no puede trabajar con ejecución fuera de orden con las instrucciones, pero si tiene la ventaja del multithreading. Esto nos permitirá ejecutar por ejemplo en cada núcleo un par de hilos de ejecución y teniendo en cuenta sus 3 núcleos, en la teoría podríamos ejecutar 6 hilos al mismo tiempo. Esto nos da un rendimiento bastante bueno al fin y al cabo, pero la arquitectura tiene un pega, esta filosofía es un problema para el desarrollo de software eficiente en la consola.
Cambiemos de ámbito a analizar de la consola, la jerarquía de memoria y el acceso a ella es otro ámbito que merece la pena mencionar. La arquitectura tiene dos niveles de memoria cache, que nos da una mejora de rendimiento respecto a 1 solo nivel o el acceso a memoria principal directamente. Cada procesador tiene su propia cache de primer nivel de 64, dividida en dos (instrucciones/datos) para evitar fallos de acceso. En cambio el nivel 2 de memoria cache es compartida entre todos los procesadores, y la mayoría de veces utilizado únicamente como simple buffer de almacenamiento.
Toda esta arquitectura nos da un máquina con eficiente, centrada en el multithreading y parecida a las de propósito general, pero con mucha carga de eficiencia de rendimiento que deben solucionar los programadores.

No hay comentarios:

Publicar un comentario