DE3789861T2 - Parallel-rechner. - Google Patents

Parallel-rechner.

Info

Publication number
DE3789861T2
DE3789861T2 DE3789861T DE3789861T DE3789861T2 DE 3789861 T2 DE3789861 T2 DE 3789861T2 DE 3789861 T DE3789861 T DE 3789861T DE 3789861 T DE3789861 T DE 3789861T DE 3789861 T2 DE3789861 T2 DE 3789861T2
Authority
DE
Germany
Prior art keywords
processor unit
command
processor units
units
slave
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
DE3789861T
Other languages
English (en)
Other versions
DE3789861D1 (de
Inventor
Iwao Harada
Yukio Nagaoka
Yoshihiro Hitachi Lt Nishihara
Fumio 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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3789861D1 publication Critical patent/DE3789861D1/de
Application granted granted Critical
Publication of DE3789861T2 publication Critical patent/DE3789861T2/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)
  • Multi Processors (AREA)

Description

    [Bereich der industriellen Anwendung]
  • Die vorliegende Erfindung betrifft einen parallelverarbeitenden Rechner und insbesondere einen parallelverarbeitenden Rechner des MIMD-Typs (multiple instruction multiple data/Mehrfachbefehle-Mehrfachdaten), der zum Ermitteln numerischer Lösungen für partielle Differenzialgleichungen in der Hydrodynamik und ähnlichem geeignet ist, wobei man auf parallele Verarbeitung angewiesen ist.
  • [Bekannter Stand der Technik]
  • Es wurde ein Rechner beschrieben, der die parallele Verarbeitung unter Verwendung mehrerer Prozessoreinheiten ausführt. In "ACM Transactions on Computer Systems", Band 1, Nr. 3 vom August 1983, Seite 195-221 wird ein parallelverarbeitender Rechner vorgeschlagen, der so beschaffen ist, daß er Partielle Differentialgleichungen lösen kann. Dieser Rechner ist vom MIMD-Typ, bei dem die Prozessoreinheiten zu einem eindimensionalen Gitter zusammengefaßt sind, so daß die einzelnen Prozessoreinheiten über eigene Programme zum Ausführen verschiedener Verarbeitungen, wie beispielsweise der Bearbeitung von Grenzproblemen, verfügen.
  • Der parallelverarbeitende Rechner vom MIMD-Typ weist jedoch den Nachteil auf; daß eine Redundanz auftritt, da die einzelnen Prozessoreinheiten über ein gemeinsames Programm für eine gemeinsame Verarbeitung verfügen, was zu einer Erhöhung der Speicherkapazität führt. Eine Lösung für dieses Problem wurde in der offengelegten japanischen Patentschrift Nr. 146952/1983 beschrieben. Bei diesem Rechner sind die Programme jeder der Prozessoreinheiten in einer Steuereinheit gespeichert, die die Prozessoreinheiten steuert, und nur ein Teil der Programme wird von der Steuereinheit an die Prozessoreinheiten verteilt, wenn die Prozessoreinheiten die Programme ausführen, um die Redundanz beim Speichern der Programme zu verringern und die Speicherkapazität zu vermindern. Ferner wird eine Einheit zum Verteilen der Schleifenverarbeitung eingeführt, um die Anzahl der Anlässe zur Verteilung zu verringern und den Zeitaufwand zu vermindern. Dies ist zum Lösen der Probleme wirkungsvoll, bei denen die Schleife geringe Mengen von Berechnungen und eine große Anzahl von Wiederholungen aufweist.
  • [Durch die Erfindung zu lösende Aufgabe]
  • Nach der oben erwähnten japanischen Offenlegungsschrift Nr. 146952/1983 wurden die Fälle nicht berücksichtigt, in denen eine Anzahl von Berechnungen in der Schleife auftritt, die die Programmspeicherkapazität der Prozessoreinheiten übersteigt. Wenn ferner eine große Anzahl von Schleifen mit einer geringen Anzahl von Wiederholungen vorliegt, muß die Verteilung ständig erfolgen, wodurch mehr Zeit für die Verteilung erforderlich wird.
  • Bei der numerischen Analyse eines Fluids liegt eine hohe Anzahl von Schleifen vor, die eine hohe Anzahl von Berechnungen umfassen. Fig. 2 zeigt ein Ablaufdiagramm der Analyse einer zweidimensionalen viskosen Strömung als Beispiel einer numerischen Fluidanalyse.
  • (1) Ausgangswerte v(&sup0;), v(&sup0;) der Strömungsgeschwindigkeiten u, v an jedem Punkt des Gitters einstellen.
  • (2) Abschluß bestimmen.
  • (3) Zwischenwerte , von u und v zu einem Zeitpunkt t + δt an jedem Punkt des Gitters berechnen.
  • (4) Restmasse d an jedem Punkt des Gitters berechnen.
  • (5) Periodisch Lösungen für den Druck p an jedem Punkt des Gitters ermitteln.
  • (6) Die korrekten Werte für u(v+1), v(v+1) von u und v zum Zeitpunkt t + δt berechnen.
  • Die oben genannten Schritte (1), (3), (4) und (6) sind Doppelschleifen zur Berechnung der zweidimensionalen Gitterpunkte, und der Schritt (5) ist eine Dreifachschleife, zu der die Schleife zum periodischen Ermitteln der Lösung hinzugefügt wird. Die Schritte (2) bis (6) sind in einer Schleife enthalten, die die Zeit neu setzt. Bei einem gitterförmig verbundenen parallelverarbeitenden Rechner erfolgt andererseits die parallele Verarbeitung, indem eine Prozessoreinheit für einen Teilbereich des Raums eingesetzt wird. Die Dauer der Berechnung kann durch Erhöhen der Anzahl der Prozessoreinheiten verkürzt werden, um die Anzahl der Gifterpunkte zu verringern, für die jede der Prozessoreinheiten zuständig ist. Dies bedeutet, daß bei einem parallelverarbeitenden Rechner mit einer großen Anzahl von Prozessoreinheiten die Anzahl der Wiederholungen in den Schleifen der Schritte (2) bis (6) verringert wird. Aufgrund der im vorhergehenden genannten Gründe ist das Verfahren nach der japanischen Offenlegungsschrift Nr. 146952/1983 nicht für die parallele Verarbeitung bei der numerischen Analyse eines Fluids geeignet.
  • Weitere Großrechner wurden in "Computer", Band 17 (1984) 62 beschrieben. Dieser Artikel enthielt eine Studie der Entwicklung von Rechnern bis 1984 und erwähnte ausdrücklich Matrixprozessoren und Vektorprozessoren. Als Beispiel für einen Vektorrechner wurde ein Blockdiagramm eines Vektorverarbeitungsbereichs gezeigt. Diese Rechner sind jedoch vom SIMD-Typ. Um zu Rechnern vom MIMD- Typ zu gelangen, wird vorgeschlagen, eine Reihe von SIMD-Prozessoren zusammenzuschließen. Bei diesem einfachen Aufbau wird nicht berücksichtigt, daß die Befehle in allgemeine Befehle und individuelle Befehle unterteilt werden können und daß dadurch Speicherplatz eingespart werden kann.
  • In der US-A-3 544 973 wurde ein Rechner mit variablem Aufbau vorgeschlagen, der eine zentrale Steuerung und mehrere Segmente mit Verarbeitungselementen und mit Versorgungsschaltungen für die Verarbeitungselemente aufweist. Diese Segmente erhalten in einem ersten Schritt gleichzeitig identische Befehle von der zentralen Steuerung. In einem zweiten Stadium des Vorgangs sind die Segmente voneinander und von der zentralen Steuerung unabhängig. Dennoch muß jedes der Segmente einen Speicher zum Speichern der Befehle vor deren Ausführung aufweisen, wenn noch vorhergehende Befehle abgeschlossen werden müssen. In einem MIMD-Rechner würde dieser Aufbau viel Speicherraum für jedes Segment erfordern, da sowohl allgemeine als auch individuelle Befehle im Segmentspeicher gespeichert werden müßten.
  • Es ist die Aufgabe der vorliegenden Erfindung, einen parallelverarbeitenden Rechner des MIMD-Typs zu schaffen, der derart beschaffen ist, daß ein Algorithmus parallel verarbeitet werden kann, der wie in dem oben aufgeführten Beispiel der numerischen Analyse eines Fluids mit einer geringen Speicherkapazität nacheinander mehrere Schleifenverarbeitungen ausführt.
  • [Mittel zum Lösen des Problems]
  • Die vorliegende Erfindung wurde unter Berücksichtigung der Tatsache gemacht, daß die Speicherkapazität unabhängig von der Anzahl der Schleifen, der Anzahl der Wiederholungen oder der Anzahl der Berechnungen reduziert werden kann, wenn eine Befehlskette (im folgenden als allgemeine Befehle bezeichnet) eines Teils der grundlegenden Berechnungen, die unter den einzelnen Prozessoreinheiten zur allgemeinen Verarbeitung gehören, von einer Befehlskette (im folgenden als individuelle Befehle bezeichnet) getrennt wird, die einen Abschnitt wie beispielsweise das Einstellen der Grenzwerte beschreibt, die zur individuellen Verarbeitung gehören, und wenn bei der parallelen Verarbeitung der numerischen Analyse eines Fluids in einem parallel verarbeitenden Rechner des MIMD-Typs mit Programmen in jeder der Prozessoreinheiten, soweit es die allgemeinen Befehle betrifft, jeder Befehl an die Prozessoreinheiten gesendet wird.
  • Die Verarbeitungseinrichtung in der Prozessoreinheit weist einen Programmzähler auf; der auf dem Steuerverfahren des Neumanntyps basiert und eine Adresse angibt, unter der der Befehl gespeichert ist. In diesem Fall ist die Speicherbank für die allgemeinen Befehle von den Speicherbanken für die individuellen Befehle getrennt. Die individuellen Befehle sind in dem Speicher in der Prozessoreinheit gespeichert. Was die allgemeinen Befehle betrifft, so wird ein FIFO-Speicher (First-infirst-out-Speicher) als Befehlswarteschlange verwendet, und die Ausgabe des FIFO- Speichers entspricht dem Adressenplatz des allgemeinen Befehls. Was den allgemeinen Befehl betrifft, wird daher der Befehl entsprechend den Verarbeitungsbedingungen der Prozessoreinheiten gesendet, so daß die Speicherkapazität für die allgemeinen Befehle verringert werden kann.
  • Wenn die Funktionen von der Steuereinheit übernommen werden, bei denen entsprechend der Verarbeitungsbedingungen der Prozessoreinheiten der gemeinsame Befehl zu gesendet wird, muß die Steuereinheit die Verarbeitungsbedingungen der Prozessoreinheiten wie beispielsweise das Zählen der Anzahl der Wiederholungen der Schleife überwachen, was einen erhöhten Zeitaufwand erfordert. Die Erfinder haben die vorliegende Erfindung durch Berücksichtigung der Tatsache entwikkelt, daß die Ausführungsbedingungen der Prozessoreinheiten nicht von der Steuereinheit überwacht werden müssen, wenn die Vielzahl von Prozessoreinheiten in eine Master-Prozessoreinheit MP und mehrere Slave-Prozessoreinheiten SP unterteilt werden, wenn ein Teil der gleichzeitigen Verarbeitung geteilt wird und wenn der allgemeine Befehl zu dem Zeitpunkt an die Slave-Prozessoreinheiten gesendet wird, wenn die Verarbeitungseinrichtung der Master-Prozessoreinheit den allgemeinen Befehl empfängt.
  • [Funktion]
  • Die Master-Prozessoreinheit und die Slave-Prozessoreinheiten teilen sich einen Teil der Verarbeitung, wobei die Master-Prozessoreinheit die allgemeinen Befehle und die individuellen Befehle speichert und die Slave-Prozessoreinheiten die individuellen Befehle speichern. Die Verarbeitungseinrichtung in der Master- Prozessoreinheit empfängt einen allgemeinen Befehl von einer Adresse, die vor dem Ausführen des allgemeinen Befehls von einen Programmzähler angegeben wird, sendet den auf diese Weise empfangenen Befehl an die Slave-Prozessoreinheiten und speichert den Befehl in der Befehlswarteschlange. Eine Verarbeitungseinrichtung in einer Slave-Prozessoreinheit empfangt den allgemeinen Befehl aus der Befehlswarteschlange und führt ihn aus. Daher müssen die einzelnen Prozessoreinheiten keine allgemeinen Befehle speichern.
  • [Kurzbeschreibung der Zeichnungen]
  • Fig. 1 ist ein Diagramm, das den Aufbau eines erfindungsgemäßen parallelverarbeitenden Rechners veranschaulicht, der eindimensional angeordnet ist;
  • Fig. 2 ist ein Ablaufdiagramm, das die numerische Analyse einer zweidimensionalen viskosen Strömung veranschaulicht;
  • Fig. 3 ist ein Diagramm, das den Aufbau eines erfindungsgemäßen parallelverarbeitenden Rechners veranschaulicht, der zweidimensional angeordnet ist;
  • Fig. 4 ist ein Diagramm, das den Aufbau einer Prozessoreinheit nach Fig. 1 veranschaulicht;
  • Fig. 5 ist ein Speicherverzeichnis in der Prozessoreinheit nach Fig. 4;
  • Fig. 6 ist ein Schaltdiagramm der Prozessoreinheit nach Fig. 4;
  • Fig. 7 ist eine Zeitübersicht der Verarbeitungseinrichtung nach Fig. 4;
  • Fig. 8 ist ein Diagramm, das die Ausführungsreihenfolge der Befehle durch die Verarbeitungseinrichtung nach Fig. 4 veranschaulicht;
  • Fig. 9 ist ein Flußdiagramm für die gleichzeitige Berechnung des Drucks bei der Analyse einer zweidimensionalen viskosen Strömung nach Fig. 2; und
  • Fig. 10 ist ein Diagramm, das den Aufbau einer Ausführungsform eines erfindungsgemäßen parallelverarbeitenden Rechners veranschaulicht.
  • [Ausführungsform]
  • Im folgenden wird in Verbindung mit den Zeichnungen eine Ausführungsform der vorliegenden Erfindung beschrieben.
  • Fig. 1 ist ein Diagramm, das den Aufbau eines erfindungsgeinäßen parallelverarbeitenden Rechners veranschaulicht, wobei mehrere Prozessoreinheiten eindimensional verbunden sind. In Fig. 1 bezeichnet das Bezugszeichen 1 eine Master- Prozessoreinheit (MP), 2 bezeichnet Slave-Prozessoreinheiten (SP), 3 bezeichnet ein Datenübertragungsnetzwerk, 12 bezeichnet Verarbeitungseinrichtungen, 13 bezeichnet eine Speicherbank, 14 bezeichnet Speicherbanken und 15 bezeichnet aus FIFO- Speichern bestehende Befehlswarteschlangen. Die Master-Prozessoreinheit 1 umfaßt die Verarbeitungseinrichtung 12, die Speicherbank 13 und die Speicherbank 14. Die Slave-Prozessoreinheit 2 umfaßt die Verarbeitungseinrichtung 12, die Speicherbank 13 und die Befehlswarteschlange 15.
  • Die Master-Prozessoreinheit 1 und die Slave-Prozessoreinheiten 2 sind durch einen Einbahn-Befehlsverteilerbus 102 miteinander verbunden. Ferner sind Master-Prozessoreinheit 1 und die Slave-Prozessoreinheiten 2 durch über ein Datenübertragungsnetzwerk 3 übertragene Datensignale 113 miteinander verbunden.
  • Fig. 3 zeigt ein Beispiel, in dem M · N Prozessoreinheiten in Form eines zweidimensionalen Gitters angeordnet sind, wobei jede der Zeilen und jede der Spalten mit dem Datenübertragungsnetzwerk 3 verbunden ist. Der Befehlsverteilerbus 102 ist von der Master-Prozessoreinheit 1 mit M · N - 1 Slave-Prozessoreinheiten 2 verbunden.
  • Selbst in einer Ausführungsform, in der die Prozessoreinheiten zweidimensional angeordnet sind, stimmen der Aufbau der Master-Prozessoreinheit 1 und der Slave-Prozessoreinheiten 2 mit dem der eindimensionalen Anordnung überein.
  • Fig. 4 ist ein Diagramm, das den Aufbau einer Prozessoreinheit zeigt. Die Master-Prozessoreinheit 1 und die Slave-Prozessoreinheiten 2 teilen sich im wesentlichen eine gemeinsame Hardware. Fig. 4 zeigt nämlich eine Ausführungsform, in der die Master-Prozessoreinheit 1 durch eine Schalteinrichtung in eine Slave- Prozessoreinheit 2 umgeschaltet werden kann.
  • Die Prozessoreinheit umfaßt die Verarbeitungseinrichtung 12, die Speicherbank 13, die Speicherbank 14, die Befehlswarteschlange 15 und eine Umschaltschaltung 16. Die Verarbeitungseinrichtung 12 und die Speicherbank 14 sind durch ein Adressdatensignal 101 verbunden, die Recheneinrichtung 12 und die Umschaltschaltung 16 sind durch ein Adressdatensignal 104 verbunden, und die Umschaltschaltung 16 und die Speicherbank 13 sind durch ein Adressdatensignal 105 verbunden.
  • Die Befehlswarteschlange 15 und die Umschaltschaltung 16 sind durch eine Datensignalleitung 103 verbunden. Außerhalb der Prozessoreinheit wird der Befehlsverteilerbus 102 aus der Umschaltschaltung 16 erstellt und in die Befehlswarteschlange 15 eingegeben.
  • Die Umschaltschaltung 16 arbeitet als Master-Prozessoreinheit, wenn sie eine Adressdatenleitung 105 und den Befehlsverteilerbus 102 auswählt und wenn sie die Speicherbank 13 lädt. Die Umschaltschaltung 16 arbeitet als Slave- Prozessoreinheit, wenn sie eine Datenleitung 103 auswählt.
  • Fig. 5 veranschaulicht Adressverzeichnisse der Master-Prozessoreinheit 1 und der Slave-Prozessoreinheit 2, wobei die Adressen 0 bis 2¹&sup6;-1 der Speicherbank 13 und die Adressen 2¹&sup6; bis 2¹&sup7;-1 der Speicherbank 14 zugeordnet sind. Der FIFO- Speicher wird für die Befehlswarteschlange 15 der Slave-Prozessoreinheit 2 verwendet, um dem FIFO-Ausgabeanschluß die Adressen 0 bis 2¹&sup6;-1 der Verarbeitungseinrichtung 12 zuzuordnen. Die Verarbeitungseinrichtung 12 des Neumanntyps wird verwendet, bei der die Befehlskette im Speicher gespeichert wird und der Befehl dem Speicher entnommen wird, wenn der Befehl ausgeführt werden soll. Im allgemeinen weist die Verarbeitungseinrichtung des Neumanntyps einen Programmzähler aufs wobei der Befehl aus einer Adresse entnommen wird, die von dem Programmzähler angegeben wird. Der Wert des Programmzählers wird ausschließlich von der Ausführungsfolge der Befehlskette bestimmt. Daher wird der FIFO-Speicher verwendet, wenn die Befehlswarteschlange 15 der Slave-Prozessoreinheit 2 und die von der Verarbeitungseinrichtung 12 der Master-Prozessoreinheit 1 empfangenen allgemeinen Befehle nacheinander in die Befehlswarteschlange 15 geschrieben werden. In der Verarbeitungseinrichtung 12 der Slave-Prozessoreinheit 2 gibt der Programmzähler die Adresse des allgemeinen Befehls an. Durch Entnahme des Befehls aus der Befehlswarteschlange 15 führt die Slave-Prozessoreinheit 2 der Master- Prozessoreinheit 1 nachfolgend den allgemeinen Befehl aus.
  • Fig. 6 ist ein Schaltdiagramm der Prozessoreinheit, wobei das Bezugszeichen 61 eine Verzögerungsschaltung, 102A ein Datensignal, 102B ein Schreibsteuersignal (Befehlsverteilerbus 102), 103A ein Datensignal, 103B ein Lesesteuersignal (Datensignalleitung 103), 104A ein Datensignal, 104B ein Adressignal, 104C ein Lesesteuersignal (Adressdatensignal 104), 105A ein Datensignal, 105B ein Adressignal und 105C ein Lesesteuersignal (Adressdatensignal 105) bezeichnet. Die Umschaltschaltung 16 enthält einen Schalter, der die Master-Prozessoreinheit 1 oder die Slave- Prozessoreinheit 2 auswählt. Wenn ein Kontakt U und ein Kontakt MP miteinander verbunden werden, wird die Master-Prozessoreinheit 1 auswählt, und wenn der Kontakt U und ein Kontakt SP miteinander verbunden werden, wird die Slave- Prozessoreinheit 2 auswählt.
  • Im folgenden wird unter Bezugnahme auf Fig. 6 die Funktionsweise der Master-Prozessoreinheit 1 beschrieben. In der Speicherbank 13 sind für die Prozessoreinheiten allgemeine Befehle gespeichert, und in der Speicherbank 14 sind individuelle Befehle und Daten gespeichert. Es ist zulässig, die Speicherbank für Befehle von der Speicherbank für Daten zu trennen. In diesem Fall ist die Speicherbank für Daten getrennt vorgesehen, und individuelle Befehle sind nur in der Speicherbank 14 gespeichert. Das Schreibsteuersignal 102B besteht aus einem Schreiberlaubnissignal und einem Schreibsignal. Das Schreiberlaubnissignal wird durch das logische Produkt aller Slave-Prozessoreinheiten gebildet, wenn die Befehlswarteschlangen 15 sämtlicher Slave-Prozessoreinheiten 2 nicht voll sind, wodurch das Hineinschreiben der Befehle ermöglicht wird, und wird über das Lesesteuersignal 105C und das Lesesteuersignal 104C als Leseerlaubnissignal in die Verarbeitungseinrichtung 12 eingegeben. Während das Leseerlaubnissignal erzeugt wird, sendet die Verarbeitungseinrichtung 12 eine Adresse an das Adressignal 104B, an der ein allgemeiner Befehl gespeichert ist, sendet ein Lesesignal an das Lesesteuersignal 104C und sendet das Lesesignal über das Lesesteuersignal 105C an die Speicherbank 13. Ein allgemeiner Befehl wird synchron mit dem Lesesignal von der Speicherbank 13 an das Datensignal 105A und über das Datensignal 104A an die Prozessoreinheit 12 und ferner über das Datensignal 102A an die Slave-Prozessoreinheit 2 gesendet. Zusätzlich zu dem Befehl erhält die Slave-Prozessoreinheit als Schreibsignal ein Lesesignal, das die Verarbeitungseinrichtung 12 über das Schreibsteuersignal 102B an das Lesesteuersignal 104C gesendet hat und das durch die Verzögerungsschaltung 61 verzögert wird. Sofern die Befehlswarteschlangen 15 der Slave-Prozessoreinheiten 2 nicht voll sind, empfangt daher die Master-Prozessoreinheit 1 einen allgemeinen Befehl und sendet diesen Befehl an die Slave-Prozessoreinheiten 2.
  • Im folgenden wird in Verbindung mit Fig. 6 die Funktionsweise der Slave- Prozessoreinheit 2 beschrieben. Das Lesesteuersignal 103B besteht aus einem Leseerlaubnissignal und einem Lesesignal. Das Leseerlaubnissignal wird durchgehend erzeugt, wenn die Befehlswarteschlange 15 den Befehl enthält, und wird als Leseerlaubnissignal über das Lesesteuersignal 104C in die Verarbeitungseinrichtung 12 eingegeben. Während der Eingabe des Leseerlaubnissignals sendet die Verarbeitungseinrichtung 12, wie die Verarbeitungseinrichtung 12 in der Master- Prozessoreinheit 1, eine Adresse eines allgemeinen Befehls an das Adressignal 104B und ein Lesesignal an das Lesesteuersignal 104C. Das Lesesignal wird über das Lesesteuersignal 103B an die Befehlswarteschlange 15 geleitet, und der von der Master- Prozessoreinheit 1 gesendete Befehl wird aus der Befehlswarteschlange 15 gesendet und von der Verarbeitungseinrichtung 12 gelesen. Daher folgt die Slave- Prozessoreinheit 2 beim Empfangen des allgemeinen Befehls der Ausführung des allgemeinen Befehls durch die Master-Prozessoreinheit 1, und führt ihn aus.
  • Fig. 7 ist ein Zeitdiagramm, das zeigt, wann allgemeine Befehle von der Master-Prozessoreinheit 1 und den Slave-Prozessoreinheiten 2 empfangen und ausgeführt werden. In dieser Ausführungsform weist die Verarbeitungseinrichtung 12 einen Mechanismus auf, der die Befehle im voraus empfängt. Die Master-Prozessoreinheit 1 empfängt nacheinander den Befehl , den Befehl und den Befehl , die für die Master-Prozessoreinheit und die Slave-Prozessoreinheiten allgemein sind, und sendet sie unmittelbar beim Empfang derartiger Befehle an den Befehlsverteileibus 102. Die Slave-Einheit empfangt den Befehl, nachdem er in die Befehlswarteschlange eingetragen wurde. Daher empfängt und verarbeitet die Slave-Prozessoreinheit 2 den allgemeinen Befehl zu einem Zeitpunkt, der gegenüber dem der Master-Prozessoreinheit 1 verzögert ist. Die Verzögerungszeit summiert sich jedoch bei der Ausführung des Befehls nicht. Die Verzögerungszeit besteht aus einer Zeitspanne zum Weitergeben des Signals über den Befehlsverteilerbus 102 und einer Zugriffszeit auf die Befehlswarteschlange 15. Der Unterschied zwischen der für den Empfang des Befehls erforderlichen Zeit ist im Vergleich mit dem herkömmlichen parallelverarbeitenden Rechner des MIMD-Typs, bei dem die Befehle in den Prozessoreinheiten gespeichert werden, sehr gering.
  • Fig. 8 zeigt ein Programm zur alternierenden Ausführung der allgemeinen Befehlskette und der individuellen Befehlskette. In der Speicherbank 13 der Master- Prozessoreinheit 1 sind die Adressen 0 bis 2¹&sup6;-1 zugeordnet und allgemeine Befehle sowie Verzweigungsbefehle gespeichert. In den Speicherbanken 14 der Master- Prozessoreinheit 1 und der Slave-Prozessoreinheiten 2 sind die Adressen 2¹&sup0; bis 2¹&sup6;-1 zugeordnet und individuelle Befehle und Verzweigungsbefehle gespeichert. In diesem Beispiel dienen die Verzweigungsbefehle zum Ändern des Werts des Programmzählers der Verarbeitungseinrichtung 12, um eine andere Speicherbank anzugeben, wobei der Verzweigungsbefehl den Programmzähler der Verarbeitungseinrichtung 12 ändert, um den individuellen Befehl anzugeben, und der Verzweigungsbefehl den Programmzähler ändert, um den individuellen Befehl anzugeben. Die Slave- Prozessoreinheit 2 liest den allgemeinen Befehl und den Verzweigungsbefehl aus der Befehlswarteschlange 15, um der Master-Prozessoreinheit 1 folgend den allgemeinen Befehl auszuführen.
  • Im folgenden wird ein Verfahren zum Trennen des allgemeinen Befehls vom individuellen Befehl beschrieben. Strukturierte Programme sind heute bei Computerprogrammen üblich. Ein strukturiertes Programm besteht aus drei grundlegenden Formen ((a) einer Verbindung zur Angabe der Verarbeitungsreihenfolge, (b) einer Wiederholung, bei der die Verarbeitung wiederholt wird, während vorgegebene Bedingungen herbeigeführt werden, und (c) Auswahl zum Wählen einer der beiden Verarbeitungen in Abhängigkeit von den gegebenen Bedingungen). Das strukturierte Programm verdeutlicht den logischen Aufbau des Programms, wodurch die Unterscheidung der allgemeinen Befehle von den individuellen Befehlen leicht wird. Wenn durch den parallelverarbeitenden Rechner nach der Ausführungsform das Fluid numerisch analysiert werden soll, teilt die Prozessoreinheit einen Teil des Bereichs, der analysiert werden soll. Wenn mehrere Gitterpunkte auf die Teilbereiche verteilt werden sollen, wird für jeden Gitterpunkt der gleiche Vorgang ausgeführt. Daher wird dieser Teil durch die Wiederholung (b)beschrieben. Wenn die Gitterpunkte der Teilbereiche in einer gleichen Anzahl von den Prozessoreinheiten aufgeteilt werden, ist die Anzahl der Wiederholungen bei den Prozessoreinheiten gleich und dieser Teil wird als ein allgemeiner Befehl behandelt. Ein Einstellen der Grenzwerte variiert abhängig davon, ob die Gitterpunkte in der Grenze enthalten sind oder nicht, und wird daher durch die Auswahl (c) beschreiben. Dies variiert entsprechend jeder Prozessoreinheit und wird als individueller Befehl behandelt.
  • Im folgenden wird ein Beispiel einer parallelen Berechnung beschrieben. Im folgenden ist der Fall beschrieben, in dem ein Teil, dessen Druck periodisch ermittelt werden soll, bei der zweidimensionalen Analyse einer viskosen Strömung nach Fig. 2 parallel verarbeitet wird. Daher ist der zu analysierende Bereich ein länglicher Bereich mit 16 · 8 Gitterpunkten, dessen Rand eine Grenze ist. Eine Neumannbedingung, bei der ein Differentialkoeffizient in der Richtung der Normalen Null wird, ist als Grenzbedingung des Drucks vorgegeben, und das Jacobiverfahren wird als Wiederholungsverfahren verwendet. Die Prozessoreinheiten mit einer Anzahl von 4 · 4, d. h. 16, die eindimensional angeordnet sind, werden verwendet, und jede Prozessoreinheit trägt 4 · 2 Gitterpunkte.
  • In einer einzelnen Prozessoreinheit wird eine Anordnung pi, j (i = 0, 1, 2, 3, 4, 5; j = 0, 1, 2, 3) als Datenbereich des Drucks P ermittelt. Wenn i = 0, 5 oder i = 0, 3, wird von der Prozessoreinheit ein Grenzwert gespeichert, oder es wird ein von der benachbarten Prozessoreinheit berechneter Wert gespeichert.
  • Fig. 9 veranschaulicht den Ablauf der Verarbeitung.
  • (1) K neu einstellen.
  • (2) Druckwert Rij(k+1) des nächsten Schritts an jedem Gitterpunkt berechnen.
  • (3) Wenn eine benachbarte Prozessoreinheit vorhanden ist, einen Druckwert eines die benachbarte Prozessoreinheit berührenden Gitterpunkts senden.
  • (4) Wenn eine benachbarte Prozessoreinheit vorhanden ist, einen von der benachbarten Prozessoreinheit gesendeten Druckwert in der Anordnung speichern.
  • (5) Wenn eine Berührung der Grenze vorliegt, den Grenzwert für das Grenzelement einsetzen.
  • (6) Bestimmen, ob die Gitterpunkte in der Prozessoreinheit konvergieren, und bestimmen, ob sie über alle Prozessoreinheiten konvergieren.
  • Hier werden die Schritte (1) und (2) als allgemeiner Befehl behandelt. Die Schritte (3), (4), und (5) werden als individuelle Befehle behandelt, da die Verarbeitungen abhängig von den Prozessoreinheiten unterschiedlich sind. Der Schritt (6) wird ebenfalls als individueller Befehl behandelt, da es abhängig von den Prozessoreinheiten variiert, ob die Gitterpunkte konvergieren oder nicht. Selbst für weitere Teile der Fig. 2 können die allgemeinen Befehle von den individuellen Befehlen getrennt werden. Bei dem erfindungsgemäßen parallelverarbeitenden Rechner ist daher das Programm in jeder der Prozessoreinheiten in allgemeine Befehle und individuelle Befehle unterteilt, wobei die allgemeinen Befehle in einer einzigen Master- Prozessoreinheit 1 gespeichert sind und an die Slave-Prozessoreinheiten gesendet werden, damit die Ausführung der Befehle erfolgen kann. Daher müssen die allgemeinen Befehle nicht in den Slave-Prozessoreinheiten 2 gespeichert werden, und die numerische Analyse des Fluids kann mit einer verringerten Speicherkapazität parallel verarbeitet werden.
  • Bei dem parallelverarbeitenden Rechner muß die Anzahl der Prozessoreinheiten abhängig von dem Umfang eines zu lösenden Problems erhöht oder verringert werden. In der Ausführungsform nach Fig. 1 muß daher die Master-Prozessoreinheit 1 unter Aufrechterhaltung eines Niveaus, das gesteigert wird, um dem oberen Niveau der Anzahl der Slave-Prozessoreinheiten 2 gerecht zu werden, Ausgaben an den Befehlsverteilerbus 102 erzeugen, so daß die allgemeinen Befehle in die Befehlswarteschlangen 15 der Vielzahl von Slave-Prozessoreinheiten 2 geschrieben werden können. Wird der FIFO-Speicher mit kurzer Zugriffszeit als Befehlswarteschlange 15 verwendet, kann der Aufbau nach Fig. 10 erreicht werden, in dem die Master- Prozessoreinheit 1 auf einem verringerten Niveau Ausgaben an den Befehlsverteilerbus 102 erzeugen muß, und die Anzahl der Prozessoreinheiten kann beliebig geändert werden.
  • In Fig. 10 bezeichnet das Bezugszeichen 1 eine Master-Prozessoreinheit, 2 bezeichnet Slave-Prozessoreinheiten, 3 bezeichnet ein Datenübertragungsnetzwerk, 12 bezeichnet Verarbeitungseinrichtungen, 13 bezeichnet eine Speicherbank, 14 bezeichnet Speicherbanken, 15 bezeichnet Befehlswarteschlangen, 102 bezeichnet einen Befehlsverteilerbus und 120 bezeichnet ein Datensignal, das die Befehlswarteschlangen 15 koppelt. Die Verarbeitungseinrichtung 12 der Master-Prozessoreinheit 1 sendet zu dem Zeitpunkt, zu dem sie einen allgemeinen Befehl aus der Speicherbank 13 empfängt, den allgemeinen Befehl an den Befehlsverteilerbus 102. Die Verarbeitungseinrichtung 12 der Slave-Prozessoreinheit 2 empfängt einen Befehl von der Befehlswarteschlange 15 und schreibt diesen gleichzeitig in die benachbarte Befehlswarteschlange 15. Diese Ausführungsform unterscheidet sich dadurch von der Ausführungsform nach Fig. 1, daß in der der Ausführungsform nach Fig. 1 der allgemeine Befehl gleichzeitig an alle Slave-Prozessoreinheiten 2 gesendet wird. In der Ausführungsform nach Fig. 10 wird der Befehl jedoch um die Zugriffszeiten der Befehlswarteschlangen 15 verzögert von der Slave-Prozessoreinheit 2 empfangen, während sie sich von der Master-Prozessoreinheit entfernen. Durch Verwendung von FIFO- Speichern mit kurzer Zugriffszeit als Befehlswartesehlangen 15 kann jedoch die Zeitverzögerung der Slave-Prozessoreinheiten 2 beim Empfang des Befehls unabhängig von der Entfernung von der Master-Prozessoreinheit 1 vernachlässigt werden. Daher kann eine der Ausführungsform nach Fig. 1 ähnliche Leistung erzielt werden. Die Master-Prozessoreinheit 1 muß nämlich nur eine geringe Ausgabe an den Befehlsverteilerbus 102 erzeugen und die Anzahl der Prozessoreinheiten kann beliebig geändert werden.
  • [Wirkungen der Erfindung]
  • Gemäß dem erfindungsgemäßen parallelverarbeitenden Rechner des MIMD-Typs werden für die Prozessoreinheiten allgemeine Befehle in einer einzigen Prozessoreinheit gespeichert und allgemein für weitere Prozessoreinheiten verwendet, wodurch das Verringern der gesamten Speicherkapazität ermöglicht wird.

Claims (2)

1. Ein MIMD parallelverarbeitender Rechner, der umfaßt:
eine Master-Prozessoreinheit (1),
eine Vielzahl von Slave-Prozessoreinheiten (2),
ein Datenübertragungsnetzwerk (3), über welches Daten zwischen Master- (1) und Slave- (2) Prozessoreinheiten übertragen werden, dadurch gekennzeichnet, daß
die Master-Prozessoreinheit umfaßt
eine Recheneinheit (12), welche Befehle von einem Speicher (13, 14) empfängt,
eine Speicherbank (13) mit allgemeinen Befehlen, welche von allen Prozessoreinheiten in gleicher Weise abgearbeitet werden,
eine Speicherbank (14) mit individuellen Befehlen, welche von der Prozessoreinheit unabhängig von den anderen Prozessoreinheiten abgearbeitet wird, und
jede Slave-Prozessoreinheit umfaßt
eine Recheneinheit (12), welche Befehle von einer lokalen Speicherbank (14) und von einer Befehlsschleife (15) erhält,
besagte Befehlsschleife (15), die einen FIFO-Speicher darstellt und verbunden ist mit der besagten Speicherbank mit allgemeinen Befehlen und welche ermöglicht, daß diese Speicherbank ein Teil des Adressenraumes des Slave-Prozessors ist,
die besagte lokale Speicherbank (14) mit individuellen Befehlen, welche von der Slave-Prozessoreinheit unabhängig von den anderen Prozessoreinheiten abgearbeitet wird.
2. Ein parallelverarbeitender Rechner nach Anspruch 1, dadurch gekennzeichnet, daß
die Master-Prozessoreinheit (1) und die Slave-Prozessoreinheiten (2) sich einen Teil der Verarbeitung teilen,
ein Befehl an die Slave-Prozessoreinheiten (2) übertragen wird, während der besagte Befehl empfangen wird durch die Recheneinheit (12) der Master- Prozessoreinheit (1) von der Speicherbank (13) für allgemeine Befehle, und
die Recheneinheiten (12) in den Slave-Prozessoreinheiten (2) den übertragenen Befehl von der Befehlsschleife (15) empfangen.
DE3789861T 1986-02-26 1987-02-23 Parallel-rechner. Expired - Fee Related DE3789861T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP3923386A JPS62197859A (ja) 1986-02-26 1986-02-26 並列処理計算機
PCT/JP1987/000117 WO1987005419A1 (fr) 1986-02-26 1987-02-23 Ordinateur de traitement en simultane

Publications (2)

Publication Number Publication Date
DE3789861D1 DE3789861D1 (de) 1994-06-23
DE3789861T2 true DE3789861T2 (de) 1994-09-22

Family

ID=12547408

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3789861T Expired - Fee Related DE3789861T2 (de) 1986-02-26 1987-02-23 Parallel-rechner.

Country Status (4)

Country Link
EP (1) EP0273051B1 (de)
JP (1) JPS62197859A (de)
DE (1) DE3789861T2 (de)
WO (1) WO1987005419A1 (de)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3544973A (en) * 1968-03-13 1970-12-01 Westinghouse Electric Corp Variable structure computer
JPS58146952A (ja) * 1982-02-26 1983-09-01 Toshiba Corp 並列計算機方式
JPH05168749A (ja) * 1991-12-24 1993-07-02 Sophia Co Ltd パチンコ機の変動入賞装置

Also Published As

Publication number Publication date
JPH0424744B2 (de) 1992-04-27
EP0273051B1 (de) 1994-05-18
WO1987005419A1 (fr) 1987-09-11
EP0273051A4 (de) 1990-01-29
EP0273051A1 (de) 1988-07-06
DE3789861D1 (de) 1994-06-23
JPS62197859A (ja) 1987-09-01

Similar Documents

Publication Publication Date Title
DE68920388T2 (de) Paralleles Rechnersystem mit Verwendung eines SIMD-Verfahrens.
DE69419524T2 (de) Sperrsynchronisierung für verteilte speicher-massivparallelrechner
DE19835216B4 (de) Prozessor und Verfahren zur parallelen Datenverarbeitung
DE68926783T2 (de) Paralleler datenprozessor
DE69132495T2 (de) Verteilter Verarbeitungsspeicher
DE3882487T2 (de) Vektorprozessor zur schnellen verarbeitung von rekursiven gleichungen.
DE69731323T2 (de) Steuervorrichtung für externe Speicher und Datenübertragungsverfahren zwischen Steuervorrichtungen für externe Speicher
DE2934971C2 (de) Nach dem Fließbandprinzip arbeitender Zentralprozessor
DE68928113T2 (de) Reihenfolgesteuersystem zur Behandlung von Befehlen
DE2354521C2 (de) Verfahren und Einrichtung zum gleichzeitigen Zugriff zu verschiedenen Speichermoduln
DE69230626T2 (de) Informationsverarbeitungssystem mit der Fähigkeit zum Betreiben von mehreren Vektorpipelines in zwei unterscheidlichen Wirkungsweisen
DE69025650T2 (de) Multiprozessorsystem mit Vektorpipelinen
DE112013006309T5 (de) Funktionseinheit mit Baumstruktur zur Unterstützung eines Vektorsortieralgorithmus und anderer Algorithmen
DE69225839T2 (de) Filtersystem und Verfahren zur Bildverarbeitung mit sehr hoher Geschwindigkeit
DE3588212T2 (de) Verfahren und Gerät zum Suchen von Daten
DE3788617T2 (de) Vektordatenverarbeitungssystem mit einer E/A-Steuerung für jeden Vektordatenprozessor und einer anderen E/A-Steuerung für mindestens einen anderen Vektordatenprozessor.
DE3855524T2 (de) Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator
DE4036455C1 (de)
DE19504089A1 (de) Pipelined SIMD-Systolic Array Prozessor und dessen Arbeitsverfahren
DE69029608T2 (de) Digitale Signalprozessorvorrichtung
DE3486073T2 (de) Vektorverarbeitungsgeraet.
DE68903280T2 (de) Vektorschlange in computern mit vektorregister.
DE2617485A1 (de) Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen
DE3789861T2 (de) Parallel-rechner.
DE3447530A1 (de) Vektorprozessor

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee