DE3686828T2 - Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration. - Google Patents

Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration.

Info

Publication number
DE3686828T2
DE3686828T2 DE8686101870T DE3686828T DE3686828T2 DE 3686828 T2 DE3686828 T2 DE 3686828T2 DE 8686101870 T DE8686101870 T DE 8686101870T DE 3686828 T DE3686828 T DE 3686828T DE 3686828 T2 DE3686828 T2 DE 3686828T2
Authority
DE
Germany
Prior art keywords
vector
registers
elements
register
element processor
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
DE8686101870T
Other languages
English (en)
Other versions
DE3686828D1 (de
Inventor
Chuck Hong Ngai
Gerald Joseph Watkins
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE3686828D1 publication Critical patent/DE3686828D1/de
Publication of DE3686828T2 publication Critical patent/DE3686828T2/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
    • 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/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors

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 vorliegende Erfindung betrifft ein Computersystem und insbesondere einen parallelen Vektorprozessor in diesem Computersystem zur schnellen Verarbeitung eines Vektorpaares und zum Speichern der Ergebnisse dieser Verarbeitung.
  • Ein typischer Vektorprozessor, wie etwa der in der US-Patentschrift 4 128 880 beschriebene oder in Fig. 1 gezeigte Vektorprozessor, enthält eine Anzahl von Vektorregistern, wobei jedes Vektorregister einen Vektor speichert. Der Vektor umfaßt eine Anzahl von Vektorelementen. Eine "Pipeline"-Verarbeitungseinheit wird mit einem Selektor verbunden, der den Vektorregistern zum Empfangen der entsprechenden Elemente eines ersten Vektors aus einem ersten Vektorregister und zum Verwenden der entsprechenden Elemente zugeordnet ist, um eine arithmetische Operation an den entsprechenden Elementen eines zweiten in einem zweiten Vektorregister gespeicherten Vektors auszuführen. Die Ergebnisse der arithmetischen Operation werden auf den entsprechenden Speicherplätzen eines der Vektorregister oder auf den entsprechenden Speicherplätzen eines dritten Vektorregisters gespeichert.
  • Bei dieser Konfiguration ist es jedoch erforderlich, Operationen an jedem der entsprechenden Elemente des Vektors nacheinander auszuführen. Enthält ein Vektor 128 Elemente, dann müssen nacheinander 128 Operationen ausgeführt werden. Die für die Ausführung der Operationen an allen 128 Elementen des Vektors benötigte Zeit ist eine Funktion der Zykluszeit je Operation der Pipeline-Einheit, während sie jedes der entsprechenden Elemente verarbeitet.
  • Im Ergebnis der zunehmenden Hochentwicklung der Computersysteme wird es erforderlich, die Leistungsfähigkeit des Vektorprozessorteils des Computersystems durch Verringerung der für die Verarbeitung oder das Ausführen der arithmetischen Operationen an jedem der entsprechenden Elemente einer Anzahl von in den Vektorregistern im Computersystem gespeicherten Vektoren erforderlichen Zeit zu erhöhen.
  • Ein anderer typischer Vektorprozessor, der zur Erhöhung der Leistungsfähigkeit eines Vektorprozessorteils eines wie oben genannten Computersystems entworfen wurde, wird in P. H. Kogge: "The Architecture of Pipelined Computers", 1981, S. 207-208, Hemisphere Publishing Corp., New York, USA, beschrieben.
  • In der früher eingereichten, in Fig. 2 prinzipiell gezeigten Europäischen Patentanmeldung 84 110 262.7 wird der Vektorprozessor als "paralleler" Vektorprozessor bezeichnet. In Fig. 2 ist eine Anzahl von Vektorregistern in einer parallelen Konfiguration angeordnet, wobei jedes Vektorregister in eine Anzahl kleinerer Register unterteilt ist. Jedes kleinere Register eines Vektorregisters ist für das Speichern von vier Elementen des in dem Vektorregister gespeicherten Vektors vorgesehen, wobei der Vektor 128 Elemente lang ist. Ein Elementprozessor ist mit jedem der entsprechenden kleineren Register der Anzahl von Vektorregistern verbunden.
  • Bei dieser Konfiguration muß jedoch ein Elementprozessor vier Elemente eines Vektors verarbeiten. Wenn die Elemente eines Vektors nacheinander verarbeitet werden, kann es sein, daß die Verarbeitung eines nachfolgenden Elementes (z. B. Element 1) die Beendigung der Verarbeitung eines vorangehenden Elementes (z. B. Element 0) abwarten muß.
  • Wie oben bereits erwähnt, besteht ein Bedarf, die Leistungsfähigkeit des Vektorprozessorteils eines Computersystems durch Verkürzung der für die Verarbeitung jedes der Elemente der Anzahl der in den Vektorregistern des Computersystems gespeicherten Vektoren benötigten Zeit zu erhöhen. Um die Leistungsfähigkeit des Vektorprozessors weiter zu erhöhen, sollte ein Elementprozessor mit der Verarbeitung des nachfolgenden Elementes eines Vektors bereits während der Verarbeitung eines vorangehenden Elementes des Vektors durch einen anderen Elementprozessor beginnen. Im Ergebnis dessen brauchte die Verarbeitung des nachfolgenden Elementes nicht auf die Verarbeitung des vorangehenden Elementes zu warten.
  • Es ist demzufolge eine vorrangige Aufgabe der vorliegenden Erfindung, die Leistungsfähigkeit des Vektorprozessorteils eines Computersystems zu verbessern, indem alle aufeinanderfolgenden M Elemente eines in einem Vektorregister gespeicherten Vektors aus N Elementen jeweils einem anderen Elementprozessor zugeordnet werden.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung, die Leistungsfähigkeit des Vektorprozessorteils eines Computersystems zu verbessern, indem alle aufeinanderfolgenden M Elemente eines Vektors aus N Elementen einem anderen Elementprozessor zugeordnet und gleichzeitig die Anzahl der durch den Vektorprozessorteil des Computersystems verwendeten Elementprozessoren begrenzt wird.
  • Entsprechend der vorliegenden Erfindung, wie sie beansprucht wird, sei angenommen, ein Vektor habe insgesamt N Elemente. Weiterhin sei angenommen, dieser Vektor sei in eine Anzahl von Untervektoren unterteilt, wobei jeder Untervektor insgesamt M Elemente habe. Außerdem sei angenommen, eine gesamte Anzahl von M Elementprozessoren sei parallel mit einer Anzahl von insgesamt M Vektorregistern verbunden. Die obengenannten Aufgaben der vorliegenden Erfindung werden gelöst durch Zuweisen der ersten aufeinanderfolgenden, mit jedem der Vektorregister verknüpften M Elemente eines Vektors aus N Elementen zu den Vektorprozessoren 1 bis M, durch Zuweisen der zweiten aufeinanderfolgenden M Elemente des Vektors aus N Elementen zu den Elementprozessoren 1 bis M und durch Wiederholen der Zuweisung der übrigen aufeinanderfolgenden Elemente des Vektors aus N Elementen in einer Anordnung von M Elementen zu den Elementprozessoren 1 bis M, bis kein Element mehr übrigbleibt.
  • Ein vollständiges Verständnis der vorliegenden Erfindung wird aus der im folgenden gegebenen eingehenden Beschreibung des bevorzugten Ausführungsbeispiels und den beiliegenden Zeichnungen erhalten, die nur der Illustration dienen und die vorliegende Erfindung nicht einschränken sollen, worin:
  • Fig. 1 einen typischen Vektorprozessor darstellt;
  • Fig. 1a dreidimensional einen anderen typischen parallelen Vektorprozessor darstellt;
  • Fig. 2 den typischen parallelen Vektorprozessor von Fig. 1a darstellt, bei dem die Vektorregister in eine Anzahl kleinerer Register unterteilt sind und jedes kleinere Register vier Elemente enthält, ein Elementprozessor mit jedem kleineren Register zur Ausführung der Verarbeitungsoperationen an den mit den vier Elementen des kleineren Registers verknüpften Vektoren verknüpft ist und ein Prozessorschnittstellenadapter mit jedem der Elementprozessoren verbunden ist, um jeden Elementprozessor zur Ausführung der Verarbeitungsoperationen an den Vektoren anzuweisen;
  • Fig. 3 stellt die Verbindung des Prozessorschnittstellenadapters mit jedem Elementprozessor von Fig. 2 dar;
  • Fig. 4 stellt den Aufbau des Prozessorschnittstellenadapters der Fig. 2 und 3 dar;
  • Fig. 5 stellt im einzelnen den Aufbau eines in den Fig. 2 und 3 gezeigten Elementprozessors dar;
  • Fig. 6 stellt den typischen parallelen Vektorprozessor von Figur 1a gemäß der vorliegenden Erfindung dar;
  • Fig. 7 stellt die Verbindung des Prozessorschnittstellenadapters mit jedem der mit dem parallelen Vektorprozessor gemäß der vorliegenden, in Fig. 6 gezeigten Erfindung verknüpften Elementprozessoren dar.
  • In Fig. 1 wird ein typischer Pipeline-Vektorprozessor 10 dargestellt. In Fig. 1 wird eine Anzahl von Vektorregistern 12 (VR0 bis VR15) gezeigt, wobei jedes Register 128 Elemente (Element 0 bis Element 127) speichert. Im bevorzugten Ausführungsbeispiel umfaßt ein Element ein binäres Vierbytewort. Ein Selektor 14 ist zum Auswählen der entsprechenden Elemente aus den Vektorregistern 12 und Durchsteuern der ausgewählten Elemente durch eine Pipeline-Verarbeitungseinheit 16 mit jedem Vektorregister 12 verbunden. Die Pipeline-Verarbeitungseinheit 16 ist zum Empfangen der entsprechenden Elemente und zum Ausführen ausgewählter Operationen, wie etwa arithmetischer Operationen, an diesen Elementen mit dem Selektor verbunden. Beispielsweise kann die Verarbeitungseinheit 16 das Element 0 aus dem Vektorregister VR0 und das entsprechende Element 0 aus dem Vektorregister VR15 empfangen und an den Elementen die folgende arithmetische Operation ausführen: VR0 + VR15 → VR3. Bei dieser arithmetischen Operation wird jedes Binärbit des Elementes 0 in VR0 zu jedem Binärbit des Elementes 0 in VR15 addiert und das Summenergebnis am Speicherplatz des Elementes 0 im Vektorregister VR3 gespeichert. Ein Ergebnisregister 18 ist zum Speichern des aus der pipeline-Verarbeitungseinheit erhaltenen Summenergebnisses mit der Pipeline-Verarbeitungseinheit verbunden. Das Ergebnisregister 18 ist über das Auswahlgatter 19 zum Übertragen des Summenergebnisses aus dem Ergebnisregister 18 in das Vektorregister VR3 mit jedem Vektorregister 12 verbunden.
  • Die in Fig. 1 dargestellte Konfiguration weist gewisse Nachteile auf. Unter Verwendung des Beispiels wird ein erstes Element aus dem Register VR0 und ein entsprechendes Element aus dem Register VR15 ausgewählt. Die Elemente werden in der oben beschriebenen Weise addiert. Ein zweites Element wird aus den Registern VR0 und VR15 und in der oben beschriebenen Weise addiert. Jedes der 128 Elemente muß aus den Registern VR0 und VR15 ausgewählt und nacheinander addiert werden, um die Verarbeitung der in den Vektorregistern VR0 und VR15 gespeicherten Vektoren abzuschließen. Im Ergebnis dessen ist die für die Bewältigung der Verarbeitung der in den Vektorregistern VR0 und VR15 gespeicherten Vektoren erforderliche Zeit eine Funktion von der Anzahl der Elemente je Vektor und der für die Verarbeitung einer Gruppe entsprechender Elemente je Vektor erforderlichen Zykluszeit. Die Leistungsfähigkeit eines Vektorprozessors könnte durch die Verringerung der für die Verarbeitung eines in einer Gruppe von Vektorregistern gespeicherten Vektorpaares erforderlichen Zeit erhöht werden.
  • In Fig. 1a wird ein anderer typischer paralleler Vektorprozessor dreidimensional dargestellt. In Fig. 1a sind eine Anzahl Vektorregister VR0 bis VR15 annähernd parallel zueinander angeordnet. Jedes Vektorregister ist in eine Anzahl kleinerer Register unterteilt, die mit den Bezugsnummern 0 bis XX bezeichnet sind. Jedes entsprechende kleinere Register "0" der Anzahl Vektorregister VR0 bis VR15 ist mit einem Elementprozessor, dem Prozessor EP0, verbunden. Entsprechend ist auch jedes entsprechende kleinere Register "1" aus der Anzahl Vektorregister VR0- VR15 mit einem Elementprozessor, dem Prozessor EP1 verbunden usw. Jedes der entsprechenden kleineren Register XX aus der Anzahl Vektorregister VR0-VR15 ist mit dem Elementprozessor EPXX verbunden. Die Ausgänge der Elementprozessoren EP0 bis EPXX sind an einem Verbindungspunkt zusammengefaßt, wobei der Verbindungspunkt rückgekoppelt und mit dem Eingang jedes Vektorregisters verbunden ist. Ein Prozessorschnittstellenadapter PIA ist auf eine bestimmte Art an die Eingänge der Elementprozessoren EP0- EPXX angeschlossen, die von der bestimmten Konfiguration der parallelen Vektorprozessoren abhängt, wobei zwei verschiedene Konfigurationen im Zusammenhang mit den Fig. 2 und 6 diskutiert werden. Die Konfiguration der vorliegenden Erfindung wird anhand Fig. 6 diskutiert.
  • In Fig. 2 ist ein typischer paralleler Vektorprozessor dargestellt. In Fig. 2 ist jedes Vektorregister VR0 bis VR15 in Figur 1 in eine Anzahl kleinerer Register 12a unterteilt, wobei die kleineren Register 12a beispielsweise vier Elemente enthalten. Eine entsprechende Anzahl Elementprozessoren 20 ist mit der Anzahl kleinerer Register 12a zur Ausführung der (arithmetischen) Verarbeitungsoperationen an den entsprechenden Elementen des in den Vektorregistern VR0 bis VR15 gespeicherten Vektors verbunden, wobei jeder der Elementprozessoren 20 Verarbeitungsoperationen an vier entsprechenden Elementen des Vektors ausführt. Die Ergebnisse der Verarbeitungsoperation werden parallel in jedem Elementprozessor gleichzeitig erzeugt und können auf den entsprechenden Speicherplätzen eines der Vektorregister VR0 bis VR15 abgespeichert werden. Ein Prozessorschnittstellenadapter PIA 22 ist zur Übertragung der Adressen-, Daten und Befehlsinformationen an jeden Elementprozessor mit den Elementprozessoren 20 verbunden. Die tatsächliche Verbindung des PIA 22 mit jedem Elementprozessor 0-31 ist in Fig. 3 dargestellt. Eine Instruktionsprozessoreinheit IPU 24 ist zur Übertragung von Vektorinstruktionen an den PIA 22 mit dem PIA 22 verbunden. Ein Hauptspeicher 26 ist zur Übertragung der Daten- und Adreßsteuerinformationen an den PIA als Reaktion auf dessen entsprechenden Anforderung mit dem PIA 22 verbunden.
  • In Fig. 3 ist die tatsächliche Verbindung des PIA 22 mit jedem dem typischen parallelen Vektorprozessor in Fig. 2 verknüpften Elementprozessor 20 dargestellt. Der PIA 22 ist mit den Elementprozessoren 0, 8, 16 und 24 verbunden. Der Elementprozessor 0 ist mit den Elementprozessoren 1 bis 7 seriell verbunden. Der Elementprozessor 8 ist mit den Elementprozessoren 9 bis 15 seriell verbunden. Der Elementprozessor 16 ist mit den Elementprozessoren 17 bis 23 seriell verbunden. Der Elementprozessor 24 ist mit den Elementprozessoren 25 bis 31 seriell verbunden.
  • In Fig. 4 wird der Aufbau des PIA 22 dargestellt. Der PIA 22 enthält ein zum Empfangen einer Vektorinstruktion aus der IPU und vorübergehenden Speicherung der Vektorinstruktion mit der IPU 24 verbundenes Vektorinstruktionsregister (VIR) 22a. Ein Vektordatenregister (VDR) 22b ist zum Empfangen von Daten aus dem Speicher 26 und vorübergehenden Speichern der Daten mit dem Speicher 26 und der IPU 24 verbunden. Ein Vektorstatusregister (VSR) 22c ist zum Empfangen von Adreßsteuerinformationen aus dem Speicher 26 und vorübergehenden Speichern der Informationen mit dem Speicher 26 und der IPU 24 verbunden. Ein Picosteuerspeicher 22d ist zum Decodieren der im VIR 22a gespeicherten Vektorinstruktion und zum Auswählen einer im Picosteuerspeicher 22d gespeicherten Picosteuerroutine mit dem VIR 22a verbunden. Ein Befehlsregister 22e ist zum Treiben der Elementprozessoren über einen Befehlsbus mit dem Picosteuerspeicher 22d verbunden. Eine Bussteuerung 22f ist zum Empfangen von Daten aus dem VDR 22b und Übertragen der Daten an die Elementprozessoren 20 über einen Datenbus mit dem VDR 22b verbunden. Die Bussteuerung 22f kann auch Daten von einem Elementprozessor zu einem anderen Elementprozessor lenken. Das VSR 22c ist über eine Adreßsteuerung 22h auch mit einer Bussteuerung 22g verbunden. Die Adreßsteuerung 22h erzeugt den aus dem VSR 22c empfangenen Daten entsprechende Adressen. Die Bussteuerung 22g überträgt die erzeugten Adressen über einen Adreßbus an die Elementprozessoren 20.
  • In Fig. 5 ist der Aufbau eines Elementprozessors 20 als Blockschaltbild dargestellt. In Fig. 5 ist ein lokaler Speicher 12 zu sehen, der analog den Vektorregistern 12 in Fig. 2 ist. Ein Systembus 11 und 11a ist an einem Ende mit einem Treiberschaltkreis 9 und am anderen Ende mit einem Empfängerschaltkreis 7 verbunden. Ein erster Eingabedatenassembler (ASM) 13 ist mit einem Treiberschaltkreis 9 und einem Empfängerschaltkreis 7 verbunden. Der ASM 13 ist weiterhin mit dem lokalen Speicher 12 und dem Elementprozessor 20 verbunden. Der in Fig. 5 gezeigte Elementprozessor 20 umfaßt einen mit dem lokalen Speicher 12 und dem ersten Eingabedatenassembler 13 verbundenen zweiten Eingabedatenassembler (ASM) 20a. Ein Schiebeauswahlregister 20b und ein Flushauswahlregister 20c sind mit dem Eingabedatenassembler 20a verbunden. Das Flushauswahlregister 20c ist direkt mit einem Wahr/Komplementgatter 20d verbunden, während das Schiebeauswahlregister 20b über eine Vorschiebesteuerung 20f mit einem anderen Wahr/Komplementgatter 20e verbunden ist. Die beiden Wahr/Komplementgatter 20d und 20e sind mit einer arithmetischen Logikeinheit 20g verbunden. Die ALU 20g ist über eine Nachschiebesteuerung 20i mit einem Ergebnisregister 20h verbunden, während das Ergebnisregister 20h zum Abspeichern eines Ergebnisses mit dem lokalen Speicher 12 verbunden ist, nachdem der Elementprozessor 20 eine arithmetische Verarbeitungsoperation an den vier Elementen eines in einem entsprechenden Vektorregisterpaar 12 gespeicherten Vektorpaares beendet hat. Ein Multiplikatorschaltkreis 20j ist zwischen den Eingabedatenassembler 20a und die ALU 20g geschaltet. Vom Multiplikatorschaltkreis 20j werden zwei Operanden empfangen. Durch den Multiplikatorschaltkreis 20j werden eine Summenausgabe und eine Übertragausgabe erzeugt, die von der ALU 20g empfangen werden.
  • Die Funktionsweise des typischen parallelen Vektorprozessors in Fig. 2 wird nun anhand der Fig. 2 bis 4 beschrieben.
  • Die IPU 24 weist den PIA 22 an, bestimmte Daten in die Vektorregister VR0 und VR15 zu laden. Die IPU 24 übermittelt eine Anweisung LADEN an den PIA 22. Die Anweisung LADEN wird vorübergehend im VIR 22a gespeichert. Die in die Vektorregister VR0 und VR15 zu ladenden Daten werden im Speicher 26 gespeichert. Wenn der PIA die Anweisung LADEN empfängt, holt sie bestimmte Daten aus dem Speicher 26 und lädt diese Daten in das VDR 22b. Vor der Ausgabe der Anweisung LADEN hat die IPU 24 Adreßsteuerinformationen in das VSR 22c geladen. Im Ergebnis dessen werden durch die Adreßsteuerung 22h bestimmte Adreßinformationen erzeugt. Die Adreßinformationen umfassen die Adresse ausgewählter Elementprozessoren 20, in die die Daten zu laden sind, und die Adresse ausgewählter Elemente, die mit den ausgewählten Elementprozessoren 20 verknüpft sind, in denen die Daten abgespeichert werden sollen. Die im VIR 22a gespeicherte Anweisung LADEN wird durch den Picosteuerspeicher 22d decodiert. Die der im Picosteuerspeicher 22d gespeicherten Anweisung LADEN entsprechende Befehlsinformation wird ausgewählt. In Übereinstimmung mit der durch die Adreßsteuerung 22h erzeugten Adreßinformation werden die im VDR 22b gespeicherten Daten über die Bussteuerung 22f und einen Datenbus zum Speichern in den ausgewählten Prozessoren 20 übertragen. Weiterhin wird die im Picosteuerspeicher 22d gespeicherte und durch die decodierte Anweisung LADEN ausgewählte Befehlsinformation in Übereinstimmung mit der durch die Adreßsteuerung 22h erzeugten Adreßinformation über Befehlsregister 22e und einen Befehlsbus an die ausgewählten Prozessoren 20 übertragen. Die ausgewählte Befehlsinformation veranlaßt das Laden der in den ausgewählten Prozessoren 20 gespeicherten Daten in die ausgewählten Elemente der kleineren Register 12a, wobei die ausgewählten Elemente durch die von der Adreßsteuerung 22h erzeugten Adreßinformationen identifiziert werden.
  • Demzufolge sei beispielsweise angenommen, daß in jedem Vektorregister VR0 und VR15 ein Vektor mit 128 Elementen gespeichert sei. Ein Element möge ein Vierbytewort umfassen. Ferner sei angenommen, daß die anschließende arithmetische Vektoroperation an den in den Vektorregistern VR0 und VR15 ausgeführt werden soll: VR0 + VR15 → VR15. Die IPU 24 weist den PIA 22 an, eine Operation ADDIEREN auszuführen, wobei der im Vektorregister VR0 gespeicherte Vektor zu dem im Vektorregister VR15 gespeicherten Vektor addiert und die Ergebnisse im Vektorregister VR15 gespeichert werden sollen. Die IPU 24 übermittelt diese Anweisung AD- DIEREN an den PIA 22. Die Anweisung ADDIEREN wird vorübergehend im VIR 22a gespeichert. Entsprechend der Anweisung ADDIEREN werden bestimmte im Picosteuerspeicher 22d gespeicherte Befehlsinformationen ausgewählt. Wenn die Anweisung ADDIEREN vom PIA 22 empfangen wird, holt die IPU 24 bestimmte Daten aus dem Speicher 26, die die Adressen der Elemente in den kleineren Registern, die einer Operation ADDIEREN unterzogen werden, und die Adresse der ausgewählten Prozessoren 20, die die Operation ADDIEREN ausführen werden, darstellen. Im Ergebnis dessen wird durch die Adreßsteuerung 22h eine Adreßinformation erzeugt. Die Adreßinformation wird über die Bussteuerung 22g und einen Adreßbus an die ausgewählten Prozessoren 20 übermittelt. Gemäß dieser Adreßinformation weist die aus dem Picosteuerspeicher 22d ausgewählte Befehlsinformation die ausgewählten Prozessoren 20 an, die ausgewählten Elemente ihrer verknüpften kleineren Register 12a, die den Vektorregistern VR0 und VR15 entsprechen, abzurufen. Wenn die Elemente abgerufen sind, bewirkt die ausgewählte Befehlsinformation, daß die ausgewählten Prozessoren 20 die Anweisung ADDIEREN ausführen. Beispielsweise werden die den in den Vektorregistern VR0 bis VR15 gespeicherten Vektoren zugeordneten Elemente 0 bis 3 vom Elementprozessor 0 empfangen. Der Elementprozessor 0 addiert die entsprechenden Elemente und speichert in Übereinstimmung mit den ausgewählten Befehlsinformationen die Ergebnisse der Additionsoperation auf den entsprechenden Speicherplätzen des Vektorregisters VR15. Das heißt, daß das Element 0 des Vektorregisters VR0 zum Element 0 des Vektorregisters VR15 addiert und die Summe auf dem Speicherplatz des Elementes 0 des Vektorregisters VR15 gespeichert wird. Die Elemente 1, 2 und 3 der Vektorregister VR0 und VR15 werden in gleicher Weise addiert und die Summen auf den Speicherplätzen der Elemente 1, 2 und 3 des Vektorregisters VR15 gespeichert. Die den Vektorregistern VR0 und VR15 zugeordneten Elemente 4, 5, 6 und 7 werden in der gleichen, oben beschriebenen Weise durch den Elementprozessor 1 verarbeitet, wobei die Verarbeitung dieser Elemente zeitgleich mit der Verarbeitung der Elemente 0, 1, 2 und 3 erfolgt. Die übrigen in den Vektorregistern VR0 und VR15 gespeicherten Vektorelemente werden zeitgleich mit der Verarbeitung der Elemente 0 bis 3 und 4 bis 7 durch die Elementprozessoren 0 bzw. 1 in Gruppen zu je vier Elementen durch die Elementprozessoren 2 bis 31 verarbeitet. Im Ergebnis dessen wird die oben aufgeführte arithmetische Vektoroperation an den in den Vektorregistern VR0 bis VR15 gespeicherten Vektoren in der Zeit ausgeführt, die für die Verarbeitung von vier Vektorelementen erforderlich ist, im Gegensatz zu der bei den herkömmlichen Vektorverarbeitungssystemen für die Verarbeitung der 128 Elemente des Vektors typischerweise erforderlichen Zeit. Daher stellt der parallele Vektorprozessor in Fig. 2 eine Verbesserung gegenüber den herkömmlichen Vektorverarbeitungssystemen dar.
  • In den folgenden Abschnitten wird anhand Fig. 5 eine Beschreibung der Funktionsweise eines Elementprozessors 20 gegeben.
  • Die Funktionsweise des in Fig. 5 gezeigten Elementprozessors 20 kann in vier Betriebszyklen eingeteilt werden: einen Lokalen- Speicher-Lesen- und Schiebeauswahlzyklus, auch als erster Zyklus bekannt; einen Vornormalisierungsschiebezyklus, bekannt als zweiter Zyklus; einen ALU-Betriebszyklus, bekannt als dritter Zyklus; und einen Nachnormalisierungsschiebezyklus, bekannt als vierter Zyklus.
  • Unter Anwendung der zuvor gemachten Annahmen, nach denen die entsprechenden Elemente der Vektorregister VR0 und VR15 addiert und die Ergebnisse der Summationsoperation im Vektorregister VR0 gespeichert werden, werden die Elemente 0 bis 3 durch den Empfänger 7 des Busses 11a empfangen und über ASM 13 im lokalen Speicher 12 gespeichert, wobei der lokale Speicher 12 dem ersten kleineren Register 12a in Fig. 2 analog ist, das die Elemente 0 bis 3 speichert.
  • Es sei ferner angenommen, die Elemente 0 bis 3 stellen Fließkommaoperanden dar.
  • Wenn ein Befehl ausgegeben wird, um die im Register VR0 gespeicherten Elemente 0-3 zu den im Register VR15 gespeicherten Elementen 0-3 zu addieren, werden im ersten Zyklus die Operanden der entsprechenden Elemente aus dem lokalen Speicher 12 gelesen und vorübergehend über den Eingabedatenassembler 20a im Flushregister 20c und Schieberegister 20b gespeichert. Gleichzeitig gelangen jedoch die Exponenten der einzelnen Elemente auf einen (nicht gezeigten) Exponentensteuerpfad, auf dem die Größendifferenzen der Exponenten berechnet werden. Deshalb wird das Element mit dem kleineren Exponenten zum Schiebeauswahlregister 20b und das Element mit dem größeren Exponenten zum Flushauswahlregister 20c geleitet. Die Flush- und Schiebeauswahlregister 20c und 20b werden am Ende des ersten Zyklus durch einen Verriegelungstaktgeber verriegelt.
  • Zu Beginn des zweiten Zyklus wird eine Schiebeoperation begonnen. Das im Flushauswahlregister 20c gespeicherte Element mit dem größeren Exponenten wird zu einem Eingang der Arithmetiklogikeinheit (ALU) 20g geleitet. Schiebesteuerinformationen werden vom (nicht gezeigten) Exponentensteuerpfad zur Vorverschiebungseinheit 20f geschickt, in der das im Schiebeauswahlregister 20b gespeicherte Element mit dem kleineren Exponenten durch die Vorverschiebungseinheit 20f nach rechts verschoben wird, um das Element auf das Element mit dem größeren Exponenten auszurichten, das gerade zu dem einen Ausgang der ALU 20g geschickt wird. Gleichzeitig wählt die ALU 20g aus den Wahr/Komplementgattern 20d und 20e die geeigneten Eingänge zum Empfangen der Elemente aus den Flush- und Schiebeauswahlregistern 20c und 20b über die Wahr/Komplementgatter 20d bzw. 20e aus.
  • Beim Betrieb des Elementprozessors 20 aus Fig. 5 ist der dritte Zyklus dem Betrieb der Arithmetiklogikeinheit (ALU) 20g vorbehalten. Die ALU ist ein Hochgeschwindigkeits-Übertragsaddierer mit 8-Bit-Breite, Vorausschaulogik, Einerkomplementärarithmetik, Übertragumlauf und Rekomplementierung. Die ALU führt eine Additionsoperation aus, bei der die Bits von vier Elementen, in diesem Beispiel der Elemente 0 bis 3, in einem dem Vektorregister VR0 zugehörigen kleineren Register 12a zu den Bits von vier dem Vektorregister VR15 zugehörigen Elementen addiert werden. Die Ergebnisse der Additionsoperation werden dann schließlich in dem lokalen Speicher 12 gespeichert (im Beispiel analog zum Vektorregister VR0 in Fig. 2). Vor diesem Schritt muß jedoch während des vierten Zyklus ein Nachnormalisierungsschritt erfolgen.
  • Wenn die Additionsoperation durch die ALU 20g abgeschlossen wird, findet während des vierten Zyklus ein Nachnormalisierungsschritt statt. Der Begriff "Nachnormalisierung" umfaßt in der Datenverarbeitung die Schritte der Erkennung führender hexadezimaler Nullstellen in den von der ALU erzeugten Ergebnissen und der Linksverschiebung der Ergebnisse entsprechend der Anzahl der gefundenen Nullstellen. Der Ergebnisexponent muß durch Dekrementierung des Exponenten um 1 für jede verschobene Stelle korrigiert werden. Die Stellen der Ergebnisse der ALU 20g werden durch die Nachverschiebungseinheit 20i auf ihren Nullzustand überprüft und die Ergebnisse der ALU-Ausgabe entsprechend der Anzahl gefundener Nullstellen nach links verschoben. Die nach links verschobenen Ergebnisse der ALU-Ausgabe werden zum Zwecke der vorübergehenden Speicherung an das Ergebnisregister 20h weitergeleitet. Der (nicht gezeigte) Exponentensteuerpfad inkrementiert oder dekrementiert den Wert des Exponenten des Ergebniselements (Ausgabe von der ALU), so daß ein korrekter Endwert des Exponenten an das Ergebnisregister 20h geleitet wird. Im Ergebnis dessen wird im Ergebnisregister 20h ein Element gespeichert, dessen Operand entsprechend der in der ALU-Ausgabe, deren Exponent den richtigen Endwert des Exponenten darstellt, gefundenen Anzahl Nullstellen um einen geeigneten Betrag nach links verschoben wurde. Im Verlauf des auf den vierten Zyklus folgenden nächsten Zyklus wird das Ergebniselement zur Speicherung an den lokalen Speicher 12 geschickt (wobei der lokale Speicher einem der kleineren Register 12a in Fig. 2 analog ist und in dem Beispiel dem Register 12a entspricht, das die Elemente 0 bis 3 speichert).
  • In Fig. 6 wird der Aufbau des parallelen Vektorprozessors gemäß der vorliegenden Erfindung dargestellt. In Fig. 6 ist zu erkennen, daß im Gegensatz zu der Struktur in Fig. 2 mit zweiunddreißig Elementprozessoren sechs zehn Elementprozessoren dargestellt sind. In Fig. 6 sind eine Anzahl von Vektorregistern 12(6) mit den Bezugsnummern VR0 bis VR15 dargestellt, wobei jeder Vektor wiederum in eine Anzahl kleinerer Register 12a(6) unterteilt ist. Beispielsweise ist das Vektorregister VR0 in eine Anzahl kleinerer Register 12a(6), das (nicht gezeigte) Vektorregister VR2 in eine Anzahl kleinerer Register 12a(6),..., und das Vektorregister VR15 in eine Anzahl kleinerer Register 12a(6) unterteilt.
  • Jedes kleinere Register 12a(6) jedes Vektorregisters 12(6) ist an seinen eigenen Elementprozessor 20(6) angeschlossen, wobei entsprechende kleinere Register 12a(6) aus der Anzahl Vektorregister VR0 bis VR15 an denselben Elementprozessor angeschlossen sind. Beispielsweise sind die kleineren Register 12a(6) in den Vektorregistern VR0 bis VR15, die die Elementnummer 0 enthalten, mit demselben Elementprozessor 20(6), nämlich dem Elementprozessor 0, die kleineren Register in den Vektorregistern VR0 bis VR15, die die Elementnummer 1 enthalten, mit demselben Elementprozessor, nämlich dem Elementprozessor 1, verbunden, usw. Die kleineren Register, die die Elementnummer 15 enthalten, sind mit dem Elementprozessor 15 verbunden. Die kleineren Register, die die Elementnummer 16 enthalten, sind hingegen wiederum mit dem Elementprozessor 0 verbunden. Der Zyklus wiederholt sich so lange, bis alle Elemente einem Elementprozessor zugeordnet worden sind. Tatsächlich werden die ersten aufeinanderfolgenden M Elemente eines Vektors mit N Elementen den Elementprozessoren 1 bis M und die zweiten aufeinanderfolgenden Elemente des Vektors mit N Elementen den Elementprozessoren 1 bis M zugewiesen, wobei die verbleibenden aufeinanderfolgenden Elemente des Vektors mit H Elementen den Elementprozessoren 1 bis M in Abschnitten von M Elementen zugeordnet werden.
  • Der Ausgang jedes Elementprozessors 20(6) ist mit dem Eingang jedes Vektorregisters 12(6) verbunden.
  • Der PIA 22(6) ist mit jedem Elementprozessor 20(6) in der in Figur 6 dargestellten Weise verbunden, die in Fig. 7 noch genauer gezeigt wird.
  • Der PIA 22(6) ist genauso aufgebaut wie der in Fig. 4 dargestellte PIA 22.
  • Jeder der Elementprozessoren 20(6) ist genauso aufgebaut wie der in Fig. 5 dargestellte Elementprozessor 20.
  • Die Funktionsweise des parallelen Vektorprozessors gemäß der vorliegenden Erfindung wird in den folgenden Absätzen anhand der Fig. 6 beschrieben. Die Funktionsweise wird in bezug auf vier Betriebsarten beschrieben: (1) einen Mitteilungsmodus (BC), (2) einen Einzelprozessormodus (SP), (3) einen automatischen Mitteilungsmodus (BA), und (4) einen Interprozessormodus (IP).
  • Bei Anwendung des Mitteilungsmodus (BC) sei angenommen, daß die folgende Vektoroperation ausgeführt werde: VR0 + VR15 → VR15. In diesem Fall werden alle Elemente in der ersten Reihe des Vektorregisters VR0 (Elemente 0 bis 15) gleichzeitig und parallel zu allen Elementen in der ersten Reihe des Vektorregisters VR15 (Elemente 0 bis 15) addiert und die Ergebnisse der Additionsoperation in der ersten Reihe des Vektorregisters VR15 (wo die Elemente 0 bis 15 gespeichert werden) gespeichert. Dann werden die Elemente 16 bis 31 des Vektorregisters VR0 zu den Elementen 16 bis 31 des Vektorregisters VR15 addiert und die Ergebnisse in der zweiten Reihe des Vektorregisters VR15 gespeichert, wo sich die Elemente 16 bis 31 befinden. Diese Additionsoperation wird so lange wiederholt, bis die Elemente 112-127 des Vektorregisters VR0 zu den Elementen 112-127 des Vektorregisters VR15 addiert werden, wobei die Ergebnisse der Additionsoperation in der letzten Reihe des Vektorregisters VR15 gespeichert werden, wo sich die Elemente 112-127 befinden.
  • Bei Anwendung des Einzelprozessormodus (SP) sei angenommen, daß die Elemente des Vektorregisters VR0 zu einzelnen, aus dem Speicher abgerufenen Operanden addiert werden sollen, es sei also angenommen, daß die folgende Operation auszuführen sei:
  • VR0 + Speicher → VR0. In diesem Fall muß die Additionsoperation nicht parallel, sondern sequentiell erfolgen, d. h. das Element 0 wird zu seinem anderen Operanden (aus dem Speicher) addiert und das Element auf dem Speicherplatz des Elementes 0 abgelegt, das Element 1 zu seinem anderen Operanden addiert und auf dem Speicherplatz des Elementes 1 abgelegt, usw., bis das Element 126 zu seinem anderen Operanden addiert und das Ergebnis auf dem Speicherplatz des Elementes 126 abgelegt und das Element 127 zu seinem anderen Operanden addiert und das Ergebnis auf dem Speicherplatz des Elementes 127 des Vektorregisters VR0 abgelegt worden ist.
  • Der Vorteil der in Fig. 6 gezeigten Vektorregisteranordnung gegenüber der Vektorregisteranordnung in Fig. 2 besteht in folgendem: Wenn die Operanden, wie oben gezeigt, vom Speicher oder vom Allgemeinregister geholt werden, kann der Elementprozessor 1 mit dem sequentiellen Addieren von Element 1 zu seinem anderen Operanden (vom Allgemeinregister oder vom Speicher) beginnen, ohne abzuwarten, bis der Elementprozessor 0 die Addition des Elementes 0 zu seinem anderen Operanden (vom Allgemeinregister oder vom Speicher) beendet hat. In Fig. 2 hingegen kann der Elementprozessor 0, während er das Element 0 von VR0 zu seinem anderen Operanden (aus dem Allgemeinregister oder vom Speicher) addiert, noch nicht das Element 1 von VR0 zu seinem anderen Operanden addieren, d. h. daß er mit der Addition des Elementes 1 zu seinem Operanden so lange warten muß, bis die Addition des Elementes 0 zu seinem aus dem Speicher geholten Operanden beendet ist. Da die beim Holen eines Operanden aus dem Speicher verstreichende Zeit einen Zyklus, jedoch die für die Ausführung einer Additionsoperation in einem Elementprozessor benötigte Zeit fünf Zyklen beträgt, würde die Verarbeitung des Elementes 1 in der Struktur in Fig. 6 zu einem Zeitpunkt vor der Verarbeitung des Elementes 1 in der Struktur von Fig. 2 beginnen, wenn man voraussetzt, daß die Verarbeitung des Elementes 0 in Fig. 2 und 6 gleichzeitig beginnen soll. Daher ist die Leistungsfähigkeit des Vektorprozessors in Fig. 6 gegenüber dem in Fig. 2 gezeigten Vektorprozessor erhöht.
  • Bei Anwendung des automatischen Mitteilungsmodus (BA) führen alle Elementprozessoren (EP0 bis EP15) den gleichen Befehl aus. Jeder Prozessor ruft das erste Element in seinem entsprechenden kleineren Register 12a(6) und danach die übrigen sieben Elemente in seinen entsprechenden kleineren Registern 12a(6) auf und führt dadurch "automatisch" eine arithmetische Operation an allen acht im kleineren Register des Prozessors gespeicherten Elementen aus. Die acht in einem kleineren Register eines Vektorregisters gespeicherten Elemente werden in einem überlappenden Pipeline-Modus durch ihren entsprechenden Elementprozessor verarbeitet, wobei alle Prozessoren (EP1 bis EP15) diese Operation ausführen und den Befehl parallel abarbeiten.
  • Bei Anwendung des Interprozessormodus (IP) werden unter Steuerung des in Fig. 4 gezeigten PIA Daten zwischen den Elementprozessoren (EP0 bis EP15) 20(6) ausgetauscht. Die Daten werden durch den übertragenden Prozessor in den Datenbus geschickt und von dem empfangenden Prozessor aus dem Datenbus empfangen. Die bidirektionale Bussteuerung wird durch den PIA bewirkt, der die Operation steuert. Dieser Betriebsmodus wird durch Befehle genutzt, die eine Aufsummierung von Teilsummen in den entsprechenden Elementprozessoren erfordern, sowie durch Befehle, die eine "Suche" eines Vektorregisters in einem Vektorprozessor beinhalten.

Claims (7)

1. Ein Vektorprozessor, enthaltend:
mehrere Vektorregister (12(6)), in welchem jedes Vektorregister in mehrere kleinere Register (12a(6)) unterteilt ist, und
mehrere Elementprozessormittel (20(6)), die mit den Vektorregistern verbunden sind
gekennzeichnet dadurch daß,
jedes Vektorregister einen Vektor speichert, jedes der kleineren Register getrennte Ausgänge hat und mehrere Elemente dieses Vektors speichert, jeder Vektor mehrere Gruppen dieser Elemente umfaßt, jede Gruppe mehrere Elemente umfaßt, die zahlenmäßig den kleineren Registern entsprechen, die Elemente jeder Gruppe eines Vektors in einem Vektorregister gespeicherten Vektors jeweils in den kleineren Registern des Vektorregisters gespeichert sind;
mehrere Elementprozessormittel jeweils mit mehreren Ausgängen der entsprechenden kleineren Register jedes der Vektorregister verbunden sind, jedes der Elementprozessormittel einem anderen Satz von kleineren Registern zugeordnet und mit diesen verbunden ist, um jedes Element innerhalb des zugeordneten Satzes zu verarbeiten, jedes der besagten Sätze ein kleineres Register pro Vektorregister umfaßt und in welchem alle kleineren Register in jedem Satz entsprechende Vektorelemente der besagten Vektoren speichern, jedes der besagten Elementprozessormittel, zu einer Zeit jeweils ein Element, die in einem kleineren Register gespeicherten Elemente eines zugeordneten Satzes verarbeiten; und
Steuermittel (22(6)) zum Auswählen welche Gruppen von Elementen in den zugeordneten Vektorregistern verarbeitet werden, wobei die Elementprozessormittel, wenigstens teilweise parallel, die Elemente jeder ausgewählten Gruppe verarbeiten, und in welchem
jedes der besagten kleineren Register jedes Vektorregisters Vektorelemente speichert, deren Lage in dem Vektor durch die Gleichung K&sub1; + Ni * K&sub2; definiert ist, wobei K&sub1; eine Konstante ist, die für jedes kleinere Register innerhalb des gleichen Vektorregisters unterschiedlich ist, K&sub2; eine Konstante ist, die für jedes kleinere Register innerhalb des gleichen Vektorregisters gleich ist, und N1 eine Folge von ganzen Zahlen ist.
2. Der Vektorprozessor nach Anspruch 1, in welchem jedes der Elementprozessormittel enthält:
Lesemittel (20a) zum Lesen eines der Elemente des in einem der Vektorregister gespeicherten Vektors und eines der Elemente des Vektors, der in einem anderen Vektorregister gespeichert ist;
Registermittel (20b, 20c), die mit den Lesemitteln verbunden sind und die Elemente der Vektoren speichern, die von den Vektorregistern gelesen wurden;
Vorab-Stellenverschiebungsmittel (20f), die mit den Registermitteln für Stellenverschiebung verbunden sind, die den Elementen eines Vektors zugeordneten Operanden mit den den Elementen des anderen Vektors zugeordneten Operanden in Stellenübereinstimmung bringen;
Operationsmittel (20g) verbunden mit den Vorab- Stellenverschiebungsmitteln zur Verarbeitung des einen oder mehrerer Elemente der in dem einen und dem anderen der Vektorregister gespeicherten Vektoren;
Nach-Stellenverschiebungsmittel (20i) verbunden mit den Operationsmitteln zum Empfang eines Satzes von Ergebnissen von den Operationsmitteln und zur Stellenverschiebung der Ergebnisse um einen vorbestimmten Betrag in Übereinstimmung mit der Zahl einer ähnlichen vorbestimmten Art von Zeichen in besagten Ergebnissen; und
Nach-Operationsspeichermittel (20h) zur Speicherung eines Ergebnissatzes, der zu einem von mehreren Vektorregistern zur Speicherung weitergeleitet wird.
3. Ein Vektorprozessor nach Anspruch 1, in welchem die kleineren Register jedes Vektorregisters eine Folge von Spalten bilden und alle kleineren Register für jedes Vektorregister beieinander angeordnet sind und Reihen von von Vektorelementen bilden, Positionszahlen der Vektorelemente in jeder Reihe eine Folge in aufeinanderfolgender Ordnung von einer Seitenspalte zur anderen Seitenspalte bilden, wobei eine Gruppe von Vektorelementausgängen aus dem Vektorregister aufeinanderfolgende Vektorelemente bilden, um die Verarbeitung zu erleichtern.
4. Ein Vektorprozessor nach Anspruch 1, in welchem die Elementprozessormittel einen ersten Satz von Elementprozessormitteln und einen zweiten Satz von Elementprozessormitteln einschließen, die ersten und zweiten Sätze von Elementprozessormitteln Eingänge haben; und ferner umfassen
einem Instruktionsprozessor (24(6)); und
einem Speicher (26(6)) und in welchem
besagte Steuermittel (22(6)) auf der einen Seite mit den Eingängen des besagten ersten Satzes der Elementprozessormittel und den Eingängen des zweiten Satzes der Elementprozessormittel auf ihrer anderen Seite mit dem Ausgang des Speichers und einem Ausgang des Instruktionsprozessors verbunden sind, um die Auswahl des ersten Satzes der Elementprozessormittel und des einen oder mehreren der Vektorregister, die mit dem besagten ersten Satz von Elementprozessormitteln verbunden sind, und die Auswahl des zweiten Satzes der Elementprozessormittel und des einen oder mehrerer Vektorregister, die mit dem besagten zweiten Satz von Elementprozessormitteln verbunden sind, zu steuern, die Auswahl des ersten Satzes der Elementprozessormittel steuert die Verarbeitung von entsprechenden Elementen mehrerer Elemente einer Gruppe, die in einem oder mehreren Vektorregister(n) gespeichert sind, die Auswahl des zweiten Satzes der Elementprozessormittel steuert die Verarbeitung von entsprechenden Elementen mehrerer Elemente einer Gruppe, die in einem oder mehreren der Vektorregister gespeichert sind.
5. Ein Vektorprozessor nach Anspruch 4, in welchem die Steuermittel folgende Merkmale umfassen:
Mittel (22c, 22h), die mit dem Speicher und dem Instruktionsprozessor zur Erzeugung erster und zweiter Adreßinformation verbunden sind, die erste Adreßinformation zum ersten Satz von Elementprozessormitteln und die zweite Adreßinformation zum zweiten Satz von Elementprozessormitteln übertragen wird, und
Mittel (22a, 22d, 22e), die mit dem Speicher und dem Instruktionsprozessor zur Erzeugung einer Befehlsinformation verbunden sind, besagte Befehlsinformation wird zum ersten und zum zweiten Satz von Elementprozessormitteln übertragen,
der erste Satz der Elementprozessormittel wird durch die erste Adreßinformation identifiziert und ausgewählt, das eine oder mehrere Vektorregister, das/die dem ersten ausgewählten Satz von Elementprozessormitteln wird durch die erste Adreßinformation identifiziert und ausgewählt,
der zweite Satz der Elementprozessormittel wird durch die zweite Adreßinformation identifiziert und ausgewählt, das ein oder mehrere Vektorregister das/die dem zweiten ausgewählten Satz von Elementprozessormitteln zugeordnet ist/sind, wird durch die zweite Adreßinformation identifiziert und ausgewählt.
6. Ein Vektorprozessor nach Anspruch 5, in welchem:
jedes der Elementprozessormittel einen Ausgang hat, die Mehrzahl der Elementprozessormittel mehrere Ausgänge (A) haben,
jedes der kleineren Register der Vektorregister einen Eingang hat, die Mehrzahl der kleineren Register der Vektorregister haben mehrere Eingänge (A),
die Ausgänge der Elementprozessormittel mit mit den Eingängen der Mehrzahl der kleineren Register der Vektorregister verbunden sind,
die Elementprozessormittel die entsprechenden Elemente der Gruppe verarbeiten, die jeweils in den kleineren Registern des einen oder mehrerer Vektorregister gespeichert sind und damit in Übereinstimmung mit der Befehlsinformation die entsprechenden mehrfachen Ergebnisse erzeugen und diese in mehreren Elementprozessormitteln speichern,
die in mehreren Elementprozessormitteln gespeicherten Ergebnisse zu einem der Vektorregister übertragen und dort gemäß der ersten und zweiten Adreßinformation über die Verbindung der Ausgänge mehrerer Elementprozessormittel den Eingängen mehrerer kleinerer Register des einen der Vektorregister zur Speicherung zugeführt wird.
7. Ein Vektorprozessor nach Anspruch 1, in welchem jedes der kleineren Register Elemente nur eines Vektors speichert.
DE8686101870T 1985-03-13 1986-02-14 Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration. Expired - Fee Related DE3686828T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US71132985A 1985-03-13 1985-03-13

Publications (2)

Publication Number Publication Date
DE3686828D1 DE3686828D1 (de) 1992-11-05
DE3686828T2 true DE3686828T2 (de) 1993-04-01

Family

ID=24857652

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8686101870T Expired - Fee Related DE3686828T2 (de) 1985-03-13 1986-02-14 Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration.

Country Status (5)

Country Link
US (1) US4884190A (de)
EP (1) EP0195245B1 (de)
JP (1) JPS61208570A (de)
CA (1) CA1233260A (de)
DE (1) DE3686828T2 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1309665C (en) * 1987-06-27 1992-11-03 Kenzo Akagiri Amplitude compressing/expanding circuit
US4933895A (en) * 1987-07-10 1990-06-12 Hughes Aircraft Company Cellular array having data dependent processing capabilities
US5121479A (en) * 1988-01-27 1992-06-09 Storage Technology Corporation Early start mode data transfer apparatus
JP2806524B2 (ja) * 1988-03-04 1998-09-30 日本電気株式会社 ベクトル演算命令発行制御方法
US5019968A (en) * 1988-03-29 1991-05-28 Yulan Wang Three-dimensional vector processor
DE68926783T2 (de) * 1988-10-07 1996-11-28 Martin Marietta Corp Paralleler datenprozessor
ES2109256T3 (es) * 1990-05-25 1998-01-16 At & T Corp Disposicion de bus de acceso a memoria.
JPH04336378A (ja) * 1991-05-14 1992-11-24 Nec Corp 情報処理装置
CA2078913A1 (en) * 1991-12-12 1993-06-13 John J. Reilly Interprocessor communication system and method for multiprocessor circuitry
US6073185A (en) * 1993-08-27 2000-06-06 Teranex, Inc. Parallel data processor
JPH07271764A (ja) * 1994-03-24 1995-10-20 Internatl Business Mach Corp <Ibm> 計算機プロセッサ及びシステム
US5623685A (en) * 1994-12-01 1997-04-22 Cray Research, Inc. Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
US6058465A (en) * 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
US5913069A (en) * 1997-12-10 1999-06-15 Cray Research, Inc. Interleaving memory in distributed vector architecture multiprocessor system
US5946496A (en) * 1997-12-10 1999-08-31 Cray Research, Inc. Distributed vector architecture
US6067609A (en) * 1998-04-09 2000-05-23 Teranex, Inc. Pattern generation and shift plane operations for a mesh connected computer
US6212628B1 (en) 1998-04-09 2001-04-03 Teranex, Inc. Mesh connected computer
US6173388B1 (en) 1998-04-09 2001-01-09 Teranex Inc. Directly accessing local memories of array processors for improved real-time corner turning processing
US6185667B1 (en) 1998-04-09 2001-02-06 Teranex, Inc. Input/output support for processing in a mesh connected computer
GB2395298B (en) * 2002-09-17 2007-02-14 Micron Technology Inc Flexible results pipeline for processing element
US8200945B2 (en) * 2003-11-07 2012-06-12 International Business Machines Corporation Vector unit in a processor enabled to replicate data on a first portion of a data bus to primary and secondary registers

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3106689A (en) * 1959-11-20 1963-10-08 Bbc Brown Boveri & Cie Electrical filter for direct current circuit
US4041471A (en) * 1975-04-14 1977-08-09 Scientific Micro Systems, Inc. Data processing system including a plurality of programmed machines and particularly including a supervisor machine and an object machine
US4041461A (en) * 1975-07-25 1977-08-09 International Business Machines Corporation Signal analyzer system
US4171536A (en) * 1976-05-03 1979-10-16 International Business Machines Corporation Microprocessor system
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
US4179734A (en) * 1976-07-02 1979-12-18 Floating Point Systems, Inc. Floating point data processor having fast access memory means
JPS5852265B2 (ja) * 1977-01-12 1983-11-21 株式会社日立製作所 デ−タ処理装置
US4101960A (en) * 1977-03-29 1978-07-18 Burroughs Corporation Scientific processor
US4162534A (en) * 1977-07-29 1979-07-24 Burroughs Corporation Parallel alignment network for d-ordered vector elements
US4287566A (en) * 1979-09-28 1981-09-01 Culler-Harrison Inc. Array processor with parallel operations per instruction
US4298936A (en) * 1979-11-15 1981-11-03 Analogic Corporation Array Processor
US4314349A (en) * 1979-12-31 1982-02-02 Goodyear Aerospace Corporation Processing element for parallel array processors
KR860001434B1 (ko) * 1980-11-21 1986-09-24 후지쑤 가부시끼가이샤 데이타 처리시 스템
JPS57209570A (en) * 1981-06-19 1982-12-22 Fujitsu Ltd Vector processing device
JPS58149556A (ja) * 1982-02-27 1983-09-05 Fujitsu Ltd 並列処理装置
JPS58149555A (ja) * 1982-02-27 1983-09-05 Fujitsu Ltd 並列処理装置
US4745546A (en) * 1982-06-25 1988-05-17 Hughes Aircraft Company Column shorted and full array shorted functional plane for use in a modular array processor and method for using same
JPS6083176A (ja) 1983-10-03 1985-05-11 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション ベクトルプロセツサ

Also Published As

Publication number Publication date
EP0195245A3 (en) 1989-05-03
US4884190A (en) 1989-11-28
JPS61208570A (ja) 1986-09-16
EP0195245B1 (de) 1992-09-30
EP0195245A2 (de) 1986-09-24
DE3686828D1 (de) 1992-11-05
CA1233260A (en) 1988-02-23

Similar Documents

Publication Publication Date Title
DE3686828T2 (de) Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration.
DE3049437C2 (de) Matrixanordnung einer Vielzahl von Verarbeitungselementen
DE3424962C2 (de)
DE69033444T2 (de) Signalprozessor mit einer arithmetischen und logischen Einheit und einer Multiplizier-Akkumulatoreinheit, die gleichzeitig betrieben werden können
DE2724125C2 (de)
EP0123921B1 (de) Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf
DE69031899T2 (de) Befehlsmethode und Ausführungssystem
DE2819571C2 (de)
DE2846117C2 (de) Datenprozessor
DE68920388T2 (de) Paralleles Rechnersystem mit Verwendung eines SIMD-Verfahrens.
DE3700991C2 (de) Digitaler Übertragsvorgriffsaddierer
DE3586603T2 (de) Datenprozessor fuer interpretierende und kompilierte sprache.
DE1813916A1 (de) Elektronische Datenverarbeitungsanlage
DE1549523B2 (de) Datenverarbeitungsanlage
DE2714805A1 (de) Datenverarbeitungssystem
DE3485771T2 (de) Leistungsfaehiger paralleler vektorprozessor.
DE4334294C1 (de) Prozessor für Zeichenketten variabler Länge
DE69632655T2 (de) Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen
DE2556617C2 (de) Schiebe- und Rotierschaltung
CH644461A5 (de) Digitale multipliziereinrichtung.
DE3788617T2 (de) Vektordatenverarbeitungssystem mit einer E/A-Steuerung für jeden Vektordatenprozessor und einer anderen E/A-Steuerung für mindestens einen anderen Vektordatenprozessor.
DE3486073T2 (de) Vektorverarbeitungsgeraet.
DE3447530C2 (de)
EP0265555B1 (de) Verfahren und Schaltungsanordnung zur Addition von Gleitkommazahlen
DE19628039B4 (de) Speicheradressen-Steuerschaltung

Legal Events

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