Motorola 6809

Ajustar Compartir Imprimir Citar
Microprocesador de 8 bits

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 e introducido en 1978. Aunque la fuente es compatible con el anterior Motorola 6800, el 6809 ofreció mejoras significativas sobre él y sus contemporáneos de 8 bits como el MOS Technology 6502, incluida una multiplicación de hardware. instrucción, aritmética de 16 bits, registros de pila del sistema y del usuario que permiten código reentrante, interrupciones mejoradas, código independiente de la posición y una arquitectura de conjunto de instrucciones ortogonales con un conjunto integral de modos de direccionamiento.

Entre los procesadores de 8 bits más potentes de su época, también era mucho más caro. En 1980, un 6809 en cantidades de una sola unidad costaba $37 en comparación con $9 para un Zilog Z80 y $6 por un 6502. 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 eran en el horizonte, incluido el propio 68000 de Motorola. No era competitivo en características con los diseños más nuevos ni en precio con los más antiguos.

El 6809 se usó en la computadora a color TRS-80, Dragon 32/64, SuperPET, ENER 1000 y las computadoras domésticas Thomson MO/TO, la consola de juegos Vectrex y máquinas recreativas de principios de la década de 1980, incluida Star Wars, Defensor, Robotron: 2084, Justa y Gyruss. Las máquinas de pinball Williams de la década de 1990 están equipadas con tarjetas controladoras de la serie WPC basadas en 68B09. La serie II de la estación de trabajo de audio digital Fairlight CMI y el juego de arcade Time Pilot '84 de Konami usan procesadores duales 6809. Hitachi fue uno de los principales usuarios del 6809 y luego produjo una versión actualizada como Hitachi 6309.

Historia

Muere de Motorola 6809

6800 y 6502

El Motorola 6800 se diseñó a partir de 1971 y se lanzó al mercado en 1974. En términos generales de diseño, tiene un gran parecido con otras CPU que se diseñaron desde el principio como diseños de 8 bits, como Intel 8080. 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 permitió funcionar con un solo suministro de +5 V, una gran ventaja sobre sus competidores como Intel 8080 que requería −5 V, +5 V, −12 V y tierra.

El 6800 se fabricó inicialmente utilizando el proceso de litografía de contacto vigente en ese momento. En este proceso, la fotomáscara se coloca en contacto directo con la oblea, se expone y luego se levanta. Existía una pequeña posibilidad de que parte del material de grabado quedara en la oblea cuando se levantaba, lo que provocaría la falla de futuros chips con el patrón de la máscara. Para diseños complejos de múltiples patrones como una CPU, esto llevó a que aproximadamente el 90% de los chips fallaran cuando se probaron. Para obtener ganancias con la pequeña cantidad de chips que funcionaban, los precios de los modelos de trabajo tenían que ser bastante altos, del orden de cientos de dólares en pequeñas cantidades. Como resultado, el 6800 tuvo una aceptación relativamente baja en el mercado después de su lanzamiento.

Varios de los diseñadores de 6800 estaban convencidos de que un sistema de menor costo sería clave para una aceptación generalizada. Notable entre ellos fue Chuck Peddle, quien fue enviado en viajes de ventas y vio que los posibles clientes rechazaban repetidamente el diseño por ser demasiado costoso para los usos previstos. Comenzó un proyecto para producir un diseño mucho menos costoso, pero la gerencia de Motorola demostró no estar interesada y finalmente le dijo que dejara de trabajar en él. Peddle y otros miembros del equipo 6800 dejaron Motorola por MOS Technology e introdujeron este diseño en 1975 como MOS Technology 6502. El 6800 se vendió inicialmente a $360 en cantidades de una sola unidad, pero se había reducido a $295 en este punto. El 6502 se vendió por $25.

Había tres razones para el bajo costo del 6502. Una fue que los diseñadores eliminaron cualquier característica que no fuera absolutamente necesaria. Esto condujo a la eliminación de uno de los dos acumuladores y al uso de registros de índice de 8 bits más pequeños, lo que resultó en menos cableado interno. Otro cambio fue el paso a la lógica NMOS de carga de agotamiento, una nueva técnica que solo requería +5 V. El 6800 solo tenía un único pin +5 V externo, pero internamente tenía múltiples voltajes que requerían rieles de alimentación separados para enrutarse alrededor del chip. Estos dos cambios permitieron que el 6502 fuera 16,6 mm2, al contrario al 6800's 29,0 mm2, lo que significa el doble de se podrían producir muchos chips a partir de una sola oblea. Finalmente, MOS estaba usando el nuevo sistema de litografía Micralign que mejoró el rendimiento promedio de alrededor del 10 % al 70 %.

Con la introducción del 6502, Motorola bajó inmediatamente el precio del 6800 a $125, pero siguió siendo poco competitivo y las perspectivas de ventas se debilitaron. La introducción de Micralign en las líneas de Motorola permitió mayores reducciones y en 1981 el precio del 6800P actual era ligeramente inferior al equivalente 6502, al menos en cantidades de una sola unidad. Sin embargo, en ese momento, el 6502 había vendido decenas de millones de unidades y el 6800 había sido olvidado en gran medida.

6809

Mientras que el 6502 comenzó a dominar el mercado del 6800, Intel estaba experimentando el mismo problema cuando el advenedizo Zilog Z80 comenzó a robarle las ventas al Intel 8080. Tanto Motorola como Intel comenzaron nuevos ciclos de diseño para superar esos diseños.. Este proceso llevó a Intel a comenzar el diseño de una serie de procesadores de 16 bits, que surgió como el Intel 8086 en 1978. Motorola también comenzó el diseño de un diseño de gama alta similar, en el proyecto MACSS. Cuando encuestaron a sus 6800 clientes existentes, descubrieron que muchos seguían interesados en los diseños de 8 bits y no estaban dispuestos a pagar por un diseño de 16 bits para sus necesidades simples. Esto llevó a la decisión de producir diseños de 8 bits muy mejorados pero compatibles que se convirtieron en el 6809.

El análisis del código 6800 demostró que las cargas y los almacenamientos eran la gran mayoría de todo el tiempo en términos de CPU, lo que representaba el 39 % de todas las operaciones en el código que examinaron. Por el contrario, las operaciones matemáticas eran relativamente raras, solo el 2,8% del código. Sin embargo, un examen cuidadoso de las cargas y los almacenamientos notó que muchos de estos se combinaban con sumas y restas, lo que reveló 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 condujo a la adición de modos de incremento posterior y disminución previa utilizando los registros de índice.

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 un solo propósito, que a menudo ejecutaban programas que eran muy similares a los de otras plataformas. El desarrollo de estos sistemas a menudo tomó la forma de recopilar una serie de subrutinas predefinidas y combinarlas. Sin embargo, como el lenguaje ensamblador generalmente se escribe a partir de una "dirección base", la combinación de módulos escritos previamente normalmente requería un largo proceso de cambio de constantes (o "equivalentes") que apuntaban a ubicaciones clave en el código.

La idea de Motorola fue eliminar esta tarea y hacer que el concepto de bloque de construcción sea mucho más práctico. Los integradores de sistemas simplemente combinarían código comercial en ROM para manejar tareas comunes. Las bibliotecas de rutinas comunes como la aritmética de coma flotante, las primitivas gráficas, la compresión Lempel-Ziv, etc., estarían disponibles para licenciarse, combinarse junto con código personalizado y grabarse en ROM.

En diseños de procesadores anteriores, incluido el 6800, había una combinación de formas de referirse a las ubicaciones de memoria. Algunos de estos eran relativos a la ubicación actual en la memoria oa 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 estilo anterior 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 usa este estilo de direccionamiento tendrá que volver a compilarse si se mueve. Para abordar esto, el 6809 completó sus códigos de operación de instrucciones para que hubiera más instancias de direccionamiento relativo donde fuera posible.

Como ejemplo, el 6800 incluía un "directo" modo de direccionamiento que se utilizó para hacer el código más pequeño y más rápido; en lugar de una dirección de memoria que tiene 16 bits y, por lo tanto, requiere dos bytes para almacenar, las direcciones directas tenían solo 8 bits. La desventaja era que solo podía referirse a la memoria dentro de una ventana de 256 bytes, la "página directa", que normalmente estaba en la parte inferior de la memoria; el 6502 se refirió a esto como "dirección de página cero". #34;. El 6809 agregó un nuevo registro DP de 8 bits, para "página directa". El código que anteriormente 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.

El uso de DP resolvió el problema de hacer referencia a direcciones dentro del código, pero los datos generalmente se ubican a cierta distancia del código, fuera de la ROM. Para resolver el problema de hacer referencia fácilmente a los datos sin depender de la posición, el 6809 agregó una variedad de nuevos modos de direccionamiento. Entre estos estaba 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 podría reservar un bloque de memoria en RAM, configurar el SP para que sea la base del bloque y luego referirse a los datos dentro de él usando valores relativos.

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'. La idea era que los programas de usuario usarían 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 a ningún otro programa en ejecución. Por ejemplo, un programa que llame 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 a la que apunta S, y luego regresaría, dejando la pila U intacta.

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 al mismo tiempo sin preocuparse por la coordinación entre ellos, o que se puede llamar a sí mismo de forma recursiva. 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 pila que estaba usando. Esto también hace que las interrupciones de servicio sean mucho más fáciles por la misma razón. Las interrupciones en el 6809 guardan 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 el 6800, ahora referido, guarda todos los registros, tomando ciclos adicionales, luego más para desenrollar la pila al salir.

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

Aceptación del mercado

Gran parte del diseño se basó en el concepto de mercado del código de bloques de construcción. Pero el mercado de los módulos ROM preenrollados nunca se materializó: el único ejemplo lanzado por Motorola fue el 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 en la actualidad. Sin embargo, las decisiones tomadas por el equipo de diseño permitieron sistemas operativos multiusuario y multitarea como OS-9 y UniFlex.

Las funciones 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 costo menor que el 6800 original, esas mismas mejoras se aplicaron a los otros diseños y, por lo tanto, el costo relativo se mantuvo igual. Tal fue el caso en la práctica; en 1981, el 6809 se vendió en cantidades de una sola unidad por aproximadamente seis veces el precio de un 6502. 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 las funciones, era pasado por alto.

Otro factor de su bajo uso fue la presencia de diseños más nuevos con un rendimiento significativamente mayor. Entre estos 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 (tomados de 1981 y 1983):

Comparación de Byte Sieve
ProcesadorSegundos
6502 1 MHz13.9
Z80 4 MHz6.8
6809 2 MHz5.1
8086 8 MHz1.9
68000 8 MHz0.49

Aunque el 6809 ofreció una mejora en el rendimiento con respecto a los modelos 6502 y Z80, la mejora no coincidió con el aumento del precio. Para aquellos en los que el precio no era la principal preocupación, pero sí el rendimiento absoluto, los nuevos diseños lo superaron 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 el Motorola 68000 en 1979, tomó cualquier interés restante en el 6809. Motorola pronto anunció que sus futuros sistemas de 8 bits estarían alimentados por versiones reducidas del 68000 en lugar de otras versiones mejoradas del 6809.

Usos principales

TRS-80 Color Computer

Su primer uso importante fue en la computadora a color TRS-80, que ocurrió en gran parte por accidente. Se le pidió a Motorola que diseñara una terminal de computadora con capacidad de color para un proyecto de ayuda agrícola en línea, un sistema conocido como "AgVision". Tandy (Radio Shack) se incorporó como socio minorista y los vendió con el nombre de "VideoTex", pero el proyecto finalmente se canceló poco después de su presentación en 1980. Luego, Tandy modificó el diseño para producir un computadora personal, que se convirtió en una de las victorias de diseño más notables del 6809.

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 incluía varios lenguajes de programación y programa. editores en ROM. El resultado fue luego recogido por Commodore, quien lo vendió como SuperPET, o MicroMainframe en Europa. Estos fueron relativamente populares a mediados de la década de 1980 antes de que la introducción del mercado de clones de PC asumiera el papel de programación para la mayoría de los usuarios.

Otros usos populares de 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 habían construido alrededor del 6800 también tenían opciones para el 6809 o se 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 se denominó '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. Era similar en esto a las máquinas producidas por SWTPC, Gimix y varios otros proveedores. TSC produjo un sistema operativo similar a Unix, uniFlex, que solo se ejecutaba en tales máquinas. OS-9 Nivel II, también aprovechó tales instalaciones 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 de los 64 KB, si no todos, simplemente se intercambiaban por otra sección de memoria, aunque en el caso del 6809, Motorola ofreció su propio MC6829 MMU mapeo de diseño de 2 megabytes en páginas de 2 KB.

Vectrex casa videojuego consola

El 6809 también se usó en varios sistemas de videojuegos. Notable entre estos, en la encarnación 68A09, fue la única máquina de videojuegos para el hogar Vectrex basada en gráficos vectoriales. También se usó 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 The Simpsons.

La Serie II de Fairlight CMI (instrumento musical computarizado) usaba CPU 6809 duales que ejecutaban OS-9 y también usaba una CPU 6809 por tarjeta de voz. El 6809 se empleó a menudo en sintetizadores musicales 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). Este último usó el 6809E como su 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 el ESQ-1 y el SQ-80 se usó el 68B09E, lo que requiere una lógica de árbitro dedicada para garantizar la sincronización del bus de 1 MHz al acceder al chip DOC.

A diferencia de los productos anteriores de Motorola, el 6809 no tuvo un uso generalizado en el campo de los microcontroladores. Se utilizó en los controladores de señales de tráfico fabricados en la década de 1980 por varios fabricantes diferentes, 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 comunicaciones de radio bidireccionales troncalizados de Motorola.

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

Versiones

El Motorola 6809 se fabricó originalmente con índices de velocidad de 1 MHz, 1,5 MHz (68A09) y 2 MHz (68B09). Hitachi produjo versiones más rápidas más tarde. 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ó hasta la segunda década del siglo XXI.

El Hitachi 6309 es una versión mejorada del 6809 con registros adicionales e instrucciones adicionales, incluido el movimiento de bloques, instrucciones adicionales de multiplicación 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 producen procesadores 6809 o derivados. Los núcleos 6809 están disponibles en VHDL y pueden programarse en un FPGA y usarse como un procesador integrado con índices de velocidad de hasta 40 MHz. Algunos códigos de operación 6809 también viven 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 directo y copia del dispositivo NMOS original. Freescale suministró a Rochester la base de datos de diseño físico GDSII original. A fines de 2016, el MC6809 de Rochester (incluidos el MC68A09 y el MC68B09) está completamente 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). 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. Matchbox CoCo de Roger Taylor funciona a 7,16 MHz. CoCoDEV de Dave Philipsen funciona a 25 MHz.

Descripción

Diseño general

El diseño interno del 6809 está más cerca de los 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 registro 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 usa un reloj de dos fases para activar los pestillos. Este ciclo de reloj de dos fases se usa 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 tiene un generador de reloj bifásico interno (necesita solo un cristal externo) mientras que el 6809E necesita un generador de reloj externo. Existen variantes como la 68A09(E) y la 68B09(E); la letra interna indica la velocidad de reloj nominal del procesador.

El 6800, 6502, el sistema de reloj del 6809 difiere de otros procesadores de la época. Por ejemplo, el Z80 usa un solo 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 convertían el reloj externo más lento en un horario interno de mayor frecuencia, por lo que, siguiendo instrucciones por instrucciones, corrió aproximadamente el doble de rápido al comparar los relojes externos.

La ventaja del acceso de estilo 680x era que los chips de RAM dinámicos de la época generalmente funcionaban a 2 MHz. Debido a la temporización del ciclo, hubo períodos del reloj interno en los que se garantizaba que el bus de memoria estaría libre. Esto permitió al diseñador de la computadora intercalar el acceso a la memoria entre la CPU y un dispositivo externo, por ejemplo, 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 o circuito adicional. Según la versión y el grado de velocidad, aproximadamente del 40 al 60 % de un solo 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, mostrando los registros del procesador

El 6800 original incluía dos acumuladores de 8 bits, A y B, un solo 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. El 6809 agregó un segundo registro de índice, Y, un segundo puntero de pila, U (mientras cambiaba el nombre del original S), y permitía que los registros A y B se trataran como un único acumulador de 16 bits, D. También agregó otro 8- 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 la fuente con el código anterior.

Otra adición importante fue el direccionamiento relativo al contador del 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 la instrucción separada anterior, por lo que estos cambios solo eran visibles para el programador que trabajaba en el nuevo código..

El conjunto de instrucciones y el complemento de registro son muy 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 se denominó Halt and Catch Fire (HCF).