(57)【要約】【課題】ＣＰＵが多数使用されるシステムのトレースを行う。【解決手段】複数のＣＰＵが実装されるシステムのＣＰＵが実行する複数の命令を含むプログラムの実行経過を解析するためのトレース情報を記録するトレース情報記録装置において、ＣＰＵが外部に対して出力するステータス信号及びＣＰＵが接続されているバスに接続されるインタフェースと、トレースの開始条件及び終了条件を記憶するとともに開始条件及び終了条件の生起を監視してトレース実行信号を生成する条件監視手段と、条件監視手段によって生成されるトレース実行信号に基づいてトレースの開始・終了を行い、トレース実行期間中トレース情報をトレースエリアに記録する記録制御手段と、トレース情報を記録するトレースエリアとを備える。【選択図】図１
2005165825.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵが実装されるシステムのＣＰＵが実行する複数の命令を含むプログラムの実行経過を解析するためのトレース情報を記録するトレース情報記録装置において、
ＣＰＵが外部に対して出力するステータス信号及びＣＰＵが接続されているバスに接続されるインタフェースと、トレースの開始条件及び終了条件を記憶するとともに開始条件及び終了条件の生起を監視してトレース実行信号を生成する条件監視手段と、条件監視手段によって生成されるトレース実行信号に基づいてトレースの開始・終了を行い、トレース実行期間中トレース情報をトレースエリアに記録する記録制御手段と、トレース情報を記録するトレースエリアとによって構成されることを特徴とするトレース情報記録装置。
【請求項２】
ＣＰＵへの入力信号がトレース情報記録装置にも入力されることを特徴とする請求項１記載のトレース情報記録装置。
【請求項３】
時刻情報を生成する時刻計測手段を設け、記録制御手段はトレース情報をトレースエリアに記録する際に時刻計測手段によって生成された時刻情報を併せて記録することを特徴とする請求項１又は２記載のトレース情報記録装置。
【請求項４】
記録対象となるトレース情報を選択するための情報を記憶しトレース情報選択信号を生成する情報選択手段を設け、記録制御手段はトレース実行期間中トレース情報選択信号に対応するトレース情報を記録することを特徴とする請求項１〜３の何れかに記載のトレース情報記録装置。
【請求項５】
記録制御部は、トレース情報が変化したときにのみトレース情報の変化の状態を記録することを特徴とする請求項１〜４の何れかに記載のトレース情報記録装置。
【請求項６】
記録制御部は、トレース情報に対して識別子を設定して、変化したトレース情報を識別子とともに記録することを特徴とする請求項１〜５の何れかに記載のトレース情報記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数ＣＰＵを実装したシステムにおいてＣＰＵのトレースを実行するトレース情報記録装置に関する。
【背景技術】
【０００２】
ＣＰＵを実装したシステムのプログラムのデバッグを行う方法の１つとして、命令の実行履歴をトレースする方法がある。更に、ＣＰＵが複数実装された場合には、ＣＰＵ間の同期関係が明らかになるような情報を合わせて記録する必要がある。このような複数のＣＰＵによる連携動作に着目したトレース技術が存在する（例えば、特許文献１，２を参照）。これら技術はＣＰＵ毎にトレース装置が設けられ、各トレース装置は同期して動作でき、それぞれトレース対象のＣＰＵのトレース情報を時刻と共に記録し、最後にトレースした情報を時刻順に並べ替えることによりＣＰＵ間の同期関係を把握し易くするというものである。
【０００３】
【特許文献１】特開平５−１２８０７９号公報
【特許文献２】特開平１０−２６０８６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、これらはトレース対象のＣＰＵ毎に独立してトレース情報を記録するため、トレースのための監視部、記録部がＣＰＵの数だけ必要であり、回路規模の観点からＣＰＵが多数使用されるシステムのトレースには適していなかった。又、ＣＰＵがキャッシュを有する場合にはバス観測のみではトレースは困難である。
【０００５】
本発明は上記問題に鑑みてなされたもので、その目的とする処は、多数のＣＰＵのトレースを取る際にもトレース回路の規模の増大を低減できるとともに、ＣＰＵのキャッシュの有無に拘らず統一的な手法でトレースが可能となるトレース情報記録装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、請求項１記載の発明は、複数のＣＰＵが実装されるシステムのＣＰＵが実行する複数の命令を含むプログラムの実行経過を解析するためのトレース情報を記録するトレース情報記録装置において、ＣＰＵが外部に対して出力するステータス信号及びＣＰＵが接続されているバスに接続されるインタフェースと、トレースの開始条件及び終了条件を記憶するとともに開始条件及び終了条件の生起を監視してトレース実行信号を生成する条件監視手段と、条件監視手段によって生成されるトレース実行信号に基づいてトレースの開始・終了を行い、トレース実行期間中トレース情報をトレースエリアに記録する記録制御手段と、トレース情報を記録するトレースエリアとによって構成されることを特徴とする。
【０００７】
請求項２記載の発明は、請求項１記載の発明において、ＣＰＵへの入力信号がトレース情報記録装置にも入力されることを特徴とする。
【０００８】
請求項３記載の発明は、請求項１又は２記載の発明において、時刻情報を生成する時刻計測手段を設け、記録制御手段はトレース情報をトレースエリアに記録する際に時刻計測手段によって生成された時刻情報を併せて記録することを特徴とする。
【０００９】
請求項４記載の発明は、請求項１〜３の何れかに記載の発明において、記録対象となるトレース情報を選択するための情報を記憶しトレース情報選択信号を生成する情報選択手段を設け、記録制御手段はトレース実行期間中トレース情報選択信号に対応するトレース情報を記録することを特徴とする。
【００１０】
請求項５記載の発明は、請求項１〜４の何れかに記載の発明において、記録制御部は、トレース情報が変化したときにのみトレース情報の変化の状態を記録することを特徴とする。
【００１１】
請求項６記載の発明は、請求項１〜５の何れかに記載の発明において、記録制御部は、トレース情報に対して識別子を設定して、変化したトレース情報を識別子とともに記録することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、複数ＣＰＵのトレースを行うことによりバスインタフェースをＣＰＵと同じ数だけ持つ必要がないため、多数のＣＰＵのトレースを取る際にもトレース回路の規模の増大を低減できる。又、ＣＰＵのキャッシュの有無に拘らず統一的な手法でトレースが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下に本発明の実施の形態を添付図面に基づいて説明する。
【００１４】
＜実施の形態１＞
図１は本発明の実施の形態１に係るトレース情報記録装置の構成図である。
【００１５】
図１において、１００はトレース情報記録装置であり、１０１はＣＰＵが外部に対して出力するステータス信号を取り込むインタフェースであり、１０２はトレースの開始条件及び終了条件を記憶するとともに開始条件及び終了条件の生起を監視してトレース実行信号を生成する条件監視手段であり、１０３は条件監視手段１０２によって生成されるトレース実行信号に基づいてトレースの開始・終了を行い、トレース実行期間中トレース情報をトレースエリアに記録する記録制御手段であり、１０４は記録制御手段１０３によって書き込まれたトレース情報を記録するトレースエリアであり、１１１は複数のＣＰＵが実装されるシステムの第１のＣＰＵであり、１１２は第２のＣＰＵであり、１１３は第ｎのＣＰＵである。
【００１６】
以下に図１及び図５を用いて本実施の形態の動作を説明する。
【００１７】
図５は各ＣＰＵのプログラムカウンタの遷移とバス上のデータの例である。ＢＵＳ  ＡＤＤＲはバス上のアドレス、ＢＵＳ  ＤＡＴＡはバス上のデータ、ＢＵＳ  Ｒ／Ｗはバストランザクションがリードかライトかを示す信号、ＢＵＳ  Ｍａｓｔｅｒ  ＩＤはバスマスタを示すＩＤ、ＲＥＱはバストランザクション要求信号、ＡＣＫはバストランザクションのアクノリッジ信号、ＣＰＵ１１１  ＰＣはＣＰＵ１１１のプログラムカウンタ、ＣＰＵ１１２  ＰＣはＣＰＵ１１２のプログラムカウンタ、ＣＰＵ１１３  ＰＣはＣＰＵ１１３のプログラムカウンタをそれぞれ示している。
【００１８】
ＣＰＵ１１１〜１１３は、プログラムカウンタの値を外部に出力する信号を有しており、該プログラムカウンタ値を示す信号はトレース情報記録装置１００に接続されている。トレース情報記録装置１００は、インタフェース１０１を介してＣＰＵ１１１〜１１３のプログラムカウンタ出力信号及びバスに接続されている。条件監視手段１０２は、トレース実行信号をアサートする条件とトレース実行信号をディアサートする条件となるバスアクセスやＣＰＵ１１１〜１１３のプログラムカウンタ値が記録されており、監視対象信号がアサート条件を満たしてからディアサート条件を満たすまでの間トレース実行信号をアサートする。
【００１９】
例えば、トレース開始条件をＣＰＵ１１３のプログラムカウンタが０でなくなったとき、トレース終了条件をＣＰＵ１１２がＣＰＵ１１１のレジスタに対して書き込みを行ったときという設定をする。記録制御手段１０３は、トレース実行信号がディアサートされている間は停止しており、トレース実行信号がアサートされるとＣＰＵ１１１〜１１３のプログラムカウンタの値、ＣＰＵ１１１〜１１３によるバストランザクションのアドレス、データ、リード／ライト及びマスタＩＤをトレースエリアに書き込む。即ち、Ｔ２でＣＰＵ１１３  ＰＣは１となり、トレース開始条件を満たすため、ｔ２からトレース情報の記録が開始される。図５におけるＡ２がＣＰＵ１１１内のあるリソースのアドレスを示すもとするとｔ１１（或はｔ１２）はＣＰＵ１１２からＣＰＵ１１１へのライトアクセスとなるため、この時点でトレース情報の記録が終了する。
【００２０】
デバッグの際、ＣＰＵリソースの全ての初期値が分かっていれば、ＣＰＵが命令を実行しているタイミングと分岐の成立及びＣＰＵに取り込まれたデータが分かれば、各時刻におけるプログラムカウンタの値を特定することが可能である。ＣＰＵ１１１〜１１３はプログラムカウンタ出力信号を有する代わりに、命令実行開始毎、プログラムの分岐成立毎に１クロックサイクル期間アサートされる命令実行信号、分岐成立信号を出力し、該命令実行信号及び分岐成立信号をトレース開始・終了条件及びトレース対象とする場合も同様の効果が得られる。
【００２１】
図６は命令実行信号、分岐成立信号の例を示す図である。
【００２２】
図６において、ｔ１でＰＣ＝１３に相当する命令を実行してＰＣが遷移し、ｔ２でＰＣ＝１５の命令で分岐が成立してｔ３ではＰＣ＝Ａ５となり、ｔ５ではＰＣ＝Ｂ１となっているが、ｔ４でＰＣ＝Ｂ０の命令の実行を最後にプログラムが終了したものとする。命令実行信号がアサートされていれば次のタイミングではＰＣの値は１命令分進み、ディアサートされていれば変化しない。又、分岐成立信号がアサートされていればプログラムを解析することにより分岐先のアドレスが特定でき、次のタイミングでは分岐先を示すＰＣ値に遷移する。
【００２３】
＜実施の形態２＞
図２は実施の形態２に係るトレース情報記録装置の構成図である。
【００２４】
図２において、２００はトレース情報記録装置であり、２０１はＣＰＵが外部に対して出力するステータス信号及びＣＰＵへの入力信号と共通の入力信号を取り込むインタフェースであり、２０２はトレースの開始条件及び終了条件を記憶するとともに開始条件及び終了条件の生起を監視してトレース実行信号を生成する条件監視手段であり、２０３は条件監視手段２０２によって生成されるトレース実行信号に基づいてトレースの開始・終了を行い、トレース実行期間中トレース情報をトレースエリアに記録する記録制御手段であり、２０４は記録制御手段２０３によって書き込まれたトレース情報を記録するトレースエリアであり、１１１は複数のＣＰＵが実装されるシステムの第１のＣＰＵであり、１１２は第２のＣＰＵであり、１１３は第ｎのＣＰＵである。
【００２５】
本実施の形態は、ＣＰＵへの入力信号を記録することにより、ＣＰＵにおける分岐、一時停止、動作再開等の要因を容易に特定できるようにしたものである。ＣＰＵ及びトレース記録装置への共通入力信号としては割込み信号、サスペンド状態から動作状態へ復帰するためのトリガとなるレジューム信号等が該当する。
【００２６】
＜実施の形態３＞
図３は本発明の実施の形態３に係るトレース情報記録装置の構成図である。
【００２７】
３００はトレース情報記録装置であり、３０１はＣＰＵが外部に対して出力するステータス信号及びＣＰＵへの入力信号と共通の入力信号を取り込むインタフェースであり、３０２はトレースの開始条件及び終了条件を記憶するとともに開始条件及び終了条件の生起を監視してトレース実行信号を生成する条件監視手段であり、３０３は条件監視手段３０２によって生成されるトレース実行信号に基づいてトレースの開始・終了を行い、トレース実行期間中トレース情報をトレースエリアに記録する記録制御手段であり、３０４は記録制御手段３０３によって書き込まれたトレース情報を記録するトレースエリアであり、３０５は時刻計測手段である。
【００２８】
本実施の形態はトレース情報を記録する際に時刻情報を合わせて記録するものである。特に、命令実行信号、分岐成立信号のようなステータス信号を変化が生じたときにのみ対象信号の識別子と変化が特定できる情報に対して時刻情報を付加して記録したり、バストランザクションが完了した時点でアドレス、データ、リード／ライト、マスタＩＤに対して時刻情報を付加して記録することによりトレースエリアを削減する。トレース情報毎に識別子を設定して変化した信号のみを記録する場合も本実施の形態に含む。
【００２９】
＜実施の形態４＞
図４は実施の形態４のトレース情報記録装置の構成図である。
【００３０】
４００はトレース情報記録装置であり、４０１はＣＰＵが外部に対して出力するステータス信号及びＣＰＵへの入力信号と共通の入力信号を取り込むインタフェースであり、４０２はトレースの開始条件及び終了条件を記憶するとともに開始条件及び終了条件の生起を監視してトレース実行信号を生成する条件監視手段であり、４０３は条件監視手段４０２によって生成されるトレース実行信号に基づいてトレースの開始・終了を行い、トレース実行期間中情報選択手段４０５によって指定されたトレース情報をトレースエリアに記録する記録制御手段であり、４０４は記録制御手段４０３によって書き込まれたトレース情報を記録するトレースエリアであり、４０５はトレースすべき情報の選択情報、各選択情報を記録する際に消費するビット数やフォーマットを記憶し記録制御手段４０３に対してトレース情報を指定する信号を出力する情報選択手段である。
【００３１】
本実施の形態は、複数ＣＰＵ又はバストランザクションのうち、デバッグに必要な情報のみをトレースするものである。特に、複数ＣＰＵが実装されたシステムにおいて全てのＣＰＵが同期或は関連し合って動作していない場合には、全ての情報をトレースすると不必要にトレース情報が複雑且つ膨大になり、デバッグ作業の非効率を招く。トレース情報を限定することによりトレースエリアを削減するとともにデバッグを効率化する。
【産業上の利用可能性】
【００３２】
本発明は、複数ＣＰＵを実装したシステムにおいてＣＰＵのトレースを実行するトレース情報記録装置に対して適用可能である。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施の形態１に係るトレース情報記録装置の構成図である。
【図２】本発明の実施の形態２に係るトレース情報記録装置の構成図である。
【図３】本発明の実施の形態３に係るトレース情報記録装置の構成図である。
【図４】本発明の実施の形態４に係るトレース情報記録装置の構成図である。
【図５】トレース記録装置への入力信号の例を示す図である。
【図６】命令実行信号及び分岐成立信号の例を示す図である。
【符号の説明】
【００３４】
１００  トレース記録装置
１０１  インタフェース
１０２  条件監視手段
１０３  記録制御手段
１０４  トレースエリア
１１１  第１のＣＰＵ
１１２  第２のＣＰＵ
１１３  第ｎのＣＰＵ
１２０  バス
２００  トレース記録装置
２０１  インタフェース
２０２  条件監視手段
２０３  記録制御手段
２０４  トレースエリア
３００  トレース記録装置
３０１  インタフェース
３０２  条件監視手段
３０３  記録制御手段
３０４  トレースエリア
３０５  時刻計測手段
４００  トレース記録装置
４０１  インタフェース
４０２  条件監視手段
４０３  記録制御手段
４０４  トレースエリア
４０５  情報選択手段
【図１】
2005165825.tif 000003
【図２】
2005165825.tif 000004
【図３】
2005165825.tif 000005
【図４】
2005165825.tif 000006
【図５】
2005165825.tif 000007
【図６】
2005165825.tif 000008