DE3446957A1 - Vektor-prozessor - Google Patents
Vektor-prozessorInfo
- Publication number
- DE3446957A1 DE3446957A1 DE19843446957 DE3446957A DE3446957A1 DE 3446957 A1 DE3446957 A1 DE 3446957A1 DE 19843446957 DE19843446957 DE 19843446957 DE 3446957 A DE3446957 A DE 3446957A DE 3446957 A1 DE3446957 A1 DE 3446957A1
- Authority
- DE
- Germany
- Prior art keywords
- phase
- vector
- data
- vector processor
- processing
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
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)
- Complex Calculations (AREA)
- Advance Control (AREA)
Description
1. HITACHI, LTD., Tokyo
2. Hitachi Computer Engineering Co., LTD.
Hadano-shi, Kanagawa-ken
Japan
Vektor-Prozessor
Die Erfindung betrifft einen Vektorprozessor und insbesondere einen zur Verarbeitung zyklischer Operationen mit hoher
Geschwindigkeit bestimmten Vektorprozessor.
Neuere Vektorprozessoren arbeiten nach der Pipelinesteuermethode, nach der der Verarbeitungsprozess in mehrere "Phasen" genannte
konzeptionelle Grundverarbeitungsschritte unterteilt wird und die zu verarbeitenden Daten ohne Unterbrechung in den Prozessor
eingegeben werden, wodurch eine hohe Verarbeitungsgeschwindigkeit 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
81-(A9384/CMA1
besteht, was als "unabhängige" Beziehung bezeichnet wird.
Andererseits benötigt die zyklische Verarbeitung oder Iteration,
wie in Gleichung (1) gezeigt ist, mindestens das letzte Ergebnis der Berechnung, so daß die "unabhängige"
Beziehung nicht erfüllt ist.
xi+1 = *i + at (i = 0, 1, 2, ...) (D
Die zu verarbeitenden Daten können also nicht ohne Unterbrechung in den Vektorprozessor eingegeben werden und nachdem
die Ausgabedaten des Prozessors erzeugt sind, müssen diese wieder in den Vektorprozessor eingegeben werden.
Daher sollte eine Steuerung vorgenommen werden, um die Eingabe der zu verarbeitenden Daten durch eine Taktsteuerung
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 Unterbrechungen
um bis zu einem Faktor 10 im Vergleich zur Verarbeitungskapazität anderer Operationen dieser Art, die "unabhängig"
ausgeführt werden können, gesunken. Diese bemerkenswerte Leistungsstörung ist nicht nur auf zyklische Operationen
beschränkt. Solche Störungen führen bei einer Methode zur Erhöhung der Verarbeitungsgeschwindigkeit bei kontinuierlichen
Verarbeitungsprozessen durch konzeptionelle Verkopplung der Eingabe- und Ausgabedaten von mehreren Vektoroperationen
aufgrund der Verkettungssteuerung des Vektorprozessors zu einer Verzögerung, die wiederum die Leistung der gesamten
darauffolgenden Verarbeitung der zyklischen Operation beeinträchtigt.
Der Erfindung liegt die Aufgabe zugrunde, einen Vektorprozessor anzugeben, der die zyklische Operation mit hoher Geschwindigkeit
ausführen kann, ohne dabei den materiellen Aufwand an Bauelementen zu erhöhen.
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
wobei f(x-) eine Funktion.der Variablen x. bezeichnet,
wird die folgende Abänderung vorgenommen:
Das "letzte" Ergebnis bedeutet also das Ergebnis der vorletzten Operation. Durch Wiederholen der Änderungsoperationen
dieser Gleichung erhält man folgende Beziehung für eine beliebige positive Zahl n.
xi+1 = f(fC... ftXi.J) = h(x._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 χ 15x o, ..., χ . ,
° n+l ' n+1 ' n+m+1
' xn+1 gleichzeitig von xQ, X1, , x^, , xn (ursprüngliche
Werte) erhalten werden. Nach dieser Methode werden n+1 arithmetische Logikelemente benötigt, um die zyklische
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(x· ) aus der Variable x._ zu
berechnen, ist im allgemeinen größer als im Fall der Berechnung 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 Vektorprozessor durchgeführt werden, der, wie in Figur 1 gezeigt,
mehrere Phasen hat, gibt es in dem aus zwei Zeit- und Phasenfaktoren bestehenden Raum (im folgender wird dieser Raum als
Tf-Raum bezeichnet) nur sehr wenige Bereiche (die schraffierten
Bereiche in Figur 1), in denen die effektiven Operationen durchgeführt werden. Demzufolge kann in den die ungültigen
Prozesse im Tl^-Raum darstellenden Bereichen, die Anzahl η
durch die ungültigen Bereiche im » -Raum begrenzt werden, wenn die Verarbeitung der Funktion h nach der Parallelverarbeitungsmethode
der zyklischen Operation und die Parallelverarbeitungen 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 zeigen:
Fig. 1 im Diagramm die Bereiche im » -Raum der zyklischen
Operationsprozesse, die mit einem Pipeline-Prozessor verarbeitet werden.
Fig. 2A im Diagramm die Bereiche im TT'-Raum der zyklischen
Operation, die erfindungsgemäß verarbeitet werden.
Fig. 2B im Diagramm die Phasenbeziehung zwischen den Eingabe-
und Ausgabezeiten im "^ -Raum der Phasen, die durch eine time-sharing-Schaltung des erfindungsgemäßen
Vektorprozessors erzeugt werden.
* G-
Fig.3 ein Prozessdiagramm für die Berechnungen im ^ -Raum.
Fig. 4 im Diagramm den Zustand der zyklischen Operationsprozesse im 7r-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ührung der zyklischen Operationsverarbeitung nach
Figur 5.
Fig. 7 den in Fig. 6 gezeigten Phasengenerator und
Fig. 8 ein Prozessdiagramm für eine zyklische Operation höherer Ordnung im erfindungsgemäßen " -Raum.
Die obenbeschriebene Methode wird im folgenden anhand eines praktischen Beispiels beschrieben. Die einfachste zyklische
Operation
wird wie folgt abgeändert:
Bezieht sich man sich auf diese Gleichung, dann erfolgen die praktischen zyklischen Berechnungen wie folgt:
Ca0
x4 = x2 + (a2
+ a2)
wobei X0 und χ., gegebene Anfangswerte sind. Wenn diese Rechnungsreihen
in einen Anteil (a^+a. .) und den Anteil(x1 . = χ.
+ ...) aufgespalten und mit dem Vektorprozessor verarbeitet werden, in dem beide zeitlich verzahnt aufgeteilt werden,
ergibt sich der in Figur 2A gezeigte " -Raum . Wie sich aus einem Vergleich der Figuren 1 und 2A ergibt, sind
1. die effektiven Vearbeitungsbereiche im " -Raum der
Figur 2A gegenüber denen in Figur 1 aufgrund der Parallelverarbeitungsmethode vergrößert, so daß
2. die Geschwindigkeit,mit der die Ausgangssignale erhalten
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 Vektorprozessoren mit Bezug auf ein praktisches Beispiel beschrieben. Um
die folgende Iteration erster Ordnung
xi+1 = X1 * ai + bA Ci = 0, 1, 2, ...)
nach der Pipelineverarbeitungsmethode zu verarbeiten, sind ein Multiplizierglied und ein Addierglied in Reihe geschaltet.
Figur 3 zeigt einen TT* -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 ein mit dem Ausgang eines Multiplizierglieds
verbundenes Addierglied eingegeben. Die oben aufgeführte Iteration erster Ordnung wird wie folgt abgeändert:
xi+1 = X1.! * Ca1-1 * a.) + (b.^ * a. + b.)
Dadurch wird erhalten:
= x0 * (a0 * ax) + (b0 * ax + b±)
* Ca1 * a2) + Cb1 * a2 + b.,)
x4 = x2 * U2 * a3) + (b2 * a3 + b3)
X5 = x3 * (a3 * a4) + (b3 * a4 + b4)
Figur 4 zeigt im Diagramm einen TT^-Raum im Fall der Verarbeitung
dieser Reihen von zyklischen Berechnungen durch einen Vektorprozessor bei dem zeitlich verzahnt arbeitende
Multiplizier- und Addierglieder miteinander gekoppelt
sind.
Wie aus Fig. 4 ersichtlich ist, wird die Verarbeitungsgeschwindigkeit
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. Figur 5 zeigt die Eingabe- und Ausgabeoperanden für den Fall, daß
die zyklische Operation mit dem Format
xi+1 - χ. -, a.
abgeändert wird zu χ·.ι = χ·_ι + (a· ι + a·)-
abgeändert wird zu χ·.ι = χ·_ι + (a· ι + a·)-
Nach Figur 5 werden die Verarbeitungsschritte im Vektorprozessor 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
3A46957
Arten P, N und E, in Abhängigkeit von der Natur der Prozesse
unterteilt werden. In der N-Phase wird keine Verarbeitung ausgeführt. Die Variable # bezeichnet den Wert des letzten Elements
eines berechneten Vektors x. In Figur 5 ist & eine ungerade Zahl. Wenn L· eine gerade Zahl ist, halbiert sich
die Zeit zur Berechnung von χ _1 und x_£ in der letzten
Ε-Phase und der P-Phase für die Berechnung des Eingangsoperanden bei dieser Verarbeitung. Da der in dem Prozessdiagramm
gezeigte Fall, wobei diese Endprozesse ausgeführt werden nicht direkt das Konzept der Erfindung betrifft, wird dieses
nicht weiter beschrieben.
In Figur 6 ist die Logikschaltung zum Durchführen der in Figur 5 gezeigten Operation skizziert. Eine Vektorregistersteuereinheit
1 erzeugt Schreib- und Leseadressen für die Vektorregister 2 und 3, in denen nach Anforderung für diese
Register zu verarbeitende Daten a und χ gespeichert sind. Es sei angenommen, daß die Elemente χ~ und X1 bereits in
das Vektorregister 3 eingeschrieben worden sind. Eine Steuereinheit (im folgenden als Phasengenerator bezeichnet) 4 definiert
die Phasen der in Figur 5 gezeigten zyklischen Operation. Zu verarbeitende Daten ^aA werden in Verriegelungsschaltungen 5, 6, 7, 10 und 11 gehalten. Der Datenwert {aJ
in dieser Verriegelungsschaltung wird zu der Verriegelungsschaltung in der nächsten Phase geschickt, nachdem der
nächste Datenwert {a.+A vom Vektorregister 2 abgeschickt
wurde. Das Addierglied 14 arbeitet nach der Pipeline-Steuermethode und die Verriegelungsschaltung 8 und 9 speichern die
vom Addierglied 14 in der P-Phase berechneten Daten i(a-_1 + a.)} · Die Daten in dieser Verriegelungsschaltung
werden ebenfalls so gesteuert, daß sie in der Verriegelungsschaltung der nächsten Phase gesetzt werden, nachdem die
nächsten Daten {(a. + a. >)} vom Addierer 14 geschickt
worden sind.
Die Verriegelungsschaltungen 12 und 13 speichern Daten {χ.} ,
die vom Addierglied 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 { x.) vom Addierglied 14 berechnet
worden ist. Zur Durchführung dieser automatischen Einstelloperation
in der Verriegelungsschaltung in der nächsten Phase können die Daten in der Verriegelungsschaltung durch Verwendung
eines Freigabesignals, das anzeigt, daß gültige Daten vorliegen, in der Verriegelungsschaltung in der nächsten Phase
gesetzt werden. Zur Vereinfachung der Figur 6 ist die dafür
vorgesehene Steuereinrichtung nicht gezeigt.
Wenn in den Vektorprozessor nach Fig. 6 ein Startbefehl eingegeben
wird, überträgt die Vektorregistersteuereinheit 1 ein Signal, das angibt, daß die Verarbeitung im Addierglied
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 zu Selektoren 16 und 17.
Andererseits überträgt die Vektorregistersteuereinheit 1 Daten an, a1, a~ , ... von dem Vektorregister 2 zu der Verriegelungsschaltungsgruppe
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-Phasensignal erzeugt und sendet dieses Signal zu den Selektoren
16 und 17. Aus Fig. 6 ergibt sich, daß, wenn a~ in der Verriegelungsschaltung
7 gesetzt ist, a1 gleichzeitig in der Verriegelungsschaltung 11 gesetzt ist.In der P-Phase
wählen die Selektoren 16 bzw. 17 die Ausgangswerte der Verriegelungswerte 7 und 11, wodurch die Ergebnisse zum Addierglied
14 gesandt werden können.Im Addierglied 14 werden die übertragenen Daten sequentiell umgewandelt und das Ergebnis
der Addition wird nach einem vorgegebenen Takt zu der Verriegelungsschaltung
18 geführt.
Das vom Phasengenerator 4 erzeugte Phasensignal wird durch
eine Verzögerungsverriegelungsschaltungsgruppe 15, die eine der Anzahl der Phasen des Addierglieds 14 entsprechende
Anzahl von Verzögerungsverriegelungsschaltungen aufweist übertrag Das die P-Phase angebende Signal wird so an einen Schalter
19 angelegt, daß es mit dem Takt koinzidiert, wenn das vorhergehende
Ergebnis der Operation (aQ + a1) in der Verriegelungsschaltung
18 aufgenommen ist. Der Schalter 19 wählt bei der P-Phase einen Bus 25 aus, so daß das Ergebnis der
Addition (aQ + a.) in der Verriegelungsschaltung 8 gesetzt
wird. Auf ähnliche Weise wird beim nächsten Takt Ca1 + a2) in der Verriegelungsschaltung 8 und (afi + a1)
in der Verriegelungsschaltung 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 auszuwählen.
Daher werden die Daten in den Verriegelungsschaltungen 7 und 11 festgehalten. Andererseits geht in der N-Phase
ein Selektor 42 in Reaktion auf ein Ausgangssignal (an den Bus 44) der Verzögerungsverriegelungsschaltungsgruppe
15 in Betrieb, und verbindet einen Ausgangsbus 43 des Vektorregisters 3 mit dem Datenbus der Verriegelungsschaltung 12. Aufgrund dieser Operation sind die ursprünglichen
Werte xß und X1 des Vektors χ in den Verriegelungsschaltungen 12 und 13 gesetzt. Zu diesem Zeitpunkt hat der
Phasengenerator 4 das P-Phasensignal erzeugt und der Selektor 17 hat den Bus zwischen die Verriegelungsschaltung und
das Addierglied 14 gekoppelt. Zu diesem Zeitpunkt wurde a~
in der Verriegelungsschaltung 7 und a-, in der Verriegelungsschaltung 11 gespeichert. Dann führt das Addierglied 14 die
AdditionCa,, + aJ und (a^ + a.) in dieser zweiten P-Phase
aus.Zu dem Zeitpunkt , an dem das Ausgangssignal des Addierglieds
14 in der Verriegelungsschaltung 18 gespeichert war,
hat der Phasengenerator 4 die E-Phasc hergestellt. Die
3446357
. η-
Selektoren 16 und 17 gehen also in Betrieb und es werden die Verriegelungsschaltungen 9 und 13 ausgewählt, die daraufhin
ihre Ausgangssignale an das Addierglied 14 abgeben. Wenn die Ausgangswerte, das heißt X2 und x., des Addierglieds 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 Verriegelungsschaltung 12 und 13 eingegeben. Wenn X2 und x, in die Verriegelungsschaltungen 12 und 13 eingegeben
sind, hat der Selektor 17 den Ausgabewert der Verriegelungsschaltung 11 in Reaktion auf das P-Phasensignal (siehe
Figur 2B) ausgewählt und den Bus vollständig verbunden, so daß die in der nächsten P-Phase zu verarbeitenden Daten zum
Addierglied 14 geschickt werden können.
Andererseits werden die in der Ε-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 obengenannten Operationen in der P- und Ε-Phase durchgeführt.
Figur 7 zeigt ein Schaltbild des Phasengenerators 4. In Figur 7 sind die bereits in Figur 6 gezeigten Bauelemente
mit gleichen Bezugszeichen wie in Figur 6 bezeichnet. Die Bezugszeichen bezeichnen im einzelnen: 30 einen Taktsignalgenerator,
31 einen zyklischen Zweibitzähler, 32 ein Zweibit-flipflop,
33 und 34 Verzögerungsverriegelungsschaltungsgruppen, die ermöglichen, daß der Phasengenerator 4 zu geeigneten
Zeitpunkten das Startsignal und ein das Ende der Datenübertragung angebendes Signal von der Vektorregistersteuereinheit
1 empfängt. 35 und 36 bezeichnen UND-Glieder, 37 ein ODER-Glied und 38 einen Inverter. Wenn der Phasengenerator
4 betätigt wird, wird der Zähler 31 auf "11" zurückgestellt .
Das an dem Bus 23 anliegende Signal ist so definiert, daß "00" die P-Phase, "11" die N-Phase, "10" die Ε-Phase und
"01" ein inhaltsloses Signal bezeichnen. Wenn der Phasengenerator 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 Flipflops 32 verbunden. Das höherwertige Bit des Busses 23
wird für das Intervall zwischen zwei Takten von dem Startzeitpunkt 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, wodurc
ein die P-Phase angebendes Signal erzeugt wird.
Nach drei Taktpulsen wird das höherwertige Bit des Ausgangswerts des Zählers 31; zu "1". Andererseits läuft das von der
Vektorregistersteuereinheit 1 auf den Bus 21 übertragene Startsignal durch die Verzögerungsverriegelungsschaltungsgruppe
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 Startsignal von der Vektorregistersteuereinheit 1 in dem Intervall
zwischen zwei Taktimpulsen übertragen wird. Wenn das Startsignal bei einem Taktimpuls aktiviert wird, ist eine
weitere Logikschaltung im Phasengenerator 4 erforderlich, um das Startsignal für einen weiteren Taktimpuls aufrechtzuerhalten,
wobei der Ausgangswert des Zählers 31 verwendet wird. Da diese Logikschaltung nicht direkt mit der vorliegenden
Erfindung zusammenhängt, ist diese in Figur 7 nicht dargestellt. Bei der weiteren Beschreibung wird angenommen,
daß das Endsignal, das von der Vektorregistersteuereinheit zum Bus 22 geschickt wird, bei zwei Taktpulsen übertragen
wird.
Nachdem die Endphase erzeugt worden ist, erzeugt der Phasengenerator
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ß derZähler 31 in den P-Phasenbetrieb kommt, wenn die Vektorregistersteuereinheit
1 das Endsignal überträgt. Zu diesem Zweck wird ein Änderungssignal auf den Bus 41 übertragen. Die Vektorregistersteuereinheit
1 erkennt die Verarbeitungssituation der Daten aufgrund des Phasenänderungssignals, wodurch das Endsignal
zu einem passenden Zeitpunkt über den Bus 22 übertragen werden kann, das heißt zu einem Zeitpunkt, an dem der Phasengenerator
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 Operationsprozesses
durch die Kombination des Inverters 38 und des UND-Gliedes 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 Geschwindigkeit
ausgeführt werden kann, ohne daß dazu ein erhöhter Aufwand an Bauelementen erforderlich ist. Andererseits
kann die folgende zyklische Operation
x.+1 = X1 * a. + X1-1 * bi_1
die bislang nicht durchgeführt werden konnte, mit einer Anordnung durchgeführt werden, in der das Pipelinemultiplizierglied
und das Addierglied in Serie geschaltet sind.
Fig. 8 zeigt einen " -Raum, in dem die obengeschilderte Operation
ausgeführt worden ist.
Claims (3)
1. Vektorprozessor, der nach einer Pipeline-Verarbeitungsmethode
arbeitet, bei der eine Operation in mehrere Phasen unterteilt und verarbeitet wird,
gekennzeichnet durch eine erste Steuervorrichtung (1) zum Aufteilen eines Operationsgangs
auf mehrere Grundverarbeitungseinheiten und zum Steuern dieser Grundverarbeitungseinheiten, und
eine zweite Steuervorrichtung (4) zum Steuern der ersten Steuervorrichtung (1) derart, daß der Vektorprozessor
im time-sharing-Betrieb arbeitet.
2. Vektorprozessor nach Anspruch 1,
dadurch gekenn zeichnet,
dadurch gekenn zeichnet,
daß Daten aus ersten und zweiten Vektorregistern (2, 3),
in denen Vektorelemente gespeichert sind, ausgelesen und
verarbeitet werden und das Ergebnis der Verarbeitung in das zweite Vektorregister (3) eingeschrieben wird.
3. Vektorprozessor nach Anspruch 2,
gekennzeichnet durch als Eingang des Vektorprozessors dienende Vorrichtungen (16, 17, 42) zum Schalten des ersten Vektorregisters (2) und als Ausgang des Vektorprozessors dienende Vorrichtung (17, 19, 42) zum Schalten des zweiten Vektorregisters (3) .
gekennzeichnet durch als Eingang des Vektorprozessors dienende Vorrichtungen (16, 17, 42) zum Schalten des ersten Vektorregisters (2) und als Ausgang des Vektorprozessors dienende Vorrichtung (17, 19, 42) zum Schalten des zweiten Vektorregisters (3) .
81-(A9384)CMA1
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 true DE3446957A1 (de) | 1985-07-11 |
DE3446957C2 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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6353678A (ja) * | 1986-08-22 | 1988-03-07 | Hitachi Ltd | ベクトル処理装置 |
EP0281132B1 (de) * | 1987-03-04 | 1995-10-25 | Nec Corporation | Vektorrechnerschaltung, welche schnell eine Berechnung auf drei Eingangsvektoren ausführen kann |
US4949292A (en) * | 1987-05-14 | 1990-08-14 | Fujitsu Limited | Vector processor for processing recurrent equations at a high speed |
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 | ベクトル総和演算装置 |
US5208490A (en) * | 1991-04-12 | 1993-05-04 | Hewlett-Packard Company | Functionally complete family of self-timed dynamic logic circuits |
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)
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 |
-
1983
- 1983-12-26 JP JP58244042A patent/JPS60136875A/ja active Granted
-
1984
- 1984-12-21 DE DE19843446957 patent/DE3446957A1/de active Granted
- 1984-12-21 US US06/685,134 patent/US4757444A/en not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
US-B.: "The Architecture of Pipelined Computers", Peter M. Kogge, Mc Graw Hill Book Company, 1981, S. 134-172 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
Also Published As
Publication number | Publication date |
---|---|
JPS60136875A (ja) | 1985-07-20 |
DE3446957C2 (de) | 1991-10-31 |
US4757444A (en) | 1988-07-12 |
JPH0514936B2 (de) | 1993-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3446957A1 (de) | Vektor-prozessor | |
DE2716369C2 (de) | ||
DE19580707C2 (de) | PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus | |
DE69120586T2 (de) | Rechnersystem mit synchronem Bus | |
DE2451982C2 (de) | ||
DE2817183C2 (de) | Datenverarbeitungsanlage mit einer durch Mikroprogramm gesteuerten Zentraleinheit | |
EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
EP0014850B1 (de) | Einrichtung zur Erweiterung des Standard-Makroinstruktionssatzes in einer Datenverarbeitungsanlage | |
DE3789490T2 (de) | Steuerungssystem für ein Vektorprozessor. | |
DE1549523B2 (de) | Datenverarbeitungsanlage | |
DE3210816A1 (de) | Datenverarbeitungssystem mit getrennten einrichtungen zur verarbeitung von skalar- und vektordaten | |
DE2934971A1 (de) | Datenverarbeitungssystem | |
EP0048767A1 (de) | Prioritätsstufengesteuerte Unterbrechungseinrichtung | |
DE3400723C2 (de) | ||
DE3750028T2 (de) | Pipelineprozessor mit schwacher Kopplung. | |
DE2712224A1 (de) | Datenverarbeitungsanlage | |
EP0134831B1 (de) | Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung | |
DE2421130C2 (de) | ||
DE3855524T2 (de) | Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator | |
DE3854212T2 (de) | Signalgenerator für die Umlaufadressierung. | |
DE4010311C2 (de) | Datenprozessor | |
DE2911909C2 (de) | Digitales Datenverarbeitungsgerät | |
DE2414121A1 (de) | Digitale datenverarbeitungsanlage | |
DE4005042A1 (de) | Architektur eines digitalen bewegungssteuerungselements hoher geschwindigkeit | |
DE3789471T2 (de) | Mikrocomputer. |
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 |