(57)【要約】【課題】受信装置が、それぞれ格納対象データがペイロードである複数の通信パケットを受信し、メモリアドレスが連続するメモリの領域に格納対象データを格納する場合に、送信装置と受信装置との間における通信トラフィックを軽減する。【解決手段】送信先領域ベースアドレス設定部１００８は、メモリ１００２のメモリアドレスが連続している領域を各送信装置の格納対象データに割り当てる。そして、パケット送信部１００７は割り当てた領域のメモリアドレスを各送信装置に通知する。そして、パケット受信部１００１は、各送信装置からの格納対象データがペイロードである通信パケットのみを繰り返し受信し、メモリ１００２内のメモリアドレスが連続している領域に格納対象データを格納する。【選択図】図３
2015079280.tif 000002
【特許請求の範囲】
【請求項１】
複数の送信装置のそれぞれから繰り返し送信される送信データを受信し、受信した各送信データをメモリに格納する情報処理装置であって、
送信装置毎に、送信される送信データのデータ量がデータ送信量として示されるデータ送信量情報を記憶する送信量情報記憶部と、
前記メモリ内でメモリアドレスが連続している領域を、間隔を置かずに、各送信装置のデータ送信量に合わせて区分し、各送信装置にメモリアドレスが連続している部分領域を割り当てる部分領域割当部と、
前記部分領域割当部により割り当てられた部分領域の先頭メモリアドレスを送信装置毎に通知するメモリアドレス通知部と、
前記メモリアドレス通知部により通知された先頭メモリアドレスが示されている先頭メモリアドレス情報と、送信データとを、各送信装置から繰り返し受信するデータ受信部と、
前記データ受信部により先頭メモリアドレス情報と送信データとが受信される度に、受信された各送信データの前記メモリ内の格納先の先頭位置として、各送信データとともに受信された先頭メモリアドレス情報に示されている先頭メモリアドレスを指定するアドレス指定部と
を備えることを特徴とする情報処理装置。
【請求項２】
前記データ受信部は、
各送信装置が先頭メモリアドレス情報と送信データとを１ラウンドにつき１回送信する送信シーケンスに対応させて、各ラウンドにおいて、各送信装置から先頭メモリアドレス情報と送信データとを１回受信することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記情報処理装置は、更に、
前記部分領域割当部により割り当てられた部分領域の先頭メモリアドレスを送信装置毎に記憶する先頭メモリアドレス記憶部と、
複数の送信装置のうち送信データの前記メモリへの格納の対象外にする送信装置を非格納送信装置として指定する非格納送信装置指定部と、
前記先頭メモリアドレス記憶部により記憶されている先頭メモリアドレスのうち前記非格納送信装置指定部により指定された非格納送信装置の先頭メモリアドレスを非格納アドレスとして抽出する非格納アドレス抽出部と、
前記先頭メモリアドレス記憶部により記憶されている先頭メモリアドレスのうち前記非格納アドレスよりも大きい次の先頭メモリアドレスと、前記非格納アドレスとの差を非格納部分領域値として演算する非格納部分領域値演算部と、
前記先頭メモリアドレス記憶部により記憶されている先頭メモリアドレスのうち前記非格納アドレスよりも大きい先頭メモリアドレスのそれぞれを、それぞれの先頭メモリアドレスから前記非格納部分領域値を差し引いた値に置き換える先頭メモリアドレス更新部と
を備え、
前記メモリアドレス通知部は、
前記先頭メモリアドレス更新部により、前記非格納アドレスよりも大きい先頭メモリアドレスのそれぞれが置き換えられた後に、前記先頭メモリアドレス記憶部により記憶されている先頭メモリアドレスを再構成メモリアドレスとして前記非格納送信装置以外の各送信装置に通知し、
前記データ受信部は、
前記メモリアドレス通知部により、再構成メモリアドレスが前記非格納送信装置以外の各送信装置に通知された後に、再構成メモリアドレスが示されている先頭メモリアドレス情報と、送信データとを、前記非格納送信装置以外の各送信装置から繰り返し受信し、
前記アドレス指定部は、
前記非格納送信装置以外の各送信装置から受信された送信データの前記メモリ内の格納先の先頭位置として、前記非格納送信装置以外の各送信装置から受信された送信データとともに受信された先頭メモリアドレス情報に示されている再構成メモリアドレスを指定することを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記情報処理装置は、更に、
前記メモリ内の先頭の部分領域の先頭メモリアドレスから末尾の部分領域の末尾のメモリアドレスの範囲に格納されている送信データを出力するデータ出力部を備えることを特徴とする請求項１〜３いずれか記載の情報処理装置。
【請求項５】
前記データ出力部は、
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送により前記送信データを出力することを特徴とする請求項４記載の情報処理装置。
【請求項６】
複数の送信装置のそれぞれから繰り返し送信される送信データを受信し、受信した各送信データをコンピュータがメモリに格納する情報処理方法であって、
送信装置毎に、送信される送信データのデータ量がデータ送信量として示されるデータ送信量情報を前記コンピュータが所定の記憶領域に記憶する送信量情報記憶ステップと、
前記コンピュータが前記メモリ内でメモリアドレスが連続している領域を、間隔を置かずに、各送信装置のデータ送信量に合わせて区分し、各送信装置にメモリアドレスが連続している部分領域を割り当てる部分領域割当ステップと、
前記コンピュータが前記部分領域割当ステップにより割り当てられた部分領域の先頭メモリアドレスを送信装置毎に通知するメモリアドレス通知ステップと、
前記コンピュータが前記メモリアドレス通知ステップにより通知された先頭メモリアドレスが示されている先頭メモリアドレス情報と、送信データとを、各送信装置から繰り返し受信するデータ受信ステップと、
前記コンピュータが前記データ受信ステップにより先頭メモリアドレス情報と送信データとが受信される度に、受信された各送信データの前記メモリ内の格納先の先頭位置として、各送信データとともに受信された先頭メモリアドレス情報に示されている先頭メモリアドレスを指定するアドレス指定ステップと
を備えることを特徴とする情報処理方法。
【請求項７】
複数の送信装置のそれぞれから繰り返し送信される送信データを受信し、受信した各送信データをメモリに格納するコンピュータに、
送信装置毎に、送信される送信データのデータ量がデータ送信量として示されるデータ送信量情報を所定の記憶領域に記憶する送信量情報記憶ステップと、
前記メモリ内でメモリアドレスが連続している領域を、間隔を置かずに、各送信装置のデータ送信量に合わせて区分し、各送信装置にメモリアドレスが連続している部分領域を割り当てる部分領域割当ステップと、
前記部分領域割当ステップにより割り当てられた部分領域の先頭メモリアドレスを送信装置毎に通知するメモリアドレス通知ステップと、
前記メモリアドレス通知ステップにより通知された先頭メモリアドレスが示されている先頭メモリアドレス情報と、送信データとを、各送信装置から繰り返し受信するデータ受信ステップと、
前記データ受信ステップにより先頭メモリアドレス情報と送信データとが受信される度に、受信された各送信データの前記メモリ内の格納先の先頭位置として、各送信データとともに受信された先頭メモリアドレス情報に示されている先頭メモリアドレスを指定するアドレス指定ステップと
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データをメモリに格納する情報処理装置に関する。
【背景技術】
【０００２】
メモリに格納されているデータを、マイクロプロセッサを介さずに直接他のメモリに転送する技術としてＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送がある。ＤＭＡ転送を制御する情報として、ＤＭＡ転送開始アドレスとＤＭＡ転送終了アドレス、又は、ＤＭＡ転送開始アドレスとＤＭＡ転送サイズとが設定される。
ＤＭＡ転送開始アドレスとＤＭＡ転送終了アドレスとの１つの組、又は、ＤＭＡ転送開始アドレスとＤＭＡ転送サイズとの１つの組を、「１組のＤＭＡ設定情報」と称する。
【０００３】
ここで、ＤＭＡ転送開始アドレスとは、メモリアドレスのうちの転送対象のデータが格納されている先頭メモリアドレスであり、ＤＭＡ転送終了アドレスとは、メモリアドレスのうちの転送対象のデータが格納されている末尾メモリアドレスである。また、ＤＭＡ転送サイズとは、転送対象のデータのデータ長である。
そして、ソフトウェア又は割り込みコントローラによりＤＭＡコントローラが起動されることにより、ＤＭＡ転送が実行される。
【０００４】
ここで、複数のコンピュータにより処理されたデータを１組のＤＭＡ設定情報により、ＤＭＡコントローラがＤＭＡ転送するためには、複数のコンピュータにより処理されたデータをメモリアドレスが連続するメモリの領域に格納する必要がある。
そして、複数の格納対象のデータをメモリアドレスが連続するメモリの領域に格納するメモリ配列技術がある（例えば、特許文献１）。
また、チェーン方式によるＤＭＡ転送の技術が開示されている（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３０２２４６号公報
【特許文献２】特開２００６−２４１３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のメモリ配列技術では、ホストコンピュータ（受信装置）が格納対象の送信データを受信する前に、毎回、ホストコンピュータ（受信装置）とネットワークアダプタ（送信装置）との間で位置特定情報と転送指示とが通信され、通信トラフィックが増加するという課題があった。
また、チェーン方式によるＤＭＡ転送においては、ディスクリプタチェーンの呼び出しや終了判断などの処理が複雑であるという課題があった。更に、チェーン方式によるＤＭＡ転送においては、チェーン方式でＤＭＡ転送が行われる毎に、１組のＤＭＡ設定情報が設定され、ＤＭＡ転送が起動されるので、ＤＭＡ転送の処理に時間がかかるという課題があった。
【０００７】
この発明は前記のような課題を解決することを主な目的とするもので、例えば、受信装置と送信装置との間における通信トラフィックを軽減することを主な目的とする。
【課題を解決するための手段】
【０００８】
この発明に係る情報処理装置は、
複数の送信装置のそれぞれから繰り返し送信される送信データを受信し、受信した各送信データをメモリに格納する情報処理装置であって、
送信装置毎に、送信される送信データのデータ量がデータ送信量として示されるデータ送信量情報を記憶する送信量情報記憶部と、
前記メモリ内でメモリアドレスが連続している領域を、間隔を置かずに、各送信装置のデータ送信量に合わせて区分し、各送信装置にメモリアドレスが連続している部分領域を割り当てる部分領域割当部と、
前記部分領域割当部により割り当てられた部分領域の先頭メモリアドレスを送信装置毎に通知するメモリアドレス通知部と、
前記メモリアドレス通知部により通知された先頭メモリアドレスが示されている先頭メモリアドレス情報と、送信データとを、各送信装置から繰り返し受信するデータ受信部と、
前記データ受信部により先頭メモリアドレス情報と送信データとが受信される度に、受信された各送信データの前記メモリ内の格納先の先頭位置として、各送信データとともに受信された先頭メモリアドレス情報に示されている先頭メモリアドレスを指定するアドレス指定部と
を備えることを特徴とする。
【発明の効果】
【０００９】
この発明に係る情報処理装置は、各送信装置に先頭メモリアドレスを通知した後は、各送信装置からの先頭メモリアドレス情報と、送信データとのみを受信し、受信した送信データを先頭メモリアドレス以降のメモリ領域に格納する。
従って、情報処理装置と送信装置との間における通信トラフィックを軽減することが可能である。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１を示す図で、データ転送システムの構成の例を示す図。
【図２】実施の形態１を示す図で、各送信装置からのデータが受信装置のメモリに格納される様子を示した図。
【図３】実施の形態１を示す図で、受信装置１００の構成の例を示す図。
【図４】実施の形態１を示す図で、送信装置１１０の構成の例を示す図。
【図５】実施の形態１を示す図で、受信装置１００の動作の概要の例を示すフローチャート。
【図６】実施の形態１を示す図で、送信装置１１０の動作の概要の例を示すフローチャート。
【図７】実施の形態１を示す図で、受信装置のコンフィグレーション処理の概要の例を示すフローチャート。
【図８】実施の形態１を示す図で、送信先領域ベースアドレス設定処理の例を示すフローチャート。
【図９】実施の形態１を示す図で、送信先領域ベースアドレスの第１の例を示す図。
【図１０】実施の形態１を示す図で、送信先領域ベースアドレス通知処理の例を示すフローチャート。
【図１１】実施の形態１を示す図で、送信装置のコンフィグレーション処理の例を示すフローチャート。
【図１２】実施の形態１を示す図で、送信装置のサイクリック通信処理の例を示すフローチャート。
【図１３】実施の形態１を示す図で、受信装置のバックアップ処理の例を示すフローチャート。
【図１４】実施の形態１を示す図で、受信装置の縮退運転処理の例を示すフローチャート。
【図１５】実施の形態１を示す図で、送信装置識別子不一致時処理の例を示すフローチャート。
【図１６】実施の形態１を示す図で、送信先領域ベースアドレスの第２の例を示す図。
【図１７】実施の形態１を示す図で、送信装置の縮退運転処理の例を示すフローチャート。
【図１８】実施の形態１を示す図で、実施の形態１に示した受信装置のハードウェア資源の一例を示す図。
【発明を実施するための形態】
【００１１】
実施の形態１．
（データ転送システムの構成）
図１は、データ転送システムの構成の例を示す図である。
データ転送システム１０００は、複数の送信装置１１０で処理されたデータが、受信装置１００のメモリに格納された後、バックアップ装置１００３に転送されるシステムである。ここで、受信装置１００のメモリに格納されるデータを「格納対象データ」と称する。
送信装置１１０は、格納対象データがペイロード（データ本体）である通信パケットを生成し、通信パケットにより格納対象データを送信する。ここで、格納対象データがペイロードである通信パケットを「格納対象通信パケット」と称する。
通信パケット中継装置１３０は、送信装置１１０から送信された各種通信パケットを受信装置１００に中継する。
ネットワーク９００は、例えばＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの各種通信パケットの伝送路である。
【００１２】
受信装置１００は、複数の送信装置１１０から格納対象通信パケットを受信し、格納対象データをメモリに格納する。そして、受信装置１００は、メモリに格納した格納対象データをバックアップ装置１００３にＤＭＡ転送する。ここで、受信装置１００は、情報処理装置に対応する。
バックアップ装置１００３は、受信装置１００からＤＭＡ転送された格納対象データをバックアップデータとして記憶領域に格納する。バックアップ装置１００３は、図１に示すように受信装置１００の外部に備えられていてもよいし、受信装置１００の内部に備えられていてもよい。
【００１３】
（受信装置１００のデータ格納の説明）
図２は、各送信装置からの格納対象データが受信装置のメモリに格納される様子を示した図である。
各送信装置１１０は、それぞれ固定されたデータ送信量の格納対象データがペイロードである格納対象通信パケットを送信する。すなわち、データ送信量は、通信パケットのペイロード部分の格納対象データの容量を示す。例えば図２に示すように、送信装置１１０ａは、「１ＫＢ」の格納対象データがペイロードである格納対象通信パケットを送信する。
【００１４】
そして、受信装置１００は、メモリ１００２内でメモリアドレスが連続している領域を、間隔を置かずに、各送信装置１１０のデータ送信量に合わせて区分し、各送信装置にメモリアドレスが連続している部分領域を割り当てる。この部分領域を送信先領域と称する。
ここで、メモリ１００２の１つのメモリアドレスあたり「１バイト」のデータを格納するものとする。
例えば、図２に示すように、送信装置１１０ａのデータが格納される送信先領域は、メモリアドレスが「１０００〜４９９９」と連続しているメモリ領域のうち、「１０００〜１９９９」のメモリ領域である。そして、送信先領域の先頭メモリアドレス（ここでは「１０００」）を送信先領域ベースアドレスと称する。
同様に、送信装置１１０ｂの送信先領域は、「２０００〜３９９９」のメモリ領域であり、送信装置１１０ｃの送信先領域は、「４０００〜４９９９」のメモリ領域である。そして、それぞれの送信先領域は間隔を置かずに連続している。
そして、受信装置１００は、各送信先領域に各送信装置１１０の格納対象データを格納する。そして、受信装置１００は、所定のタイミング（後述）で、メモリ１００２に格納された格納対象データをバックアップ装置１００３にＤＭＡ転送する。なお、ＤＭＡ転送されるデータをＤＭＡ転送対象データと称する。
【００１５】
ここで、例えば、ＤＭＡ転送対象データがメモリに不連続に格納されている場合、不連続に格納されたデータ毎にＤＭＡ転送を行う必要がある。そして、不連続に格納されたデータ毎に行われるＤＭＡ転送の回数を判断し、不連続に格納されたデータ毎に１組のＤＭＡ設定情報を設定する必要がある。その為、ＤＭＡ転送対象データがメモリ上に不連続に格納されている場合、ＤＭＡ転送の処理が複雑となり、かつ、ＤＭＡ転送対象データの全てのＤＭＡ転送が完了するまでの転送処理時間がかかってしまう。
一方、本実施の形態の受信装置１００は、メモリ１００２にＤＭＡ転送対象データを連続で格納するので、１組のＤＭＡ設定情報のみを設定し、１回のＤＭＡ転送で全てのＤＭＡ転送対象データをＤＭＡ転送することが可能である。
【００１６】
また、各送信装置１１０は、サイクリック通信を行う。例えば図２において、最初に送信装置１１０ａが１ＫＢの格納対象データがペイロードである格納対象通信パケットを送信し、次に送信装置１１０ｂが２ＫＢの格納対象データがペイロードである格納対象通信パケットを送信し、そして、送信装置１１０ｃが１ＫＢの格納対象データがペイロードである格納対象通信パケットを送信する。そして、送信装置１１０ｃの送信が完了した後、再度送信装置１１０ａが１ＫＢの格納対象データがペイロードである格納対象通信パケットを送信する。このように送信装置１１０ａ〜送信装置１１０ｃによる送信処理のサイクルが繰り返される。
そして、受信装置１００は、各送信装置１１０から繰り返し送信される格納対象通信パケットを受信し、受信する度にメモリ１００２に格納対象データを格納する。
【００１７】
（受信装置の構成の説明）
図３は、受信装置１００の構成の例を示す図である。
パケット受信部１００１は、送信装置１１０が送信した格納対象通信パケットを受信する。パケット受信部１００１は、データ受信部とアドレス指定部とに対応する。
メモリ１００２とバックアップ装置１００３とは、前述で説明の通りである。
【００１８】
ＤＭＡ転送起動部１００４は、メモリ１００２のデータをバックアップ装置１００３に転送する際のＤＭＡ転送処理を起動（指示）する。ＤＭＡ転送起動部１００４は、例えばマイクロプロセッサである。
ＤＭＡコントローラ１００５は、メモリ１００２のデータをバックアップ装置１００３にＤＭＡ転送する。ＤＭＡコントローラ１００５は、データ出力部に対応する。
【００１９】
演算周期情報設定部１００６は、各送信装置１１０のサイクリック通信の１周期の期間（サイクリック通信の１周期の期間を演算周期と称する）と演算周期内の各送信装置１１０が格納対象通信パケットを送信するタイミングとを示す演算周期情報を生成する。
送信先領域ベースアドレス設定部１００８は、メモリ１００２における送信装置１１０毎の送信先領域を割り当て、各送信先領域の送信先領域ベースアドレスを送信装置１１０毎に設定する。送信先領域ベースアドレス設定部１００８は、部分領域割当部と送信量情報記憶部と先頭メモリアドレス更新部とに対応する。
【００２０】
送信先領域ベースアドレス記憶部１００９は、送信先領域ベースアドレスを送信装置１１０毎に記憶する。送信先領域ベースアドレス記憶部１００９は、先頭メモリアドレス記憶部に対応する。
送信先領域ベースアドレス選択部１０１２は、送信先領域ベースアドレス記憶部１００９に記憶されている送信先領域ベースアドレスを選択し、パケット送信部１００７に転送する。
パケット送信部１００７は、送信先領域ベースアドレス選択部１０１２から転送された送信先領域ベースアドレスを各送信装置１１０に通知する。また、パケット送信部１００７は、演算周期情報を各送信装置１１０に送信する。パケット送信部１００７は、メモリアドレス通知部に対応する。
【００２１】
縮退送信装置検出部１０１３は、送信装置生存情報（後述）を受信する。
縮退送信装置判定部１０１４は、各送信装置１１０のうち、送信データのメモリ１００２への格納の対象外にする送信装置１１０を判定する。ここで、送信データのメモリ１００２への格納の対象外にする送信装置１１０を縮退送信装置と称する。縮退送信装置判定部１０１４は、非格納送信装置指定部に対応し、縮退送信装置は、非格納送信装置に対応する。
【００２２】
送信先領域ベースアドレス読出し部１０１０は、送信先領域ベースアドレス記憶部１００９により記憶されている送信先領域ベースアドレスを読み出す。
送信先領域ベースアドレス計算部１０１１は、縮退送信装置の送信先領域ベースアドレスを抽出する。また、送信先領域ベースアドレス計算部１０１１は、縮退送信装置を除いた各送信装置１１０の送信先領域がメモリ１００２内で連続するように送信先領域ベースアドレスを更新する。送信先領域ベースアドレス計算部１０１１は、非格納アドレス抽出部と非格納部分領域演算部とに対応する。
また、縮退送信装置の送信先領域ベースアドレスは、非格納アドレスに対応する。
【００２３】
（送信装置の構成の説明）
図４は、送信装置１１０の構成の例を示す図である。
送信側パケット受信部１１０１は、受信装置１００から送信先領域ベースアドレスと演算周期情報とを受信する。
送信先領域ベースアドレス記憶部１１０５は、送信側パケット受信部１１０１が受信した送信先領域ベースアドレスを記憶する。
【００２４】
送信側メモリ１１０２は、送信装置１１０で所定の処理がされる度にデータを更新して記憶する。この送信側メモリ１１０２に記憶されているデータが格納対象データとなる。そして、送信側メモリ１１０２に記憶されている格納対象データのデータ量は、送信装置１１０毎に固定されている。
パケット送信タイミング生成部１１０３は、演算周期情報に基づき、格納対象通信パケットの送信タイミングを生成する。
送信先アドレス生成部１１０６は、送信先領域ベースアドレス記憶部１１０５が記憶している送信先領域ベースアドレスから送信先領域ベースアドレスを示す情報を生成する。
送信側パケット送信部１１０４は、送信側メモリ１１０２が記憶している格納対象データがペイロードであり、ヘッダ部分に送信先アドレス生成部１１０６の生成した送信先領域ベースアドレスが示される格納対象通信パケットを生成し、受信装置１００に送信する。
【００２５】
（動作の概要説明）
図５は、受信装置１００の動作の概要の例を示すフローチャートである。
図６は、送信装置１１０の動作の概要の例を示すフローチャートである。
図５と図６とを用いて、受信装置１００と送信装置１１０との動作の概要を説明する。
【００２６】
受信装置１００と送信装置１１０との処理には、データ転送システム１０００のコンフィグレーション処理と、受信装置１００と送信装置１１０との間で格納対象通信パケットによるデータ通信が行われるサイクリック通信処理との２つがある。
【００２７】
受信装置１００と、各送信装置１１０とは、電源が投入され、リセット解除されると（図５のＳ５１の「ＹＥＳ」、図６のＳ６１の「ＹＥＳ」）、コンフィグレーション処理の状態になる（図５のＳ５２、図６のＳ６２）。
コンフィグレーション処理において、送信先領域ベースアドレスの設定と演算周期情報の生成が行われる（詳細は後述）。
【００２８】
受信装置１００は、コンフィグレーション処理（詳細には、コンフィグレーション処理における送信先領域ベースアドレス通知処理（後述））が終了すると、サイクリック通信処理の状態に遷移する（図５のＳ５３）。
ここで、受信装置１００は、例えば、パケット送信部１００７により各送信装置１１０へサイクリック通信開始通知を通知する。
ただし、受信装置１００は、全ての送信装置１１０が，サイクリック通信状態待ち（図６のＳ６３）である時に、サイクリック通信開始通知を通知する。例えば、受信装置１００は、全ての送信装置１１０の状態レジスタを読み出し、その状態が、サイクリック通信状態待ちであるか否かを判断してもよい。また、全ての送信装置１１０が受信装置１００へサイクリック通信状態待ちであることを通知してもよい。
【００２９】
一方、各送信装置１１０は、コンフィグレーション処理（詳細には、コンフィグレーション処理における送信先領域ベースアドレス格納処理（後述））が終了すると、サイクリック通信状態待ち状態に遷移する。送信装置１１０は、受信装置１００からサイクリック通信開始通知が通知されるまで待機し（図６のＳ６３の「ＮＯ」）、受信装置１００からサイクリック通信開始通知を受け取ると、（図６のＳ６３の「ＹＥＳ」）、サイクリック通信処理の状態に遷移する（図６のＳ６４）。
そして、受信装置１００と各送信装置１１０との間でサイクリック通信が行われる。
【００３０】
サイクリック通信中に、例えばユーザの指示により、受信装置１００がメモリ１００２に格納されているデータをバックアップ装置１００３へバックアップ処理を行う場合、ＤＭＡ転送起動部１００４は、ＤＭＡコントローラ１００５にＤＭＡ転送を指示する。そして、ＤＭＡコントローラ１００５は、メモリ１００２に格納されているデータをバックアップ装置１００３へＤＭＡ転送する。
【００３１】
また、サイクリック通信中に、例えばいずれかの送信装置１１０が故障した場合には、故障した送信装置１１０を除外した縮退運転が行われる。ここで故障した送信装置１１０が前述の縮退送信装置に対応する。縮退運転が行われる際には、前述のように送信先領域ベースアドレスの更新が行われる。
そして、更新した送信先領域ベースアドレスが、縮退送信装置を除く各送信装置１１０に通知され、縮退送信装置を除く各送信装置１１０から受信したデータが、メモリ１００２に格納され、バックアップが行われる。
【００３２】
（受信装置のコンフィグレーション処理の説明）
図７は、受信装置のコンフィグレーション処理の概要の例を示すフローチャートである。
図８は、送信先領域ベースアドレス設定処理の例を示すフローチャートである。
図９は、送信先領域ベースアドレスの第１の例を示す図である。
図１０は、送信先領域ベースアドレス通知処理の例を示すフローチャートである。
【００３３】
コンフィグレーション処理において、受信装置１００は最初に格納対象通信パケットを送信する送信装置１１０と送信装置１１０毎のデータ送信量を抽出する（図７のＳ１０Ａ）。
具体的には、パケット受信部１００１は、各送信装置からデータ送信量が示されるデータ（データ送信量が示されるデータをデータ送信量情報と称する）を受信する。
ここで、受信装置１００は、パケット送信部１００７によりデータ送信量情報の送信要求を各送信装置１１０に対して行う。あるいは、受信装置１００は、送信装置１１０にアクセスしてデータ送信量情報を読み出してもよい。
また、受信装置１００は記憶領域に送信装置１１０と送信装置１１０毎のデータ送信量が予め指定されたコンフィグレーションプログラムを記憶しており、演算周期情報設定部１００６は、コンフィグレーションプログラムを実行して格納対象通信パケットを送信する送信装置１１０と送信装置１１０毎のデータ送信量とを抽出してもよい。
【００３４】
そして、各送信装置１１０のデータ送信量情報は、送信先領域ベースアドレス設定部１００８に記憶される。送信装置１１０とデータ送信量情報とが既知の場合は、予め送信先領域ベースアドレス設定部１００８に記憶されていてもよい。
そして、各送信装置１１０のデータ送信量情報は、送信先領域ベースアドレス設定部１００８に少なくとも後述の送信先領域ベースアドレス設定処理が終了するまで記憶されていればよい。
【００３５】
そして、演算周期情報設定部１００６は、格納対象通信パケットを送信する送信装置１１０の台数と各データ送信量とから演算周期情報を生成する（図７のＳ１０Ｂ）。
演算周期情報には、前述の通り、演算周期と演算周期内の各送信装置１１０が格納対象通信パケットを送信するタイミングとが示される。
【００３６】
送信装置１１０とデータ送信量とが図２に示す例である場合、例えば、演算周期情報設定部１００６は、演算周期を「４分間」と設定し、送信装置１１０ａが格納対象通信パケットを送信するタイミングを「４分間のうちの最初の１分間」と設定し、送信装置１１０ｂが格納対象通信パケットを送信するタイミングを「４分間のうちの最初の１分間が経過後の２分間」と設定し、送信装置１１０ｃが格納対象通信パケットを送信するタイミングを「４分間のうちの最後の１分間」と設定する。ここで、送信装置１１０は、１ＫＢのデータを１分間以内で送信可能であるとする。
あるいは、演算周期情報設定部１００６は、データ送信量に関係無く、演算周期を「６分間」と設定し、各送信装置１１０が格納対象通信パケットを送信するタイミングを「２分間ずつ」と設定してもよい。
また、演算周期情報設定部１００６は、クロックパルスの回数に基づき、演算周期情報を生成してもよい。
【００３７】
次に、送信先領域ベースアドレス設定部１００８は、各送信装置１１０の送信先領域ベースアドレスを設定する（図７のＳ１０Ｃ）。
ここで、送信先領域ベースアドレス設定部１００８は、データ送信量情報を基に、メモリ１００２に各送信装置から送信される格納対象データを格納した時に、連続したメモリアドレスに格納されるように、各送信装置に対応する送信先領域を配置し、各送信装置の送信先領域ベースアドレスを計算する。
そして、例えば、送信先領域ベースアドレス設定部１００８は、パケット受信部１００１がデータ送信量情報を受信した順に、送信先領域ベースアドレスを送信装置毎に設定する。
ここで、送信装置１１０は、図２に示す３台であり、送信装置１１０ａ、送信装置１１０ｂ、送信装置１１０ｃの順にパケット受信部１００１がデータ送信量情報を受信したとして、送信先領域ベースアドレス設定処理の詳細について図８を用いて説明する。
【００３８】
送信先領域ベースアドレス設定部１００８は、メモリ１００２の所定のメモリアドレスを、送信装置１１０ａの送信先領域ベースアドレスに設定する（図８のＳ１００１）。
ここで、メモリ１００２の所定のメモリアドレスは、メモリ１００２の先頭を示す「０番地」であってもよいし、任意の番地であってもよい。ここでは、送信装置１１０ａの送信先領域ベースアドレスは「１０００」に設定されるものとする。
【００３９】
そして、送信先領域ベースアドレス設定部１００８は、「次の送信装置のデータ送信量」を「０」に設定する（図８のＳ１００２）。
送信先領域ベースアドレス設定部１００８は、設定された送信先領域ベースアドレスに「次の送信装置のデータ送信量」に相当するアドレス範囲を加算した値を、「加算後アドレス」として演算する（図８のＳ１００３）。初回は、「次の送信装置のデータ送信量」が「０」である為、「加算後アドレス」は、送信先領域ベースアドレスと変わらない。
【００４０】
送信先領域ベースアドレス設定部１００８は、「加算後アドレス」の値を送信先領域ベースアドレスに置き換える（図８のＳ１００４）。そして、送信装置１１０ａの送信先領域ベースアドレスは「１０００」に設定される（図８のＳ１００５）。
【００４１】
送信先領域ベースアドレス設定部１００８は、全ての送信装置１１０について送信先領域ベースアドレスを設定したか否かを判定する（図８のＳ１００６）。
ここで、送信装置１１０ｂと送信装置１１０ｃとの送信先領域ベースアドレス設定が残っているため（図８のＳ１００６の「ＮＯ」）、送信先領域ベースアドレス設定部１００８は、送信装置１１０ｂのデータ送信量「２ＫＢ」をデータ送信量情報から取得する（図８のＳ１００７）。
【００４２】
送信先領域ベースアドレス設定部１００８は、Ｓ１００３からＳ１００７の処理を繰り返し、送信装置１１０ｂの送信先領域ベースアドレスは「２０００」と送信装置１１０ｃの送信先領域ベースアドレスは「４０００」とを設定し、送信先領域ベースアドレス設定処理を終了する（図８のＳ１００６の「ＹＥＳ」）。
【００４３】
送信先領域ベースアドレス設定部１００８は、最後に送信先領域ベースアドレスを設定した送信装置１１０ｃのデータ送信量「１ＫＢ」をデータ送信量情報から取得し、送信装置１１０ｃの送信先領域ベースアドレス「４０００」にデータ送信量「１ＫＢ」に相当するアドレス範囲「１０００」を加算した値をダミーアドレスに設定する（図８のＳ１００８）。
そして、送信先領域ベースアドレス設定部１００８は、設定した送信先領域ベースアドレスとダミーアドレスとを送信先領域ベースアドレス記憶部１００９に出力して記憶させる。
【００４４】
送信先領域ベースアドレス記憶部１００９は、図９のように送信先領域ベースアドレス設定部１００８が設定した送信先領域ベースアドレスとダミーアドレスとを、送信装置１１０の識別子（ＩＤ）と関連付けて記憶する。送信装置１１０の識別子は、例えば、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスである。
ダミーアドレス（図９のＤ７０４）は、任意の識別子に関連付けられていてもよいし、識別子が関連付けられていなくてもよい。
【００４５】
送信先領域ベースアドレス設定部１００８は、送信先領域ベースアドレス記憶部１００９に対する送信先領域ベースアドレスとダミーアドレスとの出力が完了すると、送信先領域ベースアドレス選択部１０１２に送信先領域ベースアドレスの設定完了を通知する（図８のＳ１００９）。
【００４６】
そして、パケット送信部１００７は、各送信装置１１０に送信先領域ベースアドレスを通知する（図７のＳ１０Ｄ）。
送信先領域ベースアドレス通知処理の詳細について図１０を用いて説明する。
【００４７】
送信先領域ベースアドレスの設定完了を通知された送信先領域ベースアドレス選択部１０１２は、送信先領域ベースアドレス記憶部１００９の送信先領域ベースアドレスを全てパケット送信部１００７に転送するまで（図１０のＳ１００９１の「ＮＯ」）、送信先領域ベースアドレスを読み出す（図１０のＳ１００９２）。
送信先領域ベースアドレス選択部１０１２は、読み出した送信先領域ベースアドレスをＩＰアドレスと対応付けて、パケット送信部１００７に転送する。
【００４８】
パケット送信部１００７は、送信先領域ベースアドレスを対応付けられているＩＰアドレスの送信装置１１０に通知する（図１０のＳ１００９３）。
送信先領域ベースアドレス選択部１０１２は、全ての送信先領域ベースアドレスをパケット送信部１００７に転送すると処理を終了する（図１０のＳ１００９１）。
【００４９】
（送信装置のコンフィグレーション処理の説明）
図１１は、送信装置のコンフィグレーション処理の例を示すフローチャートである。
送信側パケット受信部１１０１は、受信装置１００からデータ送信量情報の送信要求を受信するまで待機する（図１１のＳ１１０１の「ＮＯ」）。
そして、送信側パケット受信部１１０１は、受信装置１００からデータ送信量情報の送信要求を受信すると（図１１のＳ１１０１の「ＹＥＳ」）、データ送信量情報の送信要求を送信側パケット送信部１１０４に転送する。送信側パケット送信部１１０４は、予め送信装置１１０の記憶領域に記憶されているデータ送信量情報を受信装置１００に送信する（図１１のＳ１１０２）。
【００５０】
送信装置１１０は、パケット送信部１００７がデータ送信量情報を送信した後、送信先領域ベースアドレス受信待ち状態となり、受信装置から送信される送信先領域ベースアドレスの受信を待つ（図１１のＳ１１０３の「ＮＯ」）。
ここで、受信装置１００が予め、データ送信量情報を記憶している等データ送信量情報の送信が不要な場合は、図１１のＳ１１０１とＳ１１０２の処理は省略され、送信装置１１０のコンフィグレーション処理は、図１１のＳ１１０３の送信先領域ベースアドレス受信待ち状態から始まる。
【００５１】
送信側パケット受信部１１０１は、送信先領域ベースアドレスを受信すると（図１１のＳ１１０３の「ＹＥＳ」）、受信した送信先領域ベースアドレスを送信先領域ベースアドレス記憶部１１０５に転送する。そして、送信先領域ベースアドレス記憶部１１０５は、当該送信装置１１０の送信先領域ベースアドレスを格納する（図１１のＳ１１０４）。
【００５２】
また、送信側パケット受信部１１０１は、受信装置１００から演算周期情報を受信し、パケット送信タイミング生成部１１０３に転送する。パケット送信タイミング生成部１１０３は、転送された演算周期情報を例えば送信側メモリ１１０２に記憶する。
【００５３】
（送信装置のサイクリック通信処理の説明）
図１２は、送信装置のサイクリック通信処理の例を示すフローチャートである。
サイクリック通信処理の状態に遷移した各送信装置１１０は、受信装置１００により生成された演算周期情報の１回の演算周期につき、１回ずつ格納対象通信パケットを送信する。
ここで、格納対象通信パケットのペイロード部分は格納対象データであり、ヘッダ部分には送信先領域ベースアドレスの情報が含まれる。
なお、各送信装置１１０は、例えば受信装置１００からのサイクリック通信開始通知を同時に受け取り、同時にサイクリック通信処理を開始してもよいし、例えばサーバ装置や受信装置１００などが備える時計を参照し、所定の時刻を基準とし、同時にサイクリック通信処理を開始してもよい。
各送信装置１１０におけるサイクリック通信処理について図１２のフローチャートを用いて説明する。
【００５４】
サイクリック通信処理の状態に遷移した送信装置１１０のパケット送信タイミング生成部１１０３は、当該送信装置１１０が格納対象通信パケットを送信するタイミングを例えば送信装置１１０のクロック信号に対応付ける。
そして、送信側パケット送信部１１０４は、クロック信号が発生したタイミングが、当該送信装置１１０が通信パケットを送信するタイミングか否かを判断する（図１２のＳ１１０３１）。
【００５５】
当該送信装置１１０が通信パケットを送信するタイミングでない場合（図１２のＳ１１０３１の「ＮＯ」）、送信側パケット送信部１１０４は、例えば次のクロック信号が発生するまで待機する（図１２のＳ１１０３２）。
【００５６】
一方、当該送信装置１１０が通信パケットを送信するタイミングである場合（図１２のＳ１１０３１の「ＹＥＳ」）、送信側パケット送信部１１０４は、送信側メモリ１１０２から格納対象データを読み出す（図１２のＳ１１０４１）。
また、送信側パケット送信部１１０４は、送信先アドレス生成部１１０６に送信先領域ベースアドレスの転送を指示する。そして、送信先アドレス生成部１１０６は、送信先領域ベースアドレス記憶部１１０５に格納された送信先領域ベースアドレスを読み出し、送信側パケット送信部１１０４に転送する（図１２のＳ１１０４２）。
【００５７】
そして、送信側パケット送信部１１０４は、格納対象データと送信先領域ベースアドレスとから格納対象通信パケットを生成し（図１２のＳ１１０４３）、受信装置１００に送信する（図１２のＳ１１０４４）。
【００５８】
（受信装置のサイクリック通信処理の説明）
パケット受信部１００１は、各演算周期において、各送信装置１１０から格納対象通信パケットを１回ずつ受信する。
そして、パケット受信部１００１は、格納対象通信パケットを受信する度に、格納対象通信パケットのペイロードである格納対象データをメモリ１００２に格納する。その際に、パケット受信部１００１は、格納対象通信パケットのヘッダ部分に示される送信先領域ベースアドレスを、当該本体データのメモリ１００２内の格納先の先頭位置として指定する。
そして、演算周期毎に、パケット受信部１００１は、受信した格納対象データをメモリ１００２に上書きして記憶する。
【００５９】
（受信装置のバックアップ処理の説明）
図１３は、受信装置のバックアップ処理の例を示すフローチャートである。
ＤＭＡ転送起動部１００４は、メモリ１００２内に格納された格納対象データのバックアップ処理の開始をＤＭＡコントローラ１００５に指示する。バックアップ処理は、予め設定された一定時間毎に行われてもよいし、ユーザの指示により行われてもよい。
具体的には、ＤＭＡ転送起動部１００４は、メモリ１００２内の先頭の送信先領域の送信先領域ベースアドレスと、末尾の送信先領域の末尾のメモリアドレスを抽出し、ＤＭＡコントローラ１００５に転送する。そして、ＤＭＡコントローラ１００５は、メモリ１００２内の転送されたメモリアドレスの範囲に格納されているデータをバックアップ装置１００３に出力（転送）する。
バックアップ処理の詳細を図１３のフローチャートを用いて説明する。
【００６０】
ＤＭＡ転送起動部１００４は、ＤＭＡ転送開始アドレスがセット済みであることを示す開始アドレスフラグとＤＭＡ転送終了アドレスがセット済みであることを示す終了アドレスフラグを例えば「０」に設定する（図１３のＳ１００５１）。ここで「０」は、ＤＭＡ転送開始アドレスがセット済みでないこと（「ＮＯ」であること）を示す。
そして、ＤＭＡ転送起動部１００４は、送信先領域ベースアドレス記憶部１００９に記憶されている全ての送信先領域ベースアドレスに対して図１３のＳ１００９１以降の処理を繰り返す（図１３のＳ１００９１の「ＮＯ」）。
ここで、送信先領域ベースアドレス記憶部１００９に記憶されている送信先領域ベースアドレスは、図９の例を用いる。
【００６１】
ＤＭＡ転送起動部１００４は、開始アドレスフラグが「１」で有るか否か（ＤＭＡ転送開始アドレスがセット済みであるか否か）を判定する（図１３のＳ１００５２）。ここで「１」は、ＤＭＡ転送開始アドレスがセット済みであること（「ＹＥＳ」であること）を示す。
【００６２】
図１３のＳ１００５２における判定が初回の場合は、開始アドレスフラグは「０」なので（図１３のＳ１００５２の「ＮＯ」）、ＤＭＡ転送起動部１００４は、開始アドレスフラグを「１」に設定する（図１３のＳ１００５３）。
【００６３】
そして、ＤＭＡ転送起動部１００４は、送信先領域ベースアドレス記憶部１００９から先頭の送信先領域ベースアドレス「１０００」（図９のＤ７０１）を読み出し、ＤＭＡ転送開始アドレスに設定する（図１３のＳ１００５５）。
【００６４】
一方、図１３のＳ１００５２における判定が２回目の場合は、開始アドレスフラグは「１」なので（図１３のＳ１００５２の「ＹＥＳ」）、ＤＭＡ転送開始アドレスに設定された「１０００」が、送信先領域ベースアドレス記憶部１００９に記憶されている２番目の送信先領域ベースアドレス「２０００」よりも大きいか否かを判定する（図１３のＳ１００５４）。
【００６５】
そして、ＤＭＡ転送開始アドレスが送信先領域ベースアドレスより大きい場合は（図１３のＳ１００５４の「ＹＥＳ」）、ＤＭＡ転送起動部１００４は、当該送信先領域ベースアドレスをＤＭＡ転送開始アドレスに設定する（図１３のＳ１００５５）。
また、ＤＭＡ転送開始アドレスが送信先領域ベースアドレスより小さい場合は（図１３のＳ１００５４の「ＮＯ」）、ＤＭＡ転送起動部１００４は、処理をＳ１００５６に進める。
【００６６】
ＤＭＡ転送起動部１００４は、終了アドレスフラグが「１」で有るか否か（ＤＭＡ転送終了アドレスがセット済みであるか否か）を判定する（図１３のＳ１００５６）。
【００６７】
図１３のＳ１００５６における判定が初回の場合は、終了アドレスフラグは「０」なので（図１３のＳ１００５６の「ＮＯ」）、ＤＭＡ転送起動部１００４は、終了アドレスフラグを「１」に設定する（図１３のＳ１００５７）。
そして、ＤＭＡ転送起動部１００４は、先頭の送信先領域ベースアドレス「１０００」（図９のＤ７０１）にデータ送信量を加えた値をＤＭＡ転送終了アドレスに設定する（図１３のＳ１００５９）。
【００６８】
ここで、データ送信量は、先頭の送信先領域ベースアドレス「１０００」（図９のＤ７０１）と２番目の送信先領域ベースアドレス「２０００」（図９のＤ７０２）との差分として求められる。そして、データは、「１０００」番地から格納されるため、ＤＭＡ転送終了アドレスは「１９９９」に設定される。また、図９の送信装置１１０ｃのデータ送信量は、送信先領域ベースアドレス「４０００」（図９のＤ７０３）とダミーの送信先領域ベースアドレス「５０００」（図９のＳ７０４）との差分として求められる。
【００６９】
一方、図１３のＳ１００５６における判定が２回目の場合は、終了アドレスフラグは「１」なので（図１３のＳ１００５６の「ＹＥＳ」）、ＤＭＡ転送終了アドレスに設定された「１９９９」が、送信先領域ベースアドレス記憶部１００９に記憶されている２番目の送信先領域ベースアドレス「２０００」とデータ送信量との加算値「３９９９」よりも小さい否かを判定する（図１３のＳ１００５８）。
【００７０】
そして、ＤＭＡ転送終了アドレスが送信先領域ベースアドレスとデータ送信量との加算値より小さい場合は（図１３のＳ１００５８の「ＹＥＳ」）、ＤＭＡ転送起動部１００４は、当該加算値をＤＭＡ転送終了アドレスに設定する（図１３のＳ１００５９）。一方、ＤＭＡ転送終了アドレスが送信先領域ベースアドレスとデータ送信量との加算値より大きい場合は（図１３のＳ１００５８の「ＮＯ」）、ＤＭＡ転送起動部１００４は、処理をＳ１００９１に進める。
【００７１】
ここで、ＤＭＡ転送起動部１００４は、送信先領域ベースアドレス記憶部１００９が記憶している送信先領域ベースアドレスのうち、一番小さい値を検索し、ＤＭＡ転送開始アドレスに設定してもよい。また、ＤＭＡ転送起動部１００４は、送信先領域ベースアドレス記憶部１００９が記憶している送信先領域ベースアドレスのうち、一番大きい値を検索し、検索した値から「１」を差し引いた値をＤＭＡ転送終了アドレスに設定してもよい。
【００７２】
ＤＭＡ転送起動部１００４は、開始アドレスフラグと終了アドレスフラグとが「１」である場合（図１３のＳ１００５１０の「ＹＥＳ」かつＳ１００５１１の「ＹＥＳ」）、ＤＭＡコントローラ１００５に、ＤＭＡ転送開始アドレスとＤＭＡ転送終了アドレスとを通知する。そして、ＤＭＡコントローラ１００５は、メモリ１００２内のＤＭＡ転送開始アドレスとＤＭＡ転送終了アドレスとの範囲に格納された格納対象データをバックアップ装置１００３に転送する（図１３のＳ１００５１２）。
【００７３】
すなわち、メモリ１００２には、各送信装置１１０から受信した格納対象データが連続して格納されているので、ＤＭＡコントローラ１００５は、１組のＤＭＡ設定情報（ＤＭＡ転送開始アドレスとＤＭＡ転送終了アドレス）が通知されることによって、各送信装置１１０から受信した格納対象データをバックアップ処理が指示されたタイミングでバックアップ装置１００３に転送する。
【００７４】
（縮退運転処理の説明）
図１４は、受信装置の縮退運転処理の例を示すフローチャートである。
図１５は、送信装置識別子不一致時処理の例を示すフローチャートである。
図１６は、送信先領域ベースアドレスの第２の例を示す図である。
図１７は、送信装置の縮退運転処理の例を示すフローチャートである。
【００７５】
縮退送信装置検出部１０１３（図３）は、各送信装置１１０から送信装置生存情報を受信する。
ここで、送信装置生存情報は、送信装置に異常がないことを示す情報であり、各送信装置１１０から常時送信される状態信号であってもよいし、一定時間毎に送信される信号であってもよい。
また、送信装置生存情報は、送信装置１１０の識別子が示されている。更に、送信装置生存情報は、送信装置の異常の内容（例えば、本体データ送信不可等）と示されていてもよい。
また、送信装置生存情報は、データ転送システム１０００の例えば管理センターから送信されるものでもよい。
そして、縮退送信装置検出部１０１３は、送信装置生存情報に基づき、縮退運転対象の送信装置１１０の候補と当該候補の識別子とを検出し、縮退送信装置判定部１０１４に通知する。
【００７６】
縮退送信装置判定部１０１４は、縮退送信装置検出部１０１３が検出した縮退運転対象の送信装置１１０の候補からの送信データを、メモリ１００２への格納の対象外にするか否か判定する。すなわち、縮退送信装置判定部１０１４は、縮退送信装置検出部１０１３が検出した縮退運転対象の送信装置１１０の候補を縮退送信装置とするか否かを判定する。
【００７７】
ここで、縮退送信装置判定部１０１４は、例えば一定時間経過しても、縮退送信装置検出部１０１３が、縮退運転対象の送信装置１１０の候補が正常に復帰したことを示す送信装置生存情報を受信しない場合に、当該候補を縮退送信装置と判定してもよい。
また、縮退送信装置判定部１０１４は、縮退送信装置検出部１０１３が、一定時間経過しても、縮退運転対象の送信装置１１０の候補からの送信装置生存情報を受信しない場合に、当該候補を縮退送信装置と判定してもよい。
また、受信装置１００のユーザ（オペレータ）の指示により、縮退送信装置判定部１０１４は、各送信装置１１０のうちのいずれかの送信装置１１０を縮退送信装置と判定してもよい。
【００７８】
縮退送信装置判定部１０１４は、縮退送信装置と判定した送信装置１１０の識別子を送信先領域ベースアドレス計算部１０１１に通知する。
また、縮退送信装置判定部１０１４は、送信先領域ベースアドレス読出し部１０１０に送信先領域ベースアドレス記憶部１００９に記憶されている送信先領域ベースアドレスの読み出しを指示する。
ここで、縮退送信装置判定部１０１４が、送信装置１１０ｂ（図９のＤ７０２）を縮退送信装置と判定した場合を例に説明を進める。
まず、送信先領域ベースアドレス計算部１０１１が、縮退送信装置の識別子に対応付けられた送信先領域ベースアドレスを保持アドレスとして特定する処理を図１４のフローチャートを用いて説明する。
【００７９】
送信先領域ベースアドレス計算部１０１１は、差分計算フラグを「０（ＯＦＦ）」に設定し（図１４のＳ１０１０１）、縮退送信装置データ送信量を「０」に設定する（図１４のＳ１０１１１）。
送信先領域ベースアドレス読出し部１０１０と送信先領域ベースアドレス計算部１０１１とは、送信先領域ベースアドレス記憶部１００９に記憶されている全ての送信先領域ベースアドレスに対して図１４のＳ１０１０２以降の処理を繰り返す（図１４のＳ１０１０２の「ＮＯ」）。
【００８０】
送信先領域ベースアドレス読出し部１０１０は、まず送信先領域ベースアドレス記憶部１００９から先頭の送信装置識別子「送信装置１１０ａ」と送信先領域ベースアドレス「１０００」（図９のＤ７０１）とを読み出し、送信先領域ベースアドレス計算部１０１１に転送する（図１４のＳ１０１０３）。
【００８１】
送信先領域ベースアドレス計算部１０１１は、送信先領域ベースアドレス読出し部１０１０が読み出した送信装置識別子が、縮退送信装置判定部１０１４から通知された縮退送信装置の識別子と等しいか否かを判定する（図１４のＳ１０１１３）。
ここで、送信先領域ベースアドレス読出し部１０１０が読み出した送信装置識別子は「送信装置１１０ａ」であり、縮退送信装置判定部１０１４から通知された縮退送信装置の識別子は「送信装置１１０ｂ」なので（図１４のＳ１０１１３の「ＮＯ」）、送信先領域ベースアドレス計算部１０１１は、送信装置識別子不一致時処理（図１４のＳ１３０）を行う。
送信装置識別子不一致時処理については、後述で詳細に説明する。
【００８２】
一方、送信先領域ベースアドレス読出し部１０１０が読み出した送信装置識別子が「送信装置１１０ｂ」である場合（図１４のＳ１０１１３の「ＹＥＳ」）、送信先領域ベースアドレス計算部１０１１は、差分計算フラグを「１（ＯＮ）」に設定し、送信先領域ベースアドレス読出し部１０１０が当該送信装置識別子と一緒に読み出した送信先領域ベースアドレス「２０００」を保持アドレスとして特定する（図１４のＳ１０１１４）。
【００８３】
図１５を用いて、送信装置識別子不一致時処理（図１４のＳ１３０）の詳細を説明する。
送信先領域ベースアドレス計算部１０１１は、差分計算フラグが「０」であるか否かを判定する（図１５のＳ１０１２０）。
まず、送信先領域ベースアドレス読出し部１０１０が送信装置識別子「送信装置１１０ａ」（図９のＤ７０１）を読み出した場合、差分計算フラグは「０」である（図１５のＳ１０１２０の「ＹＥＳ」）。よって、送信先領域ベースアドレス計算部１０１１は、送信先領域ベースアドレス読出し部１０１０が読み出した送信装置識別子「送信装置１１０ａ」と送信先領域ベースアドレス「１０００」とを送信先領域ベースアドレス設定部１００８にそのまま転送する（図１５のＳ１０１１５）。
送信先領域ベースアドレス設定部１００８は、転送された送信装置識別子「送信装置１１０ａ」と送信先領域ベースアドレス「１０００」とを関連付けて送信先領域ベースアドレス記憶部１００９に記憶する（図１６のＤ１６０１）。
【００８４】
一方、送信先領域ベースアドレス読出し部１０１０が送信装置識別子「送信装置１１０ｂ」（図９のＤ７０２）を読み出した後、前述の通り、送信先領域ベースアドレス計算部１０１１は、差分計算フラグを「１」に設定し、保持アドレスを特定（図１４のＳ１０１１４）している。
そして、送信先領域ベースアドレス読出し部１０１０は、次に、送信装置識別子「送信装置１１０ｃ」と送信先領域ベースアドレス「４０００」とを読み出す（図９のＤ７０３）。この場合、差分計算フラグは「１」なので（図１５のＳ１０１２０の「ＮＯ」）、送信先領域ベースアドレス計算部１０１１は、縮退送信装置データ送信量が「０」であるか否かを判定する（図１５のＳ１０１１６）。
【００８５】
ここで、縮退送信装置データ送信量は「０」なので（図１５のＳ１０１１６の「ＹＥＳ」、送信先領域ベースアドレス計算部１０１１は、送信先領域ベースアドレス読出し部１０１０が読み出した送信先領域ベースアドレス「４０００」と保持アドレス「２０００」との差分「２０００」を縮退送信装置データ送信量として算出する（図１５のＳ１０１１７）。
すなわち、送信先領域ベースアドレス計算部１０１１は、送信先領域ベースアドレス記憶部１００９に記憶されている送信先領域ベースアドレスのうち、保持アドレスと保持アドレスよりも大きい次の送信先領域ベースアドレスとの差を縮退送信装置データ送信量として算出している。
【００８６】
そして、送信先領域ベースアドレス計算部１０１１は、保持アドレス「２０００」を送信先領域ベースアドレス読出し部１０１０が読み出した送信装置識別子「送信装置１１０ｃ」の送信先領域ベースアドレスとして設定する（図１５のＳ１０１１８）。
そして、送信先領域ベースアドレス計算部１０１１は、送信装置識別子「送信装置１１０ｃ」と送信先領域ベースアドレス「２０００」とを送信先領域ベースアドレス設定部１００８に転送する。
送信先領域ベースアドレス設定部１００８は、転送された送信装置識別子「送信装置１１０ｃ」と送信先領域ベースアドレス「２０００」とを関連付けて送信先領域ベースアドレス記憶部１００９に記憶する（図１６のＤ１６０２）。
【００８７】
更に、送信先領域ベースアドレス読出し部１０１０が送信装置識別子「ダミー」と送信先領域ベースアドレス「５０００」とを読み出した場合（図９のＤ７０４）、縮退送信装置データ送信量は「２０００」と算出済みである（図１５のＳ１０１１６の「ＮＯ」）。よって、送信先領域ベースアドレス計算部１０１１は、送信先領域ベースアドレス読出し部１０１０が読み出した送信先領域ベースアドレス「５０００」から縮退送信装置データ送信量「２０００」を差し引いた値「３０００」を、当該送信装置識別子の送信先領域ベースアドレスに設定する（図１５のＳ１０１１９）。
【００８８】
そして、同様に送信先領域ベースアドレス設定部１００８は、送信装置識別子「ダミー」と送信先領域ベースアドレス「３０００」とを関連付けて送信先領域ベースアドレス記憶部１００９に記憶する（図１６のＤ１６０３）。
ここで、送信装置識別子「ダミー」について説明したが、例えば送信装置識別子が４台目の送信装置１１０「送信装置１１０ｄ」の場合であっても同様である。
【００８９】
すなわち、送信先領域ベースアドレス設定部１００８は、送信先領域ベースアドレス記憶部１００９に記憶されている送信先領域ベースアドレスのうち、保持アドレスよりも大きい送信先領域ベースアドレスのそれぞれを、それぞれの送信先領域ベースアドレスから縮退送信装置データ送信量を差し引いた値に置き換えている。
【００９０】
そして、送信先領域ベースアドレス選択部１０１２は、送信先領域ベースアドレス設定部１００８により保持アドレスよりも大きい送信先領域ベースアドレスのそれぞれが置き換えられた後に、送信先領域ベースアドレス記憶部１００９から、送信先領域ベースアドレスを読み出し、パケット送信部１００７に転送する。
パケット送信部１００７は、送信先領域ベースアドレス記憶部１００９の送信先領域ベースアドレスを縮退送信装置以外の各送信装置１１０に通知する。
【００９１】
図１７を用いて送信装置１１０の縮退運転処理の説明を行う。
縮退送信装置以外の各送信装置１１０は、コンフィグレーション処理と同様に新たな送信先領域ベースアドレスを送信先領域ベースアドレス記憶部１１０５に格納する。
縮退送信装置以外の各送信装置１１０の送信側パケット受信部１１０１は、サイクリック通信処理中に、受信装置１００から送信先領域ベースアドレスを通知されると（図１７のＳ１１０５０の「ＹＥＳ」）、当該送信装置１１０の送信先領域ベースアドレス記憶部１１０５に上書きで送信先領域ベースアドレスを記憶する（図１７のＳ１１０５１）。
そして、当該送信装置１１０の送信側パケット送信部１１０４は、新たに記憶された送信先領域ベースアドレスと格納対象データとから格納対象通信パケットを生成し、受信装置１００に送信する。
【００９２】
一方、受信装置１００のパケット受信部１００１は、新たな送信先領域ベースアドレスがヘッダ部分に示される格納対象通信パケットを縮退送信装置以外の各送信装置１１０から受信する。
そして、パケット受信部１００１は、縮退送信装置以外の各送信装置１１０から格納対象通信パケットを受信する度に、格納対象通信パケットの格納対象データをメモリ１００２に格納する。その際に、パケット受信部１００１は、格納対象通信パケットのヘッダ部分に示される新たな送信先領域ベースアドレスを、当該格納対象データのメモリ１００２内の格納先の先頭位置として指定する。
【００９３】
（実施の形態１の補足説明）
ベースアドレス記憶部は、送信先領域ベースアドレスの他に、データ送信量を送信装置識別子に関連づけて記憶していてもよい。
また、ベースアドレス記憶部は、送信先領域の末尾アドレスを送信装置識別子に関連づけて記憶していてもよい。
【００９４】
そして、ＤＭＡ転送起動部１００４は、ベースアドレス記憶部に記憶されているデータ送信量や、送信先領域の末尾アドレスを参照して、ＤＭＡコントローラ１００５にＤＭＡ転送対象データのメモリ１００２内のＤＭＡ転送開始アドレスとＤＭＡ転送終了アドレスとを通知してもよい。
また、送信先領域ベースアドレス計算部１０１１は、ベースアドレス記憶部に記憶されているデータ送信量や、送信先領域の末尾アドレスを参照して、縮退運転時の各送信装置１１０の送信先領域ベースアドレスを更新してもよい。
また、ＤＭＡ転送起動部１００４は、ＤＭＡコントローラ１００５にＤＭＡ転送対象データのメモリ１００２内のＤＭＡ転送開始アドレスとＤＭＡ転送サイズ（データ送信量の合計）とを通知してもよい。
【００９５】
（実施の形態１の効果）
本実施の形態の受信装置１００は、サイクリック通信処理において、送信装置１１０から格納対象通信パケットを受信するのみであり、他の通信は行わない。そのため、本実施の形態の受信装置１００は、受信装置１００と送信装置１１０との通信トラフィックを軽減することが可能である。
【００９６】
また、本実施の形態の受信装置１００は、メモリ１００２上にＤＭＡ転送対象データが連続に配置されるので、１組のＤＭＡ設定情報のみが設定され、１回のＤＭＡ転送で全てのＤＭＡ転送対象データがＤＭＡ転送される。従って、本実施の形態の受信装置１００は、ＤＭＡ転送処理の複雑化を解消し、転送処理時間を短縮することが可能である。
【００９７】
更に、特許文献１に示されるメモリ配列技術では、例えば複数の送信装置から送信された格納対象データを、一旦、ネットワークアダプタのメモリに記憶させる必要があった。
そして、ネットワークアダプタのメモリにおいて、各格納対象データ間は、メモリアドレスが非連続である為に、メモリアドレスを再構成し、ホストコンピュータ（受信装置）のメモリアドレスが連続するメモリの領域に転送して記憶させる必要があった。
一方、本実施の形態の受信装置１００は、例えば特許文献１に示されるネットワークアダプタなどの他のメモリを仲介させることなく、複数の送信装置から送信された格納対象データを直接メモリアドレスが連続するメモリの領域に格納することが可能である。
【００９８】
最後に、実施の形態１に示した受信装置１００のハードウェア構成例について説明する。
図１８は、実施の形態１（もしくは「各実施の形態」にする）に示した受信装置１００のハードウェア資源の一例を示す図である。
なお、図１８の構成は、あくまでも受信装置１００のハードウェア構成の一例を示すものであり、受信装置１００のハードウェア構成は図１８に記載の構成に限らず、他の構成であってもよい。
【００９９】
図１８において、受信装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。
ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。
更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）と接続していてもよい。また、磁気ディスク装置９２０の代わりに、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態１で説明したメモリ１００２、送信先領域ベースアドレス記憶部１００９は、ＲＡＭ９１４、磁気ディスク装置９２０等により実現される。
通信ボード９１５、キーボード９０２、マウス９０３、ＦＤＤ９０４などは、入力装置の一例である。
また、通信ボード９１５、表示装置９０１などは、出力装置の一例である。
【０１００】
通信ボード９１５は、図１に示すネットワーク９００に接続されている。
例えば、ネットワーク９００は、ＬＡＮ、インターネットの他、ＷＡＮ（ワイドエリアネットワーク）、ＳＡＮ（ストレージエリアネットワーク）などでも構わない。
【０１０１】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。
プログラム群９２３のプログラムは、ＣＰＵ９１１がオペレーティングシステム９２１、ウィンドウシステム９２２を利用しながら実行する。
【０１０２】
また、ＲＡＭ９１４には、ＣＰＵ９１１に実行させるオペレーティングシステム９２１のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、ＲＡＭ９１４には、ＣＰＵ９１１による処理に必要な各種データが格納される。
【０１０３】
また、ＲＯＭ９１３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置９２０にはブートプログラムが格納されている。
受信装置１００の起動時には、ＲＯＭ９１３のＢＩＯＳプログラム及び磁気ディスク装置９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステム９２１が起動される。
【０１０４】
上記プログラム群９２３には、実施の形態１の説明において「〜部」（「〜記憶部」以外、以下同様）として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【０１０５】
ファイル群９２４には、実施の形態１の説明において、「〜の判断」、「〜の計算」、「〜の比較」、「〜の照合」、「〜の参照」、「〜の検索」、「〜の抽出」、「〜の検査」、「〜の生成」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の入力」、「〜の受信」、「〜の作成」、「〜の判定」、「〜の定義」、「〜の算出」、「〜の更新」、「〜の読み出し」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶されている。
「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示・制御・判定・識別・検知・判別・選択・算出・導出・更新・作成・取得・通知・指示・判断・管理・指示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示・制御・判定・識別・検知・判別・選択・算出・導出・更新・作成・取得・通知・指示・判断・管理・指示などのＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。
また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【０１０６】
また、実施の形態１の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態１で説明したフローチャートに示すステップ、手順、処理により、本発明に係るサービス実行管理方法（ソフトウェア実行方法）を実現することができる。
また、「〜部」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。
プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。
すなわち、プログラムは、実施の形態１の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態１の「〜部」の手順や方法をコンピュータに実行させるものである。
【０１０７】
このように、実施の形態１に示す受信装置１００は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【０１０８】
１００  受信装置、１１０  送信装置、１３０  パケット中継装置、９００  ネットワーク、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  コンパクトディスク装置、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  オペレーティングシステム、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、１０００  データ転送システム、１００１  パケット受信部、１００２  メモリ、１００３  バックアップ装置、１００４  ＤＭＡ転送起動部、１００５  ＤＭＡコントローラ、１００６  演算周期情報設定部、１００７  パケット送信部、１００８  送信先領域ベースアドレス設定部、１００９  送信先領域ベースアドレス記憶部、１０１０  送信先領域ベースアドレス読出し部、１０１１  送信先領域ベースアドレス計算部、１０１２  送信先領域ベースアドレス選択部、１０１３  縮退送信装置検出部、１０１４  縮退送信装置判定部、１１０１  送信側パケット受信部、１１０２  送信側メモリ、１１０３  パケット送信タイミング生成部、１１０４  送信側パケット送信部、１１０５  送信先領域ベースアドレス記憶部、１１０６  送信先アドレス生成部。
【図１】
2015079280.tif 000003
【図２】
2015079280.tif 000004
【図３】
2015079280.tif 000005
【図４】
2015079280.tif 000006
【図５】
2015079280.tif 000007
【図６】
2015079280.tif 000008
【図７】
2015079280.tif 000009
【図８】
2015079280.tif 000010
【図９】
2015079280.tif 000011
【図１０】
2015079280.tif 000012
【図１１】
2015079280.tif 000013
【図１２】
2015079280.tif 000014
【図１３】
2015079280.tif 000015
【図１４】
2015079280.tif 000016
【図１５】
2015079280.tif 000017
【図１６】
2015079280.tif 000018
【図１７】
2015079280.tif 000019
【図１８】
2015079280.tif 000020