DE4208924B4 - Method for communication between processors and parallel processing computers therefor - Google Patents

Method for communication between processors and parallel processing computers therefor Download PDF

Info

Publication number
DE4208924B4
DE4208924B4 DE4208924A DE4208924A DE4208924B4 DE 4208924 B4 DE4208924 B4 DE 4208924B4 DE 4208924 A DE4208924 A DE 4208924A DE 4208924 A DE4208924 A DE 4208924A DE 4208924 B4 DE4208924 B4 DE 4208924B4
Authority
DE
Germany
Prior art keywords
cluster
data
address
transmission
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE4208924A
Other languages
German (de)
Other versions
DE4208924A1 (en
Inventor
Naoki Hamanaka
Junji Nakagoshi
Tatsuo Higuchi
Hiroyuki Chiba
Shin'ichi Shutoh
Shigeo Takeuchi
Yasuhiro Ogata
Taturu Toba
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi ULSI Engineering Corp
Hitachi Ltd
Original Assignee
Hitachi ULSI Engineering Corp
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP05646991A external-priority patent/JP3169624B2/en
Priority claimed from JP24109491A external-priority patent/JP3375649B2/en
Application filed by Hitachi ULSI Engineering Corp, Hitachi Ltd filed Critical Hitachi ULSI Engineering Corp
Publication of DE4208924A1 publication Critical patent/DE4208924A1/en
Application granted granted Critical
Publication of DE4208924B4 publication Critical patent/DE4208924B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

Intraprozessorkommunikationsverfahren in einem Parallelprozessorsystem mit mehreren Clustern (100), von denen jeder mindestens einen Prozessor (1; 501, 502) und einen von diesem mindestens einen Prozessor zu nutzenden Hauptspeicher (2; 505) aufweist, und mit einem Netzwerk (4; 509) zum Verbinden der mehreren Cluster, wobei mindestens ein Prozeß mit mindestens einem zugeordneten virtuellen Raum innerhalb jedes Clusters ausgeführt wird, unter Steuerung durch ein jedem Cluster zugeordnetes Betriebssystem, und das Intraprozessorkommunikationsverfahren zum Übertragen von Übertragungsdaten von einem einem ersten Cluster zugeordneten Übertragungsursprungsprozeß zu einem einem zweiten Cluster zugeordneten Übertragungsempfangsprozeß durch folgende Schritte gekennzeichnet ist:
Sicherstellen eines im Hauptspeicher residenten reellen Kommunikationsbereichs (13) innerhalb jedes Clusters für jeden dem Cluster zugeordneten Prozeß, wobei der reelle Kommunikationsbereich in einen virtuellen Kommunikationsbereich (11) innerhalb des jedem Cluster zugeordneten virtuellen Raums abgebildet wird;
Auswählen eines dem Übertragungsempfangsprozeß zugeordneten, reellen Kommunikationsbereichs in dem ersten Cluster, sowie einer virtuellen Schreibeadresse, bei der die Übertragungsdaten innerhalb eines dem...
An intra-processor communication method in a multi-cluster parallel processor system (100), each having at least one processor (1; 501, 502) and a main memory (2; 505) to be used by said at least one processor, and a network (4; 509) for connecting the plurality of clusters, wherein at least one process is performed with at least one associated virtual space within each cluster under control of an operating system associated with each cluster, and the intra-processor communication method for transferring transmission data from a transfer originating process associated with a first cluster to a second cluster associated transmission reception process is characterized by the following steps:
Ensuring a real communication area (13) residing in the main memory within each cluster for each process associated with the cluster, the real communication area being mapped into a virtual communication area (11) within the virtual space associated with each cluster;
Selecting a real communication area associated with the transmission reception process in the first cluster, and a virtual write address where the transmission data is within a range of ...

Figure 00000001
Figure 00000001

Description

Die Erfindung betrifft ein Verfahren zur Datenübertragung zwischen Prozessoren in einem Parallelprozessor mit dem Ziel, Hochgeschwindigkeitsberechnung zu erreichen, insbesondere in einem Parallelprozessor vom MIMD-Typ mit verteilten Speichern.The The invention relates to a method for data transmission between processors in a parallel processor with the goal of high-speed computation to achieve, in particular in a parallel processor of the MIMD type with distributed stores.

Grob gesprochen bestehen drei Typen von Techniken zum Erzielen von Hochgeschwindigkeitsverarbeitung unter Nutzung von mehreren Prozessoren.Rough speaking, there are three types of techniques for achieving high speed processing using multiple processors.

Der erste Typ von Techniken ist ein solcher, bei dem ein Parallelprozessor dadurch strukturiert wird, daß mindestens Dutzende von Prozessoren verwendet werden, um eine extreme Verbesserung in der Wirksamkeit der Abläufe im Vergleich mit einem Prozessor mit nur einem Prozessor zu erzielen. Bedingung ist bei diesem Typ der Technik, daß eine große Anzahl von Prozessoren verwendet wird. Daher ist es wichtig, daß jeder Prozessor verringerte Größe und eventuell begrenzte Funktion im Vergleich zur Funktion eines Allzweckcomputers aufweist. Z. B. wird bei einem kompakten Prozessor des ersten Typs von Techniken der Adreßübersetzungsmechanismus zum Realisieren eines virtuellen Speichers weggelassen. Es bestanden Techniken von Parallelprozessoren mit einer großen Anzahl von Prozessoren, gemäß denen eine Mehrzahl von Prozessen durch einen Prozessor ausgeführt werden kann, wie dies z. B. in EP-A-0 255 857 beschrieben ist. Jedoch ist keiner der Prozessoren gemäß diesen Techniken mit einer Funktion zum Realisieren eines virtuellen Speichers ausgestattet.Of the first type of techniques is one in which a parallel processor is structured by at least Dozens of processors used to be an extreme improvement in the effectiveness of the processes compared to a processor with only one processor. condition In this type of technique, a large number of processors are used becomes. Therefore, it is important for everyone Processor reduced size and possibly limited function compared to the function of a general-purpose computer having. For example, in a compact processor of the first type Techniques of the address translation mechanism for Realizing a virtual memory is omitted. It passed Techniques of parallel processors with a large number of processors, according to those a plurality of processes are executed by a processor can, as z. As described in EP-A-0 255 857. However, that is none of the processors according to these Techniques with a function to realize a virtual memory fitted.

Andererseits ist als zweiter Typ von Techniken eine Einrichtung eines Parallelverarbeitungscomputers mit mehreren Verarbeitungselementen bekannt, von denen jedes einen lokalen Speicher aufweist, gemäß welcher Technik Daten in einen lokalen Speicher von einem anderen Verarbeitungselement eingeschrieben werden können. Wenn ein gewisses Verarbeitungselement Daten unter Nutzung eines lokalen Speichers eines anderen Verarbeitungselementes überträgt, werden Markierungen an einem Teil oder der Gesamtheit der Wörter im lokalen Speicher angehängt, und diese Markierungen zeigen an, ob der Inhalt der Wörter gültig ist oder nicht. Dieser Typ von Vorrichtung ist z. B. in EP-A-0 326 164 beschrieben.on the other hand As a second type of techniques, a parallel processing computer is a device with several processing elements known, each of which has a has local memory, according to which Technique data into a local memory from another processing element can be enrolled. If some processing element uses data using a local memory of another processing element Markings on a part or the totality of the words in the attached to local storage, and these flags indicate whether the content of the words is valid or not. This type of device is z. As described in EP-A-0 326 164.

Der dritte Typ von Techniken ist eine sogenannte Verarbeitungstechnik für verteilte Daten zum Verbinden einiger weniger Allgemeinzweckcomputer mit einem LAN-System oder dergleichen. Z. B. entspricht die Verarbeitungstechnik mit verteilten Daten in der Workstation mit einem UNIX-Betriebssystem diesem dritten Typ von Technik, wie sie von UNIX System Laboratories Ltd. entwickelt und derzeit lizensiert wird. Hei diesem Typ von Technik besteht die Bedingung, daß Allgemeinzweckcomputer verwendet werden. Jeder Prozessor weist eine Struktur wie ein Allgemeinzweckcomputer auf, und jedem dieser Allgemeinzweckcomputer ist ein Adapter für die Kommunikation hinzugefügt. Jeder Prozessor wird mit einem Allgemeinzweck-Betriebssystem geladen, und der Kommunikationsadapter wird als ein Hilfsmittel einschließlich Platteneingabe/ausgabeeinheiten gehandhabt, die durch das Be triebssystem verwaltet werden. Daher wird Kommunikation zwischen den Prozessoren über einen Systemaufruf ausgeführt. Das heißt, daß es dann, wenn ein Prozeß zum Ausführen eines von einem Nutzer erstellten Programms beginnt, Daten an einen anderen Prozeß zu senden, erforderlich ist, das Betriebssystemprogramm aufzurufen und es abzuarbeiten.Of the third type of techniques is a so-called processing technique for distributed Data for connecting a few general-purpose computers to one LAN system or the like. For example, the processing technique is equivalent with distributed data in the workstation with a UNIX operating system this third type of technique as described by UNIX System Laboratories Ltd. developed and currently licensed. Hey this guy of technology There is a condition that general purpose computers be used. Each processor has a structure like a general-purpose computer on, and each of these general purpose computers is an adapter for communication added. Each processor is loaded with a general-purpose operating system, and the communication adapter is handled as an aid including disk input / output units, managed by the operating system. Therefore, communication becomes between the processors over executed a system call. The is called, that it then when a process to To run a program created by a user begins to send data to one other process too is required to enter the operating system program and work it off.

30 veranschaulicht den Betrieb bei Datenübertragung gemäß dem dritten Typ der bekannten Technik. Derartiges ist z. B. von S. L. Leffler et al. in "The Design and Implementation of the 4.3 BSD UNIX Operating System", Addison-Wesley Publishing Company, S. 384-386 beschrieben. Zunächst führt der Prozeß zum Übertragen von Daten einen Systemaufruf für die Datenübertragung aus. Wenn das Betriebssystem den Systemaufruf erhalten hat, kopiert es die zu übertragenden Daten, zusammen mit Parametern, die für den Prozeß des übertragungsempfangsorts relevant sind, an den Puffer im Betriebssystem. Anschließend überprüft der Betriebsprozessor die Parameter, setzt dieselben, wie auch die Daten für die Sendeschaltung aus dem Pufferbereich im Betriebssystem und gibt die Anweisung zur Datenübertragung an die Sendeschaltung. 30 Figure 3 illustrates the operation in data transmission according to the third type of known technique. Such is z. From SL Leffler et al. in "The Design and Implementation of the 4.3 BSD UNIX Operating System", Addison-Wesley Publishing Company, pp. 384-386. First, the data transfer process executes a system call for data transfer. When the operating system has received the system call, it copies the data to be transferred, along with parameters relevant to the process of the transmission receiving location, to the buffer in the operating system. Subsequently, the operating processor checks the parameters, sets them, as well as the data for the transmission circuit from the buffer area in the operating system and gives the instruction for data transmission to the transmission circuit.

Wenn die Sendeschaltung die Daten gesendet hat und diese in der Empfangsschaltung des die Daten empfangenden Prozessors angekommen sind, speichert die Empfangsschaltung die Parameter und die Daten im Puffer innerhalb der Empfangsschaltung und gibt dem Betriebssystem im Empfangsprozessor eine Mitteilung. Nachdem das Betriebssystem im empfangenden Prozessor diese Mitteilung empfangen hat, erstellt sie eine Kopie der Parameter und der Daten aus dem Puffer innerhalb der Empfangsschaltung in den Puffer innerhalb des Betriebssystems. Das Betriebssystem untersucht dann die Parameter und die Daten. Wenn die Untersuchung ergibt, daß kein Problem besteht, überträgt das Betriebssystem ein Bestätigungssignal (ACK) an den Übertragungsursprungsprozessor. Wenn dieser das Signal ACK empfangen hat, gibt er den Pufferbereich innerhalb des Betriebssystems frei, der sichergestellt wurde, als eine Anfrage für das Übertragen der Parameter und der Daten erfolgte, was zur Übertragung des ACK-Signals vom Betriebssystem führte.When the transmitting circuit has sent the data and these have arrived in the receiving circuit of the data receiving processor, the receiving circuit stores the parameters and the data in the buffer within the receiving circuit and informs the operating system in the receiving processor. After the operating system in the receiving processor has received this message, it makes a copy of the parameters and data from the buffer within the receiving circuit into the buffer within the operating system. The operating system then examines the parameters and the data. If the investigation reveals that there is no problem, the operating system transmits an acknowledgment signal (ACK) to the originating processor. When it has received the signal ACK, it releases the buffer area within the operating system, which was ensured when a request for the transmission of the parameters and the data took place, resulting in the transmission of the ACK signal from the operating system te.

Wenn der Prozeß, der die Daten zu empfangen beginnt, einen Systemaufruf zum Empfangen der Daten ausgeführt hat, überprüft das Betriebssystem im empfangenden Prozessor, ob alle erforderlichen Daten bereits angekommen sind. Wenn dies der Fall ist, erstellt das Betriebssystem eine Kopie der Daten aus dem diese Daten speichernden Bereich innerhalb des Betriebssystems in den Bereich innerhalb des Prozesses, der den Systemaufruf ausgeführt hat. Wenn die Daten noch nicht angekommen sind, wartet das Betriebssystem auf den Empfang der Daten und führt den vorstehenden Ablauf zum Empfangen der Daten nach dem Empfangen der Daten aus.If the process, the data begins to receive, a system call to receive the Data executed has checked the operating system in the receiving processor, if all the required data already arrived. If so, the operating system creates it a copy of the data from the area storing this data within of the operating system in the area within the process, the executed the system call Has. If the data has not arrived yet, the operating system waits on the receipt of the data and leads the above procedure for receiving the data after receiving the data.

Gemäß dem oben genannten ersten Typ von bekannten Techniken besteht eine Begrenzung in bezug auf die Funktion jedes Prozessors, und der Nutzer ist darauf angewiesen, ein Programm zu erstellen, das die Hardwareeigenschaften ausreichend berücksichtigt, wie die Speicherkapazität jedes Prozessors innerhalb der begrenzten Funktion jedes Prozessors.According to the above There is a limitation to the first type of known techniques mentioned in terms of the function of each processor, and the user is on it instructed to create a program that has the hardware properties sufficiently considered, like the storage capacity each processor within the limited function of each processor.

Dagegen besteht beim vorstehend genannten zweiten Typ von bekannten Techniken kein Overhead in bezug auf das oben genannte Kopieren von Daten. Wenn jedoch mehrere Prozesse in einem Cluster abzuarbeiten sind und wenn ein Übertragungsprozeß in einem anderen Cluster darangeht, Daten an einen besonderen Empfangsprozeß innerhalb der mehreren Prozesse über einen lokalen Speicher zu senden, besteht die Gefahr, daß der Übertragungsprozeß die Daten des gleichzeitig ablaufenden Prozesses so durch den Empfangsprozeß im selben Clu ster ändern kann, daß diese Daten so geändert werden, daß sie ungültig werden.On the other hand In the above-mentioned second type, it consists of known techniques no overhead with respect to the above-mentioned copying of data. If, however, several processes are to be processed in a cluster and if a transfer process in one other clusters presented data to a particular receiving process within of several processes sending a local memory, there is a risk that the transmission process the data of the concurrent process can thus be changed by the reception process in the same cluster, that these Data can be changed so that she invalid become.

Beim vorstehend beschriebenen dritten Typ bekannter Techniken arbeitet ein Betriebssystem in jedem Cluster in solcher Weise, daß mehrere Prozesse gleichzeitig in jedem Cluster ablaufen können. Daher ist es selbst dann, wenn die Anzahl von Nutzerprozessen, die durch das durch den Parallelverarbeitungscomputer auszuführende Programm erzeugt werden, nicht mit der Anzahl von Clustern übereinstimmt, die der Ausführung dieses Programms zugeordnet sind, möglich, dieses Programm dadurch auszuführen, daß ein virtueller Raum zugeordnet wird, der jedem der Nutzerprozesse entspricht. Dementsprechend bedeutet Datenübertragung zwischen den Nutzerprozessen tatsächlich die Übertragung von Daten in den virtuellen Raum entsprechend dem Übertragungsursprungsprozeß an den virtuellen Raum, der dem Übertragungsempfangsprozeß entspricht. Selbst wenn ein Fehler im Nutzerprogramm vorliegt, kann der Schutzmechanismus oder dergleichen des Betriebssystems eine Steuerung vornehmen, die zu einer unvernünftigen Zerstörung von Daten des Prozesses führt, die für das Programm irrelevant sind.At the The third type of known technique described above operates one operating system in each cluster in such a way that several Processes can run simultaneously in each cluster. Therefore It is even when the number of user processes passing through the program to be executed by the parallel processing computer generated does not match the number of clusters, the execution associated with this program, it is possible to program this program perform, the existence virtual space corresponding to each of the user processes. Accordingly, data transmission means between the user processes actually transferring data into the virtual space according to the transfer origin process to the virtual space corresponding to the transmission reception process. Even if there is an error in the user program, the protection mechanism can or the like of the operating system to make a control, the to an unreasonable destruction leads from data of the process, the for the program are irrelevant.

Um Daten mit hoher Geschwindigkeit von einem bestimmten Cluster an eine externe Einheit des Clusters zu senden, wie z. B. ein Netzwerk zum Herstellen von Verbindungen zwischen den Clustern, wird normalerweise eine DMA-Übertragung verwendet. DMA-Übertragung wird dadurch realisiert, daß ein sogenannter DMA-Controller verwendet wird, der so strukturiert ist, daß er dauernd hardwaremäßig eine Speicheradresse erzeugt und dauernd Daten aus dem Speicher liest oder in diesen einschreibt. Wenn jedoch Daten aus dem virtuellen Raum eines Übertragungsursprungsprozesses mit Hilfe des DMA-Controllers an das Netzwerk zu übertragen sind, besteht keine Garantie dahingehend, daß die aus dem virtuellen Speicher zu übertragenden Daten im aktuellen Speicher des Clusters existieren. Um zu garantieren, daß die zu übertragenden Daten im reellen Speicher existieren, ist es unter Umständen erforderlich, ein Seiteneinschreiben vorzunehmen und dann die Daten an den DMA-Controller zu übertragen. Das Seiteneinschreiben ist eine Funktion, die nur einem Betriebssystem erlaubt ist, wodurch das Betriebssystem unvermeidlicherweise in die Datenübertragung gemäß der bekannten Technik einzuspannen ist.Around Data at high speed from a specific cluster to send an external unit of the cluster, such as A network to make connections between the clusters, usually becomes a DMA transfer used. DMA transfer is realized by a so-called DMA controller, which is structured in such a way that he permanently a hardware Memory address generated and constantly reads data from the memory or enroll in these. If, however, data from the virtual Space of a transfer origin process are to be transmitted to the network using the DMA controller, There is no guarantee that the virtual memory to be transferred Data exists in the current memory of the cluster. In order to guarantee, that the to be transferred Data exists in real memory, it may be necessary to make a page write and then the data to the DMA controller transferred to. Page writing is a feature that only one operating system is allowed, causing the operating system inevitably in the data transmission according to the known Technique is to clamp.

Eine derartige Datenübertragungstechnik ist in US 4,956,771 offenbart, wonach ein intelligenter Controller Daten zwischen verschiedenen "Tasks" in einen Host-Computer überträgt. Dabei wird ein an den Host-Computer und den Controller angeschlossenes I/O Segment verwendet.Such a data transmission technique is in US 4,956,771 discloses that an intelligent controller transfers data between various "tasks" to a host computer. It uses an I / O segment attached to the host computer and the controller.

WO 90/05338 beschreibt ein System, in dem mehrere Betriebssysteme laufen, und Datenübertragung zwischen virtuellen Speichern in Hauptspeichern und erweiterten Speichern stattfindet.WHERE 90/05338 describes a system in which several operating systems run, and data transmission between virtual memories in main memories and extended ones Saving takes place.

Selbst wenn kontinuierliche Datenübertragung durch den DMA-Controller nach der oben angegebenen Vorbereitung ausgeführt wurde, besteht keine Garantie dahingehend, daß ein Bereich zum Speichern der übertragenen Daten im virtuellen Raum für den Übertragungsempfangsprozeß dem reellen Speicher des Übertragungsempfangsclusters zugeordnet wurde. Daher weist das Betriebssystem gemäß der bekannten Technik im Übertragungsempfangscluster in seinem Inneren einen Puffer (einen Empfangspuffer) auf, der im reellen Speicher vorhanden ist, um die übertragenen Daten zu speichern. Das Betriebssystem speichert die empfangenen Daten im Empfangspuffer, führt anschließend ein Seiteneinschreiben aus, falls erforderlich, und überträgt dann die Daten an den Datenspeicherbereich im virtuellen Raum, der dem Übertragungsempfangsprozeß entspricht. In diesem Fall muß die vorstehend genannte Seiteneinschreibung unter Nutzung des Betriebssystems ausgeführt werden.Even if continuous data transmission was performed by the DMA controller after the above-mentioned preparation, there is no guarantee that an area for storing the transmitted data in the virtual space for the transmission reception process has been allocated to the real memory of the transmission reception cluster. Therefore, according to the prior art, the operating system in the transmission reception cluster has in its interior a buffer (a reception buffer) present in the real memory for storing the transmitted data. The operating system stores the received data in the reception buffer, then performs page writing if necessary, and then transmits the data to the data storage area in the virtual space corresponding to the transmission reception process. In this case, the above mentioned page entry using the operating system to be executed.

Selbst wenn der vorstehend genannte Empfangspuffer z. B. im Übertragungsempfangscluster vorhanden ist, besteht für den Übertragungsempfangscluster keine Möglichkeit dahingehend, daß er im voraus weiß, wann der Übertragungsursprungscluster Daten an den Übertragungsempfangscluster senden wird und wie groß der Umfang dieser Daten sein wird. Dementsprechend ist es nicht möglich, vorab den erforderlichen Bereich im Em pfangspuffer sicherzustellen. Wenn das Volumen der übertragenen Daten größer ist als zuvor abgeschätzt und die sichergestellte Größe des Empfangspuffers überschreitet, empfängt daher das Übertragungsempfangscluster die vom Datenursprungscluster gesendeten Daten nicht, sondern die Daten werden vom Übertragungsursprungscluster an den Übertragungsempfangscluster neu gesendet, nachdem ein neuer Empfangspuffer erforderlicher Größe im Übertragungsempfangscluster sichergestellt wurde.Even if the above-mentioned receiving buffer z. B. present in the transmission receiving cluster is, exists for the transmission receive cluster no way to the effect that in the know ahead when the transfer origin cluster Send data to the transmission receive cluster and how big the Scope of this data will be. Accordingly, it is not possible in advance ensure the required range in the buffer. If the volume of transmitted data is larger as previously estimated and exceeds the seized size of the receiving buffer, receives hence the transmit receive cluster the data sent from the data source cluster, but the Data is received from the transfer origin cluster at the transmission receiving cluster retransmitted after a new receive buffer of required size in the transmit receive cluster was ensured.

Um die oben genannten Neuübertragung gemäß der bekannten Technik zu ermöglichen, weist das Betriebssystem des Übertragungsursprungsclusters in seinem Inneren einen Übertragungspuffer auf, um in ihm die zu übertragenden Daten zu speichern, bis sichergestellt ist, daß die zu übertragenden Daten sicher vom Übertragungsempfangscluster empfangen wurden.Around the above retransmission according to the known To enable technology indicates the operating system of the transfer origin cluster in its interior a transmission buffer, to transfer it in him Storing data until it is ensured that the data to be transmitted is received securely by the transmission receiving cluster were.

Wenn der Übertragungspuffer im reellen Speicher untergebracht ist, können die zu sendenden Daten, wie sie im Übertragungspuffer gespeichert sind, kontinuierlich durch den DMA-Controller an das Netzwerk übertragen werden. Dadurch führt bei der bekannten Technik der Übertragungsempfangsclustsr beim Übertragen von Daten im virtuellen Raum entsprechend dem Übertragungsursprungsprozeß an den Übertragungsempfangsprozeß die Seiteneinschreibung aus, falls erforderlich, wie oben beschrieben, überträgt die zu sendenden Daten, wie sie im virtuellen Raum gespeichert sind, an den Übertragungspuffer im reellen Speicher und überträgt dann die im Übertragungspuffer gespeicherten Daten durch den DMA-Controller an das Netzwerk.If the transmission buffer is stored in real memory, the data to be sent, as they are in the transmission buffer are stored continuously through the DMA controller to the Network transfer become. This leads to the prior art transmission-receiving cluster when transmitting of data in the virtual space according to the transmission origin process to the transmission reception process, the page inscription off, if necessary, as described above, transmits the data to be sent, as they are stored in virtual space, to the transmission buffer in real memory and then transmits those in the transmission buffer stored data through the DMA controller to the network.

Wie vorstehend beschrieben, laufen gemäß der bekannten Technik dann, wenn Daten vom virtuellen Raum entsprechend dem Übertragungsursprungsprozeß an den virtuellen Raum entspre chend dem Übertragungsempfangsprozeß zu senden sind, diese Daten durch den Übertragungspuffer im Betriebssystem des Übertragungsursprungsclusters, durch das Betriebssystem, zum Empfangspuffer im Betriebssystem des Übertragungsempfangsclusters, über das Betriebssystem. Das Erstellen einer Kopie der Daten in den Puffer hat einen Overhead zur Folge, der beinahe proportional zur Länge der zu übertragenden Daten ist. Dieser Overhead erniedrigt den Wirkungsgrad eines Parallelverarbeitungscomputers in extremer weise.As described above, then run according to the known technique, when data from the virtual space according to the transfer origin process to the virtual space according to the transmission reception process to send are these data through the transmission buffer in the operating system of the transfer origin cluster the operating system, to the receive buffer in the operating system of the transmit receive cluster, via the Operating system. Creating a copy of the data in the buffer has an overhead that is almost proportional to the length of the to be transferred Data is. This overhead lowers the efficiency of a parallel processing computer extreme wise.

Der Erfindung liegt die Aufgabe zugrunde, den Overhead zu erniedrigen, wie er durch Nutzung des Betriebssystems entsteht, wenn mehrere Prozesse im selben Cluster arbeiten und ein gewisser Cluster Daten an einen Prozeß überträgt, der in einem anderen Cluster abgearbeitet wird.Of the Invention is based on the object of lowering the overhead, as it arises by using the operating system, if several Processes in the same cluster work and a certain cluster data to a process that transmits is processed in another cluster.

In einem erfindungsgemäßen Parallelprozessor mit mehreren Clustern, von denen jeder mindestens einen unabhängig betreibbaren Prozessor und einen Speicher aufweist, in den sich die Prozessoranordnung mit dem mindestens einen Prozessor teilt, und mit einem Netzwerk zum Verbinden der mehreren Cluster, wobei mindestens ein virtueller Raum jedem der mehreren Cluster zugeordnet ist und mindestens ein Prozeß im virtuellen Raum unter Steuerung des Betriebssystems ausgeführt wird, wird die vorstehend genannte Aufgabe durch eine solche Anordnung gelöst, gemäß der ein Prozeß einen virtuellen Kommunikationsbereich aufweist, der im Speicher innerhalb des Clusters resident ist und im virtuellen Raum angeordnet ist und bei der Daten, die von einem Prozeß (einem Übertragungsursprungsprozeß), der gerade in einem gewissen Cluster (einem Übertragungsursprungscluster) ausgeführt wird, an einen anderen Prozeß (einen Übertragungsempfangsprozeß) zu übertragen sind, der einem anderen Cluster (einem Übertragungsempfangscluster) zugeordnet ist, aus einem reellen Kommunikationsbereich gelesen werden, der dem Übertra gungsursprungsprozeß zugeordnet ist, welcher Bereich innerhalb des Speichers des Übertragungsursprungsclusters resident ist, wobei die gelesenen Daten vom Übertragungsursprungscluster in den Übertragungsempfangscluster übertragen werden und die Daten in einen reellen Kommunikationsbereich eingeschrieben werden, der dem Übertragungsempfangsprozeß zugeordnet ist, der innerhalb des Speichers des Übertragungsempfangsprozesses resident ist.In a parallel processor according to the invention with multiple clusters, each of which has at least one independently operable one Processor and a memory, in which the processor arrangement shares with the at least one processor, and with a network for connecting the plurality of clusters, wherein at least one virtual space each of the multiple clusters is assigned and at least one process in the virtual Space is executed under control of the operating system, the above said object solved by such an arrangement, according to which a process a has virtual communication area in memory within of the cluster is resident and is located in virtual space and the data obtained from a process (a transfer origin process), the just in a certain cluster (a transfer origin cluster) accomplished is to transfer to another process (a transmission receiving process) that is another cluster (a broadcast receive cluster) is assigned, read from a real communication area assigned to the transfer origin process is which area within the memory of the transmission origin cluster resident, with the read data from the originating transmission cluster transferred to the transmission receiving cluster and the data are written into a real communication area assigned to the transmission reception process that is within the memory of the transmission reception process resident.

Die Erfindung wird im folgenden anhand von durch Figuren veranschaulichten Ausführungsbeispielen näher beschrieben.The Invention will now be illustrated by figures embodiments described in more detail.

1 zeigt ein Aufbaudiagramm eines Parallelverarbeitungscomputers gemäß einem ersten Ausführungsbeispiel der Erfindung; 1 Fig. 10 is a constructional diagram of a parallel processing computer according to a first embodiment of the invention;

2 ist ein Aufbaudiagramm einer Anforderungsauswahlschaltung; 2 Fig. 10 is a configuration diagram of a request selection circuit;

3 ist ein Aufbaudiagramm einer Kommunikationsbereichtabellenadreßerzeugungsschaltung; 3 Fig. 10 is a configuration diagram of a communication range table address generation circuit;

4 ist ein Strukturdiagramm einer Entscheidungsschaltung; 4 Fig. 10 is a structural diagram of a decision circuit;

5 ist ein Strukturdiagramm einer Adreßerzeugungsschaltung; 5 Fig. 10 is a structural diagram of an address generation circuit;

6 ist ein Strukturdiagramm eines Kommunikationsbereichs; 6 is a structural diagram of a communication area;

7 ist ein Strukturdiagramm eines Anforderungsbereichs; 7 is a structural diagram of a requirement area;

8 ist ein Strukturdiagramm einer Seitentabelle; 8th is a structure diagram of a page table;

9 ist ein Strukturdiagramm einer Kommunikationsbereichstabelle; 9 Fig. 10 is a structural diagram of a communication area table;

10 ist ein Strukturdiagramm einer Anforderungstabelle; 10 is a structural diagram of a request table;

11 ist ein Diagramm, das den Datenübertragungsfluß zwischen den Prozessen im Parallelverarbeitungscomputer gemäß dem ersten Ausführungsbeispiel der Erfindung zeigt; 11 Fig. 15 is a diagram showing the data transfer flow between the processes in the parallel processing computer according to the first embodiment of the invention;

12 ist ein Aufbaudiagramm eines Parallelverarbeitungscomputers gemäß einem zweiten Ausführungsbeispiel der Erfindung; 12 Fig. 10 is a configuration diagram of a parallel processing computer according to a second embodiment of the invention;

13 ist ein Diagramm, das den Datenübertragungsfluß zwischen Prozessen im Parallelverarbeitungscomputer gemäß dem zweiten Ausführungsbeispiel der Erfindung zeigt; 13 Fig. 15 is a diagram showing the data transfer flow between processes in the parallel processing computer according to the second embodiment of the invention;

14 ist ein Aufbaudiagramm eines Parallelverarbeitungscomputers gemäß einem dritten Ausführungsbeispiel der Erfindung; 14 Fig. 10 is a configuration diagram of a parallel processing computer according to a third embodiment of the invention;

15 ist ein Diagramm, das den Datenübertragungsfluß zwischen den Prozessen des Parallelverarbeitungscomputers gemäß dem dritten Ausführungsbeispiel der Erfindung zeigt; 15 Fig. 16 is a diagram showing the data transfer flow between the processes of the parallel processing computer according to the third embodiment of the invention;

16 ist ein Diagramm, das den Datenübertragungsablauf zwischen den Prozessen eines Parallelverarbeitungscomputers gemäß einem vierten Ausführungsbeispiel der Erfindung zeigt; 16 Fig. 15 is a diagram showing the data transfer process between the processes of a parallel processing computer according to a fourth embodiment of the invention;

17 ist ein Aufbaudiagramm eines Parallelprozessors gemäß einem fünften Ausführungsbeispiel der Erfindung; 17 Fig. 10 is a configuration diagram of a parallel processor according to a fifth embodiment of the invention;

18 ist ein Diagramm, das den Eintrag in einer Pfadtabelle veranschaulicht, wie sie im Parallelprozessor von 17 verwendet wird, zum übersetzen eines virtuellen Kommuni kationspfades in einen physikalischen Kommunikationspfad; 18 is a diagram that illustrates the entry in a path table as used in the parallel processor of 17 is used to translate a virtual Kommuni cation path in a physical communication path;

19 ist ein Diagramm, das Zusammenhangsangaben für einen Prozeß veranschaulicht, wie er vom Parallelprozessor von 17 auszuführen ist; 19 is a diagram that illustrates contextual information for a process as used by the parallel processor of 17 is to execute;

20 ist ein Diagramm, das das Format eines BASE-Setzbefehls zeigt, wie er im Parallelprozessor von 17 zu verwenden ist; 20 is a diagram showing the format of a BASE set command as used in the parallel processor of 17 is to be used;

21 ist ein Diagramm, das das Format eines LEN-Setzbefehls zeigt, wie er im Parallelprozessor von 17 zu verwenden ist; 21 is a diagram showing the format of a LEN setting command as used in the parallel processor of FIG 17 is to be used;

22 ist ein Diagramm, das das Format eines Fernspeicherungsbefehls zeigt, wie er im Parallelprozessor von 17 zu verwenden ist; 22 is a diagram showing the format of a remote store command as used in the parallel processor of FIG 17 is to be used;

23 ist ein Diagramm, das die Funktion einer Einheit zeigt, wenn ein Datenübertragungsbefehl, wie er im Parallelprozessor von 17 zu verwenden ist, ausgeführt wurde; 23 FIG. 12 is a diagram showing the function of a unit when a data transfer command as in the parallel processor of FIG 17 to use was executed;

24 ist ein Aufbaudiagramm eines Parallelprozessors gemäß einem sechsten Ausführungsbeispiel der Erfindung; 24 Fig. 12 is a configuration diagram of a parallel processor according to a sixth embodiment of the invention;

25 ist ein Diagramm, das das Format eines Fernspeicherungsvorbereitungsbefehls zeigt, wie er im Parallelprozessor von 24 zu verwenden ist; 25 FIG. 13 is a diagram showing the format of a remote storage preparation command as used in the parallel processor of FIG 24 is to be used;

26 ist ein Diagramm, das das Format eines Fernspeicherungsausführungsbefehles zeigt, wie er im Parallelprozessor von 24 zu verwenden ist; 26 FIG. 13 is a diagram showing the format of a remote storage execution command as used in the parallel processor of FIG 24 is to be used;

27 ist ein Diagramm, das den Ablauf eines Datenübertragungsbefehls zeigt, wie er im Parallelprozessor von 24 zu verwenden ist; 27 is a diagram showing the flow of a data transfer command as it is in the parallel processor of 24 is to be used;

28 ist eine Aufbaudiagramm eines Parallelprozessors gemäß einem siebten Ausführungsbeispiel der Erfindung; 28 Fig. 12 is a configuration diagram of a parallel processor according to a seventh embodiment of the invention;

29 ist ein Aufbaudiagramm eines Parallelprozessors gemäß einem achten Ausführungsbeispiel der Erfindung; und 29 Fig. 10 is a configuration diagram of a parallel processor according to an eighth embodiment of the invention; and

30 ist ein Diagramm zum Erläutern des Kommunikationsbetriebs zwischen Prozessoren gemäß dem Stand der Technik. 30 Fig. 10 is a diagram for explaining the communication operation between processors according to the prior art.

Ausführungsbeispiel 1Embodiment 1

Ein erstes Ausführungsbeispiel der Erfindung wird nun unter Bezugnahme auf 1 beschrieben. 1 zeigt einen erfindungsgemäßen Parallelverarbeitungscomputer. Hei diesem Ausführungsbeispiel sind mehrere Cluster 100 durch ein Netzwerk 4 miteinander verbunden. In 1 ist der Aufbau einer der Cluster 100 gezeigt, während die Aufbauten für weitere Cluster nicht dargestellt sind. In 1 bezeichnet 1 eine CPU, die dieselbe Struktur haben kann wie ein bekannter Mikroprozessor. In 1 ist der Einfachheit halber nur eine einzige CPU dargestellt, jedoch bildet jeder Cluster 100 einen eng gekoppelten Mikroprozessor aus mindestens zwei CPUs. Die Erfindung arbeitet jedoch auch, wenn jeder Cluster 100 nur einen einzigen Prozessor aufweist. 2 bezeichnet einen Speicher, der als Hauptspeicher des Clusters 100 verwendet wird. Zugriff zum Hauptspeicher 2 erfolgt über die CPU 1 oder eine (nicht dargestellte) externe Einrichtung über einen Bus 3, was mit Hilfe der bekannten Technik erfolgt. 4 bezeichnet ein Netzwerk zum Anschließen von Clustern 100. Wenn von einem Cluster die Adresse eines Übertragungsempfangsclusters festgelegt wurde, überträgt das Netzwerk 4 die Daten zu dem (nicht dargestellten) Übertragungsempfangscluster mit dieser Adresse.A first embodiment of the invention will now be described with reference to FIG 1 described. 1 shows an inventive Parallel processing computer. Hei this embodiment, several clusters 100 through a network 4 connected with each other. In 1 is the construction of one of the clusters 100 shown, while the structures for other clusters are not shown. In 1 1 denotes a CPU which may have the same structure as a known microprocessor. In 1 For the sake of simplicity, only a single CPU is shown, but each cluster forms 100 a tightly coupled microprocessor of at least two CPUs. However, the invention also works when each cluster 100 has only a single processor. 2 refers to a memory that is the main memory of the cluster 100 is used. Access to the main memory 2 is done via the CPU 1 or an external device (not shown) via a bus 3 What happens with the help of the known technique. 4 denotes a network for connecting clusters 100 , If a cluster has specified the address of a broadcast receive cluster, the network transfers 4 the data to the transmit receive cluster (not shown) with this address.

110 bezeichnet eine Sendendatenleseschaltung zum Lesen von Daten, die vom Speicher 2 aus zu übertragen sind. 28 bezeichnet eine Sendeschaltung zum Senden der gelesenen Sendedaten in Paketform über das Netzwerk 4. 42 bezeichnet eine Schaltung zum Empfangen eines Pakets vom Netzwerk 4. 120 bezeichnet eine Empfangsdatenschreibschaltung zum Einschreiben der mit dem empfangenen Paket empfangenen Daten in den Speicher 2. 7 bezeichnet eine Speicherzugriffsschaltung zum Ausführen eines Zugriffs auf den Speicher 2 zum Lesen zu sendender Daten oder zum Einschreiben empfangener Daten. 110 denotes a transmit data read circuit for reading data from the memory 2 are to be transferred from. 28 denotes a transmission circuit for transmitting the read transmission data in packet form via the network 4 , 42 denotes a circuit for receiving a packet from the network 4 , 120 denotes a reception data write circuit for writing the data received with the received packet into the memory 2 , 7 denotes a memory access circuit for executing access to the memory 2 for reading data to be sent or for writing in received data.

In der CPU 1 wird ein Nutzerprozeß in derselben Weise ausgeführt wie ein solcher, der im UNIX-Betriebssystem ausgeführt wird, das von UNIX System Laboratories Ltd., USA entwickelt und lizensiert wird. Es existiert ein virtueller Raum, der einem Nutzerprozeß entspricht. In 1 ist nur ein virtueller Raum 10 in der CPU 1 dargestellt, um die Beschreibung zu vereinfachen. Ein virtueller Kommunikationsbereich 11 zum Senden von Daten und zum Empfangen von Daten und ein virtueller Anforderungsbereich 12 für Information, die zu sendenden Daten hinzuzufügen ist, sind im virtuellen Raum 10 vorhanden.In the CPU 1 For example, a user process is performed in the same manner as that performed in the UNIX operating system developed and licensed by UNIX System Laboratories Ltd., USA. There is a virtual space that corresponds to a user process. In 1 is just a virtual space 10 in the CPU 1 to simplify the description. A virtual communication area 11 for sending data and for receiving data and a virtual request area 12 for information to add to data to be sent are in virtual space 10 available.

Der Speicher 2 verfügt über einen reellen Kommunikationsbereich 13, in dem der virtuelle Kommunikationsbereich 11, wie er jedem Nutzerprozeß entspricht, kartiert ist. Er verfügt weiterhin über einen reellen Anforderungsbereich 14, in dem der für jeden Nutzerprozeß vorhandene virtuelle Anforderungsbereich 12 kartiert ist. Weiterhin ist eine Seitentabelle 15 für Adreßübersetzung für jeden Nutzerprozeß und eine Kommunikationsbereichstabelle 16 vorhanden, um auf mehrere Kommunikationsbereiche 13 in diesem Cluster zugreifen zu können.The memory 2 has a real communication area 13 in which the virtual communication area 11 as it corresponds to each user process is mapped. He still has a real requirement area 14 in which the virtual request area existing for each user process 12 is mapped. Furthermore, a page table 15 for address translation for each user process and a communications area table 16 present to several communication areas 13 in this cluster.

Gemäß dem vorliegenden Ausführungsbeispiel besteht eine solche Struktur, daß ein in einem bestimmten Cluster auszuführenden Nutzerprozeß zu sendende Daten in den reellen Kommunikationsbereich 13 innerhalb dieses Clusters einschreibt, ohne daß hierzu das Betriebssystem tätig wird, das diesen Cluster steuert, daß die Sendedatenlesesteuerung 110 die zu sendenden Daten liest, ohne daß hierzu das Betriebssystem arbeiten muß, daß die Empfangsdatenschreibschaltung 120 die von einem anderen Cluster empfangenen Daten in den reellen Kommunikationsbereich 13 einschreibt, ohne daß hierzu das Betriebssystem tätig werden muß, und daß der Nutzerprozeß die Daten liest, ohne daß hierzu das Betriebssystem tätig wird.According to the present embodiment, such a structure that a user process to be executed in a certain cluster is data to be transmitted in the real communication area 13 within that cluster, without the operating system operating that controls that cluster, enrolling the transmit data read control 110 the data to be sent reads, without requiring the operating system to operate, that the receive data write circuit 120 the data received from another cluster into the real communication area 13 writes in without the operating system having to do this, and that the user process reads the data without the operating system acting on it.

6 zeigt eine Struktur für den virtuellen Kommunikationsbereich 11. Es sind in ihm Daten angeordnet, die von einem Nutzerprozeß zu senden sind (z. B. ein Array A, Variable) oder Daten, die von einem anderen empfangen werden, und ein Datenempfangsfleck. Dieser Bereich ist ein solcher, der hauptsächlich dazu dient, Daten mit einem in einem anderen Cluster ausgeführten Prozeß auszutauschen. 6 shows a structure for the virtual communication area 11 , It is arranged with data to be sent by one user process (eg, an array A, variable) or data received from another, and a data reception spot. This area is one that is primarily used to exchange data with a process running in another cluster.

7 zeigt eine Struktur für den virtuellen Anforderungsbereich 12. Dies ist ein Bereich, bei dem eine vom Nutzerprozeß verwendete Bibliotheksfunktion einen Zugriff ausführt. Der Anforderungsbereich 12 weist mindestens eine Anforderungsstruktureinheit 12-1 und eine Ortstabelle 12-2 auf. Die Anforderungsstruktureinheit 12-1 speichert eine Datensendeanforderung, die einem Prozeß in einem anderen Cluster von einem Prozeß zugeordnet wird, der dem virtuellen Raum 10 entspricht, in dem sich der Anforderungsbereich 12 befindet, und Parameter, die dieser Datensendeanforderung zugefügt sind. Die Ortstabelle 12-2 speichert Information, die auf den von einem anderen Cluster gesteuerten Prozeß bezogen ist. 7 shows a structure for the virtual request area 12 , This is an area where a library function used by the user process makes an access. The requirement area 12 has at least one requirement structure unit 12-1 and a place table 12-2 on. The requirement structure unit 12-1 stores a data transmission request that is assigned to a process in another cluster by a process that is the virtual space 10 corresponds to the requirement area 12 and parameters added to this data send request. The place table 12-2 stores information related to the process controlled by another cluster.

9 zeigt eine Struktur für die Kommunikationsbereichstabelle 16. Diese speichert mehrere Einträge, von denen jeder einem Kommunikationsbereich entspricht. Zu jedem Eintrag gehört eine Basisadresse BASE für den zugeordneten Kommunikationsbereich und eine Größenangabe LN für diesen Bereich. 9 shows a structure for the communication area table 16 , This stores several entries, each of which corresponds to a communication area. Each entry has a base address BASE for the assigned communication area and a size LN for this area.

10 zeigt eine Struktur für die Anforderungstabelle 17. Diese weist mehrere Einträge zum Speichern reeller Adressen auf. Wenn die virtuelle Anforderungsstruktureinheit 12-1 (7) im virtuellen Anforderungsbereich 12 in einem beliebigen virtuellen Raum. 10 shows a structure for the requirement table 17 , This has several entries for storing real addresses. If the virtual requirement structure unit 12-1 ( 7 ) in the virtual request area 12 in any virtual space.

8 zeigt eine Struktur für die Seitentabelle 15. Jeder Eintrag der Seitentabelle 15 weist ein Adreßfeld für eine reelle Seite, ein Flagfeld für eine fixierte Seite und andere Steuerinformation auf. Wenn ein Flag F, das anzeigt, daß eine Seite fixiert ist, im Flagfeld für fixierte Seiten gespeichert ist, nimmt das Betriebssystem eine Steuerung so vor, daß die reelle Seite, die diesem Eintrag entspricht, nicht ausgespeichert wird. Eine Spalte "Andere Steuerinformation" speichert Information ähnlich einer dynamischen Adreßübersetzung gemäß der bekannten Technik. 8th shows a structure for the page table 15 , Each entry of the page table 15 has a real page address field, a fixed page flag field, and other control information. If a flag F indicating that a page is pinned is stored in the fixed page flag field, the operating system controls so that the real page corresponding to that entry is not paged out. A column "Other Control Information" stores information similar to a dynamic address translation according to the prior art.

Es wird nun der Betrieb eines Parallelverarbeitungscomputers gemäß diesem Ausführungsbeispiel beschrieben. Zunächst wird die Initialisierung des Parallelverarbeitungscomputers erläutert. Jeder Cluster weist eine Ausrüstung auf, wie sie erforderlich ist, um den Betrieb zu initialisieren, wie eine Magnetplatteneinheit, die zum Vereinfachen der Zeichnung nicht dargestellt ist. Wenn die Spannungsversorgung Für das System eingeschaltet ist, lädt jeder Cluster ein Initialisierungsprogramm in derselben Weise, wie dies ein eng gekoppelter Mikroprozessor in der bekannten Technik tut, wodurch das Betriebssystem in jedem Cluster unabhängig von den an deren startet. Nachdem das Betriebssystem in jedem Cluster initialisiert wurde, kann das Betriebssystem damit beginnen, Daten mit dem Betriebssystem jedes gewünschten Clusters auszutauschen, was dadurch erfolgt, daß eine bekannte Technik, wie das TCP/IP-Protokoll, verwendet wird. Der Austausch erfolgt über das Netzwerk 4 oder ein bekanntes, nicht dargestelltes Netzwerk.The operation of a parallel processing computer according to this embodiment will now be described. First, the initialization of the parallel processing computer will be explained. Each cluster has equipment necessary to initialize the operation, such as a magnetic disk unit which is not shown to simplify the drawing. When the power is on for the system, each cluster loads an initializer in the same way as a tightly coupled microprocessor does in the prior art, thereby starting the operating system independently in each cluster. After the operating system in each cluster has been initialized, the operating system can begin to exchange data with the operating system of each desired cluster, using a known technique such as the TCP / IP protocol. The exchange takes place via the network 4 or a known network, not shown.

Heim vorliegenden Ausführungsbeispiel werden nach dem Initialisieren des Betriebssystems die folgenden Abläufe zusätzlich ausgeführt. Das Betriebssystem in jedem Cluster erzeugt die Kommunikationsbereichstabelle 16 im Speicher 2 und setzt über den Bus 3 die Kopfadresse für diese Tabelle in einem Kommunikationsbereichstabellen-Ursprungsregister 6. Dann erzeugt das Betriebssystem die Anforderungstabelle 17 im Hauptspeicher 2 und setzt die Kopfadresse dieser Anforderungstabelle 17 in einem Anforderungstabellen-Ursprungsregister 5. Der Inhalt der Tabelle 17 ist noch nicht geschrieben.In the present embodiment, after initializing the operating system, the following operations are additionally performed. The operating system in each cluster creates the communications area table 16 In the storage room 2 and sits over the bus 3 the head address for this table in a communications area table origin register 6 , Then the operating system generates the request table 17 in main memory 2 and sets the head address of this request table 17 in a request table origin register 5 , The content of the table 17 is not written yet.

Die Initialisierung eines Nutzerprozesses wird nachfolgend beschrieben.The Initialization of a user process is described below.

Zunächst weist der Benutzer das Betriebssystem jedes Clusters an, eine Prozeßinitialisierung vorzunehmen. Dasjenige Betriebssystem, das den Befehl zum Initialisieren erhielt, erzeugt im Speicher 2 die Seitentabelle 15, um einen virtuellen Raum 10 zu erzeugen, der dem Prozeß entspricht, für den die Initialisierung angewiesen wurde. Dies erfolgt auf dieselbe Weise wie beim Stand der Technik. Anschließend wird der virtuelle Kommunikationsbereich 11 wie folgt initialisiert. Ein zusammenhängender reeller Adreßbereich mit vom Programmierer oder vom Compiler vorgegebener Größer wird im Speicher 2 sichergestellt, und dieser Bereich wird als reeller Kommunikationsbereich 13 gesetzt. Dann werden die Adressen dieses reellen Kommuniikationsbereichs 13 aufeinanderfolgend beschrieben, wobei von der Kopfadresse im Adreßfeld für die reelle Seite im Eintrag der Seitentabelle 15 begonnen wird, was der virtuellen Adresse des Kommunikationsbereichs 11 im virtuellen Raum 10 (siehe 8) entspricht. Außerdem wird das Seitenfixierungsflag F im zugehörigen Seitenfixierungsflagfeld innerhalb der Tabelle 15 gesetzt, damit der Kommunikationsbereich 13 nicht seitenmäßig ausgespeichert wird (paged-out). In diesem Fall ist angenommen, daß die Kopfadresse des virtuellen Kommunikationsbereichs 11 auf einen vorgegebenen Wert gesetzt ist und daß dieser Wert den Nutzerprogrammen in allen Clustern gemeinsam ist. Es ist auch angenommen, daß die Größe des virtuellen Kommunikationsbereichs 11 mit der Größe des reellen Kommunikationsbereichs 13 übereinstimmt.First, the user instructs the operating system of each cluster to perform a process initialization. The operating system that received the command to initialize generates in memory 2 the page table 15 to a virtual space 10 which corresponds to the process for which the initialization was instructed. This is done in the same way as in the prior art. Subsequently, the virtual communication area 11 initialized as follows. A contiguous real address space with a programmer or compiler specified size is stored in memory 2 ensured, and this area is considered a real communication area 13 set. Then the addresses of this real communication area become 13 described in succession, wherein from the head address in the address field for the real page in the entry of the page table 15 is started, what the virtual address of the communication area 11 in virtual space 10 (please refer 8th ) corresponds. In addition, the page fix flag F in the associated page fix flag is set within the table 15 set, hence the communication area 13 not paged out (paged-out). In this case, it is assumed that the head address of the virtual communication area 11 is set to a predetermined value and that this value is common to the user programs in all clusters. It is also assumed that the size of the virtual communication area 11 with the size of the real communication area 13 matches.

Das Betriebssystem ordnet dem reellen Kommunikationsbereich 13 eine eindeutige Kommunikationsbereichsidentifizierung innerhalb des Clusters 78 zu und setzt die Basisadresse (Kopfadresse) und die Größe des reellen Kommunikationsbereichs 13 im Eintrag (siehe 9) der Kommunikationsbereichstabelle 16 mit der Kommunikationsbereichsidentifizierung als Eintragsnummer. Der virtuelle Kommunikationsbereich 11 wird dem reellen Kommunikationsbereich 13 fest durch das Seitenfixierungsflag der Seitentabelle zugeordnet. Daher kann der virtuelle Kommunikationsbereich 11 eindeutig innerhalb des Clusters durch die eindeutige Kommunikationsidentifizierung innerhalb des Clusters identifiziert werden, die im reellen Kommunikationsbereich 13 gesetzt wurde.The operating system assigns the real communication area 13 a unique communication area identifier within the cluster 78 and sets the base address (head address) and the size of the real communication area 13 in the entry (see 9 ) of the communication area table 16 with the communication area identifier as the entry number. The virtual communication area 11 becomes the real communication area 13 fixed by the page fix flag of the page table. Therefore, the virtual communication area 11 be unambiguously identified within the cluster by the unique communication identification within the cluster that is in the real communication area 13 was set.

Dann stellt das Betriebssystem den reellen Anforderungsbereich 14 im zusammenhängenden Bereich des Speichers 2 sicher und schreibt dann die Adresse des gesicherten reellen Anforderungsbereichs 14 in das reelle Seitenadreßfeld des Eintrags der Seitentabelle 15, der der virtuellen Adresse des Anforderungsbereichs 12 im virtuellen Raum 10 entspricht, und setzt das Seitenfixierungsflag F im Seitenfixierungsflagfeld (siehe 8), damit der Inhalt des gesicherten reellen Anforderungsbereichs 14 nicht seitenmäßig ausgespeichert wird. Dann erzeugt das Betriebssystem die Anforderungsstruktureinheit 12-1 und die Ortstabelle 12-2 im virtuellen Anforderungsbereich 12, wie in 7 dargestellt. Wie vorstehend beschrieben, wurde der zugehörige reelle Anforderungsbereich 14 im virtuellen Anforderungsbereich 12 gesichert, und der reelle Anforderungsbereich 14 wurde als im Speicher 2 resident festgelegt, so daß dieser Bereich nicht seitenmäßig ausgespeichert wird. Dementsprechend entspricht der tatsächliche Speicher ohne Ausnahme der Anforderungsstruktureinheit 12-1 und der Ortstabelle 12-2. Jedoch wurde dort noch keine Information gespeichert.Then the operating system sets the real request area 14 in the contiguous area of the store 2 sure and then write the address of the secured real requirement area 14 into the real page address field of the page table entry 15 , the virtual address of the request scope 12 in virtual space 10 and sets the page fix flag F in the page fix flag (see 8th ), thus the contents of the secured real requirement area 14 is not stored out page by page. Then, the operating system generates the request structure unit 12-1 and the place table 12-2 in the virtual request area 12 , as in 7 shown. As described above, the corresponding real request area has become 14 in the virtual request area 12 secured, and the real requirement area 14 was when in the store 2 Resident set, so that this area is not stored page by page. Accordingly, the actual memory without exception corresponds to the request structural unit 12-1 and the place table 12-2 , However, there was still no information stored there.

Das Betriebssystem setzt weiterhin die Adresse der Seitentabelle 15 in einem vorgegebenen (nicht dargestellten) Bereich des initialisierten Prozesses, damit sich der Prozeß auf die Seitentabelle 15 beziehen kann.The operating system continues to set the address of the page table 15 in a predetermined area (not shown) of the initialized process to allow the process to access the page table 15 can relate.

Anschließend schreibt das Betriebssystem die reelle Kopfadresse für den Bereich des reellen Anforderungsbereichs 14, der der wie oben angegeben erzeugten Anforderungsstruktureinheit 12-1 entspricht, im noch unbenutzten Eintragungsbereich der reellen Anforderungstabelle 17.Then the operating system writes the real header address for the real request area 14 , the request structure unit generated as indicated above 12-1 corresponds, in the still unused entry area of the real requirement table 17 ,

Durch Initialisieren des Betriebssystems, wie vorstehend angegeben, kann vom Nutzerprozeß auf den reellen Kommunikationsbereich 13 dadurch zugegriffen werden, daß die virtuelle Adresse des virtuellen Kommunikationsbereichs 11 verwendet wird. Ein Zugriff kann auch vom Betriebssystem oder einer externen Einrichtung auf den reellen Kommunikationsbereich 13 dadurch erfolgen, daß mit Hilfe der reellen Kommunikationsbereichstabelle 16 die reelle Adresse verwendet wird. Auf den reellen Bereich, der der virtuellen Anforderungsstruktureinheit 12-1 entspricht, kann vom virtuellen Anforderungsbereich 12-1 dadurch zugegriffen werden, daß die virtuelle Adresse des virtuellen Anforderungsbereichs 12-1 verwendet wird. Auf den reellen Bereich kann auch direkt vom Betriebssystem oder der externen Einrichtung zugegriffen werden, in dem die reelle Adresse über die Anforderungstabelle 17 verwendet wird.By initializing the operating system as stated above, the user process can access the real communication area 13 be accessed by the virtual address of the virtual communication area 11 is used. Access can also be from the operating system or an external device to the real communication area 13 be done by using the real communication area table 16 the real address is used. On the real area, that of the virtual requirement structure unit 12-1 may be from the virtual request area 12-1 be accessed by the virtual address of the virtual request area 12-1 is used. The real area can also be accessed directly from the operating system or external device, where the real address is via the requirement table 17 is used.

Dann fügt das Betriebssystem den Namen des Prozesses, der dem Initialisierprozeß vorab durch den Programmierer oder durch den Compiler zugeordnet wurde, die Kommunikationsbereichsidentifizierung für den bei diesem Prozeß zu benutzenden reellen Kommunikationsbereich 13 und die Adresse innerhalb des Netzwerks des Clusters zusammen. Das Betriebssystem überträgt diesen Datensatz an alle anderen Cluster. Wenn das jeweilige Betriebssystem in jedem der anderen Cluster den Prozeßnamen, die Kommunikationsbereichsidentifizierung und die Adresse innerhalb des Netzwerks des Clusters erhalten hat, schreibt sie den empfangenen Prozeßnamen, die empfangene Kommunikationsbereichsidentifizierung und die empfangene Adresse innerhalb des Netzwerks des Clusters in einen freien Eintragungsbereich der Ortstabelle (der Bereich im reellen Speicher, der der Ortstabelle 12-2 in 7 entspricht) im reellen Anforderungsbereich 14, der für den Nutzerprozeß im Cluster vorgesehen ist, wobei die Bezugnahme auf die Prozeßnamen vorab durch den Programmierer oder den Compiler erfolgte. Der Cluster zum Initialisieren des vorstehend genannten Nutzerprozesses führt dieselbe Verarbeitung, wie vorstehend angegeben, aus, wenn der Nutzerprozeß, der den Prozeß innerhalb dieses Clusters als Nutzerprozeß des Übertragungsempfangs verwendet, im anderen Cluster initialisiert wurde. Wenn mit der vorstehend genannten Anordnung der im virtuellen Raum 10 auszuführende Prozeß eine Zuordnung des Namens des Übertragungsempfangs-Nutzerprozesses vornimmt, können die Adresse des Clusters, in dem dieser Prozeß existiert, und die Kommunikationsbereichsidentifizierung des Kommunikationsbereichs 11, der im Übertragungsempfangs-Nutzerprozeß zu verwenden ist, erhalten werden, ohne daß hierzu das Betriebssystem verwendet wird, was weiter unten beschrieben wird.Then, the operating system adds the name of the process previously assigned to the initialization process by the programmer or the compiler, the communication area identifier for the real communication area to be used in this process 13 and the address within the network of the cluster together. The operating system transfers this record to all other clusters. When the respective operating system in each of the other clusters has received the process name, the communication area identification and the address within the network of the cluster, it writes the received process name, the received communication area identification and the received address within the network of the cluster into a free entry area of the location table ( the area in real memory, that of the place table 12-2 in 7 corresponds) in the real requirement area 14 provided for the user process in the cluster, the reference to the process names being made beforehand by the programmer or the compiler. The cluster for initializing the above-mentioned user process performs the same processing as mentioned above when the user process using the process within that cluster as the user process of the transmission reception has been initialized in the other cluster. If with the above arrangement in virtual space 10 The process to be executed makes an association of the name of the transmission reception user process, the address of the cluster in which this process exists, and the communication area identification of the communication area 11 which is to be used in the broadcast receiving user process can be obtained without using the operating system, which will be described later.

Nutzerprozesse, die in der vorstehend genannten Weise betrieben wurden, arbeiten parallel, indem sie wechselseitig Daten aneinander übertragen.User processes which were operated in the above manner, work parallel by mutually transferring data to each other.

Unter Bezugnahme auf 11 wird nun die Datenübertragung zwischen Prozessen in bezug auf das vorliegende Ausführungsbeispiel erläutert. Der Ablauf, wie er auszuführen ist, um Datenübertragung zwischen Nutzerprozessen vorzunehmen, wird dadurch erläutert, daß die Abläufe in einen solchen für einen Nutzerprozeß des Übertragungsursprungs und einen solchen des Übertragungsempfangs aufgeteilt werden. In der Beschreibung des Ablaufs des Nutzerprozesses des Übertragungsursprungs erfolgt eine Unterteilung der Abläufe in einen solchen des Betriebs des Nutzerprozesses des Übertragungsursprungs, des Clusters des Übertragungsursprungs und des (nicht dargestellten) Clusters des Übertragungsempfangs. Wenn nicht anders angegeben, werden die Abläufe gemäß der folgenden Erläuterung von der CPU 1 ausgeführt.With reference to 11 Now, the data transfer between processes will be explained with respect to the present embodiment. The procedure to be taken to perform data transfer between user processes is explained by dividing the operations into one for a user process of the transmission origin and one of the transmission reception. In the description of the operation of the user process of the transmission origin, the operations are divided into those of the operation of the user process of the transmission origin, the cluster of the transmission origin, and the cluster of the transmission reception (not shown). Unless otherwise indicated, the operations will be described by the CPU as explained below 1 executed.

Schritt 50: Aufrufen der Bibliotheksfunktion "Send".step 50 : Invoke the library function "Send".

Wenn der Übertragungsursprungsprozeß damit beginnt, zu sendende Daten aus dem virtuellen Kommunikationsbereich 11, z. B. ein Array A, an den Datenempfangsprozeß zu senden, wird die vorab erstellte (nicht dargestellte) Bibliotheksfunktion "Send" in folgendem Format aufgerugen:
Send ("Name des Übertragungsempfangsprozesses", X, Y, Z, L).
When the transmission originating process starts to send data from the virtual communication area 11 , z. As an array A, to send the data receiving process, the previously created (not shown) library function "Send" in the following format aufgerugen:
Send ("Transfer Receive Process Name", X, Y, Z, L).

Ein Nutzer bestimmt den Namen des Übertragungsempfangsprozesses als erstes Argument. Das zweite Argument X ist die virtuelle Adresse des Kopfes im virtuellen Raum 10 des Übertragungsursprungsprozesses für die Sendedaten A. Das dritte Argument Y ist die virtuelle Adresse des Kopfs des Bereichs, in dem die Daten im (nicht dargestellten) virtuellen Raum des Übertragungsempfangsprozesses zu speichern sind. Das vierte Argument Z ist die virtuelle Adresse des Datenempfangsflags, das im Übertragungsempfangscluster zu speichern ist, wenn Daten empfangen werden. Das fünfte Argument L kennzeichnet das Volumen der zu sendenden Daten. Heim vorliegenden Ausführungsbeispiel kennt der Datenübertragungsprozeß vorab die Lage und die Größe des virtuellen Kommunikationsbereichs des Übertragungsempfangsprozesses. Dementsprechend können dem dritten und vierten Argument die virtuellen Adressen zugeordnet werden, wie sie programmgemäß diesem Kommunikationsbereich zugehören. Das durch das fünfte Argument angegebene Datenvolumen ist so programmiert, daß es kleiner ist als die Größe des virtuellen Kommunikationsbereichs.A user determines the name of the transmission receiving process as a first argument. The second argument X is the virtual address of the head in virtual space 10 of the transmission origin process for the transmission data A. The third argument Y is the virtual address of the head of the area in which the data is to be stored in the virtual space (not shown) of the transmission reception process. The fourth argument Z is the virtual address of the data reception flag to be stored in the transmission reception cluster when data is received. The fifth Argu L denotes the volume of the data to be sent. In the present embodiment, the data transfer process knows in advance the location and the size of the virtual communication area of the transmission reception process. Accordingly, the virtual addresses can be assigned to the third and fourth arguments, as they belong to the program according to this communication area. The data volume indicated by the fifth argument is programmed to be smaller than the size of the virtual communication area.

Schritt 51: Umwandeln der Argumentestep 51 : Converting the arguments

Die Bibliotheksfunktion "Send", die aufgerufen wurde, arbeitet im virtuellen Raum 10 wie folgt als Teil des Nutzerprozesses. Sie liest die Clusteradresse und die Kommunikationsbereichsidentifizierung des Übertragungsempfangsprozesses aus der Ortstabelle 12-2 im virtuellen Anforderungsbereich 12 (der zugehörige reelle Anforderungsbereich 14 ist im Speicher 2 resident) auf Grundlage des Namens des Übertragungsempfangsprozesses. Dann wandelt sie die virtuelle Adresse des Kopfes der Übertragungsdaten in die reelle Adresse der Übertragungsdaten im reellen Kommunikationsbereich 13 des Speichers 2, was unter Nutzung der Seitentabel le 15 erfolgt. Die Bibliotheksfunktion "Send" zieht die Kopfadresse des virtuellen Kommunikationsbereichs 11 des Übertragungsursprungsclusters von der virtuellen Adresse des Datenempfangsbereichs bzw. des Datenempfangsflags ab, um den jeweiligen Offset innerhalb des reellen Kommunikationsbereichs 13 des Übertragungsempfangs zu erhalten. Die Richtigkeit dieser Abläufe wird durch die Tatsache garantiert, daß in allen Clustern die Kopfadresse des virtuellen Kommunikationsbereichs 11 innerhalb des Nutzerprozesses zugesendet wurde und daß der virtuelle Kommunikationsbereich 11 nachfolgend vom Kopf des Bereichs im reellen Kommunikationsbereich 13 des zusammenhängenden Bereichs im Speicher 2 zugeordnet wurde.The library function "Send", which was called, works in virtual space 10 as follows as part of the user process. It reads the cluster address and the communication area identification of the transmission reception process from the location table 12-2 in the virtual request area 12 (the corresponding real request area 14 is in the store 2 resident) based on the name of the transmission reception process. Then it converts the virtual address of the head of the transmission data into the real address of the transmission data in the real communication area 13 of the memory 2 , what by using the side tab le 15 he follows. The library function "Send" pulls the head address of the virtual communication area 11 of the transmission origin cluster from the virtual address of the data reception area and the data reception flag, respectively, to the respective offset within the real communication area 13 to receive the transmission receipt. The correctness of these processes is guaranteed by the fact that in all clusters the head address of the virtual communication area 11 was sent within the user process and that the virtual communication area 11 subsequently from the head of the area in the real communication area 13 of the contiguous area in memory 2 was assigned.

Das wie vorstehend erhaltene Offsetvolumen wird negativ, wenn sich ein Programmfehler im Nutzerprozeß befindet. In diesem Fall erfolgt im Betriebssystem eine Programmunterbrechung.The as above obtained offset volume becomes negative when a Bug is in the user process. In this case, a program interrupt occurs in the operating system.

Schritt 52: Setzvorgänge im Anforderungsbereichstep 52 : Setting processes in the requirement area

Die Bibliotheksfunktion "Send" schreibt dann die Adresse CL des Übertragungsempfangsclusters und die Kommunikationsbereichsidentifizierung ID, wie sie zuvor gelesen wurden, den Offset SO des Datenempfangsbereichs, den Offset FO des Datenempfangsflags, die Datenlänge der Übertragungsdaten und die reelle Adresse, wie sie zuvor erhalten wurden, jeweils in die Anforderungsstruktureinheit 12-1 im virtuellen Anforderungsbereich 12 (7). Sie setzt darüber hinaus das Anforderungsflag im Anforderungsflagfeld in der Anforderungsstruktureinheit 12-1. Da der virtuelle Anforderungsbereich 12 im reellen Anforderungsbereich 14 resident ist, werden diese Parameter in den reellen Anforderungsbereich 14 eingeschrieben.The library function "Send" then writes the address CL of the transmission reception cluster and the communication area identification ID as previously read, the offset SO of the data reception area, the offset FO of the data reception flag, the data length of the transmission data and the real address as previously obtained. each in the requirement structure unit 12-1 in the virtual request area 12 ( 7 ). It also sets the request flag in the request flag field in the request structure unit 12-1 , Because the virtual request area 12 in the real requirement area 14 resident, these parameters are in the real request area 14 enrolled.

Schritt 53: Ausführen des nächsten Befehlsstep 53 : Execute the next command

Wenn die vorstehend beschriebenen Abläufe abgeschlossen sind, gibt die Bibliotheksfunktion "Send" die Steuerung an den Nutzerprozeß zurück. Dieser führt den anschließenden Befehl der Übertragungsanforderung parallel mit den folgenden Abläufen durch.If the processes described above completed, the library function "Send" indicates the control the user process back. This leads the subsequent Command of the transfer request parallel with the following procedures by.

Schritt 54: Setzen von Parametern in Registernstep 54 : Setting Parameters in Registers

Eine Anforderungsauswahlschaltung 21 wiederholt immer die folgenden Abläufe. Sie liest den Wert des Anforderungstabellenursprungsregisters 5, d. h. den Wert, wie er durch das Betriebssystem bei dessen Initialisierung festgelegt wurde, in der Anforderungstabelleneintragungsadreßerzeugungsschaltung 21-1 innerhalb der Schaltung 21 (2) erzeugt die reelle Adresse des Kopfeintrags der Anforderungstabelle 17 im Speicher 2 und liest die reelle Adresse der (nicht dargestellten) Anforderungsstruktureinheit, wobei es sich um den Inhalt dieses Eintrags handelt, aus dem Speicher 2, und gibt eine Eingabe über die Speicherzugriffsschaltung 7 und den Bus 3 in die Anforderungsflagadreßerzeugungsschaltung 21-2. Letztere erhält die reelle Adresse des Anforderungsflagfeldes von der gelesenen reellen Adresse der Anforderungsstruktureinheit und gibt den Inhalt dieser reellen Adresse aus dem Speicher 2 über die Speicherzugriffsschaltung 7 und den Bus 3 in eine Anforderungsflagentscheidungsschaltung 21-3. Letztere entscheidet, ob das Anforderungsflag in das Anforderungsflagfeld geschrieben wurde, und sendet ein Signal an die Anforderungstabelleneintragungsadreßerzeugungsschaltung 21-1, wenn das Anforderungsflag noch nicht in das Anforderungsflagfeld eingeschrieben ist. Die Schaltung 21-1 erzeugt eine Adresse für den nächsten Eintrag der Anforderungstabelle 17; danach arbeiten die Anforderungsflagadreßerzeugungsschaltung 21-2 und die Anforderungsflagentscheidungsschal tung 21-3 in derselben Weise, wie vorstehend beschrieben. Wenn das Anforderungsflag in das Anforderungsflagfeld eingeschrieben ist, sendet die Anforderungsflagentscheidungsschaltung 21-3 darüber hinaus an eine Sendeschaltungszustand-Entscheidungsschaltung 21-4 ein Signal, damit diese den Zustand der Sendeschaltung 28 des zugehörigen Clusters feststellt. Wenn die Sendeschaltung 28 gerade beschäftigt ist, überprüft die Schaltung 21-4 den Zustand der Sendeschaltung 28 erneut. Wenn letztere nicht beschäftigt ist, wird eine Anforderungsstruktureinheiteingabeadreßerzeugungsschaltung 21-5 initialisiert. Sie liest die (nicht dargestellte) Anforderungsstruktureinheit im reellen Adreßbereich, der der virtuellen Anforderungsstruktureinheft 12-1 entspricht, was auf Grundlage der Adresse der Anforderungsstruktureinheit 12-1 erfolgt, die zuvor durch die Anforderungstabelleeintragsadreßerzeugungsschaltung 21-1 gelesen wurde, und sie stellt eine Kopie der Clusteradresse CL in einem Register 22 her, eine Kopie der Kommunikationsbereichsidentifizierung ID in einem Register 23, eine Kopie des Offsets SO des Datenempfangsbereichs in einem Register 24, eine Kopie des Offsets FO des Datenempfangsflags in einem Register 25 und eine Kopie der Datenlänge LEN in einem Register 26. Danach erstellt die Schaltung 21-5 eine Kopie der zu sendenden Daten aus dem reellen Kommunikationsbereich 13 in einem Puffer 27, was unter Nutzung der reellen Adresse der Sendedaten innerhalb der (nicht dargestellten) reellen Anforderungsstruktureinheit erfolgt, die gelesen wurde. Danach sendet die Schaltung 21-5 eine Anforderungsflagadresse und einen Rücksetzbefehl aus, um das Anforderungsflagfeld rückzusetzen, damit der Nutzerprozeß, von dem die Übertragungsforderung ausging, erkennen kann, daß der Inhalt des Bereichs, in dem die zu übertragenden Daten gespeichert sind, geändert werden kann, da das Lesen der zu übertragenden Daten abgeschlossen wurde.A request selection circuit 21 always repeats the following procedures. It reads the value of the request table origin register 5 that is, the value as determined by the operating system at its initialization in the request table entry address generation circuit 21-1 within the circuit 21 ( 2 ) generates the real address of the header entry of the request table 17 In the storage room 2 and reads the physical address of the request structure unit (not shown), which is the content of that entry, from the memory 2 , and gives an input via the memory access circuit 7 and the bus 3 to the request flag address generation circuit 21-2 , The latter receives the real address of the request flag field from the read real address of the request structure unit and outputs the contents of this real address from the memory 2 via the memory access circuit 7 and the bus 3 in a request flag decision circuit 21-3 , The latter decides whether the request flag has been written in the request flag field and sends a signal to the request table entry address generation circuit 21-1 if the request flag is not yet written in the request flag field. The circuit 21-1 generates an address for the next entry of the request table 17 ; thereafter, the request flag address generation circuit operates 21-2 and the request flag decision circuit 21-3 in the same manner as described above. When the request flag is written in the request flag field, the request flag decision circuit sends 21-3 in addition to a transmission circuit state decision circuit 21-4 a signal to indicate the state of the transmission circuit 28 of the associated cluster. When the transmission circuit 28 just busy, check the circuit 21-4 the state of the transmission circuit 28 again. If the latter is not busy, a request structure input input address generation circuit will become 21-5 initialized. She reads the Request structure unit (not shown) in the real address space, which includes the virtual request structure 12-1 corresponds to what is based on the address of the request structure unit 12-1 previously performed by the request table entry address generation circuit 21-1 has been read, and places a copy of the cluster address CL in a register 22 a copy of the communication area identification ID in a register 23 , a copy of the offset SO of the data reception area in a register 24 , a copy of the offset FO of the data reception flag in a register 25 and a copy of the data length LEN in a register 26 , After that creates the circuit 21-5 a copy of the data to be sent from the real communication area 13 in a buffer 27 which is done using the real address of the transmission data within the real request structure unit (not shown) that has been read. After that, the circuit sends 21-5 a request flag address and a reset command to reset the request flag field so that the user process originating the transfer request can recognize that the content of the area in which the data to be transferred is stored can be changed since the reading of the data to be transmitted Data was completed.

Wenn die vorstehenden Abläufe abgeschlossen sind, wird dies der Anforderungstabelleneintragungsadreßerzeugungsschaltung 21-1 über eine Leitung 1000 mitgeteilt.When the above operations are completed, this becomes the request table entry address generation circuit 21-1 over a line 1000 communicated.

Ähnliche Abläufe werden für den Rest der Anforderungsstruktureinheiten ausgeführt.Similar procedures be for the rest of the requirement structure units executed.

Schritt 55: Übertragen von Datenstep 55: Transferring data

Die Sendeschaltung 28 sendet den Inhalt der Register 22 bis 26 zusammen mit dem Inhalt des Puffers 27 als Paket an das Netzwerk 4.The transmission circuit 28 sends the contents of the registers 22 to 26 along with the contents of the buffer 27 as a packet to the network 4 ,

Wie oben beschrieben, senden im Übertragungsursprungscluster die Bibliotheksfunktion "Send", die Sendedatenleseschaltung 110 und die Sendeschaltung 28 Daten an das Netzwerk 4, ohne daß hierzu das Betriebssystem beansprucht wird. Dies erfolgt auf eine Anforderung hin vom Übertragungsursprungsprozeß. Der Betriebsablauf im Übertragungsempfangscluster wird nachfolgend beschrieben.As described above, in the transmission origin cluster, the library function "Send" transmits the transmission data read circuit 110 and the transmission circuit 28 Data to the network 4 without requiring the operating system. This is done upon request from the origin of transfer process. The operation in the transmission receiving cluster will be described below.

Schritt 56: Überprüfung der Datenaufnahmefähigkeit im Kommunikationsbereichstep 56 : Checking the Data Acceptance in the Communication Area

Wenn ein Paket für das Netzwerk 4 am Übertragungsempfangscluster angekommen ist, empfängt eine Empfangsschaltung 42 das Paket und erstellt eine Kopie der Kommunikationsbereichsidentifizierung (ID) in einem Register 37, eine Kopie des Offsets (SO) des Datenempfangsbereichs in einem Register 38, eine Kopie des Offsets (FO) des Datenempfangsflags in einem Register 39, eine Kopie der Datenlänge (LEN) in einem Register 40 und eine Kopie der Daten in einem Puffer 41, Dann verwendet eine Kommunikationsbereichstabellenadreßerzeugungsschaltung 31 (3) auf Grundlage der Kommunika tionsbereichsidentifizierung ID im Register 37 eine Offsetberechnungsschaltung 31-1, um den Offset der dieser Identifizierung ID entsprechenden Eintragung innerhalb der Kommunikationsbereichstabelle 16 (9) festzustellen. Die Kommunikationsbereichstabellenadreßerzeugungsschaltung 31 verwendet dann eine Addierschaltung 31-2 zum Addieren des Offsets zur Kopfadresse der Kommunikationsbereichstabelle 16 im Speicher 2, wie durch das Kommunikationsbereichstabellenursprungsregister 6 angegeben, um die Eingabeadresse (reelle Adresse) zu berechnen, die dieser Kommunikationsbereichsidentifizierung in der Kommunikationsbereichstabelle 16 entspricht, und sie erstellt eine Kopie der Kommunikationsbereichsbasisadresse BASE dieses Eintrags im Register 32 und eine Kopie der Größe LN des Kommunikationsbereichs im Register 33, was durch die Speicherzugriffsschaltung 7 und den Bus 3 erfolgt.If a package for the network 4 arrived at the transmission reception cluster, receives a receiving circuit 42 the packet and creates a copy of the communication area identifier (ID) in a register 37 , a copy of the offset (SO) of the data reception area in a register 38 , a copy of the offset (FO) of the data reception flag in a register 39 , a copy of the data length (LEN) in a register 40 and a copy of the data in a buffer 41 Then, use a communication area table address generation circuit 31 ( 3 ) based on the communication area ID in the register 37 an offset calculation circuit 31-1 to the offset of the entry corresponding to this identification ID within the communication area table 16 ( 9 ). The communication area table address generating circuit 31 then uses an adder circuit 31-2 for adding the offset to the head address of the communication area table 16 In the storage room 2 as by the communication area table origin register 6 to calculate the input address (real address) of this communication area identification in the communication area table 16 and it creates a copy of the communication area base address BASE of this entry in the register 32 and a copy of the size LN of the communication area in the register 33 what through the memory access circuit 7 and the bus 3 he follows.

Wenn der Übertragungsursprungsprozeß normal programmiert ist, werden die Adresse zum Speichern der empfangenen Daten und die Adresse zum Speichern des Datenempfangsflags im reellen Kommunikationsbereich 13 abgelegt. Beim vorliegenden Ausführungsbeispiel wird entschieden, ob diese Adressen im reellen Kommunikationsbereich 13 untergebracht werden können, um zu entscheiden, ob ein Programmierfehler im Übertragungsursprungsprozeß vorliegt. Anders gesagt bedeutet dies, daß eine Entscheidungsschaltung 35 (4) mit Hilfe von Vergleichsschaltungen 35-1 und 35-2 eine Entscheidung vornimmt, wobei sie den Offset SO des Datenempfangsbereichs, also des Inhalts des Registers 38, des Offsets FO des Datenempfangsflags, also des Inhalts des Register 39, der Datenlänge LEN, also des Inhalts des Registers 40, und der Größe LN des Kommunikationsbereichs, also des Inhalts des Registers 33, nutzt. Die Vergleichsschaltung trifft Vergleiche auf Grundlage der jeweiligen Ungleichungen, wie sie in 4 dargestellt sind. Wenn die Ungleichheitsbedingungen er füllt sind, wird durch diese Schaltungen ein Schreibsperrsignal erzeugt. Eine ODER-Schaltung 35-4 nimmt eine ODER-Verknüpfung der Ausgangssignale vor, wie sie durch die Vergleichsschaltungen 35-1 und 35-2 erzeugt werden. Wenn ein Signal an diese ODER-Schaltung 35-4 ausgegeben wird, bedeutet dies, daß Daten im Kommunikationsbereich 11 nicht aufgenommen werden können.When the transmission origin process is normally programmed, the address for storing the received data and the address for storing the data reception flag become the real communication area 13 stored. In the present embodiment, it is decided whether these addresses are in the real communication area 13 can be accommodated to decide whether there is a programming error in the transmission origin process. In other words, this means that a decision circuit 35 ( 4 ) by means of comparison circuits 35-1 and 35-2 makes a decision, taking the offset SO of the data reception area, that is, the contents of the register 38 , the offset FO of the data reception flag, that is, the content of the register 39 , the data length LEN, that is, the contents of the register 40 , and the size LN of the communication area, that is the content of the register 33 , uses. The comparison circuit makes comparisons based on the respective inequalities as described in 4 are shown. When the inequality conditions are filled, a write inhibit signal is generated by these circuits. An OR circuit 35-4 takes an OR operation of the output signals, as determined by the comparator circuits 35-1 and 35-2 be generated. If a signal to this OR circuit 35-4 is output, this means that data in the communication area 11 can not be recorded.

Schritt 59: Auftreten einer Unterbrechungstep 59 : Occurrence of an interruption

Wenn Daten infolge der Entscheidung im reellen Kommunikationsbereich 13 nicht aufgenommen werden können, veranlaßt die Entscheidungsschaltung 35, daß ein Hardwareinterruptsignal über den Buß 3 läuft.If data as a result of the decision in the real communication area 13 can not be received causes the decision circuit 35 that a hardware interrupt signal about the pen 3 running.

Schritt 60: Verhindern von Kommunikationstep 60 : Preventing communication

Das Hardwareinterruptsignal wird von der mindestens einen CPU im Übertragungsempfangscluster festgestellt. Das Betriebssystem wird durch die Interruptverarbeitungsroutine der CPU 1 initialisiert, das als erstes das Signal feststellte, und anschließende Übertragung wird durch Kommunikation dieses Betriebssystems mit dem Betriebssystem des anderen Clusters verhindert.The hardware interrupt signal is detected by the at least one CPU in the transmit receive cluster. The operating system is controlled by the interrupt processing routine of the CPU 1 Initializing the signal that first detected the signal and subsequent transfer is prevented by communication of that operating system with the operating system of the other cluster.

Schritt 57: Adreßübersetzungstep 57 : Address translation

Wenn die Sendedaten im reellen Kommunikationsbereich 13 aufgenommen werden können, verwendet eine Adreßerzeugungsschaltung 34 (5) eine Addierschaltung 34-1 dazu, die reelle Adresse für die Position zu erzeugen, unter der die empfangenen Daten zu speichern sind. Dies erfolgt mit Hilfe des Offsets SO für den Empfangsdatenbereich, also des Inhalts des Registers 38, und der Basisadresse BASE des Kommunikationsbereichs 13, also des Inhalts des Registers 32. Darüber hinaus verwendet die Adreßerzeugungsschaltung 34 eine Addierschaltung 34-2, um die reelle Adresse der Position zu erzeugen, unter der das Datenempfangsflag zu speichern ist. Dies erfolgt mit Hilfe des Offsets FO für das Datenempfangsflag, also des Inhalts des Registers 39, und der Basisadresse BASE des Datenempfangsflags, also des Inhalts des Registers 32.If the transmission data is in the real communication area 13 can be picked up using an address generation circuit 34 ( 5 ) an adder circuit 34-1 to generate the real address for the location under which the received data is to be stored. This is done with the help of the offset SO for the receive data area, ie the contents of the register 38 , and the base address BASE of the communication area 13 , that is the contents of the register 32 , In addition, the address generation circuit uses 34 an adder circuit 34-2 to generate the real address of the position under which the data reception flag is to be stored. This is done with the aid of the offset FO for the data reception flag, ie the contents of the register 39 , and the base address BASE of the data reception flag, that is, the content of the register 32 ,

Schritt 58: Speichern von Datenstep 58 : Saving data

Die Speicherzugriffsschaltung 7 überträgt die empfangenen Daten im Puffer 41 an den reellen Kommunikationsbereich 13, wofür sie die reelle Adresse für die empfangenen Daten, wie in Schritt 57 erzeugt, und die Datenlänge LEN, also den Inhalt des Registers 40, verwendet. Die Speicherzugriffsschaltung setzt darüber hinaus das Datenempfangsflag auf die Position der reellen Adresse des Datenempfangsflags, wie in Schritt 57 erzeugt.The memory access circuit 7 transmits the received data in the buffer 41 to the real communication area 13 what they are the real address for the received data, as in step 57 generated, and the data length LEN, so the contents of the register 40 , used. The memory access circuit also sets the data reception flag to the position of the real address of the data reception flag as in step 57 generated.

Wie vorstehend beschrieben, können die empfangenen Daten in den reellen Kommunikationsbereich eingeschrieben werden, ohne daß hierzu das Betriebssystem tätig werden muß.As described above the received data is written in the real communication area be without this the operating system operates must become.

Gemäß den vorstehend beschriebenen Abläufen legt der Datenübertragungsprozeß die Positionen für die Empfangsdaten und das Datenempfangsflag durch die virtuelle Adresse des virtuellen Kommunikationsbereichs 11 fest. Da der virtuelle Kommunikationsbereich 11 im reellen Kommunikationsbereich 13 resident ist, kann jedoch das Einschreiben nie aufgrund eines Seitenfehlers ohne Erfolg sein. Anders gesagt wird das Paket vom Übertragungsursprungscluster nicht an das Übertragungsempfangscluster zurückgesendet. Dementsprechend ist es beim vorliegenden Ausführungsbeispiel nicht erforderlich, einen Bereich zum Speichern einer Kopie des Paketes vorzusehen, um für ein Rücksenden des Pakets gewappnet zu sein, wie dies beim Stand der Technik erforderlich war.According to the above-described procedures, the data transfer process sets the positions for the reception data and the data reception flag by the virtual address of the virtual communication area 11 firmly. Because the virtual communication area 11 in the real communication area 13 resident, however, enrolling can never be unsuccessful due to a page fault. In other words, the packet from the originating transmission cluster is not sent back to the transmission receiving cluster. Accordingly, in the present embodiment, it is not necessary to provide an area for storing a copy of the package in order to be prepared for returning the package as required in the prior art.

Nachfolgend wird der Ablauf des Übertragungsempfangsprozesses beschrieben.following becomes the flow of the transmission reception process described.

Wenn der Übertragungsempfangsprozeß Daten verwenden möchte, prüft er eine Benutzung der Bibliotheksfunktion, um die Ankunft von Daten zu bestätigen, und liest dann das im virtuellen Kommunikationsbereich existierende Datenempfangsflag unter Verwendung der virtuellen Adresse. Dann entscheidet der Prozeß auf Grundlage des Wertes des Datenempfangsflags, ob der Datenempfang abgeschlossen ist oder nicht. Der Übertragungsempfangsprozeß setzt das Datenempfangsflag vorab durch Zuordnung des Programmierers oder des Compilers zurück, bevor Daten übertragen. Wenn der Datenempfang abgeschlossen ist, wird das Flag in der oben beschriebenen Weise gesetzt. Daher kann der Übertragungsempfangsprozeß auf Grundlage des Flags entscheiden, ob der Datenempfang abgeschlossen ist. Nachdem der Abschluß der Datenübertragung festgestellt ist, greift der Übertragungsempfangsprozeß mit Hilfe der virtuellen Adresse auf die empfangenen Daten zu. Wenn das Flag rückgesetzt bleibt, liegt eine solche Programmierung vor, daß der Übertragungsempfangsprozeß keinen Zugriff auf die Daten innerhalb des virtuellen Kommunikationsbereichs 11 vornimmt.When the transmission receiving process wants to use data, it checks use of the library function to confirm the arrival of data, and then reads the data reception flag existing in the virtual communication area using the virtual address. Then, based on the value of the data reception flag, the process decides whether the data reception is completed or not. The transmission reception process resets the data reception flag in advance by assigning the programmer or the compiler before transmitting data. When the data reception is completed, the flag is set in the manner described above. Therefore, the transmission reception process can decide based on the flag whether the data reception is completed. After the completion of the data transmission is detected, the transmission reception process accesses the received data by means of the virtual address. If the flag remains reset, there is such a programming that the transmit receive process does not have access to the data within the virtual communication area 11 performs.

Nachfolgend wird der Abschluß des Prozesses beschrieben. Wenn er abzuschließen ist, löscht das Betriebssystem die Seitentabelle 15 für den Prozeß und gibt Hilsfmittel frei, wie den Speicherbereich, der dem Prozeß zugeordnet ist; dies erfolgt auf ähnliche Weise wie bei dem bekannten UNIX-Betrieb. Gemäß dem vorliegenden Ausführungsbeispiel wird weiterhin der Eintrag, der dem reellen Kommunikationsbereich 13 entspricht, wie er dem zu beendenden Prozeß zugeordnet ist, in der Kommunikationsbereichstabelle 16 gelöscht. Darüber hinaus teilt das Betriebssystem dem Betriebssystem des anderen Clusters den Namen des abzuschließenden Prozesses über das Netzwerk mit. Das Betriebssystem des Clusters, dem die Beendigung des Prozesses mitgeteilt wurde, löscht den Term, der dem Prozeßnamen des beendigten Prozesses entspricht, aus der Ortstabelle 12-2.The completion of the process will be described below. When finished, the operating system deletes the page table 15 for the process and releases resources, such as the memory area associated with the process; this is done in a similar manner as in the known UNIX operation. According to the present embodiment, furthermore, the entry corresponding to the real communication area 13 corresponds to how it is assigned to the process to be terminated in the communication area table 16 deleted. In addition, the operating system notifies the operating system of the other cluster of the name of the process to be completed over the network. The operating system of the cluster that has been notified of the completion of the process deletes the term corresponding to the process name of the completed process from the location table 12-2 ,

Mit den vorstehenden Ausführungen ist die Erläuterung zum ersten Ausführungsbeispiel der Erfindung beendet.With the above statements is the explanation to the first embodiment completed the invention.

Modifizierung des Ausführungsbeispiels 1 (Ausführungsbeispiel 2)Modification of the embodiment 1 (embodiment 2)

Heim vorstehenden Ausführungsbeispiel wurde angenommen, daß der virtuelle Kommunikationsbereich 11 unter jeweils derselben Adresse in jedem virtuellen Raum abgelegt ist. Es kann jedoch auch angenommen werden, daß ein viertes Feld in jedem Eintrag der Ortstabelle 12-2 (7) vorhanden ist, wobei die virtuelle Kopfadresse des virtuellen Kommunikationsbereichs 11 für den jeweiligen Prozeß in diesem vierten Feld gespeichert wird, und daß der Inhalt des vierten Feldes für denjenigen Teil verwendet wird, in dem der Offset des Datenempfangsbereichs dadurch berechnet wird, daß die Kopfadresse des virtuellen Kommunikationsbereichs 11 des Übertragungsursprungsprozesses berechnet wird, wie im obigen Schritt 51. Hei dieser Anordnung ist es nicht erforderlich, diese für die virtuelle Kopfadresse des virtuellen Kommunikationsbereichs 11 in jedem virtuellen Raum zu setzen.Heim previous embodiment, it was assumed that the virtual communication area 11 is stored under each same address in each virtual space. However, it may also be assumed that a fourth field in each entry of the location table 12-2 ( 7 ), wherein the virtual head address of the virtual communication area 11 is stored for the respective process in this fourth field, and that the content of the fourth field is used for that part in which the offset of the data reception area is calculated by the head address of the virtual communication area 11 of the transmission originating process is calculated as in the above step 51 , Hei this arrangement, it is not necessary, this for the virtual head address of the virtual communication area 11 to put in every virtual space.

Im oben beschriebenen Schritt 56 werden die Kopfadresse und die Länge des reellen Kommunikationsbereichs 13 dadurch erhalten, daß die Kommunikationsbereichsidentifizierung ID verwendet wird, die im empfangenen Paket vorhanden ist und im Register 37 gespeichert ist. Jedoch ist es auch möglich, eine solche Anordnung vorzunehmen, daß statt der Kommunika tionsbereichsidentifizierung ID eine Identifizierung verwendet wird, die eindeutig den Prozeß zum Empfangen von Daten identifizieren kann, und daß eine Schaltung zum Empfangen der Kopfadresse und der Länge des reellen Kommunikationsbereichs 13 von dieser Identifikation innerhalb der Empfangsdatenschreibschaltung vorgesehen wird.In the step described above 56 become the head address and the length of the real communication area 13 obtained by using the communication area identifier ID present in the received packet and in the register 37 is stored. However, it is also possible to make such an arrangement that instead of the communication area identification ID, an identifier which can uniquely identify the process of receiving data, and that a circuit for receiving the head address and the length of the real communication area 13 from this identification is provided within the receive data write circuit.

Ein zweites Ausführungsbeispiel der Erfindung wird unter Bezugnahme auf 12 beschrieben. Das zweite Ausführungsbeispiel ist eine Modifizierung des ersten Ausführungsbeispiels. Daher erfolgt eine Beschreibung hauptsächlich für unterschiedliche Punkte. Das vorliegende Ausführungsbeispiel unterscheidet sich vom ersten dadurch, daß nur der Übertragungsursprungsprozeß das Betriebssystem beim Senden von Daten an das Netzwerk beansprucht, während der Datenempfangsprozeß Daten ohne Beanspruchen des Betriebssystems empfängt. Dementsprechend besteht der Vorteil, daß die Anzahl von Beanspruchungen des Betriebssystems zum Senden und Empfangen von Daten geringer ist als beim Stand der Technik, wobei jedoch diese Anzahl größer ist als beim ersten Ausführungsbeispiel. 12 zeigt ein Cluster 100A gemäß dem zweiten Ausführungsbeispiel. In 12 stimmt die Struktur von Elementen, die die gleichen Bezugszeichen tragen, wie Elemente in 1, mit den Strukturen dieser gleich gekennzeichneten Elemente des ersten Ausführungsbeispiels überein.A second embodiment of the invention will be described with reference to FIG 12 described. The second embodiment is a modification of the first embodiment. Therefore, a description is made mainly for different points. The present embodiment differs from the first in that only the transmission origination process requires the operating system to send data to the network, while the data receiving process receives data without claiming the operating system. Accordingly, there is the advantage that the number of operating system load requests for sending and receiving data is less than in the prior art, but this number is larger than in the first embodiment. 12 shows a cluster 100A according to the second embodiment. In 12 agrees the structure of elements bearing the same reference numerals as elements in 1 , coincide with the structures of these identically labeled elements of the first embodiment.

Abweichend vom ersten Ausführungsbeispiel sind beim vorliegenden Ausführungsbeispiel die Anforderungstabelle 17, die Anforderungsbereiche 12 und 14 und das Anforderungstabellenursprungsregister 5 in jedem der Cluster 100A nicht vorhanden.Notwithstanding the first embodiment, the request table in the present embodiment 17 , the requirement areas 12 and 14 and the request table origin register 5 in each of the clusters 100A unavailable.

In 12 entsprechen Register 122, 123, 124, 125, 126 und 129 jeweils den Registern 22, 23, 24, 25, 26 und 29 von 1. Diese Register sind direkt an den Bus 3 angeschlossen, so daß Daten von der CPU 1 direkt in diese Register als Hauptspeicher 2 eingeschrieben werden können. 130 bezeichnet ein Register, das an den Bus 3 angeschlossen ist und das Daten direkt aus der CPU 1 wie auch dem Hauptspeicher 2 lesen kann. Das Register 122 dient zum Speichern der Adresse CL des Übertragungsempfangsclusters. Das Register 123 dient zum Speichern der Kommunikationsbereichsidentifizierung ID des reelen Kommunikationsbereichs 13, der dem Übertragungsempfangsprozeß zugeordnet ist. Das Register 124 dient zum Speichern des Offsets SO aus der reellen Kopfadresse des reellen Kommunikationsbereichs 13 des Datenempfangsbereichs im reellen Kommunikationsbereich 13 entsprechend dem virtuellen Kommunikationsbereich 11 des Übertragungsempfangsprozesses. Das Register 125 dient entsprechend zum Speichern des Offsets FO des Datenempfangsflags. Das Register 126 dient zum Speichern der Datenlänge LEN der zu übertragenden Daten. Das Register 129 dient zum Speichern der reellen Kopfadresse ADR der Daten, wie sie durch den Übertragungsursprungsprozeß gesendet werden. Die Sendeschaltung 28 bezieht sich auf das Register 130, dessen Zustand CC zeigt, ob die Schaltung 28 beschäftigt ist oder nicht. 127 bezeichnet einen Puffer zum Speichern von aus dem Hauptspeicher 2 zu sendender Daten. 107A bezeichnet eine Speicherzugriffsschaltung zum Lesen eines Wertes, wie er unter einer Position der Speicheradresse aus dem Hauptspeicher 2 auszulesen ist, oder zum Einschreiben dieses Wertes in das angezeigte Register oder den Hauptspeicher 2, oder zum Einschreiben des Wertes auf dem angezeigten Register oder dem Hauptspeicher 2 in eine besondere Adresse des Hauptspeichers 2, wenn die Speicheradresse angegeben wurde.In 12 correspond to registers 122 . 123 . 124 . 125 . 126 and 129 each of the registers 22 . 23 . 24 . 25 . 26 and 29 from 1 , These registers are directly to the bus 3 connected so that data from the CPU 1 directly into these registers as main memory 2 can be enrolled. 130 denotes a register attached to the bus 3 is connected and the data directly from the CPU 1 as well as the main memory 2 can read. The registry 122 serves to store the address CL of the transmission reception cluster. The registry 123 serves to store the communication area identification ID of the real communication area 13 which is assigned to the transmission reception process. The registry 124 serves to store the offset SO from the real head address of the real communication area 13 of the data reception area in the real communication area 13 according to the virtual communication area 11 the transmission reception process. The registry 125 is used to store the offset FO of the data reception flag. The registry 126 serves to store the data length LEN of the data to be transmitted. The registry 129 serves to store the real head address ADR of the data as sent by the origin of transmission process. The transmission circuit 28 refers to the register 130 whose state CC shows if the circuit 28 busy or not. 127 denotes a buffer for storing from the main memory 2 data to be sent. 107A denotes a memory access circuit for reading a value as below a position of the memory address from the main memory 2 or to write this value into the displayed register or main memory 2 , or for writing the value on the displayed register or the main memory 2 in a special address of the main memory 2 if the memory address has been specified.

Es wird nun derjenige Teil des Ablaufs des Parallelverarbeitungscomputers des vorliegenden Ausführungsbeispiels beschrieben, der sich vom ersten Ausführungsbeispiel unterscheidet, was unter Bezugnahme auf 13 erfolgt.Now, that part of the operation of the parallel processing computer of the present embodiment which differs from the first embodiment will be described with reference to FIG 13 he follows.

Es wird zunächst die Initialisierung des Parallelverarbeitungscomputers beschrieben. Heim vorliegenden Ausführungsbeispiel wird keine Verarbeitung für eine Anforderungstabelle 17 und ein Anforderungstabellenursprungsregister 5 vorgenommen wie gemäß 1, da diese Funktionsgruppen beim vorliegenden Ausführungsbeispiel nicht vorhanden sind. Die anderen Abläufe sind dieselben wie die beim ersten Ausführungsbeispiel.First, the initialization of the parallel processing computer will be described. Home before lying embodiment, no processing for a request table 17 and a request table origin register 5 made as per 1 because these functional groups are not present in the present embodiment. The other operations are the same as those in the first embodiment.

Nun wird die Prozeßinitialisierung beschrieben. Heim vorliegenden Ausführungsbeispiel wird keine Verarbeitung für einen virtuellen Verarbeitungsbereich 12 und einen virtuellen Anforderungsbereich 14 vorgenommen, da solche Bereiche beim vorliegenden Ausführungsbeispiel nicht vorhanden sind. Jedoch wird innerhalb des Betriebssystems eine (nicht dargestellte) Tabelle erstellt, die denselben Inhalt aufweist wie die Ortstabelle 12-2 im virtuellen Anforderungsbereich 12 gemäß 1. Die anderen Abläufe sind dieselben wie diejenigen beim ersten Ausführungsbeispiel.Now the process initialization will be described. The present embodiment will not process for a virtual processing area 12 and a virtual request area 14 made, since such areas are not present in the present embodiment. However, within the operating system, a table (not shown) is created that has the same contents as the location table 12-2 in the virtual request area 12 according to 1 , The other operations are the same as those in the first embodiment.

Nun wird die erfindungsgemäße Datenübertragung zwischen Prozessen erläutert. Beim vorliegenden Ausführungsbeispiel unterscheidet sich der Ablauf beim Übertragungsursprungsprozeß von demjenigen beim ersten Ausführungsbeispiel, wobei der Rest des Ablaufs derselbe ist wie beim ersten Ausführungsbeispiel. Daher werden nun unter Bezugnahme auf 13 nur die unterschiedlichen Funktionen erläutert.Now, the data transfer between processes according to the invention will be explained. In the present embodiment, the procedure in the transmission originating process is different from that in the first embodiment, and the rest of the procedure is the same as in the first embodiment. Therefore, with reference to 13 only the different functions explained.

Schritt 61: Systemaufruf sendenstep 61 : Send system call

Ein Nutzerprogramm gibt einen Systemaufruf an das Betriebssystem ab und übergibt die Steuerung an dasselbe. Dieser Aufruf hat dasselbe Format wie der Aufrufbefehl der Bibliotheksfunktion beim vorgenannten ersten Ausführungsbeispiel.One User Program issues a system call to the operating system and passes the control to the same. This call has the same format as the call command of the library function in the aforementioned first Embodiment.

Schritt 62: Umwandlung von Argumentenstep 62 : Conversion of arguments

Wenn ein Systemaufruf ausgegeben wurde, bestimmt das Betriebssystem die Adresse des Clusters auf dem Netzwerk, in dem der Übertragungsempfangsprozeß vorhanden ist, und es bestimmt die Kommunikationsbereichsidentifizierung des reellen Kommunikationsbereichs 13, der dem Übertragungsempfangsprozeß zugeordnet ist, was auf Grundlage des Namens des Übertragungsempfangsprozesses erfolgt. Dabei wird der vorab bei der Prozeßinitialisierung in der (nicht dargestellten) Tabelle innerhalb des Betriebssystems abgespeicherte Inhalt verwendet (entsprechend dem Inhalt der Ortstabelle 12-2 beim ersten Ausführungsbeispiel). Das Betriebssystem bestimmt die reelle Kopfadresse der zu übertragenden Daten im reellen Kommunikationsbereich 13 des Hauptspeichers 2 auf Grundlage der virtuellen Kopfadresse der zu sendenden Daten, wozu die Seitentabelle 15 verwendet wird. Dann erhält das Betriebssystem die Offsetwerte SO und FO der Kopfadresse des virtuellen Kommunikationsbereichs 11 innerhalb des Übertragungsempfangsprozesses, aus der virtuellen Adresse des Datenempfangsbereichs und der virtuellen Adresse des Datenempfangsflags, in derselben Weise wie beim ersten Ausführungsbeispiel.When a system call has been issued, the operating system determines the address of the cluster on the network in which the transmit receive process is present, and determines the communication range identifier of the real communication range 13 which is assigned to the transmission reception process, based on the name of the transmission reception process. In this case, the content stored in advance in the process initialization in the table (not shown) within the operating system is used (corresponding to the content of the location table 12-2 in the first embodiment). The operating system determines the real head address of the data to be transmitted in the real communication area 13 of the main memory 2 based on the virtual head address of the data to be sent, including the page table 15 is used. Then, the operating system obtains the offset values SO and FO of the head address of the virtual communication area 11 within the transmission reception process, from the virtual address of the data reception area and the virtual address of the data reception flag, in the same manner as in the first embodiment.

Schritt 63: Setzen von Parametern in Registernstep 63 : Setting Parameters in Registers

Das Betriebssystem liest den Zustand CC 130 über den Bus 3, um sich zu vergewissern, daß die Sendeschaltung 28 nicht beschäftigt ist, und sie setzt die Adresse CL des Übertragungsbestimmungsclusters, die Kommunikationsbereichsidenfizierung ID des dem Übertragungsempfangsprozeß zugeordneten reellen Kommunikationsbereichs 13, den Offset SO des Datenempfangsbereichs, den Offset FO des Datenempfangsflags, die Datenlänge LEN der zu sendenden Daten und die reelle Kopf adresse der zu sendenden Daten in Registern 122, 123, 124, 125, 126 bzw. 129. Das Betriebssystem übergibt dann die Ablaufsteuerung an das Nutzerprogramm.The operating system reads the CC state 130 over the bus 3 to make sure that the transmission circuit 28 is not busy, and sets the address CL of the transmission destination cluster, the communication area ID of the real communication area associated with the transmission reception process 13 , the offset SO of the data reception area, the offset FO of the data reception flag, the data length LEN of the data to be transmitted and the real head address of the data to be transmitted in registers 122 . 123 . 124 . 125 . 126 respectively. 129 , The operating system then passes the flow control to the user program.

Schritt 64: Ausführen des nächsten Befehlsstep 64 : Execute the next command

Nach Beendigen des Lesevorgangs gibt das Betriebssystem die Steuerung an das Nutzerprogramm zurück, um den nächsten Befehl auszuführen.To Completing the read operation gives the operating system control back to the user program, around the next Execute command.

Schritt 65: Datenübertragungstep 65 : Data transfer

Die Sendeschaltung 28 bildet durch Benutzen der Inhalte der Register 122, 123, 124, 125 und 126 sowie des Datenpuffers (2) ein Paket und sendet dieses an das Netzwerk 4.The transmission circuit 28 forms by using the contents of the registers 122 . 123 . 124 . 125 and 126 and the data buffer ( 2 ) a packet and sends it to the network 4 ,

Wenn das Paket vom Netzwerk 4 empfangen wird, findet derselbe Ablauf wie beim ersten Ausführungsbeispiel statt, weswegen dieser Ablauf hier nicht mehr beschrieben wird.If the package from the network 4 is received, the same procedure as in the first embodiment takes place, which is why this process is not described here.

Nun wird der Abschluß des Prozesses beschrieben. Beim vorliegenden Ausführungsbeispiel werden abweichend vom ersten Beispiel die Anforderungsbereiche 12 und 14 nicht verwendet. Daher ist es nicht erforderlich, die Anforderungsbereiche anschließend an die Beendigung des Prozesses zu löschen.Now the completion of the process will be described. In the present embodiment, deviating from the first example, the requirement areas 12 and 14 not used. Therefore, it is not necessary to delete the request areas following completion of the process.

Damit sind die Abläufe des zweiten Ausführungsbeispiels ausreichend beschrieben.In order to are the processes of the second embodiment sufficiently described.

Gemäß dem vorliegenden Ausführungsbeispiel beansprucht der Übertragungsursprungscluster das Betriebssystem, so daß der Overhead etwas größer wird als beim ersten Ausführungsbeispiel. Abweichend von der bekannten Technik müssen innerhalb des Betriebssystems jedoch kein Sendepuffer und kein Empfangspuffer geschaffen werden, wie beim ersten Ausführungs beispiel, so daß der Overhead für das Senden und Empfangen von Daten im Vergleich zum Stand der Technik verringert werden kann. Darüber hinaus weist das vorliegenden Ausführungsbeispiel eine einfachere Schaltungsstruktur auf als das erste.According to the present embodiment, the transmission origin cluster claims the operating system, so that the overhead becomes slightly larger than in the first embodiment. Unlike the known technique, however, no transmit buffer and no receive buffer must be created within the operating system, as in the case of First embodiment, so that the overhead for the transmission and reception of data compared to the prior art can be reduced. Moreover, the present embodiment has a simpler circuit structure than the first one.

Ausführungsbeispiel 3Embodiment 3

Ein drittes Ausführungsbeispiel der Erfindung wird nun unter Bezugnahme auf 14 beschrieben. Diese dritte Ausführungsbeispiel ist eine Modifizierung des zweiten Ausführungsbeispiels, weswegen vor allem unterschiedliche Punkte erläutert werden. Das vorliegende Ausführungsbeispiel stimmt insoweit mit dem zweiten überein, als der Übertragungsursprungsprozeß Daten unter Beanspruchung des Betriebssystems an das Netzwerk sendet, dagegen der Übertragungsempfangsprozeß die Daten ohne Beanspruchung des Betriebssystems empfängt. Jedoch unterscheidet sich das vorliegende Ausführungsbeispiel dahingehend vom zweiten, daß das Betriebssystem Parameter, wie sie für die Datenübertragung erforderlich sind, im Hauptspeicher 2 planiert. 14 zeigt ein Cluster 100B gemäß dem vorliegenden Ausführungsbeispiel. In 14 sind solche Elemente, die dasselbe Bezugszeichen tragen wie solche in den 1 bis 12 dieselben Elemente wie dort mit derselben Struktur. In 14 bezeichnet 218 einen Anforderungsbereich im Hauptspeicher 2, welcher Anforderungsbereich 218 durch das Betriebssystem gehandhabt wird. 230 bezeichnet ein Anforderungsbereichursprungsregister zum Speichern der Kopfadresse des Anforderungsbereichs 218. 222, 223, 224, 225, 226 und 227 bezeichnen Register, die den Registern 122, 123, 124, 125, 126 bzw. 127 im zweiten Ausführungsbeispiel entsprechen. Das Register 222 dient zum Speichern der Clusteradresse CL des Übertragungsempfangsclusters im Netzwerk. Das Register 223 dient zum Speichern der Kommunikationsbereichsidentifizierung ID des reellen Kommunika tionsbereichs 13, der dem Übertragungsempfangsprozeß zugeordnet ist. Das Register 224 dient zum Speichern des Offsets SO des Datenempfangsbereichs im reellen Kommunikationsbereich 13, der dem übertragungsempfangsprozeß zugeordnet ist. Das Register 225 dient entsprechend zum Speichern des Offsets FO des Datenempfangsflags. Das Register 226 dient zum Speichern der Datenlänge LEN der zu sendenden Daten. Das Register 229 dient zum Setzen eines Wertes, der den Zustand CC der Sendeschaltung 128 anzeigt. Das Register 227 ist ein Datenpuffer zum Speichern des Inhals der über das Netzwerk zu sendenden Daten. 207 bezeichnet eine Speicherzugriffsschaltung zum Zugreifen auf den Hauptspeicher 2, wenn eine Adresse angegeben wurde, um einen Wert in einem angezeigten Register abzuspeichern oder um einen Wert des Registers in den Hauptspeicher einzuschreiben.A third embodiment of the invention will now be described with reference to FIG 14 described. This third embodiment is a modification of the second embodiment, therefore mainly different points are explained. The present embodiment is the same as the second one in that the origin of transmission process sends data to the network under operating system load, whereas the transmission reception process receives the data without using the operating system. However, the present embodiment differs from the second in that the operating system has parameters, as required for data transfer, in main memory 2 leveled. 14 shows a cluster 100B according to the present embodiment. In 14 are such elements that bear the same reference number as those in the 1 to 12 the same elements as there with the same structure. In 14 designated 218 a request area in the main memory 2 , which requirement area 218 is handled by the operating system. 230 denotes a request area origin register for storing the head address of the request area 218 , 222 . 223 . 224 . 225 . 226 and 227 designate registers that correspond to the registers 122 . 123 . 124 . 125 . 126 respectively. 127 in the second embodiment correspond. The registry 222 serves to store the cluster address CL of the transmit receive cluster in the network. The registry 223 serves to store the communication area identification ID of the real communication area 13 which is assigned to the transmission reception process. The registry 224 serves to store the offset SO of the data reception area in the real communication area 13 , which is assigned to the transmission reception process. The registry 225 is used to store the offset FO of the data reception flag. The registry 226 serves to store the data length LEN of the data to be transmitted. The registry 229 is used to set a value representing the state CC of the transmission circuit 128 displays. The registry 227 is a data buffer for storing the content of the data to be sent over the network. 207 denotes a memory access circuit for accessing the main memory 2 if an address has been specified to store a value in a displayed register or to write a value of the register to main memory.

Der Betrieb des Parallelverarbeitungscomputers gemäß dem vorliegenden Ausführungsbeispiel wird nun beschrieben. Dabei wird nur auf Abläufe eingegangen, die sich von denen des zweiten Ausführungsbeispiels unterscheiden.Of the Operation of the parallel processing computer according to the present embodiment will now be described. It only deals with processes that differ from those of the second embodiment differ.

Zunächst wird die Initialisierung des Parallelverarbeitungscomputers erläutert. Wenn beim vorliegenden Ausführungsbeispiel das Betriebssystem gestartet wird, wird der Anforderungsbereich 218 im Hauptspeicher 2 sichergestellt, und die reelle Kopfadresse des Anforderungsbereichs 218 wird im Anforderungsbereichursprungsregister 230 gesetzt. Andere Abläufe stimmen mit denen des zweiten Ausführungsbeispiels überein.First, the initialization of the parallel processing computer will be explained. In the present embodiment, when the operating system is started, the request area becomes 218 in main memory 2 ensured, and the real header of the request area 218 is in the request area origin register 230 set. Other procedures agree with those of the second embodiment.

Es wird nun die Datenübertragung gemäß diesem Ausführungsbeispiel zwischen Prozessen erläutert. Heim vorliegenden Beispiel unterscheidet sich der Ablauf beim Übertragungsursprungsprozeß von demjenigen beim zweiten Ausführungsbeispiel. Daher wird nur der Unterschied unter Bezugnahme auf 15 beschrieben.Now, the data transfer according to this embodiment will be explained between processes. In the present example, the flow of the transmission originating process differs from that in the second embodiment. Therefore, only the difference with reference to 15 described.

Schritt 61: Systemaufruf sendenstep 61 : Send system call

Der Ablauf zum Ausgeben eines Systemaufrufs durch den Nutzerprozeß ist derselbe wie beim zweiten Ausführungsbeispiel.Of the The process of issuing a system call by the user process is the same as in the second embodiment.

Schritt 62: Umwandeln von Argumentenstep 62 : Convert arguments

Der Ablauf ist derselbe wie beim zweiten Ausführungsbeispiel.Of the Process is the same as in the second embodiment.

Schritt 66: Setzen von Werten im Anforderungsbereichstep 66 : Setting values in the request area

Das Betriebssystem liest den Zustand CC 229 über den Bus, um sicherzustellen, daß die Sendeschaltung 28 nicht beschäftigt ist, und sie setzt im Anforderungsbereich 218 im Speicher 2 die Adresse CL des Übertragungsempfangsclusters, die Kommunikationsbereichsidentifizierung ID des reellen Kommunikationsbereichs 13, der dem Übertragungsempfangsprozeß zugeordnet ist, den Offset SO des Datenempfangsbereichs, den Offset FO des Datenempfangsflags, die Datenlänge der zu sendenden Daten und die reelle Kopfadresse der zu sendenden Daten. Die Speicherzugriffsschaltung 207 wird auf Grundlage dieser gesetzten Werte gestartet. Es ist auch möglich, einen Zeichenträger (Semaphore) im Anforderungsbereich 218 vorzusehen und die Speicherzugriffschaltung 247 über den Zeichenträger zu starten. Das Betriebssystem gibt dann die Ablaufsteuerung an das Nutzerprogramm zurück, um den nächsten Befehl auszuführen (64 in 15).The operating system reads the CC state 229 over the bus to make sure the transmission circuit 28 is not busy and she puts in the requirement area 218 In the storage room 2 the address CL of the transmission receiving cluster, the communication area ID of the real communication area 13 assigned to the transmission reception process, the offset SO of the data reception area, the offset FO of the data reception flag, the data length of the data to be transmitted, and the real head address of the data to be transmitted. The memory access circuit 207 is started based on these set values. It is also possible to have a character holder (semaphore) in the request area 218 to provide and the memory access circuit 247 to start over the character carrier. The operating system then returns the flow control to the user program to execute the next command ( 64 in 15 ).

Schritt 67: Setzen von Parametern in Registernstep 67 : Setting Parameters in Registers

Das Betriebssystem gibt einen Befehl zum Lesen des Anforderungsbereichs 218 über den Bus 3 an die Anforderungsbereich zugriffsschaltung 21A. Diese erzeugt jeden Eintrag des Anforderungsbereichs 218 aus dem Anforderungsbereichsursprungsregister 230, liest den Inhalt jedes Eintrags über die Speicherzugriffsschaltung 207 und setzt die Adresse CL des Übertragungsbestimmungsclusters, der Kommunikationsbereichsidentifizierung ID des reellen Kommunikationsbereichs 13, der dem Übertragungsempfangsprozeß zugeordnet ist, den Offset SO des Datenempfangsbereichs, den Offset FO des Datenempfangsflags und die Datenlänge LEN der zu sendenden Daten in den Registern 222, 223, 224, 225 bzw. 226. Die Speicherzugriffsschaltung 207 kopiert die zu sendenden Daten aus dem Hauptspeicher 2 in den Datenpuffer 227 auf Grundlage der reellen Kopfadresse der zu sendenden Daten.The operating system issues a command to read the request area 218 over the bus 3 to the request area access circuit 21A , This generates every entry of the requirement area 218 from the request range origin register 230 , reads the contents of each entry through the memory access circuit 207 and sets the address CL of the transmission destination cluster, the communication area ID of the real communication area 13 assigned to the transmission reception process, the offset SO of the data reception area, the offset FO of the data reception flag and the data length LEN of the data to be transmitted in the registers 222 . 223 . 224 . 225 respectively. 226 , The memory access circuit 207 copies the data to be sent from main memory 2 in the data buffer 227 based on the real header address of the data to be sent.

Schritt 65: Datenübertragungstep 65 : Data transfer

Nachdem die oben angegebenen Register gesetzt wurden, strukturiert die Sendeschaltung 128 ein Paket mit Hilfe der Inhalte der Register 222, 223, 224, 225 und 226 und des Puffers 227, und sie überträgt das Paket an das Netzwerk.After the registers specified above are set, the transmit circuit structures 128 a package using the contents of the registers 222 . 223 . 224 . 225 and 226 and the buffer 227 and she transmits the packet to the network.

Wenn das Paket vom Netzwerk 4 empfangen wird, ist der Ablauf derselbe wie beim zweiten Ausführungsbeispiel, weswegen die Beschreibung dieses Ablaufs hier weggelassen wird.If the package from the network 4 is received, the flow is the same as in the second embodiment, and therefore the description of this flow is omitted here.

Damit sind die Abläufe des dritten Ausführungsbeispiels ausreichend beschrieben.In order to are the processes of the third embodiment sufficiently described.

Gemäß diesem Ausführungsbeispiel ist es möglich, eine Wirkung entsprechend derjenigen des ersten Ausführungsbeispiels zu erhalten, jedoch mit einfacherer Struktur als beim ersten Ausführungsbeispiel, wobei Abläufe ähnlich wie beim zweiten Ausführungsbeispiel vorliegen.According to this embodiment Is it possible, an effect corresponding to that of the first embodiment to obtain, however, with a simpler structure than in the first embodiment, where processes are similar in the second embodiment available.

Ausführungsbeispiel 4Embodiment 4

Nachfolgend wird ein viertes Ausführungsbeispiel der Erfindung erläutert. Dieses ist eine Modifizierung des dritten Ausführungsbeipsiel. Der Aufbau des Clusters des vierten Ausführungsbeispiels stimmt mit demjenigen des dritten Ausführungsbeispiels überein, weswegen die Erklärung unter Bezugnahme auf 14 erfolgt. Jedoch wird der Anforderungsbereich 214 in anderer Weise genutzt als das Anforderungsbereichursprungsregister 230. Dementsprechend wird dieser Unterschied hauptsächlich erläutert.Hereinafter, a fourth embodiment of the invention will be explained. This is a modification of the third embodiment. The structure of the cluster of the fourth embodiment is the same as that of the third embodiment, and therefore the explanation is explained with reference to FIG 14 he follows. However, the requirement area becomes 214 used in a different way than the request area origin register 230 , Accordingly, this difference will be mainly explained.

Zunächst wird die Systeminitialisierung beschrieben. Beim vorliegenden Auführungsbeispiel ist der Anforderungsbereich 218 nicht im Hauptspeicher 2 festgelegt, also anders als beim dritten Ausführungsbeispiel. Daher wird der Anforderungsbereich 218 nicht sichergestellt, wenn das System initialisiert wird, sondern er wird zum Zeitpunkt der Datenübertragung sichergestellt. Zum Zeitpunkt der Systeminitialisierung wird kein Wert im Anforderungsbereichursprungsregister 230 gesetzt.First, the system initialization will be described. In the present embodiment, the request area is 218 not in main memory 2 set, so unlike the third embodiment. Therefore, the request area becomes 218 not ensured when the system is initialized, but it is ensured at the time of data transfer. At the time of system initialization, no value will be in the request scope origin register 230 set.

Unter Bezugnahme auf 16 wird der vom Betriebssystem ausgeführte Ablauf beim Übertragungsursprungsprozeß erläutert.With reference to 16 the process executed by the operating system in the transmission originating process is explained.

Schritt 61: Systemaufruf sendenstep 61 : Send system call

Dieser Ablauf ist derselbe wie beim dritten Ausführungsbeispiel.This Process is the same as in the third embodiment.

Schritt 62: Umwandeln von Argumentenstep 62 : Convert arguments

Dieser Ablauf ist derselbe wie beim dritten Ausführungsbeispiel.This Process is the same as in the third embodiment.

Schritt 68: Setzen von Werten im Anforderungsbereichstep 68 : Setting values in the request area

Das Betriebssystem sichert den Anforderungsbereich 218 im Speicher 2 und setzt im Anforderungsbereich 218 die Adresse CL des Übertragungsbestimmungsclusters, die Kommunikationsbereichsidentifizierung ID des reellen Kommunikationsbereichs 13, der dem Übertragungsempfangsprozeß zugeordnet ist, den Offset SO des Datenempfangsbereichs, den Offset FO des Datenempfangsflags, die Datenlänge LEN der zu sendenden Daten und die reelle Kopfadresse der zu sendenden Daten.The operating system secures the request area 218 In the storage room 2 and sets in the requirement area 218 the address CL of the transmission destination cluster, the communication area ID of the real communication area 13 assigned to the transmission reception process, the offset SO of the data reception area, the offset FO of the data reception flag, the data length LEN of the data to be transmitted and the real head address of the data to be transmitted.

Schritt 69: Setzen von Werten im Anforderungsbereichursprungsregisterstep 69 : Setting Values in the Request Area Origin Register

Das Betriebssystem liest den Zustand CC 229, um sicherzustellen, daß die Sendeschaltung 128 nicht beschäftigt ist, und sie setzt die Kopfadresse des Anforderungsbereichs 218 auf den Wert des Anforderungsbereichursprungsregisters 230, damit die Speicherzugriffsschaltung 207 und die Sendeschaltung 128 initialisiert werden. Das Betriebssystem gibt dann die Ablaufsteuerung an das Nutzerprogramm weiter, damit der nächste Befehl (64 in 16) ausgeführt wird.The operating system reads the CC state 229 to make sure the transmission circuit 128 is not busy, and it sets the header address of the request area 218 to the value of the request area origin register 230 , so that the memory access circuit 207 and the transmission circuit 128 be initialized. The operating system then passes the flow control to the user program so that the next command ( 64 in 16 ) is performed.

Schritt 67: Setzen von Parametern in Registernstep 67 : Setting Parameters in Registers

Der Ablauf ist derselbe wie beim dritten Ausführungsbeispiel.Of the Process is the same as in the third embodiment.

Schritt 65: Datenübertragungstep 65 : Data transfer

Der Ablauf ist derselbe wie beim dritten Ausführungsbeispiel.Of the Process is the same as in the third embodiment.

Wenn ein Paket vom Netzwerk 4 empfangen wird, ist der Ablauf derselbe wie beim dritten Ausführungsbeispiel, weswegen dies hier nicht erläutert wird.If a package from the network 4 is received, the flow is the same as in the third embodiment, so this is not explained here.

Damit ist der Ablauf beim vierten Ausführungsbeispiel im wesentlichen beschrieben.In order to is the process in the fourth embodiment essentially described.

Beim vorliegenden Ausführungsbeispiel kann der Anforderungsbereich 218 immer dann sichergestellt werden, wenn Datenübertragung ausgeführt wird. Wenn die Steuerung so erfolgt, daß jede CPU 1 im Cluster den Anforderungsbereich 218 unter einer anderen Adresse im Hauptspeicher 2 sichert, wird es möglich, die Schritte 61, 62 und 68 in jeder CPU 1 gleichzeitig parallel auszuführen. Mit dieser Anordnung ist es parallel mit dem Ablauf der Sendeschaltung 128, nach Start durch den von einer bestimmten CPU 1 ausgeführten Schritt 69 möglich, daß eine andere CPU 1 die Schritte 61, 62 und 68 ausführt und eine andere CPU 1 den Schritt 69 direkt nach dem Beendigen der Arbeit der Sendeschaltung 128 ausführt. Infolgedessen kann mit diesem Ausführungsbeispiel die Anzahl von Overheadvorgängen in dem beim Senden von Daten tätigen Betriebssystem weiter gegenüber der beim dritten Ausführungsbeispiel erforderlichen Anzahl verringert werden.In the present embodiment, the request area 218 be ensured whenever data transmission is carried out. If the control is done so that every CPU 1 in the cluster, the requirement area 218 under a different address in main memory 2 ensures it becomes possible to take the steps 61 . 62 and 68 in every CPU 1 simultaneously execute in parallel. With this arrangement, it is in parallel with the operation of the transmission circuit 128 , after starting by the one of a specific CPU 1 executed step 69 possible for another CPU 1 the steps 61 . 62 and 68 executes and another CPU 1 the step 69 right after the completion of the work of the transmission circuit 128 performs. As a result, with this embodiment, the number of overhead operations in the operating system when transmitting data can be further reduced from the number required in the third embodiment.

Ausführungsbeispiel 5Embodiment 5

17 zeigt den Aufbau eines Parallelverarbeitungscomputers gemäß einem fünften Ausführungsbeispiel der Erfindung. In 17 bezeichnen 501, 502, 503 und 504 Prozessoren, die alle denselben Aufbau aufweisen. 505 bezeichnet einen Hauptspeicher, in den sich die Prozessen 501 und 502 teilen, während 506 einen Hauptspeicher bezeichnet, in den sich die Prozessoren 503 und 504 teilen. Die Prozessoren 501 und 502 und der Hauptspeicher 505 bilden einen ersten Cluster, während die Prozessoren 503 und 504 und der Hauptspeicher 506 einen zweiten Cluster bilden. 507 bezeichnet eine Sendeschaltung, die mit dem ersten Cluster verbunden ist. 508 bezeichnet eine Empfangsschaltung, die mit dem zweiten Cluster verbunden ist. Der erste Cluster weist eine Empfangsschal tung ähnlich der Empfangsschaltung 508 des zweiten Clusters auf, jedoch ist die Empfangsschaltung des ersten Clusters in 17 nicht dargestellt, um die Zeichnung zu vereinfachen. Entsprechend weist der zweite Cluster eine Sendeschaltung entsprechend der Sendeschaltung im ersten Cluster auf, wobei jedoch auch diese Sendeschaltung weggelassen ist, um die Zeichnung zu vereinfachen. 509 bezeichnet ein Netzwerk zum Verbinden des ersten Clusters und des zweiten Clusters; es überträgt eine Nachricht von der Sendeschaltung 507 des Clusters zu einem angegebenen Zielort. 17 shows the construction of a parallel processing computer according to a fifth embodiment of the invention. In 17 describe 501 . 502 . 503 and 504 Processors that all have the same structure. 505 denotes a main memory in which the processes 501 and 502 share while 506 denotes a main memory into which the processors 503 and 504 share. The processors 501 and 502 and the main memory 505 form a first cluster while the processors 503 and 504 and the main memory 506 form a second cluster. 507 denotes a transmission circuit connected to the first cluster. 508 denotes a receiving circuit connected to the second cluster. The first cluster has a receiving circuit similar to the receiving circuit 508 of the second cluster, but the receive circuit of the first cluster is in 17 not shown to simplify the drawing. Accordingly, the second cluster has a transmission circuit corresponding to the transmission circuit in the first cluster, but also this transmission circuit is omitted in order to simplify the drawing. 509 denotes a network for connecting the first cluster and the second cluster; it transmits a message from the transmission circuit 507 of the cluster to a specified destination.

Beim vorliegenden Ausführungsbeispiel werden zwei Prozessoren verwendet, um ein Cluster zu bilden, wobei zwei Cluster verwendet werden, um die Zeichnung zu vereinfachen. Jedoch kann die erfindungsgemäße Technik auch drei oder noch mehr Prozessoren zum Bilden eines Clusters benutzen, und sie kann auch drei oder mehr Cluster verwenden.At the present embodiment Two processors are used to form a cluster, wherein two clusters can be used to simplify the drawing. However, the technique of the invention also use three or more processors to make a cluster, and it can also use three or more clusters.

Es wird nun der Aufbau der Prozessoren 501 bis 504 erläutert. Mit Ausnahme eines weiter unten beschriebenen neuen Befehls können die Prozessoren 501 bis 504 denselben Aufbau aufweisen wie ein bekannter Mikroprozessor, z. B. der Mikroprozessor H32 von Hitachi Ltd. In 17 ist der interne Aufbau nur für den Prozessor 501 dargestellt, um die Zeichnung zu vereinfachen. In 17 bezeichnet 510 eine Ausführungssteuerschaltung zum Steuern der Befehlsausführungsfolge des Prozessors 501. 511 bezeichnet ein PSW (Programmstatuswort). 511-1 bezeichnet ein Privilegstatusanzeigefeld innerhalb des PSW 511, mit der Breite eines Bits. Wenn das Anzeigefeld 511-1 den Wert 1 hat, befindet sich der Prozessor 501 in privilegiertem Status, wohingegen er sich in nichtprivilegiertem Status befindet, wenn das Anzeigefeld 511-1 den Wert 0 aufweist. 511-2 bezeichnet einen Wert PC (Program Counter) zum Speichern der Adresse des gerade ausgeführten Befehls. 512 bezeichnet ein Befehlsregister zum Speichern des ausgeführten Befehls. 512 bezeichnet einen Befehlsdekoder. 514 bezeichnet ein Pfadtabellenbasisregister zum Speichern der Speicheradresse einer weiter unten beschriebenen Pfadtabelle. 515 bezeichnet ein Pfadtabellenlängenregister. 516 bezeichnet einen Addierer und 515 einen Vergleicher. 518 bezeichnet eine Adreßübersetzungsschaltung zum Übersetzen einer virtuellen Adresse, wie sie durch einen Befehl angezeigt wird, in eine reelle Adresse. Die Adreßübersetzungsschaltung 518 kann ohne weiteres gemäß dem Stand der Technik strukturiert sein. 519 bezeichnet ein Bedingungskoderegister zum Speichern eines Wertes, wie er durch eine Befehlsbeschreibung auf Grundlage des Ergebnisses der Ausführung eines Befehls festgelegt wird. 520 und 521 sind Schaltungen zum Lesen von Werten aus dem Hauptspeicher 505. 522 bezeichnet eine Privilegbefehlausführungsentscheidungsschaltung und 523 bezeichnet eine Zugriffungültigentscheidungsschaltung. 524 und 525 bezeichnen UND-Schaltungen.It will now be the structure of the processors 501 to 504 explained. With the exception of a new command described below, the processors 501 to 504 have the same structure as a known microprocessor, z. For example, the H32 microprocessor from Hitachi Ltd. In 17 is the internal structure only for the processor 501 shown to simplify the drawing. In 17 designated 510 an execution control circuit for controlling the instruction execution sequence of the processor 501 , 511 denotes a PSW (program status word). 511-1 denotes a privilege status panel within the PSW 511 , with the width of a bit. When the display panel 511-1 has the value 1, is the processor 501 in privileged status, whereas it is in nonprivileged status when the display panel 511-1 has the value 0. 511-2 denotes a value PC (Program Counter) for storing the address of the instruction being executed. 512 denotes a command register for storing the executed command. 512 denotes a command decoder. 514 denotes a path table base register for storing the memory address of a path table described later. 515 denotes a path table length register. 516 denotes an adder and 515 a comparator. 518 denotes an address translation circuit for translating a virtual address as indicated by a command into a real address. The address translation circuit 518 can be readily structured according to the prior art. 519 denotes a condition code register for storing a value as determined by a command description based on the result of executing a command. 520 and 521 are circuits for reading values from main memory 505 , 522 denotes a privilege instruction execution decision circuit and 523 denotes an access authorization decision circuit. 524 and 525 denote AND circuits.

Der Hauptspeicher 505 weist folgendes auf. 528 bezeichnet eine Zugriffsfreigabeschaltung für einen Bereich eines Betriebssystems. 529 bezeichnet einen Betriebssystembereich. Um den Zugriff zum Betriebssystembereich 529 zu ermöglichen, ist es erforderlich, ein Signal in die Betriebssystembereichzugrifffreigabeschaltung 528 einzugeben. Es ist möglich, auf andere Bereiche zuzugreifen, ohne ein Signal in die letztgenannte Schaltung einzugeben. 530 bezeichnet eine weiter unten angegebene Pfadtabelle. Der Eintrag in der Pfadtabelle 30 weist das in 18 dargestellte Format auf. 531 bezeichnet einen Zusammenhang für einen im Prozessor 501 gerade ausgeführten Prozeß. 502 bezeichnet einen virtuellen Raum, der dem Prozeß zugeordnet ist, wie er gerade vom Prozessor 501 ausgeführt wird. 17 zeigt zum Vereinfachen der Zeichnung nur einen einzigen virtuellen Raum, der dem vom Prozessor 501 ausgeführten Prozeß zugeordnet ist. Jedoch können bei der erfindungsgemäßen Vorrichtung auch andere virtuelle Räume verwendet werden. Ein virtueller Raum kann ohne weiteres gemäß dem Stand der Technik strukturiert sein. 533 bezeichnet Daten, die in den virtuellen Raum zu übertragen sind.The main memory 505 has the following. 528 denotes an access enable circuit for a portion of an operating system. 529 denotes an operating system area. To access the operating system area 529 It is necessary to send a signal into the operating system area access enable circuit 528 enter. It is possible to access other areas without inputting a signal to the latter circuit. 530 denotes a path table given below. The entry in the path table 30 has the in 18 displayed format. 531 denotes egg Necessary for one in the processor 501 currently running process. 502 refers to a virtual space associated with the process as it currently is from the processor 501 is performed. 17 shows only a single virtual space, that of the processor, to simplify the drawing 501 executed process is assigned. However, in the device according to the invention, other virtual spaces can also be used. A virtual space may be readily structured according to the prior art. 533 refers to data to be transferred into the virtual space.

Die Sendeschaltung 507 weist eine Funktion zum Senden von Daten an das Netzwerk 509 auf Grundlage eines Befehls vom Prozessor 501 oder vom Prozessor 502 auf. 534 bezeichnet ein Senderegister zum Speichern einer an das Netzwerk zu übertragenden Nachricht, 526 bezeichnet eine Sendesteuerschaltung zum Übertragen des Inhalts des Senderegisters 534 an das Netzwerk 509 über eine Leitung L6, solange ein Übertragungsunterbrechungssignal nicht über eine Leitung L7 vom Netzwerk 509 aus eingegeben wurde.The transmission circuit 507 has a function to send data to the network 509 based on a command from the processor 501 or from the processor 502 on. 534 denotes a transmission register for storing a message to be transmitted to the network, 526 denotes a transmission control circuit for transmitting the content of the transmission register 534 to the network 509 via a line L6, as long as a transmission interruption signal is not via a line L7 from the network 509 was entered from.

Die Empfangsschaltung 509 weist folgende Elemente auf. 523 bezeichnet ein Empfangsregister zum Speichern einer über das Netzwerk 509 über eine Leitung L18 und eine Empfangssteuerschaltung 527 ankommende Nachricht. 536 bezeichnet eine Adreßübersetzungsschaltung zum Entscheiden, ob eine reelle Adresse aus einem PTO-Wert (Page Table Origin) und einem VA-Wert (Virtual Address) erhalten werden kann, wie sie in einem Empfangsregister 535 enthalten sind, und zum Ausgeben der über eine Leitung L10 erhaltenen reellen Adresse, wenn diese reelle Adresse erhalten wurde. Die Adreßübersetzungsschaltung 536 gibt ein Signal an eine Leitung L11, wenn keine reelle Adresse erhalten werden kann. 537 bezeichnet eine Adreßerzeugungsschaltung. 538 und 539 bezeichnen Schreibschaltungen zum Einschreiben von Daten in den Hauptspeicher 506.The receiving circuit 509 has the following elements. 523 denotes a receive register for storing one over the network 509 via a line L18 and a reception control circuit 527 incoming message. 536 denotes an address translation circuit for deciding whether a real address can be obtained from a page table origin (PTO) value and a virtual address (VA) value, as in a reception register 535 and outputting the real address obtained via a line L10 when this real address has been obtained. The address translation circuit 536 gives a signal to a line L11 if no real address can be obtained. 537 denotes an address generating circuit. 538 and 539 denote write circuits for writing data into the main memory 506 ,

Der Hauptspeicher 506 verfügt über folgendes. 548 bezeichnet eine Betriebssystemzugrifffreigabeschaltung. 549 bezeichnet einen Betriebssystembereich. Um auf den Betriebssystembereich 549 zugreifen zu können, ist es im Fall eines Zugriffs auf den Hauptspeicher 505 erforderlich, ein Signal in die Betriebssystembereichzugrifffreigabeschaltung 548 einzugeben. 550 bezeichnet eine Seitentabelle. 551 bezeichnet einen virtuellen Raum, in den Daten bei der Datenübertragung einzuschreiben sind, wie sie durch das vorliegende Ausführungsbeispiel erklärt wird. 525 bezeichnet einen Datenspeicherbereich im virtuellen Raum 551. 553 bezeichnet einen Empfangsabfangpuffer, und 554 bezeichnet einen Datenspeicherbereich in demselben.The main memory 506 has the following. 548 denotes an operating system access enable circuit. 549 denotes an operating system area. To access the operating system area 549 it is in case of accessing the main memory 505 required, a signal in the operating system area access enable circuit 548 enter. 550 denotes a page table. 551 denotes a virtual space in which data is to be written in the data transmission as explained by the present embodiment. 525 denotes a data storage area in virtual space 551 , 553 denotes a receive intercept buffer, and 554 denotes a data storage area in the same.

Es wird nun der Betrieb des Parallelverarbeitungscomputers gemäß diesem Ausführungsbeispiel beschrieben. Im erfindungsgemäßen Parallelverarbeitungscomputer sind der erste und der zweite Cluster eng gekoppelte Multiprozessoren, die ein Anfangsprogramm laden, nachdem die Spannungsversorgung eingeschaltet wurde. Dies erfolgt auf dieselbe Weise wie bei eng gekoppelten Mikroprozessoren gemäß dem Stand der Technik, so daß also das Betriebssystem in jedem Cluster unabhängig vom anderen initialisiert wird. In diesem Fall werden die Systembetriebsbereiche 529 und 549 in den Hauptspeichern 505 und 506 sichergestellt. In der Zeichnung sind der Einfachheit halber Einheiten weggelassen, wie sie für den Initialisiervorgang erforderlich sind, wie z. B. Magnetplatteneinheiten.The operation of the parallel processing computer according to this embodiment will now be described. In the parallel processing computer according to the invention, the first and second clusters are closely coupled multiprocessors which load an initial program after the power supply is turned on. This is done in the same way as in closely coupled prior art microprocessors, so that the operating system in each cluster is initialized independently of the other. In this case, the system operation areas become 529 and 549 in the main memories 505 and 506 ensured. In the drawing, units are omitted for the sake of simplicity, as they are required for the initialization, such. B. magnetic disk units.

Wenn ein Befehl zum Initialisieren eines Nutzerprogramms in einen gewissen Cluster nach dem Initialisieren des Betriebssystems eingegeben wurde, erzeugt das Betriebssystem dieses Clusters einen virtuellen Raum und erzeugt dann in diesem einen Prozeß, wie er zum Ausführen des Nutzerprogramms erforderlich ist. Nutzerprozesse, die in der oben beschriebenen Weise erzeugt wurden, erzeugen dann Prozesse, wie sie erforderlich sind, um die Nutzerprogramme im eigenen Cluster und in anderen Clustern auszuführen. Eine Gruppe von Nutzerprogrammen, die direkt oder indirekt durch einen Initiali sierbefehl erzeugt wird, wird Job genannt. Jedem Job wird durch das Betriebssystem eine Jobidentifiziermarkierung zugeordnet. Jedem Nutzerprozeß wird durch den Nutzer ein Name zugeordnet, so daß jeder Nutzerprozeß unter den Jobs einzigartig ist. Wenn ein Prozeß mit doppeltem Namen innerhalb der Jobs aufgrund eines Nutzerprogrammfehlers oder dergleichen erzeugt werden soll, stellt das Betriebssystem diese Verdoppelung fest und beendet den entsprechenden Job in nichtnormaler Weise. Mehrere Prozesse können in einem Cluster erzeugt werden, wenn Nutzerprozesse erzeugt werden. Das Verfahren zum Erzeugen von Nutzerprozessen kann ähnlich sein wie bei einem bekannten Verfahren, z. B. dem Verfahren, wie es in einem System mit verteilten Prozessaren verwendet wird, die durch ein LAN-System verbunden sind. Prozesse, die mit dem oben angegebenen Verfahren erzeugt wurden, führen Berechnungen aus, wie sie durch das Programm angezeigt werden, was durch wechselseitiges Übertragen von Daten erfolgt.If a command to initialize a user program into a certain Cluster was entered after initializing the operating system, The operating system of this cluster creates a virtual space and then generates in this one process, as it is to execute the User Program is required. User processes in the above have been generated, then generate processes such as They are required to run the user programs in their own cluster and in other clusters. A group of user programs directly or indirectly through An initialization command is generated, called a job. Every job becomes assigned by the operating system a Jobidentifiziermarkierung. Every user process is going through the user assigned a name, so that each user process under the jobs is unique. If a double-name process within Jobs generated due to a user program error or the like the operating system determines this duplication and terminates the corresponding job in a non-normal way. Several processes can in a cluster when user processes are generated. The method of creating user processes may be similar as in a known method, for. As the method, as in a system with distributed Prozessaren is used by a LAN system are connected. Processes with the above Procedures were generated lead Calculations of how they are displayed by the program, what by mutual transfer of Data takes place.

Wie vorstehend angegeben, können die Prozessoren 501 bis 504 einen Aufbau aufweisen, der über eine auf die Erfindung bezogene Befehlsausführungsschaltung verfügt, die einem Mikroprozessor hinzugefügt wird, der aufgebaut sein kann wie ein bekannter Prozessor. Dementsprechend werden von einer Reihe von Befehlen eines Prozesses, die von jedem Prozessor auszuführen sind, solche Befehle, die innerhalb des jeweiligen Prozessors ausgeführt werden können, wie z. B. arithmetische Befehle, auf dieselbe Weise abgearbeitet, wie dies durch einen bekannten Mikroprozessor erfolgt.As indicated above, the processors can 501 to 504 have a construction having an instruction execution circuit related to the invention added to a microprocessor which may be constructed as a known processor. Accordingly, of a series of instructions of a process to be executed by each processor, such instructions are executed within the respective processor can be such. As arithmetic instructions, processed in the same manner as is done by a known microprocessor.

Jeder Prozessor mit dem Aufbau, wie in einem Parallelverarbeitungscomputer gemäß der Erfindung, weist eine Adreßübersetzungsschaltung auf, die ähnlich ist wie bei einem bekannten Mikroprozessor und die die Verwaltung des virtuellen Raums unterstützt. Jeder Prozeß entspricht eindeutig einem virtuellen Raum und führt ein Programm im virtuellen Raum aus. Dementsprechend entspricht in jedem Cluster das Zuordnen eines virtuellen Raums dem Zuordnen eines Prozesses.Everyone Processor with the structure as in a parallel processing computer according to the invention, has an address translation circuit on, the similar is like a known microprocessor and the administration of the virtual space. Each process corresponds clearly a virtual space and executes a program in virtual space. Accordingly, in each cluster, the mapping corresponds to a virtual one Space to associate a process.

Ein Ablauf zur Prozeßerzeugung wird nun unter Bezugnahme auf 17 beschrieben. Beim erfindungsgemäßen Parallelverarbeitungscomputer erzeugt das Betriebssystem, beim Erzeugen eines Nutzerprozesses, eine Pfadtabelle entsprechend dem zu erzeugenden Prozeß im reellen Speicher im Betriebssystembereich 529. (Da das Betriebssystem im privilegierten Status betrieben wird, wird der Befehl 1 in das Privilegstatusanzeigefeld 511-1 als Signal an die Betriebssystembereichzugrifffreigabeschaltung 528 gegeben, so daß das Betriebssystem die Pfadtabelle im Betriebssystembereich 529 erzeugen kann. Wenn das Betriebssystem sich im nichtprivilegierten Status befindet, ist es nicht möglich, die innerhalb des Betriebssystembereichs 529 vorhandene Pfadtabelle zu überschreiben). Gemäß 17 wird eine dem im virtuellen Raum 529 auszuführenden Nutzerprozeß zugeordnete Pfadtabelle 530 im ersten Cluster erzeugt. In diesem Fall wird ein Feld V des gesamten Eintrags der Pfadtabelle 530 auf den Wert 1 initialisiert. Die Pfadtabelle wird durch einen Wert BASE verwaltet, der die Kopfadresse wiedergibt, und durch einen Wert LEN, die Länge der Pfadtabelle wiedergibt. Beide Werte BASE und LEN werden als Teil des Zusammenhangs gehandhabt, in den der Prozeß gestellt ist. 19 zeigt den Inhalt des Zusammenhangbereichs des Prozesses. Gemäß 19 wird der Inhalt von PSW in einem Feld 103 gespeichert, der Inhalt des Registers in einem Feld 104 gespeichert und andere Steuerinformation in einem Feld 105 gespeichert. Diese Inhalte stimmen mit denjenigen von Zusammenhangswerten überein, wie sie von einem bekannten Betriebssystem verwaltet werden. Im Zusammenhangsbereich bezeichnen 106 und 107 Felder zum Speichern der oben genannten Werte BASE und LEN, die gemäß der Erfindung neu sind.A process generation process will now be described with reference to FIG 17 described. In the parallel processing computer according to the invention, when generating a user process, the operating system generates a path table corresponding to the process to be created in real memory in the operating system area 529 , (As the operating system operates in privileged state, the command becomes 1 into the privilege status panel 511-1 as a signal to the operating system area access enable circuit 528 given so that the operating system the path table in the operating system area 529 can generate. If the operating system is in nonprivileged status, it is not possible within the operating system area 529 overwrite existing path table). According to 17 becomes one in virtual space 529 to be executed user process associated path table 530 generated in the first cluster. In this case, a field V of the entire entry of the path table becomes 530 initialized to the value 1. The path table is managed by a value BASE that represents the head address, and a value LEN that represents the length of the path table. Both BASE and LEN values are handled as part of the context in which the process is placed. 19 shows the content of the context of the process. According to 19 becomes the content of PSW in a field 103 stored, the contents of the register in a field 104 stored and other control information in a field 105 saved. These contents are consistent with those of related values as managed by a known operating system. In the context area designate 106 and 107 Fields for storing the above values BASE and LEN, which are new according to the invention.

Wenn der zeitliche Ablauf eines dem virtuellen Raum 532 entsprechenden Prozesses im Prozessor 501 festgelegt wird, speichert das Betriebssystem des ersten Clusters den Inhalt des Zusammenhangbereichs 531 in das Register im Prozessor 501 ein. Beim erfindungsgemäßen Parallelprozessor sind das Pfadtabellenbasisregister 514 und das Pfadtabellenlängenregister 515 im Prozessor 501 als exklusive Register zum Speichern der neu eingeführten Werte BASE bzw. LEN als Teile des Zusammenhangs vorhanden. Darüber hinaus verfügt der Parallelprozessor über einen BASE-Setzbefehl und LEN-Setzbefehl als Befehle zum Speichern eines jeweiligen Wertes in diesen Registern. Beide Befehle sind privilegierte Befehle, und wenn diese Befehle im nichtprivilegierten Status auszuführen sind, tritt ein Interrupt im Prozessor 501 auf. Wenn ein gerade durch den Prozessor 501 ausgeführter Befehl aus einem Grund umgeschaltet wird und der Prozessor 501 freigegeben wird, wird der Wert des Registers des Prozessors 501 im Zusammenhangsbereich 531 gespeichert, gegensätzlich zum vorstehend Ausgeführten.When the timing of a virtual space 532 corresponding process in the processor 501 is set, the operating system of the first cluster stores the contents of the context area 531 into the register in the processor 501 one. In the parallel processor according to the invention are the path table base register 514 and the path table length register 515 in the processor 501 as exclusive registers for storing the newly introduced values BASE and LEN as parts of the context. In addition, the parallel processor has a BASE set command and LEN set command as instructions for storing a respective value in these registers. Both commands are privileged commands, and if these commands are to be executed in nonprivileged status, an interrupt occurs in the processor 501 on. If a straight through the processor 501 executed command is switched for a reason and the processor 501 is released, the value of the register of the processor 501 in the context area 531 stored, contrary to the above.

Das Schema der Befehlsausführung im Prozessor 501 wird nun erläutert. Zunächst wird aus dem Hauptspeicher 505 ein Befehl auf Grundlage des Feldes 511-2 des PSW 511 in der Ausführungssteuerschaltung 510 ausgelesen, und dieser Befehl wird im Befehlsregister 512 gespeichert. Der im Feld OP des Befehlsregisters 512 gespeicherte Betriebskode wird in die Privilegbefehlausführungsentscheidungsschaltung 522 eingegeben. In diese wird auch der Wert des Privilegstatusanzeigefeldes 511-1 eingegeben. Sie gibt an die Ausführungssteuerschaltung 510 nur dann ein Signal aus, wenn der eingegebene Betriebskode einen privilegierten Befehl anzeigt und wenn das Privilegstatusanzeigefeld 511-1 den nichtprivilegierten Status anzeigt. Durch diese Anordnung tritt ein Interrupt im Prozessor 501 auf. In anderen Fällen wird ein Befehl ausgeführt, wenn ein Befehlsdekoder 513 den Betriebskode deko diert und ein Signal erzeugt, wie es zum Abarbeiten des dekodierten Befehls erforderlich ist. 20 zeigt das Format des BASE-Setzbefehls. Gemäß 20 wird in einem Teil 108 der Betriebskode dieses Befehls gespeichert, und ein erster Operand 109 speichert den im Pfadtabellenbasisregister 514 zu setzenden Wert. In Teilen 110 und 111 gespeicherte Werte werden nicht verwendet. Im Prozessor 501 wird der vorliegende Befehl mit folgendem Ablauf ausgeführt.The scheme of instruction execution in the processor 501 will now be explained. First, from the main memory 505 a command based on the field 511-2 of the PSW 511 in the execution control circuit 510 read out, and this command is in the command register 512 saved. The field OP of the command register 512 stored operation code is put into the privilege instruction execution decision circuit 522 entered. This also includes the value of the privilege status panel 511-1 entered. It gives to the execution control circuit 510 a signal only if the entered operation code indicates a privileged instruction and if the privilege status indicator field 511-1 indicates the nonprivileged status. This arrangement causes an interrupt in the processor 501 on. In other cases, a command is executed when a command decoder 513 decode the operating code and generate a signal as required to process the decoded command. 20 shows the format of the BASE set command. According to 20 will be in one part 108 the operation code of this instruction is stored, and a first operand 109 stores the in the path table base register 514 value to be set. In pieces 110 and 111 stored values are not used. In the processor 501 the present command is executed with the following procedure.

Zunächst dekodiert der Befehlsdekoder 513 den Befehl, wie oben beschrieben, und gibt ein Signal an die Leitung L1 aus, wenn der Lesebefehl der BASE-Setzbefehl ist. Da der Befehl ein privilegierter Befehl ist, wird er nicht ausgeführt, wenn der Inhalt des Privilegstatusanzeigefeldes 511-1 nicht 1 ist. Wenn der Inhalt dagegen 1 ist, wird ein Signal von der UND-Schaltung 524 ausgegeben. Mit Hilfe dieses Signals wird der im Feld OP1 des Befehlsregisters 512 gespeicherte Wert im Pfadtabellenbasisregister 514 gespeichert.First, the command decoder decodes 513 the command as described above, and outputs a signal to the line L1 when the read command is the BASE set command. Since the command is a privileged command, it is not executed when the contents of the privilege status panel 511-1 not 1. On the other hand, when the content is 1, a signal from the AND circuit becomes 524 output. With the help of this signal, the in the field OP1 of the command register 512 stored value in the path table base register 514 saved.

21 zeigt ein Format für den LEN-Setzbefehl. Gemäß 21 speichert ein Teil 112 einen Betriebskode für den Befehl, und ein erster Operand speichert den im Pfadtabellenbasisregister 514 zu setzenden Wert. In Teilen 114 und 115 gespeicherte Werte werden nicht verwendet. Im Prozessor 501 wird der Befehl in der folgenden Weise abgearbeitet. 21 shows a format for the LEN setting command. According to 21 saves a part 112 an operation code for the instruction, and a first operand stores the in the path table base register 514 value to be set. In pieces 114 and 115 stored values are not used. In the processor 501 the command is processed in the following way.

Zunächst dekodiert der Befehlsdekoder 513 den Befehl, wie oben angegeben, und gibt ein Signal an die Leitung L2 aus, wenn der gelesene Befehl der BASE-Setzbefehl ist. Da der Befehl ein privilegierter Befehl ist, wird er nicht ausgeführt, wenn der Wert des Anzeigefeldes 511-1 nicht 1 ist. Ist dies dagegen der Fall, wird von der UND-Schaltung 525 ein Signal ausgegeben. Mit diesem Signal wird der im Feld OP1 des Befehlsregisters 512 gespeicherte Wert im Pfadtabellenlängenregister 515 gesetzt.First, the command decoder decodes 513 command, as stated above, and outputs a signal to line L2 if the read command is the BASE set command. Since the command is a privileged command, it will not execute if the value of the display field 511-1 not 1. If, on the other hand, this is the case, the AND circuit 525 a signal is output. With this signal, the field OP1 of the command register becomes 512 stored value in the path table length register 515 set.

Ein Prozeß mit dem im Register durch Ausführen des BASE-Setzbefehls und des LEN-Setzbefehls geladener Zusammenhangswert, welcher Prozeß dem Prozessor 501 zugeordnet wurde, setzt einen Pfad über Datenübertragung vor der Datenübertragung an einen andere Prozeß innerhalb des Jobs.A process with the relational value loaded in the register by executing the BASE set instruction and the LEN set instruction, which process is assigned to the processor 501 assigns a path via data transfer before the data transfer to another process within the job.

Zunächst führt der Prozeß einen Systemaufruf zum Setzen des Pfads auf. Die Spezifikation dieses Systemaufrufs ist die folgende:
Pfad = openpath (Name);
"Name": Name des anderen Prozesses (einmalig innerhalb des Jobs)
"Pfad": Wert des vom Betriebssystem rückgelieferten Pfades.
First, the process invokes a system call to set the path. The specification of this system call is the following:
Path = openpath (name);
"Name": Name of the other process (once within the job)
"Path": value of the path returned by the operating system.

Der Pfad wird durch die folgende Schrittfolge gesetzt.Of the Path is set by the following sequence of steps.

Zunächst wird beim Betriebssystem des Clusters mit einem Prozeß, der zum selben Job gehört wie der durch den Systemaufruf ausgeführte Prozeß, nachgeforscht, ob ein Prozeß mit dem zugeordneten Namen vorhanden ist. Das Betriebssystem des Clusters, in dem der Prozeß mit dem zugeordneten Namen existiert, teilt dem nachfragenden Cluster die Nummer des Clusters und einen Seitentabellenursprung zum Strukturieren eines virtuellen Raums mit, der eindeutig dem angezeigten Prozeß entspricht. In anderen Fällen teilt das Betriebssystem dem nachfragenden Cluster mit, daß kein Prozeß mit dem angegebenen Namen vorhanden ist.First, will the operating system of the cluster with a process that belongs to the same job as the process executed by the system call, investigated, whether a process with the assigned name exists. The operating system of the cluster, in which the process with the assigned name tells the requesting cluster the Number of the cluster and a page table origin for structuring a virtual space that clearly corresponds to the displayed process. In other cases tells the operating system to the requesting cluster that no process with the given name is present.

Wenn ein Prozeß mit dem angegebenen Namen nicht gefunden wurde, kehrt der Systemaufruf zu einem speziellen Wert zurück, um dem Nutzerprozeß anzuzeigen, daß der Prozeß nicht gefunden wurde.If a process with the specified name was not found, the system call returns a special value, to indicate to the user process that the Process not was found.

Wenn ein Cluster mit dem angegebenen Namen gefunden wurde, wird ein Eintrag mit dem Wert 1 im Feld V optional aus der Pfadtabelle 530 ausgewählt, entsprechend dem Nutzerprozeß, der den zugehörigen Systemaufruf ausgeführt hat, und 0 wird in dieses Feld V eingeschrieben, die Nummer des Clusters, in dem der ermittelte Prozeß existiert, wird in das Feld CL eingeschrieben, und der Seitentabelleursprung des virtuellen Raums, der dem ermittelten Prozeß entspricht, wird in das Feld PTO eingeschrieben. Dann wird die Nummer des zugehörigen Eintrags an den Nutzerprozeß rückübermittelt. Anders gesagt bedeutet dies, daß die Nummer des Eintrags der Pfadtabelle 530 der Wert des Pfades wird.If a cluster with the specified name was found, an entry with the value 1 in field V becomes optional from the path table 530 is selected according to the user process that performed the associated system call, and 0 is written in this field V, the number of the cluster in which the determined process exists is written in the field CL, and the page table origin of the virtual space corresponding to the determined process is written in the field PTO. Then the number of the associated entry is returned to the user process. In other words, this means that the entry number of the path table 530 the value of the path becomes.

Wenn die oben angegebene Vorbereitung abgeschlossen wurde, kann der Prozeß Daten an einen anderen Prozeß übertragen. Anschließend wird die Spezifizierung für einen Fernspeicherungsbefehl zum Übertragen von Daten erläutert. Der Fernspeicherungsbefehl ist ein nichtprivilegierter Befehl und weist ein Format auf, wie es in 22 dargestellt ist. In 22 bezeichnen 117, 118 und 119 virtuelle Adressen innerhalb eines virtuellen Raums, der dem anderen Prozeß entspricht. 116 ist der Betriebskode, 117 ist die virtuelle Adresse zum Speichern eines Wertes des Pfades für die Übertragung, 118 ist die virtuelle Adresse zum Speichern der virtuellen Adresse der zu sendenden Daten im virtuellen Raum des Prozesses zum Ausführen des Befehls, und 119 ist die virtuelle Adresse zum Speichern der zu sendenden Daten. Der Befehl wird auf folgende Weise ausgeführt. Das Schema des Ablaufs des Befehls ist in 23 dargestellt.When the above preparation has been completed, the process can transfer data to another process. Next, the specification for a remote storage command for transferring data will be explained. The remote store command is a nonprivileged command and has a format as defined in US Pat 22 is shown. In 22 describe 117 . 118 and 119 virtual addresses within a virtual space that corresponds to the other process. 116 is the operation code, 117 is the virtual address for storing a value of the path for the transmission, 118 is the virtual address for storing the virtual address of the data to be sent in the virtual space of the process for executing the command, and 119 is the virtual address for storing the data to be sent. The command is executed in the following way. The scheme of the expiration of the command is in 23 shown.

* Ausführung des Fernspeicherungsbefehls durch den Nutzerprozeß (150 in 23).* Execution of the remote storage command by the user process ( 150 in 23 ).

Der Nutzerprozeß liest den Befehl aus dem Hauptspeicher 505 entsprechend dem Feld 511-2 des PSW 511 in der Ausführungs steuerungsschaltung 510 und speichert den Befehl im Befehlsregister 512. Da der Befehl ein nichtprivilegierter Befehl ist, gibt die Privilegbefehlausführungsentscheidungsschaltung 522 kein Signal aus. Der Befehlsdekoder 513 dekodiert den im Feld OP des Befehlsregisters 512 gespeicherten Betriebskode und erzeugt ein Ausgangssignal auf der Leitung L3, wenn der Lesebefehl ausgeschaltet wurde, damit ein Fernspeicherungsbefehl vorliegt. Dann wird die folgende Betriebsfolge gestartet.The user process reads the command from main memory 505 according to the field 511-2 of the PSW 511 in the execution control circuit 510 and stores the instruction in the instruction register 512 , Since the command is a nonprivileged command, the privilege command execution decision circuit gives 522 no signal off. The command decoder 513 decodes the field OP of the command register 512 stored operating code and generates an output signal on the line L3 when the read command has been turned off, so that a remote storage command is present. Then the following operating sequence is started.

* Erste Untersuchung (151 in 23)* First examination ( 151 in 23 )

Der Prozessor addiert den Wert des im ersten Operanden (117 in 22) mit Hilfe des Addierers 516 zu dem im Pfadtabellenbasisregister 514 gespeicherten Wert, um die Eintragungsadresse zu erhalten, die dem Pfad in der Pfadtabelle 530 entspricht, und er erzeugt ein Ausgangssignal für die Leseschaltung 520. Diese empfängt das Signal über die Leitung L3, greift auf den Hauptspeicher 505 auf Grundlage der vom Addierer 516 ausgegebenen Eintragungsadresse zu und erzeugt ein Signal auf der Leitung L4, wenn der Wert im Feld V des zugehörigen Eintrages 1 ist (in diesem Fall ist der Zugriff auf den Hauptspeicher ein Zugriff auf den Betriebssystembereich 529. Da ein Signal über die Leitung L3 in die Betriebssystembereichfreigabeschaltung 528 einzugeben ist, kann die Leseschaltung 512 selbst im nichtprivilegierten Zustand einen Lesevorgang ausführen).The processor adds the value of the first operand ( 117 in 22 ) with the help of the adder 516 to the in the path table base register 514 stored value to get the entry address that is the path in the path table 530 corresponds, and it generates an output signal for the read circuit 520 , This receives the signal via the line L3, accesses the main memory 505 based on the adder 516 outputted entry address and generates a signal on the line L4, if the value in the field V of the associated entry 1 (in this case access to the main memory is an access to the operating system area 529 , As a signal on the line L3 in the operating system area enable circuit 528 can be entered, the read circuit 512 even in the nonprivileged state to read).

Der Prozessor vergleicht den für den Pfad im ersten Operanden gespeicherten Wert mit dem Inhalt des Pfadtabellenlängenregisters 515, was mit Hilfe des Komparators 517 erfolgt. Wenn der Wert für den Pfad größer ist als der Inhalt im Pfadtabellenlängenregister 515, erzeugt der Prozessor ein Ausgangssignal auf der Leitung L12. The processor compares the value stored for the path in the first operand with the content of the path table length register 515 What with the help of the comparator 517 he follows. If the value for the path is greater than the content in the path table length register 515 , the processor generates an output signal on line L12.

Die Zugriffungültigentscheidungsschaltung 523 ermittelt, ob der Wert für den durch den Befehl vorgegebenen Pfad einer gültigen Datenübertragung entspricht, was auf Grundlage der Signale auf den Leitungen L3, L4 und L12 erfolgt, und sie erzeugt ein Ausgangssignal für die Ausführungssteuerschaltung 510, wenn der Wert für den Pfad ungültig ist. Der Ungültigkeitsfall ist der Fall, bei dem ein Signal auf mindestens einer der Leitungen L4 und L12 als Ergebnis der Ausführung des Befehls ausgegeben wurde.The access authorization decision circuit 523 determines whether the value for the path given by the instruction corresponds to a valid data transfer, based on the signals on lines L3, L4 and L12, and generates an output signal for the execution control circuit 510 if the value for the path is invalid. The invalid case is the case where a signal has been output on at least one of the lines L4 and L12 as a result of executing the command.

Das Vorstehende beschreibt die erste Untersuchung. Wenn ein Signal von der Befehlungültigentscheidungsschaltung 523 als Ergebnis der ersten Untersuchung von der Ausführungssteuerschaltung 510 erhalten wird, sperrt diese die Ausführung des Befehls und unterbricht den Prozeß 501.The foregoing describes the first investigation. When a signal from the key slot decision circuit 523 as a result of the first examination by the execution control circuit 510 is received, this locks the execution of the command and interrupts the process 501 ,

* Zweite Untersuchung (152 in 23)* Second investigation ( 152 in 23 )

Der Prozessor überprüft den Zustand der Sendesteuerschaltung 526 auf Grundlage des Signals auf der Leitung L3.The processor checks the state of the transmission control circuit 526 based on the signal on line L3.

Wenn sich als Ergebnis der zweiten Untersuchung herausstellt, daß der durch den zuvor ausgeführten Fernspeicherungsbefehl im Senderegister 534 gesetzte Wert noch nicht vollständig an das Netzwerk 509 übertragen wurde, setzt der Prozessor den Betriebskode 1 über die Leitung L13 im Betriebskoderegister 519 und beendet die Ausführung des Befehls. Der Prozessor führt den folgenden Ablauf aus, wenn der im Senderegister 514 durch den zuvor ausgeführten Fernspeicherungsbefehl gesetzte Wert vollständig an das Netzwerk 509 übertragen wurde.If, as a result of the second investigation, it turns out that the data stored in the transmit register by the previously executed remote store command 534 set value is not yet complete to the network 509 was transferred, the processor sets the operation code 1 via line L13 in the operating code register 519 and ends the execution of the command. The processor executes the following procedure when in the transmit register 514 completely set value to the network by the remote store command previously executed 509 was transferred.

* Setzen der Werte in den Feldern CL und PTO (153 in 23)* Set the values in the fields CL and PTO ( 153 in 23 )

In derselben Weise wie bei der ersten Untersuchung greift die Leseschaltung 520 auf den Speicher 505 mit Hilfe der Eintragungsadresse zu, wie sie vom Addierer 515 ausgegeben wird, und sie gibt den Inhalt des Feldes CL und des Feldes PTO des zugehörigen Eintrags an die Leitung L5 aus. Das Senderegister 514 setzt den an die Leitung L5 ausgegebenen Wert auf die Werte der Felder CL und PTO auf Grundlage des Signals auf der Leitung L3.In the same way as in the first investigation, the reading circuit takes effect 520 on the memory 505 with the help of the entry address too, as given by the adder 515 is output and outputs the contents of the field CL and the field PTO of the associated entry to the line L5. The sender register 514 sets the value outputted to the line L5 to the values of the fields CL and PTO based on the signal on the line L3.

* Setzen des Wertes im Feld VA (154 in 23)* Set the value in field VA ( 154 in 23 )

Anschließend setzt der Prozessor die im dritten Operanden (119 in 22) gespeicherte Adresse direkt im Feld VA des Senderegisters 524 auf Grundlage des Signals auf der Leitung L3.Then the processor sets the in the third operand ( 119 in 22 ) stored address directly in field VA of the sender register 524 based on the signal on line L3.

Setzen des Datenfeldes (155 in 23)Setting the data field ( 155 in 23 )

Anschließend übersetzt die Adreßübersetzungsschaltung 518 die im zweiten Operanden (118 in 22) gespeicherte virtuelle Adresse in die reelle Adresse und erzeugt ein Ausgangssignal an die Leseschaltung 521. Diese greift auf den Speicher 505 unter der reellen Adresse auf Grundlage des Signals auf der Leitung L3 zu und gibt die zu sendenden Daten an das Datenfeld des Senderegisters 534 aus. Dieses setzt die zu sendenden Daten für das Datenfeld auf Grundlage des Signals auf der Leitung L3.Subsequently, the address translation circuit translates 518 in the second operand ( 118 in 22 ) stored virtual address in the real address and generates an output signal to the read circuit 521 , This attacks the memory 505 under the real address based on the signal on the line L3 and outputs the data to be sent to the data field of the transmission register 534 out. This sets the data to be sent for the data field based on the signal on line L3.

* Datenübertragung (156 in 23)* Data transfer ( 156 in 23 )

Wenn die Daten in der vorstehend beschriebenen Weise im Senderegister 534 gesetzt wurden, wird der Bedingungskode 0 im Bedingungskoderegister 519 über die Leitung L13 gesetzt, wodurch die Abarbeitung des Befehls beendet wird. Die Sendesteuerschaltung 526, die das Signal über die Leitung L3 er halten hat, beginnt damit, den Inhalt des Senderegisters 534 an das Metzwerk 509 auszugeben.If the data in the manner described above in the transmit register 534 are set, the condition code 0 in the condition code register 519 via the line L13, whereby the execution of the command is terminated. The transmission control circuit 526 , which has received the signal via the line L3, begins with the contents of the transmission register 534 to the network 509 issue.

Der Ablauf des Fernspeicherungsbefehls endet mit den vorstehend angegebenen Vorgängen, und der Prozessor 501 führt den nächsten Befehl aus (157 in 23).The expiration of the remote store command ends with the above operations, and the processor 501 executes the next command ( 157 in 23 ).

Ob Daten erfolgreich an das Netzwerk 509 übertragen wurden oder nicht, kann durch einen bedingten Verzweigungsbefehl überprüft werden, abhängig vom Wert des Bedingungskodes. Wenn aus dem Wert des Bedingungskodes klar ist, daß die Daten nicht erfolgreich übertragen wurden, kann der Befehl erneut abgearbeitet werden.Whether data succeeds to the network 509 or not, can be checked by a conditional branch instruction, depending on the value of the condition code. If it is clear from the value of the condition code that the data has not been transmitted successfully, the command can be executed again.

Das Netzwerk 509 überträgt eine Nachricht an die Empfangsschaltung, z. B. die Empfangsschaltung 508 des Clusters, das in der Nachricht angegeben wurde. Infolgedessen werden die Werte des Feldes PTO, des Feldes VA und des Datenfeldes des Senderegisters 534 auf die Werte des Feldes PTO, des Feldes VA bzw. des Datenfeldes des Empfangsregisters 535 gesetzt, was durch die Empfangssteuerschaltung 527 erfolgt.The network 509 transmits a message to the receiving circuit, e.g. B. the receiving circuit 508 of the cluster specified in the message. As a result, the values of the field PTO, the field VA and the data field of the transmission register 534 to the values of the field PTO, the field VA or the data field of the receive register 535 set what is done by the receive control circuit 527 he follows.

* Überprüfung der Adreßübersetzungsmöglichkeit (160 in 23)* Verification of address translation capability ( 160 in 23 )

Wenn eine Nachricht empfangen wurde, überträgt die Empfangsschaltung 508 die Inhalte der Felder PTO und VA des Empfangsregisters 535 an die Adreßübersetzungsschaltung 536. Nachdem diese die Inhalte dieser beiden Felder erhalten hat, gibt sie ein Signal über die Leitung L19 an die betriebssystembereichzugrifffreigabeschaltung 548 auf Grundlage des im Feld PTO gespeicherten Seitentabellenursprungs und der virtuellen Adresse (des Inhalts des Feldes VA) des zugehörigen virtuellen Raumes 551 aus, wodurch es möglich wird, auf den Betriebssystembereich zuzugreifen. Dadurch greift die Adreß übersetzungsschaltung 536 über die Leitung L20 auf die Seitentabelle 550 zu und überprüft, ob die reelle Adresse des Hauptspeichers 506 erhalten werden kann oder nicht.When a message has been received, the receiving circuit transmits 508 the contents of the PTO and VA fields of the receive register 535 to the address translation circuit 536 , After receiving the contents of these two fields, it sends a signal via line L19 to the operating system area access enable circuit 548 based on the page table origin stored in the field PTO and the virtual address (the content of the field VA) of the associated virtual space 551 which makes it possible to access the operating system area. This accesses the address translation circuit 536 via line L20 to the page table 550 to and checks if the real address of the main memory 506 can be obtained or not.

* Adreßübersetzung (161 in 23)* Address translation ( 161 in 23 )

Wenn ein reeller Speicherbereich entsprechend der virtuellen Adresse existiert und die Adreßübersetzung möglich ist, ist der Zugriff auf den Betriebssystembereich in der vorstehend beschriebenen Weise möglich, woraufhin die Empfangsschaltung auf die im Betriebssystembereich 549 untergebrachte Seitentabelle 550 über die Leitung L20 zugreift, welche Seitentabelle dem virtuellen Raum 551 entspricht, der dem Feld PTO im Empfangsregister 535 entspricht. Dadurch führt die Empfangsschaltung eine Adreßübersetzung aus, um die reelle Adresse aus der virtuellen Adresse im Feld VA des Empfangsregisters 535 zu gewinnen, und sie gibt die als Ergebnis der Adreßübersetzung erhaltene reelle Adresse und ein Schreibanforderungssignal an die Leitung L10 aus.If a real storage area corresponding to the virtual address exists and the address translation is possible, access to the operating system area is possible in the manner described above, whereupon the receiving circuit is in the operating system area 549 accommodated page table 550 accesses via line L20, which page table the virtual space 551 corresponds to the field PTO in the receive register 535 equivalent. Thereby, the receiving circuit performs an address translation to the real address from the virtual address in field VA of the receive register 535 and outputs the physical address obtained as a result of the address translation and a write request signal to the line L10.

* Einschreiben von Daten (162 in 23)* Writing data ( 162 in 23 )

Die Schreibschaltung 539, die das oben angegebene Ausgangssignal erhalten hat, erzeugt ein Ausgangssignal für die über die Leitung L10 erhaltene Adresse auf der Leitung L14 und erzeugt ein Ausgangssignal für den Inhalt des Datenfeldes des Empfangsregisters 535 auf der Leitung L15, wodurch die Schreibschaltung 539 den Inhalt des Datenfeldes des Registers 535 in den Datenspeicherbereich 552 des virtuellen Raums 551 einschreibt, wodurch der Ablauf beendet wird.The writing circuit 539 which has obtained the above-mentioned output signal, generates an output signal for the address obtained via the line L10 on the line L14 and generates an output signal for the content of the data field of the reception register 535 on the line L15, causing the write circuit 539 the content of the data field of the register 535 in the data storage area 552 of virtual space 551 writes, which completes the process.

* Adreßerzeugung (170 in 23)* Address generation ( 170 in 23 )

Wenn die oben beschriebene Adreßübersetzung nicht möglich ist oder wenn die für eine Seitenausgabe erforderliche Adresse nicht erhalten werden kann, gibt die Adreßübersetzungsschaltung 536 ein Signal an die Leitung L11 aus. Mit der vorstehenden Anordnung kann die Adreßerzeugungsschaltung 537 eine Adresse für den Bereich innerhalb des Empfangsabfangpuffers erzeugen, der den Inhalt des Empfangsregisters 535 speichern kann.If the above-described address translation is not possible or if the address required for page output can not be obtained, the address translation circuit outputs 536 a signal to the line L11. With the above arrangement, the address generating circuit 537 generate an address for the area within the receive intercept buffer that contains the contents of the receive register 535 can save.

Der Empfangsabfangpuffer 553 wurde vorab innerhalb des Betriebssystembereichs 549 des Hauptspeichers 506 durch das Betriebssystem des zugehörigen Clusters gesichert.The receive catch buffer 553 was previously within the operating system area 549 of the main memory 506 secured by the operating system of the associated cluster.

* Standby des Empfangsregisters (171 in 23)* Standby of the receive register ( 171 in 23 )

Wenn die von der Adreßerzeugungsschaltung 537 erzeugte Adresse über die Leitung L17 der Schreibschaltung 538 zugeführt wurde, gibt diese über die Leitung L18 ein Signal an die Betriebssystembereichzugrifffreigabeschaltung 548 aus, um das Einschreiben in den Betriebssystembereich 549 freizugeben. Anschließend gibt die Schreibschaltung 538 über eine Leitung L30 die Adresse an den Hauptspeicher aus und schreibt den Inhalt jedes Feldes des Empfangsregisters 535 über eine Leitung L31 ein.If that of the address generation circuit 537 generated address via the line L17 of the write circuit 538 has been supplied, this gives a signal via the line L18 to the operating system area access enable circuit 548 off to the writing in the operating system area 549 release. Then there is the write circuit 538 via a line L30 the address to the main memory and writes the contents of each field of the receive register 535 via a line L31.

* Aufrufen des Betriebssystems durch einen Interrupt (172 in 23)* Call the operating system with an interrupt ( 172 in 23 )

Die Adreßerzeugungsschaltung 537 erzeugt einen Interrupt an die Prozessoren 503 und 504 über die Leitung L21.The address generation circuit 537 generates an interrupt to the processors 503 and 504 via the line L21.

* Seiteneinleseprozeß (180 in 23)* Page load process ( 180 in 23 )

Der Prozessor, in dem ein Interrupt auftrat, ordnet durch einen Seiteneinleseprozeß der virtuellen Adresse, die den Grund für den Interrupt bildete, eine reelle Adresse zu.Of the Processor in which an interrupt occurred orders through a virtual page-reading process Address that the reason for the interrupt formed a real address too.

* Simulation der Empfangsschaltung (181 in 23)* Simulation of the receiving circuit ( 181 in 23 )

Das Betriebssystem entnimmt dem Empfangsabfangpuffer 553 die Nachricht und simuliert prinzipiell den Ablauf der Datenverarbeitung, die durch die Empfangsschaltung 508 auszuführen ist.The operating system removes the receive intercept buffer 553 the message and basically simulates the flow of data processing by the receiving circuit 508 is to execute.

Die Datenübertragung wird wie vorstehend beschrieben abgeschlossen.The data transfer is completed as described above.

Wenn eine Adresse nicht erzeugt werden kann, da im Empfangsabfangpuffer 553 bei der oben beschriebenen Adreßerzeugung (170 in 23) kein Raum frei ist, überträgt die Adreßerzeugungsschaltung 537 ein Signal über die Leitung L16 an die Empfangssteuerschaltung 527. Wenn diese das Signal empfangen hat, sendet sie ein Signal für Empfangsabfang über eine Leitung L9 an das Netzwerk 509, um das übertragen der Nachricht vom Netzwerk 509 auf der Leitung L8 abzufangen. Die Adreßerzeugungsschaltung 537 erzeugt über die Leitung L21 einen Interrupt für den Prozessor 503 oder den Prozessor 504, um das Betriebssystem aufzurufen und eine Erweiterung des Empfangsabfangpuffers 553 anzufordern. Wenn die Erweiterung abgeschlossen ist, teilt das Betriebssystem den Abschluß der Erweiterung der Adreßerzeugungsschaltung 537 über die Leitung L21 mit. Die Adreßerzeugungsschaltung 537, die diese Nachricht empfangen hat, weist die Empfangssteuerschaltung 527 über die Leitung L16 an, den Empfang neu zu starten. Nachdem die Empfangssteuerschaltung 527 diesen Befehl erhalten hat, teilt sie das Neustarten des Empfangs dem Netzwerk 509 über die Leitung L9 mit.If an address can not be generated because in the receive catch buffer 553 in the address generation described above ( 170 in 23 ) no space is free, transmits the address generation circuit 537 a signal via the line L16 to the reception control circuit 527 , When it has received the signal, it sends a receive intercept signal to the network via line L9 509 to transfer the message from the network 509 intercept on line L8. The address generation circuit 537 generates an interrupt for the processor via line L21 503 or the processor 504 to call the operating system and one Extension of the receive intercept buffer 553 to request. When the expansion is completed, the operating system announces the completion of the address generation circuit expansion 537 via line L21 with. The address generation circuit 537 that has received this message has the reception control circuit 527 via line L16 to restart the reception. After the reception control circuit 527 received this command, it informs the restart of the reception to the network 509 via line L9 with.

Wenn die gesamte erforderliche Datenübertragung abgeschlossen ist, führt der Prozeß einen Systemaufruf zum Freigeben des Pfades aus. Die Spezifizierung dieses Systemaufrufs ist die folgende:
closepath ("Pfad");
"Pfad": Wert für den Pfad
When all required data transfer has been completed, the process executes a system call to release the path. The specification of this system call is the following:
closepath ("path");
"Path": Value for the path

Um den Pfad freizugeben, wird der Wert 1 im Feld V für den Eintrag gesetzt, wie er durch das Argument "Pfad" in der Pfadtabelle 530 angegeben ist, entsprechend dem Prozeß, der den Systemaufruf ausgeführt hat.To clear the path, the value 1 in field V is set for the entry, as indicated by the argument "path" in the path table 530 is specified according to the process that has executed the system call.

Ausführungsbeispiel 6Embodiment 6

Das sechste Ausführungsbeispiel ist eine Modifizierung des fünften Ausführungsbeispiels, weswegen im wesentlichen nur unterschiedliche Punkte erläutert werden. 24 zeigt den Aufbau eines Parallelprozessors gemäß dem sechsten Ausführungsbeispiel der Erfindung. In 24 haben Elemente, die dieselben Bezugszeichen tragen wie solche beim fünften Ausführungsbeispiel, denselben Aufbau wie die dortigen Elemente.The sixth embodiment is a modification of the fifth embodiment, therefore essentially only different points will be explained. 24 shows the construction of a parallel processor according to the sixth embodiment of the invention. In 24 For example, elements having the same reference numerals as those in the fifth embodiment have the same construction as the elements there.

In 24 bezeichnen 501a, 502a, 503a und 504a Prozessoren mit jeweils demselben Aufbau. 505 und 506 bezeichnen Hauptspeicher. 507a und 508 bezeichnen eine Sendeschaltung bzw. eine Empfangsschaltung. 509 bezeichnet ein Netzwerk.In 24 describe 501 . 502a . 503a and 504a Processors with the same structure. 505 and 506 denote main memory. 507a and 508 denote a transmitting circuit and a receiving circuit, respectively. 509 denotes a network.

Im Prozessor 501a bezeichnet 512a ein Befehlsregister. Dieses unterscheidet sich vom Befehlsregister 512 des fünften Ausführungsbeispiels dadurch, daß das erstere drei Operanden speichert, während das letztere nur zwei Operanden speichert. Im Prozessor 501a sind weitere Aufbauelemente wie im Prozessor 501 von 17 vorhanden, die durch gleiche Bezugszeichen gekennzeichnet sind, wenn sie einander entsprechen.In the processor 501 designated 512a a command register. This is different from the command register 512 of the fifth embodiment in that the former stores three operands while the latter stores only two operands. In the processor 501 are further construction elements as in the processor 501 from 17 present, which are identified by like reference numerals, when they correspond to each other.

In der Sendeschaltung 507a bezeichnen 534a-1 und 534a-2 Senderegister, die dem Senderegister 534 des fünften Ausfüh rungsbeispiels entsprechen, das jedoch zweigeteilt ist, wie in der Figur dargestellt.In the transmission circuit 507a describe 534a-1 and 534a-2 Sender register, the sender register 534 of the fifth embodiment, however, which is divided into two, as shown in the figure.

Reim vorliegenden Ausführungsbeispiel besteht der Fernspeicherungsbefehl des fünften Ausführungsbeispieles nicht mehr, wohingegen zwei Befehle betreffend einen Fernspeicherungsvorbereitungsbefehl und einen Fernspeicherungsausführungsbefehl neu hinzugefügt sind. Diese zwei neuen Befehle sind nichtprivilegierte Befehle.rhyme present embodiment is the remote storage command of the fifth embodiment no longer whereas, two commands related to a remote storage preparation command and a remote storage execution command new added are. These two new commands are nonprivileged commands.

25 zeigt ein Format für den Fernspeicherungsvorbereitungsbefehl. In 25 bezeichnet 200 einen Betriebskode für diesen Befehl; ein erster Operand 201 ist ein Wert für den Pfad. Ein in einem Feld 202 gespeicherter Wert wird nicht verwendet. 25 shows a format for the remote storage preparation command. In 25 designated 200 an operation code for this instruction; a first operand 201 is a value for the path. One in a field 202 stored value is not used.

26 zeigt ein Format für den Fernspeicherungsausführungsbefehl. In 26 bezeichnet 204 einen Betriebskode für diesen Befehl; ein erster Operand 205 ist die virtuelle Adresse innerhalb des virtuellen Raums, der dem anderen Prozeß zum Speichern zu sendender Daten entspricht. Ein dritter Operand 206 ist eine virtuelle Adresse der zu sendenden Daten, wie sie im virtuellen Raum vorhanden sind, der dem Prozeß entspricht, der diesen Befehl ausführt. 26 shows a format for the remote storage execution command. In 26 designated 204 an operation code for this instruction; a first operand 205 is the virtual address within the virtual space corresponding to the other process for storing data to be sent. A third operand 206 is a virtual address of the data to be sent as it exists in virtual space corresponding to the process executing this command.

Die Funktion des Parallelprozessors gemäß diesem Ausführungsbeispiel wird nun erläutert. Die Funktion ist dieselbe wie diejenige beim fünften Ausführungsbeispiel mit der Ausnahme, daß die Abläufe für den gegenüber dem fünften Ausführungsbeispiel nicht mehr vorhandenen Fernspeicherungsbefehl durch die zwei zusätzlichen Befehle, also den Fernspeicherungsvorbereitungsbefehl und den Fernspeicherungsausführungsbefehl ausgeführt werden. Daher werden die Abläufe gemäß diesen zwei Befehlen unter Bezugnahme auf die 24 und 27 beschrieben.The operation of the parallel processor according to this embodiment will now be explained. The operation is the same as that in the fifth embodiment, except that the operations for the remote storage command no longer existing as compared with the fifth embodiment are executed by the two additional commands, that is, the remote storage preparation command and the remote storage execution command. Therefore, the processes according to these two instructions will be described with reference to FIGS 24 and 27 described.

Es wird zunächst der Ablauf für den Fernspeicherungsvorbereitungsbefehl beschrieben. Dieser Befehl wird wie folgt ausgeführt.It will be first the expiration for described the remote storage preparation command. This command is performed as follows.

* Ausführung des Fernspeicherungsvorbereitungsbefehls durch den Nutzerprozeß (182 in 27)* Execution of the remote storage preparation command by the user process ( 182 in 27 )

Zunächst liest der Nutzerprozeß den Befehl aus dem Hauptspeicher 505 abhängig vom Feld 511-2 des PSW 511 in der Ausführungssteuerschaltung 510 und speichert den Befehl im Befehlsregister 512a. Da dieser Befehl ein nichtprivilegierter Befehl ist, erzeugt die Privilegbefehlsausführungsentscheidungsschaltung 522 kein Ausgangssignal. Der Befehlsdekoder 513 dekodiert den im Feld OP des Befehlsregisters 512a gespeicherten Betriebskode und erzeugt ein Ausgangssignal auf der Leitung L3, wenn klar ist, daß der gelesene Befehl der Fernspeichervorbereitungsbefehl ist. Dann wird die folgende Serie von Abläufen ausgeführt.First, the user process reads the instruction from main memory 505 depending on the field 511-2 of the PSW 511 in the execution control circuit 510 and stores the instruction in the instruction register 512a , Since this command is a nonprivileged command, the privilege command execution decision circuit generates 522 no output signal. The command decoder 513 decodes the field OP of the command register 512a stored operating code and generates an output signal on the line L3 when it is clear that the read command is the remote memory preparation command. Then the following series of operations is performed.

* Erste Überprüfung (151 in 27)* First review ( 151 in 27 )

Der Prozessor addiert mit Hilfe des Addierers 516 den Wert des im ersten Operanden (201 in 25) gespeicherten Pfades zu dem im Pfadtabellenbasisregister 514 gespeicherten Wert, um eine Bereichsadresse zu erhalten, die dem Pfad in der Pfadtabelle 530 entspricht, und erzeugt ein Ausgangssignal für die Leseschaltung 520. Nachdem diese das Signal über die Leitung L3 erhalten hat, greift sie durch die vom Addierer 516 ausgegebene Eintragungsadresse auf den Hauptspeicher 505 zu und erzeugt auf der Leitung L4 ein Ausgangssignal, wenn der Wert des Feldes V des Eintrages 1 ist. (In diesem Fall ist der Speicherzugriff ein Zugriff auf den Betriebssystembereich 529. Da jedoch ein Signal über die Leitung L3 in die Betriebssystembereichfreigabeschaltung 528 eingegeben wird, kann die Leseschaltung 520 auch dann einen Lesevorgang ausführen, wenn sie nicht im privilegierten Zustand ist). Über die Leitung L4 wird ein Signal ausgegeben, wenn der Wert des Feldes V der Eintragung 1 ist.The processor adds with the help of the adder 516 the value of the first operand ( 201 in 25 ) stored path to that in the path table base register 514 stored value to obtain an area address that corresponds to the path in the path table 530 corresponds, and generates an output signal for the read circuit 520 , After this has received the signal via the line L3, it reaches through the adder 516 output registration address to the main memory 505 and generates on line L4 an output signal when the value of field V of the entry 1 is. (In this case, the memory access is an access to the operating system area 529 , However, because a signal on line L3 enters the operating system area enable circuit 528 is entered, the read circuit 520 perform a read even if it is not in the privileged state). A signal is output via the line L4 if the value of the field V of the entry 1 is.

Der Prozessor vergleicht weiterhin den im ersten Operanden gespeicherten Wert für den Pfad mit dem Inhalt des Pfadtabellenlängenregisters 515, was durch den Komparator 517 erfolgt. Wenn der Wert für den Pfad größer ist als der Inhalt des Pfadtabellenlängenregisters 515, was durch den Vergleich festgestellt wird, erzeugt der Prozessor ein Ausgangssignal auf der Leitung L12.The processor further compares the path value stored in the first operand with the content of the path table length register 515 what through the comparator 517 he follows. If the value for the path is greater than the contents of the path table length register 515 as determined by the comparison, the processor generates an output signal on line L12.

Die Zugriffungültigentscheidungsschaltung 523 entscheidet, ob der Wert für den durch diesen Befehl zugeordneten Pfad eine gültige Datenübertragung kennzeichnet oder nicht, was auf Grundlage der Signale auf den Leitungen L3, L4 und L12 erfolgt, und sie erzeugt ein Ausgangssignal für die Ausführungssteuerschaltung 510, wenn sich herausstellt, daß der Wert für den Pfad ungültig ist. Der Ungültigkeitsfall liegt vor, wenn ein Ausgangssignal auf mindestens einer der Leitungen L14 und L12 nach dem Ausführen des Befehls auftrat.The access authorization decision circuit 523 decides whether or not the value for the path assigned by this instruction designates a valid data transfer based on the signals on the lines L3, L4 and L12, and generates an output signal for the execution control circuit 510 if it turns out that the value for the path is invalid. The invalid case is when an output signal occurred on at least one of the lines L14 and L12 after the command was executed.

Mit den vorstehenden Ausführungen ist die Beschreibung für die erste Überprüfung abgeschlossen. Wenn ein Signal infolge der ersten Überprüfung von der Zugriffungültigentscheidungsschaltung 523 von der Ausführungssteuerschaltung 510 erhalten wird, sperrt diese die Ausführung dieses Befehls und erzeugt einen Interrupt für den Prozessor 501a.With the foregoing, the description for the first check is completed. When a signal due to the first check from the access authorization decision circuit 523 from the execution control circuit 510 is received, this locks the execution of this command and generates an interrupt for the processor 501 ,

* Zweite Überprüfung (152 in 27)* Second review ( 152 in 27 )

Der Prozessor überprüft den Zustand der Sendesteuerschaltung 526 auf Grundlage des Signals auf der Leitung L3.The processor checks the state of the transmission control circuit 526 based on the signal on line L3.

Wenn als Ergebnis der zweiten Überprüfung klar ist, daß die in den Senderegistern 534a-1 und 534a-2 durch den zuvor ausgeführten Fernspeicherungsausführungsbefehl gesetzten Werte noch nicht völlig an das Netzwerk 509 übertragen wurden, setzt der Prozessor das Bedingungskoderegister 519 über die Leitung L13 auf den Bedingungskode 1 und beendet die Ausführung des Befehls. Der Prozessor führt die folgenden Abläufe aus, wenn die in den Senderegistern 534a-1 und 534a-2 gesetzten Werte, wie sie zuvor durch den Fernspeicherungsausführungsbefehl ausgeführt wurden, alle an das Netzwerk 509 übertragen wurden.If, as a result of the second review, it is clear that those in the broadcasting registers 534a-1 and 534a-2 values set by the remote store execution command previously executed are not yet fully connected to the network 509 the processor sets the condition code register 519 via line L13 to the condition code 1 and ends the execution of the command. The processor performs the following operations when in the transmit registers 534a-1 and 534a-2 set values, as previously performed by the remote store execution command, all to the network 509 were transferred.

* Setzen der Werte der Felder CL und PTO (153 in 27)* Set the values of the fields CL and PTO ( 153 in 27 )

Zunächst greift, wie bei der ersten Überprüfung, die Leseschaltung 520 mit Hilfe der Eintragungsadresse, wie sie durch den Addierer 516 ausgegeben wird, auf den Hauptspeicher 505 zu und gibt die Inhalte der Felder CL und PTO des Eintrags an die Leitung L5 aus. Das Senderegister 534a-1 setzt den an die Leitung L5 ausgegebenen Wert im Feld CL und den Wert im Feld PTO auf Grundlage des Signals auf der Leitung L3.First, as in the first review, the reading circuit intervenes 520 with the help of the entry address as given by the adder 516 is output to the main memory 505 and outputs the contents of the fields CL and PTO of the entry to the line L5. The sender register 534a-1 sets the value output to line L5 in field CL and the value in field PTO based on the signal on line L3.

Durch die vorstehenden Erläuterungen ist der Ablauf für den Fernspeicherungsvorbereitungsbefehl beschrieben.By the above explanations is the process for described the remote storage preparation command.

Nun wird der Ablauf für den Fernspeicherungsausführungsbefehl erklärt. Dieser Befehl wird wie folgt abgearbeitet.Now becomes the expiration for the remote storage execution command explained. This command is processed as follows.

* Ausführen des Fernspeicherungsausführungsbefehls durch den Nutzerprozeß (183 in 27)* Execute the remote storage execution command by the user process ( 183 in 27 )

Der Nutzerprozeß liest zunächst den Befehl aus dem Hauptspeicher 505 gemäß dem Feld 511-2 des PSW 511 in der Ausführungssteuerschaltung 510 und speichert den Befehl im Be fehlsregister 512a. Da dieser Befehl ein nichtprivilegierter Befehl ist, erzeugt die Privilegbefehlausführungsentscheidungsschaltung 512 kein Ausgangssignal. Der Befehlsdekoder 513 dekodiert den im Feld OP des Befehlsregisters 512a gespeicherten Betriebskode und startet die folgende Serie von Abläufen nach dem Erzeugen eines Ausgangssignals auf einer Leitung L99, wenn klar ist, daß der ausgelesene Befehl der Fernspeicherungsausführungsbefehl ist.The user process first reads the command from the main memory 505 according to the field 511-2 of the PSW 511 in the execution control circuit 510 and stores the instruction in the instruction register 512a , Since this command is a nonprivileged command, the privilege command execution decision circuit generates 512 no output signal. The command decoder 513 decodes the field OP of the command register 512a stored operating code and starts the following series of operations after generating an output signal on a line L99, when it is clear that the read-out command is the remote storage execution command.

* Setzen des Feldes VA (154 in 27)* Setting the field VA ( 154 in 27 )

Anschließend wird die im ersten Operanden (205 in 26) gespeicherte virtuelle Adresse direkt im Feld VA des Senderegisters 534a-2 auf Grundlage des Signals auf der Leitung L99 gesetzt.Then, in the first operand ( 205 in 26 ) stored virtual address directly in field VA of the sender register 534a-2 based on the signal on line L99.

* Setzen des Datenfeldes (155 in 27)* Setting the data field ( 155 in 27 )

Die Adreßübersetzungsschaltung 518 übersetzt die im zweiten Operanden (206 in 26) gespeicherte virtuelle Adresse in eine reelle Adresse und erzeugt ein Ausgangssignal für die Leseschaltung 521. Diese greift auf den Hauptspeicher 505 mit der reellen Adresse auf Grundlage des Signals auf der Leitung L99 zu und gibt die zu sendenden Daten an das Datenfeld des Senderegisters 534a-2 aus. Dieses setzt die zu sendenden Daten im Datenfeld auf Grundlage des Signals auf der Leitung L99.The address translation circuit 518 above sets the second operand ( 206 in 26 ) stored virtual address in a real address and generates an output signal for the read circuit 521 , This accesses the main memory 505 with the real address based on the signal on the line L99 and outputs the data to be sent to the data field of the transmission register 534a-2 out. This sets the data to be sent in the data field based on the signal on line L99.

* Datenübertragung (156 in 27)* Data transfer ( 156 in 27 )

Wenn das Setzen der Senderegister 534a-1 und 534a-2, wie vorstehend beschrieben, abgeschlossen ist, setzt die Sendeschaltung den Bedingungskode 0 über die Leitung L13 im Bedingungskoderegister 519 und beendet die Ausführung des fehls. Die Sendesteuerschaltung 526, die das Signal von der Leitung L99 empfangen hat, beginnt mit dem Senden der Inhalte der Senderegister 534a-1 und 534a-2 an das Netzwerk 509.When setting the transmit registers 534a-1 and 534a-2 As described above, the transmission circuit sets the condition code 0 via the line L13 in the condition code register 519 and stops the execution of the error. The transmission control circuit 526 which has received the signal from the line L99 starts sending the contents of the transmission registers 534a-1 and 534a-2 to the network 509 ,

Damit wird der Ablauf für den Fernspeicherungsausführungsbefehl abgeschlossen.In order to becomes the expiration for the remote storage execution command completed.

Wie es aus der obigen Erklärung hervorgeht, ist es durch Ausführen des Fernspeicherungsvorbereitungsbefehls zum Setzen des Wertes des Senderegisters 534a-1 mit anschließendem Ausführen des Fernspeicherungsausführungsbefehls möglich, einen Effekt zu erzielen, der mit dem übereinstimmt, wie er erzielt wird, wenn der Fernspeicherungsbefehl beim fünften Ausführungsbeispiel ausgeführt wird. Dementsprechend ist der Betrieb des Prozessors zum Empfangen von Daten genau der gleiche wie im Fall des fünften Ausführungsbeispiels.As is apparent from the above explanation, by executing the remote storage preparation instruction, it is to set the value of the transmission register 534a-1 with subsequent execution of the remote storage execution command, it is possible to obtain an effect which agrees with that obtained when the remote storage command in the fifth embodiment is executed. Accordingly, the operation of the processor for receiving data is exactly the same as in the case of the fifth embodiment.

Damit ist die Erläuterung des sechsten Ausführungsbeispiels der Erfindung abgeschlossen.In order to is the explanation of the sixth embodiment completed the invention.

Beim vorliegenden Ausführungsbeispiel wird der Fernspeicherungsvorbereitungsbefehl dann, wenn im selben Prozeß Daten wiederholt zu senden sind, nur einmal ausgeführt, und der Fernspeicherungsausführungsbefehl wird entsprechend der erforderlichen Anzahl ausgeführt. Demgegenüber wird beim fünften Ausführungsbeispiel der Fernspeicherungsbefehl wiederholt ausgeführt. Da der Fernspeicherungsbefehl des fünften Ausführungsbeispiels durch den Fernspeicherungsausführungsbefehl ersetzt ist, für den die Abarbeitung erheblich einfacher ist, besteht die Wirkung, daß der Overhead, wie er zum Übertragen von Daten erforderlich ist, weiter verringert werden kann.At the present embodiment the remote storage preparation command will then if in the same Process data to be repeatedly transmitted, executed only once, and the remote storage execution command will be executed according to the required number. In contrast, the fifth embodiment the remote store command repeatedly executed. Since the remote storage command of the fifth Embodiment the remote storage execution command is replaced, for the processing is much easier, the effect is that the Overhead, how to transfer it data is required, can be further reduced.

Ausführungsbeispiel 7Embodiment 7

Das siebte Ausführungsbeispiel ist eine Modifizierung des fünften Ausführungsbeispiels, das jedoch mit einfacherem Aufbau realisiert werden kann, wenn eine Einschränkung beim Verfahren hingenommen wird, wie es beim fünften Ausführungsbeispiel ausgeführt wird.The seventh embodiment is a modification of the fifth Embodiment, However, this can be realized with a simpler structure, if a restriction is accepted in the method, as it is carried out in the fifth embodiment.

Eine Einschränkung, wie sie zum fünften Ausführungsbeispiel hinzugefügt wird, um das siebte Ausführungsbeispiel zu erhalten, wird nun erläutert.A restriction as for the fifth embodiment added becomes the seventh embodiment to receive, will now be explained.

Beim fünften Ausführungsbeispiel kann eine virtuelle Seite im virtuellen Raum des Datenempfangsprozesses, welche Seite durch den Fernspeicherungsbefehl zu übertragen ist, durch das Betriebssystem seitenmäßig ausgegeben werden. Beim vorliegenden Ausführungsbeispiel wird jedoch die Einschränkung hinzugefügt, daß die genannte durch den Fernspeicherungsbefehl zu sendende virtuelle Seite im virtuellen Raum des Datenemfangsprozesses dem reellen Speicher ohne Ausnahme zugeordnet ist.At the fifth embodiment can be a virtual page in the virtual space of the data receiving process, which page to transmit through the remote store command is to be paged by the operating system. At present embodiment However, this becomes the limitation added that the said virtual page to be transmitted by the remote storage command in the virtual space of the data capture process, the real memory is assigned without exception.

Der Ablauf, gemäß dem eine virtuelle Seite dem reellen Speicher ohne Ausnahme zugeordnet ist und bei dem eine seitenweise Ausgabe nicht zulässig ist, ist ein Ablauf mit sogenannter Seitenfixierung. Dies kann unter Verwendung herkömmlicher Technik einfach realisiert werden.Of the Expiration, according to the one virtual page is allocated to the real memory without exception and in which a page-wise output is not allowed, is an expiration with so-called side fixation. This can be done using conventional Technology can be easily realized.

Der Aufbau eines Parallelprozesses gemäß diesem Ausführungsbeispiel kann dadurch realisiert werden, daß ein Teil der Elemente des Aufbaus des fünften Ausführungsbeispiels weggelassen wird. 28 zeigt den Aufbau des Parallelprozessors gemäß dem vorliegenden Ausführungsbeispiel. Diesem Aufbau fehlen die Adreßerzeugungsschaltung 537, die Schreibschaltung 538, der Empfangsabfangpuffer 553, der Datenspeicherbereich 554 des Empfangsabfangpuffers 553 und die an diese Elemente angeschlossenen Leitungen gegenüber dem Parallelprozessor von 17.The construction of a parallel process according to this embodiment can be realized by omitting a part of the elements of the construction of the fifth embodiment. 28 shows the structure of the parallel processor according to the present embodiment. This structure lacks the address generation circuit 537 , the write circuit 538 , the receive catch buffer 553 , the data storage area 554 the receive intercept buffer 553 and connected to these elements lines to the parallel processor of 17 ,

Die Funktion des Parallelprozessors gemäß diesem Ausführungsbeispiel ist fast dieselbe wie diejenige des Parallelprozessors des fünften Ausführungsbeispiels. Daher werden nur Unterschiede erläutert.The Function of the parallel processor according to this embodiment is almost the same as that of the parallel processor of the fifth embodiment. Therefore, only differences are explained.

Ein erster Unterschied liegt beim Initialisieren des Prozesses zum Empfangen von Daten vor, wie sie durch den Fernspeicherbefehl zu übertragen sind. Gemäß dem vorliegenden Ausführungsbeispiel wird beim Ausführen der Abläufe des Betriebssystems zum Erzeugen eines virtuellen Raums zum Erzeugen eines Prozesses ein reeller Speicherbereich gesichert, dessen Kapazität mit derjenigen der virtuellen Seite übereinstimmt, die für den Kodebereich und den Datenbereich des Prozesses nach dem Erzeugen des Raums erforderlich ist, und dieser reelle Speicherbereich wird dem virtuellen Speicherbereich völlig zugeordnet, wobei ein Seitenfixierungsprozeß für die ganzen virtuellen Seiten ausgeführt wird.One The first difference is in initializing the process of receiving of data as they are to be transmitted by the remote memory command. According to the present Embodiment is when running the processes of the operating system for creating a virtual space for generating a process saved a real storage area, whose capacity with that the virtual page matches, the for the code area and the data area of the process after generation of space is required, and this real storage area becomes the virtual memory area completely associated with a page fix process for the entire virtual pages accomplished becomes.

Ein zweiter Unterschied besteht beim Empfangsablauf im Prozeß zum Empfangen von Daten, wie sie durch einen Fernspeicherbefehl übertragen werden. Wie vorstehend beschrieben, ist der virtuellen Seite des Prozesses ohne Ausnahme ein reeller Speicher zugeordnet, so daß die Verarbeitung der Adreßübersetzungsmöglichkeitsuntersuchung 160 von 23, die die Funktion des fünften Ausführungsbeispiels verarbeitet, nicht erforderlich ist. Auch ist eine Reihe von Abläufen ab der Adreßerzeugung 170 nicht erforderlich. Dementsprechend ist es im Prozeß zum Empfangen von Daten, die durch die Datenübertragung 156 von 23 übertragen werden, nur erforderlich, die Adreßübersetzung 161 und dann die Datenspeicherung 162 vorzunehmen.A second difference is in the reception process in the process of receiving data as transmitted by a remote memory command. As described above, real memory is allocated to the virtual page of the process without exception, so that the processing of the address translation possibility check 160 from 23 that processes the function of the fifth embodiment is not required. Also, there are a number of processes starting from the address generation 170 not mandatory. Accordingly, it is in the process of receiving data through the data transfer 156 from 23 be transmitted, only required, the address translation 161 and then the data storage 162 make.

Damit ist die Beschreibung des siebten Ausführungsbeispiels der Erfindung im wesentlichen abgeschlossen.In order to is the description of the seventh embodiment of the invention essentially completed.

Bei diesem siebten Ausführungsbeispiel ist der Empfangsabfangspuffer nicht erforderlich, wodurch der reelle Speicherbereich und die Verwaltung für den Empfangsabfangspuffer nicht erforderlich sind. Daher besteht die Wirkung, daß der Overhead im Prozessor, der Daten empfängt, verringert werden kann.at this seventh embodiment the receive intercept buffer is not required, which makes the real Memory area and receive buffer management are not required. Therefore, there is an effect that the overhead in the Processor receiving data can be reduced.

Ausführungsbeispiel 8Embodiment 8

Das achte Ausführungsbeispiel der Erfindung ist eine Modifizierung des siebten Ausführungsbeispiels, jedoch mit vielen gemeinsamen Punkten. Daher werden nur Unterschiede erläutert. 29 zeigt den Aufbau des Parallelprozessors gemäß dem achten Ausführungsbeispiel. In 29 sind die Strukturen von Elementen, die dieselben Bezugszeichen tragen wie Elemente in 17 dieselben wie diejenigen der Elemente im fünften Ausführungsbeispiel.The eighth embodiment of the invention is a modification of the seventh embodiment, but with many common points. Therefore, only differences are explained. 29 shows the structure of the parallel processor according to the eighth embodiment. In 29 are the structures of elements that bear the same reference numbers as elements in 17 the same as those of the elements in the fifth embodiment.

In 29 bezeichnen Bezugszeichen 501c, 502c, 503c und 504c Prozessoren mit jeweils derselben Struktur. 505 und 506 bezeichnen Speicher. 507c und 508c bezeichnen eine Sendeschaltung bzw. eine Empfangsschaltung. 509 bezeichnet ein Netzwerk.In 29 reference numbers 501c . 502c . 503c and 504c Processors with the same structure. 505 and 506 denote memory. 507c and 508c denote a transmitting circuit and a receiving circuit, respectively. 509 denotes a network.

Im Prozessor 501c bezeichnet 999 eine Adreßübersetzungsschaltung, bei der es sich um eine für dieses Ausführungsbeispiel neu eingeführte Anordnung handelt. Andere Aufbauelemente des Prozessors 501c sind solche, wie im Prozessor 501 von 17 vorhanden, wobei dieselben Aufbauelemente dieselben Bezugszeichen tragen.In the processor 501c designated 999 an address translation circuit which is an arrangement newly introduced for this embodiment. Other components of the processor 501c are such as in the processor 501 from 17 present, wherein the same structural elements bear the same reference numerals.

Im Hauptspeicher 505 bezeichnet 530c eine Pfadtabelle. Jeder Eintrag in der Pfadtabelle 530c verfügt über ein Feld V und ein Feld CL. 530c bezeichnet eine Tabelle, die der Tabelle 530 im fünften Ausführungsbeispiel nach Entfernen des Feldes PTO entspricht.In main memory 505 designated 530c a path table. Each entry in the path table 530c has a field V and a field CL. 530c denotes a table that corresponds to the table 530 in the fifth embodiment after removal of the field PTO corresponds.

In der Sendeschaltung 507c bezeichnet 534c ein Senderegister, das über drei Felder für Werte von CL, RA und Daten verfügt.In the transmission circuit 507c designated 534c a sender register that has three fields for values of CL, RA, and data.

In der Empfangsschaltung 508c bezeichnet 535c ein Empfangsregister.In the receiving circuit 508c designated 535c a receive register.

Das vorliegende Ausführungsbeispiel ist eine Modifizierung des siebten Ausführungsbeispiels dahingehend, daß der Adreßübersetzungsablauf in bezug auf den virtuellen Raum, in den Daten durch den Fernspeicherbefehl einzuschreiben sind, durch den Prozessor auf der Sendeseite ausgeführt wird. Der Unterschied zwischen dem achten und dem siebten Ausführungsbeispiel besteht lediglich in der Funktion des Befehls "openpath", der einem Systemaufruf im siebten Ausführungsbeispiel entspricht, und im Ablauf des Fernspeicherbefehls. Daher werden diese Abläufe erläutert. Der Ablauf "openpath" im siebten Ausführungsbeispiel ist derselbe wie beim fünften Ausführungsbeispiel.The present embodiment Fig. 10 is a modification of the seventh embodiment in that that the Adreßübersetzungsablauf in terms of virtual space, in the data by the remote memory command to be written by the processor on the transmitting side. Of the Difference between the eighth and the seventh embodiment exists only in the function of the command "openpath", which calls a system call in the seventh embodiment corresponds to, and in the expiration of the remote memory command. Therefore, these become procedures explained. The process "openpath" in the seventh embodiment is the same as the fifth Embodiment.

Zunächst wird der Ablauf "openpath" erläutert. Die Spezifikation für "openpath" ist dieselbe wie beim siebten Ausführungsbeispiel. Dieser Systemaufruf wird auf folgende Weise ausgeführt.First, will the process "openpath" explained. The Specification for "openpath" is the same as for seventh embodiment. This system call is executed in the following manner.

Zunächst frägt ein Cluster beim Betriebssystem des Clusters mit dem Prozeß, der zum selben Job gehört wie der Prozeß, der den Systemaufruf ausgeführt hat, an, ob der Prozeß einen vorgegebenen Namen hat. Das Betriebssystem desjenigen Clusters, in dem sich ein Prozeß mit dem vorgegebenen Namen befindet, gibt die Nummer des Clusters und eine Information aus, um die reelle Adresse aus der virtuellen Adresse im virtuellen Raum zu gewinnen, die eindeutig dem angezeigten Prozeß entspricht; die Eingabe erfolgt an den anfragenden Cluster. In anderen Fällen zeigt der angefragte Cluster dem anfragenden Cluster an, daß kein Prozeß mit dem angegebenen Namen vorhanden ist.First, a cluster asks the operating system of the cluster with the process that belongs to the same job as the Process, which executed the system call whether the process has one given name. The operating system of the cluster, in which a process with given the given name, gives the number of the cluster and an information to the real address from the virtual address to win in virtual space, which clearly corresponds to the indicated process; the input is made to the requesting cluster. In other cases shows the requested cluster indicates to the requesting cluster that no process with the given name is present.

Wenn kein Prozeß mit dem angegebenen Namen als Ergebnis der vorstehenden Abfrage gefunden wurde, gibt der Systemaufruf einen speziellen Wert an den Nutzerprozeß ab, der anzeigt, daß kein Prozeß mit dem angegebenen Namen gefunden wurde.If no process with found the given name as a result of the above query the system call returns a special value to the user process that indicates that no process with the specified name was found.

Wenn ein Cluster gefunden wurde, in dem der Prozeß mit dem angegebenen Namen vorhanden ist, wird ein Eintrag mit dem Wert 1 im Feld V wahlweise aus der Pfadtabelle 30 ausgelesen, die dem Nutzerprozeß zugeordnet ist, die den Systemaufruf ausgeführt hat. Dann wird der Wert 0 in dieses Feld V eingeschrieben, und die Nummer des Clusters, in dem der festgestellte Prozeß existiert, wird in das Feld CL eingeschrieben. Darüber hinaus wird Information zum Erhalten der reellen Adresse aus der virtuellen Adresse im virtuellen Raum, der eindeutig dem zugeordneten Prozeß entspricht, gesetzt, und es wird die Eintragungsnummer der Pfadtabelle in der Adreßübersetzungsschaltung 999 gesetzt, und die Eintragungsnummer wird an den Nutzerprozeß übergeben. Anders gesagt wird die Eintragungsnummer der Pfadtabelle 530c der Wert für den Pfad.If a cluster is found where the process with the given name exists, an entry with the value 1 in field V will optionally be in the path table 30 which is associated with the user process that executed the system call. Then, the value 0 is written in this field V, and the number of the cluster in which the detected process exists is written in the field CL inscribed. Moreover, information for obtaining the real address from the virtual address in the virtual space that uniquely corresponds to the associated process is set, and it becomes the entry number of the path table in the address translation circuit 999 is set, and the registration number is passed to the user process. In other words, the entry number of the path table becomes 530c the value for the path.

Infolgedessen kann die Adreßübersetzungsschaltung 999 die reelle Adresse auf Grundlage des Wertes für den Pfad und der virtuellen Adresse des virtuellen Raums, der dem Pfadwert entspricht, erhalten. Die Adreßübersetzungsschaltung 99 kann mit herkömmlicher Technik strukturiert sein.As a result, the address translation circuit 999 the real address is obtained based on the value for the path and the virtual address of the virtual space corresponding to the path value. The address translation circuit 99 can be structured using conventional technology.

Es wird nun die Abarbeitung des Fernspeicherungsbefehls erklärt.It Now the execution of the remote storage command will be explained.

* Ausführung des Fernspeicherungsbefehls durch den Nutzerprozeß* Execution of the remote storage command through the user process

Zunächst wird der Befehl gemäß dem Feld 511-2 des PSW 511 in der Ausführungssteuerschaltung 510 aus dem Hauptspeicher 505 gelesen, und der Befehl wird im Befehlsregister 512 gespeichert. Dieser Befehl ist ein nichtprivilegierter Befehl, weswegen die Privilegbefehlausführungsentscheidungsschaltung 522 kein Ausgangssignal erzeugt. Der Befehlsdekoder 513 dekodiert den Betriebskode, wie er im Feld OP des Befehlsregisters 512 gespeichert ist. Wenn sich herausstellt, daß der gelesene Befehl der Fernspeicherbefehl ist, wird ein Signal auf die Leitung L3 ausgegeben, und es wird die folgende Serie von Abläufen gestartet.First, the command is according to the field 511-2 of the PSW 511 in the execution control circuit 510 from the main memory 505 read, and the command is in the command register 512 saved. This command is a nonprivileged command, therefore the privilege command execution decision circuit 522 no output signal generated. The command decoder 513 decodes the operation code as it does in the OP field of the instruction register 512 is stored. If it turns out that the read command is the remote memory command, a signal is output on the line L3 and the following series of operations are started.

* Erste Überprüfung* First review

Der Wert für den Pfad, wie er im ersten Operanden gespeichert wird, und der Wert, wie er im Pfadtabellenbasisregister 514 gespeichert ist, werden durch den Addierer 516 zusammengezählt, um die Eintragungsadresse zu erhalten, die dem Pfad in der Pfadtabelle 530c entspricht. Das Ergebnis der Eingabeadresse wird an die Leseschaltung 520 ausgegeben. Diese greift auf den Hauptspeicher 505 auf Grundlage der Eintragungsadresse zu, wie sie von dem Addierer 516 ausgegeben wird, nachdem sie ein Signal über die Leitung L3 empfangen hat, und sie erzeugt ein Signal auf der Leitung L4, wenn der Wert im Feld V des Eintrags 1 ist.The value for the path as stored in the first operand and the value as in the Path Table Base Register 514 is stored by the adder 516 summed up to get the entry address that matches the path in the path table 530c equivalent. The result of the input address is sent to the read circuit 520 output. This accesses the main memory 505 based on the entry address as given by the adder 516 after having received a signal via the line L3 and generates a signal on the line L4 when the value in the field V of the entry 1 is.

Dann wird der Wert für den Pfad, wie er im ersten Operanden gespeichert ist, durch den Vergleicher 517 mit dem Inhalt des Pfadtabellenlängenregisters 515 verglichen. Wenn der Wert für den Pfad größer ist als der Inhalt des Pfadtabellenlängenregisters 515, was durch den Vergleich festgestellt wird, wird ein Signal auf der Leitung L12 ausgegeben.Then the value for the path as stored in the first operand is passed through the comparator 517 with the contents of the path table length register 515 compared. If the value for the path is greater than the contents of the path table length register 515 , which is determined by the comparison, a signal is output on the line L12.

Auf Grundlage der Signale auf den Leitungen L3, L4 und L12 entscheidet die Zugriffungültigentscheidungsschaltung 523, ob der durch diesen Befehl für den Pfad angegebene Wert für Datenübertragung gültig ist oder nicht. Wenn der Wert ungültig ist, erzeugt die Entscheidungsschaltung 523 ein Ausgangssignal für die Ausführungssteuerschaltung 520. Der Ungültigkeitsfall liegt dann vor, wenn ein Signal mindestens auf einer der Leitungen L4 und L12 als Ergebnis der Ausführung des Befehls ausgegeben wurde.Based on the signals on the lines L3, L4 and L12, the access decision decision circuit decides 523 Whether or not the data transfer value specified by this command for the path is valid. If the value is invalid, the decision circuit generates 523 an output signal for the execution control circuit 520 , The invalid case is when a signal has been output at least on one of the lines L4 and L12 as a result of executing the command.

Vorstehendes betrifft die erste Überprüfung. Nachdem die Ausführungssteuerschaltung 510 das Signal von der Zugriffungültigentscheidungsschaltung 523 als Ergebnis der ersten Überprüfung erhalten hat, unterdrückt sie die Ausführung dieses Befehls und erzeugt einen Interrupt im Prozessor 501.The above concerns the first review. After the execution control circuit 510 the signal from the access authorization decision circuit 523 As a result of the first check, it suppresses the execution of this command and generates an interrupt in the processor 501 ,

* Zweite Überprüfung* Second review

Auf Grundlage des Signals auf der Leitung L3 wird der Zustand der Sendesteuerschaltung 526 überprüft.On the basis of the signal on the line L3, the state of the transmission control circuit 526 checked.

Wenn sich als Ergebnis der zweiten Überprüfung herausgestellt hat, daß der im Senderegister 534 durch den zuvor ausgeführten Fernspeicherbefehl gesetzte Wert nicht völlig an das Netzwerk 509 übertragen wurde, wird der Bedingungskode im Bedingungskoderegister 519 über die Leitung L13 auf den Wert 1 gesetzt, wodurch die Ausführung dieses Befehls beendigt wird. Wenn der durch den zuvor ausgeführten Fernspeicherbefehl im Senderegister 534 gesetzte Wert völlig an das Netzwerk 509 übertragen wurde, findet der folgende Ablauf statt.If, as a result of the second check, it turns out that the one in the sender register 534 value set by the previously executed remote memory command is not fully connected to the network 509 has been transmitted, the condition code in the condition code register 519 is set to 1 via line L13, completing the execution of this command. If the in the transmit register executed by the previously executed remote memory command 534 set value completely to the network 509 has been transferred, the following procedure takes place.

* Setzen des Feldes CL* Set the field CL

Zunächst greift die Leseschaltung 520 in derselben Weise wie im Fall der ersten Überprüfung auf den Hauptspeicher 505 auf Grundlage der Eintragungsadresse zu, wie sie vom Addierer 516 ausgegeben wird, und gibt den Inhalt des Feldes CL dieses Eintrags an die Leitung L5 aus. Das Senderegister 534c setzt den über die Leitung L5 ausgegebenen Wert im Feld CL auf Grundlage des Signals auf der Leitung L3.First, the reading circuit picks up 520 in the same way as in the case of the first check on the main memory 505 based on the entry address too, as given by the adder 516 is output, and outputs the content of the field CL of this entry to the line L5. The sender register 534c sets the value output via the line L5 in the field CL based on the signal on the line L3.

* Setzen des Feldes RA* Set the field RA

Anschließend werden der Wert für den im ersten Operanden gespeicherten Pfad und die virtuelle Adresse, wie sie im dritten Operanden gespeichert ist, in die Adreßübersetzungsschaltung 999 eingegeben. Diese gibt die reelle Adresse für den Empfangsort der Datenübertragung aus. Das Senderegister 534c setzt den von der Adreßübersetzungsschaltung ausgegebenen Wert im Feld RA auf Grundlage des Signals auf der Leitung L3.Subsequently, the value for the path stored in the first operand and the virtual address as stored in the third operand are written to the address translation circuit 999 entered. This outputs the real address for the receiving location of the data transmission. The sender register 534c sets the value outputted from the address translation circuit in the field RA based on the signal on the line L3.

* Setzen des Datenfeldes* Set the data field

Anschließend übersetzt die Datenübersetzungsschaltung 518 die virtuelle Adresse, wie sie im zweiten Operanden gespeichert ist, in die reelle Adresse und gibt die konvertierte reelle Adresse an die Leseschaltung 521 aus. Diese greift mit der reellen Adresse auf Grundlage des Signals auf der Leitung L3 auf den Hauptspeicher 505 zu und gibt die zu sendenden Daten an das Datenfeld des Senderegisters 534c aus. Dieses setzt die zu sendenden Daten im Datenfeld auf Grundlage des Signals auf der Leitung L3.Subsequently, the data translation circuit translates 518 the virtual address, as stored in the second operand, in the real address and returns the converted real address to the read circuit 521 out. This accesses the main memory with the real address based on the signal on line L3 505 to and gives the data to be sent to the data field of the sender register 534c out. This sets the data to be sent in the data field based on the signal on line L3.

* Datenübertragung* Data transfer

Wenn das Setzen des Senderegisters 534c wie vorstehend ab geschlossen ist, wird über die Leitung L13 der Bedingungskode 0 im Bedingungskoderegister 519 gesetzt, wodurch der Ablauf für diesen Befehl beendet wird. Die Sendesteuerschaltung 526, die das Signal auf der Leitung L3 erhalten hat, beginnt mit dem Senden des Inhalts des Senderegisters 534c an das Netzwerk 509.When setting the station register 534c As is concluded above, via the line L13 of the condition code 0 in the condition code register 519 is set, which ends the process for this command. The transmission control circuit 526 , which has received the signal on the line L3, starts sending the contents of the transmission register 534c to the network 509 ,

Ob das Übertragen an das Netzwerk erfolgreich war oder nicht, kann mit Hilfe eines Verzweigungsbefehls überprüft werden, abhängig vom Wert des Bedingungskodes. Wenn es aus dem Wert des Bedingungskodes ersichtlich ist, das die Übertragung an das Netzwerk nicht erfolgreich war, wird der Befehl erneut ausgeführt.If the transferring to the network was successful or not, with the help of a Branch instruction to be checked dependent from the value of the condition code. If it is from the value of the condition code it can be seen that the transmission the network was unsuccessful, the command will be executed again.

Das Netzwerk 509 überträgt eine Nachricht an die Empfangsschaltung des in der Nachricht angegebenen Clusters, z. B. an die Empfangsschaltung 508c. Infolgedessen werden der Wert für das Feld RA und das Datenfeld des Senderegisters 534c im Feld RA bzw. im Datenfeld des Empfangsregisters 535c durch die Empfangssteuerschaltung 537 gesetzt.The network 509 transmits a message to the receiving circuit of the cluster specified in the message, e.g. B. to the receiving circuit 508c , As a result, the value for the field RA and the data field of the transmission register 534c in the field RA or in the data field of the receive register 535c through the reception control circuit 537 set.

Dann wird der folgende Ablauf ausgeführt.Then the following procedure is executed.

* Schreiben von Daten* Writing data

Die Schreibschaltung 539 gibt den Inhalt des Feldes RA des Empfangsregisters 535c an die Leitung L14 aus und gibt den Inhalt des Datenfeldes des Empfangsregisters 535c an die Leitung L15 aus und schreibt dann den Inhalt des Datenfeldes des Registers 535c in den Datenspeicherbereich 552 des virtuellen Speichers 551, wodurch der Ablauf beendet wird.The writing circuit 539 gives the contents of the field RA of the receive register 535c to line L14 and returns the contents of the data field of the receive register 535c to the line L15 and then writes the contents of the data field of the register 535c in the data storage area 552 of virtual memory 551 , which completes the process.

Die Datenübertragung wird wie vorstehend beschrieben abgeschlossen.The data transfer is completed as described above.

Gemäß dem vorstehenden Ausführungsbeispiel wird der Ablauf in der Empfangsschaltung des Clusters, in dem ein Datenempfangsprozeß abläuft, vereinfacht. Daher wird der Betrieb des Lesens von Daten und des Speicherns von Daten im Hauptspeicher im Vergleich zum Ablauf beim siebten Ausführungsbeispiel schneller, wenn Datenübertragungen von vielen Prozessen auf ein Cluster konzentriert sind. Im Ergebnis kann der Kommunikationsoverhead weiter verringert werden.According to the above embodiment the procedure in the receiving circuit of the cluster in which a Data reception process expires, simplified. Therefore, the operation of reading data and storing data becomes Data in the main memory compared to the procedure in the seventh embodiment faster when transferring data from many processes are concentrated on one cluster. In the result the communication overhead can be further reduced.

Ausführungsbeispiel 9Embodiment 9

Das neunte Ausführungsbeispiel betrifft den Fall, daß ein Prozessor auf eine externe Einrichtung, z. B. eine Ein/Ausgabe-Einrichtung für Daten zugreift.The ninth embodiment concerns the case that a Processor to an external device, e.g. B. an input / output device for data accesses.

Wenn ein Prozessor gemäß dem Stand der Technik Zugriff auf eine externe Dateneinrichtung anfordert, bereitet das Betriebssystem zunächst einen Speicherbereich zum Einschreiben der Daten vor und schützt diesen Speicherbereich davor, daß er seitenweise ausgegeben wird. Zu diesem Zweck ist ein Verfahren vorhanden, gemäß dem der Speicherbereich z. B. im reellen Speicher gesichert wird oder bei dem der Speicherbereich im virtuellen Speicherbereich für die Seitenfixierung gesichert wird. Dann wird ein Befehl einschließlich der Adresse an die externe Einrichtung ausgegeben.If a processor according to the state the technology requests access to an external data device, prepares the operating system first a memory area for writing the data and protects it Memory area before that page by page is issued. For this purpose, a method exists according to which Memory area z. B. is backed up in real memory or at the space in the virtual space for page fix is secured. Then a command including the address to the external Device issued.

Wenn die externe Einrichtung, die den Befehl erhalten hat, die in den Speicher einzuschreibenden Daten vorbereitet hat, schreibt sie die Daten in den oben angegebenen Bereich, der nicht seitenweise ausgegeben wurde.If the external device that received the command that was sent to the Memory has prepared data to be written, she writes the Data in the range given above, not output page by page has been.

Gemäß der vorstehend angegebenen bekannten Technik kann der für die externe Einrichtung vorbereitete Speicherbereich während der Ansprechzeit der externen Einrichtung nicht zum Ausführen des Programms des Prozessors verwendet werden, wenn die Betriebsgeschwindigkeit der externen Einrichtung niedriger ist als diejenige des Prozessors.According to the above the known technique known may be prepared for the external device Storage area during the response time of the external device not to perform the Program of the processor used when the operating speed the external device is lower than that of the processor.

Um dieses Problem zu lösen, gibt das vorliegende Ausführungsbeispiel ein Verfahren an, bei dem kein Problem auftritt, wenn der Speicherbereich, in den die externe Einrichtung Daten einzuschreiben hat, seitenweise ausgegeben wurde.Around to solve this problem, gives the present embodiment a method in which no problem occurs when the memory area, in the external organization has to write data, page by page was issued.

Um dieses Problem zu lösen, kann ein Empfangsabfangpuffer verwendet werden, wie er in Zusammenhang mit dem fünften Ausführungsbeispiel der Erfindung beschrieben wurde. Genauer gesagt, werden die Empfangsschaltung 508 und der Empfangsabfangpuffer 553, wie im fünften Ausführungsbeispiel dargestellt, zwischen die externe Einrichtung und den Prozessor geschaltet.To solve this problem, a receive intercept buffer as described in connection with the fifth embodiment of the invention may be used. More specifically, the receiving circuit 508 and the receive intercept buffer 553 as shown in the fifth embodiment, connected between the external device and the processor.

Wenn der Prozessor auf eine externe Einrichtung zum Schreiben von Daten zugreift, wird der Bereich zum Schreiben der Daten im normalen virtuellen Speicherbereich sichergestellt, und die virtuelle Adresse dieses Bereichs und ein PTO-Befehl (Page Table Origin), der dem virtuellen Raum mit diesem Bereich entspricht, werden an die externe Einrichtung übertragen. Wenn diese den Ablauf zum Lesen, z. B. der Platteneinheit, gestartet hat und zu schreibende Daten vorbereitet hat, überträgt die externe Einrichtung die PTO, die virtuelle Adresse und die Daten an die Empfangsschaltung, die an den Prozessor angeschlossen ist, der die Daten angefordert hat. Dann entscheidet die Empfangsschaltung in derselben Weise wie beim fünften Ausführungsbeispiel, ob der reelle Speicherbereich, der dem virtuellen Speicherbereich entspricht, in den die Daten einzuschreiben sind, durch die Adreßübersetzungsschaltung eine Zuordnung erfahren hat oder nicht. Wenn ein reeller Speicherbereich zugeordnet wurde, werden die Daten in diesen Bereich eingeschrieben. Wenn dagegen ein reeller Speicherbereich wegen des Auslesens einer Seite nicht zugeordnet wurde, wird ein Bereich zugeordnet, der als Empfangsabfangspuffer verwendet werden kann, was auf dieselbe Weise erfolgt wie durch die Adreßerzeugungsschaltung 537 in der Empfangsschaltung 508, und die PTO, die virtuelle Adresse und die Daten werden in diesen Bereich eingeschrieben. Dann erzeugt die Empfangsschaltung einen Interrupt im Prozessor. Im Ergebnis liest der Prozessor den durch die PTO seitenweise ausgegebenen Bereich seitenweise ein (page-in), wie auch die im Empfangsabfangpuffer gespeicherte Adresse, und er schreibt dann die Daten in diesen Bereich ein.When the processor accesses an external device for writing data, the Area for writing the data in the normal virtual memory area, and the virtual address of this area and a page table origin (PTO) command corresponding to the virtual space with this area are transmitted to the external device. If these are the process for reading, z. As the disk unit has started and prepared to write data, the external device transmits the PTO, the virtual address and the data to the receiving circuit, which is connected to the processor that has requested the data. Then, in the same manner as in the fifth embodiment, the receiving circuit judges whether or not the real storage area corresponding to the virtual storage area into which the data is to be written has been allocated by the address translation circuit. If a real memory space has been allocated, the data is written to this area. On the other hand, if a real memory area has not been allocated because of page read-out, an area is allocated which can be used as the receive intercept buffer, in the same way as the address generation circuit 537 in the receiving circuit 508 , and the PTO, the virtual address and the data are written in this area. Then the receiving circuit generates an interrupt in the processor. As a result, the processor pages-in the page output by the PTO, as well as the address stored in the receive intercept buffer, and then writes the data into that area.

Gemäß diesem Ausführungsbeispiel kann der Bereich, in den die externe Einrichtung Daten einschreiben kann, als Bereich für normales Seitenlesen gesetzt werden. Dementsprechend besetzt die externe Einrichtung selbst dann keinen Speicherbereich, der für diese externe Einrichtung während ihrer Ansprechzeit vorgegeben ist, wenn die Betriebsgeschwindigkeit der externen Einrichtung langsamer ist als die Betriebsgeschwindigkeit des Prozessors, so daß der Speicherbereich für die Ausführung des Programms durch den Prozessor verwendet werden kann.According to this embodiment may be the area where the external device will write data can, as an area for normal page reading will be set. Accordingly occupied the external device even then no memory area for this external device during its response time is given when the operating speed the external device is slower than the operating speed of the processor, so that the Memory area for execution the program can be used by the processor.

Gemäß der vorliegenden Erfindung ist es zum Ausführen von Datenübertragungen zwischen Nutzerprozessen erforderlich, die Übertragung zwischen den Betriebssystemen der Cluster zu initialisieren, wenn die Nutzerprozesse zu starten sind. Wenn jedoch tatsächlich Datenübertragung zwischen Nutzerprozessen stattfindet, wenn Daten vom virtuellen Raum des Nutzerprozesses in einem besonderen Cluster in den virtuellen Raum des Nutzerprozesses in einem anderen Raum übertragen werden, können die Daten direkt übertragen werden, ohne daß sie in den Pufferbereich des Betriebssystems kopiert werden. Dementsprechend ist es möglich, Datenübertragung mit einem kleinen Overhead auszuführen, ohne daß nichterforderliche Änderungen im virtuellen Raum des Nutzerprozesses erforderlich sind, die nicht in Zusammenhang mit der Datenübertragung stehen.According to the present Invention is to execute of data transmissions between user processes required, the transfer between the operating systems to initialize the cluster when the user processes start are. If indeed data transfer between user processes takes place when data from the virtual Space of the user process in a special cluster in the virtual Space of the user process can be transmitted in another room, the Transfer data directly be without them be copied to the buffer area of the operating system. Accordingly Is it possible, data transfer with a small overhead, without any unnecessary changes in the virtual space of the user process are needed, not in connection with data transmission stand.

Claims (5)

Intraprozessorkommunikationsverfahren in einem Parallelprozessorsystem mit mehreren Clustern (100), von denen jeder mindestens einen Prozessor (1; 501, 502) und einen von diesem mindestens einen Prozessor zu nutzenden Hauptspeicher (2; 505) aufweist, und mit einem Netzwerk (4; 509) zum Verbinden der mehreren Cluster, wobei mindestens ein Prozeß mit mindestens einem zugeordneten virtuellen Raum innerhalb jedes Clusters ausgeführt wird, unter Steuerung durch ein jedem Cluster zugeordnetes Betriebssystem, und das Intraprozessorkommunikationsverfahren zum Übertragen von Übertragungsdaten von einem einem ersten Cluster zugeordneten Übertragungsursprungsprozeß zu einem einem zweiten Cluster zugeordneten Übertragungsempfangsprozeß durch folgende Schritte gekennzeichnet ist: Sicherstellen eines im Hauptspeicher residenten reellen Kommunikationsbereichs (13) innerhalb jedes Clusters für jeden dem Cluster zugeordneten Prozeß, wobei der reelle Kommunikationsbereich in einen virtuellen Kommunikationsbereich (11) innerhalb des jedem Cluster zugeordneten virtuellen Raums abgebildet wird; Auswählen eines dem Übertragungsempfangsprozeß zugeordneten, reellen Kommunikationsbereichs in dem ersten Cluster, sowie einer virtuellen Schreibeadresse, bei der die Übertragungsdaten innerhalb eines dem Übertragungsempfangsprozeß zugeordneten virtuellen Speichers einzuschreiben sind; Erzeugen eines Pakets in dem ersten Cluster, enthaltend die Übertragungsdaten, einen Übertragungsbereichsidentifizierkode zur Identifizierung des ausgewählten reellen Kommunikationsbereichs und eine Offset-Adresse zur Anzeige des Unterschieds zwischen einer Basisadresse eines dem ausgewählten reellen Kommunikationsbereichs entsprechenden, virtuellen Kommunikationsbereichs und der ausgewählten virtuellen Schreibeadresse; Senden des Pakets vom ersten Cluster zum zweiten Cluster durch das Netzwerk (4; 509); Auslesen einer Basisadresse des ausgewählten reellen Kommunikationsbereichs in dem zweiten Cluster unter Verwendung des in dem empfangenen Paket enthaltenen Übertragungsbereichsidentifizierkodes; Erzeugen einer reellen Adresse innerhalb des reellen Kommunikationsbereichs in dem zweiten Cluster, indem die in dem empfangenen Paket enthaltene Offset-Adresse zu der ausgelesenen Basisadresse addiert wird; und Schreiben der übertragenen Daten in den zweiten Cluster an eine der erzeugten reellen Adresse entsprechenden Stelle im Hauptspeicher.Intra-processor communication method in a multi-cluster parallel processor system ( 100 ), each of which has at least one processor ( 1 ; 501 . 502 ) and a main memory to be used by this at least one processor ( 2 ; 505 ) and with a network ( 4 ; 509 ) for connecting the plurality of clusters, wherein at least one process is performed with at least one associated virtual space within each cluster under the control of an operating system associated with each cluster, and the intra-processor communication method for transmitting transmission data from a transfer originating process associated with a first cluster to a second one Cluster-associated transmission receiving process is characterized by the following steps: ensuring a resident in the main memory real communication area ( 13 within each cluster for each process associated with the cluster, the real communication area being in a virtual communication area ( 11 ) within the virtual space associated with each cluster; Selecting a real communication area associated with the transmission reception process in the first cluster and a virtual write address at which the transmission data is to be written within a virtual memory allocated to the transmission reception process; Generating a packet in the first cluster containing the transmission data, a transmission range identification code for identifying the selected real communication range and an offset address for indicating the difference between a base address of the virtual communication range corresponding to the selected real communication range and the selected virtual write address; Sending the packet from the first cluster to the second cluster through the network ( 4 ; 509 ); Reading out a base address of the selected real communication area in the second cluster using the transmission area identification code included in the received packet; Generating a real address within the real communication area in the second cluster by adding the offset address contained in the received packet to the read base address; and writing the transmitted data into the second cluster to one of the generated real addresses speaking point in the main memory. Verfahren nach Anspruch 1, wobei das Schreiben der Daten ohne Nutzung des Betriebssystems erfolgt.The method of claim 1, wherein the writing of the Data without the use of the operating system. Parallelprozessorsystem mit mehreren Clustern (100) und einem Netzwerk (4; 509) zum Verbinden der mehreren Cluster, wobei mindestens ein Prozeß mit mindestens einem zugeordneten virtuellen Raum innerhalb jedem Cluster ausgeführt wird, unter Steuerung durch ein jedem Cluster zugeordnetes Betriebssystem, dadurch gekennzeichnet, daß jeder Cluster folgendes aufweist: mindestens einen Prozessor (1; 501, 502) und einen von diesem mindestens einen Prozessor zu nutzenden Hauptspeicher (2; 505); einen im Hauptspeicher residenten, reellen Kommunikationsbereich (13) für jeden dem Cluster zugeordneten Prozeß, wobei der reelle Kommunikationsbereich in einen virtuellen Kommunikationsbereich (11) innerhalb des jedem Cluster zugeordneten virtuellen Raums abgebildet wird; eine Einrichtung zum Auswählen eines dem Übertragungsempfangsprozeß zugeordneten, reellen Kommunikationsbereichs (13) in dem ersten Cluster, sowie einer virtuellen Schreibeadresse, bei der die Übertragungsdaten innerhalb eines dem Übertragungsempfangsprozeß zugeordneten virtuellen Speichers einzuschreiben sind; eine Einrichtung zum Erzeugen eines Pakets in dem ersten Cluster, enthaltend die Übertragungsdaten, einen Übertragungsbereichsidentifizierkode zur Identifizierung des ausgewählten reellen Kommunikationsbereichs (13) und eine Offset-Adresse zur Anzeige des Unterschieds zwischen einer Basisadresse eines dem ausgewählten reellen Kommunikationsbereichs (13) entsprechenden, virtuellen Kommunikationsbereichs (11) und der ausgewählten virtuellen Schreibeadresse; eine Einrichtung zum Senden des Pakets vom ersten Cluster zum zweiten Cluster durch das Netzwerk (4; 509); eine Einrichtung zum Auslesen einer Basisadresse des ausgewählten reellen Kommunikationsbereichs (13) in dem zweiten Cluster unter Verwendung des in dem empfangenen Paket enthaltenen Übertragungsbereichsidentifizierkodes; eine Einrichtung zum Erzeugen einer reellen Adresse innerhalb des reellen Kommunikationsbereichs in dem zweiten Cluster, indem die in dem empfangenen Paket enthaltene Offset-Adresse zu der ausgelesenen Basisadresse addiert wird; und eine Einrichtung zum Schreiben der übertragenen Daten in den zweiten Cluster an eine der erzeugten reellen Adresse entsprechenden Stelle im Hauptspeicher.Parallel processor system with multiple clusters ( 100 ) and a network ( 4 ; 509 ) for connecting the plurality of clusters, wherein at least one process is performed with at least one associated virtual space within each cluster under the control of an operating system associated with each cluster, characterized in that each cluster comprises at least one processor ( 1 ; 501 . 502 ) and a main memory to be used by this at least one processor ( 2 ; 505 ); a real memory area resident in main memory ( 13 ) for each process associated with the cluster, wherein the real communication area is in a virtual communication area ( 11 ) within the virtual space associated with each cluster; means for selecting a real communication area associated with the transmission reception process ( 13 ) in the first cluster, and a virtual write address in which the transmission data is to be written within a virtual memory associated with the transmission reception process; means for generating a packet in the first cluster containing the transmission data, a transmission range identification code for identifying the selected real communication range ( 13 ) and an offset address for indicating the difference between a base address of the selected real communication area ( 13 ), virtual communication area ( 11 ) and the selected virtual write address; means for sending the packet from the first cluster to the second cluster through the network ( 4 ; 509 ); means for reading a base address of the selected real communication area ( 13 ) in the second cluster using the transmission area identification code included in the received packet; means for generating a real address within the real communication area in the second cluster by adding the offset address contained in the received packet to the read base address; and means for writing the transmitted data to the second cluster at a location in the main memory corresponding to the generated real address. System nach Anspruch 3, weiterhin umfassend: eine Einrichtung (42, 120) zum Empfangen zweiter Übertragungsdaten, die von einem zweiten Übertragungsursprungsprozeß gesendet wurden, der durch einen anderen Cluster ausgeführt wird, und zum Einschreiben der empfangenen zweiten Übertragungsdaten in einen zweiten reellen Kommunikationsbereich, der dem zweiten Übertragungsempfangsprozeß zugeordnet ist, wie er durch jeden Cluster ausgeführt wird (1).The system of claim 3, further comprising: means ( 42 . 120 ) for receiving second transmission data sent from a second transmission origination process executed by another cluster and writing the received second transmission data into a second real communication area associated with the second transmission reception process performed by each cluster ( 1 ). System nach Anspruch 3 oder 4, weiterhin umfassend: eine Übersetzungseinrichtung (530) die zugeordnet zu jedem ersten Prozeß vorhanden ist, wie er von jedem Cluster ausgeführt wird, und die auf einen Datenübertragungsbefehl anspricht, wie er von jedem ersten Prozeß ausgegeben wird, um einen durch den Befehl vorgegebenen, ersten Prozeßidentifizierkode zur Identifizierung eines zweiten Prozesses innerhalb des Systems, bei dem es sich um einen Übertragungsempfangsort für Übertragungsdaten handelt, zu übersetzen in einen Satz eines Clusteridentifizierkodes, der einem anderen Cluster zugeordnet ist, in dem der zweite Prozeß existiert, sowie in einen Innerhalbclusterprozeßidentifizierkode, der dem zweiten Prozeß zugeordnet ist, um den zweiten Prozeß im zweiten Cluster zu identifizieren; und eine Einrichtung (507), die auf den Datenübertragungsbefehl zum Übertragen des Clusteridentifizierkodes und des Innerhalbclusterprozeßidentifizierkodes an das Netzwerk (4; 509) anspricht, wie sie von der Übersetzungseinrichtung zusammen mit den Übertragungsdaten erhalten werden (17).The system of claim 3 or 4, further comprising: a translation device ( 530 ) associated with each first process as executed by each cluster and responsive to a data transfer command issued by each first process, for issuing a first process identification code predetermined by the instruction for identifying a second process within the system System, which is a transmission data transmission destination, translate into a set of a cluster identifier code associated with another cluster in which the second process exists, and a within cluster process identifier code associated with the second process, the second Identify process in the second cluster; and a facility ( 507 ) to the data transfer command for transmitting the cluster identifier code and the intra-cluster process identifier code to the network ( 4 ; 509 ), as obtained from the translation device together with the transmission data ( 17 ).
DE4208924A 1991-03-20 1992-03-19 Method for communication between processors and parallel processing computers therefor Expired - Fee Related DE4208924B4 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP03-056469 1991-03-20
JP05646991A JP3169624B2 (en) 1991-03-20 1991-03-20 Interprocessor communication method and parallel processor therefor
JP24109491A JP3375649B2 (en) 1991-09-20 1991-09-20 Parallel computer
JP03-241094 1991-09-20

Publications (2)

Publication Number Publication Date
DE4208924A1 DE4208924A1 (en) 1992-09-24
DE4208924B4 true DE4208924B4 (en) 2007-01-11

Family

ID=26397419

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4208924A Expired - Fee Related DE4208924B4 (en) 1991-03-20 1992-03-19 Method for communication between processors and parallel processing computers therefor

Country Status (2)

Country Link
US (1) US5386566A (en)
DE (1) DE4208924B4 (en)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537623A (en) * 1993-03-01 1996-07-16 International Business Machines Corporation Multiple group address recognition
JP3315779B2 (en) * 1993-11-16 2002-08-19 富士通株式会社 File transfer device and file transfer method between disk devices
JPH07262152A (en) * 1994-03-24 1995-10-13 Hitachi Ltd Computer system
JP3322754B2 (en) * 1994-05-17 2002-09-09 富士通株式会社 Parallel computer
JP2793517B2 (en) * 1995-03-22 1998-09-03 甲府日本電気株式会社 Data transfer control device
US5978894A (en) * 1995-11-27 1999-11-02 Hitachi, Ltd. Method of interprocessor data transfer using a network, virtual addresses and paging, a buffer, flags, data transfer status information and user accessible storage areas in main memory
US5963731A (en) * 1995-12-25 1999-10-05 Hitachi, Ltd. Method of assisting execution of plural simulation programs for coupled simulation
US5745781A (en) * 1995-12-26 1998-04-28 International Business Machines Corporation Memoryless communications adapter including queueing and matching primitives for scalable distributed parallel computer systems
US5938746A (en) * 1996-02-29 1999-08-17 Sanyo Electric Co., Ltd. System for prioritizing slave input register to receive data transmission via bi-directional data line from master
US6131141A (en) * 1996-11-15 2000-10-10 Intelligent Computer Solutions, Inc. Method of and portable apparatus for determining and utilizing timing parameters for direct duplication of hard disk drives
US6209041B1 (en) * 1997-04-04 2001-03-27 Microsoft Corporation Method and computer program product for reducing inter-buffer data transfers between separate processing components
AU1843300A (en) * 1998-12-11 2000-06-26 Microsoft Corporation Accelerating a distributed component architecture over a network using a modified rpc communication
JP3376956B2 (en) * 1999-05-14 2003-02-17 日本電気株式会社 Communication device between processors
US6952741B1 (en) * 1999-06-30 2005-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
US6446086B1 (en) 1999-06-30 2002-09-03 Computer Sciences Corporation System and method for logging transaction records in a computer system
US7340426B1 (en) 1999-07-30 2008-03-04 Computer Sciences Corporation Event-triggered transaction processing for electronic data interchange
US6970844B1 (en) 1999-08-27 2005-11-29 Computer Sciences Corporation Flow designer for establishing and maintaining assignment and strategy process maps
US6961708B1 (en) 1999-08-27 2005-11-01 Computer Sciences Corporation External interface for requesting data from remote systems in a generic fashion
JP2001101145A (en) * 1999-09-28 2001-04-13 Fujitsu Ltd Data transfer system for memory distribution type parallel computer
US7359863B1 (en) 1999-09-30 2008-04-15 Computer Sciences Corporation Condition component framework for reinsurance
US7693731B1 (en) 1999-09-30 2010-04-06 Computer Sciences Corporation Business process framework for reinsurance
US7546304B1 (en) 1999-10-29 2009-06-09 Computer Sciences Corporation Configuring keys for use in processing business data
US7353196B1 (en) 1999-10-29 2008-04-01 Computer Sciences Corporation Configuring dynamic database packageset switching for use in processing business transactions
US7356541B1 (en) 1999-10-29 2008-04-08 Computer Sciences Corporation Processing business data using user-configured keys
US6925468B1 (en) 1999-10-29 2005-08-02 Computer Sciences Corporation Configuring systems for generating business transaction reports using processing relationships among entities of an organization
US7693844B1 (en) 1999-10-29 2010-04-06 Computer Sciences Corporation Configuring processing relationships among entities of an organization
US7526487B1 (en) 1999-10-29 2009-04-28 Computer Sciences Corporation Business transaction processing systems and methods
US7363264B1 (en) 1999-10-29 2008-04-22 Computer Sciences Corporation Processing business transactions using dynamic database packageset switching
US7571171B1 (en) 1999-10-29 2009-08-04 Computer Sciences Corporation Smart trigger for use in processing business transactions
US7571107B1 (en) 2000-06-23 2009-08-04 Computer Sciences Corporation System and method for externalization of rules for assessing damages
US7418400B1 (en) 2000-06-23 2008-08-26 Computer Sciences Corporation Internet-enabled system and method for assessing damages
US7430514B1 (en) 2000-06-23 2008-09-30 Computer Sciences Corporation System and method for processing insurance claims using a table of contents
US7095426B1 (en) 2000-06-23 2006-08-22 Computer Sciences Corporation Graphical user interface with a hide/show feature for a reference system in an insurance claims processing system
US7398219B1 (en) 2000-06-23 2008-07-08 Computer Sciences Corporation System and method for displaying messages using a messages table
US7430515B1 (en) 2000-06-23 2008-09-30 Computer Sciences Corporation System and method for externalization of formulas for assessing damages
US7343307B1 (en) 2000-06-23 2008-03-11 Computer Sciences Corporation Dynamic help method and system for an insurance claims processing system
US7644120B2 (en) * 2000-09-15 2010-01-05 Invensys Systems, Inc. Industrial process control data access server supporting multiple client data exchange protocols
US7904318B2 (en) * 2000-10-02 2011-03-08 Computer Sciences Corporation Computerized method and system of determining right of way and liability for an accident
US7963899B2 (en) * 2001-07-13 2011-06-21 The Proctor & Gamble Company Continuous in-line pleating apparatus and process
US7063264B2 (en) * 2001-12-24 2006-06-20 Digimarc Corporation Covert variable information on identification documents and methods of making same
JP4681225B2 (en) * 2001-10-17 2011-05-11 ベプテック インコーポレイテッド How to communicate across operating systems
US7207494B2 (en) 2001-12-24 2007-04-24 Digimarc Corporation Laser etched security features for identification documents and methods of making same
US7694887B2 (en) * 2001-12-24 2010-04-13 L-1 Secure Credentialing, Inc. Optically variable personalized indicia for identification documents
WO2003088144A2 (en) * 2002-04-09 2003-10-23 Digimarc Id Systems, Llc Image processing techniques for printing identification cards and documents
US7824029B2 (en) * 2002-05-10 2010-11-02 L-1 Secure Credentialing, Inc. Identification card printer-assembler for over the counter card issuing
US20040054557A1 (en) * 2002-09-09 2004-03-18 Stefan Wahlbin Computerized method and system for estimating premises liability for an accident
US20040054558A1 (en) * 2002-09-09 2004-03-18 Stefan Wahlbin Computerized method and system for determining claimant status in premises liability for an accident
US20040054556A1 (en) * 2002-09-09 2004-03-18 Stephan Wahlbin Computerized method and system for determining causation in premises liability for an accident
US7672860B2 (en) * 2002-09-09 2010-03-02 Computer Sciences Corporation Computerized method and system for determining the contribution of defenses to premises liability for an accident
US7702528B2 (en) * 2002-09-09 2010-04-20 Computer Sciences Corporation Computerized method and system for determining breach of duty in premises liability for an accident
US7124211B2 (en) * 2002-10-23 2006-10-17 Src Computers, Inc. System and method for explicit communication of messages between processes running on different nodes in a clustered multiprocessor system
US7676387B2 (en) * 2002-10-31 2010-03-09 Computer Sciences Corporation Graphical display of business rules
US20040085357A1 (en) * 2002-10-31 2004-05-06 Childress Allen B. Method of generating a graphical display of a business rule and associated business rule elements
US7451148B2 (en) * 2002-10-31 2008-11-11 Computer Sciences Corporation Method of modifying a business rule while tracking the modifications
US20040088199A1 (en) * 2002-10-31 2004-05-06 Childress Allen B. Method of forming a business rule
US20040088195A1 (en) * 2002-10-31 2004-05-06 Childress Allen B. Method of modifying a business rule
US7689442B2 (en) * 2002-10-31 2010-03-30 Computer Science Corporation Method of generating a graphical display of a business rule with a translation
AU2003298731A1 (en) 2002-11-26 2004-06-18 Digimarc Id Systems Systems and methods for managing and detecting fraud in image databases used with identification documents
US7805321B2 (en) * 2002-11-27 2010-09-28 Computer Sciences Corporation Computerized method and system for estimating liability for an accident from an investigation of the accident
US7895063B2 (en) * 2002-11-27 2011-02-22 Computer Sciences Corporation Computerized method and system for creating pre-configured claim reports including liability in an accident estimated using a computer system
US7660725B2 (en) * 2002-11-27 2010-02-09 Computer Sciences Corporation Computerized method and system for estimating an effect on liability based on the stopping distance of vehicles
US7725334B2 (en) * 2002-11-27 2010-05-25 Computer Sciences Corporation Computerized method and system for estimating liability for an accident using dynamic generation of questions
US7792690B2 (en) * 2002-11-27 2010-09-07 Computer Sciences Corporation Computerized method and system for estimating an effect on liability of the speed of vehicles in an accident and time and distance traveled by the vehicles
US20040102984A1 (en) * 2002-11-27 2004-05-27 Stefan Wahlbin Computerized method and system for estimating liability using recorded vehicle data
US7702529B2 (en) * 2002-11-27 2010-04-20 Computer Sciences Corporation Computerized method and system for estimating an effect on liability using claim data accessed from claim reporting software
US20040103005A1 (en) * 2002-11-27 2004-05-27 Stefan Wahlbin Computerized method and system for estimating monetary damages due to injuries in an accident from liability estimated using a computer system
US7809586B2 (en) * 2002-11-27 2010-10-05 Computer Sciences Corporation Computerized method and system for estimating an effect on liability using a comparison of the actual speed of a vehicle in an accident and time and distance traveled by the vehicles in a merging vehicle accident
US7818187B2 (en) * 2002-11-27 2010-10-19 Computer Sciences Corporation Computerized method and system for estimating liability
EP1614064B1 (en) 2003-04-16 2010-12-08 L-1 Secure Credentialing, Inc. Three dimensional data storage
US20040215494A1 (en) * 2003-04-24 2004-10-28 Wahlbin Stefan L. Method and system for determining monetary amounts in an insurance processing system
US7895064B2 (en) * 2003-09-02 2011-02-22 Computer Sciences Corporation Graphical input display in an insurance processing system
US20050060205A1 (en) * 2003-09-02 2005-03-17 Woods Randall K. Systems and methods for a graphical input display in an insurance processing system
US20050108063A1 (en) * 2003-11-05 2005-05-19 Madill Robert P.Jr. Systems and methods for assessing the potential for fraud in business transactions
US20050192850A1 (en) * 2004-03-01 2005-09-01 Lorenz Scott K. Systems and methods for using data structure language in web services
US20060059021A1 (en) * 2004-09-15 2006-03-16 Jim Yulman Independent adjuster advisor
US7685319B2 (en) * 2004-09-28 2010-03-23 Cray Canada Corporation Low latency communication via memory windows
US7182415B2 (en) * 2005-01-07 2007-02-27 Takahiro Yamada Bookcase and storage unit
JP2007208594A (en) * 2006-02-01 2007-08-16 Seiko Epson Corp Image processor, image processing method, and image processing program
US8010390B2 (en) * 2007-06-04 2011-08-30 Computer Sciences Corporation Claims processing of information requirements
US8010389B2 (en) * 2007-06-04 2011-08-30 Computer Sciences Corporation Multiple policy claims processing
US8000986B2 (en) 2007-06-04 2011-08-16 Computer Sciences Corporation Claims processing hierarchy for designee
US8010391B2 (en) 2007-06-29 2011-08-30 Computer Sciences Corporation Claims processing hierarchy for insured
US20090187428A1 (en) * 2008-01-18 2009-07-23 Frank Scalet Evaluating effectiveness of claims evaluation, assessment, and settlement processes
JP5132339B2 (en) * 2008-01-31 2013-01-30 キヤノン株式会社 Information processing apparatus, control method therefor, and computer program
US8782525B2 (en) * 2011-07-28 2014-07-15 National Insturments Corporation Displaying physical signal routing in a diagram of a system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0326164A2 (en) * 1988-01-29 1989-08-02 Hitachi, Ltd. Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
WO1990005338A1 (en) * 1988-11-02 1990-05-17 Hitachi, Ltd. Virtual computer system having extended memory
US4956771A (en) * 1988-05-24 1990-09-11 Prime Computer, Inc. Method for inter-processor data transfer

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5121487A (en) * 1989-02-21 1992-06-09 Sun Microsystems, Inc. High speed bus with virtual memory data transfer capability using virtual address/data lines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0326164A2 (en) * 1988-01-29 1989-08-02 Hitachi, Ltd. Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
US4956771A (en) * 1988-05-24 1990-09-11 Prime Computer, Inc. Method for inter-processor data transfer
WO1990005338A1 (en) * 1988-11-02 1990-05-17 Hitachi, Ltd. Virtual computer system having extended memory
US5341484A (en) * 1988-11-02 1994-08-23 Hitachi, Ltd. Virtual machine system having an extended storage

Also Published As

Publication number Publication date
DE4208924A1 (en) 1992-09-24
US5386566A (en) 1995-01-31

Similar Documents

Publication Publication Date Title
DE4208924B4 (en) Method for communication between processors and parallel processing computers therefor
DE69022716T2 (en) Multi-computer system with distributed common resources and dynamic and selective duplication of global data and procedures for it.
DE69722512T2 (en) Multi-computer system with a coherence protocol containing the number of answers
DE69023018T2 (en) Processor interrupt control.
DE3685876T2 (en) MASTER SLAVE MICROPROCESSOR SYSTEM WITH A VIRTUAL MEMORY.
DE3114961C2 (en)
DE3689226T2 (en) Multiprocessor system with multi-hierarchical levels.
DE69810654T2 (en) METHOD AND DEVICE FOR MANAGING TRANSACTIONS IN A STATUS WEB ENVIRONMENT THAT SUPPORTS A DECLARATIVE PARADIGMA
DE69233655T2 (en) Microprocessor architecture with the possibility to support several different processors
DE3688893T2 (en) Data transfer and buffer control with multiple process-transparent storage modes.
DE69024078T2 (en) Multi-processor arrangement with duplication of global data and with two stages of address translation units
DE3852928T2 (en) Data processor with A / D converter to convert multiple analog input channels into digital data.
DE3751399T2 (en) Parallel computer with distributed, shared memories and distributed, task-activating circuits.
DE69836778T2 (en) Apparatus and method for remote buffer allocation and management for message transmission between network nodes
DE602004012492T2 (en) DMA control with bus busy time restriction as well as DMA parameter sets for several logical processors
DE69019925T2 (en) Multiprocessor system with distributed common resources and with the duplication of global data.
DE69738101T2 (en) Management of access to objects using three-state references
DE3751164T2 (en) Data processor with various types of interrupt processing.
DE69721394T2 (en) Method and device for a coherence converter with limited memory for connecting computer system coherence domains
DE69131840T2 (en) Process for duplicating shared memory
DE69708933T2 (en) ADDRESS TRANSLATION IN COMPUTER BUS BRIDGE DEVICES
DE2243956A1 (en) MEMORY-PROGRAMMED DATA PROCESSING SYSTEM
DE3741850A1 (en) VERSION UNIT FOR AN I / O PROCESSOR
DE3127349A1 (en) SIGNAL PROCESSING SYSTEM WITH DISTRIBUTED ELEMENTS
DE69329104T2 (en) Method and arrangement for transferring and processing data

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 15/163

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee