DE3506749A1 - Matrixprozessor und steuerverfahren hierfuer - Google Patents

Matrixprozessor und steuerverfahren hierfuer

Info

Publication number
DE3506749A1
DE3506749A1 DE19853506749 DE3506749A DE3506749A1 DE 3506749 A1 DE3506749 A1 DE 3506749A1 DE 19853506749 DE19853506749 DE 19853506749 DE 3506749 A DE3506749 A DE 3506749A DE 3506749 A1 DE3506749 A1 DE 3506749A1
Authority
DE
Germany
Prior art keywords
processing
vector data
input
data
input vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19853506749
Other languages
English (en)
Other versions
DE3506749C2 (de
Inventor
Sanshiro Hattori
Atsushi Isehara Kanagawa Iwata
Takashi Ebina Kanagawa Kimura
Junichi Zama Kanagawa Takahashi
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 bezieht sich auf einen Matrixprozessor 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, wobei im Falle einer Musteranpassung bei einer Spracherkennung oder Zeichenerkennung Anpassungs-Berechnungen vorgenommen werden, die auf der Theorie der dynamischen Zeitversetzung (dynamic time warping) oder des dynamischen Programmierens beruhen.; ferner bezieht sich die Erfindung auf ein Steuerverfahren für den Matrixprozessor.
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
— Ö _
DE 4631
10 15 20
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 ein Beispiel für eine auf der dynamischen Zeitversetzung beruhende Anpassungsberechnung dargestellt, die die Berechnung zwischen zweierlei Arten von Vektor-Variablen und die Berechnung von Rekursiv-Formeln für Endsummenberechnungen unter Verwendung von Berechnungsergebnissen umfaßt.
2 m 2 Dij = j ei - rj I = J4J1 I Ck1 - rkJ I (1)
min
s00 =
(3)
wobei c, und r. das i-te bzw. j-te Element eines Vektors C= Cc, c,'...., c) mit I Elementen bzw. eines Vektors R ~(r , r ,...., r ) mit N Elementen sind. Mit m ist
1 1/ 2 N
ein Rang eines jeweiligen Vektors bezeichnet. Mit c, ist jeweils (c , c ,...., c ) bezeichnet, während mit r.
jeweils Cr
S. .
Summenabstand bezeichnet.
r ' ) bezeichnet ist. Mit D und 1 ' 2 ' ' m ii
sind jeweils ein Abstand zwischen Vektoren bzw." ein
Als Matrixprozessor zur parallelen Verarbeitung der Berechnungen dieser Art ist eine herkömmliche Anordnung bekannt, bei der in einem Orthogonalnetz (I χ N) Verarbeitungselemente angeordnet sind, wenn die Anzahl von Daten bei zwei Arten von Vektoren jeweils I bzw. N ist.
-9- DE 4631
Eine solche orthogonale Anordnung eines Matrixprozessors ist in der US-PS 4 384 273 von Ackland und anderen, in der Veröffentlichung "An Integrated Multiprocessing Array for Time Warp Pattern Matching" von Bryan Ackland und anderen 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 Matrixprozessors, der als Orthogonalnetz gestaltet ist. Fig. 2A und 2B, 3A und 3B, 4A und 4B sowie 5A und 5B zeigen jeweils ein Beispiel von Funktionen des Matrixprozessors. Die 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 hat eine Vorrichtung zum Ausführen einer Vektorzwischenabstand-Rechengleichung (1), die Additions- und Multiplikations-Berechnungen enthält, sowie einer Vergleichs- und Aufsummierungs-Rechen-
gleichung (2) und eine Vorrichtung zur Aufnahme und Ober-30
tragung der Ergebnisse der Vergleichsberechnungen aus den benachbarten Verarbeitungselementen sowie der Ergebnisse S. . der Aufsummierungs-Berechnungen und der Vektor-JPaten c " und r . Ferner ist jedes Verarbeitungselement mit
i j
einer Nummer bezeichnet, das seine Lage in der Orthogonalanordnung angibt. Wenn das Verarbeitungselement an dem
-10- DE 4631
bezeichnet ist, können die vorangehend angeführten Gleichungen (1), (2) und (3) mit folgenden Betriebsvorgängen vollzogen werden:
ρ- (i) Aus einem links einem Element PE angrenzenden
i, j Element PE und einem unten an das Element PE
i-1 .i . i, j
angrenzenden Element PE (oder alternativ aus einem
i, j-1
Eingangsanschluß am linken Rand und einem Eingangsanschluß am unteren Rand) werden die zwei Arten von Vektordaten c. und r. eingegeben und es wird der Abstand zwischen diesen Vektoren gemäß der Gleichung (1) ermittelt. (ii) Die Vektordaten c und r werden jeweils zu ei-
i j
nem nach rechts angrenzenden Element PE und einem
i + 1 , j oben angrenzenden Element PE übertragen.
i, j +1
._ (iii) Aus dem links angrenzenden Element PE wird ein Aufsummierungs-Rechenergebnis S eingegeben, wäh-
i-1 , i rend aus dem unten angrenzenden Element PE. ein Vergleichs-Rechenergebnis min (S ,S j eingegeben
i, j -1 i -1 , j -1 wird; es wird eine Vergleichsberechnung mm { S
ι i-1, j
min(S. . , S. . )/ ausgeführt; zu dem Ergebnis dieser Berechnung wifa der bei dem Schritt (i) ermittelte Abstand D.. addiert, um S.. zu erhalten. (iv) Es wird eine Vergleichsberechnung min (S , S .)
ij i-1, J ausgeführt; das Ergebnis dieser Berechnung wird zu
dem oben angrenzenden Element PE übertragen, wähi,j +1
rend zu dem rechts angrenzenden Element PE das Auf-
i+1 , i
summierungs-Rechenergebnis S übertragen wird.
i,j
Die Schritte (iii) und (iv) stellen die Aufbereitung gemäß der Vergleichs- und Aufsummierungs-Rechengleichung 30
(2) dar. D.h., von den für das Erfüllen der Rechengleichung (2) in dem Element PE benötigten dreierlei
ij Aufsummierungsergebnissen S ,S und S
i,j-1 ± — 1 , j i-1,i-1 liegen die Ergebnisse S "und S jeweils in dem
i, i-1 i-1,j
rechts angrenzenden Element PE bzw. dem links an- * 1,j-1
grenzenden Element PE vor, während das Ergebnis
i-1,j
-11- DE 4631
S. . in einem Element PE. . vorliegt, welches dem Element PE-. diagonal benachbart ist.
c 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. . erforderlich sind. Falls jedoch in dem Element PE ' , über das das Ergebnis S
i, j-r s i-1,j-1
ir. übertragen wird, die Ergebnisse S und S im
i, i-1 i-1, j-1
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 übertragenen Datenwert S ausge-
i-1, j . i-1 , j
_ führt werden kann, ist das Endergebnis gleich demjenigen der Vergleichsberechnung der drei Datenwerte gemäß der
Gleichung (2) in dem Element PE
ij
Diese Vorgänge machen es möglich, ein Aufsummierungs-Endor» ergebnis S zu erhalten, während die Abstände D. . zwi-I fH i, j
sehen Vektoren und die Aufsummierungsergebnisse S. . dadurch berechnet werden, daß hinsichtlich des Aufftereitungsinhalts aller Verarbeitungselemente die Vorgänge gemäß den Schritten (i) bis (iv) für alle Verarbeitungsele-
__ mente an den in Fig. 1 durch ausgezogene Linien darge-25
stellten 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) ausge-35
glichen werden muß. Eine ausführliche Erläuterung dieses
3506743
-12- DE 4631
Umstands ist hier weggelassen.
Die Fig. 2A und 2B, 3A und 3B, 4A und 4B sowie 5A und 5B c 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 Ortsfestlegung 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. , S. , S. gemäß
o_ der Gleichung (4) sowie die Aufnahme der drei Datenwerte, 25
die den Vergleichsberechnungen zu unterziehen sind, über zwei Verarbeitungselemente ausgeführt werden.
/S1-.
i-2, j-1 + ^i-I, j
si-l, j-1 + Dij / ···. (4) Si-I, j-2 + 2D1r j_!
-13- DE 4631
Bei den angewandten Verfahren kann die Vergleichsberechnung in dem Element PE.. vorgenommen werden, nachdem in dieses diese drei Datenwerte eingegeben wurden. Daher
g wird die parallel auszuführende Aufbereitung in einem jeden Verarbeitungselement kompliziert; darüberhinaus 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 Zeitversetzungsberechnungen an der Mehrfach-Vektorfolge C (C = r u u u uu
je , c , , c ]; u = 1, 2, . .., 1 ) und der
L1 2 1uJ c ν ν cv,
Mehrfach-Vektorfolge R (R = ir , r ,...,r f ; ν =
ν ν 1 2 Nv 1, 2, ...., 1 ) für die positiven ganzen Zahlen N und I Werte Nmax = ( max N ) und Imax = ( max I )
Kv<l ν Ku<l u
gewählt werden ' " r e " c
wobei die Anzahl der erforderlichen Verarbeitungselemente (Nmax χ Imax) ist.
Infolgedessen gibt es bei der Verarbeitung der Vektorfolgen C und R eine Vielzahl von Verarbeitungselementen,
u ν
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-30
Rechenaufbereitung unnötig sind. Infolgedessen wird keine wirksame Nutzung des Schaltungsaufbaus erzielt.
Darüberhinaus bildet die Erfordernis, die Anzahl notwendiger Verarbeitungselemente entsprechend der maximalen 35
Anzahl von zu verarbeitenden Daten zu bestimmen, eine
-14- DE 4631
große Behinderung hinsichtlich einer Verringerung der Systemmaße 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 beispielsweise in einem einzigen hochintegrierten bzw. LSI-Baustein vier Verarbeitungselemente untergebracht werden jQ 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 Verarbeitungsrechner eingegeben werden.
Wenn bei der vorstehend beschriebenen Anordnung die Ver-
nr. arbeitung für eine bestimmte Vektorfolge R auszuführen zu ν
ist, die der Bedingung N < Nmax (v = 1, 2, ..., 1 ) er-
v r
füllt, tritt gleichzeitig ein Endergebnis aus jedem Verarbeitungselement PE , N auf (wobei jedem Verarbei-
i ν
tungselement eine Nummer zugeteilt ist und das Verarbeitungselement 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 die-30
ses 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., Nmax das Endergebnis für diese Vektorfolge R ausgegeben ν
werden, wobei die Elemente von der Spalte (N +1) bis zu
der Spalte Nmax dazu dienen müssen,, diese Verarbeitungsergebnisse unverändert zu übertragen. Eine solche Steuerung ist für jede Vektorfolge R notwendig. Da die Ver-
teilung der Elemente, die die Verarbeitungsergebnisse un-5
verä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 Aus-10
tausch von Steuersignalen zwischen dem jeweiligen Element und dem Verarbeitungscomputer sowie die Eingabe der Befehle in ein jeweiliges Element außerordentlich kompliziert werden.
Im Hinblick darauf liegt der Erfindung die Aufgabe zugrunde, einen Matrixprozessor zu schaffen, bei dem eine Parallelverarbeitung unter hohem Wirkungsgrad zur Berechnung aller Kombinationen zweier Arten von Variablen und zur Berechnung von Rekursivformelgleichungen mit Ortsab-
hängigkeit unter Verwendung der Ergebnisse dieser Berechnung, wie es für die dynamische Zeitversetzungs-Berechnung typisch ist, in einer Anordnung aus einer Anzahl von Verarbeitungselementen erreicht wird, die einer auszuführenden Berechnungsmenge entspricht, wobei jedes Element wirkungsvoll arbeitet.
Ferner ist es Aufgabe der Erfindung, ein Matrixprozessor-Steuerverfahren zu schaffen, bei dem jedes den Matrixprozessor bildende Verarbeitungselement eingebaute Befehle
enthält und bei dem jedes Verarbeitungselement innerhalb der gesamten Verarbeitung in der Anordnung seine eigenen Bedingungen für das Einleiten bzw. Ausführen entsprechender Befehle ermittelt, so daß in der Anordnung eine
selbstständige Steuerung ausgeführt wird. 35
ORiGiNAL INSPECTED
-16- DE 4631
Bei dem Matrixprozessor bzw. dem Verfahren zur Steuerung desselben sind Werte I und N sowie η positive ganze Zahlen. Der Zusammenhang zwischen N und η wird tatsächlich innerhalb eines Bereichs geregelt, der durch modN bzw.
(Rest N/n) definiert ist, wodurch der Divisionsrest bei der Division von N durch η bezeichnet ist.
^ Die Aufgabe wird hinsichtlich des Matrixprozessors erfindungsgemäß mit den im Patentanspruch 1 genannten Mitteln gelöst.
Vorteilhafte Ausgestaltungen des erfindungsgemäßen
Matrixpri geführt.
Matrixprozessors sind in den Unteransprüchen 2 und 3 auf-
Hinsichtlich des Steuerverfahrens für den Matrixprozessor wird die Aufgabe mit den in dem Patentanspruch 4 genannten Maßnahmen gelöst.
Eine vorteilhafte Ausgestaltung des erfindungsgemäßen Steuerverfahrens ist in dem Unteranspruch 5 angeführt.
o_ Die Erfindung wird nachstehend anhand von Ausführungsbei-25
spielen unter Bezugnahme auf die Zeichnung näher erläutert.
Fig. 1 ist eine Darstellung, die ein Beispiel für die
Gestaltung eines herkömmlichen Orthogonal-Matrixprozessors zeigt.
Fig. 2A und 2B, 3A und 3B, 4A und 4B sowie 5A und 5B
sind Darstellungen, die ein Beispiel von Verarbeitungsvorgängen in dem herkömmlichen Matrix-35
prozessor veranschaulichen.
-17- DE 4631
Fig. 6 ist ein Blockschaltbild des erfindungsgemäßen
Matrixprozessors gemäß einem ersten Ausführungsbeispiel.
Fig. 7 ist ein Blockschaltbild, das eine Ausführungsform eines Verarbeitungselements in dem erfindungsgemäßen Matrixprozessor gemäß dem ersten Ausführungsbeispiel zeigt.
Fig. 8 ist eine Darstellung zur Erläuterung eines Beispiels von Verarbeitungsvorgängen in dem in Fig. 6 gezeigten Matrixprozessor.
Fig. 9 ist 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 ist eine Darstellung zur Erläuterung eines Beispiels von Verarbeitungsvorgängen in einem jeweiligen Verarbeitungselement.
__ Fig. 11 ist ein Blockschaltbild, das ein zweites Aus-
führungsbeispiel des erfindungsgemäßen Matrixprozessors zeigt, bei dem Verarbeitungselemente ringförmig angeordnet und verbunden sind.
Fig. 12 ist eine Darstellung zur Erläuterung eines Bei-30
spiels für eine Kennung, die Eingangs-Vektor-
daten hinzugefügt wird.
Fig. 13 ist eine Blockdarstellung, die ein Beispiel von
Steuervorgängen für ein Zustandskennungsregi-35
ster in dem Verarbeitungselement veranschaulicht.
-18- DE 4631
Fig. 14A bis 14E sind Darstellungen zur Erläuterung von Beispielen von Steuervorgängen bei der Ausführung einer dynamischen Zeitversetzungs-Berechc nung in dem in Fig. 11 gezeigten Matrixprozessor.
Fig. 15 ist ein Blockschaltbild einer Ausführungsform
einer Schaltungsanordnung, bei der in den Ver-.n arbeitungselementen als Teil des Matrixprozessors jeweils eine Steuereinheit für das Ausführen des erfindungsgemäßen Steuerverfahrens eingebaut ist.
.c Fig. 16Ä bis 161 sind Darstellungen, die ein Beispiel 1 b
von Steuervorgängen bei der Ausführung einer Matrixmultiplikation in einem Matrixprozessor mit Orthogonalanordnung veranschaulichen.
Fig. 17 ist ein Ablaufdiagramm, das ein Beispiel für den
Steuerungsablauf einer Steuerlogik in der Steuereinheit eines jeweiligen Verarbeitungselements zeigt.
Fig. 18 ist ein Ablaufdiagramm, das ein Beispiel für den 25
Steuerungsablauf in der Steuereinheit in einem jeweiligen Verarbeitungselement zeigt.
Die Fig. 6 zeigt ein Ausführungsbeispiel des erfindungsgemäßen Matrixprozessors, in dem als Beispiel für eine 30
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 und R (u = 1, 2, .·., 1 ; ν = 1 , 2 , . . . ,
uv c
1 ) berechnet bzw. gelöst werden. 35 r
-19- DE 4631
Nach Fig. 6 ist eine Anzahl η von Verarbeitungselementen (PE) angenommen. Mit 1 ist ein einzelnes Element bezeichnet, das eine Recheneinheit für Additionen, Subtraktiog nen, Vergleichsberechnungen, wie 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. D.h., bei dem einen Zustand werden gleichzeitig in die Anordnung (entsprechend der Anzahl der Verarbeitungselemente) η Ein-
u
gangs-Vektordaten c (i = 1, 2, ... I) aus externen
i u
Quellen eingegeben, während bei dem zweiten Zustand die u
Eingangs-Vektordaten c. umlaufend bzw. im Kreis jeweils aus dem benachbarten Element übertragen werden. Wenn beispielsweise von einem Element PE an in jedes Element der
1 uu u Anordnung η Eingangs-Vektordatenfolgen c , c , ..., c
1 2 η
eingegeben werden, wählt der Multiplexer 2-1 eine von 25
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
1 uu
jeweiliger der η Eingangs-Vektordatenwerte c , c ,..., u 12
c durch das aufeinanderfolgende Obertragen der Ein-
n u
gangs-Vektordaten c. 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 Eingangsuu u
Vektordatenfolgen c , c , ..., c umlaufend zwischen
12 η
-20- DE 4631
den Elementen übertragen werden. Jedes Verarbeitungselement ist so gestaltet, daß jedesmal dann, wenn die vorstehend genannten η Eingangs-Vektordatenmuster gewechselt
g 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
in N durch η (modN). iU η
Mit 4 ist eine Eingabe/Ausgabe-Sammelleitung zur aufeinanderfolgenden Eingabe von Vektordaten der anderen Ein-
gangs-Vektordatenfolge R ={r ,r ,...,r } (k = 1 ,
ν 1 2 Nv
r- 2, ..., 1 ) in das jeweilige Element sowie ferner zur x
Ausgabe von Rechenendergebnissen S ,S ,...,S * I ,N ' I ,N ' ' I
1 ' 1 Γ 2 u.
,...., S . Mit 5 ist der Datenübertragungsweg
N I ,N
v 1C l
^r u
__ für die Ringübertragung der Eingangs-Vektordaten c zwi-JU i
sehen 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 ot. Verarbeitungselements bezeichnet. Mit 7, 8 und 9 sind je-
weils die Eingangs-Vektordaten c und r (i=1, 2,...I ;
i j u
j=1, 2, , N ; u = 1 , 2, , 1 ; v=1 , 2,...,1 ) bzw.
ν er
Rechenendergebnisse S ,S ,...,S ,...,S
* I ,N ' I ,N ' ' I ,N ' I ,N
11 12 u' ν 1C 1T
bezeichnet. Mit 10 ist die Steuereinheit für die Steue-
rung 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 beinhaltet.
Die Fig. 7 zeigt eine Ausführungsform der Gestaltung
-21- DE 4631
eines jeweiligen Verarbeitungselernents. Das einzelne Verarbeitungselement 1 ist mit einer strichpunktierten Linie umrahmt. Mit 4 ist die externe Eingabe/Ausgabe-Sammellei-
v tung für die Eingabe der Vektordaten r (j=1,2,...N ) in
j ν
das jeweilige Element und für die Ausgabe der Rechenendergebnisse S bezeichnet. Mit 12 ist ein Eingabe/ 1N
Ausgabe-Anschluß für die Aufnahme von Daten aus der Sammelleitung 4 sowie für die Übertragung von Daten zur Sammelleitung 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
Mit 15 ist ein Puffer-Register (zweites Register) für das Speichern aus der Sammelleitung 4 eingegebener Vektordaten r. bezeichnet. Mit 16 ist ein Pufferregister (viertes
on Register) zum Speichern der Rechenendergebnisse S
ΑΌ I u, N ν
und die Ausgabe derselben an die Sammelleitung 4 bezeichnet. Mit 17 ist ein Register (erstes Register) zum Speichern der aus dem benachbarten Element eingegebenen Vek-
oc tordaten c (i=1, 2,..., I ) sowie eingegebener Daten,
At3 i u
die bei der Berechnung des kumulativen bzw. Summen-Rechenergebnisses S.. benötigt werden, das bei nachfolgend beschriebenen Verärbeitungsvorgängen (b) und (c) berechnet wird. Mit 18 ist ein Register (drittes Register) für
u das Übertragen der Vektordaten c zu dem benachbarten
du χ
Element und zur Datenübertragung für das Berechnen des Summen-Rechenergebnisses S bezeichnet. Mit 19 ist eine
ij interne Sammelleitung bezeichnet.
Mit 20 und 21 sind jeweils Pufferspeicher bezeichnet, die
ob vj ui
alle Komponenten r bzw. c (k=1, 2,...,m) der Vek-
k k
-22- DE 4631
vu
tordaten r bzw. c speichern, welche in die jeweiligen
j i
Elemente einzugeben sind. Mit 22-1 ist eine Addier/Subtrahier-Einheit zur Addition und Subtraktion bezeichnet, ρ- während mit 22-2 ein Akkumulator bzw. Akkumulatorregister zum Akkumulieren des Ergebnisses aus der Addier/Subtrahier-Einheit 22-1 bezeichnet ist. Mit 22-3 ist eine Produktsummeneinheit zur Produktsummenberechnung bezeichnet. Durch die Einheiten 22-1 und 22-3 sowie den Akkumulator
1„ 22-2 ist eine arithmetische bzw. Recheneinheit 22 gebildet, die die Berechnungen gemäß den Gleichungen (1) und (2) ausführt. Die Addier/Subtrahier-Einheit 22-1 kann beispielsweise eine Einheit 54F385 oder 74F385 von Fairchild, Inc. sein. Die Produktsummeneinheit 22-3 kann beispielsweise eine Einheit ADSP-1010 von Analog Devices, Inc. sein. 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. D.h., der Be-
reich 23-1 speichert Daten, die während der Ringübertra-
gung der Eingangs-Vektordaten c. für das Ausführen nachstehend beschriebener Verarbeitungsvorgänge (a), (b) und (c) erforderlich sind, während der Bereich 23-2 Daten
speichert, die für die Ausführung der Verarbeitungsvor-25
gänge (b) und (c) erforderlich sind, welche unmittelbar dem Wechsel von η Vektorfolgen aus Vektorfolgen C ,
C ..., C folgen. 2 1c
Mit 24 ist eine Verarbeitungselement-Steuereinheit bezeichnet, die eine Steuerung nach einem internen Mikroprogramm oder nach Befehlen aus einer externen Quelle ausführt. Die Steuereinheit 24 hat eine Steuerlogik 24-1, einen Programmspeicher 24-2 zum Speichern des internen
Mikroprogrammes, einen Programmzähler 24-3 zum Steuern 35
des Programmspeichers 24-2, ein Befehlsregister 24-4 für
3506743
-23- DE 4631
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 Da-
g ten. 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 Speicherbereich 23-1, der die Daten speichert, welche für die einzelne bzw. gesonderte Verarbeitung bei den Verarbeitungsvorgängen (b) und (c) erforderlich sind.
Mit 29, 30, 31 und 32 sind jeweils Wähler bezeichnet, die durch die Element-Steuereinheit 2 4 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 Obertragens des Rechenergebnisses aus dem
Register 18 zu dem Register 17 des benachbarten Verarbei-30
tungselernents 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., die in den
nachfolgend angeführten Absätzen für die Verarbeitungs-35
vorgänge (a), (b) und (c) zur Berechnung von D und S
ii ii
DE 4631
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 Zeitintervall genutzt, während dem das jeweilige Element die vorstehend beschriebenen Berechnungen ausführt, wobei der normale Verarbeitungsablauf überhaupt nicht gestört wird, wenn das Eingangs-Vektordatenmuster geändert wird.
Die nachstehende Tabelle 1 zeigt eine Ausführungsform des Programmspeichers.
TABELLE 1
i ί CD M21 ♦ R18 ! T13 + R17 j ) R17 R17 j Rl· DATENÜBERTRAGUNG j 2 + M23-1 T12 + R15 j R15 * M20 M20 * U22-1 (cj;-rj)*U22-2 KbANb r j) 2 1 i j 2 : ; CO
M21 * R18 ! T13 ♦ R17 ] R17 R17 j R18 T12 ♦ R15 j R15 * M20 M20 * U22-1 {ci,-rj)-»U22-2 1 C1-^, 2
/
!ck"rk) cn
M21 - R18 ! T13 ♦ R17 ! R17 * M21 ! R17 T12 + R15 J R15 + M20 M20 - U22-1 ( I
I
( i j ! O
M21 * R18 ! T13 ♦ R17 ♦ M21 I t * U22-1 j U22-1 T12 ♦ R15 i R15 * M20 J \ k k CD
ι i M21 - R18 R17 - M21 R17 ♦ U22-1 [ U22-1 T12 ♦ R15 M20 * U22-1 J i
/
T13 *
R17 R17 + U22-1 I U22-1 S R15 ♦ M20 M20 * U22-1 ; 2
M21 * R18 ! T13 * R17 * M21 U22-1 T12 + R15 R15 * M20 ! M20 + U22-1 i j u.
[Qj * M21 ί U22-1 cm-l' m-1
j φ! ♦ M21 R17 + U22-1 ! ► U22-1 -
i
j
» \i R17 * U22-1 I M23-2 2-2'
i ^ @i I j R17 + U22-1 M23-1
®'\ I ' kSi
®: ; m
.2·) φ! m •k=l
φ! Σ (c !
M23-1
©j T13 i_r]
k V
MINIMUM ♦ A
R17
I M23-J ADD * A
M23-] R18
A JM23-2 R17 MINIMUM * A
IT13 M23-2
JR17
M23-2 M23-2 + R16
A R16 + T12
A
A
cie» -o m
μ = SPEICHBf1 π = EINHEIT
ANSCHLUSS AKKUMULATOR
R = Register
CO
-26- DE 4631
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 und r gleichzeitig ein-
i i
gegeben 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 Summenendergebnisses 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). (T) betrifft das Laden bzw. Eingeben von D.., während (2) und (3) jeweils der Übertragung des Vergleichsergebnisses min
(S ,S ) bzw. der Eingabe von min (S ,
i - 2, i i-1,i ^^ s^. i-1,i-1
S. . j entsprechen. (A) bis (ß) stellen die Ausruhrungsfolge der Vergleichsberechnung für min { S , min(S
rs rs ^-I > j i~ , S )/ dar. (6) bis (8) stellen die Ablauffolge
1 A ] -1 i . j -1
fur das Addieren von D zu diesem Vergleichsergebnis und ü
damit zum Erzielen von S dar. (8) bis QJ) entsprechen
i j
dem Eingeben von S.. gleichzeitig mit dem Erhalten des Vergleichsergebnisses min (S ,S), das zu dem be-
i -1 > j i j nachbarten Element zu übertragen ist.
Die Steuerlogik 24-1 in der Steuereinheit 24 ist derart
gestaltet, daß der in Fig. 17 gezeigte Steuerungsablauf ausgeführt wird. In der Fig. 17 sind mit q , q und q jeweils Steuersignale bezeichnet, die den jeweiligen Verarbeitungselementen aus einer externen Steuereinheit wie 35
einem Verarbeitungscomputer zugeführt werden und die je-
-27- DE 4631
weils den Eingabestatus für die Vektordaten r., den Ausfü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 Anfangsadresse 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 , f und f gesetzt werden. Diese Kennungen
5,62 3
f , f und f sind jeweils Kennungen, die ein fünftes
5,6 2 3
und ein sechtes 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 irgendwelcher 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 Prozesszeiteinheit.
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 35
Ausrechnung der Gleichungen (1) und (2) für Gitterpunkte
Α Ό
-28- DE 4651
an zweidimensionalen Gitterebenen, die durch zwei Arten
von Vektordatenfolgen C bzw. R gebildet werden.
u ν
Die 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 1 Vektordatenfolgen C = {c-U, C-11, . . . , C1 u| (U= 1, 2,....?.., lc)
jQ sowie für 1 Vektordatenfolgen
Rv = { T^, r2 v, , rN V ] (v = 1, 2, , lr).
Die aufeinanderfolgenden Ausführungen werden durch die übliche grafische Darstellung der dynamischen Zeitversetzung dargestellt. In der 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. D.h., Gitterpunkte an der gleichen gestrichelten oder ausgezogenen Linie bedeuten, daß die Daten gleichzeitig in den verschiedenen Elementen auf der Linie verarbeitet werden. Da η Elemente vorgesehen sind, werden während der Verarbeitung immer gleichzeitig die η Gitterpunkte auf der Diagonale verarbeitet. Die
Verarbeitung bei jeder Verarbeitungszeit bewegt sich mit 2b
dem Ablauf der Zeit in einem mit X bezeichneten Bereich
1 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 die Fig. 8 eine solche aufeinanderfolgende 30
Verarbeitung in der Art und Weise der üblichen grafischen Darstellung der dynamischen Zeitversetzung (dynamic time warping). Mit I und II sind Gruppen gestrichelter Linien bezeichnet, die nachfolgend erläutert werden.
-29- DE 4631
Bei dem in Fig. 8 gezeigten Beispiel sind physikalisch gesehen nur η Verarbeitungselemente vorhanden. D.h., es sind nach Fig. 8 nur die η Elemente PE bis PE vorhan-
1 η
den, die in der Zeichnung durch die Zahlen bzw. Bezeichnungen 1 bis η in Kreisen dargestellt sind und die in schräger Richtung an der gleichen Zeitstelle liegen.
Die Fig. 9 veranschaulicht die Dateneingabevorgänge bei jQ einer solchen Anordnung. In Fig. 9 ist angenommen, daß η = 6 ist. Mit 41 ist ein Verarbeitungselement bezeichnet, während mit 42 ein Datenübertragungsweg für die Übertragung von Vektordaten c. (i=1,2,...,I) und Summenergebnissen S zu einem benachbarten Element bezeich-
ii
,c net ist. Mit 43'ist der Fluß der Vektordaten c auf dem i
Datenübertragungsweg zu einem jeweiligen Prozesszeitpunkt bezeichnet. Mit 44 sind Vektordaten r. (j=1,2,....N) an der Eingabe/Ausgabe-Sammelleitung bezeichnet, die zu einem jeweiligen Prozesszeitpunkt in das jeweilige on Element eingegeben werden müssen. Die Prozesszeit 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
12 6 die sechs Elemente eingegeben. Wenn die Aufbereitung der jeweiligen Vektordaten in dem jeweiligen Element abgeschlossen 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 Ein-1 1
nn gangs-Vektordaten c (i=1,2, ,6) führenden Datenüber-
oU i
tragungsweg mit dem Fortschreiten der Prozesszeit aufeinanderfolgend eine Aufstufung um "1". Nach dem Zeitpunkt, an dem die Eingangs-Vektordaten c von dem Element PE zu
i 6
dem Element PE übertragen werden, werden bei jedem Pro-
__ zesszeitpunkt die in dem jeweiligen Element vorhandenen Eingangs-Vektordaten c bis c gleichzeitig zu dem ie-
16
-30- ' DE 4631
weils benachbarten Element übertragen. Andererseits werden synchron mit den Obertragungsvorgängen für die Eingangs-Vektordaten c (i=1,2,....,6) zwischen den iewei-
i
ligen Elementen aufeinanderfolgend in das jeweilige
Element die Eingangs-Vektordaten r. (j=1,2, ,N) eingegeben. 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 Eingangs-Vektordaten-Sammelleitung aus einer externen Quelle
.,- geschaltet wurde, daß aufeinanderfolgend Eingangs-Vektor-11 1
datenfolgen c , c , , c in einer Anzahl eingegeben
1 2 η
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 gleichzeitig die Vektordaten c
(x=1,2,...,n-1J 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 alle Multiplexer 2-1 bis 2-n die Datenü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 umlaufend bzw. im Kreis von Element
zu Element übertragen werden. Ferner zeigen die gestrichelten Linien in der folgenden Gruppe II den Prozess der fortgesetzten Berechnung an, die ausgeführt wird, während die Eingangs-Vektordaten c , c , , c durch die
nächsten n-Vektordaten c ,....,c ,...,c ersetzt n+1 11 i
werden.
-31- DE 4631
Obwohl während einer jeden Prozesszeit in jedes Element
u * ν die beiden Arten von Vektordaten c und r eingegeben
i i werden, so daß in jedem Element unabhängig und parallel
g 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.
.Q Nach Fig. 10 ist beispielsweise die Anzahl η der Verarbeitungselemente gleich "5". Die Fig. 10 veranschaulicht den Verarbeitungsvorgang in jedem Element sowie die Verteilung der durch das jeweilige Element überprüften Gitterpunkte in dem Fall, daß eine durchgehende Verarbeitung
. p. 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 langgezogenen Kreis umrahmt sind, wobei die Zahl an dem oberen linken Rand dieses Rahmens die Verarbeitungselement-Nummer
angibt.
Zum Erreichen beispielsweise des Ergebnisses S nach
7,8 Fig. 10 sind die für die Berechnung von S zu einem
7,8
... Zeitpunkt t notwendigen Daten die Daten S , S und y 1 s 6,7 7.7
S , die mittels der Elemente PE und PE erreicht wer-
6,8 45
den. Da Zeitpunkte t und t in bezug auf den Zeitpunkt t in der Vergangenheit liegen, sind die Daten S in
1 6,8
dem Element PE vorhanden, welches das Ergebnis S be-
5 7,8
ΛΛ rechnet, während die Daten S und S in dem Element 6,7 7,7
PE vorliegen. D.h., die benötigten Daten liegen immer in
4
dem benachbarten Element vor, so daß bei dem Ausführen
der Vergleichsberechnung nach Gleichung (2) für den Wert
S in dem Element PE die Berechnung min(S , S ) ,8 4 6,77,7
ausgeführt wird und das Ergebnis in das Element PE über-5
tragen wird, in dem die Berechnung ininAS , min(S ,
6,8 6,7
-32- DE 4631
S )] ausgeführt wird.
In diesem Fall muß gemäß der vorangehenden Erläuterung
r- zum Aufteilen der Eingangs-Vektordaten C , C , .... C
1 2 Ic
in Gruppen in einer Anzahl, die gleich der Anzahl η der Verarbeitungselemente ist, und zu deren Eingabe in die Anordnung für die Verarbeitung der Wert S , der gemäß
ij
Fig. 10 den mit einer schrägen Linie markierten Gitter-
,Q punkten entspricht, in ein vorbestimmtes Element übertragen werden, bevor der Austausch der Eingangs-Vektordaten beginnt. Beispielsweise ist es erforderlich, daß der in dem Element PE vorliegende Wert S zum Element PE
1 5,1 3
übertragen wird, der Wert S aus dem Element PE zu dem
5,2 2
ie Element PE übertragen wird' der Wert S aus dem EIe-4 * 5,3
ment PE zu dem Element PE übertragen wird, der Wert
S aus dem Element PE zu dem Element PE übertragen
5,4 4 1 ö
wird bzw. der Wert S aus dem Element PE zu dem Element PE übertragen wird.
ir
Allgemein beginnen von dem Zeitpunkt an, der um die (mgd ~..Ν
Zeiteinheiten entsprechende Zeit vor dem Beginn des Austausche der η Vektordaten liegt, nämlich bei dem in
Fig. 10 gezeigten Beispiel von dem Zeitpunkt an, der um 25
die mod17 = 2 ^Rest 17/5) 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
Cp=I,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-35
gelmäßigen Verarbeitungsvorgängen (a), (b) und (c) gemäß
-33- DE 4631
der Beschreibung in den nachfolgenden Absätzen ausführen; dadurch ist es möglich, einem vorbestimmten Element die erforderlichen Daten S bis unmittelbar vor dem Austausch der η Eingangs-Vektordatenfolgen zuzuführen.
Bei dem in Fig. 10 gezeigten Beispiel werden parallel mit der Verarbeitung für Gitterpunkte (c , r ■■) in dem EIe-
1 6 ment PE die an den gleichen Adressen in den Arbeits-
speichern 23-2 der Elemente PE , PE , PE , PE bzw. PE_ vorliegenden Daten S ,S .S ,S bzw. S je-
51 52 5 3 5,4 55 weils zu den benachbarten Elementen übertragen und den Elementen PE , PE , PE , PE bzw. PE zugeordnet. Gleichermaßen werden bei der Verarbeitung für den Gitterpunkt
1(- (c , r ) im Element PE die Daten den Elementen PE_, •••ö 2 6 1 3
PE , PE , PE bzw. PE zugeordnet, wonach dann die Daten-4* S* 1 2 S
übertragung abgeschlossen ist.
Bei der Verarbeitung unmittelbar nach dem Austausch gegen
1 1 1
die nächste Eingangs-Vektordatenfolge c , c , c und 2 5 6 1
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
3 4 5 1 2 Verarbeitungsvorgänge (a), (b) und (c) ausgeführt, wobei die durch die vorangehend beschriebenen zwei Übertragun-
gen erhaltenen Daten S ,S ,S ,S und S
5,1 5,2 5.3 5,4 5,5 herangezogen werden. Durch wiederholtes Ausführen der Verarbeitung auf diese Weise kann jedes Verarbeitungselement regelmäßig und aufeinanderfolgend die dynamische
Zeitversetzungs-Berechnung gemäß den Gleichungen (1), (2) 30
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 η Vektordaten der Ein-35
gangs-Vektordatenfolge C (u=1,2 ,1 ) sowie während
u c
-34- DE 4631
der mit dieser Eingabe und Ringübertragung dieser Vektor-
u
daten c (i = 1 ,2,....,I ) synchronen Eingabe der Vektor-
i ν u
daten r Ij=I,2, N ) in das ieweilige Element ein
j v
c jedes Verarbeitungselement für einen jeweiligen Gitterpunkt 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 Verarbeitung) für ein Verarbeitungselement bei dem Ausführen der Berechnung gemäß den Gleichungen (1) und (2) die folgenden :
(a) Gleichzeitig mit der Eingabe der Vektordaten c.
(i=1,2,...., I) aus dem links benachbarten Element oder aus einer externen Quelle über die Eingangs-Vektordaten-Sammelleitung werden die Vektordaten c. in das rechts benachbarte Element übertragen und synchron mit der Über-
tragung dieser Vektordaten aus der Eingabe/Ausgabe-Sammelleitung die Vektordaten r. (j=1,2,...., N) eingegeben, so daß die Berechnung gemäß'der Gleichung (1) ausgeführt
wird, um D zu erhalten, ii
(b) Es wird die Vergleichsberechnung von min {S ,
i -1 , j
min (S ,S )f vorgenommen und zu diesem Ergeb-
i-1 ,i-1 i,j-1
nis D addiert, um S zu erhalten, ij ij
(c) Es wird die Vergleichsberechnung für min (S. ., i-1 . i
S..) ausgeführt und das Ergebnis zu dem benachbarten Element übertragen. Zugleich wird das Ergebnis der Vergleichsberechnung für min (S , S ) aus dem
i,j-1 i +1 , j -1 links benachbarten Element eingegeben.
Der Verarbeitungsvorgang (a) entspricht dem Ausführen der
ORlGiKAL
-35- DE 4631
Berechnung gemäß der Gleichung (1), während die Verarbeitungsvorgänge (b) und (c) der Ausführung der Berechnungen gemäß den Gleichungen (2) und (3) entsprechen. Gleichg zeitig führt jedes Element die Verarbeitungsvorgänge in der Aufeinanderfolge (a), (b) und (c) aus. D.h., während der Ausführung des Vorgangs (a) wird dieser Vorgang in allen Elementen ausgeführt. Während des Ausführens des Vorgangs (b) wird gleichfalls dieser Vorgang in allen Elementen ausgeführt.
Der grundlegende Unterschied zwischen diesen Betriebsvorgä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 Vergleichsberechnung für min (S , S ) ausgeführt,
i, j-1 i-1 , j-1 nachdem das Summenergebnis S zu dem links
i-1.i-1 benachbarten Element übertragen wurde, während bei den
Betriebsvorgängen im erfindungsgemäßen Matrixprozessor 20
die bei dem nächsten Prozesszeitpunkt zu erhaltenden Daten S und S im gleichen Element vorliegen, so
i-1,i-1 i.j-1
daß die Vergleichsberechnung auch ohne Datenübertragung
ausgeführt werden 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. D.h., es wird
ein einzelner Verarbeitungsvorgang (d), bei dem das Sum-30
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 35
dem das Summenergebnis aus dem benachbarten Element ein-
-36- DE 4631
gegeben wird, zu diesem Datenwert der Vektorzwischenabstand addiert wird und das Ergebnis gespeichert wird. Gemäß der vorstehenden Erläuterung wird bei dem erfindungsgemäßen Matrixprozessor die Anzahl der Verarbeitungselemente völlig unabhängig von den positiven ganzen Zahlen
I und N , welche jeweils die Anzahl der jeweils zu veru ν
arbeitenden Vektordaten darstellen; damit kann die Anzahl der Verarbeitungselemente auf einen geeigneten Wert ent-,Q sprechend dem geschätzten Umfang der Datenverarbeitung gewählt werden; der erfindungsgemäße Matrixprozessor ermöglicht es, die dynamischen Zeitversetzungs-Berechnungen durch parallele Vektorverarbeitung (pipeline parallel processing) auszuführen, die durch den vollen bzw. ständigen Betrieb der Elemente, die wiederholt die regelmässigen Verarbeitungsvorgänge ausführen, die Ausnutzung der Schaltungsanordnung mit maximalem Wirkungsgrad ergibt.
Infolgedessen kann bei dem Einsatz des Verfahrens der Schaltungsintegration in hoher Dichte (des LSI-Verfahrens) für die Gestaltung eines Matrixprozessors im Vergleich zu der herkömmlichen Orthogonalmatrix, bei der die Anzahl der Verarbeitungselemente entsprechend den positiven ganzen Zahlen I und N festgelegt ist, die System-
u ν
abmessungen bei dem erfindungsgemäßen Matrixprozessor außerordentlich klein gehalten werden, wobei ferner die Schaltungsausstattung wirkungsvoll genutzt werden kann. Ferner besteht bei dem erfindungsgemäßen Matrixprozessor die Möglichkeit zur Erweiterung der Anzahl der Verarbei-
tungselemente. D.h., die Verarbeitung für Vektordatenfol-30
gen in irgendeiner gewünschten Anzahl N und I kann
ν u
unabhängig von der Anzahl der Verarbeitungselemente ausgeführt werden.
Als nächstes werden die Leistungen der Orthogonalmatrix 35
und des erfindungsgemäßen Matrixprozessors im Hinblick
-37- DE 4631
auf den Durchsatz je Verarbeitungselement und je Zeiteinheit verglichen, wobei ein mittlerer Nutzungsgrad der Verarbeitungselemente in Betracht gezogen wird.
Von den beiden Arten von Verarbeitungsinhalten in der Orthogonalmatrix, die aus den vorangehend genannten Verarbeitungsvorgängen (i) und (iii) bzw. (ii) und (iv) bestehen, wird angenommen, daß die beiden bei den Arten
in größere Schritteanzahl gleich U ist; ferner wird iU square
vorausgesetzt, daß die Anzahl der dynamischen Schritte
bei der aus den Verarbeitungsvorgängen (a), (b) und (c) bestehenden Verarbeitung in jedem Element der erfindungsgemäßen Anordnung gleich U ist. Bei der Orthogonalring
matrix sind zum Fertigstellen der auf der dynamischen Zeitversetzung beruhenden Anpassungsberechnung für ein Vektordatenpaar durch Anwendung des Verfahrens des abwechselnden Ausführens der beiden Arten von Verarbeitungen (i) und (iii) bzw. (ii) und (iv) 2U Schritte
square erforderlich.
Falls bei der zur Diskussion stehenden Anpassungsberechnung gemäß der dynamischen Zeitversetzung ein Element PE-. die Ausführung der Berechnung gemäß den Gleichungen (1j, (2) und (3) für eine einzelne Vektordatenfolge R zum
Erzielen des Summenergebnisses S vollendet, braucht das
ij
Element PE-, die Verarbeitung für diese Vektordatenfolge R nicht auszuführen, wenn ein Element PE (i'>i, i' >i)
i j diese Berechnung gemäßen diesen Gleichungen ausführt.
Daher kann bei der Ausführung der Verarbeitung für eine Vektordatenfolge R ein nicht zu dieser Verarbeitung
ν
beitragendes Element der Verarbeitung für eine weitere Vektordatenfolge R ,zugeordnet werden. D.h., während das
v4
Summenergebnis S-. für eine erste Vektordatenfolge R berechnet wird, kann auch die Berechnung des Summenergeb-35
nisses S für eine zweite Vektordatenfolge R unter Ü 2
-38- DE 4631
einer Phasendifferenz"2U Schritte 'ausgeführt wer-
S CJ^Ll ei IG
den. Bis zum Erhalten des Rechenendergebnisses ST M für
u' ν
Vektordatenfolgen I und für Vektordatenfolgen R ist beruhend auf der zum Erhalten von Sj, benötigten Einheit 2U der Anzahl dynamischer Schritte die Schritteanzahl (Nmax + Imax) erforderlich, so daß innerhalb der Zeitdauer der (Nmax + Imax) Schritte (Nmax + Imax) Arten von Summen-Endergebnissen Sj N erzielt werden können.
u' ν 10
Andererseits wird erfindungsgemäß die Verarbeitung wiederholt, welche die Anpassungsverarbeitung zwischen Eingangs-Vektordatenfolgen R-, R-,...., R, und jeweils η Vektordatenfolgen der Eingangs-Vektordatenfolgen C., C-, ...C, ist, so daß das Summen-Endergebnis Sj M erreicht wird. u' ν
Aufgrund der vorstehend beschriebenen Verarbeitungsvorgänge der gesamten Anordnung ergibt sich der Wirkungsgrad der Verarbeitungselemente bei der Verarbeitung für alle Kombinationen aus Vektordatenfolgen C1, C9, .... C1 und Vektordatenfolgen R1, R-, ...., R, folgendermaßen:
Orthogonalmatrix:
Zum Erzielen der Endergebnisse für 1 .1 sind (Nmax + Imax rc
+1.1) Schritte in der Einheit 2U erforderlich. Da die Anzahl der Elemente Nmax . Imax ist, ergibt sich der Wirkungsgrad des Elements durch die folgende Gleichung:
(Nmax + Imax + lf . lc). 2Usquare 5^ Nmax . Imax (5)
Erfindungsgemäßer Matrixprozessor:
Mit U . als Verarbeitungsschritteinheit beträgt die An
-39- DE 4631
zahl der Verarbeitungsschritte während des Vorgangs für den Austausch der η Eingangs-Vektordatenfolgen η Schritte und die Anzahl der während der Ringübertragung der Eing gangs-Vektordaten auszuführenden Verarbeitungsschritte
Schritte. Die Verarbeitung der Eingangs-Vektordatenfolgen
C1, C-, , C, wird auf eine Weise vorgenommen, die
äquivalent der Verarbeitung einer einzigen Eingangs-Vektordatenfolge ist; daher ergibt sich die Anzahl der zum Erhalten der Endergebnisse für 1 . 1 erforderlichen Schritte durch folgende Gleichung:
2n
Der erste Ausdruck in der Gleichung (6) stellt die Anzahl 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-
30 tung dar. Ferner gilt _ , 2ct
r1 " mhu = 11U
Da η Elemente vorhanden sind, beträgt der Wirkungsgrad η ring des Elements:
-40- DE 4631
ring =
l,ring
Falls mit N der Mittelwert aus N1, N9, ...., N- be-
el V IZ XC
zeichnet wird und mit I der Mittelwert aus I1, I_, ..., I1 bezeichnet wird, gilt jeweils ^r N , w Z1,-.
iC ν V av' u=T
I 1^-1 so daß die Gleichung (7) folgendermaßen umge-
U C äV
schrieben werden kann: Nmax Imax
)Sq Nav lav ι R ( Nmax + Imax
'i+ attxt; J 2usquare
n2
T "T~t— uring Ac-'-av «-c^av .... (8)
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 Verarbeitungselemente bei der Verarbeitung durch:
= Nmax . Imax . 2Usquare (9)
nsq Nav Jav üring
Nimmt man an, daß jedes Verarbeitungselement in der Orthogonalmatrix eine Einrichtung hat, die das gleichzeitige Ausführen von Eingabe- und Ausgabevorgängen zuläßt, dann
SUt 2Usquare = "ring sowie Nmax > Nav und Imax ^ Xav; somit ergibt die erfindungsgemäße Anordnung immer einen
verbesserten Wirkungsgrad, der höher als derjenige der
-41- DE 4631
Orthogonalanordnung ist. Wenn beispielsweise N = 3/4 Nmax und I = 3/4 Imax gilt, hat die erfindungsgemäße Anordnung einen Wirkungsgrad, der ungefähr 1,8 mal größer als g derjenige der Orthogonalanordnung ist. Falls ferner die herkömmliche Orthogonalanordnung eine Einrichtung hat, die während einer jeden Verarbeitung in einem jeweiligen Element nur das abwechselnde Ausführen der Eingabe- und Ausgabevorgänge zuläßt, dann gilt 2U square< Uring' Dies be~ deutet, daß der relative Wirkungsgrad des erfindungsgemäßen Matrixprozessors im Vergleich zu demjenigen der Orthogonalmatrix sogar noch höher ist.
Die Systemabmessungen bei der Orthogonalmatrix waren ausserordentlich groß, da mindestens (Nmax · Imax) Verarbeitungselemente angeordnet und verbunden werden mußten. Daher wurde bei den herkömmlichen Anordnungen für die Eingabe und Ausgabe an einem jeden Element das Seriellbitverfahren angewandt, um das Element kompakt zu gestalten. Da jedoch bei der in Betracht gezogenen Anpassungsberechnung unter dynamischer Zeitversetzung die zu verarbeitenden Daten Vektordaten sind, bei denen als Einzeldaten gemäß Gleichung (1) die Datenfolgen einer bestimmten Dimension vorliegen, nimmt die Anzahl der Übertragungsschritte
zwischen Verarbeitungselementen außerordentlich zu, falls 25
die Daten in der Form serieller Bitströme eingegeben und ausgegeben werden; infolgedessen ist für die gesamten Berechnungsvorgänge eine längere Zeit erforderlich. Andererseits kann bei der erfindungsgemäßen Anordnung die Anzahl der Verarbeitungselemente beträchtlich verringert werden, so daß hinsichtlich der Abmessungen des Matrixprozessors keinerlei Probleme entstehen, selbst wenn die Daten zwischen den Elementen parallel übertragen werden; die erfindungsgemäße Gestaltung des Matrixprozessors ist sehr
gut zur Verarbeitung von Vektordaten wie solchen geeignet, 35
die bei der in Betracht gezogenen Anpassungsberechnung
-42- DE 4631
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 erfindungsgemäßen Matrixprozessor keine Einschränkung 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 auch der erfindungsgemäße Matrixprozessor zur Ausführung von Berechnungen für alle Kombinationen zweier Arten von Variablen und für irgendwelche Rekursivformelgleichungen mit örtlicher Abhängigkeit der Daten unter Verwendung dieser Rechenergebnisse verwendet werden.
Bei dem erfindungsgemäßen Matrixprozessor sind die Verarbeitungselemente mit vorbestimmten Eingabe/Ausgabevorrichtungen und Rechenvorrichtungen ringförmig über Multiplexer verbunden, mit denen entweder ein Datenübertragungsweg für den Datenaustausch mit benachbarten Elementen oder eine externe Eingabe-Sammelleitung gewählt wird. Ferner sind diese Verarbeitungselemente so gestaltet, daß parallel zu der üblichen Verarbeitung in einem jeden Element 25
die gleichzeitige Übertragung der jeweiligen Verarbeitungsergebnisse durch alle Elemente zu benachbarten Elementen 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ängigkeit der Daten unter Verwendung der Ergebnisse dieser Berechnung, wie es bei der Anpassungsberechnung unter dynamischer Zeitversetzung (dynamic time warping) typisch ist,
mit einer Anordnung aus einer dem Umfang der auszuführen-35
den Berechnung entsprechend geeigneten Anzahl von Verar-
-43- DE 4631
beitungselementen durch Parallelverarbeitung mit hohem Wirkungsgrad auszuführen, während alle Verarbeitungselemente mit hohem Wirkungsgrad arbeiten.
Bei der durch die Gleichungen (1) bis (3) dargestellten Berechnung wird als Endergebnis der Verarbeitung der Wert S. N gefordert. Ein Verfahren zum Steuern eines erfindungsgemäßen Matrixprozessors wird nun anhand eines Falls n erläutert, bei dem die vorangehend genannten dynamischen Zeitversetzungs-Berechnungen im Hinblick auf alle Kombinationen aus einer einzige Vektorfolge C und 1 Vektorfolgen R (p = 1,2,....,1) ausgeführt werden, um als Endergeb
nis S",N zu erhalten.
Die Fig. 11 zeigt ein Ausführungsbeispiel für die Gestaltung eines Matrixprozessors, bei dem Verarbeitungselemente ringförmig angeordnet und verbunden sind. Nach Fig. 11 sind η Verarbeitungselemente vorgesehen (n * N ). An diesem Matrixprozessor wird das erfindungsgemäße Steuerverfahren angewandt.
In Fig. 11 ist mit 51 ein Verarbeitungselement (PE) bezeichnet, das eine Recheneinheit zur Addition, Subtraktion,
Vergleichsberechnung und Produktsummenberechnung enthält, 25
die für die Berechnung gemäß der vorangehend genannten Gleichung (1) erforderlich sind. Das Element 51 hat Register für den Datenaustausch mit einem benachbarten Element und mit einer externen Quelle, einen Speicher zum
Speichern von Rechenergebnissen und übertragenen DAten 30
sowie eine Steuereinheit zum Steuern eines jeweiligen Abschnitts 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-35
nem Zeitpunkt η Eingangsvektordaten c. (entsprechend der
-44- DE 4631
Anzahl η der Elemente) eingibt, oder einen Datenübertragungsweg 55 anwählen, auf dem Eingangs-Vektordaten c aus einem benachbarten Element übertragen werden. Mit 54 ist
c eine Eingabe/Ausgabe-Sammelleitung bezeichnet, die für die Eingabe von Eingangs-Vektordaten r? sowie für die Ausgabe der Rechenendergebnisse S?,N an einen externen Bestimmungsort eingesetzt wird. Der Datenübertragungsweg 55 überträgt die Daten c und Zwischenergebnisse S-? (j=1,
2, , N -1) zwischen den Elementen. Mit 56 sind an
die Sammelleitung 54 angeschlossene Eingabe/Ausgabe-Anschlüsse der jeweiligen Elemente bezeichnet. Mit 57 ist ein Gesamtsteuersystem wie ein Verarbeitungscomputer bezeichnet, der den jeweiligen Elementen Steuersignale 58
, _ liefert. Mit 59, 60 und 61 sind jeweils Eingangs-Vektorb
datenfolgen C, Eingangs-Vektordatenfolgen R (p = 1 , 2 , . . . . 1)
bzw. Rechenendergebnisse S? N (p=1,2, ,1; i=1,2,....I)
bezeichnet. P
Bei dem dermaßen gestalteten Matrixprozessor laufen die dynamischen Zeitversetzungs-Berechnungen gemäß den Gleichungen (1) bis (3) folgendermaßen ab:
Datenfolgen, die durch das Aufteilen von Eingangs-Vektor-
datenfolgen C in Folgen aus η Daten (entsprechend der An-25
zahl η der Elemente) erzielt werden, sind folgendermaßen gegeben:
ς _ (r r r r
A KIl I ιχϊι L Kll + q ν.Λ+ ι ) Jl
30 <.
wobei k=0, 1, 2, ....; q = 1,2, , n-1 und kn+q ■= I gilt,
Der Verarbeitungsablauf beinhaltet das wiederholte Ausführen folgender Vorgänge (I) bis (V) für k=0, 1, 2,...:
(I) Der Multiplexer für das Element, das in der mod γ **
( _1N )-ten Aufeinanderfolge in Zählung von dem
-45- DE 4631
Element her angeordnet ist, in welchem die Verarbeitung zwischen der Eingangs-Vektordatenfolge S, und allen Eingangs-Vektordatenfolgen R (p=1,2,... c 1) beginnt, wird auf die externe Sammelleitung geschaltet, um die Eingabe einer nachfolgenden Eingangs-Vektordatenfolge S, aufzunehmen. Synchron mit dieser Dateneingabe beginnt die Berechnung für alle Eingangs-Datenfolgen R , während in jedes Element aufeinanderfolgend die Eingangs-Vektordaten r" eingegeben werden. Wenn k=0 gilt, wird der Multiplexer für irgendein Element auf die externe Sammelleitung geschaltet und diese Verarbeitung ausgeführt.
(II) Die Eingangs-Vektordatenfolge S, wird in die Anordnung eingegeben; wenn die die Datenfolge S, bildenden Daten den verschiedenen Elementen zugeordnet sind, wählen alle Multiplexer die Datenübertragungswege zwischen den Elementen. Zugleich wer-
den in allen Elementen die Daten ringförmig zwischen den Elementen übertragen; während synchron mit dieser Datenübertragung in das jeweilige Element die Eingangsdaten r? eingegeben werden, werden für alle Eingangs-Datenfolgen R die Berechnungen
/SO P
gemäß den Gleichungen (1) bis (3) ausgeführt.
(III) Bei der Verarbeitung bei den Vorgängen (I) und (II) wird das Rechenergebnis S? M für jede Eingangs-Vektordatenfolge R an einenFexternen Bestimmungs-P
ort ausgegeben.
(IV) Bei der Verarbeitung bei den Vorgängen (I) und
(II) wird das Rechenergebnis S?, .. ■> . für die
ι.κ+ ι jn, j
letzten Daten cr, .,-, in jeder Eingangs-Vektor- ^ -"
datenfolge S, in den internen Speicher des EIe-
-46- DE 4631
ments eingespeichert,das diese Berechnung ausführt.
(V) Bei der Verarbeitung bei den Vorgängen (I) und (II)
beginnt um InQd(SC1N ) Prozesszeiten vor dem Zeitpunkt, an dem der Austausch der Eingangs-Datenfolge S, beginnt, ein jedes Element gleichzeitig einmal je Prozesszeit einen einzigen Datenwert des in seinen internen Speicher gespeicherten Rechenergebnisses zu übertragen (wobei die Prozesszeit die Zeit ist, die für die Ausführung dre Verarbeitung in einem jeden Element erforderlich ist). D.h., die Übertragung wird insgesamt mpd(:gj;..N )-malig vorgenommen. Ferner wird während der Ringübertragung der 15
Eingangs-Vektordaten C. die Übertragung der Rechenergebnisse zwischen den Elementen in allen Elementen bei jeweils η - modf^. N ) Prozesszeiten wiederholt. Einmal je Prozesszeit wird ein einzelnes Rechenergebnis für ein jeweiliges Element über-
20 η
tragen, so daß insgesamt mod (^Z1N ) Übertragungen erfolgen.
Ein erfindungsgemäßes Steuerverfahren zum Steuern einer
solchen Verarbeitung wird nachfolgend in Absätzen (A) und 25
(B) erläutert.
Die Fig. 12 zeigt ein Beispiel für Kennungen, die für das Ausführen des erfindungsgemäßen Steuerverfahrens den Eingangs-Vektordaten hinzugefügt werden. Mit 61 und 62 sind 30
Kennungen bezeichnet, die den Kopf bzw. das Ende einer jeden Datenfolge anzeigen. Mit 63 sind Kennungen für das Einstellen der Zeit zur gleichzeitigen Übertragung der Rechenergebnisse aller Elemente unmittelbar vor dem Austausch der Eingangs-Vektordatenfolge S, bezeichnet, wäh- -η
rend mit 64 Eingangs-Vektordaten r" bezeichnet sind.
SUSPECTED
-47- DE 4631
(A) Gemäß Fig. 12 werden für jede Eingangs-Vektorda-
tenfolge R den entsprechenden Eingangs-Vektordaten r? die drei Bits der Kennungen 61 und 62 für das Anzeigen des c Kopfs und des Endes einer jeden Datenfolge sowie der Kennung 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, hinzugefü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 Anorndung zu spielen hat,
._ nämlich von Informationen über den Eingabezustand der
° ώ
Eingangs-Vektordaten r" und über Zählvorgänge für die Anzahl gleichzeitiger Übertragungen der Rechenergebnisse zwischen allen Elementen bzw. von Umordnungsvorgängen.
Die Fig. 13 zeigt ein Beispiel eines Steuervorgangs des Zustandkennungsregisters in einem Element. Die Figur zeigt einen Vorgang für die aufeinanderfolgende Eingabe der Eingangs-Vektordaten r? in das jeweilige Element. Mit 66 ist ein Zustandkennungsregister bezeichnet, das eine Eingabekennung 67 für die Bestimmung eines Eingabezustands der Eingangs-Vektordaten r" und eine Zählkennung 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 30
ist die externe Eingabe/Ausgabe-Sammelleitung bezeichnet.
Mit 55 ist der Datenübertragungsweg zwischen den Elementen bezeichnet.
Bei jeder Prozesszeit wird der Inhalt des Zustandkennungsregisters 66 zu dem benachbarten Element übertragen wobei
der Inhalt dazu dient, den jeweiligen Zustand in dem jeweiligen Element einzustellen, bevor zu der nachfolgenden Prozesszeit die Verarbeitung beginnt. Die Eingangs-Vektordaten r? werden in dasjenige Element eingegeben, dessen Kennung 67 "1" ist. Der Inhalt des Zustandkennungsregisters 66 wird aufeinanderfolgend bei jeder Prozesszeit zu dem benachbarten Element weitergegeben, so daß die Eingangs-Vektordaten r? aufeinanderfolgend in die jeweiligen Elemente ,Q eingegeben werden. Währenddessen werden synchron mit der aufeinanderfolgenden Eingabe der Eingangs-Vektordaten r? die Eingangs-Vektordaten c ringförmig in allen Elementen umgewälzt.
Bei der Anfangseinstellung wird die Kennung 67 in dem Zustandskennungsregister irgendeines der Elemente auf "1" gesetzt, während die Kennungen 67 der übrigen Elemente auf "0" gesetzt werden.
Die beiden Arten von Steuerungsmaßnahmen bzw. Steuerungsvorgängen gemäß den Absätzen (A) und (B) werden kombiniert, so daß das Vorgehen zur Steuerung der Betriebsvorgänge eines vorstehend beschriebenen erfindungsgemäßen Matrixprozessors entsprechend den vorangehend genannten Betriebsvorgängen (I) bis (V) erläutert werden. 25
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, 1=2, N1=O und N9=7 ' ^
ausführt.
In diesen Figuren ist mit 51 das Verarbeitungselement bezeichnet, mit 52 der Multiplexer für das Wählen entweder
des Datenübertragungswegs 55 oder der externen Sammellei-35
tung 53 bezeichnet und mit 54 die externe Eingabe/Ausgabe-
-49- DE 4631
Sammelleitung bezeichnet. Mit 66 ist das Zustandkennungsregister bezeichnet, das die Kennung 67 für das Bestimmen des Eingabezustands der Eingangs-Vektordaten r? und die Kennung 68 für das Zählen der Anzahl von während der Umordnung bzw. Neuzuordnung ausgeführten Übertragungen enthält. Mit 69ist der durch die Umordnung bei der jeweiligen Prozesszeit umzuordnende Datenwert bezeichnet. In der nachfolgenden Erläuterung werden durchgehend die vorangehend die vorangehend genannten verschiedenen Kennungen folgendermaßen bezeichnet:
Den Eingangs-Vektordaten r? 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-20
vorgänge des Elements bei einer jeweiligen Prozesszeit von einer Prozesszeit (t+1), bei der die Eingangs-Vektordatenfolge S1 = Cc1, C2, c,, C4, cJ durch die Eingangs-Vektordatenfolge S? = (cfi, C7, cR, cg, C10) ersetzt wird, bis zu
einer Prozesszeit (t+20), bei der die Eingangs-Vektorda-25
tenfolge S- durch die nächste Eingangs-Vektordatenfolge
S, = Cc11, C1-, C13, C14, C15) ersetzt wird, sowie die Steuerungszustände zu den jeweiligen Zeitpunkten dieser Prozesszeiten. Die Zeiteinheit ist diejenige Zeit, die jedes Verarbeitungselement für die Verarbeitung gemäß den 30
Gleichungen (1) bis (3) in dem Element benötigt.
Die Prozesszeit (t+1) entspricht der Zeit, die um mod(N1+N2) = mod(6+7)= 3 Intervall vor der Prozesszeit (t+4) liegt, bei der der Austausch der Vektordatenfolge S1 durch die Vektordatenfolge S2 beginnt. Unmittelbar vor
-50- DE 4631
dieser Prozesszeit (t+1) wird jedem Element ein nachstehend als Austauschsignal bezeichnetes Steuersignal zugeführt, das die Ausführung des Austauschens der Eingangs-
[- Datenfolge S, befiehlt. Nur das Element PE1 , welches die Information speichert, daß das Element das erste Element ist, in dem die Verarbeitung der eingegebenen Datenfolge S1 beginnt, nimmt dieses Austauschsignal auf und bereitet den Beginn der Umordnung bzw. Neuzuordnung vor.
Bei der vorangehend mit (II) bezeichneten Steuerung wird
2 2 2 2 2
den letzten fünf Datenwerten r,, r., rc, r, und r~ der Ein-
ό 4' b' 6 7
gangs-Vektordatenfolgen R1 und R„ die Übertragkennung "1" hinzugefügt. Daher nimmt das Element PE1, dessen Eingabekennung in dem Zustandkennungsregister zur Prozesszeit (t+1) "1" ist, aus diesen Datenwerten den Datenwert r,- auf, um zu ermitteln, daß die übertragkennung "1" ist, und damit 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 EIe-
menten aufeinanderfolgend der Beginn der Umordnung (in der Richtung des in den Figuren gestrichelt dargestellten Pfeils) gemeldet. Damit werden alle Elemente in einen Übertragszustand für die Umordnung geschaltet.
Als nächstes wird während der Prozesszeit durch alle Elemente parallel mit der Berechnung gemäß den Gleichungen (1) bis (3) auch das Ergebnis der Berechnung übertragen. Bei der Prozesszeit (t+1) werden aus den jeweiligen Elementen die (jeweils in den Elementen PE1, PE7, PE,, PE. bzw. ΡΕς 111 T T
erzielten) Rechenergebnisse S5 ·,, S5 2» ^5 3» ^5 4 unc* ^5 aus dem jeweiligen internen Speicher als erste Übertragungsdaten ausgelesen und durch die Verarbeitung zu diesem Zeitpunkt zu dem benachbarten Element übertragen. Daher werden diese Daten s! r, s! 1, s] -,. si 7 und s! Λ bis zum 5,5' 5,1' 5,2' 5,3 5,4
Beginn der Verarbeitung bei der Prozesszeit (t+2) jeweils i
-51- DE 4631
in die Elemente PE1, PE2, PE3, PE4 und PE5 umgeordnet. Die zur Prozesszeit (t+2) in das Element PE9 eingegebenen Vek-
2
tordaten r6 enthalten keine Information für das Rückstellen des Umordnungszustands, so daß zu diesem Zeitpunkt die Umordnung fortgesetzt wird. Daher werden vor dem Beginn der Verarbeitung bei der Prozesszeit (t+3) diese Daten in die Aufeinanderfolge S5 4, S5 r, S5 1, S5 2 und S5 3 umgeordnet.
Durch das Wiederholen dieser Verarbeitung werden diese Daten vor den Beginn der Verarbeitung zur Prozesszeit (t+4) in die vorbestimmten Elemente in der Aufeinanderfolge S,- -,,
1111 JjJ
Sr ., S5 5, Sr - und Sr 2 umgeordnet. Beispielsweise werden _ die neu in das Element PE. eingeordneten Daten S5 - sofort bei der Verarbeitung bei der Prozesszeit (t+4) eingesetzt, um aus diesem Element PE. die Daten S4- 1 zu erhalten. Das
4 o,l
gleiche gilt auch für die anderen Daten, so daß die in das Element PE1- umgesetzten Daten S1- 7 zum Erhalten der Daten Sn - bei der Prozesszeit (t+5) herangezogen werden. Zur Prozesszeit (t+4) ist in dem Element PE4 der Datenwert renthalten, 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 Elementen (in der Richtung der in den Figuren gestrichelt dargestellten Pfeile ) der Abschluß der Umordnung gemeldet, so daß in allen Elementen die Umordnungszustand-Einstellung
aufgehoben wird. Infolgedessen wird zur Prozesszeit (t+4) 30
in den jeweiligen Elementen nur die Verarbeitung gemäß den
Gleichungen (1) bis (3) ausgeführt.
Nachdem ferner aus dem Gesamt-Steuersystem in jedes Element das Austauschsignal eingegeben wurde, erkennt das 35
erste Element, welches die Eingangs-Vektordaten aufgenom-
-52- DE 4631
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-Vektordatenfolge S, ausführt, wobei der durch dieses Element verwaltete Multiplexer auf die externe Sammelleitung geschaltet wird, so daß er ein Eingangskanal für die Eingangs-Vektordatenfolge S, wird. Danach wird in diesem Element 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 zur Prozesszeit (t+4) von dem Element PE4 ausgeführt.
Die Elemente, die das Anfangs-Element oder das Abschluß-15
Element waren, welche die Berechnung für die ersten Ein-
gangs-Vektordaten aller Vektordatenfolgen R-, R2, , R-,
ausführen, speichern über die Zählvorgänge bei der Umordnung die Informationen für dieses Anfangs-Element oder Abschluß-Element in den Elementen, bis das Anfangs-Element oder das Abschluß-Element für die Umordnung für die nachfolgende Datenfolge S.- bestimmt wird. Danach werden die Betriebsvorgänge jedesmal dann erneut begonnen, wenn in diesen Elementen im Zustandkennungsregister die Eingabekennung auftritt, wobei dann die vorstehend beschriebene 25
Umordnung ausgeführt wird. Bei dem in Fig. 14B gezeigten Beispiel erfolgt die zweite Umordnung während der Zeitdauer von der Prozesszeit (t+6) bis zur Prozesszeit (t+8).
Durch diese zweite Umordnung werden in die vorbestimmten
12 2 2
Elemente die Rechenergebnisse S,- c, Sc 1, Sc o, Sc ? und 2 5,6' 5,1» 5,2» 5,3
Sr λ neu eingeordnet, die die zweiten Übertragungsdaten für das jeweilige Element sind. Durch eine dritte Umordnung während der Zeitdauer von der Prozesszeit (t+11) bis zur Prozesszeit (t+13) werden in die vorbestimmten Elemente
2 2 2
die Rechenergebnisse Sc r, Sc Λ und Sc - neu eingeordnet. 5,5» 5,6 5,7
[MSi3ECTED
-53- DE 4631
Zur Prozesszeit (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 c Abschluß-Element für die Umordnung sind. In dem Element PE. wird die Information eingestellt, die das Anfangs-Element für die Verarbeitung der Eingangs-Vektordatenfolge S2 anzeigt; es wird das aus dem Gesamt-Steuersystem unmittelbar vor dieser Prozesszeit gesendete Austauschsignal über-
2 ,Q prüft; die den Eingangs-Vektordaten r5 hinzugefügte Übertragkennung wird als "1" ermittelt. Daraufhin wird sofort in dem Zustandkennungsregister die Zählkennung gesetzt.
Danach wird nach der Prozesszeit (t+15) der vorangehend be-1(_ 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 Kennungen "1" sind, woraufhin das Element parallel mit der Berechnung gemäß den Gleichungen
t)
(1) bis (3) das Rechenergebnis SV,N an den externen Bestimmungsort abgibt.
Gemäß den Figuren 14A bis 14E wird zur Prozesszeit (t+3)
das Ergebnis S1 n ausgegeben, zur Prozesszeit (t+3) das Zo 2 ' »'
Ergebnis S7 7 ausgegeben, zur Prozesszeit (t+5) das Ergeb-
2
nis S, 7 ausgegeben, zur Prozesszeit (t+6) das Ergebnis
2 2
S. 7 ausgegeben, zur Prozesszeit (t+7) das Ergebnis S,- 7 4, / .j ο, /
ausgegeben, zur Prozesszeit (t+9) das Ergebnis S, , aus-
on gegeben, zur Prozesszeit (t+10) das Ergebnis S7 fi ausge-ι ^ > ο
geben, zur Prozesszeit Ct+11) das Ergebnis S0 , ausgege-
1 ο , ο
ben, zur Prozesszeit (t+12) das Ergebnis S0 , ausgegeben,
1 y, ο
zur Prozesszeit (t+13) das Ergebnis S10 , ausgegeben, zur Prozesszeit (t+16) das Ergebnis Sfi 7 ausgegeben, zur Pro-
zesszeit (t+17) das Ergebnis S7 7 ausgegeben, zur Prozess-2 *
zeit (t+18) das Ergebnis Sg 7 ausgegeben, zur Prozesszeit
-54- DE 4631
2
(t+19) das Ergebnis SQ 7 ausgegeben und zur Prozesszeit
Ct+20) das Ergebnis S.Q 7 ausgegeben. Auf diese Weise werden die Rechenergebnisse für die Eingangs-Vektordatenfolge S- an die externen Bestimmungsorte in der Aufeinanderfolge
S6' S7,6' S8,6' S9,6> S10,6' S6,7' S7,7' S8,7' S9,7 Und 7 ausgegeben.
Die das Anfangs-Element für die Verarbeitung für die jeweilige Eingangs-Vektordatenfolge S, anzeigende Information wird rückgesetzt, nachdem die Übertragkennung als "1" ermittelt wurde und festgestellt wurde, daß die Zählkennung auf "1" gesetzt ist. Ferner wird dann, wenn die Übertragkennung "1" ist, die das Anfangs-Element für die Umordnung anzeigende Information auf "1" gesetzt, wenn die Zählkennung "0" ist, und die Information nicht geändert, wenn diese 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, und diese Information nicht geändert, falls diese Zählkennung "0" ist. Nachdem der Multiplexer die externe Sammelleitung wählt, behält der Multiplexer das Wählen der externen Sammelleitung bei, bis die Eingabekennung im Zustandkennungsregister auf "1" wechselt; nachdem ermittelt
ist, daß die Eingabekennung "1" ist, wählt der Multiplexer 25
den Datenübertragungsweg zwischen den Elementen an.
Gemäß der vorstehenden Erläuterung dienen der Inhalt des Zustandkennungsregisters sowie die den Eingangs-Vektordaten r? 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 erforderlich, die die Verarbeitungsvorgänge in dem jeweiligen EIe-35
ment vorschreiben. Es genügt, wenn auf zyklische Weise je-
-55- DE 4631
dem Element ein Steuersignal zugeführt wird, das den Zeitpunkt für den Austausch der Eingangs-Vektordatenfolge S, anzeigt. Diese Gestaltung macht es möglich, kontinuierlich
c die dynamischen Zeitversetzungs-Berechnungen gemäß den Gleichungen (1) bis (3) auszuführen, während in dem ganzen Matrixprozessor eine selbstständige Steuerung ausgeführt wird.
in Die Fig. 15 zeigt ein Ausführungsbeispiel für die Schaltungsanordnung in dem Fall, daß in einem Verarbeitungselement dieses Matrixprozessors eine Einrichtung für das erfindungsgemäße Steuerverfahren vorgesehen ist.
nc In Fig. 15 sind die externe Eingangs-Vektordaten-Sammel-Ib
leitung 53, die externe Eingabe/Ausgabe-Sammelleitung und der Anschluß 56 zum Verbinden des Elements mit der Sammelleitung 54 diegleichen 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 Ausgangsano_ Schluß eines Zustandkennungsregisters 86 bezeichnet. 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 c. bzw. r. bezeichnet. Mit 80 ist ein Pufferregister (viertes Regi-
ster) für die Ausgabe von Daten an die Sammelleitung 54 30
bezeichnet. Mit 81 ist ein Zähler zum Adressieren eines
Speichers bezeichnet. Mit 82 ist eine Recheneinheit bezeichnet, die eine Addier/Subtrahier-Einheit 82-1, einen Akkumulator 82-2 und eine Produktsummeneinheit 82-3 enthält. Mit 83 ist ein Arbeitsspeicher bezeichnet. Mit 84 35
und 85 sind Adressierleitungen für den Arbeitsspeicher be-
-56- DE 4631
zeichnet. Mit 87 ist ein Puffer-Register für Kennungen bezeichnet, die den Eingangs-Vektordaten hinzugefügt sind. Mit 89 ist eine Befehlseinheit bezeichnet, die einen Mikg 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 Befehlsdecodierer 89-4 enthält. Mit 90 ist ein Puffer-Register zum Speichern der Eingangs-Vektordaten r. 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 aus einer
externen Steuereinheit und wird entsprechend dem in Fig. 17 gezeigten Steuerungsablauf gesteuert. Die Steuereinheit 88 erzeugt ein Steuersignal für das Einstellen der Anfangsadresse des Programms in dem Programmzähler 89-2. Dann steuert die Steuereinheit 88 die Nutzung der Übertragung der Eingabekennung und der Zählkennung; ferner prüft die Steuereinheit die Kennung f,- , für das fünfte und sechste Teilfeld im Programmfeld (1) durch das Ermitteln, ob die Eingabekennung "1" ist oder nicht, wonach die
__ Steuereinheit dann diese Kennung setzt. Bei diesem Zustand 25
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-30
kennung "1" ist, wird die den in das Element eingegebenen Vektordaten r. hinzugefügte Kennung so ausgewertet, daß die Zustandseinstellung vorgenommen wird, die für das Ausführen des Programms gemäß dem Feld (2) notwendig ist.
Wenn die Kopfkennung als "1" ermittelt wird, wird die 35
Zählkennung ausgewertet. Falls die Zählkennung "0" ist,
-57- DE 4631
wird der zuvor eingestellte Zustand unverändert aufrechterhalten, 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-AbschaItkennung 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 20
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" ge-25
setzt, um das Herbeiführen eines Umordnungszustands vorzubereiten, während die Zählkennung auf "1" gesetzt wird. Dann wird ein Einschaltsignal zum Einschalten des Umordnungszustands 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.
35
-58- DE 4631
Wenn die den eingegebenen Vektordaten r. 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-Einschaltkennung 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
n 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. ausgeführt, so daß die für die Ausführung des Programms gemäß dem Feld (2) erforderlichen Zu-
Standseinstellungen in Abhängigkeit davon ausgeführt werden, ob das Einschalt- oder Abschaltsignal für den Umordnungszustand empfangen wurde oder nicht. Wenn das Einschaltsignal empfangen wurde, wird die Kennung f2 auf "1" gesetzt. Wenn statt des Einschaltsignals das Abschaltsignal 25
empfangen wurde, wird die Kennung f~ auf "0" gesetzt. Wenn keines der Signale empfangen wurde, beginnt die Steuereinheit 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 Steuer-
einheit 88 bei jeder Prozesszeit.
-59- DE 4631
Das vorstehend beschriebene Ausführungsbeispiel ermöglicht es, die gesamte Anordnung selbstständig allein dadurch zu steuern, daß 3-Bit-Kennungen hinzugefügt werden und in jec dem Element 2-Bit-Zustandkennungen aufgenommen werden. Diese Gestaltung ermöglicht nicht nur eine Verringerung der Belastung des gesamten Steuersystems 57, sondern auch eine Vereinfachung des Steuerverfahrens.
,Q Ein weiteres Ausführungsbeispiel für das erfindungsgemäße Steuerverfahren wird anhand eines Falls beschrieben, bei dem aus einer (1 χ k)-Matrix A und einer (k χ m )-Matrix B eine Produktmatrix C erzielt wird. Falls A = {a^ |1=i=l, 1^j=kj , B = {bi;j I l^i=k, 1=j=m} und C = {c^ I 1^i=I,
15 l=j=m} gilt, gilt
k
cij = p = 1 aip bpj ....(10)
Falls aA = (a^, ai2, , a.R) und bj = (b}y b2j,
b<.) gilt, kan d h () fdß drückt werden:
A ^ 2 R j }y j
b<.) gilt, kann diese Gleichung (10) folgendermaßen ausgeC1. - a. . bj ....(11)
In dieser Gleichung ist mit "»" der innere Produktoperator zwischen den Vektoren dargestellt.
Die Multiplikation der Matrix A mit der Matrix B bedeutet, daß c±. gemäß dieser Gleichung (11) für alle Fälle 1=i=l und 1=j=m zu bilden ist. Das Steuerverfahren wird anhand
®^ des Falls erläutert, daß ein Matrixprozessor mit 1 (l=m) Verarbeitungselementen in linearer Reihenanordnung diese Art der Berechnung für verschiedene m ausführt, nämlich in einem besonderen Fall für 1=4 und m=6. Es wird nun angenommen, daß jedes Verarbeitungselement die Funktionen zur Berechnung der vorstehend genannten Gleichung (11),
-60- DE 4631
die Funktionen zur Eingabe der Daten a^zur Eingabe und
Ausgabe der Daten b. und zum Speichern und Ausgeben der Rechenergebnisse c . sowie eingebaute Verarbeitungsbefehle c für das Ausführen dieser Verarbeitungsvorgänge hat.
Die Fig. 16A bis 161 zeigen ein Beispiel für die Steuerungsvorgänge in dem Fall, daß die Matrixmultiplikation in einem Matrixprozessor mit linearer Anordnung ausgeführt wird.
Mit 54 ist die Eingabe/Ausgabe-Sammelleitung für die Eingabe der Daten a. in das Element und für die Ausgabe des Rechenergebnisses c. aus dem Element bezeichnet. Mit 55 ist der Datenübertragungsweg zwischen den Elementen bezeichnet. Mit 66 ist das Zustandkennungsregister bezeichnet, das die Kennung 67, die den Zustand der Eingabe der Daten aus der Sammelleitung 54 anzeigt, und die Kennung 68 enthält, die den Zustand der Ausgabe des Rechenergebnisses anzeigt. Mit 51 ist das Verarbeitungselement bezeichnet, a. ist ein Spaltenvektor und b. ist ein Zeilenvektor der Determinanten bzw. Matrizen A und B.
Bei der nachfolgenden Erläuterung der Betriebsvorgänge werden die Kennungen 67 und 68 folgendermaßen bezeichnet:
Kennung 67 = Eingabekennung
Kennung 68 = Ausgabekennung
Ferner wird dem Vektor b.. , b~, b,, b-, br und b6 die Endkennung hinzugefügt. Nur die Endkennung des Vektors bg ist
UI Il
Anfänglich wird nur die Eingabekennung des Elements PE. auf "1" gesetzt. Bei einer Prozesszeit ti wird in dem Element PE1 diese Kennung überprüft und über die Sammelleitung ι
54 der Vektor a.. in das Element PE1 eingegeben. Zugleich
-61- DE 4631
wird aus dem Datenübertragungsweg 55 der Vektor b1 eingegeben. Danach wird a1 « b1 berechnet und intern als Datenwert C11 gespeichert. Vor dem Beginn der Berechnung zur g Prozesszeit t2 wird der Inhalt des Zustandkennungsregisters 66 zum benachbarten Element übertragen und die Eingabekennung des Elements PE2 auf "1" gesetzt. Zur Prozesszeit t2 wertet das Element PE_ diese Kennung aus, so daß dann zugleich mit der Eingabe des Vektors a2 aus der Sammelleitung 54 in das Element PE7 der Vektor b1 aus dem Element PE1 in das Element PE9 eingegeben wird, in welchem a?»b.. berechnet und als Datenwert C21 gespeichert wird. Zu diesem Zeitpunkt wird parallel mit der Verarbeitung in dem Element PE- in das Element PE1 der Vektor b2 eingegeben und a.j«b- berechnet und als Datenwert C1- gespeichert.
Danach wird die gleiche Verarbeitung bis zu einer Prozesszeit t4 wiederholt. Bevor die Berechnung zur Prozesszeit t5 beginnt, wird der Inhalt des Zustandkennungsregisters 66 übertragen, so daß die Eingabekennungen aller Elemente
auf "0" gesetzt werden, worauf ermittelt wird, daß die Eingabe aus der Sammelleitung 54 abgeschlossen ist. Bei jeder Prozesszeit werden die Vektoren b. zu dem benachbarten Element übertragen, so daß zur Prozesszeit t5 alle
Elemente die Innenprodukt-Berechnungen ausführen und die 25
Ergebnisse dieser Berechnungen sammeln. Vor dem Beginn der Berechnung zur Prozesszeit t6 ermittelt das Element PE1, daß die dem eingegebenen Vektor b, hinzugefügte Endkennung "1" ist; daraufhin stellt das Element PE1 für alle in diesem Element PE1 gesammelten Rechenergebnisse einschließ-
du '
lieh des zu diesem Zeitpunkt erhaltenen Ergebnisses den Ausgabezustand ein und schaltet die Ausgabekennung auf "1". Gleichzeitig mit dem Setzen der Ausgabekennung auf "1" meldet das Element PE1 aufeinanderfolgend den Elementen PE-, PE, und PE. seinen eigenen Verarbeitungszustand. In cj 4
den Elementen PE-, PE3 und PE4 wird dieser Zustand über-
-62- DE 4631
prüft und ermittelt, daß durch die Ausgabe der Rechenergebnisse eine Differenz hinsichtlich der Anzahl der Verarbeitungsschritte zwischen den Elementen besteht. Unter π diesen Bedingungen wird in diesen Elementen selbst dann, wenn deren eigene Verarbeitung abgeschlossen ist, ein Verarbeitungsbereitschaf tszustand eingestellt, bis ein Steuersignal empfangen wird, welches anzeigt, daß der Zustand in dem Element PE1 aufgehoben wurde. Das Element PE1 stellt die Ausgabekennung zurück, wenn die Ausgabe der Rechenendergebnisse abgeschlossen ist; nachdem dieses Rückstellen der Kennung bestätigt ist, meldet das Element PE1 allen Elementen, daß sein Ausgabezustand aufgehoben wurde. Danach wird zur Prozesszeit t7 der Vektor b. zum benachbarten Element übertragen, wonach das Element PE,, die gleiche Verarbeitung und die gleichen Steuerungsvorgänge wie die zur Prozesszeit t6 von dem Element PE1 ausgeführten vornimmt. Auf diese Weise wird dann, wenn die Verarbeitung zur Prozesszeit t9 abgeschlossen ist, das Ergebnis der Multiplikation der Matrizen A und B erhalten.
Gemäß der vorstehenden Beschreibung hat das erfindungsgemäße Steuerverfahren den Vorteil, daß das Ausführen einer selbstständigen Matrixmultiplikations-Verarbeitung in einem Matrixprozessor allein dadurch ermöglicht ist, daß einem Eingangs-Vektordatenwert eine 1-Bit-Kennung hinzugefügt wird und in einem Verarbeitungselement eine 2-Bit-Kennung aufgenommen wird.
Ein Matrixprozessor weist Multiplexer, eine Vielzahl von
Verarbeitungselementen, die über die Multiplexer ringförmig verbunden sind, und eine Steuereinheit zum Steuern der Multiplexer und der Verarbeitungselemente auf. Jedes der Verarbeitungselemente nimmt einen von Eingangs-Vektordatenwerten von zwei Arten von Eingangs-Vektordatenfolgen
auf. Der andere Eingangs-Vektordatenwert wird in das Ver-
-63- DE 4631
arbeitungselement aus einer Eingabe/Ausgabe-Datensammelleitung eingegeben. Der eine Eingangs-Vektordatenwert und ein Rechenergebnis aus dem Verarbeitungselement werden zu
einem benachbarten Verarbeitungselement übertragen. Ein 5
Rechenendergebnis wird an die Eingabe/Ausgabe-Datensammelleitung abgegeben. Alle Verarbeitungselemente übertragen die jeweiligen Verarbeitungsergebnisse zu den jeweils benachbarten Verarbeitungselementen gleichzeitig parallel mit einem Verarbeitungsvorgang in dem jeweiligen Verarbeitungselement. Jeder der Multiplexer enthält einen Wähler zum Wählen entweder eines Datenübertragungswegs für den Datenaustausch zwischen den benachbarten Verarbeitungselementen oder einei-Eingangs-Vektordaten-Sammelleitung für die Lieferung des einen Eingangs-Vektordatenwerts aus einer ex-15
ternen Quelle. Der Matrixprozessor führt eine Anpassungsberechnung unter dynamischer Zeitversetzung mit einem hohen Wirkungsgrad aus.

Claims (5)

  1. Patentansprüche
    1 . Matrixprozessor mit Multiplexern, η Verarbeitungselementen und einer Einrichtung zum Steuern der Multiplexer und der Verarbeitungselemente, dadurch gekennzeichnet,
    daß die η Verarbeitungselemente (1; 51) über die Multiplexer (2; 52) in der Form eines Rings verbunden sind,
    daß jedes der Verarbeitungselemente
    eine erste Eingabevorrichtung (13, 17, 21; 72, 76, 78) zur Eingabe von Eingangs-Vektordaten c"*" oder "r*" aus zwei
    i i
    Arten von Eingangs-Vektordatenfolgen
    CN ic*. J (i = 1, 2, , I) und Tf= {T*7(j=1 , 2,...,N);
    eine zweite Eingabevorrichtung (12, 15, 20; 56, 79, 90) zur Eingabe der anderen Eingangs-Vektordaten aus einer Eingabe/Ausgabe-Datensammelleitung (4; 54),
    eine Rechenvorrichtung (22, 23; 82, 83) für das Ausführen vorbestimmter Additions- und Subtraktionsberechnungen, Vergleichsberechnungen und Produktsummenberechnungen an den beiden Arten der Eingangs-Vektordaten und zum Speichern der Rechenergebnisse,
    eine Übertragungsvorrichtung (14, 18; 73, 77) für das Übertragen der einen der Eingangs-Vektordaten und eines Rechenergebnisses aus der Rechenvorrichtung zu einem be-
    -2- DE 4631
    nachbarten Verarbeitungselement, eine Ausgabevorrichtung (12, 16; 56, 80) für die Ausgabe eines Rechenendergebnisses aus der Rechenvorrichtung an die Eingabe/Ausgabe-Datensammelleitung,
    eine Ablaufvorrichtung (28, 32; 81, 94) für das Ausführen einer Verarbeitung, bei der parallel mit einer Rechenverarbeitung in einem jeweiligen Verarbeitungselement alle Verarbeitungselemente gleichzeitig die jeweiligen Verar-
    jQ beitungsergebnisse (Rest N/n)-mal zu den jeweils benachbarten Verarbeitungselementen übertragen, wobei (Rest N/n) der Divisionsrest bei dem Dividieren von N durch η ist, und
    eine Steuervorrichtung (24; 88, 89) für das Steuern der
    1P- Rechenvorrichtung und der Ablaufvorrichtung aufweist, und daß jeder der Multiplexer (2; 52) eine Wählvorrichtung zum Wählen entweder eines Datenübertragungswegs (5; 55) für die Datenübertragung zwischen den benachbarten Verarbeitungselementen oder einer Eingangs-Vektordaten-Sammelleitung (3; 53) für das Zuführen der einen Eingangs-Vektordaten aus einer externen Quelle enthält.
  2. 2. Matrixprozessor nach Anspruch 1, dadurch gekennzeichnet,
    daß die erste Eingabevorrichtung für die Eingabe der einen Eingangs-Vektordaten einen mit einem Datenübertragungsweg (5; 55) verbindbaren ersten Anschluß (13; 72), ein an den ersten Anschluß angeschlossenes erstes Register (17; 76) und einen an das erste Register angeschlossenen ersten Pufferspeicher (21; 78) aufweist, 30
    daß die zweite Eingabevorrichtung für die Eingabe der anderen 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) 35
    aufweist,
    -3- DE 4631
    daß die Rechenvorrichtung (22, 23; 82, 83) eine erste Recheneinheit (22-1; 82-1) zur Addition, Subtraktion und Vergleichsberechnung, eine zweite Recheneinheit (22-3; g 82-3) zur Produktsummen-Berechnung, ein Pufferregister (22-2; 82-2) für die erste Recheneinheit, einen ersten Wähler (31; 93) zum Wählen eines Ausgangssignals aus dem Pufferregister, dem ersten Register oder der zweiten Recheneinheit, einen Arbeitsspeicher (23; 83) zum Speichern ,Q des Ausgangssignals des ersten Wählers und einen zweiten Wähler (29, 30; 91, 92) zum Wählen eines Ausgangssignals aus dem ersten Register, dem Pufferregister, dem ersten Pufferspeicher, dem zweiten Pufferspeicher und/oder dem Arbeitsspeicher und zum Zuführen des gewählten Ausgangsp. signals zu der ersten Recheneinheit aufweist, daß die Ablaufvorrichtung einen Zähler (28; 81), einen dritten Wähler (32; 94) zum Wählen entweder einer ersten Adresseninformation aus dem Zähler oder einer zweiten Adresseninformation aus der Steuervorrichtung (24; 88, 89) und einen an den dritten Wähler angeschlossenen Teil (23-
    2) des Arbeitsspeichers enthält,
    daß die Übertragungsvorrichtung ein an den Arbeitsspeicher angeschlossenes drittes Register (18; 77) und einen an das dritte Register angeschlossenen zweiten Anschluß
    __ (14; 73) aufweist, der mit dem Datenübertragungsweg ver-2b
    bindbar ist,
    daß die Ausgabevorrichtung für die Eingabe/Ausgabe-Datensammelleitung (4; 54) ein an den Arbeitsspeicher angeschlossenes viertes Register (16; 80) und den Eingabe/ Ausgabe-Anschluß aufweist und
    daß die Steuervorrichtung (24; 88, 89) ein Steuersignal aus der Einrichtung (10; 57) für das Steuern der Verarbeitungselemente (1; 51) und der Multiplexer (2; 52) empfängt.
    3506743
    -4- DE 4631
  3. 3. Matrixprozessor nach Anspruch 2, dadurch gekennzeichnet ,
    daß jedes Verarbeitungselement (51) eine Zustandkennungsvorrichtung (74, 75, 86) aufweist, die eine Zustandskennung aus einem der benachbarten Verarbeitungselemente aufnimmt, um die Zustandskennung zu einem anderen der benachbarten Verarbeitungselemente zu übertragen,
    daß das zweite Register (90) einen Registerteil (87) zum ,Q Speichern einer Kennung aufweist, die den aus der Eingabe/Ausgabe-Datensammelleitung (54) eingegebenen Eingangs-Vektordaten hinzugefügt ist, und
    daß die Steuervorrichtung (88, 89) eine Verarbeitungselement-Steuereinheit (88), die ein Steuersignal aus einer externen Quelle, ein Kennungssignal aus dem Registerteil
    und die Zustandkennung aufnimmt, um ein Befehlssteuersignal zu bilden, und eine Verarbeitungsbefehlseinheit (89) aufweist, die das Befehlssteuersignal aufnimmt, um die zweite Adresseninformation sowie Steuersignale zum Steuern des ersten, des zweiten und des dritten Wählers (91 bis 94) zu bilden.
  4. 4. Verfahren zum Steuern eines Matrixprozessors, der
    eine erste Vektordatenfolge C ={c ] (i=1,2,...I) aus I
    ersten Eingangs-Vektordaten und eine zweite Vektordaten- _y.
    folge R = {T^\ (i=1,2,...,N) aus N zweiten Eingangs-Vektordaten aufnimmt und ein Ergebnis einer vorbestimmten Berechnung ausgibt, dadurch gekennzeichnet,
    daß ein Matrixprozessor mit η Verarbeitungselementen eingesetzt wird, die in der Form eines Rings verbunden sind 30
    und in die die ersten und die zweiten Eingangs-Vektordaten eingegeben werden,
    daß die ersten Eingangs-Vektordaten in P Gruppen mit jeweils η Teil-Vektordaten aufgeteilt werden, wobei P eine
    ganze Zahl ist, die gleich oder größer als "1" ist, 35
    daß an den η Teil-Vektordaten einer jeden Gruppe und den
    -5- · DE 4631
    zweiten Eingangs-Vektordaten eine vorbestimmte Verarbeitung ausgeführt wird und
    daß aufeinanderfolgend die vorbestimmte Verarbeitung an
    jeder der P Gruppen und der zweiten Vektordatenfolge wie-5
    derholt wird, um aus den Verarbeitungselementen ein Verarbeitungsendergebnis abzugeben,
    wobei bei der vorbestimmten Verarbeitung in jedes der Verarbeitungselemente die η ersten Eingangs-Vektordaten eingegeben werden,
    die η ersten Eingangs-Vektordaten aufeinanderfolgend umlaufend zwischen den jeweiligen Verarbeitungselementen übertragen und jede der Teil-Vektordaten einer jeden Gruppe in jedes einzelne der Verarbeitungselemente eingegeben werden oder jede der zweiten Eingangs-Vektordaten 15
    in jedes einzelne der Verarbeitungselemente in der Aufeinanderfolge der Verarbeitungselemente zu jedem Zeitpunkt eingegeben werden, an dem die Teil-Vektordaten umlaufend zwischen den Verarbeitungselementen übertragen
    oder in die Verarbeitungselemente eingegeben werden, 20
    die Teil-Vektordaten, die zweiten Eingangs-Vektordaten
    und ein aus einem benachbarten Verarbeitungselement übertragenes Aufbereitungsergebnis aufbereitet und zu einem benachbarten Verarbeitungselement ein neues Aufbereitungsergebnis überführt wird,
    25
    das Aufbereiten und Oberführen wiederholt wird und
    ein neues Aufbereitungsergebnis in einer Aufbereitungszeit zwischen den Verarbeitungselementen (Rest N/n)-mal versetzt wird, falls ein Aufbereitungsergebnis bei einer Gruppe zur Aufbereitung bei der folgenden Gruppe verwen-
    det wird, wobei (Rest N/n) der Divisionsrest bei der Division von N durch η ist.
  5. 5. Verfahren nach Anspruch 4, dadurch gekennzeichnet,
    daß in die Verarbeitungselemente Aufbereitungsbefehle
    3505749
    -6- DE 4631
    aufgenommen werden,
    daß den zweiten Eingangs-Vektordaten eine Kennung hinzugefügt wird, die einen Aufbereitungszustand anzeigt, der in jedem der Aufbereitungselemente bei einer vorbestimmten Ablauffolge hervorgerufen ist,
    daß eine Zustandskennung gebildet wird, die jedem der Verarbeitungselemente den jeweils einzelnen Aufbereitungszustand meldet,
    daß die Zustandskennung zwischen den Verarbeitungselementen überführt wird,
    daß die Zustandskennung so ausgewertet wird, daß in das Verarbeitungselement die ersten und zweiten Eingangs-Vektordaten eingegeben werden,
    daß die den eingegebenen zweiten Eingangs-Vektordaten hinzugefügte Kennung für das Ändern des Inhalts der Zustandkennung in dem Verarbeitungselement ausgewertet wird und
    daß den Verarbeitungselementen ein durch die Änderung erzeugter Zustand zugeführt wird, wodurch im ganzen Matrixprozessor eine selbstständige Steuerung in der Weise ausgeführt wird, daß das Verarbeitungselement 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 true DE3506749A1 (de) 1985-09-26
DE3506749C2 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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0269995A2 (de) * 1986-11-27 1988-06-08 Nippon Telegraph And Telephone Corporation Paralleldatenverarbeitungsvorrichtung und -verfahren
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

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0254383A (ja) * 1988-08-18 1990-02-23 Mitsubishi Electric Corp アレイプロセッサ
EP0605401B1 (de) * 1988-09-19 1998-04-22 Fujitsu Limited Paralleles Rechnersystem mit Verwendung eines S.I.M.D.-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
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
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
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
US5765015A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Slide network for an array processor
US5963745A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation APAP I/O programmable router
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
US5625836A (en) * 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
US5815723A (en) * 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5794059A (en) * 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
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
DE69131272T2 (de) * 1990-11-13 1999-12-09 International Business Machines Corp., Armonk Paralleles Assoziativprozessor-System
US5752067A (en) * 1990-11-13 1998-05-12 International Business Machines Corporation Fully scalable parallel processing system having asynchronous SIMD processing
US5966528A (en) * 1990-11-13 1999-10-12 International Business Machines Corporation SIMD/MIMD array processor with vector processing
US5630162A (en) * 1990-11-13 1997-05-13 International Business Machines Corporation Array processor dotted communication network based on H-DOTs
US5208490A (en) * 1991-04-12 1993-05-04 Hewlett-Packard Company Functionally complete family of self-timed dynamic logic circuits
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 再構成可能なトーラス・ネットワーク方式
JPH09506730A (ja) * 1993-12-17 1997-06-30 クインテット、インコーポレイテッド 自動署名検証の方法
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
WO2012100316A1 (en) * 2011-01-25 2012-08-02 Cognivue Corporation Apparatus and method of vector unit sharing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3544973A (en) * 1968-03-13 1970-12-01 Westinghouse Electric Corp Variable structure computer
GB2062914A (en) * 1979-11-07 1981-05-28 Philips Nv Distributed data processing system
US4384273A (en) * 1981-03-20 1983-05-17 Bell Telephone Laboratories, Incorporated Time warp signal recognition processor for matching signal patterns
EP0085435A2 (de) * 1982-02-03 1983-08-10 Hitachi, Ltd. Datenfeldprozessor aufgebaut aus Vektorprozessoren mit Vektorregistern

Family Cites Families (20)

* 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
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
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
US4533993A (en) * 1981-08-18 1985-08-06 National Research Development Corp. Multiple processing cell digital data processor
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3544973A (en) * 1968-03-13 1970-12-01 Westinghouse Electric Corp Variable structure computer
GB2062914A (en) * 1979-11-07 1981-05-28 Philips Nv Distributed data processing system
US4384273A (en) * 1981-03-20 1983-05-17 Bell Telephone Laboratories, Incorporated Time warp signal recognition processor for matching signal patterns
EP0085435A2 (de) * 1982-02-03 1983-08-10 Hitachi, Ltd. Datenfeldprozessor aufgebaut aus Vektorprozessoren mit Vektorregistern

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0269995A2 (de) * 1986-11-27 1988-06-08 Nippon Telegraph And Telephone Corporation Paralleldatenverarbeitungsvorrichtung und -verfahren
EP0269995A3 (en) * 1986-11-27 1989-03-22 Nippon Telegraph And Telephone Corporation Parallel data processing apparatus and method
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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE3506749A1 (de) Matrixprozessor und steuerverfahren hierfuer
DE69703085T2 (de) Koprozessor mit zwei parallel arbeitenden Multiplizierschaltungen
DE3856015T2 (de) Berechnungseinrichtung für Parallelprozessoren
DE69520974T2 (de) Eine integrierte Halbleiterschaltung
DE68914172T2 (de) Datenverarbeitungssystem und Videoverarbeitungssystem mit einem derartigen Datenverarbeitungssystem.
DE3854035T2 (de) Nichtperiodisches Abbildungsverfahren zum verbesserten Zweierpotenzzugriff für ineinandergreifende Einrichtungen.
DE2912287C3 (de) Datenverarbeitungsanlage
DE3741953A1 (de) Multiprozessorsystem und verfahren zur arbeitslastverteilung bei einem solchen
DE3049437C2 (de) Matrixanordnung einer Vielzahl von Verarbeitungselementen
DE2354521A1 (de) Verfahren und einrichtung zum gleichzeitigen zugriff zu verschiedenen speichermoduln
DE3689006T2 (de) Mikroprogrammsteuersystem.
DE19822543A1 (de) Verfahren zum Zuteilen von Aufträgen, Datenverarbeitssystem, Client-Datenbearbeitungsknoten und computerlesbares Speichermedium
DE19822776A1 (de) Datenverarbeitungsvorrichtung
DE69025650T2 (de) Multiprozessorsystem mit Vektorpipelinen
DE68929080T2 (de) Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor
DE19524862A1 (de) SIMD-Prozessor, welcher mit einer Mehrzahl von Parallelverarbeitungselementen in Synchronisation in Betrieb ist
EP0220474A2 (de) Wellenfrontfeldrechner
DE3855524T2 (de) Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator
DE2063199B2 (de) Einrichtung zur Ausführung logischer Funktionen
DE1499190C3 (de) Elektronische Datenverarbeitungsanlage
DE1115488B (de) Datenverarbeitungssystem
WO2007014404A1 (de) Digitale rechnereinrichtung mit parallelverarbeitung
DE69817672T2 (de) Vorrichtung zum Sortieren von Datenelementen in einem binären Baum und ein ATM Abstandshalter mit einer solchen Vorrichtung
DE2459476C3 (de)
DE1132747B (de) Elektronische Rechenmaschine

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