DE3506749C2 - - Google Patents
Info
- Publication number
- DE3506749C2 DE3506749C2 DE3506749A DE3506749A DE3506749C2 DE 3506749 C2 DE3506749 C2 DE 3506749C2 DE 3506749 A DE3506749 A DE 3506749A DE 3506749 A DE3506749 A DE 3506749A DE 3506749 C2 DE3506749 C2 DE 3506749C2
- Authority
- DE
- Germany
- Prior art keywords
- processing
- input
- vector data
- input vector
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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/8023—Two dimensional arrays, e.g. mesh, torus
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Multi Processors (AREA)
Description
Die Erfindung betrifft einen Matrixprozessor gemäß dem
Oberbegriff des Patentanspruchs 1 sowie ein Verfahren zur
Steuerung eines Matrixprozessors gemäß dem Oberbegriff des
Patentanspruchs 4.
Matrixprozessoren können für die Ausführung von
Berechnungen für alle Kombinationen zweier Arten von
Variablen und für Rekursiv-Formeln mit örtlicher Abhängigkeit
von Daten unter Verwendung dieser Berechnungsergebnisse
eingesetzt werden, wobei im Falle einer Musteran
passung bei einer Spracherkennung oder Zeichenerkennung
Anpassungs-Berechnungen vorgenommen werden, die auf der
Theorie der dynamischen Zeitversetzung (dynamic time
warping) oder des dynamischen Programmierens beruhen.
Matrixprozessoren ermöglichen dabei eine Hochgeschwindigkeits
verarbeitung durch parallele Verarbeitung mittels
mehrerer Verarbeitungselemente, so daß auch wissen
schaftliche Berechnungen wie Determinatenberechnungen,
Differentialberechnungen oder dergleichen sowie eine Signal
verarbeitung wie die zuvor erwähnte Musteranpassung sehr
rasch durchführbar sind.
Ein dem Oberbegriff des Patentanspruchs 1 in etwa ent
sprechender Matrixprozessor ist aus der US-PS 35 44 973
bekannt, der allerdings die angegebene Arbeitsweise der
einzelnen Schaltungskomponenten wie etwa der Parallel
verarbeitung seitens der Ablaufvorrichtung nicht direkt
entnehmbar ist. Bei dem bekannten Prozessor sind mehrere
gleichartige Computerabschnitte vorhanden, die jeweils
eine Folgesteuereinrichtung, mehrere Verarbeitungselemente
und mehrere Register zum Übertragen von Informationen
zwischen einer Speichereinheit und den Verarbeitungs
elementen aufweisen. Durch eine geeignete Zentralsteuerung
soll bei dem bekannten Prozessor erreicht werden, daß
nicht nur eine rasche Parallelverarbeitung von Daten,
sondern gleichzeitig auch eine sequentielle Verarbeitung
durch andere Computerabschnitte möglich ist, um die Vorteile
dieser beiden Verarbeitungsstrategien zu vereinen.
Die Datenzuführung zu den einzelnen Verarbeitungselementen
erfolgt allerdings lediglich über eine Datenverzweigungs
anordnung, so daß die gleichzeitige Zuführung zweier
unterschiedlicher Datenarten über entsprechende Daten-
Zuführungsleitungen nicht möglich ist. Dies bringt eine
entsprechende Beschränkung hinsichtlich der maximal
erzielbaren Verarbeitungsgeschwindigkeit und auch hinsichtlich
der Optimierung des Aufbaus des Prozessors mit sich.
Als wirkungsvolles Verfahren zur Musteranpassung bei der
Spracherkennung oder Zeichenerkennung ist die dynamische
Zeitversetzung (dynamic time warping) bekannt. Die
dynamische Zeitversetzung macht eine Echtzeit-Verarbeitung
einer sehr großen Datenmenge erforderlich, so daß eine
Verarbeitung in hoher Geschwindigkeit notwendig ist. Die
Verarbeitung unter dynamischer Zeitversetzung ist eine
Berechnungsart, die aus der Berechnung aller Kombinationen
zweier Arten von Variablen und der Berechnung von
Rekursiv-Formeln mit örtlicher Abhängigkeit von Daten
unter Verwendung der Berechnungsergebnisse besteht. Zur
Veranschaulichung wird nachfolgend ein Beispiel für eine auf der
dynamischen Zeitversetzung beruhende Anpassungsberechnung
erörtert, die die Berechnung zwischen zweierlei Arten
von Vektor-Variablen und die Berechnung von Rekursiv-Formeln
für Endsummenberechnungen unter Verwendung von
Berechnungsergebnissen umfaßt.
wobei c i und r j das i-te bzw. j-te Element eines Vektors
C = (c₁, c₂, . . ., c I ) mit I Elementen bzw. eines
Vektors R = (r₁, r₂, . . ., r N ) mit N Elementen sind. Mit m ist
ein Rang eines jeweiligen Vektors bezeichnet. Mit c i ist
jeweils (c₁ i , c₂ i , . . ., c m i ) bezeichnet, während mit r j
jeweils (r₁ j , r₂ j , . . ., r m j ) bezeichnet ist. Mit D ÿ und
S ÿ ist jeweils ein Abstand zwischen Vektoren bzw. ein
Summenabstand bezeichnet.
Als Matrixprozessor zur parallelen Verarbeitung der
Berechnungen dieser Art ist eine herkömmliche Anordnung
bekannt, bei der (I × N) Verarbeitungselemente in einem
Orthogonalnetz angeordnet sind, wobei die Anzahl von Daten
zweier Arten von Vektoren jeweils I bzw. N ist.
Eine solche orthogonale Anordnung eines Matrixprozessors
ist in der US-PS 43 84 273, in der Veröffentlichung
"An Integrated Multiprocessing Array for Time
Warp Pattern Matching" von Bryan Ackland u. a.
in "English International Symposium of Computer
Architecture", Minneapolis, Minnesota, Seiten 197 bis 215
(12. bis 14. Mai 1981), in der Veröffentlichung "A systolic
processing element for speech recognition" von N. H. E.
Weste und anderen, ISSCC 82, Seiten 274 und 275 (1982)
und in der Veröffentlichung "A High Speed Array Computer
for Dynamic Time Warping" von D. J. Burr und anderen, "IEEE
Conference on Acoustics Speech and Signal Processing",
Seiten 471 bis 474 (März 1980) beschrieben.
Fig. 1 zeigt als Beispiel die Anordnung eines Matrix
prozessors, der als Orthogonalnetz gestaltet ist. Fig. 2A
und 2B, 3A und 3B, 4A und 4B sowie 5A und 5B zeigen jeweils
ein Beispiel der Funktionen des Matrixprozessors.
Fig. 1 zeigt Verarbeitungselemente (PE) 100,
Ortsdatenwege 200 und eine Befehlssammelleitung 300. Mit 400
sind Eingangsanschlüsse bezeichnet, während mit 500
Ausgangsanschlüsse bezeichnet sind.
Jedes Verarbeitungselement 100 umfaßt eine Vorrichtung zum
Ausführen einer Additions- und Multiplikations-Berechnungen
enthaltenden Vektorzwischenabstand-Rechengleichung (1)
sowie einer Vergleichs- und Aufsummierungs-Rechengleichung
(2) und eine Vorrichtung zur Aufnahme und Übertragung
der Ergebnisse der Vergleichsberechnungen aus den
benachbarten Verarbeitungselementen sowie der Ergebnisse
S ÿ der Aufsummierungs-Berechnungen und der Vektor-Daten
c i und r j . Ferner ist jedes Verarbeitungselement mit
einer Nummer bezeichnet, das seine Lage in der Orthogonal
anordnung angibt. Wenn das Verarbeitungselement an dem
Schnittpunkt zwischen der Spalte i und der Zeile j mit PE ÿ
bezeichnet ist, können die vorangehend angeführten Gleichungen
(1), (2) und (3) mit folgenden Betriebsabläufen
vollzogen werden:
- (i) Aus einem links an ein Element PE i,j angrenzenden Element PE i-1,j und einem unten an das Element PE i,j angrenzenden Element PE i,j-1 (oder alternativ aus einem Eingangsanschluß am linken Rand und einem Eingangsanschluß am unteren Rand) werden die zwei Arten von Vektordaten c i und r j eingegeben und es wird der Abstand zwischen diesen Vektoren gemäß der Gleichung (1) ermittelt.
- (ii) Die Vektordaten c i und r j werden jeweils zu einem nach rechts angrenzenden Element PE i+1,j und einem oben angrenzenden Element PE i,j+1 übertragen.
- (iii) Aus dem links angrenzenden Element PE i-1,j wird ein Aufsummierungs-Rechenergebnis S i-1,j eingegeben, während aus dem unten angrenzenden Element PE i,j-1 ein Vergleichs- Rechenergebnis min(S i, j-1,S i-1,j-1) eingegeben wird; es wird eine Vergleichsberechnung min{S i-1,j , min(S i,j-1, S i-1,j-1)} ausgeführt; zu dem Ergebnis dieser Berechnung wird der bei dem Schritt (i) ermittelte Abstand D ÿ addiert, um S ÿ zu erhalten.
- (iv) Es wird eine Vergleichsberechnung min(S i,j , S i-1,j ) ausgeführt; das Ergebnis dieser Berechnung wird zu dem oben angrenzenden Element PE i,j+1 übertragen, während zu dem rechts angrenzenden Element PE i+1,j das Aufsummierungs-Rechenergebnis S i,j übertragen wird.
Die Schritte (iii) und (iv) stellen die Aufbereitung gemäß
der Vergleichs- und Aufsummierungs-Rechengleichung
(2) dar. Das heißt, von den für das Erfüllen der Rechengleichung
(2) in dem Element PE ÿ benötigten dreierlei
Aufsummierungsergebnissen S i,j-1, S i-1,j und S i-1,j-1
liegen die Ergebnisse S i,j-1 und S i-1,j jeweils in dem
rechts angrenzenden Element PE i,j-1 bzw. dem links
angrenzenden Element PE i-1,j vor, während das Ergebnis
S i-1,j-1 in einem Element PE i-1,j-1 vorliegt, welches
dem Element PE ÿ diagonal benachbart ist.
Aus diesem Grund ist bei den vorangehend zuerst genannten
beiden Daten eine einzige Übertragung erforderlich,
während bei den letztgenannten Daten zwei Übertragungen
über das Element PE i,j-1 erforderlich sind. Falls jedoch
in dem Element PE i,j-1,, über das das Ergebnis S i-1,j-1,
übertragen wird, die Ergebnisse S i,j-1, und S i-1,j-1 im
voraus verglichen werden und das Ergebnis aus diesem Vergleich
zu dem Element PE ÿ übertragen wird, so daß eine
Vergleichsberechnung an diesem Datenwert und dem aus dem
Element PE i-1,j übertragenen Datenwert S i-1,j ausgeführt
werden kann, ist das Endergebnis gleich demjenigen
der Vergleichsberechnung der drei Datenwerte gemäß der
Gleichung (2) in dem Element PE ÿ .
Diese Vorgänge machen es möglich, ein Aufsummierungs-
Endergebnis S I,N zu erhalten, während die Abstände D i,j zwischen
Vektoren und die Aufsummierungsergebnisse S i,j dadurch
berechnet werden, daß hinsichtlich des Aufbereitungs
inhalts aller Verarbeitungselemente die Vorgänge gemäß
den Schritten (i) bis (iv) für alle Verarbeitungselemente
an den in Fig. 1 durch ausgezogene Linien dargestellten
Diagonalen ausgeführt werden oder daß hinsichtlich
der Inhalte paralleler Verarbeitung abwechselnd an
benachbarten Diagonalen die beiden verschiedenartigen
Vorgänge gemäß (i) und (iii) bzw. gemäß (ii) und (iv)
ausgeführt werden.
Im Falle der letzteren Ausführung unterscheidet sich die
Anzahl wirksamer dynamischer Schritte bei zwei parallelen
Verarbeitungseinheiten, so daß die Anzahl der Ausführungsschritte
durch einen Übersprungbefehl (NOP-Befehl) ausgeglichen
werden muß. Eine ausführliche Erläuterung dieses
Umstands ist hier weggelassen.
Die Fig. 2A und 2B, 3A und 3B, 4A und 4B sowie 5A und 5B
zeigen die Rechenvorgänge in der Orthogonalanordnung im
Falle dieser letztgenannten Ausführungsart über eine
Zeitdauer von einem Zeitpunkt t bis zu einem Zeitpunkt t+3.
Hierbei wird die Zeit in Zeiteinheiten bemessen, die
jeweils an jeder Verarbeitungseinheit für das Ausführen
der Verarbeitung gemäß den Schritten (i) und (iii) bzw.
(ii) und (iv) erforderlich sind. Die Fig. 2A, 3A, 4A und
5A bzw. 2B, 3B, 4B und 5B zeigen jeweils die Zustände bei
der Verarbeitung der in Rechtecken angeführten Daten während
der genannten Zeiteinheiten in einem jeweiligen
Verarbeitungselement.
Bei einer solchen Orthogonalanordnung werden die Orts
festlegung bzw. Lokalisierung sowie die Gleichförmigkeit
der Berechnungen dazu genutzt, eine parallele Verarbeitung
zu ermöglichen. Wenn aber beispielsweise die vorangehend
genannte dynamische Zeitversetzungs-Gleichung (2)
eine als Gleichung (4) nachstehend angeführte komplizierte
Rechengleichung ist, müssen die Übertragung der
Aufsummierungsergebnisse S i-1,j-1, S i-1,j-2, S i-2,j-1 gemäß
der Gleichung (4) sowie die Aufnahme der drei Datenwerte,
die den Vergleichsberechnungen zu unterziehen sind, über
zwei Verarbeitungselemente ausgeführt werden.
Bei den angewandten Verfahren kann die Vergleichsberechnung
in dem Element PE ÿ vorgenommen werden, nachdem in
dieses diese drei Datenwerte eingegeben wurden. Daher
wird die parallel auszuführende Aufbereitung in jedem
Verarbeitungselement kompliziert; darüber hinaus ist
es nicht möglich, die Parallelaufbereitung, bei der die
Elemente eingesetzt werden, mit einem zufriedenstellenden
Wirkungsgrad auszuführen.
Ferner muß in Anbetracht der dynamischen Zeitversetzungs-
Berechnung die Anzahl der Verarbeitungselemente entsprechend
den beiden positiven ganzen Zahlen N und I festgelegt
werden, die die Anzahl der Datenwerte in den beiden
Arten von Vektorfolgen für die Aufbereitung ausdrücken;
daher müssen zum Ausführen der dynamischen Zeitversetzungs
berechnungen an der Mehrfach-Vektorfolge C u (C u =
{c₁ u , c₂ u , . . ., c 1u u }; u = 1, 2, . . ., l) und der
Mehrfach-Vektorfolge R v (R v = {r₁ v , r₂ v, . . ., r Nv v }; v =
1, 2, . . ., l) für die positiven ganzen Zahlen N und I Werte
gewählt werden wobei die Anzahl der erforderlichen Verarbeitungselemente
(Nmax × Imax) ist.
Infolgedessen gibt es bei der Verarbeitung der Vektorfolgen
C u und R v eine Vielzahl von Verarbeitungselementen,
die außer bei der Kombination aus Cmax und Rmax im Hinblick
auf alle Kombinationen der Vektorfolgen für das
Ausführen der Vorgänge zur dynamischen Zeitversetzungs-
Rechenaufbereitung nicht eingesetzt werden. Infolgedessen wird keine
wirksame Nutzung des Schaltungsaufbaus erzielt.
Darüber hinaus bildet das Erfordernis, die Anzahl notwendiger
Verarbeitungselemente entsprechend der maximalen
Anzahl von zu verarbeitenden Daten zu bestimmen, eine
Einschränkung der Möglichkeit der Verringerung der
Systemabmessungen unter Anwendung von Schaltungsintegration in
hoher Dichte (LSI). Die Anzahl von Verarbeitungselementen,
die in einem einzelnen hochintegrierten Schaltungsbaustein
untergebracht werden können, ändert sich entsprechend
den Funktionen der Verarbeitungselemente. Wenn beispiels
weise in einem einzigen hochintegrierten bzw. LSI-Baustein
vier Verarbeitungselemente untergebracht werden
und die Werte Nmax = 60 sowie Imax = 60 gewählt werden,
müssen in dem Orthogonalnetz 900 Bausteine angeordnet und
angeschlossen werden.
Zur Steuerung eines derartigen herkömmlichen Matrixprozessors
führt jedes Verarbeitungselement gleichzeitig eine
Aufbereitung gemäß Befehlen aus, die durch einen Ver
arbeitungsrechner eingegeben werden.
Wenn bei der vorstehend beschriebenen Anordnung die Ver
arbeitung für eine bestimmte Vektorfolge R v auszuführen
ist, die die Bedingung N v < Nmax (v = 1, 2, . . ., l r ) erfüllt,
tritt gleichzeitig ein Endergebnis aus jedem
Verarbeitungselement PE i , N v aus (wobei jedem Ver
arbeitungselement eine Nummer zugeteilt ist und das Verarbeitungs
element an der Schnittstelle einer Spalte i mit einer
Zeile j liegt). Da jedoch jedes dieser Elemente auf
einer bestimmten Diagonale liegt, ist die Verarbeitung,
die gemäß der Gleichung (1) durch die Elemente mit Ausnahme
des vorstehend genannten Elements auf der gleichen
Diagonale ausgeführt wird, die gleiche wie die durch dieses
Element auf der gleichen Diagonale ausgeführte; es
kann keine Unterscheidung zwischen den Verarbeitungsinhalten
in den Elementen an den Diagonalen getroffen werden.
Daher muß auch aus jedem Verarbeitungselement PE i ,
Nmax das Endergebnis für diese Vektorfolge R v ausgegeben
werden, wobei die Elemente von der Spalte (N v +1) bis zu
der Spalte Nmax dazu dienen müssen, diese Verarbeitungs
ergebnisse unverändert zu übertragen. Eine solche Steuerung
ist für jede Vektorfolge R v notwendig. Da die Ver
teilung der Elemente, die die Verarbeitungsergebnisse unver
ändert übertragen, sich bei jeder Vektorfolge ändert,
muß eine geeignete Steuerung ausgeführt werden, während
der Verarbeitungscomputer die Aufbereitungsbedingungen
eines jeden Elements steuert. Nach diesem Verfahren werden
alle (I × Nmax) Elemente gesteuert, so daß der Austausch
von Steuersignalen zwischen dem jeweiligen Element
und dem Verarbeitungscomputer sowie die Eingabe der
Befehle in ein jeweiliges Element außerordentlich
kompliziert werden.
Der Erfindung liegt die Aufgabe zugrunde, einen Matrix
prozessor gemäß dem Oberbegriff des Patentanspruchs 1
zu schaffen, der sich durch kurze Verarbeitungszeit bei
Vektorberechnung auszeichnet, sowie ein entsprechendes
Steuerverfahren anzugeben.
Diese Aufgabe wird mit den im kennzeichnenden Teil des
Patentanspruchs 1 genannten Merkmalen bzw. mit den Maßnahmen
des Patentanspruchs 4 gelöst.
Bei dem erfindungsgemäßen Matrixprozessor können somit die
Eingangs-Vektordaten den Verarbeitungselementen direkt von
der Eingangs-Vektordaten-Sammelleitung über den zugehörigen
Multiplexer und die Eingabe/Ausgabe-Datensammelleitung
zugeführt werden, so daß die Berechnungszeit bei
einer Vektorberechnung, bei der eine große zu verarbeitende
Datenmenge anfällt, erheblich verkürzt und eine
effektive Eingabe oder Übertragung der beiden Eingangs-
Vektordaten-Arten zum jeweiligen Verarbeitungselement
erreicht werden kann. Die beanspruchte Gestaltung ermöglicht
darüber hinaus bei einer Musteranpassungs-Verarbeitung eine
Optimierung der Größe des Matrixprozessors, da die Verarbeitungs
elemente und das gesamte Netzwerk effektiv eingesetzt
werden.
Bei dem Matrixprozessor erfolgt somit eine Parallel
verarbeitung unter hohem Wirkungsgrad zur Berechnung aller
Kombinationen zweier Arten von Variablen und zur Berechnung
von Rekursivformelgleichungen mit Ortsabhängigkeit
unter Verwendung der Ergebnisse dieser Berechnung,
wie es für die dynamische Zeitversetzungs-Berechnung
typisch ist, wobei aber die Anzahl von Verarbeitungs
elementen der auszuführenden Berechnungsmenge entspricht
und jedes Element wirkungsvoll arbeitet.
Die gleichen Vorteile werden mit dem im Patentanspruch 4
angegebenen Steuerverfahren erreicht, bei dem lediglich
einer der Multiplexer die Eingangs-Vektordaten-Sammelleitung
auswählt, während die übrigen Multiplexer gleichzeitig
die Übertragungspfade zwischen den Verarbeitungselementen
durchschalten. Folglich werden die ersten Eingangs-
Vektordaten in eines der Verarbeitungselemente eingegeben
und weiterhin über den Übertragungspfad zu den
benachbarten Verarbeitungselementen übertragen, während
synchron mit dieser Datenübertragung die zweiten Eingangs-
Vektordaten aufeinanderfolgend von der Eingabe/Ausgabe-
Datensammelleitung in entsprechende Verarbeitungselemente
eingegeben werden. Andererseits können alle Multiplexer
den Übertragungspfad auswählen und die ersten Eingangs-
Vektordaten somit kreisförmig umlaufend zwischen den
Verarbeitungselementen übertragen werden, während synchron
hierzu die zweiten Eingangs-Vektordaten aufeinanderfolgend
über die Eingabe/Ausgabe-Datensammelleitung direkt in die
Verarbeitungselemente eingegeben werden.
Bei dem Steuerverfahren enthält somit jedes Verarbeitungs
element eingebaute Befehle und ermittelt während der
gesamten Verarbeitung in der Anordnung seine eigenen
Bedingungen für das Einleiten bzw. Ausführen entsprechender
Befehle, so daß eine selbständige Steuerung ausgeführt
wird.
Bei dem Matrixprozessor bzw. dem Verfahren zur Steuerung
desselben bezeichnen I, N und n positive ganze Zahlen.
Der Zusammenhang zwischen N und n wird tatsächlich
innerhalb eines Bereichs geregelt, der durch
definiert ist, wodurch der Divisionsrest bei
der Division von N durch n bezeichnet ist.
Vorteilhafte Ausgestaltungen der Erfindung
sind in den Unteransprüchen aufgeführt.
Die Erfindung wird nachstehend anhand von Ausführungsbeispielen
unter Bezugnahme auf die Zeichnungen näher erläutert.
Es zeigt
Fig. 1 ein Beispiel für die
Gestaltung eines herkömmlichen Orthogonal-
Matrixprozessors,
Fig. 2A und 2B, 3A und 3B, 4A und 4B sowie 5A und 5B
Beispiele von Verarbeitungsvorgängen
in dem herkömmlichen Matrixprozessor,
Fig. 6 ein Blockschaltbild eines ersten
Ausführungsbeispiels des Matrixprozessors,
Fig. 7 ein Blockschaltbild einer Ausführungsform
eines Verarbeitungselements in dem
Matrixprozessor gemäß Fig. 6,
Fig. 8 eine Darstellung zur Erläuterung
von Verarbeitungsvorgängen in dem in Fig. 6
gezeigten Matrixprozessor,
Fig. 9 eine Darstellung zur Erläuterung der Eingabe
von Daten aus externen Quellen und der Bedingungen
zur Datenübertragung zwischen Verarbeitungselementen
in dem in Fig. 6 gezeigten Matrixprozessor,
Fig. 10 eine Darstellung zur Erläuterung eines
Beispiels von Verarbeitungsvorgängen in einem jeweiligen
Verarbeitungselement,
Fig. 11 ein Blockschaltbild, das ein zweites
Ausführungsbeispiel des Matrixprozessors
zeigt, bei dem Verarbeitungselemente
ringförmig angeordnet und verbunden sind,
Fig. 12 eine Darstellung zur Erläuterung eines
Beispiels für eine Kennung, die Eingangs-Vektordaten
hinzugefügt wird,
Fig. 13 eine Blockdarstellung, die ein Beispiel von
Steuervorgängen für ein Zustandskennungsregister
in dem Verarbeitungselement veranschaulicht,
Fig. 14A bis 14E Darstellungen zur Erläuterung von
Beispielen von Steuervorgängen bei der Ausführung
einer dynamischen Zeitversetzungs-Berechnung
in dem in Fig. 11 gezeigten
Matrixprozessor,
Fig. 15 ein Blockschaltbild einer Ausführungsform
einer Schaltungsanordnung, bei der in den Ver
arbeitungselementen als Teil des Matrix
prozessors jeweils eine Steuereinheit für das
Ausführen des Steuerverfahrens
eingebaut ist,
Fig. 16 ein Ablaufdiagramm, das ein Beispiel für den
Steuerungsablauf einer Steuerlogik in der Steuereinheit
eines jeweiligen Verarbeitungselements
zeigt, und
Fig. 17 ein Ablaufdiagramm, das ein weiteres Beispiel für den
Steuerungsablauf in der Steuereinheit in einem
jeweiligen Verarbeitungselement zeigt.
Fig. 6 zeigt ein Ausführungsbeispiel des
Matrixprozessors, in dem als Beispiel für eine
auf der dynamischen Zeitversetzung (dynamic time warping)
beruhenden Anpassungsberechnung die vorangehend angeführten
Gleichungen (1), (2) und (3) für zwei Arten von
Vektorfolgen C u und R v (u = 1, 2, . . ., l c ; v = 1, 2, . . .,
l r ) berechnet bzw. gelöst werden.
Gemäß Fig. 6 ist eine Anzahl n von Verarbeitungselementen
(PE) angenommen. Mit 1 ist ein einzelnes Element bezeichnet,
das eine Recheneinheit für Additionen, Subtraktionen,
Vergleichsberechnungen und Multiplikations- und
Additionsberechnungen enthält, um die Gleichungen (1),
(2) und (3) für die dynamische Zeitversetzungs-Berechnung
zu lösen, und das ferner Register für den Datenaustausch
mit benachbarten Elementen sowie mit externen Quellen und
einen Speicher zum Speichern von Rechenergebnissen und
Übertragungsdaten enthält. Diese Verarbeitungselemente 1
sind ringförmig angeordnet.
Mit 2-1 bis 2 -n sind Multiplexer bezeichnet, die von
einer nachfolgend beschriebenen Steuereinheit 10 zur Wahl
eines von zwei Zuständen gesteuert sind. Das heißt, bei dem
einen Zustand werden gleichzeitig in die Anordnung (ent
sprechend der Anzahl der Verarbeitungselemente) n Eingangs-
Vektordaten c i u (i = 1, 2, . . ., I u ) aus externen
Quellen eingegeben, während bei dem zweiten Zustand die
Eingangs-Vektordaten c i u umlaufend bzw. im Kreis jeweils
aus dem benachbarten Element übertragen werden. Wenn beispielsweise
von einem Element PE₁ an in jedes Element der
Anordnung n Eingangs-Vektordatenfolgen c₁ u , c₂ u , . . ., c n u
eingegeben werden, wählt der Multiplexer 2-1 eine von
einer (nicht gezeigten) externen Quelle kommende Eingangs-
Vektordaten-Sammelleitung 3 an, die als Eingangskanal
für diese Eingangs-Vektordatenfolgen eingesetzt wird.
Beginnend vom Element PE₁ als Ursprungsort an wird ein
jeweiliger der n Eingangs-Vektordatenwerte c₁ u , c₂ u , . . .,
c n u durch das aufeinanderfolgende Übertragen der Eingangs-
Vektordaten c i u zu benachbarten Elementen einem
jeweiligen Element zugeordnet. Andernfalls wählen alle Multiplexer
2-1 bis 2 -n einen Datenübertragungsweg 5 zwischen
den Verarbeitungselementen, über den die Eingangs-
Vektordatenfolgen c₁ u , c₂ u , . . ., c n u umlaufend zwischen
den Elementen übertragen werden. Jedes Verarbeitungselement
ist so gestaltet, daß jedesmal dann, wenn die vorstehend
genannten n Eingangs-Vektordatenmuster gewechselt
werden, parallel mit einer üblichen Parallelverarbeitung
in allen Elementen das jeweilige Verarbeitungsergebnis
gleichzeitig (Rest N/n)-mal zu dem benachbarten Element
übertragen wird, was nachstehend beschrieben wird. Hierbei
ist (Rest N/n) der Divisionsrest bei der Division von
Mit 4 ist eine Eingabe/Ausgabe-Sammelleitung zur aufein
anderfolgenden Eingabe von Vektordaten der anderen Eingangs-
Vektordatenfolge R v = {r₁ v , r₂ v , . . ., r Nv v } (k = 1,
2, . . ., l r ) in das jeweilige Element sowie ferner zur
Ausgabe von Rechenendergebnissen
bezeichnet. Mit 5 ist der Datenübertragungsweg
für die Ringübertragung der Eingangs-Vektordaten c i u zwischen
den Elementen und für die Übertragung eines kumulativen
bzw. Summenrechenergebnisses S ÿ bezeichnet. Mit 6
ist jeweils ein mit der Eingabe/Ausgabe-Sammelleitung
verbundener Eingabe/Ausgabe-Anschluß eines jeweiligen
Verarbeitungselements bezeichnet. Mit 7, 8 und 9 sind jeweils
die Eingangs-Vektordaten c i u und r j v (i = 1, 2, . . ., I u ;
j = 1, 2, . . ., N v ; u = 1, 2, . . ., l c ; v = 1, 2, . . ., l r ) bzw. Rechenendergebnisse
bezeichnet. Mit 10 ist die Steuereinheit für die Steuerung
des gesamten Systems bezeichnet, die das Bestimmen
der Zeitpunkte für den Wechsel der vorstehend genannten
Eingangs-Vektordaten und das Zählen der Anzahl von
Übertragungen der Verarbeitungsergebnisse steuert.
Fig. 7 zeigt eine Ausführungsform der Gestaltung
eines jeweiligen Verarbeitungselements. Das einzelne Ver
arbeitungselement 1 ist mit einer strichpunktierten Linie
umrahmt. Mit 4 ist die externe Eingabe/Ausgabe-Sammel
leitung für die Eingabe der Vektordaten r j v (j = 1, 2, . . ., N v ) in
das jeweilige Element und für die Ausgabe der Rechenend
ergebnisse bezeichnet. Mit 12 ist ein Eingabe/
Ausgabe-Anschluß für die Aufnahme von Daten aus der Sammel
leitung 4 sowie für die Übertragung von Daten zur Sammel
leitung 4 bezeichnet. Mit 13 ist ein Anschluß für die
Datenübertragung aus einem links benachbarten Element bezeichnet,
während mit 14 ein Anschluß für die Datenübertragung
zu einem rechts benachbarten Element bezeichnet
ist.
Mit 15 ist ein Puffer-Register (zweites Register) für das
Speichern von über die Sammelleitung 4 eingegebenen Vektordaten
r j bezeichnet. Mit 16 ist ein Pufferregister (viertes
Register) zum Speichern der Rechenendergebnisse
und die Ausgabe derselben an die Sammelleitung 4 bezeichnet.
Mit 17 ist ein Register (erstes Register) zum Speichern
der aus dem benachbarten Element eingegebenen Vektor
daten c i u (i = 1, 2, . . ., I u ) sowie eingegebener Daten,
die zur Berechnung des kumulativen bzw. Summen-
Rechenergebnisses S ÿ benötigt werden, das bei nachfolgend
beschriebenen Verarbeitungsvorgängen (b) und (c) erzielt
wird. Mit 18 ist ein Register (drittes Register) für
das Übertragen der Vektordaten c i u zu dem benachbarten
Element und zur Datenübertragung für das Berechnen des
Summen-Rechenergebnisses S ÿ bezeichnet. Mit 19 ist eine
interne Sammelleitung (Datenleitung) bezeichnet.
Mit 20 und 21 sind jeweils Pufferspeicher bezeichnet, die
alle Komponenten r k vj bzw. c k ui (k = 1, 2, . . ., m) der Vek
tordaten r j v bzw. c i u speichern, welche in die jeweiligen
Elemente einzugeben sind. Mit 22-1 ist eine Addier/Subtrahier-
Einheit (erste Recheneinheit) zur Addition und Subtraktion bezeichnet,
während mit 22-2 ein Akkumulator bzw. Akkumulatorregister
zum Akkumulieren des Ergebnisses der Addier/Subtrahier-
Einheit 22-1 bezeichnet ist. Mit 22-3 ist eine Produkt
summeneinheit (zweite Recheneinheit) zur Produktsummenberechnung bezeichnet.
Durch die Einheiten 22-1 und 22-3 sowie den Akkumulator
22-2 ist eine arithmetische bzw. Recheneinheit 22 gebildet,
die die Berechnungen gemäß den Gleichungen (1) und
(2) ausführt. Mit 23 ist ein Arbeitsspeicher für das Speichern
von Daten bezeichnet, die für die Berechnung der
Gleichungen (2) und (3) erforderlich sind. Dieser
Arbeitsspeicher 23 hat entsprechend dem Status der
gespeicherten Daten zwei Bereiche 23-1 und 23-2. Der Bereich
23-1 speichert Daten, die während der Ringübertragung
der Eingangs-Vektordaten c i u für das Ausführen nach
stehend beschriebener Verarbeitungsvorgänge (a), (b) und
(c) erforderlich sind, während der Bereich 23-2 Daten
speichert, die für die Ausführung der Verarbeitungsvorgänge
(b) und (c) erforderlich sind, welche unmittelbar
dem Wechsel von n Vektorfolgen aus Vektorfolgen C₁,
C₂, . . ., C 1c folgen.
Mit 24 ist eine Verarbeitungselement-Steuereinheit
bezeichnet, die eine Steuerung nach einem internen Mikro
programm oder nach Befehlen von einer externen Quelle
ausführt. Die Steuereinheit 24 umfaßt eine Steuerlogik 24-1,
einen Programmspeicher 24-2 zum Speichern des internen
Mikroprogrammes, einen Programmzähler 24-3 zum Steuern
des Programmspeichers 24-2, ein Befehlsregister 24-4 für
das Speichern von aus dem Programmspeicher 24-2 ausgelesenen
Daten und einen Befehlsdecodierer für das Decodieren
der in dem Befehlsregister 24-4 gespeicherten Daten.
Die Steuerlogik 24-1 empfängt über einen Eingangsanschluß
25 Steuersignale aus der in Fig. 6 gezeigten Prozessor-
Steuereinheit 10, um damit die Einheiten 24-2 bis
24-5 zu steuern.
Mit 26 und 27 sind Adressenleitungen des Arbeitsspeichers
23 bezeichnet. Die Adressenleitung 26 nimmt das Ausgangssignal
eines Zählers 28 auf, mit dem der Bereich 23-2 adressiert
wird, welcher Rechenzwischenergebnisse speichert.
Die Adressenleitung 27 ist beispielsweise einer
aus dem Befehlsregister 24-4 zugeführten Direktadresse
aus dem Mikroprogramm zugeordnet und adressiert den Speicher
bereich 23-1, der die Daten speichert, welche für die
einzelne bzw. gesonderte Verarbeitung bei den Verarbeitungs
vorgängen (b) und (c) erforderlich sind.
Mit 29, 30, 31 und 32 sind jeweils Wähler bezeichnet, die
durch die Steuereinheit 24 gesteuert werden. Gemäß
der vorstehenden Erläuterung wird das in der Recheneinheit
22 erzielte Rechenergebnis in den Arbeitsspeicher
23 eingespeichert. Die Register 17 und 18 dienen zur
Datenübertragung zwischen benachbarten Elementen in der
Weise, daß während des Einspeicherns des Rechenergebnisses
aus dem Arbeitsspeicher 23 in das Register 18 und des
darauffolgenden Übertragens des Rechenergebnisses aus dem
Register 18 zu dem Register 17 des benachbarten Ver
arbeitungselements in der Recheneinheit 22 die nächste
Berechnung ausgeführt wird. Infolgedessen ist es möglich,
parallel zu der normalen Verarbeitungseinheit für das
Übertragen der Eingangs-Vektordaten c i , die in den
nachfolgend angeführten Absätzen für die Verarbeitungs
vorgänge (a), (b) und (c) zur Berechnung von D ÿ und S ÿ
definiert sind, und für die Übertragung des Rechenergebnisses
gleichzeitig gemäß der nachfolgenden Erläuterung
die Verarbeitungsergebnisse (Rest N/n)-malig zu den
benachbarten Elementen zu übertragen; dabei wird das Zeit
intervall genutzt, während dessen das jeweilige Element die
vorstehend beschriebenen Berechnungen ausführt, wobei der
normale Verarbeitungsablauf auch dann nicht gestört wird,
wenn das Eingangs-Vektordatenmuster geändert wird.
Die nachstehende Tabelle 1 zeigt eine Ausführungsform des
Programmspeichers.
Felder (1) und (2) zeigen jeweils den Programminhalt für
Vektorabstandsberechnungen bzw. Summenabstandsberechnungen.
Das Feld (1) zeigt, wie die Vektorabstandsberechnungen
parallel ausgeführt werden, während die jeweiligen
Komponenten der Vektordaten c i und r i gleichzeitig eingegeben
werden. Es wird der Programminhalt im Feld (2)
für die Summenabstandsberechnungen erläutert. Die Befehle
in einem ersten und einem vierten Teilfeld des Felds
(2) entsprechen den Summenabstandsberechnungen für einen
jeweiligen Gitterpunkt. Das zweite Teilfeld entspricht
der Umordnung der Summenergebnisse. Das dritte Teilfeld
entspricht der Verarbeitung zur Ausgabe des Summenend
ergebnisses an einen externen Bestimmungsort.
Eine ausführliche Erläuterung erfolgt unter Zuordnen der
Befehlsfolgen in dem ersten und vierten Teilfeld zu den
Verarbeitungsvorgängen (a), (b) und (c). betrifft das
Laden bzw. Eingeben von D ÿ , während und jeweils
der Übertragung des Vergleichsergebnisses
min(S i-2,j , S i-1,j ) bzw. der Eingabe von min(S i-1,j-1,
S i,j-1) entsprechen. bis stellen die Ausführungsfolge
der Vergleichsberechnung für min{S i-1,j , min(S i-1,j-1, S i,j-1)} dar. bis stellen die Ablauffolge
für das Addieren von D ÿ zu diesem Vergleichsergebnis und
damit zum Erzielen von S ÿ dar. bis entsprechen
dem Eingeben von S ÿ gleichzeitig mit dem Erhalten des
Vergleichsergebnisses min(S i-1,j , S ÿ ), das zu dem
benachbarten Element zu übertragen ist.
Die Steuerlogik 24-1 in der Steuereinheit 24 ist derart
gestaltet, daß der in Fig. 16 gezeigte Steuerungsablauf
ausgeführt wird. In Fig. 16 sind mit q₁, q₂ und q₃
jeweils Steuersignale bezeichnet, die den jeweiligen Ver
arbeitungselementen von einer externen Steuereinheit wie
einem Verarbeitungscomputer zugeführt werden und die je
weils den Eingabestatus für die Vektordaten r j , den Aus
führungsstatus für die Umordnung und den Ausgabestatus
für das Rechenendergebnis einstellen. Wenn das jeweilige
Element ein Programmanlauf-Steuersignal empfängt, führt
die Steuerlogik 24-1 eine Steuerung zur Eingabe der Anfangs
adresse des Programmspeichers 24-2 in dem Programmzähler
24-3 aus. Danach nimmt die Steuerlogik 24-1 die
Steuersignale q₁, q₂ und q₃ für den jeweiligen Status
auf, um diese Steuersignale zu prüfen, bevor Zustandskennungen
f 5,6, f₂ und f₃ gesetzt werden. Diese Kennungen
f 5,6, f₂ und f₃ sind jeweils Kennungen, die ein fünftes
und ein sechstes Teilfeld, das zweite Teilfeld bzw. das
dritte Teilfeld der Programm-Felder (1) und (2) in Betrieb
setzen. Wenn diese Kennungen gesetzt sind, wird der
Programmzähler 24-3 eingeschaltet, wonach die Programme
gemäß den Feldern (1) und (2) ausgeführt werden. Während
der Ausführung dieser Programme werden die Kennungen f 5,6,
f₂ und f₃ überwacht; dabei sendet die Steuerlogik 24-1 an
das Befehlsregister 24-4 ein Steuersignal für das Maskieren
derjenigen Felder, deren Programm nicht ausgeführt
werden soll. Danach bestimmt die Steuerlogik 24-1 die
Beendigung des Programms und überträgt ein Steuersignal zu
der externen Steuereinheit, um dieser das Beenden der
Verarbeitungseinheit zu melden.
Die Steuerlogik 24-1 wiederholt diese Ablauffolge von
Steuervorgängen bei jeder Prozeßzeiteinheit.
Als nächstes wird erläutert, wie mittels der in Fig. 7
gezeigten Anordnung die durch die vorangehend angeführten
Rechengleichungen (1), (2) und (3) dargestellten dynamischen
Zeitversetzungs-Berechnungen ausgeführt werden. Eine
Anpassungsberechnung bzw. Paarigkeitsberechnung gemäß
der dynamischen Zeitversetzungs-Berechnung entspricht der
Berechnung der Gleichungen (1) und (2) für Gitterpunkte
an zweidimensionalen Gitterebenen, die durch zwei Arten
von Vektordatenfolgen C u bzw. R v gebildet werden.
Fig. 8 zeigt den Ablauf von dynamischen Zeitversetzungs-
Berechnungen gemäß den Gleichungen (1) und (2) für
die beiden Arten von Vektordatenfolgen bei dieser Anordnung,
nämlich für l c Vektordatenfolgen C u = {c₁ u , c₂ u , . . .,
(u = 1, 2, . . ., l c )
sowie für l r Vektordatenfolgen
R v = {r₁ v , r₂ v , . . ., (v = 1, 2, . . ., l r ).
Die aufeinanderfolgenden Ausführungen werden durch die
übliche grafische Darstellung der dynamischen Zeitversetzung
dargestellt. In Fig. 8 stellen gestrichelt
dargestellte Diagonalen und ausgezogen dargestellte Diagonalen
an dem Gitter einen Zeitpunkt hinsichtlich einer
Element-Verarbeitung als Zeiteinheit dar, während ein
Pfeil A die Richtung des Zeitablaufs von Zeitpunkten t₁,
t₂, t₃, . . . darstellt. Das heißt, Gitterpunkte an der
gleichen gestrichelten oder ausgezogenen Linie bedeuten, daß
die Daten gleichzeitig in den verschiedenen Elementen auf
der Linie verarbeitet werden. Da n Elemente vorgesehen
sind, werden während der Verarbeitung immer gleichzeitig
die n Gitterpunkte auf der Diagonale verarbeitet. Die
Verarbeitung bei jeder Verarbeitungszeit bewegt sich mit
der Zeit in einem mit X₁ bezeichneten Bereich
aufwärts und danach fortgesetzt zu dem unteren Bereich
eines Bereichs X₂. Schließlich verlagert sich die
Verarbeitung zu dem oberen Bereich des Bereichs X₂. Auf diese
Weise zeigt Fig. 8 eine solche aufeinanderfolgende
Verarbeitung in der Art und Weise der üblichen grafischen
Darstellung der dynamischen Zeitversetzung.
Mit I und II sind Gruppen gestrichelter Linien
bezeichnet, die nachfolgend erläutert werden.
Bei dem in Fig. 8 gezeigten Beispiel sind physikalisch
gesehen nur n Verarbeitungselemente vorhanden. Das heißt, es
sind nach Fig. 8 nur die n Elemente PE₁ bis PE n vorhanden,
die in der Zeichnung durch die Zahlen bzw. Bezeichnungen
1 bis n in Kreisen dargestellt sind und die in
schräger Richtung an der gleichen Zeitstelle liegen.
Fig. 9 veranschaulicht die Dateneingabevorgänge bei
einer solchen Anordnung. In Fig. 9 ist angenommen, daß n = 6
ist. Mit 41 ist ein Verarbeitungselement bezeichnet,
während mit 42 ein Datenübertragungsweg für die
Übertragung von Vektordaten c i (i = 1, 2, . . ., I) und
Summenergebnissen S ÿ zu einem benachbarten Element bezeichnet
ist. Mit 43 ist der Fluß der Vektordaten c i auf dem
Datenübertragungsweg zu einem jeweiligen Verarbeitungszeitpunkt
bezeichnet. Mit 44 sind Vektordaten r j (j = 1, 2, . . ., N) an
der Eingabe/Ausgabe-Sammelleitung bezeichnet, die zu
einem jeweiligen Zeitpunkt in das jeweilige
Element eingegeben werden müssen. Die Verarbeitungszeit
schreitet längs einer Zeitsäule 45 fort, die den Zeitablauf
veranschaulicht. Aus dem Element PE₁ werden aufeinanderfolgend
die Eingangs-Vektordatenfolgen c₁, c₂, . . ., c₆ für
die sechs Elemente eingegeben. Wenn die Aufbereitung der
jeweiligen Vektordaten in dem jeweiligen Element abge
schlossen ist, werden diese Vektordaten nacheinander zu
dem rechts benachbarten Element PE übertragen. Während
der Zeitdauer bis zu der Rückkehr der ersten Eingangs-
Vektordaten C₁ zu dem Element PE₁ erfolgt an dem die Eingangs-
Vektordaten c i (i = 1, 2, . . ., 6) führenden Datenüber
tragungsweg mit fortschreitender Zeit aufeinanderfolgend
eine Aufstufung um "1". Nach dem Zeitpunkt,
an dem die Eingangs-Vektordaten c i von dem Element PE₆ zu
dem Element PE₁ übertragen werden, werden zu jedem
Zeitpunkt die in dem jeweiligen Element vorhandenen
Eingangs-Vektordaten c₁ bis c₆ gleichzeitig zu dem je
weils benachbarten Element übertragen. Andererseits wer
den synchron mit den Übertragungsvorgängen für die Ein
gangs-Vektordaten c i (i = 1, 2, . . ., 6) zwischen den jewei
ligen Elementen aufeinanderfolgend in das jeweilige
Element die Eingangs-Vektordaten r j (j = 1, 2, . . ., N) ein
gegeben. Danach werden die Gleichungen, (1), (2) und (3)
für alle Gitterpunkte berechnet, während zwischen den
Elementen auf regelmäßige Weise die Daten ausgetauscht
werden.
Die gestrichelten Linien in der Gruppe I in Fig. 8 zeigen
an, daß nur der Multiplexer 2-1 zum Anwählen der Ein
gangs-Vektordaten-Sammelleitung aus einer externen Quelle
geschaltet wurde, daß aufeinanderfolgend Eingangs-Vektor
datenfolgen c₁¹, c₂¹, . . ., c n¹ in einer Anzahl eingegeben
wurden, die gleich der Anzahl der Verarbeitungselemente
ist, und daß jedesmal dann, wenn die Verarbeitung in
einem jeweiligen Element abgeschlossen ist, die Elemente
PE₂ bis PE n gleichzeitig die Vektordaten c x¹
(x = 1, 2, . . ., n-1) zu dem jeweils benachbarten Element
weitergeben. Die ausgezogenen Linien in der Gruppe I, die
sich von den gestrichelten Linien in dieser Gruppe I weg
fortsetzen, zeigen an, daß nach der Eingabe der Daten c₁
in das Element PE n alle Multiplexer 2-1 bis 2- n die Da
tenübertragungswege zwischen den Elementen anwählen und
daß die Berechnungen gemäß den Gleichungen (1), (2) und
(3) ausgeführt werden, während die Eingangs-Vektordaten
c₁¹, c₂¹, . . ., c n¹ umlaufend von Element
zu Element übertragen werden. Ferner zeigen die gestri
chelten Linien in der folgenden Gruppe II den Prozeß der
fortgesetzten Berechnung an, die ausgeführt wird, während
die Eingangs-Vektordaten c₁¹, c₂¹, . . ., c n¹ durch die
nächsten n-Vektordaten c n+1¹, . . ., c I1¹, . . ., c i u ersetzt
werden.
Obwohl während jedes Prozeßzeitpunkts in jedes Element
die beiden Arten von Vektordaten c i u und r j v eingegeben
werden, so daß in jedem Element unabhängig und parallel
die Berechnung gemäß der Gleichung (1) ausgeführt wird,
wird die Berechnung gemäß der Gleichung (2) ausgeführt,
während die Daten zwischen den benachbarten Elementen
ausgetauscht bzw. übertragen werden.
Nach Fig. 10 ist beispielsweise die Anzahl n der Verar
beitungselemente gleich "5". Fig. 10 veranschaulicht
den Verarbeitungsvorgang in jedem Element sowie die Ver
teilung der durch das jeweilige Element überprüften Git
terpunkte in dem Fall, daß eine durchgehende Verarbeitung
für alle Kombinationen aus Vektordatenfolgen C₁ und C₂
und Vektordatenfolgen R₁ und R₂ vorgenommen wird. Nach
Fig. 10 werden jeweils von demselben Element die Gruppen
von Gitterpunkten verarbeitet, die von einem langgezoge
nen Kreis umrahmt sind, wobei die Zahl an dem oberen lin
ken Rand dieses Rahmens die Verarbeitungselement-Nummer
angibt.
Zum Erreichen beispielsweise des Ergebnisses S 7,8 nach
Fig. 10 sind die für die Berechnungen von S 7,8 zu einem
Zeitpunkt t₁ notwendigen Daten die Daten S 6,7, S 7,7 und
S 6,8, die mittels der Elemente PE₄ und PE₅ erreicht wer
den. Da Zeitpunkte t₂ und t₃ in bezug auf den Zeitpunkt
t₁ in der Vergangenheit liegen, sind die Daten S 6,8 in
dem Element PE₅ vorhanden, welches das Ergebnis S 7,8 be
rechnet, während die Daten S 6,7 und S 7,7 in dem Element
PE₄ vorliegen. Daß heißt, die benötigten Daten liegen immer in
dem benachbarten Element vor, so daß bei dem Ausführen
der Vergleichsberechnung nach Gleichung (2) für den Wert
S 7,8 in dem Element PE₄ die Berechnung min(S 6,7, S 7,7)
ausgeführt wird und das Ergebnis in das Element PE₅ über
tragen wird, in dem die Berechnung min{S 6,8, min(S 6,7,
S 7,7)} ausgeführt wird.
In diesem Fall muß gemäß der vorangehenden Erläuterung
zum Aufteilen der Eingangs-Vektordaten C₁, C₂, . . ., C 1c
in Gruppen in einer Anzahl, die gleich der Anzahl n der
Verarbeitungselemente ist, und zu deren Eingabe in die
Anordnung der Wert S ÿ, der gemäß
Fig. 10 den mit einer schrägen Linie markierten Gitter
punkten entspricht, in ein vorbestimmtes Element übertra
gen werden, bevor der Austausch der Eingangs-Vektordaten
beginnt. Beispielsweise ist es erforderlich, daß der in
dem Element PE₁ vorliegende Wert S 5,1 zum Element PE₃,
der Wert S 5,2 aus dem Element PE₂ zu dem
Element PE₄, der Wert S 5,3 aus dem Ele
ment PE₃ zu dem Element PE₅, der Wert
S 5,4 aus dem Element PE₄ zu dem Element PE₁
bzw. der Wert S 5,5 aus dem Element PE₅ zu dem Ele
ment PE₂ übertragen wird.
Allgemein beginnen von dem Zeitpunkt an, der um die
Zeiteinheiten entsprechende Zeit vor dem Beginn des
Austauschs der n Vektordaten liegt, nämlich bei dem in
Fig. 10 gezeigten Beispiel von dem Zeitpunkt an, der um
die
Zeiteinheiten entsprechende
Zeit vor dem Beginn liegt, alle Elemente die Vorgänge des
gleichzeitigen Übertragens der zu diesem Zeitpunkt in den
jeweiligen Elementen gespeicherten Summenergebnisse S pn,j
(p = 1, 2, . . .) zu den jeweils benachbarten Elementen. Die
Übertragung dieser Daten erfolgt jeweils einzeln für jede
Verarbeitung der Elemente unter Nutzung der Zeitdauer,
während der die Elemente nur die Rechenverarbeitung
gemäß der vorstehenden Beschreibung parallel mit den re
gelmäßigen Verarbeitungsvorgängen (a), (b) und (c) gemäß
der Beschreibung in den nachfolgenden Absätzen ausführen;
dadurch ist es möglich, einem vorbestimmten Element die
erforderlichen Daten S pn,j bis unmittelbar vor dem Aus
tausch der n Eingangs-Vektordatenfolgen zuzuführen.
Bei dem in Fig. 10 gezeigten Beispiel werden parallel mit
der Verarbeitung für Gitterpunkte (c₁¹, r₆²) in dem Ele
ment PE₁ die an den gleichen Adressen in den Arbeits
speichern 23-2 der Elemente PE₁, PE₂, PE₃, PE₄ bzw. PE₅
vorliegenden Daten S 5,1, S 5,2, S 5,3, S 5,4 bzw. S 5,5 je
weils zu den benachbarten Elementen übertragen und den
Elementen PE₂, PE₃, PE₄, PE₅ bzw. PE₁ zugeordnet. Glei
chermaßen werden bei der Verarbeitung für den Gitterpunkt
(c₂¹, r₆²) im Element PE₁ die Daten den Elementen PE₃,
PE₄, PE₅, PE₁ bzw. PE₂ zugeordnet, wonach dann die Daten
übertragung abgeschlossen ist.
Bei der Verarbeitung unmittelbar nach dem Austausch gegen
die nächste Eingangs-Vektordatenfolge c₅¹, c₆¹, c₁¹ und
c₁², der bei der Verarbeitungszeit für einen nächsten
Gitterpunkt (c₃¹, r₆²) im Element PE₁ auftritt, werden
mittels der Elemente PE₃, PE₄, PE₅, PE₁ und PE₂ die
Verarbeitungsvorgänge (a), (b) und (c) ausgeführt, wobei
die durch die vorrangehend beschriebenen zwei Übertragun
gen erhaltenen Daten S 5,1, S 5,2, S 5,3, S 5,4 und S 5,5
herangezogen werden. Durch wiederholtes Ausführen
dieser Verarbeitung kann jedes Verarbeitungsele
ment regelmäßig und aufeinanderfolgend die dynamische
Zeitversetzungs-Berechnung gemäß den Gleichungen (1), (2)
und (3) ausführen.
Gemäß der vorstehenden Beschreibung führt während des
wiederholten Änderns des Ausgangssignals bzw. Austau
schens und der Ringübertragung von n Vektordaten der Ein
gangs-Vektordatenfolge C u (u = 1, 2, . . ., 1 c) sowie während
der mit dieser Eingabe und Ringübertragung dieser Vektor
daten c i u (i = 1, 2, . . ., I u) synchronen Eingabe der Vektor
daten r j v (j = 1, 2, . . ., N v) in das jeweilige Element
jedes Verarbeitungselement für einen jeweiligen Gitter
punkt wiederholt die Berechnung gemäß den Gleichungen
(1), (2) und (3) aus, so daß die Verarbeitung für alle
Gitterpunkte abgeschlossen wird.
Faßt man die vorstehenden Ausführungen zusammen, so sind
die normalen Verarbeitungsvorgänge (zur üblichen Verar
beitung) für ein Verarbeitungselement bei dem Ausführen
der Berechnung gemäß den Gleichungen (1) und (2) die fol
genden:
- (a) Gleichzeitig mit der über die Eingangs-Vektordaten-Sammelleitung erfolgenden Eingabe der Vektordaten c i (i = 1, 2, . . ., I) aus dem links benachbarten Element oder aus einer externen Quelle werden die Vektordaten c i-1 in das rechts benachbarte Element übertragen und synchron mit der Über tragung dieser Vektordaten über die Eingabe/Ausgabe-Sam melleitung die Vektordaten r j (j = 1, 2, . . ., N) eingegeben, so daß die Berechnung gemäß der Gleichung (1) ausgeführt wird, um D ÿ zu erhalten.
- (b) Es wird die Vergleichsberechnung von min{S i-1,j , min(S i-1, j-1, S i,j-1)} vorgenommen und zu diesem Ergeb nis D ÿ addiert, um S ÿ zu erhalten.
- (c) Es wird die Vergleichsberechnung für min(S i-1,j , S ÿ) ausgeführt und das Ergebnis zu dem benachbarten Ele ment übertragen. Zugleich wird das Ergebnis der Ver gleichsberechnung für min(S i,j-1, S i+1,j-1) aus dem links benachbarten Element eingegeben.
Der Verarbeitungsvorgang (a) entspricht dem Ausführen der
Berechnung gemäß der Gleichung (1), während die Verarbei
tungsvorgänge (b) und (c) der Ausführung der Berechnungen
gemäß den Gleichungen (2) und (3) entsprechen. Gleich
zeitig führt jedes Element die Verarbeitungsvorgänge in
der Aufeinanderfolge (a), (b) und (c) aus. Das heißt, während
der Ausführung des Vorgangs (a) wird dieser Vorgang in
allen Elementen ausgeführt. Ebenso wird bei Ausführung des
Vorgangs (b) dieser Vorgang in allen
Elementen ausgeführt.
Ein Unterschied zwischen diesen Betriebsvor
gängen und den Betriebsvorgängen in einer Orthogonal-
Matrixanordnung besteht in der Datenübertragung bei der
Ausführung der Berechnung gemäß Gleichung (2). Bei dem
Betriebsvorgang in einer Orthogonalmatrix wird die Ver
gleichsberechnung für min(S i,j-1, S i-1,j-1) ausgeführt,
nachdem das Summenergebnis S i-1,j-1 zu dem links
benachbarten Element übertragen wurde, während bei den
Betriebsvorgängen im erfindungsgemäßen Matrixprozessor
die bei dem nächsten Prozeßzeitpunkt zu erhaltenden Da
ten S i-1,j-1 und S i,j-1 im gleichen Element vorliegen, so
daß die Vergleichsberechnung auch ohne Datenübertragung
ausgeführt wrden kann.
Bei der Ausführung der Berechnung gemäß Gleichung (4)
können die Summenergebnisse regelmäßig auf die vorstehend
beschriebene Weise dadurch erzielt werden, daß zweierlei
einfache Rechenvorgänge ausgeführt werden. Das heißt, es wird
ein einzelner Verarbeitungsvorgang (d), bei dem das Sum
menergebnis aus dem benachbarten Element eingegeben wird,
zu diesem Datenwert zweifach der Wert des in dem Element
errechneten Vektorzwischenabstands addiert wird und das
Additionsergebnis an das benachbarte Element abgegeben
wird, und ein Verarbeitungsvorgang (e) ausgeführt, bei
dem das Summenergebnis aus dem benachbarten Element ein
gegeben wird, zu diesem Datenwert der Vektorzwischenab
stand addiert wird und das Ergebnis gespeichert wird. Ge
mäß der vorstehenden Erläuterung wird bei dem erfindungs
gemäßen Matrixprozessor die Anzahl der Verarbeitungsele
mente völlig unabhängig von den positiven ganzen Zahlen
I u und N v, welche jeweils die Anzahl der jeweils zu ver
arbeitenden Vektordaten darstellen; damit kann die Anzahl
der Verarbeitungselemente auf einen geeigneten Wert ent
sprechend dem geschätzten Umfang der Datenverarbeitung
gewählt werden. Der Matrixprozessor er
möglicht es, die dynamischen Zeitversetzungs-Berechnun
gen durch parallele Vektorverarbeitung (pipeline parallel
processing) auszuführen, die durch den vollen bzw. stän
digen Betrieb der Elemente, die wiederholt die regelmäs
sigen Verarbeitungsvorgänge ausführen, die Ausnutzung der
Schaltungsanordnung mit maximalem Wirkungsgrad ergibt.
Infolgedessen können die Systemabmessungen des Matrixprozessors bei der Herstellung in hochintegrierter
Technik (LSI-Technik) im Gegensatz zur
herkömmlichen Orthogonalmatrix, bei der die
Anzahl der Verarbeitungselemente entsprechend den positi
ven ganzen Zahlen I u und N v festgelegt ist,
außerordentlich klein gehalten werden, wobei ferner die
Schaltungsausstattung wirkungsvoll genutzt werden kann.
Ferner besteht bei dem Matrixprozessor
die Möglichkeit zur Erweiterung der Anzahl der Verarbei
tungselemente. Das heißt, die Verarbeitung für Vektordatenfol
gen in irgendeiner gewünschten Anzahl N v und I u kann
unabhängig von der Anzahl der Verarbeitungselemente aus
geführt werden.
Als nächstes werden die Leistungen der Orthogonalmatrix
und des hier beschriebenen Matrixprozessors im Hinblick
auf den Durchsatz je Verarbeitungselement und je Zeitein
heit verglichen, wobei ein mittlerer Nutzungsgrad der
Verarbeitungselemente in Betracht gezogen wird.
Bei den beiden Arten von Verarbeitungsinhalten in der
Orthogonalmatrix, die aus den vorangehend genannten Ver
arbeitungsvorgängen (i) und (iii) bzw. (ii) und (iv) be
stehen, wird angenommen, daß die jeweils
größere Schritteanzahl gleich U square ist; ferner wird
vorausgesetzt, daß die Anzahl der dynamischen Schritte
bei der aus den Verarbeitungsvorgängen (a), (b) und (c)
bestehenden Verarbeitung in jedem Element des Matrixprozessors
gleich U ring ist. Bei der Orthogonal
matrix sind zum Fertigstellen der auf der dynamischen
Zeitversetzung beruhenden Anpassungsberechnung für ein
Vektordatenpaar durch Anwendung des Verfahrens des ab
wechselnden Ausführens der beiden Arten von Verarbeitungen
(i) und (iii) bzw. (ii) und (iv) 2U square Schritte
erforderlich.
Falls bei der zur Diskussion stehenden Anpassungsberech
nung gemäß der dynamischen Zeitversetzung ein Element
PE ÿ die Ausführung der Berechnung gemäß den Gleichungen
(1), (2) und (3) für eine einzelne Vektordatenfolge R zum
Erzielen des Summenergebnisses S ÿ vollendet, braucht das
Element PE ÿ die Verarbeitung für diese Vektordatenfolge
R nicht auszuführen, wenn ein Element PE i′j′ (i′<i, j′<j)
diese Berechnung gemäß diesen Gleichungen ausführt.
Daher kann bei der Ausführung der Verarbeitung für eine
Vektordatenfolge R v ein nicht zu dieser Verarbeitung
beitragendes Element der Verarbeitung für eine weitere
Vektordatenfolge R v′ zugeordnet werden. Das heißt, während das
Summenergebnis S ÿ für eine erste Vektordatenfolge R₁ be
rechnet wird, kann auch die Berechnung des Summenergeb
nisses S ÿ für eine zweite Vektordatenfolge R₂ unter
einer Phasendifferenz von 2U square Schritten ausgeführt wer
den. Bis zum Erhalten des Rechenergebnisses für
Vektordatenfolgen I u und für Vektordatenfolgen R v ist be
ruhend auf der zum Erhalten von S IJ benötigten Einheit
2U square der Anzahl dynamischer Schritte die Schritte
anzahl (Nmax+Imax) erforderlich, so daß innerhalb der
Zeitdauer der (Nmax+Imax) Schritte (Nmax+Imax) Arten
von Summen-Endergebnissen erzielt werden können.
Andererseits wird
die Anpassungsverarbeitung zwischen Eingangs-
Vektordatenfolgen R₁, R₂, . . ., R lr und jeweils n Vektor
datenfolgen der Eingangs-Vektordatenfolgen C₁, C₂, . . ., C lc
wiederholt, so daß das Summen-Endergebnis erreicht wird.
Aufgrund der vorstehend beschriebenen Verarbeitungsvor
gänge der gesamten Anordnung ergibt sich der Wirkungsgrad
der Verarbeitungselemente bei der Verarbeitung für alle
Kombinationen aus Vektordatenfolgen C₁, C₂, . . ., C lc und
Vektordatenfolgen R₁, R₂, . . ., R lr folgendermaßen:
Zum Erzielen der Endergebnisse für l r · l c sind (Nmax+Imax+
l r+l c) Schritte in der Einheit 2U square erforderlich. Da
die Anzahl der Elemente Nmax · Imax ist, ergibt sich der
Wirkungsgrad des Elements durch die folgende Gleichung:
Mit U ring als Verarbeitungsschritteinheit beträgt die An
zahl der Verarbeitungsschritte während des Vorgangs für
den Austausch der n Eingangs-Vektordatenfolgen n Schritte
und die Anzahl der während der Ringübertragung der Ein
gangs-Vektordaten auszuführenden Verarbeitungsschritte
Schritte. Die Verarbeitung der Eingangs-Vektordatenfolgen
C₁, C₂, . . ., C lc wird auf eine Weise vorgenommen, die
äquivalent der Verarbeitung einer einzigen Eingangs-Vek
tordatenfolge ist; daher ergibt sich die Anzahl der zum
Erhalten der Endergebnisse für l r · l c erforderlichen
Schritte durch folgende Gleichung:
Der erste Ausdruck in der Gleichung (6) stellt die An
zahl der Schritte während der Ringübertragung dar. Der
zweite Ausdruck stellt die Anzahl der Schritte während
des Austauschs der Eingangs-Vektordaten dar. Der dritte
Ausdruck stellt die Anzahl der Schritte bei der ersten
und der letzten Stufe der gesamten Anpassungsverarbei
tung dar. Ferner gilt
Da n Elemente vorhanden sind, beträgt der Wirkungsgrad
η ring des Elements:
Falls mit N av der Mittelwert aus N₁, N₂, . . ., N lc be
zeichnet wird und mit I av der Mittelwert aus I₁, I₂, . . .,
I lc bezeichnet wird, gilt jeweils
so daß die Gleichung (7) folgendermaßen umge
schrieben werden kann:
Die Nenner und Zähler mit Ausnahme von "1" bei dem dritten
Ausdruck der Gleichung (8) betreffen den Wirkungsgrad
jeder Matrixanordnung bei der ersten und letzten Stufe
der gesamten Anpassungsverarbeitung. Infolgedessen ergibt
sich das Verhältnis der Wirkungsgrade der Verarbeitungs
elemente bei der Verarbeitung durch:
Nimmt man an, daß jedes Verarbeitungselement in der Ortho
gonalmatrix eine Einrichtung hat, die das gleichzeitige
Ausführen von Eingabe- und Ausgabevorgängen zuläßt, dann
gilt 2U square=U ring sowie Nmax<N av und Imax<I av;
somit ergibt der beschriebene Matrixprozessor immer einen
verbesserten Wirkungsgrad, der höher als derjenige der
Orthogonalanordnung ist. Wenn beispielsweise N av=3/4 Nmax
und I av=3/4 Imax gilt, hat die erfindungsgemäße Anord
nung einen Wirkungsgrad, der ungefähr 1,8 mal größer als
derjenige der Orthogonalanordnung ist. Falls die
herkömmliche Orthogonalanordnung eine Einrichtung hat, die
während jeder Verarbeitung in einem jeweiligen Ele
ment nur das abwechselnde Ausführen der Eingabe- und Aus
gabevorgänge zuläßt, gilt 2U square<U ring. Dies be
deutet, daß der relative Wirkungsgrad des
beschriebenen Matrixprozessors im Vergleich zu demjenigen der Or
thogonalmatrix sogar noch höher ist.
Die Systemabmessungen bei der Orthogonalmatrix sind aus
serordentlich groß, da mindestens (Nmax · Imax) Verarbei
tungselemente angeordnet und verbunden werden mußten. Da
her wird bei den herkömmlichen Anordnungen für die Ein
gabe und Ausgabe an einem jeden Element das Seriellbit
verfahren angewandt, um das Element kompakt zu gestalten.
Da jedoch bei der in Betracht gezogenen Anpassungsberech
nung unter dynamischer Zeitversetzung die zu verarbeiten
den Daten Vektordaten sind, bei denen als Einzeldaten ge
mäß Gleichung (1) die Datenfolgen einer bestimmten Dimen
sion vorliegen, nimmt die Anzahl der Übertragungsschritte
zwischen Verarbeitungselementen außerordentlich zu, falls
die Daten in der Form serieller Bitströme eingegeben und
ausgegeben werden; infolgedessen ist für die gesamten Be
rechnungsvorgänge eine längere Zeit erforderlich. Anderer
seits kann bei dem Matrixprozessor die Anzahl
der Verarbeitungselemente beträchtlich verringert werden,
so daß hinsichtlich der Abmessungen des Matrixprozessors
keinerlei Probleme entstehen, selbst wenn die Daten zwi
schen den Elementen parallel übertragen werden; die
Gestaltung des Matrixprozessors ist sehr
gut zur Verarbeitung von Vektordaten wie solchen geeignet,
die bei der in Betracht gezogenen Anpassungsberechnung
unter dynamischer Zeitversetzung verarbeitet werden.
Obwohl sich die vorstehende Erläuterung hauptsächlich auf
die mit den Gleichungen (1), (2) und (3) dargestellten
dynamischen Zeitversetzungs-Berechnungen bezieht, besteht
bei dem beschriebenen Matrixprozessor keine Einschrän
kung auf diese Berechnungen; vielmehr kann der Prozessor
gleichermaßen dann verwendet werden, wenn beispielsweise
gemäß der vorstehenden Beschreibung die Gleichung (2) durch
die Gleichung (4) ersetzt wird; ansonsten kann der
Matrixprozessor auch zur Ausführung von Be
rechnungen für alle Kombinationen zweier Arten von Variab
len und für irgendwelche Rekursivformelgleichungen mit
örtlicher Abhängigkeit der Daten unter Verwendung dieser
Rechenergebnisse verwendet werden.
Bei dem Matrixprozessor sind die Verar
beitungselemente mit vorbestimmten Eingabe/Ausgabevor
richtungen und Rechenvorrichtungen ringförmig über Multi
plexer verbunden, mit denen entweder ein Datenübertragungs
weg für den Datenaustausch mit benachbarten Elementen oder
eine externe Eingabe-Sammelleitung gewählt wird. Ferner
sind diese Verarbeitungselemente so gestaltet, daß paral
lel zu der üblichen Verarbeitung in jedem Element
die gleichzeitige Übertragung der jeweiligen Verarbei
tungsergebnisse durch alle Elemente zu benachbarten Ele
menten in einer vorbestimmten Häufigkeit ausgeführt wird.
Diese Gestaltung macht es möglich, die Berechnungen für
alle Kombinationen zweier Arten von Variablen und für
irgendwelche Rekursivformelgleichungen mit Ortsabhängig
keit der Daten unter Verwendung der Ergebnisse dieser Be
rechnung, wie es bei der Anpassungsberechnung unter dyna
mischer Zeitversetzung (dynamic time warping) typisch ist,
mit einer Anordnung aus einer dem Umfang der auszuführen
den Berechnung entsprechend geeigneten Anzahl von Verar
beitungselementen durch Parallelverarbeitung mit hohem
Wirkungsgrad auszuführen, während alle Verarbeitungsele
mente mit hohem Wirkungsgrad arbeiten.
Bei der durch die Gleichungen (1) bis (3) dargestellten
Berechnung wird als Endergebnis der Verarbeitung der Wert
S i,N gefordert. Ein Verfahren zum Steuern des
Matrixprozessors wird nun anhand eines Falls
erläutert, bei dem die vorangehend genannten dynamischen
Zeitversetzungs-Berechnungen im Hinblick auf alle Kombi
nationen aus einer einzigen Vektorfolge C und l Vektorfol
gen R p (p = 1, 2, . . ., l) ausgeführt werden, um als Endergeb
nis S i p, N p zu erhalten.
Fig. 11 zeigt ein Ausführungsbeispiel für die Gestal
tung eines Matrixprozessors, bei dem Verarbeitungselemente
ringförmig angeordnet und verbunden sind. Nach Fig. 11
sind n Verarbeitungselemente vorgesehen (n≦N p). An die
sem Matrixprozessor wird das nun beschriebene Steuerver
fahren angewandt.
In Fig. 11 ist mit 51 ein Verarbeitungselement (PE) be
zeichnet, das eine Recheneinheit zur Addition, Subtraktion,
Vergleichsberechnung und Produktsummenberechnung enthält,
die für die Berechnung gemäß der vorangehend genannten
Gleichung (1) erforderlich sind. Das Element 51 hat Regi
ster für den Datenaustausch mit einem benachbarten Ele
ment und mit einer externen Quelle, einen Speicher zum
Speichern von Rechenergebnissen und übertragenen Daten
sowie eine Steuereinheit zum Steuern eines jeweiligen Ab
schnitts eines Mikroprogrammspeichers, der Betriebsvorgänge
zur Verarbeitung in dem Element enthält. Mit 52-1 bis 52- n
sind Multiplexer bezeichnet, die entweder eine externe
Sammelleitung 53, welche aus einer externen Quelle zu ei
nem Zeitpunkt n Eingangsvektordaten c i (entsprechend der
Anzahl n der Elemente) eingibt, oder einen Datenübertra
gungsweg 55 anwählen, auf dem Eingangs-Vektordaten c i aus
einem benachbarten Element übertragen werden. Mit 54 ist
eine Eingabe/Ausgabe-Sammelleitung bezeichnet, die für
die Eingabe von Eingangs-Vektordaten r j p sowie für die
Ausgabe der Rechenendergebnisse S i p, N p an einen externen
Bestimmungsort eingesetzt wird. Der Datenübertragungsweg
55 überträgt die Daten c i und Zwischenergebnisse S ÿ p (j = 1,
2, . . ., N p-1) zwischen den Elementen. Mit 56 sind an
die Sammelleitung 54 angeschlossene Eingabe/Ausgabe-An
schlüsse der jeweiligen Elemente bezeichnet. Mit 57 ist
ein Gesamtsteuersystem wie ein Verarbeitungscomputer be
zeichnet, der den jeweiligen Elementen Steuersignale 58
liefert. Mit 59, 60 und 61 sind jeweils Eingangs-Vektor
datenfolgen C, Eingangs-Vektordatenfolgen R p (p = 1, 2, . . ., l)
bezeichnet.
Bei dem dermaßen gestalteten Matrixprozessor laufen die
dynamischen Zeitversetzungs-Berechnungen gemäß den Glei
chungen (1) bis (3) folgendermaßen ab:
Datenfolgen, die durch das Aufteilen von Eingangs-Vektor
datenfolgen C in Folgen n Daten (entsprechend der An
zahl n der Elemente) erzielt werden, sind folgendermaßen
gegeben:
S k = (C kn-1, C kn-2, . . ., C kn+q, . . ., C (k+1)n )
wobei k = 0, 1, 2, . . .; q = 1, 2, . . ., n-1 und kn+q≦I gilt.
Der Verarbeitungsablauf beinhaltet das wiederholte Aus
führen folgender Vorgänge (I) bis (V) für k=0, 1, 2, . . .:
- (I) Der Multiplexer für das Element, das in der Aufeinanderfolge in Zählung von dem Element her angeordnet ist, in welchem die Verar beitung zwischen der Eingangs-Vektordatenfolge S k-1 und allen Eingangs-Vektordatenfolgen R p (p = 1, 2, . . . l) beginnt, wird auf die externe Sammelleitung ge schaltet, um die Eingabe einer nachfolgenden Ein gangs-Vektordatenfolge S k aufzunehmen. Synchron mit dieser Dateneingabe beginnt die Berechnung für alle Eingangs-Datenfolgen R p, während in jedes Element aufeinanderfolgend die Eingangs-Vektordaten r j p ein gegeben werden. Wenn k=0 gilt, wird der Multiple xer für irgendein Element auf die extreme Sammel leitung geschaltet und diese Verarbeitung ausge führt.
- (II) Die Eingangs-Vektordatenfolge S k wird in die An ordnung eingegeben; wenn die Datenfolge S k bildenden Daten den verschiedenen Elementen zuge ordnet sind, wählen alle Multiplexer die Datenüber tragungswege zwischen den Elementen. Zugleich werden in allen Elementen die Daten ringförmig zwi schen den Elementen übertragen; während synchron mit dieser Datenübertragung in das jeweilige Ele ment die Eingangsdaten r j p eingegeben werden, werden für alle Eingangs-Datenfolgen R p die Berechnungen gemäß den Gleichungen (1) bis (3) ausgeführt.
- (III) Bei der Verarbeitung bei den Vorgängen (I) und (II) wird das Rechenergebnis S i p, N p für jede Eingangs- Vektordatenfolge R p an einen externen Bestimmungs ort ausgegeben.
- (IV) Bei der Verarbeitung bei den Vorgängen (I) und (II) wird das Rechenergebnis S p (k+1)n,j für die letzten Daten c (k+1)n in jeder Eingangs-Vektor datenfolge S k in den internen Speicher des Ele ments eingespeichert, das diese Berechnung aus führt.
- (V) Bei der Verarbeitung bei den Vorgängen (I) und (II) beginnt um Prozeßzeiteinheiten vor dem Zeit punkt, an dem der Austausch der Eingangs-Datenfolge S k beginnt, jedes Element gleichzeitig einmal je Prozeßzeiteinheit einen einzigen Datenwert des in seinen internen Speicher gespeicherten Rechener gebnisses zu übertragen (wobei die Prozeßzeiteinheit die Zeit ist, die für die Ausführung der Verarbeitung in jedem Element erforderlich ist). Das heißt, die Übertragung wird insgesamt vorge nommen. Ferner wird während der Ringübertragung der Eingangs-Vektordaten C i die Übertragung der Rechen ergebnisse zwischen den Elementen in allen Elemen ten bei jeweils Prozeßzeiteinheiten wiederholt. Einmal je Prozeßzeiteinheit wird ein einzel nes Rechenergebnis für ein jeweiliges Element über tragen, so daß insgesamt Übertragungen erfolgen.
Das Steuerverfahren zum Steuern einer
solchen Verarbeitung wird nachfolgend in Absätzen (A) und
(B) erläutert.
Fig. 12 zeigt ein Beispiel für Kennungen, die für das
Ausführen des Steuerverfahrens den Ein
gangs-Vektordaten hinzugefügt werden. Mit 61 und 62 sind
Kennungen bezeichnet, die den Kopf bzw. das Ende
jeder Datenfolge anzeigen. Mit 63 sind Kennungen für das
Einstellen der Zeit zur gleichzeitigen Übertragung der
Rechenergebnissen aller Elemente unmittelbar vor dem Aus
tausch der Eingangs-Vektordatenfolge S k bezeichnet, wäh
rend mit 64 Eingangs-Vektordaten r j p bezeichnet sind.
- (A) Gemäß Fig. 12 werden für jede Eingangs-Vektorda tenfolge R p den entsprechenden Eingangs-Vektordaten r j p die drei Bits der Kennung 61 und 62 für das Anzeigen des Kopfs und des Endes einer jeden Datenfolge sowie der Ken nung 63 für das Wählen der Zeit für das gleichzeitige Übertragen der Rechenergebnisse aller Elemente unmittelbar vor dem Austausch der Eingangs-Vektordatenfolge S k hinzu gefügt.
- (B) Jedes Verarbeitungselement hat ein Zustandsken nungsregister für das Speichern von Informationen für das Beurteilen der Rolle, die das jeweilige Element bei der Verarbeitung in der gesamten Anordnung zu spielen hat, nämlich von Informationen über den Eingabezustand der Eingangs-Vektordaten r j p und über Zählvorgänge für die Anzahl gleichzeitiger Übertragungen der Rechenergebnisse zwischen allen Elementen bzw. von Umordnungsvorgängen.
Fig. 13 zeigt ein Beispiel eines Steuervorgangs des
Zustandkennungsregisters in einem Element, nämlich
einen Vorgang für die aufeinanderfolgende Eingabe der Ein
gangs-Vektordaten r j p in das jeweilige Element. Mit 66 ist
ein Zustandkennungsregister bezeichnet, das eine Eingabe
kennung 67 für die Bestimmung eines Eingabezustands der
Eingangs-Vektordaten r j p und eine Zahlkennung 68 für die
Zählung der Anzahl von Übertragungen enthält, die bei der
Umordnung bzw. Neuzuordnung erforderlich sind.
Mit 51 ist das Verarbeitungselement bezeichnet. Mit 54
ist die externe Eingabe/Ausgabe-Sammelleitung bezeichnet.
Mit 55 ist der Datenübertragungsweg zwischen den Elementen
bezeichnet.
Bei jeder Prozeßzeiteinheit wird der Inhalt des Zustandkennungs
registers 66 zu dem benachbarten Element übertragen, wobei
der Inhalt dazu dient, den jeweiligen Zustand in dem jeweiligen
Element einzustellen, bevor zum nachfolgenden Pro
zeßzeitpunkt die Verarbeitung beginnt. Die Eingangs-Vektordaten
r j p werden in dasjenige Element eingegeben, dessen Kennung
67 "1" ist. Der Inhalt des Zustandkennungsregisters 66
wird aufeinanderfolgend bei jeder Prozeßzeiteinheit zu dem be
nachbarten Element weitergegeben, so daß die Eingangs-Vek
tordaten r4742 00070 552 001000280000000200012000285912463100040 0002003506749 00004 24623A<j p aufeinanderfolgend in die jeweiligen Elemente
eingegeben werden. Währenddessen werden synchron mit der
aufeinanderfolgenden Eingabe der Eingangs-Vektordaten rj p
die Eingangs-Vektordaten ci ringförmig in allen Elementen
umgewälzt.
Bei der Anfangseinstellung wird die Kennung 67 in dem Zu
standskennungsregister eines der Elemente auf "1" ge
setzt, während die Kennungen 67 der übrigen Elemente auf
"0" gesetzt werden.
Die beiden Arten von Steuerungsmaßnahmen bzw. Steuerungs
vorgängen gemäß den Absätzen (A) und (B) werden kombiniert,
so daß die Steuerung der Betriebsvorgänge ei
nes vorstehend beschriebenen Matrixpro
zessors entsprechend den vorangehend genannten Betriebs
vorgängen (I) bis (V) erfolgt.
Die Fig. 14A bis 14E veranschaulichen ein Beispiel für
einen Steuerungsvorgang in dem Fall, daß der Matrixprozessor
nach Fig. 11 die auf der dynamischen Zeitversetzung
beruhende Anpassungsberechnung für n=5, l=2, N₁=6 und N₂=7
ausführt.
In diesen Fig. ist mit 51 das Verarbeitungselement be
zeichnet, mit 52 der Multiplexer für das Wählen entweder
des Datenübertragungswegs 55 oder der externen Sammellei
tung 53 bezeichnet und mit 54 die externe Eingabe/Ausgabe-
Sammelleitung bezeichnet. Mit 66 ist das Zustandkennungs
register bezeichnet, das die Kennung 67 für das Bestimmen
des Eingabezustands der Eingangs-Vektordaten rj p und die
Kennung 68 für das Zählen der Anzahl von während der Um
ordnung bzw. Neuzuordnung ausgeführten Übertragungen ent
hält. Mit 69 ist der durch die Umordnung bei der jeweiligen
Prozeßzeit umzuordnende Datenwert bezeichnet. In der nach
folgenden Erläuterung werden durchgehend die vorangehend
genannten verschiedenen Kennungen folgen
dermaßen bezeichnet:
Den Eingangs-Vektordaten rj p hinzugefügte Kennungen:
Kennung 61 = Kopfkennung
Kennung 62 = Endkennung
Kennung 63 = Übertragkennung
Kennungen in dem Zustandkennungsregister 66:
Kennung 67 = Eingabekennung
Kennung 68 = Zählkennung
Die Fig. 14A bis 14E veranschaulichen die Verarbeitungs
vorgänge des Elements bei einem jeweiligen Prozeßzeitpunkt von
einem Prozeßzeitpunkt (t+1), bei dem die Eingangs-Vektordaten
folge S₁=(c₁, c₂, c₃, c₄, c₅) durch die Eingangs-Vektor
datenfolge S₂=(c₆, c₇, c₈, c₉, c₁₀) ersetzt wird, bis zu
einem Prozeßzeitpunkt (t+20), bei der die Eingangs-Vektorda
tenfolge S₂ durch die nächste Eingangs-Vektordatenfolge
S₃=(c₁₁, c₁₂, c₁₃, c₁₄, c₁₅) ersetzt wird, sowie die
Steuerungszustände zu den jeweiligen Prozeßzeitpunkten.
Die Zeiteinheit ist diejenige Zeit, die je
des Verarbeitungselement für die Verarbeitung gemäß den
Gleichungen (1) bis (3) in dem Element benötigt.
Der Prozeßzeitpunkt (t+1) entspricht der Zeit, die um
vor dem Prozeßzeitpunkt
(t+4) liegt, bei dem der Austausch der Vektordatenfolge
S₁ durch die Vektordatenfolge S₂ beginnt. Unmittelbar vor
diesem Prozeßzeitpunkt (t+1) wird jedem Element ein nachste
hend als Austauschsignal bezeichnetes Steuersignal zuge
führt, das die Ausführung des Austauschens der Eingangs-
Datenfolge Sk befiehlt. Nur das Element PE₁, welches die
Information speichert, daß das Element das erste Element
ist, in dem die Verarbeitung der eingegebenen Datenfolge
S₁ beginnt, nimmt dieses Austauschsignal auf und bereitet
den Beginn der Umordnung bzw. Neuzuordnung vor.
Bei der vorangehend mit (II) bezeichneten Steuerung wird
den letzten fünf Datenwerten r₃², r₄², r₅², r₆² und r₇² der Ein
gangs-Vektordatenfolgen R₁ und R₂ die Übertragkennung "1"
hinzugefügt. Daher nimmt das Element PE₁, dessen Eingabe
kennung in dem Zustandkennungsregister zum Prozeßzeitpunkt
(t+1) "1" ist, aus diesen Datenwerten den Datenwert r₅² auf,
um zu ermitteln, daß die Übertragkennung "1" ist, und da
mit den Beginn der Umordnung zu erkennen, wobei das Element
die Zählkennung auf "1" setzt. Zur gleichen Zeit wird die
Übertragkennung als "1" bewertet und es wird allen Ele
menten aufeinanderfolgend der Beginn der Umordnung (in der
Richtung des in den Fig. gestrichelt dargestellten Pfeils)
gemeldet. Damit werden alle Elemente in einen Übertrags
zustand für die Umordnung geschaltet.
Als nächstes wird durch alle Ele
mente parallel mit der Berechnung gemäß den Gleichungen (1)
bis (3) auch das Ergebnis der Berechnung übertragen. Bei
dem Prozeßzeitpunkt (t+1) werden aus den jeweiligen Elementen
die (jeweils in den Elementen PE₁, PE₂, PE₃, PE₄ bzw. PE₅
erzielten) Rechenergebnisse S5,1¹, S5,2¹, S5,3¹, S5,4¹ und S5,5¹
aus dem jeweiligen internen Speicher als erste Übertragungs
daten ausgelesen und durch die Verarbeitung zu diesem
Zeitpunkt zu dem benachbarten Element übertragen. Daher
werden diese Daten S5,5¹, S5,1¹, S5,2¹, S5,3¹ und S5,4¹ bis zum
Beginn der Verarbeitung bei dem Prozeßzeitpunkt (t+2) jeweils
in die Elemente PE₁, PE₂, PE₃, PE₄ und PE₅ umgeordnet. Die
zum Prozeßzeitpunkt (t+2) in das Element PE₂ eingegebenen Vek
tordaten r₆² enthalten keine Information für das Rückstellen
des Umordnungszustands, so daß zu diesem Zeitpunkt die Um
ordnung fortgesetzt wird. Daher werden vor dem Beginn der
Verarbeitung bei dem Prozeßzeitpunkt (t+3) diese Daten in die
Aufeinanderfolge S5,4¹, S5,5¹, S5,1¹, S5,2¹ und S5,3¹ umgeordnet.
Durch das Wiederholen dieser Varbeitung werden diese Da
ten vor dem Beginn der Verarbeitung zum Prozeßzeitpunkt (t+4)
in die vorbestimmten Elemente in der Aufeinanderfolge S5,3¹,
S5,4¹, S5,5¹, S5,1¹ und S5,2¹ umgeordnet. Beispielsweise werden
die neu in das Element PE₄ eingeordneten Daten S5,1¹ sofort
bei der Verarbeitung bei dem Prozeßzeitpunkt (t+4) eingesetzt,
um aus diesem Element PE₄ die Daten S6,1¹ zu erhalten. Das
gleiche gilt auch für die anderen Daten, so daß die in das
Element PE₅ umgesetzten Daten S5,2¹ zum Erhalten der Daten
S6,2¹ bei dem Prozeßzeitpunkt (t+5) herangezogen werden. Zum
Prozeßzeitpunkt (t+4) ist in dem Element PE₄ der Datenwert r₁¹
enthalten, dessen Kopfkennung "1" ist; daher wird diese
Kennung ausgewertet und daraus erkannt, daß die Umordnung
abgeschlossen ist; infolgedessen wird in dem Zustandken
nungsregister die Übertragkennung rückgesetzt. Zugleich
wird diese Rücksetzung bestätigt und es wird allen Elemen
ten (in der Richtung der in den Fig. gestrichelt dar
gestellten Pfeile) der Abschluß der Umordnung gemeldet,
so daß in allen Elementen die Umordnungszustand-Einstellung
aufgehoben wird. Infolgedessen wird zum Prozeßzeitpunkt (t+4)
in den jeweiligen Elementen nur die Verarbeitung gemäß den
Gleichungen (1) bis (3) ausgeführt.
Nachdem ferner aus dem Gesamt-Steuersystem in jedes Ele
ment das Austauschsignal eingegeben wurde, erkennt das
erste Element, welches die Eingangs-Vektordaten aufgenom
men hat, in denen die Kopfkennung "1" ist, daß es das erste
Element ist, das durch das startende Element abgerufen ist,
das die Verarbeitung für die betreffende Eingangs-Vektor
datenfolge Sk ausführt, wobei der durch dieses Element
verwaltete Multiplexer auf die externe Sammelleitung ge
schaltet wird, so daß er als Eingangskanal für die Ein
gangs-Vektordatenfolge Sk arbeitet. Danach wird in diesem Ele
ment die Information gespeichert, die das erste Element
für die Verarbeitung anzeigt. Der Steuerungsvorgang dieser
Art leitet den Austausch der Eingangs-Vektordatenfolgen
ein. Gemäß Fig. 14A wird dieser Vorgang zum Prozeßzeitpunkt
(t+4) von dem Elementen PE₄ ausgeführt.
Die Elemente, die das Anfangs-Element oder das Abschluß-
Element waren, welche die Berechnung für die ersten Ein
gangs-Vektordaten aller Vektordatenfolgen R₁, R₂, . . ., Rl
ausführen, speichern über die Zählvorgänge bei der Umord
nung die Informationen für dieses Anfangs-Element oder Ab
schluß-Element in den Elementen, bis das Anfangs-Element
oder das Abschluß-Element für die Umordnung für die nach
folgende Datenfolge Sk+1 bestimmt wird. Danach werden die
Betriebsvorgänge jedesmal dann erneut begonnen, wenn in
diesen Elementen im Zustandkennungsregister die Eingabe
kennung auftritt, wobei dann die vorstehend beschriebene
Umordnung ausgeführt wird. Bei dem in Fig. 14B gezeigten
Beispiel erfolgt die zweite Umordnung während der Zeit
dauer vom Prozeßzeitpunkt (t+6) bis zum Prozeßzeitpunkt (t+8).
Durch diese zweite Umordnung werden in die vorbestimmten
Elemente die Rechenergebnisse S5,6¹, S5,1², S5,2², S5,3² und
S5,4² neu eingeordnet, die die zweiten Übertragungsdaten
für das jeweilige Element sind. Durch eine dritte Umord
nung während der Zeitdauer vom Prozeßzeitpunkt (t+11) bis
zum Prozeßzeitpunkt (t+13) werden in die vorbestimmten Elemente
die Rechenergebnisse S5,5², S5,6² und S5,7² neu eingeordnet.
Zum Prozeßzeitpunkt (t+14) ist die Umordnung für die Eingangs-
Vektordatenfolge S₁ gemäß den Zählvorgängen zwischen den
Elementen abgeschlossen, die das Anfangs-Element und das
Abschluß-Element für die Umordnung sind. In dem Element
PE₄ wird die Information eingestellt, die das Anfangs-Ele
ment für die Verarbeitung der Eingangs-Vektordatenfolge S₂
anzeigt; es wird das aus dem Gesamt-Steuersystem unmittel
bar vor diesem Prozeßzeitpunkt gesendete Austauschsignal über
prüft; die den Eingangs-Vektordaten r₅² hinzugefügte Über
tragkennung wird als "1" ermittelt. Daraufhin wird sofort
in dem Zustandkennungsregister die Zählkennung gesetzt.
Danach wird nach dem Prozeßzeitpunkt (t +15) der vorangehend be
schriebene Verarbeitungsvorgang wiederholt.
Andererseits ermittelt das Element, das die Verarbeitung
für die Eingangs-Vektordaten r₆¹ und r₇² mit der Endkennung
ausführte, daß diese Kennung "1" sind, woraufhin das
Element parallel mit der Berechnung gemäß den Gleichungen
(1) bis (3) das Rechenergebnis Si p, Np an den externen Be
stimmungsort abgibt.
Gemäß den Fig. 14A bis 14E wird zum Prozeßzeitpunkt (t+3)
das Ergebnis S1,7², zum Prozeßzeitpunkt (t+3) das
Ergebnis S2,7², zum Prozeßzeitpunkt (t+5) das Ergeb
nis S3,7², zum Prozeßzeitpunkt (t+6) das Ergebnis
S4,7², zum Prozeßzeitpunkt (t+7) das Ergebnis S5,7²,
zum Prozeßzeitpunkt (t+9) das Ergebnis S6,6¹,
zum Prozeßzeitpunkt (t+10) das Ergebnis S7,6¹,
zum Prozeßzeitpunkt (t+11) das Ergebnis S8,6¹,
zum Prozeßzeitpunkt (t+12) das Ergebnis S9,6¹,
zum Prozeßzeitpunkt (t+13) das Ergebnis S10,6¹, zum
Prozeßzeitpunkt (t+16) das Ergebnis S6,7², zum Pro
zeßzeitpunkt (t+17) das Ergebnis S7,7², zum Prozeß
zeitpunkt (t+18) das Ergebnis S8,7², zum Prozeßzeitpunkt
(t+19) das Ergebnis S9,7² und zum Prozeßzeitpunkt
(t+20) das Ergebnis S10,6² ausgegeben. Auf diese Weise wer
den die Rechenergebnisse für die Eingangs-Vektordatenfolge
S₂ an die externen Besitmmungsorte in der Aufeinanderfolge
S6,6¹, S7,6¹, S8,6¹, S9,6¹, S10,6¹, S6,7², S7,7², S8,7², S9,7² und
S10,7² ausgegeben.
Die das Anfangs-Element für die Verarbeitung für die je
weilige Eingangs-Vektordatenfolge Sk anzeigende Information
wird rückgesetzt, nachdem die Übertragkennung als "1" er
mittelt wurde und festgestellt wurde, daß die Zählkennung
auf "1" gesetzt ist. Ferner wird dann, wenn die Übertrag
kennung "1" ist, die das Anfangs-Element für die Umordnung
anzeigende Information auf "1" gesetzt, wenn die Zählken
nung "0" ist, und die Information nicht geändert, wenn die
se Zählkennung "1" ist. Wenn die Übertragkennung "1" ist,
wird die das Abschluß-Element für die Umordnung anzeigende
Information auf "0" gesetzt, falls die Zählkennung "1" ist,
während diese Information nicht geändert wird, falls diese Zählken
nung "0" ist. Nachdem der Multiplexer die externe Sammel
leitung wählt, behält der Mulitplexer das Wählen der ex
ternen Sammelleitung bei, bis die Eingabekennung im Zu
standkennungsregister auf "1" wechselt; nachdem ermittelt
ist, daß die Eingabekennung "1" ist, wählt der Multiplexer
den Datenübertragungsweg zwischen den Elementen an.
Gemäß der vorstehenden Erläuterung dienen der Inhalt des
Zustandkennungsregisters sowie die den Eingangs-Vektor
daten rj p hinzugefügten Kennungen dazu, unmittelbar vor der
Ausführung der Berechnungen gemäß den Gleichungen (1) bis
(3) den Verarbeitungszustand des jeweiligen Elements zu
ermitteln. Infolgedessen sind bei diesem Steuerverfahren
aus dem Gesamt-Steuersystem keine Steuersignale erforder
lich, die die Verarbeitungsvorgänge in dem jeweiligen Ele
ment vorschreiben. Es genügt, wenn zyklisch je
dem Element ein Steuersignal zugeführt wird, das den Zeit
punkt für den Austausch der Eingangs-Vektordatenfolge Sk
anzeigt. Diese Gestaltung macht es möglich, kontinuierlich
die dynamischen Zeitversetzungs-Berechnungen gemäß den
Gleichungen (1) bis (3) auszuführen, während in dem ganzen
Matrixprozessor eine selbständige Steuerung ausgeführt
wird.
Fig. 15 zeigt ein Ausführungsbeispiel für die Schal
tungsanordnung in dem Fall, daß in einem Verarbeitungsele
ment dieses Matrixprozessors eine Einrichtung für das er
findungsgemäße Steuerverfahren vorgesehen ist.
In Fig. 15 sind die externe Eingangs-Vektordaten-Sammel
leitung 53, die externe Eingabe/Ausgabe-Sammelleitung 54
und der Anschluß 56 zum Verbinden des Elements mit der
Sammelleitung 54 die gleichen wie die in Fig. 11 gezeigten.
Mit 71 ist ein Steuereingangsanschluß zum Steuern einer
Steuereinheit 88 aus einer Steuersignalquelle wie einem
Verarbeitungscomputer bezeichnet. Mit 72 und 73 sind ein
Eingangsanschluß bzw. ein Ausgangsanschluß für die Daten
übertragungswege zwischen den Elementen bezeichnet. Mit
74 und 75 sind ein Eingangsanschluß bzw. ein Ausgangsan
schluß eines Zustandkennungsregisters 86 bzeichnet. Mit
76 und 77 sind ein Eingangs-Register bzw. ein Ausgangs-
Register zur Datenübertragung bezeichnet. Mit 78 und 79
sind Pufferspeicher für Eingangs-Vektordaten ci bzw. rj
bezeichnet. Mit 80 ist ein Pufferregister (viertes Regi
ster) für die Ausgabe von Daten an die Sammelleitung 54
bezeichnet. Mit 81 ist ein Zähler zum Adressieren eines
Speichers bezeichnet. Mit 82 ist eine Recheneinheit be
zeichnet, die eine Addier/Subtrahier-Einheit 82-1, einen
Akkumulator 82-2 und eine Produktsummeneinheit 82-3 ent
hält. Mit 83 ist ein Arbeitsspeicher bezeichnet. Mit 84
und 85 sind Adressierleitungen für den Arbeitsspeicher be
zeichnet. Mit 87 ist ein Puffer-Register für Kennungen be
zeichnet, die den Eingangs-Vektordaten hinzugefügt sind.
Mit 89 ist eine Befehlseinheit bezeichnet, die einen Mik
roprogrammspeicher 89-1 mit einem Mikroprogramm, das die
Betriebsvorgänge der Verarbeitung des Elements enthält,
einen Programmzähler 89-2, ein Befehlsregister 89-3 und
einen Befehldecodierer 89-4 enthält. Mit 90 ist ein Puf
fer-Register zum Speichern der Eingangs-Vektordaten rj bei
deren Eingabe aus der Sammelleitung 54 bezeichnet. Mit 91,
92, 93 und 94 sind jeweils Wähler bezeichnet, die von der
Steuereinheit 89 gesteuert werden.
Die Steuereinheit 88 in dem jeweiligen Verarbeitungselement
empfängt ein Prozeßstart-Einschaltsignal von einer
externen Steuereinheit und wird entsprechend dem in Fig. 16
gezeigten Steuerungsablauf gesteuert. Die Steuereinheit
88 erzeugt ein Steuersignal für das Einstellen der An
fangsadresse des Programms in dem Programmzähler 89-2.
Dann steuert die Steuereinheit 88 die Nutzung der Über
tragung der Eingabekennung und der Zählkennung; ferner
prüft die Steuereinheit die Kennung f5,6 für das fünfte
und sechste Teilfeld im Programmfeld (1) durch das Ermit
teln, ob die Eingabekennung "1" ist oder nicht, wonach die
Steuereinheit dann diese Kennung setzt. Bei diesem Zustand
arbeitet der Programmzähler 89-2 in der Weise, daß die
Ausführung des Programms gemäß dem Feld (1) gesteuert wird.
Wenn das Programm gemäß dem Feld (1) abgeschlossen ist,
wird die Eingabekennung ausgewertet; falls die Eingabe
kennung "1" ist, wird die den in das Element eingegebenen
Vektordaten rj hinzugefügte Kennung so ausgewertet, daß
die Zustandseinstellung vorgenommen wird, die für das Aus
führen des Programms gemäß dem Feld (2) notwendig ist.
Wenn die Kopfkennung als "1" ermittelt wird, wird die
Zählkennung ausgewertet. Falls die Zählkennung "0" ist,
wird der zuvor eingestellte Zustand unverändert aufrecht
erhalten, während die Steuereinheit 88 die Steuerung der
Ausführung des Programms gemäß dem Feld (2) beginnt.
Wenn die Zählkennung "1" ist, wird eine Umordnungszustand-
Abschaltkennung auf "1" gesetzt, um das Erzeugen eines
Rückstellsignals für den Umordnungszustand vorzubereiten.
Die Zählkennung wird auf "0" gesetzt und es wird das Rück
stellsignal zum Rückstellen des Umordnungszustands gesendet.
Danach wird zum Maskieren des zweiten Teilfelds des
Programmfelds (2) die Kennung f₂ auf "0" geschaltet,
während die Information für das Anfangs-Element auf "1"
gesetzt wird. Falls die Endkennung ermittelt wird, wird die
das Ausführen des Programms gemäß dem dritten Teilfeld des
Felds (2) steuernde Kennung f₃ in Abhängigkeit davon, ob
die Endkennung "1" ist oder nicht, auf "1" oder "0"
geschaltet. Bei der Prüfung der Übertragkennung wird die
Information über das Anfangs-Element ausgewertet; falls
die Information nicht "1" ist, beginnt die Steuereinheit 88
das Ausführen des Programms gemäß dem Feld (2) ohne Änderung
des vorangehenden Zustands zu steuern.
Falls die Information für das Anfangs-Element "1" ist,
wird die Umordnungszustand-Einschaltkennung auf "1" gesetzt,
um das Herbeiführen eines Umordnungszustands vorzu
bereiten, während die Zählkennung auf "1" gesetzt wird.
Dann wird ein Einschaltsignal zum Einschalten des Um
ordnungszustands gesendet und die Kennung f₂ für das
Ausführen des Programms gemäß dem zweiten Teilfeld des Felds (2)
auf "1" geschaltet. Ferner wird die Information für das
Anfangs-Element auf "0" geschaltet, wonach die Steuereinheit
88 die Steuerung der Ausführung des Programms gemäß
dem Feld (2) beginnt.
Wenn die den eingegebenen Vektordaten r j hinzugefügte
Kennung eine Kennung ist, die nicht eine der vorstehend genannten
drei Kennungen ist, nämlich eine Übersprung- bzw.
NOP-Kennung ist, wird die Umordnungszustand-Einschalt
kennung geprüft. Falls diese Kennung "0" ist, beginnt die
Steuereinheit 88 die Steuerung der Ausführung des Programms
gemäß dem Feld (2) ohne Änderung des vorangehenden
Zustands. Wenn diese Kennung "1" ist, wird die Zählkennung
auf "1" geschaltet, um erneut die Umordnung zu beginnen,
wobei das Einschaltsignal für den Umordnungszustand gesendet
wird und die Kennung f₂ auf "1" gesetzt wird. Ferner
wird die Information für das Anfangs-Element auf "0"
gesetzt.
Wenn die Eingabekennung nicht "1" ist, werden die Berechnungen
unter Verwendung der schon bei der Ausführung des
Programms gemäß dem Feld (1) in das Element eingespeicherten
Vektordaten r j ausgeführt, so daß die für die Aus
führung des Programms gemäß dem Feld (2) erforderlichen Zustands
einstellungen in Abhängigkeit davon ausgeführt werden,
ob das Einschalt- oder Abschaltsignal für den Umordnungs
zustand empfangen wurde oder nicht. Wenn das Einschaltsignal
empfangen wurde, wird die Kennung f₂ auf "1" gesetzt.
Wenn statt des Einschaltsignals das Abschaltsignal
empfangen wurde, wird die Kennung f₂ auf "0" gesetzt. Wenn
keines der Signale empfangen wurde, beginnt die Steuer
einheit 88 das Steuern der Ausführung des Programms gemäß dem
Feld (2) ohne Änderung des vorangehenden Zustands.
Wenn die Zustandseinstellungen für die vorangehend
beschriebenen verschiedenen Fälle abgeschlossen sind, wird
der Programmzähler 89-2 in Betrieb gesetzt, so daß das
Programm gemäß dem Feld (2) ausgeführt wird. Den vorstehend
beschriebenen Steuerungsvorgang wiederholt die Steuereinheit
88 bei jedem Prozeßzeitpunkt.
Das vorstehend beschriebene Ausführungsbeispiel ermöglicht
es, die gesamte Anordnung selbständig allein dadurch zu
steuern, daß 3-Bit-Kennungen hinzugefügt werden und in jedem
Element 2-Bit-Zustandskennungen aufgenommen werden. Diese
Gestaltung ermöglicht nicht nur eine Verringerung der
Belastung des gesamten Steuersystems 57, sondern auch eine
Vereinfachung des Steuerverfahrens.
Claims (5)
1. Matrixprozessor, mit Multiplexern, n Verarbeitungs
elementen und einer Einrichtung zum Steuern der Multiplexer
und der Verarbeitungselemente, wobei die n Verarbeitungs
elemente in Form eines Rings angeordnet sind und
jeweils benachbarte Verarbeitungselemente über je einen
Multiplexer miteinander verbunden sind und jedes Verarbeitungs
element
eine erste Eingabevorrichtung zur Eingabe von Eingangs- Vektordaten einer ersten Art von Eingangs-Vektor datenfolge = (i = 1, 2, . . ., I) von einer Eingangs-Vektordaten-Sammelleitung,
eine zweite Eingabevorrichtung zur Eingabe von Eingangs- Vektordaten einer zweiten Art von Eingangs-Vektordatenfolge = (j = 1, 2, . . ., N) von einer Eingabe/Ausgabe- Datensammelleitung,
eine Rechenvorrichtung für das Ausführen vorbestimmter Additions- und Subtraktionsberechnungen, Vergleichsbe rechnungen und Produktsummenberechnungen zwischen den beiden Arten der Eingangs-Vektordaten und zum Speichern der Rechenergebnisse,
eine Übertragungsvorrichtung für das Übertragen der einen der Eingangs-Vektordaten und eines Rechenergebnisses der Rechenvorrichtung zu einem benachbarten Verarbeitungs element,
eine Ausgabevorrichtung für die Ausgabe eines Rechenend ergebnisses von der Rechenvorrichtung an die Eingabe/ Ausgabe-Datensammelleitung,
eine Ablaufvorrichtung für das Ausführen einer Ver arbeitung, bei der parallel mit einer Rechenverarbeitung in einem jeweiligen Verarbeitungselement alle Verarbeitungs elemente gleichzeitig die jeweiligen Verarbeitungsergebnisse (Rest N/n)-mal zu den jeweils benachbarten Verarbeitungs elementen übertragen, wobei (Rest N/n) der Divisionsrest bei dem Dividieren von N durch n ist, und
eine Steuervorrichtung für das Steuern der Rechenvorrichtung und der Ablaufvorrichtung aufweist, und
wobei jeder der Multiplexer eine Wählvorrichtung zum Wählen entweder eines Datenübertragungswegs für die Daten übertragung zwischen den beiden durch den Multiplexer verbundenen Verarbeitungselementen oder eines Datenüber tragungswegs für das Zuführen der einen Eingangs-Vektordaten aus einer externen Quelle zum dem jeweiligen Multiplexer zugehörigen Verarbeitungselement enthält, dadurch gekennzeichnet,
daß die erste Eingabevorrichtung (13, 17, 21; 72, 76, 78) direkt mit dem Ausgang des jeweils zugehörigen Multiplexers (2; 52) verbunden ist, und
daß die zweite Eingabevorrichtung (12, 15, 20; 56, 79, 90) direkt mit der Eingabe/Ausgabe-Datensammelleitung (4; 54) verbunden ist, so daß die Eingangs-Vektordaten der Eingangs- Vektordaten-Sammelleitung (3; 53) und der Ein gabe/Ausgabe-Datensammelleitung (4; 54) gleichzeitig an das Verarbeitungselement (1; 51) anlegbar sind.
eine erste Eingabevorrichtung zur Eingabe von Eingangs- Vektordaten einer ersten Art von Eingangs-Vektor datenfolge = (i = 1, 2, . . ., I) von einer Eingangs-Vektordaten-Sammelleitung,
eine zweite Eingabevorrichtung zur Eingabe von Eingangs- Vektordaten einer zweiten Art von Eingangs-Vektordatenfolge = (j = 1, 2, . . ., N) von einer Eingabe/Ausgabe- Datensammelleitung,
eine Rechenvorrichtung für das Ausführen vorbestimmter Additions- und Subtraktionsberechnungen, Vergleichsbe rechnungen und Produktsummenberechnungen zwischen den beiden Arten der Eingangs-Vektordaten und zum Speichern der Rechenergebnisse,
eine Übertragungsvorrichtung für das Übertragen der einen der Eingangs-Vektordaten und eines Rechenergebnisses der Rechenvorrichtung zu einem benachbarten Verarbeitungs element,
eine Ausgabevorrichtung für die Ausgabe eines Rechenend ergebnisses von der Rechenvorrichtung an die Eingabe/ Ausgabe-Datensammelleitung,
eine Ablaufvorrichtung für das Ausführen einer Ver arbeitung, bei der parallel mit einer Rechenverarbeitung in einem jeweiligen Verarbeitungselement alle Verarbeitungs elemente gleichzeitig die jeweiligen Verarbeitungsergebnisse (Rest N/n)-mal zu den jeweils benachbarten Verarbeitungs elementen übertragen, wobei (Rest N/n) der Divisionsrest bei dem Dividieren von N durch n ist, und
eine Steuervorrichtung für das Steuern der Rechenvorrichtung und der Ablaufvorrichtung aufweist, und
wobei jeder der Multiplexer eine Wählvorrichtung zum Wählen entweder eines Datenübertragungswegs für die Daten übertragung zwischen den beiden durch den Multiplexer verbundenen Verarbeitungselementen oder eines Datenüber tragungswegs für das Zuführen der einen Eingangs-Vektordaten aus einer externen Quelle zum dem jeweiligen Multiplexer zugehörigen Verarbeitungselement enthält, dadurch gekennzeichnet,
daß die erste Eingabevorrichtung (13, 17, 21; 72, 76, 78) direkt mit dem Ausgang des jeweils zugehörigen Multiplexers (2; 52) verbunden ist, und
daß die zweite Eingabevorrichtung (12, 15, 20; 56, 79, 90) direkt mit der Eingabe/Ausgabe-Datensammelleitung (4; 54) verbunden ist, so daß die Eingangs-Vektordaten der Eingangs- Vektordaten-Sammelleitung (3; 53) und der Ein gabe/Ausgabe-Datensammelleitung (4; 54) gleichzeitig an das Verarbeitungselement (1; 51) anlegbar sind.
2. Matrixprozessor nach Anspruch 1, dadurch gekennzeichnet,
daß die erste Eingabevorrichtung (13, 17, 21; 72, 76, 78) für die Eingabe der ersten Eingangs-Vektordaten einen mit einem Datenübertragungsweg (5; 55) verbindbaren ersten Anschluß (13; 72), ein an den ersten Anschluß ange schlossenes erstes Register (17; 76) und einen an das erste Register angeschlossenen ersten Pufferspeicher (21; 78) aufweist,
daß die zweite Eingabevorrichtung (12, 15, 20; 56, 79, 90) für die Eingabe der zweiten Eingangs-Vektordaten einen Eingabe/Ausgabe-Anschluß (12; 56), ein an den Eingabe/ Ausgabe-Anschluß angeschlossenes zweites Register (15; 90) und einen an das zweite Register angeschlossenen zweiten Pufferspeicher (20; 79) aufweist,
daß die Rechenvorrichtung (22, 23; 82; 83) eine erste Recheneinheit (22-1; 82-1) zur Addition, Subtraktion und Vergleichsberechnung, eine zweite Recheneinheit (22-3; 82-3) zur Produktsummen-Berechnung, ein Pufferregister (22-2; 82-2) für die erste Recheneinheit (22-1; 82-1), einen ersten Wähler (29; 91) zum Wählen eines der Ausgangssignale des Pufferregisters (22-2; 82-2), des ersten Registers (17; 76) oder einer internen Datenleitung (19), einen zweiten Wähler (30; 92) zum Wählen eines der Ausgangssignale des zweiten Pufferspeichers (20, 79) oder der internen Datenleitung (19) und einen dritten Wähler (31; 93) zum Wählen des Ausgangssignals des ersten Registers (17; 76), des Pufferregisters (22-2; 82-2) oder der zweiten Recheneinheit (22-3; 82-3) aufweist, wobei die Ausgänge des ersten und zweiten Wählers (29, 30; 91, 92) mit der ersten Recheneinheit (22-1; 82-1), ein Ausgang des dritten Wählers (31; 93) mit einem Arbeitsspeicher (23; 83) und die interne Datenleitung (19) mit dem ersten Pufferspeicher (21; 78), dem ersten und dem zweiten Wähler (29, 30; 91, 92) und einem zweiten und einem dritten Pufferregister (16, 18; 77, 80) verbunden sind,
daß die Ablaufvorrichtung einen Zähler (28; 81), einen vierten Wähler (32; 94) zum Wählen entweder einer ersten Adresseninformation (26; 84) aus dem Zähler (28; 81) oder einer zweiten Adresseninformation (27; 85) aus der Steuer vorrichtung (24; 88, 89) und einen Teil (23-2) des an den vierten Wähler (32; 94) angeschlossenen Arbeitsspeichers (23; 83) enthält,
daß die Übertragungsvorrichtung das an die interne Datenleitung (19) angeschlossene dritte Pufferregister (18; 77) und einen an das dritte Pufferregister (18; 77) angeschlossenen zweiten Anschluß (14; 73) aufweist, der mit dem Datenübertragungsweg verbindbar ist,
daß die Ausgabevorrichtung für die Eingabe/Ausgabe-Daten sammelleitung (4; 54) das an die interne Datenleitung (19) angeschlossene zweite Pufferregister (16; 80) und den Eingabe/Ausgabe-Anschluß (12; 56) aufweist und
daß die Steuervorrichtung (24; 88, 89) ein Steuersignal (25; 71) aus der Einrichtung (10; 57) für das Steuern der Verarbeitungselemente (1; 51) und der Multiplexer 2; (52) empfängt.
daß die erste Eingabevorrichtung (13, 17, 21; 72, 76, 78) für die Eingabe der ersten Eingangs-Vektordaten einen mit einem Datenübertragungsweg (5; 55) verbindbaren ersten Anschluß (13; 72), ein an den ersten Anschluß ange schlossenes erstes Register (17; 76) und einen an das erste Register angeschlossenen ersten Pufferspeicher (21; 78) aufweist,
daß die zweite Eingabevorrichtung (12, 15, 20; 56, 79, 90) für die Eingabe der zweiten Eingangs-Vektordaten einen Eingabe/Ausgabe-Anschluß (12; 56), ein an den Eingabe/ Ausgabe-Anschluß angeschlossenes zweites Register (15; 90) und einen an das zweite Register angeschlossenen zweiten Pufferspeicher (20; 79) aufweist,
daß die Rechenvorrichtung (22, 23; 82; 83) eine erste Recheneinheit (22-1; 82-1) zur Addition, Subtraktion und Vergleichsberechnung, eine zweite Recheneinheit (22-3; 82-3) zur Produktsummen-Berechnung, ein Pufferregister (22-2; 82-2) für die erste Recheneinheit (22-1; 82-1), einen ersten Wähler (29; 91) zum Wählen eines der Ausgangssignale des Pufferregisters (22-2; 82-2), des ersten Registers (17; 76) oder einer internen Datenleitung (19), einen zweiten Wähler (30; 92) zum Wählen eines der Ausgangssignale des zweiten Pufferspeichers (20, 79) oder der internen Datenleitung (19) und einen dritten Wähler (31; 93) zum Wählen des Ausgangssignals des ersten Registers (17; 76), des Pufferregisters (22-2; 82-2) oder der zweiten Recheneinheit (22-3; 82-3) aufweist, wobei die Ausgänge des ersten und zweiten Wählers (29, 30; 91, 92) mit der ersten Recheneinheit (22-1; 82-1), ein Ausgang des dritten Wählers (31; 93) mit einem Arbeitsspeicher (23; 83) und die interne Datenleitung (19) mit dem ersten Pufferspeicher (21; 78), dem ersten und dem zweiten Wähler (29, 30; 91, 92) und einem zweiten und einem dritten Pufferregister (16, 18; 77, 80) verbunden sind,
daß die Ablaufvorrichtung einen Zähler (28; 81), einen vierten Wähler (32; 94) zum Wählen entweder einer ersten Adresseninformation (26; 84) aus dem Zähler (28; 81) oder einer zweiten Adresseninformation (27; 85) aus der Steuer vorrichtung (24; 88, 89) und einen Teil (23-2) des an den vierten Wähler (32; 94) angeschlossenen Arbeitsspeichers (23; 83) enthält,
daß die Übertragungsvorrichtung das an die interne Datenleitung (19) angeschlossene dritte Pufferregister (18; 77) und einen an das dritte Pufferregister (18; 77) angeschlossenen zweiten Anschluß (14; 73) aufweist, der mit dem Datenübertragungsweg verbindbar ist,
daß die Ausgabevorrichtung für die Eingabe/Ausgabe-Daten sammelleitung (4; 54) das an die interne Datenleitung (19) angeschlossene zweite Pufferregister (16; 80) und den Eingabe/Ausgabe-Anschluß (12; 56) aufweist und
daß die Steuervorrichtung (24; 88, 89) ein Steuersignal (25; 71) aus der Einrichtung (10; 57) für das Steuern der Verarbeitungselemente (1; 51) und der Multiplexer 2; (52) empfängt.
3. Matrixprozessor nach Anspruch 2, dadurch gekennzeichnet,
daß jedes Verarbeitungselement (51) eine Vorrichtung (74, 75, 86) aufweist, die eine Zustandskennung (75) aus einem der benachbarten Verarbeitungselemente aufnimmt, um die Zustandskennung (75) zu einem anderen der benachbarten Verarbeitungselemente zu übertragen,
daß das zweite Register (90) einen Registerteil (87) zum Speichern einer Kennung aufweist, die den aus der Eingabe/ Ausgabe-Datensammelleitung (54) eingegebenen Ein gangs-Vektordaten hinzugefügt ist, und
daß die Steuervorrichtung (88, 89) eine Verarbeitungs element-Steuereinheit (88), die ein Steuersignal (71) von einer externen Quelle, ein Kennungssignal von dem Register teil (87) und von einem Zustandskennungs-Register (86) aufnimmt, um ein Befehlssteuersignal zu bilden, und eine Verarbeitungsbefehlseinheit (89) aufweist, die das Befehlssteuersignal aufnimmt, um die zweite Adressen information (85) sowie Steuersignale zum Steuern des ersten, des zweiten, des dritten und des vierten Wählers (91 bis 94) zu bilden.
daß jedes Verarbeitungselement (51) eine Vorrichtung (74, 75, 86) aufweist, die eine Zustandskennung (75) aus einem der benachbarten Verarbeitungselemente aufnimmt, um die Zustandskennung (75) zu einem anderen der benachbarten Verarbeitungselemente zu übertragen,
daß das zweite Register (90) einen Registerteil (87) zum Speichern einer Kennung aufweist, die den aus der Eingabe/ Ausgabe-Datensammelleitung (54) eingegebenen Ein gangs-Vektordaten hinzugefügt ist, und
daß die Steuervorrichtung (88, 89) eine Verarbeitungs element-Steuereinheit (88), die ein Steuersignal (71) von einer externen Quelle, ein Kennungssignal von dem Register teil (87) und von einem Zustandskennungs-Register (86) aufnimmt, um ein Befehlssteuersignal zu bilden, und eine Verarbeitungsbefehlseinheit (89) aufweist, die das Befehlssteuersignal aufnimmt, um die zweite Adressen information (85) sowie Steuersignale zum Steuern des ersten, des zweiten, des dritten und des vierten Wählers (91 bis 94) zu bilden.
4. Verfahren zum Steuern eines insbesondere nach einem der
Ansprüche 1 bis 3 aufgebauten Matrixprozessors, der eine
erste Vektordatenfolge = (i, = 1, 2, . . ., I) aus I
ersten Eingangs-Vektordaten und eine zweite Vektordatenfolge
= (j, = 1, 2, . . ., N) aus N zweiten Eingangs-
Vektordaten aufnimmt und ein Ergebnis einer vorbestimmten
Berechnung ausgibt, wobei
ein Matrixprozessor mit n Verarbeitungselementen eingesetzt wird, die über Multiplexer in Form eines Rings verbunden sind und in die die ersten und die zweiten Eingangs-Vektordaten eingegeben werden,
die ersten Eingangs-Vektordaten in P Gruppen mit jeweils n Teil-Eingangsvektordaten aufgeteilt werden, wobei P eine ganze Zahl ist, die gleich oder größer als "1" ist,
die n Teil-Eingangsvektordaten einer jeden Gruppe und die zweiten Eingangs-Vektordaten einer vorbestimmten Verarbeitung unterzogen werden und
aufeinanderfolgend die vorbestimmte Verarbeitung für jede der P Gruppen und die zweite Vektordatenfolge wiederholt wird, um durch die Verarbeitungselemente ein Verarbeitungs endergebnis zu erzeugen,
dadurch gekennzeichnet, daß nur einer der Multiplexer (2; 52) die ersten Eingangs-Vektordaten überträgt, während gleichzeitig die übrigen Multiplexer (2; 52) entsprechende Ausgangssignale von vorhergehenden benachbarten Verarbeitungselementen (1; PE; 51) übertragen, und
daß bei der vorbestimmten Verarbeitung in jedes der Verarbeitungselemente (1; PE; 51) die n ersten Eingangs-Vektordaten über nur einen der Multiplexer (2; 52) eingegeben werden,
die n ersten Eingangs-Vektordaten aufeinanderfolgend umlaufend über die Multiplexer (2; 52) zwischen den jeweiligen Verarbeitungselementen (1; PE; 51) übertragen und jede der Teil-Eingangsvektordaten einer jeden Gruppe direkt und synchron mit der umlaufenden Übertragung der n ersten Eingangs-Vektordaten in jedes einzelne der Verarbeitungselemente (1; PE; 51) eingegeben werden oder jede der zweiten Eingangs-Vektordaten direkt in jedes einzelne der Verarbeitungselemente (1; PE; 51) zu jedem Zeitpunkt, zu dem die Teil-Eingangsvektoren umlaufend zwischen den Verarbeitungselementen (1; PE; 51) übertragen oder in die Verarbeitungselemente (1; PE; 51) eingegeben werden, und synchron mit einer entsprechenden Zeitsteuerung eingegeben werden,
die Teil-Eingangsvektordaten, die zweiten Eingangs-Vektordaten und ein von einem benachbarten Verarbeitungselement (1; PE; 51) über einen der Multiplexer (2; 52) übertragenes Verarbeitungsergebnis (S ÿ ) verarbeitet und über den nachfolgenden Multiplexer (2; 52) zu einem benach barten Verarbeitungselement (1; PE; 51) ein neues Verarbeitungsergebnis (S ÿ ) übertragen wird,
das Verarbeiten und Übertragen wiederholt wird und ein neues Verarbeitungsergebnis (S ÿ ) in einer Ver arbeitungszeit zwischen den Verarbeitungselementen (1; PE; 51) (Rest N/n)-mal übertragen wird, falls ein Verarbeitungs ergebnis (S ÿ ) einer Gruppe zur Verarbeitung in der folgenden Gruppe verwendet wird, wobei (Rest N/n) der Divisionsrest bei der Division von N durch n ist.
ein Matrixprozessor mit n Verarbeitungselementen eingesetzt wird, die über Multiplexer in Form eines Rings verbunden sind und in die die ersten und die zweiten Eingangs-Vektordaten eingegeben werden,
die ersten Eingangs-Vektordaten in P Gruppen mit jeweils n Teil-Eingangsvektordaten aufgeteilt werden, wobei P eine ganze Zahl ist, die gleich oder größer als "1" ist,
die n Teil-Eingangsvektordaten einer jeden Gruppe und die zweiten Eingangs-Vektordaten einer vorbestimmten Verarbeitung unterzogen werden und
aufeinanderfolgend die vorbestimmte Verarbeitung für jede der P Gruppen und die zweite Vektordatenfolge wiederholt wird, um durch die Verarbeitungselemente ein Verarbeitungs endergebnis zu erzeugen,
dadurch gekennzeichnet, daß nur einer der Multiplexer (2; 52) die ersten Eingangs-Vektordaten überträgt, während gleichzeitig die übrigen Multiplexer (2; 52) entsprechende Ausgangssignale von vorhergehenden benachbarten Verarbeitungselementen (1; PE; 51) übertragen, und
daß bei der vorbestimmten Verarbeitung in jedes der Verarbeitungselemente (1; PE; 51) die n ersten Eingangs-Vektordaten über nur einen der Multiplexer (2; 52) eingegeben werden,
die n ersten Eingangs-Vektordaten aufeinanderfolgend umlaufend über die Multiplexer (2; 52) zwischen den jeweiligen Verarbeitungselementen (1; PE; 51) übertragen und jede der Teil-Eingangsvektordaten einer jeden Gruppe direkt und synchron mit der umlaufenden Übertragung der n ersten Eingangs-Vektordaten in jedes einzelne der Verarbeitungselemente (1; PE; 51) eingegeben werden oder jede der zweiten Eingangs-Vektordaten direkt in jedes einzelne der Verarbeitungselemente (1; PE; 51) zu jedem Zeitpunkt, zu dem die Teil-Eingangsvektoren umlaufend zwischen den Verarbeitungselementen (1; PE; 51) übertragen oder in die Verarbeitungselemente (1; PE; 51) eingegeben werden, und synchron mit einer entsprechenden Zeitsteuerung eingegeben werden,
die Teil-Eingangsvektordaten, die zweiten Eingangs-Vektordaten und ein von einem benachbarten Verarbeitungselement (1; PE; 51) über einen der Multiplexer (2; 52) übertragenes Verarbeitungsergebnis (S ÿ ) verarbeitet und über den nachfolgenden Multiplexer (2; 52) zu einem benach barten Verarbeitungselement (1; PE; 51) ein neues Verarbeitungsergebnis (S ÿ ) übertragen wird,
das Verarbeiten und Übertragen wiederholt wird und ein neues Verarbeitungsergebnis (S ÿ ) in einer Ver arbeitungszeit zwischen den Verarbeitungselementen (1; PE; 51) (Rest N/n)-mal übertragen wird, falls ein Verarbeitungs ergebnis (S ÿ ) einer Gruppe zur Verarbeitung in der folgenden Gruppe verwendet wird, wobei (Rest N/n) der Divisionsrest bei der Division von N durch n ist.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet,
daß in die Verarbeitungselemente (1; PE; 51) Aufbe reitungsbefehle (89-1) aufgenommen werden,
daß den zweiten Eingangs-Vektordaten eine Kennung (61, 62, 63) hinzugefügt wird, die einen Aufbereitungs zustand anzeigt, der in jedem der Verarbeitungselemente (1; PE; 51) bei einer vorbestimmten Ablauffolge hervorgerufen ist,
daß eine Zustandskennung (86) gebildet wird, die jedem der Verarbeitungselemente (1; PE; 51) den individuellen Aufbe reitungszustand meldet,
daß die Zustandskennung (86) zwischen den Verarbeitungs elementen (1; PE; 51) überführt wird,
daß die Zustandskennung (86) so ausgewertet wird, daß in das Verarbeitungselement (1; PE; 51) die ersten und zweiten Eingangs-Vektordaten , eingegeben werden,
daß die den eingegebenen zweiten Eingangs-Vektordaten hinzugefügte Kennung (61, 62, 63) für das Ändern des Inhalts der Zustandskennung (86) in dem Verarbeitungs element (1; PE; 51) ausgewertet wird und
daß den Verarbeitungselementen (1; PE; 51) ein durch die Änderung erzeugter Zustand zugeführt wird, wodurch im ganzen Matrixprozessor eine selbständige Steuerung in der Weise erfolgt, daß das Verarbeitungselement (1; PE; 51) die Aufbereitungsbefehle entsprechend dem Zustand einleitet.
daß in die Verarbeitungselemente (1; PE; 51) Aufbe reitungsbefehle (89-1) aufgenommen werden,
daß den zweiten Eingangs-Vektordaten eine Kennung (61, 62, 63) hinzugefügt wird, die einen Aufbereitungs zustand anzeigt, der in jedem der Verarbeitungselemente (1; PE; 51) bei einer vorbestimmten Ablauffolge hervorgerufen ist,
daß eine Zustandskennung (86) gebildet wird, die jedem der Verarbeitungselemente (1; PE; 51) den individuellen Aufbe reitungszustand meldet,
daß die Zustandskennung (86) zwischen den Verarbeitungs elementen (1; PE; 51) überführt wird,
daß die Zustandskennung (86) so ausgewertet wird, daß in das Verarbeitungselement (1; PE; 51) die ersten und zweiten Eingangs-Vektordaten , eingegeben werden,
daß die den eingegebenen zweiten Eingangs-Vektordaten hinzugefügte Kennung (61, 62, 63) für das Ändern des Inhalts der Zustandskennung (86) in dem Verarbeitungs element (1; PE; 51) ausgewertet wird und
daß den Verarbeitungselementen (1; PE; 51) ein durch die Änderung erzeugter Zustand zugeführt wird, wodurch im ganzen Matrixprozessor eine selbständige Steuerung in der Weise erfolgt, daß das Verarbeitungselement (1; PE; 51) die Aufbereitungsbefehle entsprechend dem Zustand einleitet.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59034450A JPS60179871A (ja) | 1984-02-27 | 1984-02-27 | アレイプロセツサ |
JP59096656A JPS60241155A (ja) | 1984-05-16 | 1984-05-16 | アレイプロセツサの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3506749A1 DE3506749A1 (de) | 1985-09-26 |
DE3506749C2 true DE3506749C2 (de) | 1989-03-23 |
Family
ID=26373263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19853506749 Granted DE3506749A1 (de) | 1984-02-27 | 1985-02-26 | Matrixprozessor und steuerverfahren hierfuer |
Country Status (3)
Country | Link |
---|---|
US (1) | US4905143A (de) |
DE (1) | DE3506749A1 (de) |
NL (1) | NL192637C (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4212202A1 (de) * | 1991-04-12 | 1992-10-15 | Hewlett Packard Co | Logikgatter |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3786330T2 (de) * | 1986-11-27 | 1993-11-25 | Nippon Telegraph & Telephone | Paralleldatenverarbeitungsvorrichtung und -verfahren. |
JPH0254383A (ja) * | 1988-08-18 | 1990-02-23 | Mitsubishi Electric Corp | アレイプロセッサ |
DE68920388T2 (de) * | 1988-09-19 | 1995-05-11 | Fujitsu Ltd | Paralleles Rechnersystem mit Verwendung eines SIMD-Verfahrens. |
US5159690A (en) * | 1988-09-30 | 1992-10-27 | Massachusetts Institute Of Technology | Multidimensional cellular data array processing system which separately permutes stored data elements and applies transformation rules to permuted elements |
US5249301A (en) * | 1988-10-25 | 1993-09-28 | Bull S.A | Processing communication system having a plurality of memories and processors coupled through at least one feedback shift register provided from ring configured input stations |
US5689647A (en) * | 1989-03-14 | 1997-11-18 | Sanyo Electric Co., Ltd. | Parallel computing system with processing element number setting mode and shortest route determination with matrix size information |
US5210836A (en) * | 1989-10-13 | 1993-05-11 | Texas Instruments Incorporated | Instruction generator architecture for a video signal processor controller |
US5237685A (en) * | 1990-02-26 | 1993-08-17 | International Business Machines Corporation | Linear recurrence dispersal structure and method for parallel processors |
US5193202A (en) * | 1990-05-29 | 1993-03-09 | Wavetracer, Inc. | Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor |
US5208900A (en) * | 1990-10-22 | 1993-05-04 | Motorola, Inc. | Digital neural network computation ring |
US5590345A (en) * | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
US5617577A (en) * | 1990-11-13 | 1997-04-01 | International Business Machines Corporation | Advanced parallel array processor I/O connection |
US5734921A (en) * | 1990-11-13 | 1998-03-31 | International Business Machines Corporation | Advanced parallel array processor computer package |
US5794059A (en) * | 1990-11-13 | 1998-08-11 | International Business Machines Corporation | N-dimensional modified hypercube |
US5765015A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Slide network for an array processor |
US5809292A (en) * | 1990-11-13 | 1998-09-15 | International Business Machines Corporation | Floating point for simid array machine |
US5588152A (en) * | 1990-11-13 | 1996-12-24 | International Business Machines Corporation | Advanced parallel processor including advanced support hardware |
US5815723A (en) * | 1990-11-13 | 1998-09-29 | International Business Machines Corporation | Picket autonomy on a SIMD machine |
US5966528A (en) * | 1990-11-13 | 1999-10-12 | International Business Machines Corporation | SIMD/MIMD array processor with vector processing |
US5713037A (en) * | 1990-11-13 | 1998-01-27 | International Business Machines Corporation | Slide bus communication functions for SIMD/MIMD array processor |
US5625836A (en) * | 1990-11-13 | 1997-04-29 | International Business Machines Corporation | SIMD/MIMD processing memory element (PME) |
EP0485690B1 (de) * | 1990-11-13 | 1999-05-26 | International Business Machines Corporation | Paralleles Assoziativprozessor-System |
US5828894A (en) * | 1990-11-13 | 1998-10-27 | International Business Machines Corporation | Array processor having grouping of SIMD pickets |
US5963746A (en) * | 1990-11-13 | 1999-10-05 | International Business Machines Corporation | Fully distributed processing memory element |
US5765012A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library |
US5765011A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams |
US5963745A (en) * | 1990-11-13 | 1999-10-05 | International Business Machines Corporation | APAP I/O programmable router |
US5630162A (en) * | 1990-11-13 | 1997-05-13 | International Business Machines Corporation | Array processor dotted communication network based on H-DOTs |
US5389835A (en) * | 1991-04-12 | 1995-02-14 | Hewlett-Packard Company | Vector logic method and dynamic mousetrap logic gate for a self-timed monotonic logic progression |
US5594918A (en) * | 1991-05-13 | 1997-01-14 | International Business Machines Corporation | Parallel computer system providing multi-ported intelligent memory |
US6282583B1 (en) * | 1991-06-04 | 2001-08-28 | Silicon Graphics, Inc. | Method and apparatus for memory access in a matrix processor computer |
JP2642039B2 (ja) * | 1992-05-22 | 1997-08-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アレイ・プロセッサ |
JPH06290158A (ja) * | 1993-03-31 | 1994-10-18 | Fujitsu Ltd | 再構成可能なトーラス・ネットワーク方式 |
WO1995016974A1 (en) * | 1993-12-17 | 1995-06-22 | Quintet, Incorporated | Method of automated signature verification |
CA2135857A1 (en) * | 1994-01-03 | 1995-07-04 | Shay-Ping Thomas Wang | Neural network utilizing logarithmic function and method of using same |
US5664192A (en) * | 1994-12-14 | 1997-09-02 | Motorola, Inc. | Method and system for accumulating values in a computing device |
US5611068A (en) * | 1994-12-27 | 1997-03-11 | Motorola, Inc. | Apparatus and method for controlling pipelined data transfer scheme between stages employing shift register and associated addressing mechanism |
US5685008A (en) * | 1995-03-13 | 1997-11-04 | Motorola, Inc. | Computer Processor utilizing logarithmic conversion and method of use thereof |
US5644520A (en) * | 1995-05-31 | 1997-07-01 | Pan; Shao Wei | Accumulator circuit and method of use thereof |
US5771391A (en) * | 1995-08-28 | 1998-06-23 | Motorola Inc. | Computer processor having a pipelined architecture and method of using same |
US5956409A (en) * | 1996-04-29 | 1999-09-21 | Quintet, Inc. | Secure application of seals |
US5917447A (en) * | 1996-05-29 | 1999-06-29 | Motorola, Inc. | Method and system for digital beam forming |
JP2879670B2 (ja) * | 1997-03-28 | 1999-04-05 | 広島大学長 | 2次元情報処理装置 |
JPH1165989A (ja) * | 1997-08-22 | 1999-03-09 | Sony Computer Entertainment:Kk | 情報処理装置 |
US6502180B1 (en) * | 1997-09-12 | 2002-12-31 | California Institute Of Technology | Asynchronous circuits with pipelined completion process |
US6112288A (en) * | 1998-05-19 | 2000-08-29 | Paracel, Inc. | Dynamic configurable system of parallel modules comprising chain of chips comprising parallel pipeline chain of processors with master controller feeding command and data |
US6167501A (en) * | 1998-06-05 | 2000-12-26 | Billions Of Operations Per Second, Inc. | Methods and apparatus for manarray PE-PE switch control |
US7343249B2 (en) | 2005-03-23 | 2008-03-11 | International Business Machines Corporational | Vectorization of sequence alignment computation using distance matrix reshaping |
JP5971635B2 (ja) * | 2011-01-25 | 2016-08-17 | エヌエックスピー カナダ インコーポレイテッド | ベクトルユニット共有の装置および方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3287703A (en) * | 1962-12-04 | 1966-11-22 | Westinghouse Electric Corp | Computer |
US3286309A (en) * | 1963-06-06 | 1966-11-22 | Aluminum Co Of America | Method and apparatus for horizontal casting of ingots |
US3544973A (en) * | 1968-03-13 | 1970-12-01 | Westinghouse Electric Corp | Variable structure computer |
US3582899A (en) * | 1968-03-21 | 1971-06-01 | Burroughs Corp | Method and apparatus for routing data among processing elements of an array computer |
US3970993A (en) * | 1974-01-02 | 1976-07-20 | Hughes Aircraft Company | Cooperative-word linear array parallel processor |
US4065808A (en) * | 1975-01-25 | 1977-12-27 | U.S. Philips Corporation | Network computer system |
US4270169A (en) * | 1978-05-03 | 1981-05-26 | International Computers Limited | Array processor |
US4270170A (en) * | 1978-05-03 | 1981-05-26 | International Computers Limited | Array processor |
US4541048A (en) * | 1978-10-06 | 1985-09-10 | Hughes Aircraft Company | Modular programmable signal processor |
IT1118355B (it) * | 1979-02-15 | 1986-02-24 | Cselt Centro Studi Lab Telecom | Sistema di interconnessione tra processori |
US4380046A (en) * | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
FR2469751A1 (fr) * | 1979-11-07 | 1981-05-22 | Philips Data Syst | Processeur d'intercommunication du systeme utilise dans un systeme de traitement de donnees reparti |
US4314349A (en) * | 1979-12-31 | 1982-02-02 | Goodyear Aerospace Corporation | Processing element for parallel array processors |
ZA811458B (en) * | 1980-03-28 | 1982-03-31 | Int Computers Ltd | Data processing system |
NL8002787A (nl) * | 1980-05-14 | 1981-12-16 | Philips Nv | Multiprocessor-rekenmachinesysteem voor het uitvoeren van een recursief algorithme. |
US4428048A (en) * | 1981-01-28 | 1984-01-24 | Grumman Aerospace Corporation | Multiprocessor with staggered processing |
US4384273A (en) * | 1981-03-20 | 1983-05-17 | Bell Telephone Laboratories, Incorporated | Time warp signal recognition processor for matching signal patterns |
US4533993A (en) * | 1981-08-18 | 1985-08-06 | National Research Development Corp. | Multiple processing cell digital data processor |
JPS58134357A (ja) * | 1982-02-03 | 1983-08-10 | Hitachi Ltd | ベクトルプロセッサ |
US4509187A (en) * | 1982-06-14 | 1985-04-02 | At&T Bell Laboratories | Time warp signal recognition processor using recirculating and/or reduced array of processor cells |
US4739474A (en) * | 1983-03-10 | 1988-04-19 | Martin Marietta Corporation | Geometric-arithmetic parallel processor |
GB8401805D0 (en) * | 1984-01-24 | 1984-02-29 | Int Computers Ltd | Data processing apparatus |
US4739476A (en) * | 1985-08-01 | 1988-04-19 | General Electric Company | Local interconnection scheme for parallel processing architectures |
US4783738A (en) * | 1986-03-13 | 1988-11-08 | International Business Machines Corporation | Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element |
-
1985
- 1985-02-26 NL NL8500537A patent/NL192637C/nl not_active IP Right Cessation
- 1985-02-26 DE DE19853506749 patent/DE3506749A1/de active Granted
-
1988
- 1988-06-14 US US07/220,970 patent/US4905143A/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4212202A1 (de) * | 1991-04-12 | 1992-10-15 | Hewlett Packard Co | Logikgatter |
Also Published As
Publication number | Publication date |
---|---|
DE3506749A1 (de) | 1985-09-26 |
US4905143A (en) | 1990-02-27 |
NL192637B (nl) | 1997-07-01 |
NL8500537A (nl) | 1985-09-16 |
NL192637C (nl) | 1997-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3506749C2 (de) | ||
EP0048767B1 (de) | Prioritätsstufengesteuerte Unterbrechungseinrichtung | |
DE3248215C2 (de) | ||
DE2451982C2 (de) | ||
DE3741953A1 (de) | Multiprozessorsystem und verfahren zur arbeitslastverteilung bei einem solchen | |
DE2912287C3 (de) | Datenverarbeitungsanlage | |
EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
DE2934971A1 (de) | Datenverarbeitungssystem | |
DE2354521A1 (de) | Verfahren und einrichtung zum gleichzeitigen zugriff zu verschiedenen speichermoduln | |
EP0123921A2 (de) | Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf | |
DE3700991A1 (de) | Digitaler uebertragsvorgriffsaddierer | |
DE3400723C2 (de) | ||
DE2452214A1 (de) | Mikroprozessor mit unmittelbarer und indirekter adressierung | |
DE19524862A1 (de) | SIMD-Prozessor, welcher mit einer Mehrzahl von Parallelverarbeitungselementen in Synchronisation in Betrieb ist | |
DE19524402C2 (de) | Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-Zufallszahlenfolge | |
DE1269394B (de) | Schaltungsanordnung zur Bestimmung des Vorrangsverhaeltnisses zwischen mehreren Eingangsgroessen fuer programmgesteuerte Datenverarbeitungssysteme | |
EP0010185A1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE112010003810T5 (de) | Verfahren, Programm und paralleles Computersystem für die Planung elner Vielzahl von Berechnungsverfahren einschließlich All-to-All Kommunikation (A2A) zwischen einer Vielzahl von Knoten (Prozessoren), die ein Netzwerk formen | |
DE2548720C2 (de) | Mikroprogramm-Steuerwerk | |
DE2401364A1 (de) | Datenverarbeitungssystem | |
WO2007014404A1 (de) | Digitale rechnereinrichtung mit parallelverarbeitung | |
DE19528760A1 (de) | Bildverarbeitende Schaltung eines hohen Integrationsgrads | |
DE102011011682B4 (de) | Programmierbare Steuerung zum parallelen Ausführen einer Vielzahl von unabhängigen Ablaufprogrammen | |
DE3447530A1 (de) | Vektorprozessor | |
DE4446988B4 (de) | Schneller Testmustergenerator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: NIPPON TELEGRAPH AND TELEPHONE CORP., TOKIO/TOKYO, |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition |