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 PfadWhen 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.