DE3750702T2 - Datenverarbeitungssystem. - Google Patents

Datenverarbeitungssystem.

Info

Publication number
DE3750702T2
DE3750702T2 DE3750702T DE3750702T DE3750702T2 DE 3750702 T2 DE3750702 T2 DE 3750702T2 DE 3750702 T DE3750702 T DE 3750702T DE 3750702 T DE3750702 T DE 3750702T DE 3750702 T2 DE3750702 T2 DE 3750702T2
Authority
DE
Germany
Prior art keywords
instruction
address
decoded
queue
operand
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 - Fee Related
Application number
DE3750702T
Other languages
English (en)
Other versions
DE3750702D1 (de
Inventor
Yoshikuni C O Nec Corpora Sato
Hitoshi C O Nec Corpo Yamahata
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.)
NEC Corp
Original Assignee
NEC Corp
Nippon Electric Co Ltd
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 NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Publication of DE3750702D1 publication Critical patent/DE3750702D1/de
Application granted granted Critical
Publication of DE3750702T2 publication Critical patent/DE3750702T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • 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/3802Instruction prefetching
    • 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/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3875Pipelining a single stage, e.g. superpipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

    Feld der Erfindung
  • Die vorliegende Erfindung betrifft ein datenverarbeitendes System gemäß dem Oberbegriff von Anspruch 1 und insbesondere einen Befehlsdekoder und eine Dekodersteuerung für ein datenverarbeitendes System.
  • Beschreibung des Stands der Technik
  • Ein datenverarbeitendes System des vorerwähnten Typs ist aus US-A-435423 bekannt. Im Allgemeinen umfaßt beispielsweise eine zentrale Verarbeitungseinheit eine Befehlsverarbeitungseinheit 101, eine Befehlsdekodereinheit 102, eine Adressenübersetzungseinheit 103, eine Befehlsausführeinheit 104 und eine Busschnittstelle 105, wie es in Fig. 1 gezeigt ist. Die Befehlsverarbeitungseinheit 101 hat einen Befehlsschlangenspeicher zum Speichern eines von der Busschnittstelle 105 vorbereiteten Befehlscode und zum Auslesen des vorbereiteten Befehlscode aus dem Befehlsschlangenspeicher in Abhängigkeit von der Anfrage der Befehlsdekodereinheit 102. Die Befehlsdekodereinheit 102 entschlüsselt den aus der Befehlsverarbeitungseinheit 101 ausgelesenen Befehlscode zur Erzeugung einer Steuerinformation für die Befehlsausführungseinheit 104. Die Befehlsdekodereinheit 102 berechnet die Effektivadresse eines Speicheroperanden und fordert eine Adressenübersetzung von der Adressenübersetzungseinheit 103. Die Adressenübersetzungseinheit 103 führt eine Übersetzung von einer virtuellen Adresse in eine reale Adresse durch und überträgt das Übersetzungsergebnis an die Busschnittstelle 105. Die Befehlsausführeinheit 104 führt auf Grundlage der von der Befehlsdekodereinheit 102 ausgesendeten Steuerinformation einen Arbeitsschritt durch. Die Busschnittstelle 105 greift auf einen externen Speicher aufgrund der reale Adresse zu, die von der Adressenübersetzungseinheit 103 gesendet wurde, und bereitet einen Befehl für die Befehlsverarbeitungseinheit 101 vor.
  • Fig. 2 zeigt in größerem Detail die Befehlsdekodereinheit 102 und die Adressenübersetzungseinheit 103 aus Fig. 1. Bezugszeichen 801 bezeichnet den Befehlsschlangenspeicher, der in der Befehlsverarbeitungseinheit 101 zum Speichern eines Befehlscodes vorgesehen ist. Bezugszeichen 802 bezeichnet einen Befehlscode/Operandenfeld-Dekoder der Befehlsdekodereinheit 102. Außerdem ist ein Adressenberechnungsabschnitt 803 zur Berechnung der Adressen eines effektiven Adressenoperanden und eines Speicheroperanden auf Grundlage des dekodierten Ergebnisses des Operandenfeldes vorgesehen. Die von dem Adressenberechnungsabschnitt 803 berechnete Effektivadresse wird im Fall eines Speicheroperanden durch den Adressenübersetzer 804 von einer virtuellen Adresse in eine reale Adresse übersetzt, und die reale Adresse wird an die Busschnittstelle 105 gesendet. Der Adressenübersetzer 804 entspricht der Adressenübersetzungseinheit 103 aus Fig. 1. Zusätzlich ist ein Befehlszwischenspeicher 105 zur Übertragung der von dem Befehlsdekoder 802 erhaltenen dekodierten Information an die Befehlsausführeinheit 104 vorgesehen.
  • In dem so gebildeten datenverarbeitenden System wird ein Befehl von dem Befehlsschlangenspeicher 801 zuerst zu dem Befehlsdekoder 802 gesendet. Dieser Befehlsdekoder 802 entschlüsselt eine Information betreffend dem Befehlscode, wie etwa die Art eines arithmetischen Algorithmus, und bringt das Ergebnis in den Zwischenspeicher 805. Dann entschlüsselt der Befehlsdekoder 802 den Operandenteil des Befehls. Zu dieser Zeit, wenn der Operand ein Speicheroperand ist, weist der Befehlsdekoder 802 den Adressenberechnungsabschnitt 803 an, eine Effektivadressenberechnung durchzuführen. Der Adressenberechnungsabschnitt 803 sendet die berechnete Effektivadresse an den Adressenübersetzer 804, in welchem die virtuelle Adresse in eine reale Adresse übersetzt wird. Diese reale Adresse wird an die Busschnittstelle 105 gesendet, so daß der Speicheroperand herangeholt wird. Der Befehlsdekoder 802 wird von dem Adressenübersetzer 804 über den Adressenberechnungsabschnitt 803 informiert, ob die Adresse ausnahmsweise unter Vorliegen eines Seitenfehlers oder einer Schutz-Ausnahme, oder normal übersetzt wurde. Der Befehlsdekoder 802 setzt den Befehlszwischenspeicher 805 mit einer eine Befehlsausführbarkeit angebenden Information, wenn die Adressenübersetzung normal ist, und mit einer Information, die einen Ausnahmeprozeßbeginn anzeigt, wenn eine Ubersetzungsausnahme auftritt. Dann wird die Befehlsausführeinheit 104 gestartet.
  • Aufgrund der aus dem Befehlszwischenspeicher 805 ausgelesenen Information führt die Befehlsausführeinheit 104 den Befehl aus. Wenn jedoch eine Übersetzungsausnahme aus dem Befehlszwischenspeicher 805 ausgelesen wird, führt die Befehlsausführeinheit 104 ein entsprechendes Verfahren durch, wie etwa einen Seitenfehler, und fordert die Befehlsdekodereinheit 102 zur erneuten Dekodierung des Befehls auf. Im Fall keiner Übersetzungsausnahme beim Dekodieren des Befehls fordert die Befehlsausführeinheit 104 die Befehlsdekodereinheit 102 auf, die Dekodierung eines nächsten Befehls zu dem Zeitpunkt zu beginnen, wenn die Befehlsausführung beendet ist.
  • Für gewöhnlich kann unter virtueller Speicherverwaltung, wenn die Adresse des Operanden unter Vorliegen einer Ausnahme - wie ein Seitenfehler - übersetzt wurde, der Befehl nicht ausgeführt werden, bevor die Operandenadresse nach dem Dekodieren in Ordnung gebracht wurde. Z.B. wenn ein Seitenfehler auftritt, muß der Befehl, nachdem die Ausnahme durch das Betriebssystem bearbeitet wurde, erneut ausgeführt werden. Abgesehen von dieser Notwendigkeit jedoch, kann das beschriebene vorbekannte System weder die Adressenübersetzungsausnahme bearbeiten noch den Befehl ausführen, es sei denn, die Ausführung des Befehls wird nach der Beendigung der Dekodierung des Befehls ausgeführt. Die Dekodierung des nächsten Befehls wird mit Beendigung der Ausführungs des vorhergehenden Befehls gestartet. Als Ergebnis hat das vorbekannte Datenverarbeitungssystem den Fehler, daß es nicht die Dekodierung und Ausführung des Befehls parallel unter virtueller Speicherverwaltung durchführen kann, um seine Wirksamkeit zu verbessern.
  • Zusammenfassung der Erfindung
  • Dementsprechend ist es eine Aufgabe der Erfindung, ein Datenverarbeitungssystem zu schaffen, das eine Datenverarbeitungseinheit hat, die in der Lage ist, eine Befehlsentschlüsselung und Ausführung auch unter der virtuellen Speicherverwaltung parallel durchzuführen, wobei die benötigte Zeit zum Dekodieren des Befehls verkürzt wird.
  • Eine andere Aufgabe der Erfindung ist es, ein Datenverarbeitungssystem zu schaffen, das eine Befehlsverarbeitungseinheit hat, die in der Lage ist, eine Dekodierung, eine Effektivadressenberechnung und eine Adressenübersetzung der Befehlsdekoderung parallel, auch während der Befehlsdekoderung, durchzuführen, wobei die Zeit zum Dekodieren des Befehls verkürzt wird.
  • Zur Lösung dieser und anderer Aufgaben schafft die Erfindung ein Datenverarbeitungs-System gemäß Anspruch 1 mit: Befehlsverarbeitungsmitteln mit einem Befehlsschlangenspeicher zum Speichern eines vorbereiteten Befehlscodes; Befehlsdekodermitteln zum Ausgeben eines Signals, das den Befehlsschlangenspeicher zum Auslesen eines darin gespeicherten Befehls anweist, und zum Dekodieren des Operandencodes und des Operandenfeldes - wenn vorhanden - des angeforderten und aus dem Befehlsschlangenspeicher ausgelesenen Befehls, wobei die Befehlsdekodermittel einen dekodierten Befehl erzeugen; Effektivadressen-Berechnungsmitteln zur Durchführung einer Berechnung einer Effektivadresse abhängig von der Anforderung (EASTART) der Befehlsdekodermittel; Adressenübersetzungsmitteln zum Übersetzen einer effektiven Adresse in eine reale Adresse und zum Ausgeben eines Übersetzungsabschlußsignals und zum Erfassen einer Übersetzungsausnahme; und Befehlsausführungsmitteln zum Auslesen und Ausführen des Befehls und zur Ausführungs eines dekodierten Befehls, wenn dieser ausführbar ist, wobei das System einen Schlangenspeicher für dekodierte Befehle aufweist, der eine Schlangenstruktur aus einer Anzahl Eingänge zum Halten einer Eingangsinformation hat, und wobei der Schlangenspeicher für dekodierte Befehle aufweist: ein Gültigkeitsbit an jedem Eingang, wobei dieses Bit gesetzt wird, wenn ein dekodierter Befehl, der in die Warteschlange für dekodierte Befehle eingegeben ist, am entsprechenden Eingang gültig wird, und es gelöscht wird, wenn das Befehlsausführungsmittel den dekodierten Befehl aus dem Schlangenspeicher für dekodierte Befehle ausliest; Ausnah-meflex, die so arbeiten, daß im Fall einer Übersetzungsausnahme dasjenige, welches dem Warteschlangenausgang am nächsten ist und im welchem der gewählte Wert ungleich Null ist, gesetzt wird;
  • wobei die Befehlsausführungsmittel den dekodierten Befehl holen und ausführen, der das zugeordnete Zählermittel mit dem Zählwert Null innerhalb des Schlangenspeichers für dekodierte Befehle hat, derart, daß ein Ausnahmeprozeß durchgeführt wird, wenn das Ausnahmeflag besetzt ist, und daß ansonsten der dekodierte Befehl ausgeführt ist;
  • erste Zählermittel, die abhängig von einem Effektivadressen-Anforderungssignal hochgezählt und abhängig von einem Übersetzungsabschlußsignal herabgezählt werden können; und zweite Zählermittel mit einer Herabzählfunktion, die so arbeiten, daß, wenn sowohl die ersten als auch die zweiten Zählermittel herabzuzählen sind, eines der zweiten Zählermittel, welches am nächsten am Ausgang der mit dem Befehlsausführungsmittel verbundenen Schlange für dekodierte Befehle angeordnet ist, einen Zählwert ungleich Null hat, herabgezählt wird, und, wenn die Schlange in dem Schlangenspeicher für dekodierte Befehle vorrückt, der Zählwert der ersten Zählermittel zu dem der zweiten Zählermittel kopiert und dann auf den Wert Null gesetzt wird.
  • In einer Ausführungsform des erfindungsgemäßen Datenverarbeitungssystems wird der dekodierte Befehl nur übertragen, wenn das zweite Zählermittel den Wert Null bei dieser Stufe des Schlangenspeichers für dekodierte Befehle hat, die die nächste zu dem Befehlsausführmittel ist.
  • Das Datenverarbeitungssystem kann außerdem ein effektives Adressenregister zum Halten des Effektivadressenwertes, der von Effektivadressen-Berechnungsmittel erzeugt wird, wenn der Operand einen Effektivadressenwert hat, haben.
  • Vorzugsweise umfaßt das erste Zählermittel eine Befehlsschlangenspeichersteuerung zur Steuerung der Schlange und das zweite Zählermittel ein Zählerfeld, das in jedem der Eingänge des Schlangenspeichers für dekodierte Befehle ausgebildet ist und ausgestaltet ist, um durch das Befehlsdekodermittel initialisiert zu werden und abhängig vom Effektivadressen-Anforderungssignal des Befehlsdekodermittels herabgezählt zu werden.
  • Außerdem umfaßt der Schlangenspeicher für dekodierte Befehle an jedem seiner Eingänge ein Befehlsfeld, das angepaßt ist, um mit einer dem dekodierten Befehl und den Operanden des Befehlsdekodermittels betreffenden Information gesetzt zu werden, ein Gültigkeitsflag, daß die Gültigkeit des Inhalts der Schlange angibt, und ein Ausnahmeflag, daß das Auftreten einer Adressenübersetzungsausnahme bei der Adressenübersetzung des Adressenübersetzungsmittels anzeigt.
  • Insbesondere enthält die Befehlsdekodereinheit eine Befehlsdekodersteuerung, um von dem Befehlsschlangenspeicher die Übertragung des Befehlscodes anzufordern und eine Dekodierung anzuordnen, einen Arbeitscode-Dekoder zum Dekodieren des Befehlscodes des Befehlsschlangenspeichers abhängig von der Anweisung der Befehlsdekodersteuerung und zum Abgeben des dekodierten Ergebnisses an den Schlangenspeicher für dekodierte Befehle und die Information, die die Zahl und die Art der der Befehlsdekodersteuerung angezeigten Operanden anzeigt; und einen Operandendekoder zum Dekodieren des Operandenteils des Befehlscodes des Befehlsschlangenspeichers abhängig von der Anweisung der Befehlsdekodersteuerung.
  • Außerdem enthält das EffektivadressenBerechnungsmittel eine Adressenberechnungssteuerung zur Steuerung der Arbeitsschritte des Effektivadressenberechnungsmittels und einen Adressenberechnungsabschnitt zur Durchführung einer Effektivadressenberechnung; eine Adressenhalteeinrichtung zum Halten der durch den Adressenberechnungsabschnitt berechneten Effektivadresse.
  • Zusätzlich enthält das Adressenübersetzungsmittel einen Adressenübersetzer zum Übersetzen einer realen Adresse, die durch die Effektivadressen-Berechnungsmittel berechnet wurde, in eine virtuelle Adresse und zum Überprüfen einer Übersetzungsausnahme.
  • Kurze Beschreibung der Zeichnungen
  • Weitere Aufgaben, Merkmale und Vorteile der Erfindung werden aus der folgenden Beschreibung in Zusammenhang mit den beiliegenden Zeichnungen deutlich, in denen ist:
  • Fig. 1 ein Blockschaltbild, das das zentrale Datenverarbeitungssystem gemäß dem Stand der Technik zeigt;
  • Fig. 2 ein Blockschaltbild, das die Befehlsdekodereinheit des zentralen Datenverarbeitungssystems gemäß dem Stand der Technik zeigt;
  • Fig. 3 ein Blockschaltbild, das einen Mikroprozessor gemäß einer Ausführungsform der Erfindung zeigt;
  • Fig. 4 ein detailliertes Blockschaltbild, das die Befehlsdekodereinheit aus Fig. 3 zeigt;
  • Fig. 5 ein detailliertes Blockschaltbild, das einen Schlangenspeicher für dekodierte Befehle aus Fig. 3 zeigt;
  • Fig. 6 ein detailliertes Blockschaltbild, das eine Adressenberechnungseinheit aus Fig. 3 zeigt;
  • Fig. 7 ein detailliertes Blockschaltbild, das eine Adressenübersetzungseinheit aus Fig. 6 zeigt;
  • Fig. 8 eine Zeittafel, die ein Beispiel der Arbeitsschritte der Befehlsdekodereinheit aus Fig. 4 zeigt;
  • Fig. 9 eine Zeittafel, die ein Beispiel der Arbeitsschritte des Schlangenspeichers für dekodierte Befehle aus Fig. 5 zeigt;
  • Fig. 10 und 11 sind Zeittafeln, die ein Beispiel für die Arbeitsschritte der Befehlsdekodereinheit aus Fig. 4 in der Ausführungsform der Erfindung zeigen.
  • Beschreibung der bevorzugten Ausführungsform
  • Die vorliegende Erfindung wird im Folgenden detailliert mit Bezug auf die beiliegenden Zeichnungen beschrieben. Fig. 3 ist ein Blockschaltbild, das einer wesentlichen Abschnitt eines Mikroprozessors gemäß einer Ausführungsform der Erfindung zeigt.
  • Der gezeigte Mikroprozessor umfaßt einen Befehlsschlangenspeicher 1, der in einer Befehlsvorbereitungseinheit (nicht gezeigt) zum Speichern eines vorbereiteten Befehlscodes eingebaut ist. In Abhängigkeit von einem Befehlscode-Auslese-Anforderungssignal Ireq 11 von einer Befehlsdekodereinheit 2 wird aus dem Schlangenspeicher 1 über einen Bus 12 ein Befehl in die Dekodiereinheit 2 ausgelesen. Betreffend des aus dem Befehlsschlangenspeichers 1 über den Bus 12 ausgelesenen Befehls dekodiert die Dekodiereinheit zuerst den Arbeitscode und dann das Operandenfeld, wenn vorhanden, auf Grundlage des dekodierten Ergebnisses des Arbeitscodes, um einen Schlangenspeicher 5 für dekodierte Befehle über einen Bus 13 mit einer Information, die für die Befehlsausführung nötig ist, wie etwa die Art eines arithmetischen Algorithmus, und einer Information betreffend den Operanden. Auf Grundlage des dekodierten Ergebnisses des Operanden sendet außerdem die Befehlsdekodereinheit 2 Daten, die zur Berechnung der Effektivadresse eines Effektivadressenoperanden und eines Speicheroperanden nötig sind, an eine Adressenberechnungseinheit 3 über einen Bus 23.
  • Diese Adressenberechnungseinheit 3 führt die Effektivadressenberechnung in Abhängigkeit von der Anfrage der Befehlsdekodereinheit 2 durch. Die so erhaltenen Effektivadressen werden über einen Bus 26 an eine Adressenübersetzungseinheit 4 geliefert, wo eine Adressenübersetzung von einer virtuellen Adresse in eine reale Adresse durchgeführt wird, und eine Übersetzungsausnahme (TERROR), wie ein Seitenfehler oder eine Schutzausnahme, detektiert wird.
  • Der erwähnte Schlangenspeicher 5 für dekodierte Befehle hat eine Funktion, in seiner Schlangenstruktur eine Eingangsinformation zu halten, die die Information betreffend des Arbeitscodes und des durch das Dekodieren des Befehls erhaltenen Operanden, die Information betreffend den die Effektivadressenberechnung benötigenden Operanden, die die Adressenübersetzungsausnahme anzeigende in dem Operand erzeugte Flaginformation und die die Gültigkeit der Schlange anzeigende Information enthält. Ein Effektivadressenregister hält einen Effektivadressenwert, der von der Adressenberechnungseinheit 3 erzeugt wird, wenn der Operand der Effektivadressenwert ist. Eine Befehlsausführeinheit 7 ist angepaßt, um über einen Bus 18 den Befehl des Eingangs am Ausgang des Schlangenspeichers 5 für dekodierte Befehle auszulesen, wenn diese Information ausführbar wird, um den Befehl auszuführen.
  • Die Arbeitsweise der oben beschriebenen Ausführungsform, die Befehlsoperandverarbeitung (d.h. die Effektivadressenoperanden-Verarbeitung und die Speicheroperand-Verarbeitung) und die Verarbeitung der Gültigkeit des Schlangenspeichers 5 für dekodierte Befehle wird im Folgenden detailliert beschrieben.
  • Zuerst wird die innere Struktur der Befehlsdekodereinheit 2 mit größerem Detail unter Bezug auf Fig. 4 beschrieben. Die Dekodiereinheit 2 enthält eine Befehlsdekodersteuerungseinheit 201, um vom Befehlsschlangenspeicher 1 die Übertragung eines Befehlscodes zu fordern, und einen Arbeitscodedekoder 202 zur Durchführung eines Dekodiervorgangs anzuweisen. In Abhängigkeit von dem Befehl der Befehlsdekodersteuerung 201 entschlüsselt der Arbeitscodedekoder 202 den Befehlscode, der über dem Bus 12 von dem Befehlsschlangenspeicher 1 gesendet wird, und sendet das dekodierte Ergebnis durch den Bus 13 zu dem Schlangenspeicher 5 für dekodierte Befehle.
  • Auch sendet der Dekoder 202 die durch die Dekodierung offenbarte Information, um die Zahl und Art der Operanden anzugeben, die Befehlsdekodersteuerung 201. Der Operandenteil des von dem Befehlsschlangenspeicher 1 gesendeten Befehlscodes wird zu einem Operandendekoder 203 geliefert und in Abhängigkeit der Anweisung der Befehlsdekodersteuerung 201 dekodiert.
  • Außerdem erzeugt die Befehlsdekodersteuereinheit 201 ein Signal (VALID) 14, das angibt, daß die Befehlsdekoderung beendet wurde, um den offenen Eingang des Schlangenspeichers 5 für dekodierte Befehle gültig zu schalten. Die Kontrollsteuereinheit 201 erzeugt außerdem ein Signal (ERROR) 15, um den Schlangenspeicher 5 für dekodierte Befehle von der Tatsache zu informieren, daß eine Übersetzungsausnahme während der Übersetzung der Effektivadresse des Operanden aufgetreten ist. Zusätzlich erzeugt die Steuereinheit 201 ein Signal (UP) 16, welches auf einen Aktivierungspegel (d.h. auf einen "H"-Pegel) gebracht wird, wenn die Adressenberechnungseinheit 3 für eine Adressenberechnung benötigt wird, um das Zählerfeld des offenen Eingang des Schlangenspeichers 5 für dekodierte Befehle heraufzusetzen (oder hochzuzählen). Andererseits empfängt die Steuereinheit 201 von der Adressenübersetzungseinheit 4 ein Signal 20, das das Auftreten der Übersetzungsausnahme (Terror) anzeigt. Auch erzeugt die Steuereinheit 201 ein Signal (EAstart) 22 zur Anforderung der Adressenübersetzung der Adressenübersetzungseinheit 3 und empfängt ein Bereitschaftssignal (EAready) 21, das die Annahmefähigkeit der Adressenberechnung für die Einreihung anzeigt, wenn der Operandendekoder 203 die Adressenberechnung von der Adressenberechnungseinheit 103 anfordert. Außerdem überträgt der Bus 13 Informationen, die nicht nur den Effektivadressenoperanden und den Speicheroperanden, sondern auch den Versetzungswert und die Arten der Operanden enthalten.
  • Der Operandendekoder 203 informiert die Befehlsdekodersteuerung 201 über den Operandentyp, wenn der Operand der Effektivadressenoperand oder der Speicheroperand ist, welcher Adressenberechnung verlangt. Die Befehlsdekodersteuerung 201 benötigt die Adressenberechnungseinheit 3 zur Durchführung der Adressenberechnung, wenn die Berechnungseinheit 3 die Berechnung der Adresse durchführen kann, und steuert die Übertragung einer Information, wie etwa den für die Adressenberechnung nötige Versetzungswert, an die Adressenberechnungseinheit 3 in Abhängigkeit von der Information des Operandendekoders 203.
  • In Abhängigkeit von der Zahl und Art der von dem Arbeitscodedekoder 202 erhaltenen Operanden macht die Befehlsdekodersteuerung 201 den offenen Eingang des Schlangenspeichers 5 für dekodierte Befehle gültig, wenn die Operandenzahl gleich Null ist, aber sendet ein Hochzähl-Signal an das Zählerfeld des offenen Eingangs des Schlangenspeichers 5 für dekodierte Befehle jedesmal, wenn die Adressenberechnung von der Adressenberechnungseinheit 3 benötigt wird, wenn ein die Berechnung der Effektivadresse benötigender Operand existiert. Außerdem, wenn das Ausnahmeauftreten-Signal Terror 20 an die Befehlsdekodersteuerung 201 von der Adressenübersetzungseinheit 4 gesendet wird, stoppt die Befehlsdekodersteuerung 201 zwangsweise den Arbeitscodedekoder 202, den Operandendekoder 203 und die Adressenberechnungseinheit 3 und sendet ein Adressenübersetzungsausnahmesignal (ERROR) 15 an den Schlangenspeicher 5 für dekodierte Befehle.
  • Die Arbeitsschritte der Befehlsdekodereinheit 2, die in Fig. 4 gezeigt ist, werden unter Bezugnahme auf die Zeittafel aus Fig. 8 beschrieben. In einem T&sub1;-Zyklus sendet die Befehlsdekodereinheit 2 das Befehlscode-Auslese-Anforderungssignal (Ireq) 11 an den Befehlsschlangenspeicher 1 zur Anforderung des Auslesens des Befehlscodes. Der so ausgelesene Befehl A wird über den Bus 12 übertragen. Dieser Befehl A hat einen Arbeitscodeteil A1, der in einen Zyklus T&sub2; dekodiert wird. Diese dekodierte Information wird in dem Schlangenspeicher 5 für dekodierte Befehle über den Bus 13 gespeichert.
  • Nun sei angenommen, daß der Befehl A zwei Speicheroperanden hat. In Abhängigkeit von der Information des Arbeitscode- Dekoders 202 fordert die Befehldekodersteuerung 201 von dem Befehlsschlangenspeicher 1 das Absenden des Operandenteils des Befehls A und betätigt den Operandendekoder 203. Als Ergebnis, auf Grundlage des Ergebnisses eines ersten Operandenteils A2, der durch den Operandendekoder 203 dekodiert wurde, wird das Adressenberechnungs-Startsignal (EAstart) erzeugt, um die Effektivadressenberechnung von der Effektivadressenberechnungeinheit 3 anzufordern. Zu diesem Zeitpunkt, da die Adressenberechnungseinheit 3 in dem Bereitschaftszustand ist, wird die Adressenberechnung augenblicklich gestartet. Mit derselben Zeitsteuerung wie die des Adressenberechnungsstartsignals (EAstart) 22 erzeugt die Befehlsdekodersteuerung 201 das Hochzählsignal 16 für den Schlangenspeicher 5 für dekodierte Befehle.
  • Die Anforderung der Adressenberechnung für einen zweiten Operandenteil A3 wird während der Adressenberechnung nicht angenommen, und, nachdem das Signal (EAready) 21, das die Aufnahmebereitschaft zur Adressenberechnung anzeigt, von der Adressenberechnungseinheit 3 ausgegeben wurde, wird die Adressenberechnung für den zweiten Operandenteil A3 in einem Zyklus T&sub6; angenommen. In Abhängigkeit von dem Beginn der Adressenberechnung des ersten Operandenteils A2 erzeugt die Befehlsdekodersteuerung 201 das Hochzähl-Signal 16 für den Schlangenspeicher 5 für dekodierte Befehle, so daß der Zähler einen Wert von 2 annimmt. Die Befehlsdekodersteuerung 201 erzeugt das Gültigsignal (VALID) 14 für den Schlangenspeicher 5 für dekodierte Befehle, nachdem es vollständig das Adressenberechnungs-Anforderungssignal (EAstart) 22 für alle Operanden des Befehls A, die die Adressenberechnung benötigen, erzeugt hat, so daß der Schlangeneingang gültig gesetzt wird.
  • Fig. 5 zeigt detaillierter die interne Struktur des Schlangenspeichers 5 für dekodierte Befehle, der am Beispiel einer dreistufigen Schlangenstruktur dargestellt ist. Die Stufenzahl der Schlangenstruktur ist aber nicht auf 3 beschränkt sondern kann jede Zahl größer als 2 annehmen. Hier wird der offene Schlangeneingang, der mit der Information von der Befehlsdekodereinheit 2 gesetzt werden soll, mit Eingang D bezeichnet, der mittlere Eingang der Schlange ist als Eingang Q bezeichnet und der Schlangenausgang, der durch die Befehlsausführungseinheit 7 zur Durchführung des Befehls ausgelesen wird, ist als Eingang E bezeichnet. Der Schlangenspeicher 5 enthält eine Schlangensteuerung 301 zur Steuerung der Schlangen und ein Befehlsfeld 302, das mit dem durch die Befehlsdekodereinheit 2 dekodierten Befehl und der die Operanden betreffenden Information gesetzt wird. Außerdem ist ein Gültigkeitsflag 303 vorgesehen, das anzeigt, daß der Inhalt der Schlange gültig ist, und ein Ausnahmeflag 304, das eine Adressenübersetzungsausnahme anzeigt, welche auftritt, wenn die Effektivadresse des Operanden übersetzt wird. Auch ist ein Zählerfeld vorgesehen, das durch die Befehlsdekodereinheit 2 initialisiert wird und jedesmal herabgezählt wird, wenn eine Adressenberechnungsanforderung über die Adressenberechnungseinheit 3 von der Befehlsdekodereinheit 2 erzeugt wird. In diesem Schlangenspeicher 5 ist nur der Eingang, der seinen Gültigkeitsflag gesetzt hat, gültig. Wenn ein ungültiger Eingang an der Vorderseite eines bestimmten Eingangs (d.h. an der Ausgabeseite der Schlange) vorhanden ist, wird der gesamte Inhalt eines gültigen Eingangs (einschließlich seines Gültigkeitsflags) in den vorderen Eingang kopiert, und dann die Gültigkeitsflags und die Ausnahmeflags des Eingangs, der gültig gewesen ist, zurückgesetzt, so daß das Zählerfeld den Wert Null annimmt.
  • Die Arbeitsschritte des Schlangenspeichers 5 für dekodierte Befehle werden unter Bezug auf Fig. 5 beschrieben. Der durch den Arbeitscode-Dekoder 202 dekodierte Befehl und der Operandendekoder 202 der Befehlsdekodereinheit 2 werden in das Befehlsfeld 302 des Eingangs D gesetzt. Die Befehlsdekodersteuerung 201 zählt das Zählerfeld 305 des Eingangs D oder den Einlaß des Schlangenspeichers 5 durch Verwendung des Hochzähl-Signals (UP 16) hoch, jedesmal, wenn die Operandenadressenberechnung von der Adressenberechnungseinheit 3 gefordert wird. Die Befehlsdekodersteuerung 201 setzt das Gültigkeitsflag 303 des Eingangs D, wenn alle Adresenberechnungsanforderungen der Operanden, die die Effektivadressenberechnung benötigen, veranlaßt wurden.
  • Wenn der Eingang D gültig wird, wird die Schlange automatisch im Einklang mit dem Freisein des Vordereingangs weitergeschoben. Wenn die Adressenberechnungseinheit 3 ihre Adressenberechnung beendet hat (und wenn die Adressenübersetzung automatisch im Falle des Speicheroperanden folgt), gibt sie ein Herabzähl-Signal (DOWN) 17 an die Schlangenspeichersteuerung 301 aus. Dieses Signal wird jedoch als Herabzähl-Signal durch die Schlangenspeichersteuerung 301 an das Zählerfeld 305 eines gültigen Eingangs gegeben, in welchem der Wert des Zählerfelds 305 ungleich Null ist und welcher der näheste an dem Schlangenausgang ist.
  • Wenn eine Adressenübersetzungsausnahme in der Adressenübersetzungseinheit 4 auftritt, wird anderseits das Ausnahmeauftreten-Signal (ERROR) 15 durch die Befehlsdekoder-Steuerung 201 an die Schlangenspeichersteuerung 301 gesendet. Dieses Signal 15 wird auch zum Setzen des Ausnahmeflags 304 eines gültigen Eingangs verwendet, in welchem der Wert des Zählerfelds 305 ungleich Null ist und welcher der nächste am Schlangenausgang ist.
  • Wenn der Eingang E am Schlangenausgang gültig ist, und wenn das Ausnahmeflag 304 gesetzt oder das Zählerfeld 305 auf Null ist, wird ein Signal 19, das die Ausführbarkeit des Befehls anzeigt, gesetzt, so daß die Befehlsausführeinheit 7 die Information aus dem Eingang E durch einen Bus 18 liest. Wenn das Ausnahmeflag 304 gesetzt ist, führt die Befehlsausführeinheit 7 ein Ausnahmeverfahren, wie den Seitenfehler, durch. Ansonsten führt die Befehlsausführungseinheit 7 den Befehl aus. Wenn die Ausnahmeverarbeitung oder die Befehlsausführung beendet ist, löscht die Befehlsausführeinheit 7 das Gültigkeitsflag 303 des Eingangs E und wartet die Eingabe der dekodierten Information entsprechend dem nächsten Befehl ab.
  • Das Beispiel der Arbeitsschritte des Schlangenspeichers 5 für dekodierte Befehle, der in Fig. 5 gezeigt ist, wird unter Bezugnahme auf die Zeittafel aus Fig. 9 beschrieben. In den Zyklen von T&sub1; bis T&sub4; entschlüsselt die Befehlsdekodereinheit 2 den Befehl mit zwei Operanden, die die Effektivadressenberechnung benötigen. Im Zyklus T&sub4; beendet die Befehlsdekodereinheit 2 das Dekodieren des Befehls und dekodiert einen nächsten Befehl. Die Schlange rückt vor vom Zyklus T&sub5; zum Zyklus T&sub6; und vom Zyklus T&sub7; zum Zyklus T&sub8;.
  • Während der Zyklen T&sub6; und T&sub7; entschlüsselt die Befehlsdekodereinheit 2 den zweiten Befehl. Währenddessen hat die Adressenberechnungseinheit 3 die Adressenberechnung des ersten Befehls beendet, so daß das Herabzähl-Signal (DOWN) 17 von der Adressenberechnungseinheit 3 den Wert des Zählerfelds 305 des Eingangs Q des gültigen Eingangs des Schlangenspeichers 5 für dekodierte Befehle herabzählt, in welchem Eingang Q der Wert des Zählerfelds ungleich Null ist, und welcher Eingang Q der nächste an den Schlangenausgang ist. In gleicher Weise zählt im Zyklus T&sub8; das Herabzähl-Signal (DOWN) 17 den Wert des Zählerfelds des Eingangs E herab. Als Ergebnis wird der Eingang E gültig und nimmt den Zählerwert Null an, so daß die Schlangenspeichersteuerung 301 das ausführbare Signal 19 ausgibt.
  • Bei der Adressenberechnung des zweiten Befehls tritt eine Adressenübersetzungsaufnahme auf, aber das Übersetzungsausnahmesignal (ERROR) 15, das von der Befehlsdekodersteuerung erzeugt wird, setzt das Ausnahmeflag 304 des Eingangs Q, der mit der dekodierten Information des zweiten Befehls richtig gespeichert wird.
  • Fig. 6 ist ein Blockschaltbild, das die innere Struktur der Adressenberechnungseinheit in größerem Detail zeigt. Die Adressenberechnungseinheit 3 enthält eine Adressenberechnungssteuerung 401 zur Steuerung der Arbeitsschritte der Adressenberechnungseinheit 3 und einen Adressenberechnungsabschnitt 402 zur tatsächlichen Durchführung der Effektivadressenberechnung. Außerdem ist ein Adressenhaltemittel 403 zum Halten der Effektivadresse, die als Ergebnis der Adressenberechnung erhalten wird, vorgesehen.
  • Die Information 23, daß zur Effektivadressenberechnung Informationen benötigt werden, welche den Effektivadressenoperanden oder den Speicheroperanden anzeigenden Operandentyp betreffen, und der Adressierungsmodus werden der Adressberechnungssteuerung 401 zugeführt, und zur Adressenberechnung nötige Daten, wie die Verschiebung, werden dem Adressenberechnungsabschnitt 402 eingegeben. Die Adressberechnungssteuerung 401 weist den Adressenberechnungsabschnitt 402 über die Art der Berechnung im Einklang mit dem vorgegebenen Adressierungsmodus an.
  • Die Adressenberechnungseinheit 3 kann eine nächste Adressenberechnung durchführen, die ausgeführt werden kann, während die gerade vorher berechnete Effektivadresse in dem Adressenhaltemittel 403 gehalten wird. Während der Adressenberechnung inaktiviert die Adressenberechnungssteuerung 401 das Signal (EAREADY) 21, das die Adressenberechnungsausnahme anzeigt, so daß eine neue Adressenberechnungsanforderung nicht akzeptiert würde. Die Adressenberechnung ist in dem Augenblick beendet, in dem das berechnete Resultat (d.h. die Ausgabe des Adressenberechnungabschnitts 402) als Effektivadresse im Adressenhaltemittel 403 eingegeben wird.
  • Bei Beendigung der Adressenberechnung aktiviert der Adressenberechnungsabschnitt 402 das Signal (EAREADY) 21. In Abhängigkeit des Signals (EAstart) 22 werden die Daten des Bus 23 gehalten und die Adressenberechnung im Einklang mit der Adressierungsinformation durchgeführt. Wenn der Operand ein Speicheroperand ist, wird die durch das Adressenhaltemittel 403 gehaltene Effektivadresse an einem Bus 26 zusammen mit einem Adressenübersetzungsanforderungs-Signal (Tstart) 25 ausgegeben, um die Adressenübersetzungseinheit 4 zur Durchführung der Adressenübersetzung anzuweisen, wenn ein Signal (Tready) 24 aktiv ist, das anzeigt, daß die Adressenübersetzungseinheit 4 in der Lage ist, die Adressenübersetzung durchzuführen. Wenn die Adressenübersetzungsanforderung von der Adressenübersetzungseinheit 4 angenommen wird, wird das Signal (Tready) 24 inaktiv. Die Adressenberechnungseinheit 3 wird von der normalen Beendigung der Adressenübersetzung informiert, wenn die Adressenübersetzungseinheit 4 das Signal (Tready) 24 wieder aktiviert. In dem Fall des Speicheroperanden sendet die Adressenberechnungssteuerung 401 das Herabzähl-Signal (DOWN) 17 an den Schlangenspeicher 5 für dekodierte Befehle in Abhängigkeit von der gewöhnlichen Beendigung der Adressenübersetzung. Im Fall, daß der Operand eine Effektivadresse hat, wird auf der anderen Seite die durch das Adressenhaltemittel 403 gehaltene Effektivadresse über den Bus 26 an das Effektivadressenregister 6 übertragen. Das heißt, daß die Adressenberechnung beendet ist und somit das Herabzähl- Signal (DOWN) 17 an den Schlangenspeicher 5 für dekodierte Befehle von der Adressenberechnungssteuerung 401 gesendet wird.
  • Fig. 7 ist ein Blockdiagramm, das die innere Struktur der Adressenübersetzungseinheit 4 in größerem Detail zeigt. Die Adressenübersetzungseinheit 4 enthält eine Adressenübersetzungssteuerung 501 zur Steuerung eines Adressenübersetzers 502. Der Adressenübersetzer 502 formt eine über dem Bus 26 eingegebene virtuelle Adresse in eine reale Adresse um und überprüft, ob die Übersetzungsausnahme wie den Seitenfehler. Die von der Adressenberechnungseinheit 3 gesendete Effektivadresse und die den Speicherzugang betreffende Information werden durch den Bus 26 dem Adressenübersetzer 502 eingegeben. In Abhängigkeit von dem Adressenübersetzungsanforderungssignal (Tstart) 25 wird die Adressenübersetzungssteuerung 501 gestartet. Während der Adressenübersetzung inaktiviert der Adressenübersetzer 502 das Signal Tready 24, das die Annahmefähigkeit zur Adressenübersetzung anzeigt. Wenn die Adressenübersetzung normal beendet ist, aktiviert die Adressenübersetzungssteuerung 501 das Signal (Tready) 24, um die Information betreffend der durch die Übersetzung erhaltenen realen Adresse und des Speicherzugangs an den Bus 27 auszugeben. Wenn eine Übersetzungsausnahme, wie der Seitenfehler, während der Adressenübersetzung auftritt, sendet die Adressenübersetzungs-Steuerung 501 das Ausnahmeauftrittsignal (Terror) 20 an die Befehlsdekodereinheit 2, während sie das (Tready)-Signal 24 inaktiv läßt.
  • Die Gesamtarbeitsweise der in Fig. 3 gezeigten erfindungsgemäßen Ausführungsform wird unter Bezugnahme auf die Zeittafel aus Fig. 10 beschrieben. Zunächst wird die Dekodierung des Befehls A mit den zwei Speicheroperanden (A2 und A3) beschrieben. Die Befehlsdekodereinheit 2 fordert den Befehlsschlangenspeicher 1 zur Durchführung des Auslesens des Befehlscodes auf, so daß der Arbeitscode Teil A1 des Befehls A im Befehlsschlangenspeicher 1 durch den Bus 12 an den Arbeitscodedekoder 202 ausgegeben wird.
  • Wenn das dekodierte Ergebnis des Arbeitscodedekoders 202 offenbart, daß der Befehl A zwei Speicheroperanden hat, fordert die Befehlsdekodereinheit 2 vom Befehlsschlangenspeicher 1 die Vornahme des Auslesens des ersten Operandenteils A2. Der erste Operandenteil A2 wird durch den Bus 12 zu dem Operandendekoder 203 ausgegeben, so daß er dekodiert wird.
  • Wenn die Adressenberechnung der Adressenberechnungseinheit 3 auf Grundlage des dekodierten Ergebnisses des ersten Operandenteils A2 gestartet wird, sendet die Befehlsdekodereinheit 2 das Hochzähl-Signal (UP) 16 an den Schlangenspeicher 5 für dekodierte Befehle zum Heraufzählen des Zählerfelds 305 des offenen Eingangs D. Während die Adressenberechnung des ersten Operandenteils A2 durch das Adressenberechnungsmittel 3 durchgeführt wird, wird der im Zyklus T&sub3; ausgelesene zweite Operandenteil A3 dekodiert.
  • Die Adressenberechnungsanforderung dieses zweiten Operandenteils A3 wird jedoch zurückgestellt, bis die Adressenberechnung des ersten Operandenteils A2 beendet ist. Wenn die Adressenberechnung des ersten Operandenteils A2 beendet ist, wird die berechnete Effektivadresse an die Adressenübersetzungseinheit 4 gesendet, so daß sie übersetzt wird (in den Zyklen T&sub6; und T&sub7;). Währenddessen wird die bis dahin zurückgestellte Adressenberechnungsanforderung des zweiten Operandenteils A3 von der Adressenberechnungseinheit 3 angenommen.
  • Wenn die Befehlsdekodereinheit 2 die Adressenberechnungsanforderung (EAready) 22 für die Adressenberechnungseinheit 3 veranlaßt, erhöht sie das Zählerfeld 305 des Schlangenspeichers 5 für dekodierte Befehle. Nachdem die Befehlsdekodereinheit 2 eine Adressenberechnungsanforderung für jenen der Operanden des Befehls A, der die Effektivadressenberechnung benötigt, ausgegeben hat, setzt sie das Gültigkeitsflag 303 des Schlangenspeichers 5 für dekodierte Befehle und wird auf das Dekodieren des nächsten Befehls B geschoben.
  • Zu diesem Zeitpunkt, wenn die Adressenübersetzung des ersten Operanden A2 beendet ist, sendet die Adressenübersetzungseinheit 4 das Adressenübersetzungs-Annahmefähigkeitssignal (Tready) 24 an die Adressenberechnungseinheit 3. In Abhängigkeit davon sendet die Adressenberechnungsschaltung 3 das Herabzähl-Signal (DOWN) 17 an den Schlangenspeicher 5 für dekodierte Befehle. Die Adressenberechnungseinheit 3 sendet die Effektivadresse des zweiten Operandenteils A3 der Adressenübersetzungseinheit 4, um deren Adressenübersetzung zu veranlassen.
  • Wenn die Adressenübersetzung des zweiten Operandenteils A3 beendet ist, wird das Herabzählsignal (DOWN) 17 an das Zählerfeld 305 des Schlangenspeichers 5 für dekodierte Befehle, wie im Fall des ersten Operandenteils A2, in Abhängigkeit von dem Signal von der Adressenberechnungseinheit 3 gesendet. In Abhängigkeit von dem Verminderungssignal, das der Beendigung der Adressenübersetzung des zweiten Operandenteils A3 folgt, wird das Zählerfeld 305 des Schlangenspeichers 5 für dekodierte Befehle für den Befehl A den Wert Null annehmen, so daß der Befehl A vollständig dekodiert ist. Somit kommt die Befehlsausführeinheit 7 in den befehlsausführbaren Zustand.
  • Wenn in Fig. 10 der Befehl B keinen Operanden hat, wird der Eingang des Schlangenspeichers 5 für dekodierte Befehle des Befehls B im Zyklus T&sub8; unmittelbar nach der Dekodierung im Zyklus T&sub7;. Da jedoch der Befehl keinen Operanden hat, nimmt das Zählerfeld 305 für den Befehl B den Wert Null an, so daß der Befehl B in einen befehlausführbaren Schlangeneingang im Zyklus T&sub8; gesetzt wird. In diesem Fall setzt das Zählerverminderungssignal, das der Adressenübersetzung der Operanden A2 und A3 des Befehls A folgt, den Wert des Zählerfelds 305 entsprechend dem Befehl A in der Schlange. Mit anderen Worten, wie in Fig. 5 gezeigt, vermindert das Verminderungssignal den Zählerwert des Eingangs, der in der Schlange gültig ist, einen Zählerwert ungleich Null hat und am nächsten zu dem Schlangenausgang ist.
  • Fig. 11 ist eine Zeittafel, die diesselben Vorkommnisse bei der Dekodierung des Befehls A wie in Fig. 10 zeigt, aber den Fall schildert, in welchem eine Übersetzungsausnahme während der Adressenübersetzung des Operandenteils A2 auftritt. Eine Ausnahme tritt als Ergebnis der Adressenübersetzung im Zyklus T&sub6; auf. Dann sendet die Adressenübersetzungseinheit 4 das Signal Terror 20 an die Befehlsdekodereinheit 2, um sie vom Auftreten der Ausnahme zu informieren. Die Befehlsdekodereinheit 2 sendet das Ausnahmesignal (ERROR) 15 an den Schlangenspeicher 5 für dekodierte Befehle und stoppt die Verarbeitung eines Befehls C, der dekodiert wird, und die Adressenberechnung der Adressenberechnungseinheit 3. Als Ergebnis wird das Ausnahmeflag 304 des gültigen Schlangeneingangs des Schlangenspeicher 5 für dekodierte Befehle, welcher einen Zählerwert ungleich Null hat und welcher der nächste an den Schlangenausgang ist, gesetzt. Somit bearbeitet die Befehlsausführeinheit 7 augenblicklich die Ausnahme, da das Ausnahmeflag 304 der dekodierten Information des Befehls A des Schlangenausgangs am Eingang E, d.h. vom Ausgang des Schlangenspeichers 5, gesetzt ist.
  • Wie beschrieben wurde, kann gemäß der Erfindung die Befehlsdekoderung, die Effektivadressenberechnung des Operanden und die Adressenübersetzung von der virtuellen Adresse in die reale Adresse jeweils parallel durchgeführt werden. Außerdem enthält das Datenverarbeitungssystem Mittel, um über die normale oder anormale Beendigung der Adressenübersetzung des Operanden des Befehls einer vorher dekodierten Information den Schlangenspeicher für dekodierte Befehle zu informieren, und Mittel, um die dekodierte Information in einen ausführbaren dekodierten Befehl zu übersetzen, in dem Moment, in dem alle Adressenübersetzungen der Operanden des Befehls, die Adressenübersetzungen brauchen, beendet sind. Somit kann die Befehlsdekodereinheit die Dekodierung fortsetzen. Als Ergebnis kann der Mikroprozessor mit der virtuellen Speicherverwaltungsfunktion das Programm mit einer höheren Geschwindigkeit als herkömmliche verarbeiten.

Claims (7)

1. Datenverarbeitungssystem mit:
Befehlsverarbeitungsmitteln mit einem Befehlsschlangenspeicher (1) zum Speichern eines vorbereiteten Befehlscodes;
Befehlsdekodiermittel (2) zum Ausgeben eines Signals (IREQ), das den Befehlsschlangenspeicher (1) zum Auslesen eines darin gespeicherten Befehls anweist und zum Dekodieren des Operandencodes und des Operandenfeldes - wenn vorhanden - des angeforderten und aus dem Befehlsschlangenspeicher (1) ausgelesenen Befehls, wobei die Befehlsdekodiermittel (2) einen dekodierten Befehl erzeugen;
Effektivadressen-Berechnungsmittel (3) zur Durchführung einer Berechnung einer effektiven Adresse, abhängig von der Anforderung (EASTART) der Befehldekodiermittel (2) Adressübersetzungsmitteln (4) zum Übersetzen einer von den Effektivadressen-Berechnungsmitteln (3) ausgegebenen effektiven Adresse in eine reale Adresse und zum Ausgeben eines Übersetzungsabschlußsignales (TREADY) und zum Erfassen (TERROR) einer Übersetzungsausnahme; und
Befehlsausführungsmitteln (7), zum Empfang des dekodierten Befehls und zur Ausführung des dekodierten Befehls, wenn dieser ausführbar ist,
wobei das System gekennzeichnet ist durch einen Befehlsschlangenspeicher (5) für dekodierte Befehle, der den dekodierten Befehl von den Befehlsdekodiermitteln (2) empfängt und speichert, um den dekodierten Befehl den Befehlausführungsmitteln zuzuführen, wobei der Befehlsschlangenspeicher (5) für dekodierte Befehle eine Warteschlangenstruktur aus einer Anzahl Eingänge (D,Q,E) zum Halten einer Eingangsinformation hat und wobei der Befehlsschlangenspeicher (5) für dekodierte Befehle aufweist:
ein Gültigkeitsbit (303) an jedem Eingang, wobei dieses Bit gesetzt wird, wenn ein dekodierter Befehl, der in die Warteschlange für dekodierte Befehle eingegeben ist, am entsprechenden Eingang gültig wird, und es gelöscht wird, wenn die Befehlausführungsmittel (7) den dekodierten Befehl aus dem Befehlsschlangenspeicher (5) für dekodierte Befehle ausliest;
Ausnahmeflags (304), die so arbeiten, daß im Falle einer Übersetzungsausnahme dasjenige, welches dem Warteschlangenausgang am nächsten ist und in welchem der gezählte Wert ungleich Null ist, gesetzt wird;
wobei die Befehlsausführungsmittel (7), den dekodierten Befehl holen und ausführen, der das zugeordnete Zählermittel mit dem Zählwert Null innerhalb des Befehlsschlangenregisters (5) für dekodierte Befehle hat, derart, daß ein Ausnahmeprozeß durchgeführt wird, wenn das Ausnahmeflag (304) gesetzt ist, und daß ansonsten der dekodierte Befehl ausgeführt wird;
erste Zählermittel (305 entsprechend Eingang D), die abhängig von einem Effektivadress-Anforderungssignal (16) hochgezählt und abhängig von einem Übersetzungsabschlußsignal (14) herabgezählt werden können, und
zweite Zählermittel (305 entsprechend den Eingängen Q und E) mit einer Herabzählfunktion, die so arbeitet, daß, wenn sowohl die erste als auch die zweiten Zählermittel (305) herabzuzählen sind, eines der zweiten Zählermittel, welches am nächsten dem Ausgang der mit dem Befehlausführungsmittel (7) verbundenen Warteschlange der dekodierten Befehle angeordnet ist, einen Zählwert ungleich Null hat und einem gültigen Eingang entspricht, herabgezählt wird, und, wenn die Warteschlange in dem Befehlsschlangenspeicher (5) für dekodierte Befehle vorrückt, der Zählwert der ersten Zählermittel (205) zu dem der zweiten Zählermitteln kopiert wird und dann auf den Wert Null gesetzt wird.
2. Datenverarbeitungssystem nach Anspruch 1 mit ferner einem Effektivadressenregister (6) zum Halten des effektiven Adressenwertes, der von den Effektivadressenberechnungsmitteln (3) erzeugt wird, wenn der Operand einen effektiven Adressenwert hat.
3. Datenverarbeitungssystem nach Anspruch 1, bei dem das erste Zählermittel (305, Eingang D) eine Befehlsschlangenspeichersteuerung (301) zur Steuerung der Warteschlange aufweist, und bei dem die zweiten Zählermittel (305, Eingang Q) ein Zählerfeld enthalten, das in jedem der Eingänge des Befehlsschlangenregisters (5) für dekodierte Befehle ausgebildet ist und ausgestaltet ist, um durch die Befehlsdekodiermittel (2) initialisiert zu werden und abhängig vom Effektivadressen-Berechnungsanforderungssignal der Befehlsdekodiermittel (2) herabgezählt zu werden.
4. Datenverarbeitungssystem nach Anspruch 3, bei dem der Befehlsschlangenspeicher (5) für dekodierte Befehle außerdem in jedem der Eingänge enthält:
ein Befehlsfeld, das angepaßt ist, um mit einer dem dekodierten Befehl und den Operanden der Befehlsdekodiermittel (2) betreffenden Information gesetzt zu werden;
ein Gültigkeitsflag (303), das die Gültigkeit des Inhalts der Warteschlange angibt; und
ein Ausnahmeflag (304), das das Auftreten einer Adressenübersetzungsausnahme bei der Adressenübersetzung des Adressenübersetzungsmittel anzeigt.
5. Datenverarbeitungssystem nach Anspruch 1, bei dem die Befehlsdekodiermittel (2) aufweisen:
eine Befehlsdekodiersteuerung (201), um von dem Befehlsschlangenregister (1) die Übertragung des Befehlscodes anzufordern und eine Dekodierung anzuordnen, einen Arbeitscodedekoder (202) zum Dekodieren des Befehlscodes des Befehlsschlangenregisters (1) abhängig von der Anweisung der Befehlsdekodiersteuerung (201), und zum Abgeben des dekodierten Ergebnisses an den Befehlsschlangenspeicher (5) für dekodierte Befehle und der Information, die die Zahl und Art der der Befehlsdekodiersteuerung (201) angezeigten Operanden anzeigt; und
einen Operandendekoder (203) zum Dekodieren des Operandenteils des Befehlscodes des Befehlsschlangenregisters (1) abhängig von der Anweisung der Befehlsdekodiersteuerung (201).
6. Datenverarbeitungssystem nach Anspruch 1, bei dem die Effektivadressen-Berechnungsmittel (3) enthalten:
eine Adressenberechnungssteuerung (401) zur Steuerung der Arbeitsschritte der Effektivadressen-Berechnungsmittel (3); und
einen Adressenberechnungsabschnitt (402) zur Durchführung einer Effektivadressenberechnung; und
eine Adressenhalteeinrichtung (403) zum Halten der durch den Adressenberechnungsabschnitt (402) berechneten Effektivadresse.
7. Datenverarbeitungssystem nach Anspruch 1, bei dem die Adressenübersetzungsmittel (4) enthalten:
einen Adressenübersetzer (502) zum Übersetzen einer realen Adresse, die durch die Effektivadressen-Berechnungsmittel (3) berechnet wurde, in eine virtuelle Adresse und zum Überprüfen einer Übersetzungsausnahme.
DE3750702T 1986-03-25 1987-03-25 Datenverarbeitungssystem. Expired - Fee Related DE3750702T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61067843A JPH06100968B2 (ja) 1986-03-25 1986-03-25 情報処理装置

Publications (2)

Publication Number Publication Date
DE3750702D1 DE3750702D1 (de) 1994-12-08
DE3750702T2 true DE3750702T2 (de) 1995-06-14

Family

ID=13356636

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3750702T Expired - Fee Related DE3750702T2 (de) 1986-03-25 1987-03-25 Datenverarbeitungssystem.

Country Status (4)

Country Link
US (1) US4847748A (de)
EP (1) EP0239097B1 (de)
JP (1) JPH06100968B2 (de)
DE (1) DE3750702T2 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
JPS6398737A (ja) * 1986-10-15 1988-04-30 Mitsubishi Electric Corp デ−タ処理装置
JPH01112450A (ja) * 1987-10-27 1989-05-01 Sharp Corp メモリ管理ユニット
JPH01255036A (ja) * 1988-04-04 1989-10-11 Toshiba Corp マイクロプロセッサ
JP2504149B2 (ja) * 1988-12-02 1996-06-05 三菱電機株式会社 命令キュ―管理装置
EP0389175A3 (de) * 1989-03-15 1992-11-19 Fujitsu Limited Datenvorausladesystem
US5615349A (en) * 1990-09-04 1997-03-25 Mitsubishi Denki Kabushiki Kaisha Data processing system capable of execution of plural instructions in parallel
JP2834292B2 (ja) * 1990-08-15 1998-12-09 株式会社日立製作所 データ・プロセッサ
US5335333A (en) * 1991-10-29 1994-08-02 Intel Corporation Guess mechanism for faster address calculation in a pipelined microprocessor
JP2771374B2 (ja) * 1991-12-27 1998-07-02 茨城日本電気株式会社 プロセッサのページ越処理方式
US6378062B1 (en) * 1994-01-04 2002-04-23 Intel Corporation Method and apparatus for performing a store operation
US5664137A (en) * 1994-01-04 1997-09-02 Intel Corporation Method and apparatus for executing and dispatching store operations in a computer system
US6742110B2 (en) * 1998-10-06 2004-05-25 Texas Instruments Incorporated Preventing the execution of a set of instructions in parallel based on an indication that the instructions were erroneously pre-coded for parallel execution
US7376820B2 (en) * 2000-03-16 2008-05-20 Fujitsu Limited Information processing unit, and exception processing method for specific application-purpose operation instruction
JP3831396B2 (ja) * 2002-08-30 2006-10-11 株式会社ルネサステクノロジ データ処理装置及びicカード
US11841822B2 (en) 2019-04-27 2023-12-12 Cambricon Technologies Corporation Limited Fractal calculating device and method, integrated circuit and board card
WO2020220935A1 (zh) * 2019-04-27 2020-11-05 中科寒武纪科技股份有限公司 运算装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253421A5 (de) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
DE2704560C2 (de) * 1977-02-03 1979-01-18 Siemens Ag, 1000 Berlin Und 8000 Muenchen Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen
SE403322B (sv) * 1977-02-28 1978-08-07 Ellemtel Utvecklings Ab Anordning i en styrdator for forkortning av exekveringstiden for instruktioner vid indirekt adressering av ett dataminne
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
JPS5932824B2 (ja) * 1979-11-14 1984-08-11 株式会社日立製作所 デ−タ処理装置
JPS5847053B2 (ja) * 1979-11-19 1983-10-20 株式会社日立製作所 デ−タ処理装置
EP0139080B1 (de) * 1980-02-25 1989-08-30 Kabushiki Kaisha Toshiba Datenverarbeitungssystem
JPS58164076A (ja) * 1982-03-24 1983-09-28 Fujitsu Ltd 待行列制御方式
US4521851A (en) * 1982-10-13 1985-06-04 Honeywell Information Systems Inc. Central processor
US4707784A (en) * 1983-02-28 1987-11-17 Honeywell Bull Inc. Prioritized secondary use of a cache with simultaneous access
JPH0827718B2 (ja) * 1983-10-05 1996-03-21 株式会社日立製作所 情報処理装置
US4763245A (en) * 1985-10-30 1988-08-09 International Business Machines Corporation Branch prediction mechanism in which a branch history table is updated using an operand sensitive branch table
US4722046A (en) * 1986-08-27 1988-01-26 Amdahl Corporation Cache storage priority

Also Published As

Publication number Publication date
EP0239097A2 (de) 1987-09-30
DE3750702D1 (de) 1994-12-08
JPS62224828A (ja) 1987-10-02
US4847748A (en) 1989-07-11
EP0239097A3 (en) 1990-04-25
EP0239097B1 (de) 1994-11-02
JPH06100968B2 (ja) 1994-12-12

Similar Documents

Publication Publication Date Title
DE3750702T2 (de) Datenverarbeitungssystem.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE68927492T2 (de) Verfahren und Vorrichtung zur gleichzeitigen Verteilung von Befehlen an mehrere funktionelle Einheiten
DE3210816C2 (de)
DE69331448T2 (de) Dataprozessor mit einem Cachespeicher
DE3586899T2 (de) Instruktionsvorgriffsystem fuer bedingte sprungbefehle in einer zentralen verarbeitungseinrichtung.
DE69225750T2 (de) Datenverarbeitungssystem mit internem Befehlspufferspeicher
DE68918754T2 (de) Datenverarbeitungsgerät mit selektivem Befehlsvorausholen.
DE3146356C2 (de) Vorrichtung zur Steuerung der Übertragung von Gerätesteuerinformation in einem Datenendgerät
DE69130630T2 (de) Synchrones Verfahren und Gerät für Prozessoren
DE69130757T2 (de) Ausführungsvorrichtung für bedingte Verzweigungsbefehle
DE69624158T2 (de) Superskalarer Prozessor mit mehreren Registerblöcken und Erzeugung von spekulativen Antwortadressen
DE3587167T2 (de) Geraet zur vektorverarbeitung.
DE3788492T2 (de) Vorrichtung und Verfahren zur Verbesserung des Cachezugriffdurchflusses in Pipelineprozessoren.
DE3942669A1 (de) Virtuelles maschinensystem
DE4207148A1 (de) Superscalar-prozessor
DE4211245B4 (de) Prozessorsystem in Parallelverarbeitungsbauart und Verfahren zu dessen Steuerung
DE3502147C2 (de)
DE68927292T2 (de) Mikrorechner, geeignet zur Schnellverarbeitung eines Verzweigungsbefehlskodes
DE19824289C2 (de) Pipelineverarbeitungsmaschine
DE68927747T2 (de) Sperrschaltung für einen erweiterten Pufferspeicher
DE69423206T2 (de) Rechnervorrichtung mit Mitteln zum Erzwingen der Ausführung von Befehlen in regelmässiger Folge
DE3751287T2 (de) Während einer Instruktionsausführung eine Unterbrechungsanforderung empfangender Mikroprogrammkontrolleur.
DE69323477T2 (de) Vektorprozessor
DE68926266T2 (de) Datenprozessor mit der Fähigkeit, Unterbrechungen mit hoher Geschwindigkeit zu verarbeiten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee