JP2664644B2 - マイクロプロセッサのリセット方法 - Google Patents

マイクロプロセッサのリセット方法

Info

Publication number
JP2664644B2
JP2664644B2 JP6339959A JP33995994A JP2664644B2 JP 2664644 B2 JP2664644 B2 JP 2664644B2 JP 6339959 A JP6339959 A JP 6339959A JP 33995994 A JP33995994 A JP 33995994A JP 2664644 B2 JP2664644 B2 JP 2664644B2
Authority
JP
Japan
Prior art keywords
debug
output
trace
address
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.)
Expired - Lifetime
Application number
JP6339959A
Other languages
English (en)
Other versions
JPH08185245A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP6339959A priority Critical patent/JP2664644B2/ja
Publication of JPH08185245A publication Critical patent/JPH08185245A/ja
Application granted granted Critical
Publication of JP2664644B2 publication Critical patent/JP2664644B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マイクロコンピュータ
を応用したシステムのデバッグを行なうデバッグシステ
ムに関する。
【0002】
【従来技術】図1に従来例1を示す。従来例1は、一般
にROMモニタと呼ばれるデバッグシステムである。ユ
ーザターゲットシステム70上に、ホストコンピュータ
90と接続するためのシリアルインターフェース80を
用意し、メモリ40中に、モニタプログラム41を格納
しておく。マイクロプロセッサ10は、このモニタプロ
グラム41を走らせることにより、I/O50、メモリ
40、レジスタ11にアクセスする。さらにソフトウエ
アブレイク命令を使用して、ユーザプログラムの実行制
御を行なう。
【0003】図2に従来例2を示す。ユーザターゲット
システム70上のマイクロプロセッサ10中に、デバッ
グツール100との通信に必要なシリアルインターフェ
ース12と、デバッグツール100から送られてきた電
気信号を解釈して実行するシーケンサ13を内蔵する。
シーケンサ13は、送られてきた信号に従って、ユーザ
プログラムの実行を一時停止し、レジスタ11にアクセ
スしたり、バスコントローラ14を使用して、メモリ4
0やI/O50にアクセスする。さらに、ハードウエア
ブレークポイントや、ソフトウエアブレーク命令を使用
して、ユーザプログラムの実行制御を行う。シリアルイ
ンターフェース12からの信号は、直接には、ホストコ
ンピュータ90に接続できないことが多いので、デバッ
グツール100が、ホストコンピュータ90からのコマ
ンドをマイクロプロセッサ10に接続できる電気信号に
変換したり、またマイクロプロセッサ10からの信号を
ホストコンピュータ90が理解できるデータ形式に変換
する。
【0004】図3に従来例3を示す。従来例3は一般に
インサーキットエミュレータと呼ばれるデバッグシステ
ムである。デバッグ時には、ユーザターゲットボードシ
ステム70上のマイクロプロセッサ10を取り外すか、
または無効にし、この部分にデバッグツール110のプ
ローブを接続して、デバッグ用マイクロプロセッサ12
0を代わりに動作させる。デバッグ用マイクロプロセッ
サ120は、デバッグツール上のモニタプログラムメモ
リ130に格納されているモニタプログラムを実行する
ことにより、ユーザプログラムの実行を制御したり、メ
モリ40上のデータにアクセスしたり、I/O50をア
クセスする。また、デバッグ用マイクロプロセッサ12
0は、あたかもマイクロプロセッサ10が実行している
かのように、ユーザターゲットシステム上のメモリ40
に格納されているプログラムを実行する。また、デバッ
グツール110は、トレースメモリ140を有し、デバ
ッグ用マイクロプロセッサ120のプロセッサバスの状
態をトレースすることができる。デバッグ用マイクロプ
ロセッサ110は、マイクロプロセッサ10からは得ら
れないトレース情報を出力する。これにより、プロセッ
サバスからだけではトレースできないプロセッサの内部
状態の一部がトレース可能になる。
【0005】図4に従来例4を示す。従来例4は、一般
にプリプロセッサと呼ばれているデバッグシステムであ
る。ユーザターゲットシステム70上のマイクロプロセ
ッサ10のプロセッサバス90に、ロジックアナライザ
150のプローブを接続することにより、マイクロプロ
セッサ10のメモリ40やI/O50に対するアクセス
をトレースすることができる。
【0006】なお、図1ないし図4を用いて説明した従
来例の具体的な動作や回路構成は当業者には周知である
ため、これ以上詳細な説明はここでは与えない。
【0007】
【発明が解決しようとする課題】従来例1では、モニタ
プログラムをユーザメモリ上で走らせるため、ユーザの
ユーザターゲットシステムのメモリシステムの動作が完
全でない場合にモニタ自身が安定して動作しない場合が
あった。また、ターゲットシステムのメモリ量に余裕が
ない場合、モニタが占有するアドレス空間が確保できな
いことがあった。さらに、モニタモードへ入るためにユ
ーザの割込みの一部を使用しなければならないので、プ
ログラムの種類によってはデバッグが不可能なことがあ
った。また、あらかじめユーザターゲット上にシリアル
インターフェースの回路を実装しなければならないな
ど、デバッグ後は使用しないかもしれない回路をターゲ
ットシステムに設ける必要があった。また、デバッグの
ためのハードウエアブレークポイント等の資源をもって
いないので、デバッグ機能が貧弱であり、トレースも取
れなかった。
【0008】従来例2では、シーケンサをマイクロプロ
セッサに内蔵し、さらに、シーケンサがレジスタにアク
セスするため、デバッグツールとの接続のためのロジッ
ク回路が複雑になり、チップ上での面積も大きくなっ
た。また、レジスタの追加などが発生した場合、シーケ
ンサを変更しなければならないので、変更のための作業
が大きかった。さらに、この従来例でもトレースは取れ
なかった。
【0009】従来例3では、ユーザターゲット上のマイ
クロプロセッサのすべてのピンにデバッグツールを接続
するため、プローブが高価になり、しかもプローブの接
触が不安定になることが多かった。また、ターゲット上
のメモリにアクセスする場合とデバッグツール内のモニ
タメモリにアクセスする場合とで、高速にバスを切替え
なければならないため、動作周波数の高いプロセッサで
は実現が困難であった。派生品のマイクロプロセッサが
ある場合には、パッケージやピンの数、位置が異なるた
めに、本質的には同じデバッグツールが使用できるにも
関わらず、プローブを派生品ひとつひとつに対して別の
デバッグツールを用意しなければならなかった。また、
プローブを接続することにより、ユーザターゲットで使
用する信号にも影響を与え、ユーザターゲットの動作そ
のものを不安定にする場合があった。
【0010】従来例4では、トレースに関しては、高速
のプロセッサに対しても有効であるが、内蔵キャッシュ
メモリを持つプロセッサでは、キャッシュにヒットして
いる場合のトレースは取れなかった。また、内部にキュ
ーを持つプロセッサの場合は、フェッチされた命令が実
行されたかどうかを判別できなかった。また、ユーザプ
ログラムの実行制御機能はなく、ユーザメモリやI/O
の内容を参照したりすることはできなかった。
【0011】
【課題を解決するための手段】従来例1の問題を解決す
るために、本発明では、モニタメモリをデバッグツール
内に格納し、デバッグツール専用の信号を使ってモニタ
プログラムを動作させ、デバッグツール専用の割込みを
用意し、ハードウエアブレーク機能をマイクロプロセッ
サに内蔵した。
【0012】従来例2の問題を解決するために、本発明
では、モニタプログラムを使用してレジスタ、ユーザメ
モリ、I/Oにアクセスする。
【0013】従来例3の問題を解決するために、本発明
では、デバッグツール内のモニタメモリでモニタプログ
ラムを走らせるためのロジック回路、ハードウエアブレ
ークポイントを含む実行制御を行なうためのロジック回
路、及び実行された命令のPC情報を出力するためのロ
ジック回路をマイクロプロセッサに内蔵した。また、デ
バッグツールとの接続専用のピンをマイクロプロセッサ
に用意し、これらのピンだけをデバッグツールと接続し
た。さらにモニタプログラム実行中だけ出力されるクロ
ックの周波数を下げる機能を付け加えた。
【0014】従来例4の問題を解決するために、本発明
では、デバッグツール内のモニタメモリでモニタプログ
ラムを走らせるためのロジック回路、ハードウエアブレ
ークポイントを含む実行制御を行なうためのロジック回
路、及び実行された命令のPC情報を出力するためのロ
ジック回路をマイクロプロセッサに内蔵した。
【0015】
【実施例】以下に図面を用いて本発明をアドレス32ビ
ット、データバス32ビットのプロセッサコアを内蔵す
るマイクロプロセッサに適用した場合の実施例を示す。
なお、図面及び以下の説明中、信号名に付加されたアス
タリスク(*)は、その信号が負論理であることを表す。
【0016】<デバッグシステム全体の説明>図5に本
発明の一実施例のデバッグシステムの構成図を示す。デ
バッグシステムは、ユーザターゲットシステム70とデ
バッグツール60からなる。ユーザターゲットシステム
70は、デバッグ機能を内蔵したマイクロプロセッサ1
0、メモリ40、I/O50から構成される。マイクロ
プロセッサ10は、プロセッサコア20とデバッグモジ
ュール30から構成される。プロセッサコア20は、プ
ロセッサバス20を介して、メモリ40やI/O50を
アクセスし、プログラムを実行する。また、プロセッサ
コア20は、内部デバッグインターフェース15と内部
プロセッサバス16によって、デバッグモジュール30
と接続されている。デバッグモジュール30は、外部デ
バッグインターフェース71によって、デバッグツール
60と接続されている。
【0017】<実行モードの説明>デバッグシステムに
は、モニタプログラムを実行しているデバッグモード
と、ユーザプログラムを実行しているノーマルモードの
2つの実行モードがある。
【0018】〔デバッグモードの説明〕プロセッサコア
20において、デバッグ例外、あるいはデバッグリセッ
トが発生すると、デバッグ例外のベクタアドレス、ある
いはデバッグリセットのベクタアドレスへジャンプし、
デバッグモードに入る。これらのベクタアドレスに対応
するメモリは、デバッグツール60上に置かれている。
プロセッサコア20は、デバッグモジュール30を介し
て、デバッグツール60上のモニタプログラムを実行す
る。モニタプログラムでは、メモリ、I/O、及びレジ
スタのリードやライト、ハードウエアブレークポイント
の設定、ユーザプログラムの実行開始アドレスの指定な
どの実行制御機能を実現する。プロセッサコア20がノ
ーマルモードへの復帰命令を実行することによって、ノ
ーマルモードへ復帰し、ユーザプログラムの実行を開始
あるいは再開する。
【0019】〔ノーマルモードの説明〕ノーマルモード
では、デバッグシステムは、ユーザプログラムを実行す
る。ノーマルモードでは、外部デバッグインターフェー
ス71にPC(program counter)情報が出力される。デ
バッグシステムは、ハードウエアブレーク、ソフトウエ
アブレーク、デバッグ割込み、デバッグリセットなどに
よって、プロセッサコア20へデバッグ例外またはデバ
ッグリセットを要求し、デバッグモードへ制御を移す。
【0020】<デバッグモジュールの機能の概略説明>
以下に、デバッグモードで有効なシリアルモニタバス機
能と、ノーマルモードで有効な、PCトレース機能、ト
レーストリガ機能、ハードウエアブレーク機能、ソフト
ウエアブレーク機能、デバッグ割込み機能、デバッグリ
セット機能、及びマスク機能について、説明する。
【0021】〔シリアルモニタバス機能の説明〕シリア
ルモニタバス機能は、プロセッサコア20がモニタ専用
のアドレス領域をアクセスしている場合に、デバッグ専
用のピンを通るシリアル伝送経路を通じてデバッグツー
ル60内のモニタメモリにアクセスすることによって実
現される。モニタ専用メモリ以外の領域をアクセスする
場合には、通常のプロセッサバスを通じたアクセスが行
なわれる。これにより、モニタは、ユーザターゲットシ
ステム上のメモリやI/Oもアクセスできる。なお、以
下の実施例ではシリアルモニタバスのビット幅は1ビッ
トであるが、マイクロプロセッサのピンをこのバスのた
めにもっと多く使用できる場合には、複数ビット幅にす
ることもできる。
【0022】〔PCトレース機能の説明〕PCトレース
機能は、プロセッサコア20がユーザプログラムを実行
している時に、そのプログラムカウンタPCの値をトレ
ースする機能である。プロセッサコア20がメモリ40
上のユーザプログラムを実行しているときに、そのPC
トレース情報を内部デバッグインターフェース15へ出
力し、デバッグモジュール30がその情報を入力して情
報を加工した後、外部デバッグインターフェース71を
介して、デバッグツール60へ出力することによって実
現される。
【0023】〔トレーストリガ機能の説明〕トレースト
リガ機能には、命令アドレストレーストリガ、データア
ドレスブレーク、及びプロセッサバストレーストリガの
3種類がある。命令アドレストレーストリガ機能は、プ
ロセッサコア20が内部デバッグインターフェースに出
力する命令実行アドレスの値を、デバッグモジュール3
0内のレジスタに設定されているアドレスの値と比較
し、それらが一致した時に、トレーストリガが発生した
ことを外部デバッグインターフェース71を介して、デ
バッグツール60へ伝達することによって、実現され
る。データアドレストレーストリガ機能は、プロセッサ
コア20が内部デバッグインターフェースに出力するデ
ータアクセスアドレスの値を、デバッグモジュール30
内のレジスタに設定されているアドレスの値と比較し、
それらが一致した時に、トレーストリガが発生したこと
を外部デバッグインターフェース71を介してデバッグ
ツール60へ伝達することによって、実現される。プロ
セッサバストレーストリガ機能は、プロセッサコア20
がプロセッサバスに出力するデータアクセスアドレス及
びそのデータの値を、デバッグモジュール30内のレジ
スタに設定されているアドレス及びデータの値と比較
し、それらが一致した時に、トレーストリガが発生した
ことを外部デバッグインターフェース71を介してデバ
ッグツール60へ伝達することによって、実現される。
【0024】〔ハードウエアブレーク機能の説明〕ハー
ドウエアブレーク機能には、命令アドレスブレーク、デ
ータアドレスブレーク、及びプロセッサバスブレークの
3種類がある。命令アドレスブレーク機能は、プロセッ
サコア20が内部デバッグインターフェースに出力する
命令実行アドレスの値を、デバッグモジュール30内の
レジスタに設定されているアドレスの値と比較し、それ
らが一致した時に、デバッグ例外をプロセッサコア20
へ要求することによって、実現される。データアドレス
ブレーク機能は、プロセッサコア20が内部デバッグイ
ンターフェースに出力するデータアクセスアドレスの値
を、デバッグモジュール30内のレジスタに設定されて
いるアドレスの値と比較し、それらが一致した時に、デ
バッグ例外をプロセッサコア20へ要求することによっ
て、実現される。プロセッサバスブレーク機能は、プロ
セッサコア20がプロセッサバスに出力するデータアク
セスアドレス及びそのデータの値を、デバッグモジュー
ル30内のレジスタに設定されているアドレス及びデー
タの値と比較し、それらが一致した時に、デバッグ割込
みをプロセッサコア20へ要求することによって、実現
される。
【0025】〔ソフトウエアブレーク機能の説明〕ソフ
トウエアブレーク機能は、プロセッサコア20がソフト
ウエアブレーク命令を実行することによりデバッグ例外
を発生するものである。これにより、デバッグモードへ
移行する。
【0026】〔デバッグ割込み機能の説明〕デバッグ割
込み機能は、プロセッサ20のデバッグ割込み信号をア
サートすることにより、プロセッサ20がデバッグ例外
を発生する機能である。これにより、デバッグモードへ
移行する。
【0027】〔デバッグリセット機能の説明〕デバッグ
リセット機能は、プロセッサ20のデバッグリセット信
号をアサートすることにより、プロセッサ20がデバッ
グリセットを発生する機能である。これにより、プロセ
ッサ20とデバッグモジュール30の内部状態が初期化
され、プロセッサコア20はデバッグモードとなり、デ
バッグリセットのベクタアドレスからプログラムの実行
を開始する。
【0028】〔マスク機能の説明〕マスク機能は、設定
に従って、ノーマルモード中のユーザ割込みをマスクし
たり、デバッグモード中のユーザリセットをマスクした
りする。
【0029】<デバッグモジュールの全体構成の詳細説
明>次にデバッグモジュール30について、さらに詳し
く説明する。
【0030】図6にデバッグモジュール30の内部ブロ
ックを示す。デバッグモジュール30には、命令/デー
タアドレスブレーク回路31、PCトレース回路32、
プロセッサバスブレーク回路33、シリアルモニタバス
回路34、レジスタ回路35、外部インターフェース回
路36、分周回路37が設けられている。
【0031】PCトレース回路32は、プロセッサコア
20と内部デバッグインターフェース15で接続されて
いる。プロセッサ20から出力される、実行された命令
のPC情報を入力し、その情報を加工して、外部インタ
ーフェース回路36へ出力する。
【0032】命令/データアドレスブレーク回路31
は、プロセッサコア20と内部デバッグインターフェー
ス15で接続されている。プロセッサコア20から出力
される命令アドレスを入力し、その値がレジスタ回路3
5内に設定されている命令アドレスと一致した場合、命
令アドレスブレークの使用が設定されていれば、プロセ
ッサコア20へ命令アドレスブレーク例外を要求する。
このとき、トレーストリガの使用が設定されていれば、
トリガが発生したことをPCトレース回路32へ通知す
る。
【0033】また、プロセッサコア20から出力される
データアドレスを入力し、その値がレジスタ回路35内
に設定されているデータアドレスと一致した場合、デー
タアドレスブレークの使用が設定されていれば、プロセ
ッサコア20へデータアドレスブレーク例外を要求す
る。このとき、トレーストリガの使用が設定されていれ
ば、トリガが発生したことをPCトレース回路32へ通
知する。ブレークまたはトレーストリガの使用は、レジ
スタ回路35内の当該レジスタの当該ビットの値によっ
て設定される。
【0034】プロセッサバスブレーク回路33は、内部
プロセッサバス16を介して、プロセッサコア20と接
続されている。データは、ビット毎にマスクをすること
ができる。この回路は、プロセッサバス上のバスサイク
ルを監視し、レジスタ回路35に設定されたアドレス及
びデータと、発生したバスサイクルのアドレス及びデー
タが一致すると、プロセッサコア20へ例外を要求す
る。このとき、トレーストリガの使用が設定されていれ
ば、トリガが発生したことをPCトレース回路32へ通
知する。
【0035】シリアルモニタバス回路34は、内部プロ
セッサバス16を介してプロセッサコア20と接続さ
れ、プロセッサコア20がデバッグツール60上のモニ
タプログラムを実行するときに、並列形式のデータを直
列形式に変換し、または直列形式のデータを並列形式に
変換し、そのインターフェースを行なう。
【0036】レジスタ回路35は、デバッグモジュール
の機能を制御する制御レジスタを含む。各レジスタ毎に
アドレスが割り当てられている。内部プロセッサバス1
6と内部デバッグインターフェース15によってプロセ
ッサコア20と接続され、モニタプログラムを走らせる
ことによって制御レジスタの内容をリードまたはライト
することができる。また、制御レジスタの内容は、デバ
ッグモジュール30内の各回路やプロセッサコア20へ
出力され、デバッグ機能が制御される。
【0037】外部インターフェース回路36は、デバッ
グモジュール30内のPCトレース回路32、シリアル
モニタバス回路34、プロセッサコア20とデバッグツ
ール60とのインターフェースを制御する回路である。
また、マスク機能も外部インターフェース回路36内で
実現されている。
【0038】分周回路37は、クロック信号CLKを分
周する回路である。シリアルモニタバス回路は、分周し
たクロックCLK2で動作する。
【0039】<デバッグツールの全体構成の詳細説明>
図7にデバッグツールの全体構成を示す。デバッグツー
ル60には、通信インターフェース620、コントロー
ラ630、モニタメモリ640、モニタメモリインター
フェース650、トレースメモリインターフェース66
0、トレースメモリ670、ランコントロール680、
及びターゲットインターフェース690が設けられてい
る。
【0040】通信インターフェース620はホストコン
ピュータとの通信を行なう。コントローラ630は、通
信インターフェース620を経由してホストコンピュー
タから送られてきたコマンドを解析し、実行し、結果を
送り返す。モニタメモリ640は、モニタプログラムを
格納し、これを実行するためのメモリである。モニタメ
モリインターフェース650は、ユーザターゲットシス
テム70からの直列形式の信号をモニタメモリ640に
アクセス可能な並列形式の信号に変換し、さらにコント
ローラ630及びユーザターゲット上のマイクロプロセ
ッサからのアクセス要求の調停を行なう。トレースメモ
リ670はユーザターゲットシステム70上のマイクロ
プロセッサ10から送られてくるPC情報を格納するた
めのメモリである。トレースメモリインターフェース6
60は、ユーザターゲットシステム70上のマイクロプ
ロセッサ10から送られてくるPC情報をトレースメモ
リ670に格納する。また、コントローラ630からの
アクセス要求があった場合に、ユーザターゲット上のマ
イクロプロセッサから送られてくるPC情報の格納を妨
げないように、これを制御する。ランコントロール68
0は、ユーザターゲットシステム70から供給されるユ
ーザリセット信号RESET*とユーザシステムの電源ライン
の電圧VDDを入力し、デバッグ割込信号DINT*とデバッグ
リセット信号DRESET*をユーザターゲットシステム70
に与えることにより、ユーザプログラムをリセットした
り、停止させたり、あるいは、実行させたりする。ター
ゲットインターフェース690は、パワーオン時のユー
ザターゲットシステム70及びデバッグツール60を保
護するための回路と、ターゲットユーザシステム70の
電源電圧に応じて入出力電圧を調整する回路から成る。
【0041】<デバッグツール−マイクロプロセッサ間
のインターフェース信号>デバッグツール−マイクロプ
ロセッサ間のインターフェース信号は、全部で20本で
ある。内訳を以下に示す。入力/出力は、マイクロプロ
セッサ側から見た場合の方向を示す。
【0042】デバッグモジュール30とデバッグツール
60との外部デバッグインターフェース信号は、次の8
本である。 1. DCLK : 出力 2. DRESET : 入力 3-5. PCST(2:0) : 出力 6. SDA0 / TPC : 出力 7. SDI / DINT : 入力 8. DBGE : 入力
【0043】デバッグツール60専用ではないが、下記
のような信号もデバッグツール60に接続する。 9. RESET : 出力 10. VDD : 出力
【0044】さらに、10本のグランド線を接続する。 11-20. GND : グランド
【0045】 (1)DCLK (Debug clock) : 出力端子 デバッグツール60へのクロック出力である。シリアル
モニタバス、PCトレースインターフェースの信号のタ
イミングは、すべてこのデバッグクロックDCLKで規定さ
れる。シリアルモニタバス動作の時は、プロセッサコア
20の動作クロックを分周したクロックになる。
【0046】(2)DRESET* (Debug reset) : 入力端子
(プルアップ付き端子) デバッグリセット入力。ローアクティブの信号である。
DRESET*がアサートされると、ICEモジュールは初期化さ
れる(DBGEには無関係)。デバッグツール60を使用し
ないときには、この端子を未接続にする。
【0047】 (3)PCST(2:0) (PC trace status) : 出力端子 以下のPCトレースステータス情報とシリアルモニタバス
のモードを出力する。以下の表に、この3ビットのPCST
の出力するコードの意味を示す。
【0048】
【表1】 111(STL) : パイプラインストール 110(JMP) : 分岐/ジャンプ成立(PC出力あり) 101(BRT) : 分岐/ジャンプ成立(PC出力なし) 100(EXP) : 例外発生(例外ベクタコード出力あり) 011(SEQ) : シーケンシャル実行(1命令実行したこと
を示す) 010(TST) : パイプラインストール時のトレーストリガ
出力 001(TSQ) : 実行時のトレーストリガ出力 000(DBM) : デバッグモード (0:ローレベル、1:ハイレベル)
【0049】(4)DBGE* (Debugger Enable) : 入力端子
(プルアップ付き端子) デバッグツール60の接続の有無を示す。外部にデバッ
グツール60が接続されていない時には、プルアップの
ため、ハイレベルになる。デバッグツール60側ではロ
ーレベルにしてあるので、デバッグツールを接続すると
ローレベルになる。
【0050】デバッグツール60が接続されていない場
合(DBGE*信号がハイレベルの場合)には、プロセッサ
コア20のデバッグ例外ベクタアドレスはユーザに解放
されている領域になり、デバッグ例外により、ユーザの
作成したモニタなどへ移行することができる。また、ユ
ーザリセットにより、デバッグモジュール機能が初期化
され、デバッグ機能はハードウエアブレーク機能を除い
てディスエーブルされ、マイクロプロセッサの電力消費
を低減させる。また、出力信号(SDAO/TPC,DCLK,PCST
[2:0])は、すべてハイインピーダンス状態になる。
【0051】デバッグツール60が接続されている時に
は、プロセッサコア20のデバッグ例外ベクタアドレス
はユーザに解放されていないモニタ専用領域になる。こ
の時、ユーザリセットでは、デバッグモジュールは初期
化されない。これにより、ユーザリセットの直後でもデ
バッグ機能が活用できる。つまり、ユーザリセット直後
のユーザターゲットシステムの挙動を観測したいという
要求に対しても、本発明の構成によって対応することが
できる。
【0052】(5)SDAO/TPC (Serial Data and address o
utput/Target PC) : 出力端子 マイクロプロセッサがモニタプログラムを実行している
時(以下、デバッグモードと称する)は、データ/アド
レスをシリアルで出力する端子SDAO(Serial Data and A
ddress Output)として、またマイクロプロセッサがユー
ザプログラムを実行している時(以下、ノーマルモード
と称する)は、ターゲットPCをシリアルで出力する端
子TPC(Target PC)として機能する。
【0053】SDAOとしての動作 データ、アドレス、リードライト、バイトイネーブル信
号を1ビットづつシリアルに出力する信号端子である。
バスサイクル開始前にスタートビットを出力する。(つ
まり、1クロック間ローレベルを出力する。)出力の順
は、リード時は、スタートビット(ローレベル)、A2-A
19,RD,WR,BE0-BE3。ライト時は、スタートビット(ロー
レベル)、A2-A19,RD,WR,BE0-BE3,D0-D31である。
【0054】TPCとしての動作 分岐/ジャンプ命令のターゲットアドレスと例外/割込
みのベクタ番号を出力するための信号である。ターゲッ
トアドレスは、下位アドレスA[2]から上位アドレスA[3
1]まで順に出力される。
【0055】(6)SDI/DINT* (Serial Data Input/Debug
Interrupt) : 入力端子(プルアップ付き) デバッグモード中はシリアルデータ入力端子SDI(Serial
Data input)として、またノーマルモード中はデバッグ
割込端子DINT*(Debug Interrupt)として動作する。
【0056】SDIとしての動作 データ入力信号端子。リードの時には、外部からスター
トビット(ローレベル)が入力されると、次のクロック
からデータ入力を開始する。ライトのとき、ローレベル
が入力されると、バスサイクルが終了する。入力の順
は、リード時はスタートビット(ローレベル)、D[0]-D
[31]である。ライト時は終了ビット(ローレベル)だけ
入力する。
【0057】DINT*としての動作 デバッグツール60からのデバッグ割込み入力である。
デバッグツール60を使用しない時にはこの端子を未接
続にする。
【0058】(7) RESET* (Reset) : 出力端子 ユーザリセット端子である。この信号をデバッグツール
に接続することにより、例えばデバッグモジュール30
からの応答がない時にそれがユーザリセット信号による
ものであるかどうかが判断できる。また、ユーザリセッ
ト直後にデバッグリセットをかけたい時には、このRESE
T*信号がハイレベルになった後までDRESET*を入れるこ
とで、実現が可能である。
【0059】(8) VDD (VDD) :出力端子 ユーザターゲットシステムの電源ラインである。これを
デバッグツール60に入力してやることにより、デバッ
グツール60は、ユーザターゲットシステム70の電源
電圧を知ることができる。これにより、ユーザターゲッ
トシステムの電源電圧に合わせて、入力波形のスレッシ
ュホールド値を変更したり、出力波形の電圧レベルを変
更したりすることができる。また、ユーザターゲットシ
ステム70の電源が投入されていないと判断される場合
には、デバッグツール60側の出力用デバイスをハイイ
ンピーダンスにし、デバイスの保護をはかる。
【0060】(9) GND (GND) デバッグツール60間とユーザターゲットシステム70
間のグランドレベルを合わせるために、10本のグラン
ド線を接続する。これらは、デバッグツール60間とユ
ーザターゲットシステム70間の伝送ケーブル中では上
記(1)-(8)の信号の間に位置し、信号間のクロストーク
を低減する役割も果たす。
【0061】<シリアルモニタバス回路の詳細説明>図
6のシリアルモニタバス回路34の動作について説明す
る。
【0062】〔シリアルモニタバスの機能概略〕デバッ
グモード中に、プロセッサコア20がモニタ専用領域を
アクセスする場合、シリアルモニタバス回路34を介し
て、デバッグツール60上のメモリがアクセスされる。
【0063】シリアルモニタバスを用いたライトオペレ
ーションでは、シルアルモニタバス回路34は、アドレ
ス、バス制御信号、データをSDAO信号に、1ビットづつ
シリアルに出力する。リードオペレーションでは、アド
レス、バス制御信号を1ビットづつシリアルに出力す
る。リードオペレーションでは、アドレス、バス制御信
号をSDAO信号に出力し、SDI信号からデータを1ビット
づつシリアルに入力する。
【0064】シリアルモニタバスは、プロセッサコア2
0の動作クロックCLKを分周したクロックCLK2で
動作する。
【0065】シリアルモニタバスに出力するアドレスは
プロセッサコアのアドレス信号のA[19:2]の18ビット
であり、1Mバイトのメモリ空間をアクセスできる。
【0066】プロセッサコア20のバイトイネーブル信
号BE[3:0]をシリアルモニタバスへ出力するので、バイ
ト、ハーフワード、3バイトのアクセスも可能である。
ただし、シリアルモニタバスでは、バイト、ハーフワー
ド、3バイトアクセスの場合も、32ビット分のデータ
をを転送する。バイト、ハーフワード、3バイトのライ
トのとき、BE[3:0]*がインアクティブなバイト位置のデ
ータは不定である。リードの時は、インアクティブバイ
トなバイト位置のデータはプロセッサコア20で無視さ
れ、リードされない。
【0067】ノーマルモード中は、モニタ専用領域への
ライトは無視され、リードは結果が不定となる。このよ
うなライトアクセスがあった時、シリアルモニタバス回
路34は、プロセッサコア20へ、バスオペレーション
の完了を示すアクノリッジ信号を送り、バスオペレーシ
ョンを終了する。
【0068】<シリアルモニタバスの信号伝送方法の詳
細説明>図8にシリアルモニタバスに関わる回路の概略
図を示す。これを用いて、信号伝送の手順を説明する。
【0069】〔プロセッサコア20がメモリリードを行
なう場合〕 (1)プロセッサコア20から出力される並列形式のア
ドレス、リード信号、バイトイネーブルをシリアル出力
回路A342が直列形式に変換して、SDAOから出力す
る。 (2)デバッグツール60内のシリアルモニタ入力回路
B651はこれを入力し、並列形式に変換し、モニタメ
モリ640に出力する。 (3)メモリから出力された並列形式のデータは、シリ
アル出力回路B652で直列形式に変換され、SDIを通
じて出力される。 (4)デバッグモジュール30内のシリアル入力回路A
343はこれを並列形式に変換して、プロセッサコア2
0へ出力する。 (5)プロセッサコア20がその並列形式のデータをリ
ードする。
【0070】〔プロセッサコア20がメモリライトを行
なう場合〕 (1)プロセッサコア20から出力される並列形式のア
ドレス、ライト信号、バイトイネーブル、データをシリ
アル出力回路A342が直列形式に変換して、SDAOから
出力する。 (2)デバッグツール60内のシリアル入力回路B65
1はこれを入力し、並列形式に変換し、モニタメモリ6
40に出力する。 (3)モニタメモリ640への書き込みが終了したら、
シリアル出力回路B652で、SDIに1クロック間だけ
ローレベルを出力する。 (4)ユーザターゲットシステム70内のマイクロプロ
セッサ10中のシリアル入力回路A343は、このロー
レベルを入力したら、プロセッサコア20へライトサイ
クル終了したことを伝える。 (5)プロセッサコア20は、ライトサイクルを終了す
る。
【0071】<シリアルモニタバスオペレーションのタ
イミングの詳細説明>以下にシリアルモニタバスオペレ
ーションをタイミングチャートを用いて詳しく説明す
る。
【0072】〔シリアルモニタバスのリードバスオペレ
ーション〕図9にシリアルモニタバスのリードバスオペ
レーションのタイミングチャートを示す。 (1)プロセッサコア20がモニタ専用領域に対するリ
ードバスオペレーションを開始する(サイクル1)。プ
ロセッサコア20は、プロセッサバスにアクセスするア
ドレスを並列形式で出力し、リード信号をアサートし、
またリードするバイト位置のバイトイネーブル信号をア
サートする。 (2)シリアルモニタバス回路34は、モニタ領域への
リードバスオペレーションの開始を認識すると、SDAO信
号にコアクロックCLKを分周したCLK2信号の1ク
ロック間ローレベルを出力する(サイクル2)。 (3)シリアルモニタバス回路34は、プロセッサコア
20のリードバスオペレーションで出力された、アドレ
スA[2]-A[19]、ハイレベル(リードを示す)及びバイト
イネーブル信号BE[0]*-BE[3]*を、この順でSDAO信号に
CLK2信号の1クロック間づつ出力する(サイクル3
〜25)。 (4)デバッグツール60内のモニタメモリインターフ
ェース650は、SDAO信号に出力されたアドレスA[2]-A
[19]、ハイレベル(リードを示す)及びバイトイネーブ
ル信号BE[0]*-BE[3]*を、この順で、DCLKに従って1ク
ロックづつ入力し、アドレス及びバイトイネーブル信号
を並列形式に変換し、モニタメモリ640に対して出力
する。 (5)モニタメモリインターフェース650は、モニタ
メモリ640から出力された並列形式のデータを直列形
式に変換する。データを外部へ出力する前に、1クロッ
ク間SDI信号にローレベルを出力する(サイクルn)。
続けて、DCLKに同期して、データをD[0]から順に1ビッ
トづつD[31]まで出力する(サイクルn+1〜n+3
2)。 (6)シリアルモニタバス回路34は、SDIにローレベ
ルを検出すると(サイクルn)、次のサイクルよりデー
タD[0]-D[31]をDCLKの1クロック毎に読み込む(サイク
ルn+1〜n+32)。 (7)シリアルモニタバス回路34は、プロセッサコア
20のリードバスの応答信号をアサートし、読み込んだ
32ビットのデータをプロセッサバスへ並列形式にして
出力する(サイクルn+33)。 (8)プロセッサコア20は、プロセッサバス上のデー
タを読み込み、リードバスオペレーションを終了する。
【0073】〔シリアルモニタバスのライトバスオペレ
ーション〕図10にシリアルモニタバスのライトバスオ
ペレーションのタイミングチャートを示す。 (1)プロセッサコア20がモニタ専用領域に対するラ
イトバスオペレーションを開始する(サイクル1)。プ
ロセッサコア20は、プロセッサバスにアクセスするア
ドレスを出力し、ライト信号をアサートする。ライトす
るバイトの位置のバイトイネーブル信号をアサートす
る。 (2)シリアルモニタバス回路34は、モニタ領域への
ライトバスオペレーションの開始を認識すると、SDAO信
号にコアクロックCLKを分周したCLK2信号の1ク
ロック間ローレベルを出力する(サイクル2)。 (3)シリアルモニタバス回路34はプロセッサコア2
0のライトバスオペレーションで出力された、アドレス
A[2]-A[19]、ローレベル(ライトを示す)、バイトイネ
ーブル信号BE[0]*-BE[3]*及びライトデータDOUT[0]-DOU
T[31]を、この順でSDAO信号にCLK2信号の1クロッ
ク間づつ出力する(サイクル3〜57)。 (4)デバッグツール60内のモニタメモリインターフ
ェース650は、SDAO信号に出力されたアドレスA[2]-A
[19]、ハイレベル(リードを示す)、バイトイネーブル
信号BE[0]*-BE[3]*及びライトデータDOUT[0]-DOUT[31]
をこの順でDCLKに従って、1クロックづつ入力し、アド
レス、バイトイネーブル信号、ライトデータを並列形式
に変換し、モニタメモリ640に対して出力する。 (5)モニタメモリインターフェース650は、モニタ
メモリ640への書き込みが終了したら、1クロック間
SDI信号にローレベルを出力する(サイクルn)。 (6)シリアルモニタバス回路34は、SDIにローレベ
ルを検出すると、プロセッサコア20に対して、ライト
バス応答信号をアサートする(サイクルn+1)。 (7)プロセッサコア20は、ライトバスオペレーショ
ンを終了する。
【0074】<PCトレース回路>ここで、インダイレ
クトジャンプ、ダイレクトジャンプ、分岐を以下のよう
に、定義する。 ・インダイレクトジャンプ レジスタに格納されているアドレスへのジャンプなど、
ジャンプ先がその命令自体では特定できないジャンプ。 ・ダイレクトジャンプ 命令自身が格納されているアドレス及び命令コードによ
ってジャンプ先のアドレスが特定できるジャンプ。 ・分岐 命令自身が格納されているアドレス及び命令コードの一
部の和で分岐先が特定できるジャンプ。分岐において、
実際にジャンプが発生するかどうかは条件により決ま
る。実際にジャンプが行なわれることを分岐成立、行な
われなかったことを分岐不成立と呼ぶ。
【0075】また、PCトレースには、次の2種類のト
レースモードがある。 ・リアルタイムトレースモード このモードでは、プロセッサコア20の実行は常にリア
ルタイムで行なわれるが、インダイレクトジャンプのタ
ーゲットPC出力中に次のインダイレクトジャンプが発
生した場合、先に発生したインダイレクトジャンプのタ
ーゲットPCの出力は中止され、新しいターゲットPC
の出力が開始される。 ・非リアルタイムトレースモード このモードでは、上記のようにインダイレクトジャンプ
が接近して発生した場合、先に発生したインダイレクト
ジャンプのターゲットPCを出力し終るまでプロセッサ
コア20のパイプライン処理を停止させる。これによ
り、プロセッサコア20の実行のリアルタイム性は損な
われるが、インダイレクトジャンプのターゲットPCは
必ず完全に出力される。
【0076】PCトレース回路32は、プロセッサコア
20から以下の信号を入力する。 ・デバッグモード信号 プロセッサコア20がデバッグモード中か、ノーマルモ
ード中かを示す。 ・パイプライン実行信号 命令が一命令実行されたことを示す。 ・30ビットのターゲットPC[31:0]信号 分岐命令、ジャンプ命令のターゲットアドレス、あるい
は例外のベクタアドレスを示す。以下のインダイレクト
ジャンプ信号、ダイレクトジャンプ命令、分岐成立信
号、例外発生信号がアサートされているときに有効であ
る。 ・インダイレクトジャンプ信号 インダイレクトジャンプが実行されたことを示す。 ・ダイレクトジャンプ信号 ダイレクトジャンプが実行されたことを示す。 ・分岐成立信号 分岐成立の分岐命令が実行されたことを示す。 ・例外発生信号 例外が発生したことを示す。
【0077】また、PCトレース回路32は、PCトレ
ースを完全に行なうために、以下の信号をプロセッサコ
ア20へ出力する。 ・パイプラインストール要求信号 ターゲットPCの出力を完全に行なう非リアルタイムト
レースモードの時、プロセッサコア20のパイプライン
をストールさせるための信号である。PCトレース回路
32は、インダイレクトジャンプのターゲットPCを出
力している時に次のインダイレクトジャンプが発生する
と、この信号をアサートしてプロセッサコア20のパイ
プラインをストールさせる。出力中のターゲットPCが
完全に出力されるとこの信号をネゲートして、プロセッ
サコア20のパイプライン処理を再開させる。
【0078】PCトレース回路32は、命令/データア
ドレスブレーク回路31とプロセッサブレーク回路33
からトリガ要求信号を入力する。また、レジスタ回路3
5内のレジスタに割り当てられているトレースモードを
切替えるビットの状態を入力する。
【0079】PCトレース回路32は、ノーマルモード
時にプロセッサコア20が出力するPCトレース情報
を、1ビットのPC出力(TPC信号)と、3ビットのス
テータス信号(PCST[2:0]信号)にしてデバッグツール
60へ出力する。以下にPCST[2:0]とTPC信号について説
明する。
【0080】〔PCST[2:0]〕各クロック毎に、命令の実
行状態をPCST[2:0]に出力する。下記の説明では、"0"は
ローレベルを、"1"はハイレベルを表す。 ・111(STL):パイプラインストール トレーストリガ出力のない状態で、命令の実行終了がな
かったことを示す。 ・110(JMP):分岐/ジャンプ成立(PC出力あり) 分岐成立の分岐命令、ジャンプ命令の実行が終了し、TP
C信号にそのターゲットアドレス(分岐、ジャンプ先の
アドレス)の出力を開始したことを示す。 ・101(BRT):分岐/ジャンプ成立(PC出力なし) 分岐成立の分岐命令、ジャンプ命令の実行が終了した
が、TPC信号にそのターゲットアドレス(分岐、ジャン
プ先のアドレス)の出力がないことを示す。 ・100(EXP):例外発生(例外ベクタのコード出力あり) 例外が発生したことを示す。同時にTPC信号へ例外ベク
タのコード出力が開始されたことを示す。コードは、3
ビットあり、下位code(0)からcode(1)、code(2)の順でT
PC信号へ出力する。
【0081】 例外の種類 ベクタアドレス code リセット,Nmi BFC0_0000 (100) 4 UTLB(BEV=0) 8000_0000 (000) 0 UTLB(BEV=1) BFC0_0100 (110) 6 その他(BEV=0) 8000_0080 (001) 1 その他(BEV=1) BFC0_0180 (111) 7 ここで、BEVはレジスタ回路35内のあるレジスタ内の
1ビットであり、その値によって、例外処理のベクタア
ドレスを変更できる。
【0082】・011(SEQ):シーケンシャル実行(1命令
実行したことを示す) ジャンプ、分岐の実行(JMP,BRT)以外、あるいはトレー
ストリガ出力要求(TSQ)のない状態で、命令が実行され
たことを示す。分岐不成立の分岐命令が実行されたとき
もこのコードが出力される。 ・010(TST):パイプラインストール時のトレーストリガ
出力 命令の実行終了がないクロックで、命令アドレストレー
ストリガまたは、プロセッサバストレーストリガが発生
したことを示す。 ・001(TSQ):実行時のトレーストリガ出力 命令の実行が終了したクロックで、命令アドレストレー
ストリガあるいはプロセッサバストレーストリガが発生
したことを示す。 ・000(DBM):デバッグモード ノーマルモードでは、このコードが出力されることはな
い。 〔TPC〕分岐命令、ジャンプ命令のターゲットアドレス
を出力する信号である。PCST[2:0]に110(JMP)が出力さ
れたクロックから、ターゲットアドレスの出力を開始す
る。ターゲットアドレスは、下位A(2)から1クロック毎
に出力される。PCST[2:0]に、100(EXP)が出力されたク
ロックから、例外ベクタの3ビットコードを出力する。
コードは、下位code(0)から1クロック毎に出力する。
【0083】TPC信号によって、1ビットシリアルでタ
ーゲットアドレスを出力するため、前の分岐ジャンプ命
令をTPC信号へ出力している途中に、次の分岐、ジャン
プ命令あるいは例外が発生することがある。この場合の
TPCへのターゲットアドレス出力の優先度について、以
下のように規定する。
【0084】(1)トレースモードがリアルタイムモー
ドである場合、ターゲットPC出力中に新たにインダイ
レクトジャンプが発生すると、その時のターゲットPC
出力を終了し、必ず新たなインダイレクトジャンプのタ
ーゲットPCの出力を開始する。 (2)トレースモードが非リアルタイムモードである場
合、ターゲットPC出力中に新たにインダイレクトジャ
ンプが発生すると、その時のターゲットPC出力を終了
するまでプロセッサコアのパイプライン処理を停止し、
必ずそのターゲットPC出力を終了してからプロセッサ
コアのパイプライン処理を再開し、新たなインダイレク
トジャンプのターゲットPCの出力を開始する。 (3)ターゲットPC出力中に例外が発生したときは、
例外のベクタ番号(3ビット)を必ず出力し、その後、
中断していたPC出力を再開する。 (4)ターゲットPC出力中に、新たにダイレクトジャ
ンプ、分岐が発生したときは、そのダイレクトジャン
プ、分岐のターゲットアドレスの出力は行なわない。ダ
イレクトジャンプ、分岐については、発生時にターゲッ
トPCを出力していない時のみ、そのターゲットPCが
出力される。ダイレクトジャンプまたは分岐の場合に
は、ターゲットアドレスが出力されなくても、その命令
がアドレス何番地にストアされているのかがわかれば、
メモリにストアされているその命令のコードを参照する
ことにより、ジャンプ先、分岐先のアドレスが判明す
る。当該命令がアドレス何番地にストアされているか
は、その前に発生したダイレクトジャンプまたは分岐か
ら何クロック目に実行されているかで判明する。
【0085】次にPCトレースの出力例を図を用いて説
明する。
【0086】(例1)分岐命令のPCトレース 図11に分岐命令のPCトレース出力の例を示す。最初
の分岐成立の分岐命令beqでは、TPCにターゲットPCを
出力していないので、PCST[2:0]にJMPコードを出力し、
TPCにターゲットPCの出力を開始する。分岐不成立の分
岐命令bneでは、PCST[2:0]にSEQコードを出力する。2
番目の分岐成立の分岐命令bneはダイレクトジャンプで
あり、最初の分岐命令のターゲットPCを出力している
ので、TPCにターゲットPCを出力しない。PCST[2:0]に
は、BRTコードを出力する。
【0087】(例2)インダイレクトジャンプ命令のP
Cトレース 図12にインダイレクトジャンプ命令のPCトレース出
力の例を示す。最初のインダイレクトジャンプ命令jrl
では、PCST[2:0]にJMPコードを出力し、TPCにターゲッ
トPCの出力を開始する。分岐不成立の分岐命令bneで
は、PCST[2:0]にSEQコードを出力する。2番目のインダ
イレクトジャンプ命令jr2では、最初のインダイレクト
ジャンプ命令のターゲットPCの出力を中止して、jr2
のターゲットPCをTPCへ出力する。PCST[2:0]にはJMP
コードを出力する。
【0088】(例3)例外とインダイレクトジャンプ命
令のPCトレース 図13に例外とインダイレクトジャンプ命令のPCトレ
ース出力の例を示す。ソフトウエアブレーク命令break
例外が発生すると、PCST[2:0]にEXPコードを出力し、TP
Cに例外ベクタコードの出力を開始する。分岐不成立の
分岐命令bneでは、PCST[2:0]にSEQコードを出力する。
インダイレクトジャンプ命令jr2では、jr2のターゲット
PCをTPCへ出力し、PCST[2:0]には、JMPコードを出力
する。
【0089】(例4)デバッグ例外発生時にPCを出力
していない場合のPCトレース 図14にデバッグ例外発生時のPCST[2:0]の出力タイミ
ングの例を示す。同図において、DM信号は、ハイレベル
でデバッグモード中であることを示し、ローレベルでノ
ーマルモード中であることを示す、プロセッサコア20
中の内部信号である。プロセッサコア20がデバッグ例
外あるいはデバッグリセットを発生すると、デバッグモ
ードに入る。このとき、PCトレース回路32はPCST
[2:0]出力にDBMコードを出力する。ターゲットPCを出
力していないときは、デバッグ例外を発生した命令の実
行終了直後にデバッグモードになる。デバッグ例外を発
生した直前の命令までのPCトレース情報が出力され
る。
【0090】(例5)デバッグ例外発生時にPCを出力
している場合のPCトレース 図15にデバッグ例外発生時に、ターゲットPCを出力
している場合のPCST[2:0]出力タイミングを示す。ター
ゲットPCを出力している時は、そのターゲットPCが
完了した後、デバッグモードになる。デバッグ例外を発
生した直前の命令までのPCトレース情報が出力され
る。ターゲットPCを出力している間は、PCST[2:0]に
はSTLが出力される。
【0091】(例6)デバッグモードからノーマルモー
ドへの移行時のPCトレース 図16にデバッグモードからの復帰時のPCST[2:0]の出
力タイミングを示す。デバッグ例外、デバッグリセット
からの復帰命令DERET命令の分岐ディレイスロット命令
までがデバッグモードに属する。DERET命令の戻り先の
命令からノーマルモードになり、PCトレースが有効に
なる。
【0092】<トレーストリガの詳細説明>PCST[2:0]
信号へのトレーストリガの出力について説明する。命令
アドレストレーストリガ、データアドレストレーストリ
ガ、プロセッサバストレーストリガのいずれかが発生し
た場合、次のような論理でトレーストリガ情報がPCST
[2:0]に出力される。 (1)その時に分岐成立の分岐命令もしくはジャンプ命
令が実行されているか、例外が発生している場合 ここにおいてもしトレーストリガが発生しなければ、PC
ST[2:0]にはJMP、BRT、EXPコードが出力されるはずであ
る。この(1)の場合、にはトレーストリガが発生して
もPCST[2:0]の出力は変化せずに保留され、直後の
(2)または(3)のケースで、トレーストリガ情報が
出力される。 (2)その時にパイプラインがストールしている場合 ここにおいてもしトレーストリガが発生しなければ、PC
ST[2:0]には、STLコードが出力されるはずである。この
(2)の場合、トレーストリガが発生すると、PCST[2:
0]にはTSTコードが出力される。 (3)(1)及び(2)以外の場合、すなわちパイプラ
インが順次実行をしている場合 ここにおいてもしトレーストリガが発生しなければ、PC
ST[2:0]にはSEQコードが出力されるはずである。この
(3)の場合、トレーストリガが発生すると、PCST[2:
0]にはTSQコードが出力される。
【0093】以下に実際の例を波形図にて示す。
【0094】(例1)トレーストリガの発生例 図17に、通常の命令を順次実行中のトレーストリガの
発生例を示す。add命令実行中にトレーストリガが発生
したので、トレーストリガのコードTSQを出力する。
【0095】(例2)例外発生命令実行中にトレースト
リガが発生した場合の例 図18に、例外発生命令実行中にトレーストリガが発生
した例を示す。ソフトウエアブレーク命令break実行中
にトレーストリガが発生したが、break命令実行のクロ
ックではPCST[2:0]信号に例外発生のコードEXPを出力
し、次のクロックでトレーストリガのコードを出力す
る。この例ではストール状態なので、TSTコードを出力
する。
【0096】(例3)インダイレクトジャンプ命令実行
中にトレーストリガが発生した場合の例 図19に、インダイレクトジャンプ命令実行中にトレー
ストリガが発生した場合の例を示す。インダイレクトジ
ャンプ命令jr2を実行中にトレーストリガが発生した
が、jr2命令実行のクロックではPCST[2:0]信号にジャン
プのコードJMPを出力し、次のクロックでトレーストリ
ガのコードを出力する。この例では命令実行状態なの
で、TSQコードを出力する。
【0097】<トレースメモリインターフェース回路の
説明>図20に、デバッグツール60内のトレースメモ
リインターフェース660とトレースメモリ670の構
成図を示す。
【0098】デバッグモジュール60から出力されたTP
C及びPCST[2:0]は、トレースデータレジスタ663を通
してトレースメモリ670へ書き込まれる。この時のア
ドレスの値は、トレースアドレスカウンタ662から供
給される。PCST[2:0]はトレーストリガデコーダ664
にも入力されており、トレーストリガの発生をトレース
メモリコントロール回路661へ伝える。トレースアド
レスカウンタの初期値の設定、インクリメント/停止の
指示は、トレーストリガデコーダ664の出力結果に基
づいてトレースメモリコントロール回路661が行な
う。
【0099】コントローラ630がトレースメモリ67
0の内容を読み出す場合には、コントローラアドレスレ
ジスにアドレスを設定してトレースメモリコントロール
回路661にリード要求を出すと、データがコントロー
ラデータレジスタ667に書き込まれるので、これを読
み出す。
【0100】コントローラ630がトレースメモリ67
0へデータを書き込む場合には、コントローラアドレス
レジス665にアドレスを設定し、コントローラデータ
レジスタ667にデータを設定し、トレースメモリコン
トロール回路661にライト要求を出す。
【0101】<低消費電力化の詳細説明>図21に、デ
バッグモジュール内の電源供給の構造を示す。
【0102】デバッグツールが接続されていない場合、
信号DBGE*はハイレベルになっている。ユーザリセット
時にこのDBGE*信号がハイレベルの場合には、電源供給
スイッチ38が切断され、シリアルモニタバス回路3
4、PCトレース回路32には、電源が供給されなくな
る。これらの回路は、外部デバッグツールが接続されて
いない時には使用する意味がないので、電源を供給しな
いことにより、マイクロプロセッサ全体での消費電力を
低減することができる。
【0103】デバッグツールが接続されていない場合で
も、命令/データアドレスブレーク回路31、プロセッ
サバスブレーク回路33及びレジスタ回路35には電源
が供給され、命令/データアドレスブレークとプロセッ
サバスブレークの機能は機能する。デバッグ例外のベク
タアドレスをユーザ領域に変更することにより、これら
のハードウエアブレーク機能をユーザがデバッグの用途
に使用できる。
【0104】<デバッグモジュール初期化回路の詳細説
明>図22に、デバッグモジュール初期化回路を示す。
【0105】デバッグモジュールが接続されていない時
にはDBGE*がハイレベルになるので、ユーザリセットが
アサートされると、デバッグモジュール初期化信号がア
サートされ、デバッグモジュール30が初期化される。
【0106】デバッグツールが接続されていない場合で
も、電源ラインへのノイズなどが原因でデバッグモジュ
ール自体が誤動作してしまい、プロセッサコア20へ割
込みを要求したりする可能性がある。デバッグツールは
接続されていないので、デバッグリセット(DRESET*)信
号を入れることはできない。ユーザリセットではデバッ
グモジュールを初期化できないと、このデバッグモジュ
ールを初期化する手段がない。従って、デバッグツール
が接続されていない場合に、ユーザリセットがデバッグ
モジュールを初期化することは極めて重要である。
【0107】逆に、デバッグツールが接続されている場
合には、DBGE*がローレベルになるので、ユーザリセッ
トがアサートされても、デバッグモジュール初期化信号
はアサートされず、デバッグモジュール30が初期化さ
れない。
【0108】この動作は、ユーザリセットの直後にトレ
ーストリガをかけたい場合などに極めて有効である。も
しユーザリセットでデバッグモジュール30が初期化さ
れてしまうと、例えばトレーストリガをかけるためには
いったんデバッグモードに入って必要なレジスタを設定
し直さなければならない。しかし、デバッグモードに入
ることで、その間、実時間動作ができなくなってしまう
ので、とらえようとしている現象がとらえられない可能
性が高い。
【0109】電源ラインへのノイズなどが原因でデバッ
グモジュール自体が誤動作してしまった場合でも、デバ
ッグツールが接続してある場合、デバッグツールからの
デバッグリセット(DRESET*)で初期化できるので問題な
い。
【0110】
【効果】以上詳細に説明したように、本発明によれば、
従来例に比べて、次のような効果が得られる。
【0111】従来例1に比べて、次のような効果が得ら
れる。 ・モニタプログラムをデバッグツール側のメモリで走ら
せるため、ユーザのメモリを使用しない。 ・モニタへ入るために専用のデバッグ例外を用意してい
るため、ユーザの割込みに制限を加えない。 ・ユーザターゲットシステムにシリアルインターフェー
スを用意する必要がない。 ・ハードウエアブレークポイントが使用可能である。
【0112】従来例2に比べて、次のような効果が得ら
れる。 ・マイクロプロセッサ内部にシーケンサをもつ必要がな
いため、マイクロプロセッサ内部に追加されるデバッグ
のためのロジック回路が簡単である。 ・モニタプログラムによって、レジスタにアクセスする
ため、派生品のマイクロプロセッサでレジスタが追加さ
れるような場合でも、モニタを変更するだけで容易にそ
れらに対するアクセスが可能になる。 ・上記2項の理由により、マイクロプロセッサコアに多
種類の周辺回路を付け加えれている場合ても、デバッグ
のためのロジック回路を共通化できる。この共通モジュ
ールを周辺回路の一部としてマイクロプロセッサに内蔵
することで、プロセッサコアが共通で周辺回路が異なる
多様な派生マイクロプロセッサに対して共通のデバッグ
ツールを適用することが可能となる。
【0113】従来例3に比べて、次のような効果が得ら
れる。 ・デバッグツールのハードウエア仕様を共通化できる。 ・デバッグツールとの接続のための信号の本数を減らせ
る。 ・上記理由により、プローブを小型化、低価格化でき
る。 ・ユーザターゲット上のマイクロプロセッサがメモリや
I/Oをアクセスするので、デバッグツールに要求され
るタイミング条件が改善される。 ・デバッグツールに接続されない信号に関しては、影響
を及ぼさない。 ・デバッグツールとマイクロプロセッサ間の通信速度を
必要に応じて、遅くできる。 ・上記理由により、高速のマイクロプロセッサにも対応
できる。
【0114】従来例4に比べて、次のような効果が得ら
れる。 ・デバッグツールを用いて、ターゲットメモリやI/O
へのアクセス及び実行制御が実現される。 ・キャッシュメモリで実行された命令についても、その
アドレス情報がトレースできる。
【図面の簡単な説明】
【図1】従来例1の構成を示す図。
【図2】従来例2の構成を示す図。
【図3】従来例3の構成を示す図。
【図4】従来例4の構成を示す図。
【図5】本発明の一実施例の構成を示す図。
【図6】本発明の一実施例中のデバッグモジュールの構
成を示す図。
【図7】本発明の一実施例中のデバッグツールの構成を
示す図。
【図8】本発明の一実施例中のシリアルモニタバスに関
わる回路の概略図を示す図。
【図9】本願の一実施例中のシリアルモニタバスのライ
トバスオペレーションのタイミングチャート。
【図10】本願の一実施例中のシリアルモニタバスのラ
イトバスオペレーションのタイミングチャート。
【図11】本願の一実施例における分岐命令のPCトレ
ース出力の例を示すタイミングチャート。
【図12】本願の一実施例におけるインダイレクトジャ
ンプ命令のPCトレース出力の例を示すタイミングチャ
ート。
【図13】本願の一実施例における例外とインダイレク
トジャンプ命令のPCトレース出力の例を示すタイミン
グチャート。
【図14】本願の一実施例におけるデバッグ例外発生時
のPCST[2:0]の出力タイミングの例を示すタイミングチ
ャート。
【図15】本願の一実施例において、デバッグ例外発生
時にターゲットPCを出力している場合のPCST[2:0]出
力タイミングを示すタイミングチャート。
【図16】本願の一実施例におけるデバッグモードから
の復帰時のPCST[2:0]の出力タイミングを示すタイミン
グチャート。
【図17】通常の命令を順次実行中のトレーストリガの
発生の例のタイミングチャート。
【図18】例外発生命令実行中にトレーストリガが発生
した場合の例のタイミングチャート。
【図19】インダイレクトジャンプ命令実行中にトレー
ストリガが発生した場合の例のタイミングチャート。
【図20】デバッグツール60内のトレースメモリイン
ターフェースとトレースメモリの構成を示す図。
【図21】デバッグモジュール内の電源供給部の構成を
示す図。
【図22】デバッグモジュール初期化回路の構成を示す
図。
【符号の説明】
10:マイクロプロセッサ 15:内部デバッグインターフェース 16:内部プロセッサバス 20:プロセッサコア 30:デバッグモジュール 31:命令/データアドレスブレーク回路 32:PCトレース回路 33:プロセッサバスブレーク回路 34:シリアルモニタバス回路 35:レジスタ回路 36:外部インターフェース回路 37:分周回路 38:電源供給スイッチ 40:メモリ 50:I/O 60:デバッグツール 70:ユーザターゲットシステム 71:外部デバッグインターフェース 90:プロセッサバス 342:シリアル出力回路A 343:シリアル入力回路A 620:通信インターフェース 630:コントローラ 640:モニタメモリ 650:モニタメモリインターフェース 651:シリアル入力回路B 652:シリアル出力回路B 660:トレースメモリインターフェース 661:トレースメモリコントロール回路 662:トレースアドレスカウンタ 663:トレースデータレジスタ 664:トレーストリガデコータ 665:コントローラアドレスレジスタ 667:コントローラデータレジスタ 670:トレースメモリ 680:ランコントロール 690:ターゲットインターフェース

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】マイクロプロセッサの外部におかれるデバ
    ッグツールと接続してデバッグ機能を実現する論理手段
    を内蔵するマイクロプロセッサのリセット方法におい
    て、前記デバッグツールが前記マイクロプロセッサに接続さ
    れていない場合には、ユーザリセット信号が与えられら
    れたことに応答して前記論理手段を初期化し、 前記デバッグツールが前記マイクロプロセッサに接続さ
    れている場合には、前記ユーザリセット信号が与えられ
    ても前記論理手段の初期化を抑止する ことを特徴とする
    マイクロプロセッサのリセット方法。
  2. 【請求項2】前記デバッグツールからデバッグリセット
    信号が与えられたことに応答して前記デバッグ機能を実
    現する論理手段をリセットすることを特徴とする請求項
    1記載のマイクロプロヤッサのリセット方法。
JP6339959A 1994-12-28 1994-12-28 マイクロプロセッサのリセット方法 Expired - Lifetime JP2664644B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6339959A JP2664644B2 (ja) 1994-12-28 1994-12-28 マイクロプロセッサのリセット方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6339959A JP2664644B2 (ja) 1994-12-28 1994-12-28 マイクロプロセッサのリセット方法

Publications (2)

Publication Number Publication Date
JPH08185245A JPH08185245A (ja) 1996-07-16
JP2664644B2 true JP2664644B2 (ja) 1997-10-15

Family

ID=18332389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6339959A Expired - Lifetime JP2664644B2 (ja) 1994-12-28 1994-12-28 マイクロプロセッサのリセット方法

Country Status (1)

Country Link
JP (1) JP2664644B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014120050A (ja) * 2012-12-18 2014-06-30 Renesas Electronics Corp 半導体装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6455652A (en) * 1987-08-27 1989-03-02 Toshiba Corp Data processor

Also Published As

Publication number Publication date
JPH08185245A (ja) 1996-07-16

Similar Documents

Publication Publication Date Title
JP2752592B2 (ja) マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法
US5978902A (en) Debug interface including operating system access of a serial/parallel debug port
US6094729A (en) Debug interface including a compact trace record storage
KR0168656B1 (ko) 데이터 처리 시스템
US5630102A (en) In-circuit-emulation event management system
US5978937A (en) Microprocessor and debug system
US5640542A (en) On-chip in-circuit-emulator memory mapping and breakpoint register modules
US6094730A (en) Hardware-assisted firmware tracing method and apparatus
KR100350568B1 (ko) 디버그기능을수행하기위한데이타처리시스템및방법
US6175914B1 (en) Processor including a combined parallel debug and trace port and a serial port
US6145123A (en) Trace on/off with breakpoint register
US6041406A (en) Parallel and serial debug port on a processor
US20020144235A1 (en) Debugging embedded systems
JPH011039A (ja) インサーキット・エミュレータ
JP2002202900A (ja) デバッグ装置
US6760864B2 (en) Data processing system with on-chip FIFO for storing debug information and method therefor
JP3260083B2 (ja) デバッグシステム及びデバッグ方法
JP2974601B2 (ja) マイクロプロセッサ及びデバッグシステム
US7765095B1 (en) Conditional branching in an in-circuit emulation system
US8103496B1 (en) Breakpoint control in an in-circuit emulation system
JP2664644B2 (ja) マイクロプロセッサのリセット方法
JP2003263339A (ja) デバック機能内蔵型マイクロコンピュータ
US20020188813A1 (en) On-chip hardware breakpoint generator with comprehensive memory operation detection
JPH02186448A (ja) デバッグ環境を備えた集積回路
JPH10222391A (ja) エミュレータ

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080620

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090620

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090620

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100620

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100620

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 15

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 15

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130620

Year of fee payment: 16

EXPY Cancellation because of completion of term