JP2974601B2 - マイクロプロセッサ及びデバッグシステム - Google Patents
マイクロプロセッサ及びデバッグシステムInfo
- Publication number
- JP2974601B2 JP2974601B2 JP7341675A JP34167595A JP2974601B2 JP 2974601 B2 JP2974601 B2 JP 2974601B2 JP 7341675 A JP7341675 A JP 7341675A JP 34167595 A JP34167595 A JP 34167595A JP 2974601 B2 JP2974601 B2 JP 2974601B2
- Authority
- JP
- Japan
- Prior art keywords
- output
- signal
- processor core
- jump
- debug
- 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
Links
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Description
ちのプログラムカウンタをトレースする機能(PCトレ
ース機能)を有すると共に、デバッグ機能のうちのあら
かじめ設定したアドレス、データがアクセスされたとき
に、外部にそれを通知する機能(トリガ機能)を有する
マイクロプロセッサ及びデバッグシステムに関する。
す。この従来例は一般にインサーキットエミュレータと
呼ばれるデバッグシステムである。
は、ユーザーターゲットシステム500とユーザーター
ゲットシステム500をデバッグするためのデバッガ5
05から構成される。ユーザーターゲットシステム50
0はさらに、マイクロプロセッサ501、メモリ50
3、I/O502からなる。デバッガ505は、デバッ
グ用マイクロプロセッサ506とモニタプログラムメモ
リ507から構成される。
には、ターゲットボード上のマイクロプロセッサ501
を取り外すか又は無効にして、この部分にデバッガ50
5のプローブを接続して、デバッガ505上のデバッグ
用マイクロプロセッサ506を代わりに動作させる。デ
バッグ用マイクロプロセッサ506はデバッガ505上
のモニタプログラムメモリ507に格納されているモニ
タプログラムを実行することにより、ユーザープログラ
ムの実行を制御している。
ユーザーターゲットシステム500上のメモリ503に
格納されているプログラムを実行し、メモリ503上の
データをアクセスしたり、I/O502をアクセスす
る。また、デバッガ505はトレースメモリ508を有
し、デバッグ用マイクロプロセッサ506は、マイクロ
プロセッサ501からは得られないトレース情報を出力
する。これにより、プロセッサバスからだけではトレー
スできないプロセッサの内部状態の一部、例えばプログ
ラムカウンタ(PC)の値がトレース可能となる。
テム500上のマイクロプロセッサのすべてのピンにデ
バッガ505を接続しなければならない。プロセッサの
ピンには、例えばアドレス信号30本、バイトイネーブ
ル信号4本、リード信号、ライト信号、リード応答信
号、ライト応答信号、データ信号32本、合計70本の
信号がある。接続するピン数が多いため、プローブが高
価となり、しかもプロービングが不安定になることが多
かった。また、ターゲットシステム500上のメモリ5
03にアクセスする場合とデバッガ505のモニタプロ
グラムメモリ507にアクセスする場合とで、バスを切
り替えなければならないため、動作周波数の高いプロセ
ッサでは実現が困難であった。
セッサである場合には、パッケージやピンの数、位置が
異なるために、本質的には同じデバッガが使用できるに
もかかわらず、プローブを派生品毎に用意しなければな
らなかった。また、プローブを接続することによりユー
ザーターゲットシステム500で使用する信号にも影響
を与え、ユーザーターゲットシステム500の動作その
ものを不安定にする場合があった。
示す。この従来例は、一般にROMモニタと呼ばれるデ
バッグシステムである。
ム510上にホストコンピュータ517と接続するため
のシルアルインターフェース512を用意して、メモリ
513中にモニタプログラム514を格納しておく。マ
イクロプロセッサ511は、このモニタプログラム51
4を実行させることによりI/O515、メモリ51
3、レジスタ516にアクセスする。さらに、ソフトウ
ェアブレイク命令を使用して、ユーザープログラムの実
行制御を行う。
をユーザーが使用するメモリ513で実行するために、
ユーザーターゲットシステム510のメモリシステムの
動作が完全でない場合に、モニタプログラム自身が安定
して動作しない場合があった。ユーザーのメモリ量に余
裕が無い場合には、モニタプログラムが占有するアドレ
ス空間が確保できないことがあった。さらに、モニタモ
ードに入るために、ユーザーの割り込みの一部を使用し
なければならないので、プログラムの種類によってはデ
バッグが不可能なことがあった。また、予めユーザータ
ーゲットシステム510上に、シリアルインターフェー
スの回路を実装しなければならないなど、デバッグ後は
使用しない可能性のある回路をターゲットシステムに設
ける必要があった。さらに、デバッグのためのハードウ
ェーアブレークポイント等の資源を備えていないため、
デバッグ機能が貧弱であり、トレースも取れなかった。
来例を示す。
ム520上のマイクロプロセッサ521中にデバッグツ
ール529との通信に必要なシリアルインターフェース
526とデバッグツール529から送られてきた電気信
号を解釈して実行するシーケンサ525を内蔵する。シ
ーケンサ525は、送られてきた信号にしたがってユー
ザープログラムの実行を一時停止して、レジスタ528
にアクセスしたり、バスコントローラ527を使用して
メモリ524やI/O523にアクセスし、ユーザープ
ログラムの実行制御を行う。シリアルインターフェース
526からの信号は、直接にはホストコンピュータ53
0に接続できないことが多いので、デバッグツール52
9がホストコンピュータからのコマンドをマイクロプロ
セッサ521が理解できる電気信号に変換したり、また
マイクロプロセッサ521からの信号をホストコンピュ
ータ530が理解できるデータ形式に変換する。
クロプロセッサ521に内蔵して、さらに、シーケンサ
525がプロセッサ521にアクセスするため、デバッ
グツール529との接続のためのロジック回路が複雑と
なり、チップ上での面積も大きくなった。また、レジス
タの追加などが発生した場合に、シーケンサ525を変
更しなければならないので、変更のための作業に労力を
要していた。また、この従来例でもトレースは取れなか
った。
のデバッグシステムでは、ユーザーターゲットシステム
とデバッグ用プロセッサをプロセッサバスで接続するた
めに、接続に要する信号が多くなるという欠点があっ
た。また、図42に示す従来のデバッグシステムでは、
デバッガ上のマイクロプロセッサがユーザーターゲット
システムのメモリ、I/Oをアクセスしなければならな
く、アクセスのタイミングが困難であった。
に記憶される従来のデバッグシステムでは、ユーザーが
使用するメモリ空間が少なくなるという不具合を招いて
いた。さらに、デバッグを確実かつ十分に行うことが困
難となっていた。
を解釈して実行するシーケンサをマイクロプロセッサに
内蔵してデバッグを行う従来例では、デバッグツールと
の接続のための構成が複雑かつ大型化していた。また、
マイクロプロセッサの構成のの追加などが発生した場合
にはシーケンサを変更しなければならず、変更のために
多大な労力が必要になっていた。
ステムでは、PCトレースができなかったり、PCトレ
ースができる場合でもユーザーターゲットシステムとデ
バッグ用のプロセッサをプロセッサバスで接続するため
に、接続に要する信号が多くなるという欠点があった。
また、図42に示した従来のデバッグシステムでは、デ
バッガ上のマイクロプロセッサがユーザーターゲットシ
ステムのメモリ、I/Oをアクセスしなければならな
く、アクセスのタイミングが困難であった。
従来のデバッグシステムでは、トリガ機能がなかった。
また、図42に示した従来例では、デバッグ専用のマイ
クロプロセッサにトリガ機能を設けることができるが、
トリガ情報を出力する信号が増えるなどの問題があっ
た。また、図41の方法には、デバッグ用のプロセッサ
をプロセッサバスで接続するために、接続に要する信号
が多くなるという欠点があり、また、デバッグ上のマイ
クロプロセッサがユーザーターゲットシステムのメモ
リ、I/Oをアクセスしなければならなく、アクセスの
タイミングが困難であった。
たものであり、ユーザーターゲットシステム上のマイク
ロプロセッサにデバッグ機能を備えることによって、ユ
ーザーターゲットシステムとデバッガとの接続に要する
信号を削減することを目的とする。
ステム上のマイクロプロセッサにデバッグ機能を備え、
デバッグ時でもユーザーターゲットシステム上でマイク
ロプロセッサを動作させることによって、ユーザーター
ゲットシステム上のメモリやI/Oのアクセスを容易に
することを他の目的とする。
ステム上のマイクロプロセッサにデバッグ機能を備える
ことによって、少ない本数の信号によってPCトレース
機能を実現することを他の目的としている。
ステム上のマイクロプロセッサにデバッグ機能を備え、
デバッグ時でもユーザーターゲットシステム上でマイク
ロプロセッサを動作させることによって、ユーザーター
ゲットシステム上のメモリやI/Oのアクセスを容易に
することを他の目的とする。
ステム上のマイクロプロセッサにデバッグ機能を備え、
ハードウェアブレーク機能とトリガ機能のアドレス及び
データ比較回路を共用したり、PCトレースの情報出力
信号を利用してトリガ情報を外部に出力することによ
り、最小のハードウェアによってトリガ機能を実現する
ことを他の目的としている。
に、本発明の第1の特徴は、ユーザーターゲットシステ
ムをデバッグするモニタプログラムを含むデバッグツー
ルと、ユーザープログラム又はモニタプログラムを実行
するプロセッサコアと、前記プロセッサコアと内部デバ
ッグインターフェース又はプロセッサバスを介して接続
され、前記デバッグツールと外部デバッグインターフェ
ースを介して接続され、モニタプログラムを前記プロセ
ッサコアが実行可能とするための前記デバッグツールと
のインターフェース手段、及び前記プロセッサコアがユ
ーザープログラムの実行中にユーザープログラムからモ
ニタプログラムへ移行するための割り込み又は例外を前
記プロセッサコアに要求する実行制御手段を備えたデバ
ッグモジュールとからなるマイクロプロセッサと、前記
マイクロプロセッサとプロセッサバスにより接続されて
デバッグの対象となるユーザーターゲットシステムを構
成し、前記マイクロプロセッサがユーザープログラムを
実行するために必要となる情報を記憶するメモリと、前
記マイクロプロセッサとプロセッサバスにより接続され
てデバッグの対象となるユーザーターゲットシステムを
構成するI/O装置とを有するマイクロプロセッサであ
ることである。
ットシステム上のマイクロプロセッサにデバッグ機能を
備えて、ユーザーターゲットシステムとデバッガとの接
続に要する信号を削減することができる。また、デバッ
グ時でもユーザーターゲットシステム上でマイクロプロ
セッサを動作させることによって、ユーザーターゲット
システム上のメモリやI/Oのアクセスを容易にするこ
とができる。
するプロセッサコアと、前記プロセッサコアと内部デバ
ッグインターフェースを介して接続され、前記プロセッ
サコアから出力される、実行している命令のアドレスの
値を、命令のアドレスのビット幅よりも少ない本数のプ
ログラムカウンタ出力信号に出力するプログラムカウン
タトレース回路と、を有するマイクロプロセッサである
ことである。
ット上のマイクロプロセッサにデバッグ機能を備えるこ
とによって、プログラムカウンタトレース出力に必要な
インターフェース信号を削減することができる。
するプロセッサコアと、設定したアドレスとアクセスさ
れたアドレスが一致したとき、あるいは設定したアドレ
スとデータがアクセスされたアドレスとデータに一致し
たときに、前記プロセッサコアへブレークを要求する
か、トリガ出力要求信号を有効にするブレーク回路と、
前記ブレーク回路からのトリガ出力要求信号が有効にな
ったとき、外部ステータス信号を有効にするプログラム
カウンタトレース回路を有するマイクロプロセッサであ
ることである。
ット上のマイクロプロセッサにデバッグ機能を備えるこ
とによって、ハードウェハブレーク機能とトリガ機能の
アドレス比較回路を共用したり、プログラムカウンタト
レースの情報出力信号を利用してトリガ情報を外部に出
力することにより、最小のハードウェハによってトリガ
機能を実現することができる。
実施形態を示す。
セッサ及びデバッグシステムの構成図を示す。
ザーターゲットシステム70とデバッガ60からなる。
ッグ機能を内蔵したマイクロプロセッサ10と、メモリ
40と、I/O50とから構成される。
ア20とデバッグモジュール30から構成される。プロ
セッサコア20は、プロセッサバス80を介してメモリ
40やI/O50をアクセスし、プログラムを実行す
る。また、プロセッサコア20は、内部デバッグインタ
ーフェースとプロセッサバス80によってデバッグモジ
ュール30と接続されている。デバッグモジュール30
は外部デバッグインターフェースによってデバッガ60
と接続されている。
を実行しているデバッグモードと、ユーザープログラム
を実行しているノーマルモードの2つの実行モードがあ
る。
20がデバッグ例外あるいはデバッグリセットを発生す
ると、デバッグモードになる。プロセッサコア20は、
デバッグ例外のベクタアドレス(FF20_0200)
あるいはデバッグリセットのベクタアドレス(FF20
_0000)へジャンプし、デバッグモード信号DMを
アサートする。これらのベクタアドレスに対応するメモ
リは、デバッガ60上におかれている。プロセッサコア
20は、デバッグモジュール30を介してデバッガ60
上のモニタプログラムを実行する。モニタプログラムで
は、メモリやレジスタのリードやライト、ユーザープロ
グラムの終了アドレスの指定、ユーザープログラムの実
行開始アドレスの指定などの実行制御機能を実現する。
プロセッサコア20が、ノーマルモードへの復帰命令を
実行することによってノーマルモードへ復帰し、ユーザ
ープログラムの実行を開始する。プロセッサコア20
は、ノーマルモードへの復帰命令で指定されるアドレス
へジャンプし、デバッグモード信号DMをネゲートす
る。
では、デバッグシステムは、ユーザープログラムを実行
する。このとき同時に、PC(プログラムカウンタ)情
報をトレースする(PCトレース機能)。デバッグシス
テムは、ハードウエアブレーク、ソフトウエアブレー
ク、デバッグ割り込み、デバッグリセットなどによっ
て、プロセッサコア20へデバッグ例外/デバッグリセ
ットを要求し、デバッグモードへ制御を移すことができ
る。
ース機能、ハードウエアブレーク機能、ソフトウエアブ
レーク機能、デバッグ割り込み機能、デバッグリセット
機能、トレーストリガ機能について説明する。
がユーザープログラムを実行しているときにPCの値を
トレースする機能である。プロセッサコア20が、メモ
リ40上のユーザープログラムを実行しているときに、
そのPCトレース情報を内部デバッグインターフェース
へ出力し、デバッグモジュールがその情報を入力して情
報を加工した後、外部デバッグインターフェースを介し
てデバッガ60へ出力することによって実現される。
レスの命令が実行されたり、データがアクセスされると
きに、プロセッサコア20がデバッグ例外を発生し、デ
バッガ60のモニタプログラムへ制御を移す機能であ
る。この機能は、プロセッサコア20が内部デバッグイ
ンターフェースとプロセッサバス80に出力する、命令
実行アドレス、データアクセスアドレスやそのデータの
値をデバッグモジュール30がデバッグモジュール30
内のレジスタに設定されているアドレスやデータの値と
比較し、それが一致したときにデバッグ例外あるいはデ
バッグ割り込みをプロセッサコア20へ要求することに
よって実現される。
コア20がソフトウエアブレーク命令を実行することに
よりデバッグ例外を発生するものである。これによりモ
ニタプログラムへ制御を移すことができる。
20のデバッグ割り込み信号をアサートすることによ
り、プロセッサコア20がデバッグ例外を発生する機能
である。これによりモニタプログラムへ制御を移すこと
ができる。
20のデバッグリセット信号をアサートすることによ
り、プロセッサコア20がデバッグリセットを発生する
機能である。これにより、プロセッサコア20とデバッ
グモジュール30の内部状態が初期化され、プロセッサ
コア20はデバッグモードとなり、デバッグリセットの
ベクタアドレス(FF20_0000)からプログラム
の実行を開始する。
命令が実行されたり、データがアクセスされたときに、
マイクロプロセッサ10が外部信号にその状態を出力す
る機能である。デバッガ60がこの信号を入力し、PC
トレースのON/OFFを制御したりする。この機能
は、プロセッサコア20が内部デバッグインターフェー
スとプロセッサバス80に出力する、命令実行アドレ
ス、データアクセスアドレスやそのデータの値をデバッ
グモジュール30が、デバッグモジュール30内のレジ
スタに設定されているアドレスやデータの値と比較し、
それらが一致したときにトリガ情報をデバッガ60へ出
力することによって実現される。
らに詳しく説明する。
ックを示す。図2において、デバッグモジュール30
は、命令/データアドレスブレーク回路31、PCトレ
ース回路32、プロセッサバスブレーク回路33、シリ
アルモニタバス回路34、レジスタ回路35、外部イン
ターフェース回路36、クロック供給回路37から構成
される。
は、プロセッサコア20と内部デバッグインターフェー
スで接続されている。プロセッサコア20から出力され
る命令アドレスを入力し、その値がレジスタ回路35に
設定されている命令アドレスと一致したときプロセッサ
コア20へ命令アドレスブレーク例外を要求する。ま
た、プロセッサコア20から出力されるデータアドレス
を入力し、その値がレジスタ回路35に設定されている
データアドレスと一致したときプロセッサコア20へデ
ータアドレスブレーク例外を要求する。
20と内部デバッグインターフェースで接続されてい
る。プロセッサコア20から出力されるPCトレース情
報を入力し、その情報を加工して外部インターフェース
回路36へ出力する。
セッサコア20とプロセッサバス80で接続されてい
る。プロセッサバス80上のバスサイクルを監視して、
レジスタ回路35に設定されたアドレスとデータのバス
サイクルが実行されると、プロセッサコア20へ例外を
要求する。
サバス80によってプロセッサコア20と接続され、プ
ロセッサコア20がデバッガ60上のモニタプログラム
を実行するときに、そのインターフェースを行う。
30に内蔵されている制御レジスタを含み、デバッグモ
ジュールの機能を制御する。プロセッサバス80と内部
デバッグインターフェースによってプロセッサコア20
と接続され、プロセッサコア20によって制御レジスタ
の内容をリード/ライトすることができる。また、制御
レジスタの内容は、デバッグモジュールの各回路やプロ
セッサコア20へ出力され、デバッグ機能が制御され
る。
グモジュール30内のPCトレース回路32、シリアル
モニタバス回路34やプロセッサコア20とデバッガ6
0とのインターフェースを制御する回路である。
LKを分周する回路である。シリアルモニタバス回路は
分周したクロックCLK2で動作する。
0と外部デバッガ60との専用インターフェース信号は
次の8本である。 1. SDAO/TPC :Output 2. SDI/DINT*:Input 3. DCLK :Output 4. DRESET* :Input 5−7.PCST[2:0]:Output 8. DBGE* :Input
k):Output この信号はデバッガ60へのクロック出力である。シリ
アルモニタバス、PCトレースインターフェースの信号
のタイミングは、すべてこのデバッグクロックDCLK
で規定される。シリアルモニタバス動作のときは、プロ
セッサコア20の動作クロックの2分周クロックにな
る。
set):Input(プルアップ付き端子) この信号はデバッグリセット入力で、Low Acti
veとなる。DRESET*がアサートされると、デバ
ッグモジュールは初期化される(DBGE*には無関
係)。デバッグ60を使用しないときは、この端子を未
接続にする。
ce Status):Output この信号は以下のPCトレースステータス情報とシリア
ルモニタバスのモードを出力する。
り) 101(BRT):分岐/ジャンプ成立(PC出力な
し) 100(EXP):例外発生(例外ベクタのコード出力
あり) 011(SEQ):シーケンシャル実行(1命令実行し
たことを示す) 010(TST):パイプラインストール時のトレース
トリガ出力 001(TSQ):実行時のトレーストリガ出力 000(DBM):デバッグモード (0:Low、
1:Highレベル) (4)DBGE*(Debugger Enabl
e):Input(プルアップ付き端子)
す。外部にデバッガ60が接続されていないときは、H
igh(非接続NC)にし、デバッガ60が接続されて
いるときはLowを入力する。
E*信号がHighの)ときは、プロセッサコア20の
DEV信号はLowとなり、デバッグ例外のベクタアド
レスはFF20_0200になる。ユーザーリセット
(RESET*)によってデバッグモジュール機能が初
期化され、デバッガ機能が全てディスエーブル状態にな
る。出力信号(SDA0/TPC、DCLK、PCST
[2:0])は全てHi−zとなる。
*信号がLowの)ときは、プロセッサコア20のDE
V信号はHighとなり、デバッグ例外のベクタアドレ
スは、FF20_0200(モニタ領域内)になる。ユ
ーザーリセット(RESET*)ではデバッグモジュー
ルは初期化されない。
Data and AddressOutput/Ta
rget PC):Output デバッグモード(PCST=DBM)のときは、シリア
ルモニタバスインターフェースのSDAO(Serie
al Data and Address Outpu
t)として、ノーマルモード(PCST≠DBM)のと
きは、PCトレースインターフェースのTPC(Tar
get PC)として動作する。
d Address Output)(デバッグモー
ド,PCST=DBMのとき)は、データ、アドレス、
リード、ライト、バイトイネーブル信号を1ビットづつ
シリアルに出力する信号である。バスサイクル開始前に
スタートビットを出力する。(1クロック間Lowを出
力する。) 出力の順は、リード時は、スタートビット(Low)、
A[2]−A[19],R/W*BE[0]*−BE
[3]*である。ライト時は、スタートビット(Lo
w)、A[2]−A[19],R/W*,BE[0]*
−BE[3]*,D[0]−D[31]である。
モード,PCST≠DBMのとき)は、分岐/ジャンプ
命令のターゲットアドレスと例外/割り込みのベクタ番
号を出力するための信号である。ターゲットアドレス
は、下位アドレスA[2]からA[31]まで順に出力
される。
Data Input/Debug Interru
pt):Input(プルアップ付き端子) デバッグモード(PCST=DBM)のときは、シリア
ルモニタバスインターフェースのSDI(Sereal
Data input)として、ノーマルモード(P
CST≠DBM)のときは、PCトレースインターフェ
ースのDINT*(Debug Interrupt)
として作用する。
ut)(デバッグモード,PCST=DBMのとき)は
データ入力信号。リードのときは、外部からスタートビ
ット(1クロック間Low)が入力されると、次のクロ
ックからデータ入力を開始する。ライトのときLowが
入力されると、バスサイクルが終了する。
(Low)、D[0]−D[31]である。ライト時
は、終了ビット(Low)だけ入力する。
put)(ノーマルモード,PCST≠DBMのとき)
は、デバッガ60からのデバッグ割り込み入力である。
デバッグ60を使用しないときは、この端子を未接続に
する。
3において、レジスタ回路35は、アドレスデコーダ3
51とレジスタ部352からなる。
ア20のプロセッサバス80からのアドレス入力A[3
1:0]、リード信号RD*、ライト信号WR*、デバ
ッグモード信号DM、コアクロックCLKを入力する。
アドレスデコーダ351は、プロセッサコア20のバス
サイクル中のアドレスをデコードし、レジスタ部352
内のレジスタのアドレスに対するリードのときは、レジ
スタ部352内の対応するレジスタをリードするための
レジスタリード信号をアサートし、プロセッサコア20
のリード応答信号RDACK*をアサートする。
レスに対するライトのときは、レジスタ部352内の対
応するレジスタへライトするためのレジスタライト信号
をアサートし、プロセッサコア20のリード応答信号R
DACK*をアサートし、ライト応答信号WRACK*
をアサートする。
52をアクセスできない。このときは、アドレスデコー
ダ351は、リードバスサイクルのときはリード応答信
号RDACK*、ライトバスサイクルのときはライト応
答信号WRACK*をプロセッサコア20へアサートす
るだけである。従って、リードで読み出される値は不定
となり、ライトデータは無視される。
スタのメモリプロテクションビットMPがセットされて
いると、DCRレジスタを除く、レジスタ部352のレ
ジスタのアクセスは禁止される。アドレスデコーダ35
1は、リードバスサイクルのときはリード応答信号RD
ACK*、ライトバスサイクルのときはライト応答信号
WRACK*をプロセッサコア20へアサートするだけ
である。従って、リードで読み出される値は不定とな
り、ライトデータは無視される。
に動作する。
ol Register)レジスタ、IBS(Inst
ruction Break Status)レジス
タ、DBS(Data Break Status)レ
ジスタ、PBS(Processor Bus Bre
ak Status)レジスタ、IBA0(Instr
uction Break Address 0)レジ
スタ、IBC0(Instruction Break
Control 0)レジスタ、DBA0(Data
Break Address 0)レジスタ、DBC
0(Data Break Contrrol 0)レ
ジスタ、PBA0(Processor Bus Br
eak Address 0)レジスタ、PBD0(P
rocessor Bus Break Data
0)レジスタ、PBM0(Processor Bus
Break Data Mask 0)レジスタ、P
BC0(Processor Bus Break C
ontrol0)を含む。
セッサ10のデバッグリセットDRESET*がアサー
トされたとき、あるいは、デバッガ60が接続されてい
ないときのユーザーリセット(RESET*アクティブ
かつDBGE*=High)である。
l Register)を示す。
ある。 0:リアルタイムでPCトレース情報を出力するモード
になる。 1:PCトレース情報を完全に出力するモードになる。
(リアルタイム性は保証されない。) TMビットはPCトレース回路32へ出力される。 MRst:(Mask User Reset)(リセ
ット時:0)ユーザーリセットのマスクを指定するため
のビットである。 0:デバッグ例外中、ユーザーリセットをマスクする。 1:デバッグ例外中、ユーザーリセットは許可される。
回路36へ出力される。 MP:(Memory Protection)(リセ
ット時:1) 0:デバッグモードで、モニタ領域へのライトが可能で
ある。 1:デバッグモードで、DCRレジスタを除くモニタ領
域(FF20_0000〜FF3F_FFFF)へのラ
イトをプロテクトする。
シリアルモニタバス回路34へ出力される。
Interrupt)(リセット時:1) 0:プロセッサコア20のNmI発生をマスクする。 プロセッサコア20のNmiMask信号をLowにす
る。 1:プロセッサコア20のNmI発生を許可する。 MNmIビットはプロセッサコア20へ出力される。 MInt:(Mask Interrupt)(リセッ
ト時:1) 0:コアの外部割り込み(Int[5:0]*)の発生
をマスクする。 1:コアの外部割り込み(Int[5:0]*)の発生
を許可する。 MIntビットは、外部インターフェース回路36へ出
力される。 ENM:(Endian Memory) (ユーザー)リセット時のEndian信号の値を示
す。このビットは、リードのみ可能で、ライトは無視さ
れる。
上がりでENDIAN信号をラッチしたものをENMビ
ットとする。 HIS:(Halt Status) プロセッサコア20のDINT*がアクティブになった
ときの、Halt信号の値を示す。このビットは、リー
ドのみ可能で、ライトは無視される。
がりエッジで、HALT信号をラッチしたものをHIS
ビットとする。 DzS:(Doze Status) プロセッサコア20のDInt*がアクティブになった
ときの、Doze信号の値を示す。このビットは、リー
ドのみ可能で、ライトは無視される。 0:Doze状態ではない。 1:Doze状態。 デバッグ割り込み信号DINT*の立ち下がりエッジ
で、DOZE信号をラッチしたものをDzSビットとす
る。
Break Address 0)レジスタを示す。
eak Address) 命令ブレークアドレスを格納する。このアドレスは仮想
アドレスである。IBAフィールドは、命令/データア
ドレスブレーク回路31へ出力される。
Break Control 0)レジスタを示す。
セット時:0) 命令アドレスブレーク機能の有効・無効を指定するビッ
トである。 0:命令アドレスブレーク機能は無効となる。 1:命令アドレスブレーク機能が有効となる。BE=1
のときに、実行直前の命令の仮想アドレスとIBA0レ
ジスタに設定したアドレスが一致すると、プロセッサコ
ア20へ命令ブレーク要求を出し、IBSレジスタのB
S0ビットをセットする。(プロセッサコア20は、ア
ドレスが一致した命令の実行直前で命令アドレスブレー
ク例外を発生する。) BEビットは、命令/データアドレスブレーク回路31
へ出力される。
nable)(リセット時:0) 命令アドレストレーストリガ機能の有効・無効を指定す
るビットである。 0:命令アドレストレーストリガ機能は無効となる。 1:命令アドレストレーストリガ機能が有効となる。T
E=1で、トレーストリガが有効なとき、実行された命
令の仮想アドレスと、IBA0レジスタに設定したアド
レスが一致するとPCST[2:0]にトレーストリガ
情報(TST(010)あるいはTSQ(001))を
出力し、IBSレジスタのBS0ビットをセットする。 TEビットは、命令/データアドレスブレーク回路31
へ出力される。
Break Status)レジスタを示す。
Number) 命令ブレークのチャネル数を示す。このフィールドはリ
ードのみ可能である。ライトは無視される。 0000:なし(予約) 0001:1チャネル … 1111:15チャネル(予約) BS0:(Break Status 0)
レストレーストリガが発生したことを示すステータスビ
ットである。 0:チャネル0の命令アドレスブレークあるいは命令ア
ドレストレーストリガが発生していないことを示す。 1:IBC0レジスタがBE=1あるいはTE=1のと
きに、命令の仮想アドレスと、設定したアドレスが一致
して、命令アドレスブレーク例外あるいは命令アドレス
トレーストリガが発生したことを示す。このビットは、
0を書き込むことによってクリアされる。BS0ビット
は、命令/データアドレスブレーク回路からのIBSレ
ジスタのBS0セット信号がアサートされるとセットさ
れる。
Address 0)レジスタを示す。
想アドレスである。DBAフィールドは、命令/データ
アドレスブレーク回路31へ出力される。
Control 0)レジスタを示す。 BE:(Break Enable)(リセット時:
0) データアドレスブレーク機能の有効・無効を指定するビ
ットである。 0:データアドレスブレーク機能は無効となる。 1:データアドレスブレーク機能が有効となる。BE=
1のときに、実行直前のデータの仮想アドレスと、DB
A0レジスタに設定したアドレスが一致すると、プロセ
ッサコア20へデータブレーク要求を出し、DBSレジ
スタのBS0ビットをセットする。
ーク回路31へ出力される。 TE:(Trace Trigger Enable)
(リセット時:0) データアドレストレーストリガ機能の有効・無効を指定
するビットである。 0:データアドレストレーストリガ機能は無効となる。 1:データアドレストレーストリガ機能が有効となる。
TE=1でトレーストリガが有効なとき、実行されたデ
ータの仮想アドレスと、DBA0レジスタに設定したア
ドレスが一致するとPCST[2:0]にトレーストリ
ガ情報(TST(010)あるいはTSQ(001))を
出力し、DBSレジスタのBS0ビットをセットする。 TEビットは、命令/データアドレスブレーク回路31
へ出力される。
Status)レジスタを示す。
リードのみ可能である。ライトは無視される。 0000:なし(予約) 0001:1チャネル … 1111:15チャネル(予約) BS0:(Break Status 0)
アドレストレーストリガが発生したことを示すステータ
スビットである。 0:チャネル0のデータアドレスブレークあるいはデー
タアドレストレーストリガが発生していないことを示す
◎。
TE=1のときに、データの仮想アドレスと、設定した
アドレスが一致して、データアドレスブレーク例外ある
いはデータアドレストレーストリガが発生したことを示
す。
クリアされる。BS0ビットは、命令/データアドレス
ブレーク回路31からのDBSレジスタのBS0セット
信号がアサートされるとセットされる。
Bus Break Address)レジスタを示
す。
Break Address) プロセッサバスブレーク/トレーストリガ機能のブレー
クアドレスを格納する。このアドレスは物理アドレスで
ある。PBAフィールドはプロセッサバスブレーク回路
33へ出力される。
Bus Break Data 0)レジスタを示す。
Break Data) プロセッサバスブレーク/トレーストリガ機能のブレー
クデータを格納する。PBDフィールドはプロセッサバ
スブレーク回路33へ出力される。
Bus Mask 0)レジスタを示す。
Break Data Mask) プロセッサバスブレーク/トレーストリガ機能のPBD
レジスタに格納したデータとの比較を行なうとき、比較
を無効にする(マスクする)ビットを指定する。 0:PBDレジスタの対応するビットを比較する。 1:PBDレジスタの対応するビットを比較しない。 PBMフィールドはプロセッサバスブレーク回路33へ
出力される。
Bus Control 0)レジスタを示す。 BE:(Break Enable)(リセット時:
0) プロセッサバスブレークの有効・無効を指定する。 0:プロセッサバスブレークは無効となる。 1:プロセッサバスブレークが有効となる。アドレスと
データの比較結果が設定値と一致するとプロセッサコア
20にデバッグ割り込みを要求する。
路33へ出力される。 TE:(Trace Trigger Enable)
(リセット時:0) プロセッサバストレーストリガの有効・無効を指定す
る。 0:プロセッサバストレーストリガは無効となる。 1:プロセッサバストレーストリガは有効となる。アド
レスとデータの比較結果が設定値と一致するとPCST
[2:0]にトレーストリガ情報(TST(010)あ
るいはTSQ(001))を出力する。TEビットは、プ
ロセッサバスブレーク回路33へ出力される。
etch from Uncache Area) 非キャッシュ領域からの命令フェッチでアドレスとデー
タの比較を行うかを指定する。
でアドレスとデータの比較をしない。
でアドレスとデータの比較をする。
ク回路33へ出力される。
m Uncache Area) 非キャッシュ領域からのデータロードでアドレスとデー
タの比較を行うかを指定する。
でアドレスとデータの比較をしない。
でアドレスとデータの比較をする。
ク回路33へ出力される。
Uncache Area) 非キャッシュ領域へのデータストアでアドレスとデータ
の比較を行うかを指定する。
アドレスとデータの比較をしない。
アドレスとデータの比較をする。DSUCビットは、プ
ロセッサバスブレーク回路33へ出力される。
Cache Area) キャッシュ領域へのデータストアでアドレスとデータの
比較を行うかを指定する。
ドレスとデータの比較をしない。
ドレスとデータの比較をする。DSCAビットは、プロ
セッサバスブレーク回路33へ出力される。
us Break Status)レジスタを示す。 BCN:(Break Channel Numbe
r) プロセッサバスブレークのチャネル数を示す。
ト時:0) プロセッサバスブレークあるいは、プロセッサバストレ
ーストリガが発生したことを示すステータスビットであ
る。
あるいはプロセッサバストレーストリガが発生していな
いことを示す。 1:PBE0レジスタのBE=1あるいはTE=1のと
きに、チャネル0のプロセッサバスブレークあるいは、
プロセッサバストレーストリガが発生したことを示す。
クリアされ、BE=1のときはプロセッサコア20へ要
求していたデバッグ割り込みもクリアされる。BS0ビ
ットは、プロセッサバスブレーク回路からのPBSレジ
スタのBS0セット信号がアサートされるとセットされ
る。
路31を示す。命令/データアドレスブレーク回路31
は命令アドレス比較器311、データアドレス比較器3
12、AND回路313、314、315、316から
なる。
ジスタのブレークイネーブルBEビットあるいはトリガ
イネーブルTEビットがセットされているならば、プロ
セッサコア20からの命令アドレス有効信号がアサート
されているときに、プロセッサコア20からの命令アド
レス入力とIBA0レジスタに格納したアドレスを比較
する。これらのアドレスが一致したときに、IBSレジ
スタのBS0ビットをセットする信号を出力する。同時
にBEがセットされているときは、AND回路313の
出力がアサートされ、プロセッサコア20へ命令アドレ
スブレークを要求し、TEがセットされているときは、
AND回路314の出力がアサートされ、PCトレース
回路32へ、トレーストリガ出力を要求する。
レジスタのブレークイネーブルBEビットあるいはトリ
ガイネーブルTEビットがセットされているならば、プ
ロセッサコア20からのデータアドレス有効信号がアサ
ートされているときに、プロセッサコア20からのデー
タアドレス入力とDBA0レジスタに格納したアドレス
を比較する。これらのアドレスが一致したときに、DB
SレジスタのBS0ビットをセットする信号を出力す
る。同時にBEがセットされているときは、AND回路
315の出力がアサートされ、プロセッサコア20へデ
ータアドレスブレークを要求し、TEがセットされてい
るときは、AND回路316の出力がアサートされ、P
Cトレース回路32へトレーストリガ出力を要求する。
の構成を示す。
サバスのバスオペレーションを監視して、レジスタに設
定したアドレスとデータのバスオペレーションが発生す
るとプロセッサコア20へデバッグ割り込みを要求す
る。
セッサバスアドレス比較器331、マスク付きデータ比
較器332、AND回路333、334、335からな
る。
PBC0レジスタのブレークイネーブルBEあるいはト
リガイネーブルTEがセットされているときに、プロセ
ッサバスのアドレスとPBA0レジスタに設定されてい
るアドレスを比較する。また、PBC0レジスタの、D
SCA、DSUC、DLUC、IFUCビットによっ
て、非キャッシュ領域/キャッシュ領域、データのスト
ア/データのロード/命令のフェッチに対する比較の有
効/無効が指定される。プロセッサバスアドレス比較器
331は、プロセッサバスサイクルにプロセッサコア2
0から出力されるID信号(命令フェッチかデータアク
セスかを示す)、リードRD*信号、ライト信号WR
*、CACHE*により、次の表2に示す動作を行う。
のとき(リード信号RD*=Low)、PBM0レジス
タの0ビットについてのみ、プロセッサバス80のデー
タ入力DIN[31:0]とPBD0レジスタの値を比
較する。また、マスク付きデータ比較器332は、ライ
トバスサイクルのとき(ライト信号WR*=Low)、
PBM0レジスタの0のビットについてのみ、プロセッ
サバス80のデータ出力DOUT[31:0]とPBD
0レジスタの値を比較する。
スク付きデータ比較器332の出力がともにHで、つま
りアドレスとデータの比較がともに一致したとき、AN
D回路333の出力がアサートされ、PBSレジスタの
BS0ビットのセットをレジスタ回路35へ要求する。
このときPBC0のBEがセットされているならば、A
ND回路334の出力がアサートされ、プロセッサコア
20へデバッグ割り込みを要求し、PBC0のTEビッ
トがセットされているならば、AND回路335の出力
がアサートされ、PCトレース回路32へトリガ出力を
要求する。
す。シリアルモニタバス回路34は、シリアルモニタバ
スコントロール回路341、シリアル出力回路342、
シリアル入力回路343からなる。
1は、プロセッサバスからデータ出力DOUT[31:
0]、アドレスA[31:20]、リード信号RD*、
ライト信号WR*、コプロセッサリード信号CPRD
*、コプロセッサライト信号CPWR*、デバッグモー
ド信号DM、クロック供給回路37から分周クロックC
LK2、レジスタ回路35からDCRレジスタのMPビ
ット、外部インターフェース回路36からSDIを入力
する。
路341は、プロセッサバスへリード応答信号RDAC
K*、ライト応答信号WRACK*、コプロセッサリー
ド応答信号CPRDACK*、コプロセッサライト応答
信号CPWRACK*を、シリアル出力回路342へシ
リアルモニタバスリード/ライト信号、シリアルモニタ
バスバイトイネーブル信号、シリアルモニタバスデータ
信号、シリアル出力回路342内の出力シフトレジスタ
344のデータロード信号と出力シフト信号を、シリア
ル入力回路343へ入力シフトレジスタ345の入力シ
フト信号、出力バッファ346の出力イネーブル信号を
出力する。シリアルモニタバスリード/ライト信号は、
リードバスオペレーションのときHighレベル、ライ
トバスオペレーションのときにLowレベルになる。
ジスタ344からなる。シリアルモニタバスコントロー
ル回路341のデータロード信号がアサートされると、
LSBからスタートビット(Low固定)と、アドレス
信号A[2]〜A[19]、シリアルモニタバスリード
/ライト信号、シリアルモニタバスバイトイネーブル信
号、シリアルモニタバスデータ信号が出力シフトレジス
タ344へロードされる。出力シフト信号がアサートさ
れると、出力シフトレジスタ344内の値をMSBから
LSBへ1ビットシフトし、MSBにHighを入力す
る。出力シフトレジスタ344のLSBの値がSDAO
に出力される。
ジスタ345と出力バッファ346からなる。シリアル
モニタバスコントロール回路341の入力シフト信号が
アサートされると、入力シフトレジスタ345の値をL
SBからMSBへ1ビットシフトし、SDIの値をLS
Bへ入力する。
路34の動作について説明する。
がアドレス0xFF20_0000〜0xFF2F_F
FFFまでの領域をアクセスする場合と、コプロセッサ
のリード/ライト(CTC0,CFC0)の実行によっ
てコプロセッサバスオペレーションを行う場合、シリア
ルモニタバス回路34を介して、デバッガ60上のメモ
リがアクセスされる。シリアルモニタバスを用いたライ
トオペレーションでは、シリアルモニタバス回路34
は、アドレス、バス制御信号、データをSDAO信号に
1ビットづつシリアルに出力する。リードオペレーショ
ンでは、アドレス、バス制御信号をSDAO信号に出力
し、SDI信号からデータを1ビットづつシリアルに入
力する。
0の動作クロックCLKを2分周したクロックCLK2
で動作する。
よるアクセス プロセッサコア20は、リードバスオペレーションでは
アクセスするアドレスをA[31:0]へ出力し、RD
*信号をアサートする。リード応答信号RDACK*が
アサートされると、データバス入力DIN[31:0]
からデータをリードしてバスオペレーションを終了す
る。
ーションでは、アクセスするアドレスをA[31:0]
へ、データをデータバス出力DOUT[31:0]へ出
力し、WR*信号をアサートする。ライト応答信号WR
ACK*がアサートされるとバスオペレーションを終了
する。
下記モニタ領域に対してバスオペレーションを実行する
と、シリアルモニタバス回路34を介してデバッガ60
がアクセスされる。
ライトするストア命令(SW命令)を用いる。以下に、
ストア命令の例を示す。
用レジスタr9を加えた値がメモリアドレスとなる。シ
ルアルモニタバスのモニタ領域へアクセスするためには
汎用レジスタの値を、予め0xFF20 0000〜0
xFF2F 0000に設定しなければならない。
モニタバスのSDAO信号にバスサイクルの信号を1ク
ロックづつ出力する。プロセッサバスのアドレスA[1
9:2]を下位から出力し、次に、リードのときはHi
ghレベル、ライトのときはLowレベルを出力する。
次に、バイトイネーブルBE[3:0]*を下位から出
力する。リードの場合はSDI信号から32ビットのデ
ータを入力し、プロセッサバスのデータ入力信号DIN
[31:0]にその値を出力する。また、ライトのとき
は、プロセッサバスのデータ出力DOUT[31:0]
の値をSDAO信号に出力する。
プロセッサコア20のアドレス信号A[19:2]の1
8ビットであり、1Mバイトのメモリ空間をアクセスで
きる。
号BE[3:0]をシリアルモニタバスへ出力するの
で、バイト、ハーフワード、3バイトのアクセスも可能
である。ただし、シリアルバスでは、バイト、ハーフワ
ード、3バイトアクセスの場合も、32ビット分のデー
タ(D[31:0])を転送する。1バイト、ハーフワ
ード、3バイトのライトのとき、BE[3:0]*がイ
ンアクティブなバイト位置のデータ出力は不定であり、
リードのときはインアクティブなバイト位置のデータ
は、プロセッサコア20で無視され、リードされない。
のプロテクトが設定されている(DCRレジスタのMP
=1)と、FF20_0000〜FF2F_FFFFへ
のライトは無視される。このときは、シリアルモニタバ
ス回路34はプロセッサコア20へWRACK*のみを
返し、バスオペレーションを終了させる。
FF2F_FFFFからのリードでは、MPビットの値
に関係なく、シリアルモニタバスから正しいデータがリ
ードされる。
_0000〜FF2F_FFFFへのライトも無視さ
れ、リードは結果が不定となる。このときは、シリアル
モニタバス回路34は、プロセッサコア20へWRAC
K*あるいはRDACK*を返し、バスオペレーション
のみを終了する。
るアクセス(CTC0/CFC0)プロセッサコア20
は、CFC0が実行されると、コプロセッサのリードバ
スオペレーションを、CTC0命令が実行されるとコプ
ロセッサのライトバスオペレーションを実行する。コプ
ロセッサバスオペレーションでは、プロセッサバスのア
ドレスA[31:0]に下記のCFC0、CTC0命令
がそのまま、出力される。
サリードオペレーションでは、CPRD*信号をアサー
トし、コプロセッサリード応答信号CPRDACK*が
アサートされると、データバス入力DIN[31:0]
からデータをリードしてバスオペレーションを終了す
る。
トオペレーションではCPWR*信号をアサートし、デ
ータバス出力DOUT[31:0]にプロセッサコアの
汎用レジスタの値を出力する。コプロセッサライト応答
信号CPWRACK*がアサートされるとバスオペレー
ションを終了する。
命令のコプロセッサバスオペレーションを実行すると、
シリアルモニタバスを介してデバッガ60がアクセスさ
れる。
モニタバスのSDAO信号にバスサイクルの信号を1ク
ロックづつ出力する。プロセッサコア20のアドレス信
号A[19:2]を下位から出力し、次にコプロセッサ
リードのときはHigh、コプロセッサライトのときは
Lowを出力する。シリアルモニタバスのバイトイネー
ブル信号としては、プロセッサバスのBE[3:0]*
とは無関係に4クロック間Lowを出力する。従って、
CTC0、CFC0命令のコプロセッサバスオペレーシ
ョンは必ず4バイト単位での転送になる。
ビットのデータを入力し、プロセッサバスのデータ入力
信号DIN[31:0]にその値を出力する。また、C
TC0命令のときは、プロセッサバスのデータ出力DO
UT[31:0]の値をSDAO信号に出力する。
プロテクト(DCRレジスタのMPビットの値)とは無
関係に、CTC0によるシリアルモニタバスのライトバ
スオペレーションは実行される。また、CFC0による
シリアルモニタバスのリードオペレーションも実行され
る。
は無視され、CFC0によるリードの結果は不定とな
る。デバッグモジュールは、プロセッサコア20へCP
RDACK*,CPWRACK*のみをプロセッサコア
20に返し、バスオペレーションを終了させる。
ンのタイミング図を示す。 a)シリアルモニタバスのリードバスオペレーション 図19にシリアルモニタバスのリードバスオペレーショ
ンのタイミング図を示す。
FF20_0000〜0xFF2F_FFFF(A[3
1:20]=1111_1111_0010)の領域に
対するリードバスオペレーションを開始する(サイクル
1)。プロセッサコア20は、A[31:0]にアクセ
スするアドレスを出力し、RD*をアサートする。リー
ドするバイト位置のバイトイネーブル信号BE[3:
0]をアサートする。
ニタ領域へのリードバスオペレーションの開始を認識す
ると、SDAO信号にコアクロックCLKを分周したC
LK2信号の1クロック間Lowレベルを出力する(サ
イクル2)。
ロセッサコア20のリードバスオペレーションで出力さ
れた、アドレスA[2]〜A[19],High(リー
ドを示す),BE[0]*〜BE[3]*を、SDAO
信号にCLK2の1クロック間づつ出力する(サイクル
3〜25)。
前に1クロック間SDI信号にLowを出力する(サイ
クルn)。シリアルモニタバス回路34は、SDIにL
owを検出すると、次のサイクルよりデータD[0]〜
D[31]を1クロックごとに読み込む(サイクルn+
1〜n+32)。
ロセッサコア20のリードバスの応答信号RDACK*
をアサートし、データバスDIN[31:0]へ読み込
んだ32ビットのデータD[31:0]を出力する(サ
イクルn+33)。
DIN[31:0]上のデータを読み込み、リードバス
オペレーションを終了する(サイクルn+33)。
レーション図20にシリアルモニタバスのライトバスオ
ペレーションのタイミング図を示す。
FF20_0000〜0xFF2F_FFFF(A[3
1:20]=1111_1111_0010)の領域に
対するライトバスオペレーションを開始する(サイクル
1)。プロセッサコア20は、A[31:0]にアクセ
スするアドレスを出力し、WR*をアサートする。ライ
トするバイト位置のバイトイネーブル信号BE[3:
0]をアサートする。
ニタ領域へのライトバスオペレーションの開始を認識す
ると、SDAO信号にコアクロックCLKを分周したC
LK2信号の1クロック間Lowレベルを出力する(サ
イクル2)。
ロセッサコア20のライトバスオペレーションで出力さ
れた、アドレスA[2]〜A[19],Low(ライト
を示す),BE[0]*〜BE[3]*ライトデータ出
力DOUT[0]〜DOUT[31]を、SDAO信号
にCLK2の1クロック間づつ出力する(サイクル3〜
57)。
終了すると、1クロック間SDI信号にLowを出力す
る(サイクルn)。
DIにLowを検出すると、プロセッサコア20のライ
トバスの応答信号WRACK*をアサートする(サイク
ルn+1)。
オペレーションを終了する(サイクルn+1)。
ーション 図21にCFC0命令によるリードバスオペレーション
のタイミングを示す。
によってコプロセッサリードバスオペレーションを開始
すると、プロセッサバスのアドレスにA[31:21]
=0100_0000_010を出力し、CPRD*を
アサートする(サイクル1)。
ニタ領域へのリードバスオペレーションの開始を認識す
ると、SDAO信号にコアクロックCLKを分周したC
LK2信号の1クロック間Lowレベルを出力する(サ
イクル2)。
ロセッサコア20のコプロセッサリードバスオペレーシ
ョンで出力された、アドレスA[2]〜A[19]をS
DAO信号にCLK2の1クロック間づつ出力する(サ
イクル3〜20)。次に、リードオペレーションを示す
ため1クロック間Highを出力する(サイクル2
1)。次に、プロセッサバスのバイトイネーブル信号と
は関係なく、4クロック間だけLowを出力する(サイ
クル22〜25)。
前に1クロック間SDI信号にLowを出力する(サイ
クルn)。シリアルモニタバス回路34は、SDIにL
owを検出すると、次のサイクルよりデータD[0]〜
D[31]を1クロックごとに読み込む(サイクルn+
1〜n+32)。
ロセッサコア20のコプロセッサリードの応答信号CP
RDACK*をアサートし、データバスDIN[31:
0]へ読み込んだ32ビットのデータD[31:0]を
出力する(サイクルn+33)。
DIN[31:0]上のデータを読み込み、コプロセッ
サリードバスオペレーションを終了する(サイクルn+
33)。
ーション 図22にCTC0命令によるライトバスオペレーション
のタイミングを示す。
によってコプロセッサライトバスオペレーションを開始
すると、プロセッサバスのアドレスA[31:21]=
0100_0000_110を出力し、CPWR*をア
サートする(サイクル1)。
ニタ領域へのライトバスオペレーションの開始を認識す
ると、SDAO信号にコアクロックCLKを分周したC
LK2信号の1クロック間Lowレベルを出力する(サ
イクル2)。
ロセッサコア20のコプロセッサライトバスオペレーシ
ョンで出力された、アドレスA[2]〜A[19]をS
DAO信号にCLK2の1クロック間づつ出力する(サ
イクル3〜20)。次に、ライトオペレーションを示す
ため1クロック間Lowを出力する(サイクル21)。
次に、プロセッサバスのバイトイネーブル信号とは関係
なく、SDAO信号へ4クロック間だけLowを出力す
る(サイクル22〜25)。さらに、SDAOへデータ
バス出力DOUT[0]〜DOUT[31]の値を1ク
ロック間づつ出力する(サイクル26〜57)。
終了すると、1クロック間SDI信号にLowを出力す
る(サイクルn)。
DIにLowを検出すると、プロセッサコア20のコプ
ロセッサライトバスの応答信号CPWRACK*をアサ
ートする(サイクルn+1)。
サライトバスオペレーションを終了する(サイクルn+
1)。
回路341の動作のフローチャートを示す。
1は、プロセッサバスのバスオペレーションを監視して
いる。
0]=0xFF2)のリードバスオペレーション(RD
*=アサート(Low))でデバッグモードのとき(D
M信号=High)、シリアルモニタバスのリードバス
オペレーションを開始する(ステップS120,S12
4,S125)。
0]=0xFF2)のリードバスオペレーション(RD
*=アサート(Low))で、デバッグモードでないと
き(DM信号=Low)のときは、プロセッサコア20
のRDACK*をアサートしてバスオペレーションを終
了させる(ステップS120,S124,S132,S
133)。
0]=0xFF2)のライトバスオペレーション(WR
*=アサート(Low))で、デバッグモード(DM信
号=High)かつライトが可能(DCRレジスタのM
Pビット=0)のとき、シリアルモニタバスのライトバ
スオペレーションを開始する(ステップS120,S1
21,S126,S127)。
0]=0xFF2)のライトバスオペレーション(WR
*=アサート(Low))で、デバッグモードでないと
き(DM信号=Low)のとき、あるいはライトがプロ
テクトされている(DCRレジスタのMPビット=1)
のときは、プロセッサコア20のWRACK*をアサー
トしてバスオペレーションを終了される(ステップS1
20,S121,S126,S134,S135)。
21]=0100_0000_010)のコプロセッサ
リードバスオペレーション(CPRD*=アサート(L
ow))でデバッグモードのとき(DM信号=Hig
h)、シリアルモニタバスのコプロセッサリードバスオ
ペレーションを開始する(ステップS120,S12
1,S122,S128,S129)。
21]=0100_0000_010)のコプロセッサ
リードバスオペレーション(CPRD*=アサート(L
ow))で、デバッグモードでないとき(DM信号=L
ow)のときは、プロセッサコア20のCPRDACK
*をアサートし、バスオペレーションを終了させる(ス
テップS120,S121,S122,S128,S1
36,S137)。
21]=0100_0000_110)のコプロセッサ
ライトバスオペレーション(CPWR*=アサート(L
ow))でデバッグモードのとき(DM信号=Hig
h)、シリアルモニタバスのコプロセッサリードバスオ
ペレーションを開始する(ステップS120,S12
1,S122,S123,S130,S131)。
21]=0100_0000_110)のコプロセッサ
ライトバスオペレーション(CPWR*=アサート(L
ow))で、デバッグモードでないとき(DM信号=L
ow)のときは、プロセッサコア20のCPWRACK
*をアサートし、バスオペレーションを終了する(ステ
ップS120,S121,S122,S123,S13
8,S139)。
オペレーションでのシリアルモニタバス回路34の動作
のフローチャートを示す。
1は、リードバスオペレーションのときは、シリアルモ
ニタバスリード/ライト信号にHighレベル、シリア
ルモニタバスバイトイネーブル信号にプロセッサバスの
BE[3:0]を、シリアルモニタバスデータ信号にす
べてHighを出力し、データロード信号をアサートす
る(サイクル1)。
スオペレーションのときは、シリアルモニタバスコント
ロール回路341は、シリアルモニタバスリード/ライ
ト信号にHighレベル、シリアルモニタバスのバイト
イネーブル信号にすべてLowを、シリアルモニタバス
データ信号にすべてHighを出力し、データロード信
号をアサートする。これらの値とLSBにLowレベル
が、シフトレジスタ344にラッチされる。
される。シリアルモニタバスコントロール回路341
は、出力シフト信号をアサートする(サイクル2)。
路341は、出力シフト信号をアサートする。SDAO
信号にサイクル1で出力シフトレジスタ344にラッチ
した値が毎クロックごと出力される(サイクル3〜2
5)。
路341は、SDI入力信号がLowにアサートされる
のを待つ(サイクル26〜n)。
路341は、シリアル入力回路343の入力シフト信号
をアサートし、SDI入力信号の値をデータ入力D
[0]−D[31]として、入力シフトレジスタ345
に入力する(サイクルn+1〜n+32)。
路341は、リードバスオペレーションのときは、プロ
セッサバスのリード応答信号RDACK*をアサートす
る。コプロセッサリードバスオペレーションのときは、
コプロセッサリード応答信号CPRDACK*をアサー
トする。シリアル入力回路343の出力イネーブル信号
をアサートする。データバス入力信号DIN[31:
0]に、入力シフトレジスタ345のデータD[31:
0]が出力される(サイクルn+33)。
オペレーションでのシリアルモニタバス回路の動作のフ
ローチャートを示す。
路341は、ライトバスオペレーションのときは、シリ
アルモニタバスリード/ライト信号にLowレベル、シ
リアルモニタバスバイトイネーブル信号にプロセッサバ
スのBE[3:0]を、シリアルモニタバスデータ信号
にデータ出力DOUT[31:0]を出力し、データロ
ード信号をアサートする。
スオペレーションのときは、シリアルモニタバスコント
ロール回路341は、シリアルモニタバスリード/ライ
ト信号にLowレベル、シリアルモニタバスバイトイネ
ーブル信号に4ビットのLowレベルを、シリアルモニ
タバスデータ信号にデータ出力DOUT[31:0]を
出力し、データロード信号をアサートする。これらの値
とLSBにLowレベルが出力シフトレジスタ344に
ラッチされる(サイクル1)。
される。シリアルモニタバスコントロール回路341
は、出力シフト信号をアサートする(サイクル2)。
路341は、出力シフト信号をアサートする。SDAO
信号に出力シフトレジスタ344にサイクル1でラッチ
した値が毎クロックごと出力される(サイクル3〜5
7)。
路341は、SDI入力信号がLowにアサートされる
のを待つ(サイクル58〜n)。
路341は、ライトバスオペレーションのときはプロセ
ッサバスのライト応答信号WRACK*をアサートす
る。コプロセッサバスオペレーションのときは、コプロ
セッサライト応答信号CPWRACK*をアサートする
(サイクルn+1)。
する。
クトジャンプ、分岐を以下のように定義します。
モリに格納されている値をジャンプ先アドレスとするな
ど、ジャンプ先がその命令自体では特定できないジャン
プをする。
(プログラム カウンタ)と命令中のコードによってジ
ャンプ先が特定できるジャンプをする。
および命令中のコードの一部の和で分岐先が特定できる
ジャンプのことである。分岐は実際にジャンプするかは
条件により決まる。実際にジャンプが行われることを分
岐成立(Branch Taken)、行われなかった
ことを分岐不成立(Branch Not Take
n)とする。
します。PCトレース回路32はプロセッサコア20か
ら、以下の信号を入力する。
サコア20の実行モードがデバッグモードかノーマルモ
ードかを示す。
されたことを示す。
信号:分岐命令、ジャンプ命令のターゲットアドレス、
あるいは例外のベクタアドレスを示す。以下のインダイ
レクトジャンプ信号、ダイレクトジャンプ信号、分岐成
立信号、例外発生信号がアサートされているときに有効
である。
クトジャンプが実行されたことを示す。
ンプが実行されたことを示す。
されたことを示す。
す。
ースを完全に行うために以下の信号をプロセッサコア2
0へ出力する。
トPCの出力を完全に行うため、プロセッサコア20の
パイプラインをストールさせるための信号である。PC
トレース回路32はインダイレクトジャンプのターゲッ
トPCを出力しているときに次のインダイレクトジャプ
が発生すると、この信号をアサートしてプロセッサコア
20のバイプラインをストールさせる。出力中のターゲ
ットPCが完全に出力されるとこの信号をネゲートし
て、プロセッサコア20のパイプライン処理を再開させ
る。
ドレスブレーク回路31とプロセッサバスブレーク回路
33からトリガ要求信号を入力する。DCRレジスタの
TMビットと、デバッグイネーブル信号DBGE*を入
力する。デバッグイネーブル信号はLowにアサートさ
れているとき、デバッガ60が有効であることを示す。
時にプロセッサコア20が出力するPCトレース情報
を、1ビットのPC出力(TPC信号)と、3ビットの
ステータス信号(PCST[2:0]信号)にしてデバ
ッガ60へ出力する。
ついて説明する。
0]に出力する。(0:Low、1:Highレベルを
示す。) −111(STL):パイプラインストール トレーストリガ出力要求のない状態で、命令の実行終了
がなかったことを示す。
(PC出力あり) 分岐成立の分岐命令、ジャンプ命令の実行が終了し、T
PC信号にそのターゲットアドレス(分岐、ジャンプ先
のアドレス)の出力を開始したことを示す。
(PC出力なし) 分岐成立の分岐命令、ダイレクトジャンプ命令の実行が
終了したことを示す。この場合はTPC信号へターゲッ
トアドレスの出力はない。
タのコード出力あり) 例外が発生したことを示す。同時にTPC信号へ例外ベ
クタのコード出力を開始したことを示す。
(1命令実行したことを示す) 分岐/ジャンプ成立(JMP、BRT)でないとき、あ
るいは、トレーストリガ出力要求(TSQ)でないと
き、命令が実行されたことを示す。分岐不成立の分岐命
令が実行されたときもこの状態になる。
ル時のトレーストリガ出力 命令の実行終了がないクロックで、アドレストレースト
リガあるいはプロセッサバストレーストリガが発生した
ことを示す。
リガ出力 命令の実行が終了したクロックで、アドレストレースト
リガあるいはプロセッサバストレーストリガが発生した
ことを示す。
ーマルモードではこの状態にはならない)。
ゲットアドレスを出力する信号である。PCST[2:
0]に110(JMPコード)が出力されたクロックか
ら、ターゲットアドレスの出力を開始する。ターゲット
アドレスは、下位A(2)から1クロックごと出力され
る。PCST[2:0]に100(EXPコード)が出
力されたクロックから、例外ベクタの3ビットコードを
出力する。コードは下位code(0)からcode
(1)、code(2)の順に1クロックごと出力され
る。例外ベクタアドレスと3ビットのコードは下記に示
すようになる。
レスを出力するため、前の分岐ジャンプ命令をTPC信
号へ出力している途中に、次の分岐、ジャンプ命令ある
いは例外が発生することがある。この場合のTPCへの
ターゲットアドレス出力の優先度について規定する。
ダイレクトジャンプが発生すると、その時のターゲット
PC出力を終了し、必ず新たなインダイレクトジャンプ
のターゲットPCの出力を開始する。
したときは、例外のベクタ番号(3ビット)を必ず出力
し、その後、中断していたPC出力を再開する。
レクトジャンプ、分岐が発生したときはそのダイレクト
ジャンプ、分岐のターゲットアドレスの出力は行なわな
い。ダイレクトジャンプ、分岐については、発生時にタ
ーゲットPCを出力していないときのみ、そのターゲッ
トPCが出力される。
明する。
PCにターゲットPCを出力していないので、PCST
[2:0]にJMPコードを出力し、TPCにターゲッ
トPCの出力を開始する。分岐不成立の分岐命令bne
では、PCST[2:0]にSEQコードを出力する。
2番目の分岐成立の分岐命令bneでは、最初の分岐命
令のターゲットPCを出力しているので、TPCにター
ゲットPCを出力しない。PCST[2:0]にはBR
Tコードを出力する。
Cトレース 図28にインダイレクトジャンプ命令のPCトレース出
力の一例を示す。
では、PCST[2:0]にJMPコードを出力し、T
PCにターゲットPCの出力を開始する。分岐不成立の
分岐命令bneでは、PCST[2:0]にSEQコー
ドを出力する。2番目のインダイレクトジャンプ命令j
r2では、最初のインダイレクトジャンプ命令のターゲ
ットPCの出力を中止して、jr2のターゲットPCを
TPCへ出力する。PCST[2:0]にはJMPコー
ドを出力する。
令のPCトレース 図29に例外とインダイレクトジャンプ命令のPCトレ
ース出力の一例を示す。
外が発生する。PCST[2:0]にEXPコードを出
力し、TPCに例外ベクタのコードの出力を開始する。
分岐不成立の分岐命令bneでは、PCST[2:0]
にSEQコードを出力する。インダイレクトジャンプ命
令jr2では、jr2のターゲットPCをTPCへ出力
し、PCST[2:0]にはJMPコードを出力する。
ストリガの出力について説明する。
サバスブレークで、設定したアドレスとデータと一致し
たバスサイクルが実行されると、PCST[2:0]信
号にトレーストリガ情報が出力する機能である。
レストレーストリガ、プロセッサバストレーストリガの
要求が発生すると、PCST[2:0]信号にトレース
トリガ情報TSQコードあるいはTSTコードを出力す
る。ただし、PCST[2:0]に、JMP、BRT、
EXPコードが出力されているとトレーストリガのTS
Q,TSTコードの出力は遅れる。トレーストリガ要求
がないとき、PCST[2:0]出力がSEQコード、
STLコードとなるクロックでTSQコード、TSTコ
ードをPCST[2:0]信号に出力する。
ガ 命令/データアドレストレーストリガでは、PCST
[2:0]信号にそのトレーストリガが発生した命令の
トレース情報を出力するタイミングで、PCST[2:
0]信号にトレーストリガ情報TSQが出力される。た
だし、トレーストリガを発生した命令が、分岐成功の分
岐命令、ジャンプ命令あるいは例外を発生した命令で、
通常PCST[2:0]出力がSEQコードでない場合
は、トレーストリガの出力は遅れる。トレーストリガ要
求がないとき、PCST[2:0]出力がSEQ、ST
LとなるクロックでTSQコード、TSTコードをPC
ST[2:0]信号に出力する。
リガの発生例 図30に命令/データアドレストレーストリガの発生例
を示す。
ータアドレストレーストリガを発生したadd命令でP
CST[2:0]信号に、トレーストリガのコードTS
Qを出力する。
レストレーストリガが発生した例 図31に例外発生命令で命令/データアドレストレース
トリガが発生した例を示す。
データアドレストレーストリガが、ソフトウエアブレー
ク命令breakで発生すると、break命令ではP
CST[2:0]信号に例外発生のコードEXPを出力
し、次のクロックでトレーストリガのコードを出力す
る。この例では、ストール状態なのでTSTコードを出
力する。
令/データアドレストレーストリガが発生した例 図32にインダイレクトジャンプ命令で命令/データア
ドレストレーストリガが発生した例を示す。
ータアドレストレーストリガが、インダイレクトジャン
プ命令jr2で発生すると、jr2命令ではPCST
[2:0]信号にジャンプのコードJMPを出力し、次
のクロックでトレーストリガのコードを出力する。この
例では命令実行状態なのでTSQコードを出力する。
CST[2:0]信号にトレーストリガ情報TSQコー
ドあるいはTSTコードを出力する。ただし、PCST
[2:0]に、JMP、BRT、EXPコードが出力さ
れているとトレーストリガのTSQ,TSTコードの出
力は遅れる。トレーストリガ要求がないとき、PCST
[2:0]出力がSEQコード、STLコードとなるク
ロックでTSQコード、TSTコードをPCST[2:
0]信号に出力する。
について説明する。
はデバッグリセットを発生すると、デバッグモード信号
DMをHighにアサートして、デバッグモードにな
る。PCトレース回路32は、PCST[2:0]出力
にDBMコードを出力する。
[2:0]の出力タイミングを示す。
デバッグ例外を発生した命令の実行終了直後に、デバッ
グモードになる。デバッグ例外が発生した直前の命令ま
でのPCトレース情報が出力される。
トPCを出力している場合のPCST[2:0]出力タ
イミングを示す。
のターゲットPC出力が完了した後、デバッグモードに
なる。デバッグ例外が発生した直前の命令までのPCト
レース情報が出力される。ターゲットPCを出力してい
る間は、PCST[2:0]にはSTLが出力される。
CST[2:0]の出力タイミングを示す。
命令DERET命令の分岐ディレイスロット命令までデ
バッグモードとなる。DERET命令の戻り先の命令か
ら、ノーマルモードになりPCトレースが有効になる。
32について説明する。
は、PCトレースコントロール回路321、ターゲット
PCシフトレジスタ322、例外ベクタコード化回路3
23、例外コードシフトレジスタ324、セレクタ32
5からなる。
例外コード出力ステータスビット326、ターゲットP
C出力カウンタ329を含む。
いて説明する。
0]の出力は表3に示すようになる。なお、表3におい
て、1がアクティブ、xはdon′t careを示
す。
トリガ要求信号、データアドレストレーストリガ要求信
号とプロセッサバストレーストリガ要求信号の論理和を
とったものである。
27が0でないとき、TPC出力中を示す。例外コード
出力ステータスビットが1のとき例外ベクタコード出力
中を示す。表3のターゲットPCまた例外コード出力中
を示す内部ステータスは、ターゲットPC出力カウンタ
327が0でないか、または例外コード出力ステータス
326が1のとき1となる。
下のように更新される。
していないとき、あるいは新たにPC出力を開始すると
きは、ターゲットPC出力カウンタ327は0にクリア
される。
いるときは、PC出力中を示す内部ステートとカウンタ
は、そのままの値を保持する。
ゲットPC出力カウンタ327を0にする。これはター
ゲットPCの出力が終了したこと示す。
は、ターゲットPCカウンタ327の値を1増やす。こ
の状態では、TPC信号にターゲットPCの値を出力し
ている。
が発生すると、例外コード出力中を示す内部ステートが
3クロック間アサートされる。例外コード出力ステータ
ス326がアサートされているときは、例外コードシフ
ト信号と例外コード出力切り替え信号がアサートされ
る。例外コードロード信号は、表3のPCST[2:
0]にEXPコードを出力する条件でアサートされ、例
外コードシフトレジスタ324に例外ベクタコード化回
路323の出力の例外ベクタコードの値をロードする。
ターゲットPCロード信号は、表3のPCST[2:
0]にJMPコードを出力する条件でアサートされ、タ
ーゲットPCシフトレジスタ322にターゲットPCの
値をロードする。ターゲットPCシフト信号は、ターゲ
ットPCカウンタ327の値が0でなく、かつ例外コー
ド出力ステータス326がアサートされていないときに
アサートされる。
されると、PCトレースを完全に行なう。DBGE*信
号がアサートされて、かつDCRレジスタのTMビット
がセットされていると、PCトレースコントロール回路
321は、インダイレクトジャンプのターゲットPCを
出力しているときに次のインダイレクトジャンプが発生
すると、パイプラインストール要求信号をアサートして
プロセッサコア20のパイプラインをストールさせる。
出力中のターゲットPCが完全に出力されるとパイプラ
インストール要求信号をネゲートして、プロセッサコア
20のパイプライン処理を再開させる。
0]の出力は表4に示すようになる。なお、表4におい
て、1がアクティブ、xはdon′t careを示
す。
ダイレクトジャンプが実行され、インダイレクトジャン
プ信号がアクティブになると、プロセッサコア20のパ
イプラインストール要求信号をアクティブにする。ター
ゲットPCまたは例外コード出力の内部ステートは、タ
ーゲットPC出力開始から30クロック間アクティブに
なる。
PCトレースコントロール回路321のターゲットPC
ロード信号がアサートされると、ターゲットPCの値を
ロードする。また、PCトレースコントロール回路32
1のターゲットPCシフト信号がアサートされると、タ
ーゲットPCシフトレジスタ322の値をMSBからL
SBへ1ビットシフトする。
クタアドレスを、以下のようにベクタアドレスのA[2
9],A[8],A[7]によって、エンコードする。
ドレスA[29],A[8],A[7]を例外コードシ
フトレジスタへ出力する。
トレースコントロール回路321の例外コードロード信
号がアサートされると、例外ベクタコード化回路323
の出力の例外ベクタコードをロードする。また、PCト
レースコントロール回路321の例外コードシフト信号
がアサートされると、例外コードシフトレジスタ324
の値をMSBからLSBへ1ビットシフトする。
ール回路321の例外コード出力切り替え信号がアサー
トされると、例外コードシフトレジスタ324のLSB
の値をTPCへ出力する。例外コード出力切り替え信号
がネゲートされていると、ターゲットPCシフトレジス
タ322のLSBの値をTPCへ出力する。
イミング図を用いて説明する。
を示す。ターゲットPC出力カウンタ327が0のとき
に、インダイレクトジャンプ信号、ダイレクトジャンプ
信号、または分岐成立信号がアサートされると、PCト
レースコントロール回路321は、ターゲットPCロー
ド信号をアサートする。
ジスタ322にロードされたターゲットアドレスのLS
BビットのA[2]がTPCへ出力され、PCST
[2:0]にJMPコードが出力され、PCトレースコ
ントロール回路321はターゲットPCシフト信号をア
サートする。ターゲットPCシフトレジスタ322はM
SBからLSBへ1ビットシフトされ、次のクロックで
はA[3]が出力される。ターゲットPC出力カウンタ
327が30になるまで、ターゲットPCシフト信号が
アサートされ、ターゲットPCの値が毎クロックごとT
PCへ出力される。ターゲットPC出力カウンタ327
の値が30になると、次にその値は0にクリアされ、タ
ーゲットPCシフト信号はネゲートされ、TPCへのタ
ーゲットPC出力は終了する。
ンダイレクトジャンプが発生したときの動作タイミング
例を示す。
ると、ターゲットPC出力カウンタは0にクリアされ、
ターゲットPCロード信号がアサートされる。次のクロ
ックでターゲットPCシフトレジスタ322にロードさ
れたターゲットアドレスのLSBビットのA[2]がT
PCへ出力され、PCST[2:0]にJMPコードが
出力され、PCトレースコントロール回路321はター
ゲットPCシフト信号をアサートする。次のクロックか
らターゲットアドレスが毎サイクル1ビットづつTPC
信号へ出力される。
発生したときの動作タイミング例を示す。
アサートされると、例外コードロード信号がアサートさ
れ、例外コードの値が例外コードシフトレジスタ324
へロードされる。次のクロックから、例外コード出力ス
テータス326、例外コードシフト信号、例外コード出
力切替信号がアサートされる。例外コードが3クロック
間出力される。この間はターゲットPCシフト信号がネ
ゲートされる。例外コード出力ステータス326、例外
コード切替信号がネゲートされると、再びターゲットP
CのTPCへの出力が始まる。
示す。
コード検出回路361、セレクタ362、363、マス
ク回路364、365、366、出力バッファ367
A、367B、367C、プルアップ抵抗付き入力バッ
ファ368A、368B、368C、入力バッファ36
9A、369Bからなる。
[2:0]にデバッグモードのコードDBM(000)
が出力されているとき、出力信号をアサートする。
361の出力がアサートされているとき、すなわちデバ
ッグモードのときは分周クロックCLK2を出力し、D
BMコード検出回路361の出力がネゲートされている
とき、すなわちノーマルモードのときはコアクロックC
LKを出力する。
361の出力がアサートされているとき、すなわちデバ
ッグモードのときは、シリアルモニタバス回路34のS
DAOを出力し、DBMコード検出回路361の出力が
ネゲートされているとき、すなわちノーマルモードのと
きは、PCトレース回路32のTPCを出力する。
き、常にプロセッサコアのDINT*入力がネゲートさ
れるように、外部DINT*/SDI入力の値をマスク
する。
Intが0のとき、プロセッサコアのInt[5:0]
*をHighにして割り込みをマスクする。
Rstが0のとき、デバッグ例外ハンドラ実行中(DM
信号=High)ユーザーリセットをマスクする。
の出力をDCLKとして外部へ出力する。出力バッファ
367Bは、セレクタ363の出力をTPC/SDAO
として外部へ出力する。出力バッファ367Cは、PC
トレース回路32の出力のPCST[2:0]を外部P
CST[2:0]として出力する。
は、外部DINT*/SDI信号を内部へ入力する。プ
ルアップ抵抗付きなので、外部DINT*/SDI信号
が未接続のときは常に出力はHighレベルとなる。プ
ルアップ抵抗付き入力バッファ368Bは、外部DBG
E*信号を内部へ入力する。プルアップ抵抗付きなので
外部DBGE*信号が未接続のときは常に出力はHig
hレベルとなる。プルアップ抵抗付き入力バッファ36
8Cは、外部DRESET*信号を内部へ入力する。プ
ルアップ抵抗付きなので、外部DRESET*信号が未
接続のときは常に出力はHighレベルとなる。
E*信号、外部DRESET*信号は、デバッガが接続
されていないときは信号が未接続にされる。内部ではこ
れらの入力信号はHighレベルとなり、デバッグモジ
ュールの機能はディスエーブルされる。
号INT[5:0]*を入力する。入力バッファ369
Bは、外部ユーザーリセット信号RESET*を入力す
る。
のマイクロプロセッサ及びデバッグシステムの構成を示
す図である。
0がメモリ90や周辺回路100を内蔵していることを
特徴とし、他の構成は上記実施形態と同様である。
80を介してメモリ90のプログラムを読み出して実行
したり、メモリ90上のデータをリードあるいはライト
し、またプロセッサコア20は内蔵の周辺回路100を
アクセスする。プロセッサコア20は、デバッグモード
において、デバッグモジュール30を介して、デバッガ
上のモニタプログラムを実行する。
ールとデバッガのインターフェース信号の機能、タイミ
ングが同じならば、内蔵しているメモリ90、周辺回路
100の違いによらず、前記実施形態と同じデバッガ6
0を使用することができる。
実施形態のものと同じであれば、デバッガ60上のモニ
タプログラムも同一のものを使用することができる。
データアドレスブレーク、プロセッサバスブレークチャ
ネル数がそれぞれ1のときを一例として説明したが、本
発明はこの構成に限定されるものではない。チャネル数
が2以上でも適用できる。図40に命令アドレスブレー
クのチャネル数が15になったときのIBSレジスタの
構成を示す。
シリアルモニタバスのビット幅が1ビットのときを例に
説明したが、この発明はこの構成に限定されるものでは
ない。シルアルモニタバスのために、さらに多くのマイ
クロプロセッサの外部信号を使用できる場合には、ビッ
ト幅が2ビット以上にすることもできる。
ットPCの出力を1本の外部信号を用いて行った時の例
を説明したが、この発明はこの構成に限定されるもので
はない。ターゲッットPC出力のために、さらに多くの
マイクロプロセッサの外部信号を使用できる場合には、
ターゲットPC出力を複数の外部信号を用いて行うこと
ができる。
ッロック供給回路37は、クロック信号(CLK)を2
分周する回路であったが、この発明はこの構成に限定さ
れるものではない。クロック信号(CLK)と同じ周波
数やクロック信号(CLK)の整数倍あるいは2のべき
乗倍のクロック信号を出力し、このクロック信号をシリ
アルモニタバス回路の動作クロック信号として使用して
もよい。
グツールのハードウェア仕様を共通化でき、デバッグツ
ールとの接続のための信号の本数を削減できる。例え
ば、従来の方法では、アドレス信号30本、バイトイネ
ーブル信号4本、リード信号、ライト信号、リード応答
信号、ライト応答信号、データ信号32本、合計70本
の信号でユーザーターゲットシステムとデバッガとを接
続しなければならなかったが、本システムでは8本の信
号で接続すればよい。これにより、プローブの小型化、
低価格化ができる。
がメモリやI/Oをアクセスするので、デバッグツール
に要求されるタイミング条件が改善される。デバッグツ
ールに接続されない信号に関しては、影響を及ぼさな
い。デバッグツールとマイクロプロセッサ間の通信速度
を必要に応じて遅くできる。これにより、高速のマイク
ロプロセッサにも対応することができる。
ような効果が得られる。モニタプログラムをデバッグツ
ール側のメモリで実行するため、ユーザのメモリを使用
しない。モニタに入るために専用のデバッグ例外、デバ
ッグリセットを用意しているために、ユーザの割り込み
に制限を加えない。ユーザターゲットシステムにシルア
ルインターフェースを用意する必要がない。ハードウェ
ーアブレークポイントが使用可能である。
クロプロセッサ内部に、シーケンサを持つ必要がないた
め、マイクロプロセッサ内部に追加されるデバッグのた
めのロジック回路が簡単になる。モニタプログラムによ
ってレジスタにアクセスするため派生品のマイクロプロ
セッサでレジスタが追加されるような場合でもモニタプ
ログラムを変更するだけで容易にそれらに対応してアク
セスすることが可能となる。
ば、ユーザーターゲットシステム上のマイクロプロセッ
サにデバッグ機能を備えるようにしたので、ユーザータ
ーゲットシステム上のマイクロプロセッサにデバッグ機
能をユーザーターゲットシステムとデバッガとの接続に
要する信号を削減することができる。また、デバッグ時
でもユーザーターゲットシステム上でマイクロプロセッ
サを動作させるようにしたので、ユーザーターゲットシ
ステム上のメモリやI/Oのアクセスを容易にすること
ができる。
ーザープログラムの実行中(ノーマルモード)には、デ
バッグツール及びデバッグモジュール内の制御レジスタ
のアクセスが不可能であるので、ユーザープログラムに
よってデバッグツールで使用するメモリやレジスタで誤
って破壊されることがなくなり、信頼性の高いデバッグ
システムを実現できる。
プロセッサコアがデバッグモードへ移行した後でも、デ
バッグツール及びデバッグモジュール内の制御レジスタ
のアクセスが禁止される。プロセッサコアがデバッグ例
外を発生してデバッグモードへ移行したが、直前のユー
ザープログラムのライトオペレーションがまだ完了して
いないことがあり得る。この時、そのライトがデバッグ
ツール又はデバッグモジュール内の制御レジスタへのラ
イトであった場合でも、MPビットがセットされていれ
ば、そのライトアクセスを禁止することができる。これ
により、ユーザープログラムによって、デバッグツール
で使用するメモリやレジスタが誤って破壊されることが
なくなり、信頼性の高いデバッグシステムを実現でき
る。
明によれば、デバッグモード中のCTC0命令によるデ
バッグツールへのライトは、DCRレジスタのMPビッ
トの値によらず、常に可能であり、また、メモリライト
命令とは異なってモニタ領域のアドレスを作るために汎
用レジスタを使用する必要がない。
すことなく、デバッグ例外発生直後に、汎用レジスタの
値をデバッグツール上のメモリへセーブすることが可能
である。このように、ユーザーが使用している汎用レジ
スタの内容をデバッグツールが書き壊すことがなく、透
過性に優れたデバッグシステムを実現できる。
ト上のマイクロプロセッサにデバッグ機能を備えること
によって、PCトレース出力に必要なインターフェース
信号を削減することができる。
ト上のマイクロプロセッサにデバッグ機能を備えること
によって、最小のハードウエアによってトリガ機能を実
現することができる。
クロプロセッサ及びデバッグシステムの構成を示す図で
ある。
成を示す図である。
す図である。
の構成を示す図である。
タの構成を示す図である。
タの構成を示す図である。
の構成を示す図である。
タの構成を示す図である。
タの構成を示す図である。
タの構成を示す図である。
スタの構成を示す図である。
スタの構成を示す図である。
スタの構成を示す図である。
スタの構成を示す図である。
タの構成を示す図である。
ータアドレスブレーク回路の構成を示す図である。
サバスブレーク回路の構成を示す図である。
モニタバス回路の構成を示す図である。
のタイミング図である。
のタイミング図である。
リアルモニタバスのリードオペレーションのタイミング
図である。
リアルモニタバスのライトオペレーションのタイミング
図である。
ル回路の動作フローを示す図である。
ョンの動作フローを示す図である。
ョンの動作フローを示す図である。
ース回路の構成を示す図である。
である。
のタイミング図である。
レース出力のタイミング図である。
ミング図である。
ストリガが発生したときのタイミング図である。
トレーストリガが発生したときのタイミング図である。
力のタイミング図である。
した時のPCST[2:0]出力のタイミング図であ
る。
[2:0]出力のタイミング図である。
る。
ジャンプが発生したときのタイミング図である。
のタイミング図である。
回路の構成を示す図である。
バッグシステムの構成を示す図である。
するデバッグシステムの一構成を示す図である。
するデバッグシステムの他の構成を示す図である。
するデバッグシステムのさらに他の構成を示す図であ
る。
Claims (25)
- 【請求項1】 ユーザーターゲットシステムをデバッグ
するモニタプログラムを含むデバッグツールと、 ユーザープログラム又はモニタプログラムを実行するプ
ロセッサコアと、前記プロセッサコアと内部デバッグイ
ンターフェース又はプロセッサバスを介して接続され、
前記デバッグツールと外部デバッグインターフェースを
介して接続され、モニタプログラムを前記プロセッサコ
アが実行可能とするための前記デバッグツールとのイン
ターフェース手段、及び前記プロセッサコアがユーザー
プログラムの実行中にユーザープログラムからモニタプ
ログラムへ移行するための割り込み又は例外を前記プロ
セッサコアに要求する実行制御手段を備えたデバッグモ
ジュールとからなるマイクロプロセッサと、 前記マイクロプロセッサとプロセッサバスにより接続さ
れてデバッグの対象となるユーザーターゲットシステム
を構成し、前記マイクロプロセッサがユーザープログラ
ムを実行するために必要となる情報を記憶するメモリ
と、 前記マイクロプロセッサとプロセッサバスにより接続さ
れてデバッグの対象となるユーザーターゲットシステム
を構成するI/O装置とを有することを特徴とするデバ
ッグシステム。 - 【請求項2】 前記デバッグモジュールは、 前記プロセッサコアから出力される命令又はデータのア
ドレスを入力し、その値が予め設定された前記アドレス
と一致したとき前記プロセッサコアへアドレスブレーク
例外を要求するブレーク回路と、 前記プロセッサコアと前記プロセッサバスで接続され、
前記プロセッサバス上のバスサイクルを監視して、予め
設定されたアドレスとデータのバスサイクルが実行され
ると、前記プロセッサコアへ例外を要求するプロセッサ
バスブレーク回路と、 前記プロセッサバスによって前記プロセッサコアと接続
され、前記プロセッサコアがデバッグツール上のモニタ
プログラムを実行するときにインターフェースを行うシ
リアルモニタバス回路と、 デバッグモジュールの機能を制御する情報を格納し、格
納された情報が前記プロセッサコアによってリード/ラ
イトされるレジスタ回路と、 前記シリアルモニタバス回路、前記プロセッサコアと前
記デバッグツールとのインターフェースを制御する外部
インターフェース回路と、 前記マイクロプロセッサと前記デバッグツールとの間を
入出力する信号の転送速度を規定するクロック信号を前
記デバッグツールに供給するクロック信号供給回路とを
有することを特徴とする請求項1記載のデバッグシステ
ム。 - 【請求項3】 前記クロック信号供給回路は、前記プロ
セッサコアが動作するクロック信号の整数倍又は2のべ
き乗の周期のクロック信号を供給することを特徴とする
請求項2記載のデバッグシステム。 - 【請求項4】 前記デバッグモジュールと前記デバッグ
ツールとの接続信号は、前記デバッグツールとの接続の
みに使用することを特徴とする請求項1,2又は3記載
のデバッグシステム。 - 【請求項5】 前記デバッグモジュールと前記デバッグ
ツールとの接続信号は、全て単一方向の信号からなるこ
とを特徴とする請求項1,2,3又は4記載のデバッグ
システム。 - 【請求項6】 前記デバッグモジュールは、 前記プロセッサコアが特定のアドレス領域をアクセスし
た際に、前記プロセッサコアの複数のアドレス信号又は
バスコントロール信号を予め設定された時間間隔で順次
前記デバッグツールに出力し、前記プロセッサコアがラ
イトアクセスした際は、さらにデータ出力信号を予め設
定された時間間隔で順次前記デバッグツールに出力し、
前記プロセッサコアがリードアクセスした際に、前記デ
バッグツールからの入力信号を予め設定された時間間隔
で順次入力し、複数ビットのデータ信号を構成して前記
プロセッサコアに出力することを特徴とする請求項1,
2,3,4又は5記載のデバッグシステム。 - 【請求項7】 前記予め設定された時間間隔は、前記ク
ロック信号供給回路の出力クロックによって規定される
ことを特徴とする請求項6記載のデバッグシステム。 - 【請求項8】 前記デバッグモジュールと前記デバッグ
ツールとは、1本の第1転送線を介して前記プロセッサ
コアの複数のバスインターフェース信号を1ビットシリ
アルに前記デバッグツールに転送し、1本の第2転送線
を介して前記デバッグツールから1ビットシリアルに情
報を前記デバッグモジュールに転送することを特徴とす
る請求項1,2,3,4、5,6又は7記載のデバッグ
システム。 - 【請求項9】 前記プロセッサコアは、モニタプログラ
ムへの遷移を要求する例外あるいはリセットを発生する
と有効となるモード信号を有し、 前記デバッグモジュールは、前記モード信号が有効な場
合にのみ前記プロセッサコアから前記デバッグツール又
は前記デバッグモジュール内の前記レジスタ回路にアク
セスが可能となることを特徴とする請求項1又は3記載
のデバッグシステム。 - 【請求項10】 前記プロセッサコアは、モニタプログ
ラムへの遷移を要求する例外あるいはリセットを発生す
ると有効となるモード信号を有し、 前記デバッグモジュールは、前記デバッグモジュールへ
のアクセスを禁止する制御ビットを有し、この制御ビッ
トが有効な場合は前記モード信号が有効であっても前記
プロセッサから前記デバッグツール又は前記デバッグモ
ジュール内の前記レジスタ回路へのアクセスを禁止する
ことを特徴とする請求項1又は3記載のデバッグシステ
ム。 - 【請求項11】 前記プロセッサコアは、モニタプログ
ラムへの遷移を要求する例外あるいはリセットを発生す
ると有効となるモードを有し、汎用レジスタの値をデー
タ信号へ出力するとともに、第1のライト信号を有効に
する第1のライト命令と、汎用レジスタの値をデータ信
号へ出力するとともに、第2のライト信号を有効にする
第2のライト命令を有することを特徴とする請求項1又
は3記載のデバッグシステム。 - 【請求項12】 前記デバッグモジュールは、前記デバ
ッグモジュールへのアクセスを禁止する制御ビットを有
し、前記制御ビットが有効な場合は前記第1のライト信
号による前記デバッグモジュールへのライトアクセスを
禁止し、前記第2のライト信号による前記デバッグモジ
ュールへのライトアクセスは前記制御ビットの値によら
ず許可することを特徴とする請求項11記載のデバッグ
システム。 - 【請求項13】 プログラムを実行するプロセッサコア
と、 前記プロセッサコアと内部デバッグインターフェースを
介して接続され、 前記プロセッサコアから出力される、実行している命令
のアドレスの値を、 命令のアドレスのビット幅よりも少ない本数のプログラ
ムカウンタ出力信号に出力するプログラムカウンタトレ
ース回路と、 を有することを特徴とするマイクロプロセッサ。 - 【請求項14】 前記プロセッサコアは、インダイレク
トジャンプ命令を実行したときに、それを示すインダイ
レクトジャンプ有効信号を有効にし、そのインダイレク
トジャンプ命令のジャンプ先アドレスの値を前記プログ
ラムカウンタトレース回路へ出力し、 前記プログラムカウンタトレース回路は、前記インダイ
レクトジャンプ有効信号が有効になると、前記プロセッ
サコアからそのジャンプ先アドレスを入力し、前記プロ
グラムカウンタ出力信号へアドレスの下位ビットの方か
ら、ジャンプ先アドレスを出力し、ジャンプ先アドレス
の出力を開始したことを示す情報をプログラムカウンタ
ステータス信号へ出力すること、を特徴とする請求項1
3記載のマイクロプロセッサ。 - 【請求項15】 前記プロセッサコアは、例外が発生し
たときに、それを示す例外有効信号を有効にし、その例
外に対応するジャンプ先アドレスの値を前記プログラム
カウンタトレース回路へ出力し、 前記プログラムカウンタトレース回路は、前記例外有効
信号が有効になると、前記プロセッサコアからそのジャ
ンプ先アドレスを入力し、そのジャンプ先アドレスを少
ないビット数の情報にコード化し、例外のジャンプ先ア
ドレスの出力を開始したことを示す情報をプログラムカ
ウンタステータス信号へ前記プログラムカウンタ出力信
号へ出力すること、 を特徴とする請求項13又は14記載のマイクロプロセ
ッサ。 - 【請求項16】 前記プログラムカウンタトレース回路
が、第1のインダイレクトジャンプのジャンプ先アドレ
スを出力しているときに、前記プロセッサコアが、第2
のインダイレクトジャンプを実行したとき、 前記プロセッサコアは、第2のインダイレクトジャンプ
命令を実行したときに、それを示すインダイレクトジャ
ンプ有効信号を有効にし、第2のインダイレクトジャン
プ命令のジャンプ先アドレスの値を前記プログラムカウ
ンタトレース回路へ出力し、 前記プログラムカウンタトレース回路は、第2のインダ
イレクトジャンプに対応する前記インダイレクトジャン
プ有効信号が有効になると、前記プロセッサコアから第
2のインダイレクトジャンプのジャンプ先アドレスを入
力し、第1のインダイレクトジャンプのジャンプ先アド
レスの出力を中止して、第2のインダイレクトジャンプ
のジャンプ先アドレスを前記プログラムカウンタ出力信
号へ出力し、ジャンプ先アドレスの出力を開始したこと
を示す情報をプログラムカウンタステータス信号へ出力
すること、 を特徴とする請求項14記載のマイクロプロセッサ。 - 【請求項17】 前記プログラムカウンタトレース回路
が、インダイレクトジャンプのジャンプ先アドレスを出
力しているときに、前記プロセッサコアが、例外を発生
したとき、 前記プロセッサコアは、前記例外が発生したときに、そ
れを示す例外有効信号を有効にし、その例外に対応する
ジャンプ先アドレスの値を前記プログラムカウンタトレ
ース回路へ出力し、 前記プログラムカウンタトレース回路は、前記例外有効
信号が有効になると、前記プロセッサコアから前記例外
のジャンプ先アドレスを入力し、前記インダイレクトジ
ャンプのジャンプ先アドレスの出力を一時中断して、前
記例外のジャンプ先アドレスを少ないビット数の情報に
コード化し、前記プログラムカウンタ出力信号へ出力
し、例外のジャンプ先アドレスの出力を開始したことを
示す情報をプログラムカウンタステータス信号へ出力
し、前記例外のコードの出力が終了した後、中断してい
た前記インダイレクトジャンプのジャンプ先アドレスを
出力すること、 を特徴とする請求項14,15又は16記載のマイクロ
プロセッサ。 - 【請求項18】 前記プロセッサコアは、ダイレクトジ
ャンプ命令あるいは分岐成功の条件分岐命令を実行した
ときに、それを示すダイレクトジャンプ有効信号を有効
にし、そのダイレクトジャンプ命令あるいは条件分岐命
令のジャンプ先アドレスの値を前記プログラムカウンタ
トレース回路へ出力し、 前記プログラムカウンタトレース回路は、前記ダイレク
トジャンプ有効信号が有効になると、インダイレクトジ
ャンプのジャンプ先アドレスを出力していないときは、
前記プロセッサコアから前記ジャンプ先アドレスを入力
し、前記プログラムカウンタ出力信号へアドレスの下位
ビットの方から、ジャンプ先アドレスを出力し、ジャン
プ先アドレスの出力を開始したことを示す情報をプログ
ラムカウンタステータス信号へ出力し、 また、インダイレクトジャンプのジャンプ先アドレスを
出力しているときは、単にダイレクトジャンプの実行あ
るいは分岐成功の条件分岐命令を実行したことを示す情
報を前記プログラムカウンタステータス信号へ出力する
こと、 を特徴とする請求項14,15,16又は17記載のマ
イクロプロセッサ。 - 【請求項19】 前記プロセッサコアは、命令が実行さ
れたときに有効になるパイプライン実行信号を出力し、 前記プログラムカウンタトレース信号は、前記プロセッ
サコアから前記パイプライン実行信号を入力して、前記
パイプライン実行信号が有効なとき、命令が前記プロセ
ッサコアで実行されたことを示す情報を前記プログラム
カウンタステータス信号へ出力し、 前記パイプライン実行信号が無効なとき、命令が実行さ
れなかったことを示す情報を前記プログラムカウンタス
テータス信号へ出力すること、 を特徴とする請求項13,14,15,16,17又は
18記載のマイクロプロセッサ。 - 【請求項20】 前記プログラムカウンタトレース回路
が、第1のインダイレクトジャンプ先アドレスを出力し
ているときに、前記プロセッサコアが、第2のインダイ
レクトジャンプ命令を実行したとき、 前記プロセッサコアは、第2のインダイレクトジャンプ
命令を実行したときに、それを示すインダイレクトジャ
ンプ有効信号を有効にし、第2のインダイレクトジャン
プ命令のジャンプ先アドレスの値を前記プログラムカウ
ンタトレース回路へ出力し、また、プロセッサコア停止
信号が有効になると、実行を一時停止し、 前記プログラムカウンタトレース回路は、第2のインダ
イレクトジャンプに対応する前記インダイレクトジャン
プ有効信号が有効になると、前記プロセッサコア停止信
号を有効にし、第1のジャンプ先アドレスの出力を完了
させ、次に前記プロセッサコアから第2のインダイレク
トジャンプのジャンプ先アドレスを入力し、 第2のインダイレクトジャンプのジャンプ先アドレスを
前記プログラムカウンタ出力信号へ出力し、ジャンプ先
アドレスの出力を開始したことを示す情報をプログラム
カウンタステータス信号へ出力すること、 を特徴とする請求項13記載のマイクロプロセッサ。 - 【請求項21】 前記プログラムカウンタトレース回路
が、第1のインダイレクトジャンプ先アドレスを出力し
ているときに、前記プロセッサコアが、第2のインダイ
レクトジャンプ命令を実行したとき、 前記プロセッサコアは、第2のインダイレクトジャンプ
命令を実行したときに、それを示すインダイレクトジャ
ンプ有効信号を有効にし、第2のインダイレクトジャン
プ命令のジャンプ先アドレスの値を前記プログラムカウ
ンタトレース回路へ出力し、また、プロセッサコア停止
信号が有効になると、実行を一時停止し、 前記プログラムカウンタトレース回路は、インダイレク
トジャンプのジャンプ先出力を完全に行なうかどうかを
示すトレースモード信号入力を持ち、 インダイレクトジャンプのジャンプ先を完全に出力する
モードでは、第2のインダイレクトジャンプに対応する
前記インダイレクトジャンプ有効信号が有効になると、
前記プロセッサコア停止信号を有効にし、第1のジャン
プ先アドレスの出力を完了させ、次に前記プロセッサコ
アから第2のインダイレクトジャンプのジャンプ先アド
レスを入力し、第2のインダイレクトジャンプのジャン
プ先アドレスを前記プログラムカウンタ出力信号へ出力
し、ジャンプ先アドレスの出力を開始したことを示す情
報をプログラムカウンタステータス信号へ出力し、 インダイレクトジャンプのジャンプ先を完全には出力し
ないモードでは、 第2のインダイレクトジャンプに対応する前記インダイ
レクトジャンプ有効信号が有効になると、前記プロセッ
サコアから第2のインダイレクトジャンプのジャンプ先
アドレスを入力し、第1のインダイレクトジャンプのジ
ャンプ先アドレスの出力を中止して、第2のインダイレ
クトジャンプのジャンプ先アドレスを前記プログラムカ
ウンタ出力信号へ出力し、ジャンプ先アドレスの出力を
開始したことを示す情報をプログラムカウンタステータ
ス信号へ出力すること、 を特徴とする請求項13記載のマイクロプロセッサ。 - 【請求項22】 前記プロセッサコアは、ユーザープロ
グラムとユーザーターゲットシステムをデバッグするモ
ニタプログラムを実行し、ユーザープログラムの実行中
にモニタプログラムへ移行するための割り込み又は例外
が、外部から要求されると、ユーザープログラムの実行
を中断し、モニタプログラムへジャンプしてモニタプロ
グラムの命令フェッチを行ない、 前記プログラムカウンタトレース回路は、前記プロセッ
サコアがモニタプログラムへジャンプしたときでも、ジ
ャンプのターゲットアドレスあるいは例外コードを出力
しているときは、これらの出力を完了するまで、前記プ
ロセッサコアの命令フェッチを遅らせること、 を特徴とする請求項13,14,15,16,17,1
8,19,20又は21記載のマイクロプロセッサ。 - 【請求項23】 プログラムを実行するプロセッサコア
と、 設定したアドレスとアクセスされたアドレスが一致した
とき、あるいは設定したアドレスとデータがアクセスさ
れたアドレスとデータに一致したときに、前記プロセッ
サコアへブレークを要求するか、トリガ出力要求信号を
有効にするブレーク回路と、 前記ブレーク回路からのトリガ出力要求信号が有効にな
ったとき、外部ステータス信号を有効にするプログラム
カウンタトレース回路を有することを特徴とするマイク
ロプロセッサ。 - 【請求項24】 前記プログラムカウンタトレース回路
は、前記プロセッサコアの内部状態情報をコード化して
外部ステータス信号に出力し、前記プロセッサコアが第
1の内部状態であるときは、前記トリガ出力要求信号が
有効になっても、その情報を外部ステータス信号に出力
せずに、トリガ要求がないときと同じ内部状態の情報を
外部ステータス信号へ出力し、前記プロセッサコアが第
2の内部状態であるときは、前記トリガ出力要求信号が
有効になると、トリガが発生したことを示す情報を外部
ステータス信号へ出力することを特徴とする請求項23
記載のマイクロプロセッサ。 - 【請求項25】 前記第1の内部状態は、ジャンプ命令
の実行、あるいは例外の発生であり、前記第2の内部状
態は、命令のシーケンシャル実行、あるいはパイプライ
ンストールであることを特徴とする請求項24記載のマ
イクロプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7341675A JP2974601B2 (ja) | 1994-12-28 | 1995-12-27 | マイクロプロセッサ及びデバッグシステム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6-328993 | 1994-12-28 | ||
JP32899394 | 1994-12-28 | ||
JP7341675A JP2974601B2 (ja) | 1994-12-28 | 1995-12-27 | マイクロプロセッサ及びデバッグシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08255096A JPH08255096A (ja) | 1996-10-01 |
JP2974601B2 true JP2974601B2 (ja) | 1999-11-10 |
Family
ID=26573041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7341675A Expired - Lifetime JP2974601B2 (ja) | 1994-12-28 | 1995-12-27 | マイクロプロセッサ及びデバッグシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2974601B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10214203A (ja) * | 1997-01-29 | 1998-08-11 | Nec Corp | 情報処理装置 |
WO2001093040A1 (fr) * | 2000-05-30 | 2001-12-06 | Matsushita Electric Industrial Co., Ltd. | Systeme et procede d'analyse de compteur de programme, et dispositif a semi-conducteur |
JP2003099246A (ja) * | 2001-09-26 | 2003-04-04 | Denso Corp | アクチュエータ制御システム |
JP2006268727A (ja) | 2005-03-25 | 2006-10-05 | Seiko Epson Corp | 集積回路装置、デバッグシステム、マイクロコンピュータ及び電子機器 |
JP6961553B2 (ja) | 2018-08-30 | 2021-11-05 | 株式会社東芝 | 情報処理装置、システム及び方法 |
CN116340188B (zh) * | 2023-05-26 | 2023-08-04 | 深流微智能科技(深圳)有限公司 | Gpu芯片渲染任务的调试方法及系统 |
CN116860656A (zh) * | 2023-08-30 | 2023-10-10 | 深圳市瑞之辰科技有限公司 | 基于KeilC的MCU调试方法及系统 |
-
1995
- 1995-12-27 JP JP7341675A patent/JP2974601B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH08255096A (ja) | 1996-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5978937A (en) | Microprocessor and debug system | |
JP2752592B2 (ja) | マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法 | |
US5640542A (en) | On-chip in-circuit-emulator memory mapping and breakpoint register modules | |
KR100439781B1 (ko) | 데이터프로세서와그동작방법,그디버깅동작실행방법및그중단점값수정방법 | |
EP0391173B1 (en) | Debug peripheral for microcomputers, microprocessors and core processor integrated circuits and system using the same | |
KR100350568B1 (ko) | 디버그기능을수행하기위한데이타처리시스템및방법 | |
EP0762276B1 (en) | Data processor with built-in emulation circuit | |
US5630102A (en) | In-circuit-emulation event management system | |
US6449709B1 (en) | Fast stack save and restore system and method | |
US7392431B2 (en) | Emulation system with peripherals recording emulation frame when stop generated | |
JP4094724B2 (ja) | ソフトウェアをデバッグする際に例外を識別するための装置および方法 | |
US5347636A (en) | Data processor which efficiently accesses main memory and input/output devices | |
EP0762277A1 (en) | Data processor with built-in emulation circuit | |
WO1998045782A1 (en) | Debug interface including a compact trace record storage | |
JPH02252008A (ja) | マイクロプロセッサ | |
US6678838B1 (en) | Method to track master contribution information in a write buffer | |
US6158023A (en) | Debug apparatus | |
JP2974601B2 (ja) | マイクロプロセッサ及びデバッグシステム | |
JPH09218801A (ja) | データプロセッサ | |
JPH11110255A (ja) | ソフトウェアをデバッグするための装置および方法 | |
JP2003263339A (ja) | デバック機能内蔵型マイクロコンピュータ | |
JPH10275092A (ja) | マイクロプロセッサのトレース情報出力方法 | |
KR100223096B1 (ko) | 내부 메모리 맵 레지스터를 관측하는 방법 및 장치 | |
JP2664644B2 (ja) | マイクロプロセッサのリセット方法 | |
US6606590B1 (en) | Emulation system with address comparison unit and data comparison unit ownership arbitration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070903 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080903 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080903 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090903 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090903 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100903 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110903 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110903 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120903 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120903 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130903 Year of fee payment: 14 |
|
EXPY | Cancellation because of completion of term |