
El Motorola 68000 (a veces abreviado como Motorola 68k o m68k y generalmente pronunciado "sesenta y ocho mil") [ 2 ] [ 3 ] es un microprocesador de computadora con conjunto de instrucciones complejo (CISC) de 16/32 bits , presentado en 1979 por Motorola Semiconductor Products Sector.
El diseño implementa un conjunto de instrucciones de 32 bits , con registros de 32 bits y un bus de datos interno de 16 bits . [ 4 ] El bus de direcciones tiene un ancho de 24 bits y no utiliza segmentación de memoria , lo que facilitó su programación. Internamente, utiliza una unidad aritmético-lógica (ALU) de datos de 16 bits y dos unidades aritméticas de 16 bits utilizadas principalmente para direcciones, [ 4 ] y tiene un bus de datos externo de 16 bits . [ 5 ] Por esta razón, Motorola lo denominó procesador de 16/32 bits.
Como uno de los primeros procesadores ampliamente disponibles con un conjunto de instrucciones de 32 bits, un amplio espacio de direcciones no segmentado y una velocidad relativamente alta para la época, el 68k fue un diseño popular durante la década de 1980. Se utilizó ampliamente en una nueva generación de ordenadores personales con interfaces gráficas de usuario , como el Macintosh 128K , el Amiga , el Atari ST y el X68000 , así como en consolas de videojuegos como la Sega Genesis/Mega Drive . Varios sistemas de juegos arcade también utilizaron el 68000.
Los procesadores posteriores de la serie Motorola 68000 , comenzando con el Motorola 68020 , utilizan ALU de 32 bits completas y tienen buses de direcciones y datos de 32 bits completos, lo que acelera las operaciones de 32 bits y permite el direccionamiento de 32 bits, en lugar del direccionamiento de 24 bits del 68000 y 68010 o el direccionamiento de 31 bits del Motorola 68012. El 68k original es generalmente compatible con versiones posteriores de software del resto de la línea a pesar de estar limitado a un bus externo de 16 bits de ancho. [ 4 ]
Aunque los procesadores ya no están en producción , [ 6 ] todavía se fabrican activamente clones y reproducciones funcionalmente idénticos del 68000.
Desarrollo


6800
El primer microprocesador de Motorola producido en masa fue el 6800 , presentado a principios de 1974 y disponible en grandes cantidades a finales de ese año. [ 7 ] La compañía se fijó la meta de vender 25 000 unidades para septiembre de 1976, meta que logró. Aunque era un diseño competente, fue eclipsado por diseños más potentes, como el Zilog Z80 , y diseños menos costosos, como el MOS Technology 6502. [ 8 ] A finales de 1976, las ventas estaban estancadas y la división se salvó gracias a un proyecto para el control de motores de General Motors y otras tareas. [ 9 ]
Transición a 16 bits
Para cuando se presentó el 6800, ya había salido al mercado un pequeño número de diseños de 16 bits. Estos generalmente se basaban en plataformas de minicomputadoras como la Data General Nova o la PDP-11 . Debido a los procesos de fabricación de semiconductores de la época, a menudo se trataba de soluciones multichip como el National Semiconductor IMP-16 , o el PACE de un solo chip que presentaba problemas de velocidad. [ 10 ]
Con las perspectivas de ventas del 6800 cada vez más sombrías, pero aún con liquidez gracias a las ventas de los sistemas de control de motores, a finales de 1976 Colin Crook, gerente de operaciones, comenzó a considerar cómo conseguir ventas futuras con éxito. Sabían que Intel estaba trabajando en una extensión de 16 bits de su serie 8080 , que se convertiría en el Intel 8086 , y habían oído rumores de un Zilog Z80 de 16 bits , que posteriormente se convertiría en el Z8000 . Estos sistemas utilizarían nuevas técnicas de diseño que eliminarían los problemas observados en los sistemas de 16 bits anteriores. [ 11 ]
Motorola sabía que si lanzaban un producto similar al 8086, con capacidades que se acercaban al 10%, Intel los superaría en el mercado. Para competir, se fijaron el objetivo de ser dos veces más potentes al mismo precio, o la mitad del precio con el mismo rendimiento. Crook decidió que atacarían la gama alta del mercado con el procesador más potente del mercado. [ 11 ] Otro procesador de 16 bits no sería suficiente; su diseño tendría que ser más grande, lo que implicaba incorporar algunas características de 32 bits. [ 12 ] Crook decidió este enfoque a finales de 1976. [ 11 ]
MACSS
Crook creó el proyecto Motorola Advanced Computer System on Silicon (MACSS) para desarrollar el diseño y contrató a Tom Gunter como arquitecto principal. Gunter comenzó a formar su equipo en enero de 1977. [ 13 ] El objetivo de rendimiento se fijó en 1 millón de instrucciones por segundo (MIPS). Querían que el diseño no solo recuperara a fabricantes de microcomputadoras como Apple Computer y Tandy , sino también a empresas de minicomputadoras como NCR y AT&T . [ 13 ]
El equipo decidió abandonar el intento de retrocompatibilidad con el 6800, ya que consideraban que los diseños de 8 bits eran demasiado limitados para servir de base a nuevos diseños. El nuevo sistema estuvo influenciado por el PDP-11 , el diseño de minicomputadora más popular de la época. [ 14 ] En aquel entonces, un concepto clave en las minicomputadoras era el de un conjunto de instrucciones ortogonal , en el que cada operación podía trabajar con cualquier tipo de datos, y el conjunto de instrucciones del PDP-11 se consideraba el ejemplo canónico de este concepto. Esto dio lugar a muchas instrucciones diferentes, que eran variaciones menores que cambiaban la procedencia de los datos. Para introducir los datos correctos en las unidades internas, MACSS hizo un uso extensivo del microcódigo , esencialmente pequeños programas en memoria de solo lectura que recopilaban los datos necesarios, realizaban las operaciones y luego escribían los resultados. Esto era común en las computadoras centrales y las minicomputadoras, pero MACSS sería de los primeros en utilizar esta técnica en un microprocesador. [ 15 ] [ 16 ]
Existía una gran cantidad de hardware de soporte para el 6800 que seguiría siendo útil, como UART y sistemas de interfaz similares. Por esta razón, el nuevo diseño conservó un modo de compatibilidad de protocolo de bus para los dispositivos periféricos 6800 existentes. [ 17 ] [ 16 ]
Un chip con 32 pines de datos y 32 de direccionamiento requeriría 64 pines, más otros para alimentación y otras características. En ese momento, los paquetes DIP ( Dual Inline Package ) de 64 pines eran sistemas "grandes y costosos" y "simplemente terribles", lo que los convertía en el tamaño máximo que podían considerar. Para que cupiera, Crook seleccionó un diseño híbrido, con una arquitectura de conjunto de instrucciones (ISA) de 32 bits pero con componentes de 16 bits que la implementaban, como la unidad aritmético-lógica (ALU). [ 13 ] La interfaz externa se redujo a 16 pines de datos y 24 para direcciones, lo que permitió que todo cupiera en un paquete de 64 pines. Esto se conoció como la "Cucaracha de Texas". [ 12 ] [ a ]
A mediados de la década de 1970, las técnicas de diseño MOS de Motorola se habían vuelto menos avanzadas que las de su competencia, y sus líneas de fabricación a veces tenían problemas con bajos rendimientos . A finales de la década de 1970, la empresa había entrado en un programa de intercambio de tecnología con Hitachi , mejorando drásticamente sus capacidades de producción. Como parte de esto, se construyó una nueva fábrica llamada MOS-8 utilizando los últimos tamaños de obleas de 5 pulgadas y el proceso HMOS de Intel con un tamaño de característica de 3,5 μm . [ 18 ] Esta fue una inversión destinada a alcanzar a la competencia: incluso empresas de semiconductores emergentes como Zilog y MOS Technology habían introducido CPU fabricadas con lógica NMOS de modo de agotamiento antes que Motorola. De hecho, es posible que Motorola se haya quedado sustancialmente rezagada con respecto a sus contemporáneos en la eliminación gradual del modo de enriquecimiento y la puerta metálica, y Gunter recuerda que el 68000 tuvo que tener éxito a pesar de haber adoptado inicialmente un diseño de puerta metálica. [ 19 ] Aunque el punto sobre ponerse al día es claro, este no podría haber sido un resumen del todo preciso porque las hojas de datos de Motorola de 1976, anteriores al inicio del proyecto MACCS, indican que la mayoría de su familia 6800 utilizaba tecnología de puerta de silicio. [ 20 ] De hecho, el propio artículo de Gunter de 1979 que presentaba el 68000 lo destacaba como un diseño HMOS de modo de agotamiento con puerta de silicio. [ 21 ] Cualquiera que fuera el grado de deficiencias en los procesos y la fabricación de Motorola en los primeros días, el equipo no se desanimó y no transigió en su búsqueda de un microprocesador con un rendimiento líder en la industria. [ 22 ]
Muestreo y producción
Presentado formalmente en septiembre de 1979, [ 23 ] las primeras muestras se lanzaron en febrero de 1980, y los chips de producción estuvieron disponibles sin receta en noviembre. [ 24 ] Las velocidades iniciales fueron de 4, 6 y 8 MHz . Los chips de 10 MHz estuvieron disponibles durante 1981, [ 25 ] y los chips de 12,5 MHz en junio de 1982. [ 24 ] La versión "12F" de 16,67 MHz del MC68000, la versión más rápida del chip HMOS original, no se produjo hasta finales de la década de 1980.
Módulo de diseño Motorola MC68000
Junto con el muestreo inicial del chip, Motorola ofreció una placa de desarrollo , el Módulo de Diseño Motorola MC68000 (M68KDM o simplemente KDM). La placa contaba con un microprocesador 68000 con 32k bytes de DRAM . Tenía dos puertos adaptadores de interfaz periférica de 16 bits en el borde del eyector y un conector macho para el antiguo bus Motorola 6800 EXORciser en el extremo opuesto, lo que permitía su uso con emuladores 6800 estándar. Un puerto de comunicación asíncrona (ACIA) estaba configurado para conectarse con un terminal de datos RS-232C estándar, y el otro estaba configurado para emular un terminal RS-232C, lo que permitía la comunicación con un ordenador host. Un modo transparente permitía descargar directamente un programa creado en un ordenador host a la memoria del 68000. El contenido de la memoria del 68000 también podía cargarse en el ordenador host para su posterior procesamiento. [ 26 ] : p.111 [ 27 ]
La placa KDM incluía chips ROM con zócalo que contenían el nuevo depurador MacsBug de Motorola . Un interruptor en la placa KDM activaba el depurador. [ 28 ] MacsBug se utilizó posteriormente en los primeros ordenadores Macintosh de Apple.
Adopción de Apple
A principios de 1981, el 68k estaba ganando pedidos en la gama alta, y Gunter comenzó a acercarse a Apple para conseguir su negocio. En ese momento, el 68k se vendía por unos 125 dólares en cantidad. En reuniones con Steve Jobs , Jobs habló sobre usar el 68k en el Apple Lisa , pero afirmó: "El verdadero futuro está en este producto que estoy haciendo personalmente. Si quieres este negocio, tienes que comprometerte a venderlo por 15 dólares". [ 29 ] Motorola contraatacó ofreciendo venderlo a 55 dólares al principio, luego bajar a 35 dólares, y así sucesivamente. Jobs aceptó, y el Macintosh pasó del 6809 al 68k. El precio promedio finalmente alcanzó los 14,76 dólares. [ 29 ] Según Apple, The First 50 Years , Jobs supuestamente deslizó un chip clon que estaba preparando Hitachi al CEO de Motorola, Robert Galvin, sobre un trozo de sushi para negociar. [ 30 ] : 73
Variantes
En 1982, el 68000 recibió una actualización menor de su arquitectura de conjunto de instrucciones ( ISA) para admitir memoria virtual y cumplir con los requisitos de virtualización de Popek y Goldberg . El chip actualizado se llama 68010. [ 31 ] También agrega un nuevo "modo de bucle" que acelera los bucles pequeños y aumenta el rendimiento general en aproximadamente un 10% a las mismas velocidades de reloj. Una versión extendida adicional, que expone 31 bits del bus de direcciones, también se produjo en pequeñas cantidades como el 68012 .
Para dar soporte a sistemas de menor coste y aplicaciones de control con memorias más pequeñas, Motorola presentó en 1982 el 68008 , compatible con 8 bits. Este es un 68000 con un bus de datos de 8 bits y un bus de direcciones más pequeño (de 20 bits). Después de 1982, Motorola centró su atención en los proyectos 68020 y 88000 .
Segunda fuente


Varias otras empresas fueron fabricantes de segunda fuente del HMOS 68000. Estas incluyeron Hitachi (HD68000), que redujo el tamaño de las características a 2,7 μm para su versión de 12,5 MHz, [ 24 ] Mostek (MK68000), Rockwell (R68000), Signetics (SCN68000), Thomson / SGS-Thomson (originalmente EF68000 y posteriormente TS68000) y Toshiba (TMP68000).
Las variantes encriptadas del 68000, como el Hitachi FD1089 y el FD1094, almacenan las claves de descifrado para los códigos de operación y los datos de los códigos de operación en una memoria con respaldo de batería. Estas se utilizaron en ciertos sistemas arcade de Sega (incluidos los juegos del Sistema 16 ) para prevenir la piratería y los juegos piratas ilegales. [ 32 ]
versiones CMOS

El 68HC000, la primera versión CMOS del 68000, fue diseñado por Hitachi y presentado conjuntamente en 1985. [ 33 ] Motorola lo ofreció como MC68HC000 mientras que Hitachi lo ofreció como HD68HC000. Toshiba también fue un fabricante secundario del CMOS 68HC000 (TMP68HC000). El 68HC000 ofrece velocidades de 8 a 20 MHz. Aparte de usar circuitos CMOS, se comportaba de forma idéntica al HMOS 68000, pero el cambio a CMOS redujo enormemente su consumo de energía. El HMOS 68000 original consumía alrededor de 1,35 vatios a una temperatura ambiente de 25 °C , independientemente de la velocidad de reloj, mientras que el 68HC000 consumía solo 0,13 vatios a 8 MHz y 0,38 vatios a 20 MHz. (A diferencia de los circuitos CMOS, los HMOS siguen consumiendo energía cuando están inactivos, por lo que el consumo de energía varía poco con la frecuencia de reloj). Apple seleccionó el 68HC000 para su uso en el Macintosh Portable y el PowerBook 100 .
Motorola reemplazó el 68008 por el 68HC001 en 1990. [ 34 ] Se asemeja al 68HC000 en la mayoría de los aspectos, pero su bus de datos puede operar en modo de 16 o 8 bits, dependiendo del valor de un pin de entrada al reiniciarse. Por lo tanto, al igual que el 68008, puede utilizarse en sistemas con memorias de 8 bits más económicas.
La evolución posterior del 68000 se centró en aplicaciones de control embebido más modernas y periféricos en el chip. El chip 68EC000 de bajo costo y el núcleo SCM68000 eliminaron el bus periférico M6800, así como la instrucción MOVE from SR de los programas en modo usuario, lo que hizo que el 68EC000 y el 68SEC000 fueran las únicas CPU 68000 que no eran 100% compatibles en código objeto con las CPU 68000 anteriores cuando se ejecutaban en modo usuario. Cuando se ejecutaban en modo supervisor, no había diferencia. [ 35 ] Este último método se hizo para que el 68EC000 y el SCM68000 pudieran cumplir con los requisitos de virtualización de Popek y Goldberg , y también se implementó posteriormente en su sucesor, el 68010. En 1996, Motorola actualizó el núcleo independiente con circuitos completamente estáticos, consumiendo solo 2 μW en modo de bajo consumo; este se conoció como el 68SEC000. [ 36 ]
Motorola cesó la producción del HMOS 68000, así como del 68008, 68010, 68330 y 68340 el 1 de junio de 1996, [ 37 ] [ 38 ] pero su empresa derivada Freescale Semiconductor (fusionada con NXP ) seguía produciendo los CMOS 68HC000, 68HC001, 68EC000 y 68SEC000, así como los microcontroladores 68302 y 68306 y versiones posteriores de la familia DragonBall . Los descendientes arquitectónicos del 68000, las familias 680x0 , CPU32 y Coldfire , también seguían en producción. Más recientemente, con el cierre de la fábrica de Sendai en 2010, todas las piezas 68HC000, 68020, 68030 y 68882 se han descontinuado, quedando solo el 68SEC000 en producción [ 39 ] hasta que también se descontinuó. [ 6 ] Los únicos procesadores basados en 68000 en producción eran el 68302, así como otras variantes de la familia 683xx, como el 68331 y el 68332 (que se derivan del 68000), aunque la producción del 68302 cesó en 2025, [ 40 ] dejando solo el 68331 y el 68332 como los miembros restantes de la familia 683xx en producción. [ 41 ] [ 42 ] Algunos de los procesadores descontinuados, como el 68SEC000 y otros, seguían estando disponibles a través de varios distribuidores.
En 2024, Rochester Electronics comenzó a reproducir el CMOS 68HC000, bajo licencia de NXP. Tanto el diseño físico como los programas de prueba se transfirieron de NXP a Rochester para continuar ofreciendo una fuente autorizada al mercado. Otros miembros de la familia 68000, como el 68020, también han sido reproducidos por Rochester Electronics desde al menos 2014. Los procesadores 68HC000 proporcionados por Rochester Electronics utilizan un clon del conjunto de máscaras J82M fabricado por Tohoku Semiconductor Corporation (TSC) en Japón, en la fábrica de obleas TSC6, que fue el último conjunto de máscaras utilizado por Motorola para el 68HC000, en sustitución de los conjuntos de máscaras E72N y G73K anteriores fabricados en Estados Unidos. [ 43 ]
Como núcleo de microcontrolador
Desde que fue reemplazado por microprocesadores de 32 bits "auténticos", el 68000 se utiliza como núcleo de muchos microcontroladores . En 1989, Motorola presentó el procesador de comunicaciones 68302. [ 44 ] Este procesador fue suministrado anteriormente por Freescale y NXP después de que Motorola escindiera su negocio de semiconductores en 2004. [ 40 ]
Aplicaciones
IBM consideró el 68000 para el IBM PC, pero optó por el Intel 8088 ; sin embargo, IBM Instruments vendió brevemente los sistemas informáticos de laboratorio IBM System 9000 basados en el 68000. El conjunto de instrucciones 68k es particularmente adecuado para implementar Unix, [ 45 ] y el 68000 y sus sucesores se convirtieron en las CPU dominantes para estaciones de trabajo basadas en Unix, incluidas las estaciones de trabajo Sun y Apollo/Domain .
En 1981, Motorola presentó la Motorola 68000 Educational Computer Board , una computadora de placa única para fines educativos y de capacitación que, además del procesador 68000, contenía memoria, dispositivos de entrada/salida, un temporizador programable y un área de cableado para circuitos personalizados. La placa se siguió utilizando en universidades estadounidenses como herramienta para aprender programación en lenguaje ensamblador hasta principios de la década de 1990. [ 46 ]
En su introducción, el 68000 se utilizó por primera vez en sistemas de alto precio, incluidos microordenadores multiusuario como el WICAT 150, [ 47 ] los primeros ordenadores de Alpha Microsystems , Sage II / IV , Tandy 6000 / TRS-80 Modelo 16 y Fortune 32:16 ; estaciones de trabajo de un solo usuario como los sistemas HP 9000 Serie 200 de Hewlett-Packard , los primeros sistemas Apollo/Domain , Sun-1 de Sun Microsystems y el Corvus Concept ; y terminales gráficas como VAXstation 100 de Digital Equipment Corporation e IRIS 1000 y 1200 de Silicon Graphics. Los sistemas Unix se trasladaron rápidamente a las generaciones posteriores más capaces de la línea 68k, que siguieron siendo populares en ese mercado durante toda la década de 1980.
A mediados de la década de 1980, la disminución de los costos de producción hizo que el procesador 68000 fuera viable para su uso en computadoras personales, comenzando con el Apple Lisa y el Macintosh , y seguido por el Amiga , el Atari ST y el X68000 .
El microordenador Sinclair QL , junto con sus derivados, como el terminal comercial ICL One Per Desk , fue la aplicación comercial más importante del 68008. Helix Systems (en Missouri, Estados Unidos) diseñó una extensión del bus SWTPC SS-50 , el SS-64, y produjo sistemas basados en el procesador 68008. Los segundos procesadores 68000 [ 48 ] y 68008 [ 49 ] se lanzaron para el BBC Micro en 1984 y 1985 respectivamente, y según Steve Furber contribuyeron al desarrollo del ARM por parte de Acorn. [ 50 ]
Si bien la adopción de las arquitecturas RISC y x86 desplazó a la serie 68000 como procesador para computadoras de escritorio y estaciones de trabajo, este procesador tuvo un uso considerable en aplicaciones integradas . A principios de la década de 1990, se podían adquirir procesadores 68000 por menos de 30 dólares cada uno.
El 68000 también tuvo un gran éxito como controlador integrado. Ya en 1981, impresoras láser como la Imagen Imprint-10 se controlaban mediante placas externas equipadas con el 68000. La primera HP LaserJet , lanzada en 1984, incluía un 68000 de 8 MHz integrado. Otros fabricantes de impresoras adoptaron el 68000, entre ellos Apple con la presentación de la LaserWriter en 1985, la primera impresora láser PostScript . El 68000 siguió utilizándose ampliamente en impresoras durante el resto de la década de 1980, y se mantuvo presente hasta bien entrada la década de 1990 en impresoras de gama baja.
El 68000 tuvo un gran éxito en el campo de los sistemas de control industrial. Entre los sistemas que se beneficiaron de tener un 68000 o un derivado como microprocesador se encontraban familias de controladores lógicos programables (PLC) fabricados por Allen-Bradley , Texas Instruments y, posteriormente, tras la adquisición de esa división de TI, por Siemens . Los usuarios de estos sistemas no aceptan la obsolescencia de los productos al mismo ritmo que los usuarios domésticos, y es muy probable que, a pesar de haber sido instalados hace más de 20 años, muchos controladores basados en el 68000 continúen funcionando de forma fiable hasta bien entrado el siglo XXI.
En varios osciloscopios digitales de los años 80, [ 51 ] el 68000 se ha utilizado como procesador de visualización de formas de onda; algunos modelos, incluido el LeCroy 9400/9400A [ 52 ], también utilizan el 68000 como procesador matemático de formas de onda (incluida la suma, resta, multiplicación y división de dos formas de onda/referencias/memorias de formas de onda), y algunos osciloscopios digitales que utilizan el 68000 (incluido el 9400/9400A) también pueden realizar funciones de transformada rápida de Fourier en una forma de onda.
Los microcontroladores 683XX , basados en la arquitectura 68000, se utilizan en equipos de redes y telecomunicaciones, decodificadores de televisión, instrumentos de laboratorio y médicos, e incluso calculadoras de mano. El MC68302 y sus derivados se han utilizado en muchos productos de telecomunicaciones de Cisco, 3com, Ascend, Marconi, Cyclades y otros. Modelos anteriores de las PDA Palm y el Handspring Visor utilizaban el DragonBall , un derivado del 68000. AlphaSmart utilizó la familia DragonBall en versiones posteriores de sus procesadores de texto portátiles. Texas Instruments utilizó el 68000 en sus calculadoras gráficas de gama alta, las series TI-89 y TI-92 y Voyage 200 .
Una versión modificada del 68000 constituyó la base del emulador de hardware IBM XT/370 del procesador System 370.
Juegos de vídeo
Varios fabricantes de videojuegos han utilizado el procesador 68000 como base de muchos juegos arcade , consolas de videojuegos y algunas consolas portátiles desde su lanzamiento:
Food Fight de Atari (1983) fue uno de los primeros juegos arcade basados en la 68000. Otros incluyeron plataformas de juegos arcade como System 16 de Sega (1985), CP System de Capcom (1988) y CP System II (1993), así como Neo Geo de SNK (1990). Ciertos juegos arcade (como Steel Gunner (1990) y otros basados en Namco System 2 (1987), incluyendo varias placas de sistema arcade Sega en la serie Super Scalar utilizadas en juegos como Hang-On (1985)) utilizan una configuración de CPU dual 68000, [ 53 ] y también existen sistemas con una configuración de CPU triple 68000 (como Galaxy Force (1988) y otros basados en la Sega Y Board (1988)), [ 54 ] junto con una configuración de CPU cuádruple 68000, que ha sido utilizada por Jaleco (un 68000 para sonido tiene una frecuencia de reloj más baja en comparación con las otras CPU 68000) [ 55 ] para juegos como Big Run (1989) y Cisco Heat (1990); Otro quinto procesador 68000 (con una frecuencia de reloj diferente a la de los demás procesadores 68000) se utilizó en el juego arcade Wild Pilot (1992) de Jaleco para el procesamiento de entrada/salida (E/S). [ 56 ]

A finales de la década de 1980, el 68000 era lo suficientemente económico como para alimentar consolas de videojuegos domésticas, como la Genesis de Sega (1988), que utilizaba el 68000 como su CPU principal. El accesorio Sega CD (1991) también utilizaba el 68000 como coprocesador (un sistema Sega CD tiene tres CPU, dos de ellas 68000). Otras consolas con CPU 68000 incluyen la Neo Geo AES (1990) (basada en su contraparte arcade), la educativa Pico (1993), la Jaguar multiprocesadora (1993), la Saturn (1994), que utilizaba el 68EC000 (un 68000 de bajo costo) como coprocesador de sonido, y la consola portátil Genesis Nomad (1995). [ 57 ]
Arquitectura
Autobús de dirección
El 68000 tiene un bus de direcciones externo de 24 bits y dos señales de selección de byte que "reemplazan" a A0. Estas 24 líneas pueden, por lo tanto, direccionar 16 MB de memoria física con resolución de byte. El almacenamiento y el cálculo de direcciones utilizan 32 bits internamente; sin embargo, los 8 bits de dirección de orden superior se ignoran debido a la falta física de pines del dispositivo. Esto le permite ejecutar software escrito para un espacio de direcciones lógicamente plano de 32 bits , mientras que accede solo a un espacio de direcciones físicas de 24 bits. La intención de Motorola con el espacio de direcciones interno de 32 bits era la compatibilidad con versiones futuras, lo que hacía factible escribir software para el 68000 que aprovechara al máximo las implementaciones posteriores de 32 bits del conjunto de instrucciones del 68000. [ 4 ]
Sin embargo, esto no impidió que los programadores escribieran software incompatible con versiones posteriores. El software de "24 bits" que descartaba el byte de dirección superior, o lo usaba para fines distintos al direccionamiento, podía fallar en implementaciones de 32 bits del 68000. Por ejemplo, las primeras versiones (anteriores a la 7.0) del Mac OS de Apple usaban el byte alto de los punteros maestros de los bloques de memoria para almacenar indicadores como bloqueado y purgable . Apple comenzó a distribuir computadoras con ROM " limpias de 32 bits " a partir del lanzamiento del Mac IIci de 1989 , y las versiones posteriores del sistema operativo movieron los indicadores a una ubicación cercana.
La familia 68000 almacena enteros multibyte en memoria en orden big-endian .
Registros internos
La CPU cuenta con ocho registros de datos de propósito general de 32 bits (D0-D7) y ocho registros de direcciones (A0-A7). El último registro de direcciones es el puntero de pila , y los ensambladores aceptan la etiqueta SP como equivalente a A7. En aquel momento, este número de registros era adecuado en muchos sentidos. Era lo suficientemente pequeño como para permitir que el 68000 respondiera rápidamente a las interrupciones (incluso en el peor de los casos, donde era necesario guardar los 8 registros de datos D0-D7 y los 7 registros de direcciones A0-A6, un total de 15 registros), y a la vez lo suficientemente grande como para agilizar la mayoría de los cálculos, ya que podían realizarse completamente dentro del procesador sin almacenar resultados parciales en memoria. (Cabe destacar que una rutina de excepción en modo supervisor también puede guardar el puntero de pila de usuario A7, lo que sumaría un total de 8 registros de direcciones. Sin embargo, el diseño de doble puntero de pila (A7 y A7' en modo supervisor) del 68000 hace que esto sea normalmente innecesario, excepto cuando se realiza un cambio de tarea en un sistema multitarea).
El hecho de tener dos tipos de registros permite que los códigos de condición permanezcan sin cambios al manipular los registros de direcciones. Además, al dividir los 16 registros en dos tipos diferentes, se pueden codificar con solo tres bits. [ 4 ]
Registro de estado
El 68000 tiene un registro de estado de 16 bits. Los 8 bits superiores son el byte del sistema, y su modificación es privilegiada. Los 8 bits inferiores son el byte del usuario, también conocido como registro de código de condición (CCR), y su modificación no es privilegiada. Las operaciones de comparación, aritméticas y lógicas del 68000 modifican los códigos de condición para registrar sus resultados y utilizarlos en saltos condicionales posteriores. Los bits del código de condición son "acarreo" (C), "desbordamiento" (V), "cero" (Z), "negativo" (N) y "extensión" (X). El indicador "extensión" (X) merece una mención especial, ya que es independiente del indicador de acarreo . Esto permite separar el bit adicional de las operaciones aritméticas, lógicas y de desplazamiento de la aritmética de precisión múltiple de acarreo . [ 58 ]
Conjunto de instrucciones
Los diseñadores intentaron que el lenguaje ensamblador fuera ortogonal . Es decir, las instrucciones se dividen en operaciones y modos de direccionamiento , y casi todos los modos de direccionamiento están disponibles para un parámetro de casi todas las instrucciones. Hay 56 instrucciones y un tamaño mínimo de instrucción de 16 bits. Muchas instrucciones y modos de direccionamiento son más largos para incluir más datos de dirección o inmediatos.
Niveles de privilegio
La CPU, y posteriormente toda la familia, implementa dos niveles de privilegio. El modo de usuario otorga acceso a todo excepto a las instrucciones privilegiadas, como los controles de nivel de interrupción. [ 59 ] El privilegio de supervisor otorga acceso a todo. Una interrupción siempre se convierte en supervisora. El bit de supervisor se almacena en el registro de estado y es visible para los programas de usuario. [ 59 ]
Una ventaja de este sistema es que el nivel de supervisión tiene un puntero de pila independiente. Esto permite que un sistema multitarea utilice pilas muy pequeñas para las tareas, ya que los diseñadores no tienen que asignar la memoria necesaria para almacenar los marcos de pila de una pila máxima de interrupciones.
Interrumpe
La CPU reconoce siete niveles de interrupción . Los niveles del 1 al 5 tienen una prioridad estricta; es decir, una interrupción de mayor prioridad siempre puede interrumpir una de menor prioridad. En el registro de estado, una instrucción privilegiada permite establecer el nivel mínimo de interrupción actual, bloqueando las interrupciones de menor o igual prioridad. Por ejemplo, si el nivel de interrupción en el registro de estado se establece en 3, los niveles superiores del 4 al 7 pueden provocar una excepción. El nivel 7 es una interrupción no enmascarable (NMI) activada por nivel. El nivel 1 puede ser interrumpido por cualquier nivel superior. El nivel 0 significa que no hay interrupción. El nivel se almacena en el registro de estado y es visible para los programas de nivel de usuario.
Las interrupciones de hardware se envían a la CPU mediante tres entradas que codifican la prioridad de interrupción pendiente más alta. Normalmente se requiere un codificador independiente para codificar las interrupciones, aunque para sistemas que no requieren más de tres interrupciones de hardware es posible conectar las señales de interrupción directamente a las entradas codificadas, a costa de una mayor complejidad de software. El controlador de interrupciones puede ser tan simple como un codificador de prioridad 74LS148 , o puede formar parte de un chip periférico de integración a muy gran escala (VLSI), como el periférico multifunción MC68901 (utilizado en la gama de ordenadores Atari ST y X68000 ), que también proporciona una UART , un temporizador y E/S paralelas.
La "tabla de excepciones" ( tabla de vectores de interrupción direcciones de vectores de interrupción) está fija en las direcciones 0 a 1023, lo que permite 256 vectores de 32 bits. El primer vector (RESET) consta de dos vectores, a saber, la dirección de pila inicial y la dirección de código inicial. Los vectores 3 a 15 se utilizan para informar varios errores: error de bus , error de dirección, instrucción ilegal , división por cero , vector CHK y CHK2, violación de privilegio (para bloquear la escalada de privilegios ) y algunos vectores reservados que se convirtieron en el emulador de la línea 1010, el emulador de la línea 1111 y el punto de interrupción de hardware . El vector 24 inicia las interrupciones reales : interrupción espuria (sin acuse de recibo de hardware) y autovectores de nivel 1 a nivel 7, luego los 16 vectores TRAP, luego algunos vectores reservados más, luego los vectores definidos por el usuario.
Dado que el vector de direcciones del código de inicio debe ser siempre válido al reiniciarse, los sistemas solían incluir memoria no volátil (por ejemplo, ROM ) que comenzaba en la dirección cero para almacenar los vectores y el código de arranque . Sin embargo, en un sistema de propósito general, es deseable que el sistema operativo pueda modificar los vectores en tiempo de ejecución. Esto se lograba a menudo haciendo que los vectores de la ROM apuntaran a una tabla de saltos en la RAM , o mediante el uso de conmutación de bancos para permitir que la ROM fuera reemplazada por la RAM en tiempo de ejecución.
El 68000 no cumple con los requisitos de virtualización de Popek y Goldberg para la virtualización completa del procesador, ya que posee una única instrucción no privilegiada, "MOVE from SR", que permite el acceso de solo lectura por software en modo usuario a una pequeña cantidad de estado privilegiado. Los procesadores 68EC000 y 68SEC000, derivados posteriores del 68000, sí cumplen con los requisitos, puesto que la instrucción "MOVE from SR" es privilegiada. Este mismo cambio se introdujo en los procesadores 68010 y posteriores.
El 68000 tampoco admite fácilmente la memoria virtual , que requiere la capacidad de interceptar y recuperarse de un acceso a memoria fallido. El 68000 proporciona una excepción de error de bus que se puede usar para interceptarla, pero no guarda suficiente estado del procesador para reanudar la instrucción fallida una vez que el sistema operativo ha gestionado la excepción. Varias empresas lograron fabricar estaciones de trabajo Unix basadas en el 68000 con memoria virtual que funcionaba utilizando dos chips 68000 funcionando en paralelo con relojes de diferentes fases. Cuando el 68000 "líder" encontraba un acceso a memoria erróneo, hardware adicional interrumpía al 68000 "principal" para evitar que también encontrara el mismo acceso a memoria erróneo. Esta rutina de interrupción gestionaba las funciones de la memoria virtual y reiniciaba el 68000 "líder" en el estado correcto para continuar la operación sincronizada cuando el 68000 "principal" regresaba de la interrupción.
Estos problemas se solucionaron en la siguiente revisión importante de la arquitectura 68k con el lanzamiento del MC68010. Las excepciones de error de bus y error de dirección transfieren una gran cantidad de estado interno a la pila del supervisor para facilitar la recuperación, y la instrucción "MOVE from SR" se convirtió en privilegiada. Se proporciona una nueva instrucción "MOVE from CCR" no privilegiada para su uso en software en modo usuario; un sistema operativo puede interceptar y emular las instrucciones "MOVE from SR" en modo usuario si lo desea.
Detalles del conjunto de instrucciones
Los modos de direccionamiento estándar son:
- Regístrate directamente
- registro de datos, por ejemplo "D0"
- registro de direcciones, por ejemplo "A0"
- Registro indirecto
- Dirección simple, por ejemplo (A0)
- Dirección con incremento posterior, por ejemplo (A0)+
- Dirección con predecremento, por ejemplo −(A0)
- Dirección con un desplazamiento con signo de 16 bits, por ejemplo, 16(A0)
- Registro indirecto con registro de índice y desplazamiento con signo de 8 bits, por ejemplo 8(A0,D0) o 8(A0,A1).
- Tenga en cuenta que para (A0)+ y −(A0), el valor real de incremento o decremento depende del tamaño del operando: un acceso de byte ajusta el registro de dirección en 1, una palabra en 2 y un long en 4.
- PC (contador de programa) relativo al desplazamiento
- Desplazamiento relativo con signo de 16 bits, por ejemplo, 16(PC). Este modo era muy útil para códigos independientes de la posición.
- Relativo con desplazamiento con signo de 8 bits con índice, por ejemplo 8(PC,D2)
- Ubicación de memoria absoluta
- Puede ser un número, por ejemplo "$4000", o un nombre simbólico traducido por el ensamblador.
- La mayoría de los ensambladores 68000 usaban el símbolo "$" para hexadecimal , en lugar de "0x" o una H al final.
- Existen versiones de 16 y 32 bits de este modo de direccionamiento.
- Modo inmediato
- Datos almacenados en la instrucción, por ejemplo "#400"
- Modo rápido e inmediato
- 3 bits sin signo (o 8 bits con signo con moveq) con valor almacenado en el código de operación
- En addq y subq, 0 es el equivalente a 8.
- Por ejemplo, moveq #0,d0 fue más rápido que clr.l d0 (aunque ambos hicieron que D0 fuera igual a 0).
Además: acceso al registro de estado y, en modelos posteriores, a otros registros especiales.
La mayoría de las instrucciones tienen variantes que operan con bytes de 8 bits, palabras de 16 bits y números largos de 32 bits; los lenguajes ensambladores utilizan los sufijos de letras con punto ".b", ".w" y ".l" después del mnemónico de la instrucción para indicar la variante.
Al igual que muchas CPU de su época, el tiempo de ciclo de algunas instrucciones variaba según el operando o los operandos de origen. Por ejemplo, la instrucción de multiplicación sin signo tarda (38+2n) ciclos de reloj en completarse, donde 'n' es igual al número de bits establecidos en el operando. [ 60 ] Para crear una función que tardara un número fijo de ciclos, era necesario añadir código adicional después de la instrucción de multiplicación. Esto normalmente consumía ciclos adicionales por cada bit que no estuviera establecido en el operando de multiplicación original.
La mayoría de las instrucciones son diádicas , es decir, la operación tiene un origen y un destino, y el destino se modifica. Las instrucciones más destacadas son:
- Aritmética: ADD, SUB, MULU (multiplicación sin signo), MULS (multiplicación con signo), DIVU (división sin signo), DIVS (división con signo), NEG (negación aditiva) y CMP (comparación, realizada restando los argumentos y estableciendo los bits de estado sin almacenar el resultado).
- Aritmética decimal codificada en binario : ABCD, NBCD y SBCD
- Lógica: EOR (o exclusivo), AND, NOT (no lógico), OR (o inclusivo)
- Desplazamiento: (desplazamientos lógicos, es decir, desplazamientos a la derecha que colocan cero en el bit más significativo) LSL, LSR, ( desplazamientos aritméticos , es decir, extensión de signo del bit más significativo) ASR, ASL, (rotación a través de eXtend y not) ROXL, ROXR, ROL, ROR
- Prueba y manipulación de bits en memoria o registro de datos: BSET (establecer a 1), BCLR (borrar a 0), BCHG (invertir) y BTST (sin cambios). Todas estas instrucciones primero comprueban el bit de destino y establecen (borran) el bit Z del registro CCR si el bit de destino es 0 (1), respectivamente.
- Control de multiprocesamiento : TAS, prueba y configuración , realizaba una operación de bus indivisible, lo que permitía utilizar semáforos para sincronizar varios procesadores que compartían una única memoria.
- Flujo de control: JMP (salto), JSR (salto a subrutina), BSR (salto a subrutina mediante dirección relativa), RTS (retorno de subrutina ), RTE (retorno de excepción , es decir, una interrupción), TRAP (activación de una excepción de software similar a una interrupción de software), CHK (una excepción de software condicional).
- Salto: Bcc (donde "cc" especifica una de las 14 pruebas de los códigos de condición en el registro de estado: igual, mayor que, menor que, acarreo y la mayoría de las combinaciones e inversiones lógicas disponibles en el registro de estado). Las dos condiciones posibles restantes (siempre verdadero y siempre falso) tienen mnemónicos de instrucción separados: BRA (salto siempre) y BSR (salto a subrutina).
- Decremento y salto: DBcc (donde "cc" era igual que en las instrucciones de salto), que, siempre que la condición fuera falsa , decrementaba la palabra baja de un registro D y, si el resultado no era -1 ($FFFF), saltaba a un destino. Este uso de -1 en lugar de 0 como valor de terminación permitía codificar fácilmente bucles que no tenían que hacer nada si el contador era 0 al principio, sin necesidad de otra comprobación antes de entrar en el bucle. Esto también facilitaba el anidamiento de DBcc.
68EC000

El 68EC000 es una versión de bajo costo del 68000 con una distribución de pines ligeramente diferente, diseñada para aplicaciones de controladores embebidos. El 68EC000 puede tener un bus de datos de 8 o 16 bits , conmutable en el reinicio. [ 61 ] Los procesadores también tienen algunos cambios menores para cumplir con los requisitos de virtualización de Popek y Goldberg , lo que incluye que la instrucción MOVE from SR sea privilegiada (un cambio que también se hizo en el 68010).
Los procesadores están disponibles en diversas velocidades, incluyendo configuraciones de 8 y 16 MHz , y generan 2100 y 4376 Dhrystones respectivamente. Estos procesadores no cuentan con una unidad de punto flotante , y resulta difícil implementar un coprocesador FPU ( MC68881/2 ) con uno, ya que la serie EC carece de las instrucciones necesarias para dicho coprocesador.
El 68EC000 se utilizó como controlador en numerosas aplicaciones de audio, incluyendo instrumentos musicales y tarjetas de sonido Ensoniq , donde formaba parte del sintetizador MIDI . [ 62 ] En las tarjetas de sonido Ensoniq, el controlador ofrecía varias ventajas respecto a sus competidores sin CPU integrada. El procesador permitía configurar la tarjeta para realizar diversas tareas de audio, como la síntesis MIDI MPU-401 o la emulación MT-32 , sin necesidad de un programa residente . Esto mejoraba la compatibilidad del software, reducía el uso de la CPU y eliminaba el consumo de memoria del sistema anfitrión.
El núcleo Motorola 68EC000 se utilizó posteriormente en los procesadores DragonBall basados en el m68k de Motorola/ Freescale .
También se utilizó como controlador de sonido en la consola de videojuegos Sega Saturn y como controlador para las placas controladoras Ethernet HP JetDirect de las impresoras HP LaserJet de mediados de la década de 1990 .
Código de ejemplo
El código ensamblador 68000 que se muestra a continuación corresponde a una subrutina llamada strtolower, que copia una cadena de caracteres de 8 bits terminada en nulo a una cadena de destino, convirtiendo todos los caracteres alfabéticos a minúsculas. [ b ]
La subrutina establece un marco de llamada usando el registro A6 como puntero de marco. Este tipo de convención de llamada admite código reentrante y recursivo y es utilizada típicamente por lenguajes como C y C++ . Luego, la subrutina recupera los parámetros que se le pasan ( srcy dst) de la pila. A continuación, entra en un bucle, leyendo un carácter ASCII (un byte) de la srccadena, comprobando si es un carácter alfabético en mayúscula y, de ser así, convirtiéndolo en minúscula; de lo contrario, lo deja como está, y luego escribe el carácter en la dstcadena. Finalmente, comprueba si el carácter era nulo ; si no, repite el bucle; de lo contrario, restaura el marco de pila anterior (y el registro A6) y regresa. Nótese que los punteros de cadena (registros A0 y A1) se incrementan automáticamente en cada iteración del bucle.
En contraste, el código a continuación es para una función independiente, incluso en la versión más restrictiva de AMS para la serie de calculadoras TI-89, siendo independiente del kernel, sin búsqueda de valores en tablas, archivos o bibliotecas durante la ejecución, sin llamadas al sistema, sin procesamiento de excepciones, con un mínimo de registros a utilizar y sin necesidad de guardar ninguno. Es válido para fechas julianas históricas desde el 1 de marzo del año 1 d. C., o para fechas gregorianas . En menos de dos docenas de operaciones calcula un número de día compatible con ISO 8601 cuando se llama con tres entradas almacenadas en sus ubicaciones correspondientes:
; ; WDN, una dirección - para almacenar el resultado d0 ; FLAG, 0 o 2 - para elegir entre el calendario juliano o el gregoriano, respectivamente. ; FECHA, año0mda - marca de fecha como palabra&byte&byte binario en formato ISO básico ;(AÑO, año ~ AÑO=FECHA debido al formato big- endian ) ;move.lDATE,d0move.ld0,d1; Aplicar el paso 1: congruencia de Lachmanandi.l#$f00,d0divu#100,d0addi.w#193,d0andi.l#$ff,d0divu#100,d0; d0 has the month index i in the upper word (mod 100); ; Aplicar el paso 2: Encontrar spqr como el año del día bisiesto juliano anterior a la FECHAswapd0andi.l#$ffff,d0add.bd1,d0add.wYEAR,d0subi.l#$300,d1lsr#2,d1swapd1add.wd1,d0; spqr/4 + year + i + da; (Aplicar paso 0 - Ajuste gregoriano)muluFLAG,d1divu#50,d1mulu#25,d1lsr#2,d1add.wd1,d0add.wFLAG,d0; (sp32div16) + spqr/4 + year + i + da;divu#7,d0swapd0; d0.w becomes the day number;move.wd0,WDN; returns the day number to address WDNrts; Los días de la semana corresponden a los números de los días de la semana de la siguiente manera: ; Dom=0 Lun=1 Mar=2 Mié=3 Jue=4 Vie=5 Sáb=6 ;
Notas
- ↑ Los diseños híbridos de este tipo ya eran comunes en el campo de las minicomputadoras. La Data General Nova era un diseño de 16 bits implementado con ALU de 4 bits.
- ↑ Debido a que
bloybhibifurcación se referencian hacia adelante , el ensamblador no pudo determinar si estaban dentro del rango de una bifurcación corta. En su lugar, se codificaron como bifurcaciones largas. La instrucciónbnese codifica como una bifurcación corta.
Véase también
- Motorola 6800 : un predecesor de 8 bits.
- DTACK Grounded – un boletín informativo de principios de la serie 68000
Referencias
- ↑ Heath, Steve (1995). Arquitecturas y sistemas de microprocesadores: RISC, CISC y DSP (Segunda edición). Elsevier. pág. 13. ISBN 0-7506-2303-9Archivado del original el 16 de abril de 2021. Consultado el 12 de octubre de 2019 .
- ↑ Granlund, Torbjörn (14 de noviembre de 2020). La biblioteca aritmética de precisión múltiple de GNU (PDF) (Ed. 6.2.1 ). Proyecto GNU . pág. 13. Archivado (PDF) del original el 28 de julio de 2022. Recuperado el 29 de julio de 2022 .
- ↑ Heid, Jim; Norton, Peter (1989). Inside the Apple Macintosh . Simon & Schuster . pág. 530. ISBN 0-13-467622-XArchivado del original el 29 de julio de 2022. Consultado el 29 de julio de 2022 .
- 1 2 3 4 5 Starnes, Thomas W. (abril de 1983). "Filosofía de diseño detrás del MC68000 de Motorola" . Byte . Vol. 8, n.º 4. Archivado del original el 24 de julio de 2018. Recuperado el 19 de junio de 2018 .
- ↑ Manual de referencia del programador de la familia Motorola M68000 (PDF) . Phoenix, Arizona: Motorola . 1992. pág. 1-1. ISBN 0-13-723289-6. Archivado (PDF) del original el 24 de septiembre de 2015. Recuperado el 12 de agosto de 2005 .
- 1 2 "MC68000: Microprocesador de 32 bits de bajo costo (incluidos HC000, HC001, EC000 y SEC000)" . NXP Semiconductor . Consultado el 13 de septiembre de 2025 .
- ↑ "Motorola se suma a la carrera de los microprocesadores con un modelo de 8 bits". Electronics . 47 (5). Nueva York: McGraw-Hill: 29–30 . 7 de marzo de 1974.
- ↑ Tooley, Michael (1988). Servicio de computadoras personales (Segunda edición). Heinemann . pág. 8. ISBN 0-434-91975-6Archivado del original el 29 de julio de 2022. Consultado el 29 de julio de 2022 .
- ↑ Oral 2007 , pág. 4.
- ↑ Kent, Allen ; Williams, James G. (1991). Enciclopedia de microcomputadoras: evolución de la gestión de mantenimiento computarizada a la generación de números aleatorios . Vol. 7. Marcel Dekker . pág. 336. ISBN 0-8247-2706-1Archivado del original el 29 de julio de 2022. Consultado el 29 de julio de 2022 .
- 1 2 3 Oral 2007 , pág. 5.
- 1 2 Oral 2007 , pág. 9.
- 1 2 3 Oral 2007 , pág. 6.
- ↑ Oral 2007 , pág. 8.
- ↑ Oral 2007 , pág. 7.
- 1 2 Andersson, Sven (24 de marzo de 2014). "La (R)evolución del microprocesador" . EE Times . pág. 2. Archivado del original el 29 de julio de 2022. Recuperado el 29 de julio de 2022 .
- ↑ Tooley, Michael (1992). Servicio de computadoras personales (Tercera ed.). Newnes . págs. 264–265 . ISBN 0-7506-0374-7Archivado del original el 29 de julio de 2022. Consultado el 29 de julio de 2022 .
- ↑ Oral 2007 , pág. 10.
- ↑ Oral 2007 , págs. 9–11.
- ↑ "Datos de diseño del sistema de microcomputadora M6800" (PDF) . Motorola . 1976. pág. 21. Archivado (PDF) del original el 18 de abril de 2023. Recuperado el 17 de abril de 2023 .
- ↑ Stritter y Gunter (1979). "Microsistemas: una arquitectura de microprocesador para un mundo cambiante: el Motorola 68000". Computer . 12 (2): 43– 52. doi : 10.1109/MC.1979.1658617 . S2CID 15893310 .
- ↑ Oral 2007 , pág. 11.
- ↑ Ken Polsson. "Cronología de los microprocesadores" . Processortimeline.info. Archivado del original el 19 de agosto de 2012. Consultado el 27 de septiembre de 2013 .
- 1 2 3 DTACK GROUNDED, The Journal of Simple 68000/16081 Systems , marzo de 1984, pág. 9, archivado del original el 10 de marzo de 2016 , recuperado el 31 de octubre de 2011 .
- ↑ "Motorola era el rival a batir, y su 68000 su mayor éxito" . tekdeeps . Archivado del original el 13 de septiembre de 2022. Recuperado el 13 de septiembre de 2022 .
- ↑ Colin P Scott (mayo de 1988). Consideraciones de diseño para un sistema de registro paralelo de espectroscopia de pérdida de energía de electrones (PDF) . Universidad de Glasgow.
- ↑ Módulo de diseño Motorola Microsystems M68000 - MEX68KDM número L 46 semana 1979 | Foros de la Federación de Computadoras Vintage
- ↑ "Manual del usuario del depurador MACSbug 68000 " ( PDF) . Corvus Systems. Marzo de 1983.
Gran parte de la información contenida en este manual se reproduce con el permiso de Motorola Inc. de la Guía del usuario del módulo de diseño Motorola MC68000 (número de pieza de Motorola MEX68KDM(D4), agosto de 1980).
- 1 2 Oral 2007 , pág. 12.
- ↑ Pogue, David (2026). Apple: Los primeros 50 años (1.ª ed.). Nueva York: Simon & Schuster. ISBN 978-1-9821-3465-5.
- ↑ Faynberg, Igor; Lu, Hui-Lan; Skuler, Dor (2016). Computación en la nube: tendencias y tecnologías empresariales . Wiley . pág. 53. ISBN 978-1-118-50121-4Archivado del original el 29 de julio de 2022. Consultado el 29 de julio de 2022 .
- ↑ "FD1094 – Sega Retro" . segaretro.org . 19 de octubre de 2017. Archivado del original el 28 de septiembre de 2013. Consultado el 27 de octubre de 2015 .
- ↑ "Company Briefs" Archivado el 14 de noviembre de 2007 en Wayback Machine , The New York Times, 21 de septiembre de 1985, disponible en TimesSelect (suscripción).
- ^ "68HC001 obsoleto 68008". Informe del microprocesador . 20 de junio de 1990.
- ↑ "Motorola optimiza la familia 68000; versiones "EC" de los modelos 68000, '020, '030 y '040, además del chip de gama baja 68300"". Informe sobre microprocesadores . 17 de abril de 1991.
- ↑ «Motorola presenta el procesador MC68SEC000 para aplicaciones integradas de bajo consumo» (Comunicado de prensa). Motorola. 18 de noviembre de 1996. Archivado del original el 28 de marzo de 1997.
- ↑ "HIPPO Q495" (PDF) . Descripción general de la cartera de productos internos de alto rendimiento (10). Motorola . Cuarto trimestre de 1995. Archivado del original el 14 de septiembre de 2022. Consultado el 29 de julio de 2022 .
- ↑ Publicación de Usenet comp.sys.m68k Archivada el 14 de noviembre de 2007 en Wayback Machine , 16 de mayo de 1995; ver también otras publicaciones en el hilo. El anuncio del fin de vida útil fue a finales de 1994; según la práctica estándar de Motorola para el fin de vida útil, los últimos pedidos se habrían realizado en 1995, con los últimos envíos en 1996.
- ↑ "Cierre de la fábrica de Freescale de 150 mm en Sendai: descontinuación general del producto" . 24 de noviembre de 2010. Archivado del original el 9 de marzo de 2014. Consultado el 9 de marzo de 2014 .
- 1 2 "Procesador multiprotocolo integrado" . NXP Semiconductor . Consultado el 25 de septiembre de 2025 .
- ↑ "MC68331|Microcontrolador de 32 bits (MCU)" . NXP Semiconductor . Consultado el 12 de octubre de 2025 .
- ↑ "MC68332|Microcontrolador de 32 bits (MCU)" . NXP Semiconductor . Consultado el 12 de octubre de 2025 .
- ↑ "Introducción de KLM como sitio de pruebas calificado para 68060" . NXP Semiconductor . Consultado el 25 de septiembre de 2025 .
- ↑ "Procesador multiprotocolo combina 68000 y RISC" . ESD: The Electronic System Design Magazine . 1 de noviembre de 1989 – vía AccessMyLibrary.
- ↑ Rood, Andrew L.; Cline, Robert C.; Brewster, Jon A. (septiembre de 1986). "UNIX y el MC68000" . Byte . pág. 179.
- ↑ El microcontrolador Atmel AVR: MEGA y XMEGA en lenguaje ensamblador y C. Han-Way Huang. 14 de enero de 2013. ISBN 978-1285500089Archivado del original el 10 de abril de 2022. Consultado el 18 de noviembre de 2021 .
- ↑ "museo ~ WICAT 150" . Old-computers.com. Archivado del original el 12 de octubre de 2012. Consultado el 27 de septiembre de 2013 .
- ↑ "Acorn User septiembre de 1984 – Unicorn: La ruta más barata a Unix" . Acorn User. Septiembre de 1984. Consultado el 6 de diciembre de 2024 .
- ↑ "Cumana 68008 2nd processor" . Chris Whytehead . Consultado el 6 de diciembre de 2024 .
- ↑ "La historia del brazo, parte 1: De las bellotas" . The Chip Letter. 5 de febrero de 2023. Consultado el 6 de diciembre de 2024 .
- ↑ Manual de servicio del osciloscopio digital de almacenamiento de doble canal Philips PM3320 de 250 MS/s, sección 8.6, código de pedido 4822 872 05315.
- ↑ Manual de servicio del osciloscopio digital LeCroy 9400/9400A, Sección 1.1.1.3 Microprocesador, agosto de 1990.
- ↑ "Archivo de Google Code: almacenamiento a largo plazo para el alojamiento de proyectos de Google Code" . code.google.com . Archivado del original el 14 de septiembre de 2022. Consultado el 15 de enero de 2016 .
- ↑ "openlase-mame/segaybd.c en master - jv4779/openlase-mame" . GitHub . Archivado del original el 9 de diciembre de 2021. Recuperado el 15 de enero de 2016 .
- ↑ "Archivo de Google Code: almacenamiento a largo plazo para el alojamiento de proyectos de Google Code" . code.google.com . Archivado del original el 14 de septiembre de 2022. Consultado el 15 de enero de 2016 .
- ↑ "historic-mess/cischeat.c en master - mamedev/historic-mess" . GitHub . Archivado del original el 25 de enero de 2022. Recuperado el 15 de enero de 2016 .
- ↑ Hunt, Stuart (6 de octubre de 2009). "Retroinspección: Sega Nomad". Retro Gamer . N.° 69. pág. 47.
- ↑ Ford, William; Topp, William R. (1997). Lenguaje ensamblador y programación de sistemas para la familia M68000 (Segunda edición). Jones and Bartlett Publishers . págs. 149–151 . ISBN 0-7637-0357-5Archivado del original el 29 de julio de 2022. Consultado el 29 de julio de 2022 .
- 1 2 M68000 Microprocesadores de 8/16/32 bits Manual del usuario Novena edición (PDF) . Motorola. 1993. pág. 6-2. Archivado (PDF) del original el 14 de abril de 2022. Recuperado el 28 de febrero de 2022 .
- ↑ "Tiempos de ejecución de instrucciones estándar" . oldwww.nvg.ntnu.no . Archivado del original el 9 de septiembre de 2016. Consultado el 4 de agosto de 2017 .
- ↑ Boys, Robert (6 de enero de 1996). "Preguntas frecuentes (FAQ) del M68k, comp.sys.m68k" . Archivado del original el 16 de julio de 2012. Recuperado el 3 de mayo de 2010 .
- ↑ Especificaciones de Soundscape Elite. de la hoja de fax archivada el 30 de enero de 2010 en Wayback Machine , Google Groups, 25 de abril de 1995.
Bibliografía
- "Panel de historia oral sobre el desarrollo y la promoción del Motorola 68000" (PDF) (Entrevista). Entrevistado por Dave House. 23 de julio de 2007.
Lecturas adicionales
- Hojas de datos y manuales
- Manual de usuario del microprocesador M68000 (Rev 8) ; Motorola (Freescale); 224 páginas; 1994.
- Manual del usuario de los microprocesadores M68000 (9.ª edición) ; NXP; 189 páginas; 1993.
- Anexo al manual de usuario del M68000 (Rev. 0) ; Motorola (Freescale); 26 páginas; 1997.
- Manual de referencia del programador de la familia M68000 ; Motorola (Freescale); 646 páginas; 1991; ISBN 978-0137232895.
- Libros
- 68000, 68010, 68020 Primer ; 1.ª ed.; Stan Kelly-Bootle y Bob Fowler; Howard Sams & Co; 370 páginas; 1985; ISBN 978-0672224058. (archivo)
- Programación en lenguaje ensamblador para el microcontrolador 68000/Incluye los microcontroladores 68010 y 68020 ; 2.ª ed.; Lance A. Leventhal, Doug Hawkins, Gerry Kane, William D. Cramer; Osborne/McGraw-Hill; 484 páginas; 1986; ISBN 978-0078812323.
- Dominando el microprocesador 68000 ; 1.ª ed.; Phillip Robinson; Tab Books; 244 páginas; 1985; ISBN 978-0830608867. (archivo)
- Guía de bolsillo de lenguaje ensamblador para la serie 68000 ; 1.ª ed.; Robert Erskine; Pitman Publishing; 70 páginas; 1984; ISBN 978-0273021520. (archivo)
- Programación en código máquina para procesadores 68000 (68000, 68008, 68010 y 68020); 1.ª ed.; David Barrow; Collins Professional and Technical Books; 234 páginas; 1985; ISBN 0-00-383163-9.
- Imágenes
- Esquemas del chip Motorola M68000
Enlaces externos
- Preguntas frecuentes sobre comp.sys.m68k
- Descripciones de las instrucciones de montaje
- 68.000 imágenes y descripciones en cpu-collection.de
- EASy68K , un ensamblador de código abierto para 68k en Windows.
- El recurso 68k y m88k – con información sobre las placas 68k basadas en VME de Motorola
- microprocesadores 68k
- Introducciones relacionadas con la informática en 1979
- Productos y servicios descontinuados en 1996.
- microprocesadores de 32 bits