JP2011257924A - Testing device and test method - Google Patents

Testing device and test method Download PDF

Info

Publication number
JP2011257924A
JP2011257924A JP2010131110A JP2010131110A JP2011257924A JP 2011257924 A JP2011257924 A JP 2011257924A JP 2010131110 A JP2010131110 A JP 2010131110A JP 2010131110 A JP2010131110 A JP 2010131110A JP 2011257924 A JP2011257924 A JP 2011257924A
Authority
JP
Japan
Prior art keywords
branch
address
program
ram
bit
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.)
Withdrawn
Application number
JP2010131110A
Other languages
Japanese (ja)
Inventor
Taketoshi Ide
武敏 井出
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010131110A priority Critical patent/JP2011257924A/en
Publication of JP2011257924A publication Critical patent/JP2011257924A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To facilitate detection of a path which has not been passed through by tracing a jump result of a conditional instruction of a program while writing the result in RAM.SOLUTION: The following improvements have been made on the basis of the conventional micro program tracer disclosed in Patent Application Publication No. H5-224990: For a RAM1, a 1c of the RAM1 has been added, which stores flag information indicating that a jump has been performed to a branch destination of a branch instruction if a branch has been established in the branch instruction. A signal 20 indicating that a branch has been established and an address for a branch destination has been determined is output from a branch control 5 to a buffer register 7 and is also connected to the 1c of the RAM1 as a write enable signal. A signal line 21 is output from the buffer register 7 and connected to the 1c of the RAM1. The 1c added to the RAM1 can be read from a signal line 18 which reads contents of the RAM1. Furthermore, detection of a path which has not been passed through is performed from RAM1 information including a RAM which has been added to the RAM1.

Description

本発明は、マイコンのプログラム開発におけるプログラムのテスト装置、及びテスト方法に関する。   The present invention relates to a program test apparatus and a test method in microcomputer program development.

近年、マイコンのプログラム開発において、様々な品質保証が求められているため、プログラムのテストを行なった際も、そのテストがどの程度行なわれているかの指標が必要となっている。その一つとして、C0カバレッジ(coverage)が用いられる。C0カバレッジとは、プログラムの命令や分岐がテスト中に少なくとも1回は実行されたかどうかを示す指標である。   In recent years, various quality assurances have been required in microcomputer program development. Therefore, when a program is tested, an index of how much the test is being performed is required. As one of them, C0 coverage is used. C0 coverage is an index indicating whether or not a program instruction or branch has been executed at least once during a test.

C0カバレッジの実現方法としては、実行した命令のアドレス(番地)をトレース情報として取得し、その情報を解析することでC0カバレッジを取得する方法がある。   As a method of realizing C0 coverage, there is a method of acquiring C0 coverage by acquiring an address (address) of an executed instruction as trace information and analyzing the information.

ところが、現在の高機能マイコンに見られる高速クロックでの並列処理を行う場合に、リアルタイムでのトレース取得を行うとトレースすべきアドレス情報が増え、転送速度も高速になる。しかし、トレース情報を出力する端子を増やそうとしても、マイコンのチップサイズ小型化やコスト低減の影響から端子を増やすことができない場合が多い。そのため、実行したアドレス情報をトレース情報として出力しきれない場合がある。そこで、分岐命令だけをトレースする分岐トレースを用いてトレース情報を削減し、C0カバレッジを測定する方法が提案されている。   However, when performing parallel processing with a high-speed clock found in current high-performance microcomputers, if trace acquisition is performed in real time, address information to be traced increases, and the transfer speed also increases. However, even if it is attempted to increase the number of terminals that output trace information, there are many cases where the number of terminals cannot be increased due to the reduction in the chip size of the microcomputer and the cost reduction. Therefore, the executed address information may not be output as trace information. Therefore, a method of measuring the C0 coverage by reducing the trace information using a branch trace that traces only the branch instruction has been proposed.

トレース情報をそのまま残さずC0カバレッジを取得する方法として、特許文献1(特開平5−224990号公報)のような方法が提案されている。   As a method for acquiring C0 coverage without leaving trace information as it is, a method as disclosed in Japanese Patent Application Laid-Open No. 5-224990 has been proposed.

図1に、従来のマイクロプログラムトレーサの構成を示す。従来のマイクロプログラムトレーサは、RAM1と、RAM2と、MIR3と、命令デコーダ4と、ブランチコントロールモジュール5と、MAR6と、バッファレジスタ7と、STR8と、論理ゲート19を備えていた。   FIG. 1 shows the configuration of a conventional microprogram tracer. The conventional microprogram tracer includes RAM1, RAM2, MIR3, instruction decoder 4, branch control module 5, MAR6, buffer register 7, STR8, and logic gate 19.

RAM1は、プログラムの分岐命令の分岐が成立したか成立していないかを示す情報を格納するためのRAM(Random Access Memory)である。RAM2は、トレースの対象となるプログラムを格納するためのRAMである。MIR3は、実行する命令を保持するマクロ命令レジスタである。命令デコーダ4は、MIR3の命令をデコードし、分岐命令かどうかを判定する。ブランチコントロールモジュール5は、実行する命令が分岐命令だった場合に分岐が成立したかどうかを判定し、次に実行するアドレス決定する。MAR6は、現在実行している命令のアドレスを保持するマクロ命令アドレスレジスタである。バッファレジスタ7は、分岐命令が成立か不成立かの情報を保持する。STR8は、分岐命令の条件判定に必要な演算結果等を保持しているステータスレジスタである。論理ゲート19は、論理ゲートである。   The RAM 1 is a RAM (Random Access Memory) for storing information indicating whether a branch instruction of a program is taken or not taken. The RAM 2 is a RAM for storing a program to be traced. The MIR3 is a macro instruction register that holds an instruction to be executed. The instruction decoder 4 decodes the instruction of the MIR 3 and determines whether it is a branch instruction. The branch control module 5 determines whether or not a branch is taken when the instruction to be executed is a branch instruction, and determines an address to be executed next. MAR 6 is a macro instruction address register that holds the address of the instruction currently being executed. The buffer register 7 holds information on whether or not the branch instruction is established. The STR 8 is a status register that holds an operation result and the like necessary for determining the condition of the branch instruction. The logic gate 19 is a logic gate.

プログラムの実行アドレスを格納するMAR6が、RAM2にアドレスを与える。MIR3は、その内容(実行アドレス)を読み出す。命令デコーダ4は、MIR3に読み出された命令(実行アドレス)をデコードする。そのデコード結果が分岐命令の場合、ブランチコントロールモジュール5は、分岐命令の分岐条件をSTR8の演算結果のステータスと比較判定し、分岐が成立した場合には、分岐先アドレスをMAR6へ送出する。また、分岐が成立すると、ブランチコントロールモジュール5は、分岐成立信号を信号線14により分岐成立不成立の情報を保持するバッファレジスタ7及びRAM1の論理ゲート19に送出する。なお、分岐成立信号は、分岐が成立したことを示す信号である。   The MAR 6 that stores the execution address of the program gives an address to the RAM 2. The MIR 3 reads the contents (execution address). The instruction decoder 4 decodes the instruction (execution address) read to the MIR 3. When the decoding result is a branch instruction, the branch control module 5 compares the branch condition of the branch instruction with the status of the operation result of STR8, and when the branch is established, sends the branch destination address to MAR6. When the branch is established, the branch control module 5 sends a branch establishment signal to the buffer register 7 holding the information on the failure of establishment of the branch through the signal line 14 and the logic gate 19 of the RAM 1. The branch establishment signal is a signal indicating that a branch has been established.

図2は、RAM1とRAM2の内容を説明するための図である。図2において、(a)は、トレース実施後のRAM1の内容である。また、(b)は、RAM2のプログラムのコーディングリストである。従来のマイクロプログラムトレーサは、プログラムアドレスを、MAR6から信号線9を経由してRAM2に入力し、信号線10を経由してプログラムをRAM2から読み出す。また、従来のマイクロプログラムトレーサは、読み出されたプログラムを、MIR3へ格納し、デコーダ4へ送る。デコーダ4は、プログラムをデコードし、プログラムの内容に従ってプロセッサ内の各モジュールに指示を出す。デコードした命令が分岐命令でない場合には、ブランチコントロールモジュール5は、MAR6のアドレスに1を加えたアドレスを生成し、MAR6にセット(設定)する。   FIG. 2 is a diagram for explaining the contents of the RAM 1 and RAM 2. In FIG. 2, (a) shows the contents of the RAM 1 after execution of tracing. (B) is a coding list of programs in the RAM 2. A conventional microprogram tracer inputs a program address from the MAR 6 to the RAM 2 via the signal line 9 and reads a program from the RAM 2 via the signal line 10. The conventional microprogram tracer stores the read program in the MIR 3 and sends it to the decoder 4. The decoder 4 decodes the program and gives an instruction to each module in the processor according to the contents of the program. If the decoded instruction is not a branch instruction, the branch control module 5 generates an address obtained by adding 1 to the address of the MAR 6 and sets (sets) it in the MAR 6.

デコーダ4は、デコードしたプログラムが分岐命令であった場合、信号線11を経由して分岐命令検出信号をRAM1に送り、信号線12を経由して分岐命令の分岐条件をブランチコントロールモジュール5へ送る。   When the decoded program is a branch instruction, the decoder 4 sends a branch instruction detection signal to the RAM 1 via the signal line 11 and sends a branch condition of the branch instruction to the branch control module 5 via the signal line 12. .

ブランチコントロールモジュール5は、分岐条件とSTR8の内容とを比較し、分岐が成立しているか否かを判定する。   The branch control module 5 compares the branch condition with the contents of the STR 8 and determines whether or not the branch is established.

分岐が成立していた場合、ブランチコントロールモジュール5は、信号線14を経由して分岐成立信号を出力し、バッファレジスタ7とRAM1のゲート19とに送る。信号線11及び信号線14を経由して出力された信号により、ゲート19を介して信号線17a上のライトイネーブル(WE:Write Enable)がオン(有効)になる。信号線13を経由してMAR6にセットされたアドレスに対応するRAM1の1aのビット位置に、信号線15を経由してバッファレジスタ7の内容が書き込まれる。その後、ブランチコントロールモジュール5は、分岐先のアドレスを、信号線13を経由してMAR6にセットする。これにより、分岐成立時の動作が完了する。   When the branch is established, the branch control module 5 outputs a branch establishment signal via the signal line 14 and sends it to the buffer register 7 and the gate 19 of the RAM 1. A signal output via the signal line 11 and the signal line 14 turns on (enables) a write enable (WE: Write Enable) on the signal line 17a via the gate 19. The contents of the buffer register 7 are written via the signal line 15 into the bit position of 1a of the RAM 1 corresponding to the address set in the MAR 6 via the signal line 13. Thereafter, the branch control module 5 sets the branch destination address in the MAR 6 via the signal line 13. Thereby, the operation when the branch is established is completed.

分岐が不成立だった場合、ブランチコントロールモジュール5は、信号線14を経由して分岐成立信号を出力しない。このため、ゲート19を介して信号線17b上のライトイネーブル(WE)がオンになり、RAM1の1bのビット位置にバッファレジスタ7の内容の反転が書き込まれる。その後、ブランチコントロールモジュール5は、MAR6のアドレスに1を加えたアドレスを生成し、MAR6にセットする。これにより、分岐未成立時の動作が完了する。   If the branch is not established, the branch control module 5 does not output a branch establishment signal via the signal line 14. Therefore, the write enable (WE) on the signal line 17b is turned on via the gate 19, and the inversion of the contents of the buffer register 7 is written into the bit position 1b of the RAM 1. Thereafter, the branch control module 5 generates an address obtained by adding 1 to the address of the MAR 6 and sets it in the MAR 6. Thereby, the operation when the branch is not established is completed.

上記のようにして、分岐命令が実行される毎にRAM1への書き込みが行われ、分岐が成立した場合には、RAM1の1aのビットがオンになり、分岐が成立しなかった場合には、RAM1の1bのビットがオンになる。   As described above, each time a branch instruction is executed, writing to the RAM 1 is performed. When the branch is established, the bit 1a of the RAM 1 is turned on, and when the branch is not established, Bit 1b of RAM1 is turned on.

次に、マイコンその他のプロセッサが、実際にRAM1の内容を読み出して未通過パスの検出を行う動作について記載する。RAM1の内容は、信号線18を経由し、プロセッサの外に読み出すことが可能である。図2(a)は、RAM1の内容を読み出した一例で、RAM1の1aは、J系(分岐成立フラグ)、1bは、NJ系(分岐不成立フラグ)となっている。   Next, an operation in which the microcomputer or other processor actually reads the contents of the RAM 1 and detects a non-passing path will be described. The contents of the RAM 1 can be read out of the processor via the signal line 18. FIG. 2A shows an example in which the contents of the RAM 1 are read out. In the RAM 1, 1a is a J system (branch establishment flag) and 1b is an NJ system (branch establishment failure flag).

このフラグの意味は、分岐成立フラグ(1a)が1であった場合、この分岐命令の次に実行された命令は、次のアドレスの命令ではなく分岐先の命令と解釈する。   The meaning of this flag is that when the branch establishment flag (1a) is 1, the instruction executed next to this branch instruction is interpreted as a branch destination instruction, not an instruction at the next address.

分岐未成立フラグ(1b)が1であった場合、この分岐命令の次に実行された命令は、次の番地の命令と解釈する。   If the branch incomplete flag (1b) is 1, the instruction executed next to this branch instruction is interpreted as an instruction at the next address.

分岐成立(1a)と分岐未成立(1b)のフラグ両方が1であった場合は、次に実行された命令が分岐命令の次の番地の命令の場合と分岐先の命令の場合の両方があったと解釈し、以後、両方の実行命令を解析する。これを最後まで繰り返すことでプログラムの中で実行された命令、実行されなかった命令が明確になり、C0カバレッジが計算できる。   If both the branch established (1a) and branch unestablished (1b) flags are 1, the next executed instruction is the instruction at the next address of the branch instruction and the branch destination instruction. After that, it interprets both execution instructions. By repeating this until the end, the instructions executed and not executed in the program become clear, and the C0 coverage can be calculated.

また、図2(b)は、そのときに実行されたプログラムのリストである。A番地〜B番地、B番地〜C番地までの間には、他の分岐命令はないものとする。   FIG. 2B is a list of programs executed at that time. It is assumed that there are no other branch instructions between addresses A to B and addresses B to C.

まず、A番地のジャンプ命令(分岐命令)では、図2(a)を見ると分岐成立フラグも分岐不成立フラグも立っているため、分岐の成立と不成立どちらの動作も行ったことがわかる。同様に、B番地のジャンプ命令では、分岐成立のみが動作したことが分かり、C番地のジャンプ命令では、分岐不成立のみ動作したことが分かる。   First, in the jump instruction (branch instruction) at address A, it can be seen from FIG. 2A that both the branch establishment and non-establishment operations were performed because both the branch establishment flag and the branch establishment failure flag are set. Similarly, it can be seen that the jump instruction at address B only operated for branch establishment, and the jump instruction at address C only operated for branch failure.

この情報を基に未通過パスの検出を行うと、まずA番地は、分岐が不成立の場合があるため、A番地の次の命令を実行し、B番地まで実行したと判断する。更に、A番地の分岐先は、プログラムを解析するとB番地に分岐している。この場合、B番地までは、すでに実行したことが分かるため、解析を省略する。   If a non-passing path is detected based on this information, first, since the branch of A address may not be established, it is determined that the instruction next to A address is executed and executed up to B address. Further, the branch destination of address A branches to address B when the program is analyzed. In this case, analysis up to address B is omitted because it can be seen that it has already been executed.

次に、B番地は、分岐成立のみ動作しているため、B番地の分岐命令の分岐先は、プログラムリストを解析してC番地であると判断し、B番地からC番地までの命令は、実行されていないと判断する。   Next, since address B is operating only for branch establishment, the branch destination of the branch instruction at address B is determined to be address C by analyzing the program list, and the instructions from address B to address C are: Judge that it is not executed.

次に、C番地は、分岐不成立のみ動作しているため、C番地以降の命令が実行されたと判断する。   Next, since the address C operates only when the branch is not established, it is determined that the instruction after the address C has been executed.

このように、プログラムリスト(RAM2)と分岐成立不成立の情報(RAM1)の静的解析を繰り返して未通過パスの検出を行う方法を提案している。   In this way, a method is proposed in which a static analysis of the program list (RAM2) and the information on whether or not the branch is taken (RAM1) is repeated to detect a non-passing path.

また、特許文献2(特開平7−262047号公報)では、分岐の成立、不成立のフラグではなく、分岐命令のアドレスと、その命令の分岐先アドレスを保持する記憶装置を用意し、その内容を読み出して、その情報を順番にたどっていくことで未通過パスの検出を行うことができる方法を提案している。   Further, in Patent Document 2 (Japanese Patent Laid-Open No. 7-262047), a storage device that holds the address of a branch instruction and the branch destination address of the instruction is prepared instead of the flag indicating whether a branch is taken or not taken. A method is proposed in which a non-passed path can be detected by reading and tracing the information in order.

特許文献1では、分岐したか否かを動的に解析(記録)し、分岐先のアドレスは、プログラムを静的に解析することで得ている。しかし、マイコンの分岐命令には、レジスタに格納されているアドレスへジャンプするもの等、分岐命令実行時のレジスタの値によって分岐先が決定される分岐命令を使用する場合があり、プログラムを静的に解析しても分岐先アドレスが分からない場合がある。   In Patent Document 1, whether or not a branch is taken is dynamically analyzed (recorded), and the branch destination address is obtained by statically analyzing the program. However, the branch instruction of the microcomputer may use a branch instruction whose branch destination is determined by the value of the register when the branch instruction is executed, such as a jump to the address stored in the register. In some cases, the branch destination address is not known even after analysis.

図3に、プログラムの例を示す。この例では、アドレスCの分岐命令の分岐先アドレスが命令実行の結果によってアドレスDへ分岐するか、Eへ分岐するか変化する。   FIG. 3 shows an example of the program. In this example, the branch destination address of the branch instruction at address C changes depending on the result of instruction execution, that is, whether it branches to address D or E.

特許文献1のような従来例では、図3のようなプログラムを使った場合の未通過パスの検出方法については、述べられていない。実際にこのプログラムの未通過パスを検出しようとすると、アドレスCの分岐命令がアドレスD、Eのどちらに分岐したのか判断できない場合が発生し、命令実行をトレースできず、未通過パスがあっても検出できない場合がある。   In a conventional example such as Patent Document 1, a method for detecting a non-passing path when a program as shown in FIG. 3 is used is not described. If an attempt is made to detect a non-passing path of this program, it may not be possible to determine whether the branch instruction at address C has branched to either address D or E, the instruction execution cannot be traced, and there is a non-passing path. May not be detected.

また、特許文献2では、分岐先アドレスを取得する方法を述べているが、分岐の不成立についての情報は、得ていないため、今回の図2に示すようなプログラムを例にした場合、A番地からB番地へ分岐したことは、分かるが、A番地〜B番地までが実行されたかどうかの判断ができない場合がある。   Further, Patent Document 2 describes a method of acquiring a branch destination address. However, since information on the failure of branching is not obtained, when the program as shown in FIG. Although it can be seen that the branching from address A to address B, it may not be possible to determine whether addresses A to B have been executed.

これら2つの特許文献のような従来例では、実際の実行結果と取得したC0カバレッジの結果が一致しない(正しくない)という問題が起こる場合がある。   In the conventional examples such as these two patent documents, there may be a problem that the actual execution result and the acquired C0 coverage result do not match (incorrect).

特開平5−224990号公報JP-A-5-224990 特開平7−262047号公報Japanese Patent Laid-Open No. 7-262047

本発明は、マイクロプログラムの分岐命令の分岐結果として、分岐成立・不成立、及び分岐先をプロセッサ内部に保持し、保持された分岐結果を読み出してマイクロプログラムの実行状況を観測することを特徴とする。   The present invention is characterized in that a branch establishment / non-establishment and a branch destination are held in the processor as a branch result of a branch instruction of the microprogram, and the execution result of the microprogram is observed by reading the held branch result. .

本発明のテスト装置は、プログラムのアドレスと同一のアドレス空間を持ち、3ビットの幅を有する第1のRAMと、プログラムを格納しておくための第2のRAMと、プログラムの条件付き分岐命令が実行されたことを検出するための実行検出手段と、分岐命令が分岐したか否かの結果を保持するためのバッファレジスタと、実行検出手段により送出されたプログラムの分岐命令の実行状況を分析し、第1のRAMへ分類して書き込むためのゲートとを具備する。   A test apparatus according to the present invention includes a first RAM having the same address space as a program address, a 3-bit width, a second RAM for storing a program, and a conditional branch instruction for the program The execution detection means for detecting the execution of the instruction, the buffer register for holding the result of whether or not the branch instruction has branched, and the execution status of the branch instruction of the program sent out by the execution detection means And a gate for classifying and writing to the first RAM.

実行検出手段は、第2のRAMからマイクロ命令レジスタへ読み出されたマイクロ命令をデコードし、分岐命令であるか否かを示す信号及び分岐条件を出力するためのデコーダと、デコーダの出力により得られた分岐条件とステータスレジスタの内容とを比較し、分岐が成立したか否かを判定し、判定結果をバッファレジスタ及びゲートに送出するためのブランチコントロールモジュールとを具備する。   The execution detection means decodes the microinstruction read from the second RAM to the microinstruction register, outputs a signal indicating whether or not the instruction is a branch instruction and a branch condition, and obtains the output from the decoder. A branch control module for comparing the determined branch condition with the contents of the status register, determining whether or not the branch is taken, and sending the determination result to the buffer register and the gate.

ブランチコントロールモジュールは、分岐が成立して分岐先のアドレスが確定したことを示す信号を、バッファレジスタに出力する手段と、分岐が成立して分岐先のアドレスが確定したことを示す信号を、ライトイネーブル信号として第1のRAMに送る手段と、ライトイネーブル信号に応じて、第1のRAMのライトイネーブルをオンにして、マイクロ命令レジスタにセットされた分岐先アドレスに対応する第1のRAMのビット位置にバッファレジスタ値を書き込む手段とを具備する。   The branch control module writes a signal indicating to the buffer register that the branch has been established and the branch destination address has been established, and a signal to indicate that the branch has been established and the branch destination address has been established. Bits of the first RAM corresponding to the branch destination address set in the microinstruction register by turning on the write enable of the first RAM according to the means for sending to the first RAM as the enable signal and the write enable signal Means for writing a buffer register value to the location.

分岐先情報を記録することで、分岐命令実行時のレジスタの値によって分岐先が決定される分岐命令を含め、全ての分岐先を把握できる。   By recording the branch destination information, it is possible to grasp all the branch destinations including the branch instruction whose branch destination is determined by the register value at the time of execution of the branch instruction.

従来のマイクロプログラムトレーサの構成図である。It is a block diagram of the conventional microprogram tracer. RAMの関係と内容を説明するための図である。It is a figure for demonstrating the relationship and content of RAM. プログラム例を示す図である。It is a figure which shows the example of a program. 本発明のテスト装置の構成図である。It is a block diagram of the test apparatus of this invention. 本発明において取得したRAMの値の例である。It is an example of the value of RAM acquired in this invention. 本発明における未通過パス検出処理のフローチャートである。It is a flowchart of a non-passing path detection process in the present invention.

以下に、本発明の実施形態について添付図面を参照して説明する。
図4は、本発明のテスト装置の構成例である。図4に示す本発明のテスト装置は、RAM1と、RAM2と、MIR3と、命令デコーダ4と、ブランチコントロールモジュール5と、MAR6と、バッファレジスタ7と、STR8と、論理ゲート19を備える。
Embodiments of the present invention will be described below with reference to the accompanying drawings.
FIG. 4 is a configuration example of the test apparatus of the present invention. The test apparatus of the present invention shown in FIG. 4 includes a RAM 1, a RAM 2, an MIR 3, an instruction decoder 4, a branch control module 5, a MAR 6, a buffer register 7, a STR 8, and a logic gate 19.

RAM1は、プログラムの分岐命令の分岐が成立したか成立していないかを示す情報を格納するためのRAM(Random Access Memory)である。RAM2は、トレースの対象となるプログラムを格納するためのRAMである。MIR3は、実行する命令を保持するマクロ命令レジスタである。命令デコーダ4は、MIR3の命令をデコードし、分岐命令かどうかを判定する。ブランチコントロールモジュール5は、実行する命令が分岐命令だった場合に分岐が成立したかどうかを判定し、次に実行するアドレス決定する。MAR6は、現在実行している命令のアドレスを保持するマクロ命令アドレスレジスタである。バッファレジスタ7は、分岐命令が成立か不成立かの情報を保持する。STR8は、分岐命令の条件判定に必要な演算結果等を保持しているステータスレジスタである。論理ゲート19は、論理ゲートである。   The RAM 1 is a RAM (Random Access Memory) for storing information indicating whether a branch instruction of a program is taken or not taken. The RAM 2 is a RAM for storing a program to be traced. The MIR3 is a macro instruction register that holds an instruction to be executed. The instruction decoder 4 decodes the instruction of the MIR 3 and determines whether it is a branch instruction. The branch control module 5 determines whether or not a branch is taken when the instruction to be executed is a branch instruction, and determines an address to be executed next. MAR 6 is a macro instruction address register that holds the address of the instruction currently being executed. The buffer register 7 holds information on whether or not the branch instruction is established. The STR 8 is a status register that holds an operation result and the like necessary for determining the condition of the branch instruction. The logic gate 19 is a logic gate.

プログラムの実行アドレスを格納するMAR6が、RAM2にアドレスを与える。MIR3は、その内容(実行アドレス)を読み出す。命令デコーダ4は、MIR3に読み出された命令(実行アドレス)をデコードする。そのデコード結果が分岐命令の場合、ブランチコントロールモジュール5は、分岐命令の分岐条件をSTR8の演算結果のステータスと比較判定し、分岐が成立した場合には、分岐先アドレスをMAR6へ送出する。また、分岐が成立すると、ブランチコントロールモジュール5は、分岐成立信号を信号線14により分岐成立不成立の情報を保持するバッファレジスタ7及びRAM1の論理ゲート19に送出する。なお、分岐成立信号は、分岐が成立したことを示す信号である。   The MAR 6 that stores the execution address of the program gives an address to the RAM 2. The MIR 3 reads the contents (execution address). The instruction decoder 4 decodes the instruction (execution address) read to the MIR 3. When the decoding result is a branch instruction, the branch control module 5 compares the branch condition of the branch instruction with the status of the operation result of STR8, and when the branch is established, sends the branch destination address to MAR6. When the branch is established, the branch control module 5 sends a branch establishment signal to the buffer register 7 holding the information on the failure of establishment of the branch through the signal line 14 and the logic gate 19 of the RAM 1. The branch establishment signal is a signal indicating that a branch has been established.

図4に示す本発明のテスト装置は、図1に示す従来のマイクロプログラムトレーサを基に、RAM1の1cと、信号線20と、信号線21を追加し、信号線18をRAM1の1cに接続したものである。なお、図4に示す本発明のテスト装置は、マイコン自体でも、マイコンに外部接続される情報処理装置でも良い。すなわち、本発明のテスト装置は、マイコン自体に搭載されたモジュールでも良いし、マイコンに外部接続された半導体装置でも良い。   The test apparatus of the present invention shown in FIG. 4 is based on the conventional microprogram tracer shown in FIG. 1 and adds a RAM 1c, a signal line 20, and a signal line 21, and connects the signal line 18 to the RAM 1 1c. It is a thing. Note that the test apparatus of the present invention shown in FIG. 4 may be a microcomputer itself or an information processing apparatus externally connected to the microcomputer. That is, the test apparatus of the present invention may be a module mounted on the microcomputer itself or a semiconductor device externally connected to the microcomputer.

本発明では、図1に示す従来のマイクロプログラムトレーサを基に、RAM1に、分岐命令の分岐が成立した場合にその命令の分岐先としてジャンプしてきたことを示すフラグ情報を格納するRAM1の1cを追加した。   In the present invention, on the basis of the conventional microprogram tracer shown in FIG. 1, the RAM 1 is stored in the RAM 1 with flag information indicating that the jump is made as the branch destination of the instruction when the branch of the branch instruction is established. Added.

本発明では、図1に示す従来のマイクロプログラムトレーサを基に、ブランチコントロール5は、信号線20を経由して、分岐が成立して分岐先のアドレスが確定したことを示す信号をバッファレジスタ7に出力し、更に、ライトイネーブル信号としてRAM1の1cに送る。図4では、信号線20は、ブランチコントロールモジュール5とバッファレジスタ7を接続する信号線(信号線14と並列に設けられた信号線)から分岐し、RAM1の1cに接続されている。なお、信号線14は、分岐が成立したことを示す信号(分岐成立信号)を出力するための信号線である。信号線20は、分岐先のアドレスが確定したことを示す信号を出力するための信号線である。従って、信号線14と信号線20は、それぞれ独立している。   In the present invention, based on the conventional microprogram tracer shown in FIG. 1, the branch control 5 sends a signal indicating that the branch is established and the branch destination address is determined via the signal line 20 to the buffer register 7. Further, it is sent to 1c of the RAM 1 as a write enable signal. In FIG. 4, the signal line 20 branches from a signal line (a signal line provided in parallel with the signal line 14) connecting the branch control module 5 and the buffer register 7, and is connected to 1 c of the RAM 1. The signal line 14 is a signal line for outputting a signal (branch establishment signal) indicating that the branch has been established. The signal line 20 is a signal line for outputting a signal indicating that the branch destination address has been determined. Therefore, the signal line 14 and the signal line 20 are independent of each other.

本発明では、図1に示す従来のマイクロプログラムトレーサを基に、バッファレジスタ7から信号線21を経由して信号を出力してRAM1の1cに送る。   In the present invention, based on the conventional microprogram tracer shown in FIG. 1, a signal is output from the buffer register 7 via the signal line 21 and sent to the RAM 1 1c.

本発明では、図1に示す従来のマイクロプログラムトレーサを基に、RAM1の内容を読み出すために信号線18をRAM1の1cに接続し、信号線18を経由して、RAM1に追加した1cを読み出せるようにした。例えば、本発明のテスト装置と信号線18を介して接続されたマイコンや計算機は、信号線18を経由して、RAM1に追加した1cを読み出すことが可能である。   In the present invention, on the basis of the conventional microprogram tracer shown in FIG. 1, the signal line 18 is connected to 1c of the RAM 1 to read the contents of the RAM 1, and the 1c added to the RAM 1 is read via the signal line 18. I was able to put it out. For example, a microcomputer or computer connected to the test apparatus of the present invention via the signal line 18 can read 1c added to the RAM 1 via the signal line 18.

本発明では、図1に示す従来のマイクロプログラムトレーサを基に、RAM1に追加した1cも含むRAM1の情報から未通過パスの検出を行うようにした。   In the present invention, based on the conventional microprogram tracer shown in FIG. 1, the non-passing path is detected from the information in the RAM 1 including 1c added to the RAM 1.

本発明のテスト装置は、プログラムアドレスを、MAR6から信号線9を経由してRAM2に入力し、信号線10を経由してプログラムをRAM2から読み出す。また、本発明のテスト装置は、読み出されたプログラムを、MIR3へ格納し、デコーダ4へ送る。デコーダ4は、プログラムをデコードし、プログラムの内容に従ってプロセッサ内の各モジュールに指示を出す。デコードした命令が分岐命令でない場合には、ブランチコントロールモジュール5は、MAR6のアドレスに1を加えたアドレスを生成し、MAR6にセット(設定)する。   The test apparatus of the present invention inputs a program address from the MAR 6 to the RAM 2 via the signal line 9 and reads the program from the RAM 2 via the signal line 10. The test apparatus of the present invention stores the read program in the MIR 3 and sends it to the decoder 4. The decoder 4 decodes the program and gives an instruction to each module in the processor according to the contents of the program. If the decoded instruction is not a branch instruction, the branch control module 5 generates an address obtained by adding 1 to the address of the MAR 6 and sets (sets) it in the MAR 6.

デコーダ4は、デコードしたプログラムが分岐命令であった場合、信号線11を経由して分岐命令検出信号をRAM1に送り、信号線12を経由して分岐命令の分岐条件をブランチコントロールモジュール5へ送る。   When the decoded program is a branch instruction, the decoder 4 sends a branch instruction detection signal to the RAM 1 via the signal line 11 and sends a branch condition of the branch instruction to the branch control module 5 via the signal line 12. .

ブランチコントロールモジュール5は、分岐条件とSTR8の内容とを比較し、分岐が成立しているか否かを判定する。   The branch control module 5 compares the branch condition with the contents of the STR 8 and determines whether or not the branch is established.

以下の動作は、本発明のテスト装置の独自の動作である。   The following operations are unique operations of the test apparatus of the present invention.

分岐が成立していた場合、ブランチコントロールモジュール5は、信号線14を経由して分岐成立信号を出力し、バッファレジスタ7とゲート19とに送る。信号線11及び信号線14を経由して出力された信号により、ゲート19を介して信号線17a上のライトイネーブル(WE)がオンになる。信号線13を経由してMAR6にセットされたアドレスに対応するRAM1の1aのビット位置に、信号線15を経由してバッファレジスタ7の内容が書き込まれる。その後、ブランチコントロールモジュール5は、分岐先のアドレスを、信号線13を経由してMAR6にセットする。   When the branch is established, the branch control module 5 outputs a branch establishment signal via the signal line 14 and sends it to the buffer register 7 and the gate 19. The signal output via the signal line 11 and the signal line 14 turns on the write enable (WE) on the signal line 17a via the gate 19. The contents of the buffer register 7 are written via the signal line 15 into the bit position of 1a of the RAM 1 corresponding to the address set in the MAR 6 via the signal line 13. Thereafter, the branch control module 5 sets the branch destination address in the MAR 6 via the signal line 13.

このとき、本発明において、ブランチコントロールモジュール5は、信号線20を経由して、分岐が成立して分岐先のアドレスが確定したことを示す信号を出力し、RAM1の1cに送る。   At this time, in the present invention, the branch control module 5 outputs a signal indicating that the branch is established and the branch destination address is fixed via the signal line 20 and sends the signal to the RAM 1 1c.

これにより、RAM1の1cのライトイネーブル(WE)がオンになり、MAR6にセットされた分岐先アドレス(信号線16)に対応するRAM1の1cのビット位置に信号線21を経由してバッファレジスタ7の値が書き込まれる。   As a result, the write enable (WE) of 1c in the RAM 1 is turned on, and the buffer register 7 passes through the signal line 21 to the bit position of 1c in the RAM 1 corresponding to the branch destination address (signal line 16) set in the MAR 6. The value of is written.

また、プログラムの開始番地を示す情報として、本発明では、リセットベクタ等からのプログラムの実行を開始するときも分岐命令の分岐先と同様に判断し、開始番地がMAR6にセットされるとき、信号線20を経由して、分岐が成立して分岐先のアドレスが確定したことを示す信号を出力し、RAM1の1cに信号線21を経由してバッファレジスタ7の値を保持する。   As information indicating the start address of a program, in the present invention, when starting execution of a program from a reset vector or the like, it is determined in the same manner as the branch destination of a branch instruction, and when the start address is set in MAR6, A signal indicating that the branch is established and the branch destination address is fixed is output via the line 20, and the value of the buffer register 7 is held in the RAM 1 1 c via the signal line 21.

また、プログラムの終了位置に置かれる命令としては、無限ループの分岐命令かHALT命令がある。HALT命令は、プロセッサ等を停止させる命令である。本発明では、デコーダ4は、HALT命令も分岐命令と判断し、分岐命令と同様に、信号線11を経由して、分岐命令を示す信号を出力する。それにより、ブランチコントロールモジュール5は、信号線14を経由して分岐成立信号を出力し、バッファレジスタ7とゲート19とに送る。信号線11、信号線14より出力された信号により、ゲート19を介して信号線17a上のライトイネーブル(WE)がオンになる。信号線13を経由してMAR6にセットされたアドレスに対応するRAM1の1aのビット位置に、信号線15を経由してバッファレジスタ7の内容が書き込まれる。   As an instruction placed at the end of the program, there is an infinite loop branch instruction or a HALT instruction. The HALT instruction is an instruction for stopping the processor or the like. In the present invention, the decoder 4 determines that the HALT instruction is also a branch instruction, and outputs a signal indicating the branch instruction via the signal line 11 similarly to the branch instruction. Thereby, the branch control module 5 outputs a branch establishment signal via the signal line 14 and sends it to the buffer register 7 and the gate 19. A signal output from the signal line 11 and the signal line 14 turns on the write enable (WE) on the signal line 17a via the gate 19. The contents of the buffer register 7 are written via the signal line 15 into the bit position of 1a of the RAM 1 corresponding to the address set in the MAR 6 via the signal line 13.

本発明では、マイコンその他のプロセッサが、このRAM1の値を使用して、未通過パスの検出を行う。具体的な処理については、以下に説明する。なお、以下では、アドレスの値について、「0」はイネーブルがオフ(無効)の状態、「1」はイネーブルがオン(有効)の状態を示す。   In the present invention, a microcomputer or other processor uses this RAM1 value to detect a non-passing path. Specific processing will be described below. In the following, regarding the address value, “0” indicates that the enable is off (invalid), and “1” indicates that the enable is on (valid).

プログラムの実行を開始した命令と分岐先(ジャンプした先)の命令の分岐先情報は、必ず「分岐先フラグ(1c)=1」となり、条件分岐命令の次の番地の命令が実行されない(分岐先への分岐のみ)場合の分岐先情報は、「分岐成立(1a)=1」、「分岐未成立(1b)=0」であるため、プログラムの先頭から終わりまでの分岐情報において、「分岐先フラグ(1c)=1」で始まり「分岐成立(1a)=1」、「分岐未成立(1b)=0」で終わる区間をプログラムが実行された区間として抽出できる。   The branch destination information of the instruction that started executing the program and the branch destination (jump destination) instruction is always “branch destination flag (1c) = 1”, and the instruction at the address next to the conditional branch instruction is not executed (branch) The branch destination information in the case of “only branch to the destination” is “branch established (1a) = 1” and “branch not established (1b) = 0”, so in the branch information from the beginning to the end of the program, A section starting with the first flag (1c) = 1 ”and ending with“ branch established (1a) = 1 ”and“ branch not established (1b) = 0 ”can be extracted as a section in which the program is executed.

分岐命令の分岐先が命令実行時のレジスタの値によって分岐先が決定されるような分岐命令を使用するプログラムに対して本発明を適用した場合の例について、図3に示すプログラムを用いて説明する。   An example in which the present invention is applied to a program that uses a branch instruction in which the branch destination of the branch instruction is determined by the register value when the instruction is executed will be described using the program shown in FIG. To do.

図5は、図3に示すプログラムについて、アドレスCの分岐命令の分岐先を決定するレジスタの値nが、アドレスEに分岐して実行された場合に、本発明を用いて取得したRAM1の値を示している。   FIG. 5 shows the value of the RAM 1 obtained by using the present invention when the value n of the register that determines the branch destination of the branch instruction at the address C is branched to the address E and executed for the program shown in FIG. Is shown.

まず、アドレスAは、プログラムの開始命令で、RAM1のアドレスAに対応する1cに、開始位置を示すフラグがセットされる。   First, the address A is a program start instruction, and a flag indicating the start position is set in 1c corresponding to the address A of the RAM1.

その後、アドレスAからアドレスBまで実行し、アドレスBの分岐命令で分岐が成立し、RAM1のアドレスBに対応する1aに、分岐成立を示すフラグがセットされる。   Thereafter, execution is performed from address A to address B, a branch is established by the branch instruction at address B, and a flag indicating that the branch is established is set in 1a corresponding to address B of RAM1.

続いて、分岐先がアドレスCとなっているので、RAM1のアドレスCに対応する1cに、分岐先を示すフラグがセットされる。更に、アドレスCには、分岐命令があり、分岐が成立して分岐成立フラグがRAM1のアドレスCに対応する1aにセットされる。   Subsequently, since the branch destination is the address C, a flag indicating the branch destination is set in 1c corresponding to the address C of the RAM 1. Further, there is a branch instruction at the address C, the branch is established, and the branch establishment flag is set to 1a corresponding to the address C in the RAM 1.

このとき、分岐先アドレスとしてnがEを指し示しているとすると、RAM1のアドレスEに対応する1cに値がセットされる。その後、アドレスEからアドレスGまで実行し、アドレスGのHALT命令を実行する。本発明では、HALT命令は、分岐命令と同様に扱われるため、分岐成立フラグがRAM1のアドレスGに対応する1aにセットされる。   At this time, if n indicates E as the branch destination address, a value is set to 1c corresponding to the address E of the RAM1. Thereafter, execution is performed from address E to address G, and the HALT instruction at address G is executed. In the present invention, since the HALT instruction is handled in the same manner as the branch instruction, the branch establishment flag is set to 1a corresponding to the address G of the RAM1.

[未通過パスの検出処理]
以下に、図6を用いて未通過パスの検出処理を説明する。なお、本発明のテスト装置がマイコン自体に搭載されたモジュールや、マイコンに外部接続された半導体装置であれば、そのマイコンが当該処理(未通過パスの検出処理)を実施する。また、本発明のテスト装置が計算機と外部接続されている場合、その計算機が当該処理を実施する。ここでは、上記のようなマイコンや計算機を、「マイコンその他のプロセッサ」と表記する。
[Unpassed path detection processing]
Hereinafter, the non-passing path detection process will be described with reference to FIG. If the test apparatus of the present invention is a module mounted on the microcomputer itself or a semiconductor device externally connected to the microcomputer, the microcomputer performs the process (unpassed path detection process). In addition, when the test apparatus of the present invention is externally connected to a computer, the computer performs the process. Here, the microcomputer and the computer as described above are expressed as “microcomputer and other processors”.

(1)ステップS101
まず、マイコンその他のプロセッサは、プログラムリストを静的に解析し、プログラムの配置された領域を保持しておく。
(1) Step S101
First, the microcomputer or other processor statically analyzes the program list and holds the area where the program is arranged.

(2)ステップS102
次に、プログラムの存在する領域の先頭にRAM1アドレスをセットする。
(2) Step S102
Next, the RAM1 address is set at the head of the area where the program exists.

(3)ステップS103
その後、RAM1アドレスの値を読み出す。
(3) Step S103
Thereafter, the value of the RAM1 address is read.

(4)ステップS104
RAM1アドレスについて、「分岐先フラグ(1c)=1」の箇所を検索する。すなわち、読み出したRAM1アドレスが「分岐先フラグ(1c)=1」となっているか確認する。
(4) Step S104
The RAM 1 address is searched for a “branch destination flag (1c) = 1”. That is, it is confirmed whether the read RAM1 address is “branch destination flag (1c) = 1”.

(5)ステップS105
読み出したRAM1アドレスが「分岐先フラグ(1c)=1」となっていれば、このRAM1アドレスの命令からプログラムを開始したと判断し、このRAM1アドレスを、実行開始アドレス(又は分岐先アドレス)として保持する。なお、既に保持されているRAM1アドレスが存在する場合、保持されているRAM1アドレスを、新たに読み出したRAM1アドレスに更新(上書き)するようにしても良い。読み出したRAM1アドレスが「分岐先フラグ(1c)=1」となっていなければ、当該動作(ステップS105の動作)を行わない。
(5) Step S105
If the read RAM1 address is “branch destination flag (1c) = 1”, it is determined that the program is started from the instruction of this RAM1 address, and this RAM1 address is used as the execution start address (or branch destination address). Hold. When there is a RAM1 address that is already held, the held RAM1 address may be updated (overwritten) to the newly read RAM1 address. If the read RAM1 address is not “branch destination flag (1c) = 1”, the operation (operation in step S105) is not performed.

(6)ステップS106
続いて、このRAM1アドレスが「分岐成立(1a)=1」かつ「分岐未成立(1b)=0」であるかを確認する。
(6) Step S106
Subsequently, it is confirmed whether the RAM1 address is “branch established (1a) = 1” and “branch not established (1b) = 0”.

(7)ステップS107
このRAM1アドレスが「分岐成立(1a)=1」かつ「分岐未成立(1b)=0」であれば、最後に(直近に)実行開始アドレス(又は分岐先アドレス)として保持したRAM1アドレスから、当該読み出したRAM1アドレス(現時点でのRAM1アドレス)までを、プログラムの実行履歴として保持する。このとき、実行開始アドレス(又は分岐先アドレス)として保持したRAM1アドレスと、当該読み出したRAM1アドレスが、同じRAM1アドレスである場合もある。なお、プログラムの実行履歴として保持した後、実行開始アドレス(又は分岐先アドレス)として保持しているRAM1アドレスを削除・開放するようにしても良い。RAM1アドレスが「分岐成立(1a)=1」かつ「分岐未成立(1b)=0」でなければ、当該動作(ステップS107の動作)を行わない。
(7) Step S107
If the RAM1 address is “branch established (1a) = 1” and “branch not established (1b) = 0”, the RAM1 address held as the last execution address (or branch destination address) is Up to the read RAM1 address (current RAM1 address) is held as an execution history of the program. At this time, the RAM 1 address held as the execution start address (or branch destination address) and the read RAM 1 address may be the same RAM 1 address. Note that the RAM 1 address held as the execution start address (or branch destination address) may be deleted / released after being held as the program execution history. If the RAM1 address is not “branch established (1a) = 1” and “branch not established (1b) = 0”, the operation (operation in step S107) is not performed.

(8)ステップS108
このRAM1アドレスがプログラムの配置された領域の終了(最終アドレス)であるか確認する。
(8) Step S108
It is confirmed whether this RAM1 address is the end (final address) of the area where the program is arranged.

(9)ステップS109
プログラムの配置された領域の終了でなければ、更に、RAM1のアドレスをインクリメント(increment)して、RAM1の次の内容を順番に読み出して検索する。インクリメントとは、整数型の変数の値を1増やす処理である。
(9) Step S109
If it is not the end of the area where the program is arranged, the address of the RAM 1 is further incremented, and the next contents of the RAM 1 are sequentially read and searched. Incrementing is a process of incrementing the value of an integer type variable by one.

(10)ステップS110
プログラムの配置された領域の終了であれば、取得したプログラムの実行履歴とプログラム列を比較し、未通過パスを検出する。
(10) Step S110
If it is the end of the area in which the program is arranged, the acquired program execution history is compared with the program sequence, and a non-passing path is detected.

[実施例]
図5に示すRAM1の値を用い、図6に示す本発明による未通過パスの検出処理を行うことで未通過パスを検出する事例について説明する。
[Example]
A case where a non-passing path is detected by performing the non-passing path detection process according to the present invention shown in FIG. 6 using the value of the RAM 1 shown in FIG. 5 will be described.

まず、プログラムリストを静的に解析し、プログラムの配置された領域を保持しておく(ステップS101)。図5では、プログラムは、アドレスAからアドレスFまで存在する。次に、プログラムの存在する領域の先頭にRAM1アドレスをセットする(ステップS102)。その後、RAM1アドレスの値を読み出す(ステップS103)。   First, the program list is statically analyzed, and the area where the program is arranged is held (step S101). In FIG. 5, the program exists from address A to address F. Next, the RAM1 address is set at the head of the area where the program exists (step S102). Thereafter, the value of the RAM1 address is read (step S103).

RAM1アドレスの値について、「分岐先フラグ(1c)=1」の箇所を検索する(ステップS104)。図5では、アドレスAが「分岐先フラグ(1c)=1」となっているため、アドレスAの命令からプログラムを開始したと判断し、このRAM1アドレスを、実行開始アドレス(又は分岐先アドレス)として保持する(ステップS105)。   As for the value of the RAM1 address, a place where “branch destination flag (1c) = 1” is searched (step S104). In FIG. 5, since the address A is “branch destination flag (1c) = 1”, it is determined that the program is started from the instruction at the address A, and this RAM1 address is used as the execution start address (or branch destination address). (Step S105).

続いて、アドレスAが「分岐成立(1a)=1」かつ「分岐未成立(1b)=0」であるかを確認する(ステップS106)。   Subsequently, it is confirmed whether the address A is “branch established (1a) = 1” and “branch not established (1b) = 0” (step S106).

図5では、アドレスAが「分岐成立(1a)=0」かつ「分岐未成立(1b)=0」のため、「分岐成立(1a)=1」かつ「分岐未成立(1b)=0」の箇所が見つかるまでRAM1のアドレスをインクリメントして(ステップS108、ステップS109)、RAM1の次の内容を順番に読み出す(ステップS103)。   In FIG. 5, since the address A is “branch established (1a) = 0” and “branch not established (1b) = 0”, “branch established (1a) = 1” and “branch not established (1b) = 0”. The address of the RAM 1 is incremented until the location is found (step S108, step S109), and the next contents of the RAM 1 are read in order (step S103).

次のRAM1アドレスの値について、「分岐先フラグ(1c)=1」の箇所を検索する(ステップS104)。図5では、アドレスBが「分岐先フラグ(1c)=0」となっているため、アドレスBが「分岐成立(1a)=1」かつ「分岐未成立(1b)=0」であるかを確認する(ステップS106)。   As for the value of the next RAM1 address, the part of “branch destination flag (1c) = 1” is searched (step S104). In FIG. 5, since the address B is “branch destination flag (1c) = 0”, it is determined whether the address B is “branch established (1a) = 1” and “branch not established (1b) = 0”. Confirmation (step S106).

図5では、アドレスBが「分岐成立(1a)=1」かつ「分岐未成立(1b)=0」となっているため、アドレスAからアドレスBまで実行されたことを、プログラムの実行履歴として保持する(ステップS107)。   In FIG. 5, since the address B is “branch established (1a) = 1” and “branch not established (1b) = 0”, the execution from the address A to the address B is indicated as the program execution history. Hold (step S107).

アドレスBは、プログラムの配置された領域の最後ではないため(ステップS108)、RAM1のアドレスをインクリメントして(ステップS109)、RAM1の次の内容を順番に読み出す(ステップS103)。   Since address B is not the end of the area where the program is placed (step S108), the address of RAM1 is incremented (step S109), and the next contents of RAM1 are read in order (step S103).

次のRAM1アドレスの値について、再度「分岐先フラグ(1c)=1」の箇所を検索する(ステップS103)。図5では、アドレスCが「分岐先フラグ(1c)=1」となっているため(ステップS104)、アドレスCの命令からプログラムを開始したと判断し、このRAM1アドレスを、実行開始アドレス(又は分岐先アドレス)として保持する(ステップS105)。   The location of “branch destination flag (1c) = 1” is searched again for the value of the next RAM1 address (step S103). In FIG. 5, since the address C is “branch destination flag (1c) = 1” (step S104), it is determined that the program is started from the instruction at the address C, and this RAM1 address is set as the execution start address (or Branch destination address) (step S105).

続いて、アドレスCが「分岐成立(1a)=1」かつ「分岐未成立(1b)=0」であるかを確認する(ステップS106)。   Subsequently, it is confirmed whether the address C is “branch established (1a) = 1” and “branch not established (1b) = 0” (step S106).

図5では、アドレスCが「分岐成立(1a)=1」かつ「分岐未成立(1b)=0」となっているため、アドレスCが実行されたことを、プログラムの実行履歴として保持する(ステップS107)。   In FIG. 5, since the address C is “branch established (1a) = 1” and “branch not established (1b) = 0”, the fact that the address C has been executed is held as an execution history of the program ( Step S107).

アドレスCは、プログラムの配置された領域の最後ではないため(ステップS108)、RAM1のアドレスをインクリメントして(ステップS109)、RAM1の次の内容を順番に読み出す(ステップS103)。   Since the address C is not the end of the area where the program is arranged (step S108), the address of the RAM 1 is incremented (step S109), and the next contents of the RAM 1 are read in order (step S103).

次のRAM1アドレスの値について、「分岐先フラグ(1c)=1」の箇所を検索する(ステップS104)。図5では、アドレスDが「分岐先フラグ(1c)=0」となっているため、アドレスDが「分岐成立(1a)=1」かつ「分岐未成立(1b)=0」であるかを確認する(ステップS106)。   As for the value of the next RAM1 address, the part of “branch destination flag (1c) = 1” is searched (step S104). In FIG. 5, since the address D is “branch destination flag (1c) = 0”, it is determined whether the address D is “branch established (1a) = 1” and “branch not established (1b) = 0”. Confirmation (step S106).

図5では、アドレスDが「分岐成立(1a)=0」かつ「分岐未成立(1b)=0」のため、「分岐成立(1a)=1」かつ「分岐未成立(1b)=0」の箇所が見つかるまでRAM1のアドレスをインクリメントして(ステップS108、ステップS109)、RAM1の次の内容を順番に読み出す(ステップS103)。   In FIG. 5, since the address D is “branch established (1a) = 0” and “branch not established (1b) = 0”, “branch established (1a) = 1” and “branch not established (1b) = 0”. The address of the RAM 1 is incremented until the location is found (step S108, step S109), and the next contents of the RAM 1 are read in order (step S103).

次のRAM1アドレスの値について、再度「分岐先フラグ(1c)=1」の箇所を検索する(ステップS104)。図5では、アドレスEが「分岐先フラグ(1c)=1」となっているため、アドレスEの命令からプログラムを開始したと判断し、このRAM1アドレスを、実行開始アドレス(又は分岐先アドレス)として保持する(ステップS105)。   With respect to the value of the next RAM1 address, the location of “branch destination flag (1c) = 1” is searched again (step S104). In FIG. 5, since the address E is “branch destination flag (1c) = 1”, it is determined that the program is started from the instruction at the address E, and this RAM1 address is used as the execution start address (or branch destination address). (Step S105).

続いて、アドレスEが「分岐成立(1a)=1」かつ「分岐未成立(1b)=0」であるかを確認する(ステップS106)。図5では、「分岐成立(1a)=0」かつ「分岐未成立(1b)=0」のため、「分岐成立(1a)=1」かつ「分岐未成立(1b)=0」の箇所が見つかるまでRAM1のアドレスをインクリメントして(ステップS108、ステップS109)、RAM1の次の内容を順番に読み出す(ステップS103)。   Subsequently, it is confirmed whether the address E is “branch established (1a) = 1” and “branch not established (1b) = 0” (step S106). In FIG. 5, because “branch established (1a) = 0” and “branch not established (1b) = 0”, the location of “branch established (1a) = 1” and “branch not established (1b) = 0” The address of the RAM 1 is incremented until it is found (steps S108 and S109), and the next contents of the RAM 1 are read in order (step S103).

次のRAM1アドレスの値について、再度「分岐先フラグ(1c)=1」の箇所を検索する(ステップS104)。図5では、アドレスFが「分岐先フラグ(1c)=0」となっているため、アドレスFが「分岐成立(1a)=1」かつ「分岐未成立(1b)=0」であるかを確認する(ステップS106)。   With respect to the value of the next RAM1 address, the location of “branch destination flag (1c) = 1” is searched again (step S104). In FIG. 5, since the address F is “branch destination flag (1c) = 0”, it is determined whether the address F is “branch established (1a) = 1” and “branch not established (1b) = 0”. Confirmation (step S106).

図5では、アドレスFが「分岐成立(1a)=1」かつ「分岐未成立(1b)=0」となっているため、アドレスEからアドレスFまで実行されたことを、プログラムの実行履歴として保持する(ステップS107)。   In FIG. 5, since the address F is “branch established (1a) = 1” and “branch not established (1b) = 0”, execution from the address E to the address F is indicated as an execution history of the program. Hold (step S107).

以降、プログラムが置かれている領域の最後まで確認する(ステップS108)。図5のプログラム例では、プログラムの置かれている領域は、アドレスFまでのため、ここでプログラムは、終了となる。   Thereafter, confirmation is made to the end of the area where the program is placed (step S108). In the example of the program of FIG. 5, the area where the program is placed is up to the address F, so the program ends here.

よって、アドレスA〜B、アドレスC、アドレスE〜Fまでが実際に実行された履歴となる。この実行履歴とプログラム列(実際にプログラムが配置されているアドレスA〜Fまでの領域)を比較することで、未通過パス(今回は、アドレスB〜CとアドレスD〜E)を検出することができる(ステップS110)。   Therefore, addresses A to B, address C, and addresses E to F are actually executed histories. By comparing this execution history with the program sequence (areas from addresses A to F where the program is actually allocated), non-passing paths (in this case, addresses B to C and addresses D to E) are detected. (Step S110).

このことから、従来技術による未通過パスの検出では、アドレスDから実行されたのかアドレスEから実行されたのか判断できなかったが、本発明では、アドレスDが実行されていないことがわかり、アドレスDからアドレスEまでが未通過パスであると検出できる。   From this, in the detection of the non-passing path according to the prior art, it was not possible to determine whether it was executed from the address D or from the address E. However, in the present invention, it can be seen that the address D is not executed. It can be detected that the path from D to address E is a non-passing path.

<まとめ>
以上のように、本発明では、従来技術と同様に、マイコンのプログラム開発において、プログラムのテストを行なった際に、容易に未通過パスに検出を行なえる。
<Summary>
As described above, according to the present invention, similarly to the prior art, when a program test is performed during program development of a microcomputer, it is possible to easily detect a non-passing path.

更に、分岐成立、分岐未成立に加え、分岐先の結果を残しておくことにより、どのようなプログラム列であっても、未通過パスを検出することが可能となり、正確なC0カバレッジを取得できる。   Furthermore, by leaving the branch destination result in addition to branch establishment and branch establishment failure, it is possible to detect a non-passing path in any program sequence, and to obtain accurate C0 coverage. .

以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。   As mentioned above, although embodiment of this invention was explained in full detail, actually, it is not restricted to said embodiment, Even if there is a change of the range which does not deviate from the summary of this invention, it is included in this invention.

1、2… RAM
3… マイクロ命令レジスタ
4… デコーダ
5… ブランチコントロールモジュール
6… マイクロ命令アドレスレジスタ
7… バッファレジスタ
8… ステータスレジスタ
9〜18… 信号線
19… ゲート
20… 信号線
21… 信号線
1, 2 ... RAM
3 ... Micro instruction register 4 ... Decoder 5 ... Branch control module 6 ... Micro instruction address register 7 ... Buffer register 8 ... Status register 9-18 ... Signal line 19 ... Gate 20 ... Signal line 21 ... Signal line

Claims (6)

プログラムのアドレスと同一のアドレス空間を持ち、3ビットの幅を有する第1のRAMと、
前記プログラムを格納しておくための第2のRAMと、
前記プログラムの条件付き分岐命令が実行されたことを検出するための実行検出手段と、
前記分岐命令が分岐したか否かの結果を保持するためのバッファレジスタと、
前記実行検出手段により送出された前記プログラムの分岐命令の実行状況を分析し、前記第1のRAMへ分類して書き込むためのゲートと
を具備し、
前記実行検出手段は、
前記第2のRAMからマイクロ命令レジスタへ読み出されたマイクロ命令をデコードし、分岐命令であるか否かを示す信号及び分岐条件を出力するためのデコーダと、
前記デコーダの出力により得られた分岐条件とステータスレジスタの内容とを比較し、分岐が成立したか否かを判定し、判定結果を前記バッファレジスタ及び前記ゲートに送出するためのブランチコントロールモジュールと
を具備し、
前記ブランチコントロールモジュールは、
分岐が成立して分岐先のアドレスが確定したことを示す信号を、前記バッファレジスタに出力する手段と、
分岐が成立して分岐先のアドレスが確定したことを示す信号を、ライトイネーブル信号として前記第1のRAMに送る手段と、
前記ライトイネーブル信号に応じて、前記第1のRAMのライトイネーブルをオンにして、前記マイクロ命令レジスタにセットされた分岐先アドレスに対応する前記第1のRAMのビット位置に前記バッファレジスタ値を書き込む手段と
を具備する
テスト装置。
A first RAM having the same address space as the address of the program and having a width of 3 bits;
A second RAM for storing the program;
Execution detection means for detecting that a conditional branch instruction of the program is executed;
A buffer register for holding a result of whether or not the branch instruction is branched;
Analyzing the execution status of the branch instruction of the program sent by the execution detection means, and having a gate for classifying and writing to the first RAM,
The execution detection means includes
A decoder for decoding a microinstruction read from the second RAM to the microinstruction register and outputting a signal indicating whether the instruction is a branch instruction and a branch condition;
A branch control module for comparing the branch condition obtained by the output of the decoder with the contents of the status register, determining whether or not a branch is established, and sending a determination result to the buffer register and the gate; Equipped,
The branch control module
Means for outputting to the buffer register a signal indicating that the branch has been established and the branch destination address has been determined;
Means for sending a signal indicating that the branch is established and the branch destination address is fixed to the first RAM as a write enable signal;
In response to the write enable signal, the write enable of the first RAM is turned on, and the buffer register value is written to the bit position of the first RAM corresponding to the branch destination address set in the microinstruction register. And a test apparatus.
請求項1に記載のテスト装置であって、
前記第1のRAMは、
前記3ビットのうち、分岐成立をトレースする第1の1ビットと、
前記3ビットのうち、分岐不成立をトレースする第2の1ビットと、
前記3ビットのうち、分岐先を示す第3の1ビットと
を含み、
前記ゲートは、
前記第1のビットをイネーブルする信号を出力する手段と、
前記第2のビットをイネーブルする信号を出力する手段と
を具備し、
前記ブランチコントロールモジュールは、
前記ライトイネーブル信号を前記第1のRAMに送る際に、前記第3のビットをイネーブルする信号を出力する手段と、
前記第1のRAMのビット位置に前記バッファレジスタ値を書き込む際に、前記第3のビットに前記バッファレジスタ値を書き込む手段と
を更に具備する
テスト装置。
The test apparatus according to claim 1,
The first RAM is
Of the 3 bits, a first 1 bit that traces branch establishment;
Of the 3 bits, a second 1 bit that traces branch failure,
Among the 3 bits, a third 1 bit indicating a branch destination,
The gate is
Means for outputting a signal for enabling the first bit;
Means for outputting a signal for enabling the second bit,
The branch control module
Means for outputting a signal for enabling the third bit when the write enable signal is sent to the first RAM;
A test apparatus further comprising means for writing the buffer register value to the third bit when the buffer register value is written to the bit position of the first RAM.
請求項2に記載のテスト装置であって、
前記プログラムのテストを実行するテスト実行手段
を更に具備し、
前記テスト実行手段は、
前記プログラムのプログラムリストを静的に解析し、前記プログラムの配置された領域を保持する手段と、
前記プログラムの存在する領域の先頭に前記第1のRAMのアドレスをセットする手段と、
前記第1のRAMのアドレスの値を読み出す手段と、
前記読み出したアドレスの値について、前記第3の1ビットのイネーブルがオンであるか確認する手段と、
前記第3の1ビットのイネーブルがオンである場合、前記読み出したアドレスの命令から前記プログラムを開始したと判断し、前記読み出したアドレスを、実行開始アドレス及び分岐先アドレスのいずれかとして保持する手段と、
前記読み出したアドレスにおいて、前記第1の1ビットのイネーブルがオンで、前記第2の1ビットのイネーブルがオフであるかを確認する手段と、
前記読み出したアドレスにおいて、前記第1の1ビットのイネーブルがオンで、前記第2の1ビットのイネーブルがオフである場合、前記実行開始アドレス及び分岐先アドレスのいずれかとして保持したアドレスから前記読み出したアドレスまでを前記プログラムの実行履歴として保持する手段と、
前記読み出したアドレスが前記プログラムの配置された領域の終了であるか確認する手段と、
前記プログラムの配置された領域の終了でない場合、前記第1のRAMの次のアドレスの値を読み出す手段と、
前記プログラムの配置された領域の終了である場合、前記プログラムの実行履歴とプログラム列を比較し、未通過パスを検出する手段と
を具備する
テスト装置。
The test apparatus according to claim 2,
A test execution means for executing a test of the program;
The test execution means includes
Means for statically analyzing a program list of the program and holding an area where the program is arranged;
Means for setting an address of the first RAM at the head of an area where the program exists;
Means for reading an address value of the first RAM;
Means for checking whether the enable of the third one bit is on for the value of the read address;
When the third 1-bit enable is on, it is determined that the program is started from the instruction at the read address, and the read address is held as either the execution start address or the branch destination address When,
Means for checking whether the first one bit enable is on and the second one bit enable is off at the read address;
In the read address, when the enable of the first 1 bit is on and the enable of the second 1 bit is off, the read is performed from the address held as either the execution start address or the branch destination address. Means for holding up to a predetermined address as an execution history of the program;
Means for confirming whether the read address is the end of the area where the program is located;
Means for reading the value of the next address of the first RAM, if not the end of the area where the program is located;
A test apparatus comprising: means for comparing an execution history of the program with a program sequence and detecting a non-passing path when the program is located in an end area.
プログラムのアドレスと同一のアドレス空間を持ち、3ビットの幅を有する第1のRAMを使用することと、
前記プログラムを格納しておくための第2のRAMを使用することと、
前記プログラムの条件付き分岐命令が実行されたことを検出することと、
前記分岐命令が分岐したか否かの結果を保持するためのバッファレジスタを使用することと、
前記プログラムの分岐命令の実行状況を分析し、前記第1のRAMへ分類して書き込むためのゲートを使用することと、
前記第2のRAMからマイクロ命令レジスタへ読み出されたマイクロ命令をデコードし、分岐命令であるか否かを示す信号及び分岐条件を出力することと、
前記分岐条件とステータスレジスタの内容とを比較し、分岐が成立したか否かを判定することと、
分岐が成立した場合、分岐が成立して分岐先のアドレスが確定したことを示す信号を、前記バッファレジスタに出力し、ライトイネーブル信号として前記第1のRAMに送ることと、
前記ライトイネーブル信号に応じて、前記第1のRAMのライトイネーブルをオンにして、前記マイクロ命令レジスタにセットされた分岐先アドレスに対応する前記第1のRAMのビット位置に前記バッファレジスタ値を書き込むことと
を含む
テスト方法。
Using a first RAM having the same address space as the address of the program and having a width of 3 bits;
Using a second RAM for storing the program;
Detecting that a conditional branch instruction of the program has been executed;
Using a buffer register to hold the result of whether the branch instruction has branched;
Analyzing the execution status of the branch instruction of the program and using a gate for classifying and writing to the first RAM;
Decoding a microinstruction read from the second RAM to a microinstruction register and outputting a signal indicating whether the instruction is a branch instruction and a branch condition;
Comparing the branch condition with the contents of the status register to determine whether or not a branch has been established;
If a branch is taken, a signal indicating that the branch is taken and the branch destination address is fixed is output to the buffer register and sent as a write enable signal to the first RAM;
In response to the write enable signal, the write enable of the first RAM is turned on, and the buffer register value is written to the bit position of the first RAM corresponding to the branch destination address set in the microinstruction register. And testing methods.
請求項4に記載のテスト方法であって、
前記第1のRAMにおいて、前記3ビットのうち、第1の1ビットを、分岐成立をトレースする値とすることと、
前記第1のRAMにおいて、前記3ビットのうち、第2の1ビットを、分岐不成立をトレースする値とすることと、
前記第1のRAMにおいて、前記3ビットのうち、第3の1ビットを、分岐先を示す値とすることと、
前記ゲートから前記第1のビットをイネーブルする信号を出力することと、
前記ゲートから前記第2のビットをイネーブルする信号を出力することと、
前記ライトイネーブル信号を前記第1のRAMに送る際に、前記第3のビットをイネーブルする信号を出力することと、
前記第1のRAMのビット位置に前記バッファレジスタ値を書き込む際に、前記第3のビットに前記バッファレジスタ値を書き込むことと
を更に含む
テスト方法。
The test method according to claim 4, comprising:
In the first RAM, among the 3 bits, the first 1 bit is a value that traces the establishment of a branch;
In the first RAM, out of the 3 bits, the second 1 bit is set to a value that traces branch failure;
In the first RAM, among the 3 bits, a third 1 bit is set as a value indicating a branch destination;
Outputting a signal enabling the first bit from the gate;
Outputting a signal enabling the second bit from the gate;
Outputting a signal for enabling the third bit when the write enable signal is sent to the first RAM;
A test method further comprising: writing the buffer register value to the third bit when writing the buffer register value to the bit position of the first RAM.
請求項5に記載のテスト方法であって、
前記プログラムのプログラムリストを静的に解析し、前記プログラムの配置された領域を保持することと、
前記プログラムの存在する領域の先頭に前記第1のRAMのアドレスをセットすることと、
前記第1のRAMのアドレスの値を読み出すことと、
前記読み出したアドレスの値について、前記第3の1ビットのイネーブルがオンであるか確認することと、
前記第3の1ビットのイネーブルがオンである場合、前記読み出したアドレスの命令から前記プログラムを開始したと判断し、前記読み出したアドレスを、実行開始アドレス及び分岐先アドレスのいずれかとして保持することと、
前記読み出したアドレスにおいて、前記第1の1ビットのイネーブルがオンで、前記第2の1ビットのイネーブルがオフであるかを確認することと、
前記読み出したアドレスにおいて、前記第1の1ビットのイネーブルがオンで、前記第2の1ビットのイネーブルがオフである場合、前記実行開始アドレス及び分岐先アドレスのいずれかとして保持したアドレスから前記読み出したアドレスまでを前記プログラムの実行履歴として保持することと、
前記読み出したアドレスが前記プログラムの配置された領域の終了であるか確認することと、
前記プログラムの配置された領域の終了でない場合、前記第1のRAMの次のアドレスの値を読み出すことと、
前記プログラムの配置された領域の終了である場合、前記プログラムの実行履歴とプログラム列を比較し、未通過パスを検出することと
を更に含む
テスト方法。
The test method according to claim 5, comprising:
Statically analyzing a program list of the program and holding an area where the program is located;
Setting the address of the first RAM at the head of the area where the program exists;
Reading the value of the address of the first RAM;
Confirming whether the third 1-bit enable is on for the value of the read address;
When the third 1-bit enable is on, it is determined that the program is started from the instruction at the read address, and the read address is held as either the execution start address or the branch destination address. When,
Checking whether the first 1-bit enable is on and the second 1-bit enable is off at the read address;
In the read address, when the enable of the first 1 bit is on and the enable of the second 1 bit is off, the read is performed from the address held as either the execution start address or the branch destination address. Holding up to the specified address as the execution history of the program,
Checking whether the read address is the end of the area where the program is located;
If it is not the end of the area where the program is located, reading the value of the next address in the first RAM;
A test method further comprising: comparing an execution history of the program with a program string and detecting a non-passing path when the program is located at an end of the area where the program is arranged.
JP2010131110A 2010-06-08 2010-06-08 Testing device and test method Withdrawn JP2011257924A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010131110A JP2011257924A (en) 2010-06-08 2010-06-08 Testing device and test method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010131110A JP2011257924A (en) 2010-06-08 2010-06-08 Testing device and test method

Publications (1)

Publication Number Publication Date
JP2011257924A true JP2011257924A (en) 2011-12-22

Family

ID=45474053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010131110A Withdrawn JP2011257924A (en) 2010-06-08 2010-06-08 Testing device and test method

Country Status (1)

Country Link
JP (1) JP2011257924A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110347555A (en) * 2019-07-09 2019-10-18 英业达科技有限公司 Hard disk operating state determination method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110347555A (en) * 2019-07-09 2019-10-18 英业达科技有限公司 Hard disk operating state determination method
CN110347555B (en) * 2019-07-09 2021-10-01 英业达科技有限公司 Hard disk operation state determination method

Similar Documents

Publication Publication Date Title
JP5523872B2 (en) Program dynamic analysis method and apparatus
JP4533682B2 (en) Trace analysis apparatus and trace analysis method
US8612944B2 (en) Code evaluation for in-order processing
EP0199009A2 (en) Path coverage measuring system in a programme
JP2008065441A (en) Debug system and debug circuit
JP2007199845A (en) Method and device for detecting memory c0rruption
JPWO2019077738A1 (en) Data verification device, data verification method, and data verification program
CN103365772B (en) Software test automatic evaluation device and method
KR101847889B1 (en) Using the least significant bits of a called function&#39;s address to switch processor modes
EP2972880B1 (en) Kernel functionality checker
Van Sprundel Fuzzing: Breaking software in an automated fashion
JP2011257924A (en) Testing device and test method
US20110218794A1 (en) Concretization of abstracted traces
CN114237705A (en) Verification method, verification device, electronic equipment and computer-readable storage medium
US8589735B2 (en) Creating randomly ordered fields while maintaining the temporal ordering based on the value of the fields
US9600284B2 (en) Computer program instruction analysis
JP5850732B2 (en) Semiconductor device and control method thereof
JP5365846B2 (en) Program verification apparatus, program verification method, and verification function execution program
JP3068578B2 (en) In-circuit emulator and saturation calculation processing method
JPS6011943A (en) Inspection system for test program
KR20210117408A (en) Electronic apparatus and method for controlling thereof
JPH05224990A (en) Microprogram tracer
JP5421735B2 (en) Core file acquisition apparatus, core file acquisition method, and core file acquisition program
JP2013061893A (en) Information processor, information processing method, and program
JP2003308226A (en) Test coverage system

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130903