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
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
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₃),
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₄)
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).
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)
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)
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)
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
Cited By (1)
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 |