Motorola 68000

Der Motorola 68000 ist 16/32-bit CISC Mikroprozessor-Kern, der entworfen und durch Freescale Halbleiter (früher Motorola Halbleiter-Produktsektor) auf den Markt gebracht ist. Eingeführt 1979 mit der HMOS Technologie als das erste Mitglied der erfolgreichen 32 Bit m68k Familie von Mikroprozessoren ist es allgemein Software, die vorwärts mit dem Rest der Linie trotz des beschränket auf einen 16 Bit breiten Außenbus vereinbar ist. Nach 30 Jahren in der Produktion ist die 68000 Architektur noch im Gebrauch.

Geschichte

Die 68000 haben aus dem MACSS (Motorola Fortgeschrittenes Computersystem auf Silikon) Projekt, begonnen 1976 angebaut, um eine völlig neue Architektur ohne rückwärts gerichtete Vereinbarkeit zu entwickeln. Es würden Geschwister der höheren Macht sein, die die vorhandenen 8 Bit 6800 Linie aber nicht ein vereinbarer Nachfolger ergänzen. Schließlich haben die 68000 wirklich eine Busprotokoll-Vereinbarkeitsweise für vorhandene 6800 peripherische Geräte behalten, und eine Version mit einem 8-Bit-Datenbus wurde erzeugt. Jedoch haben sich die Entwerfer hauptsächlich auf die Zukunft oder Vorwärtsvereinbarkeit konzentriert, die der M68K Plattform einen Vorsprung gegen spätere 32-Bit-Befehlssatz-Architekturen gegeben hat. Zum Beispiel sind die Zentraleinheitsregister 32 Bit breit, obwohl wenige geschlossene Strukturen im Verarbeiter selbst auf 32 Bit auf einmal funktionieren. Die MACSS Mannschaft hat schwer den Einfluss des Minicomputer-Verarbeiter-Designs, wie der PDP-11 und die VAX Systeme angezogen, die ähnlich mikrocodiert wurden.

Mitte der 1970er Jahre sind die 8-Bit-Mikroprozessor-Hersteller gelaufen, um die 16-Bit-Generation vorzustellen. Nationaler Halbleiter war mit seinem TEUFELCHEN 16 und SCHRITT-Verarbeiter in 1973-1975 erst gewesen, aber diese hatten Probleme mit der Geschwindigkeit. Intel 8086 hat 1977 schnell Beliebtheit gewonnen. Die Entscheidung zum Bockspringen die Konkurrenz und führt eine Hybride 16/32-bit Design ein, war notwendig, und Motorola hat es in eine zusammenhängende Mission verwandelt. Das Ankommen spät in die 16-Bit-Arena hat dem neuen Verarbeiter mehr Transistoren (ungefähr 40000 gewährt, die gegen 20000 aktive in den 8086 aktiv sind), 32-Bit-Makroinstruktionen, und hat allgemeine Bequemlichkeit des Gebrauches mit Jubel begrüßt.

Der ursprüngliche MC68000 wurde mit einem HMOS-Prozess mit einer 3.5-Mikron-Eigenschaft-Größe fabriziert. Formell eingeführt im September 1979 wurden Anfängliche Proben im Februar 1980 mit Produktionschips veröffentlicht, die über den Schalter im November verfügbar sind. Anfängliche Geschwindigkeitsränge waren 4, 6, und 8 MHz. 10-MHz-Chips sind verfügbar während 1981 und 12.5-MHz-Chips vor dem Juni 1982 geworden. Die 16.67 MHz "12F" Version des MC68000, die schnellste Version des ursprünglichen HMOS Spans, wurden bis zum Ende der 1980er Jahre nicht erzeugt. Tom Gunter, der pensionierte Korporative Vizepräsident an Motorola, ist als der "Vater der 68000 bekannt."

Die 68000 hatten viele Designgewinne des hohen Endes bald. Es ist die dominierende Zentraleinheit für Unix geworden hat Arbeitsplätze einschließlich Sonne-Arbeitsplätze und Apollo/Domain Arbeitsplätze gestützt, hat seinen Weg in verkündete Computer wie Amiga, Atari ST, Apple Lisa und Macintosh gefunden, und wurde in der ersten Generation von Tischlaserdruckern einschließlich ursprünglicher Apple Inc verwendet. LaserWriter und der HP LaserJet. 1982 haben die 68000 eine Aktualisierung zu seinem ISA das Erlauben davon erhalten, virtuelles Gedächtnis zu unterstützen und sich den Virtualisierungsvoraussetzungen von Popek und Goldberg anzupassen. Der aktualisierte Span wurde die 68010 genannt. Eine weitere verlängerte Version, die 31 Bit des Adressbusses ausgestellt hat, wurde auch in kleinen Mengen als die 68012 erzeugt.

Um tiefer gekostete Systeme und Kontrollanwendungen mit kleineren Speichergrößen zu unterstützen, hat Motorola den vereinbaren 8-Bit-MC68008 auch 1982 eingeführt. Das war 68000 mit einem 8-Bit-Datenbus und einem kleineren (20 Bit) Adressbus. Nach 1982 hat Motorola mehr Aufmerksamkeit auf die 68020 und 88000 Projekte gewidmet.

Zweit-sourcing

Mehrere andere Gesellschaften waren Hersteller der zweiten Quelle des HMOS 68000. Diese haben Hitachi (HD68000) eingeschlossen, wer die Eigenschaft-Größe zu 2.7 Mikron für ihre 12.5-MHz-Version, Mostek (MK68000), Rockwell (R68000), Signetics (SCN68000), Thomson/SGS-Thomson (ursprünglich EF68000 und später TS68000), und Toshiba (TMP68000) zusammenschrumpfen gelassen hat. Toshiba war auch ein Schöpfer der zweiten Quelle des CMOS 68HC000 (TMP68HC000).

CMOS Versionen

68HC000, die erste CMOS Version der 68000, wurde von Hitachi entworfen und gemeinsam 1985 eingeführt. Die Version von Motorola wurde den MC68HC000 genannt, während Hitachi der HD68HC000 war. 68HC000 wurde schließlich mit Geschwindigkeiten von 8-20 MHz angeboten. Abgesehen vom Verwenden des CMOS Schaltsystemes hat es sich identisch zum HMOS MC68000 benommen, aber die Änderung zu CMOS hat außerordentlich seinen Macht-Verbrauch reduziert. Der ursprüngliche HMOS MC68000 hat ungefähr 1.35 Watt an einer Umgebungstemperatur von 25 °C unabhängig von der Uhr-Geschwindigkeit verbraucht, während der MC68HC000 nur 0.13 Watt an 8 MHz und 0.38 Watt an 20 MHz verbraucht hat. (Verschieden von CMOS Stromkreisen zieht HMOS noch Macht, wenn müßig, so ändert sich Macht-Verbrauch wenig mit der Uhr-Rate.) Apfel hat 68HC000 für den Gebrauch im Tragbaren Macintosh ausgewählt.

Motorola hat den MC68008 durch den MC68HC001 1990 ersetzt. Dieser Span hat 68HC000 in vieler Hinsicht geähnelt, aber sein Datenbus konnte entweder in 16-bit- oder in 8-Bit-Weise abhängig vom Wert einer Eingangsnadel am Rücksetzen funktionieren. So, wie die 68008, konnte es in Systemen mit preiswerteren 8-Bit-Erinnerungen verwendet werden.

Die spätere Evolution der 68000 hat sich auf modernere eingebettete Kontrollanwendungen und Peripherie auf dem Span konzentriert. 68EC000 haben Span und SCM68000 Kern den Adressbus zu 32 Bit ausgebreitet, haben den M6800 peripherischen Bus entfernt, und haben die BEWEGUNG von der SR Instruktion aus Benutzerweise-Programmen ausgeschlossen. 1996 hat Motorola den eigenständigen Kern mit dem völlig statischen Schaltsystem aktualisiert, das nur 2 µW in der Weise der niedrigen Macht zieht, es den MC68SEC000 nennend.

Motorola hat Produktion des HMOS MC68000 und MC68008 1996 aufgehört, aber seine Nebenprodukt-Gesellschaft, Freescale Halbleiter, erzeugt noch den MC68HC000, den MC68HC001, den MC68EC000, und den MC68SEC000, sowie den MC68302 und die MC68306 Mikrokontrolleure und die späteren Versionen der Familie von DragonBall. 68000's architektonische Nachkommen, 680x0, werden CPU32 und Familien von Coldfire, auch noch serienmäßig hergestellt.

Als ein Mikrokontrolleur-Kern

Durch "wahre" 32-Bit-Mikroprozessoren nachgefolgt, wurden die 68000 als der Kern von vielen Mikrokontrolleuren verwendet. 1989 hat Motorola den MC68302 Kommunikationsverarbeiter eingeführt.

Anwendungen

An seiner Einführung wurden die 68000 zuerst in teuren Systemen, einschließlich Mehrbenutzermikrocomputer wie der WICAT 150 http://www.old-computers.com/museum/computer.asp?c=254, frühe Alpha-Mikrosystemcomputer, Sage II / IV, Tandy TRS-80 Modell 16 verwendet, und; Einzelbenutzerarbeitsplätze wie der HP von Hewlett Packard 9000 Reihen 200 Systeme, die ersten Apollo/Domain Systeme, Sonne-Mikrosystemsonne 1, und das Corvus Konzept; und Grafikterminals wie der VAXstation von Digital Equipment Corporation 100 und die IRIS von Silikongrafischen Darstellungen 1000 und 1200. Systeme von Unix haben sich schnell zu den fähigeren späteren Generationen der 68k Linie bewegt, die populär auf diesem Markt im Laufe der 1980er Jahre geblieben ist.

Durch die Mitte der 1980er Jahre hat fallende Produktion gekostet hat die 68000 lebensfähig für den Gebrauch im Persönlichen und den Hauscomputern gemacht, mit dem Apple Lisa und Macintosh anfangend, und ist durch den Kommodore Amiga, Atari ST und Scharfen X68000 gefolgt. Die 68008 wurden nur andererseits in einigen Hauscomputersystemen verwendet. Der Sinclair QL (obwohl der QL eine Schwester-Maschine zum ICL Ein Pro Schreibtisch war, der auch 68008 verwendet hat) war das am meisten gewerblich wichtige. Spirale-Systeme (in Missouri, den Vereinigten Staaten) haben eine Erweiterung auf den SWTPC SS-50 Bus, der SS-64 entworfen, und haben um den 68008 Verarbeiter gebaute Systeme erzeugt.

Während der schnelle Schritt der Computerförderung schnell die als Zentraleinheit der Arbeitsfläche/Arbeitsplatzes veralteten 68000 gemacht hat, hat der Verarbeiter wesentlichen Gebrauch in eingebetteten Anwendungen gefunden. Bis zum Anfang der 1980er Jahre konnten Mengen von 68000 Zentraleinheiten für den US-Dollar von weniger als 30 $ pro Teil gekauft werden. Videospiel-Hersteller haben die 68000 als das Rückgrat von vielen Arkade-Spielen und Hausspielkonsolen verwendet: Der Nahrungsmittelkampf von Atari von 1982 war eines der ersten 68000-basierten Arkade-Spiele. Andere haben das System von Sega 16, das BEDIENUNGSFELD-System von Capcom und HZ 2, und SNK'S Neo Geo eingeschlossen. Bis zum Ende der 1980er Jahre waren die 68000 billig genug, um Hausspielkonsolen, wie die Mega Drive von Sega (Entstehung) Konsole anzutreiben. Die Atari 1993-Mehrverarbeiter-Jaguar-Konsole hat 68000 als ein Unterstützungsspan verwendet, obwohl einige Entwickler sie als der primäre Verarbeiter wegen der Vertrautheit verwendet haben.

Die 68000 haben auch großen Erfolg als ein eingebetteter Kontrolleur gesehen. Schon in 1981 wurden Laserdrucker wie der Imagen-Abdruck 10 von mit den 68000 ausgestatteten Außenvorstands-kontrolliert. Der erste HP LaserJet — eingeführt 1984 — ist mit eingebauten 8 MHz 68000 gekommen. Andere Drucker-Hersteller haben die 68000, einschließlich des Apfels mit seiner Einführung von LaserWriter 1985, dem ersten Laserdrucker von PostScript angenommen. Die 68000 haben fortgesetzt, in Druckern während des Rests der 1980er Jahre weit verwendet zu werden, gut in die 1990er Jahre in Druckern des niedrigen Endes andauernd.

Die 68000 haben auch Erfolg im Feld von Industrieregelsystemen gesehen. Unter den Systemen, die einen Nutzen gezogen haben 68000 oder Ableitung zu haben, weil war ihr Mikroprozessor Familien von Programmierbaren Logikkontrolleuren (PLCs), der von Allen-Bradley, Instrumenten von Texas und nachher im Anschluss an den Erwerb dieser Abteilung von TI durch Siemens verfertigt ist. Benutzer solcher Systeme akzeptieren Produktveralten an derselben Rate wie Innenbenutzer nicht, und es ist völlig wahrscheinlich, dass trotz des installieret vor mehr als 20 Jahren viele 68000-basierte Kontrolleure im zuverlässigen Dienst gut ins 21. Jahrhundert weitermachen werden.

683XX werden Mikrokontrolleure, die auf dem 68000-Architekturen-gestützt sind, in Netzwerkanschluss und Telekommunikationsausrüstung, mit dem Fernseher obersten Kästen, medizinischen und Laborinstrumenten und sogar tragbaren Rechenmaschinen verwendet. Der MC68302 und seine Ableitungen sind in vielen Telekommunikationsprodukten von Cisco, 3com verwendet worden, Steigen Sie Marconi, Cyclades und andere. Vorige Modelle der Palme PDAs und der Handstandüberschlag-Schirm haben DragonBall, eine Ableitung der 68000 verwendet. AlphaSmart verwendet die Familie von DragonBall in späteren Versionen seiner tragbaren Textverarbeitungsprogramme. Instrumente von Texas verwenden die 68000 in seinen Rechenmaschinen der grafisch darstellenden des hohen Endes, dem TI-89 und der TI-92 Reihe und der Reise 200. Frühe Versionen von diesen haben einen Spezialmikrokontrolleur mit einem statischen 68EC000 Kern verwendet; spätere Versionen verwenden einen MC68SEC000 Standardverarbeiter.

Eine modifizierte Version der 68000 hat die Basis des Emulators von IBM XT/370 Hardware eines Systems 370 Verarbeiter gebildet.

Architektur

Adressbus

Die 68000 haben einen 23-Bit-Außenadressbus, und zwei mit dem Byte ausgesuchte Signale haben A0 "ersetzt". Diese 25 Linien konnten deshalb 16 Mb des physischen Gedächtnisses mit der Byte-Entschlossenheit erreichen. Adresslagerung und Berechnung haben 32 Bit, jedoch, mit dem Byte der hohen Ordnung ignoriert wegen des physischen Mangels an Nadeln verwendet. Das hat ihm erlaubt, für einen flachen 32-Bit-Adressraum geschriebene Software zu führen. Die Absicht von Motorola mit dem inneren 32-Bit-Adressraum war Vorwärtsvereinbarkeit, es ausführbar machend, 68000 Software zu schreiben, die vollen Vorteil von späteren 32-Bit-Durchführungen des 68000 Befehlssatzes nehmen würde.

Jedoch hat das Programmierer nicht davon abgehalten, unvereinbare Vorwärtssoftware zu schreiben.

"24-Bit-"-Software, die das obere Adressbyte verworfen hat, oder es zu Zwecken außer dem Wenden verwendet hat, konnte auf 32 Bit 68K Durchführungen fehlen. Zum Beispiel früh (vor7.0) haben Versionen von Mac OS des Apfels das hohe Byte von Speicherblock-Master-Zeigestöcken verwendet, um Fahnen solchen, wie geschlossen, und purgeable zu halten. Spätere Versionen des OS haben die Fahnen zu einer nahe gelegenen Position bewegt, und Apfel hat begonnen, Computer zu verladen, die "" sauberen 32-Bit-ROMs hatten, der mit der Ausgabe des Mac 1989-IIcis beginnt.

Innere Register

Die Zentraleinheit hat acht 32-Bit-Mehrzweckdatenregister (D0-D7) und acht Adressregister (A0-A7). Das letzte Adressregister ist der Stapel-Zeigestock, und Monteure würden das Etikett SP als gleichwertig zu A7 akzeptieren. Das war eine große Anzahl von Registern auf viele Weisen. Es war klein genug, um den 68000 zu erlauben, schnell auf Unterbrechungen zu antworten (weil, wenn alle 8 Datenregister - D7 und 7 Adressregister A0 TUN - A6, 15 Register insgesamt gespart werden müssen), und noch groß genug, um die meisten Berechnungen schnell zu machen. Bemerken Sie, dass eine Ausnahme-Routine in der Oberaufseher-Weise auch den Benutzerstapel-Zeigestock A7 gespart haben könnte, der es 8 Adressregister machen würde)

Zwei Typen von Registern zu haben, war zuweilen mild ärgerlich, aber nicht hart in der Praxis zu verwenden. Wie verlautet hat es den Zentraleinheitsentwerfern erlaubt, einen höheren Grad des Parallelismus, durch das Verwenden einer Hilfsausführungseinheit für die Adressregister zu erreichen.

Die Darstellung der ganzen Zahl in der 68000 Familie ist groß-endian.

Statusregister

Der 68000 Vergleich, arithmetischer und Logikoperationssatz hat Fahnen in einem Statusregister gebissen, um ihre Ergebnisse für den Gebrauch durch spätere bedingte Sprünge zu registrieren. Die Bit-Fahnen waren "Null" (Z), "tragen" (C), "fließen" (V) "über", "strecken" "sich" (X), und "negativ" (N) "aus". Das "Erweitern" (X) verdient Fahne spezielle Erwähnung, weil es von der tragen Fahne getrennt wurde. Das hat dem Extrabit von der Arithmetik, der Logik und den Verschiebungsoperationen erlaubt, für das Tragen für den Fluss der Kontrolle und die Verbindung getrennt zu werden.

Befehlssatz

Die Entwerfer haben versucht, die Zusammenbau-Sprache orthogonal zu machen. D. h. Instruktionen wurden in Operationen und Adressweisen geteilt, und fast alle Adressweisen waren für fast alle Instruktionen verfügbar. Einige Programmierer haben die "Nähe" orthogonality nicht gemocht, während andere für den Versuch dankbar waren.

Am Bit-Niveau würde die Person, die den Monteur schreibt, klar sehen, dass diese "Instruktionen" einige von mehreren verschiedenen Op-Codes werden konnten. Es war ganz ein guter Kompromiss, weil es fast dieselbe Bequemlichkeit wie eine aufrichtig orthogonale Maschine gegeben hat, und noch auch die Zentraleinheitsentwerfer-Freiheit gegeben hat, den Op-Codetisch auszufüllen.

Mit nur 56 Instruktionen war die minimale Instruktionsgröße für seinen Tag an 16 Bit riesig. Außerdem haben viele Instruktionen und Wenden-Weisen Extrawörter auf dem Rücken für Adressen, mehr Adressweise-Bit usw. hinzugefügt.

Viele Entwerfer haben geglaubt, dass die MC68000 Architektur Kompaktcode (Hoch Codedichte) für seine Kosten, besonders wenn erzeugt, durch Bearbeiter hatte. Dieser Glaube an den kompakteren Code hat zu vielen seiner Designgewinne und viel von seiner Langlebigkeit als eine Architektur durch aktualisierte Zentraleinheiten geführt.

Vorzug-Niveaus

Die Zentraleinheit, und später die ganze Familie, haben genau zwei Niveaus des Vorzugs durchgeführt. Benutzerweise hat Zugang zu allem außer der Unterbrechungsniveau-Kontrolle gegeben. Oberaufseher-Vorzug hat Zugang zu allem gegeben. Eine Unterbrechung ist immer Aufsichts-geworden. Der Oberaufseher hat gebissen wurde im Statusregister versorgt, und zu Benutzerprogrammen sichtbar.

Ein echter Vorteil dieses Systems bestand darin, dass das Oberaufseher-Niveau einen getrennten Stapel-Zeigestock hat. Das hat einem stark mehrbeanspruchenden System erlaubt, sehr kleine Stapel für Aufgaben zu verwenden, weil die Entwerfer das Gedächtnis nicht zuteilen mussten, das erforderlich ist, die Stapel-Rahmen eines maximalen Stapels von Unterbrechungen zu halten.

Unterbrechungen

Die Zentraleinheit hat sieben Unterbrechungsniveaus anerkannt. Niveaus 1 bis 7 waren ausschließlich prioritized. D. h. eine höher numerierte Unterbrechung konnte immer eine tiefer numerierte Unterbrechung unterbrechen. Im Statusregister hat eine privilegierte Instruktion erlaubt, das aktuelle minimale Unterbrechungsniveau zu setzen, niedrigere Vorzugsunterbrechungen blockierend. Niveau 7 war nicht maskable — mit anderen Worten, ein NMI. Niveau 1 konnte durch jedes höhere Niveau unterbrochen werden. Niveau 0 bedeutet keine Unterbrechung. Das Niveau wurde im Statusregister versorgt, und war zu Benutzerniveau-Programmen sichtbar.

Hardware-Unterbrechungen wird zur Zentraleinheit mit drei Eingängen Zeichen gegeben, die das höchste während der Unterbrechungspriorität verschlüsseln. Ein getrennter Unterbrechungskontrolleur ist gewöhnlich erforderlich, die Unterbrechungen zu verschlüsseln, obwohl für Systeme, die mehr als drei Hardware-Unterbrechungen nicht verlangen, ist es möglich, die Unterbrechungssignale direkt zu den verschlüsselten Eingängen auf Kosten der zusätzlichen Softwarekompliziertheit zu verbinden. Der Unterbrechungskontrolleur kann so einfach sein wie 74LS148 Vorrang encoder, oder kann ein Teil eines VLSI peripherischen Spans wie die Peripherische MC68901-Mehrfunktion sein (verwendet in Atari TT030), der auch einen UART, Zeitmesser und parallele Eingabe/Ausgabe zur Verfügung gestellt hat.

Der "Ausnahme-Tisch" (Unterbrechungsvektor-Adressen) wurde an Adressen 0 bis 1023 befestigt, 256 32-Bit-Vektoren erlaubend. Der erste Vektor war die Startstapel-Adresse, und das zweite war die Startcodeadresse. Vektoren 3 bis 15 wurden verwendet, um verschiedene Fehler auszugeben: Busfehler, Adressfehler, ungesetzliche Instruktion, Nulldivision, Vektor von CHK & CHK2, Vorzug-Übertretung und einige vorbestellte Vektoren, die Linie 1010 Emulator, Linien-1111-Emulator und Hardware-Unterbrechungspunkt geworden sind. Vektor 24 hat die echten Unterbrechungen angefangen: unechte Unterbrechung (keine Hardware-Anerkennung), und Niveau 1 durch Autovektoren des Niveaus 7, dann die 16 FALLE-Vektoren, dann noch einige vorbestellte Vektoren, dann die benutzerbestimmten Vektoren.

Da an einem Minimum der Startcodeadressvektor immer auf dem Rücksetzen gültig sein muss, haben Systeme allgemein einen nichtflüchtigen Speicher (z.B ROM) eingeschlossen, an der Adressnull anfangend, die Vektoren und den Stiefelstrippe-Code zu enthalten. Jedoch für ein allgemeines Zweck-System ist es für das Betriebssystem wünschenswert im Stande zu sein, die Vektoren an der Durchlaufzeit zu ändern. Das wurde häufig entweder durch das Hinweisen der Vektoren im ROM zu einem Sprung-Tisch im RAM, oder durch den Gebrauch der Bankschaltung vollbracht, um dem ROM zu erlauben, durch den RAM an der Durchlaufzeit ersetzt zu werden.

Die 68000 haben den Virtualisierungsanforderungen von Popek und Goldberg für die volle Verarbeiter-Virtualisierung nicht entsprochen, weil sie eine einzelne benachteiligte Instruktion "BEWEGUNG von SR" hat, der Benutzerweise-Software Read-Only-Zugang zu einem kleinen Betrag des privilegierten Staates erlaubt hat.

Die 68000 waren auch unfähig, virtuelles Gedächtnis leicht zu unterstützen, das die Fähigkeit verlangt, Fallen zu stellen und sich von einem erfolglosen Speicherzugang zu erholen. Die 68000 stellen wirklich eine Busfehlerausnahme zur Verfügung, die verwendet werden kann, um Fallen zu stellen, aber sie spart genug Verarbeiter-Staat nicht, um die faulted Instruktion fortzusetzen, sobald das Betriebssystem die Ausnahme behandelt hat. Mehrere Gesellschaften haben wirklich geschafft, 68000-basierte Arbeitsplätze von Unix mit dem virtuellen Gedächtnis der gearbeitet durch das Verwenden zwei 68000 Chips zu machen, die in der Parallele auf verschiedenen aufeinander abgestimmten Uhren laufen. Als die "Führung" 68000 auf einen schlechten Speicherzugang gestoßen ist, würde Extrahardware die "wichtigen" 68000 unterbrechen, um sie daran zu verhindern, auch auf den schlechten Speicherzugang zu stoßen. Diese Unterbrechungsroutine würde die virtuellen Speicherfunktionen behandeln und die "Führung" 68000 im richtigen Staat wiederanfangen, um richtig synchronisierte Operation fortzusetzen, als die "wichtigen" 68000 von der Unterbrechung zurückgekehrt sind.

Diese Probleme wurden in der folgenden Hauptrevision der 68K Architektur mit der Ausgabe des MC68010 befestigt. Die Busfehler- und Adressfehlerausnahmen haben einen großen Betrag des inneren Staates auf den Oberaufseher-Stapel gestoßen, um Wiederherstellung zu erleichtern, und die BEWEGUNG aus der SR Instruktion privilegiert gemacht wurde. Eine neue benachteiligte "BEWEGUNG von CCR" Instruktion wurde für den Gebrauch in seinem Platz durch die Benutzerweise-Software zur Verfügung gestellt; ein Betriebssystem konnte fangen und mit Benutzerweise-BEWEGUNG aus SR Instruktionen, wenn gewünscht, wetteifern.

Befehlssatz-Details

Die Standardwenden-Weisen sind:

  • Schreiben Sie direkten ein
  • Datenregister, z.B "D0"
  • richten Sie Register, z.B "A6"
  • Schreiben Sie indirekten ein
  • Einfache Adresse, z.B (A0)
  • Adresse mit der Postzunahme, z.B (A0) +
  • Adresse mit der Vorverminderung, z.B - (A0)
  • Die Adresse mit 16 Bit hat Ausgleich, z.B 16 (A0) unterzeichnet
  • Mit einem Inhaltsverzeichnis versehenes mit 8 Bit indirektes Register hat Ausgleich z.B 8 (A0, D0) oder 8 (A0, A1) unterzeichnet

Bemerken Sie, dass mit (A0) + und - (A0), die wirkliche Zunahme oder der Verminderungswert von der operand Größe abhängig ist: Ein Byte-Zugang erhöht das Adressregister durch 1, ein Wort durch 2 und einen langen durch 4.

  • PC (Programm-Schalter) Verwandter mit der Versetzung
  • Relative 16 Bit haben Ausgleich, z.B 16 (PC) unterzeichnet. Diese Weise war für den mit der Position unabhängigen Code sehr nützlich.
  • Der Verwandte mit 8 Bit hat Ausgleich mit dem Index, z.B 8 (PC, D2) unterzeichnet
  • Absolute Speicherposition
  • Entweder eine Zahl, z.B "4000 $", oder ein symbolischer Name, der durch den Monteur übersetzt ist
  • Meiste 68000 Monteure haben das "$"-Symbol für hexadecimal, statt "0x" oder eines Schleppens H verwendet.
  • Es gab 16 und 32 Bit-Version dieser Wenden-Weise
  • Unmittelbare Weise
  • Daten, die in der Instruktion, z.B "#400" versorgt sind
  • Schnelle Unmittelbare Weise
  • Nicht unterzeichnete 3 Bit (oder 8 Bit hat mit moveq unterzeichnet), mit dem Wert, der in Opcode versorgt ist
  • In addq und subq, 0 ist die Entsprechung zu 8
  • z.B war moveq #0,d0 schneller als clr.l d0 (obwohl beide d0 gleichen 0 gemacht haben)

Plus: Zugang zum Statusregister, und, in späteren Modellen, anderen speziellen Registern.

Die meisten Instruktionen haben punktstellige Nachsilben, Operationen erlaubend, auf 8-Bit-Bytes (".b"), 16-Bit-Wörter (".w"), und 32 Bit longs (".l") vorzukommen.

Die meisten Instruktionen sind, d. h. die Operation hat eine Quelle und einen Bestimmungsort, und der Bestimmungsort wird geändert. Bemerkenswerte Instruktionen waren:

  • Arithmetik: TRAGEN SIE U-BOOT BEI, MULU (nicht unterzeichnet multiplizieren), MULS (unterzeichnet multiplizieren), DIVU, DIVS, NEG (zusätzliche Ablehnung), und CMP (eine Art, diesen Satz die Status-Bit abziehen, aber hat das Ergebnis nicht versorgt)
  • Binäre codierte dezimale Arithmetik: ABCD und SBCD
  • Logik: EOR (exklusiv oder), UND, NICHT (logisch nicht), ODER (einschließlich oder)
  • Verschiebung: (Logische d. h. richtige Verschiebungen stellen Null im bedeutendsten Bit) LSL, LSR, (arithmetische Verschiebungen, d. h. Zeichen - erweitert das bedeutendste Bit) ASR, ASL, (Rotiert durch strecken sich aus und nicht:) ROXL, ROXR, ROL, ROR
  • Bit-Test und Manipulation im Gedächtnis: BSET (zu 1), BCLR (zu 0), BCHG (Bit des umgekehrten Bogens) und BTST (setzt das Nullbit, wenn geprüftes Bit 0 ist)
  • Mehrverarbeitung der Kontrolle: TAS, Test-Und-Satz, hat eine unteilbare Busoperation durchgeführt, Semaphoren erlaubend, verwendet zu werden, um mehrere Verarbeiter zu synchronisieren, die ein einzelnes Gedächtnis teilen
  • Fluss der Kontrolle: JMP (Sprung), JSR (Sprung zum Unterprogramm), BSR (Verhältnisadresssprung zum Unterprogramm), RTS (Rückkehr vom Unterprogramm), RTE (Rückkehr von der Ausnahme, d. h. eine Unterbrechung), FALLE (lösen eine Softwareausnahme aus, die der Softwareunterbrechung ähnlich ist), CHK (eine bedingte Softwareausnahme)
  • Zweig: Bcc (ein Zweig, wo der "Cc" einen von 16 Tests der Bedingungscodes im Statusregister angegeben hat: Gleich, größer als, weniger - als, tragen und die meisten Kombinationen und logische Inversionen, die vom Statusregister verfügbar sind).
  • Verminderung-Und-Zweig: DBcc (wo "Cc" bezüglich der Zweiginstruktionen war), welcher decremented sich ein D-Register und zu einem Bestimmungsort verzweigt hat, vorausgesetzt dass die Bedingung noch wahr war und das Register, war nicht decremented zu-1 gewesen. Dieser Gebrauch-1 statt 0 als der endende Wert hat das leichte Codieren von Schleifen erlaubt, die nichts tun mussten, wenn die Zählung 0 zunächst, ohne das Bedürfnis nach einer zusätzlichen Kontrolle vor dem Eingehen in die Schleife war. Das hat auch Nisten von DBcc erleichtert.

68EC000

68EC000 ist eine preisgünstige Version der 68000, die für eingebettete Kontrolleur-Anwendungen entworfen sind. 68EC000 kann entweder einen 8-bit- oder 16-Bit-Datenbus haben, der am Rücksetzen schaltbar ist.

Die Verarbeiter sind in einer Vielfalt von Geschwindigkeiten einschließlich 8 und 16 MHZ-Konfigurationen verfügbar, 2,100 und 4,376 Dhrystones jeder erzeugend. Diese Verarbeiter haben keine Schwimmpunkt-Einheit, und es ist schwierig, ein FPU Coprozessor (MC68881/2) mit demjenigen durchzuführen, weil die Reihe der europäischen Gemeinschaft an notwendigen Coprozessor-Instruktionen Mangel hat.

68EC000 wurde als ein Kontrolleur in vielen Audioanwendungen, einschließlich Musikinstrumente von Ensoniq und gesunder Karten verwendet, wo es ein Teil des MIDI Synthesizers war. Auf Ensoniq Resonanzböden hat der Kontrolleur mehrere Vorteile im Vergleich zu Mitbewerbern ohne eine Zentraleinheit an Bord zur Verfügung gestellt. Der Verarbeiter hat dem Ausschuss erlaubt, konfiguriert zu werden, um verschiedene Audioaufgaben, wie MPU-401 MIDI Synthese oder MT 32 Wetteifer ohne den Gebrauch eines TSR Programms durchzuführen. Diese verbesserte Softwarevereinbarkeit, gesenkter Zentraleinheitsgebrauch und beseitigter Gastgeber-Systemspeichergebrauch.

Der Motorola 68EC000 Kern wurde später in den mit Sitz in m68k Verarbeitern von DragonBall von Motorola/Freescale verwendet.

Es wurde auch als ein gesunder Kontrolleur in der Sega Saturn-Spielkonsole, und als ein Kontrolleur für den HP JetDirect Ethernet Kontrolleur-Ausschüsse für die Mitte der 90er Jahre Drucker von LaserJet verwendet.

Siehe auch

Referenzen

Links

CAST, Inc. (68000 IP Versorger)

Michael Hutchence / Minicomputer
Impressum & Datenschutz