Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP2915944B2 - カバレージ測定方法及びマイクロコンピュータ - Google Patents
[go: Go Back, main page]

JP2915944B2 - カバレージ測定方法及びマイクロコンピュータ - Google Patents

カバレージ測定方法及びマイクロコンピュータ

Info

Publication number
JP2915944B2
JP2915944B2 JP1342966A JP34296689A JP2915944B2 JP 2915944 B2 JP2915944 B2 JP 2915944B2 JP 1342966 A JP1342966 A JP 1342966A JP 34296689 A JP34296689 A JP 34296689A JP 2915944 B2 JP2915944 B2 JP 2915944B2
Authority
JP
Japan
Prior art keywords
instruction
branch
coverage
information area
microcomputer
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
Application number
JP1342966A
Other languages
English (en)
Other versions
JPH03204044A (ja
Inventor
満幸 河内
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP1342966A priority Critical patent/JP2915944B2/ja
Publication of JPH03204044A publication Critical patent/JPH03204044A/ja
Application granted granted Critical
Publication of JP2915944B2 publication Critical patent/JP2915944B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマイクロコンピュータ応用システムのソフト
ウェアデバッグ技術、さらにはマイクロコンピュータに
よって実行される命令のカバレージ測定を可能とする方
法、及び当該方法の実施に用いられるマイクロコンピュ
ータに関する。
〔従来の技術〕
マイクロコンピュータ応用機器の開発において、その
応用システムのデバッグやそのシステムの詳細な評価を
行うため、インサーキットエミュレータが使用されてい
る。斯るインサーキットエミュレータは、ソフトウェア
開発用の親計算機(ホストコンピュータ)などのシステ
ム開発装置と、開発中の応用機器との間に接続され、そ
の応用機器に含まれるマイクロプロセッサ(ターゲット
マイクロプロセッサ)の機能を代行する一方でデバッガ
としての機能を持ち、詳細なシステムデバッグを支援す
る。
尚、インサーキットエミュレータについて記載された
文献の例としては、昭和63年10月1日に日立マイクロコ
ンピュータエンジニアリング株式会社より発行された
「日立マイコ技報(第2巻、第2号)」がある。
ところで、このようなインサーキットエミュレータに
おいては、応用機器側のプログラム(ターゲットプログ
ラム)の評価を可能とする手段としてリアルタイムトレ
ース機能の他にカバレージトレース機能を備えたものが
ある。このカバーレージトレース機能によれば、ターゲ
ットマイクロプロセッサによって実行されるプログラム
の通過アドレスに応じてフラグなどの所定の情報が単一
のカバレジトレースメモリに順次蓄えられる。この情報
によって、ターゲットプログラムの中の命令語の何パー
セントをテストできたかを測定することができる。
〔発明が解決しようとする課題〕
しかしながら、上記従来技術によれば次のような問題
点のあることが本発明者によって見い出された。
従来技術において命令分岐命令の実行状況例えば当該
分岐命令によって分岐されたか否かを検出するには、マ
イクロコンピュータの外部に配置されたハードウェアに
よってトレースしなければならない。しかしながら、命
令キャッシュやメモリマネージメントユニットなどの周
辺回路を内蔵してシステムオンチップ化することにより
高機能化されたマイクロコンピュータでは、分岐命令の
実行状況を検出するに十分な信号をマイクロコンピュー
タの外部に出力することができなくなっているため、マ
イクロコンピュータの外部に配置されたハードウェアで
は分岐命令の実行状況をトレースするのが困難になる。
また仮にそのような信号をマイクロコンピュータの外部
に出力することが可能であっても内部処理が高速で行わ
れるため、外付けハードウェアで分岐命令の実行状況を
検出するのが困難になる。更に、仮想メモリシステムな
どのように単一のメモリが複数のプログラムによって時
分割で使用される場合には、プログラムの種類だけカバ
レージトレースメモリを用意し、現在実行されるプログ
ラムに対応するように当該メモリの切換え制御を行わな
ければならず、外付けハードウェアにおいてこのような
メモリ切換え制御を行うのは非常に困難となる。
本発明の目的は、外部とやりとりされる信号に内部動
作状態が反映さえない若しくは反映されても内部処理が
高速に行われることから分岐命令の実行状態を検知する
ことができないような高機能化されたマイクロプロセッ
サであるにもかかわらず、プログラムのカバレージ測定
を適確に行い得る技術を提供することにある。
本願の前記ならびにそのほかの目的と新規な特徴は、
本明細書の記述及び添付図面から明らかになるであろ
う。
〔課題を解決するための手段〕
本願において開示される発明のうち代表的なものの概
要を簡単に説明すれば下記の通りである。
すなわち、分岐命令コードの特定ビットの状態を変更
するとともに当該命令コードに情報エリアを付加し、こ
の情報エリアが付加された分岐命令を含むプログラムを
マイクロコンピュータに実行させ、当該分岐命令の実行
状況を上記情報エリアに記録させるようにし、この情報
エリアの記録内容に基づいて当該分岐命令のカバレージ
解析を行う、というものである。ここで上記分岐命令の
実行状況として、マイクロコンピュータに含まれる演算
器の演算結果を保持するコンディションコードレジスタ
を参照して判定される分岐条件が成立するか否かの情報
を含める。
また、情報エリアを備えたカバレージ命令を、分岐命
令の分岐パスと通過パスとの双方に挿入し、当該カバレ
ージ命令がフェッチされた場合に当該カバレージ命令の
実行回数を上記情報エリアに記録させるようにし、この
情報エリアの記録内容に基づいて分岐命令の実行状態を
間接的に把握してカバレージ解析を行う、というもので
ある。
ここで上記分岐命令コードの特定ビットの状態変更や
分岐コードへの情報エリアの付加、又は上記カバレージ
命令の挿入はソースプログラムを機械語に翻訳する段階
で行うことができる。
そして上記のようなカバレージ測定に使用されるマイ
クロコンピュータを、以下のように構成したものであ
る。
すなわち、分岐命令コードの特定ビットの状態が変更
され且つ命令コードに情報エリアが付加された分岐命令
をフェッチした場合に当該情報エリアへの情報記録制御
信号を生成する命令制御部と、この情報記録制御信号に
従って上記分岐命令コードの実行状況を情報エリアに記
録する実行部とを含んでマイクロコンピュータを形成し
たものである。また、情報エリアを含むカバレージ命令
をフェッチした場合に当該情報エリアへの情報記録制御
信号を生成する命令制御部と、この情報記録制御信号に
従ってカバレージ命令の実行回数を上記情報エリアに記
録する実行部とを含んでマイクロコンピュータを形成し
たものである。
〔作用〕
上記手段によれば、分岐命令もしくはカバレージ命令
がフェッチされた場合の情報エリアへの記録内容に基づ
いてカバレージ解析が可能とされ、このことが、マイク
ロコンピュータの高機能化にかかわらず適確なカバレー
ジ測定を可能とするように作用する。このときマイクロ
コンピュータは、上記分岐命令若しくはカバレージ命令
がフェッチされた場合に情報記録制御信号を生成し、こ
の情報記録制御信号に従って上記情報エリアに当該分岐
命令若しくはカバレージ命令の実行状況をセットするよ
うに作用する。
〔実施例1〕 第1図には本発明の第1実施例方法を適用したマイク
ロコンピュータ開発システムが示される。
同図に示されるマイクロコンピュータ開発システム
は、特に制限されないが、マイクロコンピュータ応用機
器としてのユーザ開発装置10、ユーザプログラムのデバ
ッグを可能とするインサーキットエミュレータ17、アセ
ンブラやリンケージエディタ更にはカバレージ解析ソフ
トウェアの動作環境が形成されるホストコンピュータ11
を含む。
ユーザ開発装置10は、プログラム及びその他の必要デ
ータの書込み/読出しが可能とされるRAM(ランダム・
アクセス・メモリ)12と、当該ユーザ開発装置10の初期
設定用プログラムなどが保持されたROM(リード・オン
リ・メモリ)13と、外部との間でデータのやりとりを行
うI/O(インプット・アウトプット)14を有する。更に
このユーザ開発装置10には、当該装置10の動作制御や演
算処理を行うマイクロコンピュータを搭載するためのIC
ソケット11が設けられている。ソフトウェアデバッグに
おいてこのICソケット11には、インサーキットエミュレ
ータ18のインタフェースケーブル26の先端に設けられた
プラグ25が結合される。このインターフェースケーブル
26の中間部にはポッド23が配置され、このポッド23に、
ユーザ開発装置10に搭載されるべきマイクロコンピュー
タと同等の機能を有する評価用のマイクロコンピュータ
(以下評価チップと称する)24が装着される。インサー
キットエミュレータ18は、ユーザ開発装置10とホストコ
ンピュータ19との間に配置され、トレース機能やブレー
ク機能によりソフトウェアデバッグを支援する。このイ
ンサーキットエミュレータ18とホストコンピュータ19と
はシリアル回線バスラインによって結合され、このバス
ラインによって両者間でのデータのやりとりが可能とさ
れる。デバッグ対象とされるプログラムは、I/O14を介
して、若しくはインサーキットエミュレータ18を介し
て、ホストコンピュータ19から供給され、RAM12に格納
される。このRAM12に格納されるプログラムは機械語に
翻訳されており、この機械語への翻訳はホストコンピュ
ータ19においてアセンブラソフトを実行することにより
行われる。そしてこの翻訳過程においては、後に詳述す
るように、分岐命令の特定ビット例えば最上位ビットの
状態が変更されることにより当該分岐命令がカバレージ
測定対象として認識可能とされるとともに、当該命令コ
ードに分岐命令の実行状況を記録するための情報エリア
が形成される。この情報エリアの形成は、特に制限され
ないが、当該分岐命令を1ワード拡張することによって
行われる。そして上記RAM12に格納されたプログラム中
の命令は、評価チップ24によって順次実行され。このプ
ログラム実行において、上記分岐命令がフェッチされた
場合に当該命令の実行状況が当該分岐命令の情報エリア
に記録されるようになっている。この実行状況の記録
は、具体的には上記RAM12内において当該分岐命令の情
報エリアに対応するアドレスに当該実行状況が書込まれ
ることによって行われる。
このようにしてデバッグ対象プログラムの実行が終了
された後、上記RAM12内のプログラムは、後にホストコ
ンピュータ19で行われるカバレージ解析に供される。
上記RAM12からホストコンピュータ19へのプログラム
転送経路には、特に制限されないが、図中破線で示され
るように3通りある。すなわち、ユーザ開発装置10にフ
ロッピーディスク装置(図示せず)が備えられている場
合にはI/O14を介してこのフロッピーディスク装置にRAM
12内のプログラムを転送し、ここで当該プログラムが書
込まれたフロッピーディスク16をホストコンピュータ19
に装着することによってプログラム転送を可能とする第
1の転送経路L1、インサーキットエミュレータ18にフロ
ッピーディスク装置(図示せず)が備えられている場合
には評価チップ24及びインサーキットエミュレータ18を
介してこのフロッピーディスク装置に上記RAM12内のプ
ログラムを転送し、ここで当該プログラムが格納された
フロッピーディスク17をホストコンピュータ19に装着す
ることによってプログラム転送を可能とする第2の転送
経路L2、更に、フロッピーディスクを介することなく評
価チップ24及びインサーキットエミュレータ18を介して
直接ホストコンピュータ19にプログラムを転送する第3
の転送経路L3である。尚、ホストコンピュータ19でのカ
バレージ解析結果は表示装置22に表示され、また必要に
応じてフロップーディスク21に格納され、あるいはプリ
ンタ20によってプリントアウトされる。
第2図には上記評価チップ24の詳細な構成の一例が示
される。同図に示される評価チップ24は、特に制限され
ないが、基本命令レベルの高速実行を可能とするため各
種キャッシュを内蔵し、高速なパイプライン処理を実行
可能とされる。
命令プリフェッチユニット30は命令キャッシュ30aを内
蔵し、実行すべき命令を先行してフェッチする。また分
岐命令系の高速化のため、4本の分岐ウィンドウ30bを
有する。これにヒットした場合には分岐先命令のフェッ
チが簡略化される。入出力ユニット35はユーザ開発装置
10及びインサーキットエミュレータ18に結合され、命令
やオペランドの入出力を制御する。命令デコードユニッ
ト31はフェッチした命令のデコードを行う。このデコー
ド結果は、マイクロプログラムを内蔵する制御ユニット
32に伝達され、演算器33aや各種レジスタ群33bを含む実
行ユニット33を制御してオペランドの処理を行わせる。
処理されたオペランドは再び入出力制御ユニット35に転
送され、ストアバッファ35bに格納される。スタック情
報の場合にはスタックキャッシュ35aにも格納される。
オペランドがストアバッファ35bに格納された段階で、
次の命令の処理が開始される。また外部メモリのアクセ
スはメモリ管理ユニット34による保護条件のチェックと
アドレス変換を経て行われる。この処理は命令実行処理
と並行される。
尚、上記制御ユニット32におけるマイクロプログラム
の実行によって、分岐命令を含む種々の命令に対応する
制御信号の発生が可能とされる。本発明における命令制
御部はこの制御ユニット32と命令デコードユニット31と
を含んで実現される。
ここで、上記実行ユニット33におけるレジスタ群33b
には、特に制限されないが、第5図に示されるように、
アキュムレータ(Accumulator:ACCA)、インデックスレ
ジスタ(Index Register:IX),プログラムカウンタ(P
rogram Counter:PC),スタックポインタ(Stack Point
er:SP),コンディションコードレジスタ(Condition C
odes Register)が含まれる。上記アキュムレータはA,B
で区別されるように8ビット構成のものが2つ備えられ
る。上記インデックスレジスタ,プログラムカウンタ及
びスタックポインタは16ビット構成とされ、コンディシ
ョンレジスタは8ビット構成とされる。特にこのコンデ
ィションコードレジスタは、上記実行ユニット33におい
て演算器33aの演算結果が保持され、当該レジスタに
は、ネガティブ(Negative:N),ゼロ(Zero:Z),オー
バフロー(Overflow:V),ビット7からのキャリ(Carr
y:C),ビット3からのハーフキャリ(Half Carry)の
各フラグが存在し、条件分岐命令の実行において、これ
ら各フラグのうち所定のフラグが参照されることにより
当該分岐命令の条件が成立するか否かの判別が可能とさ
れる。
上記のように本実施例における評価チップ24は多様な
分散キャッシュと並列処理により高機能化されており、
このようなマイクロコンピュータを含むシステムのソフ
トウェァデバッグ、特に条件分岐命令の適確なカバレー
ジ測定を可能とするため、本実施例では以下のようなカ
バレージ測定専用の分岐命令が使用される。
第6図には本実施例における評価チップ24において実
行可能とされる種々の分岐命令とその分岐条件との関係
が示される。
例えば条件分岐命令BEQは通常第3図に示されるよう
に、機械語で“67FE"と表わされる。このうち“67"は当
該命令が分岐命令であることを示し、“FE"は分岐先ま
での相対アドレスを示している。本実施例においてこの
“67FE"は通常モードの分岐命令とされる。一方、カバ
レージ測定モードの場合この命令コードは特に制限され
ないが、“E7FE"とされ、通常モード時の命令コードの
最上位ビットが1に変更される。第3図における“E7"
がこれを意味する。そしてこれと同時にワード拡張がな
され、16ビット構成の情報エリア40が形成される。この
情報エリア40は更に3つのエリア40a,40b,40cに分かれ
ている。当該分岐命令によって分岐された場合には第1
のエリア40aにフラグが立てられ、当該分岐命令によっ
て分岐されずに通過された場合には第2のエリア40bに
フラグが立てられる。従ってこの第1,第2のエリア40a,
40bのフラグ状態をチェックすることで当該分岐命令に
従って分岐されたか否かの判別が可能となる。更に本実
施例では、単に分岐されたか否かの判別のみならず、分
岐された場合の分岐条件の種類が記録されるようになっ
ている。この記録は、第3のエリア40cの該当箇所にフ
ラグを立てることによって行われる。
以上のような分岐命令のフォーマット形成は、第1図
に示されるホストコンピュータ19において、高級言語で
記述されたプログラムをアセンブラにより機械語に翻訳
する段階でモード指定に応じて行われる。つまり上記分
岐命令BEQの場合、通常モードの指定がなされれば“67F
E"と翻訳されるのに対して、カバレージ測定モードの指
定がなされた場合には“E7FE"と翻訳され、これとほぼ
同時に当該命令コードに情報エリア40が付加される。
そしてこのようなカバレージ測定モードの分岐命令が
評価チップ24においてフェッチされると、制御ユニット
32は、当該分岐命令の“E7"により当該分岐命令が、カ
バレージ測定モードにおけるBEQであることを認識し、
情報エリアへの情報記録制御信号を生成する。すると実
行ユニット33は制御ユニット32の制御下で分岐条件の判
定を行い、この判定において分岐条件成立により分岐す
る場合には情報エリア40aにフラグ“1"を立て、また条
件不成立により分岐せずに通過する場合には第2のエリ
ア40bにフラグ“1"を立てる。更に分岐条件成立により
分岐する場合には、第3のエリアにおいて予め分岐条件
との対応関係がとられている該当条件ビットにフラグ
“1"を立てる。従ってかかる情報エリアへの記録内容に
よれば、フラグ“1"の有無によって、分岐条件成立によ
り分岐されたか否か、及び分岐された場合の分岐条件の
種類判別が可能とされる。
例えば上記の分岐命令BEQの場合の分岐条件は、第6
図に示されるように、Z=1であり、これは、コンディ
ションコードレジスタのゼロフラグ(第5図参照)が
“1"であることを示しており、当該分岐命令BEQの直前
における演算結果がゼロであることを意味する。従って
この分岐命令BEQの条件が成立するか否かの判別は、コ
ンディションコードレジスタのゼロフラグの状態判別に
よって可能とされる。
分岐命令BEQの分岐条件はZ=1のみであるが、例え
ば分岐条件BLEの分岐条件は、第6図に示されるよう
に、 Z+(NV)=1 であり、この条件が成立する場合は3通りある。すなわ
ち、Z=1の場合と、(Z=0)・(N=1)・(V=
0)の場合と、(Z=0)・(N=0)・(V=1)の
場合である。このうちどの条件が成立して分岐されたか
の判別を可能とするため、本実施例では特に制限されな
いが、情報エリア40における第3のエリア40cにおける
ビットb8,b9,b10に上記3通りの成立条件が割付けら
れ、該当するビットにフラグ“1"が立てられる。従って
当該分岐命令BLEのように条件の成立する場合が複数通
りある場合でも、第3のエリア40cのセット内容によっ
て分岐条件の種類を適確に把握することが可能とされ
る。
本実施例システムにおいてカバレージ測定は次のよう
に行われる。
第4図には、I/O14若しくはインサーキットエミュレ
ータ18を介してホストコンピュータ19より転送されRAM1
2内に格納された命令語の配置とそれに対応する機械語
コードとの関係が示される。同図において分岐命令BEQ
及びBNEは、ホストコンピュータ19での翻訳過程にてカ
バレージ測定モードが選択されることにより、命令コー
ドの最上位ビットが“1"とされ、ワード拡張により情報
エリア40が付加されている。この情報エリアは同図に示
されるように初期値として16進数の(0000)がセットさ
れている。
そして評価チップ24によりRAM12内の命令が順次実行
され、当該分岐命令BEQ又はBNEがフェッチされた場合、
当該分岐命令についての分岐条件に応じて当該命令の情
報エリア40に当該命令の実行状況が記録される。この実
行状況の記録は、RAM12内において当該命令の情報エリ
ア40に対応するアドレスに実行状況を書込むことによっ
て行われる。また、この実行状況の記録は、当該命令の
前回実行時の状況を保存するため、今回実行時の状況と
前回実行時の状況との論理和をとって行われる。
RAM12内のプログラムの一通りのテストが終了した後
に、当該RAM12内のプログラムを基にホストコンピュー
タ19においてカバレージ測定結果の情報解析が行われ
る。RAM12からホストコンピュータ19へのデータ転送に
おいて、第2のルートL2又は第3のルートL3を経る場合
には、ホストコンピュータ19において第12図に示される
ような分岐命令ファイルを用いることによりカバレージ
情報のみを抽出することができる。同図に示される分岐
命令ファイルは、アセンブラ/リンケージエディタによ
り、テスト対象プログラムから分岐命令だけを抜出して
作成されるファイルであり、アドレス、命令語、飛び
先、分岐条件の各項目が設けられている。更にホストコ
ンピュータ19では、上記分岐命令ファイルを用いてカバ
レージ測定結果の分析を行い、第13図に示されるような
カバレージ解析結果を得る。このカバレージ解析結果に
は、分岐、通過、実行済分岐条件、テスト完了命令の各
項目が含まれる。このような解析結果は表示装置22に表
示され、必要に応じてプリンタ20によりハードコピーさ
れる。
また、RAM12からホストコンピュータ19へのデータ転
送が第1のルートL1を経て行われる場合において、ユー
ザ開発装置10にカバレージ解析のためのプログラムを載
せれば、上記の分岐命令ファイルをホストコンピュータ
19からユーザ開発装置10に転送してユーザ開発装置10で
カバレージ情報だけを取出し、それをフロッピーディス
ク16に格納することによりホストコンピュータ19に伝達
することもできる。尚、ユーザ開発装置10に表示装置や
プリンタが備えられている場合には、カバレージ解析及
びその解析結果の出力までユーザ開発装置10で行うこと
もできる。
本実施例システムによれば以下の作用効果を得ること
ができる。
(1)分岐命令コードの特定ビットの状態が変更され、
且つ、情報エリアが付加された分岐命令が評価チップ24
によってフェッチされた場合に、当該分岐命令の実行状
況が当該情報エリアに記録されるので、この情報エリア
のセット内容に基づいて当該分岐命令のカバレージ解析
を行うことができ、この解析によって本実施例の分岐命
令や分岐条件を明らかにすることにより、より高度なソ
フトウェア管理が可能となる。
(2)上記(1)の作用効果により、テスト対象プログ
ラムについて一通りのカバレージ測定が終了された後
に、すべての分岐命令の情報エリア40の記録内容を抜出
して、各分岐命令毎に、条件成立により分岐したか否か
の判別、及び条件成立により分岐した場合においての当
該分岐の成立条件の判別を行うことができるので、ソフ
トウェアデバッグ特に分岐命令に関してのテストを詳細
に行うことができ、高品質ソフトウェアの開発を支援す
ることができる。
(3)また、ホストコンピュータ19においてはカバレー
ジ測定モードと通常動作モードとの切換えが可能とされ
ているため、カバレージ測定モードによりテスト対象プ
ログラムのデバッグが十分に行われた後、特に当該テス
ト対象プログラムが実稼動に移行される場合に、分岐命
令コードを通常モードに簡単に戻すことができ、これに
より、分岐命令のワード長がカバレージ測定時より減少
され、実稼動に移行された場合のプログラム実行の効率
低下を抑制できる。
(4)更に上記(1),(2)の作用効果は、カバレー
ジ測定モードにおいて形成された分岐命令を用いること
で得られるもので、外付けハードウェアによって得るも
のではないため、命令キャッシュを内蔵するなど、評価
チップが高機能化されたものであるにもかかわらず、デ
バッグ対象プログラムのカバレージ測定を適確に行うこ
とができる。換言すれば、本実施例でのカバレージ測定
方法によれば、特殊なハードウェアを必要とせずに、テ
スト対象プログラムの実行環境そのものにおいてテスト
することができるので、マイクロコンピュータが高機能
化されても、それに対処し得る。
〔実施例2〕 第7図には、仮想記憶システムへの適用例が示され
る。同図に示されるように、このシステムは、特に制限
されないが、多様な分散キャッシュと並列処理により高
機能化されたマイクロコンピュータ50と、テスト対象プ
ログラムなどが格納されるRAM51と、本実施例システム
の初期設定用のプログラムなどが格納されたROM52と、
記憶装置54との間でデータの入出力を可能とするI/O53
とを有する。尚、マイクロコンピュータ50の基本的構成
は第2図に示されるのと等しい。記憶装置54には例えば
フロッピーディスク装置が適用され、A,B,Cで区別され
るように複数のプログラムが格納されている。このプロ
グラムA,B,CがI/O53を介して選択的にRAM51に転送され
ることにより、当該複数のプログラムA,B,Cが時分割で
使用可能とされる。かかるシステムにおいて外部記憶装
置54内の複数のプログラムA,B,Cの全てがテスト対象と
される場合でも、上記実施例と同様に、分岐命令の特定
ビット例えば最上位ビットの状態を変更するとともに当
該命令コードに分岐命令の実行状況をセットするための
情報エリアを付加することにより(第3図参照)、当該
分岐命令のカバレージ測定を適確に行うことができる。
例えばプログラムAがRAM51に転送され、それがマイク
ロコンピュータ50により実行されると、上記の分岐命令
フェッチにより当該分岐命令の情報エリアに当該命令の
実行状況が記録される。情報エリア及び当該エリアへの
実行状況の記録については上記第1実施例の場合と同様
であるのでここでは詳述しない。そしてこのプログラム
Aから他のプログラム例えばプログラムCの実行に移行
される場合、RAM51内にはプログラムCが格納されるこ
とになるが、RAM51にこのプログラムCが転送される前
に当該RAM51内のプログラムAが記憶装置54に退避され
る。これにより、上記プログラムAについてのカバレー
ジ測定結果が消滅されるのを防止することができる。そ
してその後にRAM51にプログラムCが転送され、上記プ
ログラムAと同様にマイクロコンピュータ50により当該
RAM51内のプログラムCが実行され、当該分岐命令の実
行状況が当該分岐命令の情報エリアに記録される。尚、
他のプログラムへ移行される場合にも上記と同様にプロ
グラムの退避が行われる。そして同一分岐命令が複数回
実行される場合には、上記実施例の場合と同様に、情報
エリアに既に記録されている実行状況と今回の実行状況
との論理和がとられ、それが新たな実行状況として当該
情報エリアに記録される。
このようにして全てのテスト対象プログラムについて
の一通りのテストが終了された時点で、記憶装置54内に
退避されたプログラムから分岐命令を抽出することによ
り、上記実施例の場合と同様に分岐命令のカバレージ解
析を適確に行うことができる。尚、このカバレージ解析
については上記実施例と同様に、ホストコンピュータ19
(第1図参照)によって、若しくはマイクロコンピュー
タ50によって行うことができる。
〔実施例3〕 第8図には、他の実施例において使用されるCVR(カ
バレージ)命令のフォーマットが示される。同図に示さ
れるCVR命令は、特に制限されないが、60で示される命
令コードと、61で示される情報エリアとから成る。この
命令コード(5555)は、当該命令がCVR命令であること
を示しているが、CVR命令を示す限り、どのような値で
もよい。この命令がマイクロコンピュータで実行される
場合には、情報エリア61に当該命令の実行回数が記録さ
れるようになっている。
第9図には分岐命令を含む通常のプログラムの基本的
な流れが示され、第10図には上記CVR命令が含まれるプ
ログラムの流れが示される。
上記のCVR命令を用いてカバレージ測定を行う場合、
第10図に示されるように、分岐命令の通過パス62と分岐
命令の分岐パス63とにCVR命令64,65が挿入される。この
ようなCVR命令挿入は、テスト対象プログラムのアセン
ブラ段階で行うことができる。CVRの情報エリア61には
当該CVR命令の実行回数が記録されるが、その初期値は1
6進数で(0000)とされる。CVR命令の実行回数は当該CV
R命令を実行するマイクロコンピュータによって行われ
る。例えば第1図に示されるシステムを使用する場合、
分岐命令に情報エリアを形成する必要はないが、ホスト
コンピュータ19において当該分岐命令の直後、すなわち
当該分岐命令の通過パス62と分岐パス63とに上記CVR命
令が挿入される。そしてこのCVR命令を含むプログラム
がRAM12に転送され、評価チップ24で当該プログラムが
実行される。このプログラム実行において第10図の分岐
命令がフェッチされ、当該分岐命令の条件不成立により
当該分岐命令が通過された場合には、CVR命令64におけ
る情報エリア61の値が+1され、また分岐条件成立によ
り分岐された場合にはCVR命令65における情報エリア61
の値が+1される。このようなインクリメントは、制御
ユニット32の制御下で実行ユニット33によって行われ
る。尚、このインクリメントは、16進数の(FFFF)で終
了される。この情報エリアの値は分岐命令の通過回数又
は分岐回数を示し、これによって分岐命令の実行状況を
間接的に把握することができ、従って上記実施例と同様
の効果を得ることができる。
尚、CVR命令は、カバレージ測定が完了された後は不
必要となるから削除される。
〔実施例4〕 第11図には、他の実施例において使用されるCVR命令
のフォーマットが示される。同図に示されるCVR命令は
上記第3実施例と同様に、CVR命令を示すコード(555
5)を含んで成るが、このコードの最上位ビットが情報
エリアとして利用される。すなわちこのCVR命令がマイ
クロコンピュータによって実行された場合、上記CVRの
命令コード(5555)の最上位ビットが“1"とされ、16進
数の(D555)とされる。ただし、2回目以降のCVR命令
フェッチ時には当該最上位ビットへの書込みサイクルは
発生されない。
本実施例におけるCVR命令は、上記第3実施例と同様
に分岐命令の通過パスと分岐パスとの双方に挿入される
ことにより、上記実施例と同様に評価チップ24で実行さ
れ、それぞれ通過、分岐に応じた1ビット情報により分
岐命令の実行状況の記録が可能とされる。従って本実施
例においても、上記実施例と同様の効果を得ることがで
きる。特に本実施例では、カバレージ測定において2回
目以降のCVR命令フェッチ時には情報エリア(命令コー
ドの最上位ビット)への書込みサイクルが発生されない
ため、高速システムのテスト時においてもカバレージ測
定に起因するプログラム実行速度の低下を阻止すること
ができる。
以上本発明者によってなされた発明を実施例に基づい
て具体的に説明したが、本発明は上記実施例に限定され
ず、その要旨を逸脱しない範囲において種々変更可能で
ある。
例えば、上記実施例では評価チップ24によって、分岐
命令を含む各種命令を実行するようにしたが、ユーザ実
機に搭載される実チップを使用することもできる。ま
た、上記実施例ではテスト対象プログラムをユーザ開発
装置10内のRAM12内に格納するようにしたが、インサー
キットエミュレータ18内の貸出しメモリやその他の書込
み/読出し可能な外部メモリを使用することもできる。
更に上記第1実施例において、カバレージ測定の簡略化
を図るため、分岐条件の種類を記録するための第3のエ
リア40cを省略してもよい。
以上の説明では主として本発明者によってなされた発
明をその背景となった利用分野であるマイクロコンピュ
ータ開発システムや仮想記憶システムに適用した場合に
ついて説明したが、本発明はそれに限定されるものでは
なく、例えば中、大型の全てのコンピュータシステム及
びその開発システムなどにも広く適用することができ
る。本発明は少なくともソフトウェアデバッグを必要と
する条件のものに適用することができる。
〔発明の効果〕
本願において開示される発明のうち代表的なものによ
って得られる効果を簡単に説明すれば、下記の通りであ
る。
すなわち、分岐命令コードの特定ビットの状態を変更
して当該命令コードをカバレージ測定対象として認識可
能とするとともに、当該命令コードに情報エリアを付加
し、若しくは情報エリアが付加されたカバレージ命令を
分岐命令の直後に挿入することにより、当該情報エリア
に、当該分岐命令実行状況を記録させ、当該情報エリア
の記録内容を解析することで適確なカバレージ測定を行
うことができる。しかも、かかるカバレージ測定方法に
おける分岐命令実行状況検出は、マイクロコンピュータ
の外部に出力される信号を用いるのではなく、マイクロ
コンピュータに実行状況を書込ませることで可能として
いるので、マイクロコンピュータが高機能化されている
場合においても、分岐命令の実行状況を直接若しくはカ
バレージ命令の実行状況により間接的に検出することが
でき、ソフトウェアの品質向上に大きく寄与できる。
更に、上記のように情報エリアが付加された分岐命令
若しくはカバレージ命令がフェッチされた場合に当該情
報エリアに分岐命令実行状況若しくはカバレージ命令の
実行状況を記録可能なマイクロコンピュータによって、
上記のようなカバレージ測定を適確に行うことができ
る。
【図面の簡単な説明】
第1図は本発明の第1実施例方法を適用したマイクロコ
ンピュータ開発システムのブロック図、 第2図は第1図に示されるマイクロコンピュータ(評価
チップ)の詳細な構成ブロック図、 第3図は分岐命令のフォーマット図、 第4図は第1図に示されるシステムにおけるRAMの命令
語配置と当該命令の機械語コードとの関係説明図、 第5図はマイクロコンピュータ内の主要レジスタとその
ビット構成との説明図、 第6図は各種分岐命令とそれに対応する分岐条件との説
明図、 第7図は他の実施例システムのブロック図、 第8図は他の実施例方法に係るカバレージ命令のフォー
マット説明図、 第9図は分岐命令を含むプログラムの基本的な流れを示
すフローチャート、 第10図はカバレージ命令が挿入されたプログラムの基本
的な流れを示すフローチャート、 第11図は他の実施例方法に係るカバレージ命令のフォー
マット説明図、 第12図は分岐命令ファイルの説明図、 第13図はカバレージ解析結果の説明図である。 10…ユーザ開発装置、12,51…RAM、13,52…ROM、14,53
…I/O、16,17,21…フロッピーディスク、18…インサー
キットエミュレータ、19…ホストコンピュータ、20…プ
リンタ、22…表示装置、23…ポッド、24,50…マイクロ
コンピュータ、30…命令プリフェッチユニット、31…命
令デコードユニット、32…制御ユニット、33…実行ユニ
ット、34…メモリ管理ユニット、35…入出力制御ユニッ
ト、40,61…情報エリア、40a…第1のエリア、40b…第
2のエリア、40c…第3のエリア、54…記憶装置、60…
命令コード、62…通過パス、63…分岐パス、64,65…CVR
命令。

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】分岐命令コードの特定ビットの状態を変更
    して当該命令コードをカバレージ測定対象として認識可
    能とするとともに、当該命令コードに情報エリアを付加
    するステップと、この情報エリアが付加された分岐命令
    を含むプログラムをマイクロコンピュータに実行させ、
    当該分岐命令の実行状況を当該情報エリアに記録させる
    ステップと、この情報エリアの記録内容に基づいて当該
    分岐命令のカバレージ解析を行うステップとを含むカバ
    レージ測定方法であって、 上記情報エリアは、上記マイクロコンピュータに含まれ
    る演算器の演算結果を保持するコンディションコードレ
    ジスタを参照して判定される分岐条件に対応する記憶エ
    リアを有し、 上記分岐命令の実行によって判定された上記分岐条件が
    成立するか否かの情報が、対応する上記記憶エリアに書
    き込まれることを特徴とするカバレージ測定方法。
  2. 【請求項2】カバレージ命令であることを示す命令コー
    ドと命令実行回数を記録するための情報エリアとを備え
    たカバレージ命令を、分岐命令の分岐パスと通過パスと
    の双方に挿入するステップと、このカバレージ命令が挿
    入されたプログラムをマイクロコンピュータに実行さ
    せ、上記分岐命令の分岐パス又は通過パスにおいてそれ
    ぞれ対応するカバレージ命令が上記マイクロコンピュー
    タで実行される毎に、当該カバレージ命令の情報エリア
    に記録されている命令実行回数をインクリメントするス
    テップと、上記カバレージ命令における情報エリアの命
    令実行回数に基づいて上記分岐命令のカバレージ解析を
    行うステップとを含むことを特徴とするカバレージ測定
    方法。
  3. 【請求項3】上記分岐命令コードの特定ビットの状態変
    更及び分岐命令コードへの情報エリアの付加、又は上記
    カバレージ命令の挿入は、高級言語で記述されたソース
    プログラムを機械語に翻訳する段階で行われる請求項1
    又は2記載のカバレージ測定方法。
  4. 【請求項4】所定の演算を行う演算器と、この演算器に
    よる演算結果が保持されるコンディションコードレジス
    タとを含むマイクロコンピュータであって、 上記コンディションコードレジスタを参照して判定され
    る分岐条件に対応する記憶エリアを含む情報エリアが付
    加された分岐命令をフェッチした場合に、当該情報エリ
    アへの情報記録制御信号を生成する命令制御部と、 上記情報記録制御信号に従って上記分岐命令の実行状況
    を当該分岐命令の情報エリアに記録する実行部とを含
    み、 上記実行部は、上記分岐命令の実行によって判定された
    上記分岐条件が成立するか否かの情報を、対応する上記
    記憶エリアに書き込むための手段を含んで成ることを特
    徴とするマイクロコンピュータ。
  5. 【請求項5】カバレージ命令であることを示す命令コー
    ドと命令実行回数を記録するための情報エリアとを含む
    カバレージ命令が、分岐命令の分岐パスと通過パスとの
    双方に挿入されて成るプログラムを実行するマイクロコ
    ンピュータであって、 上記分岐命令の分岐パス又は通過パスにおいてそれぞれ
    対応するカバレージ命令が実行される毎に、当該カバレ
    ージ命令の情報エリアに記録されている命令実行回数を
    インクリメントする実行部を含むことを特徴とするマイ
    クロコンピュータ。
JP1342966A 1989-12-29 1989-12-29 カバレージ測定方法及びマイクロコンピュータ Expired - Fee Related JP2915944B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1342966A JP2915944B2 (ja) 1989-12-29 1989-12-29 カバレージ測定方法及びマイクロコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1342966A JP2915944B2 (ja) 1989-12-29 1989-12-29 カバレージ測定方法及びマイクロコンピュータ

Publications (2)

Publication Number Publication Date
JPH03204044A JPH03204044A (ja) 1991-09-05
JP2915944B2 true JP2915944B2 (ja) 1999-07-05

Family

ID=18357893

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1342966A Expired - Fee Related JP2915944B2 (ja) 1989-12-29 1989-12-29 カバレージ測定方法及びマイクロコンピュータ

Country Status (1)

Country Link
JP (1) JP2915944B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2487355B (en) * 2011-01-13 2020-03-25 Advanced Risc Mach Ltd Processing apparatus, trace unit and diagnostic apparatus
US11822468B2 (en) 2019-05-24 2023-11-21 Microsoft Technology Licensing, Llc Executable code branch annotations for objective branch verification

Also Published As

Publication number Publication date
JPH03204044A (ja) 1991-09-05

Similar Documents

Publication Publication Date Title
US6430741B1 (en) System and method for data coverage analysis of a computer program
US8266608B2 (en) Post-compile instrumentation of object code for generating execution trace data
US5134701A (en) Test apparatus performing runtime replacement of program instructions with breakpoint instructions for processor having multiple instruction fetch capabilities
US5889981A (en) Apparatus and method for decoding instructions marked with breakpoint codes to select breakpoint action from plurality of breakpoint actions
US5345580A (en) Microprocessor device and emulator device thereof
JP4190114B2 (ja) マイクロコンピュータ
US6321331B1 (en) Real time debugger interface for embedded systems
EP0528585B1 (en) Data processing system with internal instruction cache
US9152531B2 (en) Post-compile instrumentation of object code for generating execution trace data
EP0453268A2 (en) A microprocessor for inserting a bus cycle to output an internal information for an emulation
US6141791A (en) Debug aid device, program compiler device, storage medium storing computer-readable debugger program, and storage medium storing program compiler program
JP2005276201A (ja) コード・カバレッジ用のハードウェア支援を使用する自律テスト・ケース・フィードバックのための方法および装置
US10824426B2 (en) Generating and verifying hardware instruction traces including memory data contents
EP0199009A2 (en) Path coverage measuring system in a programme
CN117892661A (zh) 一种基于risc-v处理器验证的模拟器比对系统
US7110934B2 (en) Analysis of the performance of a portion of a data processing system
CN114691520A (zh) 基于处理器调试架构的指令可编程缓冲区设计系统
JP2915944B2 (ja) カバレージ測定方法及びマイクロコンピュータ
US7596725B2 (en) Efficient trace triggering
CN116541266A (zh) 程序的运行方法、装置、设备及介质
JPH096646A (ja) プログラムシミュレーション装置
KR100273280B1 (ko) 디버깅 로직 제어 회로
JPS62164140A (ja) デ−タ処理システムの試験方法
JP2919406B2 (ja) 性能評価方法
JP2923570B2 (ja) インサーキットエミュレータおよびマイクロプロセッサ

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees