[go: up one dir, main page]

DE68926430T2 - Vektorprozessor - Google Patents

Vektorprozessor

Info

Publication number
DE68926430T2
DE68926430T2 DE1989626430 DE68926430T DE68926430T2 DE 68926430 T2 DE68926430 T2 DE 68926430T2 DE 1989626430 DE1989626430 DE 1989626430 DE 68926430 T DE68926430 T DE 68926430T DE 68926430 T2 DE68926430 T2 DE 68926430T2
Authority
DE
Germany
Prior art keywords
vector
address
data
access
vector processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE1989626430
Other languages
English (en)
Other versions
DE68926430D1 (de
Inventor
Shohji Nakatani
Ken Seki
Nobuyuki Sugiura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE68926430D1 publication Critical patent/DE68926430D1/de
Application granted granted Critical
Publication of DE68926430T2 publication Critical patent/DE68926430T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8092Array of vector units

Landscapes

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

Description

  • Die Erfindung betrifft ein Vektor-Verarbeitungsgerät, welches eine Vektorberechnung durchführt.
  • Bei wissenschaftlichen oder technologischen Berechnungen werden häufig Schleifenberechnungen durchgeführt. Die Schleifenberechnungen können in Vektorberechnungen transformiert werden, z. B. A(i) + B(i) = C(i), (i = 0 bis n-1).
  • Um die Geschwindigkeit der Vektorberechnungen zu erhöhen, sind Computersysteme zur Durchführung von Berechnungen mit hoher Geschwindigkeit, wie beispielsweise Supercomputer, mit einem Vektorverarbeitungsgerät ausgerüstet, um Vektorberechnungen durchzuführen, und zwar zusätzlich zu einem Skalardatenverarbeitungsgerät.
  • Bei einem Vektorverarbeitungsgerät sind eine Vielzahl von Vektorverarbeitungseinheiten vorgesehen und jede Vektorverarbeitungseinheit führt einen Anteil einer Vektorberechnung gleichlaufend mit anderen Vektorverarbeitungseinheiten durch. Beispielsweise wird eine Vektorberechnung A(i) + B(i) = C(i), (i = 0 bis n-1) durch eine erste und zweite Vektorverarbeitungseinheit in solcher Weise gemeinsam durchgeführt, daß die erste Vektorverarbeitungseinheit einen halben Anteil der Vektorberechnung für die Hälfte der Elemente A(4m) + B(4m) = C(4m) und A(4m+1) + B(4m+1) = C(4m+1) durchführt und die zweite Vektorverarbeitungseinheit die andere Hälfte der Vektorberechnung für die andere Hälfte der Elemente A(4m+2) + B(4m+2) = C(4m+2) und A(4m+3) + B(4m+3) = C(4m+3) durchführt, worin 0 ≤ 4m und 4m+3 ≤ n-1 und wobei n die Gesamtzahl der Elemente ist und wobei die erste und die zweite Vektorverarbeitungseinheit gleichlaufend jeweilige Anteile der Vektorberechnung durchführen, um dadurch die Berechnungsgeschwindigkeit weiter zu erhöhen.
  • Bei dem zuvor erläuterten Vektorverarbeitungsgerät, welches eine Vielzahl von Vektorverarbeitungseinheiten enthält, fragt die Vielzahl der Vektorverarbeitungseinheit unabhängig nach einem Zugriff zu dem Hauptspeicher und auch die Skalareinheit (CPU) und der Eingabe- und Ausgabeprozessor (IOP) fragen ebenso unabhängig nach einem Zugriff zu dem Hauptspeicher. Daher muß eine Entscheidung hinsichtlich des Zugriffes zum Hauptspeicher zwischen der Vielzahl der Vektorverarbeitungseinheiten, der Skalareinheit (CPU) und dem Eingabe- und Ausgabeprozessor (IOP) durchgeführt werden, um einen Konflikt zu vermeiden. Zusätzlich muß die Reihenfolge der Elemente der Vektordaten in dem Ergebnis der Entscheidung zwischen den Zugriffen aus der Vielzahl der Vektorverarbeitungseinheiten aufrechterhalten werden.
  • Fig. 1 zeigt einen Plan einer Konstruktion eines Beispiels eines bestehenden Vektorverarbeitungsgerätes mit einer Vielzahl von Vektorverarbeitungseinheiten.
  • In Fig. 1 bezeichnet das Bezugszeichen 1 eine Vektorverarbeitungs-Steuereinheit, 2 und 3 bezeichnen jeweils eine Vektorverarbeitungseinheit, 4 bezeichnet einen Hauptspeicher, 5 und 9 jeweils einen Adressengenerator, 6 und 10 jeweils eine Prioritätssteuereinheit, 8 und 12 jeweils einen Datenpuffer, 7 und 11 jeweils ein Vektorregister und 13 bezeichnet einen Signalverlauf für ein Steuersignal.
  • Bei diesem Beispiel führt die Vektorverarbeitungseinheit 2 Berechnungen von den (4m)'ten und (4m+1)'ten Elementen durch und die Vektorverarbeitungseinheit 2 führt Berechnungen der (4m+2)'ten und (4m+3)'ten Elemente durch, wobei 0 ≤ 4m und 4m+3 ≤ n-1 ist und n die Gesamtzahl der Elemente bezeichnet.
  • Wenn die Vektorverarbeitungs-Steuereinheit 1 einen Vektorbefehl von einer Skalareinheit (CPU) (nicht gezeigt) empfängt, schickt die Vektorverarbeitungs-Steuereinheit 1 Steuerdaten, die ein Startsignal, einen Operationskode (welcher die durchzuführende Aktion definiert, z. B. Einschreiben oder Auslesen), eine Führungsadresse (LA, eine Adresse des obersten Elements der Vektordaten), einen Abstand (D, einen Abstand zwischen Adressen aufeinanderfolgender Elemente) und eine Vektorlänge (die Zahl von Elementen in Vektordaten) usw. enthält, zu den Adressengeneratoren 5 und 6.
  • Der Adressengenerator 5 erzeugt in der Vektorverarbeitungseinheit 2 Adressen für einen Zugriff zum Hauptspeicher 4 für die Berechnungen an den (4m)'ten und (4m+1)'ten Elementen und der Adressengenerator 9 in der Vektorverarbeitungseinheit 3 erzeugt Adressen für einen Zugriff zum Hauptspeichers 4 für die Berechnungen an den (4m+2)'ten und (4m+3)'ten Elementen, basierend auf den oben genannten Steuerdaten.
  • Die Prioritätssteuereinheit 6 in der Vektorverarbeitungseinheit 2 führt eine Entscheidung zwischen den Anfragen nach Zugriffen zu dem Hauptspeicher 4 für die (4m)'ten und (4m+1)'ten Elemente durch, Nachfragen von der Skalareinheit (CPU) und Nachfragen von dem Eingabe- und Ausgabeprozessor (IOP), und erteilt einer der zuvor erläuterten Anfragen eine Erlaubnis (für die (4m)'ten und (4m+1)'ten Elemente) von der Vektorverarbeitungseinheit 2, und zwar auf der Grundlage der Adressen, die in dem Adressengenerator 5 erzeugt wurden und der Reihenfolge der Elemente. Die höchste Priorität wird der Anfrage von dem Eingabe- und Ausgabeprozessor (IOP) erteilt, die nächsthöhere Priorität wird der Anfrage von der Skalareinheit (CPU) erteilt und die Erlaubnis wird dann in der Reihenfolge der Elemente erteilt, d. h. das (4m)'te Element hat Vorrang über das 4(m+1)'te Element.
  • In ähnlicher Weise führt die Prioritätssteuereinheit 10 in der Vektorverarbeitungseinheit 3 eine Entscheidung zwischen den Anfragen nach Zugriffen zu dem Hauptspeicher 4 für die (4m+2)'ten und (4m+3)'ten Elemente durch, ebenso hinsichtlich Anfragen aus der Skalareinheit (CPU), und Anfragen von dem Eingabe- und Ausgabeprozessor (IOP), und erteilt eine Erlaubnis für eine der oben genannten Anfragen (für die (4m+2)'ten und (4m+3)'ten Elemente) von der Vektorverarbeitungseinheit 3, basierend auf den in dem Adressengenerator 9 erzeugten Adressen und basierend auf der Reihenfolge der Elemente. In ähnlicher Weise wird die höchste Priorität der Anfrage von dem Eingabe- und Ausgabeprozessor (IOP) erteilt, die nächsthöhere Priorität wird der Anfrage aus der Skalareinheit (CPU) erteilt und es wird dann eine Erlaubnis in der Reihenfolge der Elemente erteilt, d. h. das (4m+2)'te Element hat Vorrang über dem (4m+3)'ten Element.
  • Um ferner die Reihenfolge der Elemente der Vektordaten über beide Vektorverarbeitungseinheiten 2 und 3 hinweg aufrechtzuerhalten, bevor ein Zugriff für ein Element (i) erteilt wird, muß eine der Vektorverarbeitungseinheiten 2 und 3 wissen, ob ein Zugriff für ein Element, welches eine Erlaubnis vor dem Element (i) erhalten muß (ein Element, welches durch eine kleinere Nummer als (i) bezeichnet ist), in der anderen Vektorverarbeitungseinheit bereits erteilt worden ist oder nicht. Beispielsweise muß die Vektorverarbeitungseinheit 2, bevor ein Zugriff für das Element 4m zugelassen wird, wissen, ob der Zugriff zum Hauptspeicher 4 für das Element 4m-1 bereits in der Vektorverarbeitungseinheit 3 freigegeben bzw. erlaubt wurde oder nicht.
  • Um die obige Reihenfolge sicherzustellen, wird bei der Konstruktion nach Fig. 1 der Status der Zulassung in jeder Vektorverarbeitungseinheit über den Signalpfad 13 zu der anderen Vektorverarbeitungseinheit übertragen. Jedoch ist in der Praxis jede der Vektorverarbeitungseinheiten 2 und 3 auf einer einzelnen Schaltungsplatte ausgebildet und es ist daher die Ausbreitungsverzögerungszeit über den oben genannten Signalpfad groß, verglichen mit dem Taktzyklus von Hochgeschwindigkeitscomputern, wenn der Zustand der Zulassung über unterschiedliche Schaltungsplatten berichtet wird.
  • Um darüber hinaus bei der Konstruktion nach Fig. 1 einen Konflikt zwischen den Anfragen von beiden Vektorverarbeitungseinheiten 2 und 3 zu vermeiden, werden vorbestimmte abwechselnde Zugriffs-Zeitsteuerungen jeweils für die (4m)'ten und (4m+1)'ten Elemente in der Vektorverarbeitungseinheit 2 zugeordnet und auch für die (4m+2)'ten und (4m+3)'ten Elemente in der Vektorverarbeitungseinheit 3 zugeordnet.
  • Üblicherweise besteht ein Hauptspeicher aus einer Vielzahl von Abschnitten (Bänken oder Speichereinheiten), wobei jeder Abschnitt fortlaufend zugegriffen werden kann, beispielsweise besteht der Hauptspeicher 4 in der Konstruktion von Fig. 1 aus vier Speichereinheiten SU-1, SU-2, SU-3 und SU-4. Um auf diese Speichereinheiten SU-1, SU-2, SU-3 und SU-4 von den Vektorverarbeitungseinheiten 2 und 3 ohne Konflikt zuzugreifen, werden die alternativen Zeitsteuerungen, wie sie in Fig. 2 gezeigt sind, zugewiesen.
  • Wie oben dargelegt wurde, muß bei dem bestehenden Vektorbearbeitungsgerät jede Vektorverarbeitungseinheit darauf warten, den Status der Erlaubnis eines Zugriffs zum Hauptspeicher von der (den) anderen Vektorverarbeitungseinheit(en) zu erhalten, bevor die Entscheidung ausgeführt wird. Da zusätzlich bei dem bestehenden Vektorverarbeitungsgerät vorbestimmte (feste) alternative Zeitsteuerungen einer Vielzahl von Vektorverarbeitungseinheiten, wie oben erwähnt wurde, zugewiesen werden, kann jede Vektorverarbeitungseinheit keinen Zugriff zu dem Hauptspeicher in einer Zeitsteuerung vornehmen, die von der oben erwähnten vorbestimmten (festgelegten) Zeitsteuerung abweicht, und zwar selbst dann nicht, wenn der Zielabschnitt des Hauptspeichers in diesem Zeitsteuerbereich nicht belegt ist. Es werden nämlich bei dem bestehenden Vektorverarbeitungsgerät die Zugriffe zum Hauptspeicher von einer Vielzahl von Vektorverarbeitungseinheiten nicht effektiv ausgeführt und daher ist die gesamte Zugriffs zeit zum Hauptspeicher über eine Vektorberechnung hinweg lang.
  • Es ist daher wünschenswert, ein Vektorverarbeitungsgerät zu schaffen, welches eine Vielzahl von Vektorverarbeitungseinheiten besitzt, von denen jede gleichzeitig einen Anteil bei der Vektorverarbeitung ausführt und wobei Zugriffe von den Vektorverarbeitungseinheiten zu einem Hauptspeicher effektiv ausgeführt werden und eine Gesamtzugriffszeit zum Hauptspeicher während einer Vektorberechnung reduziert ist.
  • Die EP-A-0 123 509 offenbart ein Vektorverarbeitungssystem gemäß dem Oberbegriff des angefügten Anspruches 1. Das System ist mit einem Konflikt-Auflösungsnetzwerk ausgestattet, welches eine Konflikt-Auflösungsschaltung für jeden einer Vielzahl von Abschnitten des Hauptspeichers umfaßt, welches zwischen jedem Hauptspeicher und Ports der Vektorverarbeitungseinheiten zwischengesetzt ist. Jede Konflikt-Auflösungsschaltung enthält eine Prüfschaltung für eine gleichzeitige Bank-Bezugnahme, um Konflikte zwischen Zugriffsanfragen durch verschiedene Vektorverarbeitungseinheiten auf die gleiche Speicherbank innerhalb des jeweiligen Abschnitts des Speichers zu detektieren. Die in Konflikt stehenden Anfragen werden gemäß der Priorität angeordnet, die auf einer wechselnden Grundlage bestimmt wird.
  • Gemäß der vorliegenden Erfindung wird ein Vektorverarbeitungssystem zur Durchführung einer Vektordatenverarbeitung geschaffen, bei welcher Vektordaten aus einem Hauptspeicher herausgegriffen werden und welches Vektorberechnungen durchführt und bei dem Vektordaten in dem Hauptspeicher abgespeichert werden, wobei das System eine Vielzahl von Vektorverarbeitungseinheiten enthält, von denen jede eine Vektordatenverarbeitung für einen Abschnitt von Elementen ausführt, die der Vektorverarbeitungseinheit unter allen Elementen der Vektordaten zugewiesen sind, wobei der Speicher eine Vielzahl von Abschnitten enthält, die durch wenigstens die Vektorverarbeitungseinheiten gleichzeitig zugreifbar sind, wobei die Vektordatenverarbeitung in der Vielzahl der Vektorverarbeitungseinheiten gleichzeitig ausgeführt wird, alle die Elemente in eine Reihenfolge gebracht werden und die Vektordatenverarbeitung in der Reihenfolge der Elemente durchgeführt wird, dadurch gekennzeichnet, daß jede der Vektorverarbeitungseinheiten folgendes aufweist:
  • eine Adressengeneratoreinrichtung zum Empfangen von Informationen, die zum Erzeugen von Adressen der Elemente der Vektordaten für alle Vektorverarbeitungseinheiten verwendet werden und um auf der Grundlage der empfangenen Informationen die genannten Adressen der Elemente der Vektordaten für alle die Vektorverarbeitungseinheiten zu erzeugen,
  • eine Prioritätssteuereinrichtung zum Empfangen der Adressen für alle Vektorverarbeitungseinheiten von der Adressenerzeugungseinrichtung in jeder Vektorverarbeitungseinheit und zum Auswählen eines zulässigen Zugriffs zu einer Adresse aus den Adressen für alle Vektorverarbeitungseinheiten auf der Grundlage einer vorbestimmten Reihenfolge der Elemente der Vektordaten, und
  • eine Ausgabeeinrichtung für ein Speicherzugriffssignal zum Ausgeben eines Speicherzugriffssignals, welches die Adresse enthält, für die der Zugriff durch die Prioritätssteuereinrichtung als zulässig ausgewählt wurde, an den Speicher, und daß
  • die Prioritätssteuereinrichtung maximal einen Zugriff aus wenigstens den genannten Zugriffen für die Adressen auswählt, die durch ihre eigene Vektorverarbeitungseinheit für jeden Abschnitt des Speichers nachgefragt wurden, und zwar basierend auf den Adressen, die gleichzeitig in der Adressenerzeugungseinrichtung der Vielzahl der Vektorverarbeitungseinheiten erzeugt werden und auf der Grundlage der vorbestimmten Reihenfolge der Elemente, und die dann ein oder mehrere Zugriffssignale zu dem Speicher ausgibt, das bzw. die als zulässig ausgewählt wurden.
  • Es werden somit mit Hilfe der Erfindung alle Adresseninformationen, die von allen Abschnitten des Vektorverarbeitungsgerätes angefragt werden, und zwar für Zugriffe zum Hauptspeicher, erzeugt und in jeder der Vektorverarbeitungseinheiten gesammelt und es kann daher die Prioritätsteuerung für den Zugriff für jedes Element der Vektordaten ohne Empfangen des Statusses des Zugriffes zum Hauptspeicher von anderen Vektorverarbeitungseinheiten ausgeführt werden. Darüber hinaus existiert keine Grenze für die Zeitsteuerung für einen Zugriff zum Hauptspeicher für jede Vektorverarbeitungseinheit, ausgenommen der oben genannten Prioritätssteuerung. Es können nämlich die zuvor erläuterten Ursachen für eine Verzögerung beim Zugriff zum Hauptspeicher bei dem bestehenden Typ eines Vektorverarbeitungsgerätes gemildert oder beseitigt werden.
  • Ferner enthält jede der oben genannten Vektorverarbeitungseinheiten ein Vektorregister und eine indirekte Adressierungs-Steuereinheit. Das Vektorregister speichert zeitweilig Adressendaten, die aus dem Hauptspeicher ausgelesen worden sind und die dazu zu verwenden sind, um in den Adressengeneratoren in der Vielzahl der Vektorverarbeitungseinheiten eine Adresse zu generieren. Die indirekte Adressierungs-Steuereinheit steuert die Leseoperationen der oben genannten Adressendaten in das oben genannte Vektorregister und schickt die Adressendaten zu der Vielzahl der Vektorverarbeitungseinheiten, wenn von der oben genannten Vektorverarbeitungs-Steuereinheit ein indirekter Adressierungsmode befehligt wird. Der Adressengenerator erzeugt Adressen für die Vektorverarbeitung von allen Elementen, welche die Adressendaten aus den oben genannten Vektorregistern verwenden, in allen der Vielzahl der Vektorverarbeitungseinheiten, wenn der indirekte Adressierungsmode von der oben genannten Vektorverarbeitungs-Steuereinheit befehligt wurde. Es werden somit alle Adressendaten, die für eine indirekte Adressierung benötigt werden, die aus dem Hauptspeicher zu dem Vektorregister in jeder der Vektorverarbeitungseinheiten ausgelesen wurden, den Adressengeneratoren in all den Vektorverarbeitungseinheiten zugeführt und es kann daher der Adressengenerator in jeder Vektorverarbeitungseinheit all die Adressen für einen Zugriff zum Hauptspeicher von all den Vektorverarbeitungseinheiten bei der indirekten Adressierung generieren.
  • Es soll nun auf die beigefügten Zeichnungen als Beispiel näher eingegangen werden, in denen:
  • Fig. 1 einen Plan der Konstruktion eines Beispiels eines bestehenden Vektorverarbeitungsgerätes mit einer Vielzahl von Vektorverarbeitungseinheiten zeigt;
  • Fig. 2 vorbestimmte alternative Zugriffs-Zeitsteuerungen zeigt, die jeweils für die (4m)'ten und (4m+1)'ten Elemente in der Vektorverarbeitungseinheit 2 und für die (4m+2)'ten und (4m+3)'ten Elemente in der Vektorverarbeitungseinheit 3 in der Konstruktion von Fig. 1 zugewiesen werden;
  • Fig. 3 einen Plan der Konstruktion einer ersten Ausführungsform der vorliegenden Erfindung zeigt;
  • Fig. 4 einen Plan einer Konstruktion einer zweiten Ausführungsform der vorliegenden Erfindung zeigt;
  • Fig. 5 und 6 Konstruktionen der Vektorverarbeitungseinheiten 41 und 42 zeigen;
  • Fig. 7 und 8 jeweils Konstruktionen der Prioritätssteuerschaltungen 100 und 100' in den Fig. 5 und 6 zeigen;
  • Fig. 9 eine Konstruktion für Belegungsprüfschaltungen 111-114 und 111'-114' in der Konstruktion der Fig. 7 und 8 zeigt;
  • Fig. 10 eine Konstruktion für die FF-Setzschaltungen 121 und 121' in der Konstruktion von den Fig. 7 und 8 zeigt; und
  • Fig. 11 eine detaillierte Konstruktion für Verzögerungsschaltungen 101 und 101' und die darauf bezogene Konstruktion der Prioritätssteuerabschnitte 72 und 72' in der Konstruktion der Fig. 5 und 6 zeigt.
  • Fig. 3 zeigt einen Plan der Konstruktion einer ersten Ausführungsform der vorliegenden Erfindung.
  • In Fig. 3 bezeichnet das Bezugszeichen 20 einen Eingabe- und Ausgabeprozessor (IOP), 21 bezeichnet eine Skalareinheit (CPU), 22 bezeichnet eine Vektorverarbeitungs- Steuereinheit, 23 bezeichnet eine erste Vektorverarbeitungseinheit, 24 bezeichnet eine zweite Vektorverarbeitungseinheit, 25 und 25' bezeichnen jeweils einen Adressengenerator, 26 und 26' bezeichnen je eine Prioritätsteuereinheit, 27 und 27' bezeichnen je eine Verzögerungsschaltung, 28 und 28' bezeichnen je einen Datenpuffer, 29 und 29' bezeichnen je ein Vektorregister, 30 und 30' bezeichnen je eine indirekte Adressierungs-Steuereinheit und 4' bezeichnet einen Hauptspeicher.
  • Der Eingabe- und Ausgabeprozessor (IOP) 20 steuert den Datentransfer zwischen dem Hauptspeicher 4' und den Eingabe-/Ausgabevorrichtungen, die in dem Computersystem vorgesehen sind, welches ein Vektorverarbeitungsgerät gemäß der vorliegenden Erfindung enthält.
  • Die Skalareinheit (CPU) 21 besteht aus einer zentralen Verarbeitungseinheit des Computersystems. Die Skalareinheit (CPU) 21 entnimmt aus dem Hauptspeicher 4' Befehle und Daten, führt Befehle aus, die von Vektorbefehlen verschieden sind, und überträgt Vektorbefehle zu der Vektorverarbeitungs-Steuereinheit 22.
  • Wenn die Vektorverarbeitungs-Steuereinheit 22 einen Vektorbefehl von einer Skalareinheit (CPU) 21 empfängt, wie die Vektorverarbeitungs-Steuereinheit 1 in Fig. 1, überträgt die Vektorverarbeitungs-Steuereinheit 22 Steuerdaten, die ein Startsignal, einen Operationskode (der die auszuführende Aktion z. B. Einschreiben oder Auslesen definiert), eine Führungsadresse LA, eine Adresse des obersten Elements der Vektordaten, einen Abstand (einen Abstand zwischen Adressen von aufeinanderfolgenden Elementen) und eine Vektorlänge (die Zahl der Elemente in Vektordaten) usw. enthalten, zu der ersten und der zweiten Vektorverarbeitungseinheit 23 und 24, basierend auf dem Vektorbefehl.
  • Die Vektorverarbeitungseinheiten 23 und 24 führen je eine Vektordatenverarbeitung für die Hälfte der Elemente unter all den Elementen der Vektordaten durch und es wird die Vektordatenverarbeitung in den Vektorverarbeitungseinheiten 23 und 24 gleichzeitig ausgeführt. Die Vektordatenverarbeitung wird in der Reihenfolge der Elemente ausgeführt, d. h. von dem Element 0 bis zu dem Element n-1, wenn die Vektorlänge n ist.
  • Der Adressengenerator 25 in der Vektorverarbeitungseinheit 23 erzeugt gleichlaufend Adressen für Zugriffe zum Hauptspeicher 4' für die Elemente, die gleichzeitig von beiden Vektorverarbeitungseinheiten 23 und 24 angefragt werden.
  • In ähnlicher Weise erzeugt der Adressengenerator 25' in der Vektorverarbeitungseinheit 24 gleichzeitig Adressen für Zugriffe zum Hauptspeicher 4' für die Elemente, die gleichzeitig durch beide Vektorverarbeitungseinheiten 23 und 24 angefragt werden. Die in den Adressengeneratoren 25 und 25' gleichlaufend generierten Adressen sind die gleichen.
  • Wie der Hauptspeicher 4 in Fig. 1 enthält der Hauptspeicher 4' eine Vielzahl von Speichereinheiten (oder Bänken), die gleichzeitig von den Vektorverarbeitungseinheiten 23 und 24, der Skalareinheit (CPU) 21 und dem Eingabe- und Ausgabeprozessor 20 zugreifbar sind.
  • Die Prioritätssteuereinheit 26 bestimmt maximal einen Zugriff als zulässig, und zwar unter den Zugriffen, die fortlaufend durch die Vektorverarbeitungseinheiten 23 und 24 angefragt werden, einem Zugriff, der von der zentralen Verarbeitungseinheit 21 angefragt wird, und einen Zugriff, der durch den Eingabe- und Ausgabeprozessor 20 angefragt wird, und zwar für jede der Speichereinheiten (oder Bänke) des Hauptspeichers 4', basierend auf den Adressen, die gleichlaufend in dem Adressengenerator 25 erzeugt werden, einer Adresse in dem Zugriff, der von der zentralen Verarbeitungseinheit 21 angefragt wird, einer Adresse in dem Zugriff, der von dem Eingabe- und Ausgabeprozessor angefragt wird, und der Reihenfolge der Elemente. Dann gibt die Prioritätssteuereinheit 26 ein oder mehrere Signale für die Zugriffe, die durch ihre eigene Vektorverarbeitungseinheit 23 angefragt wurden und als zulässig bezeichnet wurden, an den Hauptspeicher 4' aus.
  • In ähnlicher Weise bestimmte die Prioritätssteuereinheit 26' höchstens einen Zugriff als zulässig, und zwar unter den Zugriffen, die gleichlaufend durch die Vektorverarbeitungseinheiten 23 und 24 angefragt werden, einem Zugriff, der von der zentralen Verarbeitungseinheit 21 angefragt wird, und einem Zugriff, der durch den Eingabe- und Ausgabeprozessor 20 angefragt wird, für jede der Speichereinheiten (oder Bänke) des Hauptspeichers 4', basierend auf den Adressen, die gleichlaufend in dem Adressengenerator 25 erzeugt werden, einer Adresse in dem Zugriff, der von der zentralen Verarbeitungseinheit 21 angefragt wurde, einer Adresse in dem Zugriff, der von dem Eingabe- und Ausgabeprozessor 20 angefragt wurde, und der Reihenfolge der Elemente. Dann gibt die Prioritätssteuereinheit 26 ein oder mehrere Signale für die Zugriffe, die durch ihre eigene Vektorverarbeitungseinheit 23 angefragt wurden und die als zulässig bezeichnet wurden, an den Hauptspeicher 4' aus.
  • Wenn die Adressen, die gleichlaufend durch die Vektorverarbeitungseinheiten 23 und 24, der zentralen Verarbeitungseinheit 21 und dem Eingabe- und Ausgabeprozessor 20 angefragt werden, in verschiedenen Speichereinheiten (oder Bänken) vorhanden sind, ergibt sich kein Konflikt zwischen diesen Anfragen und es werden daher alle diese Anfragen als zulässig bestimmt und es werden Signale für alle die Zugriffe, die in jeder Vektorverarbeitungseinheit angefragt wurden, von jeder Vektorverarbeitungseinheit zu dem Hauptspeicher 4' übertragen.
  • Wenn zwei Adressen, die gleichlaufend für einen Zugriff durch irgendeine der Vektorverarbeitungseinheiten 23 und 24, der zentralen Verarbeitungseinheit 21 und dem Eingabe- und Ausgabeprozessor 20 angefragt wurden, in der gleichen Speichereinheit (oder Bank) liegen, so wird die Priorität für den Zugriff zum Hauptspeicher 4' in der folgenden Reihenfolge erteilt: der Zugriff gemäß der höchsten Priorität wird dem Eingabe- und Ausgabeprozessor 20 gegeben, der Zugriff gemäß der zweithöchsten Priorität wird der zentralen Verarbeitungseinheit 21 gegeben, die nächsthöhere Priorität wird dem Zugriff für das Element in der höchsten Reihenfolge (beispielsweise dem Element A(i), welches durch die kleinste Zahl i bezeichnet ist) unter den angefragten Zugriffen erteilt, . . . , und es wird somit der Zugriff mit der niedrigsten Priorität dem Element in der niedrigsten Reihenfolge (beispielsweise dem Element A(j), welches durch die größte Zahl j bezeichnet ist) unter den angefragten Zugriffen gegeben.
  • Obwohl in Fig. 3 nicht gezeigt, enthalten die Prioritätssteuereinheiten 26 und 26' je eine Vielzahl von Flagregistern, um den Belegtstatus der jeweiligen Abschnitte des Hauptspeichers 4' zu halten und anzuzeigen, d. h. der gleichen Satz von Flagregistern zum Halten und Anzeigen eines Belegtstatusses der jeweiligen Abschnitte des Hauptspeichers 4' ist in beiden Prioritätssteuereinheiten 26 und 26' in den Vektorverarbeitungseinheiten 23 und 24 vorgesehen. Jede der Prioritätssteuereinheiten 26 und 26' setzt eines oder mehrere entsprechende Flagregister in ihre eigene Prioritätssteuereinheit, wenn ein oder mehrere Zugriffe als zulässig bestimmt werden und stellt jedes Flagregister zu einer ersten vorbestimmten Zeit zurück nach dem Setzen des Flagregisters. Die erste vorbestimmte Zeit entspricht einer Zeit, in der jede Speichereinheit (oder Bank) für einen Zugriff besetzt ist, oder einer Zeit, während der ein Zugriffspfad zu jeder Speichereinheit (oder Bank) für einen Zugriff besetzt ist.
  • Die oben erwähnte erste vorbestimmte Zeit wird durch die Verzögerungsschaltungen 27 und 27' in den Vektorverarbeitungseinheiten 23 und 24 erzeugt. Die Verzögerungsschaltungen 27 und 27' geben entsprechend Adresseninformationen ein, wenn irgendeines der Flagregister gesetzt ist, und geben die Adresseninformation aus, und zwar die erste vorbestimmte Zeit nach der Eingabe und es werden die Ausgangsgrößen der Verzögerungsschaltungen 27 und 27' jeweils in einem Dekodierer (in Fig. 3 nicht gezeigt) dekodiert und es werden die Ausgangsbits des Dekodierers an die oben genannte Vielzahl der Flagregister als Rückstellsignale angelegt.
  • Die Vektorregister 29 und 29' sind jeweils zu dem Zweck vorgesehen, um zeitweilig Daten zu halten, die aus dem Hauptspeicher 4' ausgelesen werden, bis alle Daten aus den Vektorregistern 29 und 29' für jeweilige Abschnitte einer Vektorberechnung ausgelesen sind.
  • Die Datenpufferschaltungen 28 und 28' halten je zeitweilig die Daten, die aus dem Hauptspeicher 4' ausgelesen wurden, bevor die Daten in die entsprechenden Vektorregister 29 und 29' eingegeben werden.
  • Jede Verzögerungsschaltung 27 und 27' gibt entsprechende Adresseninformationen ein, wenn ein Zugriff unter den von ihrer eigenen Vektorverarbeitungseinheit angefragten Zugriffe als zulässig bestimmt wird, und gibt dann die Adresseninformation an die entsprechenden Datenpufferschaltungen 28 und 28' aus, um eine Zeitsteuerung der Eingabe der Daten in die entsprechenden Vektorregister 29 und 29' zu erzeugen, und zwar eine zweite vorbestimmte Zeit nach der oben erwähnten Eingabe der Adresseninformation. In jeder Vektorverarbeitungseinheit 23 und 24 werden Daten, die aus dem Hauptspeicher 4' entnommen wurden, einmal in das Vektorregister 29 oder 29' über die Pufferregister 28 oder 28' eingeschrieben und es werden dann die Daten für eine Vektorberechnung ausgelesen (die Konstruktionen für die Vektorberechnung in den Vektorverarbeitungseinheiten sind nicht gezeigt). Die durch die Vektorberechnung in jeder Vektorverarbeitungseinheit 23 oder 24 erhaltenen Daten werden ebenso einmal in dem Vektorregister 29 oder 29' gehalten, bevor sie in dem Hauptspeicher 4' abgespeichert werden.
  • Die oben erwähnte zweite vorbestimmte Zeitdauer wird ebenfalls durch die Verzögerungsschaltungen 27 und 27' in den Vektorverarbeitungseinheiten 23 und 24 erzeugt. Die Verzögerungsschaltungen 27 und 27' werden jeweils durch ein Schieberegister mit einer Vielzahl von Stufen-gebildet. Bei jedem Zyklus werden Adresseninformationen, die in jeder Stufe gehalten werden, zur nächsten Stufe verschoben und die Verzögerungswerte der oben genannten ersten und zweiten vorbestimmten Zeiten werden aus den verschiedenen Stufen in dem Schieberegister erhalten.
  • Zusätzlich halten in jeder der Vektorverarbeitungseinheiten 23 und 24 die Vektorregister 29 oder 29' zeitweilig Adressendaten für eine indirekte Adressierung, die aus dem Hauptspeicher 4' ausgelesen worden ist, als auch Vektordaten für die Vektorberechnung und es werden die Adressendaten zum Erzeugen effektiver Adressen bei der indirekten Adressierung in den Adressengeneratoren 25 und 25' in beiden Vektorverarbeitungseinheiten 23 und 24 zugeführt.
  • Die Steuereinheiten 30 oder 30' für eine indirekte Adressierung steuert die Einleseoperationen der Adressendaten in die Vektorregister 29 oder 29', deren eigenen Vektorverarbeitungseinheit 23 oder 24 und steuert die Zufuhr der Adressendaten zu beiden Vektorverarbeitungseinheiten 23 und 24, wenn von der Vektorverarbeitungs-Steuereinheit 22 ein indirekter Adressierungsmode befehligt wird.
  • Der Adressengenerator 25 oder 25' in jeder Vektorverarbeitungseinheit 23 oder 24 erzeugt effektive Adressen für die Vektorverarbeitung von allen Elementen unter Verwendung der oben genannten Adressendaten, die von den Vektorregistern 29 und 29' zugeführt werden, und zwar in beiden Vektorverarbeitungseinheiten 23 und 24, wenn von der Vektorverarbeitungs-Steuereinheit 22 der indirekte Adressierungsmode befehligt wird.
  • Wenn nämlich die indirekte Adressierung von der Vektorverarbeitungs-Steuereinheit 22 befehligt wird, werden Adressendaten für die indirekte Adressierung des oben genannten Teiles der Elemente aus dem Hauptspeicher 4' ausgelesen, und zwar durch jede Vektorverarbeitungseinheit, und werden zeitweilig in einem Vektorregister in jeder Vektorverarbeitungseinheit gehalten und es werden die Adressendaten, die in jeder Vektorverarbeitungseinheit in dem Vektorregister gehalten werden, den Adressengeneratoren 25 und 25' in beiden Vektorverarbeitungseinheiten 23 und 24 zugeführt.
  • Fig. 4 zeigt eine zweite Ausführungsform der vorliegenden Erfindung.
  • Die Konstruktion des Vektorverarbeitungsgerätes, welches in Fig. 4 gezeigt ist, ist ein Beispiel für die oben erwähnte Konstruktion des in Fig. 3 gezeigten Vektorverarbeitungsgerätes.
  • In Fig. 4 bezeichnet das Bezugszeichen 40 eine Vektorverarbeitungs-Steuereinheit, 41 bezeichnet eine erste Vektorverarbeitungseinheit, 42 bezeichnet eine zweite Vektorverarbeitungseinheit, 45 und 55 jeweils einen Adressengenerator, 46 und 56 je eine Prioritätssteuereinheit, 47 und 57 je eine Verzögerungsschaltung, 48 und 58 je einen Datenpuffer, 49 und 59 je ein Vektorregister, 50 und 60 je eine Steuereinheit für eine indirekte Adressierung, 43 und 44 je die Hauptspeichereinheit A und die Hauptspeichereinheit B, 51, 52, 61 und 62 je eine Wählvorrichtung, 53, 54, 63 und 64 je eine Speichereinheit, 65 und 67 je eine Speichersteuerschaltung und 66 und 68 bezeichnen je eine Eingabe-/Ausgabeschaltung.
  • Das Vektorverarbeitungsgerät umfaßt erste und zweite Vektorverarbeitungseinheiten 41 und 42, wobei die erste Vektorverarbeitungseinheit 41 eine Vektorverarbeitung der (4m)'ten und (4m+1)'ten Elemente durchführt und wobei die zweite Vektorverarbeitungseinheit 42 eine Vektorverarbeitung der (4m+2)'ten und (4m+3)'ten Elemente durchführt. Es greift nämlich die erste Vektorverarbeitungseinheit 41 auf die Hauptspeichereinheiten A 43 und B 44 zu, und zwar für die (4m)'ten und (4m+1)'ten Elemente und die zweite Vektorverarbeitungseinheit 42 greift auf die Hauptspeichereinheiten A 43 und B 44 für die (4m+2)'ten und (4m+3)'ten Elemente zu.
  • Bei der Konstruktion nach Fig. 4 sind zwei Hauptspeichereinheiten 43 und 44 vorgesehen und die Daten der (4m)'ten und (4m+2)'ten Elemente sind in der Hauptspeichereinheit A 43 abgespeichert und die Daten der (4m+1)'ten und (4m+3)'ten Elemente sind in der Hauptspeichereinheit B 44 abgespeichert.
  • In der Hauptspeichereinheit A 43 werden Signale MSRQA für ein Zugreifen auf die Hauptspeichereinheit A 43 für die (4m)'ten Elemente von der Vektorverarbeitungseinheit 41, Signale MSRQC für ein Zugreifen auf die Hauptspeichereinheit A 43 für die (4m+2)'ten Elemente von der Vektorverarbeitungseinheit 42 an die Speichereinheit 53 über die Wählvorrichtung 51 angelegt, und auch an die Speichereinheit 54 über die Wählvorrichtung 52 angelegt. In der Hauptspeichereinheit B 44 werden Signale MSRQB für das Zugreifen auf die Hauptspeichereinheit 344 für die (4m+1)'ten Elemente von der Vektorverarbeitungseinheit 41 und werden Signale MSRQD für ein Zugreifen auf die Hauptspeichereinheit B 44 für die (4m+3)'ten Elemente von der Vektorverarbeitungseinheit 42 an die Speichereinheit 63 über die Wählvorrichtung 61 angelegt und über die Wählvorrichtung 62 an die Speichereinheit 64 angelegt.
  • Obwohl dies nicht gezeigt ist, umfaßt jede der Speichereinheiten 53, 54, 63 und 64 zweiunddreißig Bänke und jede Bank kann gleichzeitig zugegriffen werden. Der Zugriff zu diesen Bänken wird durch die Speichersteuerschaltung 67 in der Hauptspeichereinheit A 43 gesteuert und durch die Speichersteuerschaltung 65 in der Hauptspeichereinheit 3 44, basierend auf den Adresseninformationen, die in den oben genannten Signalen MSRQA, MSRQB, MSRQC und MSRQD enthalten sind. Obwohl dies nicht gezeigt ist, umfaßt jede der Speichereinheiten 53, 54, 63 und 64 ferner eine Demultiplexer für die Abgabe der oben genannten Signale MSRQA, MSRQC, MSRQB und MSRQD von den Wählvorrichtungen 51 und 52 oder 61 und 62 zu einer objektiven Bank in jedem Zyklus. Die Speichersteuerschaltung 67 oder 65 steuert den Demultiplexer. Ferner werden Eingangs-/Ausgangsdaten jeder Bank in jeder Hauptspeichereinheit 43 oder 44 an der Eingabe-/Ausgabeschaltung 68 oder 66 unter der Steuerung der Speichersteuerschaltung ausgewählt.
  • Die Fig. 5 und 6 zeigen Konstruktionen der Vektorverarbeitungseinheiten 41 und 43.
  • In Fig. 5 bezeichnet das Bezugszeichen 71 einen Adressengenerator, 72 bezeichnet eine Prioritätssteuereinheit, 73 bezeichnet eine Datenwähl- und Pufferschaltung, 74 bezeichnet ein Vektorregister, 75 bezeichnet eine Steuereinheit für eine indirekte Adressierung, 76 bezeichnet eine Steuereinheit für die Adressengenerierung, 77 bezeichnet eine Wähl- und Puffersteuerschaltung, 78 bezeichnet eine Pufferschaltung, 79 bezeichnet eine Matrixschaltung, 80, 81, 84, 85, 88, 89, 92 und 93 je ein Register, 82, 86, 90 und 94 je einen Addierer, 83, 87, 91, 95, 96, 97, 98, 99, 102 und 103 je ein Register zum Halten der zuvor erwähnten Signale MSRQA, MSRQB, MSRQC und MSRQD für ein Zugreifen auf die Hauptspeichereinheiten, 100 bezeichnet eine Prioritätssteuerschaltung, 101 bezeichnet eine Verzögerungsschaltung.
  • Wenn ein Startsignal, ein Operationskode (der eine auszuführende Aktion definiert, z. B. das Einschreiben oder Auslesen), eine Führungsadresse (LA, eine Adresse eines obersten Elements der Vektordaten), ein Abstand (ein Abstand zwischen Adressen aufeinanderfolgender Elemente) und eine Vektorlänge (die Zahl der Elemente in Vektordaten) von der Steuereinheit 40 für die Vektorverarbeitung geliefert werden, wird die Führungsadresse in den Registern 80, 84, 88 und 92 gehalten. Ein 0-Wert wird in dem Register 81 gehalten, der Abstandswert wird in dem Register 85 gehalten, ein Wert gleich dem Zweifachen des Abstandswertes wird in dem Register 89 gehalten und ein Wert gleich dem Dreifachen des Abstandswertes wird in dem Register 93 bei dem ersten Zyklus gehalten. Bei dem nächsten Zyklus und bei späteren Zyklen wird der Abstandswert in den Registern 81, 85, 89 und 93 gehalten.
  • Dann werden die Summenwerte der Ausgangsgrößen von Paaren der Register 80 und 81, 84 und 85, 88 und 89 und 92 und 93 jeweils in den Addierern 82, 86, 90 und 94 berechnet. Jeder der Addierer 82, 86, 90 und 94 gibt eine effektive Adresse für einen Zugriff zu den Hauptspeichereinheiten für die (4m)'ten, (4m+1)'ten, (4m+2)'ten und (4m+3)'ten Elemente aus und diese effektiven Adressen werden in den Registern 83, 87, 91 und 95 jeweils zusammen mit dem Operationskode gehalten. Alle die oben erläuterten Operationen werden durch die Steuereinheit 76 für die Adressengenerierung gesteuert.
  • Die Fig. 7 und 8 zeigen jeweils Konstruktionen der Prioritätssteuerschaltungen 100 und 100' in den Fig. 5 und 6.
  • In Fig. 7 sind die Register 96, 97, 98, 99 die gleichen, wie sie in Fig. 5 gezeigt sind, und die Ausgangsgrößen der Register 83, 87, 91 und 99 werden in den entsprechenden Registers 96, 97, 98 und 99 jeweils gehalten. In Fig. 7 bezeichnen die Bezugszeichen 111, 112, 113 und 114 je eine Belegt-Prüfschaltung, 115, 116, 117 und 118 bezeichnen je eine Torsteuerschaltung, 119 bezeichnet einen ersten Prioritätssteuerabschnitt, 120 bezeichnet einen zweiten Prioritätssteuerabschnitt, 121 bezeichnet eine FF- Setzschaltung, 122, 123, . . . 124 je eine RS-Typ-Flipflop- Schaltung, 125 bezeichnet eine Zeigerschaltung und 126 bezeichnet einen Dekodierer.
  • Die RS-Typ-Flipflop-Schaltungen 122, 123 . . . 124 entsprechen der Vielzahl der Belegt-Flag-Register, die bei der ersten Ausführungsform erläutert wurden, und sind für jede Bank in den Speichereinheiten 53, 54, 63 und 64 vorgesehen, um anzuzeigen, ob jede Bank durch eine Zugriffsoperation belegt ist oder nicht.
  • Jede der Belegt-Prüfschaltungen 111, 112, 113, 114 bestimmt, ob eine Bank, für die ein Zugriff für ein entsprechendes Element angefragt wurde, belegt ist oder nicht, und zwar basierend auf einer effektiven Adresse, die in einem entsprechenden Register 96, 97, 98 oder 99 gehalten wird.
  • Fig. 9 zeigt eine Konstruktion für die Belegt-Prüfschaltungen 111-114 und 111'-114' in der Konstruktion der Fig. 7 und 8.
  • In Fig. 9 bezeichnet das Bezugszeichen 130 ein Register, 131 bezeichnet einen Dekodierer, 132 bis 134 bezeichnen je eine UND-Schaltung und 135 bezeichnet eine ODER- Schaltung.
  • Das Register 130 stellt eines der Register 96, 97, 98 und 99 dar, die in Fig. 7 gezeigt sind, oder die Register 96', 97', 98' und 99', die in Fig. 8 gezeigt sind, und der Eingang und der Ausgang des Registers 130 ist durch RQi bezeichnet, wobei RQi gleich ist RQA, RQB, RQC oder RQD. Ein Bit, welches die Hauptspeichereinheit (43 oder 44) unter den Adressenbits von RQi anzeigt, welches durch MSU-RECOGN- i bezeichnet ist, und ein Abschnitt, der eine objektive Bank unter den Adressenbits von RQi anzeigt, was durch BANK-RECOGN-i bezeichnet ist, werden in paralleler Form in den Dekodierer 131 eingegeben. Jede Ausgangsgröße BANK-REQ 0, BANK-REQ 1, . . . BANK-REQ 127 (was einem Gesamtwert von 128 Bänken in vier Speichereinheiten 53, 54, 63 und 64 entspricht) des Dekodierers 131 zeigt an, ob die entsprechende Anfrage für einen Zugriff nach einer Adresse in jeder Bank fragt oder nicht.
  • Die oben genannten Ausgangsgrößen BANK-REQ 0, BANK-REQ 1, . . . BANK-REQ 127 werden je an einen Eingangsanschluß eines entsprechenden einen der UND-Schaltungen 132, 133, . . . 134 eingegeben, wobei die UND-Schaltungen 132, 133, . . . 134 entsprechend den 128 Bänken vorgesehen sind. Dem anderen Eingangsanschluß jeder der UND-Schaltungen 132, 133, . . . 134 wird eine entsprechende eine der invertierten Ausgangsgrößen FF0, FF1, . . . FF127 der RS-Typ-Flipflop-Schaltungen 122, 123, . . . 124 eingegeben. Die Ausgangsgrößen aller der UND-Schaltungen 132, 133, . . . 134 werden der ODER-Schaltung 135 eingegeben und somit zeigt die Ausgangsgröße BUSY i der ODER-Schaltung 135 an, ob eine Bank, für die ein Zugriff für das entsprechende Element angefragt wurde, belegt ist oder nicht.
  • Das Ergebnis der Belegtprüfung BUSY i, wobei i gleich A, B, C oder D ist, wird an die entsprechende Torsteuerschaltung 115, 116, 117 oder 118 als ein Steuersignal angelegt. Wenn die Bank, für die ein Zugriff für das entsprechende Element anfragt wurde, nicht belegt ist, wird die Ausgangsgröße RQA, RQB, RQC oder RQD des entsprechenden Registers 96, 97, 98 oder 99 über eine entsprechende Torsteuerschaltung 115, 116, 117 oder 118 als ein effektives Erst- Stufen-Zugriffsignal REQA-OK, REQB-OK, REQC-OK oder REQD-OK an den ersten Prioritätssteuerabschnitt 119 angelegt.
  • Der erste Prioritätssteuerabschnitt 119 erlaubt einem der oben erwähnten effektiven Erst-Stufen-Zugriffssignale oder Signalen REQA-OK, REQB-OK, REQC-OK oder REQD-OK, in den zweiten Prioritätssteuerabschnitt 120 als ein effektives Zweit-Stufen-Zugriffssignal PRE-PRIO-REQA, PRE-PRIO- REQB, PRE-PRIO-REQC oder PRE-PRIO-REQD hineinzugelangen, wo das zugelassene Signal in der Reihenfolge der Elemente bestimmt wird. Das heißt, eines der oben erwähnten effektiven Signale, welches einem nächstgelegenen Element (j+1) zu dem letzten Element (j) entspricht, für welches ein Zugriff zu einer der Hauptspeichereinheiten bereits erlaubt worden ist, wird basierend auf der Information hinsichtlich des Status der früheren Zugriffe ausgewählt, welche Information über die Zeigerschaltung 125 und den Dekodierer 126 erhalten wird, was an späterer Stelle erklärt werden soll.
  • Der zweite Prioritätssteuerabschnitt 120 legt das oben genannte effektive Zweit -Stufen-Zugriffssignal PRE-PRIO- REQA, PRE-PRIO-REQB, PRE-PRIO-REQC, PRE-PRIO-REQD als ein effektives Endstufen- Zugriffssignal VU-PRIORITY-OK-A, VU- PRIORITY-OK-B, VU-PRIORITY-OK-C oder VU-PRIORITY-OK-D fest und gibt das effektive Endstufen-Zugriffssignal an die FF- Setzschaltung 121 aus, wenn weder eine Anfrage CPUREQ für einen Zugriff von der Skalareinheit (CPU) noch eine Anfrage IOPREQ für einen Zugriff von dem Eingabe- und Ausgabeprozessor (IOP) aktiv ist.
  • Wenn eine Anfrage für einen Zugriff von dem Eingabe- und Ausgabeprozessor (IOP) aktiv ist, bestimmt der oben erwähnte zweite Prioritätssteuerabschnitt 120 das Signal IOPREQ als effektives Endstufen-Zugriffssignal PRIORITY-OK- IOP und gibt dieses aus. Wenn eine Anfrage nach einem Zugriff von dem Eingabe- und Ausgabeprozessor (IOP) nicht aktiv ist und eine Anfrage CPUREQ für einen Zugriff von der Skalareinheit (CPU) aktiv ist, so bestimmt der oben erwähnte zweite Prioritätssteuerabschnitt 120 das Signal CPUREQ von der Skalareinheit (CPU) als das effektive Endstufen-Zugriffssignal PRIORITY-OK-CPU und gibt dieses aus.
  • Lediglich die Ausgangsgrößen VU-PRIORITY-OK-A und VU- PRIORITY-OK-B (die den Signalen MSRQA und MSRQB in den Fig. 4 und 5 entsprechen) des zweiten Prioritätssteuerabschnitts 120, die den Anfragen von deren eigener Vektorverarbeitungseinheit 41 entsprechen, werden zu einer objektiven Hauptspeichereinheit über die Register 102 und 103 jeweils gesendet.
  • Die Ausgangsgrößen des zweiten Prioritätssteuerabschnitts 120, die den Anfragen von den Vektorverarbeitungseinheiten 41 und 42 entsprechen, werden in die Zeigerschaltung 125 eingegeben und die Zeigerschaltung 125 erkennt den Status des Zugriffs zu den Hauptspeichereinheiten 43 und 44 durch die Vektorverarbeitungseinheiten 41 und 42. Die Ausgangsgröße der Zeigerschaltung 125 ist Null, wenn ein Zugriff, der zuletzt in dem zweiten Prioritätssteuerabschnitt 120 zugelassen wurde, für das ((4m)'te Element gilt, und sie ist Eins, wenn ein Zugriff, der zuletzt in dem zweiten Prioritätssteuerabschnitt 120 zugelassen wurde, für das (4m+1)'te Element gilt, die Ausgangsgröße ist Zwei, wenn der Zugriff, der zuletzt in dem zweiten Prioritätssteuerabschnitt 120 zugelassen wurde, für das (4m+2)'te Element gilt, und die Ausgangsgröße ist Drei, wenn ein Zugriff, der zuletzt in dem zweiten Prioritätssteuerabschnitt 120 erlaubt wurde, für das (4m+3)'te Element gilt.
  • Die oben erwähnten ersten und zweiten Prioritätssteuerabschnitte sind jeweils durch eine Hardware-Logikschaltung gebildet.
  • Die oben genannte Ausgangsgröße der Zeigerschaltung 125 wird in dem Dekodierer 126 dekodiert und wird dann dem ersten Prioritätssteuerabschnitt 119 als die zuvor erwähnte Information hinsichtlich des Statusses der früheren Zugriffe zugeführt.
  • Obwohl dies in Fig. 7 nicht gezeigt ist, empfängt die FF-Setzschaltung 121 die zuvor erwähnten Ausgangsgrößten BANK-REQ 0, BANK-REQ 1, . . . BANK-REQ 127 der Dekodierer 131 (wie in Fig. 9 gezeigt ist) in den Belegungs-Prüfschaltungen 111, 112, 113 und 114, als auch die oben erwähnten Ausgangsgrößen des zweiten Prioritätssteuerabschnitts 121.
  • Fig. 10 zeigt eine Konstruktion für die FF-Setzschaltungen 121 und 121' in der Konstruktion der Fig. 7 und 8.
  • In Fig. 10 bezeichnen die Bezugszeichen 140 bis 151 je eine UND-Schaltung und 152 und 153 je eine ODER-Schaltung. Zusätzlich bezeichnet BANK-REQ k von A das Ausgangssignal des Dekodierers 131 in der Belegungs-Prüfschaltung 111, BANK-REQ k von B bezeichnet das Ausgangssignal des Dekodierers 131 in der Belegungs-Prüfschaltung 112, BANK-REQ k von C bezeichnet das Ausgangssignal des Dekodierers 131 in der Belegungs-Prüfschaltung 113, BANK-REQ k von D bezeichnet das Ausgangssignal des Dekodierers 131 in der Belegungs- Prüfschaltung 114, worin k = 0, 1, . . . 127, wie dies in Fig. 9 gezeigt ist, BANK-REQ k von der CPU bezeichnet ein Signal, welches anzeigt, ob eine von der Skalareinheit (CPU) angefragte Adresse in der Bank k ist, und BANK-REQ k von IOP bezeichnet ein Signal, welches anzeigt, ob eine von dem Eingabe- und Ausgabeprozessor (IOP) angefragte in der Bank k ist oder nicht. Beides Signale BANK-REQ k von der CPU und BANK-REQ k von IOP können je durch einen Dekodierer (nicht gezeigt) erzeugt werden.
  • Die UND-Schaltung 140 gibt einen hohen Pegel aus, wenn sowohl das oben erwähnte Signal BANK-REQ 0 von A als auch die zuvor erwähnte Ausgangsgröße VU-PRIORITY-OK-A von dem zweiten Prioritätssteuerabschnitt 120 aktiv sind; die UND- Schaltung 141 gibt einen hohen Pegel aus, wenn sowohl das oben erwähnte Signal BANK-REQ 0 von B als auch die zuvor erwähnte Ausgangsgröße VU-PRIORITY-OK-B des zweiten Prioritätssteuerabschnitts 120 aktiv sind; die UND-Schaltung 142 gibt einen hohen Pegel aus, wenn sowohl das oben erwähnte Signal BANK-REQ 0 von C als auch die zuvor erwähnte Ausgangsgröße VU-PRIORITY-OK-C des zweiten Prioritätssteuerabschnitts 120 aktiv sind; die UND-Schaltung 143 gibt einen hohen Pegel aus, wenn sowohl das oben erwähnte Signal BANK- REQ 0 von D als auch die zuvor erwähnte Ausgangsgröße VU- PRIORITY-OK-D des zweiten Prioritätssteuerabschnitts 120 aktiv sind; die UND-Schaltung 144 gibt einen hohen Pegel aus, wenn sowohl das oben erwähnte Signal BANK-REQ 0 von der CPU als auch die zuvor erwähnte Ausgangsgröße PRIORITY-OK-CPU des zweiten Prioritätssteuerabschnitts 120 aktiv sind; und die UND-Schaltung 145 gibt einen hohen Pegel aus, wenn sowohl das oben erwähnte Signal BANK-REQ 0 von IOP als auch die zuvor erwähnte Ausgangsgröße PRIORITY-OK-IOP des zweiten Prioritätssteuerabschnitts 120 aktiv ist.
  • Die Ausgangsgrößen all der oben erwähnten UND-Schaltungen 140 bis 145 werden an eine ODER-Schaltung 152 angelegt. Die Ausgangsgröße der ODER-Schaltung 152 zeigt an, ob eine Anfrage nach einem Zugriff zu der Bank 0 durch wenigstens eine der Vektorverarbeitungseinheiten 43 und 44, der Skalareinheit (CPU) und dem Eingabe- und Ausgabeprozessor (IOP) angefragt wurde und es wird die Anfrage durch den ersten und den zweiten Prioritätssteuerabschnitt 119 und 120 als zulässig bestimmt, d. h. die Bank 0 wird zugegriffen. Die Ausgangsgröße der ODER-Schaltung 152 wird an den Setz- Anschluß der zuvor erwähnten RS-Typ-Flipflop-Schaltung 122 entsprechend der Bank 0 angelegt.
  • Für die anderen Bänke 1 bis 127 gelten Konstruktionen, die je aus sechs UND-Schaltungen und einer ODER-Schaltung bestehen, ähnlich der oben erläuterten Konstruktion-für die Bank 0, und es werden die Ausgangsgrößen der ODER-Schaltungen je an die Setz-Anschlüsse der zuvor erwähnten RS-Typ- Flipflop-Schaltungen 123 bis 124 jeweils angelegt, die den Bänke 1 bis 127 entsprechen.
  • Fig. 11 zeigt eine detaillierte Konstruktion für die Verzögerungsschaltungen 101 und 101' und die darauf bezogene Konstruktion der Prioritätssteuerabschnitte 72 und 72' in der Konstruktion der Fig. 5 und 6.
  • In Fig. 11 bezeichnen die Bezugszeichen 160 bis 165 je eine Torsteuerschaltung, 166 bis 171 je ein Schieberegisters, 172 bis 177 je einen Dekodierer und 178 bis 180 bezeichnen je eine ODER-Schaltung.
  • Die Schieberegister 166 bis 171 sind entsprechend den zuvor erwähnten Anfragen RQA, RQB, RQC, RQD und entsprechend den Anfragen von der Skalareinheit (CPU) und von dem Eingabe- und Ausgabeprozessor (IOP) jeweils vorgesehen und jedes der Schieberegister 166 bis 171 gibt eine entsprechende Adresse in die oben genannten Anfragen RQA, RQB, RQC, RQD ein und auch in die Anfragen von der CPU und dem IOP, was über entsprechende Torsteuerschaltungen 160, 161, 162, 163, 164 oder 165 erfolgt. Die Torsteuerschaltungen 160 bis 165 werden je durch die zuvor erwähnten Signale VU- PRIORITY-OK-A, VU-PRIORITY-OK-B, VU-PRIORITY-OK-C, VU- PRIORITY-OK-C, PRIORITY-OK-CPU und PRIORITY-OK-IOP jeweils von dem zweiten Prioritätssteuerabschnitt 120 gesteuert. Es wird nämlich nur dann, wenn eine entsprechende Anfrage in dem zweiten Prioritätssteuerabschnitt 120 als zulässig bestimmt wurde, die oben genannte Adresse in das entsprechende Schieberegister eingegeben.
  • In jedem Zyklus werden die Adressen, die in die Schieberegisters 166 bis 171 eingegeben wurden, je von einer Stufe zu einer nächsten Stufe verschoben und die Schieberegister 166 bis 171 geben je die oben genannten Adresse bei der ersten und zweiten Stufe aus. Die Ausgangsgrößen bei der ersten Stufe, die jeweils um eine erste vorbestimmte Zeitdauer durch das entsprechende Schieberegister verzögert worden sind, werden je in einen entsprechenden einen Dekodierer 172 bis 177 eingegeben. Jeder der Dekodierer 172 bis 177 funktioniert in der gleichen Weise wie der Dekodierer 131 in Fig. 9, d. h. jeder Dekodierer hat 128 Ausgänge entsprechend den 128 Bänken in den Hauptspeichereinheiten 43 und 44 und jeder der Ausgänge zeigt an, ob die in den Dekodierer eingegebene Adresse in der Bank vorhanden ist oder nicht.
  • Die Ausgangsgrößen der Dekodierer 166 bis 171, die jeder Bank entsprechen, werden in eine entsprechende eine der ODER-Schaltungen 178 bis 180 eingegeben und die Ausgangsgrößen der ODER-Schaltungen 178 bis 180 werden je an einen Rückstellanschluß einer entsprechenden einen der RS-Typ- Flipflop-Schaltungen 122 bis 124 in Fig. 7 angelegt. Es wird somit jede der RS-Typ-Flipflop-Schaltungen 122 bis 124 in Fig. 7 eine vorbestimmte Zeitdauer, nachdem sie gesetzt wurden, zurückgestellt.
  • Die Ausgangsgrößen bei der zweiten Stufe, die je durch eine zweite vorbestimmte Zeitdauer durch das entsprechende Schieberegister verzögert wurden, werden der Wähl- und Puffersteuerschaltung 77 in Fig. 5 zugeführt, um der Wähl- und Pufferschaltung 73 Zeitsteuerungen zu geben für die Steuerung der Eingabe- und Ausgabeoperationen und für die Auswähloperationen der entsprechenden Daten in der Wähl- und Pufferschaltung 73, welche Daten an der oben erwähnten Adresse in den Hauptspeichereinheiten 43 und 44 ausgelesen worden sind.
  • Nach den oben geschilderten Operationen der Prioritätsteuerung werden die Daten DATA A und DATA B, die aus den Hauptspeichereinheiten 43 und 44 für die Anfrage RQA und RQB ausgelesen wurden, in die Wähl- und Pufferschaltung 73 eingegeben. Die Wähl- und Pufferschaltung 73 umfaßt eine Matrixschaltung 79, eine Pufferschaltung 78 und die Wähl- und Puffersteuerschaltung 77. Die Matrixschaltung 79 ist für den Zweck vorgesehen, um die Pfade der Daten zu ändern, die in die Schaltung 79 über zwei Pfade von den Hauptspeichereinheiten 43 und 44 her eingegeben werden und die an zwei Bänke des Vektorregisters 74 über die Pufferschaltung 78 ausgegeben werden.
  • Die Pufferschaltung 78 ist für den Zweck vorgesehen, um die Eingabezeitsteuerung der oben genannten Daten in die Bänke des Vektorregisters 74 unter der Steuerung der oben genannten Auswähl- und Puffersteuerschaltung 77 einzustellen.
  • Obwohl die vorangegangene Erläuterung lediglich für die Konstruktion von Fig. 5 durchgeführt wurde, welche die Vektorverarbeitungseinheit 41 zeigt, um eine Vektorverarbeitung für die (4m)'ten und (4m+1)'ten Elemente durchzuführen, ist in der Konstruktion von Fig. 6 die Vektorverarbeitungseinheit 42 zu Durchführung der Vektorverarbeitung für die (4m+2)'ten und (4m+3)'ten Elemente ähnlich der oben beschriebenen Konstruktion von Fig. 5 ausgenommen, daß die Vektorverarbeitungseinheit 42 Zugriffssignale lediglich für die (4m+2)'ten und (4m+3)'ten Elemente ausgibt und die entsprechenden Daten der (4m+2)'ten und (4m+3)'ten Elemente empfängt. Demzufolge gibt die Prioritätssteuerschaltung 100' in der Konstruktion von Fig. 8 Zugriffssignale lediglich für die (4m+2)'ten und (4m+3)'ten Elemente aus.
  • Die Betriebsweise in einem indirekten Adressierungsmode ist grundsätzlich die gleiche wie die Betriebsweise bei der ersten Ausführungsform der vorliegenden Erfindung.
  • Es steuern nämlich die indirekten Adressierungs- Steuereinheiten 75 und 75' je die Leseoperationen der Adressendaten in die Vektorregister 74 oder 74' in ihren eigenen Vektorverarbeitungseinheiten 23 oder 24 und steuern die Zufuhr der Adressendaten von dem Vektorregister 74 oder 74' zu beiden Vektorverarbeitungseinheiten 41 und 42, wenn ein indirekter Adressierungsmode von der Vektorverarbeitungs-Steuereinheit 40 befehligt wird.
  • Der Adressengenerator 71 oder 71' in jeder Vektorverarbeitungseinheit 41 oder 42 generiert effektive Adressen für die Vektorverarbeitung von allen Elementen unter Verwendung der oben genannten Adressendaten, die von dem Vektorregister 74 und 74' in beiden Vektorverarbeitungseinheiten 41 und 42 zugeführt werden, wenn von der Vektorverarbeitungs-Steuereinheit 40 der indirekte Adressierungsmode befehlt wird.
  • Wenn nämlich von der Vektorverarbeitungs-Steuereinheit 40 eine indirekte Adressierung befehligt wird, werden Adressendaten für die indirekte Adressierung für die (4m)'ten und (4m+1)'ten Elemente aus den Hauptspeichereinheiten 43 und 44 durch die Vektorverarbeitungseinheit 41 ausgelesen und werden zeitweilig in einem Vektorregister 74 in der Vektorverarbeitungseinheit 41 gehalten. Andererseits werden Adressendaten für die indirekte Adressierung für die (4m+2)'ten und (4m+3)'ten Elemente aus den Hauptspeichereinheiten 43 und 44 durch die Vektorverarbeitungseinheit 42 ausgelesen und werden in einem Vektorregister 74' in der Vektorverarbeitungseinheit 42 zeitweilig gehalten. Es werden dann die Adressendaten, die in dem Vektorregister in jeder Vektorverarbeitungseinheit gehalten werden, den Adressengeneratoren 71 und 71' in beiden Vektorverarbeitungseinheiten 41 und 42 zugeführt, z. B. zu den Registern 81, 85, 89 und 93 in dem Adressengenerator 71 und zu den Registern 81', 85', 89' und 93' in dem Adressengenerator 71'
  • Es werden somit mit Hilfe der vorliegenden Erfindung alle Adressen, die hinsichtlich eines Zugriffs zu den Hauptspeichereinheiten angefragt wurden, erzeugt und werden prioritätsmäßig gesteuert, und zwar in jeder Vektorverarbeitungseinheit, und zwar selbst in einem indirekten Adressierungsmode.

Claims (22)

1. Vektorverarbeitungssystem zur Durchführung einer Vektordatenverarbeitung, bei dem Vektordaten aus einem Hauptspeicher (43, 44) herausgegriffen werden, Vektorberechnungen durchführt werden und Vektordaten in den genannten Speicher (43, 44) eingespeichert werden, wobei das System eine Vielzahl von Vektorverarbeitungseinheiten (41, 42) enthält, die je zur Durchführung einer Vektordatenverarbeitung für einen Teil von Elementen dienen, die einer Vektorverarbeitungseinheit unter allen Elementen der Vektordaten zugeordnet sind, wobei der genannte Speicher (43, 44) eine Vielzahl von Abschnitten umfaßt, die gleichzeitig wenigstens durch die Vektorverarbeitungseinheiten (41, 42) zugreifbar sind, und wobei die Vektordatenverarbeitung in der genannten Vielzahl von Vektorverarbeitungseinheiten (41, 42) gleichzeitig durchgeführt wird, alle die genannten Elemente in eine Reihenfolge gebracht werden und die Vektordatenverarbeitung in der Reihenfolge der Elemente durchgeführt wird, dadurch gekennzeichnet, daß jede der Vektorverarbeitungseinheiten (41, 42) folgendes aufweist:
eine Adressengenerierungseinrichtung (45, 55) zum Empfangen von Informationen, die dazu verwendet werden, um Adressen von Elementen der Vektordaten für alle die Vektorverarbeitungseinheiten zu erzeugen und um auf der Grundlage der empfangenen Informationen die Adressen der Elemente der Vektordaten für alle die Vektorverarbeitungseinheiten zu erzeugen,
eine Prioritätssteuereinrichtung (46, 56) zum Empfangen der Adressen für all die Vektorverarbeitungseinheiten (41, 42) von der Adressengenerierungseinrichtung in jeder Vektorverarbeitungseinheit, und um einen Zugriff für eine Adresse unter den Adressen für all die Vektorverarbeitungseinheiten als zulässig auszuwählen, basierend auf einer vorbestimmten Reihenfolge der Elemente der Vektordaten, und
eine Ausgabeeinrichtung für ein Speicherzugriffssignal zum Ausgeben eines Speicherzugriffssignals, welches die genannte Adresse enthält, für die ein Zugriff als zulässig durch die Prioritätssteuereinrichtung ausgewählt wurde, an den genannten Speicher (43, 44), und daß
die Prioritätssteuereinrichtung (46, 56) höchstens einen Zugriff aus wenigstens den genannten Zugriffen für Adressen als zulässig auswählt, die durch ihre eigene Vektorverarbeitungseinheit für jeden Abschnitt des genannten Speichers angefragt werden, und zwar basierend auf den Adressen, die gleichzeitig in der Adressengenerierungseinrichtung der Vielzahl der Vektorverarbeitungseinheiten erzeugt werden und basierend auf der vorbestimmten Reihenfolge der Elemente, und die dann ein oder mehrere Signale des Zugriffs, der als zulässig ausgewählt wurde, an den genannten Speicher ausgibt.
2. System nach Anspruch 1, bei dem die Prioritätssteuereinrichtung (46, 56) ferner folgendes aufweist:
eine Merkeinrichtung (122-124) für eine frühere Zugriffszeit, um einen Zustand gemäß einer Speicherbelegung für eine vorbestimmte Zeitdauer anzuzeigen, und zwar nach einem Zeitpunkt, nach dem ein früherer Zugriff als zulässig ausgewählt wurde, und
eine Einrichtung (111-119) zum Auswählen des genannten Zugriffs als zulässig nur dann, wenn die Merkeinrichtung für die frühere Zugriffszeit keinen Zustand entsprechend einer Speicherbelegung anzeigt.
3. System nach Anspruch 1, bei dem die Prioritätssteuereinrichtung (46, 56) ferner enthält:
eine Vielzahl von Merkeinrichtungen (122-124) für eine frühere Zugriffszeit, die für jeden einer Vielzahl von Bereichen von Adressen der Elemente vorgesehen sind, um einen Zustand entsprechend einer Speicherbelegung für den entsprechenden Bereich für eine vorbestimmte Zeitdauer nach einem Zeitpunkt anzuzeigen, bei dem ein früherer Zugriff für eine Adresse in dem entsprechenden Bereich als zulässig ausgewählt worden ist,
eine Einrichtung (119, 126, 125) zum Auswählen eines Zugriffs für eine Adresse unter den Adressen für alle Vektorverarbeitungseinheiten als einen zulässigen Kandidaten, basierend auf einer vorbestimmten Reihenfolge der Elemente der Vektordaten,
eine Adressenbereichs-Bestimmungseinrichtung (131) zum Bestimmen, zu welchem der Vielzahl der Bereiche die als ein zulässiger Kandidat ausgewählte Adresse gehört, und
eine Einrichtung (132-135), um den Zugriff nur dann als zulässig auszuwählen, wenn die Merkeinrichtung für die frühere Zugriffszeit, die dem Bereich entspricht, der durch die Adressenbereichs-Bestimmungseinrichtung bestimmt worden ist, keinen Zustand entsprechend einer Speicherbelegung anzeigt.
4. System nach Anspruch 1, bei dem die Prioritätssteuereinrichtung (46, 56) ferner enthält:
eine Anzeigeeinrichtung (125) für das letzte zugelassene Element, um ein Element anzuzeigen, für das das Speicherzugriffssignal zuletzt ausgegeben wurde, und
eine Einrichtung (119, 126) zum Auswählen eines nächsten zulässigen Zugriffs, basierend auf der Anzeige der Anzeigeeinrichtung für das letzte zugelassene Element.
5. System nach Anspruch 1, welches ferner enthält:
eine Informations-Zuführeinrichtung (40) zum Empfangen eines Vektorbefehls, der die Information enthält, und die gleichzeitig die Information zu der Vielzahl der adressengenerierenden Einrichtungen zuführt.
6. System nach Anspruch 1, bei dem die Prioritätssteuereinrichtung (46, 56) ferner enthält:
eine Vielzahl von Flagregistern (122, 123, 124) zum Halten von entsprechenden Belegt-Status-Anzeigen von jeweiligen Abschnitten des Speichers, und
eine Einrichtung (121), um eines oder mehrere entsprechende Flagregister zu setzen, wenn einer oder mehrere Zugriffe als zulässig ausgewählt werden, und eine Einrichtung (160-180) zum Rücksetzen jedes Flagregisters, nachdem eine erste vorbestimmte Zeitdauer nach dem Setzen derselben verstrichen ist.
7. System nach Anspruch 6, bei dem jede der Vektorverarbeitungseinheiten (41, 42) ferner folgendes enthält:
einen Dekodierer (172 bis 177),
eine Verzögerungsschaltung (47, 57), um dann, wenn irgendeines der Flagregister gesetzt wird, die in der Prioritätssteuereinrichtung erzeugte Adresse, die dem gesetzten Flagregister entspricht, in den Dekodierer einzugeben und die Adresse auszugeben, nachdem die erste vorbestimmte Zeitdauer verstrichen ist, und
wobei der Dekodierer die Ausgangsgröße der Verzögerungsschaltung dekodiert und die dekodierten Ergebnisse als Rückstellsignale an die Rückstelleinrichtung zum Rückstellen der Vielzahl der Flagregister (122, 123, 124) anlegt.
8. System nach Anspruch 1, bei dem jede der Vektorverarbeitungseinheiten (41, 42) ferner enthält:
ein Vektorregister (49, 59) für ein zeitweiliges Malten von Daten, die aus einer Datenpufferschaltung (48, 58) in der Vektorverarbeitungseinheit übertragen werden, bis die Daten für eine Vektorberechnung ausgelesen werden,
wobei die Datenpufferschaltung (48, 58) die Daten zeitweilig hält, die aus dem Speicher ausgelesen wurden, bevor die Daten in das Vektorregister eingelesen werden, und
eine Verzögerungsschaltung (47, 57), um dann, wenn ein Zugriff unter den durch deren eigene Vektorverarbeitungseinheit angefragten Zugriffe als zulässig ausgewählt ist, die von der Speicheradressensignal-Ausgabeeinrichtung ausgegebene Adresse in die Datenpufferschaltung einzugeben und die Adresse auszugeben, um die Zeitsteuerung der Eingabe der Daten in das Vektorregister, eine zweite vorbestimmte Zeitdauer nach der Eingabe der Adresse zu steuern.
9. System nach Anspruch 1, welches ferner eine zentrale Verarbeitungseinheit (21) und einen Eingabe-/Ausgabeprozessor (20) enthält, von denen jeder Zugriffsanfragen erzeugt, wobei
die Prioritätssteuereinrichtung (46, 56) einen oder mehrere Zugriffe als zulässig aus den Zugriffen für die Adressen auswählt, die durch deren eigene Vektorverarbeitungseinheit angefragt wurde bzw. wurden, und einen Zugriff auswählt, der von dem Eingabe-/Ausgabeprozessor angefragt wurde, und zwar basierend auf den Adressen, die gleichzeitig in der Adressengenerierungseinrichtung der Vielzahl der Vektorverarbeitungseinheiten erzeugt wurden, und auf der Grundlage der vorbestimmten Reihenfolge der Elemente, und die dann ein oder mehrere Signale des Zugriffs an den Speicher ausgibt, der als zulässig ausgewählt wurde.
10. System nach Anspruch 9, bei dem
die Abschnitt des Speichers (43, 44) auch durch die zentrale Verarbeitungseinheit und den Eingabe-/Ausgabeprozessor zugreifbar sind, und
bei dem die Prioritätssteuereinrichtung (46, 56) den oder jeden zulässigen Zugriff für jeden Abschnitt des Speichers basierend auf den Adressen auswählt, die gleichzeitig in der Adressengenerierungseinrichtung der Vielzahl der Vektorverarbeitungseinheiten erzeugt werden, und basierend auf der vorbestimmten Reihenfolge der Elemente, einer Adresse in dem Zugriff, der von der zentralen Verarbeitungseinheit angefragt wurde, und basierend auf einer Adresse in dem Zugriff, der von dem Eingabe-/Ausgabeprozessor angefragt wurde.
11. System nach Anspruch 10, bei dem die Prioritätssteuereinrichtung (46, 56) ferner enthält:
eine Vielzahl von Flagregistern (122, 123, 124) zum Halten von entsprechenden Belegt-Status-Anzeigen der jeweiligen Abschnitte des Speichers, und
eine Einrichtung (121) zum Setzen von einem oder mehreren entsprechenden Flagregisters, wenn ein oder mehrere Zugriffe als zulässig ausgewählt werden, und eine Einrichtung (160-180) zum Rücksetzen jedes Flagregisters, nachdem eine erste vorbestimmte Zeitdauer nach dem Setzen derselben verstrichen ist.
12. System nach Anspruch 11, bei dem jede der Vektorverarbeitungseinheiten (41, 42) ferner enthält:
einen Dekodierer (172 bis 177)
eine Verzögerungsschaltung (47, 57), um dann, wenn irgendeines der Flagregister (122, 123, 124) gesetzt wird, die in der Prioritätssteuereinrichtung (46, 56) erzeugte Adresse, die dem gesetzten Flagregister entspricht, in den Dekodierer einzugeben und um die genannte Adresse aus zugeben, nachdem die erste vorbestimmte Zeitdauer verstrichen ist, und
wobei der Dekodierer (172 bis 177) die Ausgangsgröße der Verzögerungsschaltung (47, 57) dekodiert und die dekodierten Ergebnisse als Rückstellsignale an die Rückstelleinrichtung zum Rückstellen der Vielzahl der Flagregister anlegt.
13. System nach Anspruch 9, bei dem jede der Vektorverarbeitungseinheiten (41, 42) ferner enthält:
ein Vektorregister (49, 59) zum zeitweiligen Halten von Daten, die von einer Datenpufferschaltung (48, 58) in der Vektorverarbeitungseinheit übertragen wurden, bis die Daten für eine Vektorberechnung ausgelesen werden,
wobei die Datenpufferschaltung (48, 58) die Daten zeitweilig hält, die aus dem Speicher ausgelesen wurden, bevor die Daten in das Vektorregister eingegeben werden, und
eine Verzögerungsschaltung (47, 57), um dann, wenn ein Zugriff unter den von deren eigenen Vektorverarbeitungseinheit angefragten Zugriffen als zulässig ausgewählt wurde, die von der Speicherzugriffssignal-Ausgabeeinrichtung ausgegebene Adresse in die Datenpufferschaltung einzugeben und die genannten Adressen aus dieser Datenpufferschaltung aus zugeben, um die Zeitsteuerung der Eingabe der Daten in das Vektorregister, eine zweite vorbestimmte Zeitdauer nach der Eingabe der Adresse zu steuern.
14. System nach Anspruch 1, welches ferner eine Speicherzugriffs-Steuereinrichtung enthält, die einen indirekten Adressierungsmode-Befehl erzeugt, wobei jede der Vektorverarbeitungseinheiten ferner enthält:
ein Vektorregister (49, 59) für ein zeitweiliges Halten indirekter Adressendaten für eine indirekte Adressierung des Abschnitts der Elemente, die der Vektorverarbeitungseinheit zugewiesen sind, dort, wo Adressendaten aus dem Speicher ausgelesen wurden, und um die indirekten Adressendaten zum Erzeugen effektiver Adressen für die indirekte Adressierung für alle die Elemente der Vektordaten in der Adressengenerierungseinrichtung in allen den Vektorverarbeitungseinheiten zuzuführen, und
eine indirekte Adressierungs-Steuereinheit (50, 60) zum Steuern der Leseoperationen der indirekten Adressendaten in das Vektorregister und zum Steuern der Zufuhr der Adressendaten für alle die Vektorverarbeitungseinheiten, wenn von der Speicheradressen-Steuereinheit ein indirekter Adressierungsmode erzeugt wird,
eine Adressengenerierungseinrichtung (45, 55), die die effektiven Adressen zum Zugreifen auf alle die Elemente erzeugt, und zwar unter Verwendung der indirekten Adressendaten, die von dem Vektorregister in all den Vektorverarbeitungseinheiten zugeführt werden, wenn durch die Speicherzugriffs-Steuereinheit der indirekte Adressierungsmode erzeugt wird.
15. System nach Anspruch 1, bei dem die Prioritätssteuereinrichtung (46, 56) ferner enthält:
eine Vielzahl von Flagregistern (122, 123, 124), um entsprechende Belegtstatus-Anzeigen der jeweiligen Abschnitte des Speichers (43, 44) zu halten, und
eine Einrichtung (121) zum Setzen von einem oder mehreren entsprechenden Flagregistern, wenn einer oder mehrere Zugriffe als zulässig ausgewählt werden, und eine Einrichtung (160-180) zum Rücksetzen jedes Flagregisters, nachdem eine erste vorbestimmte Zeitdauer nach dem Setzen derselben verstrichen ist.
16. System nach Anspruch 15, bei dem jede der Vektorverarbeitungseinheiten (41, 42) ferner enthält:
einen Dekodierer (172 bis 177),
eine Verzögerungsschaltung (47, 57), um dann, wenn irgendeines der Flagregister gesetzt wird, die in der Prioritätssteuereinrichtung erzeugte Adresse, die dem gesetzten Flagregister entspricht, in den genannten Dekodierer einzugeben und um die genannte Adresse aus zugeben, nachdem die erste vorbestimmte Zeitdauer verstrichen ist, und
wobei der Dekodierer (172 bis 177) die Ausgangsgröße der Verzögerungsschaltung dekodiert und die dekodierten Ergebnisse als Rückstellsignale an die Rückstelleinrichtung anlegt, um die Vielzahl der Flagregister zurückzustellen.
17. System nach Anspruch 14, bei dem das Vektorregister in jeder der Vektorverarbeitungseinheiten zeitweilig Daten hält, die aus dem Speicher ausgelesen wurden, als auch indirekte Adressendaten, bis die Daten für eine Vektorberechnung ausgelesen werden, und
bei dem jede Vektorverarbeitungseinheit (41, 42) ferner folgendes enthält:
eine Datenpufferschaltung (48, 58) zum Eingeben von Daten in das Vektorregister, und
eine Verzögerungsschaltung (47, 57), um dann, wenn ein Zugriff unter den durch deren eigene Vektorverarbeitungseinheit angefragten Zugriffen als zulässig ausgewählt wird, die durch die Prioritätssteuereinrichtung erzeugte Adresse in die Datenpufferschaltung einzugeben und um die genannte Adresse aus dieser Datenpufferschaltung auszugeben, um die Zeitsteuerung der Eingabe der Daten in das Vektorregister eine zweite vorbestimmte Zeitdauer nach der Eingabe der Adresse zu steuern.
18. System nach Anspruch 14, welches ferner eine zentrale Verarbeitungseinheit (21) und einen Eingabe-/Ausgabeprozessor (20) enthält, die jeweils Zugriffsanfragen erzeugen, wobei:
die Prioritätssteuereinrichtung (46, 56) einen oder mehrere Zugriffe aus den Zugriffen für Adressen als zulässig auswählt, die durch deren eigene Vektorverarbeitungseinheit angefragt wurden, einen von der zentralen Verarbeitungseinheit angefragten Zugriff und einen von dem Eingabe-/Ausgabeprozessor angefragten Zugriff, basierend auf den Adressen als zulässig auswählt, die in der Adressengenerierungseinrichtung der Vektorverarbeitungseinheiten gleichzeitig erzeugt werden, und basierend auf der vorbestimmen Reihenfolge der Elemente auswählt und dann ein oder mehrere Signale des Zugriffs an den Speicher ausgibt, der als zulässig ausgewählt wurde.
19. System nach Anspruch 18, bei dem
die Abschnitte des Speichers (43, 44) auch gleichzeitig von der zentralen Vektorverarbeitungseinheit und dem Eingabe-/Ausgabeprozessor zugreifbar sind, und
bei dem die Prioritätssteuereinrichtung (46, 56) den zulässigen Zugriff aus den Zugriffen für die Adressen auswählt, die durch deren eigene Vektorverarbeitungseinheit angefragt wurden, einen Zugriff, der von der zentralen Verarbeitungseinheit angefragt wurde, und einen Zugriff, der durch den Eingabe-/Ausgabeprozessor angefragt wurde, auswählt, und zwar für jeden Abschnitt des Speichers, basierend auf den Adressen, die gleichzeitig in der Adressengenerierungseinrichtung der Vektorverarbeitungseinheiten erzeugt wurden und basierend auf der Reihenfolge der Elemente und basierend auf einer Adresse in dem Zugriff, der von der zentralen Verarbeitungseinheit angefragt wurde, und basierend auf einer Adresse in dem Zugriff, der von dem Eingabe- /Ausgabeprozessor angefragt wurde.
20. System nach Anspruch 19, bei dem die Prioritätssteuereinrichtung (46, 56) folgendes enthält:
eine Vielzahl von Flagregistern (122, 123, 124) zum Halten entsprechender Belegt-Status-Anzeigen von jeweiligen Abschnitten des Speichers, und
eine Einrichtung (121) zum Setzen von einem oder mehreren entsprechenden Flagregistern, wenn einer oder mehrere Zugriffe als zulässig ausgewählt werden, und eine Einrichtung (160-180), um jedes Flagregister, nach dem eine erste vorbestimmte Zeitdauer nach dem Setzen derselben verstrichen ist, zurückzusetzen.
21. System nach Anspruch 20, bei dem jede der Vektorverarbeitungseinheiten ferner enthält:
einen Dekodierer (172 bis 177),
eine Verzögerungsschaltung (47, 57), um dann, wenn irgendeines der Flagregister gesetzt wird, die Adresse, welche in der Prioritätssteuereinrichtung erzeugt wird und dem gesetzten Flagregisters entspricht, in den Dekodierer einzugeben und um die genannte Adresse aus dem Dekodierer auszugeben, nachdem die erste vorbestimmte Zeitdauer verstrichen ist, und
wobei der Dekodierer die Ausgangsgröße der Verzögerungsschaltung dekodiert und die dekodierten Ergebnisse als Rückstellsignale an die Rückstelleinrichtung anlegt, um die Vielzahl der Flagregister zurückzustellen.
22. System nach Anspruch 18, bei dem
das Vektorregister (49, 59) in jeder der Vektorverarbeitungseinheiten zeitweilig Daten hält, die von einer Datenpufferschaltung (48, 58) in der Vektorverarbeitungseinheit übertragen wurden, bis die Daten für eine Vektorberechnung ausgelesen werden, und
bei dem jede der Vektorverarbeitungseinheiten (41, 42) ferner enthält:
eine Datenpufferschaltung (48, 58), um zeitweilig die Daten zu halten, die aus dem Speicher ausgelesen wurden, bevor die Daten in das Vektorregister (49, 59) eingegeben werden, und
eine Verzögerungsschaltung (47, 57), um dann, wenn ein Zugriff unter den Zugriffen, die von deren eigener Vektorverarbeitungseinheit angefragt wurden, als zulässig ausgewählt wird, die von der Speicherzugriffssignal-Ausgabeeinrichtung ausgegebene Adresse in die Datenpufferschaltung einzugeben und die Adresse auszugeben, um die Zeitsteuerung der Eingabe der Daten in das Vektorregister zu steuern, nachdem eine zweite vorbestimmte Zeitdauer nach der Eingabe der Adresse verstrichen ist.
DE1989626430 1988-11-07 1989-11-06 Vektorprozessor Expired - Fee Related DE68926430T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63280997A JPH0769896B2 (ja) 1988-11-07 1988-11-07 ベクトル処理システム

Publications (2)

Publication Number Publication Date
DE68926430D1 DE68926430D1 (de) 1996-06-13
DE68926430T2 true DE68926430T2 (de) 1996-11-14

Family

ID=17632825

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1989626430 Expired - Fee Related DE68926430T2 (de) 1988-11-07 1989-11-06 Vektorprozessor

Country Status (4)

Country Link
EP (1) EP0368587B1 (de)
JP (1) JPH0769896B2 (de)
CA (1) CA2002104C (de)
DE (1) DE68926430T2 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06203057A (ja) * 1992-09-28 1994-07-22 Nec Corp ベクトル演算処理装置とその並列制御方式と並列制御回路
JP2000259610A (ja) * 1999-03-04 2000-09-22 Nec Kofu Ltd ベクトルデータ処理装置およびマルチプロセッサ構成におけるベクトルデータ処理装置のメモリクリア方式
US10996949B2 (en) * 2019-05-10 2021-05-04 International Business Machines Corporation Address generation for high-performance vector processing

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0389001B1 (de) * 1983-04-25 1997-06-04 Cray Research, Inc. Mehrprozessorsteuerung für Vektorrechner
US4706191A (en) * 1985-07-31 1987-11-10 Sperry Corporation Local store for scientific vector processor
JPS62115571A (ja) * 1985-11-15 1987-05-27 Fujitsu Ltd ベクトルアクセス制御方式
JPH0628051B2 (ja) * 1986-04-25 1994-04-13 株式会社日立製作所 記憶制御方式
JPS63186343A (ja) * 1987-01-28 1988-08-01 Fujitsu Ltd 記憶制御方式

Also Published As

Publication number Publication date
JPH0769896B2 (ja) 1995-07-31
EP0368587A2 (de) 1990-05-16
JPH02127768A (ja) 1990-05-16
CA2002104C (en) 1995-01-24
EP0368587A3 (de) 1993-01-20
DE68926430D1 (de) 1996-06-13
EP0368587B1 (de) 1996-05-08
CA2002104A1 (en) 1990-05-07

Similar Documents

Publication Publication Date Title
DE69132195T2 (de) System für verteilte Mehrfachrechnerkommunikation
DE69421103T2 (de) Programmgesteuertes Prozessor
DE60314347T2 (de) Betriebsmittelverwaltungsgerät
DE69423928T2 (de) Dynamisch programmierbarer Busarbiter mit Einrichtung zur historischen Rückmeldung
DE69323861T2 (de) Multiprozessorsystem mit gemeinsamem Speicher
DE69812685T2 (de) System und verfahren zur spekulativen arbitrierung bei datenübertragung
DE68917317T2 (de) Befehlsausgabesteuerung mit vorausschau für einen rechner.
DE3751391T2 (de) Verfahren und Vorrichtung zur Speichersteuerung.
DE3851554T2 (de) Steuerungsanordnung für gemeinschaftlichen Speicher.
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE4118331A1 (de) Bussystem zur anwendung bei einem informationsverarbeitungsgeraet
DE3508291A1 (de) Realzeit-datenverarbeitungssystem
DE69031524T2 (de) Verfahren und Vorrichtung zur Datenübertragung zwischen Prozessorelementen
DE69114321T2 (de) Zum Durchführen der Unterbrechungsverschachtelungsfunktion geeignetes Unterbrechungssteuerungsgerät.
DE68924435T2 (de) Nichtblockierender NxM-Arbitrierungsschalter mit grosser Bandbreite.
DE3752280T2 (de) Mustergenerator
DE69102431T2 (de) Multiprozessor-system mit anteiliger nutzung eines speichers.
DE3642324A1 (de) Multiprozessoranlage mit prozessor-zugriffssteuerung
DE69025650T2 (de) Multiprozessorsystem mit Vektorpipelinen
DE69326236T2 (de) Speicher mit variabeler Verschachtelungshöhe und verwandte Konfigurationseinheit
DE2912073C2 (de)
DE3851241T2 (de) Speicheranordnung.
DE69230483T2 (de) Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung
DE60015720T2 (de) Verfahren und Anordnung zum Arbitrieren des Zugriffes eines Zeitmutiplex-verteilten Speichers von mehreren Prozessoren in einem Echtzeitsystem
DE69025580T2 (de) Auffrichungspuffer für Speicherkarte

Legal Events

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