DE3446957C2 - - Google Patents

Info

Publication number
DE3446957C2
DE3446957C2 DE3446957A DE3446957A DE3446957C2 DE 3446957 C2 DE3446957 C2 DE 3446957C2 DE 3446957 A DE3446957 A DE 3446957A DE 3446957 A DE3446957 A DE 3446957A DE 3446957 C2 DE3446957 C2 DE 3446957C2
Authority
DE
Germany
Prior art keywords
arithmetic
vector
phase
data
buffer circuit
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
DE3446957A
Other languages
English (en)
Other versions
DE3446957A1 (de
Inventor
Tomoo Aoyama
Yuuji Aoki
Hiroshi Hadano Jp Murayama
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.)
Hitachi Ltd
Hitachi Computer Engineering Co Ltd
Original Assignee
Hitachi Ltd
Hitachi Computer Engineering 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 Hitachi Ltd, Hitachi Computer Engineering Co Ltd filed Critical Hitachi Ltd
Publication of DE3446957A1 publication Critical patent/DE3446957A1/de
Application granted granted Critical
Publication of DE3446957C2 publication Critical patent/DE3446957C2/de
Granted 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

Description

Die Erfindung betrifft einen Vektorprozessor gemäß dem Ober­ begriff des Anspruchs 1.
Ein derartiger Vektorprozessor ist aus dem Buch "The Architecture of Pipelined Computers", Peter M. Kogge, McGraw Hill Book Company, 1981 bekannt (Seiten 134 bis 172). Insbesondere betrifft die Erfindung einen zur Ver­ arbeitung zyklischer Operationen mit hoher Geschwindigkeit bestimmten Vektorprozessor.
Aus dem obengenannten Buch ist ein Vektorprozessor bekannt mit mehreren Vektorregistern zum Speichern jeweiliger Vektor­ elemente und einer arithmetischen Recheneinheit, die Rechen­ operationen zwischen aufeinanderfolgend aus den Vektorregi­ stern ausgelesenen Vektorkomponenten ausführt, die Rechen­ ergebnisse in die Vektorregister aufeinanderfolgend ein­ schreibt und nach einer Pipeline-Verarbeitungsmethode derart gesteuert wird, daß die Rechenoperationen in mehrere parallel arbeitende Phasen unterteilt werden, wobei der Vektorprozessor die Rechenoperationen iterativ jeweils mit einem ersten Daten­ element und einem zweiten Datenelement von Vektorkomponenten ausführt, wobei das erste Datenelement ein Ergebnis einer vor­ angehenden Operation ist und das zweite Datenelement jeweils von Komponente zu Komponente unabhängig ist.
Zum Bearbeiten komplexerer Funktionen ist ein derartiger Vek­ torprozessor jedoch schlecht geeignet.
Neuere Vektorprozessoren arbeiten nach der Pipelinesteuermethode, nach der der Verarbeitungsprozeß in mehrere "Phasen" genannte konzeptionelle Grundverarbeitungsschritte unterteilt wird und die zu verarbeitenden Daten ohne Unterbrechung in den Prozessor eingegeben werden, wodurch eine hohe Verarbeitungsgeschwindig­ keit erreicht wird. Eine notwendige und hinreichende Bedingung zur Durchführung einer Hochgeschwindigkeitsverarbeitung mittels einer Pipelinesteuerung ist die, daß keine Abhängigkeit der Operation zwischen den zur Verarbeitung benutzten Datenelementen besteht, was als "unabhängige" Beziehung bezeichnet wird.
Andererseits benötigt die zyklische Verarbeitung oder Ite­ ration, wie in Gleichung (1) gezeigt ist, mindestens das letzte Ergebnis der Berechnung, so daß die "unabhängige" Beziehung nicht erfüllt ist.
xi+1=xi+ai (i=0, 1, 2, . . .) (1)
Die zu verarbeitenden Daten können also nicht ohne Unter­ brechung in den Vektorprozessor eingegeben werden und nach­ dem die Ausgabedaten des Prozessors erzeugt sind, müssen diese wieder in den Vektorprozessor eingegeben wer­ den. Daher sollte eine Steuerung vorgenommen werden, um die Eingabe der zu verarbeitenden Daten durch eine Takt­ steuerung nach der Anzahl der Phasen des Vektorprozessors zu unterbrechen. Bei neuesten Höchstgeschwindigkeitscomputern ist der Abfall der Verarbeitungskapazität des Vektorprozessors bezüglich der zyklischen Verarbeitung aufgrund solcher Unter­ brechungen um bis zu einem Faktor 10 im Vergleich zur Verar­ beitungskapazität anderer Operationen dieser Art, die "unab­ hängig" ausgeführt werden können, gesunken. Diese bemerkens­ werte Leistungsstörung ist nicht nur auf zyklische Operatio­ nen beschränkt. Solche Störungen führen bei einer Methode zur Erhöhung der Verarbeitungsgeschwindigkeit bei kontinuier­ lichen Verarbeitungsprozessen durch konzeptionelle Verkopp­ lung der Eingabe- und Ausgabedaten von mehreren Vektoropera­ tionen aufgrund der Verkettungssteuerung des Vektorprozessors zu einer Verzögerung, die wiederum die Leistung der gesamten darauffolgenden Verarbeitung der zyklischen Operation beein­ trächtigt.
Aufgabe der Erfindung ist es, einen Vektorprozessor anzugeben, der die zyklische Operation mit hoher Geschwindigkeit, ohne den Hardwareaufwand zu erhöhen, ausführen kann.
Diese Aufgabe wird gemäß den kennzeichnenden Merkmalen des An­ spruchs 1 gelöst, der abhängige Anspruch ist auf eine bevorzugte Ausführungsform der vorliegenden Erfindung gerichtet.
Ein Merkmal der zyklischen Operation besteht darin, bei der Verarbeitung das letzte Ergebnis zu verwenden. Dieses "letzte Ergebnis" bedeutet jedoch nicht das vorhergehende Ergebnis der Verarbeitung. Bei der allgemeinen Gleichung für die zyklische Operation
xi+1=f(xi)
wobei f(xi) eine Funktion der Variablen xi bezeichnet, wird die folgende Abänderung vorgenommen:
xi+1=f(f(xi-1))=g(xi-1)
Das "letzte" Ergebnis bedeutet also das Ergebnis der vor­ letzten Operation. Durch Wiederholen der Änderungsoperationen dieser Gleichung erhält man folgende Beziehung für eine be­ liebige positive Zahl n.
xi+1=f(f(. . . f(xi-n))=h(xi-n)
Diese Gleichung erfüllt die folgende Beziehung, die für alle m (0≦m≦n) gilt.
xi+1+m=h(xi-n+m)
Es können daher n+1 Ergebnisse für xn+1, xn+2, . . ., xn+m+1, . . . , xn+1 gleichzeitig von x₀, x₁, . . . , xm, . . . , xn (ur­ sprüngliche Werte) erhalten werden. Nach dieser Methode werden n+1 arithmetische Logikelemente benötigt, um die zykli­ sche Operation durchzuführen. Ferner wird die von der Funktion f abgeleitete Funktion h üblicherweise komplizierter als die Funktion f. Die Anzahl der arithmetischen Logikeinheiten, die benötigt wird, um h(xi-n+m) aus der Variable xi-n+m zu berechnen, ist im allgemeinen größer als im Fall der Be­ rechnung der Funktion f. Aus diesem Grund werden bei der Parallelverarbeitungsmethode für die zyklische Operation unvermeidbar mehr Bauelemente benötigt.
Wenn die zyklischen Operationsprozesse mit einem Vektor­ prozessor durchgeführt werden, der, wie in Fig. 1 gezeigt, mehrere Phasen hat, gibt es in dem aus zwei Zeit- und Phasen­ faktoren bestehenden Raum (im folgender wird dieser Raum als π-Raum bezeichnet) nur sehr wenige Bereiche (die schraffier­ ten Bereiche in Fig. 1), in denen die effektiven Operationen durchgeführt werden. Demzufolge kann in den die ungültigen Prozesse im π-Raum darstellenden Bereichen, die Anzahl n durch die ungültigen Bereiche im π-Raum begrenzt werden, wenn die Verarbeitung der Funktion h nach der Parallelver­ arbeitunsmethode der zyklischen Operation und die Parallel­ verarbeitungen der zyklischen Operation ausgeführt werden. Die parallelen Verarbeitungen der zyklischen Operation kann durchgeführt werden, ohne daß dazu eine gesteigerte Anzahl an Bauelementen erforderlich ist.
Im folgenden wird die Erfindung beispielsweise anhand der Zeichnung näher erläutert. Es zeigt
Fig. 1 im Diagramm die Bereiche im π-Raum der zykli­ schen Operationsprozesse, die mit einem Pipe­ line-Prozessor verarbeitet werden.
Fig. 2A im Diagramm die Bereiche im π-Raum der zykli­ schen Operation, die erfindungsgemäß verarbeitet werden.
Fig. 2B im Diagramm die Phasenbeziehung zwischen den Ein­ gabe- und Ausgabezeiten im π-Raum der Phasen, die durch eine time-sharing-Schaltung des er­ findungsgemäßen Vektorprozessors erzeugt wer­ den.
Fig. 3 ein Prozessdiagramm für die Berechnungen im π-Raum.
Fig. 4 im Diagramm den Zustand der zyklischen Opera­ tionsprozesse im π-Raum nach der Erfindung.
Fig. 5 eine Tabelle mit der Phaseninformation, die von einer Steuerlogik des Prozessors erzeugt wird.
Fig. 6 im Diagramm einen Vektorprozessor zur Durchfüh­ rung der zyklischen Operationsverarbeitung nach Fig. 5.
Fig. 7 den in Fig. 6 gezeigten Phasengenerator und
Fig. 8 ein Prozeßdiagramm für eine zyklische Operation höherer Ordnung im π-Raum.
Die obenbeschriebene Methode wird im folgenden anhand eines praktischen Beispiels beschrieben. Die einfachste zyklische Operation
xi+1=xi+ai
wird wie folgt abgeändert:
xi+1=xi-1+ai-1+ai.
Bezieht sich man sich auf diese Gleichung, dann erfolgen die praktischen zyklischen Berechnungen wie folgt:
x₂=x₀+(a₀+a₁)
x₃=x₁+(a₁+a₂)
x₄=x₂+(a₂+a₃),
wobei x₀ und x₁ gegebene Anfangswerte sind. Wenn diese Rech­ nungsreihen in einen Anteil (a₁+ai+i) und den Anteil (x1+1=xi + . . .) aufgespalten und mit dem Vektorprozessor verarbeitet werden, in dem beide zeitlich verzahnt aufgeteilt werden, ergibt sich der in Fig. 2A gezeigte π-Raum. Wie sich aus einem Vergleich der Fig. 1 und 2A ergibt, sind
  • 1. die effektiven Verarbeitungsbereiche im π-Raum der Fig. 2A gegenüber denen in Fig. 1 aufgrund der Parallelverarbeitungsmethode vergrößert, so daß
  • 2. die Geschwindigkeit, mit der die Ausgangssignale er­ halten werden, etwa verdoppelt wird.
Dieser bemerkenswerte Effekt auf die zyklische Operation basiert auf der zeitlich verzahnten Verarbeitung in einem Prozessor, ohne daß dadurch dessen Anzahl der Bauelemente vergrößert wird.
Im folgenden wird die Reihenschaltung mehrerer Vektorprozes­ soren mit Bezug auf ein praktisches Beispiel beschrieben. Um die folgende Iteration erster Ordnung
xi+1=xi *ai+bi (i=0, 1, 2, . . .)
nach der Pipelineverarbeitungsmethode zu verarbeiten, sind ein Multiplizierglied und ein Addierglied in Reihe geschaltet. Fig. 3 zeigt einen π-Raum, der erhalten wird, wenn ein Vektorprozessor mit einer solchen Bauelementanordnung nach der üblichen zyklischen Verarbeitungsmethode betrieben wird. In Fig. 3 sind die zu verarbeitenden Daten mit b bezeichnet und diese Daten werden in das mit dem Ausgang des Multi­ plizierglieds verbundene Addierglied eingegeben. Die oben aufgeführte Iteration erster Ordnung wird wie folgt abgeändert:
xi+1= xi-1 *(ai-1 *ai)+(bi-1 *ai+bi)
Dadurch wird erhalten:
x₂=x₀*(a₀*a₁)+(b₀*a₁+b₁)
x₃=x₁*(a₁*a₂)+(b₁*a₂+b₂)
x₄=x₂*(a₂*a₃)+(b₂*a₃+b₃)
x₅=x₃*(a₃*a₄)+(b₃*a₄+b₄)
Fig. 4 zeigt im Diagramm einen π-Raum im Fall der Ver­ arbeitung dieser Reihen von zyklischen Berechnungen durch einen Vektorprozessor bei dem zeitlich verzahnt ar­ beitende Multiplizier- und Addierglieder miteinander ge­ koppelt sind.
Wie aus Fig. 4 ersichtlich ist, wird die Verarbeitungsge­ schwindigkeit der zyklischen Operation durch den zeitlich verzahnten Betrieb des Prozessors erhöht, selbst wenn der Vektorprozessor ein Prozessor ist, in dem Pipeline- Prozessoren in Serie geschaltet sind. Im folgenden wird ein praktisches Beispiel der Operation erläutert. Fig. 5 zeigt die Eingabe- und Ausgabeoperanden für den Fall, daß die zyklische Operation mit dem Format
xi+1=xi+ai
abgeändert wird zu xi+1=xi-1+(ai-1+ai).
Nach Fig. 5 werden die Verarbeitungsschritte im Vektor­ prozessor gemäß einem Taktsignalwert von einem niedrigen zu einem höheren Signalwert sequentiell ausgeführt. Die in diesem Vektorprozessor (einem Addierglied bei dieser Ausführungsform) durchgeführten Prozesse können in drei Arten P, N und E, in Abhängigkeit von der Prozesse unterteilt werden. In der N-Phase wird keine Verarbeitung ausge­ führt. Die Variable ℓ bezeichnet den Wert des letzten Ele­ ments eines berechneten Vektors x. In Fig. 5 ist ℓ eine ungerade Zahl. Wenn ℓ eine gerade Zahl ist, halbiert sich die Zeit zur Berechnung von xl-1 und xl in der letzten E-Phase und der P-Phase für die Berechnung des Eingangs­ operanden bei dieser Verarbeitung. Da der in dem Prozeßdia­ gramm gezeigte Fall, wobei diese Endprozesse ausgeführt werden, nicht direkt das Konzept der Erfindung betrifft, wird dieses nicht weiter beschrieben.
In Fig. 6 ist die Logikschaltung zum Durchführen der in Fig. 5 gezeigten Operation skizziert. Eine Vektorregister­ steuereinheit 1 erzeugt Schreib- und Leseadressen für die Vektorregister 2 und 3, in denen nach Anforderung für diese Register zu verarbeitende erste und zweite Datenelemente x und a gespeichert sind. Es sei angenommen, daß die Elemente x₀ und x₁ bereits in das Vektorregister 3 eingeschrieben worden sind. Eine Steuer­ einheit (im folgenden als Phasengenerator bezeichnet) 4 de­ finiert die Phasen der in Fig. 5 gezeigten zyklischen Opera­ tion. Zu verarbeitende Daten {a₁} werden in einer Zwischenspeicherschaltung 5, 6, 7, 10 und 11 gehalten. Der Datenwert {a₁} in dieser Zwischenspeicherschaltung wird zu der Zwischenspeicherschaltung in der nächsten Phase geschickt, nachdem der nächste Datenwert {ai+1} vom Vektorregister 2 abgeschickt wurde. Die arithmetische Recheneinheit 14 arbeitet nach der Pipeline-Steuer­ methode und die Zwischenspeicherschaltung 8 und 9 speichern die von der arithmetischen Recheneinheit 14 in der P-Phase berechneten Daten {(ai-1+ai)}. Die Daten in dieser Zwischenspeicherschaltung werden ebenfalls so gesteuert, daß sie in der Zwischenspeicherschaltung der nächsten Phase gesetzt werden, nachdem die nächsten Daten {(ai+ai+1)} von der arithmetischen Recheneinheit 14 geschickt worden sind.
Die Zwischenspeicherschaltung 12 und 13 speichert Daten {xi}, die von der arithmetischen Recheneinheit 14 zu verarbeiten sind. Die Daten in dieser Schaltung werden ebenfalls so gesteuert, daß sie automatisch zur Schaltung in der nächsten Phase übertragen werden, nachdem ein Element der Daten {xi} von der arithmetischen Recheneinheit 14 berechnet worden ist. Zur Durchführung dieser automatischen Einstellope­ ration in der Zwischenspeicherschaltung in der nächsten Phase können die Daten in der Zwischenspeicherschaltung durch Verwen­ dung eines Freigabesignals, das anzeigt, daß gültige Daten vorliegen, in der Zwischenspeicherschaltung in der nächsten Phase gesetzt werden. Zur Vereinfachung der Fig. 6 ist die dafür vorgesehene Steuereinrichtung nicht gezeigt.
Wenn in den Vektorprozessor nach Fig. 6 ein Startbefehl ein­ gegeben wird, überträgt die Vektorregistersteuereinheit 1 ein Signal, das angibt, daß die Verarbeitung in der arithmetischen Recheneinheit begonnen hat auf den Bus 21. In Reaktion auf dieses Signal erzeugt der Phasengenerator 4 ein Befehlssignal für die P- Phase in Fig. 5 und überträgt dieses Signal über einen Bus 23 zu Multiplexern 16 und 17.
Andererseits überträgt die Vektorregistersteuereinheit 1 Daten a₀, a₁, a₂, . . . von dem Vektorregister 2 zu der Zwischenspeicherschaltung 5, 6, 7, 10 und 11 über einen Anforderungsbus 20 und einen Datenbus 24 in Übereinstimmung mit dem Zeittakt, wenn der Phasengenerator 4 das P-Phasen­ signal erzeugt und sendet dieses Signal zu den Multiplexern 16 und 17. Aus Fig. 6 ergibt sich, daß, wenn a₀ in der Zwischenspeicherschaltung 7 gesetzt ist, a₁ gleichzeitig in der Zwischenspeicherschaltung 11 gesetzt ist. In der P-Phase wählen die Multiplexer 16 bzw. 17 die Ausgangswerte der Zwischenspeicherschaltungswerte 7 und 11, wodurch die Ergebnisse zur arithmetischen Recheneinheit 14 gesandt werden können. In der arithmetischen Recheneinheit 14 werden die übertragenen Daten sequentiell umgewandelt und das Ergebnis der Addition wird nach einem vorgegebenen Takt zu einer arithmetischen Recheneinheit 18 geführt.
Das vom Phasengenerator 4 erzeugte Phasensignal wird durch eine Verzögerungsschaltung 15, die eine der Anzahl der Phasen der arithmetischen Recheneinheit 14 entsprechende Anzahl von Verzögerungsgliedern aufweist, übertragen. Das die P-Phase angebende Signal wird so an einen Schalter 19 angelegt, daß es mit dem Takt koinzidiert, wenn das vor­ hergehende Ergebnis der Operation (a₀+a₁) in der Zwischenspeicherschaltung 18 aufgenommen ist. Der Schalter 19 wählt bei der P-Phase einen Bus 25 aus, so daß das Ergebnis der Addition (a₀+a₁) in der Zwischenspeicherschaltung 8 ge­ setzt wird. Auf ähnliche Weise wird beim nächsten Takt (a₁+a₂) in der Zwischenspeicherschaltung 8 und (a₀+a₁) in der Zwischenspeicherschaltung 9 gesetzt.
Der Phasengenerator 4 schaltet die Phase und schickt ein N-Phasensignal an den Bus 23. In der N-Phase führen beide Selektoren 16 und 17 und der Schalter 19 keine Verbindung zwischen den Bussen aus, um die signifikanten Daten auszu­ wählen. Daher werden die Daten in der Zwischenspeicherschaltung 7 und 11 festgehalten. Andererseits geht in der N- Phase ein Selektor 42 in Reaktion auf ein Ausgangssignal (an den Bus 44) der Verzögerungsschaltung 15 in Betrieb, und verbindet einen Ausgangsbus 43 des Vektorregisters 3 mit dem Datenbus der Zwischenspeicherschaltung 12. Aufgrund dieser Operation sind die ursprüng­ lichen Werte x₀ und x₁ des Vektors x in der Zwischenspeicherschaltung 12 und 13 gesetzt. Zu diesem Zeitpunkt hat der Phasengenerator 4 das P-Phasensignal erzeugt und der Multi­ plexer 17 hat den Bus zwischen die Zwischenspeicherschaltung und die arithmetischen Recheneinheit 14 gekoppelt. Zu diesem Zeitpunkt wurde a₂ in der Verriegelungsschaltung 7 und a₃ in der Zwischenspeicherschaltung 11 gespeichert. Dann führt die arithmetische Recheneinheit 14 die Addition (a₂+a₃) und (a₃+a₄) in dieser zweiten P-Phase aus. Zu dem Zeitpunkt, an dem das Ausgangssignal der arithmetischen Recheneinheit 14 in der Zwischenspeicherschaltung 18 gespeichert war, hat der Phasengenerator 4 die E-Phase hergestellt. Die Multiplexer 16 und 17 gehen also in Betrieb und es werden die Zwischenspeicherschaltung 9 und 13 ausgewählt, die darauf­ hin ihre Ausgangssignale an die arithmetische Recheneinheit 14 abgeben. Wenn die Ausgangswerte, das heißt x₂ und x₃ der arithmetischen Recheneinheit 14 erzeugt sind, wählen der Schalter 19 und der Selektor 42 einen Bus 26. Die Ausgabewerte x₂ und x₃ werden deshalb sequentiell in die Zwischenspeicherschaltung 12 und 13 eingegeben. Wenn x₂ und x₃ in die Zwischenspeicherschaltung 12 und 13 einge­ geben sind, hat der Multiplexer 17 den Ausgabewert der Zwischenspeicherschaltung 11 in Reaktion auf das P-Phasensignal (siehe Fig. 2B) ausgewählt und den Bus vollständig verbunden, so daß die in der nächsten P-Phase zu verarbeitenden Daten zur arithmetischen Recheneinheit 14 geschickt werden können.
Andererseits werden die in der E-Phase berechneten Werte x₂ und x₃ über den Bus 26 in Übereinstimmung mit den von der Vektorregistersteuereinheit 1 erzeugten Adreßwerten in das Vektorregister 3 eingeschrieben.
Die zyklische Operation wird durch Wiederholen der obenge­ nannten Operationen in der P- und E-Phase durchgeführt.
Fig. 7 zeigt ein Schaltbild des Phasengenerators 4. In Fig. 7 sind die bereits in Fig. 6 gezeigten Bauelemente mit gleichen Bezugszeichen wie in Fig. 6 bezeichnet. Die Bezugszeichen bezeichnen im einzelnen: 30 einen Taktsignal­ generator, 31 einen zyklischen Zweibitzähler, 32 ein Zwei­ bit-flipflop, 33 und 34 Verzögerungsschaltungen, die ermöglichen, daß der Phasengenerator 4 zu ge­ eigneten Zeitpunkten das Startsignal und ein das Ende der Datenübertragung angebendes Signal von der Vektorregister­ steuereinheit 1 empfängt. 35 und 36 bezeichnen UND-Glieder, 37 ein ODER-Glied und 38 einen Inverter. Wenn der Phasen­ generator 4 betätigt wird, wird der Zähler 31 auf "11" zu­ rückgestellt.
Das an dem Bus 23 anliegende Signal ist so definiert, daß "00" die P-Phase, "11" die N-Phase, "10" die E-Phase und "01" ein inhaltsloses Signal bezeichnen. Wenn der Phasen­ generator 4 betätigt wird und ein Taktpuls zum Zähler 31 gesendet wird, ändert sich der Zählerwert von "00" zu "01" →"10"→"11"→ . . . Dieser Wert wird sofort in einem Flipflop 32 gesetzt. Ein Bus 40 ist mit dem 0-Bitausgang (im folgenden als höherwertiges Bit bezeichnet) des Flip­ flops 32 verbunden. Das höherwertige Bit des Busses 23 wird für das Intervall zwischen zwei Takten von dem Start­ zeitpunkt aus zu Null. Zu diesem Zeitpunkt ist das Endsignal von der Vektorregistersteuereinheit 1 nicht auf den Bus 22 übertragen, so daß der Ausgangswert des UND-Glieds 36 zu Null wird und der Ausgabewert des ODER-Gliedes 37 ebenfalls Null wird. Das niederwertige Bit am Bus 23 wird zu Null, wodurch ein die P-Phase angebendes Signal erzeugt wird.
Nach drei Taktpulsen wird das höherwertige Bit des Ausgangs­ werts des Zählers 31 zu "1". Andererseits läuft das von der Vektorregistersteuereinheit 1 auf den Bus 21 übertragene Startsignal durch die Verzögerungsverriegelungsschaltungs­ gruppe 33 und wird in das UND-Glied 35 eingegeben, derart, daß es mit dem Takt koinzidiert, wenn drei Taktpulse erzeugt werden. Das niederwertige Bit am Bus 23 wird zu "1", wodurch es ein Signal erzeugt, das zusammen mit dem höherwertigen Bit die N-Phase angibt. Es sei angenommen, daß das Start­ signal von der Vektorregistersteuereinheit 1 in dem Inter­ vall zwischen zwei Taktimpulsen übertragen wird. Wenn das Startsignal bei einem Taktimpuls wird, ist eine weitere Logikschaltung im Phasengenerator 4 erforderlich, um das Startsignal für einen weiteren Taktimpuls aufrecht­ zuerhalten, wobei der Ausgangswert des Zählers 31 verwendet wird. Da diese Logikschaltung nicht direkt mit der vorliegen­ den Erfindung zusammenhängt, ist diese in Fig. 7 nicht dar­ gestellt. Bei der weiteren Beschreibung wird angenommen, daß das Endsignal, das von der Vektorregistersteuereinheit 1 zum Bus 22 geschickt wird, bei zwei Taktpulsen übertragen wird.
Nachdem die Endphase erzeugt worden ist, erzeugt der Phasen­ generator 4 aufeinanderfolgend die P-Phase, E-Phase, . . . und überträgt diese Information auf den Bus 23.
Es ist notwendig, den Taktpuls mit der Datenübertragung und dem Datenempfang zwischen der Vektorregistersteuereinheit 1 und dem Phasengenerator 4 so zu triggern, so daß der Zähler 31 in den P-Phasenbetrieb kommt, wenn die Vektorregistersteuer­ einheit 1 das Endsignal überträgt. Zu diesem Zweck wird ein Änderungssignal auf den Bus 41 übertragen. Die Vektorregister­ steuereinheit 1 erkennt die Verarbeitungssituation der Daten aufgrund des Phasenänderungssignals, wodurch das Endsignal zu einem passenden Zeitpunkt über den Bus 22 übertragen wer­ den kann, das heißt zu einem Zeitpunkt, an dem der Phasen­ generator 4 das Endsignal empfangen kann, bevor die letzten Daten gesendet werden. In Reaktion auf das auf diese Weise erzeugte Endsignal kann die Änderung der P-Phase in die N-Phase in der letzten Phase des zyklischen Operationsprozes­ ses durch die Kombination des Inverters 38 und des UND-Glie­ des 36 (Fig. 7) durchgeführt werden.
Der Selektor 42 (Fig. 6) wählt den Bus 43 in Reaktion auf das Endphasensignal aus, das zum Zeitpunkt der Endverarbeitung erzeugt wird. Zu diesem Zeitpunkt wird das Ergebnis dieser letzten N-Phase nicht für die nächste Operation verwendet, da die Daten im Bus 43 nicht gewährleistet sind, so daß die Operation des Vektorprozessors gewährleistet ist.
Die Vorbereitung für die zyklische Operation und die zyklische Operation selbst können durch denselben Pipelineprozessor ausgeführt werden, so daß die zyklische Operation aufgrund der time-sharing-Verarbeitung des Prozessors mit hoher Ge­ schwindigkeit ausgeführt werden kann, ohne daß dazu ein erhöhter Aufwand an Bauelementen erforderlich ist. Anderer­ seits kann die folgende zyklische Operation
xi+1=xi *ai+xi-1 *bi-1+ci-2,
die bislang nicht durchgeführt werden konnte, mit einer An­ ordnung durchgeführt werden, in der das Pipelinemultiplizier­ glied und das Addierglied in Serie geschaltet sind.
Fig. 8 zeigt einen π-Raum, in dem die obengeschilderte Opera­ tion ausgeführt worden ist.

Claims (3)

1. Vektorprozessor mit
  • - mehreren Vektorregistern (2, 3) zum Speichern jeweiliger Vektorelemente und
  • - einer arithmetischen Recheneinheit (14), die Rechen­ operationen zwischen aufeinanderfolgend aus den Vektor­ registern (2, 3) ausgelesenen Vektorkomponenten ausführt, die Rechenergebnisse in die Vektorregister (2, 3) aufein­ anderfolgend einschreibt und nach einer Pipeline-Verar­ beitungsmethode derart gesteuert wird, daß die Rechen­ operationen in mehrere parallel arbeitende Phasen unter­ teilt werden, wobei der Vektorprozessor die Rechenopera­ tionen iterativ jeweils mit einem ersten Datenelement (xi) und einem zweiten Datenelement (ai) von Vektorkom­ ponenten ausführt, wobei das erste Datenelement (xi) ein Ergebnis einer vorangehenden Operation ist und das zweite Datenelement (ai) jeweils von Komponente zu Komponente unabhängig ist,
gekennzeichnet durch
  • - eine erste Zwischenspeicherschaltung (12, 13) zum Spei­ chern von zweiten, vom Vektorregister (3) ausgelesenen oder von ersten, von der arithmetischen Recheneinheit (14) gelieferten Datenelementen (ai, xi),
  • - eine zweite Zwischenspeicherschaltung (5, 6, 7, 10, 11) zum Speichern von zumindest zwei aufeinanderfolgenden aus dem Vektorregister (2) ausgelesenen zweiten Datenelemen­ ten (ai, ai+1),
  • - eine dritte Zwischenspeicherschaltung (8, 9) zum Spei­ chern der Ergebniswerte der arithmetischen Recheneinheit (14), die sich aus den Operationen zwischen den zweiten Datenelementen (ai, ai+1) ergeben,
  • - Multiplexer (16, 17), die, gesteuert durch einen Phasen­ generator (4), entweder die in der zweiten Zwischenspei­ cherschaltung (5, 6, 7, 10, 11) gespeicherten beiden auf­ einanderfolgenden zweiten Datenelemente (ai, ai+1) oder das in der ersten Zwischenspeicherschaltung (12, 13) ge­ speicherte erste Datenelement (xi) sowie den in der dritten Zwischenspeicherschaltung (8, 9) gespeicherten Ergebniswert im Zeitmultiplex der arithmetischen Rechen­ einheit (14) zuführen.
2. Vektorprozessor nach Anspruch 1, gekennzeichnet durch
  • - eine Verzögerungsschaltung (15) zum Verzögern des Phasen­ signals des Phasengenerators (4) um Zeittakte gleicher Anzahl, wie die Anzahl der Phasen der arithmetischen Re­ cheneinheit (14), und
  • - einen Multiplexer (19) zur zeitmultiplexweisen Zufuhr des Ausgangssignals der arithmetischen Recheneinheit (14) entweder an die erste oder dritte Zwischenspeicher­ schaltung gemäß der Phasensteuerung durch das Ausgangs­ signal der Verzögerungsschaltung (15).
DE19843446957 1983-12-26 1984-12-21 Vektor-prozessor Granted DE3446957A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58244042A JPS60136875A (ja) 1983-12-26 1983-12-26 ベクトル演算器

Publications (2)

Publication Number Publication Date
DE3446957A1 DE3446957A1 (de) 1985-07-11
DE3446957C2 true DE3446957C2 (de) 1991-10-31

Family

ID=17112847

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19843446957 Granted DE3446957A1 (de) 1983-12-26 1984-12-21 Vektor-prozessor

Country Status (3)

Country Link
US (1) US4757444A (de)
JP (1) JPS60136875A (de)
DE (1) DE3446957A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4212202A1 (de) * 1991-04-12 1992-10-15 Hewlett Packard Co Logikgatter

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6353678A (ja) * 1986-08-22 1988-03-07 Hitachi Ltd ベクトル処理装置
CA1281426C (en) * 1987-03-04 1991-03-12 Shingo Oota Vector calculation circuit capable of rapidly carrying out vectorcalculation of three input vectors
EP0314809B1 (de) * 1987-05-14 1993-07-21 Fujitsu Limited Vektorprozessor zur schnellen verarbeitung von rekursiven gleichungen
JPS6462764A (en) * 1987-09-03 1989-03-09 Agency Ind Science Techn Vector computer
JP2512778B2 (ja) * 1988-01-13 1996-07-03 株式会社日立製作所 演算処理方法
JPH01258067A (ja) * 1988-04-06 1989-10-16 Fujitsu Ltd ベクトル逐次演算方式
JP3068138B2 (ja) * 1989-04-06 2000-07-24 甲府日本電気株式会社 ベクトル演算処理装置
US5170370A (en) * 1989-11-17 1992-12-08 Cray Research, Inc. Vector bit-matrix multiply functional unit
US5119323A (en) * 1990-01-16 1992-06-02 United Technologies Corporation Numerical processing of optical wavefront data
DE59010674D1 (de) * 1990-04-20 1997-04-17 Siemens Ag CORDIC-Prozessor für Vektordrehungen in Carry-Save-Architektur
JPH04177462A (ja) * 1990-11-08 1992-06-24 Koufu Nippon Denki Kk ベクトル総和演算装置
US5389835A (en) * 1991-04-12 1995-02-14 Hewlett-Packard Company Vector logic method and dynamic mousetrap logic gate for a self-timed monotonic logic progression
US6609189B1 (en) * 1998-03-12 2003-08-19 Yale University Cycle segmented prefix circuits
US7730282B2 (en) * 2004-08-11 2010-06-01 International Business Machines Corporation Method and apparatus for avoiding data dependency hazards in a microprocessor pipeline architecture using a multi-bit age vector
US9355061B2 (en) 2014-01-28 2016-05-31 Arm Limited Data processing apparatus and method for performing scan operations

Family Cites Families (7)

* 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
JPS6024985B2 (ja) * 1978-08-31 1985-06-15 富士通株式会社 デ−タ処理方式
US4302818A (en) * 1979-07-10 1981-11-24 Texas Instruments Incorporated Micro-vector processor
US4400768A (en) * 1980-06-04 1983-08-23 Burroughs Corporation Parallel access computer memory system employing a power-of-two memory modules
KR860001434B1 (ko) * 1980-11-21 1986-09-24 후지쑤 가부시끼가이샤 데이타 처리시 스템
JPS57134774A (en) * 1981-02-13 1982-08-20 Hitachi Ltd Vector operating device
JPS57155666A (en) * 1981-03-20 1982-09-25 Fujitsu Ltd Instruction controlling system of vector processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4212202A1 (de) * 1991-04-12 1992-10-15 Hewlett Packard Co Logikgatter

Also Published As

Publication number Publication date
US4757444A (en) 1988-07-12
JPS60136875A (ja) 1985-07-20
JPH0514936B2 (de) 1993-02-26
DE3446957A1 (de) 1985-07-11

Similar Documents

Publication Publication Date Title
DE3446957C2 (de)
DE3137292C2 (de) FIFO-Speicher und diesen verwendende Verarbeitungseinheit
DE2817183C2 (de) Datenverarbeitungsanlage mit einer durch Mikroprogramm gesteuerten Zentraleinheit
DE3338345C2 (de)
DE2934971A1 (de) Datenverarbeitungssystem
DE3424962A1 (de) Datenverarbeitungsverfahren und vorrichtung zur durchfuehrung desselben
DE3400723C2 (de)
DE2036729A1 (de) Digital Datenverarbeiter
DE69632655T2 (de) Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen
DE2729912A1 (de) Digitale signalverarbeitungsanordnung
DE3930313A1 (de) Vektorprozessor
DE4304702A1 (en) High speed serial to parallel converter for data transmission - has input data stream fed to pair of parallel multi stage registers with outputs generated via selector controlled by compressor
CH692312A5 (de) Datenverarbeitungsanlage zum Erzeugen eines Fehlersignals.
DE2612750A1 (de) Multipliziereinrichtung
DE2732008B2 (de) Einrichtung zur Reduzierung von Fibonacci-p-Codes auf die Minimalform
DE19635118A1 (de) Multiplizierer
DE19628039B4 (de) Speicheradressen-Steuerschaltung
DE19635114A1 (de) Multiplizierer
DE3447530A1 (de) Vektorprozessor
DE60112998T2 (de) Automatische Prüfmustererzeugung für Funktional Register Transfer Level Schaltungen mit Zuweisungsentscheindungsdiagramme
DE2658950A1 (de) Mikroprogrammierte verarbeitungseinheit sowie verfahren zur organisation derselben
DE3447634A1 (de) Dividiervorrichtung
DE1916377C3 (de)
DE19635113A1 (de) Multiplizierer
DE19635111A1 (de) Multiplizierer

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee