(57)【要約】  本発明は、外部のデバッギング装置にアプリケーションプログラムに関するトレース情報を提供する処理装置と、トレーシングシステムと、トレーシング方法に関する。トレースプロセッサ４０は、トレーシングに関するタスクをメインプロセッサ１０から取り除くために設けられる。メインプロセッサは、第１ポートを介してトレースメモリ３０にトレース情報を蓄積する一方、第２ポートを介して蓄積されたトレース情報を読み出す。それによって、十分なトレース情報が、メインプロセッサの性能に影響を与えることなく利用可能となり得る。
2008523456.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムに基づいてデータを処理する処理装置であって、
前記データの処理を行うための前記アプリケーションプログラムにより制御されるプロセッサ手段と、
トレースメモリ手段にトレース情報を蓄積するための第１ポートを介して前記プロセッサ手段によりアクセスされ得るトレースメモリ手段と、
前記トレース情報を読み出すための第２ポートを介して前記トレースメモリ手段にアクセスし、前記処理装置の出力インタフェースに対して前記読み出されたトレース情報を転送するトレースプロセッサ手段と、を含む処理装置。
【請求項２】
請求項１に記載の処理装置であって、
前記トレースメモリ手段は、デュアルポートランダムアクセスメモリ又はマルチポートランダムアクセスメモリを含む処理装置。
【請求項３】
請求項２に記載の処理装置であって、
前記デュアルポートランダムアクセスメモリは、前記プロセッサ手段のメインメモリに集積される処理装置。
【請求項４】
請求項１乃至３のいずれか１項に記載の処理装置であって、
前記出力インタフェース及び前記トレースプロセッサ手段は、予め定められた一定の送信パラメータを備えた同一のチップに集積される処理装置。
【請求項５】
請求項１又は２に記載の処理装置であって、
前記出力インタフェース、前記トレースメモリ手段、及び前記トレースプロセッサ手段は、同一のチップに集積される処理装置。
【請求項６】
請求項１乃至５のいずれか１項に記載の処理装置であって、
前記出力インタフェースは、汎用非同期送受信回路である処理装置。
【請求項７】
請求項１乃至６のいずれか１項に記載の処理装置は、さらに、
前記プロセッサ手段を前記トレースプロセッサ手段に接続する制御接続を含み、
前記制御接続は、前記トレースプロセッサ手段を起動するための前記プロセッサ手段により用いられる処理装置。
【請求項８】
請求項１乃至７のいずれか１項に記載の処理装置は、さらに、
前記プロセッサ手段を前記トレースメモリ手段に接続する第１バス手段と、
前記トレースプロセッサ手段を前記トレースメモリ手段に接続する第２バス手段を含む処理装置。
【請求項９】
アプリケーションプログラムに関するトレース情報を提供するトレーシング方法であって、
少なくとも第１ポート及び第２ポートを有するトレースメモリ手段を準備するステップと、
前記アプリケーションプログラムにより制御される処理機能により、前記第１ポートを介して前記トレースメモリ手段の前記トレース情報を蓄積するステップと、
前記トレース情報を出力するために、前記第２ポートを介してトレース処理機能により前記トレースメモリ手段にアクセスするステップを含むトレーシング方法。
【請求項１０】
請求項９に記載のトレーシング方法は、さらに、
前記アクセスするステップにおける画定された開始アドレスとデータ量を用いて前記トレース情報の開始アドレスとデータ量を画定するステップを含むトレーシング方法。
【請求項１１】
請求項１０に記載のトレーシング方法は、さらに、
前記開始アドレスに蓄積された情報から前記データ量を引き出すステップを含むトレーシング方法。
【請求項１２】
請求項１０又は１１に記載のトレーシング方法は、さらに、
制御入力を介して、前記開始アドレス及び前記データ量の少なくとも１つをプログラミングするステップ、又は前記トレース処理機能で前記開始アドレス及び前記データ量の少なくとも１つを予めセットするステップを含むトレーシング方法。
【請求項１３】
アプリケーションプログラムに関するトレース情報を備えたデバッギング装置を提供するトレーシングシステムであって、
データ処理を行うための前記アプリケーションプログラムにより制御されるプロセッサと、
トレースメモリに前記トレース情報を蓄積するための第１ポートを介して前記プロセッサによりアクセスされ得るトレースメモリと、
前記トレース情報を読み出すための第２ポートを介して前記トレースメモリにアクセスし、前記読み出されたトレース情報を前記デバッギング装置に転送するトレースプロセッサを含むトレーシングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、組込システムのトレースの特徴を提供できるようにするためのアプリケーションプログラムに関するトレース情報を提供するための処理装置、トレーシングシステム、及びトレーシング方法に関する。
【背景技術】
【０００２】
多くのソフトウェア開発者は、彼らの時間の重要な一部をソフトウェアのバグを探すことに費やす。伝統的に、このことは、デバッガの開始／停止を用いて行われる。このようなデバッガを用いることにより、システムが停止するブレークポイントが画定され、動作中のプログラムがブレークポイントを叩くときにシステムの状態が試験され得る。試験結果に基づいて、ソフトウェアの問題又はエラーが発見され得る。
【０００３】
あいにく、システムを停止させることがリアルタイム動作を変化させるので、このような技術はリアルタイムシステムにはほとんど使われていない。このことは、ブレークポイントが登場するとすぐに、これを消すようにデバッグしようとするという課題を引き起こす。解決策として、同じハードウェアが、プロセッサにより行われる一連の命令と出来る限りのデータアクセスを取り込むようなリアルタイムソフトウェアトレース技術が開発された。開発者は、そのとき、バグを調査するために、このプロセッサの動作履歴又はトレースログを用いても良い。
【０００４】
近年、プロセッサはリアルタイムトレース手段を含んでいた。このようなリアルタイムトレース手段が容易に手に入ることにより、新しいデバッギングパラダイムが開発されることを許容する。そのようなリアルタイムトレース手段は、リアルタイムに動作するプロセッサにより行われる命令のトレースを取り込み、後続の分析のためにバッファにこれらの命令を蓄積する。行われる命令に加えて、命令により用いられるデータが取り込まれても良い。命令又はデータのいずれが取り込まれるかを選択することは典型的に可能である。インストラクショントレースは、プロセッサの実行の流れを示し、行われた全ての命令の一覧を提供する。インストラクショントレースは、サイクル・バイ・サイクル原理のパイプライン状態を示す状態信号の集合とともに、ブランチアドレスに一度だけブロードキャストすることにより著しく圧縮され得る。一方、データトレースは、読み出し又は蓄積処理を行うプロセッサの結果として生じるプロセッサにより行われるデータアクセスを示す。データアクセスに関しては、アドレスとデータの両方をブロードキャストすることができる。データトレースは、アドレス又はデータのいずれかをブロードキャストするだけで圧縮され得る。
【０００５】
さらに、特定の命令の実行、又は特定値をメモリの特定場所に書き込むようなトリガ条件を選択することが典型的に可能である。もっとより複雑なトリガ条件もまた時々利用できる。トリガ条件が発生すると、バッファは、ただちに又は少し経った後のいずれかにトレースデータの取り込みを停止するので、バッファは、トリガ条件が発生した時間周辺のシステムの動作のトレースを記憶しておく。
【０００６】
図５は、メインプロセッサ１０を含み、第１バスシステム１２を介してメインメモリ２０に接続され、追加の第２バスシステム１４を介して、外部のデバッギング装置（図示されない）又はそのたぐいと接続されても良いようなインタフェースユニット、例えば、汎用非同期送受信回路（ＵＡＲＴ）インタフェース５０と接続される伝統的なリアルタイムトレースシステムの略ブロック図を示す。特に、外部のデバッギング装置は、トレースデバッグツールを動作させるホストコンピュータ又はパーソナルコンピュータ（ＰＣ）であっても良い。メインプロセッサ１０は、トレースデータをメインメモリ２０に書き込む。次に、メインプロセッサ１０は、メインメモリ２０からのトレースデータとともにＵＡＲＴインタフェース５０をプログラムし、提供し、そして、全ての割込、及び外部デバッギング装置にトレースデータを送るために必要とされる装置管理を処理する。
【０００７】
要するに、組込システムに関しては、外部のデバッギング装置に対するオンボードインタフェースを介してランタイムデバッグ情報を送るために用いられるトレースの特徴への対策があっても良い。一般的には、インタフェースユニット５０を管理するための割込等のようなメインプロセッサ１０による処理を含むので、トレース情報を最小化することが望ましい。
【０００８】
しかしながら、ソフトウェアの問題を正確に理解するためには、利用可能なできるだけ多くのトレース情報を有する方が良い。具体的には、アプリケーションオブジェクトのランタイム動作についてのトレース情報を得ることが望ましい。
【０００９】
それ故に、本発明の目的は、処理装置、トレーシングシステム、及びトレーシング方法を提供することであって、それらを用いて、利用可能なトレース情報の量がメインプロセッサを中断させる必要なしに増加され得る。
【００１０】
この目的は、請求項１に記載の処理装置、請求項９に記載のトレーシング方法、及び請求項１３に記載のトレーシングシステムにより達成される。
【００１１】
従って、トレースコプロセッサ又はコプロセッシング機能は、外部装置に対してトレース情報をトレースし、提供することに関するタスクをメインプロセッサから取り除く。この方法では、メインプロセッサの性能に影響を与えることなく、十分なトレース情報が利用可能になり得る。アプリケーショントレースは、このように、メインプロセッサにより行われる管理タスクが全くない、又はできるだけ最小であるようなメインプロセッサのピーク時のロード状況でさえ発生させられ得る。このことは、トレースログファイルの救済とともに遠隔分析及びデバッギング技術に対する重要な貢献を提供する。提案される解決策は、このように、自身のトレース情報を処理するのに十分な時間とリソースを持たない処理装置にとって特に役に立つ。
【００１２】
トレースメモリ手段は、デュアルポートランダムアクセスメモリ又はいかなる種類のマルチポートメモリを含んでも良い。それによって、プロセッサ手段は、デュアルポートランダムアクセスメモリのうちの１ポートに接続され得る一方、トレースプロセッサ手段は他方のポートに接続され得る。トレースプロセッサ手段は、このように、それ自身から独立して機能し、プロセッサ手段のバスシステムにアクセスする必要がない。プロセッサ手段の参加の調停だけは、そのとき、トレースプロセッサ手段を動作可能にする作用であっても良い。デュアルポートランダムアクセスメモリは、分割ユニット又は分割装置であっても良く、又はプロセッサ手段のメインメモリに集積されても良い。後者の場合は、メインメモリ及びトレースメモリ手段が単一のメモリユニットに集積され得るので、チップ領域が削減され得る。
【００１３】
その上、出力インタフェース及びトレースプロセッサ手段は、予め定められた一定の送信パラメータとともに同一のチップに集積されても良い。このように、プロセッサ手段によるプログラミングのオーバヘッドは削減され得る。
【００１４】
もう１つの代替として、出力インタフェース、トレースメモリ手段、及びトレースプロセッサ手段は、同一のチップに集積される。このことは、個々のユニット間の通信に必要とされるバスシステムの数を削減するのに役立つ。
【００１５】
具体的には、出力インタフェースは、汎用非同期送受信回路インタフェースであっても良い。
【００１６】
プロセッサ手段及びトレースプロセッサ手段は、トレースプロセッサ手段を起動するためのプロセッサ手段により用いられる制御接続、例えば、接続線により接続されても良い。従って、チップ選択制御線のような単一の接続線だけが、プロセッサ手段とトレースプロセッサ手段との間の通信に用いられ得る。
【００１７】
プロセッサ手段とトレースメモリ手段は、第１バス手段により接続されても良く、一方、トレースプロセッサ手段とトレースメモリ手段は、第２バス手段により接続されても良い。このことは、トレースプロセッサ手段がトレースメモリ手段へアクセスするために自身の第２バス手段を用いるので、プロセッサ手段の混乱を最小化するのに役立つ。
【００１８】
トレーシング方法は、トレース情報の開始アドレス及びデータ量、例えば、バイト数が画定され、トレースメモリ手段へのアクセスに用いられる。それによって、トレースプロセッシング機能は、予め定められた与えられた開始アドレスからトレースデータまでの量をほんの少し拾い上げても良く、そのときは、それを外部のデバッギング装置に転送する。具体例として、データ量を示す情報は、画定される開始アドレスに蓄積されても良い。開始アドレスの少なくとも１つ及びデータ量は、制御入力を介してプログラム可能であっても良いし、前記トレースプロセッシング機能に予めセットされても良い。
【発明を実施するための最良の形態】
【００１９】
以下に、本発明は、添付の図面を参照して好ましい実施例に基づいて、より詳細に記述されるであろう。
【００２０】
好ましい実施例は、ここでは、パーソナルコンピュータ（ＰＣ）のような外部のデバッギング装置に対するオンボードＵＡＲＴインタフェース５０を介してランタイムデバッグ情報を送るためにトレースの特徴が用いられる組込システムに基づいて記述されるであろう。
【００２１】
図１は、第１の好ましい実施例に係るトレースの特徴を備えた組込システムの略ブロック図である。組込システムは、第１バスシステム１２を介してメインメモリ２０に接続されるメインプロセッサ１０を含む。さらに、第２バスシステム１４は、デュアルポートＲＡＭ（ＤＰＲＡＭ）のようなデュアルポートメモリ３０の第１ポートにメインプロセッサ１０を接続するために提供される。追加のトレースコプロセッサ４０は、追加の第３バスシステム１６を介してデュアルポートメモリ３０の第２ポートと接続される。さらに、トレースコプロセッサ４０は、制御線１１を介してメインプロセッサ１０と接続される。ＵＡＲＴインタフェース５０は、第４バスシステム１８を介してトレースコプロセッサ４０と接続される。
【００２２】
図１に示されるように、メインプロセッサ１０により生成されるトレース情報は、デュアルポートメモリ３０にダンプされ、又は蓄積され得る。次に、トレースコプロセッサ４０は、第４バスシステム１８を介してＵＡＲＴインタフェース５０にトレース情報を送信又は転送するための制御線１１を介して、メインプロセッサ１０により動作可能にされる必要がある。一度、制御線１１を介して制御信号により動作可能にされると、トレースコプロセッサは、トレース情報又はトレースデータをＵＡＲＴインタフェース５０に送信する。トレース情報は、第１アドレスが転送されるトレースデータ量、例えば、バイト数を含むような方法で、デュアルポートメモリ３０に配置され得る。開始アドレスは、予め定められた一定のアドレス、又はデュアルポートメモリ３０から読み出された前のどのトレースデータからも画定されるアドレスになる可能性がある。それによって、トレースコプロセッサ４０は、実行するのに非常に単純になり得る。例えば、一度、トレース情報の総バイト数がＵＡＲＴインタフェース５０に送信されると、トレースコプロセッサ４０自身は効力がなくなる。この方法では、メインプロセッサ１０は全く混乱しない。トレース情報の準備ができたとき、例えば、デュアルポートメモリ３０に蓄積されたとき、メインプロセッサ１０が行わなければならないのはトレースコプロセッサ４０を動作可能にすることだけである。それによって、十分なトレース情報が、メインプロセッサ１０により行われる装置処理をほぼ中断することなく提供され得る。
【００２３】
トレースコプロセッサ４０は、それ自身から独立して機能し、メインプロセッサ１０の第１バスシステム１２又は第２バスシステム１４にアクセスする必要がない。メインプロセッサ１０の調停又は中断だけがトレースコプロセッサ４０を動作可能にするために行われる。
【００２４】
トレースコプロセッサ４０は、引き出されたトレース情報を分析、及び／又は圧縮しても良く、若しくは、外部のデバッギング装置に対してＵＡＲＴインタフェース５０を介して単に転送しても良い。
【００２５】
代替として、メインプロセッサ１０は、デュアルポートメモリ３０内のトレース可能なオブジェクトを蓄積しても良く、トレースコプロセッサ４０は、トレース情報を独立に生成しても良い。
【００２６】
一般的に、現在のシステムは、分析のためのランタイムをトレースされる必要のあるソフトウェアオブジェクトであればどれに関連しても良い。トレース可能なオブジェクトは、デュアルポートメモリ３０に直接アップデートされ得るし、トレースコプロセッサ４０は、それらのオブジェクトを読み出すことができる。トレース情報は、より高い水準のソフトウェアオブジェクト又はアプリケーションオブジェクトに関連しても良い。特殊な命令集合は、トレースの特徴に必要とされない。例えば、異なるリアルタイムオペレーティングシステム（ＲＴＯＳ）タスク等から転送されたデータを得ることに気を付けても良い。
【００２７】
メインプロセッサ１０は、マイクロプロセッサ又は他の処理ユニットのようなメインコンピュータユニットであればどれでも良い。第１バスシステム１２及び第２バスシステム１４は、メインプロセッサ１０の能力、例えば、３２ビット、１６ビットプロセッサなどに基づくパラレルバスシステムであっても良い。デュアルポートメモリ３０は、マルチポートメモリ装置であればどれに置換されても良い。メインプロセッサ１０によりアクセスされるものと、トレースコプロセッサ４０によりアクセスされる他のものである２以上のポートを有していれば良い。特に、デュアルポートメモリ３０は、トレースデータにのみ用いられても良い。従って、特定のアプリケーションにより生成されたトレースデータ量に基づく小容量を有することができる。ＵＡＲＴインタフェース５０は、標準的な通信インタフェース装置、例えば、パラレルポート又は同様のものであればどれでも良い。第４データバス１８は、パラレルバス、例えば、トレースコプロセッサ４０とＵＡＲＴインタフェース５０との間の通信のための手段を提供する８ビットデータであっても良い。同様に、トレースコプロセッサ４０は、デュアルポートメモリ３０に対するバイトアクセスを有しても良い。既に上述されたように、メインプロセッサとトレースコプロセッサ４０との間の接続は、チップ選択制御線のような単一線１１であっても良い。
【００２８】
図２は、トレースコプロセッサ４０及びＵＡＲＴインタフェース５０が必要とされるトレースデータのレートを処理するのに十分なボーレートのような一定のパラメータを備えた同一のチップ上に集積された第２の好ましい実施例のトレーシングシステムの変形例を示す。それによって、メインプロセッサ１０によるオーバヘッドのプログラミングは削減され得る。さらに、第２の好ましい実施例では、デュアルポートメモリが、トレースメモリ６０としてメインメモリ２０に集積される。この場合は、もちろん、メインメモリ２０は、第１バスシステム１２及び第３バスシステム１６が接続され得る少なくとも２つの異なるアクセスポートを有するマルチポートメモリ又はデュアルポートメモリとして配置されなければならない。
【００２９】
このように、チップ上のスペース要件を削減することにより、第２の好ましい実施例は、第２バスシステム１４及び第５バスシステム１８が分配され得るという利点を提供する。もちろん、第２の好ましい実施例で導かれた上記２つの変形例は必ずしも一緒に適用しなければならないわけではなく、第１の好ましい実施例は、上記２つの変形例の１つだけを導く、すなわち、デュアルポートメモリ３０をメインメモリ２０に集積するか、又はＵＡＲＴインタフェース５０をトレースコプロセッサ４０に集積するかのいずれかにより変形されても良い。
【００３０】
図３は、トレースコプロセッサ４０、ＵＡＲＴインタフェース５０、及びデュアルポートメモリ３０が同一のチップ上に集積された第３の好ましい実施例に係るトレーシングシステムの追加の変形例を示す。この場合は、第２バスシステム１４は、デュアルポートメモリ３０の第１ポート間の接続を提供するために用いられ得るが、一方、デュアルポートメモリ３０の第２ポートに対する接続は、トレースコプロセッサ４０のチップ上に集積される。従って、必要とされるバスシステムの数は最小化され得る。
【００３１】
図４は、上記第１〜第３の好ましい実施例で行われ得るようなトレーシング手順の略フローチャートを示す。トレーシング手順は、トレースコプロセッサ４０に対する制御線１１を介してメインプロセッサ１０により発行される対応する制御信号、例えば、チップイネーブル信号のようなものにより起動させられ、又は動作可能にされる。この起動に応じて、トレースコプロセッサ４０は、ステップＳ１００において、デュアルポートメモリ（例えば、ＤＰＲＡＭ）３０（第１の好ましい実施例）又はトレースメモリ６０（第２の好ましい実施例）を読むための開始アドレスとデータ量、例えば、バイト数を画定する。開始アドレスは、予め定められた一定のアドレスであっても良いし、最後に検索されたトレース情報の終了アドレスから引き出されても良いし、最後に検索されたトレース情報により他の適切な方法で提供されても良い。バイト数は、蓄積された情報から引き出されても良いし、デュアルポートメモリ３０又はトレースメモリ６０に画定された開始アドレスで予めセットされても良い。
【００３２】
代替として、開始アドレスとバイト数の少なくとも一方は、制御線１１を介してメインプロセッサ１０により信号伝達されても良いし、プログラミングされても良い。このために、制御線１１が単一線の場合はシリアル通信が用いられても良いし、制御線１１がいくつかのデータ線を含む場合はパラレル通信が用いられても良い。
【００３３】
次に、ステップＳ１０１において、トレースコプロセッサ４０は、開始アドレスを用いてデュアルポートメモリ３０又はトレースメモリ６０にそれぞれアクセスし、蓄積されたトレースデータを読み出す。最後に、ステップＳ１０２において、トレースコプロセッサ４０は、外部のデバッギング装置に対してトレースデータを供給するために、ＵＡＲＴインタフェース５０に対して検索されたトレースデータを送信又は転送する。
【００３４】
要するに、トレーシングに関するタスクをメインプロセッサ１０から取り除くために、トレースコプロセッサ４０が提供される。この方法では、十分なトレース情報が、メインプロセッサ１０の性能に影響を与えることなく外部のデバッギング装置に対して利用可能となり得る。
【００３５】
本発明は、上記の好ましい実施例に限定されるものではなく、トレーシングの特徴を必要とするプロセッサを含むシステム、特に、組込システムであればどれにも用いられ得ることに注目されたい。ＵＡＲＴインタフェース５０は、外部のデバッギング装置に対する接続を提供するインタフェースユニットであればどれでも良い。その上、デュアルポートメモリ３０は、メインメモリ１０及びトレースコプロセッサ４０に対する独立したメモリアクセスを提供するための少なくとも２つのアクセスポートを有するメモリであればどのタイプにも置換され得る。好ましい実施例は、添付の特許請求の範囲の範囲内でこのように変化しても良い。
【図面の簡単な説明】
【００３６】
【図１】第１の好ましい実施例に係るトレーシングシステム及びプロセッサ装置の略ブロック図を示す。
【図２】第２の好ましい実施例に係るトレーシングシステム及びプロセッサ装置の略ブロック図を示す。
【図３】第３の好ましい実施例に係るトレーシングシステム及びプロセッサ装置の略ブロック図を示す。
【図４】好ましい実施例に係るトレーシング手順の略フローチャートを示す。
【図５】従来から知られているトレーシングシステムの略ブロック図を示す。
【図１】
2008523456.tif 000003
【図２】
2008523456.tif 000004
【図３】
2008523456.tif 000005
【図４】
2008523456.tif 000006
【図５】
2008523456.tif 000007
【国際調査報告】
2008523456.tif 000008
2008523456.tif 000009
2008523456.tif 000010