Motorola 6809
Le 6809 occupe ainsi une place particulière à la fin des années 1970 : il représente l’une des architectures 8 bits les plus évoluées avant l’arrivée d’une nouvelle génération de processeurs comme le Motorola 68000.
Fiche rapide
- Constructeur : Motorola
- Introduction : 1978
- Type : microprocesseur 8 bits
- Bus de données : 8 bits
- Bus d’adresses : 16 bits
- Mémoire directement adressable : 64 Ko
- Accumulateurs : A et B sur 8 bits, combinables en registre D sur 16 bits
- Registres d’index : X et Y sur 16 bits
- Pointeurs de pile : U et S sur 16 bits
- Compteur ordinal : PC sur 16 bits
- Fréquence : selon les versions et les systèmes, généralement autour de 1 à 2 MHz
Un processeur 8 bits particulièrement évolué
À la fin des années 1970, les microprocesseurs 8 bits dominent encore le marché. L’Intel 8080, le Zilog Z80, le MOS Technology 6502 ou le Motorola 6800 équipent de nombreux micro-ordinateurs.
Le Motorola 6809 reste dans cette catégorie : il échange les données avec la mémoire sur 8 bits et utilise un bus d’adresses de 16 bits, soit un espace maximal de 64 Ko.
Son originalité vient surtout de son organisation interne. Motorola lui donne plusieurs registres 16 bits et des mécanismes que l’on rencontre plus rarement sur les processeurs 8 bits de cette génération.
Le 6809 ne devient donc pas un processeur 16 bits pour autant. Il s’agit plutôt d’un 8 bits doté de nombreuses capacités 16 bits.
Des registres plus nombreux et plus souples
Le 6809 possède deux accumulateurs de 8 bits nommés A et B. Ils peuvent fonctionner séparément ou être associés pour former le registre D de 16 bits.
Cette organisation permet par exemple d’effectuer certaines opérations sur des valeurs 16 bits sans devoir tout décomposer manuellement en deux octets.
Le processeur dispose également de deux registres d’index 16 bits, X et Y, particulièrement utiles pour parcourir des tableaux ou des structures en mémoire.
Deux autres registres, U et S, servent de pointeurs de pile.
Cette richesse donne au programmeur davantage de possibilités que sur de nombreux processeurs 8 bits contemporains.
Deux pointeurs de pile
La présence de deux pointeurs de pile 16 bits constitue l’une des particularités du Motorola 6809.
Le registre U correspond à la pile utilisateur et reste sous le contrôle du programme.
Le registre S sert de pile matérielle. Le processeur l’utilise notamment lors des appels de sous-programmes et pour la sauvegarde du contexte lors de certaines interruptions.
Disposer de deux piles facilite la séparation entre différentes parties d’un programme et favorise l’écriture de logiciels plus structurés, notamment des moniteurs, des systèmes d’exploitation ou des programmes réentrants.
Des modes d’adressage très puissants
Le Motorola 6809 se distingue également par la richesse de ses modes d’adressage.
Un programme peut accéder directement à une adresse, utiliser un registre d’index, ajouter un déplacement à celui-ci ou encore modifier automatiquement un pointeur avant ou après l’accès à la mémoire.
Ces possibilités sont particulièrement pratiques pour parcourir des tableaux, manipuler des structures ou travailler avec une pile.
Le 6809 offre également des branchements relatifs permettant de calculer la destination d’un saut par rapport à la position actuelle du programme.
Cette technique facilite la création de code indépendant de sa position en mémoire. Un même bloc de programme peut alors être déplacé plus facilement sans devoir modifier toutes ses adresses internes.
Une architecture pensée pour les logiciels structurés
Motorola conçoit le 6809 à une époque où les microprocesseurs ne servent plus uniquement à exécuter de petits programmes en assembleur.
Les langages de haut niveau prennent de l’importance et certains micro-ordinateurs commencent à utiliser de véritables systèmes d’exploitation.
La richesse des registres, les deux piles et les modes d’adressage du 6809 facilitent le travail des compilateurs et la création de programmes réentrants.
Un programme réentrant peut être interrompu puis utilisé de nouveau sans que son fonctionnement soit nécessairement perturbé. Cette propriété devient particulièrement intéressante lorsque plusieurs tâches doivent partager certaines routines.
Le 6809 se prête ainsi à des systèmes plus structurés que ceux que l’on associe généralement aux premières machines 8 bits.
Des performances qui ne se résument pas à la fréquence
Selon les versions, le Motorola 6809 fonctionne à des fréquences situées généralement autour de 1 à 2 MHz.
Ces valeurs paraissent modestes, mais comparer uniquement les mégahertz entre processeurs est trompeur.
Les architectures n’exécutent pas les instructions de la même manière et une seule instruction du 6809 peut effectuer une opération qui demanderait plusieurs instructions sur une autre architecture.
Son intérêt réside donc moins dans une fréquence spectaculaire que dans la souplesse de son jeu d’instructions et de ses modes d’adressage.
Quels ordinateurs utilisaient le Motorola 6809 ?
Le 6809 et sa variante 6809E équipent de nombreux systèmes au cours des années 1980.
En France, Thomson adopte notamment le processeur pour plusieurs de ses micro-ordinateurs. Le Thomson TO7, le TO7/70 et le Thomson MO5 utilisent le Motorola 6809E.
Le processeur équipe également des ordinateurs comme le TRS-80 Color Computer de Tandy et le Dragon 32/64.
On le retrouve aussi dans certaines machines d’arcade et dans des équipements industriels ou embarqués.
Sa diffusion reste toutefois plus limitée que celle du Z80 ou du 6502. Le 6809 arrive relativement tard sur le marché 8 bits et son coût ne favorise pas son adoption dans les machines les moins chères.
6809 et 6809E : quelle différence ?
La famille comprend notamment le MC6809 et le MC6809E.
Leur architecture et leur jeu d’instructions restent identiques. La principale différence concerne la génération de l’horloge.
Le MC6809 intègre le circuit nécessaire à la génération de ses signaux d’horloge.
Le MC6809E, reconnaissable à son suffixe E, reçoit au contraire ses signaux d’horloge depuis le système extérieur. Cette solution permet au constructeur de synchroniser plus précisément le processeur avec les autres circuits de la machine.
C’est notamment cette version 6809E que Thomson utilise dans plusieurs de ses micro-ordinateurs.
Motorola et Hitachi
Motorola n’est pas le seul fabricant à produire cette architecture.
Hitachi commercialise également des processeurs compatibles, notamment sous les références HD6809 et HD6809E.
Les références peuvent aussi comporter des lettres correspondant à la vitesse, au type de boîtier ou à certaines caractéristiques de fabrication.
Par exemple, le suffixe P visible sur certaines puces désigne un boîtier DIP en plastique. Il ne correspond pas à une architecture différente du processeur.
Du Motorola 6809 au Motorola 68000
Le 6809 représente l’un des aboutissements de la famille 8 bits issue du Motorola 6800.
Motorola choisit cependant une stratégie très différente pour la génération suivante.
Avec le Motorola 68000, introduit à la fin des années 1970, le constructeur abandonne la compatibilité binaire avec les processeurs 6800 et 6809 et développe une architecture beaucoup plus ambitieuse.
Le 68000 dispose notamment de registres 32 bits, d’un bus de données externe de 16 bits et d’un espace d’adressage de 16 Mo.
Cette rupture ouvrira la voie à une nouvelle famille de processeurs utilisée plus tard dans l’Apple Macintosh, l’Atari ST ou l’Amiga.
Pourquoi le Motorola 6809 est important
Le Motorola 6809 n’est ni le processeur 8 bits le plus vendu ni celui qui équipe le plus grand nombre de micro-ordinateurs.
Son intérêt historique vient surtout de son architecture particulièrement riche.
Ses registres 16 bits, ses deux piles, ses modes d’adressage élaborés et son aptitude à produire du code indépendant de sa position en mémoire offrent aux programmeurs des possibilités rarement réunies sur un processeur 8 bits de cette époque.
Le 6809 illustre ainsi jusqu’où pouvait être poussée une architecture 8 bits avant que les micro-ordinateurs ne passent progressivement aux générations 16 et 32 bits.
Repères chronologiques
- 1974 : Motorola introduit le 6800.
- 1978 : introduction du Motorola 6809.
- Début des années 1980 : utilisation du 6809 dans plusieurs micro-ordinateurs américains et européens.
- 1982 : le Thomson TO7 utilise un Motorola 6809E.
- 1984 : le TO7/70 et le MO5 poursuivent l’utilisation du 6809E chez Thomson.
Sources
- Motorola, MC6809-MC6809E Microprocessor Programming Manual.
- Motorola, documentation technique de la famille M6800.
- Documentation technique Thomson consacrée aux TO7, TO7/70 et MO5.
Photo de couverture : Konstantin Lanzet, CPU collection Konstantin Lanzet — CC BY-SA 3.0, Wikimedia Commons.
