[go: up one dir, main page]

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
Application number
DE88904270T
Other languages
English (en)
Other versions
DE3882487D1 (de
Inventor
Akihiko Hoshino
Tetsu Kawai
Koji Kuroda
Shoji Nakatani
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE3882487D1 publication Critical patent/DE3882487D1/de
Application granted granted Critical
Publication of DE3882487T2 publication Critical patent/DE3882487T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/13Differential 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.
  • OPERATIONSZYKLUS 01
  • 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;).
  • OPERATIONSZYKLUS 02
  • 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.
  • OPERATIONSZYKLUS 03
  • 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.
  • OPERATIONSZYKLEN 04 - 06
  • 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.
  • OPERATIONSZYKLEN 03 - 09
  • 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.
  • OPERATIONSZYKLEN 06 - 12
  • Ä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.
  • OPERATIONSZYKLEN 01 - 08
  • 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.
  • OPERATIONSZYKLUS 01
  • 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.
  • OPERATIONSZYKLUS 02
  • 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.
  • OPERATIONSZYKLUS 03
  • 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.
  • OPERATIONSZYKLUS 04
  • 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.
  • OPERATIONSZYKLUS 05
  • 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.
  • OPERATIONSZYKLUS 06
  • 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.
  • OPERATIONSZYKLUS 07
  • 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.
  • OPERATIONSZYKLUS 08
  • 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.
  • OPERATIONSZYKLUS 01
  • 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.
  • OPERATIONSZYKLUS 02
  • 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.
  • OPERATIONSZYKLUS 03
  • 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.
  • OPERATIONSZYKLUS 04
  • 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.
  • OPERATIONSZYKLUS 05
  • 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.
  • OPERATIONSZYKLUS 06
  • 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.
  • OPERATIONSZYKLUS 07
  • 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;
  • OPERATIONSZYKLUS 08
  • 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.
  • OPERATIONSZYKLEN 04 - 11
  • 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
  • OPERATIONSZYKLEN 07 - 14
  • 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.
  • LISTE DER BEZUGSZEICHEN
  • 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.
DE88904270T 1987-05-14 1988-05-14 Vektorprozessor zur schnellen verarbeitung von rekursiven gleichungen. Expired - Fee Related DE3882487T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 日本電気株式会社 デ−タ処理装置

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