stringtranslate.com

Motorola 6809

El Motorola 6809 (" sesenta y ocho cero nueve ") es un microprocesador de 8 bits con algunas funciones de 16 bits . Fue diseñado por Terry Ritter y Joel Boney de Motorola y presentado en 1978. Aunque era compatible con el anterior Motorola 6800 , el 6809 ofrecía mejoras significativas con respecto a él y a sus contemporáneos de 8 bits como el MOS Technology 6502 , incluida una instrucción de multiplicación de hardware. Registros de pila de usuario, sistema y aritmética de 16 bits que permiten código reentrante, interrupciones mejoradas , código independiente de la posición y una arquitectura de conjunto de instrucciones ortogonal con un conjunto completo de modos de direccionamiento.

El 6809 estaba entre los procesadores de 8 bits más potentes (y más caros) de su época. En 1981, un 6809 en cantidades individuales costaba 37 dólares, en comparación con los 9 dólares de un Zilog Z80 y los 6 dólares de un 6502. [1] Se lanzó cuando llegaba al mercado una nueva generación de procesadores de 16 bits, como el Intel 8086 , y Los diseños de 32 bits estaban en el horizonte, incluido el 68000 de Motorola . No era competitivo en características con los diseños más nuevos ni en precio competitivo con los más antiguos.

Uso

El 6809 se utiliza en las computadoras domésticas TRS-80 Color Computer , Dragon 32/64 , SuperPET , ENER 1000 , Fujitsu FM-7 , Cybernex LC3 y Thomson MO/TO, la consola de juegos Vectrex y videojuegos arcade de principios de los años 80. incluidos Star Wars , Defender , Robotron: 2084 , Joust y Gyruss . Las máquinas de pinball Williams de la década de 1990 están equipadas con placas controladoras de la serie WPC basadas en 68B09. [2] La Serie II de la estación de trabajo de audio digital Fairlight CMI y el juego arcade Time Pilot '84 de Konami utilizan procesadores duales 6809. [3] Hitachi fue un usuario importante del 6809 y posteriormente produjo una versión actualizada como Hitachi 6309 .

Historia

Muere de Motorola 6809

6800 y 6502

El Motorola 6800 fue diseñado a partir de 1971 y lanzado en 1974. En términos de diseño general, tiene un gran parecido con otras CPU que fueron diseñadas desde el principio como diseños de 8 bits, como el Intel 8080 . [a] Inicialmente se fabricó utilizando la lógica NMOS temprana , que normalmente requería varios voltajes de fuente de alimentación diferentes . Una característica clave fue un duplicador de voltaje en el chip que le permitía funcionar con un soloSuministro de +5 V , una gran ventaja sobre sus competidores como el Intel 8080 que requería−5V ,+5V ,−12 V y tierra . [4]

El 6800 se fabricó inicialmente utilizando el proceso de litografía de contacto actual . En este proceso, la fotomáscara se coloca en contacto directo con la oblea , se expone y luego se retira. Existía una pequeña posibilidad de que parte del material de grabado quedara en la oblea cuando se levantara, lo que provocaría que fallaran futuros chips modelados con la máscara. Para diseños complejos con múltiples patrones, como una CPU, esto provocó que aproximadamente el 90% de los chips fallaran cuando se probaron. Para obtener ganancias con el pequeño número de chips que funcionaban, los precios de los modelos funcionales tenían que ser bastante altos, del orden de cientos de dólares en pequeñas cantidades. [5]

Algunos de los diseñadores del 6800 estaban convencidos de que un sistema de menor costo sería clave para una aceptación generalizada. Entre ellos se destacó Chuck Peddle , quien fue enviado a viajes de ventas y vio cómo los clientes potenciales rechazaban repetidamente el diseño por ser demasiado caro para los usos previstos. Comenzó un proyecto para producir un diseño mucho menos costoso, pero la dirección de Motorola no mostró interés y finalmente le dijo que dejara de trabajar en él. Peddle y algunos otros miembros del equipo 6800 dejaron Motorola por MOS Technology e introdujeron este diseño en 1975 como MOS Technology 6502 . [6]

El 6800 se vendió inicialmente a 360 dólares en cantidades unitarias, [7] pero se rebajó a 295 dólares . El 6502 se introdujo a 25 dólares , [8] y Motorola inmediatamente redujo el 6800 a 125 dólares. Continuó sin ser competitivo y las perspectivas de ventas se debilitaron. La introducción del Micralign en las líneas de Motorola permitió mayores reducciones y en 1981 el precio del entonces actual 6800P era ligeramente inferior al equivalente 6502, al menos en cantidades unitarias. [1] En ese momento, sin embargo, el 6502 había vendido decenas de millones de unidades y el 6800 había sido en gran medida olvidado.

6809

Mientras que el 6502 comenzó a apoderarse del mercado del 6800, Intel estaba experimentando el mismo problema cuando el advenedizo Zilog Z80 comenzó a robarle ventas al Intel 8080 . Tanto Motorola como Intel iniciaron nuevos ciclos de diseño para superar esos diseños. Intel respondió rápidamente introduciendo una pequeña pero práctica actualización del 8080 como 8085 , lo que lo hizo menos costoso de usar y más competitivo con el Z80. También comenzaron a diseñar una serie de procesadores de 16 bits, que surgieron como Intel 8086 en 1978. Motorola también comenzó el diseño de un diseño similar de gama alta, en el proyecto MACSS, [9] pero inicialmente no consideró una versión mejorada. Diseño de 8 bits. Pero cuando encuestaron a sus 6.800 clientes existentes, descubrieron que muchos no estaban dispuestos a pagar por un diseño de 16 bits para sus necesidades simples. Esto llevó a la decisión de producir un diseño de 8 bits muy mejorado pero compatible que se convirtió en el 6809. [10] : 20, 26 

El análisis del código 6800 demostró que las cargas y los almacenes eran la gran mayoría del tiempo en términos de CPU, representando el 39% de todas las operaciones en el código que examinaron. Por el contrario, las operaciones matemáticas eran relativamente raras, sólo el 2,8% del código. Sin embargo, un examen cuidadoso de las cargas y almacenes observó que muchos de ellos se combinaban con sumas y restas, lo que revela que una cantidad significativa de esas operaciones matemáticas se realizaban en valores de 16 bits. Esto llevó a la decisión de incluir matemáticas básicas de 16 bits en el nuevo diseño: cargar, almacenar, sumar y restar. De manera similar, los incrementos y decrementos representaron solo el 6,1% del código, pero casi siempre ocurrieron dentro de bucles donde cada uno se realizó muchas veces. Esto llevó a la adición de modos post-incremental y pre-decrementante utilizando los registros de índice . [10] : 26 

El objetivo principal del nuevo diseño era admitir código independiente de la posición . El mercado de Motorola consistía principalmente en sistemas integrados y sistemas similares de propósito único, que a menudo ejecutaban programas muy similares a los de otras plataformas. El desarrollo de estos sistemas a menudo consistía en recopilar una serie de subrutinas predefinidas y combinarlas. Sin embargo, como el lenguaje ensamblador generalmente se escribe comenzando en una dirección base , la combinación de módulos preescritos normalmente requería un largo proceso de cambio de constantes (o equivalentes) que apuntaban a ubicaciones clave en el código. [10] : 20, 24 

La idea de Motorola era eliminar esta tarea y hacer que el concepto de bloque de construcción fuera mucho más práctico. Los integradores de sistemas simplemente combinarían código disponible en ROM para manejar tareas comunes. Bibliotecas de rutinas comunes como aritmética de punto flotante , primitivas gráficas, compresión Lempel-Ziv , etc., estarían disponibles para licenciarse, combinarse con código personalizado y grabarse en ROM. [10] : 20, 24  [b]

En diseños de procesadores anteriores, incluido el 6800, había una combinación de formas de referirse a las ubicaciones de la memoria. Algunos de ellos eran relativos a la ubicación actual en la memoria o a un valor en un registro de índice, mientras que otros eran absolutos, un valor de 16 bits que se refería a una ubicación física en la memoria. El primer estilo permite mover el código porque la dirección a la que hace referencia se moverá junto con el código. Las ubicaciones absolutas no; El código que utiliza este estilo de direccionamiento deberá volver a compilarse si se mueve. Para solucionar este problema, el 6809 completó sus códigos de operación de instrucciones para que hubiera más casos de direccionamiento relativo siempre que fuera posible. [11] : 1.2 

Como ejemplo, el 6800 incluye un modo de direccionamiento directo que se utiliza para hacer que el código sea más pequeño y más rápido; en lugar de que una dirección de memoria tenga 16 bits y, por lo tanto, requiera dos bytes para almacenarse, las direcciones directas tienen solo 8 bits de longitud. La desventaja es que sólo puede hacer referencia a la memoria dentro de una ventana de 256 bytes, la página directa , que normalmente se encuentra en la parte inferior de la memoria; el 6502 se refiere a esto como direccionamiento de página cero . El 6809 agregó un nuevo registro DP de 8 bits, para localización directa. El código que antes tenía que estar en la página cero ahora se puede mover a cualquier lugar de la memoria siempre que se cambie el DP para que apunte a su nueva ubicación. [11] : 1.2 

El uso de DP resolvió el problema de hacer referencia a direcciones dentro del código, pero los datos generalmente se encuentran a cierta distancia del código, fuera de la ROM. Para resolver el problema de consultar fácilmente los datos sin dejar de ser independiente de la posición, el 6809 agregó una variedad de nuevos modos de direccionamiento. Entre ellos se encontraba el direccionamiento relativo al contador del programa, que permitía hacer referencia a cualquier ubicación de memoria por su ubicación relativa a la instrucción. Además, la pila se usó más ampliamente, de modo que un programa en ROM podía reservar un bloque de memoria en RAM, configurar el SP como base del bloque y luego hacer referencia a los datos dentro de él usando valores relativos. [11] : 2,1–2,4 

Para facilitar este tipo de acceso, el 6809 cambió el nombre del SP a U para "usuario" y agregó un segundo puntero de pila, S, para "sistema". [11] : 1.3  La idea era que los programas de usuario usaran U mientras que la propia CPU usaría S para almacenar datos durante las llamadas a subrutinas . Esto permitió llamar fácilmente al código del sistema cambiando S sin afectar ningún otro programa en ejecución. Por ejemplo, un programa que llama a una rutina de punto flotante en ROM colocaría sus datos en la pila U y luego llamaría a la rutina, que luego podría realizar los cálculos usando datos en su propia pila privada señalada por S, y luego regresaría, dejando la pila U intacta. [11] : 1.3 

Otra razón para el acceso ampliado a la pila fue admitir código reentrante , código que se puede llamar desde varios programas diferentes simultáneamente sin preocuparse por la coordinación entre ellos, o que puede llamarse a sí mismo de forma recursiva. [10] : 30  Esto hace que la construcción de sistemas operativos sea mucho más fácil; el sistema operativo tenía su propia pila y el procesador podía cambiar rápidamente entre una aplicación de usuario y el sistema operativo simplemente cambiando el puntero de la pila que estaba usando. Esto también hace que las interrupciones del servicio sean mucho más fáciles por la misma razón. [11] : 4  El 6809 agrega una interrupción de solicitud de interrupción rápida (FIRQ) que guarda solo el contador del programa y el registro del código de condición antes de llamar al código de interrupción, mientras que la interrupción IRQ guarda todos los registros, tomando ciclos adicionales y luego más para desenrollar la pila. a la salida. [11] : 1,9 

El 6809 incluye uno de los primeros multiplicadores de hardware dedicados. [10] : 36  Toma números de 8 bits en los acumuladores A y B y produce un resultado en A:B, conocido colectivamente como D. [11] : 1.1 

Aceptación del mercado

Gran parte del diseño se basó en el concepto de mercado de código de bloques de construcción. Pero el mercado de módulos ROM preenrollados nunca se materializó: el único ejemplo lanzado por Motorola fue la ROM de punto flotante MC6839. La industria en su conjunto resolvió el problema de integrar módulos de código de fuentes separadas mediante el uso de cargadores y enlazadores de reubicación automática , que es la solución que se utiliza hoy en día. [12] Sin embargo, las decisiones tomadas por el equipo de diseño permitieron sistemas operativos multiusuario y multitarea como OS-9 y UniFlex .

Las características adicionales del 6809 eran costosas; la CPU tenía aproximadamente 9.000 transistores en comparación con los 4.100 del 6800 o los 3.500 del 6502. Si bien las mejoras en el proceso significaron que se podía fabricar más barato que el 6800 original, esas mismas mejoras se estaban aplicando a los otros diseños y, por lo tanto, el costo relativo seguía siendo el mismo. Así ocurre en la práctica; en 1981, el 6809 se vendía en cantidades individuales por aproximadamente seis veces el precio de un 6502. [1] Para aquellos sistemas que necesitaban algunas de sus características especiales, como el multiplicador de hardware, el sistema podía justificar su precio, pero en la mayoría de los roles , fue pasado por alto.

Otro factor de su bajo uso fue la presencia de diseños más nuevos con un rendimiento significativamente mayor. Entre ellos se encontraba el Intel 8086 , lanzado el mismo año, y su versión de menor costo, el Intel 8088 de 1979. Se puede ver una idea del problema en los resultados del lenguaje ensamblador Byte Sieve frente a otros diseños comunes de la época (tomado de 1981 [13] y 1983 [14] ):

Aunque el 6809 ofreció una mejora de rendimiento con respecto al 6502 [c] y el Z80, la mejora no estuvo en línea con el aumento de precio. Para aquellos donde el precio no era la principal preocupación, pero sí el rendimiento, los nuevos diseños lo superaron hasta en un orden de magnitud .

Incluso antes de que se lanzara el 6809, en 1976 Motorola había lanzado su propio proyecto de CPU avanzada, entonces conocido como proyecto Motorola Advanced Computer System on Silicon, o MACSS. Aunque era demasiado tarde para ser elegido para el proyecto de PC de IBM , cuando MACSS apareció como Motorola 68000 en 1979, desapareció el interés restante en el 6809. Motorola pronto anunció que sus futuros sistemas de 8 bits funcionarían con versiones reducidas del 68000 en lugar de versiones mejoradas del 6809.

Usos principales

Computadora en color TRS-80

Su primer uso importante fue en la computadora en color TRS-80 , lo que ocurrió en gran parte por accidente. A Motorola se le había pedido que diseñara un terminal informático con capacidad de color para un proyecto de ayuda agrícola en línea, un sistema conocido como "AgVision". Tandy ( Radio Shack ) fue contratado como socio minorista y los vendió bajo el nombre de "VideoTex", pero el proyecto finalmente se canceló poco después de su introducción en 1980. [15] Tandy luego volvió a trabajar en el diseño para producir una computadora doméstica , que se convirtió en una de las victorias de diseño más notables del 6809. [16]

SuperPET SP9000

En busca de una plataforma de programación de bajo costo para estudiantes de informática , la Universidad de Waterloo desarrolló un sistema que combinaba una computadora en una tarjeta basada en 6809 con un Commodore PET existente , que incluye varios lenguajes de programación y editores de programas en ROM. . El resultado fue recogido más tarde por Commodore, quien lo vendió como SuperPET o MicroMainframe en Europa. Estos eran relativamente populares a mediados de la década de 1980, antes de que la introducción del mercado de clones de PC asumiera la función de programación para la mayoría de los usuarios.

Otros usos populares de las computadoras domésticas incluyen Fujitsu FM-7 , Canon CX-1, Dragon 32/64 y la serie Thomson TO7 . También estaba disponible como opción en las computadoras Acorn System 2 , 3 y 4. La mayoría de los diseños de autobuses SS-50 que se construyeron alrededor del 6800 también tenían opciones para el 6809 o cambiaron a él exclusivamente. Los ejemplos incluyen máquinas de SWTPC , Gimix , Smoke Signal Broadcasting , etc. Motorola también construye una serie de sistemas de desarrollo EXORmacs y EXORset.

Hitachi produjo sus propias máquinas basadas en 6809, la MB-6890 y más tarde la S1. Estos eran principalmente para el mercado japonés, pero algunos se exportaron y vendieron en Australia , donde el MB-6890 fue apodado "Peach", probablemente en referencia al Apple II . El S1 se destacó porque contenía hardware de paginación que extendía el rango de direccionamiento nativo de 64 kilobytes del 6809 a 1 megabyte completo en páginas de 4 KB. En esto era similar a las máquinas producidas por SWTPC, Gimix y varios otros proveedores. TSC produjo un sistema operativo tipo Unix, uniFlex , que se ejecutaba sólo en este tipo de máquinas. OS-9 Nivel II también aprovechó dichas funciones de gestión de memoria. La mayoría de las otras computadoras de la época con más de 64 KB de direccionamiento de memoria se limitaban al cambio de banco , donde gran parte, si no la totalidad, de los 64 KB simplemente se cambiaban por otra sección de memoria, aunque en el caso del 6809, Motorola ofreció su propia MMU MC6829. Diseño de mapeo de 2 megas en páginas de 2 KB. [17]

Consola de videojuegos doméstica Vectrex

El 6809 también se utilizó en varios sistemas de videojuegos . Entre ellos se destaca, en la encarnación 68A09, la exclusiva máquina de videojuegos domésticos Vectrex basada en gráficos vectoriales . También se utilizó en el sistema Milton Bradley Expansion (MBX) (una consola arcade para la computadora doméstica TI-99/4A ) y en una serie de juegos arcade lanzados entre principios y mediados de la década de 1980. Williams Electronics fue un usuario prolífico del procesador, que se implementó en Defender , Stargate , Joust , Robotron: 2084 , Sinistar y otros juegos. La CPU 6809 forma el núcleo del exitoso controlador Williams Pinball . El KONAMI-1 es un 6809 modificado utilizado por Konami en Roc'n Rope , Gyruss y Los Simpson . [18]

La Serie II del Fairlight CMI (instrumento musical de computadora) usaba CPU 6809 duales con OS-9 y también usaba una CPU 6809 por tarjeta de voz. El 6809 se empleaba a menudo en sintetizadores de música de otros fabricantes como Oberheim ( Xpander , Matrix 6/12/1000 ), PPG (Wave 2/2.2/2.3, Waveterm A) y Ensoniq ( Mirage sampler, SDP-1, ESQ- 1 , SQ-80 ). Estos últimos utilizaron el 6809E como CPU principal. La versión (E) se utilizó para sincronizar el reloj del microprocesador con el chip de sonido (Ensoniq 5503 DOC) en esas máquinas; en ESQ-1 y SQ-80 se utilizó el 68B09E, que requiere una lógica de árbitro dedicada para garantizar una sincronización del bus de 1 MHz al acceder al chip DOC.

A diferencia de productos anteriores de Motorola, el 6809 no tuvo un uso generalizado en el campo de los microcontroladores . Se utilizó en controladores de señales de tráfico fabricados en la década de 1980 por varios fabricantes diferentes, [19] así como en los controladores centrales troncales SMARTNET y SMARTZONE de Motorola (llamados así "controlador 6809"). Estos controladores se utilizaron como procesadores centrales en muchos de los sistemas de comunicaciones por radio bidireccionales troncales de Motorola. [20]

Mitel utilizó el 6809 como procesador principal en su sistema telefónico de oficina SX20.

Versiones

El Motorola 6809 se produjo originalmente en velocidades de 1 MHz, 1,5 MHz (68A09) y 2 MHz (68B09). Posteriormente, Hitachi produjo versiones más rápidas. Con poco que mejorar, el 6809 marca el final de la evolución de los procesadores de 8 bits de Motorola; Motorola tenía la intención de que los futuros productos de 8 bits se basaran en una versión de bus de datos de 8 bits del 68000 (el 68008 ). Una versión de microcontrolador con un conjunto de instrucciones ligeramente modificado, el 6811 , se suspendió en la segunda década del siglo XXI.

El Hitachi 6309 es una versión mejorada del 6809 con registros adicionales e instrucciones adicionales, que incluyen movimiento de bloque, instrucciones de multiplicación adicionales y división.

Legado

Motorola escindió su división de microprocesadores en 2004. La división cambió su nombre a Freescale y posteriormente fue adquirida por NXP .

Ni Motorola ni Hitachi ya producen procesadores 6809 ni derivados. Los núcleos 6809 están disponibles en VHDL y se pueden programar en un FPGA y utilizar como procesador integrado con índices de velocidad de hasta 40 MHz. [ cita necesaria ] Algunos códigos de operación 6809 también se encuentran en los procesadores integrados de Freescale . En 2015, Freescale autorizó a Rochester Electronics a comenzar a fabricar el MC6809 una vez más como reemplazo y copia del dispositivo NMOS original. Freescale suministró a Rochester la base de datos de diseño físico GDSII original . A finales de 2016, el MC6809 de Rochester (incluidos el MC68A09 y el MC68B09) está totalmente calificado y disponible en producción.

El desarrollador australiano John Kent ha sintetizado la CPU Motorola 6809 en lenguaje de descripción de hardware (HDL). [21] Esto ha hecho posible el uso del núcleo 6809 a velocidades de reloj mucho más altas que las disponibles con el 6809 original. CoCo3FPGA de Gary Becker ejecuta el núcleo Kent 6809 a 25 MHz. [22] Matchbox CoCo de Roger Taylor funciona a 7,16 MHz. CoCoDEV de Dave Philipsen funciona a 25 MHz. [23]

Descripción

El diseño interno del 6809 se acerca más a diseños de CPU más simples y sin microcodificación . Como la mayoría de los microprocesadores de 8 bits, la implementación del 6809 es una máquina de nivel de transferencia de registros , que utiliza un PLA central para implementar gran parte de la decodificación de instrucciones, así como partes de la secuenciación.

Al igual que el 6800 y el 6502, el 6809 utiliza un reloj de dos fases para cerrar los pestillos. Este ciclo de reloj de dos fases se utiliza como un ciclo de máquina completo en estos procesadores. Las instrucciones simples se pueden ejecutar en tan solo dos o tres de estos ciclos. El 6809 tiene un generador de reloj interno de dos fases (sólo necesita un cristal externo), mientras que el 6809E necesita un generador de reloj externo. Existen variantes como la 68A09(E) y 68B09(E); la letra interna indica la velocidad de reloj nominal del procesador.

El sistema de reloj del 6800, 6502 y 6809 se diferencia de otros procesadores de la época. Por ejemplo, el Z80 utiliza un único reloj externo y los pasos internos del proceso de instrucción continúan en cada transición. Esto significa que el reloj externo generalmente funciona mucho más rápido; Los diseños 680x generalmente funcionaban a 1 o 2 MHz, mientras que el Z80 generalmente funcionaba a 2 o 4. Internamente, los 680x dividían la frecuencia del reloj externo por cuatro para crear el reloj del sistema; por lo que un 6809 de 1 MHz tendría una señal de reloj o cristal de 4 MHz. Por lo general, instrucción por instrucción, corrían aproximadamente el doble de rápido, al comparar los relojes externos con otros microprocesadores.

La ventaja del acceso al estilo 680x era que los chips de RAM dinámica de la época generalmente funcionaban a 2 MHz. Debido a la sincronización del ciclo, hubo períodos del reloj interno en los que se garantizaba que el bus de memoria estaba libre. Esto permitió al diseñador de computadoras intercalar el acceso a la memoria entre la CPU y un dispositivo externo, digamos un controlador de acceso directo a la memoria o, más comúnmente, un chip gráfico . Al ejecutar ambos chips a 1 MHz y pasarlos uno tras otro, podrían compartir el acceso a la memoria sin ninguna complejidad ni circuitos adicionales. Según la versión y el grado de velocidad, aproximadamente entre el 40 % y el 60 % de un único ciclo de reloj suele estar disponible para el acceso a la memoria en un 6800, 6502 o 6809.

Registros e instrucciones

Modelo de programación 6809, que muestra los registros del procesador.

El 6800 original incluía dos acumuladores de 8 bits , A y B, un único registro de índice de 16 bits , X, un contador de programa de 16 bits , PC, un puntero de pila de 16 bits , SP y un registro de estado de 8 bits . El 6809 agregó un segundo registro de índice, Y, un segundo puntero de pila, U (mientras cambiaba el nombre del S original), y permitió que los registros A y B fueran tratados como un único acumulador de 16 bits, D. También agregó otro registro de 8 bits. registro de bits, DP, para establecer la dirección base de la página directa. Estas adiciones eran invisibles para el código 6800, y el 6809 era 100% compatible con el código anterior. [11] : 1.1 

Otra adición importante fue el direccionamiento relativo al programa para todas las instrucciones de manipulación de datos. Esta fue una adición clave para el código independiente de la posición , ya que permite hacer referencia a los datos en relación con la instrucción, y siempre que exista la ubicación de memoria resultante, las instrucciones se pueden mover en la memoria libremente. El sistema también conservó sus modos de direccionamiento anteriores, aunque en el nuevo lenguaje ensamblador , lo que antes eran instrucciones separadas ahora se consideraban modos de direccionamiento diferentes en otras instrucciones. Esto redujo la cantidad de instrucciones de las 78 instrucciones del 6800 a las 59 del 6809. Estos nuevos modos tenían los mismos códigos de operación que las instrucciones previamente separadas, por lo que estos cambios solo eran visibles para el programador que trabajaba en el nuevo código. [11] : 1.2 

El conjunto de instrucciones y el complemento de registros son altamente ortogonales , lo que hace que el 6809 sea más fácil de programar que sus contemporáneos. Al igual que el 6800, el 6809 incluye una instrucción de prueba de bus de direcciones no documentada que recibió el sobrenombre de Halt and Catch Fire (HCF) . [24] [25]

Notas

  1. ^ A diferencia de otros diseños iniciales de CPU que intentaban emular conjuntos de instrucciones de minicomputadoras y eran mucho más complejos.
  2. ^ Otros ejemplos son la aritmética matricial, la codificación/decodificación de Huffman, las funciones estadísticas, la búsqueda de cadenas (por ejemplo, mediante el algoritmo de Boyer-Moore ) y la gestión de estructuras de árbol. Un ejemplo más amplio se encuentra en el manual de programación 6809 de Motorola, que contiene la lista completa de Assist09 , un llamado monitor , un sistema operativo en miniatura destinado a grabarse en ROM. [11] : B.1 
  3. ^ Que en ese momento también estaba ampliamente disponible en versiones de 2 MHz, como se usa en las computadoras Atari de 8 bits .

Referencias

  1. ^ abc Ancrona (1981).
  2. ^ "Williams WPC-PinWiki". pinwiki.com . Archivado desde el original el 30 de julio de 2022 . Consultado el 30 de julio de 2022 .
  3. ^ "Hardware basado en Konami Dual 6809". Sistema 16 . Archivado desde el original el 8 de mayo de 2006 . Consultado el 23 de abril de 2020 .
  4. ^ "Microprocesador 8080A - paquete DIP 40". Mundo de la CPU . Archivado desde el original el 12 de enero de 2021 . Consultado el 30 de enero de 2021 .
  5. ^ "Hitos de la ley de Moore". IEEE . 30 de abril de 2015. Archivado desde el original el 24 de febrero de 2020 . Consultado el 30 de enero de 2021 .
  6. ^ Vender, Chuck (12 de junio de 2014). "Historia oral de Chuck Peddle" (Entrevista). Entrevistado por Doug Fairbairn y Stephen Diamond. Archivado desde el original el 11 de diciembre de 2021.
  7. ^ "El conjunto de microprocesadores de Motorola es n-MOS de 1 MHz". Ingeniería de Control . 21 (11): 11 de noviembre de 1974.El precio del microprocesador MC6800 era de 360 ​​dólares. El adaptador de interfaz de comunicaciones asíncronas (ACIA) MC6850 estaba previsto para su introducción en el primer trimestre de 1975.
  8. ^ "MOS 6502, el segundo de una familia de microprocesadores de alto rendimiento y bajo costo". Computadora . 8 (9). Sociedad de Computación IEEE: 38–39. Septiembre de 1975. doi :10.1109/CM.1975.219074. Archivado desde el original el 24 de febrero de 2021 . Consultado el 30 de enero de 2021 .
  9. ^ "Motorola 68000". La Asociación de Tecnología Vintage . 17 de mayo de 2007. Archivado desde el original el 3 de agosto de 2020 . Consultado el 2 de febrero de 2021 .
  10. ^ abcdef Ritter, Terry; Boney, Joel (enero de 1979). "El 6809, Parte 1: Filosofía del diseño". BYTE . vol. 4, núm. 1. págs. 14–42.
  11. ^ abcdefghijk Manual de programación del microprocesador MC6809-MC6809E. Motorola. Mayo de 1983 . Consultado el 13 de mayo de 2024 .
  12. ^ Levine, John R. (2000) [octubre de 1999]. "Capítulo 1: Vinculación y carga y Capítulo 3: Archivos objeto". Enlazadores y cargadores. La serie Morgan Kaufmann sobre programación e ingeniería de software (1 ed.). Morgan Kaufman . ISBN 1-55860-496-0. Archivado desde el original el 5 de diciembre de 2012 . Consultado el 22 de junio de 2021 .
  13. ^ Gilbreath, Jim (septiembre de 1981). "Un punto de referencia del lenguaje de alto nivel". Byte . págs. 180-198.
  14. ^ Gilbreath, Jim; Gilbreath, Gary (enero de 1983). "Eratóstenes revisitado: una vez más a través del tamiz". BYTE . vol. 8, núm. 1. págs. 283–325.
  15. ^ "Terminal AgVision Videotex". Computadora antigua . 2016-12-22. Archivado desde el original el 17 de abril de 2018 . Consultado el 16 de abril de 2018 .
  16. ^ G. Pitre, Boisy; Loguidice, Bill (2013). CoCo: La colorida historia de la computadora desvalida de Tandy. Europa: Prensa CR. pag. 19.ISBN 9781466592483. Archivado desde el original el 9 de febrero de 2023 . Consultado el 16 de febrero de 2018 .
  17. ^ "Manual de datos de microprocesadores Motorola de 1981". 1981 . Consultado el 2 de abril de 2018 .
  18. ^ Nicola Salmoria y el equipo MAME. "konami: emulador de CPU portátil de Konami". Archivado desde el original el 4 de octubre de 2012 . Consultado el 21 de octubre de 2012 .
  19. ^ Robert J. Simpson; Raveendran Paramesran (1998). Microprocesador avanzado de 8 bits, MC6809: software, hardware, arquitectura y técnicas de interfaz. Saltador. ISBN 978-981-3083-09-7.
  20. ^ "Motorola Tipo II SmartZone". La Wiki de RadioReference . Archivado desde el original el 6 de febrero de 2021 . Consultado el 2 de febrero de 2021 .
  21. ^ "Página web de inicio de John Kent". Archivado desde el original el 10 de mayo de 2001 . Consultado el 11 de junio de 2019 .
  22. ^ "CoCo3FPGA - Davebiz Wiki". Archivado desde el original el 15 de septiembre de 2020 . Consultado el 11 de junio de 2019 .
  23. ^ "CoCoDEV - Davebiz Wiki". Archivado desde el original el 15 de septiembre de 2020 . Consultado el 11 de junio de 2019 .
  24. ^ David bancos. "Comportamientos 6809 indocumentados". Archivado desde el original el 22 de enero de 2023 . Consultado el 22 de enero de 2023 .
  25. ^ John Bayko. "Grandes Microprocesadores del Presente y del Pasado". Archivado desde el original el 1 de julio de 2013 . Consultado el 1 de julio de 2013 .

Bibliografía

Lectura adicional

Hojas de datos y manuales
Libros
Revistas
Tarjetas de referencia

Enlaces externos

Simuladores / Emuladores
tableros
FPGA