(57)【要約】      （修正有）【課題】ＣＰＵの性能低下を抑えつつ、ＣＰＵ故障を検出する。【解決手段】マスタＣＰＵ１１の処理結果を一時保存してチェッカＣＰＵ１２の処理結果と同期させる第１のバッファ１４１と、第１のバッファに一時保存されたマスタＣＰＵの処理結果とチェッカＣＰＵの処理結果とを比較してマスタＣＰＵの処理結果の異常を検出する比較器１５と、マスタＣＰＵの処理結果をバスに出力する経路を、第１のバッファを経由する第１の経路と、第１のバッファを経由しない第２の経路とで切り替える切替器１４２と、バスに接続されてマスタＣＰＵの処理結果が出力される第２のバッファ１６１と、内部メモリに保存されたマスタＣＰＵの処理結果を第２のバッファに待避されたデータに置き換える復元処理を行うデータ復元回路１６と、バスの書き込み制御を行う書き込み制御回路１３とを備える。【選択図】図１
2015138529.tif 000002
【特許請求の範囲】
【請求項１】
マスタＣＰＵの処理結果を一時保存してチェッカＣＰＵの処理結果と同期させる第１のバッファと、
前記第１のバッファに一時保存された前記マスタＣＰＵの処理結果と前記チェッカＣＰＵの処理結果とを比較して前記マスタＣＰＵの処理結果の異常を検出する比較器と、
前記マスタＣＰＵの処理結果をバスに出力する経路を、前記第１のバッファを経由する第１の経路と、前記第１のバッファを経由しない第２の経路とで切り替える切替器と、
前記バスに接続されて前記マスタＣＰＵの処理結果が出力される、入出力部、および内部メモリと、
出力された前記マスタＣＰＵの処理結果が保存される前の前記内部メモリのデータを待避させる第２のバッファと、
前記内部メモリに保存された前記マスタＣＰＵの処理結果を前記第２のバッファに待避されたデータに置き換える復元処理を行うデータ復元回路と、
前記バスの書き込み制御を行う書き込み制御回路と
を備えるＣＰＵ故障監視装置であって、
前記書き込み制御回路は、
前記切替器を前記第１の経路に切り替えて、前記比較器が前記異常を検出しない場合に前記マスタＣＰＵの処理結果を前記入出力部に出力し、
前記切替器を前記第２の経路に切り替えて、前記マスタＣＰＵの処理結果を前記内部メモリに出力し、前記比較器が前記異常を検出した場合に前記データ復元回路に対して前記復元処理を指示する、ＣＰＵ故障監視装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ故障検出装置に関する。
【背景技術】
【０００２】
従来、２つのプロセッサを備えたＬＳＤＣ（Lock Step Dual Core）−ＣＰＵ（Central Processing Unit）では、２つのプロセッサに同じ動作命令を与えて、２つのプロセッサの処理結果を比較することによりＣＰＵの処理結果の異常を検出する。処理結果は比較のためには、２つのプロセッサの間にバッファ回路を挿入して、処理結果を比較してＣＰＵの異常を検出する（例えば、特許文献１−２を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１６４２７７号公報
【特許文献２】特開２０１０−００３１４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記従来技術においては、処理結果を必ずバッファ回路に保存するため、バッファ回路による遅延が発生し、ＣＰＵの性能が低下する場合があった。
【０００５】
そこで、本発明は、ＣＰＵの性能低下を抑えつつ、安全性の高いＣＰＵ故障検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明におけるＣＰＵ故障検出装置は、マスタＣＰＵの処理結果を一時保存してチェッカＣＰＵの処理結果と同期させる第１のバッファと、前記第１のバッファに一時保存された前記マスタＣＰＵの処理結果と前記チェッカＣＰＵの処理結果とを比較して前記マスタＣＰＵの処理結果の異常を検出する比較器と、前記マスタＣＰＵの処理結果をバスに出力する経路を、前記第１のバッファを経由する第１の経路と、前記第１のバッファを経由しない第２の経路とで切り替える切替器と、前記バスに接続されて前記マスタＣＰＵの処理結果が出力される、入出力部、および内部メモリと、出力された前記マスタＣＰＵの処理結果が保存される前の前記内部メモリのデータを待避させる第２のバッファと、前記内部メモリに保存された前記マスタＣＰＵの処理結果を前記第２のバッファに待避されたデータに置き換える復元処理を行うデータ復元回路と、前記バスの書き込み制御を行う書き込み制御回路とを備えるＣＰＵ故障監視装置であって、前記書き込み制御回路は、前記切替器を前記第１の経路に切り替えて、前記比較器が前記異常を検出しない場合に前記マスタＣＰＵの処理結果を前記入出力部に出力し、前記切替器を前記第２の経路に切り替えて、前記マスタＣＰＵの処理結果を前記内部メモリに出力し、前記比較器が前記異常を検出した場合に前記データ復元回路に対して前記復元処理を指示する。
【発明の効果】
【０００７】
本発明の実施形態によれば、ＣＰＵの性能低下を抑えつつ、安全性の高いＣＰＵ故障検出装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】ＣＰＵ故障検出装置の構成の一例を示すブロック図
【発明を実施するための形態】
【０００９】
以下、図面に基づいて本発明の一例である実施の形態を説明する。図１は、ＣＰＵ故障検出装置の構成の一例を示すブロック図である。
【００１０】
図１において、ＣＰＵ故障検出装置１は、マスタＣＰＵ１１、チェッカＣＰＵ１２、書き込み制御回路１３、データ出力回路１４、比較器（ＣＭＰ：comparator）１５、データ復元回路１６、ＲＡＭ（Random Access Memory）１７、Ｉ／Ｏ（Input Output）部１８、バス２０を備える。バス２０は、データバス２１、アドレスバス２２、および制御バス２３を備える。データ出力回路１４は、第１のバッファとしてバッファ１４１、および切替器（ＭＵＸ：multiplexer）１４２を備える。
【００１１】
バス２０は、データ復元回路１６、内部メモリとしてＲＡＭ１７、および入出力部としてＩ／Ｏ部１８に接続されて、書き込み制御回路１３によって書き込み先のアドレスと書き込みのタイミング制御がされる。
【００１２】
マスタＣＰＵ１１とチェッカＣＰＵ１２は、ＬＳＤＣ−ＣＰＵを構成する。マスタＣＰＵ１１とチェッカＣＰＵ１２には同じ動作命令が与えられてロックステップ動作が行われる。本実施形態においては、チェッカＣＰＵ１２の処理はマスタＣＰＵ１１の処理に対して所定のクロック数（ｎクロック）遅延して行われる遅延型ロックステップ動作が行われる。
【００１３】
動作命令に対するマスタＣＰＵ１１の処理結果は、データバス１１１を介してデータ出力回路１４に出力される。データ出力回路１４に入力されたマスタＣＰＵ１１の処理結果は２つに分岐して、一方は第１の経路としてバッファ１４１経由で切替器１４２に入力され、他方は第２の経路としてバッファ１４１を経由しないで切替器１４２に入力される。切替器１４２には上記２つのマスタＣＰＵ１１の処理結果が入力される。
【００１４】
切替器１４２は、書き込み制御回路からの出力選択信号線１３１を経由した出力選択信号によって、第１の経路と第２の経路を切り替えてマスタＣＰＵ１１の処理結果をデータバス１４２１を介してデータバス２１に出力する。
【００１５】
バッファ１４１は、ＦＩＦＯ（First In First Out）型のデータバッファであり、データバス１１１から入力されたマスタＣＰＵ１１の処理結果をマスタＣＰＵ１１に対するチェッカＣＰＵ１２の処理の遅延と同じｎクロック遅延させる。ｎクロック遅延されたマスタＣＰＵ１１の処理結果は、切替器１４２と、データバス１４１１を介して比較器１５とに入力される。また、同じ動作命令に対するチェッカＣＰＵ１２の処理結果はデータバス１２１を介して比較器１５に入力される。したがって、比較器１５には、マスタＣＰＵ１１の処理結果とチェッカＣＰＵ１２の処理結果が同期されて入力されることになる。
【００１６】
マスタＣＰＵ１１は、書き込み制御回路１３に対して、データバス２１に出力されたマスタＣＰＵ１１の処理結果の書き込み先のアドレスをアドレスバス１１２を介して指示する。本実施形態では、書き込み先はＲＡＭ１７またはＩ／Ｏ部１８のいずれかのアドレスが指示される。
【００１７】
書き込み制御回路１３は、マスタＣＰＵ１１から指示された書き込み先のアドレスに従い、制御バス１３２を介してバス２０の制御バス２３に対して書き込み制御命令を出力する。また、書き込み制御回路１３は、アドレスバス１３３を介してアドレスバス２２に対してマスタＣＰＵ１１の処理結果の書き込み先アドレスを出力する。
【００１８】
比較器１５は、ロックステップ動作にてマスタＣＰＵ１１の処理結果とチェッカＣＰＵ１２の処理結果を比較して両者に不一致がないか否かを検出する。たとえばＣＰＵの故障等によって両者に不一致がある場合、いずれかのＣＰＵの処理結果に異常があると検出し、ＣＰＵ故障信号線１５１にＣＰＵ故障信号を出力する。ＣＰＵ故障信号は書き込み制御回路１３に入力される。また、ＣＰＵ故障信号は、図示しないＣＰＵ故障検出装置１の他の装置に入力してもよい。
【００１９】
データ復元回路１６は、バス２０に接続されて、内部に第２のバッファとしてバッファ１６１を備える。バッファ１６１には、マスタＣＰＵ１１の処理結果が書き込まれるＲＡＭ１７の、書き込み前のデータが一時保存される。データ復元回路１６は、バッファ１６１に一時保存されるデータの保存元のＲＡＭ１７のアドレスが記憶される。データ復元回路１６は、記憶されたＲＡＭ１７のアドレスに従い、ＲＡＭ１７に保存されたマスタＣＰＵ１１の処理結果をバッファ１６１に保存された書き込み前のデータに置き換える復元処理を行う。
【００２０】
バッファ１６１はバッファ１４１と同様に、入力されたデータをｎクロック分一時保存するデータ容量を備えるＦＩＦＯ型データバッファを利用することができる。バッファ１６１には、ストア命令でマスタＣＰＵ１１の処理結果が書き込まれる前のＲＡＭ１７のデータを、ストア命令がある度に入力される。したがって、バッファ１６１には、ｎクロック分のＲＡＭ１７のデータが一時保存されて、ＲＡＭ１７のデータ復元に利用される。
【００２１】
ＲＡＭ１７は、バス２０に接続されて、マスタＣＰＵ１１の処理結果を記憶する。ＲＡＭ１７は、たとえばＣＰＵ故障監視検出装置１の主記憶領域として使用される。マスタＣＰＵ１１は、ストア命令における処理結果のストア先としてＲＡＭ１７を指定することができる。
【００２２】
Ｉ／Ｏ部１８は、バス２０に接続されて、マスタＣＰＵ１１の処理結果をＣＰＵ故障検出装置１の図示しない外部機器へ出力する。Ｉ／Ｏ部１８は、外部機器へ出力するマスタＣＰＵ１１の処理結果を一時保存するバッファを有してもよい。マスタＣＰＵ１１は、ストア命令における処理結果のストア先としてＩ／Ｏ部１８を指定することができる。またＩ／Ｏ部１８は、外部機器からのデータ入力を受け付ける。
【００２３】
なお、図１では、バス２０は出力側バスのみを図示しており、説明を簡単にするために入力側バスは図示を省略している。また、チェッカＣＰＵ１２はデータバス１２１のみを図示しており、アドレスバスは図示を省略している。さらに比較器１５についてもデータバスのみを図示してアドレスバスは図示を省略している。
【００２４】
次に、本実施形態におけるＣＰＵ故障監視装置１の具体的な動作を説明する。
［ＲＡＭへのストア命令実行時の動作］
マスタＣＰＵ１１の処理結果をＲＡＭ１７に保存するＲＡＭ１７へのストア命令では、処理結果はＣＰＵ故障監視装置１の内部に保存される。したがって、もし比較器１５によってＣＰＵの処理結果に異常が検出された場合でも異常な処理結果がＣＰＵ故障監視装置１の外部には出力されない。
【００２５】
そこで、ＲＡＭ１７へのストア命令では、切替器１４２において第２の経路に切り替えて、マスタＣＰＵ１１の処理結果をデータバス２１に出力してＲＡＭ１７に書き込む。第２の経路ではバッファ１４１を介さないで処理結果を出力するため、バッファ１４１による遅延が発生せず、ストア命令における書き込み性能を低下させないことができる。
【００２６】
本実施形態においては、マスタＣＰＵ１１の処理結果が出力されて書き込まれるＲＡＭ１７のアドレスに記憶されている書き込み前のデータを、たとえば書き込み制御回路１３によってデータ復元回路１６のバッファ１６１に待避させる。これにより、ＣＰＵの処理結果に異常が検出された場合でもＲＡＭ１７のデータ復元を可能にする。ＲＡＭ１７へのストア命令では、ＣＰＵの処理結果がＣＰＵ故障監視装置１の外部には出力されず、復元範囲はＲＡＭ１７のみであるため、復元を容易にすることが可能となる。
【００２７】
先ず、マスタＣＰＵ１１は、実行するプログラムに記述されたＲＡＭ１７へのストア命令に対して、アドレスバス１１２を介してＲＡＭ１７のアドレスを出力する。
【００２８】
次に、書き込み制御回路１３は、入力されたアドレスがＲＡＭ１７のアドレスである場合は、切替器１４２に対して第２の経路に切り替える出力選択信号を出力する。書き込み制御回路１３は、入力されたアドレスがＲＡＭ１７のアドレスである場合は、さらに制御バス１３２を介して制御バス２３に対してＲＡＭ１７にマスタＣＰＵ１１の処理結果が書き込み出力されるように設定する。
【００２９】
次に、書き込み制御回路１３は、書き込み先のＲＡＭ１７のアドレスに記憶されているデータをバッファ１６１に待避させる。
【００３０】
ここで、書き込み先として入力されたアドレスがＲＡＭ１７のアドレスであるか、またはＩ／Ｏ部１８のアドレスであるかの判断は、たとえば、ＲＡＭ１７またはＩ／Ｏ部１８に割り当てられたアドレス空間を予め書き込み制御回路１３に設定しておくことにより判断できる。アドレス空間の割り当ては、たとえばユーザが任意に設定してもよい。また、マスタＣＰＵ１１など、ＣＰＵ故障監視装置１の内部に設定されたアドレス空間の情報を書き込み制御回路１３に送信することにより設定してもよい。また、アドレスバス１１２に、書き込み先のデバイスの種類を指定する信号を含ませてもよい。
【００３１】
次に、マスタＣＰＵ１１の処理結果は、データバス１１１、切替器１４２、データバス１４２、さらにデータバス２１を介して、ＲＡＭ１７に書き込まれる。マスタＣＰＵ１１の処理結果は、データバス１１１およびバッファ１４１を介して比較器１５に入力される。一方、チェッカＣＰＵ１２においても、マスタＣＰＵ１１と同様にＲＡＭ１７へのストア命令が実行されて、処理結果が比較器１５に入力される。
【００３２】
次に、比較器１５は、入力されたマスタＣＰＵ１１の処理結果とチェッカＣＰＵ１２の処理結果を比較して、両者に相違があるか否かを検出する。両者に相違がない場合はＣＰＵ故障信号を出力しない。一方、両者に相違がある場合はＣＰＵ故障信号を出力する。
【００３３】
次に、書き込み制御回路１３は、比較器１５からＣＰＵ故障信号が出力された場合、入力されたＣＰＵ故障信号に基づき、制御バス１３２を介してデータ復元回路１６に対して、ＣＰＵ故障信号が検出されたデータが記憶されたＲＡＭ１７の復元処理を行う復元指示を出力する。
【００３４】
次に、データ復元回路１６は、入力された復元指示に従い、バッファ１６１に保存された書き込み前のＲＡＭ１７のデータを、そのデータが記憶されていたＲＡＭ１７のアドレスに書き込み、ＲＡＭ１７のデータを復元する。
【００３５】
次に、ＣＰＵ故障監視装置１は、ＣＰＵ故障信号に基づき、マスタＣＰＵ１１およびチェッカＣＰＵ１２をリセットする。
【００３６】
以上の動作により、ＲＡＭ１７へのストア命令においては、バッファ１４１を介さない第２の経路で処理結果を出力するため、バッファ１４１による遅延が発生せず、ストア命令における書き込み性能が低下しないという効果を奏することができる。また、ＣＰＵ故障信号が検出された場合であっても、復元対象がＣＰＵ故障監視装置１の内部であるＲＡＭ１７であり、またＣＰＵ以外の装置をリセットする必要がないため、迅速な復帰が可能となる。
［Ｉ／Ｏ部へのストア命令実行時の動作］
マスタＣＰＵ１１の処理結果をＩ／Ｏ部１８に書き込むＩ／Ｏ部１８へのストア命令では、マスタＣＰＵ１１の処理結果はＩ／Ｏ部１８を介してＣＰＵ故障監視装置１の外部に出力される。したがって、もし比較器１５によってＣＰＵの処理結果に異常が検出された場合は、異常な処理結果をＣＰＵ故障監視装置１の外部には出力しないようにする。
【００３７】
そこで、Ｉ／Ｏ部１８へのストア命令では、切替器１４２において第１の経路に切り替えて、マスタＣＰＵ１１の処理結果はバッファ１４１に一時保存されてデータバス２１経由でＩ／Ｏ部１８に出力される。Ｉ／Ｏ部１８へのデータの出力は、比較器１５によってＣＰＵの処理結果に異常が検出されなかった場合のみ、書き込み制御回路１３によって許可される。
【００３８】
先ず、マスタＣＰＵ１１は、実行するプログラムに記述されたＩ／Ｏ部１８へのストア命令に対して、アドレスバス１１２を介してＩ／Ｏ部１８のアドレスを出力する。
【００３９】
次に、書き込み制御回路１３は、入力されたアドレスがＩ／Ｏ部１８のアドレスである場合は、切替器１４２に対してバッファ１４１を経由する第１の経路に切り替える出力選択信号を出力する。書き込み制御回路１３は、入力されたアドレスがＩ／Ｏ部１８のアドレスである場合は、さらに制御バス１３２を介してデータ書き込み禁止の設定を行う。
【００４０】
次に、マスタＣＰＵ１１の処理結果は、データバス１１１、バッファ１４１を介して比較器１５に入力される。また、チェッカＣＰＵ１２においても、マスタＣＰＵ１１と同様にＩ／Ｏ部１８へのストア命令が実行されて、処理結果が比較器１５に入力される。
【００４１】
次に、比較器１５は、入力されたマスタＣＰＵ１１の処理結果とチェッカＣＰＵ１２の処理結果を比較して、両者に相違があるか否かを検出する。両者に相違がない場合はＣＰＵ故障信号を出力しない。一方、両者に相違がある場合はＣＰＵ故障信号を出力する。
【００４２】
次に、書き込み制御回路１３は、比較器１５からＣＰＵ故障信号が出力されれなかった場合、制御バス１３２を介してデータ書き込み禁止を解除して、マスタＣＰＵ１１の処理結果をＩ／Ｏ部１８に出力する。
【００４３】
一方、比較器１５からＣＰＵ故障信号が出力された場合、制御バス１３２はデータ書き込み禁止を維持し、Ｉ／Ｏ部１８にはマスタＣＰＵ１１の処理結果は出力されない。
【００４４】
以上の遅延型ロックステップ動作により、Ｉ／Ｏ部１８へ出力されるマスタＣＰＵ１１の処理結果の安全性を高めることが可能となる。
【００４５】
また、マスタＣＰＵ１１の処理結果はバッファ１４１からは出力されないため、ＣＰＵ故障監視装置１の復帰処理はマスタＣＰＵ１１およびチェッカＣＰＵ１２のリセットのみとなり、迅速な復帰が可能となる。
【００４６】
本実施形態においては、ＲＡＭ１７へのストア命令実行時の動作とＩ／Ｏ部１８へのストア命令実行時の動作を切り替えることにより、ＣＰＵの性能低下を抑えつつ、安全性の高いＣＰＵ故障検出装置を提供することができる。
【００４７】
なお、ＣＰＵ故障監視装置１の、書き込み制御回路１３、データ出力回路１４、または比較器１５の各機能は、ハードウエアによって実現することができる。また、前記の各機能の一部をソフトウエアによって実行するミドルウエアによって実現することもできる。
【００４８】
以上、本発明を実施するための形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４９】
１  ＣＰＵ故障監視装置
１１  マスタＣＰＵ
１１１  データバス
１１２  アドレスバス
１２  チェッカＣＰＵ
１２１  データバス
１３  書き込み制御回路
１３１  出力選択信号線
１３２  制御バス
１３３  データバス
１４  データ出力回路
１４１  バッファ
１４１１  データバス
１４２  切替器
１４２１  データバス
１５  比較器
１５１  ＣＰＵ故障信号線
１６  データ復元回路
１６１  バッファ
１７  ＲＡＭ
１８  Ｉ／Ｏ部
２０  バス
２１  データバス
２２  アドレスバス
２３  制御バス
【図１】
2015138529.tif 000003