Motorola 68000

Motorola 68000
Motorola MC68000 im 64-poligen DIP
Ein Motorola MC68000 im CLCC-Gehäuse.
Ein MC68000 von Hitachi

Der Motorola 68000 ist ein 1979 eingeführter CISC-Prozessor aus der 68000er-Familie von Motorola. Er besitzt intern 32-Bit-Register, einen mit 32 Bit adressierten linearen Adressraum, davon 24 Bit extern verfügbar, acht 32-Bit-Datenregister, neun 32-Bit-Adressregister, ein 16-Bit-Statusregister sowie einen 16-Bit-Datenbus. Eine Variante ist der Motorola 68008, bei dem der Datenbus auf 8 Bit sowie der Adressbus auf 20 Bit reduziert sind. Als verbesserte Version kam der Motorola 68010 auf den Markt, der um Fehler bereinigt wurde und verbesserte Unterstützung von virtuellem Speicher bietet. Ein 68010 mit erweitertem Adressbus von 31 Bit wurde als Motorola 68012 angeboten. Später folgten noch der 68020, 68030, 68040 und 68060.

Die Bezeichnung 68000 kommt laut einer modernen Legende von der Anzahl Transistoren, die der Prozessor besitzt. Tatsächlich ist es jedoch die logische Fortsetzung der Typbezeichnung der älteren 8-Bit-Motorola-Prozessorfamilie Motorola 6800. Die Architektur der 68000-Familie basiert auf Mainframes, wie z. B. IBM360 sowie der LSI11/PDP11 von Digital Equipment, aber mit einem linearen Adressbereich, auf den ohne Verfahren wie Multiplexing, Segmentierung oder Paging direkt zugegriffen werden kann.

Der 68000er (auch 68k genannt) mit 8 MHz Taktfrequenz kam im 64-poligen DIL-Gehäuse (siehe Bild) auf den Markt. Mit dem Übergang zu höheren Taktraten wurden dann ab 16 MHz nur noch 68-polige PLCC-Gehäuse verwendet.

Inhaltsverzeichnis

Architektur und Befehlssatz

Die Prozessoren der 68000-Familie zeichnen sich durch die große Anzahl der Register und einen weitgehend orthogonalen Befehlssatz aus, d. h. fast alle Maschinenbefehle lassen sich mit allen Adressierungsarten verwenden. Dieser orthogonale Befehlssatz ist folgendermaßen aufgebaut:

BEFEHL.s <ea1>, <ea2>

Die 68000-Familie ist eine sogenannte Zwei-Adress-Maschine, wobei bei den meisten Befehlen eine variable Datenbreite mit .s = {B,W,L} verwendet werden kann (entspricht 8, 16 oder 32 Bit) und für die beiden Quell- und Ziel-Operanden <ea1> bzw. <ea2> eine der 68000-Adressierungsarten eingesetzt werden kann:

Schreibweise Beschreibung Beispiel
Dn Datenregister direkt CLR.B D0
An Adressregister direkt MOVEA.W A0,A1
(An) Adressregister indirekt CLR.B (A0)
(An)+ Adressregister indirekt mit Postinkrement CLR.B (A0)+
-(An) Adressregister indirekt mit Predekrement CLR.B -(A0)
d16(An) Adressregister indirekt mit 16 Bit Offset CLR.B 255(A0)
d8(An,Ri.s) Adressreg. ind. mit 8 Bit Offset und Indexregister CLR.B $44(A0,D0.L)
d16(PC) PC-relativ mit 16 Bit Offset CLR.B 22(PC)
d8(PC,Ri.s) PC relativ mit 8 Bit Offset und Indexreg. CLR.B 10(PC,A1.W)
#xxxxxxxx Konstante (Immediate) MOVEQ.L #15,D0
$xxxx Speicherdirekt mit 16-Bit-Adresse (Absolute Short) CLR.B $8000
$xxxxxxxx Speicherdirekt mit 32-Bit-Adresse (Absolute Long) CLR.B $11008000

oder die komplexen MC68020/30/40/60-Adressierungsarten:

Schreibweise Beschreibung Beispiel
(dis1,An,Ri.s*scl) Adressreg. indirekt mit 16-/32-Bit Offset MOVE.B ($12345678,A1,A2.L*2),D0
([dis1,An],Ri.s*scl,dis2) Doppelt indirekt mit Post-Index MOVE.W ([5,A2],D0.W,$23456),D1
([dis1,An,Ri.s*scl],dis2) Doppelt indirekt mit Pre-Index MOVE.W ([5,A2,D0.W],$23456),D1
(dis1,PC,Ri.s*scl) PC-indirekt mit 16- oder 32-Bit Offset JSR (WEITER,PC)
([dis1,PC],Ri.s*scl,dis2) PC-relativ,doppelt ind m. Post-Index JSR ([SPRUNG,PC],D1,2)
([dis1,PC,Ri.s*scl],dis2) PC-relativ,doppelt ind. m. Pre-Index MOVE.L ([PARAMETER,PC,D1.W],4),D1

Der 68000 hat nur eine 16-Bit-ALU und auch einen 16-Bit-Befehlssatz, der aber sowohl mit 8-, 16- als auch 32-Bit-Datentypen umgehen kann (32-Bit-Architektur). Der MC68020/030/040/060 dagegen hat eine 32-Bit-ALU.

Beispiel für ein typisches M68000 Kommando:

JSR <ea> (Jump to subroutine)
Befehlsformat 0100 1110 10mm mrrr

Das Kommando (Opcode) ist 16 Bit breit. Drei Bits (m) werden für den Adressierungsmodus verwendet, drei weitere Bits für das benutzte (r) Register bzw. eine Distanzadresse (displacement).

0100 1110 1011 1010 wird so zu JSR (d16,PC). Da hier die PC-relative Adressierung mit Distanzadresse (displacement) zur Anwendung kommt, wird das folgende Wort als vorzeichenbehaftete relative Adresse (displacement) verwendet. Andere Kommandos wie MOVEQ #n,Dx sind sogar vollständig in 16 Bit kodiert.

Motorola MC68008 im PLCC-Gehäuse.
Motorola MC68008.

Die Fähigkeit des 68000, bei fast allen Kommandos auch 32 Bit breite Adressen und Daten anzugeben (die dann natürlich bei einem 16-Bit-Bus in mehreren Zyklen gelesen werden mussten), vereinfachte die Softwareentwicklung ungemein, da es sich quasi um eine 32-Bit-Architektur handelte.

Es ergeben sich nicht wie z. B. beim Intel 8086 Probleme, Datensätze über 64 kB Größe zu adressieren. Wegen der 16-Bit-ALU und des 16-Bit-Datenbusses wird der 68000 oft 16-Bit-Prozessor genannt, er führt jedoch klaglos 32-Bit-Software aus. Wegen der 16-Bit-ALU kostet z. B. eine 32-Bit-Addition die doppelte Zeit. Der Schaltkreis zur Generierung von Adressen hat jedoch volle 32 Bit, so dass z. B. das Durchsuchen eines Textes mit 8 Bit breiten Zeichen nicht langsamer ist, als von einem reinen 16-Bitter zu erwarten wäre. Zudem kann der Text länger als 64 kB sein, ohne Modifikation des Programms. 68000-Software ist 32-Bit-Software.

Der Inhalt der oberen 8 Bit eines Adressregisters wird vom 68000 beim Speicherzugriff ignoriert. Dadurch ist es möglich, diese Bits frei zu nutzen, beispielsweise für Meta-Informationen zu einem Zeiger (pointer). Bei späteren Prozessor-Generationen aus der 68000-Familie mit 32 Bit externem Adressbus führt dies offensichtlich zu Problemen. Da diese Art der Programmierung aber auf den frühen Macintosh-Rechnern sehr verbreitet war, hatten spätere Macintosh-Versionen mit 68020-Prozessor ohne Memory Management Unit (MMU) einen speziellen Baustein, genannt Address Management Unit (AMU), anstelle der MMU, der die oberen 8 Bit von Adressen optional ausmaskierte, um alte Software in einem 24-Bit-Kompatibilitätsmodus verwenden zu können. Als Prozessor mit Nanocode und Microcode ist der 68000 gewissermaßen auf Hardwareebene durch den Hersteller programmierbar. Das führte zu so interessanten Varianten wie dem 68000-360, der direkt auf dem Chip eine abgespeckte Fassung des IBM-System/360-Befehlssatzes ausführen konnte und für ein kleines 360-Modell von IBM benutzt wurde.

Außerdem ermöglichte dies einen einfachen Weg, um Varianten des Chips zu erzeugen. Die erste davon war der 68008, bei dem nur der Nanocode so verändert wurde, dass der Datenbus nur noch mit 8 Bit Breite angesprochen wurde. Eine weitere Variante war der 68010, der wesentlich besser mit virtuellem Speicher betrieben werden konnte und zudem noch einige Detailverbesserungen aufwies. Ein Ableger des 68010 war der nicht lange verfügbare 68012, der mehr Adressleitungen für größere Speicher zur Verfügung stellte. Später wurden Varianten meist direkt von der ursprünglichen CPU abgeleitet, wie z. B. der 680EC20 vom 68020 (24 statt 32 Adressleitungen) – oder der 68EC040 und der 680LC40 vom 68040 (es fehlten dann entweder die FPU oder die MMU). Ab dem 68020 wurden Schritt für Schritt auch erste 64-Bit-Befehle integriert (für einfache Multiplikationen).

Über drei binär kodierte Interruptleitungen können Interrupts mit sieben unterschiedlichen Prioritäten ausgelöst werden, davon ist die höchste nicht maskierbar. Zusammen mit entsprechenden Peripheriebausteinen sind bis zu 256 vektorisierte Interrupts möglich.

Der Prozessor enthält ferner Steuerleitungen, die signalisieren, ob als nächstes ein Befehl oder Daten geholt werden. Dies ermöglicht den Aufbau von Rechnern mit getrenntem Speicher für Programme und Daten (Harvard-Architektur).

Verwendung

Bereits zu Beginn der 1980er Jahre fand die CPU, dank optionaler MMU, auch ihren Weg in die Unix-Welt. Sie wurde in hohen Stückzahlen in die Workstations von Apollo Computer (Apollo), HP (HP 9000-300) und Sun (Sun-1) oder auch von Digital Equipment Corporation (Vax 100) und SGI verbaut.

Mitte der 1980er Jahre folgten dann Personal- und Home-Computer, der erste war Lisa von Apple, die schon bald vom Macintosh (Mac) abgelöst wurde. Er wurde auch im Commodore Amiga und Amiga 2500 UX, im Atari ST und Sinclair QL (68008) sowie in Spielkonsolen wie dem Sega Mega Drive oder dem Neo Geo eingesetzt. Auch in Schachcomputern (wie z. B. im Fidelity Mach IV als 68020 mit 20 MHz und Mephisto Amsterdam als 68000 mit 12 MHz) wurde der Prozessor verwendet. In Taschenrechnern von Texas Instruments wie dem TI-89 (Titanium), TI-92 (Plus) und Voyage 200 findet er heute noch Anwendung. Im Airbus A320 steuert er den Elevator Aileron Computer (ELAC), der Teil des Flugsteuerungs-Systems ist.

Das Haupteinsatzgebiet des Prozessors waren und sind Steuerungsrechner in der Industrie, meist mit einem Echtzeitbetriebssystem wie OS-9 oder pSOS, Nucleus oder Linux68k, wobei Letzteres kein Echtzeitbetriebssystem im eigentlichen Sinne ist. Dieser Einsatz und die große Verbreitung waren nicht zuletzt möglich dank der guten Interruptarchitektur und in der Kombination mit dem VMEbus. In hoher Stückzahl fand sich dieser Prozessor auch in Laserdruckern. Zusätzlich wurde er auf LAN-Karten (Schneider und Koch) und auf SCSI-Controllern (DPD), aber auch in Modems (Zyxel) verwendet. Auch die Automobilindustrie - vornehmlich (Motor-)Steuergeräte - bevorzugte bis zum Erscheinen des PowerPC den Einsatz der MC683xx-Controller-Familie.

Die Hochleistungsmodelle der 68000-Familie sind der 68040 und 68060 (bis 66 bzw. 75 MHz). Da Apple nach dem 68040 auf PowerPC-CPUs wechselte, wurde der 68060 nur noch in Erweiterungskarten für den Amiga und den Atari Falcon 030 (CT60) sowie für spezielle Anwendungen (z. B. in eingebetteten Systemen wie in BMW-Modellen der 1990er Jahre oder hochleistungsfähigen Schachcomputern) verwendet.

Mittlerweile ist der eigentliche 68000 praktisch verschwunden, wird aber noch in Wahlcomputern der Firma Nedap eingesetzt. Motorola fertigt eine Vielzahl von Mikrocontrollern, die vom 68000 abstammen. Die Motorola-Coldfire-Familie (auf 68k basierende Entwicklung) ist weiterhin im Bereich eingebetteter Systeme sehr beliebt und geht bis zum V5 mit 400 MHz, der in HP-Laserdruckern Verwendung findet. Die DragonBall-Ableger treiben noch immer die Einsteigermodelle der Palm PDAs an und sind in Handys verbreitet.

Ein prominentes Beispiel für ein Coldfire-basiertes (Amiga-inspiriertes) System war die Metabox-1000-SetTopBox, die allerdings nie auf den Markt gekommen ist.

Weitere Komponenten

Die Prozessoren 68020, 68030, 68040 und 68060 hatten bereits Funktionen integriert, die heutzutage als „Novum“ z. B. bei ARM herausgestellt werden. Dazu gehören:

Andere wesentliche Errungenschaften beziehen sich auf die Embedded Controller (Single-Chip) der M68000-Familie, der M683xx-Familie. Hierzu gehören z. B. der MC68332, MC68360, MC68376. Diese Familie waren wegweisend mit folgenden Funktionen:

  • BDM (Background Mode Debug), heute Nexus
  • Dual Core (wobei die zweite CPU als intelligenter Peripheriecontroller eingesetzt wurde, z. B. beim
MC68332 als TPU – Timer Processing Unit oder beim
MC68360 als CPM – Communications-Processor-Module bzw. QUICC (Quad Integrated Communication Controller). Dieser Controller erlaubte das Verarbeiten aller möglichen seriellen Protokolle. Dies ist der Vorgänger vom bekannten Power QUICC der Power Architecture Familie.

Literatur

  • C. Vieillefond: Programmierung des 68000, Sybex Verlag, 1986, ISBN 3-88745-060-4.
  • Werner Hilf, Anton Nausch: M68000 Familie Teil 1 Grundlagen und Architektur, te-wi (1984), ISBN 3-921-80316-0.
  • Werner Hilf, Anton Nausch: M68000 Familie Teil 2 Anwendung und Bausteine, te-wi (1984), ISBN 3-921-80330-6.
  • Werner Hilf: M68000-Grundlagen Band 1, Architektur, Hardware, Befehlssatz, MC68020/30/40, MC68332, Franzis, München 1994, ISBN 3-7723-6333-4.
  • Werner Hilf: M68000 Anwendungen Band 2, Anwender- und Systemprogrammierung, Coprozessoren, Interfacetechnik, Software auf Diskette, MC68020/30/40, MC68332, Franzis, München 1994, ISBN 3-7723-6303-2.
  • Werner Hilf: Mikroprozessoren für 32-Bit-Systeme, Architektur, Hardware, Befehlssatz, Markt&Technik, ISBN 3-89090922-1.

Weblinks

 Commons: Motorola 68000 – Sammlung von Bildern, Videos und Audiodateien

Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Motorola 68000 — Microprocesador Producción 1979 Fabricante(s) Motorola …   Wikipedia Español

  • Motorola 68000 — This article is about the CPU. For the computer, see Sharp X68000. Motorola 68000 Designer Motorola Bits 16/32 bit Introduced 1979 Design CISC Endianness Big …   Wikipedia

  • Motorola 68000 — Préversion du processeur Motorola XC68000L 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… …   Wikipédia en Français

  • Motorola 68000 — El Motorola 68000 (MC68000), que debe su nombre al número transistores de los que se compone, es un microprocesador desarrollado por Motorola y utilizado, entre otros, en los Commodore Amiga, los Atari ST y los primeros Macintosh. El MC68000 fue… …   Enciclopedia Universal

  • Motorola 68000 family — Motorola 68000 Designer Motorola Bits 16/32 bit Introduced 1979 Design CISC Endianness Big Registers General p …   Wikipedia

  • Motorola 68000 — …   Википедия

  • Famille Motorola 68000 — Un processeur Motorola 68000 En informatique et électronique, on appelle informellement Motorola 680x0 ou M68k ou 68k, la famille de microprocesseurs CISC compatibles avec l architecture du Motorola 68000 : les principaux membres étant les… …   Wikipédia en Français

  • 68000 — Motorola MC68000 im 64 poligen DIP Ein MC68000, hier von Thomson Semiconductor …   Deutsch Wikipedia

  • Motorola 68008 — Motorola MC68000 im 64 poligen DIP Ein MC68000, hier von Thomson Semiconductor …   Deutsch Wikipedia

  • Motorola 68012 — Motorola MC68000 im 64 poligen DIP Ein MC68000, hier von Thomson Semiconductor …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”