JPH10222391A - エミュレータ - Google Patents

エミュレータ

Info

Publication number
JPH10222391A
JPH10222391A JP9027390A JP2739097A JPH10222391A JP H10222391 A JPH10222391 A JP H10222391A JP 9027390 A JP9027390 A JP 9027390A JP 2739097 A JP2739097 A JP 2739097A JP H10222391 A JPH10222391 A JP H10222391A
Authority
JP
Japan
Prior art keywords
instruction
microprocessor
address
trace
emulation
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
Application number
JP9027390A
Other languages
English (en)
Inventor
Tatsuya Suzuki
達也 鈴木
Atsuyoshi Ito
淳悦 伊藤
Giichi Aoto
義一 青砥
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.)
Hitachi Ltd
Hitachi Solutions Technology Ltd
Original Assignee
Hitachi Ltd
Hitachi ULSI Systems Co Ltd
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 Hitachi Ltd, Hitachi ULSI Systems Co Ltd filed Critical Hitachi Ltd
Priority to JP9027390A priority Critical patent/JPH10222391A/ja
Publication of JPH10222391A publication Critical patent/JPH10222391A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 エミュレーションマイクロプロセッサの外部
バスの状態を、そのとき実行中の命令アドレスに対応付
けて把握できるエミュレータを提供する。 【解決手段】 命令バッファを有するエミュレーション
マイクロプロセッサ(10)はエミュレーションバス
(11)を介してターゲットシステム(5)を代行制御
する。前記マイクロプロセッサによる命令フェッチ動作
及び命令バッファの状態を示すステータス情報とエミュ
レーションバス上のアドレス情報とに基づいて前記マイ
クロプロセッサの実行命令アドレスを生成するPC生成
回路(12)を設け、PC生成回路で生成された命令ア
ドレスが条件設定レジスタ回路(15)に設定されたト
レース条件に一致する状態のとき、エミュレーションバ
スの情報及び前記実行命令アドレスをトレースメモリ
(13)に格納する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロプロセッ
サ応用機器の開発若しくはデバッグを支援するエミュレ
ータに関し、例えば、タスク単位でユーザプログラムの
実行状態を観測するのに有効な技術に関する。
【0002】
【従来の技術】エミュレータは、評価若しくはデバッグ
を行おうとするマイクロプロセッサ応用機器(ターゲッ
トシステム)に搭載されるマイクロプロセッサ(ターゲ
ットマイクロプロセッサ)と同等の機能を有するエミュ
レーション用のマイクロプロセッサ(エミュレーション
マイクロプロセッサ)を有する。エミュレーションマイ
クロプロセッサはユーザプログラム(ターゲットプログ
ラム)を実行し、実行途上で得られるバス情報などはト
レースメモリに蓄積される。また、ユーザプログラムの
実行状態が予じめ設定された条件に一致するときエミュ
レーションマイクロプロセッサによるターゲットプログ
ラムの実行が停止(ブレーク)される。エミュレータ
は、ターゲットプログラムの実行及び停止毎に、トレー
スされた情報に基づいてターゲットプログラムの実行内
容を検証可能にし、それに基づいてユーザプログラムや
ターゲットシステムのデバッグを支援する。
【0003】従来、前記トレースを行う条件やブレーク
の条件は、前記エミュレーションマイクロプロセッサが
出力するアクセスアドレスや制御情報そして入出力デー
タ等とされる。
【0004】尚、エミュレータについては、E7000 H8/
3003,H8/3002,H8/3042シリーズエミュレータ ユーザ
ーズマニュアル(93年9月に株式会社日立マイコンシ
ステム発行)P12〜P13,P85〜P89がある。
【0005】
【発明が解決しようとする課題】ところで、マイクロプ
ロセッサの高機能化が進む中で、その動作プログラムも
マルチタスキング処理やリアルタイム処理などを実現す
るために複雑化され、プログラム容量も大規模化される
傾向にある。また、機器組み込み制御用途ではリアルタ
イムOSが多用されるようになっている。例えば、マル
チタスクタスク処理では複数のタスクを時分割で実行す
るものがある。また、リアルタイムOSは計測機器や被
制御プロセスなどの被制御系の制御を主目的とするもの
である。そのような被制御系に対してはある一定の応答
時間を超えない範囲で制御を行わなければ被制御系に誤
動作を生ずることになる。このため、リアルタイムOS
ではオーバーヘッドを少なくするようにタスク管理やタ
スク間交信並びに時間管理などが行われる。リアルタイ
ムOSにおいて実行可能状態にあるタスクは優先順位に
従って待ち行列に繋がれ、優先順位の高いものから実行
される。実行中のタスクは特定の割り込みや所定のタス
クの起動によって処理が中断されると、前記特定の割り
込みや新たに起動されたタスクに制御が移される。
【0006】前述のように、複数のタスクが時分割的に
実行され、或いは実行完了されていない複数のタスクの
実行状態が切換えられる状況においては、特定のタスク
に着目したデバッグ機能を実現できることの必要性が本
発明者によって見出された。
【0007】また、マイクロプロセッサはその高機能化
により命令バッファを備えるものが多い。命令バッファ
を備える場合、マイクロプロセッサが現在実行中の命令
アドレスは必ずしもその直前の命令フェッチで外部に出
力された命令アドレスに一致していない。このため、エ
ミュレーションマイクロプロセッサの外部バスの状態を
トレースしても、そのトレース結果から、そのとき実行
中の命令アドレスを正確に把握することは難しい。
【0008】本発明の目的は、エミュレーションマイク
ロプロセッサの外部バスの状態を、そのとき実行中の命
令アドレスに対応付けて把握できるようにするエミュレ
ータを提供することにある。
【0009】本発明の別の目的は、タスク単位でその実
行状態をトレースできるエミュレータを提供することに
ある。
【0010】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0011】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0012】すなわち、エミュレータ(1)は、外部か
らフェッチした命令を複数個格納可能な命令バッファを
有するエミュレーション用のマイクロプロセッサ(1
0)と、前記マイクロプロセッサがターゲットシステム
(5)を代行制御するためのアドレス、データ及び制御
信号を伝達するためのエミュレーションバス(11)
と、前記マイクロプロセッサによる命令フェッチ動作及
び前記命令バッファの状態を夫々示すステータス信号
(/IF,/LIRL,/LIR)と前記エミュレーシ
ョンバスに伝達されるアドレス情報(A1〜A27)と
に基づいて前記マイクロプロセッサが実行している命令
アドレス(実行命令アドレス)を生成するPC生成回路
(12)と、前記エミュレーションバスで伝達される情
報と前記PC生成回路で生成される実行命令アドレスと
をエミュレーションバスのバスサイクルに従って格納可
能なトレースメモリ(13)と、所要の条件が任意に設
定可能にされた条件設定レジスタ回路(15)と、前記
PC生成回路で生成された実行命令アドレスが前記条件
設定レジスタ回路に設定された第1のトレース条件に一
致する状態のとき前記トレースメモリにトレースを実行
させるトレース制御手段(TRC)とを備えて成る。
【0013】上記エミュレータによれば、PC生成回路
はマイクロプロセッサが現在実行している命令アドレス
を生成するから、例えば、着目するタスクのプログラム
アドレスの範囲を第1のトレース条件とすれば、前記P
C生成回路で生成された実行命令アドレスがその第1の
トレース条件に一致する状態のとき、前記着目タスクの
実行状態だけをトレースメモリに格納することができ
る。また、トレースメモリに格納される情報には、前記
PC生成回路で生成された実行命令アドレスを含むか
ら、エミュレーションマイクロプロセッサの外部バスの
状態を、そのとき実行中の命令アドレスに対応付けて把
握できる。
【0014】更に、前記PC生成回路で生成された実行
命令アドレスとエミュレーションバスの状態はブレーク
条件の判定にも利用できる。これによれば、着目するタ
スクにおける所要アドレスの命令が実行されのを条件に
ブレークしたり、着目するタスクの実行途上でエミュレ
ーションバスに現れる所定の状態状をブレーク条件にで
きる。
【0015】
【発明の実施の形態】
〔エミュレータ〕図1には本発明の一例に係るエミュレ
ータが示される。同図において1はエミュレータ、3は
ホストシステム、5はターゲットシステムである。
【0016】エミュレータ1はエミュレーションマイク
ロプロセッサ10を有する。エミュレーションマイクロ
プロセッサ10はターゲットシステム5に搭載されるべ
き図示を省略するターゲットマイクロプロセッサと同等
の機能を有する。エミュレーションマイクロプロセッサ
10は代表的に示された命令バッファ100を有する。
前記エミュレーションマイクロプロセッサ10はターゲ
ットシステム5を代行制御する。代行制御するためのア
ドレス、データ及び制御信号はエミュレーションバス1
1に伝達される。エミュレーションバス11はユーザイ
ンタフェース部13Aからインタフェースケーブル13
を介して外部に引き出される。インタフェースケーブル
13の先端は、例えばターゲットプロセッサを実装する
ためのICソケット50に着脱自在に結合される。前記
エミュレーションバス11にはPC生成回路12及びト
レースメモリ13が結合されている。
【0017】前記PC生成回路12は、前記マイクロプ
ロセッサ10による命令フェッチ動作並びに前記命令バ
ッファ100の状態を夫々示すステータス信号と前記エ
ミュレーションバス11に伝達されるアドレス情報とに
基づいて前記マイクロプロセッサ10が実行している実
行命令アドレスを生成する。その詳細は後述する。
【0018】前記トレースメモリ13は、前記エミュレ
ーションバス11で伝達されるアドレス、データ及び制
御信号の各情報と、前記PC生成回路12で生成された
実行命令アドレスとを、エミュレーションバス11のバ
スサイクルに同期して格納するメモリである。トレース
メモリ13に対する書き込みアドレスはトレース制御回
路14がエミュレーションバス11のバスサイクルに同
期して順次生成していく。
【0019】条件設定レジスタ回路15は、前記トレー
スメモリ13によりトレースを行わせるためトレース条
件やエミュレーションマイクロプロセッサ10に対する
ブレーク条件が任意に設定可能にされたレジスタ回路で
ある。前記条件設定レジスタ回路15に対する条件の書
き込み制御、そして前記トレースメモリ13に対する読
み出し制御は、システムバス30を介してホストマイク
ロプロセッサ31が行う。
【0020】条件判定回路16は、前記PC生成回路1
2で生成された実行命令アドレスや前記エミュレーショ
ンバス11に現れる内容が前記条件レジスタ回路15に
設定されたトレース条件やブレーク条件に一致するかを
判定する。前記条件判定回路16はトレース条件に一致
する状態を検出したとき制御信号を160をアサートし
てトレース制御回路14にトレース動作を実行させる。
また、前記条件判定回路16はブレーク条件に一致する
状態を検出したとき制御信号を161をアサートしてブ
レーク制御回路17からブレーク割り込み信号BRKを
エミュレーションマイクロプロセッサ10にアサートさ
せる。前記条件判定回路16による判定動作は、例えば
以下の4通りの判定動作を含む。第1の判定動作は、前
記PC生成回路12で生成された実行命令アドレスが前
記条件設定レジスタ回路15に設定されたトレース条件
に一致するか否かを判定する動作である。第2の判定動
作は、前記エミュレーションバス11の状態が前記条件
設定レジスタ回路15に設定されたトレース条件に一致
するか否かを判定する動作である。第3の判定動作は、
前記PC生成回路12で生成された実行命令アドレスが
前記条件設定レジスタ回路15に設定されたブレーク条
件に一致するか否かを判定する動作である。第4の判定
動作は、前記エミュレーションバス11の状態が前記条
件設定レジスタ回路15に設定されたブレーク条件に一
致するか否かを判定する動作である。
【0021】前記ホストシステム3は、前記ホストマイ
クロプロセッサ31が結合されたシステムバス30に、
ホストマイクロプロセッサ31のワーク領域若しくはデ
ータ一時記憶領域として利用されるシステムメモリ3
2、I/Oインタフェース回路33が接続され、前記I
/Oインタフェース回路33に代表的に示されたディス
ク装置34やディスプレイ装置35が接続されて構成さ
れる。このホストシステム3は、例えばパーソナルコン
ピュータやワークステーション等によって実現されてい
る。
【0022】〔エミュレーションマイクロプロセッサ〕
図2には前記エミュレーションマイクロプロセッサ10
の一例が示される。エミュレーションマイクロプロセッ
サ10は、単結晶シリコンのような1個の半導体基板
に、前記命令バッファ100、シーケンス制御回路10
1、演算回路102及びバスインタフェース回路103
等が設けられて構成される。図2において104は内部
データバス、105は内部アドレスバス、106は内部
コントロールバスである。演算回路102は図示を省略
する演算器、データレジスタ、アドレスレジスタ、及び
コントロールレジスタ等を有する。
【0023】マイクロプロセッサ10は、特に制限され
ないが、外部に対するバスアクセスをロングワード(3
2ビット)又はワード(16ビット)単位で行う。マイ
クロプロセッサ10が出力するアドレス信号はバイトア
ドレス(バイト単位でデータ記憶領域を指すアドレス)
とされる。これに応じて、バスインタフェース回路10
3から外部に出力されるアドレス信号A0〜A27もバ
イトアドレスとされる。マイクロプロセッサ10の命令
は、特に制限されないが、16ビット(ワード)固定長と
される。したがって、命令フェッチのための1回の外部
アクセスで最大2命令を命令バッファ100にフェッチ
することができる。
【0024】図3には命令バッファ100の一例が示さ
れる。命令バッファは、命令レジスタ(IRL)10
7、マルチプレクサ109、及び命令レジスタ(IR)
108を有する。前記命令レジスタ107は、データバ
ス104の下位16ビットD0〜D15に入力が結合され
る。前記マルチプレクサ109は、データバス104の
上位16ビットD16〜D31、下位16ビットD0〜D1
5、又は前記命令レジスタ107の出力を選択して出力
する。前記命令レジスタ108は、マルチプレクサ12
2の出力を入力する。前記命令レジスタ107,108
は特に図示はしないが、マスタ・スレーブの構成にされ
ており、マスタ段が入力動作を行っているときスレーブ
段はラッチ出力状態(記憶データを保持して出力する状
態)を採り、マスタ段がラッチ出力状態にあるとき、ス
レーブ段はマスタ段の出力をスルーで出力させるスルー
出力状態に制御される。
【0025】エミュレーションマイクロプロセッサ10
が外部メモリアクセスをロングワード単位で行うとき、
命令フェッチのための外部メモリアクセスが行われる
と、それによって読み込まれる2命令の内、最初の命令
(下位データバスD0〜D15から供給される命令)は
IR108にラッチされ、次の命令(上位データバスD
16〜D31から供給される命令)はIRL107にラ
ッチされる。ワード長命令であるためアクセスにおいて
アドレス信号の最下位ビットA0は実質的に無視され
る。最下位から第2ビット目のアドレスビットA1は常
に論理値“0”にされる。前記命令レジスタ107,1
08に対するラッチ動作はシーケンス制御回路101が
行う。これに応じてバスインタフェース回路103は、
ステータス信号/IF(記号/はローイネーブル信号で
あることを意味する)をアサートして、レジスタ10
7,108に命令が取り込まれていることを示す。レジ
スタ108にラッチされた命令は前記シーケンス制御回
路101に与えられてデコードされる。バスインタフェ
ース回路103は、ステータス信号/LIRをアサート
して、レジスタ108にラッチされた命令が前記シーケ
ンス制御回路101に与えられて実行されていることを
外部に示す。また、レジスタ107にラッチされた命令
はレジスタ108がラッチする。そのラッチ動作は、先
にレジスタ108にラッチされている命令が実行された
後とされる。バスインタフェース回路103は、ステー
タス信号/LIRLをアサートして、レジスタ107か
らレジスタ108にデータが転送されていることを外部
に知らせる。ワードアクセスの場合には、レジスタ10
7は利用されない。ワードアクセスではアドレスビット
A1の論理値は有意とされる。
【0026】前記バスインタフェース回路103は、前
記ステータス信号/IF、/LIR、/LIRLの他
に、マイクロプロセッサの動作クロック信号に同期した
クロック信号CK、外部にリード動作を指示するリード
信号/RD、外部にライト動作を指示するライト信号/
WRを出力する。更に、アドレス信号A1〜A27を出
力し、データD0〜D31を入出力する。
【0027】〔PC生成回路〕図4には前記PC生成回
路12の一例が示される。PC生成回路12は26ビッ
ト分のラッチ回路120と、論理回路121とによって
構成される。ラッチ回路120は26ビット分のD型ラ
ッチによって構成され、それらD型ラッチのデータ入力
端子(D)はエミュレーションバス11に含まれるアド
レス信号A2〜A27を各ビット毎に受ける。D型ラッ
チの出力端子(Q)からは実行命令アドレスの一部PC
A2〜PCA27が得られる。論理回路121は最下位
の命令アドレスPCA1とラッチ回路120の各D型ラ
ッチに共通のクロック信号PCLを生成する。PCA1
〜PCA27がPC生成回路12で生成された実行命令
アドレスである。尚、マイクロプロセッサ10のアドレ
ス信号はバイトアドレスであるが、命令語長はワード単
位であるからPC生成回路12はA0について無視す
る。
【0028】前記論理回路121はA1,CK,/I
F,/LIRL,/LIRを入力してPCL,PCA1
を生成する。そのための論理構成は以下の通りである。
即ち、データラッチ回路120に対するクロック制御に
関しては、PCLはIFと/CKの論理積信号(PCL
=IF&/CK)とされる。これにより、PCLはステ
ータス信号/IFがローレベルでクロック信号CKの立
ち下がりに同期して、データラッチ回路120にA2〜
A27をラッチさせる。このラッチ動作が行なわれると
き、マイクロプロセッサ10は命令レジスタ107,1
08に2命令をラッチする。論理回路121においてP
CA1を生成する論理はクロック信号CKに同期動作さ
れるマスタ・スレーブ型ラッチ回路類似の論理構成にな
っている。すなわち、CKの立ち下がりに同期してA
1,/IF,/LIRL,/LIRの入力を行う(PC
A1.CLK=/CK)。それら入力に対する出力PC
A1の状態は、IF&A1(記号&は論理積を意味す
る)と、/IF&/LIRL&PCA1と、LIRLと
の論理和(#)の結果とされる。すなわち、IF&A1
は、ステータス信号IFとA1との論理積の結果をPC
A1とする状態である。ロングワードアクセスにおいて
A1は常時論理値“0”、ワードアクセスではA1の論
理値は“0”又は“1”を採る。/IF&/LIRL&
PCA1は、IFとLIRLがハイレベルのとき出力P
CA1を保持する状態である。ロングワードアクセスで
は、IFと交互にLIRLがハイレベルにされる。した
がって、ロングワードアクセスで命令がフェッチされた
とき、IFのハイレベルに同期してPCA1が論理値
“0”にされ、次にLIRLがハイレベルにさたときP
CA1が論理値“1”にされる。ワードアクセスのとき
は、命令フェッチの度にIFがハイレベルにされるので
PCA1はA1の論理値と同じ論理値にされる。
【0029】図4の例示から明らかなようにPC生成回
路12はマイクロプロセッサ10による命令フェッチ動
作及び前記命令バッファの状態を夫々示すステータス信
号と前記エミュレーションバス11に伝達されるアドレ
ス情報とに基づいて前記マイクロプロセッサ10が実行
している命令アドレスを生成することができる。図5に
例示されるようにA1〜A27に、値“n”のアドレス
が出力されて2ワードの命令がフェッチされたとき、P
C生成回路12は、その命令が順次実行されるとき、最
初に実行される命令のアドレス値“n”と、次に実行さ
れる命令のアドレス値“n+2”とをPCA1〜PCA
27によって生成することができる。
【0030】〔トレース制御及びブレーク制御〕図6に
は図1の条件判定回路16、トレース制御回路14及び
ブレーク制御回路17によって構成されるトレース制御
手段TRCとブレーク制御手段BRCの一例が示され
る。
【0031】前記条件設定レジスタ回路15は、トレー
ス条件が設定されるレジスタ150〜152と、ブレー
ク条件が設定されるレジスタ153,154とを有す
る。レジスタ150には所望のタスクの開始命令アドレ
スと終了命令アドレスが設定される。前記レジスタ15
1には所望のアドレス範囲(開始アドレスと終了アドレ
ス)が設定される。レジスタ152には所望のデータ範
囲等が設定される。前記レジスタ153には所望の命令
アドレスが設定され、前記レジスタ154にはエミュレ
ーションバス11で観測可能な所望のデータ値やアドレ
ス値が設定される。各レジスタ150〜154にはシス
テムバス30を介してホストマイクロプロセッサ31が
値を設定する。
【0032】図1で説明した前記条件判定回路16は、
例えばコンパレータ(CMP)162〜166、及びオ
アゲート(OR)167,168によって構成される。
前記コンパレータ162〜166は前記ホストマイクロ
プロセッサ31の制御を介して、動作が選択される。動
作が非選択とされたコンパレータ162〜166の出力
はローレベルに固定される。
【0033】前記レジスタ150は、トレース対象にし
ようとする所望のタスク若しくルーチンのプログラムア
ドレス範囲のような所要の命令アドレス範囲の先頭命令
アドレス(開始命令アドレス)を格納する領域と、最終
命令アドレス(終了命令アドレス)を格納する領域とを
有する。コンパレータ162は、前記PC生成回路12
で生成される実行命令アドレスと先頭命令アドレスとの
大小比較を行うと共に、前記PC生成回路12で生成さ
れる実行命令アドレスと最終命令アドレスとの大小比較
を行い、前記PC生成回路12で生成される実行命令ア
ドレスが先頭命令アドレスから最終命令アドレスまでの
範囲に入っているとき、ハイレベルの信号を出力する。
【0034】前記レジスタ151は、トレース対象にし
ようとするアドレス範囲の先頭アドレス(開始アドレ
ス)を格納する領域と、最終アドレス(終了アドレス)
を格納する領域とを有する。コンパレータ163は、前
記エミュレーションバス11に含まれるアドレスバス上
のアドレスと先頭アドレスとの大小比較を行うと共に、
前記アドレスバス上のアドレスと最終アドレスとの大小
比較を行い、前記エミュレーションバス11に含まれる
アドレスバス上のアドレスが先頭アドレスから最終アド
レスまでの範囲に入っているとき、ハイレベルの信号を
出力する。
【0035】前記レジスタ152は、トレース対象にし
ようとするデータ範囲の先頭データを格納する領域と、
最終データを格納する領域とを有する。コンパレータ1
64は、前記エミュレーションバス11に含まれるデー
タバス上のデータと先頭データとの大小比較を行うと共
に、前記データバス上のデータと最終データとの大小比
較を行い、前記エミュレーションバス11に含まれるデ
ータバス上のデータが先頭データから最終データまでの
範囲に入っているとき、ハイレベルの信号を出力する。
【0036】前記オアゲート167はコンパレータ16
2、163、164の出力を受け、何れか一つがハイレ
ベルにされると、信号160を活性化し、トレース制御
回路14によってエミュレーションバス11の情報をト
レースメモリ13に格納させる。
【0037】前記コンパレータ165は前記PC生成回
路12で生成される実行命令アドレスを前記レジスタ1
53に格納されている命令アドレスと比較し、一致を検
出したとき、ハイレベルの信号を出力する。前記コンパ
レータ166は前記エミュレーションバス11のデータ
値やアドレス値などの情報を前記レジスタ153に格納
されているブレーク条件と比較し、一致を検出したと
き、ハイレベルの信号を出力する。前記コンパレータ1
65,166の出力はオアゲート168に与えられる。
オアゲート168の入力の何れか一つがハイレベルにさ
れると、信号161を活性化し、ブレーク制御回路17
によってブレーク信号BRKをアサートさせる。
【0038】次に上記エミュレータ1を用いたデバッグ
動作の一例を説明する。例えば、レジスタ150に、デ
バッグ対象とするタスクの開始命令アドレスと終了命令
アドレスを設定し、コンパレータ162の動作を活性化
する。そして、マイクロプロセッサ10にユーザプログ
ラムを実行させたとき、PC生成回路12によって前記
タスクの実行命令アドレスが生成されると、その期間に
対応してコンパレータ162の出力がハイレベルにされ
る。これによってトレースメモリ13にはその時のエミ
ュレーションバス11の内容とPC生成回路12の出力
とが、バスサイクル毎に格納される。割り込みや例外処
理、或いは時分割的なタスク切換えなどによって、途中
でマイクロプロセッサ10の制御がその他のタスクに移
されても、そのときは、トレース動作が停止される結
果、着目するタスクに関してだけトレース情報を得るこ
とができる。したがって、タスク毎のデバッグを容易に
行うことができる。
【0039】また、複数のタスクを実行するときに利用
される共有メモリに着目したとき、その共有メモリがマ
ッピングされるアドレス範囲を前記レジスタ151に設
定した場合について説明する。この時は、コンパレータ
163の動作を活性化する。例えば前記共有メモリは、
リアルタイムOSにおけるタスク間通信用のメールボッ
クス等として利用されるメモリである。マイクロプロセ
ッサ10にユーザプログラムを実行させたとき、前記共
有メモリがアクセスされる度に、コンパレー163はト
レースメモリにエミュレーションバス11の状態とPC
生成回路12の出力命令アドレスを蓄積させる。例えば
図7のように、複数種類のタスクが時分割的に共有メモ
リ7をアクセスするとき、トレースメモリ13には、図
8に示されるように、PC生成回路12から出力される
実行命令アドレス、共有メモリ7に対するアクセスアド
レス、アクセスデータ、ステータス等がバスサイクル毎
にトレースメモリ13に蓄積される。したがって、着目
するメモリ領域に対するマイクロプロセッサ10のアク
セスを、その時マイクロプロセッサ10が実行する命令
アドレス更にはタスクと対応付けて把握することいがで
きるようになる。
【0040】そして、着目するタスクの中でマイクロプ
ロセッサ10の動作を停止させたい命令アドレス(ブレ
ークポイン)を前記レジスタ153に設定すれば、PC
生成回路12から出力される実行命令アドレスが前記レ
ジスタ153の値に一致したとき、コンパレータ165
の出力がハイレベルにされる結果、ブレーク割り込み信
号BRKによってマイクロプロセッサ10によるユーザ
プログラムの実行を停止させることができる。
【0041】また、レジスタ154にエミュレーション
バス11の所望の状態を設定すれば、この設定に一致す
る状態が生じたとき、コンパレータ166の出力がハイ
レベルにされる結果、ブレーク割り込み信号BRKによ
ってマイクロプロセッサ10によるユーザプログラムの
実行を停止させることができる。
【0042】以上本発明者によってなされた発明を実施
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。
【0043】例えば、トレース条件の判定はトレース条
件と参照情報との大小比較によって行う場合に限定され
ず、アドレス信号などの所定の下位側情報をマスクして
比較する手法を採用することも可能である。また、エミ
ュレーションマイクロプロセッサの内蔵モジュールは上
記の例に限定されず、適宜変更可能である。また、命令
バッファは、上記の例に限定されず、直列3段以上の命
令キューによって構成してもよい。また、命令は16ビッ
ト固定長に限定されず、それ以上のビット数の命令、或
いは可変長の命令であってもよい。また、条件判定回路
は、コンパレータとアンドゲートによって構成すること
も可能である。
【0044】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0045】すなわち、PC生成回路はマイクロプロセ
ッサが現在実行している命令アドレスを生成するから、
例えば、着目するタスクのプログラムアドレスの範囲を
第1のトレース条件とすれば、前記PC生成回路で生成
された命令アドレスがその第1のトレース条件に一致す
る状態のとき、前記着目タスクの実行状態だけをトレー
スメモリに格納することができる。また、トレースメモ
リに格納される情報には、前記PC生成回路で生成され
た命令アドレスを含むから、エミュレーションマイクロ
プロセッサの外部バスの状態を、そのとき実行中の命令
アドレスに対応付けて把握できる。
【0046】更に、前記PC生成回路で生成された命令
アドレスとエミュレーションバスの状態はブレーク条件
の判定にも利用できるから、着目するタスクにおける所
要アドレスの命令が実行されのを条件にブレークした
り、着目するタスクの実行途上でエミュレーションバス
に現れる所定の状態状をブレーク条件にできる。
【0047】このように、本願発明によれば、エミュレ
ーションマイクロプロセッサの外部バスの状態を、その
とき実行中の命令アドレスに対応付けて把握できるエミ
ュレータを提供することができる。そして、タスク単位
でその実行状態をトレースできるエミュレータを提供す
ることができる。
【図面の簡単な説明】
【図1】本発明の一例に係るエミュレータのブロック図
である。
【図2】エミュレーションマイクロプロセッサの一例ブ
ロック図である。
【図3】命令バッファの一例ブロック図である。
【図4】PC生成回路の一例ブロック図である。
【図5】PC生成回路による実行命令アドレス生成動作
の一例タイミングチャートである。
【図6】トレース制御手段とブレーク制御手段の一例ブ
ロック図である。
【図7】複数のタスクが共有メモリをアクセスする動作
の一例タイミングチャートである。
【図8】図7の動作によってトレースメモリに得られる
情報の一例を示す説明図である。
【符号の説明】
1 エミュレータ 3 ホストシステム 5 ターゲットシステム 10 エミュレーションマイクロプロセッサ 11 エミュレーションバス 12 PC生成回路 13 トレースメモリ 14 トレース制御回路 15 条件設定レジスタ回路 16 条件判定回路 17 ブレーク制御回路 100 命令バッファ 101 シーケンス制御回路 102 演算回路 103 バスインタフェース回路 D0〜D31データ A0〜A27 アドレス信号 CK クロック信号 /IF,/LIRL,/LIR ステータス信号 104 内部データバス 107 命令レジスタ 108 命令レジスタ 109 マルチプレクサ 120 ラッチ回路 121 論理回路 150〜154 レジスタ 162〜166 コンパレータ 167,168 オアゲート
───────────────────────────────────────────────────── フロントページの続き (72)発明者 伊藤 淳悦 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 青砥 義一 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体事業部内

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 外部からフェッチした命令を複数個格納
    可能な命令バッファを有するエミュレーション用のマイ
    クロプロセッサと、前記マイクロプロセッサがターゲッ
    トシステムを代行制御するためのアドレス、データ及び
    制御信号を伝達するためのエミュレーションバスと、前
    記マイクロプロセッサによる命令フェッチ動作及び前記
    命令バッファの状態を夫々示すステータス信号と前記エ
    ミュレーションバスに伝達されるアドレス情報とに基づ
    いて前記マイクロプロセッサが実行している命令アドレ
    スを生成するPC生成回路と、前記エミュレーションバ
    スで伝達される情報と前記PC生成回路で生成される命
    令アドレスとをエミュレーションバスのバスサイクルに
    従って格納可能なトレースメモリと、所要の条件が任意
    に設定可能にされた条件設定レジスタ回路と、前記PC
    生成回路で生成された命令アドレスが前記条件設定レジ
    スタ回路に設定された第1のトレース条件に一致する状
    態のとき前記トレースメモリにトレースを実行させるト
    レース制御手段と、を備えて成るものであることを特徴
    とするエミュレータ。
  2. 【請求項2】 前記トレース制御手段は更に、前記エミ
    ュレーションバスの状態が前記条件設定レジスタ回路に
    設定された第2のトレース条件に一致する状態のとき前
    記トレースメモリにトレースを実行させるものであるこ
    とを特徴とする請求項1記載のエミュレータ。
  3. 【請求項3】 前記PC生成回路で生成された命令アド
    レスが前記条件設定レジスタ回路に設定された第1のブ
    レーク条件に一致するとき前記マイクロプロセッサの命
    令実行動作を停止させるブレーク信号をアサートするブ
    レーク制御手段を更に備えて成るものであることを特徴
    とする請求項1又は2記載のエミュレータ。
  4. 【請求項4】 前記ブレーク制御手段は更に、前記エミ
    ュレーションバスの状態が前記条件設定レジスタ回路に
    設定された第2のブレーク条件に一致するとき前記ブレ
    ーク信号をアサートするものであることを特徴とする請
    求項3記載のエミュレータ。
JP9027390A 1997-02-12 1997-02-12 エミュレータ Withdrawn JPH10222391A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9027390A JPH10222391A (ja) 1997-02-12 1997-02-12 エミュレータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9027390A JPH10222391A (ja) 1997-02-12 1997-02-12 エミュレータ

Publications (1)

Publication Number Publication Date
JPH10222391A true JPH10222391A (ja) 1998-08-21

Family

ID=12219741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9027390A Withdrawn JPH10222391A (ja) 1997-02-12 1997-02-12 エミュレータ

Country Status (1)

Country Link
JP (1) JPH10222391A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7366876B1 (en) 2000-10-31 2008-04-29 Analog Devices, Inc. Efficient emulation instruction dispatch based on instruction width

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7366876B1 (en) 2000-10-31 2008-04-29 Analog Devices, Inc. Efficient emulation instruction dispatch based on instruction width

Similar Documents

Publication Publication Date Title
US5630102A (en) In-circuit-emulation event management system
JP2752592B2 (ja) マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法
US5737516A (en) Data processing system for performing a debug function and method therefor
US5964893A (en) Data processing system for performing a trace function and method therefor
KR0168656B1 (ko) 데이터 처리 시스템
US5704034A (en) Method and circuit for initializing a data processing system
US6026501A (en) Data processing system for controlling execution of a debug function and method thereof
US6523136B1 (en) Semiconductor integrated circuit device with processor
US5640542A (en) On-chip in-circuit-emulator memory mapping and breakpoint register modules
EP0702297B1 (en) A data processor with breakpoint circuit
JPH11338734A (ja) コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法
US20020144235A1 (en) Debugging embedded systems
US6070204A (en) Method and apparatus for using universal serial bus keyboard to control DOS operations
JPH01109456A (ja) インタフエイス装置
US6760864B2 (en) Data processing system with on-chip FIFO for storing debug information and method therefor
US6678838B1 (en) Method to track master contribution information in a write buffer
JP2000207247A (ja) コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法
EP0762278A1 (en) Data processor with built-in emulation circuit
US6550015B1 (en) Scalable virtual timer architecture for efficiently implementing multiple hardware timers with minimal silicon overhead
JP2000020488A (ja) コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法
JPH10222391A (ja) エミュレータ
US6510507B1 (en) Page address look-up range ram
JP2020140380A (ja) 半導体装置及びデバッグシステム
JP2664644B2 (ja) マイクロプロセッサのリセット方法
JPH04171542A (ja) デバッグ機能内蔵マイクロプロセッサ

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: 20040511