DE3686991T2 - Mechanismus fuer parallele speicherdatenabholung und befehlsausfuehrung in einem prozessor mit reduziertem befehlssatz. - Google Patents
Mechanismus fuer parallele speicherdatenabholung und befehlsausfuehrung in einem prozessor mit reduziertem befehlssatz.Info
- Publication number
- DE3686991T2 DE3686991T2 DE8686306267T DE3686991T DE3686991T2 DE 3686991 T2 DE3686991 T2 DE 3686991T2 DE 8686306267 T DE8686306267 T DE 8686306267T DE 3686991 T DE3686991 T DE 3686991T DE 3686991 T2 DE3686991 T2 DE 3686991T2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- register
- data
- instruction
- address
- 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 - Lifetime
Links
- 230000007246 mechanism Effects 0.000 title abstract description 3
- 238000013480 data collection Methods 0.000 title 1
- 238000011084 recovery Methods 0.000 claims abstract description 3
- 238000000034 method Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000006872 improvement 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/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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
-
- 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/3834—Maintaining memory consistency
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
- Die Erfindung betrifft einen Instruktionsprozessorbereich eines digitalen Rechners und insbesondere ein Verfahren und eine Einrichtung, mit denen gleichzeitig ein Speicherzugriff und eine Instruktionsausführung erfolgen kann.
- Eine verwandte Patentanmeldung, die für die vorliegende Anmeldung von besonderem Interesse ist, ist unsere Europäische Patentanmeldung EP-A-0 213 843.
- Rechner benötigen beträchtlich mehr Zeit zum Ausführen einer Instruktion, die Daten aus einem Hauptspeicher wiedergewinnt, als zum Ausführen einer Instruktion, bei der keine derartige Speicher-Bezugnahme erfolgt. Speicher-Bezugnahmen können die Arbeit eines Rechners merklich verlangsamen. Folglich sind auf dem Gebiet Techniken zur Beseitigung des durch Speicher-Bezugnahmen verursachten Zeitverlustes bekannt. Eine dieser Techniken besteht darin, Instruktionen gleichzeitig mit dem Wiederauffinden von Daten aus dem Speicher auszuführen. Es müssen jedoch Vorsichtsmaßnahmen getroffen werden, um durch sogenannte Instruktionsabhängigkeit verursachte Fehler zu vermeiden, wobei die Ausführung einer Instruktion den Inhalt einer Speicherstelle ändert, jedoch, bevor die Änderung erfolgt, die Daten von dieser Stelle wiederaufgefunden werden, um bei einer nachfolgenden Instruktion verwendet zu werden. In diesem Fall muß es möglich sein, daß die Ausführung der ersten Instruktion beendet wird, bevor das Wiederauffinden der Daten durch die nächste Instruktion erfolgt.
- Das Vorsehen von gleichzeitiger Speicherdaten-Bezugnahme und Instruktionsausführung ist besonders wünschenswert bei einem Rechner mit reduziertem Befehlssatz (RISC) (vgl. G.H. Katevenis, "Reduced Instruction Set Computer Archtectures for VLSIs", ACM Doctoral Dissertation Award 1984. 1985. MIT Press. London. GB), da eine Aufgabe solcher Rechner in verbesserten Ausführungszeiten besteht. Jedoch stellen sich bei RISC- Rechnern zwei Probleme bei der Anwendung herkömmlicher Techniken, wie sie oben erwähnt wurden. Erstens enthält ein RISC eine relativ große, für allgemeine Zwecke vorgesehene Registerdatei zur Speicherung von oft benutzten Daten. Es ist wünschenswert, einen separaten Datenweg von dem Hauptspeicher in jedes Register der Datei zu schaffen, so daß aus dem Speicher wiederaufgefundene Daten in ein Register innerhalb der Datei zur gleichen Zeit eingeschrieben werden können, zu der die Daten, welche sich aus der Ausführung einer Instruktion ergeben, in die Datei eingeschrieben werden. Jede Verzögerung des Einschreibens ist unerwünscht, da sie die Zeitverbesserung beeinträchtigt, die durch die Gleichzeitigkeit von Speicherdaten-Bezugnahme und Instruktionsausführung realisiert wird. Die relativ große Anzahl von Registern in einem RISC-Dateiregister macht die Einrichtung des separaten Datenwegs unwirtschaftlich.
- Zweitens fehlt bei den RISC-Rechnern das Mikrocode- Niveau der Prozessorsteuerung. Da die Verfügbarkeit der Mikrocode-Programmierung oft benutzt wird, um Speicherseitenfehler mittels eines Unterbrechungsvorgangs zu handhaben, müssen RISC-Rechner sowohl hinsichtlich der Hardware als auch hinsichtlich der Software Alternativen auf der Ebene des Instruktionssatzes schaffen, um Seitenabruf -Anforderungen zu erfüllen.
- Die beschriebene Ausführungsform der Erfindung, die in Anspruch 1 beansprucht wird, schafft eine einfache Architektur zur Einrichtung eines Mechanismus zum Durchführen von Daten-Bezugsnahmen auf den Speicher parallel zur Instruktionsausführung. Die Architektur ist besonders geeignet für RISC-Rechner und verwendet ein Kanaladreßregister zum Speichern der Hauptspeicherlade- oder -speicheradresse, ein Kanaldatenregister, das die Daten für eine Speicheroperation vorübergehend speichert, und ein Kanalsteuerregister, das Steuerinformation enthält, welche im Fall einer Ladeoperation die Nummer des in der Datei befindlichen geladenen Registers enthält. Diese Nummer wird benutzt, um die Instruktionsabhängigkeit der zu ladenden Daten zu ermitteln. Eine Logikschaltung schiebt weitere Instruktionsverarbeitung auf, falls der von einer Ladung angeforderte Datenwert noch nicht verfügbar ist.
- Ein Dateneingaberegister steht zur Verfügung, um Ladedaten zu speichern, bis ein Instruktionsausführungszyklus verfügbar ist, um die Daten zurück in die Registerdatei zu schreiben. Diese Technik beseitigt die Notwendigkeit eines separaten Weges in die Registerdatei. Eine Logikschaltung ermittelt die Speicherung von Daten vor deren Zurück-Schreiben, um die Registerdateistelle effektiv zu ersetzen.
- Bei Seitenfehlern werden die Inhalte der Kanaladresse, der Kanaldaten und der Kanalsteuerregister gerettet, um eine Seitenfehler-Wiedergewinnung zu ermöglichen.
- Fig. 1 zeigt ein Blockschaltbild eines Bereiches eines RISC-Rechners für parallele Daten-Bezugnahmen und Instruktionsausführung;
- Fig. 2 zeigt die Ausführung von Lade-und-Speicher- Instruktionen durch den Prozessor der Erfindung; und
- Fig. 3 zeigt ein Zeitgebungs-Diagramm des Prozessors der Erfindung zur Veranschaulichung von gleichzeitiger Daten-Bezugnahme und Instruktionsausführung.
- Der für gleichzeitige Daten-Bezugnahme auf den Speicher und Instruktionsausführung vorgesehene Digitalprozessorsteuerbereich 10 eines Rechners mit reduziertem Befehlssatz (RISC) ist in Fig. 1 als Blockschaltbild gezeigt. Der Prozessor 10 weist eine Registerdatei 12 auf, die zur Speicherung häufig benutzter Daten vorgesehen ist. Eine zur Verwendung in dem Prozessor 10 geeignete Registerdatei ist in unserer Europäischen Patentanmeldung Nr. EP-A-0213843 beschrieben.
- Die in Fig. 1 gezeigen Wege veranschaulichen lediglich den Datenfluß zwischen den angezeigten Elementen und sind imstande, mehrere Signale parallel zu leiten. Ferner sind, wie dem Fachmann ersichtlich ist, Steuersignalwege erforderlich, jedoch sind diese in Fig. 1 nicht gezeigt, da dem Fachmann durchaus bekannt ist, wie die Steuerung der verschiedenen gezeigten Elemente ausgeführt wird.
- In Kürze gesagt, enthält die Registerdatei 12 einen Satz von Registern, von denen jedes einen Stellenbezeichner oder eine -nummer aufweist. Die Registerdatei 12 hat einen ersten und einen zweiten Lese-Port, eine ersten und einen zweiten Leseadreß-Fort und einen Schreib-Port. Der Inhalt eines in der Datei 12 befindlichen Registers, der an den ersten Lese-Port übermittelt wird, wird über einen Bus 14 einem Daten-Haltespeicher 16 zugeführt, und der Inhalt, der an den zweiten Lese-Port übermittelt wird, wird über einen Bus 18 einem Daten-Haltespeicher 20 zugeführt. Ein Ausgangsanschluß des Daten-Haltespeichers 16 bzw. des Daten- Haltespeichers 20 wird über einen Bus 22 bzw. 24 einem ersten bzw. zweiten Eingang einer Arithmetik-Kombiniereinrichtung (ALU) 26 zugeführt. Ein Ausgangsanschluß der ALU 26 ist über einen Bus 28 mit einem zweiten Eingangsanschluß des Haltespeichers 16 und des Haltespeichers 20 verbunden. Der Bus 28 verbindet ferner den Ausgang der ALU 26 mit einem Eingangsanschluß eines Daten-Haltespeichers 30. Ein Ausgangsanschluß des Haltespeichers 30 ist über einen Bus 32 mit dem Schreib-Port der Registerdatei 12 verbunden.
- Ein in Fig. 1 nicht gezeigter Bereich des Prozessors 10 verarbeitet Instruktionen, die von einem nicht gezeigten Cache-Speicher abgerufen werden, und veranlaßt die Durchführung der von den Instruktionen verlangten Aktionen. Eine solche Aktion kann das Laden eines der Daten-Haltespeicher 16 oder 20 von einem Register in der Datei 12 enthalten. Die Adresse des bestimmten Registers ist durch die Instruktion bestimmt. Alternativ kann eine solche Aktion das Speichern der in dem Haltespeicher 30 gehaltenen Ergebnisse einer Operation der ALU 26 in ein Register der Datei 12 sein. Auch hier wird die Adresse durch die Instruktion bestimmt. Diese Aktionen werden durch einen in Fig. 2 nicht gezeigten Bereich des Prozessors 10 gesteuert, wie dem Fachmann ersichtlich ist. Hinsichtlich einer detaillierten Beschreibung dieser Operationen wird Bezug genommen auf die verwandte Patentanmeldung.
- Ein Hauptspeicher 34 wird von dem Prozessor 10 dazu benutzt, weniger häufig benutzte Daten zu speichern. Ein bidirektionaler Datenbus 36 verbindet den Speicher 34 mit einem örtlichen Kanal 38, der dem Prozessor 10 dient. Andere, nicht gezeigte Prozessoren können den Speicher 34 mit dem Prozessor 10 teilen. In diesem Fall wären sie über ihre eigenen örtlichen Kanäle mit dem Speicher 34 verbunden.
- Ein Eingangsanschluß eines Dateneingaberegisters 40 ist dem örtlichen Kanal 38 derart verbunden, daß aus dem Speicher 34 wiederaufgefundene Ladedaten zeitweilig gespeichert werden können. Ein Ausgangsanschluß des Dateneingaberegisters 40 ist über einen Bus 42 mit einem Eingangsanschluß der Haltespeicher 16, 20 und 30 verbunden.
- Ein Eingangsanschluß eines Kanaladreßregisters 44 ist über einen Bus 46 mit dem ersten Lese-Port der Registerdatei 12 verbunden, und ein Eingangsanschluß eines Kanaldatenregisters 48 ist über einen Bus 50 mit dem zweiten Lese-Port der Registerdatei 12 verbunden. Ausgangsanschlüsse der Kanaladreß- und Kanaldatenregister 44 und 48 sind über Busse 52 bzw. 54 mit dem örtlichen Kanal 38 verbunden. Ein Kanalsteuerregister 56 empfängt Status- und Steuersignale von dem Steuerbereich des Prozessors 10 und erzeugt über Signalleitungen 58 Signale, die die Verbindung zwischen den verbundenen Elementen und dem örtlichen Kanal 38 aufrechterhalten.
- Während des Dekodierzyklus einer Lade- oder einer Steuerinstruktion erzeugt der Steuerbereich des Prozessors 10 Signale, die veranlassen, daß die Speicheradresse an dem zweiten Lese-Port der Registerdatei 12 erzeugt wird, und daß im Fall einer Speicher-Instruktion Daten an dem ersten Lese-Port der Registerdatei 12 erzeugt werden, und daß am Ende des Dekodierzyklus die Adresse über den Bus 46 dem Kanaladreßregister 44 zugeführt werden, die Daten über den Bus 50 dem Kanaladreßregister 48 zugeführt werden und Steuerinformation in dem Kanalsteuerregister 56 plaziert wird. Der Inhalt der Register 44, 48 und 56 wird nicht geändert, bis die Speicher-Bezugnahme auf den Speicher 34 beendet ist, so daß, falls ein Seitenfehler des Speichers 34 vor der Vervollständigung auftritt, der Inhalt dieser Register gerettet und zum Neustarten der Operation verwendet werden kann, aufgrund derer der Bus einen Fehler erkannt hat.
- Normalerweise können die Ausführung einer Instruktion durch die ALU 26 und damit zusammenhängender Bereiche des Prozessors 10 unabhängig und gleichzeitig mit dem Transfer von Daten aus dem Hauptspeicher 34 über das Dateneingaberegister 40 und zu dem Hauptspeicher über Kanaladreß- und Datenregister 44 und 48 unter Steuerung des Kanalsteuerregisters 56 und des Steuerbereiches des Prozessors 10 erfolgen. Die Nummer des Registers in der Datei 12, die in dem Kanalsteuerregister 56 gespeichert ist, wird ferner verwendet zur Detektion einer Instruktion in "Abhängigkeit" von den zu ladenden Daten: die gleichzeitige Daten-Bezugnahmen auf Speicher- und Instruktions-Ausführung verhindert.
- Ein in Fig. 1 gezeigter Komparator 60 empfängt auf einer ersten und einer zweiten Signalleitung 62 und 64 Signale, die die Registernummer eines aus der Datei 12 wiederzugewinnenden Operanden und die Registernummer des Registers in der Datei 12 repräsentieren, welches der Zielort der gerade ablaufenden Ladung ist, d. h. zum Laden des Operanden benutzt werden wird. Die Signale auf den Leitungen 62 und 64 werden ferner dem ersten bzw. dem zweiten Leseadreß-Port der Registerdatei 12 übermittelt. Der Komparator 60 empfängt ferner über Signalleitungen 58 Steuersignale von der Kanalsteuerung 56, die für jede gerade ablaufende Ladung einer Registernummer in der Datei 12 angeben. Der Komparator 60 erzeugt an einem Ausgangsanschluß ein Signal HIGH HOLD, falls der Vergleich der auf den Leitungen 62 oder 64 geführten Register-Nummern eine Übereinstimmung mit derjenigen auf der Leitung 58 ergibt, und die weitere Verarbeitung der Instruktion zum Wiederauffinden des Operanden wird aufgeschoben, bis die gerade ablaufende Ladung beendet ist.
- Im folgenden wird zum besseren Verständnis der Arbeitsweise des Prozessors 10 während des Ladens und Speicherns von Daten in den Hauptspeicher 34 die Fig. 2 erläutert, die die Ausführung der Speicherbezugnahme- Instruktionen veranschaulicht. Es ist ein Bereich 100 einer Lade-Instruktion gezeigt, der aus einem Operations-Code 102, einer Registerstellennummer 104, die eine in der Datei 12 befindliche Stelle einer Quellenadresse des Speichers 34 identifiziert, der Steuerinformation 106, und einer Zielortadresse 108 in der Registerdatei 12 besteht. Wie Fig. 2 zeigt, wird eine Quellenadresse in dem in der Datei 12 befindlichen Register an einer durch die Stellennummer 104 identifizierten Stelle zur späteren Übertragung in das Kanaladreßregister 44 gespeichert, und die Steuerinformation 106 und die Zielortadresse 108 werden zusammen mit der Prozessorstatusinformation in dem Kanalsteuerregister 56 gespeichert.
- In Fig. 2 ist ein Bereich 110 einer Speicher-Instruktion gezeigt, die aus einem Operations-Code 112, einer Registerstellennummer 114, die eine in der Datei 12 befindliche Stelle einer Quellenadresse des Speichers 34 identifiziert, der Registerstellennummer 116 der Quelle der aus dem Register 12 wiederaufzufindenden Daten und der Steuerinformation 118 besteht. Eine Quellenadresse wird in der Registerdatei 12 an einer durch die Stellennummer 114 identifizierten Stelle zur späteren Übertragung in das Kanaldatenregister 44 gespeichert, die Datenquelle wird in der Registerdatei 12 an einer durch die Stellennummer 116 identifizierten Stelle zur späteren Übertragung in das Kanaldatenregister 48 gespeichert, und die Steuerinformation 118 wird in dem Kanalsteuerregister 56 gespeichert. In dieser Weise können Daten aus dem Hauptspeicher 34 in die Registerdatei 12 geladen und aus der Registerdatei 12 in den Hauptspeicher 34 gespeichert werden, und zwar gleichzeitig mit der Ausführung der Instruktion. Die Instruktions-Abhängigkeiten werden durch den oben beschriebenen Komparator 60 ermittelt und verhindern die weitere Ausführung einer Instruktion, bis eine Ladung vervollständigt ist, falls eine Abhängigkeit ermittelt wird. Alternativ kann, falls ein Seitenfehler innerhalb des Hauptspeichers 34 entdeckt wird, der Inhalt der Register 44,48 und 56 zum Wiederaufnehmen und Neustarten der Fehlerbehebungsinformation verwendet werden.
- Wie in Fig. 1 gezeigt ist, werden die aus dem Hauptspeicher 34 wiederaufgefundenen Daten über den Bus 36 und den örtlichen Kanal 38 dem Dateneingaberegister 40 übermittelt, wo sie gespeichert werden, bis ein Instruktionsausführungszyklus verfügbar ist, in dem die Daten in die Registerdatei 12 geschrieben werden können. Da die Bemessung des Registers 12 einen separaten Datenweg für solche Operationen ausschließt, beseitigen die Arbeitsweise und die Architektur des in Fig. 1 gezeigten Prozessors die Notwendigkeit für solche separaten Wege. Während sich die Daten in dem Dateneingaberegister 40 befinden, steuern die oben beschriebenen Komparatoren, die die Instruktionsabhängigkeiten ermitteln, die Quelle dieser Daten zur Verwendung durch die ALU 26. Während dieser Periode wird der Inhalt des Dateneingaberegisters 40 über den Bus 42 und Datenhaltespeicher 16 bzw. 20 entweder dem ersten oder dem zweiten Eingang der ALU 26 zugeführt, so daß das Dateneingaberegister 40 das in der Datei 12 befindliche Register effektiv ersetzt, welches der Zielort der aus dem Hauptspeicher 34 wiederaufgefundenen Daten ist.
- Bei Verfügbarkeit eines Intruktionsausführungszyklus, in dem der Inhalt des Dateneingaberegisters 40 in die Registerdatei 12 geschrieben werden sollen, wird der Inhalt des Registers 40 dem Haltespeicher 30 und von dort über den Bus 32 dem Schreib-Port der Datei 12 zugeführt.
- Es existiert eine Instruktion, die auf diejenige folgt, welche veranlaßte, daß das Dateneingaberegister 40 zum zeitweiligen Speichern der aus dem Speicher 34 wiederaufgefundenen Daten verwendet wurde, und die wiederum den Daten-Zugriff von dem Hauptspeicher 34 erfordert. Diese nachfolgende Instruktion erfordert ferner die zeitweilige Speicherung von Daten in dem Dateneingaberegister 40. Die Existenz dieser nachfolgenden Instruktion garantiert jedoch auch die Verfügbarkeit eines Zyklus, in dem in die Registerdatei 12 geschrieben wird, wie im folgenden im Zusammenhang mit dem Zeitgebungsdiagramm von Fig. 3 beschrieben wird.
- Der Prozessor 10 benutzt eine Vierstufen-Pipeline zur Verarbeitung von Instruktionen; einer Abruf-Instruktion von einem Instrktions-Cache-Speicher, einer Dekodier- Instruktion, Ausführen der Instruktion, und Speichern der Ergebnisse. Fig. 3 ist ein Zeitgebungsdiagramm, das die durch den Prozessor 10 geleisteten gleichzeitigen Speicherdaten-Bezugnahmen und Ausführungen von Instruktionen veranschaulicht.
- Beginnend mit einem Zeitpunkt t&sub0; erfolgt ein Instruktionsabrufzyklus 201, gefolgt von einem bei t&sub1; beginnenden Instruktionsdekodierzyklus 202, gefolgt von einem bei t&sub2; beginnenden Instruktionsausführungszyklus 203, gefolgt von einer bei t&sub3; beginnenden und bis t&sub4; dauernden Operation 204 zum Rückspeichern in die Datei 12. Der Prozessor 10 kann die Übertragung von Daten 205 aus der Registerdatei 12 zu dem Hauptspeicher 34 auch beginnend mit dem Zeitpunkt t&sub2; initiieren, so daß diese während des Zyklus erfolgt, der der Ausführung 203 einer Instruktion unmittelbar folgt, beginnend mit t&sub3;. Die Rückspeicherungsoperation muß beginnen, nachdem die Hauptspeicherübertragungsoperation 205 endet, zum Zeitpunkt t&sub5;, und somit beginnt eine verzögerte Rückspeicherungsoperation 206 bei T&sub5; und wird fortgeführt bis t&sub6;. Zudem kann eine Übertragung von Daten aus dem Hauptspeicher 34 in die Datei 12 während der Periode t&sub5; bis T&sub6; gleichzeitig mit der verzögerten Rückspeicherungsoperation 206 erfolgen.
Claims (7)
1. Digitalprozessorsteuereinrichtung (10) in
Verbindung mit einem Speicher (34), zum Ausführen von
Instruktionen aus einem Satz von Instruktionen, der
eine Anzahl von Lade-aus-Speicher-Instruktionen und
eine Anzahl von Speichere-in-Speicher-Instruktionen
enthält, und zum Bewirken der Ausführung eines
weiteren Instruktionstyps gleichzeitig mit einer
Ladeaus-Speicher- oder einer Speichere-in-Speicher-
Instruktion, mit:
einer Registerdateieinrichtung (12) mit einem
ersten und einem zweiten Ausgangsanschluß (READ),
einem ersten und einem zweiten
Adreßeingangsanschluß (READ ADDR) sowie einem Eingangsanschluß
(WRITE), und ausgelegt zum Speichern einer Anzahl
von jeweils einen Positionsbezeichner enthaltenden
Mehr-Bit-Worten bei Anlegen eines derartigen Wortes
an den Eingangsanschluß (WRITE), und zum Erzeugen
von Signalen an dem ersten oder dem zweiten
Ausgangsanschluß (READ), die einem derartigen Wort
entsprechen, welches an einer Position in der Datei
gespeichert ist, die bestimmt ist durch dem ersten
bzw. dem zweiten Adreßeingangsanschluß zugeführte
Adreß-Signale;
einer mit dem Speicher (34) verbundenen ersten
Registereinrichtung (40) zum Empfangen und
zeitweiligen Speichern eines aus dem Speicher (34)
wiedergewonnenen Wortes, die ausgelegt ist zum
Erzeugen eines dem wiedergewonnenen Wort entsprechenden
Signals an einem ihrer Ausgänge;
einer zum Empfangen und zeitweiligen Speichern von
Steuerinformation vorgesehenen zweiten
Registereinrichtung (56), die ausgelegt ist zum Erzeugen
eines Kanalsteuersignals aus dieser Information;
einer Arithmetik-Kombiniereinrichtung (26) mit zwei
Eingangsanschlüssen (22, 24), die beide so ausgelegt
sind, daß sie selektiv jeweils mit dem ersten und
dem zweiten Ausgangsanschluß (READ) der
Registerdateieinrichtung (12) verbindbar sind, um ein
Ausgangssignal zu erzeugen, das die Kombination der an
ihre Eingangsanschlüsse angelegten Signale
repräsentiert;
einer ersten Haltespeichermultiplexeinrichtung
(30), die ausgelegt ist zum selektiven Verbinden
des Ausgangs der Kombiniereinrichtung (26) oder der
ersten Registereinrichtung (40) mit dem
Eingangsanschluß (WRITE) der Registerdateieinrichtung (12),
wobei die Kombiniereinrichtung (26) so geschaltet
ist, daß sie den Inhalt der ersten
Registereinrichtung (40) empfängt, bis die erste
Multiplexeinrichtung den Ausgang der ersten Registereinrichtung
(40) mit dem Eingangsanschluß der
Registerdateieinrichtung verbindet; und
einer dritten (44) und einer vierten (48)
Registereinrichtung, die zwischen dem ersten bzw. dem
zweiten Ausgangsanschluß der Registerdateieinrichtung
und dem Speicher angeordnet sind, zum Empfangen
bzw. zeitweiligen Speichern von Adreß- und
Datensignalen zur Speicherung der Daten in dem Speicher
(34) auf eine Speichere-in-Speicher-Instruktion
hin.
2. Digitalprozessorsteuereinrichtung nach Anspruch 1,
dadurch gekennzeichnet, daß die
Kombiniereinrichtung aufweist: eine Arithmetik-Logikeinheit (26)
mit einem ersten und einem zweiten Eingang (22, 24)
und einem Ausgangsanschluß für ihr Ausgangssignal;
und
eine zweite und eine dritte
Haltespeichermultiplexeinrichtung, die ausgelegt sind zum Empfangen von
an dem ersten bzw. dem zweiten Ausgangsanschluß der
Dateieinrichtung (12) erzeugten Signalen an dem
Ausgangsanschluß der Arithmetik-Logikeinheit und an
dem Ausgangsanschluß der ersten Registereinrichtung
(40), und zum Anlegen der empfangenen Signale
selektiv an den ersten bzw. den zweiten
Eingangsanschluß der Arithmetik-Logikeinheit (26).
3. Digitalprozessorsteuereinrichtung nach Anspruch 1
oder 2, dadurch gekennzeichnet, daß die zweite
Registereinrichtung (56) eine Einrichtung enthält,
die den Positionsbezeichner der
Registerdateieinrichtung (12) entsprechend dem Inhalt der ersten
Registereinrichtung (40) speichert.
4. Digitalprozessorsteuereinrichtung nach Anspruch 1,
2 oder 3, gekennzeichnet durch eine
Komparatoreinrichtung (60) mit einem ersten und einem zweiten
Eingangsanschluß, die geschaltet sind zum Empfangen
von an den ersten bzw. den zweiten Adreßanschluß
(READ ADDR) der Registerdateieinrichtung (12)
angelegten Adreßsignalen, und die auf das
Ausgangssignal der zweiten Registereinrichtung (56) hin ein
erstes Signal zum Anzeigen von Gleichheit
mindestens
eines der an den ersten und den zweiten
Eingangsanschluß der Dateieinrichtung angelegten
Adreßsignale mit einem Adreßteil des
Kanalsteuersignals, und andernfalls ein zweites Signal
erzeugt.
5. Speicherseitenfehler-Wiedergewinnungsverfahren
mittels eines Digitalprozessors, der ausgelegt ist zum
Ausführen von Instruktionen aus einem Satz von
Instruktionen, der eine Anzahl von Lade-aus-Speicher-
Instruktionen und eine Anzahl von Speichere-in-
Speicher- Instruktionen enthält, und zum Bewirken
der Ausführung eines weiteren Instruktionstyps
gleichzeitig mit einer Lade-aus-Speicher- oder
einer Speichere-in-Speicher-Instruktion, wobei der
Computer einen Speicher mit einer Vielzahl von
Speicherpositionen mit jeweils einer Adresse und
einer Registerdatei mit jeweils einem
Positionsbezeichner aufweist, mit den folgenden Schritten:
(a) Wiedergewinnen einer Lade- oder einer Speicher-
Instruktion aus einem Cache-Speicher;
(b) Bestimmen der Speicheradressen und der
Registerdatei-Positionsbezeichner der Operanden der
in Schritt (a) wiederaufgefundenen Instruktion;
(c) für jeden Speicherzugriff, der aufgrund der in
Schritt (a) wiederaufgefundenen Instruktion
erforderlich ist, zeitweiliges Speichern der in
Schritt (b) bestimmten Speicheradresse, und, im
Falle einer in Schritt (a) wiederaufgefundenen
Speicher-Instruktion, zeitweiliges Speichern
von aufgrund der Speicher-Instruktion zu
speichernder
Daten; und im Falle einer in Schritt
(a) wiederaufgefundenen Lade-Instruktion,
zeitweiliges Speichern des in Schritt (b)
bestimmten Positionsbezeichners; und
(d) für jeden Speicherzugriff in Schritt (c), der
einen Speicherseitenfehler erzeugt, Neustarten
des Speicherzugriffs unter Verwendung der in
Schritt (c) gespeicherten Werte.
6. Verfahren nach Anspruch 5, gekennzeichnet durch (e)
bei Ausführung dieser Instruktion bei Schritt (a)
und gleichzeitiger Wiedergewinnung von Daten aus
dem Speicher an einer Adresse, welche in einer
Positionsbezeichnung in der Registerdatei enthalten
ist, falls nicht eine oder mehrere der in Schritt
(c) gespeicherten Positionsbezeichnungen dem
Positionsbezeichner in der Registerdatei gleich sind.
7. Verfahren nach Anspruch 6, gekennzeichnet durch
Wiederholung von Schritt (c), bis er vollendet ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/771,435 US4734852A (en) | 1985-08-30 | 1985-08-30 | Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3686991D1 DE3686991D1 (de) | 1992-11-26 |
DE3686991T2 true DE3686991T2 (de) | 1993-04-29 |
Family
ID=25091809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE8686306267T Expired - Lifetime DE3686991T2 (de) | 1985-08-30 | 1986-08-14 | Mechanismus fuer parallele speicherdatenabholung und befehlsausfuehrung in einem prozessor mit reduziertem befehlssatz. |
Country Status (5)
Country | Link |
---|---|
US (1) | US4734852A (de) |
EP (1) | EP0213842B1 (de) |
JP (1) | JP2539199B2 (de) |
AT (1) | ATE81730T1 (de) |
DE (1) | DE3686991T2 (de) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4814976C1 (en) * | 1986-12-23 | 2002-06-04 | Mips Tech Inc | Risc computer with unaligned reference handling and method for the same |
JPS63240632A (ja) * | 1987-03-27 | 1988-10-06 | Nec Corp | 情報処理装置 |
JPS6462764A (en) * | 1987-09-03 | 1989-03-09 | Agency Ind Science Techn | Vector computer |
US5317715A (en) * | 1987-12-15 | 1994-05-31 | Advanced Micro Devices, Inc. | Reduced instruction set computer system including apparatus and method for coupling a high performance RISC interface to a peripheral bus having different performance characteristics |
US4926323A (en) * | 1988-03-03 | 1990-05-15 | Advanced Micro Devices, Inc. | Streamlined instruction processor |
US5513332A (en) * | 1988-05-31 | 1996-04-30 | Extended Systems, Inc. | Database management coprocessor for on-the-fly providing data from disk media to all without first storing data in memory therebetween |
JP3034873B2 (ja) * | 1988-07-01 | 2000-04-17 | 株式会社日立製作所 | 情報処理装置 |
US5083263A (en) * | 1988-07-28 | 1992-01-21 | Sun Microsystems, Inc. | BISC with interconnected register ring and selectively operating portion of the ring as a conventional computer |
US5226169A (en) * | 1988-12-30 | 1993-07-06 | International Business Machines Corp. | System for execution of storage-immediate and storage-storage instructions within cache buffer storage |
JP2655191B2 (ja) * | 1989-07-05 | 1997-09-17 | 三菱電機株式会社 | 演算処理装置 |
JP2816248B2 (ja) * | 1989-11-08 | 1998-10-27 | 株式会社日立製作所 | データプロセッサ |
US5179681A (en) * | 1989-11-16 | 1993-01-12 | Sun Microsystems, Inc. | Method and apparatus for current window cache with switchable address and out cache registers |
US5203002A (en) * | 1989-12-27 | 1993-04-13 | Wetzel Glen F | System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle |
AU629007B2 (en) * | 1989-12-29 | 1992-09-24 | Sun Microsystems, Inc. | Apparatus for accelerating store operations in a risc computer |
WO1991011765A1 (en) * | 1990-01-29 | 1991-08-08 | Teraplex, Inc. | Architecture for minimal instruction set computing system |
US5210841A (en) * | 1990-01-30 | 1993-05-11 | Advanced Micro Devices, Inc. | External memory accessing system |
US5222240A (en) * | 1990-02-14 | 1993-06-22 | Intel Corporation | Method and apparatus for delaying writing back the results of instructions to a processor |
JP2553728B2 (ja) * | 1990-02-23 | 1996-11-13 | 松下電器産業株式会社 | 演算装置 |
KR100210205B1 (ko) * | 1990-03-15 | 1999-07-15 | 리패치 | 스톨캐쉬를 제공하기 위한 장치 및 방법 |
US5201056A (en) * | 1990-05-02 | 1993-04-06 | Motorola, Inc. | RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output |
US5179682A (en) * | 1990-05-15 | 1993-01-12 | Sun Microsystems, Inc. | Method and apparatus for improved current window cache with switchable address in, out, and local cache registers |
US5226142A (en) * | 1990-11-21 | 1993-07-06 | Ross Technology, Inc. | High performance register file with overlapping windows |
US5539911A (en) * | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
JPH0614003A (ja) * | 1991-07-31 | 1994-01-21 | Nec Corp | データ処理回路 |
US5363495A (en) * | 1991-08-26 | 1994-11-08 | International Business Machines Corporation | Data processing system with multiple execution units capable of executing instructions out of sequence |
EP0544083A3 (en) * | 1991-11-26 | 1994-09-14 | Ibm | Interleaved risc-type parallel processor and processing methods |
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 |
US5434987A (en) * | 1993-09-21 | 1995-07-18 | Intel Corporation | Method and apparatus for preventing incorrect fetching of an instruction of a self-modifying code sequence with dependency on a bufered store |
DE19506970A1 (de) * | 1995-02-28 | 1996-08-29 | Winkler Gmbh & Co Kg Baeckerei | Vorrichtung zum Fördern und Umsetzen von Teigstücken |
US5878255A (en) * | 1995-06-07 | 1999-03-02 | Advanced Micro Devices, Inc. | Update unit for providing a delayed update to a branch prediction array |
US5875324A (en) * | 1995-06-07 | 1999-02-23 | Advanced Micro Devices, Inc. | Superscalar microprocessor which delays update of branch prediction information in response to branch misprediction until a subsequent idle clock |
US5898701A (en) * | 1995-12-21 | 1999-04-27 | Cypress Semiconductor Corporation | Method and apparatus for testing a device |
US5805794A (en) * | 1996-03-28 | 1998-09-08 | Cypress Semiconductor Corp. | CPLD serial programming with extra read register |
US5815510A (en) * | 1996-03-28 | 1998-09-29 | Cypress Semiconductor Corp. | Serial programming of instruction codes in different numbers of clock cycles |
US5983321A (en) * | 1997-03-12 | 1999-11-09 | Advanced Micro Devices, Inc. | Cache holding register for receiving instruction packets and for providing the instruction packets to a predecode unit and instruction cache |
US6122729A (en) * | 1997-05-13 | 2000-09-19 | Advanced Micro Devices, Inc. | Prefetch buffer which stores a pointer indicating an initial predecode position |
US7024663B2 (en) * | 2002-07-10 | 2006-04-04 | Micron Technology, Inc. | Method and system for generating object code to facilitate predictive memory retrieval |
US6954836B2 (en) * | 2002-07-11 | 2005-10-11 | Micron Technology, Inc. | System and method for processor with predictive memory retrieval assist |
US7290121B2 (en) * | 2003-06-12 | 2007-10-30 | Advanced Micro Devices, Inc. | Method and data processor with reduced stalling due to operand dependencies |
JP5356634B1 (ja) | 2012-01-13 | 2013-12-04 | オリンパスメディカルシステムズ株式会社 | 内視鏡先端部品および内視鏡 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3771138A (en) * | 1971-08-31 | 1973-11-06 | Ibm | Apparatus and method for serializing instructions from two independent instruction streams |
US4208716A (en) * | 1978-12-11 | 1980-06-17 | Honeywell Information Systems Inc. | Cache arrangement for performing simultaneous read/write operations |
US4317168A (en) * | 1979-11-23 | 1982-02-23 | International Business Machines Corporation | Cache organization enabling concurrent line castout and line fetch transfers with main storage |
JPS57100680A (en) * | 1980-12-15 | 1982-06-22 | Hitachi Ltd | Page fault processing system |
US4439829A (en) * | 1981-01-07 | 1984-03-27 | Wang Laboratories, Inc. | Data processing machine with improved cache memory management |
JPS59231652A (ja) * | 1983-06-13 | 1984-12-26 | Hitachi Ltd | メモリアクセス・オ−バラツプ検出方式 |
-
1985
- 1985-08-30 US US06/771,435 patent/US4734852A/en not_active Expired - Lifetime
-
1986
- 1986-08-14 AT AT86306267T patent/ATE81730T1/de not_active IP Right Cessation
- 1986-08-14 DE DE8686306267T patent/DE3686991T2/de not_active Expired - Lifetime
- 1986-08-14 EP EP86306267A patent/EP0213842B1/de not_active Expired
- 1986-08-28 JP JP61203572A patent/JP2539199B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2539199B2 (ja) | 1996-10-02 |
JPS6255736A (ja) | 1987-03-11 |
ATE81730T1 (de) | 1992-11-15 |
EP0213842A3 (en) | 1989-04-26 |
EP0213842B1 (de) | 1992-10-21 |
DE3686991D1 (de) | 1992-11-26 |
EP0213842A2 (de) | 1987-03-11 |
US4734852A (en) | 1988-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3686991T2 (de) | Mechanismus fuer parallele speicherdatenabholung und befehlsausfuehrung in einem prozessor mit reduziertem befehlssatz. | |
DE68929215T2 (de) | Datenprozessor | |
DE68927492T2 (de) | Verfahren und Vorrichtung zur gleichzeitigen Verteilung von Befehlen an mehrere funktionelle Einheiten | |
DE69228360T2 (de) | Registerlesekontrolle | |
DE2704842C2 (de) | Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung | |
DE3751503T2 (de) | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen. | |
DE4206062C2 (de) | Pipelineverarbeitung von Instruktionen | |
DE69033398T2 (de) | Rechnerarchitektur mit Mehrfachbefehlsausgabe | |
DE69017178T2 (de) | Datenverarbeitungssystem mit Vorrichtung zur Befehlskennzeichnung. | |
DE2317870C2 (de) | Schaltungsanordnung zur Steuerung der Datenübertragung zwischen dem Hauptspeicher und mindestens einem E/A-Gerät in einer digitalen Datenverarbeitungsanlage | |
DE3116100C2 (de) | Datenverarbeitungseinheit | |
DE69030931T2 (de) | Mehrfachsequenzprozessorsystem | |
DE69429226T2 (de) | Absendung von Befehlen an mehrere Verarbeitungseinheiten | |
DE69027932T2 (de) | Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen | |
DE3424962C2 (de) | ||
DE3638572C2 (de) | ||
DE69623146T2 (de) | Verfahren und Vorrichtung zum Koordinieren der Benutzung von physikalischen Registern in einem Mikroprozessor | |
DE2835095C2 (de) | Digitale Rechenanlage mit einem ersten und mindestens einem zweiten miteinander koppelbaren mikroprogrammierten Prozessoren | |
DE2735814A1 (de) | Datenverarbeitungseinrichtung | |
DE69133571T2 (de) | Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen | |
DE69418146T2 (de) | Temporärer Registersatz für einen superpipeline-superskalaren Prozessor | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE4207148A1 (de) | Superscalar-prozessor | |
DE2715073A1 (de) | Mikroprogrammierte rechner-steuervorrichtung | |
DE3751108T2 (de) | Mikroprozessor mit der Fähigkeit, an einen Koprozessor geschaltet zu werden. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |