(57)【要約】【課題】  通常時変動しないメモリセルであっても、メモリセルのスタック故障を故障発生からより短時間に検出することができる二重化プロセッサ装置を実現する。【解決手段】  プロセッサが第１プロセッサ及び第２プロセッサにより二重化され、これら第１プロセッサ及び第２プロセッサにそれぞれ第１メモリ及び第２メモリが設けられた二重化プロセッサ装置に関するものである。  第１メモリと第２メモリに対して、データをそのまま書き込むか反転して書き込むかを指定する反転制御ビットをそれぞれ設定し、第１メモリと第２メモリに設定する反転制御ビットのビット状態は互いに反転関係にし、第１メモリと第２メモリに設定する反転制御ビットを交互に入れ替えるビット設定手段と、反転制御ビットのビット状態に基づいて、第１メモリと第２メモリの一方には非反転データを書き込み、他方には反転データを書き込む書込み制御手段とを設けた。【選択図】                    図１
2006058982.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサが第１プロセッサと第２プロセッサにより二重化され、これら第１プロセッサと第２プロセッサにそれぞれ第１メモリと第２メモリが設けられた二重化プロセッサ装置において、
前記第１メモリと第２メモリに対して、データをそのまま書き込むか反転して書き込むかを指定する反転制御ビットをそれぞれ設定し、前記第１メモリと第２メモリに設定する前記反転制御ビットのビット状態は互いに反転関係にし、前記第１メモリと第２メモリに設定する前記反転制御ビットを交互に入れ替えるビット設定手段と、
前記反転制御ビットのビット状態に基づいて、前記第１メモリと第２メモリの一方には非反転データを書き込み、他方には反転データを書き込む書込み制御手段と、
を有することを特徴とする二重化プロセッサ装置。
【請求項２】
前記ビット設定手段は、メモリへのアクセス毎に前記第１メモリと第２メモリに設定する反転制御ビットを交互に入れ替えることを特徴とする請求項１記載の二重化プロセッサ装置。
【請求項３】
前記第１プロセッサと第２プロセッサの今回値データを比較するとともに、前記第１メモリと第２メモリから読み出した前回値データを比較する比較器を有し、
前記比較器による前回値データの比較結果が正常である場合に、前記ビット設定手段は前記反転制御ビットの値を反転し、前記比較器による今回値データの比較結果が正常である場合に、前記書込み制御手段は前記反転制御ビットのビット状態に基づいて、前記第１メモリと第２メモリの一方には今回値データをそのまま書き込み、他方には今回値データの反転データを書き込むことを特徴とする請求項１又は２記載の二重化プロセッサ装置。
【請求項４】
前記第１メモリと第２メモリから読み出した前回値データを比較する比較器を有し、
前記比較器による前回値データの比較結果が正常である場合に、前記ビット設定手段は前記反転制御ビットの値を反転し、前記書込み制御手段は前記第１メモリと第２メモリから読み出した前回値データの反転データをそれぞれのメモリに書き戻すことを特徴とする請求項１又は２記載の二重化プロセッサ装置。
【請求項５】
外部へのデータ出力時には、前記第１プロセッサと第２プロセッサの一方のデータを選択し、外部からのデータ入力時には、前記第１プロセッサと第２プロセッサの両方を選択する選択器を有することを特徴とする請求項１乃至４のいずれかに記載の二重化プロセッサ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサが第１プロセッサ及び第２プロセッサにより二重化され、これら第１プロセッサ及び第２プロセッサにそれぞれ第１メモリ及び第２メモリが設けられた二重化プロセッサ装置に関するものである。
【背景技術】
【０００２】
プロセッサ装置の故障検出率を高めた高信頼性を有する分野においては、プロセッサを二重化構成とし、この２つのプロセッサの演算結果が一致するか否かを比較することにより、外来ノイズの影響や、故障初期に発生するプロセッサの一過性の演算エラーを検出することができるようにしている。
【０００３】
図３は、従来の二重化プロセッサ装置の構成図である。
図３で、プロセッサは、第１プロセッサ１と第２プロセッサ２で二重化されており、メモリは、第１メモリ３と第２メモリ４で二重化されている。
第１プロセッサ１は第１メモリ３に接続され、第２プロセッサ２は第２メモリ４に接続される。
第１プロセッサ１と第２プロセッサ２は同一の制御演算を行っている。
第１メモリ（メモリｄｉｒｅｃｔ）３は、常に第１プロセッサの出力値を直接書き込み保存する。一方、第２メモリ（メモリｉｎｖｅｒｓｅ）４は、常に第２プロセッサの出力値を反転して書き込み保存する。このように、プロセッサの出力値を直接データ（非反転データ）と反転データとして組み合わせて保存して扱うことにより、メモリの故障検出率を高めることができる。
【０００４】
比較器５は、第１プロセッサ１と第２プロセッサ２の出力値を比較しており、比較結果が一致すれば制御演算は正常であると判断し、比較結果が一致しなければ制御演算は異常であると判断し、エラー検出結果を出力する。
選択器６は、内部バス、バックプレーンバス等の外部入出力装置への接続手段７と接続され、外部へのデータ出力時には第１プロセッサ１と第２プロセッサ２の一方のデータを出力し、外部からのデータ入力時には第１プロセッサ１と第２プロセッサ２のそれぞれにデータを供給するように選択する。
【０００５】
２つのプロセッサから出力される演算結果を照合し演算エラーを検出する二重化プロセッサ装置の構成を示したものとして、例えば特許文献１に記載されたものがあった。
【特許文献１】特開平６−２４２９７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、図３の従来例では次の問題点があった。
プロセッサの通常動作時にメモリに書き込まれるデータがランダムなパターンになるメモリ領域は、メモリでプロセッサの出力値を非反転データと反転データとして組み合わせて保存して扱うことにより、メモリセルのスタック故障を高確度で検出することができる。
しかし、通常動作中には“０”あるいは“１”で固定され、データが変動しないメモリセルであって、緊急動作時にデータを変動させる必要があるメモリセルの場合、メモリセルのスタック故障が内在していても検出することができないので、緊急時にデータの変更が行えず、本来実行しなけばならないサービスを行えないという問題点があった。
【０００７】
これを補うためには、自己診断プログラムにおいて強制的にメモリのデータを一時的に反転させる必要があるが、この診断をソフトウェアで実現することは複雑である。
また、自己診断中は本来のサービスを停止させることが必要であり、メモリ容量が増大すると自己診断時間が長くなるため、システム動作に緊急性、リアルタイム性を要求されるような場合に必要なスループットが得られないという問題点があった。
【０００８】
本発明は上述した問題点を解決するためになされたものであり、通常時変動しないメモリセルであっても、メモリセルのスタック故障を故障発生からより短時間に検出することができる二重化プロセッサ装置を実現することを目的とする。
【課題を解決するための手段】
【０００９】
このような課題を達成するために、本発明は次のとおりの構成になっている。
（１）プロセッサが第１プロセッサと第２プロセッサにより二重化され、これら第１プロセッサと第２プロセッサにそれぞれ第１メモリと第２メモリが設けられた二重化プロセッサ装置において、
前記第１メモリと第２メモリに対して、データをそのまま書き込むか反転して書き込むかを指定する反転制御ビットをそれぞれ設定し、前記第１メモリと第２メモリに設定する前記反転制御ビットのビット状態は互いに反転関係にし、前記第１メモリと第２メモリに設定する前記反転制御ビットを交互に入れ替えるビット設定手段と、
前記反転制御ビットのビット状態に基づいて、前記第１メモリと第２メモリの一方には非反転データを書き込み、他方には反転データを書き込む書込み制御手段と、
を有することを特徴とする二重化プロセッサ装置。
【００１０】
（２）前記ビット設定手段は、メモリへのアクセス毎に前記第１メモリと第２メモリに設定する反転制御ビットを交互に入れ替えることを特徴とする（１）記載の二重化プロセッサ装置。
【００１１】
（３）前記第１プロセッサと第２プロセッサの今回値データを比較するとともに、前記第１メモリと第２メモリから読み出した前回値データを比較する比較器を有し、
前記比較器による前回値データの比較結果が正常である場合に、前記ビット設定手段は前記反転制御ビットの値を反転し、前記比較器による今回値データの比較結果が正常である場合に、前記書込み制御手段は前記反転制御ビットのビット状態に基づいて、前記第１メモリと第２メモリの一方には今回値データをそのまま書き込み、他方には今回値データの反転データを書き込むことを特徴とする（１）又は（２）記載の二重化プロセッサ装置。
【００１２】
（４）前記第１メモリと第２メモリから読み出した前回値データを比較する比較器を有し、
前記比較器による前回値データの比較結果が正常である場合に、前記ビット設定手段は前記反転制御ビットの値を反転し、前記書込み制御手段は前記第１メモリと第２メモリから読み出した前回値データの反転データをそれぞれのメモリに書き戻すことを特徴とする（１）又は（２）記載の二重化プロセッサ装置。
【００１３】
（５）外部へのデータ出力時には、前記第１プロセッサと第２プロセッサの一方のデータを選択し、外部からのデータ入力時には、前記第１プロセッサと第２プロセッサの両方を選択する選択器を有することを特徴とする（１）乃至（４）のいずれかに記載の二重化プロセッサ装置。
【発明の効果】
【００１４】
本発明によれば次のような効果がある。
二重化されたメモリの一方には非反転データを書き込み、他方には反転データを書き込み、それぞれのデータを排他的なデータで保存させ、メモリにリード／ライトアクセスするタイミングでその排他的データを交互に入れ替えることにより、通常時変動しないメモリセルであってもメモリセルのスタック故障を検出することが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を用いて本発明を詳細に説明する。
図１は本発明の一実施例を示す構成図である。前出の図と同一のものは同一符号を付ける。
図１で、プロセッサは、第１プロセッサ１１と第２プロセッサ１２で二重化されており、メモリは、第１メモリ１３と第２メモリ１４で二重化されている。
第１プロセッサ１１は第１メモリ１３に接続され、第２プロセッサ１２は第２メモリ１４に接続される。
第１プロセッサ１１と第２プロセッサ１２は同一の制御演算を行っており、第１メモリ１３と第２メモリ１４の一方には非反転データを書き込み、他方には反転データを書き込み、それぞれのデータを排他的なデータで保存させる。
メモリにリード／ライトアクセスするタイミングで、第１メモリ１３と第２メモリ１４のうち非反転データを書き込んでいた方には反転データを書き込み、反転データを書き込んでいた方には非反転データを書き込み、排他的なデータを交互に入れ替える。
これにより従来は通常時変動しないメモリセルであってもメモリにリード／ライトアクセスするタイミングで変動させることができ、メモリセルのスタック故障を故障発生からより短時間に検出することができる。よって、緊急時にデータ変動が行えず、プラントを停止させる等の本来実行しなければならないサービスを行えないという問題が解決される。
【００１６】
プロセッサからメモリへのライトアクセスは、第１プロセッサ１１と第２プロセッサ１２からのライトアクセスの同期を取り、両アクセスが揃い比較器１５で書き込みデータ（今回値データ）の比較を行い、異常がなかった場合に行う。
先ず、第１メモリ１３と第２メモリ１４の書き込み番地の前回値データをそれぞれ読み出し、比較器１５により比較する。第１メモリ１３と第２メモリ１４には排他的なデータが保存されているので、前回値データが互いに排他的関係にある場合に比較器１５による比較結果は正常であると判断される。比較結果が正常であれば、ビット設定手段１６、１７は、反転制御ビット１８、１９をそれぞれ反転させ、書込み制御手段２０、２１は、反転制御ビット１８、１９のビット状態に基づいて、プロセッサからの書き込みデータを一方は非反転データとして、他方は反転データとしてメモリへ書き込む。
例えば、反転制御ビット１８、１９が“０”の場合は非反転データとして、反転制御ビット１８、１９が“１”の場合は反転データとして取り扱い、書込み制御手段２０、２１は反転制御ビット１８、１９のビット状態に基づいたデータ形式でメモリへ書き込む。
このように、第１メモリ１３と第２メモリ１４を非反転データ用、反転データ用と固定せずにメモリへのアクセス毎にデータ保存形式を非反転データと反転データで交互に入れ替える。
【００１７】
プロセッサからメモリへのリードアクセスは、第１プロセッサ１１と第２プロセッサ１２からのリードアクセスの同期を取り、第１メモリ１３と第２メモリ１４の読み出し番地の前回値データをそれぞれ読み出し、比較器１５により比較する。第１メモリ１３と第２メモリ１４には排他的なデータが保存されているので、前回値データが互いに排他的関係にある場合に比較器１５による比較結果は正常であると判断される。比較結果が正常であれば、ビット設定手段１６、１７は、反転制御ビット１８、１９をそれぞれ反転させ、書込み制御手段２０、２１は、第１メモリ１３と第２メモリ１４から読み出した前回値データの反転データをそれぞれのメモリに書き戻す。
【００１８】
第１プロセッサ１１と第２プロセッサ１２の書き込みデータの比較器１５による比較結果が異常、あるいは第１メモリ１３と第２メモリ１４から読み出された前回値データの比較器１５による比較結果が異常である場合には比較器１５はエラー検出結果を出力し、プラントを停止させる等、システムとして適切な動作処理を行う。
【００１９】
選択器６は、内部バス、バックプレーンバス等の外部入出力装置への接続手段７と接続され、外部へのデータ出力時には第１プロセッサ１１と第２プロセッサ１２の一方のデータを出力し、外部からのデータ入力時には第１プロセッサ１１と第２プロセッサ１２のそれぞれにデータを供給するように選択する。
【００２０】
この例では、メモリへのリード／ライトアクセス毎に第１メモリ１３と第２メモリ１４のデータ保存形式を非反転データと反転データで交互に入れ替えているが、アクセス毎でなく一定期間経過後に行う処理としてもよい。
また、比較器１５は、プロセッサのデータを比較する比較器と、メモリから読み出したデータを比較する比較器とを別構成としてもよい。
【００２１】
さらに、この例では、第１プロセッサ１１、第２プロセッサ１２から第１メモリ１３、第２メモリ１４へのリード／ライトアクセスを行うことにより、第１プロセッサ１１と第２プロセッサ１２の同期を取り比較器１５によるエラー検出を行っているが、第１プロセッサ１１と第１メモリ１３、第２プロセッサ１２と第２メモリ１４はそれぞれ非同期にアクセスを行い、外部出力装置へのアクセスを行う時に第１プロセッサ１１と第２プロセッサ１２の同期を取り比較器１５によるエラー検出を行う構成とすることもできる。
【００２２】
図２は本発明の構成要素であるメモリのビット構成例を示した図であり、図２（ａ）は図１の第１メモリ１３のビット構成例、図２（ｂ）は図１の第２メモリ１４のビット構成例である。
図２（ａ）、（ｂ）は、データ（３２ビット）３０、３１にＥＣＣ（Error Correcting Code）チェックビット（７ビット）３２、３３と反転制御ビット（１ビット）１８、１９を付加したものである。
第１メモリ１３と第２メモリ１４は、それぞれ１６ビットのメモリ素子３４〜３６、３７〜３９を３個ずつ用いて構成されている。
第１メモリ１３と第２メモリ１４のそれぞれのデータ３０、３１、ＥＣＣチェックビット３２、３３及び反転制御ビット１８、１９は全て排他的な値で保持される。
【００２３】
この例では、ＥＣＣチェックビット３２、３３と反転制御ビット１８、１９は第１メモリ１３用と第２メモリ１４用にそれぞれメモリ素子３６、３９を用いているが、１６ビットのメモリ素子ひとつに第１メモリ１３用と第２メモリ１４用のＥＣＣチェックビット３２、３３と反転制御ビット１８、１９をそれぞれ構成してもよい。
また、メモリ素子は１６ビット以外のものを用いてもよい。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施例を示す構成図である。
【図２】本発明の構成要素であるメモリのビット構成例を示した図である。
【図３】従来の二重化プロセッサ装置の構成図である。
【符号の説明】
【００２５】
６  選択器
７  外部入出力装置への接続手段
１１  第１プロセッサ
１２  第２プロセッサ
１３  第１メモリ
１４  第２メモリ
１５  比較器
１６、１７  ビット設定手段
１８、１９  反転制御ビット
２０、２１  書込み制御手段
【図１】
2006058982.tif 000003
【図２】
2006058982.tif 000004
【図３】
2006058982.tif 000005