(57)【要約】【課題】  不定期に出現し得る現象を捉え得るデバッグ支援装置およびエミュレータ装置を提供する。【解決手段】  デバッグ支援装置２０では、アクセス変換部２５により、ターゲットＣＰＵ１１がＲＡＭ１５等に対して送出し得る読出制御情報Ｒおよび書込制御情報Ｗ¬のいずれも書込制御情報Ｗ¬に変換し、この書込制御情報Ｗ¬に基づいて、アクセス監視メモリ２３により、ターゲットＣＰＵ１１がＲＡＭ１５等からデータを読み出すときの読み出しアドレスおよび／またはターゲットＣＰＵ１１がＲＡＭ１５にデータを書き込むときの書き込みアドレスに対応してターゲットＣＰＵ１１からアクセスのあるアドレス情報ＡＤＲをアドレスバス１９ａから取得して記憶し、それをデータ監視部２１によりアクセス監視メモリ２３から読み出して入出力部２７に出力する。【選択図】  図１
2006172004.tif 000002
【特許請求の範囲】
【請求項１】
デバッグの対象となるプログラムを実行し得るＣＰＵとこのＣＰＵに接続されるアドレスバスを介して前記ＣＰＵがアクセス可能なメモリ装置とを含んで構成されるコンピュータシステムに対するデバッグ作業を支援し得るデバッグ支援装置であって、
前記ＣＰＵが前記メモリ装置に対して送出し得る読出制御情報および書込制御情報を伝送する制御バスに接続され得るとともに、前記読出制御情報および前記書込制御情報のいずれも書込制御情報に変換して出力し得る制御情報変換手段と、
前記アドレスバスに接続され得るとともに、前記制御情報変換手段から出力される前記書込制御情報に基づいて、前記ＣＰＵが前記メモリ装置からデータを読み出すときの読み出しアドレスおよび／または前記ＣＰＵが前記メモリ装置にデータを書き込むときの書き込みアドレスに対応して前記ＣＰＵからアクセスのあるアドレス情報を前記アドレスバスから取得して記憶可能なアクセス情報記憶手段と、
前記アクセス情報記憶手段により記憶された前記アドレス情報を前記アクセス情報記憶手段から読み出して出力装置に出力し得るアドレス情報出力手段と、
を備えることを特徴とするデバッグ支援装置。
【請求項２】
前記アクセス情報記憶手段は、一方のポートから前記アドレス情報を入力して記憶し、この記憶されたアドレス情報を他方のポートから出力し得るデュアルポートメモリであることを特徴とする請求項１記載のデバッグ支援装置。
【請求項３】
デバッグの対象となるプログラムを実行し得るＣＰＵとこのＣＰＵに接続されるアドレスバスを介して前記ＣＰＵがアクセス可能なメモリ装置とを含んで構成されるコンピュータシステムに対して、前記ＣＰＵ上で実行し得る前記プログラムの実行をエミュレートするとともに、前記メモリ装置にアクセスするアドレスが任意のアドレス値を示した場合、前記エミュレートを止めて前記プログラムの実行状態を出力し得るインサーキットエミュレータであって、
請求項１または２に記載のデバッグ支援装置の前記アドレス情報出力手段から出力される前記アドレス情報を取得するアドレス情報取得手段と、
前記アドレス情報取得手段により取得された前記アドレス情報を前記任意のアドレス値として設定するブレークアドレス設定手段と、
を備えることを特徴とするインサーキットエミュレータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバッグ支援装置およびインサーキットエミュレータに関するものである。
【背景技術】
【０００２】
従来より、ＣＰＵやマイクロプロセッサ等（以下これらを総称し「ＣＰＵ」という。）を組み込んだコンピュータシステムの開発では、当該ＣＰＵ上で実行されるコンピュータプログラム（以下「プログラム」という。）のデバッグ作業において、例えば、図８に示すようなインサーキットエミュレータ１００が用いられている。
【０００３】
即ち、図８に示すように、デバッグの対象となるプログラムを実行し得るコンピュータシステム９０のＣＰＵ（以下「ターゲットＣＰＵ」という。）９１には、システムバス９９（アドレスバス９９ａ、データバス９９ｂおよび制御バス９９ｃ）を介して、ＲＯＭ９３、ＲＡＭ９５等のメモリ装置や周辺機器（ＰＥＲ）９７等が接続されており、これらに対してデータの読み出しや書き込みを可能にしている。
【０００４】
一方、このターゲットＣＰＵ９１の代わりに、当該プログラムを実行可能にエミュレートするインサーキットエミュレータ１００は、例えば、エミュレータＣＰＵ１０１、ブレーク検出部１０３、トレースメモリ１０５および入出力部１０７により構成されており、ターゲットＣＰＵ９１を実装するための図略のＣＰＵソケット等を介して、コンピュータシステム９０のシステムバス９９に接続可能に構成されている。
【０００５】
エミュレータＣＰＵ１０１は、ターゲットＣＰＵ９１の動作をエミュレートしてターゲットＣＰＵ９１の代わりにデバッグの対象となるプログラムを実行する機能を有するもので、入出力部１０７と併せて、例えば、パーソナルコンピュータ（以下「パソコン」という。）により実現されている。入出力部１０７は、ターゲットＣＰＵ９１によるエミュレートを停止させるブレークポイント（ブレークアドレス）を入力したり、またエミュレート停止後にそれまで採取したアドレス情報ＡＤＲ、データ情報ＤＡＴＡおよび制御情報Ｒ／Ｗ¬を表示したりするデータの入出力機能を有する。なお「¬」は、その直前の１文字に負論理記号であるアッパーバーが付されていることを意味する記号である。
【０００６】
このエミュレータＣＰＵ１０１にバス接続されているブレーク検出部１０３は、コンピュータシステム９０のシステムバス９９に接続可能に構成されている。このブレーク検出部１０３は、システムバス９９のアドレスバス９９ａから入力されるアドレス情報ＡＤＲが、予め設定されているブレークアドレスに一致するか否かを判断し、一致した場合にその旨のブレーク検出通知をエミュレータＣＰＵ１０１に出力し得る機能を有する。このブレークアドレスは、入出力部１０７からエミュレータＣＰＵ１０１に入力されるブレークポイントに基づいてエミュレータＣＰＵ１０１がブレーク検出部１０３に設定するもので、通常、エミュレートの開始前に設定されている。
【０００７】
ブレーク検出部１０３と同様にトレースメモリ１０５も、エミュレータＣＰＵ１０１にバス接続されるとともにコンピュータシステム９０のシステムバス９９に接続可能に構成されている。このブレーク検出部１０３は、アドレスバス９９ａから入力されるアドレス情報ＡＤＲ、データバス９９ｂから入力されるデータ情報ＤＡＴＡおよび制御バス９９ｃから入力される制御情報Ｒ／Ｗ¬（以下、これらを「トレース情報」と総称する。）を、それぞれ蓄積し得る機能を有し、例えば、半導体メモリ装置により構成されている。なお、トレースメモリ１０５によって蓄積されたトレース情報は、必要に応じてエミュレータＣＰＵ１０１に出力可能に構成されている。
【０００８】
なお、図８では、システムバス９９との接続関係を明確にするため、インサーキットエミュレータ１００は、ターゲットＣＰＵ用のソケットを介することなく、システムバス９９に直接接続されているように表現されていること、またターゲットＣＰＵ９１とインサーキットエミュレータ１００とが併存するように記載されているが、実際には、これらのうちのいずれか一方のみシステムバス９９に接続されていること、に留意されたい。
【０００９】
このようにインサーキットエミュレータ１００を構成することで、エミュレータＣＰＵ１０１は、図９に示すようなエミュレート処理を行う。即ち、図９に示すように、エミュレータＣＰＵ１０１によるエミュレート処理では、まずステップＳ９０１によりトレースメモリ１０５等の初期化処理が行われた後、ステップＳ９０３によりブレークアドレスを設定する処理が行われる。このブレークアドレス設定処理では、入出力部１０７から入力されたブレークポイントに基づいたブレークアドレスを、エミュレータＣＰＵ１０１がブレーク検出部１０３に設定する。
【００１０】
ステップＳ９０３によりブレークアドレスが設定されると、続くステップＳ９０５では、ターゲットＣＰＵ９１の動作をエミュレートする処理、つまりエミュレート処理の実行が行われる。この処理は、図略のサブルーチンにより行われるもので、ターゲットＣＰＵ９１の機能を、例えば、１命令ごとにエミュレートするとともにトレースメモリ１０５によってトレース情報（アドレス情報ＡＤＲ、データ情報ＤＡＴＡおよび制御情報Ｒ／Ｗ¬）を取得する。
【００１１】
ステップＳ９０７では、ステップＳ９０５によるエミュレート処理後のアドレスがブレークアドレスと一致するか否かを判断する処理が行われる。この処理では、ブレーク検出部１０３から入力されるブレーク検出通知に基づいて判断され、当該処理後のアドレスがブレークアドレスと一致する場合には（Ｓ９０７：Ｙｅｓ）、エミュレータＣＰＵ１０１によるエミュレート処理を止める必要があるため、続くステップＳ９０９に処理を移行してエミュレート処理を中断する（中断フラグをオンにする）。これに対し、当該処理後のアドレスがブレークアドレスと一致しない場合には（Ｓ９０７：Ｎｏ）、エミュレータＣＰＵ１０１によるエミュレート処理を続ける必要があるため、続くステップＳ９０９をスキップしてステップＳ９１１に処理を移行する。
【００１２】
ステップＳ９１１では、エミュレート処理がステップＳ９０９により中断されたか（中断フラグがオンか）、それともエミュレート処理が終了したか（プログラムの終了か）否かを判断する処理が行われる。そして、この判断処理によりエミュレート処理が中断も終了もしていない場合には（Ｓ９１１：Ｎｏ）、処理をステップＳ９０５に戻して再びステップＳ９０５によるエミュレート処理の実行を行う。一方、ステップＳ９１１によりエミュレート処理が中断または終了している場合には（Ｓ９１１：Ｙｅｓ）、続くステップＳ９１３により、トレースメモリ１０５に蓄積されたトレース情報をトレースメモリ１０５から読み出す処理を行う。
【００１３】
ステップＳ９１５では、ステップＳ９１３によりトレースメモリ１０５から読み出されたトレース情報を入出力部１０７に出力、例えば液晶ディスプレィやＣＲＴに表示する処理が行われる。これにより、エミュレートの開始からブレークアドレスで止まるまで、あるいはプログラムが終了するまでのトレース情報（アドレス情報ＡＤＲ、データ情報ＤＡＴＡ等）、つまりターゲットＣＰＵ９１による実行軌跡と実質的に同等のものを視覚的に把握することが可能となる。なお、ブレークポイントとしては、アドレスだけではなく、例えば、レジスタやプログラムカウンタの値等をトリガ情報にすることもある。
【００１４】
このように従来のインサーキットエミュレータ１００では、ブレークポイント（アドレス、レジスタ値等）といった予め設定されているトリガ情報に従ってエミュレート処理の中断条件を設定している。そのため、例えば、再現性の乏しい不定期に出現する現象を捉えてデバッグ作業をしようとしても、それについてのブレークポイント等を設定すること非常に難しい。つまり、毎回ではなく、いつ発生するのか予想できない現象については、エミュレート処理を中断させるトリガ情報として何を設定すれば良いのか見当がつき難いため、ブレークポイントの設定をすることが極めて困難になる。
【００１５】
そこで、下記特許文献１に開示される「異常動作検出方法及びエミュレータ」では、プロセッサ（ＣＰＵ）によるターゲットプログラム（プログラム）の実行情報を記憶しておき、この記憶情報と、その後に実行して得られるターゲットプログラム（プログラム）の実行情報とを比較することで、例えば、ループ処理等の繰り返し実行される処理において再現性の低い異常動作状態を検出可能にしている。
【特許文献１】特開平５−１７３８３０号公報（第２頁〜第５頁）
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、上記特許文献１に開示される技術では、デバッグの対象となるプログラムが一定の実行パターンで処理されるもの、例えば、ループ処理内の実行については、有効に機能するものの、当該処理中に条件分岐等が含まれる場合には、分岐条件の組み合わせによる複数通りの実行パターンが存在する。そのため、このような場合において、当該開示技術を適用しようとすれば、一定の実行パターンを分岐条件ごとに設定する必要が生じることから、デバッグ条件の設定が煩雑となり、デバッグ作業の実情に沿わないという新たな課題が発生し得る。
【００１７】
また、デバッグの対象となるプログラムが、最初（開始）から最後（終了）まで条件判断等がなく処理されることは希であるため、プログラムの全体について再現性の乏しい現象を捉えてデバッグ作業を行いたい場合には、当該開示技術の適用は難しい。
【００１８】
本発明は、上述した課題を解決するためになされたものであり、その目的とするところは、不定期に出現し得る現象を捉え得るデバッグ支援装置およびエミュレータ装置を提供することにある。
【課題を解決するための手段】
【００１９】
上記目的を達成するため、特許請求の範囲に記載の請求項１のデバッグ支援装置では、デバッグの対象となるプログラムを実行し得るＣＰＵ［１１］とこのＣＰＵ［１１］に接続されるアドレスバス［１９ａ］を介して前記ＣＰＵ［１１］がアクセス可能なメモリ装置［１３，１５］とを含んで構成されるコンピュータシステム［１０］に対するデバッグ作業を支援し得るデバッグ支援装置であって、前記ＣＰＵ［１１］が前記メモリ装置［１３，１５］に対して送出し得る読出制御情報［Ｒ］および書込制御情報［Ｗ¬］を伝送する制御バス［１９ｃ］に接続され得るとともに、前記読出制御情報［Ｒ］および前記書込制御情報［Ｗ¬］のいずれも書込制御情報［Ｗ¬］に変換して出力し得る制御情報変換手段［２５］と、前記アドレスバス［１９ａ］に接続され得るとともに、前記制御情報変換手段［２５］から出力される前記書込制御情報［Ｗ¬］に基づいて、前記ＣＰＵ［１１］が前記メモリ装置［１３，１５］からデータを読み出すときの読み出しアドレスおよび／または前記ＣＰＵ［１１］が前記メモリ装置［１５］にデータを書き込むときの書き込みアドレスに対応して前記ＣＰＵ［１１］からアクセスのあるアドレス情報［ＡＤＲ］を前記アドレスバス［１９ａ］から取得して記憶可能なアクセス情報記憶手段［２３］と、前記アクセス情報記憶手段［２３］により記憶された前記アドレス情報［ＡＤＲ］を前記アクセス情報記憶手段［２３］から読み出して出力装置［２７］に出力し得るアドレス情報出力手段［２１］と、を備えることを技術的特徴とする。なお、［  ］内の数字等は、［発明を実施するための最良の形態］の欄で説明する符号に対応し得るものである（以下同じ）。
【００２０】
特許請求の範囲に記載の請求項２のデバッグ支援装置では、請求項１記載のデバッグ支援装置において、前記アクセス情報記憶手段［２３］は、一方のポート［ＡＤＲ−１，ＤＡＴ−１］から前記アドレス情報［ＡＤＲ］を入力して記憶し、この記憶されたアドレス情報［ＡＤＲ］を他方のポート［ＡＤＲ−２，ＤＡＴ−２］から出力し得るデュアルポートメモリ［２３’］であることを技術的特徴とする。
【００２１】
特許請求の範囲に記載の請求項３のインサーキットエミュレータでは、デバッグの対象となるプログラムを実行し得るＣＰＵ［１１］とこのＣＰＵ［１１］に接続されるアドレスバス［１９ａ］を介して前記ＣＰＵ［１１］がアクセス可能なメモリ装置［１３，１５］とを含んで構成されるコンピュータシステム［１０］に対して、前記ＣＰＵ［１１］上で実行し得る前記プログラムの実行をエミュレート［３１（Ｓ２２５）］するとともに、前記メモリ装置［１３，１５］にアクセスするアドレスが任意のアドレス値を示した場合［３１（Ｓ２２７：Ｙｅｓ）］、前記エミュレートを止めて［３１（Ｓ２２９）］前記プログラムの実行状態を出力［３１（Ｓ２３３，Ｓ２３５）］し得るインサーキットエミュレータであって、請求項１または２に記載のデバッグ支援装置の前記アドレス情報出力手段［３１（２１）］から出力される前記アドレス情報［ＡＤＲ］を取得するアドレス情報取得手段［３１（Ｓ２１５）］と、前記アドレス情報取得手段［３１（Ｓ２１５）］により取得された前記アドレス情報を前記任意のアドレス値として設定するブレークアドレス設定手段［３１（Ｓ２２３）］と、を備えることを技術的特徴とする。
【発明の効果】
【００２２】
請求項１の発明では、制御情報変換手段［２５］によって、ＣＰＵ［１１］がメモリ装置［１３，１５］に対して送出し得る読出制御情報［Ｒ］および書込制御情報［Ｗ¬］のいずれも書込制御情報［Ｗ¬］に変換し、この制御情報変換手段［２５］から出力される書込制御情報［Ｗ¬］に基づいて、アクセス情報記憶手段［２３］により、ＣＰＵ［１１］がメモリ装置［１３，１５］からデータを読み出すときの読み出しアドレスおよび／またはＣＰＵ［１１］がメモリ装置［１５］にデータを書き込むときの書き込みアドレスに対応してＣＰＵ［１１］からアクセスのあるアドレス情報［ＡＤＲ］をアドレスバス［１９ａ］から取得して記憶し、アドレス情報出力手段［２１］によって、アクセス情報記憶手段［２３］により記憶されたアドレス情報［ＡＤＲ］をアクセス情報記憶手段［２３］から読み出して出力装置［２７］に出力する。これにより、ＣＰＵ［１１］からメモリ装置［１３，１５］にアクセスがあった場合には、データの読み書きにかかわらずそのアクセスのあったアドレスのアドレス情報［ＡＤＲ］を出力装置［２７］に出力するので、メモリ装置［１３，１５］の全アドレス空間において予定外のメモリアクセスがあったか否かを確認することができる。したがって、当該予定外のメモリアクセスに基づいて、不定期に出現し得る現象を捉えることができる。
【００２３】
請求項２の発明では、アクセス情報記憶手段［２３］は、デュアルポートメモリ［２３’］であり、一方のポート［ＡＤＲ−１，ＤＡＴ−１］からアドレス情報［ＡＤＲ］を入力して記憶し、この記憶されたアドレス情報［ＡＤＲ］を他方のポート［ＡＤＲ−２，ＤＡＴ−２］から出力し得ることから、アクセス情報記憶手段［２３］に対して切替手段を設ける必要がない。即ち、アクセス情報記憶手段［２３］が入力および出力を１つのポートで行うものである場合には、ＣＰＵ［１１］のアドレスバス［１９ａ］からアドレス情報［ＡＤＲ］を入力するときに使用されるポートと、アクセス情報記憶手段［２３］に記憶されたアドレス情報［ＡＤＲ］をアドレス情報出力手段［２１］により出力するときに使用されるポートと、が同一のものになるため、アクセス情報記憶手段［２３］をアドレスバス［１９ａ］に接続する場合と、アクセス情報記憶手段［２３］をアドレス情報出力手段［２１］に接続する場合と、を切替可能な切替手段を設ける必要が生じる。これにより、アクセス情報記憶手段［２３］をデュアルポートメモリ［２３’］にした場合には、このような切替手段を必要しないので、回路構成を簡易な構成にすることが可能となる。したがって、簡易な構成により、当該予定外のメモリアクセスに基づいて、不定期に出現し得る現象を捉えることができる。
【００２４】
請求項３の発明では、アドレス情報取得手段［３１（Ｓ２１５）］により、アドレス情報出力手段［３１（２１）］から出力されるアドレス情報［ＡＤＲ］を取得し、ブレークアドレス設定手段［３１（Ｓ２２３）］により、アドレス情報取得手段［３１（Ｓ２１５）］により取得されたアドレス情報を任意のアドレス値として設定する。これにより、例えば、メモリ装置［１３，１５］の全アドレス空間において予定外のメモリアクセスがあった場合、その予想外のメモリアドレスをエミュレートを止める任意のアドレス値に設定するので、当該インサーキットエミュレータによって、不定期に出現し得る現象を捉えることができる。つまり、請求項１または２に記載のデバッグ支援装置の機能とインサーキットエミュレータの機能とを連携させることで、不定期に出現し得る現象であっても確実に捉えることが可能となる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明のデバッグ支援装置およびインサーキットエミュレータの実施形態について図を参照して説明する。まず、本発明のデバッグ支援装置の一実施形態を図１〜図５に基づいて説明する。
【００２６】
図１に示すように、デバッグ支援装置２０は、ターゲットＣＰＵ１１とこのターゲットＣＰＵ１１に接続されるアドレスバス１９ａを介してターゲットＣＰＵ１１がアクセス可能なＲＯＭ１３およびＲＡＭ１５とを含んで構成されるコンピュータシステム１０に対するデバッグ作業を支援し得るもので、主に、データ監視部２１、アクセス監視メモリ２３、アクセス変換部２５、入出力部２７により構成されている。なお、コンピュータシステム１０は、ターゲットＣＰＵ１１を組み込んだコンピュータシステムで、[背景技術]の欄で説明したコンピュータシステム９０と実質的に同様に構成されている。即ち、コンピュータシステム１０のターゲットＣＰＵ１１には、システムバス１９（アドレスバス１９ａ、データバス１９ｂおよび制御バス１９ｃ）を介して、ＲＯＭ１３、ＲＡＭ１５等のメモリ装置や周辺機器（ＰＥＲ）１７等が接続されており、これらに対してデータの読み出しや書き込みを可能にしている。
【００２７】
即ち、デバッグ支援装置２０は、主に、ターゲットＣＰＵ１１がメモリ装置（ＲＯＭ１３およびＲＡＭ１５）に対して送出し得る読出制御情報Ｒおよび書込制御情報Ｗ¬（制御情報Ｒ／Ｗ¬）を伝送する制御バス１９ｃに接続され得るとともに、読出制御情報Ｒおよび書込制御情報Ｗ¬（制御情報Ｒ／Ｗ¬）のいずれも書込制御情報Ｗ¬（制御情報Ｗ¬／Ｗ¬）に変換して出力し得るアクセス変換部２５と、アドレスバス１９ａに接続され得るとともに、アクセス変換部２５から出力される書込制御情報Ｗ¬に基づいて、ターゲットＣＰＵ１１がメモリ装置からデータを読み出すときの読み出しアドレスおよび／またはターゲットＣＰＵ１１がメモリ装置にデータを書き込むときの書き込みアドレスに対応してターゲットＣＰＵ１１からアクセスのあるアドレス情報ＡＤＲをアドレスバス１９ａから取得して記憶可能なアクセス監視メモリ２３と、アクセス監視メモリ２３により記憶されたアドレス情報ＡＤＲをアクセス監視メモリ２３から読み出して入出力部２７に出力し得るデータ監視部２１と、から構成されている。
【００２８】
なお、図１では、システムバス１９との接続関係を明確にするため、デバッグ支援装置２０は、コンピュータシステム１０のシステムバス１９に直接接続されているように表現されているが、実際には、図２に示すように、デバッグ支援装置２０は、実装されているターゲットＣＰＵ１１のアドレスバス端子や制御バス端子に、図略の治具を介して電気的に接続可能な接続ポート２０ａ、２０ｂを備えている。ここで、図２を参照しながら、データ監視部２１、アクセス監視メモリ２３、アクセス変換部２５等について説明する。
【００２９】
図２に示すように、データ監視部２１はマイクロコンピュータ（以下「マイコン」という。）等からなる制御装置で、次に説明するバス切替スイッチ２２を介してアクセス監視メモリ２３に接続可能に構成されている。
【００３０】
即ち、このデータ監視部２１は、アドレスポート２１-ADRがバス切替スイッチ２２の第１回路２２ａを介してアクセス監視メモリ２３のアドレスポート２３-ADRに、またデータポート２１-DATがバス切替スイッチ２２の第２回路２２ｂを介してアクセス監視メモリ２３のデータポート２３-DATに、さらに制御ポート２１-R/Wがバス切替スイッチ２２の第３回路２２ｃを介してアクセス監視メモリ２３の制御ポート２３-R/Wに、それぞれ接続可能にするとともに、バス切替スイッチ２２に対してスイッチの切替制御を可能にする切替制御情報を制御ポートＣＮＴから出力可能に構成されている。
【００３１】
また、後述するように、データ監視部２１に対するコマンドや設定データを入力したりアクセス情報等の出力データを出力したりする手段として入出力部２７を入出力ポートＩ／Ｏに接続可能にしている。なお、データ監視部２１のアドレスポート２１-ADRはｎビット構成、データポート２１-DATはｍビット構成、のそれぞれパラレルバスである（ｎ、ｍは、正の整数を意味し、例えば、８、１６、２４、３２、６４等である。）。
【００３２】
バス切替スイッチ２２は、３回路構成の多極切替スイッチで、半導体スイッチング回路により構成されている。即ち、バス切替スイッチ２２は、ｎ本構成のパラレル信号を２状態に切り替え可能な第１回路２２ａ、ｍ本構成のパラレル信号を２状態に切り替え可能な第２回路２２ｂおよびシリアル信号を２状態に切り替え可能な第３回路２２ｃからなり、いずれもデータ監視部２１から入力される切替制御情報に従って、ほぼ同時に切り替え可能に構成されている。
【００３３】
アクセス監視メモリ２３は、ターゲットＣＰＵ１１からＲＯＭ１３およびＲＡＭ１５にアクセス可能なアドレスのそれぞれに対して少なくとも１ビット（２値）分の情報（「０」、「１」）を記憶可能なＤＲＡＭ等の半導体メモリ装置で、バス切替スイッチ２２を介してコンピュータシステム１０のアドレスバス１９ａやデータ監視部２１のアドレスポート２１-ADR等に接続可能に構成されている。即ち、このアクセス監視メモリ２３は、バス切替スイッチ２２の第１回路２２ａを介してアドレスポート２３-ADRを接続ポート２０ａやデータ監視部２１のアドレスポート２１-ADRに接続され、また同第２回路２２ｂを介してデータポート２３-DATを電源Ｖddのプルアップ抵抗ｒやデータ監視部２１のデータポート２１-DATに接続され、さらに同第３回路２２ｃを介して制御ポート２３-R/Wをアクセス変換部２５の出力ポート２５-W/Wやデータ監視部２１の制御ポート２１-R/Wに接続されている。なお、アクセス監視メモリ２３のアドレスポート２３-ADRはｎビット構成、同データポート２３-DATはｍビット構成、のそれぞれパラレルバスである。
【００３４】
アクセス変換部２５は、接続ポート２０ｂを介して制御バス１９ｃに接続可能に構成されているロジック回路で、ターゲットＣＰＵ１１から制御バス１９ｃに送出される読出制御情報Ｒおよび書込制御情報Ｗ¬をいずれも書込制御情報Ｗ¬に変換して可能に構成されている。変換された書込制御情報Ｗ¬は、バス切替スイッチ２２の第３回路２２ｃを介してアクセス監視メモリ２３の制御ポート２３-R/Wに出力される。これにより、ターゲットＣＰＵ１１からアドレスバス１９ａにアドレスデータが出力される場合には、それが読み出し時のものであるか、書き込み時のものであるかにかかわらず、アクセス監視メモリ２３に対する制御情報を全て書込制御情報Ｗ¬にすることができる。つまり、アクセス変換部２５は、入力された読出制御情報Ｒ／書込制御情報Ｗ¬を書込制御情報Ｗ¬／書込制御情報Ｗ¬に変換して出力し得る。
【００３５】
入出力部２７は、入力部として例えば押しボタンスイッチやキーボード等、出力部として液晶ディスプレィやＣＲＴ等、をそれぞれ備える端末装置で、例えば、パソコンが用いられる。この入出力部２７は、前述したように、データ監視部２１の入出力ポートＩ／Ｏに接続されることで、データ監視部２１に対するコマンドや設定データを入力したりアクセス情報等の出力データを出力したりする入出力手段として機能する。
【００３６】
このように、デバッグ支援装置２０を構成することで、データ監視部２１から出力される切替制御情報によりバス切替スイッチ２２が図２において実線側に切り替えられている場合には、アクセス監視メモリ２３のアドレスポート２３-ADRが接続ポート２０ａを介してアドレスバス１９ａに、またアクセス監視メモリ２３のデータポート２３-DATがプルアップ抵抗ｒに、さらにアクセス監視メモリ２３の制御ポート２３-R/Wがアクセス変換部２５の出力ポート２５-W/Wに、それぞれ電気的に接続される。これにより、アクセス監視メモリ２３では、ターゲットＣＰＵ１１からアクセスのあるアドレス（読み出し、書き込みを問わず）に対応したデータビットに「１」を書き込むことができるので、アクセスのあるアドレス情報ＡＤＲをアドレスバス１９ａから取得して記憶することが可能となる。
【００３７】
一方、データ監視部２１から出力される切替制御情報によりバス切替スイッチ２２が図２において破線側に切り替えられている場合には、アクセス監視メモリ２３のアドレスポート２３-ADRがデータ監視部２１のアドレスポート２１-ADRに、またアクセス監視メモリ２３のデータポート２３-DATがデータ監視部２１のデータポート２１-DATに、さらにアクセス監視メモリ２３の制御ポート２３-R/Wがデータ監視部２１の制御ポート２１-R/Wに、それぞれ電気的に接続される。これにより、データ監視部２１では、アクセス監視メモリ２３に記憶されているアドレス情報ＡＤＲを読み出すことが可能となる。
【００３８】
続いてデータ監視部２１によるデータ監視処理の流れを図３を参照して説明する。なおこのデータ監視処理は、データ監視部２１を構成するマイコンのＲＯＭに予め書き込まれているか、あるいは入出力部２７を構成するパソコンから同マイコンのＲＡＭにダウンロードされて当該マイコンのＣＰＵにより実行可能な状態に準備されているものである。
【００３９】
図３に示すように、データ監視処理は、まずステップＳ１０１によりバス切替スイッチ２２を図２に示す破線側に切り替えるスイッチ切替処理が行われる。これにより、アクセス監視メモリ２３のアドレスポート２３-ADRはデータ監視部２１のアドレスポート２１-ADRに、またアクセス監視メモリ２３のデータポート２３-DATはデータ監視部２１のデータポート２１-DATに、さらにアクセス監視メモリ２３の制御ポート２３-R/Wはデータ監視部２１の制御ポート２１-R/Wに、それぞれ電気的に接続される。この処理は、次ステップＳ１０３によるアクセス監視メモリ初期化処理に備えるものである。
【００４０】
ステップＳ１０３では、アクセス監視メモリ２３を初期化する処理が行われる。即ち、アクセス監視メモリ２３が有する、ＲＯＭ１３およびＲＡＭ１５にアクセス可能なアドレスのそれぞれに対応する１ビットに「０」を書き込む処理を行う。前述したように、アクセス監視メモリ２３のデータポート２３-DATにはプルアップ抵抗ｒが接続されていることから、後述するステップＳ１０７によりターゲットＣＰＵ１１からアクセスのあるアドレスに対応するアドレス情報ＡＤＲとして「１」が書き込まれる。そのため、このステップＳ１０３では「０」を書き込むことによって、以前記憶されたアドレス情報ＡＤＲ等をすべてクリアする。なお、アクセス監視メモリ２３のデータポート２３-DATにプルダウン抵抗が接続されている場合には、アドレス情報ＡＤＲとして「０」が書き込まれるため、本ステップでは「１」を書き込むことにより、以前記憶されたアドレス情報ＡＤＲ等をすべてクリアする。
【００４１】
続くステップＳ１０５では、バス切替スイッチ２２を図２に示す実線側に切り替えるスイッチ切替処理が行われる。これにより、アクセス監視メモリ２３のアドレスポート２３-ADRは接続ポート２０ａを介してアドレスバス１９ａに、またアクセス監視メモリ２３のデータポート２３-DATはプルアップ抵抗ｒに、さらにアクセス監視メモリ２３の制御ポート２３-R/Wはアクセス変換部２５の出力ポート２５-W/Wに、それぞれ電気的に接続される。この処理は次ステップＳ１０７によるターゲットＣＰＵ実行処理に備えるものである。
【００４２】
ステップＳ１０７ではターゲットＣＰＵ１１を実行させる処理が行われ、ステップＳ１０９によりターゲットＣＰＵ１１の実行処理が終了した判断されない（Ｓ１０９；Ｎｏ）間はステップＳ１０７を継続する。このステップ１０７では、コンピュータシステム１０に対する図略の制御信号または手動操作によりターゲットＣＰＵ１１にデバッグの対象となるプログラムを実行させる。これにより、ターゲットＣＰＵ１１からＲＯＭ１３やＲＡＭ１５にアクセスがあると、アドレスバス１９ａにアドレスデータが出力されるとともに制御バス１９ｃに制御情報Ｒ／Ｗ¬が出力されるため、デバッグ支援装置２０のアクセス監視メモリ２３では、ターゲットＣＰＵ１１からアクセスのあるアドレス（読み出し、書き込みを問わず）に対応したデータビットに「１」を書き込む。つまり、アクセスのあるアドレス情報ＡＤＲをアドレスバス１９ａから取得して記憶することが可能となる。
【００４３】
ステップＳ１０９によりターゲットＣＰＵ１１の実行処理が終了した判断されると（Ｓ１０９でＹｅｓ）、続くステップＳ１１１により再びバス切替スイッチ２２を図２に示す破線側に切り替えるスイッチ切替処理が行われる。これにより、アクセス監視メモリ２３のアドレスポート２３-ADRはデータ監視部２１のアドレスポート２１-ADRに、またアクセス監視メモリ２３のデータポート２３-DATはデータ監視部２１のデータポート２１-DATに、さらにアクセス監視メモリ２３の制御ポート２３-R/Wはデータ監視部２１の制御ポート２１-R/Wに、それぞれ電気的に接続されるため、次のステップＳ１１３によってアクセス監視メモリ２３の内容をデータ監視部２１が読み出すことが可能となる。
【００４４】
ステップＳ１１３では、アクセス監視メモリ２３を読み出す処理が行われる。即ち、ステップＳ１１１によるバス切替スイッチ２２の切替によって、アクセス監視メモリ２３とデータ監視部２１の各バス同士がそれぞれ電気的に接続可能になるため、アクセス監視メモリ２３に記憶されているアドレス情報ＡＤＲをデータ監視部２１を読み出すことが可能となる。
【００４５】
データ監視部２１によりアクセス監視メモリ２３から必要なアドレス情報ＡＤＲを読み出し終わると、次のステップＳ１１５によって、読み出したアドレス情報ＡＤＲをメモリアクセス情報として入出力部２７に出力し表示する処理が行われる。これにより、例えば図４に示すように編集されたメモリアクセス情報が入出力部２７の表示装置に出力される。ここで、図４に示す表示例を簡単に説明する。
【００４６】
図４に示すように、例えば、メモリアクセス情報として、画面左側に１６番地ごとに１６進表示される「アドレス」、その右側に１番地ごとに対応するアクセス情報が１６番地分「０」または「１」で表示され、さらにその右側にこの１６番地分のアクセス情報を１６進表示したものが＜＞で囲まれて表示されている。
【００４７】
例えば、図４に示す例では、００００番地から０００９番地までは「０」、０００Ａ番地から０００Ｃ番地（１０進で１０番地〜１２番地）までは「１」、０００Ｄ番地（１０進で１３番地）は「０」、０００Ｅ番地から００１Ｄ番地（１０進で１４番地〜２９番地）までは「１」、００１Ｅ番地、００１Ｆ番地（１０進で３０番地、３１番地）は「０」というように表示され、この１６番地分のアクセス情報を１６進で４桁表示したものが＜００３Ｂ＞、＜ＦＦＦＣ＞で表示されている。
【００４８】
このようにデバッグ支援装置２０では、ターゲットＣＰＵ１１からＲＯＭ１３やＲＡＭ１５にアクセスのあったアドレス情報ＡＤＲをそのアドレスごとに「０」または「１」のビット情報として視覚的に把握することができるので、例えば、図４に示す７ＦＦ２番地のように、予想外のアドレスにターゲットＣＰＵ１１からアクセスがあれば、一目してそれを確認することができる。また、１６番地分のアクセス情報をまとめて１６進で４桁表示しているので、図４に示す７ＦＦ２番地の例では、その前後の大半がアクセスのないことを示す「０」であっても、＜００００＞、…、＜００００＞、＜２０００＞、＜００００＞のように、アクセスのあることを示す「１」を見落とすことなく容易に把握することができる。
【００４９】
なお、上述した実施形態では、ターゲットＣＰＵ１１から制御バス１９ｃに送出される読出制御情報Ｒおよび書込制御情報Ｗ¬を、アクセス変換部２５によりいずれも書込制御情報Ｗ¬に変換可能に構成しているが、ＲＡＭ１５に書き込む場合のメモリアクセス情報だけをアクセス監視メモリ２３に記憶させるのであれば、アクセス変換部２５を省略して制御バス１９ｃをポート端子２０ｂを介しバス切替スイッチ２２に接続しても良い。またＲＯＭ１３やＲＡＭ１５から読み出す場合のメモリアクセス情報だけをアクセス監視メモリ２３に記憶させるのであれば、入力された読出制御情報Ｒ／書込制御情報Ｗ¬を、逆の、書込制御情報Ｗ¬／読出制御情報Ｒに変換して出力し得るようにアクセス変換部を構成し、これを介して制御バス１９ｃをポート端子２０ｂをバス切替スイッチ２２に接続しても良い。
【００５０】
ここで、アクセス監視メモリ２３として、一方のポートからアドレス情報ＡＤＲを入力して記憶し、この記憶されたアドレス情報ＡＤＲを他方のポートから出力し得るデュアルポートメモリを用いた例を図５を参照して説明する。
【００５１】
図１で示したデバッグ支援装置２０では、図２に示すように、アクセス監視メモリ２３とアドレスバス１９ａ等との間およびアクセス監視メモリ２３とデータ監視部２１との間に、バス切替スイッチ２２を介在させて、アクセス監視メモリ２３とアドレスバス１９ａ等とのバス接続と、アクセス監視メモリ２３とデータ監視部２１とのバス接続と、を調整し両者間のバス競合を防止していたが、バス切替スイッチ２２を必要とする分、回路構成が複雑化していた。
【００５２】
そのため、図５に示すデバッグ支援装置２０’では、アクセス監視メモリ２３’にデュアルポートメモリを用いることで、アクセス監視メモリ２３’の一方のポート、即ちアドレスポートADR-1に接続ポート２０ａ、データポートDAT-1にプルアップ抵抗ｒ、制御ポートR/W-1にアクセス変換部２５の出力ポート２５-W/Wをそれぞれ接続し、アクセス監視メモリ２３’の他方のポート、即ちアドレスポートADR-2、データポートDAT-2および制御ポートR/W-2に、データ監視部２１のアドレスポート２１-ADR、データポート２１-DATおよび制御ポート２１-R/Wをそれぞれ接続する。
【００５３】
これにより、アクセス監視メモリ２３’とデータ監視部２１との間や、アクセス監視メモリ２３とアドレスバス１９ａ等との間に、バス切替スイッチ２２を介在させる必要がなくなるので、デバッグ支援装置２０’の回路構成を簡易な構成にすることが可能となる。なお、このアクセス監視メモリ２３’もアクセス監視メモリ２３と同様に、ＲＯＭ１３およびＲＡＭ１５にアクセス可能なアドレスのそれぞれに対して少なくとも１ビット（２値）分の情報（「０」、「１」）を記憶可能なＤＲＡＭ等の半導体メモリ装置であることに変わりはなく、入出力ポートを２ポート備えている点が異なる。
【００５４】
以上説明したように、本実施形態に係るデバッグ支援装置２０によると、アクセス変換部２５によって、ターゲットＣＰＵ１１がＲＯＭ１３やＲＡＭ１５に対して送出し得る読出制御情報Ｒおよび書込制御情報Ｗ¬のいずれも書込制御情報Ｗ¬に変換し、このアクセス変換部２５から出力される書込制御情報Ｗ¬に基づいて、アクセス監視メモリ２３により、ターゲットＣＰＵ１１がＲＯＭ１３やＲＡＭ１５からデータを読み出すときの読み出しアドレスおよびターゲットＣＰＵ１１がＲＡＭ１５にデータを書き込むときの書き込みアドレス、あるいはターゲットＣＰＵ１１がＲＯＭ１３やＲＡＭ１５からデータを読み出すときの読み出しアドレスまたはターゲットＣＰＵ１１がＲＡＭ１５にデータを書き込むときの書き込みアドレス、に対応してターゲットＣＰＵ１１からアクセスのあるアドレス情報ＡＤＲをアドレスバス１９ａから取得して記憶し、データ監視部２１により、アクセス監視メモリ２３により記憶されたアドレス情報ＡＤＲをアクセス監視メモリ２３から読み出して入出力部２７に出力する。
【００５５】
これにより、ターゲットＣＰＵ１１からＲＯＭ１３やＲＡＭ１５にアクセスがあった場合には、データの読み書きにかかわらずそのアクセスのあったアドレスのアドレス情報ＡＤＲを入出力部２７に出力するので、ＲＯＭ１３やＲＡＭ１５の全アドレス空間において予定外のメモリアクセスがあったか否かを確認することができる。したがって、当該予定外のメモリアクセスに基づいて、不定期に出現し得る現象を捉えることができる。また、アクセス監視メモリ２３’にデュアルポートメモリを用いることで、簡易な構成により、当該予定外のメモリアクセスに基づいて不定期に出現し得る現象を捉えることができる。
【００５６】
次に、本発明のインサーキットエミュレータの一実施形態を図６および図７に基づいて説明する。図６に示すように、インサーキットエミュレータ３０は、[背景技術]の欄で説明したインサーキットエミュレータ１００に、前述したデバッグ支援装置２０を組み合わせた構成にほぼ等しいものではあるが、デバッグ支援装置２０から出力されるメモリアクセス情報がブレークアドレスとして設定され得る点に特徴がある。なお、図６において、図１に示すコンピュータシステム１０やデバッグ支援装置２０と実質的に同一の構成部分には、同一符号を付し、ここではそれらの説明を省略する。
【００５７】
インサーキットエミュレータ３０は、エミュレータＣＰＵ３１、ブレーク検出部３３、トレースメモリ３５および入出力部２７により構成されており、例えば、ターゲットＣＰＵ１１を実装するための図略のＣＰＵソケット等を介して、コンピュータシステム１０のシステムバス１９に接続可能に構成されている。
【００５８】
エミュレータＣＰＵ３１は、ターゲットＣＰＵ１１の動作をエミュレートしてターゲットＣＰＵ１１の代わりにデバッグの対象となるプログラムを実行する機能と、前述したデバッグ支援装置２０を構成するデータ監視部２１の機能と、を兼ね備えたもので、入出力部２７と併せて、例えばパソコンにより実現されている。
【００５９】
入出力部２７は、ターゲットＣＰＵ１１によるエミュレートを停止させるブレークポイント（ブレークアドレス）を入力したり、またエミュレート停止後にそれまで採取したアドレス情報ＡＤＲ、データ情報ＤＡＴＡおよび制御情報Ｒ／Ｗ¬を表示したり、さらにはデータ監視部２１として機能するエミュレータＣＰＵ３１に対するコマンドや設定データを入力したりアクセス情報等の出力データを出力したりする入出力手段として機能する。
【００６０】
このエミュレータＣＰＵ３１にバス接続されているブレーク検出部３３は、コンピュータシステム１０のシステムバス１９に接続可能に構成されている。このブレーク検出部３３は、システムバス１９のアドレスバス１９ａから入力されるアドレス情報ＡＤＲが、予め設定されているブレークアドレスに一致するか否かを判断し、一致した場合にその旨のブレーク検出通知をエミュレータＣＰＵ３１に出力し得る機能を有する。このブレークアドレスは、入出力部２７からエミュレータＣＰＵ３１に入力されるブレークポイントに基づいてエミュレータＣＰＵ３１がブレーク検出部３３に設定するもので、通常、エミュレートの開始前に設定されている。
【００６１】
ブレーク検出部３３と同様にトレースメモリ３５も、エミュレータＣＰＵ３１にバス接続されるとともにコンピュータシステム１０のシステムバス１９に接続可能に構成されている。このブレーク検出部３３は、アドレス情報ＡＤＲ、データ情報ＤＡＴＡおよび制御情報Ｒ／Ｗ¬（トレース情報）をそれぞれ蓄積し得る機能を有し、例えば、半導体メモリ装置により構成されている。なお、トレースメモリ３５によって蓄積されたトレース情報は、必要に応じてエミュレータＣＰＵ３１に出力可能に構成されている。
【００６２】
なお、デバッグ支援装置２０を構成するアクセス監視メモリ２３は、前述同様にアドレスバス１９ａに接続可能に構成され、またアクセス変換部２５は、制御バス１９ｃに接続可能に構成されている（図２参照）。アクセス監視メモリ２３は、データ監視部２１として機能するエミュレータＣＰＵ３１にもバス接続可能に構成されている（図２参照）。
【００６３】
また、図６では、システムバス１９との接続関係を明確にするため、インサーキットエミュレータ３０は、ターゲットＣＰＵ用のソケットを介することなく、システムバス１９に直接接続されているように表現されていること、またターゲットＣＰＵ１１とインサーキットエミュレータ３０とが併存するように記載されているが、実際には、これらのうちのいずれか一方のみシステムバス１９に接続されていること、さらにデバッグ支援装置２０が機能する場合には、ターゲットＣＰＵ１１がシステムバス１９に接続されてインサーキットエミュレータ３０によるエミュレーションではなく、ターゲットＣＰＵ１１による実処理が行われ得ることに留意されたい。
【００６４】
このようにデバッグ支援装置２０を備えたインサーキットエミュレータ３０を構成することで、エミュレータＣＰＵ３１は、図７に示すようなデータ監視・エミュレート処理を行う。なおこのデータ監視・エミュレート処理は、エミュレータＣＰＵ３１のＲＯＭやＨＤＤに予め書き込まれ、エミュレータＣＰＵ３１により実行可能な状態に準備されているものである。なお、図７において、図３に示すデータ監視処理と実質的に同一の処理ステップ部分には、同一符号を付し、ここではそれらの説明を省略する。
【００６５】
図７に示すように、データ監視・エミュレート処理は、まずステップＳ１０１、Ｓ１０３、Ｓ１０５、Ｓ１０７、Ｓ１０９、Ｓ１１１、Ｓ１１３により、図３を参照して説明したデータ監視処理と同様に各処理を行う。なお、ステップＳ１０３とステップＳ１０５との間に存在するステップＳ２１１では、アクセス監視すべき領域（アクセス監視領域）を設定する処理を行う。この設定は、入出力部２７の入力部から入力される設定データにより決定される。
【００６６】
これにより、ターゲットＣＰＵ１１からＲＯＭ１３やＲＡＭ１５にアクセスがあった場合には、データの読み書きにかかわらずそのアクセスのあったアドレスのアドレス情報ＡＤＲをアクセス監視メモリ２３に記憶するので、このアクセス監視メモリ２３に記憶されたアドレス情報ＡＤＲをアクセス情報として出力し（Ｓ１１３）、これをステップＳ２０１により設定されたアクセス監視領域内にメモリアクセスがあったか否かをステップＳ２０３により判断する。つまり、監視すべきアドレス空間において予想外のアクセスがあったか否かをこのステップＳ２１３により判断する。
【００６７】
そして、ステップＳ２１３によりアクセス監視領域内においてメモリアクセスがあったと判断された場合には（Ｓ２１３：Ｙｅｓ）、ステップＳ２２１以降に処理を移行して当該メモリアクセスのあったアドレスをブレークアドレスに設定してエミュレート処理を行う。一方、ステップＳ２１３によりアクセス監視領域内においてメモリアクセスがあったと判断されない場合には（Ｓ２１３：Ｎｏ）、想定外のメモリアクセスはなかったことになるので、ステップＳ２２１以降によるエミュレート処理を行うことなく、本データ監視・エミュレート処理を終了する。
【００６８】
ステップＳ２２１以降では、エミュレータＣＰＵ３１によるエミュレート処理が行われる。エミュレート処理では、まずステップＳ２２１によりトレースメモリ３５等の初期化処理が行われた後、ステップＳ２２３によりブレークアドレスを設定する処理が行われる。このブレークアドレス設定処理では、アクセス監視領域内においてメモリアクセスのあったアドレスをブレークアドレス（任意のアドレス値）に設定する。具体的には、ステップＳ２２３により見つけたアクセス監視領域内のアドレス情報をブレークアドレスとして、エミュレータＣＰＵ３１がブレーク検出部３３に設定する。
【００６９】
ステップＳ２２３によりブレークアドレスが設定されると、続くステップＳ２２５では、ターゲットＣＰＵ１１の動作をエミュレートする処理、つまりエミュレート処理の実行が行われる。この処理は、図略のサブルーチンにより行われるもので、ターゲットＣＰＵ１１の機能を、例えば、１命令ごとにエミュレートするとともにトレースメモリ３５によってトレース情報（アドレス情報ＡＤＲ、データ情報ＤＡＴＡおよび制御情報Ｒ／Ｗ¬）を取得する。
【００７０】
ステップＳ２２７では、ステップＳ２２５によるエミュレート処理後のアドレスがブレークアドレスと一致するか否かを判断する処理が行われる。この処理では、ブレーク検出部３３から入力されるブレーク検出通知に基づいて判断され、当該処理後のアドレスがブレークアドレスと一致する場合には（Ｓ２２７：Ｙｅｓ）、エミュレータＣＰＵ３１によるエミュレート処理を止める必要があるため、続くステップＳ２２９に処理を移行してエミュレート処理を中断する（中断フラグをオンにする）。これに対し、当該処理後のアドレスがブレークアドレスと一致しない場合には（Ｓ２２７：Ｎｏ）、エミュレータＣＰＵ３１によるエミュレート処理を続ける必要があるため、続くステップＳ２２９をスキップしてステップＳ２３１に処理を移行する。
【００７１】
ステップＳ２３１では、エミュレート処理がステップＳ２２９により中断されたか（中断フラグがオンか）、それともエミュレート処理が終了したか（プログラムの終了か）否かを判断する処理が行われる。そして、この判断処理によりエミュレート処理が中断も終了もしていない場合には（Ｓ２３１：Ｎｏ）、処理をステップＳ２２５に戻して再びステップＳ２２５によるエミュレート処理の実行を行う。一方、ステップＳ２３１によりエミュレート処理が中断または終了している場合には（Ｓ２３１：Ｙｅｓ）、続くステップＳ２３３により、トレースメモリ３５に蓄積されたトレース情報をトレースメモリ３５から読み出す処理を行う。
【００７２】
ステップＳ２３５では、ステップＳ２３３によりトレースメモリ３５から読み出されたトレース情報を入出力部２７に出力に表示する処理が行われる。これにより、エミュレートの開始からブレークアドレスで止まるまで、あるいはプログラムが終了するまでのトレース情報（アドレス情報ＡＤＲ、データ情報ＤＡＴＡ等）、つまりターゲットＣＰＵ１１による実行軌跡と実質的に同等のものを視覚的に把握することが可能となる。
【００７３】
このように本実施形態に係るインサーキットエミュレータ３０によると、ＲＯＭ１３やＲＡＭ１５の監視領域内のアドレス空間において予定外のメモリアクセスがあった場合、その予想外のメモリアドレスをエミュレートを止めることができるので、当該インサーキットエミュレータ３０によって、不定期に出現し得る現象を捉えることができる。つまり、デバッグ支援装置２０の機能と従来のインサーキットエミュレータ１００の機能とを連携させることで、不定期に出現し得る現象であっても確実に補足可能なインサーキットエミュレータ３０を実現可能にし得る。
【図面の簡単な説明】
【００７４】
【図１】本発明の実施形態に係るデバッグ支援装置およびデバッグの対象となるコンピュータシステムそれぞれの構成概要を示すブロック図である。
【図２】本実施形態に係るデバッグ支援装置の構成例を示すブロック図である。
【図３】本デバッグ支援装置のデータ監視部によるデータ監視処理の流れを示すフローチャートである。
【図４】本デバッグ支援装置の入出力部により表示されるアドレス情報の表示例を示す説明図である。
【図５】本デバッグ支援装置の他の例の構成例を示すブロック図である。
【図６】本発明の実施形態に係るインサーキットエミュレータおよびデバッグの対象となるコンピュータシステムそれぞれの構成概要を示すブロック図である。
【図７】本インサーキットエミュレータのエミュレータＣＰＵにより実行されるデータ監視・エミュレート処理の流れを示すフローチャートである。
【図８】従来のインサーキットエミュレータおよびデバッグの対象となるコンピュータシステムそれぞれの構成概要を示すブロック図である。
【図９】従来のインサーキットエミュレータによるエミュレート処理の流れを示すフローチャートである。
【符号の説明】
【００７５】
１０…コンピュータシステム
１１…ターゲットＣＰＵ（ＣＰＵ）
１３…ＲＯＭ（メモリ装置）
１５…ＲＡＭ（メモリ装置）
１７…周辺機器
１９…システムバス
１９ａ…アドレスバス
１９ｂ…データバス
１９ｃ…制御バス
２０…デバッグ支援装置
２１…データ監視部
２２…バス切替スイッチ
２３…アクセス監視メモリ（アクセス情報記憶手段）
２３’…アクセス監視メモリ（アクセス情報記憶手段、デュアルポートメモリ）
２５…アクセス変換部（制御情報変換手段）
２７…入出力部（出力装置）
３０…インサーキットエミュレータ
３１…エミュレータＣＰＵ（アドレス情報取得手段、ブレークアドレス設定手段）
３３…ブレーク検出部
３５…トレースメモリ
ＡＤＲ…アドレス情報
ＤＡＴＡ…データ情報
Ｒ／Ｗ¬…制御情報
【図１】
2006172004.tif 000003
【図２】
2006172004.tif 000004
【図３】
2006172004.tif 000005
【図４】
2006172004.tif 000006
【図５】
2006172004.tif 000007
【図６】
2006172004.tif 000008
【図７】
2006172004.tif 000009
【図８】
2006172004.tif 000010
【図９】
2006172004.tif 000011