(57)【要約】【課題】共有メモリを介してデータを送受信する際の処理負担を軽減する。【解決手段】実施形態による制御装置は、第１制御部を備えた第１装置と、第２制御部を備えた第２装置と、共有メモリと、第１回路とを備える。共有メモリは、第１装置および第２装置によって共有されるように構成されている。第１回路は、第２制御部が共有メモリへのアクセスを行った場合に、アクセスに関する情報を第２装置から取得し、取得したアクセスに関する情報を第１装置に出力するように構成されている。【選択図】図１
2016066273.tif 000002
【特許請求の範囲】
【請求項１】
第１制御部を備えた第１装置と、
第２制御部を備えた第２装置と、
前記第１装置および前記第２装置によって共有される共有メモリと、
前記第２制御部が前記共有メモリへのアクセスを行った場合に、前記アクセスに関する情報を前記第２装置から取得し、取得した前記アクセスに関する情報を前記第１装置に出力する第１回路とを備える、制御装置。
【請求項２】
前記第２装置は、前記第２制御部と前記共有メモリとの間のバスを監視することにより前記アクセスに関する情報を取得し、取得した前記アクセスに関する情報を前記第１回路に出力する第２回路をさらに備える、請求項１に記載の制御装置。
【請求項３】
前記第１装置は、前記第１回路から取得された前記アクセスに関する情報を記憶するレジスタをさらに備え、
前記第１制御部は、前記レジスタに基づいて前記共有メモリにアクセスするように構成されている、請求項１または２に記載の制御装置。
【請求項４】
第１制御部を備えた第１装置と、
第２制御部を備えた第２装置と、
前記第１制御部と前記第２制御部とによって共有される共有メモリと、
前記第２制御部にエラーが発生した場合に、前記エラーに関する情報を前記第２装置から取得し、取得した前記エラーに関する情報を前記第１装置に出力する第１回路とを備える、制御装置。
【請求項５】
前記第２装置は、前記第２制御部と前記共有メモリとの間のバスを監視することにより前記エラーに関する情報を取得し、取得した前記エラーに関する情報を前記第１回路に出力する第２回路をさらに備える、請求項４に記載の制御装置。
【請求項６】
前記第１装置は、前記第１回路から取得された前記エラーに関する情報を記憶するレジスタをさらに備え、
前記第１制御部は、前記レジスタに基づいて例外処理を実行するように構成されている、請求項４または５に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、制御装置に関する。
【背景技術】
【０００２】
従来、所定のタスクを実行するプロセッサを備えた制御装置が知られている。このような制御装置では、プロセッサが複数設けられる場合がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１５０６６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
プロセッサが複数設けられた上記従来の制御装置では、各プロセッサが１つの共有メモリを介してデータを送受信するように構成されている場合がある。この場合、各プロセッサは、他のプロセッサからのデータを取得するために、予め設定されたタスクの他に、共有メモリに定期的に繰り返しアクセスし、他のプロセッサからのデータが共有メモリに書き込まれたか否かをチェックする処理などを行う必要がある。このため、従来では、共有メモリを介してデータを送受信する際の処理負担が増大することがあった。
【課題を解決するための手段】
【０００５】
実施形態による制御装置は、第１制御部を備えた第１装置と、第２制御部を備えた第２装置と、共有メモリと、第１回路とを備える。共有メモリは、第１装置および第２装置によって共有されるように構成されている。第１回路は、第２制御部が共有メモリへのアクセスを行った場合に、アクセスに関する情報を第２装置から取得し、取得したアクセスに関する情報を第１装置に出力するように構成されている。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態による制御装置の構成を示した例示ブロック図である。
【図２】図２は、第１実施形態による診断回路が実行する処理を示した例示フローチャートである。
【図３】図３は、第１実施形態による監視回路が実行する処理を示した例示フローチャートである。
【図４】図４は、第１実施形態によるマスタ装置のＣＰＵが実行する処理を示した例示フローチャートである。
【図５】図５は、第２実施形態による制御装置の構成を示した例示ブロック図である。
【図６】図６は、第２実施形態による診断回路が実行する処理を示した例示フローチャートである。
【図７】図７は、第２実施形態による監視回路が実行する処理を示した例示フローチャートである。
【図８】図８は、第２実施形態によるマスタ装置のＣＰＵが実行する処理を示した例示フローチャートである。
【発明を実施するための形態】
【０００７】
以下、実施形態を図面に基づいて説明する。
【０００８】
（第１実施形態）
まず、図１を参照して、第１実施形態による制御装置１００の構成について説明する。制御装置１００とは、計装分野や電気制御分野や電力分野などで用いられるコントローラである。
【０００９】
図１に示すように、制御装置１００は、マザーボード１０と、マスタ装置２０と、複数のスレーブ装置３０とを備える。マスタ装置２０およびスレーブ装置３０は、マザーボード１０に接続されている。マスタ装置２０は、「第１装置」の一例であり、スレーブ装置３０は、「第２装置」の一例である。図１には、スレーブ装置３０が３つ設けられた例を示したが、スレーブ装置３０の数は、４つ以上であってもよいし、２つ以下であってもよい。
【００１０】
マザーボード１０は、共有メモリ１１と、調停回路１２とを備える。共有メモリ１１は、マスタ装置２０およびスレーブ装置３０によって共有されるように構成されている。つまり、マスタ装置２０とスレーブ装置３０とは、共有メモリ１１を介してデータを送受信するように構成されている。また、調停回路１２は、共有メモリ１１へのアクセスの競合を調停するように構成されている。つまり、調停回路１２は、マスタ装置２０による共有メモリ１１へのアクセスと、スレーブ装置３０による共有メモリ１１へのアクセスとが競合するのを回避するように構成されている。
【００１１】
マスタ装置２０は、共有メモリ１１を介してスレーブ装置３０から取得されたデータに基づいて各種処理を行うことが可能なように構成されたＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１を備える。また、マスタ装置２０は、上位装置４０に接続されており、ＣＰＵ２１による処理の結果を上位装置４０に出力することが可能なように構成されている。ＣＰＵ２１は、「第１制御部」の一例である。
【００１２】
スレーブ装置３０は、入出力装置（Ｉ／Ｏ装置）５０に接続されている。スレーブ装置３０は、Ｉ／Ｏ装置５０を介して入力されるデータに基づいて各種処理を行い、処理の結果を共有メモリ１１に出力することが可能なように構成されたＣＰＵ３１を備える。ＣＰＵ３１は、「第２制御部」の一例である。また、スレーブ装置３０は、メモリなどの周辺デバイス３２も備える。
【００１３】
ここで、第１実施形態では、マザーボード１０は、ＣＰＵ３１が共有メモリ１１へのアクセスを行った場合に、当該アクセスに関する情報をスレーブ装置３０から取得し、取得したアクセスに関する情報をマスタ装置２０に送信するように構成された監視回路１３を備える。監視回路１３は、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）などのハードウェアによって構成されている。監視回路１３は、「第１回路」の一例である。
【００１４】
アクセスに関する情報とは、ＣＰＵ３１がアクセスした共有メモリ１１のアドレスを示す情報や、ＣＰＵ３１が行ったアクセスがデータの書き込みであるかデータの読み出しであるかを示す情報などを含む。このようなアクセスに関する情報は、たとえば、ＣＰＵ３１と共有メモリ１１との間のバス（図１の矢印付きの直線Ｌ参照）を監視して、ＣＰＵ３１から共有メモリ１１に出力される信号を傍受することにより取得することができる。
【００１５】
つまり、第１実施形態では、スレーブ装置３０は、ＣＰＵ３１と共有メモリ１１との間のバス（図１の矢印付きの直線Ｌ参照）を監視することにより上記アクセスに関する情報を取得し、取得したアクセスに関する情報を監視回路１３に送信するように構成された診断回路３３を備える。診断回路３３は、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）などのハードウェアによって構成されている。診断回路３３は、「第２回路」の一例である。
【００１６】
また、第１実施形態では、マスタ装置２０は、監視回路１３から取得されたアクセスに関する情報を記憶するように構成されたレジスタ２２を備える。そして、マスタ装置２０のＣＰＵ２１は、レジスタ２２に基づいて、共有メモリ１１にアクセスするように構成されている。
【００１７】
たとえば、ＣＰＵ３１がマスタ装置２０にデータを渡すために共有メモリ１１にデータを書き込んだ場合、診断回路３３は、アクセスに関する情報として、ＣＰＵ３１がデータを書き込んだ共有メモリ１１のアドレスを示す情報などを監視回路１３に出力するように構成されている。そして、監視回路１３は、診断回路３３から取得した情報に基づいて、どのＣＰＵ３１が共有メモリ１１のどのアドレスにデータを書き込んだかを特定することが可能な情報をマスタ装置２０のレジスタ２２に書き込むように構成されている。
【００１８】
レジスタ２２は、上記のような情報が診断回路３３により書き込まれた場合に、ＣＰＵ２１に割り込み信号を出力するように構成されている。そして、ＣＰＵ２１は、レジスタ２２から割り込み信号が入力された場合に、現在行っている処理を一旦停止してレジスタ２２から情報を読み出し、読み出した情報に基づいて共有メモリ１１にアクセスすることにより、ＣＰＵ３１が共有メモリ１１に書き込んだデータを共有メモリ１１から取得するように構成されている。
【００１９】
次に、図２を参照して、第１実施形態による制御装置１００のスレーブ装置３０の診断回路３３が実行する処理フローについて説明する。
【００２０】
この処理フローでは、図２に示すように、診断回路３３は、まず、ステップＳ１において、スレーブ装置３０のＣＰＵ３１によって共有メモリ１１へのアクセスが行われたか否かを判断する。より具体的には、診断回路３３は、ＣＰＵ３１と共有メモリ１１との間のバス（図１の矢印付きの直線Ｌ参照）を監視し、ＣＰＵ３１が共有メモリ１１にアクセスしたことを示す信号がバス上に出力されたか否かを判断する。このステップＳ１の処理は、ＣＰＵ３１によって共有メモリ１１へのアクセスが行われたと判断されるまで繰り返される。ステップＳ１において、ＣＰＵ３１によって共有メモリ１１へのアクセスが行われたと判断された場合には、ステップＳ２に処理が進む。
【００２１】
ステップＳ２において、診断回路３３は、ＣＰＵ３１が行った共有メモリ１１へのアクセスに関する情報をマザーボード１０の監視回路１３に出力する。ここで、アクセスに関する情報とは、ＣＰＵ３１がアクセスした共有メモリ１１のアドレスを示す情報や、ＣＰＵ３１が行ったアクセスがデータの書き込みであるかデータの読み出しであるかを示す情報などを含む。アクセスに関する情報は、ＣＰＵ３１と共有メモリ１１との間のバス（図１の矢印付きの直線Ｌ参照）から傍受される信号に基づいて生成される。そして、処理が戻る。
【００２２】
次に、図３を参照して、第１実施形態による制御装置１００のマザーボード１０の監視回路１３が実行する処理フローについて説明する。
【００２３】
この処理フローでは、図３に示すように、監視回路１３は、まず、ステップＳ１１において、スレーブ装置３０のＣＰＵ３１が行った共有メモリ１１へのアクセスに関する情報が診断回路３３から入力されたか否かを判断する。このステップＳ１１の処理は、アクセスに関する情報が診断回路３３から入力されたと判断されるまで繰り返される。ステップＳ１１において、アクセスに関する情報が診断回路３３から入力されたと判断された場合には、ステップＳ１２に処理が進む。
【００２４】
ステップＳ１２において、監視回路１３は、診断回路３３から入力されたアクセスに関する情報を、マスタ装置２０のレジスタ２２に出力する。たとえばスレーブ装置３０のＣＰＵ３１が共有メモリ１１にデータを書き込んだ場合、監視回路１３は、ＣＰＵ３１が共有メモリ１１のどのアドレスにデータを書き込んだかを特定することが可能な情報などをレジスタ２２に書き込む。そして、処理が戻る。
【００２５】
次に、図４を参照して、第１実施形態による制御装置１００のマスタ装置２０のＣＰＵ２１が実行する処理フローについて説明する。
【００２６】
この処理フローでは、図４に示すように、ＣＰＵ２１は、まず、ステップＳ２１において、ＣＰＵ３１が行った共有メモリ１１へのアクセスに関する情報がレジスタ２２に記憶されたか否かを判断する。たとえば、レジスタ２２が、アクセスに関する情報が記憶された場合にＣＰＵ２１に割り込み信号を出力するように構成されているものとすると、ＣＰＵ２１は、ステップＳ２１において、レジスタ２２からの割り込み信号が自身に入力されたか否かを判断する。このステップＳ２１の処理は、アクセスに関する情報がレジスタ２２に記憶されたと判断されるまで繰り返される。ステップＳ２１において、アクセスに関する情報がレジスタ２２に記憶されたと判断された場合には、ステップＳ２２に処理が進む。
【００２７】
ステップＳ２２において、ＣＰＵ２１は、レジスタ２２に記憶された情報に基づいて、共有メモリ１１にアクセスする。たとえば、ＣＰＵ３１がマスタ装置２０にデータを渡すために共有メモリ１１にデータを書き込んだ場合、レジスタ２２には、ＣＰＵ３１がデータを書き込んだ共有メモリ１１のアドレスを特定することが可能な情報などが監視回路１３によって書き込まれるので、ＣＰＵ２１は、ステップＳ２２において、監視回路１３によってレジスタ２２に書き込まれた情報をレジスタ２２から読み出し、読み出した情報に基づいて共有メモリ１１にアクセスすることにより、ＣＰＵ３１が共有メモリ１１に書き込んだデータを共有メモリ１１から取得する。そして、処理が戻る。
【００２８】
以上説明したように、第１実施形態による制御装置１００は、スレーブ装置３０のＣＰＵ３１が共有メモリ１１へのアクセスを行った場合に、当該アクセスに関する情報をスレーブ装置３０から取得し、取得したアクセスに関する情報をマスタ装置２０に出力する監視回路１３を備えている。これにより、共有メモリ１１からデータを取得するために、共有メモリ１１に定期的に繰り返しアクセスする処理などを行う必要がないため、共有メモリ１１を介してデータを送受信する際の処理負担を軽減することができる。この結果、マザーボード１０上のデータ負荷を軽減することができ、制御装置１００全体の性能を向上させることができる。
【００２９】
また、第１実施形態によるスレーブ装置３０は、ＣＰＵ３１と共有メモリ１１との間のバス（図１の矢印付きの直線Ｌ参照）を監視することによりアクセスに関する情報を取得し、取得したアクセスに関する情報を監視回路１３に出力する診断回路３３を備えている。これにより、ＣＰＵ３１と共有メモリ１１との間のバスに出力される信号を診断回路３３によって傍受するだけで、アクセスに関する情報を容易に取得することができる。つまり、アクセスに関する情報を監視回路１３に出力する処理をＣＰＵ３１に行わせる必要がないので、ＣＰＵ３１の処理負担を軽減することができる。
【００３０】
また、第１実施形態によるマスタ装置２０は、監視回路１３から取得されたアクセスに関する情報を記憶するレジスタ２２を備えており、マスタ装置２０のＣＰＵ２１は、レジスタ２２に基づいて共有メモリ１１にアクセスするように構成されている。これにより、レジスタ２２を監視するだけで、スレーブ装置３０のＣＰＵ３１が共有メモリ１１に行ったアクセスに関する情報を容易に取得することができる。これにより、共有メモリ１１へのアクセスを効率的に行うことができる。
【００３１】
（第２実施形態）
次に、図５を参照して、第２実施形態による制御装置１００ａの構成について説明する。なお、第１実施形態と同様の構成要素については、同一の符号を割り当てて説明を省略する。
【００３２】
図５に示すように、第２実施形態による制御装置１００ａは、第１実施形態による制御装置１００と同様に、マザーボード１０ａと、マスタ装置２０ａと、複数のスレーブ装置３０ａとを備える。マスタ装置２０ａは、「第１装置」の一例であり、スレーブ装置３０ａは、「第２装置」の一例である。図５には、スレーブ装置３０ａが３つ設けられた例を示したが、スレーブ装置３０ａの数は、４つ以上であってもよいし、２つ以下であってもよい。
【００３３】
第２実施形態によるマザーボード１０ａは、共有メモリ１１と、調停回路１２と、監視回路１３ａとを備える。監視回路１３ａは、「第１回路」の一例である。また、第２実施形態によるマスタ装置２０ａは、ＣＰＵ２１ａと、レジスタ２２とを備える。ＣＰＵ２１ａは、「第１制御部」の一例である。また、第２実施形態によるスレーブ装置３０ａは、ＣＰＵ３１ａと、周辺デバイス３２と、診断回路３３ａとを備える。ＣＰＵ３１ａは、「第２制御部」の一例であるとともに、診断回路３３ａは、「第２回路」の一例である。
【００３４】
ここで、第２実施形態による診断回路３３ａは、ＣＰＵ３１ａと共有メモリ１１との間のバス（図５の矢印付きの直線Ｌ参照）を監視することにより、ＣＰＵ３１ａに発生し得るエラーに関する情報を取得するように構成されている。
【００３５】
たとえば、ＣＰＵ３１ａが複数のタスクＡ、Ｂ、ＣおよびＤをこの順番で繰り返し実行する動作を行うように設定されている場合、診断回路３３ａは、ＣＰＵ３１ａからの出力信号を上記のバス（図５の矢印付きの直線Ｌ参照）を介して傍受することにより、ＣＰＵ３１ａが上記の設定から外れた動作を行っているか否かを判定するように構成されている。そして、診断回路３３ａは、ＣＰＵ３１ａが上記の設定から外れた動作を行っていると判定した場合、すなわちＣＰＵ３１ａに何らかのエラーが発生したと判断した場合に、そのエラーの詳細をエラーログ３４として記録するとともに、そのエラーに関する情報をマザーボード１０ａの監視回路１３ａに出力するように構成されている。
【００３６】
第２実施形態による監視回路１３ａは、上記エラーに関する情報をスレーブ装置３０ａから取得した場合に、取得したエラーに関する情報をマスタ装置２０ａに出力するように構成されている。より具体的には、監視回路１３ａは、上記エラーに関する情報をスレーブ装置３０ａから取得した場合に、どのスレーブ装置３０ａのＣＰＵ３１ａにエラーが発生したかを特定することが可能な情報をマスタ装置２０ａのレジスタ２２に書き込むように構成されている。
【００３７】
第２実施形態によるＣＰＵ２１ａは、レジスタ２２に基づいて例外処理をおこなうように構成されている。より具体的には、レジスタ２２は、上記のような情報が診断回路３３ａにより書き込まれた場合に、ＣＰＵ２１ａに割り込み信号を出力するように構成されている。そして、ＣＰＵ２１ａは、レジスタ２２から割り込み信号が入力された場合に、現在行っている処理を一旦停止して例外処理を行うように構成されている。なお、例外処理の例としては、エラーが発生したＣＰＵ３１ａを備えたスレーブ装置３０ａを初期化する処理や、エラーが発生したＣＰＵ３１ａを備えたスレーブ装置３０ａをシステムから切り離す処理などが考えられる。
【００３８】
次に、図６を参照して、第２実施形態による制御装置１００ａのスレーブ装置３０ａの診断回路３３ａが実行する処理フローについて説明する。
【００３９】
この処理フローでは、図６に示すように、診断回路３３ａは、まず、ステップＳ３１において、スレーブ装置３０ａのＣＰＵ３１ａにエラーが発生したか否かを判断する。より具体的には、診断回路３３ａは、ＣＰＵ３１ａと共有メモリ１１との間のバス（図５の矢印付きの直線Ｌ参照）を監視し、ＣＰＵ３１ａからの出力信号をバスから傍受することにより、ＣＰＵ３１ａが設定から外れた動作を行っているか否かを判定する。このステップＳ３１の処理は、ＣＰＵ３１ａにエラーが発生したと判断されるまで繰り返される。ステップＳ３１において、ＣＰＵ３１ａにエラーが発生したと判断された場合には、ステップＳ３２に処理が進む。
【００４０】
ステップＳ３２において、診断回路３３ａは、ＣＰＵ３１ａに発生したエラーの詳細を示すエラーログ３４を記録する。そして、ステップＳ３３に処理が進む。
【００４１】
ステップＳ３３において、診断回路３３ａは、ＣＰＵ３１ａに発生したエラーに関する情報をマザーボード１０ａの監視回路１３ａに出力する。エラーに関する情報は、ＣＰＵ３１ａと共有メモリ１１との間のバス（図５の矢印付きの直線Ｌ参照）から傍受された信号に基づいて生成される。そして、処理が戻る。
【００４２】
次に、図７を参照して、第２実施形態による制御装置１００ａのマザーボード１０ａの監視回路１３ａが実行する処理フローについて説明する。
【００４３】
この処理フローでは、図７に示すように、監視回路１３ａは、まず、ステップＳ４１において、スレーブ装置３０ａのＣＰＵ３１ａに発生したエラーに関する情報が診断回路３３ａから入力されたか否かを判断する。このステップＳ４１の処理は、エラーに関する情報が診断回路３３ａから入力されたと判断されるまで繰り返される。ステップＳ４１において、エラーに関する情報が診断回路３３ａから入力されたと判断された場合には、ステップＳ４２に処理が進む。
【００４４】
ステップＳ４２において、監視回路１３ａは、診断回路３３ａから入力されたエラーに関する情報を、マスタ装置２０ａのレジスタ２２に出力する。より具体的には、監視回路１３ａは、どのスレーブ装置３０ａのＣＰＵ３１ａにエラーが発生したかを特定することが可能な情報をレジスタ２２に書き込む。そして、処理が戻る。
【００４５】
次に、図８を参照して、第２実施形態による制御装置１００ａのマスタ装置２０ａのＣＰＵ２１ａが実行する処理フローについて説明する。
【００４６】
この処理フローでは、図８に示すように、ＣＰＵ２１ａは、まず、ステップＳ５１において、ＣＰＵ３１ａに発生したエラーに関する情報がレジスタ２２に記憶されたか否かを判断する。たとえば、レジスタ２２が、エラーに関する情報が記憶された場合にＣＰＵ２１ａに割り込み信号を出力するように構成されているものとすると、ＣＰＵ２１ａは、ステップＳ５１において、レジスタ２２からの割り込み信号が自身に入力されたか否かを判断する。このステップＳ５１の処理は、エラーに関する情報がレジスタ２２に記憶されたと判断されるまで繰り返される。ステップＳ５１において、エラーに関する情報がレジスタ２２に記憶されたと判断された場合には、ステップＳ５２に処理が進む。
【００４７】
ステップＳ５２において、ＣＰＵ２１ａは、レジスタ２２に記憶されたエラーに関する情報に基づいて、例外処理を実行する。つまり、ＣＰＵ３１ａにエラーが発生した場合、レジスタ２２には、どのスレーブ装置３０ａのＣＰＵ３１ａにエラーが発生したかを特定することが可能な情報が監視回路１３ａによって書き込まれるので、ＣＰＵ２１ａは、ステップＳ５２において、監視回路１３ａによってレジスタ２２に書き込まれた情報をレジスタ２２から読み出し、読み出した情報に基づいて特定したＣＰＵ３１ａを有するスレーブ装置３０ａに対して例外処理を行う。なお、例外処理の例としては、上記のように、エラーが発生したＣＰＵ３１ａを備えたスレーブ装置３０ａを初期化する処理や、エラーが発生したＣＰＵ３１ａを備えたスレーブ装置３０ａをシステムから切り離す処理などが考えられる。そして、処理が戻る。
【００４８】
以上説明したように、第２実施形態による制御装置１００ａは、スレーブ装置３０ａのＣＰＵ３１ａにエラーが発生した場合に、当該エラーに関する情報をスレーブ装置３０ａから取得し、取得したエラーに関する情報をマスタ装置２０ａに出力する監視回路１３ａを備えている。これにより、互いにエラーが発生しているか否かを検知する際の処理負担を軽減することができる。
【００４９】
つまり、プロセッサが複数設けられた従来の制御装置では、各プロセッサは、ある共通の記憶媒体（共有メモリ）を用いたいわゆるヘルシーカウンタなどを用いて互いにエラーが発生しているか否かを検知していた。たとえば、各プロセッサは、予め設定されたタスクが正常に終了する毎に、自身にエラーが発生していない旨を示すデータを共有メモリに記憶し、このように記憶したデータを互いに監視することにより、互いにエラーが発生しているか否かを検知していた。このように、従来では、各プロセッサは、互いにエラーが発生しているか否かを検知するために、予め設定されたタスクの他にも種々の処理を行う必要があったため、処理負担が増大することがあった。
【００５０】
これに対して、第２実施形態による制御装置１００ａは、上記のような監視回路１３ａを備えているので、ＣＰＵ３１ａにエラーが発生した旨がＣＰＵ３１ａとは独立したハードウェアである監視回路１３ａによってマスタ装置２０ａに通知される。したがって、第２実施形態によれば、互いにエラーが発生しているか否かを検知するために、共有メモリ１１に定期的に繰り返しアクセスする処理などを行う必要がないので、処理負担を軽減することができる。
【００５１】
また、第２実施形態によるスレーブ装置３０ａは、ＣＰＵ３１ａと共有メモリ１１との間のバス（図５の矢印付きの直線Ｌ参照）を監視することによりエラーに関する情報を取得し、取得したエラーに関する情報を監視回路１３ａに出力する診断回路３３ａを備えている。これにより、ＣＰＵ３１ａと共有メモリ１１との間のバスに出力される信号を診断回路３３ａによって傍受するだけで、エラーに関する情報を容易に取得することができる。つまり、エラーに関する情報を監視回路１３ａに出力する処理をＣＰＵ３１ａに行わせる必要がないので、ＣＰＵ３１ａの処理負担を軽減することができる。また、ＣＰＵ３１ａと共有メモリ１１との間のバスに出力される信号を診断回路３３ａによって傍受することにより、ＣＰＵ３１ａがどのような動作を行った際にエラーが発生したかをエラーログ３４として詳細に記録することができる。
【００５２】
また、第２実施形態によるマスタ装置２０ａは、監視回路１３ａから取得されたエラーに関する情報を記憶するレジスタ２２を備えており、ＣＰＵ２１ａは、レジスタ２２に基づいて例外処理を実行するように構成されている。これにより、レジスタ２２を監視するだけで、エラーに関する情報を容易に取得することができる。
【００５３】
以上、本発明の実施形態を説明したが、上記実施形態はあくまで一例であって、発明の範囲を限定することは意図していない。上記実施形態は、様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。上記実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５４】
１１  共有メモリ
１３、１３ａ  監視回路（第１回路）
２０、２０ａ  マスタ装置（第１装置）
２１、２１ａ  ＣＰＵ（第１制御部）
２２  レジスタ
３０、３０ａ  スレーブ装置（第２装置）
３１、３１ａ  ＣＰＵ（第２制御部）
３３、３３ａ  診断回路（第２回路）
１００、１００ａ  制御装置
【図１】
2016066273.tif 000003
【図２】
2016066273.tif 000004
【図３】
2016066273.tif 000005
【図４】
2016066273.tif 000006
【図５】
2016066273.tif 000007
【図６】
2016066273.tif 000008
【図７】
2016066273.tif 000009
【図８】
2016066273.tif 000010