(57)【要約】      （修正有）【課題】複数の制御基板間で複雑なスケジューリングが不要で、適正に負荷分散できるメモリ同期システムを提供する。【解決手段】メモリ同期システム１０は、複数の制御基板１１と、中継基板１２と、マルチポートメモリ（ＤＰＲＡＭ）２２と、中継ＣＰＵ３１とを持つ。マルチポートメモリは、複数の制御基板に設けられる。マルチポートメモリは、複数の制御基板数以上のメモリ空間２３を備える。マルチポートメモリは、複数の制御基板及び中継基板の双方からアクセス可能である。中継ＣＰＵは、複数の制御基板のマルチポートメモリにおける各制御基板各々が書き込み可能なメモリ空間に順次アクセスする。中継ＣＰＵは、メモリ空間のデータ変化を判定する。中継ＣＰＵは、分割メモリ空間のデータが変化した場合に、変化したデータを他の制御基板のマルチポートメモリにおけるメモリ空間に書き込む。【選択図】図１
2016212673.tif 000002
【特許請求の範囲】
【請求項１】
複数の制御部と、
１つの中継部と、
前記複数の制御部の各々に設けられ、前記複数の制御部の数以上のメモリ空間を備え、複数の前記メモリ空間の中で前記複数の制御部ごとに異なるメモリ空間が前記複数の制御部の各々から書き込み可能であり、複数の前記メモリ空間が前記１つの中継部に対して読書き可能であり、前記複数の制御部の各々および前記１つの中継部の双方からアクセス可能なマルチポートメモリと、
前記１つの中継部に設けられ、前記複数の制御部の前記マルチポートメモリにおける前記複数の制御部の各々が書き込み可能なメモリ空間に順次にアクセスして、前記メモリ空間のデータが変化したか否かを判定し、前記メモリ空間のデータが変化した場合に、変化した前記データを他の前記制御部の前記マルチポートメモリにおける前記メモリ空間に書き込む中継処理部と、
を備えるメモリ同期システム。
【請求項２】
前記複数の制御部の各々に設けられ、前記マルチポートメモリにおける前記複数の制御部の各々が書き込み可能なメモリ空間にデータを書き込む際に、前記メモリ空間においてフラグを立てる制御処理部を備え、
前記中継処理部は、
前記複数の制御部の前記マルチポートメモリにおける前記複数の制御部の各々が書き込み可能なメモリ空間に順次にアクセスして、前記フラグが立っているか否かを判定することで前記メモリ空間のデータが変化したか否かを判定し、前記フラグが立っている場合に、前記フラグを下げるとともに、変化した前記データを他の前記制御部の前記マルチポートメモリにおける前記メモリ空間に書き込む、
請求項１に記載のメモリ同期システム。
【請求項３】
前記複数の制御部の各々に設けられ、前記マルチポートメモリにおける前記複数の制御部の各々が書き込み可能なメモリ空間にデータを書き込む制御処理部と、
前記１つの中継部に設けられ、前記複数の制御部の各々が書き込み可能なメモリ空間に対応付けられた中継メモリ空間を備える中継メモリと、
を備え、
前記中継処理部は、
前記複数の制御部の前記マルチポートメモリにおける前記複数の制御部の各々が書き込み可能なメモリ空間に順次にアクセスして、前記メモリ空間のデータが前記メモリ空間に対応付けられた前記中継メモリ空間のデータと異なるか否かを判定することで前記メモリ空間のデータが変化したか否かを判定し、前記メモリ空間のデータが前記中継メモリ空間のデータと異なる場合に、変化した前記データを前記中継メモリ空間および他の前記制御部の前記マルチポートメモリにおける前記メモリ空間に書き込む、
請求項１に記載のメモリ同期システム。
【請求項４】
前記１つの中継部は、前記複数の制御部の各々が相互に独立に接続されている、
請求項１から請求項３の何れか１つに記載のメモリ同期システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリ同期システムに関する。
【背景技術】
【０００２】
従来、モータ、ソレノイド、およびセンサなどの複数の異なる機器を制御する際の負荷を分散するために、複数の制御基板と、複数の制御基板間で共有する共有メモリとを備える負荷分散システムがある。この負荷分散システムは、複数の制御基板と共有メモリとを接続する共有バスを備え、複数の制御基板は互いに対等に同一のアドレスで共有メモリにアクセスすることができる。しかしながら、この負荷分散システムにおいては、複数の制御基板が同時に共有メモリにアクセスすることを防ぎ、共有バスの競合が生じないように、複数の制御基板の運用管理および通信制御などに関して複雑なスケジューリングが必要になる可能性があった。さらに、制御する機器および制御基板の数が増大すると、スケジューリングが困難になるとともに、制御する機器に対応して制御基板ごとに独自のルールが設定されると、拡張性および再利用性が低下する可能性があった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−６１３２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、複数の制御基板の複雑なスケジューリングが必要になることを防ぎながら、複数の制御基板間で負荷を適正に分散することができるメモリ同期システムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態のメモリ同期システムは、複数の制御部と、１つの中継部と、マルチポートメモリと、中継処理部とを持つ。マルチポートメモリは、複数の制御部の各々に設けられる。マルチポートメモリは、複数の制御部の数以上のメモリ空間を備える。マルチポートメモリは、複数のメモリ空間の中で複数の制御部ごとに異なるメモリ空間が複数の制御部の各々から書き込み可能である。マルチポートメモリは、複数のメモリ空間が１つの中継部に対して読書き可能である。マルチポートメモリは、複数の制御部の各々および１つの中継部の双方からアクセス可能である。中継処理部は、１つの中継部に設けられる。中継処理部は、複数の制御部のマルチポートメモリにおける複数の制御部の各々が書き込み可能なメモリ空間に順次にアクセスする。中継処理部は、メモリ空間のデータが変化したか否かを判定する。中継処理部は、メモリ空間のデータが変化した場合に、変化したデータを他の制御部のマルチポートメモリにおけるメモリ空間に書き込む。
【図面の簡単な説明】
【０００６】
【図１】実施形態のメモリ同期システムの機能構成を示すブロック図。
【図２】実施形態のメモリ同期システムの処理の流れを示すフローチャート。
【図３】実施形態の第１の変形例に係るメモリ同期システムの機能構成を示すブロック図。
【発明を実施するための形態】
【０００７】
以下、実施形態のメモリ同期システムを、図面を参照して説明する。
【０００８】
実施形態のメモリ同期システム１０は、図１に示すように、複数の制御基板１１と、１つの中継基板１２とを備えている。複数の制御基板１１は、例えば、任意の自然数である変数ｎにより、第１制御基板１１（１）、第２制御基板１１（２）、…、第ｎ制御基板１１（ｎ）である。複数の制御基板１１の各々は、ＣＰＵ（Central Processing Unit）２１およびＤＰＲＡＭ（Dual Port RAM）２２を備えている。ＣＰＵ２１は、ＤＰＲＡＭ２２に物理的に接続されている。第１制御基板１１（１）は、例えば、第１ＣＰＵ２１（１）と、第１ＣＰＵ２１（１）に物理的に接続される第１ＤＰＲＡＭ２２（１）とを備えている。第２制御基板１１（２）は、例えば、第２ＣＰＵ２１（２）と、第２ＣＰＵ２１（２）に物理的に接続される第２ＤＰＲＡＭ２２（２）とを備えている。第ｎ制御基板１１（ｎ）は、例えば、第ｎＣＰＵ２１（ｎ）と、第ｎＣＰＵ２１（ｎ）に物理的に接続される第ｎＤＰＲＡＭ２２（ｎ）とを備えている。
ＤＰＲＡＭ２２は、複数の制御基板１１の数以上のメモリ空間２３を備えている。ＤＰＲＡＭ２２は、例えば、複数の制御基板１１の数と同一のｎ個のメモリ空間２３を備えている。ｎ個のメモリ空間２３は、例えば、第１メモリ空間２３（１）、第２メモリ空間２３（２）、…、第ｎメモリ空間２３（ｎ）である。
【０００９】
ＤＰＲＡＭ２２は、複数の制御基板１１の各々および１つの中継基板１２の双方からアクセス可能である。ＤＰＲＡＭ２２は、複数のメモリ空間２３の中で複数の制御基板１１ごとに異なるメモリ空間２３が複数の制御基板１１の各々から書き込み可能とされている。第１ＤＰＲＡＭ２２（１）は、例えば、第１メモリ空間２３（１）が第１ＣＰＵ２１（１）から書き込み可能とされ、第１メモリ空間２３（１）以外の他のメモリ空間２３が第１ＣＰＵ２１（１）に対して書き込み禁止および読み込み可能とされる。第２ＤＰＲＡＭ２２（２）は、例えば、第２メモリ空間２３（２）が第２ＣＰＵ２１（２）から書き込み可能とされ、第２メモリ空間２３（２）以外の他のメモリ空間２３が第２ＣＰＵ２１（２）に対して書き込み禁止および読み込み可能とされる。第ｎＲＰＲＡＭ２２（ｎ）は、例えば、第ｎメモリ空間２３（ｎ）が第ｎＣＰＵ２１（ｎ）から書き込み可能とされ、第ｎメモリ空間２３（ｎ）以外の他のメモリ空間２３が第ｎＣＰＵ２１（ｎ）に対して書き込み禁止および読み込み可能とされる。ＤＰＲＡＭ２２は、複数のメモリ空間２３が１つの中継基板１２に対して書き込み可能および読み込み可能とされる。
【００１０】
複数の制御基板１１の各々は、制御対象である各種の機器に接続されている。第１制御基板１１（１）は、例えば、モータ２６およびセンサ２７に接続されている。第１制御基板１１（１）は、モータ２６およびセンサ２７を制御する。第２制御基板１１（２）は、例えば、カメラ２８に接続されている。第２制御基板１１（２）は、カメラ２８を制御する。
【００１１】
複数の制御基板１１の各々におけるＣＰＵ２１は、ＣＰＵ２１に接続されているＤＰＲＡＭ２２において書き込み可能とされるメモリ空間２３に各種のデータを格納する。ＣＰＵ２１は、メモリ空間２３に格納するデータを更新する際には、メモリ空間２３の所定領域においてフラグを立てるとともにデータの更新部分を示すアドレスの情報を書き込む。
【００１２】
１つの中継基板１２は、中継ＣＰＵ３１と、ＦＰＧＡ（Field Programmable Gate Array）３２と、中継メモリ３３とを備えている。中継ＣＰＵ３１は、ＦＰＧＡ３２に接続されている。中継メモリ３３は、ＦＰＧＡ３２に内蔵されている。中継メモリ３３は、少なくとも１つの中継メモリ空間３４を備えている。少なくとも１つの中継メモリ空間３４は、バッファ３４（０）である。
【００１３】
１つの中継基板１２の中継ＣＰＵ３１は、複数の制御基板１１の各々のＤＰＲＡＭ２２に順次にアクセスすることによって、各ＤＰＲＡＭ２２に対しては一定周期ごとにアクセスする。中継ＣＰＵ３１は、各ＤＰＲＡＭ２２における各ＣＰＵ２１から書き込み可能とされるメモリ空間２３にフラグが立っているか否かを判定することで、各ＣＰＵ２１から書き込み可能とされるメモリ空間２３のデータが更新により変化したか否かを判定する。中継ＣＰＵ３１は、メモリ空間２３にフラグが立っている場合には、データの更新部分を示すアドレスの情報をメモリ空間２３から読み込む。中継ＣＰＵ３１は、取得したアドレスの情報に対応するデータをメモリ空間２３から読み込んで中継メモリ３３のバッファ３４（０）に格納するとともに、メモリ空間２３のフラグを下げる。中継ＣＰＵ３１は、バッファ３４（０）に格納したデータを他の全ての制御基板１１におけるＤＰＲＡＭ２２のメモリ空間２３に格納する。
【００１４】
中継ＣＰＵ３１は、例えば、第２制御基板１１（２）の第２ＤＰＲＡＭ２２（２）に対しては、第２ＣＰＵ２１（２）から書き込み可能とされる第２メモリ空間２３（２）にアクセスする。中継ＣＰＵ３１は、第２メモリ空間２３（２）にフラグが立っているか否かを判定することで、第２メモリ空間２３（２）のデータが更新により変化したか否かを判定する。中継ＣＰＵ３１は、第２メモリ空間２３（２）のフラグが立っている場合には、データの更新部分を示すアドレスの情報を第２メモリ空間２３（２）から読み込む。中継ＣＰＵ３１は、取得したアドレスの情報に対応するデータを第２メモリ空間２３（２）から読み込んで、中継メモリ３３のバッファ３４（０）の内容を書き換えるようにして、読み込んだデータをバッファ３４（０）に格納する。中継ＣＰＵ３１は、第２メモリ空間２３（２）のフラグを下げる。中継ＣＰＵ３１は、バッファ３４（０）に格納したデータを、第２制御基板１１（２）以外の他の全ての制御基板１１におけるＤＰＲＡＭ２２の第２メモリ空間２３（２）に格納する。中継ＣＰＵ３１は、第２制御基板１１（２）以外の制御基板１１の第２メモリ空間２３（２）において、第２制御基板１１（２）から取得したアドレスの情報に対応する部分の内容をバッファ３４（０）のデータによって書き換える。
【００１５】
以下に、図２を参照して、実施形態のメモリ同期システム１０における処理の流れについて説明する。なお、メモリ同期システム１０は、例えば、図２に示すステップＳ０１からステップＳ０７の処理を一定周期ごとに繰り返し実行する。
【００１６】
先ず、中継ＣＰＵ３１は、任意の自然数である変数ｋにより、第ｋ制御基板１１（ｋ）の第ｋＤＰＲＡＭ２２（ｋ）の第ｋメモリ空間２３（ｋ）にアクセスする（ステップＳ０１）。メモリ同期システム１０の初期起動時などにおいて、変数ｋに適宜の値が設定されていない場合、中継ＣＰＵ３１は、初期値として「１」を設定し（変数ｋ＝１）、第１制御基板１１（１）の第１ＤＰＲＡＭ２２（１）の第１メモリ空間２３（１）にアクセスする。
次に、中継ＣＰＵ３１は、第ｋＤＰＲＡＭ２２（ｋ）の第ｋメモリ空間２３（ｋ）にフラグが立っているか否かを判定することで、第ｋメモリ空間２３（ｋ）のデータが更新により変化したか否かを判定する（ステップＳ０２）。
この判定結果が「ＮＯ」の場合（ステップＳ０２：ＮＯ）には、中継ＣＰＵ３１は、処理をステップＳ０５に進める。
一方、この判定結果が「ＹＥＳ」の場合（ステップＳ０２：ＹＥＳ）には、中継ＣＰＵ３１は、処理をステップＳ０３に進める。
【００１７】
次に、中継ＣＰＵ３１は、データの更新部分を示すアドレスの情報を第ｋメモリ空間２３（ｋ）から読み込む。中継ＣＰＵ３１は、取得したアドレスの情報に対応するデータを第ｋメモリ空間２３（ｋ）から読み込んで中継メモリ３３のバッファ３４（０）に格納するとともに、第ｋメモリ空間２３（ｋ）のフラグを下げる（ステップＳ０３）。
【００１８】
次に、中継ＣＰＵ３１は、バッファ３４（０）に格納したデータを、第ｋ制御基板１１（ｋ）以外の他の全ての制御基板１１におけるＤＰＲＡＭ２２の第ｋメモリ空間２３（ｋ）に格納する（ステップＳ０４）。  
次に、中継ＣＰＵ３１は、変数ｋに１を加算して得た値（ｋ＋１）を、新たに変数ｋ（ｋ←ｋ＋１）として設定する（ステップＳ０５）。
【００１９】
次に、中継ＣＰＵ３１は、変数ｋが複数の制御基板１１の数ｎよりも大きいか否かを判定する（ステップＳ０６）。
この判定結果が「ＮＯ」の場合（ステップＳ０６：ＮＯ）には、中継ＣＰＵ３１は、処理をリターンに進める。
一方、この判定結果が「ＹＥＳ」の場合（ステップＳ０６：ＹＥＳ）には、中継ＣＰＵ３１は、処理をステップＳ０７に進める。
次に、中継ＣＰＵ３１は、変数ｋに初期値として「１」を設定する（ステップＳ０７）。そして、中継ＣＰＵ３１は、処理をリターンに進める。
【００２０】
以上説明した実施形態によれば、各制御基板１１のメモリ空間２３のデータが変化した場合に、他の制御基板１１のメモリ空間２３にデータの変化を反映させる１つの中継基板１２を持つことにより、複雑なスケジューリングが必要になることを防ぐことができる。複数の制御基板１１のメモリ空間２３に順次にアクセスする中継基板１２を持つので、各制御基板１１は、複雑な通信制御および排他制御を行う必要無しに、ＤＰＲＡＭ２２の内容を同期させ、疑似的にＤＰＲＡＭ２２の内容を共有することができる。複数の制御基板１１は、ＤＰＲＡＭ２２の内容を容易に共有しながら、制御対象である各種の機器の制御に要する負荷を適正に分散させることができる。各制御基板１１は、各々が書き込み可能とされたメモリ空間２３のデータを更新することによって他の制御基板１１におけるメモリ空間２３のデータを同期させることができる。
【００２１】
各制御基板１１とは独立して複数の制御基板１１のメモリ空間２３を同期させる中継基板１２を持つので、中継基板１２に接続される制御基板１１の数を容易に増大させることができ、制御基板１１の拡張性を向上させることができる。各制御基板１１は、複雑な通信制御および排他制御を行う必要が無いので、ＣＰＵ２１の負担を軽減することができるとともに、制御対象の機器が変更されたとしても、処理の変更が嵩むことを防ぎ、汎用性および再利用性を向上させることができる。中継基板１２は、各制御基板１１のメモリ空間２３のデータが変化したか否かを判定し、他の制御基板１１のメモリ空間２３にデータの変化を反映させるという単純な処理を行なうだけなので、各制御基板１１に比べて、より小型の構成とすることができる。中継基板１２は、例えば動作周波数、バイト数、およびアーキテクチャなどを、各制御基板１１に比べて小さくすることができる。
【００２２】
メモリ空間２３のデータを更新する際にフラグを立てる複数の制御基板１１と、各制御基板１１のメモリ空間２３にフラグが立っているか否かを順次に判定する中継基板１２とを持つので、各メモリ空間２３のデータ更新の有無を迅速に判定することができる。各制御基板１１のメモリ空間２３にフラグが立っている場合には、各メモリ空間２３のデータの更新部分を他の全ての制御基板１１のメモリ空間に格納する中継基板１２を持つので、各制御基板１１のメモリ空間２３のデータを迅速に同期させることができる。各制御基板１１のメモリ空間２３を同期させる際に、フラグを下げる中継基板１２を持つので、各制御基板１１は、メモリ空間２３でデータを更新するとともにフラグを立てるだけで、他の制御基板１１のメモリ空間２３を容易に同期させることができる。
【００２３】
以下、第１の変形例について説明する。
上述した実施形態では、各制御基板１１のＣＰＵ２１は、メモリ空間２３に格納するデータを更新する際には、メモリ空間２３の所定領域においてフラグを立てるとしたが、これに限定されない。
実施形態の第１の変形例において、各制御基板１１のＣＰＵ２１は、メモリ空間２３に格納するデータを更新する際には、フラグの変更を省略して、データの更新部分を示すアドレスの情報を書き込んでもよい。
【００２４】
実施形態の変形例において、中継メモリ３３は、図３に示すように、バッファ３４（０）と、複数の制御基板１１の数以上の中継メモリ空間３４とを備えている。中継メモリ３３は、例えば、１つのバッファ３４（０）と、複数の制御基板１１の数と同一のｎ個の中継メモリ空間３４とを備えている。ｎ個の中継メモリ空間３４は、例えば、第１中継メモリ空間３４（１）、第２中継メモリ空間３４（２）、…、第ｎ中継メモリ空間３４（ｎ）である。
【００２５】
バッファ３４（０）以外の複数の中継メモリ空間３４の各々は、ＦＰＧＡ３２によってＤＰＲＡＭ２２の複数のメモリ空間２３の各々に対応付けられている。中継メモリ３３における複数の中継メモリ空間３４の各々のローカルな独自のアドレスは、例えば、ＦＰＧＡ３２によってＤＰＲＡＭ２２における複数のメモリ空間２３の各々のローカルな独自のアドレスに対応付けられている。第１中継メモリ空間３４（１）は、例えば、各制御基板１１のＤＰＲＡＭ２２の第１メモリ空間２３（１）に対応付けられている。第２中継メモリ空間３４（２）は、例えば、各制御基板１１のＤＰＲＡＭ２２の第２メモリ空間２３（２）に対応付けられている。第ｎ中継メモリ空間３４（ｎ）は、例えば、各制御基板１１のＤＰＲＡＭ２２の第ｎメモリ空間２３（ｎ）に対応付けられている。
【００２６】
１つの中継基板１２の中継ＣＰＵ３１は、複数の制御基板１１の各々のＤＰＲＡＭ２２に順次にアクセスすることによって、各ＤＰＲＡＭ２２に対しては一定周期ごとにアクセスする。中継ＣＰＵ３１は、各ＤＰＲＡＭ２２における各ＣＰＵ２１から書き込み可能とされるメモリ空間２３からデータの更新部分を示すアドレスの情報を読み込む。中継ＣＰＵ３１は、取得したアドレスの情報に対応するデータをメモリ空間２３から読み込んで中継メモリ３３のバッファ３４（０）に格納する。中継ＣＰＵ３１は、バッファ３４（０）に格納したデータを、メモリ空間２３に対応付けられている中継メモリ空間３４に格納してあるデータと比較する。中継ＣＰＵ３１は、バッファ３４（０）のデータと、中継メモリ空間３４のデータとが同一であるか否かを判定することで、各ＣＰＵ２１から書き込み可能とされるメモリ空間２３のデータが更新により変化したか否かを判定する。中継ＣＰＵ３１は、バッファ３４（０）のデータと中継メモリ空間３４のデータとが異なる場合には、バッファ３４（０）のデータを、中継メモリ空間３４と、他の全ての制御基板１１におけるＤＰＲＡＭ２２のメモリ空間２３とに格納する。
【００２７】
中継ＣＰＵ３１は、例えば、第２制御基板１１（２）の第２ＤＰＲＡＭ２２（２）に対しては、第２ＣＰＵ２１（２）から書き込み可能とされる第２メモリ空間２３（２）にアクセスする。中継ＣＰＵ３１は、第２メモリ空間２３（２）からデータの更新部分を示すアドレスの情報を読み込む。中継ＣＰＵ３１は、取得したアドレスの情報に対応するデータを第２メモリ空間２３（２）から読み込んで、中継メモリ３３のバッファ３４（０）の内容を書き換えるようにして、読み込んだデータをバッファ３４（０）に格納する。中継ＣＰＵ３１は、バッファ３４（０）に格納したデータを、第２メモリ空間２３（２）に対応付けられている第２中継メモリ空間３４（２）に格納してあるデータと比較する。中継ＣＰＵ３１は、バッファ３４（０）のデータと、第２中継メモリ空間３４（２）のデータとが同一であるか否かを判定することで、第２ＣＰＵ２１（２）から書き込み可能とされる第２メモリ空間２３（２）のデータが更新により変化したか否かを判定する。中継ＣＰＵ３１は、バッファ３４（０）のデータと第２中継メモリ空間３４（２）のデータとが異なる場合には、第２中継メモリ空間３４（２）の内容を書き換えるようにして、バッファ３４（０）のデータを第２中継メモリ空間３４（２）に格納する。中継ＣＰＵ３１は、バッファ３４（０）のデータを、第２制御基板１１（２）以外の他の全ての制御基板１１におけるＤＰＲＡＭ２２の第２メモリ空間２３（２）に格納する。中継ＣＰＵ３１は、第２制御基板１１（２）以外の制御基板１１の第２メモリ空間２３（２）において、第２制御基板１１（２）から取得したアドレスの情報に対応する部分の内容をバッファ３４（０）のデータによって書き換える。
【００２８】
この第１の変形例によれば、各制御基板１１のメモリ空間２３と中継メモリ空間３４と比較する中継基板１２を持つので、各制御基板１１は、メモリ空間２３のデータを更新するだけで他の制御基板１１のメモリ空間２３を容易に同期させることができる。各制御基板１１は、ＣＰＵ２１の負担を軽減することができるとともに、拡張性、汎用性、および再利用性を向上させることができる。
【００２９】
以下に、他の変形例について説明する。
上述した実施形態および第１の変形例では、各制御基板１１のＣＰＵ２１は、メモリ空間２３に格納するデータを更新する際には、データの更新部分を示すアドレスの情報を書き込むとしたが、これに限定されない。
上述した実施形態および第１の変形例において、各制御基板１１のＣＰＵ２１は、メモリ空間２３に格納するデータを更新する際には、データの更新部分を示すアドレスの情報の書き込みを省略してもよい。
【００３０】
上述した実施形態において中継ＣＰＵ３１は、例えば、第２制御基板１１（２）の第２ＤＰＲＡＭ２２（２）において第２メモリ空間２３（２）のフラグが立っている場合には、第２メモリ空間２３（２）のフラグ以外のデータの全てを読み込む。中継ＣＰＵ３１は、中継メモリ３３のバッファ３４（０）の内容を書き換えるようにして、読み込んだデータをバッファ３４（０）に格納する。中継ＣＰＵ３１は、第２メモリ空間２３（２）のフラグを下げるとともに、バッファ３４（０）のデータを、第２制御基板１１（２）以外の他の全ての制御基板１１におけるＤＰＲＡＭ２２の第２メモリ空間２３（２）に格納する。中継ＣＰＵ３１は、第２制御基板１１（２）以外の制御基板１１の第２メモリ空間２３（２）において、フラグが設定される所定領域以外の部分の内容をバッファ３４（０）のデータによって書き換える。
【００３１】
上述した第１の変形例において中継ＣＰＵ３１は、例えば、第２制御基板１１（２）の第２ＤＰＲＡＭ２２（２）に対しては、第２メモリ空間２３（２）のデータの全てを読み込む。中継ＣＰＵ３１は、中継メモリ３３のバッファ３４（０）の内容を書き換えるようにして、読み込んだデータをバッファ３４（０）に格納する。中継ＣＰＵ３１は、バッファ３４（０）のデータと第２中継メモリ空間３４（２）のデータとが異なる場合には、第２中継メモリ空間３４（２）の内容を書き換えるようにして、バッファ３４（０）のデータを第２中継メモリ空間３４（２）に格納する。中継ＣＰＵ３１は、バッファ３４（０）のデータを、第２制御基板１１（２）以外の他の全ての制御基板１１におけるＤＰＲＡＭ２２の第２メモリ空間２３（２）に格納する。中継ＣＰＵ３１は、第２制御基板１１（２）以外の制御基板１１の第２メモリ空間２３（２）において、第２メモリ空間２３（２）の内容の全てをバッファ３４（０）のデータによって書き換える。
【００３２】
上述した実施形態において、１つの中継基板１２に接続される複数の制御基板１１の数は、所定上限接続数以下に設定されてもよい。
実施形態の変形例において、予め中継基板１２に設けられるＤＰＲＡＭ２２の接続用の接続ポート数などを所定上限接続数ｍとして、各ＤＰＲＡＭ２２に設けられるメモリ空間２３の数を所定上限接続数ｍとしてもよい。この場合には、実際に１つの中継基板１２に接続される制御基板１１の数ｎは、例えば制御対象である各種の機器の数などに応じて、所定上限接続数ｍ以下の任意の数であればよい。
【００３３】
上述した実施形態において、各制御基板１１のＤＰＲＡＭ２２における複数のメモリ空間２３の各々の大きさは、相互に異なる大きさでもよい。各メモリ空間２３の大きさは、例えば制御対象である各種の機器の種類などに応じて、適宜に設定されてもよい。
カメラ２８に対応付けられる第２メモリ空間２３（２）は、例えば、モータ２６およびセンサ２７に対応付けられる第１メモリ空間２３（１）に比べて、より大きなアドレス空間を有してもよい。
【００３４】
上述した実施形態において、各制御基板１１のＤＰＲＡＭ２２は、ＤＰＲＡＭ以外の他のマルチポートメモリであってもよい。
【００３５】
上述した実施形態において、１つの中継基板１２のＦＰＧＡ３２は、ＦＰＧＡ以外の他のプログラマブルロジックデバイスであってもよい。
また、上述した実施形態において、各制御基板１１および１つの中継基板１２の各機能の全て又は一部は、ハードウェアによって実現されてもよいし、記録媒体に記録されたプログラムをコンピュータシステムが実行することによって実現されてもよい。
ハードウェアは、例えば、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）、またはＦＰＧＡ（Field Programmable Gate Array）等である。
各制御基板１１のＣＰＵ２１および１つの中継基板１２の中継ＣＰＵ３１の各々が実行するプログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。記録媒体は、例えば、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
【００３６】
以上説明した少なくともひとつの実施形態によれば、各制御基板１１のメモリ空間２３のデータの変化を、他の制御基板１１のメモリ空間２３のデータに反映させる１つの中継基板１２を持つので、複雑なスケジューリングが必要になることを防ぐことができる。複数の制御基板１１のメモリ空間２３に順次にアクセスする中継基板１２を持つので、各制御基板１１は、複雑な通信制御および排他制御を行う必要無しに、ＤＰＲＡＭ２２の内容を同期させ、疑似的にＤＰＲＡＭ２２の内容を共有することができる。複数の制御基板１１は、ＤＰＲＡＭ２２の内容を容易に共有しながら、制御対象である各種の機器の制御に要する負荷を適正に分散させることができる。各制御基板１１は、各々が書き込み可能とされたメモリ空間２３のデータを更新することによって他の制御基板１１におけるメモリ空間２３のデータを同期させることができる。
【００３７】
各制御基板１１とは独立して複数の制御基板１１のメモリ空間２３を同期させる中継基板１２を持つので、中継基板１２に接続される制御基板１１の数を容易に増大させることができ、制御基板１１の拡張性を向上させることができる。各制御基板１１は、複雑な通信制御および排他制御を行う必要が無いので、ＣＰＵ２１の負担を軽減することができるとともに、制御対象の機器が変更されたとしても、処理の変更が嵩むことを防ぎ、汎用性および再利用性を向上させることができる。中継基板１２は、各制御基板１１のメモリ空間２３のデータが変化したか否かを判定し、他の制御基板１１のメモリ空間２３にデータの変化を反映させるという単純な処理を行なうだけなので、各制御基板１１に比べて、より小型の構成とすることができる。中継基板１２は、例えば動作周波数、バイト数、およびアーキテクチャなどを、各制御基板１１に比べて小さくすることができる。
【００３８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００３９】
１０…メモリ同期システム、１１…制御基板、１２…中継基板、２１…ＣＰＵ、２２…ＤＰＲＡＭ、２３…メモリ空間、２６…モータ、２７…センサ、２８…カメラ、３１…中継ＣＰＵ、３２…ＦＰＧＡ、３３…中継メモリ、３４…中継メモリ空間、３４（０）…バッファ
【図１】
2016212673.tif 000003
【図２】
2016212673.tif 000004
【図３】
2016212673.tif 000005