DE3882487T2 - Vektorprozessor zur schnellen verarbeitung von rekursiven gleichungen. - Google Patents
Vektorprozessor zur schnellen verarbeitung von rekursiven gleichungen.Info
- Publication number
- DE3882487T2 DE3882487T2 DE88904270T DE3882487T DE3882487T2 DE 3882487 T2 DE3882487 T2 DE 3882487T2 DE 88904270 T DE88904270 T DE 88904270T DE 3882487 T DE3882487 T DE 3882487T DE 3882487 T2 DE3882487 T2 DE 3882487T2
- Authority
- DE
- Germany
- Prior art keywords
- circuit
- data
- data storage
- vector
- odd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000004364 calculation method Methods 0.000 claims description 155
- 238000009826 distribution Methods 0.000 claims description 45
- 239000000872 buffer Substances 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 9
- 238000000034 method Methods 0.000 claims description 3
- 238000013500 data storage Methods 0.000 claims 58
- 238000009795 derivation Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 10
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 8
- 230000007547 defect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/13—Differential equations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf ein Datenverarbeitungssystem, im besonderen auf einen Vektorprozessor zum Verarbeiten von rekursiven Gleichungen bei hoher Geschwindigkeit.
- Jüngste beachtliche Fortschritte in der Computertechnik haben die Operationsgeschwindigkeit von Supercomputern zum Beispiel durch das Vorsehen van Vektorprozessoren verbessert. Diese Vektorprozessoren werden verwendet, um wissenschaftliche Berechnungen, wie eine numerische Lösung von linearen Gleichungen oder eine numerische Lösung von Differentialgleichungen, etc., mit sehr hoher Geschwindigkeit auszuführen.
- Bei wissenschaftlich-technischen Berechnungen wird der folgende rekursive Operationsalgorithmus (oder die rekursive Gleichung) oft verwendet, um lineare Gleichungen erster Ordnung durch eine numerische Lösung oder Differentialgleichungen durch ein Differenzenverfahren, etc. zu lösen.
- ai = ai-1 x bi + ci ... (1)
- wobei i = 1, 2, 3, ... , n
- Dieser Operationsalgorithmus (1) zeigt die rekursive Beziehung zwischen einer Bezugsgröße ai und einer Bezugsgröße ai-1. Im allgemeinen ist die Operation der obigen rekursiven Gleichung nicht für Berechnungen durch den Vektorprozessor mit hoher Geschwindigkeit geeignet, da die Bezugsgröße ai-1 wieder verwendet wird, um die Bezugsgröße ai zu berechnen, d. h., der Term ai muß nach der Berechnung des Terms ai-1 berechnet werden. Deshalb können Vektorprozessoren nach Stand der Technik die rekursiven Gleichungen nicht mit hoher Geschwindigkeit berechnen. Der Vektorprozessor nach Stand der Technik, der für das Verarbeiten einer rekursiven Gleichung verwendet wird, wird später unter Bezugnahme auf die Zeichnungen beschrieben.
- Dennoch ist ein starker Bedarf an einem Berechnungsvermögen der rekursiven Gleichung bei hoher Geschwindigkeit unter Verwendung eines Vektorprozessors vorhanden, da viele rekursive Gleichungen auf dem Gebiet der wissenschaftlichtechnischen Berechnung genutzt werden.
- EP-A-0 167 061 von der Convex Computer Corporation offenbart einen Vektorverarbeitungscomputer mit den Merkmalen der Präambel des beiliegenden Anspruches 1.
- P. M. Kogge, "The Architecture of Pipelined Computers", Hemisphere Publishing Corp., New York, Seiten 181 bis 186, schlägt das Modifizieren einer rekursiven Gleichung vor, um zwei separate Gleichungen zu bilden, wobei jede alle ungeraden oder alle geraden Indexpunkte enthält, um so die Lösung durch Pipelineprozessoren zu erleichtern.
- Gemäß der vorliegenden Erfindung ist ein Vektorprozessor vorgesehen, wie in Anspruch 1 dargelegt.
- Eine Ausführungsform der vorliegenden Erfindung kann einen Vektorprozessor vorsehen, der rekursive Gleichungen bei hoher Geschwindigkeit verarbeiten kann.
- Eine Ausführungsform der vorliegenden Erfindung kann auch einen Vektorprozessor vorsehen, der einen einfachen Schaltungsaufbau hat, der leicht gebildet werden kann.
- Die rekursive Gleichung, ausgedrückt durch die Formel (1), kann zu der folgenden Formel wie gezeigt modifiziert werden, wenn eine Ableitung erster Ordnung angewandt wird:
- ai = ai-1 x bi + ci
- = {(ai-2 x bi-1) + ci-1} x bi + ci
- = ai-2 x bi-1 x bi + bi x ci-1 + ci
- .... (2)
- Wenn ein Index i gerade ist, zum Beispiel ein gerader Index k = 2, 4 und 6.
- a&sub2; = a&sub6; x b&sub1; x b&sub2; + b&sub2; x c&sub1; + c&sub2;
- a&sub4; = a&sub2; x b&sub3; x b&sub4; + b&sub4; x c&sub3; + c&sub4;
- a&sub6; = a&sub4; x b&sub5; x b&sub6; + b&sub6; x c&sub5; + c&sub6; .... (3)
- Wenn ein Index i ungerade ist, zum Beispiel ein ungerader Index j = 1, 3, 5 und 7.
- a&sub1; = a&sub0; x b&sub1; x 1 + 1 x c&sub1; + 0
- a&sub3; = a&sub1; x b&sub2; x b&sub3; + b&sub3; x c&sub2; + c&sub3;
- a&sub5; = a&sub3; x b&sub4; x b&sub5; + b&sub5; x c&sub4; + c&sub5;
- a&sub7; = a&sub5; x b&sub6; x b&sub7; + b&sub7; x c&sub6; + c&sub7; .... (4)
- Zu beachten ist, daß keine direkte rekursive Beziehung zwischen den Termen a&sub2; und a&sub0; , a&sub4; und a&sub2; , und a&sub6; und a&sub4; existiert. Ähnlich existiert keine direkte rekursive Beziehung zwischen den Termen a&sub3; und a&sub1; , a&sub5; und a&sub3; , und a&sub7; und a&sub5;. Demzufolge kann die Berechungsschaltung des ungeraden Terms ungerade Terme aj ohne Verzögerung durch die direkte Rekursion berechnen, und die Berechnungsschaltung des geraden Terms kann gerade Terme ak ohne Verzögerung durch die direkte Rekursion berechnen, und so zu einer Hochgeschwindigkeitsberechnung der rekursiven Gleichungen beitragen.
- Zu den Zeichnungen:
- Figur 1 ist ein Blockdiagramm eines Hochgeschwindigkeitsdatenverarbeitungssystems, das einen Vektorprozessor der vorliegenden Erfindung enthält;
- Figur 2 ist ein Blockdiagramm eines allgemeinen Vektorprozessors, der in dem in Fig. 1 gezeigten Datenverarbeitungssystem eingesetzt ist;
- Figur 3 ist ein Schaltungsdiagramm eines Vektorprozessors nach Stand der Technik;
- Figur 4 ist ein Operationszeitlagendiagramm des in Fig. 3 gezeigten Vektorprozessors;
- Figur 5 ist ein Schaltungsdiagramm einer Ausführungsform eines Vektorprozessors gemäß der vorliegenden Erfindung;
- Figur 6 ist ein Operationszeitlagendiagramm des in Fig. 5 gezeigten Vektorprozessors;
- Figur 7 ist ein Schaltungsdiagramm einer anderen Ausführungsform eines Vektorprozessors gemäß der vorliegenden Erfindung; und
- Figur 8 ist ein Operationszeitlagendiagramm des in Fig. 7 gezeigten Vektorprozessors.
- Bevor bevorzugte Ausführungsformen eines Vektorprozessors gemäß der vorliegenden Erfindung beschrieben werden, erfolgt unter Bezugnahme auf Fig. 1 die Beschreibung eines Hochgeschwindigkeitsdatenverarbeitungssystems, in dem der Vektorprozessor vorgesehen ist.
- In Fig. 1 besteht das Hochgeschwindigkeitsdatenverarbeitungssystem aus einer Hauptspeichereinheit (MSU) 1, einer Hauptspeichersteuereinheit (MSCU) 2, einer Eingangs/Ausgangs- (E/A-) Verarbeitungseinheit 3, einer Skalardatenverarbeitungseinheit (Skalarprozessor) 4 und einer Vektordatenverarbeitungseinheit (Vektorprozessor) 5. Die E/A- Verarbeitungseinheit 3 gibt zu berechnende Daten ein und gibt Daten aus, die im Skalarprozessor 4 und/oder Vektorprozessor 5 berechnet wurden. Die MSU 1 speichert die eingegebenen Daten und die berechneten Daten. Der Skalarprozessor 4 steuert alle Berechnungen. Wenn Operationsbefehle eine Skalaroperation betreffen, führt der Skalarprozessor 4 als solcher eine Skalardatenberechnung aus. Wenn Operationsbefehle eine Vektoroperation betreffen, überträgt der Skalarprozessor 4 die Steuerung auf den Vektorprozessor 5, um eine Vektorberechnung im Vektorprozessor 5 auszuführen. Der Vektorprozessor 5 wird nämlich durch den Skalarprozessor 4 getriggert, wenn die Vektorberechnung angefordert wird, und führt die Vektorberechnung aus. Die MSCU 2 steuert den Datenstrom zwischen der MSU 1, der E/A-Verarbeitungseinheit 3, dem Skalarprozessor 4 und dem Vektorprozessor 5.
- Eine allgemeine Konfiguration des in Fig. 1 gezeigten Vektorprozessors 5 ist in Fig. 2 gezeigt. In Fig. 2 enthält der Vektorprozessor 5 eine Vektorinstruktionssteuereinheit (VICU) 51 mit einem Dekoder und einem Steuerregister, eine Vektorspeicherzugriffseinheit (VSAU) 52 mit einem Vektoradreßgenerator, einem Zugriffsdatenprozessor und einer Vektorregistereinheit, eine Datenverteilungseinheit 54 und einen Vektorberechnungsteil mit einer Additions- und Subtraktionseinheit 55, einer Multiplikationseinheit 56 und einer Divisionseinheit 57. Die VICU 51 empfängt Datensteuerinstruktionen von dem Skalarprozessor 4. Das Steuerregister sichert die Steuerdaten der Datensteuerinstruktionen. Der Dekoder dekodiert die Datensteuerinstruktionen. Die VSAU 52 überträgt die Daten zwischen der MSU 1 und dem Vektorberechnungsteil durch die MSCU 2 und die Datenverteilungseinheit 54. Der Vektoradreßgenerator erzeugt Adressen zum Zugreifen auf Daten in der MSU 1 gemäß den dekodierten Instruktionen. Der Zugriffsdatenprozessor steuert Daten zwischen der MSU 1 und der Vektorregistereinheit. Einmal werden Daten, die für eine Vektorberechnung zu verwenden sind, in der Vektorregistereinheit gespeichert. Auch Daten, die im Vektorberechnungsteil berechnet wurden, werden in der Vektorregistereinheit gespeichert. Die Datenverteilungseinheit 40 verteilt die Daten von der Vektorregistereinheit, um dieselben der Additions-Subtraktionseinheit 55, der Multiplikationseinheit 56 und der Divisionseinheit 57 gemäß der dekodierten Instruktion zuzuführen. Die Einheiten 55, 56 und 57 sind operativ verbunden, um die Vektorberechnung auszuführen. Die vektorberechneten Daten werden in der Vektorregistereinheit durch die Datenverteilungseinheit 40 gespeichert, danach in der MSU 1 gespeichert.
- Der Stand der Technik bei einem Vektorprozessor wird unter Bezugnahme auf Fig. 3 und 4 beschrieben. Figur 3 zeigt ein elementares Schaltungsdiagramm zum Verarbeiten der oben erörterten rekursiven Gleichung. Figur 4 zeigt ein Operationszeitlagendiagramm des Vektorprozessors von Fig. 3.
- In Fig. 3 enthält der Vektorprozessor einen Selektor 30, die Register 14, 15 und 16, eine Multiplikationsschaltung 17, die Register 18 und 19, einen Addierer 110, ein Register 112 und eine Rückführungsleitung 31, die zwischen einem Ausgangsanschluß des Registers 112 und einem Eingangsanschluß des Selektors 30 verbunden ist. Diese Schaltungskomponenten sind ein Teil des in Fig. 3 gezeigten Vektorberechnungsteils. Dabei berechnet die Multiplikationsschaltung 17 einen Term: ai-1 x bi. Der Addierer 110 addiert ci und das Resultat von der Multiplikationsschaltung 17. Einerseits werden die addierten Daten zu der Multiplikationsschaltung 17 durch die Rückführungsleitung 31, den Selektor 30 und das Register 15 zurückgeführt, um für eine Berechnung eines nächsten Terms verwendet zu werden, und andererseits zu der Vektorregistereinheit ausgegeben. Der Selektor 30 gibt Anfangsvektordaten a&sub0; zu einer Anfangszeit aus. Die Register 14, 15 und 16, die Register 18 und 19 und das Register 112 sind jeweils zum Halten der Daten vorgesehen. Das Register 112 und die Rückführungsleitung 31 sind vorgesehen, um die berechneten Daten ai zu dem Register 15 zum Berechnen eines nächsten Terms ai+1 zurückzuführen.
- Zu beachten ist, daß, da die Subtraktion und Division nicht benötigt werden, um die rekursive Gleichung zu berechnen, eine Subtraktionsschaltung und eine Divisionsschaltung in Fig. 3 weggelassen sind.
- Unter Bezugnahme auf Fig. 4 wird die Operation des in Fig. 3 gezeigten Vektorprozessors ausführlicher beschrieben.
- Wenn eine ganze Zahl i, die einen Index der rekursiven Gleichung angibt, 1 ist, wird die rekursive Gleichung wie folgt ausgedrückt:
- a&sub1; = a&sub0; x b&sub1; + c&sub1;
- So werden beim Operationszyklus 01 die Anfangsdaten c&sub1; , a&sub0; und b&sub1; von der in Fig. 2 gezeigten Vektorregistereinheit in die Register 14, 15 und 16 geladen. Dann wird eine Multiplikation von (a&sub0; x b&sub1;) in der Multiplikationsschaltung 17 ausgeführt. Beim Operationszyklus 02 werden die in das Register 14 geladenen Daten c&sub1; zu dem Register 18 übertragen. Ebenfalls werden die in der Multiplikationsschaltung 17 berechneten Daten zu dem Register 19 übertragen. Danach addiert der Addierer 110 die Daten c&sub1; und die in dem Register 19 gespeicherten Daten, um das Resultat a&sub1; zu erhalten. Beim Operationszyklus 03 wird das Resultat a&sub1; in dem Register 112 gespeichert und dann zu der in Fig. 2 gezeigten Vektorregistereinheit durch die Datenverteilungseinheit 54 ausgegeben.
- Beim Operationszyklus 04 werden die nächsten Vektordaten b&sub2; und c&sub2; durch die Vektorregistereinheit in die Register 16 und 14 geladen. Zur gleichen Zeit werden die in dem Register 112 gespeicherten Daten a&sub1; durch die Rückführungsleitung 31 und den Selektor 30 in das Register 15 geladen. Während der Operationszyklen 04 - 06 wird eine Berechnung eines nächsten Terms: a&sub2; = a&sub1; x b&sub2; + c&sub2; ausgeführt.
- Ähnlich wird während der Operationszyklen 07 - 09 eine Berechnung eines Terms: a&sub3; = a&sub2; x b&sub3; + c&sub3; ausgeführt. Während der Operationszyklen 10 - 12 wird eine Berechnung eines Terms: a&sub4; = a&sub3; x b&sub4; + c&sub4; ausgeführt. Während der Operationszyklen 13 - 15 wird eine Berechnung eines Terms: a&sub5; = a&sub4; x b&sub5; + c&sub5; ausgeführt.
- Wie oben beschrieben, erfordert eine Berechnungszeit zum Erhalten eines Terms ai drei Operationszyklen. Wenn 100 Terme der Vektorverarbeitung erforderlich sind, werden 300 Operationszyklen benötigt, um die berechneten Daten aus 100 rekursiven Gleichungen zu erhalten. Demzufolge kann eine Hochgeschwindigkeitsoperation für das Berechnen der rekursiven Gleichungen, besonders bei rekursiven Gleichungen hoher Ordnung, durch den Vektorprozessor nach Stand der Technik nicht erreicht werden.
- Der obige Defekt hängt von einer Rekursionsbeziehung ab, bei der eine Berechnung eines Terms ai nach einer Berechnung von einem genau vorhergehenden Term ai-1 ausgeführt werden muß. So wird der Vektorprozessor nach Stand der Technik in den Leerlauf versetzt, um den genau vorhergehenden Term zu berechnen, bevor mit einer Berechnung eines nächsten Terms fortgefahren wird. Obwohl der Vektorprozessor die obige rekursive Gleichung korrekt löst, leidet der Vektorprozessor deshalb noch an dem oben beschriebenen Niedriggeschwindigkeitsbetrieb.
- Die vorliegende Erfindung löst den obigen Defekt durch Modifizieren der rekursiven Gleichung.
- Die oben beschriebene rekursive Gleichung kann wie folgt modifiziert werden:
- ai = ai-1 x bi + ci
- = (ai-2 x bi-1 + ci-1) x bi + ci
- = (ai-2 x bi-1 x bi) + bi x ci-1 + ci
- .... (2)
- wobei i eine ganze Zahl ist, die einen
- Index i = 1, 2, 3, ... , n angibt
- ai berechnete Vektordaten sind,
- bi Eingangsvektordaten sind und
- ci Eingangsvektordaten sind.
- Aus der Formel (2) wird erkannt, daß keine direkte rekursive Beziehung zwischen einem Term ai und einem anderen Term ai-2 besteht, wie die direkte rekursive Beziehung zwischen einem Term ai und einem anderen Term ai-1, die oben erörtert wurde. Gemäß der obigen Formel (2) wird eine Berechnung des Terms ai nicht durch eine Berechnung von einem genau vorhergehenden Term ai-1 beeinträchtigt. Der Term ai-2 wird schon zwei Schritte vor einer Berechnung des Terms ai berechnet, und so kann eine Berechnung des Terms ai sofort ausgeführt werden, ohne eine Verzögerung bei der Berechnung des genau vorhergehenden Terms ai-1. Aber das obige Konzept kann nicht realisiert werden, wenn ungerade Terme und gerade Terme nicht separat verarbeitet werden.
- Wenn ein Index i gerade ist, wird ein gerader Index k verwendet, und die obige Formel (2) wird wie folgt ausgedrückt:
- Wenn ein Index i ungerade ist, wird ein ungerader Index j verwendet, und die obige Formel (1) wird wie folgt ausgedrückt:
- Zu beachten ist, daß, da keine direkte rekursive Beziehung zum Beispiel zwischen den Termen a&sub0; und a&sub2; , den Termen a&sub2; und a&sub4; , den Termen a&sub4; und a&sub6; , den Termen a&sub1; und a&sub3; , oder den Termen a&sub3; und a&sub5; vorhanden ist, außer bei den Termen a&sub0; und a&sub1; , ein Paar von Termen, zum Beispiel a&sub3; und a&sub4;, parallel berechnet werden kann. Dies ermöglicht eine Hochgeschwindigkeitsvektordatenberechnung. Dennoch muß eine Berechnung der Terme a&sub3; und a&sub4; nach der Berechnung der Terme a&sub1; und a&sub2; erfolgen.
- Eine erste Ausführungsform eines Vektorprozessors gemäß der vorliegenden Erfindung wird unter Bezugnahme auf Fig. 5 spezifisch beschrieben.
- In Fig. 5 enthält der Vektorprozessor eine Datenverteilungsschaltung 40a und eine Vektordatenberechnungseinheit, die aus einer Berechnungsschaltung eines ungeraden Terms 10A und einer Berechnungsschaltung eines geraden Terms 10B besteht.
- Die Datenverteilungsschaltung 40a ist in der in Fig. 2 gezeigten Vektorregistereinheit, der Berechnungsschaltung eines ungeraden Terms 10A und der Berechnungsschaltung eines geraden Terms 10B vorgesehen, um einen Anfangsoperand (Daten) a&sub0; und Operanden (Eingangsvektordaten) bi und ci zu den Berechnungsschaltungen von ungeraden und geraden Termen 10A und 10B auf eine vorbestimmte Weise zuzuführen, die später erörtert wird. Die Datenverteilungsschaltung 40a empfängt auch ungerade Termdaten aj, die in der Berechnungsschaltung eines ungeraden Terms 10A berechnet wurden, und gerade Termdaten ak, die in der Berechnungsschaltung eines geraden Terms 10B berechnet wurden, und gibt dieselben an die Vektorregistereinheit aus.
- Die Datenverteilungsschaltung 40a enthält eine Selektorsteuerschaltung 41a, einen B-Puffer (B-BUFF) 42 eines First-in-first-out-Typ- (FIFO-) Puffers, zum Eingeben zuerst der Operanden bi und zum Ausgeben derselben zuerst, und einen C-Puffer (C-BUFF) 43, der auch ein FIFO-Puffer ist, zum Eingeben zuerst der Operanden ci und zum Ausgeben derselben zuerst. Die Datenverteilungsschaltung 40a enthält auch die Selektoren 46A, 47A, 48A, 46B, 47B und 48B. Die Datenverteilungsschaltung 40a enthält ferner einen Null- (0) Einsteller (nicht gezeigt) zum Ausgeben von Null an die Selektoren 46A und 46B, und einen Eins- (1) Einsteller (nicht gezeigt) zum Ausgeben von Eins an die Selektoren 47A, 48A, 47B und 48B.
- Die Berechnungsschaltung eines ungeraden Terms 10A zum Berechnen der ungeraden Terme aj enthält Erststufenregister 14A, 15A und 16A, eine Multiplikationsschaltung 17A, Zweitstufenregister 18A und 19A, einen Addierer 110A, ein Drittstufenregister 111A, ein Viertstufenregister 112A, eine erste Rückführungsleitung 21A, die zwischen einem Ausgangsanschluß des Registers 19A und einem Eingangsanschluß des Selektors 48A verbunden ist, und eine zweite Rückführungsleitung 22A, die zwischen einem Ausgangsanschluß des Registers 112A und einem Eingangsanschluß des Selektors 46A verbunden ist, und eine dritte Rückführungsleitung 23A, die zwischen einem Ausgangsanschluß des Registers 111A und einem Eingangsanschluß des Selektors 47A verbunden ist. Berechnete ungerade Terme aj werden von dem Register 111A zu der Vektorregistereinheit sequentiell ausgegeben.
- Die Register 111A und/oder 112A können in der Datenverteilungsschaltung 40a enthalten sein.
- Die Berechnungsschaltung eines geraden Terms 10B zum Berechnen der geraden Terme ak hat denselben Schaltungsaufbau wie jenen der Berechnungsschaltung eines ungeraden Terms 10A, da die Operationsalgorithmen an sich in beiden Fällen dieselben sind. Da sowohl die Berechnungsschaltungen eines ungeraden als auch eines geraden Terms 10A und 10B den identischen Aufbau haben können, sind deren Entwurf, Produktion und Montage auf einer gedruckten Leiterplatte (PCB) weitgehend vereinfacht. Beide Berechnungsschaltungen eines ungeraden und eines geraden Terms 10A und 10B sind unabhängig und gleichzeitig betriebsfähig.
- Es erfolgt die Beschreibung der Operation des in Fig. 5 gezeigten Vektorprozessors.
- Angenommen, daß die Operanden ai , ci und der Anfangsoperand a&sub0; in der in Fig. 1 gezeigten MSU 2 vorher gespeichert sind und der folgende Instruktionssatz im Skalarprozessor 4 erfaßt wird, der Skalarprozessor 4 die Steuerung der Operation auf den in Fig. 5 gezeigten Vektorprozessor überträgt, wobei der Vektorprozessor getriggert wird. TABELLE 1 VL A(0) TO VR00 VL B(I) TO VR01 VL C(i) TO VR02 VCAL A(i) = A(i-1) X B(I) + C(i) VST A(i) TO VR00
- wobei
- VL eine "Vektorlade-" Instruktion angibt,
- VCAL eine "Vektorberechnungs-" Instruktion angibt,
- VST eine "Vektorspeicher-" Instruktion angibt,
- A(i), B(i) und C(i) ai , bi und ci entsprechen, und
- VR00, VR01 und VR02 die Vektorregister 00, 01 und 02 in der in Fig. 2 gezeigten Vektorregistereinheit angeben. Zu beachten ist, daß in dieser Ausführungsform jedes Vektorregister eine Speicherkapazität von 100 Wörtern hat.
- Zuerst lädt die in Fig. 2 gezeigte Vektorspeicherzugriffseinheit (VSAU) 52 die Vektordaten a&sub0; , b&sub1; -- b&sub1;&sub0;&sub0; und c&sub1; -- c&sub1;&sub0;&sub0; , die in der Hauptspeichereinheit (MSU) 1 gespeichert sind, in die Vektorregister VR00, VR01 und VR02 der Vektorregistereinheit durch die Hauptspeichersteuereinheit (MSCU) 2, ansprechend auf die obige "Vektorlade-" Instruktion, unter der Steuerung der Vektorinstruktionssteuereinheit (VICU) 51, die in Fig. 2 gezeigt ist.
- Während dem obigen Laden der Vektordaten werden eine Berechnung der rekursiven Gleichung: ai = ai-1 x bi + ci in der in Fig. 5 gezeigten Schaltung und ein Speichern der berechneten Daten ai in das Vektorregister VR00 durchgeführt, ansprechend auf die obigen "Vektorberechnungs-" und "Vektorspeicher-" Instruktionen, unter der Steuerung der VICU 51.
- Die berechneten Daten ai in dem Vektorregister VR00 können während der obigen Operation in der MSU 1 gespeichert werden.
- Unter Bezugnahme auf Fig. 6 erfolgt jetzt die Beschreibung einer ausführlichen Operation der Schaltung von Fig. 5.
- Eine Berechnung besteht aus einer Anfangstermberechnung zum Berechnen der Anfangsterme a&sub1; und a&sub2; , und einer Normaltermberechnung zum Berechnen von nachfolgenden Termen, zum Beispiel a&sub3; und a&sub4; , a&sub5; und a&sub6; , etc.
- Zuerst wird die Anfangstermberechnung beschrieben.
- TABELLE 2 und TABELLE 3 unten zeigen Daten, die unter der Steuerung der Selektorsteuerschaltung 40b in die Register 14A, 15A, 16A und 111A und die Register 14B, 15B und 16B und 111B geladen sind. TABELLE 2 OP-ZYKLUS TABELLE 3 OP-ZYKLUS
- Die Datenverteilungsschaltung 40a lädt die Anfangsoperanden a&sub0; , b&sub1; und c&sub1; dahinein; dabei werden die Operanden b&sub1; und c&sub1; in B-BUFF 42 bzw. C-BUFF 43 gespeichert.
- Beim Operationszyklus 01 steuert die Selektorsteuerschaltung 41a die Selektoren 46A, 47A und 48A, um die Operanden c&sub1; , b&sub1; und a&sub0; an die Register 14A, 15A und 16A in der Berechnungsschaltung eines ungeraden Terms 10A auszugeben. Diese Register 14A, 15A und 16A speichern die Operanden c&sub1; , b&sub1; und a&sub0;. Zur gleichen Zeit steuert die Selektorsteuerschaltung 41a die Selektoren 46B, 47B und 48B, um die Operanden c&sub1; , b&sub1; und a&sub0; an die Register 14B, 15B und 16B in der Berechnungsschaltung eines geraden Terms 10B auszugeben. Diese Register 14B, 15B und 16B sichern auch die Operanden a&sub0; , b&sub1; und c&sub1;.
- In der Berechnungsschaltung eines ungeraden Terms 10A gibt das Register 16A den gesicherten Operanden a&sub0; an die Multiplikationsschaltung 17A als Multiplikand aus, und das Register 15A gibt den gesicherten Operanden b&sub1; an die Multiplikationsschaltung 17A als Multiplikator aus. So berechnet die Multiplikationsschaltung 17A (a&sub0; x b&sub1;).
- Zur gleichen Zeit gibt das Register 16B in der Berechnungsschaltung eines geraden Terms 10B den gesicherten Operanden a&sub0; an die Multiplikationsschaltung 17B als Multiplikand aus, und das Register 15B gibt den gesicherten Operanden b&sub1; an die Multiplikationsschaltung 17B als Multiplikator aus. Die Multiplikationsschaltung 17B berechnet (a&sub0; x b&sub1;).
- In der Berechnungsschaltung eines ungeraden Terms 10A werden die Daten (a&sub0; x b&sub1;), die in der Multiplikationsschaltung 17A berechnet wurden, zu dem Register 19A übertragen und darin gesichert. Die Daten c&sub1; , die im Register 14A gesichert wurden, werden auch zu dem Register 18A übertragen und darin gesichert.
- Zur gleichen Zeit werden in der Berechnungsschaltung eines geraden Terms 10B die Daten (a&sub0; x b&sub1;) die in der Multiplikationsschaltung 17B berechnet wurden, zu dem Register 19B übertragen und darin gesichert. Die Daten c&sub1; , die im Register 14B gesichert wurden, werden zu dem Register 18B übertragen.
- Danach addiert in der Berechnungsschaltung eines ungeraden Terms 10A der Addierer 110A die Daten (a&sub0; x b&sub1;) und die Daten c&sub1;. Als Resultat wird der folgende erste ungerade Term erhalten.
- a&sub1; = a&sub0; x b&sub1; + c&sub1;
- Ähnlich wird zur gleichen Zeit in der Berechnungsschaltung eines geraden Terms 10B der obige erste ungerade Term a&sub1; durch den Addierer 110B erhalten.
- In der Berechnungsschaltung eines ungeraden Terms 10A wird der berechnete erste ungerade Term a&sub1; zu dem Register 111A übertragen und darin gesichert.
- Ebenfalls wird in der Berechnungsschaltung eines geraden Terms 10B der berechnete erste ungerade Term a&sub1; zu dem Register 111B übertragen und darin gesichert.
- Während der obigen Operation lädt die Datenverteilungsschaltung 40a die Operanden (b&sub2; , b&sub3; , b&sub4;) und (c&sub2; , c&sub3; , c&sub4;) von den Vektorregistern VR01 bzw. VR02 in B-BUFF 42 und C-BUFF 43.
- Obwohl die Datenverteilungsschaltung 40a den ersten ungeraden Term a&sub1; erhalten hat, ist zu beachten, daß sie denselben zu dieser Zeit nicht an das Vektorregister VR00 ausgibt, da ein erster gerader Term a&sub2; nicht erhalten worden ist.
- Bis der erste gerade Term a&sub2; in der Berechnungsschaltung eines geraden Terms 10B erhalten wird, kooperieren die Berechnungsschaltung eines ungeraden Terms 10A und die Datenverteilungsschaltung 40a, um die Daten a&sub1; beizubehalten wie sie sind, und um Operanden vorzubereiten, die für das Berechnen eines zweiten ungeraden Terms a&sub3; verwendet werden.
- Als Operationszyklus 04 steuert die Selektorsteuerschaltung 41a die Selektoren 46A, 47A und 48A, um Nulldaten in das Register 14A, den berechneten ersten ungeraden Term a&sub1; in das Register 15A durch das Register 111A und die Rückführungsleitung 23A, und ein Datenteil von Eins (1) in das Register 16A zu setzen. Als Resultat berechnet die Multiplikationsschaltung 17A im Operationszyklus 04 (a&sub1; x 1), und im Operationszyklus 06 addiert der Addierer 110A die Daten (a&sub1; x 1) von dem Register 19A und die Daten von Null (0) von dem Register 18A. Es wird nämlich die folgende Blindberechnung ausgeführt.
- a&sub1; = (a&sub1; x 1) + 0
- Wahrend der obigen Operation steuert die Selektorsteuerschaltung 41a im Operationszyklus 05 die Selektoren 47A und 48A, um einen Operand b&sub3; in das Register 15A und einen Operand b&sub2; in das Register 16A zu setzen. Die Daten a&sub1; werden zu dem Register 111A im Operationszyklus 05 übertragen und werden in dem Register 112A im Operationszyklus 06 weiter gespeichert.
- Umgekehrt wird in der Berechnungsschaltung eines geraden Terms 10B der folgende erste gerade Term a&sub2; berechnet, wobei der erste ungerade Term a&sub1;, der darin berechnet und in dem Register 112B gespeichert wurde, verwendet wird.
- a&sub2; = (a&sub1; x b&sub2;) + c&sub2;
- Zu diesem Zweck steuert die Selektorsteuerschaltung 41a im Operationszyklus 04 die Selektoren 46B, 47B und 48B, um den Operand c&sub2; in das Register 14B, den ersten ungeraden Term a&sub1;, der in dem Register 111B gesichert wurde, in das Register 15B durch die Rückführungsleitung 23B, und den Operand b&sub2; in das Register 16B zu setzen. Im Operationszyklus 05 wird der erste gerade Term a&sub2; im Addierer 110B erhalten, und im Operationszyklus 06 wird der erste gerade Term a&sub2; in dem Register 111B gespeichert.
- Die Datenverteilungsschaltung 40a überträgt das Paar von ersten ungeraden und geraden Termen a&sub1; und a&sub2; zu dem Vektorregister VR00 von den Registern 111A und 111B.
- Somit ist die Anfangstermberechnung vollendet.
- Jetzt wird die Normaltermberechnung beschrieben.
- Zuerst wird eine Berechnung eines zweiten ungeraden Terms a&sub3; in der Berechnungsschaltung eines ungeraden Terms 10A beschrieben.
- Da der zweite ungerade Term a&sub3; durch die folgende Formel definiert ist, steuert die Selektorsteuerschaltung 41a die Selektoren 46A, 47A und 48A, um in den folgenden, in TABELLE 4 gezeigten Operationszyklen Daten in die Register 14A, 15A und 16A, wie in TABELLE 4 gezeigt, zu laden.
- a&sub3; = a&sub1; x (b&sub2; x b&sub3;) + b&sub3; x c&sub3; + c&sub3; TABELLE 4 OP-ZYKLUS
- Beim Operationszyklus 03 wird ein Multiplikationswert (b&sub3; x c&sub2;) in der Multiplikationsschaltung 17A erhalten. Beim Operationszyklus 05 wird eine Summe (b&sub3; x c&sub2;) + c&sub3; im Addierer 110A erhalten. Beim Operationszyklus 05 wird ein Multiplikationswert (b&sub2; x b&sub3;) in der Multiplikationsschaltung 17A erhalten. Beim Operationszyklus 07 wird ein Multiplikationswert (a&sub1; x b&sub2; x b&sub3;) in der Multiplikationsschaltung 17A erhalten. Beim Operationszyklus 08 werden die berechneten Daten (a&sub1; x b&sub2; x b&sub3;) dem Addierer 110A zugeführt. Der obige zweite ungerade Term a&sub3; wird im Addierer 111A erhalten. Der berechnete zweite ungerade Term a&sub3; wird im Register 111A im Operationszyklus 08 gesichert. Beim Operationszyklus 09 wird der zweite ungerade Term a&sub3; , der im Register 111A gesichert ist, zu dem Vektorregister VR00 übertragen und in dem Register 112A gesichert.
- Bei obigem werden die Daten a&sub1; , die in dem Register 112A gesichert sind, zu dem Register 15A durch die Rückführungsleitung 22A zurückgeführt. Auch die Daten (b&sub2; x b&sub3;), die in dem Register 19A gesichert sind, werden zu dem Register 16A durch die Rückführungsleitung 21A zurückgeführt. Die Summe (b&sub3; x c&sub2;) + c&sub3;, die in dem Register 111A gespeichert ist, wird zu dem Register 14A durch die Rückführungsleitung 23A zurückgeführt.
- Ähnlich wird der folgende zweite gerade Term a&sub4; in der Berechnungsschaltung eines geraden Terms 10B erhalten.
- a&sub4; = a&sub2; x b&sub3; x b&sub4; + b&sub4; x c&sub3; + c&sub4;
- Die Selektorsteuerschaltung 41a steuert auch die Selektoren 46B, 47B und 48B, um die folgenden, in TABELLE 5 gezeigten Daten in die Register 14B, 15B und 16B zu laden. TABELLE 5 OP-ZYKLUS
- Beim Operationszyklus 09 werden die ungeraden und geraden Terme a&sub3; und a&sub4; zu dem Vektorregister VR00 in der Vektorregistereinheit übertragen.
- Ähnlich werden bei den Operationszyklen 06 - 12 die folgenden dritten ungeraden und geraden Terme a&sub5; und a&sub6; in den Berechnungsschaltungen eines ungeraden und geraden Terms 10A und 10B erhalten.
- a&sub5; = a&sub3; x b&sub4; x b&sub5; + b&sub5; x c&sub4; + c&sub5;
- a&sub6; = a&sub4; x b&sub5; x b&sub6; + b&sub6; x c&sub5; + c&sub6;
- Um die obige Berechnung zu erreichen, steuert die Selektorsteuerschaltung 41a die Selektoren 46A, 47A, 48A, 46B, 47B und 48B, um die folgenden, in TABELLE 6 und TABELLE 7 gezeigten Daten in die Register 14A, 15A, 16A, 14B, 15B und 16B zu laden. TABELLE 6 OP-ZYKLUS TABELLE 7 OP-ZYKLUS
- Beim Operationszyklus 11 werden die ungeraden und geraden Terme a&sub5; und a&sub6; in den Addierern 111A und 111B erhalten und zu dem Vektorregister VR00 übertragen.
- Andere Vielzahlen von Paaren von ungeraden und geraden Termen werden auf dieselbe Weise wie oben beschrieben erhalten.
- Eine Berechnung eines Paares von ungeraden und geraden Termen erfordert nur drei Operationszyklen, außer eine Berechnung der ersten ungeraden und geraden Terme. Diese Zeit ist dieselbe wie jene des Vektorprozessors nach Stand der Technik. Gemäß dem in Fig. 5 gezeigten Vektorprozessor kann, außer der Anfangsberechnung, die zweifache Datenmenge in drei Operationszyklen erhalten werden. So verdoppelt der in Fig. 5 gezeigte Vektorprozessor die Berechnungsleistung im Vergleich zu dem Vektorprozessor nach Stand der Technik, wenn viele Terme der rekursiven Gleichungen zu berechnen sind.
- Eine andere Ausführungsform des Vektorprozessors gemäß der vorliegenden Erfindung wird unter Bezugnahme auf Fig. 7 beschrieben.
- In Fig. 7 enthält der Vektorprozessor eine Datenverteilungsschaltung 40a und eine Vektordatenberechnungseinheit, die aus einer Berechnungsschaltung eines ungeraden Terms 10AA und einer Berechnungsschaltung eines geraden Terms 10BB besteht.
- Die Datenverteilungsschaltung 40b ist in der in Fig. 2 gezeigten Vektorregistereinheit der Berechnungsschaltung eines ungeraden Terms 10AA und der Berechnungsschaltung eines geraden Terms 10BB vorgesehen, um einen Anfangsoperand a&sub0; und die Operanden (Eingangsdaten) bi und ci den Berechnungsschaltungen eines ungeraden und geraden Terms 10AA und 10BB auf vorbestimmte Weise, wie später beschrieben, zuzuführen. Die Datenverteilungsschaltung 40b empfängt auch ein Paar von ungeraden Termdaten aj , die in der Berechnungsschaltung eines ungeraden Terms 10AA berechnet wurden, und von geraden Termdaten ak , die in der Berechnungsschaltung eines geraden Terms 10BB berechnet wurden, und gibt dieselben an die Vektorregistereinheit aus.
- Die Datenverteilungsschaltung 40b enthält eine Selektorsteuerschaltung 41b, B-BUFF 42, C-BUFF 43, die Pufferregister 51A und 52A, die Selektoren 53A, 54A und 55A, die Register 51B und 52B und die Selektoren 53B, 54B und 55B. Die Datenverteilungsschaltung 40b enthält auch den Null- Einsteller und den Eins-Einsteller (nicht gezeigt).
- Die Berechnungsschaltung eines ungeraden Terms 10AA enthält die Erststufenregister 14A, 15A und 16A, die Multiplikationsschaltung 17A, die Zweitstufenregister 18A und 19A, den Addierer 110A, das Drittstufenregister 111A und eine Rückführungsleitung 24A, die zwischen einem Ausgangsanschluß des Registers 111A und einem Eingangsanschluß des Registers 51A verbunden ist.
- Die Berechnungsschaltung eines geraden Terms 10BB hat denselben Schaltungsaufbau wie jenen der Berechnungsschaltung eines ungeraden Terms 10AA.
- Der in Fig. 7 gezeigte Vektorprozessor berechnet die durch die Formel (2) definierte rekursive Gleichung. Die Berechnungsschaltung eines ungeraden Terms 10AA und die Datenverteilungsschaltung 40b kooperieren, um die durch die Formel (4) definierten rekursiven Gleichungen zu berechnen, und die Berechnungsschaltung eines geraden Terms 10BB und die Datenverteilungsschaltung 40b kooperieren auch, um die durch die Formel (3) definierten rekursiven Gleichungen zu berechnen.
- Die Operation des in Fig. 7 gezeigten Vektorprozessors wird unter Bezugnahme auf Fig 8 spezifisch beschrieben, wenn der in TABELLE 1 gezeigte Instruktionssatz erteilt wird.
- Die Operation der MSU 1, der MSCU 2, der VICU 51 und der VSAU 52, gezeigt in Fig. 2, wird weggelassen, da deren Operation im wesentlichen dieselbe wie jene oben beschriebene ist.
- In Fig. 8 bestehen die Kooperationszyklen aus den Anfangsoperationszyklen 01 - 08 und den Normaloperationszyklen 04 - 11, 10 - 14, etc.
- Die folgende TABELLE 8 und TABELLE 9 zeigen Daten in den Registern 14A, 15A, 16A und 111A und Daten in den Registern 14B, 15B, 16B und 111B während der Anfangsoperationszyklen. TABELLE 8 OP-ZYKLUS TABELLE 9 OP-ZYKLUS
- Die Selektorsteuerschaltung 41b steuert die Selektoren 53A, 54A und 55A, um Daten in die Register 14A, 15A und 16A zu laden, wie in TABELLE 8 gezeigt, und die Selektorsteuerschaltung 41b steuert die Selektoren 53B, 54B und 55B, um Daten in die Register 14B, 15B und 16B zu laden, wie in TABELLE 9 gezeigt.
- Zuerst wird eine Berechnung des Terms aj in der Berechnungsschaltung eines ungeraden Terms 10AA beschrieben.
- Die Daten 0, b&sub1; und 1 werden in die Register 14A, 15B und 16A geladen, und eine Berechnung von (b&sub1; x 1) wird in der Multiplikationsschaltung 17A ausgeführt.
- Die Daten 0 und (b&sub1; x 1) werden in die Register 18A und 19A geladen, und beide Daten werden in dem Addierer 110A addiert, um das Resultat (b&sub1; x 1 + 0) zu erhalten. Zur gleichen Zeit werden die Daten c&sub1; , b&sub1; und 0 in die Register 14A, 15A und 16A geladen, und eine Berechnung von (b&sub1; x 0) wird in der Multiplikationsschaltung 17A ausgeführt.
- Die Daten (b&sub1; x 1 + 0) werden in dem Register 111A gespeichert.
- Die Daten c&sub1; , die in dem Register 18A gespeichert sind, und die Daten (b&sub1; x 0), die in dem Register 19A gespeichert sind, werden im Addierer 110A addiert, um das Resultat (b&sub1; x 0 + c&sub1;) zu erhalten. Zur gleichen Zeit werden die Daten 0, a&sub0; und 1 in die Register 14A, 15A und 16A geladen, und eine Berechnung von (a&sub0; x 1) wird in der Multiplikationsschaltung 17A ausgeführt.
- Die Daten (b&sub1; x 1 + 0), die in dem Register 111A gespeichert sind, werden zu dem Register 51A übertragen. Die Daten 0, die in dem Register 18A gespeichert sind, und die Daten (a&sub0; x 1), die in dem Register 19A gespeichert sind, werden im Addierer 111A addiert, um das Resultat (a&sub0; x 1 + 0) zu erhalten.
- Die Daten (b&sub1; x 1 + c&sub1;) und (b&sub1; x 0 + c&sub1;) werden sequentiell in die Register 51A bzw. 52A geladen. Die Daten (a&sub0; x 1 + 0) werden in dem Register 111A gespeichert.
- Die Daten (a&sub0; x 1 + 0), die in dem Register 111A gespeichert sind, werden zu dem Register 15A übertragen, und die Daten (b&sub1; x 1 + 0), die in dem Register 52A gespeichert sind, werden zu dem Register 16A übertragen. Als Resultat werden die Daten (a&sub0; x 1 + 0) x (1 x b&sub1; + 0) in der Multiplikationsschaltung 17A erhalten.
- Die Daten (b&sub1; x 0 + c&sub1;), die in dem Register 51 gespeichert sind, werden in das Register 14A geladen.
- Die Daten (b&sub1; x 0 + c&sub1;) von dem Register 14A werden in das Register 18A geladen.
- Die Daten (b&sub1; x 0 + c&sub1;), die in dem Register 18A gespeichert sind, und die Daten (a&sub0; x 1 + 0) x (1 x b&sub1; + 0), die in dem Register 19A gespeichert sind, werden im Addierer 110A addiert, um die resultierenden Daten
- (a&sub0; x 1 + 0) x (1 x b&sub1; + 0) + (b&sub1; x 0 + c&sub1;)
- = a&sub0; x b&sub1; + c&sub1;
- = a&sub1;
- zu erhalten.
- Die berechneten Daten a&sub1; werden in dem Register 111A gespeichert und zu dem Vektorregister VR00 übertragen.
- Als nächstes erfolgt eine Beschreibung der Berechnung des Terms a&sub2; in der Berechnungsschaltung eines geraden Terms 10BB unter Bezugnahme auf TABELLE 9.
- Die Daten 0, b&sub2; und b&sub1; werden in die Register 14B, 15B und 16B geladen, und eine Berechnung von (b&sub1; x b&sub2;) wird in der Multiplikationsschaltung 17B ausgeführt.
- Die Daten 0 und (b&sub1; x b&sub2;) werden in die Register 18B und 19B geladen, und beide Daten werden in dem Addierer 110B addiert, um das Resultat (b&sub1; x b&sub2; + 0) zu erhalten. Zur gleichen Zeit werden die Daten c&sub2; , c&sub1; und b&sub2; in die Register 14B, 15B und 16B geladen, und eine Berechnung von (c&sub1; x b&sub1;) wird in der Multiplikationsschaltung 17B ausgeführt.
- Die Daten (b&sub1; x b&sub2; + 0) werden in dem Register 111B gespeichert. Die Daten c&sub2; , die in dem Register 18B gespeichert sind, und die Daten (c&sub1; x b&sub2;), die in dem Register 19B gespeichert sind, werden im Addierer 110B addiert, um das Resultat (c&sub1; x b&sub2; + c&sub2;) zu erhalten. Zur gleichen Zeit werden die Daten 0, a&sub1; und 1 in die Register 14B, 15B und 16B geladen, und eine Berechnung von (a&sub0; x 1) wird in der Multiplikationsschaltung 17B ausgeführt.
- Die Daten (b&sub1; x b&sub2; + 0), die in dem Register 111B gespeichert sind, werden zu dem Register 51B übertragen. Die Daten (c&sub1; x b&sub2; + c&sub2;) werden in dem Register 111B gespeichert. Die Daten 0, die in dem Register 18B gespeichert sind, und die Daten (a&sub0; x 1 + 0), die in dem Register 19B gespeichert sind, werden im Addierer 110B addiert, um das Resultat (a&sub0; x 1 + 0) zu erhalten.
- Die Daten (c&sub1; x b&sub2; + c&sub2;) und (b&sub1; x b&sub2; + 0) werden in die Register 51B bzw. 52B geladen. Die Daten (a&sub0; x 1 + 0) werden in dem Register 111B gespeichert.
- Die Daten (c&sub1; x b&sub2; + c&sub2;) werden in das Register 14B geladen.
- Die Daten, die in dem Register 111B gespeichert sind, werden zu dem Register 15B übertragen, und die Daten (b&sub1; x b&sub2; + 0), die in dem Register 52B gespeichert sind, werden zu dem Register 16B übertragen. Als Resultat werden die Daten (a&sub0; x 1 + 0) x (b&sub1; x b&sub2; + 0) in der Multiplikationsschaltung 17B erhalten.
- Die Daten (c&sub1; x b&sub2; + c&sub2;), die in dem Register 18B gespeichert sind, und die Daten (a&sub0; x 1 + 0) x (b&sub1; x b&sub2; + 0) werden im Addierer 110B addiert, um die resultierenden Daten zu erhalten.
- (a&sub0; x 1 + 0) x (b&sub1; x b&sub2; + 0) + (c&sub1; x b&sub2; + c&sub2;)
- = a&sub0; x b&sub1; x b&sub2; + b&sub2; x c&sub1; + c&sub2;
- = a&sub2;
- Die berechneten Daten a&sub2; werden in dem Register 111B gespeichert und zu dem Vektorregister VR00 zusammen mit den Daten a&sub1; übertragen.
- Die Anfangsberechnung ist beendet.
- Jetzt wird die Normalberechnung kurz beschrieben. Die Normalberechnung ist ähnlich der Anfangsberechnung, außer das Datenladen und -übertragen. So betrifft die folgende Beschreibung hauptsächlich das Datenladen.
- Während dieser Zyklen werden der ungerade Term a&sub3; und der gerade Term a&sub4; berechnet.
- Die folgende TABELLE 10 und TABELLE 11 zeigen Daten in den Registern 14A, 15B, 16A und 111A und Daten in den Registern 14B, 15B und 16B und 111B. TABELLE 10 OP-ZYKLUS TABELLE 11 OP-ZYKLUS
- Während dieser Operationszyklen werden der ungerade Term a&sub5; und der gerade Term a&sub6; berechnet.
- Die folgende TABELLE 12 und TABELLE 13 zeigen Daten in den Registern 14A, 15A, 16A und 111A und Daten in den Registern 14B, 15B, 16B und 111B. TABELLE 12 OP-ZYKLUS TABELLE 13 OP-ZYKLUS
- Andere Vielzahlen von Paaren von ungeraden und geraden Termen können in der gleichen Weise wie oben beschrieben berechnet werden.
- Die vorliegende Erfindung ist nicht durch die obigen Ausführungsformen begrenzt. Zum Beispiel wurden bei den obigen Ausführungsformen abgeleitete rekursive Gleichungen erster Ordnung, wie durch die Formeln (2) bis (4) ausgedrückt, berechnet. Wenn die wie durch die Formel (1) ausgedrückte rekursive Gleichung unter Verwendung einer Ableitung zweiter Ordnung modifiziert wird, wird die folgende Formel erhalten.
- ai = ai-1 x bi + ci
- = ai-2 x bi-1 x bi + bi x ci-1 + ci
- = ai-3 x bi-2 x bi-1 x b&sub1; + bi-2 x bi-1 x ci-2 + bi x ci-1 + ci
- ... (5)
- Offensichtlich zeigt die obige Formel, daß keine direkte rekursive Beziehung zwischen den Termen ai und ai-3 besteht.
- Wenn ein Index i ungerade ist, zum Beispiel ein ungerader Index j ist 3 und 5, wird die obige Formel wie folgt ausgedrückt:
- j = 3: a&sub3; = a&sub0; x b&sub1; x b&sub2; x b&sub3; + b&sub1; x b&sub2; x c&sub1; + b&sub3; x c&sub2; + c&sub3;
- ... (6)
- j = 5: a&sub5; = a&sub2; x b&sub3; x b&sub4; x b&sub5; + b&sub3; x b&sub4; x c&sub3; + b&sub5; x c&sub4; + c&sub5;
- ... (7)
- Wenn ein Index i gerade ist, zum Beispiel ein gerader Index k ist 4 und 6, wird die obige Formel wie folgt ausgedrückt:
- k = 4: a&sub4; = a&sub1; x b&sub2; x b&sub3; x b&sub4; + b&sub2; x b&sub3; x c&sub2; + b&sub4; x c&sub3; + c&sub4;
- ... (8)
- k = 6: a&sub6; = a&sub3; x b&sub4; x b&sub5; x b&sub1; + b&sub4; x b&sub5; x c&sub4; + b&sub6; x c&sub5; + c&sub6;
- ... (9)
- Aus den obigen Formeln (6) bis (9) können zwei ungerade Terme a&sub3; und a&sub5; und zwei gerade Terme a&sub4; und a&sub6; gleichzeitig zu derselben Zeitlage berechnet werden. So wird die Operationszeit weiter verkürzt. Bei dieser Ausführungsform ist die Berechnungsschaltung eines ungeraden Terms gebildet, um zwei angrenzende ungerade Terme, zum Beispiel a&sub3; und a&sub5; , in derselben Zeitlage zu berechnen. Ähnlich ist eine Berechnungsschaltung eines geraden Terms gebildet, um zwei angrenzende gerade Terme in derselben Zeitlage zu berechnen. Eine Datenverteilungsschaltung ist gebildet, um Daten zu den Berechnungsschaltungen eines ungeraden und geraden Terms zu verteilen, so daß die obigen Formeln berechnet werden können.
- Der Vektorprozessor der vorliegenden Erfindung kann bei einer Reihe von Datenverarbeitungssystemen eingesetzt werden.
- 10A, 10AA ... Berechnungsschaltung eines ungeraden Terms
- 10B, 10BB ... Berechnungsschaltung eines geraden Terms
- 14A - 16A ... Register
- 14B - 16B ... Register
- 17A, 17B ... Multiplikationsschaltung
- 18A, 19A ... Register
- 18B, 19B ... Register
- 21A, 22B ... Rückführungsleitung
- 21B, 22B ... Rückführungsleitung
- 40a, 40b ... Datenverteilungsschaltung
- 41a, 41b ... Selektorsteuerschaltung
- 42 ... B-Puffer
- 43 ... C-Puffer
- 46A - 48A ... Selektor
- 46B - 48B ... Selektor
- 51A, 52A ... Register
- 51B, 52B ... Register
- 53A - 55A ... Selektor
- 53B - 55B ... Selektor
- 110A, 110B ... Addierer
- 111A, 112A ... Register
- 111B, 112B ... Register
Claims (16)
1. Ein Vektorprozessor mit:-
einer Vektorinstruktionssteuereinheit (51)
zum Steuern von Vektorinstruktionen, einer
Vektorspeicherzugriffseinheit (52) zum Zugreifen auf Eingangsvektordaten
und berechnete Daten für eine Hauptspeichereinheit, einer
Vektorberechnungseinheit zum Berechnen von Vektordaten unter
der Steuerung der Vektorinstruktionseinheit, und einer
Datenverteilungseinheit (54) zum Übertragen von Daten
zwischen der Vektordatenzugriffseinheit und der
Vektorberechnungseinheit,
bei dem die genannte Vektorberechnungseinheit
wenigstens eine ungerade Berechnungsschaltung (10A, 10AA)
und wenigstens eine gerade Berechnungsschaltung (10B, 10BB)
und eine Datenverteilungseinheit (40a, 40b) enthält, die mit
der genannten Vektorberechnungseinheit operativ verbunden
und kooperativ ist;
jede ungerade Berechnungsschaltung eine
Addierschaltung (110A), eine Multiplikationsschaltung (17A),
wenigstens eine Datenspeicherungsschaltung (112A, 51A, 52A)
zum Halten eines berechneten Resultats, und wenigstens eine
Rückführungsleitung (21A, 22A, 23A, 24A) zum Zurückführen
des berechneten Resultats zu der genannten
Multiplikationsschaltung und/oder der genannten Addierschaltung durch die
genannte Datenspeicherungsschaltung enthält,
jede gerade Berechnungsschaltung eine andere
Addierschaltung (110B), eine andere Multiplikationsschaltung
(17B), wenigstens eine andere Datenspeicherungsschaltung
(112B, 51B, 52B), die ein anderes berechnetes Resultat hält,
und wenigstens eine andere Rückführungsleitung (21B, 22B,
23B, 24B) zum Zurückführen des berechneten anderen Resultats
zu der genannten anderen Multiplikationsschaltung und/oder
der genannten anderen Addierschaltung durch die genannte
andere Datenspeicherungsschaltung enthält, und
die genannte Datenverteilungseinheit
Auswahlmittel zum Auswählen wenigstens von Eingangsoperanden für
die genannten ungeraden und geraden Berechnungsschaltungen
und eine Selektorsteuereinheit (41a, b) zum Steuern der
genannten Auswahlmittel enthält, um die ausgewählten Daten
den genannten ungeraden und geraden Berechnungsschaltungen
zuzuführen;
dadurch gekennzeichnet, daß:-
die genannte Vektorberechnungseinheit
angeordnet ist, um rekursive Gleichungen ai = ai-1 x bi + ci
in modifizierter Form zu verarbeiten, wobei die oder jede
genannte ungerade Berechnungsschaltung gebildet ist, um
ungerade Terme der genannten modifizierten rekursiven
Gleichung zu berechnen, und die oder jede genannte gerade
Berechnungsschaltung gebildet ist, um gerade Terme der
genannten modifizierten rekursiven Gleichung zu berechnen;
die genannte Datenverteilungseinheit ferner
einen ersten Dateneinsteller zur Ausgabe von Null, einen
zweiten Dateneinsteller zur Ausgabe von Eins, erste bis
sechste Selektoren (46A, 47A, 48A, 46B, 47B, 48B) enthält,
die die genannten Auswahlmittel bilden, zum Auswählen unter
den Eingangsoperanden (ai , bi), die zum Berechnen der
genannten rekursiven Gleichung verwendet werden, den
konstanten Daten 0 und 1 von den genannten Einstellern und
den berechneten ungeraden und geraden Termen, und bei dem
die genannte Selektorsteuereinheit (41a, 41b) die genannten
Selektoren auf vorbestimmte Weise steuert, die durch die
genannte modifizierte rekursive Gleichung definiert ist;
bei dem bei einer Anfangsoperationszeit die oder
jede genannte Berechnungsschaltung eines ungeraden Terms und
die genannte Datenverteilungsschaltung, und die oder jede
genannte Berechnungsschaltung eines geraden Terms und die
genannte Datenverteilungsschaltung kooperieren, um
Anfangsterme der genannten modifizierten rekursiven
Gleichung unter verwendung der konstanten Daten 0 und 1 von
den genannten Einstellern zu berechnen, wodurch für eine
Ableitung erster Ordnung die genannte Anfangstermberechnung
durch die genannte Berechnungsschaltung eines ungeraden
Terms und die genannte Berechnungsschaltung eines geraden
Terms erreicht wird, die beide den Term a&sub1; = a&sub0; x b&sub1; + c&sub1; zu
einer ersten Operationszeit berechnen und zu einer zweiten
Operationszeit die genannte Berechnungsschaltung eines
geraden Terms a&sub2; = a&sub1; x b&sub2; + c&sub2; berechnet, während die
genannte Berechnungsschaltung eines ungeraden Terms eine
Blindberechnung ausführt, so daß der Wert von a&sub1; unverändert
bleibt.
2. Ein Vektorprozessor nach Anspruch 1, bei dem die
genannten Berechnungsschaltungen eines ungeraden und geraden
Terms unabhängig und gleichzeitig betriebsfähig sind, um
wenigstens ein Paar von angrenzenden ungeraden und geraden
Termen (ai , ai+1) der genannten rekursiven Gleichung zu
derselben Operationszeit zu berechnen.
3. Ein Vektorprozessor nach Anspruch 2, bei dem die
genannte Datenverteilungseinheit (40a, 40b) einen ersten
Puffer des First-in-first-out-Typs (42) umfaßt, zum Eingeben
und Ausgeben einer Vielzahl der genannten ersten Operanden
(bi) als Quellenmultiplikatoren und/oder -multiplikanden,
und einen zweiten Puffer des First-in-first-out-Typs (43),
zum Eingeben und Ausgeben einer Vielzahl der genannten
zweiten Operanden (ci) als Quellensummanden.
4. Ein Vektorprozessor nach Anspruch 3, bei dem die
genannte modifizierte rekursive Gleichung durch die folgende
Formel bei Ableitung erster Ordnung ausgedrückt wird,
ai = ai-2 x bi-1 x bi + bi x ci-1 + ci
.... (1)
wobei die genannte Berechnungsschaltung eines
ungeraden Terms die folgenden Formeln berechnet,
a&sub1; = a&sub0; x b&sub1; + c&sub1;
aj = aj-2 x bj-1 x bj + bj x cj-1 + cj
.... (2)
wobei j eine ungerade ganze Zahl ist,
j = 1, 3, ... , n
und eine einzelne genannte
Berechnungsschaltung eines geraden Terms vorgesehen ist, um die folgende
Formel zu berechnen:
ak = ak-2 x bk-1 x bk + bk x ck-1 + ck
.... (3)
wobei k eine gerade ganze Zahl ist,
k = 2, 4, ... , n+1
5. Ein Vektorprozessor nach Anspruch 4, bei dem die
genannte Berechnungsschaltung eines ungeraden Terms erste
bis dritte Rückführungsleitungen (21A, 22A, 23A) vorsieht,
und so gebildet ist, daß
(a) die genannte Addierschaltung (110A)
einen Summand von dem genannten ersten Selektor (46A)
empfängt,
(b) die genannte Multiplikationsschaltung
(17A) einen Multiplikator und einen Multiplikand von den
genannten zweiten und dritten Selektoren (47A, 48A)
empfängt,
(c) die genannte Addierschaltung (110A)
Daten empfängt, die in der genannten
Multiplikationsschaltung multipliziert wurden,
(d) die genannte Datenspeicherungsschaltung
(112A) Daten empfängt, die in der genannten Addierschaltung
addiert wurden,
(e) der genannte erste Selektor (46A) die
Konstante von Null, den genannten zweiten Operand (ci) von
dem genannten zweiten Puffer (43) und die genannten Daten,
die in der genannten Datenspeicherungsschaltung (112A)
gespeichert sind, durch die genannte zweite
Rückführungsleitung (22A) empfängt,
(f) der genannte zweite Selektor (47A) die
genannte Konstante von Eins, den genannten ersten Operand
(bi) und die genannten addierten Daten durch die genannte
dritte Rückführungsleitung (23A) empfängt, und
(g) der genannte dritte Selektor (48A) die
genannte Konstante von Eins, Anfangsdaten (a&sub0;), die
genannten ersten und zweiten Operanden von den genannten ersten
und zweiten Puffern (42, 43) und die genannten
multiplizierten Daten von der genannten Multiplikationsschaltung (17A)
durch die genannte erste Rückführungsleitung (21A) empfängt,
und
die genannte Berechnungsschaltung eines
geraden Terms andere erste bis dritte Rückführungsleitungen
(21B, 22B, 23B) umfaßt und so gebildet ist, daß
(h) die genannte andere Addierschaltung
(110B) einen Summand von dem genannten vierten Selektor
(46B) empfängt,
(i) die genannte andere
Multiplikationsschaltung (17B) einen Multiplikator und einen Multiplikand
von den genannten fünften und sechsten Selektoren (47B, 48B)
empfängt,
(j) die genannte andere Addierschaltung
(110B) Daten empfängt, die in der genannten anderen
Multiplikationsschaltung multipliziert wurden,
(k) die genannte andere
Datenspeicherungsschaltung (112B) Daten empfängt, die in der genannten
anderen Addierschaltung addiert wurden,
(l) der genannte vierte Selektor (46B) die
genannte Konstante von Null, den genannten zweiten Operand
von dem genannten zweiten Puffer (43) und die genannten
Daten, die in der genannten Datenspeicherungsschaltung
(112B) gespeichert sind, durch die genannte zweite
Rückführungsleitung (22B) empfangt,
(m) der genannte fünfte Selektor (47B) die
genannte Konstante von Eins, den genannten ersten Operand
(bi) und die genannten addierten Daten durch die genannte
andere dritte Rückführungsleitung (23B) empfängt, und
(n) der genannte sechste Selektor (48B) die
genannte Konstante von Eins, die genannten Anfangsdaten
(a&sub0;), die genannten ersten und zweiten Operanden (bi , ci)
von den genannten ersten und zweiten Puffern (42, 43),
Leitung (22B), und die genannten multiplizierten Daten von
der genannten Multiplikationsschaltung (17B) durch die
genannte andere erste Rückführungsleitung (21B) empfängt.
6. Ein Vektorprozessor nach Anspruch 5, bei dem die
genannte Berechnungsschaltung eines ungeraden Terms (10A)
umfaßt
eine erste
Erststufen-Datenspeicherungsschaltung (14A), die mit dem genannten ersten Selektor (46A)
verbunden ist, zum temporären Speichern von Daten davon,
zweite und dritte
Erststufen-Datenspeicherungsschaltungen (15A, 16A), die zwischen den genannten
zweiten und dritten Selektoren (47A, 48A) und der genannten
Multiplikationsschaltung (17A) verbunden sind, zum
temporären Speichern von Daten von den genannten zweiten und
dritten Selektoren,
eine erste
Zweitstufen-Datenspeicherungsschaltung (18A), die zwischen der genannten ersten
Erststufen-Datenspeicherungsschaltung und der genannten
Addierschaltung verbunden ist, zum temporären Speichern von
Daten von der genannten ersten
Erststufen-Datenspeicherungsschaltung,
eine zweite
Zweitstufen-Datenspeicherungsschaltung
(19A), wovon ein Eingangsanschluß mit der
genannten Multiplikationsschaltung verbunden ist und wovon ein
Ausgangsanschluß mit der genannten Addierschaltung und der
genannten ersten Rückführungsleitung verbunden ist, welche
zweite Zweitstufen-Datenspeicherungsschaltung Daten, die in
der genannten Multiplikationsschaltung multipliziert wurden,
temporär speichert, und
eine Drittstufen-Datenspeicherungsschaltung
(111A), die zwischen der genannten Addierschaltung und der
genannten Datenspeicherungsschaltung (112A) und mit der
genannten dritten Rückführungsleitung verbunden ist, zum
temporären Speichern von Daten, die in der genannten
Addierschaltung addiert wurden, und
die genannte Berechnungsschaltung eines
geraden Terms (10B) umfaßt
eine andere erste
Erststufen-Datenspeicherungsschaltung (14B), die mit dem genannten anderen ersten
Selektor (46B) verbunden ist, zum temporären Speichern von
Daten davon,
andere zweite und dritte
Erststufen-Datenspeicherungsschaltungen (15B, 16B), die zwischen den
genannten anderen zweiten und dritten Selektoren (47B, 48B) und
der genannten anderen Multiplikationsschaltung (17B)
verbunden sind, zum temporären Speichern von Daten von den
genannten anderen zweiten und dritten Selektoren,
eine andere erste
Zweitstufen-Datenspeicherungsschaltung (18B), die zwischen der genannten anderen
ersten Erststufen-Datenspeicherungsschaltung und der
genannten anderen Addierschaltung verbunden ist, zum temporären
Speichern von Daten von der genannten anderen ersten
Erststufen-Datenspeicherungsschaltung,
eine andere zweite
Zweitstufen-Datenspeicherungsschaltung (19B), wovon ein Eingangsanschluß mit der
genannten anderen Multiplikationsschaltung verbunden ist und
wovon ein Ausgangsanschluß mit der genannten anderen
Addierschaltung und der genannten anderen ersten
Rückführungsleitung verbunden ist, welche andere zweite
Zweitstufen-Datenspeicherungsschaltung Daten temporär speichert, die in der
genannten anderen Multiplikationsschaltung multipliziert
wurden, und
eine andere
Drittstufen-Datenspeicherungsschaltung (111B), die zwischen der genannten anderen
Addierschaltung und der genannten anderen
Datenspeicherungsschaltung (112A) und mit der genannten anderen dritten
Rückführungsleitung verbunden ist, zum temporären Speichern von
Daten, die in der genannten anderen Addierschaltung addiert
wurden.
7. Ein Vektorprozessor nach Anspruch 6, bei dem,
bei einer Anfangsoperationszeit,
die genannte Berechnungsschaltung eines
ungeraden Terms und die genannte Datenverteilungsschaltung
kooperieren, um die folgenden Terme während zweier
Operationszeiten zu berechnen,
a&sub1; = a&sub0; x b&sub1; + c&sub1;
a&sub1; = a&sub1; x 1 + 0
die genannte Berechnungsschaltung eines
geraden Terms und die genannte Datenverteilungsschaltung
kooperieren, um die folgenden Terme während der genannten
zwei Operationszeiten zu berechnen,
a&sub1; = a&sub0; x b&sub1; + c&sub1;
a&sub2; = a&sub1; x b&sub2; + c&sub2;
bei einer Normaloperationszeit nach der
genannten Anfangsoperationszeit,
die genannte Berechnungsschaltung eines
ungeraden Terms und die genannte Datenverteilungsschaltung
kooperieren, um jeden ungeraden Term der folgenden Formel in
jeder Operationszeit zu berechnen,
aj = aj-2 x bj-1 x bj + bj x cj-1 + cj
wobei j = 3, 5 , ....., n
und die genannte Berechnungsschaltung eines
geraden Terms und die genannte Datenverteilungsschaltung
kooperieren, um jeden geraden Term der folgenden Formel in
der genannten Operationszeit zu berechnen.
ak = ak-2 x bk-1 x bk + bk x ck-1 + ck
wobei k = 4, 6, ....., n+1
8. Ein Vektorprozessor nach Anspruch 7, bei dem jede
genannte Operations zeit eine Vielzahl von Operationszyklen
des genannten Vektorprozessors umfaßt,
genannte Operationszeiten zum Berechnen jedes
Terms identisch sind, und
angrenzende Operationszeiten zum Berechnen
von angrenzenden Termen teilweise überlappt sind.
9. Ein Vektorprozessor nach Anspruch 8, bei dem die
genannte Datenverteilungseinheit (40a) Daten von den
genannten Drittstufen- und den genannten anderen Drittstufen-
Datenspeicherungsschaltungen (110A, 110B) empfängt und die
genannten Daten an die genannte
Vektorspeicherungszugriffseinheit (52) ausgibt.
10. Ein Vektorprozessor nach Anspruch 9, bei dem die
genannte Vektorspeicherungszugriffseinheit eine
Vektorregistereinheit zum temporären Speichern der genannten
Eingangsoperanden und der genannten berechneten ungeraden
und geraden Terme umfaßt, und
die genannte Datenverteilungsschaltung die
genannten Eingangsoperanden und die genannten berechneten
ungeraden und geraden Terme überträgt.
11. Ein Vektorprozessor nach Anspruch 4, bei dem die
genannte Berechnungsschaltung eines ungeraden Terms eine
Rückführungsleitung (24A) und erste und zweite
Datenspeicherungsschaltungen (51A, 52A) umfaßt, die seriell verbunden
sind, zum Speichern von berechneten ungeraden Termen, die
durch die genannte Rückführungsleitung (24A) zugeführt
wurden, und so gebildet ist, daß
(a) die genannte Addierschaltung (110A)
einen Summand von dem genannten ersten Selektor (53A)
empfängt,
(b) die genannte Multiplikationsschaltung
(17A) einen Multiplikator und einen Multiplikand von den
genannten zweiten und dritten Selektoren (54A, 55A)
empfängt,
(c) die genannte Addierschaltung (110A)
Daten empfängt, die in der genannten
Multiplikationsschaltung multipliziert wurden,
(d) die genannte erste
Datenspeicherungsschaltung (51A) Daten empfängt, die in der genannten
Addierschaltung addiert wurden,
(e) die genannte zweite
Datenspeicherungsschaltung (52A) Daten von der genannten ersten
Datenspeicherungsschaltung empfängt,
(f) der genannte erste Selektor (53A) die
genannte Konstante von Null, den genannten zweiten Operand
(ci) von dem genannten zweiten Puffer (43) und Daten von der
genannten ersten Datenspeicherungsschaltung empfängt,
(g) der genannte zweite Selektor (54A) die
genannte Konstante von Null, Anfangsdaten (a&sub0;), die
genannten ersten und zweiten Operanden (bi , ci) und die genannten
Daten, die in der genannten Addierschaltung addiert wurden,
durch die genannte Rückführungsleitung empfängt, und
(h) der genannte dritte Selektor (55A) die
genannte Konstante von Eins, den genannten ersten Operand
von dem genannten ersten Puffer (42) und die genannten
Daten, die in der genannten zweiten
Datenspeicherungsschaltung (52A) gespeichert sind, empfängt,
die genannte Berechnungsschaltung eines
geraden Terms eine andere Rückführungsleitung (24B) und
andere erste und zweite Datenspeicherungsschaltungen (51B,
52B) umfaßt, die seriell verbunden sind, zum Speichern der
genannten berechneten geraden Terme, die durch die genannte
andere Rückführungsleitung (24B) zugeführt wurden, und so
gebildet ist, daß
(i) die genannte andere Addierschaltung
(110B) einen Summand von dem genannten vierten Selektor
(53B) empfängt,
(j) die genannte andere Multiplikations-
Schaltung (17B) einen Multiplikator und einen Multiplikand
von den genannten fünften und sechsten Selektoren (54B, 55B)
empfängt,
(k) die genannte andere Addierschaltung
(110B) Daten empfängt, die in der genannten anderen
Multiplikationsschaltung multipliziert wurden,
(l) die genannte andere erste
Datenspeicherungsschaltung (51B) Daten empfängt, die in der genannten
anderen Addierschaltung addiert wurden,
(m) die genannte andere zweite
Datenspeicherungsschaltung (52B) Daten von der genannten anderen ersten
Datenspeicherungsschaltung empfängt,
(n) der genannte vierte Selektor (53B) die
genannte Konstante von Null, den genannten zweiten Operand
(ci) von dem genannten zweiten Puffer (43) und Daten von der
genannten ersten Datenspeicherungsschaltung empfängt,
(o) der genannte fünfte Selektor (54B) die
genannte Konstante von Null, die genannten Anfangsdaten
(a&sub0;), die genannten ersten und zweiten Operanden (bi , ci)
und die genannten Daten, die in der genannten anderen
Addierschaltung addiert wurden, durch die genannte andere
Rückführungsleitung empfängt, und
(p) der genannte sechste Selektor (55B) die
genannte Konstante von Eins, den genannten ersten Operand
von dem genannten ersten Puffer (42) und die genannten Daten
empfängt, die in der genannten anderen zweiten
Datenspeicherungsschaltung (52B) gespeichert sind.
12. Ein Vektorprozessor nach Anspruch 11, bei dem die
genannte Berechnungsschaltung eines ungeraden Terms (10AA)
umfaßt
eine erste
Erststufen-Datenspeicherungsschaltung (14A), die mit dem genannten ersten Selektor (53A)
verbunden ist, zum temporären Speichern von Daten davon,
zweite und dritte
Erststufen-Datenspeicherungsschaltungen (15A, 16A), die zwischen den genannten
zweiten und dritten Selektoren (54A, 55A) und der genannten
Multiplikationsschaltung (17A) verbunden sind, zum
temporären Speichern von Daten von den genannten zweiten und
dritten Selektoren,
eine erste
Zweitstufen-Datenspeicherungsschaltung (18A), die zwischen der genannten ersten
Erststufen-Datenspeicherungsschaltung und der genannten
Addierschaltung verbunden ist, zum temporären Speichern von
Daten von der genannten ersten
Erststufen-Datenspeicherungsschaltung,
eine zweite
Zweitstufen-Datenspeicherungsschaltung (19A), wovon ein Eingangsanschluß mit der
genannten Multiplikationsschaltung verbunden ist und wovon ein
Ausgangsanschluß mit der genannten Addierschaltung verbunden
ist, welche zweite Zweitstufen-Datenspeicherungsschaltung
Daten, die in der genannten Multiplikationsschaltung
multipliziert wurden, temporär speichert, und
eine Drittstufen-Datenspeicherungsschaltung
(111A), die zwischen der genannten Addierschaltung und der
genannten Datenspeicherungsschaltung (51A) durch die
genannte Rückführungsleitung verbunden ist, zum temporären
Speichern von Daten, die in der genannten Addierschaltung
addiert wurden, und
die genannte Berechnungsschaltung eines geraden
Terms (10B) umfaßt
eine andere erste
Erststufen-Datenspeicherungsschaltung (14B), die mit dem genannten anderen ersten
Selektor (53B) verbunden ist, zum temporären Speichern von
Daten davon,
andere zweite und dritte
Erststufen-Datenspeicherungsschaltungen (15B, 16B), die zwischen den
genannten anderen zweiten und dritten Selektoren (54B, 55B) und
der genannten anderen Multiplikationsschaltung (17B)
verbunden sind, zum temporären Speichern von Daten von den
genannten anderen zweiten und dritten Selektoren,
eine andere erste
Zweitstufen-Datenspeicherungsschaltung (18B), die zwischen der genannten anderen
ersten Erststufen-Datenspeicherungsschaltung und der
genannten anderen Addierschaltung verbunden ist, zum
temporären Speichern von Daten von der genannten anderen
ersten Erststufen-Datenspeicherungsschaltung,
eine andere zweite
Zweitstufen-Datenspeicherungsschaltung (19B), wovon ein Eingangsanschluß mit der
genannten anderen Multiplikationsschaltung verbunden ist und
wovon ein Ausgangsanschluß mit der genannten anderen
Addierschaltung verbunden ist, welche andere zweite
Zweitstufen-Datenspeicherungsschaltung Daten, die in der genannten
anderen Multiplikationsschaltung multipliziert wurden,
temporär speichert, und
eine andere
Drittstufen-Datenspeicherungsschaltung (111B), die zwischen der genannten anderen
Addierschaltung und der genannten anderen
Datenspeicherungsschaltung (51B) durch die genannte andere Rückführungsleitung
verbunden ist, zum temporaren Speichern von Daten, die in
der genannten anderen Addierschaltung addiert wurden.
13. Ein Vektorprozessor nach Anspruch 12, bei dem,
bei einer Anfangsoperationszeit,
die genannte Berechnungsschaltung eines
ungeraden Terms und die genannte Datenverteilungsschaltung
kooperieren, um die folgenden Terme während zweier
Operationszeiten zu berechnen,
a&sub1; = a&sub0; x b&sub1; + c&sub1;
a&sub1; = a&sub1; x 1 + 0
die genannte Berechnungsschaltung eines
geraden Terms und die genannte Datenverteilungsschaltung
kooperieren, um die folgenden Terme während der genannten
zwei Operationszeiten zu berechnen,
a&sub1; = a&sub0; x b&sub1; + c&sub1;
a&sub2; = a&sub1; x b&sub2; + c&sub2;
bei einer Normaloperationszeit nach der
genannten Anfangsoperationszeit,
die genannte Berechnungsschaltung eines
ungeraden Terms und die genannte Datenverteilungsschaltung
kooperieren, um jeden ungeraden Term der folgenden Formel in
jeder Operationszeit zu berechnen,
aj = aj-2 x bj-1 x bj + bj x cj-1 + cj
wobei j = 3, 5,....., n
und die genannte Berechnungsschaltung eines
geraden Terms und die genannte Datenverteilungsschaltung
kooperieren, um jeden geraden Term der folgenden Formel in
der genannten Operationszeit zu berechnen.
ak = ak-2 x bk-1 x bk + bk x ck-1 + ck
wobei k = 4, 6, ....., n+1
14. Ein Vektorprozessor nach Anspruch 13, bei dem jede
genannte Operationszeit eine Vielzahl von Operationszyklen
des genannten Vektorprozessors umfaßt,
genannte Operationszeiten für die Berechnung
jedes Terms identisch sind, und
angrenzende Operationszeiten zum Berechnen
von angrenzenden Termen teilweise überlappt sind.
15. Ein Vektorprozessor nach Anspruch 14, bei dem die
genannte Datenverteilungseinheit (40b) Daten von den
genannten Drittstufen- und den genannten anderen Drittstufen-
Datenspeicherungsschaltungen (110A, 110B) empfängt und die
genannten Daten an die genannte
Vektorspeicherungszugriffseinheit (52) ausgibt.
16. Ein Vektorprozessor nach Anspruch 15, bei dem die
genannte Vektorspeicherungszugriffseinheit eine
Vektorregistereinheit zum temporären Speichern der genannten
Eingangsoperanden und der genannten berechneten ungeraden
und geraden Terme umfaßt und
die genannte Datenverteilungsschaltung die
genannten Eingangsoperanden und die genannten berechneten
ungeraden und geraden Terme überträgt.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11771987 | 1987-05-14 | ||
PCT/JP1988/000464 WO1988009016A1 (en) | 1987-05-14 | 1988-05-14 | Vector processor for processing recurrent equations at a high speed |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3882487D1 DE3882487D1 (de) | 1993-08-26 |
DE3882487T2 true DE3882487T2 (de) | 1993-11-04 |
Family
ID=14718599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE88904270T Expired - Fee Related DE3882487T2 (de) | 1987-05-14 | 1988-05-14 | Vektorprozessor zur schnellen verarbeitung von rekursiven gleichungen. |
Country Status (6)
Country | Link |
---|---|
US (1) | US4949292A (de) |
EP (1) | EP0314809B1 (de) |
JP (1) | JPH077389B2 (de) |
KR (1) | KR920004772B1 (de) |
DE (1) | DE3882487T2 (de) |
WO (1) | WO1988009016A1 (de) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5226135A (en) * | 1987-09-25 | 1993-07-06 | Hitachi, Ltd. | Method for sorting vector data on the basis of partial vectors and vector processor |
JP3068138B2 (ja) * | 1989-04-06 | 2000-07-24 | 甲府日本電気株式会社 | ベクトル演算処理装置 |
JP2658397B2 (ja) * | 1989-06-13 | 1997-09-30 | 日本電気株式会社 | マルチプロセッサシステム |
US5179531A (en) * | 1990-04-27 | 1993-01-12 | Pioneer Electronic Corporation | Accelerated digital signal processor |
JPH04177462A (ja) * | 1990-11-08 | 1992-06-24 | Koufu Nippon Denki Kk | ベクトル総和演算装置 |
DE4036455C1 (de) * | 1990-11-15 | 1992-04-02 | Siemens Ag, 8000 Muenchen, De | |
JP3237858B2 (ja) * | 1991-01-30 | 2001-12-10 | 沖電気工業株式会社 | 演算装置 |
JPH0628485A (ja) * | 1992-07-09 | 1994-02-04 | Toshiba Corp | テクスチャーアドレス生成器、テクスチャーパターン生成器、テクスチャー描画装置及びテクスチャーアドレス生成方法 |
US5390136A (en) * | 1993-06-14 | 1995-02-14 | Motorola, Inc. | Artificial neuron and method of using same |
US5517667A (en) * | 1993-06-14 | 1996-05-14 | Motorola, Inc. | Neural network that does not require repetitive training |
US5446651A (en) * | 1993-11-30 | 1995-08-29 | Texas Instruments Incorporated | Split multiply operation |
CA2135857A1 (en) * | 1994-01-03 | 1995-07-04 | Shay-Ping Thomas Wang | Neural network utilizing logarithmic function and method of using same |
JPH08241301A (ja) * | 1995-03-07 | 1996-09-17 | Nec Corp | 直交変換処理装置 |
US5553012A (en) * | 1995-03-10 | 1996-09-03 | Motorola, Inc. | Exponentiation circuit utilizing shift means and method of using same |
US5685008A (en) * | 1995-03-13 | 1997-11-04 | Motorola, Inc. | Computer Processor utilizing logarithmic conversion and method of use thereof |
JP2636789B2 (ja) * | 1995-03-31 | 1997-07-30 | 日本電気株式会社 | マイクロプロセッサ |
US5668749A (en) * | 1995-05-04 | 1997-09-16 | Motorola, Inc. | Circuit for performing arithmetic operations in a demodulator |
US5644520A (en) * | 1995-05-31 | 1997-07-01 | Pan; Shao Wei | Accumulator circuit and method of use thereof |
US5771391A (en) * | 1995-08-28 | 1998-06-23 | Motorola Inc. | Computer processor having a pipelined architecture and method of using same |
FR2745647B3 (fr) * | 1996-03-01 | 1998-05-29 | Sgs Thomson Microelectronics | Coprocesseur d'arithmetique modulaire permettant de realiser des operations non modulaires rapidement |
JPH1055352A (ja) * | 1996-08-08 | 1998-02-24 | Fuji Xerox Co Ltd | 浮動小数点数累積加算装置 |
FR2758195B1 (fr) * | 1997-01-09 | 1999-02-26 | Sgs Thomson Microelectronics | Coprocesseur d'arithmetique modulaire comprenant deux circuits de multiplication operant en parallele |
KR100287894B1 (ko) * | 1998-03-05 | 2001-05-02 | 김영환 | 콤필터의미분기 |
US6748411B1 (en) | 2000-11-20 | 2004-06-08 | Agere Systems Inc. | Hierarchical carry-select multiple-input split adder |
US7454701B2 (en) | 2003-10-30 | 2008-11-18 | Sap Ag | Systems and methods for implementing formulas |
US20070074008A1 (en) * | 2005-09-28 | 2007-03-29 | Donofrio David D | Mixed mode floating-point pipeline with extended functions |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60136875A (ja) * | 1983-12-26 | 1985-07-20 | Hitachi Ltd | ベクトル演算器 |
EP0167061A3 (de) * | 1984-06-20 | 1988-07-27 | Convex Computer Corporation | Vektorverarbeitungsrechenmaschine |
JPH0650512B2 (ja) * | 1984-07-11 | 1994-06-29 | 日本電気株式会社 | デ−タ処理装置 |
-
1988
- 1988-05-14 WO PCT/JP1988/000464 patent/WO1988009016A1/en active IP Right Grant
- 1988-05-14 DE DE88904270T patent/DE3882487T2/de not_active Expired - Fee Related
- 1988-05-14 EP EP88904270A patent/EP0314809B1/de not_active Expired - Lifetime
- 1988-05-14 KR KR1019890700058A patent/KR920004772B1/ko not_active IP Right Cessation
- 1988-05-14 US US07/298,748 patent/US4949292A/en not_active Expired - Fee Related
- 1988-05-14 JP JP63504021A patent/JPH077389B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0314809B1 (de) | 1993-07-21 |
US4949292A (en) | 1990-08-14 |
KR920004772B1 (ko) | 1992-06-15 |
DE3882487D1 (de) | 1993-08-26 |
JPH077389B2 (ja) | 1995-01-30 |
JPH01501264A (ja) | 1989-04-27 |
KR890702149A (ko) | 1989-12-23 |
EP0314809A1 (de) | 1989-05-10 |
WO1988009016A1 (en) | 1988-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3882487T2 (de) | Vektorprozessor zur schnellen verarbeitung von rekursiven gleichungen. | |
DE69430838T2 (de) | Schaltung und Verfahren zur parallelen Verschiebung und Addition | |
DE3210816C2 (de) | ||
DE69426231T2 (de) | Komplexes adaptives fir-filter | |
DE19914210B4 (de) | Verfahren und Prozessor für eine gestaffelte Ausführung einer Anweisung | |
DE69129723T2 (de) | Prozessorelement für Datenakkumulationsrechnungen, Verarbeitungseinheit und Prozessor | |
DE69132129T2 (de) | In der Grundzahl 4 arbeitende Übertragvorgriffsbäume | |
DE69033444T2 (de) | Signalprozessor mit einer arithmetischen und logischen Einheit und einer Multiplizier-Akkumulatoreinheit, die gleichzeitig betrieben werden können | |
DE3875979T2 (de) | Schaltung zur berechnung des quantisierten koeffizienten der diskreten cosinustransformation von digitalen signalabschnitten. | |
DE69627807T2 (de) | Datenprozessor zum gleichzeitigen Dataladen und Durchführung einer multiplizier-addier Operation | |
DE68927371T2 (de) | Verfahren und Vorrichtung zur Verarbeitung von mehreren Zustandscodes wie für einen Parallel-Pipeline-Rechner | |
DE3885775T2 (de) | Digitaler Signalprozessor. | |
DE69809450T2 (de) | Datenverarbeitungsvorrichtung | |
DE68927911T2 (de) | Datenverarbeitungssystem | |
DE68923264T2 (de) | Gerät zum Ausführen arithmetischer Gleitkommaoperationen. | |
DE3933171A1 (de) | Einzelchip-prozessor fuer komplexe gleitkommazahlen | |
DE3750028T2 (de) | Pipelineprozessor mit schwacher Kopplung. | |
DE3686828T2 (de) | Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration. | |
DE69230626T2 (de) | Informationsverarbeitungssystem mit der Fähigkeit zum Betreiben von mehreren Vektorpipelines in zwei unterscheidlichen Wirkungsweisen | |
DE69329962T2 (de) | System und Verfahren für die diskrete Cosinus-Transformation und für die inverse diskrete Cosinus-Transformation mit einfacher Struktur und mit hoher Betriebsgeschwindigkeit | |
DE69025650T2 (de) | Multiprozessorsystem mit Vektorpipelinen | |
DE3855524T2 (de) | Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator | |
DE19504089A1 (de) | Pipelined SIMD-Systolic Array Prozessor und dessen Arbeitsverfahren | |
DE3485771T2 (de) | Leistungsfaehiger paralleler vektorprozessor. | |
DE69029608T2 (de) | Digitale Signalprozessorvorrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |