DE69029250T2 - Pipelinerechner mit einer, jedem Halboperationszyklus alternierenden Schreibsteuerung zur Vermeidung von Zugriffskonflikten in Mehrzweckregistern - Google Patents

Pipelinerechner mit einer, jedem Halboperationszyklus alternierenden Schreibsteuerung zur Vermeidung von Zugriffskonflikten in Mehrzweckregistern

Info

Publication number
DE69029250T2
DE69029250T2 DE69029250T DE69029250T DE69029250T2 DE 69029250 T2 DE69029250 T2 DE 69029250T2 DE 69029250 T DE69029250 T DE 69029250T DE 69029250 T DE69029250 T DE 69029250T DE 69029250 T2 DE69029250 T2 DE 69029250T2
Authority
DE
Germany
Prior art keywords
arithmetic
operation cycle
memory access
instruction
logic units
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 - Fee Related
Application number
DE69029250T
Other languages
English (en)
Other versions
DE69029250D1 (de
Inventor
Takahiko Uesugi
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.)
NEC Corp
Original Assignee
NEC Corp
Nippon Electric Co Ltd
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 NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Application granted granted Critical
Publication of DE69029250D1 publication Critical patent/DE69029250D1/de
Publication of DE69029250T2 publication Critical patent/DE69029250T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

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)
  • Memory System Of A Hierarchy Structure (AREA)

Description

  • Die vorliegende Erfindung betrifft allgemein Pipelinerechner.
  • Derzeitige Hochleistungsdatenverarbeitungssysteme sind gewöhnlicherweise mit mehreren Pipelinearithmetik- und Pipelinelogikfunktionen ausgestattet, die in Operationszyklen ausgeführt werden. Wenn arithmetische Operationen identischer Art ausgeführt werden, werden Operanden kontinuierlich einer bestimmten Arithmetikeinheit zugeführt, während gleichzeitig von verschiedenen Arithmetik/Logik-Einheiten in paralleler Weise Arithmetik/Logik-Operationen unterschiedlicher Art ausgeführt werden können. Eine Speicherzugriffssteuerung ist vorgesehen, um als Antwort auf einen Speicherzugriffsbefehl Daten aus dem Hauptspeicher zu holen. Die Ergebnisse der Arithmetik/Logik-Befehle und Daten aus der Speicherzugriffssteuerung werden in Mehrzweckregister geschrieben. Wenn auf dem Schreibpfad der Mehrzweckregister kein Konflikt auftritt, kann jeder Befehl innerhalb eines Operationszyklus' ausgeführt werden.
  • Jedoch treten aufgrund unterschiedlicher Ausführungszeiten oft solche Betriebsmittel-Benutzungskonflikte auf. Eine Konkurrenzprüfschaltung ist daher vorgesehen, um konkurrierende Anforderungen durch Pufferregister in einer Warteschlange aufzureihen, um einen Betriebsmittel-Benutzungskonflikt zu vermeiden. Die Speicherzugriffssteuerung ist normalerweise mit einem Cachespeicher versehen, um ihr zu ermöglichen, innerhalb eines bestimmten Zeitintervalls Daten in ein Mehrzweckregister zu schreiben, wenn ein Cachespeicher-"Treffer" auftritt, wenn die zu holenden Daten darin gefunden werden. Wenn die in dem Cachespeicher zu findenden Daten nicht vorhanden sind (Cachespeicher-Fehltreffer), dauert es viel länger als das spezifizierte Zeitintervall, um Daten in das Mehrzweckregister zu schreiben. Eine weitere Konkurrenzprüfschaltung ist daher vorgesehen, um das Recht zu erwerben, in dem Zeitpunkt auf Mehrzweckregister zuzugreifen, in dem ein Datenelement aus dem Hauptspeicher geholt wird. Daher leidet das derzeitige Pipelinedatenverarbeitungssystem unter der Hardwarekomplexität und dem reduzierten Durchsatz.
  • IEEE Micro Bd. 8, No. 6, Dez. 1988, Seite 30-47, New York; M.L. Fuccio et al.: "The DSP32C: AT&T'S Second- Generation Floating-Point Digital Signal Processor" offenbart ein System, wobei ein Befehlszyklus (80 ns) in vier 20-ns- Taktintervalle unterteilt ist. Der Datenbus wird unter Verwendung dieser Zyklen gesteuert, um vier Datentransfers während jedes Prozessorzyklus' zu unterstützen; den Befehl Holen, zwei Speicheroperandenlesen und ein Speicherschreiben.
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, ein Pipelinedatenverarbeitungssystem mit reduzierter Hardwarekomplexität und erhöhtem Durchsatz bereitzustellen. Diese Aufgabe wird mit den Merkmalen der Patentansprüche gelöst.
  • Aufgrund der vielen logischen Zuständen, die zu prüfen sind, bevor ein Arithmetik/Logik-Befehl ausgeführt wird, dauert es einen wesentlichen Zeitraum, um die Arithmetikpipeline auf einen Konflikt hin zu überprüfen. Andererseits dauert es eine kurze Zeitspanne, um Daten in die Mehrzweckregister zu schreiben, da keine komplizierte Schaltung an der Festlegung ihres Schreibzeitpunkts beteiligt ist. Die vorliegende Erfindung basiert auf der Erkennung dieser Zeitdifferenz. Das obenstehende Ziel wird durch Segmentierung des Operationszyklus' in eine erste und zweite Halbperiode und deren getrennte Zuordnung zu konkurrierenden Anforderung erreicht.
  • Die vorliegende Erfindung wird detaillierter mit Bezug auf die beiliegenden Zeichnungen beschrieben, in denen:
  • Fig. 1 ein Blockschaltbild eines Pipelinedatenverarbeitungssystems vom Stand der Technik ist;
  • Fig. 2 ein Blockschaltbild eines Pipelinedatenverarbeitungssystems gemäß der vorliegenden Erfindung ist;
  • Fig. 3A und 3B jeweils Zeitablaufdiagramme zum Beschreiben der Operationen der Verarbeitungssysteme von Fig. 1 und Fig. 2 sind, wenn ein Cachespeicher-Treffer auftritt; und
  • Fig. 4A und 4B jeweils Zeitablaufdiagramme zum Beschreiben der Operationen der Verarbeitungssysteme von Fig. 1 und Fig. 2 sind, wenn ein Cachespeicher-Fehltreffer auftritt.
  • Bevor auf die vorliegende Erfindung im Detail eingegangen wird, ist es angebracht, mit Bezug auf Fig. 1 einen Pipelinerechner vom Stand der Technik zu beschreiben. Das System ist bestehend aus einer siebenstufigen Multiplizierereinheit 1, einem vierstufigen Addierer/Subtrahierer 2 und einer zweistufigen Logikoperationseinheit 3 gezeigt, und die einzelnen Stufen jeder dieser Arithmetik- und Logik-Einheiten sind im Pipelineverbund angeordnet, um während unterschiedlicher Operationszyklen Operanden abzufertigen. Eine Speicherzugriffssteuerung 4 ist vorgesehen, um auf den Hauptspeicher 5 zuzugreifen, in welchem kodierte Befehle gespeichert sind. Die gespeicherten Befehle werden aus dem Hauptspeicher 5 abgerufen und unter Steuerung durch eine Ablaufsteuerung 7 über einen Befehlspuffer 6 zu einem Befehlsdekodierer 8 geschickt, in welchem sie dekodiert werden, um festzustellen, welche von den arithmetischen Einheiten 1, 2 und 3 und der Speicherzugriffssteuerung 4 zu adressieren ist. Diese Tatsache wird von dem Dekodierer 8 über Pfad 10 an eine Startsteuerung 9 übermittelt, und ein Signal, das die Länge der Verarbeitungszeit angibt, die von der identifizierten Einheit oder der Steuerung möglicherweise benötigt wird, wird zu einer ersten Konkurrenzprüfschaltung 11 geschickt. Diese Prüfschaltung sammelt über die Startsteuerung 9 die Zustandsinformation über verschiedene Befehle und bestimmt, ob sie untereinander konkurrieren.
  • Ein Paar Operanden für jede Arithmetik/Logik-Operation werden parallel von einer Registerreihe 13 aus Mehrzweckregistern R1-Rn über Operandenpfade 14, 15 zu jeder Arithmetik/Logik-Einheit geschickt. Wenn zu einem gegebenen Zeitpunkt ein Arithmetik/Logik-Operation-Startsignal von der Startsteuerung 9 zu den Arithmetik/Logik-Einheiten 1, 2 und 3 geschickt wird, werden die Ergebnisse ihrer Operationen zu Zeitpunkten erhalten, die jeweils sieben, vier bzw. zwei Operationszyklen nach dem gegebenen Zeitpunkt liegen.
  • Der Operandenpfad 14 ist ferner mit der Speicherzugriffssteuerung 14 gekoppelt, um ihr zu erlauben, Daten aus dem Hauptspeicher 5 zu holen. Die Speicherzugriffssteuerung 4 ist mit einem Cachespeicher versehen. Als Antwort auf einen Speicherzugriffsbefehl schreibt die Steuerung 4 innerhalb eines kurzen Zeitraums, der viel kleiner ist, als die Zeit, die für eine Konkurrenzprüfung benötigt wird, wenn diese Daten in dem Cachespeicher gefunden werden, Daten in die Registerreihe 13. Wenn ein Cachespeicher-Fehltreffer auftritt, werden die nicht in dem Cachespeicher gefundenen Daten aus dem Hauptspeicher 5 geholt und somit überschreitet die Zeit, die zu ihrer Speicherung benötigt wird, die Zeit, die im Falle eines Cachespeicher-Treffers benötigt wird. Wenn die aus dem Hauptspeicher geholten Daten direkt in der Registerreihe 13 zu speichern sind, kann auf dem Schreibpfad 16 eine Konkurrenz auftreten. Um solche Konkurrenzen zu vermeiden, sind die Pufferregister 17-1 bis 17-6 mit der Speicherzugriffssteuerung 4 verbunden, um eine Verzögerungszeit bereitzustellen, welche gleich der maximalen Anzahl von Arithmetik/Logik-Stufen (sieben in dem dargestellten Beispiel) minus Eins ist.
  • Ein Selektor 18 spricht auf ein von einer Schreibsteuerung 19 zugeführtes Steuersignal an, um entweder den Ausgang der Speicherzugriffssteuerung 4 oder einen der Ausgänge der Pufferregister 17-1 bis 17-6 auszuwählen, um ihn mit einem Selektor 20 zu koppeln, welcher seinerseits als Antwort auf ein Steuersignal von der Schreibsteuerung 19 die Ausgänge der A/L-Einheiten 1 - 3 oder den Ausgang des Selektors 18 auswählt, um ihn über den Schreibpfad 16 mit der Registerreihe 13 zu koppeln.
  • Wenn ein Speicherzugriffsbefehl zu einem Befehlsdekodierer 8 geschickt wird, wird ein Signal, das die Länge der Zeit angibt, die möglicherweise von der Speicherzugriffssteuerung 4 benötigt wird (wenn ein Cachespeicher-Treffer auftritt), zur ersten Konkurrenzprüfschaltung 11 geschickt. Wenn von der Schaltung 11 keine Konkurrenz detektiert wird, schickt sie ein Prüfabschlußsignal zur Startsteuerung 9, welche ihrerseits ein Startsignal zur Speicherzugriffssteuerung 4 schickt.
  • Wenn ein Cachespeicher-Fehltreffer auftritt, holt die Speicherzugriffssteuerung 4 die Daten aus dem Hauptspeicher 5 und schickt ein Holabschlußsignal zu einer zweiten Konkurrenzprüfschaltung 12, um sie zu veranlassen, mittels der von der Konkurrenzprüfschaltung 11 gesammelten Zustandsinformation nach einem geeigneten Zeitpunkt zum Schreiben der geholten Daten in die Registerreihe 13 zu suchen und diesen Zeitpunkt der Schreibsteuerung 19 mitzuteilen, um ihr zu ermöglichen, das Recht zum Zugriff auf die Registerreihe 13 zu erhalten. Wenn der Schreibzeitpunkt zwei Operationszyklen später entspricht, wird das Ausgangssignal der Speicherzugriffssteuerung 4 durch das Pufferregister 17-1 und zu Pufferregister 17-2 wandern und durch die Selektoren 18 und 20 zur Registerreihe 13 weiter laufen. Ein Operationszyklus-Taktgenerator 21 ist vorgesehen, um Taktpulse zu den dazugehörigen Teileinheiten des Systems zu schicken, um jeden Befehl in einem Operationszyklus zu verarbeiten.
  • Die Operation von Fig. 1 ist mit Bezug auf Fig. 3A beschrieben. Angenommen, dieser Befehl #1 ist ein "Multiplizier"befehl, der spezifiziert, daß ein arithmetisches Produkt der Inhalte von Register R1 und R2 in Register R3 zu speichern ist. Befehl #2 spezifiziert, daß ein arithmetisches Produkt der Inhalte von Register R4 und R5 in Register R6 zu speichern ist, und Befehl #3 spezifiziert, daß ein logisches Produkt der Inhalte von Register R7 und R8 in Register R9 zu speichern ist. Befehl #4 ist ein Speicherzugriffsbefehl, der spezifiziert, daß Daten M(100) von der Adresse (100) des Hauptspeichers 5 zu holen und in Register R9 zu speichern sind. Schließlich spezifiziert Befehl #5, daß ein logisches Produkt der Inhalte von Register Ril und R12 in Register R13 zu speichern ist.
  • Startsignale, die den Befehlen #1 und #2 entsprechen, werden während der Operationszyklen #1 und #2 von der Startsteuerung 9 zur Multiplizierereinheit 1 ausgegeben und während des Operationszyklus' #3 wird ein Startsignal, das dem Befehl #3 entspricht, zur Logikoperationseinheit 3 ausgegeben. Wegen der siebenstufigen Multiplizierereinheit 1 wird das Ergebnis der Ausführung des Befehls #1 bzw. #2 in dem Operationszyklus #8 bzw. #9 erhalten und wegen der zweistufigen Logikoperationseinheit 3 wird das Ergebnis des Befehis #3 im Operationszyklus #5 erhalten. Die Schreibsteuerung 19 steuert den Selektor 18, um das Ergebnis des Register R9, R3 bzw. R6 zu schreiben.
  • Wenn der Speicherzugriffsbef ehl #4 während des Operationszyklus' #4 gestartet wird, wie durch eine punktierte Linie 30 in Fig. 3A gezeigt ist, wird das Ergebnis der Speicherzugriffsausführung während des Operationszyklus' #7 erhalten, wenn ein Cachespeicher-Treffer auftritt, und eine Schreiboperation wird während des Maschienenzyklus' #8 gestartet. Diese Schreiboperation fällt mit der Schreiboperation des Befehls #1 zusammen, wie durch eine punktierte Linie 31 gezeigt ist. Selbst wenn der Befehl #4 während des Operationszyklus' #5 gestartet wird, wird er mit dem Schreibzeitpunkt des Ergebnisses des Befehls #2 während des Operationszyklus¹ #9 kollidieren. Um solche Konflikte zu vermeiden, wird die Schreiboperation während des Operationszyklus' #6 gestartet, wie durch eine durchgezogene Linie 32 gezeigt ist. Gleichermaßen wird der Befehl #5 um vier Operationszyklen ab dem Operationszyklus #5 verzögert, in welchem er ansonsten gestartet werden würde.
  • In Fig. 4A ist Befehl #6 ein Speicherzugriffsbefehl, der spezifiziert, daß Daten M aus der Adresse (100) des Hauptspeichers 5 zu holen und in Register R1 zu speichern sind. Befehl #7 ist ein Logikoperationsbefehl, der spezifiziert, daß ein arithmetisches Produkt der Inhalte von Register R2 und R3 in Register R4 zu speichern ist. Befehl #8 spezifiziert, daß ein logisches Produkt der Inhalte von Register R5 und R6 in Register R7 zu speichern ist und Befehl #9 spezifiziert, daß ein arithmetisches Produkt der Inhalte von Register R8 und R9 in Register RiO zu speichern ist. Schließlich spezifiziert Befehl #10, daß ein arithmetisches Produkt der Inhalte von Register R11 und R12 in Register R13 zu speichern ist.
  • Wenn bei Ausführung von Befehl #6 ein Cachespeicher- Fehltreffer auftritt, kann die Schreiboperation während des Operationszyklus' #5 nicht gestartet werden, wie durch eine punktierte Linie 33 gezeigt ist. Wenn die Steuerung 4 während des Operationszyklus' #11 die fehlenden Daten geholt hat, wird die zweite Konkurrenzprüfschaltung 12 aktiviert, um zu prüfen, ob der Schreibpfad 16 verfügbar ist. Da die Schreiboperation für das Ergebnis der Multiplizierbefehle #9 bzw. #10 während des Maschinenzklus' #12 bzw. #13 ausgeführt wird, konkurriert die Schreiboperation der geholten Daten mit diesen Schreiboperationen. Die Konkurrenzprüfschaltung 12 informiert die Schreibsteuerung 19 über diese Tatsache, um sie zu veranlassen, den Ausgang des Pufferregisters 17-2 zu wählen, um sie während des Operationszyklus' #14 in das Register R1 zu schreiben.
  • Da Befehl #6 auf einen Cachespeicher-Fehltreffer gestoßen ist, stößt die Schreiboperation von Befehl #8 während des Operationszyklus' #5 auf keinen Konflikt, wie durch eine punktierte Linie 35 gezeigt ist, und somit scheint es, daß er während des Operationszyklus' #3, wie durch eine punktierte Linie 34 gezeigt, gestartet werden kann. Jedoch ist es während des Operationszyklus' #3 ungewiß, ob Befehl #6 auf einen Cachespeicher-Fehltreffer stoßen wird. Also wird die Schreiboperation von Befehl #8 um eine Zeit verzögert, die einem Operationszyklus entspricht, um einen möglichen Konflikt zu vermeiden.
  • Ein Pipelinedatenverarbeitungssystem der vorliegenden Erfindung ist in Fig. 2 gezeigt, in welcher Teile, die denjenigen von Fig. 1 entsprechen, mit den gleichen, wie in Fig. 1 verwendeten Bezugszeichen markiert sind. Das System dieser Erfindung unterscheidet sich dadurch vom Stand der Technik, daß ein Halboperationszyklus-Taktgenerator 40 mitaufgenommen ist, welcher einen Selektor 41 steuert und den Volloperationszyklus-Taktgenerator 21 treibt. Selektor 41 weist Gatter 42 und 43 auf, wobei Gatter 42 einen mit dem Halboperationszyklus-Taktgenerator 40 verbundenen Steuereingang hat, um als Antwort auf eine erste Halbperiode jedes vollen Operationszyklus' seinen Pfad zu öffnen und wobei Gatter 43 einen mit dem Taktgenerator 40 verbundenen invertierten Steuereingang hat, um als Antwort auf die zweite Halbperiode jedes Operationszyklus' seinen Pfad zu öffnen. Eine Schreibsteuerung 44 steuert als Antwort auf das Ausgangssignal der Startsteuerung 9 einen Selektor 45, um eine der A/L-Einheiten 1, 2 und 3 zur Kopplung an das Gatter 42 auszuwählen. Der Ausgang der Speicherzugriffssteuerung 4 ist mit Gatter 43 verbunden. Die Ausgänge der Gatter 42 und 43 sind gemeinsam mit dem Eingang der Registerreihe 13 verbunden.
  • Wenn der dem Dekodierer 8 zugeführte Befehl ein Arithmetik/Logik-Operationsbefehl ist, speist er ein Signal, das eine der AlL-Einheiten identifiziert, in die Startsteuerung 9 und ein Signal, das die Länge der Verarbeitungszeit angibt, welche möglicherweise von der identifizierten Einheit benötigt wird, wird zur Konkurrenzprüfschaltung 11 geschickt. Wenn kein Konflikt detektiert wird, schickt die Konkurrenzprüfschaltung 11 ein Prüfabschlußsignal 10 zur Startsteuerung 10, von der aus ein Startsignal zu der identifizierten Arithmetik/Logik-Einheit und zur Schreibsteuerung 44 geschickt wird. Als Antwort auf das Startsignal veranlaßt die Schreibsteuerung 44 den Selektor 45 zur Öffnung des dazugehörigen Gatters, um das Ergebnis der Arithmetik/Logik-Operation auszuwählen.
  • Wenn anschließend ein Speicherzugriffsbefehl zu dem Dekodierer 8 geschickt wird, wird ein Signal, das die Speicherzugriffssteuerung identifiziert, von dem Dekodierer 8 zugeführt, um die Steuerung 9 zu starten, von welcher aus ein Startsignal in die Speicherzugriffssteuerung 4 gespeist wird. Da die Gatter von Selektor 41 zu gegenseitig versetzten Zeiten offen sind, tritt zwischen den Speicherzugriffsbefehlen und den Arithmetik/Logik-Operationsbefehlen auf dem Schreibpfad 16 kein Konflikt auf, womit sich die Notwendigkeit einer Konkurrenzprüfung erübrigt, welche von dem System vom Stand der Technik mit der Konkurrenzprüfschaltung 12 ausgeführt worden ist.
  • Anzumerken ist, daß an alle von der Speicherzugriffssteuerung 4 zugeführten Datenelemente ein Etikettkennzeichen angehängt ist, das ihre Reihenfolge angibt, um zu vermeiden, daß sie in falscher Reihenfolge in der Registerreihe 13 ankommen, wenn ein Cachespeicher-Fehltreffer auftritt.
  • Die Operation der vorliegenden Erfindung wird am besten mit Bezug auf Fig. 3B und 4B verstanden, in welchen die gleichen Befehlssätze wie diejenigen in Fig. 3A und 4A ausgeführt werden.
  • In Fig. 3B schickt die Startsteuerung 9 als Antwort auf die Befehle #1 bis 3 jeweils während der Operationzyklen #1 und #2 zwei Startsignale zur Multiplizierereinheit 1 und während des Operationszyklus' #3 ein Startsignal zur Logikoperationseinheit 3. Das Ergebnis der Ausführung des Befehls #1 bzw. 2 wird während der Operationzykus' #8 bzw. #9 erhalten und das Ergebnis des Befehls #3 wird während des Operationszyklus' #5 erhalten. Die Schreibsteuerung 44 steuert den Selektor 45, um seine Gatter zu den dazugehörigen Zeiten zu öffnen, um das Ergebnis des Befehls #3, #1 bzw #2 während des Operationszyklus' #5, #8 bzw. #9 auszuwählen. Als Antwort auf den Halboperationszyklustakt wird Gatter 42 während der ersten Halbperiode jedes Operationszyklus' geöffnet. Während der ersten Halbperiode des Operationszyklus' #5, #8 bzw. #9 wird daher das Ergebnis des Befehls #3, #1 bzw. #2 in Register R3, R6 bzw. R9 der Registerreihe 13 geschrieben. Andererseits wird während der zweiten Halbperiode jedes Operationszyklus' als Antwort auf den Halboperationszyklustakt das Gatter 43 geöffnet. Die Schreibzeit (d.h. Operationszyklus #8) des Ergebnisses des Speicherzugriffsbefehls #4 ist somit um einen halben Operationszyklus bezüglich der Schreibzeit des Ergebnisses des A/L-Operationsbefehls #1 versetzt. Daher kann die Schreiboperation des Ergebnisses des Speicherzugriffsbefehls #4 während des Operationszyklus' #4 gestartet werden und der darauffolgende Befehl #5 kann ebenfalls während des Operationszyklus' #5 gestartet werden.
  • In Fig. 4B wird angenommen, daß bei Ausführung des Speicherzugriffsbefehls #6 ein Cachespeicher-Fehltreffer aufgetreten ist, so wie in Verbindung mit Fig. 4A beschrieben ist, und die Speicherzugriffssteuerung 4 holt die fehlenden Daten aus dem Hauptspeicher 5. Es ist zu sehen, daß die Schreibzeit des Ergebnisses des Speicherzugriffsbefehls #9 durch die wechselweise Gatteransteuerung des Selektors 41 um einen halben Operationszyklus bezüglich der Schreibzeit des Ergebnisses des A/L-Operationsbefehls #6 versetzt ist. Daher kann das Ergebnis der Ausführung des Befehls #6 während der zweiten Halbperiode des Operationszyklus' #11 geschrieben werden und das Ergebnis der Ausführung des Befehls #9 kann während der ersten Halbperiode des Operationszyklus' #11 geschrieben werden.
  • Obwohl es während des Operationszyklus' #3 ungewiß ist, ob Befehl #6 im Operationszyklus #5 auf einen Cachespeicher- Fehltreffer stoßen wird, erlaubt die wechselweise Gatteransteuerung des Selektors 41, daß die Ausführung von Befehl #8 im Operationszyklus #3 gestartet wird, so daß sein Ergebnis während der ersten Halbperiode des Operationszyklus' #5 geschrieben werden kann. Die Ausführung des Befehis #10 kann im Operationszyklus #5 gestartet werden, um sein Ergebnis während der ersten Halbperiode des Operationszyklus' #12 zu schreiben.

Claims (3)

1. Datenverarbeitungssystem mit:
einem Hauptspeicher (5) zum Speichern von Daten und Befehlen;
mehreren Arithmetik/Logik-Einheiten (1,2,3) jeweils mit
einer unterschiedlichen Anzahl von pipelinestufen zum Ausführen von in dem Hauptspeicher (5) gespeicherten Arithmetik/Logik-Befehlen in vollen Operationszyklen;
einer Schreibsteuereinrichtung (44) zum Auswählen eines der Ausgangssignale der Arithmetik/Logik-Einheiten (1,2,3) gemäß den durch die Arithmetik/Logik-Einheiten auszuführenden Befehlen;
einer Speicherzugriffssteuerung (4) zum Ausführen eines in dem Hauptspeicher (5) gespeicherten Speicherzugriffsbefehls und zum Zugreifen auf Daten aus dem Hauptspeicher;
mehreren Mehrzweckregistern (13), um Ergebnisse der Befehlsausführung von den Arithmetik/Logik-Einheiten und Daten von der Speicherzugriffssteuerung zu speichern und deren gespeicherte Inhalte als Operanden den Arithmetik/Logik- Einheiten zuzuführen; und
einer Takteinrichtung (40) zum Erzeugen von Halboperationszyklus-Taktpulsen;
gekennzeichnet durch
Selektoreinrichtungen (41,45) mit einem ersten Eingangsanschluß zum Empfangen des ausgewählten Ausgangssignals der Arithmetik/Logik-Einheiten, einem zweiten Eingangsanschluß zum Empfangen von Daten von der Speicherzugriffssteuerung und einem mit den Mehrzweckregistern (13) gekoppelten Ausgangsanschluß, wobei die Selektoreinrichtungen auf die Halboperationszyklus-Taktpulse ansprechen, um während sich gegenseitig ausschließenden Halboperationszykluszeiten abwechselnd einen ersten Pfad zwischen dem ersten Eingangsanschluß und dem Ausgangsanschluß und einen zweiten Pfad zwischen dem zweiten Eingangsanschluß und dem Ausgangsanschluß herzustellen.
2. System nach Anspruch 1, wobei die Selektoreinrichtung (45) eine auf die erste Polarität der Halboperationszyklus- Taktpulse ansprechende erste Gattereinrichtung (42) zur Herstellung des ersten Pfades und eine auf die zweite Polarität der Halboperationszyklus-Taktpulse ansprechende zweite Gattereinrichtung (43) zur Herstellung des zweiten Pfades aufweist.
3. System nach Anspruch 1 oder 2 mit:
einer Ablaufsteuerungseinrichtung (7) zum sequentiellen Abrufen von Befehlen aus dem Hauptspeicher (5);
einem Befehlsdekodierer (8) zum Dekodieren der abgeruf enen Befehle;
einer Konkurrenzprüfeinrichtung (11) um zu detektieren, ob es einen Konflikt unter den abgeruf enen Arithmetik/Logik- Befehlen in den Arithmetik/Logik-Einheiten gibt;
wobei die Speicherzugriffssteuerung (4) einen Cachespeicher zuin Zugreifen auf Daten in dem Hauptspeicher (5) als Antwort auf einen Cachespeicher-Fehltreffer aufweist; und einer Startsteuereinrichtung (9) zum Aktivieren einer der Arithmetik/Logik-Einheiten (1,2,3) oder der Speicherzugriffssteuerung (4) als Antwort auf ein Ausgangssignal von dem Befehlsdekodierer (8), wenn kein Konflikt von der Konkurrenzprüfeinrichtung (11) detektiert wird;
wobei die schreibsteuereinrichtung (44) auf ein Signal von der Startsteuereinrichtung (9) anspricht.
DE69029250T 1989-12-28 1990-12-27 Pipelinerechner mit einer, jedem Halboperationszyklus alternierenden Schreibsteuerung zur Vermeidung von Zugriffskonflikten in Mehrzweckregistern Expired - Fee Related DE69029250T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1338594A JP3035828B2 (ja) 1989-12-28 1989-12-28 情報処理装置

Publications (2)

Publication Number Publication Date
DE69029250D1 DE69029250D1 (de) 1997-01-09
DE69029250T2 true DE69029250T2 (de) 1997-03-27

Family

ID=18319642

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69029250T Expired - Fee Related DE69029250T2 (de) 1989-12-28 1990-12-27 Pipelinerechner mit einer, jedem Halboperationszyklus alternierenden Schreibsteuerung zur Vermeidung von Zugriffskonflikten in Mehrzweckregistern

Country Status (4)

Country Link
US (1) US5475855A (de)
EP (1) EP0435249B1 (de)
JP (1) JP3035828B2 (de)
DE (1) DE69029250T2 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6378062B1 (en) * 1994-01-04 2002-04-23 Intel Corporation Method and apparatus for performing a store operation
JPH07244588A (ja) * 1994-01-14 1995-09-19 Matsushita Electric Ind Co Ltd データ処理装置
JP3569811B2 (ja) * 1995-01-25 2004-09-29 株式会社ルネサステクノロジ パイプライン処理機能を有するデータ処理装置
US5590429A (en) * 1995-09-13 1997-01-07 General Electric Company Electrophysiology table
US6260126B1 (en) * 1998-06-05 2001-07-10 International Busines Machines Corporation Data storage subsystem having apparatus for enabling concurrent housekeeping processing while an input/output data transfer occurs
KR100476892B1 (ko) * 2002-04-29 2005-03-17 삼성전자주식회사 데이터의 부정조작을 방지하는 방법 및 그것을 이용한데이터 처리 시스템
GB2458487B (en) * 2008-03-19 2011-01-19 Imagination Tech Ltd Pipeline processors
CN111752614A (zh) 2019-03-27 2020-10-09 阿里巴巴集团控股有限公司 一种处理器、指令执行设备及方法
CN112199119B (zh) * 2020-10-21 2022-02-01 上海壁仞智能科技有限公司 向量运算装置
TW202336104A (zh) 2021-12-10 2023-09-16 日商三菱化學股份有限公司 硬化性組合物、成形體、聚矽氧水凝膠及其製造方法、巨分子單體

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54148328A (en) * 1978-05-12 1979-11-20 Hitachi Ltd Buffer memory control system
JPS57130150A (en) * 1981-02-03 1982-08-12 Nec Corp Register control system
GB8401807D0 (en) * 1984-01-24 1984-02-29 Int Computers Ltd Pipelined data processing apparatus
US4745302A (en) * 1985-12-23 1988-05-17 Hitachi, Ltd. Asynchronous signal synchronizing circuit
JP2679994B2 (ja) * 1987-08-14 1997-11-19 株式会社日立製作所 ベクトル処理装置
JP2752076B2 (ja) * 1988-02-23 1998-05-18 株式会社東芝 プログラマブル・コントローラ
US5023828A (en) * 1988-07-20 1991-06-11 Digital Equipment Corporation Microinstruction addressing in high-speed CPU
JP2941817B2 (ja) * 1988-09-14 1999-08-30 株式会社日立製作所 ベクトル処理装置

Also Published As

Publication number Publication date
JPH03201031A (ja) 1991-09-02
EP0435249A2 (de) 1991-07-03
DE69029250D1 (de) 1997-01-09
JP3035828B2 (ja) 2000-04-24
EP0435249A3 (en) 1992-03-04
US5475855A (en) 1995-12-12
EP0435249B1 (de) 1996-11-27

Similar Documents

Publication Publication Date Title
DE69032812T2 (de) Vorrichtung und Verfahren zur parallelen Verarbeitung
DE69624158T2 (de) Superskalarer Prozessor mit mehreren Registerblöcken und Erzeugung von spekulativen Antwortadressen
DE68927371T2 (de) Verfahren und Vorrichtung zur Verarbeitung von mehreren Zustandscodes wie für einen Parallel-Pipeline-Rechner
DE68919069T2 (de) Verfahren und Gerät zur Fehlererkennung und -korrektur in einem nach dem überlappten Steuerungsverfahren arbeitenden Rechnersystem.
DE68927911T2 (de) Datenverarbeitungssystem
DE69228360T2 (de) Registerlesekontrolle
DE3882772T2 (de) Vektorprozessor angepasst zum Sortieren von Vektordaten.
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE3638572C2 (de)
DE69027932T2 (de) Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen
DE3303488C2 (de) Digitales Signalverarbeitungssystem
DE19855806A1 (de) Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen
DE3752280T2 (de) Mustergenerator
DE3116100A1 (de) Sprungabschaetz-zentraleinheit
DE2357003A1 (de) Programmierbarer prozessor
DE68924435T2 (de) Nichtblockierender NxM-Arbitrierungsschalter mit grosser Bandbreite.
DE69029250T2 (de) Pipelinerechner mit einer, jedem Halboperationszyklus alternierenden Schreibsteuerung zur Vermeidung von Zugriffskonflikten in Mehrzweckregistern
DE68917647T2 (de) Multiprozessorsteuerungssystem.
DE69230626T2 (de) Informationsverarbeitungssystem mit der Fähigkeit zum Betreiben von mehreren Vektorpipelines in zwei unterscheidlichen Wirkungsweisen
DE69632655T2 (de) Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen
DE69230483T2 (de) Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung
DE68927292T2 (de) Mikrorechner, geeignet zur Schnellverarbeitung eines Verzweigungsbefehlskodes
DE19526008A1 (de) Vertikal partitionierter, primärer Befehls-Cache-Speicher
DE68924883T2 (de) Mikroprozessor mit Befehlspipeline.
DE68923108T2 (de) Informationsverarbeitungssystem das geeignet ist, eine vorzeitige Ausführung durchzuführen.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee