Motorola 68000
Le Motorola 68000, souvent appelé 68000 ou simplement 68k, est un microprocesseur introduit par Motorola en 1979. Il marque une rupture avec les processeurs 8 bits précédents de la marque et propose un modèle de programmation beaucoup plus ambitieux.
Fiche rapide
- Constructeur : Motorola
- Introduction : 1979
- Famille : Motorola 68000 / 68k
- Architecture : généralement décrite comme 16/32 bits
- Registres : 32 bits
- Bus de données externe : 16 bits
- Bus d’adresses : 24 bits
- Mémoire directement adressable : 16 Mo
- Registres principaux : 8 registres de données D0–D7 et 8 registres d’adresses A0–A7
- Ordre des octets : big-endian
- Modes de fonctionnement : utilisateur et superviseur
1979 : Motorola rompt avec ses processeurs 8 bits
Le 68000 ne constitue pas simplement une version plus puissante du Motorola 6800 ou du Motorola 6809.
Motorola choisit une nouvelle architecture et un nouveau jeu d’instructions. Un programme en langage machine écrit pour un 6800 ou un 6809 ne peut donc pas être exécuté directement sur un 68000.
Cette rupture permet aux ingénieurs de repartir sur des bases plus ambitieuses. Le nouveau processeur dispose de davantage de registres, d’un espace mémoire beaucoup plus grand et de nombreux modes d’adressage.
Du point de vue du programmeur, le changement est considérable. Le 68000 ressemble moins à un traditionnel microprocesseur 8 bits qu’à une petite architecture professionnelle, dans l’esprit des machines 16 bits comme le PDP-11.
Le 68000 est-il un processeur 16 ou 32 bits ?
La réponse dépend de ce que l’on mesure.
Le 68000 possède un bus de données externe de 16 bits. Lorsqu’il communique avec la mémoire, il transfère donc normalement les données par blocs de 16 bits.
Mais son modèle de programmation est largement organisé autour de valeurs de 32 bits. Ses registres de données et ses registres d’adresses ont une largeur de 32 bits et le processeur sait manipuler des données de 8, 16 ou 32 bits.
C’est pourquoi le 68000 est fréquemment qualifié de processeur 16/32 bits.
On peut le résumer simplement :
32 bits pour une grande partie du modèle de programmation, 16 bits pour le bus de données externe.
Cette conception permet à Motorola de proposer une architecture tournée vers les logiciels futurs sans imposer un bus externe 32 bits, qui aurait rendu les systèmes plus complexes et plus coûteux à fabriquer à la fin des années 1970.
16 Mo de mémoire : un changement d’échelle
Un autre avantage majeur vient de son bus d’adresses de 24 bits.
Avec 24 bits, le processeur peut distinguer : 224 = 16 777 216 adresses soit un espace directement adressable de 16 Mo.
Le changement est spectaculaire par rapport aux microprocesseurs 8 bits à bus d’adresses de 16 bits, comme le 6809, qui disposent normalement d’un espace direct de 64 Ko.
Le 68000 offre ainsi aux programmeurs un espace mémoire linéaire considérablement plus grand. Il devient possible d’envisager des programmes plus volumineux, davantage de données et des systèmes d’exploitation plus ambitieux sans avoir recours immédiatement à des mécanismes complexes de banques mémoire.
Seize registres pour travailler
Le modèle de programmation du 68000 repose notamment sur seize registres principaux de 32 bits.
Les registres D0 à D7 servent principalement à manipuler les données.
Les registres A0 à A7 sont destinés aux adresses et aux pointeurs.
Le registre A7 possède un rôle particulier : il sert de pointeur de pile.
Cette séparation entre registres de données et registres d’adresses donne au programmeur beaucoup plus de possibilités que sur de nombreux processeurs 8 bits de la génération précédente.
Le 68000 propose également de nombreux modes d’adressage. Une instruction peut par exemple travailler directement avec un registre, une adresse mémoire, une adresse calculée à partir d’un registre ou encore avancer automatiquement un pointeur après avoir lu une donnée.
Ces possibilités rendent l’assembleur relativement expressif et facilitent également le travail des compilateurs pour des langages de haut niveau comme le C ou Pascal.
Big-endian : dans quel ordre sont stockés les octets ?
Le 68000 utilise une organisation big-endian.
Lorsqu’une valeur occupe plusieurs octets en mémoire, l’octet de poids fort est placé à l’adresse la plus basse.
Prenons par exemple la valeur hexadécimale :
$12345678
Elle est stockée en mémoire dans l’ordre :
12 → 34 → 56 → 78
Cette caractéristique n’améliore ni ne réduit les performances du processeur. Elle définit simplement la convention utilisée pour organiser les nombres de plusieurs octets en mémoire.
Un mode utilisateur et un mode superviseur
Le 68000 distingue également deux niveaux de fonctionnement : le mode utilisateur et le mode superviseur.
Les programmes ordinaires peuvent fonctionner en mode utilisateur, tandis que certaines opérations sensibles sont réservées au mode superviseur. Le système d’exploitation peut ainsi conserver le contrôle de fonctions importantes de la machine.
Cette séparation constitue une avancée intéressante pour construire des systèmes plus structurés que ceux des micro-ordinateurs 8 bits.
Il faut néanmoins éviter de lui attribuer des capacités qu’il ne possède pas : le 68000 d’origine n’intègre pas à lui seul une véritable unité de gestion mémoire ou MMU. Les systèmes nécessitant une protection mémoire plus poussée doivent ajouter du matériel externe ou utiliser des membres ultérieurs de la famille 68000.
Une architecture adaptée aux interfaces graphiques
Les qualités du 68000 apparaissent particulièrement bien au début des années 1980.
Une interface graphique demande de manipuler de nombreuses structures en mémoire : fenêtres, menus, polices de caractères, images, événements provenant du clavier ou de la souris. Des applications comme le traitement de texte ou le dessin deviennent également beaucoup plus complexes que les programmes typiques des premiers micro-ordinateurs 8 bits.
Le grand espace d’adressage et les registres du 68000 conviennent bien à cette nouvelle génération de logiciels.
L’Apple Lisa, commercialisé en 1983, l’utilise pour faire fonctionner l’une des premières interfaces graphiques commerciales destinées à un ordinateur personnel.
L’année suivante, Apple choisit encore le 68000 pour le Macintosh. Le premier modèle fonctionne avec seulement 128 Ko de RAM, mais son processeur lui permet de gérer une interface entièrement graphique comprenant fenêtres, icônes, menus et souris.
Amiga, Atari ST et Mega Drive
Apple est loin d’être le seul constructeur à adopter le 68000.
En 1985, l’Atari ST et l’Amiga 1000 reposent eux aussi sur cette architecture. Ces machines exploitent le processeur pour proposer des environnements graphiques, des applications créatives et des jeux plus évolués.
Le 68000 dépasse également le monde des ordinateurs personnels. Il équipe certaines stations de travail Sun et de nombreux systèmes industriels ou d’arcade.
À partir de 1988 au Japon, puis 1989 en Amérique du Nord et 1990 en Europe, Sega l’utilise également comme processeur principal de la Mega Drive — appelée Genesis en Amérique du Nord.
Une architecture conçue à la fin des années 1970 se retrouve ainsi aussi bien dans des ordinateurs professionnels que dans des micro-ordinateurs familiaux et des consoles de jeux.
Du 68000 à toute une famille de processeurs
Motorola a conçu dès le départ une architecture capable d’évoluer.
Le 68000 est suivi notamment par le 68010, puis le 68020, le 68030, le 68040 et enfin le 68060.
Au fil des générations, Motorola améliore les performances, élargit les bus, ajoute des caches et intègre progressivement des fonctions auparavant réalisées par des circuits externes.
La compatibilité au sein de cette famille permet aux constructeurs de faire évoluer leurs machines sans abandonner immédiatement leur environnement logiciel. Apple, Commodore et Atari utiliseront ainsi plusieurs générations de processeurs 68k.
Pourquoi le Motorola 68000 est important
L’importance du Motorola 68000 ne vient pas d’une seule innovation.
Son principal apport consiste à avoir proposé, dès la fin des années 1970, une architecture de microprocesseur suffisamment ambitieuse pour accompagner une nouvelle génération d’ordinateurs.
Ses registres de 32 bits offrent un modèle de programmation confortable, tandis que son bus de données 16 bits permet encore de construire des systèmes à un coût raisonnable. Son espace d’adressage de 16 Mo dépasse très largement les limites habituelles des microprocesseurs 8 bits.
Le 68000 contribue ainsi à faire entrer la micro-informatique dans une nouvelle période. Avec le Lisa, le Macintosh, l’Atari ST et l’Amiga, l’ordinateur personnel devient progressivement capable de gérer des interfaces graphiques et des logiciels bien plus complexes.
Le passage peut être résumé ainsi :
les microprocesseurs 8 bits avaient permis de construire l’ordinateur personnel ; le 68000 contribue à lui donner les moyens de devenir une véritable machine graphique et professionnelle.
Sources
Motorola / Freescale / NXP, M68000 8-/16-/32-bit Microprocessors User’s Manual.
Motorola / Freescale / NXP, 68000 Family Programmer’s Reference Manual.
NXP Semiconductors, documentation technique du MC68000.
Photo de couverture sous licence CC BY-SA 3.0, Wikimedia Commons.
