JPH03204044A - カバレージ測定方法及びマイクロコンピュータ - Google Patents
カバレージ測定方法及びマイクロコンピュータInfo
- Publication number
- JPH03204044A JPH03204044A JP1342966A JP34296689A JPH03204044A JP H03204044 A JPH03204044 A JP H03204044A JP 1342966 A JP1342966 A JP 1342966A JP 34296689 A JP34296689 A JP 34296689A JP H03204044 A JPH03204044 A JP H03204044A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- coverage
- information area
- branch instruction
- 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.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はマイクロコンピュータ応用システムのソフトウ
ェアデバッグ技術、さらにはマイクロコンピュータによ
って実行される命令のカバレージ測定を可能とする方法
、及び当該方法の実施に用いられるマイクロコンピュー
タに関する。
ェアデバッグ技術、さらにはマイクロコンピュータによ
って実行される命令のカバレージ測定を可能とする方法
、及び当該方法の実施に用いられるマイクロコンピュー
タに関する。
マイクロコンピュータ応用機器の開発において、その応
用システムのデバッグやそのシステムの詳細な評価を行
うため、インサーキットエミュレータが使用されている
。斯るインサーキットエミュレータは、ソフトウェア開
発用の親計算機(ホストコンピュータ)などのシステム
開発装置と、開発中の応用機器との間に接続され、その
応用機器に含まれるマイクロプロセッサ(ターゲットマ
イクロプロセッサ)の機能を代行する一方でデバッガと
しての機能を持ち、詳細なシステムデバッグを支援する
。
用システムのデバッグやそのシステムの詳細な評価を行
うため、インサーキットエミュレータが使用されている
。斯るインサーキットエミュレータは、ソフトウェア開
発用の親計算機(ホストコンピュータ)などのシステム
開発装置と、開発中の応用機器との間に接続され、その
応用機器に含まれるマイクロプロセッサ(ターゲットマ
イクロプロセッサ)の機能を代行する一方でデバッガと
しての機能を持ち、詳細なシステムデバッグを支援する
。
尚、インサーキットエミュレータについて記載された文
献の例としては、昭和63年10月1日に日立マイクロ
コンピュータエンジニアリング株式会社より発行された
「日立マイコン技報(第2巻、第2号)」がある。
献の例としては、昭和63年10月1日に日立マイクロ
コンピュータエンジニアリング株式会社より発行された
「日立マイコン技報(第2巻、第2号)」がある。
ところで、このようなインサーキットエミュレータにお
いては、応用機器側のプログラム(ターゲットプログラ
ム)の評価を可能とする手段としてリアルタイムトレー
ス機能の他にカバレージトレース機能を備えたものがあ
る。このカバレージトレース機能によれば、ターゲット
マイクロプロセッサによって実行されるプログラムの通
過アドレスに応じてフラグなどの所定の情報が単一のカ
バレジトレースメモリに順次蓄えられる。この情報によ
って、ターゲットプログラムの中の命令語の何パーセン
トをテストできたかを測定することができる。
いては、応用機器側のプログラム(ターゲットプログラ
ム)の評価を可能とする手段としてリアルタイムトレー
ス機能の他にカバレージトレース機能を備えたものがあ
る。このカバレージトレース機能によれば、ターゲット
マイクロプロセッサによって実行されるプログラムの通
過アドレスに応じてフラグなどの所定の情報が単一のカ
バレジトレースメモリに順次蓄えられる。この情報によ
って、ターゲットプログラムの中の命令語の何パーセン
トをテストできたかを測定することができる。
しかしながら、上記従来技術によれば次のような問題点
のあることが本発明者によって見い出された。
のあることが本発明者によって見い出された。
従来技術において命令分岐命令の実行状況例えば当該分
岐命令によって分岐されたか否かを検出するには、マイ
クロコンピュータの外部に配置されたハードウェアによ
ってトレースしなければならない。しかしながら、命令
キャッシュやメモリマネージメントユニットなどの周辺
回路を内蔵してシステムオンチップ化することにより高
機能化されたマイクロコンピュータでは、分岐命令の実
行状況を検出するに十分な信号をマイクロコンピュータ
の外部に出力することができなくなっているため、マイ
クロコンピュータの外部に配置されたハードウェアでは
分岐命令の実行状況をトレースするのが困難になる。ま
た仮にそのような信号をマイクロコンピュータの外部に
出力することが可能であっても内部処理が高速で行われ
るため、外付はハードウェアで分岐命令の実行状況を検
出するのが困難になる。更に、仮想メモリシステムなど
のように単一のメモリが複数のプログラムによって時分
割で使用される場合には、プログラムの種類だけカバレ
ージトレースメモリを用意し、現在実行されるプログラ
ムに対応するように当該メモリの切換え制御を行わなけ
ればならず、外付はハードウェアにおいてこのようなメ
モリ切換え制御を行うのは非常に困難となる。
岐命令によって分岐されたか否かを検出するには、マイ
クロコンピュータの外部に配置されたハードウェアによ
ってトレースしなければならない。しかしながら、命令
キャッシュやメモリマネージメントユニットなどの周辺
回路を内蔵してシステムオンチップ化することにより高
機能化されたマイクロコンピュータでは、分岐命令の実
行状況を検出するに十分な信号をマイクロコンピュータ
の外部に出力することができなくなっているため、マイ
クロコンピュータの外部に配置されたハードウェアでは
分岐命令の実行状況をトレースするのが困難になる。ま
た仮にそのような信号をマイクロコンピュータの外部に
出力することが可能であっても内部処理が高速で行われ
るため、外付はハードウェアで分岐命令の実行状況を検
出するのが困難になる。更に、仮想メモリシステムなど
のように単一のメモリが複数のプログラムによって時分
割で使用される場合には、プログラムの種類だけカバレ
ージトレースメモリを用意し、現在実行されるプログラ
ムに対応するように当該メモリの切換え制御を行わなけ
ればならず、外付はハードウェアにおいてこのようなメ
モリ切換え制御を行うのは非常に困難となる。
本発明の目的は、外部とやりとりされる信号に内部動作
状態が反映されない若しくは反映されても内部処理が高
速に行われることから分岐命令の実行状態を検知するこ
とができないような高機能化されたマイクロプロセッサ
であるにもかかわらず、プログラムのカバレージ測定を
適確に行い得る技術を提供することにある。
状態が反映されない若しくは反映されても内部処理が高
速に行われることから分岐命令の実行状態を検知するこ
とができないような高機能化されたマイクロプロセッサ
であるにもかかわらず、プログラムのカバレージ測定を
適確に行い得る技術を提供することにある。
本願の前記ならびにそのほかの目的と新規な特徴は、本
明細書の記述及び添付図面から明らかになるであろう。
明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要
を簡単に説明すれば下記の通りである。
を簡単に説明すれば下記の通りである。
すなわち、分岐命令コードの特定ビットの状態を変更す
るとともに当該命令コードに情報エリアを付加し、この
情報エリアが付加された分岐命令を含むプログラムをマ
イクロコンピュータに実行させ、当該分岐命令の実行状
況を上記情報エリアに記録させるようにし、この情報エ
リアの記録内容に基づいて当該分岐命令のカバレージ解
析を行う、というものである。ここで上記分岐命令の実
行状況としては、上記分岐命令に従って分岐したか否か
の判別情報を挙げることができるが、更に詳細なカバレ
ージ解析を可能とするためにはこのような判別情報に加
えて、分岐条件の種類についての情報をも含めることが
できる。
るとともに当該命令コードに情報エリアを付加し、この
情報エリアが付加された分岐命令を含むプログラムをマ
イクロコンピュータに実行させ、当該分岐命令の実行状
況を上記情報エリアに記録させるようにし、この情報エ
リアの記録内容に基づいて当該分岐命令のカバレージ解
析を行う、というものである。ここで上記分岐命令の実
行状況としては、上記分岐命令に従って分岐したか否か
の判別情報を挙げることができるが、更に詳細なカバレ
ージ解析を可能とするためにはこのような判別情報に加
えて、分岐条件の種類についての情報をも含めることが
できる。
また、情報エリアを備えたカバレージ命令を、分岐命令
の分岐パスと通過パスとの双方に挿入し、当該カバレー
ジ命令がフェッチされた場合に当該カバレージ命令の実
行状況を上記情報エリアに記録させるようにし、この情
報エリアの記録内容に基づいて分岐命令の実行状態を間
接的に把握してカバレージ解析を行う、というものであ
る。
の分岐パスと通過パスとの双方に挿入し、当該カバレー
ジ命令がフェッチされた場合に当該カバレージ命令の実
行状況を上記情報エリアに記録させるようにし、この情
報エリアの記録内容に基づいて分岐命令の実行状態を間
接的に把握してカバレージ解析を行う、というものであ
る。
ここで上記分岐命令コードの特定ビットの状態変更や分
岐コードへの情報エリアの付加、又は上記カバレージ命
令の挿入はソースプログラムを機械語に翻訳する段階で
行うことができる。
岐コードへの情報エリアの付加、又は上記カバレージ命
令の挿入はソースプログラムを機械語に翻訳する段階で
行うことができる。
そして上記のようなカバレージ測定に使用されるマイク
ロコンピュータを、以下のように構成したものである。
ロコンピュータを、以下のように構成したものである。
すなわち、分岐命令コードの特定ビットの状態が変更さ
れ且つ命令コードに情報エリアが付加された分岐命令を
フェッチした場合に当該情報エリアへの情報記録制御信
号を生成する命令制御部と、この情報記録制御信号に従
って上記分岐命令コードの実行状況を情報エリアに記録
する実行部とを含んでマイクロコンピュータを形成した
ものである。また、情報エリアを含むカバレージ命令を
フェッチした場合に当該情報エリアへの情報記録制御信
号を生成する命令制御部と、この情報記録制御信号に従
って当該命令コードの実行状況を上記情報エリアに記録
する実行部とを含んでマイクロコンピュータを形成した
ものである。
れ且つ命令コードに情報エリアが付加された分岐命令を
フェッチした場合に当該情報エリアへの情報記録制御信
号を生成する命令制御部と、この情報記録制御信号に従
って上記分岐命令コードの実行状況を情報エリアに記録
する実行部とを含んでマイクロコンピュータを形成した
ものである。また、情報エリアを含むカバレージ命令を
フェッチした場合に当該情報エリアへの情報記録制御信
号を生成する命令制御部と、この情報記録制御信号に従
って当該命令コードの実行状況を上記情報エリアに記録
する実行部とを含んでマイクロコンピュータを形成した
ものである。
上記手段によれば、分岐命令若しくはカバレージ命令が
フェッチされた場合の情報エリアへの記録内容に基づい
てカバレージ解析が可能とされ、このことが、マイクロ
コンピュータの高機能化にかかわらず適確なカバレージ
測定を可能とするように作用する。このときマイクロコ
ンピュータは、上記分岐命令若しくはカバレージ命令が
フェッチされた場合に情報記録制御信号を生成し、この
情報記録制御信号に従って上記情報エリアに当該分岐命
令若しくはカバレージ命令の実行状況をセットするよう
に作用する。
フェッチされた場合の情報エリアへの記録内容に基づい
てカバレージ解析が可能とされ、このことが、マイクロ
コンピュータの高機能化にかかわらず適確なカバレージ
測定を可能とするように作用する。このときマイクロコ
ンピュータは、上記分岐命令若しくはカバレージ命令が
フェッチされた場合に情報記録制御信号を生成し、この
情報記録制御信号に従って上記情報エリアに当該分岐命
令若しくはカバレージ命令の実行状況をセットするよう
に作用する。
〔実 施 例1〕
第1図には本発明の第1実施例方法を適用したマイクロ
コンピュータ開発システムが示される。
コンピュータ開発システムが示される。
同図に示されるマイクロコンピュータ開発システムは、
特に制限されないが、マイクロコンピュータ応用機器と
してのユーザ開発装置10、ユーザプログラムのデバッ
グを可能とするインサーキットエミュレータ17、アセ
ンブラやリンケージエディタ更にはカバレージ解析ソフ
トウェアの動作環境が形成されるホストコンピュータ1
1を含む。
特に制限されないが、マイクロコンピュータ応用機器と
してのユーザ開発装置10、ユーザプログラムのデバッ
グを可能とするインサーキットエミュレータ17、アセ
ンブラやリンケージエディタ更にはカバレージ解析ソフ
トウェアの動作環境が形成されるホストコンピュータ1
1を含む。
ユーザ開発装置10は、プログラム及びその他の必要デ
ータの書込み/読出しが可能とされるRAM(ランダム
・アクセス・メモリ)12と、当該ユーザ開発装置10
の初期設定用プログラムなどが保持されたROM (リ
ード・オンリ・メモリ)13と、外部との間でデータの
やりとりを行うIlo (インプット・アウトプット)
14を有する。
ータの書込み/読出しが可能とされるRAM(ランダム
・アクセス・メモリ)12と、当該ユーザ開発装置10
の初期設定用プログラムなどが保持されたROM (リ
ード・オンリ・メモリ)13と、外部との間でデータの
やりとりを行うIlo (インプット・アウトプット)
14を有する。
更にこのユーザ開発装置10には、当該装置10の動作
制御や所定の演算処理を行うマイクロコンピュータを搭
載するためのICソケット11が設けられている。ソフ
トウェアデバッグにおいてこのICソケット11には、
インサーキットエミュレータ18のインタフェースケー
ブル26の先端に設けられたプラグ25が結合される。
制御や所定の演算処理を行うマイクロコンピュータを搭
載するためのICソケット11が設けられている。ソフ
トウェアデバッグにおいてこのICソケット11には、
インサーキットエミュレータ18のインタフェースケー
ブル26の先端に設けられたプラグ25が結合される。
このインタフェースケーブル26の中間部にはポット2
3が配置され、このボッド23に、ユーザ開発装置10
に搭載されるべきマイクロコンピュータと同等の機能を
有する評価用のマイクロコンピュータ(以下評価チップ
と称する)24が装着される。
3が配置され、このボッド23に、ユーザ開発装置10
に搭載されるべきマイクロコンピュータと同等の機能を
有する評価用のマイクロコンピュータ(以下評価チップ
と称する)24が装着される。
インサーキットエミュレータ18は、ユーザ開発装置1
0とホストコンピュータ19との間に配置され、トレー
ス機能やブレーク機能によりソフトウエアデバノグを支
援する。このインサーキットエミュレータ18とホスト
コンピュータ19とはシリアル回線パスラインによって
結合され、このパスラインによって両者間でのデータの
やりとりが可能とされる。デバッグ対象とされるプログ
ラムは、■1014を介して、若しくはインサーキット
エミュレータ18を介して、ホストコンピュータ19か
ら供給され、RA M l 2に格納される。
0とホストコンピュータ19との間に配置され、トレー
ス機能やブレーク機能によりソフトウエアデバノグを支
援する。このインサーキットエミュレータ18とホスト
コンピュータ19とはシリアル回線パスラインによって
結合され、このパスラインによって両者間でのデータの
やりとりが可能とされる。デバッグ対象とされるプログ
ラムは、■1014を介して、若しくはインサーキット
エミュレータ18を介して、ホストコンピュータ19か
ら供給され、RA M l 2に格納される。
このRAM12に格納されるプログラムは機械語に翻訳
されており、この機械語への翻訳はホストコンピュータ
19においてアセンブラソフトを実行することにより行
われる。そしてこの翻訳過程においては、後に詳述する
ように、分岐命令の特定ビット例えば最上位ビットの状
態が変更されることにより当該分岐命令がカバレージ測
定対象として認識可能とされるとともに、当該命令コー
ドに分岐命令の実行状況を記録するための情報エリアが
形成される。この情報エリアの形成は、特に制限されな
いが、当該分岐命令を1ワード拡張することによって行
われる。そして上記RAM12に格納されたプログラム
中の命令は、評価チップ24によって順次実行され、こ
のプログラム実行において、上記分岐命令がフェッチさ
れた場合に当該命令の実行状況が当該分岐命令の情報エ
リアに記録されるようになっている。この実行状況の記
録は、具体的には上記RAM12内において当該分岐命
令の情報エリアに対応するアドレスに当該実行状況が書
込まれることによって行われる。
されており、この機械語への翻訳はホストコンピュータ
19においてアセンブラソフトを実行することにより行
われる。そしてこの翻訳過程においては、後に詳述する
ように、分岐命令の特定ビット例えば最上位ビットの状
態が変更されることにより当該分岐命令がカバレージ測
定対象として認識可能とされるとともに、当該命令コー
ドに分岐命令の実行状況を記録するための情報エリアが
形成される。この情報エリアの形成は、特に制限されな
いが、当該分岐命令を1ワード拡張することによって行
われる。そして上記RAM12に格納されたプログラム
中の命令は、評価チップ24によって順次実行され、こ
のプログラム実行において、上記分岐命令がフェッチさ
れた場合に当該命令の実行状況が当該分岐命令の情報エ
リアに記録されるようになっている。この実行状況の記
録は、具体的には上記RAM12内において当該分岐命
令の情報エリアに対応するアドレスに当該実行状況が書
込まれることによって行われる。
このようにしてデバッグ対象プログラムの実行が終了さ
れた後、上記RAM12内のプログラムは、後にホスト
コンピュータ19で行われるカバレージ解析に供される
。
れた後、上記RAM12内のプログラムは、後にホスト
コンピュータ19で行われるカバレージ解析に供される
。
上記RAM12からホストコンピュータ19へのプログ
ラム転送経路には、特に制限されないが、図中破線で示
されるように3通りある。すなわち、ユーザ開発装置1
0にフロッピーディスク装置(図示せず)が備えられて
いる場合にはl1014を介してこのフロッピーディス
ク装置にRAM12内のプログラムを転送し、ここで当
該プログラムが書込まれたフロッピーディスク16をホ
ストコンピュータ19に装着することによってプログラ
ム転送を可能とする第1の転送経路L1、インサーキッ
トエミュレータ18にフロッピーディスク装W(図示せ
ず)が備えられている場合には評価チップ24及びイン
サーキットエミュレータ18を介してこのフロッピーデ
ィスク装置に上記RAM12内のプログラムを転送し、
ここで当該プログラムが格納されたフロンピーディスク
17をホストコンピュータ19に装着することによって
プログラム転送を可能とする第2の転送経路L2、更に
、フロッピーディスクを介することなく評価チップ24
及びインサーキットエミュレータ18を介して直接ホス
トコンピュータ19にプログラムを転送する第3の転送
経路L3である。尚、ホストコンピュータ19でのカバ
レージ解析結果は表示装置22に表示され、また必要に
応じてフロッピーディスク21に格納され、あるいはプ
リンタ20によってプリントアウトされる。
ラム転送経路には、特に制限されないが、図中破線で示
されるように3通りある。すなわち、ユーザ開発装置1
0にフロッピーディスク装置(図示せず)が備えられて
いる場合にはl1014を介してこのフロッピーディス
ク装置にRAM12内のプログラムを転送し、ここで当
該プログラムが書込まれたフロッピーディスク16をホ
ストコンピュータ19に装着することによってプログラ
ム転送を可能とする第1の転送経路L1、インサーキッ
トエミュレータ18にフロッピーディスク装W(図示せ
ず)が備えられている場合には評価チップ24及びイン
サーキットエミュレータ18を介してこのフロッピーデ
ィスク装置に上記RAM12内のプログラムを転送し、
ここで当該プログラムが格納されたフロンピーディスク
17をホストコンピュータ19に装着することによって
プログラム転送を可能とする第2の転送経路L2、更に
、フロッピーディスクを介することなく評価チップ24
及びインサーキットエミュレータ18を介して直接ホス
トコンピュータ19にプログラムを転送する第3の転送
経路L3である。尚、ホストコンピュータ19でのカバ
レージ解析結果は表示装置22に表示され、また必要に
応じてフロッピーディスク21に格納され、あるいはプ
リンタ20によってプリントアウトされる。
第2図には上記評価チップ24の詳細な構成の一例が示
される。同図に示される評価チップ24は、特に制限さ
れないが、基本命令レベルの高速実行を可能とするため
各種キャッシュを内蔵し、高速なパイプライン処理を実
行可能とされる。
される。同図に示される評価チップ24は、特に制限さ
れないが、基本命令レベルの高速実行を可能とするため
各種キャッシュを内蔵し、高速なパイプライン処理を実
行可能とされる。
命令ブリフェッチユニット30は命令キャッシュ30a
を内蔵し、実行すべき命令を先行してフェッチする。ま
た分岐命令系の高速化のため、4本の分岐ウィンドウ3
0bを有する。これにヒツトした場合には分岐先命令の
フェッチが簡略化される。入出カニニット35はユーザ
開発装置10及びインサーキットエミュレータ18に結
合され、命令やオペランドの入出力を制御する。命令デ
コードユニット31はフェッチした命令のデコードを行
う。このデコード結果は、マイクロプログラムを内蔵す
る制御ユニット32に伝達され、演算器33aや各種レ
ジスタ群33bを含む実行ユニット33を制御してオペ
ランドの処理を行わせる。
を内蔵し、実行すべき命令を先行してフェッチする。ま
た分岐命令系の高速化のため、4本の分岐ウィンドウ3
0bを有する。これにヒツトした場合には分岐先命令の
フェッチが簡略化される。入出カニニット35はユーザ
開発装置10及びインサーキットエミュレータ18に結
合され、命令やオペランドの入出力を制御する。命令デ
コードユニット31はフェッチした命令のデコードを行
う。このデコード結果は、マイクロプログラムを内蔵す
る制御ユニット32に伝達され、演算器33aや各種レ
ジスタ群33bを含む実行ユニット33を制御してオペ
ランドの処理を行わせる。
処理されたオペランドは再び入出力制御ユニット35に
転送され、ストアバッファ35bに格納される。スタッ
ク情報の場合にはスタックキャッシュ35aにも格納さ
れる。オペランドがストアバッファ35bに格納された
段階で1次の命令の処理が開始される。また外部メモリ
のアクセスはメモリ管理ユニット34による保護条件の
チエツクとアドレス変換を経て行われる。この処理は命
令実行処理と並行される。
転送され、ストアバッファ35bに格納される。スタッ
ク情報の場合にはスタックキャッシュ35aにも格納さ
れる。オペランドがストアバッファ35bに格納された
段階で1次の命令の処理が開始される。また外部メモリ
のアクセスはメモリ管理ユニット34による保護条件の
チエツクとアドレス変換を経て行われる。この処理は命
令実行処理と並行される。
尚、上記制御ユニット32におけるマイクロプログラム
の実行によって、分岐命令を含む種々の命令に対応する
制御信号の発生が可能とされる。
の実行によって、分岐命令を含む種々の命令に対応する
制御信号の発生が可能とされる。
本発明における命令制御部はこの制御ユニット32と命
令デコードユニット31とを含んで実現される。
令デコードユニット31とを含んで実現される。
ここで、上記実行ユニット33におけるレジスタ群33
bには、特に制限されないが、第5図に示されるように
、アキュムレータ(A ccumulator:ACC
A)、インデックスレジスタ(I ndex Regi
ster: I X) +プログラムカウンタ(P r
ogramCounter:PC) + スタックポイ
ンタ (S tack Po1nter: S P )
+コンデイションコードレジスタ(Conditio
n Codes Register)が含まれる。上記
アキュムレータはA、Bで区別されるように8ビツト構
成のものが2つ備えられる。上記インデックスレジスタ
、プログラムカウンタ及びスタックポインタは16ビツ
ト構成とされ、コンデイションレジスタは8ビツト構成
とされる。特にこのコンデイションコードレジスタは、
上記実行ユニット33において演算器33aの演算結果
が保持され、当該レジスタには、ネガティブ(Nega
tive:N)、ゼロ(zero:Z)、オーバフロー
(○verflow:V) r ビット7からのキャリ
(Carry: C)、ビット3からのハーフキャリ(
Half Carry)の各フラグが存在し、条件分岐
命令の実行において、これら各フラグのうち所定のフラ
グが参照されることにより当該分岐命令の条件が成立す
るか否かの判別が可能とされる。
bには、特に制限されないが、第5図に示されるように
、アキュムレータ(A ccumulator:ACC
A)、インデックスレジスタ(I ndex Regi
ster: I X) +プログラムカウンタ(P r
ogramCounter:PC) + スタックポイ
ンタ (S tack Po1nter: S P )
+コンデイションコードレジスタ(Conditio
n Codes Register)が含まれる。上記
アキュムレータはA、Bで区別されるように8ビツト構
成のものが2つ備えられる。上記インデックスレジスタ
、プログラムカウンタ及びスタックポインタは16ビツ
ト構成とされ、コンデイションレジスタは8ビツト構成
とされる。特にこのコンデイションコードレジスタは、
上記実行ユニット33において演算器33aの演算結果
が保持され、当該レジスタには、ネガティブ(Nega
tive:N)、ゼロ(zero:Z)、オーバフロー
(○verflow:V) r ビット7からのキャリ
(Carry: C)、ビット3からのハーフキャリ(
Half Carry)の各フラグが存在し、条件分岐
命令の実行において、これら各フラグのうち所定のフラ
グが参照されることにより当該分岐命令の条件が成立す
るか否かの判別が可能とされる。
上記のように本実施例における評価チップ24は多様な
分散キャッシュと並列処理により高機能化されており、
このようなマイクロコンピュータを含むシステムのソフ
トウェアデバッグ、特に条件分岐命令の適確なカバレー
ジ測定を可能とするため1本実施例では以下のようなカ
バレージ測定専用の分岐命令が使用される。
分散キャッシュと並列処理により高機能化されており、
このようなマイクロコンピュータを含むシステムのソフ
トウェアデバッグ、特に条件分岐命令の適確なカバレー
ジ測定を可能とするため1本実施例では以下のようなカ
バレージ測定専用の分岐命令が使用される。
第6図には本実施例における評価チップ24において実
行可能とされる種々の分岐命令とその分岐条件との関係
が示される。
行可能とされる種々の分岐命令とその分岐条件との関係
が示される。
例えば条件分岐命令BEQは通常第3図に示されるよう
に、機械語で“67FE”と表わされる。
に、機械語で“67FE”と表わされる。
このうちit 67 I+は当該命令が分岐命令である
ことを示し、r(F E +1は分岐先までの相対アド
レスを示している。本実施例においてこの”67FE”
は通常モードの分岐命令とされる。一方、カバレージ測
定モードの場合この命令コードは特に制限されないが、
”E7FE”とされ、通常モード時の命令コードの最上
位ビットが1に変更される。
ことを示し、r(F E +1は分岐先までの相対アド
レスを示している。本実施例においてこの”67FE”
は通常モードの分岐命令とされる。一方、カバレージ測
定モードの場合この命令コードは特に制限されないが、
”E7FE”とされ、通常モード時の命令コードの最上
位ビットが1に変更される。
第3図における11 E 7 I+がこれを意味する。
そしてこれと同時にワード拡張がなされ、16ビツト構
成の情報エリア40が形成される。この情報エリア40
は更に3つのエリア40a、40b、40cに分かれて
いる。当該分岐命令によって分岐された場合には第1の
エリア40aにフラグが立てられ、当該分岐命令によっ
て分岐されずに通過された場合には第2のエリア40b
にフラグが立てられる。従ってこの第1.第2のエリア
40a。
成の情報エリア40が形成される。この情報エリア40
は更に3つのエリア40a、40b、40cに分かれて
いる。当該分岐命令によって分岐された場合には第1の
エリア40aにフラグが立てられ、当該分岐命令によっ
て分岐されずに通過された場合には第2のエリア40b
にフラグが立てられる。従ってこの第1.第2のエリア
40a。
40bのフラグ状態をチエツクすることで当該分岐命令
に従って分岐されたか否かの判別が可能となる。更に本
実施例では、単に分岐されたか否かの判別のみならず、
分岐された場合の分岐条件の種類が記録されるようにな
っている。この記録は、第3のエリア40cの該当箇所
にフラグを立てることによって行われる。
に従って分岐されたか否かの判別が可能となる。更に本
実施例では、単に分岐されたか否かの判別のみならず、
分岐された場合の分岐条件の種類が記録されるようにな
っている。この記録は、第3のエリア40cの該当箇所
にフラグを立てることによって行われる。
以上のような分岐命令のフォーマット形成は、第1図に
示されるホストコンピュータ19において、高級言語で
記述されたプログラムをアセンブラにより機械語に翻訳
する段階でモード指定に応じて行われる。つまり上記分
岐命令BEQの場合、通常モードの指定がなされれば”
67FE”と翻訳されるのに対して、カバレージ測定モ
ードの指定がなされた場合には” E 7 F E ”
と翻訳され、これとほぼ同時に当該命令コードに情報エ
リア40が付加される。
示されるホストコンピュータ19において、高級言語で
記述されたプログラムをアセンブラにより機械語に翻訳
する段階でモード指定に応じて行われる。つまり上記分
岐命令BEQの場合、通常モードの指定がなされれば”
67FE”と翻訳されるのに対して、カバレージ測定モ
ードの指定がなされた場合には” E 7 F E ”
と翻訳され、これとほぼ同時に当該命令コードに情報エ
リア40が付加される。
そしてこのようなカバレージ測定モードの分岐命令が評
価チップ24においてフェッチされると。
価チップ24においてフェッチされると。
制御ユニット32は、当該分岐命令の’ E 7 ”に
より当該分岐命令が、カバレージ測定モードにおけるB
EQであることを認識し、情報エリアへの情報記録制御
信号を生成する。すると実行ユニット33は制御ユニッ
ト32の制御下で分岐条件の判定を行い、この判定にお
いて分岐条件成立により分岐する場合には情報エリア4
0aにフラグre 1 nを立て、また条件不成立によ
り分岐せずに通過する場合には第2のエリア40bにフ
ラグ111 I+を立てる。更に分岐条件成立により分
岐する場合には、第3のエリアにおいて予め分岐条件と
の対応関係がとられている該当条件ビットにフラグ・・
1・・を立てる。従ってががる情報エリアへの記録内容
によれば、フラグ″1”の有無によって、分岐条件成立
により分岐されたか否か、及び分岐された場合の分岐条
件の種類判別が可能とされる。
より当該分岐命令が、カバレージ測定モードにおけるB
EQであることを認識し、情報エリアへの情報記録制御
信号を生成する。すると実行ユニット33は制御ユニッ
ト32の制御下で分岐条件の判定を行い、この判定にお
いて分岐条件成立により分岐する場合には情報エリア4
0aにフラグre 1 nを立て、また条件不成立によ
り分岐せずに通過する場合には第2のエリア40bにフ
ラグ111 I+を立てる。更に分岐条件成立により分
岐する場合には、第3のエリアにおいて予め分岐条件と
の対応関係がとられている該当条件ビットにフラグ・・
1・・を立てる。従ってががる情報エリアへの記録内容
によれば、フラグ″1”の有無によって、分岐条件成立
により分岐されたか否か、及び分岐された場合の分岐条
件の種類判別が可能とされる。
例えば上記の分岐命令BEQの場合の分岐条件は、第6
図に示されるように、Z=1であり、これは、コンデイ
ションコードレジスタのゼロフラグ(第5図参照)が1
″′であることを示しており、当該分岐命令BEQの直
前における演算結果がゼロであることを意味する。従っ
てこの分岐命令BEQの条件が成立するか否かの判別は
、コンデイションコードレジスタのゼロフラグの状態判
別によって可能とされる。
図に示されるように、Z=1であり、これは、コンデイ
ションコードレジスタのゼロフラグ(第5図参照)が1
″′であることを示しており、当該分岐命令BEQの直
前における演算結果がゼロであることを意味する。従っ
てこの分岐命令BEQの条件が成立するか否かの判別は
、コンデイションコードレジスタのゼロフラグの状態判
別によって可能とされる。
分岐命令BEQの分岐条件はZ=1のみであるが、例え
ば分岐条件BLEの分岐条件は、第6図に示されるよう
に、 Z+(N@V)=1 であり、この条件が成立する場合は3通りある。
ば分岐条件BLEの分岐条件は、第6図に示されるよう
に、 Z+(N@V)=1 であり、この条件が成立する場合は3通りある。
すなわち、Z=1(7)場合と、(Z=O)’(N=1
)−(V=O)(7)場合と、(z=O)・(N=o)
・(v=1)の場合である。このうちどの条件が成立し
て分岐されたかの判別を可能とするため、本実施例では
特に制限されないが、情報エリア4oにおける第3のエ
リア40cにおけるビットb8.b9゜bloに上記3
通りの成立条件が割付けられ、該当するビットにフラグ
l(I I+が立てられる。従って当該分岐命令BLE
のように条件の成立する場合が複数通りある場合でも、
第3のエリア40cのセット内容によって分岐条件の種
類を適確に把握することが可能とされる。
)−(V=O)(7)場合と、(z=O)・(N=o)
・(v=1)の場合である。このうちどの条件が成立し
て分岐されたかの判別を可能とするため、本実施例では
特に制限されないが、情報エリア4oにおける第3のエ
リア40cにおけるビットb8.b9゜bloに上記3
通りの成立条件が割付けられ、該当するビットにフラグ
l(I I+が立てられる。従って当該分岐命令BLE
のように条件の成立する場合が複数通りある場合でも、
第3のエリア40cのセット内容によって分岐条件の種
類を適確に把握することが可能とされる。
本実施例システムにおいてカバレージ測定は次のように
行われる。
行われる。
第4図には、工1014若しくはインサーキットエミュ
レータ18を介してホストコンピュータ19より転送さ
れRAM12内に格納された命令語の配置とそれに対応
する機械語コードとの関係が示される。同図において分
岐命令BEQ及びBNEは、ホストコンピュータ19で
の翻訳過程にてカバレージ測定モードが選択されること
により、命令コードの最上位ビットがLl I I+と
され、ワード拡張により情報エリア40が付加されてい
る。
レータ18を介してホストコンピュータ19より転送さ
れRAM12内に格納された命令語の配置とそれに対応
する機械語コードとの関係が示される。同図において分
岐命令BEQ及びBNEは、ホストコンピュータ19で
の翻訳過程にてカバレージ測定モードが選択されること
により、命令コードの最上位ビットがLl I I+と
され、ワード拡張により情報エリア40が付加されてい
る。
この情報エリアは同図に示されるように初期値として1
6進数の(0000)がセットされている。
6進数の(0000)がセットされている。
そして評価チップ24によりRAM12内の命令が順次
実行され、当該分岐命令BEQ又はBNEがフェッチさ
れた場合、当該分岐命令についての分岐条件に応じて当
該命令の情報エリア40に当該命令の実行状況が記録さ
れる。この実行状況の記録は、RAM12内において当
該命令の情報エリア40に対応するアドレスに実行状況
を書込むことによって行われる。また、この実行状況の
記録は、当該命令の前回実行時の状況を保存するため、
今回実行時の状況と前回実行時の状況との論理和をとっ
て行われる。
実行され、当該分岐命令BEQ又はBNEがフェッチさ
れた場合、当該分岐命令についての分岐条件に応じて当
該命令の情報エリア40に当該命令の実行状況が記録さ
れる。この実行状況の記録は、RAM12内において当
該命令の情報エリア40に対応するアドレスに実行状況
を書込むことによって行われる。また、この実行状況の
記録は、当該命令の前回実行時の状況を保存するため、
今回実行時の状況と前回実行時の状況との論理和をとっ
て行われる。
RAM12内のプログラムの−通りのテストが終了した
後に、当該RAM12内のプログラムを基にホストコン
ピュータ19においてカバレージ測定結果の情報解析が
行われる。RAM12からホストコンピュータ19への
データ転送において、第2のルートL2又は第3のルー
トL3を経る場合には、ホストコンピュータ19におい
て第12図に示されるような分岐命令ファイルを用いる
ことによりカバレージ情報のみを抽出することができる
。同図に示される分岐命令ファイルは、アセンブラ/リ
ンケージエディタにより、テスト対象プログラムから分
岐命令だけを抜出して作成されるファイルであり、アド
レス、命令語、飛び先、分岐条件の各項目が設けられて
いる。更にホストコンピュータ19では、上記分岐命令
ファイルを用いてカバレージ測定結果の分析を行い、第
13図に示されるようなカバレージ解析結果を得る。
後に、当該RAM12内のプログラムを基にホストコン
ピュータ19においてカバレージ測定結果の情報解析が
行われる。RAM12からホストコンピュータ19への
データ転送において、第2のルートL2又は第3のルー
トL3を経る場合には、ホストコンピュータ19におい
て第12図に示されるような分岐命令ファイルを用いる
ことによりカバレージ情報のみを抽出することができる
。同図に示される分岐命令ファイルは、アセンブラ/リ
ンケージエディタにより、テスト対象プログラムから分
岐命令だけを抜出して作成されるファイルであり、アド
レス、命令語、飛び先、分岐条件の各項目が設けられて
いる。更にホストコンピュータ19では、上記分岐命令
ファイルを用いてカバレージ測定結果の分析を行い、第
13図に示されるようなカバレージ解析結果を得る。
このカバレージ解析結果には、分岐、通過、実行法分岐
条件、テスト完了命令の各項目が含まれる。
条件、テスト完了命令の各項目が含まれる。
このような解析結果は表示装置22に表示され、必要に
応じてプリンタ20によりハードコピーされる。
応じてプリンタ20によりハードコピーされる。
また、RAM12からホストコンピュータ19へのデー
タ転送が第1のルートL1を経て行われる場合において
、ユーザ開発装置10にカバレージ解析のためのプログ
ラムを載せれば、上記の分岐命令ファイルをホストコン
ピュータ19からユーザ開発装置110に転送してユー
ザ開発装置10でカバレージ情報だけを取出し、それを
フロッピーディスク16に格納することによりホストコ
ンピュータ19に伝達することもできる。尚、ユーザ開
発装置10に表示装置やプリンタが備えられている場合
には、カバレージ解析及びその解析結果の出力までユー
ザ開発装置10で行うこともできる。
タ転送が第1のルートL1を経て行われる場合において
、ユーザ開発装置10にカバレージ解析のためのプログ
ラムを載せれば、上記の分岐命令ファイルをホストコン
ピュータ19からユーザ開発装置110に転送してユー
ザ開発装置10でカバレージ情報だけを取出し、それを
フロッピーディスク16に格納することによりホストコ
ンピュータ19に伝達することもできる。尚、ユーザ開
発装置10に表示装置やプリンタが備えられている場合
には、カバレージ解析及びその解析結果の出力までユー
ザ開発装置10で行うこともできる。
本実施例システムによれば以下の作用効果を得ることが
できる。
できる。
(1)分岐命令コードの特定ビットの状態が変更され、
且つ、情報エリアが付加された分岐命令が評価チップ2
4によってフェッチされた場合に、当該分岐命令の実行
状況が当該情報エリアに記録されるので、この情報エリ
アのセット内容に基づいて当該分岐命令のカバレージ解
析を行うことができ、この解析によって本実施例の分岐
命令や分岐条件を明らかにすることにより、より高度な
ソフトウェア管理が可能となる。
且つ、情報エリアが付加された分岐命令が評価チップ2
4によってフェッチされた場合に、当該分岐命令の実行
状況が当該情報エリアに記録されるので、この情報エリ
アのセット内容に基づいて当該分岐命令のカバレージ解
析を行うことができ、この解析によって本実施例の分岐
命令や分岐条件を明らかにすることにより、より高度な
ソフトウェア管理が可能となる。
(2)上記(1)の作用効果により、テスト対象プログ
ラムについて−通りのカバレージ測定が終了された後に
、すべての分岐命令の情報エリア40の記録内容を抜出
して、各分岐命令毎に、条件成立により分岐したか否か
の判別、及び条件成立により分岐した場合においての当
該分岐の成立条件の判別を行うことができるので、ソフ
トウェアデバッグ特に分岐命令に関してのテストを詳細
に行うことができ、高品質ソフトウェアの開発を支援す
ることができる。
ラムについて−通りのカバレージ測定が終了された後に
、すべての分岐命令の情報エリア40の記録内容を抜出
して、各分岐命令毎に、条件成立により分岐したか否か
の判別、及び条件成立により分岐した場合においての当
該分岐の成立条件の判別を行うことができるので、ソフ
トウェアデバッグ特に分岐命令に関してのテストを詳細
に行うことができ、高品質ソフトウェアの開発を支援す
ることができる。
(3)また、ホストコンピュータ19においてはカバレ
ージ測定モードと通常動作モードとの切換えが可能とさ
れているため、カバレージ測定モードによりテスト対象
プログラムのデバッグが十分に行われた後、特に当該テ
スト対象プログラムが実稼動に移行される場合に、分岐
命令コードを通常モードに簡単に戻すことができ、これ
により、分岐命令のワード長がカバレージ測定時より減
少され、実稼動に移行された場合のプログラム実行の効
率低下を抑制できる。
ージ測定モードと通常動作モードとの切換えが可能とさ
れているため、カバレージ測定モードによりテスト対象
プログラムのデバッグが十分に行われた後、特に当該テ
スト対象プログラムが実稼動に移行される場合に、分岐
命令コードを通常モードに簡単に戻すことができ、これ
により、分岐命令のワード長がカバレージ測定時より減
少され、実稼動に移行された場合のプログラム実行の効
率低下を抑制できる。
(4)更に上記(1)、(2)の作用効果は、カバレー
ジ測定モードにおいて形成された分岐命令を用いること
で得られるもので、外付はハードウェアによって得るも
のではないため、命令キャッシュを内蔵するなど、評価
チップが高機能化されたものであるにもかかわらず、デ
バッグ対象プログラムのカバレージ測定を適確に行うこ
とができる。換言すれば1本実施例でのカバレージ測定
方法によれば、特殊なハードウェアを必要とせずに、テ
スト対象プログラムの実行環境そのものにおいてテスト
することができるので、マイクロコンピュータが高機能
化されても、それに対処し得る。
ジ測定モードにおいて形成された分岐命令を用いること
で得られるもので、外付はハードウェアによって得るも
のではないため、命令キャッシュを内蔵するなど、評価
チップが高機能化されたものであるにもかかわらず、デ
バッグ対象プログラムのカバレージ測定を適確に行うこ
とができる。換言すれば1本実施例でのカバレージ測定
方法によれば、特殊なハードウェアを必要とせずに、テ
スト対象プログラムの実行環境そのものにおいてテスト
することができるので、マイクロコンピュータが高機能
化されても、それに対処し得る。
〔実 施 例2〕
第7図には、仮想記憶システムへの適用例が示される。
同図に示されるように、このシステムは、特に制限され
ないが、多様な分散キャッシュと並列処理により高機能
化されたマイクロコンピュータ50と、テスト対象プロ
グラムなどが格納されるRAM51と、本実施例システ
ムの初期設定用のプログラムなどが格納されたROM5
2と、記憶装置54との間でデータの入出力を可能とす
るl1053とを有する。尚、マイクロコンピュータ5
0の基本的構成は第2図に示されるのと等しい。記憶装
置154には例えばフロッピーディスク装置が適用され
、A、B、Cで区別されるように複数のプログラムが格
納されている。このプログラムA、B、Cがl1053
を介して選択的にRAM51に転送されることにより、
当該複数のプログラムA、B、Cが時分割で使用可能と
される。
ないが、多様な分散キャッシュと並列処理により高機能
化されたマイクロコンピュータ50と、テスト対象プロ
グラムなどが格納されるRAM51と、本実施例システ
ムの初期設定用のプログラムなどが格納されたROM5
2と、記憶装置54との間でデータの入出力を可能とす
るl1053とを有する。尚、マイクロコンピュータ5
0の基本的構成は第2図に示されるのと等しい。記憶装
置154には例えばフロッピーディスク装置が適用され
、A、B、Cで区別されるように複数のプログラムが格
納されている。このプログラムA、B、Cがl1053
を介して選択的にRAM51に転送されることにより、
当該複数のプログラムA、B、Cが時分割で使用可能と
される。
かかるシステムにおいて外部記憶装置54内の複数のプ
ログラムA、B、Cの全てがテスト対象とされる場合で
も、上記実施例と同様に、分岐命令の特定ビット例えば
最上位ビットの状態を変更するとともに当該命令コード
に分岐命令の実行状況をセットするための情報エリアを
付加することにより(第3図参照)、当該分岐命令のカ
バレージ測定を適確に行うことができる。例えばプログ
ラムAがRAM51に転送され、それがマイクロコンピ
ュータ50により実行されると、上記の分岐命令フェッ
チにより当該分岐命令の情報エリアに当該命令の実行状
況が記録される。情報エリア及び当該エリアへの実行状
況の記録については上記第1実施例の場合と同様である
のでここでは詳述しない。そしてこのプログラムAから
他のプログラム例えばプログラムCの実行に移行される
場合、RAM51内にはプログラムCが格納されること
になるが、RAM51にこのプログラムCが転送される
前に当該RAM51内のプログラムAが記憶装置154
に退避される。これにより、上記プログラムAについて
のカバレージ測定結果が消滅されるのを防止することが
できる。そしてその後にRAM51にプログラムCが転
送され、上記プログラムAと同様にマイクロコンピュー
タ50により当該RAM51内のプログラムCが実行さ
れ、当該分岐命令の実行状況が当該分岐命令の情報エリ
アに記録される。尚、他のプログラムへ移行される場合
にも上記と同様にプログラムの退避が行われる。そして
同一分岐命令が複数回実行される場合には、上記実施例
の場合と同様に、情報エリアに既に記録されている実行
状況と今回の実行状況との論理和がとられ、それが新た
な実行状況として当該情報エリアに記録される。
ログラムA、B、Cの全てがテスト対象とされる場合で
も、上記実施例と同様に、分岐命令の特定ビット例えば
最上位ビットの状態を変更するとともに当該命令コード
に分岐命令の実行状況をセットするための情報エリアを
付加することにより(第3図参照)、当該分岐命令のカ
バレージ測定を適確に行うことができる。例えばプログ
ラムAがRAM51に転送され、それがマイクロコンピ
ュータ50により実行されると、上記の分岐命令フェッ
チにより当該分岐命令の情報エリアに当該命令の実行状
況が記録される。情報エリア及び当該エリアへの実行状
況の記録については上記第1実施例の場合と同様である
のでここでは詳述しない。そしてこのプログラムAから
他のプログラム例えばプログラムCの実行に移行される
場合、RAM51内にはプログラムCが格納されること
になるが、RAM51にこのプログラムCが転送される
前に当該RAM51内のプログラムAが記憶装置154
に退避される。これにより、上記プログラムAについて
のカバレージ測定結果が消滅されるのを防止することが
できる。そしてその後にRAM51にプログラムCが転
送され、上記プログラムAと同様にマイクロコンピュー
タ50により当該RAM51内のプログラムCが実行さ
れ、当該分岐命令の実行状況が当該分岐命令の情報エリ
アに記録される。尚、他のプログラムへ移行される場合
にも上記と同様にプログラムの退避が行われる。そして
同一分岐命令が複数回実行される場合には、上記実施例
の場合と同様に、情報エリアに既に記録されている実行
状況と今回の実行状況との論理和がとられ、それが新た
な実行状況として当該情報エリアに記録される。
このようにして全てのテスト対象プログラムについての
−通りのテストが終了された時点で、記憶装置54内に
退避されたプログラムから分岐命令を抽出することによ
り、上記実施例の場合と同様に分岐命令のカバレージ解
析を適確に行うことができる。尚、このカバレージ解析
については上記実施例と同様に、ホストコンピュータ1
9 (第1図参照)によって、若しくはマイクロコンピ
ュータ50によって行うことができる。
−通りのテストが終了された時点で、記憶装置54内に
退避されたプログラムから分岐命令を抽出することによ
り、上記実施例の場合と同様に分岐命令のカバレージ解
析を適確に行うことができる。尚、このカバレージ解析
については上記実施例と同様に、ホストコンピュータ1
9 (第1図参照)によって、若しくはマイクロコンピ
ュータ50によって行うことができる。
〔実 施 例3〕
第8図には、他の実施例において使用されるCVR(カ
バレージ)命令のフォーマットが示される。同図に示さ
れるCVR命令は、特に制限されないが、60で示され
る命令コードと、61で示される情報エリアとから成る
。この命令コード(5555)は、当該命令がCVR命
令であることを示しているが、CVR命令を示す限り、
どのような値でもよい。この命令がマイクロコンピュー
タで実行される場合には、情報エリア61に当該命令の
実行回数が記録されるようになっている。
バレージ)命令のフォーマットが示される。同図に示さ
れるCVR命令は、特に制限されないが、60で示され
る命令コードと、61で示される情報エリアとから成る
。この命令コード(5555)は、当該命令がCVR命
令であることを示しているが、CVR命令を示す限り、
どのような値でもよい。この命令がマイクロコンピュー
タで実行される場合には、情報エリア61に当該命令の
実行回数が記録されるようになっている。
第9図には分岐命令を含む通常のプログラムの基本的な
流れが示され、第10図には上記CVR命令が含まれる
プログラムの流れが示される。
流れが示され、第10図には上記CVR命令が含まれる
プログラムの流れが示される。
上記CVR命令を用いてカバレージ測定を行う場合、第
10図に示されるように、分岐命令の通過パス62と分
岐命令の分岐パス63とにCVR命令64.65が挿入
される。このようなCVR命令挿入は、テスト対象プロ
グラムのアセンブラ段階で行うことができる。CVRの
情報エリア61には当該CVR命令の実行回数が記録さ
れるが、その初期値は16進数で(OOOO)とされる
。
10図に示されるように、分岐命令の通過パス62と分
岐命令の分岐パス63とにCVR命令64.65が挿入
される。このようなCVR命令挿入は、テスト対象プロ
グラムのアセンブラ段階で行うことができる。CVRの
情報エリア61には当該CVR命令の実行回数が記録さ
れるが、その初期値は16進数で(OOOO)とされる
。
CVR命令の実行回数は当該CVR命令を実行するマイ
クロコンピュータによって行われる。例えば第1図に示
されるシステムを使用する場合、分岐命令に情報エリア
を形成する必要はないが、ホストコンピュータ19にお
いて当該分岐命令の直後、すなわち当該分岐命令の通過
パス62と分岐パス63とに上記CVR命令が挿入され
る。そしてこのCVR命令を含むプログラムがRAM1
2に転送され、評価チップ24で当該プログラムが実行
される。このプログラム実行において第10図の分岐命
令がフェッチされ、当該分岐命令の条件不成立により当
該分岐命令が通過された場合には、CVR命令64にお
ける情報エリア61の値が+1され、また分岐条件成立
により分岐された場合にはCVR命令65における情報
エリア61の値が+1される。このようなインクリメン
トは、制御ユニット32の制御下で実行ユニット33に
よって行われる。尚、このインクリメントは、16進数
の(F F F F)で終了される。この情報エリアの
値は分岐命令の通過回数又は分岐回数を示し、これによ
って分岐命令の実行状況を間接的に把握することができ
、従って上記実施例と同様の効果を得ることができる。
クロコンピュータによって行われる。例えば第1図に示
されるシステムを使用する場合、分岐命令に情報エリア
を形成する必要はないが、ホストコンピュータ19にお
いて当該分岐命令の直後、すなわち当該分岐命令の通過
パス62と分岐パス63とに上記CVR命令が挿入され
る。そしてこのCVR命令を含むプログラムがRAM1
2に転送され、評価チップ24で当該プログラムが実行
される。このプログラム実行において第10図の分岐命
令がフェッチされ、当該分岐命令の条件不成立により当
該分岐命令が通過された場合には、CVR命令64にお
ける情報エリア61の値が+1され、また分岐条件成立
により分岐された場合にはCVR命令65における情報
エリア61の値が+1される。このようなインクリメン
トは、制御ユニット32の制御下で実行ユニット33に
よって行われる。尚、このインクリメントは、16進数
の(F F F F)で終了される。この情報エリアの
値は分岐命令の通過回数又は分岐回数を示し、これによ
って分岐命令の実行状況を間接的に把握することができ
、従って上記実施例と同様の効果を得ることができる。
尚、CVR命令は、カバレージ測定が完了された後は不
必要となるから削除される。
必要となるから削除される。
〔実 施 例4〕
第11図には、他の実施例において使用されるCVR命
令のフォーマットが示される。同図に示されるCVR命
令は上記第3実施例と同様に、CVR命令を示すコード
(5555)を含んで成るが、このコードの最上位ビッ
トが情報エリアとして利用される。すなわちこのCVR
命令がマイクロコンピュータによって実行された場合、
上記CVRの命令コード(5555)の最上位ビットが
111 I+とされ、16進数の(D555)とされる
。
令のフォーマットが示される。同図に示されるCVR命
令は上記第3実施例と同様に、CVR命令を示すコード
(5555)を含んで成るが、このコードの最上位ビッ
トが情報エリアとして利用される。すなわちこのCVR
命令がマイクロコンピュータによって実行された場合、
上記CVRの命令コード(5555)の最上位ビットが
111 I+とされ、16進数の(D555)とされる
。
ただし、2回目以降のCVR命令フェッチ時には当該最
上位ビットへの書込みサイクルは発生されない。
上位ビットへの書込みサイクルは発生されない。
本実施例におけるCVR命令は、上記第3実施例と同様
に分岐命令の通過パスと分岐パスとの双方に挿入される
ことにより、上記実施例と同様に評価チップ24で実行
され、それぞれ通過、分岐に応じた1ビツト情報により
分岐命令の実行状況の記録が可能とされる。従って本実
施例においても、上記実施例と同様の効果を得ることが
できる。
に分岐命令の通過パスと分岐パスとの双方に挿入される
ことにより、上記実施例と同様に評価チップ24で実行
され、それぞれ通過、分岐に応じた1ビツト情報により
分岐命令の実行状況の記録が可能とされる。従って本実
施例においても、上記実施例と同様の効果を得ることが
できる。
特に本実施例では、カバレージ測定において2回目以降
のCVR命令フェッチ時には情報エリア(命令コードの
最上位ビット)への書込みサイクルが発生されないため
、高速システムのテスト時においてもカバレージ測定に
起因するプログラム実行速度の低下を阻止することがで
きる。
のCVR命令フェッチ時には情報エリア(命令コードの
最上位ビット)への書込みサイクルが発生されないため
、高速システムのテスト時においてもカバレージ測定に
起因するプログラム実行速度の低下を阻止することがで
きる。
以上本発明者によってなされた発明を実施例に基づいて
具体的に説明したが、本発明は上記実施例に限定されず
、その要旨を逸脱しない範囲において種々変更可能であ
る。
具体的に説明したが、本発明は上記実施例に限定されず
、その要旨を逸脱しない範囲において種々変更可能であ
る。
例えば、上記実施例では評価チップ24によって、分岐
命令を含む各種命令を実行するようにしたが、ユーザ実
機に搭載される実チップを使用することもできる。また
、上記実施例ではテスト対象プログラムをユーザ開発装
置10内のRAM 12内に格納するようにしたが、イ
ンサーキットエミュレータ18内の貸出しメモリやその
他の書込み/読出し可能な外部メモリを使用することも
できる。更に上記第1実施例において、カバレージ測定
の簡略化を図るため、分岐条件の種類を記録するための
第3のエリア40cを省略してもよい。
命令を含む各種命令を実行するようにしたが、ユーザ実
機に搭載される実チップを使用することもできる。また
、上記実施例ではテスト対象プログラムをユーザ開発装
置10内のRAM 12内に格納するようにしたが、イ
ンサーキットエミュレータ18内の貸出しメモリやその
他の書込み/読出し可能な外部メモリを使用することも
できる。更に上記第1実施例において、カバレージ測定
の簡略化を図るため、分岐条件の種類を記録するための
第3のエリア40cを省略してもよい。
以上の説明では主として本発明者によってなされた発明
をその背景となった利用分野であるマイクロコンピュー
タ開発システムや仮想記憶システムに適用した場合につ
いて説明したが、本発明はそれに限定されるものではな
く、例えば中、大型の全てのコンピュータシステム及び
その開発システムなどにも広く適用することができる。
をその背景となった利用分野であるマイクロコンピュー
タ開発システムや仮想記憶システムに適用した場合につ
いて説明したが、本発明はそれに限定されるものではな
く、例えば中、大型の全てのコンピュータシステム及び
その開発システムなどにも広く適用することができる。
本発明は少なくともソフトウェアデバッグを必要とする
条件のものに適用することができる。
条件のものに適用することができる。
本願において開示される発明のうち代表的なものによっ
て得られる効果を簡単に説明すれば、下記の通りである
。
て得られる効果を簡単に説明すれば、下記の通りである
。
すなわち、分岐命令コードの特定ビットの状態を変更し
て当該命令コードをカバレージ測定対象として認識可能
とするとともに、当該命令コードに情報エリアを付加し
、若しくは情報エリアが付加されたカバレージ命令を分
岐命令の直後に挿入することにより、当該情報エリアに
、当該分岐命令実行状況を記録させ、当該情報エリアの
記録内容を解析することで適確なカバレージ測定を行う
ことができる。しかも、かかるカバレージ測定方法にお
ける分岐命令実行状況検出は、マイクロコンピュータの
外部に出力される信号を用いるのではなく、マイクロコ
ンピュータに実行状況を書込ませることで可能としてい
るので、マイクロコンピュータが高機能化されている場
合においても、分岐命令の実行状況を直接若しくはカバ
レージ命令の実行状況により間接的に検出することがで
き、ソフトウェアの品質向上に大きく寄与できる。
て当該命令コードをカバレージ測定対象として認識可能
とするとともに、当該命令コードに情報エリアを付加し
、若しくは情報エリアが付加されたカバレージ命令を分
岐命令の直後に挿入することにより、当該情報エリアに
、当該分岐命令実行状況を記録させ、当該情報エリアの
記録内容を解析することで適確なカバレージ測定を行う
ことができる。しかも、かかるカバレージ測定方法にお
ける分岐命令実行状況検出は、マイクロコンピュータの
外部に出力される信号を用いるのではなく、マイクロコ
ンピュータに実行状況を書込ませることで可能としてい
るので、マイクロコンピュータが高機能化されている場
合においても、分岐命令の実行状況を直接若しくはカバ
レージ命令の実行状況により間接的に検出することがで
き、ソフトウェアの品質向上に大きく寄与できる。
更に、上記のように情報エリアが付加された分岐命令若
しくはカバレージ命令がフェッチされた場合に当該情報
エリアに分岐命令実行状況若しくはカバレージ命令の実
行状況を記録可能なマイクロコンピュータによって、上
記のようなカバレージ測定を適確に行うことができる。
しくはカバレージ命令がフェッチされた場合に当該情報
エリアに分岐命令実行状況若しくはカバレージ命令の実
行状況を記録可能なマイクロコンピュータによって、上
記のようなカバレージ測定を適確に行うことができる。
第1図は本発明の第1実施例方法を適用したマイクロコ
ンピュータ開発システムのブロック図、第2図は第1図
に示されるマイクロコンピュータ(評価チップ)の詳細
な構成ブロック図、第3図は分岐命令のフォーマット図
、 第4図は第1図に示されるシステムにおけるRAMの命
令語配置と当該命令の機械語コードとの関係説明図、 第5図はマイクロコンピュータ内の主要レジスタとその
ビット構成との説明図、 第6図は各種分岐命令とそれに対応する分岐条件との説
明図。 第7図は他の実施例システムのブロック図、第8図は他
の実施例方法に係るカバレージ命令のフォーマット説明
図、 第9図は分岐命令を含むプログラムの基本的な流れを示
すフローチャート、 第1O図はカバレージ命令が挿入されたプログラムの基
本的な流れを示すフローチャート、第11図は他の実施
例方法に係るカバレージ命令のフォーマット説明図、 第12図は分岐命令ファイルの説明図、第13図はカバ
レージ解析結果の説明図である。 10・・・ユーザ開発装置、12.51・・・RAM。 13.52・・・ROM、14.53・・・Ilo、1
6゜17.21・・・フロッピーディスク、18・・・
インサーキットエミュレータ、19・・・ホストコンピ
ュータ、20・・・プリンタ、22・・・表示装置、2
3・・・ポンド、24.50・・・マイクロコンピュー
タ、30・・・命令ブリフェッチユニット、31・・・
命令デコードユニット、32・・・制御−1=ソト、3
3・・・実行ユニット、34・・・メモリ管理ユニット
、35・・・入出力制御ユニット、40.61・・・情
報エリア、40a・・・第1のエリア、40b・・・第
2のエリア、40C・・・第3のエリア、54・・・記
憶装置、60・・・命令コード、62・・・通過パス、
63・・・分岐パス、64゜65・・・CVR命令。 5 第 1 図 第 2 図 第 図 第 図 第 図 第 図 第 図
ンピュータ開発システムのブロック図、第2図は第1図
に示されるマイクロコンピュータ(評価チップ)の詳細
な構成ブロック図、第3図は分岐命令のフォーマット図
、 第4図は第1図に示されるシステムにおけるRAMの命
令語配置と当該命令の機械語コードとの関係説明図、 第5図はマイクロコンピュータ内の主要レジスタとその
ビット構成との説明図、 第6図は各種分岐命令とそれに対応する分岐条件との説
明図。 第7図は他の実施例システムのブロック図、第8図は他
の実施例方法に係るカバレージ命令のフォーマット説明
図、 第9図は分岐命令を含むプログラムの基本的な流れを示
すフローチャート、 第1O図はカバレージ命令が挿入されたプログラムの基
本的な流れを示すフローチャート、第11図は他の実施
例方法に係るカバレージ命令のフォーマット説明図、 第12図は分岐命令ファイルの説明図、第13図はカバ
レージ解析結果の説明図である。 10・・・ユーザ開発装置、12.51・・・RAM。 13.52・・・ROM、14.53・・・Ilo、1
6゜17.21・・・フロッピーディスク、18・・・
インサーキットエミュレータ、19・・・ホストコンピ
ュータ、20・・・プリンタ、22・・・表示装置、2
3・・・ポンド、24.50・・・マイクロコンピュー
タ、30・・・命令ブリフェッチユニット、31・・・
命令デコードユニット、32・・・制御−1=ソト、3
3・・・実行ユニット、34・・・メモリ管理ユニット
、35・・・入出力制御ユニット、40.61・・・情
報エリア、40a・・・第1のエリア、40b・・・第
2のエリア、40C・・・第3のエリア、54・・・記
憶装置、60・・・命令コード、62・・・通過パス、
63・・・分岐パス、64゜65・・・CVR命令。 5 第 1 図 第 2 図 第 図 第 図 第 図 第 図 第 図
Claims (1)
- 【特許請求の範囲】 1、分岐命令コードの特定ビットの状態を変更して当該
命令コードをカバレージ測定対象として認識可能とする
とともに、当該命令コードに情報エリアを付加するステ
ップと、この情報エリアが付加された分岐命令を含むプ
ログラムをマイクロコンピュータに実行させ、当該分岐
命令の実行状況を当該情報エリアに記録させるステップ
と、この情報エリアの記録内容に基づいて当該分岐命令
のカバレージ解析を行うステップとを含むカバレージ測
定方法。 2、上記分岐命令の実行状況には、上記分岐命令に従っ
て分岐したか否かの情報が含まれる請求項1記載のカバ
レージ測定方法。 3、上記分岐命令の実行状況には、上記分岐命令に従っ
て分岐したか否かの情報と、分岐条件の種類についての
情報とが含まれる請求項1記載のカバレージ測定方法。 4、分岐命令の分岐パスと通過パスとの双方に、情報エ
リアを備えたカバレージ命令を挿入するステップと、こ
のカバレージ命令が挿入されたプログラムをマイクロコ
ンピュータに実行させ、当該カバレージ命令の実行状況
を上記情報エリアに記録させるステップと、当該情報エ
リアの記録内容に基づいて上記分岐命令のカバレージ解
析を行うステップとを含むカバレージ測定方法。 5、上記分岐命令コードの特定ビットの状態変更及び分
岐命令コードへの情報エリアの付加、又は上記カバレー
ジ命令の挿入は、高級言語で記述されたソースプログラ
ムを機械語に翻訳する段階で行われる請求項1、2、3
又は4記載のカバレージ測定方法。 6、分岐命令コードの特定ビットの状態が変更され且つ
当該命令コードに情報エリアが付加されて成る分岐命令
をフェッチした場合に当該情報エリアへの情報記録制御
信号を生成する命令制御部と、この情報記録制御信号に
従って上記分岐命令の実行状況を当該情報エリアに記録
する実行部とを含むマイクロコンピュータ。 7、情報エリアを含むカバレージ命令をフェッチした場
合に当該情報エリアへの情報記録制御信号を生成する命
令制御部と、この情報記録制御信号に従って、当該命令
の実行状況を上記情報エリアにセットする実行部とを含
むマイクロコンピュータ。
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 true JPH03204044A (ja) | 1991-09-05 |
| JP2915944B2 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) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20140006861A (ko) * | 2011-01-13 | 2014-01-16 | 에이알엠 리미티드 | 처리 장치, 추적 유닛 및 진단 장치 |
| US11822468B2 (en) | 2019-05-24 | 2023-11-21 | Microsoft Technology Licensing, Llc | Executable code branch annotations for objective branch verification |
-
1989
- 1989-12-29 JP JP1342966A patent/JP2915944B2/ja not_active Expired - Fee Related
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20140006861A (ko) * | 2011-01-13 | 2014-01-16 | 에이알엠 리미티드 | 처리 장치, 추적 유닛 및 진단 장치 |
| JP2014507710A (ja) * | 2011-01-13 | 2014-03-27 | アーム・リミテッド | 処理装置、トレースユニット、および診断装置 |
| US10379989B2 (en) | 2011-01-13 | 2019-08-13 | Arm Limited | 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 |
|---|---|
| JP2915944B2 (ja) | 1999-07-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5134701A (en) | Test apparatus performing runtime replacement of program instructions with breakpoint instructions for processor having multiple instruction fetch capabilities | |
| US6321331B1 (en) | Real time debugger interface for embedded systems | |
| US8266608B2 (en) | Post-compile instrumentation of object code for generating execution trace data | |
| US6286132B1 (en) | Debugging support apparatus, a parallel execution information generation device, a computer-readable recording medium storing a debugging support program, and a computer-readable recording medium storing a parallel execution information generation program | |
| US6430741B1 (en) | System and method for data coverage analysis of a computer program | |
| US5142679A (en) | Method and apparatus for collecting execution status data of structured program | |
| JP4190114B2 (ja) | マイクロコンピュータ | |
| US4742466A (en) | System for measuring path coverage represented by the degree of passage of execution paths in a program | |
| US20030033592A1 (en) | Software debugger and software development support system | |
| EP0899661A1 (en) | Compiler supporting sybolic debugging | |
| CN117892661A (zh) | 一种基于risc-v处理器验证的模拟器比对系统 | |
| JPH03188535A (ja) | プログラム・エラー検出方法 | |
| CN114691520B (zh) | 基于处理器调试架构的指令可编程缓冲区设计系统 | |
| CN116340081B (zh) | 一种基于硬件虚拟化的riscv内存访问违例检测方法及装置 | |
| US7110934B2 (en) | Analysis of the performance of a portion of a data processing system | |
| JP2915944B2 (ja) | カバレージ測定方法及びマイクロコンピュータ | |
| CN114443418B (zh) | 一种基于硬件虚拟化的riscv内存溢出漏洞检测方法及装置 | |
| CN116541266A (zh) | 程序的运行方法、装置、设备及介质 | |
| CN112905396A (zh) | 信息显示方法、装置及设备、存储介质 | |
| JP2002014847A (ja) | プログラム検査装置、プログラム検査方法及び検査を行うためのプログラムを格納した記録媒体 | |
| CN116340082B (zh) | 一种基于硬件虚拟化的riscv应用程序动态分析方法及装置 | |
| KR100273280B1 (ko) | 디버깅 로직 제어 회로 | |
| JP3165105B2 (ja) | プログラムのトレーサ、コンパイラ及びリンカー | |
| JP3068578B2 (ja) | インサーキットエミュレータおよび飽和演算処理方法 | |
| CN122021501A (zh) | 一种处理器调试方法、装置、设备及计算机可读存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |