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
Application number
JP7341675A
Other languages
English (en)
Other versions
JPH08255096A (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 JP7341675A priority Critical patent/JP2974601B2/ja
Publication of JPH08255096A publication Critical patent/JPH08255096A/ja
Application granted granted Critical
Publication of JP2974601B2 publication Critical patent/JP2974601B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、デバッグ機能のう
ちのプログラムカウンタをトレースする機能(PCトレ
ース機能)を有すると共に、デバッグ機能のうちのあら
かじめ設定したアドレス、データがアクセスされたとき
に、外部にそれを通知する機能(トリガ機能)を有する
マイクロプロセッサ及びデバッグシステムに関する。
【0002】
【従来の技術】図42に従来のデバッグシステムを示
す。この従来例は一般にインサーキットエミュレータと
呼ばれるデバッグシステムである。
【0003】図42において、従来のデバッグシステム
は、ユーザーターゲットシステム500とユーザーター
ゲットシステム500をデバッグするためのデバッガ5
05から構成される。ユーザーターゲットシステム50
0はさらに、マイクロプロセッサ501、メモリ50
3、I/O502からなる。デバッガ505は、デバッ
グ用マイクロプロセッサ506とモニタプログラムメモ
リ507から構成される。
【0004】従来のデバッグシステムでは、デバッグ時
には、ターゲットボード上のマイクロプロセッサ501
を取り外すか又は無効にして、この部分にデバッガ50
5のプローブを接続して、デバッガ505上のデバッグ
用マイクロプロセッサ506を代わりに動作させる。デ
バッグ用マイクロプロセッサ506はデバッガ505上
のモニタプログラムメモリ507に格納されているモニ
タプログラムを実行することにより、ユーザープログラ
ムの実行を制御している。
【0005】デバッグ用マイクロプロセッサ506は、
ユーザーターゲットシステム500上のメモリ503に
格納されているプログラムを実行し、メモリ503上の
データをアクセスしたり、I/O502をアクセスす
る。また、デバッガ505はトレースメモリ508を有
し、デバッグ用マイクロプロセッサ506は、マイクロ
プロセッサ501からは得られないトレース情報を出力
する。これにより、プロセッサバスからだけではトレー
スできないプロセッサの内部状態の一部、例えばプログ
ラムカウンタ(PC)の値がトレース可能となる。
【0006】この従来例では、ユーザーターゲットシス
テム500上のマイクロプロセッサのすべてのピンにデ
バッガ505を接続しなければならない。プロセッサの
ピンには、例えばアドレス信号30本、バイトイネーブ
ル信号4本、リード信号、ライト信号、リード応答信
号、ライト応答信号、データ信号32本、合計70本の
信号がある。接続するピン数が多いため、プローブが高
価となり、しかもプロービングが不安定になることが多
かった。また、ターゲットシステム500上のメモリ5
03にアクセスする場合とデバッガ505のモニタプロ
グラムメモリ507にアクセスする場合とで、バスを切
り替えなければならないため、動作周波数の高いプロセ
ッサでは実現が困難であった。
【0007】さらに、派生品が接続されたマイクロプロ
セッサである場合には、パッケージやピンの数、位置が
異なるために、本質的には同じデバッガが使用できるに
もかかわらず、プローブを派生品毎に用意しなければな
らなかった。また、プローブを接続することによりユー
ザーターゲットシステム500で使用する信号にも影響
を与え、ユーザーターゲットシステム500の動作その
ものを不安定にする場合があった。
【0008】図43にデバッグシステムの他の従来例を
示す。この従来例は、一般にROMモニタと呼ばれるデ
バッグシステムである。
【0009】この従来例は、ユーザーターゲットシステ
ム510上にホストコンピュータ517と接続するため
のシルアルインターフェース512を用意して、メモリ
513中にモニタプログラム514を格納しておく。マ
イクロプロセッサ511は、このモニタプログラム51
4を実行させることによりI/O515、メモリ51
3、レジスタ516にアクセスする。さらに、ソフトウ
ェアブレイク命令を使用して、ユーザープログラムの実
行制御を行う。
【0010】この従来例では、モニタプログラム514
をユーザーが使用するメモリ513で実行するために、
ユーザーターゲットシステム510のメモリシステムの
動作が完全でない場合に、モニタプログラム自身が安定
して動作しない場合があった。ユーザーのメモリ量に余
裕が無い場合には、モニタプログラムが占有するアドレ
ス空間が確保できないことがあった。さらに、モニタモ
ードに入るために、ユーザーの割り込みの一部を使用し
なければならないので、プログラムの種類によってはデ
バッグが不可能なことがあった。また、予めユーザータ
ーゲットシステム510上に、シリアルインターフェー
スの回路を実装しなければならないなど、デバッグ後は
使用しない可能性のある回路をターゲットシステムに設
ける必要があった。さらに、デバッグのためのハードウ
ェーアブレークポイント等の資源を備えていないため、
デバッグ機能が貧弱であり、トレースも取れなかった。
【0011】図44にデバッグシステムのさらに他の従
来例を示す。
【0012】この従来例は、ユーザーターゲットシステ
ム520上のマイクロプロセッサ521中にデバッグツ
ール529との通信に必要なシリアルインターフェース
526とデバッグツール529から送られてきた電気信
号を解釈して実行するシーケンサ525を内蔵する。シ
ーケンサ525は、送られてきた信号にしたがってユー
ザープログラムの実行を一時停止して、レジスタ528
にアクセスしたり、バスコントローラ527を使用して
メモリ524やI/O523にアクセスし、ユーザープ
ログラムの実行制御を行う。シリアルインターフェース
526からの信号は、直接にはホストコンピュータ53
0に接続できないことが多いので、デバッグツール52
9がホストコンピュータからのコマンドをマイクロプロ
セッサ521が理解できる電気信号に変換したり、また
マイクロプロセッサ521からの信号をホストコンピュ
ータ530が理解できるデータ形式に変換する。
【0013】この従来例では、シーケンサ525をマイ
クロプロセッサ521に内蔵して、さらに、シーケンサ
525がプロセッサ521にアクセスするため、デバッ
グツール529との接続のためのロジック回路が複雑と
なり、チップ上での面積も大きくなった。また、レジス
タの追加などが発生した場合に、シーケンサ525を変
更しなければならないので、変更のための作業に労力を
要していた。また、この従来例でもトレースは取れなか
った。
【0014】
【発明が解決しようとする課題】上記したように、従来
のデバッグシステムでは、ユーザーターゲットシステム
とデバッグ用プロセッサをプロセッサバスで接続するた
めに、接続に要する信号が多くなるという欠点があっ
た。また、図42に示す従来のデバッグシステムでは、
デバッガ上のマイクロプロセッサがユーザーターゲット
システムのメモリ、I/Oをアクセスしなければならな
く、アクセスのタイミングが困難であった。
【0015】また、モニタプログラムをユーザのメモリ
に記憶される従来のデバッグシステムでは、ユーザーが
使用するメモリ空間が少なくなるという不具合を招いて
いた。さらに、デバッグを確実かつ十分に行うことが困
難となっていた。
【0016】一方、デバッグツールから与えられる信号
を解釈して実行するシーケンサをマイクロプロセッサに
内蔵してデバッグを行う従来例では、デバッグツールと
の接続のための構成が複雑かつ大型化していた。また、
マイクロプロセッサの構成のの追加などが発生した場合
にはシーケンサを変更しなければならず、変更のために
多大な労力が必要になっていた。
【0017】また、上記したように、従来のデバッグシ
ステムでは、PCトレースができなかったり、PCトレ
ースができる場合でもユーザーターゲットシステムとデ
バッグ用のプロセッサをプロセッサバスで接続するため
に、接続に要する信号が多くなるという欠点があった。
また、図42に示した従来のデバッグシステムでは、デ
バッガ上のマイクロプロセッサがユーザーターゲットシ
ステムのメモリ、I/Oをアクセスしなければならな
く、アクセスのタイミングが困難であった。
【0018】また、上記したように、図43、図44の
従来のデバッグシステムでは、トリガ機能がなかった。
また、図42に示した従来例では、デバッグ専用のマイ
クロプロセッサにトリガ機能を設けることができるが、
トリガ情報を出力する信号が増えるなどの問題があっ
た。また、図41の方法には、デバッグ用のプロセッサ
をプロセッサバスで接続するために、接続に要する信号
が多くなるという欠点があり、また、デバッグ上のマイ
クロプロセッサがユーザーターゲットシステムのメモ
リ、I/Oをアクセスしなければならなく、アクセスの
タイミングが困難であった。
【0019】そこで、この発明は、上記に鑑みてなされ
たものであり、ユーザーターゲットシステム上のマイク
ロプロセッサにデバッグ機能を備えることによって、ユ
ーザーターゲットシステムとデバッガとの接続に要する
信号を削減することを目的とする。
【0020】また、この発明は、ユーザーターゲットシ
ステム上のマイクロプロセッサにデバッグ機能を備え、
デバッグ時でもユーザーターゲットシステム上でマイク
ロプロセッサを動作させることによって、ユーザーター
ゲットシステム上のメモリやI/Oのアクセスを容易に
することを他の目的とする。
【0021】また、この発明は、ユーザーターゲットシ
ステム上のマイクロプロセッサにデバッグ機能を備える
ことによって、少ない本数の信号によってPCトレース
機能を実現することを他の目的としている。
【0022】また、この発明は、ユーザーターゲットシ
ステム上のマイクロプロセッサにデバッグ機能を備え、
デバッグ時でもユーザーターゲットシステム上でマイク
ロプロセッサを動作させることによって、ユーザーター
ゲットシステム上のメモリやI/Oのアクセスを容易に
することを他の目的とする。
【0023】また、この発明は、ユーザーターゲットシ
ステム上のマイクロプロセッサにデバッグ機能を備え、
ハードウェアブレーク機能とトリガ機能のアドレス及び
データ比較回路を共用したり、PCトレースの情報出力
信号を利用してトリガ情報を外部に出力することによ
り、最小のハードウェアによってトリガ機能を実現する
ことを他の目的としている。
【0024】
【0025】
【課題を解決するための手段】上記目的を達成するため
に、本発明の第1の特徴は、ユーザーターゲットシステ
ムをデバッグするモニタプログラムを含むデバッグツー
ルと、ユーザープログラム又はモニタプログラムを実行
するプロセッサコアと、前記プロセッサコアと内部デバ
ッグインターフェース又はプロセッサバスを介して接続
され、前記デバッグツールと外部デバッグインターフェ
ースを介して接続され、モニタプログラムを前記プロセ
ッサコアが実行可能とするための前記デバッグツールと
のインターフェース手段、及び前記プロセッサコアがユ
ーザープログラムの実行中にユーザープログラムからモ
ニタプログラムへ移行するための割り込み又は例外を前
記プロセッサコアに要求する実行制御手段を備えたデバ
ッグモジュールとからなるマイクロプロセッサと、前記
マイクロプロセッサとプロセッサバスにより接続されて
デバッグの対象となるユーザーターゲットシステムを構
成し、前記マイクロプロセッサがユーザープログラムを
実行するために必要となる情報を記憶するメモリと、前
記マイクロプロセッサとプロセッサバスにより接続され
てデバッグの対象となるユーザーターゲットシステムを
構成するI/O装置とを有するマイクロプロセッサであ
ることである。
【0026】上記第1の特徴によれば、ユーザーターゲ
ットシステム上のマイクロプロセッサにデバッグ機能を
備えて、ユーザーターゲットシステムとデバッガとの接
続に要する信号を削減することができる。また、デバッ
グ時でもユーザーターゲットシステム上でマイクロプロ
セッサを動作させることによって、ユーザーターゲット
システム上のメモリやI/Oのアクセスを容易にするこ
とができる。
【0027】本発明の第2の特徴は、プログラムを実行
するプロセッサコアと、前記プロセッサコアと内部デバ
ッグインターフェースを介して接続され、前記プロセッ
サコアから出力される、実行している命令のアドレスの
値を、命令のアドレスのビット幅よりも少ない本数のプ
ログラムカウンタ出力信号に出力するプログラムカウン
タトレース回路と、を有するマイクロプロセッサである
ことである。
【0028】上記第2の特徴によれば、ユーザーターゲ
ット上のマイクロプロセッサにデバッグ機能を備えるこ
とによって、プログラムカウンタトレース出力に必要な
インターフェース信号を削減することができる。
【0029】本発明の第3の特徴は、プログラムを実行
するプロセッサコアと、設定したアドレスとアクセスさ
れたアドレスが一致したとき、あるいは設定したアドレ
スとデータがアクセスされたアドレスとデータに一致し
たときに、前記プロセッサコアへブレークを要求する
か、トリガ出力要求信号を有効にするブレーク回路と、
前記ブレーク回路からのトリガ出力要求信号が有効にな
ったとき、外部ステータス信号を有効にするプログラム
カウンタトレース回路を有するマイクロプロセッサであ
ることである。
【0030】上記第3の特徴によれば、ユーザーターゲ
ット上のマイクロプロセッサにデバッグ機能を備えるこ
とによって、ハードウェハブレーク機能とトリガ機能の
アドレス比較回路を共用したり、プログラムカウンタト
レースの情報出力信号を利用してトリガ情報を外部に出
力することにより、最小のハードウェハによってトリガ
機能を実現することができる。
【0031】
【発明の実施の形態】以下に、図面を用いてこの発明の
実施形態を示す。
【0032】図1に請求項1記載の発明のマイクロプロ
セッサ及びデバッグシステムの構成図を示す。
【0033】図1において、デバッグシステムは、ユー
ザーターゲットシステム70とデバッガ60からなる。
【0034】ユーザーターゲットシステム70は、デバ
ッグ機能を内蔵したマイクロプロセッサ10と、メモリ
40と、I/O50とから構成される。
【0035】マイクロプロセッサ10は、プロセッサコ
ア20とデバッグモジュール30から構成される。プロ
セッサコア20は、プロセッサバス80を介してメモリ
40やI/O50をアクセスし、プログラムを実行す
る。また、プロセッサコア20は、内部デバッグインタ
ーフェースとプロセッサバス80によってデバッグモジ
ュール30と接続されている。デバッグモジュール30
は外部デバッグインターフェースによってデバッガ60
と接続されている。
【0036】デバッグシステムには、モニタプログラム
を実行しているデバッグモードと、ユーザープログラム
を実行しているノーマルモードの2つの実行モードがあ
る。
【0037】<デバッグモードの動作>プロセッサコア
20がデバッグ例外あるいはデバッグリセットを発生す
ると、デバッグモードになる。プロセッサコア20は、
デバッグ例外のベクタアドレス(FF20_0200)
あるいはデバッグリセットのベクタアドレス(FF20
_0000)へジャンプし、デバッグモード信号DMを
アサートする。これらのベクタアドレスに対応するメモ
リは、デバッガ60上におかれている。プロセッサコア
20は、デバッグモジュール30を介してデバッガ60
上のモニタプログラムを実行する。モニタプログラムで
は、メモリやレジスタのリードやライト、ユーザープロ
グラムの終了アドレスの指定、ユーザープログラムの実
行開始アドレスの指定などの実行制御機能を実現する。
プロセッサコア20が、ノーマルモードへの復帰命令を
実行することによってノーマルモードへ復帰し、ユーザ
ープログラムの実行を開始する。プロセッサコア20
は、ノーマルモードへの復帰命令で指定されるアドレス
へジャンプし、デバッグモード信号DMをネゲートす
る。
【0038】<ノーマルモードの動作>ノーマルモード
では、デバッグシステムは、ユーザープログラムを実行
する。このとき同時に、PC(プログラムカウンタ)情
報をトレースする(PCトレース機能)。デバッグシス
テムは、ハードウエアブレーク、ソフトウエアブレー
ク、デバッグ割り込み、デバッグリセットなどによっ
て、プロセッサコア20へデバッグ例外/デバッグリセ
ットを要求し、デバッグモードへ制御を移すことができ
る。
【0039】以下にノーマルモードで有効な、PCトレ
ース機能、ハードウエアブレーク機能、ソフトウエアブ
レーク機能、デバッグ割り込み機能、デバッグリセット
機能、トレーストリガ機能について説明する。
【0040】PCトレース機能は、プロセッサコア20
がユーザープログラムを実行しているときにPCの値を
トレースする機能である。プロセッサコア20が、メモ
リ40上のユーザープログラムを実行しているときに、
そのPCトレース情報を内部デバッグインターフェース
へ出力し、デバッグモジュールがその情報を入力して情
報を加工した後、外部デバッグインターフェースを介し
てデバッガ60へ出力することによって実現される。
【0041】ハードウエアブレーク機能は、所定のアド
レスの命令が実行されたり、データがアクセスされると
きに、プロセッサコア20がデバッグ例外を発生し、デ
バッガ60のモニタプログラムへ制御を移す機能であ
る。この機能は、プロセッサコア20が内部デバッグイ
ンターフェースとプロセッサバス80に出力する、命令
実行アドレス、データアクセスアドレスやそのデータの
値をデバッグモジュール30がデバッグモジュール30
内のレジスタに設定されているアドレスやデータの値と
比較し、それが一致したときにデバッグ例外あるいはデ
バッグ割り込みをプロセッサコア20へ要求することに
よって実現される。
【0042】ソフトウエアブレーク機能は、プロセッサ
コア20がソフトウエアブレーク命令を実行することに
よりデバッグ例外を発生するものである。これによりモ
ニタプログラムへ制御を移すことができる。
【0043】デバッグ割り込み機能は、プロセッサコア
20のデバッグ割り込み信号をアサートすることによ
り、プロセッサコア20がデバッグ例外を発生する機能
である。これによりモニタプログラムへ制御を移すこと
ができる。
【0044】デバッグリセット機能は、プロセッサコア
20のデバッグリセット信号をアサートすることによ
り、プロセッサコア20がデバッグリセットを発生する
機能である。これにより、プロセッサコア20とデバッ
グモジュール30の内部状態が初期化され、プロセッサ
コア20はデバッグモードとなり、デバッグリセットの
ベクタアドレス(FF20_0000)からプログラム
の実行を開始する。
【0045】トレーストリガ機能は、所定のアドレスの
命令が実行されたり、データがアクセスされたときに、
マイクロプロセッサ10が外部信号にその状態を出力す
る機能である。デバッガ60がこの信号を入力し、PC
トレースのON/OFFを制御したりする。この機能
は、プロセッサコア20が内部デバッグインターフェー
スとプロセッサバス80に出力する、命令実行アドレ
ス、データアクセスアドレスやそのデータの値をデバッ
グモジュール30が、デバッグモジュール30内のレジ
スタに設定されているアドレスやデータの値と比較し、
それらが一致したときにトリガ情報をデバッガ60へ出
力することによって実現される。
【0046】次に、デバッグモジュール30についてさ
らに詳しく説明する。
【0047】図2にデバッグモジュール30の内部ブロ
ックを示す。図2において、デバッグモジュール30
は、命令/データアドレスブレーク回路31、PCトレ
ース回路32、プロセッサバスブレーク回路33、シリ
アルモニタバス回路34、レジスタ回路35、外部イン
ターフェース回路36、クロック供給回路37から構成
される。
【0048】命令/データアドレスブレーク回路31
は、プロセッサコア20と内部デバッグインターフェー
スで接続されている。プロセッサコア20から出力され
る命令アドレスを入力し、その値がレジスタ回路35に
設定されている命令アドレスと一致したときプロセッサ
コア20へ命令アドレスブレーク例外を要求する。ま
た、プロセッサコア20から出力されるデータアドレス
を入力し、その値がレジスタ回路35に設定されている
データアドレスと一致したときプロセッサコア20へデ
ータアドレスブレーク例外を要求する。
【0049】PCトレース回路32は、プロセッサコア
20と内部デバッグインターフェースで接続されてい
る。プロセッサコア20から出力されるPCトレース情
報を入力し、その情報を加工して外部インターフェース
回路36へ出力する。
【0050】プロセッサバスブレーク回路33は、プロ
セッサコア20とプロセッサバス80で接続されてい
る。プロセッサバス80上のバスサイクルを監視して、
レジスタ回路35に設定されたアドレスとデータのバス
サイクルが実行されると、プロセッサコア20へ例外を
要求する。
【0051】シリアルモニタバス回路34は、プロセッ
サバス80によってプロセッサコア20と接続され、プ
ロセッサコア20がデバッガ60上のモニタプログラム
を実行するときに、そのインターフェースを行う。
【0052】レジスタ回路35は、デバッグモジュール
30に内蔵されている制御レジスタを含み、デバッグモ
ジュールの機能を制御する。プロセッサバス80と内部
デバッグインターフェースによってプロセッサコア20
と接続され、プロセッサコア20によって制御レジスタ
の内容をリード/ライトすることができる。また、制御
レジスタの内容は、デバッグモジュールの各回路やプロ
セッサコア20へ出力され、デバッグ機能が制御され
る。
【0053】外部インターフェース回路36は、デバッ
グモジュール30内のPCトレース回路32、シリアル
モニタバス回路34やプロセッサコア20とデバッガ6
0とのインターフェースを制御する回路である。
【0054】クロック供給回路37は、クロック信号C
LKを分周する回路である。シリアルモニタバス回路は
分周したクロックCLK2で動作する。
【0055】<外部信号の説明>デバッグモジュール3
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
【0056】(1)DCLD (Debug Cloc
k):Output この信号はデバッガ60へのクロック出力である。シリ
アルモニタバス、PCトレースインターフェースの信号
のタイミングは、すべてこのデバッグクロックDCLK
で規定される。シリアルモニタバス動作のときは、プロ
セッサコア20の動作クロックの2分周クロックにな
る。
【0057】(2)DRESET*(Debug Re
set):Input(プルアップ付き端子) この信号はデバッグリセット入力で、Low Acti
veとなる。DRESET*がアサートされると、デバ
ッグモジュールは初期化される(DBGE*には無関
係)。デバッグ60を使用しないときは、この端子を未
接続にする。
【0058】(3)PCST[2:0](PC Tra
ce Status):Output この信号は以下のPCトレースステータス情報とシリア
ルモニタバスのモードを出力する。
【0059】111(STL):パイプラインストール 110(JMP):分岐/ジャンプ成立(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(プルアップ付き端子)
【0060】この信号はデバッガ60の接続の有無を示
す。外部にデバッガ60が接続されていないときは、H
igh(非接続NC)にし、デバッガ60が接続されて
いるときはLowを入力する。
【0061】デバッガ60が接続されていない(DBG
E*信号がHighの)ときは、プロセッサコア20の
DEV信号はLowとなり、デバッグ例外のベクタアド
レスはFF20_0200になる。ユーザーリセット
(RESET*)によってデバッグモジュール機能が初
期化され、デバッガ機能が全てディスエーブル状態にな
る。出力信号(SDA0/TPC、DCLK、PCST
[2:0])は全てHi−zとなる。
【0062】デバッガ60が接続されている(DBGE
*信号がLowの)ときは、プロセッサコア20のDE
V信号はHighとなり、デバッグ例外のベクタアドレ
スは、FF20_0200(モニタ領域内)になる。ユ
ーザーリセット(RESET*)ではデバッグモジュー
ルは初期化されない。
【0063】(5)SDAO/TPC(Serial
Data and AddressOutput/Ta
rget PC):Output デバッグモード(PCST=DBM)のときは、シリア
ルモニタバスインターフェースのSDAO(Serie
al Data and Address Outpu
t)として、ノーマルモード(PCST≠DBM)のと
きは、PCトレースインターフェースのTPC(Tar
get PC)として動作する。
【0064】SDAO(Serial Data an
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]である。
【0065】TPC(Target PC)(ノーマル
モード,PCST≠DBMのとき)は、分岐/ジャンプ
命令のターゲットアドレスと例外/割り込みのベクタ番
号を出力するための信号である。ターゲットアドレス
は、下位アドレスA[2]からA[31]まで順に出力
される。
【0066】(6)SDI/DINT*(Serial
Data Input/Debug Interru
pt):Input(プルアップ付き端子) デバッグモード(PCST=DBM)のときは、シリア
ルモニタバスインターフェースのSDI(Sereal
Data input)として、ノーマルモード(P
CST≠DBM)のときは、PCトレースインターフェ
ースのDINT*(Debug Interrupt)
として作用する。
【0067】SDI(Serial Data Inp
ut)(デバッグモード,PCST=DBMのとき)は
データ入力信号。リードのときは、外部からスタートビ
ット(1クロック間Low)が入力されると、次のクロ
ックからデータ入力を開始する。ライトのときLowが
入力されると、バスサイクルが終了する。
【0068】入力の順は、リード時は、スタートビット
(Low)、D[0]−D[31]である。ライト時
は、終了ビット(Low)だけ入力する。
【0069】DINT*(Debug Interru
put)(ノーマルモード,PCST≠DBMのとき)
は、デバッガ60からのデバッグ割り込み入力である。
デバッグ60を使用しないときは、この端子を未接続に
する。
【0070】図3にレジスタ回路35の構成を示す。図
3において、レジスタ回路35は、アドレスデコーダ3
51とレジスタ部352からなる。
【0071】アドレスデコーダ351は、プロセッサコ
ア20のプロセッサバス80からのアドレス入力A[3
1:0]、リード信号RD*、ライト信号WR*、デバ
ッグモード信号DM、コアクロックCLKを入力する。
アドレスデコーダ351は、プロセッサコア20のバス
サイクル中のアドレスをデコードし、レジスタ部352
内のレジスタのアドレスに対するリードのときは、レジ
スタ部352内の対応するレジスタをリードするための
レジスタリード信号をアサートし、プロセッサコア20
のリード応答信号RDACK*をアサートする。
【0072】また、レジスタ部352のレジスタのアド
レスに対するライトのときは、レジスタ部352内の対
応するレジスタへライトするためのレジスタライト信号
をアサートし、プロセッサコア20のリード応答信号R
DACK*をアサートし、ライト応答信号WRACK*
をアサートする。
【0073】ただし、ノーマルモード中はレジスタ部3
52をアクセスできない。このときは、アドレスデコー
ダ351は、リードバスサイクルのときはリード応答信
号RDACK*、ライトバスサイクルのときはライト応
答信号WRACK*をプロセッサコア20へアサートす
るだけである。従って、リードで読み出される値は不定
となり、ライトデータは無視される。
【0074】また、デバッグモード中でも、DCRレジ
スタのメモリプロテクションビットMPがセットされて
いると、DCRレジスタを除く、レジスタ部352のレ
ジスタのアクセスは禁止される。アドレスデコーダ35
1は、リードバスサイクルのときはリード応答信号RD
ACK*、ライトバスサイクルのときはライト応答信号
WRACK*をプロセッサコア20へアサートするだけ
である。従って、リードで読み出される値は不定とな
り、ライトデータは無視される。
【0075】アドレスデコーダ351は表1に示すよう
に動作する。
【0076】
【表1】 レジスタ部352は、DCR(Debug Contr
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)を含む。
【0077】レジスタのリセット条件は、マイクロプロ
セッサ10のデバッグリセットDRESET*がアサー
トされたとき、あるいは、デバッガ60が接続されてい
ないときのユーザーリセット(RESET*アクティブ
かつDBGE*=High)である。
【0078】以下に各レジスタの機能を説明する。
【0079】図4にDCR(Debug Contro
l Register)を示す。
【0080】 TM:(Trace Mode)(リセット時:0) PCトレースの動作モードを指定するためたのビットで
ある。 0:リアルタイムでPCトレース情報を出力するモード
になる。 1:PCトレース情報を完全に出力するモードになる。
(リアルタイム性は保証されない。) TMビットはPCトレース回路32へ出力される。 MRst:(Mask User Reset)(リセ
ット時:0)ユーザーリセットのマスクを指定するため
のビットである。 0:デバッグ例外中、ユーザーリセットをマスクする。 1:デバッグ例外中、ユーザーリセットは許可される。
【0081】MRstビットは、外部インターフェース
回路36へ出力される。 MP:(Memory Protection)(リセ
ット時:1) 0:デバッグモードで、モニタ領域へのライトが可能で
ある。 1:デバッグモードで、DCRレジスタを除くモニタ領
域(FF20_0000〜FF3F_FFFF)へのラ
イトをプロテクトする。
【0082】MPビットは、アドレスデコーダ351と
シリアルモニタバス回路34へ出力される。
【0083】MNmI:(Mask Non−mask
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信号の値を示
す。このビットは、リードのみ可能で、ライトは無視さ
れる。
【0084】0:リトルエンディアン 1:ビッグエンディアン ユーザーリセットがLowのときのコアクロックの立ち
上がりでENDIAN信号をラッチしたものをENMビ
ットとする。 HIS:(Halt Status) プロセッサコア20のDINT*がアクティブになった
ときの、Halt信号の値を示す。このビットは、リー
ドのみ可能で、ライトは無視される。
【0085】0:Halt状態ではない。 1:Halt状態。
【0086】デバッグ割り込み信号DINT*の立ち下
がりエッジで、HALT信号をラッチしたものをHIS
ビットとする。 DzS:(Doze Status) プロセッサコア20のDInt*がアクティブになった
ときの、Doze信号の値を示す。このビットは、リー
ドのみ可能で、ライトは無視される。 0:Doze状態ではない。 1:Doze状態。 デバッグ割り込み信号DINT*の立ち下がりエッジ
で、DOZE信号をラッチしたものをDzSビットとす
る。
【0087】図5にIBA0(Instruction
Break Address 0)レジスタを示す。
【0088】IBA:(Instruction Br
eak Address) 命令ブレークアドレスを格納する。このアドレスは仮想
アドレスである。IBAフィールドは、命令/データア
ドレスブレーク回路31へ出力される。
【0089】図6にIBC0(Instruction
Break Control 0)レジスタを示す。
【0090】BE:(Break Enable)(リ
セット時:0) 命令アドレスブレーク機能の有効・無効を指定するビッ
トである。 0:命令アドレスブレーク機能は無効となる。 1:命令アドレスブレーク機能が有効となる。BE=1
のときに、実行直前の命令の仮想アドレスとIBA0レ
ジスタに設定したアドレスが一致すると、プロセッサコ
ア20へ命令ブレーク要求を出し、IBSレジスタのB
S0ビットをセットする。(プロセッサコア20は、ア
ドレスが一致した命令の実行直前で命令アドレスブレー
ク例外を発生する。) BEビットは、命令/データアドレスブレーク回路31
へ出力される。
【0091】TE:(Trace Trigger E
nable)(リセット時:0) 命令アドレストレーストリガ機能の有効・無効を指定す
るビットである。 0:命令アドレストレーストリガ機能は無効となる。 1:命令アドレストレーストリガ機能が有効となる。T
E=1で、トレーストリガが有効なとき、実行された命
令の仮想アドレスと、IBA0レジスタに設定したアド
レスが一致するとPCST[2:0]にトレーストリガ
情報(TST(010)あるいはTSQ(001))を
出力し、IBSレジスタのBS0ビットをセットする。 TEビットは、命令/データアドレスブレーク回路31
へ出力される。
【0092】図7にIBS(Instruction
Break Status)レジスタを示す。
【0093】BCN:(Break Channel
Number) 命令ブレークのチャネル数を示す。このフィールドはリ
ードのみ可能である。ライトは無視される。 0000:なし(予約) 0001:1チャネル … 1111:15チャネル(予約) BS0:(Break Status 0)
【0094】命令アドレスブレークあるいは、命令アド
レストレーストリガが発生したことを示すステータスビ
ットである。 0:チャネル0の命令アドレスブレークあるいは命令ア
ドレストレーストリガが発生していないことを示す。 1:IBC0レジスタがBE=1あるいはTE=1のと
きに、命令の仮想アドレスと、設定したアドレスが一致
して、命令アドレスブレーク例外あるいは命令アドレス
トレーストリガが発生したことを示す。このビットは、
0を書き込むことによってクリアされる。BS0ビット
は、命令/データアドレスブレーク回路からのIBSレ
ジスタのBS0セット信号がアサートされるとセットさ
れる。
【0095】図8にDBA0(Data Break
Address 0)レジスタを示す。
【0096】 DBA:(Data break address) データブレークアドレスを格納する。このアドレスは仮
想アドレスである。DBAフィールドは、命令/データ
アドレスブレーク回路31へ出力される。
【0097】図9にDBC0(Data Break
Control 0)レジスタを示す。 BE:(Break Enable)(リセット時:
0) データアドレスブレーク機能の有効・無効を指定するビ
ットである。 0:データアドレスブレーク機能は無効となる。 1:データアドレスブレーク機能が有効となる。BE=
1のときに、実行直前のデータの仮想アドレスと、DB
A0レジスタに設定したアドレスが一致すると、プロセ
ッサコア20へデータブレーク要求を出し、DBSレジ
スタのBS0ビットをセットする。
【0098】BEビットは、命令/データアドレスブレ
ーク回路31へ出力される。 TE:(Trace Trigger Enable)
(リセット時:0) データアドレストレーストリガ機能の有効・無効を指定
するビットである。 0:データアドレストレーストリガ機能は無効となる。 1:データアドレストレーストリガ機能が有効となる。
TE=1でトレーストリガが有効なとき、実行されたデ
ータの仮想アドレスと、DBA0レジスタに設定したア
ドレスが一致するとPCST[2:0]にトレーストリ
ガ情報(TST(010)あるいはTSQ(001))を
出力し、DBSレジスタのBS0ビットをセットする。 TEビットは、命令/データアドレスブレーク回路31
へ出力される。
【0099】図10にDBS(Data Break
Status)レジスタを示す。
【0100】 BCN:Break Channel Number) データブレークのチャネル数を示す。このフィールドは
リードのみ可能である。ライトは無視される。 0000:なし(予約) 0001:1チャネル … 1111:15チャネル(予約) BS0:(Break Status 0)
【0101】データアドレスブレークあるいは、データ
アドレストレーストリガが発生したことを示すステータ
スビットである。 0:チャネル0のデータアドレスブレークあるいはデー
タアドレストレーストリガが発生していないことを示す
◎。
【0102】1:DBC0レジスタのBE=1あるいは
TE=1のときに、データの仮想アドレスと、設定した
アドレスが一致して、データアドレスブレーク例外ある
いはデータアドレストレーストリガが発生したことを示
す。
【0103】このビットは、0を書き込むことによって
クリアされる。BS0ビットは、命令/データアドレス
ブレーク回路31からのDBSレジスタのBS0セット
信号がアサートされるとセットされる。
【0104】図11にPBA0(Processor
Bus Break Address)レジスタを示
す。
【0105】PBA:(Processor Bus
Break Address) プロセッサバスブレーク/トレーストリガ機能のブレー
クアドレスを格納する。このアドレスは物理アドレスで
ある。PBAフィールドはプロセッサバスブレーク回路
33へ出力される。
【0106】図12にPBD0(Processor
Bus Break Data 0)レジスタを示す。
【0107】PBD:(Processor Bus
Break Data) プロセッサバスブレーク/トレーストリガ機能のブレー
クデータを格納する。PBDフィールドはプロセッサバ
スブレーク回路33へ出力される。
【0108】図13にPBM0(Processor
Bus Mask 0)レジスタを示す。
【0109】PBM:(Processor Bus
Break Data Mask) プロセッサバスブレーク/トレーストリガ機能のPBD
レジスタに格納したデータとの比較を行なうとき、比較
を無効にする(マスクする)ビットを指定する。 0:PBDレジスタの対応するビットを比較する。 1:PBDレジスタの対応するビットを比較しない。 PBMフィールドはプロセッサバスブレーク回路33へ
出力される。
【0110】図14にPBC0(Processor
Bus Control 0)レジスタを示す。 BE:(Break Enable)(リセット時:
0) プロセッサバスブレークの有効・無効を指定する。 0:プロセッサバスブレークは無効となる。 1:プロセッサバスブレークが有効となる。アドレスと
データの比較結果が設定値と一致するとプロセッサコア
20にデバッグ割り込みを要求する。
【0111】BEビットは、プロセッサバスブレーク回
路33へ出力される。 TE:(Trace Trigger Enable)
(リセット時:0) プロセッサバストレーストリガの有効・無効を指定す
る。 0:プロセッサバストレーストリガは無効となる。 1:プロセッサバストレーストリガは有効となる。アド
レスとデータの比較結果が設定値と一致するとPCST
[2:0]にトレーストリガ情報(TST(010)あ
るいはTSQ(001))を出力する。TEビットは、プ
ロセッサバスブレーク回路33へ出力される。
【0112】IFUC:(Instruction F
etch from Uncache Area) 非キャッシュ領域からの命令フェッチでアドレスとデー
タの比較を行うかを指定する。
【0113】0:非キャッシュ領域からの命令フェッチ
でアドレスとデータの比較をしない。
【0114】1:非キャッシュ領域からの命令フェッチ
でアドレスとデータの比較をする。
【0115】IFUCビットは、プロセッサバスブレー
ク回路33へ出力される。
【0116】DLUC:(Data Load fro
m Uncache Area) 非キャッシュ領域からのデータロードでアドレスとデー
タの比較を行うかを指定する。
【0117】0:非キャッシュ領域からのデータロード
でアドレスとデータの比較をしない。
【0118】1:非キャッシュ領域からのデータロード
でアドレスとデータの比較をする。
【0119】DLUCビットは、プロセッサバスブレー
ク回路33へ出力される。
【0120】DSUC:(Data Store to
Uncache Area) 非キャッシュ領域へのデータストアでアドレスとデータ
の比較を行うかを指定する。
【0121】0:非キャッシュ領域へのデータストアで
アドレスとデータの比較をしない。
【0122】1:非キャッシュ領域へのデータストアで
アドレスとデータの比較をする。DSUCビットは、プ
ロセッサバスブレーク回路33へ出力される。
【0123】DSCA:(Data Store to
Cache Area) キャッシュ領域へのデータストアでアドレスとデータの
比較を行うかを指定する。
【0124】0:キャッシュ領域へのデータストアでア
ドレスとデータの比較をしない。
【0125】1:キャッシュ領域へのデータストアでア
ドレスとデータの比較をする。DSCAビットは、プロ
セッサバスブレーク回路33へ出力される。
【0126】図15にPBS(Processor B
us Break Status)レジスタを示す。 BCN:(Break Channel Numbe
r) プロセッサバスブレークのチャネル数を示す。
【0127】 0000:0チャネル(予約) 0001:1チャネル … 1111:15チャネル(予約) BS0:(Break status 0.)(リセッ
ト時:0) プロセッサバスブレークあるいは、プロセッサバストレ
ーストリガが発生したことを示すステータスビットであ
る。
【0128】0:チャネル0のプロセッサバスブレーク
あるいはプロセッサバストレーストリガが発生していな
いことを示す。 1:PBE0レジスタのBE=1あるいはTE=1のと
きに、チャネル0のプロセッサバスブレークあるいは、
プロセッサバストレーストリガが発生したことを示す。
【0129】このビットは、0を書き込むことによって
クリアされ、BE=1のときはプロセッサコア20へ要
求していたデバッグ割り込みもクリアされる。BS0ビ
ットは、プロセッサバスブレーク回路からのPBSレジ
スタのBS0セット信号がアサートされるとセットされ
る。
【0130】図16に命令/データアドレスブレーク回
路31を示す。命令/データアドレスブレーク回路31
は命令アドレス比較器311、データアドレス比較器3
12、AND回路313、314、315、316から
なる。
【0131】命令アドレス比較器311は、IBC0レ
ジスタのブレークイネーブルBEビットあるいはトリガ
イネーブルTEビットがセットされているならば、プロ
セッサコア20からの命令アドレス有効信号がアサート
されているときに、プロセッサコア20からの命令アド
レス入力とIBA0レジスタに格納したアドレスを比較
する。これらのアドレスが一致したときに、IBSレジ
スタのBS0ビットをセットする信号を出力する。同時
にBEがセットされているときは、AND回路313の
出力がアサートされ、プロセッサコア20へ命令アドレ
スブレークを要求し、TEがセットされているときは、
AND回路314の出力がアサートされ、PCトレース
回路32へ、トレーストリガ出力を要求する。
【0132】データアドレス比較器312は、DBC0
レジスタのブレークイネーブルBEビットあるいはトリ
ガイネーブルTEビットがセットされているならば、プ
ロセッサコア20からのデータアドレス有効信号がアサ
ートされているときに、プロセッサコア20からのデー
タアドレス入力とDBA0レジスタに格納したアドレス
を比較する。これらのアドレスが一致したときに、DB
SレジスタのBS0ビットをセットする信号を出力す
る。同時にBEがセットされているときは、AND回路
315の出力がアサートされ、プロセッサコア20へデ
ータアドレスブレークを要求し、TEがセットされてい
るときは、AND回路316の出力がアサートされ、P
Cトレース回路32へトレーストリガ出力を要求する。
【0133】図17にプロセッサバスブレーク回路33
の構成を示す。
【0134】プロセッサバスブレーク33は、プロセッ
サバスのバスオペレーションを監視して、レジスタに設
定したアドレスとデータのバスオペレーションが発生す
るとプロセッサコア20へデバッグ割り込みを要求す
る。
【0135】プロセッサバスブレーク回路33は、プロ
セッサバスアドレス比較器331、マスク付きデータ比
較器332、AND回路333、334、335からな
る。
【0136】プロセッサバスアドレス比較器331は、
PBC0レジスタのブレークイネーブルBEあるいはト
リガイネーブルTEがセットされているときに、プロセ
ッサバスのアドレスとPBA0レジスタに設定されてい
るアドレスを比較する。また、PBC0レジスタの、D
SCA、DSUC、DLUC、IFUCビットによっ
て、非キャッシュ領域/キャッシュ領域、データのスト
ア/データのロード/命令のフェッチに対する比較の有
効/無効が指定される。プロセッサバスアドレス比較器
331は、プロセッサバスサイクルにプロセッサコア2
0から出力されるID信号(命令フェッチかデータアク
セスかを示す)、リードRD*信号、ライト信号WR
*、CACHE*により、次の表2に示す動作を行う。
【0137】
【表2】 マスク付きデータ比較器332は、リードバスサイクル
のとき(リード信号RD*=Low)、PBM0レジス
タの0ビットについてのみ、プロセッサバス80のデー
タ入力DIN[31:0]とPBD0レジスタの値を比
較する。また、マスク付きデータ比較器332は、ライ
トバスサイクルのとき(ライト信号WR*=Low)、
PBM0レジスタの0のビットについてのみ、プロセッ
サバス80のデータ出力DOUT[31:0]とPBD
0レジスタの値を比較する。
【0138】プロセッサバスアドレス比較器331とマ
スク付きデータ比較器332の出力がともにHで、つま
りアドレスとデータの比較がともに一致したとき、AN
D回路333の出力がアサートされ、PBSレジスタの
BS0ビットのセットをレジスタ回路35へ要求する。
このときPBC0のBEがセットされているならば、A
ND回路334の出力がアサートされ、プロセッサコア
20へデバッグ割り込みを要求し、PBC0のTEビッ
トがセットされているならば、AND回路335の出力
がアサートされ、PCトレース回路32へトリガ出力を
要求する。
【0139】図18にシリアルモニタバス回路34を示
す。シリアルモニタバス回路34は、シリアルモニタバ
スコントロール回路341、シリアル出力回路342、
シリアル入力回路343からなる。
【0140】シリアルモニタバスコントロール回路34
1は、プロセッサバスからデータ出力DOUT[31:
0]、アドレスA[31:20]、リード信号RD*、
ライト信号WR*、コプロセッサリード信号CPRD
*、コプロセッサライト信号CPWR*、デバッグモー
ド信号DM、クロック供給回路37から分周クロックC
LK2、レジスタ回路35からDCRレジスタのMPビ
ット、外部インターフェース回路36からSDIを入力
する。
【0141】また、シリアルモニタバスコントロール回
路341は、プロセッサバスへリード応答信号RDAC
K*、ライト応答信号WRACK*、コプロセッサリー
ド応答信号CPRDACK*、コプロセッサライト応答
信号CPWRACK*を、シリアル出力回路342へシ
リアルモニタバスリード/ライト信号、シリアルモニタ
バスバイトイネーブル信号、シリアルモニタバスデータ
信号、シリアル出力回路342内の出力シフトレジスタ
344のデータロード信号と出力シフト信号を、シリア
ル入力回路343へ入力シフトレジスタ345の入力シ
フト信号、出力バッファ346の出力イネーブル信号を
出力する。シリアルモニタバスリード/ライト信号は、
リードバスオペレーションのときHighレベル、ライ
トバスオペレーションのときにLowレベルになる。
【0142】シリアル出力回路342は、出力シフトレ
ジスタ344からなる。シリアルモニタバスコントロー
ル回路341のデータロード信号がアサートされると、
LSBからスタートビット(Low固定)と、アドレス
信号A[2]〜A[19]、シリアルモニタバスリード
/ライト信号、シリアルモニタバスバイトイネーブル信
号、シリアルモニタバスデータ信号が出力シフトレジス
タ344へロードされる。出力シフト信号がアサートさ
れると、出力シフトレジスタ344内の値をMSBから
LSBへ1ビットシフトし、MSBにHighを入力す
る。出力シフトレジスタ344のLSBの値がSDAO
に出力される。
【0143】シリアル入力回路343は、入力シフトレ
ジスタ345と出力バッファ346からなる。シリアル
モニタバスコントロール回路341の入力シフト信号が
アサートされると、入力シフトレジスタ345の値をL
SBからMSBへ1ビットシフトし、SDIの値をLS
Bへ入力する。
【0144】次に、図18に示すシリアルモニタバス回
路34の動作について説明する。
【0145】デバッグモード中に、プロセッサコア20
がアドレス0xFF20_0000〜0xFF2F_F
FFFまでの領域をアクセスする場合と、コプロセッサ
のリード/ライト(CTC0,CFC0)の実行によっ
てコプロセッサバスオペレーションを行う場合、シリア
ルモニタバス回路34を介して、デバッガ60上のメモ
リがアクセスされる。シリアルモニタバスを用いたライ
トオペレーションでは、シリアルモニタバス回路34
は、アドレス、バス制御信号、データをSDAO信号に
1ビットづつシリアルに出力する。リードオペレーショ
ンでは、アドレス、バス制御信号をSDAO信号に出力
し、SDI信号からデータを1ビットづつシリアルに入
力する。
【0146】シリアルモニタバスは、プロセッサコア2
0の動作クロックCLKを2分周したクロックCLK2
で動作する。
【0147】a)リード/ライトバスオペレーションに
よるアクセス プロセッサコア20は、リードバスオペレーションでは
アクセスするアドレスをA[31:0]へ出力し、RD
*信号をアサートする。リード応答信号RDACK*が
アサートされると、データバス入力DIN[31:0]
からデータをリードしてバスオペレーションを終了す
る。
【0148】プロセッサコア20は、ライトバスオペレ
ーションでは、アクセスするアドレスをA[31:0]
へ、データをデータバス出力DOUT[31:0]へ出
力し、WR*信号をアサートする。ライト応答信号WR
ACK*がアサートされるとバスオペレーションを終了
する。
【0149】デバッグモード中にプロセッサコア20が
下記モニタ領域に対してバスオペレーションを実行する
と、シリアルモニタバス回路34を介してデバッガ60
がアクセスされる。
【0150】 アドレス 0xFF20_0000〜0xFF2F_FFFFまでの 1M bytes (A[31:20])=1111_1111_0010 (0:Low、1:Highレベル) ライトバスオペレーションは、例えばメモリへデータを
ライトするストア命令(SW命令)を用いる。以下に、
ストア命令の例を示す。
【0151】 sw r8 0x0004(r9) この例では、16ビットのオフセト値0x0004と汎
用レジスタr9を加えた値がメモリアドレスとなる。シ
ルアルモニタバスのモニタ領域へアクセスするためには
汎用レジスタの値を、予め0xFF20 0000〜0
xFF2F 0000に設定しなければならない。
【0152】シリアルモニタバス回路34は、シリアル
モニタバスのSDAO信号にバスサイクルの信号を1ク
ロックづつ出力する。プロセッサバスのアドレスA[1
9:2]を下位から出力し、次に、リードのときはHi
ghレベル、ライトのときはLowレベルを出力する。
次に、バイトイネーブルBE[3:0]*を下位から出
力する。リードの場合はSDI信号から32ビットのデ
ータを入力し、プロセッサバスのデータ入力信号DIN
[31:0]にその値を出力する。また、ライトのとき
は、プロセッサバスのデータ出力DOUT[31:0]
の値をSDAO信号に出力する。
【0153】シリアルモニタバスに出力するアドレスは
プロセッサコア20のアドレス信号A[19:2]の1
8ビットであり、1Mバイトのメモリ空間をアクセスで
きる。
【0154】プロセッサコア20のバイトイネーブル信
号BE[3:0]をシリアルモニタバスへ出力するの
で、バイト、ハーフワード、3バイトのアクセスも可能
である。ただし、シリアルバスでは、バイト、ハーフワ
ード、3バイトアクセスの場合も、32ビット分のデー
タ(D[31:0])を転送する。1バイト、ハーフワ
ード、3バイトのライトのとき、BE[3:0]*がイ
ンアクティブなバイト位置のデータ出力は不定であり、
リードのときはインアクティブなバイト位置のデータ
は、プロセッサコア20で無視され、リードされない。
【0155】デバッグモード中であっても、モニタ領域
のプロテクトが設定されている(DCRレジスタのMP
=1)と、FF20_0000〜FF2F_FFFFへ
のライトは無視される。このときは、シリアルモニタバ
ス回路34はプロセッサコア20へWRACK*のみを
返し、バスオペレーションを終了させる。
【0156】デバッグモード中のFF20_0000〜
FF2F_FFFFからのリードでは、MPビットの値
に関係なく、シリアルモニタバスから正しいデータがリ
ードされる。
【0157】ノーマルモード中は、モニタ領域FF20
_0000〜FF2F_FFFFへのライトも無視さ
れ、リードは結果が不定となる。このときは、シリアル
モニタバス回路34は、プロセッサコア20へWRAC
K*あるいはRDACK*を返し、バスオペレーション
のみを終了する。
【0158】b)コプロセッサバスオペレーションによ
るアクセス(CTC0/CFC0)プロセッサコア20
は、CFC0が実行されると、コプロセッサのリードバ
スオペレーションを、CTC0命令が実行されるとコプ
ロセッサのライトバスオペレーションを実行する。コプ
ロセッサバスオペレーションでは、プロセッサバスのア
ドレスA[31:0]に下記のCFC0、CTC0命令
がそのまま、出力される。
【0159】 A[31:0] COP0 CT rt rd 0 A[31:0] COP0 CF rt rd 0 CFC0(0:Low、1:Highレベル) rt:汎用レジスタ rd:コプロセッサの制御レジスタ(シリアルモニタバスのときは意味は ない。)
【0160】また、プロセッサコア20は、コプロセッ
サリードオペレーションでは、CPRD*信号をアサー
トし、コプロセッサリード応答信号CPRDACK*が
アサートされると、データバス入力DIN[31:0]
からデータをリードしてバスオペレーションを終了す
る。
【0161】プロセッサコア20は、コプロセッサライ
トオペレーションではCPWR*信号をアサートし、デ
ータバス出力DOUT[31:0]にプロセッサコアの
汎用レジスタの値を出力する。コプロセッサライト応答
信号CPWRACK*がアサートされるとバスオペレー
ションを終了する。
【0162】プロセッサコア20がCTC0、CFC0
命令のコプロセッサバスオペレーションを実行すると、
シリアルモニタバスを介してデバッガ60がアクセスさ
れる。
【0163】シリアルモニタバス回路34は、シリアル
モニタバスのSDAO信号にバスサイクルの信号を1ク
ロックづつ出力する。プロセッサコア20のアドレス信
号A[19:2]を下位から出力し、次にコプロセッサ
リードのときはHigh、コプロセッサライトのときは
Lowを出力する。シリアルモニタバスのバイトイネー
ブル信号としては、プロセッサバスのBE[3:0]*
とは無関係に4クロック間Lowを出力する。従って、
CTC0、CFC0命令のコプロセッサバスオペレーシ
ョンは必ず4バイト単位での転送になる。
【0164】CFC0命令の場合はSDI信号から32
ビットのデータを入力し、プロセッサバスのデータ入力
信号DIN[31:0]にその値を出力する。また、C
TC0命令のときは、プロセッサバスのデータ出力DO
UT[31:0]の値をSDAO信号に出力する。
【0165】デバッグモード中であれば、モニタ領域の
プロテクト(DCRレジスタのMPビットの値)とは無
関係に、CTC0によるシリアルモニタバスのライトバ
スオペレーションは実行される。また、CFC0による
シリアルモニタバスのリードオペレーションも実行され
る。
【0166】ノーマルモード中のCTC0によるライト
は無視され、CFC0によるリードの結果は不定とな
る。デバッグモジュールは、プロセッサコア20へCP
RDACK*,CPWRACK*のみをプロセッサコア
20に返し、バスオペレーションを終了させる。
【0167】以下に、シリアルモニタバスオペレーショ
ンのタイミング図を示す。 a)シリアルモニタバスのリードバスオペレーション 図19にシリアルモニタバスのリードバスオペレーショ
ンのタイミング図を示す。
【0168】(1)プロセッサコア20がアドレス0x
FF20_0000〜0xFF2F_FFFF(A[3
1:20]=1111_1111_0010)の領域に
対するリードバスオペレーションを開始する(サイクル
1)。プロセッサコア20は、A[31:0]にアクセ
スするアドレスを出力し、RD*をアサートする。リー
ドするバイト位置のバイトイネーブル信号BE[3:
0]をアサートする。
【0169】(2)シリアルモニタバス回路34は、モ
ニタ領域へのリードバスオペレーションの開始を認識す
ると、SDAO信号にコアクロックCLKを分周したC
LK2信号の1クロック間Lowレベルを出力する(サ
イクル2)。
【0170】(3)シリアルモニタバス回路34は、プ
ロセッサコア20のリードバスオペレーションで出力さ
れた、アドレスA[2]〜A[19],High(リー
ドを示す),BE[0]*〜BE[3]*を、SDAO
信号にCLK2の1クロック間づつ出力する(サイクル
3〜25)。
【0171】(4)デバッガ60は、データを出力する
前に1クロック間SDI信号にLowを出力する(サイ
クルn)。シリアルモニタバス回路34は、SDIにL
owを検出すると、次のサイクルよりデータD[0]〜
D[31]を1クロックごとに読み込む(サイクルn+
1〜n+32)。
【0172】(5)シリアルモニタバス回路34は、プ
ロセッサコア20のリードバスの応答信号RDACK*
をアサートし、データバスDIN[31:0]へ読み込
んだ32ビットのデータD[31:0]を出力する(サ
イクルn+33)。
【0173】(6)プロセッサコア20は、データバス
DIN[31:0]上のデータを読み込み、リードバス
オペレーションを終了する(サイクルn+33)。
【0174】b)シリアルモニタバスのライトバスオペ
レーション図20にシリアルモニタバスのライトバスオ
ペレーションのタイミング図を示す。
【0175】(1)プロセッサコア20がアドレス0x
FF20_0000〜0xFF2F_FFFF(A[3
1:20]=1111_1111_0010)の領域に
対するライトバスオペレーションを開始する(サイクル
1)。プロセッサコア20は、A[31:0]にアクセ
スするアドレスを出力し、WR*をアサートする。ライ
トするバイト位置のバイトイネーブル信号BE[3:
0]をアサートする。
【0176】(2)シリアルモニタバス回路34は、モ
ニタ領域へのライトバスオペレーションの開始を認識す
ると、SDAO信号にコアクロックCLKを分周したC
LK2信号の1クロック間Lowレベルを出力する(サ
イクル2)。
【0177】(3)シリアルモニタバス回路34は、プ
ロセッサコア20のライトバスオペレーションで出力さ
れた、アドレスA[2]〜A[19],Low(ライト
を示す),BE[0]*〜BE[3]*ライトデータ出
力DOUT[0]〜DOUT[31]を、SDAO信号
にCLK2の1クロック間づつ出力する(サイクル3〜
57)。
【0178】(4)デバッガ60は、データのライトを
終了すると、1クロック間SDI信号にLowを出力す
る(サイクルn)。
【0179】(5)シリアルモニタバス回路34は、S
DIにLowを検出すると、プロセッサコア20のライ
トバスの応答信号WRACK*をアサートする(サイク
ルn+1)。
【0180】(6)プロセッサコア20は、ライトバス
オペレーションを終了する(サイクルn+1)。
【0181】c)CFC0命令によるリードバスオペレ
ーション 図21にCFC0命令によるリードバスオペレーション
のタイミングを示す。
【0182】(1)プロセッサコア20がCFC0命令
によってコプロセッサリードバスオペレーションを開始
すると、プロセッサバスのアドレスにA[31:21]
=0100_0000_010を出力し、CPRD*を
アサートする(サイクル1)。
【0183】(2)シリアルモニタバス回路34は、モ
ニタ領域へのリードバスオペレーションの開始を認識す
ると、SDAO信号にコアクロックCLKを分周したC
LK2信号の1クロック間Lowレベルを出力する(サ
イクル2)。
【0184】(3)シリアルモニタバス回路34は、プ
ロセッサコア20のコプロセッサリードバスオペレーシ
ョンで出力された、アドレスA[2]〜A[19]をS
DAO信号にCLK2の1クロック間づつ出力する(サ
イクル3〜20)。次に、リードオペレーションを示す
ため1クロック間Highを出力する(サイクル2
1)。次に、プロセッサバスのバイトイネーブル信号と
は関係なく、4クロック間だけLowを出力する(サイ
クル22〜25)。
【0185】(4)デバッガ60は、データを出力する
前に1クロック間SDI信号にLowを出力する(サイ
クルn)。シリアルモニタバス回路34は、SDIにL
owを検出すると、次のサイクルよりデータD[0]〜
D[31]を1クロックごとに読み込む(サイクルn+
1〜n+32)。
【0186】(5)シリアルモニタバス回路34は、プ
ロセッサコア20のコプロセッサリードの応答信号CP
RDACK*をアサートし、データバスDIN[31:
0]へ読み込んだ32ビットのデータD[31:0]を
出力する(サイクルn+33)。
【0187】(6)プロセッサコア20は、データバス
DIN[31:0]上のデータを読み込み、コプロセッ
サリードバスオペレーションを終了する(サイクルn+
33)。
【0188】d)CTC0命令によるライトバスオペレ
ーション 図22にCTC0命令によるライトバスオペレーション
のタイミングを示す。
【0189】(1)プロセッサコア20がCTC0命令
によってコプロセッサライトバスオペレーションを開始
すると、プロセッサバスのアドレスA[31:21]=
0100_0000_110を出力し、CPWR*をア
サートする(サイクル1)。
【0190】(2)シリアルモニタバス回路34は、モ
ニタ領域へのライトバスオペレーションの開始を認識す
ると、SDAO信号にコアクロックCLKを分周したC
LK2信号の1クロック間Lowレベルを出力する(サ
イクル2)。
【0191】(3)シリアルモニタバス回路34は、プ
ロセッサコア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)。
【0192】(4)デバッガ60は、データのライトを
終了すると、1クロック間SDI信号にLowを出力す
る(サイクルn)。
【0193】(5)シリアルモニタバス回路34は、S
DIにLowを検出すると、プロセッサコア20のコプ
ロセッサライトバスの応答信号CPWRACK*をアサ
ートする(サイクルn+1)。
【0194】(6)プロセッサコア20は、コプロセッ
サライトバスオペレーションを終了する(サイクルn+
1)。
【0195】図23にシリアルモニタバスコントロール
回路341の動作のフローチャートを示す。
【0196】シリアルモニタバスコントロール回路34
1は、プロセッサバスのバスオペレーションを監視して
いる。
【0197】(1)モニタ領域(アドレスA[31:2
0]=0xFF2)のリードバスオペレーション(RD
*=アサート(Low))でデバッグモードのとき(D
M信号=High)、シリアルモニタバスのリードバス
オペレーションを開始する(ステップS120,S12
4,S125)。
【0198】(2)モニタ領域(アドレスA[31:2
0]=0xFF2)のリードバスオペレーション(RD
*=アサート(Low))で、デバッグモードでないと
き(DM信号=Low)のときは、プロセッサコア20
のRDACK*をアサートしてバスオペレーションを終
了させる(ステップS120,S124,S132,S
133)。
【0199】(3)モニタ領域(アドレスA[31:2
0]=0xFF2)のライトバスオペレーション(WR
*=アサート(Low))で、デバッグモード(DM信
号=High)かつライトが可能(DCRレジスタのM
Pビット=0)のとき、シリアルモニタバスのライトバ
スオペレーションを開始する(ステップS120,S1
21,S126,S127)。
【0200】(4)モニタ領域(アドレスA[31:2
0]=0xFF2)のライトバスオペレーション(WR
*=アサート(Low))で、デバッグモードでないと
き(DM信号=Low)のとき、あるいはライトがプロ
テクトされている(DCRレジスタのMPビット=1)
のときは、プロセッサコア20のWRACK*をアサー
トしてバスオペレーションを終了される(ステップS1
20,S121,S126,S134,S135)。
【0201】(5)CFC0命令(アドレスA[31:
21]=0100_0000_010)のコプロセッサ
リードバスオペレーション(CPRD*=アサート(L
ow))でデバッグモードのとき(DM信号=Hig
h)、シリアルモニタバスのコプロセッサリードバスオ
ペレーションを開始する(ステップS120,S12
1,S122,S128,S129)。
【0202】(6)CFC0命令(アドレスA[31:
21]=0100_0000_010)のコプロセッサ
リードバスオペレーション(CPRD*=アサート(L
ow))で、デバッグモードでないとき(DM信号=L
ow)のときは、プロセッサコア20のCPRDACK
*をアサートし、バスオペレーションを終了させる(ス
テップS120,S121,S122,S128,S1
36,S137)。
【0203】(7)CTC0命令(アドレスA[31:
21]=0100_0000_110)のコプロセッサ
ライトバスオペレーション(CPWR*=アサート(L
ow))でデバッグモードのとき(DM信号=Hig
h)、シリアルモニタバスのコプロセッサリードバスオ
ペレーションを開始する(ステップS120,S12
1,S122,S123,S130,S131)。
【0204】(8)CTC0命令(アドレスA[31:
21]=0100_0000_110)のコプロセッサ
ライトバスオペレーション(CPWR*=アサート(L
ow))で、デバッグモードでないとき(DM信号=L
ow)のときは、プロセッサコア20のCPWRACK
*をアサートし、バスオペレーションを終了する(ステ
ップS120,S121,S122,S123,S13
8,S139)。
【0205】図24にシリアルモニタバスのリードバス
オペレーションでのシリアルモニタバス回路34の動作
のフローチャートを示す。
【0206】シリアルモニタバスコントロール回路34
1は、リードバスオペレーションのときは、シリアルモ
ニタバスリード/ライト信号にHighレベル、シリア
ルモニタバスバイトイネーブル信号にプロセッサバスの
BE[3:0]を、シリアルモニタバスデータ信号にす
べてHighを出力し、データロード信号をアサートす
る(サイクル1)。
【0207】CFC0命令によるコプロセッサリードバ
スオペレーションのときは、シリアルモニタバスコント
ロール回路341は、シリアルモニタバスリード/ライ
ト信号にHighレベル、シリアルモニタバスのバイト
イネーブル信号にすべてLowを、シリアルモニタバス
データ信号にすべてHighを出力し、データロード信
号をアサートする。これらの値とLSBにLowレベル
が、シフトレジスタ344にラッチされる。
【0208】次に、SBAO信号にLowレベルが出力
される。シリアルモニタバスコントロール回路341
は、出力シフト信号をアサートする(サイクル2)。
【0209】次に、シリアルモニタバスコントロール回
路341は、出力シフト信号をアサートする。SDAO
信号にサイクル1で出力シフトレジスタ344にラッチ
した値が毎クロックごと出力される(サイクル3〜2
5)。
【0210】次に、シリアルモニタバスコントロール回
路341は、SDI入力信号がLowにアサートされる
のを待つ(サイクル26〜n)。
【0211】次に、シリアルモニタバスコントロール回
路341は、シリアル入力回路343の入力シフト信号
をアサートし、SDI入力信号の値をデータ入力D
[0]−D[31]として、入力シフトレジスタ345
に入力する(サイクルn+1〜n+32)。
【0212】次に、シリアルモニタバスコントロール回
路341は、リードバスオペレーションのときは、プロ
セッサバスのリード応答信号RDACK*をアサートす
る。コプロセッサリードバスオペレーションのときは、
コプロセッサリード応答信号CPRDACK*をアサー
トする。シリアル入力回路343の出力イネーブル信号
をアサートする。データバス入力信号DIN[31:
0]に、入力シフトレジスタ345のデータD[31:
0]が出力される(サイクルn+33)。
【0213】図25にシリアルモニタバスのライトバス
オペレーションでのシリアルモニタバス回路の動作のフ
ローチャートを示す。
【0214】まず、シリアルモニタバスコントロール回
路341は、ライトバスオペレーションのときは、シリ
アルモニタバスリード/ライト信号にLowレベル、シ
リアルモニタバスバイトイネーブル信号にプロセッサバ
スのBE[3:0]を、シリアルモニタバスデータ信号
にデータ出力DOUT[31:0]を出力し、データロ
ード信号をアサートする。
【0215】CTC0命令によるコプロセッサライトバ
スオペレーションのときは、シリアルモニタバスコント
ロール回路341は、シリアルモニタバスリード/ライ
ト信号にLowレベル、シリアルモニタバスバイトイネ
ーブル信号に4ビットのLowレベルを、シリアルモニ
タバスデータ信号にデータ出力DOUT[31:0]を
出力し、データロード信号をアサートする。これらの値
とLSBにLowレベルが出力シフトレジスタ344に
ラッチされる(サイクル1)。
【0216】次に、SDAO信号にLowレベルが出力
される。シリアルモニタバスコントロール回路341
は、出力シフト信号をアサートする(サイクル2)。
【0217】次に、シリアルモニタバスコントロール回
路341は、出力シフト信号をアサートする。SDAO
信号に出力シフトレジスタ344にサイクル1でラッチ
した値が毎クロックごと出力される(サイクル3〜5
7)。
【0218】次に、シリアルモニタバスコントロール回
路341は、SDI入力信号がLowにアサートされる
のを待つ(サイクル58〜n)。
【0219】次に、シリアルモニタバスコントロール回
路341は、ライトバスオペレーションのときはプロセ
ッサバスのライト応答信号WRACK*をアサートす
る。コプロセッサバスオペレーションのときは、コプロ
セッサライト応答信号CPWRACK*をアサートする
(サイクルn+1)。
【0220】次に、PCトレース回路32について説明
する。
【0221】ここで、インダイレクトジャンプ、ダイレ
クトジャンプ、分岐を以下のように定義します。
【0222】・インダイレクトジャンプ:レジスタやメ
モリに格納されている値をジャンプ先アドレスとするな
ど、ジャンプ先がその命令自体では特定できないジャン
プをする。
【0223】・ダイレクトジャンプ:命令自身のPC
(プログラム カウンタ)と命令中のコードによってジ
ャンプ先が特定できるジャンプをする。
【0224】・分岐(又は条件分岐):命令自身のPC
および命令中のコードの一部の和で分岐先が特定できる
ジャンプのことである。分岐は実際にジャンプするかは
条件により決まる。実際にジャンプが行われることを分
岐成立(Branch Taken)、行われなかった
ことを分岐不成立(Branch Not Take
n)とする。
【0225】図26にPCトレース回路32の構成を示
します。PCトレース回路32はプロセッサコア20か
ら、以下の信号を入力する。
【0226】デバッグモード信号DM:現在のプロセッ
サコア20の実行モードがデバッグモードかノーマルモ
ードかを示す。
【0227】パイプライン実行信号:命令が一命令実行
されたことを示す。
【0228】30ビットのターゲットPC[31:2]
信号:分岐命令、ジャンプ命令のターゲットアドレス、
あるいは例外のベクタアドレスを示す。以下のインダイ
レクトジャンプ信号、ダイレクトジャンプ信号、分岐成
立信号、例外発生信号がアサートされているときに有効
である。
【0229】インダイレクトジャンプ信号:インダイレ
クトジャンプが実行されたことを示す。
【0230】ダイレクトジャンブ信号:ダイレクトジャ
ンプが実行されたことを示す。
【0231】分岐成立信号:分岐成立の分岐命令が実行
されたことを示す。
【0232】例外発生信号:例外が発生したことを示
す。
【0233】また、PCトレース回路32は、PCトレ
ースを完全に行うために以下の信号をプロセッサコア2
0へ出力する。
【0234】パイプラインストール要求信号:ターゲッ
トPCの出力を完全に行うため、プロセッサコア20の
パイプラインをストールさせるための信号である。PC
トレース回路32はインダイレクトジャンプのターゲッ
トPCを出力しているときに次のインダイレクトジャプ
が発生すると、この信号をアサートしてプロセッサコア
20のバイプラインをストールさせる。出力中のターゲ
ットPCが完全に出力されるとこの信号をネゲートし
て、プロセッサコア20のパイプライン処理を再開させ
る。
【0235】PCトレース回路32は、命令/データア
ドレスブレーク回路31とプロセッサバスブレーク回路
33からトリガ要求信号を入力する。DCRレジスタの
TMビットと、デバッグイネーブル信号DBGE*を入
力する。デバッグイネーブル信号はLowにアサートさ
れているとき、デバッガ60が有効であることを示す。
【0236】PCトレース回路32は、ノーマルモード
時にプロセッサコア20が出力するPCトレース情報
を、1ビットのPC出力(TPC信号)と、3ビットの
ステータス信号(PCST[2:0]信号)にしてデバ
ッガ60へ出力する。
【0237】以下にPCST[2:0]とTPC信号に
ついて説明する。
【0238】a)PCST[2:0] 各クロックごとに、命令の実行状態をPCST[2:
0]に出力する。(0:Low、1:Highレベルを
示す。) −111(STL):パイプラインストール トレーストリガ出力要求のない状態で、命令の実行終了
がなかったことを示す。
【0239】−110(JMP):分岐/ジャンプ成立
(PC出力あり) 分岐成立の分岐命令、ジャンプ命令の実行が終了し、T
PC信号にそのターゲットアドレス(分岐、ジャンプ先
のアドレス)の出力を開始したことを示す。
【0240】−101(BRT):分岐/ジャンブ成立
(PC出力なし) 分岐成立の分岐命令、ダイレクトジャンプ命令の実行が
終了したことを示す。この場合はTPC信号へターゲッ
トアドレスの出力はない。
【0241】−100(EXP):例外発生(例外ベク
タのコード出力あり) 例外が発生したことを示す。同時にTPC信号へ例外ベ
クタのコード出力を開始したことを示す。
【0242】−011(SEQ):シーケンシャル実行
(1命令実行したことを示す) 分岐/ジャンプ成立(JMP、BRT)でないとき、あ
るいは、トレーストリガ出力要求(TSQ)でないと
き、命令が実行されたことを示す。分岐不成立の分岐命
令が実行されたときもこの状態になる。
【0243】−010(TST):パイプラインストー
ル時のトレーストリガ出力 命令の実行終了がないクロックで、アドレストレースト
リガあるいはプロセッサバストレーストリガが発生した
ことを示す。
【0244】−001(TSQ):実行時のトレースト
リガ出力 命令の実行が終了したクロックで、アドレストレースト
リガあるいはプロセッサバストレーストリガが発生した
ことを示す。
【0245】−000(DBM):デバッグモード(ノ
ーマルモードではこの状態にはならない)。
【0246】TPCは、分岐命令、ジャンプ命令のター
ゲットアドレスを出力する信号である。PCST[2:
0]に110(JMPコード)が出力されたクロックか
ら、ターゲットアドレスの出力を開始する。ターゲット
アドレスは、下位A(2)から1クロックごと出力され
る。PCST[2:0]に100(EXPコード)が出
力されたクロックから、例外ベクタの3ビットコードを
出力する。コードは下位code(0)からcode
(1)、code(2)の順に1クロックごと出力され
る。例外ベクタアドレスと3ビットのコードは下記に示
すようになる。
【0247】 Vector Address code(2:0) リセット,Nmi BFC0_0000 4(100) UTLB(BEV=0) 8000_0000 0(000) UTLB(BEV=1) BFC0_0100 6(110) その他(BEV=0) 8000_0080 1(001) その他(BEV=1) BFC0_0180 7(111) TPC信号によって1ビットシリアルにターゲットアド
レスを出力するため、前の分岐ジャンプ命令をTPC信
号へ出力している途中に、次の分岐、ジャンプ命令ある
いは例外が発生することがある。この場合のTPCへの
ターゲットアドレス出力の優先度について規定する。
【0248】a)ターゲットPC出力中に、新たにイン
ダイレクトジャンプが発生すると、その時のターゲット
PC出力を終了し、必ず新たなインダイレクトジャンプ
のターゲットPCの出力を開始する。
【0249】b)ターゲットPC出力中に、例外が発生
したときは、例外のベクタ番号(3ビット)を必ず出力
し、その後、中断していたPC出力を再開する。
【0250】c)ターゲットPC出力中に、新たにダイ
レクトジャンプ、分岐が発生したときはそのダイレクト
ジャンプ、分岐のターゲットアドレスの出力は行なわな
い。ダイレクトジャンプ、分岐については、発生時にタ
ーゲットPCを出力していないときのみ、そのターゲッ
トPCが出力される。
【0251】次に、PCトレース出力例を図を用いて説
明する。
【0252】(例1)分岐命令のPCトレース 図27に分岐命令のPCトレース出力の一例を示す。
【0253】最初の分岐成立の分岐命令beqでは、T
PCにターゲットPCを出力していないので、PCST
[2:0]にJMPコードを出力し、TPCにターゲッ
トPCの出力を開始する。分岐不成立の分岐命令bne
では、PCST[2:0]にSEQコードを出力する。
2番目の分岐成立の分岐命令bneでは、最初の分岐命
令のターゲットPCを出力しているので、TPCにター
ゲットPCを出力しない。PCST[2:0]にはBR
Tコードを出力する。
【0254】(例2)インダイレクトジャンプ命令のP
Cトレース 図28にインダイレクトジャンプ命令のPCトレース出
力の一例を示す。
【0255】最初のインダイレクトジャンプ命令jr1
では、PCST[2:0]にJMPコードを出力し、T
PCにターゲットPCの出力を開始する。分岐不成立の
分岐命令bneでは、PCST[2:0]にSEQコー
ドを出力する。2番目のインダイレクトジャンプ命令j
r2では、最初のインダイレクトジャンプ命令のターゲ
ットPCの出力を中止して、jr2のターゲットPCを
TPCへ出力する。PCST[2:0]にはJMPコー
ドを出力する。
【0256】(例3)例外とインダイレクトジャンプ命
令のPCトレース 図29に例外とインダイレクトジャンプ命令のPCトレ
ース出力の一例を示す。
【0257】ソフトウエアブレーク命令breakで例
外が発生する。PCST[2:0]にEXPコードを出
力し、TPCに例外ベクタのコードの出力を開始する。
分岐不成立の分岐命令bneでは、PCST[2:0]
にSEQコードを出力する。インダイレクトジャンプ命
令jr2では、jr2のターゲットPCをTPCへ出力
し、PCST[2:0]にはJMPコードを出力する。
【0258】次に、PCST[2:0]信号へのトレー
ストリガの出力について説明する。
【0259】命令/データアドレスブレーク、プロセッ
サバスブレークで、設定したアドレスとデータと一致し
たバスサイクルが実行されると、PCST[2:0]信
号にトレーストリガ情報が出力する機能である。
【0260】命令アドレストレーストリガ、データアド
レストレーストリガ、プロセッサバストレーストリガの
要求が発生すると、PCST[2:0]信号にトレース
トリガ情報TSQコードあるいはTSTコードを出力す
る。ただし、PCST[2:0]に、JMP、BRT、
EXPコードが出力されているとトレーストリガのTS
Q,TSTコードの出力は遅れる。トレーストリガ要求
がないとき、PCST[2:0]出力がSEQコード、
STLコードとなるクロックでTSQコード、TSTコ
ードをPCST[2:0]信号に出力する。
【0261】(a)命令/データアドレストレーストリ
ガ 命令/データアドレストレーストリガでは、PCST
[2:0]信号にそのトレーストリガが発生した命令の
トレース情報を出力するタイミングで、PCST[2:
0]信号にトレーストリガ情報TSQが出力される。た
だし、トレーストリガを発生した命令が、分岐成功の分
岐命令、ジャンプ命令あるいは例外を発生した命令で、
通常PCST[2:0]出力がSEQコードでない場合
は、トレーストリガの出力は遅れる。トレーストリガ要
求がないとき、PCST[2:0]出力がSEQ、ST
LとなるクロックでTSQコード、TSTコードをPC
ST[2:0]信号に出力する。
【0262】(例1)命令/データアドレストレースト
リガの発生例 図30に命令/データアドレストレーストリガの発生例
を示す。
【0263】命令アドレストレーストリガ、あるいはデ
ータアドレストレーストリガを発生したadd命令でP
CST[2:0]信号に、トレーストリガのコードTS
Qを出力する。
【0264】(例2)例外発生命令で命令/データアド
レストレーストリガが発生した例 図31に例外発生命令で命令/データアドレストレース
トリガが発生した例を示す。
【0265】命令アドレストトレーストリガ、あるいは
データアドレストレーストリガが、ソフトウエアブレー
ク命令breakで発生すると、break命令ではP
CST[2:0]信号に例外発生のコードEXPを出力
し、次のクロックでトレーストリガのコードを出力す
る。この例では、ストール状態なのでTSTコードを出
力する。
【0266】(例3)インダイレクトジャンプ命令で命
令/データアドレストレーストリガが発生した例 図32にインダイレクトジャンプ命令で命令/データア
ドレストレーストリガが発生した例を示す。
【0267】命令アドレストレーストリガ、あるいはデ
ータアドレストレーストリガが、インダイレクトジャン
プ命令jr2で発生すると、jr2命令ではPCST
[2:0]信号にジャンプのコードJMPを出力し、次
のクロックでトレーストリガのコードを出力する。この
例では命令実行状態なのでTSQコードを出力する。
【0268】(b)プロセッサバストレーストリガ プロセッサバストレーストリガの要求が発生すると、P
CST[2:0]信号にトレーストリガ情報TSQコー
ドあるいはTSTコードを出力する。ただし、PCST
[2:0]に、JMP、BRT、EXPコードが出力さ
れているとトレーストリガのTSQ,TSTコードの出
力は遅れる。トレーストリガ要求がないとき、PCST
[2:0]出力がSEQコード、STLコードとなるク
ロックでTSQコード、TSTコードをPCST[2:
0]信号に出力する。
【0269】次に、デバッグモードDBMコードの出力
について説明する。
【0270】プロセッサコア20がデバッグ例外あるい
はデバッグリセットを発生すると、デバッグモード信号
DMをHighにアサートして、デバッグモードにな
る。PCトレース回路32は、PCST[2:0]出力
にDBMコードを出力する。
【0271】図33にデバッグ例外発生時のPCST
[2:0]の出力タイミングを示す。
【0272】ターゲットPCを出力していないときは、
デバッグ例外を発生した命令の実行終了直後に、デバッ
グモードになる。デバッグ例外が発生した直前の命令ま
でのPCトレース情報が出力される。
【0273】図34にデバッグ例外発生時に、ターゲッ
トPCを出力している場合のPCST[2:0]出力タ
イミングを示す。
【0274】ターゲットPCを出力しているときは、そ
のターゲットPC出力が完了した後、デバッグモードに
なる。デバッグ例外が発生した直前の命令までのPCト
レース情報が出力される。ターゲットPCを出力してい
る間は、PCST[2:0]にはSTLが出力される。
【0275】図35にデバッグモードからの復帰時のP
CST[2:0]の出力タイミングを示す。
【0276】デバッグ例外、デバッグモードからの復帰
命令DERET命令の分岐ディレイスロット命令までデ
バッグモードとなる。DERET命令の戻り先の命令か
ら、ノーマルモードになりPCトレースが有効になる。
【0277】次に、図26に戻って、PCトレース回路
32について説明する。
【0278】図26において、PCトレース回路32
は、PCトレースコントロール回路321、ターゲット
PCシフトレジスタ322、例外ベクタコード化回路3
23、例外コードシフトレジスタ324、セレクタ32
5からなる。
【0279】PCトレースコントロール回路321は、
例外コード出力ステータスビット326、ターゲットP
C出力カウンタ329を含む。
【0280】次に、PCトレース回路321の動作につ
いて説明する。
【0281】TMビットが0のときのPCST[2:
0]の出力は表3に示すようになる。なお、表3におい
て、1がアクティブ、xはdon′t careを示
す。
【0282】
【表3】 この表3で、トリガ要求信号は、命令アドレストレース
トリガ要求信号、データアドレストレーストリガ要求信
号とプロセッサバストレーストリガ要求信号の論理和を
とったものである。
【0283】5ビットのターゲットPC出力カウンタ3
27が0でないとき、TPC出力中を示す。例外コード
出力ステータスビットが1のとき例外ベクタコード出力
中を示す。表3のターゲットPCまた例外コード出力中
を示す内部ステータスは、ターゲットPC出力カウンタ
327が0でないか、または例外コード出力ステータス
326が1のとき1となる。
【0284】ターゲットPC出力カウンタ327は、以
下のように更新される。
【0285】(1)TPC信号にターゲットPCを出力
していないとき、あるいは新たにPC出力を開始すると
きは、ターゲットPC出力カウンタ327は0にクリア
される。
【0286】(2)TPC信号に例外ベクタを出力して
いるときは、PC出力中を示す内部ステートとカウンタ
は、そのままの値を保持する。
【0287】(3)カウンタの値が30になると、ター
ゲットPC出力カウンタ327を0にする。これはター
ゲットPCの出力が終了したこと示す。
【0288】(4)(1)、(2)、(3)以外のとき
は、ターゲットPCカウンタ327の値を1増やす。こ
の状態では、TPC信号にターゲットPCの値を出力し
ている。
【0289】例外コード出力ステータス326は、例外
が発生すると、例外コード出力中を示す内部ステートが
3クロック間アサートされる。例外コード出力ステータ
ス326がアサートされているときは、例外コードシフ
ト信号と例外コード出力切り替え信号がアサートされ
る。例外コードロード信号は、表3のPCST[2:
0]にEXPコードを出力する条件でアサートされ、例
外コードシフトレジスタ324に例外ベクタコード化回
路323の出力の例外ベクタコードの値をロードする。
ターゲットPCロード信号は、表3のPCST[2:
0]にJMPコードを出力する条件でアサートされ、タ
ーゲットPCシフトレジスタ322にターゲットPCの
値をロードする。ターゲットPCシフト信号は、ターゲ
ットPCカウンタ327の値が0でなく、かつ例外コー
ド出力ステータス326がアサートされていないときに
アサートされる。
【0290】DCRレジスタのTMビットが1にセット
されると、PCトレースを完全に行なう。DBGE*信
号がアサートされて、かつDCRレジスタのTMビット
がセットされていると、PCトレースコントロール回路
321は、インダイレクトジャンプのターゲットPCを
出力しているときに次のインダイレクトジャンプが発生
すると、パイプラインストール要求信号をアサートして
プロセッサコア20のパイプラインをストールさせる。
出力中のターゲットPCが完全に出力されるとパイプラ
インストール要求信号をネゲートして、プロセッサコア
20のパイプライン処理を再開させる。
【0291】TMビットが1のときのPCST[2:
0]の出力は表4に示すようになる。なお、表4におい
て、1がアクティブ、xはdon′t careを示
す。
【0292】
【表4】 ターゲットPCあるいは例外コード出力中に、次のイン
ダイレクトジャンプが実行され、インダイレクトジャン
プ信号がアクティブになると、プロセッサコア20のパ
イプラインストール要求信号をアクティブにする。ター
ゲットPCまたは例外コード出力の内部ステートは、タ
ーゲットPC出力開始から30クロック間アクティブに
なる。
【0293】ターゲットPCシフトレジスタ322は、
PCトレースコントロール回路321のターゲットPC
ロード信号がアサートされると、ターゲットPCの値を
ロードする。また、PCトレースコントロール回路32
1のターゲットPCシフト信号がアサートされると、タ
ーゲットPCシフトレジスタ322の値をMSBからL
SBへ1ビットシフトする。
【0294】例外ベクタコード化回路323は、例外ベ
クタアドレスを、以下のようにベクタアドレスのA[2
9],A[8],A[7]によって、エンコードする。
【0295】 Vector Address (A29,A8,A7) 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 例外ベクタコード化回路323は、ターゲットPCのア
ドレスA[29],A[8],A[7]を例外コードシ
フトレジスタへ出力する。
【0296】例外コードシフトレジスタ324は、PC
トレースコントロール回路321の例外コードロード信
号がアサートされると、例外ベクタコード化回路323
の出力の例外ベクタコードをロードする。また、PCト
レースコントロール回路321の例外コードシフト信号
がアサートされると、例外コードシフトレジスタ324
の値をMSBからLSBへ1ビットシフトする。
【0297】セレクタ325は、PCトレースコントロ
ール回路321の例外コード出力切り替え信号がアサー
トされると、例外コードシフトレジスタ324のLSB
の値をTPCへ出力する。例外コード出力切り替え信号
がネゲートされていると、ターゲットPCシフトレジス
タ322のLSBの値をTPCへ出力する。
【0298】次に、PCトレース回路32の動作例をタ
イミング図を用いて説明する。
【0299】図36にターゲットPCの出力時の動作例
を示す。ターゲットPC出力カウンタ327が0のとき
に、インダイレクトジャンプ信号、ダイレクトジャンプ
信号、または分岐成立信号がアサートされると、PCト
レースコントロール回路321は、ターゲットPCロー
ド信号をアサートする。
【0300】次のクロックで、ターゲット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出力は終了する。
【0301】図37にターゲットPC出力中に、次のイ
ンダイレクトジャンプが発生したときの動作タイミング
例を示す。
【0302】2番目のインダイレクトジャンプが発生す
ると、ターゲットPC出力カウンタは0にクリアされ、
ターゲットPCロード信号がアサートされる。次のクロ
ックでターゲットPCシフトレジスタ322にロードさ
れたターゲットアドレスのLSBビットのA[2]がT
PCへ出力され、PCST[2:0]にJMPコードが
出力され、PCトレースコントロール回路321はター
ゲットPCシフト信号をアサートする。次のクロックか
らターゲットアドレスが毎サイクル1ビットづつTPC
信号へ出力される。
【0303】図38にターゲットPC出力中に、例外が
発生したときの動作タイミング例を示す。
【0304】ターゲットPC出力中に、例外発生信号が
アサートされると、例外コードロード信号がアサートさ
れ、例外コードの値が例外コードシフトレジスタ324
へロードされる。次のクロックから、例外コード出力ス
テータス326、例外コードシフト信号、例外コード出
力切替信号がアサートされる。例外コードが3クロック
間出力される。この間はターゲットPCシフト信号がネ
ゲートされる。例外コード出力ステータス326、例外
コード切替信号がネゲートされると、再びターゲットP
CのTPCへの出力が始まる。
【0305】図39に外部インターフェース回路36を
示す。
【0306】外部インターフェース回路36は、DBM
コード検出回路361、セレクタ362、363、マス
ク回路364、365、366、出力バッファ367
A、367B、367C、プルアップ抵抗付き入力バッ
ファ368A、368B、368C、入力バッファ36
9A、369Bからなる。
【0307】DBMコード検出回路361は、PCST
[2:0]にデバッグモードのコードDBM(000)
が出力されているとき、出力信号をアサートする。
【0308】セレクタ362は、DBMコード検出回路
361の出力がアサートされているとき、すなわちデバ
ッグモードのときは分周クロックCLK2を出力し、D
BMコード検出回路361の出力がネゲートされている
とき、すなわちノーマルモードのときはコアクロックC
LKを出力する。
【0309】セレクタ363は、DBMコード検出回路
361の出力がアサートされているとき、すなわちデバ
ッグモードのときは、シリアルモニタバス回路34のS
DAOを出力し、DBMコード検出回路361の出力が
ネゲートされているとき、すなわちノーマルモードのと
きは、PCトレース回路32のTPCを出力する。
【0310】マスク回路364は、デバッグモードのと
き、常にプロセッサコアのDINT*入力がネゲートさ
れるように、外部DINT*/SDI入力の値をマスク
する。
【0311】マスク回路365は、DCRレジスタのM
Intが0のとき、プロセッサコアのInt[5:0]
*をHighにして割り込みをマスクする。
【0312】マスク回路366は、DCRレジスタのM
Rstが0のとき、デバッグ例外ハンドラ実行中(DM
信号=High)ユーザーリセットをマスクする。
【0313】出力バッファ367Aは、セレクタ362
の出力をDCLKとして外部へ出力する。出力バッファ
367Bは、セレクタ363の出力をTPC/SDAO
として外部へ出力する。出力バッファ367Cは、PC
トレース回路32の出力のPCST[2:0]を外部P
CST[2:0]として出力する。
【0314】プルアップ抵抗付き入力バッファ368A
は、外部DINT*/SDI信号を内部へ入力する。プ
ルアップ抵抗付きなので、外部DINT*/SDI信号
が未接続のときは常に出力はHighレベルとなる。プ
ルアップ抵抗付き入力バッファ368Bは、外部DBG
E*信号を内部へ入力する。プルアップ抵抗付きなので
外部DBGE*信号が未接続のときは常に出力はHig
hレベルとなる。プルアップ抵抗付き入力バッファ36
8Cは、外部DRESET*信号を内部へ入力する。プ
ルアップ抵抗付きなので、外部DRESET*信号が未
接続のときは常に出力はHighレベルとなる。
【0315】外部DINT*/SDI信号、外部DBG
E*信号、外部DRESET*信号は、デバッガが接続
されていないときは信号が未接続にされる。内部ではこ
れらの入力信号はHighレベルとなり、デバッグモジ
ュールの機能はディスエーブルされる。
【0316】入力バッファ369Aは、外部割り込み信
号INT[5:0]*を入力する。入力バッファ369
Bは、外部ユーザーリセット信号RESET*を入力す
る。
【0317】図41は請求項3記載の発明の一実施形態
のマイクロプロセッサ及びデバッグシステムの構成を示
す図である。
【0318】この実施形態では、マイクロプロセッサ1
0がメモリ90や周辺回路100を内蔵していることを
特徴とし、他の構成は上記実施形態と同様である。
【0319】プロセッサコア20は内部プロセッサバス
80を介してメモリ90のプログラムを読み出して実行
したり、メモリ90上のデータをリードあるいはライト
し、またプロセッサコア20は内蔵の周辺回路100を
アクセスする。プロセッサコア20は、デバッグモード
において、デバッグモジュール30を介して、デバッガ
上のモニタプログラムを実行する。
【0320】この実施形態においても、デバッグモジュ
ールとデバッガのインターフェース信号の機能、タイミ
ングが同じならば、内蔵しているメモリ90、周辺回路
100の違いによらず、前記実施形態と同じデバッガ6
0を使用することができる。
【0321】さらに、プロセッサコア20の機能が前記
実施形態のものと同じであれば、デバッガ60上のモニ
タプログラムも同一のものを使用することができる。
【0322】以上説明した2つの実施形態では、命令/
データアドレスブレーク、プロセッサバスブレークチャ
ネル数がそれぞれ1のときを一例として説明したが、本
発明はこの構成に限定されるものではない。チャネル数
が2以上でも適用できる。図40に命令アドレスブレー
クのチャネル数が15になったときのIBSレジスタの
構成を示す。
【0323】また、以上説明した2つの実施形態では、
シリアルモニタバスのビット幅が1ビットのときを例に
説明したが、この発明はこの構成に限定されるものでは
ない。シルアルモニタバスのために、さらに多くのマイ
クロプロセッサの外部信号を使用できる場合には、ビッ
ト幅が2ビット以上にすることもできる。
【0324】さらに、上記2つの実施形態では、ターゲ
ットPCの出力を1本の外部信号を用いて行った時の例
を説明したが、この発明はこの構成に限定されるもので
はない。ターゲッットPC出力のために、さらに多くの
マイクロプロセッサの外部信号を使用できる場合には、
ターゲットPC出力を複数の外部信号を用いて行うこと
ができる。
【0325】またさらに、上記2つの実施形態では、ク
ッロック供給回路37は、クロック信号(CLK)を2
分周する回路であったが、この発明はこの構成に限定さ
れるものではない。クロック信号(CLK)と同じ周波
数やクロック信号(CLK)の整数倍あるいは2のべき
乗倍のクロック信号を出力し、このクロック信号をシリ
アルモニタバス回路の動作クロック信号として使用して
もよい。
【0326】このように、この発明にあっては、デバッ
グツールのハードウェア仕様を共通化でき、デバッグツ
ールとの接続のための信号の本数を削減できる。例え
ば、従来の方法では、アドレス信号30本、バイトイネ
ーブル信号4本、リード信号、ライト信号、リード応答
信号、ライト応答信号、データ信号32本、合計70本
の信号でユーザーターゲットシステムとデバッガとを接
続しなければならなかったが、本システムでは8本の信
号で接続すればよい。これにより、プローブの小型化、
低価格化ができる。
【0327】ユーザターゲット上のマイクロプロセッサ
がメモリやI/Oをアクセスするので、デバッグツール
に要求されるタイミング条件が改善される。デバッグツ
ールに接続されない信号に関しては、影響を及ぼさな
い。デバッグツールとマイクロプロセッサ間の通信速度
を必要に応じて遅くできる。これにより、高速のマイク
ロプロセッサにも対応することができる。
【0328】また、図43に示す従来例に比べて、次の
ような効果が得られる。モニタプログラムをデバッグツ
ール側のメモリで実行するため、ユーザのメモリを使用
しない。モニタに入るために専用のデバッグ例外、デバ
ッグリセットを用意しているために、ユーザの割り込み
に制限を加えない。ユーザターゲットシステムにシルア
ルインターフェースを用意する必要がない。ハードウェ
ーアブレークポイントが使用可能である。
【0329】一方、図44に示す従来例に比べて、マイ
クロプロセッサ内部に、シーケンサを持つ必要がないた
め、マイクロプロセッサ内部に追加されるデバッグのた
めのロジック回路が簡単になる。モニタプログラムによ
ってレジスタにアクセスするため派生品のマイクロプロ
セッサでレジスタが追加されるような場合でもモニタプ
ログラムを変更するだけで容易にそれらに対応してアク
セスすることが可能となる。
【0330】
【発明の効果】以上説明したように、この発明によれ
ば、ユーザーターゲットシステム上のマイクロプロセッ
サにデバッグ機能を備えるようにしたので、ユーザータ
ーゲットシステム上のマイクロプロセッサにデバッグ機
能をユーザーターゲットシステムとデバッガとの接続に
要する信号を削減することができる。また、デバッグ時
でもユーザーターゲットシステム上でマイクロプロセッ
サを動作させるようにしたので、ユーザーターゲットシ
ステム上のメモリやI/Oのアクセスを容易にすること
ができる。
【0331】また、請求項10記載の発明によれば、ユ
ーザープログラムの実行中(ノーマルモード)には、デ
バッグツール及びデバッグモジュール内の制御レジスタ
のアクセスが不可能であるので、ユーザープログラムに
よってデバッグツールで使用するメモリやレジスタで誤
って破壊されることがなくなり、信頼性の高いデバッグ
システムを実現できる。
【0332】さらに、請求項11記載の発明によれば、
プロセッサコアがデバッグモードへ移行した後でも、デ
バッグツール及びデバッグモジュール内の制御レジスタ
のアクセスが禁止される。プロセッサコアがデバッグ例
外を発生してデバッグモードへ移行したが、直前のユー
ザープログラムのライトオペレーションがまだ完了して
いないことがあり得る。この時、そのライトがデバッグ
ツール又はデバッグモジュール内の制御レジスタへのラ
イトであった場合でも、MPビットがセットされていれ
ば、そのライトアクセスを禁止することができる。これ
により、ユーザープログラムによって、デバッグツール
で使用するメモリやレジスタが誤って破壊されることが
なくなり、信頼性の高いデバッグシステムを実現でき
る。
【0333】またさらに、請求項12又は13記載の発
明によれば、デバッグモード中のCTC0命令によるデ
バッグツールへのライトは、DCRレジスタのMPビッ
トの値によらず、常に可能であり、また、メモリライト
命令とは異なってモニタ領域のアドレスを作るために汎
用レジスタを使用する必要がない。
【0334】したがって、汎用レジスタの内容を書き壊
すことなく、デバッグ例外発生直後に、汎用レジスタの
値をデバッグツール上のメモリへセーブすることが可能
である。このように、ユーザーが使用している汎用レジ
スタの内容をデバッグツールが書き壊すことがなく、透
過性に優れたデバッグシステムを実現できる。
【0335】また、本発明によれば、ユーザーターゲッ
ト上のマイクロプロセッサにデバッグ機能を備えること
によって、PCトレース出力に必要なインターフェース
信号を削減することができる。
【0336】また、本発明によれば、ユーザーターゲッ
ト上のマイクロプロセッサにデバッグ機能を備えること
によって、最小のハードウエアによってトリガ機能を実
現することができる。
【図面の簡単な説明】
【図1】請求項1記載の発明の一実施形態に係わるマイ
クロプロセッサ及びデバッグシステムの構成を示す図で
ある。
【図2】図1に示す実施形態のデバッグモジュールの構
成を示す図である。
【図3】図1に示す実施形態のレジスタ回路の構成を示
す図である。
【図4】図3に示すレジスタ部におけるDCRレジスタ
の構成を示す図である。
【図5】図3に示すレジスタ部におけるIBA0レジス
タの構成を示す図である。
【図6】図3に示すレジスタ部におけるIBC0レジス
タの構成を示す図である。
【図7】図3に示すレジスタ部におけるIBSレジスタ
の構成を示す図である。
【図8】図3に示すレジスタ部におけるDBA0レジス
タの構成を示す図である。
【図9】図3に示すレジスタ部におけるDBC0レジス
タの構成を示す図である。
【図10】図3に示すレジスタ部におけるDBSレジス
タの構成を示す図である。
【図11】図3に示すレジスタ部におけるPBA0レジ
スタの構成を示す図である。
【図12】図3に示すレジスタ部におけるPBD0レジ
スタの構成を示す図である。
【図13】図3に示すレジスタ部におけるPBM0レジ
スタの構成を示す図である。
【図14】図3に示すレジスタ部におけるPBC0レジ
スタの構成を示す図である。
【図15】図3に示すレジスタ部におけるPBSレジス
タの構成を示す図である。
【図16】図2に示すデバッグモジュール部の命令/デ
ータアドレスブレーク回路の構成を示す図である。
【図17】図2に示すデバッグモジュール部のプロセッ
サバスブレーク回路の構成を示す図である。
【図18】図2に示すデバッグモジュール部のシリアル
モニタバス回路の構成を示す図である。
【図19】シリアルモニタバスのリードオペレーション
のタイミング図である。
【図20】シリアルモニタバスのライトオペレーション
のタイミング図である。
【図21】シリアルモニタバスのCFC0命令によるシ
リアルモニタバスのリードオペレーションのタイミング
図である。
【図22】シリアルモニタバスのCTC0命令によるシ
リアルモニタバスのライトオペレーションのタイミング
図である。
【図23】図18に示すシリアルモニタバスコントロー
ル回路の動作フローを示す図である。
【図24】シリアルモニタバスのリードバスオペレーシ
ョンの動作フローを示す図である。
【図25】シリアルモニタバスのライトバスオペレーシ
ョンの動作フローを示す図である。
【図26】図2に示すデバッグモジュール部のPCトレ
ース回路の構成を示す図である。
【図27】分岐命令のPCトレース出力のタイミング図
である。
【図28】インダイレクトジャンプ命令のPCトレース
のタイミング図である。
【図29】例外とインダイレクトジャンプ命令のPCト
レース出力のタイミング図である。
【図30】命令/データアドレストレーストリガのタイ
ミング図である。
【図31】例外発生命令で命令/データアドレストレー
ストリガが発生したときのタイミング図である。
【図32】インダイレクト命令で命令/データアドレス
トレーストリガが発生したときのタイミング図である。
【図33】デバッグ例外発生時のPCST[2:0]出
力のタイミング図である。
【図34】ターゲットPC出力中にデバッグ例外が発生
した時のPCST[2:0]出力のタイミング図であ
る。
【図35】デバッグモードからの復帰時のPCST
[2:0]出力のタイミング図である。
【図36】ターゲットPCの出力のタイミング図であ
る。
【図37】ターゲットPC出力中に次のインダイレクト
ジャンプが発生したときのタイミング図である。
【図38】ターゲットPC出力中に例外が発生したとき
のタイミング図である。
【図39】図2に示す実施形態の外部インターフェース
回路の構成を示す図である。
【図40】IBSレジスタの拡張例を示す図である。
【図41】請求項3記載の発明の一実施形態に係わるデ
バッグシステムの構成を示す図である。
【図42】従来のユーザターゲットシステムをデバッグ
するデバッグシステムの一構成を示す図である。
【図43】従来のユーザターゲットシステムをデバッグ
するデバッグシステムの他の構成を示す図である。
【図44】従来のユーザターゲットシステムをデバッグ
するデバッグシステムのさらに他の構成を示す図であ
る。
【符号の説明】
10 マイクロプロセッサ 20 プロセッサコア 30 デバッグモジュール 31 命令/データアドレスブレーク回路 32 PCトレース回路 33 プロセッサバスブレーク回路 34 シリアルモニタバス回路 35 レジスタ回路 36 外部インターフェース回路 37 分周回路 40 メモリ 50 I/O 60 デバッガ 70 ユーザーターゲットシステム 80 システムバス
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平2−178848(JP,A) 特開 平4−245339(JP,A) 特開 平2−162435(JP,A) 特開 昭64−4840(JP,A) 実開 平2−84952(JP,U) (58)調査した分野(Int.Cl.6,DB名) G06F 11/22 - 11/34

Claims (25)

    (57)【特許請求の範囲】
  1. 【請求項1】 ユーザーターゲットシステムをデバッグ
    するモニタプログラムを含むデバッグツールと、 ユーザープログラム又はモニタプログラムを実行するプ
    ロセッサコアと、前記プロセッサコアと内部デバッグイ
    ンターフェース又はプロセッサバスを介して接続され、
    前記デバッグツールと外部デバッグインターフェースを
    介して接続され、モニタプログラムを前記プロセッサコ
    アが実行可能とするための前記デバッグツールとのイン
    ターフェース手段、及び前記プロセッサコアがユーザー
    プログラムの実行中にユーザープログラムからモニタプ
    ログラムへ移行するための割り込み又は例外を前記プロ
    セッサコアに要求する実行制御手段を備えたデバッグモ
    ジュールとからなるマイクロプロセッサと、 前記マイクロプロセッサとプロセッサバスにより接続さ
    れてデバッグの対象となるユーザーターゲットシステム
    を構成し、前記マイクロプロセッサがユーザープログラ
    ムを実行するために必要となる情報を記憶するメモリ
    と、 前記マイクロプロセッサとプロセッサバスにより接続さ
    れてデバッグの対象となるユーザーターゲットシステム
    を構成するI/O装置とを有することを特徴とするデバ
    ッグシステム。
  2. 【請求項2】 前記デバッグモジュールは、 前記プロセッサコアから出力される命令又はデータのア
    ドレスを入力し、その値が予め設定された前記アドレス
    と一致したとき前記プロセッサコアへアドレスブレーク
    例外を要求するブレーク回路と、 前記プロセッサコアと前記プロセッサバスで接続され、
    前記プロセッサバス上のバスサイクルを監視して、予め
    設定されたアドレスとデータのバスサイクルが実行され
    ると、前記プロセッサコアへ例外を要求するプロセッサ
    バスブレーク回路と、 前記プロセッサバスによって前記プロセッサコアと接続
    され、前記プロセッサコアがデバッグツール上のモニタ
    プログラムを実行するときにインターフェースを行うシ
    リアルモニタバス回路と、 デバッグモジュールの機能を制御する情報を格納し、格
    納された情報が前記プロセッサコアによってリード/ラ
    イトされるレジスタ回路と、 前記シリアルモニタバス回路、前記プロセッサコアと前
    記デバッグツールとのインターフェースを制御する外部
    インターフェース回路と、 前記マイクロプロセッサと前記デバッグツールとの間を
    入出力する信号の転送速度を規定するクロック信号を前
    記デバッグツールに供給するクロック信号供給回路とを
    有することを特徴とする請求項1記載のデバッグシステ
    ム。
  3. 【請求項3】 前記クロック信号供給回路は、前記プロ
    セッサコアが動作するクロック信号の整数倍又は2のべ
    き乗の周期のクロック信号を供給することを特徴とする
    請求項2記載のデバッグシステム。
  4. 【請求項4】 前記デバッグモジュールと前記デバッグ
    ツールとの接続信号は、前記デバッグツールとの接続の
    みに使用することを特徴とする請求項1,2又は3記載
    のデバッグシステム。
  5. 【請求項5】 前記デバッグモジュールと前記デバッグ
    ツールとの接続信号は、全て単一方向の信号からなるこ
    とを特徴とする請求項1,2,3又は4記載のデバッグ
    システム。
  6. 【請求項6】 前記デバッグモジュールは、 前記プロセッサコアが特定のアドレス領域をアクセスし
    た際に、前記プロセッサコアの複数のアドレス信号又は
    バスコントロール信号を予め設定された時間間隔で順次
    前記デバッグツールに出力し、前記プロセッサコアがラ
    イトアクセスした際は、さらにデータ出力信号を予め設
    定された時間間隔で順次前記デバッグツールに出力し、
    前記プロセッサコアがリードアクセスした際に、前記デ
    バッグツールからの入力信号を予め設定された時間間隔
    で順次入力し、複数ビットのデータ信号を構成して前記
    プロセッサコアに出力することを特徴とする請求項1,
    2,3,4又は5記載のデバッグシステム。
  7. 【請求項7】 前記予め設定された時間間隔は、前記ク
    ロック信号供給回路の出力クロックによって規定される
    ことを特徴とする請求項6記載のデバッグシステム。
  8. 【請求項8】 前記デバッグモジュールと前記デバッグ
    ツールとは、1本の第1転送線を介して前記プロセッサ
    コアの複数のバスインターフェース信号を1ビットシリ
    アルに前記デバッグツールに転送し、1本の第2転送線
    を介して前記デバッグツールから1ビットシリアルに情
    報を前記デバッグモジュールに転送することを特徴とす
    る請求項1,2,3,4、5,6又は7記載のデバッグ
    システム。
  9. 【請求項9】 前記プロセッサコアは、モニタプログラ
    ムへの遷移を要求する例外あるいはリセットを発生する
    と有効となるモード信号を有し、 前記デバッグモジュールは、前記モード信号が有効な場
    合にのみ前記プロセッサコアから前記デバッグツール又
    は前記デバッグモジュール内の前記レジスタ回路にアク
    セスが可能となることを特徴とする請求項1又は3記載
    のデバッグシステム。
  10. 【請求項10】 前記プロセッサコアは、モニタプログ
    ラムへの遷移を要求する例外あるいはリセットを発生す
    ると有効となるモード信号を有し、 前記デバッグモジュールは、前記デバッグモジュールへ
    のアクセスを禁止する制御ビットを有し、この制御ビッ
    トが有効な場合は前記モード信号が有効であっても前記
    プロセッサから前記デバッグツール又は前記デバッグモ
    ジュール内の前記レジスタ回路へのアクセスを禁止する
    ことを特徴とする請求項1又は3記載のデバッグシステ
    ム。
  11. 【請求項11】 前記プロセッサコアは、モニタプログ
    ラムへの遷移を要求する例外あるいはリセットを発生す
    ると有効となるモードを有し、汎用レジスタの値をデー
    タ信号へ出力するとともに、第1のライト信号を有効に
    する第1のライト命令と、汎用レジスタの値をデータ信
    号へ出力するとともに、第2のライト信号を有効にする
    第2のライト命令を有することを特徴とする請求項1又
    は3記載のデバッグシステム。
  12. 【請求項12】 前記デバッグモジュールは、前記デバ
    ッグモジュールへのアクセスを禁止する制御ビットを有
    し、前記制御ビットが有効な場合は前記第1のライト信
    号による前記デバッグモジュールへのライトアクセスを
    禁止し、前記第2のライト信号による前記デバッグモジ
    ュールへのライトアクセスは前記制御ビットの値によら
    ず許可することを特徴とする請求項11記載のデバッグ
    システム。
  13. 【請求項13】 プログラムを実行するプロセッサコア
    と、 前記プロセッサコアと内部デバッグインターフェースを
    介して接続され、 前記プロセッサコアから出力される、実行している命令
    のアドレスの値を、 命令のアドレスのビット幅よりも少ない本数のプログラ
    ムカウンタ出力信号に出力するプログラムカウンタトレ
    ース回路と、 を有することを特徴とするマイクロプロセッサ。
  14. 【請求項14】 前記プロセッサコアは、インダイレク
    トジャンプ命令を実行したときに、それを示すインダイ
    レクトジャンプ有効信号を有効にし、そのインダイレク
    トジャンプ命令のジャンプ先アドレスの値を前記プログ
    ラムカウンタトレース回路へ出力し、 前記プログラムカウンタトレース回路は、前記インダイ
    レクトジャンプ有効信号が有効になると、前記プロセッ
    サコアからそのジャンプ先アドレスを入力し、前記プロ
    グラムカウンタ出力信号へアドレスの下位ビットの方か
    ら、ジャンプ先アドレスを出力し、ジャンプ先アドレス
    の出力を開始したことを示す情報をプログラムカウンタ
    ステータス信号へ出力すること、を特徴とする請求項1
    3記載のマイクロプロセッサ。
  15. 【請求項15】 前記プロセッサコアは、例外が発生し
    たときに、それを示す例外有効信号を有効にし、その例
    外に対応するジャンプ先アドレスの値を前記プログラム
    カウンタトレース回路へ出力し、 前記プログラムカウンタトレース回路は、前記例外有効
    信号が有効になると、前記プロセッサコアからそのジャ
    ンプ先アドレスを入力し、そのジャンプ先アドレスを少
    ないビット数の情報にコード化し、例外のジャンプ先ア
    ドレスの出力を開始したことを示す情報をプログラムカ
    ウンタステータス信号へ前記プログラムカウンタ出力信
    号へ出力すること、 を特徴とする請求項13又は14記載のマイクロプロセ
    ッサ。
  16. 【請求項16】 前記プログラムカウンタトレース回路
    が、第1のインダイレクトジャンプのジャンプ先アドレ
    スを出力しているときに、前記プロセッサコアが、第2
    のインダイレクトジャンプを実行したとき、 前記プロセッサコアは、第2のインダイレクトジャンプ
    命令を実行したときに、それを示すインダイレクトジャ
    ンプ有効信号を有効にし、第2のインダイレクトジャン
    プ命令のジャンプ先アドレスの値を前記プログラムカウ
    ンタトレース回路へ出力し、 前記プログラムカウンタトレース回路は、第2のインダ
    イレクトジャンプに対応する前記インダイレクトジャン
    プ有効信号が有効になると、前記プロセッサコアから第
    2のインダイレクトジャンプのジャンプ先アドレスを入
    力し、第1のインダイレクトジャンプのジャンプ先アド
    レスの出力を中止して、第2のインダイレクトジャンプ
    のジャンプ先アドレスを前記プログラムカウンタ出力信
    号へ出力し、ジャンプ先アドレスの出力を開始したこと
    を示す情報をプログラムカウンタステータス信号へ出力
    すること、 を特徴とする請求項14記載のマイクロプロセッサ。
  17. 【請求項17】 前記プログラムカウンタトレース回路
    が、インダイレクトジャンプのジャンプ先アドレスを出
    力しているときに、前記プロセッサコアが、例外を発生
    したとき、 前記プロセッサコアは、前記例外が発生したときに、そ
    れを示す例外有効信号を有効にし、その例外に対応する
    ジャンプ先アドレスの値を前記プログラムカウンタトレ
    ース回路へ出力し、 前記プログラムカウンタトレース回路は、前記例外有効
    信号が有効になると、前記プロセッサコアから前記例外
    のジャンプ先アドレスを入力し、前記インダイレクトジ
    ャンプのジャンプ先アドレスの出力を一時中断して、前
    記例外のジャンプ先アドレスを少ないビット数の情報に
    コード化し、前記プログラムカウンタ出力信号へ出力
    し、例外のジャンプ先アドレスの出力を開始したことを
    示す情報をプログラムカウンタステータス信号へ出力
    し、前記例外のコードの出力が終了した後、中断してい
    た前記インダイレクトジャンプのジャンプ先アドレスを
    出力すること、 を特徴とする請求項14,15又は16記載のマイクロ
    プロセッサ。
  18. 【請求項18】 前記プロセッサコアは、ダイレクトジ
    ャンプ命令あるいは分岐成功の条件分岐命令を実行した
    ときに、それを示すダイレクトジャンプ有効信号を有効
    にし、そのダイレクトジャンプ命令あるいは条件分岐命
    令のジャンプ先アドレスの値を前記プログラムカウンタ
    トレース回路へ出力し、 前記プログラムカウンタトレース回路は、前記ダイレク
    トジャンプ有効信号が有効になると、インダイレクトジ
    ャンプのジャンプ先アドレスを出力していないときは、
    前記プロセッサコアから前記ジャンプ先アドレスを入力
    し、前記プログラムカウンタ出力信号へアドレスの下位
    ビットの方から、ジャンプ先アドレスを出力し、ジャン
    プ先アドレスの出力を開始したことを示す情報をプログ
    ラムカウンタステータス信号へ出力し、 また、インダイレクトジャンプのジャンプ先アドレスを
    出力しているときは、単にダイレクトジャンプの実行あ
    るいは分岐成功の条件分岐命令を実行したことを示す情
    報を前記プログラムカウンタステータス信号へ出力する
    こと、 を特徴とする請求項14,15,16又は17記載のマ
    イクロプロセッサ。
  19. 【請求項19】 前記プロセッサコアは、命令が実行さ
    れたときに有効になるパイプライン実行信号を出力し、 前記プログラムカウンタトレース信号は、前記プロセッ
    サコアから前記パイプライン実行信号を入力して、前記
    パイプライン実行信号が有効なとき、命令が前記プロセ
    ッサコアで実行されたことを示す情報を前記プログラム
    カウンタステータス信号へ出力し、 前記パイプライン実行信号が無効なとき、命令が実行さ
    れなかったことを示す情報を前記プログラムカウンタス
    テータス信号へ出力すること、 を特徴とする請求項13,14,15,16,17又は
    18記載のマイクロプロセッサ。
  20. 【請求項20】 前記プログラムカウンタトレース回路
    が、第1のインダイレクトジャンプ先アドレスを出力し
    ているときに、前記プロセッサコアが、第2のインダイ
    レクトジャンプ命令を実行したとき、 前記プロセッサコアは、第2のインダイレクトジャンプ
    命令を実行したときに、それを示すインダイレクトジャ
    ンプ有効信号を有効にし、第2のインダイレクトジャン
    プ命令のジャンプ先アドレスの値を前記プログラムカウ
    ンタトレース回路へ出力し、また、プロセッサコア停止
    信号が有効になると、実行を一時停止し、 前記プログラムカウンタトレース回路は、第2のインダ
    イレクトジャンプに対応する前記インダイレクトジャン
    プ有効信号が有効になると、前記プロセッサコア停止信
    号を有効にし、第1のジャンプ先アドレスの出力を完了
    させ、次に前記プロセッサコアから第2のインダイレク
    トジャンプのジャンプ先アドレスを入力し、 第2のインダイレクトジャンプのジャンプ先アドレスを
    前記プログラムカウンタ出力信号へ出力し、ジャンプ先
    アドレスの出力を開始したことを示す情報をプログラム
    カウンタステータス信号へ出力すること、 を特徴とする請求項13記載のマイクロプロセッサ。
  21. 【請求項21】 前記プログラムカウンタトレース回路
    が、第1のインダイレクトジャンプ先アドレスを出力し
    ているときに、前記プロセッサコアが、第2のインダイ
    レクトジャンプ命令を実行したとき、 前記プロセッサコアは、第2のインダイレクトジャンプ
    命令を実行したときに、それを示すインダイレクトジャ
    ンプ有効信号を有効にし、第2のインダイレクトジャン
    プ命令のジャンプ先アドレスの値を前記プログラムカウ
    ンタトレース回路へ出力し、また、プロセッサコア停止
    信号が有効になると、実行を一時停止し、 前記プログラムカウンタトレース回路は、インダイレク
    トジャンプのジャンプ先出力を完全に行なうかどうかを
    示すトレースモード信号入力を持ち、 インダイレクトジャンプのジャンプ先を完全に出力する
    モードでは、第2のインダイレクトジャンプに対応する
    前記インダイレクトジャンプ有効信号が有効になると、
    前記プロセッサコア停止信号を有効にし、第1のジャン
    プ先アドレスの出力を完了させ、次に前記プロセッサコ
    アから第2のインダイレクトジャンプのジャンプ先アド
    レスを入力し、第2のインダイレクトジャンプのジャン
    プ先アドレスを前記プログラムカウンタ出力信号へ出力
    し、ジャンプ先アドレスの出力を開始したことを示す情
    報をプログラムカウンタステータス信号へ出力し、 インダイレクトジャンプのジャンプ先を完全には出力し
    ないモードでは、 第2のインダイレクトジャンプに対応する前記インダイ
    レクトジャンプ有効信号が有効になると、前記プロセッ
    サコアから第2のインダイレクトジャンプのジャンプ先
    アドレスを入力し、第1のインダイレクトジャンプのジ
    ャンプ先アドレスの出力を中止して、第2のインダイレ
    クトジャンプのジャンプ先アドレスを前記プログラムカ
    ウンタ出力信号へ出力し、ジャンプ先アドレスの出力を
    開始したことを示す情報をプログラムカウンタステータ
    ス信号へ出力すること、 を特徴とする請求項13記載のマイクロプロセッサ。
  22. 【請求項22】 前記プロセッサコアは、ユーザープロ
    グラムとユーザーターゲットシステムをデバッグするモ
    ニタプログラムを実行し、ユーザープログラムの実行中
    にモニタプログラムへ移行するための割り込み又は例外
    が、外部から要求されると、ユーザープログラムの実行
    を中断し、モニタプログラムへジャンプしてモニタプロ
    グラムの命令フェッチを行ない、 前記プログラムカウンタトレース回路は、前記プロセッ
    サコアがモニタプログラムへジャンプしたときでも、ジ
    ャンプのターゲットアドレスあるいは例外コードを出力
    しているときは、これらの出力を完了するまで、前記プ
    ロセッサコアの命令フェッチを遅らせること、 を特徴とする請求項13,14,15,16,17,1
    8,19,20又は21記載のマイクロプロセッサ。
  23. 【請求項23】 プログラムを実行するプロセッサコア
    と、 設定したアドレスとアクセスされたアドレスが一致した
    とき、あるいは設定したアドレスとデータがアクセスさ
    れたアドレスとデータに一致したときに、前記プロセッ
    サコアへブレークを要求するか、トリガ出力要求信号を
    有効にするブレーク回路と、 前記ブレーク回路からのトリガ出力要求信号が有効にな
    ったとき、外部ステータス信号を有効にするプログラム
    カウンタトレース回路を有することを特徴とするマイク
    ロプロセッサ。
  24. 【請求項24】 前記プログラムカウンタトレース回路
    は、前記プロセッサコアの内部状態情報をコード化して
    外部ステータス信号に出力し、前記プロセッサコアが第
    1の内部状態であるときは、前記トリガ出力要求信号が
    有効になっても、その情報を外部ステータス信号に出力
    せずに、トリガ要求がないときと同じ内部状態の情報を
    外部ステータス信号へ出力し、前記プロセッサコアが第
    2の内部状態であるときは、前記トリガ出力要求信号が
    有効になると、トリガが発生したことを示す情報を外部
    ステータス信号へ出力することを特徴とする請求項23
    記載のマイクロプロセッサ。
  25. 【請求項25】 前記第1の内部状態は、ジャンプ命令
    の実行、あるいは例外の発生であり、前記第2の内部状
    態は、命令のシーケンシャル実行、あるいはパイプライ
    ンストールであることを特徴とする請求項24記載のマ
    イクロプロセッサ。
JP7341675A 1994-12-28 1995-12-27 マイクロプロセッサ及びデバッグシステム Expired - Lifetime JP2974601B2 (ja)

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)

* Cited by examiner, † Cited by third party
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调试方法及系统

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