JPH0685841A - 通信制御装置 - Google Patents
通信制御装置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
Links
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
(57)【要約】
【目的】本発明は、複数のプロセスが並行処理しながら
同期通信を行ってもデッドロック現象を起こさずに各プ
ロセス間で通信を行う。 【構成】プロセス(12,13,14,15) からパケットを受け取
ると、パケット受取手段(40)によりバッファメモリ(50)
における各領域の使用状態がチェックテーブル(51)を見
ることによってチェックされ、空いている領域にパケッ
トが保存される。一方、バッファメモリ(50)に保存され
ているパケットが、パケット渡し手段(40)によりチェッ
クテーブル(51)をチェックすることにより検索され、こ
の保存されているパケットがその送信先のプロセス(12,
13,14,15) に渡される。これにより、各プロセス(12,1
3,14,15) 間でパケットの受け渡しがデッドロック現象
を起こさずに行われる。
同期通信を行ってもデッドロック現象を起こさずに各プ
ロセス間で通信を行う。 【構成】プロセス(12,13,14,15) からパケットを受け取
ると、パケット受取手段(40)によりバッファメモリ(50)
における各領域の使用状態がチェックテーブル(51)を見
ることによってチェックされ、空いている領域にパケッ
トが保存される。一方、バッファメモリ(50)に保存され
ているパケットが、パケット渡し手段(40)によりチェッ
クテーブル(51)をチェックすることにより検索され、こ
の保存されているパケットがその送信先のプロセス(12,
13,14,15) に渡される。これにより、各プロセス(12,1
3,14,15) 間でパケットの受け渡しがデッドロック現象
を起こさずに行われる。
Description
【0001】
【産業上の利用分野】本発明は、各プロセス間で受け渡
されるパケットの通信制御を行う通信制御装置に関す
る。
されるパケットの通信制御を行う通信制御装置に関す
る。
【0002】
【従来の技術】図13は計算機ネットワークの構成図で
ある。ホストコンピュータ1には第1コントローラ10
が接続され、この第1コントローラ10に対して第2コ
ントローラ20及び第3コントローラ30が接続されて
いる。この場合、各コントローラ10、20、30は各
通信リンクr1〜r4を備え、これら通信リンクr1〜
r4を介して互いに接続されている。
ある。ホストコンピュータ1には第1コントローラ10
が接続され、この第1コントローラ10に対して第2コ
ントローラ20及び第3コントローラ30が接続されて
いる。この場合、各コントローラ10、20、30は各
通信リンクr1〜r4を備え、これら通信リンクr1〜
r4を介して互いに接続されている。
【0003】又、各コントローラ10、20、30内で
は、point to point型で接続された複数のプロセスが並
列に実行され、これらプロセス間でパケットを受け渡し
て同期通信が行われている。
は、point to point型で接続された複数のプロセスが並
列に実行され、これらプロセス間でパケットを受け渡し
て同期通信が行われている。
【0004】コントローラ10内には通信制御プロセス
11が備えられ、この通信制御プロセス11に各チャネ
ルを介して各プロセス12〜15が接続されている。な
お、コントローラ20、30においても同様に通信制御
プロセス21、31に各チャネルを介して各プロセス2
2〜25、32〜35が接続されている。
11が備えられ、この通信制御プロセス11に各チャネ
ルを介して各プロセス12〜15が接続されている。な
お、コントローラ20、30においても同様に通信制御
プロセス21、31に各チャネルを介して各プロセス2
2〜25、32〜35が接続されている。
【0005】かかる構成において通信制御プロセス1
1、21,31は図14に示す通信制御流れ図に従って
パケットの受け渡しを行う。この通信制御を第1コント
ローラ10について説明する。
1、21,31は図14に示す通信制御流れ図に従って
パケットの受け渡しを行う。この通信制御を第1コント
ローラ10について説明する。
【0006】先ず、通信制御プロセス11はステップ#
1において各通信リンクr1〜r4又は自身のコントロ
ーラ10内の各プロセス12〜15からのパケットを受
け取る。このパケットには図15に示すように先頭に送
信先コントローラ番号、次に送信先プロセス番号、送信
元コントローラ番号、送信元プロセス番号、データが書
かれている。
1において各通信リンクr1〜r4又は自身のコントロ
ーラ10内の各プロセス12〜15からのパケットを受
け取る。このパケットには図15に示すように先頭に送
信先コントローラ番号、次に送信先プロセス番号、送信
元コントローラ番号、送信元プロセス番号、データが書
かれている。
【0007】次に通信制御プロセス11はステップ#2
においてパケットの内容から他のコントローラ20、3
0から送られてきたパケットかを判断する。この判断に
より他のコントローラ20、30からのパケットであれ
ば、通信制御プロセス11はステップ#3に移ってパケ
ットを受け取った通信リンクr1〜r4を記憶する。
においてパケットの内容から他のコントローラ20、3
0から送られてきたパケットかを判断する。この判断に
より他のコントローラ20、30からのパケットであれ
ば、通信制御プロセス11はステップ#3に移ってパケ
ットを受け取った通信リンクr1〜r4を記憶する。
【0008】又、上記ステップ#2の判断の結果、他の
コントローラ20、30からのパケットでなければ、通
信制御プロセス11はステップ#4に移って自身のプロ
セス12〜15からのパケットかを判断する。この判断
の結果、自身のプロセス12〜15からのパケットであ
れば、通信制御プロセス11はステップ#5に移ってパ
ケットに書かれた送信先プロセス番号に従ってパケット
をそのプロセス12〜15に渡す。
コントローラ20、30からのパケットでなければ、通
信制御プロセス11はステップ#4に移って自身のプロ
セス12〜15からのパケットかを判断する。この判断
の結果、自身のプロセス12〜15からのパケットであ
れば、通信制御プロセス11はステップ#5に移ってパ
ケットに書かれた送信先プロセス番号に従ってパケット
をそのプロセス12〜15に渡す。
【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」を送信 の順序で処理を実行する場合を説明する。
において自身のコントローラ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」を送信 の順序で処理を実行する場合を説明する。
【0010】この場合、プロセス12がパケット「1」
及び「2」を送信した後に、プロセス13がパケット
「4」を返送すれば、プロセス12は正常にパケットの
受け渡しを行う。
及び「2」を送信した後に、プロセス13がパケット
「4」を返送すれば、プロセス12は正常にパケットの
受け渡しを行う。
【0011】ところが、プロセス12がパケット「2」
を送信する以前に、プロセス13がパケット「4」を返
送すると、通信制御プロセス11はプロセス13からの
パケット「4」をプロセス「1」に渡そうとする。
を送信する以前に、プロセス13がパケット「4」を返
送すると、通信制御プロセス11はプロセス13からの
パケット「4」をプロセス「1」に渡そうとする。
【0012】しかしながら、このときプロセス「1」は
パケット「2」を送信した後でなければ、パケット
「4」を受け取らないので、プロセス「1」は待ちの状
態となる。一方、通信制御プロセス11はパケット
「4」をプロセス「1」に渡さなければ、パケット
「2」を受け取ってプロセス「3」に渡すことができな
いので、待ち状態となる。
パケット「2」を送信した後でなければ、パケット
「4」を受け取らないので、プロセス「1」は待ちの状
態となる。一方、通信制御プロセス11はパケット
「4」をプロセス「1」に渡さなければ、パケット
「2」を受け取ってプロセス「3」に渡すことができな
いので、待ち状態となる。
【0013】このように互いに相手が通信を受け取るの
を待つ状態になると、永久に通信が進まなくなる、いわ
ゆるデッドロックと呼ばれる現象が起こる。このデッド
ロックは複数のプロセスが並行処理しながら同期通信を
行う場合に起こる。しかるに、プロセスの数が増加し、
各コントローラ間でパケットの受け渡しを行う場合、デ
ッドロックが起こらないように通信制御プログラムを組
まなければならないが、この通信制御プログラムの作成
には非常な手間がかかり、注意を払って作成したとして
も完全にデッドロックをなくすことは困難である。
を待つ状態になると、永久に通信が進まなくなる、いわ
ゆるデッドロックと呼ばれる現象が起こる。このデッド
ロックは複数のプロセスが並行処理しながら同期通信を
行う場合に起こる。しかるに、プロセスの数が増加し、
各コントローラ間でパケットの受け渡しを行う場合、デ
ッドロックが起こらないように通信制御プログラムを組
まなければならないが、この通信制御プログラムの作成
には非常な手間がかかり、注意を払って作成したとして
も完全にデッドロックをなくすことは困難である。
【0014】
【発明が解決しようとする課題】以上のように複数のプ
ロセスが並行処理しながら同期通信を行う場合、デッド
ロック現象が起こり、各プロセス間でのパケットの受け
渡しが困難となる。
ロセスが並行処理しながら同期通信を行う場合、デッド
ロック現象が起こり、各プロセス間でのパケットの受け
渡しが困難となる。
【0015】そこで本発明は、複数のプロセスが並行処
理しながら同期通信を行ってもデッドロック現象を起こ
さずに各プロセス間で通信ができる通信制御装置を提供
することを目的とする。
理しながら同期通信を行ってもデッドロック現象を起こ
さずに各プロセス間で通信ができる通信制御装置を提供
することを目的とする。
【0016】
【課題を解決するための手段】本発明は、少なくとも所
定処理を行う各プロセスが各通信チャネルを介して接続
され、これらプロセス間で受け渡されるパケットを通信
制御する通信制御装置において、
定処理を行う各プロセスが各通信チャネルを介して接続
され、これらプロセス間で受け渡されるパケットを通信
制御する通信制御装置において、
【0017】パケットを一時的に保存するバッファメモ
リと、このバッファメモリにおける各領域の使用状態を
示すチェックテーブルと、プロセスから受けたパケット
を、チェックテーブルでチェックしたバッファメモリの
空き領域に保存するパケット受取手段と、バッファメモ
リ保存されているパケットをチェックテーブルでチェッ
クし、このパケットを送信先のプロセスに渡すパケット
渡し手段とを備えて上記目的を達成しようとする通信制
御装置である。
リと、このバッファメモリにおける各領域の使用状態を
示すチェックテーブルと、プロセスから受けたパケット
を、チェックテーブルでチェックしたバッファメモリの
空き領域に保存するパケット受取手段と、バッファメモ
リ保存されているパケットをチェックテーブルでチェッ
クし、このパケットを送信先のプロセスに渡すパケット
渡し手段とを備えて上記目的を達成しようとする通信制
御装置である。
【0018】又、本発明は、少なくとも所定処理を行う
各プロセスが各通信チャネルを介して接続され、これら
プロセス間で受け渡されるパケットを通信制御する通信
制御装置において、
各プロセスが各通信チャネルを介して接続され、これら
プロセス間で受け渡されるパケットを通信制御する通信
制御装置において、
【0019】プロセスから受け取ったパケットがデータ
送信用又はデータ要求用かを判別するパケット判別手段
と、データ送信用パケットを一時的に保存する複数領域
のバッファメモリと、プロセスから受けたデータ送信用
パケットをバッファメモリの空き領域に保存するパケッ
ト受取手段と、プロセスから受けたデータ要求用パケッ
トで要求されたパケットをバッファメモリから読み出
し、このパケットを送信先のプロセスに渡すパケット渡
し手段とを備えて上記目的を達成しようとする通信制御
装置である。
送信用又はデータ要求用かを判別するパケット判別手段
と、データ送信用パケットを一時的に保存する複数領域
のバッファメモリと、プロセスから受けたデータ送信用
パケットをバッファメモリの空き領域に保存するパケッ
ト受取手段と、プロセスから受けたデータ要求用パケッ
トで要求されたパケットをバッファメモリから読み出
し、このパケットを送信先のプロセスに渡すパケット渡
し手段とを備えて上記目的を達成しようとする通信制御
装置である。
【0020】
【作用】このような手段を備えたことにより、プロセス
からパケットを受け取ると、パケット受取手段によりバ
ッファメモリにおける各領域の使用状態がチェックテー
ブルを見ることによってチェックされ、空いている領域
にパケットが保存される。一方、バッファメモリ保存さ
れているパケットが、パケット渡し手段によりチェック
テーブルをチェックすることにより検索され、この保存
されているパケットがその送信先のプロセスに渡され
る。これにより、各プロセス間でパケットの受け渡しが
デッドロック現象を起こさずに行われる。
からパケットを受け取ると、パケット受取手段によりバ
ッファメモリにおける各領域の使用状態がチェックテー
ブルを見ることによってチェックされ、空いている領域
にパケットが保存される。一方、バッファメモリ保存さ
れているパケットが、パケット渡し手段によりチェック
テーブルをチェックすることにより検索され、この保存
されているパケットがその送信先のプロセスに渡され
る。これにより、各プロセス間でパケットの受け渡しが
デッドロック現象を起こさずに行われる。
【0021】又、上記手段を備えたことにより、プロセ
スから受け取ったパケットを受け取ると、パケット判別
手段によりパケットがデータ送信用又はデータ要求用か
が判別される。このパケットの判別の結果、データ送信
用パケットであればパケット受取手段によりパケットを
バッファメモリの空き領域に保存し、又データ要求用パ
ケットであればパケット渡し手段によりデータ要求用の
パケットで指示されたパケットをバッファメモリから読
み出し、このパケットを送信先のプロセスに渡す。
スから受け取ったパケットを受け取ると、パケット判別
手段によりパケットがデータ送信用又はデータ要求用か
が判別される。このパケットの判別の結果、データ送信
用パケットであればパケット受取手段によりパケットを
バッファメモリの空き領域に保存し、又データ要求用パ
ケットであればパケット渡し手段によりデータ要求用の
パケットで指示されたパケットをバッファメモリから読
み出し、このパケットを送信先のプロセスに渡す。
【0022】
【実施例】以下、本発明の第1実施例について図面を参
照して説明する。なお、図12と同一部分には同一符号
を付してその詳しい説明は省略する。
照して説明する。なお、図12と同一部分には同一符号
を付してその詳しい説明は省略する。
【0023】図1は通信制御装置を適用した計算機ネッ
トワークの構成図である。各通信制御プロセス40、4
1、42には、それぞれ図2に示すバッファメモリ50
及び図3に示す使用チェックテーブル51が備えられて
いる。
トワークの構成図である。各通信制御プロセス40、4
1、42には、それぞれ図2に示すバッファメモリ50
及び図3に示す使用チェックテーブル51が備えられて
いる。
【0024】バッファメモリ50は複数のパケットバッ
ファ領域「1」〜「n」を有し、これらパケットバッフ
ァ領域「1」〜「n」のいずれかにパケットが保存され
るものとなっている。
ファ領域「1」〜「n」を有し、これらパケットバッフ
ァ領域「1」〜「n」のいずれかにパケットが保存され
るものとなっている。
【0025】又、使用チェックテーブル51はバッファ
メモリ50の各パケットバッファ領域「1」〜「n」の
使用状態をチェックするためのもので、各パケットバッ
ファ領域「1」〜「n」に対応する各チェック領域c1
〜cnと、各パケットバッファ領域「1」〜「n」に保
存されたパケットの受け取り通信リンクr1〜r4をチ
ェックするための通信リンク領域s1〜snとが形成さ
れている。
メモリ50の各パケットバッファ領域「1」〜「n」の
使用状態をチェックするためのもので、各パケットバッ
ファ領域「1」〜「n」に対応する各チェック領域c1
〜cnと、各パケットバッファ領域「1」〜「n」に保
存されたパケットの受け取り通信リンクr1〜r4をチ
ェックするための通信リンク領域s1〜snとが形成さ
れている。
【0026】この場合、各チェック領域c1〜cnに
は、各パケットバッファ領域「1」〜「n」にパケット
が保存されている場合に「1」が書き込まれ、空き領域
の場合に「0」が書き込まれる。又、通信リンク領域s
1〜snには通信リンクr1〜r4又は自身のコントロ
ーラの各プロセスからのパケットであれば「0」が書き
込まれる。
は、各パケットバッファ領域「1」〜「n」にパケット
が保存されている場合に「1」が書き込まれ、空き領域
の場合に「0」が書き込まれる。又、通信リンク領域s
1〜snには通信リンクr1〜r4又は自身のコントロ
ーラの各プロセスからのパケットであれば「0」が書き
込まれる。
【0027】又、各通信制御プロセス40、41、42
は、図4に示すパケット受取流れ図に従ったパケット受
取処理と、図5に示すパケット受渡し流れ図に従ったパ
ケット受渡し処理とを並行処理する機能を有している。
は、図4に示すパケット受取流れ図に従ったパケット受
取処理と、図5に示すパケット受渡し流れ図に従ったパ
ケット受渡し処理とを並行処理する機能を有している。
【0028】パケット受取処理を実行することにより各
通信制御プロセス40、41、42は、各プロセスから
受けたパケットを、使用チェックテーブル51でチェッ
クしたバッファメモリ50の空き領域に保存する機能を
有するものとなる。
通信制御プロセス40、41、42は、各プロセスから
受けたパケットを、使用チェックテーブル51でチェッ
クしたバッファメモリ50の空き領域に保存する機能を
有するものとなる。
【0029】又、パケット受渡し処理を実行することに
より各通信制御プロセス40、41、42は、バッファ
メモリ50に保存されているパケットを使用チェックテ
ーブル51で検索し、保存されているパケットを送信先
のプロセスに渡すパケット渡し手段との各機能を有する
ものとなる。次に上記の如く構成された計算機ネットワ
ークの作用について図4に示すパケット受取流れ図及び
図5に示すパケット受渡し流れ図に従って説明する。 (1) パケット受取処理
より各通信制御プロセス40、41、42は、バッファ
メモリ50に保存されているパケットを使用チェックテ
ーブル51で検索し、保存されているパケットを送信先
のプロセスに渡すパケット渡し手段との各機能を有する
ものとなる。次に上記の如く構成された計算機ネットワ
ークの作用について図4に示すパケット受取流れ図及び
図5に示すパケット受渡し流れ図に従って説明する。 (1) パケット受取処理
【0030】通信制御プロセス40はステップ#10にお
いてバッファメモリ50の各パケットバッファ領域
「1」〜「n」の番地iを「1」に設定し、次のステッ
プ#11〜#13において番地iを繰上げながら各パケット
バッファ領域「1」〜「n」が空いているかを検索す
る。
いてバッファメモリ50の各パケットバッファ領域
「1」〜「n」の番地iを「1」に設定し、次のステッ
プ#11〜#13において番地iを繰上げながら各パケット
バッファ領域「1」〜「n」が空いているかを検索す
る。
【0031】この検索により空いているパケットバッフ
ァ領域が見付かると、通信制御プロセス40はステップ
#14に移って各通信リンクr1〜r4を通して受取られ
るパケット、又は各プロセス12〜15から各通信チャ
ネルを通して受取るパケットを待つ。
ァ領域が見付かると、通信制御プロセス40はステップ
#14に移って各通信リンクr1〜r4を通して受取られ
るパケット、又は各プロセス12〜15から各通信チャ
ネルを通して受取るパケットを待つ。
【0032】この状態にプロセス12からパケットが取
り込まれると、通信制御プロセス40はステップ#15に
おいてプロセス12からのパケットを受取り、このパケ
ットを、先に検索した空きのパケットバッファ領域、例
えば領域「1」に書き込む。
り込まれると、通信制御プロセス40はステップ#15に
おいてプロセス12からのパケットを受取り、このパケ
ットを、先に検索した空きのパケットバッファ領域、例
えば領域「1」に書き込む。
【0033】次に通信制御プロセス40はステップ#16
においてパケットバッファ領域「1」に対応する使用チ
ェックテーブル51のチェック領域c1にパケット保存
を示す「1」を書き込み、かつ通信リンク領域s1に
「0」を書き込む。この後、再び通信制御プロセス40
はステップ#10に戻る。 (2) パケット渡し処理
においてパケットバッファ領域「1」に対応する使用チ
ェックテーブル51のチェック領域c1にパケット保存
を示す「1」を書き込み、かつ通信リンク領域s1に
「0」を書き込む。この後、再び通信制御プロセス40
はステップ#10に戻る。 (2) パケット渡し処理
【0034】通信制御プロセス40はステップ#20にお
いてバッファメモリ50の各パケットバッファ領域
「1」〜「n」の番地iを「1」に設定し、次のステッ
プ#21〜#23において番地iを繰上げながら各パケット
バッファ領域「1」〜「n」にパケットが保存されてい
るかを検索する。
いてバッファメモリ50の各パケットバッファ領域
「1」〜「n」の番地iを「1」に設定し、次のステッ
プ#21〜#23において番地iを繰上げながら各パケット
バッファ領域「1」〜「n」にパケットが保存されてい
るかを検索する。
【0035】この検索により例えばパケットバッファ領
域「1」におけるパケット保存が確認されると、通信制
御プロセス40はステップ#24に移り、同領域「2」に
保存されているパケットが自身のコントローラ40のプ
ロセス宛てのものであるかを判断する。
域「1」におけるパケット保存が確認されると、通信制
御プロセス40はステップ#24に移り、同領域「2」に
保存されているパケットが自身のコントローラ40のプ
ロセス宛てのものであるかを判断する。
【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の空き領域に保存する。
のプロセス宛であれば、通信制御プロセス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の空き領域に保存する。
【0037】(d) このパケット「2」をプロセス12に
渡そうとするが、プロセス12は各プロセス14、15
に各パケット「3」「4」を渡した後でなければパケッ
トを受取らない。従って、パケット「2」の渡しは待ち
状態となる。
渡そうとするが、プロセス12は各プロセス14、15
に各パケット「3」「4」を渡した後でなければパケッ
トを受取らない。従って、パケット「2」の渡しは待ち
状態となる。
【0038】(e) プロセス13からのパケット「3」、
続いてパケット「4」を受取り、バッファメモリ50の
各空き領域に保存する。このとき、バッファメモリ50
にはパケット「2」「3」「4」が保存されている。 (f) 保存しているパケット「2」をプロセス12へ渡
す。 (g) 保存しているパケット「3」をプロセス14へ渡
す。 (h) 保存しているパケット「4」をプロセス15へ渡
す。 (i) プロセス14からのパケット「5」を受取り、プロ
セス12へ渡す。
続いてパケット「4」を受取り、バッファメモリ50の
各空き領域に保存する。このとき、バッファメモリ50
にはパケット「2」「3」「4」が保存されている。 (f) 保存しているパケット「2」をプロセス12へ渡
す。 (g) 保存しているパケット「3」をプロセス14へ渡
す。 (h) 保存しているパケット「4」をプロセス15へ渡
す。 (i) プロセス14からのパケット「5」を受取り、プロ
セス12へ渡す。
【0039】このように上記第1実施例によれば、通信
制御プロセス40に設けたバッファメモリ50に各パケ
ットを一時的に保存し、パケットの受け渡しを行うよう
にしたので、各プロセスが並行処理しながら同期通信を
行う場合、プロセスの数が増加し、かつ各コントローラ
間でパケットの受け渡しを行ってもデッドロック現象は
起こらない。従って、デッドロックを起こさないように
各プロセス間の通信順序を考えながら通信制御プログラ
ムを作成するという手間がなくなり、プログラム作成の
コストを軽減できる。
制御プロセス40に設けたバッファメモリ50に各パケ
ットを一時的に保存し、パケットの受け渡しを行うよう
にしたので、各プロセスが並行処理しながら同期通信を
行う場合、プロセスの数が増加し、かつ各コントローラ
間でパケットの受け渡しを行ってもデッドロック現象は
起こらない。従って、デッドロックを起こさないように
各プロセス間の通信順序を考えながら通信制御プログラ
ムを作成するという手間がなくなり、プログラム作成の
コストを軽減できる。
【0040】次に本発明の第2実施例について説明す
る。なお、この実施例では図1に示す計算機ネットワー
クにおいて各通信制御プロセス40、41、42の機能
が異なるのみなので、ここでは通信制御プロセス40に
ついて説明する。通信制御プロセス40は図7及び図8
に示すパケット受渡し流れ図に従って処理を実行するこ
とにより次の機能を有している。プロセス12〜15又
は他のコントローラ20、30から受け取ったパケット
がデータ要求用又はデータ送信用かを判別するパケット
判別機能を有している。
る。なお、この実施例では図1に示す計算機ネットワー
クにおいて各通信制御プロセス40、41、42の機能
が異なるのみなので、ここでは通信制御プロセス40に
ついて説明する。通信制御プロセス40は図7及び図8
に示すパケット受渡し流れ図に従って処理を実行するこ
とにより次の機能を有している。プロセス12〜15又
は他のコントローラ20、30から受け取ったパケット
がデータ要求用又はデータ送信用かを判別するパケット
判別機能を有している。
【0041】この場合、データ要求用のパケットは図9
に示すように先頭にパケット種(要求パケットでは
「0」)、次に送信元コンピュータ番号、送信元プロセ
ス番号、要求パケットの送信元コンピュータ番号、要求
するパケットの送信元プロセス番号の順に形成されてい
る。又、データ送信用のパケットは図10に示すように
先頭にパケット種(送信パケットでは「1」)、次に送
信先コンピュータ番号、送信元プロセス番号、送信元コ
ンピュータ番号、送信元プロセス番号、データの順に形
成されている。なお、これらデータ要求用及びデータ送
信用の各パケットは、図11及び図12に示すようにデ
ータ種を追加し、このデータ種の番号をデータの種類に
応じて予め決めておき(例えばエマージェンシー信号は
「−1」)、その番号で要求条件を指定するようにして
もよい。次にプロセス12〜15又は他のコントローラ
20、30から受けたデータ送信用のパケットをバッフ
ァメモリ50の空き領域に保存するパケット受取機能、
に示すように先頭にパケット種(要求パケットでは
「0」)、次に送信元コンピュータ番号、送信元プロセ
ス番号、要求パケットの送信元コンピュータ番号、要求
するパケットの送信元プロセス番号の順に形成されてい
る。又、データ送信用のパケットは図10に示すように
先頭にパケット種(送信パケットでは「1」)、次に送
信先コンピュータ番号、送信元プロセス番号、送信元コ
ンピュータ番号、送信元プロセス番号、データの順に形
成されている。なお、これらデータ要求用及びデータ送
信用の各パケットは、図11及び図12に示すようにデ
ータ種を追加し、このデータ種の番号をデータの種類に
応じて予め決めておき(例えばエマージェンシー信号は
「−1」)、その番号で要求条件を指定するようにして
もよい。次にプロセス12〜15又は他のコントローラ
20、30から受けたデータ送信用のパケットをバッフ
ァメモリ50の空き領域に保存するパケット受取機能、
【0042】プロセス12〜15又は他のコントローラ
20、30から受けたデータ要求用のパケットで指示さ
れたパケットをバッファメモリ50から読み出し、この
パケットを送信先のプロセスに渡すパケット渡し機能、
現時点でバッファメモリ50に保存されているパケット
数mを求める機能、各パケットの到着順序を示すn次元
のインデックス配列を作成する機能、を有している。次
に上記の如く構成された装置の作用について説明する。 (1) パケットの受け渡し
20、30から受けたデータ要求用のパケットで指示さ
れたパケットをバッファメモリ50から読み出し、この
パケットを送信先のプロセスに渡すパケット渡し機能、
現時点でバッファメモリ50に保存されているパケット
数mを求める機能、各パケットの到着順序を示すn次元
のインデックス配列を作成する機能、を有している。次
に上記の如く構成された装置の作用について説明する。 (1) パケットの受け渡し
【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と対応させて記憶する。
いてパケットを受け取ると、次のステップ#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と対応させて記憶する。
【0044】一方、上記ステップ#31での判定の結果、
パケットがデータ要求用であれば、通信制御プロセス4
0はステップ#40に移り、バッファメモリ50の各パケ
ットバッファ領域「1」〜「n」の番地iを「1」に設
定する。次に通信制御プロセス40はステップ#41〜#
43において番地iを繰上げながら、つまりインデックス
IDX(i) の古い順に保存されているパケットを検索
し、そのパケットに書かれている送信先コンピュータ番
号及び送信先プロセス番号からデータ要求用パケットで
要求されているパケットかを判断する。なお、データ要
求用パケットで要求されたパケットがなければ、再びス
テップ#30に戻る。
パケットがデータ要求用であれば、通信制御プロセス4
0はステップ#40に移り、バッファメモリ50の各パケ
ットバッファ領域「1」〜「n」の番地iを「1」に設
定する。次に通信制御プロセス40はステップ#41〜#
43において番地iを繰上げながら、つまりインデックス
IDX(i) の古い順に保存されているパケットを検索
し、そのパケットに書かれている送信先コンピュータ番
号及び送信先プロセス番号からデータ要求用パケットで
要求されているパケットかを判断する。なお、データ要
求用パケットで要求されたパケットがなければ、再びス
テップ#30に戻る。
【0045】次に要求するパケットが見付かれば、通信
制御プロセス40はステップ#44に移り、そのパケット
をバッファメモリ50から読み出してデータ要求用パケ
ットに書かれている送信元コントローラのプロセスに渡
す。
制御プロセス40はステップ#44に移り、そのパケット
をバッファメモリ50から読み出してデータ要求用パケ
ットに書かれている送信元コントローラのプロセスに渡
す。
【0046】次に通信制御プロセス40はステップ#45
においてパケット数mを1カウントダウンし、次のステ
ップ#46において番地iをjとし、次のステップ#47〜
#49において先に読み出したパケットのインデックス分
を削除し、各インデックスIDX(j) を順次繰り上げ
る。そして、再びステップ#30に戻る。 (2) 通信制御プロセス40でのパケットの受渡し 各プロセス13〜15から各データ送信用パケットを受
けと、通信制御プロセス40はこれらデータ送信用パケ
ットを順次バッファメモリ50に保存する。
においてパケット数mを1カウントダウンし、次のステ
ップ#46において番地iをjとし、次のステップ#47〜
#49において先に読み出したパケットのインデックス分
を削除し、各インデックスIDX(j) を順次繰り上げ
る。そして、再びステップ#30に戻る。 (2) 通信制御プロセス40でのパケットの受渡し 各プロセス13〜15から各データ送信用パケットを受
けと、通信制御プロセス40はこれらデータ送信用パケ
ットを順次バッファメモリ50に保存する。
【0047】この状態にプロセス12が送信元をプロセ
ス13とするパケットの要求用パケットを送ると、通信
制御プロセス40はこの要求用パケットを受け取り、要
求された送信元プロセス13のデータ送信用パケットを
バッファメモリ50から読み出してプロセス12に返送
する。
ス13とするパケットの要求用パケットを送ると、通信
制御プロセス40はこの要求用パケットを受け取り、要
求された送信元プロセス13のデータ送信用パケットを
バッファメモリ50から読み出してプロセス12に返送
する。
【0048】次にプロセス12が送信元プロセス14と
する要求用パケットを送ると、通信制御プロセス40は
上記同様に送信元プロセス14のデータ送信用パケット
をバッファメモリ50から読み出してプロセス12に返
送する。
する要求用パケットを送ると、通信制御プロセス40は
上記同様に送信元プロセス14のデータ送信用パケット
をバッファメモリ50から読み出してプロセス12に返
送する。
【0049】次にプロセス12が送信元プロセス15と
する要求用パケットを送ると、通信制御プロセス40は
上記同様に送信元プロセス15のデータ送信用パケット
をバッファメモリ50から読み出してプロセス12に返
送する。
する要求用パケットを送ると、通信制御プロセス40は
上記同様に送信元プロセス15のデータ送信用パケット
をバッファメモリ50から読み出してプロセス12に返
送する。
【0050】このように上記第2実施例によれば、上記
第1実施例と同様の効果を奏するだけでなく、各プロセ
ス13〜15が共にプロセス12宛てにパケットを送信
しても、プロセス12では各プロセス13〜15の順で
各パケットを受け取ることができる。従って、プロセス
12は各プロセス13〜15の順でパケットを受け取る
プログラムを組み込めばよく、このプログラムの作成は
容易となる。
第1実施例と同様の効果を奏するだけでなく、各プロセ
ス13〜15が共にプロセス12宛てにパケットを送信
しても、プロセス12では各プロセス13〜15の順で
各パケットを受け取ることができる。従って、プロセス
12は各プロセス13〜15の順でパケットを受け取る
プログラムを組み込めばよく、このプログラムの作成は
容易となる。
【0051】一般に複数のプロセスが並行して実行さ
れ、かつ必要に応じて各プロセス間でパケット通信を行
う場合、イベント駆動型と呼んで各プロセスにおいて、
何時どのようなパケットを受け取るか確定できなくなっ
ているが、かかる実施例では何時どのようなパケットが
送られても、確実にパケットを送信先のプロセスに渡す
ことができる。
れ、かつ必要に応じて各プロセス間でパケット通信を行
う場合、イベント駆動型と呼んで各プロセスにおいて、
何時どのようなパケットを受け取るか確定できなくなっ
ているが、かかる実施例では何時どのようなパケットが
送られても、確実にパケットを送信先のプロセスに渡す
ことができる。
【0052】なお、本発明は上記各実施例に限定される
ものでなくその要旨を変更しない範囲で変形してもよ
い。例えば、使用チェックテーブル51でのパケット保
存の有無は「1」「0」に限らず他の符号を使用しても
よく、パケット長は最大パケット長以下であればよい。
ものでなくその要旨を変更しない範囲で変形してもよ
い。例えば、使用チェックテーブル51でのパケット保
存の有無は「1」「0」に限らず他の符号を使用しても
よく、パケット長は最大パケット長以下であればよい。
【0053】又、通信制御プロセス40は受け取ったパ
ケットが自身のコントロール以外であれば、各通信リン
クr1〜r4に放送するのでなく、各通信リンクr1〜
r4の接続先のコントローラを知っていれば、そのコン
トローラを判断してパケットを渡すようにしてもよい。
ケットが自身のコントロール以外であれば、各通信リン
クr1〜r4に放送するのでなく、各通信リンクr1〜
r4の接続先のコントローラを知っていれば、そのコン
トローラを判断してパケットを渡すようにしてもよい。
【0054】又、データ要求パケットにおいて図9に示
す要求パケットの送信元コンピュータ番号を例えば「−
1」に設定すれば、あらゆるコンピュータ番号からのパ
ケットを指定するものとし、又同様に要求するパケット
の送信元プロセス番号を例えば「−1」に設定すれば、
指定したコンピュータのあらゆるプロセスを指定するよ
うにしてもよい。
す要求パケットの送信元コンピュータ番号を例えば「−
1」に設定すれば、あらゆるコンピュータ番号からのパ
ケットを指定するものとし、又同様に要求するパケット
の送信元プロセス番号を例えば「−1」に設定すれば、
指定したコンピュータのあらゆるプロセスを指定するよ
うにしてもよい。
【0055】
【発明の効果】以上詳記したように本発明によれば、複
数のプロセスが並行処理しながら同期通信を行ってもデ
ッドロック現象を起こさずに各プロセス間で通信ができ
る通信制御装置を提供できる。
数のプロセスが並行処理しながら同期通信を行ってもデ
ッドロック現象を起こさずに各プロセス間で通信ができ
る通信制御装置を提供できる。
【図1】本発明に係わる通信制御装置を計算機ネットワ
ークに適用した第1実施例を示す構成図。
ークに適用した第1実施例を示す構成図。
【図2】同装置におけるバッファメモリの模式図。
【図3】同装置における使用チェックテーブルの模式
図。
図。
【図4】同装置のパケット受取り流れ図。
【図5】同装置のパケット渡し流れ図。
【図6】同装置における通信制御プロセスでのパケット
受け渡し図。
受け渡し図。
【図7】本発明装置の第2実施例におけるパケット受渡
し流れ図。
し流れ図。
【図8】同装置におけるパケット受渡し流れ図。
【図9】同装置に用いられるデータ要求用パケットのフ
ォーマット図。
ォーマット図。
【図10】同装置に用いられるデータ送信用パケットの
フォーマット図。
フォーマット図。
【図11】同装置に用いられるデータ要求用パケットの
フォーマット図。
フォーマット図。
【図12】同装置に用いられるデータ送信用パケットの
フォーマット図。
フォーマット図。
【図13】計算機ネットワークの構成図。
【図14】同ネットワークにおけるパケット受渡し流れ
図。
図。
【図15】パケットのフォーマット図。
【図16】同ネットワークにおける通信制御プロセスで
のパケット受け渡し図。
のパケット受け渡し図。
10,20,30…コントローラ、40,41,42…
通信制御プロセス、12,13,14,15…プロセ
ス、22,23,24,25…プロセス、32,33,
34,35…プロセス、50…バッファメモリ、51…
使用チェックテーブル。
通信制御プロセス、12,13,14,15…プロセ
ス、22,23,24,25…プロセス、32,33,
34,35…プロセス、50…バッファメモリ、51…
使用チェックテーブル。
Claims (2)
- 【請求項1】 少なくとも所定処理を行う各プロセスが
各通信チャネルを介して接続され、これらプロセス間で
受け渡されるパケットを通信制御する通信制御装置にお
いて、 前記パケットを一時的に保存するバッファメモリと、 このバッファメモリにおける各領域の使用状態を示すチ
ェックテーブルと、 前記プロセスから受けた前記パケットを、前記チェック
テーブルでチェックした前記バッファメモリの空き領域
に保存するパケット受取手段と、 前記バッファメモリ保存されているパケットを前記チェ
ックテーブルでチェックし、このパケットを送信先の前
記プロセスに渡すパケット渡し手段と、 を具備したことを特徴とする通信制御装置。 - 【請求項2】 少なくとも所定処理を行う各プロセスが
各通信チャネルを介して接続され、これらプロセス間で
受け渡されるパケットを通信制御する通信制御装置にお
いて、 前記プロセスから受け取ったパケットがデータ送信用又
はデータ要求用かを判別するパケット判別手段と、 前記データ送信用パケットを一時的に保存する複数領域
のバッファメモリと、 前記プロセスから受けたデータ送信用パケットを前記バ
ッファメモリの空き領域に保存するパケット受取手段
と、 前記プロセスから受けたデータ要求用パケットで要求さ
れた前記パケットを前記バッファメモリから読み出し、
このパケットをデータ要求用パケットを送信した前記プ
ロセスに返送するパケット渡し手段と、 を具備したことを特徴とする通信制御装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP23468092A JPH0685841A (ja) | 1992-09-02 | 1992-09-02 | 通信制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP23468092A JPH0685841A (ja) | 1992-09-02 | 1992-09-02 | 通信制御装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0685841A true JPH0685841A (ja) | 1994-03-25 |
Family
ID=16974774
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP23468092A Pending JPH0685841A (ja) | 1992-09-02 | 1992-09-02 | 通信制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0685841A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN100508495C (zh) | 2002-05-30 | 2009-07-01 | 株式会社日立制作所 | 包通信设备 |
| CN102672695A (zh) * | 2011-12-25 | 2012-09-19 | 河南科技大学 | 一种精密工作台 |
-
1992
- 1992-09-02 JP JP23468092A patent/JPH0685841A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN100508495C (zh) | 2002-05-30 | 2009-07-01 | 株式会社日立制作所 | 包通信设备 |
| CN102672695A (zh) * | 2011-12-25 | 2012-09-19 | 河南科技大学 | 一种精密工作台 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5175732A (en) | Method and apparatus for controlling data communication operations within stations of a local-area network | |
| US5377188A (en) | Communication system capable of detecting missed messages | |
| JPH114279A (ja) | 先進的システム間送信方法および機構 | |
| JPS6336586B2 (ja) | ||
| US7069305B2 (en) | Computer system and a data transfer method thereof using remote direct memory access | |
| JPH053024B2 (ja) | ||
| US5835779A (en) | Message transmission among processing units using interrupt control technique | |
| EP0734139A2 (en) | A data transfer device with cluster control | |
| JPH07262151A (ja) | 並列プロセッサシステムおよびそれに適したパケット廃棄方法 | |
| US6591325B1 (en) | Method and apparatus of out-of-order transaction processing using request side queue pointer and response side queue pointer | |
| US20020040414A1 (en) | Multiprocessor system and transaction control method for the same | |
| JPH0685841A (ja) | 通信制御装置 | |
| JP2924783B2 (ja) | リモートリード処理方法およびその装置 | |
| EP1139228A2 (en) | An intelligent bus interconnect unit | |
| US6822967B1 (en) | Relay unit and frame tracing method | |
| JP3799741B2 (ja) | バスコントローラ | |
| JPH0218623B2 (ja) | ||
| JPH1031616A (ja) | プロセス間通信システム | |
| JP2000293454A (ja) | データ通信装置、データ通信方法、および記録媒体 | |
| JP2821299B2 (ja) | アクセス制御方式 | |
| JP2984594B2 (ja) | マルチクラスタ情報処理システム | |
| JPH0621925A (ja) | 多重化伝送路通信制御方式 | |
| CN121144226A (zh) | Sdio主设备间的通信方法及桥接系统、存储介质 | |
| JPH0926911A (ja) | ページ情報転送処理装置 | |
| JPS62165452A (ja) | デ−タ転送アダプタ |