JPH02207345A - マイクロプロセッサの命令実行過程のサンプル方法 - Google Patents
マイクロプロセッサの命令実行過程のサンプル方法Info
- Publication number
- JPH02207345A JPH02207345A JP1028364A JP2836489A JPH02207345A JP H02207345 A JPH02207345 A JP H02207345A JP 1028364 A JP1028364 A JP 1028364A JP 2836489 A JP2836489 A JP 2836489A JP H02207345 A JPH02207345 A JP H02207345A
- Authority
- JP
- Japan
- Prior art keywords
- address
- instruction
- mpu
- microprocessor
- 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
Landscapes
- Advance Control (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔目次〕
概要
産業上の利用分野
従来の技術 (第4.5図)発明が解決し
ようとする課題 課題を解決するための手段 作用 実施例 本発明の第1実施例 (第1図) 本発明の第2実施例 (第2図) 本発明の第3実施例 (第3図) 発明の効果 〔概要〕 マイクロプロセッサ(以下、MPUという)命令実行過
程のサンプル方法に関し、 メモリ管理ニー’−7トM M U (Memory
Manage+++entUnit)、キャッシュメモ
リを内蔵し、さらにブリフェッチを行うMPUにおいて
、正確なMPU命令実行のサンプルを行うことができる
MPU命令実行過程のサンプル方法を提供することを目
的とし、 分岐命令実行時に発生するトラップを使用してマイクロ
プロセッサ命令実行過程のサンプルを行うように構成す
る。
ようとする課題 課題を解決するための手段 作用 実施例 本発明の第1実施例 (第1図) 本発明の第2実施例 (第2図) 本発明の第3実施例 (第3図) 発明の効果 〔概要〕 マイクロプロセッサ(以下、MPUという)命令実行過
程のサンプル方法に関し、 メモリ管理ニー’−7トM M U (Memory
Manage+++entUnit)、キャッシュメモ
リを内蔵し、さらにブリフェッチを行うMPUにおいて
、正確なMPU命令実行のサンプルを行うことができる
MPU命令実行過程のサンプル方法を提供することを目
的とし、 分岐命令実行時に発生するトラップを使用してマイクロ
プロセッサ命令実行過程のサンプルを行うように構成す
る。
また、分岐命令を含む複数の命令を格納し、該命令を実
行することによりトラップを発生しその時のスタック退
避情報としてトラップの発生番地を有するマイクロプロ
セッサと、分岐命令実行によるスタック退避のサイクル
を示す信号によりイネーブル状態となり、トレースメモ
リのアドレスを作成するカウンタと、アドレスとして該
カウンタの出力が入力されるとともに、データとして該
マイクロプロセッサ出力のデータが入力され、スタック
退避の状態を格納する前記トレースメモリと、を具備し
、分岐命令実行時にトラップが発生すると、該マイクロ
プロセッサから該カウンタにスタック退避のサイクルを
示す信号が出力され、その分岐命令のある番地と分岐先
の番地とをトレースメモリへ格納し、マイクロプロセッ
サの命令実行中断後に分岐先の番地および分岐命令のあ
る番地のアドレスを該トレースメモリから読み出し、そ
の間の命令データを実メモリより読み出すことによりマ
イクロプロセッサ命令実行過程のサンプルを行うように
構成する。
行することによりトラップを発生しその時のスタック退
避情報としてトラップの発生番地を有するマイクロプロ
セッサと、分岐命令実行によるスタック退避のサイクル
を示す信号によりイネーブル状態となり、トレースメモ
リのアドレスを作成するカウンタと、アドレスとして該
カウンタの出力が入力されるとともに、データとして該
マイクロプロセッサ出力のデータが入力され、スタック
退避の状態を格納する前記トレースメモリと、を具備し
、分岐命令実行時にトラップが発生すると、該マイクロ
プロセッサから該カウンタにスタック退避のサイクルを
示す信号が出力され、その分岐命令のある番地と分岐先
の番地とをトレースメモリへ格納し、マイクロプロセッ
サの命令実行中断後に分岐先の番地および分岐命令のあ
る番地のアドレスを該トレースメモリから読み出し、そ
の間の命令データを実メモリより読み出すことによりマ
イクロプロセッサ命令実行過程のサンプルを行うように
構成する。
本発明は、マイクロプロセッサの命令実行過程のサンプ
ル方法に係り、詳しくは、MPU命令実行の解析を行う
、デバッガ、エミュレータ等のマイクロプロセッサの命
令実行過程のサンプル方法に関する。
ル方法に係り、詳しくは、MPU命令実行の解析を行う
、デバッガ、エミュレータ等のマイクロプロセッサの命
令実行過程のサンプル方法に関する。
近年の汎用MPUは高集積化によりMMU、キャッシュ
メモリ内蔵のものが増えており、また命令ブリフェッチ
を行うことが常識となっている。
メモリ内蔵のものが増えており、また命令ブリフェッチ
を行うことが常識となっている。
これらの機能により、外部バスによるMPU内部での動
作の解析が不可能となっている。よってこれらの機能を
使用しながら、正確にMPU命令実行のサンプルを行う
必要が出てきた。
作の解析が不可能となっている。よってこれらの機能を
使用しながら、正確にMPU命令実行のサンプルを行う
必要が出てきた。
[従来の技術〕
従来のMPU命令実行過程のサンプル方法は、外部にて
アドレスバス、データバス、ステータスなどを全てサン
プルすることにより行っていた。
アドレスバス、データバス、ステータスなどを全てサン
プルすることにより行っていた。
これは、従来のMPUが論理アドレス等を全部バスに出
していたためであり、それを単にメモリにサンプルして
後で並べればMPU命令実行過程を容易に知ることがで
きた。
していたためであり、それを単にメモリにサンプルして
後で並べればMPU命令実行過程を容易に知ることがで
きた。
ところが、MPUの高集積化により、命令ブリフェッチ
、MMUあるいはキャッシュメモリ内蔵のものが増えて
来つつある。第4.5図は高集積化されたMPUの外部
バスと内部動作の違いを説明するための図であり、第4
図はMMU内蔵のMPUを示すブロック図、第5図はキ
ャッシュメモリ内蔵のMPUを示す図である。第4図に
おいて、lはMMU内蔵のMPUであり、大実線内がM
PU1の内部を示している。MPU1はMPUの命令解
析・実行を行う実行ユニット2と、外部バスの制御を行
うバスユニット3と、論理アドレスを物理アドレスに変
換するMMU4と、を含んで構成されている。また、第
5図において、キャッシュメモリを内蔵するMPU5は
MPUの命令解析・実行を行う実行ユニット6と、外部
バスの制御を行うバスユニット7と、実行ユニット6で
一部フエッチしたデータを保持し、命令アクセス時間を
短縮するとともに命令アクセスとデータアクセスの並行
処理を可能にするキャッシュメモリ8と、を含んで構成
されている。
、MMUあるいはキャッシュメモリ内蔵のものが増えて
来つつある。第4.5図は高集積化されたMPUの外部
バスと内部動作の違いを説明するための図であり、第4
図はMMU内蔵のMPUを示すブロック図、第5図はキ
ャッシュメモリ内蔵のMPUを示す図である。第4図に
おいて、lはMMU内蔵のMPUであり、大実線内がM
PU1の内部を示している。MPU1はMPUの命令解
析・実行を行う実行ユニット2と、外部バスの制御を行
うバスユニット3と、論理アドレスを物理アドレスに変
換するMMU4と、を含んで構成されている。また、第
5図において、キャッシュメモリを内蔵するMPU5は
MPUの命令解析・実行を行う実行ユニット6と、外部
バスの制御を行うバスユニット7と、実行ユニット6で
一部フエッチしたデータを保持し、命令アクセス時間を
短縮するとともに命令アクセスとデータアクセスの並行
処理を可能にするキャッシュメモリ8と、を含んで構成
されている。
しかしながら、このような従来のMPU命令実行過程の
サンプル方法にあっては、ブリフェッチを行うMPUS
MMU、キャッシュメモリを内蔵するMPUでは以下に
述べるような問題点があった。
サンプル方法にあっては、ブリフェッチを行うMPUS
MMU、キャッシュメモリを内蔵するMPUでは以下に
述べるような問題点があった。
(I)ブリフェッチを行うMPUでは、別表4に示すよ
うに、実際には実行していないが、外部バスでは実行さ
れない命令まで先行フェッチされてしまう、したがって
、不要なデータまでサンプルされるため、必要なデータ
か不要なデータかを判別する必要がある。
うに、実際には実行していないが、外部バスでは実行さ
れない命令まで先行フェッチされてしまう、したがって
、不要なデータまでサンプルされるため、必要なデータ
か不要なデータかを判別する必要がある。
なお、別表4中MOV SCMP 、 BNZ等はMP
Uの各命令を示しており、それぞれムーブ、比較、ブラ
ンチノットゼロ命令を示し、続<A、B。
Uの各命令を示しており、それぞれムーブ、比較、ブラ
ンチノットゼロ命令を示し、続<A、B。
2000 H等はレジスタあるいは番地を表している。
以下、後述する別表1〜3中同−命令は同一の略号で表
すものとする。
すものとする。
(II)また、MMU4を内蔵したMPUIでは、MP
UIの外に出てくるのは第4図に示すように物理アドレ
スだけであり、外部バスのアドレス(物理アドレス)の
サンプルは行えるが、実際に命令をコーディングした時
のアドレス(論理アドレス)のサンプルが行えない。実
際に知りたいのは論理アドレスであるから、そのために
はMMUの状態を判断し、論理アドレスを算出して代行
するか、若しくはMMUを抑止する方式をとるしかない
。
UIの外に出てくるのは第4図に示すように物理アドレ
スだけであり、外部バスのアドレス(物理アドレス)の
サンプルは行えるが、実際に命令をコーディングした時
のアドレス(論理アドレス)のサンプルが行えない。実
際に知りたいのは論理アドレスであるから、そのために
はMMUの状態を判断し、論理アドレスを算出して代行
するか、若しくはMMUを抑止する方式をとるしかない
。
(I[)さらに、キャッシュメモリ内蔵のMPU5では
キャッシュにヒツトした命令、データのアクセスは外部
バスに出力されないため、外部バスでのMPU命令実行
過程のサンプルは全く行えない、MPU命令実行過程の
サンプルを行うには、ディスイネーブルとしてキャッシ
ュメモリの動作を抑止する必要がある1例えば、第5図
に示すように、バスアクセスがキャッシュにヒントしな
かった場合には、■により外部バスにアクセスするため
サンプルを行えるが、この時MPU5内部で■によりそ
のアクセスのデータがキャッシュメモリに書き込まれる
。このため、その後同じアドレスへのアクセスは■によ
り行うため外部では全く判らない。
キャッシュにヒツトした命令、データのアクセスは外部
バスに出力されないため、外部バスでのMPU命令実行
過程のサンプルは全く行えない、MPU命令実行過程の
サンプルを行うには、ディスイネーブルとしてキャッシ
ュメモリの動作を抑止する必要がある1例えば、第5図
に示すように、バスアクセスがキャッシュにヒントしな
かった場合には、■により外部バスにアクセスするため
サンプルを行えるが、この時MPU5内部で■によりそ
のアクセスのデータがキャッシュメモリに書き込まれる
。このため、その後同じアドレスへのアクセスは■によ
り行うため外部では全く判らない。
したがって、従来のサンプル方法にあってはMPU命令
実行過程の正確なサンプルを行うためには、複雑な処理
を行うか、若しくはMPU機構の一部を抑止する必要が
ある。現実には、32bit位のMPUになるとブリフ
ェッチ、MMU、キャッシュメモリ内蔵が増えて来てお
り、従来の解析方法では対応できなくなってきている。
実行過程の正確なサンプルを行うためには、複雑な処理
を行うか、若しくはMPU機構の一部を抑止する必要が
ある。現実には、32bit位のMPUになるとブリフ
ェッチ、MMU、キャッシュメモリ内蔵が増えて来てお
り、従来の解析方法では対応できなくなってきている。
そこで本発明は、MMU、キャッシュメモリを内蔵し、
さらにブリフェッチを行うMPUにおいて、正確なMP
U命令実行のサンプルを行うことができるマイクロプロ
セッサの命令実行過程のサンプル方法を提供することを
目的としている。
さらにブリフェッチを行うMPUにおいて、正確なMP
U命令実行のサンプルを行うことができるマイクロプロ
セッサの命令実行過程のサンプル方法を提供することを
目的としている。
本発明によるマイクロプロセッサの命令実行過程のサン
プル方法は上記目的達成のため、分岐命令実行時の発生
するトラップを使用してマイクロプロセッサ命令実行過
程のサンプルを行うように構成する。
プル方法は上記目的達成のため、分岐命令実行時の発生
するトラップを使用してマイクロプロセッサ命令実行過
程のサンプルを行うように構成する。
また、分岐命令を含む複数の命令を格納し、該命令を実
行することによりトラップを発生し、その時のスタック
退避情報としてトラップの発生番地を有するマイクロプ
ロセッサと、分岐命令実行によるスタック退避のサイク
ルを示す信号によりイネーブル状態となり、トレースメ
モリのアドレスを作成するカウンタと、アドレスとして
該カウンタの出力が入力されるとともに、データとして
該マイクロプロセッサ出力のデータが入力され、スタッ
ク退避の状態を格納する前記トレースメモリと、を具備
し、分岐命令実行時にトラップが発生すると、該マイク
ロプロセッサから該カウンタにスタック退避のサイクル
を示す信号が出力され、その分岐命令のある番地と分岐
先の番地とをトレ−スメモリへ格納し、マイクロプロセ
ッサの命令実行中断後に分岐先の番地および分岐命令の
ある番地間の命令データを該トレースメモリから読み出
し、その間の命令データを実メモリより読み出すことに
よりマイクロプロセッサ命令実行過程のサンプルを行う
ように構成する。
行することによりトラップを発生し、その時のスタック
退避情報としてトラップの発生番地を有するマイクロプ
ロセッサと、分岐命令実行によるスタック退避のサイク
ルを示す信号によりイネーブル状態となり、トレースメ
モリのアドレスを作成するカウンタと、アドレスとして
該カウンタの出力が入力されるとともに、データとして
該マイクロプロセッサ出力のデータが入力され、スタッ
ク退避の状態を格納する前記トレースメモリと、を具備
し、分岐命令実行時にトラップが発生すると、該マイク
ロプロセッサから該カウンタにスタック退避のサイクル
を示す信号が出力され、その分岐命令のある番地と分岐
先の番地とをトレ−スメモリへ格納し、マイクロプロセ
ッサの命令実行中断後に分岐先の番地および分岐命令の
ある番地間の命令データを該トレースメモリから読み出
し、その間の命令データを実メモリより読み出すことに
よりマイクロプロセッサ命令実行過程のサンプルを行う
ように構成する。
本発明では、分岐命令実行時に発生するトラップを使用
してMPU命令実行過程のサンプル方法が行われる。
してMPU命令実行過程のサンプル方法が行われる。
したがって、スタック退避データは論理アドレスである
から、MMU内蔵のMPUでも論理アドレスでのサンプ
ルが行える。また、分岐先と分岐命令の間の命令データ
を、サンプルすることになるため、ブリフェッチを無視
できる。また、キャッシュにヒントして、外部に出力さ
れない命令実行でもスタックへの書き込みは外部バスへ
出力されるため、キャッシュメモリ内蔵のMPUでも命
令実行過程のサンプルが行える。
から、MMU内蔵のMPUでも論理アドレスでのサンプ
ルが行える。また、分岐先と分岐命令の間の命令データ
を、サンプルすることになるため、ブリフェッチを無視
できる。また、キャッシュにヒントして、外部に出力さ
れない命令実行でもスタックへの書き込みは外部バスへ
出力されるため、キャッシュメモリ内蔵のMPUでも命
令実行過程のサンプルが行える。
胤皿脱皿
別表1.2は本発明の詳細な説明するための表であり、
別表1はMPUの動作を示したもの、別表2はそのサン
プルしたトレースデータとMPU命令実行過程の対応を
示したものである。別表1.2中A−Eは任意のレジス
タであり、数字は16進アドレスである。また、別表1
,2中BRA 、 ADD 。
別表1はMPUの動作を示したもの、別表2はそのサン
プルしたトレースデータとMPU命令実行過程の対応を
示したものである。別表1.2中A−Eは任意のレジス
タであり、数字は16進アドレスである。また、別表1
,2中BRA 、 ADD 。
BNC5LOOPはそれぞれブランチ、加算、ブランチ
、ブランチノントキ中す−、ループ命令を示している。
、ブランチノントキ中す−、ループ命令を示している。
したがって、分岐命令は無条件分岐命令としてはブラン
チ命令BRAがあり、条件分岐命令としては0でない場
合には所定番地にとびOであればとばないブランチノッ
トゼロ命令BNZ 、桁上げが発生しなかったら所定番
地にとぶブランチノットキャリー命令BNCおよびルー
プ命令LOOPがあってこれらの分岐命令は別表1中で
は■〜■で示している。■〜■には分岐命令が存在する
が、■■■■では分岐し、■では分岐していない、ここ
で、MPUが以下の動作を行うものとする。
チ命令BRAがあり、条件分岐命令としては0でない場
合には所定番地にとびOであればとばないブランチノッ
トゼロ命令BNZ 、桁上げが発生しなかったら所定番
地にとぶブランチノットキャリー命令BNCおよびルー
プ命令LOOPがあってこれらの分岐命令は別表1中で
は■〜■で示している。■〜■には分岐命令が存在する
が、■■■■では分岐し、■では分岐していない、ここ
で、MPUが以下の動作を行うものとする。
i)分岐実行時にTrapが発生する。
ii ) Trap発生時のスタック退避情報にEXP
CおよびPCがある。ここで、EXPCはTrap発生
の要因となった命令(この場合は分岐命令)のあるアド
レスであり、PCはリターン後の実行アドレス(=分岐
先のアドレス)である。
CおよびPCがある。ここで、EXPCはTrap発生
の要因となった命令(この場合は分岐命令)のあるアド
レスであり、PCはリターン後の実行アドレス(=分岐
先のアドレス)である。
iii ) Trapによるスタック退避のサイクルを
示すインデックス信号が出力される。
示すインデックス信号が出力される。
別表1に示す動作で、スタックに退避するEXPCおよ
びPCをサンプルすることにより別表2に示すようなサ
ンプルデータが完成する。そして、別表1中「)」に示
すPC−EXPC間の命令データをメモリより読み出す
ことによりMPU命令実行過程のサンプルを行うことに
なる。
びPCをサンプルすることにより別表2に示すようなサ
ンプルデータが完成する。そして、別表1中「)」に示
すPC−EXPC間の命令データをメモリより読み出す
ことによりMPU命令実行過程のサンプルを行うことに
なる。
したがって、別表1に示すようにスタック退避データは
論理アドレスであるから、本発明によりMMU内蔵のM
PUでも論理アドレスでのサンプルが行える。また、分
岐先と分岐命令の間の命令データを、サンプルすること
になるため、プリフェッチを無視できる。また、同表■
のようにキャッシュにヒツトして、外部に出力されない
命令実行でもスタックへの書き込みは外部バスへ出力さ
れるため、キャッシュメモリ内蔵のMPUでも命令実行
過程のサンプルが行える。
論理アドレスであるから、本発明によりMMU内蔵のM
PUでも論理アドレスでのサンプルが行える。また、分
岐先と分岐命令の間の命令データを、サンプルすること
になるため、プリフェッチを無視できる。また、同表■
のようにキャッシュにヒツトして、外部に出力されない
命令実行でもスタックへの書き込みは外部バスへ出力さ
れるため、キャッシュメモリ内蔵のMPUでも命令実行
過程のサンプルが行える。
1上皇l医
以下、上記基本原理に基づいて実施例を説明する。第1
図は本発明に係るマイクロプロセッサの命令実行過程の
サンプル方法の第1実施例を示す図であり、トレースデ
ータ(同図では分岐時のPCとEXPC)サンプル用の
ハードウェアを示している。第1図において、11はM
PU (マイクロプロセッサ)、12はサンプルしたデ
ータを格納するトレース用メモリ (トレースメモリ)
、13はトレース用メモ曹月2のアドレスを作成するト
レースアドレスカウンタ(カウンタ)であり、トレース
用メモリ12内のAはトレース用メモリのアドレス信号
線を示し、Dはトレース用メモリのデータ信号線を示し
ている。14はMPUIIのデータバス、15はトレー
スアドレスカウンタ13のアドレスバスであり、トレー
スアドレスカウンタ13にはTrap時MPUIIから
線16を介してスタックブツシュを示す信号が出力され
る。
図は本発明に係るマイクロプロセッサの命令実行過程の
サンプル方法の第1実施例を示す図であり、トレースデ
ータ(同図では分岐時のPCとEXPC)サンプル用の
ハードウェアを示している。第1図において、11はM
PU (マイクロプロセッサ)、12はサンプルしたデ
ータを格納するトレース用メモリ (トレースメモリ)
、13はトレース用メモ曹月2のアドレスを作成するト
レースアドレスカウンタ(カウンタ)であり、トレース
用メモリ12内のAはトレース用メモリのアドレス信号
線を示し、Dはトレース用メモリのデータ信号線を示し
ている。14はMPUIIのデータバス、15はトレー
スアドレスカウンタ13のアドレスバスであり、トレー
スアドレスカウンタ13にはTrap時MPUIIから
線16を介してスタックブツシュを示す信号が出力され
る。
トレース用メモリ12には、アドレスとしてカウンタ(
トレースアドレスカウンタ13)の出力を入れ、データ
としてMPUII出力のデータを入れる。
トレースアドレスカウンタ13)の出力を入れ、データ
としてMPUII出力のデータを入れる。
さらに分岐実行によるスタック退避のサイクルを示す信
号によりカウンタ13をイネーブルするようにしておく
。このハードウェアにより別表2に示したトレースデー
タがサンプルされる。以下、具体的な動作を作用にて述
べる。
号によりカウンタ13をイネーブルするようにしておく
。このハードウェアにより別表2に示したトレースデー
タがサンプルされる。以下、具体的な動作を作用にて述
べる。
次に、作用を説明する。
ジャンプ命令を検出すると、MPUIIはTrapを発
生し、そのときにスタックブツシュを行う、そうすると
、このスタックブツシュでジャンプ命令がある番地(E
XPC)ととび先の番地(PC)をスタックブツシュし
てスタックブツシュしたら直ぐにリターン命令で戻って
くる。この分冗長的なバスサイクルは入ってしまうが、
ブリフェッチなどは無視でき、また、ここに出てくるデ
ータ(あるいはアドレス)というのは論理アドレスであ
るPCがそのまま出力されるので論理アドレスを判別す
ることができる。さらに、キャッシュメモリ内蔵のMP
Uであってキャッシュ実行中のときにもトラップ自体は
キャッシュ実行中も発生するからスタックブツシュが外
部にさえ出力されば外でサンプルすることができる。サ
ンプルされたデータが別表2左側に示すようになるため
、それを後で読んで、例えば同表左上に示すように00
00番地からスタートした場合最初のEXPCの000
4番地までシーケンシャルにメモリからデータを読んで
別表2のように表示する。次いで、0004番地まで読
み出すと、次のPCから次のEXPCまで同様にメモリ
から読み出す。したがって、恰もMPUが実行した命令
をそのまま表示しているようにMPU命令実行過程をサ
ンプリングすることができる。
生し、そのときにスタックブツシュを行う、そうすると
、このスタックブツシュでジャンプ命令がある番地(E
XPC)ととび先の番地(PC)をスタックブツシュし
てスタックブツシュしたら直ぐにリターン命令で戻って
くる。この分冗長的なバスサイクルは入ってしまうが、
ブリフェッチなどは無視でき、また、ここに出てくるデ
ータ(あるいはアドレス)というのは論理アドレスであ
るPCがそのまま出力されるので論理アドレスを判別す
ることができる。さらに、キャッシュメモリ内蔵のMP
Uであってキャッシュ実行中のときにもトラップ自体は
キャッシュ実行中も発生するからスタックブツシュが外
部にさえ出力されば外でサンプルすることができる。サ
ンプルされたデータが別表2左側に示すようになるため
、それを後で読んで、例えば同表左上に示すように00
00番地からスタートした場合最初のEXPCの000
4番地までシーケンシャルにメモリからデータを読んで
別表2のように表示する。次いで、0004番地まで読
み出すと、次のPCから次のEXPCまで同様にメモリ
から読み出す。したがって、恰もMPUが実行した命令
をそのまま表示しているようにMPU命令実行過程をサ
ンプリングすることができる。
以上説明したように、本実施例では、分岐命令が検出さ
れると、MPUにTrapをかけることにより、その分
岐命令があるアドレスEXPCとその次の分岐先のアド
レスPCとをスタックブツシュして、スタックに退避す
るEXPCおよびPCがサンプルできるようにしている
。したがって、MMU、キャッシュメモリを内蔵したM
PUの命令実行過程のサンプルをそれらの機能に制限を
与えることなく行うことができ、さらに、ブリフェッチ
を行うMPUに対しても正確な命令実行過程のサンプル
を行うことができる。
れると、MPUにTrapをかけることにより、その分
岐命令があるアドレスEXPCとその次の分岐先のアド
レスPCとをスタックブツシュして、スタックに退避す
るEXPCおよびPCがサンプルできるようにしている
。したがって、MMU、キャッシュメモリを内蔵したM
PUの命令実行過程のサンプルをそれらの機能に制限を
与えることなく行うことができ、さらに、ブリフェッチ
を行うMPUに対しても正確な命令実行過程のサンプル
を行うことができる。
その結果、これらの高集積化されたMPUのデバッガ、
エミュレータ等のトレース機能の向上に寄与するところ
が多い。
エミュレータ等のトレース機能の向上に寄与するところ
が多い。
玉l災施■
第2図は本発明に係るマイクロプロセッサの命令実行過
程のサンプル方法の第2実施例を示す図であり、第1実
施例と同一構成部分には同一番号・符号を付している。
程のサンプル方法の第2実施例を示す図であり、第1実
施例と同一構成部分には同一番号・符号を付している。
スタップブツシュを示す信号を直接トレース用メモリ1
2に取り込むとともに、MPUIIのデータバス14の
他にMPUIIからトレース用メモリ12にMPUII
のアドレスバス17およびMPUIIのステータス線1
8を介してアドレスデータおよびプログラムのアクセス
、データのアクセス等のステータス情報も全て取り込む
ようにする。
2に取り込むとともに、MPUIIのデータバス14の
他にMPUIIからトレース用メモリ12にMPUII
のアドレスバス17およびMPUIIのステータス線1
8を介してアドレスデータおよびプログラムのアクセス
、データのアクセス等のステータス情報も全て取り込む
ようにする。
このように、分岐命令実行によるスタックアクセスを示
す信号とM P Ull出力のアドレスを同時にサンプ
ルすることにより、命令実行とそれによるデータアクセ
スとの対応もとれるようになる。
す信号とM P Ull出力のアドレスを同時にサンプ
ルすることにより、命令実行とそれによるデータアクセ
スとの対応もとれるようになる。
玉工裏施■
第3図は本発明に係るマイクロプロセッサの命令実行過
程のサンプル方法の第3実施例を示す図であり、分岐実
行時のTrapの代わりに特殊バスサイクルを挿入する
MPUを用いた場合の例である。
程のサンプル方法の第3実施例を示す図であり、分岐実
行時のTrapの代わりに特殊バスサイクルを挿入する
MPUを用いた場合の例である。
第1実施例と同一構成部分には同一番号・符号を付して
いる。
いる。
分岐実行のTrapの代わりに、第3図に示すような分
岐実行時にPC,EXPCを外部へ出力する特殊バスサ
イクルを挿入するMPU20を用いて特殊バスサイクル
を示すインデックス信号を線19を介してトレースアド
レスカウンタ13に出力すれば、別表3に示す、〔〕で
囲まれたデータがサンプルされる。
岐実行時にPC,EXPCを外部へ出力する特殊バスサ
イクルを挿入するMPU20を用いて特殊バスサイクル
を示すインデックス信号を線19を介してトレースアド
レスカウンタ13に出力すれば、別表3に示す、〔〕で
囲まれたデータがサンプルされる。
すなわち、MPUにTrapをかけると、実際にはある
程度の時間がかかるので、単に特殊バスサイクルを挿入
してEXPC,!:PCとを出力するようなサイクルを
挿入するようにMPU20を作るようにすれば、バスサ
イクルを2つ挿入するだけで済むことになる。別言すれ
ば、Trapをかけたらスタックブツシュだけ行われる
ようにする。
程度の時間がかかるので、単に特殊バスサイクルを挿入
してEXPC,!:PCとを出力するようなサイクルを
挿入するようにMPU20を作るようにすれば、バスサ
イクルを2つ挿入するだけで済むことになる。別言すれ
ば、Trapをかけたらスタックブツシュだけ行われる
ようにする。
このような特殊バスサイクルを用い、それを示すインデ
ックス信号を用いれば第1.2実施例と同様の解析を行
うことができる。
ックス信号を用いれば第1.2実施例と同様の解析を行
うことができる。
本発明によれば、MMU、キャッシュメモリを内蔵し、
さらにブリフェッチを行うMPUにおいて、正確なMP
U命令実行のサンプルを行うことができる。
さらにブリフェッチを行うMPUにおいて、正確なMP
U命令実行のサンプルを行うことができる。
第1図は本発明に係るマイクロプロセッサの命令実行過
程のサンプル方法の第1実施例を示す全体構成図、 第2図は本発明に係るマイクロプロセッサの命令実行過
程のサンプル方法の第2実施例を示す全体構成図、 第3図は本発明に係るマイクロプロセッサの命令実行過
程のサンプル方法の第3実施例を示す全体構成図、 第4.5図は高集積化されたマイクロプロセッサの内部
構成を示す図であり、 第4図はMMU内蔵のMPUを示すブロック図、第5図
はキャッシュメモリ内蔵のMPUを示す図である。 11.20・・・・・・MPU (マイクロプロセッサ
)、12・・・・・・トレース用メモリ (トレースメ
モリ)、13・・・・・・トレースアドレスカウンタ(
カウンタ)、14・・・・・・データバス、 15・・・・・・トレースメモリ用アドレスバス、17
・・・・・・アドレスバス、 16.19・・・・・・線、 18・・・・・・ステータス線、 EXPC・・・・・・Trap発生の要因となった分岐
命令のあるアドレス(分岐命令の ある番地)、 PC・・・・・・リターン後の実行アドレス(分岐先の
番地)。 代 理 人 弁理士 井 桁 貞 −別表1 物理アドレス (FOOO) (FOO2) (FOO4) 論理アドレス 0α02 E X P C:Trap発生の要因となった分岐命令
のあるアドレス(分岐命令の ある番地) PC:リターン後の実行アドレス(分岐先の番地) 別表2 サンプルデータ 表示 OGP 2000〜2000 署険司 膿、す 、ニー 有@← 二j礒 譬しト ニ−3;11 )J も か −) hp 口鴫剥 緘トペ υfl 1 。 Ij p転峙 lI& べ脣譬 緘X1llv 廠 口へW to to口 第2実施例の全体構成図 第2図 第 図 従来のMMU内蔵のMPUを示すブロック図114図
程のサンプル方法の第1実施例を示す全体構成図、 第2図は本発明に係るマイクロプロセッサの命令実行過
程のサンプル方法の第2実施例を示す全体構成図、 第3図は本発明に係るマイクロプロセッサの命令実行過
程のサンプル方法の第3実施例を示す全体構成図、 第4.5図は高集積化されたマイクロプロセッサの内部
構成を示す図であり、 第4図はMMU内蔵のMPUを示すブロック図、第5図
はキャッシュメモリ内蔵のMPUを示す図である。 11.20・・・・・・MPU (マイクロプロセッサ
)、12・・・・・・トレース用メモリ (トレースメ
モリ)、13・・・・・・トレースアドレスカウンタ(
カウンタ)、14・・・・・・データバス、 15・・・・・・トレースメモリ用アドレスバス、17
・・・・・・アドレスバス、 16.19・・・・・・線、 18・・・・・・ステータス線、 EXPC・・・・・・Trap発生の要因となった分岐
命令のあるアドレス(分岐命令の ある番地)、 PC・・・・・・リターン後の実行アドレス(分岐先の
番地)。 代 理 人 弁理士 井 桁 貞 −別表1 物理アドレス (FOOO) (FOO2) (FOO4) 論理アドレス 0α02 E X P C:Trap発生の要因となった分岐命令
のあるアドレス(分岐命令の ある番地) PC:リターン後の実行アドレス(分岐先の番地) 別表2 サンプルデータ 表示 OGP 2000〜2000 署険司 膿、す 、ニー 有@← 二j礒 譬しト ニ−3;11 )J も か −) hp 口鴫剥 緘トペ υfl 1 。 Ij p転峙 lI& べ脣譬 緘X1llv 廠 口へW to to口 第2実施例の全体構成図 第2図 第 図 従来のMMU内蔵のMPUを示すブロック図114図
Claims (2)
- (1)分岐命令実行時に発生するトラップを使用してマ
イクロプロセッサ命令実行過程のサンプルを行うことを
特徴とするマイクロプロセッサの命令実行過程のサンプ
ル方法。 - (2)分岐命令を含む複数の命令を格納し、該命令を実
行することによりトラップを発生し、その時のスタック
退避情報としてトラップの発生番地を有するマイクロプ
ロセッサと、 分岐命令実行によるスタック退避のサイクルを示す信号
によりイネーブル状態となり、トレースメモリのアドレ
スを作成するカウンタと、アドレスとして該カウンタの
出力が入力されるとともに、データとして該マイクロプ
ロセッサ出力のデータが入力され、スタック退避の状態
を格納する前記トレースメモリと、を具備し、分岐命令
実行時にトラップが発生すると、該マイクロプロセッサ
から該カウンタにスタック退避のサイクルを示す信号が
出力され、その分岐命令のある番地と分岐先の番地とを
トレースメモリへ格納し、マイクロプロセッサの命令実
行中断後に分岐先の番地および分岐命令のある番地のア
ドレスを該トレースメモリから読み出し、その間の命令
データを実メモリより読み出すことによりマイクロプロ
セッサ命令実行過程のサンプルを行うようにしたことを
特徴とするマイクロプロセッサ命令実行過程のサンプル
方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1028364A JPH02207345A (ja) | 1989-02-07 | 1989-02-07 | マイクロプロセッサの命令実行過程のサンプル方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1028364A JPH02207345A (ja) | 1989-02-07 | 1989-02-07 | マイクロプロセッサの命令実行過程のサンプル方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH02207345A true JPH02207345A (ja) | 1990-08-17 |
Family
ID=12246570
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1028364A Pending JPH02207345A (ja) | 1989-02-07 | 1989-02-07 | マイクロプロセッサの命令実行過程のサンプル方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH02207345A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0528002A (ja) * | 1991-07-24 | 1993-02-05 | Nec Corp | マイクロプロセツサ |
-
1989
- 1989-02-07 JP JP1028364A patent/JPH02207345A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0528002A (ja) * | 1991-07-24 | 1993-02-05 | Nec Corp | マイクロプロセツサ |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5751942A (en) | Trace event detection during trace enable transitions | |
| US5345580A (en) | Microprocessor device and emulator device thereof | |
| KR100350568B1 (ko) | 디버그기능을수행하기위한데이타처리시스템및방법 | |
| US7197671B2 (en) | Generation of trace elements within a data processing apparatus | |
| US5263153A (en) | Monitoring control flow in a microprocessor | |
| KR100309615B1 (ko) | 고속프로그램가능로직컨트롤러(plc) | |
| GB2413657A (en) | Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus | |
| KR960011613A (ko) | 데이터 처리장치 | |
| GB2200482A (en) | Monitoring control flow in a microprocessor | |
| US7110934B2 (en) | Analysis of the performance of a portion of a data processing system | |
| JPH02207345A (ja) | マイクロプロセッサの命令実行過程のサンプル方法 | |
| CN114580329B (zh) | 一种数字信号处理器芯片实时调试方法 | |
| JP2760228B2 (ja) | キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ | |
| JP2563708B2 (ja) | マイクロプロセッサ装置およびそれを用いたエミュレータ装置 | |
| Vranken | Debug facilities in the TriMedia CPU64 architecture | |
| JPH0528002A (ja) | マイクロプロセツサ | |
| Wang et al. | Support Exception and Interrupt | |
| JP2669300B2 (ja) | プログラムトレース回路およびプログラムトレース方法 | |
| JPH08335177A (ja) | プロセッサ動作観察方法及び装置 | |
| JPH087713B2 (ja) | マイクロプロセッサ | |
| JPH04340145A (ja) | キャッシュメモリ装置 | |
| JPH0795288B2 (ja) | マイクロコンピュータ | |
| JPH03252731A (ja) | マイクロプロセッサ | |
| JPS63313244A (ja) | デ−タ処理装置 | |
| JPS6222153A (ja) | マイクロプロセツサの動作解析方法と装置 |