DE69022871T2 - Vektorverarbeitungsvorrichtung, die imstande ist, iterative Hochgeschwindigkeitsoperationen zu verrichten. - Google Patents

Vektorverarbeitungsvorrichtung, die imstande ist, iterative Hochgeschwindigkeitsoperationen zu verrichten.

Info

Publication number
DE69022871T2
DE69022871T2 DE69022871T DE69022871T DE69022871T2 DE 69022871 T2 DE69022871 T2 DE 69022871T2 DE 69022871 T DE69022871 T DE 69022871T DE 69022871 T DE69022871 T DE 69022871T DE 69022871 T2 DE69022871 T2 DE 69022871T2
Authority
DE
Germany
Prior art keywords
vector
result
data
operand
register
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
DE69022871T
Other languages
English (en)
Other versions
DE69022871D1 (de
Inventor
Youko Isobe
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.)
NEC Corp
Original Assignee
NEC Corp
Nippon Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Publication of DE69022871D1 publication Critical patent/DE69022871D1/de
Application granted granted Critical
Publication of DE69022871T2 publication Critical patent/DE69022871T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)

Description

  • Die Erfindung betrifft eine Vektorprozessing- oder -verarbeitungsvorrichtung und insbesondere eine Vektorverarbeitungsvorrichtung zum Ausführen iterativer Operationen mit hoher Geschwindigkeit.
  • Bei einer iterativen Operation muß ein vorangehendes Ergebnis einer Operation bekannt sein, um eine nachfolgende Operation auszuführen. D.h., eine iterative Operation wird allgemein durch die Gleichung:
  • x(i) = f(x(i-1)) (1)
  • dargestellt, wobei i eine positive ganze Zahl ist und f(x(i-1)) eine Funktion einer Variablen x(i-1) darstellt.
  • Nachstehend wird ein Beispiel einer iterativen Operation betrachtet, die durch eine bestimmte Gleichung dargestellt wird:
  • x(i) = b(i) + a(i)*x(i-1), (2)
  • wobei a(i) primäre Vektoroperandenelemente erster Vektoroperandendaten und b(i) sekundäre Vektoroperandenelemente zweiter Vektoroperandendaten darstellt.
  • Um die durch die bestimmte Gleichung (2) festgelegte iterative Operation auszuführen, weist eine beispielsweise in der WO-A-88/09016 beschriebene herkömmliche Vektorverarbeitungsvorrichtung ein erstes Operandenvektorregister zum Speichern der ersten Vektoroperandendaten und ein zweites Operandenvektorregister zum Speichern der zweiten Vektoroperandendaten auf.
  • Eine erste Ausleseeinheit liest eines der primären Vektoroperandenelemente der ersten Vektoroperandendaten aus dem ersten Operandenvektorregister als ein erstes primäres Leseelement aus, um das primäre Leseelement als primäres Eingangselement erster Eingangsdaten einer Multipliziereinheit zuzuführen. Auf eine im Verlauf der Beschreibung verdeutlichte Weise wird der Multipliziereinheit ein sekundäres Eingangselement zweiter Eingangsdaten zugeführt. Die Multipliziereinheit multipliziert das primäre Eingangselement der ersten Eingangsdaten mit dem sekundären Eingangselement der zweiten Eingangsdaten, um ein primäres Ergebniselement erster Ergebnisdaten zu erzeugen.
  • Das primäre Ergebniselement der ersten Ergebnisdaten wird als ein ternäres Eingangselement dritter Eingangsdaten einer Addiereinheit zugeführt. Eine zweite Ausleseeinheit liest eines der sekundären Operandenelemente der zweiten Vektoroperandendaten als ein sekundäres Leseelement aus dem zweiten Operandenvektorregister aus, um das sekundäre Leseelement als ein quaternäres Eingangselement vierter Eingangsdaten der Addiereinheit zuzuführen. Die Addiereinheit addiert das ternäre Eingangselement der dritten Eingangsdaten und das quaternäre Eingangselement der vierten Eingangsdaten, um ein sekundäres Ergebniselement zweiter Ergebnisdaten zu erzeugen.
  • Eine Schreibeinheit schreibt das sekundäre Ergebniselement der zweiten Ergebnisdaten als ein Vektorergebniselement von Vektorergebnisdaten in ein Ergebnisvektorregister. Das sekundäre Ergebniselement der zweiten Ergebnisdaten wird als ein nachfolgendes sekundäres Eingangselement der zweiten Eingangsdaten der Multipliziereinheit zugeführt.
  • Allgemein arbeiten die Multipliziereinheit und die Addiereinheit unter einer Pipeline- oder Vektorsteuerung, die beispielsweise durch einen in der EP-A-0291613 beschriebenen Prozessor erreicht wird. Es wird vorausgesetzt, daß die Multipliziereinheit und die Addiereinheit unter einer sechsstufigen bzw. einer vierstuf igen Pipeline-Steuerung betrieben werden. In diesem Fall sind zwölf Rechner- oder Maschinenzyklen erforderlich, um das Vektorergebniselement der Vektorergebnisdaten auf eine später beschriebene Weise zu erhalten. Daher kann die herkömmliche Vektorverarbeitungsvorrichtung nicht optimal ausgenutzt werden, um eine iterative Operation auszuführen. In der WO-A-88/09016 wird vorgeschlagen, Gleichung (2) in einen ungeraden bzw. einen geraden Anteil aufzuteilen, wobei beide Anteile unabhängig voneinander berechnet werden können, indem die jeweilige Hardware verdoppelt wird.
  • Um die Wirksamkeit einer Verarbeitung bezüglich der itinerativen Operation zu verbessern, wird in der US-A-4757444 ein Timesharing-Verfahren beschrieben, wobei die bestimmte Gleichung (2) folgendermaßen in eine modifizierte Gleichung umgeformt wird:
  • x(i+1) = (b(i)*a(i+1) + b(i+1) + (a(i)*a(i+1)*x(i-1).
  • Die durch die modifizierte Gleichung gegebene iterative Operation wird unter Verwendung der Multipliziereinheit und der Addiereinheit im Timesharing-Verfahren ausgeführt. Eine Vektorverarbeitungsvorrichtung, die das Timesharing-Verfahren ausführt, muß jedoch auf eine später beschriebene Weise eine komplexe Steuerung ausführen.
  • Es ist Aufgabe der vorliegenden Erfindung, eine Vektorverarbeitungsvorrichtung bereitzustellen, die eine iterative Operation unter einer einfachen Steuerung ausführen kann. Diese Aufgabe wird durch die Merkmale der Patentansprüche gelöst.
  • Fig. 1 zeigt ein Blockdiagramm einer herkömmlichen Vektorverarbeitungsvorrichtung;
  • Fig. 2 zeigt ein Laufzeitdiagramm zum Beschreiben einer iterativen Operation in der in Fig. 1 dargestellten herkömmlichen Vektorverarbeitungsvorrichtung;
  • Fig. 3 zeigt ein Blockdiagramm einer Ausführungsform einer erfindungsgemäßen Vektorverarbeitungsvorrichtung; und
  • Fig. 4 zeigt ein Laufzeitdiagramm zum Beschreiben einer iterativen Operation in der in Fig. 3 dargestellten Vektorverarbeitungsvorrichtung.
  • Nachstehend wird zunächst unter Bezug auf Fig. 1 eine herkömmliche Vektorverarbeitungsvorrichtung beschrieben, um die Erfindung zu verdeutlichen. Die herkömmliche Vektorverarbeitungsvorrichtung dient zum Ausführen einer speziellen iterativen Operation, die durch die vorstehend erwähnte bestimmte Gleichung (2) gegeben ist:
  • x(i) = b(i) + a(i)*x(i-1). (2)
  • Die herkömmliche Vektorverarbeitungsvorrichtung weist ein erstes Operandenvektorregister 11 zum Speichern mehrerer primärer Vektoroperandenelemente a(i) erster Vektoroperandendaten und ein zweites Operandenvektorregister 12 zum Speichern mehrerer sekundärer Vektoroperandenelemente b(i) zweiter Vektoroperandendaten auf.
  • Eines der primären Vektoroperandenelemente a(i) der ersten Vektoroperandendaten wird in Antwort auf ein von einer ersten Ausleseeinheit 16 zugeführtes erstes Auslesesteuerungssignal RT1 als ein primäres Leseelement aus dem ersten Operandenvektorregister 11 ausgelesen. Eines der sekundären Vektoroperandenelemente b(i) der zweiten Vektoroperandendaten wird in Antwort auf ein von einer zweiten Ausleseeinheit 17 zugeführtes zweites Auslesesteuerungssignal RT2 als ein sekundäres Leseelement aus dem zweiten Operandenvektorregister 12 ausgelesen.
  • Das primäre Leseelement a(i) wird einem ersten Eingangsregister 21 als ein primäres Eingangselement der ersten Eingangsdaten zugeführt. In einem zweiten Eingangsregister 22 wird ein sekundäres Eingangselement x(i-1) der zweiten Eingangsdaten auf eine im Verlauf der Beschreibung verdeutlichte Weise gespeichert. Das primäre Eingangselement a(i) der ersten Eingangsdaten und das sekundäre Eingangselement x(i-1) der zweiten Eingangsdaten werden einer Multipliziereinheit 25 zugeführt. Die Multipliziereinheit 25 multipliziert das primäre Eingangselement a(i) der ersten Eingangsdaten mit dem sekundären Eingangselement x(i-1) der zweiten Eingangsdaten, um ein primäres Ergebniselement (a(i)*x(i-1)) erster Ergebnisdaten zu erzeugen.
  • Das primäre Ergebniselement (a(i)*x(i-1)) der ersten Ergebnisdaten wird einem dritten Eingangsregister 28 als ternäres Eingangselement dritter Eingangsdaten zugeführt. Das sekundäre Leseelement b(i) wird einem vierten Eingangsregister 29 als ein quaternäres Eingangselement vierter Eingangsdaten zugeführt. Das ternäre Eingangselement (a(i)* x(i-1)) der dritten Eingangsdaten und das quaternäre Eingangselement b(i) der vierten Eingangsdaten werden einer Addiereinheit 30 zugeführt. Die Addiereinheit addiert das ternäre Eingangselement (a(i)*x(i-1)) der dritten Eingangsdaten und das quaternäre Eingangselement b(i) der vierten Eingangsdaten, um ein sekundäres Ergebniselement x(i) sekundärer Ergebnisdaten zu erzeugen.
  • Das sekundäre Ergebniselement x(i) der zweiten Ergebnisdaten wird einem Ergebnisregister 31 als ein Vektorergebniselement von Vektorergebnisdaten zugeführt. Das Vektorergebniselement x(i) der Vektorergebnisdaten wird in Antwort auf ein von einer Schreibeinheit 33 zugeführtes Schreibsteuerungssignal WT in ein Ergebnisvektorregister 32 geschrieben.
  • Das sekundäre Ergebniselement x(i) der zweiten Ergebnisdaten wird über eine erste Auswahleinrichtung 34 dem zweiten Eingangsregister 22 als ein nachfolgendes sekundäres Eingangselement x(i-1) der zweiten Eingangsdaten zugeführt. Die erste Auswahleinrichtung 34 wählt zu Beginn einen von einem Anfangswertregister 35 zugeführten Anfangswert x(0) aus, um den Anfangswert x(0) als das sekundäre Eingangselement x(i-1) der zweiten Eingangsdaten dem zweiten Eingangsregister 22 zuzuführen.
  • Die erste Ausleseeinheit 16 erzeugt das erste Auslesesteuerungssignal RT1, wenn das sekundäre Ergebniselement x(i) der zweiten Ergebnisdaten dem zweiten Eingangsregister 22 zugeführt wird. Die zweite Ausleseeinheit 17 erzeugt das zweite Auslesesteuerungssignal RT2, wenn das primäre Ergebniselement (a(i)*x(i-1)) der ersten Ergebnisdaten dem dritten Eingangsregister 28 zugeführt wird.
  • Nachstehend wird die Arbeitsweise der herkömmlichen Vektorverarbeitungsvorrichtung beschrieben.
  • Unter Bezug auf Fig. 2 in Verbindung mit Fig. 1 wird die durch die vorstehend erwähnte bestimmte Gleichung (2) vorgegebene spezielle iterative Operation beschrieben. Es wird vorausgesetzt, daß die Multipliziereinheit 25 und die Addiereinheit 30 unter einer sechsstufigen bzw. einer vierstufigen Pipeline-Steuerung betrieben werden. Nullte bis fünfundzwanzigste Maschinenzyklen sind durch Nummern 0 bis 25 in einer ersten oder oberen Zeile in Fig. 2 dargestellt.
  • Im durch 0 bezeichneten nullten Maschinenzyklus wird das primäre Leseelement a(1) vom ersten Operandenvektorregister 11 dem ersten Eingangsregister 21 als das primäre Eingangselement der ersten Eingangsdaten zugeführt, und der Anfangswert x(0) wird vom Anfangswertregister 35 über die erste Auswahleinrichtung 34 dem zweiten Eingangsregister 22 als das sekundäre Eingangselement der zweiten Eingangsdaten zugeführt.
  • In den durch 1 bis 6 bezeichneten ersten bis sechsten Maschinenzyklen multipliziert die Multipliziereinheit 25 das primäre Eingangselement a(1) der ersten Eingangsdaten mit dem sekundären Eingangselement x(0) der zweiten Eingangsdaten, um im sechsten Maschinenzyklus das primäre Ergebniselement (a(1)*x(0)) der ersten Ergebnisdaten zu erzeugen.
  • Im durch 7 bezeichneten siebenten Maschinenzyklus wird das primäre Ergebniselement (a(1)*x(0)) der ersten Ergebnisdaten von der Multipliziereinheit 25 dem dritten Eingangsregister 28 als das ternäre Eingangselement der dritten Eingangsdaten zugeführt, und das sekundäre Leseelement b(1) wird vom zweiten Operandenvektorregister 12 dem vierten Eingangsregister 29 als das quaternäre Eingangselement der vierten Eingangsdaten zugeführt.
  • In den durch 8 bis 11 bezeichneten achten bis elften Maschinenzyklen addiert die Addiereinheit 30 das ternäre Eingangselement (a(1)*x(0)) der dritten Eingangsdaten und das quaternäre Eingangselement b(1) der vierten Eingangsdaten, um im elften Maschinenzyklus das sekundäre Ergebniselement x(1) der zweiten Ergebnisdaten zu erzeugen.
  • Im durch 12 bezeichneten zwölften Maschinenzyklus wird das sekundäre Ergebniselement x(1) der zweiten Ergebnisdaten von der Addiereinheit 30 dem Ergebnisregister 31 als das Vektorergebniselement der Vektorergebnisdaten zugeführt. Gleichzeitig wird das sekundäre Ergebniselement x(1) der zweiten Ergebnisdaten über die erste Auswahleinrichtung 34 dem zweiten Eingangsregister 22 als das nachfolgende sekundäre Eingangselement der zweiten Eingangsdaten zugeführt, und das primäre Leseelement a(2) wird vom ersten Operandenvektorregister 11 dem ersten Eingangsregister 21 als das primäre Eingangselement der ersten Eingangsdaten zugeführt. Eine ähnliche Verarbeitung wird wiederholt ausgeführt. Wie gemäß dem vorstehenden verdeutlicht wird, sind zwölf Maschinenzyklen erforderlich, um jedes Vektorergebniselement x(i) der Vektorergebnisdaten zu erzeugen. Daher kann die herkömmliche Vektorverarbeitungsvorrichtung nicht optimal ausgenutzt werden, wenn die iterative Operation ausgeführt wird.
  • Um die Wirksamkeit der Verarbeitung bezüglich der iterativen Operation zu verbessern, wird in der Beschreibung der vorstehend erwänten US-A-4757444 ein Timesharing-Verfahren beschrieben. Gemäß dieser Patentveröffentlichung wird die bestimmte Gleichung (2) wie folgt in die vorstehend erwähnte modifizierte Gleichung umgeformt:
  • x(i+1) = (b(i)*a(i+1) + b(i+1)) + (a(i)*a(i+1)*x(i-1).
  • Die durch diese modifizierte Gleichung vorgegebene iterative Operation wird unter Verwendung der Multipliziereinheit 25 und der Addiereinheit 30 im Timesharing-Verfahren ausgeführt. D.h., jedes Vektorergebniselement x(i+1) wird berechnet, indem das Vektorergebniselement x(i+1) in erste bis dritte Phasen oder Stufen (a(i)*a(i+1)), (b(i)*a(i+1) + b(i+1)), bzw. (b(i)*a(i+1) + b(i+1)) + (a(i)*a(i+1))*x(i-1) aufgeteilt wird. Daher müssen eine komplexe Vektorregistersteuerungseinrichtung zum Steuern des ersten und des zweiten Operandenvektorregisters 11 bzw. 12 sowie eine Schaltungsanordnung zum Umschalten zwischen dem ersten und dem zweiten Operandenvektorregister 11 bzw. 12 vorgesehen sein. Dadurch muß die Vektorverarbeitungsvorrichtung, die ein Timesharing- Verfahren ausführt, eine komplexe Steuerung ausführen.
  • Die in Fig. 3 dargestellte bevorzugte Ausführungsform einer erfindungsgemäßen Vektorverarbeitungsvorrichtung ist der in Fig. 1 dargestellten Vorrichtung ähnlich, außer daß das erste und das zweite Operandenvektorregister, das Ergebnisvektorregister, die erste und die zweite Ausleseeinheit, die Schreibeinheit und das Anfangswertregister bezüglich den in Fig. 1 dargestellten entsprechenden Einrichtungen modifiziert sind, wie später verdeutlicht wird. Das erste und das zweite Operandenvektorregister das Ergebnisvektorregister, die erste und die zweite Ausleseeinheit, die Schreibeinheit und das Anfangswertregister werden daher durch die Bezugszeichen 11a, 12a, 32a, 16a, 17a, 33a bzw. 35a bezeichnet.
  • Das erste Operandenvektorregister 11a weist erste bis vierte Register 11-1, 11-2, 11-3 und 11-4 für primäre Teiloperandenvektoren auf, in denen mehrere primäre Vektoroperandenelemente A( i+3) erster Vektoroperandendaten auf eine später beschriebene Weise gespeichert werden. Ähnlich weist das zweite Operandenvektorregister 12a erste bis vierte Register 12-1, 12-2, 12-3 und 12-4 für sekundäre Teiloperandenvektoren auf, in denen mehrere sekundäre Vektoroperandenelemente B(i+3) zweiter Vektoroperandendaten auf eine später beschriebene Weise gespeichert werden. Ähnlich weist das Ergebnisvektorregister 32a erste bis vierte Teilergebnisvektorregister 32-1, 32-2, 32-3 und 32-4 auf, in denen mehrere Vektorergebniselemente x(i+3) von Vektorergebnisdaten auf eine später beschriebene Weise gespeichert werden.
  • Die erste Ausleseeinheit 16a weist eine erste Ausleseschaltung 161 und eine erste Datenauswahlschaltung 162 auf. Die erste Ausleseschaltung 161 legt eine erste Ausleseadresse für die ersten bis vierten Register 11-1 bis 11-4 für die primären Teiloperandenvektoren fest, um vier primäre Vektoroperandenelemente A(4n), A(4n+1), A(4n+2) und A(4n-3) von der ersten Leseadresse der ersten bis vierten Register 11-1 bis 11-4 für die primären Teiloperandenvektoren als vier primäre Leseelemente zu lesen, wobei n eine positive ganze Zahl darstellt. Die erste Datenauswahlschaltung 162 wählt nacheinander eines der vier primären Leseelemente A(4n) bis A(4n+3) als ein ausgewähltes primäres Leseelement aus. Das ausgewählte primäre Leseelement wird dem ersten Eingangsregister 21 als ein primäres Eingangselement erster Eingangsdaten zugeführt. Die erste Datenauswahlschaltung 162 wird durch ein erstes Steuerungssignal T1 aktiviert, das von einer später beschriebenen Steuersignalerzeugungseinheit 36 zugeführt wird.
  • Ähnlich weist die zweite Ausleseeinheit 17a eine zweite Ausleseschaltung 171 und eine zweite Datenauswahlschaltung 172 auf. Die zweite Ausleseschaltung 171 legt eine zweite Ausleseadresse für die ersten bis vierten Register 12-1 bis 12-4 für die sekundären Teiloperandenvektoren fest, um vier sekundäre Vektoroperandenelemente B(4n), B(4n+1), B(4n+2) und B(4n+3) von der zweiten Leseadresse der ersten bis vierten Register 12-1 bis 12-4 für die sekundären Teiloperandenvektoren als vier sekundäre Leseelemente zu lesen. Die zweite Datenauswahlschaltung 172 wählt nacheinander eines der vier sekundären Leseelementen B(4n) bis B(4n+3) als ein ausgewahltes sekundäres Leseelement aus. Das ausgewählte sekundäre Leseelement wird dem vierten Eingangsregister 29 als ein quaternäres Eingangselement vierter Eingangsdaten zugeführt. Die zweite Datenauswahlschaltung 172 wird durch ein von der Steuersignalerzeugungseinheit 36 zugeführtes zweites Steuersignal T2 aktiviert.
  • Die Schreibeinheit 33a weist eine Schreibschaltung 331 und eine Registerauswahlschaltung 332 auf. Die Registerauswahlschaltung 332 wählt nacheinander eines der ersten bis vierten Teilergebnisvektorregister 32-1 bis 32-4 als ein ausgewähltes Teilergebnisvektorregister aus. Die Schreibschaltung 331 legt eine Schreibadresse für die ersten bis vierten Teilergebnisvektorregister 32-1 bis 32-4 fest, um ein vom Ergebnisregister 31 zugeführtes Vektorergebniselement in die Schreibadresse des ausgewählten Teilergebnisvektorregisters zu schreiben. Die Registerauswahlschaltung 332 wird durch ein von der Steuersignalerzeugungseinheit 36 zugeführtes drittes Steuersignal T3 aktiviert.
  • Wie vorstehend erwähnt, erzeugt die Steuersignalerzeugungseinheit 36 die ersten bis dritten Steuersignale T1, T2 und T3. Das erste Steuersignal T1 aktiviert die erste Datenauswahlschaltung 162, wenn dem zweiten Eingangsregister 22 das sekundäre Ergebniselement der zweiten Ergebnisdaten von der Addiereinheit 30 zugeführt wird. Das zweite Steuersignal T2 aktiviert die zweite Datenauswahleinrichtung 172, wenn dem dritten Eingangsregister 28 das primäre Ergebniselement der ersten Ergebnisdaten von der Multipliziereinheit 25 zugeführt wird. Das dritte Steuersignal T3 aktiviert die Registerauswahleinrichtung 332, wenn das Ergebnisregister 31 das Vektorergebniselement der Vektorergebnisdaten erzeugt.
  • Im Anfangswertregister 35a sind Anfangswerte x(0), x(1), x(2) und x(3) gespeichert. Die Anfangswerte x(0) bis x(3) werden nacheinander der ersten Auswahleinrichtung 34 und einer zweiten Auswahleinrichtung 37 zugeführt. Der ersten Auswahleinrichtung 34 wird das sekundäre Ergebniselement der zweiten Ergebnisdaten zugeführt. Der zweiten Auswahleinrichtung 37 wird das primäre Ergebniselement der ersten Ergebnisdaten zugeführt. Im dargestellten Beispiel wählt die erste Auswahleinrichtung 34 die Anfangswerte x(0) bis x(3) aus, um die Anfangswerte dem zweiten Eingangsregister 22 als die sekundären Eingangselemente der zweiten Eingangsdaten zuzuführen, wenn die iterative Operation beginnt. Ansonsten wählt die erste Auswahleinrichtung 34 das sekundäre Ergebniselement der zweiten Ergebnisdaten aus, um das sekundäre Ergebniselement der zweiten Ergebnisdaten dem zweiten Eingangsregister 22 als die sekundären Eingangselemente der zweiten Eingangsdaten zuzuführen. Die zweite Auswahleinrichtung 37 wählt immer das primäre Ergebniselement der ersten Ergebnisdaten aus, um das primäre Ergebniselement der ersten Ergebnisdaten dem dritten Eingangsregister 28 als das ternäre Eingangselement der dritten Eingangsdaten zuzuführen.
  • Einer dritten Auswahleinrichtung 38 werden das primäre Ergebniselement der ersten Ergebnisdaten und das sekundäre Ergebniselement der zweiten Ergebnisdaten zugeführt. Im dargestellten Beispiel wählt die dritte Auswahleinrichtung 38 immer das sekundäre Ergebniselement der zweiten Ergebnisdaten aus, um das sekundäre Ergebniselement der zweiten Ergebnisdaten dem Ergebnisregister 31 als das Vektorergebniselement der Vektorergebnisdaten zuzuführen.
  • Nachstehend wird die Arbeitsweise der in Fig. 3 dargestellten Vektorverarbeitungsvorrichtung beschrieben. Die dargestellte Vektorverarbeitungsvorrichtung dient zum Ausführen einer bestimmten iterativen Operation, die durch eine spezielle Gleichung gegeben ist:
  • x(i+3) = B(i+3) + A(i+3)*x(i-1), (3)
  • wobei A(i+3) die primären Vektoroperandenelemente der ersten Vektoroperandendaten und B(i+3) die sekundären Vektoroperandenelemente der zweiten Vektoroperandendaten darstellt.
  • Um die durch die vorstehend erwähnte bestimmte Gleichung (2) vorgegebene iterative Operation auszuführen, muß Gleichung (2) in die spezielle Gleichung (3) umgeformt werden. Dazu wird die bestimmte Gleichung (2) wie folgt entwickelt:
  • Auf diese Weise sind das primäre Vektoroperandenelement A(i+3) der ersten Vektoroperandendaten der speziellen Gleichung (3) und das sekundäre Vektoroperandenelement B(i+3) der zweiten Vektoroperandendaten der speziellen Gleichung (3) gegeben durch:
  • A(i+3) = a(i+3)*a(i+2)*a(i+1)*a(i)
  • und
  • Dadurch können das primäre Vektoroperandenelement A(i+3) und das sekundäre Vektoroperandenelement B(i+3) durch eine allgemeine Vektoroperation im voraus berechnet werden.
  • Außerdem werden die Anfangswerte x(1), x(2) und x(3) aus dem Anfangswert x(0) erhalten durch:
  • x(1) = b(1) + a(1)*x(0),
  • x(2) = b(2) + a(2)*x(1),
  • und x(3) = b(3) + a(3)*x(2).
  • Dadurch können die Anfangswerte x(1) bis x(3) durch eine skalare Operation im voraus berechnet werden.
  • Gemäß der speziellen Gleichung (3) wird jedes Vektorergebniselement x(i+3) der Vektorergebnisdaten unter Verwendung lediglich eines Vektorergebniselements x(i-1) berechnet. Daher wird das durch die spezielle Gleichung (3) gegebene Vektorergebniselement x(i+3) in erste bis vierte Folgen unterteilt, die aus den Anfangswerten x(0), x(1), x(2) bzw. x(3) berechnet werden. Die ersten bis vierten Folgen werden dargestellt durch:
  • x(0), x(4), x(8), x(12), ...,
  • x(1), x(5), x(9), x(13), ...,
  • x(2), x(6), x(10), x(14), ...,
  • und x(3), x(7), x(11), x(15)
  • Weil die ersten bis vierten Folgen voneinander unabhängig sind, können die ersten bis vierten Folgen unter Verwendung der in Fig. 3 dargestellten Vektorverarbeitungsvorrichtung auf die nachstehend beschriebene Weise parallel berechnet werden.
  • Nachstehend wird unter Bezug auf Fig. 4 in Verbindung mit Fig. 3 die durch die vorstehend erwähnte spezielle Gleichung (3) vorgegebene bestimmte iterative Operation beschrieben. Es wird folgendes vorausgesetzt. Die Multipliziereinheit 25 und die Addiereinheit 30 werden unter einer sechsstufigen bzw. einer vierstufigen Pipeline-Steuerung betrieben. Die Anfangswerte x(0), x(1), x(2) und x(3) und die primären Vektoroperandenelemente A(i+3) und die sekundären Vektoroperandenelemente B(i+3) werden auf die vorstehend beschriebene Weise im voraus berechnet.
  • Das erste Operandenvektorregister 11a speichert die primären Vektoroperandenelemente A(i+3) der ersten Vektoroperandendaten. D.h. im einzelnen, das erste Register 11-1 für die primären Teiloperandenvektoren speichert die primären Vektoroperandenelemente A(4n). Ähnlich speichert das zweite Register 11-2 für die primären Teiloperandenvektoren die primären Vektoroperandenelemente A(4n+1). Ähnlich speichern das dritte und das vierte Register 11-3 bzw. 11-4 für die primären Teiloperandenvektoren die primären Vektoroperandenelemente A(4n+2) bzw. A(4n+3). Die primären Vektoroperandenelemente A(4n), A(4n+1), A(4n+2) und A(4n+3) werden in der gleichen Adresse des ersten, des zweiten, des dritten und des vierten Registers 11-1, 11-2, 11-3 bzw. 11-4 für die primären Teiloperandenvektoren gespeichert.
  • Das zweite Operandenvektorregister 12a speichert die sekundären Vektoroperandenelemente B(i+3) der zweiten Vektoroperandendaten. D.h. im einzelnen, das erste Register 12- 1 für die sekundären Teiloperandenvektoren speichert die sekundären Vektoroperandenelemente B(4n). Ähnlich speichert das zweite Register 12-2 für die sekundären Teiloperandenvektoren die sekundären Vektoroperandenelemente B(4n+1). Ähnlich speichern das dritte und das vierte Register 12-3 bzw. 12-4 für die sekundären Teiloperandenvektoren die sekundären Vektoroperandenelemente B(4n+2) bzw. B(4n+3). Die sekundären Vektoroperandenelemente B(4n), B(4n+1), B(4n+2) und B(4n+3) werden in der gleichen Adresse des ersten, des zweiten, des dritten und des vierten Registers 12-1, 12-2, 12-3 bzw. 12-4 für die sekundären Teiloperandenvektoren gespeichert.
  • In Fig. 4 sind nullte bis siebzehnte Maschinenzyklen durch Nummern 0 bis 17 in einer ersten oder oberen Zeile dargestellt.
  • In den durch 0 bis 3 dargestellten nullten bis dritten Maschinenzyklen werden die priinären Vektoroperandenelemente A(4), A(5), A(6) und A(7) nacheinander vom ersten Operandenvektorregister 11a dem ersten Eingangsregister 21 als die primären Eingangselemente der ersten Eingangsdaten zugeführt. Die Anfangswerte x(0), x(1), x(2) und x(3) werden von den Anfangswertregistern 35a über die erste Auswahleinrichtung 34 dem zweiten Eingangsregister 22 als die sekundären Eingangselemente der zweiten Eingangsdaten zugeführt.
  • In den durch 1 bis 6 bezeichneten ersten bis sechsten Maschinenzyklen multipliziert die Multipliziereinheit 25 das primäre Eingangselement A(4) der ersten Eingangsdaten mit dem sekundären Eingangselement x(0) der zweiten Eingangsdaten, um im sechsten Maschinenzyklus das primäre Ergebniselement (A(4)*x(0)) der ersten Ergebnisdaten zu erzeugen.
  • In den durch 2 bis 7 bezeichneten zweiten bis siebenten Maschinenzyklen multipliziert die Multipliziereinheit 25 das primäre Eingangselement A(5) der ersten Eingangsdaten mit dem sekundären Eingangselement x(1) der zweiten Eingangsdaten, um im siebenten Maschinenzyklus das primäre Ergebniselement (A(5)*x(1)) der ersten Ergebnisdaten zu erzeugen.
  • In den durch 3 bis 8 bezeichneten dritten bis achten Maschinenzyklen multipliziert die Multipliziereinheit 25 das primäre Eingangselement A(6) der ersten Eingangsdaten mit dem sekundären Eingangselement x(2) der zweiten Eingangsdaten, um im achten Maschinenzyklus das primäre Ergebniselement (A(6)*x(2)) der ersten Ergebnisdaten zu erzeugen.
  • In den durch 4 bis 9 bezeichneten vierten bis neunten Maschinenzyklen multipliziert die Multipliziereinheit 25 das primäre Eingangselement A(7) der ersten Eingangsdaten mit dem sekundären Eingangselement x(3) der zweiten Eingangsdaten, um im neunten Maschinenzyklus das primäre Ergebniselement (A(7)*x(3)) der ersten Ergebnisdaten zu erzeugen.
  • In den durch 7 bis 10 bezeichneten siebenten bis zehnten Maschinenzyklen werden die primären Ergebniselemente (A(4)*x(0)), (A(5)*x(1)), (A(6)*x(2)) und (A(7)*x(3)) der ersten Ergebnisdaten von der Multipliziereinheit 25 über die zweite Auswahleinrichtung 38 nacheinander dem dritten Eingangsregister 28 als die ternären Eingangselenente der dritten Eingangsdaten zugeführt. Die sekundären Vektoroperandenelemente B(4), B(5), B(6) und B(7) werden vom zweiten Operandenvektorregister 12a nacheinander dem vierten Eingangsregister 29 als die quaternären Eingangselemente der vierten Eingangsdaten zugeführt.
  • In den durch 8 bis 11 bezeichneten achten bis elften Maschinenzyklen addiert die Addiereinheit 30 das ternäre Eingangselement (A(4)*x(0)) der dritten Eingangsdaten und das quaternäre Eingangselement B(4) der vierten Eingangsdaten, um im elften Maschinenzyklus das sekundäre Ergebniselement x(4) der zweiten Ergebnisdaten zu erzeugen.
  • In den durch 9 bis 12 bezeichneten neunten bis zwölften Maschinenzyklen addiert die Addiereinheit 30 das ternäre Eingangselement (A(5)*x(1)) der dritten Eingangsdaten und das quaternäre Eingangselement B(5) der vierten Eingangsdaten, um im zwölften Maschinenzyklus das sekundäre Ergebniselement x(5) der zweiten Ergebnisdaten zu erzeugen.
  • In den durch 10 bis 13 bezeichneten zehnten bis dreizehnten Maschinenzyklen addiert die Addiereinheit 30 das ternäre Eingangselement (A(6)*x(2)) der dritten Eingangsdaten und das quaternäre Eingangselement B(6) der vierten Eingangsdaten, um im dreizehnten Maschinenzyklus das sekundäre Ergebniselement x(6) der zweiten Ergebnisdaten zu erzeugen.
  • In den durch 11 bis 14 bezeichneten elften bis vierzehnten Maschinenzyklen addiert die Addiereinheit 30 das ternäre Eingangselement (A(7)*x(3)) der dritten Eingangsdaten und das quaternäre Eingangselement B(7) der vierten Eingangsdaten, um im vierzehnten Maschinenzyklus das sekundäre Ergebniselement x(7) der zweiten Ergebnisdaten zu erzeugen.
  • In den durch 12 bis 15 bezeichneten zwölften bis fünfzehnten Maschinenzyklen werden die sekundären Ergebniselemente x(4), x(5), x(6) und x(7) der zweiten Ergebnisdaten von der Addiereinheit 30 über die dritte Auswahleinrichtung 31 dem Ergebnisregister 31 als die Vektorergebniselemente der Vektorergebnisdaten zugeführt. Außerdem werden die sekundären Ergebniselemente x(4), x(5), x(6) und x(7) der zweiten Ergebnisdaten über die erste Auswahleinrichtung 34 dem zweiten Eingangsregister 22 als die nachfolgenden sekundären Eingangselemente der zweiten Ergebnisdaten zugeführt. Die primären Vektoroperandenelemente A(8), A(9), A(10) und A(11) werden vom ersten Operandenvektorregister 11a nacheinander dem ersten Eingangsregister 21 als die primären Eingangselemente der ersten Eingangsdaten zugeführt.
  • In den durch 13 bis 16 bezeichneten dreizehnten bis sechzehnten Maschinenzyklen werden die Vektorergebniselemente x(4) bis x(7) der Vektorergebnisdaten nacheinander in den ersten bis vierten Teilergebnisvektorregistern 32-1 bis 32-4 des Ergebnisvektorregisters 32a gespeichert.
  • Eine ähnliche Verarbeitung wird wiederholt ausgeführt, um die Vektorergebniselemente x(i+3) der Vektorergebnisdaten zu berechnen. Gemäß dem vorstehendend beschriebenen sind drei Maschinenzyklen erforderlich, um jedes Vektorergebniselement x(i+3) der Vektorergebnisdaten zu erzeugen. Daher kann die iterative Operation parallel mit hoher Geschwindigkeit unter einer einfachen Steuerung ausgeführt werden.
  • Obwohl die Erfindung bisher nur in Verbindung mit einer bevorzugten Ausführungsform der Erfindung beschrieben wurde, können durch Fachleute leicht verschiedene andere Ausführungsformen der Erfindung entwickelt werden. Beispielsweise wird die vorstehend erwähnte bestimmte Gleichung (2) allgemein folgendermaßen in eine modifizierte Gleichung umgeformt:
  • x(i+(m-1)) = B(i+(m-1)) + A(i+(m-1))*x(i-1),
  • wobei m eine vorgegebene natürliche Zahl ist, die nicht kleiner als Zwei ist. In diesem Fall weist das erste Operandenvektorregister erste bis m-te Register für primäre Teiloperandenvektoren auf. Das zweite Operandenvektorregister weist erste bis m-te Register für sekundäre Teiloperandenvektoren auf. Das Ergebnisvektorregister weist erste bis mte Teilergebnisvektorregister auf. Außerdem kann die erfindungsgemäße Vektorverarbeitungsvorrichtung so modifiziert werden, daß sie eine allgemeine iterative Operation ausführt, die durch eine allgemeine modifizierte Gleichung vorgegeben ist, bei der die vorstehend erwähnte allgemeine Gleichung (1) modifiziert ist und die gegeben ist durch:
  • x(i+(m-1)) = g(x(i-1)),
  • wobei g(x(i-1)) eine Funktion der Variablen x(i-1) ist.

Claims (7)

1. Vektorverarbeitungsvorrichtung zum Berechnen der Gleichung x(i+(m-1)) = B(i+(m-1)) + A(i+(m-1))*x(i-1) für m = 2, 3, ..., mit:
a) einem ersten Operandenvektorregister (11a) zum Speichern erster Vektoroperandendaten, die aus m primären Vektoroperandenelementen (A(4n), ..., A(4n+3)) bestehen,
b) einem zweiten Operandenvektorregister (12a) zum Speichern zweiter Vektoroperandendaten, die aus m sekundären Vektoroperandenelementen (B(4n), ..., B(4n+3)) bestehen
c) einer durch eine Pipeline-Steuerung gesteuerten Multipliziereinheit (25) zum Ausführen einer ersten Rechenoperation bezüglich ersten und zweiten Eingangsdaten zum Erzeugen erster Ergebnisdaten,
d) einer durch eine Pipeline-Steuerung gesteuerten arithmetisch-logischen Einheit (30) zum Ausführen einer zweiten Rechenoperation bezüglich dritten und vierten Eingangsdaten zum Erzeugen zweiter Ergebnisdaten, die aus mehreren sekundären Ergebniselementen bestehen,
e) einer mit dem ersten Operandenvektorregister (11a) verbundenen ersten Ausleseeinheit (16a) zum Auslesen der ersten Vektoroperandendaten aus dem ersten Operandenvektorregister (11a), um die ersten Vektoroperandendaten der Multipliziereinheit (25) als die ersten Eingangsdaten zuzuführen,
f) einer zweiten Ausleseeinheit (17a) zum Auslesen der zweiten Vektoroperandendaten aus dem zweiten Operandenvektorregister (12a), um die zweiten Vektoroperandendaten der arithmetisch-logischen Einheit als die vierten Eingangsdaten zuzuführen,
g) einer ersten Übergabeeinrichtung (37) zum Zuführen der ersten Ergebnisdaten von der Multipliziereinheit (25) als die dritten Eingangsdaten zur arithmetisch-logischen Einheit (30), und
h) einer zweiten Übergabeeinrichtung (34) zum Zuführen der zweiten Ergebnisdaten von der arithmetisch-logischen Einheit (30) als die zweiten Eingangsdaten zur Multipliziereinheit (25),
wobei
i) die erste Ausleseeinheit (16a) die m primären Vektoroperandenelemente der ersten Vektoroperandendaten beginnend bei einer ersten vorgegebenen Zykluszeit nacheinander aus dem ersten Operandenvektorregister (11a) ausliest,
j) die zweite Ausleseeinheit (17a) die m sekundären Vektoroperandenelemente der zweiten Vektoroperandendaten beginnend bei einer zweiten vorgegebenen Zykluszeit nacheinander aus dem zweiten Operandenvektorregister (12a) ausliest,
k) eine Takterzeugungseinheit (36) die erste Ausleseeinheit (16a), die zweite Ausleseeinheit (17a) und eine Schreibeinheit (33a) durch ein erstes (T1), ein zweites (T2) bzw. ein drittes Steuersignal (T3) aktiviert,
l) das erste Steuersignal (T1) zu dem Zeitpunkt erzeugt wird, wenn einem zweiten Eingangsregister (22) zum Speichern eines sekundären Eingangselements der zweiten Eingangsdaten von der arithmetisch-logischen Einheit (30) ein sekundäres Ergebniselement der zweiten Ergebnisdaten zugeführt wird,
m) das zweite Steuersignal (T2) zu dem Zeitpunkt erzeugt wird, wenn einem dritten Eingangsregister (28) zum Speichern eines ternären Eingangselements der dritten Eingangsdaten von der Multipliziereinheit (25) das primäre Ergebniselement der ersten Ergebnisdaten zugeführt wird, und
n) das dritte Steuersignal (T3) erzeugt wird, wenn ein mit der arithmetisch-logischen Einheit (30) verbundenes Ergebnisregister (31) das Vektorergebniselement der Vektorergebnisdaten erzeugt.
2. Vektorverarbeitungsvorrichtung nach Anspruch 1, wobei ein erstes Eingangsregister (21) mit dem ersten Operandenvektorregister (11a) verbunden ist, um jedes der primären Vektoroperandenelemente der ersten Vektoroperandendaten als ein primäres Eingangselement erster Eingangsdaten zu speichern.
3. Vektorverarbeitungsvorrichtung nach Anspruch 1 oder 2, wobei die ersten Ergebnisdaten aus M primären Ergebniselementen bestehen, wobei M eine erste vorgegebene natürliche Zahl ist, ein viertes Eingangsregister (29) mit dem zweiten Operandenvektorregister (12a) verbunden ist, um jedes der sekundären Vektoroperandenelemente der zweiten Vektoroperandendaten als ein quaternäres Eingangselement der vierten Eingangsdaten zu speichern, und wobei die arithmetisch-logische Einheit unter einer N-stufigen Pipeline-Steuerung betrieben wird und mit dem dritten und dem vierten Eingangsregister (28 bzw. 29) verbunden ist, wobei N eine zweite vorgegebene natürliche Zahl ist.
4. Vektorverarbeitungsvorrichtung nach Anspruch 1, 2 oder 3, wobei das mit der arithmetisch-logischen Einheit (30) verbundene Ergebnisregister (31) zum Speichern jedes der sekundären Ergebniselemente der zweiten Ergebnisdaten als ein Vektorergebniselement von Vektorergebnisdaten geeignet ist, ein Ergebnisvektorregister (32a) mit dem Ergebnisregister (31) verbunden ist, um die Vektorergebnisdaten zu speichern, und eine Schreibeinheit (33a) mit dem Ergebnisvektorregister (32a) verbunden ist, um die Vektorergebnisdaten in das Ergebnisvektorregister (32a) zu schreiben.
5. Vektorverarbeitungsvorrichtung nach Anspruch 3 oder 4, wobei die erste und die zweite Ausleseeinheit (16a bzw. 17a) die m primären und sekundären Vektoroperandenelemente bei jedem (M+N+2)-ten Maschinenzyklus nacheinander lesen, wobei m eine vorgegebene ganze Zahl von einschließlich 2 bis einschließlich M+N darstellt.
6. Vektorverarbeitungsvorrichtung nach Anspruch 3, 4 oder 5, wobei die Schreibeinheit (33a) die m Vektorergebniselemente der Vektorergebnisdaten bei jedem (M+N+2)-ten Maschinenzyklus nacheinander in das Ergebnisvektorregister (32a) schreibt.
7. Vektorverarbeitungsvorrichtung nach einem der Ansprüche 1 bis 6, wobei die zweiten Ergebnisdaten aus mehreren Vektorergebniselementen bestehen, wobei die Vektorverarbeitungsvorrichtung außerdem ein Ergebnisvektorregister zum Speichern von Vektorergebnisdaten und eine Schreibeinheit zum aufeinanderfolgenden Schreiben der vorgegebenen Anzahl der Vektorergebniselemente der zweiten Ergebnisdaten bei der vorgegebenen Zykluszeit als die Vektorergebnisdaten in das Ergebnisvektorregister aufweist.
DE69022871T 1989-04-06 1990-04-05 Vektorverarbeitungsvorrichtung, die imstande ist, iterative Hochgeschwindigkeitsoperationen zu verrichten. Expired - Fee Related DE69022871T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1087688A JP3068138B2 (ja) 1989-04-06 1989-04-06 ベクトル演算処理装置

Publications (2)

Publication Number Publication Date
DE69022871D1 DE69022871D1 (de) 1995-11-16
DE69022871T2 true DE69022871T2 (de) 1996-04-18

Family

ID=13921867

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69022871T Expired - Fee Related DE69022871T2 (de) 1989-04-06 1990-04-05 Vektorverarbeitungsvorrichtung, die imstande ist, iterative Hochgeschwindigkeitsoperationen zu verrichten.

Country Status (4)

Country Link
US (1) US5251323A (de)
EP (1) EP0391417B1 (de)
JP (1) JP3068138B2 (de)
DE (1) DE69022871T2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04167172A (ja) * 1990-10-31 1992-06-15 Nec Corp ベクトルプロセッサ
JP2766217B2 (ja) * 1994-06-14 1998-06-18 甲府日本電気株式会社 並列処理装置
US6009505A (en) * 1996-12-02 1999-12-28 Compaq Computer Corp. System and method for routing one operand to arithmetic logic units from fixed register slots and another operand from any register slot
US5893145A (en) * 1996-12-02 1999-04-06 Compaq Computer Corp. System and method for routing operands within partitions of a source register to partitions within a destination register
US5909572A (en) 1996-12-02 1999-06-01 Compaq Computer Corp. System and method for conditionally moving an operand from a source register to a destination register
US6061521A (en) * 1996-12-02 2000-05-09 Compaq Computer Corp. Computer having multimedia operations executable as two distinct sets of operations within a single instruction cycle
US5941938A (en) * 1996-12-02 1999-08-24 Compaq Computer Corp. System and method for performing an accumulate operation on one or more operands within a partitioned register
US6202141B1 (en) * 1998-06-16 2001-03-13 International Business Machines Corporation Method and apparatus for performing vector operation using separate multiplication on odd and even data elements of source vectors
CN105278913A (zh) * 2015-01-14 2016-01-27 北京国睿中数科技股份有限公司 实现向量浮点基2指数对数计算的装置
CN105302772A (zh) * 2015-01-14 2016-02-03 北京国睿中数科技股份有限公司 浮点复数向量第一级fft计算方法及系统
FR3083351B1 (fr) * 2018-06-29 2021-01-01 Vsora Architecture de processeur asynchrone

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3900723A (en) * 1974-05-28 1975-08-19 Control Data Corp Apparatus for controlling computer pipelines for arithmetic operations on vectors
KR860001434B1 (ko) * 1980-11-21 1986-09-24 후지쑤 가부시끼가이샤 데이타 처리시 스템
JPS57209570A (en) * 1981-06-19 1982-12-22 Fujitsu Ltd Vector processing device
JPS58106636A (ja) * 1981-12-18 1983-06-25 Hitachi Ltd パイプライン演算装置
JPS59160267A (ja) * 1983-03-02 1984-09-10 Hitachi Ltd ベクトル処理装置
US4661900A (en) * 1983-04-25 1987-04-28 Cray Research, Inc. Flexible chaining in vector processor with selective use of vector registers as operand and result registers
JPS60136875A (ja) * 1983-12-26 1985-07-20 Hitachi Ltd ベクトル演算器
FR2606186B1 (fr) * 1986-10-31 1991-11-29 Thomson Csf Processeur de calcul comportant une pluralite d'etages relies en serie, calculateur et procede de calcul mettant en oeuvre ledit procede
WO1988009016A1 (en) * 1987-05-14 1988-11-17 Fujitsu Limited Vector processor for processing recurrent equations at a high speed
US4949247A (en) * 1988-02-23 1990-08-14 Stellar Computer, Inc. System for transferring multiple vector data elements to and from vector memory in a single operation

Also Published As

Publication number Publication date
JPH02266468A (ja) 1990-10-31
EP0391417A3 (de) 1991-06-12
US5251323A (en) 1993-10-05
EP0391417A2 (de) 1990-10-10
DE69022871D1 (de) 1995-11-16
EP0391417B1 (de) 1995-10-11
JP3068138B2 (ja) 2000-07-24

Similar Documents

Publication Publication Date Title
DE69022871T2 (de) Vektorverarbeitungsvorrichtung, die imstande ist, iterative Hochgeschwindigkeitsoperationen zu verrichten.
DE2934971C2 (de) Nach dem Fließbandprinzip arbeitender Zentralprozessor
DE3854321T2 (de) Populationszählung in Rechnersystemen.
DE3401995C2 (de)
DE69129723T2 (de) Prozessorelement für Datenakkumulationsrechnungen, Verarbeitungseinheit und Prozessor
DE10393918T5 (de) Effiziente Multiplikation kleiner Matrizen durch Verwendung von SIMD-Registern
DE1915818B2 (de) Steuerschaltung für ein elektronisches Datenverarbeitungssystem
DE2311220A1 (de) Digital-informations-verarbeitungsvorrichtung zur zeichenerkennung
DE1282337B (de) Programmgesteuerte elektronische Rechenanlage
DE2715073A1 (de) Mikroprogrammierte rechner-steuervorrichtung
DE3400723C2 (de)
DE3485771T2 (de) Leistungsfaehiger paralleler vektorprozessor.
DE2640124A1 (de) Digitale prozessoren fuer transformationsklassen zur verdichtung von mehrdimensionalen daten
DE3888230T2 (de) Einrichtung und Verfahren zur Durchführung einer Schiebeoperation mit einer Multipliziererschaltung.
DE68926154T2 (de) Pipelineprozessor zur Durchführung des LMS Algorithmus
DE3507584C2 (de)
DE3930313C2 (de)
DE3854608T2 (de) Vektorrechnerschaltung, welche schnell eine Berechnung auf drei Eingangsvektoren ausführen kann.
DE602004008818T2 (de) Verfahren zur Bezugnahme auf die Adresse von Vektordaten und Vektorprozessor
DE69501581T2 (de) Verfahren zum Erzeugen eines Fehlerkorrekturparameters in Verbindung mit der Verwendung von modularen Operationen nach der Montgomery-Methode
DE3447530C2 (de)
DE3486073T2 (de) Vektorverarbeitungsgeraet.
DE69521464T2 (de) Paralleler Prozessor
DE69900142T2 (de) Verfahren zur Ausführung der modularen Multiplikation nach der Montgomery-Methode
DE10204647A1 (de) Matrizenrechner des Zeitteilungstyps

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee