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
Application number
DE87117412T
Other languages
English (en)
Other versions
DE3786330D1 (de
Inventor
Takashi Kimura
Junichi Takahashi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Application granted granted Critical
Publication of DE3786330D1 publication Critical patent/DE3786330D1/de
Publication of DE3786330T2 publication Critical patent/DE3786330T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Multi Processors (AREA)

Description

    Allgemeiner Stand der Technik 1. Gebiet der Erfindung
  • 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.
  • 2. Kurze Beschreibung des Standes der Technik
  • 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.
  • Zusammenfassung der Erfindung
  • 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.
  • Kurze Beschreibung der Zeichnungen
  • 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.
  • Bevorzugte Ausführungsform der Erfindung
  • Die Erfindung wird nunmehr im einzelnen anhand der Zeichnungen beschrieben, welche Ausführungsformen der Erfindung erläutern.
  • [Ausführungsform 1]
  • 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 &le; 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.
  • [Ausführungsform 2]
  • 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 &le; p &le; 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.
  • [Ausführungsform 3]
  • 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.
  • [Ausführungsform 4]
  • 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.
DE87117412T 1986-11-27 1987-11-25 Paralleldatenverarbeitungsvorrichtung und -verfahren. Expired - Fee Related DE3786330T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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