El Core2Duo es fruto de una larga evolución, dispone una capacidad de ejecución fuera de orden fabulosa, así como muchas funciones que optimizan la ejecución de las instrucciones (micro y macro fusión, mejor decodificación, memory disambiguation, predicción de saltos,…). En definitiva, la planificación de la ejecución es muy compleja. Mientras, en el desarrollo del Xenon se optó por prescindir de esta circuitería. Se le ha quitado la "inteligencia" para planificar la ejecución del código, lo cual abarata costes, y ahorra espacio en silicio, que ahora se puede aprovechar para integrar más cores, más caché, etc. Una filosofía de diseño totalmente distinta. De otro modo no se podrían haber integrado más de 2 cores, pues se hubiera requerido tecnología de 65nm, no disponible en el momento.
TPL frente a ILP
La ejecución fuera de orden y las arquitecturas superescalaras, están enfocadas a explotar el IPL (paralelismo a nivel de instrucción), esto es, el ejecutar el mayor numero de instrucciones simultáneamente. Otras técnicas empleadas son el pipeline, el renombramiento de registros, la ejecución especulativa, y la predicción de saltos.
El Xenon, aunque tiene un pipeline largo, no soporta ejecución fuera de orden, y aunque es superescalar, no al nivel de otros procesadores. Su objetivo es explotar el TPL (paralelismo a nivel de thread). Es decir, ejecutar varios hilos de ejecución en paralelo, a costa de optimizar la ejecución de un solo flujo de instrucciones.
El Xenon puede ejecutar hasta 6 threads. Para que los juegos de Xbox 360 aprovechen bien el hardware, deben organizar el código de manera que se pueda dividir en threads. Deben, además, de tener ciertas cosas en cuenta. No se pueden programar de cualquier modo, pues el rendimiento se degradaría, al no tener la versatilidad de un procesador de PC.
Estructura y cores
Es un único chip, compuesto de 165 millones de transistores, que alberga 3 procesadores. Está fabricado en tecnología de 90nm CMOS, usando la técnica SOI.
Cada core, basado en la arquitectura PowerPC, dispone de 32Kb+32Kb de cache L1 (instrucciones y datos). La caché L2, de 1Mb, es compartida por los 3 procesadores. Su ancho de banda con el bus de sistema es de 21.6Gb/s.
Los procesadores funcionan a 3,2GHz, aunque ciertas partes del integrado funcionan a 1,6GHz. Las señales de reloj son generadas por 4 PPLs integrados en el chip.
Cada core es capaz de traer hasta 4 instrucciones de memoria por ciclo, hasta un buffer de instrucciones, de donde se van despachando a un ritmo máximo de 2 por ciclo, lo cual permite que cada core sea capaz de ejecutar 2 hilos de ejecución (threads).
Cada core dispone de 5 unidades de ejecución:
- 1 VMX (vectorial unit)
- 1 FPU (floating point unit)
- 2 FXU (fixed point unit)
- 1 LSU (load-store-unit)
Además de dispone de una unidad de predicción de saltos, con 4k entradas por thread de BHT (Branch History Table).
No hay comentarios:
Publicar un comentario