DE2855106A1 - Einrichtung zur durchfuehrung von instruktionsverzweigungen - Google Patents

Einrichtung zur durchfuehrung von instruktionsverzweigungen

Info

Publication number
DE2855106A1
DE2855106A1 DE19782855106 DE2855106A DE2855106A1 DE 2855106 A1 DE2855106 A1 DE 2855106A1 DE 19782855106 DE19782855106 DE 19782855106 DE 2855106 A DE2855106 A DE 2855106A DE 2855106 A1 DE2855106 A1 DE 2855106A1
Authority
DE
Germany
Prior art keywords
instruction
branch
circuit
execution
buffer
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.)
Granted
Application number
DE19782855106
Other languages
English (en)
Other versions
DE2855106C2 (de
Inventor
Jeffrey Francis Hughes
John Stephen Liptay
James Walter Rymarczyk
Stanley Edward Stone
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2855106A1 publication Critical patent/DE2855106A1/de
Application granted granted Critical
Publication of DE2855106C2 publication Critical patent/DE2855106C2/de
Expired 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, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3846Speculative instruction execution using static prediction, e.g. branch taken strategy
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute

Description

28bb10ö
Anmelderin: International Business Machines
Corporation, Araionk, N.Y. 10504
jo/se
Einrichtung zur Durchführung von Instruktionsverzweigungen
Die Erfindung betrifft eine Einrichtung zur Durchführung von Instruktionsverzweigungen in mehreren Instruktionsströmen einer elektronischen Datenverarbeitungsanlage nach dem Oberbegriff des Anspruchs 1.
Bedingte VerzweigungsInstruktionen, z.B. in Computern aus der Familie der IBM Systeme 370, geben eine zu prüfende Bedingung sowie die Adresse einer neuen Instruktion an, die auszuführen ist, wenn eine vorgeschriebene Bedingung erfüllt wird. Andernfalls wird die Instruktionsverarbeitung in einer Reihenfolge, von der bedingten Verzweigungsinstruktion an, fortgesetzt. In Hochleistungs-Fließbandcomputern (pipeline computer) kann man mit einer Instruktions-Vorverarbeitungsfunktion (IPPF) mehrere Instruktionen vorher vom Hauptspeicher abrufen und sie für die sequentielle Ausführung durch eine Ausführungseinheit vorbereiten. Wenn die IPPF eine ,bedingte Verzweigungsinstruktion decodiert, kann es sein, jdaß eine vorhergehende Instruktion, die die zu prüfende Bedingung festlegt, noch nicht ausgeführt ist. Daher ist unsicher, ob die durch die Adreßinformation der Verzweigungsinstruktion bezeichnete Instruktion überhaupt ausgeführt !wird. Somit muß eine Strategie entwickelt werden, damit die ilPPF weiter Instruktionen vom Speicher über die Verzweiigungsinstruktion hinaus vorher abrufen und decodieren kann, um die Reihenfolge der Instruktionen für die Weitergabe an die Ausführungseinheit aufrechtzuerhalten.
In der US-Patentschrift Nr. 3 418 638 ist die Steuereinrichtung für bedingte Verzweigung im Model 90 des IBM Systems 360 beschrieben, behandelt. Instruktionen werden dort vorher abgerufen, decodiert und direkt an mehrere Ausführungseinheiten übertragen, wodurch die Instruktionen überlappt verarbeitet und ausgeführt werden können. Ein komplizierter Mechanismus ist vorgesehen, um bedingte Verzweigungsinstruktionen an verschiedene Ausführungseinheiten und danach weitere, speziell als bedingt, markierte Instruktionen, die abhängig vom Ergebnis der bedingten Verzweigung ausgeführt wurden oder nicht, übertragen zu können. Die Instruktionseinheit enthält nur einen Satz von Instruktionspuffern, die die Kapazität der Instruktionseinheit auf die Decodierung nur einer bedingten VerzweigungsInstruktion und den Vorabruf nur eines Zielinstruktionsstromes einschränken.
In der US-Patentschrift Nr. 3 551 895 ist ein weiteres Hochleistungs-Computersystem für den vorherigen Abruf und die Decodierung von Instruktionen,einschließlich bedingter Verzweigungsinstruktionen, beschrieben. Hier wird eine Spezialinstruktion mit dem Namen "Vorausverzweigung" beschrieben, die von einem Assoziativspeicher und Vorausschaubäumen dazu benutzt wurde, Zielinstruktionsströme vorher abzurufen, wenn bedingte Verzweigungen auftraten.
Ein anderes bekanntes Hochleistungssystem,das eine IPPF enthält, um mehrere, der Reihe nach an eine Ausführungseinheit zu gebende Instruktionen vorher zu decodieren. In diesem System sind zwei separate Instruktionspuffer enthalten, so daß Instruktionen entweder vom Instruktionsstrom der bedingten Verzweigung oder aus dem Zielinstruktionsstrom vorher abgerufen und decodiert werden können. Während der Decodierung der bedingten VerzweigungsInstruktionen wird vorhergesagt, ob die Verzweigung wahrscheinlich erfolgreich ist oder nicht. Eine weitere Decodierung, entweder aus
^977005 909827/0810
i 285h IQ6 i
: ■ - 9 - j
dem ursprünglichen Instruktionsstrom oder aus dem Zielinstruktionsstrom folgt dann, basierend auf dieser Vorhersage, und
die vorverarbeitenden Instruktionen werden in einer Schlange
.für die sequentielle Abgabe an die \usführungseinheit gepuf- ; ■fert. Erfolg oder Mißerfolg einer abgefragten Bedingung bestimmen schließlich, ob die vorher decodierten Instruktionen
,aus dem richtigen Instruktionsstrom stammen. Da nur zwei i Instruktionspuffer vorgesehen sind, braucht man nur einen ' Schalter ein- oder auszuschalten, um die Instruktionen vom i richtigen Puffer an eine Decodiereinrichtung weiterzuleiten. I
dadurch, daß nur zwei Instruktionspuffer vorgesehen sind,
kann nur jeweils eine bedingte Verzweigungsinstruktion ; ausstehen. Wenn eine zweite bedingte Verzweigungsinstruktion ' im Instruktionsdecodier-Mechanismus erkannt wird, hört der
[IPPF-Mechanismus auf zu funktionieren, bis die erste beding- | te Verzweigung gelöst ist, weil ein zweiter Zielinstruk-
;tionsstrom nicht vorher abgerufen werden kann.
i ■
jDie Aufgabe der Erfindung besteht daher in der Schaffung i I - 1
jeines stark überlappten Hochleistungs-Datenverarbeitungs-
jsystems, das mehrere, über zwei ausstehende bedingte Ver- ι izweigungsinstruktionen hinausgehende, Instruktionen vorher j jabrufen, decodieren und in eine Warteschlange setzen kann. ι
ϊ i
JGelöst wird diese Aufgabe der Erfindung durch die im Hauptjanspruch angegebenen Merkmale.
Vorteilhafte Ausgestaltungen und Weiterbildungen des Gegenstandes der Erfindung sind den Unteransprüchen zu entnehmen.
Auf diese Weise wird der Vorteil erzielt, daß eine Datenverarbeitungsanlage, die mit der erfindungsgemäßen Einrichtung
ausgerüstet ist, nun in der Lage ist, mindestens zwei bedingte VerzweigungsInstruktionen decodieren zu können, was
PO 977 005
909827/0810
285b I 06
j -ΙΟΙ
izu geringeren Wartezeiten und damit einer höheren Verarbei-
.tungsgeschwindigkeit führt.
'Ein Ausführungsbeispiel der Erfindung ist in den beigefügten
'Figuren dargestellt und wird anschließend näher beschrieben. ;Es zeigen: \
;Fig. 1 in einem Blockdiagramm die Hauptfunktionsein-
j heiten eines Datenverarbeitungssystems mit
I einer Instruktions-Vorverarbeitungsfunktion :
(IPPF), ί
JFig. 2 in einem Blockdiagramm die Hauptfunktionseinheiten einer IPPF, :
Fign. 3A, B (vertikal untereinandergelegt) ein detailliertes, und C Blockdiagramm einer IPPF,
Tig. 4 in einem Blockdiagramm eine Ausführungseinheit, die auf bedingte Verzweigungsinstruktione4 anspricht, '
Fig. 5 das Format von Verzweigungsinstruktionen des IBM Systems/370,
Fig. 6 in einem Logikdiagramm die Erfolgsvorhersage der Ergebnisse von Verzweigungsinstruktionen,
Fig. 7 in einem Blockdiagramm die Codierung der Ver-
zweigungs-Statusinformation aus der Instruktion decodierung und die in der Ausführungseinheit
PO977005 909827/0810
- 11 -
erzeugten Signale zur Ergebnisanzeige der Verzweigungsprüffunktion ,
Fig. 8 in einem detaillierten Logikdiagramm die in
Fig. 7 dargestellte Verzweigungs-Ergebnisdecodierung,
Fig. 9 in einem Blockdiagramm die zur Steuerung der
Ein-/Ausgabe von drei Instruktionspuffern verwendet werden,
Fig. 10 in einem Zeitdiagramm die verschiedenen zeitlichen Beziehungen zwischen einer Anforderung eines Instruktionsabrufes zum Speicher und der Rückgabe der Instruktionen zur Eingabe in die Instruktionspuffer,
Fig. 11 ein Zustandsdiagramm der Instruktions-Abruffolge schaltung, die zu jedem Instruktionspuffer gehört,
Fig. 12 in einem Zeitdiagramm die Beziehung der In-
struktionsdecodierung zur Instruktionsschlange und der Präsentation von Instruktionen, der Reih nach, an eine Ausführungseinheit und
Fign. 13A und in logischen Diagrammen die Ein-/Ausgabesteue-
3B
rung eines Instruktionspuffers.
Fig. 1 zeigt die Hauptfunktionsteile eines Hochleistungs-Datenverarbeitungssystems. Ein Hauptteil der vorliegenden Erfindung findet sich in einer Instruktions-Vorverarbeitungsfunktionjs einheit (IPPF) 20. Die IPPF 20 kommuniziert mit einer Prozes-
PO977005 909827/0810
285M06
sor-Speichersteuerung (PSCF) 21, die einen Hochgeschwindigkeitsspeicher für die Instruktionsfolgen vom Prozessorspeijcher 22 und zur Einleitung der Übertragung von Datenoperanden an eine Ausführungseinheit oder E-Funktion 23 enthält. Die IPPF 20 kommuniziert auch mit der E-Funktion 23 zur übertragung einzelner Instruktionen der Reihe nach an die E-Funktion 23. Die Ergebnisse von Instruktionsausführungen in der E-Funktion 23 werden an die IPPF 20 zurückgegeben, um so die Reihenfolge der Instruktionsausführung steuern zu können.
JDie übrigen Teile des Verarbeitungssystems, die mit dem Verständnis der vorliegenden Erfindung nichts zu tun haben, [umfassen Kanäle 24, eine Konsole 25 und die Wartungs- und Wiederholungs steuerung 2 6.
Fig. 2 zeigt die Hauptfunktionsbereiche in der IPPF 20 der Fig. 1. Dazu gehören eine Drei-Instruktionsstrom-Vorabrufschaltung 27, ein Instruktionsvordecodierer 28, eine Adressenauf Stellschaltung 29 sowie Sperren 30. Die IPPF 20 hat die Möglichkeit, vier vordecodierte Instruktionen zu speichern oder in eine Schlange zu setzen, um sie einzeln der Reihe nach an eine E-Funktion 23 zu geben. Dazu gehört Information über abzurufende Datenoperanden, zu benutzende allgemeine Register, Startadreßinformation für einen vom Mikroprogramm gesteuerten Steuerspeicher und verschiedene andere noch vollständiger zu beschreibende Steuersignale. Viele zu decodierende Instruktionen verlangen eine Adreßberechnung in der IPPF 20, und daher ist die AdressenaufStellschaltung 29 vorgesehen. Mit einer Anzahl von Sperren 30 wird sichergestellt, daß die richtigen Daten für die Adressenaufstellung und die Instruktions-Vordecodierung zur Verfügung stehen, bevor die decodierte Instruktionsinformation in eine viergliedrige Warteschlange eingetragen wird.
po 977 005 909827/0810
Eine Hauptfunktion der vorliegenden Erfindung besteht in der Steuerung der logischen und Leitschaltungen in der Drei-Instruktionsstrom-Vorabruf schaltung 27. Diese Einrichtung enthält drei separate Instruktionspuff^r, die jeweils mehrere Instruktionen aus drei separaten Instruktionsströmen speichern können. Diese Instruktionen sind einzeln im Instruktionsvordecodierer 28 zu verwenden. Die Steuerung der drei separaten Instruktionspuffer aufgrund des Auftretens von bedingten Verzweigungsinstruktionen ist das Hauptanliegen der vorliegenden Erfindung.
Wenn die Fign. 3A, 3B und 3C vertikal untereinandergelegt werden, ist die IPPF 20 im einzelnen zu sehen. Fig. 3A enthält in Form eines Blockdiagrammes die Instruktionsabruf- und Decodier schaltung. Fig. 3B enthält die Adreßberechnungsschaltung und Fig. 3C zeigt einige zur IPPF 20 gehörende Sperren.
In Fig. 3A sind drei separate Sätze von Instruktionspufferregistern 31, 32 und 33 gezeigt. Jeder Satz empfängt im gewählten Zustand jedesmal, wenn eine Instruktionsabrufanforjlerung an die PSCF 21 gesendet wird, 64 Bits der Instruktionsinformation, wobei besonders der mit I-Buffer A bezeichnete £>atz zu beachten ist. Abhängig von dem zu einem bestimmten Satz von Instruktionspuffern gehörenden Wert im Instruktions-Adreßfcähler werden die 64 Instruktionsinformationsbits in ein bestimmtes der gezeigten vier Register geleitet. Daher können 52, jeweils acht Bit große Bytes von Instruktionsinformation vorher abgerufen und in jedem Satz der Instruktionspuffer 31, 32 oder 33 gespeichert werden.
System werden Instruktionen einzeln in der IPPF 20 decodiert. Die jeweils in der richtigen Reihenfolge zu (jlecodierende Instruktion wird in ein I-Register 35 übertragen, das 32 Bits der Instruktionsinformation enthält. Eine Reihe von Toren 36 wird entsprechend der Information
po 977 005 9 0 9 8 2 7/0810
285b-
|im Instruktionsadreßzähler so erregt, daß die richtige Instruktion von dem gegenwärtig benutzten Instruktionspuffer während der Instruktionsausführung in das I-Register 35 zur nachträglichen Decodierung übertragen wird. Die Reihe der !gezeigten Tore 36 braucht man für die im IBM System/360 und ; Jim IBM System/370 mögliche unterschiedliche Instruktionslänge, ■ •die zwischen zwei und vier oder mehr, jeweils acht Bit großen !Bytes liegen kann. Verschiedene Torkombinationen werden eingeschaltet. Dadurch wird sichergestellt, daß für jede zu de- : [codierende Instruktion die acht Bits des Operationscodes in : Jdie Bits 0 bis 7 des I-Registers 35 gesetzt werden. Abhängig ; ;vom Format der jeweils vom I-Register 35 decodierten Injstruktion können die Bits 8 bis 15 Maskenbits, codierte In-I formation über die Länge der variablen Feldoperanden oder ,Adressen von allgemeinen Registern sein. Die Bits 12 bis 15 l'und 16 bis 19 können bestimmte allgemeine Register, entsprejchend der Adreßformulierung in den IBM Systemen/360 und /370 : !sein. Die Bits 20 bis 31 von vier Byte großen Instruktionen \ sind ein relatives Adreßfeld, das für die Erzeugung der Adreßjinformation zur Ansteuerung von Datenoperanden vom Speicher !
mit berücksichtigt wird.
Die Instruktionsdecodiereinrichtung der IPPF 20 enthält den Decodierer 37, den Matrixdecodierer 38 und den Steuerspeicheradressenregister- (CSAR) Decodierer 39. Zur Decodierung einer jeden Instruktion im I-Register 35 werden zwei Taktzyklen im System gebraucht. Während des ersten Taktzyklus muß bestimmte Information über die decodierte Instruktion möglichst schnell zur Verfügung stehen, und diese wird durch den Decodierer 37 geliefert. Erst beim zweiten Zyklus einer jeden Instruktionsdecodierung wird bestimmte andere Information gebraucht, die man vom Matrixdecodierer 38 bekommt, wo die OP-Codebits 0 bis 7 zur Ansteuerung des Randomspeichers für mehrere Steuersignalleitungen 40 und 41 benutzt werden.
po 977 005 90982 7/0810
285b106
Die Ergebnisse der gerade beschriebenen Instruktionsdecodieirung werden als Steuerinformation für die Instruktionsaus-ι führung in einem der vier Register einer Instruktionswarte-I schlange 42 gespeichert. Ein Teil der Ausführungs-Steueriniformation wird auf einer Leitung 43 empfangen, und zwar die
,acht Bits des OP-Code, der die von der Ε-Funktionseinheit aus- !zuführende Grundfunktion angibt. In vielen bekannten mikro- ;programmierten Steuersystemen, in denen der Steuerspeicher jMikroprogramme enthält, würden die acht OP-Code-Bits zur !Adressierung der ersten Mikroinstruktion einer Folge von Mikroinstruktionen benutzt, um die Instruktion auszuführen. !üm die Leistung des MikroSteuersystems zu verbessern, sind I zusätzliche binäre Bits für den ersten Zugriffszyklus zum iSteuerspeicher auf der Leitung 44 vorgesehen, die aus dem
ιCSAR-Decodierer 39 entwickelt wurden, der auf in den Bits I8 bis 15 der decodierten Instruktion enthaltene Masken-'information und die Steuersignalleitungen 41 vom Matrixdecodierer 38 anspricht. Zusätzliche Ausführungssteuerinformation kommt vom Matrixdecodierer 38 auf der Leitung Die Leitung 45 stellt weiterhin Operanden-Adreßinformation von der Adreßaufstellschaltung dar, die noch in Verbindung mit Fig. 3B zu beschreiben ist. Die Ausführungs-Steuerinformation von einem der vier Register der Instruktionswarteschlange 42 wird für jede Ausführung an die E-Funktion 23 übertragen.
Der Vorabruf von Instruktionen in einer bestimmten Instruktion reihenfolge A, B oder C in einen bestimmten Instruktionspuffer 31 bis 33 läuft parallel mit der Präsentation einer einzelnen Instruktion an das I-Register 35 und der Präsentation von Ausführungssteuerinformation an ein leeres Register der vier Register der Instruktionswarteschlange 42 weiter. Ein Signal von der E-Funktion 23, das anzeigt, daß die E-Funktion 23 eine Instruktion fertig ausgeführt hatf leitet die Ausführungssteuerinformation für die nächste In-
P0 977 °05 909827/0819
j 285blO(i
! - 16 -
struktion der Reihe von einem der vier Register der Instruk-.tionswarteschlange 42 zur Ausführung in die E-Funktion 23. Solange ein leeres Register in der Instruktionswarteschlange 42 zur Verfügung steht, kann die Decodierung und Eingabe von Ausführungssteuerinformation in die leere Instruktionswarte- ;schlage 42 fortgesetzt werden.
Außer der Tatsache, daß alle vier Register der Instruktions-■warteschlange 42 voll sind und somit anzeigen, daß die Instruktionsdecodierung ausgesetzt werden sollte, können bestimmte andere, allgemein als Sperren klassifizierte Maschinenbedingungen, die Instruktionsdecodierung aussetzen. Ein Teil der Instruktionsdecodierung ist die Bildung von Speicheradressen aus Kombinationen von in jeder Instruktion enthaltenen Adreßbits und dem Dateninhalt der durch die In-Istruktion adressierbaren allgemeinen Register, entsprechend der Architektur der IBM Systeme 360 und 370. Eine, die In-Istruktionsdecodierung verhindernde oder aussetzende Sperre würde ausgelöst, wenn eine in der Warteschlange 42 enthaltenen [Instruktion nicht ausgeführt wurde und Information in ein !allgemeines Register laden soll, um eine Adresse einer gegenwärtig im I-Register 35 enthaltenen Instruktion zu bilden. In diesem Fall muß die Decodierung der im I-Register 35 enthaltenen Instruktion ausgesetzt werden, bis die Information von der nichtausgeführten Instruktion zur Verfügung steht.
Die Architektur der IBM Systeme 360 und 370 schreibt der Instruktion adressierbare allgemeine Register vor. Diese sind normalerweise ebenso, wie in dem vorliegenden System, in der Ausführungseinheit enthalten und werden dort benutzt. Um die Adreßberechnung jedoch zu beschleunigen, ist eine zweite Kopie dieser 16 allgemeinen Register in der IPPF 20 enthalten. Diese sind bei 46 gezeigt. Der normale Weg für die Eingabe von Information in die allgemeinen Register 46 läuft über das Arbeitsregister C-REG in der E-Funktion 23 und dann über eine
P0 977 °05 90 98 27/0810
285b106
Leitung 47 in die allgemeinen Register 46. Die Leitungen 48 und 49 empfangen Adreßinformation für die allgemeinen Register vom I-Register 35. Die Ausgabe des allgemeinen Registers 46 wird zusammen mit den Bz*-s 20 bis 31 der relativen Adresse vom I-Register 35 über die Leitungen 52 an die im Zusammenhang mit Fig. 3B noch zu beschreibende Adreßrechenanlage gegeben.
In Fig. 3B ist der größte Teil der Adreßaufstellschaltung der IPPF 20 gezeigt. Ein Adreßaddierer 53 empfängt die relativen Adreßbits 20 bis 31 auf der Leitung 52 und die Ausgabe der allgemeinen Register 46 auf den Leitungen 50 und 51 und liefert die Speicheradreßinformation für die IBM Systeme 360 und 370, die eine Summierung der 12 relativen Adreßbits 20 bis 31 (D2), von 24, eine Basisadresse darstellenden Adreßbits (B2) und von 24 Bits der Indexinformation (X2) sind.
Eine weitere Eingabe zum Adreßaddierer 53 kommt von einer Leitung 54, die von einer ümgehungsschaltung 55 in Fig. 3A kommt. Mit der ümgehungsschaltung 55 werden die Sperrsituationen erkannt, in denen die im E-Register 35 enthaltene Instruktion Daten von einem allgemeinen Register 46 verlangt, die dort noch nicht vom Speicher aufgrund einer vorher decodierten Instruktion empfangen wurden. Wenn die Daten vom !Speicher aufgrund der vorher decodierten Instruktion zurückgegeben werden, werden die Bits in den Positionen 40 bis |63 auf der Pufferdaten-Ausgangsleitung 34 durch die Umgehungsischaltung 55 an den richtigen Eingang des Adreßaddierers 53 ■angelegt. Gleichzeitig werden die Daten auf normale Weise an |die allgemeinen Register in der E-Funktion 23 und über das ■C-Register in die allgemeinen Register 46 auf der Leitung (zurückgegeben. Dadurch kann die Instruktionsdecodierung der Instruktion im I-Register 35 wenigstens einen Zyklus früher iwieder aufgenommen werden, als wenn die Umgehungsschaltung
po 977 005 909827/0810
285b 108
nicht vorhanden wäre.
Fig. 3B zeigt eine weitere in Fig. 2 dargestellte AdreßaufStellschaltung 29. Ein Längeninkrementierer 56 hat einen Eingang von 24 Bits und einen anderen von acht Bits und einen Ausgang von 24 Bits. Die 24 Eingangsbits kommen von einer Triggergruppe, dem sogenannten Prozessadreßregister (PRAR) 57 und die acht Eingabebits kommen von einer Triggergruppe mit der Bezeichnung Längenregister (LR) 58. Die 24 Ausgabebits gehen auf eine Gruppe von Verriegelungen, die sogenannten Prozeßaddiererverriegelungen (PRAL) 59, die Adreßerhöhungsverriegelungen 60 und verschiedene, noch näher zu bezeichnende Vergleicherschaltungen. Die Eingabe zum PRAR 57 kommt von den PRAL) 59 und kann von Adreßaddierer 53, einem Adreßinkrementierer 61 oder einer Sammelleitung 62 von der E-Funktion 23 initialisiert werden. Die Eingabe zum LR 58 kommt von der Längenlogik 63 in Fig. 3A über Längenriegel (LL) 64 und ist das Ergebnis der notwendigen Decodierung der Instruktionen mit Operanden unterschiedlicher Feldlänge.
Ein weiterer Satz von Verriegelungen 65 ist am Ausgang des Adreßaddierers 53 dargestellt. Die Adreßinformation im PRAL 59 wird zum Speicherzugriff auf einer Sammelleitung 66 an die PSCF 21 übertragen. Die Ausgabe der Adreßerhöhungsverriegelungen 60 wird auf einer Sammelleitung 67 an ein Arbeitsregister, das C-Register, der E-Funktion 23 gegeben. Die !auf der Sammelleitung 67 an die E-Funktion 23 übertragene JAdreßinformation wird von der E-Funktion 23 gebraucht, wenn sie Adreßinformation an die PSCF 21 senden soll.
In Fig. 3B sind mehrere, jeweils 24 Bit große Adreßregister !gezeigt, die Adreßinformation vom Ausgang der Adreßaddierer- !verriegelung (AAL) 65 oder von den Adreßerhöhungsverriege-
,lungen 60 empfangen und Ausgänge an den Adreßinkrementierer J61 auf einer Sammelleitung 68 zurückgeben. Das Übersetzungs-
po 977 005 909827/08 10
285b ίΟ6
ausnahme-Adreßregister (TEA) 69 wird während eines Systemstatus eines virtuellen Speichersystems benutzt, worin vor den Zugriffsanforderungen zum Speicher, wo Adreßübersetzungen vorher nicht durchgeführt werden konnten, eine Probesuche für eine Adreßübersetzung versucht werden kann. Das TEA 69 hält die zu einer Zugriffsausnahme, die während der Vorverarbeitung einer Instruktion im I-Register 35 entdeckt wurde, gehörende Adresse, hat jedoch nur im Versuchsbetrieb Bedeutung. Das Übersetzungsausnahme-Adreßregister 69 kann von den Adreßaddiererverriegelungen 65 oder von den AdreßerhöhungsVerriegelungen 60 eingestellt werden.
Ein Quellenadreßregister (SRC) 70 und ein Bestimmungsadreßregister (DSD) 71 haben einen Umfang von jeweils 24 Bytes. rSie enthalten primär die Quellen- und Bestimmungsadresse für einen Abruf, gemäß der Benutzung von Quellen- und Bestimmungsort in den IBM Systemen 360 und 370. Die Register 70 und 71 =können von den Adreßaddiererverriegelungen 65 für von der ,IPPF 20 erzeugte Anfrage und von der Sammelleitung 62 über .die Adreßerhöhungsverriegelungen 60 für von der E-Funktion ■kommende Anfragen initialisiert werden. Die Register 70 und :71 können über den Adreßinkrementierer 61 herauf oder herunter-· !gesetzt werden und ihr Inhalt kann der E-Funktion 23 auf der ι Sammelleitung 67 zur Verfügung gestellt werden.
Jeweils 24 bitgroße Adreßregister 72 bis 77 mit den Bezeichnungen OAA bis OAF gehören jeweils einzeln zu sechs Operandenpuffern in der E-Funktion 23. Ein Paar aus Operandenadreßregister und Operandenpuffer, zusammen mit der zugehörigen Steuefrung kann ein Doppelwort aus der PSCF 21 holen und festhalten. Der Adreßinkrementierer 61 steht für den Operandenabruf zur Verfügung. Der Inhalt eines jeden Operandenadreßregisters 72 bis 77 kann in den Adreßinkrementierer 61 geleitet und dort um 0 oder 8 erhöht werden. Die Ausgabe des Adreßinkrementie-
po 977 005 909827/0810
rer 61 kann auf jedes Operandenadreßregister 72 bis 77 zurückgeleitet werden. In der IPPF 20 finden sich zwei Abrufeinrichtungen, die die Register 72 bis 77 gemeinsam benutzen, und zwar die Bestimmungsabrufeinrichtung und die Quellenabrufeinrichtung. Wenn beide Einrichtungen aktiv sind, kann jede drei Operandenadreßregister benutzen. Wenn bei bestimmten Instruktionen nur die Quelleneinrichtung aktiv ist, kann sie alle verfügbaren Operandenregister benutzen.
Die übrigen, jeweils 24 Bit großen Adreßregister 78, 79 und 80 mit der Bezeichnung IAA, IAB und IAC gehören zu den Instruktionspuffern 31, 32 bzw. 33 und stellen Instruktionszähler dar. Der Inhalt der aktiven Instruktionsadreßregister 78, 79 oder 80, mit dem Instruktionen von der PSCF 21 auf der Sammelleitung 35 der Fig. 3A abgerufen werden, wird unter Steuerung seiner Reihenfolgeschaltung zwischen den einzelnen Abrufen um jeweils 8 erhöht. Der Inhalt kann auch um 8 oder 16 im Adreßinkrementierer 61 erniedrigt werden, wenn die PSCF 21 eine oder mehrere Anforderungen zurückweist und die Adres-'se neu erstellt werden muß.
ι
iZur weiteren Beschreibung der Instruktionsadressierung und !Manipulation der Adreßinformation in den Instruktionsadreßjregistern 78 bis 80 zeigt Fig. 3C Differenzregister 81, 82 und 83, die zu den Instruktionsadreßregistern 78 bis 80 'gehören. Jedes der Differenzregister 81 bis 83 enthält in ι fünf Bits den Wert, der vom Inhalt des zugehörigen Adreßregister 78, 79 oder 80 subtrahiert werden muß, um den Instruktionszählerwert des zugehörigen Instruktionsstromes A, B oder C in den I-Puffern 31 bis 33 in Fig. 3A zu bekommen. Wenn eines der Instruktionsadreßregister 78 bis 80 mit einem neuen Wert geladen wird, wird das zugehörige Differenzregister 81, 82 oder 83 auf 0 gesetzt. Danach wird das Differenzregister des jeweils aktiven I-Stromes A, B oder C bei jedem Zyklus fortgeschrieben. Wenn der Inhalt des zugehörigen In-
po 977 005 9 0 9 8 2 7/0810
2 8 b b J O 6
struktionsadreßregisters herauf- oder heruntergesetzt wird, wird das zugehörige Differenzregister 81, 82 oder 83 durch einen zugehörigen Addierer 84, 85 oder 86 um den gleichen Betrag, der +8, -8 oder -16 sein kann- fortgeschrieben. Während des ersten Ausführungszyklus vom zugeriörigen Instruktionsstrom A, B oder C werden die Differenzregister 81, 82 oder 83 um einen Wert heruntergesetzt, der genau so groß ist wie die an das Instruktionsregister 35 der Fig. 3A übertragene Instruktion lang ist. Der Wert kann -2, -4 oder -6 sein Wenn die an die E-Punktion 23 von der Instruktionswarteschlange 42 der Fig. 3A geleitete Instruktion eine Verzweigungs- und Verbindungsinstruktion im IBM System 360 oder 370 ist, wird das Differenzregister 81 bis 83, das zu dem Instruktionsstrom im I-Puffer 31, 32 oder 33 gehört, von dem die Verzweigungsund Verbindungsinstruktion kommt, um einen weiteren Wert heruntergesetzt, der genau so groß ist wie die Instruktion lang ist. Wenn der Instruktionszählerwert für einen bestimmten Instruktionsstrom in den I-Puffern 31 bis 33 errechnet werden muß, wird der Inhalt des zugehörigen Differenzregisters 81 bis 83 vom Inhalt des zugehörigen Instruktionsadreßregxsters 78 bis 80 im Adreßinkrementierer 61 subtrahiert. Das übrige Blockdiagramm der Fig. 3C bestimmt sich auf bestimmte Verriegelungsschaltungen, die in Fig. 2 allgemein bei 30 darge- j stellt sind. Eine Anzahl von Vergleicherschaltungen, von denen eine bei 87 dargestellt ist, erkennt verschiedene Gleichheitsbedingungen zwischen der Adreßinformation auf der Leitung 88 vom Längeninkrementierer 56 der Fig. 3B und der Adreßinfor- I mation auf der Leitung 89 vom PRAR 57 der Fig. 3B. Zur Archi- ; tektur des IBM Systems 360 oder 370 gehört auch das sogenannte | SS-Instruktionsformat, in dem zwei Operanden mit jeweils | !variabler Länge bezeichnet werden. Ein zum Vergleicher 87 ge- I ^hörender weiterer Vergleicher 90 erkennt eine Bedingung, die ; als SS-Wortüberlappung erkannt werden muß. Diese Bedingung zeigt an, daß Quellen und Bestimmungsoperand Felder haben, die jsich destruktiv überlappen.
P0 977 °05 909827/0810
285b 106
In einer anderen Situation, die erkannt und verarbeitet werden muß, ändert eine Instruktion in der Instruktionswarteschlange 42 der Fig. 3A, die ausgeführt wird oder die Ausführung erwartet, einen Operanden im Speicher und eine nachfolgende Instruktion muß denselben Operanden von derselben Stelle abrufen. In diesem Fall dürfen die Daten für die zuletzt genannte Instruktion erst abgerufen werden, nachdem die Daten aus der früheren Operation gespeichert sind. Die Architektur des Systems 370 verlangt die Erkennung dieser Operandenspeicher-Vergleichsbedingung auch in Situationen, wo die beiden Referenzen zu der Stelle mit verschiedenen virtuellen Adressen gemacht werden. Dazu ignorieren die Schaltungen, die den Operandenspeichervergleich erkennen, die Bits 8 bis 20, so daß einige, nichtreale Vergleiche abgefühlt werden. Um die Operandenspeicher-Vergleichsbedingung zu erkennen, gehören zu jeder Registerposition in der Instruktionswarteschlange 42 zwei Adressen, die die Anfangs- und Endadresse (Modulo 2K) des Speicherfeldes sind, das durch die Instruktion verändert wird.
!Die untere Grenzadresse ist die logische Adresse von der Instruktion und die obere Grenzadresse wird im Längeninkremenjtierer 56 der Fig. 3B erzeugt. Zu jedem Register in der In-'struktionswarteschlange 42 gehört auch ein Bit, das angibt, daß die Instruktion den Speicher ändert. Die Adreßinformation
'für die untere Grenzadresse (LL) für jedes Instruktionsi
warteschlangenregister (O bis 3) wird in eines der zuge-I hörigen Register 91 bis 94 gesetzt, und die Adreßinformation für die obere Grenzadresse (UL) wird in eines der zugehörigen Register 95 bis 98 gesetzt. Wenn Operandenadreßinformation im Längeninkrementierer 56 erzeugt wird, wird das auf den Sammelleitungen 88 und 89 angezeigt. Die Vergleicherschaltungen 99 und 100 erkennen die Situation, in der eine im I-Register 35 decodierte Instruktion verzögert werden muß, bis eine vorhergehende Speicherung ausgeführt ist.
po 977 005 909827/0810
Eine andere Verriegelungssituation wird durch die Vergleichs-
! schaltungen 101 und 102 erkannt, die eine Situation erkennen, ' in der eine vom Speicher abgerufene Instruktion dieselbe Adresse hat, die auch auf den Sammelleitungen 88 oder 89 für eine ! !decodierte Instruktion angegeben ist, die Daten in dieselbe : Stelle speichert, wie die vorher abgerufene Instruktion.
Fig. 4 zeigt in Form eines Blockdiagrammes einige Hauptregister und Hauptdatenbahnen in der E-Funktion 23 der Fig. 2. Die Haupteinheit der Ε-Funktion ist eine arithmetische und logische Einheit (ALU) 103, die aus einem 64 Bit großen Addierer, einem 8 Bit großen Addierer, einem 64 Bit großen Schieber und einer Multiplikationseinheit besteht. Daten für die ALU 103 werden von einem Satz von Arbeitsregistern 104 mit der Beschriftung A, B, C und D angelegt. Die Arbeitsregister 104 sind durch programmierte Instruktionen nicht adressierbar, können aber über eine Ausführungsreihenfolge angesteuert wer- ; den. Ein Arbeitsspeicher 105 ist in der Ε-Funktion enthalten und besteht aus 16 allgemeinen Registern und vier Gleitkommaregistern, wie sie in der Architektur der IBM Systeme 360 und |37O vorgeschrieben sind, und ist durch Information in Programm-i Instruktionen adressierbar. Wenn Daten in eines der Arbeitsjspeicherregister 105 vom Hauptspeicher eingegeben werden [sollen, werden sie von der PSCF 21 auf einer Leitung 106 !empfangen. Die Operandenpuffer A bis F wurden bereits im Zusammenhang mit den zugehörigen Operandenadreßregistern 72 bis 77 in Fig. 3B erwähnt. Die auf der Leitung 106 empfangenen Daten werden durch eines der Arbeitsregister 104 und dann über eine Leitung 108 an das adressierte Arbeitsspeicherregister 105 geleitet. Die während der Ausführung einer Instruktion zu verändernde Adresse des Arbeitsspeicherregisters 105 wird in die Arbeitsspeicher-Adreßregister 109 eingegeben, die die Adresse wiederum über die Leitung 110 und 111 empfangen, und zwar als Teil der AusführungsSteuerinformation, die von der
P0 977 °05 909827/0810
: 2855 ί OB
rlnstruktionswarteschlange 42 in Fig. 3A übertragen wird. In [Fig. 3A ist bekanntlich ein Satz von adressierbaren allgemeinen Registern 46 und die Sammelleitung 47 gezeigt, durch die Daten in ein adressiertes Arbeitsspeicherregister 105 gespeichert werden können. Diese werden ebenfalls über das C-Arbeitsregister in das entsprechende Register der allgemeinen IPPF-Register 46 übertragen.
Andere, von der Instruktionswarteschlange 42 übertragene Ausführungssteuer-Information, wird in ein E-Register 112 eingegeben. Diese Information enthält den acht Bit großen OP-Code der auszuführenden Instruktion und die nachfolgenden acht bits der Instruktionsinformation, die entweder Adressen der lallgemeinen Register 105 oder eine Längeninformation für die (Operanden mit veränderlicher Feldlänge sein können.
jAlle, in der ALU 103 zu nutzenden Daten, können von zwei [Registern des Arbeitsspeichers 105 über die Arbeitsregister ;104, ein Operand vom Arbeitsseicher 105 und ein anderer Operand [vom Operandenpuffer 107 oder auch von der ALU in ein Arbeitsregister gespeicherte Zwischenergebnisse auf einer Sammelleitung 113 kommen. Im Hauptspeicher zu speichernde Daten von der Ε-Funktion kommen auf einer Sammelleitung 114 am Ausgang der | 64 Bitschieber. Die Sammelleitung 62 vom Ausgang des 64 Bitschiebers ist außerdem der Eingang zu den Adreßerhöhungsver- ; riegelungen 60 in Fig. 3B. :
Bei der Beschreibung der vorliegenden Erfindung werden der Verzweigungsstatus und Verzweigungsergebnisse erwähnt. In Form sines Blockdiagrammes-Resultatlogik 115 dargestellt, die als Teil der Ausführungssteuerinformation von der Instruktionswarteschlange 42 Verzweigungsstatusinformation auf den Leitungen 116 empfängt. Die Verzweigungsstatussignale auf der Leitung 116 zeigen die Ausführung einer bestimmten Art von Ver-
po 977 °05 90 9827/0810
Zweigungsinstruktionen an und werden logisch mit Ergebnissen von der ALU 103 auf einer Leitung 117 kombiniert, um an die IPPF 20 die Ergebnisse der Datenmanipulationen zurückzumelden, die den Erfolg bedingter Verzweigung-Instruktionen bestimmen. Auf den Leitungen 118, 119 und 120 werden drei Signale an die IPPF zurückgegeben, um die richtige Reihenfolge der Instruktionsausführung aufgrund von Verzweigungsinstruktionen zu steuern. Ein Signal auf der Leitung 118, mit der Bezeichnung BC erfolgreich, zeigt an, ob eine bedingte Verzweigungsinstruktion erfolgreich war. Eine solche Instruktion stellt durch Abfrage eines bestimmten Bedingungscodes fest, ob die Zielinstruktion einer Verzweigungsinstruktion angesteuert werden soll. Ein Signal auf der Leitung 119, mit der Beschriftung B = 1, zeigt die Ergebnisse einer Verzweigungsinstruktion an, die den Wert 0 im B-Arbeitsregister sucht. Ein Signal auf der Leitung 120, mit der Beschriftung B > A zeigt an, daß der Inhalt des Arbeitsregisters B größer ist als der Inhalt des Arbeitsregisters A. Einzelheiten über die Erzeugung der Verzweigungs-Zustandssignale auf den Leitungen 116 und die Benutzung der Verzweigungsergebnissignale auf den Leitungen 118, 119 und 120 werden später noch genauer beschrieben.
Die Grundreihenfolge für die Ausführung einer Instruktion wird durch Mikroprogramme oder Mikroxnstruktionsfolgen von einem Steuerspeicher 121 gesteuert. Jede aus dem Steuerspeicher 121 ausgelesene Mikroinstruktion wird in ein Steuerßpeicher-Datenregister 122 eingegeben. Durch Decodierung der verschiedenen Felder einer Mikroinstruktion im Steuerspeicherpatenregister 122 wird eine Anzahl von Signalen auf den Steuerieitungen 123 erzeugt, mit denen die Informationsleitung innerhalb der E-Funktion 23 erregt und der Reihe nach abgewickelt wird, über die Leitungen 124 wird Adreßinformation geführt, die im Steuerspeicher-Adreßregister (CSAR) 125 benutzt Wird und die Reihenfolge der aus dem Steuerspeicher 121 ge-
po 977 005 909827/0810
lesenen Mikroinstruktionen steuert.
Wenn eine bestimmte, von der IPPF empfangene Instruktion fertig ausgeführt ist, gibt das Steuerspeicher-Datenregister ein Signal IPPF END OP über die Leitung 126 an die IPPF 20. Aufgrund dieses Signales auf der Leitung 126 wird die nächste, in der Instruktionswarteschlange 42 der Fig. 3A, gespeicherte Ausführungssteuerinformation in die Ε-Funktion übertragen. Die vom Steuerspeicher 121 zu holende erste Mikroinstruktion wird von einem Decodierer 127 angesteuert, basierend auf den zehn in das Steuerspeicher-Adreßregister 125 von der Instruktionswarteschlange 42 gesetzten Adreßbits. Die zehn Adreßbits ergeben sich aus der Übertragung der acht Bits des auszuführenden OP-Code auf den Leitungen 128. Außerdem erhält man die Bits 3 und 4 der Anfangsadresse im Steuerspeicher-Adreßregister 125 von dem vorher erwähnten, in Fig. 3A, gezeigten CSAR-Decodierer 39 auf den Leitungen 129 und 130.
Fig. 5 zeigt verschiedene bedingte Verzweigungsinstruktionen, die in den IBM Systemen 360 und 370 benutzt werden. Die vier Grundinstruktionen haben die Namen "bedinge Verzweigung", "Verzweigung bei Zahl", "Verzweigung bei Index niedrig/gleich oder hoch" und "Verzweigen und Verbinden". Die meisten dieser Instruktionen stehen in zwei verschiedenen Formaten. Als Beispiel sein die bedingte Verzweigungsinstruktion genannt, in der die Zieladresse für die Verzweigung in einem allgemeinen Register enthalten ist, das durch vier Bits mit der Bezeichnung R2 angegeben ist. In dem anderen Format ist die ,Instruktionszieladresse angegeben durch die Adreßformulierung, die man durch Addition des Inhaltes des Basisregisters B2, ;des Indexregisters X2 und des relativen Adreßfeldes D2 der Instruktion erhält. In beiden Formaten geben vier Bits mit der Bezeichnung M1 eine Maske an, die die jeweilige Bedingungcodeeinstellung für eine Zweigung anzeigt. Wenn der Bedingungscode
po 977 005 909827/08 10
"I - 27 - 28 5 5 1 Οβ
jso eingestellt ist wie der durch die Maske M1 angegebene Code, ist die Verzweigung erfolgreich. Wenn die Bedingungsbodeeinstellung mit der Maske M1 übereinstimmt, empfängt die IPPF 20 das Signal BC erfolgreich auf der Leitung 118 der JFig. 4. In der Instruktion verzweigen bei Zahl wird der !inhalt des durch R1 angegebenen allgemeinen Registers algebraisch um 1 reduziert. Wenn das Ergebnis 0 ist, läuft die normale Instruktionsreihen in Folge mit der nächsten Instruktion in der Reihe weiter * Wenn das Ergebnis von 0 verschieden ist, wird die nächste auszuführende Instruktion von der Instruktionsstieladresse angesteuert. Die Ergebnisse der Inhaltsverhöhung des durch R1 angegebenen Registers werden in den B-Arbeitsregistern festgehalten und auf der Leitung 119 mit der Beschriftung B = 1 signalisiert.
;Es gibt zwei Instruktionen "Verzweigen auf Index", und zwar ,eine "Verzweigen auf Index hoch" und eine andere "Verzweigen .auf Index gleich oder niedrig". In diesen Instruktionen .wird zu dem durch R1 bezeichneten Operanden ein Wert addiert und die Summe algebraisch mit einem Vergleichswert verjglichen. Hinterher wird die Summe an die Stelle des ersten
'Operanden gesetzt, ohne Rücksicht auf die evt. erfolgte Verzweigung. In der Instruktion "Verzweigen bei Index hoch" jwird die Instruktionsadresse durch die Instruktionszieladresse ersetzt, wenn die Summe hoch ist. Bei der Instruktion "Verzweigen auf Index niedrig oder gleich", wird die Instruktionsadresse durch die InstruktionsZieladresse ersetzt, wenn die Summe niedrig oder gleich ist. Die verlangten Vergleichsergebnisse werden auf der Leitung 120 angegeben, bezeichnet mit B > A.
In der Instruktion "Verzweigen und Verbinden" wird der Instruktionszählerwert als Verbindungsinformation in dem durch R1 bezeichneten allgemeinen Register gespeichert. Hinterher wird aus der Zielinstruktionsadreß-Information die
po 977 005 9 0 9 8 2 7/081 Q
2856
'nächste Instruktion genommen. Diese Instruktion wird dadurch
!bedingt, daß der Programmierer die Möglichkeit hat, eine Null in das R2-Feld der Instruktion BALR zu setzen. In diesem Fall wird die Verbindungsinformation in dem durch R1
bezeichneten Register gespeichert, jedoch nicht zur Zieli
,adresse verzweigt.
Wenn die bedingten Verzweigungsinstruktionen der IBM Systeme !360 oder 370 benutzt werden, dann werden sie so benutzt, Jdaß man raten kann, ob die Verzweigungsbedingung vorliegt ioder nicht, und daß die Zielinstruktion als nächste ausge- ;führt wird. Außerdem kann ein Programmierer bestimmte Bi tmuster in die Instruktionsfelder mit Maskenbits setzen oder ein allgemeines Register Null angeben, damit eine Verzweigungsinstruktion immer oder niemals erfolgreich ist.
Fig. 6 zeigt die logische Schaltung zur Vorhersage des Erfolges oder Mißerfolges beim Erkennen einer bestimmten j Verzweigungsbedingung. Eine ODER-Schaltung 131 zeigt durch lein Signal auf der Leitung 132 an, daß die Verzweigung wahrscheinlich erfolgreich ist. Eine ODER-Schaltung 133 liefert ein Signal auf die Leitung 134, das durch seine Codierung anzeigt, daß die Verzweigung erfolgreich ist und die Zielinstruktionsadresse benutzt wird. Die ODER-Schaltung 135 liefert ein Signal auf die Leitung 136, wenn der Programmierer bestimmte Informationen in die Instruktionsfelder gesetzt hat, die unveränderlich die nächste Instruktion in der Reihenfolge nach der Verzweigungsinstruktion ausführen lassen. Wie bei der ODER-Schaltung 131 gezeigt ist, wird beim Decodieren einer Instruktion "Verzweigen auf Index" angenommen, daß die Verzweigung erfolgreich ist und daher sollte als nächstes die Zielinstruktion ausgeführt werden. Wenn auf der Leitung 119 andere als die erwarteten Ergebnisse über den Inhalt des B-Registers angezeigt werden, muß eine Korrektur vorgenommen werden, die anschließend beschrieben wird.
po 977 005 90982770810
-29- Ü85SIQ6 j
Es wird ebenfalls angenommen, daß bei der Instruktion "Ver- ! zweigen auf Zahl" die Zielinstruktion gebraucht wird. Im Falle der Instruktion "Verzweigen und Verbinden" (BAL) sollte das als erfolgreich eingestuft werden und wird auch von der ODER-Schaltung 133 tatsächlich so angezeigt, daß jetzt die Zielinstruktion gebraucht und als nächste ausgeführt wird. Wenn der Programmierer jedoch eine Null in das R2-Feld der Instruktion BALR gesetzt hat, wird die Verbindungsinformation gespeichert, es folgt jedoch keine Verzweigung. Die UND-Schaltung 137 in Fig. 6 zeigt diese Situation an und liefert eine Eingabe an die ODER-Schaltung 135, die anzeigt, daß nicht verzweigt wurde. Die UND-Schaltung 138 fühlt die BALR-Instruktion ab, in der das Feld R2 einen von Null verschiedenen Inhalt ab, und liefert ein Ausgangssignal an die ODER-Schaltungen 131 und 133 zur Anzeige dafür, daß es sich um eine : bekannt erfolgreiche Verzweigungsinstruktion handelt.
Aus einer Abfrage der bedingten Verzweigungsinstruktion (BC) bestimmen die UND-Schaltungen 139 und 140, ob das Maskenfeld aus lauter Einsen oder lauter Nullen besteht.
Eine Ausgabe von der UND-Schaltung 139 führt zu einer Ausgabe von der ODER-Schaltung 133, die eine Situation bezeichnet, in der eine Verzweigung immer erfolgreich ist. Die UND-Schaltung 140, die feststellt, daß das Maskenfeld aus lauter NuI- ;len besteht, bezeichnet durch ihr Ausgangssignal eine Situatior !in der der Programmierer in keinem Fall mit dieser Instruktion verzweigen will und daher zeigt die ODER-Schaltung 135 an, daß keine Verzweigungssituation vorliegt. Die UND-Schaltungen und 142 sowie die ODER-Schaltung 143 untersuchen die Felder der bedingten Verzweigungsinstruktion (BCR). Ein Maskenfeld aus lauter Einsen oder lauter Nullen und ein von Null verschiedener Wert oder Null-Wert im Feld R2 bezeichnen die Situationen, in denen nicht immer verzweigt wird, die Verzweigung als erfolgreich bekannt ist oder eine vermutete
PO 977 005 £09827/0816
j -30- 285b
erfolgreiche Bedingung angezeigt wird. Dann muß die eigentliche Ausführung der Instruktion abgewartet werden, um festzustellen, ob die Vermutung richtig war.
Die UND-Schaltungen 144 und 145 untersuchen die Felder der Instruktion "Verzweigen auf Zahl" (BCTR). Wenn das Feld R2 gleich Null ist, wird diese Instruktion nicht als Verzweigungsinstruktion betrachtet. Wenn das Feld R2 von Null verschieden ist, zeigt die ODER-Schaltung 131 an, daß eine wahrscheinlich erfolgreiche Verzweigung vorliegt.
Fig. 7 zeigt die Codierung der Verzweigungsstatussignale, die in die drei Bitpositionen eines von vier Registern der Instruktionswarteschlange 42 eingegeben v/erden. Eine Tabelle 146 zeigt die Codierung der Bits 147, 148 und 149, die in die Verzweigungszustandsbits eines jeden Registers der Instruktionswarteschlange 42 entsprechend dem ausgeführten Instruktionstyp eingegeben werden. Diese Verzweigungsstatusbits werden beispielsweise codiert mit 000, wenn das Instruktionswarteschlangen-Register keine Instruktion enthält oder die eingesetzte Instruktion nicht als Verzweigungsinstruktion zu betrachten ist. Dazu gehören auch die Verzweigungsinstruktionen, jbei denen die in Fig. 6 gezeigte Logikschaltung festgestellt ι 'hat, daß sie nicht als solche zu betrachten sind. Mit 010 \ werden die Verzweigungsstatusbits desjenigen Instruktions- : warteschlangenregisters codiert, das eine bedingte Verzwei- ; gungsinstruktion enthält. Die Codierung 011 wird eingegeben, j wenn die ODER-Schaltung 133 der Fig. 6 ein Ausgangssignal liefert. Die übrigen Codekombinationen zeigen verschiedene andere bedingte Verzweigungsinstruktionen ab.
Der Verzweigungs-Resultatdecodierer 150 kombiniert die Verzweigungsstatusinformation auf den Leitungen 147, 148 und 149, die den Verzweigungsstatusbits des Instruktionswarteschlangenregisters einer Verzweigungsinstruktion enthalten
po 977 005 9098 27/0810
sind, mit den Ausführungsresultatsignalen von der Ε-Funktion !auf den Leitungen 118, 119 oder 120, nachdem die zugehörige bedingte Verzweigungsinstruktion fertig ausgeführt ist.
Die Ergebnisse der VerzweigungsStatusinformation und der Instruktionsausführung, die von der Ε-Funktion signalisiert werden, und der binäre Zustand der Leitung 132 in Fig. 6 zeigen an, ob richtig geraten wurde oder nicht und sie
geben Informationen an die IPPF 20, um sicherzustellen, j daß die nächste, von der Instruktionswarteschlange 42 an die E-Funktion 23, übertragene Instruktion aus dem richtigen der drei Instruktionsströme kommt, d.h., es wird entweder ;die nächste Instruktion nach der Verzweigungsinstruktion oder die Zielinstruktion, die mit der Adreßinformation in der bedingten Verzweigungsinstruktion abgerufen wurde, übertragen. Zu den Ausgangssignalen des Verzweigungs-Resultatdecodierers 150 gehören auch Anzeigesignale für eine erfolgreiche oder erfolglose Verzweigung und für die richtige oder ,falsche Vermutung. Diese verschiedenen Bedingungen werden ,durch Signale auf den Leitungen 151 bis 154 angezeigt.
Fig. 8 zeigt im einzelnen die logische Schaltung des Verzweigungs-Resultatdecodierers 150 der Fig. 7. Die Ergebnissignale für die Verzweigungsausführung auf den Leitungen 118, 119 und 120 sind ebenso dargestellt wie die Verzweigungsstatusbits auf den Leitungen 147, 148 und 149. Die Signale auf den Leitungen 155, 156 und 157 sind der invertierte Binärwert der Signale auf den Leitungen 118, 119 und 120. Die detaillierte logische Schaltung kombiniert alle diese verschiedenen Signale und gibt die Ausgangssignale auf die Leitungen 151 bis 154, die anzeigen, ob die Verzweigung erfolgreich oder erfolglos war und die ursprüngliche Annahme richtig oder falsch war.
po 977 005 909827/0810
Zusammenhang mit Fig. 3A wird nun ein allgemeines Problem
der Ausführung bedingter Verzweigungsinstruktionen benandelt. Jeder Satz von Registern, die die drei Instruktionspuffer 31, 32 und 33 bilden, hat eine Anzahl von Eingangsund Ausgangstoren wie bei 36 dargestellt ist. Außerdem hat jjedes Register einen Satz von Hardware-Triggern und Logikschalltungen, die auf den leeren oder vollen Zustand der Register und den gegenwärtigen Wert in den zugehörigen Instruktionsladreßregistern 78, 79 und 80 ansprechen. Diese Hardware-Folgeschaltungen koordinieren die Instruktionsabrufanforderungen an die PSCF 21 für die zugehörigen Instruktionsströme A, B and C und die Übertragung der Instruktionen mit variabler Länge aus dem richtigen Instruktionspufferregister in das I-Register 35. Ein aktiver Trigger und ein Belegungstrigger sind ebenfalls mit jedem der Instruktionspuffer 31 bis 33 ver- i bunden. Wenn eine bedingte Verzweigungsinstruktion im I-Re- ; gister 35 decodiert wird, wird ein nichtaktiver oder belegter j Instruktionspuffer identifiziert und aktiv und belegt geschal- ; tet und die zugehörigen Hardware-Trigger und logischen Schal- < bungen werden aktiviert, um eine Instruktionsabrufanforderung an die PSCF 22 abzugeben. Wenn die Zielinstruktion der bedingten Verzweigung auf die Datensammelleitung 34 zurückgegeben wird, wird sie in den aktivierten Instruktionspuffer geleitet.
Wenn die AusführungsSteuerinformation der bedingten Verzweigungsinstruktion im I-Register 35 an die Instruktionswarteschlange 42 übertragen wird, wird entsprechend der in Fig. dargestellten Logik geschätzt, ob die bedingte Verzweigung erfolgreich ist oder nicht. Basierend auf dieser Schätzung wird die nächste, in das I-Register 35 zu übertragende Instruktion entweder von dem Instruktionspuffer kommen, der die bedingte Verzweigungsinstruktion enthält oder von dem Instruktionspuffer, der den Zielinstruktionsstrom empfangen hat. Instruktionen werden dann weiter decodiert und Ausführungssteuerinformation an die Instruktionswarteschlange 42 über-
po 977 005 90982 7/0810
-33- 285b 106
tragen. Wenn eine zweite bedingte Instruktion decodiert wird und einer der Instruktionspuffer 31, 32 oder 33 nicht aktiv ist, kann ein dritter Instruktionsabruf für einen dritten Instruktionsstrom eingeleitet werden und dann wird der Erfolg der bedingten Verzweigungsinstruktion nocheinmal genau so bestimmt.
Wenn die Ausführungsergebnissignale für bedingte Verzweigungsinstruktionen an die IPPF 20 von der E-Funktion 23
zurückgegeben und mit der Verzweigungs-Zustandsinformation in der Instruktionswarteschlange 42, entsprechend der Darstellung in Fig. 8, verglichen werden, müssen Einstellungen für die erfolgte falsche Schätzung des Erfolges der bedingten .Verzweigungsinstruktion gemacht werden. Wenn der Erfolgt einer bedingten Verzweigung ursprünglich richtig geschätzt wurde, wird die Instruktionsdecodierung und -ausführung entsprechend dieser Schätzung fortgesetzt. Wenn die ursprüngliche Schätzung falsch war, wird die in der Instruktionswarteschlange 42 enthaltene Steuerinformation von nachträglich decodierten Instruktionen zerstört und die nächste Instruktion ,aus dem richtigen Instruktionsstrom in das I-Register 35 zur Decodierung übertragen.
|Fig. 9 zeigt die logische Schaltung, die auf die ursprüngliche !Schätzung des Erfolges einer bedingten Verzweigungsinstruktion janspricht und die Ausführungsergebnissignale zurückgibt, um {hinterher sicherzustellen, daß die Ausführungssteuerinformation
in der richtigen Reihenfolge an die Ε-Funktion übertragen wird. Die Übertragung der Instruktionsausführungs-Steuerinformation in der richtigen Reihenfolge an die E-Funktion 23 von der Instruktionswarteschlange 42 der IPPF wird durch vier Zeiger kombiniert, von denen jeder aus zwei binären Triggern besteht. Die Decodierung der Zeiger bezeichnet einen bestimmten Instruktionspuffer 31, 32 oder 33, der zu dem Instruktionsstrom A, B oder C gehört.
po 977 005 9098 27/0810
-34- 2855I06
bie zwei Bit großen Zeiger enthalten einen Decodierzeiger 1158, der Signale auf einer Leitung 159 an die I-Register-Eingangs tore 36 erregt, die zum Instruktionspuffer gehören, ι
[von dem Instruktionen in das I-Register 35 übertragen werden.
Der Ausfuhrungszeiger 160 bezeichnet den Instruktionsstrom A, B oder C, der die Quelle der Instruktionsausführungsbteuerinformation ist, die zuletzt an die E-Funktion 23 !übertragen wurde. Mit der Decodierung dieser Information werden jdie zugehörigen Differenzregister 81, 82 oder 83 in Fig. 3C eingeschaltet über ein Signal auf der Leitung 161, das sog. pifferenzregister-Fortschreibesignal.
ber nächste Zielstromzeiger 162 spricht auf die Einstellung der Belegungstrigger 163, 164 und 165 an, die zu den jejweiligen Instruktionsströmen A, B und C gehören und einen bestimmten Instruktionspuffer 31, 32 oder 33 bezeichnen, der feurn Empfang der durch eine bedingte Verzweigungsinstruktion identifizierten Zielinstruktionen zu aktivieren ist. Abhängig vom Erfolg der bedingten Verzweigungsinstruktionen werden die Instruktionspuffer in verschiedener Reihenfolge belegt oder auch nicht, und daher wird der Ein- oder Ausschaltzustand der 3elegungstrigger 163 bis 165 decodiert und ein Signal auf , äer Leitung 166 steuert den Schaltzustand des Zeigers für ilen nächsten Zielstrom 162.
in Zielpufferzeiger 167 ist Teil der Ausführungssteuerin-Eormation, die in jedes Register der Instruktionswarteschlange 42 gesetzt wird. Wenn eine bedingte Verzweigungs-Lnstruktion decodiert und die Ausführungssteuerinformation Ln die Instruktionswarteschlange 42 übertragen wurde, wird lie Indentität des die Zielinstruktionsstrom empfangende Enstruktionspuffers an den zugehörigen Zielpufferzeiger 167 übertragen.
977 005 909827/0810
Die Ausgabe einer UND-Schaltung 168 schaltet den Rest der in j ;Fig. 9 gezeigten Logikschaltung ein. Bei jeder Decodierung ■einer Verzweigungsinstruktion im I-Register 35 wird ein Signal auf der Leitung 169 eingeschaltet. Eine für die weitere De-Icodierung einer bedingten Verzweigung im I-Register 35 erforderliche Verriegelung ist die durch einen Inverter 170 und eine UND-Schaltung 171 vorgenommene Erkennung, daß wenigstens ein freier Instruktionspuffer vorhanden ist und einen Zielens truktionsstrom empfangen kann. Die Endeingabe zur UND- i Schaltung 168 kommt von einem Inverter 172, der das Signal auf der Leitung 136 von der in Fig. 6 gezeigten Schaltung empfängt, das anzeigt, daß die bedingte Verzweigungsin-Istruktion im I-Register 35 nach ihrer Codierung nicht als !VerzweigungsInstruktion anzusehen ist. Die Reihenfolge der Instruktionen sollte daher in demselben Instruktionsstrom weiterlaufen.
!Wie bereits gesagt, gehört zu jedem der drei Instruktions-
!ströme A, B und C ein aktiver Trigger 173, 174 und 175, der I im eingeschalteten Zustand die I-Abruffolgeschaltungen 176,
:177 und 178 einschaltet. Die I-Abruffolgeschaltungen bestehen aus einem Satz von Triggern und einer logischen Schaltung, die zusammen überwachen, welcher der zugehörigen Instruktionspuffer 31, 32 und 33 aktiv ist und den vollen oder leeren Zustand der Register feststellen, die die Puffer bilden, um Instruktionsabrufe nach Bedarf einzuleiten. Die Stellung der Abrufefolgesteuerungen für jeden Instruktionsstrom steuert die Eingangstore der I-Puffer A, B oder C durch ein Signal auf der Leitung 179.
Wenn eine bedingte Verzweigungsinstruktion decodiert und die Ausführungssteuerinformation an die Instruktionswarteschlange 42 der Fig. 3A übertragen wurde, überträgt die Ausgabe 180 einer UND-Schaltung 168 durch ein Tor 181 den Inhalt des Zeigers für den nächsten Zielstrom 162 an das Register in der
po 977 005 909827/0810
Instruktionswarteschlange 42, das die Ausführungssteuerin- ' formation für die bedingte Verzweigungsinstruktion empfängt | und gibt diese Information in den Zielpufferzeiger 167 dieses [Registers. Gleichzeitig schaltet der Zeiger für den nächsten 'Zielstrom 162 durch Signale auf den Leitungen 182 und 183 den aktiven Trigger und den Belegungstrigger ein, die zum Instruktionspuffer 31, 32 oder 33 gehören und zur aktivieren sind, um die durch die Adreßinformation der bedingten Verzweigungsinstruktion bezeichnete Zielinstruktion zu empfangen. Wenn der Aktivtrigger gesetzt wird, wird dadurch die richtige ' Instruktionsabruf-Folgesteuerung aktiviert und der Instruktion^- abruf für den Zielinstruktionsstrom eingeleitet. Die neue Schaltstellung der Belegungstrigger 163, 164 und 165 schreibt j
den Zeiger für den nächsten Zielstrom 162 auf den neuen Stand ! fort.
Die Ausgabe 180 der UND-Schaltung 168 wirkt auch an den UND-Schaltungen 184 und 185. Wenn die in Fig. 6 dargestellte Logikschaltung anzeigt, daß von der bedingten Verzweigungsinstruktion bekannt ist, daß sie Erfolg hat, wirkt das Signal 134 an der UND-Schaltung 185 so, daß die gegenwärtige Einstellung des Decodierzeigers 158 durch ein Tor 186 den Aktivtriggei der Instruktionspuffer 31, 32 oder 33 abschaltet, von dem die bedingte Verzweigungsinstruktion kam. Das ist möglich, weil bekannt ist, daß die nächste auszuführende Instruktion von dem Zielinstruktionsstrom kommen muß.
In den Fällen, in denen die in Fig. 6 gezeigte logische Schaltung ein Signal auf die Leitung 132 gegeben und damit angezeigt hat, daß die bedingte Verzweigungsinstruktion wahrscheinlich erfolgreich ist (erfolgreiche Schätzung), gibt die UND-Schaltung 184 ein Ausgangssignal und erregt ein Tor 187, um den Zeiger für den nächsten Zielstrom 162 einzuschalten und durch ein Signal auf der Leitung 182 den Decodierzeiger 158 auf denselben Wert zu stellen. Das ist für die Anzeige erforderlich, daß die
P0 977 005 909827/0810
_37_ 285b 106
nächste, nach der bedingten Verzweigungsinstruktion, auszu- j führende Instruktion wahrscheinlich vom Zielinstruktionsstrom ; kommen wird und in das I-Register 35 der Fig. 3A übertragen werden sollte und vom I-Register-Eingangssignal 159 gesteuert wird. Wenn die in Fig. 6 gezeigte logische Schaltung nicht \
i das Signal für die erfolgreiche Schätzung 132 erzeugt hat, bleibt der Decodierzeiger 158 in seinem gegenwärtigen Zustand und die Instruktionsdecodierung wird in demselben Instruktions-r strom fortgesetzt, der die bedingte VerzweigungsInstruktion ; enthielt. Dieses Verfahren basiert auf der Annahme, daß die : Verzweigung nicht erfolgreich ist und die Instruktionsdecodierung in derselben Instruktion fortgesetzt werden sollte. Wenn die bedingte Verzweigung nicht als erfolgreich bekannt ' ist, angezeigt durch ein Signal auf der Leitung 134, dann wird der Aktivtrigger des die bedingte Verzweigungsinstruktion enthaltenden Instruktionsstromes im aktiven Zustand gelassen, j um die Instruktionsabrufanforderungen nach Bedarf fortzu-
i setzen.
Der Ausführungszeiger 160 bezeichnet den Instruktionsstrom, I von dem die Instruktionen zur Ausführung an die E-Funktion j 23 übertragen werden. Aufgrund der an die logische Schaltung j der Fign. 7 und 8 zurückübertragenen Ausführungs-Resultatsignale muß der Ausführungszeiger 160 auf den richtigen Wert eingestellt werden, der den für die weitere Instruktionsübertragung zu benutzenden Instruktionsstrom angibt. Die Erregung der Signalleitungen 151 bis 154 von der in Fig. 8 gezeigten logischen Schaltung hat daher großen Einfluß auf die Einstellung des Ausführungszeigers 160, der denjenigen Instruktionsstrom der bedingten VerzweigungsInstruktion bezeichnet, der die Signale auf den Leitungen 151 bis 154 auslöste. Wenn das Signal für eine erfolgreiche Schätzung 132 erzeugt wurde, wird der Decodierzeiger 158 so eingestellt, daß er auf den Zielinstruktionsstrom zeigt. Wenn die Signalleitung 153 erregt und damit eine erfolglose Verzweigung (falsche Schätzung) angezeigt wurde, wird ein Tor 188 zur
po 977 005 909827/0810
.38- 2856
,Übertragung der Einstellung des Ausführungszeigers 160 an Iden Decodierzeiger 158 auf einer Leitung 189 eingeschaltet. Dadurch wird die Instruktion hinter der bedingten Verzwei- !gungsinstruktion in demselben Instruktionsstrom an das I-Register 35 übertragen. Die Erregung des Tores 188 hat auch eine Wirkung auf den Leitung 190 und 191 von anderen Inistruktionsströmen als demjenigen, der die bedingte Verzwei-'gungsinstruktion und die ihr folgende enthielt.
Wenn angenommen wurde, daß die bedingte Verzweigungsinstruktio4 !erfolglos war, blieb der Decodierzeiger 158 so eingestellt, daß er den, die bedingte VerzweigungsInstruktion enthaltenden, ,Instruktionsstrom bezeichnet. Wenn sich die Verzweigung als erfolgreich erwies (falsche Schätzung) wäre die Leitung 152 ; Von der in Fig. 8 gezeigten Logikschaltung erregt worden. Das i ,stellt eine Situation dar, wo die Decodierung vom Zielin- ; ■struktionsstrom weitergelaufen sein sollte und die Ε-Funktion | •23 als nächste Instruktion eine Instruktion aus dem Ziel- j
ι !
instruktionsstrom hätte ausführen sollen. Die Leitung 152 j iwirkt daher an einem Tor 192 und läßt den Inhalt des Zielpufferzeigers 167, dargestellt auf einer Leitung 193, wirken auf den Leitungen 194 und 195 und den Decodierzeiger 158 sowie den Ausführungszeiger 160, den Zielinstruktionsstrom bezeichnen. Der Decodierzeiger 158 gibt dann an, daß die Zielinstruktion in das Instruktionsregister 35 zur Decodierung übertragen werden sollte und die nächste an die E-Funktion 23 zu übertragende Instruktion aus dem durch den Ausführungszeiger 160 bezeichneten Zielinstruktionsstrom kommen sollte. Durch Einschalten des Tores 192 werden auch über ein Signal auf der Leitung 191 alle aktiven und Belegungstrigger für alle Instruktionspuffer abgeschaltet, die den durch den Zielpufferzeiger 167 bezeichneten Zielinstruktionsstrom nicht enthalten.
977 005 909827/0810
! - 39 -
Wenn die ursprüngliche Schätzung für eine bedingte Verzwei-■gungsinstruktion erfolgreich oder erfolglos lautete und aus [den Ausführungsresultatsignalen festgestellt wird, daß diese
!Schätzung falsch war, dann wird ein Signal entweder auf der
Leitung 152 oder auf der Leitung 154 eingeschaltet. Dadurch !wird mit einem Signal auf der Leitung 196 die gesamte, in die jlnstruktionswarteschlange 42 der Fig. 3A, übertragene In-Istruktions-Ausführungssteuerinformation zurückgestellt, weil idie nach der bedingten Verzweigungsinstruktion decodierten !Instruktionen, gleichgültig ob sie nun aus demselben In-[struktionsstrom oder dem Zielinstruktionsstrom stammen, jetzt picht von der E-Funktion 23 ausgeführt werden. Basierend auf ider falschen Schätzung bezeichnen der Decodierzeiger 158 und i
der Ausführungszeiger 160 jetzt den richtigen Instruktionsstrom, vom dem weitere Instruktionen decodiert und ausgeführt werden können.
jWenn die ausgeführte bedingte Verzweigungsinstruktion erfolglos und somit die Schätzung richtig war, schaltet ein Signal auf der Leitung 153 von der in Fig. 8 gezeigten Logikschaltung ein Tor 197 ein, wodurch der Inhalt des Zielpufferzeigers 167, dargestellt in Signalen auf den Leitungen 193, 198 und 199 die aktiven und Belegungstrigger für die Instruktionspuffer 31, 32 oder 33, die zum Empfang der von dem Zielinstruktionstrom abgerufenen Instruktionen aktiviert wurden, zurückstellt. Obwohl die Instruktionen aus dem Zielinstruktiom strom in Vorwegnahme ihrer möglichen Benutzung vorher abgerufen wurden, werden sie nicht benutzt, und da die Verzweigung ursprünglich als erfolglos eingeschätzt wurde, wird die Stellung des Decodierzeigers 158 und des Ausführungszeigers 160 nicht geändert und sie werden in ihrem gegenwärtigen Zustand belassen.
Po 977 005 909827/0810
28 5b 1 0 ti
!Wenn die ausgeführte bedingte VerzweigungsInstruktion erfolgreich und das richtig geschätzt war, schaltet ein Signal auf 'der Leitung 151 die Tore 200 und 201 ein und zeigt dadurch an, daß die nächste an die E-Funktion 23 zur Ausführung zu übertragende Instruktion die Zielinstruktion ist, die durch Öie Adreßinformation der bedingten Verzweigungsinstruktion [bezeichnet ist. Die Ausführung sollte daher von dem durch öen Zielpufferzeiger 167 bezeichneten Instruktionspuffer fortgesetzt werden, und diese Information.wird von der Leitung 193 durch das Tor 200 auf die Leitung 202 übertragen, um den kusführungszeiger 160 auf denselben Wert zu stellen. Bevor der Ausführungszeiger 160 auf denselben Wert wie der Zieljpufferzeiger 167 gestellt wird, schaltet das Tor 201 durch ein Signal auf der Leitung 199 denjenigen aktiven und Belegungstrigger aus, der zu dem Instruktionspuffer 31, 32 oder 33 gehört, der die bedingte Verzweigungsinstruktion enthält. Da die bedingte Verzweigungsinstruktion ursprünglich erfolgreich richtig eingeschätzt wurde, hat die frühere Einschaltung der UND-Schaltung 184 und des Tores 187 den Decodierzeiger 158 auf den Wert des Zielinstruktionsstrom-Puffers gestellt. Da die Schätzung richtig war, bleibt der Decodierzeiger 158 für die weitere Decodierung von Instruktionen auf diesem Wert.
In Anbetracht dessen, daß drei Instruktionspuffer 31, 32 und 33 in der IPPF 20 vorgesehen wurden, kann eine bedingte Verzweigungsinstruktion, beispielsweise vom Instruktionsstrom A, decodiert werden, die den Instruktionsstrom B aufruft. Die nachträgliche Decodierung einer bedingten Verzweigungsinstruktion vom Instruktionsstrom B kann zum Aufruf eines Zielinstruktionsstromes C führen. Alle Zeiger haben binäre Bits, so daß man einen vierten Satz von Instruktionspuffern hinzufügen kann und dadurch die Möglichkeit hat, drei bedingte Verzweigungsinstruktionen vorher zu decodieren. Die Logikschaltung der Fig. 9 ist so ausgelegt, daß die Ausführungs-Resultatsignale bedingter Verzweigungsinstruktionen an die
po 977 005 909827/0810
. 41 - 285b roe
IPPF 20 zurückgegeben werden und so die richtige Reihenfolge der Ausführungssteuerinformation für die E-Funktion 23 aufrechterhalten wird.
Fig. 10 zeigt Zeitdiagramme für die Instruktionsabrufanforderungen der IPPF 20 an die PSCF 21. Das Diagramm bei A zeigt die Zeiteinteilung für die Operationen, wo bei 203 eine ,Anforderung erfolgt und die angeforderte Instruktion in einem Hochgeschwindigkeitspuffer der PSCF steht, so daß die Daten auf der Sammelleitung 205 zur Verfügung stehen. Die abgerufene Instruktion steht auf der Datensammelleitung 34 der Fig. 3A beim zweiten Zyklus nach dem Abruf zur Verfügung.
■Der Wellenzug B zeigt die Zeitfolge für den Fall, daß die ;PSCF 21 eine Instruktion im zweiten Zyklus nach der Anforderung nicht zurückgeben kann. Die PSCF gibt ein Signal 206 'zurück, das einen verzögerten Abruf anzeigt und anderthalb ■Zyklen nach der Abrufanforderung auftritt. Dieses Signal ist jeinen Zyklus lang eingeschaltet. Wenn die PSCF 21 zur Rückgabe der Daten zu einem späteren Zeitpunkt bereit ist, erzeugt sie das Vorlaufsignal 207 und zeigt damit der IPPF 20 an, daß Daten zweieinhalb Zyklen später auf der Datensammelleitung 34 zur Verfügung stehen.
Der Wellenzug C tritt in Situationen auf, in denen die PSCF 21 den Abruf zurückweisen muß und ein Triggersignal 208 einschaltet, das die Rückweisung der Abrufanforderung anzeigt. Die IPPF 20 muß dann die Operation nach dem verzögerten Abruf erneut einleiten. Die Stellung eines Triggers "kein verzögerter Abruf" ist so, daß er ausgeschaltet, wie bei 209 dargestellt, anzeigt, daß die Rückweisung erfolgte, weil ein anderer verzögerter Abruf gerade läuft. Wenn ein Vorlaufsignal bei 210 von der vorhergehenden verzögerten Anforderung empfanjen wurde, wird der Trigger "kein verzögerter Abruf" bei
po 977 005 909827/0810
210 eingeschaltet und der IPPF 20 damit ein Signal zur erneuten Einleitung des Instruktionsabrufes bei 211 gegeben.
Fig. 11 zeigt ein Zustandsdiagramm und eine Tabelle mit den verschiedenen Einstellung der vier Reihenfolgetrigger, die allgemein bei 212 dargestellt sind. Hierbei handelt es sich um die I-Abruffolgetrigger 176, 177 und 178 der Fig. 9, die zu den einzelnen Instruktionspuffern 31, 32 und 33 gehören. Diese Trigger geben den Zustand einer Instruktionsabrufanforderung für einen bestimmten Instruktionspuffer an und zeigen an, wenn die Tore zu den Eingängen der Register zum Empfang von Instruktionen aus der in Fig. 3A gezeigten Datensammelleitung 34 eingeschaltet werden sollten. Für einen Instruktionsabruf werden die Zyklen C1 und C2 benötigt, wenn sich die Instruktion im Hochgeschwindigkeitspuffer der PSCF 21 findet. Der Zyklus C2 stellt die Zeit dar, zu der die Datensammelleitung 34 abgefragt werden sollte. Die Zyklen D1 und D2 werden im Zusammenhang mit Zyklen angezogen, die nach der Rückgabe eines Vorlaufsignales von der PSCF 21 auftreten, wenn ein verzögerter Instruktionsabruf erfolgte. Bei Bezugnahme auf die Zyklen D1 und D2 als letzte Zyklen handelt es sich um verzögerte Abrufanforderungszyklen, die erzeugt wurden,
ll eine Instruktionsabrufanforderung die Übertragung der Instruktionen vom Hauptspeicher in den Hochgeschwindigkeitsouffer verlangte. In diesen Fällen werden vier Doppelwörter ader ein Instruktionsblock an die IPPF 20 zurückgegeben. Das in der Beschriftung aufgeführte Signal E ist die Anzeige von ler PSCF 21 dafür, daß das letzte Doppelwort eines Block-Lnstruktionsabrufes zurückgegeben wurde. In all den verschielenen Folgen von Instruktionsabrufen, verzögerten Abrufen, aückweisungen usw. erreichen die Reihenfolgetrigger schließ-Lich einen Zustand, wo der M-Trigger auf binär 1 steht. Wenn las der Fall ist und keine Rückweisung oder Verzögerung vor-Liegt, steht das Doppelwort auf der Datensammelleitung 34 und sollte in den entsprechenden Instruktionspuffer eingeleitet werden.
po 977 005 90 9 8 2 7/0810
Das Zeitdiagramm in Fig. 12 gehört zur Decodierung einer Instruktion im I-Register 35 der in Fig. 3A gezeigten Schaltung und zur Übertragung der Ausführungssteuerinformatxon an die Instruktionswarteschlange 42, gefolgt von der übertragung dieser Information in das Steuerspeicher-Adreßregister 125 der Fig. 4 in der E-Funktion 23. Die Instruktionswarteschlange 42 hat vier Registerpositionen, in die Information eingeleitet wird aufgrund der Stellung eines Eingabezeigers (INPTR), der der Reihe nach von einem Register zum andern vorschaltet. Die Ausführungsinformation wird aus der Instruktionswarteschlange 42 in das Steuerspeicher-Adreßregister 125 aufgrund der Einstellung eines Ausgabezeigers (OUTPTR) ausgeleitet. Der Eingabezeiger steht darstellungsgemäß bei 213 auf der Position n. Wenn die Instruktionsdecodierung und Adreßbildung bei 214 abgeschlossen ist, wird die Ausführungssteuerinformation bei 215 in die Position η der Instruktionswarteschlange 42 übertragen und der Eingabezeiger auf den Wert n+1 gesetzt. Wenn die Instruktionsausführungs-Steuerinformation in die Position η eingegeben wird, wird bei 216 ein Belegungstrigger eingeschaltet. Bei 217 wird ein Trigger eingeschaltet, der anzeigt, daß die Instruktion bereitsteht. Wie bei 218 äargestellt ist, wird der OP-Codeteil der Ausführungssteuerinformation im Register η konstant an den Eingang des Steuerspeicher-Adreßregisters 125 angelegt. Wenn das Signal AND OP 126 in Fig. 4 bei 219 erzeugt wird, werden die OP-Code-Bits auf der Leitung 128 und die Adreßbits 3 und 4 auf den Leitungen 129 und 130 in das Steuerspeicher-Adreßregister 125 geleitet. Durch Setzen eines Triggers wird angezeigt, daß die DP-Code-Verzweigung im Steuerspeicher 121 erfolgte. Wenn dieses Signal bei 220 abfällt, schaltet der Ausgabezeiger bei 221 um auf n+1 und zeigt damit an, daß der Inhalt des nächsten Registers der Instruktionswarteschlange 42 an die E-Funktion 23 auszuleiten ist.
PO977005 909827/0810
.44- 285blOB
Wenn die Fign. 13A und 13B, gemäß Fig. 13, nebeneinandergelegt werden, zeigen sie die zum Instruktionspuffer 31 und dem Instruktionsstrom A gehörende Einleitung und Ausleitung. Die Leitung 179, mit der Beschriftung "Strom A einleiten", entspricht der Leitung 179 in Fig. 9, die aktiviert wird, wenn Instruktionsabrufe für den Instruktionspuffer 31 erfolgen. Zu jedem Instruktionspuffer gehört ein 2 Bit großer Eingangszeiger, dessen Bitpositionen 27 und 28 entsprechende Einstellung des zugehörigen Instruktions-Adreßregisters 78 initialisiert werden. Ihre, durch Signale auf den Leitungen 222 bzw. 223, wiedergegebene Einstellung schaltet bei Decodierung in einem Decodierer 224, beispielsweise die UND-Schaltungen 225 bis 228 ein, wenn das Doppelwort der auf der Datensammelleitung 34 empfangenen Instruktionsinformation in den ersten, den Instruktionspuffer bildenden, Registersatz einzugeben sind, d.h., in die Bitpositionen 0 bis 63 des in Fig. 3A gezeigten Instruktionspuffers A. Wenn die Instruktionsinformation gemäß den Eingangszeigerbits 27 und 28 in den Instruktionspuffer 31 geleitet und nach Maßgabe der Instruktionen mit unterschiedlicher Länge aus ihm ausgeleitet wird, werden die vier Doppelwortregister des Instruktionspuffers 31 der Reihe nach gefüllt.
Die Decodierer 229, 230 und 231 empfangen die binäre Stellung von vier, einen Ausgangszeiger für den entsprechenden Instruktionspuffer bilden Triggern. Der Ausgangszeiger wird fortgeschrieben oder modifiziert, entsprechend der Länge der Instruktionen, die an das in Fig. 3A gezeigte I-Register übertragen werden. Die Darstellung der Ausgangstore 36 in Fig. 3A zeigt die verschiedenen Bitkombinationen, die von einem bestimmten Instruktionspufferregister an das I-Register 35 übertragen werden sollten. Wenn z.B. eine 2 Byte große Instruktion von den Bits 0 bis 16 des ersten Registers des Instruktionspuffers 31 übertragen wird, beginnt der OP-Code der nächsten zu übertragenden Instruktion auf der Bitposition
po 977 005 909 82 7/0810
16 desselben Registers. Die Bitposition O des I-Registers 35, die das erste Bit des OP-Codes einer Instruktion ist, kann daher von den Positionen O; 16, 32 oder 48 eines jeden Registers eines Instruktionspuffers geleitet werden.
Zu jedem Instruktionspuffer 31, 32 und 33 gehört ein Satz von ODER-Schaltungen 232 bis 237, die durch eine Reihe von vier UND-Schaltungen und weiter durch die Stellung des Instruktionsstrom-Ausgabezeigers eingeschaltet werden und einen Eingang für das I-Register 35, Bitposition 0 oder 16, die beiden in Fig. 13B gezeigten Bitpositionen des I-Registers 35, bilden. Die ODER-Schaltungen 238 und 239 bilden den letzten Eingang zu den Positionen 0 oder 16 des I-Registers 35. Die letzte Informationseingabe in das I-Register 35 vom Instruktionspuffer 31, die den Instruktionsstrom A darstellt, kommt von den UND-Schaltungen 240 und 241.
Wenn eine Instruktion im I-Register 35 fertig decodiert ist, wird ein Signal für die erfolgreiche Decodierung zu dem in Fig. 12 gezeigten Zeitpunkg 215 auf der Leitung 242 erzeugt. Die bei 243 gezeigte Kombination von UND-Schaltungen und ODER-Schaltungen zeigt an, daß das I-Register 35 keine Information enthält und für dessen Bitpositionen O bis 15 muß angezeigt werden, daß die letzten beiden Bytes einer sechs Byte großen SS-Instruktion, signalisiert auf der Leitung 244, nicht geleitet werden. Die letzten beiden Bytes einer SS-Instruktion verlangen die Eintragung in die Bitpositionen 16 bis 31 des I-Registers 35. Die UND-Schaltungen 245 und 246 werden durch Signale auf den Leitungen 247 bzw. 248 eingeschaltet, die der Leitung 159 in der Fig. 9 entsprechen und anzeigen, daß die Decodierung für den Instruktionsstrom A erfolgen soll.
po 977 005 9 0 9 8 2 7/0810
Wenn die Decodierung von Instruktionen nach Decodieren einer bedingten Verzweigungsinstruktion im Instruktionsstrom A fortgesetzt wird, ist dieser entweder der Originalinstruktionsstrom oder der Zielinstruktionsstrom. Wenn das Ergebnis einer bedingten Verzweigung darin besteht, daß die ursprüngliche Schätzung richtig war, was durch ein Signal auf den Leitungen 249 und 250 "keine falsche Schätzung" angezeigt wird, werden die UND-Schaltungen 245 und 246 eingeschaltet, um die nächste Instruktion sofort in das Instruktionsregister 35 zu übertragen. Die UND-Schaltung 251 spricht auf entgegengesetzte Weise an, wenn die ursprüngliche Schätzung, entsprechend der in Fig. 6 dargestellten Logik falsch ist, was durch ein Signal auf der Leitung 252 angezeigt wird. Der Instruktionsstrom A wäre früher als Alternativstrom durch ein Signal auf der Leitung 253 bezeichnet und damit gesagt worden, daß der Instruktionsstrom A die nächste Instruktion in das Instruktionsregister 35 leiten soll und nicht der andere Instruktionsstrom, der ursprünglich als Instruktionsquelle angesehen wurde.
Wie schon gesagt wurde, bilden die ODER-Schaltungen 238 und 239 den letzten Eingang zum I-Register 35. Außerdem ist ein Satz von UND-Schaltungen dargestellt, die zum Instruktionsstrom B und zum Instruktionsstrom C gehören und durch ein Signal auf einer Leitung eingeschaltet werden, die in Fig. 9 bei 159 dargestellt ist. Dieses Signal besagt, daß dieser Instruktionsstrom gegenwärtig decodiert wird.
Es wurde also die Möglichkeit gezeigt, Instruktionen in einen aktivierten von drei RegisterSätzen zu übertragen, die Instruktionspuffer bilden. Die Instruktionsübertragung von den Instruktionspuffern in ein Instruktionsdecodierregister entsprechen den Forderungen der von den verschiedenen Instruktionsströmen kommenden bedingten Verzweigungsinstruktionen kann gesteuert werden. Die Übertragungsreihenfolge
PO977005 909827/0810
der Instruktionen für die Ausführung an eine Ε-Funktion wird so überwacht und gesteuert, daß mehr als eine bedingte Verzweigungsinstruktion vorher decodiert und dann die Ausführung
rwartet werden kann, während die richtige Ausführungsreihenfol|ge in der Ausführungseinheit eingehalten wird.
PO 377005
909827/0 810

Claims (6)

  1. PATENTANSPRÜCHE
    ( 1J Einrichtung zur Durchführung von Instruktionsverzweigungen in mehreren Instruktionsströmen einer elektronischen Datenverarbeitungsanlage, die über eine Instruktionsinterpretationseinheit und eine Instruktionsausführungseinheit verfügt, gekennzeichnet durch wenigstens drei Instruktionspuffer mit Pufferauswahlschaltungen und Instruktionsabrufschaltungen, wobei jeder Puffer unter der Maßgabe der Pufferselektionsschaltung mindestens eine Instruktion einer unabhängigen Folge von Instruktionen vom Speicher empfangen und speichern kann, weiterhin durch Instruktionstorschaltungen, die zwischen einen Instruktionsdecodierer und einen ausgewählten Instruktionspuffer geschaltet sind, durch eine Anzahl von Instruktionswarteschlangen-Register, von denen jedes Ausführungssteuerinformation speichert, die vom Instruktionsdecodierer für jede decodierte Instruktion empfangen wird, durch Ausführungssteuerschaltungen, die auf die AusfuhrungsSteuerinformation in einem Warteschlangenregister ansprechen und die durch die Instruktion geforderte Punktion ausführen und dem Prozessor Ergebnissignale für bestimmte dieser Instruktionen liefern und schließlich durch eine Instruktionsfolgesteuerung , die aus folgenden Bauelementen besteht: - einer Verzweigungsanzeigeschaltung, die auf eine Verzweigungsinstruktion im Instruktionsdecodierer anspricht, die von einem ersten Instruktionspuffer für die Steuerung der Instruktionsabrufschaltung ; und der Pufferauswahlschaltung geliefert wird, um
    eine Zielinstruktion vom Speicher zu einem der ι anderen Instruktionspuffer zu übertragen, \ - einer Instruktionstor-Steuerschaltung für die : Übertragung der nächsten Instruktion in den ; Instruktionsdecodierer nach der übertragung
    ! ■ ■ ■
    ORIGINAL INSPECTED
    PO 977 005
    8 0 9827/0810
    - 2 - *!3bb lüö
    der genannten Ausführungssteuerinformation der Verzweigungsinstruktion in ein Instruktionswarteschlangenregister steuert,
    - einer Zielpufferanzeigeschaltung, die auf die Verzweigungsanzeigeschaltung, die mit jedem der Warteschlangenregister verbunden ist, anspricht, wenn die Ausführungssteuerinformation einer Verzweigungsinstruktion gespeichert wird, um eine Anzeige für den genannten anderen der Instruktionspuffer abzugeben und
    - einer Instruktionsauswahlschaltung, die auf die Ergebnissignale der Ausführungseinheit, infolge der Verzweigungsin^truktion und der zugeordneten Zielpufferanzeigeschaltung, anspricht, um die nächste sequentielle AusführungsSteuerinformation, die zur Aiisführungseinheit übertragen werden soll, auszuwählen .
  2. 2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Verzweigungsanzeigeschaltung aus der Kombination folgender Baugruppen besteht:
    - einem Belegtanzeigeschalter und einer Folgesteuerung für Instruktionsabrufe, die jedem der genannten instrukfcionspuffer zugeordnet sind,
    - einer Zeigerschaltung, die auf den nächsten Zielstroiu zeigt und die auf alle Belegtanzeigeschalter anspricht, um den genannten anderen der Instruktionspuffer anzuzeigen und
    - einer Zugriffsschaltung für die Zielinstruktion, zur Erzeugung eines Verzweigungsausführungssignala c das sowohl mit Verzweigungsinstruktionen im Instruktionsdecodierer, als auch mit den Anzeigeschsltern für den nächsten Zielstrom gekoppelt ist und auf diese anspricht,, um den Beiegtanseicjesclialter einzustellen und die Folgesteuerung für den Ins tr "dkt ions abruf, die dem anderen Instruktionsp^ffer zugeordnet ist, zu starten und um die
    F0 577 °05 fi ο η η ? 7 ■ η * ; \\ original inspected
    2BSb i 06 j
    Anzeige der Zielstromanzeigeschaltung zur ;
    Zielpufferanzeigeschaltung zu übertragen, der \ mit dem Warteschlangenregister verbunden ist, welches die Ausführungssteuerinformation der Verzweigungsinstruktion speichert.
  3. 3. Einrichtung nach Anspruch 2, dadurch gekennzeichnet, daß
    eine Schaltung vorgesehen ist, die feststellt, ob alle
    Belegtanzeigeschalter eingeschaltet sind, die auf diesen Zustand anspricht und die mit der für den Zielstrom- ( zugriffsschaltung gekoppelt ist, um deren Betrieb zu
    sperren. :
  4. 4. Einrichtung nach Anspruch 3, dadurch gekennzeichnet, j
    daß die Ausführung einer Zielinstruktion, die abgerufen ! wurde in Abhängigkeit von bestimmten Verzweigungsinstruk- ! tionen beim Auftreten eines Resultatsignals von der
    Ausführungseinheit wirksam wird, wobei die Instruktions- ·:
    j Selektionsschaltung aus folgenden Baugruppen besteht: ■
    - einer Verzweigungsresultat-Logikschaltung, die Schal-; tungen enthält, die auf den Zustand des Resultatsignals ansprechen und dann entweder ein Signal j erzeugen, das eine erfolgreiche Verzweigung anzeigt
    oder ein solches, das eine nicht erfolgreiche Verzweigung angibt und
    - einer Schaltung, die auf das genannte Signal für
    erfolgreiche oder nicht erfolgreiche Verzweigung
    anspricht, um die nächste sequentielle Ausführungssteuerinformation einer Instruktion auszuwählen, die
    zur Ausführungseinheit von entweder dem genannten
    der anderen Instruktionspuffer oder dem ersten
    Instruktionspuffer übertragen werden soll.
  5. 5. Einrichtung nach Anspruch 4, dadurch gekennzeichnet,
    daß die Instruktionstorsteuerschaltungen eine
    PO 977.-OOS.- . ..
    809827/0810
    ZBbb 106
    Decodieranzeigeschaltung für die Auswahl und Verbindung des genannten Instruktionspuffers zum Instruktionsdecodierer aufweist und ferner die Instruktionsauswahlschaltung eine Ausführungsanzeigeschaltung enthält, die anzeigt, welcher der Instruktionspuffer Ursprung der Ausführungssteuerinformation war, die zur Ausführungseinheit übertragen wurde,
    daß ferner eine Schaltung vorgesehen ist, die auf das Signal, das eine erfolgreiche Verzweigung anzeigt, anspricht und dabei den Inhalt der für den Zielpufferanzeigeschaltung zur Decodieranzeigeschaltung und der Ausführungsanzeigeschaltung überträgt, um den genannten anderen Instruktionspuffer anzuzeigen und welche die Belegtanzeigeschalter und die Folgesteuerung für den Instruktionsabruf aller anderen Instruktionspuffer zurückstellt und schließlich eine Schaltung vorhanden ist, die auf das Signal anspricht, das eine nicht erfolgreiche Verzweigung angibt und dabei die Zielpufferanzeigeschaltung wirksam hält, um die Belegtanzeigeschalter und die Folgesteuerung für den Instruktionsabruf des anderen Instruktionspuffers zurückstellt.
  6. 6. Einrichtung nach Anspruch 3, dadurch gekennzeichnet, daß die Ausführung einer Zielinstruktion, die in Abhängigkeit von den Verzweigungsinstruktionen abgerufen wurde, konditioniert und als erfolgreich betrachtet wird, basierend auf einem bestimmten Zustand eines Resultatsignals der Ausführungseinheit und wobei der Instruktionsdecodierer eine Schaltung enthält, die selektiv Decodiersignale erzeugt, einschließlich eines Signals, das eine geschätzte erfolgreiche Verzweigung für solche Verzweigungsinstruktionen anzeigt, die normalerweise erfolgreich sind, ferner eines Signals, das eine bekannte erfolgreiche Verzweigung für die Verzweigungsinstruktioner angibt, die stets erfolgreich sind, weiter eines Signals,
    PO977005 909827/0610
    _ tr _
    285h 106
    das keine Verzweigung für solche Verzweigungsinstruktionen anzeigt, die nicht erfolgreich sein können und schließlich einer codierten Verzweigungsstatusinformation, die jedem der Warteschlangenregister zugeordnet ist, das Ausführungssteuerinformation einer VerzweigungsInstruktion enthält, um die Art der Verzweigungsinstruktion daher den besonderen Zustand des Resultatsignals zu identifizieren, daß ferner die Instruktionstorsteuerschaltung eine Decodierungsanzeigeschaltung für die Auswahl und Zusammenschaltung eines Instruktionspuffers mit dem Instruktionsdecodierer enthält, ferner die Verzweigungsanzeigeschaltung eine Schaltung enthält, die auf das Signal anspricht, welches das Vorliegen keiner Verzweigung anzeigt und dabei den Betrieb der Zielinstruktionszugriff sschaltung sperrt, daß ferner die Instruktionsauswahlschaltung weiterhin eine Ausführungsanzeigeschaltung enthält, um anzugeben, welcher der Instruktionspuffer Ursprung der Ausführungssteuerinformationen war, die zur Ausführungseinheit übertragen wurde, daß ferner eine Schaltung vorgesehen ist, die auf das Verzweigungsausführungssignal, das Signal, das eine geschätzte erfolgreiche Verzweigung angibt und die ■ Anzeigeschaltung für den nächsten Zielstrom anspricht und dabei die Anzeigeschaltung des Decodierers einstellt, ] um einen anderen Instruktionspuffer zu kennzeichnen, daß ! weiterhin die Verzweigungsresultatlogik auf die codierte Verzweigungsstatusinformation und das Resultatsignal der Ausführungseinheit anspricht, um erste, zweite, |
    dritte oder vierte Steuersignale zu erzeugen, die j jeweils angeben:" Verzweigung nicht erfolgreich / falscher! Schätzwert", "Verzweigung nicht erfolgreich / richtiger Schätzwert", "Verzweigung erfolgreich / falscher Schätz- j wert" und "Verzweigung erfolgreich / richtiger Schätz- j
    wert", daß ferner eine Schaltung vorgesehen ist, die auf das erste Steuersignal anspricht und damit alle
    PO 977 005
    909827/0810
    Warteschlangenregister, die Belegtanzeigeschalter und die Instruktionsabruffolgesteuerung all derjenigen Instruktionspuffer, die nicht von der Anzeigeschaltung der Ausführung indiziert wurden, zurückstellt und die Indizierung in der Anzeigeschaltung der Ausführung zu der Anzeigeschaltung der Decodierung überträgt, daß ferner eine Schaltung auf das genannte zweite Steuersignal anspricht und dabei den Belegtanzeigeschalter und die Folgesteuerung für den Instruktionsabruf, die von der Anzeigeschaltung des Zielpuffers indiziert sind, zurückstellt, daß weiterhin eine Schaltung, die auf das dritte Steuersignal ζ .spricht, alle Warteschlangenregister, den genannten Belegtanzeigeschalter und die Folgesteuerung für den Instruktionsabruf aller Instruktionspuffer, die nicht von der Anzeigeschaltung des Zielpuffers indiziert wurden, zurückstellt und die Anzeige in der Anzeigeschaltung des Zielpuffers zur Anzeigeschaltung des Codierers und derjenigen der Ausführung überträgt und daß schließlich eine weitere Schaltung vorgesehen sind, die auf das vierte Steuersignal anspricht und dabei den Belegtanzeigeschalter und die Folgesteuerung für den Instruktionsabruf für denjenigen Instruktionspuffer zurückstellt, der von dem Anzeigeschalter der Ausführung indiziert wurde und : die Indikation in der Anzeigeschaltung des Zielpuffers zu der Anzeigeschaltung der Ausführung überträgt.
    Einrichtung nach Anspruch 6, dadurch gekennzeichnet, daß die Instruktionsauswahlschaltung eine Schaltung enthält, die auf alle bekannten erfolgreichen Decodie- : rungssignale anspricht und dabei den Belegtanzeigeschalter und die Folgesteuerung für den Instruktionsabruf des von der Anzeigeschaltung für die Decodierung indizierten Instruktionspuffers zurückstellt. ;
    P0~977 005
    909827/031 Ö
DE2855106A 1978-01-03 1978-12-20 Einrichtung zur Durchführung von bedingten Verzweigungen Expired DE2855106C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/866,686 US4200927A (en) 1978-01-03 1978-01-03 Multi-instruction stream branch processing mechanism

Publications (2)

Publication Number Publication Date
DE2855106A1 true DE2855106A1 (de) 1979-07-05
DE2855106C2 DE2855106C2 (de) 1985-05-23

Family

ID=25348169

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2855106A Expired DE2855106C2 (de) 1978-01-03 1978-12-20 Einrichtung zur Durchführung von bedingten Verzweigungen

Country Status (8)

Country Link
US (1) US4200927A (de)
JP (1) JPS5495139A (de)
AU (1) AU519335B2 (de)
CA (1) CA1103369A (de)
DE (1) DE2855106C2 (de)
FR (1) FR2413716B1 (de)
GB (1) GB2011673B (de)
IT (1) IT1160347B (de)

Families Citing this family (162)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3176840D1 (en) * 1980-02-25 1988-09-15 Toshiba Kk An information-processing system consisting of an arithmetic control unit into a one-chip type by application of a highly-integrated semiconductor device
JPS5927935B2 (ja) * 1980-02-29 1984-07-09 株式会社日立製作所 情報処理装置
JPS56149646A (en) * 1980-04-21 1981-11-19 Toshiba Corp Operation controller
USRE32493E (en) * 1980-05-19 1987-09-01 Hitachi, Ltd. Data processing unit with pipelined operands
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
US4373180A (en) * 1980-07-09 1983-02-08 Sperry Corporation Microprogrammed control system capable of pipelining even when executing a conditional branch instruction
JPS5742099A (en) * 1980-08-27 1982-03-09 Sharp Kk Voice informing device
US4437149A (en) 1980-11-17 1984-03-13 International Business Machines Corporation Cache memory architecture with decoding
US4574349A (en) * 1981-03-30 1986-03-04 International Business Machines Corp. Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction
US4441153A (en) * 1981-04-03 1984-04-03 International Business Machines Corp. Instruction register content modification using plural input gates and a data flow register
US4532586A (en) * 1981-05-22 1985-07-30 Data General Corporation Digital data processing system with tripartite description-based addressing multi-level microcode control, and multi-level stacks
US4439828A (en) * 1981-07-27 1984-03-27 International Business Machines Corp. Instruction substitution mechanism in an instruction handling unit of a data processing system
JPS5848146A (ja) * 1981-09-18 1983-03-22 Toshiba Corp 命令先取り方式
US4532589A (en) * 1981-12-02 1985-07-30 Hitachi, Ltd. Digital data processor with two operation units
US4439827A (en) * 1981-12-28 1984-03-27 Raytheon Company Dual fetch microsequencer
US4477872A (en) * 1982-01-15 1984-10-16 International Business Machines Corporation Decode history table for conditional branch instructions
EP0116600B1 (de) * 1982-08-23 1991-04-10 Western Electric Company, Incorporated Mechanismus zur berechnung der nächsten adresse vor ihrer durchführung
US4604691A (en) * 1982-09-07 1986-08-05 Nippon Electric Co., Ltd. Data processing system having branch instruction prefetching performance
US4594659A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Method and apparatus for prefetching instructions for a central execution pipeline unit
DE3382350D1 (de) * 1982-11-17 1991-08-29 Nec Corp Anordnung zum vorabholen von befehlen mit vorhersage einer verzweigungszieladresse.
JPS5998312A (ja) * 1982-11-29 1984-06-06 Sankyo Seiki Mfg Co Ltd 読み取りエラ−検出方式
EP0150177A1 (de) * 1983-07-11 1985-08-07 Prime Computer, Inc. Datenverarbeitungsvorrichtung
US4578750A (en) * 1983-08-24 1986-03-25 Amdahl Corporation Code determination using half-adder based operand comparator
JPS6079431A (ja) * 1983-10-06 1985-05-07 Hitachi Ltd プログラマブルコントローラのパイプライン処理方法
US4791555A (en) * 1983-10-24 1988-12-13 International Business Machines Corporation Vector processing unit
JPS6095734A (ja) * 1983-10-28 1985-05-29 Matsushita Electric Ind Co Ltd 情報読出装置
AU560378B2 (en) * 1983-11-11 1987-04-02 Fijitsu Limited Method of controlling pipeline
US4764861A (en) * 1984-02-08 1988-08-16 Nec Corporation Instruction fpefetching device with prediction of a branch destination for each branch count instruction
JPS60202501A (ja) * 1984-03-27 1985-10-14 Comput Services Corp 磁気カ−ドのデ−タ記録状態測定方法
US4742451A (en) * 1984-05-21 1988-05-03 Digital Equipment Corporation Instruction prefetch system for conditional branch instruction for central processor unit
JPS60258770A (ja) * 1984-06-04 1985-12-20 Toppan Printing Co Ltd 磁気カ−ドのデ−タ記録状態測定方法
JPS60258767A (ja) * 1984-06-04 1985-12-20 Toppan Printing Co Ltd 磁気カ−ドのデ−タ記録状態測定方法
JPS61105958U (de) * 1984-12-13 1986-07-05
US4633333A (en) * 1985-06-24 1986-12-30 International Business Machines Corporation Detection of instantaneous speed variations in a tape drive
JPS6225302A (ja) * 1985-07-25 1987-02-03 Fanuc Ltd 数値制御装置
US4791557A (en) * 1985-07-31 1988-12-13 Wang Laboratories, Inc. Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system
JPS6341932A (ja) * 1985-08-22 1988-02-23 Nec Corp 分岐命令処理装置
US4853840A (en) * 1986-01-07 1989-08-01 Nec Corporation Instruction prefetching device including a circuit for checking prediction of a branch instruction before the instruction is executed
US4755935A (en) * 1986-01-27 1988-07-05 Schlumberger Technology Corporation Prefetch memory system having next-instruction buffer which stores target tracks of jumps prior to CPU access of instruction
CA1285657C (en) * 1986-01-29 1991-07-02 Douglas W. Clark Apparatus and method for execution of branch instructions
EP0258453B1 (de) * 1986-02-28 1993-05-19 Nec Corporation Steuervorrichtung zum vorabruf von befehlen
JPH06100968B2 (ja) * 1986-03-25 1994-12-12 日本電気株式会社 情報処理装置
GB2188759B (en) * 1986-04-05 1990-09-05 Burr Brown Ltd Data processing with op code early comparison
JPS6393038A (ja) * 1986-10-07 1988-04-23 Mitsubishi Electric Corp 計算機
US4967351A (en) * 1986-10-17 1990-10-30 Amdahl Corporation Central processor architecture implementing deterministic early condition code analysis using digit based, subterm computation and selective subterm combination
US4888689A (en) * 1986-10-17 1989-12-19 Amdahl Corporation Apparatus and method for improving cache access throughput in pipelined processors
JPH0772863B2 (ja) * 1986-10-30 1995-08-02 日本電気株式会社 プログラムカウンタ相対アドレス計算方式
JP2603626B2 (ja) * 1987-01-16 1997-04-23 三菱電機株式会社 データ処理装置
DE3750721T2 (de) * 1987-02-24 1995-03-16 Texas Instruments Inc Computersystem mit Durchführung von vermischten Makro- und Mikrocodebefehlen.
US5235686A (en) * 1987-02-24 1993-08-10 Texas Instruments Incorporated Computer system having mixed macrocode and microcode
US4991090A (en) * 1987-05-18 1991-02-05 International Business Machines Corporation Posting out-of-sequence fetches
JPS63317828A (ja) * 1987-06-19 1988-12-26 Fujitsu Ltd マイクロコ−ド読み出し制御方式
US5134561A (en) * 1987-07-20 1992-07-28 International Business Machines Corporation Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
US4942520A (en) * 1987-07-31 1990-07-17 Prime Computer, Inc. Method and apparatus for indexing, accessing and updating a memory
US4894772A (en) * 1987-07-31 1990-01-16 Prime Computer, Inc. Method and apparatus for qualifying branch cache entries
US4860197A (en) * 1987-07-31 1989-08-22 Prime Computer, Inc. Branch cache system with instruction boundary determination independent of parcel boundary
US4991078A (en) * 1987-09-29 1991-02-05 Digital Equipment Corporation Apparatus and method for a pipelined central processing unit in a data processing system
JPH0646382B2 (ja) * 1987-10-05 1994-06-15 日本電気株式会社 プリフェッチキュー制御方式
US4933847A (en) * 1987-11-17 1990-06-12 International Business Machines Corporation Microcode branch based upon operand length and alignment
US5247628A (en) * 1987-11-30 1993-09-21 International Business Machines Corporation Parallel processor instruction dispatch apparatus with interrupt handler
US4943908A (en) * 1987-12-02 1990-07-24 International Business Machines Corporation Multiple branch analyzer for prefetching cache lines
GB8728493D0 (en) * 1987-12-05 1988-01-13 Int Computers Ltd Jump prediction
US4914579A (en) * 1988-02-17 1990-04-03 International Business Machines Corporation Apparatus for branch prediction for computer instructions
US5522053A (en) * 1988-02-23 1996-05-28 Mitsubishi Denki Kabushiki Kaisha Branch target and next instruction address calculation in a pipeline processor
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
US5101341A (en) * 1988-08-25 1992-03-31 Edgcore Technology, Inc. Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO
JPH0774994B2 (ja) * 1988-09-21 1995-08-09 株式会社日立製作所 バッファ記憶制御装置のosc検出方式
US5050068A (en) * 1988-10-03 1991-09-17 Duke University Method and apparatus for using extracted program flow information to prepare for execution multiple instruction streams
DE68927292T2 (de) * 1988-11-25 1997-05-07 Nec Corp Mikrorechner, geeignet zur Schnellverarbeitung eines Verzweigungsbefehlskodes
US5034880A (en) * 1988-12-22 1991-07-23 Wang Laboratories, Inc. Apparatus and method for executing a conditional branch instruction
EP0376258B1 (de) * 1988-12-27 1999-03-03 Fujitsu Limited Steuerungssystem und -verfahren zum Instruction Fetch
US5142634A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation Branch prediction
JPH02306341A (ja) * 1989-02-03 1990-12-19 Nec Corp マイクロプロセッサ
US5689670A (en) * 1989-03-17 1997-11-18 Luk; Fong Data transferring system with multiple port bus connecting the low speed data storage unit and the high speed data storage unit and the method for transferring data
US5136697A (en) * 1989-06-06 1992-08-04 Advanced Micro Devices, Inc. System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache
EP0404068A3 (de) * 1989-06-20 1991-12-27 Fujitsu Limited Vorrichtung zur Ausführung eines Verzweigungsbefehls
US5150468A (en) * 1989-06-30 1992-09-22 Bull Hn Information Systems Inc. State controlled instruction logic management apparatus included in a pipelined processing unit
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
JPH03139726A (ja) * 1989-10-26 1991-06-13 Hitachi Ltd 命令読出し制御方式
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
DE69030648T2 (de) * 1990-01-02 1997-11-13 Motorola Inc Verfahren zum sequentiellen Vorabruf von 1-Wort-, 2-Wort oder 3-Wort-Befehlen
US5185868A (en) * 1990-01-16 1993-02-09 Advanced Micro Devices, Inc. Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy
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
US5303377A (en) * 1990-03-27 1994-04-12 North American Philips Corporation Method for compiling computer instructions for increasing instruction cache efficiency
US5163139A (en) * 1990-08-29 1992-11-10 Hitachi America, Ltd. Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
US5961629A (en) * 1991-07-08 1999-10-05 Seiko Epson Corporation High performance, superscalar-based computer system with out-of-order instruction execution
ATE200357T1 (de) 1991-07-08 2001-04-15 Seiko Epson Corp Risc-prozessor mit dehnbarer architektur
US5493687A (en) * 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
KR100294276B1 (ko) * 1991-07-08 2001-09-17 야스카와 히데아키 고속트랩및예외상태를구현한알아이에스씨마이크로프로세서구조
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5323489A (en) * 1991-11-14 1994-06-21 Bird Peter L Method and apparatus employing lookahead to reduce memory bank contention for decoupled operand references
US5438668A (en) * 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
DE69311330T2 (de) * 1992-03-31 1997-09-25 Seiko Epson Corp Befehlsablauffolgeplanung von einem risc-superskalarprozessor
WO1993022722A1 (en) * 1992-05-01 1993-11-11 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
JP3644959B2 (ja) 1992-09-29 2005-05-11 セイコーエプソン株式会社 マイクロプロセッサシステム
US6735685B1 (en) * 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US5784604A (en) * 1992-10-09 1998-07-21 International Business Machines Corporation Method and system for reduced run-time delay during conditional branch execution in pipelined processor systems utilizing selectively delayed sequential instruction purging
US5581719A (en) * 1992-11-12 1996-12-03 Digital Equipment Corporation Multiple block line prediction
JP3531166B2 (ja) 1992-12-31 2004-05-24 セイコーエプソン株式会社 レジスタ・リネーミングのシステム及び方法
US5628021A (en) * 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
JP2596712B2 (ja) * 1993-07-01 1997-04-02 インターナショナル・ビジネス・マシーンズ・コーポレイション 近接した分岐命令を含む命令の実行を管理するシステム及び方法
US5748976A (en) * 1993-10-18 1998-05-05 Amdahl Corporation Mechanism for maintaining data coherency in a branch history instruction cache
JP2801135B2 (ja) * 1993-11-26 1998-09-21 富士通株式会社 パイプラインプロセッサの命令読み出し方法及び命令読み出し装置
US6079014A (en) * 1993-12-02 2000-06-20 Intel Corporation Processor that redirects an instruction fetch pipeline immediately upon detection of a mispredicted branch while committing prior instructions to an architectural state
US5590351A (en) * 1994-01-21 1996-12-31 Advanced Micro Devices, Inc. Superscalar execution unit for sequential instruction pointer updates and segment limit checks
TW234175B (en) * 1994-02-08 1994-11-11 Meridian Semiconductor Inc Randomly-accessible instruction buffer for microprocessor
GB9412487D0 (en) * 1994-06-22 1994-08-10 Inmos Ltd A computer system for executing branch instructions
US5734881A (en) * 1995-12-15 1998-03-31 Cyrix Corporation Detecting short branches in a prefetch buffer using target location information in a branch target cache
US6309482B1 (en) 1996-01-31 2001-10-30 Jonathan Dorricott Steckel mill/on-line controlled cooling combination
US5794024A (en) * 1996-03-25 1998-08-11 International Business Machines Corporation Method and system for dynamically recovering a register-address-table upon occurrence of an interrupt or branch misprediction
US5809566A (en) * 1996-08-14 1998-09-15 International Business Machines Corporation Automatic cache prefetch timing with dynamic trigger migration
US5805877A (en) * 1996-09-23 1998-09-08 Motorola, Inc. Data processor with branch target address cache and method of operation
US5796998A (en) * 1996-11-21 1998-08-18 International Business Machines Corporation Apparatus and method for performing branch target address calculation and branch prediciton in parallel in an information handling system
JPH1124929A (ja) * 1997-06-30 1999-01-29 Sony Corp 演算処理装置およびその方法
US6157998A (en) 1998-04-03 2000-12-05 Motorola Inc. Method for performing branch prediction and resolution of two or more branch instructions within two or more branch prediction buffers
US7035997B1 (en) 1998-12-16 2006-04-25 Mips Technologies, Inc. Methods and apparatus for improving fetching and dispatch of instructions in multithreaded processors
US7529907B2 (en) 1998-12-16 2009-05-05 Mips Technologies, Inc. Method and apparatus for improved computer load and store operations
US7257814B1 (en) 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
US6389449B1 (en) 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
US7020879B1 (en) * 1998-12-16 2006-03-28 Mips Technologies, Inc. Interrupt and exception handling for multi-streaming digital processors
US7237093B1 (en) 1998-12-16 2007-06-26 Mips Technologies, Inc. Instruction fetching system in a multithreaded processor utilizing cache miss predictions to fetch instructions from multiple hardware streams
US7502876B1 (en) 2000-06-23 2009-03-10 Mips Technologies, Inc. Background memory manager that determines if data structures fits in memory with memory state transactions map
US7155516B2 (en) * 2000-02-08 2006-12-26 Mips Technologies, Inc. Method and apparatus for overflowing data packets to a software-controlled memory when they do not fit into a hardware-controlled memory
US7058064B2 (en) * 2000-02-08 2006-06-06 Mips Technologies, Inc. Queueing system for processors in packet routing operations
US7165257B2 (en) * 2000-02-08 2007-01-16 Mips Technologies, Inc. Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrupts
US7082552B2 (en) * 2000-02-08 2006-07-25 Mips Tech Inc Functional validation of a packet management unit
US7065096B2 (en) 2000-06-23 2006-06-20 Mips Technologies, Inc. Method for allocating memory space for limited packet head and/or tail growth
US7042887B2 (en) * 2000-02-08 2006-05-09 Mips Technologies, Inc. Method and apparatus for non-speculative pre-fetch operation in data packet processing
US7032226B1 (en) * 2000-06-30 2006-04-18 Mips Technologies, Inc. Methods and apparatus for managing a buffer of events in the background
US7139901B2 (en) * 2000-02-08 2006-11-21 Mips Technologies, Inc. Extended instruction set for packet processing applications
US7058065B2 (en) 2000-02-08 2006-06-06 Mips Tech Inc Method and apparatus for preventing undesirable packet download with pending read/write operations in data packet processing
US7076630B2 (en) * 2000-02-08 2006-07-11 Mips Tech Inc Method and apparatus for allocating and de-allocating consecutive blocks of memory in background memo management
US7649901B2 (en) * 2000-02-08 2010-01-19 Mips Technologies, Inc. Method and apparatus for optimizing selection of available contexts for packet processing in multi-stream packet processing
US20030172248A1 (en) * 2000-06-13 2003-09-11 Streltsov Nikolai Victorovich Synergetic computing system
JP2004518183A (ja) * 2000-07-14 2004-06-17 クリアウオーター・ネツトワークス・インコーポレイテツド マルチスレッド・システムにおける命令のフェッチとディスパッチ
AUPQ950400A0 (en) * 2000-08-17 2000-09-07 Peruch, Stephen Sebastian Computer implemented system and method of transforming a source file into transformed file using a set of trigger instructions
US7069420B1 (en) * 2000-09-28 2006-06-27 Intel Corporation Decode and dispatch of multi-issue and multiple width instructions
US20020194461A1 (en) * 2001-05-04 2002-12-19 Ip First Llc Speculative branch target address cache
US6886093B2 (en) * 2001-05-04 2005-04-26 Ip-First, Llc Speculative hybrid branch direction predictor
US7134005B2 (en) * 2001-05-04 2006-11-07 Ip-First, Llc Microprocessor that detects erroneous speculative prediction of branch instruction opcode byte
US6895498B2 (en) * 2001-05-04 2005-05-17 Ip-First, Llc Apparatus and method for target address replacement in speculative branch target address cache
US7165168B2 (en) * 2003-01-14 2007-01-16 Ip-First, Llc Microprocessor with branch target address cache update queue
US7707397B2 (en) * 2001-05-04 2010-04-27 Via Technologies, Inc. Variable group associativity branch target address cache delivering multiple target addresses per cache line
US7200740B2 (en) * 2001-05-04 2007-04-03 Ip-First, Llc Apparatus and method for speculatively performing a return instruction in a microprocessor
US7165169B2 (en) * 2001-05-04 2007-01-16 Ip-First, Llc Speculative branch target address cache with selective override by secondary predictor based on branch instruction type
US6823444B1 (en) * 2001-07-03 2004-11-23 Ip-First, Llc Apparatus and method for selectively accessing disparate instruction buffer stages based on branch target address cache hit and instruction stage wrap
US7203824B2 (en) * 2001-07-03 2007-04-10 Ip-First, Llc Apparatus and method for handling BTAC branches that wrap across instruction cache lines
US7162619B2 (en) * 2001-07-03 2007-01-09 Ip-First, Llc Apparatus and method for densely packing a branch instruction predicted by a branch target address cache and associated target instructions into a byte-wide instruction buffer
US7234045B2 (en) * 2001-07-03 2007-06-19 Ip-First, Llc Apparatus and method for handling BTAC branches that wrap across instruction cache lines
US7003649B2 (en) * 2002-03-08 2006-02-21 Hitachi, Ltd. Control forwarding in a pipeline digital processor
US7159097B2 (en) * 2002-04-26 2007-01-02 Ip-First, Llc Apparatus and method for buffering instructions and late-generated related information using history of previous load/shifts
JP3845043B2 (ja) * 2002-06-28 2006-11-15 富士通株式会社 命令フェッチ制御装置
US9207958B1 (en) 2002-08-12 2015-12-08 Arm Finance Overseas Limited Virtual machine coprocessor for accelerating software execution
US7152154B2 (en) * 2003-01-16 2006-12-19 Ip-First, Llc. Apparatus and method for invalidation of redundant branch target address cache entries
US7143269B2 (en) * 2003-01-14 2006-11-28 Ip-First, Llc Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
US7185186B2 (en) 2003-01-14 2007-02-27 Ip-First, Llc Apparatus and method for resolving deadlock fetch conditions involving branch target address cache
US7178010B2 (en) * 2003-01-16 2007-02-13 Ip-First, Llc Method and apparatus for correcting an internal call/return stack in a microprocessor that detects from multiple pipeline stages incorrect speculative update of the call/return stack
US7917734B2 (en) * 2003-06-30 2011-03-29 Intel Corporation Determining length of instruction with multiple byte escape code based on information from other than opcode byte
US7237098B2 (en) * 2003-09-08 2007-06-26 Ip-First, Llc Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence
KR101574603B1 (ko) 2008-10-31 2015-12-04 삼성전자주식회사 컨디셔널 프로세싱 방법 및 장치
CN104156196B (zh) * 2014-06-12 2017-10-27 龚伟峰 重命名预处理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1378565A (en) * 1971-08-31 1974-12-27 Ibm Data processing systems
GB1397310A (en) * 1971-08-31 1975-06-11 Ibm Pipeline digital data processor

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1536616A (fr) * 1966-09-21 Ibm Système de traitement d'instructions avec des perfectionnements pour le branchementet les boucles du programme
US3551895A (en) * 1968-01-15 1970-12-29 Ibm Look-ahead branch detection system
US3699526A (en) * 1971-03-26 1972-10-17 Ibm Program selection based upon intrinsic characteristics of an instruction stream
JPS549456B2 (de) * 1972-07-05 1979-04-24
JPS49121449A (de) * 1973-03-19 1974-11-20
JPS5326954B2 (de) * 1973-03-30 1978-08-04
JPS5039437A (de) * 1973-08-10 1975-04-11

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1378565A (en) * 1971-08-31 1974-12-27 Ibm Data processing systems
GB1397310A (en) * 1971-08-31 1975-06-11 Ibm Pipeline digital data processor

Also Published As

Publication number Publication date
CA1103369A (en) 1981-06-16
FR2413716A1 (fr) 1979-07-27
AU4306379A (en) 1979-07-12
FR2413716B1 (fr) 1986-02-21
JPS5495139A (en) 1979-07-27
GB2011673A (en) 1979-07-11
IT1160347B (it) 1987-03-11
GB2011673B (en) 1982-02-24
US4200927A (en) 1980-04-29
IT7830875A0 (it) 1978-12-15
AU519335B2 (en) 1981-11-26
JPS5715421B2 (de) 1982-03-30
DE2855106C2 (de) 1985-05-23

Similar Documents

Publication Publication Date Title
DE2855106A1 (de) Einrichtung zur durchfuehrung von instruktionsverzweigungen
DE4301417C2 (de) Computersystem mit Einrichtung zur parallelen Befehlsausführung
DE2224537C2 (de) Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor
DE69932066T2 (de) Mechanismus zur &#34;store-to-load forwarding&#34;
DE69433621T2 (de) Geraet zur verarbeitung von befehlen in einem rechnersystem
DE60010907T2 (de) Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter
DE69133302T2 (de) Registerabbildung in einem einzigen Taktzyklus
DE69833008T2 (de) Prozessor mit instruktionskodierung mittels eines schablonenfeldes
DE3424962C2 (de)
DE10085375B4 (de) Verfahren und Einrichtung für einen pipeline-verschachtelten Multi-Thread-Befehlsdecodierer
DE3119741C2 (de) Datenverarbeitungseinheit
DE2234867C2 (de) Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander unabhängiger Befehlsfolgen
DE2714805C2 (de)
DE69738188T2 (de) Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor
DE69636861T2 (de) Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern
DE19506435C2 (de) Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden Ausführungseinheiten
DE1524103B2 (de) Datenverarbeitungsgerät
DE112004002365T5 (de) Übergang vom Befehls-Cache-Speicher zum Ablaufverfolgungs-Cache-Speicher basierend auf Markengrenzen
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE1949666A1 (de) Adressensteuerung fuer digitale Computer
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE1549474C3 (de) Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls
DE19824289C2 (de) Pipelineverarbeitungsmaschine
DE19848742A1 (de) Registerumbenennung mit einem Pool physischer Register
DE2906685C2 (de)

Legal Events

Date Code Title Description
OAP Request for examination filed
OD Request for examination
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee