DE3786330T2 - Paralleldatenverarbeitungsvorrichtung und -verfahren. - Google Patents
Paralleldatenverarbeitungsvorrichtung und -verfahren.Info
- Publication number
- DE3786330T2 DE3786330T2 DE87117412T DE3786330T DE3786330T2 DE 3786330 T2 DE3786330 T2 DE 3786330T2 DE 87117412 T DE87117412 T DE 87117412T DE 3786330 T DE3786330 T DE 3786330T DE 3786330 T2 DE3786330 T2 DE 3786330T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- calculation
- mode
- data storage
- storage area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims description 189
- 238000000034 method Methods 0.000 title claims description 9
- 238000004364 calculation method Methods 0.000 claims description 194
- 238000013500 data storage Methods 0.000 claims description 164
- 230000005540 biological transmission Effects 0.000 claims description 66
- 238000012546 transfer Methods 0.000 claims description 46
- 230000006870 function Effects 0.000 claims description 21
- 230000015654 memory Effects 0.000 claims description 7
- 230000006399 behavior Effects 0.000 claims 4
- 239000011159 matrix material Substances 0.000 description 20
- 230000007704 transition Effects 0.000 description 16
- 125000004122 cyclic group Chemical group 0.000 description 14
- 238000010586 diagram Methods 0.000 description 8
- 230000001186 cumulative effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 239000013074 reference sample Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
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
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 ein Verfahren um eine Datentransferverarbeitung zwischen Datenverarbeitungsvorrichtungen parallel mit einer Datenberechnung in jeder Datenverarbeitungsvorrichtung in Datenverarbeitungsvorgängen eines Systems durchzuführen, das eine Datenübertragung zwischen Datenverarbeitungsvorrichtungen einschließt.
- Bei einer Datenverarbeitung mit Hilfe eines Array-Prozessors als einer herkömmlichen Datenverarbeitung eines Systems, das eine Datenübermittlung zwischen Datenverarbeitungsvorrichtungen einschließt, wird ein gemeinsamer Datenspeicherbereich (Speicher) für eine Datentransfer-(Übertragung/Empfang) Verarbeitung zwischen den Verarbeitungselementen sowie eine Datenberechnung verwendet. Daher muß eine Datenberechnung nach Beendigung eines Datenaustausches zwischen den Verarbeitungselementen durchgeführt werden.
- Aus diesem Grund müssen ein Datentransfer und eine Datenberechnung wiederholt durchgeführt werden. Insbesondere in einer Matrixmultiplikationsverarbeitung, die einen Vektordatentransfer einschließt, wird, da eine zu übertragende Datenmenge groß ist, eine Verarbeitungszeit des Array-Prozessors infolge des zusätzlichen Datentransfers zwischen der Verarbeitungselementen verlängert.
- Als Beispiel wird ein Fall beschrieben, bei welchem Multiplikationen von Matrizen A, B in einem in Fig. 1 dargestellten Array-Prozessor durchgeführt werden. Verarbeitungselemente haben gemeinsame Datenspeicherbereiche für den Empfang und die Übertragung von Komponentendaten der Matrix A und für deren Datenberechnung und Datenspeicherbereiche für einen Empfang von Komponentendaten der Matrix B, für eine Komponentendatenzufuhr der Matrix B an die Berechnungseinheit und zum Empfang deren Berechnungsergebnisse.
- Wenn die (l, m)-Matrix A und die (m, n)-Matrix B folgendermaßen definiert sind:
- wird ein j-ter-Spaltenvektor cj in einer Matrix C = A · B dargestellt durch:
- wobei ai und bj ein Zeilenvektor bzw. ein Spaltenvektor sind und jeweils dargestellt sind durch:
- ait stellt einen transponierten Vektor von ai und ein Symbol "." stellt eine innere Produktberechnung dar und ist beispielsweise:
- Daher werden eine Reihe von Vektordaten { ai}, welche die Matrix A darstellen, und eine Reihe von Vektordaten { bj} welche die Matrix B darstellen&sub1;in den Array-Prozessor entsprechend einem Datenfluß eingegeben, wie in Fig. 1 dargestellt ist, so daß die Komponenten der Matrix C durch eine Pipeline-Verarbeitung in jedem Verarbeitungselement berechnet werden.
- Fig. 2A, 2B und 2C zeigen Momentaufnahmen einer Array-Verarbeitung, wenn l = 5 und n = 5 sind. Da in diesem Fall die Datenspeicherbereiche gemeinsam für einen Datenaustausch und eine Datenberechnung benutzt werden, wird ein Vektordatentransfer zwischen den Verarbeitungselementen und eine innere Produktberechnung zwischen Vektordaten seriell durchgeführt. Beispielsweise empfängt zur Zeit 3 ein Verarbeitungselement PE1 Daten a&sub2; und überträgt zur selben Zeit zurückgehaltene Daten a&sub1; an ein Verarbeitungselement PE2. Das Verarbeitungselement PE2 empfängt die Daten a&sub1; von dem Verarbeitungselement PE1 zu dieser Zeit und empfängt extern Vektordaten b&sub2;.
- Zur Zeit 4 führen die Verarbeitungselemente eine innere Produktberechnung der zur Zeit 3 erhaltenden Daten durch. In der vorstehend beschriebenen Verarbeitung wird die Zeit, die zur Datenübertragung zwischen den Verarbeitungselementen erforderlich ist verlängert, und es kann keine hochschnelle Verarbeitung erreicht werden.
- Die deutsche Patentanmeldung DE-A 35 06 749 beschreibt ein Verarbeitungselement, das drei Speicherbereiche aufweist, und eine eine Berechnung durchführende Einheit. Zwei Speicherbereiche erhalten Daten von einem äußeren Verarbeitungselement und werden durch die eine Berechnung durchführende Einheit aus gelesen. Das Ergebnis dieser Berechnung wird in den dritten Speicherbereich geschrieben, welcher sie nach außen überträgt.
- Es ist eine Aufgabe der Erfindung, eine Datenverarbeitungsvorrichtung zu schaffen, welche einen Datentransfer zwischen Datenverarbeitungsvorrichtungen parallel mit einer Datenberechnung in jeder Datenverarbeitungsvorrichtung durchführt, um zusätzliche Zeit zu verkürzen, die für einen Datentransfer zwischen den Datenverarbeitungsvorrichtungen erforderlich ist, um dadurch eine hocheffiziente parallele Verarbeitung eines Systems bei einer Datenverarbeitung des Systems zu erreichen, das eine Datenübermittlung zwischen den Datenverarbeitungsvorrichtungen einschließt.
- In einer Datenverarbeitungsvorrichtung der Erfindung, welche l) einen Empfangsdatenspeicherbereich hat, um Daten über ein Datenempfangsterminal von der externen Einrichtung zu erhalten,
- 2) einen Übertragungsdaten-Speicherbereich,um Daten über ein Datenübertragungsterminal an die externe Einrichtung zu übertragen, und
- 3) einen Berechnungsdaten-Speicherbereich hat, um Daten an eine Berechnungseinheit zu liefern und um von dieser Rechenergebnisse zu erhalten, können die Datenspeicherspeicherbereiche exklusiv und zyklisch in einen Datenempfangsmode, einen Datenübertragungsmode, und einen Datenberechnungsmode geschaltet werden, und die Datenverarbeitungseinrichtung weist hierzu
- eine Einrichtung zum Steuern des Schaltens des Datenempfangsmodes, des Datenübertragungsmodes und des Datenberechnungsmodes der Datenspeicherbereiche, eine Einrichtung zum Durchführen einer geforderten Berechnung und
- eine Einrichtung zum Steuern von Rechenoperationen auf, wobei in einer Datenverarbeitung eines Systems, das eine Datenübermittlung zwischen Datenverarbeitungsgeräten einschließt, eine zusätzliche Datenübermittlungszeit verkürzt wird, und die Verarbeitungsgeschwindigkeit höher wird.
- Gemäß der Erfindung kann bei einer Datenverarbeitung eines Systems, das eine Datenübermittlung zwischen Datenverarbeitungsvorrichtungen einschließt, die Datenverarbeitung, bei welcher ein Datentransfer zwischen Datenverarbeitungsvorrichtungen parallel mit einer Datenberechnung in jeder Datenverarbeitungseinrichtung durchgeführt werden kann, zugelassen werden, und eine Verarbeitungszeit kann verkürzt werden.
- Fig. 1 und Fig. 2A, 2B bzw. 2C zeigen eine Anordnung eines herkömmlichen Array-Prozessors und dessen Verarbeitung;
- Fig. 3 und Fig. 4A bzw. 4B zeigen eine Anordnung eines Array- Prozessors gemäß einer Ausführungsform der Erfindung und dessen Verarbeitungsweise bei einer Multikplikationsverarbeitung von Matrizen;
- Fig. 5 und 6 sind ein Blockdiagramm, das schematisch die Ausführungsform der Erfindung zeigt, bzw. eine Darstellung, welche einen Übergang von drei Moden eines Steuerverfahrens zeigt;
- Fig. 7 ist ein Blockdiagramm einer Steuereinheit gemäß der Ausführungsform der Erfindung;
- Fig. 8 ist eine Logikschaltung einer in Fig. 7 dargestellten Mode-Steuerschaltung gemäß der Ausführungsform der Erfindung
- Fig. 9 ist eine Logikschaltung eines in Fig. 7 dargestellten Decoders gemäß der Ausführungsform der Erfindung;
- Fig. 10 zeigt ein Zeitdiagramm einer zyklischen Dreizustands- Mode-Übergangssteuerung der Mode-Steuerschaltung;
- Fig. 11 zeigt ein Zeitdiagramm einer zyklischen Sechszustands- Mode-Übergangssteuerung der Mode-Steuerschaltung;
- Fig. 12 und Fig. 13A und 13B zeigen eine Anordnung eines Array-Prozessors und "Momentaufnahmen" dessen Array- Verarbeitung zum Erläutern einer Ausführungsform der Erfindung in einer Faltungsberechnung;
- Fig. 14A, 14B und 14C Verarbeitungsflüsse einer Vektor-Distanzberechnung von dynamischem Time-Warping in einer Spracherkennung;
- Fig. 15 zeigt eine zyklische Sechszustands-Mode-Übergangssteuerung eines Steuerverfahrens in der in Fig. 5 dargestellten Anordnung der Erfindung;
- Fig. 16A zeigt ein Flußdiagramm einer kumulativen Distanzberechnung von dynamischen Time-Warping in einer Spracherkennung von Verarbeitungselementen (PEs);
- Fig. 16B zeigt einen parallelen Verarbeitungsfluß einer kumulativen Distanzberechnung eines linearen Array-Prozessors und
- Fig. 17A, bis 17E zeigen parallele Verarbeitungsflüsse einer Summenberechnung, welche mittels der Anordnung der Erfindung durchgeführt wird.
- Die Erfindung wird nunmehr im einzelnen anhand der Zeichnungen beschrieben, welche Ausführungsformen der Erfindung erläutern.
- Es wird ein Fall beschrieben, bei welchem Multiplikationen einer (l, m)-Matrix A und einer (m, n)-Matrix B mit Hilfe eines linearen Array-Prozessors verarbeitet werden. Die Matrizen A bzw. B sind definiert als:
- wobei ai und b&sub1; einen Zeilenvektor bzw. einen Spaltenvektor darstellt, und jeweils dargestellt sind durch:
- ai = (ai1, ai2; . . ., aii, . . . , aim.)
- hierbei stellt a&sub1;t einen transponierten Vektor von ai dar.
- Wenn eine (i,j) Komponente einer Matrix C = A · B durch cij dargestellt wird, gilt:
- ( ist inneres Produkt).
- Wenn ein j-ter-Spaltensektor in der Matrix C definiert ist durch:
- dann ergibt sich:
- Fig. 4A und 4B zeigen "Momentaufnahmen" einer Array-Verarbeitung, wenn ein linearer Array-Prozessor, welcher aus n in Fig. 3 dargestellten Verarbeitungselementen besteht, die Matrix C in dem Fall von l = n = 5 berechnet. Ein Dateneingang an dem Array-Prozessor enthält eine Vektorreihe ( a&sub1;, a&sub2;, . . . , al) und eine Vektordatenreihe ( b&sub1;, b&sub2; . . . , bn).
- Fig. 5 ist ein Blockdiagramm, das schematisch eine Ausführungsform zeigt, in welcher die Erfindung bei der Anordnung der Verarbeitungselemente angewendet wird. Ferner sind Datenspeicherbereiche 1 bis 3, eine Berechnungseinheit 4, eine Steuereinheit 5, ein Datenempfangsterminal 6, ein Datenübertragungsterminal 7 und Register 8 und 9 dargestellt.
- Jedes Verarbeitungselement hat Datenspeicherbereiche, die für einen Datenempfang, eine Datenübertragung bzw. eine Datenberechnung verwendet werden. Die Kapazität jedes Speicherbereichs entspricht einer Größe der jeweiligen Vektordaten, d. h. Daten.
- Jedes Verarbeitungselement hat einen Datenspeicherbereich zum Speichern der jeweiligen Vektordaten der Vektordatenreihe ( b&sub1;, b&sub2;, . . . bn) und von Zwischenrechenergebnissen, und hat auch eine Einrichtung zum Durchführen einer Berechnung eines inneren Produktes und eine Einrichtung zum Steuern eines Datenaustausch- und Datenempfangs, einer Datenübertragung und der Datenberechnungsmodes der Datenspeicherbereiche.
- Bei der in Fig. 4A und 4B dargestellten Arbeitsweise führen die Verarbeitungselmemente parallele Berechnungen der Elemente der Matrix C in einem regulären Datenfluß durch, bei welchem die zwei Arten von Vektordatenreihen in den Verarbeitungselementen synchron im Pipeline-System übertragen werden.
- Jeder Datenspeicherbereich jedes Verarbeitungselements wird dem zyklischen Modeübergang, wie in Fig. 6 dargestellt, in einem vorherbestimmten Zyklus unterzogen. Hierbei entspricht eine Zeiteinheit einer Zeit, die erforderlich ist, um Komponenten der Matrix C oder einen Vektordatentransfer zu berechnen. Datenempfang Datenberechnung Datenübertragung
- Die Verarbeitung der drei Datenspeicherbereiche des Verarbeitungselements PE1 zu Zeiten 3, 4 und 5 wird nunmehr im einzelnen beschrieben. Der Datenspeicherbereich in einem Datenempfangsmode empfängt Vektordaten a&sub3; zur Zeit 3 und wird zur Zeit 4 auf einen Datenübertragungsmode geschaltet. Der Datenspeicherbereich überträgt die Daten a&sub3; an das Verarbeitungselement PE2. Zur Zeit 5 wird der Datenspeicherbereich auf einen Datenberechnungsmode geschaltet und wird verwendet für eine Berechnung eines inneren Produkts zwischen den Daten a&sub3; und den Vektordaten b&sub1;, die zur Zeit 1 eingegeben worden sind, und sie werden darin gehalten.
- Andererseits dienen zur Zeit 3 andere zwei Datenspeicherbereiche als ein Datenspeicherbereich für eine innere Produktberechnung zwischen Vektordaten a&sub1; und b&sub1; (in dem Datenberechnungsmode) und als ein Datenspeicherbereich für eine Datenübertragung, um Vektordaten a&sub2;, die zur Zeit 2 übertragen worden sind, an das Verarbeitungselement PE2 ( in dem Datenübertragungsmode) zu übertragen.
- Zur Zeit 4 dient der zuerst erwähnte Datenspeicherbereich als Datenspeicherbereich zum Empfangen von Vektordaten a&sub4; (in dem Datenempfangsmode), und der später erwähnte Datenspeicherbereich dient als ein Datenspeicherbereich für eine innere Produktberechnung zwischen den Vektordaten a&sub2; und b&sub1; (in dem Datenberechnungsmode).
- Zur Zeit 5 dient der zuerst erwähnte Datenspeicherbereich dazu, Vektordaten a&sub4; an das Element PE2 zu übertragen (Datenübertragungsmode) und der danach erwähnte Datenspeicherbereich dient dazu, Vektordaten a&sub5; zu empfangen (Datenempfangsmode).
- Da in der vorher erwähnten Datenverarbeitung der Matrix- Multiplikationen die Datenspeicherbereiche exklusiv und zyklisch in drei Modes, d. h. in den Datenempfangs-, den Datenübertragungs- und den Datenberechnungsmode gemäß der Erfindung geschaltet werden können, können eine innere Produktberechnung und ein Datentransfer zwischen Verarbeitungselementen parallel in den Verarbeitungselementen durchgeführt werden. Die zusätzliche Zeit, welche für eine Datenübertragung zwischen den Verarbeitungselementen in dem Array- Prozessor erforderlich ist, kann verkürzt werden, wodurch effiziente Verarbeitung erreicht ist.
- Der Effekt dieser Ausführungsform wird quantitativ bewertet. Eine Zeit, welche für eine innere Produktberechnung erforderlich ist, wird mit tp angegeben; eine Zeit, welche für ein Übertragen von Vektordaten ai oder bj erforderlich ist, ist mit ttr angegeben, und eine Zeit, die für eine Anfangsladung erforderlich ist, welche notwendig ist, bis eine Berechnung in dem gesamten Array-Prozessor gestartet wird, ist mit t&sub0; angegeben; eine Zeit T, die zum Multiplizieren der (l,m)-Matrix A und der (m,n)-Matrix B erforderlich ist, ist dargestellt durch:
- T t&sub0; + (l + n + 1) · max[tp, ttr] (1)
- wobei max [x,y] einen Maximalwert von und darstellt. Wenn tp ≥ ttr ist, wird Gl.(1) umgeschrieben als T t&sub0; + ( l + n + 1)tp; eine Datentransferzeit ist dann im Vergleich zu der Rechenzeit sehr kurz, und die Gesamtzeit hängt nur von der Rechenzeit ab.
- Wenn tp < ttr ist, wird Gl. (1) umgeschrieben als T t&sub0; + (l + n + 1)ttr; die Datenrechnungszeit ist dann im Vergleich zur Datenübertragungszeit sehr kurz, und die Gesamtzeit hängt nur von der Datenübertragungszeit ab.
- In einer Einrichtung, um seriell eine Berechnung und einen Datentransfer durchzuführen, d. h. beim Stand der Technik, bei welchem ein Datenspeicherbereich gemeinsam für einen Datentransfer und eine Datenberechnung verwendet wird und Datentransfer- und Datenberechnungsmodes im Zeit-Multiplexbetrieb durchgeführt werden, wird die Gesamtzeit T' dargestellt durch:
- T' t&sub0;' + (l + n + 1) · (tp + ttr) (2)
- Aus Gl.'en (1) und (2) ergibt sich:
- Nunmehr können t&sub0;' und t&sub0; in den ersten Termen des Zählers und Nenners in Gl.(3) im Vergleich zu den zweiten Termen ignoriert werden:
- Daher kann aus Gl.(4) mit T ≤ T' eine Verarbeitung von der Anordnung der Erfindung mit einer höheren Geschwindigkeit als mit der herkömmlichen Anordnung durchgeführt werden. Wenn tp tr ist, kann die Verarbeitungsgeschwindigkeit gegenüber der herkömmlichen Anordnung auf das Zweifache erhöht werden.
- Nachstehend wird die Steuereinheit im einzelnen beschrieben. Fig. 7 ist ein Blockdiagramm der Steuereinheit, welche in allen Ausführungsformen der Erfindung verwendet wird. Adressenzähler 1, 2 bzw. 3 spezifizieren die Stelle von Datenspeicherbereichen und und Basisadressenregister 1, 2 und 3 halten Daten zurück, welche mit Adressenwerten in diesen Adressenzahlern zu vergleichen sind. Der Adressenwert in dem Adressenregister wird mit den Daten in dem entsprechenden Basisadressenregister über einen entsprechenden Koinzidenzdetektor verglichen. Jeder Koinzidenzdetektor erzeugt ein Flag, das eine Koinzidenz zwischen den Adressenwerten anzeigt. Das Flag, das von jedem Koinzidenzdetektor abgegeben wird, kann als ein Flag definiert werden, welches darstellt, ob eine Datenaustauschoperation in den Datenspeicherbereichen für eine Datenübertragung, ein Datenempfang und eine Datenberechnung beendet ist oder nicht.
- Jeder Multiplexer schaltet Flags, welche die Datenübertragung- und -Empfangszustände anzeigen und gibt das ausgewählte Flag als ein Übertragungszustandsflag (SF) oder ein Empfangszustandsflag (RF) an eine Modesteuerschaltung ab. Das Flag zeigt an, daß der Datenspeicherbereich in dem Datenübertragungs- oder -empfangszustand eine Datenübertragung oder einen -empfang beendet. Insbesondere wird eine Anfangsadresse in einem Datenspeicherbereich einer zu übertragenden oder zu empfangenden Datengruppe in jedem Adressenzähler gesetzt, und dessen Endadresse wird in dem entsprechenden Basis-Adressenregister gesetzt. Der Zähler inkrementiert die Adresse, wobei jeweils Zyklusdaten übertragen oder empfangen werden. Wenn der inkrementierte Wert mit dem Wert des Basisadressenregisters übereinstimmt, stoppt der Zähler die Inkrementieroperation. Das Koinzidenzflag wird festgestellt, und die Übertragung oder der Empfang ist beendet.
- Die Mode-Steuerschaltung steuert die Modes der entsprechenden Datenspeicherbereiche. Ein Steuersignal MC (Mode-Änderungssignal) wird dazu verwendet, um eine zyklische Mode- Übergangssteuerung der Datenspeicherbereiche zu starten und ST3 und ST6 sind Steuersignale, um eine zyklische Dreizustands-Mode-Übertragungssteuerung bzw. eine zyklische Sechszustands-Mode-Übertragungssteuerung zu bestimmen (was später noch beschrieben wird). Steuersignale Pn, Rn bzw. Sn ( n = 1, 2, 3) zeigen den Datenberechnungs-, den Datenempfangs- und den Datenübertragungsmode des Datenspeicherbereichs an (wenn n = 1, ; wenn n = 2, ; und wenn n = 3, ist). Ein Steuersignal MDF wird für eine zyklische Sechszustands-Modeübergangssteuerung verwendet.
- Eine Decoderschaltung erzeugt Datenlese- und Schreib-Freigabesignale RENn und WENn (n = 1, 2, 3) entsprechend den Steuersignalen, welche den Mode der einzelnen Datenspeicherbereiche von der Mode-Steuerschaltung anzeigen, Steuersignale WR und RD, welche Schreib- und Leseoperationen der Datenspeicherbereiche während einer Datenberechnung anzeigen, und Steuersignale ASWR und ASRD, welche Schreib- und Leseoperationen während Datenübertragung/Empfang anzeigen.
- Fig. 8 ist ein logisches Schaltungsdiagramm der Mode-Steuerschaltung. BMn ( n = 1, 2, 3) stellt den Mode jedes Datenspeicherbereichs dar und stellt ferner dar, daß Pn Sn und Rn (n = 1, 2, 3) logisch "hoch" ist. Register 11 bis 16 bilden eine Registergruppe zum Steuern von Modewerten der Datenspeicherbereiche , und . Der Mode des Datenspeicherbereichs ist durch die Registerwerte der Register 11 und 14 definiert; der Mode von ist durch die Registerwerte des Registers 12 und 15 definiert, und der Mode von ist durch die Registerwerte der Register 13 und 16 (für einen Datenberechnungsmode "11", für einen Datenempfangsmode "10" und für einen Datenübertragungsmode "01") definiert. In dieser Registgergruppe zeigt ein Register zum Halten eines Anfangswerts "1" und zeigt ein Register zum Halten von "0" beim Rücksetzen an. Die Register 11 bis 13 und die Register 14 bis 16 dienen als Schieberegister.
- Fig. 9 ist ein logisches Schaltdiagramm der Decoderschaltung und Fig. 10 und 11 sind Zeitdiagramme von Operationen der Mode-Steuerschaltung in einer zyklischen Dreizustands-Übergangssteuerung, bzw. in eine zyklischen Sechszustands- Mode-Übergangssteuerung.
- In Fig. 10 führen die Schieberegister, welche die Modewerte der Datenspeicherbereiche anzeigen, eine Verschiebung bei jedem Zyklus durch, wobei das Steuersignal MC für einen Maschinenzyklus eingegeben wird, und die Signal BMn (n = 1, 2, 3), welche die Moden der Datenspeicherbereiche anzeigen, werden exklusiv geändert, so daß folglich eine zyklische Dreizustands-Modeübergangssteuerung realisiert ist.
- In Fig. 11 führen die Schieberegister, welche die Modewerte der Datenspeicherbereiche anzeigen, eine Verschiebung bei jedem Zyklus einmal durch, wobei das Steuersignal MC für zwei Maschinenzyklen eingegeben wird, und das Steuersignal MDF wird bei jedem Zyklus gesetzt oder rückgesetzt, wenn das Steuersignal eines Maschinenzyklus eingegeben wird. Wenn das Steuersignal MDF logisch "niedrig" ist, werden die Moden der Datenspeicherbereiche durch die Werte der Signale BMn (n = 1, 2, 3) festgelegt. Wenn das Signal MDF logisch "hoch" ist, wird der Mode des Datenspeicherbereichs von BMn = Pn als ein Datenfestwertmode für eine Datenberechnung definiert, und der Mode des Datenspeicherbereichs von BMn = Sn wird als ein Datenschreibmode für eine Datenberechnung festgelegt, so daß das Signal MC für jeden Maschinenzyklus einen Zustand, bei welchem die zwei Datenspeicherbereiche den Lese- und Schreibmode für eine Datenberechnung zugeordnet werden, und einen Zustand schaltet, bei welchem die Datenspeicherbereiche dem Datenberechnungs-, -empfangs- und -übertragungsmode zugeordnet werden, um dadurch eine zyklische Sechszustands-Mode-Übergangssteuerung zu realisieren.
- Es wird ein Fall beschrieben, in welchem eine Faltungsberechnung mit einem linearen Array-Prozessor durchgeführt wird. Wenn eine Reihe von Bewertungskoeffizientendaten als W = {w&sub1;, w&sub2;, . . . , wk} gegeben ist, und eine Reihe von Eingangsdaten ist als X = {x&sub1;, x&sub2;, . . . xn} gegeben, wird eine Faltungsberechnung dargestellt als:
- yi = W&sub1;xi + w&sub2;xi+i + . . . wkxi+k-1
- Fig. 5 zeigt eine Anordnung der Erfindung für diese Ausführungsform. Jedes Verarbeitungselement hat eine in Fig. 5 dargestellte Anordnung; in diesem Fall sind Datenspeicherbereiche, welche für Datenempfangs-, Datenübertragungs- und Datenberechnungsmodes verwendet worden sind, Register.
- Eine Faltungsberechnung in einem linearen Array-Prozessor, welcher aus in Fig. 12 dargestellten Verarbeitungselementen besteht, ist in Fig. 13A und 13B für den Fall von k = 4 und n = 7 beschrieben. Jedes Verarbeitungselement hat die Datenspeicherbereiche, welche für die vorstehenden drei Modes verwendet worden sind (in dieser Ausführungsform, da die jeweiligen Daten skalare Daten sind, kann jeder Datenspeicherbereich ein Register sein) und hat auch eine Steuereinrichtung, um Multiplikations- und Additionsfunktionen, die Verarbeitungsmodes der Datenspeicherbereiche und einen Datenaustausch zu steuern. Jedes Verarbeitungselement hat einen Datenspeicherbereich für Eingangsdaten X. Dieser Speicherbereich soll gleichzeitig für eine Dateneingabe von dem Eingangsdatenbus und für eine Datenberechnung verwendet werden.
- Außerdem soll jedes Verarbeitungselement eine Einrichtung zum Speichern und Halten von Zwischenrechenergebnissen haben. Die Datenspeicherregister können exklusiv und zyklisch auf einen Datenempfangs-, einen Datenübertragungs- und einen Datenberechnungsmode geschaltet werden.
- Die Operationen der Datenspeicherregister eines Verarbeitungselements PE1 zu Zeiten 4, 5 und 6 werden im einzelnen beschrieben. Das Datenspeicherregister, welches Daten w&sub4; in dem Datenempfangsmode zur Zeit 4 empfängt, wird auf den Datenübertragungsmode zur Zeit 5 geschaltet und gibt Daten w&sub4; an ein Verarbeitungselement PE2 ab. Zur Zeit 6 wird das Speicherregister auf den Datenberechnungsmode geschaltet und wird für eine Multiplikation mit x&sub4; verwendet, was zur Zeit 5 eingegeben worden ist und in ihm gehalten worden ist.
- Zur Zeit 4 dienen andere zwei Datenspeicherregister als ein Register für eine Multiplikation w&sub2;x&sub2; mit y&sub1; (in dem Datenberechnungsmode) und ein Register, um die zur Zeit 3 eingegebenen Daten w&sub3; an das Verarbeitungselement PE2 (in dem Datenübertragungsmode) zu übertragen.
- Zur Zeit 5 dient das zuerst erwähnte Register als ein Register, um Daten w&sub5; in dem Datenempfangsmode zu empfangen, und das später erwähnte Register dient als ein Register, um w&sub3;x&sub3; mit y&sub1; in dem Datenberechnungsmode zu multiplizieren.
- Zur Zeit 6 dient das zuerst erwähnte Register dazu, Daten an das Verarbeitungselement PE2 in dem Datenübertragungsmode zu übertragen, und das danach erwähnte Register dient dazu, null Daten in dem Datenempfangsmode zu empfangen. Die Serie von Eingangsdaten X wird zu entsprechenden Zeiten gleichzeitig an alle Verarbeitungselemente übertragen.
- Wie vorstehend beschrieben, können bei der Faltungsberechnung der Datenempfangsmode, der Datenübertragungsmode und der Datenberechnungsmode gemäß der Erfindung exklusiv und zyklisch geschaltet werden.
- Bei der vorstehend beschriebenen Anordnung der Datenspeicherbereiche können eine Komponentenberechnung von yi in jedem Verarbeitungselement und ein Datentransfer zwischen Verarbeitungselementen parallel durchgeführt werden, und eine Berechnung von yi kann durch die parallele Pipe-Line-Verarbeitung ohne eine zusätzliche Datenübertragung zwischen den Verarbeitungselementen in dem Array-Prozessor realisiert werden.
- Als Rechenergebnisse werden y&sub1;, y&sub2; und y&sub3; von den Verarbeitungselementen PE1, PE2 und PE3 zu Zeiten 7, 8 bzw. 9 erhalten. Die Wirkung dieser Ausführungsform wird quantitativ beschrieben. Wenn eine Zeit, die zum Empfangen und Übertragen von Daten wp (1 ≤ p ≤ k) als ttr gegeben ist und eine Zeit, die zum Multiplizieren wpxi+p-1 und zum Addieren eines Rechenergebnisses
- und das sich ergebende Produkt erforderlich ist, als tp gegeben ist, wird die Gesamtzeit T, welche zum Erhalten eines Ergebnisses yi erforderlich ist, dargestellt durch:
- wobei t&sub0; eine Zeit ist, die für ein Anfangsdatenladen erforderlich ist und max [x,y] einen Maximalwert von und darstellt.
- Die Faltungsberechnung dieser Ausführungsform ist, da ein Datentransfer zwischen den Verarbeitungselementen einen Transfer von skalaren Daten entspricht, ttr< tp. Daher gilt:
- T t&sub0; + (n + 1) · tp (6)
- In einer herkömmlichen Technik, um seriell eine Berechnung und einen Datentransfer durchzuführen, ist die Gesamtzeit T dargestellt durch:
- T' t&sub0;' + (n + 1) (tp + ttr) (7)
- Aus GI.'en (6) und (7) ergibt sich:
- T'/T tp + ttr/tp =1 + ttr/tp (8)
- Aus Gl. (8) kann mit T< T' die Verarbeitungsgeschwindigkeit durch die Anordnung der Erfindung auf das (1 + ttr/tp)- Fache der herkömmlichen Anordnung erhöht werden.
- Nunmehr wird ein Fall beschrieben, bei welchem eine Vektordistanzberechnung im dynamischen Time-Warping einer Spracherkennung mit Hilfe eines linearen Array-Prozessors, dessen Verarbeitungselemente (PE) jeweils die in Fig. 5 dargestellte Anordnung haben, und mit einer Einrichtung zum Durchführen des in Fig. 6 dargestellten, zyklischen Dreizustands-Mode- Übergangssteuerverfahren durchgeführt wird.
- Die Vektordistanzberechnung, (die nachstehend als d-Berechnung bezeichnet wird) wird dargestellt durch
- wobei und einen i-ten Rahmen einer anzupassenden, eingegebenen Musterdaten-Zeit-Serie ( ui) bzw. einen j-ten Rahmen einer Referenz-Musterdaten-Zeit-Serie ( rj) anzeigen und die Dimension jedes Vektordatenwerts anzeigt.
- Es wird ein Fall beschrieben, bei welchem die d-Berechnung (wobei i = 5 und j = 5 sind) mit dem linearen Array-Prozessor mit fünf Verarbeitungselementen (PE) verarbeitet wird. Fig. 14A bis 14C zeigen Verarbeitungsflüsse der in den Verarbeitungselementen durchgeführten d-Berechnung. Jedes Verarbeitungselement (PE) hat einen Arbeitsdaten- Speicherbereich, welcher einen Datenaustausch mit einer eine Berechnung durchführenden Einheit sowie mit den drei Datenspeicherbereichen durchführen kann und welcher Daten von einem externen Bus erhalten kann.
- Jede Verarbeitungseinheit empfängt eingegebene Musterdaten von dem Bus, speichert sie in dem Arbeitsdaten-Speicherbereich und empfängt Referenz-Musterdaten durch eine Pipe-Line- Verarbeitung, wobei die drei Datenspeicherbereiche verwendet werden. In diesem Verarbeitungsfluß ist die Verarbeitungszeit, welche für eine d-Berechnung erforderlich ist, als eine Zeiteinheit festgelegt, und die drei Datenspeicherbereiche jedes Verarbeitungselements werden ihrerseits exklusiv und zyklisch auf den Datenempfangs-, den Datenübertragungs- und den Datenberechnungsmode geschaltet. Eine detaillierte Verarbeitung wird bezüglich der d-Berechnung des Verarbeitungselements PE3 zur Zeit t + 6 beschrieben.
- Zur Zeit t + 6 erhält das Verarbeitungselement PE3 Referenzmuster-Vektordaten r&sub5; von dem Verarbeitungselement PE2 in dem Datenspeicherbereich des Datenempfangsmodes, und überträgt gleichzeitig an das Verarbeitungselement PE4 Referenzmuster-Vektordaten r&sub4;, welche zur Zeit t + 5 von dem Verarbeitungselement PE 2 empfangen worden sind. Parallel zu dem Datentransfer zwischen den Verarbeitungselementen führt das Verarbeitungselement PE3 die d-Berechnung (d&sub3;&sub3;) von Referenzmuster-Vektordaten r&sub3;, die zur Zeit t + 4 empfangen worden sind, und von eingegebenen Mustervektordaten u&sub3;, die von dem Bus empfangen worden sind, in dem Arbeitsdatenspeicherbereich zur Zeit t + 2 durch.
- Die Modes, der drei Datenspeicherbereiche des Verarbeitungselements PE3 werden exklusiv, wie folgt geschaltet: Mode-Übergang von Datenspeicherbereich Zeit t+4 Zeit t+5 Zeit t+6 Datenberechnungsmode Datenempfangsmode Datenübertragungsmode (Berechnung von d&sub3;&sub1;) (Empfang von r&sub4;) (Übertragung von r&sub4;) Mode-Übergang von Datenspeicherbereich Zeit t+4 Zeit t+5 Zeit t+6 Datenübertragungsmode Datenberechnungsmode Datenempfangsmode (Übertragung von r&sub2;) (Berechnung von d&sub3;&sub2;) (Empfang von r&sub5;) Mode-Übergang von Datenspeicherbereich Zeit t+4 Zeit t+5 Zeit t+6 Datenempfangsmode Datenübertragungsmode Datenberechnungsmode (Empfang von r&sub3;) (Übertragung von r&sub3;) (Berechnung von d&sub3;&sub3;)
- Die Verarbeitungselemente führen dieselbe Verarbeitung zu den jeweiligen Zeiten durch.
- Wie vorstehend beschrieben, kann mit den drei Datenspeicherbereichen, welche exklusiv und zyklisch auf drei Modes geschaltet werden können, eine Datenübertragungsverarbeitung in jedem Verarbeitungselement parallel mit einer Datenberechnungsverarbeitung durchgeführt werden und eine parallele d-Berechnung von dynamischen Time-Warping kann ohne einen zusätzlichen Datentransfer erreicht werden.
- In dieser Ausführungsform werden ein Zustand A, um drei Datenspeicherbereiche in drei Modes, d. h. in einem Datenempfangs-, einem Datenübertragungs- und einem Datenberechnungsmode zyklisch und exklusiv zu schalten, und ein Zustand B, um einen Datenspeicherbereich in einen Nicht-Operationszustand zu setzen und um weitere zwei Datenspeicherbereiche in einen Datenberechnungs-Schreibmode und einen Datenberechnungs-Lesemode zu setzen, abwechselnd geschaltet, so daß die Datenspeicherbereiche selektiv und zyklisch auf sechs Zustände geschaltet werden, d. h. den Datenberechnungsmode (im Zustand A), den Datenberechnungs-Schreibmode (im Zustand B), in den Datenübertragungsmode (im Zustand A), in einen Nicht-Operationsmode (im Zustand B), in den Datenempfangsmode (im Zustand A) und in den Datenberechnungs- Lesemode (im Zustand B), um dadurch parallel einen Datenempfang, eine Datenübertragung und eine Datenberechnungsverarbeitung durchzuführen.
- Es wird nun ein Fall beschrieben, bei welchem eine kumulative Distanzberechnung im dynamischen Time-Warping einer Spracherkennung mit Hilfe eines linearen Array-Prozessors, dessen Verarbeitungselemente (PE) jeweils die in Fig. 5 dargestellte Anordnung haben, und mit Hilfe einer Einrichtung zum Durchführen des in Fig. 15 dargestellten, zyklischen Sechszustands-Mode-Übergangs-Steuerverfahren durchgeführt wird. Die kumulative Distanzberechnung (die nachstehend als g-Berechnung bezeichnet wird), wird dargestellt durch:
- wobei und einen i-ten Rahmen von zeitseriell anzupassenden, eingegebenen Musterdaten bzw. einen j-ten Rahmen von zeitseriellen Referenzmusterdaten anzeigen.
- Nunmehr wird ein Fall beschrieben, bei welchem die g-Berechnung (wobei i = 5 und j = 5 sind), mit Hilfe des linearen Array-Prozessors verarbeitet wird, welcher fünf Verarbeitungselemente hat.
- Fig. 16A zeigt einen Verarbeitungsfluß der in jedem Verarbeitungselement durchgeführten g-Berechnung. Jedes Verarbeitungselement hat einen Arbeitsdaten-Speicherbereich für einen Datenaustausch mit einer eine Berechnung durchführenden Einheit, sowie die drei Datenspeicherbereiche und eine Tabelle für einen Distanzwert di,j wird in einem Teil des Bereichs gespeichert. In diesem Fluß erhält jedes Verarbeitungselement eine Datengruppe, welche für deren g-Berechnung erforderlich ist, von dem benachbarten Verarbeitungselement und berechnet eine Datengruppe, welche für die g- Berechnung des benachbarten Verarbeitungselements erforderlich ist, mit Hilfe der Daten, welche von dem benachbarten Element übertragen worden sind, und Daten, welche in dem Datenspeicherbereich gehalten worden sind. Dann überträgt das Verarbeitungselement die berechnete Datengruppe an das benachbarte Verarbeitungselement. Jedes Verarbeitungselement berechnet seine und Werte parallel mit dieser Datenübertragung.
- In Fig. 16A sind:
- g, l : und Werte als Objekte
- g&supmin;¹, l&supmin;¹ : und Werte der unmittelbar vorhergehenden Zeit;
- pa = gi-2,j-1 + 2di-1,j
- pb = gi-1,j-2 + 2di,j-1
- pc = gi-1,j-1
- ga = pa + di,j
- gb = pb + di,j
- gc = pc + 2di,j
- la = li-2,j-1
- lb = li-1,j-2
- lc = li-1,j-1.
- Der Datenübertragungs- oder Empfangsspeicherbereich speichert eine Datengruppe (nj, pa, la, pc, lc) und der Arbeitsdatenspeicherbereich speichert eine Datengruppe (pb, lb, g&supmin;¹, l&supmin;¹, ga, gb, gc) und eine di,j-Tabelle.
- Fig. 16B zeigt einen parallelen Verarbeitungsfluß der g-Berechnung in dem linearen Array-Prozessor entsprechend dem Verarbeitungsfluß der Verarbeitungselemente. Jedes Verarbeitungselement führt Schritte bis in Fig. 16A entsprechend dem Verarbeitungsfluß in Fig. 16B durch. Da Schritt und jedes Verarbeitungselements Schritten und dessen benachbarten Verarbeitungselements entsprechen, kann eine parallele Verarbeitung, bei welcher Schritte und zwischen benachbarten Verarbeitungselementen einander entsprechen, bei der Verarbeitung des Array-Prozessors durchgeführt werden. Insbesondere kann ein Datentransfer zwischen Verarbeitungselementen parallel mit einer Datenberechnung durchgeführt werden.
- Fig. 17A bis 17E zeigen einen Fall, bei welchem der vorstehend beschriebene Verarbeitungsfluß durch die Anordnung der Erfindung durchgeführt wird. Hierbei stellt ein Symbol
- eine Datengruppe dar und ist definiert als:
- Fig. 17A bis 17E zeigen Verarbeitungsflüsse, in welchen eine Zeit, die für ein Berechnen eines -Wertes in einem Verarbeitungselement erforderlich ist, als eine Zeiteinheit festgelegt ist. Eine detaillierte Verarbeitung wird als die Verarbeitung einer Berechnung von g&sub3;&sub3; des Verarbeitungselements PE3 zur Zeit t+4 beschrieben.
- Die drei Datenspeicherbereiche jedes Verarbeitungselements sind in zwei Zustände gesetzt, d. h. einen Zustand, bei welchem die zwei Speicherbereiche in Lese- und Schreibmodes für eine Datenberechnung gesetzt sind,und einen Zustand, bei welchem die drei Speicherbereiche zu entsprechenden Zeiten in einen Datenübertragungsmode, einen Datenempfangsmode bzw. einen Datenberechnungsmode gesetzt sind.
- Zur Zeit t+4 werden in dem Verarbeitungselement PE3 Daten D³&sub2; , welche von dem Verarbeitungselement PE2 zur Zeit t+3 aus dem Lesedaten-Speicherbereich für eine Datenberechnung empfangen worden sind, ausgelesen; Übertragungsdaten D³&sub3; werden mit Hilfe sowohl der ausgelesenen Daten als auch der gespeicherten Daten in dem Arbeitsdaten-Speicherbereich in dem Verarbeitungselement PE3 berechnet und es werden die Daten in dem Schreibdaten-Speicherbereich für eine Datenberechnung gespeichert. Dann werden die drei Datenspeicherbereiche in den Datenübertragungsmode, den Datenempfangsmode bzw. den Datenberechnungsmode gebracht,so daß die berechneten Daten D³&sub3; an ein benachbartes Verarbeitungselement aus dem Datenspeicherbereich in dem Datenübertragungsmode übertragen (welcher in dem Schreibmode gesetzt wurde), und gleichzeitig werden Daten D&sup4;&sub2;, welche für die g-Berechnung zur Zeit t+5 erforderlich sind, in dem Datenspeicherbereich in dem Datenempfangsmode empfangen. Parallel hierzu werden g&sub3;&sub3; und l&sub3;&sub3; mit Hilfe der Daten aus dem Datenspeicherbereich in dem Datenberechnungsmode (welcher in einen Lesemode gesetzt wurde) und mit Hilfe der Daten aus dem Arbeitsdaten- Speicherbereich berechnet, so daß folglich - und -Berechnungen zur Zeit t + 4 beendet werden.
- Da D³&sub2; = /n&sub3;, g&sub1;&sub2; + 2d&sub2;&sub3;, g&sub2;&sub2;, l&sub1;&sub2;, l&sub2;&sub2;) sind und der Arbeitsdaten-Speicherbereich g&sub2;&sub1; + 2d&sub3;&sub2; und l&sub2;&sub1; speichert, können Daten g&sub3;&sub3; und l&sub3;&sub3; aus diesen Daten berechnet werden.
- Zu jedem Zeitpunkt führen die Verarbeitungselemente dieselbe Verarbeitung durch, wie vorstehend beschrieben ist. Die vorstehend beschriebene Verarbeitung in jedem Verarbeitungselement wird mit Hilfe der drei Datenspeicherbereiche durchgeführt, welche zyklisch in den 6 Moden verwendet werden, so daß eine Datenübertragungsverarbeitung parallel mit einer Datenberechnungsverarbeitung durchgeführt werden kann. Daher kann eine parallele kumulative Distanzberechnung eines dynamischen Time-Warp, welcher frei von zusätzlicher Verarbeitungszeit ist, infolge eines Datentransfers realisiert werden.
Claims (3)
1. Datenverarbeitungsvorrichtung, mit
drei Datenspeicherbereichen (1, 2, 3) jeweils zum Empfangen
von Daten und zum Auslesen der empfangenen Daten;
einem Dateneingabeanschluß (6), um Daten von einer externen
Einrichtung zu empfangen, und einem Datenausgabeanschluß
(7), um Daten an verschiedene externe Einrichtungen zu
übertragen;
wobei der Eingabeanschluß mit einem ersten Pufferregister
(8) verbunden ist, in welchem Daten von der externen
Einrichtung über den Eingabeanschluß in das erste Pufferregister
eingegeben werden;
wobei der Ausgabeanschluß mit einem zweiten Pufferregister
(9) verbunden ist, wobei Daten des zweiten Pufferregisters
über den Ausgabeanschluß an die verschiedenen externen
Einrichtungen abgegeben werden;
drei Datenspeicher, welche jeweils entsprechend jedem der
drei Datenspeicherbereiche einen Ausgangsanschluß zum
Auslesen von Daten und einen Eingangsanschluß zum Empfangen von
Daten haben;
einer Steuereinheit (5) mit Einrichtungen zum Steuern von
Rechenoperationen einer Berechnungen ausführenden Einheit
(4)
dadurch gekennzeichnet, daß
jeder der Ausgangsanschlüsse der drei Datenspeicher mit
ersten und zweiten Multiplexern verbunden ist;
der Ausgang des ersten Multiplexers mit einem Eingang des
zweiten Pufferregisters verbunden ist;
der Ausgang des zweiten Multiplexers mit der Berechnungen
ausführenden Einheit verbunden ist;
die Ausgänge des ersten Pufferregisters und der Berechnungen
durchführenden Einheit mit dritten, vierten und fünften
Multiplexern verbunden sind;
die Ausgänge der dritten, vierten und fünften Multiplexer
mit den Eingangsanschlüssen der drei Datenspeicherbereiche
verbunden sind;
die Steuereinheit eine Einrichtung zum Steuern der ersten,
zweiten, dritten, vierten und fünften Multiplexer aufweist,
um Verbindungswege zwischen den drei Datenspeicherbereichen,
der Berechnungen durchführenden Einheit und den ersten und
zweiten Pufferregistern auszuwählen, um Lese- und
Schreiboperationen der drei Datenspeicherbereiche und
eine Einrichtung zum Steuern der ersten und zweiten
Pufferregister, um Daten zu halten, zu steuern;
wobei die Steuereinrichtung eine Dateneingangsverarbeitung
steuert, bei welcher das erste Pufferregister Daten von der
externen Einrichtung über den Eingabeanschluß speichert,
einer der drei Datenspeicherbereiche Daten von dem Ausgang
des ersten Pufferregisters über einen der dritten, vierten
und fünften Multiplexer unter Verwendung der
Steuereinrichtung empfängt;
wobei die Steuereinheit eine Datenausgabeverarbeitung
steuert, bei welcher das zweite Pufferregister Daten speichert,
die aus einem der drei Datenspeicherbereiche über den
ersten Multiplexer ausgelesen worden sind, und Daten, die
in dem zweiten Pufferregister gespeichert sind, an die
verschiedenen externen Einrichtungen über den
Ausgabeanschluß unter Verwendung der Steuereinrichtung abgibt;
wobei die Steuereinrichtung eine
Datenberechnungsverarbeitung steuert, bei welcher Daten, die aus einem der drei
Datenspeicherbereiche ausgelesen worden sind, an die
Berechnungen durch führende Einheit über den zweiten Multiplexer
übertragen werden, die Berechnungen durchführende Einheit
Rechenoperationen mit Hilfe von Daten durchführt, welche
von einem der drei Datenspeicherbereiche über den zweiten
Multiplexer übertragen werden, und einer der drei
Datenspeicherbereiche Rechenergebnisse von der Berechnungen
durchführenden Einheit über einen der dritten, vierten und
fünften Multiplexer von der Berechnungen durchführenden
Einheit unter Verwendung der Steuereinrichtung empfängt, wobei
die Steuereinheit die Dateneingangsverarbeitung, die
Datenausgangsverarbeitung und den Datenberechnungsprozeß
durchführt, um anfangs die Dateneingangsverarbeitung einem der
drei Datenspeicherbereiche zuzuordnen und um die
Datenausgangsverarbeitung und die Datenberechnungsverarbeitung den
anderen der drei Datenspeicherbereiche zuzuteilen, um
gleichzeitig einen Datenempfang von der externen Einrichtung in
dem Datenspeicherbereich der Dateneingangsverarbeitung, eine
Datenübertragung zu den verschiedenen externen Einrichtungen
von dem Datenspeicherbereich der Datenausgangsverarbeitung
und die Berechnungsausführung durchzuführen, bei welcher
der Datenspeicherbereich der Datenberechnungsverarbeitung
Daten für die Berechnungen ausführenden Einheit liefert und
Rechenergebnisse der Berechnungsausführung von der die
Berechnung ausführenden Einheiten erhält;
nach einer Parallelverarbeitung des Datenempfangs, der
Datenübertragung und der Datenberechnungsausführung in allen drei
Datenspeicherbereichen
die Steuereinheit Verarbeitungen schaltet, welche jedem der
drei Datenspeicherbereiche zugeordnet sind, wobei ein
Verarbeiten des Datenspeicherbereichs, welcher früher der
Datenberechnungsverarbeitung zugeordnet ist, nunmehr der
Dateneingangsverarbeitung zugeteilt wird, der Datenspeicherbereich,
der früher der Eingangsverarbeitung zugeteilt worden ist,
nunmehr der Datenausgangsverarbeitung zugeteilt wird, und
der Datenspeicherbereich, welcher früher der
Datenausgangsverarbeitung zugeteilt worden ist, nunmehr der
Datenberechnungsverarbeitung zugeordnet wird,
um gleichzeitig einen Datenempfang von der externen
Einrichtung in den Datenspeicherbereich der
Dateneingangsverarbeitung, eine Datenübertragung an die verschiedenen
externen Einrichtungen von dem Datenspeicherbereich der
Datenausgangsverarbeitung aus und eine Berechnung auszuführen,
bei welcher
der Datenspeicherbereich der
Datenberechnungsverarbeitung Daten für die Berechnungen durchführende Einheit
liefert und Rechenergebnisse bei der Berechnungsdurchführung
von der die Berechnung durchführenden Einheiten erhält,
wobei die Steuereinheit wiederholt die Zuweisungen nach der
wiederholten Parallelverarbeitung schaltet.
2. Steuerverfahren für die Datenverarbeitungseinrichtung nach
Anspruch 1, bei der eine Steuereinheit (5) drei Arten von
Verhaltensmodi, einen Datenempfangsmode, einen
Datenübertragungsmode und einen Datenberechnungsmode für jeden der
Datenspeicherbereiche (1, 2, 3) steuert;
bei dem Datenempfangsmode einer der drei
Datenspeicherbereiche Daten von einer externen Einrichtung auf einem
Datenflußweg eines Eingabeanschlusses (6) zu einem ersten
Pufferregister (8) und dann zu einem der dritten, vierten und
fünften Multiplexer empfangen kann;
bei dem Datenübertragungsmode einer der drei
Datenspeicherbereiche die gespeicherten Daten dieses Datenspeicherbereichs
zu verschiedenen externen Einrichtungen auf einem
Datenflußweg aus einem ersten Multiplexer, einem zweiten
Pufferregister (9) und einem Ausgangsanschluß (7) übertragen kann;
bei dem Datenberechnungsmode einer der drei
Datenspeicherbereiche Daten dieses Datenspeicherbereichs über einen
zweiten Multiplexer an eine Berechnungen durchführend Einheit
(4) liefern und Rechenergebnisse der Berechnungen
durchführenden Einheit über einender dritten, vierten und fünften
Multiplexer empfangen kann;
wobei der Verhaltensmode jede der drei Datenspeicherbereiche
kreisförmig in den folgenden Schritten geändert wird, indem
(1) anfangs die Steuereinheit den Datenempfangsmode einem
der drei Datenspeicherbereiche und den
Datenübertragungsmode sowie den Berechnungsmode den anderen der drei
Datenspeicherbereiche zuteilt, um gleichzeitig einen
Datenempfang von der externen Einrichtung in den
Datenspeicherbereich des Datenempfangsmodes, eine
Datenübertragung zu den verschiedenen externen Einrichtungen von
dem Datenspeicherbereich des Datenübertragungsmodes und
die Berechnung auszuführen, bei welcher der
Datenspeicherbereich des Datenberechnungsmodes Daten für die
Berechnungen durchführende Einheit liefert und
Rechenergebnisse der Berechnungsdurchführung von der
Berechnungen ausführenden Einheit empfängt;
(2) nach einer Parallelverarbeitung des Datenempfangs, der
Datenübertragung und der Berechnungsdurchführung in
allen drei Datenspeicherbereichen die Steuereinheit Modi
jeder der drei Datenspeicherbereiche schaltet, in welchem
Mode des Datenspeicherbereichs, welcher in dem
Datenberechnungsmode ist, auf dem Datenempfangsmode geschaltet
wird, in welchem Mode des Datenbereichs, welcher in dem
Empfangsmode ist, auf den Datenübertragungsmode
geschaltet wird, und in welchem Mode des Datenspeicherbereichs,
welcher in dem Datenübertragungsmode ist, auf den
Datenberechnungsmode geschaltet wird,
um gleichzeitig einen Datenempfang von der externen
Einrichtung in den Datenspeicherbereich des
Datenempfangsmodes, eine Datenübertragung zu den
verschiedenen externen Einrichtungen von dem Datenspeicherbereich
des Datenübertragungsmodes und eine Berechnung
durchzuführen, bei welcher der Datenspeicherbereich des
Datenberechnungsmodes Daten von der Berechnungen ausführenden
Einheit liefert und Rechenergebnisse der
Berechnungsausführung von der Berechnungen durchführenden Einführung
erhält, und
(3) danach der Schritt (2) wiederholt durchgeführt wird.
3. Steuerverfahren für die Datenverarbeitungseinrichtung
nach Anspruch 1, bei welchem eine Steuereinheit (5) sechs
Arten von Verhaltenmodi für jeden von drei
Datenspeicherbereichen (1, 2, 3) steuert, nämlich einen Datenempfangsmode, einen
Datenübertragungsmode, einen Datenberechnungsmode mit Lese-
und Schreibfunktionen, einen Datenberechnungsmode nur mit
Lesefunktion, einen Datenberechnungsmode nur mit
Schreibfunktion und einen Nicht-Operationsmode, wobei
bei dem Datenempfangsmode einer der drei
Datenspeicherbereiche
von der externen Einrichtung auf einem
Datenflußweg von einem Eingangsanschluß (6) zu einem ersten
Pufferregister (8) und dann zu einem der dritten, vierten und
fünften Multiplexer empfangen kann;
bei dem Datenübertragungsmode einer der drei
Datenspeicherbereiche die gespeicherten Daten dieses Datenbereichs an
verschiedene externe Einrichtungen auf einem Datenflußweg
von einem ersten Multiplexer zu einem zweiten Pufferregister
(9) und dann zu einem Ausgangsanschluß (7) übertragen kann;
bei dem Datenberechnungsmode mit Lese- und Schreibfunktion
einer der drei Datenspeicherbereiche Daten dieses
Datenspeicherbereichs zu einer Berechnungen durchführenden
Einheit (4) über einen zweiten Multiplexer liefern kann und
Rechenergebnisse der Berechnungen durchführenden Einheit
über einen der dritten, vierten und fünften Multiplexer
empfangen kann;
bei dem Datenberechnungsmode mit nur der Lesefunktion einer
der drei Datenspeicherbereiche Daten dieses
Datenspeicherbereichs an die Berechnungen durchführende Einheit über
den zweiten Multiplexer liefern kann;
bei dem Datenberechnungsmode mit nur einer Schreibfunktion
einer der drei Datenspeicherbereiche Rechenergebnisse der
Berechnungen durchführenden Einheit über einen der dritten,
vierten und fünften Multiplexer empfangen kann;
bei dem Nicht-Operationsmode einer der drei
Datenspeicherbereiche keine Verarbeitung bewirken kann;
wobei der Verhaltensmode jeder der drei Datenspeicherbereiche
kreisförmig in den folgenden Schritten geändert wird, indem
(1) anfangs die Steuereinheit den Datenempfangsmode einem
der drei Datenspeicherbereiche und den
Datenübertragungsmode sowie den Datenberechnungsmode mit Lese- und
Schreibfunktionen den anderen der drei
Datenspeicherbereiche zuordnet,
um gleichzeitig einen Datenempfang von der externen
Einrichtung in den Datenspeicherbereich des
Datenempfangsmodes, eine Datenübertragung an die
verschiedenen externen Einrichtungen von dem Datenspeicherbereich
des Datenübertragungsmodes und eine Berechnung
durchzuführen, bei welcher der Datenspeicherbereich des
Datenberechnungsmodes mit Lese- und Schreibfunktionen Daten
für die Berechnungen durchführende Einheit liefert und
Rechenergebnisse der Berechnung von der Berechnungen
durchführenden Einheit erhält;
(2) nach einer Parallelverarbeitung des Datenempfangs, der
Datenübertragung und der Berechnungsdurchführung in
allen drei Datenspeicherbereichen,
die Steuereinheit den Mode jedes der drei
Datenspeicherbereiche schaltet, wobei der Mode des
Datenspeicherbereichs, welcher in dem Datenempfangsmode ist,auf den
Datenberechnungsmode mit nur einer Lesefunktion
geschaltet wird, der Mode des Datenspeicherbereichs, welcher in
dem Datenberechnungsmode mit Lese- und Schreibfunktionen
ist, auf den Datenberechnungsmode mit nur einer
Schreibfunktion geschaltet wird, und der Mode des
Datenspeicherbereichs, welcher in dem Datenübertragungsmode ist, auf
den Nicht-Operationsmode geschaltet wird,
um gleichzeitig eine Berechnung durchzuführen, bei
welcher der Datenspeicherbereich des Datenberechnungsmodes
mit nur einer Lesefunktion Daten dieses
Datenspeicherbereichs an die Berechnungen durchführende Einheit
liefert-und um einen Datenempfang von Rechenergebnissen
in den Datenspeicherbereich des Datenberechnungsmodes
mit nur einer Schreibfunktion von der Berechnungen
durchführenden Einheit aus durchzuführen;
(3) nach einer Parallelverarbeitung einer Datenzufuhr zu
der Berechnungen durchführenden Einheit von dem
Datenspeicherbereich des Datenberechnungsmodes mit nur
Lesefunktion und eines Empfangs von Rechenergebnissen der
Berechnungen durchführenden Einheit in den
Datenspeicherbereich des Berechnungsmodes mit nur einer
Schreibfunktion von der Berechnungen durchführenden Einheit,
die Steuereinheit den Mode jedes der drei
Datenspeicherbereiche schaltet, wobei der Mode des
Datenspeicherbereichs, welcher in dem Datenberechnungsmode mit nur einer
Lesefunktion ist, auf den Datenberechnungsmode mit Lese-
und Schreibfunktionen geschaltet wird, der Mode des
Datenspeicherbereichs, welcher in dem Datenberechnungsmode
mit nur einer Schreibfunktion ist, auf den
Datenübertragungsmode geschaltet wird, und der Mode des
Datenspeicherbereichs, welcher in dem Nicht-Operationsmode ist,
auf den Datenempfangsmode geschaltet wird,
um gleichzeitig einen Datenempfang an dem
Datenspeichermode des Datenempfangsmodes von der externen Einrichtung
aus, eine Datenübertragung an die verschiedenen
externen Einrichtungen von dem Datenspeicherbereich des
Datenübertragungsmodes und eine Berechnung durchzuführen, bei
welcher der Datenspeicherbereich des Berechnungsmodes
mit Lese- und Schreibfunktionen Daten dieses
Datenspeicherbereichs an die Berechnungen durchführende Einheit
liefert und Rechenergebnisse der Berechnungsdurchführung
von der die Berechnung durchführenden Einheiten empfängt;
(4) danach der Schritt (2) und der Schritt (3) nacheinander
in der Reihenfolge des Schritts (2), des Schritts (3),
des Schritts (2), des Schritts (3), des Schritts (2),
usw. durchgeführt werden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28084886 | 1986-11-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3786330D1 DE3786330D1 (de) | 1993-07-29 |
DE3786330T2 true DE3786330T2 (de) | 1993-11-25 |
Family
ID=17630823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE87117412T Expired - Fee Related DE3786330T2 (de) | 1986-11-27 | 1987-11-25 | Paralleldatenverarbeitungsvorrichtung und -verfahren. |
Country Status (4)
Country | Link |
---|---|
US (1) | US5138704A (de) |
EP (1) | EP0269995B1 (de) |
JP (1) | JP2637749B2 (de) |
DE (1) | DE3786330T2 (de) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU641418B2 (en) * | 1989-09-20 | 1993-09-23 | Fujitsu Limited | A parallel data processing system for processing and transmitting data concurrently |
FR2663138B1 (fr) * | 1990-06-08 | 1992-09-11 | France Etat | Procede et circuit de traitement de signaux numeriques representatifs de vecteurs ou tuples de meme dimension et leur application a des ensembles de cardinalite et a des vecteurs ou tuples de dimensions quelconques. |
JP2579246B2 (ja) * | 1990-12-21 | 1997-02-05 | シャープ株式会社 | データ伝送装置 |
JPH04290155A (ja) * | 1991-03-19 | 1992-10-14 | Fujitsu Ltd | 並列データ処理方式 |
WO1993014459A1 (en) * | 1992-01-17 | 1993-07-22 | Caelum Research Corporation | Modular parallel processing system |
US5546598A (en) * | 1993-02-04 | 1996-08-13 | Matsushita Electric Industrial Co., Ltd. | Working situation management apparatus |
JPH07271744A (ja) * | 1994-03-31 | 1995-10-20 | Matsushita Electric Ind Co Ltd | 並列計算機 |
JP3125842B2 (ja) * | 1995-03-03 | 2001-01-22 | 株式会社日立製作所 | 並列計算機での通信処理方法及びそのシステム |
US5708835A (en) * | 1995-03-27 | 1998-01-13 | Hughes Electronics | Dual-directional parallel processor |
JPH0981532A (ja) * | 1995-09-08 | 1997-03-28 | Fujitsu Ltd | 分散記憶型並列計算機 |
JP2792501B2 (ja) * | 1996-02-28 | 1998-09-03 | 日本電気株式会社 | データ転送方式およびデータ転送方法 |
US5999961A (en) * | 1997-09-15 | 1999-12-07 | California Institute Of Technology | Parallel prefix operations in asynchronous processors |
JP4306997B2 (ja) | 2000-05-12 | 2009-08-05 | 富士通株式会社 | データ制御装置及びatm制御装置 |
US7885796B2 (en) | 2003-09-22 | 2011-02-08 | Nec Soft, Ltd. | Parallel calculation method and device |
CN101840383B (zh) * | 2010-04-28 | 2012-07-04 | 中国科学院自动化研究所 | 支持连续/离散地址多数据并行访问的可配置存储器 |
JP5680466B2 (ja) * | 2011-03-29 | 2015-03-04 | 三菱重工業株式会社 | 並列処理システム及び並列処理システムの動作方法 |
CN106502806B (zh) * | 2016-10-31 | 2020-02-14 | 华为技术有限公司 | 一种总线协议命令处理装置及相关方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS52153714A (en) * | 1976-06-16 | 1977-12-21 | Matsushita Electric Ind Co Ltd | Filing device |
JPS54127653A (en) * | 1978-03-28 | 1979-10-03 | Toshiba Corp | Data processor |
EP0064074B1 (de) * | 1980-11-10 | 1988-09-14 | Wang Laboratories Inc. | Verbindung für datenübertragung |
JPS5953957A (ja) * | 1982-09-20 | 1984-03-28 | Sanyo Electric Co Ltd | メモリアクセス回路 |
US4504909A (en) * | 1982-09-30 | 1985-03-12 | General Electric Company | Method of using an array processor for real time processing |
US4546431A (en) * | 1982-11-03 | 1985-10-08 | Burroughs Corporation | Multiple control stores in a pipelined microcontroller for handling jump and return subroutines |
NL192637C (nl) * | 1984-02-27 | 1997-11-04 | Nippon Telegraph & Telephone | Stelselprocessor. |
CA1240400A (en) * | 1984-12-20 | 1988-08-09 | Herbert R. Carleton | Topologically-distributed-memory multiprocessor computer |
-
1987
- 1987-11-25 DE DE87117412T patent/DE3786330T2/de not_active Expired - Fee Related
- 1987-11-25 EP EP87117412A patent/EP0269995B1/de not_active Expired - Lifetime
- 1987-11-26 JP JP62298606A patent/JP2637749B2/ja not_active Expired - Fee Related
-
1990
- 1990-10-31 US US07/608,030 patent/US5138704A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPS63238653A (ja) | 1988-10-04 |
EP0269995A3 (en) | 1989-03-22 |
EP0269995B1 (de) | 1993-06-23 |
EP0269995A2 (de) | 1988-06-08 |
JP2637749B2 (ja) | 1997-08-06 |
DE3786330D1 (de) | 1993-07-29 |
US5138704A (en) | 1992-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3786330T2 (de) | Paralleldatenverarbeitungsvorrichtung und -verfahren. | |
DE2934971C2 (de) | Nach dem Fließbandprinzip arbeitender Zentralprozessor | |
DE3689394T2 (de) | Informationsverarbeitungsanlage mit einem Allzweckprozessor und einem Sonderzweckprozessor. | |
DE3300262C2 (de) | ||
DE3851554T2 (de) | Steuerungsanordnung für gemeinschaftlichen Speicher. | |
DE3424962C2 (de) | ||
DE3879637T2 (de) | Pufferspeichergeraet und -verfahren, insbesondere fuer die matrixtransposition von datenfolgen. | |
DE2244402A1 (de) | Datenverarbeitungsanlage | |
DE1146290B (de) | Elektronisches Datenverarbeitungssystem | |
DE2134402B2 (de) | Vorrichtung zum Abfragen der Verfügbarkeit eines Kommunikationsweges zu einer Eingabe-Ausgabeeinheit | |
DE3750028T2 (de) | Pipelineprozessor mit schwacher Kopplung. | |
DE69025524T2 (de) | Vorrichtung und Verfahren zur Steuerung von Speicherzugriffsanforderungen in einem digitalen Datenverarbeitungssystem | |
DE69830474T2 (de) | Verfahren und gerät zur fft-berechnung | |
DE19826252C2 (de) | Verfahren zur digitalen Signalverarbeitung | |
DE69029608T2 (de) | Digitale Signalprozessorvorrichtung | |
DE2911909A1 (de) | Verfahren und geraet zur digitalen datenverarbeitung, insbesondere von digitalen audiosignalen | |
DD208499A3 (de) | Mehrdimensionaler paralleler speicher | |
CH692310A5 (de) | Verfahren zum Erzeugen eines Unterbruchsignals in einer Datenverarbeitungsanlage und Datenverarbeitungsanlage. | |
DE3854039T2 (de) | Bildverarbeitungssystem. | |
EP0779585A2 (de) | Digitale Signalprozessoranordnung zum Vergleich von Merkmalsvektoren und zugehöriges Betriebsverfahren | |
DE4328909A1 (de) | Informationsverarbeitungssystem mit einer Mehrzahl von Prozessoren | |
EP0598112B1 (de) | Verfahren und anordnung zum bilden der summe einer kette von produkten | |
DE4134542A1 (de) | Datenlaengenerfassungseinrichtung | |
DE69024912T2 (de) | Rechnersystem | |
DE2150292C2 (de) | Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |