# Motorola 68000

Apparu en 1979, le Motorola 68000 est un microprocesseur CISC 16/32 bits développé par Motorola. C'est le premier de la famille de microprocesseurs souvent appelée m68k ou 680x0, qui comprend notamment les microprocesseurs Motorola 68010, Motorola 68020, Motorola 68030, Motorola 68040 et Motorola 68060. Le nom du 68000 vient à la fois de la continuité avec la famille de microprocesseurs Motorola 6800 et du nombre de transistors qu'il contient, un peu plus de 68 000.

## Architecture

Même si l'on a essentiellement retenu l'élargissement et la multiplication des registres disponibles, ainsi que l'introduction d'une certaine orthogonalité dans le jeu d'instruction, la principale innovation de la série 68000 par rapport à son prédécesseur, le Motorola 6809, réside dans l'apparition d'instructions privilégiées et des niveaux de fonctionnement utilisateur - superviseur. Cette distinction est fondamentale dans les systèmes d'exploitation modernes tels Unix, qui n'auraient pu que difficilement voir le jour sur ces plates-formes sans cette innovation.
À noter la présence de l'instruction TAS (Test And Set) qui permet de tester et modifier la valeur d'un octet en mémoire en une seule instruction non interruptible. Ce type d'instruction est indispensable pour implémenter les sémaphores utilisés pour la communication inter-processus, donc les systèmes d'exploitation multitâches.
Deux petits défauts, corrigés dans le Motorola 68010, rendent cependant le 68000 incapable de bien supporter la virtualisation et la mémoire virtuelle : L'instruction MOVE from SR permet de lire la partie superviseur du registre SR même en mode utilisateur, ce qui empêche sa virtualisation ; il n'est pas possible de relancer une instruction qui a causé une erreur d'accès à la mémoire, ce qui empêche la reprise d'un programme après avoir chargé les données manquantes.

### 16/32 bits

Le 68000 est qualifié de 16/32 bits car ses registres ont une largeur de 32 bits et ses instructions acceptent des données de 8, 16 et 32 bits. Toutefois, l'ALU (Unité arithmétique et logique) a une largeur de 16 bits, ce qui fait que les opérations sur 32 bits prennent plus de cycles d'horloge pour être exécutées. En outre, les bus externes ont une largeur de 16 bits pour les données et de 24 bits pour les adresses.

### Espace mémoire

Le 68000 peut également adresser de façon linéaire un espace mémoire total de 16 mégaoctets puisque son bus d'adresse est de 24 bits.
Cet espace mémoire peut être séparé en quatre parts (programme superviseur, données superviseur, programme utilisateur, données utilisateur) sans utilisation de circuit externe, mais par simple décodage de trois lignes d'état fournies par le processeur ; ces trois bits apportent une grande sécurité matérielle des données et permettent d'étendre l'espace mémoire à 64 mégaoctets.
Il peut être aussi utilisé avec les circuits périphériques de première génération (PIA MC6821 par exemple) grâce à des signaux de synchronisation disponibles sur le bus.
Le 68000 est big endian.

### Jeu d'instructions

Le Motorola 68000 dispose de 8 registres de données 32 bits, de 7 registres d'adresse 32 bits et d'un registre de pile, ainsi que quatre registres spéciaux décrivant l'état du processeur.
Il y a 82 instructions et le processeur supporte de nombreux modes d'adressage : accès à la pile, adressage indirect, adressage des registres par exemple.

## Utilisations du 68000

* Airbus : pour le calcul des lois de pilotage de l'A320, au sein des ELAC (Elevator and Aileron Computer).
* Alstom : pour le système informatique embarqué des rames TGV Atlantique, Réseau et Duplex.
* Apple : pour ses ordinateurs personnels, d'abord le Lisa, puis les premiers Macintosh (Macintosh 128K, Mac 512K, Mac Plus, Mac SE et Classic).
* Arianespace: pour le calculateur de bord de la fusée Ariane 5.
* Atari : dans sa gamme d'ordinateurs personnels Atari ST ainsi que pour la console Jaguar.
* Commodore International : Dans sa gamme d'ordinateurs personnels Amiga (Amiga 1000, Amiga 500, Amiga 2000, Amiga 3000, Amiga 500+, Amiga 600, CDTV).
* Foenix Retro Systems : pour ses ordinateurs personnels A2560U.
* Sega : pour ses consoles de jeux vidéo Mega Drive, Mega-CD, Saturn et Nomad ainsi que ses bornes d'arcade à compter de 1984 jusque dans les années 1990 (ex : Hang-On).
* Silicon Graphics : pour ses premiers ordinateurs, prévus pour être utilisés comme terminaux IRIS 1000 et IRIS 1200.
* Sinclair : Pour son ordinateur « professionnel » Sinclair QL Il est équipé d'un processeur 68008, version 8/16/32 bits du 68000, à 7,5 MHz. Il arrive après le Lisa mais avant le Macintosh.
* Smaky 100, ordinateur Suisse issu de l'EPFL.
* SNK : pour sa console de jeux vidéo Neo-Geo AES et pour son système d'arcade Neo-Geo MVS.
* Sun Microsystems : pour ses premières stations de travail Sun-1 et Sun-100.
* Sharp : pour sa gamme d'ordinateurs Sharp X68000.
* Texas Instruments : pour les calculatrices TI-89, TI-89 Titanium, TI-92, TI-92 Plus et TI Voyage 200.
* MA Lighting : pour toute la gamme LightCommander.