JPH07219916A - Communication method for parallel computer - Google Patents

Communication method for parallel computer

Info

Publication number
JPH07219916A
JPH07219916A JP6009114A JP911494A JPH07219916A JP H07219916 A JPH07219916 A JP H07219916A JP 6009114 A JP6009114 A JP 6009114A JP 911494 A JP911494 A JP 911494A JP H07219916 A JPH07219916 A JP H07219916A
Authority
JP
Japan
Prior art keywords
data
reception
communication
area
combuf
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
JP6009114A
Other languages
Japanese (ja)
Inventor
Kiyohiro Obara
清弘 小原
Mitsuru Nagasaka
充 長坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6009114A priority Critical patent/JPH07219916A/en
Publication of JPH07219916A publication Critical patent/JPH07219916A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To solve flow control and overwriting problems in the case of the speed up and transmission of transmission process and reception process are overwritings to a reception area. CONSTITUTION:A function for inhibiting data reception to a receiving area, a function for holding data reception and a function for allowing data reception to the receiving area by a receiving process are applied to prevent the generation of overwriting on preceding received data due to the execution of transmission in main storage residentiary communication. When data reception due to communication is generated in a data reception inhibiting state, operation for forced overwriting, data abolition and data holding can be executed. A network interface monitoring mechanism and a timer are provided with a function for informing the close of the network to a processor when the network is closed more than a fixed time due to the holding of received data.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は相互通信網で接続された
並列計算機間でのデータ通信方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data communication method between parallel computers connected by a mutual communication network.

【0002】[0002]

【従来の技術】分散メモリの並列計算機や分散処理シス
テムでは、ノード間のデータ転送の高速化が、システム
全体の処理能力向上に不可欠である。通常、アプリケー
ションプログラムのレベルでは、データ転送は、別ノー
ド上のプロセス間のデータ転送となる。一方、ハードウ
エアのレベルでは、データ転送は、あるノードから指定
されたノードへデータを転送するだけである。すなわ
ち、アプリケーションとハードウエアの機能レベルに
は、プロセス間の転送とノード間の転送の違いがある。
2. Description of the Related Art In a distributed memory parallel computer or a distributed processing system, speeding up data transfer between nodes is indispensable for improving the processing capacity of the entire system. Usually, at the application program level, data transfer is data transfer between processes on different nodes. On the hardware level, on the other hand, data transfer only transfers data from one node to a designated node. That is, there is a difference between the transfer between processes and the transfer between nodes in the function level of the application and the hardware.

【0003】UNIXなどのオペレーティング・システ
ムはこの違いを吸収するために、相手先プロセスの指示
等を行うパケットヘッダの付加/削除やパケットの分解
/組立てや、受信プロセスが非走行中の場合でも走行開
始後にデータ転送を可能にするために、一時的に受信デ
ータを保持するバッファリング等の処理を行っている。
このようなオペレーティング・システムの処理は、汎用
的な通信機能を提供する一方、ソフトウエア的なオーバ
ヘッドを増加させ、通信の高速化の妨げとなっている。
In order to absorb this difference, an operating system such as UNIX adds / deletes a packet header for instructing a destination process, disassembles / assembles a packet, or runs even when the receiving process is not running. In order to enable data transfer after the start, processing such as buffering for temporarily holding received data is performed.
The processing of such an operating system, while providing a general-purpose communication function, increases software overhead and hinders speeding up of communication.

【0004】このようなオーバヘッドを軽減し、高速な
通信を実現する手法として主記憶常駐化通信がある。例
えば、米ウルトラ ネットワーク テクノロジーズ(Ul
traNetwork Technologies)社のUltra Network は、ネ
ットワーク・アダプタ(インタフェース・ハードウェ
ア)とユーザ・アプリケーション空間上の主記憶常駐化
された領域間で直接データ転送を行う機能を提供してい
る。すなわち、主記憶常駐化通信では、送信プロセスと
受信プロセスの通信領域を物理メモリ上に固定常駐し、
送信ノード側の物理メモリから受信ノード側の物理メモ
リへ直接データ転送を行う。常に仮想空間が物理アドレ
ス上にマッピングされているため、送信データがページ
アウトされている場合のページイン処理や、受信データ
を、一旦、バッファリングし、受信プロセスが走行状態
になるまで保存するなどのソフトウエアオーバヘッドが
不要になり、通信の高速化を実現する。
Main memory resident communication is a technique for reducing such overhead and realizing high-speed communication. For example, US Ultra Network Technologies (Ul
UltraNetwork of traNetwork Technologies) provides the function to transfer data directly between the network adapter (interface hardware) and the main memory resident area in the user application space. That is, in the main memory resident communication, the communication area of the sending process and the receiving process is fixedly resident in the physical memory,
Data is directly transferred from the physical memory on the sending node side to the physical memory on the receiving node side. Since the virtual space is always mapped on the physical address, page-in processing when the transmitted data is paged out, received data is buffered once, and stored until the receiving process is in a running state, etc. It eliminates the need for software overhead and realizes faster communication.

【0005】[0005]

【発明が解決しようとする課題】前述の主記憶常駐化通
信方式は、ソフトウエアオーバーヘッドを軽減し、単純
で高速な通信を提供するが、次のような問題点がある。
The above-mentioned main memory resident communication system reduces the software overhead and provides simple and high-speed communication, but has the following problems.

【0006】(1) 受信領域への上書きの回避が困難 主記憶常駐化通信は、送信プロセスの通信領域の内容
を、バッファリング等を行わず、受信プロセスの通信領
域へ直接転送する。すなわち、主記憶常駐化通信の送信
は、送信領域の内容で受信領域を強制的に上書きするこ
とである。このため、処理途中の受信データへの送信プ
ロセスによる上書を、受信プロセスが主導して回避する
ことができない。
(1) Difficult to avoid overwriting in the receiving area In the main memory resident communication, the contents of the communication area of the sending process are directly transferred to the communication area of the receiving process without buffering or the like. That is, the transmission of the main memory resident communication is to forcibly overwrite the reception area with the contents of the transmission area. For this reason, it is impossible for the receiving process to avoid the overwriting by the transmitting process to the received data that is being processed.

【0007】(2)フロー制御が必要不可欠 前述のような上書きの回避、すなわち前回送ったデータ
が処理途中なのに、その上にオーバーライトする状態の
回避には、送信側と受信側でのフロー制御が必要不可欠
である。このため、MIMD(Muliple Instruction Mu
ltiple Data)的な処理を行った場合、データの受け取り
側がデータの流れを制御し、パイプライン的なデータ転
送を主記憶常駐化通信で実現するには、受信側から送信
側へ送信の可否を通知するフロー制御のメッセージが不
可欠でありこれがオーバーヘッドとなっている。
(2) Flow control is indispensable To avoid the above-mentioned overwriting, that is, to avoid the state in which the data sent last time is overwritten while it is in the process of being processed, the flow control on the transmission side and the reception side is performed. Is essential. Therefore, MIMD (Muliple Instruction Mu
(ltiple Data) processing, the data receiving side controls the data flow, and in order to realize pipelined data transfer by main memory resident communication, whether to send from the receiving side to the sending side is required. The flow control message to notify is indispensable and this is an overhead.

【0008】本発明はこれらの問題点を解決することを
目的とする。
The present invention aims to solve these problems.

【0009】[0009]

【課題を解決するための手段】第一の発明では、データ
の送受信領域を物理メモリ上に常駐化させ、その物理メ
モリ間でデータを転送し、送信領域の内容が受信領域へ
上書きされる通信方式において、オペレーティング・シ
ステムが、受信による該受信領域へのデータ転送完了に
より、前記受信領域を受信非許可状態にし、一方、受信
プロセスが、前記通信領域中のデータの処理完了によ
り、前記通信領域を受信許可状態に設定できるようにす
る。そして、受信非許可状態の通信領域へ他の通信によ
るデータ転送が生じた場合、受信したデータを破棄でき
るようにする。
According to the first aspect of the present invention, a communication in which a transmission / reception area for data is made resident in a physical memory, data is transferred between the physical memories, and the contents of the transmission area are overwritten in the reception area. In the method, the operating system sets the reception area to a reception non-permission state upon completion of data transfer to the reception area by reception, while the reception process completes processing of data in the communication area Allows you to set to receive permission. Then, when data transfer by another communication occurs to the communication area in the reception non-permission state, the received data can be discarded.

【0010】第二の発明では、データの送受信領域を物
理メモリ上に常駐化させ、その物理メモリ間でデータを
転送し、送信領域の内容が受信領域へ上書きされる通信
方式において、オペレーティング・システムが、受信に
よる前記受信領域へのデータ転送完了により、前記受信
領域を受信非許可状態にし、一方、受信プロセスが、前
記通信領域中のデータの処理完了により、前記通信領域
を受信許可状態に設定できるようにする。そして、受信
非許可状態の通信領域へ他の通信によるデータ転送が生
じた場合、受信したデータを保留できるようにする。
In a second aspect of the invention, an operating system is used in a communication system in which a data transmission / reception area is made resident in a physical memory, data is transferred between the physical memories, and the contents of the transmission area are overwritten in the reception area. When the data transfer to the reception area is completed by the reception, the reception area is set to the reception non-permission state, while the reception process sets the communication area to the reception permission state when the processing of the data in the communication area is completed. It can be so. Then, when data transfer by another communication occurs to the communication area in the reception non-permission state, the received data can be held.

【0011】第三の発明では、受信データの状態監視の
ため、一定時間受信データが保留された場合に、プロセ
ッサに割り込み等の手段で通知を行う。
In the third invention, in order to monitor the state of the received data, when the received data is held for a certain period of time, the processor is notified by means such as an interrupt.

【0012】[0012]

【作用】本発明の第一の方法によれば、以前送信したデ
ータが処理中にもかかわらず、送信側プロセスによる送
信の実行による、受信データへの上書きの防止を実現で
きる。
According to the first method of the present invention, it is possible to prevent the received data from being overwritten by the execution of the transmission by the transmitting side process even though the previously transmitted data is being processed.

【0013】本発明の第二の方法によれば、受信側から
送信側へ明示的にメッセージによりフロー制御を行わな
くても、データの上書きや損失などを伴わず、受信側が
主導する通信が行える。
According to the second method of the present invention, even if the flow control is not explicitly performed from the receiving side to the transmitting side by the message, the communication initiated by the receiving side can be performed without overwriting or loss of data. .

【0014】本発明の第三の方法によれば、長時間のデ
ータ保留によって生じる相互接続網の閉塞やデットロッ
クを効率的に解消できる。
According to the third method of the present invention, the blockage or deadlock of the interconnection network caused by the long-term data hold can be efficiently eliminated.

【0015】[0015]

【実施例】図1に本発明が対象とする並列計算機システ
ムの構成例を示す。システム全体はノード101をネッ
トワーク102で接続した構成である。各ノード101
は、システムバスにより接続されたプロセッサ104,
主記憶105およびネットワークインタフェースアダプ
タ(以下NIA)103を持つ。またNIAは、調停回
路106,送信回路113,送信バッファ112,受信
回路107,受信バッファ110,DMA回路111,
制御回路108を持ち、任意のノードへのデータ転送が
可能である。制御回路108内には、プロセッサから読
書き可能な制御レジスタ109があり、プロセッサから
NIAへの司令の受け取りや、NIAの状態の出力に用
いられる。制御回路の機能は汎用のマイクロプロセッサ
による実現が可能である。タイマ114は、NIA内の
状態遷移をトリガとしたカウント開始や終了およびそれ
に伴う割込みの出力が可能であり、NIA内の状態の計
測やプロセッサへの状態通知に用いられる。
1 shows an example of the configuration of a parallel computer system to which the present invention is applied. The entire system has a configuration in which nodes 101 are connected by a network 102. Each node 101
Is a processor 104 connected by a system bus,
It has a main memory 105 and a network interface adapter (NIA) 103. The NIA also includes an arbitration circuit 106, a transmission circuit 113, a transmission buffer 112, a reception circuit 107, a reception buffer 110, a DMA circuit 111,
It has a control circuit 108 and can transfer data to any node. A control register 109 readable and writable by the processor is provided in the control circuit 108, and is used for receiving a command from the processor to the NIA and outputting the state of the NIA. The function of the control circuit can be realized by a general-purpose microprocessor. The timer 114 can start and end counting triggered by a state transition in the NIA and output an interrupt accordingly, and is used for measuring the state in the NIA and notifying the processor of the state.

【0016】主記憶常駐化通信とは、送信ノードと受信
ノード間で、送信プロセスの通信領域と受信プロセスの
通信領域を物理メモリ上に固定常駐し、送信ノード側の
物理メモリから受信ノード側の物理メモリへ、ネットワ
ークを通し直接データ転送を行う通信方式である。ここ
で、主記憶に常駐化させた通信領域をCombufと呼ぶ。
In the main memory resident communication, the communication area of the transmitting process and the communication area of the receiving process are fixedly resident in the physical memory between the transmitting node and the receiving node, and the physical memory of the transmitting node side to the receiving node side. It is a communication method that directly transfers data to a physical memory through a network. Here, the communication area made resident in the main memory is called Combuf.

【0017】図2および次にユーザから見た主記憶常駐
化通信の手順を示す。文中の「Combuf_xxx」は、主記憶
常駐化通信を実現するための、ユーザが呼び出すオペレ
ーティング・システム(以下OS)内のルーチンの名前
である。
FIG. 2 and then the main memory resident communication procedure seen from the user. “Combuf_xxx” in the sentence is the name of a routine in the operating system (hereinafter referred to as OS) called by the user for realizing main memory resident communication.

【0018】1)送信側,受信側共にCombuf_open を発
行し、ページ固定領域上にCombufを割り当てる。
1) Combuf_open is issued on both the transmitting side and the receiving side, and Combuf is allocated on the page fixed area.

【0019】2)送信側,受信側共にCombuf_connectを
発行し、送受信ノード間でコネクションを確立する。
2) Both the transmitting side and the receiving side issue Combuf_connect to establish a connection between the transmitting and receiving nodes.

【0020】3)受信側はCombuf_attri_setを発行し、
受信領域の属性を設定する。
3) The receiving side issues Combuf_attri_set,
Set the attributes of the receiving area.

【0021】4)送信側はCombuf_sendを発行し、受信
側へデータを転送する。
4) The transmitting side issues Combuf_send and transfers the data to the receiving side.

【0022】5)受信側はCombuf_process_endを発行
し、受信領域への書込みを許可する。
5) The receiving side issues Combuf_process_end and permits writing to the receiving area.

【0023】6)受信側はCombuf_recvを発行し、デー
タの到着を待つ。
6) The receiving side issues Combuf_recv and waits for the arrival of data.

【0024】7)送信側はCombuf_disconnect を発行
し、受信ノードとの間でコネクションを解除する。
7) The transmitting side issues Combuf_disconnect to release the connection with the receiving node.

【0025】8)送信側,受信側共にCombuf_closeを発
行し、ページ固定領域上にCombufを解放する。
8) Both the transmitting side and the receiving side issue Combuf_close to release Combuf on the page fixed area.

【0026】次にOSにおける各処理の内容を述べる。Next, the contents of each processing in the OS will be described.

【0027】Combuf_open は、指定した大きさのCombuf
をページ固定領域に確保し、そのアドレス、識別子(Com
buf_ID)、アクセス権コードを返す。Combuf_IDは並列計
算機システム全体で一意な値である。またCombuf_open
は、ローカルCombufテーブル(LCT)と呼ばれる、Comb
ufの管理テーブルも更新する。図3にLCTを示す。L
CTは、そのノードが使用している全てのCombufに対す
る、Combuf_ID 701,アクセス権コード702,先頭
物理アドレス703,サイズ704,処理完了フラグ7
05,保護モード706,保留タイムアウト時間707
等の情報をまとめたテーブルである。
Combuf_open is a Combuf of the specified size.
Secured in the page fixed area, and its address and identifier (Com
buf_ID), and returns the access right code. Combuf_ID is a unique value for the entire parallel computer system. See also Combuf_open
Is a Comb called Local Combuf Table (LCT)
The management table of uf is also updated. The LCT is shown in FIG. L
The CT has a Combuf_ID 701, an access right code 702, a start physical address 703, a size 704, and a processing completion flag 7 for all Combufs used by the node.
05, protection mode 706, hold timeout time 707
It is a table that summarizes information such as.

【0028】Combuf_openは、LCTのCombuf_ID70
1,アクセス権コード702,先頭物理アドレス70
3,サイズ704を設定する。
Combuf_open is Combuf_ID 70 of LCT.
1, access right code 702, start physical address 70
3, size 704 is set.

【0029】Combuf_connectは、リモートCombufテーブ
ル(RCT)と呼ぶ、送信先のCombuf_IDを管理するテーブル
に送信先のCombufの情報を登録し、送受信ノード間のコ
ネクションを確立する。図4にRCTを示す。RCT
は、コネクションを確立した相手のCombuf のノード番
号801,Combuf_ID802,アクセス権コード80
3,サイズ804等の情報を格納したテーブルである。
このRCTの登録により、送信先のCombuf をCombuf_ID
で参照することが可能になる。ユーザはこのルーチンの
コールに先立ち、通常の通信により、コネクションを確
立するノード間でCombufの情報を交換する。
Combuf_connect registers information of a destination Combuf in a table called a remote Combuf table (RCT) that manages a destination Combuf_ID, and establishes a connection between the transmitting and receiving nodes. The RCT is shown in FIG. RCT
Is the node number 801, Combuf_ID 802, access right code 80 of the Combuf with which the connection is established.
3 is a table storing information such as size 804.
By registering this RCT, the Combuf of the transmission destination is set to Combuf_ID.
Can be referred to. Prior to calling this routine, the user exchanges Combuf information between the nodes establishing the connection by normal communication.

【0030】Combuf_attri_setは、LCTを参照し、指
定したCombufの保護モード706と保留タイムアウト時
間707を設定する。本発明におけるCombufを用いた送
受信の手順では、データ受信後ユーザがCombuf_process
_endを発行し、対応するLCTの処理完了フラグを「未完
了」から「完了」にしないかぎり、同一のCombufへ続け
てデータの受信を行わない。LCTの保護モード706
は、処理完了フラグが「未完了」の場合に、Combufへの
データの受信が発生した場合の動作を規定している。処
理完了フラグが「未完了」の状態でデータが送信された
場合、OSの受信ルーチンはこの情報に従って受信メッ
セージに対する処理を決定する。保護モードは、強制上
書き,データ破棄およびデータ保留の三種がある。デー
タ保留の選択時には、保留時間も指定する。
Combuf_attri_set refers to the LCT and sets the protection mode 706 and the hold timeout time 707 of the specified Combuf. In the procedure of transmission / reception using Combuf in the present invention, the user receives Combuf_process after receiving the data.
Unless _end is issued and the processing completion flag of the corresponding LCT is changed from “not completed” to “completed”, data is not continuously received in the same Combuf. LCT protection mode 706
Defines the operation when data is received in Combuf when the processing completion flag is “not completed”. When data is transmitted with the processing completion flag in the "incomplete" state, the OS reception routine determines the processing for the received message according to this information. There are three protection modes: forced overwrite, data destruction, and data suspension. When selecting data hold, also specify the hold time.

【0031】Combuf_sendは、他ノードへ指定したCombu
f への内容の送信を行う。データ送信は次の処理を行
う。最初に、送受信Combuf_ID をキーに、LCTおよび
RCTを検索する。これらのテーブルの情報を用いて、
Combuf_send ルーチンでは、送信データが存在する先頭
物理アドレス,データサイズ,相手のノード番号等をN
IAの制御レジスタに書き込み、データ転送の指示を行
う。これを受けてNIAは、指定された領域の内容を目的
のノードへ転送する。
Combuf_send is a Combu specified to another node.
Send the contents to f. Data transmission is performed as follows. First, LCT and RCT are searched using the transmitted / received Combuf_ID as a key. Using the information in these tables,
In the Combuf_send routine, the start physical address where the transmission data exists, the data size, the node number of the partner, etc. are set to N.
The data is written in the control register of the IA to instruct the data transfer. In response, NIA transfers the contents of the specified area to the target node.

【0032】Combuf_process_endは、対応するLCTの
処理完了フラグを「未完了」から「完了」にし、そのCo
mbufへのデータ受信を許可する。本発明におけるCombuf
を用いた送受信の手順では、データ受信後ユーザがComb
uf_process_endを発行し、LCTの受信許可フラグ70
5を「未完了」から「完了」にしないかぎり、同一のCo
mbufへ続けてデータの受信を行わない。ここで、LCT
の受信許可フラグを「完了」にし、受信を許可するのが
Combuf_process_endである。また前記Combufが受信保留
中のデータを持つ場合、Combuf_process_endは、その受
信を再開しデータの書込みの開始を指示する。
Combuf_process_end changes the processing completion flag of the corresponding LCT from "not completed" to "completed", and the Co
Allow receiving data to mbuf. Combuf in the present invention
In the procedure of transmission / reception using the
uf_process_end is issued and LCT reception permission flag 70
Unless 5 is changed from "not completed" to "completed", the same Co
Do not continue to receive data to mbuf. Where LCT
Setting the reception permission flag of "Complete" to permit reception
It is Combuf_process_end. If the Combuf has data pending for reception, Combuf_process_end restarts the reception and gives an instruction to start writing data.

【0033】Combuf_watchは、指定したCombufに対し、
他ノードからのデータ受信の有無を報告する。最後にCo
mbuf_process_endを発行した時点から現時点までのデー
タ受信が対象となる。データの受信処理そのものは、デ
ータの到着により割り込みで起動され、Combuf_watch
等、他の通信処理とは非同期に実行される。
Combuf_watch, for the specified Combuf,
Reports whether data has been received from other nodes. Finally Co
Data reception from the time of issuing mbuf_process_end to the current time is the target. The data reception process itself is activated by an interrupt when the data arrives, and Combuf_watch
Etc. are executed asynchronously with other communication processes.

【0034】Combuf_disconnect は、RCT中から、指
定したCombufの情報を削除することにより、送受信ノー
ド間のコネクションを解除する。
Combuf_disconnect cancels the connection between the transmitting and receiving nodes by deleting the information of the specified Combuf from the RCT.

【0035】Combuf_disconnectは、指定したCombuが使
用していたページ固定領域を解放し、またLCTからそ
のCombufの情報の削除を行う。
Combuf_disconnect releases the page fixed area used by the specified Combu, and deletes the information of the Combuf from the LCT.

【0036】図5に主記憶常駐化通信の送受信時の動作
を示す。送信は、送信プロセスがCombuf_send( )を発行
することにより開始される。これを受けて、オペレーテ
ィングシステムは、LCT・RCTを検索し、送信デー
タが存在する先頭物理アドレス,データサイズ,相手の
ノード番号等をNIAの制御レジスタに書き込み、デー
タ転送の指示を行う。これを受けてNIAは、指定され
た領域の内容を目的のノードへ転送する。
FIG. 5 shows an operation during transmission / reception of main memory resident communication. The transmission is started by the transmission process issuing Combuf_send (). In response to this, the operating system searches the LCT / RCT, writes the starting physical address where the transmission data exists, the data size, the node number of the other party, etc. in the control register of the NIA, and issues a data transfer instruction. In response to this, the NIA transfers the contents of the designated area to the target node.

【0037】一方、データ受信はデータの到着により開
始され、受信プロセスの処理とは非同期に実行される。
On the other hand, data reception is started by the arrival of data and is executed asynchronously with the processing of the receiving process.

【0038】データがNIAに到着すると、NIAはデ
ータのヘッダ部分を主記憶の特定の領域に書込む。ヘッ
ダは転送データの先頭部の固定長データである。ヘッダ
には、送受信各々のプロセッサ番号とプロセス番号,ア
クセス権コード,受信Combuf_ID ,書込アドレスのオフ
セット等が格納されている。ヘッダの書込みが終了する
と、NIAはプロセッサに割込みを発生しデータの到着
およびヘッダの書込み終了を通知する。これを受け、オ
ペレーティング・システムの受信ルーチンが起動する。
When the data arrives at the NIA, the NIA writes the header portion of the data in a specific area of main memory. The header is fixed length data at the beginning of the transfer data. The header stores the processor number and process number of each transmission / reception, access right code, reception Combuf_ID, offset of write address, and the like. When the writing of the header is completed, the NIA issues an interrupt to the processor to notify the arrival of data and the end of writing the header. In response to this, the receiving routine of the operating system is activated.

【0039】受信ルーチンの処理を図6に示す。最初に
ヘッダ上のCombuf_ID をキーにローカルCombufテーブル
(LCT)を検索(1001)する。検索の結果(1002)、受信デ
ータが持つ受信Combuf_ID とアクセス権コードがLCT
に存在しない場合、不法なアクセスとして到着したデー
タの破棄をNIAに指示する(1006)。受信Combuf
_ID とアクセス権コードが、LCTに存在する場合は、
LCTに書かれた情報に基づき以下に述べる処理を行
う。最初に、LCT中のそのCombuf_ID に対する処理完
了フラグを検査(1003)する。処理完了フラグは、
受信したデータに対する処理をユーザが完了したか否か
を示すフラグであり、ユーザがCombuf_process_ end( )
を発行することにより、任意のタイミングで「完了」に
設定できる。従って、このフラグが「完了」ならば、ユ
ーザがデータ受信を許可しているので、受信したデータ
を目的のCombuf_IDが示すCombuf へ書き込むようにNIA
に指示(1004)し、OSは処理完了フラグを「未完
了」にする(1005)。一方、処理完了フラグが「未
完了」ならば、LCTを参照し、ユーザが設定した保護
モードに従った処理を行う(1007)。
The processing of the reception routine is shown in FIG. First, the local Combuf table with the Combuf_ID on the header as the key
Search (1001) for (LCT). As a result of the search (1002), the received Combuf_ID and access right code of the received data are LCT
If not present, the NIA is instructed to discard the data that arrived as an illegal access (1006). Receive Combuf
If _ID and access right code exist in LCT,
The following processing is performed based on the information written in the LCT. First, the processing completion flag for the Combuf_ID in the LCT is checked (1003). The processing completion flag is
This is a flag that indicates whether the user has completed the processing for the received data, and the user has set Combuf_process_end ().
Can be set to "Complete" at any time. Therefore, if this flag is "Complete", the user has permitted data reception, so the NIA should write the received data to the Combuf indicated by the target Combuf_ID.
(1004), the OS sets the processing completion flag to “not completed” (1005). On the other hand, if the processing completion flag is “not completed”, the LCT is referred to and the processing according to the protection mode set by the user is performed (1007).

【0040】この処理を図7に示し、次にこれらの処理
を述べる。保護モードが「強制上書き」の場合は、従来
の主記憶常駐化通信と同様の処理となる。すなわち、N
IAに指示し、ユーザの処理の状態に関わらず受信した
データを強制的に受信領域へ上書きする(1104)。
This processing is shown in FIG. 7, and these processings will be described next. When the protection mode is "forced overwrite", the same processing as the conventional main memory resident communication is performed. That is, N
The IA is instructed to forcibly overwrite the received area with the received data regardless of the processing state of the user (1104).

【0041】保護モードが「データ破棄」の場合は、受
信したデータの破棄をNIAに指示して受信データを破
棄する(1105)とともに、破棄の事実をユーザの受
信プロセスに通知(1106)しログ等に記録する(1
107)。このモードは本発明の第一の方法の具体的な
実施例でもある。データ破棄モードは、受信側と送信側
が明示的なフロー制御を行いながら通信し、ユーザの受
信プロセスの意図しないタイミングでデータの送信が行
われないような並列プログラムに対して主に用いられ
る。このようなプログラムでは、ユーザの受信プロセス
の意図しないタイミングでデータが送信される事自体、
すでにプログラムバグ等によりユーザの望む処理が行わ
れていない事を意味する。このため、最後に送信されメ
モリ上にあるデータの保護のため、送られてきたデータ
を破棄し、その事実を受信プロセスに通知する。受信プ
ロセスはデータ破棄の知らせにより、現在の処理の中
断,可能な部分までの処理の続行、これまでの処理のロ
ールバック等、例外処理を行うことができる。
When the protection mode is "data discard", the NIA is instructed to discard the received data to discard the received data (1105), and the fact of the discard is notified to the receiving process of the user (1106) and is logged. Etc. (1
107). This mode is also a specific embodiment of the first method of the present invention. The data discard mode is mainly used for a parallel program in which the receiving side and the transmitting side communicate while performing explicit flow control, and data is not transmitted at a timing that the user's receiving process does not intend. In such a program, data itself is transmitted at a timing that the user's reception process does not intend,
This means that the processing desired by the user has not been performed due to a program bug or the like. Therefore, in order to protect the data transmitted last and stored in the memory, the transmitted data is discarded and the fact is notified to the receiving process. The reception process can perform exception processing such as interruption of the current processing, continuation of processing up to a possible portion, and rollback of the processing so far by notifying the data discard.

【0042】保護モードが「データ保留」の場合は、タ
イマにデータ保留時間をセットし(1108)、受信処
理を保留する。保留時間内にCombuf_process_endによ
り、受信完了フラグが「完了」にセットされた場合は受
信データを読み込む。このモードは本発明の第二の方法
の具体的な実施例でもある。データ保留モードは、MI
MD的な動作を行っている並列プログラム間の通信に主
に用いられる。
When the protection mode is "data hold", the data hold time is set in the timer (1108) and the receiving process is held. If the reception completion flag is set to "Complete" by Combuf_process_end within the hold time, the received data is read. This mode is also a specific embodiment of the second method of the present invention. Data hold mode is MI
It is mainly used for communication between parallel programs performing MD-like operations.

【0043】データ保留モードを用いることにより、受
信側と送信側でデータの処理速度がほぼ同じ場合など
は、明示的なフロー制御を行わなくても、受信領域のデ
ータの上書きや受信データの損失などを伴わず、受信側
のデータ要求に依存した通信を実現する。また、データ
保留モードでは、保留時間が切れた場合には受信データ
全を破棄し、破棄の事実をユーザの受信プロセスに通知
しログ等に記録する。これは、一定時間以上受信データ
の取込みがない場合プログラムのバグとみなし、受信デ
ータの保留によって生じるネットワークの閉塞やデット
ロックを防止するためである。
By using the data hold mode, when the data processing speeds of the receiving side and the transmitting side are almost the same, overwriting of data in the receiving area or loss of received data is performed without explicit flow control. Communication that depends on the data request from the receiving side is realized without the need for the above. Further, in the data hold mode, when the hold time expires, all the received data is discarded, the fact of the discard is notified to the receiving process of the user, and it is recorded in a log or the like. This is to prevent the network from being blocked or deadlocked due to a hold of the received data when the received data is not taken in for a certain period of time and is regarded as a program bug.

【0044】[0044]

【発明の効果】第一の発明によれば、受信側と送信側が
明示的なフロー制御を行いながら通信し、ユーザの受信
プロセスの意図しないタイミングでデータの送信が行わ
れない並列プログラムにおいて、受信側の意図しない受
信による、受信データの上書きの防止の実現である。ま
た、最後に送信されメモリ上にあるデータの保護のた
め、送られてきたデータを破棄し、その事実を受信プロ
セスに通知するため、受信プロセスはデータ破棄の知ら
せにより、現在の処理の中断,可能な部分までの処理の
続行,これまでの処理のロールバック等、例外処理を行
うことができる。
According to the first aspect of the present invention, in a parallel program in which the receiving side and the transmitting side communicate while performing explicit flow control, and data is not transmitted at a timing unintended by the user's receiving process, This is to prevent the received data from being overwritten by unintended reception on the side. Also, in order to protect the data sent last in the memory, the sent data is discarded, and the fact is notified to the receiving process. Therefore, the receiving process interrupts the current process by notifying the data discarding, Exception processing can be performed such as continuing processing up to the possible part and rolling back the processing so far.

【0045】第二の発明によれば、MIMD的な動作を
行っている並列プログラム間の通信に対し、受信側から
送信側へ明示的にメッセージによりフロー制御を行わな
くても、受信側と送信側でデータの処理速度がほぼ同じ
場合などは、受信領域のデータの上書きや受信データの
損失などを伴わず、受信側のデータ要求に依存した通信
が実現できる。
According to the second aspect of the present invention, for communication between parallel programs operating as MIMD, a message is sent from the receiving side to the receiving side even if flow control is not explicitly performed by a message from the receiving side to the transmitting side. When the data processing speeds are almost the same on the side, the communication depending on the data request on the receiving side can be realized without overwriting the data in the receiving area or losing the received data.

【0046】第三の発明によれば、長時間のデータ保留
によって生じる相互接続網の閉塞やデットロックの効率
的な解消が可能となる。
According to the third aspect of the present invention, it is possible to effectively eliminate the blockage of the interconnection network and the deadlock caused by the data hold for a long time.

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

【図1】本発明の一実施例のシステムのブロック図。FIG. 1 is a block diagram of a system according to an embodiment of the present invention.

【図2】主記憶常駐化通信の手順の説明図。FIG. 2 is an explanatory diagram of a procedure of main memory resident communication.

【図3】ローカルCombufテーブルの例の説明図。FIG. 3 is an explanatory diagram of an example of a local Combuf table.

【図4】リモートCombufテーブルの例の説明図。FIG. 4 is an explanatory diagram of an example of a remote Combuf table.

【図5】主記憶常駐化通信の送受信時の動作の説明図。FIG. 5 is an explanatory diagram of an operation during transmission / reception of main memory resident communication.

【図6】受信ルーチンの処理のフローチャート。FIG. 6 is a flowchart of processing of a reception routine.

【図7】受信非許可時の処理のフローチャート。FIG. 7 is a flowchart of processing when reception is not permitted.

【符号の説明】[Explanation of symbols]

101…ノード、102…ネットワーク、103…ネッ
トワークインタフェースアダプタ、104…プロセッ
サ、105…主記憶、106…調停回路、107…受信
回路、108…制御回路、109…制御レジスタ、11
0…受信バッファ、111…DMA回路、112…送信
バッファ、113…送信回路、1149…タイマ。
101 ... Node, 102 ... Network, 103 ... Network interface adapter, 104 ... Processor, 105 ... Main memory, 106 ... Arbitration circuit, 107 ... Reception circuit, 108 ... Control circuit, 109 ... Control register, 11
0 ... reception buffer, 111 ... DMA circuit, 112 ... transmission buffer, 113 ... transmission circuit, 1149 ... timer.

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】プロセッサとメモリを持つ複数のノードが
相互通信網で結合された計算機システムの、送信および
受信プロセスの仮想アドレス空間上の通信領域を、それ
ぞれのノードの物理メモリ上に常駐化し、前記物理メモ
リの領域間で直接データ転送を行い、送信領域の内容が
受信領域へ上書きされる通信方法において、 オペレーティング・システムが、受信による前記受信領
域へのデータの転送完了により、前記受信領域を受信非
許可状態にし、 前記受信プロセスが、前記通信領域中のデータの処理完
了により、前記通信領域を受信許可状態を設定でき、受
信非許可状態の通信領域へ他の通信によるデータ転送が
生じた場合、受信したデータを破棄できるようにしたこ
とを特徴とする並列計算機の通信方法。
1. A communication area in a virtual address space of a transmission and reception process of a computer system in which a plurality of nodes each having a processor and a memory are connected by an intercommunication network is made resident in a physical memory of each node, In a communication method in which data is directly transferred between the areas of the physical memory and the contents of the transmission area are overwritten in the reception area, the operating system completes the transfer of the data to the reception area by reception and When the reception process is set to the non-reception state, and the reception process completes the processing of the data in the communication area, the communication area can be set to the reception-permitted state, and data transfer by another communication occurs to the communication area in the non-reception state. In this case, the communication method of the parallel computer is characterized in that the received data can be discarded.
【請求項2】プロセッサとメモリを持つ複数のノードが
相互通信網で結合された計算機システムの、送信および
受信プロセスの仮想アドレス空間上の通信領域を、それ
ぞれのノードの物理メモリ上に常駐化し、前記物理メモ
リの領域間で直接データ転送を行い、送信領域の内容が
受信領域へ上書きされる通信方法において、 オペレーティング・システムが、受信による前記受信領
域へのデータの転送完了により、前記受信領域を受信非
許可状態にし、 前記受信プロセスが、前記通信領域中のデータの処理完
了により、前記通信領域を受信許可状態を設定でき、受
信非許可状態の通信領域へ他の通信によるデータ転送が
生じた場合、受信したデータを保留できるようにしたこ
とを特徴とする並列計算機の通信方法。
2. A communication area on a virtual address space of a transmission and reception process of a computer system in which a plurality of nodes each having a processor and a memory are connected by an mutual communication network is made resident in a physical memory of each node, In a communication method in which data is directly transferred between the areas of the physical memory and the contents of the transmission area are overwritten in the reception area, the operating system completes the transfer of the data to the reception area by reception and When the reception process is set to the non-reception state, and the reception process completes the processing of the data in the communication area, the communication area can be set to the reception-permitted state, and data transfer by another communication occurs to the communication area in the non-reception state. In this case, the parallel computer communication method is characterized in that the received data can be held.
【請求項3】請求項2において、ネットワークとのイン
タフェースハードウエアを監視し、受信データが一定時
間以上取り込まれない場合、プロセッサへの割り込みを
起こし、ネットワークの閉塞状態を通知する並列計算機
の通信方法。
3. A communication method of a parallel computer according to claim 2, wherein interface hardware with a network is monitored, and when received data is not taken in for a certain time or longer, an interrupt is issued to a processor to notify a blocked state of the network. .
JP6009114A 1994-01-31 1994-01-31 Communication method for parallel computer Pending JPH07219916A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6009114A JPH07219916A (en) 1994-01-31 1994-01-31 Communication method for parallel computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6009114A JPH07219916A (en) 1994-01-31 1994-01-31 Communication method for parallel computer

Publications (1)

Publication Number Publication Date
JPH07219916A true JPH07219916A (en) 1995-08-18

Family

ID=11711613

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6009114A Pending JPH07219916A (en) 1994-01-31 1994-01-31 Communication method for parallel computer

Country Status (1)

Country Link
JP (1) JPH07219916A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257479A (en) * 2006-03-24 2007-10-04 Fujitsu Ltd Communication device, method and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257479A (en) * 2006-03-24 2007-10-04 Fujitsu Ltd Communication device, method and program

Similar Documents

Publication Publication Date Title
US5752078A (en) System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory
US5931915A (en) Method for processing early arrival messages within a multinode asynchronous data communications system
Kanakia et al. The VMP network adapter board (NAB): High-performance network communication for multiprocessors
JP3165022B2 (en) Computer system and message transfer method
JPH10293754A (en) Computer system
JPH06309252A (en) Interconnection interface
US20130290558A1 (en) Data transfer, synchronising applications, and low latency networks
JP4317365B2 (en) Method and apparatus for transferring interrupts from a peripheral device to a host computer system
JPH06202883A (en) Equipment for communication between processes and method therefor
JPH07281976A (en) Method for control of packet fifo
US6115803A (en) Parallel computer which verifies direct data transmission between local memories with a send complete flag
JPH0816540A (en) Message communication system for parallel computer
JPH07225727A (en) Computer system
JPH076107A (en) Apparatus and method for interfacing as well as communication adaptor
US5878226A (en) System for processing early arrival messages within a multinode asynchronous data communications system
JP3641834B2 (en) Parallel processor system and packet discard method suitable therefor
JPH11502341A (en) Link protocol for data transmission between processors
US6108694A (en) Memory disk sharing method and its implementing apparatus
JPH07219916A (en) Communication method for parallel computer
US5675737A (en) Message receiving system for use in parallel computer system
JP3328872B2 (en) Computer network communication method and network computer system
US6434592B1 (en) Method for accessing a network using programmed I/O in a paged, multi-tasking computer
JP2924783B2 (en) Remote read processing method and device
JPH05224956A (en) Inter-process message communication method
JPH03127154A (en) Transfer control system