JP2731692B2 - デバッグ装置 - Google Patents
デバッグ装置Info
- Publication number
- JP2731692B2 JP2731692B2 JP5102552A JP10255293A JP2731692B2 JP 2731692 B2 JP2731692 B2 JP 2731692B2 JP 5102552 A JP5102552 A JP 5102552A JP 10255293 A JP10255293 A JP 10255293A JP 2731692 B2 JP2731692 B2 JP 2731692B2
- Authority
- JP
- Japan
- Prior art keywords
- microprocessor
- instruction
- memory
- cache
- break
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
- G06F11/364—Software debugging by tracing the execution of the program tracing values on a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
【0001】
【産業上の利用分野】本発明は、キャッシュメモリを内
蔵するマイクロプロセッサのデバッグ装置、特に任意の
アドレスに対するブレーク処理を実行するデバッグ装置
に関する。
蔵するマイクロプロセッサのデバッグ装置、特に任意の
アドレスに対するブレーク処理を実行するデバッグ装置
に関する。
【0002】
【従来の技術】最近のマイクロプロセッサでは、メモリ
アクセスの高速化のために、キャッシュメモリを内蔵す
るものが増えている。しかし、マイクロプロセッサが高
性能化する半面、このようなマイクロプロセッサを使用
したシステムのデバッグ作業は、困難なものになってき
ている。このようなマイクロプロセッサでは、メモリア
クセスがキャッシュメモリにミスヒットした場合にしか
出力されないため、メモリアクセスをトレースして現在
のプログラムの実行状態を監視することができなくなっ
ているからである。
アクセスの高速化のために、キャッシュメモリを内蔵す
るものが増えている。しかし、マイクロプロセッサが高
性能化する半面、このようなマイクロプロセッサを使用
したシステムのデバッグ作業は、困難なものになってき
ている。このようなマイクロプロセッサでは、メモリア
クセスがキャッシュメモリにミスヒットした場合にしか
出力されないため、メモリアクセスをトレースして現在
のプログラムの実行状態を監視することができなくなっ
ているからである。
【0003】このようなマイクロプロセッサを使用する
システムのデバッグを行う場合には、デバッグ装置を用
いる。デバッグ装置では、プログラムの実行過程だけを
トレースする場合には、マイクロプロセッサのキャッシ
ュメモリを不活性にし(この状態をキャッシュ・オフ状
態と呼ぶ)、マイクロプロセッサの必要とするアクセス
を全て外部に出力させることにより実現させる。但し、
このようなトレース方法は、マイクロプロセッサがキャ
ッシュメモリを使用する通常の状態とは実行時間に大き
な差がでてしまうため、リアルタイム性が要求される装
置の場合には、あまり有効なデバッグ方法とは言えな
い。デバッグ装置を使用して、リアルタイム性のあるデ
バッグを行うためには、ブレーク機能を使用する。ブレ
ーク機能は、プログラムの任意のアドレスでマイクロプ
ロセッサに分岐を実行させ、分岐先にユーザが知りたい
マイクロプロセッサの内部状態やプログラムの途中結果
を出力させるプログラムを用意しておき、予期した通り
の処理が実行されたかを観察するための機能である。
システムのデバッグを行う場合には、デバッグ装置を用
いる。デバッグ装置では、プログラムの実行過程だけを
トレースする場合には、マイクロプロセッサのキャッシ
ュメモリを不活性にし(この状態をキャッシュ・オフ状
態と呼ぶ)、マイクロプロセッサの必要とするアクセス
を全て外部に出力させることにより実現させる。但し、
このようなトレース方法は、マイクロプロセッサがキャ
ッシュメモリを使用する通常の状態とは実行時間に大き
な差がでてしまうため、リアルタイム性が要求される装
置の場合には、あまり有効なデバッグ方法とは言えな
い。デバッグ装置を使用して、リアルタイム性のあるデ
バッグを行うためには、ブレーク機能を使用する。ブレ
ーク機能は、プログラムの任意のアドレスでマイクロプ
ロセッサに分岐を実行させ、分岐先にユーザが知りたい
マイクロプロセッサの内部状態やプログラムの途中結果
を出力させるプログラムを用意しておき、予期した通り
の処理が実行されたかを観察するための機能である。
【0004】従来のブレーク機能の実現方法について、
図6を使用して説明する。ここでは、特に最近の従来例
として、『特開平03−078038(インサーキット
エミュレータ)』について説明する。
図6を使用して説明する。ここでは、特に最近の従来例
として、『特開平03−078038(インサーキット
エミュレータ)』について説明する。
【0005】図6は、従来のブレーク装置の構成図であ
る。601はキャッシュメモリを内蔵するマイクロプロ
セッサ、602はユーザのシステムで用意されたユーザ
メモリ、603はデバッグ装置を使用するために必要な
ユーザメモリ上のフロントエンドモニタ部(デバッグ装
置のユーザはデバッグ装置用にこの領域を用意する必要
がある)、604はユーザメモリとは別にブレーク装置
上に存在するバックグランドモニタ部、605はフロン
トエンドモニタの操作によってユーザ空間からバックグ
ランドモニタ部を分離するメモリ空間切り替え回路、1
04はユーザがブレークポイントを設定するブレークポ
イントレジスタ、106は比較器、114は比較器の比
較結果が一致したことを通知するTRPRQ信号、10
8はTRPRQ114がアクティブになった場合にマイ
クロプロセッサの読み込む命令コードを特定の分岐命令
(ブレーク命令と呼ぶ)にすり替える命令すり替え回路
である。
る。601はキャッシュメモリを内蔵するマイクロプロ
セッサ、602はユーザのシステムで用意されたユーザ
メモリ、603はデバッグ装置を使用するために必要な
ユーザメモリ上のフロントエンドモニタ部(デバッグ装
置のユーザはデバッグ装置用にこの領域を用意する必要
がある)、604はユーザメモリとは別にブレーク装置
上に存在するバックグランドモニタ部、605はフロン
トエンドモニタの操作によってユーザ空間からバックグ
ランドモニタ部を分離するメモリ空間切り替え回路、1
04はユーザがブレークポイントを設定するブレークポ
イントレジスタ、106は比較器、114は比較器の比
較結果が一致したことを通知するTRPRQ信号、10
8はTRPRQ114がアクティブになった場合にマイ
クロプロセッサの読み込む命令コードを特定の分岐命令
(ブレーク命令と呼ぶ)にすり替える命令すり替え回路
である。
【0006】ブレーク機能を使用する場合には、ユーザ
はデバッグを実行する前に、ブレークポイントレジスタ
104に割り込みを発生させるアドレスを設定する。比
較器106は、マイクロプロセッサ601の出力するア
ドレスバス111上の内容と、ブレークポイントレジス
タ104の内容を比較して、一致した場合にはTRPR
Q114をアクティブにする。TRPRQ114がアク
ティブになると、命令すり替え回路103は、マイクロ
プロセッサがその時点で読み込む命令コードをブレーク
命令に置き換える。
はデバッグを実行する前に、ブレークポイントレジスタ
104に割り込みを発生させるアドレスを設定する。比
較器106は、マイクロプロセッサ601の出力するア
ドレスバス111上の内容と、ブレークポイントレジス
タ104の内容を比較して、一致した場合にはTRPR
Q114をアクティブにする。TRPRQ114がアク
ティブになると、命令すり替え回路103は、マイクロ
プロセッサがその時点で読み込む命令コードをブレーク
命令に置き換える。
【0007】その後の処理は、図7を参照して説明す
る。
る。
【0008】ここでは、a番地にブレークポイントが設
定されていて、a番地のアクセスでブレーク命令が読み
込まれるものとする。
定されていて、a番地のアクセスでブレーク命令が読み
込まれるものとする。
【0009】マイクロプロセッサはブレーク命令を実行
すると、フロントエンドモニタの先頭に分岐する。フロ
ントエンドモニタとは、デバッグ装置が使用するユーザ
メモリ上の空間である。フロントエンドモニタでは、キ
ャッシュメモリをキャッシュ・オフの状態に変更し、ブ
レークの要因分析を行う。要因分析の結果、確かにトラ
ップすべきであると判断した場合には、メモリ空間切り
替え回路605に指示してそれ以降のアクセスではユー
ザメモリをアクセスせずバックグランドモニタ部604
をアクセスさせる。バックグランドモニタはユーザ空間
とは独立なデバッグ装置上のメモリ空間である。バック
グランドモニタでは内部レジスタのダンプ等の処理を行
った後、最後にRETI命令を実行して、ブレーク命令
に置き変る前の命令(再開命令)から実行を再開する。
再開命令だけはキャッシュオフで動作するが、それ以降
は再度キャッシュオンの状態に戻す。これらのキャッシ
ュの制御はフロントエンドモニタ部によって制御する。
すると、フロントエンドモニタの先頭に分岐する。フロ
ントエンドモニタとは、デバッグ装置が使用するユーザ
メモリ上の空間である。フロントエンドモニタでは、キ
ャッシュメモリをキャッシュ・オフの状態に変更し、ブ
レークの要因分析を行う。要因分析の結果、確かにトラ
ップすべきであると判断した場合には、メモリ空間切り
替え回路605に指示してそれ以降のアクセスではユー
ザメモリをアクセスせずバックグランドモニタ部604
をアクセスさせる。バックグランドモニタはユーザ空間
とは独立なデバッグ装置上のメモリ空間である。バック
グランドモニタでは内部レジスタのダンプ等の処理を行
った後、最後にRETI命令を実行して、ブレーク命令
に置き変る前の命令(再開命令)から実行を再開する。
再開命令だけはキャッシュオフで動作するが、それ以降
は再度キャッシュオンの状態に戻す。これらのキャッシ
ュの制御はフロントエンドモニタ部によって制御する。
【0010】
【発明が解決しようとする課題】従来のデバッグ装置で
は、キャッシュメモリ内蔵のマイクロプロセッサに対し
てブレーク機能を実現するために、フロントエンドモニ
タを動作させることが必要であった。フロントエンドモ
ニタが必要な理由を以下(〜)に示す。
は、キャッシュメモリ内蔵のマイクロプロセッサに対し
てブレーク機能を実現するために、フロントエンドモニ
タを動作させることが必要であった。フロントエンドモ
ニタが必要な理由を以下(〜)に示す。
【0011】バックグランドモニタへの切り替えを行
うための機能がないため。
うための機能がないため。
【0012】キャッシュオフへの切り替えをモニタプ
ログラムで制御するため。この処理をバックグランドモ
ニタで実行した場合には、マイクロプロセッサの内部で
はフォアグランドモニタとバックグランドモニタの区別
がないため、バックグランドモニタ実行中にキャッシュ
メモリに登録された命令が、ユーザ空間実行中にもヒッ
トする場合があり、誤動作が発生する。フォアグランド
モニタで実行すれば、それはユーザメモリ上の空間であ
るため、後にキャッシュメモリがヒットしても誤動作は
発生しない。キャッシュ内に登録されるブレーク命令
を消去する手段がないため。このため、ブレーク処理か
らの再開命令はキャッシュオフで動作させ、先にキャッ
シュ内に登録されたブレーク命令を無視させている。し
かし、再度先に設定されていたブレークポイントと同じ
アドレスをアクセスした場合に、キャッシュメモリにヒ
ットしてしまうと何度もブレーク処理を繰り返しプログ
ラム終了までブレークポイントを解除できなくなってし
まう。このため、従来はフロントエンドモニタ部で本当
にブレークしてもよいかどうかを判定する必要があっ
た。
ログラムで制御するため。この処理をバックグランドモ
ニタで実行した場合には、マイクロプロセッサの内部で
はフォアグランドモニタとバックグランドモニタの区別
がないため、バックグランドモニタ実行中にキャッシュ
メモリに登録された命令が、ユーザ空間実行中にもヒッ
トする場合があり、誤動作が発生する。フォアグランド
モニタで実行すれば、それはユーザメモリ上の空間であ
るため、後にキャッシュメモリがヒットしても誤動作は
発生しない。キャッシュ内に登録されるブレーク命令
を消去する手段がないため。このため、ブレーク処理か
らの再開命令はキャッシュオフで動作させ、先にキャッ
シュ内に登録されたブレーク命令を無視させている。し
かし、再度先に設定されていたブレークポイントと同じ
アドレスをアクセスした場合に、キャッシュメモリにヒ
ットしてしまうと何度もブレーク処理を繰り返しプログ
ラム終了までブレークポイントを解除できなくなってし
まう。このため、従来はフロントエンドモニタ部で本当
にブレークしてもよいかどうかを判定する必要があっ
た。
【0013】このような理由により、従来のデバッグ装
置では、フロントエンドモニタを使用していた。しか
し、フロントエンドモニタはユーザシステムの資源(ユ
ーザ装置上のアドレスバス等の制御信号、ユーザメモリ
等)を使用するため、ユーザの使用するメモリ空間(特
にプログラムの使用するアドレスや容量)に制限がかせ
られてしまうという欠点があった。
置では、フロントエンドモニタを使用していた。しか
し、フロントエンドモニタはユーザシステムの資源(ユ
ーザ装置上のアドレスバス等の制御信号、ユーザメモリ
等)を使用するため、ユーザの使用するメモリ空間(特
にプログラムの使用するアドレスや容量)に制限がかせ
られてしまうという欠点があった。
【0014】また、ユーザが開発中のシステムをデバッ
グするのに、デバッグ装置自身がユーザ装置を使用する
ことにより、ユーザシステムで誤動作が発生した場合に
は、モニタプログラム自身も誤動作してしまうため、デ
バッグ装置の本来の機能が発揮できない場合もある。
グするのに、デバッグ装置自身がユーザ装置を使用する
ことにより、ユーザシステムで誤動作が発生した場合に
は、モニタプログラム自身も誤動作してしまうため、デ
バッグ装置の本来の機能が発揮できない場合もある。
【0015】更に、上記に述べたように、キャッシュ
メモリ内に残るブレーク命令を消去する手段がないた
め、ブレーク処理を行わない場合にも不必要にフロント
エンドモニタが動作してしまい、ユーザプログラムの実
行にリアルタイム性がなくなるという欠点も有してい
た。
メモリ内に残るブレーク命令を消去する手段がないた
め、ブレーク処理を行わない場合にも不必要にフロント
エンドモニタが動作してしまい、ユーザプログラムの実
行にリアルタイム性がなくなるという欠点も有してい
た。
【0016】
【課題を解決するための手段】上述した問題点を解決す
るため、本発明のデバッグ装置では、キャッシュメモリ
を内蔵するマイクロプロセッサのデバッグ装置におい
て、前記マイクロプロセッサは、内蔵するキャッシュメ
モリの消去機能と、マイクロプロセッサ外部から前記キ
ャッシュメモリの消去を指示するキャッシュクリア端子
と、特定の分岐命令を実行したことをマイクロプロセッ
サ外部に通知するブレークアクノリッジ端子を有し、マ
イクロプロセッサのメモリアクセスをトレースし、特定
番地でマイクロプロセッサが読み込む命令を前記分岐命
令にすり替える命令すり替え回路と、マイクロプロセッ
サに対してユーザ空間とは別のデバッグ装置特有のメモ
リ空間を供給するバックグランドモニタ部を有し、命令
をすり替えた後で前記ブレークアクノリッジ端子がアク
ティブとなった後はバックグランドモニタ部のプログラ
ムを実行し、バックグランドモニタ部のプログラムの開
始時と終了時に前記マイクロプロセッサのキャッシュク
リア端子を介して、キャッシュメモリの消去を指示する
ことを特長とする。
るため、本発明のデバッグ装置では、キャッシュメモリ
を内蔵するマイクロプロセッサのデバッグ装置におい
て、前記マイクロプロセッサは、内蔵するキャッシュメ
モリの消去機能と、マイクロプロセッサ外部から前記キ
ャッシュメモリの消去を指示するキャッシュクリア端子
と、特定の分岐命令を実行したことをマイクロプロセッ
サ外部に通知するブレークアクノリッジ端子を有し、マ
イクロプロセッサのメモリアクセスをトレースし、特定
番地でマイクロプロセッサが読み込む命令を前記分岐命
令にすり替える命令すり替え回路と、マイクロプロセッ
サに対してユーザ空間とは別のデバッグ装置特有のメモ
リ空間を供給するバックグランドモニタ部を有し、命令
をすり替えた後で前記ブレークアクノリッジ端子がアク
ティブとなった後はバックグランドモニタ部のプログラ
ムを実行し、バックグランドモニタ部のプログラムの開
始時と終了時に前記マイクロプロセッサのキャッシュク
リア端子を介して、キャッシュメモリの消去を指示する
ことを特長とする。
【0017】
【実施例】次に本発明について図面を参照して説明す
る。図1は本発明の一実施例を示すブロック図である。
図1を参照すると、本発明の第1の実施例は、キャッシ
ュメモリを内蔵するマイクロプロセッサ101と、ユー
ザメモリ102、命令すり替え回路103、ブレークポ
イントレジスタ104、バックグランドモニタ部10
5、ブレークポイントレジスタ104の内容とアドレス
バス111の内容を比較する比較器106と、マイクロ
プロセッサ101がブレーク命令を実行したことを外部
に通知する信号TRPAK112、TRPAK112が
アクティブになった後マイクロプロセッサからのアクセ
スをユーザメモリ102からバックグランドモニタ部1
05へと切り替えるメモリ空間切り替え回路107と、
マイクロプロセッサの内部キャッシュを消去することを
バックグランドモニタ部105から指示するための信号
CHECLR113から構成される。更に、マイクロプ
ロセッサ101の内部構成の一実施例を図2を使用して
説明する。図2を参照すると、マイクロプロセッサ10
1は、実行ユニット201と、RAM部202、バリッ
ド部203、デコーダ部204と、出力端子であるアド
レスバス111とTRPAK112、入出力端子である
データバス108、入力端子であるCHECLR113
から構成される。特にキャッシュメモリはRAM部20
2とバリッド部207とデコーダ部208から構成され
る。
る。図1は本発明の一実施例を示すブロック図である。
図1を参照すると、本発明の第1の実施例は、キャッシ
ュメモリを内蔵するマイクロプロセッサ101と、ユー
ザメモリ102、命令すり替え回路103、ブレークポ
イントレジスタ104、バックグランドモニタ部10
5、ブレークポイントレジスタ104の内容とアドレス
バス111の内容を比較する比較器106と、マイクロ
プロセッサ101がブレーク命令を実行したことを外部
に通知する信号TRPAK112、TRPAK112が
アクティブになった後マイクロプロセッサからのアクセ
スをユーザメモリ102からバックグランドモニタ部1
05へと切り替えるメモリ空間切り替え回路107と、
マイクロプロセッサの内部キャッシュを消去することを
バックグランドモニタ部105から指示するための信号
CHECLR113から構成される。更に、マイクロプ
ロセッサ101の内部構成の一実施例を図2を使用して
説明する。図2を参照すると、マイクロプロセッサ10
1は、実行ユニット201と、RAM部202、バリッ
ド部203、デコーダ部204と、出力端子であるアド
レスバス111とTRPAK112、入出力端子である
データバス108、入力端子であるCHECLR113
から構成される。特にキャッシュメモリはRAM部20
2とバリッド部207とデコーダ部208から構成され
る。
【0018】次に、図1及び図2を参照して、本実施例
の動作について説明する。
の動作について説明する。
【0019】ブレーク機能を使用する場合には、ユーザ
はデバッグを実行する前に、ブレークポイントレジスタ
104に割り込みを発生させるアドレスを設定してプロ
グラムを実行する。比較器106は常にブレークポイン
トレジスタ104とアドレスバス111の内容を比較し
て、一致した場合にはTRPRQ114によって命令す
り替え回路103に通知する。命令すり替え回路103
は、TRPRQ114がアクティブになると、ユーザメ
モリ102から読み込んだ命令コードに替ってブレーク
命令(分岐命令でも良い)をデータバス1、108に出
力する。これによって、マイクロプロセッサ101内の
RAM部202にブレーク命令が書込まれる。同時に、
キャッシュメモリ内に書込んだ情報が有効であることを
示すために、バリッド部203の対応するエントリがセ
ットされる。実行ユニット201が命令を実行する場合
には、キャッシュメモリを索引し、キャッシュメモリが
ヒットする場合にはRAM部202から命令コードを読
み込む。実行ユニット201が命令を実行し、それがブ
レーク命令であった場合には、TRPAK112をアク
ティブにする。TRPAK112がアクティブになると
バリッド部203がクリアされることにより、キャッシ
ュメモリがクリアされることになる。この時点でキャッ
シュメモリをクリアするのは、この後、バックグランド
モニタに切り替わった時、ユーザ空間で既にキャッシュ
メモリに登録された命令コードが使用されると誤動作が
発生するからである。このようなキャッシュメモリのク
リアは、CHECLR113によって、マイクロプロセ
ッサ外部からも指示が可能となっている。
はデバッグを実行する前に、ブレークポイントレジスタ
104に割り込みを発生させるアドレスを設定してプロ
グラムを実行する。比較器106は常にブレークポイン
トレジスタ104とアドレスバス111の内容を比較し
て、一致した場合にはTRPRQ114によって命令す
り替え回路103に通知する。命令すり替え回路103
は、TRPRQ114がアクティブになると、ユーザメ
モリ102から読み込んだ命令コードに替ってブレーク
命令(分岐命令でも良い)をデータバス1、108に出
力する。これによって、マイクロプロセッサ101内の
RAM部202にブレーク命令が書込まれる。同時に、
キャッシュメモリ内に書込んだ情報が有効であることを
示すために、バリッド部203の対応するエントリがセ
ットされる。実行ユニット201が命令を実行する場合
には、キャッシュメモリを索引し、キャッシュメモリが
ヒットする場合にはRAM部202から命令コードを読
み込む。実行ユニット201が命令を実行し、それがブ
レーク命令であった場合には、TRPAK112をアク
ティブにする。TRPAK112がアクティブになると
バリッド部203がクリアされることにより、キャッシ
ュメモリがクリアされることになる。この時点でキャッ
シュメモリをクリアするのは、この後、バックグランド
モニタに切り替わった時、ユーザ空間で既にキャッシュ
メモリに登録された命令コードが使用されると誤動作が
発生するからである。このようなキャッシュメモリのク
リアは、CHECLR113によって、マイクロプロセ
ッサ外部からも指示が可能となっている。
【0020】その後、実行ユニットは特定アドレスへ分
岐して、分岐先アドレスをアドレスバス111へ出力す
る。メモリ空間切り替え回路107はTRPAK111
によってブレーク命令が実行されたことを検出すると、
それ以降のアクセスはユーザメモリをアクセスせずバッ
クグランドモニタ部105をアクセスするよう動作す
る。バックグランドモニタ部105には、マイクロプロ
セッサの実行状態をメモリ上に出力するプログラムが書
かれており、以降マイクロプロセッサはバックグランド
モニタ部105のプログラムを実行する。それ以降の動
作については、図3のタイミング図を使用して説明す
る。バックグランドモニタ部では、ブレーク処理での要
因分析等の処理を行った後、キャッシュのクリアを指示
し、最後にRETI命令を実行してユーザプログラムを
再開する。バックグランドモニタ部からのキャッシュク
リアの指示はCHECLR113によって、マイクロプ
ロセッサに通知される。これによって、先にキャッシュ
メモリに登録されたブレーク命令を消去することがで
き、一連のブレーク処理を終了する。
岐して、分岐先アドレスをアドレスバス111へ出力す
る。メモリ空間切り替え回路107はTRPAK111
によってブレーク命令が実行されたことを検出すると、
それ以降のアクセスはユーザメモリをアクセスせずバッ
クグランドモニタ部105をアクセスするよう動作す
る。バックグランドモニタ部105には、マイクロプロ
セッサの実行状態をメモリ上に出力するプログラムが書
かれており、以降マイクロプロセッサはバックグランド
モニタ部105のプログラムを実行する。それ以降の動
作については、図3のタイミング図を使用して説明す
る。バックグランドモニタ部では、ブレーク処理での要
因分析等の処理を行った後、キャッシュのクリアを指示
し、最後にRETI命令を実行してユーザプログラムを
再開する。バックグランドモニタ部からのキャッシュク
リアの指示はCHECLR113によって、マイクロプ
ロセッサに通知される。これによって、先にキャッシュ
メモリに登録されたブレーク命令を消去することがで
き、一連のブレーク処理を終了する。
【0021】このように、本実施例では、フロントエン
ドモニタを使用せずバックグランドモニタのみ使用す
る。また、従来バックグランドモニタの中で操作してい
たキャッシュオフへの遷移は行わず、バックグランドモ
ニタの開始時と終了時にキャッシュをクリアすること
で、常にキャッシュオンの状態でブレーク処理を実行す
ることが実現できた。
ドモニタを使用せずバックグランドモニタのみ使用す
る。また、従来バックグランドモニタの中で操作してい
たキャッシュオフへの遷移は行わず、バックグランドモ
ニタの開始時と終了時にキャッシュをクリアすること
で、常にキャッシュオンの状態でブレーク処理を実行す
ることが実現できた。
【0022】次に、図4,図5を参照して本発明の第2
の実施例を説明する。
の実施例を説明する。
【0023】図4は、第1の実施例の命令すり替え回路
103がマイクロプロセッサ401に内蔵され、比較器
106からの出力であるTRPRQ114がマイクロプ
ロセッサ401の入力端子に接続される以外は同一の動
作をするため、それ以外の説明は省略する。図5にマイ
クロプロセッサ401の内部ブロック図を示す。501
はTRPRQ114が接続される入力端子、502は命
令すり替え回路をマルチプレクサで構成したものであ
る。マルチプレクサ502はTRPRQ501がアクテ
ィブになった場合にのみブレーク命令を選択し、それ以
外の場合にはデータバス402を選択する。全体の動作
は、実施例1と同一であるため省略する。
103がマイクロプロセッサ401に内蔵され、比較器
106からの出力であるTRPRQ114がマイクロプ
ロセッサ401の入力端子に接続される以外は同一の動
作をするため、それ以外の説明は省略する。図5にマイ
クロプロセッサ401の内部ブロック図を示す。501
はTRPRQ114が接続される入力端子、502は命
令すり替え回路をマルチプレクサで構成したものであ
る。マルチプレクサ502はTRPRQ501がアクテ
ィブになった場合にのみブレーク命令を選択し、それ以
外の場合にはデータバス402を選択する。全体の動作
は、実施例1と同一であるため省略する。
【0024】
【発明の効果】以上説明したように、キャッシュメモリ
を内蔵するマイクロプロセッサのデバッグ装置におい
て、前記マイクロプロセッサは、内蔵するキャッシュメ
モリの消去機能と、マイクロプロセッサ外部から前記キ
ャッシュメモリの消去を指示するキャッシュクリア端子
と、特定の分岐命令を実行したことをマイクロプロセッ
サ外部に通知するブレークアクノリッジ端子を有し、マ
イクロプロセッサのメモリアクセスをトレースし、特定
番地でマイクロプロセッサが読み込む命令を前記分岐命
令にすり替える命令すり替え回路と、マイクロプロセッ
サに対してユーザ空間とは別のデバッグ装置特有のメモ
リ空間を供給するバックグランドモニタ部を有し、命令
をすり替えた後で前記ブレークアクノリッジ端子がアク
ティブとなった後はバックグランドモニタ部のプログラ
ムを実行し、バックグランドモニタ部のプログラムの開
始時と終了時に前記マイクロプロセッサのキャッシュク
リア端子を介して、キャッシュメモリの消去を指示する
よう構成したことにより、フロントエンドモニタを使用
せずバックグランドモニタでしか処理しないためにユー
ザの使用するメモリ空間(特にプログラムの使用するア
ドレスや容量)に一切制限を与えずにいかなるユーザシ
ステムにも使用できるという効果を有する。また、バッ
クグランドモニタはデバッグ装置内の資源しか使用しな
いため、ユーザが開発中のシステムが誤動作するような
状況でも、モニタプログラム自身は誤動作しないため、
有効なプログラムデバッグが可能となった。
を内蔵するマイクロプロセッサのデバッグ装置におい
て、前記マイクロプロセッサは、内蔵するキャッシュメ
モリの消去機能と、マイクロプロセッサ外部から前記キ
ャッシュメモリの消去を指示するキャッシュクリア端子
と、特定の分岐命令を実行したことをマイクロプロセッ
サ外部に通知するブレークアクノリッジ端子を有し、マ
イクロプロセッサのメモリアクセスをトレースし、特定
番地でマイクロプロセッサが読み込む命令を前記分岐命
令にすり替える命令すり替え回路と、マイクロプロセッ
サに対してユーザ空間とは別のデバッグ装置特有のメモ
リ空間を供給するバックグランドモニタ部を有し、命令
をすり替えた後で前記ブレークアクノリッジ端子がアク
ティブとなった後はバックグランドモニタ部のプログラ
ムを実行し、バックグランドモニタ部のプログラムの開
始時と終了時に前記マイクロプロセッサのキャッシュク
リア端子を介して、キャッシュメモリの消去を指示する
よう構成したことにより、フロントエンドモニタを使用
せずバックグランドモニタでしか処理しないためにユー
ザの使用するメモリ空間(特にプログラムの使用するア
ドレスや容量)に一切制限を与えずにいかなるユーザシ
ステムにも使用できるという効果を有する。また、バッ
クグランドモニタはデバッグ装置内の資源しか使用しな
いため、ユーザが開発中のシステムが誤動作するような
状況でも、モニタプログラム自身は誤動作しないため、
有効なプログラムデバッグが可能となった。
【0025】更に、常にキャッシュオンの状態でマイク
ロプロセッサを動作させることが可能であるため、リア
ルタイム性のあるユーザプログラムの実行が可能となっ
た。
ロプロセッサを動作させることが可能であるため、リア
ルタイム性のあるユーザプログラムの実行が可能となっ
た。
【図1】本発明を実施した第1の実施例のブロック図。
【図2】図1のマイクロプロセッサ101の内部構成を
示す内部ブロック図。
示す内部ブロック図。
【図3】本発明の動作を表すタイミング図。
【図4】本発明を実施した第2の実施例のブロック図。
【図5】図4のマイクロプロセッサ401の内部構成を
示す内部ブロック図。
示す内部ブロック図。
【図6】従来のデバッグ装置のブロック図。
【図7】従来のデバッグ装置の動作を表すタイミング
図。
図。
101 マイクロプロセッサ 102 ユーザメモリ(メモリ装置又は主記憶でもよ
い) 103 命令すり替え回路 104 ブレークポイントレジスタ 105 バックグランドモニタ部 106 比較器 107 メモリ空間切り替え回路 108 データバス1、マイクロプロセッサに接続す
るデータバス 109 データバス2 110 ユーザ空間へのアドレスバス 111 アドレスバス、マイクロプロセッサに接続す
るアドレスバス 112 TRPAK、トラップアクノリッジ 113 CHECLR、キャッシュクリア 201 命令実行ユニット 202 RAM部、キャッシュメモリの一要素 203 バリッド部、キャッシュメモリの一要素 204 デコーダ部、実行ユニットの出力するアドレ
スを入力しキャッシュメモリの索引するエントリを決定
する。 401 マイクロプロセッサ 402 データバス1 501 TRPRQ、入力端子 502 命令すり替え回路、又はマルチプレクサ 601 従来のマイクロプロセッサ 602 従来のデバッグ装置を使用するユーザメモリ 603 フロントエンドモニタ部、ユーザメモリ60
2内を使用する 604 従来のバックグランドモニタ部 605 従来のメモリ空間切り替え回路
い) 103 命令すり替え回路 104 ブレークポイントレジスタ 105 バックグランドモニタ部 106 比較器 107 メモリ空間切り替え回路 108 データバス1、マイクロプロセッサに接続す
るデータバス 109 データバス2 110 ユーザ空間へのアドレスバス 111 アドレスバス、マイクロプロセッサに接続す
るアドレスバス 112 TRPAK、トラップアクノリッジ 113 CHECLR、キャッシュクリア 201 命令実行ユニット 202 RAM部、キャッシュメモリの一要素 203 バリッド部、キャッシュメモリの一要素 204 デコーダ部、実行ユニットの出力するアドレ
スを入力しキャッシュメモリの索引するエントリを決定
する。 401 マイクロプロセッサ 402 データバス1 501 TRPRQ、入力端子 502 命令すり替え回路、又はマルチプレクサ 601 従来のマイクロプロセッサ 602 従来のデバッグ装置を使用するユーザメモリ 603 フロントエンドモニタ部、ユーザメモリ60
2内を使用する 604 従来のバックグランドモニタ部 605 従来のメモリ空間切り替え回路
Claims (1)
- 【請求項1】 キャッシュメモリを内蔵するマイクロプ
ロセッサのデバッグ装置において、前記マイクロプロセ
ッサは、内蔵するキャッシュメモリの消去機能と、マイ
クロプロセッサ外部から前記キャッシュメモリの消去を
指示するキャッシュクリア端子と、特定の分岐命令を実
行したことをマイクロプロセッサ外部に通知するブレー
クアクノリッジ端子を有し、マイクロプロセッサのメモ
リアクセスをトレースし、特定番地でマイクロプロセッ
サが読み込む命令を前記分岐命令にすり替える命令すり
替え回路と、マイクロプロセッサに対してユーザ空間と
は別のデバッグ装置特有のメモリ空間を供給するバック
グランドモニタ部を有し、命令をすり替えた後で前記ブ
レークアクノリッジ端子がアクティブとなった後はバッ
クグランドモニタ部のプログラムを実行し、バックグラ
ンドモニタ部のプログラムの開始時と終了時に前記マイ
クロプロセッサのキャッシュクリア端子を介して、キャ
ッシュメモリの消去を指示することを特長とするデバッ
グ装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5102552A JP2731692B2 (ja) | 1993-04-28 | 1993-04-28 | デバッグ装置 |
US08/234,566 US5455936A (en) | 1993-04-28 | 1994-04-28 | Debugger operable with only background monitor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5102552A JP2731692B2 (ja) | 1993-04-28 | 1993-04-28 | デバッグ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06314213A JPH06314213A (ja) | 1994-11-08 |
JP2731692B2 true JP2731692B2 (ja) | 1998-03-25 |
Family
ID=14330412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5102552A Expired - Fee Related JP2731692B2 (ja) | 1993-04-28 | 1993-04-28 | デバッグ装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5455936A (ja) |
JP (1) | JP2731692B2 (ja) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2513417B2 (ja) * | 1993-07-05 | 1996-07-03 | 日本電気株式会社 | 情報処理装置 |
JPH0744419A (ja) * | 1993-08-03 | 1995-02-14 | Nec Ic Microcomput Syst Ltd | マイコン開発支援装置 |
US5596713A (en) * | 1993-12-08 | 1997-01-21 | Zenith Data Systems Corporation | Method to prevent data loss in an electrically erasable read only memory |
JP2927180B2 (ja) * | 1994-06-22 | 1999-07-28 | 株式会社日立製作所 | 情報処理プログラムのデバッグ方法およびそのためのデバッガ |
US5964893A (en) * | 1995-08-30 | 1999-10-12 | Motorola, Inc. | Data processing system for performing a trace function and method therefor |
US5862370A (en) * | 1995-09-27 | 1999-01-19 | Vlsi Technology, Inc. | Data processor system with instruction substitution filter for deimplementing instructions |
US5758061A (en) * | 1995-12-15 | 1998-05-26 | Plum; Thomas S. | Computer software testing method and apparatus |
US5764884A (en) * | 1996-10-31 | 1998-06-09 | International Business Machines Corp. | Method and apparatus for improved instruction counting schemes |
US5983017A (en) * | 1996-11-12 | 1999-11-09 | Lsi Logic Corporation | Virtual monitor debugging method and apparatus |
JP3356007B2 (ja) * | 1997-06-27 | 2002-12-09 | 日本電気株式会社 | グラフィックスlsi |
US6557119B1 (en) | 1999-10-01 | 2003-04-29 | Stmicroelectronics Limited | Microcomputer debug architecture and method |
US6601189B1 (en) | 1999-10-01 | 2003-07-29 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US6567932B2 (en) | 1999-10-01 | 2003-05-20 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US6590907B1 (en) | 1999-10-01 | 2003-07-08 | Stmicroelectronics Ltd. | Integrated circuit with additional ports |
US6408381B1 (en) | 1999-10-01 | 2002-06-18 | Hitachi, Ltd. | Mechanism for fast access to control space in a pipeline processor |
US6665816B1 (en) | 1999-10-01 | 2003-12-16 | Stmicroelectronics Limited | Data shift register |
US6629207B1 (en) | 1999-10-01 | 2003-09-30 | Hitachi, Ltd. | Method for loading instructions or data into a locked way of a cache memory |
US7000078B1 (en) * | 1999-10-01 | 2006-02-14 | Stmicroelectronics Ltd. | System and method for maintaining cache coherency in a shared memory system |
US6530047B1 (en) | 1999-10-01 | 2003-03-04 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US6684348B1 (en) | 1999-10-01 | 2004-01-27 | Hitachi, Ltd. | Circuit for processing trace information |
US6598177B1 (en) | 1999-10-01 | 2003-07-22 | Stmicroelectronics Ltd. | Monitoring error conditions in an integrated circuit |
US6629115B1 (en) | 1999-10-01 | 2003-09-30 | Hitachi, Ltd. | Method and apparatus for manipulating vectored data |
US6546480B1 (en) | 1999-10-01 | 2003-04-08 | Hitachi, Ltd. | Instructions for arithmetic operations on vectored data |
US6732307B1 (en) | 1999-10-01 | 2004-05-04 | Hitachi, Ltd. | Apparatus and method for storing trace information |
US6351803B2 (en) | 1999-10-01 | 2002-02-26 | Hitachi Ltd. | Mechanism for power efficient processing in a pipeline processor |
US6457118B1 (en) | 1999-10-01 | 2002-09-24 | Hitachi Ltd | Method and system for selecting and using source operands in computer system instructions |
US6434665B1 (en) | 1999-10-01 | 2002-08-13 | Stmicroelectronics, Inc. | Cache memory store buffer |
US6633971B2 (en) | 1999-10-01 | 2003-10-14 | Hitachi, Ltd. | Mechanism for forward data in a processor pipeline using a single pipefile connected to the pipeline |
US7266728B1 (en) | 1999-10-01 | 2007-09-04 | Stmicroelectronics Ltd. | Circuit for monitoring information on an interconnect |
US6826191B1 (en) | 1999-10-01 | 2004-11-30 | Stmicroelectronics Ltd. | Packets containing transaction attributes |
US6412043B1 (en) | 1999-10-01 | 2002-06-25 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
US7260745B1 (en) | 1999-10-01 | 2007-08-21 | Stmicroelectronics Ltd. | Detection of information on an interconnect |
US6598128B1 (en) | 1999-10-01 | 2003-07-22 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
US6553460B1 (en) | 1999-10-01 | 2003-04-22 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
US6820195B1 (en) | 1999-10-01 | 2004-11-16 | Hitachi, Ltd. | Aligning load/store data with big/little endian determined rotation distance control |
US6615370B1 (en) | 1999-10-01 | 2003-09-02 | Hitachi, Ltd. | Circuit for storing trace information |
US7793261B1 (en) | 1999-10-01 | 2010-09-07 | Stmicroelectronics Limited | Interface for transferring debug information |
US6349371B1 (en) | 1999-10-01 | 2002-02-19 | Stmicroelectronics Ltd. | Circuit for storing information |
US6693914B1 (en) | 1999-10-01 | 2004-02-17 | Stmicroelectronics, Inc. | Arbitration mechanism for packet transmission |
US6463553B1 (en) | 1999-10-01 | 2002-10-08 | Stmicroelectronics, Ltd. | Microcomputer debug architecture and method |
US7072817B1 (en) | 1999-10-01 | 2006-07-04 | Stmicroelectronics Ltd. | Method of designing an initiator in an integrated circuit |
US6591369B1 (en) | 1999-10-01 | 2003-07-08 | Stmicroelectronics, Ltd. | System and method for communicating with an integrated circuit |
US6859891B2 (en) | 1999-10-01 | 2005-02-22 | Stmicroelectronics Limited | Apparatus and method for shadowing processor information |
US6701405B1 (en) | 1999-10-01 | 2004-03-02 | Hitachi, Ltd. | DMA handshake protocol |
US6542983B1 (en) | 1999-10-01 | 2003-04-01 | Hitachi, Ltd. | Microcomputer/floating point processor interface and method |
US6487683B1 (en) | 1999-10-01 | 2002-11-26 | Stmicroelectronics Limited | Microcomputer debug architecture and method |
US6412047B2 (en) | 1999-10-01 | 2002-06-25 | Stmicroelectronics, Inc. | Coherency protocol |
US6502210B1 (en) | 1999-10-01 | 2002-12-31 | Stmicroelectronics, Ltd. | Microcomputer debug architecture and method |
US6298394B1 (en) | 1999-10-01 | 2001-10-02 | Stmicroelectronics, Ltd. | System and method for capturing information on an interconnect in an integrated circuit |
US6928073B2 (en) * | 1999-10-01 | 2005-08-09 | Stmicroelectronics Ltd. | Integrated circuit implementing packet transmission |
US6779145B1 (en) | 1999-10-01 | 2004-08-17 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US6918065B1 (en) | 1999-10-01 | 2005-07-12 | Hitachi, Ltd. | Method for compressing and decompressing trace information |
JP2001142692A (ja) * | 1999-10-01 | 2001-05-25 | Hitachi Ltd | 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法 |
US6460174B1 (en) | 1999-10-01 | 2002-10-01 | Stmicroelectronics, Ltd. | Methods and models for use in designing an integrated circuit |
US6449712B1 (en) | 1999-10-01 | 2002-09-10 | Hitachi, Ltd. | Emulating execution of smaller fixed-length branch/delay slot instructions with a sequence of larger fixed-length instructions |
US6772325B1 (en) * | 1999-10-01 | 2004-08-03 | Hitachi, Ltd. | Processor architecture and operation for exploiting improved branch control instruction |
US6574651B1 (en) | 1999-10-01 | 2003-06-03 | Hitachi, Ltd. | Method and apparatus for arithmetic operation on vectored data |
US6915416B2 (en) * | 2000-12-28 | 2005-07-05 | Texas Instruments Incorporated | Apparatus and method for microcontroller debugging |
US7296259B2 (en) * | 2002-09-11 | 2007-11-13 | Agere Systems Inc. | Processor system with cache-based software breakpoints |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0340901A3 (en) * | 1988-03-23 | 1992-12-30 | Du Pont Pixel Systems Limited | Access system for dual port memory |
JP2867453B2 (ja) * | 1989-08-22 | 1999-03-08 | 横河電機株式会社 | インサーキットエミュレータ |
US5236153A (en) * | 1992-06-25 | 1993-08-17 | Laconte Richard J | Longitudinal floating pivot track fitting |
-
1993
- 1993-04-28 JP JP5102552A patent/JP2731692B2/ja not_active Expired - Fee Related
-
1994
- 1994-04-28 US US08/234,566 patent/US5455936A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06314213A (ja) | 1994-11-08 |
US5455936A (en) | 1995-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2731692B2 (ja) | デバッグ装置 | |
US20060117224A1 (en) | Trace and debug method and system for a processor | |
JP2000112783A (ja) | プログラム検査方法、プログラム検査装置及びプログラム検査プログラムを記憶した記憶媒体 | |
JP2655615B2 (ja) | 情報処理装置 | |
EP0638864B1 (en) | Development support system for microcomputer with internal cache | |
JP2513417B2 (ja) | 情報処理装置 | |
US6615368B1 (en) | System and method for debugging highly integrated data processors | |
JP3000779B2 (ja) | プロセッサの実行状態の情報収集方法 | |
EP0953909A1 (en) | Method and apparatus for controlling write access to storage means for a digital data processing circuit | |
JP2619416B2 (ja) | エミュレータ | |
JPS59202546A (ja) | デバツグ装置 | |
JP2000181746A (ja) | デバッグサポート付プロセッサ、及びデバッグ機能実行制御方法 | |
JP3097602B2 (ja) | データ処理装置 | |
SU1541617A1 (ru) | Устройство отладки микропрограммных блоков | |
JP2687750B2 (ja) | 電子計算機用処理装置 | |
JP2001318802A (ja) | インサーキットエミュレータ | |
JP2001273167A (ja) | ハードウエアブレーク回路 | |
EP0953910A2 (en) | Method and apparatus for controlling write access to storage means for a digital data processing circuit | |
JPS59202548A (ja) | デバツグ装置 | |
JPH0535499A (ja) | データ処理装置及びデータ処理方法 | |
JPS62173543A (ja) | エミユレ−タ | |
JPS59165158A (ja) | デバツグ装置 | |
JPH08161195A (ja) | アドレストレース格納装置及びアドレストレース生成方法 | |
JPH07281924A (ja) | トレース装置及びこれを備えたエミュレータ | |
JPS61163445A (ja) | コンピユ−タの開発支援システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19971202 |
|
LAPS | Cancellation because of no payment of annual fees |