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
Application number
DE8686306267T
Other languages
English (en)
Other versions
DE3686991D1 (de
Inventor
Rod Fleck
William Johnson
Cheng-Gang Kong
Ole Moller
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Application granted granted Critical
Publication of DE3686991D1 publication Critical patent/DE3686991D1/de
Publication of DE3686991T2 publication Critical patent/DE3686991T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining 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.
  • HINTERGRUND DER ERFINDUNG
  • 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.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 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.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGS- FORM
  • 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.
DE8686306267T 1985-08-30 1986-08-14 Mechanismus fuer parallele speicherdatenabholung und befehlsausfuehrung in einem prozessor mit reduziertem befehlssatz. Expired - Lifetime DE3686991T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 メモリアクセス・オ−バラツプ検出方式

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