JPH0685841A - Communication controller - Google Patents

Communication controller

Info

Publication number
JPH0685841A
JPH0685841A JP23468092A JP23468092A JPH0685841A JP H0685841 A JPH0685841 A JP H0685841A JP 23468092 A JP23468092 A JP 23468092A JP 23468092 A JP23468092 A JP 23468092A JP H0685841 A JPH0685841 A JP H0685841A
Authority
JP
Japan
Prior art keywords
packet
communication control
buffer memory
communication
processes
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
JP23468092A
Other languages
Japanese (ja)
Inventor
Kazuhisa Goto
和久 後藤
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP23468092A priority Critical patent/JPH0685841A/en
Publication of JPH0685841A publication Critical patent/JPH0685841A/en
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

PURPOSE:To implement communication between process sections without production of a dead lock event even when plural process sections implement synchronization communication while implementing parallel processing. CONSTITUTION:Upon the receipt of a packet from process sections 12, 13, 14, 15, a packet reception means 40 checks the operating state of each area in a buffer memory 50 by looking into a check table 51 and a packet is reserved in an idle area. On the other hand, the packet stored in the buffer memory 50 is retrieved by using a packet reception means 40 to check the check table 51 and the stored packet is given to the process sections 12, 13, 14, 15 being transmission destinations. Thus, the transmission/reception among the process sections 12, 13, 14, 15 are implemented without causing a dead lock event.

Description

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

【0001】[0001]

【産業上の利用分野】本発明は、各プロセス間で受け渡
されるパケットの通信制御を行う通信制御装置に関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a communication control device for controlling communication of packets passed between processes.

【0002】[0002]

【従来の技術】図13は計算機ネットワークの構成図で
ある。ホストコンピュータ1には第1コントローラ10
が接続され、この第1コントローラ10に対して第2コ
ントローラ20及び第3コントローラ30が接続されて
いる。この場合、各コントローラ10、20、30は各
通信リンクr1〜r4を備え、これら通信リンクr1〜
r4を介して互いに接続されている。
2. Description of the Related Art FIG. 13 is a block diagram of a computer network. The host computer 1 has a first controller 10
Are connected, and the second controller 20 and the third controller 30 are connected to the first controller 10. In this case, each controller 10, 20, 30 is provided with each communication link r1-r4, and these communication links r1-r4.
They are connected to each other via r4.

【0003】又、各コントローラ10、20、30内で
は、point to point型で接続された複数のプロセスが並
列に実行され、これらプロセス間でパケットを受け渡し
て同期通信が行われている。
In each controller 10, 20, 30 a plurality of processes connected in a point-to-point type are executed in parallel, and packets are passed between these processes for synchronous communication.

【0004】コントローラ10内には通信制御プロセス
11が備えられ、この通信制御プロセス11に各チャネ
ルを介して各プロセス12〜15が接続されている。な
お、コントローラ20、30においても同様に通信制御
プロセス21、31に各チャネルを介して各プロセス2
2〜25、32〜35が接続されている。
A communication control process 11 is provided in the controller 10, and each process 12 to 15 is connected to the communication control process 11 via each channel. Similarly, in the controllers 20 and 30, the communication control processes 21 and 31 are similarly connected to each process 2 via each channel.
2 to 25 and 32 to 35 are connected.

【0005】かかる構成において通信制御プロセス1
1、21,31は図14に示す通信制御流れ図に従って
パケットの受け渡しを行う。この通信制御を第1コント
ローラ10について説明する。
In such a configuration, the communication control process 1
1, 21, and 31 pass the packets according to the communication control flow chart shown in FIG. This communication control will be described for the first controller 10.

【0006】先ず、通信制御プロセス11はステップ#
1において各通信リンクr1〜r4又は自身のコントロ
ーラ10内の各プロセス12〜15からのパケットを受
け取る。このパケットには図15に示すように先頭に送
信先コントローラ番号、次に送信先プロセス番号、送信
元コントローラ番号、送信元プロセス番号、データが書
かれている。
First, the communication control process 11 executes step #
1 receives packets from each communication link r1-r4 or each process 12-15 in its own controller 10. As shown in FIG. 15, in this packet, the transmission destination controller number, the transmission destination process number, the transmission source controller number, the transmission source process number, and the data are written at the beginning.

【0007】次に通信制御プロセス11はステップ#2
においてパケットの内容から他のコントローラ20、3
0から送られてきたパケットかを判断する。この判断に
より他のコントローラ20、30からのパケットであれ
ば、通信制御プロセス11はステップ#3に移ってパケ
ットを受け取った通信リンクr1〜r4を記憶する。
Next, the communication control process 11 proceeds to step # 2.
From the contents of the packet to another controller 20, 3
It is determined whether the packet is sent from 0. According to this determination, if the packet is from another controller 20, 30, the communication control process 11 moves to step # 3 and stores the communication links r1 to r4 that received the packet.

【0008】又、上記ステップ#2の判断の結果、他の
コントローラ20、30からのパケットでなければ、通
信制御プロセス11はステップ#4に移って自身のプロ
セス12〜15からのパケットかを判断する。この判断
の結果、自身のプロセス12〜15からのパケットであ
れば、通信制御プロセス11はステップ#5に移ってパ
ケットに書かれた送信先プロセス番号に従ってパケット
をそのプロセス12〜15に渡す。
If the result of determination in step # 2 is that the packet is not from another controller 20 or 30, the communication control process 11 moves to step # 4 and determines whether the packet is from its own process 12-15. To do. As a result of this determination, if the packet is from its own process 12-15, the communication control process 11 moves to step # 5 and passes the packet to the process 12-15 according to the destination process number written in the packet.

【0009】次に通信制御プロセス11はステップ#6
において自身のコントローラ10宛以外のパケットを、
このパケットを受け取った通信リンク以外の各通信リン
クを通して他の各コントローラに渡す。かかる通信制御
において図16に示すようにプロセス12が (a) プロセス13にパケット「1」を送信 (b) プロセス13にパケット「2」を送信 (c) プロセス13にパケット「3」を送信 (d) プロセス13又は14からのパケットパケット
「4」又は「5」を受信 (e) プロセス14又は13からのパケットパケット
「5」又は「4」を受信 の順序で処理を実行し、プロセス13が (a) プロセス12からのパケット「1」を受信 (b) プロセス12へパケット「4」を送信 の順序で処理を実行し、プロセス14が (a) プロセス12からのパケット「2」を受信 (b) プロセス12へパケット「5」を送信 の順序で処理を実行する場合を説明する。
Next, the communication control process 11 proceeds to step # 6.
At this point, packets other than those addressed to the controller 10
This packet is passed to each other controller through each communication link other than the communication link that received the packet. In such communication control, as shown in FIG. 16, the process 12 (a) sends the packet “1” to the process 13 (b) sends the packet “2” to the process 13 (c) sends the packet “3” to the process 13 ( d) Receive the packet packet “4” or “5” from the process 13 or 14 (e) Perform the processing in the order of receiving the packet packet “5” or “4” from the process 14 or 13, and the process 13 (a) Receive the packet "1" from the process 12 (b) Execute the processing in the order of transmitting the packet "4" to the process 12, and the process 14 receives the packet "2" from the process (a) ( b) The case where the processing is executed in the order of transmitting the packet “5” to the process 12 will be described.

【0010】この場合、プロセス12がパケット「1」
及び「2」を送信した後に、プロセス13がパケット
「4」を返送すれば、プロセス12は正常にパケットの
受け渡しを行う。
In this case, the process 12 sends the packet "1".
If the process 13 returns the packet "4" after transmitting "2" and "2", the process 12 normally transfers the packet.

【0011】ところが、プロセス12がパケット「2」
を送信する以前に、プロセス13がパケット「4」を返
送すると、通信制御プロセス11はプロセス13からの
パケット「4」をプロセス「1」に渡そうとする。
However, the process 12 uses the packet "2".
If the process 13 returns the packet “4” before sending the packet, the communication control process 11 tries to pass the packet “4” from the process 13 to the process “1”.

【0012】しかしながら、このときプロセス「1」は
パケット「2」を送信した後でなければ、パケット
「4」を受け取らないので、プロセス「1」は待ちの状
態となる。一方、通信制御プロセス11はパケット
「4」をプロセス「1」に渡さなければ、パケット
「2」を受け取ってプロセス「3」に渡すことができな
いので、待ち状態となる。
However, at this time, the process "1" waits until the process "1" receives the packet "4" until after the process "1" has transmitted the packet "2". On the other hand, the communication control process 11 cannot receive the packet "2" and deliver it to the process "3" unless the packet "4" is delivered to the process "1", so that the communication control process 11 enters a waiting state.

【0013】このように互いに相手が通信を受け取るの
を待つ状態になると、永久に通信が進まなくなる、いわ
ゆるデッドロックと呼ばれる現象が起こる。このデッド
ロックは複数のプロセスが並行処理しながら同期通信を
行う場合に起こる。しかるに、プロセスの数が増加し、
各コントローラ間でパケットの受け渡しを行う場合、デ
ッドロックが起こらないように通信制御プログラムを組
まなければならないが、この通信制御プログラムの作成
には非常な手間がかかり、注意を払って作成したとして
も完全にデッドロックをなくすことは困難である。
[0013] When the other parties wait for the communication to be received in this way, a phenomenon called so-called deadlock occurs in which the communication does not proceed forever. This deadlock occurs when multiple processes perform synchronous communication while performing parallel processing. However, the number of processes increases,
When passing packets between controllers, a communication control program must be created so that deadlock does not occur, but it takes a lot of time and effort to create this communication control program, and even if it is created with caution. It is difficult to eliminate deadlock completely.

【0014】[0014]

【発明が解決しようとする課題】以上のように複数のプ
ロセスが並行処理しながら同期通信を行う場合、デッド
ロック現象が起こり、各プロセス間でのパケットの受け
渡しが困難となる。
As described above, when a plurality of processes perform synchronous communication while performing parallel processing, a deadlock phenomenon occurs and it becomes difficult to transfer packets between the processes.

【0015】そこで本発明は、複数のプロセスが並行処
理しながら同期通信を行ってもデッドロック現象を起こ
さずに各プロセス間で通信ができる通信制御装置を提供
することを目的とする。
Therefore, an object of the present invention is to provide a communication control device capable of communicating between processes without causing a deadlock phenomenon even if a plurality of processes perform synchronous communication while performing parallel processing.

【0016】[0016]

【課題を解決するための手段】本発明は、少なくとも所
定処理を行う各プロセスが各通信チャネルを介して接続
され、これらプロセス間で受け渡されるパケットを通信
制御する通信制御装置において、
According to the present invention, there is provided a communication control device, wherein at least each process for performing a predetermined process is connected via each communication channel, and communication control is performed for a packet passed between these processes,

【0017】パケットを一時的に保存するバッファメモ
リと、このバッファメモリにおける各領域の使用状態を
示すチェックテーブルと、プロセスから受けたパケット
を、チェックテーブルでチェックしたバッファメモリの
空き領域に保存するパケット受取手段と、バッファメモ
リ保存されているパケットをチェックテーブルでチェッ
クし、このパケットを送信先のプロセスに渡すパケット
渡し手段とを備えて上記目的を達成しようとする通信制
御装置である。
A buffer memory for temporarily storing packets, a check table showing the usage status of each area in the buffer memory, and a packet for receiving a packet received from a process in a free area of the buffer memory checked by the check table. The communication control device is provided with a receiving means and a packet passing means for checking a packet stored in a buffer memory with a check table and passing the packet to a process of a transmission destination.

【0018】又、本発明は、少なくとも所定処理を行う
各プロセスが各通信チャネルを介して接続され、これら
プロセス間で受け渡されるパケットを通信制御する通信
制御装置において、
Further, the present invention provides a communication control device, wherein at least each process for performing a predetermined process is connected via each communication channel, and communication control is performed for a packet transferred between these processes,

【0019】プロセスから受け取ったパケットがデータ
送信用又はデータ要求用かを判別するパケット判別手段
と、データ送信用パケットを一時的に保存する複数領域
のバッファメモリと、プロセスから受けたデータ送信用
パケットをバッファメモリの空き領域に保存するパケッ
ト受取手段と、プロセスから受けたデータ要求用パケッ
トで要求されたパケットをバッファメモリから読み出
し、このパケットを送信先のプロセスに渡すパケット渡
し手段とを備えて上記目的を達成しようとする通信制御
装置である。
Packet discriminating means for discriminating whether the packet received from the process is for data transmission or data request, a buffer memory of a plurality of areas for temporarily storing the data transmission packet, and the data transmission packet received from the process And a packet passing means for reading the packet requested by the data request packet received from the process from the buffer memory and passing the packet to the destination process. It is a communication control device that aims to achieve the purpose.

【0020】[0020]

【作用】このような手段を備えたことにより、プロセス
からパケットを受け取ると、パケット受取手段によりバ
ッファメモリにおける各領域の使用状態がチェックテー
ブルを見ることによってチェックされ、空いている領域
にパケットが保存される。一方、バッファメモリ保存さ
れているパケットが、パケット渡し手段によりチェック
テーブルをチェックすることにより検索され、この保存
されているパケットがその送信先のプロセスに渡され
る。これにより、各プロセス間でパケットの受け渡しが
デッドロック現象を起こさずに行われる。
With such means, when the packet is received from the process, the packet receiving means checks the usage state of each area in the buffer memory by looking at the check table, and the packet is saved in the empty area. To be done. On the other hand, the packet stored in the buffer memory is searched by checking the check table by the packet passing means, and the stored packet is passed to the process of the transmission destination. As a result, packets are passed between the processes without causing a deadlock phenomenon.

【0021】又、上記手段を備えたことにより、プロセ
スから受け取ったパケットを受け取ると、パケット判別
手段によりパケットがデータ送信用又はデータ要求用か
が判別される。このパケットの判別の結果、データ送信
用パケットであればパケット受取手段によりパケットを
バッファメモリの空き領域に保存し、又データ要求用パ
ケットであればパケット渡し手段によりデータ要求用の
パケットで指示されたパケットをバッファメモリから読
み出し、このパケットを送信先のプロセスに渡す。
Further, by providing the above means, when the packet received from the process is received, the packet determining means determines whether the packet is for data transmission or data request. As a result of this packet discrimination, if the packet is a data transmission packet, the packet receiving means saves the packet in an empty area of the buffer memory, and if it is a data request packet, the packet passing means indicates the data request packet. Reads the packet from the buffer memory and passes this packet to the destination process.

【0022】[0022]

【実施例】以下、本発明の第1実施例について図面を参
照して説明する。なお、図12と同一部分には同一符号
を付してその詳しい説明は省略する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A first embodiment of the present invention will be described below with reference to the drawings. The same parts as those in FIG. 12 are designated by the same reference numerals, and detailed description thereof will be omitted.

【0023】図1は通信制御装置を適用した計算機ネッ
トワークの構成図である。各通信制御プロセス40、4
1、42には、それぞれ図2に示すバッファメモリ50
及び図3に示す使用チェックテーブル51が備えられて
いる。
FIG. 1 is a block diagram of a computer network to which a communication control device is applied. Each communication control process 40, 4
1 and 42 respectively include the buffer memory 50 shown in FIG.
Also, a usage check table 51 shown in FIG. 3 is provided.

【0024】バッファメモリ50は複数のパケットバッ
ファ領域「1」〜「n」を有し、これらパケットバッフ
ァ領域「1」〜「n」のいずれかにパケットが保存され
るものとなっている。
The buffer memory 50 has a plurality of packet buffer areas "1" to "n", and packets are stored in any of these packet buffer areas "1" to "n".

【0025】又、使用チェックテーブル51はバッファ
メモリ50の各パケットバッファ領域「1」〜「n」の
使用状態をチェックするためのもので、各パケットバッ
ファ領域「1」〜「n」に対応する各チェック領域c1
〜cnと、各パケットバッファ領域「1」〜「n」に保
存されたパケットの受け取り通信リンクr1〜r4をチ
ェックするための通信リンク領域s1〜snとが形成さ
れている。
The usage check table 51 is for checking the usage status of each packet buffer area "1" to "n" of the buffer memory 50, and corresponds to each packet buffer area "1" to "n". Each check area c1
To cn and communication link areas s1 to sn for checking the reception communication links r1 to r4 of the packets stored in the respective packet buffer areas “1” to “n”.

【0026】この場合、各チェック領域c1〜cnに
は、各パケットバッファ領域「1」〜「n」にパケット
が保存されている場合に「1」が書き込まれ、空き領域
の場合に「0」が書き込まれる。又、通信リンク領域s
1〜snには通信リンクr1〜r4又は自身のコントロ
ーラの各プロセスからのパケットであれば「0」が書き
込まれる。
In this case, in each of the check areas c1 to cn, "1" is written when the packet is stored in each of the packet buffer areas "1" to "n", and "0" is written in the empty area. Is written. Also, the communication link area s
“0” is written in 1 to sn if it is a packet from each process of the communication links r1 to r4 or its own controller.

【0027】又、各通信制御プロセス40、41、42
は、図4に示すパケット受取流れ図に従ったパケット受
取処理と、図5に示すパケット受渡し流れ図に従ったパ
ケット受渡し処理とを並行処理する機能を有している。
Further, each communication control process 40, 41, 42
Has a function of concurrently performing the packet receiving process according to the packet receiving flowchart shown in FIG. 4 and the packet passing process according to the packet receiving flowchart shown in FIG.

【0028】パケット受取処理を実行することにより各
通信制御プロセス40、41、42は、各プロセスから
受けたパケットを、使用チェックテーブル51でチェッ
クしたバッファメモリ50の空き領域に保存する機能を
有するものとなる。
By executing the packet receiving process, each communication control process 40, 41, 42 has a function of storing the packet received from each process in the free area of the buffer memory 50 checked by the use check table 51. Becomes

【0029】又、パケット受渡し処理を実行することに
より各通信制御プロセス40、41、42は、バッファ
メモリ50に保存されているパケットを使用チェックテ
ーブル51で検索し、保存されているパケットを送信先
のプロセスに渡すパケット渡し手段との各機能を有する
ものとなる。次に上記の如く構成された計算機ネットワ
ークの作用について図4に示すパケット受取流れ図及び
図5に示すパケット受渡し流れ図に従って説明する。 (1) パケット受取処理
Further, by executing the packet passing process, each communication control process 40, 41, 42 searches the use check table 51 for the packet stored in the buffer memory 50, and sends the stored packet to the destination. It has each function of a packet passing means to be passed to the process. Next, the operation of the computer network configured as described above will be described with reference to the packet reception flow chart shown in FIG. 4 and the packet delivery flow chart shown in FIG. (1) Packet reception processing

【0030】通信制御プロセス40はステップ#10にお
いてバッファメモリ50の各パケットバッファ領域
「1」〜「n」の番地iを「1」に設定し、次のステッ
プ#11〜#13において番地iを繰上げながら各パケット
バッファ領域「1」〜「n」が空いているかを検索す
る。
The communication control process 40 sets the address i of each packet buffer area "1" to "n" of the buffer memory 50 to "1" in step # 10, and sets the address i in the next steps # 11 to # 13. While moving up, it is searched whether or not each of the packet buffer areas "1" to "n" is free.

【0031】この検索により空いているパケットバッフ
ァ領域が見付かると、通信制御プロセス40はステップ
#14に移って各通信リンクr1〜r4を通して受取られ
るパケット、又は各プロセス12〜15から各通信チャ
ネルを通して受取るパケットを待つ。
When a free packet buffer area is found by this search, the communication control process 40 moves to step # 14 to receive a packet through each communication link r1 to r4, or receive from each process 12 to 15 through each communication channel. Wait for a packet

【0032】この状態にプロセス12からパケットが取
り込まれると、通信制御プロセス40はステップ#15に
おいてプロセス12からのパケットを受取り、このパケ
ットを、先に検索した空きのパケットバッファ領域、例
えば領域「1」に書き込む。
When a packet is fetched from the process 12 in this state, the communication control process 40 receives the packet from the process 12 in step # 15, and the packet is retrieved from the empty packet buffer area, for example, the area "1". Write in.

【0033】次に通信制御プロセス40はステップ#16
においてパケットバッファ領域「1」に対応する使用チ
ェックテーブル51のチェック領域c1にパケット保存
を示す「1」を書き込み、かつ通信リンク領域s1に
「0」を書き込む。この後、再び通信制御プロセス40
はステップ#10に戻る。 (2) パケット渡し処理
Next, the communication control process 40 proceeds to step # 16.
At 1, a "1" indicating packet storage is written in the check area c1 of the usage check table 51 corresponding to the packet buffer area "1", and a "0" is written in the communication link area s1. After this, again the communication control process 40
Returns to step # 10. (2) Packet passing process

【0034】通信制御プロセス40はステップ#20にお
いてバッファメモリ50の各パケットバッファ領域
「1」〜「n」の番地iを「1」に設定し、次のステッ
プ#21〜#23において番地iを繰上げながら各パケット
バッファ領域「1」〜「n」にパケットが保存されてい
るかを検索する。
The communication control process 40 sets the address i of each packet buffer area "1" to "n" of the buffer memory 50 to "1" in step # 20, and sets the address i in the next steps # 21 to # 23. While moving forward, it is searched whether or not a packet is stored in each of the packet buffer areas "1" to "n".

【0035】この検索により例えばパケットバッファ領
域「1」におけるパケット保存が確認されると、通信制
御プロセス40はステップ#24に移り、同領域「2」に
保存されているパケットが自身のコントローラ40のプ
ロセス宛てのものであるかを判断する。
If, for example, the packet storage in the packet buffer area "1" is confirmed by this search, the communication control process 40 moves to step # 24, and the packet stored in the area "2" is stored in its own controller 40. Determine if it is destined for the process.

【0036】この判断の結果、自身のコントローラ40
のプロセス宛であれば、通信制御プロセス40はステッ
プ#25において送信先のプロセス、例えばプロセス13
にパケットを渡す。又、自身のコントローラ40のプロ
セス宛でなければ、通信制御プロセス40はステップ#
26に移り、使用チェックテーブル51から受取った通信
リンクr3を確認し、この通信リンクr3以外の各通信
リンクr1、r2、r4からパケットを送り出す。次に
通信制御プロセス40はステップ#27において使用チェ
ックテーブル51のチェック領域c2に「0」を書き込
み、再びステップ#20に戻る。 (3) 通信制御プロセス40でのパケットの受渡し 図6に示すように通信制御プロセス40は上記パケット
の受取り、パケットの渡し処理の実行により、次のよう
なパケットの受渡しを行う。 (a) プロセス12からのパケット「1」を受取り、バッ
ファメモリ50の空き領域に保存する。 (b) プロセス13にパケット「1」を渡す。 (c) プロセス13からのパケット「2」を受取り、バッ
ファメモリ50の空き領域に保存する。
As a result of this judgment, the controller 40 of its own
Communication process 40, the communication control process 40 sends the destination process, for example, process 13 in step # 25.
Pass the packet to. If it is not addressed to the process of its own controller 40, the communication control process 40 proceeds to step #
Moving to 26, the communication link r3 received from the usage check table 51 is confirmed, and a packet is sent out from each communication link r1, r2, r4 other than this communication link r3. Next, the communication control process 40 writes "0" in the check area c2 of the usage check table 51 in step # 27, and returns to step # 20 again. (3) Delivery of Packets in Communication Control Process 40 As shown in FIG. 6, the communication control process 40 receives the above-mentioned packets and executes the packet delivery processing to deliver the following packets. (a) Receive the packet “1” from the process 12 and store it in the free area of the buffer memory 50. (b) Pass the packet “1” to the process 13. (c) Receive the packet “2” from the process 13 and save it in the free area of the buffer memory 50.

【0037】(d) このパケット「2」をプロセス12に
渡そうとするが、プロセス12は各プロセス14、15
に各パケット「3」「4」を渡した後でなければパケッ
トを受取らない。従って、パケット「2」の渡しは待ち
状態となる。
(D) An attempt is made to pass this packet "2" to the process 12, but the process 12 sends each process 14, 15
No packets are received until after passing each packet "3" and "4" to. Therefore, the delivery of the packet "2" is in a waiting state.

【0038】(e) プロセス13からのパケット「3」、
続いてパケット「4」を受取り、バッファメモリ50の
各空き領域に保存する。このとき、バッファメモリ50
にはパケット「2」「3」「4」が保存されている。 (f) 保存しているパケット「2」をプロセス12へ渡
す。 (g) 保存しているパケット「3」をプロセス14へ渡
す。 (h) 保存しているパケット「4」をプロセス15へ渡
す。 (i) プロセス14からのパケット「5」を受取り、プロ
セス12へ渡す。
(E) Packet "3" from process 13,
Subsequently, the packet “4” is received and stored in each free area of the buffer memory 50. At this time, the buffer memory 50
Packets "2", "3", and "4" are stored in the. (f) Pass the stored packet “2” to the process 12. (g) Pass the stored packet “3” to the process 14. (h) The stored packet “4” is passed to the process 15. (i) Receive packet “5” from process 14 and pass it to process 12.

【0039】このように上記第1実施例によれば、通信
制御プロセス40に設けたバッファメモリ50に各パケ
ットを一時的に保存し、パケットの受け渡しを行うよう
にしたので、各プロセスが並行処理しながら同期通信を
行う場合、プロセスの数が増加し、かつ各コントローラ
間でパケットの受け渡しを行ってもデッドロック現象は
起こらない。従って、デッドロックを起こさないように
各プロセス間の通信順序を考えながら通信制御プログラ
ムを作成するという手間がなくなり、プログラム作成の
コストを軽減できる。
As described above, according to the first embodiment, since each packet is temporarily stored in the buffer memory 50 provided in the communication control process 40 and the packet is delivered, each process performs parallel processing. However, when performing synchronous communication, the number of processes increases, and the deadlock phenomenon does not occur even if packets are passed between the controllers. Therefore, the trouble of creating the communication control program while considering the communication order between the processes so as not to cause deadlock is eliminated, and the cost of creating the program can be reduced.

【0040】次に本発明の第2実施例について説明す
る。なお、この実施例では図1に示す計算機ネットワー
クにおいて各通信制御プロセス40、41、42の機能
が異なるのみなので、ここでは通信制御プロセス40に
ついて説明する。通信制御プロセス40は図7及び図8
に示すパケット受渡し流れ図に従って処理を実行するこ
とにより次の機能を有している。プロセス12〜15又
は他のコントローラ20、30から受け取ったパケット
がデータ要求用又はデータ送信用かを判別するパケット
判別機能を有している。
Next, a second embodiment of the present invention will be described. In this embodiment, only the functions of the communication control processes 40, 41, 42 in the computer network shown in FIG. 1 differ, so the communication control process 40 will be described here. The communication control process 40 is shown in FIGS.
It has the following functions by executing processing according to the packet delivery flow chart shown in FIG. It has a packet discriminating function for discriminating whether the packet received from the processes 12 to 15 or the other controllers 20 and 30 is for data request or data transmission.

【0041】この場合、データ要求用のパケットは図9
に示すように先頭にパケット種(要求パケットでは
「0」)、次に送信元コンピュータ番号、送信元プロセ
ス番号、要求パケットの送信元コンピュータ番号、要求
するパケットの送信元プロセス番号の順に形成されてい
る。又、データ送信用のパケットは図10に示すように
先頭にパケット種(送信パケットでは「1」)、次に送
信先コンピュータ番号、送信元プロセス番号、送信元コ
ンピュータ番号、送信元プロセス番号、データの順に形
成されている。なお、これらデータ要求用及びデータ送
信用の各パケットは、図11及び図12に示すようにデ
ータ種を追加し、このデータ種の番号をデータの種類に
応じて予め決めておき(例えばエマージェンシー信号は
「−1」)、その番号で要求条件を指定するようにして
もよい。次にプロセス12〜15又は他のコントローラ
20、30から受けたデータ送信用のパケットをバッフ
ァメモリ50の空き領域に保存するパケット受取機能、
In this case, the data request packet is shown in FIG.
As shown in, the packet type (“0” in the request packet) is formed at the beginning, and then the source computer number, the source process number, the source computer number of the request packet, and the source process number of the requested packet are formed in this order. There is. Further, as shown in FIG. 10, the packet for data transmission has a packet type (“1” in the transmission packet) at the beginning, then a destination computer number, a source process number, a source computer number, a source process number, and data. Are formed in this order. It should be noted that the data request packets and the data transmission packets are added with a data type as shown in FIGS. 11 and 12, and the number of the data type is determined in advance according to the data type (for example, an emergency signal). "-1"), and the required condition may be designated by the number. Next, a packet receiving function of saving a packet for data transmission received from the processes 12 to 15 or the other controllers 20 and 30 in an empty area of the buffer memory 50,

【0042】プロセス12〜15又は他のコントローラ
20、30から受けたデータ要求用のパケットで指示さ
れたパケットをバッファメモリ50から読み出し、この
パケットを送信先のプロセスに渡すパケット渡し機能、
現時点でバッファメモリ50に保存されているパケット
数mを求める機能、各パケットの到着順序を示すn次元
のインデックス配列を作成する機能、を有している。次
に上記の如く構成された装置の作用について説明する。 (1) パケットの受け渡し
A packet passing function for reading out a packet designated by the data request packet received from the processes 12 to 15 or the other controllers 20 and 30 from the buffer memory 50 and passing this packet to the destination process.
It has a function of obtaining the number m of packets currently stored in the buffer memory 50 and a function of creating an n-dimensional index array indicating the arrival order of each packet. Next, the operation of the apparatus configured as described above will be described. (1) Passing packets

【0043】通信制御プロセス40はステップ#30にお
いてパケットを受け取ると、次のステップ#31において
受け取ったパケットがデータ要求用か、又はデータ送信
用かをパケット種により判定する。この判定の結果、デ
ータ送信用であれば、通信制御プロセス40はステップ
#32においてバッファメモリ50の各パケットバッファ
領域「1」〜「n」の番地iを「1」に設定し、次のス
テップ#33〜#35において番地iを繰上げながら各パケ
ットバッファ領域「1」〜「n」が空いているかを検索
する。この場合、通信制御プロセス40はステップ#33
においてインデックスを検索し、このインデックスID
X(m) が「3番目」まであれば、ステップ#37において
4番目に検索したパケットバッファ領域「4」にデータ
送信用パケットを保存し、次のステップ#38でパケット
数mをカウントアップし、次のステップ#39でインデッ
クスIDX(m) を番地iと対応させて記憶する。
Upon receiving the packet in step # 30, the communication control process 40 determines in step # 31 whether the received packet is for data request or for data transmission, based on the packet type. If the result of this determination is that it is for data transmission, the communication control process 40 sets the address i of each packet buffer area "1" to "n" of the buffer memory 50 to "1" in step # 32, and the next step In steps # 33 to # 35, the address i is moved up and it is searched whether or not each of the packet buffer areas "1" to "n" is free. In this case, the communication control process 40 proceeds to step # 33.
Search for the index in
If X (m) is up to "third", the packet for data transmission is stored in the packet buffer area "4" searched fourth in step # 37, and the number of packets m is counted up in the next step # 38. In the next step # 39, the index IDX (m) is stored in association with the address i.

【0044】一方、上記ステップ#31での判定の結果、
パケットがデータ要求用であれば、通信制御プロセス4
0はステップ#40に移り、バッファメモリ50の各パケ
ットバッファ領域「1」〜「n」の番地iを「1」に設
定する。次に通信制御プロセス40はステップ#41〜#
43において番地iを繰上げながら、つまりインデックス
IDX(i) の古い順に保存されているパケットを検索
し、そのパケットに書かれている送信先コンピュータ番
号及び送信先プロセス番号からデータ要求用パケットで
要求されているパケットかを判断する。なお、データ要
求用パケットで要求されたパケットがなければ、再びス
テップ#30に戻る。
On the other hand, as a result of the judgment in step # 31,
If the packet is for data request, communication control process 4
If 0, the process proceeds to step # 40, and the address i of each packet buffer area "1" to "n" of the buffer memory 50 is set to "1". Next, the communication control process 40 executes steps # 41 to #.
In 43, the address i is advanced, that is, the packets stored in the oldest order of the index IDX (i) are searched, and the data request packet is requested from the destination computer number and the destination process number written in the packet. It is determined that the packet is If there is no packet requested by the data request packet, the process returns to step # 30 again.

【0045】次に要求するパケットが見付かれば、通信
制御プロセス40はステップ#44に移り、そのパケット
をバッファメモリ50から読み出してデータ要求用パケ
ットに書かれている送信元コントローラのプロセスに渡
す。
If the next request packet is found, the communication control process 40 moves to step # 44, reads the packet from the buffer memory 50, and passes it to the process of the transmission source controller written in the data request packet. .

【0046】次に通信制御プロセス40はステップ#45
においてパケット数mを1カウントダウンし、次のステ
ップ#46において番地iをjとし、次のステップ#47〜
#49において先に読み出したパケットのインデックス分
を削除し、各インデックスIDX(j) を順次繰り上げ
る。そして、再びステップ#30に戻る。 (2) 通信制御プロセス40でのパケットの受渡し 各プロセス13〜15から各データ送信用パケットを受
けと、通信制御プロセス40はこれらデータ送信用パケ
ットを順次バッファメモリ50に保存する。
Next, the communication control process 40 proceeds to step # 45.
In the next step # 46, the number of packets m is decremented by 1 and the address i is set to j in the next step # 46.
At # 49, the index portion of the packet read out earlier is deleted, and each index IDX (j) is sequentially advanced. Then, the process returns to step # 30 again. (2) Delivery of Packets in Communication Control Process 40 Upon receipt of each data transmission packet from each of the processes 13 to 15, the communication control process 40 sequentially stores these data transmission packets in the buffer memory 50.

【0047】この状態にプロセス12が送信元をプロセ
ス13とするパケットの要求用パケットを送ると、通信
制御プロセス40はこの要求用パケットを受け取り、要
求された送信元プロセス13のデータ送信用パケットを
バッファメモリ50から読み出してプロセス12に返送
する。
In this state, when the process 12 sends a request packet for a packet whose source is the process 13, the communication control process 40 receives the request packet and sends the requested data transmission packet of the source process 13. It is read from the buffer memory 50 and returned to the process 12.

【0048】次にプロセス12が送信元プロセス14と
する要求用パケットを送ると、通信制御プロセス40は
上記同様に送信元プロセス14のデータ送信用パケット
をバッファメモリ50から読み出してプロセス12に返
送する。
Next, when the process 12 sends a request packet for the transmission source process 14, the communication control process 40 reads the data transmission packet of the transmission source process 14 from the buffer memory 50 and returns it to the process 12 in the same manner as above. .

【0049】次にプロセス12が送信元プロセス15と
する要求用パケットを送ると、通信制御プロセス40は
上記同様に送信元プロセス15のデータ送信用パケット
をバッファメモリ50から読み出してプロセス12に返
送する。
Next, when the process 12 sends a request packet for the transmission source process 15, the communication control process 40 reads the data transmission packet of the transmission source process 15 from the buffer memory 50 and returns it to the process 12 as described above. .

【0050】このように上記第2実施例によれば、上記
第1実施例と同様の効果を奏するだけでなく、各プロセ
ス13〜15が共にプロセス12宛てにパケットを送信
しても、プロセス12では各プロセス13〜15の順で
各パケットを受け取ることができる。従って、プロセス
12は各プロセス13〜15の順でパケットを受け取る
プログラムを組み込めばよく、このプログラムの作成は
容易となる。
As described above, according to the second embodiment, not only the same effect as that of the first embodiment can be obtained, but even if each of the processes 13 to 15 sends a packet to the process 12, the process 12 can be processed. Then, each packet can be received in the order of each process 13 to 15. Therefore, the process 12 may incorporate a program for receiving packets in the order of the processes 13 to 15, and the creation of this program becomes easy.

【0051】一般に複数のプロセスが並行して実行さ
れ、かつ必要に応じて各プロセス間でパケット通信を行
う場合、イベント駆動型と呼んで各プロセスにおいて、
何時どのようなパケットを受け取るか確定できなくなっ
ているが、かかる実施例では何時どのようなパケットが
送られても、確実にパケットを送信先のプロセスに渡す
ことができる。
Generally, when a plurality of processes are executed in parallel and packet communication is performed between the processes as needed, the process is called event-driven and
Although it is not possible to determine what kind of packet is received at what time, in such an embodiment, the packet can be surely delivered to the process of the transmission destination regardless of what kind of packet is sent at any time.

【0052】なお、本発明は上記各実施例に限定される
ものでなくその要旨を変更しない範囲で変形してもよ
い。例えば、使用チェックテーブル51でのパケット保
存の有無は「1」「0」に限らず他の符号を使用しても
よく、パケット長は最大パケット長以下であればよい。
The present invention is not limited to the above embodiments, and may be modified within the scope of the invention. For example, the presence / absence of packet storage in the usage check table 51 is not limited to “1” and “0”, other codes may be used, and the packet length may be the maximum packet length or less.

【0053】又、通信制御プロセス40は受け取ったパ
ケットが自身のコントロール以外であれば、各通信リン
クr1〜r4に放送するのでなく、各通信リンクr1〜
r4の接続先のコントローラを知っていれば、そのコン
トローラを判断してパケットを渡すようにしてもよい。
If the received packet is other than its own control, the communication control process 40 does not broadcast it to each of the communication links r1 to r4, but the communication links r1 to r4.
If the controller to which r4 is connected is known, the controller may be determined and the packet may be passed.

【0054】又、データ要求パケットにおいて図9に示
す要求パケットの送信元コンピュータ番号を例えば「−
1」に設定すれば、あらゆるコンピュータ番号からのパ
ケットを指定するものとし、又同様に要求するパケット
の送信元プロセス番号を例えば「−1」に設定すれば、
指定したコンピュータのあらゆるプロセスを指定するよ
うにしてもよい。
In the data request packet, the source computer number of the request packet shown in FIG.
If "1" is set, a packet from any computer number is designated, and similarly, if the transmission source process number of the requested packet is set to "-1", for example,
All processes of the designated computer may be designated.

【0055】[0055]

【発明の効果】以上詳記したように本発明によれば、複
数のプロセスが並行処理しながら同期通信を行ってもデ
ッドロック現象を起こさずに各プロセス間で通信ができ
る通信制御装置を提供できる。
As described above in detail, according to the present invention, there is provided a communication control device capable of communicating between processes without causing a deadlock phenomenon even if a plurality of processes perform synchronous communication while performing parallel processing. it can.

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

【図1】本発明に係わる通信制御装置を計算機ネットワ
ークに適用した第1実施例を示す構成図。
FIG. 1 is a configuration diagram showing a first embodiment in which a communication control device according to the present invention is applied to a computer network.

【図2】同装置におけるバッファメモリの模式図。FIG. 2 is a schematic diagram of a buffer memory in the same device.

【図3】同装置における使用チェックテーブルの模式
図。
FIG. 3 is a schematic diagram of a usage check table in the device.

【図4】同装置のパケット受取り流れ図。FIG. 4 is a packet reception flowchart of the device.

【図5】同装置のパケット渡し流れ図。FIG. 5 is a packet flow chart of the device.

【図6】同装置における通信制御プロセスでのパケット
受け渡し図。
FIG. 6 is a diagram of packet transfer in a communication control process in the same device.

【図7】本発明装置の第2実施例におけるパケット受渡
し流れ図。
FIG. 7 is a packet delivery flow chart in the second embodiment of the device of the present invention.

【図8】同装置におけるパケット受渡し流れ図。FIG. 8 is a packet delivery flow chart in the apparatus.

【図9】同装置に用いられるデータ要求用パケットのフ
ォーマット図。
FIG. 9 is a format diagram of a data request packet used in the device.

【図10】同装置に用いられるデータ送信用パケットの
フォーマット図。
FIG. 10 is a format diagram of a data transmission packet used in the apparatus.

【図11】同装置に用いられるデータ要求用パケットの
フォーマット図。
FIG. 11 is a format diagram of a data request packet used in the apparatus.

【図12】同装置に用いられるデータ送信用パケットの
フォーマット図。
FIG. 12 is a format diagram of a data transmission packet used in the device.

【図13】計算機ネットワークの構成図。FIG. 13 is a configuration diagram of a computer network.

【図14】同ネットワークにおけるパケット受渡し流れ
図。
FIG. 14 is a packet delivery flowchart in the network.

【図15】パケットのフォーマット図。FIG. 15 is a packet format diagram.

【図16】同ネットワークにおける通信制御プロセスで
のパケット受け渡し図。
FIG. 16 is a diagram of packet transfer in a communication control process in the same network.

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

10,20,30…コントローラ、40,41,42…
通信制御プロセス、12,13,14,15…プロセ
ス、22,23,24,25…プロセス、32,33,
34,35…プロセス、50…バッファメモリ、51…
使用チェックテーブル。
10, 20, 30 ... Controller, 40, 41, 42 ...
Communication control process, 12, 13, 14, 15 ... Process, 22, 23, 24, 25 ... Process, 32, 33,
34, 35 ... Process, 50 ... Buffer memory, 51 ...
Usage check table.

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】 少なくとも所定処理を行う各プロセスが
各通信チャネルを介して接続され、これらプロセス間で
受け渡されるパケットを通信制御する通信制御装置にお
いて、 前記パケットを一時的に保存するバッファメモリと、 このバッファメモリにおける各領域の使用状態を示すチ
ェックテーブルと、 前記プロセスから受けた前記パケットを、前記チェック
テーブルでチェックした前記バッファメモリの空き領域
に保存するパケット受取手段と、 前記バッファメモリ保存されているパケットを前記チェ
ックテーブルでチェックし、このパケットを送信先の前
記プロセスに渡すパケット渡し手段と、 を具備したことを特徴とする通信制御装置。
1. A communication control device in which at least each process for performing a predetermined process is connected via each communication channel, and communication control is performed for a packet passed between these processes, a buffer memory for temporarily storing the packet, and A check table showing a usage state of each area in the buffer memory, packet receiving means for storing the packet received from the process in an empty area of the buffer memory checked by the check table, and the buffer memory A packet passing means for checking the existing packet in the check table and delivering the packet to the process of the destination, the communication control device.
【請求項2】 少なくとも所定処理を行う各プロセスが
各通信チャネルを介して接続され、これらプロセス間で
受け渡されるパケットを通信制御する通信制御装置にお
いて、 前記プロセスから受け取ったパケットがデータ送信用又
はデータ要求用かを判別するパケット判別手段と、 前記データ送信用パケットを一時的に保存する複数領域
のバッファメモリと、 前記プロセスから受けたデータ送信用パケットを前記バ
ッファメモリの空き領域に保存するパケット受取手段
と、 前記プロセスから受けたデータ要求用パケットで要求さ
れた前記パケットを前記バッファメモリから読み出し、
このパケットをデータ要求用パケットを送信した前記プ
ロセスに返送するパケット渡し手段と、 を具備したことを特徴とする通信制御装置。
2. A communication control device, wherein at least each process for performing a predetermined process is connected via each communication channel, and communication control is performed for a packet passed between these processes, wherein a packet received from said process is for data transmission or Packet discriminating means for discriminating whether it is for data request, buffer memory of a plurality of areas for temporarily storing the data transmitting packet, packet for storing the data transmitting packet received from the process in an empty area of the buffer memory Receiving means, and reading from the buffer memory the packet requested by the data request packet received from the process,
And a packet passing means for returning the packet to the process that has transmitted the data request packet, and a communication control device.
JP23468092A 1992-09-02 1992-09-02 Communication controller Pending JPH0685841A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23468092A JPH0685841A (en) 1992-09-02 1992-09-02 Communication controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23468092A JPH0685841A (en) 1992-09-02 1992-09-02 Communication controller

Publications (1)

Publication Number Publication Date
JPH0685841A true JPH0685841A (en) 1994-03-25

Family

ID=16974774

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23468092A Pending JPH0685841A (en) 1992-09-02 1992-09-02 Communication controller

Country Status (1)

Country Link
JP (1) JPH0685841A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102672695A (en) * 2011-12-25 2012-09-19 河南科技大学 Precise operating platform

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102672695A (en) * 2011-12-25 2012-09-19 河南科技大学 Precise operating platform

Similar Documents

Publication Publication Date Title
US5175732A (en) Method and apparatus for controlling data communication operations within stations of a local-area network
JPH0550021B2 (en)
JPH0981487A (en) Network data transfer method
JPH0934818A (en) Method and apparatus for shortened waiting time data reception at inside of data-processing system using packet- based architecture
JPS62102342A (en) Decentralized file recovery system
JPH114279A (en) Method and mechanism for transmission between advanced systems
JPS6336586B2 (en)
US7069305B2 (en) Computer system and a data transfer method thereof using remote direct memory access
US5835779A (en) Message transmission among processing units using interrupt control technique
JP3641834B2 (en) Parallel processor system and packet discard method suitable therefor
US20060165055A1 (en) Method and apparatus for managing the flow of data within a switching device
EP3952228A1 (en) Local interconnect network (lin) messaging between lin partitions separated by a backbone communication network
JPH0685841A (en) Communication controller
JPH0196750A (en) Data processing system
JPS6054549A (en) Data transmitting method and device
US6822967B1 (en) Relay unit and frame tracing method
JP3799741B2 (en) Bus controller
JPH0218623B2 (en)
JP2853607B2 (en) Communication system between jobs
JP2984594B2 (en) Multi-cluster information processing system
JPH0621925A (en) Communication control system for multiplex transmission line
JPH09269936A (en) Remote reading processing method and device therefor
JP3056348B2 (en) Bridge device and storage means management method
JP2821299B2 (en) Access control method
JP2584841B2 (en) Packet switching control device