Article de reference

Motorola 6809

Le Motorola 6809 (« soixante-huit-oh-neuf ») est un microprocesseur 8 bits avec quelques fonctionnalités 16 bits . Il a été conçu par Terry Ritter et Joel Boney de Motorola et i...

Le Motorola 6809soixante-huit-oh-neuf ») est un microprocesseur 8 bits avec quelques fonctionnalités 16 bits . Il a été conçu par Terry Ritter et Joel Boney de Motorola et introduit en 1978. Bien que compatible avec le Motorola 6800 précédent , le 6809 offrait des améliorations significatives par rapport à celui-ci et à ses contemporains 8 bits comme le MOS Technology 6502 , notamment une instruction de multiplication matérielle, une arithmétique 16 bits, des registres de pile système et utilisateur permettant un code réentrant, des interruptions améliorées , un code indépendant de la position et une architecture de jeu d'instructions orthogonales avec un ensemble complet de modes d'adressage.

Le 6809 était l'un des processeurs 8 bits les plus puissants (et les plus chers) de son époque. En 1981, un 6809 en quantité unitaire coûtait 37 $ contre 9 $ pour un Zilog Z80 et 6 $ pour un 6502. Il a été lancé alors qu'une nouvelle génération de processeurs 16 bits arrivait sur le marché, comme l' Intel 8086 , et que des conceptions 32 bits se profilaient à l'horizon, notamment le 68000 de Motorola . Il n'était pas compétitif en termes de fonctionnalités par rapport aux conceptions plus récentes et n'était pas compétitif en termes de prix par rapport aux plus anciennes.

Usage

Le 6809 est utilisé dans l' ordinateur couleur TRS-80 , Dragon 32/64 , SuperPET , ENER 1000 , Fujitsu FM-7 , le Cybernex LC3, et les ordinateurs personnels Thomson MO/TO , la console de jeu Vectrex et les jeux vidéo d'arcade du début des années 1980, notamment Star Wars , Defender , Robotron: 2084 , Joust et Gyruss . Les flippers Williams des années 1990 sont équipés de cartes contrôleur de la série WPC basées sur le 68B09. La série II de la station de travail audio numérique Fairlight CMI et le jeu d'arcade Time Pilot '84 de Konami utilisent chacun deux processeurs 6809. Hitachi était un utilisateur majeur du 6809 et a produit plus tard une version mise à jour sous le nom de Hitachi 6309 .

Histoire

Détruire le Motorola 6809

6800 et 6502

Le Motorola 6800 a été conçu à partir de 1971 et commercialisé en 1974. En termes de conception générale, il présente une forte ressemblance avec d'autres processeurs conçus dès le départ comme des modèles 8 bits, comme l' Intel 8080. [ Il a été initialement fabriqué à l'aide de la logique NMOS précoce , qui nécessitait normalement plusieurs tensions d'alimentation différentes. Une caractéristique clé était un doubleur de tension intégré qui lui permettait de fonctionner sur une seule puce.Alimentation +5 V , un avantage majeur par rapport à ses concurrents comme l' Intel 8080 qui nécessitait−5 V ,+5 V ,+12 V et masse .

Le 6800 a été initialement fabriqué en utilisant le procédé de lithographie par contact alors en vigueur . Dans ce procédé, le photomasque est placé en contact direct avec la plaquette , exposé, puis soulevé. Il y avait un faible risque qu'une partie du matériau de gravure reste sur la plaquette lorsqu'elle est soulevée, ce qui entraînerait la défaillance des futures puces à motifs multiples comme un processeur, cela a conduit à ce qu'environ 90 % des puces échouent lors des tests. Pour faire un profit sur le petit nombre de puces qui fonctionnaient, les prix des modèles fonctionnels devaient être assez élevés, de l'ordre de plusieurs centaines de dollars en petites quantités.

Certains des concepteurs du 6800 étaient convaincus qu'un système moins coûteux serait la clé d'une acceptation généralisée. Parmi eux, Chuck Peddle , qui a été envoyé en tournée de vente et a vu des clients potentiels rejeter à plusieurs reprises la conception car elle était trop chère pour leurs utilisations prévues. Il a lancé un projet visant à produire une conception beaucoup moins coûteuse, mais la direction de Motorola s'est montrée peu intéressée et lui a finalement demandé d'arrêter de travailler dessus. Peddle et d'autres membres de l'équipe 6800 ont quitté Motorola pour MOS Technology et ont présenté cette conception en 1975 sous le nom de MOS Technology 6502 .

Le 6800 était initialement vendu à 360 $ en quantités unitaires, mais a été abaissé à 295 $ . Le 6502 a été introduit à 25 $ , et Motorola a immédiatement réduit le prix du 6800 à 125 $. Il est resté non compétitif et les perspectives de vente se sont assombries. L'introduction du Micralign dans les lignes de Motorola a permis de nouvelles réductions et en 1981, le prix du 6800P alors en vigueur était légèrement inférieur à celui du 6502 équivalent, du moins en quantités unitaires. À ce stade, cependant, le 6502 s'était vendu à des dizaines de millions d'unités et le 6800 avait été largement oublié.

6809

Alors que le 6502 commençait à prendre le dessus sur le marché du 6800, Intel rencontrait le même problème lorsque le Zilog Z80 commença à voler les ventes du 8080 d'Intel . Motorola et Intel commencèrent tous deux de nouveaux cycles de conception pour dépasser ces conceptions. Intel répondit en introduisant rapidement une petite mais pratique mise à niveau du 8080 sous le nom de 8085 , qui le rendit moins coûteux à utiliser et plus compétitif que le Z80. Ils commencèrent également à concevoir une série de processeurs 16 bits, qui émergea sous le nom d' Intel 8086 en 1978. Motorola commença également la conception d'une conception haut de gamme similaire, dans le projet MACSS, mais n'envisagea pas initialement une conception 8 bits améliorée. Mais lorsqu'ils sondèrent leurs clients 6800 existants, ils découvrirent que beaucoup n'étaient pas prêts à payer pour une conception 16 bits pour leurs besoins simples. Cela a conduit à la décision de produire une conception 8 bits grandement améliorée mais compatible qui est devenue le 6809.

L'analyse du code 6800 a démontré que les chargements et les stockages représentaient la grande majorité du temps en termes de CPU, représentant 39 % de toutes les opérations dans le code examiné. En revanche, les opérations mathématiques étaient relativement rares, seulement 2,8 % du code. Cependant, un examen attentif des chargements et des stockages a révélé que beaucoup d'entre eux étaient combinés avec des additions et des soustractions, révélant qu'une quantité importante de ces opérations mathématiques étaient effectuées sur des valeurs 16 bits. Cela a conduit à la décision d'inclure les mathématiques 16 bits de base dans la nouvelle conception : chargement, stockage, addition et soustraction. De même, les incréments et les décréments ne représentaient que 6,1 % du code, mais ils se produisaient presque toujours dans des boucles où chacun était exécuté plusieurs fois. Cela a conduit à l'ajout de modes de post-incrémentation et de pré-décrémentation utilisant les registres d'index .

L'objectif principal de la nouvelle conception était de prendre en charge le code indépendant de la position . Le marché de Motorola était principalement constitué de systèmes embarqués et de systèmes similaires à usage unique, qui exécutaient souvent des programmes très similaires à ceux des autres plates-formes. Le développement de ces systèmes prenait souvent la forme de la collecte d'une série de sous-routines pré-roulées et de leur combinaison. Cependant, comme le langage assembleur est généralement écrit à partir d'une adresse de base , la combinaison de modules pré-écrits nécessitait normalement un long processus de modification des constantes (ou des équations) qui pointaient vers des emplacements clés dans le code.

L'idée de Motorola était d'éliminer cette tâche et de rendre le concept de blocs de construction beaucoup plus pratique. Les intégrateurs de systèmes combineraient simplement du code standard dans des ROM pour gérer les tâches courantes. Des bibliothèques de routines courantes comme l'arithmétique à virgule flottante , les primitives graphiques, la compression Lempel-Ziv , etc. seraient disponibles sous licence, combinées avec du code personnalisé et gravées sur ROM.

Dans les conceptions de processeurs précédentes, y compris le 6800, il existait un mélange de façons de faire référence aux emplacements de mémoire. Certaines d'entre elles étaient relatives à l'emplacement actuel dans la mémoire ou à une valeur dans un registre d'index, tandis que d'autres étaient absolues, une valeur de 16 bits qui faisait référence à un emplacement physique dans la mémoire. Le premier style permet au code d'être déplacé car l'adresse à laquelle il fait référence se déplacera avec le code. Les emplacements absolus ne le font pas ; le code qui utilise ce style d'adressage devra être recompilé s'il se déplace. Pour résoudre ce problème, le 6809 a complété ses codes d'opération d'instructions afin qu'il y ait plus d'instances d'adressage relatif lorsque cela était possible.

Par exemple, le 6800 inclut un mode d'adressage direct utilisé pour rendre le code plus petit et plus rapide ; au lieu d'une adresse mémoire de 16 bits et nécessitant donc deux octets pour être stockée, les adresses directes ne font que 8 bits de long. L'inconvénient est qu'il ne peut faire référence à la mémoire que dans une fenêtre de 256 octets, la page directe , qui se trouve normalement au bas de la mémoire - le 6502 appelle cela l' adressage de page zéro . Le 6809 a ajouté un nouveau registre DP de 8 bits, pour la page directe. Le code qui devait auparavant se trouver dans la page zéro peut désormais être déplacé n'importe où dans la mémoire tant que le DP est modifié pour pointer vers son nouvel emplacement.

L'utilisation de DP a résolu le problème de référence aux adresses dans le code, mais les données sont généralement situées à une certaine distance du code, en dehors de la ROM. Pour résoudre le problème de référence facile aux données tout en restant indépendant de la position, le 6809 a ajouté une variété de nouveaux modes d'adressage. Parmi ceux-ci figurait l'adressage relatif au compteur de programme qui permettait de faire référence à n'importe quel emplacement de mémoire par son emplacement par rapport à l'instruction. De plus, la pile était plus largement utilisée, de sorte qu'un programme dans la ROM pouvait mettre de côté un bloc de mémoire dans la RAM, définir le SP comme base du bloc, puis faire référence aux données qu'il contient en utilisant des valeurs relatives.

Pour faciliter ce type d'accès, le 6809 a renommé le SP en U pour « utilisateur » et a ajouté un deuxième pointeur de pile, S, pour « système ». L'idée était que les programmes utilisateur utiliseraient U tandis que le processeur lui-même utiliserait S pour stocker les données pendant les appels de sous-programmes . Cela permettait d'appeler facilement le code système en modifiant S sans affecter aucun autre programme en cours d'exécution. Par exemple, un programme appelant une routine à virgule flottante dans la ROM placerait ses données sur la pile U, puis appellerait la routine, qui pourrait alors effectuer les calculs en utilisant les données de sa propre pile privée pointée par S, puis revenir en arrière, laissant la pile U intacte.

Une autre raison de l'extension de l'accès à la pile était de prendre en charge le code réentrant , un code qui peut être appelé simultanément à partir de différents programmes sans se soucier de la coordination entre eux, ou qui peut s'appeler lui-même de manière récursive. Cela facilite grandement la construction de systèmes d'exploitation ; le système d'exploitation avait sa propre pile et le processeur pouvait rapidement basculer entre une application utilisateur et le système d'exploitation simplement en changeant le pointeur de pile qu'il utilisait. Cela facilite également grandement la gestion des interruptions pour la même raison. Le 6809 ajoute une interruption de demande d'interruption rapide (FIRQ) qui enregistre uniquement le compteur de programme et le registre de code de condition avant d'appeler le code d'interruption, tandis que l'interruption IRQ enregistre tous les registres, ce qui prend des cycles supplémentaires, puis plus pour dérouler la pile à la sortie.

Le 6809 comprend l'un des premiers multiplicateurs matériels dédiés. Il prend des nombres de 8 bits dans les accumulateurs A et B et produit un résultat dans A:B, connu collectivement sous le nom de D.

Acceptation du marché

La conception reposait en grande partie sur le concept commercial de code de blocs de construction. Mais le marché des modules ROM pré-enroulés ne s'est jamais matérialisé : le seul exemple commercialisé par Motorola était la ROM à virgule flottante MC6839. L'industrie dans son ensemble a résolu le problème de l'intégration de modules de code provenant de sources distinctes en utilisant des linkers et des chargeurs à relocalisation automatique , ce qui est la solution utilisée aujourd'hui. Cependant, les décisions prises par l'équipe de conception ont permis la mise en place de systèmes d'exploitation multi-utilisateurs et multitâches comme OS-9 et UniFlex .

Les nouvelles fonctionnalités du 6809 étaient coûteuses : le processeur comptait environ 9 000 transistors, contre 4 100 pour le 6800 ou 3 500 pour le 6502. Bien que les améliorations apportées au processus aient permis de le fabriquer à moindre coût que le 6800 d'origine, ces mêmes améliorations ont été appliquées aux autres modèles et le coût relatif est donc resté le même. Tel était le cas dans la pratique : en 1981, le 6809 était vendu en quantités unitaires pour environ six fois le prix d'un 6502. Pour les systèmes qui avaient besoin de certaines de ses fonctionnalités spéciales, comme le multiplicateur matériel, le système pouvait justifier son prix, mais dans la plupart des cas, il était négligé.

Un autre facteur expliquant sa faible utilisation est la présence de nouveaux modèles aux performances nettement supérieures. Parmi ceux-ci, on trouve le processeur Intel 8086 , sorti la même année, et sa version moins chère, le processeur Intel 8088 de 1979. On peut avoir une idée du problème en examinant les résultats du langage assembleur Byte Sieve par rapport à d'autres modèles courants de l'époque (tirés de 1981 et 1983 ) :

Bien que le 6809 ait offert une amélioration des performances par rapport aux modèles 6502 et Z80, cette amélioration n'était pas en phase avec l'augmentation du prix. Pour ceux pour qui le prix n'était pas la principale préoccupation, mais les performances pures l'étaient, les nouvelles conceptions l'ont surpassé d'un ordre de grandeur .

Avant même la sortie du 6809, Motorola avait lancé en 1976 son propre projet de processeur avancé, alors connu sous le nom de projet Motorola Advanced Computer System on Silicon, ou MACSS. Bien qu'il soit trop tard pour être choisi pour le projet IBM PC , lorsque le MACSS est apparu sous le nom de Motorola 68000 en 1979, il a perdu tout intérêt pour le 6809. Motorola a rapidement annoncé que ses futurs systèmes 8 bits seraient alimentés par des versions réduites du 68000 plutôt que par des versions améliorées du 6809.

Principales utilisations

Ordinateur couleur TRS-80

Sa première utilisation majeure fut l' ordinateur couleur TRS-80 , qui s'est produit en grande partie par accident. Motorola avait été sollicité pour concevoir un terminal informatique capable de gérer les couleurs pour un projet d'aide agricole en ligne, un système connu sous le nom de « AgVision ». Tandy ( Radio Shack ) fut engagé comme partenaire de vente au détail et les vendit sous le nom de « VideoTex », mais le projet fut finalement annulé peu après son lancement en 1980. Tandy retravailla ensuite la conception pour produire un ordinateur domestique , qui devint l'un des succès de conception les plus notables du 6809.

SuperPET SP9000

À la recherche d'une plate-forme de programmation à faible coût pour les étudiants en informatique , l' Université de Waterloo a développé un système combinant un ordinateur sur carte basé sur le processeur 6809 avec un PET Commodore existant , comprenant un certain nombre de langages de programmation et d'éditeurs de programmes en ROM. Le résultat a ensuite été repris par Commodore, qui l'a vendu sous le nom de SuperPET , ou MicroMainframe en Europe. Ces derniers étaient relativement populaires au milieu des années 1980 avant que l'introduction du marché des clones de PC ne prenne le relais du rôle de programmation pour la plupart des utilisateurs.

Parmi les autres ordinateurs domestiques populaires, on trouve le Fujitsu FM-7 , le Canon CX-1, le Dragon 32/64 et la série Thomson TO7 . Il était également disponible en option sur les ordinateurs Acorn System 2 , 3 et 4. La plupart des conceptions de bus SS-50 qui avaient été construites autour du 6800 avaient également des options pour le 6809 ou passaient exclusivement à celui-ci. Les exemples incluent les machines de SWTPC , Gimix , Smoke Signal Broadcasting , etc. Motorola a également construit une série de systèmes de développement EXORmacs et EXORset.

Hitachi produisit ses propres machines basées sur le 6809, le MB-6890 et plus tard le S1. Ces machines étaient principalement destinées au marché japonais, mais certaines furent exportées et vendues en Australie , où le MB-6890 fut surnommé le « Peach », probablement en référence à l' Apple II . Le S1 était remarquable en ce qu'il contenait du matériel de pagination étendant la plage d'adressage native de 64 kilo-octets du 6809 à 1 mégaoctet complet dans des pages de 4 Ko. Il était similaire en cela aux machines produites par SWTPC, Gimix et plusieurs autres fournisseurs. TSC produisit un système d'exploitation de type Unix, uniFlex, qui ne fonctionnait que sur ces machines. OS-9 Level II, tirait également parti de ces fonctionnalités de gestion de la mémoire. La plupart des autres ordinateurs de l'époque avec plus de 64 Ko d'adressage mémoire étaient limités à la commutation de banque où une grande partie, sinon la totalité des 64 Ko, était simplement échangée contre une autre section de mémoire, bien que dans le cas du 6809, Motorola ait proposé sa propre conception MMU MC6829 mappant 2 mégaoctets dans des pages de 2 Ko.

Console de jeux vidéo domestique Vectrex

Le 6809 a également été utilisé dans divers systèmes de jeux vidéo . Parmi ceux-ci, l'incarnation 68A09 était la machine de jeu vidéo domestique Vectrex basée sur des graphiques vectoriels . Il a également été utilisé dans le système Milton Bradley Expansion (MBX) (une console d'arcade pour l'ordinateur domestique TI-99/4A ) et dans une série de jeux d'arcade sortis au début et au milieu des années 1980. Williams Electronics était un utilisateur prolifique du processeur, qui a été déployé dans Defender , Stargate , Joust , Robotron: 2084 , Sinistar et d'autres jeux. Le processeur 6809 constitue le cœur du célèbre Williams Pinball Controller . Le KONAMI-1 est un 6809 modifié utilisé par Konami dans Roc'n Rope , Gyruss et Les Simpson .

La série II du Fairlight CMI (instrument de musique informatique) utilisait deux processeurs 6809 fonctionnant sous OS-9 , et utilisait également un processeur 6809 par carte vocale. Le 6809 était souvent utilisé dans les synthétiseurs de musique d'autres fabricants tels qu'Oberheim ( Xpander , Matrix 6/12/1000 ), PPG (Wave 2/2.2/2.3, Waveterm A) et Ensoniq ( échantillonneur Mirage , SDP-1, ESQ-1 , SQ-80 ). Ce dernier utilisait le 6809E comme processeur principal. La version (E) était utilisée pour synchroniser l'horloge du microprocesseur avec la puce sonore (Ensoniq 5503 DOC) de ces machines ; dans l'ESQ-1 et le SQ-80, le 68B09E était utilisé, nécessitant une logique d'arbitrage dédiée afin de garantir une synchronisation du bus de 1 MHz lors de l'accès à la puce DOC.

Contrairement aux produits Motorola précédents, le 6809 n'a pas été largement utilisé dans le domaine des microcontrôleurs . Il a été utilisé dans les contrôleurs de feux de circulation fabriqués dans les années 1980 par plusieurs fabricants différents, ainsi que dans les contrôleurs centraux à ressources partagées SMARTNET et SMARTZONE de Motorola (surnommés « contrôleur 6809 »). Ces contrôleurs ont été utilisés comme processeurs centraux dans de nombreux systèmes de communication radio bidirectionnelle à ressources partagées de Motorola.

Le 6809 a été utilisé par Mitel comme processeur principal dans son système téléphonique de bureau SX20.

Versions

Le Motorola 6809 a été produit à l'origine avec des vitesses nominales de 1 MHz, 1,5 MHz (68A09) et 2 MHz (68B09). Des versions plus rapides ont été produites plus tard par Hitachi. Avec peu de possibilités d'amélioration, le 6809 marque la fin de l'évolution des processeurs 8 bits de Motorola ; Motorola avait prévu que les futurs produits 8 bits seraient basés sur une version à bus de données 8 bits du 68000 (le 68008 ). Une version à microcontrôleur avec un jeu d'instructions légèrement modifié, le 6811 , a été abandonnée au cours de la deuxième décennie du 21e siècle.

Le Hitachi 6309 est une version améliorée du 6809 avec des registres supplémentaires et des instructions supplémentaires, notamment le déplacement de blocs, des instructions de multiplication supplémentaires et la division.

Héritage

Motorola a scindé sa division de microprocesseurs en 2004. La division a changé de nom pour devenir Freescale et a ensuite été acquise par NXP .

Ni Motorola ni Hitachi ne produisent plus de processeurs 6809 ou de dérivés. Les cœurs 6809 sont disponibles en VHDL et peuvent être programmés dans un FPGA et utilisés comme processeur embarqué avec des vitesses nominales allant jusqu'à 40 MHz. Certains opcodes 6809 sont également présents dans les processeurs embarqués Freescale . En 2015, Freescale a autorisé Rochester Electronics à recommencer à fabriquer le MC6809 en remplacement direct et en copie du dispositif NMOS d'origine. Freescale a fourni à Rochester la base de données de conception physique GDSII d'origine . Fin 2016, le MC6809 de Rochester (y compris le MC68A09 et le MC68B09) est entièrement qualifié et disponible en production.

Le développeur australien John Kent a synthétisé le processeur Motorola 6809 en langage de description matérielle (HDL). Cela a rendu possible l'utilisation du cœur 6809 à des vitesses d'horloge beaucoup plus élevées que celles disponibles avec le 6809 d'origine. Le CoCo3FPGA de Gary Becker fait tourner le cœur Kent 6809 à 25 MHz. Le Matchbox CoCo de Roger Taylor fonctionne à 7,16 MHz. Le CoCoDEV de Dave Philipsen fonctionne à 25 MHz.

Description

La conception interne du 6809 est plus proche des conceptions de processeurs plus simples, non microcodées . Comme la plupart des microprocesseurs 8 bits, l'implémentation du 6809 est une machine de niveau transfert de registre , utilisant un PLA central pour implémenter une grande partie du décodage des instructions ainsi que des parties du séquençage.

Comme les processeurs 6800 et 6502, le processeur 6809 utilise une horloge à deux phases pour déclencher les verrous. Ce cycle d'horloge à deux phases est utilisé comme cycle machine complet dans ces processeurs. Des instructions simples peuvent s'exécuter en seulement deux ou trois cycles. Le processeur 6809 dispose d'un générateur d'horloge interne à deux phases (nécessitant uniquement un cristal externe) tandis que le processeur 6809E nécessite un générateur d'horloge externe. Il existe des variantes telles que le processeur 68A09(E) et le processeur 68B09(E) ; la lettre interne indique la vitesse d'horloge nominale du processeur.

Le système d'horloge des processeurs 6800, 6502 et 6809 diffère de celui des autres processeurs de l'époque. Par exemple, le Z80 utilise une seule horloge externe et les étapes internes du processus d'instruction se poursuivent à chaque transition. Cela signifie que l'horloge externe fonctionne généralement beaucoup plus rapidement ; les modèles 680x fonctionnaient généralement à 1 ou 2 MHz tandis que le Z80 fonctionnait généralement à 2 ou 4. En interne, le 680x divisait la fréquence de l'horloge externe par quatre pour créer l'horloge système ; ainsi, un 6809 à 1 MHz aurait un cristal ou un signal d'horloge à 4 MHz. En général, instruction par instruction, ils fonctionnaient environ deux fois plus vite, en comparant les horloges externes à celles d'autres microprocesseurs.

L'avantage de l'accès de type 680x était que les puces RAM dynamiques de l'époque fonctionnaient généralement à 2 MHz. En raison de la synchronisation du cycle, il y avait des périodes de l'horloge interne où le bus mémoire était garanti d'être libre. Cela permettait au concepteur d'ordinateur d'intercaler l'accès à la mémoire entre le processeur et un périphérique externe, par exemple un contrôleur d'accès direct à la mémoire , ou plus communément, une puce graphique . En faisant fonctionner les deux puces à 1 MHz et en les faisant fonctionner l'une après l'autre, elles pouvaient partager l'accès à la mémoire sans complexité ni circuit supplémentaire. Selon la version et le niveau de vitesse, environ 40 à 60 % d'un cycle d'horloge unique est généralement disponible pour l'accès à la mémoire dans un 6800, 6502 ou 6809.

Registres et instructions

Modèle de programmation 6809, montrant les registres du processeur

Le 6800 original comprenait deux accumulateurs 8 bits , A et B, un seul registre d'index 16 bits , X, un compteur de programme 16 bits, PC, un pointeur de pile 16 bits , SP, et un registre d'état 8 bits . Le 6809 a ajouté un deuxième registre d'index, Y, un deuxième pointeur de pile, U (tout en renommant le S d'origine), et a permis aux registres A et B d'être traités comme un seul accumulateur 16 bits, D. Il a également ajouté un autre registre 8 bits, DP, pour définir l'adresse de base de la page directe. Ces ajouts étaient invisibles pour le code 6800, et le 6809 était 100% compatible avec le code source antérieur.

Un autre ajout important a été l'adressage relatif au compteur de programme pour toutes les instructions de manipulation de données. Il s'agissait d'un ajout clé pour le code indépendant de la position , car il permet de faire référence aux données par rapport à l'instruction, et tant que l'emplacement mémoire résultant existe, les instructions peuvent être déplacées librement dans la mémoire. Le système a également conservé ses modes d'adressage précédents, bien que dans le nouveau langage assembleur , ce qui était auparavant des instructions séparées étaient désormais considérées comme des modes d'adressage différents sur d'autres instructions. Cela a réduit le nombre d'instructions de 78 instructions du 6800 à 59 pour le 6809. Ces nouveaux modes avaient les mêmes opcodes que l'instruction séparée précédemment, de sorte que ces changements n'étaient visibles que pour le programmeur travaillant sur un nouveau code.

Le jeu d'instructions et le registre complémentaire sont hautement orthogonaux , ce qui rend le 6809 plus facile à programmer que ses contemporains. Comme le 6800, le 6809 comprend une instruction de test de bus d'adresse non documentée qui a été surnommée Halt and Catch Fire (HCF) .

Remarques