Bueno, retomemos la arquitectura digital: veamos ahora cómo los juegos construyen los frames que ves y la música que escuchas.
Para la CPU, Nintendo empleó una versión personalizada del NEC V810, que opera a los impresionantes 20 MHz (teniendo en cuenta que la SNES funcionaba a una media de 1,79 MHz y la GameBoy a 4,19 MHz, ¡imagina lo que esta es capaz de hacer!). Nintendo la denomina NVC porque el chip incluido en el Virtual Boy combina un núcleo V810 con varios componentes adicionales, que examinaremos en los próximos párrafos.
Para empezar, el V810 forma parte de la familia de CPU V800 que NEC diseñó para el mercado embebido . Aunque esta CPU no fue tan popular como la competencia (como la serie MIPS o la Motorola 68000), sí ofrece un abanico de prestaciones de vanguardia:
- La ISA de la serie V800: Un set de instrucciones RISC que combina instrucciones de 16 y 32 bits.
- Treinta y dos registros de 32 bits: El V810 es una CPU de 32 bits completa y los registros se ajustan perfectamente a esa arquitectura.
- Como es habitual en las CPUs RISC,
r0es siempre cero.
- Como es habitual en las CPUs RISC,
- Un bus de direcciones de 32 bits: Permite acceder a hasta 4 GB de memoria, una cantidad enorme para la época.
- Un pipeline de cinco etapas: Consulta un artículo anterior para una explicación detallada del pipeline de instrucciones. Cabe señalar que mientras otros sistemas debutaron con tres etapas de pipeline, este fue directamente a por las cinco.
- Para evitar hazards, NEC recurrió a bloqueos por hardware para detener el pipeline automáticamente.
- 1 KB de caché L1 de instrucciones.
- Curiosamente, no volverás a ver otra consola portátil 'con caché' de Nintendo hasta la Nintendo DS: ¡casi una década después!
Esto era excepcionalmente sofisticado para una consola portátil de 1995, pero Nintendo fue aún más lejos al incorporar recursos adicionales:
- Interfaces de E/S: Se encargan de la comunicación con los accesorios propietarios.
- Bus externo de 16 bits: El V810 puede configurarse con un bus de 16 o 32 bits. Los ingenieros de Nintendo optaron por el primero.
- Esto introduce algunas penalizaciones (es decir, estados de espera) en las transferencias de memoria de 32 bits, pero como verás pronto, los programas no eran tan exigentes.
- Un temporizador: Simplemente un contador de 16 bits.
- Un control de espera: Detiene la CPU en función del bus externo al que se accede. Esto se debe a que el V810 trata toda la memoria de forma uniforme. En la práctica, acceder a la ROM del juego es más lento que, por ejemplo, a la RAM interna. Este componente corrige los tiempos en consecuencia.
Aunque todo esto suena de maravilla, tiene un coste considerable: seis pilas AA. Esto explica probablemente por qué las empresas se aferraron a tecnologías más antiguas en los dispositivos portátiles, al menos durante los años 90.
Acceso a memoria
Las direcciones de 32 bits son muy tentadoras sobre el papel, pero si el sistema no va a utilizar ni de lejos 4 GB de posiciones de memoria, es un enorme desperdicio de recursos. Por ejemplo, aunque las líneas de dirección superiores no cambien, igualmente se decodifican en cada lectura de memoria.
Por eso, y con buen criterio, Nintendo redujo el direccionamiento a 27 bits. Esto significa que se puede acceder a un máximo de 128 MB de memoria. El sistema sigue utilizando palabras de 32 bits para las direcciones, pero los 5 bits superiores se descartan. En consecuencia, algunas regiones del mapa de memoria están duplicadas.
Dicho esto, la distribución del mapa de memoria permite a la CPU acceder a la mayoría de los componentes que conforman el sistema. Entre ellos se incluyen :
- 64 KB de RAM de uso general. Por eso Nintendo la denomina 'Work RAM' o 'WRAM'.
- El tipo de chip utilizado se llama PSRAM (abreviatura de 'Pseudostatic RAM' o 'Pseudo-SRAM'), que incorpora DRAM con autorrefrescado. Esta configuración es a la vez más rápida y eficiente energéticamente que la DRAM convencional de bajo coste.
- La ROM del cartucho y cualquier RAM incorporada (si existe).
- El chip de sonido.
- El chip gráfico, junto con su memoria dedicada.
- Las interfaces de E/S y sus registros correspondientes.
Hasta aquí llega la CPU; ahora es el momento de ver qué puedes hacer con ella.
