DE68928173T2 - Parallelrechner bestehend aus Prozessorelementen mit einem lokalen Speicher und einem verbesserten Datentransfermechanismus - Google Patents
Parallelrechner bestehend aus Prozessorelementen mit einem lokalen Speicher und einem verbesserten DatentransfermechanismusInfo
- Publication number
- DE68928173T2 DE68928173T2 DE1989628173 DE68928173T DE68928173T2 DE 68928173 T2 DE68928173 T2 DE 68928173T2 DE 1989628173 DE1989628173 DE 1989628173 DE 68928173 T DE68928173 T DE 68928173T DE 68928173 T2 DE68928173 T2 DE 68928173T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- address
- memory
- identifier
- local memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims description 378
- 238000012546 transfer Methods 0.000 title description 17
- 230000005540 biological transmission Effects 0.000 claims description 47
- 230000004044 response Effects 0.000 claims description 22
- 238000000034 method Methods 0.000 description 36
- 238000012545 processing Methods 0.000 description 29
- 239000000872 buffer Substances 0.000 description 25
- 238000010586 diagram Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 23
- 238000004364 calculation method Methods 0.000 description 18
- 238000006243 chemical reaction Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 238000013519 translation Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 238000011112 process operation Methods 0.000 description 5
- 238000005352 clarification Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Description
- Die Erfindung betrifft einen aus einer Vielzahl von Prozessorelementen aufgebauten Parallelcomputer.
- Als ein bekannter Parallelcomputer, der aus einer Vielzahl von Prozessorelementen besteht, ist ein erster Typ von Parallelcomputer in solcher Weise bekannt, dass jedes dieser Prozessorelemente einen lokalen Speicher zum Einspeichern eines ausgeführten Programms und auch von Daten aufweist, wobei die jeweiligen Prozessorelemente auflokale Speicher anderer Prozessorelemente zugreifen können, falls dies erforderlich ist. Bei einer derartigen Art von Parallelcomputer führt, wenn ein Prozessorelement Daten an den lokalen Speicher eines anderen Prozessorelements überträgt, nachdem das Prozessorelement zum Übertragen der Daten die Daten in den lokalen Speicher des die Daten empfangenden Prozessorelements eingeschrieben hat, dieses datenübertragende Prozessorelement einen Interrupt am Daten empfangenden Prozessorelement aus, um eine Bezugsreihenfolge der Daten sicherzustellen. Hinsichtlich des einschlägigen bekannten Parallelcomputers wird auf z. B. "IEEE, Proceedings of the 1985 International Conference on Parallel Processing", Seiten 782 bis 789; Brantley W.C. et al; "RP3 processor memory element" Bezug genommen.
- Andererseits ist als zweiter Typ des herkömmlichen Parallelcomputers ein solcher Parallelcomputer bekannt, der aus einer Vielzahl von Prozessorelementen besteht, die mit einem gemeinsamen Speicher verbunden sind. Bei einem derartigen herkömmlichen Parallelcomputer wird an jedes Wort im gemeinsamen Speicher ein Kennzeichen angehängt, das angibt, ob die Daten gültig (d.h., dass sie eingeschrieben wurden) oder ungültig (d.h., dass sie noch nicht eingeschrieben wurden). Datenkommunikation wird zwischen den relevanten Prozessorelementen unter Verwendung dieses Kennzeichens ausgeführt. Anders gesagt, schreibt, wenn Daten von einem Prozessorelement zu einem anderen übertragen werden, das Prozessorelement auf der Datenübertragungsseite die Daten in den gemeinsamen Speicher ein, und dann wird das Kennzeichen für diese eingeschriebenen Daten in den Zustand "Daten wurden eingeschrieben" geändert.
- Das Prozessorelement auf der Datenempfangsseite überprüft, ob das für die zugehörige Speicherposition verwendete Kennzeichen anzeigt, ob "die Daten gültig sind", um zu beurteilen, ob zu lesende Daten im gemeinsamen Speicher vorhanden sind oder nicht. Wenn das überprüfte Kennzeichen anzeigt, dass "die Daten gültig sind", werden diese Daten ausgelesen, und danach wird das oben genannte Kennzeichen zu einem geeigneten Zeitpunkt in den "Zustand mit ungültigen Daten" geändert. Im Ergebnis kann das Prozessorelement der Datenübertragungsseite die Daten an das Prozessorelement der Datenempfangsseite ohne Interrupt für das letztgenannte Prozessorelement ausführen. Eine derartige Art von Parallelcomputer ist z. B. in "Society of photo-optical Instrumentation Engineers, "Real-Time Signal Processing IV, Vol 298", August 1981, Seiten 241 bis 248; B.J. Smith:" Architecture & Applications of the HEP multiprocessor computer system" beschrieben.
- Beim oben beschriebenen ersten Typ herkömmlicher Parallelcomputer existiert, da die Datenberechnung unter Verwendung des lokalen Speichers durch die jeweiligen Prozessorelemente ausgeführt wird, wenig Beschränkung hinsichtlich der Anordnung der Parallelcomputer, wenn die Anzahl der Prozessorelemente erhöht wird. Daher ist es relativ einfach, die Anzahl von Prozessorelementen zu erhöhen, wenn eine derartige Art von Parallelcomputern aufgebaut wird. Wenn jedoch Daten von einem Prozessorelement zu einem anderen übertragen werden, ist die oben beschriebene Interruptprozessoperation am Daten empfangenden Prozessorelement erforderlich. Eine derartige Overheadoperation kann das Gesamtfunktionsvermögen der Parallelcomputer beträchtlich verringern.
- Beim zweiten Typ herkömmlicher Parallelcomputer existieren dagegen die folgenden Nachteile. Es ist zwar die oben beschriebene Overheadoperation wie die Interruptprozessoperation nicht erforderlich, aber es greifen alle Prozessorelemente auf den gemeinsamen Speicher zu, so dass bei der Zugriffszeit eine große verzögerung besteht, da die Speicherzugriffsoperationen aller Prozessorelement in Konkurrenz zueinander stehen. Im Ergebnis ist es auf Grund dieser verzögerten Zugriffszeit schwierig, in einem derartigen Parallelcomputer eine große Anzahl von Prozessorelementen zu verwenden. Infolgedessen kann der zweite Typ von Parallelcomputer nur schwer als solcher mit Hochgeschwindigkeitsfunktion realisiert werden.
- Wie bereits beschrieben, existieren beim ersten und zweiten Typ herkömmlicher Parallelcomputer, wie oben beschrieben, Probleme. Um diese herkömmlichen Probleme zu überwinden, wurde von den Anmelderinnen ein dritter Typ von Parallelcomputer vorgeschlagen, der in der früheren europäischen Patentanmeldung EP-A-0 258 650 (die unter die Regelung von Art. 54(3) EPÜ fällt) offenbart, die einen Parallelcomputer mit folgendem offenbart:
- - eine Vielzahl von Prozessorelementen (2), die über ein Netzwerk (1) miteinander verbunden sind;
- - wobei jedes der Prozessorelemente einen lokalen Speicher (6) zum dauerhaften Speichern eines Programms und zugehöriger Daten, einen Prozessor (3) zum Ausführen eines Befehls im Programm, eine Einrichtung (4) zum Übertragen von Daten an die anderen Prozessorelemente sowie eine Einrichtung (5) zum Empfangen der von einem anderen Prozessorelement gesendeten Daten aufweist;
- - einem Speicherbereich (23), der aus einer Vielzahl von Empfangsdatenbereichen zum Zwischenspeichern von durch die Empfangseinrichtung empfangenen Daten und einem Speicherbereich (24) mit einer Vielzahl von Kennzeichenbereichen besteht, die für jeden der Empfangsdatenbereiche vorhanden sind, um ein Kennzeichen für gültige Daten oder ein Kennzeichen für ungültige Daten, das anzeigt, ob die Daten im entsprechenden Empfangsdatenbereich gültig oder ungültig sind, einzuspeichern;
- - der Einrichtung (4) zum Übertragen der Daten, die so zu übertragen sind, dass eine Datenkennung (DID, PE#) hinzugefügt wird, die durch die Daten vorbestimmt ist;
- - der Empfangseinrichtung (5) zum Einschreiben der Daten in einen der Vielzahl von Empfangsdatenbereichen auf die vom Netzwerk empfangenen Daten hin, und zum Einschreiben eines Kennzeichens für gültige Daten in einen der Vielzahl von Empfangsdatenbereichen, wobei die Empfangseinrichtung parallel zum Prozessor betrieben wird; und
- - einer Zugriffseinrichtung (61) zum Lesen sowohl der Daten als auch der Kennung aus einem der Empfangsdatenbereiche, wie durch die Datenkennung bestimmt, und aus den entsprechenden Kennzeichenbereichen, auf die Datenkennung hin, wie sie vom Befehl spezifiziert wird, der vom Programm erzeugt wird, das einen Datenempfang benötigt, und um das Kennzeichen und die Daten wiederholt aus dem Kennzeichenbereich und dem Empfangsdatenbereich auszulesen, bis ein Kennzeichen für gültige Daten aus dem Kennzeichenbereich ausgelesen ist, wenn das gelesene Kennzeichen einem Kennzeichen für ungültige Daten entspricht.
- Beim dritten Typ von Parallelcomputer ist kein gemeinsamer Speicher verwendet, der den Nachteil des zweiten Typs von Parallelcomputer hervorrufen würde, und es sind lokale Speicher für die jeweiligen Prozessorelemente verwendet, die mit denen beim ersten Typ von Parallelcomputer übereinstimmen. Jedoch sind von den lokalen Speichern verschiedene Datenempfangspuffer zusätzlich für die jeweiligen Prozessorelemente erforderlich, um während der Datenkommunikation eine Interruptprozessoperation zu verhindern.
- Bei diesem dritten Typ von Parallelcomputer überträgt das Prozessorelement auf der Datenübertragungsseite, wenn Daten übertragen werden, gleichzeitig sowohl die Daten als auch die Kennung zum Kennzeichnen der Daten an das andere Prozessorelement auf der Datenempfangsseite. Die übertragenen Daten werden in den Empfangspuffer des Prozessorelements auf der Datenempfangsseite eingespeichert. Im Prozessorelement der Datenempfangsseite wird auf die Kennung hin, die zuvor für die fraglichen Daten bestimmt wurde, wenn auf diese Daten zuzugreifen ist, assoziativ zugegriffen, und die fraglichen Daten werden aus ihm ausgelesen, wenn sie in ihm vorhanden sind. Im Ergebnis wird die oben beschriebene Interruptprozessoperation, wie sie beim ersten Typ eines herkömmlichen Parallelcomputers als Hauptnachteil desselben ausgeführt wird, nicht mehr vorgenommen. Um das Funktionsvermögen des dritten Typs von Parallelcomputer mit zufriedenstellendem Funktionsvermögen weiter zu verbessern, haben die Anmelderinnen eine weitere japanische Patentanmeldung eingereicht, die als Dokument JP-A-63-303 460 am 12.12.1988 veröffentlicht wurde und die einen vierten Typ eines Parallelcomputers betrifft. Bei diesem vierten Typ von Parallelcomputer existieren die folgenden speziellen Vorteile. Beim oben beschriebenen dritten Typ von Parallelcomputer muss nämlich der Empfangsprozessor dahingehend programmiert werden, dass dann, wenn mehrere Einzeldaten erforderlich sind, jeder einzelne Datenwert in einer für die jeweiligen Daten vorbestimmten Abfolge aus dem assoziativen Empfangsspeicher ausgelesen werden muss. Im allgemeinen existiert jedoch, da die mehreren Einzeldaten von mehreren sendenden Prozessoren übertragen werden, keine klare Unterscheidung hinsichtlich der Datenempfangsreihenfolge, mit der diese Einzeldaten vom empfangenden Assoziativspeicher empfangen wurden. Als Ergebnis z. B. einer Berechnung durch andere Prozessoren werden vier Einzeldaten, nämlich A, B, C und D empfangen. Wenn vom Empfangsprozessor derjenige Datenwert empfangen wird, der unter diesen vier empfangenen Datenwerten den Maximalwert repräsentiert, wenn das Maximalwert-Auffindeprogramm vom Empfangsprozessor so konzipiert ist, dass die Daten A, B, C und D in dieser Reihenfolge vom empfangenden Assoziativspeicher aufeinanderfolgend empfangen werden, und wenn zwischen den neu empfangenen Daten und den zuvor empfangenen Daten ein Vergleich ausgeführt wird, um den Maximalwert aufzufinden, kann der Empfangsprozessor mit dem oben beschriebenen Maximalwert-Auffindeprogramm selbst dann nicht fortfahren, wenn der Datenwert B, C oder D vor dem Empfang des Datenwerts A vom Empfangspuffer empfangen wurde. Infolgedessen ist es erwünscht, den vierten Typ von Parallelcomputer so auszubilden, dass die oben beschriebenen Nachteile überwunden sind.
- Beim oben beschriebenen vierten Typ von Parallelcomputer werden als Kennungen für eine Gruppe von als Einheit zu verarbeitenden Daten sowohl eine Hauptkennung, die gemeinsam für die obige Datengruppe verwendet wird, als auch unter Kennungen bestimmt, die für die jeweiligen Daten spezifisch sind; wenn Daten von einem Prozessorelement an ein anderes übertragen werden, wird diese Kennung an diese Daten angefügt, und im Empfangsprozessorelement wird die Hauptkennung spezifiziert und Daten mit dieser spezifizierten Hauptkennung werden aus dem assoziativen Empfangsspeicher ausgelesen. Infolgedessen kann selbst dann, wenn alle Daten zur selben Datengruppe gehören, der Maximalwert-Auffindeprozess ausgeführt werden, ohne dass andere Daten empfangen werden.
- Beim oben beschriebenen dritten Typ von Parallelcomputer ist es, da der Assoziativspeicher als Empfangspuffer verwendet wird und dieser Assoziativspeicher einen speziellen Aufbau aufweist, allgemein schwierig, für diesen Assoziativspeicher eine große Speicherkapazität zu erzielen, und die Gesamtkosten eines derartigen Assoziativspeichers werden hoch. Demgemäß besteht ein Kostenproblem, wenn ein Empfangspuffer mit großer Speicherkapazität durch einen Assoziativspeicher aufgebaut wird. Außerdem steigen, wenn die Anzahl von Prozessorelementen erhöht werden muss, die sich ergebenden Kosten, die zum Verwenden des Assoziativspeichers aufzubringen sind, an.
- Daher ist es eine Aufgabe der Erfindung, einen Parallelcomputer mit einfacherem Aufbau, bei dem ein lokaler Speicher in jedem der Prozessorelemente vorhanden ist, unter der Voraussetzung zu schaffen, dass während der Datenübertragung zwischen den Prozessoren keine Interruptprozessoroperation erforderlich ist. Noch eine andere Aufgabe der Erfindung ist es, einen Parallelcomputer mit einfacherer Anordnung zu schaffen, bei dem eine Gruppe von Daten entsprechend der Reihenfolge beim Datenempfang, nicht der diesen Daten zugeordneten Reihenfolge, verarbeitet werden kann.
- Um die oben angegebene erste Aufgabe der Erfindung zu lösen, ist ein erfindungsgemäßer Parallelcomputer dadurch gekennzeichnet, dass er folgendes aufweist: ein Prozessorelement mit einem Speicherbereich, der aus einer Vielzahl von Empfangsdatenbereichen besteht, um von der Empfangseinrichtung empfangene Daten zwischenzuspeichern, und mit einem Speicherbereich (92, 8), der aus einer Vielzahl von Kennzeichenbereichen besteht, die für jeden der Empfangsdatenbereichen vorhanden sind, um ein Kennzeichen für gültige Daten oder ein Kennzeichen für ungültige Daten zu speichern, das anzeigt, dass die Daten im entsprechenden Empfangsdatenbereich gültig oder ungültig sind; einer Übertragungseinrichtung (5) zum Übertragen der zu übertragenden Daten unter Anfügung einer durch die Daten vorbestimmten Datenkennung; einer Empfangseinrichtung zum Einschreiben der Daten in die Vielzahl von Empfangsdatenbereichen auf die vom Netzwerk empfangenen Daten hin, und zum Einschreiben des Kennzeichens für gültige Daten in einen der Vielzahl von Empfangsdatenbereichen, wobei die Empfangseinrichtung parallel zum Prozessor betrieben wird; und einer Zugriffseinrichtung (38) zum Auslesen sowohl der Daten als auch des Kennzeichens aus einem der Empfangsdatenbereiche, wie durch die Datenkennung bestimmt, und aus den entsprechenden Kennzeichenbereichen, auf die Datenkennung hin, wie sie durch den Befehl spezifiziert wird, der vom Programm erzeugt wird, das den Datenempfang benötigt, und um das Kennzeichen und die Daten wiederholt aus dem Kennzeichenbereich und dem Empfangsdatenbereich auszulesen, bis ein Kennzeichen für gültige Daten aus dem Kennzeichenbereich ausgelesen wird, wenn das gelesene Kennzeichen einem Kennzeichen für ungültige Daten entspricht.
- Genauer gesagt, sind zum Lösen der oben angegebenen Aufgabe der Erfindung die folgenden Einrichtungen vorhanden: eine Gültigmacheinrichtung zum Einstellen des Inhalts des an das Wort angefügten Kennzeichens auf solche Weise, dass es "gültige Daten" anzeigt, wenn die Daten von einem beliebigen Prozessorelement eingeschrieben werden, für das Kennzeichen, wobei das Kennzeichen für das Wort im lokalen Speicher verwendet wird, und wobei das an das Wort angefügte Kennzeichen angibt, ob die Daten zu diesem Wort gültig oder ungültig sind; eine Kennzeichen-Zugriffseinrichtung zum Fortsetzen eines Untersuchungsvorgangs, bis der Inhalt des Kennzeichens "gültige Daten" anzeigt; und einen Ungültigmacheinrichtung zum Einstellen des Inhalts des an das Wort angefügten Kennzeichens auf solche Weise, dass es "ungültige Daten" anzeigt, wenn das Wort, aus dem das Wort speichernden Prozessorelement ausgelesen wird.
- Außerdem können die oben angegebenen Aufgaben der Erfindung durch eine andere bevorzugte Ausführungsform gelöst werden. Die obigen Aufgaben können durch einen Parallelcomputer mit einem lokalen Speicher und einer Vielzahl unabhängig voneinander betreibbarer Prozessorelemente gelöst werden, wobei ein Empfangsspeicher vorhanden ist, in den ein beliebiges Prozessorelement unter allen Prozessorelementen einschreiben kann, wobei ein Kennzeichenspeicher in bezug auf jeweilige Datenspeicherbereiche des Empfangsspeichers verwendet ist; wobei eine Gültigmacheinrichtung, eine Kennzeichen-Zugriffseinrichtung und eine Ungültigmacheinrichtung in bezug auf den Empfangsspeicher verwendet werden.
- Auch können die oben angegebenen Aufgaben der Erfindung durch einen Parallelcomputer gelöst werden, bei dem die an einen anderen Prozessor zu sendenden Daten hinsichtlich einer Adresse eines lokalen Speichers in einem Zielprozessor übertragen werden, wie aus einer zu diesen Daten gehörigen Hauptgruppe erzeugt, und auch mit einer Unterkennung zum Unterscheiden der zu sendenden Daten von anderen Daten in der Datengruppe; wobei die Daten in die Adresse des spezifizierten lokalen Speichers einsortiert werden und das entsprechende Kennzeichen gleichzeitig im Empfangsprozessor in den Gültigkeitszustand versetzt wird; wobei dann, wenn die Empfangsdaten aus dem örtlichen Speicher ausgelesen werden, die Adresse der Empfangsdatengruppe auf Grundlage der Hauptkennung für den Datenabrufzweck erzeugt wird, und wobei dann die gewünschten Empfangsdaten auf Grundlage dieser Adresse aus dem lokalen Speicher ausgelesen werden, und wobei ferner diese den Empfangsdaten entsprechende Unterkennung aus der gelesenen Adresse erzeugt wird und wobei schließlich die Empfangsdaten und die Unterkennung abgerufen werden.
- Darüber hinaus können zum Lösen der oben beschriebenen Aufgaben der Erfindung die miteinander in Beziehung stehenden Daten einer Gruppe in der Reihenfolge des Eintreffens der Datenwerte unabhängig von der Ausführung von Befehlen durch den Prozessor empfangen werden, und zwar angesichts der Ausführung des Programms im Prozessor auf der Datenempfangsseite. Außerdem können die oben angegebenen Aufgaben der Erfindung gelöst werden, da die Klarstellung, ob alle zueinander relevanten Datengruppen eingetroffen sind oder nicht, auf Grundlage der Zahl beim Datenempfang ausgeführt wird.
- Bei der ersten bevorzugten Ausführungsform zeigt, wenn eines der Prozessorelemente die Daten in das Wort innerhalb des lokalen Speichers eines anderen Prozessorelements einschreibt, der Inhalt des durch die oben angegebene Gültigmacheinrichtung an das Wort angefügten Kennzeichens an, dass "die Daten gültig sind". Auf ähnliche Weise zeigt, wenn ein Prozessorelement gemäß dem zweiten bevorzugten Ausführungsbeispiel die Daten in das Wort im Empfangsspeicher des anderen Prozessorelements einschreibt, der Inhalt des durch die obige Gültigmacheinrichtung an das Wort angefügten Kennzeichens an, dass "die Daten gültig sind". Das Prozessorelement zum Auslesen dieser Daten wartet andererseits auf einen solchen Zustand, bei dem der Inhalt des durch die oben angegebene Kennzeichenzugriffseinrichtung an das Wort angefügten Kennzeichens anzeigt, dass "die Daten gültig sind", bevor das Wort ausgelesen wird und dann liest es die im Wort gespeicherten Daten aus. Demgemäß zeigt der Inhalt des Kennzeichens durch die oben beschriebene Ungültigmacheinrichtung an, dass "die Daten ungültig sind".
- Mit der oben beschriebenen Schaltungsanordnung kann die Datenübertragung zwischen den Prozessorelementen korrekt und wirkungsvoll ausgeführt werden.
- Ferner kann unter Verwendung sowohl der Hauptkennung als auch der Unterkennung der folgende Vorteil der bevorzugten Ausführungsform erzielt werden, wenn z. B. die Austauschregel beim Prozess des Empfangsprozessors erfüllt werden kann. Das heißt, dass die zum Ausführen dieses Prozesses erforderlichen Daten adressenmäßig unter Ausnutzung der Hauptkennung erzeugt werden, wobei die Daten, die im lokalen Speicher in der Reihenfolge der Dateneintreffvorgänge eingetroffen sind, zusammen mit der Unterkennung abgerufen werden, so dass die Ruhezeit des Empfangsprozessors minimiert werden kann.
- Außerdem wird der Datenempfang im Prozessor unabhängig von der Befehlsausführung durch den Prozessor ausgeführt, mit dem Ergebnis, dass die Anzahl der Befehlsausführungen zum Empfangen der Daten verringert werden kann. Auch kann, da die Klarstellung, dass der Empfang einer Vielzahl von Daten abgeschlossen ist, entsprechend der Anzahl der Daten ausgeführt wird, die Anzahl der zur Klarstellung des Datenempfangs erforderlichen Befehlsausführungen im Vergleich mit dem Fall verringert werden, in dem die Datenempfangsklarstellung für jeden Datenwert ausgeführt wird.
- Für ein besseres Verständnis der Erfindung wird auf die folgenden Beschreibungen in Verbindung mit den beigefügten Zeichnungen Bezug genommen.
- Fig. 1 ist ein schematisches Blockdiagramm der Gesamtschaltungsanordnung eines Parallelcomputers gemäß einem ersten bevorzugten Ausführungsbeispiel der Erfindung;
- Fig. 2 ist ein detailliertes Schaltbild des Prozessors 3, wie er im in Fig. 1 dargestellten Parallelcomputer verwendet ist;
- Fig. 3 ist ein schematisches Schaltbild der Speicherzugriffsschaltung 38, wie sie im in Fig. 2 dargestellten Prozessor verwendet ist;
- Fig. 4 veranschaulicht das Format eines Befehls EMPFANGEN, wie er im in Fig. 1 dargestellten Prozessor ausgeführt wird;
- Fig. 5 veranschaulicht das Format eines Befehls SENDEN, wie er im in Fig. 1 dargestellten Prozessor ausgeführt wird;
- Fig. 6 ist ein schematisches Blockdiagramm der Gesamtschaltungsanordnung eines Parallelcomputers gemäß einem zweiten bevorzugten Ausführungsbeispiel der Erfindung;
- Fig. 7 ist ein detailliertes Schaltbild des Prozessors 3A, wie er im in Fig. 6 dargestellten Parallelcomputer verwendet ist;
- Fig. 8 ist ein schematisches Blockdiagramm eines Parallelcomputers gemäß einem dritten bevorzugten Ausführungsbeispiel der Erfindung;
- Fig. 9 ist ein detailliertes Schaltbild des Prozessors, wie er im in Fig. 8 dargestellten Parallelcomputer verwendet ist;
- Fig. 10 ist ein schematisches Blockdiagramm der Adressenumsetzschaltung, wie sie im in Fig. 8 dargestellten Parallelcomputer verwendet ist;
- Fig. 11 ist ein schematisches Blockdiagramm einer anderen Adressenumsetzschaltung (110), wie sie im Parallelcomputer gemäß dem dritten bevorzugten Ausführungsbeispiel verwendet ist;
- Fig. 12 zeigt die Beziehung zwischen zwei Speicherräumen, wie sie im Parallelcomputer gemäß dem dritten bevorzugten Ausführungsbeispiel verwendet werden;
- Fig. 13 ist ein schematisches Blockdiagramm der Gesamtschaltungsanordnung eines anderen Parallelcomputers gemäß einem dritten bevorzugten Ausführungsbeispiel;
- Fig. 14 ist ein schematisches Blockdiagramm der Adressenumsetzschaltung (104), wie sie im Parallelcomputer gemäß dem vierten bevorzugten Ausführungsbeispiel verwendet ist;
- Fig. 15 ist ein schematisches Blockdiagramm einer anderen Adressenumsetzschaltung, wie sie im Parallelcomputer gemäß dem vierten bevorzugten Ausführungsbeispiel verwendet ist;
- Fig. 16 veranschaulicht die Beziehung zwischen zwei Speicherräumen, wie sie im Parallelcomputer gemäß dem vierten bevorzugten Ausführungsbeispiel verwendet werden;
- Fig. 17 ist ein schematisches Blockdiagramm der Gesamtschaltungsanordnung eines Parallelcomputers gemäß einem fünften bevorzugten Ausführungsbeispiel der Erfindung;
- Fig. 18 ist ein detailliertes Schaltbild des Prozessors (3d), wie er im Parallelcomputer gemäß dem fünften bevorzugten Ausführungsbeispiel verwendet ist;
- Fig. 19 ist ein Schaltbild der Adressenerzeugungsschaltung (1306) wie sie Parallelcomputer gemäß dem fünften bevorzugten Ausführungsbeispiel verwendet ist;
- Fig. 20 ist ein Schaltbild der Speicherzugriffsschaltung (1302), wie sie im in Fig. 18 dargestellten Prozessor verwendet ist;
- Fig. 21 zeigt ein Befehlsformat eines Befehls V EMPFANGEN, wie im Parallelcomputer gemäß dem fünften bevorzugten Ausführungsbeispiel verwendet;
- Fig. 22 veranschaulicht ein Format eines Befehls VSENDEN, wie im Parallelcomputer gemäß dem fünften bevorzugten Ausführungsbeispiel verwendet;
- Fig. 23A repräsentiert das Format eines Befehls VSENDENL;
- Fig. 23B kennzeichnet das Format eines Befehls VEMPFANGENL;
- Fig. 24 ist ein schematisches Schaltbild eines Parallelprozessors gemäß einem sechsten bevorzugten Ausführungsbeispiel der Erfindung;
- Fig. 25 ist eine detaillierte Schaltungsanordnung der in Fig. 24 dargestellten Adressenerzeugungseinheit;
- Fig. 26 ist eine detaillierte Schaltungsanordnung der in Fig. 24 dargestellten Empfangssteuerung;
- Fig. 27 ist eine detaillierte Schaltungsanordnung der in Fig. 24 dargestellten Vektorprozesseinheit;
- Fig. 28 ist ein schematisches Blockdiagramm eines Parallelprozessors gemäß einem siebten bevorzugten Ausführungsbeispiel der Erfindung;
- Fig. 29 ist ein schematisches Blockdiagramm eines Parallelprozessors gemäß einem achten bevorzugten Ausführungsbeispiel der Erfindung;
- Fig. 30 ist eine detaillierte Schaltungsanordnung der in Fig. 29 dargestellten Adressenerzeugungseinheit;
- Fig. 31 ist eine detaillierte Schaltungsanordnung der in Fig. 29 dargestellten Datenempfangseinheit;
- Fig. 32 ist ein schematisches Blockdiagramm eines Parallelprozessors gemäß einem neunten bevorzugten Ausführungsbeispiel der Erfindung und
- Fig. 33 ist eine detaillierte Schaltungsanordnung der in Fig. 32 dargestellten Zählerschaltung.
- Fig. 1 ist ein schematisches Blockdiagramm eines Parallelcomputers gemäß einem ersten bevorzugten Ausführungsbeispiel der Erfindung. In Fig. 1 kennzeichnen die Bezugszahlen 1-1 bis 1-n "n" Prozessorelemente, die unabhängig voneinander betrieben werden können. Die Bezugszahl 2 kennzeichnet ein Netzwerk, das ein Datenübertragungsbefehl empfängt, wie er von einem beliebigen Prozessorelement erzeugt wird, das aus den Prozessorelementen 1-1 bis 1-n ausgewählt ist und das Daten an ein spezifiziertes Prozessorelement überträgt.
- Nun werden Schaltungsanordnungen der Prozessorelemente 1-1 bis 1-n beschrieben. Da diese Prozessorelemente 1-1 bis 1-n dieselben Schaltungsanordnungen aufweisen, ist in Fig. 1 der Einfachheit halber nur die interne Schaltungsanordnung des Prozessorelements 1-1 dargestellt. Das Prozessorelement 1-1 besteht aus einem Prozessor 3, einer Empfangseinheit 4, einer Sendeeinheit 5 und einem lokalen Speicher 6. Gemäß dem Merkmal des ersten bevorzugten Ausführungsbeispiels wird der lokale Speicher dazu verwendet, ein Programm und auch empfangene Daten (Empfangsdaten) einzuspeichern. Genauer gesagt, besteht das Kennzeichen des in Fig. 1 dargestellten Parallelcomputers darin, dass dann, wenn empfangene Daten in den lokalen Speicher eingespeichert werden, das die gültigen Daten kennzeichnende Kennzeichen ebenfalls eingespeichert wird und der Prozessor 3 auf Grundlage des Werts des zu diesen Daten hinzugefügten Kennzeichens beurteilt, ob die gewünschten Daten in den lokalen Speicher 6 eingespeichert wurden oder nicht. In Fig. 2 ist ein detailliertes Schaltbild des Prozessors 3 dargestellt. Die Fig. 2 bezeichnet die Bezugszahl 30 eine Befehlsabrufschaltung, die Bezugszahl 32 kennzeichnet eine ALU, die Bezugszahl 33 repräsentiert eine Kennzeichen-Ungültigmachschaltung, die Bezugszahl 34 entspricht einer Universalregistergruppe, und die Bezugszahl 35 kennzeichnet einen Programmzähler. Auch bezeichnet die Bezugszahl 36 ein Befehlsregister, das in ein Feld 36-1 zum Einspeichern eines Befehlscodes sowie drei Felder 36-2, 36-3 und 36-4 zum Einspeichern eines Operanden unterteilt ist. Die Bezugszahl 37 kennzeichnet einen Befehlsdecodiercontroller zum Steuern der Anweisungsdecodieroperation und deren Ausführung. Die Bezugszahl 38 kennzeichnet eine Speicherzugriffsschaltung, die dazu verwendet wird, einen Speicherzugriffsbefehl wie den Befehl EMPFANGEN (wird später erörtert) auszuführen. Obwohl der Prozessor 3 ein Computer vom sogenannten "Neumanntyp" ist, kann dieser Prozessor 3 zwei neu eingetragene Befehle zusätzlich zum normalen Befehlssatz eines Computers vom Neumanntyp ausführen (Speicher lesen, Speicher schreiben, Berechnungsbefehl usw.).
- Im in Fig. 1 dargestellten lokalen Speicher 6 wird eine Adresse als Einheit eines Worts angefügt, um Daten mit Wortlänge einzuspeichern. Der lokale Speicher 6 besteht aus einer Vielzahl von Speicherbereichen. Jeder der Speicherbereiche besteht aus einer Dateneinheit zum Einspeichern der Daten mit der Längeneinheit eines sogenannten "Worts" und zusätzlich aus einer Kennzeicheneinheit zum Einspeichern eines 1-Bit-Kennzeichens. Das Kennzeichen der jeweiligen Speicherbereiche zeigt an, ob in diese jeweiligen Speicherbereiche gültige Daten eingeschrieben wurden oder nicht, und demgemäß hat es den Wert 1 oder Wert 0. Im lokalen Speicher 6 sind sowohl das vom Prozessor 3 auszuführende Programm als auch die bei diesem Programm verwendeten Daten eingespeichert. Im lokalen Speicher 6 sind folgende Elemente vorhanden: ein erster Eingangsport zum Einstellen einer Leitung L3 als Eingangsleitung für eine Adresse, einer Leitung L4 als Eingangsleitung für ein Anforderungssignal für Daten und für einen Datenschreibbefehl, und einer Leitung L5 als Eingangsleitung für ein Befehlssignal zum Kennzeichen und eines Kennzeichen-Schreibbefehls; ein zweiter Eingangsport zum Einstellen einer Leitung L6 als Eingangsleitung für die Adresse sowie einer Leitung L7 als Eingangsleitung für ein Anforderungssignal zum Kennzeichen und für einen Kennzeichen-Schreibbefehl; ein dritter Eingangsport zum Einstellen einer Leitung L8 als Eingangsleitung für ein Anforderungssignal zur Adresse, für ein Kennzeichen und für einen Datenauslesebefehl sowie einer Leitung L9 als Eingangsleitung für ein Anforderungssignal; und ein vierter Eingangsport zum Einstellen einer Leitung L12 als Eingangsleitung für ein Anforderungssignai zur Adresse und für einen Datenauslesebefehl sowie einer Leitung L13 als Ausgangsleitung für Daten. Im Fall, dass mehr als zwei Anforderungen vom ersten, zweiten und dritten Port gleichzeitig eingetroffen sind, stellt der lokale Speicher 6 diese Anforderungen geeignet ein und er reagiert auf die eingestellten Anforderungen.
- Die Sendeeinheit 5 überträgt ein die in den lokalen Speicher einzuschreibenden Daten enthaltendes Paket, wenn diese Daten von jedem der Prozessorelemente an den lokalen Speicher eines anderen Prozessorelements geliefert werden. Diese Sendeeinheit 5 enthält ein Senderegister 50. Das Senderegister 50 ist in Felder 50-1, 50-2 und 50-3 unterteilt. Diese Felder werden dazu verwendet, ein Ziel (Nummer eines Prozessorelements), eine als Datenkennung verwendete Adresse bzw. Daten einzuspeichern. Es sei darauf hingewiesen, dass die Adresse anzeigt, dass Daten in den lokalen Speicher innerhalb des Zielprozessorelements eingespeichert sind.
- Die Empfangseinheit 4 reagiert auf eine Einrichtung zum Empfangen der Daten wie auch auf die über das Netzwerk 2 und die Leitung L2 vom anderen Prozessorelement übertragene Adresse, und um die empfangenen Daten in den Speicherbereich des lokalen Speichers 6 einzuspeichern, der durch die empfangene Adresse spezifiziert ist. Die Empfangseinheit 4 enthält ein Empfangsregister 40. Die interne Anordnung dieses Empfangsregisters 40 ist in zwei Felder 40-1 und 40-2 unterteilt. Jedes der Felder speichert die Adresse bzw. die Daten, wie sie vom Netzwerk 2 geliefert wurden. Die Bezugszahl 41 kennzeichnet eine Schreibsteuerung, die sowohl ein Kennzeichen mit dem Wert 1 als auch ein Anforderungssignal für den Kennzeichen-Schreibbefehl an die Leitung L5 ausgibt, wenn die Daten vom Netzwerk 2 in das Empfangsregister 40 geschrieben werden.
- Beim Prozessor 3 innerhalb der jeweiligen Prozessorelemente gibt die Befehlsabrufschaltung 30 den Inhalt des Programmzählers PC 35 und das Anforderungssignal des Datenauslesebefehls von der Leitung L12 in den vierten Eingangsport des lokalen Speichers 6 aus. Der durch das Programm spezifizierte Befehl wird aus dem lokalen Speicher 6 ausgelesen und über die Leitung L13 in das Befehlsregister 36 eingeschrieben. Der Befehlsdecodiercontroller 37 decodiert den in das Feld 36-1 eingeschriebenen Befehlscode unter den Befehlen, wie sie in das Befehlsregister 36 eingeschrieben wurden, und er verteilt das Signal zum Ausführen der durch diesen Befehl spezifizierten Operation an die interne Schaltung des Prozessors 3, um die ALU 32, die Universalregistergruppe 34 usw. zu betreiben. Wenn die durch den Befehl spezifizierte Operation ausgeführt ist, aktualisiert die Befehlsdecodiersteuerung 37 den Wert des Programmzählers 35 von der Leitung L302. Das durch die jeweiligen Prozessorelemente zu sendende Paket wird durch diesen Prozessor 3 erzeugt und dann an die Sendeeinheit 5 geliefert. Auch werden die von einem anderen Prozessorelement im lokalen Speicher 6 empfangenen Daten durch diesen Prozessor 3 verarbeitet. Die oben beschriebene Reihenfolge von Computeroperationen wird wiederholt ausgeführt.
- Wenn das Paket in das Senderegister 50 innerhalb der Sendeeinheit 5 eingetragen ist, überträgt das Netzwerk 2 die Adresse und die Daten, wie sie in den Feldern 50-2 und 50-3 der Empfangseinheit 4 abgespeichert sind, die im Zielprozessorelement 1-i (i = 1, 2, ... oder "n") vorhanden ist, wie durch dieses Feld 50-1 spezifiziert.
- Nun erfolgt eine Beschreibung zu einer detaillierten Operation des Parallelcomputers, wozu auch die neu eingeführten Befehle "Befehl SENDEN" und "Befehl EMPFANGEN" Bezug genommen wird. Dieser Befehl SENDEN entspricht einem Befehl, durch den die Daten in den lokalen Speicher eingeschrieben werden, die im Prozessorelement abgespeichert sind, das diesen Befehl ausgeführt hat. Fig. 4 veranschaulicht das Format des Befehls SENDEN. Dieser Befehl SENDEN verfügt über die folgenden drei Operanden:
- 1. Ziel (Nummer des Zielprozessorelements)
- 2. Adresse des lokalen Speichers (Adresse eines Sendedaten einspeichernden Bereichs innerhalb des lokalen Speichers für das Zielprozessorelement)
- 3. Sendedaten
- Jeder dieser Operanden wird in das durch jeden der zwei Befehle spezifizierte Universalregister für die Felder R1, R2 und R3 eingespeichert. Dieser Befehl beinhaltet, dass die durch den dritten Operanden spezifizierten Daten unter der durch den zweiten Operanden spezifizierten Adresse des lokalen Speichers des durch den ersten Operanden spezifizierten Prozessorelements eingeschrieben werden. Wenn dieser Befehl ausgeführt wird, wird der Parallelcomputer gemäß dem ersten bevorzugten Ausführungsbeispiel wie folgt betrieben.
- Als erstes überträgt der Befehlsdecodiercontroller 37 des Prozessors 3 die durch den Befehl angewiesenen, Registernummern R1 bis R3 über die Leitungen L305 und L307 an die Universalregistergruppe 34, wenn dieser Befehl SENDEN in das Befehlsregister 36 eingeschrieben ist. Im Ergebnis werden das Ziel, die Adresse und die Daten über die Leitung L309 ausgelesen und als Paket über die Leitung L11 zusammen mit dem durch den Befehlsdecodiercontroller 37 erzeugten Schreibbefehlssignal "W" als Paket in die Felder 50-1, 50-2 und 50-3 des Senderegisters 50 eingetragen. Die Operationen des Befehls SENDEN werden auf die oben beschriebene Weise abgeschlossen. Die folgende Operation wird wie folgt ausgeführt.
- Wenn das Paket in das Senderegister 50 eingetragen wird, werden die Inhalte der Register 50-2 und 50-3 in das Register 40 in der Empfangseinheit 4 des durch das Feld 50-1 des Pakets spezifierten Prozessorelements durch den Betrieb der Sendeeinheit 5 und des Netzwerks 2, wie oben beschrieben, eingetragen. Im Ergebnis erzeugt die Schreibsteuerung der Sendeeinheit 4 des Prozessorelements, in das die Daten eingetragen wurden, das Kennzeichen "T" mit dem Wert "1" sowie das Schreibsignal, und sie schreibt die Daten des Felds 40- 2 in die Dateneinheit des durch die Adresse im Feld 40-1 spezifizierten Speicherbereichs vom ersten Ort des lokalen Speichers 6 ein, und schließlich schreibt sie den Wert 1 (d.h. den Wert, der anzeigt, dass der Inhalt dieses Worts gültig ist) in die Kennzeicheneinheit dieses Worts ein.
- Wie bereits beschrieben, wird beim ersten bevorzugten Ausführungsbeispiel der Erfindung dann, wenn Daten von einem Prozessorelement an ein anderes geliefert werden, vorab eine Ermittlung ausgeführt, ob diese Daten in einen vorbestimmten Speicherbereich des lokalen Speichers des Prozessorelements eingespeichert werden sollten, und die von der Empfangseinheit 4 empfangenen Daten werden direkt in den lokalen Speicher eingeschrieben. Infolgedessen wird, während die Daten von einem Prozessorelement an ein anderes übertragen werden, keine Interruptoperation im Prozessorelement am Datenempfangsende ausgeführt.
- Nun wird der neu eingestellte Befehl "Befehl EMPFANGEN" beschrieben. Dieser Befehl EMPFANGEN ist ein Befehl zum Lesen der Daten aus dem lokalen Speicher 6 des Prozessorelements, in dem dieser Befehl EMPFANGEN ausgeführt wird. Fig. 5 veranschaulicht das Format des Befehls EMPFANGEN. Dieser Befehl EMPFANGEN hat zwei Operanden:
- 1. Adresse des lokalen Speichers, wie zur Datenkennung verwendet (Adresse der Speicherposition für empfangene Daten, die aus dem lokalen Speicher zu lesen sind)
- 2. Registernummer (Nummer des Universalregisters, in das diese Daten eingespeichert werden sollen).
- Jeder dieser Operanden wurde in das Universalregister eingespeichert, wie durch die Felder R1 und R2 dieses Befehls spezifiziert. Dieser Befehl beinhaltet, dass die gültigen Daten aus der Adresse des durch den ersten Operanden spezifizierten lokalen Speichers ausgelesen werden und diese gelesenen Daten in das durch den zweiten Operanden spezifizierte Universalregister eingespeichert werden. Wenn dieser Befehl ausgeführt wird, wird der Parallelcomputer gemäß dem bevorzugten Ausführungsbeispiel wie folgt beschrieben.
- Als erstes gibt, wenn dieser Befehl in das Befehlsregister 36 einzuschreiben ist, der Befehlsdecodiercontroller 37 des Prozessors 3 die durch diesen Befehl spezifizierten Registernummern R1 und R2 über die jeweiligen Leitungen L305 und L306 an die Universalregistergruppe 34 aus, und er gibt auch das Signal, das für die Ausführung des Befehls EMPFANGEN repräsentativ ist, an die Leitung L303 aus, um die Speicherzugriffsschaltung 38 zu initialisieren, bis die Adresse des lokalen Speichers 6 aus dem Universalregister, bis die Adresse des lokalen Speichers 6 aus dem Universalregister mit der Nr. R1 innerhalb der Universalregistergruppe 39 ausgelesen wird.
- Wie es in Fig. 3 dargestellt ist, wird in der Speicherzugriffsschaltung 38 das Flipflop 399 durch dieses Signal L303 gesetzt. Die Bezugszahl 401 bezeichnet eine Schaltung zum Erzeugen einer Ausleseforderung, die diese Ausleseanforderung wiederholt synchron mit dem Betrieb des lokalen Speichers 6 erzeugt. Wenn das Flipflop 399 gesetzt ist, wird das UND-Gatter 400 geöffnet und die Ausleseanforderung R wird von der Schaltung 401 auf die Leitung 301 ausgegeben. Dieses Adressensignal und das Auslese-Anforderungssignal werden über die Leitung L8 an den dritten Port des lokalen Speichers 6 übertragen. Infolgedessen liest der lokale Speicher 6 auf dieses Auslese-Anforderungssignal hin, sowohl die Daten als auch das Kennzeichen aus dem durch diese Adresse spezifizierten Speicherbereich aus und gibt sie auf die Leitungen L9 bzw. L10 aus. Die empfangenen Daten, die auf die Leitung L10 ausgegeben wurden, werden in das durch den zweiten Operanden spezifizierte Universalregister eingetragen. Obwohl das Kennzeichen T, das auf die Leitung L9 ausgelesen wurde, in die Speicherzugriffsschaltung 38 eingegeben wird, wird, wenn dieser Wert "0" entspricht, das Flipflop 399 (siehe Fig. 3) in der Speicheradressenschaltung 38 nicht zurückgesetzt. Von der Ausleseanforderung-Erzeugungsschaltung 401 (siehe Fig. 3) wird erneut das Speicherauslese-Anforderungssignal auf der Leitung L301 erzeugt, um den oben angegebenen Speicherzugriff zu wiederholen. Wenn das auf der Leitung L9 ausgegebene Kennzeichen den Wert "1" hat, wird, da der Wert "1" anzeigt, dass die Befehlsdecodieroperation von der Leitung L303 in die UND-Schaltung 300 innerhalb der Ungültigmachschaltung 33 eingegeben wurde, die Schreibanforderung von der UND-Schaltung 300 ausgegeben. Auf der Leitung L7 wird dauernd der Wert "0" ausgegeben, der dazu verwendet wird, als Ungültigkeits-Kennzeichen geschrieben zu werden. Sowohl die Adresse des lokalen Speichers, die auf die Leitung L6 ausgegeben wurde, als auch der Wert "0" des Ungültigmach-Kennzeichens auf der Leitung L7 als auch die von der UND-Schaltung 300 gelieferte Schreibanforderung werden an den zweiten Eingangsport ausgegeben, wodurch das Kennzeichen des durch diese Adresse spezifizierten Speicherbereichs "0" wird (der Wert zeigt an, dass die Daten ungültig sind). Wenn das Kennzeichen auf der Leitung L91 wird, wird das Flipflop 399 (Fig. 3) zurückgesetzt und das Kennzeichen T wird über die Leitung L302 an den Programmzähler 35 gegeben, um den Inhalt dieses Programmzählers 35 in Übereinstimmung mit der oben beschriebenen Operation in der Speicherzugriffsschaltung 38 zu aktualisieren. Durch die oben beschriebene Operation wird der Befehl EMPFANGEN ausgeführt.
- Gemäß den oben beschriebenen Prozessoperationen werden die empfangenen, in das Universalregister eingelesenen Daten durch den Prozessor 3 verarbeitet. Wenn z. B. der Berechnungsbefehl verwendet wird, wird die Berechnung in der Recheneinheit 32 hinsichtlich dieser Daten ausgeführt. Wenn entweder das Ergebnis dieser Rechenoperation oder die ursprünglich empfangenen Daten in den lokalen Speicher 6 eingeschrieben werden, wird der bekannte Einspeicherungsbefehl ausgeführt. Der Befehlsdecodiercontroller 37 ist so konzipiert, dass er das Speicherschreibsignal auf der Leitung L308 erzeugt, wenn er diesen Befehl decodiert. Dabei werden die zu schreibenden Daten aus dem ersten, durch diesen Befehl spezifizierten Universalregister auf die Leitung L315 ausgelesen und die zu schreibende Speicheradresse wird vom zweiten Universalregister auf die Leitung L10 ausgegeben. Das oben beschriebene Schreibsignal, die Adresse und die Daten werden über die Leitung L10 an den lokalen Speicher 6 geliefert und in diesen eingeschrieben. Auch wird der Speicherlesebefehl im Programm auf ähnliche Weise wie beim herkömmlichen Parallelcomputer ausgeführt. Wenn der Befehlsdecodiercontroller 37 diesen Befehl decodiert, wird die Leseanforderung auf die Leitung L304 ausgegeben. Andererseits wird die Speicheradresse vom durch diesen Befehl spezifizierten ersten Universalregister auf die Leitung L8 ausgegeben. Die Leseanforderung wird zusammen mit dieser Adresse über das ODER-Gatter 31 an den lokalen Speicher 6 übertragen. Wenn die Daten aus diesem lokalen Speicher ausgelesen werden, werden die gelesenen Daten in das durch diesen Befehl spezifizierte zweite Universalregister eingespeichert. Wie oben beschrieben, wird das Kennzeichen während sowohl während dem normalen Einspeicherungsbefehl als auch während dem Speicherlesebefehl nicht berücksichtigt.
- Wie zuvor beschrieben, sendet, wenn jedes der den Parallelcomputer gemäß dem ersten bevorzugten Ausführungsbeispiel bildenden Prozessorelemente eine Datenübertragung von einem Prozessorelement an ein anderes Prozessorelement benötigt, und zwar hinsichtlich Daten, wie sie zur Datenübertragung innerhalb des lokalen Speichers des Prozessorelements auf der Datenempfangsseite verwendet werden (diese Daten werden entweder durch einen Programmierer oder einen Compiler vorbestimmt), das Prozessorelement auf der Datensendeseite auf den oben beschriebenen Befehl SENDEN hin die Daten an den lokalen Speicher des Prozessorelements auf der Datenempfangsseite. Diese Operation wird durch Programmieren des Prozessorelements auf der Datensendeseite ausgeführt. Auch wird das Prozessorelement auf der Datenempfangsseite so programmiert, dass dieses Prozessorelement diese Daten auf den Befehl EMPFANGEN hin liest. Bei dieser Schaltungsanordnung liest das Datenprozessorelement auf der Datenempfangsseite nie Daten, bevor nicht das Prozessorelement auf der Datensendeseite die Daten geschrieben hat, so dass die Bezugsreihenfolge der Daten gewährleistet ist.
- Wie bereits beschrieben, ist beim Parallelcomputer gemäß dem ersten bevorzugten Ausführungsbeispiel, wenn Daten von einem Prozessorelement an ein anderes Prozessorelement geliefert werden, im anderen Prozessorelement keine Interruptoperation erforderlich. Da der lokale Speicher 6 zum Speichern des Programms zum Zwischenspeichern der empfangenen Daten verwendet wird, ist kein spezieller Speicher wie ein Assoziativspeicher erforderlich.
- Beim Parallelcomputer gemäß dem ersten bevorzugten Ausführungsbeispiel der Erfindung greift, obwohl dann, wenn der Befehl ENPFANGEN ausgeführt wird und der Kennzeichenwert "0" ist, die Speicherzugriffsschaltung wiederholt auf den Speicher zu, um den Wert des Kennzeichens zu prüfen, wodurch es möglich ist, dass der Wert des Kennzeichens gelesen werden kann, um die Befehlsausführung zu erzielen, wenn der Befehl EMPFANGEN ausgeführt wird, wobei die sich ergebenden Werte aus dieser Befehlsausführung in entweder ein Flagregister oder ein Bedingungscoderegister eingetragen werden können, und wobei der Befehl EMPFANGEN wiederholt ausgeführt werden kann, bis der Kennzeichenwert 1 wird, was mittels eines auf den Befehl EMPFANGEN folgenden Bedingungsverzweigungsbefehls erfolgt.
- Fig. 6 veranschaulicht einen Parallelcomputer gemäß dem zweiten bevorzugten Ausführungsbeispiel Das zweite bevorzugte Ausführungsbeispiel verfügt im Vergleich mit dem ersten bevorzugten Ausführungsbeispiel über das Merkmal, dass ein Empfangsspeicher 8 zum Zwischenspeichern der empfangenen Daten gesondert zusätzlich zum lokalen Speicher 6A verwendet ist. Dieselben Bezugszahlen, wie sie in Fig. 6 verwendet sind, kennzeichnen dieselben oder ähnliche Schaltungsanordnungen, wie sie in Fig. 1 dargestellt sind.
- In Fig. 6 ist zwar der lokale Speicher zum Einspeichern des Programms und der in diesem verwendeten Daten ähnlich dem in Fig. 1 dargestellten lokalen Speicher 6, jedoch existiert kein Bereich zum Einspeichern empfangener Daten. Im Ergebnis ist kein Kennzeichenbereich zum Einspeichern dieses Zwecks verwendet, was von der Funktion des in Fig. 1 dargestellten lokalen Speichers 6 verschieden ist. Eine detaillierte Schaltung des Prozessors 3A ist in Fig. 7 dargestellt. Die Funktion des Prozessors 3A unterscheidet sich von der des in Fig. 1 dargestellten Prozessors 3 nur dadurch, dass das Lesen empfangener Daten in den Empfangsspeicher 8 ausgeführt wird. In der Schaltung von Fig. 6 besteht der Empfangsspeicher 8 aus einer Vielzahl von Speicherbereichen zum Einspeichern von Daten mit der Länge eines Worts, zu denen eine Adresse als eine Worteinheit hinzugefügt ist. Im Speicherbereich existiert eine Dateneinheit zum Einspeichern der Daten sowie zusätzlich eine Kennzeicheneinheit zum Einspeichern eines Kennzeichens von einem Bit. Der Empfangsspeicher 8 umfasst einen ersten Port zum Einstellen einer Leitung L3 als Adresseneingangsleitung, einer Leitung L4 als Eingangsleitung für Anforderungssignale für Daten und einen Datenschreibbefehl sowie einer Leitung L5 als Eingangsleitung für Anforderungssignale für das Kennzeichen und einen Kennzeichen-Schreibbefehl; einen zweiten Port zum Einstellen einer Leitung L6 als Adresseneingangsleitung und einer Leitung L7 als Eingangsleitung für Anforderungssignale für das Kennzeichen und den Kennzeichen-Schreibbefehl; und einen dritten Port zum Einstellen einer Leitung L8 als Eingangsleitung für Anforderungssignale für die Adresse, das Kennzeichen und den Datenlesebefehl, einer Leitung L9 als Kennzeichen-Ausgangsleitung sowie einer Leitung L10 als Ausgangsleitung für Daten. Wenn mehr als zwei Anforderungen von den jeweiligen Ports eingegangen sind, stellt der Empfangsspeicher 8 diese Anforderungen geeignet ein und reagiert geeignet auf sie. Der lokale Speicher 6A umfasst einen ersten Port zum Einstellen einer Leitung L15 als Eingangsleitung für Anforderungssignale für die Adresse und den Datenlesebefehl sowie einer Leitung L14 als Eingangsleitung für ein Anforderungssignal für den Datenschreibbefehl sowie als Eingangsleitung für Daten; und einen zweiten Port zum Einstellen einer Leitung L12 als Eingangsleitung für Anforderungssignale für die Adresse und den Datenlesebefehl sowie einer Leitung L13 als Datenausgangsleitung. Wenn mehr als zwei Eingangssignale von jedem dieser Ports eingetroffen sind, stellt der lokale Speicher 9 diese Eingangssignale geeignet ein und reagiert geeignet auf sie.
- Die Funktionen dieser Empfangseinheit 4 sind ähnlich denjenigen der in Fig. 1 dargestellten Empfangseinheit 4, mit der Ausnahme, dass die empfangenen Daten nicht in den lokalen Speicher 6A sondern dem Empfangsspeicher 8 eingeschrieben werden.
- Die Operationen der jeweiligen Prozessorelemente 1-1 bis l-n sind mit Ausnahme der folgenden Operationen dieselben wie diejenigen der in Fig. 1 dargestellten Prozessorelemente.
- Ein im Parallelcomputer gemäß dem zweiten bevorzugten Ausführungsbeispiel verwendeter Befehl SENDEN hat dasselbe Format (Fig. 4) wie der Befehl SENDEN gemäß dem ersten bevorzugten Ausführungsbeispiel Jedoch wird im Universalregister mit der Universalregisternummer R2 die Adresse des Empfangsspeichers 8 des Prozessorelements, nicht die Adresse des lokalen Speichers des Prozessorelements auf der Datensendeseite vorab eingespeichert. Diese Adresse kennzeichnet einen Bereich, in den die Sendedaten eingespeichert werden sollten. Eine Schreibsteuerung 41 der Empfangseinheit 4 erzeugt ein Kennzeichen mit dem Wert 1 sowie eine Schreibanforderung, und sowohl das Kennzeichen als auch die Anforderung sowie die Adresse 40-1 innerhalb des Empfangsregisters 40 werden an den ersten Port des Empfangsspeichers 8 geliefert, wobei an dieser Position das Kennzeichen und die Empfangsdaten eingeschrieben werden.
- Obwohl der beim zweiten bevorzugten Ausführungsbeispiel verwendete Befehl EMPFANGEN dasselbe Format wie der beim ersten Ausführungsbeispiel verwendete aufweist, existiert ein Unterschied dahingehend, dass die Adresse des durch die Registernummer R2 spezifizierten Universalregisters der Adresse an der Speicherposition innerhalb des Empfangsspeichers 8 entspricht. Wenn dieser Befehl ausgeführt wird, unterscheidet sich der Betrieb des Parallelcomputers gemäß dem zweiten bevorzugten Ausführungsbeispiel von dem von Fig. 1 dahingehend, dass die Datenausleseoperation hinsichtlich dem Empfangsspeichers 8 initialsiert wird.
- Das heißt, dass der Befehlsdecodiercontroller 37 des Prozessors 7 den Inhalt (Registernummern) der Felder 36-2 und 36-3 des Befehlsregisters 36 über die jeweiligen Leitungen L305 und L306 an die Universalregistergruppe 34 ausgibt und er auch über die Leitung L303 ein Signal ausgibt, das aussagt, dass der Befehl EMPFANGEN ausgeführt wird, um die Speicherzugriffsschaltung 38 zu initialisieren. Im Ergebnis wird das von der Speicherzugriffsschaltung 38 erzeugte Speicherlese- Anforderungssignal über die Leitung L301 zusammen mit dem ersten Operanden als Speicherzugriff an den dritten Port des Empfangsspeichers 8 ausgegeben. Demgemäß gibt der Empfangsspeicher 8 den Wert des Kennzeichens auf die Leitung L9 und die Daten auf die Leitung L10 aus. Die auf die Leitung L10 ausgegebenen Daten werden in das durch den zweiten Operanden spezifizierte Universalregister eingeschrieben. Der Wert des auf die Leitung L9 ausgegebenen Kennzeichens wird in die Speicherzugriffsschaltung 38 eingegeben. Wenn der Wert dieses Kennzeichens "0" ist, erzeugt die Speicherzugriffsschaltung 38 erneut das Speicherlese-Anforderungssignal auf der Leitung L301, wodurch die oben beschriebenen Speicherzugriffsoperation wiederholt wird. Wenn der Wert des auf die Leitung L9 ausgegebenen Kennzeichens "1" ist, wird das Ausgangssignal der UND-Schaltung 300 in der Ungültigmachschaltung 33 "1". Infolgedessen werden, da der erste an die Leitung L6 ausgegebene Operand als Adresse verwendet wird, sowohl der auf die Leitung L7 ausgegebene Wert "0" als auch das Ausgangssignal der UND-Schaltung 300 an den zweiten Port des Empfangsspeichers 8 als Kennzeichen-Schreibdaten und auch als Kennzeichen-Schreibanforderungssignal ausgegeben, wobei das Kennzeichen des durch des ersten Operanden spezifizierten Worts "0" wird (der Wert zeigt an, dass die Daten ungültig sind). Wenn das Kennzeichen auf der Leitung L9 "1" ist, liefert die Speicherzugriffsschaltung 38 entsprechend ein Signal von der Leitung L302 an den Programmzähler 35, um den Inhalt dieses Programmzählers 35 zu aktualisieren. Durch die oben beschriebene Operationsabfolge wird der Befehl EMPFANGEN abgeschlossen.
- Es sei darauf hingewiesen, dass entweder der normale Speicherlesebefehl oder der Speicherschreibbefehl über die Leitung L14 oder L15 hinsichtlich des lokalen Speichers 6A ausgeführt wird.
- Der Parallelcomputer gemäß dem zweiten bevorzugten Ausführungsbeispiel der Erfindung wird ähnlich wie der des ersten bevorzugten Ausführungsbeispiels betrieben, mit der Ausnahme, dass die zum Übertragen von Daten zwischen Prozessorelementen verwendeten Speicherpositionen durch den Empfangsspeicher 8 gebildet sind. Daher können beim zweiten bevorzugten Ausführungsbeispiel dieselben Vorteile wie beim Parallelcomputer gemäß dem ersten bevorzugten Ausführungsbeispiel erzielt werden.
- Zusätzlich zu den oben beschriebenen Vorteilen existiert der folgende spezielle Effekt gemäß dem zweiten bevorzugten Ausführungsbeispiel. Da nämlich der gemäß dem zweiten bevorzugten Ausführungsbeispiel der zum Empfangen von Daten verwendete Speicher (der Empfangsspeicher 8) vom Speicher (lokaler Speicher 6A) zum Einspeichern des Programms und der Daten abgetrennt ist, ist erkennbar, dass zwei Speicherräume existieren, wie der Speicherraum des Empfangsspeichers 8 und der Speicherraum des lokalen Speichers 6A.
- Im Ergebnis ist es einfach, die Programme zu erzeugen, wie sie in jedem der Prozessorelemente ausgeführt werden. Das heißt, dass die Mengen der Daten und des Programms, wie durch die jeweiligen Prozessorelemente in den eigenen lokalen Speicher eingespeichert, voneinander verschieden sind, und zwar abhängig von den jeweiligen Prozessorelementen. Im Ergebnis wird, ähnlich wie beim ersten bevorzugten Ausführungsbeispiel, dann, wenn Daten direkt in den lokalen Speicher des Prozessorelements auf der Datensendeseite eingetragen werden, eine Ermittlung dahingehend ausgeführt, welcher leere Bereich des lokalen Speichers in diesem Prozessorelement verwendet wird. Auf Grundlage dieser Bereichsermittlung wird das Programm erzeugt. Wenn eine große Menge von Daten zwischen Prozessorelementen zu übertragen ist, wird diese Ermittlung sehr kompliziert. Wenn jedoch die Sendedaten in den vom lokalen Speicher verschiedenen Empfangsspeicher eingeschrieben werden, können eine Ermittlung zu den in die Position des Empfangsspeichers eingeschriebenen Daten unabhängig vom Verwendungszustand des lokalen Speichers ausgeführt werden. Infolgedessen kann das Programm einfach erzeugt werden. Genauer gesagt, kann dann, wenn das in diesem Parallelcomputer ausgeführte Programm durch einen Linkvorgang editiert wird und die noch nicht gelöste externe Bezugnahme gelöst wird, sowohl 1) die Lösung für die noch ungelöste externe Bezugnahme zwischen den Empfangsspeichern der jeweiligen Prozessorelemente als auch 2) die Lösung für die noch nicht ungelöste externe Bezugnahme zu den jeweiligen Prozessorelementen unabhängig ausgeführt werden. Dann ist es möglich, wenn das Programm zum Abarbeiten der Berechnung, während Daten zwischen den Prozessorelementen empfangen werden, einmal als Unterroutine erzeugt wird und die noch nicht gelöste externe Bezugnahme des obigen Punkts 1) gelöst ist, wenn diese Unterroutine dazu verwendet wird, durch einen Assembliervorgang in ein anderes Programm eingebracht zu werden, die noch nicht gelöste externe Bezugnahme des obigen Punkts 2) zu lösen. Anders gesagt, kann das Programm leicht wiederverwendet werden.
- Fig. 8 gibt einen Parallelcomputer gemäß einem dritten bevorzugten Ausführungsbeispiel der Erfindung an. Der Parallelcomputer gemäß dem dritten bevorzugten Ausführungsbeispiel entspricht einem modifizierten Parallelcomputer des ersten bevorzugten Ausführungsbeispiels. Dieselben in Fig. 8 verwendeten Bezugszahlen kennzeichnen dieselben Schaltungselemente, wie sie in Fig. 1 dargestellt sind. Ein Unterschied zwischen den in den Fig. 1 und 8 dargestellten Parallelcomputern ist der folgende. In der Empfangseinheit 4A der jeweiligen Prozessoreinheiten ist nämlich eine Adressenumsetzeinheit 100 dazu verwendet, eine empfangene virtuelle Speicheradresse 40-1 als Datenkennung in die Adresse im lokalen Speicher 6A umzusetzen, wohingegen eine andere Adressenumsetzeinheit 110 dazu verwendet wird, eine vertikale Empfangsspeicheradresse als Datenkennung in eine Adresse des lokalen Speichers umzusetzen.
- Gemäß diesem dritten bevorzugten Ausführungsbeispiel kann der durch das zweite bevorzugte Ausführungsbeispiel erzielte Vorteil dadurch geschaffen werden, dass der Parallelcomputer des ersten bevorzugten Ausführungsbeispiels leicht modifiziert wird. Das spezielle Merkmal des zweiten bevorzugten Ausführungsbeispiels wird dadurch geschaffen, dass der durch dem Empfangsspeicher 8 (Fig. 5) erzeugte Speicherraum vom durch den lokalen Speicher 6A erzeugten Speicherraum abgetrennt wird. Um den Raum zu unterteilen, kann der Speicher selbst unterteilt werden, wie es beim zweiten bevorzugten Ausführungsbeispiel beschrieben ist. Jedoch kann die Raumunterteilung gemäß einem anderen, verschiedenen Verfahren des dritten bevorzugten Ausführungsbeispiels erzielt werden. Es wird nämlich, wie es in Fig. 12 veranschaulicht ist, der Speicherraum 81 eines virtuellen Empfangsspeichers in dem Empfangsspeicherbereich 92 des Speicherraums 91 des lokalen Speichers 6A kartiert. Wenn der Empfangsspeicherbereich 92 innerhalb eines Bereichs von den Adressen x bis (x + n - 1) liegt, wird die empfangene Adresse in eine Adresse umgesetzt, die um "x" größer als sie selbst ist. Hinsichtlich der Computerarchitektur werden die gesonderten Räume im selben Speicher der Hardware realisiert.
- Die Adressenumsetzeinheit 100 besteht, wie es in Fig. 10 dargestellt ist, aus einem Addierer 102 zum Addieren der empfangenen Adresse 40-1 zum oben beschriebenen konstanten Wert. Das Einschreiben des Werts x in das Register 101 kann z. B. durch den in Fig. 8 dargestellten Prozessor 38 erfolgen (in der Zeichnung ist eine zu diesem Zweck erforderliche Leitung weggelassen). Wie es in Fig. 11 veranschaulicht ist, besteht die Adressentransformationseinheit 110 aus einem Addierer 114 zum Addieren des oben beschriebenen konstanten Werts "x" zur Adresse auf der Leitung L313, wie aus dem Universalregister 134 ausgelesen (was später erörtert wird). Das Einschreiben des Werts in das Register 113 kann auf ähnliche Weise wie das in das Register 101 erfolgen.
- Fig. 9 veranschaulicht eine Schaltungsanordnung des Prozessors 38. In Fig. 9 kennzeichnen dieselben Bezugszahlen in dieser Figur dasselbe wie in Fig. 2. Ein Unterschiedspunkt des in Fig. 9 dargestellten Prozessors von dem in Fig. 2 dargestellten besteht darin, dass zusätzlich zur Einheit 110 eine Auswähleinrichtung 112 dazu verwendet ist, das Ausgangssignal L313 des Universalregisters und das Ausgangssignals der Adressenumsetzeinheit 110 auszuwählen, und dass der Befehlsdecodiercontroller 37A ein Signal L312 zum Auswählen der Auswähleinrichtung 112 während der Decodieroperation des Befehls EMPFANGEN ausgibt, zusätzlich zur Funktion des Befehlsdecodiercontrollers 37, wie in Fig. 2 dargestellt.
- Wenn dieses Signal L312 nicht ausgegeben wird, überträgt diese Auswähleinrichtung 112 dauernd das Signal auf der Leitung L113 an die Leitung 314.
- Der Betrieb des in Fig. 8 dargestellten Prozessors unterscheidet sich durch den folgenden Punkt von dem in Fig. 1 dargestellten. Wenn der Befehl SENDEN (Fig. 4) ausgeführt wird die virtuelle Empfangsspeicheradresse, die als Datenkennung fungiert, wie hinsichtlich der zu sendenden Daten spezifiziert, vorab in das Universalregister mit der Registernummer R2 eingespeichert. Derselbe Datenübertragungsvorgang, wie er nach dem Befehl SENDEN erzielt wird, wird entsprechend dem in Fig. 1 Dargestellten ausgeführt.
- In der Empfangseinheit 4A für übertragene Daten wird die virtuelle Empfangsspeicheradresse 40-1 durch die Adressenumsetzeinheit 100 in eine Adresse des lokalen Speichers umgesetzt. Die empfangenen Daten werden zusammen mit dem Kennzeichen mit dem Wert 1 unter Verwendung dieser umgesetzten Adresse in den lokalen Speicher 6 eingeschrieben. Nachdem der Befehl SENDEN abgearbeitet ist, in der durch diesen Befehl spezifizierten Registernummer R1 (Fig. 5), der virtuelle Empfangsspeicher, diese Anweisung ausgeführt wurde, wie in Fig. 1 erläutert, wird diese Adresse auf die Leitung L313 ausgegeben. Beim dritten bevorzugten Ausführungsbeispiel wird diese Adresse von der Adressenumsetzeinheit 110 in die entsprechende Adresse des lokalen Speichers umgesetzt. Die Auswähleinrichtung wählt die umgesetzte Adresse auf das Signal auf der Leitung L312 hin aus, und dann liefert er sie an den lokalen Speicher 6. Der anschließende Vorgang ist derselbe wie der in Fig. 1 dargestellte.
- Nun erfolgt eine Beschreibung zum neu eingeführten Befehl EMPFANGEN. Dieser Befehl EMPFANGEN hat dasselbe Format wie der beim ersten bevorzugten Ausführungsbeispiel, und er verfügt in ähnlicher Weise über denselben Operanden. Wenn dieser Befehl ausgeführt wird, wird der Parallelcomputer gemäß dem dritten bevorzugten Ausführungsbeispiel wie folgt betrieben.
- Der Befehlsdecodiercontroller 37 des Prozessors 11 gibt nämlich als erstes den Inhalt der Felder 36-2 und 36-3 des Befehlsregisters 36 über die jeweiligen Leitungen 305 und 306 an die Universalregistergruppe 34 aus, und er gibt auch über die Leitung L303 ein Signal aus, das beinhaltet, dass der Befehl EMPFANGEN ausgeführt wird, um die Speicherzugriffsschaltung 38 zu initialisieren. Im Ergebnis wird der erste Operand als Speicheradresse über die Leitung L313, die Adressenumsetzeinheit 110 und die Auswähleinrichtung 112 an die Leitung L314 gegeben. Ein Speicherlese-Anforderungssignal, wie es von der Speicherzugriffsschaltung 38 erzeugt wird, zusammen mit dem über die Leitung L301 und die ODER- Schaltung 31 gelieferten Speicherlese-Anforderungssignal, wird an den dritten Port des lokalen Speichers 6 ausgegeben. Demgemäß gibt der lokale Speicher 6 den Wert des Kennzeichens an die Leitung L9 und auch die Daten an die Leitung L10 aus. Die an die Leitung L10 ausgegebenen Daten werden in das durch den zweiten Operanden spezifizierte Universalregister eingetragen. Der Wert des auf die Leitung L9 ausgegebenen Kennzeichens wird in die Speicherzugriffsschaltung 38 eingegeben. Wenn der Wert dieses Kennzeichens "0" entspricht, erzeugt die Speicherzugriffsschaltung 38 erneut das Speicherlese-Anforderungssignal auf der Leitung L301, wodurch der oben beschriebene Speicherzugriffsvorgang wiederholt wird. Wenn der Wert des auf die Leitung L9 ausgegebenen Kennzeichens "1" entspricht, wird das Ausgangssignal der UND-Schaltung 300 in der Ungültigmachschaltung 33 "1". Infolgedessen werden, da der über die Leitung L313 ausgegebene erste Operand und die Adressentransformationseinheit 110 für die Leitung L6 als Adresse für die Kennzeichnung verwendet wird, sowohl der auf die Leitung L7 ausgegebene Wert "0" als auch das Ausgangssignal der UND-Schaltung 300 als Kennzeichen-Schreibdaten und auch als Kennzeichen-Schreibanforderungssignal an den zweiten Port des lokalen Speichers 6 ausgegeben, wobei das Kennzeichen des durch den ersten Operanden spezifizierten Worts "0" wird. Wenn das Kennzeichen auf der Leitung L9 den Wert "1" hat, liefert die Speicherzugriffsschaltung 38 entsprechend ein Signal von der Leitung L302 an den Programmzähler 35, um den Inhalt dieses Programmzählers 35 zu aktualisieren. Durch die oben beschriebene Operationsabfolge wird die Anweisung EMPFANGEN abgeschlossen.
- Beim oben beschriebenen bevorzugten Ausführungsbeispiel wurde die in Verbindung mit der Ausführung des Befehls SENDEN ausgeführte Adressenumsetzung in der Adressenumsetzeinheit 100 innerhalb der in Fig. 8 dargestellten Empfangseinheit 10 ausgeführt. Jedoch kann diese Adressenumsetzung ausgeführt werden, bis der Wert tatsächlich in den lokalen Speicher eingeschrieben wird, nachdem der Befehl SENDEN ausgeführt wurde. Infolgedessen kann, wie es in Fig. 13 dargestellt ist, eine Adressenumsetzeinheit 120 innerhalb der Sendeeinheit 12 vorhanden sein, wobei dieselbe Schaltungsanordnung wie die der in Fig. 8 dargestellten Adressenumsetzeinheit 110 verwendet wird.
- Beim oben beschriebenen Ausführungsbeispiel ist das Verfahren zum Hinzufügen des konstanten Werts "x" als Kartierungsverfahren beschrieben. Die Erfindung ist nicht auf dieses Kartierungsverfahren begrenzt. Zum Beispiel kann ein solches Kartierungsverfahren verwendet werden, dass die Adresse des lokalen Speichers nur aus der Adresse des Empfangsspeicherraums bestimmt wird und keine doppelten Positionierungen existieren.
- Auch dann, wenn die Daten unter dem Befehl SENDEN in den lokalen Speicher des anderen Prozessorelements eingeschrieben werden, werden die lokalen Daten durch das andere Prozessorelement nicht auf Grund eines Fehlers im Programm zerstört, wenn ein Datenschreibvorgang in einen anderen Bereich als den Empfangsspeicherbereich 92 nicht ausgeführt wird. Wenn z. B. die Speicherkapazität des Empfangsspeicherbereichs 92 zu "n" Wörtern ausgewählt ist, kann der Compiler zunächst klarstellen, dass die Adresse des virtuellen Empfangsspeichers als Befehl gemäß dem zweiten Operanden kleiner als die Adresse "n" ist, wenn der Befehl SENDEN ausgeführt wird. Wenn diese Adresse größer als die Adresse "n" ist, wird der Datenschreibvorgang unterdrückt. Andernfalls kann klargestellt werden, dass, nachdem entweder die Adressenumsetzeinheit 100 (Fig. 8) oder die Adressenumsetzeinheit 20 (Fig. 13) betrieben wurde, die umgesetzte Adresse größer als die Adresse "X" und kleiner als die Adresse (x + n) ist.
- Beim Parallelcomputer des dritten bevorzugten Ausführungsbeispiels bestehen dieselbe Vorteile wie beim zweiten bevorzugten Ausführungsbeispiel, zusätzlich zum folgenden Vorteil. Da nämlich der Speicher 8 und der lokale Speicher 6A in der Hardware voneinander getrennt sind, kann, wenn eine Berechnung mit großem Umfang ausgeführt wird und die Speicherkapazität des lokalen Speichers 6A knapp wird, diese Berechnung selbst dann nicht ausgeführt werden, wenn im Empfangsspeicher 8 ausreichend Speicherkapazität zur Verfügung steht. Im Fall umgekehrter Speicherkapazität kann eine derartig große Berechnung nicht ausgeführt werden. Jedoch kann gemäß dem dritten bevorzugten Ausführungsbeispiel, wenn im Empfangsspeicher ausreichend Speicherraum zur Verfügung steht, dieser Speicherraum als solcher des lokalen Speichers genutzt werden. Anders gesagt, kann, wenn die Summe aus der Speicherkapazität des Empfangsspeichers 8 und derjenigen des lokalen Speichers gemäß dem zweiten bevorzugten Ausführungsbeispiel derjenigen des lokalen Speichers 6a gemäß dem dritten bevorzugten Ausführungsbeispiel entspricht, der Parallelcomputer gemäß dem dritten bevorzugten Ausführungsbeispiel eine größere Berechnung ausführen, als dies beim zweiten bevorzugten Ausführungsbeispiel möglich ist.
- Es sei darauf hingewiesen, dass der Parallelcomputer gemäß dem vierten bevorzugten Ausführungsbeispiel dadurch aufgebaut wurde, dass der des dritten bevorzugten Ausführungsbeispiels modifiziert wurde. Beim Parallelcomputer gemäß dem vierten bevorzugten Ausführungsbeispiel wird der lokale Speicher 6 auf Byteeinheit adressiert. Wenn entweder die hinsichtlich des lokalen Speichers 6 gelesenen/geschriebenen Daten oder die zwischen den Prozessorelementen übertragenen Daten größer als die Adresseneinheit des lokalen Speichers 6 sind, wie 8 Bytes, wird das 1-Bit-Kennzeichen in den Empfangsdatenspeicher des lokalen Speichers 6 eingespeichert. Wenn angenommen wird, dass "n" einzelne Empfangsdaten in den virtuellen Empfangsspeicherbereich 92 (siehe Fig. 16) des lokalen Speichers 6 eingespeichert werden, wird dieser Bereich 92 in "n" Teile von 8-Byte-Bereichen aufgeteilt, und dann wird ein einzelner der empfangenen Datenwerte in die jeweiligen 8-Byte-Bereiche eingespeichert. Im Ergebnis sind die folgenden Operationen denkbar, wenn die beim Parallelprozessor gemäß dem dritten bevorzugten Ausführungsbeispiel eingeführte Idee verwendet wird. Wenn nämlich Daten zwischen den Prozessorelementen übertragen werden, werden als Adresse, die an diese Daten angesetzt ist, eine Adressendifferenz "d" (Relativadresse), wie aus einer Kopfadresse "a" eines der 8-Byte-Bereiche innerhalb des virtuellen Empfangsspeicherbereichs 92 berechnet, wie zuvor hinsichtlich dieser Daten bestimmt, und auch eine andere Kopfadresse "x" des virtuellen Speicherbereichs 92 (Fig. 16) übertragen, und dann wird im Prozessorelement auf der Datenempfangsseite die empfangene Adressendifferenz "d" zur Kopfadresse "x" addiert, um die zum Einspeichern der Daten verwendete Adresse "a" zu erhalten. Wenn jedoch die Datenlänge 8 Bytes entspricht, sind die unteren drei Bits der oben beschriebenen Adressendifferenz "d" dauernd in bezug auf jeden Datenwert "0".
- Beim vierten bevorzugten Ausführungsbeispiel entspricht der lokale Speicher des Prozessorelements einem Speicher, dem eine Adresse in Worteinheit zugefügt wird. Da Daten mit einer Einheit von 1 Byte, wie Zeichendaten, in einem praxisgerechten Parallelcomputer verarbeitet werden müssen, existieren viele Fälle, dass die Adresse als Byteeinheit (8 Bits) zu den Daten hinzugefügt wird. Andererseits bestehen, gemäß dem normalen Zahlenwert Daten-Prozess, übliche Fälle dahingehend, dass die Datenberechnungseinheit entweder mit einer Einheit von 4 Bytes oder 8 Bytes ausgeführt wird. Infolgedessen müssen, wenn das Wort 1 Byte entspricht und das Kennzeichen zu jeweils 1 Byte hinzugefügt wird, sowohl der Befehl SENDEN als auch der Befehl EMPFANGEN 8 mal für jeden Befehl ausgeführt werden, um die Bezugsreihenfolge für z. B. 8-Byte-Daten sicherzustellen. Dies bewirkt, dass nicht nur eine längere Befehlsausführung erforderlich ist, sondern dass auch ein großer Hardwareumfang erforderlich ist, um für das Anbringen des Kennzeichens an den Daten zu sorgen. Zu diesem Zweck werden beim Parallelcomputer gemäß dem vierten bevorzugten Ausführungsbeispiel, während die Daten innerhalb des Prozessorelements mit einer Einheit von 1 Byte verarbeitet werden können, die unteren 3 Bits dieser Daten nicht übertragen, sondern diese unteren 3-Bit-Daten werden im Prozessorelement auf der Datenempfangsseite wiedergewonnen. Infolgedessen ist die Länge des zu übertragenden Pakets verkürzt, wodurch das Ausmaß der Datenübertragung verringert ist, was schließlich die Datenübertragungsgeschwindigkeit verbessert. Wenn der virtuelle Empfangsspeicher betrachtet wird, wie er durch die Differenzadresse (Relativadresse) definiert ist, aus der die unteren 3-Bit-Daten entfernt sind, ist ersichtlich, dass zu einem Speicherraum 82 des virtuellen Empfangsspeichers hinsichtlich jedes 8-Byte-Datenwerts eine Adresse hinzugefügt ist und die Adresse dieses Raums jeweils 1 Byte zugeordnet wird, was der Kartierung des lokalen Speicherraums 91 entspricht. Wenn die Adresse des virtuellen Empfangsspeicherraums 82 "a" ist und die entsprechende Adresse des lokalen Speicherraums 91 "b" ist, wird die Kartierung wie folgt ausgeführt: b = a x 8 + x. Dabei ist der Wert "x" derselbe wie der beim dritten bevorzugten Ausführungsbeispiel beschriebene konstante Wert "x", und er entspricht daher der geringstsignifikanten Adresse des virtuellen Empfangsspeicherbereichs. Anders gesagt, entspricht die Adresse mit Ausnahme der unteren drei Bits der Datenkennung, die für die Reihenfolge des Empfangsdaten-Speicherbereichs beim vierten bevorzugten Ausführungsbeispiel repräsentativ ist. Das heißt, dass dann, wenn der Befehl SENDEN ausgeführt wird, das Prozessorelement auf der Datensendeseite aus der Universalregistergruppe 34 diejenige Adresse ausliest, die durch Löschen der unteren drei Bits der Relativadresse erzeugt wird, wie sie durch die zu sendenden Daten bestimmt ist, und es diese Adresse zusammen mit den Daten als Paket überträgt. In der Adressenumsetzeinheit 104 auf der Empfangsseite des Prozessorelements wird die empfangene Adresse durch eine 3-Bit-Linksschiebeschaltung 103 um drei Bits nach links verschoben, 3 Bits "0" werden zur Seite der niedrigeren Bits hinzugefügt und die sich ergebenden Daten werden durch den Addierer 102 zu einer Grenzadresse "x" im Register 101 addiert, um die Adresse des lokalen Speicher zu erzeugen. Im Prozessorelement auf der Datenempfangsseite wird, wenn der Befehl EMPFANGEN ausgeführt wird, die durch Löschen der unteren drei Bits aus der Relativadresse erzeugte Adresse aus der Universalregistergruppe 34 ausgelesen, und die Adresse des lokalen Speichers wird in der Adressenumsetzeinheit 114 (Fig. 15) erzeugt.
- In Fig. 17 ist ein Parallelcomputer gemäß einem fünften bevorzugten Ausführungsbeispiel dargestellt. Der Parallelcomputer des fünften bevorzugten Ausführungsbeispiel ist durch Modifizieren desjenigen des ersten bevorzugten Ausführungsbeispiel aufgebaut. Es sei darauf hingewiesen, dass dieselben Bezugszahlen, wie sie beim Parallelcomputer des ersten bevorzugten Ausführungsbeispiels verwendet sind, dieselben oder ähnliche Schaltungselemente kennzeichnen, wie sie in Fig. 17 verwendet sind.
- In Fig. 18 ist eine detaillierte Schaltung eines Prozessors 3d dargestellt. Im in Fig. 18 dargestellten Prozessor kennzeichnet die Bezugszahl 1307 eine Sendesteuerschaltung, die dazu verwendet wird, einen Befehl VSENDEN (wird später erörtert) auszuführen. Die Bezugszahl 1302 kennzeichnet eine Speicherzugriffsschaltung, die dazu verwendet wird, einen Befehl VEMPFANGEN (wird später erörtert) auszuführen. Die Bezugszahl 1308 kennzeichnet eine Auswähleinrichtung. Die Bezugszahlen 1309 und 1317 kennzeichnen jeweils Auswähleinrichtungen. Die Bezugszahl 30 bezeichnet eine Universalregistergruppe. Die Bezugszahl 1303 kennzeichnet eine Vektorregistergruppe. Die Bezugszahlen 1304 und 1305 bezeichnen Pipelinerechner.
- Die Vektorregistergruppe 1303 besteht aus mehreren Vektorregistern, von denen auf jedes aufeinanderfolgend in der Reihenfolge des ersten Elements während Daten-Lese/Schreib-Operationen zugegriffen wird. Die Bezugszahl 1306 kennzeichnet eine Adressenerzeugungsschaltung, deren interne Schaltung in Fig 19 dargestellt ist. In Fig. 19 bezeichnet die Bezugszahl 1311 eine Inkrementierschaltung, die Bezugszahl 1313 eine Dekrementierschaltung, die Bezugszahl 1314 eine Nulldetektorschaltung und die Bezugszahl 1315 und 1316 Auswähleinrichtungen.
- Obwohl dieser Prozessor 13 einem sogenannten "Vektorcomputer" entspricht, kann er einen neu eingeführten Befehl zusätzlich zum Befehlssatz eines normalen Vektorcomputers (Speicher lesen für skalare Daten, Speicher schreiben, Speicher lesen für einen Berechnungsbefehl und für Vektordaten, Speicher schreiben, Berechnungsbefehl usw.) ausführen. Dieser neu eingeführte Befehl wird später beschrieben.
- Unter Bezugnahme auf die Fig. 17 bis 19 wird nun der Betrieb des Prozessorelements beschrieben.
- Ein Befehlsdecodiercontroller 1301 decodiert den Wert eines im Feld 36-1 abgespeicherten Befehlscodes unter Befehlen, wie sie in das Befehlsregister 36 eingetragen wurden, er gibt ein Signal zum Ausführen der durch diesen Befehl spezifizierten Operation an eine interen Schaltung des Prozessors 3 aus, und dann betreibt er den Rechner 1304, den Rechner 1305, die Universalregistergruppe 34, die Vektorregistergruppe 1303 und dergleichen. Wenn die durch den Befehl spezifizierte Operation ausgeführt ist, aktualisiert der Befehlsdecodiercontroller 1301 den Wert des Programmzählers über die Leitung 1308, und er wiederholt die oben beschriebene Abfolge der Operation.
- Nachfolgend wird der neu eingeführte Befehl beschrieben.
- Zuallererst wird der Befehl VSENDEN beschrieben. Dieser Befehl VSENDEN ist ein Befehl zum Einschreiben von Vektordaten eines Prozessorelements, das diesen Befehl ausgeführt hat, in einen lokalen Speicher, der innerhalb eines anderen Prozessorelements liegt. Fig. 20 veranschaulicht das Format dieses Befehls VSENDEN. Der Befehl VSENDEN verfügt über die folgenden drei Operanden:
- 1. Ziel
- 2. Basisadresse
- 3. Vektordaten.
- Jeder dieser Operanden wurde in ein durch den Befehl R1 spezifiziertes Universalregister, ein durch das Befehlsformat R2 spezifiziertes Universalregister und ein durch ein Feld VR3 spezifiziertes Vektorregister eingespeichert. Dieser Befehl beinhaltet, dass die durch den dritten Operanden spezifizierten Vektordaten in einen zusammenhängenden Bereich, der an der durch den zweiten Operanden spezifizierten Adresse beginnt, des lokalen Speichers des durch den ersten Operanden spezifizierten Prozessorelements eingeschrieben werden. Es sei darauf hingewiesen, dass die Anzahl der Elemente der Vektordaten vorab auf einen anderen, verschiedenen Befehl hin in die spezielle Universalregistergruppe 34 eingespeichert wurde.
- Wenn der Befehl VSENDEN ausgeführt wird, wird der Parallelcomputer gemäß dem fünften bevorzugten Ausführungsbeispiel wie folgt betrieben.
- Zu allererste gibt der Befehlsdecodiercontroller 1301 des Prozessors 13 die Werte (Registernummer) der Felder 36-2 und 36-3 des Befehlsregisters 36 über die jeweiligen Leitungen L1302 und L1303 an die Universalregistergruppe 34 aus, und er gibt auch den im Feld 36-4 abgespeicherten Wert (Vektorregisternummer) über die Leitung L1304 an die Vektorregistergruppe 1303 aus. Überträgt dieser Controller ein Signal, das beinhaltet, dass der Befehl VSENDEN ausgeführt wird, über die Leitung L1310 an die Sendesteuerschaltung 1307, um dieselbe zu initialisieren. Im Ergebnis wird das Schreibanforderungssignal für das Register, wie von der Sendesteuerschaltung 1307 über die Leitung L1312 und eine Auswähleinrichtung 1308 erzeugt, zusammen mit dem ersten Operanden als Leitungssignal L20 ausgegeben und in das Feld 50-1 des Registers 50 der Sendeeinheit 5 eingeschrieben. Der zweite Operand wird über die Leitung L1301 und die Auswähleinrichtung 1315 in das Register 1310 eingespeichert, und die Elementnummer der Vektordaten wird über die Leitung L1301 und die Auswähleinrichtung 1316 in das Register 1312 eingespeichert.
- Anschließend werden die folgenden Operationen wiederholt.
- Als erstes wird der Inhalt des Registers 1310 in der Adressenerzeugungsschaltung 1306 über die Leitung L1315 und die Auswähleinrichtung 1309 an die Leitung 1320 ausgegeben, und es wird auch das von der Sendesteuerschaltung 1307 erzeugte Schreibanforderungssignal an die Leitung L1319 ausgegeben, und so wird dieses repräsentiert und an die Sendeeinheit 5 als Leitungssignal L21 übertragen und dann in das Feld 50-2 eingeschrieben. In Verbindung mit diesem Vorgang wird das Element des durch den dritten Operanden spezifizierten Vektorregisters auf der Leitung L1311 gelesen, so dass es als Leitungssignal L20 zusammen mit dem von der Sendesteuerschaltung 1307 erzeugten Schreibsignal an die Sendeeinheit 5 übertragen wird und über die Leitung L1312 an die Auswähleinrichtung 1308 ausgegeben wird. Danach wird es in das Feld 50-3 eingetragen. Anschließend sendet die Sendesteuerschaltung 1307 über die Leitungen L1313 und L1306 ein Signal an die Inkrementierschaltung 1311 und die Dekrementierschaltung 1313 innerhalb der Adressenerzeugungsschaltung 1306, wodurch die Inhalte dieser Register 1310 und 1312 um eins inkrementiert bzw. um eins dekrementiert werden. Dabei sendet die Nullerfassungsschaltung 1314 ein Signal über die Leitung L1307 an die Sendesteuerschaltung 1307, wenn der sich ergebende Wert, wie er durch Dekrementieren des Inhalts des Registers 1312 um eins berechnet wurde, "0" wird.
- In der Sendeeinheit 5 wird jedesmal dann, wenn der Wert in das Register 50 eingetragen wird, der Inhalt dieses Registers 50 über das Netzwerk an das durch den Inhalt des Felds 50-1 spezifizierten Prozessorelements gesendet. Die Operationen nach dieser Wertübertragung werden auf dieselbe Weise wie beim ersten bevorzugten Ausführungsbeispiel ausgeführt.
- Da die Elementnummer der Vektornummer zu Beginn des Befehlsausführungsstadiums in das Register 1312 eingetragen wurde, werden die oben beschriebenen Operationen gleichzeitig mit der Elementnummer wiederholt. Danach wird das Signal über die Leitung L1307 an die Sendesteuerschaltung 1307 gesendet. Bei Empfang dieses Signals, der Sendeinhalt des Programmzählers auf der Leitung L1308. Wie bereits beschrieben, wurden die Operationen des Befehls VSENDEN abgeschlossen.
- Nun wird der Befehl VEMPFANGEN beschrieben.
- Dieser Befehl VEMPFANGEN ist ein Befehl zum Auslesen gültiger Daten aus dem gültigen Speicher des Prozessorelements, in dem dieser Befehl ausgeführt wird, und zum Einspeichern der gelesenen Daten in das Vektorregister. Fig. 21 zeigt das Format des Befehls VEMPFANGEN. Der Befehl VEMPFANGEN hat die folgenden zwei Operanden:
- 1. Basisadresse
- 2. Vektorregisternummer.
- Jeder dieser Operanden wurde in das durch das Befehlsformat R1 spezifizierte Universalregister und in ein Feld VR2 eingespeichert. Dieser Befehl beinhaltet, dass die in einen zusammenhängenden, von der durch den ersten Operanden spezifizierten Adresse ausgehenden Bereich eingeschriebenen gültigen Daten aufeinanderfolgend gelesen werden und dann in das durch den zweiten Operanden spezifizierte Vektorregister eingespeichert werden. Es sei darauf hingewiesen, dass die Anzahl der Elemente der Vektordaten vorab auf einen anderen, verschiedenen Befehl hin in die spezielle Universalregistergruppe 34 eingespeichert wurde.
- Wenn der Befehl VEMPFANGEN ausgeführt wird, wird der Parallelcomputer gemäß dem fünften bevorzugten Ausführungsbeispiel wie folgt betrieben.
- Zu allererst gibt der Befehlsdecodiercontroller 1301 des Prozessors 13 die Werte (Registernummern), wie sie in das Feld 36-2 der Befehlsregistergruppe 34 eingespeichert wurden, über die Leitung aus, und er gibt auch die Werte (Vektorregisternummern), wie sie über die Leitung L1303 eingespeichert wurden, an die Vektorregistergruppe 1303 aus. Auch sendet er ein Signal, das beinhaltet, dass der Befehl VEMPFANGEN ausgeführt wurde, über die Leitung L1309 an die Speicherzugriffsschaltung 1302, um dieselbe zu initialisieren. Andererseits wird der ersten Operand über die Leitung L1301 und die Auswähleinrichtung 1315 gesendet und in das Register 1310 eingespeichert. Die Elementnummer der Vektordaten wird über die Leitung L1301 und die Auswähleinrichtung 1316 an das Register 1312 gesendet.
- Anschließend werden die folgenden Operationen wiederholt.
- Als erstes wird der Inhalt des Registers 1310 in der Adressenerzeugungsschaltung 1306 über die Leitung L1315 von der Auswähleinrichtung 1309 ausgegeben, und es wird auch das von der Speicherzugriffsschaltung 1302 erzeugte Leseanforderungssignal von der ODER-Schaltung 31 an die Leitung L1305 ausgegeben, und dieses Ausgangssignal wird als Leitungssignal L8 an den dritten Port des lokalen Speichers 6 übertragen. Infolgedessen gibt der lokale Speicher 6 den Wert des Kennzeichens auf der Leitung L9 und die Daten auf der Leitung aus. Das auf der Leitung L9 ausgegebene Kennzeichen wird in die Speicherzugriffsschaltung 1302 eingegeben. Wenn dieser Wert "0" entspricht, wird in der Speicherzugriffsschaltung 1302 das Flipflop 1399 (Fig. 20) nicht zurückgesetzt, und es wird eine von der Schaltung 1401 neu erzeugte Leseanforderung erneut über ein UND-Gatter 1400 an die Leitung 1305 ausgegeben, um die im lokalen Speicher 6 abgespeicherten Daten zu lesen. Wenn der Wert des Kennzeichens "1" entspricht, wird dieser Wert unmittelbar auf die Leitungen L1321 und L1306 ausgegeben, und so schreibt die Vektorregistergruppe die Daten in das durch den zweiten Operanden spezifizierte Vektorregister. Bei Empfang des Kennzeichens von der Leitung L1306 in der Adressenerzeugungsschaltung 1306 werden die Inhalte der internen Register 1310 und 1312 durch die Inkrementierschaltung 1311 um eins inkrementiert bzw. durch die Dekrementierschaltung 1313 um eins dekrementiert. Wenn der Inhalt des Registers 1312 als Ergebnis des Dekrementierens um ein "0" wird, teilt dies die Nullerfassungsschaltung 1314 der Speicherzugriffsschaltung 1302 über die Leitung L1307 mit. Das der auf die Leitung L9 ausgegebene Wert eins wird und daher das Ausgangssignal der UND-Schaltung 300 innerhalb der Ungültigmachschaltung 33 den Wert eins erhält, werden sowohl der Wert "0" auf der Leitung L7 als auch das Ausgangssignal der UND-Schaltung 300 als Kennzeichen-Schreibdaten und Schreibanforderungssignal an den zweiten Port des lokalen Speichers 6 übertragen, als Adresse für den über die Leitung L1315 und die Auswähleinrichtung L1317 auf die Leitung L6 ausgegebenen Wert, in Verbindung mit der hier angegebenen Operation der Speicherzugriffsschaltung 1302. Im Ergebnis wird das Kennzeichen des Worts zum Adressen des auf der Leitung 6 ausgegebenen Werts "0". Es wird darauf hingewiesen, dass diese Operation so gesteuert wird, dass sie vor dem Inkrementieren des Inhalts des oben angegebenen Registers 1312 erfolgt.
- Da die Elementanzahl der Vektordaten zu Beginn des Befehlsausführungsstadiums in das Register 1312 eingetragen wurde, werden die oben angegebenen Operationen so oft wiederholt, wie es der Elementanzahl entspricht, und danach wird das Signal über die Leitung L1307 an die Speicherzugriffsschaltung 1302 gesendet. In dieser Speicherzugriffsschaltung 1302 wird das Flipflop 1399 durch das Kennzeichen auf der Leitung 1307 zurückgesetzt, die Speicherleseanforderung wird nicht mehr auf die Leitung L1305 gesendet, und so wird eine Abfolge der Speicherzugriffsoperation abgeschlossen. Das Kennzeichen auf der Leitung L1307 wird über die Leitung L1308 an den Programmzähler 35 übertragen, um den Inhalt dieses Programmzählers 35 zu aktualisieren. Die oben beschriebenen Operationen entsprechen der Operation des Befehls EMPFANGEN.
- Nachfolgend erfolgt eine Beschreibung zum Betriebsparallelcomputer gemäß dem fünften bevorzugten Ausführungsbeispiel Jedes der den Parallelcomputer des fünften bevorzugten Ausführungsbeispiels bildenden Prozessorelemente wird ähnlich einem normalen Vektorrechner unter der Bedingung betrieben, dass Daten zwischen diesem Prozessorelement und einem anderen Prozessorelement übertragen werden. Wenn eine Datenübertragung zwischen einem Prozessorelement und einem anderen Prozessorelement hinsichtlich eines Bereichs erforderlich ist, der dazu verwendet wird, Daten (dieser Bereich wird vorab entweder durch einen Programmierer oder durch einen Compiler bestimmt) im lokalen Speicher des Prozessorelements auf der Datenempfangsseite zu empfangen, schreibt das Prozessorelement auf der Datensendeseite die Daten mittels des oben beschriebenen Befehls VSENDEN. Diese Schreiboperation kann dadurch realisiert werden, dass das Programm auf solche Weise konzipiert wird, dass das Prozessorelement auf der Datenempfangsseite die Daten auf den Befehl VEMPFANGEN hin liest. Bei einer derartigen Anordnung kann derselbe Vorteil wie beim ersten bevorzugten Ausführungsbeispiel erzielt werden, und ferner kann Datenkommunikation mit hoher Geschwindigkeit, im Vergleich mit dem ersten bevorzugten Ausführungsbeispiel, erzielt werden.
- Beim oben beschriebenen Parallelcomputer war der Bereich des lokalen Speichers 6, auf dem der Befehl VSENDEN und der Befehl VEMPFANGEN zugriffen, ein zusammenhängender Bereich. Wenn das Programm so konzipiert werden kann, dass der durch die Inkrementierschaltung innerhalb der Adressenerzeugungsschaltung 1306 zu inkrementierende Wert programmierbar ist, ist es möglich, die Datengruppe so zu handhaben, dass sie äguidistant im lokalen Speicher angeordnet ist.
- Um für weiteren Freiheitsgrad zu sorgen, können der folgende Befehl VSENDENL und der Befehl VEMPFANGENL verwendet werden.
- Fig. 23A veranschaulicht das Format dieses Befehls VSENDENL. Der Befehl VSENDENL verfügt über die folgenden drei Operanden:
- 1. Ziel
- 2. Adressenvektor
- 3. Vektordaten.
- Jeder dieser Operanden wurde in die durch die Befehlsformate R1, VR2 und VR3 spezifizierten jeweiligen Vektorregister eingespeichert. Dieser Befehl beinhaltet, dass ein Element j des Vektors des dritten Operanden in eine durch das Element j (j = 1, 2, ...; Elementanzahl der Vektordaten) des Vektors des zweiten Operanden spezifizierte Adresse im lokalen Speicher des durch den ersten Operanden spezifizierten Prozessorelements eingeschrieben wird. Es sei darauf hingewiesen, dass die Elementanzahl der Vektordaten vorab auf einen anderen Befehl hin in das spezielle Register in der Universalregistergruppe eingespeichert wurde.
- Dieser Befehl kann im wesentlichen auf dieselbe Weise wie der oben angegebene Befehl VSENDEN ausgeführt werden. Es existieren die folgenden unterschiedlichen Punkte. Es wird nämlich, gemäß dem vorigen Befehl VSENDEN, als in das Feld 50-2 des Registers 50 in der Sendeeinheit 5 eingeschriebener Wert ein von der Adressenerzeugungsschaltung 1306 erzeugter Wert verwendet und er wird über die Leitung L1315, die Auswähleinrichtung 1309, die Leitung 1320 und die Leitung L21 in das Feld 50-2 eingetragen. Demgegenüber wird gemäß dem Befehl VSENDENL das Vektorregister innerhalb der Vektorregistergruppe 1303, wie vorab durch den Inhalt des Felds 36-3 im Befehlsregister 36 spezifiziert, über die Leitung L1303 ausgewählt und dann wird der Inhalt dieses Vektorregisters über die Leitung L1314, die Auswähleinrichtung 1309, die Leitung 1320 und die Leitung L21 in das Feld 50-2 eingetragen.
- Nachfolgend wird das Format des Befehls VEMPFANGENL durch Fig. 23 veranschaulicht. Dieser Befehl VEMPFANGENL hat die folgenden zwei Operanden:
- 1. Adressenspektrum
- 2. Vektorregisternummer.
- Jeder der Operanden existiert im Vektorregister und im Feld VE, wie durch das Feld VR1 des Befehlsformats spezifiziert. Dieser Befehl beinhaltet, dass die gültigen Daten aus der durch ein Element j (j = 1, 2, ...; Elementanzahl der Vektordaten) des Vektors des ersten Operanden spezifizierten Adresse gelesen wird und in ein Element j des Vektorregisters des zweiten Operanden eingeschrieben wird. Es sei darauf hingewiesen, dass die Elementanzahl der Vektordaten vorab auf einen anderen Befehl hin in das spezielle Register innerhalb der Universalgruppe eingespeichert wurde.
- Obwohl dieser Befehl im wesentlichen auf dieselbe Weise wie der Befehl VEMPFANGEN ausgeführt werden kann, existieren unterschiedliche Punkte wie folgt. Gemäß dem Befehl VEMPFANGEN wird ein durch die Adressenerzeugungsschaltung 1306 erzeugter Wert als Leseadresse für den lokalen Speicher 6 verwendet und über die Leitung L1315, die Auswähleinrichtung 1309 und die Leitung L8 an den lokalen Speicher 6 übertragen. Im Gegensatz hierzu wird gemäß dem Befehl VEMPFANGEN das Vektorregister innerhalb der Vektorregistergruppe 1303, wie zuvor durch den Inhalt des Felds 36-2 im Befehlsregister 36 spezifiziert, ausgewählt, und der Inhalt dieses Vektorregisters wird über entweder die Leitung L1315, die Auswähleinrichtung 1317 und die Leitung L6 oder die Leitung L1315, die Auswähleinrichtung 1317 und die Leitung L6 an den örtlichen Speicher 6 geliefert.
- Beim Parallelcomputer des fünften bevorzugten Ausführungsbeispiels wird eine Spalte der Adresse des lokalen Speichers 6 vorab in das Vektorregister innerhalb der Vektorregister gruppe eingetragen, mit einer Spezifizierung für den zweiten Operanden des Befehls VSENDENL oder den ersten Operanden des Befehls VEMPFANGENL, so dass eine beliebige, im lokalen Speicher 6 angeordnete Datengruppe zwischen den relevanten Prozessorelementen gesendet/empfangen werden kann, wobei höherer Wirkungsgrad beibehalten bleibt und die Bezugsreihenfolge gewährleistet ist.
- Unter Bezugnahme auf Figuren wird nun ein Parallelcomputer gemäß einem sechsten bevorzugten Ausführungsbeispiel der Erfindung beschrieben. Fig. 24 ist ein schematisches Blockdiagramm der Gesamtschaltungsanordnung des Parallelprozessors gemäß dem sechsten bevorzugten Ausführungsbeispiel.
- In Fig. 24 bezeichnet die Bezugszahl 2001 ein Datenübertragungsnetzwerk zwischen Prozessorelementen. Die Bezugszahlen 2002-1 bis 2002-3 kennzeichnen Prozessorelemente. Die interne Schaltungsanordnung der jeweiligen Prozessorelemente ist jeweils dieselbe. Die Bezugszahl 2003 kennzeichnet einen lokalen Speicher im Prozessorelement. Die Bezugszahl 2004 kennzeichnet eine Empfangseinheit, die Bezugszahl 2005 bezeichnet ein Sendepuffer, die Bezugszahl 2006 kennzeichnet eine Befehlsverarbeitungseinheit, die Bezugszahl 2007 bezeichnet einen Speichercontroller, die Bezugszahl 2013 kennzeichnet einen Befehlscontroller, die Bezugszahl 2014 ist ein Empfangscontroller, die Bezugszahl 2015 ist ein Universalregister, die Bezugszahl 2016 kennzeichnet einen Skalarrechner, die Bezugszahl 2017 repräsentiert eine Vektorverarbeitungseinheit, die Bezugszahl 2030 repräsentiert ein Befehlsregister und die Bezugszahl 2013 bezeichnet ein Befehlsregister. Ferner ist die Bezugszahl 2003 ein Programmzähler PC.
- Die Funktion des lokalen Speichers 2003 besteht darin, entweder ein Programm oder Daten einzuspeichern, die eine Kennzeicheneinheit zum Einspeichern eines 1-Bit-Kennzeichens für jede Worteinheit beinhalten (beim bevorzugten Ausführungsbeispiel entspricht ein Wort 4 Bytes). Diese Kennzeicheneinheit ist neu eingeführt, um den erfindungsgemäßen Parallelcomputer zu schaffen.
- Eine Befehlsabrufeinheit 2031 liest aufeinanderfolgend Befehlsadressen, wie sie vom Programmzähler 2032 des lokalen Speichers 2003 angegeben werden, in das Befehlsregister 2030 ein, und der gelesene Befehl wird in der Befehlsdecodiereinheit 2013 decodiert. Wenn der gelesene Befehl eine der Universalregistergruppen 2015 spezifiziert, wird dieser die spezifizierte Registernummer zugeführt; andernfalls werden die Recheneinheiten 2016 und 2017 auf solche Weise gesteuert, dass die durch den Lesebefehl spezifizierte Berechnung ausgeführt wird. Wie es im einzelnen in Fig. 27 veranschaulicht ist, besteht die Vektorverarbeitungseinheit 2017 aus einem Vektorrechner 2017 und einer Vektorregistergruppe 2070.
- In Fig. 24 sind nur drei Prozessorelemente veranschaulicht. Es ist ersichtlich, dass jede beliebige Anzahl von Prozessorelementen verwendet werden kann. Die Funktion des Datenübertragungsnetzwerk zwischen den Prozessorelementen besteht darin, eine Nachricht an dasjenige Prozessorelement zu übertragen, das die PE-Nummer aufweist, an die diese Nachricht zu senden ist. Als Datenübertragungsnetzwerk 2001 zwischen den Prozessorelementen kann ein Koordinatenschalter, ein mehrstufiges Schaltnetzwerk oder ein Bus verwendet werden.
- Als erstes wird nun ein Datenübertragungsprozess beschrieben. Ein Befehl zum Anfordern einer Nachrichtenübertragung wird als "Sendebefehl" bezeichnet. Die Formate dieses Befehls sind die folgenden, nämlich SENDEN GR1, GR2, GR3 und GR4. SENDEN beinhaltet einen Operationscode, GR1 bis GR4 bezeichnen Nummern der Universalregister zum Einspeichern der zu sendenden Daten, der Hauptkennung MK und der Unterkennung SK für die zu sendenden Daten sowie die Nummer des Zielprozessorelements. Darüber hinaus wurde vorab in das Universalregister, das durch die Nummer "(GR2) + 1" benannt ist, vorab die Länge der Hauptkennung MK eingespeichert. Wenn dieser Sendebefehl von der Befehlsabrufschaltung 2031 gelesen wird und in das Befehlsregister 2030 eingetragen wird, decodiert die Befehlsdecodiereinheit 2013 den Befehl und überträgt die Nummer des Zielprozessorelements und Übertragungsdaten entsprechend dem Inhalt des Universalregisters über die Leitung l 2020 an den Sendepuffer 2005. Außerdem werden die Hauptkennung MK, die Unterkennung SK und die Länge "L" der Hauptkennung entsprechend den Inhalten des Universalregisters an die Adressenerzeugungseinheit 2018 geliefert. Diese Adressenerzeugungseinheit 2018 erzeugt die Adresse des lokalen Speichers im Prozessorelement auf der Datensendeseite auf Grundlage von drei einzelnen Eingangsinformationen, und sie überträgt diese Adresse über die Leitung l 2021.
- Diese Adressenerzeugungseinheit 2018 gemäß einem bevorzugten Ausführungsbeispiel ist in Fig. 25 veranschaulicht. Die Länge "L" der eingegebenen Hauptkennung wird über eine Subtrahierschaltung 2040 die Verschiebezählinformation einer Linksschiebeeinrichtung 2041, um die Hauptkennung MK um (32- L) Bits nach links zu schieben (bei diesem Ausführungsbeispiel ist angenommen, dass der Adressenraum des lokalen Speichers 32 Bits breit ist). Ferner wird dieser sich ergebende Wert in einem ODER-Gatter 2043 mit einem anderen sich ergebenden Wert ODER-verknüpft, der dadurch erhalten wurde, dass die Unterkennung SK in der Verschiebeeinrichtung 2042 um zwei Bits nach links verschoben wurde, und dann wird der ODER-verknüpfte Wert als Adresse des lokalen Speichers des Prozessorelements auf der Datenempfangsseite über die Leitung l 2021 als Adresse in den Sendepuffer 2005 eingetragen.
- Es wird erneut auf Fig. 24 Bezug genommen, gemäß der die vom Sendepuffer 2005 erzeugte Nachricht an das Datenübertragungsnetzwerk 2001 übertragen wird und dann an das Prozessorelement mit der Ziel-PE(Prozessorelement)-Nummer innerhalb der Nachricht gesendet wird.
- Das Kennzeichen des fünften bevorzugten Ausführungsbeispiels ist das folgende. Es wird nämlich die Kennung für die zu sendenden Daten mittels der Hauptkennung MK angeordnet, wie sie für die zu diesen Daten gehörende Datengruppe repräsentativ ist, und entsprechend der Unterkennung SK zum Unterscheiden dieser Daten von anderen Daten im Datenkanal, und auf Grundlage dieser Hauptkennung MK und der Unterkennung SK wird die Adresse des lokalen Zielspeichers innerhalb des Prozessorelements auf der Datensendeseite erzeugt. Wenn z. B. der Maximalwert aus einer großen Datengruppe herausgefunden ist, wird die oben genannte Datengruppe in die jeweiligen Prozessoren unterteilt, wobei jeder dieser Prozessoren den Maximalwert aus der durch die jeweiligen Prozessoren verarbeiteten Datengruppe erfasst, und der maximale Datenwert innerhalb des Prozessors, wie von den jeweiligen Prozessoren erhalten, wird an einen Prozessor zum Herausfinden des Maximalwerts aus allen Datengruppen übertragen.
- Dabei zeigt die Hauptkennung MK zusammen mit den zu sendenden Daten an, dass die übertragenen Daten solche zum Herausfinden des Maximalwerts sind, wohingegen die Unterkennung SK die Anzahl der Daten in den obigen Datengruppen kennzeichnet.
- Als anderes Beispiel repräsentiert, wenn die zu sendenden Daten einem Element in bestimmten Vektordaten entsprechen, die Hauptkennung MK die Vektordaten, die zu den zu sendenden Daten gehören, und die Unterkennung SK kennzeichnet die zugehörige Elementnummer innerhalb der Vektordaten.
- Das Format des Sendebefehls ist dabei das folgende: SENDEN, VR1, GR2, GR3 und GR4.
- Es sei darauf hingewiesen, dass VR1 eine Vektorregisternummer zum Einspeichern der zu übertragenden Vektordaten ist, GR2 eine Kennung MK für die Daten anzeigt, GR3 eine Elementanzahl ist, wie innerhalb der Vektordaten zu übertragen, und GR4 der PE-Nummer des Zielprozessors entspricht. Ferner wird die Länge der Kennung MK vorab im Universalregister mit der Nummer (GR2 + 1) eingespeichert.
- Die Daten werden zusammen mit VR1 und GR3 aus dem Vektorregister 2070 (Fig. 27) der Vektorverarbeitungseinheit 2017 ausgelesen, und sie werden über eine Leitung l 2022 an den Sendepuffer 2005 gesendet. Andere Übertragungsinformation als diese Daten wird ebenfalls vom Universalregister an einen Übertragungspuffer 2005 geliefert. Alle Vektordaten im Vektorregister können dadurch übertragen werden, dass der Inhalt des durch GR3 spezifizierten Universalregisters, d.h. die Elementanzahl, aktualisiert wird.
- Wenn die spezifizierte PE-Nummer innerhalb der Nachricht im Datenübertragungsnetzwerk 2001 dem Wert PE 2002-1 entspricht, werden sowohl die Adresse als auch die Daten, wie aus der Hauptkennung MK und der Unterkennung SK innerhalb dieser Nachricht gebildet, im Empfangspuffer 2004-1 bzw. im Empfangspuffer 2004-2 eingespeichert, und darüber hinaus wird die Schreibsteuerung 2034 initialisiert. Durch diese Schreibsteuerung 2034 wird der Inhalt des Registers 2004 an den Speichercontroller 2007 geliefert, die Daten des Registers 2004-2 werden in die Adresse für den lokalen Speicher, wie durch das Register 2004-1 repräsentiert, eingespeichert. Ferner initialisiert die Schreibsteuerung 2034 eine den Wert erzeugende Schaltung 2008, und sie setzt das der Adresse im Speicher entsprechende Kennzeichen auf eins.
- Dabei führt der Speichercontroller 2007 eine ausschließliche Steuerung sowohl der Schreibsteuerung 2031 für den lokalen Speicher 2003 als auch der Zugriffsanforderung durch die Speicherzugriffssteuerung 2033 aus.
- Die Funktion dieses Speichercontrollers 2007 ist ähnlich der bei einem normalen Computersystem. Auch bei einem normalen Computersystem nimmt der Speichercontroller eine ausschließliche Steuerung sowohl des Lese/Schreib-Zugriffs durch die CPU als auch des Lese/Schreib-Zugriffs durch eine E/A-Einheit vor. Es existieren zwei abweichende Punkte:
- (1). Für die Schreibsteuerung 2034 wird nur eine Schreibanforderung erteilt.
- (2). Das Kennzeichen wird gesetzt/zurückgesetzt, da das Kennzeichen die Einheit eines Worts hat. Infolgedessen wurde eine Nachricht von einem Prozessorelement an ein anderes Prozessorelement übertragen.
- Der Befehl zum Anfordern des Auslesens dieser empfangenen Daten wird als "empfangener Befehl" bezeichnet. Auch sind die während der Ausführung dieses Befehls gelesenen Daten in der folgenden Beschreibung sogenannte "empfangene Daten". Beim fünften bevorzugten Ausführungsbeispiel existieren einige empfangene Befehle. Ein Format eines Befehls ist das folgende: EMPFANGEN, GR1, GR2 und GR3. Es sei darauf hingewiesen, dass EMPFANGEN ein Operationscode dieses Befehls ist, GR1, GR2, GR3 eine Nummer eines Universalregisters zum Einspeichern der empfangenen Daten, eine Nummer eines Universalregisters zum Einspeichern einer für Abrufoperationen verwendeten Hauptkennung bzw. eine Nummer eines Universalregisters zum Einspeichern der Länge "L" dieser Hauptkennung angeben. Die an die Empfangsdaten angefügte Unterkennung SK wird in das Universalregister mit der Nummer (GR1 + 1) eingespeichert.
- Wenn dieser empfangene Befehl von der Befehlsabrufschaltung 2031 gelesen wird, in das Befehlsregister 2030 eingetragen wird und ferner im Befehlsdecodierer 2013 decodiert wird, werden sowohl die Hauptkennung MK als auch die Länge "L" dieser Hauptkennung MK aus den durch den Empfangsbefehl spezifizierten beiden Universalregistern GR2 und GR3 über die Leitungen l 2026 und l 2027 an die Empfangssteuerung 2014 gesendet, um diese Empfangssteuerung 2014 zu initialisieren. Ferner wird die Leseanforderung zum Lesen der empfangenen Daten aus dem lokalen Speicher 2003 von der Speicherzugriffssteuerung 2033 erzeugt.
- Die Empfangssteuerung 2013 erzeugt fortlaufend eine Adresse innerhalb des Bereichs, in dem die empfangene Datengruppe eintrifft, bis die empfangenen Daten auf Grundlage der empfangenen zwei Informationen erzeugt werden, und sie sucht heraus, ob das der Adresse im lokalen Speicher entsprechende Kennzeichen gültig ist oder nicht.
- Wenn die empfangenen Daten eingetroffen sind (d.h., wenn das entsprechende Kennzeichen gültig geworden ist), wird die den Daten entsprechende Unterkennung erzeugt und in das durch den Empfangsbefehl spezifizierte Universalregister über die Leitung l 2029 zusammen mit den über die Leitung l 2028 gelieferten Daten eingespeichert. Danach wird das Kennzeichen für die empfangenen Daten im lokalen Speicher so bearbeitet, dass es ungültig ist. Ferner wird ein Signal "1", das für die gewünschten Daten repräsentativ ist, in das Bedingungscoderegister 2019 im Skalarrechner 2016 eingetragen.
- Wenn im Bereich, in dem die empfangenen Daten im lokalen Speicher ankommen, keine empfangene Daten vorhanden sind (d.h. alle Kennzeichen, die dem Bereich entsprechen, in dem die empfangenen Daten ankommen), wird ein anderes Signal vom Wert "0", das anzeigt, dass keine gewünschten Daten aufgefunden werden konnten, in das Bedingungscoderegister 2019 eingetragen.
- Fig. 26 zeigt ein Schaltbild der Empfangssteuerung 2014 gemäß einem bevorzugten Ausführungsbeispiel Die Hauptkennungslänge "L", wie über die Leitung l 2027 gesendet, wird über einen Subtrahierer 2050 eine Verschiebezahl für eine Verschiebeeinrichtung 2051. Die von der Leitung l 2026 gesendete Hauptkennung MK wird in der Verschiebeeinrichtung 2051 um (32 - L) Bits nach links verschoben. Der Inhalt des Registers 2052 wird über die Leitung 2066 als Kopfadresse des Bereichs, in dem die empfangene Datengruppe im lokalen Speicher eingespeichert wird, an diesen lokalen Speicher gesendet. Ferner wird dieser Inhalt dazu verwendet, die Speicherzugriffssteuerung 2033 (Fig. 24) über die Leitung l 2063 zu initialisieren. Diese Speicherzugriffssteuerung 2033 sendet den Lesebefehl an den lokalen Speicher. Der Inhalt des Registers 2052 wird durch einen +4-Addierer 2053 um +4 erhöht und dann über die Leitung l 2060 an den lokalen Speicher geliefert, bis entweder die empfangenen Daten aufgefunden sind oder alle Bereiche, in die die empfangene Datengruppe im lokalen Speicher eingespeichert wurde, herausgefunden sind, und gleichzeitig wird die Leseanforderung von der Speicherzugriffssteuerung 2033 hergeleitet.
- Wenn die empfangenen Daten herausgefunden wurden, wird die entsprechende Kennzeicheninformation "1" vom lokalen Speicher 2003 (Fig. 24) über die Leitung l 2061 an das Register 2058 gesendet. Wenn die Kennzeicheninformation "1" in das Register 2058 eingetragen wird, wird die Ungültigmachschaltung 2059 initialisiert und es wird das Kennzeichen-Ungültigmachsignal übertragen, wodurch das Kennzeichen, das der Adresse zum Lesen der empfangenen Daten im lokalen Speicher 2003 (Fig. 24) entspricht, ungültig gemacht wird, d.h. auf "0" gesetzt wird. Ferner wird der Abschluss der Leseanforderung über das ODER-Gatter 2054 und die Leitung l 2063 an die Speicherzugriffssteuerung 2033 (Fig. 24) mitgeteilt, und das Bedindungscoderegister cc 2019 (Fig. 24) wird über die Leitung l 2039 gesetzt. Dann wird ein Signal 2055 zum Ungültig machen des im Register 2055 eingespeicherten Kennzeichens über die Leitung l 2033 an den lokalen Speicher geliefert. Außerdem werden die empfangenen Daten über das Universalregister gesendet, die unteren (32-L) Bits der dabei herausgefundenen Adresse werden herausgeschnitten, und ferner erfolgt eine Verschiebung um zwei Bits nach rechts in der Verschiebeeinrichtung 2057, und danach erfolgt eine Übertragung als Unterkennung SK über die Leitung l 2029 an das spezifizierte Universalregister.
- Wenn alle Bereiche, in die die empfangenen Datengruppe eingespeichert wurde, herausgefunden sind (d.h., dass keine gesendeten Daten aufgefunden wurden), erfolgt durch eine Spalteninkrementierung der Spalte (32-L) in der + 4-Addiererschaltung eine Beurteilung, der Abschluss der Leseanforderung hinsichtlich der Speicherzugriffssteuerung 2033 (Fig. 24) wird über die ODER-Gatter 2054 und die Leitung l 2031 mitgeteilt und danach wird 11011 in das Bedingungscoderegister cc 2019 eingetragen. Das heißt, dass keine empfangenen Daten aufgefunden wurden.
- So wurde ein Empfangsbefehl ausgeführt.
- Nach Abschluss dieses Empfangsbefehls liest die Befehlsabrufeinheit 2031 den wohlbekannten "bedingten Verzweigungsbefehl" aus dem Speicher 2003 aus, um zu beurteilen, ob die für den folgenden Befehl vorbereiteten Daten erfolgreich empfangen wurden oder nicht. Dann führt die Befehlsabrufeinheit 2031 den bedingten Verzweigungsbefehl aus, und sie verzweigt den oben beschriebenen, empfangenen Befehl, wenn der Inhalt im Bedingungscoderegister 2019 den Wert "0" hat. Wenn der Inhalt des Bedingungscoderegisters 2019 den Wert "1" hat, wird die auf diesen bedingten Verzweigungsbefehl folgende Befehlsabfolge aus dem Speicher 2003 ausgelesen und dann ausgeführt. Diese Befehlsabfolge enthält eine Befehlsabfolge zum Berechnen der empfangenen Daten. Zum Beispiel entspricht diese Bedingung dem maximalen Datenwert, d.h. derselben Hauptkennung, wie sie aus den Daten innerhalb der Gruppe herausgesucht wurde. Der Grund, weswegen während der Ausführung des empfangenen Befehls sowohl die empfangenen Daten als auch die Unterkennung empfangen werden, besteht darin, dass die Unterkennung SK als Nummer zum Kennzeichnen des Datenwerts mit dem Maximalwert verwendet wird.
- Nun wird die Skalarbefehlsabfolge zum Herausfinden des Maximalwerts zusammengefasst. Es erfolgt eine Bestimmung dahingehend, dass die Nummer eines Universalregisters in der Universalregistergruppe 2015 auf das Maximum des Speichers GR4 gesetzt wird, das andere Universalregister (diese Nummer ist G5) auf den Unterkennungsspeicher mit dem zugehörigen Maximalwert gesetzt wird und die Anfangswerte dieser Universalregister auf "0" gesetzt werden. Als Empfangsbefehl und als folgender Befehl des bedingten Verzweigungsbefehls werden die beiden empfangenen Daten im Universalregister mit der Nummer GR4 im Skalarrechner 2016 miteinander verglichen. Dann wird die Befehlsabfolge dazu verwendet, derartige Prozesse auszuführen, dass der Datenwert mit dem größeren Wert in das Universalregister mit der Nummer (GR1 + 1) eingespeichert wird; sowohl die Unterkennung SK für die empfangenen Daten im Universalregister mit der Nummer GR5 als auch eine der Unterkennungen SK für das Universalregister mit GR5 werden auf das oben beschriebene Vergleichsergebnis hin ausgewählt und danach in das Universalregister mit der Nummer GR5 eingespeichert.
- Nachdem diese Befehlsabfolge ausgeführt ist, wird die Gesamtanzahl der empfangenen Daten gezählt und es wird eine "Verzweigung zum Zählregister" ausgeführt, um die Verzweigung auszuführen, und zwar abhängig von der Bedingung, ob diese Gesamtzahl eine vorbestimmte Elementzahl erreicht hat oder nicht. Anders gesagt, wird die erforderliche Elementzahl der empfangenen Daten vorab in das Universalregister mit der Nummer CR6 eingetragen, diese Elementzahl wird während der Befehlsausführung um eins herabgezählt und auch wird, wenn dieser Wert nicht null ist, der Kontrollprozess zu einem Sprung zum Befehl für die Adresse gebracht, wie vorab in das durch diesen Befehl spezifizierte Universalregister eingespeichert. Da diese Adresse als Adresse des oben beschriebenen Empfangsbefehls verwendet wird, wird der Empfangsbefehl erneut ausgeführt, wenn die empfangene Elementzahl noch nicht eine vorbestimmte Elementzahl für die gewünschten, empfangenen Daten erreicht hat.
- Wie zuvor beschrieben, können gemäß dem oben beschriebenen Empfangsbefehl mehrere durch die Hauptkennung MK aus dem lokalen Speicher 2003 spezifizierte Daten aus diesem lokalen Speicher, unabhängig vom Wert der Unterkennung SK, ausgelesen werden, und die Berechnung für die durch den Empfangsbefehl gelesenen Daten wird äusgeführt, während die folgenden Daten vom Datenübertragungsnetzwerk in den lokalen Speicher 2003 übertragen werden. So können die Daten gemäß dem derzeit bevorzugten Ausführungsbeispiel unabhängig von einer Differenz in der Unterkennung SK aus dem lokalen Speicher ausgelesen und verarbeitet werden.
- Andere Befehlsanweisungen, wie sie beim Parallelcomputer gemäß dem derzeit bevorzugten Ausführungsbeispiel verwendet werden, umfassen Formate EMPFANGEN VR1, CR1 und CR3. Es sei darauf hingewiesen, dass die Empfangsbefehle GR2 und GR3 dieselben wie die Befehle sind, d.h. die Hauptkennung MK und die Hauptkennungslänge L, die deren Länge kennzeichnet. VR1 bezeichnet die Nummer des Vektorregisters zum Einspeichern der empfangenen Daten auf diesen Empfangsbefehl hin. Das heißt, dass dieser Befehl beinhaltet, dass die Hauptkennung MK aus dem lokalen Speicher 2003 die übereinstimmenden Daten mittels der Empfangssteuerung 2014 liest, wobei die gelesenen Daten in das Vektorregister mit der Nummer VR1 eingespeichert werden. Dabei wird die Unterkennung SK, wie sie an die aus dem lokalen Speicher 2003 gelesenen Daten angefügt wurde, durch die Empfangssteuerung 2014 auf ähnliche Weise wie im vorigen Fall erzeugt, und sie wird dazu verwendet, die Datenspeicherungsposition innerhalb des Vektorregisters zu spezifizieren. Nun wird eine Funktion der Vorrichtung während der Ausführung dieses Befehls beschrieben.
- Wenn dieser Befehl in das Befehlsregister 2030 eingespeichert wird, sendet die Befehlssteuerung 2013 die durch diesen Befehl spezifizierte Vektorregisternummer VR1 über die Leitung 2035 zu Vektorprozesszwecken, und es werden auch sowohl die Hauptkennung MK als auch die Hauptkennungslänge "L" von der Universalregistergruppe 2015 an die Empfangssteuerung 2014 gesendet, ähnlich wie beim ersten Empfangsbefehl, um den lokalen Speicher zu durchsuchen. Wenn die der Kennung MK entsprechenden Daten ausgelesen werden, werden diese Daten und die an sie angefügte Unterkennung SK über die jeweiligen Leitungen l 2025 und l 2027 an die Vektorprozesseinheit 2017 gesendet. Es wird nun auf Fig. 27 Bezug genommen, gemäß der diese Vektorprozesseinheit 2017 aus folgendem besteht: der Vektorregistergruppe 2070, dem Vektorrechner 2071, dem lokalen Speicher 2003 (Fig. 24), dem Vektorrechner 2071, der Auswähleinrichtung 2077 zum Auswählen des Vektorregisters in das die von der Empfangssteuerung 2014 gelieferten Vektordaten eingeschrieben werden sollen, die Auswähleinrichtung 2008 zum Auswählen des Vektorregisters, durch das die Vektordaten an den Vektorrechner 2071 geliefert werden sollen, die Schreibschaltung 2071W, die mit jeweiligen Vektorregistern versehen ist, und die Ausleseschaltung 2071R. In Fig. 27 sind nur die Schreibschaltung 2071W und die Ausleseschaltung 2071R für das Vektorregister 2070-1 dargestellt. Diese Schreibschaltung 2071W besteht aus einem WA-Register 2072 zum Einspeichern der Schreibadresse; einer +1-Aufwärtszählerschaltung 2074 und einer Auswähleinrichtung 2006 zum Auswählen eines Eingangssignals von der Leitung l 2043 und eines Ausgangssignals von der + 1-Aufwärtszählerschaltung 2074, um ein Ausgangssignal an ein WAP-Register 2002 zu liefern. Die Ausleseschaltung 2071R besteht aus einem RA-Register 2073 zum Speichern der Ausleseadresse sowie einer +1-Aufwärtszählerschaltung 2075 zum Hochzählen dieses Werts um +1.
- Wenn der oben beschriebene Empfangsbefehl ausgeführt wird, wird die Vektorregisternummer VR1 zum Spezifizieren dieses Befehls, wie von der Befehlsausführungssteuerung 2013 (Fig. 24) über die Leitung l 2080 geliefert, in die Auswähleinrichtung 2077 eingegeben, und die von der Empfangssteuerung 2014 (Fig. 24) auf die Leitung l 2008 ausgelesenen Daten werden an das Vektorregister mit der Nummer VR1 gesendet. Es sei angenommen, dass das Vektorregister 2070-1 dem Vektorregister mit der Nummer VR1 entspricht, wie durch den oben angegebenen Empfangsbefehl angewiesen. Dabei wird die mit diesem Vektorregister 2070-1 in Beziehung stehende Schreibschaltung 2071W durch eine Befehlsdecodiereinheit 2013 initialisiert, und gleichzeitig wählt die Auswähleinrichtung 2076 das von der Leitung l 2043 gelieferte Eingangssignal aus. Im Ergebnis wird die von der Empfangssteuerung 2014 auf die Leitung l 2043 ausgegebene Unterkennung SK in das WA-Register 2072 eingetragen, so dass die von der Leitung l 2044 gelieferten Daten entsprechend der Unterkennung SK in das Speicherbauteil des Vektorregisters 2070-1 eingeschrieben werden. Wie es aus der vorstehenden Beschreibung ersichtlich ist, wird die Nummer, die den Vektordaten zugeordnet ist, als Hauptkennung MK verwendet, und es wird auch die Nummer, die den jeweiligen Elementen in diesen Vektordaten zugeordnet ist, als Unterkennung SK verwendet, so dass die empfangenen Daten (Vektorelement) in eines der Vektorregister eingeschrieben werden können.
- Es sei darauf hingewiesen, dass sich während der Ausführung der Empfangsanweisung, die Tatsache, ob Daten zum Ändern der Hauptkennung MK vorliegen oder nicht, im Bedingungscoderegister 2021 (Fig. 24) widerspiegelt, was ähnlich dem Betrieb der Empfangsanweisung, wie in der ersten Beschreibung beschrieben, ist. Auf ähnliche Weise sind die Operationen, bei denen der bedingte Verzweigungsbefehl ausgeführt wird, um den oben angegebenen Empfangsbefehl zu ändern, und der oben beschriebene Empfangsbefehl, der bei einem Fehlschlag des Datenempfangs erneut ausgeführt wird, dieselben wie bei der Ausführung des Empfangsbefehls, wie zu Beginn beschrieben.
- Nachdem der oben beschriebene Empfangsbefehl ausgeführt ist, wird, um zu beurteilen, ob die erforderliche Vektorelementanzahl empfangen wurde, derselbe bedingte Verzweigungsbefehl verwendet, und dann wird der oben beschriebene Empfangsbefehl die erforderliche Anzahl von Malen ausgeführt.
- Infolgedessen kann die gewünschte Anzahl von Vektorelementen in ein Vektorregister eingespeichert werden. Danach kann, durch Ausführen entweder eines Befehls, durch den der Vektorberechnungsbefehl oder die Vektordaten in den Speicher 2003 (Fig. 24) eingespeichert werden, oder eines anderen Befehls, durch den die Vektordaten aus dem Speicher 2003 geladen werden, der Datenprozess für die empfangenen Vektordaten ausgeführt werden.
- Es ist auch möglich, dass ein anderer Empfangsbefehl als einer von den oben beschriebenen zwei Typen von Empfangsbefehlen ausgeführt wird. Zum Beispiel können die Daten entweder in ein Universalregister oder ein anderes Register als das Vektorregister (z. B. ein nicht dargestelltes Gleitkommaregister) eingespeichert werden.
- Wie es aus den obigen Beschreibungen ersichtlich ist, wird die zu den jeweiligen Daten hinzugefügte Kennung (Hauptkennung MK) beim sechsten bevorzugten Ausführungsbeispiel verwendet, wodurch mehrere zu dieser Kennung gehörige Daten aus dem lokalen Speicher abgerufen werden können. Im Ergebnis kann zu diesem Zweck die Idee gemäß dem sechsten bevorzugten Ausführungsbeispiel auf einen solchen Fall angewandt werden, bei dem keine Unterkennung an die Daten angefügt ist. Außerdem ist es, wenn die Hauptkennungslänge "L" konstant ist, nicht erforderlich, dass eine Kennungslänge L für Aufsuchzwecke von der Verarbeitungsvorrichtung 2005 zur Empfangssteuerung 2014 geliefert wird. Jedoch kann, wie bei der derzeit bevorzugten Erfindung, dann, wenn die Kennungslänge spezifiziert wird, dieselbe Empfangssteuerung 2014 im Fall verschiedener Hauptkennungslängen verwendet werden.
- Es wird nun auf Fig. 28 Bezug genommen, um einen Parallelcomputer gemäß einem siebten bevorzugten Ausführungsbeispiel der Erfindung zu beschreiben. Es sei darauf hingewiesen, dass dieselben Bezugszahlen, wie sie beim sechsten bevorzugten Ausführungsbeispiel (Fig. 24) dargestellt sind, dazu verwendet werden, dieselben Schaltungselement zu bezeichnen, wie sie in Fig. 28 dargestellt sind.
- Ein Unterschiedspunkt zwischen dem sechsten und siebten bevorzugten Ausführungsbeispiel besteht darin, eine Adressenerzeugungseinheit 2018 im Prozessorelement auf der Datenempfangsseite nicht im Prozessorelement auf der Datensendeseite zu verwenden.
- Gemäß dem Parallelcomputer des siebten bevorzugten Ausführungsbeispiels wird eine Nachricht 2063 aus einer Zielprozessorelementnummer, einer Länge "L", einer Hauptkennung, einer Hauptkennung MK, einer Unterkennung SK und Daten beim Datenübertragungsprozess zusammengestellt.
- Diese Nachricht wird über ein Datenübertragungsnetzwerk 2001 in einen Empfangspuffer 2064 in einem Empfangsprozessorelement eingespeichert. Die Hauptkennungslänge "L", die Hauptkennung MK und die Unterkennung SK in der in den Empfangspuffer 2064 eingespeicherten Nachricht werden an die Adressenerzeugungseinheit 2018 übertragen In dieser Adressenerzeugungseinheit 2018 wird die Schreibadresse der Empfangsdaten im lokalen Speicher erzeugt.
- Nun wird unter Bezugnahme auf Fig. 29 ein Parallelcomputer gemäß einem achten bevorzugten Ausführungsbeispiel der Erfindung beschrieben.
- Es sei darauf hingewiesen, dass dieselben Bezugszahlen, wie sie beim sechsten bevorzugten Ausführungsbeispiel (Fig. 24) angegeben sind, dazu verwendet werden, dieselben Schaltungselement zu bezeichnen, wie sie in Fig. 29 dargestellt sind.
- Ein Unterschiedspunkt zwischen dem sechsten und achten bevorzugten Ausführungsbeispiel besteht darin, einen Empfangsspeicher zu verwenden. Beim Parallelcomputer gemäß dem achten bevorzugten Ausführungsbeispiel wird ausschließlich ein Empfangsspeicher mit einem Kennzeichen verwendet. In einem lokalen Speicher 2009 existiert kein Kennzeichen.
- Hinsichtlich des Empfangsspeichers werden sowohl der Schreibprozess von einem Empfangspuffer 2004 als auch der Ausleseprozess von einer Empfangssteuerung 2014 verwendet.
- Eine Adresse 2004-1 in der in den Empfangspuffer 2004 eingespeicherten Nachricht kennzeichnet die Adresse eines Empfangsspeichers 2010, und Empfangsdaten 2004-2 werden auf eine von einer Schreibsteuerung 2031 gelieferte Schreibanforderung hin in eine Adresse 2004-1 des Empfangsspeichers 2010 eingeschrieben.
- Beim Datenempfangsprozess werden andererseits durch die mitialisierte Empfangssteuerung 2014 und die Lesesteuerung 2035 die Empfangsdaten vom Empfangsspeicher 2010 auf ähnliche Weise gelesen wie die Empfangsdaten beim sechsten bevorzugten Ausführungsbeispiel aus dem lokalen Speicher gelesen werden.
- Durch das achte bevorzugte Ausführungsbeispiel existieren spezielle Vorteile wie folgt:
- (1) Ein Kennzeichen muss nicht an alle Speicherbereiche des lokalen Speichers angefügt werden, wie dies beim sechsten Ausführungsbeispiel ausgeführt wird.
- (2) Da der Empfangsspeicher 2010 vom lokalen Speicher 2009 getrennt ist, existiert keine Konkurrenz zwischen einer vom Empfangspuffer 2004 für den Empfangsspeicher 2010 hergeleiteten Schreibanforderung und einer Zugriffsanforderung für den lokalen Speicher durch einen normalen Befehl, wie er von der Befehlsverarbeitungseinheit 2006 hergeleitet wird.
- (3) Die Adresse des lokalen Speichers wird zum Verarbeiten der Daten im Prozessorelement während der Programmerzeugung verwendet. Für die Datenkommunikation zwischen den Prozessorelementen wird die Empfangsadresse verwendet, wie sie unter Verwendung der Hauptkennung MK, der Unterkennung SK und der Hauptkennungslänge "L" erzeugt wurde, so dass die Adresse des Prozessorelement-Berechnungsprozesses von der Adresse der Datenkommunikation zwischen den Prozessorelementen getrennt werden kann. Infolgedessen kann das Programm leicht erstellt werden.
- Beim achten bevorzugten Ausführungsbeispiel war der Adressenraum des lokalen Speichers 2009 vom Adressenraum des Empfangsspeichers vollständig getrennt. Angesichts der Hardwarerealisierung kann der Adressenraum des Empfangsspeichers jedoch als Teil des Adressenraums des lokalen Speichers 2009 realisiert werden. Zum Beispiel wird ein vorbestimmter Bereich des lokalen Speichers ab einer zuvor spezifizierten Adresse als Empfangsspeicherbereich verwendet, und ein Kennzeichen wird als Worteinheit innerhalb eines Empfangsspeichergebiets verwendet.
- Diese Anordnungen können unter den folgenden Bedingungen realisiert werden. Wenn nämlich die Sendeadresse erzeugt wird und die Empfangsadresse in der Empfangssteuerung 2014 erzeugt wird, wird die Kopfadresse des Empfangsspeichers zu dieser Sendeadresse und der Empfangsadresse addiert.
- Fig. 30 veranschaulicht eine Adressenerzeugungseinheit 2018 gemäß einem bevorzugten Ausführungsbeispiel In dieser Figur sind dieselben Bezugszahlen, wie sie in Fig. 25 dargestellt sind, dazu verwendet, dieselben Schaltungselemente zu bezeichnen. In der Adressenerzeugungseinheit 2018 sind ein Register 2044 und ein die Kopfadresse des Empfangsspeichers anzeigender Addierer 2045 verwendet.
- Fig. 31 veranschaulicht eine Empfangssteuerung 2014 gemäß einem bevorzugten Ausführungsbeispiel In dieser Figur werden dieselben Bezugszahlen, wie sie in Fig. 26 dargestellt sind, dazu verwendet, dieselben Schaltungselemente zu bezeichnen. In der Empfangssteuerung 2014 sind ein Register 2068 und ein Addierer 2069 zum Repräsentieren einer Kopfadresse des Empfangsspeichers neu verwendet.
- Da diese Adressenerzeugungseinheit und die Empfangssteuerung modifiziert sind, ist es nicht erforderlich, den Realisierungsbereich des Empfangsspeichers im lokalen Speicher 2009 angesichts des Programms zu erkennen.
- Nun wird auf Fig. 32 Bezug genommen, um einen Parallelcomputer gemäß einem neunten bevorzugten Ausführungsbeispiel der Erfindung zu beschreiben. Beim neunten bevorzugten Ausführungsbeispiel werden eine an die zu sendenden Daten anzufügende Kennung, nämlich eine diese Daten kennzeichnende Hauptkennung, und auch eine Unterkennung zum Unterscheiden dieser Daten von anderen Daten in dieser Datengruppe verwendet, und die Hauptkennung ruft dieselben Daten ab, um die Daten aus dem lokalen Speicher auszulesen, was den Maßnahmen beim sechsten bevorzugten Ausführungsbeispiel ähnlich ist.
- Jedoch wurde beim vorigen sechsten bevorzugten Ausführungsbeispiel ein einzelner Datenwert auf einen Sendebefehl hin an ein anderes Prozessorelement übertragen und ein einzelner Datenwert wurde auf einen Empfangsbefehl hin vom assoziativen Speicherbauteil gelesen. Beim neunten bevorzugten Ausführungsbeispiel wird dagegen auf einen Sendebefehl hin eine Datengruppe an das andere Datenelement gesendet und es werden auf einen Empfangsbefehl hin mehrere Daten aus dem lokalen Speicher ausgelesen. Nun wird ein detaillierter Vorgang betreffend die oben beschriebenen, kennzeichnenden Operationen beschrieben.
- Es sei darauf hingewiesen, dass dieselben Bezugszahlen, wie sie in Fig. 24 dargestellt sind, dazu verwendet werden, dieselben oder ähnliche Schaltungselemente, wie sie in Fig. 32 dargestellt sind, zu bezeichnen. Hinsichtlich Schaltungsanordnungen, die sich von denen unterscheiden, die in Fig. 24 dargestellt sind, ist die Bezugszahl 2090 eine Empfangseinheit, die Bezugszahl 2091 bezeichnet eine Sendeeinheit, die Bezugszahl 2093 kennzeichnet eine Empfangssteuerung, die Bezugszahlen 2099 und 2096 repräsentieren Zählerschaltungen, die Bezugszahlen 2095 und 2097 bezeichnen Steuerschaltungen und die Bezugszahl 2092 bezeichnet eine Speichersteuerung.
- Die Empfangseinheit 2090 und die Sendeeinheit 2091 werden unabhängig von der Befehlsprozesseinheit 2006 unter Steuerung durch die jeweiligen Steuerschaltungen 2095 und 2097 betrieben. Als diese Steuerschaltungen 2095 und 2097 kann z. B. ein Mikroprozessor verwendet werden. Der Speichercontroller 2092 ist durch Modifizieren des in Fig. 24 dargestellten Speichercontrollers 2007 realisiert. Die Funktionen dieses Speichercontrollers 2092 entsprechen dreierlei, nämlich der Schreiboperation durch den Empfangspuffer 2004 am Zugriffsende, der Leseoperation durch die Empfangseinheit 2090 und den Schreib/Lese-Operationen durch die Befehlsprozesseinheit. Die Empfangssteuerung 2093 wird dadurch erhalten, dass die in Fig. 24 dargestellte Empfangssteuerung 2014 modifiziert wird.
- Als erstes wird der Datensendeprozess beschrieben. Datensendebefehle, wie sie im Parallelcomputer gemäß dem neunten bevorzugten Ausführungsbeispiel verwendet werden, sind die folgenden:
- SENDEN, VR1, GR2, GR4.
- Dabei ist SENDEN ein Operationscode, VR1 kennzeichnet die Nummer des Vektorregister, an das zu senden ist, GR2 bis GR4 kennzeichnen die Nummern der Universalregister zum Einspeichern der Hauptkennung MK hinsichtlich der zu übertragenden Daten, die Vektorlänge VL und die zugehörige Zielprozessor elementnummer. Außerdem wird die Hauptkennungslänge L vorab in das Universalregister mit der Nummer (GR2) + 1 eingespeichert.
- Wenn dieser Sendebefehl in das Befehlsregister eingetragen wird, decodiert die Befehlsdecodiereinheit 2013 den Befehl; die Zielprozessorelementnummer wird als Inhalt des oben angegebenen Registers an den Sendepuffer 2005 gesendet; auf ähnliche Weise werden die Hauptkennung MK und die Hauptkennungslänge L als Inhalte des Universalregisters an die Adressenerzeugungseinheit gesendet; die Vektorlänge VL wird über die Leitung l 2101 an die Zählerschaltung 2096 geliefert; die Nummer des Vektorregisters zum Einspeichern der zu sendenden Vektordaten wird an die Vektorprozesseinheit 2017 gesendet, und ferner initialisiert die Befehlsteuerung 2013 die Steuerschaltung 2097 und die Vektorprozesseinheit 2017. Danach beginnt diese Befehlssteuerung 2013 mit dem Decodiervorgang für den folgenden Befehl.
- Die Steuerschaltung 2097 setzt die Zählerschaltung 2096 über die Leitung l 2102 zurück. Von der Vektorprozesseinheit werden die Vektordaten anschließend mit jeweils einem Element ausgegeben und dann über die Leitung l 2022 in den Sendepuffer eingetragen. Ferner werden von der Vektorprozesseinheit sowohl die Daten als auch die Elementanzahl über die Leitung l 2100 als Unterkennung SK an die Adressenerzeugungseinheit 2018 gesendet. In der Adressenerzeugungseinheit 2018 werden die Adresse im lokalen Speicher im Zielprozessorelement und drei einzelne Eingangsinformationen erzeugt und an den Sendepuffer 2005 gesendet. Vom Sendepuffer wird die Nachricht für jedes Element der Vektordaten erzeugt und dann an das Datenübertragungsnetzwerk übertragen.
- Jedesmal dann, wenn Daten gesendet werden, führt die Zählerschaltung ihre Zähloperation aus und teilt das Ende der Datenübertragung über die Leitung l 2103 an die Steuerschaltung 2097 mit, wenn der Zählvorgang VL mal wiederholt wurde. Wie es z. B. in Fig. 33 veranschaulicht ist, besteht die Zählerschaltung 2096 aus zwei Registern, einem (+1)-Addierer und einer Komparatorschaltung.
- Es existieren zwei Verfahren, das Ende der Sendebefehlsausführung durch die Befehlssteuerung 2013 mitzuteilen. Als erstes Verfahren führt die Steuerschaltung 2097 einen Interrupt für die Befehlssteuerung 2013 aus. Als zweites Verfahren wird ein Befehl zum regelmäßigen Überprüfen des Zustands der Datenübertragungsvorrichtung in der Befehlsverarbeitungsvorrichtung 2006 ausgegeben. Als derartiger Befehl kann der folgende Befehl TEST SENDEN angesehen werden:
- TSENDEN.
- TSENDEN entspricht dem Operationscode des Befehls TEST SENDEN. Wenn der Datenübertragungsprozess noch nicht abgeschlossen ist, wird "1" in das Bedingungscoderegister cc 2019 eingetragen, wohingegen dann, wenn der Datenübertragungsprozess abgeschlossen ist, "0" in dieses Register eingetragen wird. Die Befehlssteuerung 2013 überprüft den Inhalt dieses Bedingungscoderegisters cc 2019, um die Bedingungen der Datensendevorrichtung 2019 zu erfassen.
- Die Merkmale gemäß dem neunten bevorzugten Ausführungsbeispiel sind dergestalt, dass die Unterkennung SK fortlaufend mit den Daten erzeugt wird und darüber hinaus die Adresse des lokalen Speichers im Zielprozessorelement unter Verwendung der durch den Befehl spezifizierten Hauptkennung MK erzeugt wird, mit dem Ergebnis, dass auf einen Befehl hin eine Datengruppe übertragen wird.
- Die beim neunten bevorzugten Ausführungsbeispiel verwendete Maßnahme ist ähnlich der beim ersten bevorzugten Ausführungsbeispiel verwendeten, bei der die im Datenübertragungsnetzwerk 2012 vorhandenen Nachrichtendaten in den lokalen Speicher 2003 im Zielprozessorelement eingespeichert werden.
- Nachfolgend wird der Datenempfangsprozess beschrieben. Die beim neunten bevorzugten Ausführungsbeispiel verwendeten Empfangsbefehle sind die folgenden: EMPFANGEN, VR1, GR2 und GR3.
- Es sei darauf hingewiesen, dass EMPFANGEN ein Operationscode dieses Befehls ist, VR1 die Nummer des Vektorregisters für den Empfang ist, GR2 und GR3 die Nummern der Universalregister zum Einspeichern der Hauptkennung MK hinsichtlich der zu empfangenden Daten und der zugehörigen Vektorlänge VL sind. Außerdem wird die Hauptkennungslänge L vorab in das Universalregister mit der Nummer (GR2) + 1 eingespeichert.
- Wenn dieser Empfangsbefehl in das Befehlsregister 2030 eingetragen wird, sendet die Befehlssteuerung 2013 die Hauptkennung MK und die Hauptkennungslänge L als Inhalt des oben angegebenen Registers an die Empfangssteuerung 2093; sie sendet die Vektorlänge VL an die Zählerschaltung 2094; sie sendet die Nummer des Vektorregisters zum Einspeichern der empfangenen Vektordaten, und ferner initialisiert die Befehissteuerung 2017 sowohl die Steuerschaltung 2095 als auch die Vektorprozesseinheit 2017. Danach beginnt die Befehlssteuerung 2013 mit der Ausführung des Decodiervorgangs für den nächsten Befehl.
- Die Steuerschaltung 2095 setzt die Zählerschaltung 2094 zurück. Anschließend wird die Empfangssteuerung 2093 initialisiert. Obwohl die Empfangssteuerung 2093 der Empfangssteuerung (Fig. 26) gemäß dem sechsten bevorzugten Ausführungsbeispiel ähnlich ist, existiert ein Unterschiedspunkt dahingehend, dass alle für die Verarbeitung des ersten Empfangsbefehls erforderlichen Datengruppen beim neunten bevorzugten Ausführungsbeispiel empfangen werden. Im Ergebnis führt der (+4)-Addierer 2053 (Fig. 26) keinen Hochzählvorgang aus, bevor nicht die Daten für die im Register 2052 (Fig. 26) eingespeicherte Adresse empfangen sind. Anders gesagt, wird, wenn die Daten zu der im Register 2052 (Fig. 26) eingespeicherten Adresse empfangen sind, der (+4)-Addierer 2053 (Fig. 26) initialisiert, die Adresse im Register 2052 (Fig. 26) wird aktualisiert und es werden die folgenden Daten empfangen. Gleichzeitig wird die Zählerschaltung 2094 so initialisiert, dass der Zähler um +1 hochzählt Der Aufbau der Zählerschaltung 2094 ist derselbe wie der der Zählerschaltung 2096.
- Die von der Empfangssteuerung 2093 gelesenen Daten werden zusammen mit der Unterkennung SK an die Vektorverarbeitungseinheit 2017 übertragen, und dann werden sie in das durch den Empfangsbefehl spezifizierte Vektorregister eingespeichert. Die Unterkennung SK wird dabei als Elementnummer verwendet. Jedesmal dann, wenn die Zählerschaltung 2094 Daten empfängt, wird der Zählvorgang ausgeführt und das Ende des Datenempfangs wird an die Steuerschaltung 2095 mitgeteilt, wenn der Zählvorgang entsprechend der Vektorlänge VL Male wiederholt wurde.
- Es existieren zwei Verfahren hinsichtlich der Ankündigung des Endes des empfangenen Befehls an die Befehlssteuerung 2013, die ähnlich den Verfahren bei der Datenübertragungsvorrichtung sind. Als erstes Verfahren führt die Steuerschaltung 2095 einen Interruptvorgang für die Befehlssteuerung 2013 aus. Als zweites Verfahren wird ein Befehl zum regelmäßigen überprüfen des Zustands der Datenempfangsvorrichtung in der Befehlsverarbeitungsvorrichtung 2006 ausgegeben. Als derartiger Befehl ist z. B. der folgende Befehl TEST EMPFANGEN denkbar:
- TRCV.
- TRCV ist ein Operationscode des Befehls TEST EMPFANGEN. Wenn der Datenempfangsprozess noch nicht abgeschlossen ist, ist "1" in das Bedingungscoderegister cc 2019 eingetragen, wohingegen dann, wenn der Datenempfangsprozess abgeschlossen ist, dort "0" eingetragen ist. Die Befehlssteuerung 2013 kann den Zustand der Datenempfangsvorrichtung durch Überprüfen des Inhalts dieses Bedingungscodesregisters cc 2019 erkennen.
- Gemäß der Erfindung kann bei einem Parallelcomputer, der aus einer Vielzahl von Prozessorelementen mit lokalen Speichern besteht, wobei Daten von einem anderen Prozessorelement in den lokalen Speicher eingeschrieben werden, der während der Datenkommunikation zwischen Prozessoren auftretende Overhead beträchtlich verringert werden, so dass der Parallelcomputer höheres Funktionsvermögen aufweisen kann.
- Auch können gemäß der Erfindung, Daten, wie sie für einen Prozess erforderlich sind, bei dem eine Austauschregel erfüllt werden kann, im Empfangsprozessor in der Reihenfolge der Daten, wie sie im lokalen Speicher angekommen sind, abgerufen werden, so dass die Zeitperiode, während der sich der Datenempfangsprozessor im Ruhezustand befindet, verkürzt werden kann.
- Außerdem kann, da die Grenze zum Zweiteilen der Kennungen beim erfindungsgemäßen Parallelcomputer frei bestimmt werden kann, eine Kennung mit begrenzter Länge wirkungsvoll genutzt werden.
- Ferner kann eine Klarstellung betreffend Datenempfang von mehreren Prozessorelementen durch nur einen Befehl zu einer Zeit ausgeführt werden. Infolgedessen sind selbst dann, wenn mehrere Prozessorelemente vorliegen und auch mehrere Daten gesendet und empfangen werden, nur mehrere Befehle erforderlich. Demgemäß kann ein geringerer Wirkungsgrad des Parallelprozesses durch Ausführen einer großen Menge von Befehlsprozessen hinsichtlich einer Datenkommunikation gemäß der Erfindung verhindert werden.
- 1 Prozessorelement
- 2 Netzwerk
- 4 Empfangseinheit
- 5 Sendeeinheit
- 8 Empfangsspeicher
- 30 Befehlsabrufschaltung
- 32 ALU
- 33 Ungültigmachschaltung
- 34 Universalregister
- 35 Programmzähler
- 36 Befehlsregister
- 37 Befehlsdecodierer & Steuerung
- 38 Speicherzugriffssteuerung
- 40 Empfangsregister
- 40-1 Adresse eines lokalen Speichers
- 40-2 Daten
- 41 Schreibsteuerung
- 50-1 Ziel
- 50-2 Adresse des lokalen Speichers
- 50-3 Daten
- 81 Speicherraum eines virtuellen Empfangsspeichers
- 91 Speicherraum eines lokalen Speichers 6A
- 92 Bereich für einen virtuellen Empfangsspeicher
- 100 Adressenumsetzeinheit
- 102 Addierer
- 103 3-Bit-Linksverschiebeeinrichtung
- 110 Adressenumsetzeinheit
- 113 3-Bit-Linksverschiebeeinrichtung
- 307 Sendesteuerschaltung
- 401 Leseanforderungsgenerator
- 1302 Speicherzugriffsschaltung
- 1303 Vektorregistergruppe
- 1304 Universalregister
- 1306 Adressenerzeugungsschaltung
- 1311 Inkrementierschaltung
- 1313 Dekrementierschaltung
- 1314 Nullerfassungsschaltung
- 1401 Leseanforderungs-Erzeugungseinrichtung
- 2001 Datenübertragungseinrichtung
- 2003 Lokaler Speicher
- 2004 Empfangspuffer
- 2004-1 Adresse
- 2004-2 Daten
- 2005 Sendepuffer
- 2007 Speichercontroller
- 2013 Befehlsdecodierer
- 2014 Empfangssteuerung
- 2016 Skalar-ALU
- 2017 Vektorverarbeitungseinheit
- 2018 Adressenerzeugungsabschnitt
- 2030 Befehlsregister
- 2031 Befehlsabruf
- 2032 Programmzähler
- 2033 Speicherzugriffssteuerung
- 2034 Schreibsteuerung
- 2041 K-Bit-Linksverschiebeeinrichtung
- 2042 2-Bit-Linksverschiebeeinrichtung
- 2043 oder
- 2044 Empfangsspeicher-Startadresse
- 2045 Addierer
- 2051 K-Bit-Linksverschiebeeinrichtung
- 2052 Register
- 2053 K-Bit-Linksverschiebeeinrichtung
- 2054 oder
- 2056 Herausschneiden der unteren K Bits
- 2057 2-Bit-Rechtsverschiebeeinrichtung
- 2058 Register
- 2059 Ungültigmachschaltung
- 2060 Empfangsspeicher-Startadresse
- 2061 Addierer
- 2070 Vektorregister
- 2071 Vektor-ALU
- R1 bei Fig. 4: Registernummer eines Universalregisters, das die Prozessorelementnummer eines Zielprozessorelements enthält
- R2 bei Fig. 4: Registernummer eines Universalregisters, das die Adresse eines Speicherbereichs eines lokalen Speichers des Zielprozessorelements enthält
- R3 bei Fig. 4: Registernummer eines Universalregisters, das Sendedaten enthält
- R1 bei Fig. 5: Registernummer eines Universalregisters, das die Adresse eines lokalen Speichers für zu lesende Empfangsdaten enthält
- R2 bei Fig. 5: Registernummer eines Universalregisters, das die Empfangsdaten enthalten sollte
- ADDER - Addierer
- ADDRESS - Adresse
- COINCIDENT - Übereinstimmung
- CONTROLS - Steuersignale
- DATA - Daten
- DATA TO BE SENT - zu sendende Daten
- DESTINATION PE - Zielprozessorelement
- DESTINATION PE NUMBER - Zielprozessorelementnummer
- FROM - von
- GENERAL RFGISTER NUMBER - Universalregisternummer
- GENERAL PURPOSE REGISTER NUMBER - Universalregisternummer
- INVALIDATING CKT - Ungültigmachschaltung
- MAIN ID - Hauptkennung
- MAIN ID LENGTH - Hauptkennungslänge
- OPERATION CODE - Operationscode
- PROCESSOR - Prozessor
- PROCESSOR ELEMENT - Prozessorelement
- PROGRAM - Programm
- RECEIVED DATA - empfangene Daten
- SEND - senden
- SEND END REPORT - Sendeendebericht
- SUB ID - Unterkennung
- UNRECEIVED ELEMENT NUMBER - Anzahl nicht empfangener Elemente
- VECTOR REGISTER NUMBER - Vektorregisternummer
Claims (8)
1. Parallelcomputer, aufweisend:
eine Vielzahl von Prozessorelenenten (1-1 bis 1-n), die
über ein Netzwerk (2) miteinander verbunden sind,
wobei jedes Prozessorelement für sich selbst folgendes
aufweist:
einen lokalen Speicher (6) zur Aufnahme von Daten und
einem Programm,
einen Prozessor (3) zur Ausführung des Programms,
einen Speicherbereich (6, 8, 92) mit mehreren
Empfangsdatenbereichen zur vorübergehenden Speicherung von von
anderen Prozessorelementen erhaltenen Daten und
entsprechenderweise mehreren Kennzeichenbereichen jeweils zur Speicherung
eines Kennzeichens, das angibt, ob die Daten in dem
entsprechenden Empfangsdatenbereich gültig sind,
eine Übertragungseinrichtung (5) zur Übertragung von
Daten zu anderen Prozessorelementen, und
eine parallel zu dem genannten Prozessor (3) arbeitende
Empfangseinrichtung (4), um von anderen Prozessorelementen
gesendete Daten zu empfangen, die empfangenen Daten in einen
Empfangsdatenbereich zu schreiben und das Kennzeichen in dem
entsprechenden Kennzeichenbereich zur Anzeige, daß die
geschriebenen Daten gültig sind, zu setzen,
wobei der Prozessor (3) mit einer Zugriffseinrichtung
(38, L6 bis L10) versehen ist, um dem Speicherbereich (6, 8,
92) eine Adresse eines Orts in dem Speicherbereich, die von
einem Befehl in einem einen Datenempfang verlangenden
Programm bestimmt ist, zu liefern, die Daten und das Kennzeichen
von dem Ernpfangsdatenbereich und dem Kennzeichenbereich an
dem genannten Ort zu lesen und, falls ein gelesenes
Kennzeichen angibt, daß die entsprechenden Daten nicht gültig sind,
das Kennzeichen von dem gleichen Kennzeichenbereich
wiederholt zu lesen, bis das gelesene Kennzeichen angibt, daß die
entsprechenden Daten gültig sind.
2. Computer nach Anspruch 1, wobei der Enpfangsdatenbereich
(8, 92) in dem lokalen Speicher (6) vorhanden ist und an
jedes Wort des Empfangsdatenbereichs ein Kennzeichen angefügt
ist.
3. Computer nach Anspruch 2, wobei der lokale Speicher aus
einem Bereich (2009) ohne Kennzeichen, zur Speicherung von
Daten oder des Programms und einem Bereich (2010) mit dem
Kennzeichenbereich und dem die empfangenen Daten aufnehmenden
Empfangsdatenbereich aufgebaut ist.
4. Computer nach einem der Ansprüche 1 bis 3, wobei über
das Netzwerk (2) zu übertragende Daten mittels einer
Hauptkennung, die eine Datengruppe, zu der die Daten gehören,
angibt, und einer Unter-Kennung zur Unterscheidung der Daten
von anderen Daten in der Datengruppe eingeteilt ist.
5. Computer nach Anspruch 4, wobei die
Übertragungseinrichtung (5) eine Einrichtung (2005, 2018) beinhaltet, um an das
Netzwerk eine Nachricht mit einer Adresse eines lokalen
Speichers in einem Ziel-Prozessorelement zu übertragen, wobei die
Adresse von der Hauptkennung und der Unter-Kennung gewonnen
wird,
wobei die Empfangseinrichtung (4) eine Einrichtung
(2007) beinhaltet, um eine von dem Netzwerk (2) an das
Prozessorelement gelieferte Nachricht auf der Grundlage der in
der Nachricht enthaltenen Adresse in den lokalen Speicher
(2003) zu schreiben und um gleichzeitig das entsprechende
Kennzeichen gültig zu machen, und
wobei eine Ausleseadressen-Erzeugungseinrichtung (2014)
vorgesehen ist, um in Antwort auf einen Befehl, der das
Auslesen empfangener Daten aus dem lokalen Speicher (2003)
verlangt, auf der Grundlage einer von dem Befehl angegebenen
Wiedergewinnungs-Hauptkennung eine Adresse einer empfangenen
Datengruppe zu erzeugen, die gewünschten empfangenen Daten
aus dem lokalen Speicher zu lesen und die den empfangenen
Daten entsprechende Unter-Kennung zu erzeugen. (Figur 24)
6. Computer nach Anspruch 41 wobei die
Übertragungseinrichtung (5) eine Einrichtung (2065) aufweist, um eine Daten
zusammen mit der entsprechenden Hauptkennung und Unter-Kennung
enthaltende Nachricht an das Netzwerk zu senden,
wobei die Empfangseinrichtung (4) eine Einrichtung
(2007, 2018) aufweist, um aus der Hauptkennung und der Unter-
Kennung, die in einer von dem Netzwerk an das
Prozessorelement gelieferten Nachricht enthalten sind, eine Adresse des
lokalen Speichers (2003) zu erzeugen, die empfangenen Daten
in die genannte Adresse zu holen und gleichzeitig das der
Adresse entsprechende Kennzeichen gültig zu setzen, und
wobei eine Ausleseadressen-Erzeugungseinrichtung (2014)
vorgesehen ist, um in Antwort auf einen Befehl, der das
Auslesen empfangener Daten aus dem lokalen Speicher (2003)
verlangt, auf der Grundlage einer von dem Befehl angegebenen
Wiedergewinnungs-Hauptkennung eine Adresse einer empfangenen
Datengruppe zu erzeugen, die gewünschten empfangenen Daten
aus dem lokalen Speicher zu lesen und die den empfängenen
Daten entsprechende Unter-Kennung zu erzeugen. (Figur 28)
7. Computer nach einem der Ansprüche 4 bis 6, mit einer
Einrichtung (2014, 2018), um eine Adresse in dem lokalen
Speicher (2003) unter Verwendung der Hauptkennung und der
Unter-Kennung sowie Informationen, die die Länge der
Hauptkennung angeben, zu erzeugen.
8. Computer nach Anspruch 2 oder 3, aufweisend:
eine Einrichtung (2013, 2030, 2031), um den Befehl
sequentiell aus dem lokalen Speicher (2003) zu lesen,
eine unabhängig von der Befehlsleseeinrichtung (2013,
2030, 2031) arbeitende Einrichtung (2005, 2091), um auf der
Grundlage einer von der Befehlsleseeinrichtung angegebenen
Datengruppe, einer die Datengruppe angebenden Hauptkennung
und der Zahl der zu übertragenden einzelnen Daten eine
Datenübertragung durchzuführen, und
eine unabhängig von der Befehisleseeinrichtung (2013,
2030, 2031) arbeitende Einrichtung (2004, 2090), um auf der
Grundlage der von der Befehisleseeinrichtung angegebenen
Datengruppe, einer die Datengruppe angebenden Hauptkennung und
der Zahl der empfangenen einzelnen Daten einen Datenempfang
durchzuführen. (Figur 32)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63017073A JPH01194056A (ja) | 1988-01-29 | 1988-01-29 | 並列プロセッサ |
JP63017070A JPH01194055A (ja) | 1988-01-29 | 1988-01-29 | 並列計算機及びそのデータ転送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE68928173D1 DE68928173D1 (de) | 1997-08-21 |
DE68928173T2 true DE68928173T2 (de) | 1998-02-05 |
Family
ID=26353531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1989628173 Expired - Fee Related DE68928173T2 (de) | 1988-01-29 | 1989-01-27 | Parallelrechner bestehend aus Prozessorelementen mit einem lokalen Speicher und einem verbesserten Datentransfermechanismus |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP0326164B1 (de) |
DE (1) | DE68928173T2 (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5386566A (en) * | 1991-03-20 | 1995-01-31 | Hitachi, Ltd. | Inter-processor communication method for transmitting data and processor dependent information predetermined for a receiving process of another processor |
JPH05151178A (ja) * | 1991-11-26 | 1993-06-18 | Toshiba Corp | 分散協調型問題解決装置 |
JP2931490B2 (ja) | 1992-12-18 | 1999-08-09 | 富士通株式会社 | 並列処理方式 |
JP4376040B2 (ja) * | 2003-11-27 | 2009-12-02 | 株式会社日立製作所 | 複数のプロセッサを用いて情報処理を行う装置及び方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0258650B1 (de) * | 1986-08-01 | 1995-04-12 | Hitachi, Ltd. | Parallelrechnersystem, geeignet für asynchrone Datenübertragung |
-
1989
- 1989-01-27 DE DE1989628173 patent/DE68928173T2/de not_active Expired - Fee Related
- 1989-01-27 EP EP19890101462 patent/EP0326164B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0326164A2 (de) | 1989-08-02 |
DE68928173D1 (de) | 1997-08-21 |
EP0326164A3 (de) | 1990-06-13 |
EP0326164B1 (de) | 1997-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3751399T2 (de) | Parallelrechner mit verteilten, gemeinsam genutzten Speichern und verteilten, aufgabenaktivierenden Schaltungen. | |
DE69115344T2 (de) | Vorverarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher | |
DE2130299C3 (de) | Eingabe-/Ausgabekanal für eine Datenverarbeitungsanlage | |
DE3689357T2 (de) | Digitaler Lese-/Schreibspeicher. | |
DE3856451T2 (de) | Multiprozessor-Digitaldatenverarbeitungssystem | |
DE69130580T2 (de) | Cache-Speicheranordnung | |
DE69132495T2 (de) | Verteilter Verarbeitungsspeicher | |
DE3785897T2 (de) | Steuervorrichtung zum vorabruf von befehlen. | |
DE3751503T2 (de) | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen. | |
DE3787886T2 (de) | Parallelprozessor mit binärer baumstruktur. | |
DE69128107T2 (de) | Busanordnung für Speicherzugriff | |
DE2455803C2 (de) | Mehrprozessor-Datenverarbeitungsanlage | |
DE3114961C2 (de) | ||
DE68928727T2 (de) | Cachespeicheranlage zum Versorgen eines Festworts eines Befehlscodes mit variabler Länge und Befehlsabrufanlage | |
DE3751540T2 (de) | Verfahren und Vorrichtung zur Datenverarbeitung. | |
DE2750721A1 (de) | Ein/ausgabe-system | |
DE19855806A1 (de) | Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen | |
DE69332058T2 (de) | Mehrprozessorsystem | |
DE2841041A1 (de) | Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren | |
DE2806045A1 (de) | Dv-system mit pufferspeicher | |
DE2755897A1 (de) | Ein/ausgabe-system | |
DE2612139A1 (de) | Ein/ausgang-steuerungssystem | |
DE3131341A1 (de) | "pufferspeicherorganisation" | |
DE69106384T2 (de) | Skalierbares parallel-vektorrechnersystem. | |
DE2948668A1 (de) | Puffereinheit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |