(57)【要約】【課題】複数の演算器の間を接続する回路の故障の検出を効率的に行う。【解決手段】  実施形態にかかる方法では、第１〜第３の演算器を有する装置の試験を行うことができる。実施形態にかかる方法では、第１の演算器と第２の演算器を接続する第１の回路を使用する処理を含む命令列である処理命令列を用いて、第２の演算器と第３の演算器を接続する第２の回路を使用する処理を含む試験命令列を生成する。ここで、試験命令列は、処理命令列の先頭に、処理命令列に含まれる命令の演算結果に変化を与えない命令列である追加命令列を追加したものである。処理命令列の先頭から試験命令列を装置に実行させることにより、前記第１の回路の故障の有無を判定する。また、追加命令列から試験命令列を装置に実行させることにより、第２の回路の故障の有無を検出する。【選択図】図１
2014106928.tif 000002
【特許請求の範囲】
【請求項１】
第１〜第３の演算器を有する装置の試験方法であって
前記第１の演算器と前記第２の演算器を接続する第１の回路を使用する処理を含む命令列である処理命令列の先頭に、前記処理命令列に含まれる命令の演算結果に変化を与えない命令列である追加命令列を追加することにより、前記第２の演算器と前記第３の演算器を接続する第２の回路を使用する処理を含む試験命令列を生成し、
前記処理命令列の先頭から前記試験命令列を前記装置に実行させることにより、前記第１の回路の故障の有無を判定し、
前記追加命令列から前記試験命令列を前記装置に実行させることにより、前記第２の回路の故障の有無を判定する
処理を前記装置に行わせることを特徴とする試験方法。
【請求項２】
前記装置は、
前記処理命令列の実行によって得られると予測される予測値を記憶し、
前記処理命令列の先頭から前記試験命令列を実行することにより得られる第１の演算結果が前記予測値と異なると、前記第１の回路に故障があると判定し、
前記追加命令列の先頭から前記試験命令列を実行することにより得られる第２の演算結果が前記予測値と異なると、前記第2の回路に故障があると判定する
ことを特徴とする請求項１に記載の試験方法。
【請求項３】
前記追加命令列は、１つ以上の命令を含み、
前記装置は、
前記試験命令列の実行を開始するアドレスである開始アドレスの初期値を、前記処理命令列の先頭に割り当てられたアドレスの番地に設定し、
前記試験命令列を実行すると、次に前記試験命令列を実行するときの開始アドレスを、前記試験命令列の実行のときに用いた開始アドレスに割り当てられた前記追加命令列中の１つの命令の格納に使用されるメモリサイズを減算して得られる番地に変更し、
前記試験命令列を実行した回数が、前記追加命令列に含まれている命令の数以下の所定の閾値に達すると処理を終了する
ことを特徴とする請求項１または２に記載の試験方法。
【請求項４】
前記追加命令列は、１つ以上の命令を含み、
前記装置は、
前記試験命令列の実行を開始するアドレスである開始アドレスの初期値を、前記試験命令列の先頭に割り当てられたアドレスの番地に設定し、
前記試験命令列を実行すると、次に前記試験命令列を実行するときの開始アドレスを、前記試験命令列の実行のときに用いた開始アドレスに割り当てられた前記追加命令列中の１つの命令の格納に使用されるメモリサイズを加算して得られる番地に変更し、
前記試験命令列を実行した回数が、前記追加命令列に含まれている命令の数以下の所定の閾値に達すると処理を終了する
ことを特徴とする請求項１または２に記載の試験方法。
【請求項５】
第１〜第３の演算器を有する装置の試験プログラムであって
前記第１の演算器と前記第２の演算器を接続する第１の回路を使用する処理を含む命令列である処理命令列の先頭に、前記処理命令列に含まれる命令の演算結果に変化を与えない命令列である追加命令列を追加することにより、前記第２の演算器と前記第３の演算器を接続する第２の回路を使用する処理を含む試験命令列を生成し、
前記処理命令列の先頭から前記試験命令列を前記装置に実行させることにより、前記第１の回路の故障の有無を判定し、
前記追加命令列から前記試験命令列を前記装置に実行させることにより、前記第２の回路の故障の有無を判定する
処理を前記装置に行わせることを特徴とする試験プログラム。
【請求項６】
第１〜第３の演算器を有する装置の試験制御装置であって
前記第１の演算器と前記第２の演算器を接続する第１の回路を使用する処理を含む命令列である処理命令列の先頭に、前記処理命令列に含まれる命令の演算結果に変化を与えない命令列である追加命令列を追加することにより、前記第２の演算器と前記第３の演算器を接続する第２の回路を使用する処理を含む試験命令列を生成する生成部と、
前記処理命令列の先頭から前記試験命令列を前記装置に実行させることにより、前記第１の回路の故障の有無を判定し、前記追加命令列から前記試験命令列を前記装置に実行させることにより、前記第２の回路の故障の有無を判定する制御部
を備えることを特徴とする試験制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置の試験方法に関する。
【背景技術】
【０００２】
複数の演算器が並列に動作する情報処理装置で、先行して実行される演算命令のレジスタファイルへの書き込みが確定したあと、後続の演算命令の実行によりレジスタファイルを読み出す際に、レジスタ中の同じアドレスに対するアクセスが重複して発生する。レジスタ中の同じアドレスに対するアクセスが重複して行われる場合、レジスタの競合が発生し、後続の演算命令は、先行して実行される演算命令の書き込み処理が完了するのを待つので、並列処理の遅延が発生する。レジスタの競合を避けるため、情報処理装置にバイパス回路を採用することが知られている。バイパス回路によって、先行して実行される演算命令を実行する演算器がレジスタファイルへ演算結果を書き込む前に、後続の演算命令を実行する演算器が演算結果を使用できるようになる。
【０００３】
近年の回路の微細化や複雑化により、ハードウェアの故障は微細な電気条件によって発生することがある。また、特異な命令シーケンスで故障が発生するケースもある。バイパス回路が故障すると、並列処理の遅延、データの読み出し故障などが起こりうる。演算器周辺の故障を検出するため、ランダムな試験命令列を生成し、微細な電気条件によるノイズや特異な命令シーケンスで発生する故障を特定する。
【０００４】
関連する技術に、演算器のパイプライン機構を検証するために、パイプラインのインターロックを引き起こす命令列を生成する方法がある。インターロックを引き起こす試験命令列を自動的に生成するため、先行して実行される演算命令が使用するレジスタを、後続の演算命令に通知し、後続の演算命令が使用するレジスタを、先行して実行される演算命令が使用するレジスタと重複して使用させるように生成する技術が知られている。（例えば、特許文献１を参照）
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許公開２００１−２２２４４２号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した従来の試験方法には、以下のような問題がある。
特定の試験命令列は、特定の演算器の間を接続する回路の故障を検出することができるものの、他の演算器の間を接続する回路の故障を検出できないという問題がある。そこで、他の演算器間を接続する回路に対して、故障の検出を行うためには、演算器の数に応じた複数の新しい試験命令列を作成しなければならない。新しく作成された試験命令列は、故障の検出に有効であるかどうかを判断しなければならず、検証に多くの人手と時間を費やしていた。
【０００７】
本発明は、１つの側面では、複数の演算器の間を接続する回路の故障を効率的に検出することを目的とする。
【課題を解決するための手段】
【０００８】
実施形態にかかる方法では、第１〜第３の演算器を有する装置の試験を行うことができる。実施形態にかかる方法では、第１の演算器と第２の演算器を接続する第１の回路を使用する処理を含む命令列である処理命令列を用いて、第２の演算器と第３の演算器を接続する第２の回路を使用する処理を含む試験命令列を生成する。ここで、試験命令列は、処理命令列の先頭に、処理命令列に含まれる命令の演算結果に変化を与えない命令列である追加命令列を追加したものである。処理命令列の先頭から試験命令列を装置に実行させることにより、前記第１の回路の故障の有無を判定する。また、追加命令列から試験命令列を装置に実行させることにより、第２の回路の故障の有無を検出する。
【発明の効果】
【０００９】
複数の演算器の間を接続する回路の故障を効率的に検出することができる。
【図面の簡単な説明】
【００１０】
【図１】試験方法の例である。
【図２】情報処理装置の例を示す図である。
【図３】情報処理装置のハードウェア構成の例を示す図である。
【図４】試験命令列を使用した第１の試験で行われる処理の例を説明するフローチャートである。
【図５Ａ】試験開始アドレスとしてメモリアドレス４０１を指定した試験の例を示す図である。
【図５Ｂ】試験開始アドレスとしてメモリアドレス４０２を指定した試験の例を示す図である。
【図５Ｃ】試験開始アドレスとしてメモリアドレス４０３を指定した試験の例を示す図である。
【図５Ｄ】試験開始アドレスとしてメモリアドレス４０４を指定した試験の例を示す図である。
【図６】試験命令列を使用した第２の試験で行われる処理の例を説明するフローチャートである。
【図７】試験命令列の生成例を説明するフローチャートである。
【図８】試験命令列を使用した試験制御方法の例を説明するフローチャートである。
【図９】試験命令列の演算結果と予測値を比較する処理を説明するフローチャートである。
【図１０】試験結果データの例である。
【発明を実施するための形態】
【００１１】
以下、本実施形態について、図面を参照しながら詳細に説明する。
図１は、試験方法の例である。図１（ａ）は、試験命令列１００と、試験制御部１０１とを示す。試験命令列１００は、メモリアドレス１１１、１１２にＮＯＰ命令を備え、メモリアドレス１１３〜１１８の各々に演算命令を備える処理命令列１１０と、メモリアドレス１１９にリターン命令とを備える命令列である。ＮＯＰ命令は、何も処理を実行しない（Ｎｏ  Ｏｐｅｒａｔｉｏｎ）命令であり、また、他の演算命令に何ら影響を与えない演算命令である。メモリアドレス１１３〜１１８に格納された演算命令は、特定の演算器間で発生した故障を検出する演算命令列である。簡略化のため、特定の演算器間で発生した故障を検出する演算命令列のことを、「処理命令列」と称す。
【００１２】
パイプライン構造の複数の演算器は、互いにバイパス回路で接続されており、演算命令がレジスタ中の同じアドレスに対するアクセスを重複して行っても並列処理を円滑に行える。以下、処理命令列１１０の、メモリアドレス１１３とメモリアドレス１１７に格納されている演算命令の組み合わせで、レジスタ中の特定のアドレスへのアクセスが重複する場合を例として述べる。この場合、処理命令列１１０を含む命令列が実行されると、メモリアドレス１１３に格納された演算命令を実行する演算器と、メモリアドレス１１７に格納された演算命令を実行する演算器の間を接続する回路が使用される。
【００１３】
試験命令列は、処理命令列の先頭に、少なくとも１つのＮＯＰ命令を備えている。また、ＮＯＰ命令は、処理命令列に干渉しない演算命令であって、処理命令列が使用しているレジスタと競合せず、処理命令列の演算結果に影響を与えない演算命令であれば、他の演算命令に代替してもよい。リターン命令は、処理命令列の演算結果を試験制御部に返し、また、処理を試験制御部に返す演算命令である。
【００１４】
試験制御部１０１は、試験命令列を複数の演算器に実行させる命令として、試験開始命令を出力する。試験開始命令は、試験命令列内の特定のメモリアドレスを、試験を開始するアドレスに指定する分岐命令を含む。以下、試験を開始するアドレスを「試験開始アドレス」と記載することがある。分岐命令は、試験命令列内の各ＮＯＰ命令のメモリアドレスや、処理命令列の先頭のメモリアドレスを試験開始アドレスとして指定することができる。例えば、試験制御部１０１が試験開始アドレスとしてメモリアドレス１１３を指定すると、試験命令列１００は、処理命令列１１０の先頭の演算命令から複数の演算器に実行される。試験制御部１０１が試験開始アドレスとしてメモリアドレス１１２を指定すると、メモリアドレス１１２に格納されているＮＯＰ命令以降の命令が複数の演算器に実行される。試験制御部１０１が、試験開始アドレスとしてメモリアドレス１１１を指定すると、メモリアドレス１１１に格納されているＮＯＰ命令以降の命令が複数の演算器に実行される。
【００１５】
図１の例では、試験命令列１００は、分岐命令によって試験開始アドレスを指定することにより、１つの試験命令列を、以下の３つのパターンの命令列として使用できる。
（１）メモリアドレス１１３に格納されている処理命令列１１０の先頭の演算命令から複数の演算器に実行されるパターン
（２）メモリアドレス１１２に格納されているＮＯＰ命令から複数の演算器に実行されるパターン
（３）メモリアドレス１１１に格納されているＮＯＰ命令から複数の演算器に実行されるパターン
パターン（１）〜（３）の命令列において、処理命令列は、命令シーケンスを変更されない。
【００１６】
図１（ｂ）に、演算器の割り当て状態の例を示す。演算器の割り当て状態は、試験命令列１００を（１）〜（３）のパターンで実行した場合に、各メモリアドレスに格納されている演算命令が、パイプライン処理によって、演算器Ａ〜Ｃのどの演算器に割り当てられたかを示した例である。
【００１７】
図１（ｂ）のパターン（１）の列では、試験開始アドレスとしてメモリアドレス１１３が指定されている。このため、各メモリアドレスの演算命令は、以下の演算器に割り当てられる。パターン（１）の例では、メモリアドレス１１１，１１２に格納されているＮＯＰ命令は、演算器で実行されない。
メモリアドレス１１３の演算命令：演算器Ａ
メモリアドレス１１４の演算命令：演算器Ｂ
メモリアドレス１１５の演算命令：演算器Ｃ
メモリアドレス１１６の演算命令：演算器Ａ
メモリアドレス１１７の演算命令：演算器Ｂ
メモリアドレス１１８の演算命令：演算器Ｃ
メモリアドレス１１９のリターン命令：演算器Ａ
【００１８】
パターン（２）の列では、試験開始アドレスとしてメモリアドレス１１２が指定されている。そこで、各メモリアドレスの演算命令は、以下の演算器に割り当てられる。パターン（２）の例では、メモリアドレス１１１に格納されているＮＯＰ命令は、演算器で実行されない。
メモリアドレス１１２のＮＯＰ命令：演算器Ａ
メモリアドレス１１３の演算命令：演算器Ｂ
メモリアドレス１１４の演算命令：演算器Ｃ
メモリアドレス１１５の演算命令：演算器Ａ
メモリアドレス１１６の演算命令：演算器Ｂ
メモリアドレス１１７の演算命令：演算器Ｃ
メモリアドレス１１８の演算命令：演算器Ａ
メモリアドレス１１９のリターン命令：演算器Ｂ
【００１９】
パターン（３）の列では、試験開始アドレスとしてメモリアドレス１１１が指定されている。そこで、各メモリアドレスの演算命令は、以下の演算器に割り当てられる。
メモリアドレス１１１のＮＯＰ命令：演算器Ａ
メモリアドレス１１２のＮＯＰ命令：演算器Ｂ
メモリアドレス１１３の演算命令：演算器Ｃ
メモリアドレス１１４の演算命令：演算器Ａ
メモリアドレス１１５の演算命令：演算器Ｂ
メモリアドレス１１６の演算命令：演算器Ｃ
メモリアドレス１１７の演算命令：演算器Ａ
メモリアドレス１１８の演算命令：演算器Ｂ
メモリアドレス１１９のリターン命令：演算器Ｃ
【００２０】
なお、試験開始アドレスを指定する分岐命令は、演算器に試験命令列を実行させる前に、実行中の演算命令を全てキャンセルする命令を含む。更に、パイプラインフラッシュをする命令を含む。これにより、試験命令列は毎回規定の演算器から処理を順に割り当てることができる。図１（ｂ）の例では、パターン（１）〜（３）の先頭の演算命令は、演算器Aに割り当てられている。演算器Ａのあとは、演算器Ｂ、Ｃの順に命令が割り当てられる。
【００２１】
メモリアドレス１１３とメモリアドレス１１７に格納されている演算命令は、パターン（１）の場合、太線枠で示すように演算器Ａと演算器Ｂに割り当てられる。このため、パターン（１）の命令列を用いると、演算器Ａ−Ｂ間のバイパス回路が使用される。バイパス回路に故障がない場合、処理命令列は正常に処理を終了し、特定の演算結果を試験制御部に返す。しかし、バイパス回路に故障が発生した場合、処理命令列は正常に処理を終了できず、異常値やエラー値を返す。例えば、演算器Ａ−Ｂ間のバイパス回路が故障し、処理命令列を正常に処理できない場合に、処理命令列１１０の演算結果として特定のエラー値が出力される。処理命令列１１０の演算結果として予測される予測値と異なる演算結果が返ってきた場合に、演算器Ａ−Ｂ間のバイパス回路が故障していると判断する。
【００２２】
次に、試験開始アドレスとしてメモリアドレス１１２が指定された場合、パターン（２）で説明したように、試験に使用される命令列は、処理命令列１１０の先頭に、メモリアドレス１１２に格納されたＮＯＰ命令を備える。メモリアドレス１１３とメモリアドレス１１７に格納されている演算命令は、パターン（２）の場合、点線枠で示すように演算器Ｂと演算器Ｃに割り当てられる。このため、パターン（２）の命令列が実行されると、演算器Ｂ−Ｃ間のバイパス回路が使用される。なお、パターン（２）は、パターン（１）と比べて、ＮＯＰ命令が先頭に設置されているが、ＮＯＰ命令は、処理命令列の演算結果に影響を与えない演算命令である。そのため、パターン（２）は、演算器Ｂ−Ｃ間のバイパス回路の故障を検出するのに有効な演算命令列である。
【００２３】
試験開始アドレスとしてメモリアドレス１１１が指定された場合、パターン（３）で説明したように、試験に使用される命令列は、処理命令列１１０の先頭に、メモリアドレス１１１、１１２に格納されたＮＯＰ命令を備える。メモリアドレス１１３とメモリアドレス１１７に格納されている演算命令は、パターン（３）の場合、一点鎖点枠で示すように演算器Ｃと演算器Ａに割り当てられる。このため、パターン（３）の命令列が実行されると、演算器Ｃ−Ａ間のバイパス回路が使用される。
【００２４】
図２は、情報処理装置の例を示す。図２は、試験制御部１０１、データベース２６０、複数の演算器２７０、レジスタ２８０を備える。試験制御部１０１は、試験命令列生成部２１０、試験開始アドレス設定部２２０、試験データ設定部２３０、試験命令列制御部２４０、試験結果出力部２５０を備える。複数の演算器は、バイパス回路２７１ａ〜２７１ｃを備える。なお、図２の例では、演算器の数は３であるが、情報処理装置に含まれる演算器の数は、実装に応じて任意に変更されるものとする。また、情報処理装置に含まれる演算器の数に応じて、演算器の間を接続するバイパス回路の数も変動するものとする。
【００２５】
試験命令列生成部２１０は、試験命令列を生成する。試験命令列は、処理命令列の先頭に少なくとも１つのＮＯＰ命令を備え、次に処理命令列と、リターン命令とを備える。試験命令列生成部２１０は、処理命令列をデータベース２６０より取得する。データベース２６０は、複数の処理命令列と、各処理命令列に対応した、回路が正常な場合の予測される演算結果である予測値とを保持している。また、データベース２６０は、予測値の代わりに、故障時の各処理命令列に対応した演算結果としてのエラー値を保持していてもよく、予測値とエラー値の両方を保持してもよい。予測値とエラー値は、処理命令列を演算器に実行させて得られた実際の演算結果と、予測値又はエラー値とを比較することで、回路が正常かどうかを判断するために使用される。また、データベース２６０は、処理命令列を実行する際の、試験に使用する所定の試験環境情報を保持してもよい。処理命令列と、予測値と、エラー値、試験環境情報は、試験に応じてオペレータによって設定されてもよい。
【００２６】
さらに、試験命令列生成部２１０は、情報処理装置の備える演算器の数を取得する。演算器の数は、ＮＯＰ命令の最適な数を算出するために用いられる。試験命令列は、少なくとも１つのＮＯＰ命令を備えればよいが、演算器の総数よりも小さい数のＮＯＰ命令を有することが望ましい。例えば、図１（ａ）に示す試験命令列１００からメモリアドレス１１１のＮＯＰ命令を削除し、試験命令列１００´がメモリアドレス１１２のＮＯＰ命令と処理命令列の場合を考えたい。試験命令列１００´は、ＮＯＰ命令を１つしか有しないため、パターン（１）とパターン（２）の試験での命令列として、使用できるが、パターン（３）の試験には使用できない。そのため、図１（ｂ）の演算器の割り当て状態１２０’は、パターン（３）の列を持たない。すると、試験命令列１００´は、パターン（１）のように、演算器Ａ−Ｂ間のバイパス回路の故障の検出に有効であり、また、パターン（２）のように、演算器Ｂ−Ｃ間のバイパス回路の故障の検出に有効である。しかしながら、演算器C−A間のバイパス回路の故障の検出に有効ではない。よって、演算器間を網羅して故障を検出するためには、試験命令列１００は、演算器Ａ〜Ｃの３つの演算器に対してパターン（１）〜（３）の試験を行うのが好ましい。そのためには、２つのＮＯＰ命令を備えた試験命令列が好ましい。同様に、演算器がｎ個のケースは、パターン（１）〜（ｎ）の試験を行うのが好ましい。ここで、ｎは、２以上の整数である。すると、ｎ−１個のＮＯＰ命令を備えた試験命令列を使用するのが好ましい。しかしながら、試験時間を短縮したい場合や、既に特定の演算器間には故障がないことが判明している場合は、演算器間を網羅して試験を行わない。この場合、実施したい試験に応じて、ＮＯＰ命令の数を調整した試験命令列を使用すればよい。
【００２７】
情報処理装置が備える演算器の数、及び、データベース２６０は、メモリ装置又は記憶装置に記憶される。情報装置が備える演算器の数は、データベース２６０に含まれてもよい。また、試験制御部１０１も、メモリ装置又は記憶装置に記憶される。
【００２８】
試験開始アドレス設定部２２０は、試験開始アドレスの初期値としてメモリアドレスを設定する。試験開始アドレスの初期値は、分岐命令で指定される試験開始アドレスのメモリアドレスを指し、所定のメモリや記憶装置に記憶される。
【００２９】
つぎに、試験データ設定部２３０は、試験に使用するデータを設定する。試験データ設定部２３０は、試験命令列生成部２１０で生成された試験命令列を所定のメモリや記憶装置に格納する。また、試験データ設定部２３０は、演算器の数、予測値、所定の試験環境情報、試験番号などを所定のメモリや記憶装置やレジスタに設定する。また、後述するが、試験データ設定部２３０は、試験開始アドレスが変更された場合、変更後の試験開始アドレスを設定する。
【００３０】
試験命令列制御部２４０は、試験開始命令を出力し、試験命令列を複数の演算器２７０に実行させる。その後、複数の演算器２７０から演算結果を受信する。更に、試験命令列制御部２４０は、受信した演算結果を予測値と比較し、比較結果を試験結果出力部２５０に出力する。また、詳細は後述するが、試験命令列制御部２４０は、次に試験命令列を実行するときの試験開始アドレスを算出する。試験開始命令は、分岐命令を含む。試験開始命令を受けた複数の演算器は、試験命令列を分岐命令で指定された試験開始アドレスより、各演算器に処理を割り当て、演算命令を実行する。次に、試験命令列制御部２４０は、試験命令列が各演算器で実行された演算結果を受信し、データベース２６０より取得した予測値と比較する。受信した演算結果が、予測値と一致した場合、所定の演算器間の回路は正常に動作していると判断できる。また、受信した演算結果が予測値と一致しない場合は、所定の演算器間の回路は故障していると判断される。試験命令列制御部２４０は、回路が正常かどうか判断した比較結果を試験結果出力部２５０に出力する。試験結果出力部２５０は、試験命令列制御部２４０から比較結果を受信し、試験結果を出力する。
【００３１】
複数の演算器２７０は、演算器Ａ〜Ｃを備え、演算器Ａ〜Ｃの各々はバイパス回路２７１ａ〜２７１ｃで接続されている。演算器Ａ−Ｂ間は、バイパス回路２７１ａで接続されており、演算器Ｂ−Ｃ間は、バイパス回路２７１ｂ、演算器Ｃ−Ａ間は、バイパス回路２７１ｃで接続されている。試験命令列制御部２４０の試験開始命令によって、各演算器は、試験命令列１００のうちの割り当てられた命令を処理する。例えば、図１(ａ)に示す試験命令列１００がパターン（１）で実行されると、バイパス回路２７１ａに故障が発生しているかが判定されることになる。同様に、パターン（２）の実行により、バイパス回路２７１ｂの故障の有無が判定され、パターン（３）の実行により、バイパス回路２７１ｃの故障の検出が行われる。レジスタ２８０は、試験命令列が実行される際に、適宜使用される。
【００３２】
図３は、情報処理装置のハードウェア構成の例である。図３は、情報処理装置３００と、ディスプレイ装置３０７を有する。情報処理装置３００は、プロセッサメモリ３０２、入力装置インターフェース３０３、バス３０４、記憶装置３０５、出力装置インターフェース３０６を備える。図３の例では、プロセッサは、ＣＰＵ（Central Processing Unit）３０１であるが、情報処理装置は、実装に応じた任意の制御回路を備えていても良い。ＣＰＵ３０１は、バス３０４を介して、メモリ３０２、入力装置インターフェース３０３、記憶装置３０５、出力装置インターフェース３０６と相互に接続されている。ＣＰＵ３０１は、記憶装置３０５に格納されたプログラム、又は、メモリ３０２にロードされたプログラムを実行する。記憶装置３０５は、磁気ディスク装置、光ディスク装置、光磁気ディスク装置あるいは半導体記憶装置を含み、コンピュータ読み取り可能な記録媒体を扱うドライブ装置も含む。ドライブ装置が扱う記録媒体としては、磁気テープ、メモリカード、光ディスク（CD-ROM、DVD-ROMなど）、光磁気ディスク（MO、MDなど）といった、任意のコンピュータ読み取り可能な記録媒体を使用することができる。記憶装置３０５は、実施例に係る各処理を行うプログラム、及び、実施例において使用する各種データを格納している。
【００３３】
次に、図３のハードウェア構成を、図２の構成に基づいて説明する。複数の演算器２７０は、ＣＰＵ３０１に該当し、レジスタ２８０は、ＣＰＵ３０１に含まれる。試験制御部１０１の処理を実現するために使用されるプログラムは、メモリ３０２又は記憶装置３０５に記憶される。更に、試験制御部１０１は、試験命令列生成部２１０、試験開始アドレス設定部２２０、試験データ設定部２３０、試験命令列制御部２４０、試験結果出力部２５０を備え、ＣＰＵ３０１によって実現される。試験命令列生成部２１０は、試験命令列を生成する際に、データベース２６０から処理命令列や予測値などの各種情報を取得する。データベース２６０は、記憶装置に記憶されていてもよく、入力装置インターフェース３０３を介した不図示の外部記憶装置であってもよい。また、処理命令列や予測値などの各種情報を、キーボードやマウスといった入力装置インターフェース３０３を使用して、オペレータによって入力されてもよい。試験結果出力部２５０は、演算結果を出力する際に、出力装置インターフェース３０６を介して、ディスプレイ装置３０７にその演算結果を表示する。
【００３４】
図４は、試験命令列を使用した第１の試験で行われる処理の例を説明するフローチャートである。第１の試験は、１つの試験開始アドレスを指定して試験命令列を処理する試験である。第１の試験で行われる一連の処理の例を、ステップＳ１０１〜Ｓ１０７に示す。試験制御部が、ステップＳ１０１〜Ｓ１０４と、ステップＳ１０６〜Ｓ１０７とを行い、複数の演算器が、ステップＳ１０５を処理する。
【００３５】
試験命令列生成部２１０は、試験命令列を生成する（ステップＳ１０１）。試験開始アドレス設定部２２０は、試験開始アドレスの初期値として用いるメモリアドレスを設定する（ステップＳ１０２）。試験データ設定部２３０は、試験に使用するデータを設定する（ステップＳ１０３）。試験に使用するデータは、試験命令列、演算器の数、予測値、所定の試験環境情報、試験番号などである。試験命令列制御部２４０は、試験開始アドレスを指定し、試験開始命令を出力する（ステップＳ１０４）。第１の試験では、試験開始アドレスとして、Ｓ１０２で設定された試験開始アドレスの初期値が使用される。複数の演算器２７０は、試験開始アドレスから試験命令列を実行する（ステップＳ１０５）。なお、試験命令列が複数の演算器で実行されている間は、他の演算命令の割り込みがないことが好ましい。そのため、試験開始命令を受信すると、複数の演算器は実行中の演算命令をキャンセルし、試験命令列の実行を優先して行う。また、試験制御部は、試験開始命令を出力した後は、演算結果を受信するまで処理を行わない。試験命令列制御部２４０は、演算結果を受信し、演算結果を予測値と比較する（ステップＳ１０６）。試験結果出力部２５０は、ステップＳ１０６から比較結果を取得し、比較結果を試験結果として出力する（ステップＳ１０７）。
【００３６】
第２の試験の例を、図５Ａ〜Ｄと図６で説明する。第２の試験の説明では、１つの試験命令列が出力されてから、試験命令列から得られる複数のパターンの命令列が実行され、試験結果が複数のパターンについてまとめて得られる場合について述べる。また、第２の試験の説明では、演算器Ａ〜Ｄの４つの演算器を備える情報処理装置での試験を例として説明する。
【００３７】
以下の説明では図５Ａに示す試験命令列が生成されるものとする。試験命令列生成部２１０は、処理命令列をデータベース２６０から取得して、メモリアドレス４０４〜４１１に格納したとする。さらに、試験命令列生成部２１０は、演算器の数が４であることから、処理命令列の先頭に付加するＮＯＰ命令の数を３に決定したとする。すると、個々で生成される図５Ａに示すとおりになる。図５Ａの例では、試験命令列４００は、メモリアドレス４０１〜４０３にＮＯＰ命令と、処理命令列である演算命令をメモリアドレス４０４〜４１１に備え、メモリアドレス４１２にリターン命令を備える。図５Ａに示す試験命令列４００では、メモリアドレス４０４とメモリアドレス４０９に格納された命令を実行する演算器が、レジスタ中の同じアドレスに対するアクセスを重複して行うものとする。また、分岐命令は、試験命令列内の各ＮＯＰ命令のメモリアドレスや、処理命令列の先頭のメモリアドレスを試験開始アドレスとして指定することができる。よって、試験命令列４００は、試験開始アドレスとして、メモリアドレス４０１〜４０４を指定することができる。第２の試験では、メモリアドレス４０１〜４０４が試験開始アドレスとして一度ずつ指定されることにより、以下の４つのパターンの命令列を用いた試験が行われる。
【００３８】
（ｉ）メモリアドレス４０１に格納されているＮＯＰ命令から複数の演算器に実行されるパターン
（ii）メモリアドレス４０２に格納されているＮＯＰ命令から複数の演算器に実行されるパターン
（iii）メモリアドレス４０３に格納されているＮＯＰ命令から複数の演算器に実行されるパターン
（iv）メモリアドレス４０４に格納されている処理命令列の先頭の演算命令から複数の演算器に実行されるパターン（メモリアドレス４０１，４０２、４０３に格納されているＮＯＰ命令は、演算器で実行されない）
【００３９】
図６は、試験命令列を使用した第２の試験で行われる処理の例を説明するフローチャートである。第２の試験は、パターン（ｉ）、パターン（ii）、パターン（iii）、パターン（iv）の順番で、試験を連続して行う。
【００４０】
＜１回目の試験：パターン（ｉ）＞
最初の処理として、試験命令列生成部２１０は、試験命令列４００を生成する（ステップＳ２０１）。試験命令列４００は、パターン（ｉ）〜（iv）で共通して使用する試験命令列である。そのため、２回目以降の試験では、試験命令列４００を再度生成する処理を有さない。試験開始アドレス設定部２２０は、試験開始アドレスの初期値としてメモリアドレス４０１を設定する（ステップＳ２０２）。試験データ設定部２３０は、試験に使用するデータを設定する（ステップＳ２０３）。試験に使用するデータは、試験命令列４００、演算器の数、予測値、所定の試験環境情報、試験番号などである。試験命令列制御部２４０は、試験開始アドレスとしてメモリアドレス４０１を指定し、試験開始命令を出力する（ステップＳ２０４）。複数の演算器２７０は、試験開始アドレスから試験命令列を実行する（ステップＳ２０５）。パターン（ｉ）の試験では、試験命令列４００の各演算命令は、図５Ａに示すように演算器Ａ〜Ｄに割り当てられる。メモリアドレス４０４とメモリアドレス４０９に格納された命令を実行する演算器が、レジスタ中の同じアドレスに対するアクセスを重複して行う。そのため、パターン（ｉ）の試験は、演算器Ｄ−Ａ間のバイパス回路を使用している。試験命令列制御部２４０は、パターン（ｉ）の演算結果を受信し、演算結果を予測値と比較処理を行い、演算器Ｄ−Ａ間のバイパス回路が故障しているかを判断する（ステップＳ２０６）。試験命令列制御部２４０は、次に実行する試験命令列の試験開始アドレスを算出する（ステップＳ２０７）。試験命令列制御部２４０は、次に実行する試験命令列の試験開始アドレスをメモリアドレス４０２とする。試験命令列制御部２４０は、演算器数と同じ回数の試験を実行したかを判断する（ステップＳ２０８）。パターン（ｉ）は１回目の試験であるため、演算器数と同じ４回の試験を実行しておらず、ステップＳ２０８では、ＮＯと判断され、処理をステップＳ２０３に返す。
【００４１】
＜２回目の試験：パターン（ii）＞
試験データ設定部２３０は、試験に使用するデータを設定する（ステップＳ２０３）。ここで設定されるデータは、１回目の試験のステップＳ２０７で算出された、次に実行する試験命令列の試験開始アドレスである。１回目の試験のステップＳ２０７の算出の結果、試験データ設定部２３０は、次に実行する試験命令列の試験開始アドレスとして、メモリアドレス４０２を設定する。なお、１回目の試験のステップＳ２０３で設定した試験命令列４００、演算器の数、予測値、所定の試験環境情報は、２回目の試験でも同じものを使用する。試験命令列制御部２４０は、試験開始アドレスとしてメモリアドレス４０２を指定し、試験開始命令を出力する（ステップＳ２０４）。複数の演算器２７０は、試験開始アドレスから試験命令列を実行する（ステップＳ２０５）。パターン（ii）の試験では、試験命令列４００の各演算命令は、図５Ｂに示すように、演算器Ａ〜Ｄに割り当てられる。試験命令列４００のメモリアドレス４０１に格納されているＮＯＰ命令は、演算器で実行されない。メモリアドレス４０４とメモリアドレス４０９に格納された命令を実行する演算器が、レジスタ中の同じアドレスに対するアクセスを重複して行う。そのため、パターン（ii）の試験は、演算器C−D間のバイパス回路を使用している。試験命令列制御部２４０は、パターン（ii）の演算結果を受信し、演算結果を予測値と比較することにより、演算器Ｃ−Ｄ間のバイパス回路が故障しているかを判断する（ステップＳ２０６）。試験命令列制御部２４０は、次に実行する試験命令列の試験開始アドレスを算出する（ステップＳ２０７）。試験命令列制御部２４０は、次に実行する試験命令列の試験開始アドレスをメモリアドレス４０３とする。試験命令列制御部２４０は、演算器数と同じ回数の試験を実行したかを判断する（ステップＳ２０８）。パターン（ii）は２回目の試験であるため、演算器数と同じ４回の試験を実行していない。このため、ステップＳ２０８では、NOと判断され、処理がステップＳ２０３から繰り返される。
【００４２】
＜３回目の試験：パターン（iii）＞
試験データ設定部２３０は、試験に使用するデータを設定する（ステップＳ２０３）。ここで設定されるデータは、２回目の試験のステップＳ２０７で算出された、次に実行する試験命令列の試験開始アドレスである。２回目の試験のステップＳ２０７の算出の結果、試験データ設定部２３０は、次に実行する試験命令列の試験開始アドレスとして、メモリアドレス４０３を設定する。なお、１回目の試験のステップＳ２０３で設定した試験命令列４００、演算器の数、予測値、所定の試験環境情報は、３回目の試験でも同じものを使用する。試験命令列制御部２４０は、試験開始アドレスとしてメモリアドレス４０３を指定し、試験開始命令を出力する（ステップＳ２０４）。複数の演算器２７０は、試験開始アドレスから試験命令列を実行する（ステップＳ２０５）。パターン（iii）の試験では、試験命令列４００の各演算命令は、図５Ｃに示すように、演算器Ａ〜Ｄに割り当てられる。試験命令列４００のメモリアドレス４０１、４０２に格納されているＮＯＰ命令は、演算器で実行されない。メモリアドレス４０４とメモリアドレス４０９に格納された命令を実行する演算器が、レジスタ中の同じアドレスに対するアクセスを重複して行う。そのため、パターン（iii）の試験は、演算器B−C間のバイパス回路を使用している。試験命令列制御部２４０は、パターン（iii）の演算結果を受信し、演算結果を予測値と比較することにより、演算器B−C間のバイパス回路が故障しているかを判断する（ステップＳ２０６）。試験命令列制御部２４０は、次に実行する試験命令列の試験開始アドレスを算出する（ステップＳ２０７）。試験命令列制御部２４０は、次に実行する試験命令列の試験開始アドレスをメモリアドレス４０４とする。試験命令列制御部２４０は、演算器数と同じ回数の試験を実行したかを判断する（ステップＳ２０８）。パターン（iii）は３回目の試験であるため、演算器数と同じ４回の試験を実行していない。このため、ステップＳ２０８では、ＮＯと判断され、処理をステップＳ２０３から繰り返される。
【００４３】
＜４回目の試験：パターン（iv）＞
試験データ設定部２３０は、試験に使用するデータを設定する（ステップＳ２０３）。ここで設定されるデータは、３回目の試験のステップＳ２０７で算出された、次に実行する試験命令列の試験開始アドレスである。３回目の試験のステップＳ２０７の算出の結果、試験データ設定部２３０は、次に実行する試験命令列の試験開始アドレスとして、メモリアドレス４０４を設定する。なお、１回目の試験のステップＳ２０３で設定した試験命令列４００、演算器の数、予測値、所定の試験環境情報は、４回目の試験でも同じものを使用する。試験命令列制御部２４０は、試験開始アドレスとしてメモリアドレス４０４を指定し、試験開始命令を出力する（ステップＳ２０４）。複数の演算器２７０は、試験開始アドレスから試験命令列を実行する（ステップＳ２０５）。パターン（iv）の試験では、試験命令列４００の各演算命令は、図５Ｂに示すように、を演算器Ａ〜Ｄに割り当てられる。試験命令列４００のメモリアドレス４０１、４０２に格納されているＮＯＰ命令は、演算器で実行されない。メモリアドレス４０４とメモリアドレス４０９に格納された命令を実行する演算器が、レジスタ中の同じアドレスに対するアクセスを重複して行う。そのため、パターン（iv）の試験は、演算器A−B間のバイパス回路を使用している。試験命令列制御部２４０は、パターン（iv）の演算結果を受信し、演算結果を予測値と比較することにより、演算器Ａ−Ｂ間のバイパス回路が故障しているかを判断する（ステップＳ２０６）。試験命令列制御部２４０は、次に実行する試験命令列の試験開始アドレスを算出する（ステップＳ２０７）。試験命令列制御部２４０は、演算器数と同じ回数の試験を実行したかを判断する（ステップＳ２０８）。パターン（iv）は４回目の試験であるため、演算器数と同じ４回の試験を実行している。そのため、ステップＳ２０８では、ＹＥＳと判断され、処理をステップＳ２０９に移す。
【００４４】
試験結果出力部２５０は、全試験におけるステップＳ２０６の比較結果を受信し、試験結果として出力する（ステップＳ２０９）。ステップＳ２０９が終了すると、試験制御部は処理を終了する。
【００４５】
図６は、第２の試験の例として、パターン（ｉ）を１回目の試験とし、パターン（ii）、パターン（iii）、パターン（iv）を順番に実行するように試験を行っているが、実施例は上記のものに限定されない。パターン（iv）の試験を１回目に行い、パターン（iii）、パターン（ii）、パターン（ｉ）の順番に試験を実行してもよい。
【００４６】
図７は、試験命令列の生成例を説明するフローチャートである。図７では、図６のステップＳ２０１の処理を詳しく説明している。試験命令列生成部２１０は、試験を行う演算器の数を指すarithmetic_noを、データベース２６０より取得する（ステップＳ３０１）。取得したarithmetic_noは、所定のメモリや記憶装置に記憶される。試験命令列生成部２１０は、試験命令列の先頭のメモリアドレスを指すstart_address番地を取得する（ステップＳ３０２）。取得する試験命令列の先頭のメモリアドレスは、試験命令列を生成するために使用される任意のメモリアドレスである。取得したstart_address番地は、所定のメモリや記憶装置に記憶される。
【００４７】
ステップＳ３０３〜Ｓ３０５は、試験命令列にＮＯＰ命令を書き込む処理を示す。試験命令列生成部２１０は、arithmetic_noから１を減算し、減算された値が０より大きいかを判断する（ステップＳ３０３）。arithmetic_noから１を減算した値が０より大きい場合、試験命令列生成部２１０は、start_address番地に、ＮＯＰ命令を書き込む（ステップＳ３０３でＹＥＳ、ステップＳ３０４）。試験命令列制御部２４０は、start_address番地に１つのＮＯＰ命令の格納に使用されるメモリサイズを加算する。また、試験命令列制御部２４０は、arithmetic_noから１を減算する。試験命令列制御部２４０は、１つのＮＯＰ命令の格納に使用されるメモリサイズを加算したstart_address番地と、減算されたarithmetic_noを、ステップＳ３０３に返し、ステップＳ３０３以降の処理を繰り返す。
【００４８】
ステップＳ３０６〜Ｓ３０８は、試験命令列に処理命令列とリターン命令を書き込む処理を示す。arithmetic_noから１を減算した値が０になると、試験命令列制御部２４０は、データベース２６０から、処理命令列を取得する（ステップ３０３でＮＯ、ステップＳ３０６）。試験命令列生成部２１０は、ステップＳ３０５で最後に算出されたstart_address番地に、処理命令列を書き込む（ステップＳ３０７）。試験命令列生成部２１０は、処理命令列の末尾にリターン命令を書き込む（ステップＳ３０８）。ステップＳ３０８が終了すると、試験命令列生成部２１０は処理を終了する。
【００４９】
図８は、試験命令列を使用した試験制御方法の例を説明するフローチャートである。図８では、図６のステップＳ２０２〜Ｓ２０８を詳しく説明している。
試験開始アドレス設定部２２０は、試験番号を指すTest_Noに０を設定する（ステップＳ４０１）。試験番号は、試験開始アドレスに対応づけて付与される番号である。試験開始アドレス設定部２２０は、試験開始アドレスの初期値としてメモリアドレスを指すtest_addressを設定する（ステップＳ４０２）。test_addressは、以下の数式１で算出される。
【数１】
2014106928.tif 000003
【００５０】
上記の数式で使用されるstart_addressは、ステップＳ３０２で取得されたstart_address番号である。また、上記の数式で使用されるarithmetic_noは、ステップＳ３０１で取得されたarithmetic_noである。
【００５１】
試験データ設定部２３０は、試験に使用するデータを設定する（ステップＳ４０３）。ここで設定されるデータは、演算器の数、予測値、所定の試験環境情報、試験番号である。試験命令列制御部２４０は、試験開始アドレスを指定し、試験開始命令を出力する（ステップＳ４０４）。複数の演算器２７０は、試験開始アドレスから試験命令列を実行する（ステップＳ４０５）。複数の演算器２７０は、ステップＳ４０５の演算結果を試験命令列制御部２４０に送る。試験命令列制御部２４０は、ステップＳ４０５の演算結果を複数の演算器２７０から受信する（ステップＳ４０６）。試験命令列制御部２４０は、受信した演算結果と予測値を比較し、比較結果を出力する（ステップＳ４０７）。試験命令列制御部２４０は、test_addressに１つのＮＯＰ命令の格納に使用されるメモリサイズを加算する（ステップＳ４０８）。試験命令列制御部２４０は、Test_Noに１を加算する（ステップＳ４０９）。試験命令列制御部２４０は、試験の回数が、演算器の数以下であるかを判断する（ステップＳ４１０）。試験データ設定部２３０は、試験に使用するデータを設定する（ステップＳ４１０がYES、ステップＳ４０３）。ステップＳ４１０でYESと判断されると、ステップＳ４０８で算出されたtest_addressと、ステップＳ４０９で算出されたTest_Noとが、試験データ設定部２３０で設定される。ステップＳ４０３の処理が実行されると、ステップＳ４０４〜Ｓ４１０の処理が繰り返される。一方、ステップＳ４１０でＮｏと判断されると、試験命令列制御部は、処理を終了する（ステップＳ４１０がＮＯ、ＥＮＤ）。
【００５２】
図９は、試験命令列の演算結果と予測値を比較する処理の例を説明するフローチャートである。このフローチャートは、図６のステップＳ２０６の処理を詳しく説明している。試験命令列制御部２４０は、試験命令列の演算結果を取得し、所定のメモリに格納する（ステップＳ５０１）。試験命令列制御部２４０は、データベース２６０から取得した予測値を所定のメモリより読み出す（ステップＳ５０２）。演算結果と予測値を比較する（ステップＳ５０３）。予測値は、情報処理装置の環境に応じた、レジスタ毎の予測値を含む。試験命令列制御部２４０は、ステップＳ５０３の比較によって、演算結果と予測値が一致したかを判断する（ステップＳ５０４）。演算結果と予測値が一致したと判定されると、試験命令列制御部２４０は、所定のメモリに、演算結果と予測値が一致したことを書き込む（ステップＳ５０４がＹＥＳ、ステップＳ５０５）。一方、演算結果と予測値が一致なかった場合、試験命令列制御部２４０は、所定のメモリに演算結果と予測値が一致しなかったことを書き込む。また、不一致となったレジスタに対応した予測値と演算結果とを所定のメモリに書き込む（ステップＳ５０５がＮＯ、ステップＳ５０６）。
【００５３】
図１０は、試験結果データの例である。図１０は、ステップＳ５０５と、ステップＳ５０６で所定のメモリに書き込まれた比較結果を、試験結果出力部２５０が、試験結果の例とする表示の一例である。図１０は、最上段の行に試験番号を備え、２行目に各試験番号に対応した試験結果を示す。併せて、図１０は、各試験番号に対応して、レジスタ毎にステップＳ５０４の比較結果を表している。
【００５４】
ステップＳ４０１において、Test_Noは、初期値として０が設定されている。図６で例示したパターン（ｉ）〜パターン（iv）の連続した試験では、１回目の試験のパターン（ｉ）は、Test_Noが０の列に、比較結果が表示される。次に、２回目の試験のパターン（ii）は、Test_Noが１の列に、３回目の試験のパターン（iii）は、Test_Noが２の列に、４回目の試験のパターン（iv）は、Test_Noが３の列に比較結果が表示されている。
【００５５】
図１０では、Test_Noが１の列において、試験結果がNGと判断されている。そして、Test_Noが１の列を確認すると、レジスタ３においてNGとなっている。更に、レジスタ３には、予測値及び演算結果が表示されている。オペレータは、表示されている予測値及び演算結果を元に、故障が発生している回路を特定する。予めTest_Noが１の列が、演算器C−D間のバイパス回路の故障の検出を行うパターン（ii）の試験であると分かっている場合は、オペレータはTest_Noを参照することにより、故障が発生している回路を特定できる。また、演算器Ｃ−Ｄ間のバイパス回路が正常にも関わらず、レジスタ３がＮＧとある場合は、レジスタ３が破損していることも考えられる。
【００５６】
以上説明したように、実施形態にかかる方法では、特定の演算器間を接続するバイパス回路の試験に使用することができる命令列を処理命令列として使用する。さらに、処理命令列と、処理命令列の演算に影響を与えない命令列を合わせて得られる命令列が、試験命令列として生成される。また、１つの試験命令列を使用するときに、試験を開始するアドレスを変動させることにより、試験対象とするバイパス回路を変更することができる。このため、実施形態にかかる方法を用いると、効率的に、演算器間のバイパス回路の故障の検出を行うことができる。
【００５７】
＜その他＞
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【００５８】
図６のフローチャートに示す、パターン（ｉ）〜（iv）の連続した試験を、パターン（ｉ）から順番に実施しているものの、パターン（ｉ）〜（iv）の試験をランダムに１度ずつ試験するようにしてもよい。
【００５９】
図５では、演算器Ａ−Ｂ間のバイパス回路、演算器Ｂ−Ｃ間のバイパス回路、演算器Ｃ−Ｄ間のバイパス回路、演算器Ｄ−Ａ間のバイパス回路の故障の検出を行う図である。しかし、演算器は他の組み合わせでも、互いに回路で接続されており、図５の例は、故障の検出を行う演算器間の回路を限定するものではない。例えば、演算器Ａ−Ｃ間のバイパス回路、演算器Ｂ−Ｄ間のバイパス回路についての故障の検出を行うようにしてもよい。その場合は、例えば、図５Ａにおける、メモリアドレス４０５とメモリアドレス４１１に格納された命令を実行する演算器が、レジスタ中の同じアドレスに対するアクセスを重複して行うものとすればよい。
【００６０】
図６のステップＳ２０９や、図８のステップＳ４１０では、試験の回数を演算器の数と比較して、処理を次のステップに移すことを判断している。しかしながら、図６のステップＳ２０９や、図８のステップＳ４１０の判断基準は、試験の回数と演算器の数の比較に限定されない。図６のステップＳ２０９や、図８のステップＳ４１０は、試験の回数と、予め決定した所定の閾値とを比較するようにしてもよい。この場合、例えば、閾値は、追加されたＮＯＰ命令の数とすることができる。
【００６１】
図１、図５の例は、演算器の数を限定するものではない。同様に、図１、図５の例は、処理命令列が含む演算命令の数を限定するものではない。
【符号の説明】
【００６２】
１００  試験命令列
１０１  試験制御部
１１０  処理命令列
１１１〜１１９  メモリアドレス
２１０  試験命令列生成部
２２０  試験開始アドレス設定部
２３０  試験データ設定部
２４０  試験命令列制御部
２５０  試験結果出力部
２６０  データベース
２７０  複数の演算器
２７１ａ〜２７１ｃ  バイパス回路
２８０  レジスタ
３００  情報処理装置
３０１  ＣＰＵ
３０２  メモリ
３０３  入力装置インターフェース
３０４  バス
３０５  記憶装置
３０６  出力装置インターフェース
３０７  ディスプレイ装置
４００  試験命令列
４０１〜４１２  メモリアドレス
【図１】
2014106928.tif 000004
【図２】
2014106928.tif 000005
【図３】
2014106928.tif 000006
【図４】
2014106928.tif 000007
【図５Ａ】
2014106928.tif 000008
【図５Ｂ】
2014106928.tif 000009
【図５Ｃ】
2014106928.tif 000010
【図５Ｄ】
2014106928.tif 000011
【図６】
2014106928.tif 000012
【図７】
2014106928.tif 000013
【図８】
2014106928.tif 000014
【図９】
2014106928.tif 000015
【図１０】
2014106928.tif 000016