(57)【要約】【課題】コモンメモリが無駄に大きくなることを抑えて効率的なデータ交換ができる。【解決手段】ブロック割付け手段（１Ａ，１Ｂ）は、自装置のコモンメモリ２上に確保する送信領域のワードサイズを共通のものとしてブロック単位に割付けておく。送信ノードグループ決定部１Ｄはシステムに結合されているノード群を複数のグループに分け、このグループ別にコモンメモリの各送信領域を１対１に対応付け、同じグループに属するノード群のうち、どのノードから送信領域に送信できるかを決定しておく。送信ブロック番号決定部１Ｅは自ノードがコモンメモリ送信処理において送信するブロック番号を決定する。受信処理部１Ｆは、コモンメモリ上の各ブロックを、どのノード番号から受信するかを設定し、当該ノード番号をもつノードからの送信データを当該ブロックに受信する。【選択図】図１
2009098917.tif 000002
【特許請求の範囲】
【請求項１】
コモンメモリ伝送方式によってノード（データ処理装置）間のデータ交換を行うデータ交換システムであって、
各ノードは、自ノードがデータ交換を必要とする他ノードを限定し、コモンメモリには各ノードで共通としたワードサイズをもつブロック単位で送信領域を割付け、このブロック番号で送信ノード番号と送信可否を管理する手段を備えたことを特徴とするデータ交換システム。
【請求項２】
前記各ノードは、
自装置のコモンメモリ上に確保する送信領域のワードサイズを共通のものとしてブロック単位に割付けておくブロック割付け手段と、
システムに結合されているノード群を複数のグループに分け、このグループ別にコモンメモリの各送信領域を１対１に対応付け、同じグループに属するノード群のうち、どのノードから送信領域に送信できるかを決定しておく送信ノードグループ決定部と、
自ノードがコモンメモリ送信処理において送信するブロック番号を決定する送信ブロック番号決定部と、
各ノードにおけるコモンメモリ上の各ブロックを、どのノード番号から受信するかを設定し、当該ノード番号をもつノードからの送信データを当該ブロックに受信する受信処理部と、
を備えたことを特徴とする請求項１に記載のデータ交換システム。
【請求項３】
前記送信ノードグループ決定部は、どのノードから送信領域に送信できるかを、ブロック番号Ｎを送信領域とできるノード番号（群）＝Ｎ＋（最大ブロック番号×Ｙ）、ただし、Ｎ≦最大ブロック番号、Ｙは０以上の値とする。
規則に基づいて決定することを特徴とする請求項２に記載のデータ交換システム。
【請求項４】
前記送信ブロック番号決定部は、送信するブロック番号を、
・自ノード番号≦最大ブロック番号ならば、自ノード送信ブロック番号＝自ノード番号。
・自ノード番号＞最大ブロック番号ならば、自ノード送信ブロック番号＝自ノード番号を最大ブロック番号で除算した余り（割り切れた場合は、最大ブロック番号）。
によって決定することを特徴とする請求項２に記載のデータ交換システム。
【請求項５】
前記受信処理部は、ブロック番号毎に、それに対応する送信ノードグループの内の１つのノードを設定しておき、設定したノード以外からコモンメモリデータを受信した場合には破棄することを特徴とする請求項２に記載のデータ交換システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コモンメモリ伝送方式によってデータ処理装置間のデータ交換を行うシステムに関する。
【背景技術】
【０００２】
ＰＣ（プログラマブルコントローラ）等で構成されるデータ処理装置において、装置間の通信をコモンメモリ伝送方式で行うことは一般的に行われている。コモンメモリ伝送方式は、複数のデータ処理装置間で通信によりデータ授受を可能にしたシステムにおいて、各ノード（データ処理装置）がもつコモンメモリ上に割り付けられた当該ノードの送信領域のデータを一定周期で一斉同報することによって、システム全体で同じデータを共有する機能を実現する伝送方式である（例えば、非特許文献１参照）。
【０００３】
図４は、コモンメモリ伝送方式による装置間データ伝送の例を示す。データ処理装置Ａ、ＢおよびＣによってシステムが構築され、各装置Ａ，Ｂ，Ｃには内部に共通のメモリ（コモンメモリ）をもつ。このコモンメモリは自装置のデータを他装置に送信するための送信領域と、他装置のデータを自装置で受信するための送信領域が割付られる。ここで、装置Ａがコモンメモリ上の送信領域にデータを書き込むと、このデータが他装置Ｂ、Ｃのコモンメモリ上に伝送される。他装置Ｂ、Ｃではそれぞれのコモンメモリ上のデータを読み出すことでデータの交換が行われる。
【非特許文献１】ＪＩＳＢ３５２１（ＪＥＭ１４７９）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
コモンメモリ伝送を行う複数のＰＣ間において、あるノードが必要とするデータは、必ずしもその他全てのノードのデータである必要はない。接続されているＰＣ全ノードの内、数ノードのデータのみ必要とするケースが多々ある。
【０００５】
ところで、コモンメモリ自体は有資源であり、必要以上に大きくすることは必ずしも好ましくない。
【０００６】
コモンメモリ伝送方式は、各ノードの送信領域が重複してはいけない決まりがあるため、システム全体のノード数が多いほど、コモンメモリは大きく設定しなければならない。必要なのは数ノードのデータであるにもかかわらず、全てのノードのデータを取り込み、必要以上にコモンメモリを大きくすることは無駄となる。
【０００７】
本発明の目的は、コモンメモリが無駄に大きくなることを抑えて効率的なデータ交換ができるデータ交換システムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、前記の課題を解決するため、システムを構築する各データ処理装置は、自ノードがデータ交換を必要とする他ノードを限定し、コモンメモリには各ノードで共通としたワードサイズをもつブロック単位で送信領域を割付け、このブロック番号で送信ノード番号と送信可否を管理するようにしたもので、以下の構成を特徴とする。
【０００９】
（１）コモンメモリ伝送方式によってノード（データ処理装置）間のデータ交換を行うデータ交換システムであって、
各ノードは、自ノードがデータ交換を必要とする他ノードを限定し、コモンメモリには各ノードで共通としたワードサイズをもつブロック単位で送信領域を割付け、このブロック番号で送信ノード番号と送信可否を管理する手段を備えたことを特徴とする。
【００１０】
（２）前記各ノードは、
自装置のコモンメモリ上に確保する送信領域のワードサイズを共通のものとしてブロック単位に割付けておくブロック割付け手段と、
システムに結合されているノード群を複数のグループに分け、このグループ別にコモンメモリの各送信領域を１対１に対応付け、同じグループに属するノード群のうち、どのノードから送信領域に送信できるかを決定しておく送信ノードグループ決定部と、
自ノードがコモンメモリ送信処理において送信するブロック番号を決定する送信ブロック番号決定部と、
各ノードにおけるコモンメモリ上の各ブロックを、どのノード番号から受信するかを設定し、当該ノード番号をもつノードからの送信データを当該ブロックに受信する受信処理部と、
を備えたことを特徴とする。
【００１１】
（３）前記送信ノードグループ決定部は、どのノードから送信領域に送信できるかを、ブロック番号Ｎを送信領域とできるノード番号（群）＝Ｎ＋（最大ブロック番号×Ｙ）、ただし、Ｎ≦最大ブロック番号、Ｙは０以上の値とする。
規則に基づいて決定することを特徴とする。
【００１２】
（４）前記送信ブロック番号決定部は、送信するブロック番号を、
・自ノード番号≦最大ブロック番号ならば、自ノード送信ブロック番号＝自ノード番号。
【００１３】
・自ノード番号＞最大ブロック番号ならば、自ノード送信ブロック番号＝自ノード番号を最大ブロック番号で除算した余り（割り切れた場合は、最大ブロック番号）。
によって決定することを特徴とする。
【００１４】
（５）前記受信処理部は、ブロック番号毎に、それに対応する送信ノードグループの内の１つのノードを設定しておき、設定したノード以外からコモンメモリデータを受信した場合には破棄することを特徴とする。
【発明の効果】
【００１５】
以上のとおり、本発明によれば、自ノードがデータ交換を必要とする他ノードを限定し、コモンメモリには各ノードで共通としたワードサイズをもつブロック単位で送信領域を割付け、このブロック番号で送信ノード番号と送信可否を管理するようにしたため、コモンメモリが無駄に大きくなることを抑えた効率的なデータ交換を実現することができる。
【発明を実施するための最良の形態】
【００１６】
図１は、本発明の実施形態を示すデータ処理装置の要部構成図である。データ処理装置は少なくともＰＣ１とコモンメモリ２を備え、他のデータ処理装置との通信可能にしてシステムに組み込まれ、自装置（自ノード）の送信領域に書き込んだデータをコモンメモリ伝送方式で他の他装置（他ノード）の送信領域に送信する。以下、各部の詳細を説明する。
【００１７】
（１）コモンメモリの領域割付け
各ノードがコモンメモリ上に確保する送信領域のワードサイズを任意値とする。これは全てのノードで共通とし、これを１ブロックと称することとする。ノード番号およびブロック番号は、各々１始まりとする。コモンメモリの大きさは、１ブロックのワードサイズ×最大ブロック番号となる。
【００１８】
図１に示す例では、１ブロックのワードサイズを１２８ワードとし、最大ブロック番号を「１６」としており、コモンメモリの大きさは２０４８ワードになる。これらワードサイズと最大ブロック番号は、ブロック割付けで決まり、不揮発性メモリ等で構成されるＰＣ１のワードサイズ設定部１Ａと最大ブロック番号設定部１Ｂに予め設定される。また、システムに接続されているデータ処理装置の台数は、最大ノード数（例えば、１００台）として最大ノード数設定部１Ｃに予め設定される。
【００１９】
（２）ノードのグルーピング
送信ノードグループ決定部１Ｄは、システムに結合されているノード群を複数のグループに分け（グルーピング）、このグループ別にコモンメモリの各送信領域を１対１に対応付け、同じグループに属するノード群のうち、どのノードから送信領域に送信できるかはある規則に基づいて決定する。この規則は、例えば、以下のようにする。
【００２０】
ブロック番号Ｎを送信領域とできるノード番号（群）＝Ｎ＋（最大ブロック番号×Ｙ）
ただし、Ｎ≦最大ブロック番号、Ｙは０以上の値とする。
【００２１】
この規則によるノード番号（群）は、例えば、最大ブロック番号１６をもつコモンメモリの場合、ブロック番号５を送信領域とできるノードグループは５，２１，３７，５３，…となる。
【００２２】
上記のグルーピングにより、コモンメモリに接続できる最大ノード数は、最大ブロック番号以上にすることができる。
【００２３】
（３）送信ブロック番号決定
送信ブロック番号決定部１Ｅは、自ノードがコモンメモリ送信処理において送信するブロック番号を決定する。
【００２４】
この送信ブロック番号決定は、以下の規則に基づいて算定する。
【００２５】
・自ノード番号≦最大ブロック番号ならば、自ノード送信ブロック番号＝自ノード番号。
【００２６】
・自ノード番号＞最大ブロック番号ならば、自ノード送信ブロック番号＝自ノード番号を最大ブロック番号で除算した余り（割り切れた場合は、最大ブロック番号）。
【００２７】
（４）受信処理
受信処理部１Ｆは、各ノードにおけるコモンメモリ上の各ブロックを、どのノード番号から受信するかを設定し、当該ノード番号をもつノードからの送信データを当該ブロックに受信する。
【００２８】
ブロック番号毎に、それに対応する送信ノード群が前記のグルーピングで分かっているので、その内の１つのノードを設定しておく。設定したノード以外からコモンメモリデータを受信した場合には破棄する。
【００２９】
図２は、各ノードにおける受信処理部のフローチャートを示す。まず、各ブロック毎に受信するノード番号を設定しておく（Ｓ１）。この後、コモンメモリデータを受信したとき（Ｓ２）、送信元ノードは定義したノード（当該ブロックについてグルーピングしたノード）か否かをチェックし（Ｓ３）、定義したノードの場合には他のノードとコモンメモリの重複はないか否かをチェックする（Ｓ４）。重複がない場合は受信データをコモンメモリに展開し（Ｓ５）、重複する場合はコモンメモリの重複異常処理（例えば、データ破棄と警告処理）を行う（Ｓ６）。
【００３０】
この処理により、同じノード群のノードが同じブロックを送信している場合には領域が重複するが、受信するのはその内の１ノードであるため、重複受信を避けることが可能となる。こうすることで、システム全体として接続されるＰＣすべてに対してコモンメモリを割り当てる必要がなくなる。
【００３１】
（５）データ交換の具体例
本実施形態によるコモンメモリ伝送方式では、システム全体で接続されるＰＣに重複しないコモンメモリ領域を割り当てることはせず、同じコモンメモリ領域を送信するノードを限定できる。但し、同じコモンメモリ領域を送信するノード番号に規則性を持たせることによって、受信する側でその中の１つのノードのみからコモンメモリデータを受信できるようにする。これによって、全体のコモンメモリの大きさを抑えた効率的な伝送を実現する。
【００３２】
図３は、ノード間の伝送方式の例を示す。各ノード１〜４はコモンメモリを２ブロック構成の例であり、１ブロックサイズ＝３２ワード、最大ブロック番号＝２、システム全体のノード数＝４（ノード番号＝１，２，３，４）とする。このブロック構成において、ノード１〜４は１つのブロックを自ノードの送信領域に割り当て、残りの１つのブロックを他ノードからの受信を行う送信領域に割り当てる。
【００３３】
このとき、ノード２は受信する領域をノード１と設定し、ノード３は受信領域をノード２と設定し、ノード４は受信領域をノード３と設定し、ノード１は受信領域をノード４と設定しておけば、図中に矢印で示す循環経路によってコモンメモリデータの送信と受信が不都合なく実行される。
【００３４】
また、各ノードのコモンメモリとしては、全体のノード数４に対して２ブロックの領域を確保することで済み、全体のコモンメモリの大きさを抑えた効率的な伝送を実現できる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施形態を示すデータ処理装置の要部構成図。
【図２】各ノードにおける受信処理部のフローチャート。
【図３】ノード間の伝送方式の例。
【図４】コモンメモリ伝送方式による装置間データ伝送の従来例。
【符号の説明】
【００３６】
１  ＰＣ（プログラマブルコントローラ）
２  コモンメモリ
１Ａ  ワードサイズ設定部
１Ｂ  最大ブロック番号設定部
１Ｃ  最大ノード数設定部
１Ｄ  送信ノードグループ決定部
１Ｅ  送信ブロック番号決定部
１Ｆ  受信処理部
【図１】
2009098917.tif 000003
【図２】
2009098917.tif 000004
【図３】
2009098917.tif 000005
【図４】
2009098917.tif 000006