DE3106881C2 - Datenverarbeitungseinrichtung - Google Patents
DatenverarbeitungseinrichtungInfo
- Publication number
- DE3106881C2 DE3106881C2 DE3106881A DE3106881A DE3106881C2 DE 3106881 C2 DE3106881 C2 DE 3106881C2 DE 3106881 A DE3106881 A DE 3106881A DE 3106881 A DE3106881 A DE 3106881A DE 3106881 C2 DE3106881 C2 DE 3106881C2
- Authority
- DE
- Germany
- Prior art keywords
- data
- command
- instruction
- address
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 239000000872 buffer Substances 0.000 claims abstract description 42
- 238000012795 verification Methods 0.000 claims 1
- 230000010365 information processing Effects 0.000 abstract description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 238000007781 pre-processing Methods 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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- 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
-
- 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/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Ein Informationsverarbeitungssystem mit einem Hochgeschwindigkeits-Pufferspeicher und mit einer erweiterten bzw. fortschrittlichen Steuerung enthält einen Adreß-Puffer (46) zum Speichern von Adressen, die einem Hauptspeicher (1) als Ausleseanforderungen zuzuführen sind, wenn Befehlsworte oder Daten nicht in dem Hochgeschwindigkeits-Pufferspeicher (45) enthalten sind, zusammen mit Befehlsstromnummern und -markierungen zur Anzeige, ob die Ausleseanforderungen bedingte Anforderungen auf der Grundlage eines vorausgesagten Vor-Abrufs sind. Für die Adressen mit den bedingten Anforderungsmarkierungen werden diese als Ausleseanforderungen gesendet, wenn die Voraussage endgültig bestimmt ist und werden die anderen Adressen gelöscht. Auf diese Weise muß die erweiterte Steuerung nicht unterbrochen werden.
Description
dadurch gekennzeichnet,
daß ferner eine Adressenhalteschaltung (46,48) vorgesehen ist, welche wenigstens eine Ausleseadresse der von der Anforderungsabgabeschaltung (42, 43, 45-1) abgegebenen Ausleseanforderungen kurzzeitig derart speichert, daß anhand der Ausleseadresse eine Identifizierung der Befehlsfolge, die die jeweilige Auslesevorrichtung aufweist, durchführbar ist, und
daß ferner eine Adressenhalteschaltung (46,48) vorgesehen ist, welche wenigstens eine Ausleseadresse der von der Anforderungsabgabeschaltung (42, 43, 45-1) abgegebenen Ausleseanforderungen kurzzeitig derart speichert, daß anhand der Ausleseadresse eine Identifizierung der Befehlsfolge, die die jeweilige Auslesevorrichtung aufweist, durchführbar ist, und
daß zusätzliche eine Adressensendesteuerschaltung (47) vorhanden ist, die, nach Durchführung der durch
die Befehlsfolgewählschaltung (32, 33, 51 bis 59) durchgeführten Wahl einer Befehlsfolge, die in der
Adressenhalteschaltung (46, 48) gespeicherten Ausleseadressen der jeweiligen Ausleseanforderungen,
die den Befehlen der ausgewählten Befehlsfolge zugeordnet sind, an den Hauptspeicher (1) weiterleitet.
2. Datenverarbeitungseinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Adressensendesteuerschaltung
(47) einen Anforderungs-Annulierkreis aufweist, welcher die Ausleseadressen der Befehle innerhalb der nicht ausgewählten Befehlsfolge
annuliert.
3. Datenverarbeitungseinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Adressenhalteschaltung
(46, 48) einen ersten Schaltkreis aufweist, welcher zu den innerhalb der Adressenhalteschaltung
(46, 48) gespeicherten Ausleseadressen der Ausleseanforderungen eine Identifikationsinformation
(Befehlsfolgezahl S) abspeichert, welche repräsentativ dafür ist, in welcher Befehlsfolge die jeweiligen
Ausleseanforderungen vorhanden sind.
4. Datenverarbeitungseinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Adressenhalteschaltung
(46, 48) einen zweiten Schaltkreis aufweist, welcher zu den innerhalb der Adressenhalteschaltung
(46, 48) gespeicherten Ausleseadressen der Ausleseanforderungen eine Identifikationsinformation
(WC) abspeichert, welche repräsentativ dafür ist, ob die jeweiligen Ausleseanforderungen nach
dem Auftreten eines bedingten Verzweigungsbefehls abgegeben worden sind.
Die Erfindung betrifft eine Datenverarbeitungseinrichtung nach dem Oberbegriff des Patentanspruchs !.
Üblicherweise wird, insbesondere bei einem großen Informationsverarbeitungssystem, ein Hochgeschwindigkeits-Pufferspeicher
zum Speichern von Kopien von Daten und Befehlsworten in einem Hauptspeicher und ein Vor-Abruf der Befehle und Daten verwendet, um die
Verarbeitungsgeschwindigkeit zu erhöhen. Auf diese Weise werden die Daten und die Befehlsworte, die zur
ίο Verarbeitung erforderlich sind, zu dem Hochgeschwindigkeits-Pufferspeicher
vor-abgerufen, um eine Hochgeschwindigkeits-Verarbeitung zu ermöglichen. Wenn
jedoch ein zu verarbeitender Befehlsstrom durch einen Verzweigungsbefehl geändert wird, würden die Befehlsworte
und Daten, die nicht zur Verarbeitung notwendig sind, in den HochgeschwiGdigkeits-Pufferspeicher vorabgerufen
werden. Dies ist ein besonderes Problem bei Informationsverarbeitungssystemen bei denen die Vorabsteuerung
sehr umfangreich ist. Diese Probleme sind beispielsweise beschrieben in C. V. Ramamoorthy, »Pipeline
Architecture«, in ACM Computing Surveys, Bd. 9 (1977) Nr. 1,S. 61 —102, Association for Computing Machinery
Inc.
Datenvorarbeitungseinrichtungen, bei denen vorausschauend die Verarbeitung nach einem bedingten Verzweigungsbefehl vorbereitet wird, sind bekannt (US-PS 34 18 638). Im Gegensatz zur vorliegenden Erfindung wird jedoch bei den bekannten Einrichtungen kein Hochgeschwindigkeits-Pufferspeicher zur vorbereiteten Aufnahme der Daten und Befehle verwendet.
Datenvorarbeitungseinrichtungen, bei denen vorausschauend die Verarbeitung nach einem bedingten Verzweigungsbefehl vorbereitet wird, sind bekannt (US-PS 34 18 638). Im Gegensatz zur vorliegenden Erfindung wird jedoch bei den bekannten Einrichtungen kein Hochgeschwindigkeits-Pufferspeicher zur vorbereiteten Aufnahme der Daten und Befehle verwendet.
Darüber hinaus sind Datenverarbeitungsanlagen bekannt, bei denen mit mehreren parallel arbeitenden
Steuerungen und mehreren parallel angeordneten Pufferspeichern Befehle und Operanden getrennt gespeichert
werden können (US-PS 36 18 041). Derartige Datenverarbeitungsanlagen benötigen einen hohen Aufwand.
Zur Überwindung dieses Problems wurde vorgeschlagen,
die Auslösung der Übertragung für die Befehlsworte und Daten von dem Hauptspeicher zu dem
Hochgeschwindigkeits-Pufferspeicher nach der Decodierung des Verzweigungsbefehls zu unterdrücken und
bis zur Entscheidung über die Art der Verzweigung zu warten, und wenn die Voraussage stimmt, die Übertragung
für den Hauptspeicher auszulösen jedoch, wenn die Voraussage falsch ist, die Übertragung nicht auszulösen
und die normale Verarbeitung fortzusetzen (vgl. JP-OS 40 824/76).
Bei diesem System wird das Abrufen unnötiger Befehlsworte und Daten in dem Hochgeschwindigkeits-Pufferspeicher, d. h., die Auslösung der Datenübertragung unnötiger Information von dem Hauptspeicher zu dem Hochgeschwindigkeits-Pufferspeicher verhindert. Da es jedoch bei diesem System Voraussetzung ist, daß die Entscheidung über den Verzweigungsbefehl abgewartet wird, wenn der Verzweigungsbefehl decodiert wird und wenn die vorausgesagten Befehlsworte und Daten dann nicht in dem Hochgeschwindigkeits-Pufferspeicher enthalten sind, kann der nächste Verarbeitungsschritt nicht durchgeführt werden vor der Entscheidung. Folglich wird der Vorteil der Vorabsteuerung nicht in vollem Umfang genutzt.
Bei diesem System wird das Abrufen unnötiger Befehlsworte und Daten in dem Hochgeschwindigkeits-Pufferspeicher, d. h., die Auslösung der Datenübertragung unnötiger Information von dem Hauptspeicher zu dem Hochgeschwindigkeits-Pufferspeicher verhindert. Da es jedoch bei diesem System Voraussetzung ist, daß die Entscheidung über den Verzweigungsbefehl abgewartet wird, wenn der Verzweigungsbefehl decodiert wird und wenn die vorausgesagten Befehlsworte und Daten dann nicht in dem Hochgeschwindigkeits-Pufferspeicher enthalten sind, kann der nächste Verarbeitungsschritt nicht durchgeführt werden vor der Entscheidung. Folglich wird der Vorteil der Vorabsteuerung nicht in vollem Umfang genutzt.
Es ist Aufgabe der Erfindung, eine Datenverarbeitungseinrichtung der im Oberbegriff des Hauptan-Spruchs
angegebenen Art anzugeben, die unter Vermeidung der erwähnten Nachteile eine unnötige Informationsübertragung
von dem Hauptspeicher zu dem Puffersoeicher verhindert, ohne dabei auf die Vorteile der
zusätzlichen Steuerung für den Vor-Abruf der Befehle
zu verzichten.
Gelöst wird diese Aufgabe durch die im Kennzeichnenden Teil des Patentanspruchs 1 angegebenen Merkmale.
Zweckmäßige Ausgestaltungen und Weiterbildungen des Gegenstandes des Patentanspruchs 1 sind in den
Unteransprüchen angegeben.
Die Erfindung wird anhand der in der Zeichnung dargestellten Ausführungsbeispiele näher erläutert Es
zeigt
F i g. 1 ein Blockschaltbild eines Gesamtaufbaus einer
Datenverarbeitungseiürichtung, bei der die Erfindung
angwendet ist,
F i g. 2 Einzelheiten der Befehlssteuereinheit gemäß
Fig. 1,
Fig.3 ein Ausführungsbeispiel einer Befehlsfolgewählschaltung
in der Befehlssteuereinheit, die insbesondere für die Erfindung wesentlich ist,
F i g. 4 ein Ausführungsbeispiel einer Speichersteuereinheit,
F i g. 5 Funktionen der Steuerschaltung gemäß F i g. 3.
F i g. 1 zeigt einen Gesamtaufbau einer Datenverarbeitungseinrichsufig,
bei der die Erfindung angewendet ist und das einen Hauptspeicher i, eine Speichersteuereinheit
2, eine Kanaleinheit 3, eine Befehlssteuereinheit 4 und eine Recheneinheit 5 aufweist. Bei diesem System
werden Befehlsworte in dem Hauptspeicher 1 in folgender Weise verarbeitet Das Befehlswort wird aus dem
Hauptspeicher 1 mittels der Befehlssteuereinheit 4 über die Speichersteuereinheit 2 ausgelesen. Das Befehlswort
wird in die Befehlssteuereinheit 4 eingegeben und durch diese decodiert wobei auch Daten, die für den
durch das Befehlswort bestimmten Bereich notwendig sind, aus dem Hauptspeicher 1 über die Speichersteuereinheit
2 ausgelesen werden. Die ausgelesenen Daten werden zur Recheneinheit 5 übertragen, wo sie gemäß
dem Befehlswort verarbeitet werden. Die Kanaleinheit 3 steuert den Austausch der Daten mit I/O-Einrichtungen
(Eingabe/Ausgabe-Einrichtungen). Da diese für die vorliegende Erfindung nicht wesentlich sind, werden sie
nicht näher erläutert.
Bei der Datenverarbeitungseinrichtung, die eine Vorab-Steuerung verwendet werden das Auslesen und Decodieren
der Befehlsworte, das Auslesen der Daten, die für die befohlenen Betriebsschritte notwendig sind, und
das Verarbeiten der Daten gemäß den Befehlsworten in sich überlappender Betriebsart für mehrere Befehlsworte durchgeführt. Daher arbeiten der Hauptspeicher
1, die Speichersteuereinheit 2, die Befehlssteuereinheit 4 und die Recheneinheit 5 parallel. Die Speichersteuereinheit
2 enthält einen Hochgeschwindigkeits-Pufferspeicher, der Kopien der Befehlsworte und Daten in dem
Hauptspeicher 1 vorab speichert Wenn eine Ausleseanforderung abgegeben wird, prüft die Speichersteuereinheit
2 zunächst ob angeforderte Befehlsworte oder Daten in dem Hochgeschwindigkeits-Pufferspeicher enthalten
sind, und wenn sie enthalten sind, liest sie diese aus dem Hochgeschwindigkeits-Pufferspeicher aus, und
wenn sie nicht enthalten sind, löst sie eine Übertragung für den Hauptspeicher 1 aus. Bei dem System gemäß
F i g. 1 bezieht sich die vorliegende Erfindung insbesondere auf die Speichersteuereinheit 2 und die Befehlssteuereinheit 4.
F i g. 2 zeigt im Einzelnen den Aufbau der Speichersteuereinheit 4. In Fig. 2 wird das aus der Speichersteuereinheit
2 ausgelesene Befehlswort in einem ersten Befehlspuffer 21 oder in einem zweiten Befehlspuffer 22
über eine Leitung 210 gespeichert Die beiden Befehlspuffer 21, 22 sind so vorgesehen, daß einer von ihnen
einer Zieladresse eines Verzweigungsbefehls zugeordnet ist während der andere einer Kauptbefehlsfolge zugeordnet
ist Das Befehlswort von dem Befehlspuffer 21 oder 22 wird in ein Befehlsregister 23 eingegeben, wenn
das Befehlswort decodiert ist Die decodierte Information wird in ein Register 27 für einen decodierten Befehl
eingegeben, von wo sie zur Recheneinheit 5 über eine
ίο Leitung 212 übertragen wird, wenn der Befehl ausgeführt
werden soll. Wenn das Befehlswort decodiert ist, wird durch einen Adreßaddierer 25 eine Datenadresse
erstellt und das Ergebnis wird in ein Register 26 geladen. Weiter ist ein Stapel von Allzweckregistern 24 vorgesehen.
Der Inhalt des Registers 26 wird zur Speichersteuereinheit 2 über eine Auswahlschaltung 32 zugeführt,
damit Daten aus dem Hochgeschwindigkeits-Pufferspeicher der Speichersteuereinheit 2 ausgelesen werden.
Befehlsadreßregister 28 und 29 ermöglichen das Auslesen der Befehlsworte abhängig von den Befehisfolgen.
Deren Inhalt wird auch zu der Speichersteuereinheit 2 über die Auswahlschaltung 32 übertragen, so
daß das Befehlswort aus dem Hochgeschwindigkeits-Pufferspeicher ausgelesen wird. Eine Adresse davon
wird durch einen Adreßinkrementer 30 inkrementiert (vorwärtsgezählt) zum Erzeugen einer Ausleseadresse
für das nächste Befehlswort die in die Befehlsadreßregister 28 und 29 über ein Register 31 geladen wird.
Die Befehlssteuereinheit 4 bewirkt das Auslesen und Decodieren des Befehlsworts und das Auslesen der Daten, die zur Verarbeitung notwendig sind, vor der Ausführung des Befehls. In F i g. 2 enthält sie eine Befehlsfolgewählschaltung 33, um zu verhindern, daß eine unnötige Übertragung von dem Hauptspeicher 1 zu dem Hochgeschwindigkeits-Pufferspeicher durchgeführt wird. Dies ist eines der wesentlichsten Merkmale der Erfindung.
Die Befehlssteuereinheit 4 bewirkt das Auslesen und Decodieren des Befehlsworts und das Auslesen der Daten, die zur Verarbeitung notwendig sind, vor der Ausführung des Befehls. In F i g. 2 enthält sie eine Befehlsfolgewählschaltung 33, um zu verhindern, daß eine unnötige Übertragung von dem Hauptspeicher 1 zu dem Hochgeschwindigkeits-Pufferspeicher durchgeführt wird. Dies ist eines der wesentlichsten Merkmale der Erfindung.
F i g. 3 zeigt im Einzelnen ein Ausführungsbeispiel der Befehlsfolgewählschaltung 33. F i g. 3 zeigt ein Register
58 für bedingte Anforderung. Wenn ein bedingter Verzweigungsbefehl in das Befehlsregister 23 gemäß F i g. 2
eingegeben und decodiert wird, wird das Register 58 durch eine Steuerschaltung 57 über eine Leitung 101
gesetzt. Andererseits werden in der Speichersteuerschaltung 2, nachdem der bedingte Verzweigungsbefehl
decodiert worden ist, die Befehlsworte oder Daten für eine vorhergesagte Befehlsfolge vor-abgerufen. Wenn
das Register 58 gesetzt ist, informiert eine Steuerschaltung 59 die Speichersteuereinheit 2 über eine Leitung
215 darüber, daß der Vor-Abruf der Befehlsworte oder Daten auf der bedingten Ausleseanforderung beruht.
Abhängig davon befiehlt die Speichersteuereinheit 2 dem Hauptspeicher 1 das Auslösen der Übertragung
der Befehlsworte oder Daten für die bedingte Anforderung zu unterdrücken, selbst wenn sie nicht in dem
Hochgeschwindigkeits-Pufferspeicher enthalten sind. Das Register 58 für bedingte Anforderung wird rückgesetzt,
wenn die Befehlsfolgewählschaltung 33 das Verzweigung/Nichtverzweigung-Signal von der Recheneinheit
5 über eine Leitung 214 erhält. Daher hält das Register 58 für bedingte Anforderung eine »1«, nachdem
die Befehlssteuereinheit 4 den bedingten Verzweigung<ibefehl
decodiert hat und bis die Entscheidung : Verzweigung/Nichtverzweigung des Verzweigungsbefehls
durchgeführt worden ist, wobei alle Vorabruf-Anforderungen, die während dieser Periode von
der Befehlssteuereinheit 4 zur Steuerspeichereinheit 2 abgegeben werden, als bedingte Anforderungen behan-
delt werden. Wenn diese bedingten Anforderungen empfangen werden, führt die Speichersteuereinheit 2
keinen unmittelbaren Zugriff zu dem Hauptspeicher 1 durch, selbst wenn die notwendige Information nicht in
dem Hochgeschwindigkeits-Pufferspeicher enthalten ist, wenn jedoch folgende Befehlsworte oder Daten in
dem Hochgeschwindigkeits-Pufferspeicher enthalten sind, werden diese von dem Pufferspeicher abgerufen
ohne Unterbrechen des Vorabrufs dieser Befehlsworte oder Daten. Einzelheiten der Speichersteuereinheit 2
werden im Folgenden erläutert.
Gemäß Fig.3 enthält ein Register 52 eine Zahl, die
die Befehlsfolge anzeigt, die gerade decodiert wird. Eine vorhergesagte Zahl wird in das Register 52 durch die
Steuerschaltung 5i geladen, nachdem der bedingte Verzweigungsbefehl
decodiert worden ist. Der Inhalt des Registers 52 wird zu dem Register 27 für decodierten
Befehl gemäß F i g. 2 durch die Steuerschaltung 59 über eine Leitung 102 übertragen und wird dann zu der Recheneinheit
5 über eine Leitung 212 übertragen, so daß er zur Auswahl der Befehlsfolgezahl verwendet wird,
die durchzuführen ist, wenn die Recheneinheit 5 die Entscheidung : Verzweigung/Nichiverzweigung des Verzweigungsbefehls
durchführt. Der Inhalt des Registers 52 wird auch zur Befehlsfolgewählschaltung 32 über die
Leitung 102 übertragen, so daß er zur Auswahl der Befehlsadreßregister 28 oder 29 verwendet wird. Ein
Hauptfolgeregister 54 zeigt eine Hauptfolge der Befehle an. Ein Register 56 zeigt die aktive Befehlsfolge an.
Wenn kein bedingter Verzweigungsbefehl vorliegt, ist eine der Befehlsfolgen aktiv, und während der Periode
von der Decodierung des bedingten Verzweigungsbefehls bis zur Entscheidung Verzweigung/Nichtverzweigung
sind sowohl die Hauptfolge als auch die Zielfolge aktiv. Wenn das Ergebnis der Entscheidung von der
Recheneinheit 5 über die Leitung 214 empfangen wird, wird lediglich eine der Befehlsfolgen durch die Steuerschaltung
55 aktiviert. Simultan gibt die Steuerschaltung 59 eine Information über die Befehlsfolge, die als Ergebnis
der Entscheidung ausgeführt werden soll, an die Speichersteuereinheit 2 über die Leitung 216 ab.
Fig.5(1) bis 5(4) zeigen die Funktionen der Steuerschaltungen
51, 53, 55 bzw. 57. Die Steuerschaltungen 51, 53, 55, 57 und 59 sind in F i g. 3 getrennt dargestellt
zur einfacheren Erläuterung, jedoch können die von ihnen durchgeführten Funktionen auch durch eine mikroprogrammierte
Steuerschaltung ausgeführt werden.
Fig.4 zeigt im Einzelnen den Aufbau der Speichersteuereinheit
2. Gemäß F i g. 4 wird eine Adresse in ein Adreßregister 41 von der Befehlssteuereinheit 4 über
eine Leitung 213 geladen. Die Bits in dieser Adresse werden durch einen Decodierer 42 decodiert, der eine
Spalte in dem Hochgeschwindigkeits-Pufferspeicher 45 bestimmt. Der Hochgeschwir.digkeits-Pufferspeicher 45
enthält mehrere Spalten, wobei jede Spalte ein Adreßaufzeichnungsfeld
45-1, ein Datenaufzeichnungsfeld 45-2 und ein V-Bit-Feld zur Anzeige der Gültigkeit der
Spalte aufweist Das Adreßaufzeichnungsfeld 45-1 der bezeichneten Spalte wird mit der Adresse in dem
Adreßregister 41 durch eine Vergleicherschaltung 43 verglichen, und wenn der Vergleich Gleichheit bzw.
Übereinstimmung zeigt, wird der Inhalt des Datenaufzeichnungsfeldes
45-2 der bezeichneten Spalte in ein Datenregister 44 geladen und wird dann zu der Befehlssteuereinheit 4 oder der Recheneinheit 5 über eine Lei-
tung 210 oder 217 übertragen. Wenn der Vergleich in der Vergleicherschaltung 43 Ungleichheit zeigt, d. h.
wenn keine Daten in der bezeichneten Spalte des Pufferspeichers 45 enthalten sind, wird die Adresse des
Adreßregisters 41 in ein Feld 46-1 eines Adreß-Puffers 46 oder -Stapels mittels einer Auswahlschaltung 48 geladen.
Simultan wird eine Befehlsfolgezahl und eine Information, die anzeigt, ob es sich um eine bedingte Anforderung
handelt oder nicht, in ein S- und ein U/C-Fe\d (U: unbedingt; C: bedingt) des Adreß-Puffers 46 mittels
der Befehlssteuereinheit 4 über eine Leitung 215 geladen. Dann beginnt die Speichersteuereinheit 2 das Laden
der nächsten Adresse in das Adreßregister 41.
Wenn andererseits die in dem Adreß-Puffer 46 geladene Adresse keine bedingte Anforderung ist, d. h.,
wenn es sich um eine unbedingte Anforderung (U) handelt, wird die Adresse unmittelbar zum Hauptspeicher 1
über eine Leitung 311 als Anforderung gesandt. Die Befehlsworte oder Daten, die aus dem Hauptspeicher 1
ausgelesen werden, werden zu dem Feld 45-2 des Hochgeschwindigkeits-Pufferspeichers
45 über eine Leitung 310 übertragen, wobei die entsprechende Adresse in das
Feld 45-1 mittels des Adreß-Puffers 46 registriert wird. Wenn die Adresse eine bedingte Anforderung (C) ist,
wird eine Anforderung an den Hauptspeicher 1 nicht unmittelbar erzeugt, vielmehr gibt die Adresse die Anforderung
an den Hauptspeicher 1 in folgenden Prozeduren ab. Die Entscheidung über den Verzweigungsbefehl
wird an die Befehlssteuereinheit 4 durch die Recheneinheit 5 über eine Leitung 214 gegeben, und über
die durchzuführende Befehlsfolge wird die Speichersteuereinheit 2 über eine Leitung 216 informiert. Wenn
die auszuführende Befehlsfolge, die die bedingte Anforderung ist, in dem Adreß-Puffer 46 enthalten ist, wird
deren Adresse zum Hauptspeicher 1 als Anforderung gesandt. Wenn eine bedingte Anforderung, die nicht die
auszuführende Befehlsfolge ist, in dem Adreß-Puffer 46 enthalten ist, wird diese Anforderung nicht zum Hauptspeicher
1 gesandt, sondern gelöscht.
Wie sich aus vorstehender Beschreibung ergibt, ergeben
sich folgende Vorteile:
1. Durch Setzen der Markierung der bedingten Anforderung auf die vorhergesagte vor-abgerufene
Anforderung wird eine unnötige Informations-Übertragung von dem Hauptspeicher vermieden;
2. weil die unnötige Informations-Übertragung vermieden ist, ist eine Wartezeit für die folgende Anforderung
für die Übertragung beseitigt und es sind nur die notwendigen Daten in dem Hochgeschwindigkeits-Pufferspeicher
gespeichert;
3. durch das Vorsehen des Adreß-Puffers zum Halten der Anforderungen für den Hauptspeicher, die jeweils
die Befehisfoigezahi und die bedingte Markierung besitzen, muß der vorhergesagte Vor-Abruf
nicht unterbrochen werden, selbst für einen bedingten Verzweigungsbefehl.
Hierzu 3 Blatt Zeichnungen
Claims (1)
1. Datenverarbeitungseinrichtung mit einem Hauptspeicher (1) und einem Pufferspeicher (45), in
dem Kopien der Daten und/oder Befehle des Hauptspeichers (1) einspeicherbar sind,
— wobei zusätzlich eine Anforderungsabgabeschaltung (42,43,45-1) vorgesehen ist,
die feststellt, ob angeforderte Daten oder Befehle entsprechend wenigstens einer Ausleseadresse
innerhalb eines Adreßregisters (41), im Pufferspeicher (45) vorliegen, und die, wenn die
entsprechenden Daten oder Befehle nicht im Pufferspeicher (45) vorliegen eine Ausleseanforderung
an den Hauptspeicher (1) abgibt, und
— wobei weiterhin zusätzlich eine Befehlsfolgewählschaltung (32,33,51 bis 59) vorhanden ist,
die, abhängig von der Überprüfung eines bedingten Verzweigungsbefehls, eine Befehlsfolge
aus mehreren unterschiedlichen Befehlsfolgen auswählt,
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP55024749A JPS5927935B2 (ja) | 1980-02-29 | 1980-02-29 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3106881A1 DE3106881A1 (de) | 1982-01-14 |
DE3106881C2 true DE3106881C2 (de) | 1985-08-08 |
Family
ID=12146785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3106881A Expired DE3106881C2 (de) | 1980-02-29 | 1981-02-24 | Datenverarbeitungseinrichtung |
Country Status (3)
Country | Link |
---|---|
US (1) | US4719570A (de) |
JP (1) | JPS5927935B2 (de) |
DE (1) | DE3106881C2 (de) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60168238A (ja) * | 1984-02-10 | 1985-08-31 | Hitachi Ltd | パイプラインデータ処理装置 |
JPS6114141U (ja) * | 1984-06-30 | 1986-01-27 | スズキ株式会社 | 格納式方向指示器 |
JPH0752390B2 (ja) * | 1985-05-07 | 1995-06-05 | 株式会社日立製作所 | 命令処理装置 |
EP0229619B1 (de) * | 1986-01-07 | 1997-08-06 | Nec Corporation | Befehlsvorabrufgerät mit einer Schaltung zum Prüfen der Vorhersage eines Verzweigungsbefehls vor seiner Ausführung |
US4991080A (en) * | 1986-03-13 | 1991-02-05 | International Business Machines Corporation | Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions |
US4888689A (en) * | 1986-10-17 | 1989-12-19 | Amdahl Corporation | Apparatus and method for improving cache access throughput in pipelined processors |
US5265220A (en) * | 1986-12-23 | 1993-11-23 | Nec Corporation | Address control device for effectively controlling an address storing operation even when a request is subsequently cancelled |
US4819155A (en) * | 1987-06-01 | 1989-04-04 | Wulf William A | Apparatus for reading to and writing from memory streams of data while concurrently executing a plurality of data processing operations |
JPH0235525A (ja) * | 1988-07-25 | 1990-02-06 | Fujitsu Ltd | 命令フェッチ制御方法 |
EP0402524B1 (de) * | 1988-11-25 | 1996-10-02 | Nec Corporation | Mikrorechner, geeignet zur Schnellverarbeitung eines Verzweigungsbefehlskodes |
JP2504149B2 (ja) * | 1988-12-02 | 1996-06-05 | 三菱電機株式会社 | 命令キュ―管理装置 |
US5113515A (en) * | 1989-02-03 | 1992-05-12 | Digital Equipment Corporation | Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer |
JP2560889B2 (ja) * | 1990-05-22 | 1996-12-04 | 日本電気株式会社 | マイクロプロセッサ |
JP3082944B2 (ja) * | 1990-12-20 | 2000-09-04 | 富士通株式会社 | パイプライン処理装置 |
JP2693678B2 (ja) * | 1992-01-28 | 1997-12-24 | 株式会社東芝 | データ処理装置 |
US5430840A (en) * | 1992-04-30 | 1995-07-04 | International Business Machines Corporation | Predictive paging assist |
JPH07182170A (ja) * | 1993-12-24 | 1995-07-21 | Ricoh Co Ltd | マイクロプロセッサ |
DE69535330T2 (de) * | 1994-09-14 | 2007-05-31 | Intel Corporation, Santa Clara | Caching-System mit Explitzer Folgeliste |
US6256727B1 (en) * | 1998-05-12 | 2001-07-03 | International Business Machines Corporation | Method and system for fetching noncontiguous instructions in a single clock cycle |
US6275924B1 (en) * | 1998-09-15 | 2001-08-14 | Texas Instruments Incorporated | System for buffering instructions in a processor by reissuing instruction fetches during decoder stall time |
US6772325B1 (en) * | 1999-10-01 | 2004-08-03 | Hitachi, Ltd. | Processor architecture and operation for exploiting improved branch control instruction |
JP2011028540A (ja) * | 2009-07-27 | 2011-02-10 | Renesas Electronics Corp | 情報処理システム、キャッシュメモリの制御方法、プログラム及びコンパイラ |
JP6030298B2 (ja) * | 2010-12-28 | 2016-11-24 | 株式会社半導体エネルギー研究所 | 緩衝記憶装置及び信号処理回路 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3292153A (en) * | 1962-10-01 | 1966-12-13 | Burroughs Corp | Memory system |
US3401376A (en) * | 1965-11-26 | 1968-09-10 | Burroughs Corp | Central processor |
FR1536616A (fr) * | 1966-09-21 | Ibm | Système de traitement d'instructions avec des perfectionnements pour le branchementet les boucles du programme | |
US3559183A (en) * | 1968-02-29 | 1971-01-26 | Ibm | Instruction sequence control |
US3618041A (en) * | 1968-10-31 | 1971-11-02 | Hitachi Ltd | Memory control system |
US3573853A (en) * | 1968-12-04 | 1971-04-06 | Texas Instruments Inc | Look-ahead control for operation of program loops |
US3577189A (en) * | 1969-01-15 | 1971-05-04 | Ibm | Apparatus and method in a digital computer for allowing improved program branching with branch anticipation reduction of the number of branches, and reduction of branch delays |
US3553655A (en) * | 1969-03-28 | 1971-01-05 | Ibm | Short forward conditional skip hardware |
US3764988A (en) * | 1971-03-01 | 1973-10-09 | Hitachi Ltd | Instruction processing device using advanced control system |
JPS549456B2 (de) * | 1972-07-05 | 1979-04-24 | ||
US4040031A (en) * | 1973-04-13 | 1977-08-02 | Compagnie Honeywell Bull (Societe Anonyme) | Computer instruction control apparatus and method |
US3898624A (en) * | 1973-06-14 | 1975-08-05 | Amdahl Corp | Data processing system with variable prefetch and replacement algorithms |
US3896419A (en) * | 1974-01-17 | 1975-07-22 | Honeywell Inf Systems | Cache memory store in a processor of a data processing system |
JPS5430624B2 (de) * | 1974-10-04 | 1979-10-02 | ||
CA1059639A (en) * | 1975-03-26 | 1979-07-31 | Garvin W. Patterson | Instruction look ahead having prefetch concurrency and pipe line features |
JPS5247635A (en) * | 1975-10-15 | 1977-04-15 | Toshiba Corp | Control method for transmitting informat ion |
US4210960A (en) * | 1977-09-02 | 1980-07-01 | Sperry Corporation | Digital computer with overlapped operation utilizing conditional control to minimize time losses |
US4157587A (en) * | 1977-12-22 | 1979-06-05 | Honeywell Information Systems Inc. | High speed buffer memory system with word prefetch |
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
US4338661A (en) * | 1979-05-21 | 1982-07-06 | Motorola, Inc. | Conditional branch unit for microprogrammed data processor |
US4373180A (en) * | 1980-07-09 | 1983-02-08 | Sperry Corporation | Microprogrammed control system capable of pipelining even when executing a conditional branch instruction |
-
1980
- 1980-02-29 JP JP55024749A patent/JPS5927935B2/ja not_active Expired
-
1981
- 1981-02-24 DE DE3106881A patent/DE3106881C2/de not_active Expired
-
1984
- 1984-04-06 US US06/597,744 patent/US4719570A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPS56123041A (en) | 1981-09-26 |
US4719570A (en) | 1988-01-12 |
JPS5927935B2 (ja) | 1984-07-09 |
DE3106881A1 (de) | 1982-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3106881C2 (de) | Datenverarbeitungseinrichtung | |
DE2855106C2 (de) | Einrichtung zur Durchführung von bedingten Verzweigungen | |
DE69534113T2 (de) | Kompression der Befehlswörter eines Rechners | |
DE69534148T2 (de) | Rechnersystem zur Ausführung von Verzweigungsbefehlen | |
DE3210816C2 (de) | ||
DE10084556B4 (de) | Optimierte Ausführung von statisch sehr wahrscheinlich vorhergesagten Verzweigungsbefehlen | |
DE69929936T2 (de) | Verfahren und Vorrichtung zum Abrufen von nicht-angrenzenden Befehlen in einem Datenverarbeitungssystem | |
DE3151745C2 (de) | ||
DE2224537C2 (de) | Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor | |
DE19527031C2 (de) | Verzweigungsprozessor für ein Datenverarbeitungssystem und Verfahren zum Betreiben eines Datenverarbeitungssystems | |
DE4222776C2 (de) | Parallelverarbeitungseinheit und Verfahren zum Ausführen von Befehlen | |
DE2644441A1 (de) | Datenverarbeitungssystem | |
DE2953861C2 (de) | ||
EP0011685B1 (de) | Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung | |
DE69814137T2 (de) | Cache-speicherbetrieb | |
DE19983098B4 (de) | Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren | |
DE3126878A1 (de) | Adressen-steuerschaltung fuer mikroprozessoren | |
DE2715073A1 (de) | Mikroprogrammierte rechner-steuervorrichtung | |
DE2725503A1 (de) | Konsole und datenverarbeitungssystem | |
DE4345028A1 (de) | Vorrichtung zur Reduzierung von Verzögerungen aufgrund von Verzweigungen | |
DE3900246C2 (de) | ||
DE3421737C2 (de) | Vorrichtung zur Ermittlung einer Überlappung von Operanden | |
DE2926351A1 (de) | Look-ahead-speicheradressen- steuereinrichtung | |
DE2906685C2 (de) | ||
DE19824289A1 (de) | Pipelineverarbeitungsmaschine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8125 | Change of the main classification |
Ipc: G06F 9/38 |
|
8126 | Change of the secondary classification |
Ipc: G06F 13/06 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |