JPH02281361A - Interprocessor communication mechanism operating method and multiprocess computer system - Google Patents

Interprocessor communication mechanism operating method and multiprocess computer system

Info

Publication number
JPH02281361A
JPH02281361A JP7794189A JP7794189A JPH02281361A JP H02281361 A JPH02281361 A JP H02281361A JP 7794189 A JP7794189 A JP 7794189A JP 7794189 A JP7794189 A JP 7794189A JP H02281361 A JPH02281361 A JP H02281361A
Authority
JP
Japan
Prior art keywords
message
node
queue
local
receiving
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP7794189A
Other languages
Japanese (ja)
Inventor
P M Hopmans Franciscus
フランシスカス ペトルス マリア ホプマンス
Antoni M Dane Hahn Petrus
ペトルス アントニウス マリア デン ハーン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Philips Gloeilampenfabrieken NV filed Critical Philips Gloeilampenfabrieken NV
Priority to JP7794189A priority Critical patent/JPH02281361A/en
Publication of JPH02281361A publication Critical patent/JPH02281361A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE: To make inter-processor communication mechanism operation flexible by providing an internal queue linked with a start point node at the time of the shortage of memories at a destination mode in a multi-processor computer to be operated as a parallel machine. CONSTITUTION: This method and system consists of a multiprocessor computer system bus 20 and plural nodes 22, 24, 26 and 28 connected to this. At the time of constituting the system and transferring signals between transmission and reception sides, the transmission side queues 34 a message to transmit a signal 36 showing a destination that the message is usable. A destination processor is independently operated and whenever information provided from outside is necessary, makes it wait at an incoming stand-by 38 on the receiving side. When a signal showing to be usable is inputted alter, a desired message 40 is dequeued and an obtained signal acceptance 42 is sent back to the transmission side.

Description

【発明の詳細な説明】 発明の背景 本発明は、分散メモリ及びプロセッサ間通信機構を有し
、並列マシーンとして動作するマルチプロセッサコンピ
ュータシステムに関する。その特徴は、1000個に至
る、あるいはそれ以上の処理素子(ノード)を有するこ
と、メツセージ切換えネットワークにより接続されるこ
と(完全には接続されない)、ネットワークは起点から
宛先へプロセッサを介在させることなくメツセージを転
送すること、分散メモリのみがあり共有メモリはないこ
と、ゲートウェイを介して外界通信がなされること、内
部通信は標準化プロトコルに限定されないことである。
DETAILED DESCRIPTION OF THE INVENTION BACKGROUND OF THE INVENTION The present invention relates to a multiprocessor computer system having distributed memory and interprocessor communication facilities and operating as a parallel machine. Its characteristics are that it has up to 1000 or more processing elements (nodes), that it is connected by a message switching network (not completely connected), and that the network moves from the origin to the destination without intervening processors. It forwards messages, has only distributed memory and no shared memory, external communication is done through gateways, and internal communication is not limited to standardized protocols.

前述の全ての用語は標準的なものであり、改めて定義は
示さない。
All the terms mentioned above are standard and no further definitions are given.

従来の技術の例 かかるシステムのアーキテクチャは、スプリンガー レ
クヂlア フープ イン コンピュータサイエンス、1
987年、227−269頁のW、J、H。
Examples of prior art The architecture of such a system is described in Springer Requilaire Hoop in Computer Science, 1.
W, J, H. 987, pp. 227-269.

J、プ0ンネンペルク他著「ジ アーキテクヂャオブ 
DOOM、I Proc 、ESPRIT−415サマ
ースクール、1986年に記載されている。分散メモリ
であるため、異なるノードで進行中の2つのプロセスは
、起点ノードにある情報を宛先ノードに割当てられたメ
モリヘコビーすることで通信を行なわねばならない。
“The Architecture” by J.P.
DOOM, I Proc, ESPRIT-415 Summer School, 1986. Because of distributed memory, two processes running on different nodes must communicate by copying information from the origin node into the memory allocated to the destination node.

発明の詳細な説明 かかるコピーは、次の2つの通信プリミチプ(つまり基
本動作)に統御される起点ノードと宛先ノードとの間に
メツセージ転送により行なわれる。かかるプリミチブは
各々次の如き意味を有する。
DETAILED DESCRIPTION OF THE INVENTION Such copying is performed by message transfer between a source node and a destination node, which are controlled by two communication primitives: Each such primitive has the following meaning:

a、メツセージmをプロセスRヘセンドする。a. Send message m to process R.

mはRへ供給され、実行プロセス(送信側)は、Rがm
をアクセプトするまで遅延される。ここでm及びrはプ
リミチプのパラメータである。
m is supplied to R, and the executing process (sender)
is delayed until it is accepted. Here, m and r are parameters of the primitip.

b、メツセージをアクセプトする。b. Accept the message.

実行プロセス(受信側)のキューからメツセージを抽出
する。
Extracts a message from the queue of the executing process (receiver).

メツセージがない場合、メツセージの到来するまでレシ
ーバを遅延する。
If there is no message, the receiver is delayed until the message arrives.

より多くのメツセージがある場合には先着順とされる。If there are more messages, it will be on a first-come, first-served basis.

このプリミチブはパラメータを有さない。1111連す
るキューのアクセスは、「アクセプト」のプリミチプを
実行するプロセスに内包される。
This primitive has no parameters. Access to the 1111 consecutive queues is included in the process that executes the "accept" primitive.

以下の記載ではプログラム中に現われるエンティティ及
びステートメントはタイプライタ−の字体で印字され、
他の文字は0−マン体で印字される(後者は特に文字フ
ィールドの間隔を自由にしうる)。
In the following description, entities and statements that appear in a program are printed in typewriter font,
Other characters are printed in 0-man typeface (the latter especially allows for free spacing of character fields).

第1の場合は、各送信側は単一のメツセージのみを送信
し、先行するメツセージがアクセプトされた後に初めて
後続するメツセージを送信するようなものでありうる。
In the first case, each sender may be such that it sends only a single message and only sends a subsequent message after the previous message has been accepted.

しかし以下に一般化したものを説明する。一方各受信側
は、別の処理を待機している多数のメツセージを有しつ
る。
However, a generalization will be explained below. Meanwhile, each receiver has a number of messages waiting for further processing.

本発明の目的は、特に前記のコンピュータシステムを、
宛先ノードでのメモリ不足に耐え、また妥当であると考
えられる限りで最小のネットワークトランザクションを
必要とするのみの柔軟な通信組織が可能となるよう改良
することにある。本発明は、宛先ノードにおけるメモリ
不足の場合のみに起点ノードにリンクする外部キューに
より選択的にのみ補足される宛先ノードにリンクする内
部キューを用いる。つまり前記の補足は緊急手段として
のみ行なわれる。内部キューのリンクと外部キューのリ
ンクについては後述する。本発明によれば、前記の目的
は、分散メモリを有するマルチプロセッサコンピュータ
システムにおけるプロセッサ間通信機構を送信ノードか
ら受信側へメツセージを送信するよう動作せしめる方法
であって、1、第1の局部通信プロセスを有する送信ノ
ード、において、送信プロセスによりメツセージを、前
記メツセージをキューイングするキュー要求で受信ノー
ド内の第2の局部通信プロセスを7ドレスするよう送り
出す段階と: 2 受信ノードの第2の局部通信プロセスにおいて、キ
ュー要求を検出し前記メツセージを記憶することが可能
か不可能かについて第1の局部メモリ機能を検査し:メ
ッセージの記憶が可能な場合には前記メツセージを受信
して前記第1の局部メモリ機能内の待機キューの局部位
置へキューイングし、前記メツセージの受信ノードの受
信プロセス到着の信号を出して前記センダプロセスを持
続せしめるが、メツセージの記憶が不可能な場合には前
記受信を延期して前記メツセージを送信ノードの第2の
局部メモリI能における待機キューの非局部的な第2の
位置で保持し、前記メツセージの受信プロセスでの未決
性の信号を出し:メッセージの記憶が可能な場合でも不
可能な場合でもキューの最も新しい未決メツセージを保
有するノードの第1の適用可能な局部通信プ[1セスヘ
キユー中の次に続くメツセージを保有するノードを指定
するリンク標示を信号で送る段階と; a 受信ノードにおいて前記受信プロセスにより前記到
着又は前記未決性の信号を待機後待機キューの最も以前
に活性化されたメツセージをアクセスしてその局部性又
は非局部性を検出し、局部性の場合は前記待機キューか
らそのメツセージを前記受信プロセスで処理するようデ
キューイングしてアクセプトし、非局部性である場合は
メツセージをデキューイングしてキューの最も以前に未
決とされたメツセージを保有するノードの第2の適用可
能な通信プロセスをIIImシて後者のメツセージを出
力せしめ、その出力の際に前記受信プロセスにより処理
するように出力されるメツセージをアクセプトする一方
でこのようにしてキューから受信されたメツセージを非
活性化し;前記処理後空となるまでキューを再アクセス
する段階と=4、受信ノードにおいて前記アクセプトの
後第2の適用可能な局部通信プロセスへそのノードの送
信プロセスが持続するようアクノレジ信号を送信する段
階とからなる、プロセッサ間通信機構動作方法を提供す
ることで達成される。
The object of the invention is, in particular, to provide a computer system as described above.
The objective is to provide an improved and flexible communications organization that can withstand memory shortages at the destination node and that requires only the minimum network transactions considered reasonable. The present invention uses an internal queue linking to the destination node that is only selectively supplemented by an external queue linking to the origin node only in case of memory shortage at the destination node. In other words, the above-mentioned supplements are to be carried out only as an emergency measure. The internal queue link and external queue link will be described later. According to the invention, the object is a method for operating an interprocessor communication mechanism in a multiprocessor computer system with distributed memory for transmitting a message from a sending node to a receiving side, comprising: 1. a first local communication; at a transmitting node having a process, sending a message by the transmitting process to a second local communication process in the receiving node with a queue request for queuing the message; In the communication process, detecting a queue request and checking a first local memory function as to whether it is possible or not to store said message; and if storing said message is possible, receiving said message and checking said first local memory function; queue to a local location in a waiting queue in the local memory facility of the message receiving node to sustain the sending process by signaling the arrival of the receiving process at the receiving node; postponing and holding said message in a non-local second location of a waiting queue in a second local memory capacity of the sending node, signaling pendingness in the receiving process of said message: storage of the message; The first applicable local communications program of the node holding the most recent pending message in the queue, whether possible or not, signals a link indicator specifying the node holding the next subsequent message in the queue. a) at a receiving node, after waiting for the arrival or pending signal by the receiving process, accessing the least recently activated message in the waiting queue to detect its locality or non-locality; In the case of locality, the message is dequeued and accepted from the waiting queue to be processed by the receiving process, and in the case of non-locality, the message is dequeued and the message that was previously pending in the queue is accepted. A second applicable communication process of the possessing node is caused to output the latter message, and upon its output it accepts the output message for processing by said receiving process while in this way deactivating the message received from; re-accessing the queue until it is empty after said processing; This is achieved by providing a method of operating an inter-processor communication mechanism comprising the steps of: transmitting an acknowledge signal to persist.

かかる方法は、マルチプロセッサコンピュータシステム
における分散メモリ及びプロセッサ間通信機構を有する
多重プロセスコンピュータシステムであって、前記シス
テムは送信ノードがら受信ノードヘメッセージを伝送し
、 1、第1の局部通信プロセス手段を有する送信ノードに
おけるメツセージを送り出す送信プロセス手段と、前記
送信ノードは前記メツセージをキューイングするキx−
41求により受信ノード内の第2の局部通信プロセス手
段をアドレスするアドレス手段を有し: 2 前記第2の局部通信プロセス手段における前記キュ
ー!!求を検出する第1の検出手段と、前記メツセージ
を記憶することが可能か不可能かについて受信ノードの
第1の局部メモリ機能を検査する検査手段と、前記検査
手段から供給を受け、メツセージの記憶が可能な場合に
は前記メツセージを受信して前記第1の局部メツセージ
機能内の待機キュー手段の局部位置へキューイングし前
記メツセージの前記受信ノードの受信プロセス手段への
到着信号を発生し、アクノレジ信号を前記送信ノードへ
送って鋺配送信プロセス手段を持続せしめる局部キュー
制御手段と;前記検査手段から供給を受けてメツセージ
の記憶が不可能な場合、前記メツセージを阻止して送信
ノードの第2の局部メモリ機能内の待機キュー手段の非
局部位置へキューイングし、後者のメツセージについて
受信プロセス手段への未決性の信号を発生する非局部キ
ュー制御手段と;前記検出手段の何らかの出り信号のv
IIIIIを受けてキューの最も近く先行するメーツセ
ージを保有する任意のノードの第1の適用可能な局部通
信プロセス手段へキュー中の次に続くメツセージを保有
するノードを指定するリンク表示信号を送る連鎖手段と
: a 前記受信ノードの受信プロセス手段中の、前記到着
又は前記未決性の信号発生を待機後待機キュー手段の最
も以前に活性化された位置をアクセスし、それが局部的
か非局部的かを検出する第2の検出手段と:前記第2の
検出手段から供給を受け局部的である場合に前記受信プ
ロセス手段にて処理するよう前記待機キュー手段から前
記最も以前に活性化された位置をデキューイングしてア
クセプトする第1のデキュー手段と:前記第2の検出手
段から供給を受けて非局部的である場合に前記最も以前
に活性化された位置のメツセージをデキューイングし、
キューの最も以前の未決メツセージを保有する任意のノ
ードの第2の適用可能な局部通信プロセス手段を制御し
て後者のメツセージを出力せしめ、その出力の際前記受
信プロセス手段で処理するよう出力されるメツセージを
アクセプトする一方このようにして4−1−から受信さ
れたメツセージを非活性化し、前記処理後キューが空に
なるまで前記第2の検出手段を再作動する第2のデキュ
ー手段と; 4、受信ノード内にあり、前記アクセプト後にノードの
センダプロセス手段が持続するようアクノレジ信号を第
2の適用可能な局部通信プロセス手段へ伝送するアクノ
レジ手段とからなる多重プロセスコンビ1−タシステム
により実現されるのが有利である。
Such a method includes a multi-process computer system having a distributed memory and inter-processor communication mechanism in a multi-processor computer system, the system transmitting a message from a sending node to a receiving node, the system comprising: 1. a first local communication process means; a transmitting process means for transmitting a message at a transmitting node, said transmitting node having a key x- for queuing said message;
and address means for addressing a second local communication process means in the receiving node by requesting: 2 the queue ! ! first detection means for detecting a request for a message; testing means for testing a first local memory function of the receiving node as to whether it is possible or impossible to store said message; receiving said message if storage is possible and queuing it to a local location of a waiting queue means in said first local message function and generating an arrival signal of said message to receiving processing means of said receiving node; local queue control means for sending an acknowledge signal to said sending node to sustain the dispatching process means; provided by said checking means to block said message and to cause the sending node's non-local queue control means for queuing to a non-local location of the waiting queue means in the local memory function of 2 and generating a signal of incompletion to the receiving processing means for the latter message; any output signal of said detection means; v of
chaining means for sending a link indication signal designating the node holding the next succeeding message in the queue to the first applicable local communication process means of any node holding the nearest preceding message in the queue in response to III. and: a accessing the most previously activated position of the waiting queue means after waiting for said arrival or said pending signal generation in the receiving processing means of said receiving node, and determining whether it is local or non-local; a second detecting means for detecting: detecting the most previously activated position from the waiting queue means for processing in the receiving processing means if locally supplied from the second detecting means; a first dequeue means for dequeuing and accepting a message at the most previously activated location if supplied from the second detection means;
controlling the second applicable local communication processing means of any node holding the oldest pending message in the queue to output the latter message, which upon output is output for processing by said receiving processing means; second dequeuing means for accepting messages while deactivating messages thus received from 4-1- and reactivating said second detection means until said queue is empty after processing; 4. , in the receiving node, for transmitting an acknowledge signal to a second applicable local communication process means such that the sender process means of the node persists after said acceptance. is advantageous.

ハードウェア環境の説明 第1図は本発明によるマルチプロセッサコンピュータシ
ステムの簡単なブロック図である。ネットワークは、ス
テーションつまりノード22・・・28を連結するバス
20として稼*gれる。本発明が通信のバスに開運する
制限に関しない限り他のネットワークシステムを用いる
こともできる。
Description of the Hardware Environment FIG. 1 is a simplified block diagram of a multiprocessor computer system in accordance with the present invention. The network operates as a bus 20 connecting stations or nodes 22...28. Other network systems may be used insofar as the present invention does not concern the limitations imposed on communication buses.

従って簡単のために、電圧レベル、ビット形状。Therefore, for simplicity, voltage level, bit shape.

ワードフォーマット、アービタプロトコル、プリアンプ
ル、ポストアンブル等のメツセージフォーマット、エラ
ーハンドリングプロトコル、メツセージ自体の完全な機
能より低い任意のレベルにおけるメツセージハンドシェ
ーキングに関しては詳細を示さない。外界との通信につ
いても詳述しない。
No details are given regarding word formats, arbiter protocols, message formats such as preambles, postambles, etc., error handling protocols, or message handshaking at any level below the full functionality of the message itself. Communication with the outside world is not detailed either.

全てのステーションは、通信プロセス八によりネットワ
ークに接続される。ステーシコンの通信そのもの以外の
機能はプロセスBで表わされている。プロセスBの特徴
については詳述しない。ステーションは互いに等しくあ
ってもよく異なっていてもよい。ステーションは、アレ
イコンピュータにおける如く対応する機能を有してもよ
く、特殊化されていてもよい。ステーシコンは多重プロ
セス組織中の1つのプロセッサであってもよく、またそ
れ自体がマルチプロセツリエンテイテイであってもよ&
)。後者の場合図示の各プロセスは別々のプロセッサに
割り当てられる。各ノード又はステーションは、プロセ
ッサハードウェアの他に、特に図示されてはいないが、
他のどのス、チージョンからも直接アクセスすることは
できないブリピーメモリーを有する。簡単のため、標準
的な部品で実現される場合にはステーションハードウェ
アについてはこれ以上詳細しない。例えばメツセージバ
ッフ?はRAM中で容易に実現しつる。
All stations are connected to the network by communication process 8. The functions of the station controller other than the communication itself are represented by process B. The characteristics of process B will not be described in detail. The stations may be equal to each other or different. A station may have corresponding functionality and may be specialized, such as in an array computer. A station computer may be one processor in a multi-process organization, or it may itself be a multi-process entity.
). In the latter case, each illustrated process is assigned to a separate processor. In addition to processor hardware, each node or station includes:
It has a blipy memory that cannot be directly accessed by any other system. For simplicity, the station hardware will not be described in further detail if implemented with standard components. For example, message buff? can be easily realized in RAM.

言語通信プロトコルの説明 通信プロトコルは、装置が提供する通信プリミティブに
III連してプログラミング言語の通信プリミティブを
提供する。
DESCRIPTION OF LANGUAGE COMMUNICATION PROTOCOL The communication protocol provides programming language communication primitives in conjunction with the communication primitives provided by the device.

本発明では言語モデルの基本プリミティブは、ブ0セス
間の同期メツセージパッシングを提供する。他のプロセ
スとの通信には、−5end−プリミティブ及び −a
ccept−プリミティブのみが用いられるが、それら
は次のようにパスカル的な記法により表現される。本明
細書ではコンビエータ言語パスカルの一般的概念はコン
ピュータ科学の分野ではm準的知識であるとして説明が
行なわれる。
In the present invention, the basic primitives of the language model provide synchronous message passing between processes. For communication with other processes, -5end- primitive and -a
Only the ccept-primitives are used, and they are expressed in Pascalian notation as follows. In this specification, the general concept of the combinator language Pascal will be explained as m-quasi knowledge in the field of computer science.

Proc  5end(ref  prc、ref  
l5O)Proc Accept□:ref isgこ
こで一5end−プリミティブは、2つのパラメータを
有する演算である。第1のパラメータは、特定のプロセ
スを参照又は指定し、第2のl<ラメータは特定のメツ
セージを指定する。
Proc 5end(ref prc, ref
l5O) Proc Accept□:ref isg where -5end-primitive is an operation with two parameters. The first parameter refers to or specifies a particular process, and the second l< parameter specifies a particular message.

−accept−プリミティブは、メツセージの指定を
引き起こす。このメツセージは−accept−プリミ
ティブのパラメータ値ではない。通常−ref−はその
後の項のタイプを示す。
The -accept- primitive causes the specification of a message. This message is not a parameter value of the -accept- primitive. Typically -ref- indicates the type of term that follows.

一5end−プリミティブを実行する前に、プロセスは
、メツセージのデータを保有するメツセージバッフF 
(−rer l5(1−により参照される。慢述の[プ
ロセス及びメツセージ表現」の項を参照。)を用意する
必要がある。プリミティブ−5end(d −m)−は
、メツセージバッフを宛先プロセス−d−へ送り出し、
メツセージが宛先プロセスによりアクセプトされると終
了する。プロセスロケーションは、プロセス指定に含意
されている。様々な送信プロセスが単・−の宛先プロセ
スへ同時に送信することがあるから、通信は多対−の動
作を行なうため、メツセージキューイング機構が必要で
ある。
- Before executing the 5end-primitive, the process stores the message buffer F which holds the data of the message.
(-rer l5 (referenced by 1-, see the "Process and Message Representation" section)). The primitive -5end(d -m)- transfers the message buffer to the destination process. Send it to -d-,
Exits when the message is accepted by the destination process. A process location is implied in a process specification. A message queuing mechanism is necessary because communication is a many-to-many operation, since various sending processes may send to a single destination process simultaneously.

−aCCe9t−プリミティブは、実行プロセスへ、こ
のプロセスへ到着したメツセージを保有するバッファへ
の参照を返す。メツセージは先着順にアクセプトされる
。使用しうるメツセージがないならば、プロセスはメツ
セージがIIIするまで遅延される。
The -aCCe9t- primitive returns to the executing process a reference to the buffer holding the messages that have arrived to this process. Messages will be accepted on a first-come, first-served basis. If no message is available, the process is delayed until message III.

第251は、通信実行のステップの系列を示す。No. 251 shows a sequence of steps for communication execution.

送信側はメツセージをキューイングしく34)、宛先へ
メツセージが使用可能であることを信号で伝える(36
)。宛先プロセスは自立的に動作しえ、外部から供給さ
れる情報が必要な場合は何時でもそれを待機し始める(
38)。待機中に遅かれ早かれ、場合によっては待機し
始まってすぐに、利用可能であるという信号の受信によ
って宛先が目的メツセージ(4(1)のデキューイング
を行なう、これは送信側に信号で伝えられ(42)、送
信側はそれ以上待機しなくてもよいことを知る。
The sender queues the message (34) and signals the destination that the message is available (36).
). The destination process can operate autonomously and starts listening for externally supplied information whenever it needs it (
38). Sooner or later during the waiting, and possibly soon after the waiting has begun, the destination will dequeue the destination message (4(1)) by receiving a signal that it is available, which will be signaled to the sender ( 42), the sender knows that it does not have to wait any longer.

以上の説明は、共有メモリが実際に利用可能である場合
について参考用になされたものである。しかし、以下説
明するii*は共有メモリを有さず、分散メモリのみを
有する。また装置モデルにおいては言語モデルと異なり
、非同期通信であり、送信プロセスは送信先のノードを
示してメツセージをネットワークへ送り出し、プロセス
は継続しうる。ネットワークはメツセージの経路の手配
をして、メツセージを宛先ノードへ送り出す。メツセー
ジを宛先プロセスにアクセス可能とするために、オリジ
ナルのメツセージのコピーがその宛先プロセスのノード
に提供されねばならない。
The above description has been made for reference when shared memory is actually available. However, ii*, which will be described below, does not have a shared memory but only a distributed memory. Also, in the device model, unlike the language model, communication is asynchronous, and the sending process indicates the destination node and sends the message to the network, and the process can continue. The network arranges the route of the message and sends the message to the destination node. In order to make a message accessible to a destination process, a copy of the original message must be provided to the node of the destination process.

装置の基本通信プリミティブから抽象を行なうようプロ
トコルで用いられるプリミティブは、「装置抽摩」の項
で説明されている。付随される言語プロトコルは第3図
に示されている。第3図では、第2図のステップに対応
する種々のステップには同一の参照番号が付されている
。プ【lツク46は起点側に関し、局部プロセス−5e
nder−及び通信プロセス−8vfitel−を有す
る。ブロック48は宛先側に圓し、局部プロセス−re
ceiver−及び通信プロセス−5yste−一を有
する。最初にメツセージ−18g−が宛先に送り出され
て(5(1)、そこでキュー内に置かれるく52)。こ
のことは、vIIIを待機してし1だ(38)局部プロ
セスへ信号で伝えられる(54)。次いで到着したメツ
セージは、宛先キューから取り去られる(4(1)。こ
のことは、起点の通信プロセスへアクノリジとして信号
で伝えられ(58)、起点の特機状態が終了する(44
)。その後新たなタスクが行なわれるようになる。
The primitives used in the protocol to abstract from the basic communication primitives of a device are described in the "Device Abstraction" section. The accompanying language protocol is shown in FIG. In FIG. 3, various steps that correspond to steps in FIG. 2 are given the same reference numerals. The push button 46 is connected to the local process 5e on the origin side.
under- and a communication process -8vfitel-. Block 48 wraps around to the destination side and local process-re
ceiver- and communication process-5yste-1. First the message -18g- is sent to the destination (5(1)) where it is placed in a queue 52. This is signaled to the local process (54) by waiting vIII (38). The arriving message is then removed from the destination queue (4(1)). This is signaled as an acknowledgment to the origin's communication process (58), and the origin's special state ends (44).
). After that, a new task will begin.

プロセス及びメツセージ表現 プロトコル記述は、次のプロセス及びメツセージバッフ
ァの表現を用いる(全てのプロトコルについて同一)。
Process and Message Representation The protocol description uses the following process and message buffer representations (same for all protocols).

プロセス表現: type prc− eCOrd head:rer msa: tail:ref 1811: burcnt:semaphore((1);cont
 1nue:semaphore((1);nd −head−、−tail−及び−bUfcnt−フィ
ールドは、プロセスに送られてきたメツセージ用のメツ
セージのキューを設けるために用いられるーhead−
及び−tail−はメツセージバッファの単一連結リス
トを構築するために用いられ、−burcnt−はキュ
ー上の同期のために用いられる。セマフォーconti
nue −は、他のイベントと同期するのに用いられ、
原則的には本発明には関係しない。セマフォへの操作は
、通信プロセスの分野では標準的な−wait−及び−
s&gnal−(P及びVとも称される)である。セマ
フォの初期値は宣言により決められる。
Process expression: type prc- eCOrd head:rer msa: tail:ref 1811: burcnt:semaphore((1); cont
1nue: semaphore ((1); nd -head-, -tail- and -bUfcnt- fields are used to set up a message queue for messages sent to the process -head-
and -tail- are used to build a singly linked list of message buffers, and -burcnt- is used for synchronization on the queue. semaphore conti
nue − is used to synchronize with other events,
In principle, it is not relevant to the present invention. Operations on semaphores are standard in the field of communication processes -wait and -.
s&gnal- (also referred to as P and V). The initial value of a semaphore is determined by its declaration.

メツセージ表現: type +esg縞 ecard owner:rer prc data:data; src:ref msg。Message expression: type +esg stripes ecard owner:rerprc data: data; src:ref msg.

next:ref msg; nd オーナフィールドはオーナプロセスを特定する。next:ref msg; nd The owner field identifies the owner process.

そのオーナプロセスは、このメツセージバッファがある
ノードに常駐する。−data−フィールドは、メツセ
ージのデータを保有する。他のフィールドは通信プロト
コルにより用いられる一next−は、メツセージバッ
ファの連結リストを構築するのに用いられ、−5rc−
はコピーのオリジナルメツセージのバッファに関する。
Its owner process resides on the node where this message buffer is located. The -data- field holds message data. Other fields are used by the communication protocol; next- is used to build a linked list of message buffers; -5rc- is used to build a linked list of message buffers;
relates to the buffer of the copy's original message.

関数−claim−msg−bun□−及び−allo
c−i+sg butfer□−は、メツセージバッフ
ァをそれが実行されるノードに割当てるのに用いられる
。1番目の関数はバッファが割当てできるまで実行プロ
セスを阻止し、21目の関数はメツセージバッファが利
用しえない場合−nil−を返す。
Functions -claim-msg-bun□- and -allo
c-i+sg buffer□- is used to allocate a message buffer to the node on which it is executed. The first function blocks the execution process until a buffer can be allocated, and the twenty-first function returns -nil- if a message buffer is not available.

関数−node of(ref)−は、参照された項が
とどまるノードの表示を送出する(−ref−は−re
f園sg−及び−rer prc−のタイプでなければ
ならない)。
The function -node of(ref)- sends out an indication of the node where the referenced term remains (-ref- is -re
must be of type f-en-sg- and -rer-prc-).

関数−is 1ocal(ref)−は、参照された項
が関数が呼出されているノードと同一のノードにとどま
る場合trueを返す。関数−current pro
cessO−は、この関数を実行するプロセスへの参照
を返す。
The function -is 1ocal(ref)- returns true if the referenced term remains in the same node as the one on which the function is being called. Function - current pro
cessO- returns a reference to the process executing this function.

装置抽象 低レベルの装置の詳細から抽象を行なうために、遠隔非
同期コール(Res+ote A 5ynchrono
usCall−RAC)と称される古語構造を用いる。
Device AbstractionTo abstract from low-level device details, remote asynchronous calls (Res+oteA
An archaic structure called usCall-RAC is used.

水環ではその構成を略述する。The structure of the water ring is briefly described below.

RACのシンタクスは次の通りである。The syntax of RAC is as follows.

rac<procedure   Cat)>at<n
ode  eXpr>:RACの実行ではまず手続コー
ルのパラメータ表現を評価する。次にノード表現が評価
され、さらにパラメータ及び手続名を有する非同期メツ
セージが構成されてそのノードへ送られる。宛先ノード
は、呼び出された手続を実行する。RACを実行するプ
ロセスは、メツセージ送信直後から動作を継続する。
rac<procedure Cat)>at<n
ode eXpr>: When RAC is executed, the parameter expression of the procedure call is first evaluated. The node representation is then evaluated and an asynchronous message with parameters and procedure name is constructed and sent to that node. The destination node executes the called procedure. The process that performs RAC continues to operate immediately after the message is sent.

RACの有効な構成のためには、宛先ノードにおける動
的プロセス生成及び動的メツセージバッファ割当てを避
けることが重要である。そうすると、ノード毎に1つの
システムプロセスがネットワークから直接入来するRA
Cメツセージを全てアクセプトして手続きを次のRAC
メツセージの7クセプト以前に実行するようにできる。
For effective configuration of RAC, it is important to avoid dynamic process creation and dynamic message buffer allocation at the destination node. Then, one system process per node will receive RAs that come directly from the network.
Accept all C messages and proceed to the next RAC.
It can be made to run before the 7th cept of the message.

かがる効率と優秀性とは、呼び出される手続きが10ツ
キングステートメント(−wa + を−及び−cla
im wsgbuffer−)を含まないことがありう
ることを意味する。
The efficiency and excellence of the call is that the called procedure has 10 calling statements (-wa + - and -cla
im wsgbuffer-).

従って構成から抽象を行なうと、RACステートメント
を実行する効果は、指示された手続コールが結局はアト
エクスプレッションから得られるノードで実行されるこ
とである。RACステートメントを実行するプロセスは
、指示された手続きが実行される以前は持続してよい。
Abstracting from composition, therefore, the effect of executing a RAC statement is that the indicated procedure call is executed on the node that ultimately results from the at-expression. The process of executing RAC statements may persist until the indicated procedure is executed.

RACの使用例として、プロトコル中で使用されるーp
ut−演算の構成を示す。−put−演算は、メツセー
ジMをプロセッサRのメッセージキ1−へ付加する。メ
ツセージは、連結リスト中に置かれ、その存在がセマフ
ォー−bufcnt−に信号で伝えられる。まずRAC
を用いない手続き−put 1ntern−を示す。−
put 1nter’n−は、R及びプロセッサRのキ
ューでの最慢のメツセージの両方が同一ノード(N)に
とどまり、そのノードで実行されることを仮定する。
As an example of the use of RAC, it is used in the protocol.
The configuration of the ut-operation is shown. The -put- operation adds message M to processor R's message key 1-. The message is placed in a linked list and its presence is signaled to the semaphore -bufcnt-. First, R.A.C.
A procedure that does not use -put 1ntern is shown. −
put 1nter'n- assumes that both R and the latest message in processor R's queue remain at the same node (N) and are executed on that node.

proc  put  1ntern(r:ref  
prc):ref  ssg)beg i n if  r→ tai口=nil then r−+headニーm; else  1ink(r  −*rai1.m);f
:; r −+railニーm; signal(r−* bufcnt);nd 1)rOc  1ink(t、s:ref  l5IJ
)beりin t  −+ next: 11s; nd 手続き−put extern−は、Rがとどまるノー
ドNで実行されること、及びギ1−のIIのメツセージ
バッファは一他のノードにとどまることを仮定する。こ
れはつまり、キューの最後のメツセージバッファがノー
ドNによりアクセスされえない(これはメモリが分散さ
れているためである)から、−1ink−手続きでの前
当てがノードNでは実行されえないことを意味する。−
e 1nk−手続きは、最後のメツセージバッフ?(−
「→tail−)がとどまるノードで実行されねばなら
ない。
proc put 1ntern(r:ref
prc):ref ssg) beg in if r→ taimouth=nil then r-+head neem; else 1ink(r-*rai1.m);f
:; r −+rail m; signal(r−* bufcnt); nd 1) rOc 1ink(t, s:ref l5IJ
) be in t - + next: 11s; nd Assume that the procedure - put extern - is executed at node N, where R remains, and that the message buffer of II of Gi 1 - remains at one other node. . This means that since the last message buffer in the queue cannot be accessed by node N (this is because the memory is distributed), the preordering in the -1ink- procedure cannot be performed on node N. means. −
e 1nk-procedure is the last message buffer? (−
``→tail-'' must be executed on the node where it stays.

proc put extern (r:rer  a
rc、merer n+sg)egin ;「「→tail−nil then r4hf!adニー1: 1se rac 1ink(r→tail、*)at node
−of(r−+tail);「i; r →tailニー1; signal(r−+ bc+4cut);nd プロセスは局部的に記憶されたデータのみにアクセスで
きるから、RAC構成は非局部的データとの全てのイン
タラクションに対して用いられねばならず、アルゴリズ
ムはこれにwI息する。以下で はこれらの設計上の制約については明示しない。
proc put extern (r:rer a
rc, merer n+sg) egin; "→tail-nil then r4hf! ad knee 1: 1se rac 1ink (r→tail, *) at node
−of(r−+tail); “i; It must be used for all interactions and the algorithm depends on it.These design constraints will not be explicitly stated below.

以下の説明を簡単にするため、プロセス切換えは限定的
な手続呼び出しの組である同期スケジューリングで行な
われるとする。こうすると手続き呼び出しくスケジュー
リングポイント)[の相互排除が自動的に行なわれる。
To simplify the following explanation, it is assumed that process switching is performed using synchronous scheduling, which is a limited set of procedure calls. In this way, mutual exclusion of procedure calls (scheduling points) is automatically performed.

またスケジューリングは−wait−及び−claim
 msg butter−動作内部でのみ起こる。
Also, scheduling is done using -wait- and -claim.
msg butter - Occurs only within the operation.

宛先バッフ7 メツセージをバッファする一つの方法としては、受信プ
ロセスのノードで使用可能がバッファ空間を設けること
がある。つまりメツセージデータは宛先に送られて宛先
プロセスにおいてバッファされる。
Destination Buffer 7 One method of buffering messages is to have buffer space available at the node of the receiving process. That is, the message data is sent to the destination and buffered in the destination process.

送信側は、宛先プロセスのノードにメツセージバッファ
を割当てて初期化し、これを宛先のキューにおいてその
セマフォー−continue−のアクノレジを待機す
る。
The sender allocates and initializes a message buffer in the destination process's node and waits for an acknowledgment of its semaphore to continue in the destination's queue.

ElrOC5end(r:ref prC,l:rof
 l5(1)beg i n gi −*ownerニーcurrent proce
ss□;rac buRer dest(r、w+、m
 −*data)at node−of(r); Wait(140Wner  −+C0ntinue)
;nd proc buffer dest(rarer pr
c、m:ref msg、d:data) local  b:ref Iso: beg i n bニーat+oc−wag−butter□;b −*
ownerニーr; b→src:富−: b −+data:=d; 1)tlt  1ntern(r、b):nd −alloc asgbutter−を用いるバッファ
割当ては成功すると仮定する。手続き−put tnt
ern−については「戟冒抽象」の項で説明されている
ElrOC5end(r:ref prC, l:rof
l5(1)begingi -*owner current process
ss□;rac buRer dest(r, w+, m
-*data) at node-of(r); Wait(140Wner -+C0ntinue)
;nd proc buffer dest(rarer pr
c, m:ref msg, d:data) local b:ref Iso: begin b knee at+oc-wag-butter□;b -*
owner knee r; b → src: wealth -: b - + data: = d; 1) Assume that the buffer allocation using tlt 1ntern (r, b): nd -alloc asgbutter- is successful. Procedure - put tnt
ern- is explained in the section "Explosive Abstraction".

アクセプトプロセスは、セマフォー−burcnt−で
メツセージを待機する。メツセージが到着すると、この
プロセスはキューからメツセージを検索してメツセージ
の送信側ヘアクセブトしたことを信号で伝える。
The accepting process waits for the message on the semaphore -burcnt-. When a message arrives, this process retrieves the message from the queue and signals that the sender of the message has received the message.

proc Accept□:rer m5g1ocal
  g+:ref msg;r:rer  prc; egin r:=current process□;wait(
r−+ bu4cnt); @:=Qet  1ntern(r):raCackn
owledae(m  −’>5rC)at  nod
e−or(m−+5rc); return(m); nd proc get  1ntern(r:ref pr
c):reflocal  m:ref  msg;e
gin 1:=「→head ; if  r−+head=r−e tailthen 
r−+tail:=nil;else  r−+hea
d:=−−*next;f:; retLlrn(1): SQ nd proc acknowledge(m:ref ms
g)beg i n 5iQnal(II−+  owner→cont;n
ue);nd 評価 宛先バッフ7プロトコルは第4図に示されているが、そ
れは(2つのメツセージの送信に対応する)2つのRA
Cを必要とするのみであり、同期通信アクションとして
最小である。
proc Accept□:rer m5g1ocal
g+:ref msg;r:rer prc;egin r:=current process□;wait(
r-+ bu4cnt); @:=Qet 1ntern(r):raCackn
owledae (m −'>5rC) at nod
e-or(m-+5rc); return(m); nd proc get 1ntern(r:ref pr
c):reflocal m:ref msg;e
gin 1:=”→head; if r-+head=re tailthen
r-+tail:=nil; else r-+hea
d:=--*next; f:; retLlrn(1): SQ nd proc acknowledge(m:ref ms
g)beg i n 5iQnal(II-+ owner→cont;n
ue);nd Evaluation Destination Buffer 7 The protocol is shown in Figure 4, which consists of two RAs (corresponding to the sending of two messages).
It only requires C, and is the minimum synchronous communication action.

欠点としては、プロトコルがメツセージをバッフ?する
のに受信ノードで使用しつるメモリの量が充分にあると
仮定していることがある。ノードでバッファされねばな
らないメツセージの数は一定せずメモリのオーバーフロ
ーが生じる。つまりメモリ容量が必要であるより小さい
ことがある。
On the downside, does the protocol buffer messages? It may be assumed that there is sufficient memory available at the receiving node to do so. The number of messages that must be buffered at a node is variable and memory overflow occurs. That is, the memory capacity may be smaller than necessary.

その優の情況は原則として決められない。このような場
合は宛先バッフ7プロトコルは使用できず別のバッファ
方法が必要となる。
In principle, the circumstances of excellence cannot be determined. In such cases, the destination buffer 7 protocol cannot be used and another buffering method is required.

分散バッフ7 メツセージを送信プロセスのロードにバッファし、送信
側はメツセージを送らずにメツセージ送信の要求を宛先
に伝えるのみであるという別の方法がある。
Distributed Buffer 7 Another method is to buffer the message on the load of the sending process, and the sender only communicates the request to send the message to the destination without sending the message.

proc 5end(r:rat prc、m:ref
■Sa )egin s −+owner:=current−proces
s□;rac put extern(r、m)at 
node or (r);wait(g+−+  ow
ner→continue);nd 手続−put extern−については「@回抽象」
の項で説明されている。
proc 5end(r:rat prc, m:ref
■Sa )egin s −+owner:=current-process
s□;rac put external(r,m)at
node or (r); wait(g+-+ ow
ner→continue);nd For the procedure -put extern-, use "@time abstraction"
It is explained in the section.

アクセプトプロセスは、セマフォーburcnt−でメ
ツセージの到着を待機する。送信側がメツセージの存在
を信号で伝えると、受信側はメツセージバッファを割当
てて初期化し、キューからメツセージ表示を検索し、関
連するメツセージ送信を要求して、−cont 1nu
e−セマフォでメツセージ到着を待機する。
The accepting process waits for the message to arrive on semaphore burcnt-. When the sender signals the presence of a message, the receiver allocates and initializes a message buffer, retrieves the message representation from the queue, requests the associated message transmission, and returns -cont 1nu.
The e-semaphore waits for a message to arrive.

このようにしてキュー情報(−next−フィールド)
は、ノードに分配される。従ってメツセージ送信の際に
は関連する一next−フィールドも宛先へ送られる(
手続き一!1let data−)。しかしキューの最
後のメツセージ(−tail−)のメツセージバッフ?
にはキュー情報は記憶されない。その場合は送信された
キュー情報は無視される。最後のメツセージがキューか
ら検索された場合は(−iS tail−ホールド)、
キ1−は次のスケジュールポイント以前に空にされる(
−「→tailニーn1l−)。これは、次のメツセー
ジがこの待機ステートメント中に到着しうるから必要で
ある(メツセージは新たに最初のメツセージとしてキュ
ーイングされねばならず、要求されているメツセージに
連絡されてはならない)。
In this way the queue information (-next- field)
is distributed to the nodes. Therefore, when sending a message, the associated next-field is also sent to the destination (
First procedure! 1let data-). But the message buffer for the last message (-tail-) in the queue?
No cue information is stored in . In that case, the transmitted queue information will be ignored. If the last message was retrieved from the queue (-iS tail-hold),
Key 1- will be emptied before the next schedule point (
This is necessary because the next message may arrive during this wait statement (the message must be newly queued as the first message, and the requested message (must not be contacted).

メツセージが到着すると、宛先により割当てられている
メツセージバッファに記憶されてから活性化される。宛
先はキュー情報を更新し、メツセージをアクセプトした
ことを送信側へ信号で伝える。
When a message arrives, it is stored in a message buffer allocated by the destination and then activated. The destination updates the queue information and signals to the sender that it has accepted the message.

proc  Accept□:rat  ss。proc Accept□: rat ss.

1ocal l:ref 130 r:ref prs; egin r:=current−process□;Wait(
r−4burcnt); 嘗ニーyet−extern(r): raCacknOWIedl)!(1−)SrC) a
t node−of(■→5rc); nd proc get exturn(r:ref prc
):reflocal  l、  rat asg;i
s tail:boot: egin bニーclaim *sg−buffer();mニー
r−+head; b−+src:舅−; b −sowner ニーr; is tail ニー(r→head−r−+tail
);if is tail then r −*tai
l  ニーnil;fi;raCget date(1
,b) at node−of(m):Wa口(r−*
 cont 1nue) ;it not  1s−t
ail then r−shead ニーb−4neXt:C1
; return(b): nd proc  get  data(s+、  b:re
f  m5a)egin raCptlt data(b、I−)data、l−
+neXt)at node of(b); nd OrOc  Out  data(b:r(if  l
sO,d:data、n:ref  18G)egin b−+data  ニーd; b−+next  ニーn; signal(b−sowner −+continu
e);nd 評価 プロトコルは第5図に示されているが、これはメツセー
ジバッファが宛先バッファにより割当てられているから
メモリオーバーフローに対する抵抗力が強い。メモリオ
ーバーフローの期間中は、オーバーフロー状態が下層の
オペレーティングシステムにより解決されるまでアクセ
プトプロセスは−claimノsg−buffer−関
数において阻止される。
1ocal l:ref 130 r:ref prs; egin r:=current-process□;Wait(
r-4burcnt); (1-)SrC) a
t node-of(■→5rc); nd proc get exturn(r:ref prc
): reflocal l, rat asg;i
s tail: boot: egin b knee claim *sg-buffer(); m knee r-+head; b-+src: father-; b -sowner knee r; is tail knee (r→head-r-+tail
); if is tail then r -*tai
l nee nil;fi;raCget date(1
,b) at node-of(m):Waguchi(r-*
cont 1nue); it not 1s-t
ail then r-head knee b-4neXt:C1
; return(b): nd proc get data(s+, b:re
f m5a) egin raCptlt data (b, I-) data, l-
+neXt)at node of(b); nd OrOc Out data(b:r(if l
sO, d: data, n: ref 18G) egin b-+data need d; b-+next need n; signal(b-sowner −+continue
e);nd The evaluation protocol is shown in FIG. 5, which is more resistant to memory overflows since the message buffer is allocated by the destination buffer. During a memory overflow, the accept process is blocked in the -claim no sg-buffer- function until the overflow condition is resolved by the underlying operating system.

この分散バッファプロトコルの欠点は、宛先バッファプ
ロトコルの2倍である少なくとも4つのRACが同期通
信7クシジンに対して必要であるということである。
The disadvantage of this distributed buffer protocol is that at least four RACs, twice as many as the destination buffer protocol, are required for synchronous communication.

場合によってはさらに一1ink external−
ネットワーク操作を実行する必要がある。レシーバのキ
ューが空である場合は、この操作はなされない。
In some cases, one more ink external-
You need to perform network operations. This operation is not performed if the receiver's queue is empty.

最適バッファ 以下第4図と第5図の両方の利点を組み合わせるよう改
善されたバッファプロトコルについて説明する。それは
殆んど常に伝送されるメツセージ毎に2つのネットワー
ク操作のみで行なわれるが、一方ではメモリオーバーフ
0−に対し充分抵抗力を有する。プロトコルは、まず受
信側においてメツセージをバッファするよう(宛先バッ
ファ)試みるよう設計されている。それが不可能な場合
に、メツセージのバッファが送信側で行なわれる(分散
バラ”27)。
Optimal Buffer An improved buffer protocol is described below that combines the advantages of both FIGS. 4 and 5. It almost always requires only two network operations per transmitted message, while being sufficiently resistant to memory overflows. The protocol is designed to first attempt to buffer the message (destination buffer) at the receiving end. If this is not possible, buffering of the message is performed at the sender (Distribution Bara 27).

一5end−を実行するバッファは常にメツセージをレ
シーバへ伝送してアクノレジを待機する。宛先において
メツセージバッファが割当てできるならメツセージは宛
先でバッファされる。それが不可能ならば分散バッフ1
が行なわれる。その場合メツセージ毎1−は、局部的に
バッフ?されたメツセージと非局部的にバッファされた
メツセージの両方からなる。キュ一部分の良さは本来不
特定である。非局部的にバッファされたメツセージは1
つのノードにも複数の異なるノードにも存在しうる。
A buffer executing 15end always transmits a message to the receiver and waits for an acknowledgement. If a message buffer can be allocated at the destination, the message is buffered at the destination. If that is not possible, distribute buffer 1
will be carried out. In that case, each message is locally buffered? consists of both buffered and non-locally buffered messages. The quality of a part of a cucumber is inherently unspecified. 1 for non-locally buffered messages
It can exist in one node or in several different nodes.

proc  5end(r:ref  prc、會:r
ef  5so)egin t−sowner ニーcurrent proces
s□;rac  buHer−obp(r、(m−>d
ata)atnode of(r); wait(m−+owner −*continue)
;nd proc  buHer obp(r:ref  pr
c):ref  ssg。
proc 5end(r:ref prc, meeting:r
ef 5so)egin t-sowner knee current processes
s□;rac buHer-obp(r, (m->d
ata)atnode of(r); wait(m-+owner-*continue)
;nd proc buHer obp(r:ref pr
c):ref ssg.

d:data) local  b:ref  msg;egin b   :=alloc  msg  buyer□;
Hb=nil then  put(r、m)H else  b−+src:=m; b −*owner:=r; b→data:匂; put(r、b); fi; nd proc  put(r:reg  prc、+*  
ref  msg)beg i n if  is  1ocal(r −+tail)th
en  put  1ntern(r、m);else
 put extern(r、m):f:; nd 受信側は、−bufcnt−セマフォでメツセージをV
i機する。キューが空でないなら−tx−の最初の要素
が局部的にバッファされているか否かを検査される。局
部的にバッファされているなら、ブC1トコルは宛先バ
ッフ7プロトコルに従って働く、そうでないなら分散バ
ッフ7プロトコルが採用される。
d:data) local b:ref msg;egin b:=alloc msg buyer□;
Hb=nil then put(r, m)H else b-+src:=m; b-*owner:=r; b→data:smell; put(r, b); fi; nd proc put(r:reg prc ,+*
ref msg)beg in if is 1ocal(r-+tail)th
en put 1ntern(r, m); else
put extern (r, m): f:; nd The receiving side sends the message to V with the -bufcnt- semaphore.
i machine. If the queue is not empty, it is checked whether the first element of -tx- is locally buffered. If locally buffered, the BCl protocol works according to the destination Buffer7 protocol, otherwise the distributed Buffer7 protocol is adopted.

proc Accept□:ref m5g10Cal
 l:rlJ IsQ; r:ref prc; egin rニーcurrent process□;wait(
r−+ bufcnt); ■:譚get(r); rac acknowledge(g+ −+5rc)
at node of(−→5rc); return(s): nd proc get(r:ref prc):ref m
sgbeg i n if  is  1ocal(r −4head)th
en return(get  1ntern(r))
;else return(oet extern(r
));fi; nd 評価 レシーバのノードに充分メモリがある限りは、宛先バッ
フ7プロトコルが採用される。その場合プロトコルは最
小回数の(つまりメツセージ当り2回の)ネットワーク
転送を引き起こす。
proc Accept□:ref m5g10Cal
l:rlJ IsQ; r:ref prc; egin rnee current process□; wait(
r-+ bufcnt); ■: tan get(r); rac acknowledge(g+ -+5rc)
at node of(-→5rc); return(s): nd proc get(r:ref prc):ref m
sgbeg in if is 1ocal(r-4head)th
en return(get 1ntern(r))
;else return(oet extern(r
));fi; nd As long as the evaluation receiver node has sufficient memory, the destination buffer 7 protocol is adopted. In that case the protocol causes a minimum number of network transfers (ie two per message).

レシーバのノードのメモリがメツセージのバッフ?には
不充分である場合はプロトコルは分散バッファプロトコ
ルに従って働く。従ってネットワーク転送の回数は(メ
ツセージ当り4回に)増加する。
Is the memory of the receiver node a message buffer? is insufficient, the protocol works according to the distributed buffer protocol. The number of network transfers is therefore increased (to 4 per message).

プロトコルが分散バッフ7プロトコルの如く働き始める
とノード間通信の効率は低下する。しかし充分長い期間
がたてば−その問キューの非局部部分を処理するようメ
ツセージ到着速度はメツセージ消費速度を越えない一シ
ステムは宛先バッフ7プロトコルを用いる以前の状態に
復帰する。プロトコルは第6図に示されている。ハツチ
ングが付されているのは、「分散バッファ」の特徴を示
す部分である。
When a protocol starts to behave like a distributed buffer 7 protocol, the efficiency of inter-node communication decreases. However, after a sufficiently long period of time - the message arrival rate does not exceed the message consumption rate to service the non-local portion of its query queue - the system reverts to its previous state using the Destination Buffer 7 protocol. The protocol is shown in FIG. The hatched portions indicate the characteristics of the "distributed buffer."

構成の細目 上記通信システムは、種々のハードウェア上に構成でき
る。特にある秤のコンピュータシステムでは、本発明の
原理を減じるものではない次の拡張のうちの1つまたは
複数を実現する必要がある。
Configuration Details The communication system described above can be configured on a variety of hardware. In particular, certain scale computer systems may need to implement one or more of the following enhancements, which do not diminish the principles of the invention.

しかしそれらはネットワークに特有の他の要件及び自由
度に鑑みて本発明者が最良と態様と考えるものである。
However, these are what the inventor considers to be the best mode in view of other requirements and degrees of freedom specific to the network.

非順序保存ネットワーク かかるネットワークではノードでRACステートメント
が実行される順序は対応する手続が実行される順序と同
一であるとは限らない。OBPにおいては−1ink−
及び−get−data−の実行が入れ換えられて付加
的な同期化が必要となることがある。
Non-Order Preserving Networks In such networks, the order in which RAC statements are executed at a node is not necessarily the same as the order in which the corresponding procedures are executed. In OBP -1ink-
and -get-data- may be swapped, requiring additional synchronization.

簡単のためこの同期化については詳述しない。For simplicity, this synchronization will not be described in detail.

パケット交換ネットワーク このネットワークは、制限された大きさのメツセージで
あるパケットのみを通す。データの大きさがごの制限を
越えると付加的なRへCが必要となる。
Packet-switched network This network only passes packets, which are messages of limited size. If the data size exceeds the limit, additional R to C will be required.

宛先においてRAC呼び出しは、オリジナルのデータを
再構成、つまりリアセンプルしなければならない。メモ
リがオーバーフローする危険があるため、リアセンブリ
管理用のメモリが予め割当てられねばならず、分散管理
が必要となる。
At the destination, the RAC call must reconstruct or reassemble the original data. Because of the risk of memory overflow, memory for reassembly management must be pre-allocated, requiring distributed management.

ネットワークの非順序保存性は単一のメツセージに対応
する手続きの呼びだしが任意の順序で起こりうることを
意味する。
The non-order preserving nature of the network means that calls to procedures corresponding to a single message can occur in any order.

ADA言語様のランデブー機構 メツセージの7クルジメントは、ランデブーが終了する
まで延期される。−acknowledge−パラメー
タリストは、送信側へ送り出されるランデブーの結果を
含むデータパラメータで延長される。
7 Crusade of ADA language-like rendezvous mechanism messages is deferred until the rendezvous is completed. -acknowledge- The parameter list is extended with a data parameter containing the result of the rendezvous sent to the sender.

生産速度υIWaを伴う非同期メツセージパッシング 速度初帥機構は、送られて宛先によりアクセプトされな
いメツセージの数が(バッファスペースのmをtX:I
jl!するため)・一定限度を越えないようにする。構
成ではメツセージが送信されるとインクリメントされ、
メツセージがアクセプトされるデクリメントされるカウ
ンタが用いられる。プロセスが非同期的な送信を行なお
うとしてカウンタが限度を越えると、プロセスはカウン
タが限度より小さくなるか阻止期間が一定の最大値を越
えるまで阻止される。その結果得られるOBPの変形例
では(非同期通信では必要でない) −acknowl
edg−手続きがカウンタのデクリメントの手続きで置
き換えられる。
An asynchronous message passing rate initial mechanism with a production rate υIWa assumes that the number of messages sent and not accepted by the destination is (m of buffer space tX:I
jl!・To ensure that it does not exceed a certain limit. The configuration increments when a message is sent,
A counter is used that is decremented when a message is accepted. If a process attempts to send asynchronously and the counter exceeds the limit, the process is blocked until either the counter becomes less than the limit or the blocking period exceeds a certain maximum value. In the resulting OBP variant (not required for asynchronous communication) -acknowl
The edg-procedure is replaced by a counter decrement procedure.

選択的アクセプト 様々なコンピュータ言語、特にオブジェクトオリエンデ
ッド言語では、メツセージに型が付され、受信プロセス
は現在アクセプトしたいメツセージの型が何であるかを
選択的に表面する。これはつまり、プロセスがメツセー
ジの型缶にメツセージキューを有し、パラメータにはメ
ツセージがアクセプトされうるキ1−を指定する一ge
t−〇〇数が付は加えられ勘ばならないことを意味する
。メツセージが使用できない場合は、−get−関数は
適当なメツセージが到着するまで阻止する。
Selective Acceptance In various computer languages, particularly object-oriented languages, messages are typed and the receiving process selectively reveals what type of message it currently wishes to accept. This means that the process has a message queue in the message type box, and a parameter that specifies the keys under which the message can be accepted.
t-〇〇 number means that it is added and must be considered. If a message is not available, the -get- function blocks until a suitable message arrives.

結論 以上の如く、単純な標準的プロトコルから、非順序保存
、パケット切換えネットワークにおける分散システムに
おいて使用でき、非同期又は同期メツセージ送信等の高
度のプリミティブを有するプログラム言語を用い、アク
セプトプロセスによりメツセージの選択的消費を行なう
通信プロトコルを設計することができる。
Conclusion As can be seen from the above, it is possible to use programming languages that can be used in distributed systems, from simple standard protocols to out-of-order preserving, packet-switched networks, with advanced primitives such as asynchronous or synchronous message sending, and selective transmission of messages through an accept process. Communication protocols that perform consumption can be designed.

最適バッフ7プロトコルによれば、メツセージのパッシ
ングは、充分なメモリがある場合には非常に効率的に行
なわれ、メツセージパッシングがメモリオーバーフロー
を引き起こす場合にも、プログラムは中断されずに継続
できる。実行性能に対するメモリオーバーフローの悪影
響は、オーバーフロー状態が解決されればなくなる。
According to the Optimum Buffer 7 protocol, message passing is very efficient when there is sufficient memory, and the program can continue uninterrupted even if message passing causes a memory overflow. The negative impact of memory overflow on execution performance disappears once the overflow condition is resolved.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明によるマルチプロセッサコンピュータシ
ステムの簡単なブロック図、第2図は言語プロトコルを
表わす図、第3図は第2図の言語プロトコルを表わす図
、第4図は宛先バッフ1プロトコルを示す図、第5図は
分散バッフ7プロトコルを示す図、第6図は組み合わせ
られたバッフ1プロトコルを示す図である。 20−・・バス、22,24.26.28・・・ノード
、34.36.38.40.42.44・・・ステップ
、46.48・・・ブロック。
1 is a simplified block diagram of a multiprocessor computer system according to the present invention; FIG. 2 is a diagram representing the language protocol; FIG. 3 is a diagram representing the language protocol of FIG. 2; and FIG. 4 is a diagram representing the destination buffer 1 protocol. FIG. 5 is a diagram showing the distributed buffer 7 protocol, and FIG. 6 is a diagram showing the combined buffer 1 protocol. 20-...Bus, 22,24.26.28...Node, 34.36.38.40.42.44...Step, 46.48...Block.

Claims (7)

【特許請求の範囲】[Claims] (1)分散メモリを有するマルチプロセッサコンピュー
タシステムにおけるプロセッサ間通信機構を送信ノード
から受信ノードへメッセージを送信するよう動作せしめ
る方法であって、 (a)第1の局部通信プロセスを有する送信において、
送信プロセスによりメッセージを、該メッセージをキュ
ーイングするキュー要求で受信ノード内の第2の局部通
信プロセスをアドレスするよう送り出す段階と; (b)受信ノードの第2の局部通信プロセスにおいて、
キュー要求を検出し該メッセージを記憶することが機能
か不可能かについて第1の局部メモリ可能を検査し;メ
ッセージの記憶が可能な場合には該メッセージを受信し
て該第1の局部メモリ機能内の待機キューの局部位置へ
キューイングし、該メッセージの受信ノードの受信プロ
セス到着の信号を出して該送信プロセスを持続せしめる
が、メッセージの記憶が不可能な場合には前記受信を延
期して該メッセージを送信ノードの第2の局部メモリ機
能における待機キューの非局部的な第2の位置で保持し
、該メッセージの受信プロセスでの未決性の信号を出し
;メッセージの記憶が可能な場合でも不可能な場合でも
キューの最も新しい未決メッセージを保有するノードの
第1の適用可能な局部通信プロセスへキュー中の次に続
くメッセージを保有するノードを指定するリンク表示を
信号で送る段階と; (c)受信ノードにおいて該受信プロセスにより該到着
又は該未決性の信号を待機後待機キューの最も以前に活
性化されたメッセージ1をアクセスしてその局部性又は
非局部性を検出し、局部性の場合は該待機キューからそ
のメッセージを該受信プロセスで処理するようデキュー
イングしてアクセプトし、非局部性である場合はメッセ
ージをデキューイングしてキューの最も以前に未決とさ
れたメッセージを保有するノードの第2の適用可能な通
信プロセスを制御して後者のメッセージを出力せしめ、
その出力の際に該受信プロセスにより処理するように出
力されるメッセージをアクセプトする一方でこのように
してキューから受信されたメッセージを非活性化し;前
記処理後空となるまでキューを再アクセスする段階と; (d)受信ノードにおいて該アクセプトの後第2の適用
可能な局部通信プロセスへそのノードの送信プロセスが
持続するようアクノレジ信号を送信する段階とからなる
、プロセッサ間通信機構動作方法。
(1) A method of operating an interprocessor communication mechanism in a multiprocessor computer system having distributed memory to transmit a message from a sending node to a receiving node, the method comprising: (a) a first local communication process;
sending a message by the sending process to address a second local communication process in the receiving node with a queue request for queuing the message; (b) in the second local communication process of the receiving node;
detecting a queue request and testing the first local memory capability as to whether it is capable of storing the message; receiving the message and checking the first local memory capability if storing the message is possible; queuing the message to a local location in a waiting queue in the receiving node to signal the arrival of the receiving process at the receiving node to sustain the sending process, but postponing said receiving if storage of the message is not possible. retaining the message in a non-local second location of a waiting queue in a second local memory facility of the sending node, signaling pendingness in the receiving process of the message; even if storage of the message is possible; signaling a link indication specifying the node holding the next subsequent message in the queue to the first applicable local communication process of the node holding the most recent pending message in the queue if this is not possible; c) At the receiving node, after waiting for the arrival or pending signal by the receiving process, access the earliest activated message 1 in the waiting queue to detect its locality or non-locality; If so, the node dequeues and accepts the message from the waiting queue for processing by the receiving process, and if it is nonlocal, dequeues the message and holds the most previously pending message in the queue. controlling a second applicable communication process to output the latter message;
deactivating messages thus received from the queue while accepting output messages for processing by the receiving process upon their output; re-accessing the queue until empty after said processing; (d) transmitting an acknowledge signal at a receiving node to a second applicable local communication process so that the transmission process of that node continues after said acceptance.
(2)該送信プロセスはオリジナルのメッセージを第1
の局部通信プロセスへ送り出し、それにより第1の局部
通信プロセスは前記アドレシングを行なうことを特徴と
する請求項1記載のプロセッサ間通信機構動作方法。
(2) The sending process sends the original message to the first
2. The inter-processor communication mechanism operating method according to claim 1, wherein the first local communication process performs the addressing.
(3)メッセージの記憶が可能な場合2つのネットワー
ク動作が該キューイング/アクセプトに伴われることを
特徴とする請求項1又は2記載のプロセッサ間通信機構
動作方法。
3. A method for operating an interprocessor communication mechanism according to claim 1 or 2, characterized in that, if message storage is possible, two network operations are involved in the queuing/accepting.
(4)メッセージの記憶が不可能な場合4つのネットワ
ーク動作が該キューイング/アクセプトに伴われること
を特徴とする請求項3記載のプロセッサ間通信機構動作
回路。
4. The interprocessor communication mechanism operating circuit of claim 3, wherein: (4) four network operations are involved in said queuing/accepting if message storage is not possible.
(5)該キューイングは順序を保存することを特徴とす
る請求項1又は2記載のプロセッサ間通信機構動作方法
(5) The inter-processor communication mechanism operating method according to claim 1 or 2, wherein the queuing preserves order.
(6)該受信ノードは、それぞれのメッセージの型に対
し少なくとも2つのキュー機構を有することを特徴とす
る請求項1又は2記載のプロセッサ間通信機構動作方法
(6) The inter-processor communication mechanism operating method according to claim 1 or 2, wherein the receiving node has at least two queue mechanisms for each message type.
(7)分散メモリ及びプロセッサ間通信機構を有する多
重プロセスコンピュータであって、該システムは送信ノ
ードから受信ノードへメッセージを伝送し、 (a)第1の局部通信プロセス手段を有する送信ノード
におけるメッセージを送り出す送信プロセス手段と、 該送信ノードは該メッセージをキューイングするキュー
要求により受信ノード内の第2の局部通信プロセス手段
をアドレスするアドレス手段を有し; (b)該第2の局部通信プロセス手段における該キュー
要求を検出する第1の検出手段と、該メッセージを記憶
することが可能か不可能かについて受信ノードの第1の
局部メモリ機能を検査する検査手段と、該検査手段から
供給を受け、メッセージの記憶が可能な場合には該メッ
セージを受信して該第1の局部メモリ機能内の待機キュ
ー手段の局部位置へキューイングし該メッセージの該受
信ノードの受信プロセス手段への到着信号を発生し、ア
クノレジ信号を該送信ノードへ送って該送信プロセス手
段が持続せしめる局部キュー制御手段と;該検査手段か
ら供給を受けてメッセージの記憶が不可能な場合、該メ
ッセージを阻止して送信ノードの第2の局部メモリ機能
内の待機キュー手段の非局部位置へキューイングし、後
者のメッセージについて受信プロセス手段への未決性の
信号を発生する非局部キュー制御手段と;該検出手段の
何らかの出力信号の制御を受けてキューの最も近く先行
するメッセージを保有する任意のノードの第1の適用可
能な局部通信プロセス手段へキュー中の次に続くメッセ
ージを保有するノードを指定するリンク表示信号を送る
連鎖手段と; (c)該受信ノードの受信プロセス手段中の該到着又は
該未決性の信号発生を待機後待機キュー手段の最も以前
に活性化された位置をアクセスし、それが局部的か非局
部的を検出する第2の検出手段と;該第2の検出手段か
ら供給を受け局部的である場合に該受信プロセス手段に
て処理するよう該待機キュー手段から前記最も以前に活
性化された位置のメッセージをデキューイングしてアク
セプトする第1のデキュー手段と;該第2の検出手段か
ら供給を受けて非局部的である場合に該最も以前に活性
化された位置のメッセージをデキューイングし、キュー
の最も以前の未決メッセージを保有する任意のノードの
第2の適用可能な局部通信プロセス手段を制御して後者
のメッセージを出力せしめ、その出力の際該受信プロセ
ス手段で処理するよう出力されるメッセージをアクセプ
トする一方このようにしてキューから受信されたメッセ
ージを非活性化し、前記処理後キューが空になるまで該
第2の検出手段を再作動する第2のデキュー手段と; (d)受信ノード内にあり、該アクセプト後のノードの
送信プロセス手段が持続するようアクノレジ信号を第2
の適用可能な局部通信プロセス手段へ伝送するアクノレ
ジ手段とからなる多重プロセスコンピュータシステム。
(7) A multiprocess computer having a distributed memory and interprocessor communication mechanism, the system comprising: (a) transmitting a message at the transmitting node having a first local communication process means; (b) the second local communication process means in the receiving node; (b) the second local communication process means; first detection means for detecting said queue request at said message; testing means for testing said first local memory capability of said receiving node as to whether said message can be stored; , receiving the message and queuing it to a local location of a waiting queue means in the first local memory function, if storage of the message is possible, and signaling the arrival of the message to the receiving processing means of the receiving node. local queue control means for sending an acknowledgment signal to the sending node to cause the sending process means to persist; and being supplied by the checking means to block the message if storage of the message is not possible; non-local queue control means for queuing to a non-local location of a waiting queue means in a second local memory function of the latter and generating a signal of pendingness to the receiving process means for the latter message; any output of said detection means; sending a link indication signal specifying the node holding the next succeeding message in the queue to the first applicable local communication process means of any node holding the nearest preceding message in the queue under control of the signal; (c) after waiting for said arrival or said pending signal generation in said receiving node's receiving processing means, accessing the most previously activated position of the waiting queue means, whether it is local or non-local; a second detecting means for detecting a local; a second detecting means for detecting the most recently activated signal from the waiting queue means for processing in the receiving processing means if the second detecting means is local; a first dequeuing means for dequeuing and accepting a location message; a first dequeuing means for dequeuing and accepting the most previously activated location message if provided by the second detection means; , controlling the second applicable local communication process means of any node holding the oldest pending message in the queue to output the latter message, which upon output is output for processing by the receiving process means; (d) second dequeuing means for accepting messages received from the queue while deactivating messages thus received from the queue and reactivating said second detection means after said processing until the queue is empty; is in the receiving node and sends an acknowledge signal to a second node so that the transmitting process means of the node continues after the acceptance.
an acknowledgment means for transmitting to an applicable local communication process means.
JP7794189A 1989-03-29 1989-03-29 Interprocessor communication mechanism operating method and multiprocess computer system Pending JPH02281361A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7794189A JPH02281361A (en) 1989-03-29 1989-03-29 Interprocessor communication mechanism operating method and multiprocess computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7794189A JPH02281361A (en) 1989-03-29 1989-03-29 Interprocessor communication mechanism operating method and multiprocess computer system

Publications (1)

Publication Number Publication Date
JPH02281361A true JPH02281361A (en) 1990-11-19

Family

ID=13648085

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7794189A Pending JPH02281361A (en) 1989-03-29 1989-03-29 Interprocessor communication mechanism operating method and multiprocess computer system

Country Status (1)

Country Link
JP (1) JPH02281361A (en)

Similar Documents

Publication Publication Date Title
US5036459A (en) Multi-processor computer system with distributed memory and an interprocessor communication mechanism, and method for operating such mechanism
EP0365731B1 (en) Method and apparatus for transferring messages between source and destination users through a shared memory
EP0551242B1 (en) Multiprocessor buffer system
US7117308B1 (en) Hypertransport data path protocol
CN106980582B (en) Data processing method and device
JPH09506727A (en) Message Mechanism for Large Scale Parallel Processing System
JPH06309252A (en) Interconnection interface
US11341087B2 (en) Single-chip multi-processor communication
US5293377A (en) Network control information without reserved bandwidth
JPH0816540A (en) Message communication system for parallel computer
SE515265C2 (en) Systems and methods for processing signal data and communication systems comprising a signal data processing system
JPH0944424A (en) Message transmission method between remote information-processing systems
CN104579863A (en) Data communications network for an aircraft
US10229073B2 (en) System-on-chip and method for exchanging data between computation nodes of such a system-on-chip
JP4391819B2 (en) I / O node of computer system
CN103116527B (en) A kind of ultra-large fence synchronous method based on network controller
US6105071A (en) Source and destination initiated interrupt system for message arrival notification
JPH05227253A (en) Method of exchanging message between shared memory using efficient logical protocol and communication adapter
EP1936514B1 (en) Apparatus and method for controlling issue of requests to another operation processing device
JPH02281361A (en) Interprocessor communication mechanism operating method and multiprocess computer system
US10565004B2 (en) Interrupt and message generation independent of status register content
US6098105A (en) Source and destination initiated interrupt method for message arrival notification
US6098104A (en) Source and destination initiated interrupts for message arrival notification, and related data structures
CN117041186B (en) Data transmission method, chip system, computing device and storage medium
JP3058010B2 (en) Method and apparatus for communication between processors