JP3100458B2 - カバレージ・テスタ - Google Patents
カバレージ・テスタInfo
- Publication number
- JP3100458B2 JP3100458B2 JP04111564A JP11156492A JP3100458B2 JP 3100458 B2 JP3100458 B2 JP 3100458B2 JP 04111564 A JP04111564 A JP 04111564A JP 11156492 A JP11156492 A JP 11156492A JP 3100458 B2 JP3100458 B2 JP 3100458B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- program
- read
- coverage
- microprocessor
- 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
Landscapes
- Debugging And Monitoring (AREA)
Description
済みの箇所と未テストの箇所に分離表示し、ソフトウェ
アの検証の程度を数量化するカバレージ・テスタに関す
るものである。
ェアによる方法と、ハードウェアによるリアルタイムに
測定可能な方法が知られている。
となるプログラムを予め解析し、このプログラムの中に
カバレージ測定のためのチェックポイントを埋め込み、
カバレージ測定可能な新しいプログラムを作成する。こ
のカバレージ測定可能なプログラムを検証し、チェック
ポイントの通過/未通過を判別する。次に、チェックポ
イントの通過/未通過情報を基に、CO(命令コードの
実行/未実行)およびC1(条件分岐方向の通過/未通
過)カバレージ・テストを行う。
テスタがマイクロプロセッサのピンを監視し、マイクロ
プロセッサが命令コードを読み込んだ時のアドレス信号
を基に、実行された命令コードのアドレスをマークし、
COカバレージを測定する。
測定可能なプログラムが、ロジック上は同一の働きをす
るにしても、元のプログラムと一部異なったものであ
り、プログラム実行に関わる時間条件は同一ではない。
特に、制御系のソフトウェアの場合、ハードウェアの仕
様によりソフトウェアに時間条件が付加されるため、カ
バレージ測定のために加工されたプログラムと元のプロ
グラムとでは、ハードとソフトの結合動作が異なる場合
がある。
カバレージ以上に有効な情報であるC1カバレージが測
定できない制約がある。さらに、多くのマイクロプロセ
ッサでは、プリフェッチ機能を有しており、プリフェッ
チ処理により命令コードを読み込んだ場合でもこの命令
コードの前の命令コードが分岐命令だった場合、プリフ
ェッチされた命令コードは実行されない。
置ではこのプリフェッチされたコマンドが実行されたと
みなすので、正確にCOカバレージを測定できない問題
点がある。加えて、ノイズ、ソフトウェアバグ等のた
め、マイクロプロセッサが暴走状態に陥った場合の無意
味な命令実行をカバレージ測定から排除する必要があ
る。
て、ハードウェアによってカバレージ・テストを実行す
る際に、マイクロプロセッサのプリフェッチ処理により
読出された命令コード(コマンド)を正確にカバレージ
(測定)することの可能なカバレージ・テスタを提供す
ることにある。
るために、請求項1の発明は、アドレスに基づいてプロ
グラムメモリから読み出したプログラム命令の実行中に
後続アドレスのプログラム命令を内部キューに読み込む
プリフェッチ機能を有するマイクロプロセッサで実行さ
れる対象プログラムをテストするためのカバレージ・レ
ジスタであって、前記マイクロプロセッサがプログラム
命令を読み込むために指示した読み込みアドレスをバス
から取り込んで記憶するための読み込みアドレス記憶手
段と、前記内部キューにおける前記プログラム命令の読
み込み、読み出しおよび消去に応じて、前記読み込みア
ドレス記憶手段に対してアドレスの取り込み、読み出し
および消去を行う制御手段と、前記読み込みアドレス記
憶手段から新たに読み出されたアドレスが直前に読み出
されたアドレスと連続であるか否かを判定する連続性判
定手段と、前記読み込みアドレスが前記プログラムメモ
リにおける前記対象プログラムの格納アドレス範囲内に
あるか否かを判定する範囲判定手段と、該範囲判定手段
及び前記連続性判定手段の判定結果に基づいて、前記格
納アドレス範囲内にあって連続であるアドレスと、前記
格納アドレス範囲内にあって不連続のアドレスとをそれ
ぞれ区別して、前記対象プログラムのカバレージ測定デ
ータとして記憶する測定データ記憶手段とを具えたこと
を特徴とする。
て、前記マイクロプロセッサの暴走を検知する検知手段
と、該検知手段により暴走を検知すると前記測定データ
記憶手段への書き込みを中断する中断手段とをさらに具
えたことを特徴とする。
て、前記検知手段が、前記読み込みアドレス記憶手段か
ら読み出されたアドレスが前記マイクロプロセッサのプ
ログラム領域内であるか否かを判定し、当該プログラム
領域外であると判定された場合に、前記マイクロプロセ
ッサの暴走を検知することを特徴とする。請求項4の発
明は、請求項2の発明に加えて、前記検知手段が、実行
中のプログラム命令における第1オペコードのアドレス
が第1オペコードとして予め設定されたアドレスと一致
するかを判定し、一致しない場合に、前記マイクロプロ
セッサの暴走を検知することを特徴とする。
フェッチキューの記憶内容と対応のアドレス信号を、シ
フトレジスタやFIFOのメモリ等の記憶手段に記憶
し、プリフェッチキューのアクセス処理、すなわち、書
き込み、消去、読出し等に関連させてアクセスする。こ
のため、プログラムメモリから読出されても、マイクロ
プロセッサにおいて非実行(プリフェッチキューにおい
て消去された)のプログラム命令が、カバレージ・テス
タにおいて実行と登録されることはない。
細に説明する。
となるプログラムを実行するマイクロプロセッサ(不図
示)と周辺機器を接続する共通バスに対して、カバレー
ジ・テスタ100が接続されている。
の回路構成を説明する。
FO)メモリ(第1の発明の読み込みアドレス記憶手
段)1は上記共通バスの中のアドレスバスと接続し、バ
ス解析回路3の発生するシフトアウトコマンドに応じ
て、現在記憶している情報を命令実行アドレス(後述)
としてフリップフロップを介して連続判定回路4に送出
すると共にバス解析回路(第1の発明の制御手段)3の
シフトインコマンドに応じて上記共通バス上のアドレス
信号(命令読出しアドレス)を順次に記憶する。また、
FIFOメモリ1はバス解析回路3のリセット信号に応
じて、記憶内容を消去する。
グラムメモリに対してアドレス指示を行って実行対象の
プログラム命令を読出す。その際、プリフェッチ、すな
わち、マイクロプロセッサがプログラム命令を演算実行
中に、次のステップのプログラム命令を読出し、プリフ
ェッチキューに書き込むことをマイクロプロセッサの制
御信号によりバス解析回路3が検出すると、バス解析回
路3はシフトインコマンドによりこのときのアドレスバ
ス上の命令読込みアドレスをFIFOメモリ1に取込
む。
生するステータス情報,上記共通バス中の制御バスとの
制御信号,クロック信号を入力し、信号解読によりマイ
クロプロセッサがプリフェッチキューへの書き込み、消
去、読出しする処理内容およびそのタイミングを検出す
る。
サのステータス信号を信号識別し、マイクロプロセッサ
がプリフェッチキューから読出そうとしているコマンド
が先頭バイトか、2バイト目以降であるかを示す情報
(第1オペコード状態情報)をコントロール回路5に出
力する。バス解析回路3にはデコーダ(信号識別回路)
を用いる。
定手段)は、マイクロプロセッサが例外処理を実行して
いるか否かを判定する回路である。ここで、例外処理と
は、カバレージ処理の対象とはならないプログラムを割
込信号等によりマイクロプロセッサが実行する演算処理
を意味する。
フェッチ処理によりアドレスバス上に発生したアドレス
信号が、プログラムメモリにおける、カバレージ・テス
ト対象プログラムの格納アドレス範囲に有ることを示し
ているときには例外処理無しと判定し、アドレスバス上
のアドレス情報が上記アドレス範囲にないことを示して
いるときに例外処理と判定する。
タや比較回路で構成されている。
段)4はFIFOメモリ1から順次に出力される命令実
行アドレスが連続しているか否かを判定し、その判定結
果をコントロール回路5に報らせる。連続判定回路4は
レジスタ,加算器,比較器で構成され、前回、出力され
た命令実行アドレスに“1”を加えた値をレジスタに記
憶しておく。次に、今回、出力された命令実行アドレス
とレジスタのアドレスとを比較器により比較し、一致判
定が得られた場合、今回出力された命令実行アドレスは
連続と判定する。今回、出力された命令実行アドレスは
次回のアドレス比較のために上記レジスタに一時格納さ
れる。
例外処理判定回路2の判定結果を入力し、マイクロプロ
セッサがプリフェッチキューから命令コードを読み出す
毎に順次に上記判定結果をそれぞれメモリ8,メモリ9
に書き込む。
(リードオンリメモリ)6に記載されたカバレージ・テ
スト用のプログラムによりプリフェッチされたプログラ
ム命令についてのカバレージ・テストを行う。メモリ7
〜11はマイクロコンピュータ用のプログラムメモリと
共通なアドレス構成を採っており、メモリ7,8,9の
データピンはハイレベル保持され、ライトイネーブルの
レベルは書き込み情報の内容によりコントロール回路5
により判定される。このために、メモリ7,8,9の各
アドレスには“0”または“1”のビット情報が格納さ
れる。メモリ7には、プリフェッチされたコマンドにつ
いての(コマンド)実行アドレスが連続していることを
示す“1”のビット情報を、プログラムメモリのアドレ
スと対応させて格納する。メモリ8には、プリフェッチ
されたコマンドについての実行アドレスに不連続部が生
じたことを示す“1”のビット情報を、プログラムメモ
リのアドレスと対応させて格納する。
る。
定メモリ(第1の発明の測定データ記憶手段)7,8,9
に対する制御信号が以下のように作られる。
否かを示す制御信号であり、ファームウェア6のコマン
ドによりセット、リセットされる。
うな意味がある。
度が高いとする。また、*が付加された信号は負論理
(アクティブロー)の信号であることを示す。
り、カバレージ測定中(RUN=1)、メモリはターゲ
ットプロセッサのカバレージ測定のために独占的に使用
され、カバレージ停止中(RUN=0)は、ファームウ
ェア6の制御下にある。
ージメモリに対してライト動作を行う時にアサートされ
るライトイネーブル信号であり、ファームウェア6中の
マイクロプロセッサのライトストローブを元に作られ
る。信号WE*は、ターゲットのマイクロプロセッサが
プログラムコードを実行した時にアサートされる信号で
あり、バス解析回路3の出力結果から、コントロール回
路5の中で作られる。
Nが1の時(カバレージ測定中)、CWE*,NCWE
*,EWE*は排他的にアサートされ、ターゲットのマ
イクロプロセッサが、図2に示すように連続的にプログ
ラムを実行したことや不連続的にプログラムを実行した
ことや、例外処理による制御フローの乱れがあったこと
を上記各信号がそれぞれ示している(図2参照)。
I,EDI)はカバレージ測定中(RUN=1)、1と
なるため、ライトイネーブル信号(CWE*,NCWE
*,EWE*)がアサートされたメモリに対して、アド
レスRA(=EA)によって指し示されるメモリセルに
1が書かれる。つまり、カバレージ測定データが上記メ
モリに蓄積される。
ンドが発行された後(RUN=0となる)、カバレージ
メモリは、ターゲットプロセッサのカバレージ測定のた
めの信号から切り放され、ファームウェア6に接続され
るため、ファームウェア6を経由して、メモリ上のカバ
レージ測定データを外部に(例えば、ハードディスク等
の周辺装置)に格納することができる。
信号は、コントロール回路5の中で、以下の論理式に従
って作られる。
リ10,11に対してライト動作を行わず(ライトイネ
ーブルはハイレベルを保持する)、ファームウェア6か
ら予めセットされた、プログラムマップ情報と、第1オ
ペコード状態パターンが、ターゲットプロセッサの暴走
の検出のために参照されるのみである。
情報は以下の意味である。
マイクロプロセッサのプログラム領域外である 1: 対応するアドレスは、ターゲットのマイクロプロ
セッサのプログラム領域内である また、メモリ11に格納された第1オペコード状態すな
わち、アドレスフォーマットは以下の意味がある。
ドは、命令コードの第1バイト目ではない 1: 対応するアドレスのプログラムコードは、命令コ
ードの第1バイト目である ただし、メモリ10の0が格納されているアドレス(つ
まり、ターゲットのプログラム領域外)に対しては、メ
モリ11のデータは無意味である。
に基づく暴走検出ロジック(第2、第3の発明の検知手
段)は、カバレージ測定中(RUN=1)に、プログラ
ム領域外のアドレスに対して、命令実行が行われた場合
にエラー信号がアサートされ、そしてその状態が保持さ
れるというものである。暴走検出ロジックは図3のよう
な回路で実現可能である。
ロール回路内の暴走検出ロジック(第2、第4の発明の
検知手段)は、カバレージ測定中(RUN=1)に、プ
ログラム領域内のアドレスに対して、ターゲットプロセ
ッサの第1オペコード状態(M1STS)と第1オペコ
ード状態メモリ11の間で不一致が検出された場合にエ
ラー信号がアサートされ、そしてその状態が保持される
というものである。このための回路を図4に示す。
ーが発生した場合、コントロール回路(第2の発明の中
断手段)5は直ちにカバレージ測定を中断し(RUNを
リセット)、ファームウェア6にその旨を伝える。マイ
クロプロセッサが暴走したときのカバレージ測定データ
は、不正なものとして破棄すべきである。
ら順次に読出されるアドレス信号はマイクロプロセッサ
がプリフェッチキューから演算実行のために読出すプロ
グラム命令と対応する。また、分岐命令等により非実行
となったプリフェッチキュー内のプログラム命令は消去
されるので、この消去に伴って、FIFOメモリ1内の
対応のアドレス信号もリセット信号により消去されるの
で、FIFOメモリ1からは出力されず、メモリに誤っ
てカバレージされることもない。
ニタするだけで、カバレージ測定を行うことができ、実
時間性等の実環境性に影響しない。
なかったプリフェッチデータについてのC1(条件分岐
方向の通過/未通過)カバレージ測定が可能。
アドレスを検出しているので、正確なカバレージ測定が
可能となっている。
イクロプロセッサの暴走状態を速やかに検出できるの
で、カバレージデータ中に異常データが混入することが
ない。(5)割り込みなどにより対象プログラム以外のプログ
ラムが実行されても、その実行アドレスは対象プログラ
ムの格納アドレス範囲内にないので、対象プログラムの
カバレージ測定データから除外されるため、正確なカバ
レージ測定が可能なる。
る。
グを示すタイミングチャートである。
クの部分回路を示す回路図である。
クの部分回路を示す回路図である。
Claims (4)
- 【請求項1】 アドレスに基づいてプログラムメモリか
ら読み出したプログラム命令の実行中に後続アドレスの
プログラム命令を内部キューに読み込むプリフェッチ機
能を有するマイクロプロセッサで実行される対象プログ
ラムをテストするためのカバレージ・レジスタであっ
て、 前記マイクロプロセッサがプログラム命令を読み込むた
めに指示した読み込みアドレスをバスから取り込んで記
憶するための読み込みアドレス記憶手段と、 前記内部キューにおける前記プログラム命令の読み込
み、読み出しおよび消去に応じて、前記読み込みアドレ
ス記憶手段に対してアドレスの取り込み、読み出しおよ
び消去を行う制御手段と、 前記読み込みアドレス記憶手段から新たに読み出された
アドレスが直前に読み出されたアドレスと連続であるか
否かを判定する連続性判定手段と、 前記読み込みアドレスが前記プログラムメモリにおける
前記対象プログラムの格納アドレス範囲内にあるか否か
を判定する範囲判定手段と、 該範囲判定手段及び前記連続性判定手段の判定結果に基
づいて、前記格納アドレス範囲内にあって連続であるア
ドレスと、前記格納アドレス範囲内にあって不連続のア
ドレスとをそれぞれ区別して、前記対象プログラムのカ
バレージ測定データとして記憶する測定データ記憶手段
とを具えたことを特徴とするカバレージ・テスタ。 - 【請求項2】 前記マイクロプロセッサの暴走を検知す
る検知手段と、該検知手段により暴走を検知すると前記
測定データ記憶手段への書き込みを中断する中断手段と
をさらに具えたことを特徴とする請求項1に記載のカバ
レージ・テスタ。 - 【請求項3】 前記検知手段が、前記読み込みアドレス
記憶手段から読み出されたアドレスが前記マイクロプロ
セッサのプログラム領域内であるか否かを判定し、当該
プログラム領域外であると判定された場合に、前記マイ
クロプロセッサの暴走を検知することを特徴とする請求
項2に記載のカバレージ・テスタ。 - 【請求項4】 前記検知手段が、実行中のプログラム命
令における第1オペコードのアドレスが第1オペコード
として予め設定されたアドレスと一致するか を判定し、
一致しない場合に、前記マイクロプロセッサの暴走を検
知することを特徴とする請求項2に記載のカバレージ・
テスタ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04111564A JP3100458B2 (ja) | 1992-04-30 | 1992-04-30 | カバレージ・テスタ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04111564A JP3100458B2 (ja) | 1992-04-30 | 1992-04-30 | カバレージ・テスタ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05307495A JPH05307495A (ja) | 1993-11-19 |
JP3100458B2 true JP3100458B2 (ja) | 2000-10-16 |
Family
ID=14564583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP04111564A Expired - Fee Related JP3100458B2 (ja) | 1992-04-30 | 1992-04-30 | カバレージ・テスタ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3100458B2 (ja) |
-
1992
- 1992-04-30 JP JP04111564A patent/JP3100458B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH05307495A (ja) | 1993-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6925584B2 (en) | Systems and methods for testing processors | |
US5301312A (en) | Method and system for utilizing benign fault occurrence to measure interrupt-blocking times | |
CN106909501B (zh) | 比较处理器指令集操作模式的调试电路 | |
KR101019209B1 (ko) | 임베디드 소프트웨어의 인터페이스 자동 추출 장치 및 그방법 | |
US20080244536A1 (en) | Evaluating static analysis results using code instrumentation | |
US20050273666A1 (en) | Information processing apparatus and test method for programs | |
US20060150021A1 (en) | Device and method for analyzing embedded systems | |
JPS59114649A (ja) | 処理装置の検査方法 | |
EP0530816A2 (en) | Microprocessor with cache memory and trace analyzer therefor | |
KR20200088760A (ko) | 체크섬 생성 | |
US8010774B2 (en) | Breakpointing on register access events or I/O port access events | |
KR940001146B1 (ko) | 정보 처리 장치의 비교 체크 기능 검사를 위한 시스템 | |
US20070226471A1 (en) | Data processing apparatus | |
US6643769B1 (en) | System and method for enabling selective execution of computer code | |
JP3100458B2 (ja) | カバレージ・テスタ | |
US10872030B2 (en) | Control system and method of to perform an operation | |
JPH06202907A (ja) | デバッグ支援装置 | |
JP3590289B2 (ja) | イベント検出回路 | |
JPH05224989A (ja) | キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ | |
JPH11102306A (ja) | エミュレータ | |
CN117290211A (zh) | 计算机的系统内存探测方法、装置、操作系统及存储介质 | |
JPS61123942A (ja) | マイクロプロセツサ用デバツク装置 | |
JPH03204044A (ja) | カバレージ測定方法及びマイクロコンピュータ | |
JPH04242455A (ja) | プロセッサ間通信トレース回路 | |
JPH04241638A (ja) | プログラム網羅率測定方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070818 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080818 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080818 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090818 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090818 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100818 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110818 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |