JP2010020767A - データ処理装置の監視およびその監視データの集計 - Google Patents

データ処理装置の監視およびその監視データの集計 Download PDF

Info

Publication number
JP2010020767A
JP2010020767A JP2009161994A JP2009161994A JP2010020767A JP 2010020767 A JP2010020767 A JP 2010020767A JP 2009161994 A JP2009161994 A JP 2009161994A JP 2009161994 A JP2009161994 A JP 2009161994A JP 2010020767 A JP2010020767 A JP 2010020767A
Authority
JP
Japan
Prior art keywords
data
monitoring
access
data processing
event
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.)
Granted
Application number
JP2009161994A
Other languages
English (en)
Other versions
JP5328531B2 (ja
Inventor
Alastair David Reid
アラステア・デビッド・レイド
Katherine Elizabeth Kneebone
キャサリン・エリザベス・ニーボーン
Jan Guffens
ジャン・グフェンス
Lee Douglas Smith
リー・ダグラス・スミス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2010020767A publication Critical patent/JP2010020767A/ja
Application granted granted Critical
Publication of JP5328531B2 publication Critical patent/JP5328531B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Alarm Systems (AREA)

Abstract

【課題】開始と終了イベントとの間に生じるデータ処理装置内の複数のアドレス指定可能場所へのアクセスを監視するための監視回路を提供する。
【解決手段】前記監視回路は、監視される前記複数のアドレス指定可能場所を識別するデータを保存するためのアドレス場所保存と、監視データ保存とを含み、前記監視回路は、前記開始イベントの検出に応答して、前記複数のアドレス指定可能場所へのアクセスを検出し、前記監視データ保存内に前記検出されたアクセスの集計に関連する監視データを保存し、前記監視回路は、前記終了イベントの検出に応答して、前記監視データの収集を停止し、前記監視回路は、消去イベントの検出に応答して、前記保存された監視データを出力し、前記監視データ保存を消去する、データ処理装置が開示される。
【選択図】図1

Description

本発明は、データ処理分野に関し、より具体的には、データ処理システムの監視に関する。
データ処理装置は、益々複雑になってきているため、最適化または故障の発見において、大量のデータを抽出および分析せずに、その性能を分析することが益々困難になってきている。
さらに、複数のプロセッサを有するデータ処理装置が増えている。これら複数のプロセッサは、多くの場合、同一のデータストレージにアクセスするため、レース条件の問題が発生し、1つのプロセッサがそれにアクセスするのとほぼ同時に、別のプロセッサが保存された変数に書き込むことになる。そのような問題は、プロセッサ間の同期が不十分であることによって発生する。
マルチプロセッサシステムの性能を調整する際には、異なるが、関連する問題が発生する。プログラマは、例えば、バス競合の理由によって、2つのコードが同時に異なるプロセッサ上で実行することによる性能の推測を理解する必要がある。
さらに、関数が、許可された範囲内のメモリの一部にのみアクセスし、その範囲外のメモリにはアクセスしないことを確認できることが重要である場合もある。
レース条件を確認する周知の方法の1つは、動的レース検出機構によるものである。例えば、「Eraser: a dynamic data race detector for multithreaded programs」(ACM Transactions On Computer Systems(TOCS)vol 15, issue 4, November 1997 pages 391 − 411 1997 Savage et al)に記載されたEraserシステムが挙げられる。Eraserシステムは、あらゆる共有メモリ参照を監視し、ロック動作が統一して実現されていることを検証するために、監視しているプログラムを変更する。このようなランタイム変更に関して、例えば、2つの問題がある。1つ目は、実質的な速度低下を引き起こす可能性がある(Eraserは、典型的には、システムの速度を10倍〜30倍低下させる)ため、リアルタイムシステムには適用できないことであって、2つ目は、ソフトウェアを変更するため、プログラム不可能なアクセラレータ(例えば、DMAコントローラ)、または監視コードを表現するための命令セットが十分に豊富ではないアクセラレータ、あるいは実用的または法的な理由でコードが変更できないアクセラレータとのやり取りによって引き起こされる問題を検出するために使用することができないことである。
レース条件を確認する別の方法は、静的レース検出機構によるものであって、例えば、「HP Labs Tech reports SRC−RR−159 http://www.hpl.hp.com/techreports/compaq−DEC/SRC−RR−159.HTML」に記載されたDetlefsらの「拡張静的確認法」(ESC)および「“Checking System Rules Using System−Specific, Programmer−Written Compiler Extensions” in Proceedings of the 4th Symposium on Operating System Design and Implementation」に記載されたEngelsらのMCシステムが挙げられる。
これらの静的手段は、両方とも、プログラムの静的分析を実行することによって働き、プログラムにおける殆どのレース条件を検出することを目的にするが、それらが存在しないことを証明することは目的にしていない。MCは、ロックを取得および解除する時に、プログラマが、確立された(手動に検証された)記述の書き方に従っていることを確認することによって働くが、ESCは、プログラムに関してより深い論理を実行し、例えば、配列の限界を超えて書き込むような問題も検出できる。静的分析は、動的検出に関わるオーバヘッドを回避するが、動的検出が捉え得るレース条件の一部を見つけることができない。加えて、静的分析ツールは、概して、ロック方式の限られたセットにしか対応せず、異なるロック方式が使用される場合、確認することができない(または、多くの誤検出を報告する)。
処理システムをプロファイリングし、その性能の表示を提供するために利用可能な多くのツールが存在する。例えば、多くのオペレーティングシステムは、各CPUがどれくらいビジー状態であるか、どのくらいのメモリが使用されているか、および時間によってその数がどのように変化するかを示すグラフを生成するツールを有する。
これらプロファイリングツールは、システムハードウェアによって提供される性能カウンタに依存することができる。例えば、最新のプロセッサは、実行される命令の数またはキャッシュミスの数等のイベントをカウントすることができる。これらカウンタは、典型的には、2つのモードで使用される。一方のモード(「ワンショットモード」と呼ぶ)では、プログラマ(または、ツール)は、プログラムを変更し、タスクの開始時にカウンタを起動し、タスクの終了時にカウンタの値を読み込む。本値は、ユーザに提示されるか、または後でユーザに提示するために保存される。他方のモード(「周期的サンプリング」と呼ぶ)では、周期的インタラプトが、ライブラリをトリガし、後の試験のために、性能カウンタおよびストリーム値をストレージに読み出す。これらは、例えば、グラフとして表示されてもよい。
いずれの場合も、プロセッサは、最新のカウンタ値を読み込むことが必要とされる。本要件は、プロセスを侵襲性にする(測定動作によって、結果に影響を及ぼす場合がある)。また、性能カウンタの読み出しに関与するプロセッサにオーバヘッドを課し、最終的に、測定が為され得る粒度と、可能性として、精度をも制限する。
ワンショットモードと比較して、「周期的サンプリング」モードにおいて性能カウンタを使用することは、監視を所望するタスクが、サンプリング周期の途中から開始し、別のサンプリング周期で終了し、不正確な性能係数をもたらす場合があるという不利点を有する。本不精度は、サンプリング周期を短縮することによって減少し得るが、これは、侵襲性の程度を増加させるだけでなく、ある程度の不精度が存在する限り、イベントが、確実に、あるタスクの間に生じた、またはそのタスクの間に生じなかったと断言することができない。
性能カウンタの周期的サンプリングに関する変形例は、ランダムサンプリングである。これは、サンプリング周期が、測定しているイベントの頻度の正確な倍数である場合に生じる一部の問題を解決するが、不精度を低減させることはない。
精度および侵襲性の問題は、ハードウェアを提供し、全着目イベントをトレースすることによって対処可能である。オフチップツールは、本トレースを集計し、非常に詳細かつ正確なグラフを生成することができる。そのようなアプローチの不利点は、イベントが高頻度で生じる場合、トレースを生成するために大量の帯域幅が必要とされ、それを保存するために大量のストレージが必要とされ、さらにそれを集計するために大量の処理が必要とされることである。これは、イベントを個別に試験することを所望する場合、有用であるが、性能プロファイリングまたはレース条件の検出には過度となる。
非常に大量のデータを収集する必要なく、したがって、出力および処理する必要なく、リアルタイムで複雑なシステムを分析可能であることが望ましいであろう。
「Eraser: a dynamic data race detector for multithreaded programs」,ACM Transactions On Computer Systems(TOCS)vol 15, issue 4, November 1997 pages 391 − 411 1997 Savage et al HP Labs Tech reports SRC−RR−159 http://www.hpl.hp.com/techreports/compaq−DEC/SRC−RR−159.HTML "Checking System Rules Using System−Specific, Programmer−Written Compiler Extensions" in Proceedings of the 4th Symposium on Operating System Design and Implementation
第1の態様から見ると、本発明は、開始と終了イベントとの間に生じるデータ処理装置内の複数のアドレス指定可能場所へのアクセスを監視するための監視回路を含む、データ処理装置であって、前記監視回路は、監視される前記複数のアドレス指定可能場所を識別するデータを保存するためのアドレス場所保存と、監視データ保存とを含み、前記監視回路は、前記開始イベントの検出に応答して、前記複数のアドレス指定可能場所へのアクセスを検出し、前記監視データ保存内の前記検出されたアクセスの集計に関連する監視データを保存し、前記監視回路は、前記終了イベントの検出に応答して、前記監視データの収集を停止し、前記監視回路は、消去イベントの検出に応答して、前記保存された監視データを出力し、前記監視データ保存を消去する、データ処理装置を提供する。
本発明は、従来のトレース方法を使用してデータ処理システムのアクティビティをトレースする際、トレースストリームが、システム内の段階的アクティビティを表すデータを含むように生成され、オフチップツールがそれを集計可能なように、本データが出力されることを認識する。しかしながら、これの不利点は、アクティビティが、高頻度で生じると、トレースを生成するために大量の帯域幅と、それを保存するために大量のストレージと、それを集計するために大量の処理とを必要とする可能性があることである。益々複雑化するシステムに伴って、本問題はさらに悪化しつつある。本発明は、開始および終了イベントを使用する際に監視されるアクセスを限度として制限し、さらに空間的に特定のアドレス場所に制限することによって、本問題に対処する。さらに、システムは、次いで、検出されたアクセスの集計の収集および出力のみ行い、その後、監視データ保存をクリアする。
このように、監視データのセットを、特定のイベント間に特定のアドレス範囲で生じるアクセスと関連して生成することができる。したがって、生成される監視データは、時間的および空間的の両方を対象にすることができる。さらに、生じるアクセスの集計のみ出力することによって、データ出力量の帯域幅は、大幅に低減することができる。集計の種類を適切に選択することによって、出力される減少データが、有用データであることを確実にするのに役立ち得る。
一部の実施形態では、前記開始イベント、前記終了イベント、および前記消去イベントは、同一イベントであって、前記同一イベントに応答し、前記監視回路は、監視を停止し、前記監視データを出力し、前記監視データ保存を消去し、前記複数のアドレス指定可能場所へのアクセスの検出を再び開始する。
同一イベントが、データの開始、終了、および消去をトリガする場合、事実上、システムの継続監視は、各イベント時に出力されるデータによって達成される。したがって、監視データは、セグメント化され、異なる時間セグメントのアクセスデータの集計が収集される。これらは、2つのより広く離間したイベント間の情報が必要とされる場合、ともに組み合わせ可能である。
他の実施形態では、開始、終了、および消去イベントは、異なるイベントであってもよく、あるいは代替として、開始イベントが、消去イベントでもあって、したがって、消去をトリガする、または終了イベントが消去イベントでもあって、データの出力およびデータ保存の消去の両方をトリガしてもよい。
一部の実施形態では、前記開始、終了、および消去イベントはそれぞれ、タスクの開始、タスクの終了、メモリバリア命令、所定時間経過、カウンタオーバーフロー、カウンタ閾値到達、制御レジスタへの書き込み、特定の領域内のアドレスへのアクセス、インタラプト、ブレークポイント発生、送信イベント命令、イベント命令待機、ロード排他命令(例えば、ARMプロセッサにおいて見られるように)、保存排他命令(例えば、ARMプロセッサにおいて見られるように)、アトミックメモリ動作(例えば、アトミック比較およびスワップ命令)、バス上のメモリバリア表示、バス上のロード排他表示、バス上の保存排他表示、バス上のアトミックメモリアクセス表示、およびタイマのうちの1つを含む。
データの出力、データ保存の消去、および検出の再開をトリガ可能な異なるイベントは、複数のものであり得る。事実上、その間のアクセスを監視するのに役立つであろう任意のイベントが使用可能である。実施例として、タスクの開始および終了であって、そのタスク内で生じるアクセスを監視することが望ましい場合に、メモリへの全保留アクセスがその時点で実行されていることを確実にするために使用される命令である、メモリバリア命令が挙げられる。代替として、イベントは、所定時間経過、あるいはカウンタオーバーフローまたは閾値到達であり得る。後者の2つは、カウンタが監視回路内で使用される場合、そのカウンタ内に保存されたデータの損失を回避するため、特に有用である。代替として、イベントは、制御レジスタへの書き込みを含んでもよい。本実施例は、プロセッサ内の種々のイベントの制御レジスタへの値の書き込みをトリガすることが、ユーザによって選択可能であるという点において、ユーザの制御下でトリガを可能にする。別の実施形態では、イベントは、特定の領域内の特定のアドレスのアクセスであってもよく、本特定の領域は、メモリ領域のためのロックが保存されるため、そこへのアクセスは、メモリ範囲がロックまたはロック解除されることを示し得る、あるいはデバイスが起動される領域であってもよく、その場合、そこへのアクセスは、デバイスが起動されることを示す。代替として、イベントは、インタラプトまたはブレークポイント発生であり得る。
一部の実施形態では、前記監視データ出力は、前記開始、消去、および終了イベントのうちの少なくとも1つを識別する信号をさらに含む。
開始イベント、終了イベント、または消去イベントは、複数の信号によってトリガされる場合がある。その場合、監視データに関連するさらなる情報を提供し、より容易な分析を可能にするため、監視データを伴う信号の表示を送信することが望ましい場合がある。
一部の実施形態では、前記監視データは、各アクセス時間を示すタイムスタンプデータをさらに含む。
監視の際に有用なさらなるデータは、タイムスタンプデータであるが、どのイベントが、どの時点で生じたかを知ることによって、これらイベントの順番を正確に推測可能であるので、しばしば、有用である。プロセッサが、そのアクセスを伴うタイムスタンプデータを含む場合、本データは、監視のために有用であって、一部の実施形態では、監視データとともに保存される。
一部の実施形態では、前記検出されたアクセスの前記集計は、ハッシュ関数によって計算されるアクセスのフィンガープリントを含む一方、他の実施形態では、前記検出されたアクセスの前記集計は、前記アクセスのカウントを含む。
検出されたアクセスは、より少ないデータの出力を必要とするが、データは依然として有用であるように、データの組み合わせを伴う、いくつもの方法で集計されてもよい。したがって、ハッシュ関数は、最新アクセス情報を組み合わせて使用可能である。値のシーケンスのハッシュは、2つのシーケンスのハッシュが、同一である場合、シーケンスもまた、同一である可能性が非常に高いように、選択可能である。すなわち、ハッシュ関数を使用して、値のシーケンスのための「署名」を生成することができる。値のシーケンスのハッシュを計算するステップは、チップ上のデータ集計値の良い例である。すなわち、値の未加工シーケンスは大きく(トレースのための高帯域幅および保存のための大空間を必要とする)、操作しにくい(シーケンスは、可変長を有し得、比較のために多くの動作を必要とする)が、集計は、メモリの1つまたは2つのデータワードにちょうど適合し、少数の動作のみを使用して比較することができる。代替として、データアクセス回数のカウントが、有用である場合があって、カウンタを使用して、この数をカウントすることができ、各個々のアクセスに関する情報よりも、これを出力し得る。
一部の実施形態では、前記監視回路は、前記複数のアドレス指定可能場所へのアクセス回数をカウントするためのカウンタを含む。
アクセスのカウントが必要な場合、アクセスをカウントするために、カウンタを監視回路内で使用することができる。そのようなカウンタは、ラップアラウンドカウンタまたは飽和カウンタであり得る。飽和カウンタは、イベント間でオーバーフローする場合、ラップアラウンドカウンタによって生じ得る、完全に誤った情報が出力される危険性を回避するという利点を有する。一部の実施形態では、カウンタは、1ビット飽和カウンタであり得、これは、アクセス回数よりも、特定のアクセスが生じたかどうかを検出することが重要である場合、使用され得る。
一部の実施形態では、前記複数のアドレス指定可能場所は、ある範囲のアドレス、複数の範囲のアドレス、一連の特定のアドレス、およびある範囲のアドレスの逆数のうちの少なくとも1つを含む。
複数のアドレス指定可能場所は、ある範囲のアドレスまたは複数のある範囲のアドレスであってもよく、あるいは異なる方法で選択される特定のセットのアドレスであってもよい。代替として、特定の範囲外の任意のアドレスであるように、ある範囲のアドレスの逆数であり得る。後者は、特定のエンティティまたはプロセスが、その許可された範囲外のアドレスにアクセスしているかどうか確認するために望ましい場合、有用であり得る。
一部の実施形態では、前記複数のアドレス指定可能場所は、複数の範囲のアドレスを含み、前記検出されたアクセスの前記集計は、前記アクセスが為された前記複数のアドレス範囲の表示を含む。
アクセスが為される複数の範囲のアドレスは、各範囲へのアクセスに関連する情報が、別々に保存されるように、またはいくつかの範囲へのアクセスが、必要とされる情報である場合、ともに収集され得るように、個々に監視されてもよい。
一部の実施形態では、前記検出されたアクセスの前記集計は、アクセスの種類を示すデータ、前記アクセスを為すエンティティを識別する識別子、前記エンティティのうちの少なくとも1つによる各種類の前記アクセス回数を示すデータ、および前記アクセスが為された複数のアドレス範囲の表示のうちの少なくとも1つをさらに含む。
アクセス回数に加え、集計はまた、アクセスの種類と、アクセスを為すエンティティを識別する識別子とを含んでもよい。エンティティは、ある種のマスタ、例えば、プロセッサまたはアクセラレータ等、いくつもあってもよい。また、集計は、アクセスの種類に関する情報、例えば、読み出しまたは書き込みであるかを含んでもよい。アクセスのカウントは、アクセスの総回数のカウントであってもよく、または異なるエンティティからの異なる種類のアクセスが、別々にカウントされてもよい。性能またはエラー検出のいずれかの理由のために、処理装置を分析する際、各エンティティによる特定のアドレスまたはアドレス範囲への2つのイベント間に生じるアクセス回数および種類に関する情報は、明確に有用情報であり、したがって、このように情報を集計するステップは、データ出力を減少させる一方、その値の多くを保持する。
一部の実施形態では、前記監視回路は、複数のカウンタを含み、各カウンタは、前記エンティティのうちの1つ以上、前記複数のアドレス範囲のうちの1つ以上、および1つのデータアクセスの種類のうちの少なくとも1つに関連する。
エンティティがアクセスを実行したデータを記録する方法の1つは、各エンティティに関連するカウンタを有し、エンティティが特定のアクセスを為す度に、それをインクリメントすることである。各エンティティに対しカウンタが存在することが可能であり、あるいは2つのエンティティまたはいくつかのエンティティによって為されるアクセスをともにカウントすることが望ましい可能性があり、もしくは各エンティティに対しいくつかのカウンタが存在し、それぞれ、異なる種類のアクセスをカウントすることが可能である。また、カウンタは、異なるアドレス範囲のために使用可能である。
一部の実施形態では、前記監視回路は、前記データ処理装置内のバスポートに連結され、前記エンティティは、複数のバスマスタを含む。
データ処理装置は、いくつもの方法で配列可能であるが、監視回路は、バスポートに連結されることが望ましい場合があって、これは、バスマスタポートまたはバススレーブポートであってもよく、したがって、監視回路は、送信されたマスタを示すバスマスタポート上の信号を視認することによって、どのエンティティが、どのアクセスを送信したのかを判断することができる。
監視データ保存は、いくつもの方法で形成される可能性があるが、一部の実施形態では、前記監視データ保存は、キャッシュを含む。
一部の実施形態では、前記検出されたアクセスの前記集計は、アクセスの種類、前記アクセスを為すエンティティを識別する識別子、および前記エンティティのうちの少なくとも1つによる各種類の前記アクセス回数を示すデータのうちの少なくとも1つを示すデータ、および前記アクセスが為された複数のアドレス範囲の表示をさらに含み、前記キャッシュは、複数のセットの監視データを保存するように構成され、各セットは、前記エンティティのうちの1つ以上、データアクセスの種類の1つ、および前記複数のアドレス範囲のうちの1つ以上のうちの少なくとも1つに関連する。
キャッシュは、複数のセットの監視データを効率的に保存し、それによって、多くの個々のデータ保存、例えば、個々のカウンタの必要性を回避することができる。これは、情報を保存する効率的方法であり得る。
一部の実施形態では、前記監視回路は、フルになった前記キャッシュの検出および検出されたアクセスに応答して、前記複数のセットの監視データのうちの1つを消去するための論理を含む。
キャッシュを使用して、情報を保存する利点の1つは、検出されるアクセスの多くが生じない場合があることである。そのような場合、ストレージ空間は、キャッシュ内で使用されず、キャッシュは、生じたアクセスのカウントの保存のみを行う。アクセスが生じ、それを保存するため空間がもはや存在しない場合、一部の実施形態では、異なるアクセスに関連して収集された前のデータが出力され、そのストレージ空間を使用して、新しく検出されたアクセスを保存することができる。
一部の実施形態では、前記データ処理装置は、複数の処理要素と、複数の監視回路とを含む。
本明細書で使用される監視回路を使用して、いくつかの処理要素、例えば、プロセッサ、バスマスタ、およびDMAコントローラによる複雑なデータ処理装置を監視することができる。これを行うため、単一監視回路が、複数のプロセッサによるアクセスの検出と併用されてもよく、あるいは複数の監視回路を使用して、それぞれ、1つまたはいくつかのプロセッサを監視してもよい。これら複数の回路は、異なる開始および終了イベントによってトリガされてもよく、または同一イベントによってトリガされてもよい。
一部の実施形態では、前記データ処理装置は、イベント構成保存をさらに含み、前記データ処理装置は、所定の命令に応答して、前記イベント構成保存に書き込むように適合され、前記監視回路は、前記イベント構成保存に保存された値に応答して、前記複数のアドレス指定可能場所の監視を開始するか、前記監視データを出力するか、または前記監視データを消去する。
監視回路は、イベント構成保存内に保存された値に応答して、監視を開始、監視を停止、監視データを出力、および消去してもよい。そのような場合、データ処理装置は、特定の命令に応答して、イベント構成保存に書き込み、したがって、監視の開始および停止は、コード内に挿入される命令によって制御され、データ処理装置によって処理することができる。
一部の実施形態では、データ処理装置は、前記複数のアドレス指定可能場所を識別するデータを保存するために、前記アドレス場所保存を更新するためのデータ受信用データ入力を含む。
複数のアドレス指定可能場所を識別するデータを保存するためのアドレス場所保存を更新し、装置が異なるアドレスを監視するように構成可能である。これは、恐らく、デバッガを介して、ユーザによって入力されるデータ入力における信号に応答して、為されてもよい。代替として、プロセッサからの信号によって更新されてもよい。
一部の実施形態では、前記データ処理装置は、前記消去イベントに応答して、前記監視データを出力するために、前記データ処理装置からの出力をさらに含み、前記消去イベントは、前記データ処理装置によって生成される内部イベントである。
監視データは、例えば、トレースポートから監視データをストリーミングすることによって、消去イベントに応答して、データ処理装置から直接出力されてもよい。消去イベントは、データ処理装置によって生成される内部イベントであり、したがって、事実上、装置は、監視データに対する外部要求に反応するよりも、監視データを自発的に出力する。代替として、他の実施形態では、後でアクセスおよび分析されるデータ処理装置上のメモリ内に保存されてもよい。
本発明の第2の態様によると、データ処理装置を監視するための方法であって、
開始イベントを検出するステップと、
複数のアドレス指定可能場所へのアクセスを検出し、監視データ保存内の前記検出されたアクセスの集計に関連する監視データを保存するステップと、
終了イベントを検出するステップと、
前記保存された監視データを出力するステップと、
前記監視データ保存をクリアするステップと、
を複数回実行するステップを含む、方法が提供される。
本発明の第3の態様によると、本発明の第1の態様に記載のデータ処理装置によって生成される監視データを分析するための方法であって、
複数の開始イベントと終了イベントとの間に生成される複数のアドレス場所に為されるアクセスの集計に関連する複数のセットの監視データを受信するステップと、
異なる監視データのセットから監視データを結合し、より広く離間した開始および終了イベントに関連する新しいセットの監視データを生成するステップと、
前記開始および終了イベントを識別するデータと、前記複数のアドレス場所と関連させて、前記監視データを分析するステップと、
を含む、方法が提供される。
本発明の第1の態様のデータ処理装置によって出力される監視データは、分析される必要がある。本監視データは、複数のセットの監視データとして生成され、各セットは、特定のイベント間に生じるアクセスに関連する。データを分析する際、これらセットのいくつかを組み合わせ、より広く離間した開始および終了イベントに関連する新しいセットの監視データを生成する。このように本監視データを組み合わせることによって、監視セットの収集を直接トリガしたイベント間と、異なる監視セットで開始および終了した他のイベント間との両方に生じるアクセスが、監視情報として使用可能なように、所望に応じて、分析することが可能となる。
一部の実施形態では、前記監視データは、前記アクセスを実行したエンティティの表示をさらに含み、前記分析ステップは、エンティティが、前記エンティティの許可された範囲外のアドレスにアクセスしているかどうか判断するステップを含む。
監視される適切なアドレス範囲の選択と、アクセスを為すエンティティ間の差別化とによって、監視データを使用して、特定のエンティティが、許可された範囲外のアドレス範囲へのアクセスを実行したかどうかを判断することができる。これは、有用情報であって、システム内の故障が存在し得る場所を示す。
代替として、他の実施形態では、前記監視データは、前記アクセスを実行したエンティティの表示をさらに含み、前記分析ステップは、異なるエンティティが、前記セットの監視データのうちの1つの内の同一アドレス範囲に書き込みおよび読み出しを実行したかどうかを判断するステップを含む。
また、2つのイベント間の異なるエンティティからの同一アドレス範囲への異なる読み出しおよび書き込みのアクセスを分析するステップは、レース条件が存在し得る場所を示すことができる。例えば、エンティティがタスクを開始する時、またはエンティティがタスクを終了する時、前記同一イベントがトリガされ、前記同一アドレス範囲が、ある時に、1つのタスクによって、排他的にアクセスされるべき変数に対応する場合、一方のエンティティが、非ゼロ回数のアドレス範囲への書き込みを実行し、他方のエンティティが、非ゼロ回数のアドレス範囲への読み出しまたは書き込みを実行する場合のエラーである。タスクは、本出願においてはプロセスと同義語であることに留意されたい。
代替として、他の実施形態では、監視データは、システム性能の表示として使用可能である。そのような実施形態では、前記分析ステップは、前記イベント間の時間毎にアクセス回数を分割することによって、異なるイベント間の前記データ処理装置の性能を判断するステップを含む。
本発明の第4の態様は、データプロセッサ上で起動される場合、前記データプロセッサを制御し、本発明の第3の態様に記載の方法のステップを実行するように動作可能な、コンピュータプログラム製品を提供する。
本発明の上述および他の目的、特長、ならびに利点は、添付の図面を参照して熟読される例証的実施形態の以下の詳細な説明から明白となるであろう。
本発明の実施形態による、監視回路を伴うデータ処理装置を示す。 本発明の実施形態による、メモリウォッチユニットと、監視集計ユニットとを伴うデータ処理装置を示す。 本発明の実施形態による、メモリウォッチユニットと、対応する監視集計ユニットとを伴うデータ処理装置を示す。 本発明のさらなる実施形態による、データ処理装置を示す。 異なる開始および終了イベントを有する異なるプロセスを図式的に示す。 本発明の実施形態による、監視回路を示す。 本発明の実施形態による、監視データを生成する方法を示す。 本発明の実施形態による、監視データを分析する方法を図示するフロー図を示す。
図1は、メモリ30をプロセッサ40とDMA50とに接続するバス20を監視するための監視回路10を含む、データ処理装置5を示す。
データアクセスは、プロセッサ40およびDMA50から、バス20に沿って、メモリ30からデータの読み出しと、そこへのデータの書き込みとを要求し、監視回路10によって監視される。
本実施形態では、監視回路10は、特定のアドレス範囲へのアクセスを監視するように構成され、特定のアドレス範囲は、データ保存12内に保存された情報によって識別される。データ保存12は、入力60を介して、デバッガを使用して、ユーザによって更新され、したがって、監視回路は、異なるアドレス範囲を監視するように再構成可能である。
監視回路10は、特定の「開始」イベントに応答して、バスからの監視データの収集を開始する。本実施形態では、収集される監視データは、指定アドレス範囲内のアドレスへの検出されたアクセス要求である。これらは、監視回路10内の「インクリメントカウンタ」信号をトリガし、これは、回路内のカウンタ14、16のうちの1つに送信される。読み出しが検出される場合、信号は、読み出しカウンタ14に送信され、書き込みの検出は、信号が書き込みカウンタ16に送信されるようにトリガする。したがって、カウンタ14は、検出された読み出しをカウントし、カウンタ16は、検出された書き込みをカウントする。本実施形態では、簡潔にするために、2つのカウンタのみ示されるが、さらに多くのカウンタが存在し得、異なるエンティティからの異なるアドレス範囲の読み出しおよび書き込みがカウントされ得るように、それぞれ、恐らく、アクセスを要求する異なるアドレス範囲および/またはエンティティに関連することが、当業者には明白であろう。
本実施形態では、さらなるイベントが、監視回路をトリガし、この場合、カウンタ14および16内の値である、その監視データを出力する。監視データは、出力7を介して、分析論理130に出力され、データが分析される。この後、カウンタはクリアされ、特定の「開始」イベントが再び検出されると、カウントを再開する。
監視の開始、値の出力、およびカウンタの消去をトリガするイベントは、いくつもあり得るが、本実施形態では、プロセッサによって実行されるメモリ転送またはメモリバリア命令のDMAの開始あるいは終了のいずれかの検出である。メモリバリア命令は、任意の保留メモリアクセスが、後続の命令が実行される前に実行されることを確実するために使用される命令である。したがって、メモリバリア命令に応答して、指定メモリへの任意の保留読み出しまたは書き込みが実行されるであろう。したがって、これら命令は、この時点で、全保留読み出しまたは書き込みが実行されていることが明白であるため、監視データの出力をトリガするために使用される場合、有用であり得る。したがって、プロセッサ40は、メモリ転送を開始するようにDMA50に命令し、開始命令は、バスに沿って進行し、監視回路10によって検出される。メモリ転送が完了すると、DMA50は、インタラプトによって、プロセッサ40にこれを示してもよい。これは、バスに沿って送信されず、したがって、本信号は、監視回路のための終了イベントであるため、監視回路10に送るための別個のチャネルを必要とする。本実施形態では、プロセッサからDMAへの開始信号は、開始イベントとして作用するが、しかしながら、一部の実施形態では、DMAは、プロセッサ40からの開始メモリ転送要求に応答して、すぐにメモリ転送を開始しない場合があることに留意されたい。そのような場合、DMAは、監視回路10へのさらなるラインを有してもよく、要求されたメモリ転送の実行を実際に開始すると、それに沿って、信号を送信可能であって、代替として、監視回路は、バス上のメモリアクセス要求を検出してもよく、本検出は、開始イベントとして作用し得る。
本実施形態では、カウンタ12および14は、飽和カウンタである。他の実施形態では、ラップアラウンドカウンタが使用されてもよいが、但し、ラップアラウンドする可能性がないように、十分大きい必要がある。他の実施形態では、それらのアクセスの回数を検出するよりも、特定のアクセスが生じたかどうかを単に検出することが望ましい場合、1ビット飽和カウンタが使用され得る。
本実施形態では、データ保存12内に保存されたアドレス場所識別子は、ある範囲のアドレスを識別するが、他の実施形態では、複数の範囲を識別し得る。代替として、これは、整合よりも非整合アドレスによってトリガされるコンパレータとともに使用され、特定の範囲外の任意のアドレスを識別することができる。これは、プロセスのための既知の許可された範囲が存在し、本範囲外の場所にアクセスしていないことを確認することが望ましい場合、有用であり得る。したがって、本システムは、異なる指定されたものを監視するためにいくつもの異なる方法で設計することが可能であるが、集計された本データを出力するために、高帯域幅を必要としないことが分かる。
図2Aは、代替実施形態による、データ処理装置5を示す。本実施形態では、いくつかの監視回路またはメモリウォッチユニット70a、b、およびcが存在する。メモリウォッチユニット70aは、プロセッサ42によって為されるアクセスを監視する一方、メモリウォッチユニット70bは、プロセッサ44によって為されるアクセスを監視する。メモリウォッチユニット70cは、データ保存46に為されるアクセスを監視する。これら個々のメモリウォッチユニットは、指定された特定のアドレス範囲内のアクセスを監視し、検出されたアクセスを識別する中央集計ユニット72に信号を送信する。集計ユニット72は、異なるメモリウォッチユニットからの情報を保存するための複数のデータ保存を有する。これらは、特定のメモリウォッチユニットからの特定の種類のアクセス回数をカウントするカウンタを含んでもよく、またはアクセスが生じた時間を示すアクセス信号とともに受信されるタイムスタンプ情報を保存するためのデータ保存を含んでもよく、あるいは検出されるアクセスのハッシュ関数を生成および保存するためのハッシュ関数ジェネレータを含んでもよい。加えて、そのようなイベントが、メモリウォッチユニットのいずれかによって監視される場合、競合による失速の回数を記録してもよい。また、集計ユニット72は、消去信号を受信するための入力を含む。本実施形態では、本消去信号は、インタラプトに応答して生成され、「開始」、「終了」、および「消去」イベントとして作用し、異なるカウンタおよびデータ保存内に保存されたデータをメモリ80に出力し、消去またはクリアし、異なるメモリウォッチユニット70a、70b、70cから再び情報を収集させる。したがって、事実上、インタラプトは、特定のセットの監視を終了し、データを出力し、データ保存を消去し、それによって、新しいセットの監視を開始する。インタラプトは、バスに沿って進行しないため、インタラプトは、プロセッサ42から集計ユニット72に別個に送信される必要がある。
使用され得る例示的ハッシュ関数ジェネレータは、周期的冗長検査(CRC)関数を使用してもよく、シーケンスの集計は、データシーケンスのCRCと、シーケンス長とから構成されるであろう。2例は、以下において特に興味深い。
a)タスクによってアクセスされるアドレスシーケンスは、しばしば、そのタスクを実行する度に同一であって、したがって、タスク実行のアドレスシーケンスのハッシュは、i)システム内の全タスクのアドレスアクセスのハッシュと比較することによって、タスクを識別する、またはii)アドレスシーケンスのハッシュをタスク前の実行のアドレスシーケンスのハッシュと比較することによって、タスクが通常と異なって動作していることを認識する、のいずれかの関数の署名として使用可能であって、すなわち、署名が異なる場合、タスクは、異なって動作する。
b)1つのタスクが、別のタスクがメモリからの値のシーケンスを読み出すのと同一順序で、メモリに値のシーケンスを書き込む場合、第1のタスクの出力のハッシュは、第2のタスクへの入力のハッシュと整合する。タスク間のデータの流れと、タスクが、特定の順序で、その変数のうちの1つを書き込む/読み出すこととが既知である場合、本特性を使用して、整合すべきデータの署名を比較することによって、データが、1つのタスクから別のタスクに正確に転送されているかを確認することができる(整合しない場合、例えば、データ転送の際に破損している)。タスクが、メモリの1つの領域から別の領域にデータを単純にコピーする場合、データ読み出しの署名は、データ書き換えと同一であるはずであって、したがって、タスクの入力および出力署名を比較することによって、メモリコピーが正確に実行されたことを確認することができる。
タスク間のデータの流れが既知でない場合、本特性を使用して、1つのタスクの出力が、常に、後のタスクへの入力と同一署名を有する状態を検索することによって、システム内のデータの流れの一部を再構成することができる。
本実施形態では、データ処理装置5の外部に監視データを出力するのではなく、保存されているデータ処理装置内のメモリ80に送信される。その後、分析のために、後でアクセス可能である。
図2Bは、図2Aと類似実施形態示すが、本実施形態では、各メモリウォッチユニット70aおよび70bは、その独自の集計ユニット72aおよび72bを有する。これらの集計ユニットは、データの収流を開始および停止し、本収集データを出力し、同一信号に応答して、そのカウンタをクリアする。データは、本実施形態では、出力ポート60aおよび60bに出力される。データ出力は、別個に分析可能であって、代替として、出力データの2つのストリームは、その対応する開始/停止/消去イベントを相互に関連付けるソフトウェアを使用して、単一ストリームに統合可能である。
メモリウォッチユニットは、これら実施形態では、指定された特定のアドレス範囲内のアクセスを監視するが、また、特定のアクセスの検出に応答して、例外をトリガするために使用されてもよく、したがって、ウォッチポイントまたはメモリ保護ユニットを実装するために使用可能であることに留意されたい。
図3は、本発明の代替実施形態を示す。本実施形態では、データ処理装置5は、メインバス90を観察し、マスタM1およびM2によって、スレーブS1およびS2に為されるアクセスを監視するメモリウォッチユニット80を有する。また、アクセスは、異なるバス92上の他のマスタによって為され、これらは、本バス上のデバイスへのアクセスが要求される場合、バスブリッジ95を介して、メインバス90に送信されてもよい。ブリッジ95は、アクセス情報を伝送するが、マスタが生成した信号に関連する情報を除去し、したがって、どのアクセスが、バス92a上のどのマスタからのものであるのかを識別するために、さらなるメモリウォッチユニット85が使用され、本実施形態では、マスタM3のバスマスタポートを監視する。
本実施形態では、各メモリウォッチユニット80、85は、その中に指定された特定のアドレス範囲へのアクセスに関連するデータを収集し、同一「終了」イベントに応答して、本データを出力するように作用する。この場合、メモリウォッチユニット80、85は、データ処理装置5によって設定される制御レジスタ97内の特定の値に応答し、これら値は、メモリウォッチユニットに示され、監視を開始または監視を終了する。本制御レジスタ97内の値は、ユーザによってコード内に挿入される命令に応答して、プロセッサによって設定される。したがって、監視の開始および終了は、ユーザによって制御可能である。
本実施形態では、メモリウォッチユニット80および85が、同一イベントに応答する別個のユニットとして示されるが、一部の実施形態では、異なるイベントによってトリガされ、監視を開始および停止することができる。そのような場合、収集される情報は、別個に分析されるが、組み合わせてもよい。
図4は、異なるプロセッサP0、P1、およびP2によって実行される本実施形態の異なるプロセスA、B、およびCの監視が、異なる開始および停止イベントによってトリガされ得る様子を図式的に示す。この場合、開始および停止イベントは、特定のプロセスの開始および停止である。したがって、異なる監視データのセットは、異なるプロセスのために収集される。本情報は、別個に分析可能である、または組み合わせることが可能である。例えば、集計が、開始と停止イベントとの間のアクセス回数である場合、各集計におけるアクセス回数を合計することによって、隣接集計を組み合わせることができる。同様に、集計が、アクセスシーケンスおよびアクセス回数のCRC(周期的冗長検査関数)である場合、集計は、以下のように組み合わせることができる。
<crc1,M>を第1の集計とする
式中、crc1は、アクセスのCRCであって、Mは、CRCが網羅するビット数である。
<crc2,N>を第2の集計とする
式中、crc2は、アクセスのCRCであって、Nは、CRCが網羅するビット数であって、組み合わせた集計は、<CRC((crc1<<N)xor crc2),M+N>であって、
式中、‘crc1 <<N’は、Nビット左にシフトした最初のcrcであって、
xorは、排他的論理和またはその引数を計算し、
CRCは、その入力データ上のCRCを計算する。
図5は、バス90を監視するための監視回路10をより詳細に示す。監視回路10は、アクセスアドレスと保存された選択アドレス範囲とを比較するためのコンパレータ105を含む。本実施形態では、2つの異なる範囲の保存されたアドレスが存在し、コンパレータは、どのアドレス範囲が整合するかに応じて、異なる信号を出力する。範囲の内の1つのアドレスの検出に応答して、アクセスを生成するエンティティはアクセスが読み出しまたは書き込みであるかとともに確認され、本アドレス範囲内のこの種類のエンティティから、この種類のアクセスに対応するキャッシュ110内のカウンタ110aが、インクリメントされる。本実施形態では、アドレス範囲、エンティティ、およびアクセスの種類に応じてカウントされるいくつもの異なる種類のアクセスが存在し、したがって、監視回路10内にいくつものカウンタが存在する。これらカウンタは、本実施形態では、非ゼロカウンタのキャッシュとして実装される。これは、これらカウンタの多くが、長期間ゼロであり得るため行われ、したがって、多くのカウンタを提供するのではなく、非ゼロカウンタのキャッシュが維持され、カウンタがインクリメントされると、本キャッシュに追加される。本実施形態では、新しいカウンタが必要とされるが、キャッシュ内で利用可能な未使用のカウンタがもはや存在しない場合、カウンタの値のうちの1つが出力され、カウンタがクリアされる。出力およびクリアのためのカウンタは、いくつかの方法で選択可能であって、例えば、ラウンドロビンアプローチを使用してもよい。また、いずれのカウンタも指定時間内にフルにならない場合、この時点で、データが、出力11を通して出力され、カウンタがクリアされるように、終了、開始、および消去イベントとしても作用するタイマが存在する。
本実施形態では、コンパレータ105は、アドレスとの整合を見つけることによって、指定範囲内のアクセスを検出する。他の実施形態では、整合の不在を検出することによって、アドレス範囲外のアクセスを検出するために使用可能である。これは、タスクが、特定のアドレス範囲内のアドレスのみにアクセスするはずであること、または、例えば、メモリのロックが保存される特定の範囲にアクセスするはずがないことが既知である場合、有用である場合がある。
各実施形態から異なる要素を組み合わせる異なる実施形態も可能であり得ることが、当業者には明白であるはずである。例えば、いくつかのプロセッサまたはアクセラレータ、例えば、DMAエンジンなどによるアクセスが、監視される必要がある場合、いくつかの監視回路の使用に適用可能であり得る。これらは、各処理要素のバスマスタポート上またはバスブリッジ上または監視されるメモリに付属のバス上に配置されてもよい。これらは、事実上、アクセスと、必要に応じて、それらが送信されるエンティティと、可能性として、さらなる情報、例えば、タイムスタンプデータとを検出可能な任意の場所に位置付け可能である。
監視の目的が、レース条件を検出することである場合、レースに関与し得る任意の処理要素によって、アクセスを区別することが必要となるであろう。したがって、そのような場合、異なる処理要素間のアクセスは、特定の時間内の同一アドレス範囲への2つの異なる処理要素によるアクセスが、潜在的レース条件として識別可能なように、区別される必要がある。これが必要ない場合、異なる処理要素からのアクセスを区別する必要がない場合があり、特定のバスに沿ったアクセスの単純なカウントだけが必要とされる場合がある。必要性に応じて、異なるものをカウントする異なる監視回路を使用可能である。
特定の検出セットを開始および終了する信号に関して、これらは、監視されるものに応じて、異なり得る。例えば、開始信号は、タスクが処理要素を開始する度に送信され、終了信号は、タスクがその処理要素を完了する度に送信され得る。このように、タスクの処理の際に為されるアクセスを検出することができる。この場合、開始および終了イベント信号は、配線されたアクセラレータからのいくつかの開始/停止信号のうちの論理ORから生成可能である。代替として、関数呼び出しの開始または終了を示すブレークポイントであってもよい。一部の実施形態では、開始および/または終了イベントの性質は、状況に応じて変化してもよく、したがって、収集される監視データとともに保存される。
また、例えば、図3におけるハードウェア等上の制御レジスタに値を書き込むことによって、プロセッサに開始信号を明示的に生成させることが有用である場合がある。これら通知は、RTOS内の任意のプロセッサ間同期プリミティブにおけるコード内に挿入されてもよい。例えば、ロックされるまたは解除される度に、あるいはスレッドブロックがロック待機中の場合、プロセッサ内のコンテキストスイッチに挿入されてもよい。
監視されたアドレス範囲に関して、これらは、監視回路内に保存可能であって、一般に、複数の着目範囲が存在し得、それぞれ、異なる範囲のアドレスへのアクセスが、別個に識別可能なように、それらと関連付けられて保存されたアクセス集計を有してもよい。代替として、ある範囲を組み合わせることによって、本組み合わせられた範囲のアドレスへのアクセスを監視可能とすることができる。代替として、着目アドレスが、特定の範囲内でない場合があって、それらは、何らかの他の方法、例えば、バルーンフィルタ等によって、指定された異なるセットのアドレスであってもよい。
図6は、本発明の実施形態による、監視データを生成する方法を図示するフロー図を示す。開始イベントの検出後、一部の指定アドレス指定可能場所へのアクセスが監視され、検出されたアクセスの集計が、何らかの形式、恐らく、カウンタ内のカウント値として、保存される。これは、終了イベントが検出されるまで継続し、その後すぐに、監視の際に収集された保存データが出力され、監視データ保存が消去される。後続の開始イベントの検出に応じて、再び、プロセスが開始する。
図7は、本発明の実施形態による、監視データを分析する方法を図示するフロー図を示す。本方法では、例えば、図6の方法によって生成される監視データのセットが受信される。これらの一部を互いに組み合わせ、より広く離間したイベント間の新しいセットの監視データを生成する。次いで、データは、少なくとも、開始および終了イベントと、指定アドレス場所とを識別するデータと関連させて分析される。また、さらなるデータが、収集および保存されてもよく、これはまた、分析に使用されてもよい。そのようなデータは、各アクセス時間を示すタイムスタンプデータ、アクセスを実行するエンティティを示すエンティティデータ、アクセスデータの種類、ならびに開始および/または終了イベントの性質を含んでもよい。
本発明の例証的実施形態が、添付の図面を参照して、本明細書において詳細に説明されたが、本発明は、それらの正確な実施形態に制限されるものではなく、種々の変更および修正が、付随の請求項によって定義される本発明の範囲および精神から逸脱することなく、当業者によって為され得ることを理解されたい。
5 データ処理装置
7 出力
10 監視回路
12 データ保存
14、16 カウンタ
20 バス
30 メモリ
40 プロセッサ
50 DMA
60 入力
130 分析論理

Claims (26)

  1. 開始イベントと終了イベントとの間に生じるデータ処理装置内の複数のアドレス指定可能場所へのアクセスを監視するための監視回路を含む、データ処理装置であって、
    (i)前記監視回路は、監視される前記複数のアドレス指定可能場所を識別するデータを保存するためのアドレス場所保存と、監視データ保存とを含み、
    (ii)前記監視回路は、前記開始イベントの検出に応答して、前記複数のアドレス指定可能場所へのアクセスを検出し、前記監視データ保存内に前記検出されたアクセスの集計に関連する監視データを保存し、
    (iii)前記監視回路は、前記終了イベントの検出に応答して、前記監視データの収集を停止し、
    (iv)前記監視回路は、消去イベントの検出に応答して、前記保存された監視データを出力し、前記監視データ保存を消去する、
    データ処理装置。
  2. 前記開始イベント、前記終了イベント、および前記消去イベントは、同一イベントであって、前記同一イベントに応答し、前記監視回路は、前記監視データを出力し、前記監視データ保存を消去し、前記複数のアドレス指定可能場所へのアクセスの検出を開始する、請求項1に記載のデータ処理装置。
  3. 前記開始、終了、および消去イベントはそれぞれ、タスクの開始、タスクの終了、メモリバリア命令、所定時間経過、カウンタオーバーフロー、カウンタ閾値到達、制御レジスタへの書き込み、特定の領域内のアドレスへのアクセス、インタラプト、ブレークポイント発生、送信イベント命令、イベント命令待機、ロード排他命令、保存排他命令、アトミックメモリ動作、バス上のメモリバリア表示、バス上のロード排他表示、バス上の保存排他表示、バス上のアトミックメモリアクセス表示、およびタイマのうちの1つを含む、請求項1に記載のデータ処理装置。
  4. 前記監視データ出力は、前記開始、消去、および終了イベントのうちの少なくとも1つを識別する信号をさらに含む、請求項3に記載のデータ処理装置。
  5. 前記監視データは、各アクセス時間を示すタイムスタンプデータをさらに含む、請求項1に記載のデータ処理装置。
  6. 前記検出されたアクセスの前記集計は、ハッシュ関数によって計算される前記アクセスのフィンガープリントを含む、請求項1に記載のデータ処理装置。
  7. 前記検出されたアクセスの前記集計は、前記アクセスのカウントを含む、請求項1に記載のデータ処理装置。
  8. 前記監視回路は、前記複数のアドレス指定可能場所へのアクセス回数をカウントするためのカウンタを含む、請求項7に記載のデータ処理装置。
  9. 前記複数のアドレス指定可能場所は、ある範囲のアドレス、複数の範囲のアドレス、あるセットの特定のアドレス、およびある範囲のアドレスの逆数のうちの少なくとも1つを含む、請求項1に記載のデータ処理装置。
  10. 前記複数のアドレス指定可能場所は、複数の範囲のアドレスを含み、前記検出されたアクセスの前記集計は、前記アクセスが為された前記複数のアドレス範囲の表示を含む、請求項1に記載のデータ処理装置。
  11. 前記検出されたアクセスの前記集計は、アクセスの種類のうちの少なくとも1つを示すデータ、前記アクセスを為すエンティティを識別する識別子、前記エンティティのうちの少なくとも1つによる各種類の前記アクセス回数を示すデータ、および前記アクセスが為された複数のアドレス範囲の表示をさらに含む、請求項1に記載のデータ処理装置。
  12. 前記監視回路は、複数のカウンタを含み、各カウンタは、前記エンティティのうちの1つ以上、前記複数のアドレス範囲のうちの1つ以上、およびデータアクセスの種類のうちの少なくとも1つに関連する、請求項11に記載のデータ処理装置。
  13. 前記監視回路は、前記データ処理装置内のバスポートに連結され、前記エンティティは、複数のバスマスタを含む、請求項11に記載のデータ処理装置。
  14. 前記監視データ保存は、キャッシュを含む、請求項1に記載のデータ処理装置。
  15. 前記検出されたアクセスの前記集計は、アクセスの種類、前記アクセスを為すエンティティを識別する識別子、および前記エンティティのうちの少なくとも1つによる各種類の前記アクセス回数を示すデータのうちの少なくとも1つを示すデータおよび前記アクセスが為された複数のアドレス範囲表示をさらに含み、前記キャッシュは、複数のセットの監視データを保存するように構成され、各セットは、前記エンティティのうちの1つ以上、データアクセスの種類、および1つ以上の前記複数のアドレス範囲のうちの少なくとも1つに関連する、請求項14に記載のデータ処理装置。
  16. 前記監視回路は、フルになった前記キャッシュの検出および検出されたアクセスに応答して、前記複数のセットの監視データのうちの1つを消去するための論理を含む、請求項15に記載のデータ処理装置。
  17. 前記データ処理装置は、複数の処理要素と、複数の監視回路とを含む、請求項1に記載のデータ処理装置。
  18. 前記データ処理装置は、イベント構成保存をさらに含み、前記データ処理装置は、所定の命令に応答して、前記イベント構成保存に書き込むように適合され、前記監視回路は、前記イベント構成保存に保存された値に応答して、前記複数のアドレス指定可能場所の監視を開始するか、前記監視データを出力するか、または前記監視データを消去する、請求項1に記載のデータ処理装置。
  19. 前記複数のアドレス指定可能場所を識別するデータを保存するために、前記アドレス場所保存を更新するためのデータ受信用データ入力を含む、請求項1に記載のデータ処理装置。
  20. 前記消去イベントに応答して、前記監視データを出力するために、前記データ処理装置からの出力を含み、前記消去イベントは、前記データ処理装置によって生成される内部イベントである、請求項1に記載のデータ処理装置。
  21. データ処理装置を監視するための方法であって、
    (i)開始イベントを検出するステップと、
    (ii)複数のアドレス指定可能場所へのアクセスを検出し、監視データ保存内に前記検出されたアクセスの集計に関連する監視データを保存するステップと、
    (iii)終了イベントを検出するステップと、
    (iv)前記保存された監視データを出力するステップと、
    (v)前記監視データ保存をクリアするステップと、
    を複数回実行するステップを含む、方法。
  22. 請求項1に記載のデータ処理装置によって生成される監視データを分析するための方法であって、
    (i)複数の開始イベントと終了イベントとの間に生成される複数のアドレス場所に為されるアクセスの集計に関連する複数のセットの監視データを受信するステップと、
    (ii)随伴または重複セットの監視データから監視データを結合し、より広く離間した開始および終了イベントに関連する新しいセットの監視データを生成するステップと、
    (iii)前記開始および終了イベントを識別するデータと、前記複数のアドレス場所と関連させて、前記監視データを分析するステップと、
    を含む、方法。
  23. (i)前記監視データは、前記アクセスを実行したエンティティの表示をさらに含み、
    (ii)前記分析ステップは、エンティティが、前記エンティティの許可された範囲外のアドレスにアクセスしているかどうか判断するステップを含む、
    請求項22に記載の方法。
  24. (i)前記監視データは、前記アクセスを実行したエンティティの表示をさらに含み、
    (ii)前記分析ステップは、異なるエンティティが、前記セットの監視データのうちの1つ内の同一アドレス範囲に書き込みおよび読み出しを実行したかどうかを判断するステップを含む、
    請求項22に記載の方法。
  25. (i)前記分析ステップは、前記イベント間の時間毎にアクセス回数を分割することによって、異なるイベント間の前記データ処理装置の性能を判断するステップを含む、
    請求項22に記載の方法。
  26. データプロセッサ上で起動される場合、前記データプロセッサを制御し、請求項22に記載の方法のステップを実行するように動作可能な、コンピュータプログラム製品。
JP2009161994A 2008-07-09 2009-07-08 データ処理装置の監視およびその監視データの集計 Active JP5328531B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0812560A GB2461716A (en) 2008-07-09 2008-07-09 Monitoring circuitry for monitoring accesses to addressable locations in data processing apparatus that occur between the start and end events.
GB0812560.1 2008-07-09

Publications (2)

Publication Number Publication Date
JP2010020767A true JP2010020767A (ja) 2010-01-28
JP5328531B2 JP5328531B2 (ja) 2013-10-30

Family

ID=39718215

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009161994A Active JP5328531B2 (ja) 2008-07-09 2009-07-08 データ処理装置の監視およびその監視データの集計

Country Status (4)

Country Link
US (1) US9858169B2 (ja)
JP (1) JP5328531B2 (ja)
CN (1) CN101625657B (ja)
GB (2) GB2461716A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015513374A (ja) * 2012-03-16 2015-05-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation アドレスによるランタイム・インスツルメンテーション間接サンプリングを実現するためのコンピュータ・プログラム・プロダクト、方法、およびシステム(アドレスによるランタイム・インスツルメンテーション間接サンプリング)
JP2016045676A (ja) * 2014-08-22 2016-04-04 富士通株式会社 デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法
US11355212B2 (en) 2018-12-06 2022-06-07 Fujitsu Limited Calculation processing apparatus, and method for controlling calculation processing apparatus

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010047718A1 (de) * 2010-10-07 2012-04-12 Infineon Technologies Ag Vorrichtung und Verfahren zum Formatieren und Vorauswählen von Trace Daten
US8510604B2 (en) * 2011-03-02 2013-08-13 Microsoft Corporation Static data race detection and analysis
US9430238B2 (en) 2012-03-16 2016-08-30 International Business Machines Corporation Run-time-instrumentation controls emit instruction
US9158660B2 (en) 2012-03-16 2015-10-13 International Business Machines Corporation Controlling operation of a run-time instrumentation facility
US9442824B2 (en) 2012-03-16 2016-09-13 International Business Machines Corporation Transformation of a program-event-recording event into a run-time instrumentation event
US9367316B2 (en) 2012-03-16 2016-06-14 International Business Machines Corporation Run-time instrumentation indirect sampling by instruction operation code
US9471315B2 (en) 2012-03-16 2016-10-18 International Business Machines Corporation Run-time instrumentation reporting
US9280447B2 (en) 2012-03-16 2016-03-08 International Business Machines Corporation Modifying run-time-instrumentation controls from a lesser-privileged state
US9454462B2 (en) 2012-03-16 2016-09-27 International Business Machines Corporation Run-time instrumentation monitoring for processor characteristic changes
US9411591B2 (en) 2012-03-16 2016-08-09 International Business Machines Corporation Run-time instrumentation sampling in transactional-execution mode
US9483268B2 (en) * 2012-03-16 2016-11-01 International Business Machines Corporation Hardware based run-time instrumentation facility for managed run-times
US9250902B2 (en) 2012-03-16 2016-02-02 International Business Machines Corporation Determining the status of run-time-instrumentation controls
US9465716B2 (en) 2012-03-16 2016-10-11 International Business Machines Corporation Run-time instrumentation directed sampling
US9047400B2 (en) * 2012-08-29 2015-06-02 Freescale Semiconductor, Inc. Data processor device for handling a watchpoint and method thereof
US9069896B2 (en) 2012-08-29 2015-06-30 Freescale Semiconductor, Inc. Data processor device for handling a watchpoint and method thereof
US9645870B2 (en) * 2013-06-27 2017-05-09 Atmel Corporation System for debugging DMA system data transfer
US9830245B2 (en) 2013-06-27 2017-11-28 Atmel Corporation Tracing events in an autonomous event system
US9256399B2 (en) 2013-06-27 2016-02-09 Atmel Corporation Breaking program execution on events
CN105706063A (zh) * 2013-12-12 2016-06-22 英特尔公司 用于检测竞争条件的技术
US9411542B2 (en) 2014-02-21 2016-08-09 Analog Devices Global Interruptible store exclusive
US20150317158A1 (en) 2014-04-03 2015-11-05 Applied Micro Circuits Corporation Implementation of load acquire/store release instructions using load/store operation with dmb operation
CN104268530B (zh) * 2014-09-29 2017-07-11 深圳市汇顶科技股份有限公司 指纹检测电路及其电容式指纹传感器、移动终端
CN105991363B (zh) * 2015-02-12 2020-11-03 中兴通讯股份有限公司 监控处理方法及装置
GB2539455A (en) * 2015-06-16 2016-12-21 Nordic Semiconductor Asa Memory watch unit
CN108139903B (zh) * 2015-07-21 2019-11-15 安培计算有限责任公司 依dmb操作用加载/存储操作实施加载撷取/存储释放指令
CN106919487B (zh) * 2015-12-25 2020-08-28 北京忆芯科技有限公司 NVMe门铃处理方法及其装置
US10949202B2 (en) 2016-04-14 2021-03-16 International Business Machines Corporation Identifying and tracking frequently accessed registers in a processor
US10394678B2 (en) * 2016-12-29 2019-08-27 Intel Corporation Wait and poll instructions for monitoring a plurality of addresses
CN109086193B (zh) * 2017-06-13 2022-01-21 阿里巴巴集团控股有限公司 监控方法、装置及系统
CN109710666A (zh) * 2018-11-12 2019-05-03 济南大学 一种对串口通讯的实时数据监测方法
CN110941569B (zh) * 2019-11-18 2021-01-26 新华三半导体技术有限公司 数据处理方法、装置及处理器芯片

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62287345A (ja) * 1986-06-06 1987-12-14 Fuji Electric Co Ltd メモリアクセス状況監視装置
JPH0359731A (ja) * 1989-07-28 1991-03-14 Nec Corp デバッグ装置
JPH05216718A (ja) * 1992-02-04 1993-08-27 Mitsubishi Electric Corp デバッグ方法
JPH0635760A (ja) * 1992-07-14 1994-02-10 Toshiba Corp トレース機能付バッファ装置
JP2001134471A (ja) * 1999-11-09 2001-05-18 Toshiba Corp デバッグ装置及びデバッグ方法
JP2001519949A (ja) * 1997-04-08 2001-10-23 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ソフトウェア性能プロファイリングデータをキャプチャするためのキャッシュを組込んだマイクロプロセッサベースのデバイス
JP2002342125A (ja) * 2001-05-18 2002-11-29 Fujitsu Ltd イベント計測装置および方法並びにイベント計測プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体並びにプロセッサシステム
JP2006293560A (ja) * 2005-04-07 2006-10-26 Toshiba Lsi System Support Kk デバッグシステムおよびデバッグ方法
US7143251B1 (en) * 2003-06-30 2006-11-28 Data Domain, Inc. Data storage using identifiers
JP2007011512A (ja) * 2005-06-28 2007-01-18 Fujitsu Ltd テスト記録方法、テスト記録装置、およびテスト記録プログラム
JP2007213556A (ja) * 2006-01-11 2007-08-23 Matsushita Electric Ind Co Ltd 回路解析装置
JP2007249884A (ja) * 2006-03-20 2007-09-27 Fujitsu Ltd ソフトウェア検証プログラム、ソフトウェア検証装置、ソフトウェア検証方法
JP2007293424A (ja) * 2006-04-21 2007-11-08 Toshiba Corp パフォーマンスモニタ装置、データ収集方法及びそのプログラム
JP2008041036A (ja) * 2006-08-10 2008-02-21 Sony Corp メモリアクセス監視装置およびその方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5051944A (en) * 1986-04-17 1991-09-24 Ncr Corporation Computer address analyzer having a counter and memory locations each storing count value indicating occurrence of corresponding memory address
US5274811A (en) * 1989-06-19 1993-12-28 Digital Equipment Corporation Method for quickly acquiring and using very long traces of mixed system and user memory references
USRE38514E1 (en) * 1994-11-18 2004-05-11 Apple Computer, Inc. System for and method of efficiently controlling memory accesses in a multiprocessor computer system
US6021261A (en) 1996-12-05 2000-02-01 International Business Machines Corporation Method and system for testing a multiprocessor data processing system utilizing a plurality of event tracers
US6427196B1 (en) * 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6574721B1 (en) * 1999-08-31 2003-06-03 International Business Machines Corporation Apparatus and method for providing simultaneous local and global addressing using software to distinguish between local and global addresses
US6530031B1 (en) * 1999-11-08 2003-03-04 International Business Machines Corporation Method and apparatus for timing duration of initialization tasks during system initialization
US6581130B1 (en) * 2000-04-04 2003-06-17 Hewlett Packard Development Company, L.P. Dynamic remapping of address registers for address translation between multiple busses
US6697925B1 (en) * 2000-12-22 2004-02-24 Unisys Corporation Use of a cache ownership mechanism to synchronize multiple dayclocks
JP2003132019A (ja) 2002-07-12 2003-05-09 Hitachi Ltd 計算機システムの障害監視方法
US7069397B2 (en) * 2003-04-15 2006-06-27 Sun Microsystems, Inc Stream based memory manager with function specific hardware logic for accessing data as a stream in memory
US7251649B2 (en) * 2003-10-31 2007-07-31 Hewlett-Packard Development Company, L.P. Method for prioritizing content
US7269708B2 (en) * 2004-04-20 2007-09-11 Rambus Inc. Memory controller for non-homogenous memory system
US7624362B2 (en) 2006-01-11 2009-11-24 Panasonic Corporation Circuit analysis device using processor information
KR101334176B1 (ko) * 2007-01-19 2013-11-28 삼성전자주식회사 멀티 프로세서 시스템 온 칩에서의 메모리 관리 방법

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62287345A (ja) * 1986-06-06 1987-12-14 Fuji Electric Co Ltd メモリアクセス状況監視装置
JPH0359731A (ja) * 1989-07-28 1991-03-14 Nec Corp デバッグ装置
JPH05216718A (ja) * 1992-02-04 1993-08-27 Mitsubishi Electric Corp デバッグ方法
JPH0635760A (ja) * 1992-07-14 1994-02-10 Toshiba Corp トレース機能付バッファ装置
JP2001519949A (ja) * 1997-04-08 2001-10-23 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ソフトウェア性能プロファイリングデータをキャプチャするためのキャッシュを組込んだマイクロプロセッサベースのデバイス
JP2001134471A (ja) * 1999-11-09 2001-05-18 Toshiba Corp デバッグ装置及びデバッグ方法
JP2002342125A (ja) * 2001-05-18 2002-11-29 Fujitsu Ltd イベント計測装置および方法並びにイベント計測プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体並びにプロセッサシステム
US7143251B1 (en) * 2003-06-30 2006-11-28 Data Domain, Inc. Data storage using identifiers
JP2006293560A (ja) * 2005-04-07 2006-10-26 Toshiba Lsi System Support Kk デバッグシステムおよびデバッグ方法
JP2007011512A (ja) * 2005-06-28 2007-01-18 Fujitsu Ltd テスト記録方法、テスト記録装置、およびテスト記録プログラム
JP2007213556A (ja) * 2006-01-11 2007-08-23 Matsushita Electric Ind Co Ltd 回路解析装置
JP2007249884A (ja) * 2006-03-20 2007-09-27 Fujitsu Ltd ソフトウェア検証プログラム、ソフトウェア検証装置、ソフトウェア検証方法
JP2007293424A (ja) * 2006-04-21 2007-11-08 Toshiba Corp パフォーマンスモニタ装置、データ収集方法及びそのプログラム
JP2008041036A (ja) * 2006-08-10 2008-02-21 Sony Corp メモリアクセス監視装置およびその方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015513374A (ja) * 2012-03-16 2015-05-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation アドレスによるランタイム・インスツルメンテーション間接サンプリングを実現するためのコンピュータ・プログラム・プロダクト、方法、およびシステム(アドレスによるランタイム・インスツルメンテーション間接サンプリング)
JP2016045676A (ja) * 2014-08-22 2016-04-04 富士通株式会社 デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法
US11355212B2 (en) 2018-12-06 2022-06-07 Fujitsu Limited Calculation processing apparatus, and method for controlling calculation processing apparatus

Also Published As

Publication number Publication date
GB2461716A (en) 2010-01-13
GB2461644A (en) 2010-01-13
CN101625657B (zh) 2014-04-09
US9858169B2 (en) 2018-01-02
GB0812560D0 (en) 2008-08-13
CN101625657A (zh) 2010-01-13
JP5328531B2 (ja) 2013-10-30
GB2461644B (en) 2012-11-14
US20100077143A1 (en) 2010-03-25
GB0911893D0 (en) 2009-08-19

Similar Documents

Publication Publication Date Title
JP5328531B2 (ja) データ処理装置の監視およびその監視データの集計
US6658654B1 (en) Method and system for low-overhead measurement of per-thread performance information in a multithreaded environment
US7587709B2 (en) Adaptive instrumentation runtime monitoring and analysis
US9081629B2 (en) Excluding counts on software threads in a state
US7577943B2 (en) Statistical memory leak detection
US7185320B2 (en) System and method for processing breakpoint events in a child process generated by a parent process
US8731688B2 (en) Processing apparatus and method for acquiring log information
US20090178036A1 (en) Method and Apparatus for Call Stack Sampling Using a Virtual Machine
Bhatia et al. Lightweight, high-resolution monitoring for troubleshooting production systems
JPH0830494A (ja) システム性能をプロファイルするための割り込みベースのハードウエア・サポート
JPH0774984B2 (ja) システム資源利用率測定方法とデータ処理システム
Greathouse et al. Demand-driven software race detection using hardware performance counters
JP2006309760A (ja) データプロセッサの異常動作を検出するためのモニタリング論理及びモニタリング方法
US20120180057A1 (en) Activity Recording System for a Concurrent Software Environment
US20070226545A1 (en) Methods and systems for generating and storing computer program execution trace data
JP5623557B2 (ja) 診断データを収集するためのマルチスレッド化コンピューティング環境における方法、装置、およびコンピュータ・プログラム
Su et al. Pinpointing performance inefficiencies via lightweight variance profiling
JP6041749B2 (ja) トレース収集回路及びトレース収集方法
Yang et al. Histlock+: precise memory access maintenance without lockset comparison for complete hybrid data race detection
US8762783B2 (en) Error identification
US6725363B1 (en) Method for filtering instructions to get more precise event counts
Silvestro et al. Sampler: Pmu-based sampling to detect memory errors latent in production software
Yang et al. HistLock: Efficient and sound hybrid detection of hidden predictive data races with functional contexts
Weng et al. Effective Performance Issue Diagnosis with Value-Assisted Cost Profiling
Prada-Rojas et al. Observation tools for debugging and performance analysis of embedded linux applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130524

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130723

R150 Certificate of patent or registration of utility model

Ref document number: 5328531

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250