Diseño interno de la arquitectura de las consolas XBOX-360, PS3 y WiiÍndice• XBOX-360
• PlayStation-3
• WiiXBOX-360• Objetivos Microsoft
– MS XBOX-360
– Principal sistema on-line del mundo
– Satisfacer clientes de 5 a 7 años
• Componentes básicos
1.3 CPUs IBM Xenon
2.XGPU (ATI)
3.1 MB L2 Cache
4.FSB 10,8 GB/seg
5.512 MB Unificada
6.DVD, CD y HD
7.Vídeo alta definición
• Aspectos destacables
– Diseño sencillo. Frontal extraible. Reloj Arena
– Sistema conexión Inalámbrico interno
» Conectado a la parte posterior.
» Tecnología más avanzada (802.11 a/b/g)
» Permite transferir del pc con Windows xp o Media Center
– HD extraible
» Permíte guardar partidas, guardar música y listas de reproduccion personalizada
» Descargar nuevo contenido de Xbox-live (Competir online, hablar descargar actualizaciones, comprar, etc)
– Mando Inalámbrico, Misma precisión. 4 mandos.
– Multimedia
» Reproductor DVD
» Descarga Música. Transmite desde MP3
» Reproducción de Imágenes y Videos.
• Aspectos destacables
– Reproductor de DVD a 12x de BenQ
– Juegos en DVD de doble capa
– Posible inclusión de reproductor HDDVD
– Unidades de Memoria. Guardar y transportar contenido
– 2 slots para tarjetas de memoria
– Conectividad Internet. Cable DSL o cable Ethernet
– 3 puertos USB y 4 inalambricos
XBOX-360: VersionesXBOX-360: CPU– 3 Procesadores Xenon 3,2 GHz
» “Watermoose” IBM (basado PowerPC. 90nm) (nueva version 65nm)
– Comparten 1 MB Cache L2
» Asociativa por Conjuntos 8 vías
– ISA PowerPC y VMX SIMD 128 bits
– Multithreading: 2 hilos de ejecución por núcleo
– 2 instrucciones por ciclo in-order
– L1 Caches
» 32 KB 2-vías I$
» 32 KB 4-vías D$
– Unidades de Ejecución
» Enteros: Salto, Enteros, Load/Store
» VMX128: FP, Permutar Simple y Escalar FPU
– VIQ (Vector/Scalar Issue Queue)
» Divide instrucciones entre enteros y VMX128
– VMX 128 optimizado para juegos y gráficos
» SIMD de 4 vías
» 128 registros de 128 bits por thread
» Instrucción Producto Escalar optimizada
» Trata D3D
• Compressed data formats
• Mismo formato GPU
• 50% ahorro
– CPU Data Streaming
» Gran ancho de banda
» Mínimo vaciado de caché
» Tamaño línea L1 y L2 128 bytes
• Incrementa eficiencia FSB y Memoria
» L1 Escritura Directa
• Non-Write Allocate: El bloque no se carga en la caché ante un fallo de escritura
» GPU Data Streaming Integration
• XPS: XBOX Procedural Synthesis
• GPU lee datos producidos directamente por CPU
• GPU comparte D3D con CPU. Ancho de banda efectivo 2x para datos típicos de operaciones gráficas
• Ejemplo: Carga XPS
1. Carga de una nueva instrucción XPS mediante un prefetch en una operación anterior de geometría.
2. Se almacena desde memoria en la Caché de datos L1 (xDCBT 128B Prefetch)
3. Kernel XPS utiliza VMX128 para generar geometría y comprimir en D3D.
4. Escribir resultados D3D en L2
5. Cuando hay 128 bytes en L2 ? CPU notifica a GPU y se leen 128 bytes a través del FSB
6. GPU usa D3D para transformar en float simple-precisión óptimo para el núcleo 3D de GPU
• GPU Xenos 500 Mhz (ATI)
• Arquitectura Unificada
– Vertex Shader y Pixel Shader.
– Tecnología actual GPUs hace 2 años.
– 48 unidades paralelas shaders.
– ALUs 32 bits IEEE754 floats.
– 24 billones instrucciones shaders/segundo (240 Gflops)
• 10 MB EDRAM embebida ? 256 GB/seg
• Direct3D 9.0 compatible
XBOX-360: GPU• Procesadores de Vértices (Vertex Shaders)
– Ejecutan programas cuyos datos son los vértices, y realizan operaciones que modifican sus atributos (coordenadas, textura, normal, difusa, especular, etc)
• Procesadores de píxeles (Pixel Shaders)
– Ejecutan programas cuyos datos son píxeles, y realizan operaciones que modifican su color. Las operaciones pueden usar información de constantes y variables definidas en el programa, de otras texturas, etc
• ROPs (Raster Operation Partition)
– Escribe los píxeles procesados en el frame buffer.
– Realiza optimizaciones para la compresión de color, compresión z, y combinación de fragmentos de píxeles para el antialiasing.
• Resolución de salida de 720p o 1080i en formato panorámico (16:9)
– Televisiores HDTV
– Dos formatos 1920×1080 (1080i) y 1280×720 (720p) píxeles
– i (interlaced): Sólo se muestran la mitad de las líneas de la pantalla en cada refresco (540)
– p (progressive): Se dibujan todas las líneas (720)
– Diferencias entre formatos:
http://xataka.com/2005/12/09-hdtv-la-television-de-altadefinicion-todo-lo-que-necesitas-saber• BIU
– Interface con el FSB para transferencias con la CPU
• IO
– Controlador E/S: Bus PCI Express- Memoria
• MC0, MC1
– Controladores de memoria de 128 bytes
• Mem I/F
– Interface de Memoria que no tienen origen en la CPU como gráficos, E/S y display
• Gfx
– Incluye motor de renderizado
• Bus Gfx-Memoria
– Bus I/O Alta Velocidad 28,8 GB/seg
• AA+AZ
– Antialiasing y Alpha
• Display
• Memoria
– 512 MB DRAM
– GDDR3 a 700 MHz
– Ancho de banda 22,4 GB/s
• Audio
– Frecuencia máxima 48KHz
– Resolución 32 bits
– Decodificación de 256 canales simultáneos
– Todos los juegos Dolby Digital 5.1 Sonido espectacular con sistema Home Theater
– Al nivel de las tarjetas de sonido para PC
Bus PCI Express• Conexión: PCI Express
– Nuevo bus tarjetas gráficas.
– Mayor ancho banda y topología punto a punto para sustituir al PCI
• Conexión: PCI Express vs AGPXBOX-360: CMP• Principal decisión Arquitectura:
Utilización 3 cores idénticos en un solo chip (CMP)
– Vista común de la memoria principal
– Compartición de la Cache L2 (SMP)
– Minimización de la comunicación entre los cores. Mayor rendimiento en el mismo área de silicio y menor consumo de energía
• Arquitectura optimizada para juegos y facilidad para programar
– Para los juegos el rendimiento basado en enteros y punto flotante tienen la misma importancia. Unidades acopladas
– Código de alto nivel del juego: Problema de manejo de base de datos, orientado a objetos y con manipulación de punteros
• Plataforma estable para el tiempo de vida del producto
– Todos los juegos XBOX-360 son compilados y optimizados para la micro-arquitectura (Los juegos XBOX son emulados)
• Multithreading: Herramientas y programadores en desarrollo
– Problema: Facilidad de programar
– Tipos de carga en consola de juegos 6-8 threads
– 3 cores x 2 threads/core = 6 threads máximo en paralelo
• 3 Cores Ejecución en orden
– 2 threads/core
– Area de silico menor que fuera de orden
» Fuera de orden necesita fases adicionales en el pipeline
» Lógica de emisión considerablemente simplificada
– Consumo de enegía más eficiente
– Diseño e implementación más sencilla
• EDRAM– AA+AZ representan una carga importante en el ancho de banda de memoria
– Efectos de post-procesado en los shaders como la aplicación de texturas también inciden sobre el ancho de banda de memoria
– Solución: Utilizar EDRAM en la propia GPU como memoria embebida. Renderizado a resoluciones muy altas con alto nivel de filtrado anisotrópico y de antialiasing sin pérdida de rendimiento
– En las tarjetas gráficas para PC no hay memoria embebida, aunque la PS2 tiene 4MB y la GameCube 2MB
XBOX-360: Software• APIs estandar
– Win32, OpenMP
– Direct3D, HLSL
– Ensamblar(CPU y Shaders) soportado. Acceso directo al hw
• Herramientas estándar
– XNA: Plataforma de desarrollo de juegos Microsoft (version de Visual Studio para desarrolladoras de juegos) con multiples threads.
– PIX: Performance INvestigator(Depurador y Profiler gráfico). Utiliza contadores hw de la CPU y GPU
– XACT: XBOX Audio Creation Tool
– Visual C++ 8.0 y librerías de audio
• PlayStation-3Playstation 3• Componentes básicos
1. Procesador Cell 3.2 GHz
2. GPU NVidia
3. Arquitectura de memoria no unificada
– Memoria de vídeo GDDR3: 256 Mbytes
– Memoria principal RAMBUS: 256 Mbytes 4. Blu-Ray (Alta definición)
1. 25 Gbytes (1 capa)
2. 50 Gbytes (2 capas)
5. Disco duro
1. 20 Gbytes (USA)
2. 60 Gbytes
6. E/S: USB, Red, Bluetooth
PlayStation 3: Procesador Cell• Creado por IBM, Toshiba y Sony
• Componentes principales:1. Power Proccesor Element (PPE). Procesador Principal
2. 8 Synergistic Processing Elements (SPE) (En la Play-3 7).
3. Element Interconnect Bus (EIB). Interconexión de todos los elementos y compartido
4. Memoria
– Memoria principal RAMBUS: 256 Mbytes
– Memorias locales en los SPEs de 256 Kbytes
– DMA
5. Circuitería de gestión de memoria y E/S
PlayStation 3: Power Proccesor Element (PPE)• Basado en una arquitectura Power RISC de 64bits (90 nm)
Punto de entrada convencional para programadores
• Procesador en orden y 2 instrucciones/ciclo
• L1 Caches 32 KB I$ y D$
• L2 Cache de 512Kb compartida SPUs
• 2 threads simultáneamente, 2 núcleos de ejecución multi-hilo que se ocuparán de controlar a las 8 SPE´s que serán las verdaderas encargadas del trabajo
Continuará...