DE2855106A1 - Einrichtung zur durchfuehrung von instruktionsverzweigungen - Google Patents
Einrichtung zur durchfuehrung von instruktionsverzweigungenInfo
- 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
Links
- 239000000872 buffer Substances 0.000 claims description 110
- 230000015654 memory Effects 0.000 claims description 32
- 238000012546 transfer Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 2
- 238000011094 buffer selection Methods 0.000 claims 3
- 230000000712 assembly Effects 0.000 claims 2
- 238000000429 assembly Methods 0.000 claims 2
- 230000001419 dependent effect Effects 0.000 claims 2
- 230000001143 conditioned effect Effects 0.000 claims 1
- 150000002500 ions Chemical class 0.000 claims 1
- 230000006870 function Effects 0.000 description 41
- 238000010586 diagram Methods 0.000 description 18
- 230000003111 delayed effect Effects 0.000 description 8
- 230000003936 working memory Effects 0.000 description 7
- 238000007781 pre-processing Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 238000000034 method Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000014616 translation Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 235000015076 Shorea robusta Nutrition 0.000 description 1
- 244000166071 Shorea robusta Species 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 210000004072 lung Anatomy 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3846—Speculative instruction execution using static prediction, e.g. branch taken strategy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
28bb10ö
Anmelderin: International Business Machines
Corporation, Araionk, N.Y. 10504
jo/se
Einrichtung zur Durchführung von Instruktionsverzweigungen
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
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 ■
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
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-
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.
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.
,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.
[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)
- 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, umeine 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 INSPECTEDPO 977 0058 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. 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 dieF0 577 °05 fi ο η η ? 7 ■ η * ; \\ original inspected2BSb i 06 jAnzeige der Zielstromanzeigeschaltung zur ;Zielpufferanzeigeschaltung zu übertragen, der \ mit dem Warteschlangenregister verbunden ist, welches die Ausführungssteuerinformation der Verzweigungsinstruktion speichert.
- 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. Einrichtung nach Anspruch 3, dadurch gekennzeichnet, jdaß die Ausführung einer Zielinstruktion, die abgerufen ! wurde in Abhängigkeit von bestimmten Verzweigungsinstruk- ! tionen beim Auftreten eines Resultatsignals von derAusfü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. Einrichtung nach Anspruch 4, dadurch gekennzeichnet,
daß die Instruktionstorsteuerschaltungen einePO 977.-OOS.- . ..809827/0810ZBbb 106Decodieranzeigeschaltung 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. 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 106das 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- jwert", daß ferner eine Schaltung vorgesehen ist, die auf das erste Steuersignal anspricht und damit allePO 977 005909827/0810Warteschlangenregister, 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 005909827/031 Ö
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0139080B1 (de) * | 1980-02-25 | 1989-08-30 | Kabushiki Kaisha Toshiba | Datenverarbeitungssystem |
JPS5927935B2 (ja) * | 1980-02-29 | 1984-07-09 | 株式会社日立製作所 | 情報処理装置 |
JPS56149646A (en) * | 1980-04-21 | 1981-11-19 | Toshiba Corp | Operation controller |
CA1174370A (en) * | 1980-05-19 | 1984-09-11 | Hidekazu Matsumoto | Data processing unit with pipelined operands |
USRE32493E (en) * | 1980-05-19 | 1987-09-01 | Hitachi, Ltd. | 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 |
JPS59501426A (ja) * | 1982-08-23 | 1984-08-09 | ウエスタ−ン エレクトリツク カムパニ−,インコ−ポレ−テツド | 次段アドレスの計算を前もつて実行する機構 |
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 |
EP0109655B1 (de) * | 1982-11-17 | 1991-07-24 | Nec Corporation | 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 | 情報読出装置 |
WO1985002279A1 (en) * | 1983-11-11 | 1985-05-23 | Fujitsu 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 |
JPS60258767A (ja) * | 1984-06-04 | 1985-12-20 | Toppan Printing Co Ltd | 磁気カ−ドのデ−タ記録状態測定方法 |
JPS60258770A (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 | 計算機 |
US4888689A (en) * | 1986-10-17 | 1989-12-19 | Amdahl Corporation | Apparatus and method for improving cache access throughput in pipelined processors |
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 |
JPH0772863B2 (ja) * | 1986-10-30 | 1995-08-02 | 日本電気株式会社 | プログラムカウンタ相対アドレス計算方式 |
JP2603626B2 (ja) * | 1987-01-16 | 1997-04-23 | 三菱電機株式会社 | データ処理装置 |
EP0279953B1 (de) * | 1987-02-24 | 1994-11-02 | Texas Instruments Incorporated | 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 |
US4860197A (en) * | 1987-07-31 | 1989-08-22 | Prime Computer, Inc. | Branch cache system with instruction boundary determination independent of parcel boundary |
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 |
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 |
EP0402524B1 (de) * | 1988-11-25 | 1996-10-02 | Nec Corporation | 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 |
KR920006770B1 (ko) * | 1988-12-27 | 1992-08-17 | 후지쓰 가부시끼가이샤 | 명령을 페치(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 |
EP0436341B1 (de) * | 1990-01-02 | 1997-05-07 | 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 |
KR100294276B1 (ko) * | 1991-07-08 | 2001-09-17 | 야스카와 히데아키 | 고속트랩및예외상태를구현한알아이에스씨마이크로프로세서구조 |
US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
US5539911A (en) * | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
ATE291755T1 (de) * | 1991-07-08 | 2005-04-15 | Seiko Epson Corp | Risc-prozessor mit erweiterbarer architektur |
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 |
EP0636256B1 (de) * | 1992-03-31 | 1997-06-04 | Seiko Epson Corporation | Befehlsablauffolgeplanung von einem risc-superskalarprozessor |
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 |
DE69308548T2 (de) * | 1992-05-01 | 1997-06-12 | Seiko Epson Corp | Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor. |
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 |
WO1994008287A1 (en) | 1992-09-29 | 1994-04-14 | 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 |
EP1107111A3 (de) | 1992-12-31 | 2002-02-06 | Seiko Epson Corporation | System und Verfahren zur Änderung der Namen von Registern |
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 |
US7020879B1 (en) * | 1998-12-16 | 2006-03-28 | Mips Technologies, Inc. | Interrupt and exception handling for multi-streaming digital 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 |
US7035997B1 (en) | 1998-12-16 | 2006-04-25 | Mips Technologies, Inc. | Methods and apparatus for improving fetching and dispatch of instructions in multithreaded 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 |
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 |
US7065096B2 (en) | 2000-06-23 | 2006-06-20 | Mips Technologies, Inc. | Method for allocating memory space for limited packet head and/or tail growth |
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 |
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 |
US7139901B2 (en) * | 2000-02-08 | 2006-11-21 | Mips Technologies, Inc. | Extended instruction set for packet processing applications |
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 |
US7032226B1 (en) | 2000-06-30 | 2006-04-18 | Mips Technologies, Inc. | Methods and apparatus for managing a buffer of events in the background |
US7082552B2 (en) * | 2000-02-08 | 2006-07-25 | Mips Tech Inc | Functional validation of a packet management unit |
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 |
US7042887B2 (en) * | 2000-02-08 | 2006-05-09 | Mips Technologies, Inc. | Method and apparatus for non-speculative pre-fetch operation in data packet processing |
WO2001097055A1 (en) * | 2000-06-13 | 2001-12-20 | Nobel Ltd Liability Company | Synergic computation system |
DE60143896D1 (de) | 2000-07-14 | 2011-03-03 | Mips Tech Inc | Anweisungsabruf und -absendung in einem multi-thread-system |
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 |
US6886093B2 (en) * | 2001-05-04 | 2005-04-26 | Ip-First, Llc | Speculative hybrid branch direction predictor |
US6895498B2 (en) * | 2001-05-04 | 2005-05-17 | Ip-First, Llc | Apparatus and method for target address replacement in speculative branch target address cache |
US7134005B2 (en) * | 2001-05-04 | 2006-11-07 | Ip-First, Llc | Microprocessor that detects erroneous speculative prediction of branch instruction opcode byte |
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 |
US7165168B2 (en) * | 2003-01-14 | 2007-01-16 | Ip-First, Llc | Microprocessor with branch target address cache update queue |
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 |
US20020194461A1 (en) * | 2001-05-04 | 2002-12-19 | Ip First Llc | Speculative branch target address cache |
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 |
US7234045B2 (en) * | 2001-07-03 | 2007-06-19 | 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 |
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)
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)
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 |
-
1978
- 1978-01-03 US US05/866,686 patent/US4200927A/en not_active Expired - Lifetime
- 1978-10-27 CA CA314,524A patent/CA1103369A/en not_active Expired
- 1978-12-11 GB GB7847969A patent/GB2011673B/en not_active Expired
- 1978-12-12 JP JP15276278A patent/JPS5495139A/ja active Granted
- 1978-12-15 IT IT30875/78A patent/IT1160347B/it active
- 1978-12-20 FR FR7836587A patent/FR2413716B1/fr not_active Expired
- 1978-12-20 DE DE2855106A patent/DE2855106C2/de not_active Expired
-
1979
- 1979-01-02 AU AU43063/79A patent/AU519335B2/en not_active Ceased
Patent Citations (2)
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 |
---|---|
AU4306379A (en) | 1979-07-12 |
JPS5715421B2 (de) | 1982-03-30 |
DE2855106C2 (de) | 1985-05-23 |
GB2011673A (en) | 1979-07-11 |
FR2413716A1 (fr) | 1979-07-27 |
IT1160347B (it) | 1987-03-11 |
JPS5495139A (en) | 1979-07-27 |
US4200927A (en) | 1980-04-29 |
FR2413716B1 (fr) | 1986-02-21 |
GB2011673B (en) | 1982-02-24 |
AU519335B2 (en) | 1981-11-26 |
CA1103369A (en) | 1981-06-16 |
IT7830875A0 (it) | 1978-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2855106A1 (de) | Einrichtung zur durchfuehrung von instruktionsverzweigungen | |
DE4301417C2 (de) | Computersystem mit Einrichtung zur parallelen Befehlsausführung | |
DE68928677T2 (de) | Verfahren und digitaler Computer zur Vorverarbeitung mehrerer Befehle | |
DE69904189T2 (de) | Konfigurierter prozessor zur abbildung von logischen registernummern auf physikalische registernummern unter verwendung von virtuellen registernummern | |
DE69327688T2 (de) | Befehlsdecoder | |
DE69719235T2 (de) | Prozessor und Verfahren zur spekulativen Ausführung von bedingten Verzweigungsbefehlen unter Verwendung einer von mehreren Verzweigungsvorhersageverfahren | |
DE2224537C2 (de) | Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor | |
DE69129569T2 (de) | Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen | |
DE69932066T2 (de) | Mechanismus zur "store-to-load forwarding" | |
DE69433621T2 (de) | Geraet zur verarbeitung von befehlen in einem rechnersystem | |
DE3689923T2 (de) | Dreiphasen-Pipeline-Signalprozessor. | |
DE69308548T2 (de) | Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor. | |
DE3687666T2 (de) | Verzweigungssteuerung in einem dreiphasen-pipeline-signalprozessor. | |
DE60010907T2 (de) | Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter | |
DE69227429T2 (de) | Anordnung und Verfahren zur Auflösung von Abhängigkeiten unter mehreren Befehlen in einer Speicheranordnung | |
DE69904479T2 (de) | Registerumbenennung wobei übertragungsinstruktionen mittels umbenennungsschildernzeichen realisiert werden | |
DE69133302T2 (de) | Registerabbildung in einem einzigen Taktzyklus | |
DE3851746T2 (de) | Sprungvorhersage. | |
DE3424962C2 (de) | ||
DE69622663T2 (de) | Zweistufige vorausholungspufferstruktur und verfahren mit bypass | |
DE2234867C2 (de) | Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander unabhängiger Befehlsfolgen | |
DE3587167T2 (de) | Geraet zur vektorverarbeitung. | |
DE69702350T2 (de) | Verzweigungsvorhersageschema für cachespeicherzeile, das von sätzen eines set-assoziativen cachespeichers gemeinsam verwendet wird | |
DE69904083T2 (de) | Anordnung und verfahren zum etikettieren und ungültig-erklären von spekulativ ausgeführten befehlen | |
DE69030931T2 (de) | Mehrfachsequenzprozessorsystem |
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 |