Dreamcast arquitectura analisis

 Dreamcast arquitectura analisis 

Un análisis práctico de Rodrigo Copetti.





Imágenes de apoyo

Imagen
La transmisión de sueños.
Lanzado el 29/11/1998 en Japón, el 09/09/1999 en América y el 14/10/1999 en Europa.

Introducción

Sega Dreamcast introdujo muchas características nuevas sobre su predecesor ( the Saturno) para atraer tanto a los desarrolladores de juegos como a los jugadores de consola. Si bien este fue el último intento de Sega de conquistar el mercado de las consolas, algunas de las tecnologías que fueron pioneras en Dreamcast continuaron y se incorporaron a futuros dispositivos convencionales.


CPU

Como era de esperar, Sega eligió a Hitachi nuevamente para desarrollar su CPU. Si has estado leyendo el artículo anterior sobre el Sega Saturn entonces, he aquí, te presento la próxima generación de procesadores SH: el SH-4 corriendo a la mierda 200 MHz [ 1 ]. Entonces, ¿qué tiene de interesante esta CPU?

  • tubería de 5 etapas: Se pueden encontrar hasta cinco instrucciones en vuelo simultáneamente ( en una explicación detallada artículo anterior).
    • La tubería de instrucciones ahora se encuentra en todas partes en esta generación de consolas y será estándar a partir de ahora.
  • 2 vías superescalar: Un nuevo tipo de paralelismo en el que la CPU puede procesar más de una instrucción ( dos en este caso ) en cada etapa de la tubería, lo que da como resultado más instrucciones ejecutadas por segundo.
  • Un dedicado Unidad de punto flotante o ‘ FPU ’: calcula números decimales de 32 bits ( the flotadores) y 64 bits ( the dobles).
  • 8 KB caché de instrucciones y 16 KB caché de datos: Esta relación es bastante curiosa ya que las consolas tienden a incluir más caché de instrucciones que caché de datos. Sin embargo, el SH-4 permite que el caché de datos se divida en dos secciones: 8 KB de Scratchpad ( RAM rápida ) y 8 KB de caché de datos.
  • Arquitectura interna de 32 bits mientras mantiene un Conjunto de instrucciones de 16 bits ( la SuperH ISA ): al igual que la SH-2, esto aumenta la densidad del código y disminuye los gastos generales del autobús mientras disfruta de las ventajas de una arquitectura de 32 bits.
  • Autobús externo de 64 bits: Crítico para manipular valores de 64 bits ( p. dobles y largos ) sin desperdiciar ciclos adicionales.

Trabajo extra

Las tareas comunes de una CPU de consola de juegos incluyen manejar la lógica de un juego, ejecutar la IA enemiga y mantener la GPU alimentada con instrucciones. En Dreamcast, el SH-4 también está involucrado en la mayoría de la tubería gráfica, procesando datos de geometría como la computación de transformaciones de perspectiva. Como resultado, incluye un SIMD de 128 bits unidad que puede acelerar las operaciones vectoriales [ 2 ].

Mejora del acceso a la memoria

La CPU incluye un dedicado Unidad de gestión de memoria o ‘ MMU ’ para direccionamiento virtual, esto es útil ya que el espacio de dirección de memoria física de esta CPU es 29 bits de ancho. Entonces, con la ayuda de cuatro TLB, los programadores pueden usar direcciones de 32 bits sin alcanzar penalizaciones de rendimiento.

Dado que solo se necesitan 29 bits para abordar, los tres bits adicionales controlan la protección de la memoria, alternando el mapa de memoria y eludiendo el caché, respectivamente [ 3 ] [ 4 ].

El programador decide si usar estas características o no. Los juegos para este sistema ciertamente no necesariamente necesita protección de memoria y la MMU debe habilitarse manualmente en el arranque.

No UMA pero…

Si bien este sistema no está diseñado en torno a la estricta arquitectura de memoria unificada como un conocido competidor, hace delegar acceso de E / S a la GPU. Eso significa que si la CPU tiene que buscar algo que esté más allá de su RAM dedicada o una interfaz en serie ( que también está conectada ), tendrá que solicitar la GPU y esperar si es necesario.

Consultas especiales

Esta CPU también presenta una funcionalidad única llamada E / S paralela o ‘ PIO ’ que se usa para manipular múltiples ubicaciones de E / S al mismo tiempo. Sega conectó estos pines para que la CPU pueda manipular la GPU modo de video ( más detalles sobre esto más adelante ).


Gráficos

El paquete GPU es un chip hecho a medida llamado Holly corriendo en 100 MHz, está diseñado por VideoLogic ( ahora conocido como Imagination Technologies ) y fabricado por NEC. El núcleo 3D de Holly es el de Videologic PowerVR2 ( también llamado ‘ PowerVR Series2 ’ y ‘ CLX2 ’ ).

Imagen
Sonic Adventure ( 1999 ).

VideoLogic eligió un enfoque alternativo para la construcción de su motor 3D llamado Representación diferida basada en azulejos ( TBDR ).

En lugar de representar un marco completo a la vez ( como tradicional Renderizadores de modo inmediato o ‘ IMR ’ do [ 5 ]), TBDR divide el área de representación en múltiples secciones llamadas ‘ tiles ’. Luego, lleva a cabo el proceso de representación en cada mosaico individualmente y el resultado se combina para formar el cuadro final [ 6 ].

Este diseño innovador ofrece ventajas interesantes:

  • Puede ser mucho paralelizado, que reduce significativamente el ancho de banda y el uso de energía.
  • Implementa una solución inteligente para el problema de visibilidad clasificando automáticamente los polígonos de adelante hacia atrás y luego actuando pruebas z en las primeras etapas de la tubería. La combinación de estas tareas no solo resuelve el problema original, sino también previene sobregiros ( rasterización de polígonos ocultos ) que desperdicia recursos y degrada el rendimiento.

No sorprende que Imagination haya llevado esta tecnología eficiente a construir los núcleos PowerVR de la Serie 4 que alimentaron una increíble cantidad de dispositivos, incluida la primera generación de iPhone, el iPhone 3G, el Nokia N95 y el Dell Axim x51.

Arquitectura

Echemos un vistazo a los dos componentes principales de la GPU de Dreamcast [ 7 ]:

Imagen
Architecture of the Tile Accelerator.

Before the rendering process starts, a component known as the Tile Accelerator performs pre-processing. It starts by allocating several 32x32 tile bins into which the geometry will be rendered.

Then, the Tile Accelerator will:

  1. Grab the geometry data and drawing commands issued by the CPU (either using DMA or traditional transfers).
  2. Convert this data into an internal format.
  3. Distribute the geometry to each bin based on its coordinates. Clipped geometry will be discarded as well.
  4. Generate the resulting Display Lists.

These Display Lists are then interpreted by the 3D engine: The PowerVR2.

The big picture

Además de la clara diferencia arquitectónica, el procesador de textura y sombreado viene con muchas capacidades que le dan a uno una idea de cuán distante es esta consola de lo antiguo Saturno. Aquí hay algunos ejemplos notables:

  • Mezcla alfa: Combina colores de capas superpuestas para lograr efectos de transparencia.
    • El proceso utilizado para aplicar la transparencia en este sistema se llama transparencia independiente del orden. El algoritmo clasifica automáticamente las primitivas antes de mezclar sus colores, y aunque esto ralentiza el proceso de representación, evita confiar en que el juego en sí mismo realice toda la clasificación manualmente. Por esta razón, los juegos Dreamcast se destacaron al mostrar objetos transparentes.
    • Combinado con el sistema basado en mosaicos, la transparencia independiente del orden aborda completamente el anterior percances.
  • Mip-Mapping: Selecciona automáticamente una versión reducida de la textura según el nivel de detalle requerido. Esto se hace para evitar el procesamiento de texturas grandes que se verían lejos de la cámara (, lo que sería un desperdicio de potencia de procesamiento y produciría alias ).
  • Mapeo ambiental: Aplica reflexiones sobre texturas.
  • Filtrado bilineal, trilinar y anisotrópico: Estos son diferentes algoritmos utilizados para suavizar las texturas y evitar la pixelación. Se ordenan de ‘ worst ’ a ‘ best ’, donde la calidad resultante de cada uno es directamente proporcional a la cantidad de cálculo requerida.
    • This is a huge step up from the Saturn since the former didn’t provide any texture filter!
  • Bump mapping: Simulates defects on surfaces without spending extra polygons.

Gaining detail

Holly can now draw ~10 times more polygons than its predecessor, here’s a Before & After example that shows how model designs are not that limited anymore. Try to fiddle with them!

WireframeSurfaceTextured
Modelo 3D
Sonic R (1997) for the Saturn.
286 triangles (or 185 quadrilaterals).
WireframeSurfaceTextured
Modelo 3D
Sonic Adventure (1999) for the Dreamcast.
1001 triangles.

Video Modes

The video system was designed to support multiple types of screens and formats, thus the video encoder outputs to a single-shaped socket that supports the following type of signals:

  • Compuesto: Combina las tres señales necesarias para mostrar video ( croma, luma y sincronización ) en una sola, que requiere solo un cable de un solo pin.
    • Esto se usa en televisores PAL y NTSC antiguos con una conexión RCA.
  • S-Video: Combina luma y sincroniza manteniendo el croma separado ( dos líneas de video en total ).
  • RGB: Envía señales separadas de rojo-verde-azul y proporciona diferentes tipos de sincronización para elegir entre ( sincronización compuesta o extraída del video compuesto o S-Video ).
    • Un cable SCART usará este tipo.
  • VGA: Combina RGB con dos señales de sincronización ( horizontal y vertical ), lo que da como resultado cinco líneas de video en total. Esto permite mostrar la mayor resolución posible ( 720x480 ) en modo progresivo (, por lo tanto, este modo a menudo se denomina ‘ 480p ’ ). VGA ha sido el formato estándar / medio utilizado por los monitores de computadora durante algún tiempo.
    • Para usar este tipo, Sega proporcionó un adaptador VGA como accesorio adicional.

Ahora, Dreamcast no puede codificar todo esto al mismo tiempo, por lo que la GPU y el procesador de audio contienen un registro llamado Modo de imagen que coordina qué buses de video / audio se activarán para generar la señal solicitada. La CPU detecta el tipo de cable insertado ( al verificar qué ‘ seleccionan bits ’ del conector de video están activos ) y escribe los valores requeridos en la GPU. Finalmente, los valores se envían al procesador de audio.

Dado que VGA es estrictamente un tipo progresivo de señal ( en oposición a lo tradicional entrelazado), surgieron algunos problemas de compatibilidad con juegos que solo fueron diseñados para video entrelazado. Estos establecen explícitamente en su código que el juego no se mostrará en VGA, por lo que la CPU bloqueará el juego hasta que el usuario cambie el cable VGA por otro tipo.


Audio

La funcionalidad de audio es manejada por un chip personalizado llamado AICA hecho por Yamaha, es una versión mejorada de SCSP utilizado en el Saturno y se compone de cuatro componentes:

  • los Circuito integrado de sonido o ‘ IC ’: un conjunto de módulos ( sintetizador, DSP y mezclador ) que genera la señal de audio y aplica efectos sobre ella. Es compatible hasta 64 canales PCM con una resolución de 16 u 8 bits y una frecuencia de muestreo de 44,1 kHz. En general, esta es la calidad óptima para reproducir audio.
    • Además, incluye un Decodificador ADPCM descargar algo de trabajo de la CPU.
    • Curiosamente, también proporciona dos pines MIDI para conectar un instrumento MIDI, aunque está destinado a ser utilizado durante el desarrollo.
  • 2 MB de SDRAM: Almacena datos de sonido y programas. Está lleno por la CPU principal que usa DMA.
  • un ARM7DI funcionando a ~ 2.82 MHz: controla el sonido IC. Esta CPU se programa iniciando un pequeño software ( llamado conductor) almacenado en SRAM que interpreta los datos de audio y manipula el Sound IC en consecuencia.
    • Si te preguntas, también se usa una CPU similar aquí.
  • Controlador de memoria: Interfaz los 2 MB de SDRAM.

Para ayudar con el desarrollo, el SDK oficial incluyó múltiples controladores de sonido para diferentes necesidades ( secuenciación, decodificación, etc. ).

Evolución

Hemos llegado tan lejos desde los días de la Mega Drive / Genesis, para mostrar cuánto progreso se hizo en la síntesis de sonido, aquí hay un ejemplo de dos juegos, uno para Mega Drive y el otro para Dreamcast, que usaba la misma composición:

Sonic 3D Blast ( 1996 ) para Mega Drive.
El predecesor realiza síntesis de FM para generar señales de audio sobre la marcha.
Sonic Adventure ( 1999 ) para Dreamcast.
El nuevo subsistema de audio procesa muestras de PCM sin problemas.

En lugar de programar un chip FM, los compositores de Sonic Adventure produjeron su banda sonora internamente y luego la codificaron en ‘ ADX ’, un formato con pérdida desarrollado por CRI Middleware. Por lo tanto, solo utiliza dos de los 64 canales PCM ( estéreo ).

ADX compression enables the game to decode and stream the data from the GD-ROM to the Sound IC without running out of memory or bandwidth. The driver can be implemented in many ways, as there are multiple multiple approaches to balance the workload of the main CPU and ARM7.

Staying alive

Somehow, this chip is also responsible for providing a Real Time Clock (RTC) to the BIOS, it’s also connected to a clock battery to continue working without AC power.


Operating System

2 MB of ‘System ROM’ stores a BIOS that bootstraps the game or a small shell when the console is switched on.

The BIOS also contains routines that games use to simplify I/O functions [9], like reading from the GD-ROM drive.

Shell

If there isn’t a valid game disc inserted, the console proceeds to boot the graphic shell.

Imagen
Shell after booting without a disc.

The shell contains a simple graphical user interface to enable the user to perform basic but necessary tasks like:

  • Start the game, if it hasn’t already.
  • Manipulate the save data stored in the VMU (more details about this device later!).
  • Play music, if there’s an Audio CD inserted.
  • Change some settings (Date, Time, Sound, etc).

Windows CE

Ever since the Dreamcast’s announcement, it was said that the console can run Windows CE: a stripped-down version of Windows designed for use on embedded devices. This is a bit misleading considering some users would expect to see a full Windows CE desktop environment running on their console.

Imagen
Windows CE logo stamped on the front of the case.

In reality, the purpose of this ‘OS’ was very similar to what Nintendo did with the Nintendo 64: to provide programmers with a fair layer of abstraction to simplify certain operations.

Microsoft worked with Sega to bring Windows CE to the Dreamcast [10]. The result was a subset of CE with the minimal components needed to provide graphics, audio and debugging. This included the use of Microsoft’s star IDE, Visual Studio, for development.

Some developers found this option very attractive. Since the audio-graphics framework included with CE was none other than DirectX 6, thousands of PC games of that era could, in theory, be easily ported to the Dreamcast…

However, the architectural differences between the Dreamcast and the conventional PC were too great to ignore [11]. Also, embedding this system increased the game’s loading time (after all, the ‘OS’ had to be loaded from a disc) and Windows CE happened to eat a substantial part of resources from the Dreamcast (not surprisingly, PCs were already suffering from that).

In the end, ‘Windows CE for Dreamcast’ was just another SDK of choice for developers (it’s commonly referred to as Dragon SDK). Nonetheless, a considerable number of Dreamcast games ended up choosing Windows APIs and DirectX.


I/O

The GPU also includes another module for handling most of the I/O called System Bus. It provides the following interfaces:

  • The G1 interface: Where the BIOS ROM along with its saved configuration and the GD-ROM content can be accessed.
  • The G2 interface: Provides access to the Modem and Sound Controller.
  • The Maple interface: Transfers chunks of data between the controllers (along with the accessories connected to them) and the CPU. It’s a serial bus and provides a dedicated DMA.
  • The SH-4 interface: Connects the main CPU for general purpose communications.
  • The DDT interface: Takes control of the CPU bus to access its main memory during DMA transfers.
  • The PVR interface: Connects the CPU with the Tile Accelerator using a dedicated DMA.

Games

Development was mainly done in C or C++. At first, C was the recommended choice since the available C++ compilers were initially very limited in functionality.

Sega also provided development hardware in the form of a PC-like tower called the Sega Katana Development Box. This is Dreamcast hardware with enhanced I/O for development. It also came with a CD containing the official Katana SDK and tools to be installed on a Windows 98 PC.

In the case developers chose the Dragon SDK instead, DirectX 6.0 and Visual C++ 6.0 were also available to them.

Medium

Games are stored in GD-ROMs, which are just CD-ROMs with a higher density of pits (reaching a gigabyte of capacity). The speed is 12x, which is not too shabby compared to Saturn’s 2x CD reader.

Online platform

The Dreamcast shipped with a modem module installed which games could use to ‘call’ a dial-up service for online gaming. Sega provided two services: SegaNet (used in America and Japan) and Dreamarena (the European counterpart).

Jugadores registrados en un servicio que utilizan DreamKey, un disco extra que se incluyó con algunos juegos. DreamKey proporcionó un navegador web para registrar una cuenta. Inicialmente, DreamKey llegó como un servicio preconfigurado dependiendo de la región, pero las revisiones posteriores permitieron a los usuarios alterar su configuración de ISP para conectarse a cualquiera de ellos.

También había un teclado y un mouse con la marca Dreamcast disponibles para comprar, en caso de que el usuario quisiera navegar por la red Estilo de PC.

Desafortunadamente, SegaNet y Dreamarena fueron descontinuados dos años después del lanzamiento. Por lo tanto, los juegos que se basaron exclusivamente en ellos quedaron inutilizables, a menos que dichos servicios se emulen utilizando herramientas adicionales ( como DreamPi, una imagen de Raspberry Pi que los replica con la ayuda de servidores mantenidos por una comunidad de usuarios ).

Tarjeta de memoria interactiva

Otra característica innovadora que presentó Dreamcast fue la Unidad de memoria visual o ‘ VMU ’. Está conectado al controlador y, además de servir como tarjeta de memoria, es un dispositivo completo que incluye [ 12 ]:

Imagen
VMU separado del controlador.
  • Sanyo LC86K87: Una CPU de baja potencia de 8 bits.
  • LCD monocromo 32x48 con cuatro iconos adicionales: Comandado usando 196 B de XRAM ( RAM externa ) como búfer de cuadro.
  • Dos conectores seriales: Uno para IN y el otro para OUT.
  • Seis botones físicos: Se usa cuando la VMU se separa del controlador.
  • 16 KB de máscara-ROM: Almacena el BIOS-IPL.
  • 64 KB de Flash: 32 KB para almacenar un solo programa ( transferido desde la consola ) y los otros 32 KB para mantener las salvaciones de Dreamcast.
  • 512 B de RAM: 256 B está reservado para el sistema, dejando solo 256 B disponibles para el programa.

La VMU tiene dos modos de operación:

  • Adjunto al controlador: El controlador oficial tiene dos ranuras para conectar VMU y otros accesorios con la misma forma, si la VMU se inserta en la primera ranura ( visible desde el frente del controlador ), Puede mostrar dibujos durante el juego. Además, Dreamcast puede almacenar guardados y un programa en la VMU.
  • Separado del controlador: El gadget se convierte en un dispositivo similar a Tamagotchi con un reloj, un administrador de guardado y también puede ejecutar cualquier programa que Dreamcast haya transferido previamente. También se pueden conectar dos VMU para compartir contenido.

Antipiratería y cerveza casera

El uso del formato patentado GD-ROM ayudó a inhibir la producción de copias no autorizadas de juegos ( y ejecutarlos en otras consolas ). Los juegos de Dreamcast también son bloqueado por la región lo que significa que una consola se negará a ejecutar un juego destinado a una región diferente.

Derrotarlo

En la práctica, las medidas contra la piratería fueron completamente inútil debido a que Sega deja abierta una enorme puerta trasera: MIL-CD. Music Interactive Live-CD o ‘ MIL-CD ’ es un formato creado por Sega para extender un Audio-CD con programas interactivos ... y Dreamcast es compatible con él [ 13 ].

Finalmente, discos comerciales no autorizados ( cargadores de trucos, reproductores de películas, etc. ) disfrazados como MIL-CD para ejecutarse en la consola sin la aprobación de Sega. Más tarde, diferentes comunidades de piratería diseccionaron esta hazaña y se les ocurrió una solución para arrancar juegos pirateados usando CD-ROM. Esto provocó que se lanzara una ola imparable de ISO en la red.

Algunos problemas surgieron después: aunque los GD-ROM pueden almacenar un gigabyte de datos, los CD-ROM solo pueden caber ~ 700 MB, Entonces, ¿cómo podrían ‘ rippers ’ reducir los juegos más grandes para quepan en un CD? Vuelva a comprimir música y gráficos hasta que encaje. Incluso pueden intentar dividirlo en dos discos. Después de todo, los datos del juego ya no son una sola gota ( como en un cartucho viejo ), sino que ahora se organizan jerárquicamente en archivos y directorios.


Eso es todo amigos

Imagen
Un Dreamcast que tuve que conseguir para escribir muchas cosas aquí.
¡No está mal para su edad!

Espero que hayas disfrutado leyendo el artículo. Terminé de escribirlo durante el comienzo de mi último año en la universidad.

Probablemente estaré muy ocupado de ahora en adelante, pero disfruto escribiendo estos artículos, ¡así que espero que obtengas el próximo en unas pocas semanas!

¡Hasta la próxima vez!
Rodrigo


Contribuyendo

Este artículo es parte de la Arquitectura de consolas serie. Si lo encontró interesante, considere donar. Su contribución se utilizará para financiar la compra de herramientas y recursos que me ayudarán a mejorar la calidad de los artículos existentes y los próximos.

Donate with PayPal
Become a Patreon

También puedes comprar el edición de eBook en inglés. Trato las ganancias como donaciones.

Imagen

Aquí se rastrea una lista de herramientas deseables y las últimas adquisiciones para este artículo:

### Interesting hardware to get (ordered by priority)

- Nothing else, unless you got something in mind worth checking out

### Acquired tools used

- A Dreamcast console with controllers and VMUs (£40)
- A game (Sonic Adventure, £9)

Alternativamente, puedes ayudar sugiriendo cambios y / o agregando traducciones.


Derechos de autor y permisos

Este trabajo está licenciado bajo un Creative Commons Attribution 4.0 Licencia internacional. Puede usarlo para su trabajo sin costo alguno, incluso con fines comerciales. Pero debe respetar la licencia y hacer referencia al artículo correctamente. Eche un vistazo a las siguientes pautas y permisos:

Información del artículo y referencias
Uso especial en multimedia ( Youtube, Twitch, etc )
Adiciones apreciadas
Publicación de terceros

Fuentes / Sigue leyendo

Antipiratería

CPU

  • Departamento de Desarrollo de Sega Enterprises, Esquema de especificación de hardware Dreamcast. 1999. 
  • Eiichiro Akiba, Arquitectura del sistema Dreamcast / dev.box. 1999. 
  • Marcus Comstedt, Programación Dreamcast - mapa de memoria
  • Hitachi, Arquitectura central de la CPU - sistema de volumen 1

Juegos

Gráficos

Fotografía


Registro de cambios

Siempre es bueno mantener un registro de los cambios.

### 2021-30-04

- Improved 'Anti-Piracy' section
- Added more info on sound drivers.
- Fixed 'sources' structure.

### 2020-09-13

- General revamp with grammar fixes and other tweaks, thanks @dpt.

### 2020-04-10

- Expanded Hidden-Surface Removal section.

### 2020-03-01

- More content about texture effects and audio processing.

### 2019-10-24

- Added some 3d models to fiddle with.

### 2019-10-09

- Correction + Additions regarding GPU transparency, SegaNet and the SDK, thanks /r/dreamcast!

### 2019-10-08

- Added SIMD core 

### 2019-10-07

- It's alive!

SHARE

Oscar perez

Arquitecto especialista en gestion de proyectos si necesitas desarrollar algun proyecto en Bogota contactame en el 3006825874 o visita mi pagina en www.arquitectobogota.tk

  • Image
  • Image
  • Image
  • Image
  • Image
    Blogger Comment
    Facebook Comment

0 comentarios:

Publicar un comentario