DE3506749C2 - - Google Patents

Info

Publication number
DE3506749C2
DE3506749C2 DE3506749A DE3506749A DE3506749C2 DE 3506749 C2 DE3506749 C2 DE 3506749C2 DE 3506749 A DE3506749 A DE 3506749A DE 3506749 A DE3506749 A DE 3506749A DE 3506749 C2 DE3506749 C2 DE 3506749C2
Authority
DE
Germany
Prior art keywords
processing
input
vector data
input vector
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE3506749A
Other languages
English (en)
Other versions
DE3506749A1 (de
Inventor
Junichi Zama Kanagawa Jp Takahashi
Sanshiro Hattori
Takashi Ebina Kanagawa Jp Kimura
Atsushi Isehara Kanagawa Jp Iwata
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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
Priority claimed from JP59034450A external-priority patent/JPS60179871A/ja
Priority claimed from JP59096656A external-priority patent/JPS60241155A/ja
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of DE3506749A1 publication Critical patent/DE3506749A1/de
Application granted granted Critical
Publication of DE3506749C2 publication Critical patent/DE3506749C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/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
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus

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)
  • Multi Processors (AREA)

Description

Die Erfindung betrifft einen Matrixprozessor gemäß dem Oberbegriff des Patentanspruchs 1 sowie ein Verfahren zur Steuerung eines Matrixprozessors gemäß dem Oberbegriff des Patentanspruchs 4.
Matrixprozessoren können für die Ausführung von Berechnungen für alle Kombinationen zweier Arten von Variablen und für Rekursiv-Formeln mit örtlicher Abhängigkeit von Daten unter Verwendung dieser Berechnungsergebnisse eingesetzt werden, wobei im Falle einer Musteran­ passung bei einer Spracherkennung oder Zeichenerkennung Anpassungs-Berechnungen vorgenommen werden, die auf der Theorie der dynamischen Zeitversetzung (dynamic time warping) oder des dynamischen Programmierens beruhen.
Matrixprozessoren ermöglichen dabei eine Hochgeschwindigkeits­ verarbeitung durch parallele Verarbeitung mittels mehrerer Verarbeitungselemente, so daß auch wissen­ schaftliche Berechnungen wie Determinatenberechnungen, Differentialberechnungen oder dergleichen sowie eine Signal­ verarbeitung wie die zuvor erwähnte Musteranpassung sehr rasch durchführbar sind.
Ein dem Oberbegriff des Patentanspruchs 1 in etwa ent­ sprechender Matrixprozessor ist aus der US-PS 35 44 973 bekannt, der allerdings die angegebene Arbeitsweise der einzelnen Schaltungskomponenten wie etwa der Parallel­ verarbeitung seitens der Ablaufvorrichtung nicht direkt entnehmbar ist. Bei dem bekannten Prozessor sind mehrere gleichartige Computerabschnitte vorhanden, die jeweils eine Folgesteuereinrichtung, mehrere Verarbeitungselemente und mehrere Register zum Übertragen von Informationen zwischen einer Speichereinheit und den Verarbeitungs­ elementen aufweisen. Durch eine geeignete Zentralsteuerung soll bei dem bekannten Prozessor erreicht werden, daß nicht nur eine rasche Parallelverarbeitung von Daten, sondern gleichzeitig auch eine sequentielle Verarbeitung durch andere Computerabschnitte möglich ist, um die Vorteile dieser beiden Verarbeitungsstrategien zu vereinen. Die Datenzuführung zu den einzelnen Verarbeitungselementen erfolgt allerdings lediglich über eine Datenverzweigungs­ anordnung, so daß die gleichzeitige Zuführung zweier unterschiedlicher Datenarten über entsprechende Daten- Zuführungsleitungen nicht möglich ist. Dies bringt eine entsprechende Beschränkung hinsichtlich der maximal erzielbaren Verarbeitungsgeschwindigkeit und auch hinsichtlich der Optimierung des Aufbaus des Prozessors mit sich.
Als wirkungsvolles Verfahren zur Musteranpassung bei der Spracherkennung oder Zeichenerkennung ist die dynamische Zeitversetzung (dynamic time warping) bekannt. Die dynamische Zeitversetzung macht eine Echtzeit-Verarbeitung einer sehr großen Datenmenge erforderlich, so daß eine Verarbeitung in hoher Geschwindigkeit notwendig ist. Die Verarbeitung unter dynamischer Zeitversetzung ist eine Berechnungsart, die aus der Berechnung aller Kombinationen zweier Arten von Variablen und der Berechnung von Rekursiv-Formeln mit örtlicher Abhängigkeit von Daten unter Verwendung der Berechnungsergebnisse besteht. Zur Veranschaulichung wird nachfolgend ein Beispiel für eine auf der dynamischen Zeitversetzung beruhende Anpassungsberechnung erörtert, die die Berechnung zwischen zweierlei Arten von Vektor-Variablen und die Berechnung von Rekursiv-Formeln für Endsummenberechnungen unter Verwendung von Berechnungsergebnissen umfaßt.
wobei c i und r j das i-te bzw. j-te Element eines Vektors C = (c₁, c₂, . . ., c I ) mit I Elementen bzw. eines Vektors R = (r₁, r₂, . . ., r N ) mit N Elementen sind. Mit m ist ein Rang eines jeweiligen Vektors bezeichnet. Mit c i ist jeweils (c i , c i , . . ., c m i ) bezeichnet, während mit r j jeweils (r j , r j , . . ., r m j ) bezeichnet ist. Mit D ÿ und S ÿ ist jeweils ein Abstand zwischen Vektoren bzw. ein Summenabstand bezeichnet.
Als Matrixprozessor zur parallelen Verarbeitung der Berechnungen dieser Art ist eine herkömmliche Anordnung bekannt, bei der (I × N) Verarbeitungselemente in einem Orthogonalnetz angeordnet sind, wobei die Anzahl von Daten zweier Arten von Vektoren jeweils I bzw. N ist.
Eine solche orthogonale Anordnung eines Matrixprozessors ist in der US-PS 43 84 273, in der Veröffentlichung "An Integrated Multiprocessing Array for Time Warp Pattern Matching" von Bryan Ackland u. a. in "English International Symposium of Computer Architecture", Minneapolis, Minnesota, Seiten 197 bis 215 (12. bis 14. Mai 1981), in der Veröffentlichung "A systolic processing element for speech recognition" von N. H. E. Weste und anderen, ISSCC 82, Seiten 274 und 275 (1982) und in der Veröffentlichung "A High Speed Array Computer for Dynamic Time Warping" von D. J. Burr und anderen, "IEEE Conference on Acoustics Speech and Signal Processing", Seiten 471 bis 474 (März 1980) beschrieben.
Fig. 1 zeigt als Beispiel die Anordnung eines Matrix­ prozessors, der als Orthogonalnetz gestaltet ist. Fig. 2A und 2B, 3A und 3B, 4A und 4B sowie 5A und 5B zeigen jeweils ein Beispiel der Funktionen des Matrixprozessors. Fig. 1 zeigt Verarbeitungselemente (PE) 100, Ortsdatenwege 200 und eine Befehlssammelleitung 300. Mit 400 sind Eingangsanschlüsse bezeichnet, während mit 500 Ausgangsanschlüsse bezeichnet sind.
Jedes Verarbeitungselement 100 umfaßt eine Vorrichtung zum Ausführen einer Additions- und Multiplikations-Berechnungen enthaltenden Vektorzwischenabstand-Rechengleichung (1) sowie einer Vergleichs- und Aufsummierungs-Rechengleichung (2) und eine Vorrichtung zur Aufnahme und Übertragung der Ergebnisse der Vergleichsberechnungen aus den benachbarten Verarbeitungselementen sowie der Ergebnisse S ÿ der Aufsummierungs-Berechnungen und der Vektor-Daten c i und r j . Ferner ist jedes Verarbeitungselement mit einer Nummer bezeichnet, das seine Lage in der Orthogonal­ anordnung angibt. Wenn das Verarbeitungselement an dem Schnittpunkt zwischen der Spalte i und der Zeile j mit PE ÿ bezeichnet ist, können die vorangehend angeführten Gleichungen (1), (2) und (3) mit folgenden Betriebsabläufen vollzogen werden:
  • (i) Aus einem links an ein Element PE i,j angrenzenden Element PE i-1,j und einem unten an das Element PE i,j angrenzenden Element PE i,j-1 (oder alternativ aus einem Eingangsanschluß am linken Rand und einem Eingangsanschluß am unteren Rand) werden die zwei Arten von Vektordaten c i und r j eingegeben und es wird der Abstand zwischen diesen Vektoren gemäß der Gleichung (1) ermittelt.
  • (ii) Die Vektordaten c i und r j werden jeweils zu einem nach rechts angrenzenden Element PE i+1,j und einem oben angrenzenden Element PE i,j+1 übertragen.
  • (iii) Aus dem links angrenzenden Element PE i-1,j wird ein Aufsummierungs-Rechenergebnis S i-1,j eingegeben, während aus dem unten angrenzenden Element PE i,j-1 ein Vergleichs- Rechenergebnis min(S i, j-1,S i-1,j-1) eingegeben wird; es wird eine Vergleichsberechnung min{S i-1,j , min(S i,j-1, S i-1,j-1)} ausgeführt; zu dem Ergebnis dieser Berechnung wird der bei dem Schritt (i) ermittelte Abstand D ÿ addiert, um S ÿ zu erhalten.
  • (iv) Es wird eine Vergleichsberechnung min(S i,j , S i-1,j ) ausgeführt; das Ergebnis dieser Berechnung wird zu dem oben angrenzenden Element PE i,j+1 übertragen, während zu dem rechts angrenzenden Element PE i+1,j das Aufsummierungs-Rechenergebnis S i,j übertragen wird.
Die Schritte (iii) und (iv) stellen die Aufbereitung gemäß der Vergleichs- und Aufsummierungs-Rechengleichung (2) dar. Das heißt, von den für das Erfüllen der Rechengleichung (2) in dem Element PE ÿ benötigten dreierlei Aufsummierungsergebnissen S i,j-1, S i-1,j und S i-1,j-1 liegen die Ergebnisse S i,j-1 und S i-1,j jeweils in dem rechts angrenzenden Element PE i,j-1 bzw. dem links angrenzenden Element PE i-1,j vor, während das Ergebnis S i-1,j-1 in einem Element PE i-1,j-1 vorliegt, welches dem Element PE ÿ diagonal benachbart ist.
Aus diesem Grund ist bei den vorangehend zuerst genannten beiden Daten eine einzige Übertragung erforderlich, während bei den letztgenannten Daten zwei Übertragungen über das Element PE i,j-1 erforderlich sind. Falls jedoch in dem Element PE i,j-1,, über das das Ergebnis S i-1,j-1, übertragen wird, die Ergebnisse S i,j-1, und S i-1,j-1 im voraus verglichen werden und das Ergebnis aus diesem Vergleich zu dem Element PE ÿ übertragen wird, so daß eine Vergleichsberechnung an diesem Datenwert und dem aus dem Element PE i-1,j übertragenen Datenwert S i-1,j ausgeführt werden kann, ist das Endergebnis gleich demjenigen der Vergleichsberechnung der drei Datenwerte gemäß der Gleichung (2) in dem Element PE ÿ .
Diese Vorgänge machen es möglich, ein Aufsummierungs- Endergebnis S I,N zu erhalten, während die Abstände D i,j zwischen Vektoren und die Aufsummierungsergebnisse S i,j dadurch berechnet werden, daß hinsichtlich des Aufbereitungs­ inhalts aller Verarbeitungselemente die Vorgänge gemäß den Schritten (i) bis (iv) für alle Verarbeitungselemente an den in Fig. 1 durch ausgezogene Linien dargestellten Diagonalen ausgeführt werden oder daß hinsichtlich der Inhalte paralleler Verarbeitung abwechselnd an benachbarten Diagonalen die beiden verschiedenartigen Vorgänge gemäß (i) und (iii) bzw. gemäß (ii) und (iv) ausgeführt werden.
Im Falle der letzteren Ausführung unterscheidet sich die Anzahl wirksamer dynamischer Schritte bei zwei parallelen Verarbeitungseinheiten, so daß die Anzahl der Ausführungsschritte durch einen Übersprungbefehl (NOP-Befehl) ausgeglichen werden muß. Eine ausführliche Erläuterung dieses Umstands ist hier weggelassen.
Die Fig. 2A und 2B, 3A und 3B, 4A und 4B sowie 5A und 5B zeigen die Rechenvorgänge in der Orthogonalanordnung im Falle dieser letztgenannten Ausführungsart über eine Zeitdauer von einem Zeitpunkt t bis zu einem Zeitpunkt t+3. Hierbei wird die Zeit in Zeiteinheiten bemessen, die jeweils an jeder Verarbeitungseinheit für das Ausführen der Verarbeitung gemäß den Schritten (i) und (iii) bzw. (ii) und (iv) erforderlich sind. Die Fig. 2A, 3A, 4A und 5A bzw. 2B, 3B, 4B und 5B zeigen jeweils die Zustände bei der Verarbeitung der in Rechtecken angeführten Daten während der genannten Zeiteinheiten in einem jeweiligen Verarbeitungselement.
Bei einer solchen Orthogonalanordnung werden die Orts­ festlegung bzw. Lokalisierung sowie die Gleichförmigkeit der Berechnungen dazu genutzt, eine parallele Verarbeitung zu ermöglichen. Wenn aber beispielsweise die vorangehend genannte dynamische Zeitversetzungs-Gleichung (2) eine als Gleichung (4) nachstehend angeführte komplizierte Rechengleichung ist, müssen die Übertragung der Aufsummierungsergebnisse S i-1,j-1, S i-1,j-2, S i-2,j-1 gemäß der Gleichung (4) sowie die Aufnahme der drei Datenwerte, die den Vergleichsberechnungen zu unterziehen sind, über zwei Verarbeitungselemente ausgeführt werden.
Bei den angewandten Verfahren kann die Vergleichsberechnung in dem Element PE ÿ vorgenommen werden, nachdem in dieses diese drei Datenwerte eingegeben wurden. Daher wird die parallel auszuführende Aufbereitung in jedem Verarbeitungselement kompliziert; darüber hinaus ist es nicht möglich, die Parallelaufbereitung, bei der die Elemente eingesetzt werden, mit einem zufriedenstellenden Wirkungsgrad auszuführen.
Ferner muß in Anbetracht der dynamischen Zeitversetzungs- Berechnung die Anzahl der Verarbeitungselemente entsprechend den beiden positiven ganzen Zahlen N und I festgelegt werden, die die Anzahl der Datenwerte in den beiden Arten von Vektorfolgen für die Aufbereitung ausdrücken; daher müssen zum Ausführen der dynamischen Zeitversetzungs­ berechnungen an der Mehrfach-Vektorfolge C u (C u = {c u , c u , . . ., c 1u u }; u = 1, 2, . . ., l) und der Mehrfach-Vektorfolge R v (R v = {r v , r v, . . ., r Nv v }; v = 1, 2, . . ., l) für die positiven ganzen Zahlen N und I Werte
gewählt werden wobei die Anzahl der erforderlichen Verarbeitungselemente (Nmax × Imax) ist.
Infolgedessen gibt es bei der Verarbeitung der Vektorfolgen C u und R v eine Vielzahl von Verarbeitungselementen, die außer bei der Kombination aus Cmax und Rmax im Hinblick auf alle Kombinationen der Vektorfolgen für das Ausführen der Vorgänge zur dynamischen Zeitversetzungs- Rechenaufbereitung nicht eingesetzt werden. Infolgedessen wird keine wirksame Nutzung des Schaltungsaufbaus erzielt.
Darüber hinaus bildet das Erfordernis, die Anzahl notwendiger Verarbeitungselemente entsprechend der maximalen Anzahl von zu verarbeitenden Daten zu bestimmen, eine Einschränkung der Möglichkeit der Verringerung der Systemabmessungen unter Anwendung von Schaltungsintegration in hoher Dichte (LSI). Die Anzahl von Verarbeitungselementen, die in einem einzelnen hochintegrierten Schaltungsbaustein untergebracht werden können, ändert sich entsprechend den Funktionen der Verarbeitungselemente. Wenn beispiels­ weise in einem einzigen hochintegrierten bzw. LSI-Baustein vier Verarbeitungselemente untergebracht werden und die Werte Nmax = 60 sowie Imax = 60 gewählt werden, müssen in dem Orthogonalnetz 900 Bausteine angeordnet und angeschlossen werden.
Zur Steuerung eines derartigen herkömmlichen Matrixprozessors führt jedes Verarbeitungselement gleichzeitig eine Aufbereitung gemäß Befehlen aus, die durch einen Ver­ arbeitungsrechner eingegeben werden.
Wenn bei der vorstehend beschriebenen Anordnung die Ver­ arbeitung für eine bestimmte Vektorfolge R v auszuführen ist, die die Bedingung N v < Nmax (v = 1, 2, . . ., l r ) erfüllt, tritt gleichzeitig ein Endergebnis aus jedem Verarbeitungselement PE i , N v aus (wobei jedem Ver­ arbeitungselement eine Nummer zugeteilt ist und das Verarbeitungs­ element an der Schnittstelle einer Spalte i mit einer Zeile j liegt). Da jedoch jedes dieser Elemente auf einer bestimmten Diagonale liegt, ist die Verarbeitung, die gemäß der Gleichung (1) durch die Elemente mit Ausnahme des vorstehend genannten Elements auf der gleichen Diagonale ausgeführt wird, die gleiche wie die durch dieses Element auf der gleichen Diagonale ausgeführte; es kann keine Unterscheidung zwischen den Verarbeitungsinhalten in den Elementen an den Diagonalen getroffen werden. Daher muß auch aus jedem Verarbeitungselement PE i , Nmax das Endergebnis für diese Vektorfolge R v ausgegeben werden, wobei die Elemente von der Spalte (N v +1) bis zu der Spalte Nmax dazu dienen müssen, diese Verarbeitungs­ ergebnisse unverändert zu übertragen. Eine solche Steuerung ist für jede Vektorfolge R v notwendig. Da die Ver­ teilung der Elemente, die die Verarbeitungsergebnisse unver­ ändert übertragen, sich bei jeder Vektorfolge ändert, muß eine geeignete Steuerung ausgeführt werden, während der Verarbeitungscomputer die Aufbereitungsbedingungen eines jeden Elements steuert. Nach diesem Verfahren werden alle (I × Nmax) Elemente gesteuert, so daß der Austausch von Steuersignalen zwischen dem jeweiligen Element und dem Verarbeitungscomputer sowie die Eingabe der Befehle in ein jeweiliges Element außerordentlich kompliziert werden.
Der Erfindung liegt die Aufgabe zugrunde, einen Matrix­ prozessor gemäß dem Oberbegriff des Patentanspruchs 1 zu schaffen, der sich durch kurze Verarbeitungszeit bei Vektorberechnung auszeichnet, sowie ein entsprechendes Steuerverfahren anzugeben.
Diese Aufgabe wird mit den im kennzeichnenden Teil des Patentanspruchs 1 genannten Merkmalen bzw. mit den Maßnahmen des Patentanspruchs 4 gelöst.
Bei dem erfindungsgemäßen Matrixprozessor können somit die Eingangs-Vektordaten den Verarbeitungselementen direkt von der Eingangs-Vektordaten-Sammelleitung über den zugehörigen Multiplexer und die Eingabe/Ausgabe-Datensammelleitung zugeführt werden, so daß die Berechnungszeit bei einer Vektorberechnung, bei der eine große zu verarbeitende Datenmenge anfällt, erheblich verkürzt und eine effektive Eingabe oder Übertragung der beiden Eingangs- Vektordaten-Arten zum jeweiligen Verarbeitungselement erreicht werden kann. Die beanspruchte Gestaltung ermöglicht darüber hinaus bei einer Musteranpassungs-Verarbeitung eine Optimierung der Größe des Matrixprozessors, da die Verarbeitungs­ elemente und das gesamte Netzwerk effektiv eingesetzt werden.
Bei dem Matrixprozessor erfolgt somit eine Parallel­ verarbeitung unter hohem Wirkungsgrad zur Berechnung aller Kombinationen zweier Arten von Variablen und zur Berechnung von Rekursivformelgleichungen mit Ortsabhängigkeit unter Verwendung der Ergebnisse dieser Berechnung, wie es für die dynamische Zeitversetzungs-Berechnung typisch ist, wobei aber die Anzahl von Verarbeitungs­ elementen der auszuführenden Berechnungsmenge entspricht und jedes Element wirkungsvoll arbeitet.
Die gleichen Vorteile werden mit dem im Patentanspruch 4 angegebenen Steuerverfahren erreicht, bei dem lediglich einer der Multiplexer die Eingangs-Vektordaten-Sammelleitung auswählt, während die übrigen Multiplexer gleichzeitig die Übertragungspfade zwischen den Verarbeitungselementen durchschalten. Folglich werden die ersten Eingangs- Vektordaten in eines der Verarbeitungselemente eingegeben und weiterhin über den Übertragungspfad zu den benachbarten Verarbeitungselementen übertragen, während synchron mit dieser Datenübertragung die zweiten Eingangs- Vektordaten aufeinanderfolgend von der Eingabe/Ausgabe- Datensammelleitung in entsprechende Verarbeitungselemente eingegeben werden. Andererseits können alle Multiplexer den Übertragungspfad auswählen und die ersten Eingangs- Vektordaten somit kreisförmig umlaufend zwischen den Verarbeitungselementen übertragen werden, während synchron hierzu die zweiten Eingangs-Vektordaten aufeinanderfolgend über die Eingabe/Ausgabe-Datensammelleitung direkt in die Verarbeitungselemente eingegeben werden.
Bei dem Steuerverfahren enthält somit jedes Verarbeitungs­ element eingebaute Befehle und ermittelt während der gesamten Verarbeitung in der Anordnung seine eigenen Bedingungen für das Einleiten bzw. Ausführen entsprechender Befehle, so daß eine selbständige Steuerung ausgeführt wird.
Bei dem Matrixprozessor bzw. dem Verfahren zur Steuerung desselben bezeichnen I, N und n positive ganze Zahlen. Der Zusammenhang zwischen N und n wird tatsächlich innerhalb eines Bereichs geregelt, der durch
definiert ist, wodurch der Divisionsrest bei der Division von N durch n bezeichnet ist.
Vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen aufgeführt.
Die Erfindung wird nachstehend anhand von Ausführungsbeispielen unter Bezugnahme auf die Zeichnungen näher erläutert. Es zeigt
Fig. 1 ein Beispiel für die Gestaltung eines herkömmlichen Orthogonal- Matrixprozessors,
Fig. 2A und 2B, 3A und 3B, 4A und 4B sowie 5A und 5B Beispiele von Verarbeitungsvorgängen in dem herkömmlichen Matrixprozessor,
Fig. 6 ein Blockschaltbild eines ersten Ausführungsbeispiels des Matrixprozessors,
Fig. 7 ein Blockschaltbild einer Ausführungsform eines Verarbeitungselements in dem Matrixprozessor gemäß Fig. 6,
Fig. 8 eine Darstellung zur Erläuterung von Verarbeitungsvorgängen in dem in Fig. 6 gezeigten Matrixprozessor,
Fig. 9 eine Darstellung zur Erläuterung der Eingabe von Daten aus externen Quellen und der Bedingungen zur Datenübertragung zwischen Verarbeitungselementen in dem in Fig. 6 gezeigten Matrixprozessor,
Fig. 10 eine Darstellung zur Erläuterung eines Beispiels von Verarbeitungsvorgängen in einem jeweiligen Verarbeitungselement,
Fig. 11 ein Blockschaltbild, das ein zweites Ausführungsbeispiel des Matrixprozessors zeigt, bei dem Verarbeitungselemente ringförmig angeordnet und verbunden sind,
Fig. 12 eine Darstellung zur Erläuterung eines Beispiels für eine Kennung, die Eingangs-Vektordaten hinzugefügt wird,
Fig. 13 eine Blockdarstellung, die ein Beispiel von Steuervorgängen für ein Zustandskennungsregister in dem Verarbeitungselement veranschaulicht,
Fig. 14A bis 14E Darstellungen zur Erläuterung von Beispielen von Steuervorgängen bei der Ausführung einer dynamischen Zeitversetzungs-Berechnung in dem in Fig. 11 gezeigten Matrixprozessor,
Fig. 15 ein Blockschaltbild einer Ausführungsform einer Schaltungsanordnung, bei der in den Ver­ arbeitungselementen als Teil des Matrix­ prozessors jeweils eine Steuereinheit für das Ausführen des Steuerverfahrens eingebaut ist,
Fig. 16 ein Ablaufdiagramm, das ein Beispiel für den Steuerungsablauf einer Steuerlogik in der Steuereinheit eines jeweiligen Verarbeitungselements zeigt, und
Fig. 17 ein Ablaufdiagramm, das ein weiteres Beispiel für den Steuerungsablauf in der Steuereinheit in einem jeweiligen Verarbeitungselement zeigt.
Fig. 6 zeigt ein Ausführungsbeispiel des Matrixprozessors, in dem als Beispiel für eine auf der dynamischen Zeitversetzung (dynamic time warping) beruhenden Anpassungsberechnung die vorangehend angeführten Gleichungen (1), (2) und (3) für zwei Arten von Vektorfolgen C u und R v (u = 1, 2, . . ., l c ; v = 1, 2, . . ., l r ) berechnet bzw. gelöst werden.
Gemäß Fig. 6 ist eine Anzahl n von Verarbeitungselementen (PE) angenommen. Mit 1 ist ein einzelnes Element bezeichnet, das eine Recheneinheit für Additionen, Subtraktionen, Vergleichsberechnungen und Multiplikations- und Additionsberechnungen enthält, um die Gleichungen (1), (2) und (3) für die dynamische Zeitversetzungs-Berechnung zu lösen, und das ferner Register für den Datenaustausch mit benachbarten Elementen sowie mit externen Quellen und einen Speicher zum Speichern von Rechenergebnissen und Übertragungsdaten enthält. Diese Verarbeitungselemente 1 sind ringförmig angeordnet.
Mit 2-1 bis 2 -n sind Multiplexer bezeichnet, die von einer nachfolgend beschriebenen Steuereinheit 10 zur Wahl eines von zwei Zuständen gesteuert sind. Das heißt, bei dem einen Zustand werden gleichzeitig in die Anordnung (ent­ sprechend der Anzahl der Verarbeitungselemente) n Eingangs- Vektordaten c i u (i = 1, 2, . . ., I u ) aus externen Quellen eingegeben, während bei dem zweiten Zustand die Eingangs-Vektordaten c i u umlaufend bzw. im Kreis jeweils aus dem benachbarten Element übertragen werden. Wenn beispielsweise von einem Element PE₁ an in jedes Element der Anordnung n Eingangs-Vektordatenfolgen c u , c u , . . ., c n u eingegeben werden, wählt der Multiplexer 2-1 eine von einer (nicht gezeigten) externen Quelle kommende Eingangs- Vektordaten-Sammelleitung 3 an, die als Eingangskanal für diese Eingangs-Vektordatenfolgen eingesetzt wird. Beginnend vom Element PE₁ als Ursprungsort an wird ein jeweiliger der n Eingangs-Vektordatenwerte c u , c u , . . ., c n u durch das aufeinanderfolgende Übertragen der Eingangs- Vektordaten c i u zu benachbarten Elementen einem jeweiligen Element zugeordnet. Andernfalls wählen alle Multiplexer 2-1 bis 2 -n einen Datenübertragungsweg 5 zwischen den Verarbeitungselementen, über den die Eingangs- Vektordatenfolgen c u , c u , . . ., c n u umlaufend zwischen den Elementen übertragen werden. Jedes Verarbeitungselement ist so gestaltet, daß jedesmal dann, wenn die vorstehend genannten n Eingangs-Vektordatenmuster gewechselt werden, parallel mit einer üblichen Parallelverarbeitung in allen Elementen das jeweilige Verarbeitungsergebnis gleichzeitig (Rest N/n)-mal zu dem benachbarten Element übertragen wird, was nachstehend beschrieben wird. Hierbei ist (Rest N/n) der Divisionsrest bei der Division von
Mit 4 ist eine Eingabe/Ausgabe-Sammelleitung zur aufein­ anderfolgenden Eingabe von Vektordaten der anderen Eingangs- Vektordatenfolge R v = {r v , r v , . . ., r Nv v } (k = 1, 2, . . ., l r ) in das jeweilige Element sowie ferner zur Ausgabe von Rechenendergebnissen
bezeichnet. Mit 5 ist der Datenübertragungsweg für die Ringübertragung der Eingangs-Vektordaten c i u zwischen den Elementen und für die Übertragung eines kumulativen bzw. Summenrechenergebnisses S ÿ bezeichnet. Mit 6 ist jeweils ein mit der Eingabe/Ausgabe-Sammelleitung verbundener Eingabe/Ausgabe-Anschluß eines jeweiligen Verarbeitungselements bezeichnet. Mit 7, 8 und 9 sind jeweils die Eingangs-Vektordaten c i u und r j v (i = 1, 2, . . ., I u ; j = 1, 2, . . ., N v ; u = 1, 2, . . ., l c ; v = 1, 2, . . ., l r ) bzw. Rechenendergebnisse
bezeichnet. Mit 10 ist die Steuereinheit für die Steuerung des gesamten Systems bezeichnet, die das Bestimmen der Zeitpunkte für den Wechsel der vorstehend genannten Eingangs-Vektordaten und das Zählen der Anzahl von Übertragungen der Verarbeitungsergebnisse steuert.
Fig. 7 zeigt eine Ausführungsform der Gestaltung eines jeweiligen Verarbeitungselements. Das einzelne Ver­ arbeitungselement 1 ist mit einer strichpunktierten Linie umrahmt. Mit 4 ist die externe Eingabe/Ausgabe-Sammel­ leitung für die Eingabe der Vektordaten r j v (j = 1, 2, . . ., N v ) in das jeweilige Element und für die Ausgabe der Rechenend­ ergebnisse bezeichnet. Mit 12 ist ein Eingabe/ Ausgabe-Anschluß für die Aufnahme von Daten aus der Sammel­ leitung 4 sowie für die Übertragung von Daten zur Sammel­ leitung 4 bezeichnet. Mit 13 ist ein Anschluß für die Datenübertragung aus einem links benachbarten Element bezeichnet, während mit 14 ein Anschluß für die Datenübertragung zu einem rechts benachbarten Element bezeichnet ist.
Mit 15 ist ein Puffer-Register (zweites Register) für das Speichern von über die Sammelleitung 4 eingegebenen Vektordaten r j bezeichnet. Mit 16 ist ein Pufferregister (viertes Register) zum Speichern der Rechenendergebnisse und die Ausgabe derselben an die Sammelleitung 4 bezeichnet. Mit 17 ist ein Register (erstes Register) zum Speichern der aus dem benachbarten Element eingegebenen Vektor­ daten c i u (i = 1, 2, . . ., I u ) sowie eingegebener Daten, die zur Berechnung des kumulativen bzw. Summen- Rechenergebnisses S ÿ benötigt werden, das bei nachfolgend beschriebenen Verarbeitungsvorgängen (b) und (c) erzielt wird. Mit 18 ist ein Register (drittes Register) für das Übertragen der Vektordaten c i u zu dem benachbarten Element und zur Datenübertragung für das Berechnen des Summen-Rechenergebnisses S ÿ bezeichnet. Mit 19 ist eine interne Sammelleitung (Datenleitung) bezeichnet.
Mit 20 und 21 sind jeweils Pufferspeicher bezeichnet, die alle Komponenten r k vj bzw. c k ui (k = 1, 2, . . ., m) der Vek­ tordaten r j v bzw. c i u speichern, welche in die jeweiligen Elemente einzugeben sind. Mit 22-1 ist eine Addier/Subtrahier- Einheit (erste Recheneinheit) zur Addition und Subtraktion bezeichnet, während mit 22-2 ein Akkumulator bzw. Akkumulatorregister zum Akkumulieren des Ergebnisses der Addier/Subtrahier- Einheit 22-1 bezeichnet ist. Mit 22-3 ist eine Produkt­ summeneinheit (zweite Recheneinheit) zur Produktsummenberechnung bezeichnet. Durch die Einheiten 22-1 und 22-3 sowie den Akkumulator 22-2 ist eine arithmetische bzw. Recheneinheit 22 gebildet, die die Berechnungen gemäß den Gleichungen (1) und (2) ausführt. Mit 23 ist ein Arbeitsspeicher für das Speichern von Daten bezeichnet, die für die Berechnung der Gleichungen (2) und (3) erforderlich sind. Dieser Arbeitsspeicher 23 hat entsprechend dem Status der gespeicherten Daten zwei Bereiche 23-1 und 23-2. Der Bereich 23-1 speichert Daten, die während der Ringübertragung der Eingangs-Vektordaten c i u für das Ausführen nach­ stehend beschriebener Verarbeitungsvorgänge (a), (b) und (c) erforderlich sind, während der Bereich 23-2 Daten speichert, die für die Ausführung der Verarbeitungsvorgänge (b) und (c) erforderlich sind, welche unmittelbar dem Wechsel von n Vektorfolgen aus Vektorfolgen C₁, C₂, . . ., C 1c folgen.
Mit 24 ist eine Verarbeitungselement-Steuereinheit bezeichnet, die eine Steuerung nach einem internen Mikro­ programm oder nach Befehlen von einer externen Quelle ausführt. Die Steuereinheit 24 umfaßt eine Steuerlogik 24-1, einen Programmspeicher 24-2 zum Speichern des internen Mikroprogrammes, einen Programmzähler 24-3 zum Steuern des Programmspeichers 24-2, ein Befehlsregister 24-4 für das Speichern von aus dem Programmspeicher 24-2 ausgelesenen Daten und einen Befehlsdecodierer für das Decodieren der in dem Befehlsregister 24-4 gespeicherten Daten. Die Steuerlogik 24-1 empfängt über einen Eingangsanschluß 25 Steuersignale aus der in Fig. 6 gezeigten Prozessor- Steuereinheit 10, um damit die Einheiten 24-2 bis 24-5 zu steuern.
Mit 26 und 27 sind Adressenleitungen des Arbeitsspeichers 23 bezeichnet. Die Adressenleitung 26 nimmt das Ausgangssignal eines Zählers 28 auf, mit dem der Bereich 23-2 adressiert wird, welcher Rechenzwischenergebnisse speichert. Die Adressenleitung 27 ist beispielsweise einer aus dem Befehlsregister 24-4 zugeführten Direktadresse aus dem Mikroprogramm zugeordnet und adressiert den Speicher­ bereich 23-1, der die Daten speichert, welche für die einzelne bzw. gesonderte Verarbeitung bei den Verarbeitungs­ vorgängen (b) und (c) erforderlich sind.
Mit 29, 30, 31 und 32 sind jeweils Wähler bezeichnet, die durch die Steuereinheit 24 gesteuert werden. Gemäß der vorstehenden Erläuterung wird das in der Recheneinheit 22 erzielte Rechenergebnis in den Arbeitsspeicher 23 eingespeichert. Die Register 17 und 18 dienen zur Datenübertragung zwischen benachbarten Elementen in der Weise, daß während des Einspeicherns des Rechenergebnisses aus dem Arbeitsspeicher 23 in das Register 18 und des darauffolgenden Übertragens des Rechenergebnisses aus dem Register 18 zu dem Register 17 des benachbarten Ver­ arbeitungselements in der Recheneinheit 22 die nächste Berechnung ausgeführt wird. Infolgedessen ist es möglich, parallel zu der normalen Verarbeitungseinheit für das Übertragen der Eingangs-Vektordaten c i , die in den nachfolgend angeführten Absätzen für die Verarbeitungs­ vorgänge (a), (b) und (c) zur Berechnung von D ÿ und S ÿ definiert sind, und für die Übertragung des Rechenergebnisses gleichzeitig gemäß der nachfolgenden Erläuterung die Verarbeitungsergebnisse (Rest N/n)-malig zu den benachbarten Elementen zu übertragen; dabei wird das Zeit­ intervall genutzt, während dessen das jeweilige Element die vorstehend beschriebenen Berechnungen ausführt, wobei der normale Verarbeitungsablauf auch dann nicht gestört wird, wenn das Eingangs-Vektordatenmuster geändert wird.
Die nachstehende Tabelle 1 zeigt eine Ausführungsform des Programmspeichers.
Felder (1) und (2) zeigen jeweils den Programminhalt für Vektorabstandsberechnungen bzw. Summenabstandsberechnungen. Das Feld (1) zeigt, wie die Vektorabstandsberechnungen parallel ausgeführt werden, während die jeweiligen Komponenten der Vektordaten c i und r i gleichzeitig eingegeben werden. Es wird der Programminhalt im Feld (2) für die Summenabstandsberechnungen erläutert. Die Befehle in einem ersten und einem vierten Teilfeld des Felds (2) entsprechen den Summenabstandsberechnungen für einen jeweiligen Gitterpunkt. Das zweite Teilfeld entspricht der Umordnung der Summenergebnisse. Das dritte Teilfeld entspricht der Verarbeitung zur Ausgabe des Summenend­ ergebnisses an einen externen Bestimmungsort.
Eine ausführliche Erläuterung erfolgt unter Zuordnen der Befehlsfolgen in dem ersten und vierten Teilfeld zu den Verarbeitungsvorgängen (a), (b) und (c). betrifft das Laden bzw. Eingeben von D ÿ , während und jeweils der Übertragung des Vergleichsergebnisses min(S i-2,j , S i-1,j ) bzw. der Eingabe von min(S i-1,j-1, S i,j-1) entsprechen. bis stellen die Ausführungsfolge der Vergleichsberechnung für min{S i-1,j , min(S i-1,j-1, S i,j-1)} dar. bis stellen die Ablauffolge für das Addieren von D ÿ zu diesem Vergleichsergebnis und damit zum Erzielen von S ÿ dar. bis entsprechen dem Eingeben von S ÿ gleichzeitig mit dem Erhalten des Vergleichsergebnisses min(S i-1,j , S ÿ ), das zu dem benachbarten Element zu übertragen ist.
Die Steuerlogik 24-1 in der Steuereinheit 24 ist derart gestaltet, daß der in Fig. 16 gezeigte Steuerungsablauf ausgeführt wird. In Fig. 16 sind mit q₁, q₂ und q₃ jeweils Steuersignale bezeichnet, die den jeweiligen Ver­ arbeitungselementen von einer externen Steuereinheit wie einem Verarbeitungscomputer zugeführt werden und die je­ weils den Eingabestatus für die Vektordaten r j , den Aus­ führungsstatus für die Umordnung und den Ausgabestatus für das Rechenendergebnis einstellen. Wenn das jeweilige Element ein Programmanlauf-Steuersignal empfängt, führt die Steuerlogik 24-1 eine Steuerung zur Eingabe der Anfangs­ adresse des Programmspeichers 24-2 in dem Programmzähler 24-3 aus. Danach nimmt die Steuerlogik 24-1 die Steuersignale q₁, q₂ und q₃ für den jeweiligen Status auf, um diese Steuersignale zu prüfen, bevor Zustandskennungen f 5,6, f₂ und f₃ gesetzt werden. Diese Kennungen f 5,6, f₂ und f₃ sind jeweils Kennungen, die ein fünftes und ein sechstes Teilfeld, das zweite Teilfeld bzw. das dritte Teilfeld der Programm-Felder (1) und (2) in Betrieb setzen. Wenn diese Kennungen gesetzt sind, wird der Programmzähler 24-3 eingeschaltet, wonach die Programme gemäß den Feldern (1) und (2) ausgeführt werden. Während der Ausführung dieser Programme werden die Kennungen f 5,6, f₂ und f₃ überwacht; dabei sendet die Steuerlogik 24-1 an das Befehlsregister 24-4 ein Steuersignal für das Maskieren derjenigen Felder, deren Programm nicht ausgeführt werden soll. Danach bestimmt die Steuerlogik 24-1 die Beendigung des Programms und überträgt ein Steuersignal zu der externen Steuereinheit, um dieser das Beenden der Verarbeitungseinheit zu melden.
Die Steuerlogik 24-1 wiederholt diese Ablauffolge von Steuervorgängen bei jeder Prozeßzeiteinheit.
Als nächstes wird erläutert, wie mittels der in Fig. 7 gezeigten Anordnung die durch die vorangehend angeführten Rechengleichungen (1), (2) und (3) dargestellten dynamischen Zeitversetzungs-Berechnungen ausgeführt werden. Eine Anpassungsberechnung bzw. Paarigkeitsberechnung gemäß der dynamischen Zeitversetzungs-Berechnung entspricht der Berechnung der Gleichungen (1) und (2) für Gitterpunkte an zweidimensionalen Gitterebenen, die durch zwei Arten von Vektordatenfolgen C u bzw. R v gebildet werden.
Fig. 8 zeigt den Ablauf von dynamischen Zeitversetzungs- Berechnungen gemäß den Gleichungen (1) und (2) für die beiden Arten von Vektordatenfolgen bei dieser Anordnung, nämlich für l c Vektordatenfolgen C u = {c u , c u , . . ., (u = 1, 2, . . ., l c )
sowie für l r Vektordatenfolgen R v = {r v , r v , . . ., (v = 1, 2, . . ., l r ).
Die aufeinanderfolgenden Ausführungen werden durch die übliche grafische Darstellung der dynamischen Zeitversetzung dargestellt. In Fig. 8 stellen gestrichelt dargestellte Diagonalen und ausgezogen dargestellte Diagonalen an dem Gitter einen Zeitpunkt hinsichtlich einer Element-Verarbeitung als Zeiteinheit dar, während ein Pfeil A die Richtung des Zeitablaufs von Zeitpunkten t₁, t₂, t₃, . . . darstellt. Das heißt, Gitterpunkte an der gleichen gestrichelten oder ausgezogenen Linie bedeuten, daß die Daten gleichzeitig in den verschiedenen Elementen auf der Linie verarbeitet werden. Da n Elemente vorgesehen sind, werden während der Verarbeitung immer gleichzeitig die n Gitterpunkte auf der Diagonale verarbeitet. Die Verarbeitung bei jeder Verarbeitungszeit bewegt sich mit der Zeit in einem mit X₁ bezeichneten Bereich aufwärts und danach fortgesetzt zu dem unteren Bereich eines Bereichs X₂. Schließlich verlagert sich die Verarbeitung zu dem oberen Bereich des Bereichs X₂. Auf diese Weise zeigt Fig. 8 eine solche aufeinanderfolgende Verarbeitung in der Art und Weise der üblichen grafischen Darstellung der dynamischen Zeitversetzung. Mit I und II sind Gruppen gestrichelter Linien bezeichnet, die nachfolgend erläutert werden.
Bei dem in Fig. 8 gezeigten Beispiel sind physikalisch gesehen nur n Verarbeitungselemente vorhanden. Das heißt, es sind nach Fig. 8 nur die n Elemente PE₁ bis PE n vorhanden, die in der Zeichnung durch die Zahlen bzw. Bezeichnungen 1 bis n in Kreisen dargestellt sind und die in schräger Richtung an der gleichen Zeitstelle liegen.
Fig. 9 veranschaulicht die Dateneingabevorgänge bei einer solchen Anordnung. In Fig. 9 ist angenommen, daß n = 6 ist. Mit 41 ist ein Verarbeitungselement bezeichnet, während mit 42 ein Datenübertragungsweg für die Übertragung von Vektordaten c i (i = 1, 2, . . ., I) und Summenergebnissen S ÿ zu einem benachbarten Element bezeichnet ist. Mit 43 ist der Fluß der Vektordaten c i auf dem Datenübertragungsweg zu einem jeweiligen Verarbeitungszeitpunkt bezeichnet. Mit 44 sind Vektordaten r j (j = 1, 2, . . ., N) an der Eingabe/Ausgabe-Sammelleitung bezeichnet, die zu einem jeweiligen Zeitpunkt in das jeweilige Element eingegeben werden müssen. Die Verarbeitungszeit schreitet längs einer Zeitsäule 45 fort, die den Zeitablauf veranschaulicht. Aus dem Element PE₁ werden aufeinanderfolgend die Eingangs-Vektordatenfolgen c₁, c₂, . . ., c₆ für die sechs Elemente eingegeben. Wenn die Aufbereitung der jeweiligen Vektordaten in dem jeweiligen Element abge­ schlossen ist, werden diese Vektordaten nacheinander zu dem rechts benachbarten Element PE übertragen. Während der Zeitdauer bis zu der Rückkehr der ersten Eingangs- Vektordaten C₁ zu dem Element PE₁ erfolgt an dem die Eingangs- Vektordaten c i (i = 1, 2, . . ., 6) führenden Datenüber­ tragungsweg mit fortschreitender Zeit aufeinanderfolgend eine Aufstufung um "1". Nach dem Zeitpunkt, an dem die Eingangs-Vektordaten c i von dem Element PE₆ zu dem Element PE₁ übertragen werden, werden zu jedem Zeitpunkt die in dem jeweiligen Element vorhandenen Eingangs-Vektordaten c₁ bis c₆ gleichzeitig zu dem je­ weils benachbarten Element übertragen. Andererseits wer­ den synchron mit den Übertragungsvorgängen für die Ein­ gangs-Vektordaten c i (i = 1, 2, . . ., 6) zwischen den jewei­ ligen Elementen aufeinanderfolgend in das jeweilige Element die Eingangs-Vektordaten r j (j = 1, 2, . . ., N) ein­ gegeben. Danach werden die Gleichungen, (1), (2) und (3) für alle Gitterpunkte berechnet, während zwischen den Elementen auf regelmäßige Weise die Daten ausgetauscht werden.
Die gestrichelten Linien in der Gruppe I in Fig. 8 zeigen an, daß nur der Multiplexer 2-1 zum Anwählen der Ein­ gangs-Vektordaten-Sammelleitung aus einer externen Quelle geschaltet wurde, daß aufeinanderfolgend Eingangs-Vektor­ datenfolgen c₁¹, c₂¹, . . ., c n¹ in einer Anzahl eingegeben wurden, die gleich der Anzahl der Verarbeitungselemente ist, und daß jedesmal dann, wenn die Verarbeitung in einem jeweiligen Element abgeschlossen ist, die Elemente PE₂ bis PE n gleichzeitig die Vektordaten c x¹ (x = 1, 2, . . ., n-1) zu dem jeweils benachbarten Element weitergeben. Die ausgezogenen Linien in der Gruppe I, die sich von den gestrichelten Linien in dieser Gruppe I weg fortsetzen, zeigen an, daß nach der Eingabe der Daten c₁ in das Element PE n alle Multiplexer 2-1 bis 2- n die Da­ tenübertragungswege zwischen den Elementen anwählen und daß die Berechnungen gemäß den Gleichungen (1), (2) und (3) ausgeführt werden, während die Eingangs-Vektordaten c₁¹, c₂¹, . . ., c n¹ umlaufend von Element zu Element übertragen werden. Ferner zeigen die gestri­ chelten Linien in der folgenden Gruppe II den Prozeß der fortgesetzten Berechnung an, die ausgeführt wird, während die Eingangs-Vektordaten c₁¹, c₂¹, . . ., c n¹ durch die nächsten n-Vektordaten c n+1¹, . . ., c I1¹, . . ., c i u ersetzt werden.
Obwohl während jedes Prozeßzeitpunkts in jedes Element die beiden Arten von Vektordaten c i u und r j v eingegeben werden, so daß in jedem Element unabhängig und parallel die Berechnung gemäß der Gleichung (1) ausgeführt wird, wird die Berechnung gemäß der Gleichung (2) ausgeführt, während die Daten zwischen den benachbarten Elementen ausgetauscht bzw. übertragen werden.
Nach Fig. 10 ist beispielsweise die Anzahl n der Verar­ beitungselemente gleich "5". Fig. 10 veranschaulicht den Verarbeitungsvorgang in jedem Element sowie die Ver­ teilung der durch das jeweilige Element überprüften Git­ terpunkte in dem Fall, daß eine durchgehende Verarbeitung für alle Kombinationen aus Vektordatenfolgen C₁ und C₂ und Vektordatenfolgen R₁ und R₂ vorgenommen wird. Nach Fig. 10 werden jeweils von demselben Element die Gruppen von Gitterpunkten verarbeitet, die von einem langgezoge­ nen Kreis umrahmt sind, wobei die Zahl an dem oberen lin­ ken Rand dieses Rahmens die Verarbeitungselement-Nummer angibt.
Zum Erreichen beispielsweise des Ergebnisses S 7,8 nach Fig. 10 sind die für die Berechnungen von S 7,8 zu einem Zeitpunkt t₁ notwendigen Daten die Daten S 6,7, S 7,7 und S 6,8, die mittels der Elemente PE₄ und PE₅ erreicht wer­ den. Da Zeitpunkte t₂ und t₃ in bezug auf den Zeitpunkt t₁ in der Vergangenheit liegen, sind die Daten S 6,8 in dem Element PE₅ vorhanden, welches das Ergebnis S 7,8 be­ rechnet, während die Daten S 6,7 und S 7,7 in dem Element PE₄ vorliegen. Daß heißt, die benötigten Daten liegen immer in dem benachbarten Element vor, so daß bei dem Ausführen der Vergleichsberechnung nach Gleichung (2) für den Wert S 7,8 in dem Element PE₄ die Berechnung min(S 6,7, S 7,7) ausgeführt wird und das Ergebnis in das Element PE₅ über­ tragen wird, in dem die Berechnung min{S 6,8, min(S 6,7, S 7,7)} ausgeführt wird.
In diesem Fall muß gemäß der vorangehenden Erläuterung zum Aufteilen der Eingangs-Vektordaten C₁, C₂, . . ., C 1c in Gruppen in einer Anzahl, die gleich der Anzahl n der Verarbeitungselemente ist, und zu deren Eingabe in die Anordnung der Wert S ÿ, der gemäß Fig. 10 den mit einer schrägen Linie markierten Gitter­ punkten entspricht, in ein vorbestimmtes Element übertra­ gen werden, bevor der Austausch der Eingangs-Vektordaten beginnt. Beispielsweise ist es erforderlich, daß der in dem Element PE₁ vorliegende Wert S 5,1 zum Element PE₃, der Wert S 5,2 aus dem Element PE₂ zu dem Element PE₄, der Wert S 5,3 aus dem Ele­ ment PE₃ zu dem Element PE₅, der Wert S 5,4 aus dem Element PE₄ zu dem Element PE₁ bzw. der Wert S 5,5 aus dem Element PE₅ zu dem Ele­ ment PE₂ übertragen wird.
Allgemein beginnen von dem Zeitpunkt an, der um die
Zeiteinheiten entsprechende Zeit vor dem Beginn des Austauschs der n Vektordaten liegt, nämlich bei dem in Fig. 10 gezeigten Beispiel von dem Zeitpunkt an, der um die
Zeiteinheiten entsprechende Zeit vor dem Beginn liegt, alle Elemente die Vorgänge des gleichzeitigen Übertragens der zu diesem Zeitpunkt in den jeweiligen Elementen gespeicherten Summenergebnisse S pn,j (p = 1, 2, . . .) zu den jeweils benachbarten Elementen. Die Übertragung dieser Daten erfolgt jeweils einzeln für jede Verarbeitung der Elemente unter Nutzung der Zeitdauer, während der die Elemente nur die Rechenverarbeitung gemäß der vorstehenden Beschreibung parallel mit den re­ gelmäßigen Verarbeitungsvorgängen (a), (b) und (c) gemäß der Beschreibung in den nachfolgenden Absätzen ausführen; dadurch ist es möglich, einem vorbestimmten Element die erforderlichen Daten S pn,j bis unmittelbar vor dem Aus­ tausch der n Eingangs-Vektordatenfolgen zuzuführen.
Bei dem in Fig. 10 gezeigten Beispiel werden parallel mit der Verarbeitung für Gitterpunkte (c₁¹, r₆²) in dem Ele­ ment PE₁ die an den gleichen Adressen in den Arbeits­ speichern 23-2 der Elemente PE₁, PE₂, PE₃, PE₄ bzw. PE₅ vorliegenden Daten S 5,1, S 5,2, S 5,3, S 5,4 bzw. S 5,5 je­ weils zu den benachbarten Elementen übertragen und den Elementen PE₂, PE₃, PE₄, PE₅ bzw. PE₁ zugeordnet. Glei­ chermaßen werden bei der Verarbeitung für den Gitterpunkt (c₂¹, r₆²) im Element PE₁ die Daten den Elementen PE₃, PE₄, PE₅, PE₁ bzw. PE₂ zugeordnet, wonach dann die Daten­ übertragung abgeschlossen ist.
Bei der Verarbeitung unmittelbar nach dem Austausch gegen die nächste Eingangs-Vektordatenfolge c₅¹, c₆¹, c₁¹ und c₁², der bei der Verarbeitungszeit für einen nächsten Gitterpunkt (c₃¹, r₆²) im Element PE₁ auftritt, werden mittels der Elemente PE₃, PE₄, PE₅, PE₁ und PE₂ die Verarbeitungsvorgänge (a), (b) und (c) ausgeführt, wobei die durch die vorrangehend beschriebenen zwei Übertragun­ gen erhaltenen Daten S 5,1, S 5,2, S 5,3, S 5,4 und S 5,5 herangezogen werden. Durch wiederholtes Ausführen dieser Verarbeitung kann jedes Verarbeitungsele­ ment regelmäßig und aufeinanderfolgend die dynamische Zeitversetzungs-Berechnung gemäß den Gleichungen (1), (2) und (3) ausführen.
Gemäß der vorstehenden Beschreibung führt während des wiederholten Änderns des Ausgangssignals bzw. Austau­ schens und der Ringübertragung von n Vektordaten der Ein­ gangs-Vektordatenfolge C u (u = 1, 2, . . ., 1 c) sowie während der mit dieser Eingabe und Ringübertragung dieser Vektor­ daten c i u (i = 1, 2, . . ., I u) synchronen Eingabe der Vektor­ daten r j v (j = 1, 2, . . ., N v) in das jeweilige Element jedes Verarbeitungselement für einen jeweiligen Gitter­ punkt wiederholt die Berechnung gemäß den Gleichungen (1), (2) und (3) aus, so daß die Verarbeitung für alle Gitterpunkte abgeschlossen wird.
Faßt man die vorstehenden Ausführungen zusammen, so sind die normalen Verarbeitungsvorgänge (zur üblichen Verar­ beitung) für ein Verarbeitungselement bei dem Ausführen der Berechnung gemäß den Gleichungen (1) und (2) die fol­ genden:
  • (a) Gleichzeitig mit der über die Eingangs-Vektordaten-Sammelleitung erfolgenden Eingabe der Vektordaten c i (i = 1, 2, . . ., I) aus dem links benachbarten Element oder aus einer externen Quelle werden die Vektordaten c i-1 in das rechts benachbarte Element übertragen und synchron mit der Über­ tragung dieser Vektordaten über die Eingabe/Ausgabe-Sam­ melleitung die Vektordaten r j (j = 1, 2, . . ., N) eingegeben, so daß die Berechnung gemäß der Gleichung (1) ausgeführt wird, um D ÿ zu erhalten.
  • (b) Es wird die Vergleichsberechnung von min{S i-1,j , min(S i-1, j-1, S i,j-1)} vorgenommen und zu diesem Ergeb­ nis D ÿ addiert, um S ÿ zu erhalten.
  • (c) Es wird die Vergleichsberechnung für min(S i-1,j , S ÿ) ausgeführt und das Ergebnis zu dem benachbarten Ele­ ment übertragen. Zugleich wird das Ergebnis der Ver­ gleichsberechnung für min(S i,j-1, S i+1,j-1) aus dem links benachbarten Element eingegeben.
Der Verarbeitungsvorgang (a) entspricht dem Ausführen der Berechnung gemäß der Gleichung (1), während die Verarbei­ tungsvorgänge (b) und (c) der Ausführung der Berechnungen gemäß den Gleichungen (2) und (3) entsprechen. Gleich­ zeitig führt jedes Element die Verarbeitungsvorgänge in der Aufeinanderfolge (a), (b) und (c) aus. Das heißt, während der Ausführung des Vorgangs (a) wird dieser Vorgang in allen Elementen ausgeführt. Ebenso wird bei Ausführung des Vorgangs (b) dieser Vorgang in allen Elementen ausgeführt.
Ein Unterschied zwischen diesen Betriebsvor­ gängen und den Betriebsvorgängen in einer Orthogonal- Matrixanordnung besteht in der Datenübertragung bei der Ausführung der Berechnung gemäß Gleichung (2). Bei dem Betriebsvorgang in einer Orthogonalmatrix wird die Ver­ gleichsberechnung für min(S i,j-1, S i-1,j-1) ausgeführt, nachdem das Summenergebnis S i-1,j-1 zu dem links benachbarten Element übertragen wurde, während bei den Betriebsvorgängen im erfindungsgemäßen Matrixprozessor die bei dem nächsten Prozeßzeitpunkt zu erhaltenden Da­ ten S i-1,j-1 und S i,j-1 im gleichen Element vorliegen, so daß die Vergleichsberechnung auch ohne Datenübertragung ausgeführt wrden kann.
Bei der Ausführung der Berechnung gemäß Gleichung (4) können die Summenergebnisse regelmäßig auf die vorstehend beschriebene Weise dadurch erzielt werden, daß zweierlei einfache Rechenvorgänge ausgeführt werden. Das heißt, es wird ein einzelner Verarbeitungsvorgang (d), bei dem das Sum­ menergebnis aus dem benachbarten Element eingegeben wird, zu diesem Datenwert zweifach der Wert des in dem Element errechneten Vektorzwischenabstands addiert wird und das Additionsergebnis an das benachbarte Element abgegeben wird, und ein Verarbeitungsvorgang (e) ausgeführt, bei dem das Summenergebnis aus dem benachbarten Element ein­ gegeben wird, zu diesem Datenwert der Vektorzwischenab­ stand addiert wird und das Ergebnis gespeichert wird. Ge­ mäß der vorstehenden Erläuterung wird bei dem erfindungs­ gemäßen Matrixprozessor die Anzahl der Verarbeitungsele­ mente völlig unabhängig von den positiven ganzen Zahlen I u und N v, welche jeweils die Anzahl der jeweils zu ver­ arbeitenden Vektordaten darstellen; damit kann die Anzahl der Verarbeitungselemente auf einen geeigneten Wert ent­ sprechend dem geschätzten Umfang der Datenverarbeitung gewählt werden. Der Matrixprozessor er­ möglicht es, die dynamischen Zeitversetzungs-Berechnun­ gen durch parallele Vektorverarbeitung (pipeline parallel processing) auszuführen, die durch den vollen bzw. stän­ digen Betrieb der Elemente, die wiederholt die regelmäs­ sigen Verarbeitungsvorgänge ausführen, die Ausnutzung der Schaltungsanordnung mit maximalem Wirkungsgrad ergibt.
Infolgedessen können die Systemabmessungen des Matrixprozessors bei der Herstellung in hochintegrierter Technik (LSI-Technik) im Gegensatz zur herkömmlichen Orthogonalmatrix, bei der die Anzahl der Verarbeitungselemente entsprechend den positi­ ven ganzen Zahlen I u und N v festgelegt ist, außerordentlich klein gehalten werden, wobei ferner die Schaltungsausstattung wirkungsvoll genutzt werden kann. Ferner besteht bei dem Matrixprozessor die Möglichkeit zur Erweiterung der Anzahl der Verarbei­ tungselemente. Das heißt, die Verarbeitung für Vektordatenfol­ gen in irgendeiner gewünschten Anzahl N v und I u kann unabhängig von der Anzahl der Verarbeitungselemente aus­ geführt werden.
Als nächstes werden die Leistungen der Orthogonalmatrix und des hier beschriebenen Matrixprozessors im Hinblick auf den Durchsatz je Verarbeitungselement und je Zeitein­ heit verglichen, wobei ein mittlerer Nutzungsgrad der Verarbeitungselemente in Betracht gezogen wird.
Bei den beiden Arten von Verarbeitungsinhalten in der Orthogonalmatrix, die aus den vorangehend genannten Ver­ arbeitungsvorgängen (i) und (iii) bzw. (ii) und (iv) be­ stehen, wird angenommen, daß die jeweils größere Schritteanzahl gleich U square ist; ferner wird vorausgesetzt, daß die Anzahl der dynamischen Schritte bei der aus den Verarbeitungsvorgängen (a), (b) und (c) bestehenden Verarbeitung in jedem Element des Matrixprozessors gleich U ring ist. Bei der Orthogonal­ matrix sind zum Fertigstellen der auf der dynamischen Zeitversetzung beruhenden Anpassungsberechnung für ein Vektordatenpaar durch Anwendung des Verfahrens des ab­ wechselnden Ausführens der beiden Arten von Verarbeitungen (i) und (iii) bzw. (ii) und (iv) 2U square Schritte erforderlich.
Falls bei der zur Diskussion stehenden Anpassungsberech­ nung gemäß der dynamischen Zeitversetzung ein Element PE ÿ die Ausführung der Berechnung gemäß den Gleichungen (1), (2) und (3) für eine einzelne Vektordatenfolge R zum Erzielen des Summenergebnisses S ÿ vollendet, braucht das Element PE ÿ die Verarbeitung für diese Vektordatenfolge R nicht auszuführen, wenn ein Element PE i′j′ (i′<i, j′<j) diese Berechnung gemäß diesen Gleichungen ausführt. Daher kann bei der Ausführung der Verarbeitung für eine Vektordatenfolge R v ein nicht zu dieser Verarbeitung beitragendes Element der Verarbeitung für eine weitere Vektordatenfolge R v′ zugeordnet werden. Das heißt, während das Summenergebnis S ÿ für eine erste Vektordatenfolge R₁ be­ rechnet wird, kann auch die Berechnung des Summenergeb­ nisses S ÿ für eine zweite Vektordatenfolge R₂ unter einer Phasendifferenz von 2U square Schritten ausgeführt wer­ den. Bis zum Erhalten des Rechenergebnisses für Vektordatenfolgen I u und für Vektordatenfolgen R v ist be­ ruhend auf der zum Erhalten von S IJ benötigten Einheit 2U square der Anzahl dynamischer Schritte die Schritte­ anzahl (Nmax+Imax) erforderlich, so daß innerhalb der Zeitdauer der (Nmax+Imax) Schritte (Nmax+Imax) Arten von Summen-Endergebnissen erzielt werden können.
Andererseits wird die Anpassungsverarbeitung zwischen Eingangs- Vektordatenfolgen R₁, R₂, . . ., R lr und jeweils n Vektor­ datenfolgen der Eingangs-Vektordatenfolgen C₁, C₂, . . ., C lc wiederholt, so daß das Summen-Endergebnis erreicht wird.
Aufgrund der vorstehend beschriebenen Verarbeitungsvor­ gänge der gesamten Anordnung ergibt sich der Wirkungsgrad der Verarbeitungselemente bei der Verarbeitung für alle Kombinationen aus Vektordatenfolgen C₁, C₂, . . ., C lc und Vektordatenfolgen R₁, R₂, . . ., R lr folgendermaßen:
Orthogonalmatrix
Zum Erzielen der Endergebnisse für l r · l c sind (Nmax+Imax+ l r+l c) Schritte in der Einheit 2U square erforderlich. Da die Anzahl der Elemente Nmax · Imax ist, ergibt sich der Wirkungsgrad des Elements durch die folgende Gleichung:
Hier beschriebener Matrixprozessor
Mit U ring als Verarbeitungsschritteinheit beträgt die An­ zahl der Verarbeitungsschritte während des Vorgangs für den Austausch der n Eingangs-Vektordatenfolgen n Schritte und die Anzahl der während der Ringübertragung der Ein­ gangs-Vektordaten auszuführenden Verarbeitungsschritte
Schritte. Die Verarbeitung der Eingangs-Vektordatenfolgen C₁, C₂, . . ., C lc wird auf eine Weise vorgenommen, die äquivalent der Verarbeitung einer einzigen Eingangs-Vek­ tordatenfolge ist; daher ergibt sich die Anzahl der zum Erhalten der Endergebnisse für l r · l c erforderlichen Schritte durch folgende Gleichung:
Der erste Ausdruck in der Gleichung (6) stellt die An­ zahl der Schritte während der Ringübertragung dar. Der zweite Ausdruck stellt die Anzahl der Schritte während des Austauschs der Eingangs-Vektordaten dar. Der dritte Ausdruck stellt die Anzahl der Schritte bei der ersten und der letzten Stufe der gesamten Anpassungsverarbei­ tung dar. Ferner gilt
Da n Elemente vorhanden sind, beträgt der Wirkungsgrad η ring des Elements:
Falls mit N av der Mittelwert aus N₁, N₂, . . ., N lc be­ zeichnet wird und mit I av der Mittelwert aus I₁, I₂, . . ., I lc bezeichnet wird, gilt jeweils
so daß die Gleichung (7) folgendermaßen umge­ schrieben werden kann:
Die Nenner und Zähler mit Ausnahme von "1" bei dem dritten Ausdruck der Gleichung (8) betreffen den Wirkungsgrad jeder Matrixanordnung bei der ersten und letzten Stufe der gesamten Anpassungsverarbeitung. Infolgedessen ergibt sich das Verhältnis der Wirkungsgrade der Verarbeitungs­ elemente bei der Verarbeitung durch:
Nimmt man an, daß jedes Verarbeitungselement in der Ortho­ gonalmatrix eine Einrichtung hat, die das gleichzeitige Ausführen von Eingabe- und Ausgabevorgängen zuläßt, dann gilt 2U square=U ring sowie Nmax<N av und Imax<I av; somit ergibt der beschriebene Matrixprozessor immer einen verbesserten Wirkungsgrad, der höher als derjenige der Orthogonalanordnung ist. Wenn beispielsweise N av=3/4 Nmax und I av=3/4 Imax gilt, hat die erfindungsgemäße Anord­ nung einen Wirkungsgrad, der ungefähr 1,8 mal größer als derjenige der Orthogonalanordnung ist. Falls die herkömmliche Orthogonalanordnung eine Einrichtung hat, die während jeder Verarbeitung in einem jeweiligen Ele­ ment nur das abwechselnde Ausführen der Eingabe- und Aus­ gabevorgänge zuläßt, gilt 2U square<U ring. Dies be­ deutet, daß der relative Wirkungsgrad des beschriebenen Matrixprozessors im Vergleich zu demjenigen der Or­ thogonalmatrix sogar noch höher ist.
Die Systemabmessungen bei der Orthogonalmatrix sind aus­ serordentlich groß, da mindestens (Nmax · Imax) Verarbei­ tungselemente angeordnet und verbunden werden mußten. Da­ her wird bei den herkömmlichen Anordnungen für die Ein­ gabe und Ausgabe an einem jeden Element das Seriellbit­ verfahren angewandt, um das Element kompakt zu gestalten. Da jedoch bei der in Betracht gezogenen Anpassungsberech­ nung unter dynamischer Zeitversetzung die zu verarbeiten­ den Daten Vektordaten sind, bei denen als Einzeldaten ge­ mäß Gleichung (1) die Datenfolgen einer bestimmten Dimen­ sion vorliegen, nimmt die Anzahl der Übertragungsschritte zwischen Verarbeitungselementen außerordentlich zu, falls die Daten in der Form serieller Bitströme eingegeben und ausgegeben werden; infolgedessen ist für die gesamten Be­ rechnungsvorgänge eine längere Zeit erforderlich. Anderer­ seits kann bei dem Matrixprozessor die Anzahl der Verarbeitungselemente beträchtlich verringert werden, so daß hinsichtlich der Abmessungen des Matrixprozessors keinerlei Probleme entstehen, selbst wenn die Daten zwi­ schen den Elementen parallel übertragen werden; die Gestaltung des Matrixprozessors ist sehr gut zur Verarbeitung von Vektordaten wie solchen geeignet, die bei der in Betracht gezogenen Anpassungsberechnung unter dynamischer Zeitversetzung verarbeitet werden.
Obwohl sich die vorstehende Erläuterung hauptsächlich auf die mit den Gleichungen (1), (2) und (3) dargestellten dynamischen Zeitversetzungs-Berechnungen bezieht, besteht bei dem beschriebenen Matrixprozessor keine Einschrän­ kung auf diese Berechnungen; vielmehr kann der Prozessor gleichermaßen dann verwendet werden, wenn beispielsweise gemäß der vorstehenden Beschreibung die Gleichung (2) durch die Gleichung (4) ersetzt wird; ansonsten kann der Matrixprozessor auch zur Ausführung von Be­ rechnungen für alle Kombinationen zweier Arten von Variab­ len und für irgendwelche Rekursivformelgleichungen mit örtlicher Abhängigkeit der Daten unter Verwendung dieser Rechenergebnisse verwendet werden.
Bei dem Matrixprozessor sind die Verar­ beitungselemente mit vorbestimmten Eingabe/Ausgabevor­ richtungen und Rechenvorrichtungen ringförmig über Multi­ plexer verbunden, mit denen entweder ein Datenübertragungs­ weg für den Datenaustausch mit benachbarten Elementen oder eine externe Eingabe-Sammelleitung gewählt wird. Ferner sind diese Verarbeitungselemente so gestaltet, daß paral­ lel zu der üblichen Verarbeitung in jedem Element die gleichzeitige Übertragung der jeweiligen Verarbei­ tungsergebnisse durch alle Elemente zu benachbarten Ele­ menten in einer vorbestimmten Häufigkeit ausgeführt wird. Diese Gestaltung macht es möglich, die Berechnungen für alle Kombinationen zweier Arten von Variablen und für irgendwelche Rekursivformelgleichungen mit Ortsabhängig­ keit der Daten unter Verwendung der Ergebnisse dieser Be­ rechnung, wie es bei der Anpassungsberechnung unter dyna­ mischer Zeitversetzung (dynamic time warping) typisch ist, mit einer Anordnung aus einer dem Umfang der auszuführen­ den Berechnung entsprechend geeigneten Anzahl von Verar­ beitungselementen durch Parallelverarbeitung mit hohem Wirkungsgrad auszuführen, während alle Verarbeitungsele­ mente mit hohem Wirkungsgrad arbeiten.
Bei der durch die Gleichungen (1) bis (3) dargestellten Berechnung wird als Endergebnis der Verarbeitung der Wert S i,N gefordert. Ein Verfahren zum Steuern des Matrixprozessors wird nun anhand eines Falls erläutert, bei dem die vorangehend genannten dynamischen Zeitversetzungs-Berechnungen im Hinblick auf alle Kombi­ nationen aus einer einzigen Vektorfolge C und l Vektorfol­ gen R p (p = 1, 2, . . ., l) ausgeführt werden, um als Endergeb­ nis S i p, N p zu erhalten.
Fig. 11 zeigt ein Ausführungsbeispiel für die Gestal­ tung eines Matrixprozessors, bei dem Verarbeitungselemente ringförmig angeordnet und verbunden sind. Nach Fig. 11 sind n Verarbeitungselemente vorgesehen (nN p). An die­ sem Matrixprozessor wird das nun beschriebene Steuerver­ fahren angewandt.
In Fig. 11 ist mit 51 ein Verarbeitungselement (PE) be­ zeichnet, das eine Recheneinheit zur Addition, Subtraktion, Vergleichsberechnung und Produktsummenberechnung enthält, die für die Berechnung gemäß der vorangehend genannten Gleichung (1) erforderlich sind. Das Element 51 hat Regi­ ster für den Datenaustausch mit einem benachbarten Ele­ ment und mit einer externen Quelle, einen Speicher zum Speichern von Rechenergebnissen und übertragenen Daten sowie eine Steuereinheit zum Steuern eines jeweiligen Ab­ schnitts eines Mikroprogrammspeichers, der Betriebsvorgänge zur Verarbeitung in dem Element enthält. Mit 52-1 bis 52- n sind Multiplexer bezeichnet, die entweder eine externe Sammelleitung 53, welche aus einer externen Quelle zu ei­ nem Zeitpunkt n Eingangsvektordaten c i (entsprechend der Anzahl n der Elemente) eingibt, oder einen Datenübertra­ gungsweg 55 anwählen, auf dem Eingangs-Vektordaten c i aus einem benachbarten Element übertragen werden. Mit 54 ist eine Eingabe/Ausgabe-Sammelleitung bezeichnet, die für die Eingabe von Eingangs-Vektordaten r j p sowie für die Ausgabe der Rechenendergebnisse S i p, N p an einen externen Bestimmungsort eingesetzt wird. Der Datenübertragungsweg 55 überträgt die Daten c i und Zwischenergebnisse S ÿ p (j = 1, 2, . . ., N p-1) zwischen den Elementen. Mit 56 sind an die Sammelleitung 54 angeschlossene Eingabe/Ausgabe-An­ schlüsse der jeweiligen Elemente bezeichnet. Mit 57 ist ein Gesamtsteuersystem wie ein Verarbeitungscomputer be­ zeichnet, der den jeweiligen Elementen Steuersignale 58 liefert. Mit 59, 60 und 61 sind jeweils Eingangs-Vektor­ datenfolgen C, Eingangs-Vektordatenfolgen R p (p = 1, 2, . . ., l) bezeichnet.
Bei dem dermaßen gestalteten Matrixprozessor laufen die dynamischen Zeitversetzungs-Berechnungen gemäß den Glei­ chungen (1) bis (3) folgendermaßen ab:
Datenfolgen, die durch das Aufteilen von Eingangs-Vektor­ datenfolgen C in Folgen n Daten (entsprechend der An­ zahl n der Elemente) erzielt werden, sind folgendermaßen gegeben:
S k = (C kn-1, C kn-2, . . ., C kn+q, . . ., C (k+1)n )
wobei k = 0, 1, 2, . . .; q = 1, 2, . . ., n-1 und kn+qI gilt. Der Verarbeitungsablauf beinhaltet das wiederholte Aus­ führen folgender Vorgänge (I) bis (V) für k=0, 1, 2, . . .:
  • (I) Der Multiplexer für das Element, das in der Aufeinanderfolge in Zählung von dem Element her angeordnet ist, in welchem die Verar­ beitung zwischen der Eingangs-Vektordatenfolge S k-1 und allen Eingangs-Vektordatenfolgen R p (p = 1, 2, . . . l) beginnt, wird auf die externe Sammelleitung ge­ schaltet, um die Eingabe einer nachfolgenden Ein­ gangs-Vektordatenfolge S k aufzunehmen. Synchron mit dieser Dateneingabe beginnt die Berechnung für alle Eingangs-Datenfolgen R p, während in jedes Element aufeinanderfolgend die Eingangs-Vektordaten r j p ein­ gegeben werden. Wenn k=0 gilt, wird der Multiple­ xer für irgendein Element auf die extreme Sammel­ leitung geschaltet und diese Verarbeitung ausge­ führt.
  • (II) Die Eingangs-Vektordatenfolge S k wird in die An­ ordnung eingegeben; wenn die Datenfolge S k bildenden Daten den verschiedenen Elementen zuge­ ordnet sind, wählen alle Multiplexer die Datenüber­ tragungswege zwischen den Elementen. Zugleich werden in allen Elementen die Daten ringförmig zwi­ schen den Elementen übertragen; während synchron mit dieser Datenübertragung in das jeweilige Ele­ ment die Eingangsdaten r j p eingegeben werden, werden für alle Eingangs-Datenfolgen R p die Berechnungen gemäß den Gleichungen (1) bis (3) ausgeführt.
  • (III) Bei der Verarbeitung bei den Vorgängen (I) und (II) wird das Rechenergebnis S i p, N p für jede Eingangs- Vektordatenfolge R p an einen externen Bestimmungs­ ort ausgegeben.
  • (IV) Bei der Verarbeitung bei den Vorgängen (I) und (II) wird das Rechenergebnis S p (k+1)n,j für die letzten Daten c (k+1)n in jeder Eingangs-Vektor­ datenfolge S k in den internen Speicher des Ele­ ments eingespeichert, das diese Berechnung aus­ führt.
  • (V) Bei der Verarbeitung bei den Vorgängen (I) und (II) beginnt um Prozeßzeiteinheiten vor dem Zeit­ punkt, an dem der Austausch der Eingangs-Datenfolge S k beginnt, jedes Element gleichzeitig einmal je Prozeßzeiteinheit einen einzigen Datenwert des in seinen internen Speicher gespeicherten Rechener­ gebnisses zu übertragen (wobei die Prozeßzeiteinheit die Zeit ist, die für die Ausführung der Verarbeitung in jedem Element erforderlich ist). Das heißt, die Übertragung wird insgesamt vorge­ nommen. Ferner wird während der Ringübertragung der Eingangs-Vektordaten C i die Übertragung der Rechen­ ergebnisse zwischen den Elementen in allen Elemen­ ten bei jeweils Prozeßzeiteinheiten wiederholt. Einmal je Prozeßzeiteinheit wird ein einzel­ nes Rechenergebnis für ein jeweiliges Element über­ tragen, so daß insgesamt Übertragungen erfolgen.
Das Steuerverfahren zum Steuern einer solchen Verarbeitung wird nachfolgend in Absätzen (A) und (B) erläutert.
Fig. 12 zeigt ein Beispiel für Kennungen, die für das Ausführen des Steuerverfahrens den Ein­ gangs-Vektordaten hinzugefügt werden. Mit 61 und 62 sind Kennungen bezeichnet, die den Kopf bzw. das Ende jeder Datenfolge anzeigen. Mit 63 sind Kennungen für das Einstellen der Zeit zur gleichzeitigen Übertragung der Rechenergebnissen aller Elemente unmittelbar vor dem Aus­ tausch der Eingangs-Vektordatenfolge S k bezeichnet, wäh­ rend mit 64 Eingangs-Vektordaten r j p bezeichnet sind.
  • (A) Gemäß Fig. 12 werden für jede Eingangs-Vektorda­ tenfolge R p den entsprechenden Eingangs-Vektordaten r j p die drei Bits der Kennung 61 und 62 für das Anzeigen des Kopfs und des Endes einer jeden Datenfolge sowie der Ken­ nung 63 für das Wählen der Zeit für das gleichzeitige Übertragen der Rechenergebnisse aller Elemente unmittelbar vor dem Austausch der Eingangs-Vektordatenfolge S k hinzu­ gefügt.
  • (B) Jedes Verarbeitungselement hat ein Zustandsken­ nungsregister für das Speichern von Informationen für das Beurteilen der Rolle, die das jeweilige Element bei der Verarbeitung in der gesamten Anordnung zu spielen hat, nämlich von Informationen über den Eingabezustand der Eingangs-Vektordaten r j p und über Zählvorgänge für die Anzahl gleichzeitiger Übertragungen der Rechenergebnisse zwischen allen Elementen bzw. von Umordnungsvorgängen.
Fig. 13 zeigt ein Beispiel eines Steuervorgangs des Zustandkennungsregisters in einem Element, nämlich einen Vorgang für die aufeinanderfolgende Eingabe der Ein­ gangs-Vektordaten r j p in das jeweilige Element. Mit 66 ist ein Zustandkennungsregister bezeichnet, das eine Eingabe­ kennung 67 für die Bestimmung eines Eingabezustands der Eingangs-Vektordaten r j p und eine Zahlkennung 68 für die Zählung der Anzahl von Übertragungen enthält, die bei der Umordnung bzw. Neuzuordnung erforderlich sind.
Mit 51 ist das Verarbeitungselement bezeichnet. Mit 54 ist die externe Eingabe/Ausgabe-Sammelleitung bezeichnet. Mit 55 ist der Datenübertragungsweg zwischen den Elementen bezeichnet.
Bei jeder Prozeßzeiteinheit wird der Inhalt des Zustandkennungs­ registers 66 zu dem benachbarten Element übertragen, wobei der Inhalt dazu dient, den jeweiligen Zustand in dem jeweiligen Element einzustellen, bevor zum nachfolgenden Pro­ zeßzeitpunkt die Verarbeitung beginnt. Die Eingangs-Vektordaten r j p werden in dasjenige Element eingegeben, dessen Kennung 67 "1" ist. Der Inhalt des Zustandkennungsregisters 66 wird aufeinanderfolgend bei jeder Prozeßzeiteinheit zu dem be­ nachbarten Element weitergegeben, so daß die Eingangs-Vek­ tordaten r4742 00070 552 001000280000000200012000285912463100040 0002003506749 00004 24623A<j p aufeinanderfolgend in die jeweiligen Elemente eingegeben werden. Währenddessen werden synchron mit der aufeinanderfolgenden Eingabe der Eingangs-Vektordaten rj p die Eingangs-Vektordaten ci ringförmig in allen Elementen umgewälzt. Bei der Anfangseinstellung wird die Kennung 67 in dem Zu­ standskennungsregister eines der Elemente auf "1" ge­ setzt, während die Kennungen 67 der übrigen Elemente auf "0" gesetzt werden. Die beiden Arten von Steuerungsmaßnahmen bzw. Steuerungs­ vorgängen gemäß den Absätzen (A) und (B) werden kombiniert, so daß die Steuerung der Betriebsvorgänge ei­ nes vorstehend beschriebenen Matrixpro­ zessors entsprechend den vorangehend genannten Betriebs­ vorgängen (I) bis (V) erfolgt. Die Fig. 14A bis 14E veranschaulichen ein Beispiel für einen Steuerungsvorgang in dem Fall, daß der Matrixprozessor nach Fig. 11 die auf der dynamischen Zeitversetzung beruhende Anpassungsberechnung für n=5, l=2, N₁=6 und N₂=7 ausführt. In diesen Fig. ist mit 51 das Verarbeitungselement be­ zeichnet, mit 52 der Multiplexer für das Wählen entweder des Datenübertragungswegs 55 oder der externen Sammellei­ tung 53 bezeichnet und mit 54 die externe Eingabe/Ausgabe- Sammelleitung bezeichnet. Mit 66 ist das Zustandkennungs­ register bezeichnet, das die Kennung 67 für das Bestimmen des Eingabezustands der Eingangs-Vektordaten rj p und die Kennung 68 für das Zählen der Anzahl von während der Um­ ordnung bzw. Neuzuordnung ausgeführten Übertragungen ent­ hält. Mit 69 ist der durch die Umordnung bei der jeweiligen Prozeßzeit umzuordnende Datenwert bezeichnet. In der nach­ folgenden Erläuterung werden durchgehend die vorangehend genannten verschiedenen Kennungen folgen­ dermaßen bezeichnet: Den Eingangs-Vektordaten rj p hinzugefügte Kennungen: Kennung 61 = Kopfkennung Kennung 62 = Endkennung Kennung 63 = Übertragkennung Kennungen in dem Zustandkennungsregister 66: Kennung 67 = Eingabekennung Kennung 68 = Zählkennung Die Fig. 14A bis 14E veranschaulichen die Verarbeitungs­ vorgänge des Elements bei einem jeweiligen Prozeßzeitpunkt von einem Prozeßzeitpunkt (t+1), bei dem die Eingangs-Vektordaten­ folge S₁=(c₁, c₂, c₃, c₄, c₅) durch die Eingangs-Vektor­ datenfolge S₂=(c₆, c₇, c₈, c₉, c₁₀) ersetzt wird, bis zu einem Prozeßzeitpunkt (t+20), bei der die Eingangs-Vektorda­ tenfolge S₂ durch die nächste Eingangs-Vektordatenfolge S₃=(c₁₁, c₁₂, c₁₃, c₁₄, c₁₅) ersetzt wird, sowie die Steuerungszustände zu den jeweiligen Prozeßzeitpunkten. Die Zeiteinheit ist diejenige Zeit, die je­ des Verarbeitungselement für die Verarbeitung gemäß den Gleichungen (1) bis (3) in dem Element benötigt. Der Prozeßzeitpunkt (t+1) entspricht der Zeit, die um vor dem Prozeßzeitpunkt (t+4) liegt, bei dem der Austausch der Vektordatenfolge S₁ durch die Vektordatenfolge S₂ beginnt. Unmittelbar vor diesem Prozeßzeitpunkt (t+1) wird jedem Element ein nachste­ hend als Austauschsignal bezeichnetes Steuersignal zuge­ führt, das die Ausführung des Austauschens der Eingangs- Datenfolge Sk befiehlt. Nur das Element PE₁, welches die Information speichert, daß das Element das erste Element ist, in dem die Verarbeitung der eingegebenen Datenfolge S₁ beginnt, nimmt dieses Austauschsignal auf und bereitet den Beginn der Umordnung bzw. Neuzuordnung vor. Bei der vorangehend mit (II) bezeichneten Steuerung wird den letzten fünf Datenwerten r₃², r₄², r₅², r₆² und r₇² der Ein­ gangs-Vektordatenfolgen R₁ und R₂ die Übertragkennung "1" hinzugefügt. Daher nimmt das Element PE₁, dessen Eingabe­ kennung in dem Zustandkennungsregister zum Prozeßzeitpunkt (t+1) "1" ist, aus diesen Datenwerten den Datenwert r₅² auf, um zu ermitteln, daß die Übertragkennung "1" ist, und da­ mit den Beginn der Umordnung zu erkennen, wobei das Element die Zählkennung auf "1" setzt. Zur gleichen Zeit wird die Übertragkennung als "1" bewertet und es wird allen Ele­ menten aufeinanderfolgend der Beginn der Umordnung (in der Richtung des in den Fig. gestrichelt dargestellten Pfeils) gemeldet. Damit werden alle Elemente in einen Übertrags­ zustand für die Umordnung geschaltet. Als nächstes wird durch alle Ele­ mente parallel mit der Berechnung gemäß den Gleichungen (1) bis (3) auch das Ergebnis der Berechnung übertragen. Bei dem Prozeßzeitpunkt (t+1) werden aus den jeweiligen Elementen die (jeweils in den Elementen PE₁, PE₂, PE₃, PE₄ bzw. PE₅ erzielten) Rechenergebnisse S5,1¹, S5,2¹, S5,3¹, S5,4¹ und S5,5¹ aus dem jeweiligen internen Speicher als erste Übertragungs­ daten ausgelesen und durch die Verarbeitung zu diesem Zeitpunkt zu dem benachbarten Element übertragen. Daher werden diese Daten S5,5¹, S5,1¹, S5,2¹, S5,3¹ und S5,4¹ bis zum Beginn der Verarbeitung bei dem Prozeßzeitpunkt (t+2) jeweils in die Elemente PE₁, PE₂, PE₃, PE₄ und PE₅ umgeordnet. Die zum Prozeßzeitpunkt (t+2) in das Element PE₂ eingegebenen Vek­ tordaten r₆² enthalten keine Information für das Rückstellen des Umordnungszustands, so daß zu diesem Zeitpunkt die Um­ ordnung fortgesetzt wird. Daher werden vor dem Beginn der Verarbeitung bei dem Prozeßzeitpunkt (t+3) diese Daten in die Aufeinanderfolge S5,4¹, S5,5¹, S5,1¹, S5,2¹ und S5,3¹ umgeordnet. Durch das Wiederholen dieser Varbeitung werden diese Da­ ten vor dem Beginn der Verarbeitung zum Prozeßzeitpunkt (t+4) in die vorbestimmten Elemente in der Aufeinanderfolge S5,3¹, S5,4¹, S5,5¹, S5,1¹ und S5,2¹ umgeordnet. Beispielsweise werden die neu in das Element PE₄ eingeordneten Daten S5,1¹ sofort bei der Verarbeitung bei dem Prozeßzeitpunkt (t+4) eingesetzt, um aus diesem Element PE₄ die Daten S6,1¹ zu erhalten. Das gleiche gilt auch für die anderen Daten, so daß die in das Element PE₅ umgesetzten Daten S5,2¹ zum Erhalten der Daten S6,2¹ bei dem Prozeßzeitpunkt (t+5) herangezogen werden. Zum Prozeßzeitpunkt (t+4) ist in dem Element PE₄ der Datenwert r₁¹ enthalten, dessen Kopfkennung "1" ist; daher wird diese Kennung ausgewertet und daraus erkannt, daß die Umordnung abgeschlossen ist; infolgedessen wird in dem Zustandken­ nungsregister die Übertragkennung rückgesetzt. Zugleich wird diese Rücksetzung bestätigt und es wird allen Elemen­ ten (in der Richtung der in den Fig. gestrichelt dar­ gestellten Pfeile) der Abschluß der Umordnung gemeldet, so daß in allen Elementen die Umordnungszustand-Einstellung aufgehoben wird. Infolgedessen wird zum Prozeßzeitpunkt (t+4) in den jeweiligen Elementen nur die Verarbeitung gemäß den Gleichungen (1) bis (3) ausgeführt. Nachdem ferner aus dem Gesamt-Steuersystem in jedes Ele­ ment das Austauschsignal eingegeben wurde, erkennt das erste Element, welches die Eingangs-Vektordaten aufgenom­ men hat, in denen die Kopfkennung "1" ist, daß es das erste Element ist, das durch das startende Element abgerufen ist, das die Verarbeitung für die betreffende Eingangs-Vektor­ datenfolge Sk ausführt, wobei der durch dieses Element verwaltete Multiplexer auf die externe Sammelleitung ge­ schaltet wird, so daß er als Eingangskanal für die Ein­ gangs-Vektordatenfolge Sk arbeitet. Danach wird in diesem Ele­ ment die Information gespeichert, die das erste Element für die Verarbeitung anzeigt. Der Steuerungsvorgang dieser Art leitet den Austausch der Eingangs-Vektordatenfolgen ein. Gemäß Fig. 14A wird dieser Vorgang zum Prozeßzeitpunkt (t+4) von dem Elementen PE₄ ausgeführt. Die Elemente, die das Anfangs-Element oder das Abschluß- Element waren, welche die Berechnung für die ersten Ein­ gangs-Vektordaten aller Vektordatenfolgen R₁, R₂, . . ., Rl ausführen, speichern über die Zählvorgänge bei der Umord­ nung die Informationen für dieses Anfangs-Element oder Ab­ schluß-Element in den Elementen, bis das Anfangs-Element oder das Abschluß-Element für die Umordnung für die nach­ folgende Datenfolge Sk+1 bestimmt wird. Danach werden die Betriebsvorgänge jedesmal dann erneut begonnen, wenn in diesen Elementen im Zustandkennungsregister die Eingabe­ kennung auftritt, wobei dann die vorstehend beschriebene Umordnung ausgeführt wird. Bei dem in Fig. 14B gezeigten Beispiel erfolgt die zweite Umordnung während der Zeit­ dauer vom Prozeßzeitpunkt (t+6) bis zum Prozeßzeitpunkt (t+8). Durch diese zweite Umordnung werden in die vorbestimmten Elemente die Rechenergebnisse S5,6¹, S5,1², S5,2², S5,3² und S5,4² neu eingeordnet, die die zweiten Übertragungsdaten für das jeweilige Element sind. Durch eine dritte Umord­ nung während der Zeitdauer vom Prozeßzeitpunkt (t+11) bis zum Prozeßzeitpunkt (t+13) werden in die vorbestimmten Elemente die Rechenergebnisse S5,5², S5,6² und S5,7² neu eingeordnet. Zum Prozeßzeitpunkt (t+14) ist die Umordnung für die Eingangs- Vektordatenfolge S₁ gemäß den Zählvorgängen zwischen den Elementen abgeschlossen, die das Anfangs-Element und das Abschluß-Element für die Umordnung sind. In dem Element PE₄ wird die Information eingestellt, die das Anfangs-Ele­ ment für die Verarbeitung der Eingangs-Vektordatenfolge S₂ anzeigt; es wird das aus dem Gesamt-Steuersystem unmittel­ bar vor diesem Prozeßzeitpunkt gesendete Austauschsignal über­ prüft; die den Eingangs-Vektordaten r₅² hinzugefügte Über­ tragkennung wird als "1" ermittelt. Daraufhin wird sofort in dem Zustandkennungsregister die Zählkennung gesetzt. Danach wird nach dem Prozeßzeitpunkt (t +15) der vorangehend be­ schriebene Verarbeitungsvorgang wiederholt. Andererseits ermittelt das Element, das die Verarbeitung für die Eingangs-Vektordaten r₆¹ und r₇² mit der Endkennung ausführte, daß diese Kennung "1" sind, woraufhin das Element parallel mit der Berechnung gemäß den Gleichungen (1) bis (3) das Rechenergebnis Si p, Np an den externen Be­ stimmungsort abgibt. Gemäß den Fig. 14A bis 14E wird zum Prozeßzeitpunkt (t+3) das Ergebnis S1,7², zum Prozeßzeitpunkt (t+3) das Ergebnis S2,7², zum Prozeßzeitpunkt (t+5) das Ergeb­ nis S3,7², zum Prozeßzeitpunkt (t+6) das Ergebnis S4,7², zum Prozeßzeitpunkt (t+7) das Ergebnis S5,7², zum Prozeßzeitpunkt (t+9) das Ergebnis S6,6¹, zum Prozeßzeitpunkt (t+10) das Ergebnis S7,6¹, zum Prozeßzeitpunkt (t+11) das Ergebnis S8,6¹, zum Prozeßzeitpunkt (t+12) das Ergebnis S9,6¹, zum Prozeßzeitpunkt (t+13) das Ergebnis S10,6¹, zum Prozeßzeitpunkt (t+16) das Ergebnis S6,7², zum Pro­ zeßzeitpunkt (t+17) das Ergebnis S7,7², zum Prozeß­ zeitpunkt (t+18) das Ergebnis S8,7², zum Prozeßzeitpunkt (t+19) das Ergebnis S9,7² und zum Prozeßzeitpunkt (t+20) das Ergebnis S10,6² ausgegeben. Auf diese Weise wer­ den die Rechenergebnisse für die Eingangs-Vektordatenfolge S₂ an die externen Besitmmungsorte in der Aufeinanderfolge S6,6¹, S7,6¹, S8,6¹, S9,6¹, S10,6¹, S6,7², S7,7², S8,7², S9,7² und S10,7² ausgegeben. Die das Anfangs-Element für die Verarbeitung für die je­ weilige Eingangs-Vektordatenfolge Sk anzeigende Information wird rückgesetzt, nachdem die Übertragkennung als "1" er­ mittelt wurde und festgestellt wurde, daß die Zählkennung auf "1" gesetzt ist. Ferner wird dann, wenn die Übertrag­ kennung "1" ist, die das Anfangs-Element für die Umordnung anzeigende Information auf "1" gesetzt, wenn die Zählken­ nung "0" ist, und die Information nicht geändert, wenn die­ se Zählkennung "1" ist. Wenn die Übertragkennung "1" ist, wird die das Abschluß-Element für die Umordnung anzeigende Information auf "0" gesetzt, falls die Zählkennung "1" ist, während diese Information nicht geändert wird, falls diese Zählken­ nung "0" ist. Nachdem der Multiplexer die externe Sammel­ leitung wählt, behält der Mulitplexer das Wählen der ex­ ternen Sammelleitung bei, bis die Eingabekennung im Zu­ standkennungsregister auf "1" wechselt; nachdem ermittelt ist, daß die Eingabekennung "1" ist, wählt der Multiplexer den Datenübertragungsweg zwischen den Elementen an. Gemäß der vorstehenden Erläuterung dienen der Inhalt des Zustandkennungsregisters sowie die den Eingangs-Vektor­ daten rj p hinzugefügten Kennungen dazu, unmittelbar vor der Ausführung der Berechnungen gemäß den Gleichungen (1) bis (3) den Verarbeitungszustand des jeweiligen Elements zu ermitteln. Infolgedessen sind bei diesem Steuerverfahren aus dem Gesamt-Steuersystem keine Steuersignale erforder­ lich, die die Verarbeitungsvorgänge in dem jeweiligen Ele­ ment vorschreiben. Es genügt, wenn zyklisch je­ dem Element ein Steuersignal zugeführt wird, das den Zeit­ punkt für den Austausch der Eingangs-Vektordatenfolge Sk anzeigt. Diese Gestaltung macht es möglich, kontinuierlich die dynamischen Zeitversetzungs-Berechnungen gemäß den Gleichungen (1) bis (3) auszuführen, während in dem ganzen Matrixprozessor eine selbständige Steuerung ausgeführt wird. Fig. 15 zeigt ein Ausführungsbeispiel für die Schal­ tungsanordnung in dem Fall, daß in einem Verarbeitungsele­ ment dieses Matrixprozessors eine Einrichtung für das er­ findungsgemäße Steuerverfahren vorgesehen ist. In Fig. 15 sind die externe Eingangs-Vektordaten-Sammel­ leitung 53, die externe Eingabe/Ausgabe-Sammelleitung 54 und der Anschluß 56 zum Verbinden des Elements mit der Sammelleitung 54 die gleichen wie die in Fig. 11 gezeigten. Mit 71 ist ein Steuereingangsanschluß zum Steuern einer Steuereinheit 88 aus einer Steuersignalquelle wie einem Verarbeitungscomputer bezeichnet. Mit 72 und 73 sind ein Eingangsanschluß bzw. ein Ausgangsanschluß für die Daten­ übertragungswege zwischen den Elementen bezeichnet. Mit 74 und 75 sind ein Eingangsanschluß bzw. ein Ausgangsan­ schluß eines Zustandkennungsregisters 86 bzeichnet. Mit 76 und 77 sind ein Eingangs-Register bzw. ein Ausgangs- Register zur Datenübertragung bezeichnet. Mit 78 und 79 sind Pufferspeicher für Eingangs-Vektordaten ci bzw. rj bezeichnet. Mit 80 ist ein Pufferregister (viertes Regi­ ster) für die Ausgabe von Daten an die Sammelleitung 54 bezeichnet. Mit 81 ist ein Zähler zum Adressieren eines Speichers bezeichnet. Mit 82 ist eine Recheneinheit be­ zeichnet, die eine Addier/Subtrahier-Einheit 82-1, einen Akkumulator 82-2 und eine Produktsummeneinheit 82-3 ent­ hält. Mit 83 ist ein Arbeitsspeicher bezeichnet. Mit 84 und 85 sind Adressierleitungen für den Arbeitsspeicher be­ zeichnet. Mit 87 ist ein Puffer-Register für Kennungen be­ zeichnet, die den Eingangs-Vektordaten hinzugefügt sind. Mit 89 ist eine Befehlseinheit bezeichnet, die einen Mik­ roprogrammspeicher 89-1 mit einem Mikroprogramm, das die Betriebsvorgänge der Verarbeitung des Elements enthält, einen Programmzähler 89-2, ein Befehlsregister 89-3 und einen Befehldecodierer 89-4 enthält. Mit 90 ist ein Puf­ fer-Register zum Speichern der Eingangs-Vektordaten rj bei deren Eingabe aus der Sammelleitung 54 bezeichnet. Mit 91, 92, 93 und 94 sind jeweils Wähler bezeichnet, die von der Steuereinheit 89 gesteuert werden. Die Steuereinheit 88 in dem jeweiligen Verarbeitungselement empfängt ein Prozeßstart-Einschaltsignal von einer externen Steuereinheit und wird entsprechend dem in Fig. 16 gezeigten Steuerungsablauf gesteuert. Die Steuereinheit 88 erzeugt ein Steuersignal für das Einstellen der An­ fangsadresse des Programms in dem Programmzähler 89-2. Dann steuert die Steuereinheit 88 die Nutzung der Über­ tragung der Eingabekennung und der Zählkennung; ferner prüft die Steuereinheit die Kennung f5,6 für das fünfte und sechste Teilfeld im Programmfeld (1) durch das Ermit­ teln, ob die Eingabekennung "1" ist oder nicht, wonach die Steuereinheit dann diese Kennung setzt. Bei diesem Zustand arbeitet der Programmzähler 89-2 in der Weise, daß die Ausführung des Programms gemäß dem Feld (1) gesteuert wird. Wenn das Programm gemäß dem Feld (1) abgeschlossen ist, wird die Eingabekennung ausgewertet; falls die Eingabe­ kennung "1" ist, wird die den in das Element eingegebenen Vektordaten rj hinzugefügte Kennung so ausgewertet, daß die Zustandseinstellung vorgenommen wird, die für das Aus­ führen des Programms gemäß dem Feld (2) notwendig ist. Wenn die Kopfkennung als "1" ermittelt wird, wird die Zählkennung ausgewertet. Falls die Zählkennung "0" ist, wird der zuvor eingestellte Zustand unverändert aufrecht­ erhalten, während die Steuereinheit 88 die Steuerung der Ausführung des Programms gemäß dem Feld (2) beginnt. Wenn die Zählkennung "1" ist, wird eine Umordnungszustand- Abschaltkennung auf "1" gesetzt, um das Erzeugen eines Rückstellsignals für den Umordnungszustand vorzubereiten. Die Zählkennung wird auf "0" gesetzt und es wird das Rück­ stellsignal zum Rückstellen des Umordnungszustands gesendet. Danach wird zum Maskieren des zweiten Teilfelds des Programmfelds (2) die Kennung f₂ auf "0" geschaltet, während die Information für das Anfangs-Element auf "1" gesetzt wird. Falls die Endkennung ermittelt wird, wird die das Ausführen des Programms gemäß dem dritten Teilfeld des Felds (2) steuernde Kennung f₃ in Abhängigkeit davon, ob die Endkennung "1" ist oder nicht, auf "1" oder "0" geschaltet. Bei der Prüfung der Übertragkennung wird die Information über das Anfangs-Element ausgewertet; falls die Information nicht "1" ist, beginnt die Steuereinheit 88 das Ausführen des Programms gemäß dem Feld (2) ohne Änderung des vorangehenden Zustands zu steuern. Falls die Information für das Anfangs-Element "1" ist, wird die Umordnungszustand-Einschaltkennung auf "1" gesetzt, um das Herbeiführen eines Umordnungszustands vorzu­ bereiten, während die Zählkennung auf "1" gesetzt wird. Dann wird ein Einschaltsignal zum Einschalten des Um­ ordnungszustands gesendet und die Kennung f₂ für das Ausführen des Programms gemäß dem zweiten Teilfeld des Felds (2) auf "1" geschaltet. Ferner wird die Information für das Anfangs-Element auf "0" geschaltet, wonach die Steuereinheit 88 die Steuerung der Ausführung des Programms gemäß dem Feld (2) beginnt. Wenn die den eingegebenen Vektordaten r j hinzugefügte Kennung eine Kennung ist, die nicht eine der vorstehend genannten drei Kennungen ist, nämlich eine Übersprung- bzw. NOP-Kennung ist, wird die Umordnungszustand-Einschalt­ kennung geprüft. Falls diese Kennung "0" ist, beginnt die Steuereinheit 88 die Steuerung der Ausführung des Programms gemäß dem Feld (2) ohne Änderung des vorangehenden Zustands. Wenn diese Kennung "1" ist, wird die Zählkennung auf "1" geschaltet, um erneut die Umordnung zu beginnen, wobei das Einschaltsignal für den Umordnungszustand gesendet wird und die Kennung f₂ auf "1" gesetzt wird. Ferner wird die Information für das Anfangs-Element auf "0" gesetzt. Wenn die Eingabekennung nicht "1" ist, werden die Berechnungen unter Verwendung der schon bei der Ausführung des Programms gemäß dem Feld (1) in das Element eingespeicherten Vektordaten r j ausgeführt, so daß die für die Aus­ führung des Programms gemäß dem Feld (2) erforderlichen Zustands­ einstellungen in Abhängigkeit davon ausgeführt werden, ob das Einschalt- oder Abschaltsignal für den Umordnungs­ zustand empfangen wurde oder nicht. Wenn das Einschaltsignal empfangen wurde, wird die Kennung f₂ auf "1" gesetzt. Wenn statt des Einschaltsignals das Abschaltsignal empfangen wurde, wird die Kennung f₂ auf "0" gesetzt. Wenn keines der Signale empfangen wurde, beginnt die Steuer­ einheit 88 das Steuern der Ausführung des Programms gemäß dem Feld (2) ohne Änderung des vorangehenden Zustands. Wenn die Zustandseinstellungen für die vorangehend beschriebenen verschiedenen Fälle abgeschlossen sind, wird der Programmzähler 89-2 in Betrieb gesetzt, so daß das Programm gemäß dem Feld (2) ausgeführt wird. Den vorstehend beschriebenen Steuerungsvorgang wiederholt die Steuereinheit 88 bei jedem Prozeßzeitpunkt. Das vorstehend beschriebene Ausführungsbeispiel ermöglicht es, die gesamte Anordnung selbständig allein dadurch zu steuern, daß 3-Bit-Kennungen hinzugefügt werden und in jedem Element 2-Bit-Zustandskennungen aufgenommen werden. Diese Gestaltung ermöglicht nicht nur eine Verringerung der Belastung des gesamten Steuersystems 57, sondern auch eine Vereinfachung des Steuerverfahrens.

Claims (5)

1. Matrixprozessor, mit Multiplexern, n Verarbeitungs­ elementen und einer Einrichtung zum Steuern der Multiplexer und der Verarbeitungselemente, wobei die n Verarbeitungs­ elemente in Form eines Rings angeordnet sind und jeweils benachbarte Verarbeitungselemente über je einen Multiplexer miteinander verbunden sind und jedes Verarbeitungs­ element
eine erste Eingabevorrichtung zur Eingabe von Eingangs- Vektordaten einer ersten Art von Eingangs-Vektor­ datenfolge = (i = 1, 2, . . ., I) von einer Eingangs-Vektordaten-Sammelleitung,
eine zweite Eingabevorrichtung zur Eingabe von Eingangs- Vektordaten einer zweiten Art von Eingangs-Vektordatenfolge = (j = 1, 2, . . ., N) von einer Eingabe/Ausgabe- Datensammelleitung,
eine Rechenvorrichtung für das Ausführen vorbestimmter Additions- und Subtraktionsberechnungen, Vergleichsbe­ rechnungen und Produktsummenberechnungen zwischen den beiden Arten der Eingangs-Vektordaten und zum Speichern der Rechenergebnisse,
eine Übertragungsvorrichtung für das Übertragen der einen der Eingangs-Vektordaten und eines Rechenergebnisses der Rechenvorrichtung zu einem benachbarten Verarbeitungs­ element,
eine Ausgabevorrichtung für die Ausgabe eines Rechenend­ ergebnisses von der Rechenvorrichtung an die Eingabe/ Ausgabe-Datensammelleitung,
eine Ablaufvorrichtung für das Ausführen einer Ver­ arbeitung, bei der parallel mit einer Rechenverarbeitung in einem jeweiligen Verarbeitungselement alle Verarbeitungs­ elemente gleichzeitig die jeweiligen Verarbeitungsergebnisse (Rest N/n)-mal zu den jeweils benachbarten Verarbeitungs­ elementen übertragen, wobei (Rest N/n) der Divisionsrest bei dem Dividieren von N durch n ist, und
eine Steuervorrichtung für das Steuern der Rechenvorrichtung und der Ablaufvorrichtung aufweist, und
wobei jeder der Multiplexer eine Wählvorrichtung zum Wählen entweder eines Datenübertragungswegs für die Daten­ übertragung zwischen den beiden durch den Multiplexer verbundenen Verarbeitungselementen oder eines Datenüber­ tragungswegs für das Zuführen der einen Eingangs-Vektordaten aus einer externen Quelle zum dem jeweiligen Multiplexer zugehörigen Verarbeitungselement enthält, dadurch gekennzeichnet,
daß die erste Eingabevorrichtung (13, 17, 21; 72, 76, 78) direkt mit dem Ausgang des jeweils zugehörigen Multiplexers (2; 52) verbunden ist, und
daß die zweite Eingabevorrichtung (12, 15, 20; 56, 79, 90) direkt mit der Eingabe/Ausgabe-Datensammelleitung (4; 54) verbunden ist, so daß die Eingangs-Vektordaten der Eingangs- Vektordaten-Sammelleitung (3; 53) und der Ein­ gabe/Ausgabe-Datensammelleitung (4; 54) gleichzeitig an das Verarbeitungselement (1; 51) anlegbar sind.
2. Matrixprozessor nach Anspruch 1, dadurch gekennzeichnet,
daß die erste Eingabevorrichtung (13, 17, 21; 72, 76, 78) für die Eingabe der ersten Eingangs-Vektordaten einen mit einem Datenübertragungsweg (5; 55) verbindbaren ersten Anschluß (13; 72), ein an den ersten Anschluß ange­ schlossenes erstes Register (17; 76) und einen an das erste Register angeschlossenen ersten Pufferspeicher (21; 78) aufweist,
daß die zweite Eingabevorrichtung (12, 15, 20; 56, 79, 90) für die Eingabe der zweiten Eingangs-Vektordaten einen Eingabe/Ausgabe-Anschluß (12; 56), ein an den Eingabe/ Ausgabe-Anschluß angeschlossenes zweites Register (15; 90) und einen an das zweite Register angeschlossenen zweiten Pufferspeicher (20; 79) aufweist,
daß die Rechenvorrichtung (22, 23; 82; 83) eine erste Recheneinheit (22-1; 82-1) zur Addition, Subtraktion und Vergleichsberechnung, eine zweite Recheneinheit (22-3; 82-3) zur Produktsummen-Berechnung, ein Pufferregister (22-2; 82-2) für die erste Recheneinheit (22-1; 82-1), einen ersten Wähler (29; 91) zum Wählen eines der Ausgangssignale des Pufferregisters (22-2; 82-2), des ersten Registers (17; 76) oder einer internen Datenleitung (19), einen zweiten Wähler (30; 92) zum Wählen eines der Ausgangssignale des zweiten Pufferspeichers (20, 79) oder der internen Datenleitung (19) und einen dritten Wähler (31; 93) zum Wählen des Ausgangssignals des ersten Registers (17; 76), des Pufferregisters (22-2; 82-2) oder der zweiten Recheneinheit (22-3; 82-3) aufweist, wobei die Ausgänge des ersten und zweiten Wählers (29, 30; 91, 92) mit der ersten Recheneinheit (22-1; 82-1), ein Ausgang des dritten Wählers (31; 93) mit einem Arbeitsspeicher (23; 83) und die interne Datenleitung (19) mit dem ersten Pufferspeicher (21; 78), dem ersten und dem zweiten Wähler (29, 30; 91, 92) und einem zweiten und einem dritten Pufferregister (16, 18; 77, 80) verbunden sind,
daß die Ablaufvorrichtung einen Zähler (28; 81), einen vierten Wähler (32; 94) zum Wählen entweder einer ersten Adresseninformation (26; 84) aus dem Zähler (28; 81) oder einer zweiten Adresseninformation (27; 85) aus der Steuer­ vorrichtung (24; 88, 89) und einen Teil (23-2) des an den vierten Wähler (32; 94) angeschlossenen Arbeitsspeichers (23; 83) enthält,
daß die Übertragungsvorrichtung das an die interne Datenleitung (19) angeschlossene dritte Pufferregister (18; 77) und einen an das dritte Pufferregister (18; 77) angeschlossenen zweiten Anschluß (14; 73) aufweist, der mit dem Datenübertragungsweg verbindbar ist,
daß die Ausgabevorrichtung für die Eingabe/Ausgabe-Daten­ sammelleitung (4; 54) das an die interne Datenleitung (19) angeschlossene zweite Pufferregister (16; 80) und den Eingabe/Ausgabe-Anschluß (12; 56) aufweist und
daß die Steuervorrichtung (24; 88, 89) ein Steuersignal (25; 71) aus der Einrichtung (10; 57) für das Steuern der Verarbeitungselemente (1; 51) und der Multiplexer 2; (52) empfängt.
3. Matrixprozessor nach Anspruch 2, dadurch gekennzeichnet,
daß jedes Verarbeitungselement (51) eine Vorrichtung (74, 75, 86) aufweist, die eine Zustandskennung (75) aus einem der benachbarten Verarbeitungselemente aufnimmt, um die Zustandskennung (75) zu einem anderen der benachbarten Verarbeitungselemente zu übertragen,
daß das zweite Register (90) einen Registerteil (87) zum Speichern einer Kennung aufweist, die den aus der Eingabe/ Ausgabe-Datensammelleitung (54) eingegebenen Ein­ gangs-Vektordaten hinzugefügt ist, und
daß die Steuervorrichtung (88, 89) eine Verarbeitungs­ element-Steuereinheit (88), die ein Steuersignal (71) von einer externen Quelle, ein Kennungssignal von dem Register­ teil (87) und von einem Zustandskennungs-Register (86) aufnimmt, um ein Befehlssteuersignal zu bilden, und eine Verarbeitungsbefehlseinheit (89) aufweist, die das Befehlssteuersignal aufnimmt, um die zweite Adressen­ information (85) sowie Steuersignale zum Steuern des ersten, des zweiten, des dritten und des vierten Wählers (91 bis 94) zu bilden.
4. Verfahren zum Steuern eines insbesondere nach einem der Ansprüche 1 bis 3 aufgebauten Matrixprozessors, der eine erste Vektordatenfolge = (i, = 1, 2, . . ., I) aus I ersten Eingangs-Vektordaten und eine zweite Vektordatenfolge = (j, = 1, 2, . . ., N) aus N zweiten Eingangs- Vektordaten aufnimmt und ein Ergebnis einer vorbestimmten Berechnung ausgibt, wobei
ein Matrixprozessor mit n Verarbeitungselementen eingesetzt wird, die über Multiplexer in Form eines Rings verbunden sind und in die die ersten und die zweiten Eingangs-Vektordaten eingegeben werden,
die ersten Eingangs-Vektordaten in P Gruppen mit jeweils n Teil-Eingangsvektordaten aufgeteilt werden, wobei P eine ganze Zahl ist, die gleich oder größer als "1" ist,
die n Teil-Eingangsvektordaten einer jeden Gruppe und die zweiten Eingangs-Vektordaten einer vorbestimmten Verarbeitung unterzogen werden und
aufeinanderfolgend die vorbestimmte Verarbeitung für jede der P Gruppen und die zweite Vektordatenfolge wiederholt wird, um durch die Verarbeitungselemente ein Verarbeitungs­ endergebnis zu erzeugen,
dadurch gekennzeichnet, daß nur einer der Multiplexer (2; 52) die ersten Eingangs-Vektordaten  überträgt, während gleichzeitig die übrigen Multiplexer (2; 52) entsprechende Ausgangssignale von vorhergehenden benachbarten Verarbeitungselementen (1; PE; 51) übertragen, und
daß bei der vorbestimmten Verarbeitung in jedes der Verarbeitungselemente (1; PE; 51) die n ersten Eingangs-Vektordaten über nur einen der Multiplexer (2; 52) eingegeben werden,
die n ersten Eingangs-Vektordaten aufeinanderfolgend umlaufend über die Multiplexer (2; 52) zwischen den jeweiligen Verarbeitungselementen (1; PE; 51) übertragen und jede der Teil-Eingangsvektordaten einer jeden Gruppe direkt und synchron mit der umlaufenden Übertragung der n ersten Eingangs-Vektordaten in jedes einzelne der Verarbeitungselemente (1; PE; 51) eingegeben werden oder jede der zweiten Eingangs-Vektordaten direkt in jedes einzelne der Verarbeitungselemente (1; PE; 51) zu jedem Zeitpunkt, zu dem die Teil-Eingangsvektoren umlaufend zwischen den Verarbeitungselementen (1; PE; 51) übertragen oder in die Verarbeitungselemente (1; PE; 51) eingegeben werden, und synchron mit einer entsprechenden Zeitsteuerung eingegeben werden,
die Teil-Eingangsvektordaten, die zweiten Eingangs-Vektordaten und ein von einem benachbarten Verarbeitungselement (1; PE; 51) über einen der Multiplexer (2; 52) übertragenes Verarbeitungsergebnis (S ÿ ) verarbeitet und über den nachfolgenden Multiplexer (2; 52) zu einem benach­ barten Verarbeitungselement (1; PE; 51) ein neues Verarbeitungsergebnis (S ÿ ) übertragen wird,
das Verarbeiten und Übertragen wiederholt wird und ein neues Verarbeitungsergebnis (S ÿ ) in einer Ver­ arbeitungszeit zwischen den Verarbeitungselementen (1; PE; 51) (Rest N/n)-mal übertragen wird, falls ein Verarbeitungs­ ergebnis (S ÿ ) einer Gruppe zur Verarbeitung in der folgenden Gruppe verwendet wird, wobei (Rest N/n) der Divisionsrest bei der Division von N durch n ist.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet,
daß in die Verarbeitungselemente (1; PE; 51) Aufbe­ reitungsbefehle (89-1) aufgenommen werden,
daß den zweiten Eingangs-Vektordaten  eine Kennung (61, 62, 63) hinzugefügt wird, die einen Aufbereitungs­ zustand anzeigt, der in jedem der Verarbeitungselemente (1; PE; 51) bei einer vorbestimmten Ablauffolge hervorgerufen ist,
daß eine Zustandskennung (86) gebildet wird, die jedem der Verarbeitungselemente (1; PE; 51) den individuellen Aufbe­ reitungszustand meldet,
daß die Zustandskennung (86) zwischen den Verarbeitungs­ elementen (1; PE; 51) überführt wird,
daß die Zustandskennung (86) so ausgewertet wird, daß in das Verarbeitungselement (1; PE; 51) die ersten und zweiten Eingangs-Vektordaten ,   eingegeben werden,
daß die den eingegebenen zweiten Eingangs-Vektordaten hinzugefügte Kennung (61, 62, 63) für das Ändern des Inhalts der Zustandskennung (86) in dem Verarbeitungs­ element (1; PE; 51) ausgewertet wird und
daß den Verarbeitungselementen (1; PE; 51) ein durch die Änderung erzeugter Zustand zugeführt wird, wodurch im ganzen Matrixprozessor eine selbständige Steuerung in der Weise erfolgt, daß das Verarbeitungselement (1; PE; 51) die Aufbereitungsbefehle entsprechend dem Zustand einleitet.
DE19853506749 1984-02-27 1985-02-26 Matrixprozessor und steuerverfahren hierfuer Granted DE3506749A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP59034450A JPS60179871A (ja) 1984-02-27 1984-02-27 アレイプロセツサ
JP59096656A JPS60241155A (ja) 1984-05-16 1984-05-16 アレイプロセツサの制御方法

Publications (2)

Publication Number Publication Date
DE3506749A1 DE3506749A1 (de) 1985-09-26
DE3506749C2 true DE3506749C2 (de) 1989-03-23

Family

ID=26373263

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19853506749 Granted DE3506749A1 (de) 1984-02-27 1985-02-26 Matrixprozessor und steuerverfahren hierfuer

Country Status (3)

Country Link
US (1) US4905143A (de)
DE (1) DE3506749A1 (de)
NL (1) NL192637C (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4212202A1 (de) * 1991-04-12 1992-10-15 Hewlett Packard Co Logikgatter

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3786330T2 (de) * 1986-11-27 1993-11-25 Nippon Telegraph & Telephone Paralleldatenverarbeitungsvorrichtung und -verfahren.
JPH0254383A (ja) * 1988-08-18 1990-02-23 Mitsubishi Electric Corp アレイプロセッサ
DE68920388T2 (de) * 1988-09-19 1995-05-11 Fujitsu Ltd Paralleles Rechnersystem mit Verwendung eines SIMD-Verfahrens.
US5159690A (en) * 1988-09-30 1992-10-27 Massachusetts Institute Of Technology Multidimensional cellular data array processing system which separately permutes stored data elements and applies transformation rules to permuted elements
US5249301A (en) * 1988-10-25 1993-09-28 Bull S.A Processing communication system having a plurality of memories and processors coupled through at least one feedback shift register provided from ring configured input stations
US5689647A (en) * 1989-03-14 1997-11-18 Sanyo Electric Co., Ltd. Parallel computing system with processing element number setting mode and shortest route determination with matrix size information
US5210836A (en) * 1989-10-13 1993-05-11 Texas Instruments Incorporated Instruction generator architecture for a video signal processor controller
US5237685A (en) * 1990-02-26 1993-08-17 International Business Machines Corporation Linear recurrence dispersal structure and method for parallel processors
US5193202A (en) * 1990-05-29 1993-03-09 Wavetracer, Inc. Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor
US5208900A (en) * 1990-10-22 1993-05-04 Motorola, Inc. Digital neural network computation ring
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5617577A (en) * 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
US5734921A (en) * 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5794059A (en) * 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5765015A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Slide network for an array processor
US5809292A (en) * 1990-11-13 1998-09-15 International Business Machines Corporation Floating point for simid array machine
US5588152A (en) * 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5815723A (en) * 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
US5966528A (en) * 1990-11-13 1999-10-12 International Business Machines Corporation SIMD/MIMD array processor with vector processing
US5713037A (en) * 1990-11-13 1998-01-27 International Business Machines Corporation Slide bus communication functions for SIMD/MIMD array processor
US5625836A (en) * 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
EP0485690B1 (de) * 1990-11-13 1999-05-26 International Business Machines Corporation Paralleles Assoziativprozessor-System
US5828894A (en) * 1990-11-13 1998-10-27 International Business Machines Corporation Array processor having grouping of SIMD pickets
US5963746A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation Fully distributed processing memory element
US5765012A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library
US5765011A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US5963745A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation APAP I/O programmable router
US5630162A (en) * 1990-11-13 1997-05-13 International Business Machines Corporation Array processor dotted communication network based on H-DOTs
US5389835A (en) * 1991-04-12 1995-02-14 Hewlett-Packard Company Vector logic method and dynamic mousetrap logic gate for a self-timed monotonic logic progression
US5594918A (en) * 1991-05-13 1997-01-14 International Business Machines Corporation Parallel computer system providing multi-ported intelligent memory
US6282583B1 (en) * 1991-06-04 2001-08-28 Silicon Graphics, Inc. Method and apparatus for memory access in a matrix processor computer
JP2642039B2 (ja) * 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
JPH06290158A (ja) * 1993-03-31 1994-10-18 Fujitsu Ltd 再構成可能なトーラス・ネットワーク方式
WO1995016974A1 (en) * 1993-12-17 1995-06-22 Quintet, Incorporated Method of automated signature verification
CA2135857A1 (en) * 1994-01-03 1995-07-04 Shay-Ping Thomas Wang Neural network utilizing logarithmic function and method of using same
US5664192A (en) * 1994-12-14 1997-09-02 Motorola, Inc. Method and system for accumulating values in a computing device
US5611068A (en) * 1994-12-27 1997-03-11 Motorola, Inc. Apparatus and method for controlling pipelined data transfer scheme between stages employing shift register and associated addressing mechanism
US5685008A (en) * 1995-03-13 1997-11-04 Motorola, Inc. Computer Processor utilizing logarithmic conversion and method of use thereof
US5644520A (en) * 1995-05-31 1997-07-01 Pan; Shao Wei Accumulator circuit and method of use thereof
US5771391A (en) * 1995-08-28 1998-06-23 Motorola Inc. Computer processor having a pipelined architecture and method of using same
US5956409A (en) * 1996-04-29 1999-09-21 Quintet, Inc. Secure application of seals
US5917447A (en) * 1996-05-29 1999-06-29 Motorola, Inc. Method and system for digital beam forming
JP2879670B2 (ja) * 1997-03-28 1999-04-05 広島大学長 2次元情報処理装置
JPH1165989A (ja) * 1997-08-22 1999-03-09 Sony Computer Entertainment:Kk 情報処理装置
US6502180B1 (en) * 1997-09-12 2002-12-31 California Institute Of Technology Asynchronous circuits with pipelined completion process
US6112288A (en) * 1998-05-19 2000-08-29 Paracel, Inc. Dynamic configurable system of parallel modules comprising chain of chips comprising parallel pipeline chain of processors with master controller feeding command and data
US6167501A (en) * 1998-06-05 2000-12-26 Billions Of Operations Per Second, Inc. Methods and apparatus for manarray PE-PE switch control
US7343249B2 (en) 2005-03-23 2008-03-11 International Business Machines Corporational Vectorization of sequence alignment computation using distance matrix reshaping
JP5971635B2 (ja) * 2011-01-25 2016-08-17 エヌエックスピー カナダ インコーポレイテッド ベクトルユニット共有の装置および方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3287703A (en) * 1962-12-04 1966-11-22 Westinghouse Electric Corp Computer
US3286309A (en) * 1963-06-06 1966-11-22 Aluminum Co Of America Method and apparatus for horizontal casting of ingots
US3544973A (en) * 1968-03-13 1970-12-01 Westinghouse Electric Corp Variable structure computer
US3582899A (en) * 1968-03-21 1971-06-01 Burroughs Corp Method and apparatus for routing data among processing elements of an array computer
US3970993A (en) * 1974-01-02 1976-07-20 Hughes Aircraft Company Cooperative-word linear array parallel processor
US4065808A (en) * 1975-01-25 1977-12-27 U.S. Philips Corporation Network computer system
US4270169A (en) * 1978-05-03 1981-05-26 International Computers Limited Array processor
US4270170A (en) * 1978-05-03 1981-05-26 International Computers Limited Array processor
US4541048A (en) * 1978-10-06 1985-09-10 Hughes Aircraft Company Modular programmable signal processor
IT1118355B (it) * 1979-02-15 1986-02-24 Cselt Centro Studi Lab Telecom Sistema di interconnessione tra processori
US4380046A (en) * 1979-05-21 1983-04-12 Nasa Massively parallel processor computer
FR2469751A1 (fr) * 1979-11-07 1981-05-22 Philips Data Syst Processeur d'intercommunication du systeme utilise dans un systeme de traitement de donnees reparti
US4314349A (en) * 1979-12-31 1982-02-02 Goodyear Aerospace Corporation Processing element for parallel array processors
ZA811458B (en) * 1980-03-28 1982-03-31 Int Computers Ltd Data processing system
NL8002787A (nl) * 1980-05-14 1981-12-16 Philips Nv Multiprocessor-rekenmachinesysteem voor het uitvoeren van een recursief algorithme.
US4428048A (en) * 1981-01-28 1984-01-24 Grumman Aerospace Corporation Multiprocessor with staggered processing
US4384273A (en) * 1981-03-20 1983-05-17 Bell Telephone Laboratories, Incorporated Time warp signal recognition processor for matching signal patterns
US4533993A (en) * 1981-08-18 1985-08-06 National Research Development Corp. Multiple processing cell digital data processor
JPS58134357A (ja) * 1982-02-03 1983-08-10 Hitachi Ltd ベクトルプロセッサ
US4509187A (en) * 1982-06-14 1985-04-02 At&T Bell Laboratories Time warp signal recognition processor using recirculating and/or reduced array of processor cells
US4739474A (en) * 1983-03-10 1988-04-19 Martin Marietta Corporation Geometric-arithmetic parallel processor
GB8401805D0 (en) * 1984-01-24 1984-02-29 Int Computers Ltd Data processing apparatus
US4739476A (en) * 1985-08-01 1988-04-19 General Electric Company Local interconnection scheme for parallel processing architectures
US4783738A (en) * 1986-03-13 1988-11-08 International Business Machines Corporation Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4212202A1 (de) * 1991-04-12 1992-10-15 Hewlett Packard Co Logikgatter

Also Published As

Publication number Publication date
DE3506749A1 (de) 1985-09-26
US4905143A (en) 1990-02-27
NL192637B (nl) 1997-07-01
NL8500537A (nl) 1985-09-16
NL192637C (nl) 1997-11-04

Similar Documents

Publication Publication Date Title
DE3506749C2 (de)
EP0048767B1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
DE3248215C2 (de)
DE2451982C2 (de)
DE3741953A1 (de) Multiprozessorsystem und verfahren zur arbeitslastverteilung bei einem solchen
DE2912287C3 (de) Datenverarbeitungsanlage
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2934971A1 (de) Datenverarbeitungssystem
DE2354521A1 (de) Verfahren und einrichtung zum gleichzeitigen zugriff zu verschiedenen speichermoduln
EP0123921A2 (de) Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf
DE3700991A1 (de) Digitaler uebertragsvorgriffsaddierer
DE3400723C2 (de)
DE2452214A1 (de) Mikroprozessor mit unmittelbarer und indirekter adressierung
DE19524862A1 (de) SIMD-Prozessor, welcher mit einer Mehrzahl von Parallelverarbeitungselementen in Synchronisation in Betrieb ist
DE19524402C2 (de) Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-Zufallszahlenfolge
DE1269394B (de) Schaltungsanordnung zur Bestimmung des Vorrangsverhaeltnisses zwischen mehreren Eingangsgroessen fuer programmgesteuerte Datenverarbeitungssysteme
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE112010003810T5 (de) Verfahren, Programm und paralleles Computersystem für die Planung elner Vielzahl von Berechnungsverfahren einschließlich All-to-All Kommunikation (A2A) zwischen einer Vielzahl von Knoten (Prozessoren), die ein Netzwerk formen
DE2548720C2 (de) Mikroprogramm-Steuerwerk
DE2401364A1 (de) Datenverarbeitungssystem
WO2007014404A1 (de) Digitale rechnereinrichtung mit parallelverarbeitung
DE19528760A1 (de) Bildverarbeitende Schaltung eines hohen Integrationsgrads
DE102011011682B4 (de) Programmierbare Steuerung zum parallelen Ausführen einer Vielzahl von unabhängigen Ablaufprogrammen
DE3447530A1 (de) Vektorprozessor
DE4446988B4 (de) Schneller Testmustergenerator

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: NIPPON TELEGRAPH AND TELEPHONE CORP., TOKIO/TOKYO,

D2 Grant after examination
8364 No opposition during term of opposition