DE68926183T2 - Ergebnisverfügbarkeit einer Rechensequenz - Google Patents

Ergebnisverfügbarkeit einer Rechensequenz

Info

Publication number
DE68926183T2
DE68926183T2 DE1989626183 DE68926183T DE68926183T2 DE 68926183 T2 DE68926183 T2 DE 68926183T2 DE 1989626183 DE1989626183 DE 1989626183 DE 68926183 T DE68926183 T DE 68926183T DE 68926183 T2 DE68926183 T2 DE 68926183T2
Authority
DE
Germany
Prior art keywords
operation sequence
results
operations
sequence
register
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
DE1989626183
Other languages
English (en)
Other versions
DE68926183D1 (de
Inventor
Mamata Misra
Robert John Urquhart
Michael Terrell Vanover
John Alvin Voltin
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE68926183D1 publication Critical patent/DE68926183D1/de
Application granted granted Critical
Publication of DE68926183T2 publication Critical patent/DE68926183T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Description

  • Die vorliegende Erfindung betrifft die Verfügbarkeit des Ergebnisses einer Rechensequenz in Verarbeitungssystemen wie z.B. in einem arithmetischen Fließkommagerät, das während der Fließkommaberechnungen gleichzeitig Eingangs/Ausgangsoperationen vorsieht, um die sonst bemerkten großen örtlichen Speicherprobleme zu erleichtern.
  • Herkömmlicherweise rechnen Computer mit Ganzzahlenarithmetik. Das heißt, Computer führen Additionen und Subtraktionen binärer Ganzzahlen durch, die als Bits (Binary Digits) dargestellt werden. Aber auch Fließkomma-Arithmetik läßt sich auf Computern durchführen. Fließkomma-Arithmetikparameter beinhalten sowohl eine Mantisse als auch einen Exponenten. Die Verfahren zur Durchführung von Fließkomma-Arithmetik sind anders und viel komplexer, als die Durchführung von Ganzzahlenarithmetik. Wegen dieser Komplexität weisen viele Computer Spezialhardware auf, um arithmetische Eließkommaoperationen durchzuführen. Diese Hardware wird im allgemeinen als Fließkommaeinheit bezeichnet, und ist getrennt von der Zentraleinheit (CPU) vorgesehen.
  • Jn der IBM RT PC Workstation ist eine Fließkommaeinheit über einen Bus an die CPU angeschlossen. Die CPU schickt beim Ausführen der Fließkommaanweisungen ihre Befehle über den Bus zur Fließkommaeinheit (Floating Point Unit - FPU), damit diese die Befehle ausführt, und fährt mit der Ausführung ihrer CPU-internen Anweisungen fort, während die FPU ihre arithmetischen Operationen ausführt.
  • Bei wissenschaftlichen und technischen Anwendungen ist die Fließkomma-Vektorarithmetik bedeutsam. Es besteht daher eine Bedingung, daß die FPU in der Lage sein muß, Vektor-Fließkommaarithmetik effizient auszuführen. EP 0,169,030 beschreibt eine Datenverarbeitungsschaltung zum Berechnen entweder einer Gesamtsumme oder eines Gesamtprodukts aus einer Vielzahl von Vektordaten. Eine arithmetische Einheit errechnet nacheinander Summen, um Zwischenergebnisse zu erzeugen, die in Registern abgespeichert werden. Diese Zwischenergebnisse werden durch die arithmetische Einheit zur Fließbandverarbeitung zurückgeschickt, um zu einem Endergebnis zu kommen, das z.B. die Gesamtsumme darstellt.
  • Auf herkömmliche Weise sind Vektorprozesse gekennzeichnet durch größeren örtlichen Speicherbedarf zum Speichern großer Vektordatenbänke, die es dem Vektorprozessor ermöglichen, Operationen durchzuführen, ohne über eine Schnittstelle auf einen Systemprozessor zurückgreifen zu müssen. In dieser Konfiguration ist die Buswartezeit zwischen dem Systemprozessor und dem Vektorprozessor nicht kritisch, weil das Verhältnis der Vektorverarbeitungsausführung zur Vektor- Eingabe/Ausgabe-(E/A)-Zeit groß ist.
  • Größere örtliche Speicher können jedoch kostspielig sein. Die vorliegende Erfindung versucht eine andere Lösung für dieses Dilemma durch Vorsehen der Möglichkeit der gleichzeitigen Durchführung von Arithmetikoperationen und E/A-Operationen.
  • Die vorliegende Erfindung sieht ein Datenverarbeitungssystem und -verfahren vor, wie sie in den beiliegenden Ansprüchen 1 bzw. 7 definiert sind.
  • Weitere Ausführungsformen der vorliegenden Erfindung sind in den abhängigen Ansprüchen spezifiziert.
  • Wie hier nachstehend beispielhaft geoffenbart ist, werden die Berechnungsergebnisse der Operationssequenzen in Registern abgespeichert. Die Register enthalten auch die Parameter für die jeweils nächste Operationssequenz. Den Registern zugewiesen ist entweder das Abspeichern eines Ergebnisses oder eines Parameters, und die Registerzuweisung wird während der ganzen Berechnungsreihe beibehalten. Die Berechnung der Operationssequenzergebnisse wird in Vektorarithmetikanwendungen ausgeführt. Die Vektorarithmetikanwendungen werden im Fließbandverfahren durchgeführt. Die aktuelle Vektorarithmetik beinhaltet Multiplikations- und Additionsoperationen. Während der Durchführung dieser Operationen werden die Register, die die Ergebnisse der früheren Operationen speichern, gelesen. Auch während der Durchführung der laufenden arithmetischen Operationen, werden die Operanden für die nächsten arithmetischen Operation zu diesen Registern geschickt. Da verschiedene arithmetische Operationen in Fließbandform und Eingabe/Ausgaberationen gleichzeitig mit jeder dieser Fließbandoperationen durchgeführt werden, steigert sich die Schnelligkeit, mit der die arithmetischen Eingabe/ Ausgabeoperationen durchgeführt werden, beträchtlich.
  • Jetzt soll die vorliegende Erfindung beispielhaft noch näher beschrieben werden unter Bezugnahme auf deren Ausführungsformen sowie, als Kontrast, auf Beispiele auf dem Stand der Technik, und wie in den begleitenden Zeichnungen illustriert wird, in denen
  • Fig. 1 A ein Softwareflußdiagrainm ist, das eine Nicht- Vektor arithmetische Berechnung auf dem Stand der Technik zeigt;
  • Fig. 1B illustriert die Computeranweisungen zur Durchführung der arithmetischen Operation der Fig. 1A;
  • Fig. 2 ist ein Ablaufsteuerungsblockdiagramm, das den Betrieb eines Computers bei der Durchführung der arithmetischen Operation gemäß Fig. 1A auf dem Stand der Technik zeigt;
  • Fig. 3 ist ein Blockschaltbild einer Form einer Fließkommaeinheit der vorliegenden Erfindung, die an einen Systemprozessor angeschlossen ist;
  • Fig. 4 ist ein Ablaufsteuerungsblockdiagramm, das den gleichzeitigen Betrieb der Fließkommaeinheit zeigt;
  • Fig. 5A ist ein Softwareflußdiagramm, das die gleichzeitigen arithmetischen Vektoroperationen zeigt;
  • Fig. 5B illustriert die Computeranweisungen zur Durchführung der Prozeduren in Fig. 5A;
  • Fig. 6 ist ein Diagramm, das die Register während der Durchführung der Operationen zeigt, die in Fig. 5A illustriert sind;
  • Fig. 7A und 7B sind Ablaufsteuerungsdiagramme, die die Durchführung gleichzeitiger Operationen und das Auftreten einer gegenseitigen Verriegelung zeigen; und
  • Fig. 8 ist ein Ablaufsteuerungsdiagramm für die Fließkommaeinheit, das die gleichzeitigen Lese-, Additions- und Multiplikationsoperationen zeigt.
  • Fig. 1A zeigt eine einfache Schleife zum Durchführen einer Fließkomma-Arithmetikoperation auf dem Stand der Technik. In Schritt 10 wird der Schleifenzähler auf 1 gesetzt. In Schritt 12 wird Y(I) gleich Y(I) plus X(I)*K gesetzt. In Schritt 14 wird der Schleifenzähler I inkrementiert. In Schritt 16 wird eine Entscheidung getroffen, ob I kleiner als ein Parameter N ist, der die Anzahl der Schleifenberechnungen angibt, oder nicht. Wenn der Zähler I kleiner als N ist, springt der Prozeß zu Schritt 12 zurück. Wenn nicht, steigt der Prozeß aus der Schleife aus.
  • Die aktuellen ausgeführten Computeroperationen werden als Computeranweisungen in Fig. 1B gezeigt. Als erstes wird die Konstante K in Register Null (R0) gespeichert. Als nächstes wird die Fließkomma-Multiplikationsoperation ausgeführt, wobei X(I) in Register Eins (R1) gelegt wird, R1 mit R0 multipliziert und das Ergebnis in R1 gespeichert wird. Die Fließkommaaddition wird durchgeführt durch Legen von Y(I) in Register Zwei (R2), Addieren von R2 zu R1, und Legen des Ergebnisses nach R2. Schließlich wird das Ergebnis der Operation gelesen durch Abspeichern des Inhalts von R2 nach Y(I)
  • Fig. 2 illustriert ein Ablaufblockdiagramm nach dem herkömmlichen Stand der Technik wobei die Multiplikationsoperation 20 ausgeführt wird, gefolgt von der Additionsoperation 22 in der Leseoperation 24, der Schleifenzähler I wird inkrementiert und die nächste Multiplikationsoperation 26, Additionsoperation 28 und Leseoperation 30 wird ebenfalls ausgeführt.
  • Somit wird jede dieser Operationen in Übereinstimmung mit ihrem Schleifenzähler ausgeführt. D.h. alle Operationen, die vom gleichen Parameter (I) abhängen, werden der Reihe nach ausgeführt und die jeweils nächsten Operanden (I+1) werden erst dann benutzt, wenn der vorherige Satz Operationen abgearbeitet ist. Mit anderen Worten, es gibt kein Vermischen oder Überlappen von Operationen zwischen der Operationssequenz 1 und der Operationssequenz I+1.
  • Fig. 3 zeigt in Blockschaltbildform ein Datenverarbeitungssystem einschließlich einer Fließkommaeinheit 101, verbunden über einen Bus 54 mit einem DMA-Controller 53, der seinerseits über einen Bus 51 mit dem Systemprozessor 50 und dem Systenspeicher 52 verbunden ist. Die Fließkommaeinheit 101 besteht aus einer E/A Steuereinheit 60 die Informationen zwischen dem Systemprozessor 50, dem Systemspeicher 52 und der Fließkommaeinheit 101 über den Systembus 54 überträgt. Diese Daten aus der E/A-Steuereinheit 60 werden über den Bus 62 an Registerdateien 58 und die Fließkomma-Arithmetik- Logikeinheit (ALU) 64 und die Fließkomma-Multiplikationseinheit 74 geschickt. Die ALU 64 führt alle Fließkomma-, Ganzzahlen- und logischen Operationen durch abgesehen von Fließkomma-Multiplikationsoperationen. Die ALU 64 ist so konfiguriert, daß sie bis zu vier Operationen in Fließbandverarbeitung behandeln kann. Mit anderen Worten, in diesen Fließband-Modus werden, unter der Annahme einer ausreichenden Eingabearbeitsrate, vier Operationen gleichzeitig bearbeitet und erzeugen in jedem Zyklus ein Ergebnis. Die Ablaufsteuerung wird vom Oszillator 6 über die Leitung 8 wahrgenommen.
  • Die Multipliziereinheit 74 führt alle Fließkommamultiplikationen durch und kann so im Fließbandbetrieb arbeiten, daß sie bis zu zwei Operationen in doppelter Genauigkeit oder vier Operationen in einfacher Genauigkeit gleichzeitig durchführt. Im Einfachgenauigkeitsmodus liefert der Multiplikator 74 in jedem Zyklus ein Resultat. Im Doppelgenauigkeitsmodus wird alle vier Zyklen ein Resultat geliefert. Die ALU 64 legt einen Ausgang auf den Bus 66 zu einem Gatterelement 68. Auf gleiche Weise legt der Multiplikator 74 das Ergebnis auf den Bus 76 zu einem Gatterelement 80. Die Gatterelemente 68 und 80 sind wie gezeigt an den Bus 62 angeschlossen. Die Registerdatei 58 wird benutzt zum Speichern sowohl der Operandenparameter als auch der Resultatparameter.
  • Der Mikrocodeabschnitt 98 und der Sortiererabschnitt 100 steuern die Operation der Fließkommaeinheit 101. Der Sortierer 100 liefert eine Adresse zum Zugriff auf die Mikrocodeeinheit 98. Der Sortierer 100 ist verbunden mit der Befehlsdecodiereinheit 90, die ihre Befehle über einen Bus 54 vom Systemprozessor 50 erhält. Diese Befehle werden in der Befehlsdecodiereinheit 90 decodiert und über den Bus 92 durch das Gate 94 an den Bus 96 und zum Sortierer 100 geleitet, um einen spezifischen Abschnitt des Mikrocodes zur Ausführung auszuwählen. Die einzelnen Bits im Mikrocode werden benutzt zum Steuern der E/A-Einheit 60 über einen Bus 86, der ALU 64 über einen Bus 81, und des Multiplizierers 74 über einen Bus 82. Die Befehlsdecodiereinheit 90 trennt bei Eingang der Befehle vom Systembus 54 die Befehle in zwei Kategorien. Die erste Kategorie gilt für sequentielle Befehle, die in einer spezifischen Reihenfolge ausgeführt werden müssen. Die zweite Kategorie gilt für gleichzeitige Befehle, die gleichzeitig ausgeführt werden können, das heißt, daß die gleichzeitigen Befehle die Ausführung der aufeinanderfolgenden Befehle, die gerade bearbeitet werden, überlappen können.
  • Fig. 4 ist ein Ablaufsteuerungsblockdiagramm, das den Betrieb der Anordnung der Fig. 3 bei der Ausführung multipler arithmetischer Sequenzen (ähnlich der in Fig. 1A) im Parallelbetrieb zeigt. Im einzelnen werden die Multikationsoperation 110 und die Additionsoperation 112 nacheinander ausgeführt. Als nächstes werden die Multiplikationsoperation 114 und die Additionsoperation 118 parallel mit der Leseoperation 116 ausgeführt. Diese Parallelbetriebssequenz fährt fort bis die letzte Multiplikations- und Additionsoperation abgeschlossen ist und die letzte Leseoperation 132 ausgeführt wird. In der bevorzugten Ausführungsform illustriert jeder Block die Berechnung einer Vektoroperation, die vier gesonderte arithmetischer Operationen beinhaltet. Die Abschnitte 111, 113 und 115 in Klammern zeigen eine Operationsschleife, die wiederholt wird, bis die letzten Vektormultiplikations- und -additionsoperationen abgeschlossen sind. Auf diese Weise liefert in dieser bevorzugten Ausführungsform die Leseoperation 132 vier Ergebnisse.
  • In dieser bevorzugten Ausführungsform wird der Vektorparallelprozeß im Flußdiagramm der Fig. 5A dargestellt. In Schritt 150 wird der Matrixindex 1 initialisiert. J, das die Anzahl der Elemente in der Matrix angibt, an denen die Berechnung durchgeführt werden muß, wird fertiginitialisiert. Die Konstante K wird in einem Register gespeichert und die ersten vier Multiplikations- und Additionsoperationen werden ausgeführt. Mit anderen Worten, die Vektoroperationen führen vier sich überlappende Multiplikations- und Additionsoperationen durch, wobei die ersten vier Elemente von X mit der Konstanten K multipliziert und dann zu den ersten vier Elementen der Matrix Y addiert werden. Die Ergebnisse jeder dieser vier Operationen wird dann in dem entsprechenden Register abgelegt. Im Schritt 152 wird der Matrixindex um vier inkrementiert, so daß die Berechnungen der nächsten vier Elemente von X und Y vorgenommen werden können. J wird um vier dekrementiert, weil die Berechnung mit vier Elementen von X und Y abgeschlossen wurde. In Schritt 154, wenn die Anzahl der noch übrigen Elemente kleiner als vier ist, springt der Prozeß zu Schritt 156. Wenn nicht, springt der Prozeß zu Schritt 156.
  • In Schritt 156 werden vier Multiplikationsoperationen und vier Additionsoperationen nacheinander ausgeführt. Jede der vier Operationen wird in Fließbandbearbeitung parallel zum Lesen der Ergebnisse der vorangehenden Operation ausgeführt. In Schritt 158 werden die Zähler für I und J inkrementiert wie gezeigt. In Schritt 160, wenn J kleiner als 4 ist, geht der Prozeß auf Schritt 174 über. Wenn nicht, geht der Prozeß auf Schritt 162 über, um die arithmetische Vektoroperation im Parallelbetrieb mit der Leseoperation auszuführen. In Schritt 164 werden I und J inkrementiert wie gezeigt. Der Entscheidungsschritt 166 ist ähnlich dem Entscheidungsschritt 160. Wieder werden in Schritt 168 die Leseoperationen parallel zur Vektorarithmetik ausgeführt. In Schritt 170 werden I und J inkrementiert und im Entscheidungsschritt 172 springt der Prozeß entweder in Schleife zu Schritt 156 zurück, oder steigt zu Schritt 174 aus wie gezeigt. In Schritt 174 werden die Ergebnisse der vorhergehenden Operationen gelesen. In Schritt 176 wird jede noch übrige Operation (übrig heißt, der Schleifenzähler zeigt unter 4) seriell durchgeführt. Während der Schleife in Fig. 5A wiederholen sich die Schritte 162, 166, 168, 170 und 172 und könnten reduziert werden, die Erweiterung wurde in der bevorzugten Ausführungsform vorgesehen, um die Schleifenverzweigungen zu reduzieren und somit die Ausführung zu beschleunigen.
  • In Fig. 5B sind in Schritt 150 Computerbefehle dargestellt, die Konstante K wird in Register zweiunddreißig (R32) gelegt. Die Vektormultiplikations- und Vektoradditionsoperationen werden unter Verwendung der gezeigten Register durchgeführt, wie dargestellt wird. Auf gleiche Weise beinhalten die Schritte 156, 162 und 168 Befehle wie angegeben. Als letztes beinhaltet Schritt 174 das Lesen der als letzte ausgeführten Vektormultiplikations- und -additionsoperationen.
  • Fig. 6 illustriert den Datenfluß in die und aus den Registern sechzehn bis zweiunddreißig (R16-R32) während der Vektorarithmetik- und Leseoperationen. Zunächst wird die Konstante K in R32 gespeichert (Beispiel 200). Im Registersatz 202 werden die vier X-Werte in R16 - R19 gespeichert und das Ergebnis der Berechnung X mal K wird in R20 - R23 gespeichert. In Beispiel 204 werden die Original-Y-Werte in R24 - R27 und die neu berechneten Y-Werte in R28 - R31 gespeichert. In Beispiel 206 werden die nächsten vier X-Werte in R16 - R19 gespeichert und das Ergebnis der ersten Multiplikation der Konstanten und die nächsten X-Werte werden in R20 - R23 gespeichert. Hier ist anzumerken, daß R24 - R27 noch immer die Ergebnisse der vorhergehenden Sequenz beinhaltet. In Beispiel 208 werden die Inhalte von R28 - R31, enthaltend die Y-Parameter, gelesen, mit anderen Worten, sie werden aus der Registerdatei 58 (Fig. 3) auf den Systembus 54 gelegt. Das geschieht parallel zur zweiten Multiplikationsoperation, die als Beispiel 206 illustriert wird. Dann wird die zweite Vektoradditionsoperation durchgeführt und führt dazu, daß die alten Y-Werte, die in R24 - R27 gespeichert sind, zur Berechnung der neuen Y-Werte benutzt werden, die in R28 - R31 gespeichert werden. Die Beispiele 208 und 210 zeigen auch eine Hardware-Verriegelungsvorrichtung, die vorgesehen ist, um das Speichern der neuen Daten in R28 - R31 zu verhindern, bis das Auslesen der vorangehenden Daten aus diesen Registern abgeschlossen ist.
  • Fig. 7A und 7B illustrieren Ablaufsteuerungsdiagramme für die parallel ablaufenden Operationen und die Operationen mit einer Verriegelung. In Fig. 7A repräsentiert die Zeile 220 die Zeitintervalle, während denen der N-te Sequenzbefehl 220A und der N+l-te Sequenzbefehl 220B auftreten. Diese Wellenform wird über die Leitung 86 vom Sortierer 100 an die E/A-Steuereinheit 60 gegeben. Während des Anlaufens der Befehlsausführung 220A erhält der Sortierer 100 ein Flag und Daten von der Befehlsdecodiereinheit 90. Die geeigneten Daten werden über den Bus 62 aus der Registerdatei 58 an die ALU 64 und die Multipliziereinheit 74 geschickt. Die Zyklen auf Bus 62, die von der ALU 64 und der Multiplikationseinheit 74 nicht benutzt werden, sind als Wellenform 221 dargestellt. Die Zyklen 221A bis 221F stellen Buszyklen (für den Bus 62) dar, die während der Ausführung des Befehls N nicht erforderlich sind. Diese Zyklen stehen der E/A-Steuereinheit 60 über die Leitung 86 vom Sortierer 100 her zur Verfügung. In diesem Beispiel greift die E/A-Steuereinheit 60 während der Zeiten 222A bis 222D auf die Registerdatei 58 zu, um die Parallel-Leseoperationen für die Anweisung N-1 während der Zyklen 2218 bis 221E auszuführen. In diesem Fall läuft die Parallel-Leseanweisung für den Befehlsgeber N-1 nach der Ausführung der sequentiellen Instruktion an, aber sie wird während der Ausführung des Befehlsgebers N abgeschlossen. Da die Parallel-Leseoperationen, angezeigt durch Wellenform 224, vor dem Ende der sequentiellen Befehls-N-Ausführung abschließt, kann die Ausführung der nächsten sequentiellen Anweisung N+1 beginnen, wie gezeigt wird.
  • Fig. 7B zeigt einen gegenteiligen Fall. In diesem Fall wird der N-te sequentielle Befehl 226A ausgeführt wie vorher, mit dern Unterschied, daß nur drei unbenutzte Buszyklen 227A bis 227C zur Verfügung stehen, wie an der Wellenform 227 gezeigt wird. Im diesem Beispiel läuft die E/A-Steuereinheit 60 mit dern ersten Parallel-Leseoperationstakt 228A an (Wellenform 228). Da aber vier Buszyklen erforderlich sind und nur zwei Parallel-Leseoperationen, 228A und 228B abgeschlossen werden können bevor die Ausführung des Befehls N (226A) abgeschlossen ist, müssen die übrigen zwei Operationen 228C und 228D nach Abschluß der Durchführung des Befehls N ausgeführt werden (Zeit 226B). Zu diesem Zeitpunkt sind alle Buszyklen frei (Periode 227D), und die E/A-Steuereinheit 60 verzögert oder verriegelt das Anlaufen der Ausführung des nächsten Befehls N+1 durch Beanspruchen der Wellenform 230A über den Bus 89 zur Befehlsdecodiereinheit 92, damit verhindert wird, daß die nächsten Befehlsdaten und Flag-Informationen an den Sortierer 100 geschickt werden. Zum Zeitpunkt 230B verläßt die E/A-Steuereinheit 60 den Bus 62 und der nächste sequentielle Befehl N+1 beginnt mit der Ausführung (226D). Diese gegenseitige Verriegelung ist notwendig, weil der unabhängige Befehl N+1 die gleichen Register (siehe Fig. 6) benutzt wie der Parallel-Lesebefehl. Wenn diese Verriegelung nicht vorhanden wäre, wäre es möglich, daß die neuen Daten in das R24- 31 gelegt werden, bevor das vorherige Ergebnis vom System ausgelesen würde, was einen Datenverlust bewirken würde.
  • Fig. 8 ist ein Ablaufsteuerungsdiagramm, das den Betrieb der Schleife in Fig. 5 (während der ersten, zweiten und dritten Phase der Schleife) zeigt. Zum Zeitpunkt 252 wird eine Multiplikationsoperation ausgeführt. Diese läuft zum Zeitpunkt 250 an und endet zum Zeitpunkt 254, wie gezeigt. Konsekutiv wird zum Zeitpunkt 256 die Additionsoperation ausgeführt, die mit Zeitpunkt 262 endet. Hier ist anzumerken, daß die Multiplikationsoperation 274 den Abschluß der Additionsoperation durch Anlaufen bei Zeitpunkt 270 überlappt Parallel zur Ausführung der Multiplikationsoperation 252 und dem Warteschlangeneinschub der Additionsoperation 260 wird die Leseoperation 266 durchgeführt. Diese Leseoperationen lesen das Ergebnis einer der vorhergehenden Multiplizier- und Additionsoperationen in R28 - R31. Das Parallel-Lesen wird ausgeführt in der Art und Weise, wie für jede nächste konsekutive Multiplikations/Additionsberechnung gezeigt wird. Hier muß man verstehen, daß jede der Multiplikations- und Additionsoperationen, die in Fig. 8 gezeigt werden, die Vektormultiplikations- und -additionsoperationen sind, einschließlich vier einzelne Multiplikationsoperationen, die im Fließbandbetrieb ausgeführt werden, konsekutiv mit den vier arithmetischen Vektoradditionsoperationen, die im Fließbandbetrieb ausgeführt werden. Somit legt jede Leseoperation den Inhalt der vier Register auf den Systembus 54 (Fig. 3).
  • Vorgesehen ist auch, daß die E/A-Einheit 60 sowohl die Leseals auch die Schreiboperationen in die Registerdatei 58 parallel zu den Additionsoperationen in ALU 64 und die Multiplikationsoperationen in der Multiplikationseinheit 74 vornehmen kann. Das wäre möglich durch Benutzten eines beidseitig verbundenen Zugriffsspeichers und Legen der Operandenparaneter in die Registerdatei 58 auf ähnliche Weise wie die oben definierten Parallel-Leseoperationen, während durch den zweiten Eingang auf Schreibinformationen zugegriffen wird.

Claims (11)

1. Ein Datenverarbeitungssystem zur Durchführung einer Reihe von Operationssequenzen, wobei das Datenverarbeitungssystem einen Satz Register (58), eine zweckmäßige Logikeinheit (64, 74) und ein Steuermittel (60, 90, 98, 100) zur Eingabe von Daten und zum Lesen von Daten aus dem Registersatz (58) beinhaltet, wobei die zweckmäßige Logikeinheit (64, 74) so eingerichtet ist, daß sie Ergebnisse konsekutiv für jede Operationssequenz der Reihe berechnet, und die Ergebnisse jeder Operationssequenz im Registersatz (58) abspeichert; das Datenverarbeitungssystem an einen Systembus (54) anschließbar ist, und jede aufgerufene Operationssequenz die gleiche logische Form aufweist, wobei das System dadurch gekennzeichnet ist,
jedem Register im Satz (58) entweder Parameter für eine Operationssequenz, Zwischenresultate der Operationen in der Sequenz, oder ein Operationssequenz-Endergebnis zum Abspeichern zugewiesen wird;
der Registersatz (58) so eingerichtet ist, daß die Parameter und Ergebnisse einer augenblicklichen Operationssequenz die in den Registern abgespeicherten Parameter und Ergebnisse einer vorhergehenden Operationssequenz ersetzen;
das Steuermittel (60, 90, 98, 100) so eingerichtet ist, daß während der Berechnung der Ergebnisse einer augenblicklichen Operationssequenz das Steuermittel (60, 90, 98, 100) eine E/A-Operation durchführt, durch die die Endergebnisse einer vorhergehenden Operationssequenz aus den ihnen zugeordneten Registern ausgelesen und auf den Systembus (54) gelegt werden.
2. Ein System gemäß Anspruch 1, ferner dadurch gekennzeichnet, daß das Steuermittel (60) so ausgelegt ist, daß es während der Berechnung der Ergebnisse für die derzeitige Operationssequenz Parameter für die nächste Operationssequenz in den zugewiesenen Registern des Satzes (58) abspeichert.
3. Ein System gemäß Anspruch 1 oder 2, in dem jede Operationssequenz eine Vielzahl von arithmetischen Operationen beinhaltet, die für die Operationssequenzen dieser Reihe identisch sind.
4. Ein System gemäß einem beliebigen der Ansprüche 1 bis 3, in dem die zweckmäßige Logikeinheit (64, 74) Mittel zur Fließbandberechnung dieser Ergebnisse für eine Vielzahl von Operationen in der Operationssequenz beinhaltet.
5. Ein System gemäß einem beliebigen vorstehenden Anspruch, in dem das Steuermittel (60) Mittel beinhaltet, die verhindern, daß die zweckmäßige Logikeinheit (64, 74) zum Abspeichern der Endergebnisse der augenblicklichen Operationssequenz auf das Register zugreifen kann, bevor die Endergebnisse aus der vorhergehenden Operationssequenz gelesen sind.
6. Ein System gemäß einem beliebigen vorstehenden Anspruch in der Form einer Funktionsarithmetikeinheit, die von einem NC-Prozessor abhängig ist oder abhängig gemacht werden kann.
7. Ein Verfahren zur Durchführung einer Reihe von Operationssequenzen in einem Datenverarbeitungssystem, das an einen Systembus (54) angeschlossen ist und einen Registersatz (58) und eine zweckmäßige Logikeinheit (64, 74) aufweist, wobei jede aufgerufene Operationssequenz die gleiche logische Form aufweist, und wobei dieses Verfahren die folgenden Schritte umfaßt:
Anwenden der zweckmäßigen Logikeinheit (64, 74) zur konsekutiven Berechnung der Ergebnisse für jede der Operationssequenzen der Reihe;
Abspeichern der Ergebnisse aus jeder Operationssequenz im Registersatz (58);
wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist:
Anweisen jedes Registers im Satz (58), entweder Parameter für eine Operationssequenz, Zwischenresultate der Operationen in der Sequenz, oder ein Operationssequenz-Endergebnis abzuspeichern;
Einrichten des Registersatzes (58) so, daß die Parameter und Ergebnisse einer augenblicklichen Operationssequenz die in den Registern abgespeicherten Parameter und Ergebnisse einer vorhergehenden Operationssequenz ersetzen;
Durchführen einer E/A-Operation während der Berechnung der Ergebnisse einer augenblicklich ablaufenden Operationssequenz, durch die die Endergebnisse einer vorhergehenden Operation aus den ihnen zugewiesenen Registern ausgelesen und auf den Systembus (56) gelegt werden.
8. Ein Verfahren gemäß Anspruch 7, das ferner den Schritt des Abspeicherns von Parametern für eine nächste Operationssequenz in den zugewiesenen Registern des Satzes (58) während der Berechnung der Ergebnisse für die augenblicklich ablaufende Operationssequenz umfaßt.
9. Ein Verfahren gemäß Anspruch 7 oder 8, in dem jede Operationssequenz eine Vielzahl von arithmetischen Operationen umfaßt, die für die Operationssequenzen der Reihe identisch sind, und jedes Operationsergebnis im Abspeicherschritt während der Berechnung der Sequenz in einem einmaligen Register abgespeichert wird.
10. Ein Verfahren gemäß einem beliebigen der Ansprüche 7 bis 9, in dem der Schritt des Berechnens der Ergebnisse die Fließbandberechnung dieser Ergebnisse für eine Vielzahl von Operationen in der Operationssequenz beinhaltet.
11. Ein Verfahren gemäß einem beliebigen der Ansprüche 7 bis 10, in dem der Schritt des Lesens den Schritt beinhaltet, wonach verhindert wird, daß die zweckmäßige Logikeinheit (64, 74) auf das Register zum Abspeichern des Endergebnisses der augenblicklichen Operationssequenz zugreift, bevor die Endergebnisse der vorangehenden Operationssequenz gelesen sind.
DE1989626183 1988-06-23 1989-05-09 Ergebnisverfügbarkeit einer Rechensequenz Expired - Fee Related DE68926183T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US21138788A 1988-06-23 1988-06-23

Publications (2)

Publication Number Publication Date
DE68926183D1 DE68926183D1 (de) 1996-05-15
DE68926183T2 true DE68926183T2 (de) 1996-10-10

Family

ID=22786730

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1989626183 Expired - Fee Related DE68926183T2 (de) 1988-06-23 1989-05-09 Ergebnisverfügbarkeit einer Rechensequenz

Country Status (3)

Country Link
EP (1) EP0348030B1 (de)
JP (1) JP2654451B2 (de)
DE (1) DE68926183T2 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5438669A (en) * 1991-11-20 1995-08-01 Hitachi, Ltd. Data processor with improved loop handling utilizing improved register allocation
EP0623874A1 (de) * 1993-05-03 1994-11-09 International Business Machines Corporation Verfahren zur Ausführung von Befehlen in einer Schleife

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
JPS57134774A (en) * 1981-02-13 1982-08-20 Hitachi Ltd Vector operating device
JPS57166649A (en) * 1981-03-30 1982-10-14 Ibm Data processing system
JPS58129552A (ja) * 1982-01-28 1983-08-02 Hitachi Ltd 演算処理装置
JPH0650512B2 (ja) * 1984-07-11 1994-06-29 日本電気株式会社 デ−タ処理装置
US4745547A (en) * 1985-06-17 1988-05-17 International Business Machines Corp. Vector processing

Also Published As

Publication number Publication date
EP0348030A3 (de) 1993-02-24
DE68926183D1 (de) 1996-05-15
EP0348030B1 (de) 1996-04-10
EP0348030A2 (de) 1989-12-27
JPH02255916A (ja) 1990-10-16
JP2654451B2 (ja) 1997-09-17

Similar Documents

Publication Publication Date Title
DE69430838T2 (de) Schaltung und Verfahren zur parallelen Verschiebung und Addition
DE69033444T2 (de) Signalprozessor mit einer arithmetischen und logischen Einheit und einer Multiplizier-Akkumulatoreinheit, die gleichzeitig betrieben werden können
DE69622305T2 (de) Verfahren und Gerät für einen optimierenden Kompiler
DE3587591T2 (de) Mikroprozessor für Forth-ähnliche Sprache.
DE69811877T2 (de) ARITHMETISCHER PROZESSOR, der endliche Felder Arithmetik und ganzzahlige modular Arithmetik kombiniert.
DE69833008T2 (de) Prozessor mit instruktionskodierung mittels eines schablonenfeldes
DE3210816C2 (de)
DE69703085T2 (de) Koprozessor mit zwei parallel arbeitenden Multiplizierschaltungen
DE19914210B4 (de) Verfahren und Prozessor für eine gestaffelte Ausführung einer Anweisung
DE68927371T2 (de) Verfahren und Vorrichtung zur Verarbeitung von mehreren Zustandscodes wie für einen Parallel-Pipeline-Rechner
DE68927911T2 (de) Datenverarbeitungssystem
DE3587277T2 (de) System fuer die umgehungssteuerung beim pipelinebetrieb eines computers.
US5068819A (en) Floating point apparatus with concurrent input/output operations
DE3586603T2 (de) Datenprozessor fuer interpretierende und kompilierte sprache.
DE2040558A1 (de) Datenverarbeitendes System mit Mikroprogrammen
DE2735814A1 (de) Datenverarbeitungseinrichtung
DE1524162A1 (de) Einrichtung zur parallel-simultanen Verarbeitung zusammengehoeriger Gruppen von Daten
DE3400723C2 (de)
DE69230626T2 (de) Informationsverarbeitungssystem mit der Fähigkeit zum Betreiben von mehreren Vektorpipelines in zwei unterscheidlichen Wirkungsweisen
DE3485771T2 (de) Leistungsfaehiger paralleler vektorprozessor.
DE3855524T2 (de) Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator
DE69322566T2 (de) Datenprozessor
DE4430195B4 (de) Verfahren zur Auswertung von Booleschen Ausdrücken
DE69837138T2 (de) Unterbrechbare mehrfache Ausfuehrungseinheitverarbeitung waehrend mehrfacher Zuweisung von Register verwendenden Operationen
DE3688806T2 (de) Instruktionsprozessor.

Legal Events

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