DE68927783T2 - Mikroprozessor mit äusserem steuerungsspeicher - Google Patents

Mikroprozessor mit äusserem steuerungsspeicher

Info

Publication number
DE68927783T2
DE68927783T2 DE68927783T DE68927783T DE68927783T2 DE 68927783 T2 DE68927783 T2 DE 68927783T2 DE 68927783 T DE68927783 T DE 68927783T DE 68927783 T DE68927783 T DE 68927783T DE 68927783 T2 DE68927783 T2 DE 68927783T2
Authority
DE
Germany
Prior art keywords
address
memory
bit
microinstructions
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE68927783T
Other languages
English (en)
Other versions
DE68927783D1 (de
Inventor
Jeffrey Bessolo
Steven Lang
Raymond Lee
Jeffrey Nathan
Vyomesh Shah
Scott Vincelette
Steven Waldstein
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
Wang Laboratories Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wang Laboratories Inc filed Critical Wang Laboratories Inc
Application granted granted Critical
Publication of DE68927783D1 publication Critical patent/DE68927783D1/de
Publication of DE68927783T2 publication Critical patent/DE68927783T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Microcomputers (AREA)

Description

    GEBIET DER ERFINDUNG
  • Diese Erfindung betrifft im allgemeinen digitale Datenprozessoren und bezieht sich insbesondere auf einen Mikroprozessor in integrierter Schaltkreistechnik mit einer Vielzahl neuer und nützlicher Merkmale.
  • STAND DER TECHNIK
  • Mikroprozessoren in integrierter Schaltkreistechnik werden weitverbreitet für eine Vielfalt digitaler Datenverarbeitungsanwendungen eingesetzt. Im allgemeinen umfassen die meisten herkömmlichen Mikroprozessoren eine Arithmetik-Logik- Einheit (ALU), eine Vielzahl Register und einen Speicheradreß- und -Datenbus, der chipextern ansteuerbar sein kann. Aus dem Speicher gelesene Programmbefehle werden in einen oder mehrere Mikrobefehle decodiert, welche die interne Logik des Mikroprozessors so steuern, daß eine im voraus definierte, durch den Befehl vorgeschriebene Handlung ausführbar ist. Beispielsweise wird ein ADD-Befehl (Addier-Befehl) üblicherweise in eine Vielzahl Mikrobefehle decodiert, welche die Aufgabe des Zugriffs auf die zu addierenden Daten ausführen, die Daten in die ALU leiten und das Ergebnis der Addition speichern. Bei herkömmlichen Mikroprozessoren sind diese Mikrobefehle intern in einem Steuerspeicher gespeichert, der üblicherweise ein Nur-Lese-Speicher ist, der in die Schaltungsanordnung des Mikroprozessors eingegliedert ist. Dies führt zu einer Schwierigkeit insoweit, als der Steuerspeicher normalerweise für Geräte außerhalb des Mikroprozessors nicht erreichbar ist. Das Lesen und/oder Modifizieren der Mikrobefehle im Steuerspeicher durch externe Geräte wird dadurch schwierig oder unmöglich.
  • Ein solches externes Gerät kann ein Coprozessor sein, z.B. eine Gleitkommaarithmetik-Beschleunigungseinheit. Solche Beschleunigungseinheiten arbeiten üblicherweise in Verbindung mit dem Mikroprozessor und verschaffen erweiterte mathematische Kapazität bei solchen Anwendungen, wo solche erweiterte Kapazität erforderlich ist. Es leuchtet ein, daß der Grad der Kopplung zwischen dem Mikroprozessor und dem Coprozessor eine wichtige, das System betreffende Überlegung ist, insoweit der Grad der Kopplung üblicherweise Einfluß auf Geschwindigkeit und Wirkungsgrad der Ausführung eines bestimmten Programms hat.
  • Andere Faktoren, die Geschwindigkeit und Wirkungsgrad der herkömmlichen Mikroprozessoren beeinflussen, sind die Flexibilität verschiedener interner Register, z.B. des Zustandsregisters, das die Ergebnisse verschiedener logischer, arithmetischer und anderer Zustände innerhalb des Gerätes widerspiegelnde Bit enthält. Die Fähigkeit, den Zustand der Zustandbit zu setzen, rückzusetzen und zu ändern, damit bedingte Sprungbefehle verwendet werden können, ist somit ein wichtiges Merkmal des Gesamtwirkungsgrades und der Befehlsverarbeitungskapazität des Mikroprozessors.
  • Ferner ist bei den Mikroprozessoren, die irgendeine Art Speicherverwaltungseinheit (MMU) für das Umsetzen virtueller Maschinenadressen in eine reelle Speicheradresse verwenden, der Wirkungsgrad der MMU bei der Aufrechterhaltung einer Adressenumsetztabelle, die eine hohe "Treffer"rate bei umgesetzten Befehlen sichert, von großem Belang für das System.
  • Ein Chipsatz mit fünf Chip (d.h. fünf getrennten integrierten Schaltkreisen), die eine 32-Bit-Eclipse-Architektur implementieren, wurde zur Bildung einer höchstintegrierten n-Kanal- MOS-Schaltung mit einer Zentraleinheit, einem Mikroprogramm- Steuerbaustein, einer Gleitkommaeinheit, einer System-E/A- Eineit und einer Burst-Multiplexkanal-Einheit vorgeschlagen (Electronics International, Bd. 56, Nr. 22, Nov. 1983, S. 121 bis 126). Die fünf Chip bilden zusammen einen "Superminirechner". Ein externer Steuerspeicher ist mit dem Teil des Fünf- Chip-Satzes verbunden, der den Mikroprogramm-Steuerbaustein bildet, derart, daß die Adresse des nächsten Mikrobefehls generierbar ist. Er liefert Informationen an die Zentraleinheit und an die Gleitkommaeinheit über einen getrennten Mikrosteuerungsbus. Dieses System ist komplex und erfordert viel Platz auf der Schaltungskarte. Es fehlt ihm jegliche Flexibilität, insbesondere für den Fall, daß das Hauptsystem aufgerüstet werden soll, z.B. durch einen Coprozessor.
  • Aus der US-Patentschrift 5,041,969 sind ein Mikroprozessor und ein Datenprozessor bekannt, die den genannten Mikroprozessor als Slave-Prozessor verwenden. Der Datenprozessor ist mit einem externen Anschluß versehen, derart, daß der interne Zustand des Datenprozessors von außen beurteilt werden kann. Der Slave- oder Mikroprozessor steuert die Signalleitung mit einem Aufgabenverzweigungssignal TK an, das von einer Mikrocodesteuereinheit generiert wird. Die TK-Speicherschaltung braucht nicht im Datenprozessor (Hauptprozessor) verfügbar sein. Das TK-Signal braucht lediglich getestet werden, um den Zustand eines Flags für bedingte Verzweigung zu bestimmen. Es ist nicht angegeben, wie die TK-Speicherschaltung (Flagflipflop) durch den TK-Eingang gesetzt wird.
  • Die von der in den beigefügten Ansprüchen definierten Erfindung zu lösende Aufgabe ist die Überwindung der den herkömmlichen Systemen natürlich anhaftenden Nachteile, wie sie in den vorstehend genannten Dokumenten dargestellt sind, und die Erhöhung der Flexibilität und Funktionsfähigkeit z.B. solcher herkömmlicher Systeme.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • Diese und weitere Merkmale der Erfindung ergeben sich deutlicher aus der nachstehenden detaillierten Beschreibung einer bevorzugten Ausführungsform in Verbindung mit den beigefügten Zeichnungen, in denen zeigt:
  • Fig. 1 ein Blockschaltbild eines Datenverarbeitungssystems 1 mit einer CPU 10, die erfindungsgemäß hergestellt und betreibbar ist,
  • Fig. 2a und 2b Blockschaltbilder interner Register und Busse der CPU 10,
  • Fig. 2c ein Blockschaltbild einer Sprungeinheit der CPU 10,
  • Fig. 2d ein Blockschaltbild der Speicherverwaltungseinheit (MMU) 18 gemäß Fig. 2a,
  • Fig. 2e ein Blockschaltbild des Zustandsregisters 70 und zugehöriger Logik,
  • Fig. 3 eine Darstellung des Formats eines Mikrobefehls, der im externen Steuerspeicher 14 gespeichert ist und die interne Operation der CPU 10 lenkt und ein vorgangfeld, ein Speicherfeld, ein Bedingungscodefeld und ein Sprungfeld umfaßt,
  • Fig. 4 eine detailliertere Darstellung des Formats vom Vorgangfeld des Mikrobefehls gemäß Fig. 3,
  • Fig. 5 eine detailliertere Darstellung des Formats vom Speicherfeld des Mikrobefehls gemäß Fig. 3,
  • Fig. 6 eine Darstellung des Bedingungscodefeldes des Mikrobefehls gemäß Fig. 3,
  • Fig. 7 eine detailliertere Darstellung des Formats vom Sprungfeld des Mikrobefehls gemäß Fig. 3,
  • Fig. 8 eine Darstellung des Formats vom Sprungfeld für eine Verzweigung zum Operationscode im Sprungfeld des nächsten Makrobefehls (BNM),
  • Fig. 9 eine detailliertere Darstellung des Formats vom Sprungfeld für einen Mikrobefehl, der einen Sprungfeld-Zustandeinstell-Operationscode (SS) enthält,
  • Fig. 10a und 10b Darstellungen des Formats einer virtuellen bzw. einer reellen Adresse, das von der MMU 18 gemäß Fig. 2 verwendet wird,
  • Fig. 11a eine Darstellung des Formats eines üblichen Adreßumsetzungseintrags (ATE), der ein Merkmal der MMU 18 gemäß Fig. 2 ist,
  • Fig. 11b eine detailliertere Darstellung des Formats des Seitenrahmeneintrags vom ATE gemäß Fig. 11a, und
  • Fig. 12a bis 12d Darstellungen verschiedener Formen der Zeitzustände des Mikroprozessors 10.
  • DETAILLIERTE BESCHREIBUNG EINER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Als Hilfe bei der Beschreibung des erfindungsgemäßen Mikroprozessors wurde die Beschreibung in mehrere Abschnitte unerteilt, die je mit einem Bezugsbuchstaben (A bis E) bezeichnet sind. Diese Abschnitte sind:
  • A. Architektur
  • A1. Registervorrat
  • A2. Arithmetik-Ausführungseinheit
  • A3. Zustandsregister
  • A4. Befehlsabruf
  • B. Mikrobefehlsvorrat
  • C. Adreßumsetzung
  • D. Verarbeitung von Zuständen und Zeitabläufen
  • E. Externe Schnittstelle
  • A. ARCHITEKTUR
  • Fig. 1 zeigt in Form eines Blockschaltbildes ein Datenverarbeitungssystem 1 mit einer erfindungsgemäß ausgebildeten Zentraleinheit (CPU) 10. Die CPU 10 führt im allgemeinen in Assemblersprache geschriebene Anweisungen aus, die bei einer bevorzugten Ausführungsform der Erfindung Anweisungen in Assemblersprache des Virtuellen Systems (VS) der Wang Laboratories, Inc., Lowell, Massachussetts sind. Die CPU 10 ist für die wirkungsvolle Ausführung des Befehlsvorrats in VS-Assemblersprache ausgelegt; sie kann aber auch als Mehrzweck- Mikroprozessor benutzt werden. Bei der bevorzugten Ausführungsform der Erfindung ist die CPU 10 nach einem CMOS- Verfahren mit 2-Mikrometer-Struktur hergestellt; der Chip selbst ist in einem 144-Stift-Gittermatrix-Gehäuse untergebracht. Die Lehren der Erfindung können jedoch mit anderen Mikroprozessor-Vorrichtungen ausgeführt werden, die nach beliebigen zweckdienlichen Verfahrens- und Kapselungstechniken hergestellt sind.
  • Programme sind in der VS-Assemblersprache oder als Makrobefehle geschrieben. Die Makrobefehle, die in den VS Principles of Operation, Copyright 1983 für Wang Laboratories, Inc., beschrieben sind, rufen von Mikrobefehlen gebildete Unterprogramme ab. Die CPU 10 verarbeitet die VS-Makrobefehle und führt die entsprechenden Mikrobefehle aus.
  • Um die Verarbeitung der Makrobefehle zu beschleunigen, ruft die CPU 10 die Makrobefehle der Reihe nach aus einem Systemspeicher 2 ab und bringt sie in einen internen Vorabrufpuffer. Der Vorabrufpuffer speichert bis zu vier 32-Bit- Ganzwörter, von denen eines als der aktuelle Befehl betrachtet wird. Wenn der aktuelle Makrobefehl eine Verzweigung in der Programmsteuerung erfordert, wird der Inhalt des Vorabrufpuffers durch die spezifizierten Befehle ersetzt. Die Mikrobefehle, welche die von den Makrobefehlen angeforderten Funktionen ausführen, sind in einem Steuerspeicher 14 gespeichert, der gemäß einem Merkmal der Erfindung außerhalb der CPU 10 angeordnet ist, wodurch die Mikrobefehle von einer externen Logik 9 erreichbar und auf Wunsch ladbar, lesbar und/oder veränderbar sind. Der externe Zugriff auf den Steuerspeicher 14 geschieht vorzugsweise in einer Zeit, während der die Adreß- und Datenleitungen des Steuerspeichers in hochohmigem Zustand sind, z.B. während einer Rücksetz- oder Wartezustandsbedingung. Die externe Logik 9 kann ein anderer Mikroprozessor und/oder eine andere Schaltungsanordnung sein, die mit den Adreß- und Datenleitungen des Steuerspeichers gekoppelt ist und auf Speicherplätze im Steuerspeicher 14 zugreifen kann. Die Mikrobefehle können beispielsweise von einer Magnetplatte oder aus Daten geladen werden, die durch einen Übertragungsbus von einer lokalen oder enfernten Stelle empfangen wurden.
  • Üblicherweise erfordert ein Makrobefehl zur Durchführung der geforderten Operation eine Vielzahl Mikrobefehle, aber viele Makrobefehle erfordern nur einen Mikrobefehl. Die Adresse des Mikrobefehl-Unterprogramms des aktuellen Makrobefehls wird aus dem Makrobefehl-Operationscode (Opcode) berechnet. Die CPU 10 ruft die Mikrobefehl-Routine aus der berechneten Adresse ab und führt die Mikrobefehl(e) aus. Eine Steuerlogik leitet die Mikrobefehloperanden aus den interen Registern oder einer Speicherschnittstelle der CPU 10 einer Arithmetik- Logik-Einheit (ALU) zu, die einen Pseudo-Bitstellenverschieber aufweist, und gibt die Ergebnisse zum entsprechenden Register oder zum externen Speicher zurück. Nach Abarbeitung der Mikrobefehlroutine, verzweigt die Steuerung auf den nächsten zu verarbeitenden Makrobefehl, und die vorstehend beschriebene Abfolge beginnt von neuem. Eine detailliertere Beschreibung der Ausführung von Makro- und Mikrobefehlen wird weiter unten gegeben.
  • Das System 1 umfaßt auch einen 32-Bit-Systemdatenbus und einen 32-Bit-Systemadreßbus, der die CPU 10 mit dem Systemspeicher 2 und, bei einigen Ausführungsformen der Erfindung, mit einer externen Beschleunigungslogik, z.B. einem Coprozessor 3 koppelt. Das System 1 umfaßt üblicherweise auch einen Taktgenerator 4 und einen Rücksetzgenerator 5, die der CPU 10 Zeitsteuerungs- bzw. Initialisierungssignale bereitstellen.
  • Gemäß Merkmalen der derzeit bevorzugten Ausführungsform der Erfindung kann der Coprozessor 3 mit dem Ausgang des Steuerspeichers 14 für den direkten Empfang und die Decodierung des Mikrobefehlstroms verbunden sein, wenn dieser zur Ausführung durch die CPU 10 abgerufen wird. Der Coprozessor 3 kann auch über die Eingangssignalanschlüsse XCC0 und XCC1 der CPU 10 mit der CPU 10 verbunden sein, wodurch der Coprozessor 3 freigegeben ist, den Inhalt eines Zustandscoderegisters in der CPU 10 direkt zu setzen. Diese Merkmale der Erfindung schaffen eine eng gekoppelte, synchrone CPU/Coprozessor- Schnittstelle. Die CPU 10 ist auch mit Busanforderungs- und Busgewährungs-Signalleitungen versehen, die für eine lose gekoppelte, asynchrone CPU/Coprozessor-Schnittstelle sorgen. Ferner kann der Coprozessor 3 mit dem Systemdatenbus so verbunden sein, daß gemäß einem Merkmal der Erfindung der Coprozessor 3 Daten im Systemspeicher 3 an einer von der CPU 10 gelieferten Adresse lesen oder speichern kann. Dieses Merkmal der Erfindung wird weiter unten beschrieben.
  • Das System 1 kann auch eine E/A-Steuerung 6 aufweisen, die mit dem Systembus verbunden und auch mit einem Massenspeicher 7 gekoppelt ist, derart, daß Daten und Programme zwischen dem Massenspeicher und dem Systemspeicher 2 übertragbar sind. Weitere (nicht dargestellte) E/A-Steuerungen können Datenübertragungseinrichtungen, Benutzertastaturen und ähnliche Vorrichtungen mit dem System 1 verbinden.
  • Die CPU 10 umfaßt auch eine interne Speicherverwaltungseinheit (MMU) 18, die zum Umsetzen virtueller Speicheradressen in physikalische Adressen wahlweise aktivier- und deaktivierbar ist. Wenn die interne MMU 18 nicht verwendet wird, kann die Adreßumsetzung von einer wahlfreien externen Adreßumsetzungseinheit 8 ausgeführt werden.
  • In Fig. 2a bis 2d ist ein Blockschaltbild der CPU 10 dargestellt. Zur internen Architektur der CPU 10 gehören eine Arithmetik-Ausführungseinheit (AEU) 12, ein Vorabrufpuffer 16 und die interne Speicherverwaltungseinheit (MMU) 18.
  • Die AEU 12 umfaßt eine binäre 32-Bit-Arithmetik-Logik-Einheit (ALU), die logische und binäre arithmetische Operationen ausführt, eine ALU, die binär-codierte dezimale (BCD) 8-Bit-Operationen ausführt, ein 64-Bit-Pseudo-Bitstellenverschieberegister und verschiedene weitere, in Fig. 2 nicht dargestellte Register.
  • Gemäß einem Merkmal der Erfindung ist es der CPU 10 durch ihre Architektur ermöglicht, externe 24-, 31- oder 32-Bit- Adressierung zu unterstützen.
  • Gemäß einem weiteren Merkmal der Erfindung verwendet die CPU 10 extern den 56 Bit breiten Steuerspeicher 14. Die CPU 10 weist 14 Steuerspeicheradreßleitungen (CMA) auf, die das Adressieren von bis zu 16K Stellen gespeicherter Mikrobefehle ermöglichen.
  • Zur internen Architektur der CPU 10 gehören vier Busse: der A-Bus 22, der B-Bus 24, der C-Bus 26 und der Effektivadreßbus (EA) 28. Der A-Bus 22 bildet einen Pfad von Registeroperanden und dem ROM zur ALU und zum 64-Bit-Pseudo-Bitstellenverschieber. Der A-Bus wird auch zum Übertragen von Direktoperanden vom Steuerspeicher 14 zum ALU-Schieberegister benutzt. Der B- Bus 24 bildet einen Pfad von verschiedenen Registeroperanden, einschließlich der Speeicheradreßregister, zur Alu und zum Schieberegister Der C-Bus 26 leitet das Ergebnis einer Operation der AEU 12 zu den internen Registern oder zum externen Speicher zurück. Der EA-Bus 28 wird zum Übertragen von Speicheradressen benutzt und bildet einen Pfad für entweder ein Speicheradreßregister oder eine BD/BDX-generierte Adresse zur Speicherschnittstelle 30. Der EA-Bus bildet auch einen Pfad in das Effektivadreßregister (EAR) 32, das die während eines bestimmten Zyklus verwendete Speicheradresse erfaßt.
  • A1. REGISTERVORRAT
  • Die in Fig. 2 dargestellten funktionalen Registerblöcke sind nachstehend in Tabelle 1 beschrieben. Tabelle 1
  • A2. ARITHMETIK-AUSFÜHRUNGSEINHEIT
  • Die Arithmetik-Ausführungs-Einheit (AEU) 12 umfaß Arithmetik- Logik-Einheiten und unterstützt 32-Bit-Binäroperationen, unterstützt BCD-Operationen an sowohl 8- als auch 2stelligen Zahlen, sieht einen 64-Bit-Pseudo-Bitstellenverschieber vor, liefert erforderliche Zustandsinformationen (binärer Übertrag, dezimaler Übertrag, Überlauf, Null, Vorzeichen, Übertrag vom Bit 21, und ungültige BCD-Ziffer), unterstützt Ganzwort- und Halbwort-Multiplikationen, unterstützt Ganzwort-Divisionen, und wirkt auch als Adressengenerierungseinheit.
  • Die (BCD)-ALU für binärcodierte Dezimalzahlen ergänzt die binäre Haupt-ALU und den Verschieber, und übernimmt die gleichen Operanden (A-, B- und C-Busse). Ihre Aktivierung wird, wie weiter unten beschrieben wird, von einer Familie BCD-Vorgangfeld-Operationscodes verursacht.
  • Die BCD-ALU verarbeitet 32-Bit-Werte, acht 4-Bit-BCD-Ziffern (lange Operationen) oder zwei 4-Bit-BCD-Ziffern mit nullgesetzten übrigen Bit (kurze Operationen) von den A- und B-Bussen und erzeugt einen 32-Bit-Ausgang, der auf den C-Bus geleitet wird. Bei den kurzen Operationen der BCD-ALU sind die oberen drei Byte des Ausgangs zum C-Bus Nullen.
  • Bei der Subtraktion wird das Neunerkomplement des Wertes vom A-Bus zum Wert des B-Busses addiert. Die entsprechende Operation Übertrag von der vorhergehenden Stelle/Borgen wird durch den Vorgangfeld-Operationscode bestimmt.
  • Bit des Zustandsregisters (SR) 70, die von der BCD-ALU beeinflußt werden, sind ALU (SR 12), DCA (Dezimal-Übertrag in die nächsthöhere Stelle) (SR 15), und DEC (Ungültige Dezimalziffer) (SR 18). Das ALU-Zustandsbit wird auf 0 rückgesetzt, wenn die BCD-Operation der ALU einen Ausgang der Größe Null generiert (d.h. es wird eine dezimale 0 auf den C-Bus als Ergebnis einer Operation geladen). Das DCA-Zustandsbit entspricht dem Zustandsbit CA (SR 13) der binären ALU. Das Zustandsbit DEC (SR 18) ist ein Fehlerflag, das von der BCD-ALU erzeugt wird, wenn die BCD-ALU aktiviert ist und eine unzulassige Eingangsziffer auf dem A- oder dem B-Bus festgestellt wird. Eine Ziffer wird als unzulässig betrachtet, wenn ihre Binärdarstellung 101x oder 11xx ist, worin x "Ignorieren" bedeutet.
  • Zwei Binäroperationen der ALU sind Multiplikation und Division. Sowohl Ganzwort- als auch Halbwort-Multiplikation ist implementiert. Ganzwort-Multiplikation nimmt als Eingang zwei mit Vorzeichen versehene 32-Bit-Größen und erzeugt ein 64- Bit-Produkt. Die Multiplikations-Hardware implementiert den Boothschen Algorithmus. Die Ganzwort-Muliplikation benutzt vier Register: XR, YR, XL und SR. Die sich auf die Multiplikation beziehenden drei Operationscodes sind MDSET, MUL und SQLP, wie nachstehend beschrieben wird.
  • Bei der Halbwort-Multiplikation (HMUL) wird ein mit Vorzeichen versehener 16-Bit-Multiplikator mit einem mit Vorzeichen versehenen 32-Bit-Multiplikanden multipliziert, und es entsteht ein mit Vorzeichen versehenes 48-Bit-Produkt. Der Multiplikator wird aus dem niedrigstwertigen Halbwort des XL- Registers gewonnen. Der Multiplikand wird aus dem A-Bus-Operanden gewonnen. Das C-Bus-Ergebnis der HMUL ist die höchstwertigen 32 Bit des Produktes. HMUL speichert die niedrigstwertigen Bit des Produktes im höchstwertigen Halbwort des XL- Registers 68.
  • Eine Division teilt einen 64-Bit-Dividenden durch einen 32- Bit-Divisor und erzeugt einen 32-Bit-Quotienten und einen 32- Bit-Rest. Bei der Division werden die gleichen Register benutzt wie bei der Multiplikation: XR, YR, XL und SR. Die drei sich auf die Division beziehenden Operationscodes sind MDSET, SQLP und DIV.
  • Nach einer Divisionsoperation enthält der spezifizierte C- Bus-Operand den Rest und XL 68 den unberichtigten Quotienten. Das SGN-Zustandsbit gibt das Vorzeichen des Restes an. Der Rest kann eine Firmware-Berichtigung nach der DIV-Qperation benötigen. Die Firmware-Berichtigung wird folgendermaßen beschrieben: Wenn das Vorzeichenbit des Restes 1 ist, dann Divisor zum gespeicherten Rest addieren, um den endgültigen Rest zu bilden.
  • Beim Teilen eines großen Dividenden mit einem kleinen Divisor ist es möglich, daß ein Quotientenüberlauf entsteht, was angibt, daß der Quotient einen positiven 31-Bit-Wert überschritten hat. Ein Quotientenüberlauf kann auf zwei Weisen festgestellt werden. Erstens, ein Überlauf wird angegeben, wenn der Divisor kleiner oder gleich dem höchstwertigen Wort des Dividenden ist. Trifft dies nicht zu, ist Überlauf entstanden, wenn der Quotient negativ ist.
  • A3. ZUSTANDSREGISTER
  • Die CPU 10 umfaßt das 32-Bit-Zustandsregister (SR) 70 mit Bit SR0 bis SR31. Bitverarbeitungsoperationen und bedingte Verzweigung sind bei allen Zustandsbit durchführbar. Alle Zustandsbit werden durch POR (Power-On-Reset; Grundzustandseinstellung bei Wiedereinschalten des Stroms) auf Null gesetzt.
  • Fig. 2e stellt in Form eines Blockschaltbildes das Zustandsregister 70 und zugehorige Logik dar. Das Zustandsregister 70 umfaßt ein 32-Bit-Register mit einer Vielzahl Zustandseingängen, die von der AEU 12 und der MMU 18 ausgehen. Diese Eingänge beziehen sich auf die Bedingung der Zustandsbit ALU (SR 12), CA (SR13), PCA (SR14), DCA (SR15), SGN (SR26), OVF (SR17), ALW (SR19), ALH (SR20), M2S (SR21) und MMISS (SR28). Es ist ebenfalls eine Vielzahl Lastzustand-Eingangsleitungen vorgesehen zum Einspeichern des Zustandes der Zustandsbit zu einem zweckdienlichen Zeitpunkt in einem Zyklus. Ausgänge des SR 70 werden einem Puffer zugeleitet, der vereinfacht als Puffer 140 dargestellt ist und der die Zustandsbit ausgibt, die anderer Logik innerhalb der CPU 10 zugeleitet werden. Beispielsweise wird das Bit ISET (SR 29) an die Steuerspeicher-Sprungeinheit (Fig. 2c) angelegt.
  • Ein Zustandsbit-Auswahllogik-Block 142 empfängt Mikrobefehlbit CD1 [4:13] (Fig. 9) und wählt sequentiell Zustandsbit für Operationen aus. Ein Auswahlausgang wird SR 70 zugeleitet und das ausgewählte Bit wird an einen A-Zwischenspeicher 144, einen B-Zwischenspeicher 146 oder direkt an einen Operationslogik-Block 148 angelegt. Der Operationslogik-Block 148 empfängt als Eingänge auch Mikrobefehlbit CDL [4:17] (Fig. 9), welche die Art der Operation definieren, die an dem/den ausgewählten Bit auszuführen ist, die in der nachstehenden Tabelle 2 angegeben sind. Der Ausgang des A-Zwischenspeichers 144 wird auch der Sprungsteuerlogik als kennzeichnender Eingang für die Sprungbefehle zugeleitet, die ein Zustandsregisterbit testen, z.B. BF und BT (Tabelle 9). Der Ergebnisbitausgang des Operationslogik-Blocks 148 wird dem Zustandsregister 70 zum Speichern im ausgewählten Zustandsbit zugeleitet.
  • Tabelle 2 beschreibt die Funktion jedes Zustandsbits. Gemäß einem weiteren Merkmal der Erfindung ist jedes der 32 Zustandsbit als Verzweigungspunkt verwendbar. Somit kann der Mikrocode der CPU 10 ein beliebiges der frei verfügbaren Zustandsbit (SR0 bis SR11) als Sprungflag innerhalb Unterprogrammen benutzen. Tabelle 2
  • A4. BEFEHLSABRUF
  • Befehlsabruf und die Vorbereitung von Makrobefehlen benutzen im allgemeinen fünf Register, nämlich IMAR 50, MAR0 54, IREG 76, IAD 48, und CH 42.
  • Die dem Abruf und der Vorbereitung von Makrobefehlen zugeordneten Mikrobefehle sind IF, BD, BDX, BNM, CH und CHREL. IF ist ein Speicherfeld-Operationscode, der den Vorabrufpuffer auffüllt. BD und BDX sind Speicherfeld-Adreßansteuerungen, die den Vorabrufpuffer ausschöpfen. BNM ist ein Sprungfeld-Operationscode, der ebenfalls den Vorabrufpuffer ausschöpft. CH und CHREL sind Operanden des A-busses 22, die den Vorabrufpuffer ausschöpfen.
  • Die Befehlsvorabruflogik der CPU 10 umfaßt einen Vorabrufringpuffer 16. Der Puffer 16 hat vier 32-Bit-Ganzworteinträge. Der Speicherfeld-Operationscode IF des Mikrocodes löst Befehlsabrufe (Ifetches) aus, aber IFetch-Abrufe werden von der Hardware ausgeführt.
  • Mit dem Vorabrufringpuffer 16 sind zwei Zeiger verbunden. Der Schreib-Zeiger ist von IMAR[28:29] abgeleitet. Bei einem normalen IFetch-Abruf werden die Speicherlesedaten, die an der virtuellen IMAR-Ganzwort-Adresse gespeichert sind, in den Vorabrufpuffer 16 an der Schreibzeigerstelle geladen. Ein zugeordnetes gültiges Bit wird auf 1 gesetzt, und der Puffereintrag ist für die nachfolgende Verarbeitung bereit. Ein Lesezeiger wird von MAR0[28:29] abgeleitet. MAR0 [30] bestimmt, welches Halbwort des vom Lesezeiger angegebenen Ganzwortes das aktuelle Halbwort sein soll, d.h. die 16 Bit, die als nächste in der Reihe zu verarbeiten sind.
  • MAR0 54 zeigt stets auf das aktuelle Halbwort, außer während einer kurzen Umsetzungsperiode (während der Verarbeitung des Puffereintrags). Im BNM-Zeitpunkt (wenn die Auslegung des nächsten Makrobefehls beginnt), stellt MAR0 54 das niedrigstwertige Byte des aktuellen Halbwortes in das IREG 52 ein und gibt das höchstwertige Byte an die Sprunglogik ab. Wenn MAR0 54 ein Operand des C-Busses 26 ist, werden IFetch-Abrufe und die Verarbeitung von Puffereinträgen als unzulässige Operationen betrachtet. Statt dessen findet eine Vielfachverzweigung zum entsprechenden Mikrobefehl statt, der im Steuerspeicher 14 gespeichert ist. MAR0 54 wird als Operand des C-Busses 26 benutzt, bevor irgendwelche, den Vorabrufpuffer 16 berührende Operationen stattfinden, um die gültigen Bit zu löschen.
  • Die BNM-Sprungfeld-Operationscode-Familie, die CH- und CHREL- Operanden des A-Busses und die BD- und BDX-Speicherfeld- Operationscodes nehmen je ein Halbwort in Anspruch und bewirkt, daß MAR0 sich sequentiell um +2 verändert (inkrementiert). Wenn die Inanspruchnahme durch Operationen des CH-, CHREL-, BD-, BDX- oder BNM-Typs bestimmt ist, finden die nachstehend genannten Ereignisse statt, bei denen eine Halbwort-Inanspruchnahme je Mikrobefehl zulässig ist. Wird der Ganzwort-Puffereintrag in Anspruch genommen, wird das von MAR0 54 angegebene gültige Bit auf 0 rückgesetzt; das neue aktuelle Halbwort wird zwischengespeichert und MAR0 54 wird um +2 sequentiell verändert, um auf das nächste Halbwort zu zeigen.
  • IFetch-Abrufe sind gsperrt, wenn der Puffer 16 als voll gilt, d.h. wenn IMAR 50 auf einen Stelle zeigt, in der ein gültiges Bit auf 1 gesetzt ist. IFetch-Abrufe und sequentielle IMAR- Veränderungen sind nach einem IFetch Fault (Befehlabruffehler) ebenfalls gesperrt, bis MAR0 54 neu geladen ist. Wenn ein IF (Befehlabruf) ausgegeben wird für einen schon gefüllten Vorabrufpuffer, wird dieser IF von der Hardware ignoriert. Wenn MAR0 54 als Operand des C-Busses 26 benutzt wird, empfängt IMAR[0:29] C[0:29], wogegen IMAR[30:31] auf Null bleibt, alle gültigen Vorabrufpuffer-Bit auf 0 rückgesetzt werden und IFLT rückgesetzt wird.
  • Es gibt zwei Arten von Ifetch(Befehlabruf)-Trapverarbeitungsmechanismen, nämlich einen sofortigen (normalen) und einen verzögerten (PBE) Trap. Die Ausgabe einer ungültigen Adresse (INVA) oder das Auftreten eines Paritätsfehlers (MPAR) während eines Befehlabrufs gilt, vom Standpunkt eines Mikrobeehls aus, als schwerwiegender Fehler, und somit erzeugen diese Vorkommnisse einen sofortigen Trap.
  • Die Behandlung von Fehlerbedingungen, z.B. Umsetzungsfehler oder Schutzverletzungen, die während eines Befehlabrufes auftreten, wird verschoben&sub1; bis diese Adresse tatsächlich bei einer Befehlsstrom-Verarbeitung auftritt. Auf diese Weise können Befehlabrufe während eines BNM durchgeführt werden, ohne die Möglichkeit, daß der IF-Operationscode einen Neustart des gesamten Makrobefehls auslöst. Diese verzögerten Traps werden gemäß den nachstehend genannten drei Verfahren gesteuert:
  • 1. Im Falle einer Fehlerbedingung während eines Vorabrufs, wird das IFLT-Signal aktiviert. IFLT sperrt nachfolgende Befehlsabrufe und das Setzen irgendeines gültigen Vorabrufpufferbits auf 1.
  • 2. Beim Zugriff auf oder bei der Inanspruchnahme jedes Halbwortes überprüft die Hardware das entsprechende gültige Bit.
  • 3. Ist das entsprechende gültige Bit eine Null, ist eine Ausnahmeverarbeitung erforderlich. Läuft gerade eine BNM-Operation ab, wird ein BNM-Zeit-Trap signalisiert; andernfalls wird ein Trap signalisiert.
  • Bei einer Verletzung auf Prozeß-Ebene während eines IFetch, wird das STATE-Bit (SR23) geprüft, wenn die MMU 18 aktiviert ist. Bei einem System, das eine externe Umsetzungslogik 8 verwendet, wird das externe STATE-Bit in der externen Logik geprüft. Ist das STATE-Bit 0, was anzeigt, daß der Systemzustand dem vom Benutzer erzeugten Zustand entgegengesetzt ist, wird IFLT ignoriert; andernfalls werden Trap-Bedingungen wie vorstehend in den Schritten 1 bis 3 beschrieben behandelt.
  • Weil sich IF bis in die Mitte eines nachfolgenden Mikrozyklus erstreckt und die Verarbeitung von Einträgen des Vorabrufpuffers 16 mit dem Beginn des aktuellen Mikrozyklus startet, tritt der nach dem Leeren des Vorabrufpuffers 16 erste IFetch-Abruf wenigstens zwei Mikrozyklen vor einer Verarbeitung auf, um für diese Verarbeitung gültig zu sein.
  • Die Befehlsabruf-Hardwareprozedur wird nachstehend in Tabelle 3 beschrieben. Es wird sowohl das Effektivadressenregister EAR 32 als auch das Zustandsbit MMISS (SR28) aktualisiert. Tabelle 3
  • B. MIKROBEFEHLSVORRAT
  • Der Fig. 3 ist zu entnehmen, daß die Mikrobefehle 56 Bit lang sind und von vier Feldern und zwei Paritätsbit gebildet sind: das Vorgangfeld, das Zustandscodefeld, das Speicherfeld, das Sprungfeld, das hochpegelige Paritätsbit und das niedrigpegelige Paritätsbit. Die Mikrobefehlsroutine für jeden Makrobefehl beginnt mit einer Adresse, die ein Vielfaches von acht ist. Eine entsprechende Adresse der Mikrobefehlsroutine im Steuerspeicher 14 wird bestimmt, indem 002 nach dem 8-Bit- Operationscode des Makrobefehls eingegeben wird. Beispielsweise ist der Operationscode für den MVI-Makrobefehl 9216; daher ist die entsprechende Adresse der Mikrobefehlsroutine 49016.
  • Gemäß einem Merkmal der Erfindung wird der Steuerspeicher 14, in dem die Mikrobefehle gespeichert sind, jeweils mit 28 Bit adressiert, wodurch die Anzahl der erforderlichen Eingangssignalanschlüsse halbiert wird.
  • Das Mikrobefehl-Vorgangfeld ist ein 24-Bit-Feld, das die arithmetischen, logischen und Schiebeoperationen vorschreibt, die Teil jedes Mikrobefehls sind. Das Vorgangfeldformat ist in Fig. 4 dargestellt.
  • Ein Beispiel des Vorgangfeld-Operationscodes ist 1416, was veranlaßt, daß der Inhalt des A-Busses 22 durch Exklusives Oder mit dem B-Bus 24 verknüpft wird. Diese Operation beeinflußt die Zustandsbit ALU (SR12) und SGN (SR16). Diese Operation beeinflußt auch die "erzwungenen lebendigen" Bit LCA und LOVF. Es gibt vier lebendige Bit: LALU, LSGN, LCA und LOVF, die Zustandscodeoperationen beeinflussen. Diese lebendigen Bit werden je nach ihrer Zustandsbitdefinition bei jedem Mikrozyklus beeinflußt, es sei denn, sie sind "erzwungen" entsprchend einem speziellen Vorgangfeld-Operationscode.
  • Ein weiterer Vorgangfeld-Operationscode ist ACT (1F16), der auf den Adreßbus bezogene Öperanden entsprechend dem Zustand des Zustandsbit MADD (SR22) hinzufügt. Wenn MADD gleich 1 ist, wird das höchstwertige Bit des 32-Bit-Ergebnisses auf Null gesetzt. Dies führt zum Generieren einer 31-Bit-Adresse. Wenn MADD gleich 0 ist, wird das höchstwertige Byte des 32- Bit-Ergebnisses auf Null gesetzt, was gemäß einem Merkmal der Erfindung zu einer 24-Bit-Adressenkapazität führt. Somit kann die Adressenkapazität der CPU 10 ohne weiteres geändert werden, indem der Zustand des MADD-Zustandsbits geändert wird.
  • Die Operanden des A-Busses 22, des B-Busses 24 und des C-Busses 26 sind je 32 Bit lang. Die Operanden für jedes Objekt, das kleiner als 32 Bit ist, werden formatiert und mit Nullen aufgefüllt. Die Operanden des A- und des B-Busses werden in die AEU 12 eingegeben, und das Ergebnis wird im C-Bus-Operanden gespeichert. Werte für A-Bus-Direktoperanden sind 8 Bit lang (Direktro:7]) und befinden sich in Vorgang[4:ll]. Alle Direktwerte werden in die AEU über A[24:31] eingegeben; A[0:23] werden mit Nullen aufgefüllt.
  • Die Vorgangfeld-Operationscodes (Bit 0:5) steuern die Funktion der AEU 12. Zusätzlich zu arithmetischen, logischen und Verschiebe-Operationscodes, gibt es sechs Operationscodes für Sonderbefehle. Die Operationscodes unterstützen sowohl binäre als auch dezimale Operationen. Binäre und dezimale Operationen sind beide 32-Bit-Operationen.
  • Die binäre Subtraktion ist eine Einerkomplement-Subtraktion. Eine Zweierkomplement-Subtraktion kann ausgeführt werden, indem CA (SR13) auf 1 gesetzt wird. Die dezimale Subtraktion ist eine Neunerkomplement-Subtraktion. Eine Zehnerkomplement- Subtraktion kann ausgeführt werden, indem DCA (SR15) auf 1 gesetzt wird.
  • Vier dezimale Operationen (DAC, DACZ, DSCO und DSC) ergeben 32-Bit-Größen. Das Bit Dezimaler Übertrag (DCA) (SRIIS) wird als der Übertrag auf die nächsthöhere Stelle oder als Übertrag von der vorhergehenden Stelle benutzt. Dezimale Operationen setzen das Dezimal-Bit (DEC) (SR18) auf 1, wenn eine ungültige Stelle (A bis F) im A- oder B-Bus-Operanden angetroffen wird. Eine dezimale Subtraktion ist stets eine Operation B-Bus-Operand minus A-Bus-Operand (B-A), unter Benutzung des Neunerkomplements des A-Bus-Operanden.
  • Die Verschiebe-Operationscodes schreiben die Anzahl Bitpositionen vor, um die der 64-Bit-Pseudo-Bitstellenverschieber die A- und B-Bus-Operanden verschieben wird. Der Verschieber hat zwei 32-Bit-Felder: das A-Feld und das B-Feld. Der Verschieber bringt den A-Bus-Operanden in das A-Feld und den B- Bus-Operanden in das B-Feld. Die Verkettung wird um die vorgeschriebene Anzahl Bitstellen nach links verschoben, und das sich ergebende A-Feld (d.h. die 32 höchstwertigen Bit) ist der Verschieberausgang.
  • Bei einem SHL4-Operationscode ist beispielsweise die Anzahl der zu verschiebenden Bitstellen vier; der Ausgang des Verschiebers ist daher die Verkettung der 28 niedrigstwertigen Bit des A-Bus-Operanden mit den vier höchstwertigen Bit des B-Bus-Operanden: (A[4:31] verkettet mit B[0:3]). Zu jedem Linksverschiebungs-Operationscode gehört ein entsprechender Rechtsverschiebungs-Operationscode. Beim Verschieben nach links ist die zu verschiebende Menge im A-Feld und die Auffüllbit sind im B-Feld. Beim Verschieben nach rechts ist die zu verschiebende Menge im B-Feld und die Auffüllbit sind im A-Feld.
  • Wie in Fig. 5 zu erkennen und in den Tabellen 4 und 5 beschrieben ist, ist das Speicherfeld ein 9-Bit-Feld mit drei Unterfeldern: das Adreßauswahl-Unterfeld (Speicher[0:1]), das Veränderung/Trap-Unterfeld (Speicher[2:3]) und das Unterfeld Speicherfeld-Operationscode (Speicher[4 :8]).
  • Die CPU 10 enthält Adressierungen des BD- und des BDX-Typs. Eine Basis-plus-Verschiebe-Adresse (BD) wird folgendermaßen generiert. Die 12 niedrigstwertigen Bit des aktuellen Halbwortes oder der Verschiebung werden mit Nullen erweitert. Das mit Nullen erweiterte aktuelle Halbwort wird dann zum Inhalt des Universalregisters, auf das die vier höchstwertigen Bit von CH zeigen, oder des Bezugsregisters addiert. Ist das Bezugsregister GRO, wird 0 zur Verschiebung addiert.
  • Eine indizierte Basis-plus-Verschiebungs-Adresse (BDX) wird folgendermaßen generiert. Die BD-Summe wird zum Inhalt des Universalregisters addiert, auf das die vier niedrigstwertigen Bit von XREG 66 (der Index) zeigen. Wenn die vier niedrigstwertigen Bit von XREG 66 Null sind, ist die BDX-Summe der BD-Summe äquivalent. Wie weiter oben angegeben wurde, beeinflußt das Zustandsbit MADD (SR22) das BDX-Ergebnis folgendermaßen: wenn MADD = 0, wird das höchstwertige Bit genullt, wodurch eine 24-Bit- oder 31-Bit-Adressenkapazität geschaffen wird.
  • Die Hardware zum Adreßgenerieren ist in die AEU 12 eingegliedert. Die AEU und der Datenpfad werden für die BD- und BDX- Adreßgenerierung benutzt, wenn sie nicht für Vorgangfeldoperationen benutzt werden. Eine 32-Bit-BD- oder -BDX-Summe wird im Bedarfsfall berechnet, und es wird ein Warte/BDX-Zeitzustand eingefügt, bevor der BD(x)-Mikrozyklus abgerufen wird. Zeitzustände der CPU 10 werden im einzelnen nachstehend im Abschnitt D beschrieben.
  • Für jeden Mikrobefehl wird eine effektive Adresse generiert. Das Adreßauswahl-Unterfeld steuert die Adressenquelle für einen Mikrobefehlszyklus. Das Veränderung/Trap-Unterfeld steuert, wie in Tabelle 4 dargestellt, das sequentielle Verändern von MAR oder die Ganzwort- und Halbwort-Ausrichtungs-Traps. Wenn Speicher[0] niedrigpegelig ist, wählt Speicher[1] entweder MAR1 oder MAR2 als Quelle der Ausgangsadresse, und das Unterfeld Veränderung/Trap steuert die Art und Weise, wie das ausgewählte MAR sequentiell verändert (inkrementiert) wird. Wenn Speicher[0] hochpegelig ist, bestimmt Speicher[1], ob die BD- oder die BDX-Adresse generiert wird, und das Unterfeld Veränderung/Trap (Speicher[2:3]) steuert die Trapaktivierung. Der Ganzwort-Ausrichtungstrap (FAT) wird aktiv, wenn entweder EA[30] oder EA[31] auf 1 gesetzt wird. Der Halbwort- Ausrichtungs-Trap HAT wird aktiv, wenn EA[31] auf 1 gesetzt wird. Tabelle 4
  • Das Adreßauswahl-Unterfeld wählt die Adresse aus, die den Effektivadreß(EA)-Bus 28 ansteuert und somit das FAR 32 lädt. Die vier Adressenquellen sind MAR1 56, MAR2 58, die BD/BDX- Summe 36 und IMAR 50. IMAR so ist eine Adressenquelle, wenn der Befehlsabruf(IF)-Operationscode ausgegeben ist.
  • Der Speicherfeld-Operationscode bestimmt, ob eine Adresse chipextern angesteuert wird oder nicht. Wenn der Speicherfeld-Operationscode eine Nulloperation (NOP) ist, wird keine Adresse chipextern angesteuert. Der IF-Operationscode ersetzt das Adreßauswahl-Unterfeld und leitet die IMAR-Adresse auf den EA-Bus 28 durch. Ein beliebiger anderer Speicherfeld-Operationscode führt dazu, daß die effektive Adresse oder die umgesetzte effektive Adresse chipextern angesteuert wird.
  • Die Speicherfeld-Öperationscodes schreiben somit die auszuführenden Speicheroperationen vor. Es gibt drei Arten Speicherfeldoperationen: Umsetzungsoperationscodes, interne MMU- Operationscodes und nicht die Umsetzung betreffende Operationscodes. Diese Operationscodes sind in der nachstehenden Tabelle 5 beschrieben. Tabelle 5 SPEICHERFELD-OPERATIONSCODES
  • Es gibt neun auf Umsetzung bezogene Operationscodes, d.h. Speicherfeld-Operationscodes, die entweder virtuelle oder reelle Adressen abgeben können. Diese sind IF, RB, WB, WBND, RW, WW, WBND, RH und RHE. Soll die Adresse reell sein, muß das Zustandsbit PHYS (SR26) auf 1 gesetzt werden, bevor der Operationscode erreicht wird, um sicherzustellen, daß die Funktion Umsetzung von virtueller in reelle Adresse der MMU 18 die Adresse nicht umsetzt. Soll die Adresse virtuell sein, wird das Zustandsbit PHYS (SR26) auf 0 gesetzt, um sicherzustellen, daß die virtuelle Adresse in eine reelle Adresse umgesetzt wird. Tabelle 6 beschreibt die Funktion jedes der auf Umsetzung bezogenen Operationscodes. Tabelle 6 UMSETZUNGS-OPERATIONSCODES
  • Die interne MMU 18 wird durch fünf Speicherfeld-Operationscodes gesteuert. Diese sind WIPE, DATE, WITE, DIE und LRNG.
  • Die MMU 18 wird im einzelnen nachstehend in Abschnitt C beschrieben Die Tabelle 7 beschreibt diese fünf sich auf die MMU 18 beziehenden Operationscodes. Tabelle 7 SPEICHERFELD-OPERATIONSCODES
  • Es gibt zehn sich nicht auf Umsetzung beziehende Operationscodes, das heißt, Speicherfeld-Operationscodes, die nur reelle Adressen abgeben. Diese sind RTRAM, WTRAM, TRCT, RRCT, RCP, SCP, RIO, WIO, RWX und WWX. Weil der Ausgangsanschluß TRANSb auf hohen Pegel gesteuert ist, wenn irgendeiner dieser Operationscodes abgegeben wird, werden alle von diesen Operationscodes abgegebenen Adressen als reelle Adressen betrachtet, ungeachtet des Zustandes des PHYS-Zustandsbits.
  • Wie Fig. 6 zu entnehmen ist, ist das Zustandscode-Feld (CC) ein 3-Bit-Feld, das entweder eine NOP (Nulloperation) oder den Operationstyp des Zustandscodes vorschreibt. Das Format des Zustandscodes ist nachstehend in Tabelle 8 angegeben.
  • CC[0:2] spezifizieren den Operationstyp des Zustandscodes. Der tatsächliche 2-Bit-Zustandscode wird im Programm-Maskenregister (PMR) 62 gehalten. Die fünf Operationstypen des Zustandscodes sind: arithmetisch (CCA), logisch (CCL), unbenannt (CCR), Zustand (CCS) und extern (CCX).
  • Die Einstellungen des Zustandscodes gehen von lebendigen Zustandsbedingungen aus (Zustand generiert durch den aktuellen Zklus) und/oder von Zustandsbit (lebendige Zustandsbedingungen, die aus dem vorhergehenden Zyklus zwischengespeichert wurden) oder, im Falle von CCX, vom Zustand der externen Zustandscodeanschlüssen XCC0 und XCC1. Tabelle 8
  • Alle Zustandscodefunktionen, außer CCS, widerspiegeln die Ergebnisse nur der aktuellen Operation. Der (in Tabelle 11a beschriebene) Mikrobefehl des SS-Sprungfeldes oder eine vorhergehende Vorgangfeldoperation hat keine Wirkung auf die aktuelle Zustandscodeoperation, es sei denn, sie ist CCS. CCS wird nur mit den Ergebnissen der vorausgehenden Operation aktualisiert. Wenn das PMR 62 als Operand des C-Busses in der Vorgangfeldoperation angegeben ist und eine Zustandsscodeoperation spezifiziert ist, ersetzt die Zustandscodeoperation die Vorgangfeldoperation.
  • Gemäß einem Merkmal der Erfindung ermöglicht der Zustandscode-Typ CCX das Einstellen der Zustandscodes im PMR[0:1] von den Eingangssignalanschlüssen XCC0 und XCC1 her. Diese Arbeitsweise ist besonders vorteilhaft, wenn die CPU 10 zusammen mit dem Coprozessor 3 arbeitet, insofern als die Ausbildung einer eng gekoppelten Schnittstelle zwischen der CPU 10 und dem Coprozessor ermöglicht ist. Der Coprozessor 3 kann beispielsweise durch Steuern des Zustandes von XCC0 und XCC1 die Ausführung eines Mikrobefehls der CPU 10 direkt beeinflussen, z.B. die Verzweigung mit Zustandscodeprüfung (BCC), die in Tabelle 9 beschrieben wird.
  • Gemäß Fig. 7 ist das Sprungfeld ein 18-Bit-Feld, das die Änderung des Mikrobefehlszählers (IC) und der Zustandsbit steuert. Eine der zusätzlichen Funktionen des Sprungfeldes ist die Durchführung des sprungs zu Operationen des Nächsten Makrobefehls (BNM).
  • Das Sprungfeld umfaßt zwei Unterfelder: das Unterfeld Sprungoperationscode (Sprung[0:3]) und das Unterfeld Sprungadresse (Sprung[4:17]). Für einige Operationen, die nachstehend beschrieben werden, ist im Unterfeld Sprungadresse zwischen einem Unterfeld A-Bit (Sprung[4:8]) und einem Unterfeld Sprungadresse (Sprung[9:17]) unterschieden.
  • Die fünf Typen der Sprungfeldoperationen sind: Sprungoperationen, Sprung zu Operationen des nächsten Makrobefehls (BNM), Vielfachoperationen, Unterprogrammoperationen und Zustandseinstelloperationen
  • Die Sprungoperationen, nämlich BU, BCC, BF und BT sind in Tabeile 9 beschrieben. Tabelle 9
  • Der Sprung zum Nächsten Makrobefehl (BNM) bereitet die CPU 10 auf die Verarbeitung des nächsten Makrobefehls vor und ermöglicht, wie noch beschrieben wird, die Verarbeitung einiger Ausnahmen. BNM-Operationen prüfen auf BNM-Zeit-Traps, bilden eine 14-Bit-Vielfach-Sprungadresse unter Benutzung des Zustandsbits ISET (SR29) und des aktuellen Halbwortes (CH 42), stellen das IREG 76 ein und laden IAD 48 vom MAR0 54.
  • Der BNM-Algorithmus ist in Tabelle 10 für eine BNM-Operation beschrieben. Einige allgemein benutzte BNM-Operationen (BNM, BNMX, BNMV und BNMI) sind als Pseudo-Operationscodes implementiert. Das Format des BNM-Pseudo-Operationscodes ist in Fig. 8 dargestellt. Die darin angegebenen Bit sind folgendermaßen definiert:
  • EIRG ist das Feld Aktiviere IREG-Aktualisierung. Eine 1 in EIREG ermöglicht die Aktualisierung von IREG; eine 0 in EIREG sperrt die Aktualisierung von IREG.
  • EIAD ist das Feld Aktiviere IAD-Aktualisierung. Eine 1 in EIAD ermöglicht die Aktualisierung von IAD; eine 0 in EIAD sperrt die Aktualisierung von IAD.
  • EBT ist das Feld Aktiviere BNM-Zeit-Traps. Eine 1 in EBT aktiviert alle BNM-Zeit-Traps, außer Sprung, wenn Vorabrufpuffer Leer (BPBE); eine 0 in EBT sperrt alle BNM-Zeit-Traps, außer BPBE.
  • EBOVT ist das Feld Aktiviere Sprung wenn Überlauf-Trap (BOVT). Eine 1 in EBOVT aktiviert den BOVT-Trap; eine 0 in EBOVT sperrt den BOVT-Trap. Tabelle 10 BNM-Algorithmus Tabelle 11
  • Die CPU 10 enthält auch eine Zustandseinstell-Operation (SS), die den Mikrocode befähigt, Zustandsbit, einschließlich der weiter oben genannten frei verfügbaren Bit (SR0 bis SR9) zu beeinflussen. Die Felder A-Bit und B-Bit wählen je eines der 32 Zustandsbit der CPU 10 aus. Die ausgewählten Zustandsbit werden in Übereinstimmung mit dem Zustandsoperationscode verarbeitet, und der sich ergebende Bitwert wird im Feld B-Bit gespeichert. Wenn ein Zustandsbit auch von einer Vorgangoder Speicherfeldoperation beeinflußt wird, wird die SS-Operation ersetzt. Wenn irgendwelche Trapbedingungen ausgeschlossen sind, ist die nächste Adresse des Befehlszählers (IC) IC+1.
  • Das Format des SS-Operationscodes ist in Fig. 9 dargestellt und in Tabelle 12 beschrieben. Tabelle 12
  • Es leuchtet ein, daß der SS-Operationscode dafür sorgt, daß der Wert irgendeines der Zustandsregisterbit, z.B. das frei verfügbare Bit SR1, logisch modifiziert wird durch den Zustand eines anderen Zustandsregisterbit, z.B. des MMISS (SR28), und daß das Ergebnis in SR1 gebracht wird. Nachfolgende Sprungoperationen, z.B. Sprung Falsch (BF) oder Sprung Wahr (BT), können dadurch die Steuerung an andere Mikrobefehlstellen übertragen. Eine solche Modifizierung des Zustandsregisterbits und die Ergebnisse eines solchen bedingten Sprungsführen zur Formulierung hochwirksamer und leistungsfähiger Makrobefehle.
  • In Fig. 2c ist in Form eines Blockschaltbildes eine Sprungeinheit 120 der CPU 10 dargestellt. Die Sprungeinheit 120 umfaßt einen Steueradreßzwischenspeicher 122 mit 14 Ausgängen, welche die CMA zum Steuerspeicher 14 definieren. Der Steueradreßzwischenspeicher 122 empfängt Eingänge von einer Vielzahl Quellen, je nach Sprungoperation oder Adreßtyp, der aktuell verwendet wird. Das Mikrobefehl-Sprungfeld (Fig. 3) wird dem Zwischenspeicher 124 für Steuerdaten1 (CD1) bereitgestellt. Ein Ausgang des CD1-Zwischenspeichers 124 ist mit dem Eingang des Steueradreßzwischenspeichers 122 verbunden, der auch einen Ausgang hat, um die Steueradresse an einen Steueradreßinkrementer (CAI) 126 zu leiten. Der CAI 126 stellt einem Steuerunterprogramm-Stapelspeicher (CSS) 128 eine inkrementierte Steueradresse bereit, wenn es notwendig ist, Mikrobefehladressen wegen des Auftretens von Befehlen zur Steuerungsübertragung zu verschachteln. Der Steueradreßzwischenspeicher 122 empfängt auch einen Eingang von einem Treiber 130 des Nächsten Makrobefehls, der als seinen Eingang ISET (SR28) und das höchstwertige Bit des CH-Registers 42 empfängt. Der Treiber des Nächsten Makrobefehls liefert im allgemeinen die Anfangsadresse eines Mikrobefehls oder von Mikrobefehlen, der/die einem Makrobefehl entsprechen. Ein Vielfachtreiber 132 empfängt einen Eingang von BMWR 38 und wird für Vielfachsprungoperationen verwendet. Ein Trapvektortreiber 134 empfängt einen Eingang, der einer Decodieroperation aller Trapbedingungen der CPU 10 entspricht und der hierfür eine Mikrobefehl-Trapvektoradresse für den Zugriff auf trapbezogene Mikrobefehle bereitstellt.
  • C. ADRESSUMSETZUNG
  • Viele Datenverarbeitungsysteme, die einen Datenprozessor verwenden, sind erforderlich, um Adreßumsetzungen für bestimmte Speicherfeldoperationen auszuführen, die auf den Hauptspeicher zugreifen. In diesen Fällen muß die effektive Adresse von einer virtuellen Adresse in eine reelle Adresse umgesetzt werden, bevor sie vom Hauptspeicher benutzt werden kann. Die CPU 10 kann im allgemeinen Adreßumsetzungen auf einem von zwei Wegen ausführen: die CPU 10 kann entweder die interne Speicherverwaltungseinheit (MMU) 18 oder eine externe Adreßumsetzungs-Hardware, z . B. einen Speicher-Umsetzungs-RAM (TRAM) benutzen.
  • Die interne MMU 18 kann zum Umsetzen von Adressen für Speicherfeldoperationen benutzt werden, die auf den Hauptspeicher zugreifen (Operationscodes 0xxxx). Zu diesen Operationen gehören Speicherlese-, Speicherschreib- und IFetch(Befehlabruf)-Operationen. Wenn die MMU 18 eine Adreßumsetzung ausführt, wird die effektive Adresse umgesetzt, bevor sie chipextern angesteuert wird. Die Arbeitsweise der internen MMU 18 wird nachstehend beschrieben.
  • Die CPU 10 unterstützt auch die Benutzung von externer Hardware für die Adreßumsetzung. Soll eine Adreßumsetzung von der externen Hardware ausgeführt werden, wird die nicht umgesetzte effektive Adresse chipextern angesteuert und extern umgesetzt. Die externe Adreßumsetzungs-Hardware kann in mehreren Weisen ausgeführt sein und kann eine Umsetzungseinrichtung des Typs Nachschlagtabelle aufweisen, z.B. eine im RAM gespeicherte Tabelle. Bestimmte Mikrobefehle, z.B. RTRAM und WTRAM, und Ausgangssignale, z.B. TRANSb, unterstützen die Arbeitsweise der externen Adreßumsetzungs-Hardware.
  • Das MMU-Zustandsbit (SR27) gibt an, ob die MMU 18 Adreßumsetzungen ausführen soll oder nicht. Wenn das MMU-Zustandsbit gleich 1 ist, führt die MMU Adreßumsetzungen für bestimmte Speicherfeldoperationen unter Bedingungen aus, die nachstehend beschrieben werden. Wenn das MMU-Zustandsbit gleich 0 ist, führt die MMU 18 keine Adreßumsetzungen durch und eine Adreßumsetzung wird, wenn überhaupt, durch die externe Hardware ausgeführt.
  • Im allgemeinen können die Adreßformate der internen MMU 18 zum Definieren und Steuern der Umsetzung einer effektiven Speicheradresse von einer virtuellen Adresse in eine reelle Adresse bei bestimmten Speicherfeldoperationen benutzt werden. bie Formate der virtuellen und reellen Adressen bei Verwendung der MMU 18 zur Adreßumsetzung sind in Fig. 10a bzw. 10b dargestellt.
  • Im allgemeinen setzt die MMU 18 die effektive Adresse in der Weise um, daß sie eine virtuelle 21-Bit-Seitenzahl gemäß Fig. 10a durch eine 21-Bit-Seitenrahmenzahl gemäß Fig. 10b ersetzt. Durch die Umsetzung bleibt der Adreßrelativzeiger in die Seite unverändert.
  • Die von der MMU 18 zur Durchführung von Adreßumsetzungen benötigten Informationen sind in Form von Adreßumsetzungs-Einträgen (ATE) im ATE-Register 34 gespeichert. Jeder ATE-Eintrag enthält die virtuelle Seitenzahl, die Seitenrahmenzahl, die Ringzahl und ein Schreibschutzbit einer virtuellen Seite des Hauptspeichers.
  • Sowohl die virtuelle Seitenzahl als auch die Seitenrahmenzahl sind vorzeichenlose 21-Bit-Ganzzahlen. Die Ringzahl ist eine vorzeichenlose 3-Bit Ganzzahl, welche die tiefste Prozeßstufe angibt, die für den Zugriff auf die Seite bei einer Lese- oder Schreiboperation im durch den Benutzer erzeugten Zustand zulässig ist (Zustandsbit STATE (SR23) gleich 1). Das Schreibschutzbit ist ein einzelnes Bit, das angibt, ob die Seite schreibgeschützt ist oder nicht. Ist das Schreibschutzbit gleich 1, ist die Seite schreibgeschützt; andernfalls ist die Seite nicht schreibgeschützt.
  • Bei der bevorzugten Ausführungsform der Erfindung speichert die MMU 18 bis zu 20 ATE-Einträge. Gemäß einem Merkmal der Erfindung werden vier der ATE als Dauereinträge und 16 als temporäre Einträge betrachtet. Das Speichern der ATE in der MMU 18 wird durch einen Mikrocode gesteuert, der die weiter oben beschriebenen Speicherfeldoperationen WIPE, WITE, DIE und DATE anwendet. Beispielsweise können die Dauer-ATE-Einträge mit Vorteil zum Speichern von Umsetzungsdaten, die sich auf das Betriebssystem (OS) beziehen, verwendet werden, wodurch es dem OS ermöglicht wird, wirkungsvoller abzulaufen, weil es nicht häufig "ausgelagert" wird, um im Speicher Platz zu machen. Die 16 temporären ATE-Einträge werden durch eine Speicherverwaltungstechnik "am wenigsten vor kurzem benutzt" (LRU) verwaltet, um, wenn notwendig, einen Eintrag oder Einträge zu entfernen, die am weitesten zurückliegend geladen wurden und die für eine Adreßumsetzung am wenigsten vor kurzem benutzt worden sind. Dieser LRU-Algorithmus ist in einem Kellerspeicher implementiert, wodurch ein ATE-Eintrag, der für eine Umsetzung gebraucht wird, dem Stapel entnommen und oben auf den Stapel wiedereingefügt wird, wobei der Stapel nach unten geschoben wird, um Platz für den nach oben gebrachten Eintrag zu machen. Es leuchtet ein, daß durch diese Technik sichergestellt ist, daß auf die Einträge im unteren Teil des Stapels am wenigsten vor kurzem zugegriffen worden ist.
  • Bei jedem Mikrobefehl nimmt die MMU 18 an, daß die effektive Adresse eine virtuelle Adresse ist, und vergleicht die virtuelle Seitenzahl der effektiven Adresse mit der virtuellen Seitenzahl jedes in der MMU 18 gespeicherten ATE. Wenn die virtuelle Seitenzahl der effektiven Adresse der virtuellen Seitenahl irgendeines in der MMU 18 gespeicherten ATE nicht gleich ist, dann wird ein MMU-Fehlerzustand als für den Mikrobefehl bestehend angenommen; andernfalls besteht ein MMU- Fehlerzustand nicht. Ein MMU-Fehlerzustand zeigt somit an, daß in der MMU 18 kein ATE für das Umsetzen der effektiven Adresse verfügbar ist. In diesem Fall werden die Seitenrahmeninformaionen (reelle Adresse [0:20]), die chip-extern angesteuert werden, auf Nullen gesetzt.
  • Bei jedem Mikrobefehl ändert die MMU 18 das Zustandsbit MMISS (SR28), derart, daß angegeben wird, ob für diesen Befehl ein MMU-Fehlerzustand besteht. Das MMISS-Zustandsbit wird auf 1 gesetzt, wenn ein Fehlerzustand vorliegt; andernfalls wird das Zustandsbit auf 0 gesetzt. Diese Bedingung tritt für jeden Mikrobefehl auf, unabhängig davon, ob die MMU eine Adreßumsetzung durchführt oder nicht.
  • Bei jedem Mikrobefehl setzt die MMU 18 die effektive Adresse um, wenn und nur wenn jede der nachstehend genannten Bedingungen zutrifft: das MMU-Zustandsbit (SR27) ist gleich 1 (vor Ausführung des Befehls); die Zustandsbit VMPC (SR25) und PHYS (SR26) sind beide gleich 0 (vor Ausführung des Befehls); und die Speicherfeldoperation ist ein Hauptspeicherzugriff (Operationscodes 0xxxx).
  • Wie weiter oben angegeben, zeigen die Zustandsbit VMPC und PHYS, wenn sie gleich 1 sind, an, daß die effektive Adresse bereits eine reelle Adresse ist und unterdrücken somit die Umsetzung der Adresse durch die MMU 18.
  • Bei jedem Mikrobefehl, für den die MMU 18 eine Adreßumsetzung ausführt, ist die Umsetzung erfolgreich, wenn ein MMU- Fehlerzustand nicht existiert. In diesem Falle wird die reelle Adresse aus dem ATE entwickelt, der die gleiche virtuelle Seitenzahl wie die effektive Adresse hat. Die reelle Adresse wird unter Benutzung des weiter oben im Zusammenhang mit Fig. 10 beschriebenen Formats entwickelt.
  • Bei jedem Mikrobefehl, für den die MMU 18 eine Adreßumsetzung ausführt, ist die Umsetzung nicht erfolgreich, wenn ein MMU- Fehlerzustand besteht. In diesem Falle wird die effektive Adresse in eine nur aus Nullen bestehende reelle Adresse umgesetzt, und diese reelle Adresse wird chipextern angesteuert. Bei jedem dieser Mikrobefehle, für welche die MMU 18 eine nicht erfolgreiche Adreßumsetzung ausführt, wird entweder ein MMISS-Trap oder eine IFLT-Bedingung signalisiert. Eine IFLT-Bedingung wird angezeigt, wenn die Speicherfeldoperation eine IFetch(Befehlsabruf)-Operation ist; andernfalls wird ein MMISS-Trap angezeigt. Die Ausgangssignale Datenstrobe (DS) und Datenbusfreigabe (DBEN) sind gesperrt, wenn eine MMU- Fehlerbedingung festgestellt ist.
  • Bei jedem Mikrobefehl, für den die MMU 18 eine erfolgreiche Adreßumsetzung ausführt, tritt eine Schutzverletzung ein, wenn die eine oder die andere von zwei Bedingungen als bestehend festgestellt wird. Erstens, wenn während einer Leseoperation das Zustandsbit STATE gleich 1 ist (vor Ausführung des Befehls) und die Lese-Ringzahl des ATE größer als die im internen Ringregister 66 gespeicherte Ringzahl ist, oder zweitens, wenn während einer Schreiboperation das Zustandsbit STATE gleich 1 ist (vor Ausführung des Befehls) und die Schreib-Ringzahl des ATE größer als die im internen Ringregister 66 gespeicherte Ringzahl ist. Wie weiter oben beschrieben wurde, gibt das Zustandsbit STATE (SR23) an, ob der aktuelle Vorgang in einem durch den Benutzer oder durch das System erzeugten Zustand ist. Der Vorgang ist in dem durch den Benutzer erzeugten Zustand, wenn das STATE-Bit gleich 1 ist, und im Systemzustand, wenn das STATE-Bit gleich 0 ist. Das interne Ringregister 66 enthält die Ringzahl des aktuellen Vorganges. Sein Wert wird durch einen Mikrocode eingestellt, der, wie weiter oben beschrieben wurde, die Speicherfeldoperation LRNG benutzt.
  • Wenn bei einem bestimmten Mikrobefehl die MMU 18 eine erfolgreiche Adreßumsetzung ausführt, während das STATE-Zustandsbit gleich 1 ist und eine Schutzverletzung eintritt, wird ein RPVM-Trap-, ein WPVM-Trap- oder ein IFLT-Zustand signalisiert. Ein IFLT-Zustand wird signalisiert, wenn die Speicherfeldoperation eine IFetch-Operation ist; ein WPVM- Trap wird signalisiert, wenn die Speicherfeldoperation eine Speicherschreiboperation ist (Operationscodes 0xxxx1). Andernfalls wird ein RPVM-Trap signalisiert. In all diesen Fällen wird das Ausgangssignal DS nicht generiert. Wenn das STA- TE-Zustandsbit gleich 0 ist, besteht keine Schutzverletzung.
  • Die ATE-Einträge werden in den 20 Registern gespeichert, die zusammen als ATE-Register 34 bezeichnet sind. Jeder in der MMU 18 gespeicherte ATE ist in einem getrennten ATE-Register gespeichert. In der Grundzustandseinstellung bei Wiedereinschalten des Stroms (POR) wird jedes ATE-Register so initialisiert, daß es leer ist. Nach der POR werden ATE-Einträge in den ATE-Registern nur durch Ausführen der Speicherfeldoperationen WIPE oder WITE gespeichert, wie weiter oben angegeben wurde. ATE-Einträge können aus der MMU 18 durch Anwenden der Speicherfeldoperationen DIE oder DATE entfernt werden, ebenfalls wie weiter oben beschrieben wurde.
  • Fig. 2d stellt mit weiteren Einzelheiten die MMU 18 dar; aus ihr kann entnommen werden, daß die ATE-Register 34 von einer Reihe Seitenrahmeneintragregister 100 und einer Reihe Register 102 für Virtuelle Seitenzahlen gebildet sind. Eine Registerreihen-Steuerlogik 104 verwaltet die Operation des weiter oben beschriebenen Algorithmus zur Speicherung der am wenigstens vor kurzem benutzten ATE-Einträge, verwaltet die Steuerung des MMISS-Zustandsregisterbits (SR 28) und die beschriebenen übrigen Funktionen, die sich auf die Arbeitsweise der MMU 18 beziehen. Der EA-Bus 28 ist mit einem Effektivadreß- Zwischenspeicher 106 verbunden, der zwischengespeicherte effektive Adressen zum Speichern in einem Register 102 für Virtuelle Seitenzahlen bereitstellt. Mit dem FA-Bus 28 ist auch ein Datenzwischenspeicher 108 verbunden; er gibt zwischengespeicherte Daten zum Speichern im Seitenrahmeneintrag-Register 100 und Ringregister 66 ab. Ein Ausgangsadreßzwischenspeicher 110 empfängt Adressen von drei möglichen Quellen und steuert den Systemadreßbus an.
  • Wie angegeben worden ist, gibt es gemäß einem Merkmal der Erfindung zwei Arten ATE-Register: für Dauereinträge und für temporäre Einträge. Es gibt vier Register für Dauereinträge und 16 Register für temporäre Einträge. Der Unterschied zwischen den Registern für Dauereinträge und für temporäre Einträge besteht in der Art und Weise, wie die WIPE- und WITE- Befehle ATE-Einträge in den Registern speichern. Soweit Adreßumsetzung und die Bestimmung des MMU-Fehlerzustandes betroffen sind, besteht kein bedeutender Unterschied zwischen den ATE-Einträgen, die in den Registern für Dauer- und temporäre Einträge gespeichert sind.
  • Die WIPE- umd WITE-Speicherfelder speichern ATE-Einträge in der MMU 18. Für jede dieser Operationen wird die virtuelle Seitenzahl des ATE durch die effektive Adresse in Übereinstimmung mit der Form der virtuellen Adresse bestimmt, die weiter oben im Zusammenhang mit Fig. 10 angegeben wurde. Die Seitenrahmenzahl, die Ringzahl und das Schreibschutzbit des ATE werden durch die Daten aus dem vorhergehenden C-Bus 26 [0:29] bestimmt. Diese Daten werden als Seitenrahmeneintrag bezeichnet. Die Formate eines ATE und eines Seitenrahmeneintrags für die WIPE- und WITE-Operationen sind in Fig. 11a bzw. 11b dargestellt.
  • Die WIPE-Operation speichert den ATE in einem Dauereintragregister. Die Dauereintragregister sind mit 0 bis 3 numeriert.
  • Das Register, in dem der ATE gespeichert ist, wird durch die zwei niedrigstwertigen Bit der effektiven Adresse, LFA [30:31], bezeichnet, die in die Registerreihen-Steuerlogik 104 eingegeben werden.
  • Die WITE-Operation speichert den ATE in dem Register der am wenigstens vor kurzem benutzten temporären Einträge. Die Benutzung eins temporären Registers wird angenommen, entweder, wenn ein ATE in ihm unter Benutzung der WITE-Operation gespeichert wird, oder wenn das Register voll ist und der in ihm gespeicherte ATE zur Adreßumsetzung benutzt wird.
  • Die MMU 18 führt eine WIPE- oder WITE-Operation nicht aus, wenn sich daraus zwei ATE-Einträge ergeben würden, die mit derselben virtuellen Seitenzahl gespeichert würden. Insbesondere wird ein ATE entweder durch einen WIPE- oder einen WITE-Mikrobefehl nur dann gespeichert, wenn für den Mikrobefehl ein MMU-Fehlerzustand (SR28 = 1) besteht. Wenn ein WIPE- oder WITE-Speicherfeld-Mikrobefehl einen ATE in einem ATE- Register speichert, der voll war, bevor die Operation ausgeführt wird, wird der zuvor im Register gespeicherte ATE aus der MMU 18 effektiv entfernt. Die Ausgabe eines weiter unten beschriebenen DIE-Befehls für; die vor einem WIPE-Befehl zu schreibende Seite stellt sicher, daß der Eintrag in ein ATE- Register geladen wird.
  • Die Speicherfeldoperationen DIE und DATA werden benutzt, um ATE-Einträge aus der MMU 18 zu entfernen. Die DIE-Operation entfernt jeden ATE, der bei Benutzung des weiter oben genannten Formats der virtuellen Adresse dieselbe virtuelle Seitenzahl hat wie die effektive Adresse. Wenn für den Mikrobefehl ein MMU-Fehlerzustand besteht, wird kein ATE entfernt. Wenn ein MMU-Fehlerzustand nicht besteht, wird der ATE entfernt, und das ATE-Register, das den entfernten ATE enthielt, wird leer. Die DATE-Operation entfernt alle in temporären ATE-Registern gespeicherten ATE-Einträge und verursacht dadurch, daß alle temporären ATE-Register leer werden.
  • Zum Prüfen des Inhaltes der MMU, können alle 220 möglichen Einträge unter Anwendung des TIE-Pseudo-Operationscodes (NOP - Nulloperation) getestet werden. Die TIE-Speicherfeld- Pseudo-Operation prüft auf das Vorhandensein eines ATE mit einer vorgeschriebenen virtuellen Seitenzahl. Die virtuelle Seitenzahl ist durch die effektive Adresse in Übereinstimmung mit dem weiter oben beschriebenen Format der virtuellen Adresse vorgeschrieben. Diese Pseudo-Operation ist als Speicherfeld-Nulloperation (NOP) implementiert, und das Vorhandensein des ATE kann bestimmt werden durch Überprüfen des MMISS-Zustandsbits (SR28) nach der Operation.
  • Wie angegeben, wird das Ringregister 66 zum Speichern der Ringzahl des aktuellen Vorganges benutzt. Die Ringzahl ist eine vorzeichenlose 3-Bit-Ganzzahl, welche die Vorgangstufe des aktuellen vorganges angibt und zum Bestimmen des Auftretens von Schutzverletzungen benutzt wird. Der Wert des internen Ringregisters kann nur durch die Speicherfeldoperation LRNG geschrieben werden. Die Speicherfeldoperation LRNG speichert das vorhergehende C[29:31] im internen Ringregister.
  • Die vorstehend beschriebene externe Adreßumsetzungslogik kann bestimmen, ob ein bestimmtes Speicherfeld eine Adreßumsetzung benötigt, indem sie die Speicherfeldoperation an den Steuerdatenanschlüssen überprüft. Wenn bei einem externen Umsetzungsystem der TRANSb-Anschluß gleich 0 ist, ist eine Umsetzung erforderlich. Wenn der TRANSb-Anschluß gleich 1 ist, ist keine Umsetzung erforderlich.
  • D. VERARBEITUNGSZUSTÄNDE UND ZEITSTEUERUNG
  • Bei einer bevorzugten Ausführungsform der Erfindung dauert ein normaler Mikrobefehlzyklus 210 Nanosekunden. Wie Fig. 12 zu entnehmen ist, besteht jeder 210-ns-Zyklus aus zwei 105- ns-Takt(T)-Zuständen. Jeder 105-ns-T-Zustand besteht aus drei 35-ns-Phi-Zuständen. Der erste dieser T-Zustände ist der Abrufzustand, und der zweite ist der Speicherungs-Zustand. Die normale Zeitsteuerung wird von einem TAKT-Eingang in die CPU 10 abgeleitet.
  • Die Vorgangs- und Sprungfeldoperationen erstrecken sich vom Beginn eines Abruf-Zustandes bis zum Ende des darauffolgenden Speicherungs-Zustandes. Diese Zeitspanne definiert einen Mikrozyklus. Speicherfeldoperationen starten zu Beginn eines Abruf-Zustandes, und der Speicherzyklus endet bei Beendigung des nächsten Abruf-Zustandes, vorausgesetzt, daß keine Warte- oder Busgewährungs-Zustände angetroffen werden.
  • Die CPU 10 hat neun Zeitablaufzustände: Initialisierung, Abruf, Speicherung, Warten/BDX, Busgewährung, vorläufige Busge- Währung, Arithmetik, Trap1 und Trap2. Die Tabelle 13 beschreibt jeden dieser Zustände, die auch in Fig. 12b bis 12d dargestellt sind. Tabelle 13
  • Gemäß einem weiteren Merkmal der Erfindung bringt die CPU 10 zu einem Zeitpunkt, wenn der Bus nicht zum Übertragen von Adreßinformationen an den Systemspeicher 2 benötigt wird, das Ergebnis einer vorhergehenden logischen, arithmetischen oder Verschiebeoperation der AEU 12 auf den Systemadreßbus. Diese Fähigkeit vereinfacht Diagnoseoperationen, bei denen die AEU 12 durch Beobachten des Systemadreßbusses während des entsprechenden Abschnitts eines Zyklus direkt überwacht werden kann. Diese Ergebnisdaten der AEU 12 entstehend während des Phi-2-Zustandes des Speicherungsabschnittes eines Zyklus, wobei die Hauptspeicheradresse zuvor irgendwann während des vorausgehenden Abruf-Abschnitts des Zyklus bereitgestellt worden ist. Insoweit das Strobesignal für die Adreßübergabe (AS) üblicherweise zum Blockieren des Adreßbusses benutzt wird, kann der Adreßbus danach zum Übertragen der Ergebnisinformationen der AEU 12 benutzt werden. Das Ergebnis der AEU 12 ist mit dem FA-Bus 28 gekoppelt und wird auf den Systemadreßbus gebracht. Die Trap-Strobe-Ausgangssignalleitung (Tabelle 14) wird während des Phi-2-Abschnitts des Speicherungs- Zustandes aktiviert, um, wenn gewünscht, diese Ergebnisinformationen der AEU 12 innerhalb externer Hardware zwischenzuspeichern.
  • E. EXTERNE SCHNITTSTELLE
  • Die externen Schnittstellen-Signalanschlüsse der CPU 10 sind in Tabelle 14 dargestellt. Tabelle 14
  • Wie angegeben wurde, ist der Steuerspeicher 14 als 28-Bit- Wörter (CMD[0:27]) ausgelegt. Zwei Zugriffe je Mikrozyklus führen zum Zugriff auf 56 Informationsbit. Der logische Zustand des Signalanschlusses CMHS zeigt den 28-Bit-Teil des Steuerspeichers 14 (CD1 oder CD2) an, auf den zugegriffen wird. Der erste Zugriff (CD1), während dessen CMHS niedrigpegelig ist, erhält die ausgewählten Mikrobefehl-Speicher- und Sprungfelder. Der zweite Zugriff (CD2), während dessen CMHS hochpegelig ist, erhält die Mikrobefehl-Vorgang- und Zustandscodefelder. CMA[0:13] definiert eine 14-Bit-Adresse in den Steuerspeicher 14. Ein solcher zweistufiger Zugriff führt zum zeitverschachtelten Ausführen des Mikrocodes. Das als erstes eingelesene Segment des Mikrocodes (CD1) ist auch im allgemeinen von Mikrocodedaten gebildet, die zum Decodieren und Verarbeiten längere Maschinenzeit erfordern. Somit sind bei einen bestimmten Zyklus die Speicher- und Sprungfelder in der CPU 10 länger resident als die Vorgang- und Zustandscodefelder.
  • Es leuchtet ein, daß sich aus der Anordnung des Mikrobefehlsspeichers der CPU 10 im externen Steuerspeicher 14 mehrere bedeutende Vorteile ergeben.
  • Ein Vorteil ist, daß Aktualisierungen und Änderungen der Mikrobefehle auf relativ einfache Weise ausgeführt werden können. Wenn der Steuerspeicher 14 beispielsweise von einem ROM oder einem PROM gebildet ist, können installierte Systeme ohne Schwierigkeit durch einfaches Ersetzen des Steuerspeichers 14 aufgerüstet werden, ohne daß die üblicherweise teuere CPU 10 ersetzt werden muß. Vorzugsweise umfaßt der Steuerspeicher 14 einen RAM, der bei jedem Einschalten des Systems geladen werden kann) wodurch am Mikrocode auszuführende Änderungen durch einfaches Laden eines neuen Mikrocodes von beispielsweise einer Diskette über eine externe Logik 9 ermöglicht werden. Wie weiter oben angegeben, kann auf den externen Mikrobefehlsspeicher auch während einer Zeit zugegriffen werden, in der die CPU 10 sich in einem Wartezustand befindet.
  • Ein weiterer Vorteil des externen Steuerspeichers 14 entsteht für die Systeme, die externe Schaltungsanordnungen verwenden, z.B. einen Gleitkommabeschleuniger oder Coprozessor, die mit der CPU 10 synchron oder asynchron arbeiten. Insoweit als ein Coprozessor vorzugsweise vom Betriebszustand der CPU 10 informiert ist, kann der Coprozessor ein bestimmtes Feld oder bestimmte Felder der Mikrobefehle direkt decodieren, wenn sie für die Ausführung abgerufen werden. Beispielsweise kann ein Coprozessor die CMHS-Ausgangssignalleitung überwachen und, wenn festgestellt wird, daß CMHS niedrigpegelig ist, den Zustand des Operationscodeteils vom Speicherfeld des Mikrobefehls zwischenspeichern. Das Speicherfeld kann danach, in Übereinstimmung mit Tabelle 5, decodiert werden, um die Empfangs-Operationscodes vom Coprozessor (RCT) und die Übertragungs-Operationscodes zum Coprozessor (SCP) festzustellen, und dadurch das Zusammenwirken zwischen der CPU 10 und dem Coprozessor zu vereinfachen. Ohne solchen direkten Mikrobefehlzugriff, wie er durch den externen Steuerspeicher 14 ermöglicht wird, kann die CPU 10 wenigstens zusätzliche fünf Ausgangsanschlüsse nötig haben, um den Zustand des Speicherfeld-Operationscodes zu übertragen.
  • Zur Unterstützung der gemeinsamen Nutzung der Systemressourcen der CPU 10 durch asynchrone Geräte, z.B. eines Speichers und eines oder mehrerer asynchroner Coprozessoren, sind die weiter oben beschriebenen Busanforderungs- und Busgewährungssignale als Teil in der Anschlußdefinition der CPU 10 enthalten. Der BR-Eingang wird am Ende des Speicherungs-Zustandes abgetastet, und ein Zustand Vorläufige Busgewährung und danach ein Zustand Busgewährung werden generiert, wenn BR aktiviert ist. Der Zustand Busgewährung läßt DATA[0:31] drei Zustände annehmen und aktiviert BG.
  • Wie weiter oben angegeben wurde, ist ein Verfahren zur Leistungserhöhung der CPU 10 die Hinzufügung externer aufgabenorientierter Hardware. Ein Gleitkommabeschleuniger ist nur ein Beispiel eines solchen Gerätes. Externe Beschleunigungs- Hardware kann einen zusätzlichen, gemeinsam genutzten Bereich des Steuerspeichers 14 verwenden. Der zusätzliche Bereich des Steuerspeichers 14, der in Fig. 1 mit 14' bezeichnet ist, wird auch von CMD[0:27] und CMHS adressiert. Im wesentlichen enthält jede Adressenstelle ein 56-Bit-Steuerwort für die CPU 10 und ein zusätzliches Steuerwort für die Beschleunigungs- Hardware. Durch die Auswahl von CPU-10-Befehlen, die in Folgen von Mikrobefehlen decodiert werden, welche anderen Folgen von Mikrobefehlen für den Beschleuniger entsprechen, entsteht eine sehr eng gekoppelte CPU/Coprozessor-Schnittstelle, wodurch die CPU 10 nicht abwarten muß, bis der Coprozessor die Ausführung eines Coprozessor-Mikrobefehls beendet hat.
  • Bei Systemen, die eine MMU 18 verwenden, kann jede Hardware- Beschleunigungseinheit mit der CPU 10 über den Speicherdatenbus und irgendeine oder alle fünf Steuerleitungen verbunden sein: einen Eingang an die Wartelogik der CPU 10, einen Eingang an die Coprozessor-Trap-Logik der CPU 19, einen Eingang an die BNM-Zeit-Trap-Logik vom Coprozessor der CPU 10, und zwei Leitungen an die externen Zustandscodeanschlüsse der CPU 10.
  • Bei Systemen mit externen Adreßumsetzungs-Hardware kann jede Hardware-Beschleunigungseinheit mit der CPU 10 über den Speicherdatenbus und irgend eine oder alle vier Steuerleitungen verbunden sein: einen Eingang zur Wartelogik der CPU 10, einen Eingang zur BNM-Zeit-Trap-Logik vom Coprozessor der CPU 10 und zwei Leitungen an die externen Zustandscodeanschlüsse der CPU 10.

Claims (10)

1. Integrierte Mikroprozessorschaltung (10), mit
- wenigstens einem Eingangssignal-Anschluß (XCCO, XCCL),
- einer ersten Speicherschnittstelle (16, 18) zum Lesen von Informationen aus einem ersten Speicher (2) und zum Speichern von Informationen im ersten Speicher,
wobei der erste Speicher (2) wenigstens Daten und Makrobefehle speichert, und
einen ersten Adressenbus (ADDR) und einen ersten Datenbus (DATA) umfaßt, wobei der erste Adressenbus an wenigstens den ersten Speicher (2) zum Eingeben von Adressen in ihn angeschlossen ist, und
- einer an den ersten Datenbus angeschlossenen Makrobefehl-Decodiereinrichtung zum Decodieren eines aus dem ersten Speicher ausgelesenen Makrobefehls in einen oder mehrere entsprechende Mikrobefehle,
gekennzeichnet durch
- eine zweite Speicherschnittstelle zum Verbinden mit einem zweiten Speicher (14, 14'), der
außerhalb der integrierten Mikroprozessorschaltung angeordnet ist,
Mikrobefehle speichert, und
eine Einrichtung zum Umwandeln wenigstens eines Teils eines aus dem ersten Speicher ausgelesenen Makrobefehls in eine Adresse eines entsprechenden Mikrobefehls im zweiten Speicher aufweist,
- einen zweiten Adressenbus (CMA) zum Verbinden der Umwandlungseinrichtung mit dem zweiten Speicher (14, 14'), um eine Adresse eines Mikrobefehls in den zweiten Speicher einzugeben,
- einen zweiten Datenbus (CMD) zum Verbinden des zweiten Speichers mit der integrierten Mikroprozessorschaltung, um einen adressierten Mikrobefehl an die integrierte Mikroprozessorschaltung zu senden,
- ein Zustandscoderegister (62), das eine Vielzahl Zustandsbit umfaßt und auf einen Inhalt eines Zustandscodefeldes in einem Mikrobefehl anspricht, um die Vielzahl der Zustandsbit, je nach Anzeige durch einen logischen Zustand wenigstens eines Eingangssignal-Anschlusses, in Übereinstimmung wahlweise mit einem Ergebnis einer Operation, die innerhalb der integrierten Mikroprozessorschaltung ausgeführt wird, oder mit einem Ergebnis einer Operation, die außerhalb der integrierten Mikroprozessorschaltung ausgeführt wird, zu setzen.
2. Integrierte Mikroprozessorschaltung nach Anspruch 1, gekennzeichnet durch
eine Adressengenerierungseinrichtung (18) zum Generieren von Adressen für den Zugriff auf Adressenplätze im ersten Speicher (2), mit
einem mit dem ersten Adressenbus (APDR) verbundenen Ausgang,
einer Adressenumsetzeinrichtung (34), die auf einen logischen Zustand eines oder mehrerer Bit wenigstens eines der Mikrobefehle anspricht, um eine virtuelle Speicheradresse in eine reelle Speicheradresse umzusetzen,
einem Speicher (110, 192) für auf Adressenumsetzung bezogene Eingaben, mit einer Vielzahl Speicherplätze, die je wenigstens die Seitenzahl einer virtuellen Speicheradresse und die entsprechende Seitenzahl einer reellen Speicheradresse speichert&sub1;
einer Vergleichereinrichtung (104) zum Vergleichen der Seitenzahl einer virtuellen Speicheradresse, die in Abhängigkeit von einer Lese- oder Schreiboperation, welche die integrierte Mikroprozessorschaltung im ersten Speicher ausführt, generiert wird, mit gespeicherten Seitenzahlen von virtuellen Speicheradressen, um zu bestimmen, ob die gespeicherte Seitenzahl einer virtuellen Speicheradresse mit der generierten Seitenzahl der virtuellen Speicheradresse gleich ist, und
einer auf die Operation der Vergleichereinrichtung zur Bestimmung, daß eine der gespeicherten Seitenzahlen von virtuellen Speicheradressen mit der generierten Zahl gleich ist, ansprechende Einrichtung (104) zum Ersetzen der generierten Seitenzahl der virtuellen Speicheradresse durch die entsprechende gespeicherte Seitenzahl der reellen Speicheradresse, derart, daß der erste Adressenbus die entsprechende Seitenzahl der reellen Speicheradresse an den ersten Speicher überträgt.
3. Integrierte Mikroprozessorschaltung nach Anspruch 2, dadurch gekennzeichnet, daß
eine erste Vielzahl Speicherplätze für auf Adressenumsetzung bezogene Eingaben in Abhängigkeit von einem ersten logischen Zustand eines oder mehrerer Bit wenigstens eines der Mikrobefehle die Seitenzahl einer virtuellen Speicheradresse und die Seitenzahl einer reellen Speicheradresse an einer Speicherstelle speichert, die am wenigsten vor kurzem zum Umsetzen einer Adresse des virtuellen in eine Adresse des reellen Speichers benutzt wurde.
4. Integrierte Mikroprozessorschaltung nach Anspruch 3, dadurch gekenhzeichnet, daß eine zweite Vielzahl Speicherplätze für auf Adressenumsetzung bezogene Eingaben in Abhängigkeit von einem zweiten logischen Zustand des einen oder der mehreren Bit des wenigstens einen Mikrobefehls die Seitenzahl einer virtuellen Speicheradresse und die Seitenzahl einer reellen Speicheradresse an einer Speicherstelle speichert, die durch den logischen Zustand eines oder mehrerer Mikrobefehlsbit klar bezeichnet ist.
5. Integrierte Mikroprozessorschaltung nach Anspruch 1, gekennzeichnet durch
eine Adressengenerierungseinrichtung (18) zum Generieren von Adressen für den Zugriff auf Adressenspeicherplätze im ersten Speicher (2), mit
einem an den ersten Adressenbus (ADDR) angeschlossenen Ausgang,
einer Adressenumsetzungseinrichtung (34), die in Abhängigkeit von einem logischen Zustand eines oder mehrerer Bit wenigstens eines der Mikrobefehle eine virtuelle Speicheradresse in eine reelle Speicheradresse umsetzt,
wobei die Adressenumsetzungseinrichtung (34) in Abhängigkeit von einem logischen Zustand eines oder mehrerer Bit wenigstens eines der Mikrobefehle eine virtuelle Speicheradresse nicht in eine reelle Adresse umsetzt, und
einer Ausgangssignalleitung (TRANSL) zum Anschließen an eine Logikeinrichtung (8), die außerhalb der integrierten Mikroprozessorschaltung angeordnet ist und anzugeben vermag, ob eine vom ersten Adressenbus (ADDR) übertragene Adresse eine reelle oder eine virtuelle Speicheradresse ist.
6. Integrierte Mikroprozessorschaltung nach Anspruch 1, gekennzeichnet durch eine an den ersten Adressenbus (ADDR) angeschlossene Adressengenerierungseinrichtung (18), mit Einrichtungen, die in Abhängigkeit von einem logischen Zustand eines oder mehrerer Bit wenigstens eines der Mikrobefehle eine Adresse in einem Adressenbereich zu generieren vermag, dessen höchster Wert kleiner ist als der höchstmögliche Speicheradressenwert.
7. Integrierte Mikroprozessorschaltung nach Anspruch 6, dadurch gekennzeichnet, daß
der erste Adressenbus (ADDR) 32 Signalleitungen umfaßt,
wobei in einem ersten Zustand des bzw. der genannten Bit wenigstens eines der Mikrobefehle die Adressengenerierungseinrichtung (18) Speicheradressen in einem Adressenbereich generiert, dessen höchster Wert das Adressieren von nur 24 der 32 Signalleitungen des ersten Adressenbusses erfordert, und
wobei in einem zweiten Zustand des bzw. der genannten Bit wenigstens eines der Mikrobefehle die Adressengenerierungseinrichtung (18) Speicheradressen in einem Adressenbereich generiert, dessen höchster Wert das Adressieren von nur 31 der 32 Signalleitungen des ersten Adressenbusses erfordert.
8. Integrierte Mikroprozessorschaltung nach Anspruch 1, gekennzeichnet durch
- eine Arithmetik-Logik-Ausführungseinheit (12) zum Ausführen von Rechen- und/oder Logikoperationen an Daten in Abhängigkeit von einem oder mehreren Mikrobefehlen, und
- ein Zustandsregister (70) zum Anzeigen einer Vielzahl von Zustandsbedingungen, mit
einer ersten Vielzahl von Zustandsbit, die als Ergebnis der Operation der Arithmetik-Logik-Ausführungseinheit gesitzt oder rückgesetzt werden, und
eine zweite Vielzahl von Zustandsbit, die durch ein oder mehrere Bit wenigstens eines der Mikrobefehle programmierbar gesetzt oder rückgesetzt werden,
wobei bestimmte der Mikrobefehle bedingte Sprungmikrobefehle sind, welche eine Bedingung eines Zustandsbit überprüfen, das entweder zur ersten oder zur zweiten Vielzahl Zustandsbit gehört.
9. Integrierte Mikroprozessorschaltung nach Anspruch 1, dadurch gekennzeichnet, daß
jeder der Mikrobefehle 56 Bit umfaßt,
wobei der zweite Datenbus (CMD) 28 Signalleitungen zum Senden von Mikrobefehlen in zwei Seumenten umfaßt, und
der zweite Adressenbus (CMA) eine Auswahlsignalleitung (CMHS) zum Auswählen zwischen den beiden Segmenten aufweist.
10. Integrierte Mikroprozessorschaltung nach Anspruch 9, dadurch gekennzeichnet, daß
jeder der Mikrobefehle Datenbitfelder enthält, die umfassen:
ein Vorgangsfeld,
ein Zustandsfeld,
ein Speicherfeld und
ein Sprungfeld,
wobei das Speicher- und das Sprungfeld ein erstes der Segmente bilden, das zuerst gesendet wird, und
das Vorgangs- und das Zustandsfeld ein zweites der Segmente bilden, das zu einem der Übertragung des ersten Segments nachfolgenden Zeitpunkt gesendet wird.
DE68927783T 1988-05-03 1989-05-02 Mikroprozessor mit äusserem steuerungsspeicher Expired - Lifetime DE68927783T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US18985388A 1988-05-03 1988-05-03
PCT/US1989/001877 WO1989011128A1 (en) 1988-05-03 1989-05-02 Microprocessor having external control store

Publications (2)

Publication Number Publication Date
DE68927783D1 DE68927783D1 (de) 1997-03-27
DE68927783T2 true DE68927783T2 (de) 1997-09-25

Family

ID=22699032

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68927783T Expired - Lifetime DE68927783T2 (de) 1988-05-03 1989-05-02 Mikroprozessor mit äusserem steuerungsspeicher

Country Status (6)

Country Link
US (1) US5404560A (de)
EP (1) EP0414811B1 (de)
AU (1) AU632493B2 (de)
CA (1) CA1324447C (de)
DE (1) DE68927783T2 (de)
WO (1) WO1989011128A1 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2829115B2 (ja) * 1990-10-19 1998-11-25 株式会社日立製作所 ファイル共用方法
PL170980B1 (pl) * 1992-06-25 1997-02-28 Smithkline Beecham Biolog Szczepionka PL PL PL PL PL PL PL
US5848289A (en) * 1992-11-27 1998-12-08 Motorola, Inc. Extensible central processing unit
JPH06332792A (ja) * 1993-05-21 1994-12-02 Mitsubishi Electric Corp データ処理装置及びそのデータ読み出し制御回路,データ書き込み制御回路
US5659801A (en) * 1994-12-07 1997-08-19 Emc Corporation Method and apparatus for replacing resident peripheral device control microcode by download via an application program
JPH08305638A (ja) * 1995-05-01 1996-11-22 Nec Corp Romデータ検査方法
US5893923A (en) * 1997-05-12 1999-04-13 Lexmark International, Inc. Microcontroller utilizing a circuit to select during reset process an internal or external memory as base memory
KR100308182B1 (ko) * 1997-08-21 2001-11-30 윤종용 데이터처리시스템및이시스템의동작방법
EP0992887B1 (de) * 1998-10-06 2010-03-03 Texas Instruments Inc. Speicherzugriff mit Bytequalifizierer
US6643800B1 (en) * 2000-02-02 2003-11-04 Hewlett-Packard Development Company, L.P. Method and apparatus for testing microarchitectural features by using tests written in microcode
US7093109B1 (en) * 2000-04-04 2006-08-15 International Business Machines Corporation Network processor which makes thread execution control decisions based on latency event lengths
US7237090B1 (en) 2000-12-29 2007-06-26 Mips Technologies, Inc. Configurable out-of-order data transfer in a coprocessor interface
US7287147B1 (en) * 2000-12-29 2007-10-23 Mips Technologies, Inc. Configurable co-processor interface
FI20010924A (fi) * 2001-05-03 2002-11-04 Nokia Corp Mikroprosessorin muistinkäsittely
US7437535B1 (en) * 2002-04-04 2008-10-14 Applied Micro Circuits Corporation Method and apparatus for issuing a command to store an instruction and load resultant data in a microcontroller
US7272709B2 (en) * 2002-12-26 2007-09-18 Micron Technology, Inc. Using chip select to specify boot memory
US20090228686A1 (en) * 2007-05-22 2009-09-10 Koenck Steven E Energy efficient processing device
US7693167B2 (en) * 2007-05-22 2010-04-06 Rockwell Collins, Inc. Mobile nodal based communication system, method and apparatus
US20090228693A1 (en) * 2007-05-22 2009-09-10 Koenck Steven E System and method for large microcoded programs
US7843554B2 (en) * 2008-04-25 2010-11-30 Rockwell Collins, Inc. High dynamic range sensor system and method
US9208082B1 (en) * 2012-03-23 2015-12-08 David R. Cheriton Hardware-supported per-process metadata tags
TWI447154B (zh) 2012-11-27 2014-08-01 Ind Tech Res Inst 聚氯乙烯製品與其表面處理方法
CN108958798B (zh) * 2018-06-15 2021-04-20 上海兆芯集成电路有限公司 指令翻译电路、处理器电路及其执行方法
CN115437603B (zh) * 2021-06-04 2023-12-19 中科寒武纪科技股份有限公司 用于生成随机数的方法及其相关产品

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4307445A (en) * 1978-11-17 1981-12-22 Motorola, Inc. Microprogrammed control apparatus having a two-level control store for data processor
US4330823A (en) * 1978-12-06 1982-05-18 Data General Corporation High speed compact digital computer system with segmentally stored microinstructions
US4460972A (en) * 1979-06-22 1984-07-17 International Business Machines Corporation Single chip microcomputer selectively operable in response to instructions stored on the computer chip or in response to instructions stored external to the chip
US4367524A (en) * 1980-02-07 1983-01-04 Intel Corporation Microinstruction execution unit for use in a microprocessor
US4415969A (en) * 1980-02-07 1983-11-15 Intel Corporation Macroinstruction translator unit for use in a microprocessor
US4554627A (en) * 1980-04-25 1985-11-19 Data General Corporation Data processing system having a unique micro-sequencing system
JPS5734251A (en) * 1980-08-07 1982-02-24 Toshiba Corp Address conversion and generating system
US4399505A (en) * 1981-02-06 1983-08-16 Data General Corporaton External microcode operation in a multi-level microprocessor
US4513174A (en) * 1981-03-19 1985-04-23 Standard Microsystems Corporation Software security method using partial fabrication of proprietary control word decoders and microinstruction memories
US4495563A (en) * 1981-07-02 1985-01-22 Texas Instruments Incorporated Microcomputer having separate access to complete microcode words and partial microcode words
JPS58203554A (ja) * 1982-05-21 1983-11-28 Toshiba Corp 演算処理装置
US4569018A (en) * 1982-11-15 1986-02-04 Data General Corp. Digital data processing system having dual-purpose scratchpad and address translation memory
JPH081604B2 (ja) * 1983-07-25 1996-01-10 株式会社日立製作所 マイクロプロセッサ
US4794524A (en) * 1984-07-03 1988-12-27 Zilog, Inc. Pipelined single chip microprocessor having on-chip cache and on-chip memory management unit
US4648034A (en) * 1984-08-27 1987-03-03 Zilog, Inc. Busy signal interface between master and slave processors in a computer system
US4825363A (en) * 1984-12-05 1989-04-25 Honeywell Inc. Apparatus for modifying microinstructions of a microprogrammed processor
JPS61170828A (ja) * 1985-01-24 1986-08-01 Hitachi Ltd マイクロプログラム制御装置
US4677586A (en) * 1985-06-04 1987-06-30 Texas Instruments Incorporated Microcomputer device having test mode substituting external RAM for internal RAM
JPS62165242A (ja) * 1986-01-17 1987-07-21 Toshiba Corp プロセツサ
JPS63133251A (ja) * 1986-11-26 1988-06-06 Mitsubishi Electric Corp マイクロプロセツサの周辺回路
US4811345A (en) * 1986-12-16 1989-03-07 Advanced Micro Devices, Inc. Methods and apparatus for providing a user oriented microprocessor test interface for a complex, single chip, general purpose central processing unit

Also Published As

Publication number Publication date
US5404560A (en) 1995-04-04
EP0414811B1 (de) 1997-02-19
EP0414811A4 (en) 1993-02-24
WO1989011128A1 (en) 1989-11-16
AU3752689A (en) 1989-11-29
DE68927783D1 (de) 1997-03-27
CA1324447C (en) 1993-11-16
AU632493B2 (en) 1993-01-07
EP0414811A1 (de) 1991-03-06

Similar Documents

Publication Publication Date Title
DE68927783T2 (de) Mikroprozessor mit äusserem steuerungsspeicher
DE3486085T2 (de) Zentrale Verarbeitungseinheit für einen Digitalrechner.
DE69127242T2 (de) Sicherung der Datenintegrität in einem Multipipelineprozessorsystem
DE69131637T2 (de) Registerhaltige Datenbearbeitung in einem Prozessor mit reduziertem Befehlssatz
DE69227604T2 (de) Rückwärts kompatible Rechnerarchitektur mit erweiterten Wortbreiten und Adressraum
DE69631778T2 (de) Flexible implementierung eines systemverwaltungsmodus in einem prozessor
DE69129881T2 (de) Verzweigung in einem Pipeline-Prozessor
DE69130379T2 (de) Datenvorausladebefehl in einem Prozessor mit reduziertem Befehlssatz
DE69131189T2 (de) Bytevergleich-Operation für einen hochleistungsfähigen Prozessor
DE69031433T2 (de) Speicherzugriffsausnahmebehandlung bei vorausgelesenen Befehlswörtern in dem Befehlsfliessband eines Rechners mit virtuellem Speicher
DE68926385T2 (de) Methode und Hardware-Ausführung von komplexen Datentransferbefehlen
DE69227465T2 (de) Cpu mit pipeline-einheit und effektiv-adressenrechnungseinheit mit möglichkeit zur beibehaltung von virtuellen operandenadressen.
DE69233412T2 (de) Vorrichtung und Rechnerprogrammprodukt zur Ausführung von Verzweigungsbefehlen
DE68928513T2 (de) Verfahren zur Vorverarbeitung mehrerer Befehle
DE69633166T2 (de) Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration
DE69427734T2 (de) Linearadressierter Mikroprozessorcachespeicher
DE69129565T2 (de) Hochleistungsfähiger Emulator mit Pipelining
DE69727773T2 (de) Verbesserte Verzweigungsvorhersage in einem Pipelinemikroprozessor
DE69427672T2 (de) Befehlscachespeicher für Befehle mit variabler Byteslänge
DE68929483T2 (de) Datenprozessor mit einer Befehlseinheit, die einen Cachespeicher und einen ROM aufweist.
DE3851746T2 (de) Sprungvorhersage.
US3585605A (en) Associative memory data processor
DE69322283T2 (de) Hoch schnelligkeit speicher programmierbar steuerung
DE19735348A1 (de) Einzelbefehl-Mehrdaten-Verarbeitung unter Verwendung von mehreren Bänken von Vektorregistern
DE112013001442T5 (de) Kopieren von Zeichendaten, die ein Abschlusszeichen aufweisen, von einer Speicherposition zu einer anderen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: LG SEMICON CO., LTD., CHEONGJU, KR

8327 Change in the person/name/address of the patent owner

Owner name: LG ELECTRONICS INC., SEOUL/SOUL, KR