Zum Inhalt springen

„Motorola 68000“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Thijs!bot (Diskussion | Beiträge)
K Bot: Ändere: nl:Motorola 68000
K Formulierung; Links
 
(165 dazwischenliegende Versionen von mehr als 100 Benutzern, die nicht angezeigt werden)
Zeile 1: Zeile 1:
[[Datei:Motorola MC68000P8 01.jpg|mini|Motorola MC68000 im 64-poligen [[Dual in-line package|DIP]]]]
Der '''Motorola 68000''' ist ein [[Complex Instruction Set Computing|CISC]]-[[Mikroprozessor|Prozessor]] aus der [[Motorola 68000er-Familie|68000er-Familie]] von [[Motorola]]. Er besitzt intern 32-Bit-[[Register (Computer)|Register]], einen mit [[32 Bit]] adressierten linearen Adressraum, davon 24 Bit extern verfügbar, acht 32-Bit-Datenregister, acht 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 [[Motorola 68010|68010]]''' auf den Markt, der um Fehler bereinigt wurde und verbesserte Unterstützung von [[Virtueller Speicher|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 [[Motorola 68060|68060]].
[[Bild:MC68000.jpg|thumb|300px|Ein MC68000, hier von ''[[Thomson (Unternehmen)|Thomson]] Semiconductor'']]
[[Datei:KL Motorola MC68000 CLCC.jpg|mini|Ein Motorola MC68000 im CLCC-Gehäuse.]]
[[Datei:KL Hitachi HD68000.jpg|mini|Ein MC68000 von [[Hitachi (Unternehmen)|Hitachi]] ]]
[[Datei:Motorola 68000 die.JPG|mini|Prozessorkern ([[Die (Halbleitertechnik)|Die]]) eines Motorola 68000 (MC68000L12)]]


Der '''Motorola 68000''' ist ein 1979 eingeführter [[Complex Instruction Set Computer|CISC]]-[[Mikroprozessor|Prozessor]] aus der [[Motorola-68000er-Familie|68000er-Familie]] von [[Motorola]] (später [[Freescale]], heute [[NXP Semiconductors|NXP]]). Er besitzt intern 32-Bit-[[Register (Prozessor)|Register]], einen mit [[32-Bit-Architektur|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.
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.


Eine Variante ist der ''Motorola 68008'', bei dem der Datenbus auf 8 Bit sowie der Adressbus auf 20 Bit in der DIP-Version (bzw. 22 Bit in der PLCC-Version) reduziert sind. Als verbesserte Version kam der ''[[Motorola 68010]]'' auf den Markt, der um Fehler bereinigt wurde und verbesserte Unterstützung von [[Virtuelle Speicherverwaltung|virtuellem Speicher]] bietet. Ein 68010 mit erweitertem Adressbus von 31 Bit wurde als ''Motorola 68012'' angeboten. Später folgten noch der [[Motorola 68020|68020]], [[Motorola 68030|68030]], [[Motorola 68040|68040]] und [[Motorola 68060|68060]].
Der 68000 hat nur eine 16 Bit [[Arithmetisch-logische Einheit|ALU]] und auch einen 16 Bit Instruktionssatz, der aber sowohl mit 8-, 16- als auch 32-bit-Datentypen umgehen kann (32bit Architektur).


Die Bezeichnung 68000 stammt laut einer [[Moderne Legende|modernen Legende]] von der Anzahl [[Transistor]]en, 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 [[System/360|IBM System/360]] sowie der [[LSI-11]]/[[PDP-11]] von Digital Equipment, aber mit einem linearen Adressbereich, auf den ohne Verfahren wie Multiplexing, [[Segmentierung (Speicherverwaltung)|Segmentierung]] oder [[Paging]] direkt zugegriffen werden kann.
Beispiel für ein typisches M68000 Kommando: "JSR <ea>" Jump to subroutine


Der 68000er (auch 68k genannt) mit 8&nbsp;MHz Taktfrequenz kam im 64-poligen [[Dual in-line package|DIL-Gehäuse]] (siehe Bild) auf den Markt.
Instruction Format: 0100 1110 10mm mrrr


== Architektur und Befehlssatz ==
Das Kommando ist 16 Bit breit. Drei Bits (m) werden für den Adressierungsmode verwendet, drei weitere Bits für das benutzte (r) Register bzw. ein Displacement.
Die Prozessoren der 68000-Familie zeichnen sich durch die große Anzahl der Register und einen weitgehend [[Orthogonaler Befehlssatz|orthogonalen Befehlssatz]] aus, d.&nbsp;h. fast alle Maschinenbefehle lassen sich mit allen Adressierungsarten verwenden. Der Befehlssatz ist folgendermaßen aufgebaut:


:BEFEHL.s <ea1>, <ea2>
"0100 1110 1011 1010" wird so zu "JSR (d16,PC)". Da hier die PC relative Adressierung mit Displacement zur Anwendung kommt, wird das folgende Wort als vorzeichenbehaftetes Displacement verwendet. Andere Kommandos, wie "MOVEQ #n,Dx" sind sogar vollständig in 16 Bit kodiert.


Die Prozessoren der 68000-Familie sind sogenannte Zwei-Adress-Maschinen, 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:
Die Fähigkeit des M68000 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.


{| class="wikitable"
Es ergeben sich nicht wie z.B. beim [[8086]] Probleme, Datensätze über 64&nbsp;Kib Größe zu adressieren. Wegen der 16&nbsp;Bit ALU und des 16&nbsp;Bit Datenbuses wird der 68000 oft 16&nbsp;Bit Prozessor genannt, er führt jedoch klaglos 32&nbsp;Bit Software aus. Wegen der 16&nbsp;Bit ALU kostet z.B. eine 32&nbsp;Bit Addition die doppelte Zeit. Der Schaltkreis zur Generierung von Adressen hat jedoch volle 32&nbsp;Bit, sodass z.B. das Durchsuchen eines Textes mit 8&nbsp;Bit breiten Zeichen nicht langsamer ist, als von einem "reinen" 16&nbsp;Bitter zu erwarten wäre. Zudem kann der Text länger als 64 Kib sein, ohne Modifikation des Programms. 68000-Software ist 32&nbsp;Bit Software.
|- class="hintergrundfarbe5"
! Schreibweise !! Beschreibung !! Beispiel
|-
| Dn || Datenregister direkt || CLR.B&nbsp; D0
|-
| An || Adressregister direkt || MOVEA.W&nbsp; A0,A1
|-
| (An) || Adressregister indirekt || CLR.B&nbsp; (A0)
|-
| (An)'''+''' || Adressregister indirekt mit Postinkrement || CLR.B&nbsp; (A0)'''+'''
|-
| '''−'''(An) || Adressregister indirekt mit Predekrement || CLR.B&nbsp; '''−'''(A0)
|-
| d16(An)|| Adressregister indirekt mit 16 Bit Offset || CLR.B&nbsp; 255(A0)
|-
| d8(An,Ri.s) || Adressreg. ind. mit 8 Bit Offset und Indexregister || CLR.B&nbsp; $44(A0,D0.L)
|-
| d16(PC) || PC-relativ mit 16 Bit Offset || CLR.B&nbsp; 22(PC)
|-
| d8(PC,Ri.s) || PC relativ mit 8 Bit Offset und Indexreg. || CLR.B&nbsp; 10(PC,A1.W)
|-
| #xxxxxxxx || Konstante (Immediate) || MOVEQ&nbsp; #15,D0
|-
| $xxxx || Speicherdirekt mit 16-Bit-Adresse (Absolute Short) || CLR.B&nbsp; $8000
|-
| $xxxxxxxx || Speicherdirekt mit 32-Bit-Adresse (Absolute Long) || CLR.B&nbsp; $11008000
|}


oder die komplexen MC68020/30/40/60-Adressierungsarten:
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 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), an Stelle der MMU, der die oberen 8 Bit von Adressen optional ausmaskierte, um alte Software in einem 24-Bit-[[Kompatibilitätsmodus]] verwenden zu können.


{| class="wikitable"
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 360]] Befehlssatzes ausführen konnte und für ein kleines 360 Modell von IBM benutzt wurde. Über die Workstations von [[Apollo-Domain]] und [[Sun]] und den [[Amiga]] 2500 UX fand die CPU auch ihren Weg in die [[Unix]]-Welt – dank optionaler MMU.
|- class="hintergrundfarbe5"
! Schreibweise !! Beschreibung !! Beispiel
|-
| (dis1,An,Ri.s*scl) ||Adressreg. indirekt mit 16-/32-Bit Offset || MOVE.B&nbsp; ($12345678,A1,A2.L*2),D0
|-
| ([dis1,An],Ri.s*scl,dis2) ||Doppelt indirekt mit Post-Index || MOVE.W&nbsp; ([5,A2],D0.W,$23456),D1
|-
| ([dis1,An,Ri.s*scl],dis2) ||Doppelt indirekt mit Pre-Index || MOVE.W&nbsp; ([5,A2,D0.W],$23456),D1
|-
| (dis1,PC,Ri.s*scl) ||PC-indirekt mit 16- oder 32-Bit Offset || JSR&nbsp; (WEITER,PC)
|-
| ([dis1,PC],Ri.s*scl,dis2) ||PC-relativ,doppelt ind m. Post-Index || JSR&nbsp; ([SPRUNG,PC],D1,2)
|-
| ([dis1,PC,Ri.s*scl],dis2) ||PC-relativ,doppelt ind. m. Pre-Index || MOVE.L&nbsp; ([PARAMETER,PC,D1.W],4),D1
|}


Der 68000 hat nur eine 16-Bit-[[Arithmetisch-logische Einheit|ALU]] und auch einen 16-Bit-Befehlssatz, der aber sowohl mit 8-, 16- als auch mit 32-Bit-Datentypen umgehen kann (32-Bit-Architektur). Die Typen MC68020/030/040/060 dagegen haben eine 32-Bit-ALU.
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 vom 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 [[68040]] wurden Schritt für Schritt auch erste [[64-Bit]]-Befehle integriert (für einfache Multiplikationen).


Beispiel für ein typisches M68000-Kommando:
Über drei binär codierte Interruptleitungen können [[Interrupt|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 [[Interrupt]]s möglich.


{| class="wikitable"
Der Prozesser 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]])
| 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 ({{lang|en|displacement}}).
Die Bezeichnung 68000 kommt laut einer [[moderne Legende|modernen Legende]] von der Anzahl [[Transistor]]en, die der Prozessor besitzt. Tatsächlich ist es jedoch die logische Fortsetzung der Typbezeichnung der älteren 8 Bit Motorola Prozessorfamilie [[Motorola 6800]].


''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.
Er wurde unter anderem eingesetzt in Computern von [[Apple Computer|Apple]] ([[Apple_Lisa|Lisa]] und [[Macintosh]]), im [[Commodore]] [[Amiga]], [[Atari ST]] und [[Sinclair QL]] (68008) sowie in [[Spielkonsole]]n wie dem [[Sega Mega Drive]] oder dem [[NeoGeo]]. Auch in [[Taschenrechner]]n von [[Texas Instruments]] wie dem [[TI-89]], [[TI-92|TI-92 (Plus)]] und Voyage 200 oder [[Schachcomputer]]n (wie z.B. im Fidelity Mach IV als 68020 mit 20 MHz und [[Mephisto]] Amsterdam als 68000 mit 12 MHz) wurde der Prozessor verwendet. Im Airbus [[A320]] steuert er den Elevator Aileron Computer (ELAC), der Teil des [[Flugzeug#Flugsteuerung|Flugsteuerungs]]-Systems ist.


Die Fähigkeit des 68000, bei fast allen Kommandos auch 32 Bit breite Adressen und Daten zu verstehen (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.
Das Haupteinsatzgebiet des Prozessors waren und sind, dank der exzellenten Interruptarchitektur, Steuerungsrechner in der Industrie, meist mit einem [[Echtzeitbetriebssystem]] wie [[OS-9]], [[Nucleus (Betriebssystem)|Nucleus]] oder [[Linux68k]].


Im Gegensatz z.&nbsp;B. zum [[Intel 8086]] bereitet es keine Probleme, Datensätze über 64&nbsp;[[Kilobyte|KiB]] 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.&nbsp;B. eine 32-Bit-Addition die doppelte Zeit. Der Schaltungsblock zur Generierung von Adressen hat jedoch volle 32&nbsp;Bit, so dass z.&nbsp;B. das Durchsuchen eines Textes mit 8&nbsp;Bit breiten Zeichen nicht langsamer ist, als es von einem ''reinen'' 16-Bitter zu erwarten wäre. Zudem kann der Text ohne Modifikation des Programms länger als 64&nbsp;KiB sein. 68000-Software ist 32-Bit-Software.
Die Hochleistungsmodelle der 68000-Familie sind der 68040 und 68060 (bis 66 bzw. 75 MHz). Da Apple nach dem 68040 auf [[PowerPC]]-CPUs gewechselt ist, wurde der 68060 nur noch in Erweiterungskarten für den [[Amiga]] und für spezielle Anwendungen (z.B. in [[eingebettetes System|eingebetteten Systemen]] wie in [[Bayerische Motoren Werke AG|BMW]]-Modellen der [[1990er]] Jahre oder hochleistungsfähigen [[Schachcomputer]]n) verwendet. Mit dem Wechsel auch von [[Amiga]] auf [[PowerPC]] war dann endgültig das Ende erreicht – die strategischen Interessen Motorolas lagen bei [[Apple]] und [[IBM]].


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 Prozessorgenerationen aus der 68000-Familie mit 32 Bit externem Adressbus führt das 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.
Mittlerweile ist der eigentliche 68000 praktisch verschwunden. Motorola fertigt aber eine Vielzahl von Microcontrollern, die vom 68000 abstammen. Die [[Motorola Coldfire ]]-Familie (abgespeckter 68020 bzw. 68040) ist weiterhin im Bereich eingebetteter Systeme sehr beliebt und die DragonBall treiben noch immer die Einsteigermodelle der [[Palm]] [[Personal_Digital_Assistant|PDA]]s an und sind in Handys weit verbreitet.
Als Prozessor mit [[Nanocode]] und [[Mikrocode]] ist der 68000 gewissermaßen auf Hardwareebene durch den Hersteller programmierbar. In der [[PC XT/370]]-Steckkarte, die ein [[System/370]] auf einem [[IBM Personal Computer XT|PC/XT]] ermöglichte, wurde ein 68000 mit modifiziertem Mikrocode eingesetzt, um einen Teil der System/370-Instruktionen direkt auszuführen. Die restlichen Instruktionen wurden auf einem weiteren 68000 emuliert oder auf dem als [[Gleitkommaeinheit|FPU]] eingesetzten modifizierten [[Intel 8087|8087]] ausgeführt.<ref>{{Cite web |url=https://www.researchgate.net/profile/David-Livingston-7/publication/224102395_System370_capability_in_a_desktop_computer/links/5482102b0cf25dbd59ea92c1/System-370-capability-in-a-desktop-computer.pdf |title=System/370 capability in a desktop computer |date= |accessdate=2022-04-16 |last=Kozuh |first=F.T. |publisher=IBM Systems Journal |language=en}}</ref>


Das längste Kommando des 68k ist 22 Byte lang und ist ein MOVE-Kommando, welches Daten von einer Speicherstelle in eine andere kopiert, wobei beide Speicherstellen doppelt-indirekt mit 32 bit Displacements adressiert werden.
Ein prominentes Beispiel für ein Coldfire-basiertes (und noch dazu [[Amiga]]-inspiriertes) System war die [[Phoenix (Metabox)|Phoenix/Metabox 1000]]-SetTopBox der Firma [[Metabox]], die allerdings nie auf den Markt gekommen ist.

=== Varianten ===
Die erste Variante war der 68008, bei dem der Nanocode derart verändert wurde, dass der Datenbus nur noch mit 8 Bit Breite angesprochen wurde. Eine weitere Variante war der [[Motorola 68010|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 (bis zu 2&nbsp;GiB) zur Verfügung stellte. Später wurden Varianten meist direkt von der ursprünglichen CPU abgeleitet, wie z.&nbsp;B. der 68EC020 vom [[Motorola 68020|68020]] (24 statt 32 Adressleitungen) – oder der 68EC040 und der 68LC040 vom [[Motorola 68040|68040]] (es fehlten dann entweder die [[Gleitkommaeinheit|FPU]] oder die [[Memory Management Unit|MMU]]). Ab dem 68020 wurden Schritt für Schritt auch erste [[64-Bit-Architektur|64-Bit]]-Befehle integriert (für einfache Multiplikationen).

Über drei binär kodierte Interruptleitungen können [[Interrupt]]s 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.

Ferner enthält der Prozessor Steuerleitungen, die signalisieren, ob als Nächstes ein Programmbefehl oder ein Datum geholt wird. Das ermöglicht zwar den Aufbau von Rechnern mit getrenntem Speicher für Programme und Daten; eine [[Harvard-Architektur]] ist aber nicht möglich, da die dazu notwendigen getrennten Busse für Programme und Daten hier nicht vorhanden sind.
<gallery>
KL Motorola MC68008 PLCC.jpg|Motorola MC68008 im PLCC-Gehäuse
KL Motorola MC68008.jpg|Motorola MC68008
</gallery>

=== Register ===
[[Datei:User Registermodell 68000-page-001.jpg|mini|User Registermodell 68000-Familie]]
[[Datei:Supervisor Modell 68000-page-001.jpg|mini|Supervisor-Registermodell 68000-Familie]]

Das Register-Programmier-Modell kann man in User- und Supervisor-Register einteilen gemäß den beiden Modi, welche die 68000-Familie aufweist. Diese User-/Supervisor-Modi bilden zusammen mit den Exceptions (Ausnahmebehandlungen) einen Schutzmechanismus und schützen das System vor Abstürzen. Angezeigt wird der Modus im S-Bit des Statusregisters SR. Im Supervisor-Modus darf man alle, im User-Modus nur bestimmte Ressourcen der CPU verwenden. Daraus erklärt sich auch die Verwendung des Programmier-Modells:

* User Register-Modell: wird vom Anwender-Programmierer bzw. von einem Compiler genutzt
* Supervisor Register-Modell: wird vom System-Programmierer (Betriebssystem) genutzt

In einem Echtzeit Multi-Tasksystem läuft üblicherweise der Betriebssystem-Kern im Supervisor-Modus und die Anwender-Tasks bzw. Programme im User-Modus. Dadurch ist der Kern von den Anwender-Tasks isoliert. Dieser Schutz kann beispielsweise durch den Einsatz einer MMU zusätzlich auf die Hardware ausgeweitet werden, da die CPU den Zustand des S-Bits im Statusregister SR auch hardwaremäßig nach außen gibt.

== Verwendung ==
Bereits zu Beginn der 1980er Jahre fand die CPU, dank optionaler [[Memory Management Unit|MMU]], ihren Weg in die [[Unix]]-Welt. Sie wurde in hohen Stückzahlen in die [[Workstation]]s von [[Apollo Computer]] (Apollo), [[Hewlett-Packard|HP]] ([[HP 9000|HP 9000-300]]) und [[Sun Microsystems|Sun]] ([[Sun-1]]) oder auch von [[Digital Equipment Corporation]] (Vax 100) und [[Silicon Graphics|SGI]] verbaut.

Mitte der 1980er Jahre folgten dann Personal- und Home-Computer, der erste war [[Apple Lisa|Lisa]] von [[Apple]], die schon bald vom [[Macintosh]] (Mac) abgelöst wurde. Er wurde auch im [[Commodore International|Commodore]] [[Amiga]], im [[Atari ST]] und [[Sinclair QL]] (68008) verbaut.

Ende der 1980er und Anfang der 1990er fand er sich dann in [[Spielkonsole]]n wie dem [[Sega Mega Drive]] oder dem [[Neo Geo]]. Auch in [[Schachcomputer]]n (wie z.&nbsp;B. im Fidelity Mach IV als 68020 mit 20&nbsp;MHz und [[Mephisto Amsterdam]] als 68000 mit 12&nbsp;MHz) wurde der Prozessor verwendet.

In [[Taschenrechner]]n von [[Texas Instruments]] wie dem [[TI-89|TI-89 (Titanium)]], [[TI-92|TI-92 (Plus)]] und [[Voyage 200]] findet er heute noch Anwendung. Im [[Airbus-A320-Familie|Airbus A320]] findet er im Elevator Aileron Computer (ELAC) Verwendung, der Teil des [[Flugsteuerung]]s-Systems ist. Des Weiteren wird er dort im Display Management Computer (DMC) eingesetzt, einem Teil des [[Electronic Flight Instrument System|Elektronischen-Informations-Systems]] (EFIS).

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

Die Hochleistungsmodelle der [[Motorola-68000er-Familie|68000-Familie]] sind der [[Motorola 68040|68040]] und [[Motorola 68060|68060]] (bis 66 bzw. 75&nbsp;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.&nbsp;B. in [[VMEbus]]-Rechnern, etwa von Motorola, sowie [[Eingebettetes System|eingebetteten Systemen]], wie in [[BMW]]-Modellen der 1990er Jahre oder hochleistungsfähigen [[Schachcomputer]]n) verwendet.

Mittlerweile ist der Ur-68000 weitgehend verschwunden, wird aber noch in [[Wahlcomputer]]n der Firma [[Nedap]] eingesetzt. Motorola fertigt eine Vielzahl von [[Mikrocontroller]]n, die vom 68000 abstammen. Die [[Motorola Coldfire|Motorola-Coldfire]]-Familie (auf 68k basierende Entwicklung) ist weiterhin im Bereich eingebetteter Systeme sehr beliebt und geht bis zum V5 mit 400&nbsp;MHz; diese Variante findet in HP-Laserdruckern Verwendung. Die [[Motorola Dragonball|DragonBall]]-Ableger wurden in den Einsteigermodellen der [[HP Palm|Palm]] [[Personal Digital Assistant|PDAs]] verwendet und sind in einfachen [[Handy]]s verbreitet.

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

Die Firma [[Apollo Computer]] hat auf Basis des C5-FPGA-Boards eine 68080-CPU programmiert, die kompatibel zu 68K-CPUs ist.

== Weitere Komponenten ==
Die Prozessoren [[Motorola 68020|68020]], [[Motorola 68030|68030]], [[Motorola 68040|68040]] und [[Motorola 68060|68060]] hatten bereits Funktionen integriert, die in anderen Prozessorarchitekturen erst erheblich später eingeführt wurden:

* interne [[Harvard-Architektur]]
* Branch Caches / [[Sprungvorhersage|Prediction]]
* [[Barrel-Shifter]]
* [[Pipeline (Prozessor)|Pipelining]] / [[Prefetch]]
* [[Privilegienstufe|User / Supervisor Mode]] (auch [[Protected Mode]] oder Kernel Mode genannt)

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

* [[In-Circuit-Emulator|BDM]] (Background Debug Mode). Daraus ist der Industriestandard JTAG-Debugger entstanden, da der BDM die JTAG-Leitungen verwendete bzw. sich die Leitungen teilte. Unter der IEEE-ISTO 5001-2003 und unter dem Namen Nexus wurde diese zur Standard-Schnittstelle für Embedded Systeme. Sowohl die physikalische Schnittstelle als auch das Protokoll entspricht dem Motorola BDM.
* Dual Core, wobei die zweite CPU als intelligenter Peripheriecontroller eingesetzt wurde, z.&nbsp;B. beim<br /> MC68332 als TPU ([[Time Processing Unit]]) oder beim<br /> MC68360 als CPM ([[Communication Processor Module]]) bzw. [[QUICC]] (Quad Integrated Communication Controller). Dieser Controller erlaubte das Verarbeiten aller möglichen [[Serielle Datenübertragung|seriellen]] Protokolle. Es ist der Vorgänger des bekannten [[Power QUICC]] der [[Power-Architektur|Power-Architecture]]-Familie.


== Literatur ==
== Literatur ==
* C. Vieillefond, ''Programmierung des 68000'', Sybex Verlag 1986, ISBN 3-88745-060-4
* 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-921803-16-0
* Werner Hilf, Anton Nausch: ''M68000 Familie Teil 2 Anwendung und Bausteine'', te-wi (1984), ISBN 3-921803-30-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-89090-922-1


== Weblinks ==
== Weblinks ==
{{Commonscat}}
* [http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MC68000 Produktseite bei Motorola]
{{Commonscat|Motorola 68008}}
* [http://www.cpu-collection.de/?tn=1&l0=cl&l1=68000 68000er Prozessoren: Bilder und Beschreibungen auf cpu-collection.de]
* [https://www.elektronikpraxis.vogel.de/40-jahre-motorola-68000-der-sprung-ins-32-bit-zeitalter-a-864419/ 40 Jahre Motorola 68000 – Der Sprung ins 32-Bit-Zeitalter] Elektronikpraxis
* [http://www.cpu-collection.de/?tn=1&l0=cl&l1=68000 68000er-Prozessoren: Bilder und Beschreibungen auf cpu-collection.de] (englisch)
* [https://www.nxp.com/docs/en/reference-manual/M68000PRM.pdf ''MOTOROLA M68000 FAMILY PROGRAMMER’S REFERENCE MANUAL''. Motorola Inc. 1992] Dokumentation des Herstellers, Beschreibung der Opcodes und Datenformate.
* [https://www.nxp.com/docs/en/reference-manual/MC68000UM.pdf ''M68000 8-/16-/32-Bit Microprocessors User’s Manual''. Motorola Inc. 1993] Dokumentation des Herstellers, Beschreibung der elektrischen Signale.

== Einzelnachweise ==
<references />


{{Navigationsleiste Freescale-Produkte}}
[[Kategorie:Mikroprozessor]]


[[en:Motorola 68000]]
[[Kategorie:Motorola-Prozessor|68000]]
[[es:Motorola 68000]]
[[fi:Motorola 68000]]
[[fr:Motorola 68000]]
[[hu:Motorola 68000]]
[[it:Motorola 68000]]
[[ja:MC68000]]
[[nl:Motorola 68000]]
[[nn:Motorola 68000]]
[[pl:MC68000]]
[[pt:Motorola 68000]]

Aktuelle Version vom 22. Mai 2025, 13:52 Uhr

Motorola MC68000 im 64-poligen DIP
Ein Motorola MC68000 im CLCC-Gehäuse.
Ein MC68000 von Hitachi
Prozessorkern (Die) eines Motorola 68000 (MC68000L12)

Der Motorola 68000 ist ein 1979 eingeführter CISC-Prozessor aus der 68000er-Familie von Motorola (später Freescale, heute NXP). 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 in der DIP-Version (bzw. 22 Bit in der PLCC-Version) 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 stammt 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 IBM System/360 sowie der LSI-11/PDP-11 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.

Architektur und Befehlssatz

[Bearbeiten | Quelltext bearbeiten]

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. Der Befehlssatz ist folgendermaßen aufgebaut:

BEFEHL.s <ea1>, <ea2>

Die Prozessoren der 68000-Familie sind sogenannte Zwei-Adress-Maschinen, 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  #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 mit 32-Bit-Datentypen umgehen kann (32-Bit-Architektur). Die Typen MC68020/030/040/060 dagegen haben 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.

Die Fähigkeit des 68000, bei fast allen Kommandos auch 32 Bit breite Adressen und Daten zu verstehen (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.

Im Gegensatz z. B. zum Intel 8086 bereitet es keine Probleme, Datensätze über 64 KiB 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 Schaltungsblock 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 es von einem reinen 16-Bitter zu erwarten wäre. Zudem kann der Text ohne Modifikation des Programms länger als 64 KiB sein. 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 Prozessorgenerationen aus der 68000-Familie mit 32 Bit externem Adressbus führt das 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 Mikrocode ist der 68000 gewissermaßen auf Hardwareebene durch den Hersteller programmierbar. In der PC XT/370-Steckkarte, die ein System/370 auf einem PC/XT ermöglichte, wurde ein 68000 mit modifiziertem Mikrocode eingesetzt, um einen Teil der System/370-Instruktionen direkt auszuführen. Die restlichen Instruktionen wurden auf einem weiteren 68000 emuliert oder auf dem als FPU eingesetzten modifizierten 8087 ausgeführt.[1]

Das längste Kommando des 68k ist 22 Byte lang und ist ein MOVE-Kommando, welches Daten von einer Speicherstelle in eine andere kopiert, wobei beide Speicherstellen doppelt-indirekt mit 32 bit Displacements adressiert werden.

Die erste Variante war der 68008, bei dem der Nanocode derart 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 (bis zu 2 GiB) zur Verfügung stellte. Später wurden Varianten meist direkt von der ursprünglichen CPU abgeleitet, wie z. B. der 68EC020 vom 68020 (24 statt 32 Adressleitungen) – oder der 68EC040 und der 68LC040 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.

Ferner enthält der Prozessor Steuerleitungen, die signalisieren, ob als Nächstes ein Programmbefehl oder ein Datum geholt wird. Das ermöglicht zwar den Aufbau von Rechnern mit getrenntem Speicher für Programme und Daten; eine Harvard-Architektur ist aber nicht möglich, da die dazu notwendigen getrennten Busse für Programme und Daten hier nicht vorhanden sind.

User Registermodell 68000-Familie
Supervisor-Registermodell 68000-Familie

Das Register-Programmier-Modell kann man in User- und Supervisor-Register einteilen gemäß den beiden Modi, welche die 68000-Familie aufweist. Diese User-/Supervisor-Modi bilden zusammen mit den Exceptions (Ausnahmebehandlungen) einen Schutzmechanismus und schützen das System vor Abstürzen. Angezeigt wird der Modus im S-Bit des Statusregisters SR. Im Supervisor-Modus darf man alle, im User-Modus nur bestimmte Ressourcen der CPU verwenden. Daraus erklärt sich auch die Verwendung des Programmier-Modells:

  • User Register-Modell: wird vom Anwender-Programmierer bzw. von einem Compiler genutzt
  • Supervisor Register-Modell: wird vom System-Programmierer (Betriebssystem) genutzt

In einem Echtzeit Multi-Tasksystem läuft üblicherweise der Betriebssystem-Kern im Supervisor-Modus und die Anwender-Tasks bzw. Programme im User-Modus. Dadurch ist der Kern von den Anwender-Tasks isoliert. Dieser Schutz kann beispielsweise durch den Einsatz einer MMU zusätzlich auf die Hardware ausgeweitet werden, da die CPU den Zustand des S-Bits im Statusregister SR auch hardwaremäßig nach außen gibt.

Bereits zu Beginn der 1980er Jahre fand die CPU, dank optionaler MMU, 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, im Atari ST und Sinclair QL (68008) verbaut.

Ende der 1980er und Anfang der 1990er fand er sich dann in Spielkonsolen wie dem Sega Mega Drive oder dem Neo Geo. 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 findet er im Elevator Aileron Computer (ELAC) Verwendung, der Teil des Flugsteuerungs-Systems ist. Des Weiteren wird er dort im Display Management Computer (DMC) eingesetzt, einem Teil des Elektronischen-Informations-Systems (EFIS).

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 dank der guten Interruptarchitektur und in Kombination mit dem VMEbus möglich. In hoher Stückzahl fand sich der 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 VMEbus-Rechnern, etwa von Motorola, sowie eingebetteten Systemen, wie in BMW-Modellen der 1990er Jahre oder hochleistungsfähigen Schachcomputern) verwendet.

Mittlerweile ist der Ur-68000 weitgehend 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; diese Variante findet in HP-Laserdruckern Verwendung. Die DragonBall-Ableger wurden in den Einsteigermodellen der Palm PDAs verwendet und sind in einfachen Handys verbreitet.

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

Die Firma Apollo Computer hat auf Basis des C5-FPGA-Boards eine 68080-CPU programmiert, die kompatibel zu 68K-CPUs ist.

Weitere Komponenten

[Bearbeiten | Quelltext bearbeiten]

Die Prozessoren 68020, 68030, 68040 und 68060 hatten bereits Funktionen integriert, die in anderen Prozessorarchitekturen erst erheblich später eingeführt wurden:

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

  • BDM (Background Debug Mode). Daraus ist der Industriestandard JTAG-Debugger entstanden, da der BDM die JTAG-Leitungen verwendete bzw. sich die Leitungen teilte. Unter der IEEE-ISTO 5001-2003 und unter dem Namen Nexus wurde diese zur Standard-Schnittstelle für Embedded Systeme. Sowohl die physikalische Schnittstelle als auch das Protokoll entspricht dem Motorola BDM.
  • Dual Core, wobei die zweite CPU als intelligenter Peripheriecontroller eingesetzt wurde, z. B. beim
    MC68332 als TPU (Time Processing Unit) oder beim
    MC68360 als CPM (Communication Processor Module) bzw. QUICC (Quad Integrated Communication Controller). Dieser Controller erlaubte das Verarbeiten aller möglichen seriellen Protokolle. Es ist der Vorgänger des bekannten Power QUICC der Power-Architecture-Familie.
  • 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-921803-16-0
  • Werner Hilf, Anton Nausch: M68000 Familie Teil 2 Anwendung und Bausteine, te-wi (1984), ISBN 3-921803-30-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-89090-922-1
Commons: Motorola 68000 – Sammlung von Bildern, Videos und Audiodateien
Commons: Motorola 68008 – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. F.T. Kozuh: System/370 capability in a desktop computer. IBM Systems Journal, abgerufen am 16. April 2022 (englisch).