DE3486073T2 - Vektorverarbeitungsgeraet. - Google Patents

Vektorverarbeitungsgeraet.

Info

Publication number
DE3486073T2
DE3486073T2 DE8484111542T DE3486073T DE3486073T2 DE 3486073 T2 DE3486073 T2 DE 3486073T2 DE 8484111542 T DE8484111542 T DE 8484111542T DE 3486073 T DE3486073 T DE 3486073T DE 3486073 T2 DE3486073 T2 DE 3486073T2
Authority
DE
Germany
Prior art keywords
vector
registers
written
register
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE8484111542T
Other languages
English (en)
Other versions
DE3486073D1 (de
Inventor
Hiroyuki C O Nec Cor Izumisawa
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
Application granted granted Critical
Publication of DE3486073D1 publication Critical patent/DE3486073D1/de
Publication of DE3486073T2 publication Critical patent/DE3486073T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • G06F15/8076Details on data register access

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Description

    HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein Vektorverarbeitungsgerät zur Durchführung von Vektoroperationen für wissenschaftliche und technische Berechnungen.
  • Parallel mit der sich immer noch weiter ausbreitenden Anwendung von Computern, nimmt die Nachfrage nach Hochgeschwindigkeitsdatenverarbeitung mittels Computer zu. Heutzutage sind umfassend Ultrahochgeschwindigkeitscomputer oder Supercomputer in Entwicklung, mit deren Realisierung dieser Nachfrage erfolgreich begegnet werden kann. In einem Supercomputer wird eine riesige Menge von zu verarbeitenden Daten als eine Masse von Vektordaten betrachtet. d. h. geordnete eindimensionale Daten ( Vektordaten ), und diese werden mit hoher Geschwindigkeit von einem Vektorverarbeitungsgerät verarbeitet, dessen Funktionsweise auf einer Pipelinetechnik basiert, die in der Veröffentlichung "The Architecture of Pipelined Computers", pp 1-5, herausgegeben von McGraw - Hill Book Company 1981, beschrieben wird. Für die oben beschriebenen Typen von Vektorverarbeitungsgeräten kann sich auf das U.S. Patent 4,128,880 bezogen werden. Das beschriebene Gerät umfaßt mehrere Vektorregister, wobei jedes einzelne einen geordneten Satz von Datenelementen hält, einen Ausgabeauswahlschaltkreis, um taktweise die aufeinanderfolgenden Datenelemente, die von einem Vektorbefehl bezeichnet werden, auszugeben, eine Vektoroperationseinheit, die mit dem Pipelinevektorbefehl zur Verarbeitung der Datenelemente verbunden ist, und einen Eingabeauswahlschaltkreis, um das Ergebnis, das von der Vektoroperationseinheit ausgegeben wird in das Vektorregister zu schreiben, das von dem Vektorbefehl bezeichnet wird.
  • Dort, wo ein solches bekanntes Vektorverarbeitungsgerät verwendet wird, um beispielsweise ein inneres Produkt zu berechnen, das oft bei Strömungsgleichungen und anderen wissenschaftlichen und technologischen Berechnungen auftritt, d. h. eine Operation, in der ein folgendes Ergebnis einer Multiplikation zum Ergebnis der vorhergehenden Multiplikation addiert wird, und Zwischenergebnisse der Operation in ein gemeinsames Vektorregister gespeichert werden. Daraus folgt, daß im Falle einer Addition von Zwischenergebnissen die Operation mit einem gemeinsamen Vektorregister durchgeführt wird, wobei das Pipelinesystem zur Umstellung deaktiviert wird und dadurch die Verarbeitungsrate sinkt.
  • In weiteren Einzelheiten beschreibt das U.S. Patent 4,128,880 in Fig. 9, Spalte 17, Zeilen 1-39 anhand von Beispielen kumulative Summierung eines Vektors mit 64 Elementen. Die Summierung wird so durchgeführt, daß die Elemente, die in einem Vektorregister V1 gespeichert sind, Element für Element zu einem Startwert "0" addiert werden, und das Ergebnis in einem Vektorregister V2 gespeichert wird. Das gespeicherte Ergebnis der Summierung wird der Operationseinheit wieder als Operand zugeführt. Angenommen, daß n Takte für einen Zyklus benötigt werden, der mit dem Lesen eines bestimmten Operanden beginnt und damit endet, diesen über die Operationseinheit als nächsten Operanden einzusetzen, ist mit dieser vorgeschlagenen Methode die Anzahl der Ergebnisse, die schließlich erhalten werden gleich (Gesamtzahl der Elemente)/n, Summierung in Intervallen von n. In diesem speziellen Beispiel ergibt die Vektorsummierung der vierundsechzig Elemente, da n=8, acht Summierungsergebnisse in Intervallen von acht. Um ein kumulatives Ergebnis der vierundsechzig Elemente auf der Grundlage der acht Zwischenergebnisse zu erhalten, sind (8-1) skalare Operationen erforderlich, wobei in jeder ein Ergebnis der Operation als Operand für die nächste Operation verwendet wird. Das Problem mit den skalaren Operationen ist, daß sie viel mehr Zeit benötigen als Vektoroperationen. JP-A-57-105078 offenbart einen Vektorprozessor gemäß dem Oberbegriff des Patentanspruchs der vorliegenden Erfindung. Der bekannte Steuerschaltkreis läßt zu, daß die Datenelemente gleichzeitig in mehrere Register geschrieben werden.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist deshalb eine Aufgabe der vorliegenden Erfindung, ein Vektorverarbeitungsgerät bereitzustellen, das das oben erörterte Problem löst und Operationen zur schnellen Berechnung des inneren Produkts beschleunigt. Diese Aufgabe wird mit den Merkmalen des Patentanspruchs 1 gelöst.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorstehenden und weitere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden ersichtlich durch die folgende detaillierte Beschreibung, die anhand der beiliegenden Zeichnungen vorgenommen wird; es zeigen:
  • Fig. 1 eine Ausführungsform der vorliegenden Erfindung;
  • Fig. 2 ein Diagramm eines beispielhaften und detaillierten Aufbaus eines Teils des Geräts aus Fig. 1;
  • Fig. 3 ein Diagramm einer Abwandlung des in Fig. 2 gezeigten Schaltkreises; und
  • Fig. 4A bis 4D eine Operationsverarbeitung gemäß dieser Erfindung.
  • In allen Figuren bezeichnen die gleichen Bezugszeichen die gleichen Strukturelemente.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Gemäß Fig. 1 umfaßt ein Vektorverarbeitungsgerät als Ausführungsform der Erfindung vier Vektorregister 1, 2, 3 und 4, einen Ausgabeauswahlschaltkreis 5, einen Pipeline-Addierer 6, einen Multiplizierer 7, einen Eingabeselektor 8, einen Schreibsteuerschaltkreis 9 und vier Adreßzähler 10, 11, 12 und 13.
  • Jedes Vektorregister 1 bis 4 kann vierundsechzig Datenelemente halten, während die Adreßzähler 10, 11, 12 und 13 mit den jeweiligen Vektorregistern 1 bis 4 verbunden sind, um ihre Adressen zu bezeichnen. Jeder Adreßzähler 10 bis 13 ist so aufgebaut, daß zu Beginn eines Vektorbefehls ein Wert "0" gehalten wird, und daß bei jedem Takt hochgezählt wird.
  • Wenn der Operationscode eines Vektorbefehls Laden bedeutet, werden Datenelemente LOD von einem Hauptspeicher (nicht gezeigt) nacheinander in eines der Vektorregister 1 bis 4 geschrieben, das von dem Eingabeselektor 8 bei jedem Takt ausgewählt wird. Die Adressen der Vektorregister 1 bis 4 und des Hauptspeichers sind durch den ersten bzw. zweiten Teil des Operationscodes des Vektorbefehls bezeichnet. Ebenfalls spezifiziert durch den Vektorbefehl ist die Anzahl der Datenelemente, die in das niedrigste Vektorregister geladen werden.
  • Wenn der Operationscode eines Vektorbefehls eine Addition spezifiziert, wählt der Ausgabeselektor 5 zwei der Vektorregister 1 bis 4 aus, die durch den zweiten bzw. dritten Operandenabschnitt des Vektorbefehls bezeichnet werden, um die dabei gehaltenen Datenelemente reihenweise bei jedem Takt dem Addierer 6 zuzuführen. Der Pipeline-Addierer 6 summiert nacheinander die Datenelemente, die vom Ausgabeselektor 5 ausgegeben werden und die Summierungsergebnisse werden zum Selektor 8 geleitet. Der Eingabeelektor 8 schreibt bei jedem Takt der Reihe nach die Summierungsergebnisse in eines der Vektorregister 1 bis 4, das durch den ersten Abschnitt des Operationscodes bezeichnet wird.
  • Das oben beschriebene Verfahren wird gleichermaßen auch in den Fällen angewendet, in denen der Operationscode eines Vektorbefehls eine Multiplikation spezifiziert, mit der Ausnahme, daß der Multiplizierer 7 anstelle des Pipeline- Addierers 6 tätig wird, der für Additionen eingesetzt wird.
  • Nun, wenn der Operationscode eines Vektorbefehls die Berechnung eines inneren Produkts spezifiziert, wird der Schreibsteuerschaltkreis 9 aktiviert. Ein Beispiel für die Berechnung eines inneren Produkts zeigt folgendes Programm:
  • DO 10 I = 1, VL
  • S = S + A(I) * B(I)
  • 10 CONTINUE
  • Mit Bezug auf Fig. 2 ist ein detaillierter Aufbau des Schreibsteuerschaltkreises 9 zusammen mit den Vektorregistern 1 und 2, den Adreßzählern 10 und 11, und den Eingaberegistern 81 und 82 gezeigt, die einen Teil des Selektors 8 von Fig. 1 bilden. Es sollte in Fig. 2 beachtet werden, daß die Register 1 und 2 und die Zähler 10 und 11 nur der Veranschaulichung dienen und stellvertretend für beliebige zwei der Register 1 bis 4 und beliebige zwei der Zähler 1 bis 4 stehen, die in Fig. 1 gezeigt sind; die Vektorregister und die zwei Adreßzähler, die ausgewählt werden, werden von dem Vektorbefehl bezeichnet.
  • In Fig. 2 umfaßt die Schreibsteuerung 9 einen Adreßzähler 91, einen Koinzidenzschaltkreis 92, ein RS-Flipflop (F/F) 93, ein D-F/F 94 und drei UND-Gatter 95, 96 und 97.
  • Wenn ein Ergebnis der Operationsergebnis, das vom Multiplizierer 7 oder vom Addierer 6 bereitgestellt wird, als Antwort auf einen Vektorbefehl, der eine Berechnung des inneren Produkts spezifiziert, in das Vektorregister geschrieben werden soll, werden zuerst eine Vektorlänge VL und ein Startsignal ST vom Steuerabschnitt ( nicht gezeigt ) des Vektorverarbeitungsgeräts zum Schaltkreis 9 geschickt. Das Startsignal ist ein Kurzzeitimpuls und wird nach einem Takt deaktiviert. Als Antwort auf das Signal ST, wird das F/F 93 gesetzt und der Adreßzähler 91 nimmt die Vektorlänge VL an. Die Bedingung, daß F/F 93 gesetzt ist, besteht solange fort, bis vom Koinzidenzschaltkreis 92 logisch "0" zu einem Reset- Eingangsanschluß von F/F 93 geschickt wird.
  • Das F/F 94 wird anfangs in seinem Reset-Zustand gehalten, so daß eine UND-Bedingung am UND-Gatter 96 erfüllt ist. Dann entläßt das UND-Gatter 96 logisch "1" zu einem Schreibfreigabeanschluß WE des Vektorregisters 1. Inzwischen steht der Ausgang des UND-Gatters 97 auf logisch "1". Folglich dürfen die Datenelemente (Operationsergebnisse) 14, die Eingangssignale beider Eingaberegister 81 und 82, nur in das Vektorregister 1 geschrieben werden. Da der Adreßzähler 10 zu Beginn mit der Adresse "0" geladen ist, wird das erste der Datenelemente 14 (Nummer 0) mit dem ersten Takt in die Adresse 0 des Vektorregisters 1 geschrieben. Der Adreßzähler 10 wird, als Antwort auf die Ausgabe von logisch "1", durch das UND- Gatter 96, erhöht.
  • Unter dieser Bedingung entläßt das UND-Gatter 95 logisch "1", so daß das F/F 94 mit dem zweiten Takt gesetzt wird. Dies bewirkt, daß das UND-Gatter 96 logisch "0" und das UND-Gatter 97 logisch "1" erzeugt, und läßt auf diese Weise zu, daß das zweite der Datenelemente 14 (Nummer 1) in die Adresse 0 des zweiten Vektorregisters 2 geschrieben wird. Der Adreßzähler 11 wird, als Antwort auf die Ausgabe von logisch "1" durch das UND-Gatter 97, erhöht.
  • Im dritten Takt wird das F/F 94 zurückgesetzt, wodurch das dritte der Datenelemente 14 wieder in die Adresse 1 des Registers 1 geschrieben wird. Auf diese Weise werden abwechselnd die ungeradzahligen Datenelemente 14 in das Register 1 geschrieben und die geradzahligen in das Register 2.
  • Inzwischen wurde der Adreßzähler 91 nach dem zweiten Takt, der das Startsignal ST als Antwort auf einem Taktimpuls deaktiviert, um 1 (eins) verringert. Der Inhalt des Adreßzählers 91 wird ebenfalls zum Koinzidenzschaltkreis 92 geschickt, um mit 1 verglichen zu werden. Sobald als der Inhalt des Zählers gleich 1 ist, schickt der Schaltkreis 92 logisch "1" zum Reset-Eingang von F/F 93, um ihn zurückzusetzen. Als Folge davon stehen die Ausgänge beider Gatter 96 und 97 auf logisch "0", so daß die Datenelemente 14 nicht mehr in die Register 1 oder 2 geschrieben werden. Auf die beschriebene Weise werden ausschließlich Datenelemente 14, deren Anzahl gleich der Vektorlänge VL ist, in die Vektorregister 1 und 2 geschrieben.
  • Wenn bei der Berechnung des inneren Produkts in dem vorstehend gezeigten Programm die Vektorlänge VL gleich 8 ist (der Anfangswert von S wird mit 0 angenommen), wird das Programm in vier verschiedenen Unterprogrammen ausgeführt.
  • Mit Bezug auf Fig. 4A beginnt das erste Unterprogramm damit, zwei Sätze von Datenelementen A(1)-A(8) und B(1)-B(8), die beispielsweise im Vektorregister 1 bzw. 2 gehalten werden, als Operanden über den Ausgabeselektor 5 zum Multiplizierer 7 zu schicken. Der Multiplizierer 7 führt eine Multiplikation von zwei Operanden durch, um acht Multiplikationsergebnisse A(1)*B(1) bis A(8)*B(8) zu erzeugen. Diese acht Ergebnisse werden ausschließlich in die Adressen 0 bis 3 beispielsweise der Vektorregister 3 und 4 geschrieben. Im einzelnen werden die Ergebnisse der Multiplikation A(1)*B(1), A(3)*B(3), A(5)*B(5) und A(7)*B(7) in die Adressen 0, 1, 2 bzw. 3 des Vektorregisters 3 geschrieben, während die Ergebnisse A(2)*B(2), A(4)*B(4), A(6)*B(6) und A(8)*B(8) in die Adressen 0, 1, 2 bzw. 3 des Registers 4 geschrieben werden. Der Adreßzähler 91 wurde vom ersten Unterprogramm mit der Vektorlänge VL = 8 initialisiert.
  • Als nächstes werden im zweiten Unterprogramm, das in Fig. 4B gezeigt ist, die vier Ergebnisse der Multiplikation A(1)*B(1), A(3)*B(3), A(5)*B(5) und A(7)*B(7), die im Vektorregister 3 gespeichert sind und diejenigen von A(2)*B(2), A(4)*B(4), A(6)*B(6) und A(8)*B(8), die im Vektorregister 4 gespeichert sind, nacheinander zum Addierer 6 geschickt, der über das Pipelinesystem vier Mal eine Addition durchführt. Die Ergebnisse der Addition A(1)*B(1)+A(2)*B(2) und A(5)*B(5)+A(6)*B(6) werden in die Adressen 0 und 1 des Registers 1 geschrieben, während die Ergebnisse A(3)*B(3)+ A(4)*B(4) und A(7)*B(7)+A(8)*B(8) in die Adressen 0 und 1 des Registers 2 geschrieben werden. Der Adreßzähler 91 wurde vom zweiten Unterprogramm mit der Vektorlänge VL = 8 initialisiert.
  • Im dritten Unterprogramm, das in Fig. 4C gezeigt ist, werden die vorstehend beschriebenen Additionsergebnisse, die paarweise in den Registern 1 und 2 gespeichert sind, in gleicher Weise durch das Pipelinesystem summiert. Nachdem der Adreßzähler 91 mit einer Vektorlänge VL = 2 initialisiert worden ist, werden das Ergebnis A(1)*B(1)+A(2)*B(2)+A(3)*B(3) +A(4)*B(4) in die Adresse 0 des Registers 3 und das Ergebnis A(5)*B(5)+A(6)*B(6)+A(7)*B(7)+A(8)*B(8) in die Adresse 0 des Registers 4 geschrieben.
  • Weiterhin werden im vierten Unterprogramm, das in Fig. 4D gezeigt ist, der Inhalt der Adresse 0 des Vektorregisters 3 und derjenige der Adresse 0 des Vektorregisters 4 in der beschriebenen Weise summiert, so daß das endgültige Ergebnis A(I)*B(I) in die Adresse 0 beispielsweise des Vektorregisters 1 geschrieben wird. Der Adreßzähler 91 war zu diesem Zeitpunkt mit 1 initialisiert.
  • Die Gleichung S = S + A(I)*B(I) in der obigen Beschreibung schränkt die vorliegende Erfindung nicht ein. Falls erwünscht, kann die Gleichung so gebildet werden, daß die Operanden A(I) und B(I) summiert werden oder so, daß das Ergebnis der Operation aus den Operanden A(I) und B(I) mit S multipliziert, von S subtrahiert oder durch S dividiert wird.
  • In der dargestellten Ausführungsform werden die Zwischenergebnisse der Operation abwechselnd auf die Register 1 und 2 verteilt. Das geschieht jedoch nur aus Gründen der Anschaulichkeit. Das heißt, der Zweck der vorliegenden Erfindung liegt darin, Zwischenergebnisse ausschließlich in mehrere Vektorregister zu schreiben. Beispielsweise kann der Schreibsteuerschaltkreis 9, der in Fig. 1 gezeigt ist, so aufgebaut sein, wie im einzelnen in Fig. 3 gezeigt ist, um die erste Hälfte der Zwischenergebnisse in die Adressen 0 bis (VL/ 2-1 des Vektorregisters 1 zu schreiben, und die zweite Hälfte in die gleichen Adressen des Vektorregisters 2.
  • In der Abwandlung gemäß Fig. 3 wird das höherwertigste Bit des Inhalts des Adreßzählers 91 verwendet, um zwischen den Vektorregistern 1 und 2 zu schalten. Die Adreßzähler 10, 11 und 91, der Koinzidenzschaltkreis 92, ein F/F 93, die UND- Gatter 99 und 100 und die Eingaberegister 81 und 82, die in Fig. 3 gezeigt sind, sind die jeweiligen Gegenstücke zu den Adreßzählern 10, 11 und 91, dem Koinzidenzschaltkreis 92, einem F/F 93, den UND-Gattern 96 und 97, den Vektorregistern 1 und 2 und den Eingaberegistern 81 und 82, die in Fig. 2 gezeigt sind. Ebenfalls hat ein UND-Gatter 98 die gleiche Funktion wie das UND-Gatter 99 und F/F 94.
  • In jeder der gezeigten und beschriebenen Ausführungsform, können die Vektorregister und die Operationseinheiten fest miteinander verbunden werden, um den Ausgabeauswahlschaltkreis zu eliminieren.
  • Zusammengefaßt wurde gezeigt, daß die vorliegende Erfindung ein Vektorverarbeitungsgerät bereitstellt, das ein Pipelinesystem auch für die Berechnung des inneren Produkts einstellen kann, bei der Zwischenergebnisse der Operation als Operanden verwendet werden.

Claims (1)

  1. Vektorverarbeitungsgerät mit:
    mehreren Vektorregistern (1-4), die jeweils einzelne geordnete Datenelemente halten;
    einem Pipeline-Vektorverarbeitungsgerät (5-7) zum Verarbeiten von Datenelementen, die nacheinander von den Vektorregistern (1-4) übertragen werden, die durch einen Vektorbefehl angesprochen werden; und mit
    einem Eingabeauswahlschaltkreis (8), um Ergebnisse der Operation, die von dem Pipeline-Vektorverarbeitungsgerät (5-7) ausgeführt wird, in die Vektorregister (1-4) zu übertragen, die von dem Vektorbefehl angesprochen werden;
    gekennzeichnet durch:
    eine Schreibsteuereinrichtung (9-13), um die Schreiboperationen zum Schreiben von Daten oder Zwischengebnissen der Operation in der Weise zu steuern, daß die Hälfte der Daten oder Ergebniselemente in ein erstes der Vektorregister (1-4) geschrieben wird und daß die andere Hälfte der Daten oder Ergebniselemente in die entsprechenden Adressen eines zweiten der Vektorregister (1-4) geschrieben wird.
DE8484111542T 1983-09-28 1984-09-27 Vektorverarbeitungsgeraet. Expired - Lifetime DE3486073T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58179621A JPS6072069A (ja) 1983-09-28 1983-09-28 ベクトル演算処理装置

Publications (2)

Publication Number Publication Date
DE3486073D1 DE3486073D1 (de) 1993-03-25
DE3486073T2 true DE3486073T2 (de) 1993-06-09

Family

ID=16068956

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8484111542T Expired - Lifetime DE3486073T2 (de) 1983-09-28 1984-09-27 Vektorverarbeitungsgeraet.

Country Status (4)

Country Link
US (1) US4761753A (de)
EP (1) EP0137422B1 (de)
JP (1) JPS6072069A (de)
DE (1) DE3486073T2 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6267676A (ja) * 1985-09-19 1987-03-27 Nec Corp ベクトルデ−タ処理装置
JPH06103494B2 (ja) * 1986-11-18 1994-12-14 株式会社日立製作所 ベクトル処理装置の制御方式
US4916651A (en) * 1988-01-29 1990-04-10 Texas Instruments Incorporated Floating point processor architecture
JP2806524B2 (ja) * 1988-03-04 1998-09-30 日本電気株式会社 ベクトル演算命令発行制御方法
EP0369396A3 (de) * 1988-11-14 1992-10-07 Nec Corporation Arithmetische Verarbeitungseinheit mit der Fähigkeit, Vektor/Matrix-Verarbeitung auszuführen
US5218564A (en) * 1991-06-07 1993-06-08 National Semiconductor Corporation Layout efficient 32-bit shifter/register with 16-bit interface
US7395298B2 (en) * 1995-08-31 2008-07-01 Intel Corporation Method and apparatus for performing multiply-add operations on packed data
US6385634B1 (en) * 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
US7430578B2 (en) * 2001-10-29 2008-09-30 Intel Corporation Method and apparatus for performing multiply-add operations on packed byte data
CN107315718B (zh) * 2016-04-26 2020-08-21 中科寒武纪科技股份有限公司 一种用于执行向量内积运算的装置和方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
US4302818A (en) * 1979-07-10 1981-11-24 Texas Instruments Incorporated Micro-vector processor
JPS5727360A (en) * 1980-07-25 1982-02-13 Fujitsu Ltd Accumulation instruction processing system
JPS5730077A (en) * 1980-07-31 1982-02-18 Fujitsu Ltd Accumulated instruction processing system
KR860001434B1 (ko) * 1980-11-21 1986-09-24 후지쑤 가부시끼가이샤 데이타 처리시 스템
JPS5798070A (en) * 1980-12-12 1982-06-18 Fujitsu Ltd Data processing device
JPS57105078A (en) * 1980-12-23 1982-06-30 Hitachi Ltd Vector processor
JPS57155666A (en) * 1981-03-20 1982-09-25 Fujitsu Ltd Instruction controlling system of vector processor
JPS58114274A (ja) * 1981-12-28 1983-07-07 Hitachi Ltd デ−タ処理装置
JPS58149556A (ja) * 1982-02-27 1983-09-05 Fujitsu Ltd 並列処理装置
JPS58149555A (ja) * 1982-02-27 1983-09-05 Fujitsu Ltd 並列処理装置
JPS59160267A (ja) * 1983-03-02 1984-09-10 Hitachi Ltd ベクトル処理装置
JPS59173876A (ja) * 1983-03-24 1984-10-02 Fujitsu 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
JPS6057467A (ja) * 1983-09-09 1985-04-03 Nec Corp ベクトルデ−タ処理装置
JPS6077265A (ja) * 1983-10-05 1985-05-01 Hitachi Ltd ベクトル処理装置
US4600986A (en) * 1984-04-02 1986-07-15 Sperry Corporation Pipelined split stack with high performance interleaved decode
US4620275A (en) * 1984-06-20 1986-10-28 Wallach Steven J Computer system

Also Published As

Publication number Publication date
EP0137422A3 (en) 1988-08-31
JPS6248873B2 (de) 1987-10-15
DE3486073D1 (de) 1993-03-25
EP0137422A2 (de) 1985-04-17
US4761753A (en) 1988-08-02
JPS6072069A (ja) 1985-04-24
EP0137422B1 (de) 1993-02-17

Similar Documents

Publication Publication Date Title
DE2819571C2 (de)
DE3784050T2 (de) Ein paralleler datenprozessor.
DE3210816C2 (de)
DE2912287C3 (de) Datenverarbeitungsanlage
DE3686828T2 (de) Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration.
DE3586603T2 (de) Datenprozessor fuer interpretierende und kompilierte sprache.
DE3933171A1 (de) Einzelchip-prozessor fuer komplexe gleitkommazahlen
DE2953861C2 (de)
DE2455803A1 (de) Mehrprozessor-datenverarbeitungsanlage
DE4403917C2 (de) Vorrichtung zum Berechnen einer Bit-Besetzungszählung
DE69632655T2 (de) Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen
DE3486073T2 (de) Vektorverarbeitungsgeraet.
DE3485771T2 (de) Leistungsfaehiger paralleler vektorprozessor.
DE2625113C2 (de) Speicherschutzeinrichtung
DE3507584C2 (de)
DE3636105A1 (de) Digitaler signalprozessor
DE3307194C2 (de)
DE3501903A1 (de) Im pipelinebetrieb arbeitende datenverarbeitungseinrichtung
DE2227761B2 (de) Speichersystem
DE3314139C2 (de)
DE2617485A1 (de) Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen
DE68903280T2 (de) Vektorschlange in computern mit vektorregister.
DE2625183C3 (de) Datenverarbeitungseinrichtung
EP0598112B1 (de) Verfahren und anordnung zum bilden der summe einer kette von produkten
EP0858178A1 (de) Verfahren und Vorrichtung zum Mischen von digitalen Audio-Signalen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition