Articulo de referencia

Motorola 6809

El Motorola 6809 (" sesenta y ocho cero nueve ") es un microprocesador de 8 bits con algunas características de 16 bits . Fue diseñado por Terry Ritter y Joel Boney de Motorola ...

El Motorola 6809 (" sesenta y ocho cero nueve ") es un microprocesador de 8 bits con algunas características de 16 bits . Fue diseñado por Terry Ritter y Joel Boney de Motorola y presentado en 1978. Aunque era compatible en código fuente con el Motorola 6800 anterior , el 6809 ofrecía mejoras significativas con respecto a este y a otros procesadores de 8 bits contemporáneos como el MOS Technology 6502 , incluyendo una instrucción de multiplicación por hardware, aritmética de 16 bits, registros de pila de sistema y de usuario que permitían 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 fue uno de los procesadores de 8 bits más potentes de su época. También fue uno de los más caros; en 1981, una sola unidad 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 ] Su lanzamiento coincidió con la llegada al mercado de una nueva generación de procesadores de 16 bits, como el Intel 8086 , y con la aparición de diseños de 32 bits, incluido el propio 68000 de Motorola . No era competitivo en características con los diseños más recientes ni en precio con los más antiguos.

Uso

El 6809 se utiliza en el TRS-80 Color Computer , Dragon 32/64 , SuperPET , ENER 1000 , Fujitsu FM-7 , el Cybernex LC3, [ 2 ] y los ordenadores domésticos Thomson MO/TO , la consola de juegos Vectrex y los videojuegos arcade de principios de la década de 1980, como Star Wars y Gyruss . Además, Williams Electronics utilizó el 6809 en juegos arcade como Defender , Robotron: 2084 y Joust . En la década de 1990, Williams introdujo la plataforma WPC (basada en el 68B09) para las máquinas de pinball que la compañía producía en ese momento. [ 3 ] 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. [ 4 ] Hitachi fue un importante usuario del 6809 y posteriormente produjo una versión actualizada como el Hitachi 6309 .

Historia

Matriz del 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 lógica NMOS temprana , que normalmente requería varios voltajes de fuente de alimentación diferentes. Una característica clave era un duplicador de voltaje en el chip que le permitía funcionar con un solo voltaje.Alimentación de +5  V , una gran ventaja sobre sus competidores como el 8080 que requería−5  V ,+5  V y+12  V . [ 5 ]

El 6800 se fabricó inicialmente utilizando el proceso de litografía por contacto vigente en aquel entonces . 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 probabilidad de que parte del material de grabado quedara adherido a la fotomáscara al retirarla, lo que provocaba fallos en los chips posteriores fabricados con dicha máscara. En diseños complejos con múltiples patrones, como una CPU, esto conllevaba que aproximadamente el 90 % de los chips fallaran durante las pruebas. Para obtener beneficios con el reducido número de chips que sí funcionaban, los precios de los modelos funcionales debían ser bastante elevados, del orden de cientos de dólares en pequeñas cantidades. [ 6 ]

Algunos diseñadores del 6800 estaban convencidos de que un sistema de menor costo sería clave para su amplia aceptación. Entre ellos destacaba Chuck Peddle , quien, en viajes de ventas, observó cómo los clientes potenciales rechazaban repetidamente el diseño por considerarlo demasiado caro para sus usos previstos. Peddle inició un proyecto para producir un diseño mucho menos costoso, pero la dirección de Motorola no mostró interés y finalmente le ordenó que dejara de trabajar en él. Peddle y otros miembros del equipo del 6800 abandonaron Motorola para unirse a MOS Technology e introdujeron este diseño en 1975 como el MOS Technology 6502. [ 7 ]

El 6800 se vendió inicialmente a $360 en cantidades de unidades individuales, [ 8 ] pero se redujo a $295 . El 6502 se introdujo a $25 , [ 9 ] y Motorola inmediatamente redujo el 6800 a $125. Siguió sin ser competitivo y las perspectivas de ventas se ensombrecieron. La introducción del Micralign en las líneas de Motorola permitió reducciones adicionales y para 1981 el precio del entonces vigente 6800P era ligeramente inferior al equivalente 6502, al menos en cantidades de unidades individuales. [ 1 ] Sin embargo, para ese momento, el 6502 había vendido decenas de millones de unidades y el 6800 había sido prácticamente olvidado.

6809

Mientras que el 6502 comenzaba a dominar el mercado del 6800, Intel se enfrentaba al mismo problema cuando el emergente Zilog Z80 empezó a robarle ventas al Intel 8080. Intel no consideró esto una gran amenaza, ya que el 8080 siempre había sido visto como una especie de "chapuza" y estaban fuertemente invertidos en un nuevo diseño de 32 bits, el Intel iAPX 432. Pero cuando el Z80 comenzó a afectar seriamente las ventas, y con el 432 aún lejos del futuro, Intel respondió introduciendo rápidamente una pequeña pero práctica actualización del 8080, el 8085 , que lo hizo más económico de usar y más competitivo con el Z80. También comenzaron a diseñar una serie de procesadores de 16 bits que ampliaron el 8085 —manteniendo su granularidad de registro original como un subconjunto— y también extendieron enormemente los modos de direccionamiento disponibles, para aliviar la presión de los registros, que surgieron como el Intel 8086 en 1978. [ 10 ]

Motorola también había comenzado el diseño de un sistema de gama alta, en el proyecto MACSS, un sistema mixto de 16/32 bits. [ 11 ] Inicialmente no consideraron un diseño mejorado de 8 bits como el 8085, pero al encuestar a sus clientes existentes del 6800, descubrieron que muchos no estaban dispuestos a pagar por un diseño de 16 bits para sus necesidades básicas. Esto llevó a la decisión de producir su propio diseño provisional de 8 bits, que ofrecía mejoras importantes pero seguía siendo compatible con versiones anteriores. [ 12 ] : 20, 26

El análisis del código del 6800 demostró que las operaciones de carga y almacenamiento representaban la gran mayoría del tiempo de uso de la CPU, constituyendo el 39% de todas las operaciones del código examinado. En contraste, las operaciones matemáticas eran relativamente escasas, representando solo el 2,8% del código. Sin embargo, un examen minucioso de las cargas y almacenamientos reveló que muchas de ellas se combinaban con sumas y restas, lo que indicaba que una cantidad significativa de estas operaciones matemáticas se realizaban con valores de 16 bits. Esto llevó a la decisión de incluir operaciones matemáticas básicas de 16 bits en el nuevo diseño: carga, almacenamiento, suma y resta. De manera similar, los incrementos y decrementos representaban solo el 6,1% del código, pero casi siempre ocurrían dentro de bucles donde cada uno se ejecutaba varias veces. Esto condujo a la adición de modos de postincremento y predecremento mediante los registros de índice , lo que eliminó la necesidad de la instrucción INC o DEC explícita, ahorrando memoria y el tiempo necesario para su lectura. [ 12 ] : 26

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

La idea de Motorola era eliminar esta tarea y hacer que el concepto de bloques de construcción fuera mucho más práctico. Los integradores de sistemas simplemente combinarían código estándar 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 su licencia, se combinarían con código personalizado y se grabarían en la ROM. [ 12 ] : 20, 24 [ b ]

En diseños de procesadores anteriores, incluido el 6800, existía una combinación de formas de referirse a las ubicaciones de memoria. Algunas eran relativas a la ubicación actual en la memoria o a un valor en un registro de índice, mientras que otras eran absolutas, 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 mueve con él. Las ubicaciones absolutas no; el código que utiliza este estilo de direccionamiento tendrá que recompilarse si se mueve. Para solucionar esto, el 6809 completó sus códigos de operación de instrucción de manera que hubiera más instancias de direccionamiento relativo donde fuera posible. [ 13 ] : 1.2

Como ejemplo, el 6800 incluye un modo de direccionamiento directo de 8 bits utilizado para hacer que el código sea más pequeño y rápido; en lugar de que una dirección de memoria tenga 16 bits y, por lo tanto, requiera dos bytes para especificarse, las variables de uso común podían ubicarse dentro de una ventana de 256 bytes (llamada "página directa" en el 6800 o " página cero " en el 6502 debido a su ubicación en la parte inferior de la memoria) y accederse con una dirección de 8 bits. La desventaja era la competencia por las valiosas direcciones de página directa. El 6809 agregó un nuevo registro DP de 8 bits, lo que permite que el direccionamiento directo de página se refiera a cualquier parte de la memoria siempre que el registro DP se cambie para apuntar a su nueva ubicación. [ 13 ] : 1.2

Una segunda categoría de datos eran los datos constantes almacenados en la ROM, como cadenas y tablas de búsqueda. Para resolver el problema de acceder fácilmente a dichos datos manteniendo la independencia de la posición, el 6809 añadió varios modos de direccionamiento nuevos. Entre ellos se encontraba el direccionamiento relativo al contador de programa, que permitía acceder a cualquier ubicación de memoria mediante su posición relativa a la instrucción. Mover este código a una nueva ubicación de memoria no afectaba a las direcciones. Además, se generalizó el uso de la pila , de modo que un programa en la ROM podía reservar un bloque de memoria en la RAM, establecer el SP como base del bloque y, a continuación, acceder a los datos que contenía mediante valores relativos. [ 13 ] : 2.1–2.4

Para facilitar este tipo de acceso, el 6809 renombró el SP a U (de "usuario") y añadió un segundo puntero de pila, S (de "sistema"). [ 13 ] : 1.3 La idea era que los programas de usuario utilizaran U, mientras que la propia CPU utilizaría S para almacenar datos durante las llamadas a subrutinas . Esto permitía llamar fácilmente al código del sistema modificando S sin afectar a ningún otro programa en ejecución. Por ejemplo, un programa que llamara a una rutina de punto flotante en la ROM colocaría sus datos en la pila U y luego llamaría a la rutina, que podría realizar los cálculos utilizando los datos de su propia pila privada apuntada por S, y luego regresar, dejando la pila U intacta. [ 13 ] : 1.3

Otra razón para el acceso ampliado a la pila fue admitir código reentrante , código que puede ser llamado desde varios programas diferentes simultáneamente sin preocuparse por la coordinación entre ellos, o que puede llamarse a sí mismo recursivamente. [ 12 ] : 30 Esto facilita mucho la construcción de sistemas operativos ; 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 pila que estaba utilizando. Esto también facilita mucho el servicio de interrupciones por la misma razón. [ 13 ] : 4 El 6809 agrega una interrupción de solicitud de interrupción rápida (FIRQ) que guarda solo el contador de programa y el registro de 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 al salir. [ 13 ] : 1.9

El 6809 incluía uno de los primeros multiplicadores de hardware dedicados. [ 12 ] : 36 Toma números de 8 bits en los acumuladores A y B y produce un resultado de 16 bits en A:B, conocido colectivamente como D. [ 13 ] : 1.1

Aceptación del mercado

Gran parte del diseño se basó en el concepto de mercado de código modular. Pero el mercado de módulos ROM preconfigurados 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 enlazadores y cargadores de reubicación automática , que es la solución que se usa hoy en día. [ 14 ] 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 9000 transistores en comparación con los 4100 del 6800 o los 3500 del 6502. Si bien las mejoras en el proceso permitieron fabricarlo a un menor costo que el 6800 original, esas mismas mejoras se estaban aplicando a los otros diseños, por lo que el costo relativo se mantuvo igual. Así fue en la práctica; en 1981, el 6809 se vendía en cantidades de unidades individuales a un precio aproximadamente seis veces superior al 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 casos, se pasaba por alto.

Otro factor en 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. Una idea del problema se puede apreciar en los resultados del lenguaje ensamblador Byte Sieve frente a otros diseños de la época (tomados de 1981 [ 15 ] y 1983 [ 16 ] ):

Aunque el 6809 sí ofreció una mejora de rendimiento con respecto a modelos como el 6502 [ c ] y el Z80, la mejora no estuvo a la altura del aumento de precio. Para aquellos para quienes el precio no era la principal preocupación, sino el rendimiento absoluto, los nuevos diseños lo superaron hasta en un orden de magnitud .

Incluso antes del lanzamiento del 6809, en 1976 Motorola había presentado su propio proyecto de CPU avanzada, conocido entonces como Proyecto de Sistema Informático Avanzado de Motorola sobre Silicio (MACSS). Aunque llegó demasiado tarde para ser seleccionado para el proyecto IBM PC , cuando MACSS apareció como el Motorola 68000 en 1979, acaparó el interés que aún existía 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 a color TRS-80

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

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 tarjeta basada en el procesador 6809 con una Commodore PET existente , incluyendo varios lenguajes de programación y editores de programas en ROM. El resultado fue posteriormente adoptado por Commodore, que lo comercializó como SuperPET o MicroMainframe en Europa. Estos sistemas fueron relativamente populares a mediados de la década de 1980, antes de que la aparición del mercado de clones de PC se convirtiera en la principal función de programación para la mayoría de los usuarios.

Otros usos populares de computadoras domésticas incluyen la Fujitsu FM-7 , la Canon CX-1, la 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 bus SS-50 que se habían construido alrededor de la 6800 también tenían opciones para la 6809 o la usaban exclusivamente. Ejemplos incluyen máquinas de SWTPC , Gimix , Smoke Signal Broadcasting , etc. Motorola también fabricó una serie de sistemas de desarrollo EXORmacs y EXORset.

Hitachi fabricó sus propias máquinas basadas en el 6809, la MB-6890 y, posteriormente, la S1. Estas se destinaron principalmente al mercado japonés, pero algunas se exportaron y vendieron en Australia , donde la MB-6890 fue apodada "Peach", probablemente en referencia al Apple II . La S1 destacó por incluir hardware de paginación que extendía el rango de direcciones nativo de 64 kilobytes del 6809 a 1 megabyte completo en páginas de 4 KB. En este aspecto, era similar a las máquinas producidas por SWTPC, Gimix y otros proveedores. TSC produjo un sistema operativo tipo Unix, uniFlex, que solo funcionaba en dichas máquinas. OS-9 Level II también aprovechó estas capacidades de gestión de memoria. La mayoría de las demás computadoras de la época con más de 64 KB de direccionamiento de memoria estaban limitadas a la conmutación de bancos, donde gran parte, si no la totalidad, de los 64 KB simplemente se intercambiaban por otra sección de memoria, aunque en el caso del 6809, Motorola ofreció su propio diseño de MMU MC6829 que mapeaba 2 megabytes en páginas de 2 KB. [ 19 ]

Consola de videojuegos doméstica Vectrex

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

La Serie II del Fairlight CMI (instrumento musical computarizado) utilizaba dos CPU 6809 con sistema operativo OS-9 , y también una CPU 6809 por tarjeta de voz. El 6809 se empleaba frecuentemente en sintetizadores musicales de otros fabricantes como Oberheim ( Xpander , Matrix 6/12/1000 ), PPG (Wave 2/2.2/2.3, Waveterm A) y Ensoniq ( muestreador Mirage , SDP-1, ESQ-1 , SQ-80 ). Estos últimos utilizaban el 6809E como su CPU principal. La versión (E) se empleaba para sincronizar el reloj del microprocesador con el chip de sonido (Ensoniq 5503 DOC) en dichas máquinas; en el ESQ-1 y el SQ-80 se utilizaba el 68B09E, que requería una lógica de arbitraje dedicada para garantizar una  sincronización de bus de 1 MHz al acceder al chip DOC.

A diferencia de los productos Motorola anteriores, el 6809 no tuvo un uso generalizado en el campo de los microcontroladores . Se utilizó en controladores de semáforos fabricados en la década de 1980 por varios fabricantes diferentes, [ 21 ] así como en los controladores centrales troncalizados SMARTNET y SMARTZONE de Motorola (conocidos como el "controlador 6809"). Estos controladores se utilizaron como procesadores centrales en muchos de los sistemas de radiocomunicaciones bidireccionales troncalizados de Motorola. [ 22 ]

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

Versiones

El Motorola 6809 se fabricó originalmente con velocidades de 1  MHz, 1,5  MHz (68A09) y 2  MHz (68B09). Hitachi produjo versiones más rápidas posteriormente. Con poco margen de mejora, el 6809 marca el final de la evolución de los procesadores de 8 bits de Motorola; Motorola tenía previsto que los futuros productos de 8 bits se basaran en una versión del 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 dejó de fabricar a finales de la segunda década del siglo XXI.

El Hitachi 6309 es una versión mejorada del 6809 con registros adicionales e instrucciones extra, incluyendo movimiento de bloques, 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 fabrican ya procesadores 6809 ni derivados. Los núcleos 6809 están disponibles en VHDL y pueden programarse en una FPGA para usarse como procesador embebido con velocidades de hasta 40  MHz. Algunos códigos de operación del 6809 también se utilizan en los procesadores embebidos de Freescale . En 2015, Freescale autorizó a Rochester Electronics a comenzar a fabricar el MC6809 nuevamente como reemplazo directo y copia del dispositivo NMOS original. Freescale proporcionó 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) estaba completamente certificado y disponible para producción.

El desarrollador australiano John Kent ha sintetizado la CPU Motorola 6809 en lenguaje de descripción de hardware (HDL). [ 23 ] 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. El CoCo3FPGA de Gary Becker ejecuta el núcleo Kent 6809 a 25  MHz. [ 24 ] El Matchbox CoCo de Roger Taylor funciona a 7,16  MHz. El CoCoDEV de Dave Philipsen funciona a 25  MHz. [ 25 ]

Descripción

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

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

Los sistemas de reloj de los procesadores 6800, 6502 y 6809 difieren de los 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 suele funcionar mucho más rápido; los diseños 680x generalmente funcionaban a 1 o 2  MHz, mientras que el Z80 lo hacía a 2 o 4 MHz. Internamente, los 680x dividían la frecuencia del reloj externo entre cuatro para generar el reloj del sistema; así, un  6809 de 1 MHz tendría un  cristal o señal de reloj de 4 MHz. Normalmente, en términos de instrucción por instrucción, funcionaban aproximadamente el doble de rápido, en comparación con los relojes externos de otros microprocesadores.

La ventaja del acceso al estilo 680x radicaba en que los chips de RAM dinámica de la época generalmente funcionaban a 2  MHz. Debido a la temporización del ciclo, existían periodos del reloj interno en los que el bus de memoria estaba libre. Esto permitía al diseñador del ordenador intercalar el acceso a la memoria entre la CPU y un dispositivo externo, como un controlador de acceso directo a memoria o, más comúnmente, un chip gráfico . Al hacer funcionar ambos chips a 1  MHz y configurarlos secuencialmente, podían compartir el acceso a la memoria sin complejidad ni circuitos adicionales. Dependiendo de la versión y la velocidad, en un 6800, 6502 o 6809, aproximadamente entre el 40 % y el 60 % de un ciclo de reloj está disponible para el acceso a la memoria.

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 añadió un segundo registro de índice, Y, un segundo puntero de pila, U (renombrando el original S), y permitió que los registros A y B se trataran como un único acumulador de 16 bits, D. También añadió otro registro de 8 bits, DP, para establecer la dirección base de la página directa. Estas adiciones eran invisibles para el código del 6800, y el 6809 era 100% compatible con el código fuente anterior. [ 13 ] : 1.1

Otra adición significativa fue el direccionamiento relativo al contador de 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 que los datos se referencien en relación con la instrucción, y mientras exista la ubicación de memoria resultante, las instrucciones se pueden mover libremente en la memoria. 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 diferentes modos de direccionamiento en otras instrucciones. Esto redujo el número 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 la instrucción separada anterior, por lo que estos cambios solo eran visibles para el programador que trabajaba en el nuevo código. [ 13 ] : 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 del bus de direcciones no documentada que llegó a ser apodada Halt and Catch Fire (HCF) . [ 26 ] [ 27 ]

Código de ejemplo

El siguiente código fuente en lenguaje ensamblador corresponde a una subrutina memcpyque copia un pequeño bloque de bytes de datos de una ubicación a otra. El bloque de datos se copia byte a byte. También es posible escribir una rutina para mover palabras de 16 bits. [ 28 ]

Notas

  1. A diferencia de otros diseños de CPU iniciales que intentaron 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 extenso se encuentra en el manual de programación del Motorola 6809, que contiene la lista completa de assist09 , un llamado monitor , un sistema operativo en miniatura destinado a ser grabado en la ROM. [ 13 ] : B.1
  3. Que para entonces también estaba ampliamente disponible en versiones de 2 MHz, como las que se usaban en los ordenadores Atari de 8 bits .

Referencias

  1. 1 2 3 Ancrona (1981) .
  2. "Terminal de vídeo con pantalla Cybernex XL" . Museo de Informática de la Universidad de York, Canadá .
  3. "Williams WPC - PinWiki" . pinwiki.com . Archivado del original el 30/07/2022 . Consultado el 30/07/2022 .
  4. "Hardware basado en Konami Dual 6809" . Sistema 16. Archivado del original el 8 de mayo de 2006. Consultado el 23 de abril de 2020 .
  5. "Microprocesador 8080A - encapsulado DIP 40" . CPU World . Archivado del original el 12 de enero de 2021. Consultado el 30 de enero de 2021 .
  6. "Hitos de la Ley de Moore" . IEEE . 30 de abril de 2015. Archivado del original el 24 de febrero de 2020. Consultado el 30 de enero de 2021 .
  7. Peddle, Chuck (12 de junio de 2014). «Historia oral de Chuck Peddle» (Entrevista). Entrevistado por Doug Fairbairn y Stephen Diamond. Archivado del original el 11 de diciembre de 2021.
  8. "El conjunto de microprocesadores Motorola es n-MOS de 1 MHz". Control Engineering . 21 (11): 11. 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 lanzamiento en el primer trimestre de 1975.
  9. "MOS 6502, el segundo de una familia de microprocesadores de bajo costo y alto rendimiento" . Computer . 8 (9). IEEE Computer Society: 38–39 . Septiembre de 1975. doi : 10.1109/CM.1975.219074 . Archivado del original el 24 de febrero de 2021. Consultado el 30 de enero de 2021 .
  10. Edwards, Benj (16 de junio de 2008). "El nacimiento de un estándar: el microprocesador Intel 8086" . PC World .
  11. "Motorola 68000" . The Vintage Technology Association . 17 de mayo de 2007. Archivado del original el 3 de agosto de 2020. Consultado el 2 de febrero de 2021 .
  12. 1 2 3 4 5 6 Ritter, Terry; Boney, Joel (enero de 1979). "El 6809, Parte 1: Filosofía de diseño" . BYTE . Vol. 4, n.º 1, págs. 14-42 .   
  13. 1 2 3 4 5 6 7 8 9 10 11 Manual de programación del microprocesador MC6809-MC6809E . Motorola. Mayo de 1983. Consultado el 13 de mayo de 2024 .
  14. Levine, John R. (2000) [octubre de 1999]. "Capítulo 1: Enlace y carga y Capítulo 3: Archivos objeto". Enlazadores y cargadores . La serie Morgan Kaufmann de ingeniería de software y programación (1.ª ed.). Morgan Kaufmann . ISBN  1-55860-496-0. Consultado el 22 de junio de 2021 .{{cite book}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  15. Gilbreath, Jim (septiembre de 1981). "Un punto de referencia para lenguajes de alto nivel" . Byte . págs. 180–198 . 
  16. Gilbreath, Jim; Gilbreath, Gary (enero de 1983). "Eratóstenes revisitado: una vez más a través del tamiz" . BYTE . Vol. 8, n.º 1, págs. 283-325 .   
  17. "Terminal AgVision Videotex" . Vintage Computer . 22 de diciembre de 2016. Archivado del original el 17 de abril de 2018. Consultado el 16 de abril de 2018 .
  18. G. Pitre, Boisy; Loguidice, Bill (2013). CoCo: La colorida historia del ordenador menospreciado de Tandy . Europa: CR Press. pág. 19. ISBN  9781466592483Archivado del original el 9 de febrero de 2023. Consultado el 16 de febrero de 2018 .
  19. "Manual de datos de microprocesadores Motorola de 1981" . 1981. Consultado el 2 de abril de 2018 .
  20. Nicola Salmoria y el equipo de MAME. "konami: Emulador portátil de CPU Konami" . Archivado del original el 4 de octubre de 2012. Consultado el 21 de octubre de 2012 .
  21. Robert J. Simpson; Raveendran Paramesran (1998). Microprocesador avanzado de 8 bits, MC6809: su software, hardware, arquitectura y técnicas de interfaz . Springer. ISBN 978-981-3083-09-7.
  22. "Motorola Type II SmartZone" . The RadioReference Wiki . Archivado del original el 6 de febrero de 2021. Consultado el 2 de febrero de 2021 .
  23. "Página web de John Kent" . Archivado del original el 10 de mayo de 2001. Consultado el 11 de junio de 2019 .
  24. "CoCo3FPGA - Davebiz Wiki" . Archivado del original el 15 de septiembre de 2020. Consultado el 11 de junio de 2019 .
  25. "CoCoDEV - Davebiz Wiki" . Archivado del original el 15 de septiembre de 2020. Consultado el 11 de junio de 2019 .
  26. David Banks. "Comportamientos no documentados 6809" . Archivado del original el 22 de enero de 2023. Consultado el 22 de enero de 2023 .
  27. John Bayko. "Grandes microprocesadores del presente y del pasado" . Consultado el 1 de julio de 2013 .{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  28. Cathey, Jim. "The 1802, Footnotes" . Consultado el 6 de marzo de 2026 .

Bibliografía

  • "Ancrona es mejor" (PDF) . Radio-Electrónica (Publicidad). Vol.  54, n.º  4. Abril de 1981. pág.  111.

Lecturas adicionales

Hojas de datos y manuales
  • Hoja de datos del MC6809 ; Motorola; 36 páginas; 1983.
  • Hoja de datos del MC6809E ; Motorola; 34 páginas.
  • Manual de datos de microprocesadores de 8 bits de Motorola ; Motorola; 1182 páginas; 1981.
Libros
  • 6809 Programación en lenguaje ensamblador ; 1.ª ed.; Lance Leventhal; 579 páginas; 1981; ISBN 0-931988-35-7. (archivo)
  • El libro de cocina MC6809 ; 1.ª ed.; Carl Warren; 180 páginas; 1980; ISBN 0-8306-9683-0. (archivo)
  • Microprocesador avanzado de 8 bits: MC6809: Software, hardware, arquitectura y técnicas de interfaz ; 1.ª ed.; Robert Simpson; 274 páginas; 1998; ISBN 978-9813083097
  • Programando el 6809 ; 1ª edición; Rodnay Zaks y William Labiak; 362 páginas; 1982; ISBN 978-0895880789
Revistas
  • Un microprocesador para la revolución: El 6809 ; Terry Ritter y Joel Boney (codiseñadores del 6809); revista BYTE; enero-febrero de 1979. (archivo) Archivado el 15 de febrero de 2010 en Wayback Machine.
  • Microprocesador MC6809 ; Ian Powers; Microprocesadores, Volumen 2, Número 3; Julio de 1978; página 162; ISSN 0308-5953 , doi : 10.1016/0308-5953(78)90010-7 . 
Fichas de referencia
  • Tarjeta de referencia MC6809 ; Motorola; 16 páginas; 1981. (archivo)
  • Ficha de referencia 6809/6309 ; Chris Lomont; 10 páginas; 2007. (archivo)
Simuladores / Emuladores
  • Página de emulación del 6809 : colección de instrucciones, emuladores, herramientas, depuradores, desensambladores y ensambladores para el 6809.
  • Emulador 6809 basado en el sistema SWTPC 6809.
Tableros
  • La computadora 6809 de 6 chips de Grant
  • Placa de entrenamiento para microprocesadores 6809
FPGA
  • Núcleo de CPU System09 6809 - Código fuente VHDL - OpenCores - Sitio web del proyecto