(57)【要約】      （修正有）【課題】限られたバッファサイズにおいて複数あるＬＡＮチャネルのチャネル毎の再送率をコントロールできるデータ受信装置を提供する。【解決手段】複数のチャネル３ａ、３ｂ・・・からネットワークを介して入力されたデータを、チャネル毎に設けられたバッファ領域２ａ、２ｂ・・・に格納することにより受信するデータ受信装置１が、チャネルに対してデータを送信する他の機器が要求している要求再送率を記憶する要求再送率格納部１１と、他の機器がチャネルに対して送信するデータのデータサイズをチャネル毎に所定数記憶し、記憶された所定数のデータサイズに基づき、チャネル毎に記憶された要求再送率を満たすようにバッファ領域２ａ、２ｂ・・・のサイズを決定するバッファサイズ算出部１２とを含む。【選択図】図１
2011142563.tif 000002
【特許請求の範囲】
【請求項１】
複数のチャネルからネットワークを介して入力されたデータを、前記複数のチャネル毎に設けられたバッファ領域に格納することにより受信するデータ受信装置であって、
前記チャネルに対してデータを送信する他の機器が要求している再送率の情報である要求再送率を前記複数のチャネル毎に記憶する要求再送率記憶部と、
前記他の機器が前記チャネルに対して送信するデータのデータサイズの情報を前記複数のチャネル毎に所定数記憶するデータサイズ記憶部と、
前記記憶された所定数のデータサイズの情報に基づき、前記複数のチャネル毎に前記記憶された要求再送率を満たすように前記バッファ領域のサイズを決定するバッファサイズ決定部とを含むことを特徴とするデータ受信装置。
【請求項２】
前記バッファサイズ決定部は、前記記憶された所定数のデータサイズに対する閾値を仮のバッファサイズとして定め、前記所定数のデータサイズにおいて前記閾値を上回る値の個数の割合である算出再送率が前記要求再送率を満たすように前記閾値を定めることにより前記バッファ領域のサイズを決定することを特徴とする請求項１に記載のデータ受信装置。
【請求項３】
前記バッファサイズ決定部は、前記定めた閾値を徐々に大きくしながら前記算出再送率を求め、前記算出再送率が前記要求再送率以下となる最大の前記閾値を前記バッファ領域のサイズとして決定することを特徴とする請求項２に記載のデータ受信装置。
【請求項４】
前記バッファサイズ決定部は、前記複数のチャネルについて決定した前記バッファ領域のサイズの合計が、利用可能な記憶領域の上限値を超えている場合、前記記憶された要求再送率に基づいて各チャネルのバッファ領域のサイズを調整することを特徴とする請求項１乃至３いずれかに記載のデータ受信装置。
【請求項５】
前記バッファサイズ決定部は、前記複数のチャネルについて決定した前記バッファ領域のサイズの合計が、利用可能な記憶領域の上限値を超えている場合、前記要求再送率が小さいチャネルから優先的に前記決定したバッファ領域のサイズを割り当てることを特徴とする請求項４に記載のデータ受信装置。
【請求項６】
前記チャネルに入力されたデータを前記バッファ領域に格納することにより受信するデータ受信処理部を更に含み、
前記データ受信処理部は、前記チャネルに入力されたデータのサイズが、前記チャネルのバッファ領域のサイズとして決定されている値を超えている場合、他のチャネルのバッファ領域のサイズとして決定されている値を減らすことにより、前記データが入力されたチャネルのバッファ領域のサイズとして決定されている値を増やし、前記入力されたデータの送信元に再送要求を行うことを特徴とする請求項１乃至５いずれかに記載のデータ受信装置。
【請求項７】
前記データ受信処理部は、前記チャネルに入力されたデータのサイズが、前記チャネルのバッファ領域のサイズとして決定されている値を超えている場合、不足分のサイズを前記他のチャネルの数で割った値を、他のチャネルのバッファ領域のサイズとして決定されている値から減らすことにより、前記不足分のサイズを前記データが入力されたチャネルのバッファ領域のサイズとして決定されている値に加えることを特徴とする請求項６に記載のデータ受信装置。
【請求項８】
前記データ受信処理部は、前記チャネルに入力されたデータのサイズが、前記チャネルのバッファ領域のサイズとして決定されている値を超えている場合、前記他のチャネルの要求再送率に応じた値を、そのチャネルのバッファ領域のサイズとして決定されている値を減らすことにより、前記データが入力されたチャネルのバッファ領域のサイズとして決定されている値を増やすことを特徴とする請求項６に記載のデータ受信装置。
【請求項９】
前記チャネルに入力されたデータのサイズが、前記チャネルのバッファ領域のサイズとして決定されている値を超えている場合の不足分のサイズをＢ、前記複数のチャネルの全チャネル数をＮ、チャネルｉのバッファ領域のサイズから減らす値をＤｉ、チャネルｉの要求再送率をＲｉとすると、以下の関係を満たすことを特徴とする請求項８に記載のデータ受信装置。
2011142563.tif 000007
【請求項１０】
複数のチャネルからネットワークを介して入力されたデータを、前記複数のチャネル毎に設けられたバッファ領域に格納することにより受信するデータ受信方法であって、
前記チャネルに対してデータを送信する他の機器が要求している再送率の情報である要求再送率を前記複数のチャネル毎に記憶し、
前記他の機器が前記チャネルに対して送信するデータのデータサイズの情報を前記複数のチャネル毎に所定数記憶し、
前記記憶された所定数のデータサイズの情報に基づき、前記複数のチャネル毎に前記記憶された要求再送率を満たすように前記バッファ領域のサイズを決定することを特徴とするデータ受信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ受信装置、データ受信方法に関し、特に、複数のチャネル毎の受信バッファサイズの好適な制御に関する。
【背景技術】
【０００２】
近年、インタネットの普及により、ネットワーク化が急速に進み、複数のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）伝送制御を行う装置が開発されている。ＬＡＮ伝送制御装置においては、信号送受信データを一時的に格納するためバッファが従来から設けられている。ここで、安価なコストとする目的から、バッファの記憶容量はできる限り少ない方がよい。
【０００３】
他方、バッファの記憶容量が受信データ、即ち受信パケットの容量よりも少ない状態では、その受信データを受信することが出来ずに再送要求が発生し、システムのパフォーマンスが低下する。即ち、バッファサイズにおいて、コストとシステムのパフォーマンスとはトレードオフの関係にあり、コストを抑えながらもシステムのパフォーマンスを向上することが求められる。
【０００４】
そこで、バッファの記憶容量を送信用データの記憶領域と受信用データの記憶領域に分け、動的に管理する方法（例えば特許文献１参照）が提案されている。また、送信用データの記憶領域と受信用データの記憶領域を兼用で利用する方法（例えば特許文献２参照）が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１９６０９７号公報
【特許文献２】特開２００９−１０８３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のＬＡＮ伝送制御装置において、特許文献１のような装置では、送受信処理が発生する度にバッファサイズを変更し、処理終了後にバッファサイズを元の容量に戻しているため、複数のＬＡＮチャネルを同時に制御した場合、処理負荷が増加し、スループットが低下するという問題があった。
【０００７】
また、特許文献２のような装置では、送受信兼用の伝送バッファを切り替えて使用しているため、伝送バッファを受信用に使用している間はＬＡＮデータの送信ができない。このため、リアルタイム制御の信号を送信する場合等において、タイムクリティカル性を保証しての送受信制御ができないという問題があった。
【０００８】
この発明は、上記のようなスループットの低下やタイムクリティカル性の問題点を解決するためになされたもので、限られたバッファサイズにおいて複数あるＬＡＮチャネルのチャネル毎の再送率をコントロールできるデータ受信装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明の一態様は、複数のチャネルからネットワークを介して入力されたデータを、前記複数のチャネル毎に設けられたバッファ領域に格納することにより受信するデータ受信装置であって、前記チャネルに対してデータを送信する他の機器が要求している再送率の情報である要求再送率を前記複数のチャネル毎に記憶する要求再送率記憶部と、前記他の機器が前記チャネルに対して送信するデータのデータサイズの情報を前記複数のチャネル毎に所定数記憶するデータサイズ記憶部と、前記記憶された所定数のデータサイズの情報に基づき、前記複数のチャネル毎に前記記憶された要求再送率を満たすように前記バッファ領域のサイズを決定するバッファサイズ決定部とを含むことを特徴とする。
【００１０】
ここで、前記バッファサイズ決定部は、前記記憶された所定数のデータサイズに対する閾値を仮のバッファサイズとして定め、前記所定数のデータサイズにおいて前記閾値を上回る値の個数の割合である算出再送率が前記要求再送率を満たすように前記閾値を定めることにより前記バッファ領域のサイズを決定することが好ましい。
【００１１】
また、前記バッファサイズ決定部は、前記定めた閾値を徐々に大きくしながら前記算出再送率を求め、前記算出再送率が前記要求再送率以下となる最大の前記閾値を前記バッファ領域のサイズとして決定することが好ましい。
【００１２】
また、前記バッファサイズ決定部は、前記複数のチャネルについて決定した前記バッファ領域のサイズの合計が、利用可能な記憶領域の上限値を超えている場合、前記記憶された要求再送率に基づいて各チャネルのバッファ領域のサイズを調整することを特徴とする。
【００１３】
また、前記バッファサイズ決定部は、前記複数のチャネルについて決定した前記バッファ領域のサイズの合計が、利用可能な記憶領域の上限値を超えている場合、前記要求再送率が小さいチャネルから優先的に前記決定したバッファ領域のサイズを割り当てることを特徴とする。
【００１４】
また、前記チャネルに入力されたデータを前記バッファ領域に格納することにより受信するデータ受信処理部を更に含み、前記データ受信処理部は、前記チャネルに入力されたデータのサイズが、前記チャネルのバッファ領域のサイズとして決定されている値を超えている場合、他のチャネルのバッファ領域のサイズとして決定されている値を減らすことにより、前記データが入力されたチャネルのバッファ領域のサイズとして決定されている値を増やし、前記入力されたデータの送信元に再送要求を行うことを特徴とする。
【００１５】
また、前記データ受信処理部は、前記チャネルに入力されたデータのサイズが、前記チャネルのバッファ領域のサイズとして決定されている値を超えている場合、不足分のサイズを前記他のチャネルの数で割った値を、他のチャネルのバッファ領域のサイズとして決定されている値から減らすことにより、前記不足分のサイズを前記データが入力されたチャネルのバッファ領域のサイズとして決定されている値に加えることを特徴とする。
【００１６】
また、前記データ受信処理部は、前記チャネルに入力されたデータのサイズが、前記チャネルのバッファ領域のサイズとして決定されている値を超えている場合、前記他のチャネルの要求再送率に応じた値を、そのチャネルのバッファ領域のサイズとして決定されている値を減らすことにより、前記データが入力されたチャネルのバッファ領域のサイズとして決定されている値を増やすことが好ましい。
【００１７】
また、前記チャネルに入力されたデータのサイズが、前記チャネルのバッファ領域のサイズとして決定されている値を超えている場合の不足分のサイズをＢ、前記複数のチャネルの全チャネル数をＮ、チャネルｉのバッファ領域のサイズから減らす値をＤｉ、チャネルｉの要求再送率をＲｉとすると、以下の式（４）の関係を満たすことが好ましい。
2011142563.tif 000003
【００１８】
また、本発明の他の態様は、複数のチャネルからネットワークを介して入力されたデータを、前記複数のチャネル毎に設けられたバッファ領域に格納することにより受信するデータ受信方法であって、前記チャネルに対してデータを送信する他の機器が要求している再送率の情報である要求再送率を前記複数のチャネル毎に記憶し、前記他の機器が前記チャネルに対して送信するデータのデータサイズの情報を前記複数のチャネル毎に所定数記憶し、前記記憶された所定数のデータサイズの情報に基づき、前記複数のチャネル毎に前記記憶された要求再送率を満たすように前記バッファ領域のサイズを決定することを特徴とする。
【発明の効果】
【００１９】
本発明の技術を採用すれば、限られたバッファサイズにおいて複数あるＬＡＮチャネルのチャネル毎の再送率をコントロールできるデータ受信装置を提供できる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態に係るデータ受信装置を含むデータの送受信システムを示すブロック図である。
【図２】本発明の実施形態に係る制御装置のハードウェア構成を示す図である。
【図３】本発明の実施形態に係る要求再送率格納部に記憶される情報の例を示す図である。
【図４】本発明の実施形態に係るバッファサイズ格納部１３に記憶される情報の例を示す図である。
【図５】本発明の実施形態に係る受信データサイズのサンプル収集処理を示すフローチャートである。
【図６】本発明の実施形態に係る受信データサイズのサンプルの情報を示す図である。
【図７】本発明の実施形態に係るバッファサイズ計算処理を示すフローチャートである。
【図８】本発明の実施形態に係るデータオーバーフロー時の受信処理を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の具体的実施例について図面を用いて詳細に説明する。
本実施形態においては、複数の監視装置と、各監視装置からの検知信号等の情報を受信し、受信した情報に応じた制御を行う制御装置とを含むシステムにおけるデータ伝送制御方式を例として説明する。このようなシステムにおいては、定常的にデータが伝送され、且つ送受信データにタイムクリティカル性が要求されることとなる。本実施形態に係るデータ伝送制御方式を用いることにより、このようなシステムにおける制御装置側のデータ受信部において、限られたバッファサイズ内で複数あるＬＡＮチャネルのチャネル毎の再送率をコントロールすることができる。
【００２２】
図１は、本実施形態に係るシステムにおいて、複数の監視装置２１、２２及び各監視装置から送信される情報を受信して各種の制御を行う制御装置１０におけるデータ受信部の構成を示すブロック図である。図１に示すように、本実施形態に係る制御装置１０は、受信バッファ制御部１、受信バッファ２、ＬＡＮ受信部３ａ、３ｂ、・・・３ｎ（以降、総じてＬＡＮ受信部３とする）、バス４ａ、４ｂを含む。
【００２３】
更に、受信バッファ制御部１は、要求再送率格納部１１、受信バッファサイズ算出部１２、受信バッファサイズ格納部１３、データ受信処理部１４を含む。また、受信バッファ２は、バッファ領域２ａ、バッファ領域２ｂ、・・・バッファ領域２ｎを含む。このＬＡＮ受信部３ａ、３ｂ、・・・３ｎとバッファ領域２ａ、２ｂ、・・・２ｎとの組み合わせにより、チャネルが構成される。例えば、ＬＡＮ受信部３ａに入力された受信データは、バッファ領域２ａに一時的に格納されることにより受信される。
【００２４】
受信バッファ制御部１は、受信バッファ２を制御する装置であり、制御装置１０においてデータを受信するデータ受信装置として機能する。受信バッファ２は、受信データを一時記憶するための記憶領域である。ＬＡＮ受信部３は、外部から受信データが入力されるインタフェースである。図１に示すように、ＬＡＮ受信部３は、ＬＡＮ受信部３ａ、３ｂ、・・・３ｎというように複数設けられており、夫々が各チャネルに対応している。夫々のＬＡＮ受信部３は、インタネット等のネットワーク回線を介して監視装置２１、２２と接続されている。バス４ａ、４ｂは、ＬＡＮ受信部３と受信バッファ制御部１、若しくは受信バッファ制御部１と受信バッファ２との間でやりとりされる信号を伝送する伝送路である。
【００２５】
受信バッファ制御部１において、再送要求率格納部１１は、夫々のチャネル毎に、接続対象である監視装置２１、２２が要求している再送率の情報（以降、要求再送率情報とする）を記憶している再送要求率記憶部である。この要求再送率情報は、制御装置１０におけるデータ受信について好適なスループットを得るため、チャネル毎に許容できる再送率として総受信データ数に対する再送要求データ数の比であり、夫々のチャネルに接続されている監視装置によって定まるものである。詳細については後述する。
【００２６】
受信バッファサイズ算出部１２は、要求再送率格納部１１に記憶された要求再送率情報に基づき、その要求再送率を満たすための各チャネルのバッファサイズ、即ち、バッファ領域２ａ、２ｂ、・・・２ｎに割り当てる受信バッファ２の記憶容量を計算して決定する。即ち、受信バッファサイズ算出部１２が、バッファサイズ決定部として機能する。この受信バッファサイズ算出部１２の機能が、本実施形態に係る要旨の１つである。詳細は後述する。
【００２７】
受信バッファサイズ格納部１３は、受信バッファサイズ算出部１２によって算出された各チャネルのバッファサイズの情報を記憶する記憶部である。データ受信処理部１４は、ＬＡＮ受信部３に入力された受信データを、受信バッファサイズ格納部１３に記憶されている情報及び入力されたチャネルに基づいて、バッファ領域２ａ、２ｂ、・・・２ｎの対応する領域に保持させることにより、データを受信する。
【００２８】
また、データ受信処理部１４は、受信バッファ２におけるバッファ領域２ａ、２ｂ、・・・２ｎの容量を、受信バッファサイズ格納部１３に記憶されている情報に基づいて設定する他、データの送受信状況等に応じて任意に変更することもできる。
【００２９】
また、図１に示すように、監視装置２１は、ＬＡＮ送信部２１ａ、２１ｂを含み、監視装置２２は、ＬＡＮ送信部２２ｎを含む。ＬＡＮ送信部２１ａはＬＡＮ受信部３ａに、ＬＡＮ送信部２２ａはＬＡＮ受信部３ｂに、ＬＡＮ送信部２２ｎはＬＡＮ受信部３ｎに、夫々インタネット等の公衆回線や専用回線を介して接続されている。
【００３０】
尚、図１においては、便宜的に、夫々のＬＡＮ送信部とＬＡＮ受信部とが１対１で接続されているように示されているが、上記説明のように、双方はインタネット等の公衆回線や専用回線に接続されており、物理的には夫々が互いに接続されている。即ち、ＬＡＮ送信部２１ａ、２１ｂ、２２ｎの情報送信先が、夫々ＬＡＮ受信部３ａ、３ｂ、３ｎに設定されていることにより、図１に示すような１対１の接続関係が疑似的に実現されている。
【００３１】
次に、本実施形態に係る制御装置１０のハードウェア構成について説明する。図２は、本実施形態に係るハードウェア構成の例を示す図である。図２に示すように、本実施形態に係る制御装置は、一般的なサーバやＰＣ等と同様の構成を含む。即ち、本実施形態に係る情報処理端末は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、ＦＰＧＡ（Ｆｉｅｌａ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）１０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０４、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０５及びＬＡＮ受信部３を含む。また、図２に示すように、ＲＯＭ１０４、ＨＤＤ１０５及びＬＡＮ受信部３とＦＰＧＡ１０２との間がバス４ａで、ＦＰＧＡ１０２とＲＡＭ１０３との間がバス４ｂで夫々接続されている。
【００３２】
ＣＰＵ１０１は演算手段であり、制御装置全体の動作を制御する。ＦＰＧＡ１０２は、本実施形態においては、ＣＰＵ１０１とＲＡＭ１０３並びにバス４ｂとの間の情報伝送を行う回路であり、ＲＡＭ１０３のコントローラとしても機能する。即ち、図１において説明した受信バッファ制御部１は、ＦＰＧＡ１０２によって実現される。ＲＡＭ１０３は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、図１において説明した受信バッファ２として機能する他、ＣＰＵ１０１が情報を処理する際の作業領域として用いられる。
【００３３】
ＲＯＭ１０４は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。ＨＤＤ１０５は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム等が格納される。ＬＡＮ受信部３は、図１において説明したＬＡＮ受信部３ａ、３ｂ、・・・３ｎに相当する。尚、本実施形態においては、バス４ａでやりとりされる受信データの平均スループットは、バス４ｂのスループットより低い。
【００３４】
このようなハードウェア構成において、ＲＯＭ１０４やＨＤＤ１０５若しくは図示しない光学ディスク等の記憶媒体に格納されたプログラムがＲＡＭ１０３に読み出され、ＣＰＵ１０１の制御に従って動作することにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ＦＰＧＡ１０２のようなハードウェアとの組み合わせによって、本実施形態に係る制御装置を制御する機能ブロックが構成される。
【００３５】
次に、要求再送率格納部１１に記憶される情報について、図３を参照して説明する。図３は、本実施形態に係る要求再送率格納部１１に記憶される情報の例を示す図である。図３に示すように、要求再送率格納部１１には、ＬＡＮ受信部３ａ、３ｂ、・・・３ｎ夫々に要求される再送率を示すテーブルの情報が格納されている。例えば、ＬＡＮ受信３ａの場合、再送率が１０％以下であることが求められている。
【００３６】
この再送率は、典型的には、各チャネルの接続対象である監視装置２１、２２やＬＡＮ送信部２１ａ、２１ｂ、・・・２２ｎが送信するデータの種類によって決定される。即ち、監視装置２０による監視対象によっては、遅延が許されずリアルタイム性が強く求められるものから、ある程度遅延が発生しても問題ないものまで様々である。従って、図３に示すように、ＬＡＭ受信部３の夫々に接続されている監視装置２０のＬＡＮ送信部に応じて、求められている再送率が異なる。本実施形態においては、この要求再送率に応じて、各バッファ領域２ａ、２ｂ、・・・２ｎのサイズを決定することにより、限られたサイズでのバッファ領域の有効的な利用を実現する。
【００３７】
次に、受信バッファサイズ格納部１３に記憶される情報について、図４を参照して説明する。図４は、本実施形態に係る受信バッファサイズ格納部１３に記憶される情報の例を示す図である。図４に示すように、受信バッファサイズ格納部１３には、バッファ領域２ａ、２ｂ、・・・２ｎ夫々の容量を示すテーブルの情報が格納されている。例えば、バッファ領域２ａの場合、記憶容量はＢｕｆｆｅｒ２ａ（ｂｙｔｅ）である。
【００３８】
次に、本実施形態に係る制御装置１０において、受信バッファサイズ算出部１２が、各チャネルのバッファ領域のバッファサイズを算出して受信バッファサイズ格納部１３に記憶させるまでの動作について説明する。本実施形態に係る受信バッファサイズ算出部１２の動作は、大きく分けて受信データサイズのサンプル収集処理及びバッファサイズ計算処理に分けられる。図５は、本実施形態に係る受信バッファサイズ算出部１２の動作のうち、受信データサイズのサンプル収集処理を示すフローチャートである。
【００３９】
図５に示す動作を実行する際は、未だ受信バッファ２におけるバッファ領域２ａ、２ｂ、・・・２ｎの各バッファサイズは算出されていないため、受信バッファサイズ格納部１３には、バッファ領域２ａ、２ｂ、・・・２ｎの各バッファサイズとして任意に定められた値を示すテーブルが格納されている。
【００４０】
図５に示すように、受信バッファサイズ算出部１２は、まず変数“ｋ”を“０”とする（Ｓ５０１）。そして、ＬＡＮ受信部３にデータが入力されてデータ受信処理部１４によってデータが受信されると（Ｓ５０２）、受信バッファサイズ算出部１２は、変数“ｋ”をインクリメントする（Ｓ５０３）。尚、本実施形態において、Ｓ５０２において受信してＳ５０３においてカウントされる受信データの単位は、１パケットである。
【００４１】
Ｓ５０３の処理の後、受信バッファサイズ算出部１２は、Ｓ５０２において受信された受信データのサイズを、サンプルとして記憶する（Ｓ５０４）。尚、Ｓ５０２においては、必ずしも受信処理部１４によるデータの受信が完了する必要はなく、Ｓ５０４において受信データのサイズをサンプルとして記憶できれば良い。従って、Ｓ５０２においては、ＬＡＮ受信部３にデータが入力されるだけで処理を進めることも可能である。その後、変数“ｋ”の値が予め定められたサンプル数に達するまで、受信バッファサイズ算出部１２は、Ｓ５０２からの処理を繰り返す（Ｓ５０５／ＮＯ）。そして、変数“ｋ”の値が、予め定められたサンプル数に達すると（Ｓ５０５／ＹＥＳ）、受信バッファサイズ算出部１２は、処理を終了する。尚、図５の処理は、周期的に動作させることが好ましいが、処理負荷を低減するために、装置起動時に１回のみ実施する方法もある。
【００４２】
受信バッファサイズ算出部１２は、図５に示す処理を、全てのチャネルについて実行する。即ち、全てのチャネルについて、予め定められたサンプル数と同数の受信データサイズのサンプルを収集する。このようにして収集された受信データサイズのサンプルの情報は、図６に示すように、チャネル毎に記憶される。即ち、受信バッファサイズ算出部１２が、データサイズ記憶部として機能する。このように記憶された受信データサイズのサンプルに基づき、バッファサイズ計算処理が実行される。
【００４３】
図７は、本実施形態に係る受信バッファサイズ算出部１２の動作のうち、バッファサイズ計算処理を示すフローチャートである。図７の処理の前提として、図５に示す処理が実行されて図６に示すように受信データサイズのサンプルの情報が記憶されており、且つ各チャネルの要求再送率が図３において説明したように要求再送率格納部１１に記憶されている。
【００４４】
図７に示す動作においては、算出すべきバッファ領域のサイズとして変数“Ａ”（ｂｙｔｅ）、図５においてチャネル毎に収集された受信データサイズのサンプル個数、即ち、図５における予め定められたサンプル数として“Ｍ”（個）、バッファサイズの算出対象であるチャネルの要求再送率として変数“Ｓ”（％）、受信データサイズのサンプルの値が変数“Ａ”の値よりも小さい場合にカウントアップする変数であるサイズアンダーカウンタ“Ｍ１”、大きい場合にカウントアップする変数であるサイズオーバーカウンタ“Ｍ２”、解析中であるサンプルが何番目であるかを示す変数“ｎ”、計算によって求められる計測再送率として変数“Ｑ”を用いる。
【００４５】
図７に示すように、受信バッファサイズ算出部１２は、先ず変数“Ａ”を“１”（ｂｙｔｅ）とする（Ｓ７０１）。更に、受信バッファサイズ算出部１２は、変数“ｎ”、“Ｍ１”、“Ｍ２”を“０”とする（Ｓ７０２）。そして、図６に示すように記憶されたサンプル値を解析対象として順番に読み出し（Ｓ７０３）、変数“ｎ”をインクリメントする（Ｓ７０４）。サンプル値を読み出すと、受信バッファサイズ算出部１２は、解析中のサンプル値と変数“Ａ”の値とを比較する（Ｓ７０５）。
【００４６】
Ｓ７０５の結果、解析中のサンプル値が変数“Ａ”の値以下である場合（Ｓ７０５／ＹＥＳ）、即ち、変数“Ａ”の値をバッファサイズとして設定して、解析中のサンプル値に対応する受信データを受信することが可能である場合、受信バッファサイズ算出部１２は、変数“Ｍ１”をインクリメントする（Ｓ７０６）。他方、解析中のサンプル値が変数“Ａ”よりも大きい場合（Ｓ７０５／ＮＯ）、即ち、変数“Ａ”の値をバッファサイズとして設定すると、解析中のサンプル値に対応する受信データを受信することが出来ない場合、受信バッファサイズ算出部１２は、変数“Ｍ２”をインクリメントする（Ｓ７０７）。
【００４７】
Ｓ７０６、若しくはＳ７０７の処理の後、受信バッファサイズ算出部１２は、変数“ｎ”の値が変数“Ｍ”の値に達するまで、Ｓ７０３からの処理を繰り返す（Ｓ７０８／ＮＯ）。他方、変数“ｎ”の値が変数“Ｍ”の値に達すると（Ｓ７０８／ＹＥＳ）、受信バッファサイズ算出部１２は、計測再送率“Ｑ”の算出（Ｓ７０９）を行う。ここで、計測再送率“Ｑ”（％）は、以下の式（１）によって求められる。
2011142563.tif 000004
【００４８】
受信バッファサイズ算出部１２は、式（１）により計測再送率Ｑを求めると、そのＱと要求再送率“Ｓ”とを比較する（Ｓ７１０）。Ｓ７１０の比較の結果、計測再送率“Ｑ”が要求再送率“Ｓ”以下である場合（Ｓ７１０／ＹＥＳ）、即ち、現在の“Ａ”の値で要求再送率が満たされる場合、受信バッファサイズ算出部１２は、その時の“Ａ”の値を、そのチャネルのバッファ領域のサイズとして正式に決定し（Ｓ７１１）、処理を終了する。即ち、変数“Ａ”は、図７の処理において、仮のバッファサイズとして用いられる。
【００４９】
他方、計測再送率“Ｑ”が要求再送率“Ｓ”よりも大きい場合（Ｓ７１０／ＮＯ）、即ち、現在の“Ａ”の値では要求再送率が満たされない場合、受信バッファサイズ算出部１２は、“Ａ”の値をプラス“１”（ｂｙｔｅ）し（Ｓ７１２）、Ｓ７０２からの処理を繰り返す。このような処理により、本実施形態に係るバッファサイズ計算処理が完了する。尚、図５の処理と同様に、受信バッファサイズ算出部１２は、全てのチャネルに対して、図７の処理を実行する。これにより、図４において説明したように、各チャネルのバッファ領域２ａ、２ｂ、・・・２ｎのサイズが決定され、受信バッファサイズ格納部１３に情報が記憶される。
【００５０】
図７に示す処理を実行した結果、各チャネルのバッファサイズとして算出された値の合計が、受信バッファ２の記憶容量として用いることができるサイズの上限値以内であれば、算出結果をそのままバッファ領域２ａ、２ｂ、・・・２ｎのサイズとして用いれば良い。他方、各チャネルのバッファサイズとして算出された値の合計が、受信バッファ２の記憶容量として用いることができるサイズの上限値を超えている場合があり得る。その場合、例えば、要求再送率の小さいチャネルから優先的に算出されたバッファサイズ、即ち、要求再送率を満たすバッファサイズを割り当てることが好ましい。
【００５１】
これは、要求再送率が小さいということは、受信されるデータ数が多いということであり、そのようなチャネルに優先的にバッファを割り当てることにより、システム全体のスループットを向上することができるからである。この他、要求再送率ではなく、ユーザによって設定されたチャネル毎の優先度に基づいてバッファサイズを割り当てる優先度を決定しても良い。
【００５２】
このように、所定個数のサンプル値に基づいて任意のバッファサイズにおける再送率を計算し、チャネル毎に通信対象の装置によって要求されている再送率が満たされるように、バッファ領域のサイズを決定することにより、限られたバッファサイズにおいて複数あるＬＡＮチャネルのチャネル毎の再送率をコントロールすることができる。
【００５３】
本発明は図１において説明したような監視装置２１、２２及び制御装置１０を含む監視制御システムに適用でき、チャネル毎の受信データの再送率を制御して一定のスループット特性とタイムクリティカル性を維持するデータの伝送が可能となる。次に、上記方法にて決定した要求再送率を満足する受信バッファサイズより大きなＬＡＮデータを受信し、受信バッファがオーバーフローする場合の本発明での動作を説明する。
【００５４】
図８は本発明の受信データオーバーフロー時の受信処理手順を示すフローチャートである。ＬＡＮ受信部３に受信データが入力されると、受信バッファ制御部１において、データ受信処理部１４が、受信データのサイズを確認し（Ｓ８０１）、受信バッファサイズ格納部１３に記憶されている情報を参照して、データが入力されたチャネルのバッファ領域のサイズと受信データのサイズとを比較する（Ｓ８０２）。
【００５５】
Ｓ８０２の比較の結果、受信データのサイズが、バッファ領域のサイズ以下であれば（Ｓ８０２／ＹＥＳ）、データ受信処理部１４は、ＬＡＮ受信部３に入力された受信データを対応するチャネルのバッファ領域に格納し（Ｓ８０３）、処理を終了する。他方、受信データのサイズが、バッファ領域のサイズよりも大きい場合（Ｓ８０２／ＮＯ）、データ受信処理部１４は、入力されたデータの受信を可能とするため、他チャネルのバッファ領域のサイズを減少させ（Ｓ８０４）、データが入力されたチャネルのバッファ領域のサイズを増加させる（Ｓ８０５）。そして、Ｓ８０１において入力された受信データの送信元に対してデータの再送要求を送信し（Ｓ８０６）、処理を終了する。
【００５６】
ここで、Ｓ８０４において、他チャネルの受信バッファのサイズを調整する方法の一例を以下に示す。受信バッファサイズの不足分を“Ｂ”（ｂｙｔｅ）、チャネル数を“Ｎ”（個）とし、他チャネルにおいて減少させるバッファサイズを“Ｃ”（ｂｙｔｅ）とすると、この“Ｃ”は以下の式（２）で求められる。
2011142563.tif 000005
【００５７】
即ち、受信データがオーバーフローしたチャネルの受信バッファに、他のチャネルから容量を割り当てる際、他のチャネルから夫々割り当てられるサイズは、“Ｂ／（Ｎ−１）”（ｂｙｔｅ）となる。
【００５８】
また、式（２）の例のように、他のチャネルから均等にサイズを割り当てるのではなく、各チャネルの再送要求率を考慮して割り当て量を決定することもできる。その場合、チャネル“ｉ”の受信バッファの調整サイズを“Ｄｉ”（ｂｙｔｅ）、要求再送率を“Ｒｉ”とすると、この“Ｄｉ”は、以下の式（３）で求められる。
2011142563.tif 000006
【００５９】
他のチャネルから夫々割り当てる容量として、式（３）によって求められる“Ｄｉ”を適用することにより、要求再送率の小さいチャネルからは少なく、要求再送率の大きいチャネルからは多く割り当てられる。この他、不足している容量を、再送要求率の最も大きいチャネルのバッファ容量からすべて割り当てるようにしても良い。
【００６０】
尚、上記実施形態においては、図７のＳ７０１において、変数“Ａ”の初期値として“１”を用い、Ｓ７１２において“１”ずつ増加させていく場合を例として説明した。これに限らず、バッファ領域２ａ、２ｂ、・・・２ｎ夫々のサイズとして最低限確保すべきサイズがある場合は、そのサイズを変数“Ａ”の初期値として用いることが好ましい。また、Ｓ７１２において変数“Ａ”の値を増加させる単位は、“１”に限らず、例えばバッファ領域を構成する記憶媒体のセルの単位とすることもできる。
【符号の説明】
【００６１】
１  受信バッファ制御部、
２  受信バッファ、
２ａ、２ｂ、２ｎ  バッファ領域、
３、３ａ、３ｂ、３ｎ  ＬＡＮ受信部、
４ａ、４ｂ  バス、
１１  再送要求率格納部、
１２  受信バッファサイズ算出部、
１３  受信バッファサイズ格納部、
１４  データ受信処理部、
１０１  ＣＰＵ、
１０２  ＦＰＧＡ、
１０３  ＲＡＭ、
１０４  ＲＯＭ、
１０５  ＨＤＤ
【図１】
2011142563.tif 000008
【図２】
2011142563.tif 000009
【図３】
2011142563.tif 000010
【図４】
2011142563.tif 000011
【図５】
2011142563.tif 000012
【図６】
2011142563.tif 000013
【図７】
2011142563.tif 000014
【図８】
2011142563.tif 000015