COMPARATIVA TÉCNICA Autores: q Ismael García Fernández q Francisco González García 1 Índice Playstation 2__________________________________________________________4 1 2 3 4 5 6 7 Historia _____________________________________________________4 Detalles técnicos_______________________________________________4 Visión global de la PS2 _________________________________________5 Dentro de la EE _______________________________________________7 q El núcleo de la EE, un MIPS III ____________________________9 q Las Vector Units_________________________________________9 q Organización de la EE ___________________________________10 Funcionamiento del GS ________________________________________11 q Canal Alpha ___________________________________________11 q Superfícies de bezier ____________________________________12 q La corrección de perspectiva ______________________________12 q Mip mapping __________________________________________12 q Problemas de Aliasing en la PS2: Jaggies y shimmering ________12 El IOP Processor ____________________________________________14 El Sound Processor ___________________________________________14 GameCube __________________________________________________________16 1 2 3 4 5 6 7 La placa madre_______________________________________________16 La memoria principal__________________________________________18 Gekko, la CPU_______________________________________________19 Flipper, la GPU ______________________________________________21 q Capacidad poligonal_____________________________________23 q Compresión de texturas __________________________________23 q Hidden Surface Removal _________________________________24 q Virtual Texturing _______________________________________24 q Iluminación por Hardware ________________________________25 El chip de sonido ____________________________________________26 El miniDVD como sistema de almacenamiento _____________________27 Cuadro resumen de características________________________________28 Xbox________________________________________________________________31 1 2 3 4 5 6 La CPU_____________________________________________________31 La GPU de la Xbox ___________________________________________33 APU: El primer chip de audio 3D en una consola____________________35 El disco duro ________________________________________________36 Conectada al mundo___________________________________________37 Cuadro resumen de características________________________________39 2 3 1. HISTORIA En 1988, Sony estableció un acuerdo con Nintendo para desarrollar un lector de CD-ROM, el Super Disc, como un accesorio para la Super Nintendo. Pero debido a problemas en el contrato y las licencias el Super Disc nunca salió al mercado. En cambio, en 1991 Sony sacó al mercado la PlayStation con una versión modificada del Super Disc. La PlayStation pretendía ser el dispositivo multimedia para el hogar aunque únicamente salieron a la venta 200 unidades pues se decidió retirar el producto del mercado. El nuevo diseño dió lugar a la PlayStation X, o PSX, un dispositivo que ejecutaba videojuegos en CD-ROM. La PSX rápidamente se convirtió en la videoconsola más popular. Después del gran éxito de ventas alcanzado por la PSX, Sony fabricó la PS2 (PlayStation 2) que fue uno de los productos más esperados del 2001. 2. DETALLES TÉCNICOS Sony PlayStation 2: Procesador: 128-bit ”Emotion Engine” • Velocidad de reloj: 300 MHz • Unidad de coma flotante (FPU) co-procesador opera a 6.2 gigaflops • Velocidad del bus: 3.2 GB por segundo - - - - - CPU original PlayStation X como procesador E/S Gráficos: ”Graphics Synthesizer” • 150 MHz • Caché embedida • 4 MB VRAM • Resolución: 640x480 o 320x240 entrelazada • Colores: modos 24-bit (16,777,216), 16-bit (65,536) • Motor Geometria: - Alpha channel - Anti-aliasing - Bezier surfacing - Gouraud shading - Mip mapping - Perspective correction - Z-buffer Renderizado de polígonos: 75 millones polígonos por segundo Audio: SPU2 (+CPU) • Canales: 48 • Muestreo ratio: 44.1 KHz o 48 KHz • Memoria: 2 MB RAM Salida óptica digital Memoria: 32 MB RDRAM Sistema operativo: Propiedad de Sony Medio de Juego: DVD Proprietario 4.7-GB • Soporte para CDs originales de PlayStation • Soporte para Video DVD Soporte para Audio CD Conector para disco duro o interfaz de red Otras características: • Dos ranuras para memory card • Dos puertos USB Puerto FireWire (llamado iLink por Sony) 4 3. VISIÓN GLOGAL DE LA PS2 Figura 1. Esquema de la PS2 remarcando las 4 partes principales: EE, GS, IOP, Sound Processor. La PS2 es la única consola de nueva generación que es realmente de 128 bits. Dreamcast, GameCube y Xbox no son puramente consolas de 128 bits. La PS2 es la única consola del mercado que tiene un procesador de 128 bits. La Dreamcast trabaja con una arquitectura de 64 bits, la GameCube contiene un chip central híbrido de 32/64 bits y la Xbox mantiene la arquitectura de 32 bits idéntica a un PC actual. Aunque actualmente el mayor número de bits no es indicativo de una mayor potencia del dispositivo. Los diseñadores de la PS2 han tenido muy en cuenta el tipo de aplicaciones que deberán ejecutarse en ella, es decir, videojuegos en 3D mayoritariamente. Los videojuegos en 3D requieren enormes cantidades de cálculos matemáticos con grandes cantidades de datos. El caso más común es hallar bucles que iteran muchas matrices repetidamente. Cuando se está jugando a un videojuego en la PS2, el I/O Processor obtiene la entrada de tu mando y la envia a la EE (Emotion Engine) para que ella misma se encargue de actualizar el entorno del juego adecuadamente. Cuando la EE ha realizado todos los cálculos envia el resultado al GS (Graphic Synthetizer). El GS genera las imágenes que se mostrarán por pantalla. Para finalizar el Sound Processor genera el sonido digital del entorno del juego. La PS2 posee una arquitectura drásticamente diferente y mucho más compleja que la de Xbox (similar a un PC), la de GameCube o la de un PC actual por varios motivos: A diferencia de la memoria caché de un PC, que almacena temporalmente aquellos datos que son consultados con más frecuencia por el flujo de instrucciones, en la PS2, al poseer un reducido número de instrucciones y enormes cantidades de datos por procesar, se almacenan temporalmente en la memoria caché las instrucciones que más frecuentemente se ejecutan sobre el enorme flujo de datos. 5 Figura 2. Se almacenan en la caché los bloques de datos más utilizados. Figura 3. Se almacenan en la caché las instrucciones más ejecutadas. Otra diferencia importante respecto la arquitectura de un PC es el ancho de banda de los buses. Un PC actual posee una enorme cantidad de memoria y unos buses con poco ancho de banda (es el cuello de botella de los PC). La PS2 posee una arquitectura de memorias pequeñas (donde los datos no se almacenan por mucho tiempo) y unos buses con gran ancho de banda para poder transportar el enorme flujo de datos. PLAYSTATION 2: Tipo memoria SPRAM Caché VU1 (instrucciones y datos) Caché VU0 (instrucciones y datos) Caché L1 (instrucciones y datos) Memoria video TOTAL Cantidad memoria 16K 16K + 16K = 32K 16K + 16K = 32K 8K + 8K = 16K 4MB 4,192K Tabla 1. La cantidad de memoria en la PS2 es pequeña. 6 Figura 4. El bus principal de 128 bits conecta todas las partes de la EE. Básicamente la arquitectura de la PS2 pretende paralelizar el procesado del flujo de datos entre unidades que operan en paralelo para poder acelerar la manipulación de la enorme cantidad de datos que necesita la ejecución de un videojuego en 3D. Todo el hardware de la PS2 está dedicado a proporcionar una porción específica de la experiencia audiovisual del videojuego. 4. DENTRO DE LA EE La EE es el corazón de la PS2 y ha sido desarrollada conjuntamente por Sony y Toshiba. Al igual que la Playstation, la CPU de la PS2, la Emotion Engine, es un procesador RISC (Reduced Instruction Set Computing). Los chips RISC son superescalares permitiendo ejecutar múltiples instrucciones a la vez. La combinación de las capacidades de la EE para ejecutar múltiples instrucciones y a gran velocidad, le proporcionan una mayor potencia que otros chips con más velocidad de reloj. La EE se puede definir como una combinación de una CPU y un DSP (Digital Signal Processing). A diferencia de cualquier CPU de un PC actual, la EE no es un dispositivo de propósito general. La EE ha sido diseñada específicamente para ejecutar videojuegos en 3D y está compuesta por dos Vector Units y la CPU MIPS III. La EE realiza básicamente 2 tipos de cálculos, los cálculos geométricos y el comportamiento / simulación del entorno del juego (IA enemigos, cálculos de fricción entre objetos,...). Cuando todo se ha calculado la tarea de la EE es crear las listas de visualización, secuencias de comandos para la generación de la imagen, que serán enviadas al GS. 7 Figura 5. Esquema básico de la EE. Como se puede observar en el diagrama superior, la EE está formada por las siguientes unidades: • Una CPU MIPS III como núcleo. • Un coprocesador en coma flotante (FPU) para la CPU. • Dos Vector Units (VPU0 y VPU1). • El bus de 64 bits GIF. • La unidad de procesado de imagen (IPU) que principalmente es un decodificador MPEG-2. • Un controlador DMA de 10 canales. Una interfaz para conectarse a la RDRAM y al chip I/O chip. El núcleo de la EE, un MIPS III CPU: MIPS III y subconjunto IV + SIMD 128 bits Característica Valor Frecuencia 300 MHz Registros 32 x 128 bits Microarquitectura 2 vias, dos unidades enteras 64 bits, 1 FPU Segmentación 6 estados Caché instrucciones 16K, 2 vias asociativa por conjunto Caché datos 16K, 2 vias asociativa por conjunto Scratch-Pad Ram 16K TLB Tabla 2. Principales características de la CPU. El núcleo de la PS2 sigue el estándar RISC ISA con algunas modificiaciones que ha realizado la misma Sony. Esta CPU tiene dos unidades de enteros de 64 bits y está basada principalmente en una arquitectura MIPS III aunque el núcleo también incluye algunas instrucciones de la arquitectura MIPS IV. Pero en lugar de tener únicamente las instrucciones SIMD (Single Instruction Multiple Data) con enteros de 64 bits estándares del MIPS, Sony ha definido por completo un nuevo conjunto de instrucciones SIMD con enteros de 128 bits usando las dos unidades de enteros en paralelo para realizarlas. Trabajando juntas ambas unidades de enteros pueden realizar 4 operaciones con enteros de 32 bits, 8 de 16 bits o 16 de 8 bits por ciclo. Las Vector Units Vector Unit 0 Unidades Memoria 4 FMAC, 1 FDIV 8K instrucciones, 8K datos Tabla 3. Descripción VU0 8 Vector Unit 1 Unidades Memoria 5 FMAC, 2 FDIV 16K instrucciones, 16K datos Tabla 4. Descripción VU1 Las Vector Units son dos procesadores VLIW/SIMD de 128 bits que complementan la unidad de coma flotante básica (FPU) para realizar los cálculos 3D T & L (Transform and Lighting). Han sido diseñadas para tener una microarquitectura idéntica, únicamente han sido mínimamente adaptadas para las tareas que realizarán. La VPU0 situada justo al lado de la CPU realizará los cálculos de simulación / comportamiento. En cambio VPU1 ha sido dotada con el doble de memoria caché de instrucciones y de datos porque trabaja como un procesador de cálculos geométricos y necesita mantener muchos más datos en memoria para generar las listas de visualización. Las Vector Units alcanzan una increíble velocidad de cálculo. Cada Vector Unit puede realizar 4 operaciones MAC de coma flotante por ciclo al igual que una división en coma flotante cada 7 ciclos. Las operaciones MAC (Multiply-ACcumulate) son usadas en gran variedad de cálculos vectoriales, el más común es el producto vectorial. La primera generación de juegos que fueron desarrollados para la PS2 lograron un buen aprovechamiento de la CPU. Pero los desarrolladores tuvieron muchas más dificultades para familiarizarse con las Vector Units. Si se programa basándose únicamente en la potencia de la CPU sin usar paralelamente las Vector Units el rendimiento global baja enormemente. La verdadera potencia de la EE proviene de sus 2 Vector Units y consiste en usarlas de forma conjunta durante la generación del entorno del juego. La única forma de aprovechar toda la potencia de la consola de Sony es adentrarse en el funcionamiento de las Vector Units como una extensión de la CPU. Aunque esta metodologia de trabajo no es senzilla y muchos desarrolladores se quejaron de la complejidad que conlleva. Las dos Vector Units han sido construidas de forma idéntica. Sin embargo Toshiba no pensó que lo más óptimo fuese tener tres PUs (Processing Units) generales -una CPU y dos VPUs- por lo que fijaron su funcionalidad por avanzado. La CPU y la VPU0 son asignadas para la tarea del control del programa y la simulación del entorno del juego que básicamente son cálculos de posiciones físicas de los objetos. La VPU1 realiza los cálculos geométricos que dan como resultado las listas de visualización que serán enviadas -a través del GIF (Graphic InterFace)- al GS. Organización de la EE La EE se divide en dos bloques que trabajan conjuntamente para realizar todos los cálculos y generar las listas de visualización, ahora se explicarán los componentes de cada bloque y como trabajan. Bloque 1: CPU, FPU y VPU0 Las unidades del primer bloque funcional están unidas por un bus especial de 128 bits. Estas unidades disponen de una memoria especial, la Scratch Pad RAM. La SPRAM es una memoria muy rápida situada en la CPU que puede ser utilizada por la CPU y la VPU0. Es como un espacio de trabajo compartido para ambas unidades. Bloque 2: VPU1 y GS (representado por el GIF) El segundo bloque funcional está compuesto por la VPU1 y el GS. La VPU1 además del bus principal de 128 bits dispone de una conexión adicional de 128 bits con el GIF. La diferencia respecto al bloque funcional 1 (CPU/FPU/VPU0) es que la VPU1 y el GS no se controlan el uno al otro. 9 Bloque 1 y Bloque 2 unidos Aunque las tareas de los componentes son fijas, pueden mantener cierta flexibilidad. Los programadores pueden escoger como dividir el trabajo entre los dos bloques. Trabajando en paralelo, el bloque CPU/FPU/VPU0 puede generar listas de visualización y procesar la geometria paralelamente con la VPU1. Y ambos enviar listas de visualización al GS a través del GIF. O trabajando en serie, con el bloque CPU/FPU/VPU0 actuando como un preprocesador para la VPU1. Entones la CPU y su equipo generarán la información del entorno del juego que la VPU1 recibirá para transformarla en las listas de visualización que serán enviadas al GS. Figura 6. Descripción de los bloques funcionales. 5. FUNCIONAMIENTO DEL GS El GS es la aceleradora de video que realiza todas las funciones de aceleración de video y genera las imágenes a partir de las listas de visualización creadas por la EE. El bus que une la EE con el GS es el GIF (Graphic Interface Unit) y es un bus de 64 bits dedicado a obtener múltiples listas de visualización de las diferentes unidades de la EE y combinarlas para permitirle al GS componer las imagenes. El GIF gestiona todo lo relacionado con las listas de visualización para que la EE no se vea obligada a perder tiempo gestionándolas. En el GS se han implementado diversos efectos gráficos por hardware como: • • • • Canal alpha. Superfícies de bezier. La correción de perspectiva. Mip mapping. Canal alpha La PS2 usa el canal alpha para añadir efectos de transparencia a los objetos. Este es un modo especial de gráficos usado para video digital, animación y videojuegos para conseguir ciertos aspectos gráficos. Se usan 24 bits para definir las cantidades de rojo, verde y azul, con 8 bits para cada color, definiendo así un color específico. Además otros 8 bits són usados para crear la máscara de balanza de grises que actúa como una capa separada para representar los niveles de transparencia de un objeto. El grado de transparencia se define por el nivel de oscuridad que tiene el gris en el canal alpha. Si por ejemplo defines una area de máscara con gris muy oscuro, puedes crear un objeto que parezca muy transparente. En cambio si defines el area con un gris claro puedes crear efectos especiales de niebla y agua. 10 Superfícies de bezier Las superfícies de bezier son un proceso de modelado 3D que calcula cuántos polígonos se necesitan para crear un objeto. Se basa en el nivel de detalle necesario para que el objeto tenga una apariencia suave para el espectador. La PS2 sólo ejecuta estos cálculos para objetos modelados con superfícies de bezier que estan en el videojuego. La correción de perspectiva La corrección de perspectiva crea el mapa de textura escalado al mismo ratio que el objeto donde está mapeado. Mip mapping El mip mapping es una forma de mapeado de texturas que se realiza através de diferentes tamaños del mismo mapa de textura. En esencia, el procesador actualiza la apariencia de un objeto con mayor detalle de imagen cuando nos situamos a menor distancia de dicho objeto en el videojuego. A continuación se describen los pasos que realiza la PS2 para usar mapas de textura con trilinear mip mapping: Primero el sistema calcula la distancia desde el punto de vista del observador hasta el objeto del videojuego. A continuación se cargan los mapas de texturas del objeto. Los tres mapas de texturas deben tener los tamaños 64x64 (grande), 32x32 (medio) y 8x8 (pequeño). Seguidamente el sistema determina el tamaño exacto que el mapa de imagen debe tener (según la distancia calculada), por ejemplo 16x16 en este caso. Y a partir del tamaño que debe tener el mapa de imagen se escogen los dos mapas de texturas que se usarán para crear nuestro mapa de imagen de 16x16. Una vez elegidos los dos mapas de texturas se interpola entre los dos creando una textura a medida que es del tamaño deseado que luego aplicaremos al objeto. El objetivo de esta técnica es usar el mapa de textura de menor tamaño posible según la distancia que exista entre el objeto y el observador. Cuanto más pequeño sea el mapa de textura menor será el proceso de carga aunque por otro lado el mapa de textura puede generar una superfície granulada que produce mal aspecto por ese motivo se usan en su lugar texturas un poco más grandes. Problemas de aliasing en la PS2: jaggies y shimmering Los jaggies son efectos que aparecen sobre el contorno de los objetos, dándoles un aspecto dentado, pasando de bordes suavizados a bordes con jaggies, como si una compañia de ratones hubiese mordido los objetos. Un caso especial es el efecto escalonado que se observa muy facilmente en las líneas rectas, a baja resolución. Los jaggies pueden ocurrir en imagenes estáticas o en animación, donde se obtendrán jaggies en movimiento, como un batallón de hormigas desfilando por los bordes de los objetos. Figura 7. Ejemplo de jaggies con efecto escalonado en el videojuego Ridge Racer V. 11 El shimmering es el efecto de aliasing que se produce en una animación, con objetos texturados: pixels individuales se agitan del frame actual al siguiente modificando el color y la posición debido al aliasing. Esto produce que las superfícies de los objetos aparezcan deformadas, o como si se estuviese mirando hacia una región calurosa, con turbulencia en el aire, o como si hubiese algun líquido hirviendo encima de la superfície. El efecto shimmering se produce en la PS2 porque no realiza ninguna operación de mezclado entre el frame anterior y el actual para que se produzca una transición más suave entre los dos frames como realiza la Dreamcast. Para un televisor de mala calidad el mezclado de frames es un método que funciona realmente bien. Pero para un buen monitor, o un cable RGB, el método de mezclar los frames limita la capacidad que tiene el dispositivo de salida para obtener el mayor grado de detalle posible. Figura 8. En esta imagen no se observa el shimmering, sólo se ve con el juego en movimiento. Resumiendo: Los jaggies son aliasing espacial causado por dentado en objetos estáticos, shimmering es aliasing temporal causado por la transición discreta de los vértices de un objeto de un pixel de pantalla al siguiente, entre dos frames de animación. Ambas variantes básicamente son problemas de aliasing y se solucionan aplicando alguna variante del método de anti-aliasing. Una de las variantes del método de anti-aliasing es el edge anti-aliasing. Esta variante sólo trabaja con los bordes de los polígonos y no corrige los efectos de escalonado que no esten situados en los bordes, por tanto no resuelve el problema del patrón de moiré. La variante edge anti-aliasing es una post-operación gráfica lo que significa que se aplica directamente sobre la imagen final y ha sido extendidamente utilizada en muchos videojuegos de la Nintendo 64. Otra variante del método de anti-aliasing es el FSAA (Full Scene anti-aliasing) que típicamente usa una técnica denominada supermuestreo. Con FSAA la imagen es generada internamente a una resolución mayor que la resolución de pantalla para luego tratarla, retransformarla, y filtrarla antes de dibujarla en la pantalla. 12 Figura 9. Summoner por ejemplo va a 30 FPS, a alta resolución, con el FSAA implementado. Inicialmente la única variante del método de anti-aliasing documentada, en la PS2, era el edge antialiasing. El problema de esta variante de anti-aliasing es que se deben suavizar los bordes de todos los polígonos (visibles o no), lo que conlleva una gran carga para el procesador. Por este motivo los programadores no utilizaron anti-aliasing en los primeros videojuegos que salieron para la PS2. Actualmente ya se están aplicando diversas técnicas para evitar el aliasing que no representan una carga excesiva para el sistema. 6. EL IOP PROCESSOR El IOP processor es el procesador de E/S de la PS2 y manipula todos los puertos USB, el FireWire y los mandos del juego. Este procesador es una versión idéntica a la CPU de la PSX lo que le proporciona la capacidad de ejecturar todos los juegos que se desarrollaron originalmente para la PSX. 7. EL SOUND PROCESSOR El Sound Processor es la tarjeta de sonido de la PS2, dispone de 48 canales de sonido permitiendo sondio digital 3D usando Dolby Digital Sound, AC-3 (Audio Compression) y DTS (Digital Theather Systems) con una calidad de sonido superior a la de CD, calidad DAT (Digital Audio Tape). Si se dispone de un receptor de audio de calidad podremos sacar el máximo rendimiento a la PS2. Además en el aspecto de la reproducción de DVD, la consola tiene una calidad de sonido al nivel de los mejores reproductores de DVD. 13 14 1. LA CPU No hace mucho, Microsoft buscaba un productor de CPUs para que le subministrara la de su consola. Los dos candidatos eran AMD e Intel. AMD le ofrecía a Microsoft una derivación del K7, mientras Intel proponía un chip basado en tecnología de cobre. Finalmente fue Intel el que se llevó el gato al agua y la encargada de producir la CPU de la Xbox. Figura 1. CPU de la Xbox. Para manejar los datos, Microsoft ha optado por un procesador Intel Pentium III a 733 Mhz. Alguien podría pensar que este procesador es poco potente, más aún si consideramos que la tecnología de PC ha alcanzado el Pentium 4 a 2.4 Ghz y que el ciclo de vida de una consola se encuentra entre los tres y los cinco años. Pero no habría que enfocar este problema en estos términos. En un PC, debido a la arquitectura abierta del sistema y a que funciona a través de una interfaz y millones de restricciones, la potencia de la CPU es básica. En una consola, todo depende para que se suponga que se vaya a utilizar. En este caso, la CPU alivia de trabajo gráfico, lo cual , si hablamos de un PC, lo asume. Si un juego de Xbox está bién programado, entonces prácticamente no necesitará el Pentium III. En un PC este no es el caso. En la Xbox, la CPU procesa y envía toda la información, nos referimos a la conexión entre elementos individuales como el disco duro, y maneja la inteligencia artificial. Para estas faenas, uno puede pensar, sin miedo a equivocarse, que el PIII es más que suficiente. La PS2 tiene un procesador de 250 Mhz, por lo tanto las dos CPUs son casi incomparables. Otro argumento que se ha utilizado contra la consola de Microsoft conscierne a su arquitectura de 32 bits, un paso atrás en relación a la PS2 (128 bits) o la ya extinguida N64 (64 bits). Pero todo esto es puro márqueting. Cualquiera que esté familiarizado mínimamente con el PC, sabrá bién que canviar a 64 bits no modifica nada, ya que todo depende de la arquitectura. El método de manejar e interpretar los registros, especialmente en lo que se refiere a la actuación gráfica, no añadiría mucho a este tipo de arquitectura con el paso a 64 bits. La CPU de 0.18 micras está contenida dentro del paquete FC-BGA de Intel que se encuentra soldado directamente en la propia placa madre de la Xbox. Ésto se ha hecho principalmente para reducir el espacio necesario para la CPU en la placa madre. 15 2. LA GPU DE LA XBOX La GPU de la Xbox ha sido creada por NVIDIA y ha recibido el sobrenombre de “XGPU” . Ésta es una variante del procesador gráfico de la GeForce 3. La arquitectura de la NV2A (XGPU) se encuentra entre la NV20 (GeForce 3) y la NV25 (GeForce 4). Como características decir que tiene una pipeline de 4 píxels y dos “vertex shaders”. En comparación, la NV20 ofrece 4 pipelines de 4 píxels y un “vertex shader”, y la NV25 también tiene dos “vertex shaders”. Figura 2. GPU de la Xbox. El chip gráfico tiene aproximadamente unos 60 millones de transistores (la NV20 tiene 57 y la NV25 63 millones de transistores). El “Northbridge” chip a 233 Mhz está conectado a una memoria principal DDR de 64 MB a 200 Mhz. Aunque parezca que la memoria principal sea bastante grande en compración a la de sus rivales (la GameCube tiene 40 MB y la PS2 tiene 32 MB) cabe decir que los 64 MB tienen que ser compartidos con el resto del sistema. A 233 Mhz, el teórico ratio de actuación de la NV2A aumenta a los 933 Mpíxels/seg, mientras cada pipeline puede producir 2 texturas a cada paso. El ancho de banda total llega hasta los 6.4 GB/seg. El Pentium III utiliza un máximo de 1.06 GB/seg del resultado de su 133 Mhz FSB (Front Side Bus), dejando 5.34 GB/seg para la GPU. Este valor, sin embargo, es inferior al ancho de banda de la GeForce 3 Ti 500, la cual tiene disponible 7.45 GB/seg. Cabe recordar, que los juegos están solamente programados con una resolución de 640 x 480 x 32 bits y por este motivo el ancho de banda descrito es más que suficiente. Decir, que el ancho de banda disponible para la XGPU se ve reducido con el uso del anti-aliasing que tiene implementado la Xbox, el cual es un modo multi muestreo (multi-sampling) derivado del NVIDIA's Quincunx. La unidad de transformación geométrica e iluminación (Transformation & Lighting – T&L) es prácticamente idéntica a la que posee la GeForce 3, intentando aliviar a la CPU de los repetitivos y a veces complejos calculos para un procesador X86. La unidad de T&L se arriesga a ser suplantada en el corazón de los desarrolladores por los 2 “vertex shaders”, los cuales ofrecen una potencia computacional impresionante con detalles geométricos. Recordar que el “vertex shader” ofrece un amplio rango de posibilidades para los desarrolladores, como la animación de esqueletos, animación facial o otros tipos de movimientos complejos. Además, el bumpmapping (DOT3) es también posible, ofreciendo una calidad visual excepcional sin agotar los otros recursos de la consola. Las dos unidades de “vertex shaders” hacen esto posible para porducir animaciones más complejas, o producirlas de forma más rápida. Los primeros títulos disponibles en el mercado no utilizan el “vertex shader” en su gran medida, ya que esta técnica hace necesaria la creación de un engine 3D nuevo. En comparación, la PS2 ofrece un hardware menos potente y está equipada con menos funciones 3D. El Emotion Engine y su núcleo a 294 Mhz RISC no tiene un coprocesador T&L, pero pese a esto ofrece una capacidad de renderización de polígonos notable. Por lo tanto, es principlamente el Graphics Synthesizer (GS) el que realiza el trabajo de la NV2A, aunque el primero sea menos potente. Actualmente, la verdadera potencia del GS se encuentra principalmente en su capacidad de realizar operaciones en paralelo y no en sus funciones. Este es el porqué la PS2 es realmente más compleja de 16 programar que la Xbox o la GameCube, ya que para producir ciertos efectos en la consola de Sony, éstos tienen que ser creados desde el principio hasta el final distribuyendo los calculos entre los diferentes procesadores. Otro aspecto importante que viene a refrendar la gran superioridad técnica de la consola de Microsoft respecto a la 128 bits de Sony han sido los 4MB de memoria de vídeo. Esta cantidad se presenta escasa para que la consola sea capaz de producir texturas de calidad. Otra gran ventaja de la Xbox es que su hardware está asociado a una librería muy potente y muy utilizada como la DirectX 8. Considerando la facilidad de programar, la capacidad 3D de la NV2A y la libertad ofrecida por los “vertex shaders” está claro que la Xbox ha alcanzado un nuevo hito en cuanto a los gráficos en una consola. Pero la Xbox también sabrá hacer frente al PC durante mucho tiempo, porque su arquitectura es bastante estable y es ahora el momento en el que los desarrolladores pordrán ser capaces de optimizar los juegos. 3. APU: EL PRIMER CHIP DE AUDIO 3D EN UNA CONSOLA La tecnología utilizada para el posicionamiento 3D en la Xbox ha sido desarrollada por Sensaura. Esta empresa le ha aportado a la Xbox gran cantidad de algortimos para la reververación, reflejos, entorno, etc. Cabe recordar que Sensaura es el gran competidor de la tecnología EAX de Sound Blaster. La APU (Audio Processor Unit) en la Xbox puede computar todos los efectos ofrecidos por la librería que Sensaura ha implementado, en tiempo real. Gracias a la compatibilidad con el DirectSound 3D, muchas de las herramientas de audio ya existentes pueden ser utilizadas para la Xbox. Sin embargo, el aspecto más importante de la APU en la Xbox es su capacidad de codifición 5.1 en tiempo real. Por lo tanto, una vez que los efectos de posicionamiento de audio han sido calculados por la APU, ésta los codifica en el formato AC3 (sistema de codificación utilizado por el Dolby Digital) para un mejor posicionamiento. Aún y así, sin el decodificador externo de Dolby Digital, el sonido producido por el procesador de sonido de la Xbox es estéreo. Es importante realzar que la utilización de la CPU, en lo que al sonido respecta, es realmente baja por no decir prácticamente nula. Tal y como el título de este apartado indica, la Xbox es la primera consola que realmente utiliza posicionamiento de sonido e integra todos los efectos 3D. El procesador de sonido de la Xbox es tan interesante que ya han surgido rumores sobre el desarrollo de una tarjeta de sonido PCI similar a ésta. En los primeros juegos que utilizan el sonido 3D, com “Halo” o “Project Gotham”, la immersión que produce el sonido es realmente impresionante y aporta al mundo de las consolas un nueva dimensión hasta ahora solo al alcance de los usuarios de PC. 4. EL DISCO DURO La Xbox viene provista, de serie, de un disco duro de 10 GB a una velocidad de 5400 rpm. Éste fue incorporado en la consola, principalmente, para ejercer tres funciones: 1. 2. 3. Salvar partidas. Esta es una función que hasta ahora se le atribuía a las tarjetas de memoria. Con el disco duro, Microsoft ha conseguido que el usuario no tenga que realizar gastos suplementarios para poder guardar sus progresos en los juegos. “Memoria caché”. Principalmente su función en este sentido se refiere a que los programadores pueden utilizar el disco duro de la Xbox como si una caché, de gran tamaño y más lenta, se tratase y así agilizar los tiempos de carga en los juegos (sí, las pesadas pantallas de “Loading”). Internet. Es lógico, que una consola que pretende que el juego via la red de redes se convierta en una costumbre tenga un disco duro. Éste servirá para descargar e instalar los programas necesarios para jugar en red a parte de otras funciones más lúdicas como descargarse juegos, ampliaciones de estos etc. 17 4. CONECTADA AL MUNDO Como consola de próxima generación que es, la Xbox ofrece modo multijugador no únicamente para jugar en una sola consola, sinó también entre diversas y a través de internet gracias a la tarjeta ethernet que posee, la cual es idéntica a las que se utilizan para PC. El MCPX de NVIDIA es el encargado el procesamiento relacionado con la red a una velocidad 10/100 MB/seg. Actualmente Microsoft aún no ha puesto al servicio de los usuarios la conexión a Internet mediante sus servidores y se prevee que en breve (en EE.UU) se inicie el juego online para los usuarios de Xbox. Pese a ésto, actualmente se puede conectar a internet la Xbox de tres formas diferentes mediante cable o DSL: 1. Con un hub o un switch directamente conectado a Internet. Esta configuración es la más sencilla si se tiene únicamente una sola máquina conectada a la red. Lo único que hay que hacer es conectar la Xbox a un hub o un switch situado entre la tarjeta de red y la conexión a internet. Figura 3.1. Hub / switch directamente a internet. Figura 3.2. NAT (DSL / Cable ruter) 2. Sin un hub y con un PC. Si no se quiere utilizar un hub o un switch, se puede elegir la opción de tener dos tarjetas de red en un PC. La primera está conectada a la conexión de internet, mientras la segunda se encuentra conectada a la consola. Figura 4.1. Dos tarjetas de red. Figura 4.2. Modem USB 3. Con un ruter de cable o DSL con o sin un hub. Si lo que se quiere es tener una conexión a internet con diferentes ordenadores via ruter, solo hay que conectar la Xbox al ruter. Si no se posee del número suficiente de puertos en el ruter hará entonces falta añadir un hub o un switch. 18 Figura 5. NAT + Hub / switch. CUADRO RESUMEN DE CARACTERÍSTICAS 250MHz XGPU, developed by Microsoft and nVIDIA The RAM in the Xbox will be supplied by Micron, it will be 64 MB running at 200MHz DDR (Double-Data-Rate) Memory Bandwidth 6.4 GB/sec Polygon Performance 125 M/sec Sustained Polygon Performance 100+ M/sec (transformed and lit polygons per second) Micropolygons/particles per second 125 M/sec Particle Performance 125 M/sec Simultaneous Textures 4 Pixel Fill Rate - No Texture 4.0 G/Sec (anti-aliased) Pixel Fill Rate - 1 Texture 4.0 G/Sec (anti-aliased) Compressed Textures Sí (6:1) Full Scene Anti-Alias Sí Micro Polygon Support Sí Storage Medium 2-5x DVD, 10GB hard disk, 8MB memory card I/0 2-5x DVD, 10GB hard disk, 8MB memory card Audio Channels 64 (up to 256 stereo voices) 3D Audio Support Sí MIDI DLS2 Support Sí AC3 Encoded Game Audio Sí Broadband Enabled Sí Modem Enabled No DVD Movie Playback Remote control package required Maximum Resolution 1920x1080 Maximum Resolution (2x32bpp frame 1920x1080 buffers +Z) HDTV Support Sí Controller Ports 4 USB Ports Graphics Processor Total Memory 19 20 1. LA PLACA MADRE 1. 1 Memoria principal de 24 Mb 1TSRAM. GPU “Flipper”. CPU “Gekko”. 4. Procesador de sonido. 2. 3. 4 2 3 Figura 1. Placa madre de la GameCube. Las principales partes que cabrían destacar dentro de la placa madre de la GameCube serían las que se han resaltado en la foto de la Figura 1: 1 La memoria principal de la GameCube de 24 MB 1T-SRAM. 2 La GPU (Graphic Processing Unit) de la GameCube, la cual es conocida con el sobrenombre de “Flipper”. 3 La CPU (Central Processor Unit) conocida como “Gekko”. 4 El último elemento destacable de la placa madre de la consola de Nintendo, pero no por ello menos importante, es el chip de sonido. De la memoria principal de la GameCube, el chip de sonido y de los dos procesadores se hablará de forma más extensa en sucesivos apartados. A continuación se muestra un gráfico donde se puede observar un esquema de la estructura de la GameCube y los buses entre las partes más importantes de la consola de Nintendo. Éste esquema se irá explicando conforme se avance en la exposición de las diferentes y más importantes partes que forman la consola (CPU, GPU, Memoria principal y chip de sonido), por lo que se recomienda al lector referirse a éste durante todo el documento. 21 Figura 2. Esquema del hardware de la GameCube y sus buses. Cabe destacar del esquema de la Figura 2, que todos los caminos que los datos siguen en el él son bidireccionales (lectura i escritura). 2. LA MEMORIA PRINCIPAL Una de las características más importantes del diseño de la GameCube, es la atención puesta en la eficiencia del ancho de banda. Esta eficiencia se consigue con el uso de un tipo especial de memoria conocida como 1T-SRAM, la cual ofrece un tiempo de latencia más bajo y una utilización más alta del bus que el de las DRAM (Dynamic Random Access Memory) convencionales. La 1T-SRAM ha sido creada por una compañía llamada MoSys (Monolithic System Technology,Inc.). El nombre de esta memoria le proviene del uso de un único transistor en una SRAM, las cuales sulen tener unos 6. Realmente ésta memoria es una DRAM pero con los beneficios de las SRAM (más rápidas por no tener que estar realizando el proceso de refresco de las celdas y menos caras por su menor tamaño). Pero como DRAM que es, las celdas de ésta memoria se tienen que refrescar, pero es en la manera de hacerlo donde es realmente eficiente en comparación con otro tipo de DRAMs. Tal y como se ha dicho, los beneficios de utilizar la 1T-SRAM son un tiempo de latencia al acceder menor y una mayor utilización del ancho de banda. Pero a que precio se consiguen estos beneficios? Pues en que el tamaño de la memoria es mayor y esto provoca un augmento en el precio de producción de ésta. Ahora bién, este inconveniente se ve en parte menguado por el menor coste de la 1T-SRAM al utilizar un solo transistor, tal y como anteriormente se comentó. Por todo esto Nintendo decidió utilizarla como memoria principal, más en concreto, una memoria de 24 Mb en forma de dos chips de 12 MB cada uno de ellos de 1T-SRAM. Tal y como se comentará más adelante, en el apartado de la GPU, la 1T-SRAM también ha sido utilizada para proveer de dos cachés al Flipper de la GameCube. Figura 3.Una de los dos chips de 1T-SRAM de 12 MB. 22 Otra caractetrística destacable de la memeoria principal de la GameCube es que su bus de 64 bits va a 324 Mhz dando como resultado un ancho de banda de 2.6 GB/seg entre la propia memoria y la GPU Flipper (Ver Figura 2). 3. GEKKO, LA CPU Cuando Nintendo inició el desarrollo de la que íba a ser su nueva consola de próxima generación, tenía muy claras sus necesidades en lo que a la CPU se refería: ésta debía de ser potente y barata de manufacturar. Entonces fue cuando la compañía nipona se puso en contacto con IBM para encargarle la producción de la CPU de su consola. Del fruto de este acuerdo nació “Gekko”, la CPU de la CameCube. Las principales características de este procesador son las que se muestran a continuación: CPU Proceso Manufacturado Frecuencia de reloj Capacidad de la CPU Precision de datos internos Ancho banda bus externo Cachés internas (2 Niveles) IBM Power PC “Gekko” 0.18 micras tecnología de cable de cobre 485 Mhz 1125 DMips 32 bit en enteros – 64 bit en coma flotante 1.3 GB/seg (Direcciones de 32 bits, 64 bits el bus de datos a 162 Mhz) Nivel 1: Instrucciones 32 Kb, Datos 32 Kb Nivel 2: 256 Kb A diferencia del “Emotion Engine” de la Playstation 2, la CPU de la GameCube no fue construida de la nada. Ésta es un evolución del procesador PowerPC 750 RISC de IBM e incluye aproximadamente unas 50 instrucciones totalmente nuevas. Basado en tecnología de 0.18 micras de cobre (igual que la CPU de la Xbox), el processador tiene una velocidad de 485 Mhz y un bus externo a la GPU (“Flipper”) de 1.3 Gbytes/seg. El chip tiene un ratio de actuación de 1125 DMips (Dhrystone 2.1). Figura 4. CPU “Gekko” de la GameCube. Decir que Gekko también tiene acceso a la DRAM de 81 Mhz. Debido a esto y a que dicha memoria tiene un bus relativamente pequeño, seria conveniente utilizarla para albergar datos que no necesiten un gran ancho de banda tales como las pantallas de selección de los juegos. La arquitectura del procesador Power PC es de 64 bits, pero puede trabajar tanto con 64 como con 32 bits, que es el caso del procesador Gekko. La CPU de la GameCube soporta direcciones de memoria de 32 bits y presenta dos ALUs (Unidad Aritmético Lógica) de enteros de 32 bits. Por otro lado también podemos encontrar una FPU (Float Processor Unit) de 64 bits que es capaz de tabajar con floats de 64 bits o con dos floats de 32 bits utilizando sus 32 FP (Float Point) registros de 64 bits. Al trabajar con floats de 32 bits lo que se consigue es realizar dos operaciones de 32 bits en coma flotante cada ciclo de reloj. Ésta última característica fue una de las modificaciones que IBM llevó a cabo con respecto al procesador del cual Gekko deriva. Tal y como se puede comprovar en la tabla de características anterior, la CPU de la GameCube viene provista de dos niveles de caché. Un primer nivel de 64kb, de los cuales 32kb estan dedicados a 23 instrucciones y otros tantos a los datos, y un segundo nivel de 256 Kb, en contraposición a los 32 Kb de nivel 1 y 128 Kb de segundo nivel de caché de la consola de Microsoft. Otras características importantes són que la CPU de la nueva consola de Nintendo está compuesta por unos 21 millones de transistores y tiene una superfície de 45 mm2 (La CPU de la Xbox tiene 9 millones de transistores i una superfície de 100 mm2 ). 4. FLIPPER, LA GPU La GPU (Graphic Processing Unit) de la Nintendo GameCube ha sido desarrollada por ArtX, empresa perteneciente a la conocida ATI, y producida por NEC. Tal y como se ha hecho anteriormente con la CPU, a continuación se pueden ver las características del processador gráfico de la consola de Nintendo: Proceso de Manufacturado Frecuencia de reloj Embedded Frame Buffer / Z Buffer Embedded Texture Caché Texture Read Bandwidth Main Memory Bandwidth Color depth, Z Buffer depth Funciones de procesamiento de Imágenes Otros 0.18 micras NEC Embedded DRAM Process 162 Mhz 2 Mb, Sustainable Latency: 6.2 ns (1T-SRAM) 1 Mb, Sustainable Latency: 6.2 ns (1T-SRAM) 10.4 Gb/seg (Como máximo) 2.6 Gb/seg (Como máximo) 24 bits Fog, Subpixel Anti-aliasing, 8 Hardware Lights, Alpha Blending, Virtual Texture Design, Multi-texturing, Bump Mapping, enviroment Mapping, MIP Mapping, Bilinear Filtering, Trilinear Filtering, Ansitropic Filtering and Realtime Hardware Texture Decompression (S3TC). Real-time Decompression of Display List, hardware Motion Compensation Capability amd HW 3-line Deflickering filter. El Flipper es un chip de 51 millones de transistores construido con un proceso de manufacturado de 0.18 micras (sin utilización de cobre). Su tamaño es de 106 mm2 haciéndolo casi tan grande como la CPU de la Xbox. El único elemento negativo en la GPU es precisamente su proceso de manufacturado de 0.18 micras, mientras las nuevas GPUs de ATI tanto como la IGP de la Xbox estan construidas en 0.15 micras, lo cual reduce el tamaño. Figura 5. GPU “Flipper” de la GameCube. Flipper siempre opera con 4 píxels al mismo tiempo utilizando sus 4 pipelines para píxels, cada una de las cuales es capaz de emplear una textura por pipeline. A diferencia de la PS2 e igual que la Xbox, la GPU de la GamCube tiene una unidad de T&L (Transformation and Lighting) tal y como se puede observar en el esquema de la Figura 6. Flipper ofrece antialiasing, a diferencia del Graphic Synthesizer de la PS2 que no lo tiene implementado por hardware. El núcleo de la GPU de la GameCube soporta el algorismo de antialiasing multi-muestreo de 7-samples (muestras). Según ATI, el número de muestreos son ajustables y pueden ser definidos por el programador. 24 La 1T-SRAM es utilizada en la GPU de la GameCube para proveer dos grandes cachés: una caché de 2MB para el Z-buffer y un caché de texturas de 1MB (Ver Figura 6). Esto es más barato que equipar el chip con 3MB de SRAM. Figura 6. Flujo de datos, caches y unidad T&L en la GPU Flipper. En éste mismo gráfico se pueden comprovar los elementos que se han ido comentando sobre la GPU de la GameCube: 1 La caché 1T-SRAM de 2MB para el Z-buffer. En esta caché se almacena el frame buffer que se tiene que dibujar (draw buffer) (640x480x24 bits=921600 bytes) y el z-buffer (640x480x24 bits=931600 bytes). El buffer de visualizado (display buffer) se almacena en la memoria principal de la GameCube. 2 La caché 1T-SRAM de 1MB dedicada a texturas. 3 La unidad de Transformation & Lighting (T&L), la cual se encarga de gran parte de los cálculos gráficos, aliviando así a la CPU. Tal y com se ha comentado en líneas anteriores el Flipper está compuesto de 51 millones de transistores, la mitad de los cuales estan dedicados a las 1T-SRAM que alberga en su interior(las cachés). Imagináos que estuviera utilizando SRAM convencionales...estaríamos hablando de 170 millones de transistores aproximadamente!!! Capacidad poligonal Pruevas 1 vértice color + 1 luz + 1 textura No vértice color + 1 textura 1 vértice color + No textura (gouraud shading) Resultados 20M polígonos/seg 26.4M polígonos/seg 32M polígonos/seg Como se pude comprovar con estos datos, la capacidad poligonal de la GameCube es realmente impresionante y puede poner en pantalla 26.4 millones de polígonos texturados por segundo. Cabe denotar que el incremento del número de luces locales en una escena, causaría el descenso del número de polígonos por segundo. Pese a estos datos, Nintendo es más precavida e informa que su máquina es capaz de generar entre 6 y 12 millones de polígonos por segundo con todos los efectos gráficos que el hardware de la GameCube es capaz de soportar (Ver tabla características GPU). Estas cifras ya han sido alcanzadas por desarrolladores 25 como Factor 5, creadores del espectacular “Rogue Leader: Rogue Squadron II”, los cuales han logrado llevar a la GameCube a los 12 millones de polígonos por segundo y según ellos utilizando únicamente el 50% de la potencia de la consola. Compresión de texturas 1 La GPU de la Game Cube puede utilizar texturas comprimidas en S3TC lo cual permite un ratio de compresión 6:1 para texturas de 24 bits. Para texturas de 16 bits el ratio es de 4:1 i para texturas de 8 bits de 2:1. A continuación vamos a demostrar la capacidad de texturas comprimidas que puede albergar la GameCube en sus 24 Mb de memoria principal si consideramos diferentes tamaños de memoria ocupada por el código, la geometría… Código / Geometría / etc. 6 Mb 8 Mb 10 Mb 12 Mb Espacio libre para texturas 18 Mb 16 Mb 14 Mb 12 Mb 24 bits Texturas (6:1) 108 Mb 96 Mb 84 Mb 72 Mb Tal y como se puede comprovar la GameCube puede almacenar gran cantidad de texturas en memoria utilizando el formato de compresión S3TC. Cabe destacar que otro beneficio al utilizar texturas comprimidas es que los requisitos de ancho de banda también disminuyen con el mismo ratio que la compresión que se lleve a cabo. Con un ratio de 6:1, el bus de memoria puede pasar 6 veces más texturas. Esto significa que el bus de la caché de texturas de la GPU de 10.4 GB/seg pasa a tener 62.4 GB/seg de texturas de 24 bits comprimidas, y el bus externo de 2.6 GB/seg puede pasar a 15.6 GB de texturas de 24 bits comprimidas cada segundo. Entonces la pregunta que podríamos realizar sería la siguiente: Debería un desarrollador utilizar texturas en 16 bits en vez de 24 bits para reducir el espacio ocupado? Para contestar esta pregunta nada mejor que un ejemplo: Tamaño textura 512 x 512 Sin comprimir Con compresión 16 bits 525 Kb 131 Kb 24 bits 786 Kb 131 Kb Como se puede apreciar, con el mayor ratio de compresión para texturas de 24 bits (6:1) es más lógico utilizar texturas en 24 bits comprimidas, ya que ocupan el mismo espacio que las de 16 bits comprimidas (ratio 4:1). S3TC también permite la compresión de texturas de transparencias. Esto permite a la GameCube guardar gran cantidad de transparencias en memoria principal. Gracias a la compresión de texturas S3TC, la caché de textura de la GameCube puede soportar el equivalente a 6Mb de texturas de 24 bits (tal y como se ha comentado anteriormente el tamaño de esta caché es realmente de 1Mb). Por ejemplo: 8 texturas x (512 x 512) de 24 bits o 32 texturas x (256 x 256) de 24 bits (50331648 bits = 6Mb). Hidden Surface Removal Porqué renderizar las partes de las escenas que no se visualizan, debido a que otros objetos de la misma se encuentran a una profundidad menor y por lo tanto ocultan a los primeros? Pues ésto es precisamente lo que pretende la GameCube llevar a cabo con el HSR, es decir, la no renderización de partes ocultas. Y como? Simplemente haciendo un z-buffer cercano, el cual permite descartar los píxels ocultos mientras se renderizan desde el frente hacia atrás. La ordenación de adelante 1 Para más información acerca del formato S3TC consultar • http://www.digit-life.com/articles/reviews3tcfxt1/ • http://www.hardwarecentral.com/hardwarecentral/reports/140/6/ 26 hacia atrás tiene que ser realizada por el engine del juego o no será efectivo, por lo tanto, los resultados pueden variar de un juego a otro. Virtual Texturing El “Virtual Texturing” es una característica del hardware de la GameCube a la hora de manejar texturas, que se basa en dividirlas en pequeños bloques. Éste proceso es beneficioso en dos aspectos básicos: Llevando los bloques de texturas más utilizados a la caché de texturas, se consigue que el ancho de banda de la memoria principal sea utilizado de forma más eficiente. Hacer más eficiente el uso de la caché dedicada a las texturas, teniendo en todo momento las texturas (o partes de ellas) que se necesiten. Un ejemplo claro del beneficio del “Virtual Texturing” se puede observar en las texturas de los cielos de un juego, donde en la mayoría de ellos solo la mitad del cielo puede ser visto en mucha de las escenas. Todo este proceso se realiza automáticamente y no tiene que ser implementado por el programador. Iluminación por hardware (Hardware Lighting) El hard de la GameCube es capaz de soportar 8 luces y cada polígono de una determinada escena puede ser afectado por ese mismo número de luces. El número de polígonos que la GameCube puede poner en pantalla con tal número de luces depende de si esos focos de luz son locales o infinitos. 5. EL CHIP DE SONIDO El sonido, en los juegos de nueva generación, es cada vez más importante y por eso no es extraño ver que grandes compañías de la indústria de los videojueos dediquen más esfuerzos económicos a la creación de grandes bandas sonoras. Pero qué sería de un buen apartado musical en un juego si el soporte para el que tal juego ha sido desarrollado no tiene un chip de sonido lo suficientemente potente como para reproducir el sonido con gran calidad? Pues la verdad es que sería una pena y por eso todas las consolas de nueva generación tienen una calidad de sonido realmente impresionante. Vamos pues a desgranar lo que es el chip de sonido de la GameCube. El procesador de sonido de la consola de Nintendo ha sido desarrollado por Macronix. Este chip es de 16 bits DSP (Digital Signal Processor) y posee diversas memorias: q Memoria de instrucciones: 8 KB RAM + 8 KB ROM. q Memoria de datos: 8 KB RAM + 4 KB ROM. Figura 7. Procesador de sonido de la GameCube. Su frecuencia de reloj es de 81 Mhz, es capaz de generar 64 canales simultáneos y codificación ADPCM & PCM. La frecuencia de muestreo de este chip es de 48 Khz. Tal y como se ha venido comentando, la DRAM de 16 MB a 81 Mhz tiene un ancho de bando pequeño, pero es más que suficiente para soportar todos los canales de sonido que la GameCube es capaz de generar, como el siguiente calculo demuestra: 27 64 (canales) x 48000 (freq de muestreo) x 16 bits (tamaño datos) = 6 Mb/seg. Con un DSP (Digital Signal Processor) de 81 Mhz y 16 Mb de memoria de sonido, la calidad de sonido en los juegos de GameCube debería ser excepcional (Dolby Prologic II), aunque lejos del sonido que es capaz de generar la Xbox, el cual es Dolby Digital 5.1 en tiempo real. Desde Nintendo se ha confirmado que el chip de sonido tiene sus propios buses de datos hacia la DRAM de 81 Mhz, es decir, que está separado del bus de la memoria principal. Ésto significa que todos los accesos de sonido no tienen ningún efecto negativo en las operaciones gráficas. 6. EL MINI DVD COMO SISTEMA DE ALMACENAMIENTO El formato que Nintendo ha elegido para almacenar los juegos de su consola de nueva generación, es el que se ha venido a llamar mini-DVD. Éste no es más que un “DVD” de 1.5 GB de capacidad y 8 cm de diámetro creado por la compañía japonesa Matsushita, más conocida por el nombre de Panasonic. Figura 8. A la izquierda un mini-DVD de la GameCube y a la derecha un DVD de la Xbox. Nintendo ha vuelto a desmarcarse de sus competidores y de las tendencias de mercado, recordemos que tanto la PS2 como la Xbox utilizan el DVD estándar, según ellos por dos motivos muy claros: 1 Este formato impedirá la piratería de los juegos de GameCube, al menos por el momento. 2 Los pagos que hay que hacer en factor de “royalties” al utilizar los DVD convencionales se verán enormemente reducidos. El dispositivo mini-DVD de la GameCube es capaz de transferir datos a una velocidad que oscila desde los 16 MB/seg a los 25 MB/seg. El tiempo medio de aceso es de 128 ms. La velocidad de éste dispositivo es comparable a la de un CD-ROM de 13x - 20x, aproximadamente, dependiendo si la información que se está leyendo se encuentra en los sectores más interiores o en los más externos. Cabe comentar que en Japón Panasonic ha puesto a la venta una mezcla de GameCube con DVD llamado “Q”, para poder visualizar películas en este formato y así satisfacer a los usuarios que demanden esta opción. En Europa y en EE.UU no se tiene previsto lanzar este combo debido a la piratería. CUADRO RESUMEN DE CARACTERÍSTICAS MPU (Micro Processing Unit) CPU Manufacturing process Clock frequency CPU capacity Internal data precision External bus Internal cache Custom IBM Power PC "Gekko" 0.18 micron IBM Copper Wire Technology 485 MHz 1125 Dmips (Dhrystone 2.1) 32-bit Integer & 64-bit Floating-point 1.3 GB/second peak bandwidth 32-bit address space 64-bit data bus 162 MHz clock L1: Instruction 32KB, Data 32KB (8 way) L2: 256KB (2 way) 28 GPU (Graphic Processor Unit) GPU Manufacturing Process Clock Frequency Embedded Frame Buffer Embedded Texture Cache Texture Read Bandwidth Main Memory Bandwidth Pixel Depth Image Processing Functions Audio Processing Sound Processor Instruction Memory Data Memory Clock Frequency Performance Sampling Frequency Performance Floating-point Arithmetic Capability Real-world polygon System Memory "Splash" Total Memory Main Memory A-Memory Disc Drive Average Access Time Data Transfer Speed Media Capacity Input/Output Power Supply Dimensions Custom ATI/Nintendo "Flipper" 0.18 micron NEC Embedded DRAM Process 162 MHz Approx. 2 MB Sustainable Latency: 6.2ns (1T-SRAM) Approx. 1 MB Sustainable Latency: 6.2 ns (1T-SRAM) 10.4 GB/second (Peak) 2.6 GB/second (Peak) 24-bit Color, 24-bit Z Buffer Fog, Subpixel Anti-aliasing, 8 Hardware Lights, Alpha Blending, Virtual Texture Design, Multi-texturing, Bump Mapping, Environment Mapping, MIP Mapping, Bilinear Filtering, Trilinear Filtering, Ansitropic Filtering, Real-time Hardware Texture Decompression (S3TC) Real-time Decompression of Display List, HW 3-line Deflickering filter (Incorporated into the System LSI) Custom Macronix 16-bit DSP 8KB RAM + 8KB ROM 8KB RAM + 4KB ROM 81 MHz 64 simultaneous channels, ADPCM & PCM encoding 48KHz 10.5 GFLOPS (Peak) (MPU, Geometry Engine, HW Lighting Total) 6 to 12 million polygons/second (Peak) (Assuming actual game conditions with complex models, fully textured, fully lit, etc.) 40 MB 24 MB MoSys 1T-SRAM Approximately 10ns Sustainable Latency 16 MB 81 MHz DRAM CAV (Constant Angular Velocity) System 128ms 16Mbps to 25Mbps 3 inch Nintendo GameCube Disc based on Matsushita's Optical Disc Technology Approx. 1.5GB 4 Controller Ports 2 Memory Card Slots Analog AV Output Digital AV Output 2 High-Speed Serial Ports High-speed Parallel Port AC Adapter DC12V x 3.5A 4.3"(H) x 5.9"(W) x 6.3"(D) 29 Bibliografía: -Sound and Vision: A Technical Overview of the Emotion Engine: http://www.arstechnica.com/reviews/1q00/playstation2/ee-1.html -PS2: Aliased No More: http://ps2.ign.com/articles/081/081661p1.html -Deconstructing PlayStation 2 http://xengamers.com/sections/features/5944/1 -How PlayStation 2 Works http://www.howstuffworks.com/ps2.htm -The Emotion Engine (Pdf-document) -Playstation 2 Specs – The Basics http://ntsrv2000.educ.ualberta.ca/nethowto/examples/m_ho/ps2main.html -The Playstation2 vs. the PC: a System-level Comparison of Two 3D Platforms http://www.arstechnica.com/cpu/2q00/ps2/ps2vspc-1.html -Google http://www.google.com -Everything There Is To Know About the Xbox: Technology, Games, Accessories and What’s At Stake http://www.tomshardware.com/consumer/02q1/020204/index.html -Hardware Behind the Consoles- Part I: Microsoft’s Xbox http://www.anandtech.com/showdoc.html?i=1561&p=1 -Hardware Behind the Consoles – Part II: Nintendo’s GameCube http://anandtech.com/showdoc.html?i=1566 -Nintendo’s GameCube Technical Overview http://www.segatech.com/gamecube/overview/index.html 30