(57)【要約】【課題】プロセッサ及びメモリを多重化することなく、従来よりも単純なソフトウェア制御によりビットエラーを検出可能な技術を提供する。【解決手段】複数ビットエラー検出装置１０Ａは、一つのＭＰＵ１１と、このＭＰＵによりデータのリード／ライト可能に接続されるメモリ１２との間でデータを入出力する入出力部１３を備える装置であり、メモリに保持される、ユーザプログラム２２を制御する制御部４２、インタプリタ２５を制御する制御部４３及び制御データ５４の入出力を制御する制御部４４と、第１のインタプリタ２５ａへ返された演算処理結果の解釈結果と第２のインタプリタ２５ｂへ返された演算処理結果の解釈結果とを比較する比較部４６，５６と、比較結果に基づいて複数ビットエラーの有無を判断し、複数ビットエラーが無い場合に制御データ５４の出力を許可する複数ビットエラー検出部３１を備える。【選択図】  図５
2013225213.tif 000002
【特許請求の範囲】
【請求項１】
演算処理を実行する一つのプロセッサと、この一つのプロセッサによってデータの書き込みおよび読み出しが可能に接続される少なくとも一つの記憶装置とデータの入出力を行う入出力部とを具備する演算処理装置において前記記憶装置のビットエラーを検出する装置であり、
第１のコンパイラで作成された前記記憶装置に保持される第１のインタプリタを制御する手段と、
前記第１のコンパイラとコンパイラ方式が異なる第２のコンパイラで作成された前記記憶装置に保持される第２のインタプリタを制御する手段と、
前記第１のインタプリタおよび前記第２のインタプリタからそれぞれ受け取ったデータを演算処理し、演算処理結果を前記第１のインタプリタおよび前記第２のインタプリタへそれぞれ返す前記記憶装置に保持されるユーザプログラムを制御する手段と、
前記ユーザプログラムから前記第１のインタプリタへ返された演算処理結果を解釈した結果と前記ユーザプログラムから前記第２のインタプリタへ返された演算処理結果を解釈した結果とを比較する比較処理手段と、
前記比較処理手段を制御する手段と、
前記入出力部から入力されたデータおよび前記第１のインタプリタへ返された演算処理結果を解釈した結果を第１の制御データとして前記記憶装置に保持し、前記入出力部から入力されたデータを前記第１の制御データとして前記第１のインタプリタへ与え、前記第１のインタプリタへ返された演算処理結果を解釈した結果を前記第１の制御データとして前記比較処理手段へ与え、データ出力の許可が与えられた場合に前記記憶装置に保持される前記第１の制御データを前記入出力部へ与える第１の制御データ入出力制御手段と、
前記入出力部から入力されたデータおよび前記第２のインタプリタへ返された演算処理結果を解釈した結果を第２の制御データとして前記記憶装置に保持し、前記入出力部から入力されたデータを前記第２の制御データとして前記第２のインタプリタへ与え、前記第２のインタプリタへ返された演算処理結果を解釈した結果を前記第２の制御データとして前記比較処理手段へ与え、データ出力の許可が与えられた場合に前記記憶装置に保持される前記第２の制御データを前記入出力部へ与える第２の制御データ入出力制御手段と、
前記比較処理手段の比較結果に基づいて、複数ビットエラーの有無を判断し、複数ビットエラーが存在しない場合には、前記第１の制御データ入出力制御手段および前記第２の制御データ入出力制御手段の一方にデータ出力の許可を与える手段と、を具備することを特徴とするビットエラー検出装置。
【請求項２】
前記比較処理手段は、冗長化されており、少なくとも二つの比較処理手段が、前記ユーザプログラムから前記第１のインタプリタへ返された演算処理結果を解釈した結果と前記ユーザプログラムから前記第２のインタプリタへ返された演算処理結果を解釈した結果とを比較するように構成されることを特徴とする請求項１記載のビットエラー検出装置。
【請求項３】
前記第１の制御データ入出力制御手段および前記第２の制御データ入出力制御手段は、それぞれ、Ａ系統とＢ系統とに二重化されており、
前記第１の制御データ入出力制御手段は、前記入出力部から入力されたデータおよび前記第１のインタプリタへ返された演算処理結果を解釈した結果を、前記Ａ系統でのデータ処理に使用する第１のＡ系制御データと前記Ｂ系統でのデータ処理に使用する第１のＢ系制御データとして前記記憶装置に保持し、前記入出力部から入力されたデータを前記第１のＡ系制御データおよび前記第１のＢ系制御データとして前記第１のインタプリタへ、前記第１のインタプリタへ返された演算処理結果を解釈した結果を前記第１のＡ系制御データおよび前記第１のＢ系制御データとして前記比較処理手段へ与え、データ出力の許可が与えられた場合に前記記憶装置に保持される前記第１のＡ系制御データおよび前記第１のＢ系制御データの一方を前記入出力部へ与えるように構成される一方、
前記第２の制御データ入出力制御手段は、前記入出力部から入力されたデータおよび前記第２のインタプリタへ返された演算処理結果を解釈した結果を、前記Ａ系統でのデータ処理に使用する第２のＡ系制御データと前記Ｂ系統でのデータ処理に使用する第２のＢ系制御データとして前記記憶装置に保持し、前記入出力部から入力されたデータを前記第２のＡ系制御データおよび前記第２のＢ系制御データとして前記第２のインタプリタへ、前記第２のインタプリタへ返された演算処理結果を解釈した結果を前記第２のＡ系制御データおよび前記第２のＢ系制御データとして前記比較処理手段へ与え、データ出力の許可が与えられた場合に前記記憶装置に保持される前記第２のＡ系制御データおよび前記第２のＢ系制御データの一方を前記入出力部へ与えるように構成され、
前記複数ビットエラーの有無を判断する手段は、前記比較処理手段が判断した前記第１のＡ系制御データ、前記第１のＢ系制御データ、前記第２のＡ系制御データおよび前記第２のＢ系制御データの比較結果と、前記プロセッサに読み出される前記第１のＡ系制御データ、前記第１のＢ系制御データ、前記第２のＡ系制御データおよび前記第２のＢ系制御データの比較結果とエラーの有無および生じているエラーの内容とを関連付ける情報とに基づいて、前記エラーの有無および生じているエラーの内容を特定するように構成されることを特徴とする請求項１記載の複数ビットエラー検出装置。
【請求項４】
前記第１のコンパイラおよび前記第２のコンパイラとコンパイラ方式が異なる第３のコンパイラで作成された前記記憶装置に保持される第３のインタプリタを制御する手段と、
前記入出力部から入力されたデータおよび前記第３のインタプリタへ返された演算処理結果を解釈した結果を第３の制御データとして前記記憶装置に保持し、前記入出力部から入力されたデータを前記第３の制御データとして前記第３のインタプリタへ与え、前記第３のインタプリタへ返された演算処理結果を解釈した結果を前記第３の制御データとして前記比較処理手段へ与え、データ出力の許可が与えられた場合に前記記憶装置に保持される前記第３の制御データを前記入出力部へ与える第３の制御データ入出力制御手段と、をさらに具備し、
前記ユーザプログラム制御手段は、前記ユーザプログラムが前記第１のインタプリタおよび前記第２のインタプリタに加え、さらに、前記第３のインタプリタから受け取ったデータについても、演算処理し、演算処理結果を前記第３のインタプリタへ返すように制御する手段として、
前記比較処理手段を制御する手段は、前記比較処理手段が前記ユーザプログラムから前記第１のインタプリタへ返された演算処理結果を解釈した結果と、前記ユーザプログラムから前記第２のインタプリタへ返された演算処理結果を解釈した結果と、前記ユーザプログラムから前記第３のインタプリタへ返された演算処理結果を解釈した結果とを比較するように制御する手段として、
前記データ出力の許可を与える手段は、前記比較処理手段の比較結果に基づいて、複数ビットエラーの有無を判断し、複数ビットエラーが存在しない場合には、前記第１の制御データ入出力制御手段、前記第２の制御データ入出力制御手段および前記第３の制御データ入出力制御手段の何れか一つにデータ出力の許可を与える手段として、構成されることを特徴とする請求項１記載のビットエラー検出装置。
【請求項５】
前記データ出力の許可を与える手段は、前記比較処理手段が比較する三つの解釈結果のうち一つは異なるが残りの二つは同じであると判断された場合、同じであると判断された二つの解釈結果が出力されるように、前記第１の制御データ入出力制御手段、前記第２の制御データ入出力制御手段および前記第３の制御データ入出力制御手段の何れか一つに対して、データ出力の許可を与えるように構成されることを特徴とする請求項４記載のビットエラー検出装置。
【請求項６】
前記比較処理手段は、前記記憶装置に保持され、前記ユーザプログラムから前記第１のインタプリタへ返された演算処理結果を解釈した結果と前記ユーザプログラムから前記第２のインタプリタへ返された演算処理結果を解釈した結果とを比較する比較プログラムであり、
前記比較処理手段を制御する手段は、前記プロセッサにより実現されることを特徴とする請求項１から５の何れか１項に記載のビットエラー検出装置。
【請求項７】
前記比較処理手段および前記比較処理手段を制御する手段は、前記入出力部に設けられる比較器であることを特徴とする請求項１から５の何れか１項に記載のビットエラー検出装置。
【請求項８】
前記記憶装置は複数であり、
前記記憶装置の各々には、前記ユーザプログラムと、それぞれコンパイラ方式が異なるコンパイラで作成されたインタプリタと、が保持されることを特徴とする請求項１記載のビットエラー検出装置。
【請求項９】
演算処理を実行する一つのプロセッサと、この一つのプロセッサによってデータの書き込みおよび読み出しが可能に接続される少なくとも一つの記憶装置とデータの入出力を行う入出力部とを具備する演算処理装置に、複数のデータを比較する比較部を設けた複数ビットエラー検出装置を用いて、前記記憶装置の複数ビットエラーを検出する方法であり、
前記プロセッサが、前記記憶装置に保持される、第１のコンパイラで作成された第１のインタプリタ、前記第１のコンパイラとコンパイラ方式が異なる第２のコンパイラで作成された第２のインタプリタ並びに前記第１のインタプリタおよび前記第２のインタプリタから受け取ったデータをそれぞれ演算処理して得られた演算処理結果を、前記第１のインタプリタおよび前記第２のインタプリタへそれぞれ返すユーザプログラムを制御する制御ステップと、
前記比較部が、前記第１のインタプリタへ返された演算処理結果を解釈した結果と、前記第２のインタプリタへ返された演算処理結果を解釈した結果とを比較する比較ステップと、
前記プロセッサが、前記比較ステップで得られた比較結果に基づいて、複数ビットエラーの有無を判断するステップと、
前記プロセッサが、前記複数ビットエラーが存在しない場合に、前記第１のインタプリタへ返された演算処理結果を解釈した結果および前記第２のインタプリタへ返された演算処理結果を解釈した結果の一方を出力するステップと、を具備することを特徴とするビットエラー検出方法。
【請求項１０】
演算処理を実行する一つのプロセッサと、この一つのプロセッサによってデータの書き込みおよび読み出しが可能に接続される少なくとも一つの記憶装置とデータの入出力を行う入出力部とを具備する演算処理装置を、前記記憶装置の複数ビットエラーを検出する装置として機能させるプログラムであり、前記演算処理装置を、
第１のコンパイラで作成された前記記憶装置に保持される第１のインタプリタを制御する手段と、
前記第１のコンパイラとコンパイラ方式が異なる第２のコンパイラで作成された前記記憶装置に保持される第２のインタプリタを制御する手段と、
前記第１のインタプリタおよび前記第２のインタプリタからそれぞれ受け取ったデータを演算処理し、演算処理結果を前記第１のインタプリタおよび前記第２のインタプリタへそれぞれ返す前記記憶装置に保持されるユーザプログラムを制御する手段と、
前記ユーザプログラムから前記第１のインタプリタへ返された演算処理結果を解釈した結果と前記ユーザプログラムから前記第２のインタプリタへ返された演算処理結果を解釈した結果とを比較する比較処理手段と、
前記比較処理手段を制御する手段と、
前記入出力部から入力されたデータおよび前記第１のインタプリタへ返された演算処理結果を解釈した結果を第１の制御データとして前記記憶装置に保持し、前記入出力部から入力されたデータを前記第１の制御データとして前記第１のインタプリタへ与え、前記第１のインタプリタへ返された演算処理結果を解釈した結果を前記第１の制御データとして前記比較処理手段へ与え、データ出力の許可が与えられた場合に前記記憶装置に保持される前記第１の制御データを前記入出力部へ与える第１の制御データ入出力制御手段と、
前記入出力部から入力されたデータおよび前記第２のインタプリタへ返された演算処理結果を解釈した結果を第２の制御データとして前記記憶装置に保持し、前記入出力部から入力されたデータを前記第２の制御データとして前記第２のインタプリタへ与え、前記第２のインタプリタへ返された演算処理結果を解釈した結果を前記第２の制御データとして前記比較処理手段へ与え、データ出力の許可が与えられた場合に前記記憶装置に保持される前記第２の制御データを前記入出力部へ与える第２の制御データ入出力制御手段と、
前記比較処理手段の比較結果に基づいて、複数ビットエラーの有無を判断し、複数ビットエラーが存在しない場合には、前記第１の制御データ入出力制御手段および前記第２の制御データ入出力制御手段の一方にデータ出力の許可を与える手段と、を具備する装置として機能させることを特徴とするビットエラー検出プログラム。
【請求項１１】
演算処理を実行する一つのプロセッサと、この一つのプロセッサによってデータの書き込みおよび読み出しが可能に接続される少なくとも一つの記憶装置とデータの入出力を行う入出力部とを具備し、前記入出力部に複数のデータを比較する比較器を設けた演算処理装置を、前記記憶装置の複数ビットエラーを検出する装置として機能させるプログラムであり、前記演算処理装置を、
第１のコンパイラで作成された前記記憶装置に保持される第１のインタプリタを制御する手段と、
前記第１のコンパイラとコンパイラ方式が異なる第２のコンパイラで作成された前記記憶装置に保持される第２のインタプリタを制御する手段と、
前記第１のインタプリタおよび前記第２のインタプリタからそれぞれ受け取ったデータを演算処理し、演算処理結果を前記第１のインタプリタおよび前記第２のインタプリタへそれぞれ返す前記記憶装置に保持されるユーザプログラムを制御する手段と、
前記入出力部から入力されたデータおよび前記第１のインタプリタへ返された演算処理結果を解釈した結果を第１の制御データとして前記記憶装置に保持し、前記入出力部から入力されたデータを前記第１の制御データとして前記第１のインタプリタへ与え、前記第１のインタプリタへ返された演算処理結果を解釈した結果を前記第１の制御データとして前記比較器へ与え、データ出力の許可が与えられた場合に前記記憶装置に保持される前記第１の制御データを前記入出力部へ与える第１の制御データ入出力制御手段と、
前記入出力部から入力されたデータおよび前記第２のインタプリタへ返された演算処理結果を解釈した結果を第２の制御データとして前記記憶装置に保持し、前記入出力部から入力されたデータを前記第２の制御データとして前記第２のインタプリタへ与え、前記第２のインタプリタへ返された演算処理結果を解釈した結果を前記第２の制御データとして前記比較器へ与え、データ出力の許可が与えられた場合に前記記憶装置に保持される前記第２の制御データを前記入出力部へ与える第２の制御データ入出力制御手段と、
前記比較器の比較結果に基づいて、複数ビットエラーの有無を判断し、複数ビットエラーが存在しない場合には、前記第１の制御データ入出力制御手段および前記第２の制御データ入出力制御手段の一方にデータ出力の許可を与える手段とを具備し、
前記比較器は、前記ユーザプログラムから前記第１のインタプリタへ返された演算処理結果を解釈した結果と前記ユーザプログラムから前記第２のインタプリタへ返された演算処理結果を解釈した結果とを比較するように構成された装置として機能させることを特徴とするビットエラー検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビットエラーを検出するビットエラー検出装置、ビットエラー検出方法およびビットエラー検出プログラムに関する。
【背景技術】
【０００２】
メモリのビットエラーを検出する技術としては、２ビットエラーまでであれば、ＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔ）機能を用いて検出されることが多い。一方、２ビットを超えるビットエラーを検出する場合には、例えば、特開２００６−１１５７６号（特許文献１）に記載されるように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）およびメモリを多重化し、ＣＰＵのアイドル時間等にメモリの内容を順次読み出し（リードし）、読み出したデータを比較する技術が用いられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１１５７６号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載される技術を用いた複数ビットエラー検出装置では、ＣＰＵおよびメモリを多重化しなければいけないため、ＣＰＵおよびメモリが多重化されていない装置と比較してコストがかかる。また、メモリの複数ビットエラー検出は、ＣＰＵのアイドル時間に行うため、ソフトウェアによる制御が複雑になり、ソフトウェアの設計が困難になる、という課題がある。
【０００５】
本発明は、上記課題を解決するためになされたものであり、ＣＰＵ等の演算処理ユニットおよびメモリを多重化することなく、従来よりも、単純なソフトウェア制御によって実現可能なビットエラー検出装置、ビットエラー検出方法およびビットエラー検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の実施形態に係るビットエラー検出装置は、上述した課題を解決するため、演算処理を実行する一つのプロセッサと、この一つのプロセッサによってデータの書き込みおよび読み出しが可能に接続される少なくとも一つの記憶装置とデータの入出力を行う入出力部とを具備する演算処理装置において前記記憶装置の複数ビットエラーを検出する装置であり、第１のコンパイラで作成された前記記憶装置に保持される第１のインタプリタを制御する手段と、前記第１のコンパイラとコンパイラ方式が異なる第２のコンパイラで作成された前記記憶装置に保持される第２のインタプリタを制御する手段と、前記第１のインタプリタおよび前記第２のインタプリタからそれぞれ受け取ったデータを演算処理し、演算処理結果を前記第１のインタプリタおよび前記第２のインタプリタへそれぞれ返す前記記憶装置に保持されるユーザプログラムを制御する手段と、前記ユーザプログラムから前記第１のインタプリタへ返された演算処理結果を解釈した結果と前記ユーザプログラムから前記第２のインタプリタへ返された演算処理結果を解釈した結果とを比較する比較処理手段と、前記比較処理手段を制御する手段と、前記入出力部から入力されたデータおよび前記第１のインタプリタへ返された演算処理結果を解釈した結果を第１の制御データとして前記記憶装置に保持し、前記入出力部から入力されたデータを前記第１の制御データとして前記第１のインタプリタへ与え、前記第１のインタプリタへ返された演算処理結果を解釈した結果を前記第１の制御データとして前記比較処理手段へ与え、データ出力の許可が与えられた場合に前記記憶装置に保持される前記第１の制御データを前記入出力部へ与える第１の制御データ入出力制御手段と、前記入出力部から入力されたデータおよび前記第２のインタプリタへ返された演算処理結果を解釈した結果を第２の制御データとして前記記憶装置に保持し、前記入出力部から入力されたデータを前記第２の制御データとして前記第２のインタプリタへ与え、前記第２のインタプリタへ返された演算処理結果を解釈した結果を前記第２の制御データとして前記比較処理手段へ与え、データ出力の許可が与えられた場合に前記記憶装置に保持される前記第２の制御データを前記入出力部へ与える第２の制御データ入出力制御手段と、前記比較処理手段の比較結果に基づいて、複数ビットエラーの有無を判断し、複数ビットエラーが存在しない場合には、前記第１の制御データ入出力制御手段および前記第２の制御データ入出力制御手段の一方にデータ出力の許可を与える手段と、を具備することを特徴とする。
【０００７】
本発明の実施形態に係るビットエラー検出方法は、上述した課題を解決するため、演算処理を実行する一つのプロセッサと、この一つのプロセッサによってデータの書き込みおよび読み出しが可能に接続される少なくとも一つの記憶装置とデータの入出力を行う入出力部とを具備する演算処理装置に、複数のデータを比較する比較部を設けた複数ビットエラー検出装置を用いて、前記記憶装置の複数ビットエラーを検出する方法であり、前記プロセッサが、前記記憶装置に保持される、第１のコンパイラで作成された第１のインタプリタ、前記第１のコンパイラとコンパイラ方式が異なる第２のコンパイラで作成された第２のインタプリタ並びに前記第１のインタプリタおよび前記第２のインタプリタから受け取ったデータをそれぞれ演算処理して得られた演算処理結果を、前記第１のインタプリタおよび前記第２のインタプリタへそれぞれ返すユーザプログラムを制御する制御ステップと、前記比較部が、前記第１のインタプリタへ返された演算処理結果を解釈した結果と、前記第２のインタプリタへ返された演算処理結果を解釈した結果とを比較する比較ステップと、前記プロセッサが、前記比較ステップで得られた比較結果に基づいて、複数ビットエラーの有無を判断するステップと、前記プロセッサが、前記複数ビットエラーが存在しない場合に、前記第１のインタプリタへ返された演算処理結果を解釈した結果および前記第２のインタプリタへ返された演算処理結果を解釈した結果の一方を出力するステップと、を具備することを特徴とする。
【０００８】
本発明の実施形態に係るビットエラー検出プログラムは、上述した課題を解決するため、演算処理を実行する一つのプロセッサと、この一つのプロセッサによってデータの書き込みおよび読み出しが可能に接続される少なくとも一つの記憶装置とデータの入出力を行う入出力部とを具備する演算処理装置を、前記記憶装置の複数ビットエラーを検出する装置として機能させるプログラムであり、前記演算処理装置を、第１のコンパイラで作成された前記記憶装置に保持される第１のインタプリタを制御する手段と、前記第１のコンパイラとコンパイラ方式が異なる第２のコンパイラで作成された前記記憶装置に保持される第２のインタプリタを制御する手段と、前記第１のインタプリタおよび前記第２のインタプリタからそれぞれ受け取ったデータを演算処理し、演算処理結果を前記第１のインタプリタおよび前記第２のインタプリタへそれぞれ返す前記記憶装置に保持されるユーザプログラムを制御する手段と、前記ユーザプログラムから前記第１のインタプリタへ返された演算処理結果を解釈した結果と前記ユーザプログラムから前記第２のインタプリタへ返された演算処理結果を解釈した結果とを比較する比較処理手段と、前記比較処理手段を制御する手段と、前記入出力部から入力されたデータおよび前記第１のインタプリタへ返された演算処理結果を解釈した結果を第１の制御データとして前記記憶装置に保持し、前記入出力部から入力されたデータを前記第１の制御データとして前記第１のインタプリタへ与え、前記第１のインタプリタへ返された演算処理結果を解釈した結果を前記第１の制御データとして前記比較処理手段へ与え、データ出力の許可が与えられた場合に前記記憶装置に保持される前記第１の制御データを前記入出力部へ与える第１の制御データ入出力制御手段と、前記入出力部から入力されたデータおよび前記第２のインタプリタへ返された演算処理結果を解釈した結果を第２の制御データとして前記記憶装置に保持し、前記入出力部から入力されたデータを前記第２の制御データとして前記第２のインタプリタへ与え、前記第２のインタプリタへ返された演算処理結果を解釈した結果を前記第２の制御データとして前記比較処理手段へ与え、データ出力の許可が与えられた場合に前記記憶装置に保持される前記第２の制御データを前記入出力部へ与える第２の制御データ入出力制御手段と、前記比較処理手段の比較結果に基づいて、複数ビットエラーの有無を判断し、複数ビットエラーが存在しない場合には、前記第１の制御データ入出力制御手段および前記第２の制御データ入出力制御手段の一方にデータ出力の許可を与える手段と、を具備する装置として機能させることを特徴とする。
【０００９】
また、本発明の実施形態に係るビットエラー検出プログラムは、上述した課題を解決するため、演算処理を実行する一つのプロセッサと、この一つのプロセッサによってデータの書き込みおよび読み出しが可能に接続される少なくとも一つの記憶装置とデータの入出力を行う入出力部とを具備し、前記入出力部に複数のデータを比較する比較器を設けた演算処理装置を、前記記憶装置の複数ビットエラーを検出する装置として機能させるプログラムであり、前記演算処理装置を、第１のコンパイラで作成された前記記憶装置に保持される第１のインタプリタを制御する手段と、前記第１のコンパイラとコンパイラ方式が異なる第２のコンパイラで作成された前記記憶装置に保持される第２のインタプリタを制御する手段と、前記第１のインタプリタおよび前記第２のインタプリタからそれぞれ受け取ったデータを演算処理し、演算処理結果を前記第１のインタプリタおよび前記第２のインタプリタへそれぞれ返す前記記憶装置に保持されるユーザプログラムを制御する手段と、前記入出力部から入力されたデータおよび前記第１のインタプリタへ返された演算処理結果を解釈した結果を第１の制御データとして前記記憶装置に保持し、前記入出力部から入力されたデータを前記第１の制御データとして前記第１のインタプリタへ与え、前記第１のインタプリタへ返された演算処理結果を解釈した結果を前記第１の制御データとして前記比較器へ与え、データ出力の許可が与えられた場合に前記記憶装置に保持される前記第１の制御データを前記入出力部へ与える第１の制御データ入出力制御手段と、前記入出力部から入力されたデータおよび前記第２のインタプリタへ返された演算処理結果を解釈した結果を第２の制御データとして前記記憶装置に保持し、前記入出力部から入力されたデータを前記第２の制御データとして前記第２のインタプリタへ与え、前記第２のインタプリタへ返された演算処理結果を解釈した結果を前記第２の制御データとして前記比較器へ与え、データ出力の許可が与えられた場合に前記記憶装置に保持される前記第２の制御データを前記入出力部へ与える第２の制御データ入出力制御手段と、前記比較器の比較結果に基づいて、複数ビットエラーの有無を判断し、複数ビットエラーが存在しない場合には、前記第１の制御データ入出力制御手段および前記第２の制御データ入出力制御手段の一方にデータ出力の許可を与える手段とを具備し、前記比較器は、前記ユーザプログラムから前記第１のインタプリタへ返された演算処理結果を解釈した結果と前記ユーザプログラムから前記第２のインタプリタへ返された演算処理結果を解釈した結果とを比較するように構成された装置として機能させることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ＣＰＵおよびメモリを多重化することなく、従来よりも、単純なソフトウェア制御によって、メモリの複数ビットエラーを検出することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る複数ビットエラー検出装置の構成例を示す概略図。
【図２】本発明の実施形態に係る複数ビットエラー検出装置におけるユーザプログラム設定の概略を説明する説明図。
【図３】本発明の実施形態に係る複数ビットエラー検出装置におけるインタプリタ設定の概略を説明する説明図。
【図４】本発明の実施形態に係る複数ビットエラー検出装置の基本的な機能構成を概略的に示した機能ブロック図。
【図５】本発明の実施形態に係る複数ビットエラー検出装置についての第１の実施例（第１の複数ビットエラー検出装置）の構成を示した概略図。
【図６】本発明の実施形態に係る複数ビットエラー検出装置についての第２の実施例（第２の複数ビットエラー検出装置）の構成を示した概略図。
【図７】本発明の実施形態に係る複数ビットエラー検出装置についての第３の実施例（第３の複数ビットエラー検出装置）の構成を示した概略図。
【図８】本発明の実施形態に係る複数ビットエラー検出装置についての第３の実施例（第３の複数ビットエラー検出装置）で判定されるエラーの有無および生じているエラー内容を示した判定図。
【図９】本発明の実施形態に係る複数ビットエラー検出装置についての第４の実施例（第４の複数ビットエラー検出装置）の構成を示した概略図。
【図１０】本発明の実施形態に係る複数ビットエラー検出装置についての第５の実施例（第５の複数ビットエラー検出装置）の構成を示した概略図。
【図１１】本発明の実施形態に係る複数ビットエラー検出装置についての第６の実施例（第６の複数ビットエラー検出装置）の構成を示した概略図。
【図１２】本発明の実施形態に係る複数ビットエラー検出装置についての第７の実施例（第７の複数ビットエラー検出装置）の構成を示した概略図。
【図１３】本発明の実施形態に係る複数ビットエラー検出装置についての第８の実施例（第８の複数ビットエラー検出装置）の構成を示した概略図。
【図１４】本発明の実施形態に係る複数ビットエラー検出装置についての第９の実施例（第９の複数ビットエラー検出装置）の構成を示した概略図。
【図１５】本発明の実施形態に係る複数ビットエラー検出装置についての第１０の実施例（第１０の複数ビットエラー検出装置）の構成を示した概略図。
【図１６】本発明の実施形態に係る複数ビットエラー検出装置についての第１１の実施例（第１１の複数ビットエラー検出装置）の構成を示した概略図。
【図１７】本発明の実施形態に係る複数ビットエラー検出装置についての第１２の実施例（第１２の複数ビットエラー検出装置）の構成を示した概略図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態に係る複数ビットエラー検出装置、複数ビットエラー検出方法および複数ビットエラー検出プログラムについて、添付の図面を参照して説明する。
【００１３】
図１は、本発明の実施形態に係る複数ビットエラー検出装置の一例である複数ビットエラー検出装置１０の構成例を示す概略図である。
【００１４】
複数ビットエラー検出装置１０は、例えば、演算処理を実行するＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、データを格納するメモリ１２と、データの入出力インターフェイスとなる入出力部１３と、を具備する演算処理装置としてのマザーボード１４が、例えば、所定の記憶領域に読み出し可能に格納される複数ビットエラー検出プログラム（図１において、「複数ビットエラー検出ＰＧ」と省略する。）２０を実行することで実現される。
【００１５】
複数ビットエラー検出プログラム２０は、演算処理装置に複数ビットのビットエラーを検出する機能（以下、「複数ビットエラー検出機能」と称する。）を実現させるためのプログラム（ソフトウェア）であり、複数ビットエラー検出装置１０では、ハードウェア資源である演算処理装置としてのマザーボード１４と協働することで、複数ビットエラーを検出する手段としてマザーボード１４を機能させる。
【００１６】
なお、複数ビットエラー検出装置１０のＭＰＵ１１、メモリ１２および入出力部１３は、例えば、図１に示されるように、マザーボード１４上でバスを介して相互に情報伝送可能に接続される。なお、ＭＰＵ１１およびメモリ１２は、マザーボード１４と一体的に構成されているものに限らず、スロット（取付部）への差し込み式、すなわち、着脱自在に構成されていても良い。
【００１７】
ところで、複数ビットエラー検出装置１０が複数ビットエラー検出方法としての複数ビットエラー検出処理手順を実行するに当たっては、複数ビットエラー検出プログラム２０の他、所定の演算処理を実行するユーザプログラムと、人間が記述したプログラム言語等のソースコードをＭＰＵ１１等のプロセッサが処理を実行できる言語であるオブジェクトコードに逐次解釈する処理（以下、「インタプリタ処理」と称する。）を実行するインタプリタを予めメモリ１２に書き込み（ライト）しておく必要がある。すなわち、ユーザプログラム設定およびインタプリタ設定をしておく必要がある。
【００１８】
図２はユーザプログラム設定の概略を説明する説明図であり、図３はインタプリタ設定の概略を説明する説明図である。
【００１９】
複数ビットエラー検出装置１０では、ユーザプログラム設定として、例えば、図２に示されるように、ユーザプログラムのソースコードをオブジェクトコードに変換したもの（以下、単に「ユーザプログラム２２」と称する。）をメモリ１２に書き込む。また、インタプリタ設定として、例えば、図３に示されるように、インタプリタのソースコードをそれぞれ異なるコンパイラ２３，２４を用いて、第１のコンパイラ２３がコンパイルしたもの（以下、「第１のインタプリタ２５ａ」と称する。）および第２のコンパイラ２４がコンパイルしたもの（以下、「第２のインタプリタ２５ｂ」と称する。）を、それぞれ、メモリ１２に書き込む。
【００２０】
図４は、複数ビットエラー検出装置１０の基本的な機能構成を概略的に示した機能ブロック図である。
【００２１】
複数ビットエラー検出装置１０は、図４に示されるように、ハードウェア資源である演算処理装置とソフトウェアである複数ビットエラー検出プログラム２０とが協働することによって、複数ビットエラー検出部３１と、ユーザプログラム実行処理部３２と、インタプリタ処理部３３と、制御データ処理部３４と、比較部３５と、を具備する装置として機能する。
【００２２】
複数ビットエラー検出部３１は、複数ビットエラーの有無を判断する手段であり、ユーザプログラム実行処理部３２、インタプリタ処理部３３、制御データ処理部３４および比較部３５を、それぞれ制御し、予め設定された開始条件、処理実行の手順および終了条件に従った複数ビットエラー検出処理手順を実行して複数ビットエラーを検出する。
【００２３】
ユーザプログラム実行処理部３２は、ユーザプログラムを実行する機能を有し、インタプリタ処理部３３とデータの授受を行い、ユーザプログラムを実行する。
【００２４】
インタプリタ処理部３３は、複数のそれぞれ異なる方式のインタプリタを実行する処理部として構成される。図４に示されるインタプリタ処理部３３は、一例であり、二つのそれぞれ異なる方式のインタプリタを実行する第１のインタプリタ処理部３３ａと第２のインタプリタ処理部３３ｂとを備えている。
【００２５】
制御データ処理部３４は、図１に示すように入出力部１３からメモリに入出力されるデータの入出力を制御する機能と、インタプリタ処理部３３がインタプリタ処理したデータの入出力を制御する機能とを有する。図４に示される制御データ処理部３４は、一例であり、第１のインタプリタ処理部３３ａのインタプリタ方式に対応した第１の制御データ処理部３４ａと、第２のインタプリタ処理部３３ｂのインタプリタ方式に対応した第２の制御データ処理部３４ｂと、を備えている。
【００２６】
比較部３５は、制御データ処理部３４が演算処理した結果を、制御データ処理部３４から二つ以上受け取り、受け取った二つ以上の演算処理結果が一致するか否かを判断する。図４に示される比較部３５は、一例であり、第１の制御データ処理部３４ａから受け取った演算処理結果と第２の制御データ処理部３４ｂから受け取った演算処理結果とを対比する。比較部３５が行った演算処理結果の比較結果は、複数ビットエラー検出部３１へ与えられる。
【００２７】
このように構成される複数ビットエラー検出装置１０の一例として図４に示される複数ビットエラー検出装置１０では、複数ビットエラー検出処理手順として、以下に説明する処理ステップが実行される。
【００２８】
制御データ処理部３４（３４ａ，３４ｂ）が図１に示すようにデータ入出力部１３からデータを受け取ると、第１の制御データ処理部３４ａは受け取ったデータを第１の制御データとしてメモリ１２内に保持する。また、第２の制御データ処理部３４ｂは、第１の制御データ処理部３４ａとは別個に受け取ったデータを第２の制御データとしてメモリ１２内に保持する。そして、第１の制御データ処理部３４ａはメモリ１２内の第１の制御データを第１のインタプリタ処理部３３ａへ与える一方、第２の制御データ処理部３４ｂはメモリ１２内の第２の制御データを第２のインタプリタ処理部３３ｂへ与える。
【００２９】
第１のインタプリタ処理部３３ａは、受け取った第１の制御データを逐次解釈してユーザプログラム実行処理部３２へ与える。第２のインタプリタ処理部３３ｂは、第１のインタプリタ処理部３３ａとは異なる方式で、第２の制御データを解釈してユーザプログラム実行処理部３２へ与える。
【００３０】
ユーザプログラム実行処理部３２は、各インタプリタ処理部３３ａ，３３ｂから解釈された制御データを受け取ると、ユーザプログラムを実行し、実行結果を各インタプリタ処理部３３ａ，３３ｂへ返す。
【００３１】
第１のインタプリタ処理部３３ａは、ユーザプログラム実行処理部３２からユーザプログラムの実行結果を受け取ると、逐次解釈して第１の制御データ処理部３４ａへ与える。第１のインタプリタ処理部３３ａと同様に、第２のインタプリタ処理部３３ｂは、ユーザプログラム実行処理部３２からユーザプログラムの実行結果を受け取ると、逐次解釈して第２の制御データ処理部３４ｂへ与える。
【００３２】
第１の制御データ処理部３４ａは、第１のインタプリタ処理部３３ａから受け取った処理結果を、第２の制御データ処理部３４ｂは、第２のインタプリタ処理部３３ｂから受け取った処理結果を比較部３５へ与える。
【００３３】
比較部３５は、第１の制御データ処理部３４ａから受け取った演算処理結果と第２の制御データ処理部３４ｂから受け取った演算処理結果とを比較し、比較結果を複数ビットエラー検出部３１へ与える。
【００３４】
比較結果が一致した場合、複数ビットエラー検出部３１は、第１の制御データ処理部３４ａと第２の制御データ処理部３４ｂのいずれか一方に対して、入出力部へのデータ出力を許可し、第１の制御データ処理部３４ａの演算処理結果を入出力部へ出力する。一方、比較結果が一致しない場合、複数ビットエラー検出部３１は、メモリへのエラーが発生している、および、インタプリタにバグ（インタプリタ設定時のコンパイラエラー）がある、の少なくとも一方の状態と判断する。
【００３５】
続いて、本発明の実施形態に係る複数ビットエラー検出装置の一例である複数ビットエラー検出装置１０の各実施例について説明する。
【００３６】
＜第１の実施例＞
図５は、複数ビットエラー検出装置１０についての第１の実施例に係る複数ビットエラー検出装置１０Ａの構成を示した概略図である。
【００３７】
ＭＰＵ１１は、メモリ１２に展開された複数ビットエラー検出処理手順の実行に必要なプログラムおよびデータを制御する手段として機能する。すなわち、複数ビットエラー検出装置１０ＡにおけるＭＰＵ１１は、少なくとも、複数ビットエラー検出部３１と、ユーザプログラム２２を制御するユーザプログラム制御部４２と、各インタプリタ２５ａ，２５ｂを独立に制御するインタプリタ制御部４３と、各制御データ５４ａ，５４ｂの入出力（受け渡し）を独立に制御する制御データ入出力制御部４４と、両制御データ５４ａ，５４ｂを比較する比較プログラム５６を制御する比較プログラム制御部４６として機能する。
【００３８】
なお、図５に示されるインタプリタ制御部４３および制御データ入出力制御部４４は、詳細な構成が省略されているが、それぞれ、図４に示されるインタプリタ処理部３３および制御データ処理部３４と同様に、第１のインタプリタ２５ａおよび第１の制御データ５４ａに対応する制御部と、第２のインタプリタ２５ｂおよび第２の制御データ５４ｂに対応する制御部と、を有する構成である。
【００３９】
メモリ１２には、複数ビットエラー検出処理手順の実行に必要なプログラムやデータがロード（読み出し）およびライト（書き込み）される。複数ビットエラー検出装置１０Ａでは、ユーザプログラム２２、インタプリタ２５、制御データ５４および比較プログラム５６が保持され、ＭＰＵ１１がユーザプログラム２２、インタプリタ２５、制御データ５４の入出力および比較プログラム５６を制御することによって、複数ビットエラー検出処理手順が実行される。
【００４０】
複数ビットエラー検出装置１０Ａでは、入出力部１３から入力データが与えられると、制御データ入出力制御部４４としてのＭＰＵ１１が、入出力部１３から与えられた入力データを、それぞれ、第１の制御データ５４ａおよび第２の制御データ５４ｂとしてメモリ１２内にライトする。
【００４１】
続いて、第１のインタプリタ２５ａを制御するインタプリタ制御部４３としてのＭＰＵ１１は、メモリ１２内にライトされた第１の制御データ５４ａをロードし、第１のインタプリタ２５ａが逐次解釈してユーザプログラム２２へ与える。続いて、ユーザプログラム制御部４２としてのＭＰＵ１１は、ユーザプログラム２２を制御してユーザプログラム２２を実行させる。ユーザプログラム２２は、プログラム実行結果を第１のインタプリタ２５ａへ返す。
【００４２】
第１の制御データ５４ａと同様に、第２の制御データ５４ｂについても、第２のインタプリタ２５ｂを制御するインタプリタ制御部４３としてのＭＰＵ１１は、メモリ１２内にライトされた第２の制御データ５４ｂをロードし、第２のインタプリタ２５ｂが逐次解釈してユーザプログラム２２へ与える。続いて、ユーザプログラム制御部４２としてのＭＰＵ１１は、ユーザプログラム２２を制御してユーザプログラム２２を実行させる。ユーザプログラム２２は、プログラム実行結果を第２のインタプリタ２５ｂへ返す。
【００４３】
続いて、第１のインタプリタ２５ａを制御するインタプリタ制御部４３としてのＭＰＵ１１は、第１のインタプリタ２５ａを制御する。第１のインタプリタ２５ａは、実行結果を受け取ると、第１のインタプリタ２５ａへ返された実行結果を逐次解釈し、解釈した結果を第１の制御データ５４ａとしてメモリ１２内にライトする。第２のインタプリタ２５ｂについても、第１のインタプリタ２５ａと同様であり、第２のインタプリタ２５ｂは、インタプリタ制御部４３によって制御され、第２のインタプリタ２５ｂが実行結果を受け取ると、第２のインタプリタ２５ｂへ返された実行結果を逐次解釈し、解釈した結果を第２の制御データ５４ｂとしてメモリ１２内にライトする。
【００４４】
比較プログラム制御部４６としてのＭＰＵ１１は、比較プログラム５６を制御し、第１の制御データ５４ａおよび第２の制御データ５４ｂをリードして両データを比較する。比較部３５が比較した結果（比較データ）は、複数ビットエラー検出部３１としてのＭＰＵ１１が、比較結果の一致判定およびデータ入出力制御に使用される。
【００４５】
複数ビットエラー検出部３１としてのＭＰＵ１１は、第１の制御データ５４ａと第２の制御データ５４ｂとを比較した結果、二つの比較データが一致する場合には、制御データ入出力制御部４４に対してメモリ１２から入出力部１３への制御データの出力を許可する旨の指令を与える。制御データの出力を許可する旨の指令を受けた制御データ入出力制御部４４は、例えば、第１の制御データ５４ａ等の比較した制御データの一つを入出力部１３へ出力する。
【００４６】
一方、第１の制御データ５４ａと第２の制御データ５４ｂとの比較結果が一致しない場合、複数ビットエラー検出部３１としてのＭＰＵ１１は、メモリへのエラーが発生している、および、インタプリタにバグ（インタプリタ設定時のコンパイラエラー）がある、の少なくとも一方の状態にあると判断することができる。
【００４７】
複数ビットエラー検出装置１０Ａ、複数ビットエラー検出装置１０Ａが実行する複数ビットエラー検出処理手順、および、複数ビットエラー検出処理手順をコンピュータに実行させる複数ビットエラー検出プログラムによれば、ＭＰＵ１１等の演算処理ユニットおよびメモリ１２を二重化（多重化）することなく、従来よりも、単純なソフトウェア制御によって複数ビットエラーを検出することができる。
【００４８】
＜第２の実施例＞
図６は、複数ビットエラー検出装置１０についての第２の実施例に係る複数ビットエラー検出装置１０Ｂの構成を示した概略図である。
【００４９】
複数ビットエラー検出装置１０Ｂは、複数ビットエラー検出装置１０Ａに対して、メモリ１２内に保持させる情報およびＭＰＵ１１によって実現される比較プログラム制御部４６の構成（制御データの比較処理の内容）が相違する。そこで、本実施例の説明では、当該相違点となるメモリ１２内のデータ構成および比較プログラム制御部４６の構成および処理内容を中心に説明し、同じ構成要素については同じ符号を付して説明を省略する。
【００５０】
複数ビットエラー検出装置１０Ｂにおいて、ＭＰＵ１１は、メモリ１２に展開された複数ビットエラー検出処理手順の実行に必要なプログラムおよびデータの制御を行い、少なくとも、複数ビットエラー検出部３１と、ユーザプログラム２２を制御するユーザプログラム制御部４２と、インタプリタ制御部４３と、制御データ入出力制御部４４と、第１の比較プログラム５６ａを制御する第１の比較プログラム制御部４６ａと第１の比較プログラム５６ａとは別の比較プログラム（以下、「第２の比較プログラム」と称する。）５６ｂを制御する第２の比較プログラム制御部４６ｂを有する比較プログラム制御部４６として機能する。すなわち、複数ビットエラー検出装置１０Ｂは、比較処理を行う比較処理手段がソフトウェア的に多重化（ここでは二重化）されている。
【００５１】
このように構成される複数ビットエラー検出装置１０Ｂでは、複数ビットエラー検出装置１０Ａと同様にして、ユーザプログラムの実行結果が、メモリ１２内に第１の制御データ５４ａおよび第２の制御データ５４ｂとして書き込まれると、第１の比較プログラム制御部４６ａによって制御される第１の比較プログラム５６ａ（第１の比較処理手段）および第２の比較プログラム制御部４６ｂによって制御される第２の比較プログラム５６ｂ（第２の比較処理手段）が、それぞれ、第１の制御データ５４ａおよび第２の制御データ５４ｂをリードして両データを比較する。
【００５２】
第１の比較プログラム５６ａおよび第２の比較プログラム５６ｂが行った比較の結果（比較データ）は、第１の比較プログラム制御部４６ａおよび第２の比較プログラム制御部４６ｂが取得し、さらに、複数ビットエラー検出部３１へ与えられる。
【００５３】
続いて、複数ビットエラー検出部３１としてのＭＰＵ１１は、比較結果についての一致判定を行い、二つの比較データが一致する場合には、制御データ入出力制御部４４に対してメモリ１２から入出力部１３への制御データの出力を許可する旨の指令を与える。制御データの出力を許可する旨の指令を受けた制御データ入出力制御部４４は、例えば、第１の制御データ５４ａ等の比較した制御データの一つを入出力部１３へ出力する。一方、複数ビットエラー検出部３１としてのＭＰＵ１１は、比較結果についての一致判定を行った結果、二つの比較データが一致しない場合には、単ビットないし複数ビットのメモリエラーが発生している状態と判断する。
【００５４】
また、リードした第１の制御データ５４ａと第２の制御データ５４ｂとは一致するが、比較結果が一致しない場合には、第１の比較プログラム５６ａおよび第２の比較プログラム５６ｂの少なくとも一方が故障していると判断する。
【００５５】
さらに、複数ビットエラー検出装置１０Ｂでは、より慎重さを期するために、上述した比較の処理ステップを、比較結果および制御データを相互に交換して行うこともできる。すなわち、一方の比較処理手段で行う制御データおよび比較結果の比較を他方の比較処理手段でも行うようにすることもできる。すなわち、第１の比較プログラム５６ａが行う制御データおよび比較結果の比較を、第２の比較プログラム５６ｂで、第２の比較プログラム５６ｂが行う制御データおよび比較結果の比較を第１の比較プログラム５６ａで行うようにすることもできる。
【００５６】
複数ビットエラー検出装置１０Ｂ、複数ビットエラー検出装置１０Ｂが実行する複数ビットエラー検出処理手順、および、複数ビットエラー検出処理手順をコンピュータに実行させる複数ビットエラー検出プログラムによれば、複数ビットエラー検出装置１０Ａ、複数ビットエラー検出装置１０Ａが実行する複数ビットエラー検出処理手順、および、複数ビットエラー検出処理手順をコンピュータに実行させる複数ビットエラー検出プログラムと同様の効果を奏すると共に、比較プログラム５６ａ，５６ｂの故障を検知することができる。
【００５７】
なお、図６では、メモリ１２内に保持させる比較プログラム５６が二つの場合の例（比較プログラム５６ａ，５６ｂ）が示されているが、必ずしも二つであることを要するものではなく、二つ以上であれば任意である。例えば、三つ以上の比較プログラム５６を用いて行う場合についても、個々の比較プログラム５６が制御データ５４ａ，５４ｂを比較することで、メモリエラーが生じているのか、何れの比較プログラム５６にエラーが生じているのかを検出できる。
【００５８】
また、複数ビットエラー検出装置１０Ｂ、複数ビットエラー検出装置１０Ｂが実行する複数ビットエラー検出処理手順、および、複数ビットエラー検出処理手順をコンピュータに実行させる複数ビットエラー検出プログラムでは、少なくとも二つの比較プログラム５６で制御データ５４ａ，５４ｂを比較する限り、全ての比較プログラム５６で制御データ５４ａ，５４ｂを比較する必要はない。
【００５９】
＜第３の実施例＞
図７は、複数ビットエラー検出装置１０についての第３の実施例に係る複数ビットエラー検出装置１０Ｃの構成を示した概略図である。
【００６０】
複数ビットエラー検出装置１０Ｃは、複数ビットエラー検出装置１０Ａに対して、制御データ処理部３４の構成、すなわち、メモリ１２内に保持させる制御データおよびＭＰＵ１１によって実現される制御データ入出力制御部４４の構成が相違する。そこで、本実施例の説明では、当該相違点となるメモリ１２内のデータ構成および制御データ入出力制御部４４の構成および処理内容を中心に説明し、同じ構成要素については同じ符号を付して説明を省略する。
【００６１】
複数ビットエラー検出装置１０ＣにおけるＭＰＵ１１は、複数ビットエラー検出装置１０ＡにおけるＭＰＵ１１に対して、さらに、１系統の制御データの入出力を制御する制御データ入出力制御手段を付加して、２系統の制御データの入出力を制御可能な構成としている。すなわち、複数ビットエラー検出装置１０ＣにおけるＭＰＵ１１は、制御データ入出力制御手段として、第１の系（Ａ系）の制御データの入出力を制御するＡ系制御データ入出力制御部４４Ａと、第２の系（Ｂ系）の制御データの入出力を制御するＢ系制御データ入出力制御部４４Ｂとを備える。つまり、複数ビットエラー検出装置１０Ｃでは、制御データ入出力制御手段がソフトウェア的に冗長化（ここでは二重化）されている。
【００６２】
なお、第３の実施例の説明では、制御データのデータ処理系統が二重化（多重化）されている観点から、複数ビットエラー検出装置１０Ａにおけるメモリ１２内の第１，２の制御データ５４ａ，５４ｂに相当する制御データを、それぞれ、「第１のＡ系制御データ」５４ａおよび「第２のＡ系制御データ」５４ｂと称して説明する。また、第２の系（Ｂ系）の制御データについては、それぞれ、「第１のＢ系制御データ」５５ａおよび「第２のＢ系制御データ」５５ｂと称して説明する。
【００６３】
複数ビットエラー検出装置１０Ｃでは、複数ビットエラー検出装置１０Ａで行われる処理ステップのうち、入出力部１３から入力データが与えられてから比較処理ステップを実行するまでの間の処理ステップが、Ａ系側とＢ系側とで並行して行われる。
【００６４】
すなわち、Ａ系側では、入出力部１３から与えられた入力データが、それぞれ、第１のＡ系制御データ５４ａおよび第２のＡ系制御データ５４ｂとしてメモリ１２内にライトされ、さらに、インタプリタ２５ａ，２５ｂによって、第１のＡ系制御データ５４ａおよび第２のＡ系制御データ５４ｂが解釈されてユーザプログラム２２に与えられる。そして、ユーザプログラム２２がユーザプログラムを実行した結果は、インタプリタ２５ａ，２５ｂへ返され、インタプリタ２５ａ，２５ｂで解釈された結果が、それぞれ、第１のＡ系制御データ５４ａおよび第２のＡ系制御データ５４ｂとしてメモリ１２内にライトされる。
【００６５】
同様にＢ系側でも、入出力部１３から与えられた入力データが、それぞれ、第１のＢ系制御データ５５ａおよび第２のＢ系制御データ５５ｂとしてメモリ１２内にライトされ、さらに、インタプリタ２５ａ，２５ｂによって、第１のＢ系制御データ５５ａおよび第２のＢ系制御データ５５ｂが解釈されてユーザプログラム２２に与えられる。そして、ユーザプログラム２２がユーザプログラムを実行した結果は、インタプリタ２５ａ，２５ｂへ返され、インタプリタ２５ａ，２５ｂで解釈された結果が、それぞれ、第１のＢ系制御データ５５ａおよび第２のＢ系制御データ５５ｂとしてメモリ１２内にライトされる。
【００６６】
続いて、比較プログラム制御部４６としてのＭＰＵ１１は、比較プログラム５６を制御し、第１のＡ系制御データ５４ａ、第２のＡ系制御データ５４ｂ、第１のＢ系制御データ５５ａおよび第２のＢ系制御データ５５ｂをリードして比較する。リードされるユーザプログラム実行結果である第１のＡ系制御データ５４ａ、第２のＡ系制御データ５４ｂ、第１のＢ系制御データ５５ａおよび第２のＢ系制御データ５５ｂの一致および不一致の内容に応じて、エラーの有無および生じているエラーの内容を検出することができる。
【００６７】
なお、比較プログラム制御部４６としてのＭＰＵ１１がエラーの有無および生じているエラーの内容を検出する際に参照される第１のＡ系制御データ５４ａ、第２のＡ系制御データ５４ｂ、第１のＢ系制御データ５５ａおよび第２のＢ系制御データ５５ｂの比較結果とエラーの有無および生じているエラーの内容とを関連付ける情報は、例えば、後述する図８に示されるようなテーブルの情報であり、メモリ１２の空き領域等のＭＰＵ１１がアクセス可能な記憶領域に保持させておく。
【００６８】
図８は、複数ビットエラー検出装置１０Ｃで判定されるエラーの有無および生じているエラー内容を示した判定図である。なお、図８に示される記号「＝」は制御データの一致を意味し、記号「≠」は制御データの不一致を意味する。
【００６９】
図８に示されるように、全ての制御データが一致する場合には「エラー無し」、Ａ系またはＢ系側で制御データの不一致が生じている場合には、「メモリエラー」、第１の制御データ（第１のＡ系制御データ，第１のＢ系制御データ）と第２の制御データ（第２のＡ系制御データ，第２のＢ系制御データ）で制御データの不一致が生じている場合には、「コンパイラエラー」、全てが不一致の場合には「メモリエラー、コンパイラエラー」といった具合に、第１のＡ系制御データ５４ａ、第２のＡ系制御データ５４ｂ、第１のＢ系制御データ５５ａおよび第２のＢ系制御データ５５ｂの一致および不一致を確認することで、メモリエラーおよびコンパイラエラー（コード変換エラー）が生じているか否かを検知することができる。
【００７０】
第３の実施例に係る複数ビットエラー検出装置１０Ｃ、複数ビットエラー検出装置１０Ｃが実行する複数ビットエラー検出処理手順、および、複数ビットエラー検出処理手順をコンピュータに実行させる複数ビットエラー検出プログラムによれば、第１の実施例に係る複数ビットエラー検出装置１０Ａ、複数ビットエラー検出装置１０Ａが実行する複数ビットエラー検出処理手順、および、複数ビットエラー検出処理手順をコンピュータに実行させる複数ビットエラー検出プログラムと同様の効果を奏すると共に、メモリエラーおよびコンパイラエラー（コード変換エラー）が生じているか否かを検知することができる。
【００７１】
＜第４の実施例＞
図９は、複数ビットエラー検出装置１０についての第４の実施例に係る複数ビットエラー検出装置１０Ｄの構成を示した概略図である。
【００７２】
複数ビットエラー検出装置１０Ｄは、複数ビットエラー検出装置１０Ｂに対して、メモリ１２内に保持させる情報およびＭＰＵ１１によって実現されるインタプリタ制御部４３、制御データ入出力制御部４４および比較プログラム制御部４６の構成および処理内容が相違する。そこで、本実施例の説明では、当該相違点となるメモリ１２内のデータ構成およびインタプリタ制御部４３、制御データ入出力制御部４４および比較プログラム制御部４６の構成および処理内容を中心に説明し、同じ構成要素については同じ符号を付して説明を省略する。
【００７３】
複数ビットエラー検出装置１０Ｄは、二つの異なるインタプリタ２５ａ，２５ｂを使用して制御データの処理を行う複数ビットエラー検出装置１０Ｂに対して、三つの異なるインタプリタ２５ａ，２５ｂ，２５ｃを使用して制御データの処理を行う点で相違する。すなわち、複数ビットエラー検出装置１０Ｄにおけるインタプリタ制御部４３は、各インタプリタに対応した三つのインタプリタ制御部を有し、制御データ入出力制御部４４は、各インタプリタに対応した三つの制御データ入出力制御部を有し、比較プログラム制御部４６は、三つの比較プログラム５６ａ，５６ｂ，５６ｃをそれぞれ制御する比較プログラム制御機能を有する。
【００７４】
このように構成される複数ビットエラー検出装置１０Ｄでは、複数ビットエラー検出装置１０Ｂにおける第１，２のインタプリタ制御部４３、第１，２の制御データ入出力制御部４４および第１，２の比較プログラム制御部４６ａ，４６ｂと同様の処理ステップを、第３のインタプリタ制御部４３、第３の制御データ入出力制御部４４および第３の比較プログラム制御部４６も行う。
【００７５】
そして、複数ビットエラー検出部３１としてのＭＰＵ１１は、第１の制御データ５４ａ、第２の制御データ５４ｂおよび第３の制御データ５４ｃが全て一致していると判断した場合には、制御データ入出力制御部４４に対してメモリ１２から入出力部１３への制御データの出力を許可する旨の指令を与える。制御データの出力を許可する旨の指令を受けた制御データ入出力制御部４４は、例えば、第１の制御データ５４ａ等の比較した制御データの一つを入出力部１３へ出力する。
【００７６】
一方、第１の制御データ５４ａ、第２の制御データ５４ｂおよび第３の制御データ５４ｃのうち、いずれか一つが他の二つの制御データと相違する場合、複数ビットエラー検出部３１としてのＭＰＵ１１は、多数決判定を行い、一致する二つの制御データの一方をメモリ１２から入出力部１３へ出力する許可を制御データ入出力制御部４４に与える。
【００７７】
また、第１の制御データ５４ａ、第２の制御データ５４ｂおよび第３の制御データ５４ｃの全てが不一致の場合、リードした制御データはメモリ１２から破棄され、複数ビットエラー検出部３１としてのＭＰＵ１１に比較結果が通知される。このとき、破棄されたデータは、ＭＰＵ１１内のレジスタ等、メモリ１２とは別の記憶領域に残される。
【００７８】
なお、第２の実施例に係る複数ビットエラー検出装置１０Ｂと同様に、第４の実施例に係る複数ビットエラー検出装置１０Ｄでも、より慎重さを期するために、上述した比較の処理ステップを、比較結果および制御データを相互に交換して行うこともできる。すなわち、第１の比較プログラム５６ａが行う比較処理を、他の比較プログラム５６ｂ，５６ｃで、第２の比較プログラム５６ｂが行う比較処理を、他の比較プログラム５６ａ，５６ｃで、第３の比較プログラム５６ｃが行う比較処理を、他の比較プログラム５６ａ，５６ｂで行うようにすることもできる。
【００７９】
第４の実施例に係る複数ビットエラー検出装置１０Ｄ、複数ビットエラー検出装置１０Ｄが実行する複数ビットエラー検出処理手順、および、複数ビットエラー検出処理手順をコンピュータに実行させる複数ビットエラー検出プログラムによれば、第１の実施例に係る複数ビットエラー検出装置１０Ａ、複数ビットエラー検出装置１０Ａが実行する複数ビットエラー検出処理手順、および、複数ビットエラー検出処理手順をコンピュータに実行させる複数ビットエラー検出プログラムと同様の効果を奏すると共に、三つの制御データ５４ａ，５４ｂ，５４ｃのうち、いずれか一つが他の二つの制御データと相違する場合であっても、多数決判定を行って一致する二つの制御データの一方をメモリ１２から入出力部１３へ出力することができる。
【００８０】
＜第５〜８の実施例＞
図１０〜１３は、複数ビットエラー検出装置１０についての第５〜８の実施例に係る複数ビットエラー検出装置１０Ｅ，１０Ｆ，１０Ｇ，１０Ｈの構成を示した概略図である。
【００８１】
複数ビットエラー検出装置１０Ｅ〜１０Ｈは、複数ビットエラー検出装置１０Ａ〜１０Ｄにおける比較処理手段としての比較部３５（比較プログラム制御部４６および比較プログラム５６）の代わりに、入出力部１３に比較処理手段をハードウェア的に実装した比較器６１または比較部６２を設けた点で相違するが、複数ビットエラー検出処理手順の処理内容は第１〜４の複数ビットエラー検出装置１０Ａ〜１０Ｄと実質的に異ならないので、本実施例の説明では、当該相違点となる比較手段を中心に説明し、同じ構成要素については同じ符号を付して説明を省略する。
【００８２】
第５〜８の実施例に係る複数ビットエラー検出装置１０Ｅ〜１０Ｈは、複数ビットエラー検出処理手順の実行主体として、ＭＰＵ１１内にソフトウェア的に実現される複数ビットエラー検出部３１、ユーザプログラム制御部４２、インタプリタ制御部４３および制御データ入出力制御部４４と、入出力部１３に設けられるハードウェアの比較器６１または比較器６２とを具備する。すなわち、第１〜４の実施例に係る複数ビットエラー検出装置１０Ａ〜１０Ｄの比較プログラム制御部４６および比較プログラム５６の代わりに、比較器６１または比較器６２を具備する。
【００８３】
このように、比較処理手段をソフト的に実現する比較プログラム制御部４６および比較プログラム５６の代わりに、ハードウェア的に実現した比較器６１または比較器６２を設けた複数ビットエラー検出装置１０Ｅ〜１０Ｈでは、複数ビットエラー検出処理手順の実行主体が、複数ビットエラー検出部３１、ユーザプログラム制御部４２、インタプリタ制御部４３および制御データ入出力制御部４４としてのＭＰＵ１１と、比較器６１または比較器６２を設けた出力部１３という異なる複数の媒体で実現されているため、同一媒体のみで実現される場合と比較して、複数ビットエラー検出処理手順を実行する上での信頼性を向上させることができる。
【００８４】
第５〜８の複数ビットエラー検出装置１０Ｅ〜１０Ｈ、第５〜８の実施例に係る複数ビットエラー検出装置１０Ｅ〜１０Ｈが実行する複数ビットエラー検出処理手順、および、複数ビットエラー検出処理手順をコンピュータに実行させる複数ビットエラー検出プログラムによれば、第１〜４の実施例に係る複数ビットエラー検出装置１０Ａ〜１０Ｄ、複数ビットエラー検出装置１０Ａ〜１０Ｄが実行する複数ビットエラー検出処理手順、および、複数ビットエラー検出処理手順をコンピュータに実行させる複数ビットエラー検出プログラムと同様の効果を奏するとともに、従来および複数ビットエラー検出装置１０Ａ〜１０Ｄよりも、信頼性を向上させることができる。
【００８５】
＜第９〜１２の実施例＞
図１４〜１７は、複数ビットエラー検出装置１０についての第９〜１２の実施例に係る複数ビットエラー検出装置１０Ｉ，１０Ｊ，１０Ｋ，１０Ｌの構成を示した概略図である。
【００８６】
第９〜１２の実施例に係る複数ビットエラー検出装置１０Ｉ〜１０Ｌは、上述した第１〜８の実施例に係る複数ビットエラー検出装置１０Ａ〜１０Ｈにおけるメモリ１２がハードウェアとして複数（二以上）に分割された構成であり、例えば、図１４〜１６に示される複数ビットエラー検出装置１０Ｉ〜１０Ｋは、第５〜７の実施例に係る複数ビットエラー検出装置１０Ｅ〜１０Ｇにおけるメモリ１２の代わりに、ニ分割されたメモリ１２ａ，１２ｂを具備し、図１７に示される第１２の複数ビットエラー検出装置１０Ｌは、第４の実施例に係るビットエラー検出装置１０Ｄにおけるメモリ１２の代わりに、三分割されたメモリ１２ａ，１２ｂ，１２ｃを具備する。
【００８７】
また、複数ビットエラー検出装置１０Ｉ〜１０Ｌでは、各メモリ１２に対して、ユーザプログラム２２が保持される。すなわち、ニ分割されたメモリ１２ａ，１２ｂを具備する第９〜１１の複数ビットエラー検出装置１０Ｉ〜１０Ｋでは、各メモリ１２ａ，１２ｂにユーザプログラム２２ａ，２２ｂが保持されており、三分割されたメモリ１２ａ，１２ｂ，１２ｃを具備する第１２の複数ビットエラー検出装置１０Ｌでは、各メモリ１２ａ，１２ｂ，１２ｃにユーザプログラム２２ａ，２２ｂ，２２ｃが保持される。
【００８８】
このように構成される第９，１０の実施形態に係る複数ビットエラー検出装置１０Ｉ，１０Ｊでは、例えば、第１のユーザプログラム２２ａ、第１のインタプリタ２５ａおよび第１の制御データ５４ａが第１のメモリ１２ａに保持され、第２のユーザプログラム２２ｂ、第２のインタプリタ２５ｂおよび第２の制御データ５４ｂが第２のメモリ１２ｂに保持される。
【００８９】
また、第１１の実施形態に係る複数ビットエラー検出装置１０Ｋでは、第１のユーザプログラム２２ａ、第１のインタプリタ２５ａおよび第１の制御データ（第１のＡ系制御データ）５４ａに加えてさらに第１のＢ系制御データ５５ａが第１のメモリ１２ａに保持され、第２のユーザプログラム２２ｂ、第２のインタプリタ２５ｂおよび第２の制御データ（第２のＡ系制御データ）５４ｂに加えてさらに第２のＢ系制御データ５５ｂが第２のメモリ１２ｂに保持される。
【００９０】
第１２の実施形態に係る複数ビットエラー検出装置１０Ｊでは、例えば、第１のユーザプログラム２２ａ、第１のインタプリタ２５ａおよび第１の制御データ５４ａが第１のメモリ１２ａに保持され、第２のユーザプログラム２２ｂ、第２のインタプリタ２５ｂおよび第２の制御データ５４ｂが第２のメモリ１２ｂに保持され、第３のユーザプログラム２２ｃ、第３のインタプリタ２５ｃおよび第３の制御データ５４ｃが第３のメモリ１２ｃに保持される。
【００９１】
なお、複数ビットエラー検出装置１０Ｉ〜１０Ｌで行われる複数ビットエラー検出処理手順は、メモリ１２が分割されていない複数ビットエラー検出装置で行われる複数ビットエラー検出処理手順と実質的に同様である。
【００９２】
また、図１４〜１７に示される第９〜１２の実施例に係る複数ビットエラー検出装置１０Ｉ〜１０Ｌでは、ＭＰＵ１１が図示されていないが、これは、単に図面の簡略化等の観点から記載を省略したものであり、実際の複数ビットエラー検出装置１０Ｉ〜１０Ｌは、ＭＰＵ１１を具備している。例えば、図１４〜１７に示される複数ビットエラー検出装置１０Ｉ〜１０Ｌの各々は、複数ビットエラー検出装置１０Ｅ〜１０Ｈの各々が具備するＭＰＵ１１を具備する。
【００９３】
第９〜１２の実施例に係る複数ビットエラー検出装置１０Ｉ〜１０Ｌ、複数ビットエラー検出装置１０Ｉ〜１０Ｌが実行する複数ビットエラー検出処理手順、および、複数ビットエラー検出処理手順をコンピュータに実行させる複数ビットエラー検出プログラムによれば、第５〜８の実施例に係る複数ビットエラー検出装置１０Ｅ〜１０Ｈ、複数ビットエラー検出装置１０Ｅ〜１０Ｈが実行する複数ビットエラー検出処理手順、および、複数ビットエラー検出処理手順をコンピュータに実行させる複数ビットエラー検出プログラムと同様の効果を奏するとともに、メモリ１２が物理的に分割されていない第１〜８の実施例に係る複数ビットエラー検出装置１０Ａ〜１０Ｈよりも、メモリエラーに対する耐性を高めることができる。
【００９４】
以上、本発明の実施形態に係る複数ビットエラー検出装置、複数ビットエラー検出方法および複数ビットエラー検出プログラムによれば、ＭＰＵ１１等の演算処理ユニットおよびメモリ１２を二重化（多重化）することなく、従来よりも、単純なソフトウェア制御によって複数ビットエラーを検出することができる。
【００９５】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階では、上述した実施例以外にも様々な形態で実施することが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、追加、置き換え、変更を行なうことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９６】
１０（１０Ａ〜１０Ｌ）  複数ビットエラー検出装置
１１  ＭＰＵ
１２  メモリ
１３  入出力部
１４  マザーボード
２０  複数ビットエラー検出ＰＧ
２２（２２ａ，２２ｂ，２２ｃ）  ユーザプログラム
２３  第１のコンパイラ
２４  第２のコンパイラ
２５ａ  第１のインタプリタ
２５ｂ  第２のインタプリタ
２５ｃ  第３のインタプリタ
３１  複数ビットエラー検出部
３２  ユーザプログラム実行処理部
３３（３３ａ，３３ｂ）  インタプリタ処理部
３４（３４ａ，３４ｂ）  制御データ処理部
３５  比較部
４２  ユーザプログラム制御部
４３  インタプリタ制御部
４４  制御データ入出力制御部
４４Ａ  Ａ系制御データ入出力制御部
４４Ｂ  Ｂ系制御データ入出力制御部
４６（４６ａ，４６ｂ）  比較プログラム制御部
５４（５４ａ，５４ｂ，５４ｃ）  （Ａ系）制御データ
５５（５５ａ，５５ｂ）  Ｂ系制御データ
５６（５６ａ，５６ｂ，５６ｃ）  比較プログラム
６１（６１ａ，６１ｂ，６１ｃ）  比較器
６２  比較器
【図１】
2013225213.tif 000003
【図２】
2013225213.tif 000004
【図３】
2013225213.tif 000005
【図４】
2013225213.tif 000006
【図５】
2013225213.tif 000007
【図６】
2013225213.tif 000008
【図７】
2013225213.tif 000009
【図８】
2013225213.tif 000010
【図９】
2013225213.tif 000011
【図１０】
2013225213.tif 000012
【図１１】
2013225213.tif 000013
【図１２】
2013225213.tif 000014
【図１３】
2013225213.tif 000015
【図１４】
2013225213.tif 000016
【図１５】
2013225213.tif 000017
【図１６】
2013225213.tif 000018
【図１７】
2013225213.tif 000019