JPH11306040A - エミュレータのトレース装置 - Google Patents
エミュレータのトレース装置Info
- Publication number
- JPH11306040A JPH11306040A JP10110981A JP11098198A JPH11306040A JP H11306040 A JPH11306040 A JP H11306040A JP 10110981 A JP10110981 A JP 10110981A JP 11098198 A JP11098198 A JP 11098198A JP H11306040 A JPH11306040 A JP H11306040A
- Authority
- JP
- Japan
- Prior art keywords
- trace
- emulator
- data
- output
- memory
- 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
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
(57)【要約】
【課題】 エミュレータのトレース装置において、端子
数の増加やメモリ容量の増大を招くことなしに、必要な
トレース情報をすべてサポートできるようにする。 【解決手段】 エミュレータI/Fデバイス12内に、
トレースデータを選択的に出力するセレクタ14を設
け、ユーザが指定したトレースデータのみをトレースメ
モリ13aに格納するようにした。
数の増加やメモリ容量の増大を招くことなしに、必要な
トレース情報をすべてサポートできるようにする。 【解決手段】 エミュレータI/Fデバイス12内に、
トレースデータを選択的に出力するセレクタ14を設
け、ユーザが指定したトレースデータのみをトレースメ
モリ13aに格納するようにした。
Description
【0001】
【発明の属する技術分野】この発明は、マイクロコンピ
ュータ(以下、マイコン)の開発支援装置(エミュレー
タ)に関し、とくにエミュレータのトレース装置に関す
る。
ュータ(以下、マイコン)の開発支援装置(エミュレー
タ)に関し、とくにエミュレータのトレース装置に関す
る。
【0002】
【従来の技術】マイコンの開発支援装置として用いられ
ているエミュレータは、対象となるプログラムをターゲ
ットCPU上で実行させ、その実行軌跡を追うことによ
りプログラム動作を検証する装置である。このエミュレ
ータには、プログラムの実行軌跡を記憶したり、表示さ
せたりするトレース機能、プログラムがユーザの設定条
件に一致したときにプログラムの実行を停止したりする
ブレーク機能などが用意されている。
ているエミュレータは、対象となるプログラムをターゲ
ットCPU上で実行させ、その実行軌跡を追うことによ
りプログラム動作を検証する装置である。このエミュレ
ータには、プログラムの実行軌跡を記憶したり、表示さ
せたりするトレース機能、プログラムがユーザの設定条
件に一致したときにプログラムの実行を停止したりする
ブレーク機能などが用意されている。
【0003】図8は、従来例のエミュレータにおけるト
レース装置の構成を示すブロック図である。図8におい
て、1はマイクロプログラムを実行するターゲットCP
Uとしてのマイクロコンピュータ(以下、マイコン)、
2はエミュレータI/Fデバイス、3はエミュレーショ
ンの結果を格納するための複数のトレースメモリであ
る。このうち、エミュレータI/Fデバイス2、トレー
スメモリ3はトレース装置10を構成している。
レース装置の構成を示すブロック図である。図8におい
て、1はマイクロプログラムを実行するターゲットCP
Uとしてのマイクロコンピュータ(以下、マイコン)、
2はエミュレータI/Fデバイス、3はエミュレーショ
ンの結果を格納するための複数のトレースメモリであ
る。このうち、エミュレータI/Fデバイス2、トレー
スメモリ3はトレース装置10を構成している。
【0004】図8において、マイコン1でマイクロプロ
グラムを実行すると、その処理の結果として得られた端
子情報や内部情報などのトレース情報はエミュレータI
/Fデバイス2を介してトレースメモリ3へ格納され
る。前記エミュレータI/Fデバイス2には、それぞれ
のトレースメモリと1対1に対応する複数の端子4が設
けられており、エミュレータI/Fデバイス2で並べ替
えられたトレース情報は対応するトレースメモリ3へ送
られる。
グラムを実行すると、その処理の結果として得られた端
子情報や内部情報などのトレース情報はエミュレータI
/Fデバイス2を介してトレースメモリ3へ格納され
る。前記エミュレータI/Fデバイス2には、それぞれ
のトレースメモリと1対1に対応する複数の端子4が設
けられており、エミュレータI/Fデバイス2で並べ替
えられたトレース情報は対応するトレースメモリ3へ送
られる。
【0005】
【発明が解決しようとする課題】ところで、エミュレー
ションにより得られたトレース情報をトレースデータと
してトレースメモリ3に格納する場合、従来はこれらの
トレース情報を出力するための端子4を、その情報の数
に応じてすべて用意する必要があった。しかし、内部が
並列に動作するマイコンを用い、その情報をそれぞれト
レースする場合や、沢山のバス情報、内部情報をトレー
スするような場合には、それぞれの情報量が多くなるた
め、そのすべてをトレースメモリに出力するには多くの
端子を設ける必要があった。また、メモリ容量も増大す
るため、エミュレーションにより得られるすべての情報
をサポートするのは難しいという問題点があった。
ションにより得られたトレース情報をトレースデータと
してトレースメモリ3に格納する場合、従来はこれらの
トレース情報を出力するための端子4を、その情報の数
に応じてすべて用意する必要があった。しかし、内部が
並列に動作するマイコンを用い、その情報をそれぞれト
レースする場合や、沢山のバス情報、内部情報をトレー
スするような場合には、それぞれの情報量が多くなるた
め、そのすべてをトレースメモリに出力するには多くの
端子を設ける必要があった。また、メモリ容量も増大す
るため、エミュレーションにより得られるすべての情報
をサポートするのは難しいという問題点があった。
【0006】この発明は、端子数の増加やメモリ容量の
増大を招くことなしに、必要な情報をすべてサポートす
ることができるエミュレータのトレース装置を提供する
ことを目的とする。
増大を招くことなしに、必要な情報をすべてサポートす
ることができるエミュレータのトレース装置を提供する
ことを目的とする。
【0007】
【課題を解決するための手段】上記課題を解決するた
め、請求項1の発明は、ターゲットCPU上で実行させ
たプログラムの実行軌跡を記憶・表示させるエミュレー
タのトレース装置において、トレースメモリに格納すべ
きトレースデータを選択的に出力するセレクタを設けた
ことを特徴とする。
め、請求項1の発明は、ターゲットCPU上で実行させ
たプログラムの実行軌跡を記憶・表示させるエミュレー
タのトレース装置において、トレースメモリに格納すべ
きトレースデータを選択的に出力するセレクタを設けた
ことを特徴とする。
【0008】請求項2の発明は、請求項1において、前
記セレクタは、あらかじめ指定されたトレースデータを
出力することを特徴とする。
記セレクタは、あらかじめ指定されたトレースデータを
出力することを特徴とする。
【0009】請求項3の発明は、請求項1において、前
記セレクタは、出力するトレースデータをイベント出力
に応じて切り替えることを特徴とする。
記セレクタは、出力するトレースデータをイベント出力
に応じて切り替えることを特徴とする。
【0010】請求項4の発明は、請求項1において、前
記セレクタは、出力するトレースデータを時分割で切り
替えることを特徴とする。
記セレクタは、出力するトレースデータを時分割で切り
替えることを特徴とする。
【0011】請求項5の発明は、請求項1において、前
記セレクタは、出力するトレースデータを優先順位に応
じて切り替えることを特徴とする。
記セレクタは、出力するトレースデータを優先順位に応
じて切り替えることを特徴とする。
【0012】請求項6の発明は、請求項5において、前
記トレースデータの優先順位は、イベント出力に応じて
変更されることを特徴とする。
記トレースデータの優先順位は、イベント出力に応じて
変更されることを特徴とする。
【0013】
【発明の実施の形態】以下、この発明に係わるエミュレ
ータのトレース装置の一実施形態について説明する。
ータのトレース装置の一実施形態について説明する。
【0014】図1は、この実施形態のエミュレータにお
けるトレース装置の構成を示すブロック図である。図1
において、11はマイクロプログラムを実行するターゲ
ットCPUとしてのマイコン11、12はエミュレータ
I/Fデバイス、13a、bはエミュレーションの結果
を格納するトレースメモリである。このうち、エミュレ
ータI/Fデバイス12、トレースメモリ13a、bは
トレース装置20を構成している。
けるトレース装置の構成を示すブロック図である。図1
において、11はマイクロプログラムを実行するターゲ
ットCPUとしてのマイコン11、12はエミュレータ
I/Fデバイス、13a、bはエミュレーションの結果
を格納するトレースメモリである。このうち、エミュレ
ータI/Fデバイス12、トレースメモリ13a、bは
トレース装置20を構成している。
【0015】エミュレータI/Fデバイス12には、マ
イクロプログラムを実行した際のマイコン11の端子情
報や内部情報を、トレースデータとして選択的に出力す
るセレクタ14が設けられている。このセレクタ14で
は、マイコン11から入力される9つの情報のうち、あ
らかじめユーザにより選択された1つの情報のみが出力
される。またエミュレータI/Fデバイス12には、セ
レクタ14からのトレースデータをトレースメモリ13
aへ出力するための端子15が設けられている。トレー
スメモリ13aは、エミュレータI/Fデバイス12で
並べ替えなどの加工を施された情報を格納する。トレー
スメモリ13bは、マイコン11から直接出力される情
報を格納する。なお、以下の説明において、トレースメ
モリ13とは13aを指しているものとする。
イクロプログラムを実行した際のマイコン11の端子情
報や内部情報を、トレースデータとして選択的に出力す
るセレクタ14が設けられている。このセレクタ14で
は、マイコン11から入力される9つの情報のうち、あ
らかじめユーザにより選択された1つの情報のみが出力
される。またエミュレータI/Fデバイス12には、セ
レクタ14からのトレースデータをトレースメモリ13
aへ出力するための端子15が設けられている。トレー
スメモリ13aは、エミュレータI/Fデバイス12で
並べ替えなどの加工を施された情報を格納する。トレー
スメモリ13bは、マイコン11から直接出力される情
報を格納する。なお、以下の説明において、トレースメ
モリ13とは13aを指しているものとする。
【0016】図1に示すようなトレース装置20を含む
エミュレータは、図示しないユーザ側のコンピュータシ
ステムと接続されており、ユーザはエミュレータでの処
理結果などを自己のコンピュータシステムに取り込み、
またエミュレータシステムに指示などを与えている。
エミュレータは、図示しないユーザ側のコンピュータシ
ステムと接続されており、ユーザはエミュレータでの処
理結果などを自己のコンピュータシステムに取り込み、
またエミュレータシステムに指示などを与えている。
【0017】次に、上記のように構成されたトレース装
置20において、トレースデータを選択的に出力する実
施形態について説明する。
置20において、トレースデータを選択的に出力する実
施形態について説明する。
【0018】(1)実施形態1 マイコン11が並列動作する場合、レジスタ、命令メモ
リ、内部キャッシュメモリ、I/Oなどの情報がトレー
スのソースとなり、これらのソースは同時に動くことも
ある。これらをすべてトレースメモリ13に格納するこ
とは、それぞれのソースでアドレスやデータを出力する
必要があり、それぞれのバス幅も多く難しい。そこで、
この実施形態1では、エミュレータI/Fデバイス12
のセレクタ14において、あらかじめ選択された1つ
(又は複数)のソースを端子15から出力するようにし
ている。この場合、セレクタ14でのソースの選択は、
ユーザが自己のコンピュータシステムからコマンドで指
定する。したがって、ユーザは選択すべきソースを任意
に変更することができる。
リ、内部キャッシュメモリ、I/Oなどの情報がトレー
スのソースとなり、これらのソースは同時に動くことも
ある。これらをすべてトレースメモリ13に格納するこ
とは、それぞれのソースでアドレスやデータを出力する
必要があり、それぞれのバス幅も多く難しい。そこで、
この実施形態1では、エミュレータI/Fデバイス12
のセレクタ14において、あらかじめ選択された1つ
(又は複数)のソースを端子15から出力するようにし
ている。この場合、セレクタ14でのソースの選択は、
ユーザが自己のコンピュータシステムからコマンドで指
定する。したがって、ユーザは選択すべきソースを任意
に変更することができる。
【0019】例えば、標準として、PC(プログラム・
カウンタ)、外部バスアドレス、外部バスデータ、外部
バスステータスの4つのデータを格納し、それに表1に
示す選択候補No.1〜No.9のうちの1つを選択し
てセレクタ14に指定する。
カウンタ)、外部バスアドレス、外部バスデータ、外部
バスステータスの4つのデータを格納し、それに表1に
示す選択候補No.1〜No.9のうちの1つを選択し
てセレクタ14に指定する。
【表1】 ユーザがプログラムの実行前に、あらかじめ見たいトレ
ースデータを指定しておくと、エミュレータI/Fデバ
イス12のセレクタ14からは、指定されたトレースデ
ータのみが出力されて、トレースメモリ13へ格納され
る。ユーザはプログラムを実行中又は実行後にトレース
メモリ13に格納されたデータを自己のコンピュータシ
ステムに取り込むことにより、選択しておいたトレース
データを見ることができる。例えば、表1の選択候補N
o.1を選択した場合、トレースデータはトレースメモ
リ13に図2のように格納される。図2において、標準
格納データとして、PC、外部バスアドレス、外部バス
データ、外部バスステータスの4つが格納され、選択格
納データとして、選択された仮想アドレス(No.1)
が格納されている。また、トレースメモリには標準及び
選択された情報と共に、何が選択されたを示す選択情報
判別フラグのフラグデータも同時に格納される。図2に
示すライトストローブは、トレースメモリ13へのトレ
ースデータの書き込みタイミングを示している。
ースデータを指定しておくと、エミュレータI/Fデバ
イス12のセレクタ14からは、指定されたトレースデ
ータのみが出力されて、トレースメモリ13へ格納され
る。ユーザはプログラムを実行中又は実行後にトレース
メモリ13に格納されたデータを自己のコンピュータシ
ステムに取り込むことにより、選択しておいたトレース
データを見ることができる。例えば、表1の選択候補N
o.1を選択した場合、トレースデータはトレースメモ
リ13に図2のように格納される。図2において、標準
格納データとして、PC、外部バスアドレス、外部バス
データ、外部バスステータスの4つが格納され、選択格
納データとして、選択された仮想アドレス(No.1)
が格納されている。また、トレースメモリには標準及び
選択された情報と共に、何が選択されたを示す選択情報
判別フラグのフラグデータも同時に格納される。図2に
示すライトストローブは、トレースメモリ13へのトレ
ースデータの書き込みタイミングを示している。
【0020】図2の例では、選択された仮想アドレスに
は実データなどが含まれていないため、トレースメモリ
に空きエリアが生じている。そこで、図3に示すよう
に、この空きエリアに更に他のトレースデータを格納す
るようにしても良い。図3は、No.1の空きエリアに
No.5のデータを格納した例を示している。この場
合、表1の選択候補No.1とNo.5を同時に指定す
る。図3では、No.5のステータスに関するデータは
格納できないが、実際のエミュレーションにおいては、
すべてのデータを見なくても良い場合もあり、このよう
な使い方では不都合を生じることはない。また、選択候
補No.2を選択した場合には、図4のように格納され
る。いずれの場合も、フラグデータには、選択されたす
べてのデータの選択情報判別フラグが格納される。
は実データなどが含まれていないため、トレースメモリ
に空きエリアが生じている。そこで、図3に示すよう
に、この空きエリアに更に他のトレースデータを格納す
るようにしても良い。図3は、No.1の空きエリアに
No.5のデータを格納した例を示している。この場
合、表1の選択候補No.1とNo.5を同時に指定す
る。図3では、No.5のステータスに関するデータは
格納できないが、実際のエミュレーションにおいては、
すべてのデータを見なくても良い場合もあり、このよう
な使い方では不都合を生じることはない。また、選択候
補No.2を選択した場合には、図4のように格納され
る。いずれの場合も、フラグデータには、選択されたす
べてのデータの選択情報判別フラグが格納される。
【0021】実際にユーザがトレースメモリの内容を参
照する場合、すべてのデータを必要とすることは少な
く、全体を通して概要を見たい、又はあるデータの動き
に焦点を絞って見たいというようなケースがほとんどで
あるが、プログラム実行時のソースをすべてトレースメ
モリに格納したい場合には、同じプログラム実行をトレ
ースソース分の回数だけ繰り返し、繰り返すごとに選択
するトレースソースを変更して、セレクタ14からの出
力をトレースメモリ13に格納する。この時、次の繰り
返しトレースの前に、トレースデータ13の内容を他の
メモリ(例えば、ユーザのコンピュータシステムのメモ
リなど)に退避する。回数分のトレース終了後に、退避
したトレースデータにより、そのプログラム実行時のす
べてのソースデータを見ることができる。なお、図1の
トレースメモリ13は1つであるため、すべてのトレー
スデータを格納することはできない。したがって、すべ
てのソースを見るには、ユーザ側のメモリに格納されて
いるトレースデータを参照する。
照する場合、すべてのデータを必要とすることは少な
く、全体を通して概要を見たい、又はあるデータの動き
に焦点を絞って見たいというようなケースがほとんどで
あるが、プログラム実行時のソースをすべてトレースメ
モリに格納したい場合には、同じプログラム実行をトレ
ースソース分の回数だけ繰り返し、繰り返すごとに選択
するトレースソースを変更して、セレクタ14からの出
力をトレースメモリ13に格納する。この時、次の繰り
返しトレースの前に、トレースデータ13の内容を他の
メモリ(例えば、ユーザのコンピュータシステムのメモ
リなど)に退避する。回数分のトレース終了後に、退避
したトレースデータにより、そのプログラム実行時のす
べてのソースデータを見ることができる。なお、図1の
トレースメモリ13は1つであるため、すべてのトレー
スデータを格納することはできない。したがって、すべ
てのソースを見るには、ユーザ側のメモリに格納されて
いるトレースデータを参照する。
【0022】また、新たなトレースソースを追加したい
場合、図8のような従来構成では、エミュレータI/F
デバイス2の端子を増やす必要があり、トレースメモリ
3も増やさなければならない。とくに、エミュレータI
/Fデバイス2の端子を増やすには、基板ごと作り替え
なければならないため、ハードウェア増加の影響が大き
い。しかし、この実施形態のトレース装置では、セレク
タ14の入力数を増やすことで対応することができる。
この場合はセレクタの入れ替えが必要となるが、従来構
成に比べてハードウェアの大幅な増加を招くことはな
い。
場合、図8のような従来構成では、エミュレータI/F
デバイス2の端子を増やす必要があり、トレースメモリ
3も増やさなければならない。とくに、エミュレータI
/Fデバイス2の端子を増やすには、基板ごと作り替え
なければならないため、ハードウェア増加の影響が大き
い。しかし、この実施形態のトレース装置では、セレク
タ14の入力数を増やすことで対応することができる。
この場合はセレクタの入れ替えが必要となるが、従来構
成に比べてハードウェアの大幅な増加を招くことはな
い。
【0023】(2)実施形態2 エミュレータには、マイコン11のいろいろな事象を捉
えるイベント検出機能がある。これをトレース装置20
での選択制御と組み合わせることにより、トレースした
いデータを漏れなくトレースメモリ13に格納すること
ができる。この実施形態2では、マイコン11に生じる
イベント出力に応じてセレクタ14の出力内容を切り替
えるようにしている。例えば、通常は選択候補No.2
の命令ROMアクセスをトレースし、レジスタへのアク
セスがあったときのみ、優先してその内容をトレースす
るような場合、トレースデータはトレースメモリ13に
図5のように格納される。図5に示すように、命令RO
Mアクセスをトレースしている間にレジスタへのアクセ
スがあると、イベント出力が立ち上がり、それ以降はN
o.8のレジスタアクセスの内容が格納される。その
後、レジスタへのアクセスが終了し、イベント出力がな
くなると、それ以降は再びNo.2の命令ROMアクセ
スの内容が格納される。この場合、レジスタアクセス
(No.8)の内容をトレースしている間、命令ROM
アクセス(No.2)の内容はトレースされないが、命
令ROMアクセスの内容が一部抜けても、レジスタアク
セスの内容だけはすべてトレースしておきたいというよ
うに、特定の内容についてのみ優先的にトレースしたい
場合に有効である。
えるイベント検出機能がある。これをトレース装置20
での選択制御と組み合わせることにより、トレースした
いデータを漏れなくトレースメモリ13に格納すること
ができる。この実施形態2では、マイコン11に生じる
イベント出力に応じてセレクタ14の出力内容を切り替
えるようにしている。例えば、通常は選択候補No.2
の命令ROMアクセスをトレースし、レジスタへのアク
セスがあったときのみ、優先してその内容をトレースす
るような場合、トレースデータはトレースメモリ13に
図5のように格納される。図5に示すように、命令RO
Mアクセスをトレースしている間にレジスタへのアクセ
スがあると、イベント出力が立ち上がり、それ以降はN
o.8のレジスタアクセスの内容が格納される。その
後、レジスタへのアクセスが終了し、イベント出力がな
くなると、それ以降は再びNo.2の命令ROMアクセ
スの内容が格納される。この場合、レジスタアクセス
(No.8)の内容をトレースしている間、命令ROM
アクセス(No.2)の内容はトレースされないが、命
令ROMアクセスの内容が一部抜けても、レジスタアク
セスの内容だけはすべてトレースしておきたいというよ
うに、特定の内容についてのみ優先的にトレースしたい
場合に有効である。
【0024】(3)実施形態3 マイコン動作の全体の流れを見たい場合などには、セレ
クタ14へ入力されるソースをすべて巡回し、時分割し
て出力させることができる。この実施形態3では、あら
かじめ選択されたトレースデータを所定の書き込みサイ
クル時分割で順に出力するようにしている。例えば、選
択候補No.2、No.8及びNo.6の内容を時分割
に出力した場合のトレースデータはトレースメモリ13
に図6のように格納される。ここでは、ライトストロー
ブの10サイクルごとにセレクタ14の出力を順次切り
替え、No.2、No.8、No.6の順に巡回した後
は、再びNo.2以降の巡回を繰り返している。
クタ14へ入力されるソースをすべて巡回し、時分割し
て出力させることができる。この実施形態3では、あら
かじめ選択されたトレースデータを所定の書き込みサイ
クル時分割で順に出力するようにしている。例えば、選
択候補No.2、No.8及びNo.6の内容を時分割
に出力した場合のトレースデータはトレースメモリ13
に図6のように格納される。ここでは、ライトストロー
ブの10サイクルごとにセレクタ14の出力を順次切り
替え、No.2、No.8、No.6の順に巡回した後
は、再びNo.2以降の巡回を繰り返している。
【0025】(4)実施形態4 マイコンの動作中は、すべてのソースが常に動いている
とは限らない。すなわち、絶えず動いているソースもあ
れば、動いたり休んだりしているソースもある。このた
め、実施形態3のようにソースを時分割して出力する
と、たまたま動いていないソースに割り当てられた時間
は無駄になってしまう。また、時分割を行わない場合
は、複数のソースの出力要求が重なることも考えられる
ため、ソースをどのように割り振るかが問題となる。こ
の実施形態4では、選択したソースに優先順位を付け、
トレースデータを出力する場合に、データの出力要求が
重ならない場合はそのまま出力し、複数の出力要求が重
なった場合は、最優先に指定されたデータを出力するよ
うにしている。この時、選択情報判別フラグには、どれ
が選択され、どれが却下されたか分かるフラグを格納す
る。例えば、ソースとしてNo.2、No.8、No.
6を選択し、かつNo.2<No.8<No.6のよう
に優先順位を設定した場合、トレースデータはトレース
メモリ13に図7のように格納される。図7において、
データの出力要求が重ならない場合は、優先順位に関わ
りなく選択されたソースの内容が順にトレースされる。
しかし、例えば、命令ROMアクセスとレジスタアクセ
スの出力要求が重なった場合は、優先順位の低い命令R
OMアクセスが却下され、優先順位の高いレジスタアク
セスの内容が優先的にトレースされる。また、命令RO
Mアクセス、レジスタアクセス及びキャッシュアクセス
が重なった場合は、優先順位の低い命令ROMアクセ
ス、レジスタアクセスが却下され、最も優先順位の高い
キャッシュアクセスの内容が優先的にトレースされる。
とは限らない。すなわち、絶えず動いているソースもあ
れば、動いたり休んだりしているソースもある。このた
め、実施形態3のようにソースを時分割して出力する
と、たまたま動いていないソースに割り当てられた時間
は無駄になってしまう。また、時分割を行わない場合
は、複数のソースの出力要求が重なることも考えられる
ため、ソースをどのように割り振るかが問題となる。こ
の実施形態4では、選択したソースに優先順位を付け、
トレースデータを出力する場合に、データの出力要求が
重ならない場合はそのまま出力し、複数の出力要求が重
なった場合は、最優先に指定されたデータを出力するよ
うにしている。この時、選択情報判別フラグには、どれ
が選択され、どれが却下されたか分かるフラグを格納す
る。例えば、ソースとしてNo.2、No.8、No.
6を選択し、かつNo.2<No.8<No.6のよう
に優先順位を設定した場合、トレースデータはトレース
メモリ13に図7のように格納される。図7において、
データの出力要求が重ならない場合は、優先順位に関わ
りなく選択されたソースの内容が順にトレースされる。
しかし、例えば、命令ROMアクセスとレジスタアクセ
スの出力要求が重なった場合は、優先順位の低い命令R
OMアクセスが却下され、優先順位の高いレジスタアク
セスの内容が優先的にトレースされる。また、命令RO
Mアクセス、レジスタアクセス及びキャッシュアクセス
が重なった場合は、優先順位の低い命令ROMアクセ
ス、レジスタアクセスが却下され、最も優先順位の高い
キャッシュアクセスの内容が優先的にトレースされる。
【0026】このように、セレクタ14から出力される
トレースデータにあらかじめ優先順位を付けておき、出
力要求が重なったときには、最優先のものが選択される
ようにすることで、上記の問題を解決することができ
る。例えば、命令ROMアクセスに続いてレジスタアク
セスがなければ、この間トレースは行われないことにな
る。そこで、レジスタアクセスのようにアクセスが動的
に変化するようなソースがある場合は、引き続き命令R
OMアクセスの内容をトレースするようにしておき、レ
ジスタアクセスが動いたときには、これを優先的にトレ
ースするように設定しておく。すると、命令ROMアク
セスに続いてレジスタアクセスがないときには、引き続
き命令ROMアクセスの内容がトレースされ、またレジ
スタアクセスが動いたときには、この内容が優先的にト
レースされることになる。また、複数のソースの出力要
求が重なるような場合でも、あらかじめソースごとに優
先順位を付けておくことにより、優先順位の高いトレー
スデータの内容が優先的にトレースされるので、ソース
の割り振りを容易なものとすることができる。
トレースデータにあらかじめ優先順位を付けておき、出
力要求が重なったときには、最優先のものが選択される
ようにすることで、上記の問題を解決することができ
る。例えば、命令ROMアクセスに続いてレジスタアク
セスがなければ、この間トレースは行われないことにな
る。そこで、レジスタアクセスのようにアクセスが動的
に変化するようなソースがある場合は、引き続き命令R
OMアクセスの内容をトレースするようにしておき、レ
ジスタアクセスが動いたときには、これを優先的にトレ
ースするように設定しておく。すると、命令ROMアク
セスに続いてレジスタアクセスがないときには、引き続
き命令ROMアクセスの内容がトレースされ、またレジ
スタアクセスが動いたときには、この内容が優先的にト
レースされることになる。また、複数のソースの出力要
求が重なるような場合でも、あらかじめソースごとに優
先順位を付けておくことにより、優先順位の高いトレー
スデータの内容が優先的にトレースされるので、ソース
の割り振りを容易なものとすることができる。
【0027】この優先順位は、イベント出力に応じて変
更することもできる。例えば、プログラムがサブルーチ
ンAに入ったときにNo.Aのソースをトレースしたい
というような場合は、プログラムがサブルーチンAに入
ったときにイベントaを発生させ、そのイベント出力の
タイミングでNo.Aの優先順位を最も高くすることに
より、No.Aのソースの内容を優先的にトレースする
ことができる。同様に、サブルーチンBに入ったときに
はイベントbを発生させ、そのイベント出力のタイミン
グでNo.Bの優先順位を最も高くするようにしておけ
ば、それぞれのサブルーチンに入るごとに優先順位の動
的な変更を行うことが可能となる。
更することもできる。例えば、プログラムがサブルーチ
ンAに入ったときにNo.Aのソースをトレースしたい
というような場合は、プログラムがサブルーチンAに入
ったときにイベントaを発生させ、そのイベント出力の
タイミングでNo.Aの優先順位を最も高くすることに
より、No.Aのソースの内容を優先的にトレースする
ことができる。同様に、サブルーチンBに入ったときに
はイベントbを発生させ、そのイベント出力のタイミン
グでNo.Bの優先順位を最も高くするようにしておけ
ば、それぞれのサブルーチンに入るごとに優先順位の動
的な変更を行うことが可能となる。
【0028】
【発明の効果】以上説明したように、請求項1乃至6の
発明においては、トレースメモリに格納すべきトレース
データを選択的に出力するようにしたので、トレースす
べき情報量が多い場合であっても、端子数の増加やメモ
リ容量の増大を招くことなしに、必要な情報をすべてサ
ポートすることができる。
発明においては、トレースメモリに格納すべきトレース
データを選択的に出力するようにしたので、トレースす
べき情報量が多い場合であっても、端子数の増加やメモ
リ容量の増大を招くことなしに、必要な情報をすべてサ
ポートすることができる。
【0029】とくに、請求項2の発明においては、あら
かじめ指定されたトレースデータを出力するようにした
ので、選択すべきトレースデータを任意に変更すること
ができる。
かじめ指定されたトレースデータを出力するようにした
ので、選択すべきトレースデータを任意に変更すること
ができる。
【0030】また、とくに請求項3の発明においては、
出力するトレースデータをイベント出力に応じて切り替
えるようにしたので、特定のトレースデータについての
み優先的にトレースすることができる。
出力するトレースデータをイベント出力に応じて切り替
えるようにしたので、特定のトレースデータについての
み優先的にトレースすることができる。
【0031】また、とくに請求項4の発明においては、
出力するトレースデータを時分割で切り替えるようにし
たので、マイコン動作全体の流れをトレースすることが
できる。
出力するトレースデータを時分割で切り替えるようにし
たので、マイコン動作全体の流れをトレースすることが
できる。
【0032】また、とくに請求項5の発明においては、
出力するトレースデータを優先順位に応じて切り替える
ようにしたので、例えば複数のソースの出力要求が重な
った場合でも、優先順位の高いトレースデータの内容を
優先的にトレースすることができる。
出力するトレースデータを優先順位に応じて切り替える
ようにしたので、例えば複数のソースの出力要求が重な
った場合でも、優先順位の高いトレースデータの内容を
優先的にトレースすることができる。
【0033】また、とくに請求項6の発明においては、
イベント出力に応じて前記優先順位を変更することがで
きるようにしたので、例えばプログラムがサブルーチン
に入ったときに特定のイベントを発生させ、このタイミ
ングで優先順位を変更するように構成すれば、そのサブ
ルーチンに入るごとにトレースデータの優先順位を動的
に変更することができる。
イベント出力に応じて前記優先順位を変更することがで
きるようにしたので、例えばプログラムがサブルーチン
に入ったときに特定のイベントを発生させ、このタイミ
ングで優先順位を変更するように構成すれば、そのサブ
ルーチンに入るごとにトレースデータの優先順位を動的
に変更することができる。
【図1】実施形態のエミュレータにおけるトレース装置
の構成を示すブロック図。
の構成を示すブロック図。
【図2】実施形態1におけるトレースメモリへの格納状
態を示す説明図(No.1選択)。
態を示す説明図(No.1選択)。
【図3】実施形態1におけるトレースメモリへの格納状
態を示す説明図(No.1、No.5選択)。
態を示す説明図(No.1、No.5選択)。
【図4】実施形態1におけるトレースメモリへの格納状
態を示す説明図(No.2選択)。
態を示す説明図(No.2選択)。
【図5】実施形態2におけるトレースメモリへの格納状
態を示す説明図。
態を示す説明図。
【図6】実施形態3におけるトレースメモリへの格納状
態を示す説明図。
態を示す説明図。
【図7】実施形態4におけるトレースメモリへの格納状
態を示す説明図。
態を示す説明図。
【図8】従来例のエミュレータにおけるトレース装置の
構成を示すブロック図。
構成を示すブロック図。
11 マイコン 12 エミュレータI/Fデバイス 13a、b トレースメモリ 14 セレクタ 15 端子 20 トレース装置
Claims (6)
- 【請求項1】 ターゲットCPU上で実行させたプログ
ラムの実行軌跡を記憶・表示させるエミュレータのトレ
ース装置において、 トレースメモリに格納すべきトレースデータを選択的に
出力するセレクタを設けたことを特徴とするエミュレー
タのトレース装置。 - 【請求項2】 前記セレクタは、あらかじめ指定された
トレースデータを出力することを特徴とする請求項1記
載のエミュレータのトレース装置。 - 【請求項3】 前記セレクタは、出力するトレースデー
タをイベント出力に応じて切り替えることを特徴とする
請求項1記載のエミュレータのトレース装置。 - 【請求項4】 前記セレクタは、出力するトレースデー
タを時分割で切り替えることを特徴とする請求項1記載
のエミュレータのトレース装置。 - 【請求項5】 前記セレクタは、出力するトレースデー
タを優先順位に応じて切り替えることを特徴とする請求
項1記載のエミュレータのトレース装置。 - 【請求項6】 前記トレースデータの優先順位は、イベ
ント出力に応じて変更されることを特徴とする請求項5
記載のエミュレータのトレース装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10110981A JPH11306040A (ja) | 1998-04-21 | 1998-04-21 | エミュレータのトレース装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10110981A JPH11306040A (ja) | 1998-04-21 | 1998-04-21 | エミュレータのトレース装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH11306040A true JPH11306040A (ja) | 1999-11-05 |
Family
ID=14549386
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10110981A Pending JPH11306040A (ja) | 1998-04-21 | 1998-04-21 | エミュレータのトレース装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH11306040A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100423891B1 (ko) * | 2002-06-21 | 2004-03-22 | 삼성전자주식회사 | 트레이스 모듈을 구비한 마이크로프로세서 |
| JP2005056386A (ja) * | 2003-08-07 | 2005-03-03 | Arm Ltd | データを処理する装置、トレースデータを発生する方法、及びトレースデータを分析する装置 |
| JP2008097646A (ja) * | 2002-06-07 | 2008-04-24 | Arm Ltd | データ処理装置およびトレース信号発生方法 |
| JP2015026325A (ja) * | 2013-07-29 | 2015-02-05 | 三菱電機株式会社 | データトレース回路、集積回路およびデータトレース方法 |
-
1998
- 1998-04-21 JP JP10110981A patent/JPH11306040A/ja active Pending
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008097646A (ja) * | 2002-06-07 | 2008-04-24 | Arm Ltd | データ処理装置およびトレース信号発生方法 |
| KR100423891B1 (ko) * | 2002-06-21 | 2004-03-22 | 삼성전자주식회사 | 트레이스 모듈을 구비한 마이크로프로세서 |
| US7055078B2 (en) | 2002-06-21 | 2006-05-30 | Samsung Electronics, Co., Ltd. | Microprocessor with trace module |
| US7299393B2 (en) | 2002-06-21 | 2007-11-20 | Samsung Electronics Co., Ltd. | Microprocessor with trace module |
| JP2005056386A (ja) * | 2003-08-07 | 2005-03-03 | Arm Ltd | データを処理する装置、トレースデータを発生する方法、及びトレースデータを分析する装置 |
| JP2015026325A (ja) * | 2013-07-29 | 2015-02-05 | 三菱電機株式会社 | データトレース回路、集積回路およびデータトレース方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8131901B2 (en) | Interrupt control for virtual processing apparatus | |
| US4860190A (en) | Computer system for controlling virtual machines | |
| US5968159A (en) | Interrupt system with fast response time | |
| JPH11306040A (ja) | エミュレータのトレース装置 | |
| US5511206A (en) | Microprocessor based computer with virtual memory space in overwritable memory | |
| JPS5844263B2 (ja) | 記憶制御回路 | |
| JP2553698B2 (ja) | 時分割マルチタスク実行装置 | |
| JPH08249018A (ja) | マルチプロセッサ演算装置、および該装置を有するプログラマブルコントローラ | |
| JPS5850383B2 (ja) | 情報処理装置 | |
| JPH0652507B2 (ja) | マイクロコンピユ−タの開発装置 | |
| JPH0756633B2 (ja) | タスク切換え方式 | |
| JPH08507630A (ja) | メモリ管理装置およびメモリ管理方法 | |
| JPH0415831A (ja) | 時分割マルチタスク制御装置 | |
| JPH0423137A (ja) | スレツド生成方式及び並列処理方式 | |
| EP0427558A2 (en) | Task switching system | |
| JPH08249289A (ja) | メモリ制御装置およびその制御方法 | |
| JP2535144B2 (ja) | 並列処理計算機 | |
| KR0164769B1 (ko) | 시스템 프로그램 실행 방법 | |
| JPS61267149A (ja) | デ−タ処理装置 | |
| JPH04322331A (ja) | マルチタスク制御装置 | |
| JPS635790B2 (ja) | ||
| JPH0546412A (ja) | マルチタスク制御装置 | |
| JP2000056991A (ja) | マルチタスク機能を備えたマイクロコンピュ―タプログラマブルコントロ―ラ及びその制御方法 | |
| JPH07210466A (ja) | 仮想計算機システム | |
| JP2001075862A (ja) | コンピュータ応用装置 |