Motorola 68000
El Motorola 68000 (MC68000) es un microprocesador CISC 16/32 -bit diseñado y comercializado por Motorola (actualmente producido por Freescale). Introducido en 1979, con la tecnología HMOS, fue el primer miembro de la exitosa familia de microprocesadores m68k de 32 bits, por lo general el software creado para este procesador es compatible con las versiones futuras del resto de la línea a pesar de que esta primera versión está limitada a un ancho de bus externo de 16-bit. Después de más de cuatro décadas en producción, la arquitectura 68000 todavía está en uso. Debe su nombre al número de transistores de los que se compone, este microprocesador ha sido utilizado, entre otros, en los Commodore Amiga, los Atari ST, los primeros Macintosh, en Sharp X68000 y las primeras PCB de videojuegos de recreativas de Capcom. El MC68000 fue lanzado al mercado en 1980 y es el primero de una familia de microprocesadores que está formada por el Motorola 68010, Motorola 68020, Motorola 68030, Motorola 68040 y el Motorola 68060. Esta familia de procesadores a menudo es designada por el término genérico 680x0, m68k, 68k o familia 68000. Motorola desarrolló también a un sucesor de los 680x0: el Coldfire. HistoriaLos 68000 surgieron del proyecto MACSS (Motorola Advanced Computer System on Silicon, Sistemas de Computación Avanzadas en Silicio de Motorola), iniciado en 1976 para desarrollar una arquitectura totalmente nueva sin mantener la compatibilidad hacia los anteriores procesadores. Sería el hermano de mayor potencia que complementara la línea de productos de 8 bits 6800 en lugar de diseñar una línea compatible. Al final, el 68000 fue provisto de un protocolo de bus con modo de compatibilidad para los dispositivos periféricos de la línea 6800, y una versión con un bus de 8 bits de datos fue producida. Sin embargo, los diseñadores se centraron principalmente en el futuro, o la compatibilidad hacia delante, lo que dio la plataforma M68K una ventaja frente posteriores arquitecturas de 32 bits en el conjunto de instrucciones. Por ejemplo, los registros de la CPU eran de 32 bits de ancho, aunque son pocas las estructuras autónomas en el procesador en sí funcionan en 32 bits a la vez. El equipo MACSS estuvo muy fuertemente infuenciado por el diseño de procesadores para minicomputadoras, tales como el PDP-11 y los sistemas VAX, que tienen un microcódigo similar. ArquitecturaEl 68000 está basado en dos bancos de 8 registros de 32 bits. Un banco es de datos (Dn) y el otro de punteros (An). Además contiene un contador de programa de 32 bits y un registro de estado de 16 bits, Siendo su parte alta el "System Byte" y la parte baja el "User Byte". Los registros de datos (D0 a D7) se pueden usar como registros de 32 bits (.l), 16 bits (.w) y 8 bits (.b). Cualquiera de ellos puede usarse como acumulador, índice o puntero. Realizado en tecnología HMOS y posee 64 pines sin multiplexación de señales. Los registros de direcciones (punteros) son muy parecidos a los de datos, pero no pueden usarse como bytes y las operaciones con ellos no afectan al acarreo para poder efectuar cálculos con direcciones entre cálculos con datos. El registro A7 es el puntero de la pila (Stack Pointer) y está duplicado, habiendo un stack para el modo usuario y otro para el modo supervisor. Contiene dos ALUs diferentes, para operar con datos y direcciones independiente y simultáneamente. Organización internaModelo de memoriaSe organiza mediante el mapa de memoria física y el mapa de memoria funcional. Modelo de registrosTodos son de 32 bits, y son los siguientes:
Modos de direccionamientoAcepta los siguientes modos de direccionamiento:
Organización externaPines del MC68000
Excepciones en el MC68000Este microprocesador tiene tres estados: estado normal, estado de parada y estado de excepción. Saltará al último de ellos al recibir tanto señales externas como internas. Sigue un modelo de excepciones vectorizada, mediante la cual a cada excepción se le asocia un número de vector de 1 byte, fijo para cada excepción, excepto para las interrupciones externas. Este número se multiplica por 4 y se obtiene la dirección del vector de excepción en memoria, que ocupan 32 bits y están en memoria de datos del supervisor, excepto para el reset, que ocupa el doble (64 bits) y está en memoria de programa de supervisor. Todas se agrupan en una tabla (llamada Tabla de Vectores de Interrupción), y se sitúa en los primeros 256 bytes de memoria. Señales externas
Señales internas
Periféricos del MC68000MOTOROLA presentó junto con el microprocesador una gama de periféricos orientados a crear un sistema completo:
La compatibilidad con los periféricos de su antecesor, el MC6800, fue mantenida, como por ejemplo con la VIA6522 (comunicación en paralelo mediante puertos) y, además, realizó esfuerzos para mantener la compatibilidad con dispositivos de otros fabricantes y colaboró en el protocolo VME de IEEE. Utilización del procesador 68000Por AppleApple utilizó los procesadores 68000 en el Lisa y después en los primeros Macintosh (Macintosh 128, Mac 512, Mac Plus, Mac SE y Classic). Los Macintosh siguientes (serie LC) utilizaron procesadores 68020, posteriormente los Macintosh IIcx, IIci, IIfx, LCIII y SE/30 utilizaron los 68030. Por último, el Quadra y último LC (LC475, LC630) tuvieron procesadores 68040 (estos últimos LC utilizaban una versión sin unidad de coma flotante denominada 68LC040). Con la llegada de la nueva generación de Macintosh, conocidos bajo el nombre de Power Macintosh, Apple dotó a sus máquinas de procesadores PowerPC, fabricados por Motorola e IBM. Por AtariAtari en su gama Atari ST. Los siguientes modelos Atari TT030 y Atari Falcon incorporaban un 68030. Por CommodoreCommodore utilizó los procesadores 68000 en el primer modelo de Amiga, el Amiga 1000, y más tarde en sus sucesores Amiga 500, Amiga 2000 y Amiga 600. También fue utilizado en el CDTV, la incursión de Commodore en el vídeo digital interactivo doméstico. Posteriores modelos como el Amiga 3000, Amiga 1200, Amiga 4000 y CD32 utilizaron distintos procesadores de la familia, como el 68020, 68030 y 68040. Por SharpSharp en sus computadores X68000 usaba los núcleos 68000 y 68030 aunque este último es de la Gama X68030. Por SinclairSinclair en el Sinclair QL utiliza la variante 68008, con un bus de 8 bits. Por SegaSega en sus videoconsolas Mega Drive y Mega CD, como procesador principal, y en la Sega Saturn como procesador de sonido, además de en toda una gama de placas arcade (Sega System 16, etc) Por Silicon GraphicsSilicon Graphics en sus estaciones de trabajo, antes de pasarse a los microprocesadores MIPS. Por SNKSNK para la videoconsola Neo Geo. Por Sun MicrosystemsSun Microsystems para sus estaciones de trabajo, antes de pasarse a los microprocesadores SPARC. Por Texas InstrumentsPara sus calculadoras TI-89, TI-89 Titanium, TI-92, TI-92+ y Voyage 200. Por NeXTLas máquinas NeXT utilizaban procesadores 68030 y 68040. Por PalmEl procesador Dragonball de la primera generación de PDAs de Palm (y de otros dispositivos bajo PalmOS producidos por Handspring, IBM, Sony, TRGPro, Qualcomm, Symbol...) se deriva del 68000. Los PDAs de Palm más recientes utilizan procesadores ARM.
Segundas fuentesMotorola ofreció acuerdos de segunda fuente muy asequibles, poniendo como única condición que la otra parte desarrollase algún dispositivo nuevo para la familia, normalmente periféricos. Muchas compañías cumplían este requisito renombrando dispositivos de sus propias familias. Esto contribuyó enormemente a la amplia difusión del 68000, llegando a ser un estándar de la industria. Las siguientes son algunas compañías que fabricaron el 68000:
|