(57)【要約】【課題】コスト負担を抑えつつ、通信の高応答性及び高信頼性を担保すること。【解決手段】本発明に係る制御システムは、１つの態様として、第１記憶部を参照して、受信パケットのヘッダ部に送信先アドレスとして挿入されているネットワークアドレスと、第１仮想アドレスとの対応関係が正しいかを判定し、判定結果を通信用記憶部に格納する第１デコード部と、第２記憶部を参照して、受信パケットのヘッダ部に挿入されている第２仮想アドレスを、当該第２仮想アドレスに対応する実アドレスに変換する第２デコード部と、受信パケットのペイロード部に挿入されているパケットデータを、実アドレスを先頭アドレスとして通信用記憶部に格納するパケット処理部とを備える。【選択図】図５
2015115894.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク内に収容される各装置に固有に割り当てられるネットワークアドレスと、当該ネットワークアドレスが冗長化された第１仮想アドレスとを対応付けて記憶する第１記憶部と、
前記各装置に搭載される通信用記憶部の記憶領域の各々に対して固有に割り当てられる第２仮想アドレスと、前記記憶領域に割り当てられている実アドレスとを対応付けて記憶する第２記憶部と、
前記第１記憶部を参照して、受信パケットのヘッダ部に送信先アドレスとして挿入されている前記ネットワークアドレスと、前記第１仮想アドレスとの対応関係が正しいかを判定し、判定結果を前記通信用記憶部に格納する第１デコード部と、
前記第２記憶部を参照して、前記受信パケットのヘッダ部に収納されている前記第２仮想アドレスを、当該第２仮想アドレスに対応する前記実アドレスに変換する第２デコード部と、
前記受信パケットのペイロード部に挿入されているパケットデータを、前記実アドレスを先頭アドレスとして前記通信用記憶部に格納するパケット処理部と
を備える制御システム。
【請求項２】
前記通信用記憶部に格納されたコマンドに基づいて前記パケットデータを処理するコマンド実行部をさらに備え、
前記第２デコード部は、予め決められた条件に従って、前記第２仮想アドレスが前記実アドレスに該当するか、若しくは前記コマンドに該当するかを判定し、当該判定の結果に基づいて前記第２仮想アドレスを前記実アドレス若しくは前記コマンドとして前記通信用記憶部に格納する請求項１に記載の制御システム。
【請求項３】
フラグメント化された前記受信パケットの前記パケットデータを再構築するためのフラグメント情報を記憶するフラグメント情報記憶部をさらに備え、
前記第２デコード部は、前記パケットデータを前記通信用記憶部に格納する際に、前記ヘッダ部に挿入されているフラグ情報に基づいて、前記フラグメント情報記憶部に記憶されているフラグメント情報を更新する請求項１に記載の制御システム。
【請求項４】
制御システムを構成する制御装置に実行させる制御方法であって、
ネットワーク内に収容される各装置に固有に割り当てられるネットワークアドレスと、当該ネットワークアドレスが冗長化された第１仮想アドレスとを対応付けて記憶する第１記憶部を参照して、受信パケットのヘッダ部に送信先アドレスとして収納されている前記ネットワークアドレスと、前記第１仮想アドレスとの対応関係が正しいかを判定し、判定結果を前記通信用記憶部に格納するステップと、
前記各装置に搭載される通信用記憶部の記憶領域の各々に対して固有に割り当てられる第２仮想アドレスと、前記記憶領域に割り当てられている実アドレスとを対応付けて記憶する第２記憶部を参照して、前記受信パケットのヘッダ部に収納されている前記第２仮想アドレスを、当該第２仮想アドレスに対応する前記実アドレスに変換するステップと、
前記受信パケットのペイロード部に挿入されているパケットデータを、前記実アドレスを先頭アドレスとして前記通信用記憶部に格納するステップと
を含む制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御システム及び制御方法に関する。
【背景技術】
【０００２】
従来、所定の通信プロトコルに基づいて通信処理を行う装置の中には、ソフトウェアによる受信パケットの処理負担を軽減することを目的として、演算装置に代わって、受信データを処理する機能を備えるものがある。例えば、特許文献１では、伝送路からフレームを受信すると、受信したフレームを所定の手順で送受信バッファにライトした後、受信したフレームの受信ステータスを送受信情報格納回路にライトする通信コントローラを備えるリアルタイム通信装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３４８９４５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記装置が適用される通信システムの大規模化及び複雑化が進むにつれて、通信の信頼性を担保しつつ、通信の応答性能を高めるためのコスト負担が問題となっている。
【０００５】
本発明は、コスト負担を抑えつつ、通信の高応答性及び高信頼性を担保することができる制御システム及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明に係る制御システムは、１つの態様として、ネットワーク内に収容される各装置に固有に割り当てられるネットワークアドレスと、当該ネットワークアドレスが冗長化された第１仮想アドレスとを対応付けて記憶する第１記憶部と、前記各装置に搭載される通信用記憶部の記憶領域の各々に対して固有に割り当てられる第２仮想アドレスと、前記記憶領域に割り当てられている実アドレスとを対応付けて記憶する第２記憶部と、前記第１記憶部を参照して、受信パケットのヘッダ部に送信先アドレスとして挿入されている前記ネットワークアドレスと、前記第１仮想アドレスとの対応関係が正しいかを判定し、判定結果を前記通信用記憶部に格納する第１デコード部と、前記第２記憶部を参照して、前記受信パケットのヘッダ部に収納されている前記第２仮想アドレスを、当該第２仮想アドレスに対応する前記実アドレスに変換する第２デコード部と、前記受信パケットのペイロード部に挿入されているパケットデータを、前記実アドレスを先頭アドレスとして前記通信用記憶部に格納するパケット処理部とを備える。
【０００７】
この制御システムでは、受信パケットの送信先であるネットワークアドレスと、当該ネットワークアドレスを事前に冗長化して得られた第１仮想アドレスとの対応付けが正しいか否かを判定するので、例えば、対応付けが正しくない場合には、ネットワーク等の障害により自機宛てに誤って送信されたパケットであるものと判断し、制御装置に搭載される演算装置によりパケットデータの処理が行われることを未然に防止できる。この制御装置では、仮想メモリ空間において通信用記憶部の記憶領域の各々に対して固有に割り当てられる第２仮想アドレスを受信パケットから取得して利用することにより、演算装置が受信パケットのパケットデータを通信用記憶部に直接格納するので、制御装置に搭載される演算装置に代わって、パケットデータを格納する処理を迅速かつ簡便に実行できる。
【０００８】
また、本発明の望ましい態様としては、前記通信用記憶部に格納されたコマンドに基づいて前記パケットデータを処理するコマンド実行部をさらに備え、前記第２デコード部は、予め決められた条件に従って、前記第２仮想アドレスが前記実アドレスに該当するか、若しくは前記コマンドに該当するかを判定し、当該判定の結果に基づいて前記第２仮想アドレスを前記実アドレス若しくは前記コマンドとして前記通信用記憶部に格納することが望ましい。
【０００９】
この態様では、受信パケットに含まれる第２仮想アドレスをコマンドとして利用することにより、制御装置において実行されるパケットデータについての様々な処理を迅速に行うことができる。
【００１０】
また、本発明の望ましい態様としては、フラグメント化された前記受信パケットの前記パケットデータを再構築するためのフラグメント情報を記憶するフラグメント情報記憶部をさらに備え、前記第２デコード部は、前記パケットデータを前記通信用記憶部に格納する際に、前記ヘッダ部に挿入されているフラグ情報に基づいて、前記フラグメント情報記憶部に記憶されているフラグメント情報を更新することが望ましい。
【００１１】
この態様では、フラグメント化された受信パケットについても、パケットの処理の高応答性及び高信頼性を担保できる。
【００１２】
また、上述した課題を解決し、目的を達成するために、本発明は、１つの態様として、制御システムを構成する制御装置に実行させる制御方法であって、ネットワーク内に収容される各装置に固有に割り当てられるネットワークアドレスと、当該ネットワークアドレスが冗長化された第１仮想アドレスとを対応付けて記憶する第１記憶部を参照して、受信パケットのヘッダ部に送信先アドレスとして収納されている前記ネットワークアドレスと、前記第１仮想アドレスとの対応関係が正しいかを判定し、判定結果を前記通信用記憶部に格納するステップと、前記各装置に搭載される通信用記憶部の記憶領域の各々に対して固有に割り当てられる第２仮想アドレスと、前記記憶領域に割り当てられている実アドレスとを対応付けて記憶する第２記憶部を参照して、前記受信パケットのヘッダ部に収納されている前記第２仮想アドレスを、当該第２仮想アドレスに対応する前記実アドレスに変換するステップと、前記受信パケットのペイロード部に挿入されているパケットデータを、前記実アドレスを先頭アドレスとして前記通信用記憶部に格納するステップとを含む。
【００１３】
この制御方法は、ネットワーク等の障害により自機宛てに誤って送信されたパケットデータの処理が、制御装置に搭載される演算装置により行われることを未然に防止する方法を実現できる。この制御方法は、パケットデータの記憶領域を決定するための演算装置による処理などを介さずに、迅速かつ簡便にパケットデータを格納する方法を実現できる。
【発明の効果】
【００１４】
本発明に係る制御システム及び制御方法は、コスト負担を抑えつつ、通信の高応答性及び高信頼性を担保することができるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施例に係る制御システムの構成例を示す図である。
【図２】図２は、実施例に係る制御システムを構成する制御装置の機能構成の一例を示すブロック図である。
【図３】図３は、実施例１に係る通信フレーム受信部の機能構成を示すブロック図である。
【図４】図４は、通信フレームの構造例を示す図である。
【図５】図５は、実施例１に係るパケットヘッダデコーダの機能構成を示すブロック図である。
【図６】図６は、第１記憶部に記憶されているデータの構成例を示す図である。
【図７】図７は、第２記憶部に記憶されているデータの構成例を示す図である。
【図８】図８は、実施例１に係るパケットヘッダデコーダにより実行される処理の流れを示すフローチャートである。
【図９】図９は、実施例２に係る通信フレーム受信部の機能構成を示すブロック図である。
【図１０】図１０は、実施例２に係るパケットヘッダデコーダの機能構成を示すブロック図である。
【図１１】図１１は、実施例２に係るパケットヘッダデコーダにより実行される処理の流れを示すフローチャートである。
【図１２】図１２は、実施例３に係る通信フレーム受信部の機能構成を示すブロック図である。
【図１３】図１３は、実施例３に係るパケットヘッダデコーダの機能構成を示すブロック図である。
【図１４】図１４は、実施例３に係るパケットヘッダデコーダにより実行される処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下に、本発明に係る制御システム及び制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。さらに、この実施例における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。以下の実施例では、制御システムを構成する制御装置が、制御対象となる装置の各種データを並列に処理する例について説明する。
【実施例１】
【００１７】
図１は、実施例に係る制御システムの構成例を示す図である。図１に例示する制御システムの構成は、以下に説明する各実施例において共通する。制御システムは、制御装置１０ａ〜１０ｎ、通信機器２０ａ、２０ｂ〜２０ｎ、３０ａ、３０ｂ、３０ｙ、３０ｚ、及び制御対象装置４０ａ、４０ｂ〜４０ｙ、４０ｚなどにより構成される。図１に示すように、制御装置１０ａ〜１０ｎは、通信ネットワーク１を介して相互に通信可能な状態で接続される。また、制御装置１０ａ〜１０ｎは、通信ネットワーク２、３〜ｎを介して、制御対象装置４０ａ、４０ｂ〜４０ｙ、４０ｚと通信可能な状態で接続される。通信ネットワーク２には、例えば、制御装置１０ａ〜１０ｎと制御対象装置４０ａ、４０ｂ〜４０ｙ、４０ｚとの間の通信を可能にするための通信機器２０ａ、２０ｂ〜２０ｎが収容される。通信ネットワーク３には、例えば、制御装置１０ａ〜１０ｎと制御対象装置４０ａ、４０ｂとの間の通信を可能にするための通信機器３０ａ、３０ｂが収容される。通信ネットワークｎには、例えば、制御装置１０ａ〜１０ｎと制御対象装置４０ｙ、４０ｚとの間の通信を可能にするための通信機器３０ｙ、３０ｚが収容される。通信機器２０ａ、２０ｂ〜２０ｎ、３０ａ、３０ｂ、３０ｙ、３０ｚは、例えば、ネットワークアダプタ、スイッチ、ルータなどに該当する。
【００１８】
通信ネットワーク１、通信ネットワーク２、通信ネットワーク３〜通信ネットワークｎは、既存のネットワークプロトコルを利用したサブネットを構成する。例えば、既存のネットワークプロトコルであるＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）のヘッダに、以下に説明する仮想アドレスを収容できるように改良する。サブネットは、イーサネット（登録商標）などにより構築される。制御装置１０ａ〜１０ｎには、サブネットにおいてそれぞれに固有なネットワークアドレス（ＩＰアドレスに相当するアドレス）が割り当てられる。さらに、制御装置１０ａ〜１０ｎの各々に割り当てられたネットワークアドレスを冗長化した仮想アドレス（以下、第１仮想アドレスと表記する）が、各ネットワークアドレスに対してそれぞれ割り当てられる。第１仮想アドレスは、例えば、ネットワークアドレスを構成するビット情報をオフセットすることにより得られる。さらに、制御装置１０ａ〜１０ｎの各々搭載されている通信用記憶部に記憶領域を仮想メモリ空間として展開し、当該仮想メモリ空間において固有の仮想アドレス（以下、第２仮想アドレスと表記する）が各記憶領域に対してそれぞれ割り当てられる。上記ネットワークアドレス、第１仮想アドレス、第２仮想アドレスは、通信ネットワーク１、通信ネットワーク２、通信ネットワーク３〜通信ネットワークｎに収容される各装置で共有される。
【００１９】
［制御装置の構成］
図２は、実施例に係る制御システムを構成する制御装置の機能構成の一例を示すブロック図である。図２に示す制御装置１０ａの機能構成は、他の制御装置と同様であり、以下に説明する各実施例において共通する。なお、図２では、実施例に係る制御装置を説明する上で必要となる構成部分のみを図示し、その他の要素については図示を省略する。
【００２０】
図２に示すように、制御装置１０ａは、演算部１００と、通信用記憶部２００、及び論理回路３００を備える。なお、図１に示す通信機器２０ａ、２０ｂ〜２０ｎ、及び通信機器３０ａ、３０ｂも、制御装置１０ａと同様に、演算部１００と、通信用記憶部２００、及び論理回路３００を備えてもよい。この場合には、通信機器２０ａ、２０ｂ〜２０ｎ、及び通信機器３０ａ、３０ｂも、以下に説明する制御装置１０ａと同様の機能を備えることになる。
【００２１】
演算部１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの演算装置と、記憶装置であるメモリなどを備え、これらのハードウェア資源を用いてプログラムを実行することによって各種の機能を実現する。例えば、演算部１００は、通信用記憶部２００などに記憶されているプログラムを読み出してメモリに展開し、メモリに展開されたプログラムに含まれる命令をＣＰＵに実行させる。そして、演算部１００は、ＣＰＵによる命令の実行結果に応じて、メモリおよび通信用記憶部２００に対してデータの読み書きを行ったり、処理したデータに関する通信等の動作を制御したりする。
【００２２】
通信用記憶部２００は、磁気記憶装置または半導体記憶装置等の不揮発性を有する記憶装置を備え、各種のプログラムおよびデータを記憶する。通信用記憶部２００に記憶されるデータには、例えば、受信パケットから取得するパケットデータが含まれる。通信用記憶部２００は、通信用記憶部の一例である。
【００２３】
論理回路３００は、主に、通信フレーム（受信パケット）に関する処理を実行する。論路回路３００は、例えば、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などにより実装される。論理回路３００は、図２に示すように、通信フレーム受信部３１０を有する。
【００２４】
［通信フレーム受信部の構成（実施例１）］
図３は、実施例１に係る通信フレーム受信部３１０の機能構成を示すブロック図である。通信フレーム受信部３１０は、受信回路３１１及びパケットヘッダデコーダ３１２を有する。
【００２５】
受信回路３１１は、通信フレームを受信する。図４は、通信フレームの構造例を示す図である。図４に示すように、通信フレームは、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）ヘッダと、パケットヘッダと、パケットデータと、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）を含む。
【００２６】
ＭＡＣヘッダは、イーサネット（登録商標）を使ったネットワーク（データリンク層・物理層など）において、通信フレームによるデータのやり取りを行う際に用いられるアドレス情報などが挿入される。ＭＡＣヘッダには、例えば、宛先ＭＡＣアドレス及び送信元ＭＡＣアドレスなどが挿入される。
【００２７】
パケットヘッダは、データリンク層などよりも上位のネットワーク（ネットワーク層）において、パケットによるデータのやり取りに用いられるアドレス情報などが挿入される。パケットヘッダには、図４に示すように、送信先アドレス、第１仮想アドレス、第２仮想アドレス、送信元アドレス、Ｔｙｐｅなどのデータが挿入される。送信先アドレス及び送信元アドレスは、サブネットにおいてそれぞれに固有な上記ネットワークアドレスに対応する。第１仮想アドレスは、上述したように、制御装置１０ａ〜１０ｎの各々に割り当てられた上記ネットワークアドレス（ＩＰアドレスに相当するアドレス）を冗長化した仮想アドレスである。第２仮想アドレスは、上述したように、制御装置１０ａ〜１０ｎの各々搭載されている通信用記憶部に記憶領域を仮想メモリ空間として展開し、各記憶領域に固有の仮想アドレスである。パケットヘッダは、受信パケットのヘッダ部に対応する。
【００２８】
パケットデータは、受信パケットのペイロード部に挿入される送信対象のデータである。パケットデータは、受信パケットのペイロード部に挿入されるパケットデータに対応する。
【００２９】
ＣＲＣは、巡回冗長検査を行うための誤り検出符号である。
【００３０】
受信回路３１１は、受信した通信フレームからＭＡＣヘッダを取り除いた受信パケットをパケットヘッダデコーダに送る。
【００３１】
［パケットヘッダデコーダの構成（実施例１）］
図５は、実施例１に係るパケットヘッダデコーダ３１２の機能構成を示すブロック図である。パケットヘッダデコーダ３１２は、演算部１００を介さずに、受信パケットに関する処理を実行する。図５に示すように、パケットヘッダデコーダ３１２は、送信先アドレスチェック部３１２ａと、仮想アドレス抽出部３１２ｂと、仮想アドレスセパレータ３１２ｃと、第１仮想アドレスデコーダ３１２ｄと、第１記憶部３１２ｅと、第２仮想アドレスデコーダ３１２ｆと、第２記憶部３１２ｇと、パケット処理部３１２ｈとを有する。
【００３２】
送信先アドレスチェック部３１２ａは、受信パケットの送信先アドレスが正しいかを判定する。すなわち、送信先アドレスチェック部３１２ａは、受信パケットのパケットヘッダに挿入されている送信先アドレスが、自機に割り当てられているネットワークアドレスと一致するか否かをチェックする。送信先アドレスチェック部３１２ａは、送信先アドレスが自機のネットワークアドレスに一致する場合には、受信パケットを仮想アドレス抽出部３１２ｂに送る。
【００３３】
仮想アドレス抽出部３１２ｂは、受信パケットをヘッダとパケットデータとに分離する。仮想アドレス抽出部３１２ｂは、パケットヘッダを仮想アドレスセパレータ３１２ｃに送り、パケットデータをパケット処理部３１２ｈに送る。
【００３４】
仮想アドレスセパレータ３１２ｃは、パケットヘッダに含まれる第１仮想アドレスと第２仮想アドレスとを分離する。仮想アドレスセパレータ３１２ｃは、第１仮想アドレスを第１仮想アドレスデコーダ３１２ｄに送り、第２仮想アドレスを第２仮想アドレスデコーダ３１２ｆに送る。
【００３５】
第１仮想アドレスデコーダ３１２ｄは、第１記憶部３１２ｅを参照して、受信パケットのパケットヘッダに送信先アドレスとして挿入されている上記ネットワークアドレスと、上記第１仮想アドレスとの対応関係が正しいかを判定し、判定結果（アドレスチェック結果）を通信用記憶部２００に格納する。すなわち、ネットワークアドレスと、ネットワークアドレスを冗長化した第１仮想アドレスとの対応が正しい場合には、受信パケットが自機宛てに送信されたものであると判断する。第１仮想アドレスデコーダ３１２ｄは、第１デコード部の一例である。第１記憶部３１２ｅは、第１記憶部の一例である。
【００３６】
図６は、第１記憶部３１２ｅに記憶されているデータの構成例を示す図である。図６に示すように、第１記憶部３１２ｅは、装置ＩＤと、ネットワークアドレスと、第１仮想アドレスとを対応付けて記憶する。図６に示す第１記憶部３１２ｅに記憶されるデータの構成例は、一例であり、ネットワークアドレスと、第１仮想アドレスとの対応が判定できる構成であれば、図６に示す例には限定されない。
【００３７】
第２仮想アドレスデコーダ３１２ｆは、第２記憶部３１２ｇを参照して、受信パケットのパケットヘッダに収納されている上記第２仮想アドレスを、当該第２仮想アドレスに対応する実アドレスに変換する。すなわち、第２仮想アドレスデコーダ３１２ｆは、仮想メモリ空間において通信用記憶部２００の記憶領域に固有に割り当てられている第２仮想アドレスを、通信用記憶部２００の記憶領域に実際に割り当てられている実アドレス（物理アドレス）に変換する。第２仮想アドレスデコーダ３１２ｆは、実アドレスをパケット処理部３１２ｈに送る。第２仮想アドレスデコーダ３１２ｆは、第２デコード部の一例である。第２記憶部３１２ｇは、第２記憶部の一例である。
【００３８】
図７は、第２記憶部３１２ｇに記憶されているデータの構成例を示す図である。図７に示すように、第２記憶部３１２ｇは、装置ＩＤと、第２仮想アドレスと、実アドレスとを対応付けて記憶する。図７に示す第２記憶部３１２ｇに記憶されるデータの構成例は、一例であり、第２仮想アドレスと実アドレスとの対応が判定できる構成であれば、図７に示す例には限定されない。
【００３９】
パケット処理部３１２ｈは、受信パケットのパケットデータを、実アドレスを先頭アドレスとして通信用記憶部２００に格納する。
【００４０】
なお、通信用記憶部２００に格納された送信先アドレス（ネットワークアドレス）と第１仮想アドレスとの対応関係の判定結果（アドレスチェック結果）と、通信用記憶部２００に格納されたパケットデータとを、演算部１００が相互に照らし合わせて参照することが可能な状態で格納されているものとする。
【００４１】
［パケットヘッダデコーダによる処理（実施例１）］
図８を用いて、実施例１に係るパケットヘッダデコーダ３１２により実行される処理について説明する。図８は、実施例１に係るパケットヘッダデコーダ３１２により実行される処理の流れを示すフローチャートである。図８に示す処理は、論理回路３００を構成するロジックエレメントの組み合わせにより実行される。
【００４２】
図８に示すように、パケットヘッダデコーダ３１２は、受信パケットの送信先アドレスが正しいかを判定する（ステップＳ１０１）。すなわち、パケットヘッダデコーダ３１２は、受信パケットのパケットヘッダに挿入されている送信先アドレスが、自機に割り当てられているネットワークアドレスと一致するか否かをチェックする。
【００４３】
パケットヘッダデコーダ３１２は、判定の結果、受信パケットの送信先アドレスが正しい場合には（ステップＳ１０１，Ｙｅｓ）、受信パケットのパケットヘッダと、パケットデータとを分離する（ステップＳ１０２）。
【００４４】
続いて、パケットヘッダデコーダ３１２は、パケットヘッダに挿入されている第１仮想アドレスと第２仮想アドレスとを分離する（ステップＳ１０３）。
【００４５】
続いて、パケットヘッダデコーダ３１２は、送信先アドレスと第１仮想アドレスとの対応関係を判定して、判定結果（アドレスチェック結果）を通信用記憶部２００に格納する（ステップＳ１０４）。すなわち、パケットヘッダデコーダ３１２は、第１記憶部３１２ｅを参照して、受信パケットのパケットヘッダに送信先アドレスとして挿入されているネットワークアドレスと、第１仮想アドレスとの対応関係が正しいかを判定し、判定結果（アドレスチェック結果）を通信用記憶部２００に格納する。
【００４６】
続いて、パケットヘッダデコーダ３１２は、第２仮想アドレスを実アドレスに変換し（ステップＳ１０５）、実アドレスを先頭アドレスとして、パケットデータを通信用記憶部２００に格納して（ステップＳ１０６）、図８に示す処理を終了する。
【００４７】
上記ステップＳ１０１において、パケットヘッダデコーダ３１２は、判定の結果、受信パケットの送信先アドレスが正しくない場合には（ステップＳ１０１，Ｎｏ）、図８に示す処理を終了する。
【００４８】
上述してきたように、実施例１では、パケットヘッダデコーダ３１２は、受信パケットの送信先であるネットワークアドレスと、当該ネットワークアドレスを事前に冗長化して得られた第１仮想アドレスとの対応付けが正しいか否かを判定する。よって、パケットヘッダデコーダ３１２は、例えば、上記対応付けが正しくない場合には、ネットワーク等の障害により自機宛てに誤って送信されたパケットであるものと演算部１００に判断させることができ、演算部１００においてパケットデータの処理が行われることを未然に防止できる。また、実施例１では、パケットヘッダデコーダ３１２は、仮想メモリ空間において通信用記憶部２００の記憶領域の各々に対して固有に割り当てられている第２仮想アドレスを、通信用記憶部２００の記憶領域に実際に割り当てられている実アドレス（物理アドレス）に変換する。よって、パケットヘッダデコーダ３１２は、演算部１００に代わって、パケットデータを格納する処理を迅速かつ簡便に実行できる。このようなことから、実施例１によれば、コスト負担を抑えつつ、通信の高応答性及び高信頼性を担保することができる。
【実施例２】
【００４９】
以下の実施例２では、上記第２仮想アドレスを、実アドレスの他、パケットデータの処理コマンドとして利用する場合について説明する。
【００５０】
［通信フレーム受信部の構成（実施例２）］
図９は、実施例２に係る通信フレーム受信部３１０の機能構成を示すブロック図である。実施例２に係る通信フレーム受信部３１０は、以下に説明する点が実施例１とは異なる。
【００５１】
通信フレーム受信部３１０は、受信回路３１１及びパケットヘッダデコーダ３１２の他、コマンド実行部３１３を有する。
【００５２】
コマンド実行部３１３は、パケットヘッダデコーダ３１２から送られるコマンドに基づいて、パケットヘッダデコーダ３１２から送られる処理データに関する処理を実行する。
【００５３】
［パケットヘッダデコーダの構成（実施例２）］
図１０は、実施例２に係るパケットヘッダデコーダ３１２の機能構成を示すブロック図である。実施例２に係るパケットヘッダデコーダ３１２は、以下に説明する点が実施例１とは異なる。
【００５４】
パケットヘッダデコーダ３１２は、ＭＵＸ３１２ｉを有する。ＭＵＸ３１２ｉは、第２仮想アドレスデコーダ３１２ｆから送られる出力先選択信号に基づいて、パケットデータを通信用記憶部２００に格納するか、コマンド実行部３１３に送るかを決定する。ＭＵＸ３１２ｉは、出力先選択信号が通信用記憶部２００に対応する場合には、実アドレスを先頭アドレスとして、パケットデータを通信用記憶部２００に格納する。ＭＵＸ３１２ｉは、出力先選択信号がコマンド実行部３１３に対応する場合には、パケットデータを処理データとしてコマンド実行部３１３に送る。
【００５５】
第２仮想アドレスデコーダ３１２ｆは、第２仮想アドレスをプリデコードして、プリデコードした第２仮想アドレスの値がアドレス領域及びコマンド領域のどちらに対応するかを判定する。第２仮想アドレスデコーダ３１２ｆは、第２仮想アドレスの値がアドレス領域及びコマンド領域のどちらに対応するかの判定結果に基づいて、第２仮想アドレスを実アドレス若しくはコマンドとして変換する。第２仮想アドレスデコーダ３１２ｆは、第２仮想アドレスの値がアドレス領域に対応する場合には、第２仮想アドレスを実アドレスとして変換し、パケット処理部３１２ｈに送る。第２仮想アドレスデコーダ３１２ｆは、第２仮想アドレスの値がコマンドアドレス領域に対応する場合には、第２仮想アドレスをコマンドとしてコマンド実行部３１３に送る。
【００５６】
さらに、第２仮想アドレスデコーダ３１２ｆは、第２仮想アドレスの値がアドレス領域及びコマンド領域のどちらに対応するかの判定結果に基づいて、パケットデータの送り先をＭＵＸ３１２ｉに決定させるための出力先選択信号を生成し、ＭＵＸ３１２ｉに送る。
【００５７】
［パケットヘッダデコーダによる処理（実施例２）］
図１１を用いて、実施例２に係るパケットヘッダデコーダ３１２により実行される処理について説明する。図１１は、実施例２に係るパケットヘッダデコーダ３１２により実行される処理の流れを示すフローチャートである。図１１に示す処理は、論理回路３００を構成するロジックエレメントの組み合わせにより実行される。図１１に示す処理は、ステップＳ２０５〜ステップＳ２０９の処理が、図８に示す処理とは異なる。
【００５８】
図１１に示すように、パケットヘッダデコーダ３１２は、受信パケットの送信先アドレスが正しいかを判定する（ステップＳ２０１）。
【００５９】
パケットヘッダデコーダ３１２は、判定の結果、受信パケットの送信先アドレスが正しい場合には（ステップＳ２０１，Ｙｅｓ）、受信パケットのパケットヘッダと、パケットデータとを分離する（ステップＳ２０２）。
【００６０】
続いて、パケットヘッダデコーダ３１２は、パケットヘッダに挿入されている第１仮想アドレスと第２仮想アドレスとを分離する（ステップＳ２０３）。
【００６１】
続いて、パケットヘッダデコーダ３１２は、送信先アドレスと第１仮想アドレスとの対応関係を判定して、判定結果（アドレスチェック結果）を通信用記憶部２００に格納する（ステップＳ２０４）。
【００６２】
続いて、パケットヘッダデコーダ３１２は、第２仮想アドレスをプリデコードして（ステップＳ２０５）、プリデコードした第２仮想アドレスの値がアドレス領域及びコマンド領域のどちらに対応するかを判定する（ステップＳ２０６）。
【００６３】
続いて、パケットヘッダデコーダ３１２は、ステップＳ２０６の判定結果に基づいて、第２仮想アドレスを実アドレス若しくはコマンドとして変換する（ステップＳ２０７）。
【００６４】
続いて、パケットヘッダデコーダ３１２は、ステップＳ２０６の判定結果に基づいて、パケットデータの送り先を決定するための出力先選択信号を生成する（ステップＳ２０８）。
【００６５】
続いて、パケットヘッダデコーダ３１２は、ステップＳ２０６の判定結果に基づいて、実アドレスを先頭アドレスとしてパケットデータを通信用記憶部２００に格納する、若しくはコマンド及びパケットデータを処理データとしてコマンド実行部３１３に送出して、図１１に示す処理を終了する（ステップＳ２０９）。
【００６６】
上記ステップＳ２０１において、パケットヘッダデコーダ３１２は、判定の結果、受信パケットの送信先アドレスが正しくない場合には（ステップＳ２０１，Ｎｏ）、図１１に示す処理を終了する。
【００６７】
上述してきたように、実施例２では、第２仮想アドレスを、実アドレスの他、パケットデータの処理コマンドとして利用する。このため、実施例２によれば、制御装置において実行されるパケットデータについての様々な処理を迅速に行うことができる。
【実施例３】
【００６８】
以下の実施例３では、フラグメント化されたパケットを受信した場合の処理について説明する。
【００６９】
［通信フレーム受信部の構成（実施例３）］
図１２は、実施例３に係る通信フレーム受信部３１０の機能構成を示すブロック図である。実施例３に係る通信フレーム受信部３１０は、以下に説明する点が実施例１とは異なる。
【００７０】
通信フレーム受信部３１０は、受信回路３１１及びパケットヘッダデコーダ３１２の他、フラグメント用フラグレジスタ３１４を有する。
【００７１】
フラグメント用フラグレジスタ３１４は、フラグメント化（分割）された受信パケットに対応する到着フラグを、第２仮想アドレスデコーダ３１２ｆから割り当てられる到着フラグの状態を管理する。到着フラグは、フラグメント化された受信パケットの各々に対応し、パケットが到着しているかを示す。フラグメント用フラグレジスタ３１４は、フラグ選択信号及びフラグデータに基づいて、対応する受信パケットの到着フラグをアクティブにする。
【００７２】
［パケットヘッダデコーダの構成（実施例３）］
図１３は、実施例３に係るパケットヘッダデコーダ３１２の機能構成を示すブロック図である。実施例３に係るパケットヘッダデコーダ３１２は、以下に説明する点が実施例１とは異なる。
【００７３】
仮想アドレス抽出部３１２ｂから仮想アドレスセパレータ３１２ｃに送られるパケットヘッダには、フラグメント情報を挿入するための領域が設けられる。フラグメント情報は、受信パケットがフラグメント化されたパケットであるかを通知するための情報、及び受信パケットがフラグメント化されたパケットである場合のフラグメント化された（分割された）順序を通知するための情報で構成される。パケットヘッダには、受信パケットがフラグメント化されたパケットであるかを通知するための情報が挿入されるフラグフィールド、及び受信パケットがフラグメント化されたパケットである場合のフラグメント化された（分割された）順序（フラグデータ）を通知するための情報が挿入されるフラグメントオフセットが設けられる。
【００７４】
第２仮想アドレスデコーダ３１２ｆは、フラグメント情報に基づいて、受信パケットがフラグメント化された最初のパケットであるかを判定する。第２仮想アドレスデコーダ３１２ｆは、受信パケットがフラグメント化された最初のパケットである場合には、第２仮想アドレスを実アドレスに変換し、パケット処理部３１２ｈに送る。第２仮想アドレスデコーダ３１２ｆは、受信パケットに対応する到着フラグをフラグメント用フラグレジスタ３１４に割り当てる。第２仮想アドレスデコーダ３１２ｆは、フラグ選択信号及びフラグデータをフラグメント用フラグレジスタ３１４に送る。第２仮想アドレスデコーダ３１２ｆは、フラグメント化された残りのパケットを格納するための領域を通信用記憶部２００に予約し、各パケットに対応する到着フラグをフラグメント用フラグレジスタ３１４に割り当てる。
【００７５】
一方、第２仮想アドレスデコーダ３１２ｆは、受信パケットがフラグメント化された最初のパケットではない場合には、受信パケットが最初のパケットである場合と同様に第２仮想アドレスを実アドレスに変換してパケット処理部３１２ｈに送る。続いて、第２仮想アドレスデコーダ３１２ｆは、受信パケットに対応する到着フラグをアクティブにするためのフラグ選択信号及びフラグデータをフラグメント用フラグレジスタ３１４に送る。
【００７６】
［パケットヘッダデコーダによる処理（実施例３）］
図１４を用いて、実施例３に係るパケットヘッダデコーダ３１２により実行される処理について説明する。図１４は、実施例３に係るパケットヘッダデコーダ３１２により実行される処理の流れを示すフローチャートである。図１４に示す処理は、論理回路３００を構成するロジックエレメントの組み合わせにより実行される。図１４に示す処理は、ステップＳ３０５〜ステップＳ３１２の処理が、図８に示す処理とは異なる。
【００７７】
図１４に示すように、パケットヘッダデコーダ３１２は、受信パケットの送信先アドレスが正しいかを判定する（ステップＳ３０１）。
【００７８】
パケットヘッダデコーダ３１２は、判定の結果、受信パケットの送信先アドレスが正しい場合には（ステップＳ３０１，Ｙｅｓ）、受信パケットのパケットヘッダと、パケットデータとを分離する（ステップＳ３０２）。
【００７９】
続いて、パケットヘッダデコーダ３１２は、パケットヘッダに挿入されている第１仮想アドレスと第２仮想アドレスとを分離する（ステップＳ３０３）。
【００８０】
続いて、パケットヘッダデコーダ３１２は、送信先アドレスと第１仮想アドレスとの対応関係を判定して、判定結果（アドレスチェック結果）を通信用記憶部２００に格納する（ステップＳ３０４）。
【００８１】
続いて、パケットヘッダデコーダ３１２は、フラグメント情報に基づいて、受信パケットがフラグメント化された最初のパケットであるかを判定する（ステップＳ３０５）。
【００８２】
パケットヘッダデコーダ３１２は、判定の結果、受信パケットがフラグメント化された最初のパケットである場合には（ステップＳ３０５，Ｙｅｓ）、第２仮想アドレスを実アドレスに変換する（ステップＳ３０６）。
【００８３】
続いて、パケットヘッダデコーダ３１２は、実アドレスを先頭アドレスとしてパケットデータを通信用記憶部２００に格納する（ステップＳ３０７）。
【００８４】
続いて、パケットヘッダデコーダ３１２は、当該パケットに対応する到着フラグをフラグメント用フラグレジスタ３１４に割り当て、到着フラグをアクティブにする（ステップＳ３０８）。
【００８５】
続いて、パケットヘッダデコーダ３１２は、フラグメント化された残りのパケットを格納するための領域を通信用記憶部２００に予約し、各パケットに対応する到着フラグをフラグメント用フラグレジスタ３１４に割り当てて（ステップＳ３０９）、図１４に示す処理を終了する。
【００８６】
パケットヘッダデコーダ３１２は、判定の結果、受信パケットがフラグメント化された最初のパケットではない場合、すなわちフラグメント化された残りのパケットである場合には（ステップＳ３０５，Ｎｏ）、ステップＳ３０６と同様に、第２仮想アドレスを実アドレスに変換する（ステップＳ３１０）。
【００８７】
続いて、パケットヘッダデコーダ３１２は、実アドレスを先頭アドレスとしてパケットデータを通信用記憶部２００に格納する（ステップＳ３１１）。
【００８８】
続いて、パケットヘッダデコーダ３１２は、フラグメント用フラグレジスタ３１４に割り当てられている当該パケットに対応する到着フラグをアクティブにして（ステップＳ３１２）、図１４に示す処理を終了する。
【００８９】
上記ステップＳ３０１において、パケットヘッダデコーダ３１２は、判定の結果、受信パケットの送信先アドレスが正しくない場合には（ステップＳ３０１，Ｎｏ）、図１４に示す処理を終了する。
【００９０】
上述してきたように、実施例３では、フラグメント化されたパケットを受信した場合にも、受信パケットのフラグメンテーションに対応しつつ、実施例１と同様の処理を実行する。このため、実施例３によれば、フラグメント化された受信パケットについても、パケットの処理の高応答性及び高信頼性を担保できる。
【００９１】
なお、上記の実施例で示した本発明の態様は、本発明の要旨を逸脱しない範囲で任意に変更することができる。例えば、図３、図９、図１２に示す通信フレーム受信部３１０、あるいは図５、図１０、図１３に示すパケットヘッダデコーダ３１２は、必ずしも物理的及び機能的に図示のごとく構成されていることを要しない。例えば、図９に示す通信フレーム受信部３１０のパケットヘッダデコーダ３１２とコマンド実行部３１３とが物理的及び機能的に統合されていてもよい。例えば、図５に示す第１記憶部３１２ｅと第２記憶部３１２ｇとが物理的及び機能的に統合されていてもよい。このように、通信フレーム受信部３１０又はパケットヘッダデコーダ３１２の各構成要素の全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で物理的又は機能的に分散・統合して構成することができる。
【符号の説明】
【００９２】
１０ａ〜１０ｎ  制御装置
１００          演算部
２００          通信用記憶部
３００          論理回路
３１０          通信フレーム受信部
３１１          受信回路
３１２          パケットヘッダデコーダ
３１２ａ        送信先アドレスチェック部
３１２ｂ        仮想アドレス抽出部
３１２ｃ        仮想アドレスセパレータ
３１２ｄ        第１仮想アドレスデコーダ
３１２ｅ        第１記憶部
３１２ｆ        第２仮想アドレスデコーダ
３１２ｇ        第２記憶部
３１２ｈ        パケット処理部
３１２ｉ        ＭＵＸ
３１３          コマンド実行部
３１４          フラグメント用フラグレジスタ
【図１】
2015115894.tif 000003
【図２】
2015115894.tif 000004
【図３】
2015115894.tif 000005
【図４】
2015115894.tif 000006
【図５】
2015115894.tif 000007
【図６】
2015115894.tif 000008
【図７】
2015115894.tif 000009
【図８】
2015115894.tif 000010
【図９】
2015115894.tif 000011
【図１０】
2015115894.tif 000012
【図１１】
2015115894.tif 000013
【図１２】
2015115894.tif 000014
【図１３】
2015115894.tif 000015
【図１４】
2015115894.tif 000016