DE3401995A1 - Vektorprozessor - Google Patents

Vektorprozessor

Info

Publication number
DE3401995A1
DE3401995A1 DE3401995A DE3401995A DE3401995A1 DE 3401995 A1 DE3401995 A1 DE 3401995A1 DE 3401995 A DE3401995 A DE 3401995A DE 3401995 A DE3401995 A DE 3401995A DE 3401995 A1 DE3401995 A1 DE 3401995A1
Authority
DE
Germany
Prior art keywords
vector
processing
command
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.)
Granted
Application number
DE3401995A
Other languages
English (en)
Other versions
DE3401995C2 (de
Inventor
Yasuhiko Hadano Hatakeyama
Shigeo Hachioji Nagashima
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3401995A1 publication Critical patent/DE3401995A1/de
Application granted granted Critical
Publication of DE3401995C2 publication Critical patent/DE3401995C2/de
Granted 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
    • G06F15/8084Special arrangements thereof, e.g. mask or switch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations

Landscapes

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

Description

HITACHI, LTD., Tokyo Japan
Vektorprozessor
Die Erfindung betrifft einen Vektorprozessor, der jeweils mehrere Datenübertragungsschaltungen, Vektorregister und Vektorarithmetikeinheiten aufweist.
Bei herkömmlichen Vektorprozessoren verwendet man zur Erhöhung der Verarbeitungsgeschwindigkeit bei simultaner Ausführung mehrerer Vektorbefehle mehrere Vektorarithmetikeinheiten (weiterhin einfach als Arithmetikeinheiten bezeichnet) und/ oder mehrere Datenübertragungsschaltungen (weiterhin als Datenübertragungsschaltungen bezeichnet), die dem Datentransfer zwischen einem Hauptspeicher und Vektorregistern dienen. Falls jedoch die Anzahl der Befehle einer Vektorbefehlsgruppe, die eine aktuelle Vektorvefarbeitung darstellt, klein ist, gibt es Fälle, wo diese Vielzahl der Arithmetikeinheiten und der Datenübertragungsschaltungen nicht simultan verwendet werden, so daß sich die Frage der effektiven Nutzung der Betriebsmittel ergibt.
Man könnte, um dieses Problem zu lösen, in einem zwei Arithmetikeinheiten enthaltenden Vektorprozessor, die zwei Arithmetikeinheiten als eine Arithmetikeinheit vom Standpunkt der Soft-
81-A8323-03/AtAl
COPY
Datenübertragungsschaltungen und Vektorarithmetikeinheiten verwenden, wodurch die Vektorverarbeitungen jeweils in der ersten oder zweiten Steuerbetriebsart abhängig von der Art der Vektorrechnung ausgeführt werden.
2. Vektorprozessor nach Anspruch 1,
dadurch gekennzeichnet,
daß Vektorrechnungen aus einfachen Vektorbefehlen, die nur jeweils Datengruppen oder Datenpaare mit jeweils gleicher Elementanzahl verarbeiten/ in der ersten Steuerbetriebsart ausgeführt, werden, und daß
die Verarbeitung komplizierter Vektorbefehle, die Operationen zwischen Datengruppen oder Datenpaaren mit jeweils unterschiedlicher Anzahl von Elementen erfordern,in der zweiten Steuerbetriebsart erfolgt
ware betrachten und die Verarbeitung der Elemente mit geraden Elementnummern durch die eine Arithmetikeinheit und die Verarbeitung der Elemente mit ungeraden Nummern gleichzeitig durch die andere Arithmetikeinheit ausführen und dadurch die Verarbeitungsgeschwindigkeit auf das Doppelte der normalen Geschwindigkeit erhöhen. Diese Erhöhung der Verarbeitungsgeschwindigkeit ist bei einfachen Vektorbefehlen (weiterhin als einfache Befehle bezeichnet) wirksam, die nur Datengruppen derselben Elementzahl verarbeiten, wie zum Beispiel bei einem Vektoradditionsbefehl.
A(i) = B(i) + C(i) (wobei i = 0, 2, 3, ..., n)
Zusätzlich zu solchen einfachen Befehlen gibt es jedoch auch komplizierte Befehle, die die Verarbeitung von Datengruppen mit unterschiedlicher Elementzahl erfordern (und weiterhin als Makrobefehle bezeichnet werden), wie zum Beispiel den folgenden Iterationsbefehl
A(i+1) = A(i)*B(i) + C(i)
(wobei i = 0, 1, 2, .... n)
ist. · ..-V
Wenn ein Vektorprozessor, bei dem die Vektorverarbeitung durch Teilung der Elemente in geradzahlige und in ungeradzahlige Elemente erfolgt, einen solchen Makrobefehl ausführt, ist ein Datenbus zwischen zwei Arithmetikeinheiten und damit eine komplexe Steuerung erforderlich, weshalb eine Realisierung tatsächlich unmöglich ist. Deshalb verwenden herkömmliche Vektorprozessoren eines der folgenden Verfahren:
Ein Verfahren, bei dem kein Makrobefehl geliefert wird; ein Verfahren, das keinen Aufbau, der die Vektorelemente in geradzahlige und ungerad-
zahlige einteilt zur Ausführung der oben beschriebenen Verarbeitung aufweist; ferner ein Verfahren, das Makrobefehle als Sealare anstatt Vektoren verarbeitet. Jede Methode ist bezüglich Verarbeitungsgeschwindigkeit und Leistungsfähigkeit unbefriedigend.
Es ist deshalb Aufgabe der Erfindung,einen Vektorprozessor mit erhöhter Verarbeitungsgeschwindigkeit und verbesserter Leistungsfähigkeit im Vergleich mit einem herkömmlichen Vek- ' torprozessor zu ermöglichen.
Zur Lösung dieser Aufgabe be.steht ein erfindungsgemäßer Vektorprozessor aus jeweils mehreren Datenübertragungsschaltungen und/oder Arithmetikeinheiten, die eine schnelle Verarbeitung durch gleichzeitige und parallele Verarbeitung mehrerer Vektorbefehle ermöglicht. Dabei findet eine Kennzeichnung der Art der Vektorverarbeitung statt, wobei bei solchen Vektorverarbeitungen, die nur einfache Befehle aufweisen, die Daten- · Übertragungsschaltungen, Vektorregister und arithmetischen Einheiten entsprechend der Kennzeichnung eines Flipflops für die Betriebsartsteuerung in mehrere Sätze eingeteilt werden, wodurch die Vektorverarbeitung durch diese Sätze in eine Parallelverarbeitung eingeteilt wird. Die Vektorverarbeitung von Makrobefehlen wird ohne diese Einteilung ausgeführt.
Die Erfindung wird anhand der Zeichnung näher beschrieben. Es zeigen:
Fig. 1 ein Blockschaltbild eines Ausführungsbeispiel der Erfindung;
Fig. 2A
bis 2C Beispiele der Formatierung eines EXVP-Befehls und Beispiele des davon abhängigen Datenformats;
Fig. 3A
und 3Β ein Programmbeispiel sowie eine daraus sich ergebende Vektorbefehlsfolge, um die Verarbeitung gemäß der Erfindung zu beschreiben;
Fig. 4 eine Vektorbefehlsfolge in einem Hauptspeicher und den Aufbau der Vektordaten darin;
Fig. 5 ein Detailschaltbild der Adressregistergruppen und der Datenübertragungsschaltungen in Fig. 1;
Fig. 6 Anfangswerte der Adressregistergruppe; und
Fig. 7
.und 8 jeweils Zeitdiagramme der Verarbeitung in der je-
weiligen erfindungsgemäßen Betriebsart.
Figur 1 zeigt ein Blockschaltbild eines Ausführungsbeispiels gemäß der Erfindung. Anhand dieses Blockschaltbilds wird ein Überblick über die gesamte Verarbeitung gegeben. Es werden nämlich aus einem Hauptspeicher (weiterhin als MS abgekürzt) 1 ausgelesene Scalarbefehle, gesteuert von einer Hauptspeichersteuereinheit 111 von einem Scalarprozessor 3 über einen Scalar-Befehls-Auslesebus 2 ausgelesen. Dabei ist der Scalarprozessor 3 ein gewöhnlicher Computer und enthält eine allgemeine Registergruppe 3-1. Durch das Auslesen eines Befehls, der den Verarbeitungsbeginn einer Vektorbefehlsfolge kennzeichnet (weiterhin als EXVP-Befehl bezeichnet), wird eine Vektorprozessor-Steuereinheit 5 in einem Vektorprozessor 4 durch den Scalarprozessor 3 aktiviert. Die Vektorprozessor-Steuereinheit 5 liest die Vektorbefehlsfolge beginnend von der vom EXVP-Befehl angegebenen Vektorbefehlskopfadresse aus, interpretiert diese und weist zur Ausführung der Vektorbefehle Datenübertragungsschaltungen 6-11, Vektorregister 12-0 bis 12-7 und Vektorarithmetikeinheiten 13 und 14 entsprechend dem Interpretationsergebnis an. Dabei werden die Datenübertragungsschaltungen 6 bis 9 für das Laden der Daten und die Datenübertragungsschaltungen 10 und 11 zum Speichern der .Daten verwendet. Eine Adressregistergruppe 16 speichert die Speicher-
adressen, die von den Datenübertragungsschaltungen.6-11 verwendet werden.
Die Vektorprozessor-Steuereinheit 5 weist ein Betriebsart-^ Steuerflipflop (FF) 5-1 auf. Der Scalarprozessor 3 aktiviert die Vektorprozessor-Steuereinheit 5, indem er den EXVP-Befehl ausführt und weist gleichzeitig die Betriebsart bezüglich der geteilten Verarbeitung oder der ungeteilten Verarbeitung __ der oben genannten Vektorbefehlsfolge an.Die Betriebsart, bei der die Vektorverarbeitung geteilt erfolgt, wird im folgenden PP (Paarverarbeitung) und die Betriebsart, wo die Verarbeitung ungeteilt erfolgt SP (Einfachverarbeitung) genannt. Der vom Scalarprozessor 3 angewiesene
PP- oder SP-Modus wird in das Betriebsart-Steuerflipflop 5-1 innerhalb der Vektorprozessor-Steuereinheit 5 gesetzt, j so daß die Vektorprozessor-Steuereinheit 5 befehlsabhängig mittels des Betriebsart-Steuerflipflops 5-1 steuert, ob die Datenübertragungsschaltungen 6-11, die Vektorregister 12-0 bis 12-7 und die Vektorarithmetikeinheiten 13 und 14. in mehrere Sätze eingeteilt werden oder nicht.
Fig. 2A zeigt ein Format des EXVP-Befehls. Dabei haben die Felder dieses Befehls folgende Bedeutung:
R1: Die Anzahl der zu verarbeitenden Vektorelemente (erster Operand)
R3: Unbenutzt
B2 + D2: Kopfadresse der Vektorbefehlsfolge.
Der Inhalt der Bitstelle 0 des durch das B2-Feld angegebenen « allgemeinen Registers wird nicht zur Erzeugung der Kopfadresse der Vektorbefehlsfolge verwendet, sondern kennzeichnet, ob die Betriebsart der geteilten Verarbeityng der Vektorbefehlsfolge vorliegt oder nicht. Dazu wird der. Inhalt der Bitstelle 0 des allgemeinen Registers in das Betriebsart-Steuer-
COPY
flipflop 5-1 innerhalb der Vektorprozessor-Steüereinheit 5 gesetzt.
Fig. 3A zeigt eine Do-Schleife in FORTRAN, die nach der Umsetzung eine in Fig. 3B dargestellte Vektorbefehlsfolge ergibt. Wir nehmen an, daß im MS 1 die Vektorbefehlsfolge 15—1 bis 15-5 und Vektordaten A(i), B(i), C(i) (wobei i = 0, 1, ..., 31 ist) in der in Figur 4 dargestellten Anordnung gespeichert sind. Wenn diese Vektorbefehle in der SP-Betriebsart verarbeitet werden, werden durch Ausführung des EXVP-Befehls die allgemeinen Register (weiterhin mit GR bezeichnet) 1 und 2 von Figur 2B gesetzt. Falls jedoch die Verarbeitung in der PP-Betriebsart erfolgt, wird die Bitstelle 0 des Registers GR1 auf "1" gesetzt.Figur 2C .zeigt, daß in den vier niederwertigsten Bitstellen des GR1 eine 8=1000 steht.
Anhand des in Figur 1 dargestellten Ausführungsbeispiels gemäß der Erfindung wird im folgenden die Verarbeitung der FORTRAN Do-Schleife von Figur 3 in der SP- und PP-Betriebsart beschrieben.
SP-Betriebsart:
Beim Auslesen des in Figur 2B dargestellten EXVP-Befehs erkennt der Scalarprozessor 3 die Kopfadresse 100 (16) der Vektorbefehlsfolge und die zu verarbeitende Vektorlänge VL = 1F (16) jeweils anhand der Inhalte des GR1 und GR2 der all- '' gemeinen Registergruppe 3-1 und überträgt diese Informationen der Vektorprozessor-Steuereinheit 5. Die damit vom Scalarprozessor 3 aktivierte Vektorprozessor-Steuereinheit 5 liest laut Anweisung durch den Scalarprozessor 3 die Vektorbefehlsfolge von der Kopfadresse 1 0 0 (16) an, interpretiert diese aufeinanderfolgend und weist zu deren Ausführung vorgegebene Datenübertragungsschaltungen, Vektorregister und Vektorarithmetikeinheiten an. Für die in Figur 3B dargestellte Vektorbefehlsfolge werden folgende Verarbeitungen ausgeführt:
ner Befehl 15-1 entspricht dem Laden des Originalvektors BCi) (mit i = 0, ..., 31) des in Figur 3A dargestellten FORTRAN-Programms. Bei diesem Ausführungsbeispiel wird dazu die Datenübertragungsschaltung 6 verwendet, obwohl die Ausführung des Befehls 15-1 mit dem Laden der Datenübertragungsschaltung 6-9 erfolgen könnte. Die Vektorprozessor-Steuereinheit 5 addiert VL = 1F (16) zum Adressregisterwert und aktiviert zur Ausführung des Befehls 15-1 die Datenübertragungsschaltung 6. Gleichzeitig addiert die Vektorprozessor-Steuereinheit 5 VL = 1F (16) zum VR (4) 12-4 auf der zu speichernden Seite und aktiviert das Schreiben. Die Datenübertragungsschaltung 6 berechnet unter Verwendung des durch die Steuereinheit 5 angegebenen Adressregisters der Adressregistergruppe 16 die Adresse und liest die Vektordaten aus. Die Ausführung des Befehls' 15-1 j wird im folgenden anhand Figur 5 beschrieben. " |
Figur 5 zeigt eine Detailschaltung der Adressregistergruppe 16' und der Datenübertragungsschaltungen 6 und 7 von Figur 1. Die Adressregistergruppe 16 weist vier VARs (0 - 3) 16-1, vier VIRs (0 - 3) 16-2 und vier VBRs (0 - 3) 16-3 auf. Die Datenübertragungsschaltung 6 besteht aus einem Register VARN (0) 6-0, einem Register VBRN (O) 6-1, einem VAR-Wähler 6-2, einem VIR-Wähler 6-3, einem VBR'-Wähler 6-4, einem Register WVAR (0) 6-5, einem WVAR (O)-Eingangswähler 6-6, einer VIR-Verdoppelungsschaltung 6-7, einem Wähler 6-8, Addierern 6-9 und 6-10 und deren nicht dargestellte Steuerlogik. Genauso besteht die Datenübertragungsschaltung aus entsprechenden Elementen 7-1 bis 7-10. Die weiteren Datenübertragungsschaltungen 8 bis 11 sind in Figur 5 nicht dargestellt. ·
Durch die Aktivierung des Befehls 5-1 von Figur 4 in der Datenübertragungsschaltung 6 wird das R2-Feld des Befehls in das Register VARN (0) 6-0 gesetzt und für die Auswahl jeweils der Register VAR (0-3) und VIR (0-3) verwendet.
Gleichzeitig Wird das R3-Feld in das Register VBRN (0) 6-1 gesetzt und für die Auswahl eines der Register VBR (0-3) verwendet. Bei diesem Ausführungsbeispiel sind , wie Figur zeigt, die Register VBR (0) = 0, VAR (2) = 300 (16) und VIR (2) = 8 vor der Ausführung des EXVB-Befehls gesetzt. Die Adressberechnung der durch den Befehl 15-1 in das Register VR (4) 12-4 zu ladenden Vektordaten B(i) (i = 0, 1, ..., 31) wird in der nachfolgend beschriebenen Weise ausgeführt Der Inhalt des Registers VAR (2) = 300 (16), der von dem VAR-Wähler 6-2 abhängig vom Wert 0 2 (16) des VARN (0) 6-0 ausgewählt ist, wird über den WVAR (0)-Eingangswähler 6-6 geleitet und in das Register WVAR (0) 6-5 gesetzt und danach dem Addierer 6-10 eingegeben. Dann wird es zum Inhalt des VBR (0) = 0 (16), das durch den VBR-Wähler 6-4 in Abhängigkeit des Wert 0 0 (16) im VBRN (0) 6-1 gewählt wird, addiert, so daß die Adresse 3 0 0 (16) des Elements B (0) als Ausgang des Addierers 6-10 erzeugt wird. Die Adresse 3 0 8 (16) des Elements B (1) erhält man dadurch, daß das Ergebnis der Addition des Registers VIR (2) = 8 (16), das genauso wie das VAR (2) gewählt wurde, zum WVAR (0) 6-5 = 3 0 0 (16) durch den Wähler 6-6 geht und dem WVAR (0) 6-5 eingegeben wird und dann wiederum mittels des Addierers 6-10 zum Register VBR (0) = 0 (16) addiert wird. Die weiteren Adressen der Elemente B (2) bis B(31) werden in derselben Weise wie oben berechnet. Die durch die Hauptspeicher-Steuerschaltung 17 aus dem MS 1 mit diesen Adressen ausgelesenen Vektordaten werden jeweils dem Register VR(2) 12-2 über die Datenübertragungsschaltung 6 und eine Schaltereinheit 18 eingeschrieben.
Jeder der obigen Verarbeitungsschritte wird in einem Maschinenzyklus ausgeführt. Auf diese Weise wird sich, wenn man den Überhang, der durch Befehlsaktivierung und ähnliche Vorgänge entsteht, ignoriert; eine Verarbeitungszeit von etwa der Vektorlänge χ der Maschinenzykluszeit ergeben, also: bei diesem Ausführungsbeispiel etwa 32 Maschinenzyklen.
COPY
Der Befehl 15-2 kann im wesentlichen auf die gleiche Weise durch das Laden der Datenübertragungsschaltung 8 ausgeführt werden.
Der Befehl 15-3 wird durch die Arithmetikeinheit 13 ausgeführt, indem die Inhalte des Registers VR (2) 12-2 und des Registers VR (3) 12-3 addiert werden und das Ergebnis in das Register VR (1) 12-1 eingeschrieben wird. Die Verarbeitung dieses Befehls wird in etwa 32 Maschinenzyklen in derselben Weise wie die Verarbeitung des Befehls 15-1 ausgeführt.
Die Ausführung des Befehls 15-4 kann mittels der Datenübertragungsschaltung 10 zum Einspeichern ausgeführt werden. Wenn das aus dem Register VR (1) 12—1 ausgelesene Datum über eine Schalteinheit 19 der Datenübertragungsschaltung zugesandt wird, berechnet letztere die Adresse unter Verwendung der Inhalte der Register VBR (0), VAR (1) und VIR CD in der im wesentlichen gleichen Art wie bei der Verarbeitung der Befehle 5-1 und 5-2 durch die oben genannten Datenübertragungsschaltungen 6 und 8 und addiert dieAdresse zu dem vom Register VR 1 (1) 12-1 übertragenen Datum . und sendet dieses der Hauptspeicher-Steuerschaltung 17, die damit die Vektordaten A(i) (mit i = 1,2, ..., 31) in.den Hauptspeicher MS 1 abspeichert. Auch diese Befehlsverarbeitung benötigt etwa 32 Maschinenzyklen.
Der Befehl 15-5 ist ein Steuerbefehl, der das Ende der Vektorbefehlsfolge angibt, so daß dieser die Vektorverarbeitung nicht betrifft.
In dem in Figur 1 dargestellten Vektorprozessor erfolgt die Verarbeitung solcher Befehle, wie sie oben beschrieben wurden,allgemein im Pipeline-Prinzip. Dabei sind die Pipeline-Abläufe für jeden Befehl miteinander verbunden, wodurch die Verarbeitung auf der Vektorelementebene sequentiell, auf der
COPY
BefehlsSberte jedoch parallel ausgeführt wird. Beim vorliegenden Ausführungsbeispiel werden die Ausleseoperationen der Vektorelemente B(O) und C(O) aus dem Hauptspeicher MS 1 und das Setzen in die Register VR (4) und VR (6) gleichzeitig ausgeführt. Danach werden die Vektorelement.e sofort aus den Registern VR (4) und VR (6) ausgelesen, von der Arithmetikeinheit 13 addiert und das Ergebnis in das Register VR (2) abgespeichert. Danach wird das Ergebnis unverzüglich aus dem VR (2) ausgelesen und 8-byteweise von der Adresse 2 0 0 (16) an in den Hauptspeicher MS 1 eingespeichert. Diese Verarbeitung wird 32 mal im Maschinenzyklusabstand ausgeführt, so daß die Verarbeitung der genannten fünf Befehle parallel ausgeführt wird. Wir nehmen nun an, daß die Zeitdauer für das Auslesen der Daten aus dem MS 1 und das Einschreiben in das Vektorregister VR cc 1 Maschinenzyklen, das Auslesen und Berechnen der im Vektorregister VR stehenden Daten sowie das Einschreiben des Ergebnisses in das Vektorregister VR o(.2 Maschinenzyklen und das Auslesen der im Vektorregister VR stehenden Ergebnisdaten und deren Einschreiben in den Hauptspeicher MS 1 <& 3 Maschinenzyklen benötigt. Es sei ferner ^ = cc 1 + ot 2 + CC 3 . In diesem Fall ergeben sich die in Figur 7 dargestellten schematischen Zeitdiagramme für die oben beschriebenen Verarbeitungen der Vektorbefehlsfolge laut Figur 3B. Figur 7 macht deutlich, daß die Gesamtverarbeitungszeitdauer 32 + ö°Maschinenzyklen beträgt.
Die folgende Tabelle 1 enthält die in der SP-Betriebsart verwendeten Datenübertragungsschaltungen und den Zuordnungs- ■ algorithmus für die arithmetischen Einheiten. :
copy
It ft * · * * «
-13-
Tabelle 1
Tu^u^V befehle
Priorität -Derenie
Lade- und
Speicher
befehle
Arithmetik-
Befehl
1 Datenübertrag.-
schaltung 6
Arithmetik-
Einheit 13
-
2 7 ■ 14
3 8 ^^^^
4 9
5 10
6 " 11
Zum Beispiel wird gemäß den in Tabelle 1 dargestellten Algorithmus während die Datenübertragungsschaltungen 6 und 7 benutzt sind und als nächster Befehl der Ladebefehl oder Speicherbefehl dekodiert wird, die Datenübertragungsschaltung 8 diesem Befehl zugeteilt. Die Zuteilung des Vektorregisters erfolgt durch die Angabe im Registerkennzeichenfeld des Vektorbefehls.
PP-Betriebsart:
Nach dem Auslesen des in Figur ZC dargestellten EXVP-Befehls erkennt der Scalarprozessor 3 die Kopfadresse 1 0 0 C16) der Vektorbefehlsfolge und die Verarbeitungs-Vektorlänge VL = 1F (16) jeweils aufgrund der Inhalte der allgemeinen Register GR1 und GR2 in der allgemeinen Registergruppe 3-1 und überträgt diese Informationen zur Vektorregister-Steuereinheit 5.
Gleichzeitig erkennt der Scalarprozessor 3, daß die Verarbeitung in der PP-Betriebsart erfolgt, wegen der "1" der Oten Bitstelle des Registers GR1 und überträgt diese Information der Vektorprozessor-Steuereinheit 5. Letztere setzt nach Aktivierung durch den Scalarprozessor 3 in der PP-Betriebsart das Betriebsart-Steuerflipflop 5-1 und liest die Vektorbefehlsfolge von der Kopfadresse 1 0 0 (16) an, die durch den Scalarprozessor 3 angewiesen ist, interpretiert diese aufeinanderfolgend und weist deren Ausführungen an. Für die in Figur 3B gezeigte Vektorbefehlsfolge werden folgende Verarbeitungen ausgeführt.
In der zuvor beschriebenen SP-Betriebsart wurde der Befehl 15-1 durch die Datenübertragungsschaltung 6 ausgeführt und die Vektordaten B(i) (i = 0, ..., 31) wurden in das Vektorregister VR (4) 12-4 gespeichert. Dagegen sei angenommen, daß der Befehl 15-1 in der PP-Betriebsart in den Datenübertragungsschaltungen 6 und 7 ausgeführt wird und daß die Vektordaten BCi) (i = 0, ..., 31) in den Vektorregistern VR (4) 12-4 und VR (5) 12-5 gespeichert werden. Für diesen Zweck addiert die Steuereinheit 5 VL = F (16) zur Adressregisternummer, weist die PP-Betriebsart an und aktiviert die Datenübertragungsschaltungen 6 und 7, die den Befehl 15-1 ausführen. Gleichzeitig addiert die Steuereinheit 5 VL = F (16) zum Register VR (4) 12-4 und zum Register VR (5) 12-5 auf der Speicherseite und aktiviert den Einschreibvorgang. Die.Angabe der PP-Betriebsart für die Vektorregister VR ist zu dieser Zeit unnötig.
Die Ausführung des Befehls 15-1 in der PP-Betriebsart wird nachfolgend anhand der Figur 5 beschrieben. Die VAR (2) = 3 0 0 (16) und VBR (0) = 0 werden genauso wie.in der SP-Betriebsart vom Addierer 6-10 addiert und als Ergebnis die Adresse 3 00 (16) des Elements B (0) ausgegeben. Gleichzeitig mit dieser Addition wird der Inhalt des VIR (2) =8 (16)
vom VIR-Wähler 6-3 gewählt und von der VIR-Verdoppelungsschaltung 6-7 verdoppelt. Dann wird der Wert 1 0 (16), der dem Addierer 6-9 über den Wähler 6-8 eingegeben wurde, mit dem im WVAR (0) 6-5 gespeicherten VAR (2) = 3 0 0 (16) addiert und das Ergebnis in das WVAR (0) 6-5 über den WVAR (O)-Eingangswähler 6-6 |
gesetzt. Im nächsten Zyklus wird dieser neue Wert 3 1 0 (16)" des WVAR (0) und der Inhalt des VBR (0) = 0 (16) addiert, so daß die Adresse 3 1 0 (16) des Elements B(2) ausgegeben wird. Wie in der oben beschriebenen Weise führt die Datenübertragungsschaltung 6 die Adressberechnung der geradzahligen Elemente der Vektordaten B(i) (i = 0, 1, ...., 31) aus und liest die Daten aus dem Hauptspeicher MS 1 mittels ihrer Adressen aus. Danach werden diese Daten in das VR (4) 12-4 gesetzt. Zu dieser Zeit sind 16 Daten entsprechend dem Wert VL = F (16), der der Datenübertragungsschaltung 6 angewiesen ist,· im Register VR (4) 12-4 nach dessen Aktivierung geladen.
Gleichzeitig mit dem Laden der geradzahligen Elemente durch die Datenübertragungsschaltung 6 erfolgt das Laden der ungeradzahligen Elemente durch die Datenübertragungsschaltung 7 in der gleichen Weise. Auf die Aktivierung des Befehls hin wird das vom VAR-Wähler 7-2 abhängig vom Wert 02 (16) des zuvor gesetzten VARN (1) 7-0 gewählte Register VAR (2)= 3 0 0 (16) durch den WVAR (1)-Eingangswähler 7-6 geleitet und in das WVAR (1) 7-5 gesetzt und außerdem dem Addierer 7-9 ' eingegeben. Genauso wird dem Addierer 7- 9 über den Wähler 7-8 das vom VIR-Wähler 7-3 abhängig vom Wert 0 2 (16) des VAR (1) 7-0 gewählte VIR (0) =8 (16) eingegeben.' Das Additionsergebnis wird in das Register WVAR (1) 7-5 durch den . ■ WVAR (1)-Eingangswähler 7-6 gesetzt. Dieser Ausgang des WVAR (1) wird zum VBR (0) = 0 (16), das vom VBR-Wähler 7-4 abhängig vom Wert 0 0 (16) des VBRN (1) 7-1 durch den Addierer. 7-10 addiert, so daß die Adresse 3 0 8 (16) des Elements (B)1 ausgegeben wird. Danach wird der Inhalt des .VIR zweimal im Abstand eines Zyklus durch den Addierer 7-9 summiert und
COPY
- ι ο-
zwar gleichzeitig mit der Adressberechnung der Elemente B(i) (i =0, 2, 4, ..., 30) in der Datenübertragungsschaltung 6, wodurch die Adressen für die Elemente Bfi) Ci = 1, 3, S,..., 31) ausgegeben werden. Auf diese Weise werden 16 ungeradzahlige Elemente durch die Datenübertragungsschaltung 7 mittels der auf diese Weise erzeugten Adressen in das. Register VR (5) gespeichert. l
Genauso wird in der PP-Betriebsart der Befehl 15-2 von der Datenübertragungsschaltung 8 und 9 ausgeführt und die Vektordaten CCi) (i = 0, 1, 2, ...,31) entsprechend ihrer Geradzahligkeit und Ungeradzahligkeit in die Vektorregister VR (6) 12-6 und VR (7) 12-7 gespeichert. Der Befehl 15-3 wird von den Arithmetikeinheiten 13 und 14 ausgeführt und das Ergebnis der Addition der Inhalte der Register VR (4) 12-4 und VR C6) 12-6 in das Register VR C2) 12-2 abgespeichert. Außerdem wird das Ergebnis der Addition der Register VR C5) 12-5 und VR (7) 12-7 in das Register VR (3) 12-3 gespeichert. Der Befehl 15-4 wird von den Datenübertragungsschaltungen 10 und 11 ausgeführt und (die Daten der Register VR C2) 12-2 und VR (3) 12-3 als ACi) (i » 0, 1, ..., 31) in den Haupt-
• 'n'
speicher MS 1 von der Adresse 2 0 0 C16) an gespeichert. Dazu zeigt Figur 8 die schematischen Zeitdiagramme, aus denen ersichtlich ist, daß die gesamte Verarbeitungszeit 16 + cc Zyklen beträgt.
Tabelle 2 zeigt die Datenübertragungsschaltungen in der PP-Betriebsart und den Zuordnungsalgorithmus für die arithmetischen Einheiten .
Tabelle 2
- "T "-—^ Vektor-
Zuordnungs*^. f h]
Priorität ^--fieien^e
Lade- und
Speicher
befehle
Arithmetik-
Befehl
1 Datenübertrag.
Schaltungen 6
und 7
Arithmetikein
heiten 13 und 14
. 2 11 8 und 9 . _——-—~~~
3 " 10 und 11
COPY
Beispielsweise werden,während die Datenübertragungsschaltung 6 benutzt ist, wenn der folgende Befehl der Ladebefehl oder Speicherbefehl ist, entsprechend dem in Tabelle 2 angeführten Algorithmus die Datenübertragungsschaltungen 8 und 9 diesem Befehl zugeordnet. Auch wenn die Datenübertragungsschaltungen
8 und 9 auf diese Weise gleichzeitig aktiviert werden, werden sie nicht immer gleichzeitig freigegeben. Deshalb werden, falls als folgender Befehl der Ladebefehl oder Speicherbefehl deko- -diert wird und nur eine der Datenübertragungsschaltungen 8 und
9 freigegeben ist und die andere noch nicht frei ist , die Datenübertragungsschaltungen 10 und 11 diesem Befehl zugeteilt. Man kann jedoch annehmen, daß bis zu diesem Zeitpunkt die Datenübertragungsschaltung 6 noch nicht freigegeben ist.
Zusätzlich muß in der PP-Betriebsart der Wert des Kennzeichnungsfeldes für die Vektorregister im Befehl 0, 2, 4 oder 6 sein. Beispielsweise werden dem Befehl 15-1 die Register VR (4) und VR (5) zugeteilt, da der Wert des R1-Feldes 4 ist.
Aus der obigen Beschreibung wird deutlich, daß durch geeignete Mittel die Art der Vektoroperation festgestellt und, falls zur Verarbeitung von Vektorbefehlsfolgen, die nur aus einfachen Befehlen bestehen, nur wenige Vektorregister, Datenübertragungsschaltung und Arithmetikeinheiten zur Verfügung stehen, auf die Aktivierung der Vektorbefehlsfolge hin die PP-Betriebsart durch den EXVP-Befehl angegeben wird. Dadurch wird in der oben angeführten Weise die Vektorverarbeitung in die Verarbeitung geradzahliger Vektorelemente und die Verarbeitung ungeradzahliger Vektorelemente eingeteilt , wodurch sich die Verarbeitungsgeschwindigkeit erhöhen läßt. Außerdem besteht zur Verarbeitung einer Vektorbefehlsfolge, die Makrobefehle enthält, falls durch Angabe der SP-Betriebsart Verarbeitungseinheiten vorgesehen sind, die die Makrobefehle jeweils durch eine einzelne arithmetische Einheit ausführen, die Möglichkeit, die Vektorverarbeitung ohne zusätzliche Bussysteme zwischen mehreren arithmetischen Einheiten auszuführen.
COPY
Erfindungsgemäß wird die Art der Vektoroperationen programmgesteuert oder auf eine andere geeignete Weise erkannt und für die Vektorverarbeitung aufgrund nur einfacher Befehle die Datenübertragungsschaltungen, Vektorregister und Arithmetikeinheiten in mehrere Sätze entsprechend der erkannten Art eingeteilt und damit die Vektor-'
Verarbeitungen mittels dieser Sätze parallel ausgeführt. Dadurch läßt sich eine hohe Verarbeitungsgeschwindigkeit verwirklichen.
Selbstverständlich kann die Identifikation der Art der Vektoroperationen auch durch geeignete Hardware-Maßnahmen erfolgen.
COPY
■/!{■
- Leerseite -

Claims (1)

  1. Patentansprüche
    gekennzeichnet durch folgende •Komponenten:
    :■:".'einen Hauptspeicher (1),
    - mehrere Vektorregister (12-0 bis 12-7), mehrere Datenübertragungsschaltungen (6 - 11), die die Datenverbindung zwischen dem Hauptspeicher (1) und den Vektorregistern(12-0 bis 12-7) durchführen, und
    mehrere Vektorarithmetikeinheiten (13 und 14), die die arithmetische Vektorverarbeitung von aus den Vektorregistern zugeführten Vektordaten ausführen und die Ergebnisse den Vektorregistern zusenden, und
    dadurch gekennzeichnet, ■
    daß der Vektorprozessor in zwei Steuerbetriebsarten betreibbar ist, nämlich in einer Steuerbetriebsart, bei der die Datenübertragungsschaltungen (6 - 11), die Vektorregister (12-0 bis·12-7) und die Vektorarithmetikeinheiten (13 und 14) in mehrere Sätze eingeteilt sind, wobei die Vektorverarbeitung geteilt und parallel unter Verwendung der Sätze ausgeführt wird, und
    in einer zweiten Steuerbetriebsart, bei der die Vektorverarbeitungen ungeteilt ausgeführt werden und die Vektorregister, die von den Vektorbefehlen angegeben sind, und die mit den jeweiligen Vektorregistern zusammenarbeitenden
    81-A8323-03/ATA1
    COPY
DE3401995A 1983-03-02 1984-01-20 Vektorprozessor Granted DE3401995A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58034197A JPS59160267A (ja) 1983-03-02 1983-03-02 ベクトル処理装置

Publications (2)

Publication Number Publication Date
DE3401995A1 true DE3401995A1 (de) 1984-09-06
DE3401995C2 DE3401995C2 (de) 1988-07-28

Family

ID=12407435

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3401995A Granted DE3401995A1 (de) 1983-03-02 1984-01-20 Vektorprozessor

Country Status (4)

Country Link
US (1) US4641275A (de)
JP (1) JPS59160267A (de)
DE (1) DE3401995A1 (de)
GB (1) GB2136172B (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5389835A (en) * 1991-04-12 1995-02-14 Hewlett-Packard Company Vector logic method and dynamic mousetrap logic gate for a self-timed monotonic logic progression
DE19735348B4 (de) * 1996-08-19 2006-10-05 Samsung Electronics Co., Ltd., Suwon Vektorprozessor zur Einzelbefehl-Mehrdaten-Verarbeitung unter Verwendung von mehreren Bänken von Vektorregistern und zugehöriges Verfahren zum Betreiben desselben

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6027984A (ja) * 1983-07-27 1985-02-13 Hitachi Ltd デ−タ処理装置
JPS6057467A (ja) * 1983-09-09 1985-04-03 Nec Corp ベクトルデ−タ処理装置
JPS6072069A (ja) * 1983-09-28 1985-04-24 Nec Corp ベクトル演算処理装置
JPS6077265A (ja) * 1983-10-05 1985-05-01 Hitachi Ltd ベクトル処理装置
JPH077385B2 (ja) * 1983-12-23 1995-01-30 株式会社日立製作所 データ処理装置
JPH0640337B2 (ja) * 1984-10-03 1994-05-25 株式会社日立製作所 パイプライン演算装置
US4890220A (en) * 1984-12-12 1989-12-26 Hitachi, Ltd. Vector processing apparatus for incrementing indices of vector operands of different length according to arithmetic operation results
JPS621067A (ja) * 1985-02-25 1987-01-07 Hitachi Ltd ベクトル処理装置
JPS62120574A (ja) * 1985-11-20 1987-06-01 Fujitsu Ltd ベクトル処理装置
JPS62208167A (ja) * 1986-03-10 1987-09-12 Hitachi Ltd ベクトル処理装置
JPS6353678A (ja) * 1986-08-22 1988-03-07 Hitachi Ltd ベクトル処理装置
JPH0648486B2 (ja) * 1986-10-08 1994-06-22 日本電気株式会社 ベクトルデ−タ処理装置
JP2760790B2 (ja) * 1986-10-09 1998-06-04 株式会社日立製作所 データ処理装置
JPS63253468A (ja) * 1987-04-10 1988-10-20 Hitachi Ltd ベクトル処理装置
US4980817A (en) * 1987-08-31 1990-12-25 Digital Equipment Vector register system for executing plural read/write commands concurrently and independently routing data to plural read/write ports
JPS6462764A (en) * 1987-09-03 1989-03-09 Agency Ind Science Techn Vector computer
US5115497A (en) * 1987-10-01 1992-05-19 California Institute Of Technology Optically intraconnected computer employing dynamically reconfigurable holographic optical element
US5261113A (en) * 1988-01-25 1993-11-09 Digital Equipment Corporation Apparatus and method for single operand register array for vector and scalar data processing operations
US4949250A (en) * 1988-03-18 1990-08-14 Digital Equipment Corporation Method and apparatus for executing instructions for a vector processing system
US5113521A (en) * 1988-03-18 1992-05-12 Digital Equipment Corporation Method and apparatus for handling faults of vector instructions causing memory management exceptions
US5210834A (en) * 1988-06-01 1993-05-11 Digital Equipment Corporation High speed transfer of instructions from a master to a slave processor
JP3068138B2 (ja) * 1989-04-06 2000-07-24 甲府日本電気株式会社 ベクトル演算処理装置
US5208490A (en) * 1991-04-12 1993-05-04 Hewlett-Packard Company Functionally complete family of self-timed dynamic logic circuits
JPH04336378A (ja) * 1991-05-14 1992-11-24 Nec Corp 情報処理装置
US5418973A (en) * 1992-06-22 1995-05-23 Digital Equipment Corporation Digital computer system with cache controller coordinating both vector and scalar operations
EP0681236B1 (de) * 1994-05-05 2000-11-22 Conexant Systems, Inc. Raumzeigersdatenpfad
US6681315B1 (en) * 1997-11-26 2004-01-20 International Business Machines Corporation Method and apparatus for bit vector array
ATE443885T1 (de) * 2004-12-17 2009-10-15 Nxp Bv Arithmetik- oder logikoperations-baum-berechnung
JP5182284B2 (ja) * 2007-03-08 2013-04-17 日本電気株式会社 ベクトル処理装置
GB2484906A (en) * 2010-10-21 2012-05-02 Bluwireless Tech Ltd Data processing unit with scalar processor and vector processor array
WO2012052774A2 (en) 2010-10-21 2012-04-26 Bluwireless Technology Limited Data processing units
GB2489914B (en) * 2011-04-04 2019-12-18 Advanced Risc Mach Ltd A data processing apparatus and method for performing vector operations
US9355061B2 (en) 2014-01-28 2016-05-31 Arm Limited Data processing apparatus and method for performing scan operations

Family Cites Families (11)

* 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
US4174514A (en) * 1976-11-15 1979-11-13 Environmental Research Institute Of Michigan Parallel partitioned serial neighborhood processors
US4287566A (en) * 1979-09-28 1981-09-01 Culler-Harrison Inc. Array processor with parallel operations per instruction
US4412303A (en) * 1979-11-26 1983-10-25 Burroughs Corporation Array processor architecture
KR860001434B1 (ko) * 1980-11-21 1986-09-24 후지쑤 가부시끼가이샤 데이타 처리시 스템
US4541046A (en) * 1981-03-25 1985-09-10 Hitachi, Ltd. Data processing system including scalar data processor and vector data processor
US4524455A (en) * 1981-06-01 1985-06-18 Environmental Research Inst. Of Michigan Pipeline processor
US4524428A (en) * 1982-01-26 1985-06-18 Hughes Aircraft Company Modular input-programmable logic circuits for use in a modular array processor
US4498134A (en) * 1982-01-26 1985-02-05 Hughes Aircraft Company Segregator functional plane for use in a modular array processor
US4594682A (en) * 1982-12-22 1986-06-10 Ibm Corporation Vector processing
US4589067A (en) * 1983-05-27 1986-05-13 Analogic Corporation Full floating point vector processor with dynamically configurable multifunction pipelined ALU

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US-Z.: Computing Surveys Vol. 9, No. 1, March 1977, S. 95-100 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5389835A (en) * 1991-04-12 1995-02-14 Hewlett-Packard Company Vector logic method and dynamic mousetrap logic gate for a self-timed monotonic logic progression
DE19735348B4 (de) * 1996-08-19 2006-10-05 Samsung Electronics Co., Ltd., Suwon Vektorprozessor zur Einzelbefehl-Mehrdaten-Verarbeitung unter Verwendung von mehreren Bänken von Vektorregistern und zugehöriges Verfahren zum Betreiben desselben

Also Published As

Publication number Publication date
JPS6367705B2 (de) 1988-12-27
GB2136172B (en) 1986-06-11
GB2136172A (en) 1984-09-12
DE3401995C2 (de) 1988-07-28
GB8400729D0 (en) 1984-02-15
JPS59160267A (ja) 1984-09-10
US4641275A (en) 1987-02-03

Similar Documents

Publication Publication Date Title
DE3401995C2 (de)
DE3248215C2 (de)
DE2350884C2 (de) Adreßumsetzungseinheit
DE3638572C2 (de)
DE2457612C3 (de) Mikroprogrammier-Steuereinrichtung
DE3400723C2 (de)
DE3741953A1 (de) Multiprozessorsystem und verfahren zur arbeitslastverteilung bei einem solchen
DE4118331A1 (de) Bussystem zur anwendung bei einem informationsverarbeitungsgeraet
DE2145120A1 (de) Digitales Datenverarbeitungsgerat
DE3606650A1 (de) Hardware logik-simulator
DE3210816A1 (de) Datenverarbeitungssystem mit getrennten einrichtungen zur verarbeitung von skalar- und vektordaten
DE3424962A1 (de) Datenverarbeitungsverfahren und vorrichtung zur durchfuehrung desselben
DE2536622C2 (de) Verzweigungssteuerung mit flexibler Auswahl von Steuerworten
DE69632655T2 (de) Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen
DE3726168A1 (de) Verfahren und vorrichtung zur steuerung der datenuebertragung zwischen speichern eines datenverarbeitungssystems
DE2054830A1 (de) Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher
DE3043653A1 (de) Datenverarbeitungsanlage
DE2548720C2 (de) Mikroprogramm-Steuerwerk
DE3446957A1 (de) Vektor-prozessor
DE1925427A1 (de) Datenuebertragungsvorrichtung zum UEbertragen von Daten zwischen Informationsspeichern
DE3447530A1 (de) Vektorprozessor
DE19905541A1 (de) Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher mit ungleichmäßigem Zugriff und Maschine zur Ausführung eines solchen Verfahrens
DE1916377C3 (de)
DE2459476A1 (de) Schaltungsanordnung fuer nichtzyklische datenpermutationen
DE3633898C2 (de)

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 9/38

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee