DE3210816A1 - Datenverarbeitungssystem mit getrennten einrichtungen zur verarbeitung von skalar- und vektordaten - Google Patents

Datenverarbeitungssystem mit getrennten einrichtungen zur verarbeitung von skalar- und vektordaten

Info

Publication number
DE3210816A1
DE3210816A1 DE19823210816 DE3210816A DE3210816A1 DE 3210816 A1 DE3210816 A1 DE 3210816A1 DE 19823210816 DE19823210816 DE 19823210816 DE 3210816 A DE3210816 A DE 3210816A DE 3210816 A1 DE3210816 A1 DE 3210816A1
Authority
DE
Germany
Prior art keywords
vector
data
scalar
circuit
command
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
DE19823210816
Other languages
English (en)
Other versions
DE3210816C2 (de
Inventor
Yasuhiro Hadano Inagami
Shigeo Hachioji Nagashima
Koichiro Omoda
Shunichi Musashino Torii
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
Priority claimed from JP4231481A external-priority patent/JPS57157373A/ja
Priority claimed from JP14465881A external-priority patent/JPS5846467A/ja
Priority claimed from JP1873482A external-priority patent/JPS58137081A/ja
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3210816A1 publication Critical patent/DE3210816A1/de
Application granted granted Critical
Publication of DE3210816C2 publication Critical patent/DE3210816C2/de
Granted legal-status Critical Current

Links

Classifications

    • 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
    • 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/8061Details on data memory access
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute

Landscapes

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

Description

HITACHI, LTD. Tokyo, Japan
Datenverarbeitungssystem mit getrennten Einrichtungen zur Verarbeitung von Skalar- und Vektordaten
Die vorliegende Erfindung betrifft eine für die Vektorverarbeitung eingerichtete elektronische Datenverarbeitungseinrichtung, die für eine Vektorverarbeitung mit hoher Geschwindigkeit eingerichtet ist (im folgenden als Vektorprozessor bezeichnet).'
Ein Vektorprozessor ist eine Verarbeitungseinrichtung, die zur Verarbeitung einer Vielzahl von Elementen eines geordneten Datenfeldes (kurz als Vektordaten oder einfach als Vektor bezeichnet) und eines anderen in einem Hauptspeicher gespeicherten Vektors eingerichtet ist.
Fig. 1 zeigt schematisch einen Verarbeitungsvorgang
bei der Summenbildung der Vektoren B und C, die den Vektor A erzeugen. Bei dem dargestellten Beispiel werden entsprechende Komponenten b.. und c . der Vektoren B und C summiert, wodurch eine Komponente a.. des Vektors A entsteht. Im allgemeinen kann der Vektorprozessor zu-
321 OB 1
sätzlich zu der Verarbeitung der Vektordaten einen für die Vorbereitung der Vektorverarbeitung nötigen Verarbeitungsvorgang (beispielsweise die Berechnung der Startadresse des Vektors)/ eine übliche skalare Verarbeitung und einen Ein-Ausgabevorgang durchführen. Typische Beispiele eines solchen Vektorprozessors bilden STAR-100 von CDC und CRAY-1 der Cray Research Inc.
Wenn ein FORTRAN Programm mit doppelt verschachtelten DO-Schleifen die Vektorverarbeitung durchführt, wird lediglich die innere DO -Schleife durch die Vektorverarbeitung ausgeführt, während die äußere Schleife gewöhnlich als Söftwareschieife ausgeführt ist.
Daraus ergibt sich bei herkömmlichen Vektorprozessoren eine sequentielle Durchführung der Vektor-
und
behandlung der Skalarbehandlung. Beispielsweise wird die in Fig. 2 gezeigte Operation in der Form, wie sie in Fig. 3 gezeigt ist, durchgeführt. In Fig. bezeichnen die Abkürzungssymbole(v)und(s)am Ende der jeweiligen Schritte, ob eine Vektor- oder eine Skalarbehandlung ausgeführt wird. Im folgenden werden die einzelnen Schritte erklärt:
Schritt 1: Berechnet die Dimension eines zu behandelnden Vektors. (Skalarverarbeitung). In diesem Beispiel beträgt die Dimension 100 und wird durch den Bereich von J bestimmt.
Schritt 2: Schreibe die Vektordimension in ein Vektordimensionsregister (VLR mit einer SETVL-Anweisung (Skalarverarbeitung).
J ^ I U Ö
Schritt 3s Berechne die Vektorstartadresse Vektors B (im vorliegende» Beispiel die Adresse der Komponente B (1?1)). (Skalarverarbeitwng).
Schritt 4s Schreib® die ¥ektorstastaöresse in ein Vektoradreßregister (VMI) mit einer {Skalas
Schritt 5 s Berechne eis AdreEinkreiaeat zwischen den Vsktorkomponenten des Vektors B0 Bei diesem Bei·=· spiel beträgt das Adreßiakrekent 3<? da die Vektor™ koaponenten Adressen aufweisen,, die jeweils mit einem Intervall voa Ewei Adressen angeordnet siad) (Skalarrarbeitun
Schritt 6% Schreib® das Inkremeat in ©in Vektor-ÄdreB-Inkr<smenfer@gi©tsr (VAIR) mit einer SETVMR^Änweisung. (Skalarverarbeitung)=
Schritt Ί s Hole d©n Vektor B au® dem Hauptspeicher mit einer LQ&DVR~Anweisung mit Besug auf die Inhalte, näialieh den Mressenwert in den- Register-n. VÄR„ VAIR und die Vektordimension ißt. Register VLl1? und lade ihn in eia '^üQ-lisktosregister (VRO) . (Vektorverarb® i tang)
Schritte 8 ° Ils
Schritten 3=6 gleichenden Verarbeitungsschritte aus (Skalarverarbeituag)
Schritt 12s Hole den Vektor C a«s ä®m Hauptspeicher mit einer LOADVR-Änweisung unter Be^ug auf die Inhalte der Register VAR4, VAIR «nd VLR und lade ihn in ein
321OG16
^1-Vektorregister (VR1). (Vektorverarbeitung)
Schritt 13: Addiere die Komponenten der Vektoren B und C, die jeweils in den Vektorregistern VRO und VRt gespeichert sind, mit einer ADDVR-Anweisung so oft, wie die der im Vektordimensionsregister VLR gespeicherten Vektordimension entsprechende Komponentenzahl angibt und speichere die Ergebnissumme in ein ^2-Vektorregister (VR2). (Vektorverarbeitung)
Schritte 14 - 17: Führe für den Vektor A die den Schritten 3 bis 6 gleichenden Verarbeitungsschritte aus. (Skalarverarbeitung)
Schritt 18: Speichere den Inhalt des Vektorregisters VR2 mit einer STOREVR-Anweisung unter Bezug auf die Inhalte der Register VAR, VIR und VLR ab. (Vektorverarbeitung)
Schritt 19: Inkrementiere einen Index I um 1 mit einer Inkrement-Anweisung, vergleiche den inkrementierten Index I mit 100 mit einer COMPARE-Anweisung und fahre mit Schritt 3 mit einer BRANCΗ-Anweisung fort, falls I nicht größer als 100 ist. (Skalarverarbeitung)
Weiterhin werden die Schritte 3 bis 19 solange wiederholt, bis I den Wert 100 erreicht. Die Vektorstartadresse wird / ausgehend von der Anfangsadresse B (1,I)7 bis zu den Adressen B (2, 1), B (3, 1), ... bei jeder Wiederholung geändert. Dasselbe gilt für die Vektoren C und A.
Bei diesem Beispiel nimmt die skalare Verarbeitungs™ zeit ungefähr 10 % der gesamten Verarbeitungszeit ein. Das Verhältnis hängt von der Anzahl der zu verarbeitenden Vektorkomponenten ab« Gewöhnlich reicht die Anzahl der gw verarbeitenden Vektorkomponenten von 10 bis 1000 oder mehr« Dabei ist die Obergrense der in einer Vektorverarbeitung kontinuierlich zu verarbeitenden Anzahl von Vektorkomponenten gleich der aus einem Vektorregister erhältlichen Anzahl von Vektorkomponenten (das ist die Vektorregisterlänge), und daher muß die Vektorverarbeitung In mehreren Zyklen erfolgen,, wenn die Anzahl der zu verarbeitenden Vektorkomponenten größer als die Vektorregisterlänge ist. Wenn beispielsweise die Vektorregisterlänge 64 beträgt, und die Anzahl der Vektorkomponenten 100 ist, ist die Vektorverarbeitung nach zweimaligem Wiederholen 'des Verarbeitungsablaufs von Fig. 2 (64 Vektorkomponenten im ersten Zyklus und 36 Vektorkomponenten Im zweiten Zyklus) abgeschlossen. In diesem Falle belauft sich das Verhältnis (tiberhang) der Skalarverarbeitungszeit zur Gesamtverarbeitungszeit auf 20 %. Mit der gegenwärtig erhältlichen Computerha-räware..technolQgie kann man im allgemeinen die · VeYarbeitruMgsgesehw.indLgJceite der-- :Ska\Larverarbeitung oder der Vektorverarbeitung aieh^einfaeh erhöhen. Für die Erhöhung der Veriurbeltungsgeschwindigkeit einer Vektorbearbeitung bedeutet dies eine wesentliche Beschränkung. Deshalb ist eine Erhöhung der Vektorverarbeitungsgeschwindigkeit mit der herkömmlichen Technik schwierig.
Aufgabe der vorliegenden Erfindung Ist es, einen Vektorprozessor, der die skalare Verarbeitung und die
3210316
VektorVerarbeitung parallel durchführt, zu ermöglichen, womit der Überhang der Skalarverarbeitung/v-wesentlich erniedrigt und die Geschwindigkeit der Vektorverarbeitung wesentlich erhöht wird.
Zur Lösung der obigen Aufgabe weist der erfindungsgemäße Vektorprozessor eine Teilung einer in einer beabsichtigten Verarbeitung abzuarbeitenden Befehlskette in eine Skalarbefehlskette und eine Vektorbefehlskette auf, die in einem Hauptspeicher getrennt gespeichert sind. Eine voneinander getrennte Skalarund Vektorverarbeitungseinheit, die die Skalarbefehlskette und die Vektorbefehlskette getrennt holen, decodieren und Ausführen ermöglichen dabei eine überlappende Verarbeitung der Skalar- und Vektordaten.
Die vorliegende Erfindung wird im folgenden anhand der Figur näher beschrieben. Es zeigen:
Fig. 1 eine Art der Vektorverarbeitung; Fig. 2 ein FORTRAN-Programm für den Ablauf bei der Vektorverarbeitung;
Fig. 3 ein Flußdiagramm der Verarbeitung eines herkömmlichen Vektorprozessors;
Fig. 4 einen Gesamtaufbau eines Vektorprozessors gemäß einer ersten Ausführung der Erfindung;
Fig. 5 eine Anordnung einer Skalarverarbeitungseinheit gemäß der ersten Ausführung der Erfindung;
Fig. 6 eine Anordnung einer Vektorverarbeitungseinheit gemäß der ersten Ausführung der Erfindung;
FIg0 7 ein Flußdiagrasnm der Skalarverarbeitung und der Vektorverarbeitung gemäß der ersten Ausführung der Erfindungs
Fig0 8 ©iae Anordnung ©iner Vektorverarbeitungsgemäß einer sweitsa Aasföhruag der
Fig» 9 ©iae Anordnung einer Skalarvorarbeitungseinheit gemäß einer dritten jtasflhriiag der Erfindung?
Fig„ 10 eine Anordnung einer Vektorverarbeitungseiaheit gemäß der dritten Ausführuag der Erfindung»
Wie öie Darstellung in Pig„ 4 geigte besteht der Vektorprosessor dar vorliegenden Erfindung aus einer Skalarverarbeitungseinheit (SPU) ü1, einer Vektorverarbeitungselnheit (VPU) 02,, einem Hauptspeicher (MS) C3(,der für beide Verarbeitungseinheiten gemeinsam istf und ©iner Speichersteuereinheit (SCO) C1, In dem MS C3 sind eine Skalarbefehlskette rnnr Verarbeitung■in der SPU 01 «ad eine Vektorbefehlskette E«r Verarbeitung in der VPü U2{, sowie Vektor und Skalardaten gespeichert. Der Zugriff zu diesen Daten geschieht über die
Die SCü C1 holt auf eine Daten= oder Skalarbefehl*» Hol-Änforderung' der SPO U1 ein Datum oder einen Skalarbefehi, welche dureh eine von der BPU ü1 gelieferte Adresse gekennzeichnet sind, aus dem BlSC3 und liefert sie der SPO U1. Auf eine Datenspeicheranforderung der SPU Ut speichert die SCU C1 ein von der SPU U1 geliefertes Datum in eine Speiehersteil© des MS CB1,
321 or,
die durch eine von der SPU U1 gelieferte Adresse gekennzeichnet ist. In derselben Weise nimmt die SCU U1 auf eine Daten- oderVektor-Befehlshohlanweisung der VPU U2 Zugriff zum MS C3 und liefert geholte Daten oder
Vektorbefehle an die VPU U2. Ebenso speichert die SCU C1 auf eine Datenspeicheranforderung der VPU U2 Daten in das MS C3. Auf diese Weise antwortet die SCU C1 der vorliegenden Erfindung auf die Zugriffsanforderungen der SPU U1 und der VPU U2 getrennt.
Die SCU C1 enthält ein Skalarbefehlsregister (SIR) R2, allgemeine Register (GR) R3, eine Skalar ALU C7 und eine Steuerung SC zur Steuerung dieser Teile, und verarbeitet die Skalarbefehlskette im MS C3. Die Skalarbefehlekette enthält allgemeine Skalarbefehle, wie sie imJTBM manual "System/370 Principles of Operation" gezeigt werden (GC-22-7000). Nach Maßgabe dieser Befehle werden die Skalardaten im GR R3 oder dem MS C3 skalarverarbeitet und das Ergebnis in den GR R3 oder den MS C3 gespeichert. Zusätzlich zu den obigen Skalarbefehlen führt die SPU U1 der vorliegenden Erfindung Skalarbefehle aus, die Anweisung zum Auslesen <*er zum Betrieb der VPU U2 nötigen Information aus dem GR R3 oder dem MS C3 geben und die Leseinformation an die VPU U2 liefern und einen Skalarfoefehl, der die Anweisung zum Start der VPU U2 gibt. Die für die durch die VPU U2 auszuführende Vektorverarbeitung benötigten Skalardaten, die Anzahl der Vektorkomponenten der Vektordaten (Vektordimension), die der Vektorverarbeitung unterworfen werden, die Adresse der Startkomponente der Vektordaten, und das Adreßinkrement zwischen den Vektorkomponenten werden in
Skalarreglster (SR) R8/ ein. Vektordimensioasregister (VLR) R4„ Vektoradreßregister (VAR) R6 und Vektor™ adreßinkrementregister (VAIR) R7 jeweils - . . - geladen, und eine Startadresse der zu verarbeitenden Vektorbefehlskette wird in ein Vektorbefehlsadreßregister (VIAR) R5 geladen« Wenn die VPO U2 durch die SPü UI gestartet wird, überträgt;"sie· die Inhalte der VAR R6, der VAIR R7 und der SR R8 jeweils an die" Arbeitsregister (VAR (WVAR) R9, die Arbei^sregister VAIR (WVAIR) R10 und die Arbeitsregister SR (WSR) R 11 und holt gesteuert durch eine Vektorbefehissteuerung VC unter Bezug auf die Arbeitsregister und das VLR R4 die Vektorbefehlsketten beginnend mit dem durch das VIAR R5 gekennzeichneten Vektorbefehl aus dem MS C3 und führt in einer Vektor ALU C5 die Vektorverarbeitung unter Bezug auf die Vektorregister (VR)R13 und die Arbeitsregister WSR RH durch»
Nach dem Start der VPÜ U 2 durch die SPü U1 führt sie den Skalarbefehl aus, der die für die folgende Vektorverarbeitung benötigten Daten aus dem GR R3 ausliest, und die Daten in das VAR R6,, das VAIR R7 und das SR R8 lädt.
Auf diese Weise führt die SPU ü 1,naeh^dexn die VPü ü2 gestarte^und die«'Veletarverarbeitung ausführt,
die -SkalaEverarbeifcung for die «lä'ehste Vektorverarbeitung parallel aus»
Die Pig.5 und 6 zeigen Einzelheiten jeweils der SPü U1 und der VPü U2. Deren Betrieb wird im einzelnen unter Bezug auf das Flußdiagraxnm in Fig. 7 im folgenden erläutert. Dabei werden in Fig. 5 die Teile, die den
321 (Γ ;
Ablauf gewöhnlicher Skalarbefehle betreffen, zum Zweck der einfacheren Darstellung übergangen.
Von den von der SPU U1 ausgeführten Skalarbefehlen werden im folgenden sechs Befehle, die sich im einzelnen auf die vorliegende Erfindung beziehen, erklärt. Jeder dieser Befehle enthält ein Operationscodefeld und zwei Felder (R1, R2) für Operanden, die das erste und das zweite Register kennzeichnen.
1. Vektorprozessor-Start'KSVP) Befehl:
Er bewirkt den Start der VPU U2 und lädt die Vektordimension und die Vektorbefehlsadresse jeweils in das VLR R4 und das VIAR R7. Das R1 Feld des Befehls kennzeichnet die Adresse des GR R3, das die Vektordimension enthält, und das R2 Feld kennzeichnet die Adresse des GR R3, das die Adresse des MS C3 der auszuführenden Vektorbefehlskette enthält.
2. Vektoradreßregiste^-Setz-iSVAR) Befehl:
Er bewirkt das Setzen der Startadresse der durch*die VPU ü2 zu verarbeitenden Vektordaten in das VAR R6. Das R1 Feld des Befehls kennzeichnet die Adresse des VAR R6, das die zu setzende Adresse enthält, und das R2 Feld kennzeichnet die Adresse des GR R3, das die Startadresse der zu verarbeitenden Vektordaten enthält.
3. Vektoradreßinkrementregistej?-Setz-{SVAIR) Befehl:
ER bewirkt das Setzen des Adreßinkrements der durch die VPU Ü2 zu verarbeitenden Vektorkomponenten in das
321081^
WkIS R7„ Qas R1 Feld des Befehls k@nnseiehnet die Adresse des FaIR1? Ib das das Ädreßinkrenient gesetzt werden SOlI1, und das 12 Feld kennzeichnet die Adresse des GR R3» das das ausetsende Vektoradreßinkreraeat enthält.
4„ Slcalarregister-sete-^fSSR) Befehls
Er bewirkt das Setzen der für die Vektorirerarbeitung nötigen Skalardaten im das. SR R8» Das 11 Feld des Befehls kennzeichnet die Adresse des SR R8„ in das. die Skalardaten gesetzt werden, und das R2 Feld kennseichnet die Jkdresse des GE S3? das die au setzende» Skalar-
5 ο Skalarregister-Less-4RSR) Befehls
Er bewirkt das Lese» der ira vorhergehenden Vektorverent»standenen Skalardafcen durch die
IO » O
oder eiaer Vektor susanie) «ad das Setzen dieser Daten in das Gl R30 Das R1 Feld des Befehls kennzeichnet die Adresse äas SR17 aus deia die Skalardaten aasgelesen werden und das R2 Feld kennaeichnet die Adresse des GR R3ff ia das die Skalardaten gesetst werden ο
Sr bewirkt das Prüfen des Zustande der VPU 02 und das Setze» eines Bedingungscodes. Dabei werden die R1 and E2 Felder des Befehls nicht verwendet. Während dem Betrieb öler VFO ü2 wird der Bedijagwngseode auf 01I" gesetEtf, und ^enn sie außer Betrieb ist? wird der Bedingwngseode auf "Ο10 gesetzt« Der Bedingungscode wird zur Visraweigung· mit ©inon bedingten Befehl ver-
wendet, wie es in dem IBM manual "System/370 Principles of Operation" (GC-22-7OOQ) beschrieben ist.
Wie die . Fig. 5 zeigt, wird eine in einem Skalarbefehlsadreßregister (SIAR) enthaltene Skalarbefehlsadresse in der SPU U1 an die SCU C1 über eine Leitung übertragen, und die SCU C1 holt den Skalarbefehl aus dem MS C2 und setzt ihn in das Skalarbefehlsregister (SIR)R2 über eine Leitung 52. Das Operationscodefeld R21 des Befehls wird durch einen Decodierer L2 decodiert, so daß eines der Flipflops (FF) F1 - F6 dem Befehl entsprechend gesetzt wird/und die Ausgänge des FF werden an die Skalarbefehlssteuerung C2 übertragen und zur Ausführung des Befehls verwendet. Der Inhalt des SIAR R1 wird durch einen Inkrementierer L1 um 1 inkrementiert, wodurch der nächste Befehl angezeigt wird, und die inkrementierte Adresse wird wieder in das SIAR R1 gesetzt. Diese Schrittfolgen werden durch die Skalarbefehlssteuerung C2 gesteuert, so daß die Befehle nacheinander geholt, in das SIR R2 gesetzt und abgearbeitet werden. Im folgenden wird der Ablauf der sechs, für die Erfindung wesentlichen Befehle, die oben beschrieben wurden, erklärt, wobei die Erklärung der anderen Befehle hier entfällt. Die FF F1 bis F6 werden jeweils durch den SVP-Befehl, den S.VAR-Befehl, den SVAIR-Befeh^den^SSR-Befehl, den RSP Befehl und den TVP-Befehl gesetzt.
Um die in Fig. 7 gezeigte Vektorverarbeitung (1) in der VPU U2 einzuleiten, führt die SPU U1 die Schritte S1 bis S5 aus, um die notwendigen Adressen und Daten bereitzustellen.
Schritt SIs
Sowie der SSR-Befehl in das SIR R2 gesetzt ist und dessen Operationscodefeld R21 vom Decoder L2 decodiert.ist, wird das FF F4 gesetzt und dessen Ausgang an die Skalarbefehlssteuerung C2 über eine Leitung 4 übertragen, so daß der Befehl abgearbeitet wirdο Der Inhalt des R2 Feldes R23 des SIR R2 wird an einen Selektor L5 geliefert, der wiederum die für die Vektorverarbeitung (1) benötigten Skalar« daten aus einem der GR RS4, wie es eine auf einer Leitung ausgegebene Anweisung bestimmt, ausliest. Der Inhalt des RI Feldes R22 des SIR R2 wird an einen Selektor L7 angelegt» der mit dem FF F5 über eine Leitung 9 verbunden ist. Wenn das FF F5 nicht gesetzt ist, wählt der Selektor L7 den Inhalt des R1 Feldes R22, und wenn das FF F5 gesetzt ist, wählt der Selektor L7 den .Inhalt des R2 Feldes R23 und der ausgewählte Inhalt wird auf einer Leitung 5 ausgegeben. Auf diese Weise wählt der Selektor L7 beim SSR-Befehl die Ausgabe des R1 Feldes R22 aus. Daraus ergibt sich, daß die durch den SSR-Befehl angegebene Adresse des SR R8 an einen Decoder LIO (Fig. 6) in der VPU U2 über die Leitung 5 angelegt wird. Der Ausgang des FF F4 wird dem Decoder L10 über die Leitung 4 eingegeben. Da das FF F4 beim SSR-Befehl gesetzt ist, bewirkt der gesetzte Ausgang des FF F4 beim Decoder LIO das Decodieren der Adresse des SR R8, die über die Leitung 5 übertragen wird. Für jedes der SR R8 ist eine ODER-Schaltung L19 und ein Selektor 17 vorgesehen. Der Decoder L10 sendet ein "!"-»Signal an die ea-tspr-eehende ODER-Schaltung L19 und den-".entsprechenden Selektor LI7 des SR R8, was der gelieferten Adresse des SR R8 entspricht, damit über
die Leitung 6 die Skalardaten im SR R8 gesetzt werden. Auf das "1"-Signal des Decoders L1O bewirkt der entsprechende Selektor L17 die Auswahl der Skalardaten auf der Leitung 6 und sendet sie an das entsprechende SR R8. Auf die Ausgabe der ODER Schaltung L19 setzt das entsprechende SR R8 die Eingabedaten des Selektors L17. In dieser Weise werden die für den Ablauf der Vektorverarbeitung (1) benötigten Skalardaten in dem SR R8 gesetzt. Der SSR-Befehl wird solange wiederholt, bis alle bereitzustellenden Skalardaten für die Vektorverarbeitung (1) in den SR R8 gesetzt sind. Dabei bewirkt der mit dem SR R8 verbundene Selektor L17 die Auswahl der Ausgabe der Vektor ALU C6 oder der Daten auf der Leitung 6 und setzt das ausgewählte SR R8.
Schritt S2:
Im SIR R2 wird der SVAR-Befehl gesetzt und dieser setzt das FF F2. Der Ausgang des FF F2 wird an die Skalarbefehlssteuerung C2 über eine Leitung 2 angelegt und,gesteuert von der Skalarbefehlssteuerung 02/der Befehl ausgeführt. Der Inhalt des R2 Feldes R23 des Befehls wird an einen Selektor L5 geliefert, der ein durch das R2 Feld R23 bestimmtes GR R3 auswählt und dessen Inhalt an das VAR R6 (Fig. 6) über eine Leitung sendet. Das Datum auf der Leitung 6 ist eine Speicheradresse der für die Vektorverarbeitung (1) nötigen Vektordaten. Das R1 Feld des Befehls enthält die Adresse des VAR. Wenn dieses durch einen Selektor L7 ausgewählt wird, wird es über die Leitung 5 an einen Decoder L8 (Fig. 6) geliefert. Der Decoder L8 wird durch den gesetzten Ausgang des FF F2 über die Leitung befähigt, die durch das R1 Feld gegebene Adresse des
VAR su decodieren und die Adresse der Vektordaten auf der Leitung 6 in ein entsprechendes Register innerhalb des VAS E6 su setEen» Auf diese Weise wird die Speicheradresse für die bereitzustellenden Vektordaten für die Vektorverarbeitung (1) in <ai» entsprechendes / innerhalb des VAR R6 befindliches/Register gesetzt. Der SVÄR Befehl wird solange wiederholt, bis alle für die Vektorverarbeitung (1) bereitzustellenden Speicheradressen für die Vektordaten in das VAR R6 gesetzt
Schritt S3s
Isa SIR R2 wird der SVAIR-Befehl gesetzt und durch ihn das FF F3 gesetzt. Der gesetzte Ausgang des FF F3 wird der Skalarbefehlssteuerung C2 über eine Leitung 3 zugeführt, womit die Befehlsausführung gesteuert und ein Decoder L9 (Fig« 6) angesteuert wird« Das R2 Feld des Befehls wird an Selektor L5 gelegt, der das für die Vektorverarbeitung (1) nötige Adreßinkrement der Vektordaten aus dem GR R3 ausliest und in das VAIR R6 (Figo6) über die Leitung 6 setzt. Andererseits wird •yoHi Selektor L7 das RI Feld des Befehls ausgewählt und an einen Decoder L9 (Fig„ 6) über die Leitung 5 angelegt. Der Decoder L9 setzt über die Leitung 6 die Daten im VAIR R7y das durch die Adresse des VAIR über die leitung bestimmt wird. Auch dieser Befehl wird so oft wie nötig wiederholt«,
Schritt S4s
Sowie das Setzen des VAR R6, des VAIR R7 und des SR RS erfolgt ist, wird der SVP-Befehl ausgeführt, der der
3210316
VPU Ü2 die Anweisung zum Abarbeiten des Vektorbefehls gibt. Wenn der SVP-Befehl in das SIR R2 gesetzt ist, wird das FF F1 gesetzt und dessen "1"-Ausgang wird an die Skalarbefehlssteuerung C2 und an die VPU U2 über die Signalleitung 1 geliefert. Wenn zu dieser Zeit die VPü U2 in Betrieb ist, erscheint auf einer Signalleitung 14 ein "1"-Signal, das den EIN-Betrieb anzeigt. Dieses Signal sperrt eine UND-Schaltung K23 und verhindert, daß der Ausgang des FF F1 an die
VPU ü2 geliefert wird. Aufgrund des gesetzten Ausgangs des FF F1,der von einer ODER-Schaltung L22 über eine Leitung 2O anliegt, wird der Inhalt der Signalleitung in das FF F7 gesetzt. Der SVP-Befehl bewirkt als Ergebnis das Setzen des FF F7 auf "1", falls die UVP U2 in Betrieb ist und auf 11O", falls die VPU U2 nicht in Betrieb ist. Die ersten und zweiten Registeradreßfeider R22 und R23 des SXR R2 werden jeweils an die Selektoren L4 und L5 geliefert, die die Ausgänge der GR R3 auswählen. Diese Selektoren lesen die Vektordimension und die Vektorbefehlsstartadresse, wie sie durch die entsprechenden Felder bestimmt sind,aus einem der GR R3 Register aus und senden sie an die VPU U2 jeweils über die Signalleitungen 7 und 6. Falls zu dieser Zeit die VPU U2 in Fig. 6 nicht in Betrieb ist, bewirkt die VPU U2 auf ein Signal von der Signalleitung 1 hin, das anzeigt, daß der SVP-Befehl ausgeführt wurde, daß die folgende Operation durchgeführt wird. Zunächst bewirkt das
VLR R4 auf das Signal von der Leitung 1 hin, das Speichern der Vektordimension des zu verarbeitenden Vektors über die Signalleitung 7. Der Selektor L21 reagiert auf das "1"-Signal auf der Leitung 1 mit der Auswahl der Vektorbefehlsstartadresse auf der Signalleitung 6 und das
3210316
VIAR R5 reagiert auf das Signal der Leitung 1 mit dem Speichern der ausgewählten Adresse. Die Vektoradreßarbeitsregister (WVAR) R9 reagieren auf das
1-Signal der Leitung 1 mit dem Empfang (Kopie) der Inhalte aller VAR R6. Zu diesem Zwecke ist jedes der WVAR und das entsprechende der VAR Rß mit -der Leitung 1 verbunden und reagieren auf das "!"-Signal der Leitung 1 mit dem Einspeichern des Inhalts des entsprechenden VAR R6. Die Vektoradreßinkrementarbeitsregister (WVAIR) RIO sind mit der Leitung 1 und den VAIR R7 in derselben Weise verbunden,- so daß jedes der WVAIR R1O auf das "1"-Signal der Signalleitung mit dem Empfang (Kopie) des Inhalts des entsprechenden VAIR R7 reagiert. In derselben Weise kopieren die Skalararbeitsregister (WSR)R 11 den Inhalt der SR R8. Damit das Signal über die Ausgangsleitung 10 von der Vektor ALü C6 der VPO U2 zu den WSr|r1 1, sowie den SR R8 geliefert wird, sind die Selektoren L18 zur Auswahl der Ausgangsleitungen der SR R8 und der Ausgangsleitung 10 der Vektor ALü C6 mit den Eingangsanschlüssen der WSR R11 verbunden. Auf den Ausgang einer entsprechenden ODER-Schaltung L20 reagiert jedes der WSR R11 mit dem Einspeichern des Ausgangs des entsprechenden Selektors L18. Die Signalleitung 1 ist mit der ODER-Schaltung L2O verbunden. Demgemäß wird beim Auftreten einer "1" auf der Signalleitung 1 in jedem der WSR R11 der Inhalt des entsprechenden SR R8 gespeichert. Natürlich ist die Anzahl der WVAR R9, der WVAIR R1O und der WSR RH Register gleich der jeweiligen Registeranzahl der VAR R6# der VAIR R7 und der SR R8. Die Signalleitung ist auch zum Setzen mit dem FF F10 verbunden' und dessen gesetzter Ausgang wird an die Vektorbefehlssteuerung C4
3210316
gelegt, womit die Anweisung zum Ausführungsbeginn der Vektorverarbeitung gegeben wird.
Die obige Beschreibung macht deutlich, daß durch die Ausführung des SVP-Befehls von der SPU U1 in dem VLR R4 die Vektordimension, im VIAR R5 die Startadresse der Vektorbefehlskette gesetzt werden und die Inhalte der VAR R6, der VAIRR 7 und der SR R8 jeweils in die WVAR R9, die WVAIR R1O und die WSR R11 kopiert werden. Auf diese Weise wird der Vektorbefehlsablauf (1) für den Start vorbereitet.
Falls die VPÜ U2 in Betrieb ist, wenn der SVP-Befel decodiert wird, wird das FF F7 auf "1" gesetzt und keine anderenAbläufe ausgeführt.
Schritt S5:
Die SPü U1 verzweigt aufgrund eines bedingten Befehls, und prüft,ob die VPU U2 durch den SVP-Befehl gestartet wurde. Wenn die aufgrund des bedingten Befehls erfolgte Verzweigung vom Decoder L2 decodiert ist, prüft die Skalarbefehlssteuerung C2 die den Bedingungscode anzeigende Ausgabe des FF F7 über die Leitung 18, womit entschieden wird, ob der Befehl ausgeführt werden soll. Wie bereits beim SchritdS4 beschrieben, zeigt der "1" Ausgang des FF F7 an, daß die VPU U2 bei der Decodierung des SVP-Befehls in Betrieb ist und daher kein Starten durch den SVP-Befehl erreicht wurde. Deshalb führt bei einer "1" Ausgabe des FF F7 die Skalarbefehlssteuerung den vorigen SVP-Befehl noch einmal aus. Wenn der Ausgang des FF F7 "O" ist, steuert die Skalarbefehlssteuerung C2 den Inhalt des SIAR R1 so;daß
eine Vergweigung zum nächsten Skalarbefehlsablauf erfolgtο Eine in der SPü U1 enthaltene Schaltung zar Ausführung des Verzweigungsbefehls wird zum Zweck der einfacheren Darstellung nicht gezeigt, kann jedoch in einer bekannten Technik aasgeführt werden.
Schritte S6 ■=■ SI2s
Wenn die SPü U1 den erfolgreichen Start der VPO U2 durch die Ausführung des bedingten Verzweigungsbefehls feststellt, führt die SPO U1 die Befehlsschritte S7 bis S8 sum Setzen der für die Ausführung der folgenden Vektorverarbeitimg (2) beaötigten Skalardaten, Vektoradressen und Vektoradreßinkremeni© jeweils in die SR RS,, die VAR R6 und die VAIR R7y in gleicher Weise wie die Schritte S1 bis S3, aus» Da die Inhalte der SR R8„ der VAR R6 und der VAIR R7 jeweils in die WSR RH, die YJVAR R9 und die WVAIR R1O mit dem vorausgegangenen SVP-Befehl gerettet wurden, kann die SPO ü1 nach Vollendung des Schritts S8 die Skalarverarbeitung parallel mit der Ausführung der vektorverarbeitung (1) durchführen. Dabei führt die SPU U1 den SVP Befehl in derselben, oben beschriebenen Weise aus und führt dann den bedingten Verzweigungsbefel {Schritt S10) aus. Falls die SPU U1 den, aufgrund der bereits in Betrieb befindlichen VPü U1,erfolgten,Fehlstart feststellt, führt sie aufs neue den SVP-Befehl und den bedingten Verzweigungsbefehl (Schritte S11 und SI2) aus, und falls sie den erfolgreichen Start feststellt, fährt si© xnit dem nächsten Schritt fort.
Im folgenden wird der Betrieb der VPO U2 erklärt. Die VPÜ Ö2 ist sur Ausführung der im Fiußdiagraram in Pig. 3
32 1 OC16
gezeigten und anderer Befehle fähig. In der folgenden Beschreibung werden lediglich die zum Verständnis der Erfindung notwendigen Befehle und die zu ihrer Ausführung von der VPU U2 ausgeführten Operationen erklärt.
Schritt V11:
Bei der Ausführung des SVP-Befehls durch die SPü U1, wird durch das "1"-Signal auf der Leitung 1 das FF F1O der VPU Ü2 gesetzt und der "1"-Ausgang des FF F1O startet den Betrieb der Vektorbefehlssteuerung C4. Der Ausgang des FF F1O wird über die Leitung 14 an die SPU U1 gesendet, womit dieser mitgeteilt wird, daß die VPU U2 in Betrieb ist. Sowie die Vektorbefehlssteuerung C 4 gestartet wurde, wird die vorher im VIAR R5 gesetzte Vektorbefehlsadresse der SCÜ C1 über eine Leitung 80 gesendet. Aufgrund der Vektorbefehlsadresse wird der erste Befehl der Vektorbefehlskette im MS C3 geholt und in das VIR R12 über die SCU C1 und die Leitung 82 gesetzt. Die Vektorbefehlssteuerung C4 weist zur Decodierung des im VIR R12 gesetzten Befehls und zu dessen Ablaufsteuerung eine bekannte Schaltung auf. Sowie der LOADVR-Befehl im VIR R12 gesetzt ist, sendet die Vektorbefehlssteuerung C4 die im VLR R4 gespeicherte Vektordimension und die durch den Befehl gekennzeichnete Adresse des VAR über die Leitung 78 an eine Vektorzugriff ssteuerung C5, um diese zu starten. Die Vektorzugriffssteuerung C5 wiederum steuert zum Auslesen der Startadresse der Vektordaten (z. B. die Speicheradresse der Startkompoente B(1) der Vektordaten B) aus dem durch die VAR-Adresse über die Leitung 15 gekennzeichneten
WAR R9 den Selektor LiI und den Selektor Li 2 zum Auslesen des Vektordatenadreßinkrements aus dem durch die VAR Adresse über die Leitung 16 gekennzeichneten WVAIR R1O und stellt aufgrund dieser Lesedaten Hauptspeicheradressen zum Holen der gekennzeichneten Vektordimension der Vektordaten B für die SCO C1 über die Leitung 84 bereit» Dies bewirkt,, daß die Komponenten der Vektordaten B über die Leitung 88 sequentiell ausgelesen werden. Andererseits setzt die Vektorbefehlssteuerung C4 in das durch den LQADVR-Befehl gekennzeichneten VR R13 über die Leitung 90 die gelesenen Vektordaten B. Der LOAVDR-Befehl wird solange wiederholt, bis alle für die Vektorverarbeitung (1) benötigten Vektordaten in das VR R13 gesetzt sind. Auf solche Weise werden die Vektordaten, beispielsweise A und B in das VR R13 gesetzt.
Die Vektorbefehlssteuerung C4 setzt wiederholt die folgende Befehlsadresse, die durch den Inkrementierer C9 über den Selektor L21 im VIAR R5 bereitgestellt wird. Daraus folgt, daß die im VIAR R5 fortgeschriebene Adresse sequentiell der SCÜ C1 über die Leitung 80 gesendet und daß der Vektorbefehl aus dem MS C3 sequentiell geholt und in das VIR R12 gesetzt wird. Die Vektorbefehlskette wird in dieser Weise abgearbeitet. Wenn der Vektorverarbeitungsbefehl, beispielsweise ADDVR-Befehl, in das VIR R12 gesetzt wird, steuert die Vektorbefehlssteuerung C4 die Selektoren L16, L27 und L28 in bekannter Weise so, daß sie die beiden durch den Befehl gekennzeichneten Vektoren, beispielsweise A und B aus den Vektorregistern (VR) R13 Komponente für Komponente auslesen und sie der Vektor ALU C6 zusenden.
3210316
Schritt V12:
Die Vektor ALU C6 führt die Operationen für die Komponenten der Eingabevektordaten in bekannter Vektorverarbeitung aus.
Schritt V13:
Sobald das Ergebnis der Vektoroperation festliegt, speichert die Vektorbefehlssteuerung C4 das Ergebnis in dem durch den Befehl gekennzeichneten VR R13 in bekannter Weise ab.
Dabei wird die Verarbeitung einer Vektorkomponente i der Vektordaten und das Abspeichern des Verarbeitungsergebnisses der vorigen Komponente (i-1) parallel durchgeführt.
Sobald der STORE VR-Befehl ausgeführt ist, erzeugt i". die Vektorzugriffssteuerung C5 für die jeweiligen Komponenten die Adressen des MS C3,an denen die Vektorkomponenten abgespeichert werden, unter Bezug auf das WVAR R9 und das WVAIR R1O, und führt diese Adressen dem MS C3 über die Leitung 84 und die SCU C1 zu. Der abzuspeichernde Vektor wird Komponente für Komponente aus dem VR R13 sequentiell ausgelesen und dem MS C3 über den Selektor L16, die Leitung 86 und die SCü C1 zugeführt und diese im MS C3 unter Bezug auf die von der Vektorzugriffssteuerung C5 gelieferten Adressen abgespeichert.
Schritt V14:
Die Vektorbefehlssteuerung C4 weist eine bekannte (nicht gezeigte) Schattung auf, die das Beendigen der
Verarbeitung des letzten Vektorbefehls der Vektorbefehlskette feststellt? und eine (nicht gezeigte) Schaltung Q die mittels des Ausgangs der - Prüfschaltung über die Leitung 92 das FF FIO rücksetzt. Demnach wird nach erfolgter Ausführung der Vektorbefehlskette das FF F10 gurüekgesetzt und dessen Ausgang an die SPO 01 über die Leitung 14 gesendet«, Deshalb wird die Vektorverarbeitung (1) beendet und die VPU U2 befindet sich außer irr Betrieb» Bedingt, durch die Ausführung des SVF-Befehls in der SPO U1 (Schritt S11) werden die für die nächste Vektorverarbeitung (2) benötigten Daten in di© FÄR R6„ VAIR Rl und SR R8 der VPU Ü2 gesetzt»
Schritt® V21 und V22s
Falls die aufs neue gestartete Vektorverarbeitung (2) die Skalardaten im HSR R11 und die Vektordaten im VR 113 verwendet, steuert die Vektorbefehlssteuerung C4 die Selektoren L13 und L27 so, daß sie die Skalardaten aus dem durch den decodierten Befehl gekennzeichneten WSE R11 auslesen und sie der Vektor ALU Cβ zusenden und die Selektoren L16 und L28 so„ daß sie die Vektordaten aus dem durch den deeodierten Befehl gekennzeichneten VR Ri3 auslesen und sie an die Vekt- tor ALU C6 senden« Auf diese Weise wird die Verarbeitung der Skalar- und der Vektordaten durchgeführt. Falls die Vektorverarbeitung (2) für die Skalaroperationen lediglich Skalardaten verwendet, werden mitteis des Seiektors L13 awei Skalardaten ausgelesen und an die Vektor ALU C6 über die Selektoren L27 und L28 gesendet.
die
Di® Vektor ÄLO C6 kann auch Äkalaroperation ausführen.
3210016
- 35 Schritte V23 und V24:
Falls der in den Schritten V21 und V22 ausgeführte Befehl lediglich Skalardaten erzeugt, beispielsweise ein Befehl zur Berechnung eines inneren Vektorprodukts, sendet die Vektorbefehlssteuerung C4 die durch den Befehl gekennzeichnete Skalarregisteradresse an den Decoder L14 über die Leitung 11 und über die Leitung 12 ein Signal zum Start des Decoders L14. Die hierfür dienliche Schaltung ist aus Vereinfachungsgründen nicht dargestellt. Der Decoder L14 sendet ein "1"-Signal an eine der ODER-Schaltungen L2O, von denen eine für jedes der WSR R11, das der Eingabeskalarregisteradresse entspricht, vorgesehen ist. Die Steuersignale für die mit den WSR R11 verbundenen Selektoren L18 werden über die Leitung 1 ausgegeben. Wie bereits beschrieben, befindet sich während des Betriebs der VPU ü2 das Signal auf der Leitung 1 im "O"-Zustand und die Selektoren L18 wählen die Daten auf der Ausgangsleitung 10 der Vektor ALU C6 aus und liefern sie an die entsprechenden WSR R11. Somit werden die durch die Verarbeitung sich ergebenden Skalardaten in das durch die Registeradresse des Befehls gekennzeichnete WSR R11 gespeichert. Bei der vorliegenden Erfindung werden die Skalardaten sowohl im WSR R11 als auch im SR R8 gesetzt, wie nachfolgend beschrieben ist:
Die Ausgangsleitungen des Decoders L14 sind mit den entsprechenden ODER-Schaltungen L19 verbunden. Somit wird das "1"-Signal an dasjenige SR R8 geliefert, das der durch den Befehl gekennzeichneten Skalaradresse entspricht. Die Steuersignale für die mit den Eingangsanschlüssen der entsprechenden SR R8 verbundenen
Selektoren L17 bilden die vom Decoder L1O erzeugten Signale, die während des Betriebs der VPO Ö2 sich im "0"-Zustand befinden» Somit wählen die Selektoren L17 die Daten auf der Ausgangsleitung 10 der Vektor ALU C6 aus. Auf diese Weise werden die sich aufgrund der Verarbeitung ergebenden Skalardaten in dasjenige SR R8 gespeichert„ das der durch den Befehl gekennzeichneten Skalarregisteradresse entspricht.
Die Skalardaten werden deshalb im WSR R11 gespeichert, damit ein Ablauf möglich ist , der die Skalardaten bei der Vektorverarbeitung (2) benötigt. Dieselben Skalardaten werden auch in das SR R8 gespeichert,, damit die aus der Vektorverarbeitung (2) sich ergebenden Skalardaten in einer weiteren Vektorverarbeitung erhältlich sind. Sobald die folgende Vektorverarbeitung beginnt,, wird, wie oben beschrieben,, der Inhalt des SR R8 in das WSR R11 überschrieben, so daß die in das SR R8 geschrieberP» Daten für eine weitere Vektorverarbeitung zur Verfügung stehen. Nach erfolgtem Abspeichern der Skalardaten führt die Vektorbefehlssteuerung C4 den gleichen Endschritt wie Schritt VI4 aus. Somit ist die Vektorverarbeitung (2) beendet.
Schritte S13 - S18s
Falls die SPü Ui, nachdem sie die Vektorverarbeitung (2) begonnen hat„ sich auf die angefallenen Skalardaten beziehen möchte, führt sie den TVP-Befehl aus, mit dem geprüft wird, ob die VPU Ü2 in Betrieb ist oder nicht»
321 OS 16
Nach Fig. 5 wird nach dem Setzen im SIR R2 der TVP-Befehl durch den Decoder L2 decodiert und das FF F6 gesetzt. Der Ausgang des FF F6 wird an die Skalarbefehlssteuerung C2 über die Leitung und an das FF F7 über die ODER-Schaltung L22 und die Leitung 20 zum Setzen des FF F7 geliefert. Der Dateneingangsanschluß des FF F7 ist mit der Signalleitung 14, die den Betriebszustand der Vektorverarbeitung der VPU U2 anzeigt, verbunden. Sobald die Vektorverarbeitung begonnen hat, wird das FF F7 in den Zustand "1" und wenn kein Betrieb ist, in den Zustand "0" gesetzt. Das FF F7 bildet einen Teil des Bedingungscodes und dessen Ausgang wird der Skalarbefehlssteuerung C2 über die Leitung 18 gesendet (Schritt S12).
Sodann wird der bedingte Verzweigungsbefehl in das SIR R2 geladen und der Zustand ("1" oder 11O") des Ausgangs des FF F7 untersucht (Schritt S14). Falls der Ausgang des FF F7 im Zustand "1" ist, werden der TVP-Befehl und der bedingte Verzweigungsbefehl wiederholt ausgeführt (Schritte S13 bis S19).
Schritt S19:
Wenn nach Beendigung der Vektorverarbeitung (2) das FF F7 im Zustand "0" ist, wird angezeigt, daß die Verzweigung erfolgt ist und der RSR-Befehl ausgeführt.
Aus Fig. 5 ist ersichtlich, daß der RSR-Befehl nach dem Setzen im SIR R2 decodiert und das FF F5 gesetzt wird. Der Ausgang des FF F5 wird über die Leitung 9 an die Skalarbefehlssteuerung C2 gesendet und liegt am Steuereingang des Selektors L7 an. Da das Signal auf der Signalleitung 9 im Zustand "1" ist,
wählt der Selektor L7 den Inhalt des zweiten Registerfeldes R23 des SlR R2 aus und sendet ihn über die Signalleitung 5 an die VPU 02 ο Wie bei der VPü U2 in Fig., 6 gezeigt, ist die Signalleitung 5 mit dem Selektor Li5 verbunden. DerjSelektor Li5 wählt den Ausgang des durch den Befehl gekennzeichneten Registers SR R8 aus und sendet ihn über die Signalleitung an die SPO U1L In der in Fig„ 5 gezeigten SPU Ui werden die Daten auf der Signalleitung 8 an das GR R3 über den Selektor LO gelieferte der die Ausgangsleitung 13 der Skalar ALU C7 der SPU öl oder die mit dem SR R8 verbundene Datenleitung 8 abhängig vom Ausgangs zustand ctes FF F5 "Ό"' oder "1" auswählt. In-''diesem Beispiel wird die Datenleitung 8 ausgewählt» Der Decoder L3 deeodiert den Inhalt des ersten Registerfeldes R22 des SlR R2„ womit eines der GR R3„ in das die Daten geladen werdenf bestiramt wird» Falls das
"1" besitzt,
durch den Befehl gekennzeichnete GR S3 ein Schreibsignai sendet» Ia diesem Beispiel werden die auf der Datenleitung 8 übertragenen Skalardaten geladen« Wenn die Skalarverarbeitungsschritte S1 bis S19 2«m Start der Vektorverarbeitung beendet sindf kann die SPU U1 eine gewöhnliche Skalarverarbeitung S20 ausführen«, ■
Bei der oben beschriebenen Ausführung der Erfindung kollidieren die Ladevorgänge in das SR, falls gleichzeitig von der YPU U2 Daten in das SR-und das WSR-Register und von der SPU UI mit dem SSR-Befehl während dem Betrieb der VPU 02 Daten in dasselbe SR-Register geladen werden.
Daten·*· Falls zuerst von der SPU 01 beim aufbau das SR geladen wird,
3210016
bleibt das Ergebnis der VPU U2 im SR, und falls zuerst die Skalarergebnisse von der VPU U2 in das SR geladen werden, bleiben die Aufbaudaten im SR. Anders gesagt/ dürfen sich in diesem Fall die Vektor- und die Skalarverarbeitung nicht überlappen. Deshalb muß man zuerst die Verarbeitung der VPU U 2 beenden, das Ergebnis auslesen, die Daten bereitstellen und dann die Vektorverarbeitung aufs neue starten.
Im folgenden wird eine zweite Ausführung der Erfindung beschrieben, die das obige Problem vermeidet und wo der Datenaufbau und die Vektorverarbeitung mit demselben Register möglich ist.
Bei der zweiten Ausführung der Erfindung wird eine in der Fig. 8 dargestellte VPU verwendet. Der Unterschied zu der in Fig. 6 gezeigten VPU U2 besteht darin, daß ein Selektor L15A zur Auswahl des Ausgangs des WSR R11 vorgesehen ist, daß der Ausgang des Selektors L15A über die leitung 8 an der SPU U1 anliegt und daß der Ausgang der Vektor ALU C6 nicht an das SR R8 angelegt ist.
Im folgenden werden nur die Unterschiede des Betriebs genau erklärt.
Die Skalardaten auf der Leitung 6 werden in derselben Weise wie bei der ersten Ausführung der Erfindung im Register SR R8 gesetzt. Da jedoch der Ausgang der Vektor ALU C6 nicht .a«i SR R8 in Fig. 8 anliegt, ist die Auswahl durch den Selektor L16 in Fig. 6 unnötig. Bei der Ausführung des SVP-Befehls werden die
Daten aus dem SR R8 in das WSR RI1 in derselben Weise wie bei der ersten Ausführung der Erfindung überführt. In den Schritten V23 und V24 wird der Ausgang der Vektor ALU C6 in derselben Weise wie bei der ersten Ausführung der Erfindung in das WSR R11 gesetzt. Wenn im Schritt SI9 die von der VPü U2 erzeugten Skalardaten mit dem RSR-Befehl ausgelesen werden, wählt der Selektor 16A den Ausgang des durch die Registeradresse gekennzeichneten WSR R11 aufi der Leitung 5 aus und sendet ihn über die Leitung 8 an die SPU ü1.
Da das SR R8 lediglich zum Laden der Daten der SPU Ui verwendet wird,, kann das Laden der Daten in das SR R8 und das Laden des Ausgangs der Vektor ALU C6 in das WSR R11 parallel ausgeführt werden.
Bei den beiden oben beschriebenen Ausführungen der Erfindung holt die SPU Ui aus dem MS C3 die in der VPU U2 zu setzenden Daten, bevor diese darin gesetzt werden„ speichert sie in das GR R8 und liest die gespeicherten Daten von dem GR R3 aus und setzt diese
entsprechend dem Datensetzbefehl in der VPU U2» Die schwindigkeit
Vorbereitungs ge kann erhöht werden, wenn man den Befehl so verändert,, daß der Datensetzbefehl das Holen der in der VPU U2 zu setzenden Daten aus dem MS C3 bewirkt und indem man die SPU U1 so verändert, daß sie die aus dem MS C3 geholten Daten direkt an die VPU U2 ohne den Umweg über das GR R3 aufgrund des Datensetzbefehls zugehen, sendet«
321C316
Im folgenden wird eine dritte Ausführung der Erfindung beschrieben, bei der zur Realisierung der obigen Verbesserung die erste Ausführung der Erfindung abgewandelt ist.
Bei der dritten Ausführung der Erfindung erhält das R2 Feld des Befehls eine Adresse des MS C3, bei der die als Operand zu verwendenden Daten gespeichert sind. Zum Beispiel enthalten die R2 Felder des SVP-, des SVAR-, des SVAIR-, des SSR- und des RSR-Befehls jeweils die Adresse der Vektorbefehlskette, die Adresse,bei der die Startadresse der Vektordaten gespeichert ist, die Adresse, bei der das Adreßinkrement gespeichert ist, die Adresse, unter der die Skalardaten gelesen werden sollen, und die Adresse,an der die Skalardaten gespeichert werden sollen. In diesem Zusammenhang ist eine Signalleitung 6 vorgesehen, um den I nhalt des Feldes R23 des SIR R2 von der SPU1 an die SCU ^u senden. Die Signalleitung 6 ist ebenfalls mit einem Selektor L21 verbunden (Fig. 10). Die SCü C1 reagiert auf die Adresse auf der Leitung 6, indem sie die Daten aus dem MS C3 holt und sie an das VAR R6, das VAIR R7 und das SR R8 in der VPU U2 über die Leitung 94 sendet. Die Skalardaten werden über die Leitung 8 vom SR R8 an die SCU C1 gesendet. Die Unterschiede zur ersten Ausführung der Erfindung werden im folgenden genau erklärt:
Schritt S1:
Wenn der SSR-Befehl im SIR R2 der U1 gesetzt ist (Fig. 9), wird der Inhalt des Feldes R23 über die Leitung 6 an die SCU C1 gäsendet und diese holt die
durch die Adresse auf der Leitung 6 gekennzeichneten Skalardaten aus dem MS C3 auf der Leitung 94 von 02 (Fig. 10). Der Inhalt des Feldes R22 des SIR R2 wird an den Decoder L10 der ü2 (Fig» 10) über die Leitung 5 gefühj± und wird zum Setzen der Daten über die Leitung 94 im SR R8 verwendet=
Sehritt S2s
Aufgrund des Feldes R23 im SVAR-Befehl im SIR R2 wird die für die Vektorverarbeitung (1) benötigte Vektordatenadresse aus dem MS C3 über die Leitung 94 geholt und in das VAR R6 gesteuert vom Decoder-L8, an dea das Feld R22 des SIR R2 über die Leitung 5 angelegt ist β eingespeichert.
Schritt S3s
Beim SVÄIR-Befehi wird das Vektoradreßxnkrement im VAIR R7 in der gleichen Weise wie bei den Schritten S1 und S2 gesetzt«,
Schritt S4:
Der Inhalt des Feldes R23 des SVP Befehls x^ird über die Leitung 6 an den Selektor L21 angelegt und im VIAR R5 gesetzt=
Schritt S19s
Der Inhalt des Feldes R22 des im SIR R2 gesetzten RSR-Befehls wird an den Selektor Li5 (Fig. 10) über die Leitung 5 angelegt. Der Selektor L15 wählt das durch das Signal auf der Leitung 5 gekennzeichnete SR R8 aus und sendet es über die Signalleitung 8 an die SCU C1. Der Inhalt des zweiten Feldes R23 des SIR R2
3210016
wird über die Leitung 6 an die SCU C1 gesendet und die SCU C1 reagiert auf die Adresse des Feldes R23 mit dem Speichern der Daten in das MS C3 über die Leitung 8. Somit werden die für die Vektorverarbeitung benötigten Daten durch einen Befehl aus dem MS C3 geholt und in der VPÜ U2 gesetzt.
Bei den oben beschriebenen ersten bis dritten Ausführungen der Erfindung sind das VLR R4 und das VIAR R5 nicht dupliziert/ da die darin zu setzenden Daten nur von einem SVP-Befehl vorbereitet werden können und die Vorbereitungszeit kurz ist. Jedoch können zur Erhöhung der Verarbeitungsgeschwindigkeit diese Register dupliziert sein. Insbesondere kann man für diese Daten zusätzliche Register und einen zusätzlichen Befehl vorsehen, wobei der zusätzliche Befehl vor der Ausführung des SVP-Befehls zum Auslesen der Vektordimension und der Vektorbefehlsadresse aus den GR R3 der SPU U1, um sie in den zusätzlichen Registern der VPU Ü2 zu setzen, ausgeführt wird. Danach wird der SVP-Befehl ausgeführt. Es ist in diesem Fall unnötig, daß der SVP-Befehl die Vektordimension und die Vektorbefehlsadresse aus den GR R3 ausliest.
Bei den oben beschriebenen Ausführungen der Erfindung kann man einen (nicht gezeigten) Zähler,, der die Verarbeitungszeit der VPU U2 zählt, duplizieren, so daß die SPU Ü1 einen dieser Zähler auf eine vorbestimmte Zeit setzt und die VPU Ü2 während ihres Betriebs den anderen Zähler herunterzählt, wobei die VPÜ ü2 ihren Betriebbe endet, wenn ihre Verarbeitungszeit eine vorbestimmte Zeit erreicht. Die SPü U1 kann während des Betriebs
der VPU U2 die folgende Vektorverarbeitungszeit bestimmen. Gemäß der vorliegenden Erfindung, können,, wie oben beschrieben, die Vektorverarbeitung und die Skalarverarbeitung parallel ausgeführt werden. Durch die Duplizierung der für die Vorbereitung verwendeten Register VAR, VAIR und SR, wird die Vorbereitung für die folgende Vektorverarbeitung parallel zur gerade ablaufenden Vektorverarbeitung ermöglicht t so daß
der Überhang der Vorbereitung verringert wird. Daraus ergibL sich eine Erhöhung der Vektorverarbeitungsgeschwindigkeit. Weil gewöhnlich mehr als ein Vektor— adreßinurement und Skalardatum für eine Vektorverarbeitung vorbereitet werden müssen, wirkt sich das Duplizieren der für diese Daten verwendeten Register in einer Erhöhung der Vektorverarbeitungsgeschwindigkeit aus.

Claims (1)

  1. Patentansprüche
    M.) Datenverarbeitungseinrichtung,
    gekennzeichnet durch
    - einen Hauptspeicher (MS C3), der Vektordaten und Skalardaten, sowie Vektorbefehlsketten und Skalarbefehlsketten in sich gespeichert hat,
    - eine Skalarverarbeitungseinheit (SPU U1), die eine der Skalarbefehlsketten und ein Datum der Skalardaten aus dem Hauptspeicher (MS C3) holt, die geholten Skalarbefehle decodiert, die Befehle ausführt und die sich aus der Ausführung der Befehle ergebenden Skalardaten in den Hauptspeicher (MS C3) speichert,
    - eine Vektorverarbeitungseinheit (VPU U2), die eine der Vektorbefehlsketten und ein Datum der Vektordaten holt, die geholten Vektorbefehle decodiert, die Befehle ausführt und die aus der Ausführung der Befehle sich ergebenden Vektordaten in den Hauptspeicher (MS C3) einschreibt, wobei
    - die Skalarverarbeitungseinheit (SPU U1) eine Datenversorgungseinrichtung enthält, die entsprechend dem Skalarbefehl, parallel zur Ausführung der momentanen Vektorbefehlskette, Daten für die Ausführung der nachfolgenden Vektorbefehlskette bereitstellt, und wobei
    - die Vektorverarbeitungseinheit (VPU U2) aufgrund der von der Datenversorgungseinrichtung bereitge-
    81-(A6542-03)-AtF
    stellten Daten die nachfolgende Vektorbefehlskette ausführt.
    2 ο Datenverarbeitungseinrichtung nach Anspruch 1, dadurch gekennzeichnet,
    daß die Datenversorgungseinrichtung eine Schaltung (F2, R3, L5) enthält, die eine Adresse einer Startkomponente der in der Ausführung der nachfolgenden Vektorbefehlsfolge benötigten Vektordaten an den Haupt-
    Datenverarbeitungseinrichtttng nach Anspruch 1 oder 2, dadurch gekennzeichnet,
    daß die Datenversorgungseinrichtung eine Schaltung (P3, K3„ <L5) enthält„ die eia Adreßinkrement für die bei der Aus führ ungjder folgenden Vektorbefehlskette benötigten Vektordaten dem Hauptspeicher (MS C3) liefert.
    4 ο Datenverarbeitungseinrichtung nach einem der voran gegangenen Ansprüche ?
    die Dateaversorgungseinrichtung eine Schaltung (F4, L55 enthält,, die die für die Ausführung der nächsten Vektorbefehlskette verwendeten Skalardaten bereitstellt.
    5» Datenverarbeitungseinrichtung nach einem der voran" -gegangenen Ansprüche, dadurch gekennzeichnet, daß die
    3210316
    Datenversorgungseinrichtung eine Schaltung (FI, R3, L5) enthält, die die Startbefehlsadresse der folgenden Vektorbefehlskette bereitstellt.
    6. Datenverarbeitungseinrichtung nach einem der vorangegangenen Ansprüche,
    dadurch gekennzeichnet,
    daß die Datenversorgungseinrichtung eine Schaltung (F1, R3, L4) enthält, die die Anzahl der Komponenten der in der folgenden Vektorbefehlskette zu verarbeitenden Vektordaten bereitstellt.
    7. Datenverarbeitungseinrichtung nach Anspruch 1, dadurch gekennzeichnet,
    daß die Vektorverarbeitungseinheit (VPU ü2) eine erste und zweite miteinander verbundene Speicherschaltung aufweist,
    daß die Datenversorgungseinrichtung eine Schaltung enthält, die die bereitgestellten Daten in die erste Speicherschaltung speichert und eine übertragungsschaltung, die die in der ersten Speicherschaltung gespeicherten Daten in die zweite Speicherschaltung, bevor die folgende Vektorbefehlskette ausgeführt wird, überträgt, wobei die Vektorverarbeitungseinheit (VPU Ü2) die folgende Vektorbefehlskette mit den in der zweiten Speicherschaltung gespeicherten Daten ausführt.
    8. Datenverarbeitungseinrichtung nach Anspruch 7, dadurch gekenn ζ e i ch ne t,
    daß die erste und zweite Speicherschaltung jeweils eine
    Vielzahl von Registern enthalten, in denen Hauptspeicheradressen der Startkomponenten der bei der Ausführung der folgenden Vektorbefehlskette verwendeten Vektordaten gespeichert sind.
    9. Datenverarbeitungseinrichtung nach Anspruch 7 oder 8, dadurch gekennzeichnet,
    daß die erste und zweite Speicherschaltung jeweils eine Vieljsahl von Registern aufweisen, in denen Hauptspeicheradreßinkremente der für die Aü%ührung der folgenden Vektorbefehlskette verwendeten Vektordaten gespeichert
    10. Datenverarbeitungseinrichtung nach einem der Ansprüche 7 bis 9,
    dadurch gekennzeichnet,
    daß die erste und zweite Speicherschaltung jeweils eine Vielzahl von Registern enthalten, in denen Skalardaten, die für die Ausführung der folgenden Vektorbefehlskette verwendet werden, gespeichert sind»
    11. Datenverarbeitungseinrichtung nach einem der Ansprüche bis 10,
    dadurch gekennzeichnet,
    daß die Skalarverarbeitungseinheit (SPU U1) eine Befehlsschaltung enthält, die ein Signal aussendet, das der Vektorverarbeitungseinheit (VPU Ü2) Auftrag sum Start der Ausführung der folgenden Vektorbefehlskette gibt, und
    daß die übertragungsschaltung die Daten auf das Signal
    3210316
    hin, das den Auftrag zum Start der Ausführung gibt, überträgt.
    12. Datenverarbeitungseinrichtung nach Anspruch 11, dadurch gekennzeichnet,
    daß die Befehlsschaltung das Signal zum Start der Befehlsausführung unter der Bedingung erzeugt, daß die Vektorverarbeitungseinheit (VPU U2) nicht in Betrieb ist.
    13. Datenverarbeitungseinrichtung nach Anspruch 12, dadurch gekennzeichnet,
    daß die Vektorverarbeitungseinheit (VPU U2) eine Anzeigeschaltung enthält, die anzeigt, ob die Vektorverarbeitungseinheit (VPU U2) in Betrieb ist oder nicht, und
    daß die Befehlsschaltung Mittel aufweist, die das Signal zum Start der Befehlsausführung erzeugen, und Mittel, die das Signal zum Start der Befehlsausführung an die Vektorverarbeitungseinheit (VPU U2) unter der Bedingung senden, daß die Anzeigeschaltung anzeigt, daß die Vektorverarbeitungseinheit (VPU U2) außer Betrieb ist.
    14. Datenverarbeitungseinrichtung nach einem der Ansprüche 11 bis 13,
    dadurch gekennzeichnet,
    daß die Datenversorgungseinrichtung eine Schaltung enthält, die die Startbefehlsadresse der folgenden
    Vektorb©f<3hlsk@tte der Vektorverarbeitungs-
    einheit (VPU U2) liefert,, wenn das Signal zum Start »führung ge
    15«. Datenverarbeitungseinrichtung nach einem der Ansprüche 11 bis 14,
    dadurch gekennzeichnet,
    daß die Datemrersorgungseinrichtung eiae Schaltung enthalte, die die Anzahl der Komponenten der bei der Ausführung der folgenden Vektorbefehlskette su verarbeitenden Vektordaten an die Vektorverarbeitungseinheit (VPU U2) liefert, wenn das Signal sum Start der Befehlsausführung gesendet wird.
    16o Datenverarbeitungseinrichtung nach Anspruch 15, dadurch gekennzeichnet,
    daß die Vektorverarbeituagseinheit (VPO U2) eine Schaltung enthält, die die bei der Ausführung der Vektorbefehlskette sich ergebenden Skalardaten in die entsprechenden Skiairdatenspeicherregister der ersten und aweiten Speicheranordnung speichert» und
    daß die Sfelarverarbeitungseinheit (SPO 01) eine Schaltung aurweist, die„ abhängig von den Skalarbefehlen, die in den Skalardatenspeicherregistern der ersten Speichergespeicherten Skalardaten ausliest.
    17» Datenverarbeitungseinrichtung nach Anspruch 16,
    3210216
    daß die Vektorverarbeitungseinheit (VPU U2) eine Schaltung enthält, die die sich bei der Ausführung der Vektorbefehlskette ergebenden Skalardaten in die zweite Speicheranordnung speichert, und
    daß die Skalarverarbeitungseinheit (SPU U1) eine Schaltung enthält,die, abhängig von den Skalarbefehlen, die in der zweiten Speicheranordnung gespeicherten Skalardaten ausliest.
    18. Datenverarbeitungseinrichtung nach Anspruch 16 oder 17,
    dadurch gekennzeichnet,
    daß die Schaltung zum Auslesen der Skalardaten diese an den Hauptspeicher (MS C3) sendet.
    19. Datenverarbeitungseinrichtung nach Anspruch 1, dadurch gekennzeichnet,
    daß die Datenversorgungseinrichtung eine Schaltung enthält, die die Daten an die Vektorverarbeitungseinheit (VPU ü2) liefert, unabhängig davon, ob die Vektorverarbeitungseinheit (VPU U2) in Betrieb ist oder nicht,
    daß die Skalarverarbeitungseinheit (SPÜ ü1) eine Schaltung enthält, die der Vektorverarbeitungseinheit (VPU U2) eine Anweisung für den Start der Ausführung der folgenden Vektorbefehlskette, abhängig von der Bedingung gibt, daß die Vektorverarbeitungseinheit (VPU U2) außer Betrieb ist, und
    daß die Vektorverarbeitungseinheit (VPU U2) eine Speicherschaltung enthält, die die gelieferten Daten unabhängig davon,
    ob die Vektorverarbeitungseinheit CVPU U2) in Betrieb ist oder nicht, speichert und eine Steuerung, die abhängig von den Anweisungen der Befehlsschaltung, die Ausführung der folgenden Vektorbefehlskette aufgrund der gespeicherten Daten steuert, und der Befehlsschaltung meldet, daß die Vektorverarbeitungseinheit (VPU U2) in Betrieb ist«
    20. Datenverarbeitungseinrichtung nach Anspruch 19, dadurch gekennzeichnet,
    daß die Speicherschaltung einen ersten und zweiten Speicher enthält und eine Schreibschaltung, die die Daten in den ersten und zweiten Speicher einschreibt,
    daß die Steuerung eine Leseschaltung enthält, die Daten aus dem ersten oder zweiten Speicher während der Ausführung der gestarteten Vektorbefehlskette ausliest, und
    daß die Schreibschaltung auf die von der Datenversorgungseinrichtung bereitgestellten Daten während des Betriebs der Steuerung mit dem Einschreiben der Daten in denjenigen ersten oder zweiten Speicher, der nicht zum Auslesen durch die Steuerung verwendet wird, reagiert»
    21. Datenverarbeitungseinrichtung nach Anspruch 20, dadurch gekennzeichnet,
    daß die Steuerung nur aus dem zweiten Speicher Daten ausliest und
    daß die Schreibschaltung Mittel aufweist, die unabhängig
    — Q —.
    davon, ob die Vektorverarbeitungseinheit (VPU U2) in Betrieb ist oder nicht, die Daten in den ersten Speicher einschreiben, und Mittel, die auf die Anweisung der Befehlsschaltung mit der Übertragung des Inhalts des ersten Speichers in den zweiten Speicher reagieren.
    22. Datenverarbeitungseinrichtung nach Anspruch 21, dadurch gekennzeichnet,
    daß die Datenversorgungseinrichtung Mittel enthält, die Skalaroperanden zur Verarbeitung der folgenden Vektorbefehlskette liefern,
    daß der erste fipeicher]eine Vielzahl von ersten Skalarregistern, die die Skalaroperanden speichern, enthält,
    daß der zweite Speicher eine Vielzahl von zweiten Skalarregistern enthält, wobei jedes der zweiten Skalarregister einem ersten Skalarregister entspricht,
    daß die Vektorverarbeitungseinheit (VPU U2) eine Schreibschaltung enthält, die die bei der Ausführung der Vektorbefehle sich ergebenden Skalardaten in die entsprechenden ersten und zweiten Skalarregister einschreibt, und
    daß die Skalarverarbeitungseinheit (SPU U1) eine Leseschaltung aufweist, die, abhängig von einem der Skalarbefehle eines der ersten Skalarregister ausliest.
    23. Datenverarbeitungseinrichtung nach Anspruch 22, dadurch gekennzeichnet,
    ■daß die Leseschal^t-ung^ das Skalarregister-unter*der Be-
    3210318
    dingung ausliest? daß die Vektorverarbeitungseinheit (¥PU Ü2) nicht in Betrieb ist.
    24 ο Datenverarbeitungseinrichtung nach Anspruch 21, dadurch gekennzeichnet?
    daß die Anordnung der Datenversorgungseinrichtung Mittel enthält f. die die für die Verarbeitung der folgenden Vektorbefehlskette benötigten Skalaroperanden bereitstellen,,
    daß der erste Speicher eine Vielzahl von ersten Skalarregistern enthält,, die die Skalaroperanden speichern j.
    daß der zweite Speicher eine Vielzahl von streiten Registern, die den ersten Skalarregistern Register für Register entsprechen, enthält,
    daß die Vektorverarbeitungseinheit (VPU U2) Mittel sum selektiven Einschreiben der durch die Ausführung der Vektorbefehle sich ergebenden Skalardaten in die aweiten Skalarregister, und
    daß die Skalarverarbeitungseinheit (SPü U1) Mittel enthält, die„ abhängig von den Skalarbefehlen? die zweiten Skalarregister selektiv auslesen«
    25. DatenveralJbeitungseinrichtung nach Anspruch 1, dadurch gekennzeichnet,
    daß die Datenversorgungseinrichtung eine Vielzahl von SkalarregistSSn, Sie die für die Ausführung der der
    3210016
    momentan verarbeiteten Vektorbefehlskette folgenden Vektorbefehlskette benötigten Daten speichert, und Mittel, die abhängig von den Skalarbefehlen die Daten aus den Skalarregistern auslesen und sie an die Vektorverarbeitungseinheit (VPU U2) liefern.
    26. Datenverarbeitungseinrichtung nach Anspruch 1, dadurch gekennzeichnet,
    daß die Datenversorgungseinrichtung eine Schaltung enthält, die die durch den Skalarbefehl gekennzeichnete Adresse dem Hauptspeicher (MS C3) sendet, die Daten aus dem Hauptspeicher (MS C3) holt und diese der Vektorverarbeitungseinheit (VPU 02) liefert.
DE19823210816 1981-03-25 1982-03-24 Datenverarbeitungssystem mit getrennten einrichtungen zur verarbeitung von skalar- und vektordaten Granted DE3210816A1 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP4231481A JPS57157373A (en) 1981-03-25 1981-03-25 Vector processor
JP14465881A JPS5846467A (ja) 1981-09-16 1981-09-16 ベクトルプロセツサ
JP1873482A JPS58137081A (ja) 1982-02-10 1982-02-10 ベクトルプロセツサ

Publications (2)

Publication Number Publication Date
DE3210816A1 true DE3210816A1 (de) 1982-10-14
DE3210816C2 DE3210816C2 (de) 1988-06-16

Family

ID=27282341

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19823210816 Granted DE3210816A1 (de) 1981-03-25 1982-03-24 Datenverarbeitungssystem mit getrennten einrichtungen zur verarbeitung von skalar- und vektordaten

Country Status (3)

Country Link
US (1) US4541046A (de)
DE (1) DE3210816A1 (de)
GB (1) GB2098371B (de)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0123509A2 (de) * 1983-04-25 1984-10-31 Cray Research, Inc. Mehrprozessorsteuerung für Vektorrechner
EP0207506A2 (de) * 1985-07-03 1987-01-07 Hitachi, Ltd. Vektorverarbeitungsgerät
DE3638572A1 (de) * 1985-11-13 1987-05-14 Hitachi Ltd Vektorprozessor
US5142638A (en) * 1989-02-07 1992-08-25 Cray Research, Inc. Apparatus for sharing memory in a multiprocessor system
US5202970A (en) * 1989-02-07 1993-04-13 Cray Research, Inc. Method for sharing memory in a multiprocessor system
EP0607988A1 (de) * 1993-01-22 1994-07-27 Matsushita Electric Industrial Co., Ltd. Programmgesteuertes Prozessor
DE19735981B4 (de) * 1996-08-19 2007-02-22 Samsung Electronics Co., Ltd., Suwon Mehrprozessorbetrieb in einem Multimedia-Signalprozessor

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58134357A (ja) * 1982-02-03 1983-08-10 Hitachi Ltd ベクトルプロセッサ
US4594682A (en) * 1982-12-22 1986-06-10 Ibm Corporation Vector processing
JPS59128670A (ja) * 1983-01-12 1984-07-24 Hitachi Ltd ベクトル処理装置
JPS59160267A (ja) * 1983-03-02 1984-09-10 Hitachi Ltd ベクトル処理装置
JPS6077265A (ja) * 1983-10-05 1985-05-01 Hitachi Ltd ベクトル処理装置
JPS60134974A (ja) * 1983-12-23 1985-07-18 Hitachi Ltd ベクトル処理装置
US4942518A (en) * 1984-06-20 1990-07-17 Convex Computer Corporation Cache store bypass for computer
EP0167959B1 (de) * 1984-07-02 1992-05-06 Nec Corporation Rechner-Vektorregisterverarbeitung
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
JPS61173345A (ja) * 1985-01-29 1986-08-05 Hitachi Ltd 計算機システム
US4945479A (en) * 1985-07-31 1990-07-31 Unisys Corporation Tightly coupled scientific processing system
US4873630A (en) * 1985-07-31 1989-10-10 Unisys Corporation Scientific processor to support a host processor referencing common memory
US4858115A (en) * 1985-07-31 1989-08-15 Unisys Corporation Loop control mechanism for scientific processor
JPS62115571A (ja) * 1985-11-15 1987-05-27 Fujitsu Ltd ベクトルアクセス制御方式
US4974198A (en) * 1986-07-16 1990-11-27 Nec Corporation Vector processing system utilizing firm ware control to prevent delays during processing operations
US4987534A (en) * 1986-08-20 1991-01-22 Nec Corporation Processor having synchronized operation between a CPU and a vector processor
JP2760790B2 (ja) * 1986-10-09 1998-06-04 株式会社日立製作所 データ処理装置
JPS63253468A (ja) * 1987-04-10 1988-10-20 Hitachi Ltd ベクトル処理装置
US5063497A (en) * 1987-07-01 1991-11-05 Digital Equipment Corporation Apparatus and method for recovering from missing page faults in vector data processing operations
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
US5008812A (en) * 1988-03-18 1991-04-16 Digital Equipment Corporation Context switching method and apparatus for use in 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
US5019968A (en) * 1988-03-29 1991-05-28 Yulan Wang Three-dimensional vector processor
US5210834A (en) * 1988-06-01 1993-05-11 Digital Equipment Corporation High speed transfer of instructions from a master to a slave processor
US5040109A (en) * 1988-07-20 1991-08-13 Digital Equipment Corporation Efficient protocol for communicating between asychronous devices
US5179674A (en) * 1988-07-25 1993-01-12 Digital Equipment Corporation Method and apparatus for predicting valid performance of virtual-address to physical-address translations
JPH02109160A (ja) * 1988-10-18 1990-04-20 Japan Atom Energy Res Inst ベクトル計算機用演算装置
US5257394A (en) * 1988-10-18 1993-10-26 Japan Atomic Energy Research Institute Logical expression processing pipeline using pushdown stacks for a vector computer
JP2693651B2 (ja) * 1991-04-30 1997-12-24 株式会社東芝 並列プロセッサー
US5530881A (en) * 1991-06-06 1996-06-25 Hitachi, Ltd. Vector processing apparatus for processing different instruction set architectures corresponding to mingled-type programs and separate-type programs
US5742842A (en) * 1992-01-28 1998-04-21 Fujitsu Limited Data processing apparatus for executing a vector operation under control of a master processor
US6591361B1 (en) 1999-12-28 2003-07-08 International Business Machines Corporation Method and apparatus for converting data into different ordinal types
US6857061B1 (en) * 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6701424B1 (en) 2000-04-07 2004-03-02 Nintendo Co., Ltd. Method and apparatus for efficient loading and storing of vectors
GB2382887B (en) * 2001-10-31 2005-09-28 Alphamosaic Ltd Instruction execution in a processor
US7577816B2 (en) * 2003-08-18 2009-08-18 Cray Inc. Remote translation mechanism for a multinode system
JP3855270B2 (ja) * 2003-05-29 2006-12-06 ソニー株式会社 アンテナ実装方法
US7743223B2 (en) * 2003-08-18 2010-06-22 Cray Inc. Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system
US7503048B1 (en) 2003-08-18 2009-03-10 Cray Incorporated Scheduling synchronization of programs running as streams on multiple processors
US7366873B1 (en) 2003-08-18 2008-04-29 Cray, Inc. Indirectly addressed vector load-operate-store method and apparatus
US7519771B1 (en) 2003-08-18 2009-04-14 Cray Inc. System and method for processing memory instructions using a forced order queue
US7437521B1 (en) 2003-08-18 2008-10-14 Cray Inc. Multistream processing memory-and barrier-synchronization method and apparatus
US7334110B1 (en) * 2003-08-18 2008-02-19 Cray Inc. Decoupled scalar/vector computer architecture system and method
US7421565B1 (en) 2003-08-18 2008-09-02 Cray Inc. Method and apparatus for indirectly addressed vector load-add -store across multi-processors
US8307194B1 (en) 2003-08-18 2012-11-06 Cray Inc. Relaxed memory consistency model
US7543133B1 (en) 2003-08-18 2009-06-02 Cray Inc. Latency tolerant distributed shared memory multiprocessor computer
US7735088B1 (en) 2003-08-18 2010-06-08 Cray Inc. Scheduling synchronization of programs running as streams on multiple processors
GB2409060B (en) * 2003-12-09 2006-08-09 Advanced Risc Mach Ltd Moving data between registers of different register data stores
GB2409068A (en) * 2003-12-09 2005-06-15 Advanced Risc Mach Ltd Data element size control within parallel lanes of processing
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
EP1812928A4 (de) * 2004-11-15 2010-03-31 Nvidia Corp Videoverarbeitung
US8416251B2 (en) * 2004-11-15 2013-04-09 Nvidia Corporation Stream processing in a video processor
US7478769B1 (en) 2005-03-09 2009-01-20 Cray Inc. Method and apparatus for cooling electronic components
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US8683126B2 (en) * 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US9064333B2 (en) * 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) * 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8681861B2 (en) * 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) * 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8489851B2 (en) * 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
JP5699554B2 (ja) * 2010-11-11 2015-04-15 富士通株式会社 ベクトル処理回路、命令発行制御方法、及びプロセッサシステム
KR101912427B1 (ko) * 2011-12-12 2018-10-29 삼성전자주식회사 재구성가능 프로세서 및 재구성가능 프로세서의 미니 코어
US11544214B2 (en) 2015-02-02 2023-01-03 Optimum Semiconductor Technologies, Inc. Monolithic vector processor configured to operate on variable length vectors using a vector length register
US10762164B2 (en) 2016-01-20 2020-09-01 Cambricon Technologies Corporation Limited Vector and matrix computing device
CN111580863B (zh) * 2016-01-20 2024-05-03 中科寒武纪科技股份有限公司 一种向量运算装置及运算方法
CN107315718B (zh) * 2016-04-26 2020-08-21 中科寒武纪科技股份有限公司 一种用于执行向量内积运算的装置和方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3684876A (en) * 1970-03-26 1972-08-15 Evans & Sutherland Computer Co Vector computing system as for use in a matrix computer
EP0042442A1 (de) * 1979-12-29 1981-12-30 Fujitsu Limited Informationsverarbeitende anlage

Family Cites Families (8)

* 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
US4101960A (en) * 1977-03-29 1978-07-18 Burroughs Corporation Scientific processor
JPS6024985B2 (ja) * 1978-08-31 1985-06-15 富士通株式会社 デ−タ処理方式
US4281391A (en) * 1979-01-15 1981-07-28 Leland Stanford Junior University Number theoretic processor
US4365292A (en) * 1979-11-26 1982-12-21 Burroughs Corporation Array processor architecture connection network
US4412303A (en) * 1979-11-26 1983-10-25 Burroughs Corporation Array processor architecture
US4344134A (en) * 1980-06-30 1982-08-10 Burroughs Corporation Partitionable parallel processor
KR860001434B1 (ko) * 1980-11-21 1986-09-24 후지쑤 가부시끼가이샤 데이타 처리시 스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3684876A (en) * 1970-03-26 1972-08-15 Evans & Sutherland Computer Co Vector computing system as for use in a matrix computer
EP0042442A1 (de) * 1979-12-29 1981-12-30 Fujitsu Limited Informationsverarbeitende anlage

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DE-Z: Elektronik, 1979. Heft 17, S. 25-34 *
INTEL-Series 3000 Reference Manual, INTEL Corp., 1976, S. 3-21 bis 3-25 *
US-Z: Electronics, 16.Aug.79, S. 118-124 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0123509A2 (de) * 1983-04-25 1984-10-31 Cray Research, Inc. Mehrprozessorsteuerung für Vektorrechner
EP0123509A3 (en) * 1983-04-25 1988-04-27 Cray Research Inc Computer vector multiprocessing control
EP0207506A2 (de) * 1985-07-03 1987-01-07 Hitachi, Ltd. Vektorverarbeitungsgerät
EP0207506A3 (en) * 1985-07-03 1989-01-18 Hitachi, Ltd. Vector processing apparatus
DE3638572A1 (de) * 1985-11-13 1987-05-14 Hitachi Ltd Vektorprozessor
US5142638A (en) * 1989-02-07 1992-08-25 Cray Research, Inc. Apparatus for sharing memory in a multiprocessor system
US5202970A (en) * 1989-02-07 1993-04-13 Cray Research, Inc. Method for sharing memory in a multiprocessor system
EP0607988A1 (de) * 1993-01-22 1994-07-27 Matsushita Electric Industrial Co., Ltd. Programmgesteuertes Prozessor
US5517666A (en) * 1993-01-22 1996-05-14 Matsushita Electric Industrial Co., Ltd. Program controlled processor wherein vector distributor and vector coupler operate independently of sequencer
DE19735981B4 (de) * 1996-08-19 2007-02-22 Samsung Electronics Co., Ltd., Suwon Mehrprozessorbetrieb in einem Multimedia-Signalprozessor

Also Published As

Publication number Publication date
DE3210816C2 (de) 1988-06-16
US4541046A (en) 1985-09-10
GB2098371A (en) 1982-11-17
GB2098371B (en) 1985-01-16

Similar Documents

Publication Publication Date Title
DE3210816A1 (de) Datenverarbeitungssystem mit getrennten einrichtungen zur verarbeitung von skalar- und vektordaten
DE2554652C3 (de) Modulare Signalverarbeitungseinrichtung
DE69130852T2 (de) Verarbeitungsmechanismus zur Verschachtelung in einem Schleifensteuersystem
DE68928848T2 (de) Multi-Prozessor-Rechnersystem mit prozessunabhängiger Adressierung von Kommunikationsregistern
DE3424962C2 (de)
DE1915818C3 (de) Steuerschaltung für ein elektronisches Datenverarbeitungssystem
DE3784082T2 (de) Adaptive befehlsverarbeitung durch feldrechner mit prozessoridentifikation und datenabhaengigen statusregistern in jedem prozessorelement.
DE2846117C2 (de) Datenprozessor
DE68926956T2 (de) Anordnung zur teilung eines generischen kodes für ein digitales datenverarbeitungssystem
DE2457612C3 (de) Mikroprogrammier-Steuereinrichtung
DE3638572C2 (de)
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE1549523B2 (de) Datenverarbeitungsanlage
DE2934971A1 (de) Datenverarbeitungssystem
DE69826404T2 (de) Datenverarbeitungssystem mit mehreren Prozessoren, die eine Registerbank gemeinsam benutzen
DE3043653C2 (de) Datenverarbeitungsanlage
DE3400723C2 (de)
DE69632655T2 (de) Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen
DE3688806T2 (de) Instruktionsprozessor.
DE4430195B4 (de) Verfahren zur Auswertung von Booleschen Ausdrücken
DE2911909A1 (de) Verfahren und geraet zur digitalen datenverarbeitung, insbesondere von digitalen audiosignalen
DE2617485C3 (de) Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen
DE2310553A1 (de) Vorrichtung zur durchfuehrung arithmetischer und logischer operationen
DE2418921C2 (de) Vorrichtung zum Speichern von Mikroprogrammen in einer Datenverarbeitungsanlage
DE2854400A1 (de) Anordnung zum wechsel zwischen verzahnt zu verarbeitenden programmen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition