Esta consola cuenta con dos procesadores de uso general de dos generaciones distintas.
El protagonista
En primer lugar, tenemos un Motorola 68000 funcionando a ~7,6 MHz. Se trata de una nueva clase de CPU cuya historia merece ser contada...
Impulsando una década
El Motorola 68000, o '68k', supuso un salto generacional en la historia de los microprocesadores. Tras aprender de los errores del 6800, la empresa comenzó de cero con un nuevo equipo capaz de ofrecer una puerta asequible al espacio de 32 bits. En él podían procesarse bloques de datos mucho mayores, lo que permitía a los programadores ofrecer nuevas capacidades hasta entonces desconocidas para el consumidor.

El Macintosh de Apple (1984) y el Lisa (1983). A pesar de sus precios muy distintos, ambos se apoyaban en el Motorola 68000 para mostrar su innovadora interfaz de usuario.
Lanzado en 1979, el 68k llegó a tiempo para impulsar la siguiente década de microcomputadoras. Aunque al principio pasó apuros al perder el contrato de IBM frente a Intel, no tardaron otras empresas y start-ups en adoptar este chip para dar vida a sus nuevas creaciones. Algunas introdujeron mejoras incrementales sobre sus predecesoras, mientras que otras alcanzaron capacidades inimaginables. Por nombrar algunas:
- Una Interfaz Gráfica de Usuario (GUI, del inglés Graphical User Interface). Los nuevos productos basados en el 68k de Amiga, Apple, Atari y Sinclair estrenaron una forma novedosa de interacción con el usuario, basada esta vez en iconografía, formas y colores, y controlada con un 'ratón'.
- Aplicaciones de estación de trabajo: estas máquinas, ahora asequibles, eran capaces de procesar grandes cargas de trabajo con cierto grado de especialización. Esto impulsó el auge de la infraestructura de redes, el diseño gráfico y el equipamiento de investigación, entre otros.
- Esto coincidió también con la llegada de los sistemas operativos basados en UNIX al gran público, lo que generó una incómoda proliferación de 'estándares' y los consecuentes pleitos.
Cabe señalar que gran parte de esta funcionalidad no era nueva: simplemente había estado reservada a los costosos miniordenadores o a los prohibitivos mainframes. El hito reside en que todo esto era ahora accesible desde una oficina o un hogar cualquiera.

El chip Motorola 68000 en el Mega Drive; este en particular es de segunda fuente, fabricado por Hitachi.
A finales de los 80, sin embargo, el interés por el 68000 fue perdiendo fuerza en favor de una nueva ola de CPUs RISC. No obstante, los precios habían bajado lo suficiente para que empresas como Sega se interesaran en llevarlo al mercado de las consolas.
Características
Sentado el contexto, permíteme contarte qué ofrece el 68000 :
- El set de instrucciones del 68000: un nuevo set de instrucciones con abundantes características, incluyendo un conjunto de opcodes de multiplicación y división. Algunas instrucciones tienen 8 bits de longitud (llamadas 'byte'), otras tienen 16 bits ('word') y el resto son de 32 bits ('long-word').
- Dieciséis registros de 32 bits de uso general. Conviene tener en cuenta que esta CPU divide el conjunto en ocho 'registros de datos' (donde pueden realizarse operaciones aritméticas) y ocho 'registros de dirección' (empleados exclusivamente para almacenar direcciones de memoria).
- Aun así, supone un gran avance si tenemos en cuenta que el 6502 y el Z80 solo ofrecen registros de 8 bits.
- Una Unidad Aritmético-Lógica (ALU, del inglés Arithmetic Logic Unit) de 16 bits: lo que significa que necesita ciclos adicionales para calcular operaciones aritméticas sobre números de 32 bits, aunque funciona correctamente con valores de 16 y 8 bits.
- Un bus de datos externo de 16 bits: como puede apreciarse, aunque esta CPU tiene ciertas 'capacidades de 32 bits', no ha sido diseñada para ser una máquina de 32 bits completa. El ancho de este bus implica un mejor rendimiento al mover datos de 16 bits.
- Resulta curioso que Motorola presentara una CPU de 32 bits completa, el 68020, cuatro años antes del lanzamiento de esta consola. Sin embargo, los costes se habrían disparado si Sega hubiera optado por ese chip.
- Un bus de direcciones de 24 bits: lo que significa que se puede acceder a hasta 16 MB de memoria. Las direcciones de memoria siguen codificándose con valores de 32 bits dentro de la CPU (el byte superior simplemente se descarta).
Si te preguntas por qué se utilizan direcciones de 24 bits en una CPU capaz de manejar palabras de 32 bits: el equipamiento de la época difícilmente necesitaba gestionar 4 GB de memoria. Dado que implementar líneas sin usar resulta costoso tanto en rendimiento como en dinero, Motorola llegó a un compromiso sensato con registros de 32 bits y 24 líneas de dirección, preparando a los desarrolladores para la llegada de la CPU de 32 bits completa (el 68020) cinco años después.
Un set de instrucciones peculiar
Antes de la revolución RISC, existía una escuela de pensamiento que intentaba consolidar el diseño de los sets de instrucciones. En esencia, las CPUs de consumo de los años 70 (como el 6502 o el 8080) ofrecen instrucciones que predefinen cómo se puede acceder a la memoria (lo que se conoce como 'modo de direccionamiento'). Una variedad de modos de direccionamiento permite a la CPU manejar distintos casos de uso. Sin embargo, el número de modos de direccionamiento tiende a aumentar proporcionalmente la complejidad del set de instrucciones.
Para remediar esto, con el 68000, Motorola buscó unificar la mayor parte de sus instrucciones. Lo hizo desvinculando la función de la instrucción (el 'opcode') del modo de direccionamiento, convirtiendo este último en un simple parámetro (u 'operando') más. De este modo, los desarrolladores podían usar los mismos opcodes con el modo de direccionamiento que prefirieran según sus necesidades.
Como ejemplo sencillo, para mover datos:
- El MOS 6052 y el WDC 65816 ofrecen los opcodes
LDA,STA,LDX,STX,LDYySTY. La elección depende de la dirección de la información (de registro a memoria o viceversa) y del registro específico implicado.- Además, en el WDC 65816, el parámetro que especifica el tamaño del dato (8 o 16 bits) reside en un registro separado, lo que requiere instrucciones adicionales (
SEPyREP) para cambiarlo.
- Además, en el WDC 65816, el parámetro que especifica el tamaño del dato (8 o 16 bits) reside en un registro separado, lo que requiere instrucciones adicionales (
- En cambio, el Motorola 68000 ofrece un único opcode
MOVE; sus operandos especifican el origen, el destino, el tamaño y el tipo de direccionamiento.
Este principio se denomina ortogonalidad del set de instrucciones, e influyó enormemente en la nueva generación de CPUs de finales de los 70, aunque se diluyó rápidamente cuando los diseños RISC tomaron el relevo, trasladando de facto la carga a los compiladores. En cualquier caso, la familia Motorola 68k gozó de gran popularidad durante la década de los 80, y no fue hasta principios de los 90 cuando las empresas empezaron a migrar a otro fabricante.
El papel del Mega Drive
En esta consola, el 68k actúa como CPU 'principal' y se encarga de gestionar la lógica del juego, manejar la E/S y realizar los cálculos gráficos.
En consecuencia, el bus externo está físicamente conectado a :
- 64 KB de RAM de uso general.
- ROM del cartucho (hasta 4 MB).
- Dos mandos.
- Los registros, puertos y DMA del Video Display Processor.
- Los registros de la placa base (identifican la consola).
- Puertos de expansión (destinados a accesorios 'futuros').
- La RAM de la segunda CPU, gestionada por un árbitro de bus.
- El Texas Instruments SN76489 (un Generador de Sonido Programable, o PSG, que actúa como segundo chip de sonido).
El escudero
Esta consola incorpora otra CPU: un Zilog Z80 funcionando a ~3,5 MHz. Se trata del mismo procesador analizado en el artículo de la Master System.
Con el Mega Drive, sin embargo, el Z80 se destinó principalmente al control del sonido. Por ello, su espacio de direcciones de 16 bits comprende lo siguiente :
- 8 KB de RAM.
- Los dos chips de sonido disponibles.
- Un bloque dinámico de 32 KB mapeado al espacio de direcciones del 68000, seleccionable mediante un 'árbitro de bus'.
- En la práctica, sin embargo, la única zona de acceso fiable aquí es la ROM del cartucho .
Por último, es importante señalar que ambas CPUs pueden ejecutarse en paralelo... bajo ciertas restricciones, que los siguientes párrafos explican.
Memoria disponible
La CPU principal dispone de 64 KB de RAM dedicada para almacenar datos de uso general, y el Z80 cuenta con 8 KB de RAM para operaciones relacionadas con el sonido.
Intercomunicación
Sega eligió dos procesadores independientes ajenos el uno al otro, así que ¿cómo pueden los juegos gestionar ambos a la vez? Pues bien, el programa principal se ejecuta en el 68000, y esta CPU puede escribir posteriormente en la RAM del Z80. Así, el 68000 puede enviar un programa a la RAM del Z80 e instruir al Z80 para que lo cargue (enviándole una señal de reset) . Una vez que el Z80 está bajo control, este puede utilizarse para gestionar el subsistema de sonido y mover memoria mediante el método descrito anteriormente, todo mientras el 68000 se encarga de otras operaciones.

Arquitectura de memoria del Mega Drive/Genesis.
Hay un inconveniente, sin embargo: como cada CPU debe acceder al bus de la otra, ambas CPUs no pueden acceder al mismo bus al mismo tiempo. Para solucionar esto, un componente adicional llamado Bus Arbiter (árbitro de bus) se encarga de detener a cualquiera de los dos procesadores, permitiendo la manipulación de memoria sin riesgos.
Conviene señalar que este diseño puede rendir por debajo de lo esperado si no se gestiona adecuadamente, por lo que los juegos deben prestar especial atención al árbitro de bus para asegurarse de que ninguna CPU quede bloqueada más tiempo del necesario.