JPH05120071A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH05120071A JPH05120071A JP3306901A JP30690191A JPH05120071A JP H05120071 A JPH05120071 A JP H05120071A JP 3306901 A JP3306901 A JP 3306901A JP 30690191 A JP30690191 A JP 30690191A JP H05120071 A JPH05120071 A JP H05120071A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- execution
- address
- data processing
- bus
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【目的】 キャッシュメモリを内蔵し命令をプリフェッ
チするデータ処理装置において、内蔵キャッシュの使用
を許容した状態で内部情報を含めた実行命令トレース及
び実行命令のソフトウェアカバレジ率を実時間的に取得
する。 【構成】 マイクロプロセッサ1は外部トレースサイク
ルモードを有する。この動作モードは特定の命令で制御
レジスタ80に設定され、命令実行毎に、即ち命令の実
行終了によってアサートされる信号98の変化に同期し
て、外部トレースサイクルを発行し、プログラムカウン
タ2が保持する実行命令アドレスをアドレスバス22に
出力し、データバス21には命令長レジスタ93が保持
する命令長を出力する。外部トレースサイクルか否かは
バスアクセスタイプ信号BATによって外部に示され
る。エミュレータは外部トレースサイクルで出力される
情報を取り込んでからデータコンプリート信号DC*を
返し、これを待ってマイクロプロセッサは外部トレース
サイクルを終了する。
チするデータ処理装置において、内蔵キャッシュの使用
を許容した状態で内部情報を含めた実行命令トレース及
び実行命令のソフトウェアカバレジ率を実時間的に取得
する。 【構成】 マイクロプロセッサ1は外部トレースサイク
ルモードを有する。この動作モードは特定の命令で制御
レジスタ80に設定され、命令実行毎に、即ち命令の実
行終了によってアサートされる信号98の変化に同期し
て、外部トレースサイクルを発行し、プログラムカウン
タ2が保持する実行命令アドレスをアドレスバス22に
出力し、データバス21には命令長レジスタ93が保持
する命令長を出力する。外部トレースサイクルか否かは
バスアクセスタイプ信号BATによって外部に示され
る。エミュレータは外部トレースサイクルで出力される
情報を取り込んでからデータコンプリート信号DC*を
返し、これを待ってマイクロプロセッサは外部トレース
サイクルを終了する。
Description
【0001】
【産業上の利用分野】本発明は、マイクロコンピュータ
若しくはマイクロプロセッサのようなデータ処理装置に
関し、例えば命令キャッシュメモリを内蔵しパイプライ
ン処理に伴って命令プリフェッチを行うデータ処理装置
の応用システムに対するデバッグにおける実行命令のト
レース及び実行命令のソフトウェアカバレジ率を実時間
で取得するのに適用して有効な技術に関する。
若しくはマイクロプロセッサのようなデータ処理装置に
関し、例えば命令キャッシュメモリを内蔵しパイプライ
ン処理に伴って命令プリフェッチを行うデータ処理装置
の応用システムに対するデバッグにおける実行命令のト
レース及び実行命令のソフトウェアカバレジ率を実時間
で取得するのに適用して有効な技術に関する。
【0002】
【従来の技術】マイクロプロセッサのようなデータ処理
装置の応用システムに対するソフトウェアデバッグ若し
くはシステムデバッグをエミュレータで行うとき、この
エミュレータに搭載されたマイクロプロセッサがターゲ
ットプログラムを実行しながらターゲットシステムを代
行制御する。このとき、エミュレータとターゲットシス
テムとの間でやりとりされるデータや命令アドレスなど
は例えばバスサイクル単位で順次トレースされ、トレー
スされた情報に基づいてターゲットプログラムの実行状
態などが解析される。
装置の応用システムに対するソフトウェアデバッグ若し
くはシステムデバッグをエミュレータで行うとき、この
エミュレータに搭載されたマイクロプロセッサがターゲ
ットプログラムを実行しながらターゲットシステムを代
行制御する。このとき、エミュレータとターゲットシス
テムとの間でやりとりされるデータや命令アドレスなど
は例えばバスサイクル単位で順次トレースされ、トレー
スされた情報に基づいてターゲットプログラムの実行状
態などが解析される。
【0003】ここで、エミュレーションに際して前記マ
イクロプロセッサが実行する命令のアドレスモニタ若し
くはトレースは、マイクロプロセッサによる命令フェッ
チのための外部バスサイクルをモニタすることによって
行われてきた。今日データ処理装置の高性能化に伴い、
内部データ処理のパイプライン化、キャッシュメモリの
内蔵化が行われている。こうしたデータ処理装置では以
下に掲げる二つの問題点により、命令フェッチのための
外部バスサイクルをモニタしていたのでは実行命令を完
全にトレースすることができない。第1の問題点は、分
岐命令が実行された場合、プリフェッチされた複数の命
令は全て実行されるとは限らず、プリフェッチされた後
に実行されない命令アドレスもそのプリフェッチのため
に起動されたバスサイクルを介してトレースされている
ことである。第2の問題点は、命令フェッチのためのア
ドレスが内蔵命令キャッシュメモリにヒットした場合、
命令フェッチの外部バスサイクルが発生せず、外部でそ
の実行命令アドレスをモニタすることができないことで
ある。
イクロプロセッサが実行する命令のアドレスモニタ若し
くはトレースは、マイクロプロセッサによる命令フェッ
チのための外部バスサイクルをモニタすることによって
行われてきた。今日データ処理装置の高性能化に伴い、
内部データ処理のパイプライン化、キャッシュメモリの
内蔵化が行われている。こうしたデータ処理装置では以
下に掲げる二つの問題点により、命令フェッチのための
外部バスサイクルをモニタしていたのでは実行命令を完
全にトレースすることができない。第1の問題点は、分
岐命令が実行された場合、プリフェッチされた複数の命
令は全て実行されるとは限らず、プリフェッチされた後
に実行されない命令アドレスもそのプリフェッチのため
に起動されたバスサイクルを介してトレースされている
ことである。第2の問題点は、命令フェッチのためのア
ドレスが内蔵命令キャッシュメモリにヒットした場合、
命令フェッチの外部バスサイクルが発生せず、外部でそ
の実行命令アドレスをモニタすることができないことで
ある。
【0004】前記第1の問題点を解決する技術として、
特開平2−150932号公報に記載のように、分岐命
令が実行された場合に分岐先アドレスを外部に出力する
方式が提案されている。第2の問題点を解決する技術と
して、内蔵命令キャッシュメモリを使用禁止として実行
命令アドレスをトレースする手法が、エムシー6802
0 32ビットマイクロプロセッサユーザズマニュア
ル、プレンティスホール、1984、第7章(MC68
020 32bit Microprocessor
User’s Manual,Prentice Ha
ll,1984,Section7)に記載されてい
る。また、その他に内蔵命令キャッシュメモリを分岐命
令実行時に限り使用禁止とする技術が、特開昭63−2
84644号公報に記載されている。
特開平2−150932号公報に記載のように、分岐命
令が実行された場合に分岐先アドレスを外部に出力する
方式が提案されている。第2の問題点を解決する技術と
して、内蔵命令キャッシュメモリを使用禁止として実行
命令アドレスをトレースする手法が、エムシー6802
0 32ビットマイクロプロセッサユーザズマニュア
ル、プレンティスホール、1984、第7章(MC68
020 32bit Microprocessor
User’s Manual,Prentice Ha
ll,1984,Section7)に記載されてい
る。また、その他に内蔵命令キャッシュメモリを分岐命
令実行時に限り使用禁止とする技術が、特開昭63−2
84644号公報に記載されている。
【0005】
【発明が解決しようとする課題】しかしながら、キャッ
シュメモリを内蔵するデータ処理装置は通常そのキャッ
シュメモリを使用して動作されることを考慮すれば、前
記従来技術のうち内蔵キャッシュメモリを使用禁止とし
て実行命令アドレスをトレースする技術では、デバッグ
すべきプログラムの本来の通常動作タイミングとは異な
るタイミングでしか実行命令をトレースする事ができ
ず、デバッグの信頼性が低下してしまう。
シュメモリを内蔵するデータ処理装置は通常そのキャッ
シュメモリを使用して動作されることを考慮すれば、前
記従来技術のうち内蔵キャッシュメモリを使用禁止とし
て実行命令アドレスをトレースする技術では、デバッグ
すべきプログラムの本来の通常動作タイミングとは異な
るタイミングでしか実行命令をトレースする事ができ
ず、デバッグの信頼性が低下してしまう。
【0006】また、分岐先アドレスを外部に出力する前
記従来技術では、同一の分岐先アドレスをもつ分岐命令
が、プリフェッチされた命令群に2つ以上存在すると
き、どの分岐命令が実行されたか判別がつかないという
問題点がある。また、命令の実行順序を変更させる要因
の一つとして割込みがあるが、このときには、割込みハ
ンドラに処理が移る前に行われるスタックへの復帰アド
レスの退避をエミュレータでモニタし、割込みがどこで
受け付けられたかを解析する必要があり、その処理は比
較的複雑であり処理に時間がかかるという問題点があ
る。
記従来技術では、同一の分岐先アドレスをもつ分岐命令
が、プリフェッチされた命令群に2つ以上存在すると
き、どの分岐命令が実行されたか判別がつかないという
問題点がある。また、命令の実行順序を変更させる要因
の一つとして割込みがあるが、このときには、割込みハ
ンドラに処理が移る前に行われるスタックへの復帰アド
レスの退避をエミュレータでモニタし、割込みがどこで
受け付けられたかを解析する必要があり、その処理は比
較的複雑であり処理に時間がかかるという問題点があ
る。
【0007】一方、デバッグの一環として、デバッグ対
象とされるデータ処理装置のソフトウェア即ちターゲッ
トプログラムのうちどれだけの部分が実行されたかとい
う、所謂実行命令のソフトウェアカバレジ率を知りたい
という要求がある。実行すべきターゲットプログラムの
全てのステップが実行されなければそのソフトウェアに
バグがあると予想されるからである。前記実行命令のソ
フトウェアカバレジ率を知るには、命令実行順序を変更
させるような分岐命令や割込み受付の直前の実行命令の
命令長をエミュレータ側で知る必要がある。そのような
分岐命令や割込み受付の直前の実行命令の命令長を知ら
なければ、実行順序の変更によって実行が見送られた先
頭命令のアドレスを得ることができないからである。し
たがって、可変長命令の場合には前記命令長を得ること
は必須とされる。エミュレーション途上において斯る命
令長を直接取得できない場合には、それらの命令をエミ
ュレータで逆アセンブルして命令長を調べる処理が必要
になり、実行命令のソフトウェアカバレジ率を実時間的
に取得することは到底不可能になる。この点に関し、従
来技術では、トレース情報として得られるのは実行命令
アドレスのみであり、命令長などの内部情報をエミュレ
ーション途上で取得するにはターゲットプログラムに内
部情報を出力させる特別の命令を個別的に挿入するか、
実時間取得をあきらめて命令実行毎に割込みを入れる命
令の逐次実行をせざるを得ないという問題があった。
象とされるデータ処理装置のソフトウェア即ちターゲッ
トプログラムのうちどれだけの部分が実行されたかとい
う、所謂実行命令のソフトウェアカバレジ率を知りたい
という要求がある。実行すべきターゲットプログラムの
全てのステップが実行されなければそのソフトウェアに
バグがあると予想されるからである。前記実行命令のソ
フトウェアカバレジ率を知るには、命令実行順序を変更
させるような分岐命令や割込み受付の直前の実行命令の
命令長をエミュレータ側で知る必要がある。そのような
分岐命令や割込み受付の直前の実行命令の命令長を知ら
なければ、実行順序の変更によって実行が見送られた先
頭命令のアドレスを得ることができないからである。し
たがって、可変長命令の場合には前記命令長を得ること
は必須とされる。エミュレーション途上において斯る命
令長を直接取得できない場合には、それらの命令をエミ
ュレータで逆アセンブルして命令長を調べる処理が必要
になり、実行命令のソフトウェアカバレジ率を実時間的
に取得することは到底不可能になる。この点に関し、従
来技術では、トレース情報として得られるのは実行命令
アドレスのみであり、命令長などの内部情報をエミュレ
ーション途上で取得するにはターゲットプログラムに内
部情報を出力させる特別の命令を個別的に挿入するか、
実時間取得をあきらめて命令実行毎に割込みを入れる命
令の逐次実行をせざるを得ないという問題があった。
【0008】更に、エミュレータがデータ処理装置のバ
スサイクル単位でデータやアドレスなどのバス情報をサ
ンプリングしたりトレースしていく場合に、データ処理
装置が高速化されるのに伴い、データ処理装置とエミュ
レータを接続するバスの不所望な遅延成分などによって
各種バス情報を確実にサンプリング若しくはトレースす
ることが困難になってきている。
スサイクル単位でデータやアドレスなどのバス情報をサ
ンプリングしたりトレースしていく場合に、データ処理
装置が高速化されるのに伴い、データ処理装置とエミュ
レータを接続するバスの不所望な遅延成分などによって
各種バス情報を確実にサンプリング若しくはトレースす
ることが困難になってきている。
【0009】本発明の目的は、内蔵命令キャッシュメモ
リを利用しても実行命令を実時間的に外部でトレース可
能にするデータ処理装置を提供することにある。本発明
の別の目的は、命令をプリフェッチして実行していくと
きに、実行すべき命令の順番が変化されても、実行命令
を実時間的に外部でトレース可能にするデータ処理装置
を提供することにある。本発明の更に別の目的は、実行
命令のソフトウェアカバレジ率を実時間的に取得可能に
するデータ処理装置を提供することにある。ここで、実
時間的とは、デバッグ対象プログラムの本来の若しくは
それが企図する動作タイミングから大幅に遅れることな
く若しくはその動作タイミングを保証し、あるいはその
動作タイミングに追従的であるという意味に把握するこ
とができる。
リを利用しても実行命令を実時間的に外部でトレース可
能にするデータ処理装置を提供することにある。本発明
の別の目的は、命令をプリフェッチして実行していくと
きに、実行すべき命令の順番が変化されても、実行命令
を実時間的に外部でトレース可能にするデータ処理装置
を提供することにある。本発明の更に別の目的は、実行
命令のソフトウェアカバレジ率を実時間的に取得可能に
するデータ処理装置を提供することにある。ここで、実
時間的とは、デバッグ対象プログラムの本来の若しくは
それが企図する動作タイミングから大幅に遅れることな
く若しくはその動作タイミングを保証し、あるいはその
動作タイミングに追従的であるという意味に把握するこ
とができる。
【0010】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0011】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0012】すなわち、システムデバッグ若しくはソフ
トウェアデバッグに際して、データ処理装置の内蔵命令
キャッシュメモリを利用するという点、並びに、プリフ
ェッチされた命令が割り込みや分岐に起因して全て実行
されるとは限らないという点などに関しては、命令を実
行する毎にその実行命令アドレスを外部に通知する第1
の動作モードを備えるようにし、また、ソフトウェアカ
バレジ率の取得という点などに関しては、命令実行に伴
って発生するデータ処理装置の内部状態を示す内部情報
例えば実行命令の命令長を外部に通知する第2の動作モ
ードを備えるようにするものである。双方の動作モード
は単一の動作モードとして把握することもできる。
トウェアデバッグに際して、データ処理装置の内蔵命令
キャッシュメモリを利用するという点、並びに、プリフ
ェッチされた命令が割り込みや分岐に起因して全て実行
されるとは限らないという点などに関しては、命令を実
行する毎にその実行命令アドレスを外部に通知する第1
の動作モードを備えるようにし、また、ソフトウェアカ
バレジ率の取得という点などに関しては、命令実行に伴
って発生するデータ処理装置の内部状態を示す内部情報
例えば実行命令の命令長を外部に通知する第2の動作モ
ードを備えるようにするものである。双方の動作モード
は単一の動作モードとして把握することもできる。
【0013】ソフトウェアデバッグやシステムデバッグ
において行われる各種バス情報の取得という点を考する
と、実行命令アドレスやその命令長等を外部に通知する
手法としては、命令を実行する毎に特定のバスサイクル
を起動して行うようにすることが簡単である。このと
き、データ処理装置が高速動作される場合に前記バスサ
イクルで外部に通知された情報の受け渡しを確実化する
には、前記バスサイクルの終了タイミングを外部とハン
ドシェークで制御することが望ましい。また、前記動作
モードの設定を容易化するには、前記第1の動作モード
及び第2の動作モードを設定するための内部制御レジス
タを所定の内部アドレスに割り当てて配置し、所定の命
令を介して当該制御レジスタにデータ設定するように構
成するとよい。
において行われる各種バス情報の取得という点を考する
と、実行命令アドレスやその命令長等を外部に通知する
手法としては、命令を実行する毎に特定のバスサイクル
を起動して行うようにすることが簡単である。このと
き、データ処理装置が高速動作される場合に前記バスサ
イクルで外部に通知された情報の受け渡しを確実化する
には、前記バスサイクルの終了タイミングを外部とハン
ドシェークで制御することが望ましい。また、前記動作
モードの設定を容易化するには、前記第1の動作モード
及び第2の動作モードを設定するための内部制御レジス
タを所定の内部アドレスに割り当てて配置し、所定の命
令を介して当該制御レジスタにデータ設定するように構
成するとよい。
【0014】
【作用】上記した手段によれば、命令実行毎にその実行
命令アドレスを外部に通知する第1の動作モードは、内
蔵命令キャッシュメモリを利用してデバッグを行うと
き、キャッシュヒットにより命令フェッチのための外部
バスサイクルが起動されなくても、その命令が実際に実
行されたときに通知される当該実行命令アドレスによっ
て、実行命令のトレースを全体として可能にする。更に
第1の動作モードは、命令実行順序を変更させるような
分岐命令が実行されたり、割り込みが受け付けられた場
合にも、実行命令を順を追って追跡可能に実行命令アド
レスをトレース可能にする。
命令アドレスを外部に通知する第1の動作モードは、内
蔵命令キャッシュメモリを利用してデバッグを行うと
き、キャッシュヒットにより命令フェッチのための外部
バスサイクルが起動されなくても、その命令が実際に実
行されたときに通知される当該実行命令アドレスによっ
て、実行命令のトレースを全体として可能にする。更に
第1の動作モードは、命令実行順序を変更させるような
分岐命令が実行されたり、割り込みが受け付けられた場
合にも、実行命令を順を追って追跡可能に実行命令アド
レスをトレース可能にする。
【0015】命令実行毎にその実行命令に関する命令長
などの内部情報を外部に通知する第2の動作モードは、
ソフトウェアカバレジ率の取得を保証する。
などの内部情報を外部に通知する第2の動作モードは、
ソフトウェアカバレジ率の取得を保証する。
【0016】第1及び第2の動作モードの双方を採用す
ることは、内蔵命令キャッシュメモリを利用しつつ命令
をプリフェッチして実行するデータ処理装置に関するデ
バッグに際し、命令実行毎に順次外部に通知される実行
命令アドレスとその内部情報により、実時間的に内部情
報を含めた実行命令トレース並びに実行命令ソフトウエ
アカバレジ率の取得を可能とするように作用する。
ることは、内蔵命令キャッシュメモリを利用しつつ命令
をプリフェッチして実行するデータ処理装置に関するデ
バッグに際し、命令実行毎に順次外部に通知される実行
命令アドレスとその内部情報により、実時間的に内部情
報を含めた実行命令トレース並びに実行命令ソフトウエ
アカバレジ率の取得を可能とするように作用する。
【0017】
【実施例】図3には本発明の一実施例に係るマイクロプ
ロセッサを適用したエミュレータ並びにターゲットシス
テムの全体がブロック図で示される。
ロセッサを適用したエミュレータ並びにターゲットシス
テムの全体がブロック図で示される。
【0018】エミュレータ100はエミュレータ本体1
10とエミュレータボックス120から構成され、エミ
ュレータボックス120に搭載されたマイクロプロセッ
サ1がインタフェースケーブル130を介してターゲッ
トボード200のマイクロプロセッサ搭載コネクタ21
0に接続される。ターゲットボード200はソフトウェ
アデバッグ若しくはシステムデバッグ対象とされるター
ゲットシステムである。エミュレータ100に搭載され
るマイクロプロセッサ1は、前記ターゲットボード20
0のコネクタ210に搭載されるべきマイクロプロセッ
サと同等若しくは同じマイクロプロセッサである。この
マイクロプロセッサ1は、ターゲットボード200のコ
ネクタ210に搭載されるべきマイクロプロセッサに対
する評価専用プロセッサであってもよいが、本実施例で
は、双方のマイクロプロセッサは同一チップを利用した
同一のものである。即ち、マイクロプロセッサ1は、後
述するデバッグサポート機能を有している。尚、図にお
いて230はメモリ、220は当該メモリ230をター
ゲットボード200に接続するバスである。
10とエミュレータボックス120から構成され、エミ
ュレータボックス120に搭載されたマイクロプロセッ
サ1がインタフェースケーブル130を介してターゲッ
トボード200のマイクロプロセッサ搭載コネクタ21
0に接続される。ターゲットボード200はソフトウェ
アデバッグ若しくはシステムデバッグ対象とされるター
ゲットシステムである。エミュレータ100に搭載され
るマイクロプロセッサ1は、前記ターゲットボード20
0のコネクタ210に搭載されるべきマイクロプロセッ
サと同等若しくは同じマイクロプロセッサである。この
マイクロプロセッサ1は、ターゲットボード200のコ
ネクタ210に搭載されるべきマイクロプロセッサに対
する評価専用プロセッサであってもよいが、本実施例で
は、双方のマイクロプロセッサは同一チップを利用した
同一のものである。即ち、マイクロプロセッサ1は、後
述するデバッグサポート機能を有している。尚、図にお
いて230はメモリ、220は当該メモリ230をター
ゲットボード200に接続するバスである。
【0019】図3のシステムにおいて、マイクロプロセ
ッサ1は、ターゲットボード200のために開発され若
しくは開発途上のターゲットプログラムを実行してター
ゲットボード200を代行制御する。斯る代行制御途上
においてターゲットボード200との間でやりとりされ
るアドレス並びにデータなどの各種バス情報や制御信号
などはエミュレータインタフェース122を介してエミ
ュレータ本体110に与えられ、例えばマイクロプロセ
ッサ1のバスサイクルに従ってその情報がトレースメモ
リ112にトレースされ、また、その情報がエミュレー
タ本体110の制御部111に与えられてエミュレーシ
ョン制御などに供される。エミュレーションを行うに当
たり、前記マイクロプロセッサ1のデバッグサポート機
能に対する初期設定若しくは条件設定は、前記制御部1
11の指示に基づいてエミュレータインタフェース12
2を介して行われる。尚、エミュレータ本体110は図
示しないシステム開発装置などと接続される。
ッサ1は、ターゲットボード200のために開発され若
しくは開発途上のターゲットプログラムを実行してター
ゲットボード200を代行制御する。斯る代行制御途上
においてターゲットボード200との間でやりとりされ
るアドレス並びにデータなどの各種バス情報や制御信号
などはエミュレータインタフェース122を介してエミ
ュレータ本体110に与えられ、例えばマイクロプロセ
ッサ1のバスサイクルに従ってその情報がトレースメモ
リ112にトレースされ、また、その情報がエミュレー
タ本体110の制御部111に与えられてエミュレーシ
ョン制御などに供される。エミュレーションを行うに当
たり、前記マイクロプロセッサ1のデバッグサポート機
能に対する初期設定若しくは条件設定は、前記制御部1
11の指示に基づいてエミュレータインタフェース12
2を介して行われる。尚、エミュレータ本体110は図
示しないシステム開発装置などと接続される。
【0020】図1には前記マイクロプロセッサ1の一実
施例が示される。
施例が示される。
【0021】このマイクロプロセッサ1は、命令キャッ
シュメモリ(ICACHE)6とデータキャッシュメモ
リ(DCACHE)13を内蔵し、更に命令プリフェッ
チキュー(IPFQ)7に命令をプリフェッチしてパイ
プライン的に命令を実行する。パイプライン処理は、特
に制限されないが、命令プリフェッチ、命令デコード、
命令実行、オペランドアクセス、及び実行結果の書き込
みとされる。命令をプリフェッチするためののアドレス
演算は加算器4が行い、その結果はプリフェッチアドレ
スレジスタ3が保持する。特に制限されないが、命令プ
リフェッチキュー7への命令プリフェッチは8バイト
(64ビット)単位で行われる。これに呼応して前記演
算器4にはプリフェッチアドレスレジスタ(PAR)3
から帰還されたアドレスを8バイト分だけ先に進めるた
めの値+8が供給される。プリフェッチされた命令が実
行されるとき、現在実行中の命令アドレスはプログラム
カウンタ(PC)2が保持する。プログラムカウンタ2
が保持する実行命令アドレスは実行命令アドレス生成論
理30が形成する。即ち、実行命令アドレス生成論理3
0は、特に制限されないが、前記プリフェッチアドレス
レジスタ3の保持値及び後述する命令解釈部9からセレ
クタ15を経て供給される命令長並びに命令プリフェッ
チキュー7へのキューイング状態を示す情報などに基づ
いて現在実行中の命令アドレスを生成する。プログラム
カウンタ2が保持する実行命令アドレスはゲート14を
介して内部アドレスバス22に出力可能になっている。
シュメモリ(ICACHE)6とデータキャッシュメモ
リ(DCACHE)13を内蔵し、更に命令プリフェッ
チキュー(IPFQ)7に命令をプリフェッチしてパイ
プライン的に命令を実行する。パイプライン処理は、特
に制限されないが、命令プリフェッチ、命令デコード、
命令実行、オペランドアクセス、及び実行結果の書き込
みとされる。命令をプリフェッチするためののアドレス
演算は加算器4が行い、その結果はプリフェッチアドレ
スレジスタ3が保持する。特に制限されないが、命令プ
リフェッチキュー7への命令プリフェッチは8バイト
(64ビット)単位で行われる。これに呼応して前記演
算器4にはプリフェッチアドレスレジスタ(PAR)3
から帰還されたアドレスを8バイト分だけ先に進めるた
めの値+8が供給される。プリフェッチされた命令が実
行されるとき、現在実行中の命令アドレスはプログラム
カウンタ(PC)2が保持する。プログラムカウンタ2
が保持する実行命令アドレスは実行命令アドレス生成論
理30が形成する。即ち、実行命令アドレス生成論理3
0は、特に制限されないが、前記プリフェッチアドレス
レジスタ3の保持値及び後述する命令解釈部9からセレ
クタ15を経て供給される命令長並びに命令プリフェッ
チキュー7へのキューイング状態を示す情報などに基づ
いて現在実行中の命令アドレスを生成する。プログラム
カウンタ2が保持する実行命令アドレスはゲート14を
介して内部アドレスバス22に出力可能になっている。
【0022】前記プリフェッチアドレスレジスタ3が保
持するプリフェッチアドレスは、命令キャッシュメモリ
6に供給され、そのアドレスに対応するエントリが存在
する場合(キャッシュヒット)には対応命令が命令キャ
ッシュメモリ6から命令プリフェッチキュー7に供給さ
れる。対応エントリが命令キャッシュメモリ6に存在し
ない場合には命令用アドレス変換バッファ部(命令TL
B)5で変換された物理アドレスが内部アドレスバス2
2に供給される。このアドレスで外部メモリの番地を指
定してリードサイクルが起動され、内部データバス21
を介して命令がフェッチされる。このときフェッチされ
る命令は命令キャッシュメモリ6を通して行われ、当該
キャッシュメモリ6にはその命令が新たなエントリとし
て追加される。
持するプリフェッチアドレスは、命令キャッシュメモリ
6に供給され、そのアドレスに対応するエントリが存在
する場合(キャッシュヒット)には対応命令が命令キャ
ッシュメモリ6から命令プリフェッチキュー7に供給さ
れる。対応エントリが命令キャッシュメモリ6に存在し
ない場合には命令用アドレス変換バッファ部(命令TL
B)5で変換された物理アドレスが内部アドレスバス2
2に供給される。このアドレスで外部メモリの番地を指
定してリードサイクルが起動され、内部データバス21
を介して命令がフェッチされる。このときフェッチされ
る命令は命令キャッシュメモリ6を通して行われ、当該
キャッシュメモリ6にはその命令が新たなエントリとし
て追加される。
【0023】前記命令プリフェッチキュー7にプリフェ
ッチされた命令の解釈は命令解釈部9が行う。この命令
解釈部9は、特に制限されないが、命令デコーダ91、
マイクロプログラム部92、命令長レジスタ93、制御
回路94、及びセレクタ95,96などを含んで構成さ
れる。命令プリフェッチキュー7にプリフェッチされた
命令は、先入れ先出し形式で命令デコーダ91に供給さ
れる。命令デコーダ91は、これに供給される命令を解
読して命令実行に必要な各種制御信号を生成する。命令
制御方式により命令は2種類に分類される。第1種の命
令については命令デコーダ91による命令の解読で命令
実行に必要な所要の制御信号を生成する。これによって
生成される制御信号はセレクタ96を介して内部制御信
号97として各部に供給される。第2種の命令に対して
は、命令デコーダ91がこれを判定し、所要の情報をマ
イクロプログラム部92に与え、マイクロプログラムを
介して命令実行に必要な所要の制御信号を生成する。こ
のようにして生成される制御信号はセレクタ96を介し
て内部制御信号97として各部に供給される。命令の実
行終了を通知するための信号は上記命令の種別に応じて
命令デコーダ91又はマイクロプログラム部92から出
力されるが、その信号は前記セレクタ95を通して制御
信号98として後述する制御部8に与えられる。制御回
路94は命令解釈部9の制御を司る論理を有し、例えば
セレクタ95,96の選択制御を行う。尚、命令解釈部
9が処理する命令は可変長命令とされ、例えば基本命令
は16ビット長が基本とされ、高機能命令はその機能の
複雑さ等に従ってそれ以上の命令長を有するものもあ
る。
ッチされた命令の解釈は命令解釈部9が行う。この命令
解釈部9は、特に制限されないが、命令デコーダ91、
マイクロプログラム部92、命令長レジスタ93、制御
回路94、及びセレクタ95,96などを含んで構成さ
れる。命令プリフェッチキュー7にプリフェッチされた
命令は、先入れ先出し形式で命令デコーダ91に供給さ
れる。命令デコーダ91は、これに供給される命令を解
読して命令実行に必要な各種制御信号を生成する。命令
制御方式により命令は2種類に分類される。第1種の命
令については命令デコーダ91による命令の解読で命令
実行に必要な所要の制御信号を生成する。これによって
生成される制御信号はセレクタ96を介して内部制御信
号97として各部に供給される。第2種の命令に対して
は、命令デコーダ91がこれを判定し、所要の情報をマ
イクロプログラム部92に与え、マイクロプログラムを
介して命令実行に必要な所要の制御信号を生成する。こ
のようにして生成される制御信号はセレクタ96を介し
て内部制御信号97として各部に供給される。命令の実
行終了を通知するための信号は上記命令の種別に応じて
命令デコーダ91又はマイクロプログラム部92から出
力されるが、その信号は前記セレクタ95を通して制御
信号98として後述する制御部8に与えられる。制御回
路94は命令解釈部9の制御を司る論理を有し、例えば
セレクタ95,96の選択制御を行う。尚、命令解釈部
9が処理する命令は可変長命令とされ、例えば基本命令
は16ビット長が基本とされ、高機能命令はその機能の
複雑さ等に従ってそれ以上の命令長を有するものもあ
る。
【0024】前記命令解釈部9で生成されれた制御信号
97によって命令を実行するための実行ユニットは、レ
ジスタファイル10や算術論理演算器(ALU)11な
どの演算回路を含み、それらと内部データバス21と
は、特に制限されないが、データ入力レジスタ31及び
データ出力レジスタ32によってインタフェースされ
る。データキャッシュメモリ13は演算に利用されるデ
ータを保持し、セレクタ16を介して供給されるアドレ
スに対応するエントリが存在する場合には外部メモリア
クセスに代えてデータキャッシュメモリ13の保持デー
タが利用され、キャッシュミスの場合にはデータ用アド
レス変換バッファ部(データTLB)12を介して変換
された物理アドレスによって外部メモリがアクセスさ
れ、これによって内部データバス21に読み込まれたデ
ータが演算に利用される。
97によって命令を実行するための実行ユニットは、レ
ジスタファイル10や算術論理演算器(ALU)11な
どの演算回路を含み、それらと内部データバス21と
は、特に制限されないが、データ入力レジスタ31及び
データ出力レジスタ32によってインタフェースされ
る。データキャッシュメモリ13は演算に利用されるデ
ータを保持し、セレクタ16を介して供給されるアドレ
スに対応するエントリが存在する場合には外部メモリア
クセスに代えてデータキャッシュメモリ13の保持デー
タが利用され、キャッシュミスの場合にはデータ用アド
レス変換バッファ部(データTLB)12を介して変換
された物理アドレスによって外部メモリがアクセスさ
れ、これによって内部データバス21に読み込まれたデ
ータが演算に利用される。
【0025】制御部8は、割り込み制御のための論理、
外部とハンドシェークでバスサイクルを制御する制御論
理、各種バスアクセス制御信号を生成するための論理、
さらには各種制御用レジスタなどを有し、マイクロプロ
セッサ1の全体的な制御を行う。図にはデバッグモード
コントロールレジスタ(DMC)80、トレースモード
生成論理(TML)81、及びバス制御回路(BCON
T)82が代表的に示される。この制御部8は、命令ア
クセスやオペランドアクセスといったバスアクセスの種
別を複数ビットのコードで示すバスアクセスタイプ信号
BAT、リード/ライト信号R/W、バススタート信号
BS*(記号*が付された信号はローイネーブル信号で
あることを意味する)、アドレスストローブ信号AS*
などを外部に出力し、データコンプリート信号DC*や
割り込み信号IRQ*を外部から受ける。データコンプ
リート信号DC*は、アクセス先回路から出力され、ハ
ンドシェーク制御に利用される。このハンドシェーク制
御は、例えばマイクロプロセッサ1によるバスサイクル
の所定ステートにおいてデータコンプリート信号DC*
のレベルを判定し、ディスエーブルレベルである場合に
はそれがイネーブルレベルにされるまで単数若しくは複
数ステート分のウェイトサイクルを挿入することで実現
することができる。
外部とハンドシェークでバスサイクルを制御する制御論
理、各種バスアクセス制御信号を生成するための論理、
さらには各種制御用レジスタなどを有し、マイクロプロ
セッサ1の全体的な制御を行う。図にはデバッグモード
コントロールレジスタ(DMC)80、トレースモード
生成論理(TML)81、及びバス制御回路(BCON
T)82が代表的に示される。この制御部8は、命令ア
クセスやオペランドアクセスといったバスアクセスの種
別を複数ビットのコードで示すバスアクセスタイプ信号
BAT、リード/ライト信号R/W、バススタート信号
BS*(記号*が付された信号はローイネーブル信号で
あることを意味する)、アドレスストローブ信号AS*
などを外部に出力し、データコンプリート信号DC*や
割り込み信号IRQ*を外部から受ける。データコンプ
リート信号DC*は、アクセス先回路から出力され、ハ
ンドシェーク制御に利用される。このハンドシェーク制
御は、例えばマイクロプロセッサ1によるバスサイクル
の所定ステートにおいてデータコンプリート信号DC*
のレベルを判定し、ディスエーブルレベルである場合に
はそれがイネーブルレベルにされるまで単数若しくは複
数ステート分のウェイトサイクルを挿入することで実現
することができる。
【0026】次に本実施例のマイクロプロセッサ1が有
する外部トレースサイクルモードについて説明する。
する外部トレースサイクルモードについて説明する。
【0027】この外部トレースサイクルモードとは、命
令を実行する毎にその実行命令アドレスを外部に通知す
る第1の動作モードと、実行命令アドレスの通知に加え
て、命令実行に伴って発生するデータ処理装置の内部状
態を示す内部情報を外部に通知する第2の動作モードと
を含む動作モードである。本実施例に従えば、外部トレ
ースサイクルモードが設定されると、命令実行毎に外部
トレースサイクルと称するバスサイクルが起動され、そ
の実行された命令アドレス、当該命令の命令長、外部ト
レースサイクルであることを外部に指示するための「1
00」のコードを持つバスアクセスタイプ信号BATが
出力される。実行命令アドレスはプログラムカウンタ2
からゲート14及び内部アドレスバス22を介して、外
部アドレスバスADRSに出力される。内部情報例えば
命令長は、命令長レジスタ93からセレクタ15及び内
部データバス21を介して、外部データバスDATAに
出力される。即ち、外部トレースサイクルモードが設定
された状態において、命令解釈部9から出力される制御
信号98により制御部8に命令実行終了が通知される
と、制御部8は、制御信号24を介してゲート14及び
セレクタ15を制御し、プログラムカウンタ2の値を内
部アドレスバス22に出力させると共に、命令長レジス
タ93の値をデータバス21に出力させ、外部にはバス
制御回路82を介して前記外部トレースサイクルを発行
する。
令を実行する毎にその実行命令アドレスを外部に通知す
る第1の動作モードと、実行命令アドレスの通知に加え
て、命令実行に伴って発生するデータ処理装置の内部状
態を示す内部情報を外部に通知する第2の動作モードと
を含む動作モードである。本実施例に従えば、外部トレ
ースサイクルモードが設定されると、命令実行毎に外部
トレースサイクルと称するバスサイクルが起動され、そ
の実行された命令アドレス、当該命令の命令長、外部ト
レースサイクルであることを外部に指示するための「1
00」のコードを持つバスアクセスタイプ信号BATが
出力される。実行命令アドレスはプログラムカウンタ2
からゲート14及び内部アドレスバス22を介して、外
部アドレスバスADRSに出力される。内部情報例えば
命令長は、命令長レジスタ93からセレクタ15及び内
部データバス21を介して、外部データバスDATAに
出力される。即ち、外部トレースサイクルモードが設定
された状態において、命令解釈部9から出力される制御
信号98により制御部8に命令実行終了が通知される
と、制御部8は、制御信号24を介してゲート14及び
セレクタ15を制御し、プログラムカウンタ2の値を内
部アドレスバス22に出力させると共に、命令長レジス
タ93の値をデータバス21に出力させ、外部にはバス
制御回路82を介して前記外部トレースサイクルを発行
する。
【0028】外部トレースサイクルモードは前記デバッ
グモードコントロールレジスタ80に設定される。この
レジスタ80は、特に制限されないが、図2にその詳細
が示されるようにデバッグ関係の動作モードを制御する
ための32ビットのレジスタでり、そのうちのビット2
5−27の3ビットが、外部トレースサイクルモードを
設定するためのトレース制御フィールドSE(0−2)
とされる。この制御フィールドSE(0−2)に「11
1」が設定されたときにマイクロプロセッサ1は外部ト
レースサイクルモードとされる。デバッグモードコント
ロールレジスタ80にはアドレスが割り当てられ、例え
ば制御レジスタ操作命令のような所定の命令によって当
該レジスタ80にモード設定情報を書き込むことによっ
て動作モードの設定が行われる。
グモードコントロールレジスタ80に設定される。この
レジスタ80は、特に制限されないが、図2にその詳細
が示されるようにデバッグ関係の動作モードを制御する
ための32ビットのレジスタでり、そのうちのビット2
5−27の3ビットが、外部トレースサイクルモードを
設定するためのトレース制御フィールドSE(0−2)
とされる。この制御フィールドSE(0−2)に「11
1」が設定されたときにマイクロプロセッサ1は外部ト
レースサイクルモードとされる。デバッグモードコント
ロールレジスタ80にはアドレスが割り当てられ、例え
ば制御レジスタ操作命令のような所定の命令によって当
該レジスタ80にモード設定情報を書き込むことによっ
て動作モードの設定が行われる。
【0029】ここで前記デバッグモードコントロールレ
ジスタ80におけるその他のビットについて説明する
と、デバッグイネーブルビットDEは当該レジスタに設
定される各種デバッグ用の動作モードが有効か否かを示
すビットとみなされる。前記制御フィールドSE(0−
2)は全体としてトレースに関する制御ビットが設定さ
れ、「000」はトレースに関する特別な制御を行わな
いことを意味し、「001」は1命令実行毎にデバッグ
事象を検出すること即ちトレースを可能にするための特
別なサイクルを挿入することを指示し、「010」は無
条件分岐命令及び分岐が成立した条件分岐命令毎にデバ
ッグ事象を検出することを指示し、「011」は分岐命
令実行毎にデバッグ事象を検出することを指示する。本
実施例のマイクロプロセッサ1は、エミュレーションの
ためのブレークポイントアドレスを設定可能な図示しな
いブレークレジスタを有している。これに設定されたブ
レークポイントアドレスに対するリード動作を監視する
かライト動作を監視するかの動作モードは、それぞれビ
ットRE,WEに設定される。フィールドEEには命令
実行アドレスに関するブレーク監視の動作モードが設定
される。ビットCDは各種内蔵キャッシュメモリの制御
レジスタに対するアクセスを制御するビットとされ、ビ
ットMKはブレークポイントアドレスに対するマスクを
制御するビットとされる。
ジスタ80におけるその他のビットについて説明する
と、デバッグイネーブルビットDEは当該レジスタに設
定される各種デバッグ用の動作モードが有効か否かを示
すビットとみなされる。前記制御フィールドSE(0−
2)は全体としてトレースに関する制御ビットが設定さ
れ、「000」はトレースに関する特別な制御を行わな
いことを意味し、「001」は1命令実行毎にデバッグ
事象を検出すること即ちトレースを可能にするための特
別なサイクルを挿入することを指示し、「010」は無
条件分岐命令及び分岐が成立した条件分岐命令毎にデバ
ッグ事象を検出することを指示し、「011」は分岐命
令実行毎にデバッグ事象を検出することを指示する。本
実施例のマイクロプロセッサ1は、エミュレーションの
ためのブレークポイントアドレスを設定可能な図示しな
いブレークレジスタを有している。これに設定されたブ
レークポイントアドレスに対するリード動作を監視する
かライト動作を監視するかの動作モードは、それぞれビ
ットRE,WEに設定される。フィールドEEには命令
実行アドレスに関するブレーク監視の動作モードが設定
される。ビットCDは各種内蔵キャッシュメモリの制御
レジスタに対するアクセスを制御するビットとされ、ビ
ットMKはブレークポイントアドレスに対するマスクを
制御するビットとされる。
【0030】図4には外部トレースサイクルの一例タイ
ミングチャートが示される。同図においてCLKはマイ
クロプロセッサ1の動作基準クロック信号である。同図
において時刻t1からt3は命令プリフェッチのための
外部リードバスサイクルとされる。即ち、プリフェッチ
すべき命令は命令キャッシュメモリ6のキャッシュミス
により外部メモリからフェッチされる。当該命令フェッ
チバスサイクルにおいてバスアクセスタイプ信号BAT
は命令フェッチを意味する「001」とされる。外部バ
スアクセスサイクルにおいて前記制御部8特にバス制御
回路82はバスサイクル起動後における動作基準クロッ
ク信号の3サイクル目の立ち上がり変化に同期して(時
刻t2)データコンプリート信号DC*をサンプリング
し、ウェイトサイクルの挿入を判定する。この命令フェ
ッチのためのリードサイクルでは、そのタイミングが到
来する前に、アクセス対象とされるメモリから出力され
るデータコンプリート信号DC*がイネーブルレベル
(ローレベル)に変化されているため、ウェイトサイク
ルが挿入されずに時刻t3にバスサイクルが終了され
る。
ミングチャートが示される。同図においてCLKはマイ
クロプロセッサ1の動作基準クロック信号である。同図
において時刻t1からt3は命令プリフェッチのための
外部リードバスサイクルとされる。即ち、プリフェッチ
すべき命令は命令キャッシュメモリ6のキャッシュミス
により外部メモリからフェッチされる。当該命令フェッ
チバスサイクルにおいてバスアクセスタイプ信号BAT
は命令フェッチを意味する「001」とされる。外部バ
スアクセスサイクルにおいて前記制御部8特にバス制御
回路82はバスサイクル起動後における動作基準クロッ
ク信号の3サイクル目の立ち上がり変化に同期して(時
刻t2)データコンプリート信号DC*をサンプリング
し、ウェイトサイクルの挿入を判定する。この命令フェ
ッチのためのリードサイクルでは、そのタイミングが到
来する前に、アクセス対象とされるメモリから出力され
るデータコンプリート信号DC*がイネーブルレベル
(ローレベル)に変化されているため、ウェイトサイク
ルが挿入されずに時刻t3にバスサイクルが終了され
る。
【0031】この例に従えば、時刻t3においてマイク
ロプロセッサ1の内部では先にプリフェッチされた所定
の命令実行が終了されている。この状態が制御信号98
を介して制御部8に通知されることにより、その次には
外部トレースサイクルが起動される。この外部トレース
サイクルにおいて、アドレスバスADRSには直前に実
行終了された実行命令アドレス即ちプログラムカウンタ
2の値が出力され、データバスDATAにはその命令に
対応して命令長レジスタ93が保持している命令長が出
力される。このアクセスサイクルにおいてバスアクセス
タイプ信号BATは外部トレースサイクルを意味するコ
ード「100」とされる。図3で説明したエミュレータ
本体110はそれらの情報をエミュレータインタフェー
ス122を介してトレースメモリ112に格納して行
く。このとき、トレースメモリ112若しくは制御部1
11はその実行命令アドレス及び命令長をトレースメモ
リ112に書き込み完了若しくは書き込み動作確定と見
なされるタイミングを以てデータコンプリート信号DC
*をイネーブルレベルに変化させる。この例では、時刻
t4において未だデータコンプリート信号DC*がイネ
ーブルレベルに変化されていないため、それ以降ウェイ
トサイクルが挿入され、エミュレータ本体110からの
データコンプリート信号DC*による書き込み完了の応
答を待って時刻t5に外部トレースサイクルを終了す
る。このようなハンドシェーク制御により、高速動作す
るマイクロプロセッサ1に対しても実行命令アドレスと
命令長のトレースは確実に行われる。エミュレータ本体
110はトレースされた情報に基づいてソフトウェアカ
バレジ処理を並行して進めていくことができる。
ロプロセッサ1の内部では先にプリフェッチされた所定
の命令実行が終了されている。この状態が制御信号98
を介して制御部8に通知されることにより、その次には
外部トレースサイクルが起動される。この外部トレース
サイクルにおいて、アドレスバスADRSには直前に実
行終了された実行命令アドレス即ちプログラムカウンタ
2の値が出力され、データバスDATAにはその命令に
対応して命令長レジスタ93が保持している命令長が出
力される。このアクセスサイクルにおいてバスアクセス
タイプ信号BATは外部トレースサイクルを意味するコ
ード「100」とされる。図3で説明したエミュレータ
本体110はそれらの情報をエミュレータインタフェー
ス122を介してトレースメモリ112に格納して行
く。このとき、トレースメモリ112若しくは制御部1
11はその実行命令アドレス及び命令長をトレースメモ
リ112に書き込み完了若しくは書き込み動作確定と見
なされるタイミングを以てデータコンプリート信号DC
*をイネーブルレベルに変化させる。この例では、時刻
t4において未だデータコンプリート信号DC*がイネ
ーブルレベルに変化されていないため、それ以降ウェイ
トサイクルが挿入され、エミュレータ本体110からの
データコンプリート信号DC*による書き込み完了の応
答を待って時刻t5に外部トレースサイクルを終了す
る。このようなハンドシェーク制御により、高速動作す
るマイクロプロセッサ1に対しても実行命令アドレスと
命令長のトレースは確実に行われる。エミュレータ本体
110はトレースされた情報に基づいてソフトウェアカ
バレジ処理を並行して進めていくことができる。
【0032】図5には外部トレースサイクルの直前及び
直後にバスサイクルが起動されていないときの例が示さ
れる。同図における外部トレースサイクルの動作は図4
の場合と全く変わりない。外部トレースサイクルの前後
においてバスサイクルが起動されいない状態は、命令キ
ャッシュメモリ6のキャッシュヒットにより内蔵キャッ
シュメモリから命令をプリフェッチし、命令プリフェッ
チのために外部バスアクセスサイクルを起動しなくても
済む場合が想定される。
直後にバスサイクルが起動されていないときの例が示さ
れる。同図における外部トレースサイクルの動作は図4
の場合と全く変わりない。外部トレースサイクルの前後
においてバスサイクルが起動されいない状態は、命令キ
ャッシュメモリ6のキャッシュヒットにより内蔵キャッ
シュメモリから命令をプリフェッチし、命令プリフェッ
チのために外部バスアクセスサイクルを起動しなくても
済む場合が想定される。
【0033】上記実施例によれば以下の作用効果があ
る。
る。
【0034】(1)外部トレースサイクルモードを設定
することにより、予めプリフェッチされた命令が実際に
実行される毎に、その実行命令アドレスと命令長とを外
部に出力する外部トレースサイクルが起動されるから、
実行された命令が内蔵キャッシュメモリからフェッチさ
れたものであっても、実行された命令を簡単に順次外部
でトレースさせることができる。従って内蔵命令キャッ
シュメモリを使用可にした状態で命令長をも含めて実行
命令のトレースが可能になる。
することにより、予めプリフェッチされた命令が実際に
実行される毎に、その実行命令アドレスと命令長とを外
部に出力する外部トレースサイクルが起動されるから、
実行された命令が内蔵キャッシュメモリからフェッチさ
れたものであっても、実行された命令を簡単に順次外部
でトレースさせることができる。従って内蔵命令キャッ
シュメモリを使用可にした状態で命令長をも含めて実行
命令のトレースが可能になる。
【0035】(2)外部トレースサイクルによって外部
に出力される実行命令アドレス及び命令長は、プリフェ
ッチされて実際に実行完了された命令に関するものであ
るから、予めプリフェッチキュー7にプリフェッチされ
た命令のうち、割り込みや条件分岐等に起因して実行さ
れないことになった命令に関しては外部トレースサイク
ルの対象外とされ、そのような命令実行順序の変更に対
して特別な考慮を払わずに実行命令のトレースを行うこ
とができる。換言すれば、命令実行順序を変更させるよ
うな分岐命令が実行されたり、割り込みが受け付けられ
た場合にも、実行命令を順を追って追跡可能に実行命令
アドレスを取得していくことができるから、プリフェッ
チされた命令群に同一の分岐先アドレスをもつ分岐命令
が複数個存在するときにも、どの分岐命令が実行された
かの判別を簡単に行うことが可能になり、また、割込み
が受け付けられた場合にも、従来のように割込みハンド
ラに処理が移る前に行われるスタックへの復帰アドレス
の退避をエミュレータでモニタして割込みがどこで受け
付けられたかを解析するような手間のかかる処理は必要
とされない。
に出力される実行命令アドレス及び命令長は、プリフェ
ッチされて実際に実行完了された命令に関するものであ
るから、予めプリフェッチキュー7にプリフェッチされ
た命令のうち、割り込みや条件分岐等に起因して実行さ
れないことになった命令に関しては外部トレースサイク
ルの対象外とされ、そのような命令実行順序の変更に対
して特別な考慮を払わずに実行命令のトレースを行うこ
とができる。換言すれば、命令実行順序を変更させるよ
うな分岐命令が実行されたり、割り込みが受け付けられ
た場合にも、実行命令を順を追って追跡可能に実行命令
アドレスを取得していくことができるから、プリフェッ
チされた命令群に同一の分岐先アドレスをもつ分岐命令
が複数個存在するときにも、どの分岐命令が実行された
かの判別を簡単に行うことが可能になり、また、割込み
が受け付けられた場合にも、従来のように割込みハンド
ラに処理が移る前に行われるスタックへの復帰アドレス
の退避をエミュレータでモニタして割込みがどこで受け
付けられたかを解析するような手間のかかる処理は必要
とされない。
【0036】(3)実行命令アドレスや命令長を出力す
るための外部トレースサイクルは、エミュレータ本体1
10から供給されるデータコンプリート信号DC*に基
づいてハンドシェークでそのバスサイクルの終了タイミ
ングが制御されるから、マイクロプロセッサ1がその最
高周波数で動作した場合にも何等影響なく、確実に行わ
れる。
るための外部トレースサイクルは、エミュレータ本体1
10から供給されるデータコンプリート信号DC*に基
づいてハンドシェークでそのバスサイクルの終了タイミ
ングが制御されるから、マイクロプロセッサ1がその最
高周波数で動作した場合にも何等影響なく、確実に行わ
れる。
【0037】(4)外部トレースモードでは実行命令ア
ドレスに加えてその命令長も出力されるから、エミュレ
ーションの途中で割り込みや分岐を生じても、分岐命令
や割込み受付の直前の実行命令の命令長をエミュレータ
側で知ることができ、ソフトウェアカバレジ率を確実に
取得することができるようになる。
ドレスに加えてその命令長も出力されるから、エミュレ
ーションの途中で割り込みや分岐を生じても、分岐命令
や割込み受付の直前の実行命令の命令長をエミュレータ
側で知ることができ、ソフトウェアカバレジ率を確実に
取得することができるようになる。
【0038】(5)外部トレースサイクルによりトレー
スメモリ112に実行命令アドレスとその命令長を書き
込むための処理時間は例えば図5(A)に示される10
0nsのような比較的短い時間とされる。したがって、
ソフトウェアカバレジ率を取得するときは、エミュレー
ションに際して命令実行毎に100ns程度の外部トレ
ースサイクルを実行させるだけで済み、ソフトウェアカ
バレジ率を取得するための処理が高速化され、100n
s毎の外部トレースサイクルがエミュレーション動作に
追加されるものの実時間的に実行命令のソフトウエアカ
バレジ率を取得する事が可能になる。特にユーザプログ
ラム若しくはターゲットプログラムが大規模で処理に時
間がかかる場合にはその効果は顕著である。これに対し
て、全ての実行命令アドレスやその命令長を外部に出力
する機能を有しない従来の手法では、図5(B)に示さ
れるように、分岐命令の実行毎にカバレジ処理ハンドラ
を起動し、そのハンドラ中でバスモニタによって取得し
た命令の逆アセンブリングと命令長解析を行ってトレー
スメモリに書き込みを行わなければならないため、約1
0msといった比較的長い時間が必要とされ、ソフトウ
ェアカバレジ率を取得する場合には実時間的にエミュレ
ーションを行うことはできず、ターゲットプログラムに
含まれる命令の逐次実行でエミュレーションを行わざる
を得ないことがわかる。
スメモリ112に実行命令アドレスとその命令長を書き
込むための処理時間は例えば図5(A)に示される10
0nsのような比較的短い時間とされる。したがって、
ソフトウェアカバレジ率を取得するときは、エミュレー
ションに際して命令実行毎に100ns程度の外部トレ
ースサイクルを実行させるだけで済み、ソフトウェアカ
バレジ率を取得するための処理が高速化され、100n
s毎の外部トレースサイクルがエミュレーション動作に
追加されるものの実時間的に実行命令のソフトウエアカ
バレジ率を取得する事が可能になる。特にユーザプログ
ラム若しくはターゲットプログラムが大規模で処理に時
間がかかる場合にはその効果は顕著である。これに対し
て、全ての実行命令アドレスやその命令長を外部に出力
する機能を有しない従来の手法では、図5(B)に示さ
れるように、分岐命令の実行毎にカバレジ処理ハンドラ
を起動し、そのハンドラ中でバスモニタによって取得し
た命令の逆アセンブリングと命令長解析を行ってトレー
スメモリに書き込みを行わなければならないため、約1
0msといった比較的長い時間が必要とされ、ソフトウ
ェアカバレジ率を取得する場合には実時間的にエミュレ
ーションを行うことはできず、ターゲットプログラムに
含まれる命令の逐次実行でエミュレーションを行わざる
を得ないことがわかる。
【0039】(6)以上により、外部トレースモードを
設定しておけば、内蔵命令キャッシュメモリ6を利用し
つつ命令をプリフェッチしながらエミュレーションを行
う場合にも、内部情報を含む実行命令トレース及び実行
命令ソフトウェアカバレジの実時間取得が可能となる。
設定しておけば、内蔵命令キャッシュメモリ6を利用し
つつ命令をプリフェッチしながらエミュレーションを行
う場合にも、内部情報を含む実行命令トレース及び実行
命令ソフトウェアカバレジの実時間取得が可能となる。
【0040】以上本発明者によってなされた発明を実施
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。
【0041】例えば上記実施例では、命令を実行する毎
にその実行命令アドレスを外部に通知する第1の動作モ
ードと、命令実行に伴って発生するデータ処理装置の内
部状態を示す内部情報を外部に通知する第2の動作モー
ドとを含む外部トレースサイクルモードについて説明し
たが、デバッグに際してデータ処理装置の内蔵命令キャ
ッシュメモリを利用する点、並びに分岐等における実行
命令の追跡という点を特に考慮する場合には、第1の動
作モードだけを採用することができる。また、可変長命
令のソフトウェアカバレジを確実に取得することを特に
考慮する場合には第2の動作モードだけを採用すること
もできる。
にその実行命令アドレスを外部に通知する第1の動作モ
ードと、命令実行に伴って発生するデータ処理装置の内
部状態を示す内部情報を外部に通知する第2の動作モー
ドとを含む外部トレースサイクルモードについて説明し
たが、デバッグに際してデータ処理装置の内蔵命令キャ
ッシュメモリを利用する点、並びに分岐等における実行
命令の追跡という点を特に考慮する場合には、第1の動
作モードだけを採用することができる。また、可変長命
令のソフトウェアカバレジを確実に取得することを特に
考慮する場合には第2の動作モードだけを採用すること
もできる。
【0042】また、外部に通知可能にされる前記内部情
報は命令長であるとして説明したが、内部情報はそれに
限定されず、演算結果に対するオーバーフローフラグや
マイクロプロセッサの実行ステータスを示す各種フラグ
などであってもよい。また、動作モードの設定は制御レ
ジスタ操作命令を介して行うものに限定されず、モード
設定端子から供給されるモード信号のレベルの組み合わ
せなどによって直接或いはそのモード信号によってレジ
スタ操作命令を発行させたりして動作モードの設定を行
うようにしてもよい。またマイクロプロセッサは可変長
命令を実行するCISC型に限定されず、RISC型の
プロセッサであってもよい。マイクロプロセッサはその
他の周辺回路を内蔵してもよい。
報は命令長であるとして説明したが、内部情報はそれに
限定されず、演算結果に対するオーバーフローフラグや
マイクロプロセッサの実行ステータスを示す各種フラグ
などであってもよい。また、動作モードの設定は制御レ
ジスタ操作命令を介して行うものに限定されず、モード
設定端子から供給されるモード信号のレベルの組み合わ
せなどによって直接或いはそのモード信号によってレジ
スタ操作命令を発行させたりして動作モードの設定を行
うようにしてもよい。またマイクロプロセッサは可変長
命令を実行するCISC型に限定されず、RISC型の
プロセッサであってもよい。マイクロプロセッサはその
他の周辺回路を内蔵してもよい。
【0043】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるデバッ
グサポート機能付きのマイクロプロセッサに適用した場
合について説明したが、本発明はそれに限定されるもの
ではなく、エミュレーション専用の評価チップとしての
データ処理装置にも適用することができ、更にデバッグ
に利用される装置はエミュレータに限定されずロジック
アナライザのような装置であってもよい。
なされた発明をその背景となった利用分野であるデバッ
グサポート機能付きのマイクロプロセッサに適用した場
合について説明したが、本発明はそれに限定されるもの
ではなく、エミュレーション専用の評価チップとしての
データ処理装置にも適用することができ、更にデバッグ
に利用される装置はエミュレータに限定されずロジック
アナライザのような装置であってもよい。
【0044】本発明は、少なくともソフトウェアデバッ
グ若しくはシステムデバッグにおいて実行命令のトレー
スが必要とされる条件のデータ処理装置に広く適用する
ことができる。
グ若しくはシステムデバッグにおいて実行命令のトレー
スが必要とされる条件のデータ処理装置に広く適用する
ことができる。
【0045】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0046】すなわち、命令実行毎にその実行命令アド
レスを外部に通知することにより、内蔵命令キャッシュ
メモリを利用してデバッグを行うとき、キャッシュヒッ
トにより命令フェッチのための外部バスサイクルが起動
されなくても、その命令が実際に実行されたときに通知
される当該実行命令アドレスによって実行命令のトレー
スを全体として可能にすることができ、更に、命令実行
順序を変更させるような分岐命令が実行されたり、割り
込みが受け付けられた場合にも、実行命令を順を追って
追跡可能に実行命令アドレスをトレース可能にすること
ができるという効果がある。
レスを外部に通知することにより、内蔵命令キャッシュ
メモリを利用してデバッグを行うとき、キャッシュヒッ
トにより命令フェッチのための外部バスサイクルが起動
されなくても、その命令が実際に実行されたときに通知
される当該実行命令アドレスによって実行命令のトレー
スを全体として可能にすることができ、更に、命令実行
順序を変更させるような分岐命令が実行されたり、割り
込みが受け付けられた場合にも、実行命令を順を追って
追跡可能に実行命令アドレスをトレース可能にすること
ができるという効果がある。
【0047】さらに、命令実行毎にその実行命令に関す
る命令長などの内部情報を外部に通知することにより、
デバッグ途中で割り込みや分岐を生じても、分岐命令や
割込み受付の直前の実行命令の命令長を知ることがで
き、ソフトウェアカバレジ率の実時間的な取得を保証す
ることができるという効果がある。
る命令長などの内部情報を外部に通知することにより、
デバッグ途中で割り込みや分岐を生じても、分岐命令や
割込み受付の直前の実行命令の命令長を知ることがで
き、ソフトウェアカバレジ率の実時間的な取得を保証す
ることができるという効果がある。
【0048】以上の効果により、内蔵命令キャッシュメ
モリを利用しつつ命令をプリフェッチしながらデバッグ
を行う場合にも、内部情報を含む実行命令トレース及び
実行命令ソフトウェアカバレジの実時間取得が可能にな
るという効果がある。
モリを利用しつつ命令をプリフェッチしながらデバッグ
を行う場合にも、内部情報を含む実行命令トレース及び
実行命令ソフトウェアカバレジの実時間取得が可能にな
るという効果がある。
【0049】そして、それら情報を取得すべき外部装置
との間でデータ処理装置は斯る情報をハンドシェークで
通知することにより、データ処理装置がその最高周波数
で動作する場合にも前記情報の実時間的な取得を保証す
ることができるという効果がある。
との間でデータ処理装置は斯る情報をハンドシェークで
通知することにより、データ処理装置がその最高周波数
で動作する場合にも前記情報の実時間的な取得を保証す
ることができるという効果がある。
【図1】本発明に係るデータ処理装置の一実施例マイク
ロプロセッサのブロック図である。
ロプロセッサのブロック図である。
【図2】一実施例マイクロプロセッサに含まれるデバッ
グモードコントロールレジスタの詳細説明図である。
グモードコントロールレジスタの詳細説明図である。
【図3】一実施例マイクロプロセッサを適用したエミュ
レータ並びにターゲットシステムの全体ブロック図であ
る。
レータ並びにターゲットシステムの全体ブロック図であ
る。
【図4】外部トレースモードによって実現される外部ト
レースサイクルの一例タイミングチャートである。
レースサイクルの一例タイミングチャートである。
【図5】外部トレースサイクルの前後において命令フェ
ッチバスサイクルが起動されない場合の一例タイミング
チャートである。
ッチバスサイクルが起動されない場合の一例タイミング
チャートである。
【図6】ソフトウェアカバレジ処理の説明図であり、
(A)には外部トレースサイクルを利用した場合の処理
が示され、(B)には従来の一例処理が示される。
(A)には外部トレースサイクルを利用した場合の処理
が示され、(B)には従来の一例処理が示される。
【図7】プリフェッチされた命令群に同一分岐先アドレ
スが含まれる場合の一例説明図である。
スが含まれる場合の一例説明図である。
1 マイクロプロセッサ 2 プログラムカウンタ 3 プリフェッチアドレスレジスタ 5 命令用アドレス変換バッファ 6 命令キャッシュメモリ 7 命令プリフェッチキュー 8 制御部 80 デバッグモードコントロールレジスタ SE(0−2) トレース制御フィールド 81 トレースモード生成論理 82 バス制御回路 DC* データコンプリート信号 BAT バスアクセスタイプ信号 9 命令解釈部 91 命令デコーダ 92 マイクロプログラム部 93 命令長レジスタ 94 制御回路 14 ゲート 15 セレクタ 21 データバス 22 アドレスバス 100 エミュレータ 110 エミュレータ本体 112 トレースメモリ 120 エミュレータボックス 200 ターゲットボード
───────────────────────────────────────────────────── フロントページの続き (72)発明者 松井 重純 東京都小平市上水本町5丁目20番1号 株 式会社日立製作所武蔵工場内
Claims (7)
- 【請求項1】 命令キャッシュメモリを内蔵して命令を
実行するデータ処理装置において、命令を実行する毎に
その実行命令アドレスを外部に通知する第1の動作モー
ドを有するものであることを特徴とするデータ処理装
置。 - 【請求項2】 可変長命令を実行可能なデータ処理装置
において、命令を実行する毎にその実行命令の命令長を
外部に通知する第2の動作モードを有するものであるこ
とを特徴とするデータ処理装置。 - 【請求項3】 命令キャッシュメモリを内蔵すると共に
命令のプリフェッチを行って命令を実行するデータ処理
装置において、命令を実行する毎にその実行命令アドレ
スを外部に通知する第1の動作モードと、実行命令アド
レスに加えてその命令実行に伴って発生するデータ処理
装置の内部状態を示す内部情報を外部に通知する第2の
動作モードと、を有するものであることを特徴とするデ
ータ処理装置。 - 【請求項4】 前記第1及び第2の動作モードが有効と
された状態において、命令実行毎にその実行命令アドレ
スと当該命令に関する内部情報とを外部に出力するため
のバスサイクルを起動する制御部を有するものである請
求項3記載のデータ処理装置。 - 【請求項5】 前記制御部は、前記バスサイクルの終了
タイミングを外部とハンドシェークで制御するバス制御
回路を有するものである請求項4記載のデータ処理装
置。 - 【請求項6】 所定のアドレスが割り当てられ、前記第
1の動作モード及び第2の動作モードを設定するための
内部制御レジスタを有するものである請求項3乃至5の
何れか1項記載のデータ処理装置。 - 【請求項7】 前記第1の動作モード及び第2の動作モ
ードを設定するための外部信号を受けるモード端子を有
するものである請求項3乃至5の何れか1項記載のデー
タ処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3306901A JPH05120071A (ja) | 1991-10-25 | 1991-10-25 | データ処理装置 |
KR1019920018979A KR930008608A (ko) | 1991-10-25 | 1992-10-15 | 데이타 처리장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3306901A JPH05120071A (ja) | 1991-10-25 | 1991-10-25 | データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05120071A true JPH05120071A (ja) | 1993-05-18 |
Family
ID=17962630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3306901A Withdrawn JPH05120071A (ja) | 1991-10-25 | 1991-10-25 | データ処理装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPH05120071A (ja) |
KR (1) | KR930008608A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001356935A (ja) * | 2000-03-02 | 2001-12-26 | Texas Instr Inc <Ti> | オンチップデータプロセッサのトレースおよびタイミング情報の獲得と出力 |
-
1991
- 1991-10-25 JP JP3306901A patent/JPH05120071A/ja not_active Withdrawn
-
1992
- 1992-10-15 KR KR1019920018979A patent/KR930008608A/ko not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001356935A (ja) * | 2000-03-02 | 2001-12-26 | Texas Instr Inc <Ti> | オンチップデータプロセッサのトレースおよびタイミング情報の獲得と出力 |
Also Published As
Publication number | Publication date |
---|---|
KR930008608A (ko) | 1993-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0391173B1 (en) | Debug peripheral for microcomputers, microprocessors and core processor integrated circuits and system using the same | |
JP4190114B2 (ja) | マイクロコンピュータ | |
JP3846939B2 (ja) | データプロセッサ | |
US7689867B2 (en) | Multiprocessor breakpoint | |
US6145122A (en) | Development interface for a data processor | |
JP2003085000A (ja) | トレース情報生成装置およびその方法 | |
JP2001525568A (ja) | 命令デコーダ | |
EP0869434A2 (en) | Method for outputting trace information of a microprocessor | |
EP0166431A2 (en) | An information processing apparatus having an instruction prefetch circuit | |
US7441109B2 (en) | Computer system with a debug facility for a pipelined processor using predicated execution | |
CA2003004C (en) | Apparatus and method for executing a conditional branch instruction | |
KR100263262B1 (ko) | 마이크로프로세서 | |
JPH1124959A (ja) | マイクロプロセッサのトレース情報出力方法 | |
JPH05120071A (ja) | データ処理装置 | |
JPS62197831A (ja) | デ−タ処理装置 | |
JP2563708B2 (ja) | マイクロプロセッサ装置およびそれを用いたエミュレータ装置 | |
JP2646957B2 (ja) | キャッシュ内蔵マイクロプロセッサ及びそのトレースシステム | |
JP2002163126A (ja) | デバッグ用cpuに内蔵のイベント検出回路、イベント検出方法および外部周辺回路 | |
EP0569987A1 (en) | Microprocessor incorporating cache memory enabling efficient debugging | |
JP2808757B2 (ja) | デバッグ用マイクロプロセッサ | |
US7240185B2 (en) | Computer system with two debug watch modes for controlling execution of guarded instructions upon breakpoint detection | |
JPS6316350A (ja) | マイクロプロセッサ | |
JP2666737B2 (ja) | トレースメモリ内蔵マイクロプロセッサおよびトレース方法 | |
JPH06103109A (ja) | データプロセッサ、及びこれを用いるデバッグ装置 | |
CN114580329A (zh) | 一种数字信号处理器芯片实时调试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19990107 |