« Arquitectura del Sega Saturn (index)

Arquitectura del Sega Saturn

Chapter 3: CPU


Tabla de contenidos

  1. Las ramificaciones
  2. Sega no queda satisfecha
  3. El producto final
  4. La arquitectura del pulpo
  5. Una memoria dividida
  6. El tercer procesador (y contando)

Al igual que sus competidores más directos, ahogados en opciones durante la fiebre del RISC, Sega tuvo que enfrentarse a todos los dilemas que conlleva elegir un nuevo proveedor capaz de satisfacer las necesidades de la siguiente generación de juegos (incluidos los que requerían capacidades '3D'). Al final, la compañía optó por una CPU de nuevo cuño cuyo creador buscaba desesperadamente un cliente que la adoptase: el Hitachi SuperH, conocido como 'SH'.

Aunque inicialmente orientada a aplicaciones embebidas, la nueva creación de Hitachi incorporaba técnicas modernas como :

Además, el SuperH incorpora un nuevo set de instrucciones llamado SuperH ISA que, aparte de adoptar un diseño RISC, presenta una particularidad: todas sus instrucciones miden tan solo 16 bits de anchura. Esto resulta sorprendente, ya que esta CPU opera con palabras de 32 bits, por lo que cabría esperar que las instrucciones tuviesen la misma longitud. Sin embargo, Hitachi logró condensarla a la mitad del ancho. Este formato no solo reduce el tamaño de los programas, sino que, al leer las instrucciones en bloques de 32 bits, la CPU puede leer dos instrucciones en un solo ciclo. En definitiva, esta técnica de comprimir el set de instrucciones contribuyó a paliar una preocupación habitual de las arquitecturas basadas en RISC denominada 'densidad de código', según la cual estas requerían más instrucciones (y, por tanto, más memoria) para realizar las mismas tareas que los sistemas no RISC.

Las ramificaciones

Por otra parte, el SuperH no está exento de otros inconvenientes propios de los diseños RISC, como los riesgos de control. En consecuencia, los programas deben incluir branch delay slots para evitar errores de cálculo. Para paliar esto, el SuperH incorpora instrucciones de salto retardado (delayed branch instructions), es decir, instrucciones de salto provistas de antemano con un delay slot .

Los riesgos de datos (data hazards) también están presentes, aunque no es responsabilidad del programador ni del compilador gestionarlos: la CPU detendrá el pipeline automáticamente cuando sea necesario.

Sega no queda satisfecha

Aun así, todo eso no impidió que Sega manifestase su insatisfacción con el producto final. El motivo principal era el pequeño multiplicador de 16 bits, que se consideraba un cuello de botella al procesar grandes cantidades de datos (una nueva exigencia de los juegos 3D). Por ello, Hitachi desarrolló una segunda revisión con una unidad multiplicadora ampliada y otras exigencias de Sega , dando lugar a una nueva CPU llamada SH-2.

Image
Los dos chips SH-2 del Sega Saturn

Con todo, Sega no podía quedarse de brazos cruzados al conocer la elección de CPU de sus competidores. Así que pidió a Hitachi que aumentase la frecuencia de reloj del SH-2, algo imposible una vez que el chip ya está en producción. Por suerte, Hitachi tenía un as en la manga: el multiprocesamiento. Durante la fase de investigación del SH, el equipo añadió unos mínimos circuitos adicionales para permitir que el SH trabajase junto a otros SH dentro del mismo sistema de forma simultánea. Al conocer esto, Sega optó por una configuración de dos chips para la Sega Saturn. Y el resto es historia.

El producto final

Sentado el contexto de sus orígenes, veamos el producto final.

Esta consola no cuenta con una sino con dos CPU Hitachi SH-2 funcionando a ~28,63 MHz cada una . Aunque físicamente idénticas, se organizan en una configuración maestro-esclavo, en la que la primera puede enviar comandos a la segunda. Esto permite alcanzar cierto grado de paralelismo, aunque ambas comparten el mismo bus externo (lo que puede provocar congestión).

Hitachi comercializó distintas variantes del SH-2 dentro de una familia llamada 'SH7600'. Todas ellas incorporan :

El chip concreto seleccionado para esta consola, el 'SH7604', incorpora las siguientes características adicionales :

Conviene señalar algo: ¡tener dos CPU no significa que los juegos vayan a funcionar el doble de rápido! En la práctica, esto exige una programación muy compleja para gestionar eficientemente las CPU que comparten el mismo bus. Por ejemplo, los accesos a memoria deberían aprovechar la caché al máximo.

La arquitectura del pulpo

Image
Vista general del modelo de múltiples subsistemas.

La Sega Saturn alberga un número considerable de procesadores (¡ocho!). Para evitar que compitan por los recursos, los ingenieros agruparon los circuitos en cuatro subsistemas diferenciados:

Cabe señalar que cada subsistema está conectado a un bus dedicado, excepto los de vídeo y audio, que comparten uno.

Una memoria dividida

Image
Vista general de la arquitectura de memoria principal.

El subsistema de CPU contiene un total de 2 MB de RAM de uso general, denominada Work RAM (WRAM). Sin embargo, no es tan sencillo: esta memoria se divide en dos bloques diferenciados y, una vez más, cada uno es accesible a través de buses distintos:

El tercer procesador (y contando)

Sorprendentemente, parece que las dos CPU SH-2 aún no eran suficientes para Sega. Así que, para acelerar el procesamiento vectorial (a costa de mayor complejidad), el grupo de CPU también alberga un coprocesador adicional: la Saturn Control Unit o 'SCU'.

Image
La Saturn Control Unit en mi revisión de placa base.

Se trata de un chip independiente formado por dos módulos :

Para paliar esto, la SCU cuenta con 32 KB de SRAM de uso local.


Previous: 2. Una breve introducción

Next: 4. Gráficos


Rodrigo Copetti © 2026 RSS Feed

Ir a la edición moderna

Inicio · Escritos · Soporte · Acerca del autor · Acerca del sitio web