DE3752100T2 - Befehlsvorabrufgerät mit einer Schaltung zum Prüfen der Vorhersage eines Verzweigungsbefehls vor seiner Ausführung - Google Patents

Befehlsvorabrufgerät mit einer Schaltung zum Prüfen der Vorhersage eines Verzweigungsbefehls vor seiner Ausführung

Info

Publication number
DE3752100T2
DE3752100T2 DE3752100T DE3752100T DE3752100T2 DE 3752100 T2 DE3752100 T2 DE 3752100T2 DE 3752100 T DE3752100 T DE 3752100T DE 3752100 T DE3752100 T DE 3752100T DE 3752100 T2 DE3752100 T2 DE 3752100T2
Authority
DE
Germany
Prior art keywords
instruction
branch
address
predicted
information
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
DE3752100T
Other languages
English (en)
Other versions
DE3752100D1 (de
Inventor
Toshiteru Shibuya
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
Priority claimed from JP61000323A external-priority patent/JPH0695306B2/ja
Priority claimed from JP32686A external-priority patent/JPS62159233A/ja
Priority claimed from JP61000321A external-priority patent/JPH0754460B2/ja
Priority claimed from JP32286A external-priority patent/JPS62159229A/ja
Priority claimed from JP32486A external-priority patent/JPS62159231A/ja
Priority claimed from JP32586A external-priority patent/JPS62159232A/ja
Application filed by NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Application granted granted Critical
Publication of DE3752100D1 publication Critical patent/DE3752100D1/de
Publication of DE3752100T2 publication Critical patent/DE3752100T2/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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables

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)

Description

  • Die Erfindung betrifft ein Befehlsvorabrufgerät zur Verwendung in Kombination mit einem Daten- oder Informationsverarbeitungssystem, das eine Ausführungsschaltung zum Ausführen einer Befehlsfolge einschließt, wobei jeder Befehl nacheinander in mehreren Stufen verarbeitet wird.
  • Ein derartiges Befehlsvorabrufgerät dient zur Ausführung des Vorabrufs mindestens eines Befehls aus der Folge, um in einem Befehlspuffer eine Warteschlange zu bilden, und ist bereits bekannt. Beispielsweise werden Befehlsvorabrufgeräte in der EP-A-109 655 und der EP-A-0 157 125, die im folgenden als ältere Patentanmeldung bezeichnet wird, offenbart. Übrigens wird jede der obenerwähnten mehreren Stufen in einem Operations- bzw. Maschinenzyklus verarbeitet. Die Stufen schließen eine Ausführungsstufe für jeden Befehl ein, um das Ergebnis der Berechnung zu liefern, die durch den betreffenden Befehl angezeigt bzw. angegeben wird.
  • Nach der EP-A-109 655 und der EP-A-0 157 125 weist das Befehlsvorabrufgerät als Hauptelement einer Voraussageanordnung eine Verzweigungsvorgeschichtetabelle bzw. Verzweigungsarchivtabelle auf. Als Reaktion auf eine Befehlsadresse, die zu einem Zeitpunkt in einem Befehlsadressenregister gesetzt wird, erzeugt die Voraussageanordnung eine Verzweigungsinformation, die bei der tatsächlichen Verarbeitung eines Befehls mit der Befehlsadresse in der Ausführungsstufe das letzte Mal vor dem Vorabruf des betreffenden Befehls gewonnen wurde. Die Voraussageanordnung erzeugt die Verzweigungsinformation als vorausgesagte Verzweigungsinformation. Der Befehl mit der Befehlsadresse kann, lediglich zur bequemen Unterscheidung des betreffenden Befehls von anderen Befehlen in der Folge, als spezieller Befehl bezeichnet werden.
  • Das Befehlsvorabrufgerät gemäß EP-A-109 655 oder EP-A-0 157 125 weist eine Voraussageprüf- oder -beurteilungsanordnung und eine Vorabrufsteueranordnung auf. Die Voraussageprüfanordnung ist mit der Voraussageanordnung und der Ausführungsschaltung gekoppelt, um unmittelbar nach der Ausführungsstufe für den betreffenden Befehl zu prüfen, ob die vorausgesagte Verzweigungsinformation richtig oder falsch ist. Die Vorabrufsteueranordnung ist mit der Voraussageanordnung und der Voraussageprüfanordnung gekoppelt, um die Fortsetzung des Vorabrufs gemäß der vorausgesagten Verzweigungsinformation zu ermöglichen, wenn die vorausgesagte Verzweigungsinformation richtig ist. Wenn die vorausgesagte Verzweigungsinformation falsch ist, dann korrigiert die Vorabrufsteueranordnung die Fortsetzung des Vorabrufs.
  • Das Befehlsvorabrufgerät gemäß EP-A-109 655 ist mit einem nur kurzen mittleren Verlustzyklus betreibbar. Das Befehlsvorabrufgerät gemäß EP-A-0 157 125 ist gleichfalls mit einem nur kurzen mittleren Verlustzyklus betreibbar und besonders effektiv, wenn der betreffende Befehl ein schleifenzahlabhängiger bzw. zählungsbedingter Verzweigungsbefehl ist. Es ist jedoch wünschenswert, die vorausgesagte Verzweigungsinformation so früh wie möglich zu prüfen und zu entscheiden, ob der Vorabruf fortgesetzt oder korrigiert werden sollte.
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, ein Befehlsvorabrufgerät zur Verwendung in Kombination mit einem Datenverarbeitungssystem zu schaffen, das eine Ausführungsschaltung zur Ausführung einer Befehlsfolge aufweist, wobei jeder Befehl nacheinander in mehreren Stufen einschließlich einer Ausführungsstufe verarbeitet wird, und das eine vorausgesagte Verzweigungsinformation in mindestens einer der Stufen, die vor der Ausführungsstufe liegt, prüfen kann. Diese Aufgabe wird mit den Merkmalen der Ansprüche gelöst.
  • Weitere Aufgaben der Erfindung werden im weiteren Verlauf der Beschreibung klar werden.
  • Ein Befehlsvorabrufgerät, auf das die vorliegende Erfindung anwendbar ist, dient zur Verwendung in Kombination mit einem Datenverarbeitungssystem, das eine Ausführungseinrichtung zum Ausführen einer Befehlsfolge aufweist, wobei jeder Befehl nacheinander in mehreren Stufen einschließlich einer Ausführungsstufe verarbeitet wird. Das Befehlsvorabrufgerät dient zum Ausführen des Vorabrufs mindestens eines Befehls aus der Folge und weist eine Voraussageeinrichtung auf, die als Reaktion auf eine Befehlsadresse eine Verzweigungsinformation erzeugt, die bei der Verarbeitung eines speziellen Befehls mit der Befehlsadresse in der Ausführungsstufe das letzte Mal vor dem Vorabruf des betreffenden Befehls gewonnen wurde, wobei die Voraussageeinrichtung die Verzweigungsinformation als vorausgesagte Verzweigungsinformation erzeugt. Gemäß der vorliegenden Erfindung ist das Befehlsvorabrufgerät gekennzeichnet durch: eine mit der Voraussageeinrichtung und der Ausführungseinrichtung gekoppelte Voraussageprüfeinrichtung, um in mindestens einer der Stufen vor der Ausführungsstufe für den betreffenden Befehl zu prüfen, ob die vorausgesagte Verzweigungsinformation richtig oder falsch ist; und eine mit der Voraussageeinrichtung und der Voraussageprüfeinrichtung gekoppelte Vorabrufsteuereinrichtung, um die Fortsetzung des Vorabrufs eines nachfolgenden Befehls zu ermöglichen, wenn die vorausgesagte Verzweigungsinformation richtig ist; wobei die Vorabrufprüfeinrichtung die Fortsetzung korrigieren soll, wenn die Verzweigungsinformation falsch ist, wobei der nachfolgende Befehl der nächste ist, der sich an den betreffenden Befehl in der Folge anschließt.
  • Fig. 1, die über drei Blatt (a) bis (c) geht, zeigt ein Blockschaltbild eines Datenverarbeitungssystems mit einem Befehlsvorabrufgerät nach einem ersten Ausführungsbeispiel der vorliegenden Erfindung;
  • Fig. 2 zeigt ein Diagramm zur Beschreibung der Arbeitsweise des in Fig. 1 abgebildeten Datenverarbeitungssystems;
  • Fig. 3 zeigt ein Beispiel für ein Befehlswort, das in dem in Fig. dargestellten Datenverarbeitungssystem verwendet wird;
  • Fig. 4 zeigt ein Paar Einträge in einer Verzweigungsarchivtabelle, die in dem in Fig. 1 dargestellten Befehlsvorabrufgerät verwendet wird;
  • Fig. 5 zeigt einen Eintrag in einem Verzweigungsinformationsregister, das in dem in Fig. 1 dargestellten Befehlsvorabrufgerät verwendet wird;
  • Fig. 6 zeigt ein Blockschaltbild einer ersten Voraussageprüfschaltung zur Verwendung in dem in Fig. 1 dargestellten Befehlsvorabrufgerät;
  • Fig. 7 zeigt ein Blockschaltbild einer zweiten Voraussageprüfschaltung zur Verwendung in dem in Fig. 1 dargestellten Befehlsvorabrufgerät;
  • Fig. 8 zeigt ein Blockschaltbild einer dritten Voraussageprüfschaltung zur Verwendung in dem in Fig. 1 dargestellten Befehlsvorabrufgerät;
  • Fig. 9 zeigt ein Blockschaltbild einer vierten Voraussageprüfschaltung zur Verwendung in dem in Fig. 1 dargestellten Befehlsvorabrufgerät;
  • Fig. 10 zeigt ein Blockschaltbild einer Befehlsvorabrufsteuerschaltung zur Verwendung in dem in Fig. 1 dargestellten Befehlsvorabrufgerät;
  • Fig. 11 zeigt ein Diagramm, das die Entsprechung zwischen einem Befehlsspeicher, der in dem in Fig. 1 dargestellten Datenverarbeitungssystem verwendet wird, und einer Verzweigungsarchivtabelle von dem in Verbindung mit Fig. 4 erwähnten Typ darstellt;
  • Fig. 12 zeigt ein schematisches Diagramm zum Gebrauch bei der Beschreibung der Arbeitsweise des Befehlsvorabrufgeräts, das die in Fig. 11 dargestellte Verzweigungsarchivtabelle aufweist;
  • Fig. 13 zeigt ein schematisches Zeitdiagramm zum Gebrauch bei der Beschreibung der Arbeitsweise des in Fig. 1 dargestellten Befehlsvorabrufgeräts;
  • Fig. 14 zeigt ein weiteres schematisches Zeitdiagramm zum Gebrauch bei der Beschreibung der Arbeitsweise des in Fig. 1 dargestellten Befehlsvorabrufgeräts;
  • Fig. 15 zeigt ein weiteres schematisches Zeitdiagramm zum Gebrauch bei der Beschreibung der Arbeitsweise des in Fig. 1 dargestellten Befehlsvorabrufgeräts;
  • Fig. 16 zeigt ein weiteres schematisches Zeitdiagramm zum Gebrauch bei der Beschreibung der Arbeitsweise des in Fig. 1 dargestellten Befehlsvorabrufgeräts;
  • Fig. 17 zeigt ein weiteres schematisches Zeitdiagramm zum Gebrauch bei der Beschreibung der Arbeitsweise des in Fig. 1 dargestellten Befehlsvorabrufgeräts; und
  • Fig. 18 zeigt ein Teilblockschaltbild eines Befehlsvorabrufgeräts nach einem zweiten Ausführungsbeispiel der Erfindung.
  • Wie aus Fig. 1 erkennbar, weist ein Daten- oder Informationsverarbeitungssystem ein Befehlsvorabrufgerät nach einem ersten Ausführungsbeispiel der vorliegenden Erfindung auf. Vor der Beschreibung des Befehlsvorabrufgeräts wird ein Beispiel eines Datenverarbeitungssystems beschrieben, um das Verständnis der vorliegenden Erfindung zu erleichtern.
  • Dem Fachmann ist bekannt, daß ein Datenverarbeitungssystem in mehrere Einheiten unterteilbar ist, wie z. B. in einen Befehlsspeicher 31, eine Befehlsadressenerzeugungsschaltung 32, eine Befehlsadressenübersetzungsschaltung 33, eine Befehlsausführungseinheit 35, eine Befehlsdecodierschaltung 36, eine Operandenadressenerzeugungsschaltung 37, eine Operandenadressenübersetzungsschaltung 38 und eine Operandenleseschaltung 39. Der Befehlsspeicher 31 dient zum Speichern einer Befehlsfolge. Die Operandenleseschaltung 39 schließt einen Operandenspeicher (nicht dargestellt) ein. Je nach den Umständen wird eine Kombination aus der Befehlsadressenerzeugungsschaltung 32, der Befehlsadressenübersetzungsschaltung 33, der Befehlsausführungseinheit 35, der Befehlsdecodierschaltung 36, der Operandenadressenerzeugungsschaltung 37, der Operandenadressenubersetzungsschaltung 38 und der Operandenleseschaltung 39 hierin als Befehlsausführungsschaltung oder -anordnung bezeichnet.
  • Obgleich nicht abgebildet, kann ein Hauptspeicher gemeinsam als Befehlsspeicher 31 und als Operandenspeicher der Operandenleseschaltung 39 verwendet werden. Der Befehlsspeicher 31 und der Operandenspeicher können Befehls- und Operanden-Cache-Speicher sein. Auf die dem Fachmann bekannte Weise enthält jeder Cache-Speicher eine Kopie eines Teils des Hauptspeichers. Von der Befehlsadressenerzeugungsschaltung 32 und der Operandenadressenerzeugungsschaltung 37, von der Befehlsadressenübersetzungsschaltung 33 und der Operandenadressenübersetzungsschaltung 38 bzw. vom Befehlsspeicher 31 und vom Operandenspeicher der Operandenleseschaltung 39 kann jeweils eine gemeinsame Schaltung benutzt werden.
  • Indem wir uns kurz der Fig. 2 zuwenden, können wir erkennen, daß jeder Befehl im allgemeinen in acht Stufen wie folgt verarbeitet wird.
  • (1) Befehlsadressenerzeugungsstufe (IA-Stufe):
  • Die Befehlsadressenerzeugungsschaltung 32 erzeugt eine logische Befehlsadresse eines auszuführenden Befehls;
  • (2) Befehlsadressenübersetzungsstufe (IT-Stufe):
  • Die Befehlsadressenübersetzungsschaltung 33 übersetzt die logische Befehlsadresse in eine reale Befehlsadresse;
  • (3) Befehlsadressenlesestufe (IC-Stufe):
  • Die reale Befehlsadresse wird beim Auslesen des Befehls aus dem Befehlsspeicher 31 oder vorzugsweise aus dem Cache-Befehlsspeicher verwendet;
  • (4) Befehlsdecodierstufe (ID-Stufe):
  • Die Befehlsdecodierschaltung 36 decodiert den Befehl und liefert ein Decodierungsergebnis;
  • (5) Operandenadressenerzeugungsstufe (OA-Stufe):
  • Als Reaktion auf das Decodierungsergebnis erzeugt die Operandenadressenerzeugungsschaltung 37 eine logische Operandenadresse mindestens eines Operanden;
  • (6) Operandenadressenübersetzungsstufe (OT-Stufe):
  • Die Operandenadressenübersetzungsschaltung 38 übersetzt die logische Operandenadresse in eine reale Operandenadresse;
  • (7) Operandenlesestufe (OC-Stufe):
  • Als Reaktion auf die reale(n) Operandenadresse(n) holt die Operandenleseschaltung 39 den oder die Operanden aus dem Operandenspeicher der Operandenleseschaltung 39 oder vorzugsweise aus dem Cache-Operandenspeicher; und
  • (8) Ausführungsstufe (EX-Stufe):
  • Die Befehlsausführungseinheit 35 führt den Befehl aus.
  • Die Verwendung eines Adressenübersetzungspuffers ermöglicht die Verarbeitung der Befehls- und der Operandenadressenübersetzungsstufen mit hoher Geschwindigkeit, wenn der Adressenübersetzungspuffer eine Übersetzungstabelle aufweist, die bei der Ausführung der Übersetzung notwendig ist. Die Verwendung des Cache-Speichers ermöglicht eine Verarbeitung der Befehls- und der Operandenlesestufen mit hoher Geschwindigkeit, wenn der Cache-Speicher den Befehl und den oder die Operanden enthält, die auszulesen sind. Wenn es möglich ist, die Befehls- und Operandenadressenübersetzungsstufen und die Befehls- und Operandenlesestufen mit hoher Geschwindigkeit zu verarbeiten, kann das Datenverarbeitungssystem eine Befehlsfolge unter einer achtstufigen Pipeline-Steuerung ausführen. Jede Stufe wird in einem Maschinenzyklus verarbeitet, der durch einen Maschinen- oder Systemtakt definiert ist.
  • Betrachten wir nun eine Befehlsfolge A1, A2, ..., A(i-1), Ai, A(i+1), ..., A(j-1), Aj und so weiter. Befehle der Folge können fortlaufend einer nach dem anderen in einem Ausführungsfluß ausgeführt werden. Es wird angenommen, daß die Folge eine erste Teilfolge von Befehlen A1 bis A(i-1), eine zweite Teilfolge von Befehlen Ai bis A(j-1) und eine dritte Teilfolge von Befehlen Aj und weitere aufweist. In dem in Fig. 1 abgebildeten Befehlsspeicher 31 werden die Befehle A1 bis Aj usw. der Folge jeweils unter aufeinanderfolgenden Be fehlsadressen gespeichert.
  • Es kann notwendig werden, die erste Teilfolge und unmittelbar danach die dritte Teilfolge auszuführen. In diesem Falle ist erkennbar, daß die dritte Teilfolge eine Verzweigung des Ausführungsflusses bzw. -ganges ist. Der Befehl Aj wird als Verzweigungsziel oder als Zielbefehl bezeichnet, und man sagt, daß er auf der SPRUNG-Seite der Verzweigung liegt. Vom Fluß bzw. Verarbeitungsgang sagt man, daß er zur SPRUNG-Seite der Verzweigung gelenkt wird oder verzweigt bzw. in die Verzweigungsrichtung "geht" bzw. "springt". Der Befehl Ai wird zur Unterscheidung vom Verzweigungszielbefehl als nächster Befehl bezeichnet, und man sagt, daß er auf der NICHT-SPRUNG- Seite der Verzweigung liegt. Der Fluß setzt sich zur NICHT- SPRUNG-Seite oder in NICHT-SPRUNG-Richtung fort, wenn auf den Befehl A(i-1) als nächster der Befehl Ai und nicht der Befehl Aj folgt. Falls der Fluß zur Verzweigung gelenkt wird, dann wird ein Verzweigungsbefehl BC als Befehl der ersten Teilfolge verwendet. Die Befehlsadresse des Verzweigungszielbefehls wird als Verzweigungszieladresse bezeichnet. Die Befehlsadresse des nächsten Befehls wird als nächste Befehlsadresse bezeichnet. Als nachfolgender Befehl wird hierin entweder der nächste Befehl oder der Verzweigungszielbefehl bezeichnet.
  • Als Alternative kann es notwendig werden, die erste Teilfolge auszuführen, die zweite Teilfolge entsprechend einer vorgegebenen Schleifenzahl wiederholt auszuführen, und dann die dritte Teilfolge auszuführen. In diesem alternativen Fall läßt sich erkennen, daß die zweite Teilfolge eine Verzweigung ist. Die zweite Teilfolge wird wahlweise als Schleife bezeichnet. Nachdem die Schleife sooft wie vorgegeben ausgeführt worden ist, wird sie verlassen. Auf jeden Fall ist der Befehl Ai ein Verzweigungszielbefehl auf einer SPRUNG-Seite. Der Befehl Aj ist der nächste Befehl auf einer NICHT-SPRUNG-Seite. Der Verzweigungsbefehl BC wird hierin als zählungsbedingter Verzweigungsbefehl (zählwertabhängiger Verzweigungsbefehl) BCT bezeichnet.
  • Der zuerst erwähnte Verzweigungsbefehl BC kann in Abhängigkeit von einer Verzweigungsbedingung oder einer Bedingung für die Verzweigung entweder die SPRUNG-Richtung oder die NICHT-SPRUNG-Richtung anzeigen. Der Verzweigungsbefehl wird hier als bedingter Verzweigungsbefehl (bedingungsabhängiger Verzweigungsbefehl) CB bezeichnet. Wenn die Verzweigungsbedingung vor der Ausführung des bedingten Verzweigungsbefehls CB vorbereitend bekannt ist, dann ist der Verzweigungsbefehl ein unbedingter oder bedingungsloser Verzweigungsbefehl UB oder kein Verzweigungsbefehl mehr. Daher kann man bei einem bedingten Verzweigungsbefehl CB davon ausgehen, daß die Verzweigungsbedingung erst nach der Verarbeitung des betreffenden Verzweigungsbefehls in der Ausführungsstufe bekannt ist.
  • Es kann hier erwähnt werden, daß jeder Befehl einen Operationscode und ein Feld aufweist, von dem anzunehmen ist, daß es entweder eine Befehlsadresse oder mindestens eine Operandenadresse anzeigt. Das Feld wird hierin als Adressenfeld bezeichnet. Ein Verzweigungsbefehl BC kann ein Adressenfeld aufweisen, das eine Verzweigungszieladresse anzeigt. Wenn ein solcher Verzweigungsbefehl durch die Befehlsdecodierschaltung 36 decodiert wird, dann dient das Adressenfeld zur Erzeugung einer logischen Verzweigungszieladresse. Diese Tatsache ist in Fig. 2 durch eine Linie 40 angedeutet. Die Befehlsadressenübersetzungsschaltung 33 übersetzt die logische Verzweigungszieladresse in eine reale Verzweigungszieladresse.
  • In Fig. 1 weist das Datenverarbeitungssystem ein Befehlsadressenregister 41 auf, in dem auf eine später ausführlich zu beschreibende Weise durch einen Anforderungsadressenwähler jeweils eine Anforderungsadresse als aktuelle Anforderungsadresse gesetzt wird. Nach einem Zugriff unter der jeweils aktuellen Anforderungsadresse liefert der Befehlsspeicher 31 ein Befehlswort. Lediglich der bequemeren Beschreibung halber wird angenommen, daß jedes Befehlswort acht Byte lang ist.
  • Indem wir uns vorübergehend Fig. 3 zuwenden, läßt sich erkennen, daß jedes Befehlswort gewöhnlich aus mehreren Befehlen besteht. In dem abgebildeten Beispiel besteht das Befehlswort aus vier Zwei-Byte-Befehlen BCO, A, BC1 und BC2. Wie weiter unten klar werden wird, können die Befehle unterschiedliche Befehlsbitlängen aufweisen.
  • Wenn wir uns wieder Fig. 1 zuwenden, ist erkennbar, daß die Befehlswörter nacheinander aus dem Befehlsspeicher 31 ausgelesen und zeitweilig in einem Befehlspuffer 43 als Warteschlange, die aus mindestens einem Befehl besteht, gespeichert werden. Auf die dem Fachmann bekannte Weise übergibt ein Befehlsaneinanderreiher bzw. -ausrichter 44 je einen Befehl als aktuellen Befehl vom Befehlspuffer 43 an die Befehlsdecodierschaltung 36. Erst wenn der Befehlspuffer 43 leer ist, speist der Befehlsaneinanderreiher 44 die Befehlsdecodierschaltung 36 mit einem Befehl aus einem Befehlswort, das gegenwärtig aus dem Befehlsspeicher 31 ausgelesen wird.
  • Ein Anforderungadressenaddierer 45 dient zum Addieren der Zahl acht zur aktuellen Anforderungsadresse, die vom Befehlsadressenregister 41 zugeführt wird, um eine nächste Anforderungsadresse zu bilden, die an den Adressenanforderungswähler 42 als erstes von sieben Eingangssignalen übergeben wird. Nach der Auswahl durch den Anforderungsadressenwähler 42 auf eine später zu beschreibende Weise wird die nächste Anforderungsadresse im Befehlsadressenregister 41 als neue aktuelle Anforderungsadresse an Stelle einer vorausgehenden Anforderungsadresse eingesetzt, die das letzte Mal vor der neuen aktuellen Anforderungsadresse als aktuelle Anforderungsadresse verwendet wurde. Solche aktuellen Anforderungsadressen werden beim Vorabruf mindestens eines Befehls aus dem Befehlsspeicher 31 verwendet, um die Warteschlange im Befehlspuffer 43 zu bilden. Übrigens übergibt der Anforderungsadressenaddierer 45 ein Seitenwechselsignal an die Befehlsadressenerzeugungsschaltung 32. Informationen zum Seitenwechselsignal sind, wenn gewünscht, in den weiter oben zitierten Patentanmeldungen EP-A- 109 655 bzw. EP-A-0 157 125 zu finden. Ein Signal, das die nächste Anforderungsadresse darstellt, wird aus einem Grunde, der später klar werden wird, als NICHT-SPRUNG-Adressensignal bezeichnet.
  • Nach dem dargestellten Ausführungsbeispiel weist das Befehlsvorabrufgerät eine Verzweigungsarchivtabelle (BHT) 46 auf. Wie im weiteren Verlauf der Beschreibung klar werden wird, wird die Verzweigungsarchivtabelle 46 unter der vom Befehlsadressenregister 41 zugeführten aktuellen Anforderungsadresse abgerufen, um eine Verzweigungsinformation zu erzeugen, wenn das gegenwärtig aus dem Befehlsspeicher 31 ausgelesene Befehlswort einen Verzweigungsbefehl aufweist, der irgendwann einmal tatsächlich ausgeführt wurde, d. h. wenn die aktuelle Anforderungsadresse eine Verzweigungsbefehlsadresse eines solchen Verzweigungsbefehls aufweist. Struktur und Funktionsweise der Verzweigungsarchivtabelle 46 werden jeweils in der EP-A-109 655 bzw. der EP-A-0 157 125 beschrieben. Die Verzweigungsarchivtabelle 46 wird daher im folgenden nur kurz beschrieben.
  • Wie aus Fig. 4 erkennbar, dient die Verzweigungsarchivtabelle 46 (Fig. 1) zum Speichern mehrerer Eintragspaare, die später erläutert werden. Jedes Eintragspaar besteht aus einem ersten oder Adresseneintrag AA und einem zweiten oder Dateneintrag DA. Daher entsprechen der erste und der zweite Eintrag einander, wenn der erste und der zweite Eintrag zu einem der Paare gehören. Die ersten Einträge liefern Adresseninformationen. Die zweiten Einträge liefern die obenerwähnten verzweigungsinformationen. Genauer gesagt, der erste Eintrag eines Paares gibt eine Verzweigungsbefehlsadresse eines Verzweigungsbefehls an, der irgendwann einmal ausgeführt wurde und eine Verzweigungszieladresse lieferte. Der zweite Eintrag des betreffenden Paares gibt ein Ergebnis an, wie z. B. die Verzweigungszieladresse, die durch die tatsächliche Ausführung des Verzweigungsbefehls mit der Verzweigungsbefehlsadresse im entsprechenden ersten Eintrag erhalten wurde.
  • Genauer gesagt, die Verzweigungsinformation jedes zweiten Eintrags weist ein Gültigkeitsflag V und eine Verzweigungszieladresse auf, die durch die tatsächliche Ausführung des Verzweigungsbefehls mit der Verzweigungsbefehlsadresse im entsprechenden ersten Eintrag gewonnen wurden. Das Gültigkeitsflag kann ein Ein-Bit-Flag sein und wird daher auch als Gültigkeitsbit bezeichnet. Das Gültigkeitsflag oder -bit V zeigt die Gültigkeit der Verzweigungsinformation an, nämlich die Tatsache, daß die Verzweigungsinformation als vorausgesagte Verzweigungsinformation bei der Voraussage eines Ergebnisses einer tatsächlichen Ausführung des aktuell vorabgerufenen verzweigungsbefehls verwendet werden kann. Zu diesem Zweck wird dem Gültigkeitsbit V einer von zwei logischen Werten oder Pegeln gegeben, typischerweise ein logischer Eins-Wert oder -Pegel. Mit anderen Worten, das Gültigkeitsbit V mit dem logischen Wert eins zeigt die SPRUNG-Seite oder -Richtung als vorausgesagte Verzweigungsrichtung (mit Richtungssinn) und die begleitende Verzweigungszieladresse als vorausgesagte Zieladresse an.
  • Die Verzweigungsbefehlsadresse und die Verzweigungszieladresse sind vorzugsweise reale Adressen. In Verbindung mit Fig. 4 ist zu beachten, daß das Gültigkeitsbit V angrenzend an die reale Verzweigungsbefehlsadresse abgebildet ist, so als ob sie ein Teil des ersten Eintrags AA wäre, und nicht angrenzend an die reale Verzweigungszieladresse als Teil des zweiten Eintrags DA. Dies erfolgt in der Praxis lediglich aus Zweckmäßigkeitsgründen.
  • Wenn wir uns wieder Fig. 1 zuwenden, so ist erkennbar, daß das Befehlsvorabrufgerät eine Befehlsvorabrufsteuerschaltung 47 aufweist, wie im weiteren Verlauf der Beschreibung klar werden wird. Es wird angenommen, daß die aktuelle Anforderungsadresse eine Verzweigungsbefehlsadresse eines Verzweigungsbefehls BC aufweist. Auf eine Weise, die in der EP-A-109 655 bzw. der EP-A-0 157 125 ausführlich beschrieben wird, dient die aktuelle Anforderungsadresse dazu, zu prüfen, ob die Verzweigungsbefehlsadresse in der Verzweigungsarchivtabelle 46 gespeichert ist oder nicht. Ist die Verzweigungsbefehlsadresse vorhanden, dann übergibt die Verzweigungsarchivtabelle 46 das Gültigkeitsbit V als Adressentreffersignal an die Befehlsvorabrufsteuerschaltung 47. Mit anderen Worten, das Adressentreffersignal erhält in diesem Falle den logischen Wert eins. Ist die Verzweigungsbefehlsadresse nicht vorhanden, dann enthält die Verzweigungsarchivtabelle 46 keine Verzweigungsinformation für den Verzweigungsbefehl BC. Das Adressentreffersignal erhält einen anderen von den zwei Werten, nämlich einen logischen Wert oder Pegel null. Das Adressentreffersignal hat auch dann den logischen Wert null, wenn jede Befehlsadresse der aktuellen Anforderungsadresse entweder zu einem anderen Befehl als einem Verzweigungsbefehl oder zu einem Verzweigungsbefehl gehört, der niemals wirklich ausgeführt worden ist. Der logische Wert null des Adressentreffersignals zeigt an, daß der Ausführungsfluß nicht zur Verzweigungs-, sondern zur NICHT- SPRUNG-Seite gerichtet sein dürfte, selbst wenn der aktuelle Befehl ein Verzweigungsbefehl ist und bei seiner tatsächlichen Ausführung die SPRUNG-Richtung anzeigt.
  • So wird das Adressentreffersignal an die Befehlsvorabrufsteuerschaltung 47 entweder mit dem logischen Wert eins oder mit dem logischen Wert null als erstes von sechs Eingangssignalen übergeben, um die vorausgesagte Verzweigungsrichtung als Verzweigungsrichtungs-Voraussagesignal anzuzeigen. Es ist daher einsehbar, daß die Verzweigungsarchivtabelle 46 das Gültigkeitsbit V mit dem logischen Wert null speichern kann, wenn die NICHT-SPRUNG-Richtung durch einen Befehl angezeigt werden sollte, der entweder ein Verzweigungsbefehl oder ein anderer Befehl als die Verzweigungsbefehle sein kann. In diesem Falle erzeugt die Verzweigungsarchivtabelle 46 das Adressentreffersignal mit dem logischen Wert null, wenn die aktuelle Anforderungsadresse keine Befehlsadresse eines jemals ausgeführten Verzweigungsbefehls aufweist. Wenn das Gültigkeitsbit V den logischen Wert null hat, dann ist die dazugehörige Verzweigungszieladresse leer, d. h. sie wird bei der Voraussage einer Verzweigungszieladresse nicht benutzt.
  • Ein Verzweigungsinformationspuffer 48 weist ein Adresseninformationsfeld und ein Verzweigungsinformationsfeld auf, die in Fig. 1 durch eine dünne senkrechte Linie unterteilt sind. Gleichzeitig mit der Ansammlung der Befehlswörter im Befehlspuffer 43 in Form der Befehlswarteschlange, die als Reaktion auf aufeinanderfolgende Anforderungsadressen erfolgt, wird eine Befehlsadresse, die für jeden Befehl in der aktuellen Anforderungsadresse enthalten ist, vom Anforderungsadressenregister 31 übergeben und im Adresseninformationsfeld des Verzweigungsinformationspuffers 48 akkumuliert. Die durch das Adressentreffersignal angezeigten logischen Werte eins und null werden gleichzeitig an den Verzweigungsinformationspuffer 48 übergeben und im Verzweigungsinformationsfeld akkumuliert. Jedesmal wenn das Adressentreffersignal den logischen Wert eins hat, wird die Verzweigungszieladresse von der Verzweigungsarchivtabelle 46 an den Verzweigungsinformationspuffer 48 übergeben und im Verzweigungsinformationsfeld zusammen mit dem Gültigkeitsbit V mit dem logischen Wert eins akkumuliert. Wenn das Adressentreffersignal den logischen Wert null hat, werden nur die Befehlsadresse und das Gültigkeitsbit V mit dem logischen Wert null im Verzweigungsinformationspuffer 48 akkumuliert.
  • Ein Verzweigungsziel-Voraussagesignal, das derartige vorausgesagte Zieladressen darstellt, wird als SPRUNG-Adressensignal bezeichnet und von der Verzweigungsarchivtabelle 46 als zweites von den sieben Eingangssignalen an den Anforderungsadressenwähler 42 übergeben. Wenn im Befehlsadressenregister 41 auf eine später zu beschreibende Weise eine SPRUNG- Adresse gesetzt wird, liefert der Befehlsspeicher 31 ein Befehlswort, das den Verzweigungszielbefehl aufweist. Aus Fig. 1 ist zu entnehmen, daß die Verzweigungsarchivtabelle 46 so abgebildet ist, als ob sie nur für die Verzweigungsinformationen vorgesehen wäre, wobei das Adresseninformationsfeld als Teil einer Abrufanordnung für die Verzweigungsarchivtabelle durch eine Signalleitung abgebildet ist, die am Befehlsadressenregister 41 beginnt und an der Verzweigungsarchivtabelle 46 endet.
  • Indem wir uns vorübergehend Fig. 5 zuwenden, wird im folgenden durchweg angenommen, daß die Verzweigungsbefehls- und die Verzweigungszieladressen reale Adressen sind. Wenn das Gültigkeitsbit V den logischen Wert eins hat, dann werden die Verzweigungsbefehlsadresse, das Gültigkeitsbit V und die vorausgesagte Zieladresse im Verzweigungsinformationspuffer 48 gespeichert. Wenn das Gültigkeitsbit V den logischen Wert null hat, dann werden nur die Befehlsadresse und das Gültigkeitsbit V im Verzweigungsinformationspuffer 48 auf die oben beschriebene Weise gespeichert. Auch in diesem Falle kann die vorausgesagte Zieladresse gleichfalls im Verzweigungsinformationspuffer 48 gespeichert werden. Die vorausgesagte Zieladresse ist jedoch leer, wie bereits dargelegt wurde. Obwohl in Fig. 5 abgebildet, ist die Befehlsbitlänge noch nicht bekannt und wird nicht im Verzweigungsinformationspuffer 48 gespeichert.
  • Wie wiederum aus Fig. 1 erkennbar, entspricht ein Verzweigungsinformationsschalter 49 dem Befehlsaneinanderreiher 44 auf die nachstehend beschriebene Weise. Die ersten bis fünften Verzweigungsinformationsregister 51, 52, 53, 54 und 55 werden für Zwecke verwendet, die im weiteren Verlauf der Beschreibung klar werden. Jedes der Verzweigungsinformationsregister 51 bis 55 weist ebenso wie der Verzweigungsinformationspuffer 48 ein Adresseninformationsfeld und ein Verzweigungsinformationsfeld auf. Das Adresseninformationsfeld des ersten Verzweigungsinformationsregisters 51 ist allein für die Befehlsadresse vorgesehen. Das Adresseninformationsfeld jedes der zweiten bis fünften Verzweigungsinformationsregister 52 bis 55 ist für die in Fig. 5 abgebildete Befehlsbitlänge und für die Befehlsadresse vorgesehen. Das Verzweigungsinformationsfeld jedes der ersten bis fünften Verzweigungsinformationsregister 51 bis 55 ist für das Gültigkeitsbit V und die vorausgesagte Zieladresse vorgesehen.
  • Gleichzeitig mit der Übergabe des aktuellen Befehls vom Befehlspuffer 43 durch den Befehlsaneinanderreiher 44 an die Befehlsdecodierschaltung 36 übergibt der Verzweigungsinformationsschalter 49 die Befehlsadresse, das Gültigkeitsbit V und die vorausgesagte Zieladresse für den aktuellen Befehl vom Verzweigungsinformationspuffer 48 an das erste Verzweigungsinformationsregister 51. Erst wenn der Befehlspuffer 43 und infolgedessen der Verzweigungsinformationspuffer 48 leer ist, speist der Verzweigungsinformationsschalter 49 das erste Verzweigungsinformationsregister 51 mit der Befehlsadresse des aktuellen Befehls direkt aus dem Befehlsadressenregister 41 und mit dem Gültigkeitsbit V und der vorausgesagten Zieladresse direkt aus der Verzweigungsarchivtabelle 46. Auf diese Weise wird das erste Verzweigungsinformationsregister 51 mit der Befehlsadresse, dem Gültigkeitsbit V und der vorausgesagten Zieladresse für den aktuellen Befehl geladen, der in der Befehlsdecodierstufe durch die Befehlsdecodierschaltung 36 verarbeitet wird.
  • Die Befehlsdecodierschaltung 36 decodiert den aktuellen Befehl und übergibt die Befehlsbitlänge an das zweite Verzweigungsinformationsregister 52. Inzwischen wird der Inhalt des ersten Verzweigungsinformationsregisters 51 zum zweiten Verzweigungsinformationsregister 52 übertragen. Der aktuelle Befehl wird danach in der Operandenadressenerzeugungsstufe durch die Operandenadressenerzeugungsschaltung 37 verarbeitet.
  • Sobald der aktuelle Befehl in der Operandenadressenübersetzungsstufe durch die Operandenadressenübersetzungsschaltung 38 verarbeitet wird, wird der Inhalt des zweiten Verzweigungsinformationsregisters 52 zum dritten Verzweigungsinformationsregister 53 übertragen. Wenn der aktuelle Befehl ein Verzweigungsbefehl BC ist, erzeugt die Befehlsadressenübersetzungsschaltung 33 in dieser Stufe ein SPRUNG-Zielsignal, das eine SPRUNG-Zieladresse darstellt.
  • Die Befehlsadressenübersetzungsschaltung 33 kann ferner ein SPRUNG-Richtungssignal liefern, das eine SPRUNG-Richtung anzeigt. Wenn der aktuelle Befehl kein Verzweigungsbefehl BC ist, dann kann die Befehlsadressenübersetzungsschaltung 33 ein NICHT-SPRUNG-Richtungssignal liefern, das eine NICHT-SPRUNG- Richtung anzeigt. Die SPRUNG- und die NICHT-SPRUNG-Richtung können als decodierte Verzweigungsrichtung bezeichnet werden. Die SPRUNG-Zieladresse kann als decodierte Zieladresse bezeichnet werden.
  • Wenn der aktuelle Befehl in der Operandenlesestufe durch die Operandenleseschaltung 49 verarbeitet wird, dann werden nur die Adresseninformation und das Gültigkeitsbit V des dritten Verzweigungsinformationsregisters 53 zum vierten Verzweigungsinformationsregister 54 übertragen. Die vorausgesagte Zieladresse des dritten Verzweigungsinformationsregisters 53 wird im vierten Verzweigungsinformationsregister 54 durch die SPRUNG-Zieladresse ersetzt. Die SPRUNG-Zieladresse wird von neuem als vorausgesagte Zieladresse verwendet. Wenn der aktuelle Befehl in der Ausführungsstufe durch die Befehlsausführungseinheit 35 verarbeitet wird, dann wird der Inhalt des vierten Verzweigungsinformationsregisters 54 zum fünften Verzweigungsinformationsregister 55 übertragen.
  • Es ist möglich, daß das decodierte Verzweigungsziel im vierten Verzweigungsinformationsregister 54 anstelle des von der Verzweigungsarchivtabelle 46 als vorausgesagte Verzweigungsrichtung hervorgebrachten Gültigkeitsbits verwendet und zum dritten Verzweigungsinformationsregister 53 übertragen wird. In diesem Falle wird das decodierte Verzweigungsziel von neuem als vorausgesagte Verzweigungsrichtung verwendet. Im folgenden wird jedoch angenommen, daß die decodierte Verzweigungsrichtung nicht im vierten Verzweigungsinformationsregister 54 verwendet wird.
  • Mit den Adresseninformationsfeldern der zweiten, dritten bzw. fünften Verzweigungsinformationsregister 52, 53 bzw. 55 sind erste bis dritte Befehlsadressenaddierer 56, 57 bzw. 58 gekoppelt. Jeder der Befehlsadressenaddierer 56 bis 58 dient zur Berechnung einer Summe aus der Befehlsbitlänge des aktuellen Befehls und der Befehlsadresse des aktuellen Befehls, um eine nächste Befehlsadresse eines nächsten Befehls abzuleiten, der auf der NICHT-SPRUNG-Seite auf den aktuellen Befehl folgt. Der nächste Befehl kann in dem Befehlswort enthalten sein, das den aktuellen Befehl einschließt. Als Alternative kann der nächste Befehl in einem nächsten Befehlswort enthalten sein, das als nächstes auf den aktuellen Befehl folgt.
  • Der erste Befehlsadressenaddierer 56 übergibt die nächste Befehlsadresse an den Anforderungsadressenwähler 42 als drittes von den sieben Eingangssignalen. Die nächste Befehlsadresse wird als erste korrigierte Adresse in einem ersten korrigierten Adressensignal dargestellt, das an den Anforderungsadressenwähler 42 übergeben wird.
  • Es wird nun als gegeben angenommen, daß die Befehlsausführungsschaltung eine im Befehlsspeicher 31 gespeicherte Befehlsfolge ausführen kann. Jeder Befehl wird der Reihe nach in mehreren Stufen als aktueller Befehl verarbeitet, wobei jede Stufe in einem durch den Maschinentakt definierten Maschinenzyklus abläuft. Die Stufen schließen eine Ausführungsstufe ein, die durch die Befehlsausführungseinheit 35 verarbeitet wird. Unter Verwendung des Befehlsadressenregisters 41 und des Anforderungsadressenaddierers 45 führt das Befehlsvorabrufgerät einen Vorabruf mindestens eines Befehls aus der Folge aus.
  • Eine Kombination aus der Verzweigungsarchivtabelle 46 und den ersten bis fünften Verzweigungsinformationsregistern 51 bis 55 dient als Voraussageanordnung oder -schaltung. Als Reaktion auf eine im Befehlsadressenregister 41 für den Vorabruf gesetzte Befehlsadresse liefert die Voraussageanordnung eine Verzweigungsinformation. Ein Befehl mit der betreffenden Befehlsadresse wird hierin, lediglich zur Unterscheidung von anderen Befehlen der Folge, als spezieller Befehl bezeichnet. Die Verzweigungsinformation ist das, was gewonnen wurde, wenn der spezielle Befehl jemals in der Ausführungsstufe verarbeitet wurde. Der spezielle Befehl wird als aktueller Befehl verwendet, sobald er an die Befehlsdecodierschaltung 36 übergeben ist.
  • Auf eine später zu erläuternde Weise wird die Verzweigungsinformation in der Verzweigungsarchivtabelle 46 je nach den Umständen aktualisiert oder erneuert. Genauer gesagt, die Verzweigungsinformation kann in einem der zweiten Einträge DA aktualisiert werden, wobei die Adresseninformation AA im entsprechenden ersten Eintrag unangetastet bleibt. In anderen möglichen Fällen wird die Adresseninformation aus einem der ersten Einträge zusammen mit der Verzweigungsinformation im entsprechenden zweiten Eintrag gelöscht. Die Verzweigungsinformation ist daher als Ergebnis aufzufassen, das das letzte Mal vor dem Vorabruf des speziellen Befehls erhalten wurde. Die Verzweigungsinformation wird auf die früher beschriebene Weise als vorausgesagte Verzweigungsinformation abgegeben.
  • In Fig. 1 übergibt ein Adressenrückgewinnungsregister 61 seinen Inhalt an den Anforderungsadressenwähler 42 als viertes von den sieben Eingangssignalen und ist mit einem Adressenrückgewinnungswähler 62 auf die in der EP-A-109 655 beschriebene Weise verbunden. Die nächste Anforderungsadresse des Anforderungsadressenaddierers 45, das Verzweigungsziel- Voraussagesignal und die erste korrigierte Adresse des ersten Befehlsadressenaddierers 56 werden als erstes bis drittes von sechs Eingangssignalen an den Adressenrückgewinnungswähler 62 übergeben. Ein Register für gewählte Adressen 63 übergibt seinen Inhalt an die Verzweigungsarchivtabelle 46. Das Register für gewählte Adressen 63 unterscheidet sich nicht von dem Zieladressenregister, wie es in der EP-A-109 655 und der EP-A- 0 157 125 bezeichnet wird, und wird weiter unten beschrieben.
  • In dem dargestellten Beispiel weist das Befehlsvorabrufgerät eine erste oder Operandenadressenerzeugungsstufen- Voraussageprüf- oder -beurteilungsschaltung 66, eine zweite oder Operandenadressenübersetzungsstufen-Voraussageprüfschaltung 67, eine dritte oder Operandenlesestufen-Voraussageprüfschaltung 68 und eine vierte oder Ausführungsstufen-Voraussageprüfschaltung 69 auf. Zwischen der ersten Voraussageprüfschaltung 66 und der zweiten Voraussageprüfschaltung 67 wird eine erste Flipflop-Schaltung 71 verwendet. Zweite und dritte Flipflop-Schaltungen 72 und 73 werden zwischen der zweiten und der dritten Voraussageprüfschaltung 67 und 68 verwendet. Vierte und fünfte Flipflop-Schaltungen 74 und 75 sind zwischen der dritten und der vierten Voraussageprüfschaltung 68 und 69 eingefügt. Eine sechste Flipflop-Schaltung 76 ist zwischen der vierten Voraussageprüfschaltung 69 und der Verzweigungsarchivtabelle 46 geschaltet. Jede Flipflop-Schaltung dient zum Halten eines Signals, das ihr während eines Maschinenzyklus zugeführt wird.
  • Wie im weiteren Verlauf der Beschreibung klar werden wird, werden die ersten bis vierten Voraussageprüfschaltungen 66 bis 69 entweder allein oder in irgendeiner Kombination als Voraussageprüfanordnung verwendet, zusammen mit der ersten Flipflop-Schaltung 71 für die zweite Voraussageprüfschaltung, der zweiten und der dritten Flipflop-Schaltung 72 und 73 für die dritte Voraussageprüfschaltung und der vierten und der fünften Flipflop-Schaltung 74 und 75 für die vierte Voraussageprüfschaltung. Nur die sechste Flipflop-Schaltung 76 ist als Teil einer Befehlsvorabrufsteueranordnung aufzufassen, welche die Befehlsvorabrufsteuerschaltung 47 als Hauptelement einschließt und später erörtert wird.
  • Wenn der aktuelle Befehl vom Befehlsaneinanderreiher 44 in die Befehlsdecodierschaltung 36 eingegeben wird, decodiert diese den aktuellen Befehl. Entsprechend dem aktuellen Befehl übergibt die Befehlsdecodierschaltung 36 die Befehlsbitlänge auf die oben beschriebene Weise an das zweite Verzweigungsinformationsregister 52. Die Befehlsdecodierschaltung 36 übergibt ferner über eine erste Signalleitung 81 ein erstes Entscheidungssignal an die erste Voraussageprüfschaltung 66 als erstes von zwei Eingangssignalen dieser Prüfschaltung und über eine zweite Signalleitung 82 ein zweites Entscheidungssignal an ein Zwischenregister 83 und von dort zur zweiten Voraussageprüfschaltung 67 als erstes von vier Eingangssignalen dieser Prüfschaltung.
  • Das erste Entscheidungssignal zeigt an, ob der aktuelle Befehl ein Verzweigungsbefehl BC ist oder nicht, wobei es sich um einen zählungsbedingten Verzweigungsbefehl BCT, einen unbedingten Verzweigungsbefehl UB bzw. einen bedingten Verzweigungsbefehl CB handeln kann. Das zweite Entscheidungssignal zeigt an, ob der Verzweigungsbefehl BC ein zählungsbedingter Verzweigungsbefehl bzw. ein unbedingter Verzweigungsbefehl ist oder nicht. Typischerweise hat das erste Entscheidungssignal den logischen Wert oder Pegel eins, wenn der aktuelle Befehl ein Verzweigungsbefehl ist. Andernfalls hat das erste Entscheidungssignal den logischen Wert null. Das zweite Entscheidungssignal hat den logischen Wert eins, wenn der aktuelle Befehl entweder ein zählungsbedingter Verzweigungsbefehl oder ein unbedingter Verzweigungsbefehl ist. Das zweite Entscheidungssignal hat den logischen Wert null, wenn der aktuelle Befehl entweder ein bedingter Verzweigungsbefehl oder ein anderer Befehl als die Verzweigungsbefehle ist. Für einen zählungsbedingten Verzweigungsbefehl entspricht das zweite Entscheidungssignal mit dem logischen Wert eins dem in der EP-A-0 157 125 beschriebenen BCT-Bit.
  • Die erste Voraussageprüfschaltung 66 ist mit dem ersten Verzweigungsinformationsregister 51 und der Befehlsdecodierschaltung 36 gekoppelt, um unmittelbar nach der Befehlsdecodierstufe für den aktuellen Befehl zu prüfen, ob die vorausgesagte Verzweigungsinformation im Hinblick auf die tatsächliche Verzweigungsinformation, die man für den aktuellen Befehl in der Befehlsdecodierstufe erhält, richtig oder falsch ist. Genauer gesagt, die tatsächliche Verzweigungsinformation ist in diesem Falle eine tatsächliche Verzweigungsrichtung (mit Richtungssinn), die eine SPRUNG-Richtung bzw. eine NICHT-SPRUNG- Richtung anzeigt, wenn der aktuelle Befehl ein Verzweigungsbefehl bzw. kein Verzweigungsbefehl ist. Die erste Voraussageprüfschaltung 66 prüft die vorausgesagte Verzweigungsrichtung und liefert ein Prüfungsergebnis, welches darstellt, ob die vorausgesagte Verzweigungsrichtung richtig oder falsch ist.
  • Zu diesem Zweck wird das Gültigkeitsbit V vom ersten Verzweigungsinformationsregister 51 an die erste Voraussageprüfschaltung 66 als zweites von den zwei Eingangssignalen übergeben, das die vorausgesagte Verzweigungsrichtung anzeigt. Die erste Voraussageprüfschaltung 66 übergibt ein erstes Voraussagefehler- oder -fehlschlagsignal, welches das Prüfungsergebnis darstellt, an die Befehlsvorabrufsteuerschaltung 47 als zweites der sechs Eingangssignale sowie an die erste Flipflopschaltung 71.
  • In dem dargestellten Beispiel hat das erste Voraussagefehlersignal den logischen Wert oder Pegel eins, wenn das Gültigkeitsbit V im ersten Verzweigungsinformationsregister 51 den logischen Wert eins hat, im Widerspruch zu der Tatsache, daß der aktuelle Befehl kein Verzweigungsbefehl BC ist. Sonst hat das erste Voraussagefehlersignal den logischen Wert null und zeigt die Richtigkeit der vorausgesagten Verzweigungsrichtung für den aktuellen Befehl an. Wie später klar werden wird, wird das erste Voraussagefehlersignal von der Befehlsvorabrufsteuerschaltung 47 als erstes Vorabrufkorrektursignal verwendet und dient später als erstes Erneuerungs- oder Aktualisierungssignal für die BHT (Verzweigungsarchivtabelle).
  • Es kann hier erwähnt werden, daß jeder Befehl ein oder mehrere Mehrzweckregister (GR, nicht dargestellt) spezifiziert. Jedes Mehrzweckregister hält auf die dem Fachmann bekannte Weise einen Zählwert. Wie in der EP-A-0 157 125 beschrieben, stellt der Zählwert zuerst die obenerwähnte vorgegebene Wiederholungszahl für die wiederholte Ausführung von Befehlen in einer Schleife dar, wenn das Mehrzweckregister durch einen zählungsbedingten Verzweigungsbefehl BCT spezifiziert wird. Bei jeder Ausführung der Schleife wird der Zählwert um eins vermindert. Bevor der Zählwert auf eins vermindert wird, sollte die Schleife wiederholt ausgeführt werden. Sobald der Zählwert auf null vermindert wird, sollte die Schleife verlassen werden. Für einen zählungsbedingten Verzweigungsbefehl BCT wird der Zählwert speziell als variabler Zählwert bezeichnet.
  • Da der variable Zählwert im Mehrzweckregister für einen zählungsbedingten Verzweigungsbefehl BCT gehalten wird, während die Schleife einmal ausgeführt wird, kann man voraussetzen, daß die Operandenadressenerzeugungsschaltung 37 den variablen Zählwert an eine Zählwertleitung 84 und von dort zu einem Komparator 85 übermittelt wird und daß die Zählwertleitung 84 symbolisch ein Mehrzweckregister darstellt, das durch einen zählungsbedingten Verzweigungsbefehl BCT spezifiziert wird. Wie in der EP-A-0 157 125 diskutiert, ist es wünschenswert, einen zählungsbedingten Verzweigungsbefehl BCT so zu behandeln, als ob der Befehl BCT die NICHT-SPRUNG-Richtung anzeigt, wenn der variable Zählwert gleich eins wird.
  • Der Komparator 85 vergleicht den variablen Zählwert mit eins und übermittelt an die zweite Voraussageprüfschaltung 67 ein Signal "Zählwert eins" als zweites von den vier Eingangssignalen. Das Signal "Zählwert eins" hat typischerweise den logischen Wert eins, wenn der variable Zählwert gleich eins ist. Sonst hat das Signal "Zählwert eins" den logischen Wert null und entspricht daher dem in der EP-A-0 157 125 beschriebenen Signal "Zählwert eins".
  • Die zweite Voraussageprüfschaltung 67 ist mit dem zweiten Verzweigungsinformationsregister 52, über das Zwischenregister 83 mit der Befehlsdecodierschaltung 36 und über den Komparator 85 mit der Operandenadressenerzeugungsschaltung 37 gekoppelt, um für jeden unbedingten Verzweigungsbefehl UB oder für jeden zählungsbedingten Verzweigungsbefehl BCT unmittelbar nach der Verarbeitung des aktuellen Befehls in der Operandenadressenerzeugungsstufe eine Prüfung auszuführen. Die Prüfung für den unbedingten Verzweigungsbefehl kann unmittelbar nach der Verarbeitung des aktuellen Befehls in der Befehlsdecodierstufe ausgeführt werden. Zu diesem Zweck kann die erste Voraüssageprüfschaltung 66 so modifiziert werden, daß sie das Gültigkeitsbit V des ersten Verzweigungsinformationsregisters 51 bzw. die tatsächliche Verzweigungsrichtung der Befehlsdecodierschaltung 36 als das obenerwähnte zweite bzw. erste der beiden Eingangssignale benutzt. Nichtsdestoweniger bevorzugt man aus dem nachstehend erläuterten Grunde, die Prüfung auch für den unbedingten Verzweigungsbefehl unmittelbar nach der Operandenadressenerzeugungsstufe auszuführen.
  • Für jeden unbedingten Verzweigungsbefehl UB, der stets die SPRUNG-Richtung als tatsächliche Verzweigungsrichtung anzeigt, liefert eine Kombination aus der Befehlsdecodierschaltung 36 und dem Zwischenregister 83 ein Resultat mit dem logischen Wert eins, wenn der unbedingte Verzweigungsbefehl in der Operandenadressenerzeugungsstufe verarbeitet wird. Für andere Befehle, die keine derartigen unbedingten Verzweigungsbefehle sind, kann die tatsächliche Verzweigungsrichtung die SPRUNG- Richtung anzeigen oder nicht. Auf jeden Fall ist für einen unbedingten Verzweigungsbefehl die NICHT-SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung falsch. Als Reaktion auf das Resultat prüft die zweite Voraussageprüfschaltung 67 die vorausgesagte Verzweigungsrichtung und liefert ein Prüfungsergebnis, welches angibt, ob die vorausgesagte Verzweigungsrichtung richtig oder falsch ist. Je nach den Umständen sind das Zwischenregister 83 und der Komparator 85 als Teile der zweiten Voraussageprüfschaltung 67 aufzufassen.
  • Bei der Verarbeitung in der Operandenadressenerzeugungsstufe erzeugt der aktuelle Befehl über das Zwischenregister 83 als Resultat das zweite Entscheidungssignal mit dem logischen Wert eins, wenn der aktuelle Befehl ein zählungsbedingter Verzweigungsbefehl BCT ist. Für einen zählungsbedingten Verzweigungsbefehl BCT sollte das Resultat die SPRUNG- Richtung als tatsächliche Verzweigungsrichtung anzeigen, wenn der variable Zählwert nicht gleich eins ist. Das Resultat sollte die NICHT-SPRUNG-Richtung als tatsächliche Verzweigungsrichtung anzeigen, wenn der variable Zählwert genau gleich eins ist.
  • Als Reaktion auf das Resultat und den variablen Zählwert für einen zählungsbedingten Verzweigungsbefehl BCT liefert die zweite Voraussageprüfschaltung 67 ein Prüfungsergebnis, welches darstellt, ob die vorausgesagte Verzweigungsrichtung im Widerspruch zur tatsächlichen Verzweigungsrichtung, d. h. der SPRUNG-Richtung, die NICHT-SPRUNG-Richtung anzeigt, wenn der variable Zählwert nicht gleich eins ist. Ist der variable Zählwert genau gleich eins, dann stellt das Prüfungsergebnis für den zählungsbedingten Verzweigungsbefehl BCT dar, ob im Widerspruch zur tatsächlichen Verzweigungsrichtung, d. h. der NICHT-SPRUNG-Richtung, die vorausgesagte Verzweigungsrichtung die SPRUNG-Richtung ist oder nicht. Je nach den Umständen sind das Zwischenregister 83 und der Komparator 85 als Teile der zweiten Voraussageprüfschaltung 67 aufzufassen. Der Komparator 85 spielt für einen zählungsbedingten Verzweigungsbefehl eine wichtige Rolle.
  • Um die Prüfung für einen unbedingten Verzweigungsbefehl UB oder einen zählungsbedingten Verzweigungsbefehl BCT auszuführen, wird das Gültigkeitsbit V vom zweiten Verzweigungsinformationsregister 52 der zweiten Voraussageprüfschaltung 67 als drittes der vier Eingangssignale zugeführt. Wenn das Gültigkeitsbit V die NICHT-SPRUNG-Richtung anzeigt, ungeachtet der Tatsache, daß die vorausgesagte Verzweigungsrichtung die SPRUNG-Richtung sein sollte, entweder weil der aktuelle Befehl ein unbedingter Verzweigungsbefehl UB ist oder weil das Signal "Zählwert eins" für einen zählungsbedingten Verzweigungsbefehl BCT den logischen Wert null hat, dann übergibt die zweite Voraussageprüfschaltung 67 das Prüfungsergebnis als zweites Voraussagefehlersignal an die Befehlsvorabrufsteuerschaltung 47 als drittes der sechs Eingangssignale, und außerdem an die zweite Flipflopschaltung 72.
  • Wenn für einen unbedingten Verzweigungsbefehl UB oder für einen zählungsbedingten Verzweigungsbefehl BCT, für den der variable Zählwert nicht gleich eins ist, die vorausgesagte Verzweigungsrichtung die NICHT-SPRUNG-Richtung ist, dann übergibt die zweite Voraussageprüfschaltung 67 ein zweites Vorabrufkorrektursignal an die dritte Flipflopschaltung 73 und an einen ersten Befehlsadressenwähler 86. Unter den entsprechenden Umständen haben das zweite Voraussagefehlersignal und das zweite Vorabrufkorrektursignal den logischen Wert eins. Andernfalls haben das zweite Voraussagefehlersignal und das zweite Vorabrufkorrektursignal den logischen Wert null. Zu beachten ist, daß das zweite Vorabrufkorrektursignal auch dann den logischen Wert null hat, wenn für einen zählungsbedingten Verzweigungsbefehl BCT, für den der variable Zählwert genau gleich eins ist, die vorausgesagte Verzweigungsrichtung die SPRUNG-Richtung ist.
  • Der erste Befehlsadressenwähler 86 wird von der Befehlsadressenübersetzungsschaltung 33 mit der SPRUNG-Zieladresse und vom zweiten Befehlsadressenaddierer 57 mit der nächsten Befehlsadresse gespeist. Wenn das zweite Vorabrufkorrektursignal den logischen Wert eins hat, übergibt der erste Befehlsadressenwähler 86 die SPRUNG-Zieladresse der Befehlsadressenübersetzungsschaltung 33 an den Anforderungsadressenwähler 42 als fünftes der sieben Eingangssignale und an das Adressenrückgewinnungsregister 62 als viertes der sechs Eingangssignale. Wenn das zweite Vorabrufkorrektursignal den logischen Wert null hat, übergibt der erste Befehlsadressenwähler 86 die nächste Befehlsadresse des zweiten Befehlsadressenaddierers 67 an den Anforderungsadressenwähler 42 als fünftes der sieben Eingangssignale und an das Adressenrückgewinnungsregister 62 als viertes der sechs Eingangssignale.
  • Eine auf diese Weise durch den ersten Befehlsadressenwähler 86 ausgewählte zweite korrigierte Adresse wird durch ein zweites korrigiertes Adressensignal dargestellt, das an den Anforderungsadressenwähler 42 und an das Adressenrückgewinnungsregister 62 übergeben wird. Zu beachten ist, daß für jeden unbedingten Verzweigungsbefehl das zweite Vorabrufkorrektursignal mit dem logischen Wert eins erzeugt wird, wenn die vorausgesagte Verzweigungsrichtung falsch ist. Für jeden zählungsbedingten Verzweigungsbefehl, für den der variable Zählwert nicht gleich eins ist, wird das zweite Vorabrufkorrektursignal mit dem logischen Wert eins erzeugt, wenn die vorausgesagte Verzweigungsrichtung falsch ist. Unter diesen Umständen ist die zweite korrigierte Adresse die SPRUNG-Zieladresse in der richtigen Verzweigungsrichtung. Für jeden zählungsbedingten Verzweigungsbefehl, für den der variable Zählwert auf eins vermindert wird, hat das zweite Vorabrufkorrektursignal den logischen Wert null, wenn die vorausgesagte Verzweigungsrichtung falsch ist. In diesem Falle ist die zweite korrigierte Adresse die nächste Befehlsadresse in der richtigen Verzweigungsrichtung.
  • Es läßt sich leicht einsehen, daß ein viertes von den vier Eingangssignalen der zweiten Voraussageprüfschaltung 67 durch ein Ausgangssignal der ersten Flipflopschaltung 71 gegeben ist, die das erste Voraussagefehlersignal hält, d. h. das erste Vorabrufkorrektur- oder BHT-Erneuerungssignal. Als Reaktion auf das vierte Eingangssignal übergibt die zweite Voraussageprüfschaltung 67 ein zweites BHT-Erneuerungssignal an die zweite Flipflopschaltung 72 mit einem der beiden logischen Werte, den entweder das erste Voraussagefehlersignal oder das zweite Voraussagefehlersignal aufweisen.
  • Wir betrachten eine Kombination aus der ersten und der zweiten Voraussageprüfschaltung 66 und 67. Auf die früher beschriebene Weise korrigiert die erste Voraussageprüfschaltung 66 den Vorabruf für jeden anderen Befehl als die Verzweigungsbefehle BC, wenn das Gültigkeitsbit V den logischen Wert eins hat. Außerdem korrigiert die zweite Voraussageprüfschaltung 67, wenn das Gültigkeitsbit V den logischen Wert eins hat, den Vorabruf für jeden zählungsbedingten Verzweigungsbefehl BCT, für den der variable Zählwert genau gleich eins ist und der so zu behandeln ist, als ob er ein anderer Befehl als die Verzweigungsbefehle wäre. In anderen Fällen wird die zweite Voraussageprüfschaltung 67 entweder für jeden unbedingten Verzweigungsbefehl UB oder für jeden zählungsbedingten Verzweigungsbefehl BCT nur dann aktiviert oder betriebsfähig gemacht, wenn das Gültigkeitsbit im zweiten Verzweigungsinformationsregister 52 den logischen Wert eins hat.
  • Die dritte Voraussageprüfschaltung 68 ist mit dem dritten Verzweigungsinformationsregister 53 und mit der Befehlsadressenübersetzungsschaltung 33 gekoppelt. Für den aktuellen Befehl werden die vorausgesagte Verzweigungsrichtung und die vorausgesagte Zieladresse der dritten Voraussageprüfschaltung 68 als erstes und zweites von fünf Eingangssignalen der Prüfschaltung zugeführt. Lediglich der einfacheren Darstellung wegen ist für diese Signale nur eine Signalleitung abgebildet. Die SPRUNG-Zieladresse wird als drittes der fünf Eingangssignale zugeführt. Eines von den ersten und den zweiten Voraussagefehlersignalen wird über die zweite Flipflopschaltung 72 als viertes von den fünf Eingangssignalen zugeführt.
  • Auf eine später zu beschreibende Weise übergibt die dritte Voraussageprüfschaltung 68 ein drittes Voraussagefehlersignal an die Befehlsvorabrufsteuerschaltung 47 als viertes von den sechs Eingangssignalen. Ein drittes BHT-Erneuerungssignal wird an die vierte Flipflopschaltung 74 übergeben. Dabei ist vorauszusetzen, daß die zweite Flipflopschaltung 72 den logischen Wert eins hält, wenn eines der ersten und zweiten Voraussagefehlersignale den logischen Wert eins hat. Die zweite Flipflopschaltung 72 hält den logischen Wert null, wenn weder das erste noch das zweite Voraussagefehlersignal den logischen Wert eins hat.
  • Die dritte Voraussageprüfschaltung 68 wird für das dritte Voraussagefehlersignal und das dritte BHT-Erneuerungssignal aktiviert, wenn das Gültigkeitsbit V im dritten Verzweigungsinformationsregister 53 den logischen Wert eins hat, und ferner, wenn das erste und das zweite Voraussagefehlersignal den logischen Wert null haben. Wenn die dritte Voraussageprüfschaltung 68 aktiviert ist, gibt sie dem dritten Voraussagefehlersignal und dem dritten BHT-Erneuerungssignal den logischen Wert eins, wenn die vorausgesagte Zieladresse sich von der SPRUNG-Zieladresse unterscheidet. In diesem Zusammenhang läßt sich einsehen, daß die zweite Flipflopschaltung 72 als Teil der dritten Voraussageprüfschaltung 68 verwendet wird.
  • Die dritte Flipflopschaltung 73 hält das zweite Vorabrufkorrektursignal, das den logischen Wert eins hat, wenn die vorausgesagte Verzweigungsrichtung falsch ist, und ferner, wenn die vorausgesagte Verzweigungsrichtung zur SPRUNG-Richtung korrigiert wird. Die dritte Voraussageprüfschaltung 68 wird über die dritte Flipflopschaltung 73 mit dem zweiten Vorabrufkorrektursignal als fünftem der fünf Eingangssignale gespeist. Dadurch übergibt die dritte Voraussageprüfschaltung 68 ein drittes Vorabrufkorrektursignal an die fünfte Flipflopschaltung 75 mit dem logischen Wert eins, wenn entweder das dritte Voraussagefehlersignal und entsprechend das dritte BHT- Erneuerungssignal den logischen Wert eins erhält, oder wenn das zweite Vorabrufkorrektursignal den logischen Wert eins erhält. In diesem Zusammenhang läßt sich einsehen, daß die dritte Flipflopschaltung 73 ein Teil der dritten Voraussageprüfschaltung 68 ist.
  • Hier kann erwähnt werden, daß dem Anforderungsadressenwähler 42 und dem Adressenrückgewinnungswähler 62 als sechstes von den sieben Eingangssignalen bzw. als fünftes von den sechs Eingangssignalen die SPRUNG-Zieladresse zugeführt wird, die im vierten Verzweigungsinformationsregister 54 für den aktuellen Befehl gehalten wird, der in der Operandenlesestufe durch die Operandenleseschaltung 39 verarbeitet wird. Als siebentes von den sieben Eingangssignalen wird dem Anforderungsadressenwähler 42 die Befehlsadresse zugeführt, die für den in der Ausführungsstufe verarbeiteten aktuellen Befehl im fünften Verzweigungsinformationsregister 55 gehalten wird. Die SPRUNG- Zieladresse wird in diesem Falle als dritte korrigierte Adresse bezeichnet und bei der Korrektur der vorausgesagten Zieladresse der NICHT-SPRUNG-Richtung zur SPRUNG-Zieladresse verwendet, die auf eine später zu erläuternde Weise als Reaktion auf das dritte Voraussagefehlersignal erfolgt.
  • Im folgenden wird angenommen, daß die Verzweigungsbedingung für einen Verzweigungsbefehl BC, typischerweise einen bedingten Verzweigungsbefehl CB, klar wird, sobald für den betreffenden Verzweigungsbefehl die Ausführungsstufe von der Befehlsausführungseinheit 35 abgearbeitet wird. Indem sie den Verzweigungsbefehl als aktuellen Befehl verarbeitet, erzeugt die Befehlsausführungseinheit 35 ein Verzweigungsanzeigesignal mit dem logischen Wert eins, wenn der Ausführungsfluß bzw. -gang zur Verzweigung gerichtet ist, d. h. zur SPRUNG-Seite. Das Verzweigungsanzeigesignal hat den logischen Wert null, wenn der Ausführungsfluß bzw. -gang nicht zur Verzweigung gerichtet ist, d. h. wenn der Fluß in die NICHT-SPRUNG-Richtung gelenkt wird.
  • Der dritte Befehlsadressenaddierer 58 speist den Befehlsadressenwähler 87 mit einer nächsten Befehlsadresse für den in der Ausführungsstufe verarbeiteten aktuellen Befehl. Vom Verzweigungsinformationsfeld des fünften Verzweigungsinformationsregisters 55 wird dem zweiten Befehlsadressenwähler 87 ein Signal zugeführt, das die SPRUNG-Zieladresse für den betreffenden aktuellen Befehl darstellt. Hier kann erwähnt werden, daß die SPRUNG-Zieladresse nicht unbedingt eine Befehlsadresse eines Befehls ergibt, zu dem der Ausführungsfluß zu lenken ist. Ein derartiger Fall entsteht, wenn der aktuelle Befehl, wenn er in der Ausführungsstufe zu der obenerwähnten Verzweigungsbedingung verarbeitet wird, die NICHT-SPRUNG-Richtung ergibt. Der durch das Verzweigungsanzeigesignal gesteuerte zweite Befehlsadressenwähler 87 übergibt eine vierte korrigierte Adresse als sechstes von den sechs Eingangssignalen an den Adressenrückgewinnungswähler 62 und an das Register 63 für die ausgewählte Adresse. Die vierte korrigierte Adresse wird wahlweise auch als ausgewählte Adresse bezeichnet. Wenn das Verzweigungsanzeigesignal den logischen Wert eins hat, dann wird die SPRUNG-Zieladresse als ausgewählte Adresse gewählt. Wenn das Verzweigungsanzeigesignal den logischen Wert null hat, dann ist die ausgewählte Adresse durch die nächste Befehlsadresse gegeben.
  • Die vierte Voraussageprüfschaltung 69 ist mit dem vierten Verzweigungsinformationsregister 54 und mit der Befehlsausführungseinheit 35 gekoppelt und wird vom vierten Verzweigungsinformationsregister 54 mit dem Gültigkeitsbit V als einem ersten von vier Eingangssignalen der Schaltung 69 gespeist. Das Verzweigungsanzeigesignal wird von der Befehlsausführungseinheit 35 als zweites von den vier Eingangssignalen zugeführt. Die vierte Flipflopschaltung 75 hält mindestens eines der ersten bis dritten Voraussagefehlersignale, das als drittes von den vier Eingangssignalen zugeführt wird. Die fünfte Flipflopschaltung 75 hält eines der zweiten bzw. dritten Vorabrufkorrektursignale und führt der vierten Voraussageprüfschaltung 69 ein viertes von den vier Eingangssignalen zu.
  • Auf eine später zu beschreibende Weise übergibt die vierte Voraussageprüfschaltung 69 ein viertes Voraussagefehlersignal an die Befehlsvorabrufsteuerschaltung 47 als fünftes von den sechs Eingangssignalen und ein viertes BHT-Erneuerungssignal an die Befehlsvorabrufsteuerschaltung 47 als sechstes von den sechs Eingangssignalen sowie an die sechste Flipflopschaltung 76. Es wird zunächst angenommen, daß keines von den ersten bis dritten Voraussagefehlersignalen und von den zweiten und dritten Vorabrufkorrektursignalen erzeugt wird. Wenn das Verzweigungsanzeigesignal im Widerspruch zu dem im vierten Verzweigungsinformationsregister 54 gehaltenen Gültigkeitsbit V die NICHT-SPRUNG- oder die SPRUNG-Richtung anzeigt, erhalten das vierte Voraussagefehlersignal und das vierte BHT-Erneuerungssignal den logischen Wert eins.
  • Hier kann darauf hingewiesen werden, daß das zweite BHT-Erneuerungssignal den gleichen logischen Wert hat wie das zweite Voraussagefehlersignal, und daß das dritte BHT-Erneuerungssignal den gleichen logischen Wert hat wie das dritte Voraussagefehlersignal. Daher läßt sich einsehen, daß die sechste Flipflopschaltung 76 ein BHT-Erneuerungsanzeigesignal mit dem logischen Wert eins hält, wenn mindestens eines von den ersten bis vierten BHT-Erneuerungssignalen den logischen Wert eins hat.
  • Die vierte Voraussageprüfschaltung 69 ist ähnlich der Voraussagebeurteilungsschaltung, die in der EP-A-109 655 oder der EP-A-0 157 125 beschrieben wird. Das Verzweigungsanzeigesignal entspricht dem Signal für die tatsächliche Verzweigungsrichtung und zeigt eine tatsächliche Verzweigungsrichtung an, die man bei Verarbeitung des aktuellen Befehls durch die Befehlsausführungseinheit 35 in der Ausführungsstufe erhält.
  • Das BHT-Erneuerungsanzeigesignal entspricht dem in der EP-A-0 157 125 beschriebenen Voraussagebeurteilungssignal. Die vierte Voraussageprüfschaltung 69 prüft jedoch als Reaktion auf die ersten bis dritten Voraussagefehlersignale und die zweiten und dritten Vorabrufkorrektursignale die vorausgesagte Verzweigungsrichtung bezüglich der tatsächlichen Verzweigungsrichtung. Diesbezüglich läßt sich einsehen, daß die vierte und die fünfte Flipflopschaltung 74 und 75 als Teile der vierten Voraussageprüfschaltung 69 verwendet werden.
  • Wie in Fig. 6 erkennbar, weist die erste Voraussageprüfschaltung 66 erste und zweite Eingangsanschlüsse 91 bzw. 92 auf, denen das erste Entscheidungssignal von der Befehlsdecodierschaltung 36 bzw. das Gültigkeitsbit V vom ersten Verzweigungsinformationsregister 51 zugeführt werden. Über eine Flipflopschaltung 93 ist der erste Eingangsanschluß 91 mit einer NICHT- bzw. Negationsschaltung 94 verbunden, um sein Ausgangssignal an einen ersten Eingang einer UND-Schaltung 95 mit zwei Eingängen zu übergeben, deren zweiter Eingang über eine weitere Flipflopschaltung 96 mit dem zweiten Eingangsanschluß 92 verbunden ist. Die UND-Schaltung 95 übergibt ihr Ausgangssignal an einen Ausgangsanschluß 99 der ersten Voraussageprüfschaltung 66. Man wird leicht einsehen, daß die erste Voraussageprüfschaltung 66 auf die oben beschriebene Weise betrieben werden kann, die später nochmals beschrieben wird.
  • Wie aus Fig. 7 erkennbar, weist die zweite Voraussageprüfschaltung 67 erste und zweite Eingangsanschlüsse 111 und 112 auf, die gemeinsam über das Zwischenregister 83 mit dem zweiten Entscheidungssignal gespeist werden und die zum leichteren Verständnis der zweiten Voraussageprüfschaltung 67 getrennt dargestellt sind, bestehend aus einem Teil für unbedingte Verzweigungsbefehle und einem Teil für zählungsbedingte Verzweigungsbefehle. Als Teil für zählungsbedingte Verzweigungsbefehle wird ein dritter Eingangsanschluß 113 mit dem Signal "Zählwert eins" vom Komparator 85 gespeist. Als gemeinsamer Teil, der von den Teilen für unbedingte Verzweigungsbefehle und für zählungsbedingte Verzweigungsbefehle gemeinsam genutzt wird, wird ein vierter Eingangsanschluß 114 mit dem Gültigkeitsbit V vom zweiten Verzweigungsinformationsregister 52 gespeist. Als zusätzlicher Teil wird ein fünfter Eingangsanschluß 115 mit einem Ausgangssignal der ersten Flipflopschaltung 71 gespeist.
  • Der erste Eingangsanschluß 111 ist über eine Flipflopschaltung 117 mit einem ersten Eingang einer UND-Schaltung 116 mit zwei Eingängen verbunden. Über eine weitere Flipflopschaltung 118 ist der zweite Eingangsanschluß 112 mit einem ersten Eingang einer ersten UND-Schaltung 121 mit drei Eingängen und mit einem ersten Eingang einer zweiten UND-Schaltung 122 mit drei Eingängen verbunden.
  • Über eine Flipflop-Schaltung 123 ist der dritte Eingangsanschluß 113 mit einer Zählwert-true/false-Schaltung bzw. Zählwert-wahr/falsch-Schaltung (UND/NICHT-UND-Schaltung mit einem Eingang) 124 verbunden, die ihr "true"-Ausgangssignal an einen zweiten Eingang der zweiten UND-Schaltung mit drei Eingängen 122 und ihr "false"- oder invertiertes Ausgangssignal an einen zweiten Eingang der ersten UND-Schaltung mit drei Eingängen 121 übergibt. Über eine andere Flipflop-Schaltung 125 ist der vierte Eingangsanschluß 114 mit einer Gültigkeit- true/false-Schaltung bzw. Gültigkeit-wahr/falsch-Schaltung 126 verbunden, die ihr "true"-Ausgangssignal an einen dritten Eingang der zweiten UND-Schaltung mit drei Eingängen 122 und ihr "false"-Ausgangssignal an einen dritten Eingang der ersten UND-Schaltung mit drei Eingängen 121 übergibt.
  • Zur gemeinsamen Verwendung durch den unbedingten Verzweigungsbefehlsteil und den zählungsbedingten Verzweigungsbefehlsteil empfängt eine ODER-Schaltung mit zwei Eingängen 127 Ausgangssignale der UND-Schaltung mit zwei Eingängen 116 und der ersten UND-Schaltung mit drei Eingängen 121. Eine ODER- Schaltung mit drei Eingängen 128 empfängt Ausgangssignale der UND-Schaltung mit zwei Eingängen 116 sowie der ersten und der zweiten UND-Schaltung mit drei Eingängen 121 und 122. Der fünfte Eingangsanschluß 115 ist direkt mit einer weiteren ODER-Schaltung mit zwei Eingängen 129 verbunden, die mit einem Ausgangssignal der ODER-Schaltung mit drei Eingängen 128 gespeist wird.
  • Die zweite Voraussageprüfschaltung 67 weist erste bis dritte Ausgangsanschlüsse 131, 132 bzw. 133 auf, die mit dem Ausgangssignal der ODER-Schaltung mit drei Eingängen 128 als zweitem Voraussagefehlersignal, einem Ausgangssignal der ODER- Schaltung mit zwei Eingängen 129 als zweitem BHT-Erneuerungssignal bzw. einem Ausgangssignal der ODER-Schaltung 127 als zweitem Vorabrufkorrektursignal gespeist werden. Man wird leicht einsehen, daß der unbedingte Verzweigungsbefehlsteil im Zusammenwirken mit dem gemeinsamen Teil auf die oben beschriebene Weise betriebsfähig ist. Der zählungsbedingte Verzweigungsbefehlsteil ist gleichfalls auf die oben beschriebene Weise betriebsfähig.
  • Wie ferner aus Fig. 8 erkennbar, weist die dritte Voraussageprüfschaltung 68 erste bis vierte Eingangsanschlüsse 136, 137, 138 bzw. 139 auf, die mit dem Gültigkeitsbit V, der vorausgesagten Zieladresse vom dritten Verzweigungsinformationsregister 53, der SPRUNG-Zieladresse von der Befehlsadressenübersetzungsschaltung 33 bzw. einem Ausgangssignal der zweiten Flipflop-Schaltung 72 gespeist werden. Über Register 141 und 142 werden die vorausgesagte Zieladresse und die SPRUNG-Zieladresse an eine Inkoinzidenz- bzw. NICHT-UND-Schaltung 143 übergeben, um deren Ausgangssignal an einen ersten Eingangsanschluß einer UND-Schaltung mit drei Eingängen 144 zu übergeben, an deren zweiten Eingangsanschluß über eine Flipflop-Schaltung 145 das Gültigkeitsbit V angelegt wird, und an deren dritten Eingangsanschluß ein "false"-Ausgangssignal angelegt wird, das von einer true/false-Schaltung 146 als Reaktion auf das Ausgangssignal der zweiten Flipflop-Schaltung 72 erzeugt wird. Eine ODER-Schaltung mit zwei Eingängen 147 wird mit einem Ausgangssignal der UND-Schaltung 144 und einem "true"-Ausgangssignal der true/false-Schaltung 146 gespeist.
  • Ein zusätzlicher Eingangsanschluß 148 übergibt ein Ausgangssignal der dritten Flipflop-Schaltung 73 direkt an eine weiter ODER-Schaltung mit zwei Eingängen 149, die mit dem Ausgangssignal der UND-Schaltung 144 gespeist wird. Die dritte Voraussageprüfschaltung 68 weist erste bis dritte Ausgangsanschlüsse 151, 152 und 153 auf, die mit dem Ausgangssignal der UND-Schaltung 144 als drittem Voraussagefehlersignal, einem Ausgangssignal der ODER-Schaltung 147 als drittem BHT-Erneuerungssignal und einem Ausgangssignal der ODER-Schaltung 149 als drittem Vorabrufkorrektursignal gespeist werden. Man wird leicht einsehen, daß die dritte Voraussageprüfschaltung 68 auf die oben beschriebene Weise betriebsfähig ist.
  • Im folgenden wird die Arbeitsweise der dritten Voraussageprüfschaltung 68 genauer betrachtet. Man kann davon ausgehen, daß die dritte Voraussageprüfschaltung 68 einen ersten und einen zweiten Teil aufweist. Es ist erkennbar, daß die Befehlsdecodierschaltung 36 das erste und das zweite Entscheidungssignal gemeinsam als Resultat erzeugt, welches anzeigt, ob der aktuelle Befehl den nächsten Befehl oder den Verzweigungszielbefehl anzeigt. Wenn gleichzeitig mit der Verarbeitung des aktuellen Befehls in der Operandenadressenübersetzungsstufe der Verzweigungszielbefehl in der Befehlsadressenübersetzungsstufe verarbeitet wird, erzeugt die Befehlsadressenübersetzungsschaltung 33 die SPRUNG-Zieladresse. Die vorausgesagte Verzweigungsinformation weist die vorausgesagte Verzweigungsrichtung für den nächsten Befehl bzw. den Verzweigungszielbefehl sowie die vorausgesagte Zieladresse für jeden Verzweigungszielbefehl auf. Andererseits kann man davon ausgehen, daß die UND-Schaltung mit drei Eingängen 144 aus einem ersten und einem zweiten UND-Gatter mit zwei Eingängen besteht, die durch zwei Signalleitungen für das Gültigkeitsbit V und das "false"-Ausgangssignal sowie durch eine Kombination aus dem ersten UND-Gatter und einer Signalleitung zwischen der Inkoinzidenz- bzw. NICHT-UND-Schaltung 143 und der UND-Schaltung mit drei Eingängen 144 dargestellt sind.
  • Der erste Teil ist eine Kombination aus dem ersten UND- Gatter mit zwei Eingängen und der zweiten Voraussageprüfschaltung 67 und ist unmittelbar nach der Verarbeitung des aktuellen Befehls in der Operandenadressenerzeugungsstufe und dann unmittelbar nach der Verarbeitung des aktuellen Befehls in der Operandenadressenübersetzungsstufe betriebsfähig. Als Alternative ist der erste Teil eine Kombination aus dem ersten UND- Gatter mit zwei Eingängen, der zweiten Voraussageprüfschaltung 67 und der zweiten Flipflop-Schaltung 72 und ist unmittelbar nach der Verarbeitung des aktuellen Befehls in der Operandenadressenübersetzungsstufe betriebsfähig. In jedem Fall ist erkennbar, daß die zweite Voraussageprüfschaltung 67 die erste Voraussageprüfschaltung 66 einschließt.
  • Als Reaktion auf das Resultat, das entweder die SPRUNG- Richtung oder die NICHT-SPRUNG-Richtung anzeigt, prüft der erste Teil die vorausgesagte Verzweigungsrichtung, um ein erstes und ein zweites Prüfungsergebnis zu erzeugen. Das erste Ergebnis, das durch die erste Voraussageprüfschaltung 66 und durch die zweite Voraussageprüfschaltung 67 für einen zählungsbedingten Verzweigungsbefehl BCT bei Verminderung des variablen Zählwerts auf eins erzeugt wird, gibt an, ob die vorausgesagte Verzweigungsrichtung für den aktuellen Befehl, der kein Verzweigungsbefehl BC ist, die SPRUNG-Richtung anzeigt oder nicht, und zeigt den nächsten Befehl in der NICHT-SPRUNG-Richtung an. Das zweite Ergebnis, das durch das erste UND-Gatter mit zwei Eingängen und durch die zweite Voraussageprüfschaltung 67 entweder für einen unbedingten Verzweigungsbefehl UB oder dann erzeugt wird, wenn der variable Zählwert nicht gleich eins ist, gibt an, ob die vorausgesagte Verzweigungsrichtung für den aktuellen Befehl, der ein Verzweigungsbefehl BC ist, die NICHT-SPRUNG-Richtung anzeigt oder nicht, und zeigt den Verzweigungszielbefehl in der SPRUNG-Richtung an.
  • Der zweite Teil weist eine Kombination aus der Inkoinzidenzschaltung 143 und dem zweiten UND-Gatter mit zwei Eingängen auf und ist unmittelbar nach der Verarbeitung des aktuellen Befehls in der Operandenübersetzungsstufe betriebsfähig. Als Reaktion auf das erste und das zweite Ergebnis sowie auf die SPRUNG-Zieladresse, welche durch die decodierte Zieladresse angezeigt wird, prüft der zweite Teil die vorausgesagte Zieladresse und liefert ein drittes Prüfungsergebnis, welches angibt, ob die vorausgesagte Zieladresse mit der SPRUNG-Zieladresse nicht übereinstimmt oder übereinstimmt, wenn das erste Ergebnis nicht die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, weil der aktuelle Befehl den nächsten Befehl anzeigt, und wenn das zweite Ergebnis nicht die NICHT- SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, weil der aktuelle Befehl den Verzweigungszielbefehl anzeigt. Der zweite Teil ist im Ruhezustand, wenn das erste Ergebnis die NICHT-SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung für den aktuellen Befehl darstellt, der den Verzweigungszielbefehl anzeigt, und wenn das zweite Ergebnis die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung für den aktuellen Befehl darstellt, der den nächsten Befehl anzeigt.
  • Wie ferner aus Fig. 9 erkennbar, weist die vierte Voraussageprüfschaltung 69 erste bis vierte Eingangsanschlüsse 156, 157, 158 bzw. 159 auf, die mit dem Gültigkeitsbit V vom vierten Verzweigungsinformationsregister 54, dem Verzweigungsanzeigesignal von der Befehlsausführungseinheit 35 und mit Ausgangssignalen der vierten bzw. der fünften Flipflop-Schaltungen 74 bzw. 75 gespeist werden. Erste bis dritte true/false-Schaltungen 161, 162 und 163 sind mit dem zweiten Eingangsanschluß 157, über eine Flipflop-Schaltung 165 mit dem ersten Eingangsanschluß 156 und mit dem vierten Eingangsanschluß 159 verbunden. Erste und zweite NICHT-UND-Schaltungen 166 und 167 und erste und zweite UND-Schaltungen mit drei Eingängen 171 und 172 sind wie folgt geschaltet.
  • Die erste true/false-Schaltung 161 übergibt ihr "true"- Ausgangssignal an einen ersten Eingang der ersten UND-Schaltung mit drei Eingängen 171 und ihr "false"-Ausgangssignal an einen ersten Eingang der zweiten UND-Schaltung mit drei Eingängen 172. Die zweite true/false-Schaltung 162 übergibt ihr "false"-Ausgangssignal an einen zweiten Eingang der ersten UND-Schaltung 171 und ihr "true"-Ausgangssignal an einen zweiten Eingang der zweiten UND-Schaltung 172. Die erste NICHT- UND-Schaltung 166 mit einem ersten Eingang, der mit dem dritten Eingangsanschluß 158 verbunden ist, und einem zweiten Eingang, der mit einem "true"-Ausgangssignal der dritten true/false-Schaltung 163 gespeist wird, übergibt ihr Ausgangssignal an einen dritten Eingang der ersten UND-Schaltung 171. Die zweite NICHT-UND-Schaltung 167 mit einem ersten Eingang, der mit dem dritten Eingangsanschluß 158 verbunden ist, und einem zweiten Eingang, der mit einem "false"-Ausgangssignal der dritten true/false-Schaltung 163 gespeist wird, übergibt ihr Ausgangssignal an einen dritten Eingang der zweiten UND- Schaltung 172.
  • Eine ODER-Schaltung mit zwei Eingängen 173 wird von den ersten und zweiten UND-Schaltungen mit drei Eingängen 171 und 172 gespeist. Eine ODER-Schaltung mit drei Eingängen 174 wird von den ersten und zweiten UND-Schaltungen 171 und 172 sowie vom dritten Eingangsanschluß 158 gespeist. Die ODER-Schaltung mit zwei Eingängen 173 übergibt das vierte Voraussagefehlersignal an einen ersten Ausgangsanschluß 176 der vierten Voraussageprüfschaltung 69. Die ODER-Schaltung mit drei Eingängen 174 übergibt das vierte BHT-Erneuerungssignal an einen zweiten Ausgangsanschluß 177 der vierten Voraussageprüfschaltung 69.
  • Die vierte Flipflop-Schaltung 74 hält den logischen Wert null, wenn keines der ersten bis dritten Voraussagefehlersignale mit dem logischen Wert eins erzeugt wird. Die fünfte Flipflop-Schaltung 75 hält den logischen Wert null, wenn weder das zweite noch das dritte Vorabrufkorrektursignal mit dem logischen Wert eins erzeugt wird. In diesem Zusammenhang ist zu beachten, daß das erste Vorabrufkorrektursignal mit dem logischen Wert eins erzeugt wird, wenn die für die SPRUNG-Richtung vorausgesagte Verzweigungsrichtung nicht die SPRUNG-Richtung sein sollte. Die fünfte Flipflop-Schaltung 75 hält daher den logischen Wert null, wenn keines der ersten bis dritten Vorabrufkorrektursignale anzeigt, daß die für die NICHT-SPRUNG-Richtung vorausgesagte Verzweigungsrichtung die SPRUNG-Richtung sein sollte. Die vierte Flipflop-Schaltung 74 hält den logischen Wert eins, wenn die fünfte Flipflop-Schaltung 75 den logischen Wert null hält.
  • In Anbetracht der obigen Darstellung erzeugt die erste NICHT-UND-Schaltung 166 ihr Ausgangssignal mit dem logischen Wert eins, wenn entweder keines der ersten bis dritten Voraussagefehlersignale mit dem logischen Wert eins erzeugt wird oder wenn die vorausgesagte Verzweigungsrichtung nicht die SPRUNG-Richtung sein sollte. In diesem Falle gibt die erste UND-Schaltung mit drei Eingängen 171 dem vierten Voraussagefehlersignal und dem BHT-Erneuerungsanzeigesignal den logischen Wert eins, wenn das Verweigungsanzeigesignal die SPRUNG-Richtung anzeigt und wenn ferner die vorausgesagte Verzweigungsrichtung die NICHT-SPRUNG-Richtung ist.
  • Die zweite NICHT-UND-Schaltung 167 erzeugt ihr Ausgangssignal mit dem logischen Wert eins, wenn entweder keines der ersten bis dritten Voraussagefehlersignale mit dem logischen Wert eins erzeugt wird oder wenn die vorausgesagte Verzweigungsrichtung die SPRUNG-Richtung sein sollte. In diesem Falle gibt die zweite UND-Schaltung mit drei Eingängen 172 dem vierten Voraussagefehlersignal und dem BHT-Erneuerungsanzeigesignal den logischen Wert eins, wenn das Verzweigungsanzeigesignal die NICHT-SPRUNG-Richtung anzeigt und wenn ferner die vorausgesagte Verzweigungsrichtung die SPRUNG-Richtung ist. Wie oben beschrieben, weist das BHT-Erneuerungsanzeigesignal den logischen Wert eins auf, wenn mindestens eines der ersten bis vierten Voraussagefehlersignale den logischen Wert eins erhält.
  • Indem wir uns wieder Fig. 1 zuwenden, ist erkennbar, daß die Befehlsvorabrufsteuerschaltung 47 erste und zweite Wählsignale an den Anforderungsadressenwähler 42 bzw. an den Adressenrückgewinnungswähler 62 übergibt. Wir betrachten zunächst das BHT-Erneuerungsanzeigesignal. Fünf weitere von den sechs Eingangssignalen können die logischen Werte eins und/oder null haben. Nur wenn das BHT-Erneuerungsanzeigesignal den logischen Wert eins erhält und anschließend einen Maschinenzyklus später zum logischen Wert null zurückkehrt, wird der Inhalt des Adressenrückgewinnungsregisters 61 zum Befehlsadressenregister 41 übertragen. Andernfalls wird der Inhalt des Adressenrückgewinnungsregisters 61 nicht verwendet.
  • Es wird jetzt angenommen, daß der Befehlsvorabrufsteuerschaltung 47 die sechs Eingangssignale mit dem logischen Wert null zugeführt werden. Das heißt, das Adressentreffersignal hat den logischen Wert null, wobei die ersten bis vierten Voraussagefehlersignale sowie das BHT-Erneuerungsanzeigesignal sämtlich den logischen Wert null erhalten. Unter diesen Umständen bewirken das erste und das zweite Wählsignal, daß die Wähler 42 und 62, die vom Anforderungsadressenregister 45 zugeführte NICHT-SPRUNG-Adresse wählen. Einen Maschinenzyklus später wird die NICHT-SPRUNG-Adresse im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird ein Befehlswort aus dem Befehlsspeicher 31 ausgelesen. Auf diese Weise wird der Vorabruf mindestens eines Befehls zur NICHT-SPRUNG-Seite oder -Richtung hin fortgesetzt.
  • Wenn das Adressentreffersignal auf den logischen Wert eins geschaltet wird, veranlaßt die Befehlsvorabrufsteuerschaltung 47, daß die Wähler 42 und 62 die von der Verzweigungsarchivtabelle 46 übermittelte SPRUNG-Adresse wählen. Der Vorabruf wird zur SPRUNG-Seite oder -Richtung gelenkt. Gewöhnlich kehrt das Adressentreffersignal einen Maschinenzyklus später zum logischen Wert eins zurück. Nach dem Vorabruf des Verzweigungszielbefehls als eines vorabgerufenen Befehls entsprechend der SPRUNG-Adresse wird der Vorabruf für mindestens einen Befehl fortgesetzt, der auf der NICHT-SPRUNG-Seite als nächster auf den vorabgerufenen Befehl folgt.
  • Die oben beschriebene Annahme ist so gewählt, daß die vorausgesagte Verzweigungsinformation richtig ist. In dem Vorabruf werden die SPRUNG- bzw. NICHT-SPRUNG-Adressen in Abhängigkeit vom Adressentreffersignal, d. h. von der vorausgesagten Verzweigungsrichtung, verwendet. Auf jeden Fall ermöglicht die Befehlsvorabrufsteuerschaltung 47 die Fortsetzung des Vorabrufs entsprechend der vorausgesagten Verzweigungsrichtung.
  • Wenn das erste Voraussagefehlersignal mit dem logischen Wert eins erzeugt wird, weil dem Adressentreffersignal für einen Befehl, der kein Verzweigungsbefehl BC ist, irrtümlich der logische Wert eins gegeben wird, dann veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, die vom ersten Befehlsadressenaddierer 56 übergebene erste korrigierte Adresse zu wählen. Auf diese Weise korrigiert die Befehlsvorabrufsteuerschaltung 47 die Fortsetzung des Vorabrufs zur NICHT-SPRUNG-Richtung, obwohl die vorausgesagte Verzweigungsrichtung eine falsche Verzweigungsrichtung, nämlich die SPRUNG-Richtung ist. Das erste Voraussagefehlersignal erhält eine höhere Priorität als das Adressentreffersignal. Jetzt ist klar, daß das erste Voraussagefehlersignal auch als erstes Vorabrufkorrektursignal verwendet wird.
  • Zu diesem Zeitpunkt wird der aktuelle Befehl in der Operandenadressenerzeugungsschaltung 37 verarbeitet. Einige Befehle werden bereits als vorabgerufene Befehle vorabgerufen. Die Befehlsdecodierschaltung 36 befaßt sich mit einem der vorabgerufenen Befehle, der als nächster auf den aktuellen Befehl folgt. Auf die bekannte Weise werden solche vorabgerufenen Befehle aufgehoben bzw. annulliert, d. h. nicht mehr an die Operandenadressenerzeugungsstufe übergeben. Die falsche Verzweigungsrichtung wird später in der Verzweigungsarchivtabelle 46 auf eine weiter unten zu beschreibende Weise korrigiert.
  • Wenn das zweite Voraussagefehlersignal mit dem logischen Wert eins erzeugt wird, weil das Adressentreffersignal entweder fur einen unbedingten Verzweigungsbefehl UB oder für einen zählungsbedingten Verzweigungsbefehl BCT, für den der variable Zählwert nicht gleich eins ist, irrtümlich den logischen Wert null erhält, veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, die vom ersten Befehlsadressenwähler 86 zugeführte zweite korrigierte Adresse zu wählen. Das zweite Vorabrufkorrektursignal wird in diesem Falle mit dem logischen Wert eins erzeugt. Die zweite korrigierte Adresse dient als Verzweigungszieladresse auf der SPRUNG-Seite. Die Befehlsvorabrufsteuerschaltung 47 korrigiert daher die Fortsetzung des Vorabrufs zur SPRUNG-Seite, obwohl die vorausgesagte Verzweigungsrichtung eine falsche Verzweigungsrichtung, d. h. die NICHT-SPRUNG-Richtung ist. Das zweite Voraussagefehlersignal erhält eine höhere Priorität als das erste Voraussagefehlersignal.
  • Zu diesem Zeitpunkt wird der aktuelle Befehl durch die Operandenadressenübersetzungsschaltung 38 verarbeitet. Die vorabgerufenen Befehle werden aufgehoben, d. h. nicht mehr in der Operandenlesestufe verarbeitet. Die falsche Verzweigungsrichtung wird später in der Verzweigungsarchivtabelle 46 korrigiert.
  • Wenn wegen eines Widerspruchs zwischen der vorausgesagten Zieladresse und der SPRUNG-Zieladresse für einen Verzweigungsbefehl BC, für den die vorausgesagte Verzweigungsrichtung richtig ist, das dritte Voraussagefehlersignal mit dem logischen Wert eins erzeugt wird, veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, die vom vierten Verzweigungsinformationsregister 54 übergebene dritte korrigierte Adresse zu wählen. Dadurch korrigiert die Befehlsvorabrufsteuerschaltung 47 die Fortsetzung des Vorabrufs zu einem Befehl mit der dritten korrigierten Adresse, obwohl die vorausgesagte Zieladresse eine falsche Zieladresse ist, d. h. obwohl die vorausgesagte Verzweigungsinformation bezüglich der vorausgesagten Zieladresse falsch ist. Das dritte Voraussagefehlersignal erhält eine höhere Priorität als das zweite Voraussagefehlersignal.
  • Zu diesem Zeitpunkt wird der aktuelle Befehl durch die Operandenleseschaltung 39 verarbeitet. Die vorabgerufenen Befehle werden aufgehoben, d. h. nicht mehr in der Ausführungsstufe verarbeitet. Die falsche Zieladresse wird später in der Verzweigungsarchivtabelle 46 korrigiert.
  • Es wird jetzt angenommen, daß das vierte Voraussagefehlersignal mit dem logischen Wert eins erzeugt wird. In diesem Falle erhält auch das BHT-Erneuerungsanzeigesignal den logischen Wert eins. Das Verzweigungsanzeigesignal kann entweder den logischen Wert eins, der die SPRUNG-Richtung anzeigt, oder den logischen Wert null haben, der die NICHT-SPRUNG-Richtung anzeigt. Auf jeden Fall steuert die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62 auf die nachstehend beschriebene Weise. Die Befehlsvorabrufsteuerschaltung 47 korrigiert dadurch die Fortsetzung des Vorabrufs im Zusammenwirken mit dem zweiten Befehlsadressenwähler 87. Das vierte Voraussagefehlersignal erhält eine höhere Priorität als das dritte Voraussagefehlersignal.
  • Wenn das Verzweigungsanzeigesignal den logischen Wert eins hat, übergibt der zweite Befehlsadressenwähler 87 die SPRUNG-Zieladresse aus dem fünften Verzweigungsinformationsregister 55 als ausgewählte Adresse an das Register 63 für die ausgewählte Adresse sowie an den Adressenrückgewinnungswähler 62. Wenn das Verzweigungsanzeigesignal den logischen Wert null hat, übergibt der zweite Befehlsadressenwähler 87 die Adresse des nächsten Befehls auf der NICHT-SPRUNG-Seite als ausgewählte Adresse vom dritten Befehlsadressenaddierer 58 an das Register 63 für die ausgewählte Adresse sowie an den Adressenrückgewinnungswähler 62. Gleichzeitig wird die Befehlsadresse des aktuellen Befehls vom fünften Verzweigungsinformationsregister 55 als Schreibadresse für die Verzweigungsarchivtabelle 46 an den Anforderungsadressenwähler 42 übergeben.
  • Als Antwort auf das vierte Voraussagefehlersignal mit dem logischen Wert eins veranlaßt die Befehlsvorabrufsteuerschaltung 47 den Adressenrückgewinnungswähler 62, die gewählte Adresse auszuwählen. Die Befehlsvorabrufsteuerschaltung 47, der gleichzeitig das BHT-Erneuerungsanzeigesignal mit dem logischen Wert eins zugeführt wird, veranlaßt den Anforderungsadressenwähler 41, die Schreibadresse zu wählen. Einen Maschinenzyklus später werden diese Adressen im Befehlsadressenregister 41 und im Befehlsrückgewinnungsregister 61 gesetzt. Zu diesem Zeitpunkt wird das BHT-Erneuerungsanzeigesignal über die sechste Flipflopschaltung 76 als Schreibanzeigesignal an die Verzweigungsarchivtabelle 46 übergeben. Die Verzweigungsarchivtabelle 46 wird entsprechend der im Befehlsadressenregister 41 gesetzten Schreibadresse und entsprechend der gewählten Adresse, die im Register 63 für die gewählte Adresse gesetzt ist, aktualisiert oder erneuert. Gleichfalls zu diesem Zeitpunkt veranlaßt die Befehlsvorabrufsteuerschaltung 47 den Adressenwähler 42, den Inhalt des Adressenrückgewinnungsregisters 61 auszuwählen. Einen Maschinenzyklus später wird der Inhalt des Adressenrückgewinnungsregisters 61 im Befehlsadressenregister 41 gesetzt und bei der fortlaufenden Ausführung des Vorabrufs verwendet.
  • Wenn das erste Voraussagefehlersignal bei der Verarbeitung des aktuellen Befehls in der Operandenadressenerzeugungsstufe mit dem logischen Wert eins erzeugt wird, dann wird es durch die erste, die zweite und die vierte Flipflopschaltung 71, 72 und 74 als BHT-Erneuerungsanzeigesignal verwendet. Auch in diesem Falle veranlaßt die Befehlsvorabrufsteuerschaltung 47 den Anforderungsadressenwähler 42, die Schreibadresse auszuwählen. Der Adressenrückgewinnungswähler 62 wird veranlaßt, die vom ersten Befehlsadressenaddierer 56 zugeführte erste korrigierte Adresse auszuwählen. Die gewählte Adresse wird in dem Register 63 für die gewählte Adresse gesetzt. Zu beachten ist, daß die Befehlsvorabrufsteuerschaltung 47 den Adressenrückgewinnungswähler 62 veranlaßt, die gewählte Adresse nur dann zu wählen, wenn das vierte Voraussagefehlersignal mit dem logischen Wert eins erzeugt wird.
  • Einen Maschinenzyklus nach der Erzeugung des BHT-Erneuerungsanzeigesignals mit dem logischen Wert eins erreicht das Schreibanzeigesignal die Verzweigungsarchivtabelle 46, um das Gültigkeitsbit V auf den logischen Wert null zurückzusetzen. Die Verzweigungszieladresse kann zur gewählten Adresse aktualisiert werden, ist aber leer, da das Gültigkeitsbit V zurückgesetzt ist. Vor der Erneuerung der Verzweigungsarchivtabelle 46 wird das Adressentreffersignal auf dem logischen Wert null gehalten, um das Befehlsadressenregister 41 vom Anforderungsadressenaddierer 45 sukzessive mit den NICHT- SPRUNG-Adressen bis zu einer Befehlsadresse eines bestimmten Befehls, der einstweilen als spezifischer Befehl bezeichnet werden kann, zu speisen. Der Vorabruf geht bis zu dem spezifischen Befehl weiter. Einen Maschinenzyklus nach der Erneuerung der Verzweigungsarchivtabelle 46 wird das Befehlsadressenregister 41 mit der NICHT-SPRUNG-Adresse eines Befehls geladen, der als nächster auf den spezifischen Befehl folgt. Auf diese Weise wird der Vorabruf fortgesetzt, wie weiter unten ausführlicher beschrieben wird.
  • Wenn das zweite Voraussagefehlersignal mit dem logischen Wert eins erzeugt wird, dann wird im Adressenrückgewinnungsregister 61 die zweite korrigierte Adresse gesetzt. Wenn das dritte Voraussagefehlersignal mit dem logischen Wert eins erzeugt wird, dann wird im Adressenrückgewinnungsregister 62 die dritte korrigierte Adresse gesetzt. Im einen wie im anderen Falle wird die Schreibadresse im Befehlsadressenregister 41 gesetzt. Die gewählte Adresse wird im Register 63 für die gewählte Adresse gesetzt. Die Erneuerung der Verzweigungsarchivtabelle 46 und die Fortsetzung des Vorabrufs werden auf eine Weise ausgeführt, die später ausführlicher beschrieben wird.
  • Wie in der EP-A-109 655 und der EP-A-0 157 125 ausführlich beschrieben, muß ein Paar erster und zweiter Einträge gegebenenfalls für ein neues Eintragspaar aus der Verzweigungsarchivtabelle 46 gelöscht werden. In einem solchen Falle kann man entweder nach der FIFO- (first-in-first-out) oder nach der LRU-Methode (last-recently-used) verfahren.
  • Wie nun aus Fig. 10 erkennbar, weist die Befehlsvorabrufsteuerschaltung 47 erste bis sechste Eingangsanschlüsse 181, 182, 183, 184, 185 und 186, erste bis siebente primäre Ausgangsanschlüsse 191, 192, 193, 194, 195, 196 und 197 sowie erste bis sechste sekundäre Ausgangsanschlüsse 211, 212, 213, 214, 215 und 216 auf. An den ersten Eingangsanschluß 181 wird das Adressentreffersignal von der Verzweigungsarchivtabelle 46 angelegt. An die zweiten bis fünften Eingangsanschlüsse 182 bis 185 werden die ersten bis vierten Voraussagefehlersignale angelegt. An den sechsten Eingangsanschluß 186 wird das BHT- Erneuerungsanzeigesignal von der vierten Voraussageprüfschaltung 69 angelegt.
  • Die primären Ausgangsanschlüsse 191 bis 197 sind für das vom Anforderungsadressenwähler 42 übergebene erste Wählsignal vorgesehen. Die sekundären Ausgangsanschlüsse 211 bis 216 sind für das zweite Wählsignal für den Adressenrückgewinnungswähler 62 vorgesehen. Die ersten primären und sekundären Ausgangsanschlüsse 191 und 211 dienen dazu, die NICHT-SPRUNG- Adresse vom Anforderungsadressenaddierer 45 dem Befehlsadressenregister 41 und dem Adressenrückgewinnungsregister 61 zuzuführen. Die zweiten primären und sekundären Ausgangsanschlüsse 192 und 212 dienen dazu, die SPRUNG-Adresse von der Verzweigungsarchivtabelle 46 im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 zu setzen. Die dritten primären und sekundären Ausgangsanschlüsse 193 und 213 sind für die erste korrigierte Adresse des ersten Befehlsadressenaddierers 56 vorgesehen. Der vierte primäre Ausgangsanschluß 194 ist zur Übertragung des Inhalts des Adressenrückgewinnungsregisters 61 zum Befehlsadressenregister 41 vorgesehen.
  • Der fünfte primäre und der vierte sekundäre Ausgangsanschluß 195 und 214 dienen zum Setzen der zweiten korrigierten Adresse vom zweiten Befehlsadressenaddierer 57 oder von der Befehlsadressenübersetzungsschaltung 33 im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61. Der sechste primäre und der fünfte sekundäre Ausgangsanschluß 196 und 215 sind für die dritte korrigierte Adresse des vierten Verzweigungsinformationsregisters 54 vorgesehen. Der sechste sekundäre Ausgangsanschluß 216 ist für die vom zweiten Befehlsadressenwähler 87 übermittelte gewählte Adresse vorgesehen. Der siebente primäre Ausgangsanschluß 197 ist für die Befehlsadresse vorgesehen, die im fünften Verzweigungsinformationsregister 55 zur Verwendung als Schreibadresse gehalten wird.
  • Die Befehlsvorabrufsteuerschaltung 47 weist erste bis sechste true/false-Schaltungen 221, 222, 223, 224, 225 und 226, die mit den ersten bis sechsten Eingangsanschlüssen 181 bis 186 verbunden sind, erste bis sechste primäre UND-Schaltungen 231, 232, 233, 234, 235 und 236, deren Ausgänge mit den ersten bis sechsten primären Ausgangsanschlüssen 191 bis 196 verbunden sind, sowie erste bis fünfte sekundäre UND-Schaltungen 241, 242, 243, 244 und 245 auf.
  • Die sechste true/false-Schaltung 226 übergibt ihr "true"-Ausgangssignal direkt an den siebenten primären Ausgangsanschluß 197 und über eine Flipflopschaltung 246 an einen Eingang der vierten primären UND-Schaltung 234. Ihr "false"- Ausgangssignal wird zur ersten bis dritten, fünften und sechsten primären UND-Schaltung 231 bis 233, 235 und 236 übermittelt.
  • Die erste sekundäre UND-Schaltung 241 ist eine UND- Schaltung mit fünf Eingängen zum Empfang von "false"-Ausgangssignalen der ersten bis fünften true/false-Schaltungen 221 bis 225 und zur Übergabe ihres Ausgangssignals an die erste und die vierte primäre UND-Schaltung 231 und 234 und direkt an den ersten sekundären Ausgangsanschluß 211. Die zweite sekundäre UND-Schaltung 242 ist gleichfalls eine UND-Schaltung mit fünf Eingängen und dient zum Empfang der "false"-Ausgangssignale der ersten true/false-Schaltung 221 und der "true"-Ausgangssignale der zweiten bis fünften true/false-Schaltungen 222 bis 225 und zur Übergabe ihres Ausgangssignals an die zweite sekundäre UND-Schaltung 232 und direkt an den zweiten Ausgangsanschluß 212. Die dritte sekundäre UND-Schaltung 243 ist eine UND-Schaltung mit vier Eingängen zum Empfang der "true"-Ausgangssignale der zweiten und der dritten true/false-Schaltung 222 und 223 sowie der "false"-Ausgangssignale der vierten und der fünften true/false-Schaltung 224 und 225 und zur Übergabe ihres Ausgangssignals an die dritte primäre UND-Schaltung 233 und direkt an den dritten sekundären Ausgangsanschluß 213. Die vierte sekundäre UND-Schaltung 244 ist eine UND-Schaltung mit drei Eingängen zum Empfang des "true"-Ausgangssignals der dritten true/false-Schaltung 223 sowie der "true"-Ausgangssignale der vierten und der fünften true/false-Schaltung 224 und 225 und zur Übergabe ihres Ausgangssignals an die fünfte Primäre UND-Schaltung 235 und direkt an den vierten sekundären Ausgangsanschluß 214. Die fünfte sekundäre UND-Schaltung 245 ist eine UND-Schaltung mit zwei Eingängen zum Empfang des "true"-Ausgangssignals der vierten true/false-Schaltung 224 und des "false"-Ausgangssignals der fünften true/false-Schaltung 225 und zur Übergabe ihres Ausgangssignals an die sechste primäre UND-Schaltung 236 und direkt an den fünften sekundären Ausgangsanschluß 215.
  • Die fünfte true/false-Schaltung 225 übermittelt ihr "true"-Ausgangssignal direkt zum sechsten sekundären Ausgangsanschluß 216. Man wird erkennen, daß die Befehlsvorabrufsteuerschaltung 47 auf die oben beschriebene Weise betriebsfähig ist.
  • Wie aus Fig. 11 erkennbar, ist der Befehlsspeicher 31 für Acht-Byte-Befehlswörter vorgesehen. Wir betrachten nun eine Befehlsfolge, die Befehle A0, BC0, A1, A2, A3, A4, ..., B1, BC1, B2, B3, BC2, ..., C1, C2, und so weiter in Folge aufweist. Die Befehle BCk (wobei k für null und natürliche Zahlen steht) sind Verzweigungsbefehle.
  • Entsprechend der im Befehlsspeicher 31 gespeicherten Befehlsfolge weist die Verzweigungsarchivtabelle 46 erste Einträge AA auf, in denen Befehlsadressen < BC0> und < BC2> für die Verzweigungsbefehle BC0 und BC2 gespeichert sind, von denen festgestellt wurde, daß sie Verzweigungszielbefehle B1 und C1 entsprechend der tatsächlichen Ausführung anzeigen, die an den Verzweigungsbefehlen BC0 und BC2 das letzte Mal vor dem Vorabruf dieser Befehle BC0 und BC2 vorgenommen wurde. Hier wird angenommen, daß der Verzweigungsbefehl BC1 keinen Verzweigungszielbefehl entsprechend der tatsächlichen Ausführung anzeigt, die an dem Verzweigungsbefehl BC1 vor dem Vorabruf des Befehls BC1 vorgenommen wurde. Die Alternative ist, daß der Verzweigungsbefehl BC1 vor seinem Vorabruf noch nie ausgeführt wurde.
  • Als Gültigkeitsbit der zweiten Einträge DA speichert die Verzweigungsarchivtabelle 46 den logischen Wert eins nur für die Verzweigungsbefehle BC0 und BC2 und den logischen Wert null für den Verzweigungsbefehl BC1. Es wird angenommen, daß das Gültigkeitsbit V mit dem logischen Wert null für jeden der anderen Befehle, wie z. B. für A1 und A2, B1 und C1, gespeichert ist. Als vorausgesagte Zieladresse speichert die Verzweigungsarchivtabelle 46 Verzweigungszieladressen < B1> und < C1> für die Verzweigungsbefehle BC0 und BC2. Eine Verzweigungszieladresse kann als vorausgesagte Zieladresse auch für den Verzweigungsbefehl BC1 gespeichert werden. Die vorausgesagte Zieladresse ist jedoch leer, wie weiter oben beschrieben, und ist nicht abgebildet.
  • Unter Bezugnahme auf Fig. 12 zusätzlich zu Fig. 11 erkennen wir, daß am oberen Ende eine Taktimpulsfolge CLK abgebildet ist. Durch die Taktimpulsfolge, die als der früher beschriebene Maschinentakt verwendet wird, werden nullte bis fünfte Maschinenzyklen 0, 1, ..., 5 definiert. Der nullte Maschinenzyklus ist ein Maschinenzyklus, in dem das Befehlsadressenregister 41 mit einer Grenzadresse «A0» für ein Acht-Byte-Befehlswort geladen wird, das den Befehl A0 einschließt, wie in Fig. 11 dargestellt. Wie entlang der unteren Linie von Fig. 12 dargestellt, liefert der Befehlsspeicher 31 das Befehlswort, das aus dem Befehl A0 und dem Verzweigungsbefehl BC0 besteht. Da die Verzweigungsbefehlsadresse des Verzweigungsbefehls BC0 im ersten Eintrag AA gespeichert ist, erzeugt die Verzweigungsarchivtabelle 46 das Adressentreffersignal mit dem logischen Wert eins, wie entlang einer durch HIT gekennzeichneten Linie abgebildet. Die Verzweigungsarchivtabelle 46 übergibt ferner die Verzweigungszieladresse < B1> , die im ersten Maschinenzyklus im Befehlsadressenregister 41 gesetzt wird. Inzwischen erzeugt der Anforderungsadressenaddierer 45 eine nächste Anforderungsadresse «A0> +8> als die NICHT-SPRUNG-Adresse.
  • Als Reaktion auf die Verzweigungszieladresse, die im ersten Maschinenzyklus im Befehlsadressenregister 41 gesetzt wird, liefert der Befehlsspeicher 31 ein Befehlswort, das aus einem bestimmten Befehl &Delta; und dem Verzweigungszielbefehl B1 besteht. Das Adressentreffersignal wird auf den logischen Wert null zurückgesetzt. Inzwischen erzeugt der Anforderungsadressenaddierer 45 eine nächste Anforderungsadresse «B1> +8> , die im zweiten Maschinenzyklus im Befehlsadressenregister 41 gesetzt wird.
  • Als Reaktion auf die im zweiten Maschinenzyklus im Befehlsadressenregister 41 gesetzte nächste Anforderungsadresse liefert der Befehlsspeicher 31 ein Befehlswort, das aus dem Verzweigungsbefehl BC1 und dem Befehl B2 besteht. Der Anforderungsadressenaddierer 45 erzeugt eine weitere nächste Anforderungsadresse «B1> +16> . Da das Gültigkeitsbit V für den Verzweigungsbefehl BC1 den logischen Wert null hat, wird das Adressentreffersignal auf dem logischen Wert null gehalten. Daher wird im dritten Maschinenzyklus die nächste Anforderungsadresse im Befehlsadressenregister 41 gesetzt.
  • Als Reaktion auf die im dritten Maschinenzyklus im Befehlsadressenregister 41 gesetzte nächste Anforderungsadresse liefert der Befehlsspeicher 31 ein Befehlswort, das aus dem Befehl B3 und dem Verzweigungsbefehl BC2 besteht. Da der Verzweigungsbefehl BC2 eine im ersten Eintrag AA gespeicherte Befehisadresse aufweist, erzeugt die Verzweigungsarchivtabelle 46 das Adressentreffersignal mit dem logischen Wert eins. Gleichzeitig erzeugt die Verzweigungsarchivtabelle 46 die Verzweigungszieladresse < C1> , die im vierten Maschinenzyklus im Befehlsadressenregister 41 gesetzt wird. Inzwischen erzeugt der Anforderungsadressenaddierer 45 noch eine weitere Anforderungsadresse «b1> +24> .
  • Als Reaktion auf die im vierten Maschinenzyklus im Befehlsadressenregister 41 gesetzte Verzweigungszieladresse liefert der Befehlsspeicher 31 ein Befehlswort, das aus den Befehlen C1 und C2 besteht. Das Adressentreffersignal wird auf den logischen Wert null geschaltet. Der Anforderungsadressenaddierer 45 erzeugt noch eine weitere nächste Anforderungsadresse «C1> +8> , die im fünften Maschinenzyklus im Befehlsadressenregister gesetzt wird. Der Vorabruf der Befehle läuft auf diese Weise weiter, wenn nicht mindestens eines der ersten bis vierten Voraussagefehlersignale mit dem logischen Wert eins erzeugt wird.
  • Nachstehend wird anhand von Fig. 13 das Befehlsvorabrufgerät beschrieben, wobei auch auf Fig. 1 Bezug genommen wird. Entlang der oberen Linie sind nullte bis achte Maschinenzyklen abgebildet. In einem unteren Teil sind entlang vier Linien vier Befehle dargestellt. Es wird angenommen, daß ein erster Befehl A1 kein Verzweigungsbefehl ist, sondern daß seine Befehlsadresse im ersten Eintrag AA der Verzweigungsarchivtabelle 46 steht, und daß das Gültigkeitsbit V mit dem logischen Wert eins im entsprechenden zweiten Eintrag DA gespeichert ist. Zu beachten ist, daß die Befehlsadressen in Fig. 13 und den nachfolgenden Abbildungen durch die Symbole für die Befehle an sich dargestellt sind. Dies dient lediglich zur Vereinfachung der Darstellung.
  • Im nullten Maschinenzyklus wird der erste Befehl A1 in der Befehlslesestufe verarbeitet. Die Verzweigungsarchivtabeile 46 erzeugt das Adressentreffersignal mit dem logischen Wert eins, wie entlang einer Linie dargestellt, die direkt über der Linie für den Befehl A1 liegt und durch HIT gekennzeichnet ist. Damit der Befehl A1 so verarbeitet wird, wird im Befehlsadressenregister 41 die Befehlsadresse < A1> gesetzt, wie abgebildet. Die Verzweigungsarchivtabelle 46 übergibt eine Verzweigungszieladresse < C1> für einen ersten Zusatzbefehl C1 an den Anforderungsadressenwähler 42 und an den Adressenrückgewinnungswähler 62 als SPRUNG-Adresse. Inzwischen übergibt der Anforderungsadressenaddierer 45 die nächste Anforderungsadresse eines zweiten Befehls A2 an die Wähler 42 und 62 als NICHT-SPRUNG-Adresse.
  • Gleichfalls im nullten Maschinenzyklus wird angenommen, daß keines von den ersten bis fünften Voraussagefehlersignalen und vom BHT-Erneuerungsanzeigesignal mit dem logischen Wert eins erzeugt wird. Als Reaktion auf das Adressentreffersignal mit dem logischen Wert eins veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, die SPRUNG-Adresse anstatt der NICHT-SPRUNG-Adresse zu wählen.
  • Im ersten Maschinenzyklus wird der erste Befehl A1 in der Befehlsdecodierstufe verarbeitet. Das Adressentreffersignal wird auf den logischen Wert eins zurückgeschaltet Wie unterhalb der obersten Linie abgebildet, übergibt die Befehlsdecodierschaltung 36 das erste Entscheidungssignal an die erste Signalleitung 81 mit dem logischen Wert null. Inzwischen wird das Gültigkeitsbit V mit dem logischen Wert eins zum er sten Verzweigungsinformationsregister 51 übertragen.
  • Gleichfalls im ersten Maschinenzyklus wird die SPRUNG- Adresse des ersten Zusatzbefehls C1 im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird der Befehl C1 in der Befehlslesestufe als vorabgerufener Befehl verarbeitet. Der Anforderungsadressenaddierer 45 übergibt die nächste Anforderungsadresse «C1> +8> eines zweiten Zusatzbefehls C2 an die Wähler 42 und 62 als NICHT-SPRUNG-Adresse. Wenn der Befehl C1 kein Verzweigungsbefehl ist, dann schaltet die Verzweigungsarchivtabelle 46 das Adressentreffersignal auf den logischen Wert null. In diesem Falle veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, die NICHT-SPRUNG-Adresse des zweiten Zusatzbefehls C2 zu wählen.
  • Im zweiten Maschinenzyklus wird der erste Befehl A1 in der Operandenadressenerzeugungsstufe verarbeitet. Der erste Zusatzbefehl C1 wird in der Befehlsdecodierstufe verarbeitet. Die NICHT-SPRUNG-Adresse des zweiten Zusatzbefehls C2 wird im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird der Befehl C2 in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 übergibt die NICHT-SPRUNG-Adresse des zweiten Befehls A2 an die Wähler 42 und 62. Es wird angenommen, daß das Adressentreffersignal auf dem logischen Wert null gehalten wird.
  • Gleichfalls im zweiten Maschinenzyklus benutzt die erste Voraussageprüfschaltung 66 das erste Entscheidungssignal mit dem logischen Wert null und das Gültigkeitsbit V, das vom ersten Verzweigungsinformationsregister 51 mit dem logischen Wert eins zugeführt wird, und übergibt das erste Voraussagefehlersignal mit dem logischen Wert eins an die Befehlsvorabrufsteuerschaltung 47 und die erste Flipflopschaltung 71, wie abgebildet. Inzwischen übergibt der erste Befehlsadressenaddierer 56 die nächste Befehlsadresse des Befehls A2 als (erste) korrigierte Adresse an die Wähler 42 und 62. Als Reaktion auf das erste Voraussagefehlersignal mit dem logischen Wert eins veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, die korrigierte Adresse mit höherer Priorität als die vom Anforderungsadressenaddierer 45 zugeführte NICHT-SPRUNG-Adresse zu wählen. Die Befehle C1 und C2 werden aufgehoben und in der Operandenadressenerzeugungsstufe nicht verarbeitet.
  • Im dritten Maschinenzyklus wird der erste Befehl A1 in der Operandenadressenübersetzungsstufe verarbeitet. Die Befehlsadresse des zweiten Befehls A2 wird im Befehlsadressenregister 41 und im Befehlsrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird der Befehl A2 in der Befehlslesestufe als vorabgerufener Befehl verarbeitet. Der Anforderungsadressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT-SPRUNG-Adresse «A2> +8> für einen dritten Befehl A3 (nicht dargestellt). Der Befehl A2 ist kein Verzweigungsbefehl. Das Adressentreffersignal wird auf dem logischen Wert null gehalten. Die Befehlsvorabrufsteuerschaltung 47 veranlaßt die Wähler 42 und 62, die NICHT-SPRUNG- Adresse des dritten Befehls A3 zu wählen. Wie abgebildet, hält die erste Flipflop-Schaltung 71 den logischen Wert eins des ersten Voraussagefehlersignals.
  • Im vierten Maschinenzyklus werden die Befehle A1 bzw. A2 in der Operandenlesestufe bzw. in der Befehlsdecodierstufe verarbeitet. Die NICHT-SPRUNG-Adresse des dritten Befehls A3 wird im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird der Befehl A3 in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT-SPRUNG-Adresse «A2> +16> eines vierten Befehls A4 (nicht dargestellt). Der dritte Befehl A3 ist kein Verzweigungsbefehl. Das Adressentreffersignal wird auf dem logischen Wert null gehalten. Die Befehlsvorabrufsteuerschaltung 47 veranlaßtß die Wähler 42 und 62, die NICHT-SPRUNG-Adresse des Befehls A4 zu wählen.
  • Gleichfalls im vierten Maschinenzyklus hält die zweite Flipflop-Schaltung 72 den von der ersten Flipflop-Schaltung 71 übertragenen logischen Wert eins. Die dritte Flipflop-Schaltung 73 hält das zweite Vorabrufkorrektursignal, das von der zweiten Voraussageprüfschaltung 67 für den ersten Befehl A1 mit dem logischen Wert null erzeugt wird. In dem dargestellten Beispiel wird das Gültigkeitsbit V mit dem logischen Wert eins vom dritten Verzweigungsinformationsregister 53 übertragen und im vierten Verzweigungsinformationsregister 54 für den ersten Befehl A1 gesetzt. Die zweite und die dritte Flipflop-Schaltung 72 bzw. 73 zeigen an, daß die Verzweigungsinformation in der Verzweigungsarchivtabelle 46 für den ersten Befehl A1 falsch ist und korrigiert werden sollte bzw. daß der Vorabruf für den zweiten und den dritten Befehl A2 und A3 bereits zur NICHT-SPRUNG-Richtung korrigiert ist, wobei die Befehle C1 und C2 aufgehoben werden.
  • Im fünften Maschinenzyklus werden die ersten bis dritten Befehle A1 bis A3 in der Ausführungs-, der Operandenadressenerzeugungs- und der Befehlsdecodierstufe verarbeitet. Die Befehlsadresse im vierten Befehl A4 wird im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird der Befehl A4 in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 übergibt die NICHT-SPRUNG- Adresse «A2> +24> eines fünften Befehls A5 (nicht dargestellt) an die Wähler 42 und 62. Wie abgebildet, halten die vierte und die fünfte Flipflop-Schaltung 74 und 75 den logischen Wert eins bzw. den logischen Wert null, die von der zweiten und der dritten Flipflop-Schaltung 72 und 73 übertragen und von der dritten Voraussageprüfschaltung 68 für den ersten Befehl A1 nicht geändert werden. Andererseits übergibt die Befehlsausführungseinheit 35 das Verzweigungsanzeigesignal mit dem logischen Wert null an die vierte Voraussageprüfschaltung 69 und den zweiten Befehlsadressenwähler 87. Die vierte Voraussageprüfschaltung 69 übergibt das BHT-Erneuerungsanzeigesignal mit dem logischen Wert eins an die Befehlsvorabrufsteuerschaltung 47 und die sechste Flipflop-Schaltung 76 und übermittelt das vierte Voraussagefehlersignal mit dem logischen Wert null zur Befehlsvorabrufsteuerschaltung 47. Dies zeigt, daß die Befehle A1 bis A4 bereits richtig vorabgerufen sind und daß das Gültigkeitsbit V in der Verzweigungsarchivtabelle 46 für den ersten Befehl A1 falsch aufgezeichnet ist und korrigiert werden sollte.
  • Gleichfalls im fünften Maschinenzyklus wird die Befehlsadresse des ersten Befehls A1 vom fünften Verzweigungsinformationsregister 55 als Schreibadresse ausschließlich zum Anforderungsadressenwähler 42 übermittelt. Als gewählte Adresse wählt der zweite Befehlsadressenwähler 87 die nächste Befehlsadresse, die durch den dritten Befehlsadressenaddierer 58 für den zweiten Befehl A2 erzeugt wird. Die gewählte Adresse wird an den Adressenrückgewinnungswähler 62 und das Register 63 für die gewählte Adresse übergeben. Als Antwort auf das vierte Voraussagefehlersignal mit dem logischen Wert null veranlaßt die Befehlsvorabrufsteuerschaltung 47 den Anforderungsadressenwähler 42, ungeachtet des Adressentreffersignals und der ersten bis dritten Voraussagefehlersignale die Schreibadresse zu wählen. Der vierte Befehl A4 ist kein Verzweigungsbefehl. Das Adressentreffersignal hat den logischen Wert null. Die Befehlsvorabrufsteuerschaltung 47 veranlaßt daher den Adressenrückgewinnungswähler 62, die NICHT-SPRUNG-Adresse des fünften Befehls A5 zu wählen. Würde das Adressentreffersignal für den vierten Befehl A4 mit dem logischen Wert eins erzeugt, dann würde der Wähler 62 veranlaßt, die in der Verzweigungsarchivtabelle 46 gespeicherte Verzweigungszieladresse zu wählen. Würde das erste Voraussagefehlersignal für den zweiten Befehl A2 mit dem logischen Wert eins erzeugt, dann würde der Wähler 62 veranlaßt, die erste korrigierte Adresse mit einer höheren Priorität als der des Adressentreffersignals zu wählen.
  • Im sechsten Maschinenzyklus führt die Befehlsvorabrufsteuerschaltung 47 eine Archivaktualisierungsstufe (HU-Stufe) für den ersten Befehl A1 aus. Wie abgebildet, hält die sechste Flipflop-Schaltung 76 den logischen Wert eins des BHT-Erneuerungsanzeigesignals. Die gewählte Adresse des zweiten Befehls A2 wird im Register 63 für die gewählte Adresse gesetzt. Die NICHT-SPRUNG-Adresse des fünften Befehls A5 wird im Adressenrückgewinnungsregister 61 gesetzt und von dort zum Befehlsadressenwähler 42 übergeben. Die Schreibadresse des ersten Befehls A1 wird im Befehlsadressenregister 41 gesetzt. Als Reaktion auf das von der sechsten Flipflop-Schaltung 76 zur Verzweigungsarchivtabelle 46 übergebene Schreibanzeigesignal wird das Gültigkeitsbit V für den ersten Eintrag AA, der mittels der Schreibadresse abgerufen wird, auf den logischen Wert null gesetzt. Die gewählte Adresse kann von dem Register 63 für die gewählte Adresse zur Verzweigungsarchivtabelle 46 unter der Schreibadresse übertragen werden. Ungeachtet der Verzweigungszieladresse wird der erste Befehl A1 nicht mehr als Verzweigungsbefehl vorausgesagt.
  • Gleichfalls im sechsten Maschinenzyklus veranlaßt die Befehlsvorabrufsteuerschaltung 47 den Anforderungsadressenwäh-1er 42, als Reaktion auf das BHT-Erneuerungsanzeigesignal, das im fünften Maschinenzyklus mit dem logischen Wert eins dorthin übermittelt wurde, den Inhalt des Adressenrückgewinnungsregisters 61 zu wählen. Da im Befehlsadressenregister 41 die Befehlsadresse des ersten Befehls A1 gesetzt ist und da der erste Befehl A1 nicht mehr ein Verzweigungsbefehl ist, erzeugt die Verzweigungsarchivtabelle 46 das Adressentreffersignal mit dem logischen Wert null. Die Befehlsvorabrufsteuerschaltung 47 veranlaßt den Adressenrückgewinnungswähler 61, die NICHT- SPRUNG-Adresse des zweiten Befehls A2 zu wählen. Würde das erste Voraussagefehlersignal für den dritten Befehl A3 mit dem logischen Wert eins erzeugt, dann würde der Adressenrückgewinnungswähler 62 veranlaßt, die erste korrigierte Adresse mit höherer Priorität zu wählen. Würde das zweite Voraussagefehlersignals für den zweiten Befehl A2 mit dem logischen Wert eins erzeugt, dann würde der Adressenrückgewinnungswähler 62 veranlaßt, die zweite korrigierte Adresse mit noch höherer Priorität zu wählen. Übrigens ist die zweite korrigierte Adresse die SPRUNG-Adresse, wenn das zweite Vorabrufkorrektursignal mit dem logischen Wert eins erzeugt wird. Die zweite korrigierte Adresse ist die nächste Befehlsadresse des zweiten Befehlsadressenaddierers 57, wenn das zweite Vorabrufkorrektursignal mit dem logischen Wert null erzeugt wird.
  • Im siebenten Maschinenzyklus werden die zweiten bis vierten Befehle A2 bis A4 in der Operandenlesestufe und den Operandenadressenübersetzungs- und -erzeugungsstufen verarbeitet. Die Befehlsadresse des fünften Befehls A5 wird im Befehlsadressenregister 41 gesetzt. Der fünfte Befehl A5 wird in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 erzeugt die NICHT-SPRUNG-Adresse «A2> +32> für einen sechsten Befehl A6 (nicht dargestellt). Der Vorabruf wird in der NICHT-SPRUNG-Richtung fortgesetzt, bis ein Verzweigungsbefehl auftritt.
  • Anhand von Fig. 14 wird nachstehend nochmals das Befehlsvorabrufgerät beschrieben, wobei auch auf Fig. 1 Bezug genommen wird. Es sind fünf Befehle dargestellt. Es wird angenommen, daß ein Befehl B1 entweder ein unbedingter Verzweigungsbefehl oder ein zählungsbedingter Verzweigungsbefehl BCT ist, für den der variable Zählwert nicht gleich eins ist. In jedem Fall zeigt der Verzweigungsbefehl B1 einen Verzweigungszielbefehl C1 an, d. h. einen ersten Befehl, der auf der SPRUNG-Seite als nächster auf den Verzweigungsbefehl folgen sollte. Das Gültigkeitsbit V ist jedoch für den Verzweigungsbefehl B1 in der Verzweigungsarchivtabelle 46 falsch aufgezeichnet und zeigt als vorausgesagte Verzweigungsrichtung die NICHT-SPRUNG-Richtung an.
  • Im nullten Maschinenzyklus wird die Befehlsadresse des Verzweigungsbefehls B1 im Befehlsadressenregister 41 gesetzt. Als Reaktion wird der Verzweigungsbefehl B1 in der Befehlslesestufe verarbeitet. Das Adressentreffersignal wird mit dem logischen Wert null erzeugt. Inzwischen speist der Anforderungsadressenaddierer 45 den Anforderungsadressenwähler 42 und den Adressenrückgewinnungswähler 62 mit der NICHT-SPRUNG- Adresse «B1> +8> für einen ersten Befehl A1, der auf der NICHT-SPRUNG-Seite als nächster auf den Verzweigungsbefehl B1 folgt. Wie zuvor wird angenommen, daß keines von den ersten bis vierten Voraussagefehlersignalen und vom BHT-Erneuerungsanzeigesignal mit dem logischen Wert eins erzeugt wird. Als Reaktion auf das Adressentreffersignal mit dem logischen Wert null veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, die NICHT-SPRUNG-Adresse des ersten Befehl A1 zu wählen.
  • Im ersten Maschinenzyklus wird der Verzweigungsbefehl B1 in der Befehlsdecodierstufe verarbeitet. Die Befehlsdecodierschaltung 36 übergibt das erste Entscheidungssignal mit dem logischen Wert eins an die erste Signalleitung 81, was hier allerdings nicht abgebildet ist. Das Gültigkeitsbit V mit dem logischen Wert null wird zum ersten Verzweigungsinformationsregister 51 übertragen. Das erste Fehlervoraussagesignal wird jedoch mit dem logischen Wert null erzeugt. Die Befehlsdecodierschaltung 36 übergibt ferner das zweite Entscheidungssignal mit dem logischen Wert eins an das Zwischenregister 83.
  • Gleichfalls im ersten Maschinenzyklus wird die NICHT- SPRUNG-Adresse des ersten Befehls A1 im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird der Befehl A1 in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT-SPRUNG-Adresse «b1> +16> eines zweiten Befehls A2. Das Adressentreffersignal wird auf dem logischen Wert null gehalten. Die Befehlsvorabrufsteuerschaltung 47 veranlaßt die Wähler 42 und 62, die NICHT-SPRUNG-Adresse des zweiten Befehls A2 zu wählen.
  • Im zweiten Maschinenzyklus werden der Verzweigungsbefehl B1 und der erste Befehl A1 in der Operandenadressenerzeugungsstufe und der Befehlsdecodierstufe verarbeitet. Wie in der Nähe der obersten Linie abgebildet, übergibt das Zwischenregister 83 das zweite Entscheidungssignal mit dem logischen Wert eins an die zweite Voraussageprüfschaltung 67. Der Komparator 85 übergibt das Signal "Zählwert eins" mit dem logischen Wert null an die zweite Voraussageprüfschaltung 67. Inzwischen wird das Gültigkeitsbit V mit dem logischen Wert null vom ersten Verzweigungsinformationsregister 51 übertragen und im zweiten Verzweigungsinformationsregister 52 gesetzt.
  • Gleichfalls im zweiten Maschinenzyklus wird die Befehlsadresse des zweiten Befehls A2 im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird der zweite Befehl A2 in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer übermittelt die NICHT-SPRUNG- Adresse «b1> +24> eines dritten Befehls A3 zu den Wählern 42 und 62. Als Reaktion auf das Adressentreffersignal mit dem logischen Wert null veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, die Befehlsadresse des dritten Befehls A3 zu wählen.
  • Im dritten Maschinenzyklus wird der Verzweigungsbefehl B1 in der Operandenadressenübersetzungsstufe verarbeitet. Der erste und der zweite Befehl A1 und A2 werden in der Operandenadressenerzeugungsstufe und der Befehlsdecodierstufe verarbeitet. Die Befehlsadresse des dritten Befehls A3 wird im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Der dritte Befehl A3 wird in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT-SPRUNG-Adresse eines vierten Befehls A4 (nicht dargestellt). Andererseits übersetzt die Befehlsadressenübersetzungsschaltung 33 die logische Verzweigungszieladresse des Verzweigungszielbefehls C1 in eine SPRUNG-Zieladresse < C1> .
  • Gleichfalls im dritten Maschinenzyklus benutzt die zweite Voraussageprüfschaltung 67 das zweite Entscheidungssignal mit dem logischen Wert eins, das Signal "Zählwert eins" mit dem logischen Wert null und das Gültigkeitsbit V mit dem logischen Wert null und übergibt das zweite Voraussagefehlersignal mit dem logischen Wert eins an die Befehlsvorabrufsteuerschaltung 47, wie abgebildet. Das zweite BHT-Erneuerungssignal wird an die zweite Flipflop-Schaltung 72 gleichfalls mit dem logischen Wert eins übergeben. Das zweite Vorabrufkorrektursignal mit dem logischen Wert eins wird an die dritte Flipflop-Schaltung 73 und an den ersten Befehlsadressenwähler 86 übergeben. Als Reaktion auf das zweite Vorabrufkorrektursignal mit dem logischen Wert eins übergibt der erste Befehlsadressenwähler 86 die SPRUNG-Adresse des Verzweigungszielbefehls C1 als (zweite) korrigierte Adresse an die Wähler 42 und 62. Als Reaktion auf das zweite Voraussagefehlersignal mit dem logischen Wert eins veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, die SPRUNG-Zieladresse des Verzweigungszielbefehls C1 zu wählen. Die Befehle A1 bis A3 auf der NICHT-SPRUNG-Seite werden aufgehoben. Die Wähler 42 und 62 wurden zwar mit der Befehlsadresse des vierten Befehls A4 gespeist, werden aber nicht veranlaßt, diese zu wählen.
  • Im vierten Maschinenzyklus wird der Verzweigungsbefehl B1 in der Operandenlesestufe verarbeitet. Die SPRUNG- Zieladresse des Verzweigungszielbefehls C1 wird im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird der Verzweigungszielbefehl C1 in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT-SPRUNG-Adresse «C1> +8> eines zweiten Befehls C2 (nicht dargestellt), der auf der NICHT-SPRUNG-Seite als nächster auf den Verzweigungszielbefehl, nämlich den ersten Befehl C1, folgt. Wie abgebildet, halten die zweite und die dritte Flipflop-Schaltung 72 und 73 das zweite BHT-Erneuerungssignal mit dem logischen Wert eins und das zweite Vorabrufkorrektursignal, das gleichfalls den logischen Wert eins hat. Dies läßt darauf schließen, daß das Gültigkeitsbit V den logischen Wert null hat, um eine falsch vorausgesagte Verzweigungsrichtung für den Verzweigungsbefehl B1 in der Verzweigungsarchivtabelle 46 anzuzeigen, die zu korrigieren ist. Übrigens wird der Vorabruf trotz der falschen Verzweigungsrichtung bereits richtig in die SPRUNG-Richtung gelenkt.
  • Im fünften Maschinenzyklus werden der Verzweigungsbefehl B1 und der Verzweigungszielbefehl C1 in der Ausführungsund der Befehlsdecodierstufe verarbeitet. Die Befehlsadresse des zweiten Befehls C2 wird im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird der zweite Befehl C2 in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT- SPRUNG-Adresse «C1> +16> eines dritten Befehls C3 (nicht dargestellt), der auf der NICHT-SPRUNG-Seite als nächster auf den zweiten Befehl C2 folgt. Wie abgebildet, halten die vierte und die fünfte Flipflop-Schaltung 74 und 75 die logischen Werte eins, die von der zweiten und der dritten Flipflop-Schaltung 72 und 73 über die dritte Voraussageprüfschaltung 68 übertragen werden.
  • Obgleich nicht dargestellt, wird das Verzweigungsanzeigesignal von der Befehlsausführungseinheit 35, durch die der Verzweigungsbefehl B1 in der Ausführungsstufe verarbeitet wird, mit dem logischen Wert eins erzeugt. Wenn der Verzweigungsbefehl B1 ein unbedingter Verzweigungsbefehl UB ist, dann hat das Verzweigungsanzeigesignal natürlich den logischen Wert eins. Für einen zählungsbedingten Verzweigungsbefehl BCT subtrahiert die Befehlsausführungseinheit 35 die Zahl eins von dem variablen Zählwert, der in dem vom betreffenden zählungsbedingten Verzweigungsbefehl spezifizierten Mehrzweckregister gehalten wird. Weiter oben wird angenommen, daß der variable Zählwert nicht gleich eins ist, wenn der betreffende zählungsbedingte Verzweigungsbefehl von der Befehlslesestufe bis zur Ausführungsstufe verarbeitet wird. Der variable Zählwert wird daher nicht gleich null, falls die Schleife verlassen werden sollte. Als Reaktion auf das Verzweigungsanzeigesignal mit dem logischen Wert eins übermittelt der zweite Befehlsadressenwähler 87 die SPRUNG-Zieladresse, die vom vierten Verzweigungsinformationsregister 54 für den Verzweigungszielbefehl C1 übertragen und im fünften Verzweigungsinformationsregister 55 gehalten wird, als gewählte Adresse zum Adressenrückgewinnungswähler 62 und zum Register 63 für die gewählte Adresse. Gleichzeitig wird der Anforderungsadressenwähler 42 mit der Befehlsadresse gespeist, die im fünften Verzweigungsinformationsregister 55 für den Verzweigungsbefehls B1 gehalten wird.
  • Gleichfalls im fünften Maschinenzyklus benutzt die vierte Voraussageprüfschaltung 69 das Gültigkeitsbit V, das im vierten Verzweigungsinformationsregister mit dem logischen Wert null für den Verzweigungsbefehl B1 gehalten wird, das Verzweigungsanzeigesignal mit dem logischen Wert eins und die in der vierten und der fünften Flipflop-Schaltung 74 und 75 gehaltenen logischen Werte eins und übergibt das vierte Voraussagefehlersignal mit dem logischen Wert eins an die Befehlsvorabrufsteuerschaltung 47 und, wie abgebildet, das BHT- Erneuerungsanzeigesignal mit dem logischen Wert eins an die Befehlsvorabrufsteuerschaltung 47 und die sechste Flipflop- Schaltung 76. Als Reaktion auf das vierte Voraussagefehlersignal mit dem logischen Wert eins veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, die Befehlsadresse des Verzweigungsbefehls B1 und die NICHT-SPRUNG-Adresse des dritten Befehls C3 zu wählen. Wäre der zweite Befehl C2 ein Verzweigungsbefehl, dann würde das Adressentreffersignal als Reaktion auf die NICHT-SPRUNG-Adresse, die dafür im Befehlsadressenregister 41 gesetzt ist, mit dem logischen Wert eins erzeugt. In diesem Falle veranlaßt die Befehlsvorabrufsteuerschaltung 47 den Adressenrückgewinnungswähler 62, die SPRUNG- Adresse zu wählen, die gleichzeitig für den zweiten Befehl C2 von der Verzweigungsarchivtabelle 46 erzeugt wird.
  • Im sechsten Maschinenzyklus hält die sechste Flipflop- Schaltung 76 den logischen Wert eins des BHT-Erneuerungsanzeigesignals. Die SPRUNG-Zieladresse des Verzweigungszielbefehls C1 wird als gewählte Adresse im Register 63 für die gewählte Adresse gesetzt. Die Befehlsadresse des dritten Befehls C3 wird im Adressenrückgewinnungsregister 61 gesetzt. Die Befehlsadresse des Verzweigungsbefehls B1 wird im Befehlsadressenregister 41 gesetzt. Die Befehlsvorabrufsteuerschaltung 47, an die das BHT-Erneuerungsanzeigesignal mit dem logischen Wert eins angelegt wird, führt die Archivaktualisierungsstufe für den Verzweigungsbefehl B1 aus. Als Reaktion auf das Schreibanzeigesignal der sechsten Flipflop-Schaltung 76 wird das Gültigkeitsbit V in der Verzweigungsarchivtabelle 46 unter der Schreibadresse, die vom Befehlsadressenregister 41 für den Verzweigungsbefehl B1 angezeigt wird, auf den logischen Wert eins geändert. Die SPRUNG-Zieladresse des Verzweigungszielbefehls C1 wird unter der Befehlsadresse des Verzweigungsbefehls B1 in die Verzweigungsarchivtabelle 46 eingeschrieben. Die Verzweigungsarchivtabelle 46 wird so aktualisiert, daß sie die SPRUNG-Richtung und die Verzweigungszieladresse für den Verzweigungsbefehl B1 anzeigt.
  • Gleichfalls im sechsten Maschinenzyklus wird der zweite Befehl C2 in der Operandenadressenübersetzungsstufe verarbeitet. Der Verzweigungszielbefehl C1 wird in der Operandenadressenerzeugungsstufe verarbeitet. Würde das erste Voraussagefehlersignal für den Verzweigungszielbefehl C1 mit dem logischen Wert eins erzeugt, dann würde die Befehlsvorabrufsteuerschaltung 47 den Adressenrückgewinnungswähler 62 veranlassen, die durch den ersten Befehlsadressenaddierer 56 gegebene erste korrigierte Adresse zu wählen. Der Anforderungsadressenwähler 42 würde veranlaßt, die Befehlsadresse des Verzweigungsbefehls B1 zu wählen. Diese Operation des Anforderungsadressenwählers 42 ist unabhängig vom ersten Voraussagefehlersignal.
  • Im siebenten Maschinenzyklus werden der Verzweigungszielbefehl C1 und der zweite Befehl C2 in den Operandenadressenübersetzungs- und -erzeugungsstufen verarbeitet. Die Befehlsadresse des dritten Befehls C3 wird vom Adressenrückgewinnungsregister 61 im Befehlsadressenregister 41 gesetzt. Der dritte Befehl C3 wird in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer erzeugt die NICHT-SPRUNG-Adresse «C1> +24> eines vierten Befehls C4 (nicht dargestellt). Wenn der Verzweigungsbefehl B1 ein unbedingter Verzweigungsbefehl UB ist, dann wird der Vorabruf bis zum Auftreten eines weiteren Verzweigungsbefehls BC richtig in der NICHT-SPRUNG-Richtung fortgesetzt. Ist der Verzweigungsbefehl B1 der betreffende zählungsbedingte Verzweigungsbefehl BCT, dann wird die Schleife richtig so lange wiederholt, bis durch die wiederholte Verarbeitung des Verzweigungsbefehls B1 in der Ausführungsstufe der variable Zählwert auf eins vermindert worden ist.
  • Nachstehend wird das Befehlsvorabrufgerät anhand von Fig. 15 beschrieben, wobei auch auf Fig. 1 Bezug genommen wird. Wie zuvor sind fünf Befehle abgebildet. Es wird angenommen, daß der variable Zählwert für einen zählungsbedingten Verzweigungsbefehl BCT1 auf eins abgenommen hat. In diesem Falle muß das Gültigkeitsbit V in der Verzweigungsarchivtabelle 46 auf den logischen Wert null zurückgesetzt werden, bevor der zählungsbedingte Verzweigungsbefehl BCT1 in der Ausführungsstufe verarbeitet wird.
  • Im nullten Maschinenzyklus wird die Befehlsadresse des zählungsbedingten Verzweigungsbefehls BCT1 im Befehlsadressenregister 41 gesetzt. Der Befehl BCT1 wird in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 speist den Anforderungsadressenwähler 42 und den Adressenrückgewinnungswähler 62 mit der NICHT-SPRUNG-Adresse eines Befehls A1, der in der NICHT-SPRUNG-Richtung als nächster auf den zählungsbedingten Verzweigungsbefehl BCT1 folgt und entweder als erster Befehl außerhalb der Schleife oder kurz als erster Befehl bezeichnet wird. Die Verzweigungsarchivtabelle 46 übergibt das Adressentreffersignal mit dem logischen Wert eins an die Befehlsvorabrufsteuerschaltung 47 und speist die Wähler 42 und 62 mit der SPRUNG-Adresse eines Befehls C1, der auf der SPRUNG-Seite als nächster auf den zählungsbedingten Verzweigungsbefehl BCT1 folgt und als erster Schleifenbefehl bezeichnet wird. Als Reaktion auf das Adressentreffersignal mit dem logischen Wert eins veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, statt der NICHT-SPRUNG-Adresse des ersten Befehls A1 außerhalb der Schleife die SPRUNG-Adresse des ersten Schleifenbefehls C1 zu wählen.
  • Im ersten Maschinenzyklus wird der zählungsbedingte Verzweigungsbefehl BCT1 in der Befehlsdecodierstufe verarbeitet. Die SPRUNG-Adresse wird im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird der erste Schleifenbefehl C1 in der Befehlslesestufe verarbeitet. Das Adressentreffersignal wird auf den logischen Wert null geschaltet. Der Anforderungsadressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT-SPRUNG-Adresse eines zweiten Schleifenbefehls C2. Als Reaktion auf das Adressentreffersignal mit dem logischen Wert null veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, die NICHT-SPRUNG- Adresse des zweiten Schleifenbefehls C2 zu wählen. Andererseits decodiert die Befehlsdecodierschaltung 36 den zählungsbedingten Verzweigungsbefehl BCT1 und übergibt das zweite Entscheidungssignal mit dem logischen Wert eins an die zweite Signalleitung 82 und speist das zweite Verzweigungsinformationsregister 52 mit der Befehlsbitlänge des zählungsbedingten Verzweigungsbefehls BCT1.
  • Im zweiten Maschinenzyklus werden der zählungsbedingte Verzweigungsbefehl BCT1 und der erste Schleifenbefehl C1 in der Operandenadressenerzeugungsstufe und der Befehlsdecodierstufe verarbeitet. Die NICHT-SPRUNG-Adresse des zweiten Schleifenbefehls C2 wird im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird der zweite Schleifenbefehl C2 in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT-SPRUNG-Adresse eines dritten Schleifenbefehls C3. Die Befehlsvorabrufsteuerschaltung 47 veranlaßt die Wähler 42 und 62, die NICHT-SPRUNG-Adresse zu wählen.
  • Wie für den zweiten Maschinenzyklus in der Nähe der obersten Linie abgebildet, übergibt das Zwischenregister 83 das zweite Entscheidungssignal mit dem logischen Wert eins an die zweite Voraussageprüfschaltung 67. Der Komparator 85 übergibt das Signal "Zählwert eins" mit dem logischen Wert eins an die zweite Voraussageprüfschaltung 67. Das Gültigkeitsbit V wird im zweiten Verzweigungsinformationsregister 52 mit dem logischen Wert eins gehalten.
  • Im dritten Maschinenzyklus werden der zählungsbedingte Verzweigungsbefehl BCT1 und der erste und der zweite Schleifenbefehl C1 und C2 in den Operandenadressenübersetzungs- und -erzeugungsstufen und der Befehlsdecodierstufe verarbeitet. Als Reaktion auf die im Befehlsadressenregister 41 gesetzte NICHT-SPRUNG-Adresse wird der dritte Schleifenbefehl C3 in der Befehlslesestufe verarbeitet. Inzwischen speist die Befehlsadressenübersetzungsschaltung 33 unter anderem den ersten Befehlsadressenwähler 86 mit der SPRUNG-Zieladresse, die unter diesen Umständen die Befehlsadresse des ersten Schleifenbefehls C1 ist.
  • Gleichfalls im dritten Maschinenzyklus benutzt die zweite Voraussageprüfschaltung 68 das vom Zwischenregister 83 mit dem logischen Wert eins übergebene zweite Entscheidungssignal, das Signal "Zählwert eins" mit dem logischen Wert eins und das im zweiten Verzweigungsinformationsregister 52 mit dem logischen Wert eins gehaltene Gültigkeitsbit V und übergibt das zweite Voraussagefehlersignal mit dem logischen Wert eins an die Befehlsvorabrufsteuerschaltung 47, das zweite BHT-Erneuerungssignal mit dem logischen Wert eins an die zweite Flipflop-Schaltung 72 und das zweite Vorabrufkorrektursignal mit dem logischen Wert null an die dritte Flipflop-Schaltung 73 sowie an den ersten Befehlsadressenwähler 86. Als Reaktion auf das zweite Vorabrufkorrektursignal mit dem logischen Wert null speist der erste Befehlsadressenwähler 86 die Wähler 42 und 62 mit der (zweiten) korrigierten Adresse, die in diesem Falle die vom zweiten Befehlsadressenaddierer 57 berechnete nächste Befehlsadresse für den ersten Befehl Al außerhalb der Schleife ist. Die Befehlsvorabrufsteuerschaltung 47, der das zweite Voraussagefehlersignal mit dem logischen Wert eins zugeführt wird, veranlaßt die Wähler 42 und 62, die korrigierte Adresse des ersten Befehls A1 zu wählen. Die Schleifenbefehle C1 bis C3 werden aufgehoben, da aufgrund der Tatsache, daß der variable Zählwert bereits auf eins vermindert worden ist, die Schleife zu verlassen ist.
  • Im vierten Maschinenzyklus halten die zweite und die dritte Flipflopschaltung 72 und 73 den logischen Wert eins bzw. den logischen Wert null, wie abgebildet. Der logische Wert eins zeigt an, daß das Gültigkeitsbit V mit dem logischen Wert eins in der Verzweigungsarchivtabelle 46 für den zählungsbedingten Verzweigungsbefehl BCT1 auf den logischen Wert null zu korrigieren ist. Der logische Wert null der dritten Flipflopschaltung 73 zeigt an, daß der Vorabruf der Schleifenbefehle auf die Befehle außerhalb der Schleife zu korrigieren ist. Der Vorabruf ist jedoch bereits korrigiert. In diesem Maschinenzyklus wird der zählungsbedingte Verzweigungsbefehl BCT1 in der Operandenlesestufe verarbeitet. Die korrigierte Adresse des ersten Befehls A1 außerhalb der Schleife wird im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird der erste Befehl A1 in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT-SPRUNG-Adresse «A1> +8> eines zweiten Befehls A2 außerhalb der Schleife (nicht dargestellt). Das zweite Voraussagefehlersignal und das Adressentreffersignal werden auf den logischen Wert null geschaltet. Die Befehlsvorabrufsteuerschaltung 47 veranlaßt daher die Wähler 42 und 62, die NICHT-SPRUNG-Adresse des zweiten Befehls A2 zu wählen.
  • Im fünften Maschinenzyklus wird der zählungsbedingte Verzweigungsbefehl BCT1 in der Ausführungsstufe verarbeitet. Der erste Befehl A1 wird in der Befehlsdecodierstufe verarbeitet. Als Reaktion auf die im Befehlsadressenregister 41 gesetzte NICHT-SPRUNG-Adresse wird der zweite Befehl A2 in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT-SPRUNG-Adresse «A1> +16> eines dritten Befehls A3 außerhalb der Schleife (nicht dargestellt). Wie abgebildet, halten die vierte und die fünfte Flipflopschaltüng 74 und 75 den logischen Wert eins bzw. den logischen Wert null, die von der zweiten bzw. der dritten Flipflopschaltung 72 und 73 über die dritte Voraussageprüfschaltung 68 übertragen werden.
  • Obgleich nicht dargestellt, wird das Verzweigungsanzeigesignal mit dem logischen Wert null von der Befehlsausführungseinheit 35 zur vierten Voraussageprüfschaltung 69 und zum zweiten Befehlsadressenwähler 87 übergeben, wenn der zählungsbedingte Verzweigungsbefehl BCT1 in der Ausführungsstufe verarbeitet wird. Dies geschieht deshalb, weil der zählungsbedingte Verzweigungsbefehl BCT1 nicht mehr die wiederholte Ausführung der Schleife anzeigt, wenn der variable Zählwert während der Ausführung des zählungsbedingten Verzweigungsbefehls BCT1 in der Ausführungsstufe auf null vermindert wird. Als Reaktion auf das Verzweigungsanzeigesignal mit dem logischen Wert null übermittelt der zweite Befehlsadressenwähler 87 die nächste Befehlsadresse, die durch den dritten Befehlsadressenaddierer 58 für den ersten Befehl A1 außerhalb der Schleife berechnet wird, der auf der NICHT-SPRUNG-Seite als nächster auf den zählungsbedingten Verzweigungsbefehl BCT1 folgt, als gewählte Adresse zum Adressenrückgewinnungswähler 62 und zum Register 63 für die gewählte Adresse. Zu diesem Zeitpunkt wird dem Anforderungsadressenwähler 42 die Befehlsadresse zugeführt, die im fünften Verzweigungsinformationsregister 55 für den zählungsbedingten Verzweigungsbefehl BCT1 gehalten wird.
  • Gleichfalls im fünften Maschinenzyklus benutzt die vierte Voraussageprüfschaltung 69 das Gültigkeitsbit V, das im vierten Verzweigungsinformationsregister 54 mit dem logischen Wert eins für den zählungsbedingten Verzweigungsbefehl BCT1 gehalten wird, das Verzweigungsanzeigesignal mit dem logischen Wert null und die in der vierten bzw. fünften Flipflopschaltung 74 bzw. 75 gehaltenen logischen Werte eins bzw. null und übergibt das vierte Voraussagefehlersignal mit dem logischen Wert null an die Befehlsvorabrufsteuerschaltung 47 und, wie abgebildet, das BHT-Erneuerungsanzeigesignal mit dem logischen Wert eins an die Befehlsvorabrufsteuerschaltung 47 und die sechste Flipflopschaltung 76. Die Befehlsvorabrufsteuerschaltung 47, an die das BHT-Erneuerungsanzeigesignal mit dem logischen Wert eins angelegt wird, veranlaßt den Anforderungs adressenwähler 42, die durch die Befehlsadresse des zählungsbedingten Verzweigungsbefehls BCT1 gegebene Schreibadresse zu wählen. Der Adressenrückgewinnungswähler 62 wird veranlaßt, die nächste Befehlsadresse des dritten Befehls A3 zu wählen. Wäre in diesem Falle der zweite Befehl A2 ein Verzweigungsbefehl, dann würde als Reaktion auf die NICHT-SPRUNG-Adresse, die dafür im Befehlsadressenregister 41 gesetzt ist, das Adressentreffersignal mit dem logischen Wert eins erzeugt. Die Befehlsvorabrufsteuerschaltung 47 würde den Adressenrückgewinnungswähler 62 veranlassen, die von der Verzweigungsarchivtabeile 46 erzeugte SPRUNG-Adresse zu wählen.
  • Im sechsten Maschinenzyklus hält die sechste Flipflopschaltung 76 den logischen Wert eins des BHT-Erneuerungsanzeigesignais. Das Register 63 für die gewählte Adresse wird mit der gewählten Adresse des ersten Befehls A1 geladen. Das Adressenrückgewinnungsregister 61 wird mit der NICHT-SPRUNG- Adresse «A1> +16> des dritten Befehls A3 geladen. Das Befehlsadressenregister 41 wird mit der Schreibadresse geladen, die gleich der Befehlsadresse des zählungsbedingten Verzweigungsbefehls BCT1 ist. Die Befehlsvorabrufsteuerschaltung 47, der das BHT-Erneuerungsanzeigesignal mit dem logischen Wert eins zugeführt wird, führt die Archivaktualisierungsstufe für den zählungsbedingten Verzweigungsbefehl BCT1 aus. Als Reaktion auf das Schreibanzeigesignal der sechsten Flipflopschaltung 76 wird das Gültigkeitsbit V in der Verzweigungsarchivtabeile 46 unter der Schreibadresse, die durch das Befehlsadressenregister 41 für den zählungsbedingten Verzweigungsbefehl BCT1 angezeigt wird, auf den logischen Wert null geändert. Die gewählte Adresse kann vom Register 63 für die gewählte Adresse zur Verzweigungsarchivtabelle 46 übertragen und unter der Schreibadresse gespeichert werden. Auf diese Weise wird die Verzweigungsarchivtabelle 46 aktualisiert.
  • Gleichfalls im sechsten Maschinenzyklus werden der erste und der zweite Befehl A1 und A2 außerhalb der Schleife in der Operandenadressenerzeugungsstufe bzw. der Befehlsdecodierstufe verarbeitet. Würde das erste Voraussagefehlersignal für den ersten Befehl A1 mit dem logischen Wert eins erzeugt, dann würde die Befehlsvorabrufsteuerschaltung 47 den Adressenrückgewinnungswähler 62 veranlassen, die vom ersten Befehlsadressenaddierer 56 erzeugte erste korrigierte Adresse zu wählen. Der Anforderungsadressenwähler 42 wird veranlaßt, ohne Rücksicht auf das erste Voraussagefehlersignal die Befehlsadresse des zählungsbedingten Verzweigungsbefehls BCT1 zu wählen.
  • Im siebenten Maschinenzyklus werden der erste und der zweite Befehl A1 und A2 außerhalb der Schleife in den Operandenadressenübersetzungs- und -erzeugungsstufen verarbeitet. Die Befehlsadresse des dritten Befehls A3 wird vom Adressenrückgewinnungsregister 61 im Befehlsadressenregister 41 gesetzt. Der dritte Befehl A3 wird in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 erzeugt die NICHT-SPRUNG-Adresse «A1> +24> eines vierten Befehls A4 (nicht dargestellt).
  • Nachstehend wird anhand von Fig. 16 das Befehlsvorabrufgerät beschrieben, wobei wiederum auch auf Fig. 1 Bezug genommen wird. In einem unteren Teil sind sechs Befehle dargestellt. Es wird nun angenommen, daß ein Verzweigungsbefehl B1 entweder ein unbedingter Verzweigungsbefehl UB oder ein anderer Verzweigungsbefehl BC ist, der bei der Verarbeitung in der Ausführungsstufe die SPRUNG-Richtung anzeigt. Ferner wird angenommen, daß trotz einer richtigen Verzweigungsrichtung die Verzweigungsarchivtabelle 46 eine Verzweigungszieladresse als vorausgesagte Zieladresse speichert, die sich von einer SPRUNG-Zieladresse unterscheidet, die man bei der Verarbeitung des Verzweigungsbefehls B1 in der Operandenadressenübersetzungsstufe erhält, nämlich daß in der Befehlsadressenübersetzungsstufe ein Verzweigungszielbefehl C1 mit der vorausgesagten Zieladresse verarbeitet wird. Der Verzweigungszielbefehl C1 wird als erster vorausgesagter Verzweigungsbefehl bezeichnet. Ein Befehl mit der SPRUNG-Zieladresse wird als erster Befehl D1 in Verzweigungsrichtung bezeichnet.
  • Im nullten Maschinenzyklus wird die Befehlsadresse des Verzweigungsbefehls B1 im Befehlsadressenregister 41 gesetzt.
  • Der Verzweigungsbefehl B1 wird in der Befehlslesestufe verar beitet. Der Anforderungsadressenaddierer 45 speist den Anforderungsadressenwähler 42 und den Adressenrückgewinnungswähler 62 mit der NICHT-SPRUNG-Adresse eines bestimmten Befehls, der auf der NICHT-SPRUNG-Seite als nächster auf den Verzweigungsbefehl B1 folgt. Die Verzweigungsarchivtabelle 46 übergibt das Adressentreffersignal mit dem logischen Wert eins an die Befehlsvorabrufsteuerschaltung 47 und speist die Wähler 42 und 62 mit der SPRUNG-Adresse des ersten vorausgesagten Verzweigungsbefehls C1. Als Reaktion auf das Adressentreffersignal mit dem logischen Wert eins veranlaßt die Befehlsvorabrufsteuerschaltung die Wähler 42 und 62, statt der NICHT-SPRUNG- Adresse die SPRUNG-Adresse zu wählen.
  • Im ersten Maschinenzyklus wird der Verzweigungsbefehl B1 in der Befehlsdecodierstufe verarbeitet. Die SPRUNG-Adresse wird im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird der erste vorausgesagte Verzweigungsbefehl C1 in der Befehlslesestufe verarbeitet. Das Adressentreffersignal wird auf den logischen Wert null geschaltet. Der Anforderungsadressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT-SPRUNG-Adresse eines zweiten vorausgesagten Verzweigungsbefehls C2. Als Reaktion auf das Adressentreffersignal mit dem logischen Wert null veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, die NICHT-SPRUNG-Adresse zu wählen.
  • Im zweiten Maschinenzyklus werden der Verzweigungsbefehl B1 und der erste vorausgesagte Verzweigungsbefehl C1 in der Operandenadressenerzeugungsstufe und der Befehlsdecodier stufe verarbeitet. Die NICHT-SPRUNG-Adresse wird im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird der zweite vorausgesagte Verzweigungsbefehl C2 in der Befehlslesestufe verarbeitet. Das Adressentreffersignal wird auf dem logischen Wert null gehalten. Der Anforderungsadressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT- SPRUNG-Adresse eines dritten vorausgesagten Verzweigungsbefehls C3. Als Reaktion auf das Adressentreffersignal mit dem logischen Wert null veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, die NICHT-SPRUNG-Adresse zu wählen.
  • Im dritten Maschinenzyklus werden der Verzweigungsbefehl B1 und der erste und der zweite vorausgesagte Verzweigungsbefehl C1 und C2 in den Operandenadressenübersetzungs- und -erzeugungsstufen und der Befehlsdecodierstufe verarbeitet. Als Reaktion auf die im Befehlsadressenregister 41 gesetzte NICHT-SPRUNG-Adresse wird der dritte vorausgesagte Verzweigungsbefehl C3 in der Befehlslesestufe verarbeitet. Der Anforderungsädressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT-SPRUNG-Adresse eines vierten vorausgesagten Verzweigungsbefehls C4. Die Befehlsvorabrufsteuerschaltung 47 veranlaßt die Wähler 42 und 62, die NICHT-SPRUNG-Adresse zu wählen. Andererseits übergibt die Befehlsadressenübersetzungsschaltung 33 die SPRUNG-Adresse des ersten Verzweigungsrichtungsbefehls D1 an das vierte Verzweigungsinformationsregister 54, die dritte Voraussageprüfschaltung 68 und den ersten Befehlsadressenwähler 86.
  • Wie für den dritten Maschinenzyklus direkt unterhalb der obersten Linie abgebildet, werden das Gültigkeitsbit V mit dem logischen Wert eins und die vorausgesagte Zieladresse des ersten vorausgesagten Verzweigungsbefehls C1 im dritten Verzweigungsinformationsregister 53 gehalten. Die SPRUNG-Zieladresse des ersten Verzweigungsrichtungbefehls D1 wird im vierten Verzweigungsinformationsregister gehalten.
  • Im vierten Maschinenzyklus werden der Verzweigungsbefehl B1 und die ersten bis dritten vorausgesagten Verzweigungsbefehle C1 bis C3 in der Operandenlesestufe, den Operandenadressenübersetzungs- und -erzeugungsstufen bzw. in der Befehlsdecodierstufe verarbeitet. Als Reaktion auf die im Befehlsadressenregister 41 gesetzte NICHT-SPRUNG-Adresse wird der vierte vorausgesagte Verzweigungsbefehl C4 in der Befehlslesestufe verarbeitet. Wie abgebildet, hält die zweite Flipflopschaltung 72 den logischen Wert null, weil weder das erste noch das zweite Voraussagefehlersignal mit dem logischen Wert eins erzeugt wird. Dadurch wird die dritte Voraussageprüfschaltung 68 aktiviert.
  • Die dritte Voraussageprüfschaltung 68 vergleicht nun die vorausgesagte Zieladresse, die für den ersten vorausgesagten Verzweigungsbefehl C1 im dritten Verzweigungsinformationsregister 53 gehalten wird, mit der SPRUNG-Zieladresse, die von der Befehlsadressenübersetzungsschaltung 33 für den ersten Verzweigungsrichtungsbefehl D1 zugeführt wird. Da diese Adressen verschieden sind, übermittelt die dritte Voraussageprüfschaltung 68 das dritte Voraussagefehlersignal mit dem logischen Wert eins, wie abgebildet, zur Befehlsvorabrufsteuerschaltung 47 und übergibt das dritte BHT-Erneuerungssignal und das dritte Vorabrufkorrektursignal, beide mit dem logischen Wert eins, an die vierte bzw. die fünfte Flipflopschaltung 74 bzw. 75. Wie ebenfalls abgebildet, speist das vierte Verzweigungsinformationsregister 54 die Wähler 42 und 62 mit der (dritten) korrigierten Adresse, die gleich der SPRUNG-Zieladresse des ersten Verzweigungsrichtungsbefehls D1 ist. Die Befehlsvorabrufsteuerschaltung 47, der das dritte Voraussagefehlersignal mit dem logischen Wert eins zugeführt wird, veranlaßt die Wähler 42 und 62, die korrigierte Adresse zu wählen. Die ersten bis vierten vorausgesagten Verzweigungsbefehle C1 bis C4 werden aufgehoben.
  • Im fünften Maschinenzyklus halten die vierte und die fünfte Flipflopschaltung 74 und 75 das vierte BHT-Erneuerungssignal und das vierte Vorabrufkorrektursignal, wie abgebildet, beide mit dem logischen Wert eins. Der Verzweigungsbefehl B1 wird in der Ausführungsstufe verarbeitet. Als Reaktion auf die im Befehlsadressenregister 41 gesetzte SPRUNG-Zieladresse wird der erste Verzweigungsrichtungsbefehl D1 in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT-SPRUNG-Adresse «d1> +8> eines zweiten Verzweigungsrichtungsbefehls D2 (nicht dargestellt). Die Befehlsausführungseinheit 35, die den Verzweigungsbefehl B1 verarbeitet, führt der vierten Voraussageprüfschaltung 69 und dem zweiten Befehlsadressenwähler 87 das Verzweigungsanzeigesignal mit dem logischen Wert eins zu, wie abgebildet. Als Reaktion auf das Verzweigungsanzeigesignal mit dem logischen Wert eins speist der zweite Befehlsadressenwähler 87 den Adressenrückgewinnungswähler und das Register 63 für die gewählte Adresse mit der gewählten Adresse, die in diesem Falle gleich der SPRUNG-Zieladresse ist, welche im fünften Verzweigungsinformationsregister 55 für den ersten Verzweigungsrichtungsbefehl D1 gehalten wird. Dem Anforde rungsadressenwähler 62 wird die Befehlsadresse zugeführt, die im fünften Verzweigungsinformationsregister 55 für den Verzweigungsbefehl B1 gehalten wird.
  • Gleichfalls im fünften Maschinenzyklus benutzt die vierte Voraussageprüfschaltung 69 das Gültigkeitsbit V, das im vierten Verzweigungsinformationsregister 54 mit dem logischen Wert eins für den Verzweigungsbefehl B1 gehalten wird, das Verzweigungsanzeigesignal mit dem logischen Wert eins und die in der vierten und der fünften Flipflopschaltung 74 und 75 gehaltenen logischen Werte eins und übergibt das vierte Voraussagefehlersignal mit dem logischen Wert null an die Befehlsvorabrufsteuerschaltung 47, wie abgebildet, und das BHT-Erneuerungsanzeigesignal mit dem logischen Wert eins an die Befehlsvorabrufsteuerschaltung 47 und die sechste Flipflopschaltung 76, wie gleichfalls abgebildet. Da das vierte Voraussagefehlersignal den logischen Wert null hat, reagiert die Befehlsvorabrufsteuerschaltung 47 auf das Adressentreffersignal mit dem logischen Wert null, indem es die Wähler 42 und 62 veranlaßt, die NICHT-SPRUNG-Adresse des zweiten Verzweigungsrichtungsbefehls D2 zu wählen. Als Reaktion auf das BHT-Erneuerungsanzeigesignal mit dem logischen Wert eins veranlaßt die Befehlsvorabrufsteuerschaltung 47 den Adressenrückgewinnungswähler 62, die NICHT-SPRUNG-Adresse des zweiten Verzweigungsrichtungsbefehl D2 zu wählen. Wenn der erste Verzweigungsrichtungsbefehl D1 wieder ein Verzweigungsbefehl ist, dann veranlaßt das Adressentreffersignal mit dem logischen Wert eins den Adressenrückgewinnungswähler 62, die SPRUNG- Zieladresse zu wählen, die von der Verzweigungsarchivtabelle 46 für einen bestimmten Verzweigungszielbefehl erzeugt wird, der durch den ersten Verzweigungsrichtungsbefehl D1 angezeigt wird.
  • Im sechsten Maschinenzyklus hält die sechste Flipflopschaltung 76 den logischen Wert eins des BHT-Erneuerungsanzeigesignals. Das Register 63 für die gewählte Adresse wird mit der gewählten Adresse geladen, die gleich der Befehlsadresse des ersten Verzweigungsrichtungsbefehls D1 ist. Das Adressenrückgewinnungsregister 61 wird mit der NICHT-SPRUNG-Adresse des zweiten Verzweigungsrichtungsbefehls D2 geladen. Das Be fehlsadressenregister 41 wird mit der Schreibadresse geladen, die gleich der Befehlsadresse des Verzweigungsbefehls B1 ist. Die Befehlsvorabrufsteuerschaltung 47, der das BHT-Erneuerungsanzeigesignal mit dem logischen Wert eins zugeführt wurde, führt die Archivaktualisierungsstufe am Verzweigungsbefehl B1 aus. Als Reaktion auf das Schreibanzeigesignal der sechsten Flipflopschaltung 76 wird die gewählte Adresse vom Register 63 für die gewählte Adresse zur Verzweigungsarchivtabelle 46 übertragen und unter der vom Befehlsadressenregister 41 angezeigten Schreibadresse gespeichert. Das Gültigkeitsbit V wird unter der Schreibadresse auf dem logischen Wert eins gehalten. Der erste Verzweigungsrichtungsbefehl D1 wird in der Befehlsdecodierstufe verarbeitet.
  • Im siebenten Maschinenzyklus wird der erste Verzweigungsrichtungsbefehl D1 in der Operandenadressenerzeugungsstufe verarbeitet. Die Defehlsadresse des zweiten Verzweigungsrichtungsbefehls D2 wird vom Adressenrückgewinnungsregister 61 im Befehlsadressenregister 41 gesetzt. Der zweite Verzweigungsrichtungsbefehl wird in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 berechnet die NICHT-SPRUNG-Adresse «D1> +16> eines dritten Verzweigungsrichtungsbefehls D3 (nicht dargestellt).
  • Nachstehend wird das Befehlsvorabrufgerät anhand von Fig. 17 beschrieben, wobei wiederum auf Fig. 1 Bezug genommen wird. In einem unteren Teil sind sieben Befehle dargestellt. Es wird angenommen, daß ein bedingter Verzweigungsbefehl CB1 eine Verzweigungszieladresse eines ersten angezeigten Verzweigungsbefehls C1 anzeigt, daß die Verzweigungsarchivtabelle 46 eine Verzweigunqszieladresse eines vorausgesagten Verzweigungsbefehls D1 für den bedingten Verzweigungsbefehl CB1 an zeigt, und daß die Verzweigungsbedingung die NICHT-SPRUNG- Richtung nach der Ausführungsstufe des bedingten Verzweigungsbefehls CB1 anzeigt, mit dem Ergebnis, daß unmittelbar anschließend an den bedingten Verzweigungsbefehl CB1 tatsächlich ein erster NICHT-SPRUNG-Befehl A1 zu verarbeiten ist.
  • Im nullten Maschinenzyklus wird die Befehlsadresse des bedingten Verzweigungsbefehls CB1 im Befehlsadressenregister 41 gesetzt. Der bedingte Verzweigungsbefehl CB1 wird in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer speist den Anforderungsadressenwähler 42 und den Adressenrückgewinnungswähler 62 mit der NICHT-SPRUNG-Adresse des ersten NICHT-SPRUNG-Befehls A1. Die Verzweigungsarchivtabelle 46 übergibt das Adressentreffersignal mit dem logischen Wert eins an die Befehlsvorabrufsteuerschaltung 47 und speist die Wähler 42 und 62 mit der SPRUNG-Adresse des ersten angezeigten Verzweigungsbefehls C1. Als Reaktion auf das Adressentreffersignal mit dem logischen Wert eins veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, statt der NICHT- SPRUNG-Adresse die SPRUNG-Adresse zu wählen.
  • Im ersten Maschinenzyklus wird der bedingte Verzweigungsbefehl CB1 in der Befehlsdecodierstufe verarbeitet. Die SPRUNG-Adresse wird im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird der erste angezeigte Verzweigungsbefehl C1 in der Befehlslesestufe verarbeitet. Das Adressentreffersignal wird auf den logischen Wert null geschaltet. Der Anforderungsadressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT-SPRUNG-Adresse eines zweiten angezeigten Verzweigungsbefehls C2. Als Reaktion auf das Adressentreffersignal mit dem logischen Wert null veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, die NICHT-SPRUNG-Adresse zu wählen.
  • Im zweiten Maschinenzyklus werden der bedingte Verzweigungsbefehl CB1 und der erste angezeigte Verzweigungsbefehl C1 in der Operandenadressenerzeugungsstufe bzw. der Befehlsdecodierstufe verarbeitet. Die NICHT-SPRUNG-Adresse wird im Befehlsadressenregister 41 und im Adressenrückgewinnungsregister 61 gesetzt. Als Reaktion auf den Inhalt des Befehlsadressenregisters 41 wird der zweite angezeigte Verzweigungsbefehl C2 in der Befehlslesestufe verarbeitet. Das Adressentreffersignal wird auf dem logischen Wert null gehalten. Der Anforderungsadressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT- SPRUNG-Adresse eines dritten angezeigten Verzweigungsbefehls C3. Als Reaktion auf das Adressentreffersignal mit dem logischen Wert null veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, die NICHT-SPRUNG-Adresse zu wählen.
  • Im dritten Maschinenzyklus werden der bedingte Verzweigungsbefehl CB1 und der erste sowie der zweite angezeigte Verzweigungsbefehl C1 und C2 in den Operandenadressenübersetzungs- und -erzeugungsstufen und der Befehlsdecodierstufe ver arbeitet. Als Reaktion auf die im Befehlsadressenregister 41 gesetzte NICHT-SPRUNG-Adresse wird der dritte angezeigte Verzweigungsbefehl C3 in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 speist die Wähler 42 und 62 mit der NICHT-SPRUNG-Adresse eines vierten angezeigten Verzweigungsbefehls C4. Die Befehlsvorabrufsteuerschaltung 47 veranlaßt die Wähler 42 und 62, die NICHT-SPRUNG-Adresse zu wählen. Andererseits führt die Befehlsadressenübersetzungsschaltung 33 die SPRUNG-Zieladresse des vorausgesagten Verzweigungsbefehls D1 dem vierten Verzweigungsinformationsregister 54, der dritten Voraussageprüfschaltung 68 und dem ersten Befehlsadressenwähler 86 zu.
  • Wie für den dritten Maschinenzyklus in der Nähe der obersten Linie abgebildet, werden das Gültigkeitsbit V mit dem logischen Wert eins und die vorausgesagte Zieladresse des ersten angezeigten Verzweigungsbefehls C1 im dritten Verzweigungsinformationsregister 53 gehalten. Die SPRUNG-Zieladresse des vorausgesagten Verzweigungsbefehls D1 wird im vierten Verzweigungsinformationsregister 54 gehalten.
  • Im vierten Maschinenzyklus werden der bedingte Verzwei gungsbefehl CB1 und die ersten bis dritten angezeigten Verzweigungsbefehle C1 bis C3 in der Operandenlesestufe, den Operandenadressenübersetzungs- und -erzeugungsstufen und der Befehlsdecodierstufe verarbeitet. Als Reaktion auf die im Befehlsadressenregister 41 gesetzte NICHT-SPRUNG-Adresse wird der vierte angezeigte Verzweigungsbefehl C4 in der Befehlslesestufe verarbeitet. Zu beachten ist, daß weder das erste noch das zweite Voraussagefehlersignal mit dem logischen Wert eins erzeugt wird. Die zweite Flipflopschaltung 72 hält daher den logischen Wert null, wodurch die dritte Voraussageprüfschaltung 68 aktiviert wird. Als Reaktion auf das im dritten Verzweigungsinformationsregister 53 gehaltene Gültigkeitsbit V, die im dritten Verzweigungsinformationsregister 53 gehaltene vorausgesagte Zieladresse für den ersten angezeigten Verzweigungsbefehl C1 und die von der Befehlsadressenübersetzungsschaltung 33 für den vorausgesagten Verzweigungsbefehl D1 zugeführte SPRUNG-Zieladresse übermittelt, wie abgebildet, die dritte Voraussageprüfschaltung 68 das dritte Voraussagefehlersignal mit dem logischen Wert eins zur Befehlsvorabrufsteuerschaltung 47. Obgleich nicht abgebildet, werden das dritte BHT-Erneuerungssignal und das dritte Vorabrufkorrektursignal, gleichfalls mit dem logischen Wert eins, an die vierte und die fünfte Flipflopschaltung 74 und 75 übergeben.
  • Gleichfalls im vierten Maschinenzyklus wird die SPRUNG- Zieladresse des vorausgesagten Verzweigungsbefehls D1 im vierten Verzweigungsinformationsregister 54 gehalten und von dort, wie abgebildet, den Wählern 42 und 62 als (zweite) korrigierte Adresse zugeführt. Das Gültigkeitsbit V mit dem logischen Wert eins wird vom vierten Verzweigungsinformationsregister 54 zur vierten Voraussageprüfschaltung 69 übergeben. Als Reaktion auf das dritte Voraussagefehlersignal mit dem logischen Wert eins veranlaßt die Befehlsvorabrufsteuerschaltung 47 die Wähler 42 und 62, die korrigierte Adresse zu wählen. Die ersten bis vierten angezeigten Verzweigungsbefehle C1 bis C4 werden aufgehoben.
  • Im fünften Maschinenzyklus halten die vierte und die fünfte Flipflopschaltung 74 und 75 das BHT-Erneuerungssignal und das dritte Vorabrufkorrektursignal, beide mit dem logischen Wert eins, wie abgebildet. Der bedingte Verzweigungsbefehl CB1 wird in der Ausführungsstufe verarbeitet. Als Reaktion auf die NICHT-SPRUNG-Adresse, die im Befehlsadressenregister 41 als gewählte Adresse gesetzt ist, wird der vorausgesagte Verzweigungsbefehl D1 in der Befehlslesestufe verarbeitet. Der Anforderungsadressenwähler 45 speist die Wähler 42 und 62 mit der NICHT-SPRUNG-Adresse eines Befehls, der als nächster auf den vorausgesagten Verzweigungsbefehl D1 folgt. Die Befehlsausführungseinheit 35, die den bedingten Verzweigungsbefehl CB1 verarbeitet, speist die vierte Voraussageprüfschaltung 69 und den zweiten Befehlsadressenwähler 87 mit dem Verzweigungsanzeigesignal, das die NICHT-SPRUNG-Richtung durch den logischen Wert null anzeigt, wie abgebildet.
  • Gleichfalls im fünften Maschinenzyklus übermittelt die vierte Voraussageprüfschaltung 69 das vierte Voraussagefehlersignal mit dem logischen Wert eins, wie abgebildet, zur Befehlsvorabrufsteuerschaltung 47. Das BHT-Erneuerungsanzeigesignal wird an die Befehlsvorabrufsteuerschaltung 47 und die sechste Flipflopschaltung mit dem logischen Wert eins übergeben, wie gleichfalls abgebildet. Dies ist darauf zurückzuführen, daß der vierten Voraussageprüfschaltung 69 das Gültigkeitsbit V mit dem logischen Wert eins vom vierten Verzweigungsinformationsregister 54, das Verzweigungsanzeigesignal mit dem logischen Wert null und die in der vierten und der fünften Flipflopschaltung 74 und 75 gehaltenen logischen Werte eins zugeführt werden.
  • Bezüglich des fünften Maschinenzyklus wird das Verzweigungsanzeigesignal jetzt als viertes Vorabrufkorrektursignal verwendet. Als Reaktion auf das Verzweigungsanzeigesignal mit dem logischen Wert null speist der zweite Befehlsadressenwähler 87 den Adressenrückgewinnungswähler 62 und das Register 63 für die gewählte Adresse mit der gewählten Adresse, die gleich der NICHT-SPRUNG-Zieladresse ist, die vom dritten Be fehlsadressenaddierer 58 für den ersten NICHT-SPRUNG-Befehl A1 berechnet wird, wie abgebildet. Der Anforderungsadressenwähler 42 wird mit der Befehlsadresse gespeist, die im fünften Verzweigungsinformationsregister 55 für den bedingten Verzweigungsbefehl CB1 gehalten wird. Als Reaktion auf das vierte Voraussagefehlersignal mit dem logischen Wert eins veranlaßt die Befehlsvorabrufsteuerschaltung 47 den Anforderungsadressenwähler 42, die Befehlsadresse des bedingten Verzweigungsbefehls CB1 als Schreibadresse zu wählen, und veranlaßt außerdem den Adressenrückgewinnungswähler 62, die gewählte Adresse des ersten NICHT-SPRUNG-Befehls A1 zu wählen.
  • Im sechsten Maschinenzyklus hält das Register 63 für die gewählte Adresse die gewählte Adresse des ersten NICHT- SPRUNG-Befehls A1, wie abgebildet. Die gewählte Adresse wird im Adressenrückgewinnungsregister 61 gesetzt, wie gleichfalls abgebildet. Die gewählte Adresse wird daher an den Anforderungsadressenwähler 42 übergeben. Im Befehlsadressenregister 41 wird die Schreibadresse gesetzt. Nach Zuführung des Schreibanzeigesignals von der sechsten Flipflopschaltung 76 wird der bedingte Verzweigungsbefehl CB1 in der Archivaktualisierungsstufe verarbeitet. Genauer gesagt, das Gültigkeitsbit V wird in der Verzweigungsarchivtabelle 46 unter der Schreibadresse auf den logischen Wert null zurückgesetzt. Die gewählte Adresse kann zur Verzweigungsarchivtabelle 46 übertragen und unter der Schreibadresse gespeichert werden. Die Befehlsvorabrufsteuerschaltung 47, der das BHT-Erneuerungsanzeigesignal mit dem logischen Wert eins zugeführt wird, veranlaßt den Anforderungsadressenwähler 42, die gewählte Adresse des ersten NICHT-SPRUNG-Befehls A1 zu wählen.
  • Im siebenten Maschinenzyklus wird die gewählte Adresse im Befehlsadressenregister 41 gesetzt. Der erste NICHT-SPRUNG- Befehl A1 wird in der Befehlslesestufe verarbeitet. Der Anforderungsadressenaddierer 45 berechnet die NICHT-SPRUNG- Adresse «A1> +8> eines zweiten NICHT-SPRUNG-Befehls A2 (nicht dargestellt).
  • Im folgenden wird schließlich anhand von Fig. 18 ein Befehlsvorabrufgerät nach einem zweiten Ausführungsbeispiel der Erfindung beschrieben. Anstelle des in Fig. 1 abgebildeten Komparators 86 wird ein Subtrahierglied 248 verwendet. Genauer gesagt, das Subtrahierglied 248 wird über die Zählwertleitung 84 mit dem variablen Zählwert gespeist und subtrahiert die Zahl eins von dem variablen Zählwert, um ein Signal "Zählwert null" an die zweite Voraussageprüfschaltung 67 zu übergeben. Das Signal "Zählwert null" erhält den logischen Wert null, wenn nicht der variable Zählwert genau gleich eins ist. Wenn der variable Zählwert auf eins vermindert wird, dann erhält das Signal "Zählwert null" den logischen Wert eins. Es ist leicht einzusehen, daß das Befehlsvorabrufgerät auf die bisher beschriebene Weise betriebsfähig ist. Ebenso wie der Komparator 85 kann das Subtrahierglied 248 als Teil der zweiten Voraussageprüfschaltung 67 angesehen werden.
  • Aus dem vorstehenden ist erkennbar, daß eine Kombination aus der Befehlsvorabrufsteuerschaltung 47, dem Anforderungsadressenwähler 42, den Befehlsadressenaddierern 56 bis 58 und den Befehlsadressenwählern 86 und 87 zweckmäßig als Befehlsvorabrufsteueranordnung oder -schaltung betrachtet werden kann. Es kann eingeschätzt werden, daß ein Befehlsvorabrufgerät mindestens eine der ersten bis dritten Voraussageprüfschaltungen 66 bis 68 gemäß der vorliegenden Erfindung aufweisen kann. Selbst in diesem Falle wird ein Fehler in den Einträgen der Verzweigungsarchivtabelle 46 im voraus in einer der Stufen erfaßt, die vor der Ausführungsstufe liegt.

Claims (26)

1. Befehlsvorabrufgerät, das zur Verwendung in einem Datenverarbeitungssystem dient, wobei das Gerät aufweist:
a) eine Verzweigungsarchivtabelleneinrichtung (46) zum Speichern mehrerer Paare, wobei jedes Paar eine Adresseninformation für einen Verzweigungsbefehl und eine Verzweigungsinformation mit einer Verzweigungszieladresse für den Verzweigungsbefehl aufweist;
b) eine erste Prüfeinrichtung (46), die bei der Ausführung einer Befehlsvorabrufoperation prüfen soll, ob in der Verzweigungsarchivtabelleneinrichtung die Adresseninformation für den Befehl gespeichert ist, der gerade vorabgerufen wird; und
c) eine zweite Prüfeinrichtung (36), die prüfen soll, ob der durch die Befehlsvorabrufoperation vorabgerufene Befehl ein Verzweigungsbefehl ist oder nicht;
gekennzeichnet durch:
d) eine Voraussageprüfeinrichtung (66) zum Erzeugen eines Voraussagefehlersignals, (i) wenn die erste Prüfeinrichtung (46) das Signal erzeugt, welches das Vorhandensein einer Information zur Bezeichnung der Adresse des vorabgerufenen Befehls anzeigt, und (ii) wenn die zweite Prüfeinrichtung (36) das Signal erzeugt, welches das Vorhandensein einer Information anzeigt, daß der vorabgerufene Befehl kein Verzweigungsbefehl ist; und
e) eine Befehlsvorabrufsteuereinrichtung (47) (i) zum Steuern der Befehlsvorabrufoperation, so daß diese fortgesetzt wird, wenn die erste Prüfeinrichtung nicht das Signal erzeugt, welches das Vorhandensein einer Information zur Bezeichnung der Adresse des vorabgerufenen Befehls anzeigt, (ii) zum Steuern der Befehlsvorabrufoperation durch die Information zur Bezeichnung der Verzweigungszieladresse, die in der Verzweigungsarchivtabelleneinrichtung (46) mit der Adresse des vorabgerufenen Befehls gepaart ist, wenn die erste Prüfeinrichtung das Signal erzeugt, welches das Vorhandensein einer Information zur Bezeichnung der Adresse des vorabgeruf enen Befehls anzeigt, und (iii) zum Steuern der Vorabrufoperation des Befehls, der durch die Adresse des vorabgerufenen Befehls vor dem Umschalten zur Verzweigungszieladresse aus der Verzweigungsarchivtabelle bezeichnet wird, wenn die Voraussageprüfeinrichtung (66) ein Voraussagefehlersignal erzeugt.
2. Befehlsvorabrufgerät zur Verwendung in einem Datenverarbeitungssystem mit Befehlsadressenerzeugungsschaltungen (32 und 33) zum Erzeugen einer Verzweigungszieladresse eines Verzweigungsbefehls, wobei das Gerät aufweist:
a) eine Verzweigungsarchivtabelleneinrichtung (46) zum Speichern mehrerer Paare, wobei jedes Paar eine Adresseninformation für einen Verzweigungsbefehl und eine Verzweigungsinformation mit einer Verzweigungszieladresse für den Verzweigungsbefehl aufweist;
b) eine erste Prüfeinrichtung (46), die bei der Ausführung einer Befehlsvorabrufoperation prüfen soll, ob in der Verzweigungsarchivtabelleneinrichtung die Adresseninformation für den vorabgeruf enen Befehl gespeichert ist oder nicht; und
c) eine zweite Prüfeinrichtung (36), die prüfen soll, ob der durch die Befehlsvorabrufoperation vorabgeruf ene Befehl ein unbedingter Verzweigungsbefehl ist oder nicht;
gekennzeichnet durch:
d) eine Voraussageprüfeinrichtung (83, 67) zum Erzeugen eines Voraussagefehlersignals, wenn die erste Prüfeinrichtung (46) das Signal erzeugt, welches das Fehlen einer Information zur Bezeichnung der Adresse des vorabgerufenen Befehls anzeigt, und wenn die zweite Prüfeinrichtung (36) das Signal erzeugt, welches anzeigt, daß der vorabgerufene Befehl ein unbedingter Verzweigungsbefehl ist; und
e) eine Befehlsvorabrufsteuereinrichtung (47) (i) zum Steuern der Befehlsvorabrufoperation, so daß diese fortgesetzt wird, wenn die erste Prüfeinrichtung nicht das Signal erzeugt, welches das Vorhandensein einer Information zur Bezeichnung der Adresse des vorabgerufenen Befehls anzeigt, (ii) zum Steuern der Befehlsvorabrufoperation durch die Information zur Bezeichnung der Verzweigungszieladresse, die in der Verzweigungsarchivtabelleneinrichtung (46) mit der Adresse des vorabzurufenden Befehls gepaart ist, wenn die erste Prüfeinrichtung das Signal erzeugt, welches das Vorhandensein einer Information zur Bezeichnung der Adresse des vorabgerufenen Befehls anzeigt, und (iii) zum Steuern der Vorabrufoperation des Befehls, der durch die Verzweigungszieladresse des vorabgerufenen unbedingten Verzweigungsbefehls bezeichnet wird, welche von den Befehlsadressenerzeugungsschaltungen (32 und 33) übergeben wird, wenn die Voraussageprüfeinrichtung (67) das Voraussagefehlersignal erzeugt.
3. Befehlsvorabrufgerät zur Verwendung in einem Datenverarbeitungssystem mit Befehlsadressenerzeugungsschaltungen (32 und 33) zum Erzeugen einer Verzweigungszieladresse eines Verzweigungsbefehls, wobei das System eine Befehlsausführungsschaltung zum Zählen eines von einem spezifizierten Mehrzweckregister gehaltenen Wertes aufweist und einen zählungsbedingten Verzweigungsbefehl ausführt, indem es über das Vorhandensein bzw. Fehlen einer Verzweigung entsprechend dem Ergebnis der Zählung entscheidet, die von der Befehlsausführungsschaltung ausgeführt wird, wobei das Befehlsvorabrufgerät aufweist:
a) eine Verzweigungsarchivtabelleneinrichtung (46) zum Speichern von Paaren, deren jedes eine Information, die eine Adresse eines Verzweigungsbefehls anzeigt, sowie eine Verzweigungsinformation mit einer Verzweigungszieladresse für den Verzweigungsbefehl aufweist;
b) eine erste Prüfeinrichtung (46), die beim Ausführen einer Befehlsvorabrufinformation prüfen soll, ob die Information, welche die Adresse eines durch die Befehlsvorabrufoperation vorabgerufenen Befehls anzeigt, in der Verzweigungsarchivtabelleneinrichtung gespeichert ist oder nicht;
c) eine zweite Prüfeinrichtung (85) zum vorbereitenden Prüfen des Wertes, wenn der durch die Befehlsvorabrufoperation vorabgerufene Befehl ein Verzweigungsbefehl ist und bevor die Zählung durch die Befehlsausführungsschaltung ausgeführt wird, um über das Vorhandensein bzw. Fehlen der Verzweigung zu entscheiden;
gekennzeichnet durch:
d) eine Voraussageprüfeinrichtung (67) (i) zum Erzeugen eines Voraussagefehlersignals, wenn die erste Prüfeinrichtung (46) das Signal erzeugt, welches das Vorhandensein einer Information zur Bezeichnung der Adresse des vorabgeruf enen Befehls anzeigt, und wenn die zweite Prüfeinrichtung (85) das Signal erzeugt, welches das Ergebnis anzeigt, daß der zählungsbedingte Verzweigungsbefehl nicht die Verzweigungsoperation ausführt, und (ii) zum Erzeugen eines Voraussagefehlersignals, wenn die erste Prüfeinrichtung (46) das Signal erzeugt, welches das Fehlen einer Information zur Bezeichnung der Adresse des vorabgerufenen Befehls anzeigt, und wenn die zweite Prüfeinrichtung (85) das Signal erzeugt, welches das Ergebnis anzeigt, daß der zählungsbedingte Verzweigungsbefehl die Verzweigungsoperation ausführt, und
e) eine Befehlsvorabrufsteuereinrichtung (47) (i) zum Steuern der Befehlsvorabrufoperation, so daß diese fortgesetzt wird, wenn die erste Prüfeinrichtung nicht das Signal erzeugt, welches das Vorhandensein einer Information zur Bezeichnung der Adresse des vorabgerufenen Befehls anzeigt, (ii) zum Steuern der Befehlsvorabrufoperation durch die Information zur Bezeichnung der Verzweigungszieladresse, die in der Verzweigungsarchivtabelleneinrichtung (46) mit der Adresse des vorabgerufenen Befehls gepaart ist, wenn die erste Prüfeinrichtung das Signal erzeugt, welches das Vorhandensein der Information zur Bezeichnung der Adresse des vorabgeruf enen Befehls anzeigt, (iii) zum Steuern der Vorabrufoperation eines Befehls, der durch die Adresse des vorabgerufenen Befehls vor dem Umschalten zur Verzweigungszieladresse aus der Verzweigungsarchivtabelle bezeichnet wird, wenn die Voraussageprüfeinrichtung (67) ein Voraussagefehlersignal erzeugt und wenn die zweite Prüfeinrichtung (85) das Signal erzeugt, welches das Ergebnis anzeigt, daß der zählungsbedingte Verzweigungsbefehl nicht die Verzweigungsoperation ausführt, und (iv) zum Steuern der Vorabrufoperation eines Befehls, der durch die Verzweigungszieladresse eines vorabgerufenen zählungsbedingten Verzweigungsbefehls bezeichnet wird, welche von den Befehlsadressenerzeugungsschaltungen (32 und 33) übergeben wird, wenn die Voraussageprüfeinrichtung (67) das Voraussagefehlersignal erzeugt und wenn die zweite Prüfeinrichtung das Signal erzeugt, welches das Ergebnis anzeigt, daß der zählungsbedingte Verzweigungsbefehl die Verzweigungsoperation ausführt.
4. Befehlsvorabrufgerät zur Verwendung in einem Datenverarbeitungssystem mit den Befehlsadressenerzeugungsschaltungen (32 und 33) zum Erzeugen einer Verzweigungszieladresse eines Verzweigungsbefehls, wobei das Gerät aufweist:
a) eine Verzweigungsarchivtabelleneinrichtung (46) zum Speichern mehrerer Paare, wobei jedes Paar eine Adresseninformation, die eine Adresse eines Verzweigungsbefehls anzeigt, und eine Verzweigungsinformation mit einer Verzweigungszieladresse für den Verzweigungsbefehl aufweist;
b) eine erste Prüfeinrichtung (46), die beim Ausführen einer Befehlsvorabrufoperation prüfen soll, ob die Adresseninformation, die eine Adresse eines Befehls anzeigt, der bei der Befehlsvorabrufoperation vorabgerufen wird, in der Verzweigungsarchivtabelleneinrichtung gespeichert ist oder nicht; und
c) eine zweite Prüfeinrichtung (68), die vor der Beur teilung einer Verzweigungsbedingung des vorabgeruf enen Befehls prüfen soll, ob die Information, welche die Verzweigungszieladresse in der dem vorabgerufenen Befehl entsprechenden Verzweigungsinformation anzeigt, richtig ist oder nicht:
gekennzeichnet durch:
d) eine Befehlsvorabrufsteuereinrichtung (47) (i) zum Steuern der Befehlsvorabrufoperation, so daß diese fortgesetzt wird, wenn die erste Prüfeinrichtung nicht das Signal erzeugt, welches das Vorhandensein der Information zur Bezeichnung der Adresse des vorabgerufenen Befehls anzeigt, (ii) zum Steuern der Befehlsvorabrufoperation durch die Information zur Bezeichnung der Verzweigungszieladresse, die in der Verzweigungsarchivtabelleneinrichtung (46) mit der Adresse des vorabgerufenen Befehls gepaart ist, wenn die erste Prüfeinrichtung das Signal erzeugt, welches das Vorhandensein der Information zur Bezeichnung der Adresse des vorabgerufenen Befehls anzeigt, und (iii) zum Steuern der Vorabrufoperation des Befehls, der durch die Verzweigungszieladresse des vorabgerufenen Verzweigungsbefehls bezeichnet wird, welche von den Befehlsadressenerzeugungsschaltungen (32 und 33) übergeben wird, wenn die zweite Prüfeinrichtung (68) das Voraussagefehlersignal erzeugt.
5. Befehlsvorabrufgerät zur Verwendung in einem Datenverarbeitungssystem, das unter Pipeline-Steuerung betreibbar ist, indem die Ausführung einer Befehlsfolge in mehrere Stufen unterteilt und mehrere Befehle gleichzeitig ausgeführt werden, wobei das Datenverarbeitungssystem Befehlsadressenerzeugungsschaltungen (32 und 33) zum Erzeugen einer Verzweigungszieladresse eines Verzweigungsbefehls aufweist, wobei das Befehlsvorabrufgerät aufweist:
a) eine Verzweigungsarchivtabelleneinrichtung (46) zum Speichern mehrerer Paare, wobei jedes Paar eine Adresseninformation für einen Verzweigungsbefehl und eine Verzweigungsinformation mit einer Verzweigungszieladresse für den Verzweigungsbefehl aufweist; und
b) eine erste Prüfeinrichtung (46), die beim Ausführen einer Befehlsvorabrufoperation prüfen soll, ob die Adresseninformation für den vorabgeruf enen Befehl in der Verzweigungsarchivtabelleneinrichtung gespeichert ist oder nicht;
gekennzeichnet durch:
c) eine Voraussageprüfeinrichtung (66, 67, 68, 69, 71, 72, 73, 74, 75) (i) zum Erzeugen eines Voraussagefehlersignals, falls die dem vorabgerufenen Befehl entsprechende Verzweigungsinformation in mehreren Stufen, die Flipflop-Gruppen aufweisen, geprüft und als falsch beurteilt wird, (ii) zum Erzeugen eines SPRUNG-Vorabrufbezeichnungssignals, nachdem geprüft wurde, ob die Verzweigungsinformation zur SPRUNG-Richtung geändert wird, um den Wert der Flipflop-Gruppe in der nächsten Stufe zu setzen, (iii) zum Steuern der Nichterzeugung des Voraussagefehlersignals in der Stufe nach der Prüfung, falls beim Vorabruf der Verzweigungsinformation die NICHT- SPRUNG-Information als richtig beurteilt wird, nachdem auf der Basis der Verzweigungsinformation, die dem Verzweigungsbefehl entspricht, der als Reaktion auf das Ausgangssignal der Flipflop-Gruppe aus der Verzweigungsarchivtabelle vorabzurufen ist, der SPRUNG vorausgesagt wurde, und (iv) zum Steuern der Erzeugung des Voraussagefehlersignals, wenn ausschließlich in dem Falle, daß in der Stufe nach der Prüfung die NICHT-SPRUNG- Information als richtig beurteilt wird, beim Prüfen der Verzweigungsadresse diese Verzweigungszieladresse beim Vorabruf der Verzweigungsinformation als falsch beurteilt wird, nachdem auf der Basis der Verzweigungsinformation, die dem Verzweigungsbefehl entspricht, der als Reaktion auf das Ausgangssignal der Flipflop-Gruppe aus der Verzweigungsarchivtabelle abzurufen ist, der SPRUNG vorausgesagt wurde; und
d) eine Befehlsvorabrufsteuereinrichtung (47) (i) zum Steuern der Fortsetzung der Befehlsvorabrufoperation, wenn die erste Prüfeinrichtung nicht das Signal erzeugt, welches das Vorhandensein der Information zur Bezeichnung der Adresse des vorabgerufenen Befehls anzeigt, (ii) zum Steuern des Vorabrufs des Befehls, der durch die Verzweigungszieladresse des vorabgerufenen Verzweigungsbefehls bezeichnet wird, welche von den Befehlsadressenerzeugungsschaltungen (32 und 33) übergeben wird, wenn die Voraussageprüfeinrichtung (66, 67, 68, 69, 71, 72, 73, 74, 75) das Voraussagefehlersignal und das SPRUNG-Vorabrufbezeichnungssignal erzeugt, und (iii) zum Steuern der Vorabrufoperation des Befehls, der durch die Adresse des vorabgerufenen Befehls vor dem Umschalten zur Verzweigungszieladresse aus der Verzweigungsarchivtabelle bezeichnet wird, wenn die Voraussageprüfeinrichtung (66, 67, 68, 69, 71, 72, 73, 74, 75) nur das Voraussagefehlersignal erzeugt.
6. Befehlsvorabrufgerät zur Verwendung in einem Datenverarbeitungssystem, das eine Befehlsausführungsschaltung zum Zählen eines von einem spezifizierten Mehrzweckregister gehaltenen Wertes aufweist und einen zählungsbedingten Verzweigungsbefehl ausführt, indem es über das Vorhandensein bzw. Fehlen einer Verzweigung entsprechend dem Ergebnis der Zählung entscheidet, die von der Befehlsausführungsschaltung ausgeführt wird, wobei das Befehlsvorabrufgerät aufweist:
a) eine Verzweigungsarchivtabelleneinrichtung (46) zum Speichern von Paaren, deren jedes eine Information, die eine Adresse eines Verzweigungsbefehls anzeigt, sowie eine Verzweigungsinformation mit einer Verzweigungszieladresse für den Verzweigungsbefehl aufweist; und
b) eine erste Prüfeinrichtung (46), die beim Ausführen einer Befehlsvorabrufinformation prüfen soll, ob die Information, welche die Adresse eines durch die Befehlsvorabrufoperation vorabgerufenen Befehls anzeigt, in der Verzweigungsarchivtabelleneinrichtung gespeichert ist oder nicht;
gekennzeichnet durch:
c) eine Recheneinrichtung (248 in Fig. 18) zum vorbereitenden Ausführen einer Rechenoperation vor der durch die Befehlsausführungsschaltung ausgeführten Zählung, wenn der durch die Vorabrufoperation vorabgerufene Befehl ein zählungsbedingter Verzweigungsbefehl ist;
d) eine zweite Prüfeinrichtung (36) zum Prüfen des Vorhandenseins bzw. des Fehlens einer Verzweigung als Reaktion auf ein Ergebnis der durch die Recheneinrichtung ausgeführten Rechenoperation;
e) eine Voraussageprüfeinrichtung (66) zum Erzeugen eines Voraussagefehlersignals, (i) wenn die erste Prüfeinrichtung (46) das Signal erzeugt, welches das Vorhandensein der Information zur Bezeichnung der Adresse des vorabgerufenen Befehls anzeigt, und (ii) wenn die zweite Prüfeinrichtung (36) das Signal erzeugt, welches das Vorhandensein der Information anzeigt, daß der vorabgerufene Befehl kein Verzweigungsbefehl ist; und
f) eine Befehlsvorabrufsteuereinrichtung (47) (i) zum Steuern der Fortsetzung der Befehlsvorabrufoperation, wenn die erste Prüfeinrichtung nicht das Signal erzeugt, welches das Vorhandensein der Information zur Bezeichnung der Adresse des vorabgerufenen Befehls anzeigt, (ii) zum Steuern der Befehlsvorabrufoperation durch die Information zur Bezeichnung der Verzweigungszieladresse, die in der Verzweigungsarchivtabelleneinrichtung (46) mit der Adresse des vorabgerufenen Befehls gepaart ist, wenn die erste Prüfeinrichtung das Signal erzeugt, welches das Vorhandensein der Information zur Bezeichnung der Adresse des vorabgerufenen Befehls anzeigt, und (iii) zum Steuern des Vorabrufs des Befehls, der durch die Adresse des vorabgerufenen Befehls vor dem Umschalten zur Verzweigungszieladresse aus der Verzweigungsarchivtabelle bezeichnet wird, wenn die Voraussageprüfeinrichtung (66) ein Voraussagefehlersignal erzeugt.
7. Gerät nach einem der Ansprüche 1 bis 6, das vor der Ausführungsstufe eine Befehlsdecodierstufe aufweist, wobei die Voraussageprüfeinrichtung zum Ausführen der Prüfung unmittelbar nach der Verarbeitung des speziellen Befehls in der Befehlsdecodierstufe dient.
8. Gerät nach Anspruch 7, wobei der spezielle Befehl in der Befehlsdecodierstufe verarbeitet wird, um eine tatsächliche Verzweigungsrichtung zu erzeugen, die eine NICHT-SPRUNG- Richtung bzw. eine SPRUNG-Richtung anzeigt, wobei die vorausgesagte Verzweigungsinformation eine vorausgesagte Verzweigungsrichtung für den speziellen Befehl aufweist, wobei die Voraussageprüfeinrichtung als Reaktion auf die tatsächliche Verzweigungsrichtung die Prüfung bezüglich der vorausgesagten Verzweigungsrichtung ausführt, um ein Prüfungsergebnis zu erzeugen, welches darstellt, ob die vorausgesagte Verzweigungsrichtung die SPRUNG-Richtung oder die NICHT-SPRUNG-Richtung anzeigt.
9. Gerät nach Anspruch 8, wobei die Vorabrufsteuereinrichtung als Reaktion auf das Prüfungsergebnis die Fortsetzung zuläßt, wenn das Prüfungsergebnis die NICHT-SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, wobei die Vorabrufsteuereinrichtung dazu dient, die vorausgesagte Verzweigungsinformation zur NICHT-SPRUNG-Richtung zu korrigieren und dann den Vorabruf eines nächsten Befehls zuzulassen, wenn das Prüfungsergebnis die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, wobei der nächste Befehl in der Folge in NICHT-SPRUNG-Richtung als nächster auf den speziellen Befehl folgt.
10. Gerät nach einem der Ansprüche 7 bis 9, wobei die Stufen eine Operandenadressenerzeugungsstufe und eine Operandenadressenübersetzungsstufe vor der Ausführungsstufe aufweisen und der Reihe nach auf die Befehlsdecodierstufe folgen, wobei die Voraussageprüfeinrichtung dazu dient, die Prüfung zum Erzeugen eines ersten Prüfungsergebnisses unmittelbar nach der Verarbeitung des speziellen Befehls in der Befehlsdecodierstufe auszuführen, die Prüfung zum Erzeugen eines zweiten Prüfungsergebnisses unmittelbar nach der Verarbeitung des speziellen Befehls in der Operandenadressenerzeugungsstufe auszuführen und die Prüfung als Reaktion auf das erste und das zweite Prüfungsergebnis zum Erzeugen eines dritten Prüfungsergebnisses unmittelbar nach der Verarbeitung des speziellen Befehls in der Operandenadressenübersetzungsstufe auszuführen.
11. Gerät nach Anspruch 10, wobei die Vorabrufsteuereinrichtung als Reaktion auf die ersten bis dritten Prüfungsergebnisse die Fortsetzung zuläßt, wenn die ersten bis dritten Prüfungsergebnisse anzeigen, daß die vorausgesagte Verzweigungsinformation richtig ist, wobei die Vorabrufsteuereinrichtung dazu dient, die vorausgesagte Verzweigungsinformation zur korrigierten Verzweigungsinformation zu korrigieren und dann entsprechend der korrigierten Verzweigungsinformation die Fortsetzung zuzulassen, wenn mindestens eines der ersten bis dritten Prüfungsergebnisse anzeigt, daß die vorausgesagte Verzweigungsinformation falsch ist.
12. Gerät nach Anspruch 10 oder 11, wobei die Ausführungseinrichtung ein Verzweigungsanzeigesignal erzeugt, das eine tatsächliche Verzweigungsrichtung gemäß einem Ergebnis anzeigt, das beim Verarbeiten des speziellen Befehls in der Ausführungsstufe erzielt wurde, wobei die vorausgesagte Verzweigungsinformation eine vorausgesagte Verzweigungsrichtung für den speziellen Befehl aufweist, wobei das Befehlsvorabrufgerät eine Voraussageprüfschaltung aufweist, die mit der Voraussageeinrichtung und der Ausführungseinrichtung gekoppelt ist und als Reaktion auf das Verzweigungsanzeigesignal die vorausgesagte Verzweigungsrichtung prüft, um ein endgültiges Prüfungsergebnis zu erzeugen, welches anzeigt, ob die vorausgesagte Verzweigungsrichtung mit der tatsächlichen Verzweigungsrichtung nicht übereinstimmt oder übereinstimmt, wobei:
die Voraussageprüfeinrichtung dazu dient, die Prüfung zum Erzeugen eines ersten Prüfungsergebnisses unmittelbar nach der Verarbeitung des speziellen Befehls in der Befehlsdecodierstufe auszuführen, die Prüfung zum Erzeugen eines zweiten Prüfungsergebnisses unmittelbar nach der Verarbeitung des speziellen Befehls in der Operandenadressenerzeugungsstufe auszuführen und die Prüfung als Reaktion auf das erste und das zweite Prüfungsergebnis zum Erzeugen eines dritten Prüfungsergebnisses unmittelbar nach der Verarbeitung des speziellen Befehls in der Operandenadressenübersetzungsstufe auszuführen;
wobei die Voraussageprüfschaltung als Reaktion auf die ersten bis dritten Prüfungsergebnisse nur dann ein endgültiges Prüfungsergebnis erzeugt, wenn die ersten bis dritten Prüfungsergebnisse anzeigen, daß die vorausgesagte Verzweigungsinformation richtig ist.
13. Gerät nach Anspruch 12, wobei die Vorabrufsteuer einrichtung als Reaktion auf die ersten bis dritten Prüfungsergebnisse die Fortsetzung zuläßt, wenn die ersten bis dritten Prüfungsergebnisse anzeigen, daß die vorausgesagte Verzweigungsinformation richtig ist, wobei die Vorabrufsteuereinrichtung dazu dient, die vorausgesagte Verzweigungsinformation zur korrigierten Verzweigungsinformation zu korrigieren und dann entsprechend der korrigierten Verzweigungsinformation die Fortsetzung zuzulassen, wenn mindestens eines der ersten bis dritten Prüfungsergebnisse anzeigt, daß die vorausgesagte Verzweigungsinformation falsch ist, wobei die Vorabrufsteuereinrichtung die Fortsetzung zuläßt, wenn das endgültige Prüfungsergebnis anzeigt, daß die vorausgesagte Verzweigungsrichtung mit der tatsächlichen Verzweigungsrichtung übereinstimmt, wobei die Vorabrufsteuereinrichtung dazu dient, die vorausgesagte Verzweigungsrichtung zur tatsächlichen Verzweigungsrichtung zu korrigieren und dann die Fortsetzung entsprechend der tatsächlichen Verzweigungsrichtung zuzulassen.
14. Gerät nach einem der Ansprüche 1 bis 6, wobei die Stufen eine Operandenadressenerzeugungsstufe vor der Ausführungsstufe aufweisen, wobei die Voraussageprüfeinrichtung zum Ausführen der Prüfung unmittelbar nach der Verarbeitung des speziellen Befehls in der Operandenadressenerzeugungsstufe dient.
15. Gerät nach Anspruch 14, wobei der spezielle Befehl in der Operandenadressenerzeugungsstufe verarbeitet wird, um ein Ergebnis zu erzeugen, das angibt, ob der spezielle Befehl immer eine SPRUNG-Richtung und niemals eine NICHT-SPRUNG-Richtung anzeigt, wobei die vorausgesagte Verzweigungsinformation eine vorausgesagte Verzweigungsrichtung für den speziellen Befehl aufweist, wobei die Voraussageprüfeinrichtung als Reaktion auf das Ergebnis die Prüfung bezüglich der vorausgesagten Verzweigungsrichtung ausführt, um ein Prüfungsergebnis zu erzeugen, welches darstellt, ob die vorausgesagte Verzweigungsrichtung die NICHT-SPRUNG-Richtung oder die SPRUNG-Richtung anzeigt.
16. Gerät nach Anspruch 15, wobei die Vorabrufsteuereinrichtung als Reaktion auf das Prüfungsergebnis die Fortsetzung zuläßt, wenn das Prüfungsergebnis die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, wobei die Vorabrufsteuereinrichtung dazu dient, die vorausgesagte Verzweigungsrichtung zur SPRUNG-Richtung zu korrigieren und dann den Vorabruf eines nächsten Befehls zuzulassen, wenn das Prüfungsergebnis die NICHT-SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, wobei der nächste Befehl in der SPRUNG-Richtung als nächster auf den speziellen Befehl folgt.
17. Gerät nach Anspruch 15 oder 16, wobei der spezielle Befehl in der Operandenadressenerzeugungsstufe verarbeitet wird, um einen variablen Zählwert und ein Ergebnis zu erzeugen, welches anzeigt, ob der spezielle Befehl ein zählungsbedingter Verzweigungsbefehl ist oder nicht, der eine SPRUNG- Richtung bzw. eine NICHT-SPRUNG-Richtung anzeigt, wenn nicht bzw. nur wenn der variable Zählwert gleich eins ist, wobei die vorausgesagte Verzweigungsinformation eine vorausgesagte Verzweigungsrichtung für den speziellen Befehl einschließt, wobei die Voraussageprüfeinrichtung als Reaktion auf den variablen Zählwert und das Ergebnis die Prüfung bezüglich der vorausgesagten Verzweigungsrichtung ausführt, um ein Prüfungsergebnis zu erzeugen, welches für den zählungsbedingten Verzweigungsbe fehl darstellt, ob die vorausgesagte Verzweigungsrichtung die NICHT-SPRUNG-Richtung bzw. die SPRUNG-Richtung anzeigt oder nicht, während der variable Zählwert nicht gleich eins bzw. gleich eins ist.
18. Gerät nach Anspruch 17, wobei die Voraussageprüfeinrichtung einen Komparator zum Vergleichen des variablen Zählwertes mit eins und zum Erzeugen eines Signals "Zählwert eins", das anzeigt, ob der variable Zählwert nicht gleich eins oder gleich eins ist, sowie eine Einrichtung aufweist, die als Reaktion auf das Signal "Zählwert eins" und das Ergebnis die Prüfung bezüglich der vorausgesagten Verzweigungsrichtung ausführt, um das Prüfungsergebnis zu erzeugen, wobei veranlaßt wird, daß das Prüfungsergebnis für den zählungsbedingten Verzweigungsbefehl darstellt, ob die vorausgesagte Verzweigungsrichtung die NICHT-SPRUNG-Richtung bzw. die SPRUNG-Richtung anzeigt oder nicht, während das Signal "Zählwert eins" anzeigt, daß der variable Zählwert nicht gleich eins bzw. gleich eins ist.
19. Gerät nach Anspruch 17, wobei die Voraussageprüfeinrichtung ein Subtrahierglied zum Subtrahieren der Zahl eins von dem variablen Zählwert und zum Erzeugen eines Signals "Zählwert null", das anzeigt, ob der variable Zählwert minus eins nicht gleich null oder gleich null ist, sowie eine Einrichtung aufweist, die als Reaktion auf das Signal "Zählwert null" und das Ergebnis die Prüfung bezüglich der vorausgesagten Verzweigungsrichtung ausführt, um das Prüfungsergebnis zu erzeugen, wobei veranlaßt wird, daß das Prüfungsergebnis für den zählungsbedingten Verzweigungsbefehl darstellt, ob die vorausgesagte Verzweigungsrichtung die NICHT-SPRUNG-Richtung bzw. die SPRUNG-Richtung anzeigt oder nicht, während das Signal "Zählwert null" anzeigt, daß der variable Zählwert minus eins nicht gleich null bzw. gleich null ist.
20. Gerät nach Anspruch 19, wobei die Vorabrufsteuer einrichtung als Reaktion auf das Prüfungsergebnis die Fortsetzung zuläßt, wenn das Prüfungsergebnis die SPRUNG- bzw. die NICHT-SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der variable Zählwert ungleich eins bzw. gleich eins ist, wobei die Vorabrufsteuereinrichtung dazu dient, die vorausgesagte Verzweigungsrichtung zur SPRUNG-Richtung zu korrigieren und dann den Vorabruf des Verzweigungszielbefehls zuzulassen, sooft das Prüfungsergebnis nicht die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, wobei der Verzweigungszielbefehl als nächster in der Folge in SPRUNG-Richtung auf den zählungsbedingten Verzweigungsbefehl folgt, wobei die Vorabrufsteuereinrichtung dazu dient, die vorausgesagte Verzweigungsrichtung zur NICHT- SPRUNG-Richtung zu korrigieren und dann den Vorabruf eines nächsten Befehls zuzulassen, sooft das Prüfungsergebnis nicht die NICHT-SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, wobei der nächste Befehl als nächster in der Folge in NICHT-SPRUNG-Richtung auf den zählungsbedingten Verzweigungsbefehl folgt.
21. Gerät nach einem der Ansprüche 14 bis 20, wobei die Stufen vor der Ausführungsstufe eine Operandenadressenübersetzungsstufe aufweisen, die sich unmittelbar an die Operandenadressenerzeugungsstufe anschließt, wobei die Voraussageprüfeinrichtung wiederum zum Ausführen der Prüfung unmittelbar nach der Verarbeitung des speziellen Befehls in der Operandenadressenübersetzungsstufe dient.
22. Gerät nach Anspruch 21, wobei die Stufen eine Befehlsdecodierstufe unmittelbar vor der Operandenadressenerzeugungsstufe und eine Befehlsadressenübersetzungsstufe vor der Ausführungsstufe aufweisen, wobei der spezielle Befehl in der Befehlsdecodierstufe verarbeitet wird, um ein Ergebnis zu erzeugen, welches angibt, ob der spezielle Befehl einen nächsten Befehl oder einen Verzweigungszielbefehl anzeigt, wobei der nächste Befehl als nächster in der Folge in NICHT-SPRUNG-Richtung auf den speziellen Befehl folgt, wobei der Verzweigungszielbefehl als nächster in der Folge in SPRUNG-Richtung auf den speziellen Befehl folgt, wobei der Verzweigungszielbefehl in der Befehlsadressenübersetzungsstufe zu einem decodierten Verzweigungszielbefehl verarbeitet wird, während gleichzeitig der spezielle Befehl in der Operandenadressenübersetzungsstufe verarbeitet wird, wobei die vorausgesagte Verzweigungsinformation eine vorausgesagte Verzweigungsrichtung für den speziellen Befehl und eine vorausgesagte Zieladresse des Verzweigungszielbefehls aufweist, wobei die Voraussageprüfeinrichtung aufweist:
eine erste Einrichtung, die als Reaktion auf das Ergebnis die Prüfung bezüglich der vorausgesagten Verzweigungsrichtung ausführt, um gleichzeitig ein erstes und ein zweites Prüfungsergebnis zu erzeugen, wobei das erste Prüfungsergebnis darstellt, ob die vorausgesagte Verzweigungsrichtung die SPRUNG-Richtung anzeigt oder nicht, während der spezielle Befehl den nächsten Befehl anzeigt, wobei das zweite Prüfungsergebnis darstellt, ob die vorausgesagte Verzweigungsrichtung die NICHT-SPRUNG-Richtung anzeigt oder nicht, während der spezielle Befehl den Verzweigungszielbefehl anzeigt; und
eine zweite Einrichtung, die als Reaktion auf die decodierte Verzweigungszieladresse sowie das erste und das zweite Prüfungsergebnis die Prüfung bezüglich der vorausgesagten Zieladresse ausführt, um ein drittes Prüfungsergebnis zu erzeugen, welches darstellt, ob die vorausgesagte Zieladresse mit der decodierten Verzweigungszieladresse nicht übereinstimmt oder übereinstimmt, wenn das erste Prüfungsergebnis nicht die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der spezielle Befehl den nächsten Befehl anzeigt, und wenn das zweite Prüfungsergebnis nicht die NICHT-SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der spezielle Befehl den Verzweigungszielbefehl anzeigt, wobei die zweite Einrichtung im Ruhezustand ist, wenn das erste Prüfungsergebnis die NICHT-SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der spezielle Befehl den Verzweigungszielbefehl anzeigt, und wenn das zweite Prüfungsergebnis die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der spezielle Befehl den nächsten Befehl anzeigt.
23. Gerät nach Anspruch 22, wobei die Vorabrufsteuereinrichtung als Reaktion auf die ersten bis dritten Prüfungsergebnisse die Fortsetzung zuläßt, wenn das erste Prüfungsergebnis nicht die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der spezielle Befehl den nächsten Befehl anzeigt, und die Fortsetzung zuläßt, wenn das zweite Prüfungsergebnis nicht die NICHT-SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der spezielle Befehl den Verzweigungszielbefehl anzeigt, und wenn ferner das dritte Prüfungsergebnis Übereinstimmung zwischen der vorausgesagten Zieladresse und der decodierten Verzweigungszieladresse darstellt, wobei die Vorabrufsteuereinrichtung dazu dient, die vorausgesagte Verzweigungsrichtung zur NICHT-SPRUNG-Richtung zu korrigieren und dann den Vorabruf des nächsten Befehls zuzulassen, wenn das erste Prüfungsergebnis die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der spezielle Befehl den nächsten Befehl anzeigt, wobei die Vorabrufsteuereinrichtung dazu dient, die vorausgesagte Zieladresse zur decodierten Verzweigungszieladresse zu korrigieren und dann den Vorabruf des Verzweigungszielbefehls zuzulassen, wenn das erste Prüfungsergebnis die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der spezielle Befehl den Verzweigungszielbefehl anzeigt, und wenn ferner das dritte Prüfungsergebnis Nichtübereinstimmung zwischen der vorausgesagten Zieladresse und der decodierten Verzweigungszieladresse darstellt, wobei die Vorabrufsteuereinrichtung dazu dient, die vorausgesagte Verzweigungsrichtung zur SPRUNG-Richtung zu korrigieren und dann den Vorabruf des Verzweigungszielbefehls zuzulassen, wenn das zweite Prüfungsergebnis nicht die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der spezielle Befehl den Verzweigungszielbefehl anzeigt, und wenn ferner das dritte Prüfungsergebnis Übereinstimmung zwischen der vorausgesagten Zieladresse und der decodierten Verzweigungszieladresse darstellt.
24. Gerät nach einem der Ansprüche 1 bis 6, wobei die Stufen eine Operandenadressenübersetzungsstufe vor der Ausführungsstufe aufweisen, wobei die Voraussageprüfeinrichtung dazu dient, unmittelbar nach der Verarbeitung des speziellen Befehls in der Operandenadressenübersetzungsstufe die Prüfung auszuführen.
25. Gerät nach Anspruch 24, wobei die Stufen eine Befehlsdecodierstufe vor der Operandenadressenübersetzungsstufe und eine Befehlsadressenübersetzungsstufe vor der Ausführungsstufe aufweisen, wobei der spezielle Befehl in der Befehlsdecodierstufe verarbeitet wird, um ein Ergebnis zu erzeugen, welches anzeigt, ob der spezielle Befehl einen nächsten Befehl oder einen Verzweigungszielbefehl anzeigt, wobei der nächste Befehl als nächster in der Folge in NICHT-SPRUNG-Richtung auf den speziellen Befehl folgt, wobei der Verzweigungszielbefehl als nächster in der Folge in SPRUNG-Richtung auf den speziellen Befehl folgt, wobei der Verzweigungszielbefehl in der Befehlsadressenübersetzungsstufe verarbeitet wird, um eine decodierte Verzweigungszieladresse zu erzeugen, während gleichzeitig der spezielle Befehl in der Operandenadressenübersetzungsstufe verarbeitet wird, wobei die vorausgesagte Verzweigungsinformation eine vorausgesagte Verzweigungsrichtung für den speziellen Befehl und eine vorausgesagte Zieladresse des Verzweigungszielbefehls aufweist, wobei die Voraussageprüfeinrichtung aufweist:
eine erste Einrichtung, die als Reaktion auf das Ergebnis die Prüfung bezüglich der vorausgesagten Verzweigungsrichtung ausführt, um gleichzeitig ein erstes und ein zweites Prüfungsergebnis zu erzeugen, wobei das erste Prüfungsergebnis darstellt, ob die vorausgesagte Verzweigungsrichtung die SPRUNG-Richtung anzeigt oder nicht, während der spezielle Befehl den nächsten Befehl anzeigt, wobei das zweite Prüfungsergebnis darstellt, ob die vorausgesagte Verzweigungsrichtung die NICHT-SPRUNG-Richtung anzeigt oder nicht, während der spezielle Befehl den Verzweigungszielbefehl anzeigt; und
eine zweite Einrichtung, die als Reaktion auf die decodierte Verzweigungszieladresse sowie das erste und das zweite Prüfungsergebnis die Prüfung bezüglich der vorausgesagten Zieladresse ausführt, um ein drittes Prüfungsergebnis zu erzeugen, welches darstellt, ob die vorausgesagte Zieladresse mit der decodierten Verzweigungszieladresse nicht übereinstimmt oder übereinstimmt, wenn das erste Prüfungsergebnis nicht die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der spezielle Befehl den nächsten Befehl anzeigt, und wenn das zweite Prüfungsergebnis nicht die NICHT-SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, wihrend der spezielle Befehl den Verzweigungszielbefehl anzeigt, wobei die zweite Einrichtung im Ruhezustand ist, wenn das erste Prüfungsergebnis die NICHT-SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der spezielle Befehl den Verzweigungszielbefehl anzeigt, und wenn das zweite Prüfungsergebnis die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der spezielle Befehl den nächsten Befehl anzeigt.
26. Befehlsvorabrufgerät nach Anspruch 25, wobei die Vorabrufsteuereinrichtung als Reaktion auf die ersten bis dritten Prüfungsergebnisse die Fortsetzung zuläßt, wenn das erste Prüfungsergebnis nicht die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der spezielle Befehl den nächsten Befehl anzeigt, und die Fortsetzung zuläßt, wenn das zweite Prüfungsergebnis nicht die NICHT-SPRUNG- Richtung als vorausgesagte Verzweigungsrichtunq darstellt, während der spezielle Befehl den Verzweigungszielbefehl anzeigt, und wenn ferner das dritte Prüfungsergebnis Übereinstimmung zwischen der vorausgesagten Zieladresse und der decodierten Verzweigungszieladresse darstellt, wobei die Vorabrufsteuereinrichtung dazu dient, die vorausgesagte Verzweigungsrichtung zur NICHT-SPRUNG-Richtung zu korrigieren und dann den Vorabruf des nächsten Befehls zuzulassen, wenn das erste Prüfungsergebnis die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der spezielle Befehl den nächsten Befehl anzeigt, wobei die Vorabrufsteuereinrichtung dazu dient, die vorausgesagte Zieladresse zur decodierten Verzweigungszieladresse zu korrigieren und dann den Vorabruf des Verzweigungszielbefehls zuzulassen, wenn das erste Prüfungsergebnis die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der spezielle Befehl den Verzweigungszielbefehl anzeigt, und wenn ferner das dritte Prüfungsergebnis Nichtübereinstimmung zwischen der vorausgesagten Zieladresse und der decodierten Verzweigungszieladresse darstellt, wobei die Vorabrufsteuereinrichtung dazu dient, die vorausgesagte Verzweigungsrichtung zur SPRUNG-Richtung zu korrigieren und dann den Vorabruf des Verzweigungszielbefehls zuzulassen, wenn das zweite Prüfungsergebnis nicht die SPRUNG-Richtung als vorausgesagte Verzweigungsrichtung darstellt, während der spezielle Befehl den Verzweigungszielbefehl anzeigt, und wenn ferner das dritte Prüfungsergebnis Übereinstimmung zwischen der vorausgesagten Zieladresse und der decodierten Verzweigungszieladresse darstellt.
DE3752100T 1986-01-07 1987-01-05 Befehlsvorabrufgerät mit einer Schaltung zum Prüfen der Vorhersage eines Verzweigungsbefehls vor seiner Ausführung Expired - Fee Related DE3752100T2 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP61000323A JPH0695306B2 (ja) 1986-01-07 1986-01-07 命令先取り装置
JP32686A JPS62159233A (ja) 1986-01-07 1986-01-07 命令先取り装置
JP61000321A JPH0754460B2 (ja) 1986-01-07 1986-01-07 命令先取り装置
JP32286A JPS62159229A (ja) 1986-01-07 1986-01-07 命令先取り装置
JP32486A JPS62159231A (ja) 1986-01-07 1986-01-07 命令先取り装置
JP32586A JPS62159232A (ja) 1986-01-07 1986-01-07 命令先取り装置

Publications (2)

Publication Number Publication Date
DE3752100D1 DE3752100D1 (de) 1997-09-11
DE3752100T2 true DE3752100T2 (de) 1997-12-11

Family

ID=27547518

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3752100T Expired - Fee Related DE3752100T2 (de) 1986-01-07 1987-01-05 Befehlsvorabrufgerät mit einer Schaltung zum Prüfen der Vorhersage eines Verzweigungsbefehls vor seiner Ausführung

Country Status (3)

Country Link
US (1) US4853840A (de)
EP (1) EP0229619B1 (de)
DE (1) DE3752100T2 (de)

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4991080A (en) * 1986-03-13 1991-02-05 International Business Machines Corporation Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions
US5440704A (en) * 1986-08-26 1995-08-08 Mitsubishi Denki Kabushiki Kaisha Data processor having branch predicting function
US5265220A (en) * 1986-12-23 1993-11-23 Nec Corporation Address control device for effectively controlling an address storing operation even when a request is subsequently cancelled
US5175827A (en) * 1987-01-22 1992-12-29 Nec Corporation Branch history table write control system to prevent looping branch instructions from writing more than once into a branch history table
US5341482A (en) * 1987-03-20 1994-08-23 Digital Equipment Corporation Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
US5197136A (en) * 1987-11-12 1993-03-23 Matsushita Electric Industrial Co., Ltd. Processing system for branch instruction
GB8728493D0 (en) * 1987-12-05 1988-01-13 Int Computers Ltd Jump prediction
JP2723238B2 (ja) * 1988-01-18 1998-03-09 株式会社東芝 情報処理装置
US5522053A (en) * 1988-02-23 1996-05-28 Mitsubishi Denki Kabushiki Kaisha Branch target and next instruction address calculation in a pipeline processor
US5228131A (en) * 1988-02-24 1993-07-13 Mitsubishi Denki Kabushiki Kaisha Data processor with selectively enabled and disabled branch prediction operation
JPH01271838A (ja) * 1988-04-22 1989-10-30 Fujitsu Ltd マイクロプログラム分岐方法
US5136696A (en) * 1988-06-27 1992-08-04 Prime Computer, Inc. High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions
GB8817912D0 (en) * 1988-07-27 1988-09-01 Int Computers Ltd Data processing apparatus
US5155818A (en) * 1988-09-28 1992-10-13 Data General Corporation Unconditional wide branch instruction acceleration
EP0402524B1 (de) * 1988-11-25 1996-10-02 Nec Corporation Mikrorechner, geeignet zur Schnellverarbeitung eines Verzweigungsbefehlskodes
JPH0778735B2 (ja) * 1988-12-05 1995-08-23 松下電器産業株式会社 キャッシュ装置と命令読出し装置
US5034880A (en) * 1988-12-22 1991-07-23 Wang Laboratories, Inc. Apparatus and method for executing a conditional branch instruction
KR920006770B1 (ko) * 1988-12-27 1992-08-17 후지쓰 가부시끼가이샤 명령을 페치(fetch)하기 위한 제어 시스템
US5127091A (en) * 1989-01-13 1992-06-30 International Business Machines Corporation System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor
US5142634A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation Branch prediction
US5113515A (en) * 1989-02-03 1992-05-12 Digital Equipment Corporation Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer
JPH02306341A (ja) * 1989-02-03 1990-12-19 Nec Corp マイクロプロセッサ
US5349671A (en) * 1989-03-23 1994-09-20 Matsushita Electric Industrial Co., Ltd. Microprocessor system generating instruction fetch addresses at high speed
JP2570859B2 (ja) * 1989-05-25 1997-01-16 日本電気株式会社 データ処理装置
JP2508280B2 (ja) * 1989-07-28 1996-06-19 日本電気株式会社 分岐ヒストリテ―ブル制御方式
DE69032897T2 (de) * 1989-08-28 1999-08-26 Nec Corp. Mikroprozessor zum verbesserten Startvorgang der Befehlsausführung nach der Ausführung eines bedingten Verzweigungsbefehls
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
US5226130A (en) * 1990-02-26 1993-07-06 Nexgen Microsystems Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
US5230068A (en) * 1990-02-26 1993-07-20 Nexgen Microsystems Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence
US5283873A (en) * 1990-06-29 1994-02-01 Digital Equipment Corporation Next line prediction apparatus for a pipelined computed system
US5317703A (en) * 1990-06-29 1994-05-31 Hitachi, Ltd. Information processing apparatus using an advanced pipeline control method
US5276882A (en) * 1990-07-27 1994-01-04 International Business Machines Corp. Subroutine return through branch history table
JPH0820950B2 (ja) * 1990-10-09 1996-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチ予測型分岐予測機構
WO1992006426A1 (en) * 1990-10-09 1992-04-16 Nexgen Microsystems Method and apparatus for parallel decoding of instructions with branch prediction look-up
JP2839730B2 (ja) * 1991-02-25 1998-12-16 株式会社東芝 エミュレーション装置及び半導体装置
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
US5630157A (en) * 1991-06-13 1997-05-13 International Business Machines Corporation Computer organization for multiple and out-of-order execution of condition code testing and setting instructions
JPH0628184A (ja) * 1991-08-26 1994-02-04 Internatl Business Mach Corp <Ibm> ブランチ予測方法及びブランチプロセッサ
US5333283A (en) * 1991-10-29 1994-07-26 International Business Machines Corporation Case block table for predicting the outcome of blocks of conditional branches having a common operand
US5434986A (en) * 1992-01-09 1995-07-18 Unisys Corporation Interdependency control of pipelined instruction processor using comparing result of two index registers of skip instruction and next sequential instruction
US5313634A (en) * 1992-07-28 1994-05-17 International Business Machines Corporation Computer system branch prediction of subroutine returns
US5434985A (en) * 1992-08-11 1995-07-18 International Business Machines Corporation Simultaneous prediction of multiple branches for superscalar processing
US5442767A (en) * 1992-10-23 1995-08-15 International Business Machines Corporation Address prediction to avoid address generation interlocks in computer systems
US5586294A (en) * 1993-03-26 1996-12-17 Digital Equipment Corporation Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer
US5388247A (en) * 1993-05-14 1995-02-07 Digital Equipment Corporation History buffer control to reduce unnecessary allocations in a memory stream buffer
US5748976A (en) * 1993-10-18 1998-05-05 Amdahl Corporation Mechanism for maintaining data coherency in a branch history instruction cache
SG52391A1 (en) * 1994-01-03 1998-09-28 Intel Corp Method and apparatus for implementing a four stage branch resolution system in a computer processor
US5659722A (en) * 1994-04-28 1997-08-19 International Business Machines Corporation Multiple condition code branching system in a multi-processor environment
US5542109A (en) * 1994-08-31 1996-07-30 Exponential Technology, Inc. Address tracking and branch resolution in a processor with multiple execution pipelines and instruction stream discontinuities
US5701426A (en) * 1995-03-31 1997-12-23 Bull Information Systems Inc. Data processing system and method using cache miss address prediction and forced LRU status in a cache memory to improve cache hit ratio
US5848433A (en) * 1995-04-12 1998-12-08 Advanced Micro Devices Way prediction unit and a method for operating the same
US5764946A (en) * 1995-04-12 1998-06-09 Advanced Micro Devices Superscalar microprocessor employing a way prediction unit to predict the way of an instruction fetch address and to concurrently provide a branch prediction address corresponding to the fetch address
US5802346A (en) * 1995-06-02 1998-09-01 International Business Machines Corporation Method and system for minimizing the delay in executing branch-on-register instructions
US5905881A (en) * 1995-11-30 1999-05-18 Unisys Corporation Delayed state writes for an instruction processor
US5646974A (en) * 1996-02-08 1997-07-08 United Microelectronics Corporation High speed apparatus for branch detection of a loop instruction
US5867699A (en) * 1996-07-25 1999-02-02 Unisys Corporation Instruction flow control for an instruction processor
US5805876A (en) * 1996-09-30 1998-09-08 International Business Machines Corporation Method and system for reducing average branch resolution time and effective misprediction penalty in a processor
US6119221A (en) * 1996-11-01 2000-09-12 Matsushita Electric Industrial Co., Ltd. Instruction prefetching apparatus and instruction prefetching method for processing in a processor
US6088793A (en) * 1996-12-30 2000-07-11 Intel Corporation Method and apparatus for branch execution on a multiple-instruction-set-architecture microprocessor
US6073230A (en) * 1997-06-11 2000-06-06 Advanced Micro Devices, Inc. Instruction fetch unit configured to provide sequential way prediction for sequential instruction fetches
US6016533A (en) * 1997-12-16 2000-01-18 Advanced Micro Devices, Inc. Way prediction logic for cache array
AU763141B2 (en) * 1999-04-19 2003-07-17 Motorola Australia Pty Ltd A method of detecting illegal sequences of code execution
US6745322B1 (en) * 2000-02-18 2004-06-01 Hewlett-Packard Development Company, Lp. Apparatus and method for conditionally flushing a pipeline upon a failure of a test condition
DE10009677A1 (de) * 2000-02-29 2001-09-06 Infineon Technologies Ag Programmgesteuerte Einheit
US7085915B1 (en) 2000-02-29 2006-08-01 International Business Machines Corporation Programmable prefetching of instructions for a processor executing a non-procedural program
CN1266591C (zh) * 2001-10-02 2006-07-26 皇家飞利浦电子股份有限公司 用于java硬件加速器的猜测执行的方法和装置
US7024663B2 (en) * 2002-07-10 2006-04-04 Micron Technology, Inc. Method and system for generating object code to facilitate predictive memory retrieval
US6954836B2 (en) * 2002-07-11 2005-10-11 Micron Technology, Inc. System and method for processor with predictive memory retrieval assist
US7636837B2 (en) * 2003-05-28 2009-12-22 Fujitsu Limited Apparatus and method for controlling instructions at time of failure of branch prediction
WO2004107163A1 (ja) * 2003-05-28 2004-12-09 Fujitsu Limited 分岐予測機構を持つ命令制御装置及びその制御方法
US7117290B2 (en) * 2003-09-03 2006-10-03 Advanced Micro Devices, Inc. MicroTLB and micro tag for reducing power in a processor
US20050050278A1 (en) * 2003-09-03 2005-03-03 Advanced Micro Devices, Inc. Low power way-predicted cache
JP2006048132A (ja) * 2004-07-30 2006-02-16 Fujitsu Ltd 分岐予測装置、分岐予測装置の制御方法、情報処理装置
US8082467B2 (en) * 2009-12-23 2011-12-20 International Business Machines Corporation Triggering workaround capabilities based on events active in a processor pipeline
US9104399B2 (en) * 2009-12-23 2015-08-11 International Business Machines Corporation Dual issuing of complex instruction set instructions
US9135005B2 (en) * 2010-01-28 2015-09-15 International Business Machines Corporation History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties
US8495341B2 (en) * 2010-02-17 2013-07-23 International Business Machines Corporation Instruction length based cracking for instruction of variable length storage operands
US8938605B2 (en) * 2010-03-05 2015-01-20 International Business Machines Corporation Instruction cracking based on machine state
US8464030B2 (en) 2010-04-09 2013-06-11 International Business Machines Corporation Instruction cracking and issue shortening based on instruction base fields, index fields, operand fields, and various other instruction text bits
US8645669B2 (en) 2010-05-05 2014-02-04 International Business Machines Corporation Cracking destructively overlapping operands in variable length instructions
US10289808B2 (en) * 2013-12-20 2019-05-14 Infineon Technologies Ag Method and system for secure data processing
GB2551548B (en) * 2016-06-22 2019-05-08 Advanced Risc Mach Ltd Register restoring branch instruction
US11599361B2 (en) * 2021-05-10 2023-03-07 Arm Limited Flushing a fetch queue using predecode circuitry and prediction information

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3559183A (en) * 1968-02-29 1971-01-26 Ibm Instruction sequence control
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
US4298927A (en) * 1978-10-23 1981-11-03 International Business Machines Corporation Computer instruction prefetch circuit
JPS5927935B2 (ja) * 1980-02-29 1984-07-09 株式会社日立製作所 情報処理装置
US4430706A (en) * 1980-10-27 1984-02-07 Burroughs Corporation Branch prediction apparatus and method for a data processing system
US4604691A (en) * 1982-09-07 1986-08-05 Nippon Electric Co., Ltd. Data processing system having branch instruction prefetching performance
US4521851A (en) * 1982-10-13 1985-06-04 Honeywell Information Systems Inc. Central processor
EP0109655B1 (de) * 1982-11-17 1991-07-24 Nec Corporation Anordnung zum Vorabholen von Befehlen mit Vorhersage einer Verzweigungszieladresse
EP0150177A1 (de) * 1983-07-11 1985-08-07 Prime Computer, Inc. Datenverarbeitungsvorrichtung
JPS6043751A (ja) * 1983-08-18 1985-03-08 Hitachi Ltd 情報処理装置
US4757445A (en) * 1983-09-12 1988-07-12 Motorola, Inc. Method and apparatus for validating prefetched instruction
US4710866A (en) * 1983-09-12 1987-12-01 Motorola, Inc. Method and apparatus for validating prefetched instruction
US4764861A (en) * 1984-02-08 1988-08-16 Nec Corporation Instruction fpefetching device with prediction of a branch destination for each branch count instruction

Also Published As

Publication number Publication date
EP0229619A2 (de) 1987-07-22
US4853840A (en) 1989-08-01
EP0229619A3 (de) 1990-11-22
EP0229619B1 (de) 1997-08-06
DE3752100D1 (de) 1997-09-11

Similar Documents

Publication Publication Date Title
DE3752100T2 (de) Befehlsvorabrufgerät mit einer Schaltung zum Prüfen der Vorhersage eines Verzweigungsbefehls vor seiner Ausführung
DE3687744T2 (de) Aktualisierung der verzweigungsgeschichtstabelle in einem pipeline-verarbeitungssystem.
DE19527031C2 (de) Verzweigungsprozessor für ein Datenverarbeitungssystem und Verfahren zum Betreiben eines Datenverarbeitungssystems
DE3650232T2 (de) Rechnersteuerung mit Verzweigung in einem einzigen Zyklus.
DE69534113T2 (de) Kompression der Befehlswörter eines Rechners
DE69321698T2 (de) Verfahren und System zur verbesserten Genauigkeit der Sprungvorhersage in einem Superskalarprozessor
DE3116100C2 (de) Datenverarbeitungseinheit
DE3750935T2 (de) Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner.
DE69929936T2 (de) Verfahren und Vorrichtung zum Abrufen von nicht-angrenzenden Befehlen in einem Datenverarbeitungssystem
DE10121792C2 (de) Universelle Ladeadresse/Wertevorhersageschema
DE3884101T2 (de) Abholung von Operanden in Unordnung.
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE3851746T2 (de) Sprungvorhersage.
DE69325086T2 (de) Verfahren und System für spekulative Befehlsausführung
DE3424962C2 (de)
DE2715073C3 (de) Mikroprogrammierte Rechner-Steuervorrichtung
DE69702350T2 (de) Verzweigungsvorhersageschema für cachespeicherzeile, das von sätzen eines set-assoziativen cachespeichers gemeinsam verwendet wird
DE69327927T2 (de) Schnelles Vorausholen und Zuteilung von Befehlen mittels vorausschauender Anmerkungen von früher vorausgeholten
DE19855806A1 (de) Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen
DE68924719T2 (de) Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung.
DE2630323A1 (de) Datenspeichereinrichtung
DE69616718T4 (de) Vorrichtung und verfahren zur bestimmung von adressen fehlausgerichteter daten
DE3043653A1 (de) Datenverarbeitungsanlage
EP0722583A1 (de) Prozessor für zeichenketten variabler länge
DE2429067A1 (de) 8speicherschaltung

Legal Events

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