The core of the Sega CD architecture was a central 68000 processor that ran at 12Mhz and could operate in tandem with the 7.6Mhz Genesis' 68000 CPU. The Sega CD's CPU, however, is not considered to be significantly more capable than that of the Genesis CPU. Furthermore, both processors can not be employed in processing the same code simultaneously. This meant that most games would use the Sega CD's central processor for game code which would then be streamed to the Genesis RAM and displayed by the Genesis VDP. As a result, the Sega CD can not be considered a dual processor system.
Según comentan en este artículo, ambas CPU no pueden procesar un mismo código en paralelo.
AlterNathan escribió:¿No? Entonces la pregunta es: ¿Porque los emuladores en algunos juegos necesitan que ambos procesadores se sincronicen sino utilizan los dos? ¿Puede haber dos códigos? Saludos.
That's not completely true. The fundamental problem is that the system doesn't support shared memory access. In other words, both processors can't use the same chunks of memory simultaneously. They could run the same code (provided a copy was made in two different regions of RAM), but they can't really operate on the same data set at a time.
I can't say that I've disassembled most games, but I get the impression that most non-FMV games did most of their business on the Genesis CPU with the Sega CD CPU handling stuff specific to the Sega CD hardware (retrieving files off the CD, using the PCM chip, playing audio tracks etc.). In games with compressed video, I would imagine the Sega CD CPU probably did the bulk of the decoding. It's faster, it can access more RAM, and it doesn't have a huge chunk of it's time eaten up by DMA to the VDP.
bertobp escribió:Efectivamente ambas comparten trozos de RAM, el MegaCD tiene 4MBits que trocea en 4 bloques de 1MBit, esos trozos de 1Mbits son los que comparte por el bus con la RAM de la Megadrive. Evidentemente si el bus está ocupado por una de las CPUs, la otra no puede acceder hasta su correspondiente interrupción.
Asi, por ejemplo la CPU de la Megadrive y la VDP pueden mostrar y procesar la visualizacion de la imagen de pantalla, mientras la CPU del MegaCD esta ocupada por ejemplo leyendo datos del CD-ROM o procesando los datos graficos como rotaciones o cargando sprites en su RAM.
La Megadrive es la que procesa la imagen en el VDP, tambien ejecuta el codigo de la BIOS del MegaCD en el arranque, hace las funciones completas de I/O incluidas las de gestion del Bus con el MegaCD, usa el Z80 para audio para lo que no sea PCM,...
El megaCD es un addon que hace como schip de apoyo a la Megadrive, añade soporte para CD, audio digital y proceso/calculo de imagenes.
brito_cat escribió:O, por ejemplo, usar un cartucho de RAM como el de Saturn y dejar las respectivas RAM como un tipo de memoria intermedia?