JPH0528002A - マイクロプロセツサ - Google Patents
マイクロプロセツサInfo
- Publication number
- JPH0528002A JPH0528002A JP3184244A JP18424491A JPH0528002A JP H0528002 A JPH0528002 A JP H0528002A JP 3184244 A JP3184244 A JP 3184244A JP 18424491 A JP18424491 A JP 18424491A JP H0528002 A JPH0528002 A JP H0528002A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- microprocessor
- trace
- execution
- branch
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】
【目的】内蔵命令キャッシュを使用した状態で、命令実
行状況のリアルタイム・トレースをサポートするマイク
ロプロセッサにより、キャッシュ・メモリを内蔵したマ
イクロプロセッサのプログラムおよびシステムのデバッ
グを容易にする。 【構成】分岐命令の分岐方向を検出して表示する分岐方
向検出手段111、命令処理の実行開始を検出して命令
実行開始検出手段112、分岐先を静的に計算できない
イベントの発生を検出する動的分岐検出手段113を持
つ。
行状況のリアルタイム・トレースをサポートするマイク
ロプロセッサにより、キャッシュ・メモリを内蔵したマ
イクロプロセッサのプログラムおよびシステムのデバッ
グを容易にする。 【構成】分岐命令の分岐方向を検出して表示する分岐方
向検出手段111、命令処理の実行開始を検出して命令
実行開始検出手段112、分岐先を静的に計算できない
イベントの発生を検出する動的分岐検出手段113を持
つ。
Description
【0001】
【産業上の利用分野】本発明は、命令コードあるいはメ
モリ・オペランドをキャッシングするキャッシュ・メモ
リを内蔵したマイクロプロセッサに関し、特にキャッシ
ュ・メモリを内蔵したマイクロプロセッサのシステム開
発あるいはプログラム開発におけるデバッグに関する。
モリ・オペランドをキャッシングするキャッシュ・メモ
リを内蔵したマイクロプロセッサに関し、特にキャッシ
ュ・メモリを内蔵したマイクロプロセッサのシステム開
発あるいはプログラム開発におけるデバッグに関する。
【0002】
【従来の技術】マイクロプロセッサのプログラム開発
時、あるいはシステム開発時におけるデバッグの方法と
しては大別して以下のようなものがある。 1.トレース:プログラムの実行位置を示す情報、ある
いはメモリ・オペランドのアクセスに関する情報を収集
し、これを組み立てることにより命令実行あるいはオペ
ランド・アクセスの順序を知る。前記情報は、一般にマ
イクロプロセッサの外部端子で観測可能なバス・サイク
ルのアドレス、データ、およびステータス等から構成す
ることができる。
時、あるいはシステム開発時におけるデバッグの方法と
しては大別して以下のようなものがある。 1.トレース:プログラムの実行位置を示す情報、ある
いはメモリ・オペランドのアクセスに関する情報を収集
し、これを組み立てることにより命令実行あるいはオペ
ランド・アクセスの順序を知る。前記情報は、一般にマ
イクロプロセッサの外部端子で観測可能なバス・サイク
ルのアドレス、データ、およびステータス等から構成す
ることができる。
【0003】一般に上記情報は、マイクロプロセッサの
外部で収集することができるので、マイクロプロセッサ
に特別な機能がなくてもトレース機能は実現できる。ま
た、デバッグの対象となるプログラムの実行に対して、
割込み/例外を発生させて中断したり、バス・サイクル
を待合せしたりする必要がないので、デバッグ状態/非
デバッグ状態でタイミングが変わらないという利点があ
る。
外部で収集することができるので、マイクロプロセッサ
に特別な機能がなくてもトレース機能は実現できる。ま
た、デバッグの対象となるプログラムの実行に対して、
割込み/例外を発生させて中断したり、バス・サイクル
を待合せしたりする必要がないので、デバッグ状態/非
デバッグ状態でタイミングが変わらないという利点があ
る。
【0004】一方、デバッグ対象のプログラムに対し
て、特定の状況を検出して中断しないため、プログラム
の状態を単に観測するだけの受動的な方法である。 2.トラップ:あらかじめ設定した特定の位置(アドレ
ス)の命令コードあるいはメモリ・オペランドのアクセ
スがあったことでデバッグ・プログラム(以下デバッガ
と称する)に制御を移し、さらに詳細なデバッグを進め
る。
て、特定の状況を検出して中断しないため、プログラム
の状態を単に観測するだけの受動的な方法である。 2.トラップ:あらかじめ設定した特定の位置(アドレ
ス)の命令コードあるいはメモリ・オペランドのアクセ
スがあったことでデバッグ・プログラム(以下デバッガ
と称する)に制御を移し、さらに詳細なデバッグを進め
る。
【0005】トレースとは異なり、必要な時点でデバッ
ガに制御を移し、デバッグを進めることができる利点を
持つ。ただし、設定したアドレスに対し正確に(例えば
設定したアドレスを持つ命令コードを実行した直後に/
実行する直前に)割込み/例外を発生し、デバッガに制
御を移すためのハードウェア的な機構(一般にトラップ
割込みと呼ばれる)を持つことが要求される。
ガに制御を移し、デバッグを進めることができる利点を
持つ。ただし、設定したアドレスに対し正確に(例えば
設定したアドレスを持つ命令コードを実行した直後に/
実行する直前に)割込み/例外を発生し、デバッガに制
御を移すためのハードウェア的な機構(一般にトラップ
割込みと呼ばれる)を持つことが要求される。
【0006】また、1)プログラムの正確な実行順序を
知っておく必要がある、2)予定どおりのトラップがか
けられなければ(例えばトラップよりも前にプログラム
が暴走するような場合)プログラム実行を中断できな
い、などの欠点を持つ。 3.シングル・ステップ:1命令を実行する毎にデバッ
ガに制御を移し、マイクロプロセッサの内部状態(汎用
レジスタ、プロセッサ・ステータス・ワード:PSW、
プログラム・カウンタ:PCなど)を表示したり、一部
分の内容を変更しながら、プログラムの実行を進める。
知っておく必要がある、2)予定どおりのトラップがか
けられなければ(例えばトラップよりも前にプログラム
が暴走するような場合)プログラム実行を中断できな
い、などの欠点を持つ。 3.シングル・ステップ:1命令を実行する毎にデバッ
ガに制御を移し、マイクロプロセッサの内部状態(汎用
レジスタ、プロセッサ・ステータス・ワード:PSW、
プログラム・カウンタ:PCなど)を表示したり、一部
分の内容を変更しながら、プログラムの実行を進める。
【0007】マイクロプロセッサの内部状態を命令実行
毎に把握できるため、極めて詳細にプログラムの実行経
過を把握することができる。一方、マイクロプロセッサ
自体に1命令を実行した時点で割込み/例外を発生し、
デバッガに制御を移すためのハードウェア的な機構(一
般にシングル・ステップ割込みと呼ばれる)を持つこと
が要求され、どのマイクロプロセッサでも実現可能なわ
けではない。また、1命令毎にデバッガに制御が移るた
め、デバッグ対象のプログラムに対し、1)実行効率が
悪い、2)タイミング・クリチカルな処理(例としてタ
イマ・ルーチンなどが挙げられる)はデバッグできな
い、3)内部動作タイミングがデバッグ/非デバッグ時
で全く異なる、等の欠点もある。
毎に把握できるため、極めて詳細にプログラムの実行経
過を把握することができる。一方、マイクロプロセッサ
自体に1命令を実行した時点で割込み/例外を発生し、
デバッガに制御を移すためのハードウェア的な機構(一
般にシングル・ステップ割込みと呼ばれる)を持つこと
が要求され、どのマイクロプロセッサでも実現可能なわ
けではない。また、1命令毎にデバッガに制御が移るた
め、デバッグ対象のプログラムに対し、1)実行効率が
悪い、2)タイミング・クリチカルな処理(例としてタ
イマ・ルーチンなどが挙げられる)はデバッグできな
い、3)内部動作タイミングがデバッグ/非デバッグ時
で全く異なる、等の欠点もある。
【0008】以上に述べたように各デバッグ方法には、
それぞれの利点と欠点があるため、一般には次のように
組み合わせて使用する。
それぞれの利点と欠点があるため、一般には次のように
組み合わせて使用する。
【0009】1.トレース機能により実際にどのような
順序で命令が実行されているかを知る。
順序で命令が実行されているかを知る。
【0010】2.トラップ機能により問題が発生してい
る付近でデバッガに制御を移す。
る付近でデバッガに制御を移す。
【0011】3.シングル・ステップ機能により1命令
づつ丹念に命令の実行状況を追う。
づつ丹念に命令の実行状況を追う。
【0012】このように、トレース機能は効率的なプロ
グラムおよびシステムのデバッグを行う上で必須の機能
である。
グラムおよびシステムのデバッグを行う上で必須の機能
である。
【0013】以下では、トレース機能の実現方法につい
て図面を参照して説明する。
て図面を参照して説明する。
【0014】図6は、従来のキャッシュ・メモリを内蔵
したマイクロプロセッサの構成を示している。また図7
は、トレース機能を実現するための一般的なシステム構
成を示している。
したマイクロプロセッサの構成を示している。また図7
は、トレース機能を実現するための一般的なシステム構
成を示している。
【0015】はじめに図6,7を参照して内蔵キャッシ
ュを使用しない場合のマイクロプロセッサの動作、およ
びトレース・システムの動作について簡単に説明する。
内蔵キャッシュを使用しない場合の動作については後述
する。
ュを使用しない場合のマイクロプロセッサの動作、およ
びトレース・システムの動作について簡単に説明する。
内蔵キャッシュを使用しない場合の動作については後述
する。
【0016】はじめに図6を用いて、内蔵キャッシュを
使用しない場合のマイクロプロセッサの内部動作につい
て説明する。実行ユニット601は、次に実行する命令
のアドレスを生成して内部アドレスを介してバスサイク
ル制御ユニット604に供給する。バスサイクル制御ユ
ニット604は、実行するバスサイクルが命令フェッチ
・サイクルであることを示すステータス信号をステータ
ス端子STに、フェッチする命令のアドレスをアドレス
端子ABにそれぞれ出力し、データ端子DBに返された
命令コードを読み込んで命令デコード602に転送す
る。命令デコード602は与えられた命令コードをデコ
ードし、制御信号を生成して実行ユニット601に供給
する。実行ユニット601は与えられた制御信号に従っ
てそれぞれの命令に応じた処理を実行する。
使用しない場合のマイクロプロセッサの内部動作につい
て説明する。実行ユニット601は、次に実行する命令
のアドレスを生成して内部アドレスを介してバスサイク
ル制御ユニット604に供給する。バスサイクル制御ユ
ニット604は、実行するバスサイクルが命令フェッチ
・サイクルであることを示すステータス信号をステータ
ス端子STに、フェッチする命令のアドレスをアドレス
端子ABにそれぞれ出力し、データ端子DBに返された
命令コードを読み込んで命令デコード602に転送す
る。命令デコード602は与えられた命令コードをデコ
ードし、制御信号を生成して実行ユニット601に供給
する。実行ユニット601は与えられた制御信号に従っ
てそれぞれの命令に応じた処理を実行する。
【0017】それでは、上述したマイクロプロセッサの
命令実行をトレースする場合のトレース動作について図
7を参照して簡単に説明する。
命令実行をトレースする場合のトレース動作について図
7を参照して簡単に説明する。
【0018】マイクロプロセッサ701は、内蔵命令キ
ャッシュを使用しないため、命令をフェッチする場合に
は常に命令フェッチ・サイクルを起動して、命令コード
をメモリより読みだしてくる必要がある。命令フェッチ
要求が生じると、マイクロプロセッサ701は命令フェ
ッチ・サイクルを起動して、ステータス信号およびフェ
ッチする命令のアドレスをそれぞれ出力する。この命令
フェッチ・サイクルに応答してメモリ702が返す命令
コードを、データバスを介して内部に読み込んで、命令
コードに対応する命令を実行する。ところで、トレース
・システム上のトレース・アナラザイラ703は、ステ
ータス信号を監視することによりこの命令フェッチ・サ
イクルの発生を検出し、ストローブ信号711を発生さ
せて命令フェッチ・サイクル中にアドレスバス上に出力
されている命令アドレスを、トレース・メモリ704に
取り込んで記録する。このようにして、マイクロプロセ
ッサ701が実行する命令のアドレスをすべてトレース
・メモリ704に記録することにより命令トレースを作
成する。
ャッシュを使用しないため、命令をフェッチする場合に
は常に命令フェッチ・サイクルを起動して、命令コード
をメモリより読みだしてくる必要がある。命令フェッチ
要求が生じると、マイクロプロセッサ701は命令フェ
ッチ・サイクルを起動して、ステータス信号およびフェ
ッチする命令のアドレスをそれぞれ出力する。この命令
フェッチ・サイクルに応答してメモリ702が返す命令
コードを、データバスを介して内部に読み込んで、命令
コードに対応する命令を実行する。ところで、トレース
・システム上のトレース・アナラザイラ703は、ステ
ータス信号を監視することによりこの命令フェッチ・サ
イクルの発生を検出し、ストローブ信号711を発生さ
せて命令フェッチ・サイクル中にアドレスバス上に出力
されている命令アドレスを、トレース・メモリ704に
取り込んで記録する。このようにして、マイクロプロセ
ッサ701が実行する命令のアドレスをすべてトレース
・メモリ704に記録することにより命令トレースを作
成する。
【0019】
【発明が解決しようとする課題】さて、図6に戻って内
蔵命令キャッシュを使用する場合のマイクロプロセッサ
の動作について考えてみる。
蔵命令キャッシュを使用する場合のマイクロプロセッサ
の動作について考えてみる。
【0020】まず、実行ユニット601は、次に実行す
る命令のアドレスを生成して内部アドレスバスを介して
命令キャッシュ603に供給する。
る命令のアドレスを生成して内部アドレスバスを介して
命令キャッシュ603に供給する。
【0021】命令キャッシュ603に該当する命令が登
録されている場合(以下「ヒット」と言う)、命令キャ
ッシュ603は直ちに命令コードを命令デコーダ602
に供給する。命令デコーダ602に命令コードが供給さ
れて以降の動作は、前述した内蔵命令キャッシュを使用
しない場合の動作と同様である。
録されている場合(以下「ヒット」と言う)、命令キャ
ッシュ603は直ちに命令コードを命令デコーダ602
に供給する。命令デコーダ602に命令コードが供給さ
れて以降の動作は、前述した内蔵命令キャッシュを使用
しない場合の動作と同様である。
【0022】一方、該当する命令が命令キャッシュ60
3に登録されていない場合(以下「ミスヒット」と言
う)、命令キャッシュ603はバスサイクル制御ユニッ
ト604に、ミスヒットした命令のメモリからのフェッ
チと、命令キャッシュ603への登録を要求する。バス
サイクル制御ユニット604はリプレース・サイクルを
起動して、アドレスおよびステータスを各端子に出力
し、ミスヒットした命令コードをデータ端子から読み込
んで命令キャッシュ603に登録するとともに命令デコ
ーダ602に供給する。命令デコーダ602に命令コー
ドが供給されて以降の動作は、前述した内蔵命令キャッ
シュを使用しない場合の動作と同様である。
3に登録されていない場合(以下「ミスヒット」と言
う)、命令キャッシュ603はバスサイクル制御ユニッ
ト604に、ミスヒットした命令のメモリからのフェッ
チと、命令キャッシュ603への登録を要求する。バス
サイクル制御ユニット604はリプレース・サイクルを
起動して、アドレスおよびステータスを各端子に出力
し、ミスヒットした命令コードをデータ端子から読み込
んで命令キャッシュ603に登録するとともに命令デコ
ーダ602に供給する。命令デコーダ602に命令コー
ドが供給されて以降の動作は、前述した内蔵命令キャッ
シュを使用しない場合の動作と同様である。
【0023】したがって、マイクロプロセッサ内部の命
令処理が進行しても、命令キャッシュがヒットしている
場合には、命令処理の進行を示す情報が外部に出力され
ないため、外部信号を観測することによってマイクロプ
ロセッサの命令処理の進行状況を知ることはできない。
したがって、図7に示すような構成のトレース・システ
ムでは、マイクロプロセッサの動作をトレースすること
は不可能となる。
令処理が進行しても、命令キャッシュがヒットしている
場合には、命令処理の進行を示す情報が外部に出力され
ないため、外部信号を観測することによってマイクロプ
ロセッサの命令処理の進行状況を知ることはできない。
したがって、図7に示すような構成のトレース・システ
ムでは、マイクロプロセッサの動作をトレースすること
は不可能となる。
【0024】この問題を解決するために、トレース時に
は命令キャッシュの機能を不活性にして、すべての命令
フェッチを外部から観測す可能にして、トレース機能を
実現する方法が考えられる。しかしながら、この場合ト
レース時と実動作時のマイクロプロセッサの動作が異な
ってしまうため、正確なデバッグができなくなるという
欠点がある。
は命令キャッシュの機能を不活性にして、すべての命令
フェッチを外部から観測す可能にして、トレース機能を
実現する方法が考えられる。しかしながら、この場合ト
レース時と実動作時のマイクロプロセッサの動作が異な
ってしまうため、正確なデバッグができなくなるという
欠点がある。
【0025】
【課題を解決するための手段】本発明は、キャッシュ・
メモリを内蔵したマイクロプロセッサにおいて、命令の
実行開始を外部に通知する手段と、分岐命令の分岐方向
を外部に通知する手段と、プログラムの流れをあらかじ
め静的に計算できない場合に割り込みを発生する手段と
を有している。
メモリを内蔵したマイクロプロセッサにおいて、命令の
実行開始を外部に通知する手段と、分岐命令の分岐方向
を外部に通知する手段と、プログラムの流れをあらかじ
め静的に計算できない場合に割り込みを発生する手段と
を有している。
【0026】
【実施例】以下、図面により詳述する。
【0027】図1は本発明を利用したマイクロプロセッ
サの構成を示している。図中では簡単のため本発明に関
連するブロックのみ示し、それ以外は省略してある。
サの構成を示している。図中では簡単のため本発明に関
連するブロックのみ示し、それ以外は省略してある。
【0028】101は命令処理の実行ユニット、102
は命令デコーダ、103は命令キャッシュ、104はバ
ス制御ユニットである。これらのユニットは、内部アド
レスバスおよび内部データバスを介して接続されてい
る。実行ユニット101は、その内部に分岐命令の分岐
方向を検出する分岐方向検出手段111、各命令の実行
開始を検出する命令実行開始検出手段112、プログラ
ムの流れがあらかじめ静的に計算できないイベント(た
とえば、レジスタ間接分岐命令の実行、例外の発生によ
る例外処理プログラムへの分岐等)の発生を検出する手
段113(以下「動的分岐検出手段」と呼ぶ)を内蔵し
ている。
は命令デコーダ、103は命令キャッシュ、104はバ
ス制御ユニットである。これらのユニットは、内部アド
レスバスおよび内部データバスを介して接続されてい
る。実行ユニット101は、その内部に分岐命令の分岐
方向を検出する分岐方向検出手段111、各命令の実行
開始を検出する命令実行開始検出手段112、プログラ
ムの流れがあらかじめ静的に計算できないイベント(た
とえば、レジスタ間接分岐命令の実行、例外の発生によ
る例外処理プログラムへの分岐等)の発生を検出する手
段113(以下「動的分岐検出手段」と呼ぶ)を内蔵し
ている。
【0029】まず、本マイクロプロセッサの動作を説明
する。
する。
【0030】実行ユニット101は、次に実行すべき命
令を決定しそのアドレスを内部アドレスを介して命令キ
ャッシュ103に与える。命令キャッシュ103がヒッ
した場合、命令キャッシュ103は直ちに命令コードを
命令デコーダ102に供給する。命令デコーダ102は
命令コードをデコードして制御信号を生成し、実行ユニ
ット101に供給する。実行ユニット101は命令デコ
ーダ102から供給された制御信号にしたがって各種の
処理を実行する。
令を決定しそのアドレスを内部アドレスを介して命令キ
ャッシュ103に与える。命令キャッシュ103がヒッ
した場合、命令キャッシュ103は直ちに命令コードを
命令デコーダ102に供給する。命令デコーダ102は
命令コードをデコードして制御信号を生成し、実行ユニ
ット101に供給する。実行ユニット101は命令デコ
ーダ102から供給された制御信号にしたがって各種の
処理を実行する。
【0031】ところで、前述した一連の命令処理動作実
行中に、実行ユニット101に内蔵される命令実行開始
検出手段112、分岐方向検出手段111、動的分岐検
出手段113は、以下の動作を行う。
行中に、実行ユニット101に内蔵される命令実行開始
検出手段112、分岐方向検出手段111、動的分岐検
出手段113は、以下の動作を行う。
【0032】まず、命令実行開始検出手段112は、実
行ユニット101による新たな命令の実行開始を検出す
る毎に、命令ステップ端子122に命令ステップ信号I
STEPを出力する。
行ユニット101による新たな命令の実行開始を検出す
る毎に、命令ステップ端子122に命令ステップ信号I
STEPを出力する。
【0033】また、分岐方向検出手段111は、実行す
る命令が分岐命令の場合にその分岐方向(分岐の成立ま
たは不成立)を検出して分岐成立/分岐不成立を示す信
号BDIRを分岐方向表示端子121に出力する。
る命令が分岐命令の場合にその分岐方向(分岐の成立ま
たは不成立)を検出して分岐成立/分岐不成立を示す信
号BDIRを分岐方向表示端子121に出力する。
【0034】一方、動的分岐検出手段113は、分岐先
を静的に計算できない分岐(レジスタ間接分岐や例外処
理プログラムへの分岐)の発生を検出すると、トレース
・トラップ割り込み処理を起動する。トレース・トラッ
プ割り込み処理は、通常の割り込み要求と同様に、現在
のプログラム・カウンタ(PC)、およびプログラム・
ステータス・ワード(PSW)の内容を退避するととも
に、あらかじめ定められたアドレスに分岐して、トレー
ス・トラップ処理プログラムへと制御を移す。
を静的に計算できない分岐(レジスタ間接分岐や例外処
理プログラムへの分岐)の発生を検出すると、トレース
・トラップ割り込み処理を起動する。トレース・トラッ
プ割り込み処理は、通常の割り込み要求と同様に、現在
のプログラム・カウンタ(PC)、およびプログラム・
ステータス・ワード(PSW)の内容を退避するととも
に、あらかじめ定められたアドレスに分岐して、トレー
ス・トラップ処理プログラムへと制御を移す。
【0035】以下では、本実施例の構成を持つマイクロ
プロセッサを用いて構成したトレース・システムの動作
について説明する。
プロセッサを用いて構成したトレース・システムの動作
について説明する。
【0036】図2は、図1の構成を持つマイクロプロセ
ッサを使用して、キャッシュ・メモリを内蔵するマイク
ロプロセッサのトレースを実現するシステムの構成を示
すものである。
ッサを使用して、キャッシュ・メモリを内蔵するマイク
ロプロセッサのトレースを実現するシステムの構成を示
すものである。
【0037】201は本実施例の構成を持つマイクロプ
ロセッサ、202はメモリ、203はトレース処理を行
うトレース・アナライザ、204はトレース結果を格納
するメモリである。マイクロプロセッサ201、メモリ
202、トレース・アナライザ203、メモリ204は
データバス、アドレスバス、ステータス信号によりそれ
ぞれ接続されている。また、マイクロプロセッサ201
の出力する分岐方向表示信号211および命令ステップ
信号212は、トレース・アナライザ203に入力され
る。
ロセッサ、202はメモリ、203はトレース処理を行
うトレース・アナライザ、204はトレース結果を格納
するメモリである。マイクロプロセッサ201、メモリ
202、トレース・アナライザ203、メモリ204は
データバス、アドレスバス、ステータス信号によりそれ
ぞれ接続されている。また、マイクロプロセッサ201
の出力する分岐方向表示信号211および命令ステップ
信号212は、トレース・アナライザ203に入力され
る。
【0038】トレース・アナライザ203は、マイクロ
プロセッサ201のプログラムを静的に解析する能力を
持つ。メモリ202上に格納されているマイクロプロセ
ッサ201の実行プログラムを解析して、命令処理の流
れ、(フロー)を抽出し、静的な命令処理の流れを再構
成することができる。
プロセッサ201のプログラムを静的に解析する能力を
持つ。メモリ202上に格納されているマイクロプロセ
ッサ201の実行プログラムを解析して、命令処理の流
れ、(フロー)を抽出し、静的な命令処理の流れを再構
成することができる。
【0039】それでは、図2に示すトレース・システム
の動作について簡単に説明する。
の動作について簡単に説明する。
【0040】まず、命令コードのトレースを開始する準
備として、トレース・アナライザ203は、メモリ20
2に格納された実行プログラムを読み出して解析し、実
行プログラム中の分岐命令アドレス、分岐先のアドレス
等トレースに必要となる情報を生成し、その内部に保持
する。
備として、トレース・アナライザ203は、メモリ20
2に格納された実行プログラムを読み出して解析し、実
行プログラム中の分岐命令アドレス、分岐先のアドレス
等トレースに必要となる情報を生成し、その内部に保持
する。
【0041】マイクロプロセッサ201が実行プログラ
ム処理を開始すると、トレース・アナライザ203は、
アドレスバスおよびステータスを監視して、マイクロプ
ロセッサ201のリプレース・バスサイクルを観測する
ことにより、実行プログラムのエントリ・ポイントを決
定して、メモリ204にそのアドレスをトレース結果と
して書き込む。
ム処理を開始すると、トレース・アナライザ203は、
アドレスバスおよびステータスを監視して、マイクロプ
ロセッサ201のリプレース・バスサイクルを観測する
ことにより、実行プログラムのエントリ・ポイントを決
定して、メモリ204にそのアドレスをトレース結果と
して書き込む。
【0042】リプレース・バスサイクルが終了して、マ
イクロプロセッサ201が内部命令キャッシュにキャッ
シングした命令の実行を開始すると、マイクロプロセッ
サ201は、前述したようにその内部の実行ユニットに
おける各命令の実行開始を表示する命令ステップ信号2
12を出力しながら、内部命令キャッシュにキャッシン
グされた命令を実行していく。
イクロプロセッサ201が内部命令キャッシュにキャッ
シングした命令の実行を開始すると、マイクロプロセッ
サ201は、前述したようにその内部の実行ユニットに
おける各命令の実行開始を表示する命令ステップ信号2
12を出力しながら、内部命令キャッシュにキャッシン
グされた命令を実行していく。
【0043】トレース・アナライザ203は、命令ステ
ップ信号212を検出する毎に、内部に保持している命
令処理フローの解析結果を参照して命令を1ステップづ
つ追跡し、追跡した各命令のアドレスをメモリ204に
トレース結果として追加する。
ップ信号212を検出する毎に、内部に保持している命
令処理フローの解析結果を参照して命令を1ステップづ
つ追跡し、追跡した各命令のアドレスをメモリ204に
トレース結果として追加する。
【0044】以上のようにして、マイクロプロセッサ2
01の命令キャッシュにキャッシングされている命令の
実行経過を含めてトレースすることができる。
01の命令キャッシュにキャッシングされている命令の
実行経過を含めてトレースすることができる。
【0045】次に、内蔵命令キャッシュにキャッシング
された命令列の中に条件分岐命令がある場合について考
える。条件分岐命令の場合は、たとえ分岐先があらかじ
め静的に計算できる場合であっても、命令フローが分岐
成立/不成立の2つのいずれに進むかが判定できないた
め、前述の命令ステップ信号212のみでは内蔵命令キ
ャッシュにキャッシングされた命令をトレースすること
は不可能である。
された命令列の中に条件分岐命令がある場合について考
える。条件分岐命令の場合は、たとえ分岐先があらかじ
め静的に計算できる場合であっても、命令フローが分岐
成立/不成立の2つのいずれに進むかが判定できないた
め、前述の命令ステップ信号212のみでは内蔵命令キ
ャッシュにキャッシングされた命令をトレースすること
は不可能である。
【0046】しかしながら、本実施例のトレース・シス
テムにおいては、マイクロプロセッサ201は分岐方向
表示信号211を有しており、実行中の分岐命令の分岐
方向を外部に表示する手段を持っている。
テムにおいては、マイクロプロセッサ201は分岐方向
表示信号211を有しており、実行中の分岐命令の分岐
方向を外部に表示する手段を持っている。
【0047】したがって、トレース・アナライザ203
は、マイクロプロセッサ201が条件分岐命令実行時に
出力する分岐方向表示信号211を参照することで動的
に決定される分岐方向を検出することができるため、キ
ャッシングされている条件分岐命令の処理を追跡するこ
とが可能となる。
は、マイクロプロセッサ201が条件分岐命令実行時に
出力する分岐方向表示信号211を参照することで動的
に決定される分岐方向を検出することができるため、キ
ャッシングされている条件分岐命令の処理を追跡するこ
とが可能となる。
【0048】最後に、分岐先があらかじめ静的に計算で
きないような分岐の場合について考える。ここでは、分
岐先があらかじめ静的に計算できない分岐を発生させる
例として、レジスタ間接分岐命令の実行について考えて
みるにとにする。
きないような分岐の場合について考える。ここでは、分
岐先があらかじめ静的に計算できない分岐を発生させる
例として、レジスタ間接分岐命令の実行について考えて
みるにとにする。
【0049】レジスタ間接分岐命令は、命令で指定され
たレジスタの値を分岐先アドレスとして分岐する命令で
ある。分岐先アドレスとなるレジスタの値は、通常実行
時に計算されるため、プログラムの静的な解析であらか
じめ計算することができない。したがって、レジスタ間
接分岐命令が内蔵キャッシュにキャッシングされている
場合には、トレースを継続することは不可能である。
たレジスタの値を分岐先アドレスとして分岐する命令で
ある。分岐先アドレスとなるレジスタの値は、通常実行
時に計算されるため、プログラムの静的な解析であらか
じめ計算することができない。したがって、レジスタ間
接分岐命令が内蔵キャッシュにキャッシングされている
場合には、トレースを継続することは不可能である。
【0050】ここでは、マイクロプロセッサ201が、
図3に示すようなレジスタ間接分岐命令を含む実行プロ
グラムを実行する場合を例として、本実施例の構成を持
つマイクロプロセッサを利してどのようにトレースが行
なわれるかを説明することにする。
図3に示すようなレジスタ間接分岐命令を含む実行プロ
グラムを実行する場合を例として、本実施例の構成を持
つマイクロプロセッサを利してどのようにトレースが行
なわれるかを説明することにする。
【0051】いま、内蔵命令キャッシュに図3に示す実
行プログラムをすべてにキャッシングしていると仮定す
る。キャッシングされた実行プログラムの命令処理実行
経過は、前述したようにマイクロプロセッサ201が出
力する命令ステップ信号212を利用して、トレース・
アナライザ203はキャッシングされた実行プログラム
のトレースを実行している。ここで、マイクロプロセッ
サ201がレジスタ間接分命令を実行すると、マイクロ
プロセッサ201に内蔵されている、図1の113にあ
たる動的分岐検出手段がこれを検出して、マイクロプロ
セッサ201はトレース・トラップを発生させてその制
御をトレース・トラップ処理プログラムに移す。レジス
タ間接分岐の分岐先アドレス(すなわち指定されたレジ
スタの値)はこの時すでに確定しているため、マイクロ
プロセッサ201はトレース・トラップ処理プログラム
中で分岐先アドレスを格納しているレジスタの値をデー
タバスにタンプする等して、レジスタ間接分岐の分岐先
アドレスをマイクロプロセッサ201の外部に出力する
ことができる。トレース・アナライザ203は、このト
レース・トラップ処理を検出してデータバス上に出力さ
れた分岐先アドレスを読み込んで、あらたなトレースの
スタート・ポイントとして以後のトレース動作を継続す
る。
行プログラムをすべてにキャッシングしていると仮定す
る。キャッシングされた実行プログラムの命令処理実行
経過は、前述したようにマイクロプロセッサ201が出
力する命令ステップ信号212を利用して、トレース・
アナライザ203はキャッシングされた実行プログラム
のトレースを実行している。ここで、マイクロプロセッ
サ201がレジスタ間接分命令を実行すると、マイクロ
プロセッサ201に内蔵されている、図1の113にあ
たる動的分岐検出手段がこれを検出して、マイクロプロ
セッサ201はトレース・トラップを発生させてその制
御をトレース・トラップ処理プログラムに移す。レジス
タ間接分岐の分岐先アドレス(すなわち指定されたレジ
スタの値)はこの時すでに確定しているため、マイクロ
プロセッサ201はトレース・トラップ処理プログラム
中で分岐先アドレスを格納しているレジスタの値をデー
タバスにタンプする等して、レジスタ間接分岐の分岐先
アドレスをマイクロプロセッサ201の外部に出力する
ことができる。トレース・アナライザ203は、このト
レース・トラップ処理を検出してデータバス上に出力さ
れた分岐先アドレスを読み込んで、あらたなトレースの
スタート・ポイントとして以後のトレース動作を継続す
る。
【0052】上述の説明ではレジスタ間接分岐命令を例
として説明したが、実行時例外の発生による例外処理プ
ログラムへの分岐のような場合にも、上述したトレース
・トラップ機構を利用して同様にトレースが可能である
ことは明白である。
として説明したが、実行時例外の発生による例外処理プ
ログラムへの分岐のような場合にも、上述したトレース
・トラップ機構を利用して同様にトレースが可能である
ことは明白である。
【0053】次に本発明の別の実施例について図4およ
び図5を参照して説明する。
び図5を参照して説明する。
【0054】図1に示したマイクロプロセッサでは、分
岐方向表示信号および命令ステップ信号を独立した専用
の端子を使用して外部に出力していた。本実施例では、
分岐方向表示信号および命令ステップ信号を、バス制御
ユニット404でエンコードし、ステータス信号線を利
用してステータスの一部として外部に出力するという差
異がある。
岐方向表示信号および命令ステップ信号を独立した専用
の端子を使用して外部に出力していた。本実施例では、
分岐方向表示信号および命令ステップ信号を、バス制御
ユニット404でエンコードし、ステータス信号線を利
用してステータスの一部として外部に出力するという差
異がある。
【0055】分岐方向表示信号421および命令ステッ
プ信号422の動作は、前記第一の実施例のそれぞれと
同一である。分岐方向の表示および命令のステップ情報
が、専用の端子および専用の信号線を使用せずに、バス
ステータス信号を利用してトレース・アナライザ503
に伝達される点をのぞいて、第5図に示したトレース・
システムが第一の実施例のトレース・システムと同一に
機能することは明白である。
プ信号422の動作は、前記第一の実施例のそれぞれと
同一である。分岐方向の表示および命令のステップ情報
が、専用の端子および専用の信号線を使用せずに、バス
ステータス信号を利用してトレース・アナライザ503
に伝達される点をのぞいて、第5図に示したトレース・
システムが第一の実施例のトレース・システムと同一に
機能することは明白である。
【0056】
【発明の効果】以上説明したように、本発明を用いるこ
とでキャッシュ・メモリを内蔵したマイクロプロセッサ
に対して、内蔵キャッシュを活性にした状態における効
率的なトレース機構を提供することができる。また、本
発明を利用したトレース機能は、トレース・トラップ機
能を利用したトレース部分を除いて、マイクロプロセッ
サの命令実行を実時間でトレースすることができるた
め、キャッシュ・メモリを内蔵したマイクロプロセッサ
のプログラム、あるいはシステムに対して正確で効率的
なデバッグを可能とする。
とでキャッシュ・メモリを内蔵したマイクロプロセッサ
に対して、内蔵キャッシュを活性にした状態における効
率的なトレース機構を提供することができる。また、本
発明を利用したトレース機能は、トレース・トラップ機
能を利用したトレース部分を除いて、マイクロプロセッ
サの命令実行を実時間でトレースすることができるた
め、キャッシュ・メモリを内蔵したマイクロプロセッサ
のプログラム、あるいはシステムに対して正確で効率的
なデバッグを可能とする。
【図1】本発明を利用したマイクロプロセッサの第1の
実施例の構成である。
実施例の構成である。
【図2】第1の実施例のマイクロプロセッサを使用した
トレース・システムの構成図である。
トレース・システムの構成図である。
【図3】レジスタ間接分岐命令のトレース・トラップの
様子を示す図である。
様子を示す図である。
【図4】本発明を利用したマイクロプロセッサの第2の
実施例の構成図である。
実施例の構成図である。
【図5】第2の実施例のマイクロプロセッサを使用した
トレース・システムの構成図である。
トレース・システムの構成図である。
【図6】従来のキャッシュ・メモリを内蔵するマイクロ
プロセッサの構成図である。
プロセッサの構成図である。
【図7】従来のマイクロプロセッサを使用したトレース
・システムの構成図である。
・システムの構成図である。
Claims (4)
- 【請求項1】 キャッシュ・メモリを内蔵したマイクロ
プロセッサにおいて、命令の実行開始を外部に通知する
手段と、分岐命令の分岐方向を外部に通知する手段と、
プログラムの流れをあらかじめ静的に計算できない場合
に割り込みを発生する手段とを有することを特徴とする
マイクロプロセッサ。 - 【請求項2】 前記命令の実行開始を外部に通知する手
段として、専用の端子を使用することを特徴とする請求
項1記載のマイクロプロセッサ。 - 【請求項3】 前記命令の実行開始を外部に通知する手
段として、専用の端子上に出力するパルス信号を利用す
ることを特徴とする請求項1記載のマイクロプロセッ
サ。 - 【請求項4】 前記分岐命令の分岐方向を外部に通知す
る手段として、専用の端子を使用することを特徴とする
請求項1記載のマイクロプロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3184244A JPH0528002A (ja) | 1991-07-24 | 1991-07-24 | マイクロプロセツサ |
EP19920112695 EP0525672A3 (en) | 1991-07-24 | 1992-07-24 | Microprocessor with program tracing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3184244A JPH0528002A (ja) | 1991-07-24 | 1991-07-24 | マイクロプロセツサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0528002A true JPH0528002A (ja) | 1993-02-05 |
Family
ID=16149911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3184244A Pending JPH0528002A (ja) | 1991-07-24 | 1991-07-24 | マイクロプロセツサ |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP0525672A3 (ja) |
JP (1) | JPH0528002A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6665821B1 (en) | 1998-03-31 | 2003-12-16 | Seiko Epson Corporation | Microcomputer, electronic equipment, and debugging system |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0744419A (ja) * | 1993-08-03 | 1995-02-14 | Nec Ic Microcomput Syst Ltd | マイコン開発支援装置 |
US5446876A (en) * | 1994-04-15 | 1995-08-29 | International Business Machines Corporation | Hardware mechanism for instruction/data address tracing |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63284644A (ja) * | 1987-05-18 | 1988-11-21 | Matsushita Electric Ind Co Ltd | 命令アドレス出力回路 |
JPH01111236A (ja) * | 1987-10-23 | 1989-04-27 | Nec Corp | 計算機 |
JPH01193943A (ja) * | 1988-01-28 | 1989-08-03 | Matsushita Electric Ind Co Ltd | マイクロコンピュータ |
JPH01214944A (ja) * | 1988-02-24 | 1989-08-29 | Hitachi Ltd | プログラム走行情報収集方式 |
JPH02150932A (ja) * | 1988-12-02 | 1990-06-11 | Nec Corp | 情報処理装置 |
JPH02207345A (ja) * | 1989-02-07 | 1990-08-17 | Fujitsu Ltd | マイクロプロセッサの命令実行過程のサンプル方法 |
JPH03129441A (ja) * | 1989-06-20 | 1991-06-03 | Fujitsu Ltd | 分岐命令実行装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3740762A1 (de) * | 1987-01-22 | 1988-08-04 | Nat Semiconductor Corp | Datenverarbeitungssystem mit einer externen schnittstelle |
EP0371418A3 (en) * | 1988-11-30 | 1991-09-04 | National Semiconductor Corporation | Apparatus for and method of providing the program counter of a microprocessor external to the device |
-
1991
- 1991-07-24 JP JP3184244A patent/JPH0528002A/ja active Pending
-
1992
- 1992-07-24 EP EP19920112695 patent/EP0525672A3/en not_active Withdrawn
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63284644A (ja) * | 1987-05-18 | 1988-11-21 | Matsushita Electric Ind Co Ltd | 命令アドレス出力回路 |
JPH01111236A (ja) * | 1987-10-23 | 1989-04-27 | Nec Corp | 計算機 |
JPH01193943A (ja) * | 1988-01-28 | 1989-08-03 | Matsushita Electric Ind Co Ltd | マイクロコンピュータ |
JPH01214944A (ja) * | 1988-02-24 | 1989-08-29 | Hitachi Ltd | プログラム走行情報収集方式 |
JPH02150932A (ja) * | 1988-12-02 | 1990-06-11 | Nec Corp | 情報処理装置 |
JPH02207345A (ja) * | 1989-02-07 | 1990-08-17 | Fujitsu Ltd | マイクロプロセッサの命令実行過程のサンプル方法 |
JPH03129441A (ja) * | 1989-06-20 | 1991-06-03 | Fujitsu Ltd | 分岐命令実行装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6665821B1 (en) | 1998-03-31 | 2003-12-16 | Seiko Epson Corporation | Microcomputer, electronic equipment, and debugging system |
WO2004075058A1 (ja) * | 1998-03-31 | 2004-09-02 | Makoto Kudo | マイクロコンピュータ、電子機器及びデバッグシステム |
US6922795B2 (en) | 1998-03-31 | 2005-07-26 | Seiko Epson Corporation | Microcomputer, electronic equipment, and debugging system |
US7065678B2 (en) | 1998-03-31 | 2006-06-20 | Seiko Epson Corporation | Microcomputer, electronic equipment, and debugging system |
Also Published As
Publication number | Publication date |
---|---|
EP0525672A2 (en) | 1993-02-03 |
EP0525672A3 (en) | 1993-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6754856B2 (en) | Memory access debug facility | |
US8352713B2 (en) | Debug circuit comparing processor instruction set operating mode | |
JP5905911B2 (ja) | シングルステップ実行を用いる診断コード | |
US20070079177A1 (en) | Process monitoring and diagnosis apparatus, systems, and methods | |
KR940003318B1 (ko) | 캐시 메모리를 구비한 프로세서 | |
US7441109B2 (en) | Computer system with a debug facility for a pipelined processor using predicated execution | |
JPH0528002A (ja) | マイクロプロセツサ | |
JP2646957B2 (ja) | キャッシュ内蔵マイクロプロセッサ及びそのトレースシステム | |
JP2760228B2 (ja) | キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ | |
EP0569987A1 (en) | Microprocessor incorporating cache memory enabling efficient debugging | |
US7240185B2 (en) | Computer system with two debug watch modes for controlling execution of guarded instructions upon breakpoint detection | |
JP3068578B2 (ja) | インサーキットエミュレータおよび飽和演算処理方法 | |
KR960003052B1 (ko) | 내장된 캐쉬 메모리 유니트를 가진 마이크로프로세서 | |
JPS6358552A (ja) | マイクロプロセサ | |
JPH06202907A (ja) | デバッグ支援装置 | |
JPH0333940A (ja) | 評価用マイクロプロセッサ | |
JPH02207345A (ja) | マイクロプロセッサの命令実行過程のサンプル方法 | |
JPS63313244A (ja) | デ−タ処理装置 | |
JPH05346870A (ja) | ディジタルコンピュータシステム | |
JPH0444973B2 (ja) | ||
JP2000222256A (ja) | キャッシュメモリ内蔵プロセッサのデバッグ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19971014 |