JP5181699B2 - Computer test method, program, and information processing apparatus - Google Patents
Computer test method, program, and information processing apparatus Download PDFInfo
- Publication number
- JP5181699B2 JP5181699B2 JP2008020023A JP2008020023A JP5181699B2 JP 5181699 B2 JP5181699 B2 JP 5181699B2 JP 2008020023 A JP2008020023 A JP 2008020023A JP 2008020023 A JP2008020023 A JP 2008020023A JP 5181699 B2 JP5181699 B2 JP 5181699B2
- Authority
- JP
- Japan
- Prior art keywords
- log
- failure
- trap
- instruction
- instruction sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Description
本発明は,試験命令列(テストプログラム)を用いて情報処理装置のシステム試験を行う技術に関するものであり,特に,試験において障害が検出された場合に,障害発生要因となる命令を含む命令列の範囲を自動的に絞り込むコンピュータ試験方法,プログラムおよび情報処理装置に関するものである。 The present invention relates to a technology for performing a system test of an information processing apparatus using a test instruction sequence (test program), and in particular, an instruction sequence including an instruction that causes a failure when a failure is detected in the test. The present invention relates to a computer test method, a program, and an information processing apparatus for automatically narrowing down the scope of information.
情報処理システムの試験方法として,試験命令列(テストプログラム)を試験対象の情報処理装置で実行させることにより試験を行う方法がある。以下では,乱数を用いて生成された試験命令列をランダム命令列と呼び,そのランダム命令列を用いた情報処理システムの試験をランダム命令列試験と呼ぶ。 As a test method for an information processing system, there is a method for performing a test by causing a test instruction sequence (test program) to be executed by an information processing apparatus to be tested. Hereinafter, a test instruction sequence generated using random numbers is referred to as a random instruction sequence, and an information processing system test using the random instruction sequence is referred to as a random instruction sequence test.
ランダム命令列試験を実行するプログラムによる障害個所の絞込みとしては,例えば,以下の(i),(ii)に示すような方法が従来考えられている。 Conventionally, for example, the following methods (i) and (ii) have been conceived as methods for narrowing down the failure location by a program that executes a random instruction sequence test.
(i)ランダム命令列試験において障害が検出された場合に,ランダム命令列の最上部から複数命令を削除する。削除する命令は,数十命令から数百命令,数千命令の場合もある。削除した部分の命令列を,あらかじめソフトシミュレータで実行する。ソフトシミュレータによる実行結果の環境,すなわち全制御レジスタや試験対象メモリの内容を初期化データとして設定し,削除後の残りの部分の命令列を試験対象の情報処理システムで実行する。理論的に,部分削除を行う前のランダム命令列と同じ動作をすることとなる。このような作業を,削除する命令数を変えながら繰り返し,障害個所の絞込みを行う。 (I) When a failure is detected in the random instruction sequence test, a plurality of instructions are deleted from the top of the random instruction sequence. Instructions to be deleted may be from tens to hundreds or thousands of instructions. The instruction sequence of the deleted part is executed in advance by the software simulator. The environment of the execution result by the software simulator, that is, the contents of all control registers and test target memory are set as initialization data, and the remaining instruction sequence after deletion is executed by the information processing system to be tested. Theoretically, the same operation as the random instruction sequence before partial deletion is performed. Such an operation is repeated while changing the number of instructions to be deleted, and the trouble spots are narrowed down.
(ii)ランダム命令列試験において障害が検出された場合に,ランダム命令列の障害が発生したと考えられる個所から遠くない場所の命令をトラップ命令に書き換える。書き換え後のランダム命令列を試験対象の情報処理システムで実行し,書き換えられたトラップ命令の部分で全制御レジスタや試験対象メモリのログを採取する。このように採取されたログと,あらかじめ書き換え後のランダム命令列をソフトシミュレータで実行して採取されたログとを比較する。または,試験対象の情報処理装置で書き換え後のランダム命令列を2回実行し,その2回の試験結果として採取されたログ同士を比較する。このような作業を,ログの比較結果のOK/NGによってトラップ命令への書き換え場所を変えながら繰り返し,障害個所の絞込みを行う。 (Ii) When a failure is detected in the random instruction sequence test, the instruction at a location not far from the location where the failure of the random instruction sequence is considered to have occurred is rewritten as a trap instruction. The rewritten random instruction sequence is executed in the information processing system to be tested, and logs of all control registers and test target memory are collected at the rewritten trap instruction portion. The log collected in this way is compared with a log collected by executing a rewritten random instruction sequence in advance with a software simulator. Alternatively, the rewritten random instruction sequence is executed twice by the information processing apparatus to be tested, and the logs collected as the results of the two tests are compared. Such work is repeated by changing the place of rewriting to the trap instruction by OK / NG of the log comparison result, and narrowing down the faulty part.
なお,ランダム命令列試験を用いて情報処理システムの試験を行う技術が記載された先行技術文献としては,例えば特許文献1などがある。特許文献1には,乱数値を用いて生成されたテスト命令列を生成し,生成されたテスト命令列を,ソフトシミュレータと試験対象装置とで実行し,双方のテスト結果やトラップポイントにおけるトレースデータを比較することにより,異常を検出する技術が記載されている。
上記の(i),(ii)に示すランダム命令列試験の問題点は,命令列を書き換えてしまうことにある。 The problem with the random instruction sequence test shown in (i) and (ii) above is that the instruction sequence is rewritten.
プロセッサのハードウェアには,その性能を上げるために,内部にキャッシュ制御,命令パイプライン制御,先行制御,分岐予測制御,複数命令同時実行制御,RAS制御などのさまざまな仕組みが設けられているため,環境が少しでも変化するとハードウェアの内部状態が大きく変わってしまう。その結果,命令列の書き換えにより障害の発生タイミングがずれてしまい,障害が再現されなくなる可能性がある。 The processor hardware has various mechanisms such as cache control, instruction pipeline control, advance control, branch prediction control, simultaneous execution control of multiple instructions, and RAS control in order to improve its performance. , If the environment changes even a little, the internal state of the hardware will change significantly. As a result, there is a possibility that the failure occurrence timing is shifted due to rewriting of the instruction sequence and the failure is not reproduced.
上記の(i),(ii)に示す方法では,明らかに命令列を変えているため,ハードウェアの内部状態が障害発生のタイミングからズレてしまう可能性が高く,障害が再現される可能性も低くなってしまう。このことから,障害を再現させながら障害個所の絞込みを実現させるためには,障害を検出した命令列を変更せずに,そのままの命令列で障害個所の絞込みを行う必要がある。 In the methods shown in (i) and (ii) above, the instruction sequence is clearly changed, so the hardware internal state is likely to deviate from the failure occurrence timing, and the failure may be reproduced. Will also be low. For this reason, in order to realize the narrowing down of the fault location while reproducing the fault, it is necessary to narrow down the fault location with the same instruction sequence without changing the instruction sequence in which the fault is detected.
本発明は,試験命令列を変更することなく,障害個所の絞込みを実現する技術を提供することを目的とする。 It is an object of the present invention to provide a technique for narrowing down fault locations without changing a test instruction sequence.
試験命令列を用いた情報処理システムの試験において,ログを採取するトリガとして,ソフトウェアトラップとハードウェアトラップの2種類のトラップを用意する。ソフトウェアトラップは,試験命令列に埋め込まれたトラップ命令によって発生する割り込みである。ハードウェアトラップは,試験命令列中の命令を実行した結果として発生する割り込みである。 Two types of traps, software traps and hardware traps, are prepared as triggers for collecting logs in information processing system tests using test instruction sequences. A software trap is an interrupt generated by a trap instruction embedded in a test instruction sequence. A hardware trap is an interrupt generated as a result of executing an instruction in the test instruction sequence.
また,トラップ発生時に採取するログの種別として,フルログと簡易ログの2つのログ種別を用意する。フルログ採取では,広い範囲のコンピュータの状態,例えばレジスタとメモリのデータを採取する。簡易ログ採取では,フルログより狭い範囲のコンピュータの状態,例えばレジスタのデータのみを採取する。 In addition, two log types, a full log and a simple log, are prepared as log types to be collected when a trap occurs. Full log collection collects a wide range of computer states, such as registers and memory data. In simple log collection, only the state of a computer in a narrower range than the full log, for example, register data is collected.
これらのソフトウェアトラップ/ハードウェアトラップや,フルログ/簡易ログの特徴を生かして使い分けることにより,試験命令列の実行による障害の検出や,障害発生要因となる命令を含む命令列の範囲の絞込みを行う。 By using these software traps / hardware traps and full log / simple log, it is possible to detect failures due to execution of test instruction sequences and narrow down the range of instruction sequences including instructions that cause failures. .
具体的には,テストプログラムの実行により障害を検出する障害検出部と,障害が検出されたテストプログラムの障害箇所を絞り込む障害発生源絞込み部とを備える情報処理装置が行うコンピュータ試験方法は,障害検出部が,トラップ命令が埋め込まれたテストプログラムを複数回実行し,テストプログラムの実行におけるトラップ命令によるソフトウェアトラップ時にはレジスタおよびメモリのデータのログである第一のログを採取し,ハードウェアトラップ時にはレジスタのログである第二のログを採取し,ある回のテストプログラムの実行において採取した第一のログおよび第二のログと,他の回のテストプログラムの実行において採取した第一のログおよび第二のログとを比較して,不一致であったログ採取箇所の直前のソフトウェアトラップ発生箇所から,不一致であったログ採取箇所までの命令列を障害発生命令列として検出する過程と,障害発生源絞込み部が,テストプログラムを複数回実行し,障害発生命令列の実行における少なくとも1箇所のハードウェアトラップ時に第一のログを採取し,ある回のテストプログラムの実行において採取した第一のログと,他の回のテストプログラムの実行において採取した第一のログとが一致するか不一致であるかを比較し,一致する場合に,一致したログ採取箇所より後方の命令列が障害発生命令列であるとし,不一致であった場合に,一致したログ採取箇所以前の命令列が障害発生命令列であるとして障害発生源を絞り込む過程とを有する。 Specifically, a failure detection unit for detecting failures by executing the test program, the computer test method information processing apparatus performs and a failure source refining unit to narrow the fault location of the test program failure is detected, failure The detection unit executes the test program in which the trap instruction is embedded multiple times, collects the first log, which is a log of register and memory data, at the time of software trap by the trap instruction in the execution of the test program, and at the time of hardware trap The second log, which is the register log, is collected. The first and second logs collected during the execution of one test program, the first log collected during the execution of another test program, and Compared to the second log, the software immediately before the log collection location that did not match The process of detecting the instruction sequence from the location where the trap occurred to the log collection location where there was a mismatch as the fault instruction sequence, and the fault source narrowing section execute the test program multiple times, The first log is collected at one hardware trap, and the first log collected during the execution of a test program matches the first log collected during the execution of another test program. If they match, it is assumed that the instruction sequence behind the matched log collection location is the failure instruction sequence. If there is a mismatch, the command sequence before the matched log collection location is And a process of narrowing down the failure source as a failure occurrence instruction sequence.
また,上記のコンピュータ試験方法は,情報処理装置がさらに備える第二の障害発生源絞込み部が,設定されたアドレスの命令実行時にハードウェアトラップを発生させるハードウェア機能部に,障害発生命令列内のいずれかの命令のアドレスを設定し,テストプログラムを複数回実行し,障害発生命令列の実行におけるハードウェア機能部によるハードウェアトラップ時に第一のログを採取し,ある回のテストプログラムの実行において採取した第一のログと,他の回のテストプログラムの実行において採取した第一のログとが一致するか不一致であるかを比較し,一致する場合に,一致したログ採取箇所より後方の命令列が障害発生命令列であるとし,不一致であった場合に,一致したログ採取箇所以前の命令列が障害発生命令列であるとして障害発生源を絞り込む過程を有してもよい。
In the computer test method described above, the second failure source narrowing unit further provided in the information processing apparatus includes a hardware function unit that generates a hardware trap when an instruction at a set address is executed. The address of one of the instructions is set, the test program is executed multiple times, the first log is collected at the time of hardware trap by the hardware function part in executing the faulty instruction sequence, and the test program is executed once The first log collected in
また,上記のコンピュータ試験方法において,第一のログが参照可能な全レジスタおよび試験対象となるメモリ域のデータのログであり,第二のログがカレントウインドウのレジスタのデータのログであってもよい。 In the above computer test method, even if the first log is a log of all registers that can be referred to and the data in the memory area to be tested, and the second log is a log of data in the registers of the current window. Good.
また,コンピュータ試験プログラムは,テストプログラムの実行により障害を検出する障害検出部と,障害が検出されたテストプログラムの障害箇所を絞り込む障害発生源絞込み部とを備える情報処理装置に,障害検出部が,トラップ命令が埋め込まれたテストプログラムを複数回実行し,テストプログラムの実行におけるトラップ命令によるソフトウェアトラップ時にはレジスタおよびメモリのデータのログである第一のログを採取し,ハードウェアトラップ時にはレジスタのログである第二のログを採取し,ある回のテストプログラムの実行において採取した第一のログおよび第二のログと,他の回のテストプログラムの実行において採取した第一のログおよび第二のログとを比較して,不一致であったログ採取箇所の直前のソフトウェアトラップ発生箇所から,不一致であったログ採取箇所までの命令列を障害発生命令列として検出する処理と,障害発生源絞込み部が,テストプログラムを複数回実行し,障害発生命令列の実行における少なくとも1箇所のハードウェアトラップ時に第一のログを採取し,ある回のテストプログラムの実行において採取した第一のログと,他の回のテストプログラムの実行において採取した第一のログとが一致するか不一致であるかを比較し,一致する場合に,一致したログ採取箇所より後方の命令列が障害発生命令列であるとし,不一致であった場合に,一致したログ採取箇所以前の命令列が障害発生命令列であるとして障害発生源を絞り込む処理とを実行させる。 Further, the computer test program includes an information processing apparatus including a failure detection unit that detects a failure by executing the test program and a failure source narrowing unit that narrows down a failure location of the test program in which the failure is detected. , The test program with embedded trap instructions is executed multiple times, the first log, which is the register and memory data log, is collected at the time of software trap by the trap instruction in the execution of the test program, and the register log at the time of hardware trap The first log and the second log collected in the execution of one test program, the first log and the second log collected in the other test program execution. Compared with the log, the software immediately before the log collection location that was inconsistent The process of detecting the instruction sequence from the trap occurrence location to the log collection location where there was a mismatch as a fault occurrence instruction sequence, and the failure source narrowing down section execute the test program multiple times, and at least in the execution of the fault occurrence instruction sequence The first log is collected at one hardware trap, and the first log collected during the execution of a test program matches the first log collected during the execution of another test program. If they match, it is assumed that the instruction sequence behind the matched log collection location is the failure instruction sequence. If there is a mismatch, the command sequence before the matched log collection location is A process for narrowing down the failure source is executed as a failure occurrence instruction sequence.
また,情報処理装置は,トラップ命令が埋め込まれたテストプログラムを複数回実行し,テストプログラムの実行におけるトラップ命令によるソフトウェアトラップ時にはレジスタおよびメモリのデータのログである第一のログを採取し,ハードウェアトラップ時にはレジスタのログである第二のログを採取し,ある回のテストプログラムの実行において採取した第一のログおよび第二のログと,他の回のテストプログラムの実行において採取した第一のログおよび第二のログとを比較して,不一致であったログ採取箇所の直前のソフトウェアトラップ発生箇所から,不一致であったログ採取箇所までの命令列を障害発生命令列として検出する障害検出部と,テストプログラムを複数回実行し,障害発生命令列の実行における少なくとも1箇所のハードウェアトラップ時に第一のログを採取し,ある回のテストプログラムの実行において採取した第一のログと,他の回のテストプログラムの実行において採取した第一のログとが一致するか不一致であるかを比較し,一致する場合に,一致したログ採取箇所より後方の命令列が障害発生命令列であるとし,不一致であった場合に,一致したログ採取箇所以前の命令列が障害発生命令列であるとして障害発生源を絞り込む障害発生絞込み部とを備える。 In addition, the information processing apparatus executes a test program in which a trap instruction is embedded a plurality of times, collects a first log that is a log of register and memory data at the time of software trap by the trap instruction in the execution of the test program, The second log, which is the register log, is collected at the time of the wear trap, and the first log and the second log collected in the execution of one test program and the first log collected in the execution of the other test program. Failure detection by comparing the previous log and the second log and detecting the instruction sequence from the location where the software trap occurred immediately before the location where the mismatched log was collected to the location where the mismatched log was collected as the failure instruction sequence And at least one test program in the execution of the faulty instruction sequence. The first log is collected at the time of the hardware trap, and the first log collected during the execution of one test program matches the first log collected during the execution of another test program. If they match, it is assumed that the instruction sequence behind the matched log collection location is the fault occurrence command sequence. If there is a mismatch, the failure occurs in the instruction sequence before the matched log collection location. And a failure occurrence narrowing unit that narrows down the failure occurrence source as an instruction sequence.
試験命令列を用いた情報処理システムの試験において,ソフトウェアトラップ/ハードウェアトラップやフルログ/簡易ログの特徴を生かして使い分けることにより,実行する試験命令列を変えずに,障害発生の検出から障害発生要因となる命令が含まれる命令列の範囲の絞込みまでを行うことが可能となる。実行する試験命令列を変えないので,障害検出時とハードウェアの状態がほぼ変わらない状況で,障害発生要因となる命令が含まれる命令列の範囲の絞込みを行うことが可能である。 In testing information processing systems using test instruction sequences, using the features of software traps / hardware traps and full logs / simple logs, and using them properly, it is possible to detect a failure from detecting a failure without changing the test instruction sequence to be executed. It is possible to narrow down the range of the instruction sequence including the instruction that becomes the factor. Since the test instruction sequence to be executed is not changed, it is possible to narrow down the range of the instruction sequence including the instruction that causes the failure in a situation where the hardware state is not substantially different from that at the time of failure detection.
以下,本実施の形態について,図を用いて説明する。 Hereinafter, the present embodiment will be described with reference to the drawings.
本実施の形態において,試験対象であるサーバ,PC等の情報処理装置は,機能試験,アーキテクチャ試験等の基本動作試験がすでに完了していること,すなわち普通のアプリケーションが動作可能なレベルであることが前提である。以下,試験対象である情報処理装置を被試験装置と呼ぶ。 In this embodiment, the information processing apparatuses such as servers and PCs to be tested have already completed basic operation tests such as function tests and architecture tests, that is, at a level at which ordinary applications can operate. Is the premise. Hereinafter, the information processing apparatus to be tested is referred to as a device under test.
本実施の形態では,試験命令列としてランダム命令列を用い,ランダム命令列を用いたシステム試験を行うプログラムであるランダム命令列試験プログラムが被試験装置のメモリに展開され,被試験装置が,自分自身のCPUをテストすることにより,自CPUのタイミングに依存する論理障害やクリティカルパスに依存する物理障害などを検出する。 In this embodiment, a random instruction sequence is used as a test instruction sequence, and a random instruction sequence test program, which is a program for performing a system test using a random instruction sequence, is developed in the memory of the device under test. By testing its own CPU, a logical failure that depends on the timing of its own CPU, a physical failure that depends on a critical path, and the like are detected.
図1は,本実施の形態による被試験装置の構成例を示す図である。被試験装置1は,ランダム命令列試験部10を備える。ランダム命令列試験部10は,被試験装置1に対するランダム命令列を用いたシステム試験を実行する手段であり,被試験装置1のコンピュータが備えるCPU,メモリ等のハードウェアと,ソフトウェアプログラムとにより実現される。ランダム命令列試験部10は,ランダム命令列生成部11,障害検出部12,第一の障害発生源絞込み部13,第二の障害発生源絞込み部14,ログ情報保持部15を備える。
FIG. 1 is a diagram showing a configuration example of a device under test according to the present embodiment. The device under
ランダム命令列生成部11は,ランダム命令列試験に用いるランダム命令列を生成する。ランダム命令列を生成する技術は周知技術であり,例えば特許第3954248号公報などに記載されている。
The random instruction
図2は,本実施の形態によるランダム命令列生成の例を説明する図である。以下,図2を用いて,ランダム命令列を生成する例を説明する。図2おいて,seed値テーブル110,複数の試験スクリプトテーブル111,命令変換テーブル112は,あらかじめ用意された情報である。 FIG. 2 is a diagram illustrating an example of random instruction sequence generation according to the present embodiment. Hereinafter, an example of generating a random instruction sequence will be described with reference to FIG. In FIG. 2, a seed value table 110, a plurality of test script tables 111, and an instruction conversion table 112 are information prepared in advance.
seed値テーブル110には,乱数を発生させるためのseed値が記録されている。seed値とは,ランダム命令列を生成するための基となる数バイトのデータである。このseed値をもとに決められたアルゴリズムでランダムデータを生成し,試験スクリプトテーブル111の命令生成定義ファイルに従って命令を生成する。seed値と試験スクリプトテーブル111とが決まれば,必ず同一のランダム命令列を生成することができる。 In the seed value table 110, seed values for generating random numbers are recorded. The seed value is data of several bytes that is a basis for generating a random instruction sequence. Random data is generated by an algorithm determined based on the seed value, and an instruction is generated according to the instruction generation definition file of the test script table 111. If the seed value and the test script table 111 are determined, the same random instruction sequence can always be generated.
各試験スクリプトテーブル111には,各命令の生成頻度,命令の生成数,チェックポイント(check point )の間隔などの情報が記録されている。試験スクリプトテーブル111とは,ランダム命令列を作成するための情報が格納されているテーブルであり,ランダム命令列生成ジェネレータは,この試験スクリプトテーブル111の情報を解析しながら,各カテゴリの命令を配置する。ランダム命令列生成時には,一定命令ステップごとに意図的に割り込みを起させる。意図的に割り込みを起させるポイントをチェックポイントと呼び,意図的に割り込みを起させる命令としてトラップ命令を使用する。 Each test script table 111 records information such as the frequency of generation of each instruction, the number of instructions generated, and the interval between check points. The test script table 111 is a table in which information for creating a random instruction sequence is stored, and the random instruction sequence generation generator arranges instructions of each category while analyzing the information of the test script table 111. To do. When generating a random instruction sequence, an interrupt is intentionally generated at every fixed instruction step. A point that intentionally causes an interrupt is called a checkpoint, and a trap instruction is used as an instruction that intentionally causes an interrupt.
命令変換テーブル112には,命令識別コードとANDデータとORデータとの対応情報が記録されている。命令変換テーブル112のANDデータ/ORデータをランダムデータに掛け合わせることにより,命令が生成される。 In the instruction conversion table 112, correspondence information among instruction identification codes, AND data, and OR data is recorded. An instruction is generated by multiplying AND data / OR data of the instruction conversion table 112 by random data.
ランダム命令列を生成する処理の流れを説明する。まず,試験スクリプトテーブル111を1つ選択する(ステップ(s1))。seed値テーブル110のseed値を用いて所定のアルゴリズムでランダムデータを生成し,生成されたランダムデータを試験命令列空間に書き込む(ステップ(s2))。命令生成ポインタを,試験命令列空間の先頭に設定する(ステップ(s3))。 A flow of processing for generating a random instruction sequence will be described. First, one test script table 111 is selected (step (s1)). Random data is generated by a predetermined algorithm using the seed value of the seed value table 110, and the generated random data is written in the test instruction sequence space (step (s2)). The instruction generation pointer is set at the head of the test instruction sequence space (step (s3)).
命令生成ポインタから読み出した4バイトのランダムデータをインデックスとし,選択した試験スクリプトテーブル111の命令生成頻度に従って,1命令を抽出する(ステップ(s4))。 Using the 4-byte random data read from the instruction generation pointer as an index, one instruction is extracted according to the instruction generation frequency of the selected test script table 111 (step (s4)).
抽出された命令と対応するANDデータ/ORデータを命令変換テーブル112から取得し,上記4バイトのランダムデータに取得されたANDデータをand条件で掛け合わせ,さらに取得されたORデータをor条件で掛け合わせることにより命令を生成し,生成された命令を上記4バイトのランダムデータと置き換える(ステップ(s5))。 AND data / OR data corresponding to the extracted instruction is acquired from the instruction conversion table 112, the 4-byte random data is multiplied with the acquired AND data under the AND condition, and the acquired OR data is acquired under the OR condition. An instruction is generated by multiplication, and the generated instruction is replaced with the 4-byte random data (step (s5)).
命令生成ポインタを4バイト更新し,ステップ(s5)を繰り返す(ステップ(s6))。 The instruction generation pointer is updated by 4 bytes, and step (s5) is repeated (step (s6)).
試験スクリプトテーブル111のチェックポイント間隔で指定された命令数分だけ試験命令を生成した場合には,次の命令として,無条件にトラップ命令(図中の命令では,“tr”)を埋め込む(ステップ(s7))。 When test instructions are generated for the number of instructions specified by the checkpoint interval in the test script table 111, a trap instruction ("tr" in the instruction in the figure) is unconditionally embedded as the next instruction (step (S7)).
以降,試験命令列空間に生成された命令の数が試験スクリプトテーブル111で指定された命令生成数になるまで,ステップ(s4)〜ステップ(s7)を繰り返す。 Thereafter, steps (s4) to (s7) are repeated until the number of instructions generated in the test instruction sequence space reaches the number of instructions generated in the test script table 111.
このような処理により,ランダム命令列を生成することができる。なお,seed値テーブル110のseed値を更新するか,ステップ(s1)で別の試験スクリプトテーブル111を選択することにより,別のランダム命令列を生成することができる。 A random instruction sequence can be generated by such processing. It should be noted that another random instruction sequence can be generated by updating the seed value in the seed value table 110 or selecting another test script table 111 in step (s1).
図1において,障害検出部12は,ランダム命令列を実行してログを採取する処理を2回実行し,採取された2回分のログ情報を比較することにより,障害の検出を行う。障害検出部12は,ログ採取部120,ログ比較部121を備える。
In FIG. 1, a
ログ採取部120は,ランダム命令列を実行し,トラップ発生時にログを採取し,得られたログ情報をログ情報保持部15に保持する。以下では,ログ採取部120によって採取され,ログ情報保持部15に保持されるログ情報を“期待値ログ”と呼ぶ。
The
ログ比較部121は,ログ採取部120による期待値ログの取得後,再度同じランダム命令列を実行し,トラップ発生時にログを採取し,得られたログ情報をログ情報保持部15に保持された期待値ログと比較する。以下では,ログ比較部121によって採取されるログ情報を“結果値ログ”と呼ぶ。
The
ログ採取部120とログ比較部121とでは,同じランダム命令列を実行しているので,得られる期待値ログと結果値ログとは,互いに一致するはずである。しかし,何らかのハードウェア異常,例えばタイミング異常,データ化け,高負荷によるクリティカルパスなどにより,期待値ログと結果値ログとで異なるログが採取される場合がある。障害検出部12は,期待値ログと結果値ログとの比較において,互いのログが異なるトラップ発生点があれば,障害が検出されたものと判断する。
Since the
ここで,本実施の形態によるランダム命令列試験の概要について説明する。本実施の形態によるランダム命令列試験では,ログを採取するトリガとして,ソフトウェアトラップとハードウェアトラップの2種類のトラップを用意する。 Here, an outline of the random instruction sequence test according to the present embodiment will be described. In the random instruction sequence test according to the present embodiment, two types of traps, software traps and hardware traps, are prepared as triggers for collecting logs.
ソフトウェアトラップは,プログラムによって意図的に発生される割り込みである。無条件にトラップを発生させる命令であるトラップ命令を,ランダム命令列中に一定間隔にを埋め込むことで,確実にトラップを発生させることができる。トラップ命令は,障害検出の有無を特定するためのチェックポイント(check point )として有効である。以下では,ソフトウェアトラップをソフトトラップ(soft trap )と呼ぶ。 A software trap is an interrupt intentionally generated by a program. By trapping a trap instruction, which is an instruction for generating a trap unconditionally, in a random instruction sequence at fixed intervals, a trap can be generated reliably. The trap instruction is effective as a check point for specifying whether or not a failure has been detected. In the following, the software trap is called a soft trap.
ハードウェアトラップは,命令を実行した結果として発生する割り込みである。ハードウェアトラップの例としては,ゼロ除算や,非正規化数を使用したフローティング演算などがある。ハードウェアトラップは,プログラムによって意図的に発生させることができない。そのため,任意の場所でハードウェアトラップを発生させることはできない。以下では,ハードウェアトラップをハードトラップ(hard trap )と呼ぶ。 A hardware trap is an interrupt that occurs as a result of executing an instruction. Examples of hardware traps include division by zero and floating operations using denormalized numbers. Hardware traps cannot be intentionally generated by a program. Therefore, a hardware trap cannot be generated at an arbitrary location. Hereinafter, the hardware trap is referred to as a hard trap.
このようなソフトトラップやハードトラップの割り込みが発生したときに,ハードウェア状態(汎用レジスタ,制御レジスタ,メモリ等の状態)を採取する。本実施の形態によるランダム命令列試験では,採取するログとして,フルログと簡易ログの2種類のログを用意する。 When such a soft trap or hard trap interrupt occurs, the hardware status (status of general-purpose registers, control registers, memory, etc.) is collected. In the random instruction sequence test according to the present embodiment, two types of logs, a full log and a simple log, are prepared as logs to be collected.
フルログは,広い範囲でコンピュータのハードウェアの状態が採取されたログであり,例えば,すべてのハードウェア制御情報と,試験で使用しているすべてのメモリデータとを採取したものである。フルログとして採取するデータは,全ウインドウの汎用レジスタ,フローティングレジスタ,全制御用レジスタ(control/status reg + asi register ),試験対象となる全メモリ域のデータなどである。 The full log is a log in which the state of the computer hardware is collected in a wide range. For example, all hardware control information and all memory data used in the test are collected. Data collected as a full log includes general-purpose registers, floating registers, control registers (control / status reg + asi register) for all windows, and data for all memory areas to be tested.
フルログでは,プログラムで参照可能なすべての制御レジスタと試験対象の全メモリ域を採取する。期待値ログと結果値ログとの比較において,フルログの比較がパスした場合には,そのフルログ採取のトラップ発生点以前の試験命令列の正常性,すなわちフルログ採取のトラップ発生点以前の試験命令列が正しく動作していることが保証される。つまり,試験命令列実行中に,あるトラップ発生点のフルログで障害が検出された場合,障害発生命令列の影響範囲は,障害が検出されたトラップ発生点の直前のフルログ採取のトラップ発生点から,障害が検出されたフルログ採取のトラップ発生点までに,絞ることができる。 In the full log, all control registers that can be referenced by the program and all memory areas to be tested are collected. If the comparison between the expected value log and the result value log passes the full log comparison, the normality of the test instruction sequence before the trap occurrence point of the full log collection, that is, the test instruction sequence before the trap occurrence point of the full log collection Is guaranteed to work correctly. In other words, when a failure is detected in the full log at a certain trap occurrence point during the execution of a test instruction sequence, the range of influence of the failure instruction sequence is from the trap occurrence point of the full log collection immediately before the trap occurrence point where the failure was detected. , It can be narrowed down to the point where the trap of full log collection where the failure was detected.
ただし,フルログでは多量のデータを採取するため,プログラムでは制御できないハードウェア内部に保持された状態が変化してしまう可能性がある。例えば,メモリの内容をログするときに,キャッシュの書き換えが発生してしまい,ハードウェアの状態が変わってしまう場合がある。そのため,フルログ採取のトラップ発生点を跨いだ命令列に障害が隠れているようなケースでは,ハードウェア環境が変わることによる弊害で,障害が検出できなくなる可能性がある。 However, since a large amount of data is collected in the full log, the state held in the hardware that cannot be controlled by the program may change. For example, when logging the memory contents, cache rewriting may occur and the hardware state may change. For this reason, in the case where the fault is hidden in the instruction sequence across the trap occurrence point of full log collection, there is a possibility that the fault cannot be detected due to an adverse effect of changing the hardware environment.
簡易ログは,フルログと比較して狭い範囲でコンピュータのハードウェアの状態が採取されたログであり,例えば,トラップ発生時に使用しているレジスタのデータのみを採取したものである。簡易ログとして採取するデータは,使用中のカレントウインドウの汎用レジスタ,フローティングレジスタのデータなどである。 The simple log is a log in which the state of the computer hardware is collected in a narrower range than the full log. For example, only the register data used when a trap occurs is collected. The data collected as a simple log includes data of general-purpose registers and floating registers in the current window being used.
簡易ログでは,トラップが発生したときに動作していたカレントウインドウの汎用レジスタとフローティングレジスタのみのデータの採取に留めているため,ハードウェア内部に保持された状態の変化を,最小限に抑えることができる。したがって,簡易ログのトラップ発生点を跨いだ命令列に障害が隠れているようなケースでも,障害が検出される可能性は高い。 In the simple log, data collection is limited to the general-purpose registers and floating registers of the current window that was operating when the trap occurred, so that changes in the state held in the hardware are minimized. Can do. Therefore, there is a high possibility that a failure is detected even in the case where the failure is hidden in the instruction sequence across the trap occurrence points of the simple log.
ただし,期待値ログと結果値ログとの比較において,簡易ログではハードウェア制御レジスタの一部しか比較されないため,簡易ログの比較がパスした場合では,その簡易ログ採取のトラップ発生点以前の試験命令列の正常性が保証されない。つまり,試験命令列実行中に,あるトラップ発生点で障害が検出された場合,障害発生命令列の影響範囲は,たとえ障害が検出されたトラップ発生点の直前に簡易ログ採取のトラップ発生点があったとしても,障害が検出されたトラップ発生点の直前のフルログのトラップ発生点から,障害が検出されたトラップ発生点までとなる。 However, when comparing the expected value log and the result value log, only a part of the hardware control register is compared in the simple log, so if the simple log comparison passes, the test before the trap occurrence point of the simple log collection The normality of the instruction sequence is not guaranteed. In other words, if a failure is detected at a certain trap occurrence point during execution of the test instruction sequence, the affected range of the failure instruction sequence is that the trap occurrence point of simple log collection is just before the trap occurrence point where the failure is detected. Even if there is, it is from the trap occurrence point of the full log immediately before the trap occurrence point where the failure is detected to the trap occurrence point where the failure is detected.
このように,フルログ採取のトラップ発生点では,そのトラップ発生点までのランダム命令列の実行による障害発生の有無の正確な検査を行い,簡易ログ採取のトラップ発生点では,ハードウェアの状態を変えない最低限の障害発生の検査を行う。 In this way, at the trap point where a full log is collected, an accurate check is performed for the occurrence of a failure due to the execution of a random instruction sequence up to the trap point. At the trap point where a simple log is collected, the hardware status is changed. There is no minimum failure inspection.
本実施の形態では,これらのソフトトラップ/ハードトラップやフルログ/簡易ログの特徴を生かして使い分けることにより,障害の検出や,障害発生命令列の影響範囲の絞込みを行う。 In the present embodiment, by utilizing these soft trap / hard trap and full log / simple log features, it is possible to detect a failure and narrow down the range of influence of a failure instruction sequence.
ランダム命令列試験では,ハードウェア状態の正常性を検証するために,ランダム命令列生成部11でランダム命令列を作成する過程において,チェックポイントと呼ばれる,レジスタ類やメモリなどのハードウェア状態をログする仕組みが設けられる。チェックポイントには,無条件にトラップを発生させる命令であるトラップ命令が使用される。トラップ発生時の処理としては,ランダム命令列の実行1周目にハードウェア状態をログし,ランダム命令列の実行2周目も1週目と同様にハードウェア状態をログし,1周目にログした結果を期待値ログとして2周目のログと比較する。
In the random instruction sequence test, in order to verify the normality of the hardware state, in the process of creating a random instruction sequence by the random instruction
また,チェックポイントのようなソフトトラップの他に,ハードトラップと呼ばれる,命令を実行した結果としてトラップが発生するケース(例えば,演算例外が発生した場合など)がある。ハードトラップが発生した場合でもハードウェア状態をログするが,すべてのハードトラップでチェックポイントと同等なログを取ってしまうと,ランダム命令のμアーキレベルの先行動作が途切れてしまい,本試験の狙いであるμアーキレベルでのタイミングのズレによる誤動作の検出率が,下がってしまう可能性が高い。これを避けるために,ハードトラップでは,例えばトラップ発生により状態が変化するレジスタなどの最小限のレジスタをログするに留める。 In addition to soft traps such as checkpoints, there are cases called hard traps where traps occur as a result of executing instructions (for example, when an operation exception occurs). Even if a hard trap occurs, the hardware status is logged. However, if the log equivalent to the checkpoint is taken for all the hard traps, the pre-action of the μ-archy level of the random instruction is interrupted, and this test aims There is a high possibility that the detection rate of malfunction due to timing deviation at the μ arche level will be lowered. In order to avoid this, the hard trap only logs a minimum register such as a register whose state changes due to the occurrence of the trap.
このように,本実施の形態によるランダム命令列試験では,ソフトトラップ/ハードトラップの2種類のトラップのログの量に変化を持たせることにより,障害検出率を高める効果が得られる。 As described above, in the random instruction sequence test according to the present embodiment, an effect of increasing the failure detection rate can be obtained by changing the log amounts of the two types of traps of soft trap / hard trap.
図3は,本実施の形態による障害検出の例を説明する図である。以下,図3を用いて,障害の発生を検出し,障害が発生したと考えられる命令列である障害発生命令列を特定する例について説明する。 FIG. 3 is a diagram for explaining an example of failure detection according to this embodiment. Hereinafter, an example in which the occurrence of a failure is detected and a failure occurrence instruction sequence that is an instruction sequence that is considered to have occurred will be described with reference to FIG.
図3に示すランダム命令列において,トラップ命令は,チェックポイントとなるソフトトラップを発生させる命令である。トラップ命令によるチェックポイントでは,全レジスタ,試験対象全メモリのデータのログであるフルログが採取される。 In the random instruction sequence shown in FIG. 3, the trap instruction is an instruction for generating a soft trap serving as a checkpoint. At a checkpoint by a trap instruction, a full log that is a log of data of all registers and all memory under test is collected.
図3に示すランダム命令列において,ランダム命令は,ランダム命令列内の一命令を示し,ここでは特に命令実行後にハードトラップが発生する命令を指す。命令実行後にハードトラップが発生する命令とは,例えば,演算命令であり,演算結果としてオーバフロートラップが発生する命令などである。ハードトラップ発生時には,ハードトラップ要因に関連するレジスタのデータのログである簡易ログが採取される。 In the random instruction sequence shown in FIG. 3, the random instruction indicates one instruction in the random instruction string, and particularly indicates an instruction in which a hard trap occurs after execution of the instruction. An instruction that generates a hard trap after execution of the instruction is, for example, an operation instruction, and an instruction that generates an overflow trap as an operation result. When a hard trap occurs, a simple log that is a log of register data related to the hard trap factor is collected.
ランダム命令列の実行1週目において,図3に示すように,ソフトトラップ発生時にはフルログを採取し,ハードトラップ発生時には簡易ログを採取する。採取されたログ情報を期待値ログとしてログ情報保持部15に保持する。
In the first week of execution of the random instruction sequence, as shown in FIG. 3, a full log is collected when a soft trap occurs, and a simple log is collected when a hard trap occurs. The collected log information is held in the log
図4は,ログ制御テーブルの例を示す図である。図4に示すログ制御テーブル150は,ログ情報保持部15に保持されるログ情報の一例である。図4に示すログ制御テーブル150は,ログ番号,トラップ種別,ログ種別,ログ種別変更,トラップアドレス,圧縮ログデータの情報を有する。
FIG. 4 is a diagram illustrating an example of the log control table. The log control table 150 illustrated in FIG. 4 is an example of log information held in the log
ログ番号は,ログの識別番号である。トラップが発生し,ログが採取されるごとに,1番から順に番号が割り振られる。図4に示すログ制御テーブル150の例では,最後のログ番号がN番となっているので,ランダム命令列を1週実行させることにより,ソフトトラップとハードトラップとを合わせてN回のトラップが発生し,N個のログが採取されていることになる。 The log number is a log identification number. Each time a trap occurs and a log is collected, numbers are assigned in order from the first. In the example of the log control table 150 shown in FIG. 4, since the last log number is N, by executing a random instruction sequence for one week, N traps including soft traps and hard traps are combined. Occurs and N logs are collected.
トラップ種別は,そのログがソフトトラップ発生によって採取されたログかハードトラップ発生によって採取されたログかを示す情報である。ログ種別は,そのログがフルログであるのか簡易ログであるのかを示す情報である。ログ種別変更は,ログ種別を変更してランダム命令列実行によるログの採取を行う場合に設定する情報である。ログ種別の変更については後述する。 The trap type is information indicating whether the log is collected when a soft trap occurs or a hard trap occurs. The log type is information indicating whether the log is a full log or a simple log. The log type change is information set when the log type is changed and logs are collected by executing a random instruction sequence. The change of the log type will be described later.
トラップアドレスは,そのログが採取されるトリガとなるトラップが発生した命令のアドレスである。図4に示すログ制御テーブル150の例において,トラップアドレスの(アドレスA),(アドレスB),(アドレスC),(アドレスD),(アドレスE)は,それぞれ図3においてトラップが発生したトラップ命令A,ランダム命令B,ランダム命令C,ランダム命令D,ランダム命令Eのアドレスを示す。 The trap address is the address of the instruction at which the trap that triggers the collection of the log occurs. In the example of the log control table 150 shown in FIG. 4, the trap addresses (address A), (address B), (address C), (address D), and (address E) are the traps in which the trap occurred in FIG. The addresses of instruction A, random instruction B, random instruction C, random instruction D, and random instruction E are shown.
圧縮ログデータは,ログとして採取されたデータを圧縮して格納したものである。ここでは,採取されたデータを8バイトのチェックサム(checksum)に圧縮して格納している。チェックサムは,レジスタやメモリから採取されたデータが,定型バイト(ここでは,8バイト)ごとに分割され,加算された結果である。図4に示すログ制御テーブル150の例では,この圧縮ログデータが期待値ログとして保持されたログ情報である。 The compressed log data is obtained by compressing and storing data collected as a log. Here, the collected data is compressed into an 8-byte checksum and stored. The checksum is a result obtained by dividing and adding the data collected from the register or the memory for each fixed byte (here, 8 bytes). In the example of the log control table 150 shown in FIG. 4, this compressed log data is log information held as an expected value log.
図3において,ランダム命令列の実行2週目では,1週目と同様に,ソフトトラップ発生時にはフルログを採取し,ハードトラップ発生時には簡易ログを採取する。採取されたログは,結果値ログとして期待値ログと比較される。 In FIG. 3, in the second week of execution of the random instruction sequence, as in the first week, a full log is collected when a soft trap occurs, and a simple log is collected when a hard trap occurs. The collected log is compared with the expected value log as a result value log.
ハードウェア動作が正常であれば,それぞれのトラップ発生点において,期待値ログと結果値ログとが一致する。タイミング異常,データ化け,高負荷によるクリティカルパスなどの何らかのハードウェア異常により,期待値ログと結果値ログとが一致しないトラップ発生点があれば,障害が検出されたものと判断する。このとき,障害発生を示すエラー表示を出力するようにしてもよい。 If the hardware operation is normal, the expected value log matches the result value log at each trap occurrence point. If there is a trap occurrence point where the expected value log and the result value log do not match due to some hardware error such as timing error, data corruption, or critical path due to high load, it is determined that a failure has been detected. At this time, an error display indicating the occurrence of a failure may be output.
チェックポイントでは,ソフトウェアで参照できるすべてのレジスタの結果がログされるため,チェックポイントでの比較結果が一致する場合には,それ以前の命令列の処理が正常に動作していることが保証される。そのため,障害原因となりうる命令列の範囲は,障害が検出されたトラップ発生点の直前のチェックポイントから,障害が検出されたトラップ発生点の命令までとなる。 At the checkpoint, the results of all registers that can be referenced by software are logged, so if the comparison results at the checkpoint match, it is guaranteed that the processing of the previous instruction sequence is operating normally. The Therefore, the range of instruction sequences that can cause a failure is from the checkpoint immediately before the trap occurrence point where the failure is detected to the instruction at the trap occurrence point where the failure is detected.
図3に示す例において,トラップ命令A,ランダム命令B,ランダム命令C,ランダム命令Dのトラップ発生点では,期待値ログと結果値ログとの比較結果が一致を示す“OK”となっている。ところが,ランダム命令Eのトラップ発生点では,期待値ログと結果値ログとの比較結果が不一致を示す“NG”となっており,ここで障害が検出されたものと判断される。障害発生要因となる命令が含まれると考えられる命令列である障害発生命令列は,障害が検出されたトラップ発生点の直前のチェックポイントの命令すなわちトラップ命令Aから,障害が検出されたトラップ発生点の命令すなわちランダム命令Eまでの命令列となる。 In the example shown in FIG. 3, at the trap occurrence point of the trap instruction A, random instruction B, random instruction C, and random instruction D, the comparison result between the expected value log and the result value log is “OK”. . However, at the trap occurrence point of the random instruction E, the comparison result between the expected value log and the result value log is “NG” indicating a mismatch, and it is determined that a failure is detected here. A failure occurrence instruction sequence, which is an instruction sequence that is considered to include an instruction that causes a failure occurrence, is the occurrence of a trap in which a failure is detected from a checkpoint instruction immediately before the trap occurrence point where the failure is detected, that is, trap instruction A It becomes an instruction sequence up to a point instruction, that is, a random instruction E.
なお,フルログにより正当性が保証されたトラップ発生点の命令は,障害発生命令列に含めなくてもよい。本実施の形態において,障害発生命令列が,障害が検出されたトラップ発生点の直前のフルログ採取のトラップ発生点の命令から,障害が検出されたトラップ発生点の命令までの命令列となっていても,その障害発生命令列の最上位となるフルログにより正当性が保証されたトラップ発生点の命令は,障害発生要因となる命令ではないと考えてもよい。この場合,障害発生命令列の最上位となるフルログにより正当性が保証されたトラップ発生点の命令の次の命令から,障害発生要因となる可能性がある命令と考えられる。 Note that the instruction at the trap occurrence point for which the correctness is guaranteed by the full log need not be included in the fault occurrence instruction sequence. In the present embodiment, the failure occurrence instruction sequence is an instruction sequence from the instruction at the trap occurrence point immediately before the trap occurrence point where the failure is detected to the instruction at the trap occurrence point where the failure is detected. However, it may be considered that the instruction at the trap generation point where the correctness is guaranteed by the full log at the top of the failure instruction sequence is not the instruction that causes the failure. In this case, it is considered that the instruction may cause a failure from the instruction next to the instruction at the trap generation point where the correctness is guaranteed by the full log at the top of the failure occurrence instruction sequence.
図1において,第一の障害発生源絞込み部13は,障害検出部12で障害発生命令列とされた範囲内のハードトラップ発生点で採取するログの種別を順にフルログに変更し,ランダム命令列を実行することにより,障害検出部12により得られた障害発生命令列の範囲の絞込みを行う。このとき実行されるランダム命令列は,障害検出部12で実行されたランダム命令列を変更せずに,同じものを用いる。第一の障害発生源絞込み部13は,ログ種別変更部130,ログ採取部131,ログ比較部132を備える。
In FIG. 1, the first failure source narrowing-down
ログ種別変更部130は,障害検出部12で障害発生命令列とされた範囲内のハードトラップ発生点で採取するログの種別を,所定の順番でフルログに変更する。フルログに変更する順番は,障害発生命令列におけるハードトラップ発生点の上位順や下位順,ほぼ中間となる点を選んでいくなど,どのような順番であってもよい。本実施の形態では,図4に示すログ制御テーブル150のログ種別変更の情報を用いて,ハードトラップ発生点で採取するログの種別を変更する。
The log
ログ採取部131は,障害検出部12で実行されたランダム命令列と同じランダム命令列を実行し,トラップ発生時にログを採取し,得られたログ情報を期待値ログとし,ログ情報保持部15に保持する。本実施の形態では,ここで採取されたログ情報で図4に示すログ制御テーブル150の圧縮ログデータを更新することにより,期待値ログを保持するものとする。
The
ログ比較部132は,ログ採取部131による期待値ログの取得後,再度同じランダム命令列を実行し,トラップ発生時にログを採取し,得られたログ情報を結果値ログとして,ログ情報保持部15に保持された期待値ログと比較する。
After acquiring the expected value log by the
採取するログを簡易ログからフルログに変更したハードトラップ発生点で,期待値ログと結果値ログとが一致する場合には,そのログ種別をフルログに変更したハードトラップ発生点以後に障害発生命令列が絞り込まれる。採取するログを簡易ログからフルログに変更したハードトラップ発生点で,期待値ログと結果値ログとが一致しない場合には,そのログ種別をフルログに変更したハードトラップ発生点以前に障害発生命令列が絞り込まれる。障害発生命令列が間にハードトラップ発生点を含まないトラップ発生点間の命令列となるまで,ログ種別の変更,期待値ログの採取,期待値ログと結果値ログとの比較を繰り返し,障害発生命令列を絞り込む。 If the expected log and the result log match at the hard trap occurrence point when the collected log is changed from the simple log to the full log, the failure instruction sequence after the hard trap occurrence point when the log type is changed to the full log Is narrowed down. If the expected log and result log do not match at the hard trap occurrence point when the collected log is changed from simple log to full log, the failure instruction sequence before the hard trap occurrence point when the log type is changed to full log Is narrowed down. Until the failure instruction sequence becomes an instruction sequence between trap generation points that do not include a hard trap occurrence point in the middle, the log type change, expected value log collection, and comparison between the expected value log and the result value log are repeated, Narrow down the generated instruction sequence.
図5は,本実施の形態による第一の障害発生源絞込みの例を説明する図である。以下,図5を用いて,図3に示す障害発生命令列を絞り込む例について説明する。図5に示すランダム命令列は,図3に示すランダム命令列と同じものである。図3を用いて説明した障害検出の処理によって,トラップ命令Aからランダム命令Eまでの障害発生命令列が得られている。 FIG. 5 is a diagram illustrating an example of first failure source narrowing according to the present embodiment. Hereinafter, an example of narrowing down the failure instruction sequence shown in FIG. 3 will be described with reference to FIG. The random instruction sequence shown in FIG. 5 is the same as the random instruction sequence shown in FIG. The fault occurrence instruction sequence from the trap instruction A to the random instruction E is obtained by the fault detection process described with reference to FIG.
図5に示す障害発生源絞込みの例では,障害発生命令列の範囲内のハードトラップ発生点で採取するログの種別を,障害発生命令列の上位のハードトラップ発生点から順に簡易ログからフルログに変更し,ランダム命令列を実行して期待値ログと結果値ログとを採取し,比較して,障害発生命令列の範囲の絞込みを行う。 In the example of narrowing down the failure source shown in Fig. 5, the log type collected at the hard trap occurrence point within the range of the failure instruction sequence is changed from the simple log to the full log in order from the upper hard trap occurrence point in the failure instruction sequence. Change, execute the random instruction sequence, collect the expected value log and the result value log, compare them, and narrow down the range of the faulty instruction sequence.
まず,障害発生命令列の範囲内の最上位のハードトラップ発生点であるランダム命令Bの点について,図4に示すログ制御テーブル150のログ種別変更の情報を更新することによって,採取するログの種別をフルログに変更する。 First, the log type change information in the log control table 150 shown in FIG. 4 is updated for the point of the random instruction B, which is the highest hard trap generation point in the range of the failure instruction sequence. Change the type to full log.
ランダム命令列の実行3週目において,図5に示すように,ソフトトラップ発生時と,ランダム命令Bによるハードトラップ発生時にはフルログを採取し,ランダム命令B以外のハードトラップ発生時には簡易ログを採取する。採取されたログ情報を期待値ログとしてログ情報保持部15に保持する。
In the third week of execution of the random instruction sequence, as shown in FIG. 5, a full log is collected when a soft trap occurs and when a hard trap due to random instruction B occurs, and a simple log is collected when a hard trap other than random instruction B occurs. . The collected log information is held in the log
ランダム命令列の実行4週目では,3週目と同様に,ソフトトラップ発生時と,ランダム命令Bによるハードトラップ発生時にはフルログを採取し,ランダム命令B以外のハードトラップ発生時には簡易ログを採取する。採取されたログは,結果値ログとして期待値ログと比較される。 In the fourth week of random instruction execution, as in the third week, a full log is collected when a soft trap occurs and a hard trap due to random instruction B occurs, and a simple log is collected when a hard trap other than random instruction B occurs. . The collected log is compared with the expected value log as a result value log.
ランダム命令Bの位置でエラーが検出されれば,障害発生命令列をランダム命令B以前に絞り込むことができ,ランダム命令Bの位置でエラーが検出されなければ,障害発生命令列をランダム命令B以後に絞り込むことができる。図5に示す例では,ランダム命令Bのハードトラップ発生点で,期待値ログと結果値ログとの比較結果が一致を示す“OK”であるので,ランダム命令Bの位置で障害は検出されず,障害発生命令列は,ランダム命令Bからランダム命令Eまでの命令列に絞り込まれる。なお,ランダム命令Bの位置で障害が検出された場合には,障害発生命令列は,トラップ命令Aからランダム命令Bまでの命令列に絞り込まれる。 If an error is detected at the position of the random instruction B, the failure instruction sequence can be narrowed down to the random instruction B or earlier, and if no error is detected at the position of the random instruction B, the failure instruction sequence is changed to the random instruction B or later. Can be narrowed down to. In the example shown in FIG. 5, since the comparison result between the expected value log and the result value log is “OK” at the hard trap occurrence point of the random instruction B, no failure is detected at the position of the random instruction B. , The fault occurrence instruction sequence is narrowed down to the instruction sequence from the random instruction B to the random instruction E. When a failure is detected at the position of the random instruction B, the failure instruction sequence is narrowed down to the instruction sequence from the trap instruction A to the random instruction B.
図5に示す例において,4週目のランダム命令列の実行,障害発生命令列の絞込みが終了した時点で,障害発生命令列の両端であるランダム命令Bとランダム命令Eとの間には,まだランダム命令C,ランダム命令Dの2つのハードトラップ発生点が含まれている。そこで,フルログに変更するハードトラップ発生点を変えて,再度,障害発生命令列の範囲を絞り込むための処理を行う。 In the example shown in FIG. 5, when the execution of the random instruction sequence in the fourth week and the narrowing down of the failure instruction sequence are completed, between the random instruction B and the random instruction E that are both ends of the failure instruction sequence, There are still two hard trap generation points, random instruction C and random instruction D. Therefore, the process for narrowing down the scope of the failure instruction sequence is performed again by changing the hard trap occurrence point to be changed to the full log.
障害発生命令列の範囲内の,フルログによる正当性の確認がなされていない最上位のハードトラップ発生点であるランダム命令Cの点について,図4に示すログ制御テーブル150のログ種別変更の情報を更新することによって,採取するログの種別をフルログに変更する。このとき,前回にログ種別が変更されたランダム命令Bについてのフルログへの変更は,解除しておく。 The log type change information of the log control table 150 shown in FIG. 4 for the point of the random instruction C that is the highest hard trap generation point that has not been verified by the full log within the range of the failure instruction sequence. Change the type of log to be collected to full log by updating. At this time, the change to the full log for the random instruction B whose log type was previously changed is canceled.
ランダム命令列の実行5週目において,図5に示すように,ソフトトラップ発生時と,ランダム命令Cによるハードトラップ発生時にはフルログを採取し,ランダム命令C以外のハードトラップ発生時には簡易ログを採取する。採取されたログ情報を期待値ログとしてログ情報保持部15に保持する。
In the fifth week of execution of the random instruction sequence, as shown in FIG. 5, a full log is collected when a soft trap occurs and when a hard trap due to random instruction C occurs, and a simple log is collected when a hard trap other than random instruction C occurs. . The collected log information is held in the log
ランダム命令列の実行6週目では,5週目と同様に,ソフトトラップ発生時と,ランダム命令Cによるハードトラップ発生時にはフルログを採取し,ランダム命令C以外のハードトラップ発生時には簡易ログを採取する。採取されたログは,結果値ログとして期待値ログと比較される。 In the sixth week of execution of the random instruction sequence, as in the fifth week, a full log is collected when a soft trap occurs and a hard trap due to the random instruction C occurs, and a simple log is collected when a hard trap other than the random instruction C occurs. . The collected log is compared with the expected value log as a result value log.
図5に示すように,ランダム命令Cのハードトラップ発生点で,期待値ログと結果値ログとの比較結果が一致を示す“OK”であるので,ランダム命令Cの位置で障害は検出されず,障害発生命令列は,ランダム命令Cからランダム命令Eまでの命令列に絞り込まれる。なお,ランダム命令Cの位置で障害が検出された場合には,障害発生命令列は,ランダム命令Bからランダム命令Cまでの命令列に絞り込まれる。 As shown in FIG. 5, since the comparison result between the expected value log and the result value log is “OK” at the hard trap occurrence point of the random instruction C, no failure is detected at the position of the random instruction C. , The failure occurrence instruction sequence is narrowed down to the instruction sequence from the random instruction C to the random instruction E. When a failure is detected at the position of the random instruction C, the failure instruction sequence is narrowed down to the instruction sequence from the random instruction B to the random instruction C.
図5に示す例において,6週目のランダム命令列の実行,障害発生命令列の絞込みが終了した時点で,障害発生命令列の両端であるランダム命令Cとランダム命令Eとの間には,まだランダム命令Dのハードトラップ発生点が含まれている。そこで,フルログに変更するハードトラップ発生点を変えて,再度,障害発生命令列の範囲を絞り込むための処理を行う。 In the example shown in FIG. 5, when the execution of the random instruction sequence in the sixth week and the narrowing down of the failure instruction sequence are completed, the random instruction C and the random instruction E, which are both ends of the failure instruction sequence, are still it contains Ha Dotorappu generation point of random instruction D. Therefore, the process for narrowing down the scope of the failure instruction sequence is performed again by changing the hard trap occurrence point to be changed to the full log.
障害発生命令列の範囲内の,フルログによる正当性の確認がなされていない最上位のハードトラップ発生点であるランダム命令Dの点について,図4に示すログ制御テーブル150のログ種別変更の情報を更新することによって,採取するログの種別をフルログに変更する。このとき,前回にログ種別が変更されたランダム命令Cについてのフルログへの変更は,解除しておく。 The log type change information of the log control table 150 shown in FIG. 4 for the point of the random instruction D that is the highest hard trap generation point that has not been verified by the full log within the range of the failure instruction sequence. Change the type of log to be collected to full log by updating. At this time, the change to the full log for the random instruction C whose log type was previously changed is canceled.
ランダム命令列の実行7週目において,図5に示すように,ソフトトラップ発生時と,ランダム命令Dによるハードトラップ発生時にはフルログを採取し,ランダム命令D以外のハードトラップ発生時には簡易ログを採取する。採取されたログ情報を期待値ログとしてログ情報保持部15に保持する。
In the seventh week of execution of the random instruction sequence, as shown in FIG. 5, a full log is collected when a soft trap occurs and when a hard trap due to a random instruction D occurs, and a simple log is collected when a hard trap other than the random instruction D occurs. . The collected log information is held in the log
ランダム命令列の実行8週目では,7週目と同様に,ソフトトラップ発生時と,ランダム命令Dによるハードトラップ発生時にはフルログを採取し,ランダム命令D以外のハードトラップ発生時には簡易ログを採取する。採取されたログは,結果値ログとして期待値ログと比較される。 At the 8th week of execution of the random instruction sequence, as in the 7th week, a full log is collected when a soft trap occurs and a hard trap due to a random instruction D occurs, and a simple log is collected when a hard trap other than the random instruction D occurs. . The collected log is compared with the expected value log as a result value log.
図5に示すように,ランダム命令Dのハードトラップ発生点で,期待値ログと結果値ログとの比較結果が一致を示す“OK”であるので,ランダム命令Dの位置で障害は検出されず,障害発生命令列は,ランダム命令Dからランダム命令Eまでの命令列に絞り込まれる。なお,ランダム命令Dの位置で障害が検出された場合には,障害発生命令列は,ランダム命令Cからランダム命令Dまでの命令列に絞り込まれる。 As shown in FIG. 5, since the comparison result between the expected value log and the result value log is “OK” at the hard trap occurrence point of the random instruction D, no failure is detected at the position of the random instruction D. , The fault occurrence instruction sequence is narrowed down to the instruction sequence from the random instruction D to the random instruction E. When a failure is detected at the position of the random instruction D, the failure instruction sequence is narrowed down to the instruction sequence from the random instruction C to the random instruction D.
図5に示す例において,8週目のランダム命令列の実行,障害発生命令列の絞込みが終了した時点で,障害発生命令列の両端であるランダム命令Dとランダム命令Eとの間には,ハードトラップ発生点が含まれていない。よって,最終的に,最小範囲となる障害発生命令列は,ランダム命令Dからランダム命令Eまでの命令列に絞り込まれたことになる。このとき,ランダム命令Dとランダム命令Eとの間で障害が発生した旨を示すエラー情報を出力するようにしてもよい。 In the example shown in FIG. 5, when the execution of the random instruction sequence in the eighth week and the narrowing down of the failure instruction sequence are completed, between the random instruction D and the random instruction E that are both ends of the failure instruction sequence, Does not include hard trap origin. Therefore, the failure instruction sequence that is the minimum range is finally narrowed down to the instruction sequence from the random instruction D to the random instruction E. At this time, error information indicating that a failure has occurred between the random instruction D and the random instruction E may be output.
このように,第一の障害発生源絞込み部13によって絞り込まれた障害発生命令列の両端となるトラップ発生点の間にはもうハードトラップ発生点が存在しないため,第一の障害発生源絞込み部13による処理では,ランダム命令列を変更せずにこれ以上の障害発生命令列の絞込みはできない。ランダム命令列を変更せずにこれ以上の障害発生命令列の絞込みを行うためには,さらに別の仕組みを設けなければならない。
In this way, since there is no hard trap generation point between the trap generation points that are both ends of the failure generation instruction sequence narrowed down by the first failure generation
図1において,第二の障害発生源絞込み部14は,第一の障害発生源絞込み部13によって絞り込まれた障害発生命令列をさらに絞り込む処理を行う。
In FIG. 1, the second failure
第二の障害発生源絞込み部14による処理を実行するために,アドレスフェッチトラップレジスタ20という新たなハードウェア機能を被試験装置1に設ける。アドレスフェッチトラップレジスタ20は,このレジスタに登録されたアドレスと,プログラムカウンタのアドレスすなわち実行される命令のアドレスとが一致したときに,割り込みを発生させるハードウェア機能である。
A new hardware function called an address fetch
第二の障害発生源絞込み部14は,第一の障害発生源絞込み部13によって絞り込まれた障害発生命令列内のランダム命令のアドレスを,順にアドレスフェッチトラップレジスタ20に設定し,ランダム命令列を実行することにより,第一の障害発生源絞込み部13によって絞り込まれた障害発生命令列の範囲のさらなる絞込みを行う。このとき実行されるランダム命令列は,障害検出部12および第一の障害発生源絞込み部13で実行されたランダム命令列を変更せずに,同じものを用いる。なお,アドレスフェッチトラップレジスタ20に設定されたアドレスの命令実行によるハードトラップ発生時には,フルログが採取される。第二の障害発生源絞込み部14は,アドレスフェッチトラップレジスタ設定部140,ログ採取部141,ログ比較部142を備える。
The second failure source narrowing-down
アドレスフェッチトラップレジスタ設定部140は,第一の障害発生源絞込み部13によって絞り込まれた障害発生命令列内のランダム命令のアドレスを,所定の順番でアドレスフェッチトラップレジスタ20に設定する。アドレスフェッチトラップレジスタ20に設定するアドレスの順番は,障害発生命令列の上端の命令のアドレスから所定数の命令ずつ飛ばして進みながら順番に,障害発生命令列の下端の命令のアドレスから所定数の命令ずつ飛ばして戻りながら順番に,障害発生命令列の中間となる命令のアドレスを順に選択していくなど,どのような順番であってもよい。また,飛ばす命令数や最終的に障害発生命令列の範囲とする命令数なども,それぞれ1以上の任意の数である。
The address fetch trap
ログ採取部141は,障害検出部12や第一の障害発生源絞込み部13で実行されたランダム命令列と同じランダム命令列を実行し,トラップ発生時にログを採取し,得られたログ情報を期待値ログとし,ログ情報保持部15に保持する。
The
ログ比較部142は,ログ採取部141による期待値ログの取得後,再度同じランダム命令列を実行し,トラップ発生時にログを採取し,得られたログ情報を結果値ログとして,ログ情報保持部15に保持された期待値ログと比較する。
The
アドレスフェッチトラップレジスタ20によるハードトラップ発生点で,期待値ログと結果値ログとが一致する場合には,そのアドレスフェッチトラップレジスタ20によるハードトラップ発生点以後に障害発生命令列が絞り込まれる。アドレスフェッチトラップレジスタ20によるハードトラップ発生点で,期待値ログと結果値ログとが一致しない場合には,そのアドレスフェッチトラップレジスタ20によるハードトラップ発生点以前に障害発生命令列が絞り込まれる。障害発生命令列の範囲が所定の命令数以下になるまで,アドレスフェッチトラップレジスタ20の設定/更新,期待値ログの採取,期待値ログと結果値ログとの比較を繰り返し,障害発生命令列を絞り込む。
When the expected value log and the result value log match at the hard trap occurrence point by the address fetch
図6は,本実施の形態による第二の障害発生源絞込みの例を説明する図である。以下,図6を用いて,図5の例で最終的に絞り込まれた障害発生命令列をさらに絞り込む例について説明する。図6に示すランダム命令列は,図5に示すランダム命令列と同じものであり,特に図5で最終的に障害発生命令列として絞り込まれたランダム命令Dからランダム命令Eまでの範囲をクローズアップして示したものである。 FIG. 6 is a diagram illustrating an example of second failure source narrowing according to the present embodiment. Hereinafter, an example of further narrowing down the fault occurrence instruction sequence finally narrowed down in the example of FIG. 5 will be described with reference to FIG. The random instruction sequence shown in FIG. 6 is the same as the random instruction sequence shown in FIG. 5. In particular, the range from the random instruction D to the random instruction E finally narrowed down as the failure instruction sequence in FIG. It is shown.
図6に示す障害発生源絞込みの例では,障害発生命令列の範囲内のランダム命令のアドレスを,所定の数命令単位で飛ばしながら上位から順にアドレスフェッチトラップレジスタ20に設定し,ランダム命令列を実行して期待値ログと結果値ログとを採取し,比較して,障害発生命令列の範囲の絞込みを行う。
In the example of narrowing down the failure occurrence source shown in FIG. 6, the addresses of random instructions within the range of the failure occurrence instruction sequence are set in the address fetch
まず,障害発生命令列の範囲内の最上位命令であるランダム命令Dから所定の数命令進んだランダム命令Xのアドレスをアドレスフェッチトラップレジスタ20に設定することにより,ランダム命令Xの実行時にハードトラップを発生させ,フルログを採取するようにする。図6において,アドレスフェッチレジスタ20に設定された(アドレスX)は,ランダム命令Xのアドレスを示している。
First, by setting in the address fetch trap register 20 the address of a random instruction X that is a predetermined number of instructions ahead of the random instruction D, which is the highest instruction in the range of the failure instruction sequence, a hard trap is executed when the random instruction X is executed. And collect the full log. In FIG. 6, (address X) set in the address fetch
ランダム命令列の実行9週目において,図6に示すように,ソフトトラップ発生時と,アドレスフェッチトラップレジスタ20によるハードトラップ発生時すなわちランダム命令Xの実行時にはフルログを採取し,アドレスフェッチトラップレジスタ20によるハードトラップ発生時以外のハードトラップ発生時には簡易ログを採取する。採取されたログ情報を期待値ログとしてログ情報保持部15に保持する。
In the ninth week of execution of the random instruction sequence, as shown in FIG. 6, a full log is collected when a soft trap occurs and when a hard trap is generated by the address fetch
ランダム命令列の実行10週目では,9週目と同様に,ソフトトラップ発生時と,アドレスフェッチトラップレジスタ20によるハードトラップ発生時すなわちランダム命令Xの実行時にはフルログを採取し,アドレスフェッチトラップレジスタ20によるハードトラップ発生時以外のハードトラップ発生時には簡易ログを採取する。採取されたログは,結果値ログとして期待値ログと比較される。
In the 10th week of execution of the random instruction sequence, as in the 9th week, a full log is collected when a soft trap occurs and when a hard trap is generated by the address fetch
ランダム命令Xの位置でエラーが検出されれば,障害発生命令列をランダム命令X以前に絞り込むことができ,ランダム命令Xの位置でエラーが検出されなければ,障害発生命令列をランダム命令X以後に絞り込むことができる。図6に示す例では,ランダム命令Xのハードトラップ発生点で,期待値ログと結果値ログとの比較結果が一致を示す“OK”であるので,ランダム命令Xの位置で障害は検出されず,障害発生命令列は,ランダム命令Xからランダム命令Eまでの命令列に絞り込まれる。なお,ランダム命令Xの位置で障害が検出された場合には,障害発生命令列は,ランダム命令Dからランダム命令Xまでの命令列に絞り込まれる。 If an error is detected at the position of the random instruction X, the failure instruction sequence can be narrowed down to the random instruction X or earlier, and if no error is detected at the position of the random instruction X, the failure instruction sequence is placed after the random instruction X. Can be narrowed down to. In the example shown in FIG. 6, since the comparison result between the expected value log and the result value log is “OK” at the hard trap occurrence point of the random instruction X, no failure is detected at the position of the random instruction X. , The failure occurrence instruction sequence is narrowed down to the instruction sequence from the random instruction X to the random instruction E. When a failure is detected at the position of the random instruction X, the failure instruction sequence is narrowed down to the instruction sequence from the random instruction D to the random instruction X.
図6に示す例において,10週目のランダム命令列の実行,障害発生命令列の絞込みが終了した時点で,まだ障害発生命令列の範囲が所定の命令数以下になっていないものとする。そこで,アドレスフェッチトラップレジスタ20に設定するランダム命令のアドレスを変えて,再度,障害発生命令列の範囲を絞り込むための処理を行う。
In the example illustrated in FIG. 6, it is assumed that the failure instruction sequence range has not yet reached the predetermined number of instructions when the execution of the random instruction sequence in the 10th week and the narrowing down of the failure instruction sequence are completed. Therefore, the address of the random instruction set in the address fetch
障害発生命令列の範囲内の最上位命令であるランダム命令Xから所定の数命令進んだランダム命令Yのアドレスでアドレスフェッチトラップレジスタ20の設定アドレスを更新することにより,ランダム命令Yの実行時にハードトラップを発生させ,フルログを採取するようにする。図6において,アドレスフェッチレジスタ20に設定された(アドレスY)は,ランダム命令Yのアドレスを示している。
When the random instruction Y is executed by updating the set address of the address fetch trap register 20 with the address of the random instruction Y advanced by a predetermined number of instructions from the random instruction X which is the highest order instruction within the range of the failure instruction sequence Generate a trap and collect a full log. In FIG. 6, (address Y) set in the address fetch
ランダム命令列の実行11週目において,図6に示すように,ソフトトラップ発生時と,アドレスフェッチトラップレジスタ20によるハードトラップ発生時すなわちランダム命令Yの実行時にはフルログを採取し,アドレスフェッチトラップレジスタ20によるハードトラップ発生時以外のハードトラップ発生時には簡易ログを採取する。採取されたログ情報を期待値ログとしてログ情報保持部15に保持する。
In the eleventh week of execution of the random instruction sequence, as shown in FIG. 6, a full log is collected when a soft trap occurs and when a hard trap occurs by the address fetch
ランダム命令列の実行12週目では,11週目と同様に,ソフトトラップ発生時と,アドレスフェッチトラップレジスタ20によるハードトラップ発生時すなわちランダム命令Yの実行時にはフルログを採取し,アドレスフェッチトラップレジスタ20によるハードトラップ発生時以外のハードトラップ発生時には簡易ログを採取する。採取されたログは,結果値ログとして期待値ログと比較される。
In the 12th week of execution of the random instruction sequence, as in the 11th week, a full log is collected when a soft trap occurs and when a hard trap is generated by the address fetch
図6に示す例では,ランダム命令Yのハードトラップ発生点で,期待値ログと結果値ログとの比較結果が一致を示す“OK”であるので,ランダム命令Yの位置で障害は検出されず,障害発生命令列は,ランダム命令Yからランダム命令Eまでの命令列に絞り込まれる。なお,ランダム命令Yの位置で障害が検出された場合には,障害発生命令列は,ランダム命令Xからランダム命令Yまでの命令列に絞り込まれる。 In the example shown in FIG. 6, since the comparison result between the expected value log and the result value log is “OK” at the hard trap occurrence point of the random instruction Y, no failure is detected at the position of the random instruction Y. , The failure occurrence instruction sequence is narrowed down to the instruction sequence from the random instruction Y to the random instruction E. When a failure is detected at the position of the random instruction Y, the failure instruction sequence is narrowed down to the instruction sequence from the random instruction X to the random instruction Y.
図6に示す例において,12週目のランダム命令列の実行,障害発生命令列の絞込みが終了した時点で,まだ障害発生命令列の範囲が所定の命令数以下になっていないものとする。そこで,アドレスフェッチトラップレジスタ20に設定するランダム命令のアドレスを変えて,再度,障害発生命令列の範囲を絞り込むための処理を行う。
In the example illustrated in FIG. 6, it is assumed that the failure instruction sequence range has not yet reached the predetermined number of instructions when the random instruction sequence and the failure instruction sequence narrowing down in the 12th week are completed. Therefore, the address of the random instruction set in the address fetch
障害発生命令列の範囲内の最上位命令であるランダム命令Yから所定の数命令進んだランダム命令Zのアドレスでアドレスフェッチトラップレジスタ20の設定アドレスを更新することにより,ランダム命令Zの実行時にハードトラップを発生させ,フルログを採取するようにする。図6において,アドレスフェッチレジスタ20に設定された(アドレスZ)は,ランダム命令Zのアドレスを示している。
By updating the set address of the address fetch trap register 20 with the address of the random instruction Z that is a predetermined number of instructions ahead of the random instruction Y, which is the highest order instruction in the range of the fault occurrence instruction sequence, Generate a trap and collect a full log. In FIG. 6, (address Z) set in the address fetch
ランダム命令列の実行13週目において,図6に示すように,ソフトトラップ発生時と,アドレスフェッチトラップレジスタ20によるハードトラップ発生時すなわちランダム命令Zの実行時にはフルログを採取し,アドレスフェッチトラップレジスタ20によるハードトラップ発生時以外のハードトラップ発生時には簡易ログを採取する。採取されたログ情報を期待値ログとしてログ情報保持部15に保持する。
At the 13th week of execution of the random instruction sequence, as shown in FIG. 6, when a soft trap occurs and when a hard trap is generated by the address fetch
ランダム命令列の実行14週目では,13週目と同様に,ソフトトラップ発生時と,アドレスフェッチトラップレジスタ20によるハードトラップ発生時すなわちランダム命令Zの実行時にはフルログを採取し,アドレスフェッチトラップレジスタ20によるハードトラップ発生時以外のハードトラップ発生時には簡易ログを採取する。採取されたログは,結果値ログとして期待値ログと比較される。
In the 14th week of execution of the random instruction sequence, as in the 13th week, a full log is collected when a soft trap occurs and when a hard trap is generated by the address fetch
図6に示す例では,ランダム命令Zのハードトラップ発生点で,期待値ログと結果値ログとの比較結果が不一致を示す“NG”であるので,ランダム命令Zの位置で障害が検出され,障害発生命令列は,ランダム命令Yからランダム命令Zまでの命令列に絞り込まれる。なお,ランダム命令Zの位置で障害が検出された場合には,障害発生命令列は,ランダム命令Zからランダム命令Eまでの命令列に絞り込まれる。 In the example shown in FIG. 6, since the comparison result between the expected value log and the result value log is “NG” at the hard trap occurrence point of the random instruction Z, a failure is detected at the position of the random instruction Z. The failure occurrence instruction sequence is narrowed down to the instruction sequence from the random instruction Y to the random instruction Z. If a failure is detected at the position of the random instruction Z, the failure instruction sequence is narrowed down to the instruction sequence from the random instruction Z to the random instruction E.
図6に示す例において,14週目のランダム命令列の実行,障害発生命令列の絞込みが終了した時点で,障害発生命令列の範囲が所定の命令数以下になっているものとする。よって,最終的に,最小範囲となる障害発生命令列は,ランダム命令Yからランダム命令Zまでの命令列に絞り込まれたことになる。このとき,ランダム命令Yとランダム命令Zとの間で障害が発生した旨を示すエラー情報を出力するようにしてもよい。 In the example illustrated in FIG. 6, it is assumed that the range of the failure instruction sequence is equal to or less than the predetermined number of instructions when the execution of the random instruction sequence and narrowing down of the failure instruction sequence in the 14th week are completed. Therefore, the failure instruction sequence that is the minimum range is finally narrowed down to the instruction sequence from the random instruction Y to the random instruction Z. At this time, error information indicating that a failure has occurred between the random instruction Y and the random instruction Z may be output.
このように,アドレスフェッチトラップレジスタ20を利用することにより,障害発生命令列の範囲を任意の命令数以内に絞り込むことができる。所定の命令数を1とすれば,障害発生命令列の範囲を1命令に絞り込むことも可能である。
In this way, by using the address fetch
以下では,本実施の形態によるランダム命令列試験の処理の流れの例を,フローチャートを用いて説明する。なお,以下に説明する処理の例は,図3,図5,図6等で説明した手順の流れに沿った処理の例である。 Hereinafter, an example of the flow of processing of the random instruction sequence test according to the present embodiment will be described using a flowchart. In addition, the example of a process demonstrated below is an example of the process along the flow of the procedure demonstrated in FIG.3, FIG.5, FIG.6 etc. FIG.
図7は,本実施の形態による障害検出処理フローチャートである。seed値としてseed値テーブル110に設定されたseed値の初期値を選択し,試験スクリプトテーブル111を1つ選択する(ステップS10)。 FIG. 7 is a failure detection processing flowchart according to the present embodiment. The initial value of the seed value set in the seed value table 110 is selected as the seed value, and one test script table 111 is selected (step S10).
seed値と試験スクリプトテーブル111との組合せから,所定のアルゴリズムによって,ランダム命令列を生成する(ステップS11)。 A random instruction sequence is generated from the combination of the seed value and the test script table 111 by a predetermined algorithm (step S11).
生成されたランダム命令列を実行し,トラップ発生時にログを収集し,収集されたログ情報を期待値ログとして保持する(ステップS12)。このとき,トラップ命令によるソフトトラップ発生時にはフルログを採取し,ハードトラップ発生時には簡易ログを採取する。例えば,ハードトラップ発生時には,簡易ログを収集し,チェックサムで圧縮して図4に示すようなログ制御テーブル150に格納し,ソフトトラップ発生時には,フルログを収集し,チェックサムで圧縮して図4に示すようなログ制御テーブル150に格納する。再度,同じランダム命令列を実行し,トラップ発生時にログを収集し,収集されたログ情報を結果値ログとして保持された期待値ログと比較する(ステップS13)。 The generated random instruction sequence is executed, a log is collected when a trap occurs, and the collected log information is held as an expected value log (step S12). At this time, a full log is collected when a soft trap is generated by a trap instruction, and a simple log is collected when a hard trap occurs. For example, when a hard trap occurs, a simple log is collected, compressed with a checksum and stored in the log control table 150 as shown in FIG. 4, and when a soft trap occurs, a full log is collected and compressed with a checksum. Stored in the log control table 150 as shown in FIG. The same random instruction sequence is executed again, a log is collected when a trap occurs, and the collected log information is compared with an expected value log held as a result value log (step S13).
期待値ログと結果値ログとの比較により,エラーが検出されれば(ステップS14),そのエラー情報を保持し(ステップS15),第一の障害発生源絞込み処理に進む。ここでは,期待値ログと結果値ログとをトラップ発生点ごとに比較し,ログが不一致のトラップ発生点が存在する場合に,エラーが検出されたものと判断する。このとき,障害発生要因となる命令が含まれる命令列である障害発生命令列などのエラー情報が保持される。この時点での障害発生命令列は,エラーが検出されたトラップ発生点の直前のソフトトラップ発生点から,エラーが検出されたトラップ発生点までの命令列である。なお,第一の障害発生源絞込み処理については,図8を参照して後述する。 If an error is detected by comparing the expected value log and the result value log (step S14), the error information is held (step S15), and the process proceeds to the first failure source narrowing process. Here, the expected value log and the result value log are compared for each trap occurrence point, and it is determined that an error has been detected when there is a trap occurrence point whose logs do not match. At this time, error information such as a failure instruction sequence that is an instruction sequence including an instruction that causes a failure is stored. The fault occurrence instruction sequence at this point is an instruction sequence from the soft trap occurrence point immediately before the trap occurrence point where the error is detected to the trap occurrence point where the error is detected. The first failure source narrowing process will be described later with reference to FIG.
エラーが検出されなければ(ステップS14),試験スクリプトテーブルやseed値を更新し(ステップS10,ステップS17),異なるseed値によって規定のM回(ステップS16),また全試験スクリプトテーブル111について完了するまで(ステップS18),ランダム命令列による試験を実施する。seed値の更新は,例えば現在のseed値をインクリメントするなどにより行う。 If no error is detected (step S14), the test script table and the seed value are updated (step S10, step S17), and the test is completed for the specified M times (step S16) and all the test script tables 111 with different seed values. Until (step S18), a test using a random instruction sequence is performed. The seed value is updated by incrementing the current seed value, for example.
図7に示す障害検出処理により,エラーが検出されたトラップ発生点の直前のソフトトラップ発生点から,エラーが検出されたトラップ発生点までの障害発生命令列が得られる。 By the failure detection process shown in FIG. 7, a failure instruction sequence from the soft trap occurrence point immediately before the trap occurrence point where the error is detected to the trap occurrence point where the error is detected is obtained.
図8は,本実施の形態による第一の障害発生源絞込み処理フローチャートである。エラーが検出されたトラップ発生点の直前のトラップ発生点でフルログが採取されていれば(ステップS20),第二の障害発生源絞込み処理に進む。エラーが検出されたトラップ発生点の直前のトラップ発生点でフルログが採取されている場合には,障害発生命令列が,間にトラップ発生点が含まれない2つのトラップ発生点間の命令列に絞り込めた状態であるので,第一の障害発生源絞込み処理ではこれ以上の障害発生命令列の絞込みはできない。なお,第二の障害発生源絞込み処理については,図9を参照して後述する。 FIG. 8 is a flowchart of a first failure source narrowing-down process according to this embodiment. If the full log is collected at the trap occurrence point immediately before the trap occurrence point where the error is detected (step S20), the process proceeds to the second failure occurrence source narrowing process. If the full log is collected at the trap occurrence point immediately before the trap occurrence point where the error was detected, the failure instruction sequence is changed to an instruction sequence between two trap occurrence points that do not include the trap occurrence point in between. Since the state has been narrowed down, no further failure instruction sequence can be narrowed down in the first failure source narrowing process. The second failure source narrowing process will be described later with reference to FIG.
障害発生命令列内の最若番アドレスのトラップ発生点のログ種別を,フルログに変更する(ステップS21)。障害発生命令列において,その両端となるトラップ発生点の間にハードトラップ発生点が含まれていれば,まだ障害発生命令列を絞り込むことができるので,間にあるハードトラップ発生点のうち最若番アドレスのハードトラップ発生点で採取するログの種別をフルログに変更する。例えば,図4に示すログ制御テーブル150において,障害発生命令列内の最若番アドレスのハードトラップ発生点のログ種別変更の情報をフルログにする。 The log type of the trap occurrence point of the youngest address in the failure occurrence instruction sequence is changed to a full log (step S21). If a hard trap occurrence point is included between the trap occurrence points at both ends of the fault occurrence instruction sequence, the fault occurrence instruction sequence can still be narrowed down. Change the type of log collected at the hard trap occurrence point of address No. to full log. For example, in the log control table 150 shown in FIG. 4, the log type change information of the hard trap occurrence point of the youngest address in the failure instruction sequence is made a full log.
障害検出処理で実行されたランダム命令列を再度実行し,トラップ発生時にログを収集し,収集されたログ情報を期待値ログとして保持する(ステップS22)。このとき,ソフトトラップ発生時と,フルログ採取に変更されたハードトラップ発生時にはフルログを採取し,それ以外のハードトラップ発生時には簡易ログを採取する。採取されたログ情報は,例えば図4に示すようなログ制御テーブル150に格納する。再度,同じランダム命令列を実行し,トラップ発生時にログを収集し,収集されたログ情報を結果値ログとして保持された期待値ログと比較する(ステップS23)。 The random instruction sequence executed in the failure detection process is executed again, a log is collected when a trap occurs, and the collected log information is held as an expected value log (step S22). At this time, a full log is collected when a soft trap occurs and when a hard trap changed to full log collection occurs, and a simple log is collected when any other hard trap occurs. The collected log information is stored in a log control table 150 as shown in FIG. 4, for example. The same random instruction sequence is executed again, a log is collected when a trap occurs, and the collected log information is compared with an expected value log held as a result value log (step S23).
期待値ログと結果値ログとの比較により,フルログ採取に変更されたハードトラップ発生点でエラーが検出されれば(ステップS24),エラー情報を更新し(ステップS25),第二の障害発生源絞込み処理に進む。フルログ採取に変更されたハードトラップ発生点は,障害発生命令列内の最若番アドレスのハードトラップ発生点であるので,ここでエラーが検出されれば,更新された障害発生命令列が,間にトラップ発生点が含まれない2つのトラップ発生点間の命令列に絞り込めた状態となり,第一の障害発生源絞込み処理ではこれ以上の障害発生命令列の絞込みはできない。この時点で更新された障害発生命令列は,障害発生命令列の上端となるトラップ発生点の命令から,フルログ採取に変更されたハードトラップ発生点の命令までとなる。 If an error is detected at the hard trap occurrence point changed to full log collection by comparing the expected value log with the result value log (step S24), the error information is updated (step S25), and the second failure source Proceed to the narrowing process. Since the hard trap occurrence point changed to full log collection is the hard trap occurrence point of the lowest address in the failure instruction sequence, if an error is detected here, the updated failure occurrence sequence is In this state, the instruction sequence between two trap generation points that do not include the trap generation point is narrowed down, and no further failure instruction sequence can be narrowed down in the first failure source narrowing process. The failure instruction sequence updated at this time is from the trap occurrence point instruction at the top of the failure occurrence instruction sequence to the hard trap occurrence point instruction changed to full log collection.
期待値ログと結果値ログとの比較により,フルログ採取に変更されたハードトラップ発生点でエラーが検出されず(ステップS24),障害発生命令列の最後のトラップ発生点でエラーが検出された場合には(ステップS26),エラー情報を更新し(ステップS27),ステップ20の処理に戻る。この時点で更新された障害発生命令列は,フルログ採取に変更されたハードトラップ発生点の命令から,エラーが検出された障害発生命令列の最後のトラップ発生点の命令までとなる。 If an error is not detected at the hard trap occurrence point changed to full log collection by comparing the expected value log and the result value log (step S24), and an error is detected at the last trap occurrence point of the failure instruction sequence (Step S26), the error information is updated (Step S27), and the process returns to Step 20. The fault occurrence instruction sequence updated at this time is from the instruction at the hard trap occurrence point changed to full log collection to the instruction at the last trap occurrence point of the fault occurrence instruction series in which an error is detected.
期待値ログと結果値ログとの比較により,フルログ採取に変更されたハードトラップ発生点でも,障害発生命令列の最後のトラップ発生点でもエラーが検出されない場合には(ステップS24,ステップS26),直前のエラー情報を表示し(ステップS28),処理を終了する。障害発生命令列の絞込みの過程で,2回のランダム命令列の実行間でのハードウェア内部に保持された状態の変化が検出されなくなってしまった場合には,その時点で最小範囲の障害発生命令列をエラー情報として出力する。 When no error is detected at the hard trap occurrence point changed to the full log collection or the last trap occurrence point of the failure instruction sequence by comparing the expected value log and the result value log (step S24, step S26), The previous error information is displayed (step S28), and the process is terminated. In the process of narrowing down the faulty instruction sequence, if a change in the state held in the hardware between the execution of two random instruction sequences is no longer detected, the minimum range of faults occurs at that time Output instruction sequence as error information.
図8に示す第一の障害発生源絞込み処理により,実行するランダム命令列を変えずに,障害発生命令列が,最小範囲として,間にトラップ発生点が含まれない2つのトラップ発生点間の命令列に絞り込まれる。 The first failure source narrowing process shown in FIG. 8 does not change the random instruction sequence to be executed, but the failure instruction sequence is in the minimum range between two trap generation points that do not include a trap generation point in between. Narrow down to instruction sequence.
図9は,本実施の形態による第二の障害発生源絞込み処理フローチャートである。アドレスフェッチトラップレジスタ20に,障害発生命令列内の命令のアドレスを設定する(ステップS30)。ここで設定されるアドレスは,障害発生命令列の最上位となるトラップ発生点の命令から所定の命令数進んだランダム命令のアドレスである。 FIG. 9 is a flowchart of a second failure source narrowing-down process according to this embodiment. The address of the instruction in the failure instruction sequence is set in the address fetch trap register 20 (step S30). The address set here is the address of a random instruction that is a predetermined number of instructions ahead of the instruction at the trap occurrence point, which is the highest order in the failure instruction sequence.
障害検出処理および第一の障害発生源絞込み処理で実行されたランダム命令列を再度実行し,トラップ発生時にログを収集し,収集されたログ情報を期待値ログとして保持する(ステップS31)。このとき,ソフトトラップ発生時と,アドレスフェッチトラップレジスタ20によるハードトラップ発生時にはフルログを採取し,それ以外のハードトラップ発生時には簡易ログを採取する。再度,同じランダム命令列を実行し,トラップ発生時にログを収集し,収集されたログ情報を結果値ログとして保持された期待値ログと比較する(ステップS32)。
The random instruction sequence executed in the failure detection process and the first failure source narrowing process is executed again, a log is collected when a trap occurs, and the collected log information is held as an expected value log (step S31). At this time, a full log is collected when a soft trap occurs and when a hard trap is generated by the address fetch
期待値ログと結果値ログとの比較により,アドレスフェッチトラップレジスタ20によるハードトラップ発生点でエラーが検出されれば(ステップS33),エラー情報を更新し(ステップS34),エラー情報を表示する(ステップS35)。アドレスフェッチトラップレジスタ20によるハードトラップ発生点は,障害発生命令列の最上位の命令から所定の命令数進んだランダム命令のアドレスであるので,ここでエラーが検出されれば,更新された障害発生命令列が所定の命令数の範囲内となるので,更新された障害発生命令列をエラー情報として出力する。更新された障害発生命令列は,直前の障害発生命令列の最上位の命令から,アドレスフェッチトラップレジスタ20によるハードトラップ発生点の命令までとなる。
If an error is detected at the hard trap occurrence point by the address fetch trap register 20 by comparing the expected value log and the result value log (step S33), the error information is updated (step S34), and the error information is displayed (step S34). Step S35). Since the hard trap occurrence point by the address fetch
期待値ログと結果値ログとの比較により,アドレスフェッチトラップレジスタ20によるハードトラップ発生点でエラーが検出されず(ステップS33),障害発生命令列の最後のトラップ発生点でエラーが検出された場合には(ステップS36),エラー情報を更新する(ステップS37)。この時点で更新された障害発生命令列は,アドレスフェッチトラップレジスタ20によるハードトラップ発生点の命令から,エラーが検出された障害発生命令列の最後のトラップ発生点の命令までとなる。 When an error is not detected at the hard trap occurrence point by the address fetch trap register 20 by comparison between the expected value log and the result value log (step S33), but an error is detected at the last trap occurrence point of the failure instruction sequence (Step S36), the error information is updated (Step S37). The fault occurrence instruction sequence updated at this time is from the instruction at the hard trap occurrence point by the address fetch trap register 20 to the instruction at the last trap occurrence point of the fault occurrence instruction series in which the error is detected.
ステップS37の処理で更新された障害発生命令列が所定の命令数の範囲内でなければ(ステップS38),アドレスフェッチトラップレジスタ20の設定アドレスを更新し(ステップS39),ステップS31の処理に戻る。ここでは,アドレスフェッチトラップレジスタ20の設定アドレスは,直前に設定されたアドレスの命令から所定の命令数進んだランダム命令のアドレスに更新される。
If the failure instruction sequence updated in the process of step S37 is not within the predetermined number of instructions (step S38), the set address of the address fetch
ステップS37の処理で更新された障害発生命令列が所定の命令数の範囲内であれば(ステップS38),エラー情報を表示する(ステップS40)。ここでは,ステップS37の処理で更新された障害発生命令列をエラー情報として出力する。 If the fault occurrence instruction sequence updated in the process of step S37 is within the predetermined number of instructions (step S38), error information is displayed (step S40). Here, the fault occurrence instruction sequence updated in the process of step S37 is output as error information.
期待値ログと結果値ログとの比較により,アドレスフェッチトラップレジスタ20によるハードトラップ発生点でも,障害発生命令列の最後のトラップ発生点でもエラーが検出されない場合には(ステップS33,ステップS36),直前のエラー情報を表示し(ステップS41),処理を終了する。障害発生命令列の絞込みの過程で,2回のランダム命令列の実行間でのハードウェア内部に保持された状態の変化が検出されなくなってしまった場合には,その時点で最小範囲の障害発生命令列をエラー情報として出力する。 When an error is not detected at the hard trap occurrence point by the address fetch trap register 20 or at the last trap occurrence point of the failure instruction sequence by comparing the expected value log and the result value log (step S33, step S36), The previous error information is displayed (step S41), and the process is terminated. In the process of narrowing down the faulty instruction sequence, if a change in the state held in the hardware between the execution of two random instruction sequences is no longer detected, the minimum range of faults occurs at that time Output instruction sequence as error information.
図9に示す第二の障害発生源絞込み処理により,実行するランダム命令列を変えずに,障害発生命令列が,最小範囲として,所定の命令数の範囲内に絞り込まれる。 By the second failure source narrowing process shown in FIG. 9, the failure instruction sequence is narrowed down to a predetermined number of instructions as a minimum range without changing the executed random instruction sequence.
図10は,本実施の形態によるランダム命令列試験の事例を説明する図である。ここでは,具体的なランダム命令列の例を用いて,本実施の形態によるランダム命令列試験を説明する。図10において,(1)と(7)はトラップ命令によるソフトトラップ発生点であり,(2)〜(6)はハードトラップ発生点である。 FIG. 10 is a diagram for explaining an example of a random instruction sequence test according to this embodiment. Here, the random instruction sequence test according to the present embodiment will be described using a specific example of a random instruction sequence. In FIG. 10, (1) and (7) are soft trap occurrence points due to a trap instruction, and (2) to (6) are hard trap occurrence points.
図10に示すランダム命令列を実行したときに,(★)のランダム命令でストアされるレジスタ(%i7)が,(a)のランダム命令で確定される前にストアされてしまい,データ化けとなったケースを想定する。ただし,ランダム命令列の実行1周目では正しく動作し,ランダム命令列の実行2周目で本現象が発生し,(7)のトラップ命令でエラーが検出されたものとする。 When the random instruction sequence shown in FIG. 10 is executed, the register (% i7) stored by the random instruction (★) is stored before being determined by the random instruction (a), and the data is garbled. Assume the case. However, it is assumed that the operation is correct in the first round of execution of the random instruction sequence, this phenomenon occurs in the second execution of the random instruction sequence, and an error is detected in the trap instruction of (7).
まず,障害検出処理により(7)のトラップ命令でエラーが検出されたので,障害発生命令列の範囲は,エラーが検出された(7)のトラップ命令の直前のソフトトラップ発生点である(1)のトラップ命令から,エラーが検出された(7)のトラップ命令までの命令列となる。 First, since an error is detected in the trap instruction (7) by the fault detection process, the range of the fault instruction sequence is the soft trap generation point immediately before the trap instruction (7) where the error is detected (1). ) From the trap instruction to the trap instruction (7) in which an error is detected.
次に,障害発生命令列を間にトラップ発生点が含まれない2つのトラップ発生点間の命令列に絞り込むために,第一の障害発生源絞込み処理を行う。 Next, a first failure source narrowing process is performed to narrow down the failure occurrence instruction sequence to an instruction sequence between two trap occurrence points that do not include a trap occurrence point in between.
(2)のハードトラップ発生点で採取するログの種別を簡易ログからフルログに変更し,ランダム命令列を2周実施してログ情報を比較する。ログ情報比較の結果,(7)のソフトトラップ発生点でエラーが検出される。障害発生命令列の範囲は,(2)のランダム命令から(7)のトラップ命令までの命令列となる。 The log type collected at the hard trap occurrence point in (2) is changed from the simple log to the full log, and the random instruction sequence is executed twice and the log information is compared. As a result of the log information comparison, an error is detected at the soft trap occurrence point (7). The range of the fault occurrence instruction sequence is an instruction sequence from the random instruction (2) to the trap instruction (7).
(2)のハードトラップ発生点で採取するログの種別をフルログから簡易ログに戻し,(3)のハードトラップ発生点で採取するログの種別を簡易ログからフルログに変更し,ランダム命令列を2周実施してログ情報を比較する。ログ情報比較の結果,(7)のソフトトラップ発生点でエラーが検出される。障害発生命令列の範囲は,(3)のランダム命令から(7)のトラップ命令までの命令列となる。 The log type collected at the hard trap occurrence point in (2) is changed from the full log to the simple log, the log type collected at the hard trap occurrence point in (3) is changed from the simple log to the full log, and the random instruction string is set to 2. Lap and compare log information. As a result of the log information comparison, an error is detected at the soft trap occurrence point (7). The range of the fault occurrence instruction sequence is an instruction sequence from the random instruction (3) to the trap instruction (7).
(3)のハードトラップ発生点で採取するログの種別をフルログから簡易ログに戻し,(4)のハードトラップ発生点で採取するログの種別を簡易ログからフルログに変更し,ランダム命令列を2周実施してログ情報を比較する。ログ情報比較の結果,(4)のハードトラップ発生点でエラーが検出される。障害発生命令列の範囲は,(3)のランダム命令から(4)のランダム命令までの命令列となる。 The log type collected at the hard trap occurrence point in (3) is changed from the full log to the simple log, the log type collected at the hard trap occurrence point in (4) is changed from the simple log to the full log, and the random instruction string is set to 2. Lap and compare log information. As a result of the log information comparison, an error is detected at the hard trap occurrence point (4). The range of the fault occurrence instruction sequence is an instruction sequence from the random instruction (3) to the random instruction (4).
この時点で,障害発生命令列の範囲が,間にトラップ発生点が含まれない(3)のハードトラップ発生点から(4)のハードトラップ発生点までの命令列に絞り込まれたので,第一の障害発生源絞込み処理を終了する。 At this time, since the range of the fault instruction sequence is narrowed down to the instruction sequence from the hard trap generation point (3) to the hard trap generation point (4) that does not include a trap generation point in between, the first The process of narrowing down the failure source is terminated.
次に,障害発生命令列を所定の命令数の範囲内に絞り込むために,第二の障害発生源絞込み処理を行う。ここでは,所定の命令数が3であるものとする。 Next, a second failure source narrowing process is performed in order to narrow down the failure occurrence instruction sequence within a predetermined number of instructions. Here, it is assumed that the predetermined number of instructions is three.
アドレスフェッチトラップレジスタ20に(3)のランダム命令から3命令進んだランダム命令のアドレスを設定し,ランダム命令列を2周実施してログ情報を比較する。ログ情報比較の結果,(4)のハードトラップ発生点でエラーが検出される。障害発生命令列の範囲は,(3)のランダム命令から3命令進んだランダム命令から(4)のランダム命令までの命令列となる。
In the address fetch
アドレスフェッチトラップレジスタ20の設定アドレスを,直前のアドレスフェッチトラップレジスタ20の設定アドレスのランダム命令からさらに3命令進んだランダム命令,すなわち(3)のランダム命令から6命令進んだランダム命令のアドレスに更新し,ランダム命令列を2周実施してログ情報を比較する。ログ情報比較の結果,アドレスフェッチトラップレジスタ20の設定アドレスのハードトラップ発生点でエラーが検出される。障害発生命令列の範囲は,(3)のランダム命令から3命令進んだランダム命令から(3)のランダム命令から6命令進んだランダム命令までの命令列となる。
The set address of the address fetch
この時点で,障害発生命令列の範囲が,所定の命令数すなわち3命令の範囲内に絞り込まれたので,第二の障害発生源絞込み処理を終了する。 At this time, since the range of the failure instruction sequence is narrowed down to a predetermined number of instructions, that is, a range of 3 instructions, the second failure occurrence source narrowing process is terminated.
図10に示す事例では,(3)のランダム命令から3命令進んだランダム命令から(3)のランダム命令から6命令進んだランダム命令までの障害発生命令列が,最終結果のエラー情報として出力される。 In the example shown in FIG. 10, the failure instruction sequence from the random instruction advanced by 3 instructions from the random instruction of (3) to the random instruction advanced by 6 instructions from the random instruction of (3) is output as error information of the final result. The
以上説明したランダム命令列試験部10による処理は,コンピュータとソフトウェアプログラムとによって実現することができ,そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも,ネットワークを通して提供することも可能である。
The processing by the random instruction
以上,本発明の実施の形態について説明したが,本発明は本実施の形態に限られるものではない。 Although the embodiment of the present invention has been described above, the present invention is not limited to this embodiment.
例えば,上述の本実施の形態では,簡易ログでカレントウインドウのレジスタのデータのみを採取しているが,制御レジスタやカレントウインドウ以外のウインドウのレジスタのデータも採取するようにしてもよい。ただし,フルログのようにメモリのデータも採取するとハードウェア状態が変わってしまう可能性が上がるので,メモリのデータの採取は行わない方がよい。 For example, in the embodiment described above, although collected only data register of the current window by a simple log, data of the register window other than the control register and current window also may be collected. However, collecting memory data like a full log increases the possibility of changing the hardware status, so it is better not to collect memory data.
また,例えば,上述の本実施の形態では,障害発生の検出や,障害発生命令列の絞込みを行うために,2回の試験命令列実行によって採取されたログ情報の比較を行っているが,2回以上の複数回の試験命令列実行によってログ情報の採取を行い,ログ情報の比較をするようにしてもよい。 Further, for example, in the above-described embodiment, in order to detect a failure occurrence and narrow down a failure occurrence instruction sequence, the log information collected by executing the test instruction sequence twice is compared. Log information may be collected by executing test instruction sequences two or more times, and the log information may be compared.
1 被試験装置
10 ランダム命令列試験部
11 ランダム命令列生成部
12 障害検出部
120 ログ採取部
121 ログ比較部
13 第一の障害発生源絞込み部
130 ログ種別変更部
131 ログ採取部
132 ログ比較部
14 第二の障害発生源絞込み部
140 アドレスフェッチトラップレジスタ設定部
141 ログ採取部
142 ログ比較部
20 アドレスフェッチトラップレジスタ
DESCRIPTION OF
Claims (5)
前記障害検出部が,トラップ命令が埋め込まれたテストプログラムを複数回実行し,前記テストプログラムの実行における前記トラップ命令によるソフトウェアトラップ時にはレジスタおよびメモリのデータのログである第一のログを採取し,ハードウェアトラップ時にはレジスタのログである第二のログを採取し,ある回のテストプログラムの実行において採取した第一のログおよび第二のログと,他の回のテストプログラムの実行において採取した第一のログおよび第二のログとを比較して,不一致であったログ採取箇所の直前のソフトウェアトラップ発生箇所から,不一致であったログ採取箇所までの命令列を障害発生命令列として検出する過程と,The failure detection unit executes a test program in which a trap instruction is embedded a plurality of times, and collects a first log that is a log of register and memory data at the time of software trap by the trap instruction in the execution of the test program, At the time of hardware trap, the second log, which is the register log, is collected. The first and second logs collected during the execution of one test program and the second log collected during the execution of another test program are collected. The process of comparing the first log and the second log and detecting the sequence of instructions from the location where the software trap occurred immediately before the location where the mismatched log was collected to the location where the mismatched log was collected as the failure sequence When,
前記障害発生源絞込み部が,前記テストプログラムを複数回実行し,前記障害発生命令列の実行における少なくとも1箇所のハードウェアトラップ時に前記第一のログを採取し,ある回のテストプログラムの実行において採取した前記第一のログと,他の回のテストプログラムの実行において採取した前記第一のログとが一致するか不一致であるかを比較し,一致する場合に,一致したログ採取箇所より後方の命令列が障害発生命令列であるとし,不一致であった場合に,一致したログ採取箇所以前の命令列が障害発生命令列であるとして障害発生源を絞り込む過程とを有するThe failure source narrowing down section executes the test program a plurality of times, collects the first log at the time of at least one hardware trap in the execution of the failure occurrence instruction sequence, The collected first log is compared with the first log collected in another test program execution to determine whether it matches or does not match. If the instruction sequence is a failure instruction sequence, and there is a mismatch, there is a process of narrowing down the failure source by assuming that the instruction sequence before the matched log collection location is the failure instruction sequence
ことを特徴とするコンピュータ試験方法。A computer test method.
前記第二の障害発生源絞込み部が,設定されたアドレスの命令実行時にハードウェアトラップを発生させるハードウェア機能部に,前記障害発生命令列内のいずれかの命令のアドレスを設定し,前記テストプログラムを複数回実行し,前記障害発生命令列の実行における前記ハードウェア機能部によるハードウェアトラップ時に前記第一のログを採取し,ある回のテストプログラムの実行において採取した前記第一のログと,他の回のテストプログラムの実行において採取した前記第一のログとが一致するか不一致であるかを比較し,一致する場合に,一致したログ採取箇所より後方の命令列が障害発生命令列であるとし,不一致であった場合に,一致したログ採取箇所以前の命令列が障害発生命令列であるとして障害発生源を絞り込む過程を有するThe second failure source narrowing-down unit sets the address of any instruction in the failure instruction sequence in the hardware function unit that generates a hardware trap when the instruction at the set address is executed, and the test The program is executed a plurality of times, the first log is collected at the time of hardware trap by the hardware function unit in the execution of the fault occurrence instruction sequence, and the first log collected in the execution of the test program of a certain time , Compare whether the first log collected in the execution of the test program of the other times matches or does not match, and if they match, the instruction sequence behind the matched log collection location is the fault instruction sequence If there is a mismatch, the process of narrowing down the failure source by assuming that the instruction sequence before the matching log collection location is the failure occurrence instruction sequence With
ことを特徴とする請求項1に記載のコンピュータ試験方法。The computer test method according to claim 1.
前記第二のログは,カレントウインドウのレジスタのデータのログであるThe second log is a log of register data in the current window
ことを特徴とする請求項1または請求項2に記載のコンピュータ試験方法。The computer test method according to claim 1, wherein the computer test method is a computer test method.
前記障害検出部が,トラップ命令が埋め込まれたテストプログラムを複数回実行し,前記テストプログラムの実行における前記トラップ命令によるソフトウェアトラップ時にはレジスタおよびメモリのデータのログである第一のログを採取し,ハードウェアトラップ時にはレジスタのログである第二のログを採取し,ある回のテストプログラムの実行において採取した第一のログおよび第二のログと,他の回のテストプログラムの実行において採取した第一のログおよび第二のログとを比較して,不一致であったログ採取箇所の直前のソフトウェアトラップ発生箇所から,不一致であったログ採取箇所までの命令列を障害発生命令列として検出する処理と,The failure detection unit executes a test program in which a trap instruction is embedded a plurality of times, and collects a first log that is a log of register and memory data at the time of software trap by the trap instruction in the execution of the test program, At the time of hardware trap, the second log, which is the register log, is collected. The first and second logs collected during the execution of one test program and the second log collected during the execution of another test program are collected. Processing that compares the first log and the second log and detects the sequence of instructions from the location where the software trap occurred immediately before the location where the mismatched log was collected to the location where the mismatched log was collected as the faulted sequence When,
前記障害発生源絞込み部が,前記テストプログラムを複数回実行し,前記障害発生命令列の実行における少なくとも1箇所のハードウェアトラップ時に前記第一のログを採取し,ある回のテストプログラムの実行において採取した前記第一のログと,他の回のテストプログラムの実行において採取した前記第一のログとが一致するか不一致であるかを比較し,一致する場合に,一致したログ採取箇所より後方の命令列が障害発生命令列であるとし,不一致であった場合に,一致したログ採取箇所以前の命令列が障害発生命令列であるとして障害発生源を絞り込む処理とをThe failure source narrowing down section executes the test program a plurality of times, collects the first log at the time of at least one hardware trap in the execution of the failure occurrence instruction sequence, The collected first log is compared with the first log collected in another test program execution to determine whether it matches or does not match. If the instruction sequence is a failure instruction sequence, and if there is a mismatch, the processing that narrows down the failure source by assuming that the instruction sequence before the matching log collection location is the failure instruction sequence
実行させるためのコンピュータ試験プログラム。Computer test program for execution.
前記テストプログラムを複数回実行し,前記障害発生命令列の実行における少なくとも1箇所のハードウェアトラップ時に前記第一のログを採取し,ある回のテストプログラムの実行において採取した前記第一のログと,他の回のテストプログラムの実行において採取した前記第一のログとが一致するか不一致であるかを比較し,一致する場合に,一致したログ採取箇所より後方の命令列が障害発生命令列であるとし,不一致であった場合に,一致したログ採取箇所以前の命令列が障害発生命令列であるとして障害発生源を絞り込む障害発生絞込み部とを備えるThe test program is executed a plurality of times, the first log is collected at the time of at least one hardware trap in the execution of the fault occurrence instruction sequence, and the first log collected in a certain test program execution , Compare whether the first log collected in the execution of the test program of the other times matches or does not match, and if they match, the instruction sequence behind the matched log collection location is the fault instruction sequence And a failure occurrence narrowing unit that narrows down the failure source as the instruction sequence before the matched log collection location is a failure occurrence instruction sequence.
ことを特徴とする情報処理装置。An information processing apparatus characterized by that.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008020023A JP5181699B2 (en) | 2008-01-31 | 2008-01-31 | Computer test method, program, and information processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008020023A JP5181699B2 (en) | 2008-01-31 | 2008-01-31 | Computer test method, program, and information processing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009181370A JP2009181370A (en) | 2009-08-13 |
JP5181699B2 true JP5181699B2 (en) | 2013-04-10 |
Family
ID=41035303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008020023A Expired - Fee Related JP5181699B2 (en) | 2008-01-31 | 2008-01-31 | Computer test method, program, and information processing apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5181699B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434357B (en) * | 2021-05-17 | 2023-04-11 | 中国科学院信息工程研究所 | Log anomaly detection method and device based on sequence prediction |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62100844A (en) * | 1985-10-29 | 1987-05-11 | Nec Corp | Test system for information processor |
JPH0664539B2 (en) * | 1986-12-26 | 1994-08-22 | 株式会社日立製作所 | Data processing device testing method |
JPH03218536A (en) * | 1990-01-24 | 1991-09-26 | Mitsubishi Electric Corp | Diagnostic system for data processor |
JPH0728663A (en) * | 1993-07-09 | 1995-01-31 | Fujitsu Ltd | Testing device for information processor |
JP3466775B2 (en) * | 1995-06-09 | 2003-11-17 | 富士通株式会社 | Test program automatic generation system |
JP3954248B2 (en) * | 1999-08-12 | 2007-08-08 | 富士通株式会社 | Testing method for information processing apparatus |
-
2008
- 2008-01-31 JP JP2008020023A patent/JP5181699B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009181370A (en) | 2009-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7475387B2 (en) | Problem determination using system run-time behavior analysis | |
US7320114B1 (en) | Method and system for verification of soft error handling with application to CMT processors | |
US10379989B2 (en) | Processing apparatus, trace unit and diagnostic apparatus | |
US9032371B2 (en) | Method and apparatus for automatic diagnosis of software failures | |
US7962798B2 (en) | Methods, systems and media for software self-healing | |
US9251045B2 (en) | Control flow error localization | |
US20140351793A1 (en) | Prioritizing test cases using multiple variables | |
US8418149B2 (en) | Differential comparison system and method | |
US20070006037A1 (en) | Automated test case result analyzer | |
US20100299654A1 (en) | Approach for root causing regression bugs | |
US10495691B2 (en) | System architecture method and apparatus for adaptive hardware fault detection with hardware metrics subsystem | |
US10585668B2 (en) | Processor testing using randomly generated branch instructions | |
US9384117B2 (en) | Machine and methods for evaluating failing software programs | |
US11436132B2 (en) | Stress test impact isolation and mapping | |
US8065565B2 (en) | Statistical debugging using paths and adaptive profiling | |
US20100031239A1 (en) | Systems, Methods, and Media for Testing Software Patches | |
US9842044B2 (en) | Commit sensitive tests | |
US20210286710A1 (en) | System testing infrastructure for analyzing soft failures in active environment | |
US10229029B2 (en) | Embedded instruction sets for use in testing and error simulation of computing programs | |
US11132286B1 (en) | Dynamic reordering of test case execution | |
US11609842B2 (en) | System testing infrastructure for analyzing and preventing soft failure in active environment | |
US10970195B2 (en) | Reduction of test infrastructure | |
JP5181699B2 (en) | Computer test method, program, and information processing apparatus | |
US20210286712A1 (en) | System testing infrastructure for detecting soft failure in active environment | |
US6986110B1 (en) | Automated method and system for backtracing of instruction parameters from specified instruction in test cases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100917 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120914 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120925 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121126 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20121218 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121231 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160125 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |