(57)【要約】【課題】指定された複数の条件の前後サイクルに対して指定された所定サイクル分の情報をトレース制御するトレース装置を提供すること。【解決手段】本発明に係るトレース装置（１）は、外部から情報が入力される信号伝達経路（２）と、信号伝達経路に現れた情報をトレースメモリ（４）に格納するトレース制御を行うトレース制御部（３）とを有する。トレース制御中、設定された複数のトレースポイントに対し、トレースポイントを含む複数バスサイクルの信号伝達経路の情報を他の信号伝達経路の情報への書き換えを抑制して、トレースメモリに保持するように制御される。これにより、一回のトレース制御動作中に複数のトレース条件に従って夫々複数バスサイクルの信号伝達経路の情報のトレース制御を行うことができる。【選択図】図１
2008293260.tif 000002
【特許請求の範囲】
【請求項１】
外部から情報が入力される信号伝達経路と、
前記信号伝達経路に現れた情報をトレースメモリに格納するトレース制御を行うトレース制御部とを有するトレース装置であって、
前記トレース制御部は、トレース制御中、設定された複数のトレースポイントに対し、当該トレースポイントを含む所定の複数バスサイクルの前記信号伝達経路の情報を他の前記信号伝達経路の情報への書き換えを抑制して前記トレースメモリに保持する動作モードを有するトレース装置。
【請求項２】
前記信号伝達経路は、プログラムを実行するデータプロセッサが入出力する情報を受けるバスである請求項１記載のトレース装置。
【請求項３】
前記トレース制御部は、トレース制御中、前記信号伝達経路に現れた情報を逐次前記トレースメモリに格納する動作を行い、前記トレースポイントを含む所定の複数バスサイクルの前記信号伝達経路の情報を格納した領域に対して書き換えを抑止する請求項１又は２記載のトレース装置。
【請求項４】
前記トレース制御部は、前記信号伝達経路に現れた情報を逐次格納する動作が排他的に行われる複数のバッファメモリを有し、前記トレースポイントを含む所定の複数バスサイクルの前記信号伝達経路の情報を一のバッファメモリからトレースメモリの所定領域に転送開始するとき、前記信号伝達経路に現れた情報の格納先を前記一のバッファメモリから他のバッファメモリに切り換える制御を行う請求項１又は２記載のトレース装置。
【請求項５】
前記トレース制御部は、複数の前記トレースポイントがプログラマブルに設定可能にされるトレース条件設定部を有する請求項１乃至４の何れか１項に記載のトレース装置。
【請求項６】
前記トレース制御部は、前記トレースポイントを含む所定の複数バスサイクルのサイクル数がプログラマブルに設定可能にされる第１レジスタを有する請求工１乃至５の何れか１項に記載のトレース装置。
【請求項７】
前記トレースポイントを含む所定の複数バスサイクルの前記信号伝達経路の情報は、前記トレースポイントの前後の第１情報、前記トレースポイントの以前の第２情報又は前記トレースポイントの以降の第３情報である請求項１乃至６の何れか１項に記載のトレース装置。
【請求項８】
前記トレースポイントを含む所定の複数バスサイクルの前記信号伝達経路の情報として、前記トレースポイントの前後の第１情報、前記トレースポイントの以前の第２情報又は前記トレースポイントの以降の第３情報を選択的に指定する第２レジスタを更に有する請求項７記載のトレース装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部から入力される信号の情報をトレース制御するトレース装置に関し、例えばエミュレータ等に適用して有効な技術に関する。
【背景技術】
【０００２】
本発明完成後の先行技術調査において以下の特許文献を見出した。特許文献１には、エミュレーション中のマイクロプロセッサが出力する情報をトレース制御する技術について記載されている。上記特許文献１に記載されたエミュレーション技術は、条件設定レジスタと、エミュレーション対象となる機器と、エミュレーションバス上の信号と条件設定レジスタに設定された条件を比較する比較手段とを設け、設定された条件が一致したときにトレース制御を行うようになっている。
【０００３】
【特許文献１】特開平１１−１０２３０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
エミュレーション技術によってエミュレーション対象となる機器の情報をトレース制御する場合、予めトレース条件を設定しておき、それに一致する状態がバス上に現れたときトレース制御を開始する。上記特許文献１においては、トレース制御の開始条件と終了条件を設定するようにしている。通常はトレース制御の終了条件に一致したとき、トレース制御を停止し、この後更に別の動作でトレース制御を継続したい場合には新たに開始条件と終了条件を設定し直してトレース制御を行わなければならない。しかしながら、そのようなトレース制御を繰り返していくと、トレースメモリの記憶容量は有限であるため、前にトレース制御された情報が後からトレース制御された情報によって上書きされ失われる虞がある。そうしないために、複数のトレース条件に一致する各地点だけでトレース制御を行うとすれば、逆に必要な多くのバス情報を取得することができない。
【０００５】
本発明の目的は、指定された複数の条件の前後サイクルに対して指定された所定サイクル分の情報をトレース制御するトレース装置を提供することにある。
【０００６】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【０００８】
すなわち、本発明に係るトレース装置は、外部から情報が入力される信号伝達経路と、信号伝達経路に現れた情報をトレースメモリに格納するトレース制御を行うトレース制御部とを有し、トレース制御中、設定された複数のトレースポイントに対し、トレースポイントを含む複数バスサイクルの信号伝達経路の情報を他の信号伝達経路の情報への書き換えを抑制して、トレースメモリに保持するように制御される。これにより、一回のトレース制御動作中に複数のトレース条件に従って夫々複数バスサイクルの信号伝達経路の情報のトレース制御を行うことができる。
【発明の効果】
【０００９】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１０】
すなわち、指定された複数の条件の前後サイクルに対して指定された所定サイクル分の情報をトレース制御することができる。
【発明を実施するための最良の形態】
【００１１】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１２】
〔１〕本発明の代表的な実施の形態に係るトレース装置（１）は、信号伝達経路（２）と、トレース制御部（３）とを有するものである。前記トレース制御部は、前記信号伝達経路の情報をトレースメモリ（４）に格納するトレース制御を行う。また、トレース制御中、設定された複数のトレースポイント（ＴＰ）に対し、前記トレースポイントを含む所定の複数バスサイクルの前記信号伝達経路の情報を他の前記信号伝達経路の情報への書き換えを抑制して前記トレースメモリに保持する動作モードを有する。これにより、上記動作モードを指定してトレース制御を行えば、設定された複数のトレースポイントが繰り返し発生しても、前記トレースメモリに保持された前記トレースポイント毎の前記信号伝達経路の情報は上書きされずに、前記トレースメモリに前記トレースポイント毎の前記信号伝達経路の情報が保持される。従って、指定された複数の前記トレースポイントの前後サイクルに対し、指定された前記トレースポイントを含む所定バスサイクル分の前記信号伝達経路の情報を前記トレースメモリにトレース制御することができる。
【００１３】
具体的な一つの形態として、前記信号伝達経路はプログラムを実行するデータプロセッサ（５）が出力する情報を受けるバスである。従って、前記トレース装置はエミュレータとして利用することが可能である。
【００１４】
別の具体的な形態として、前記トレース制御部は、トレース制御中、前記信号伝達経路に現れた情報を逐次前記トレースメモリに格納する動作を行う際に、前記トレースポイントを含む所定の複数バスサイクルの前記信号伝達経路の情報を格納した領域に対して書き換えを抑止する。これにより、必要な前記信号伝達経路の情報を上書きせずに保持するための構成を比較的容易に実現することができる。
【００１５】
別の具体的な形態として、前記トレース制御部は前記信号伝達経路に現れた情報を逐次格納する動作が排他的に行われる複数のバッファメモリ（２０）、（２１）を有しする。前記トレースポイントを含む所定の複数バスサイクルの前記信号伝達経路の情報を一のバッファメモリから前記トレースメモリの所定領域に転送開始するとき、前記信号伝達経路に現れた情報の格納先を前記一のバッファメモリから他のバッファメモリに切り換える制御を行うことができる。これによれば、前記トレースメモリのアドレス管理は書き込み終了アドレスを把握しておけば充分であり、上記よりも前記トレースメモリに対するアドレス管理という点において、簡単な制御を実現することができる。
【００１６】
別の具体的な形態として、前記トレース制御部は、複数の前記トレースポイントがプログラマブルに設定可能にされるトレース条件設定部（９）を有する。従って、任意にトレースポイントを設定することにより所要の前記信号伝達経路の情報を前記トレースメモリに格納することができる。
【００１７】
別の具体的な形態として、前記トレース制御部は、前記トレースポイントを含む所定の複数バスサイクルのサイクル数がプログラマブルに設定可能にされる第１レジスタ（１３）を有する。従って、任意に所定の複数バスサイクルのサイクル数を設定することにより所要の前記信号伝達経路の情報を前記トレースメモリに必要サイクル分保持することができる。
【００１８】
別の具体的な形態として、前記トレースポイントを含む所定の複数バスサイクルの前記信号伝達経路の情報は、前記トレースポイントの前後の第１情報、前記トレースポイントの以前の第２情報又は前記トレースポイントの以降の第３情報である。これにより、前記トレースポイントを起点とした前及び／又は後の前記信号伝達経路の情報を繰り返し取得することが可能となる。
【００１９】
別の具体的な形態として、前記トレースポイントを含む所定の複数バスサイクルの前記信号伝達経路の情報として、前記トレースポイントの前後の第１情報、前記トレースポイントの以前の第２情報又は前記トレースポイントの以降の第３情報を選択的に指定する第２レジスタ（１４）を有する。前記第１〜第３情報を選択的に指定して所要の前記信号伝達経路の情報を前記トレースメモリに保持することができる。
【００２０】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００２１】
図１には本発明に係るトレース装置の一例であるエミュレータ（ＥＭＬ）１の構成が示される。同図は、エミュレータ１とホストシステム（ＨＳＴ）６とターゲットシステム（ＴＧＴＳＹＳ）７とから構成される。
【００２２】
エミュレータ１はエミュレーション評価用マイコン（ＥＭＣＵ）５を有する。前記エミュレーション評価用マイコン５はターゲットシステム７に備えられたマイクロプロセッサと同等の機能を有する。前記エミュレーション評価用マイコン５は前記ターゲットシステム７の機能を代行制御する。前記エミュレーション評価用マイコン５は代行制御するために例えばケーブルによって前記ターゲットシステム７と接続される。また、前記ターゲットシステム７の代行制御によって得られるアドレス、データ及びステータス信号などの制御信号はエミュレーション用バス（ＥＢＵＳ）２に供給される。前記エミュレーション用バス２には、エミュレーション制御部（ＥＭＬＣＮＴ）８とトレース制御部（ＴＲＣＣＮＴ）３が結合されている。
【００２３】
前記エミュレーション制御部８は、前記ホストシステム６の制御に基づいて、前記エミュレーション評価用マイコン５に評価用のプログラムを実行させる。前記評価用のプログラムはターゲットシステム７を本来制御するマイクロプロセッサに実行させるための開発中のプログラムを意味する。
【００２４】
前記トレース制御部３は、前記エミュレーション用バス２に現れたアドレス、データ、ステータス信号などの各種情報を前記エミュレーション用バス２のバスサイクルに同期してトレースメモリ（ＴＲＣＭＥＭ）４に格納する制御を行う。前記トレースメモリ４に対する書き込みアドレスはトレース制御部３が前記エミュレーション用バス２のバスサイクルに同期して逐次生成される。
【００２５】
前記トレース制御部３は、前記トレースメモリ４に前記エミュレーション用バス２の情報を逐次格納していくときのトレース条件が設定されるトレース条件設定部（ＴＲＣＣＮＤ）９を有する。前記トレース条件設定部９にはコントロールバス（ＣＢＵＳ）１０を介して前記ホストシステム６によってトレース条件が設定される。設定可能なトレース条件は、前記エミュレーション用バス２に現れるアドレス、データ、ステータス信号の何れであっても、またどのような組み合わせであっても良い。前記トレース条件設定部９に設定された単一のトレース条件を以下トレースポイントＴＰとも称する。前記トレース制御部３には、上記トレースポイントＴＰが前記エミュレーション用バス２上で顕在化されるのを検出するトレースポイント検出部（ＴＰＤＥＴ）１１が設けられる。前記トレースポイント検出部１１は、前記エミュレーション用バス２に現れる情報が設定された前記トレースポイントＴＰと一致するかを判定する。前記トレースポイント検出部１１は前記トレースポイントＴＰと一致する情報を検出したとき、前記トレース制御部３に備えるロジック制御部（ＴＲＣＬＯＧ）１２に制御信号ＣＳ１を出力する。
【００２６】
前記ロジック制御部１２は、前記エミュレーション制御部８の制御に基づいて、前記エミュレーション用マイコン５が評価用プログラムを実行開始するのに同期して、前記エミュレーション用バス２上の情報をそのバスサイクル毎に前記トレースメモリ４に格納する制御を開始する。前記ロジック制御部１２は、前記制御信号ＣＳ１によって前記トレースポイントＴＰの発生を検出すると、その前記トレースポイントＴＰに対して、前記トレースポイントＴＰの前、後又は前後両方において所定バスサイクル分の情報を、前記エミュレーション用バス２の他の情報によって後から書き換えられないように前記トレースメモリ４のアドレスを管理する。前記所定のバスサイクル数は、前記ホストシステム６からプログラマブルに第１レジスタ（Ｆ＿ＲＥＧ）１３に設定された制御情報によって決定される。また、前記トレースポイントＴＰの前、後又は前後両方のバスサイクルの指定は、前記ホストシステム６から第２レジスタ（Ｓ＿ＲＥＧ）１４に設定された制御情報によって決定される。
【００２７】
上記アドレス管理について図２を参照しながら説明する。図２には、前記エミュレーション用バス２に現れた情報を前記トレースメモリ４に格納する動作が示される。例えば、前記トレースメモリ４の記憶容量が４Ｍバイトとして、１バスサイクルで１９２ビットの情報を格納するものとする。トレース制御中に前記エミュレーション用バス２に現れた情報は前記トレースメモリ４に格納されるが、前記トレースメモリの記憶容量は４Ｍバイトと有限であるため、前記トレースメモリ４に単に繰り返し情報が書き込まれるときは格納された情報が上書きされる場合がある。図２において、ｓｔａｒｔ１は１巡目で前記エミュレーション用バス２に現れた情報を格納するときの動作を示し、ｓｔａｒｔ２は２巡目で前記エミュレーション用バス２に現れた情報を格納するときの動作を示し、それらはトレース制御中に前記エミュレーション用バス２に現れた情報に夫々前記トレース制御部３によるアドレスが付与されて、前記トレースメモリ４に逐次格納される様子を示している。前記トレースメモリ４には、書き換え動作の開始アドレスをＡＳ、書き換え動作の終了アドレスをＡＥとするメモリ領域に対し、前記ロジック制御部１２で生成されたトレースメモリアドレスに従って前記エミュレーション用バス２の情報が逐次格納される。プログラマブルに設定された一例としての３つのトレースポイントＴＰ１〜ＴＰ３は前記ホストシステム６によって前記トレース条件設定部９に予め設定される。また、前記ホストシステム６は、夫々の前記トレースポイントＴＰ１〜ＴＰ３を起点に例えば前６４サイクルと後６４サイクルのバスサイクル数の情報を前記第１レジスタ１３に予め設定する。トレース制御が開始されると、前記で示されるｓｔａｒｔ１では、前記開始アドレスＡＳから前記エミュレーション用バス２の情報の格納が開始され、前記終了アドレスＡＥで前記エミュレーション用バス２の情報の１巡目の格納が終了する。この間に、前記トレースポイント検出部１１によって前記トレースポイントＴＰ１が検出されると、前記ロジック制御部１２は、前記第１レジスタ１３及び第２レジスタ１４の条件に基づいて、前記トレースポイントＴＰ１に対応するトレースメモリアドレスから繰り下がった６４サイクル目のトレースメモリアドレスＡＳ１を保持する。また、前記ロジック制御部１２は、前記トレースポイントＴＰ１に対応するトレースメモリアドレスから繰り上がった６４サイクル目のトレースメモリアドレスＡＥ１を保持する。前記ロジック制御部１２は、保持した前記トレースメモリアドレスＡＳ１から前記トレースメモリアドレスＡＥ１のアドレス範囲を書き換え禁止領域として認識する。前記トレースポイント検出部１１によって前記トレースポイントＴＰ２と前記トレースポイントＴＰ３が検出された場合も上記同様に、前記トレースポイントＴＰ２に対応するトレースメモリアドレスからの上下６４サイクル目のトレースメモリアドレスＡＳ２とＡＥ２、前記トレースポイントＴＰ３に対応するＡＳ３とＡＥ３を保持し、それによって決まるアドレス範囲を書き換え禁止領域として認識する。前記ロジック制御部１２は書き換え禁止領域であるアドレス範囲を除くようにして前記トレースメモリアドレスを生成する。具体的には、前記に示されるｓｔａｒｔ２において、前記ロジック制御部１２では、順次インクリメントして生成したトレースメモリアドレスが前記トレースメモリアドレスＡＳ１に一致するかを判定する。一致することを認識すると、前記トレースメモリアドレスＡＳ１から前記トレースメモリアドレスＡＥ１までの書き換え禁止領域を除いて、前記トレースメモリアドレスＡＥ１の次のトレースメモリアドレスＡＥ１＋１から継続して前記トレースメモリアドレスを生成する。その後も上記同様に、前記ロジック制御部１２は前記トレースメモリアドレスＡＳ２との一致を認識した場合には、前記トレースメモリアドレスＡＳ２から前記トレースメモリアドレスＡＥ２までの範囲を除いて、前記トレースメモリアドレスＡＥ２の次のトレースメモリアドレスＡＥ２＋１から継続して前記トレースメモリアドレスを生成する。
【００２８】
上記に説明したように、トレース制御部３は、前記トレースポイントＴＰが検出されると、前記トレースポイントを起点として前、後又は前後両方の予め設定されたバスサイクル数に応じた最初のアドレスと最後のアドレスの間の情報を前記エミュレーション用バス２の他の情報への書き換えを抑止して前記トレースメモリ４に保持するアドレス管理を制御する。従って、トレースポイントＴＰを含む前、後又は前後両方の予め設定されたバスサイクル数の前記エミュレーション用バス２に現れた情報は、前記エミュレーション用バス２の他の情報に書き換えられずに前記トレースメモリ４に保持することができる。
【００２９】
図３には、本発明に係るトレース装置の別の例である２個のバッファメモリ２０、２１を備えるエミュレータ（ＥＭＬ）１５の構成が示される。図３に示されるエミュレータ１５は、図１に示されるエミュレータ１とは前記トレースメモリ４に対する前記エミュレーション用バス２に現れた情報を格納する制御方式が相違される。即ち、図３においては、前記エミュレーション用バス２の情報を直接格納するバッファメモリ２０、２１を新たに有し、上記バッファメモリ２０、２１及び前記トレースメモリ４に対するアドレス制御管理を行うロジック制御部（ＴＲＣＬＯＧ）１６を備える。その他の構成については図１と同様であり、それと同一機能を有する要素には同一符号を付与し詳細な説明を省略する。
【００３０】
前記ロジック制御部１６は前記エミュレーション制御部８の制御に基づいて前記エミュレーション用マイコン５が評価用プログラムを実行開始するのに同期して、前記エミュレーション用バス２上の情報をバスサイクル毎に前記バッファメモリ２０、２１に格納する。格納対象となる前記バッファメモリ２０、２１は交互に切り換えられる。前記ロジック制御部１６は、前記制御信号ＣＳ１により前記エミュレーション用バス２の情報が前記トレースポイントＴＰに一致する条件を検出すると、レジスタ１３及び１４の設定に従って、前記バッファメモリ２０、２１のうちの一方に格納されている情報を前記トレースメモリ４に転送開始すると共に、前記エミュレーション用バス２の情報の格納先を前記バッファメモリ２０、２１の内の他方に切り換える制御を行う。以下に、その制御について図４を参照しながら詳述する。
【００３１】
図４には、前記エミュレーション用バス２の情報が前記バッファメモリ２０、２１の一方に格納され、必要な前記エミュレーション用バス２の情報を当該一方のバッファメモリから前記トレースメモリ４に転送し保持する動作が示される。トレース制御中、前記エミュレーション用バス２に現れた情報は、夫々記憶容量が有限の前記バッファメモリ２０と前記バッファメモリ２１に交互に格納される。最初は、前記エミュレーション用バス２の情報が前記バッファメモリ２０の先頭アドレスＡＡＳから終点アドレスＡＡＥに向けて順次書き込まれる。前記バッファメモリ２０に書き込まれる情報が前記バッファメモリ２０の終点アドレスＡＡＥに達すると、前記バッファメモリ２０から前記バッファメモリ２１に切り換えて前記バッファメモリ２１に前記エミュレーション用バス２の情報を継続して書き込む。次に、前記バッファメモリ２１に書き込まれる情報が前記バッファメモリ２１の終点アドレスＡＢＥに達すると再び、前記バッファメモリ２１から前記バッファメモリ２０に切り換えて前記エミュレーション用バス２に現れた情報を前記バッファメモリ２０に書き込む。途中で前記トレースポイントが検出されなければ上記書き込み動作が単に繰り返される。図４において、ｓｔａｒｔ１は前記バッファメモリ２０、２１に前記エミュレーション用バス２の情報を書き込む第一巡目の動作を示す。ｓｔａｒｔ２は同じく第二巡目を示し、ｓｔａｒｔ３は同じく第三巡目を示す。前記バッファメモリ２０には書き込みの先頭アドレスとしてＡＡＳ、書き込みの終了アドレスとしてＡＡＥが割り当てられる。また前記バッファメモリ２１には書き込みの先頭アドレスとしてＡＢＳ、書き込みの終了アドレスとしてＡＢＥが割り当てられる。ここでは、第１レジスタ１３と第２レジスタ１４の条件設定は、図１と同様に、例えば３つのトレースポイントＴＰ１〜ＴＰ３の条件と前記トレースポイントＴＰ１〜ＴＰ３を起点に前後６４サイクルのバスサイクル数の情報が前記ホストシステム６によって設定される。
【００３２】
トレース制御が開始されると、前記第一巡目ｓｔａｒｔ１では、前記バッファメモリ２０のメモリ領域に対する前記開始アドレスＡＡＳから前記終了アドレスＡＡＥに向けて前記エミュレーション用バス２の情報の格納が開始される。その間に、前記トレースポイント検出部１１によって前記トレースポイントＴＰ１が検出されると、前記ロジック制御部１６に制御信号ＣＳ１が入力される。前記ロジック制御部１６は、前記第１レジスタ１３及び第２レジスタ１４の条件に基づいて、前記トレースポイントＴＰ１に対応するバッファメモリアドレスを起点に繰り下がった６４サイクル目のバッファメモリアドレスＡＳ１から、繰り上がった６４サイクル目のバッファメモリアドレスＡＥ１までの情報が前記バッファメモリ２０に格納されたことを確認する。確認後、その次の前記エミュレーション用バス２の情報の格納先を前記バッファメモリ２０から前記バッファメモリ２１の前記開始アドレスＡＢＳに切り換える。これによって、前記エミュレーション用バス２の情報を継続的に格納していく。これに並行して、前記バッファメモリ２０のアドレスＡＳ１〜ＡＥ１の情報を前記トレースメモリ４に格納する。前記第一巡目ｓｔａｒｔ１において、次に前記トレースポイント検出部１１によって前記トレースポイントＴＰ２が検出されたときも上記同様の制御が行われる。
【００３３】
前記第二巡目以降も前記第一巡目ｓｔａｒｔ１と同様の制御が行われる。前記第二巡目ｓｔａｒｔ２において、前記開始アドレスＡＡＳから前記終了アドレスＡＡＥに向けて前記エミュレーション用バス２の情報を格納する間に、前記トレースポイント検出部１１によって前記トレースポイントＴＰ３が検出されると、前記トレースポイントＴＰ１、ＴＰ２と同様の制御が行われる。
【００３４】
図５には、トレースポイントが検出されたとき、必要な前記エミュレーション用バス２の情報がバッファメモリに格納されるのを検出する前にバッファメモリのアドレスが終点に達した場合の制御が例示される。図５の動作例では、前記トレースポイント検出部１１によってトレースポイントＴＰｎが検出されたとき、前記トレースポイントＴＰｎに対応するバッファメモリアドレスを起点に繰り下がった６４サイクル目のバッファメモリアドレスＡＳｎから、繰り上がった６４サイクル目のバッファメモリアドレスＡＥｎまでの区間のバスの情報を当該バッファメモリ２０に格納完了する前にバッファメモリを切り換えなければならない。前記ロジック制御部１６は、前記バッファメモリアドレスＡＳｎから前記バッファメモリ２０の終了アドレスＡＡＥまでの情報をバッファメモリ２０に格納し、この時点で、バスの情報の格納先を前記バッファメモリ２１に切り換えて、次のバス情報を継続して格納していく。バッファメモリの切り換えに並行して、前記バッファメモリ２０に格納された前記バッファメモリアドレスＡＳｎから前記終了アドレスＡＡＥまでの情報を前記トレースメモリ４に転送する制御を行う。前記ロジック制御部１６は、バッファメモリアドレスＡＳｎから前記終了アドレスＡＡＥまでの情報が前記トレースメモリ４に転送完了されたこととバッファメモリ２１に開始アドレスＡＢＳからＡＥｎまでのバスの情報が格納完了されたことの双方を確認してから、バスの情報の格納先を前記バッファメモリ２１から前記バッファメモリ２０に切り換えて、後続のバスの情報を継続してバッファメモリ２０に格納していく。これに並行して、バッファメモリ２１に格納されたアドレスＡＢＳからＡＥｎの情報は前記トレースメモリ４に転送される。
【００３５】
図５において、ホストシステム６によって第１レジスタ１３及び第２レジスタ１４に設定可能な値は、複数設定されたトレースポイント間における夫々のトレース対象領域が相互に重ならないような値にされることが望ましい。
【００３６】
また、必要なエミュレーション用バスの情報をバッファメモリに格納している途中にバッファメモリの切り換えが発生した場合の制御について、２個のバッファメモリをトレース制御部１７に備えたときの説明は上記に示される。３個以上のバッファメモリをトレース制御部１７に備える場合において、一のバッファメモリで格納動作中にトレースポイントが検出された場合、前記第２レジスタ１４で指定された範囲のデータ（単に指定範囲データとも称する）を全部前記バッファメモリに格納できないときは、途中で前記バスの情報の格納先を当該バッファメモリから次のバッファメモリに切り換えて継続して後続のバスの情報を格納していく。バッファメモリの切り換えに並行して、格納された前記途中までの情報は前記トレースメモリ４に転送される。切り換えられた次のバッファメモリに継続して格納される残りの情報が格納完了したら、前記バスの情報の格納先を当該バッファメモリからその次のバッファメモリに切り換えて継続してバスの情報を格納していく。前記トレースメモリ４に前記指定範囲データの内の途中までの情報が転送されたことを確認したら、前記指定範囲データの残りの情報をバッファメモリから前記トレースメモリ４に転送していく。
【００３７】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００３８】
格納されたトレースメモリの内容は、通信インターフェースケーブル等を介してパソコンやディスプレイ等の表示機器に表示することができる。本発明のトレース装置は、インサーキットエミュレータの他にロジックアナライザなどに適用することができる。
【図面の簡単な説明】
【００３９】
【図１】本発明に係るトレース装置の一例であるエミュレータの構成を示すブロック図である。
【図２】エミュレーション用バスに現れた情報をトレースメモリに格納する動作を示す動作制御図である。
【図３】本発明に係るトレース装置の別の例である２個のバッファメモリを備えるエミュレータの構成を例示したブロック図である。
【図４】必要なエミュレーション用バスの情報をバッファメモリからトレースメモリに転送し保持する動作を例示した動作制御図である。
【図５】必要なエミュレーション用バスの情報がバッファメモリに格納されるのを検出する前にバッファメモリの終了アドレスに達した場合の動作を示す動作制御図である。
【符号の説明】
【００４０】
１  エミュレータ
２  エミュレーション用バス
３  トレース制御部
４  トレースメモリ
５  エミュレーション評価用マイコン
６  ホストシステム
７  ターゲットシステム
８  エミュレーション制御部
９  トレース条件設定部
１０  コントロールバス
１１  トレースポイント検出部
１２  ロジック制御部
１３  第１レジスタ
１４  第２レジスタ
１５  バッファメモリを備えるエミュレータ
１６  ロジック制御部
２０  バッファメモリ
２１  バッファメモリ
【図１】
2008293260.tif 000003
【図２】
2008293260.tif 000004
【図３】
2008293260.tif 000005
【図４】
2008293260.tif 000006
【図５】
2008293260.tif 000007