JP7049275B2 - 診断データキャプチャ - Google Patents

診断データキャプチャ Download PDF

Info

Publication number
JP7049275B2
JP7049275B2 JP2018567249A JP2018567249A JP7049275B2 JP 7049275 B2 JP7049275 B2 JP 7049275B2 JP 2018567249 A JP2018567249 A JP 2018567249A JP 2018567249 A JP2018567249 A JP 2018567249A JP 7049275 B2 JP7049275 B2 JP 7049275B2
Authority
JP
Japan
Prior art keywords
address
processing operation
sampling
diagnostic
data
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.)
Active
Application number
JP2018567249A
Other languages
English (en)
Other versions
JP2019526108A (ja
Inventor
ジョン ウィリアムズ、マイケル
Original Assignee
アーム・リミテッド
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 アーム・リミテッド filed Critical アーム・リミテッド
Publication of JP2019526108A publication Critical patent/JP2019526108A/ja
Application granted granted Critical
Publication of JP7049275B2 publication Critical patent/JP7049275B2/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
    • 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/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • 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/3452Performance evaluation by statistical analysis
    • 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
    • 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/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Description

本開示はデータ処理システムの分野に関する。より具体的には、本開示はデータ処理システム内の診断データの取り込みに関する。
ますます複雑化するデータ処理システムの重要な特徴は、それらがハードウェアおよびソフトウェアにおけるエラーを識別し解決することができるように診断データを捕捉するためのメカニズムおよびサポートを含むことである。
診断データの捕捉はデータ処理システムの通常の動作を妨害しないことが望ましい。例えば、診断データを捕捉することがデータ処理システムの動作を著しく遅くした場合、これは、通常の使用において診断データが捕捉されている間に発生するのではないか通常の使用では発生しない場合の診断データ。さらに、診断データの捕捉が必要とされないときにデータ処理システムの展開動作中に通常使用されないオーバーヘッドを表すので、診断データの捕捉に必要とされるストレージおよび他のリソースの量は少ないことが望ましい。
本開示の少なくともいくつかの実施形態は、データを処理するための装置を提供し、
サンプリング処理動作がサンプリングされた診断を有する先行のサンプリング処理動作から分離されている場合であって、当該先行のサンプリング処理動作は、所定の間隔条件に一致する間隔で前記診断データバッファに記憶されたサンプリング診断データを有し、且つ、前記サンプリング処理動作が、所定のアドレス特性と一致する関連メモリアドレスを有する場合に、
処理動作のストリーム内の前記サンプリング処理動作を特徴付けるサンプリング診断データの診断データバッファへの格納を制御する診断データ捕捉回路を含むデータ処理装置を提供する。
本開示の少なくともいくつかの実施形態は、データを処理するための装置を提供し、
サンプリング処理動作がサンプリングされた診断を有する先行のサンプリング処理動作から分離されている場合であって、当該先行のサンプリング処理動作は、所定の間隔条件に一致する間隔で前記診断データバッファに記憶されたサンプリング診断データを有し、且つ、前記サンプリング処理動作が、所定のアドレス特性と一致する関連メモリアドレスを有する場合に、
処理動作のストリーム内の前記サンプリング処理動作を特徴付けるサンプリング診断データの診断データバッファへの格納を制御する診断データ捕捉手段を含むデータ処理装置を提供する。
本開示の少なくともいくつかの実施形態は、データを処理する方法を提供し、
サンプリング処理動作がサンプリングされた診断を有する先行のサンプリング処理動作から分離されている場合であって、当該先行のサンプリング処理動作は、所定の間隔条件に一致する間隔で前記診断データバッファに記憶されたサンプリング診断データを有し、且つ、前記サンプリング処理動作が、所定のアドレス特性と一致する関連メモリアドレスを有する場合に、
処理動作のストリーム内の前記サンプリング処理動作を特徴付けるサンプリング診断データの診断データバッファへ格納するデータ処理方法を提供する。
例示の実施形態は、添付の図面を参照して、ほんの一例として説明される。
図1は、診断データキャプチャ回路を組み込んだデータ処理システムの例示的な実施形態を概略的に示す図である。 図2は、サンプリングプロセスを概略的に示す流れ図である。 図3は、アドレス照合プロセスを概略的に示す流れ図である。 図4は、サンプルのフィルタリングおよび保存プロセスを概略的に示す流れ図である。 図5は、診断データ取得回路を組み込んだデータ処理システムの別の例示的実施形態を概略的に示す図である。
図1は、メモリ4(実行されるプログラム命令および操作されるデータを記憶する)、フェッチユニット6、命令ディスパッチユニット8および実行パイプライン10を含むデータ処理装置2を概略的に示す。動作中、フェッチユニット6はメモリ4からプログラム命令をフェッチする。次に、これらのフェッチされたプログラム命令は少なくとも部分的に復号化され(図示せず)、命令ディスパッチユニット8に渡され、そこでそれらは実行パイプライン10へのディスパッチを待つ。実行パイプライン10は、プログラム命令によって指定された処理動作を実行する。実際には、データ処理装置2は通常、他の機能をデータ処理装置2に提供する多くの別のユニットを含むが、これらは明瞭さのために図1から省略されていることを理解されたい。
図1のデータ処理装置2は、実行されるプログラム命令の統計的サンプリングを実行することができる。これらのプログラム命令は、より一般的には処理操作のストリーム(一連の処理操作)であると見なすことができる。本技法は、実行されるべき統計的サンプリングが行われる処理動作がプログラム命令ではない様々な実施形態に適用することができる。処理動作は、割り込みコントローラによって受信された割り込みまたはシステムオンチップ相互接続上のメモリトランザクションであり得る。
本開示に従って実行される統計的サンプリングは、診断データバッファ12内に診断データを記録するのに役立つ。ストリーム内のどのプログラム命令(処理操作)について診断データを取り込むかの選択は、2つの基準を満たすことに基づく。第1の基準は、プログラム命令(処理動作)が、所定のインターバル条件に一致するプログラム命令のストリーム内のインターバル(処理動作の数または時間のいずれか)だけ前のサンプルプログラム命令(処理動作)から分離されるべきである。この例示的実施形態では、所定の間隔条件は、サンプリングされた診断データが、基本サンプリング周期の正の整数倍である所定の間隔だけ、前のサンプリング処理動作から分離されていることである。さらに、その診断データを取り込ませるためのサンプル処理動作は、所定のアドレス特性と一致する関連メモリアドレスを有するべきである。
図1に示す例では、これら2つの基準は、サンプリングされる候補プログラム命令が直前の候補プログラム命令から所定の(プログラム可能な)サンプリング間隔だけ離れることを最初に要求する順序で適用される。プログラム命令のストリーム内の候補プログラム命令がサンプリング間隔に基づいて識別されると、候補プログラム命令が所定のアドレス特性と一致する関連メモリアドレスを有するかどうかに基づいてこれらの候補プログラム命令の中から別の選択が行われる。
関連するメモリアドレスは様々な形態を取り得る。例えば、候補プログラム命令に関連するメモリアドレスは、そのプログラム命令をメモリ4内に記憶するメモリアドレスとすることができる。あるいは、関連するメモリアドレスは、実行されるときにその候補プログラム命令によってアクセスされるターゲットアドレスであり得る。例えば、実行されるデータアクセス命令(ロードまたはストア)またはデータ処理命令(たとえば追加)に関連する読み出しアドレスまたは書き込みアドレスであり得る。
図1は、プログラム可能統計サンプリング構成レジスタ15からのインターバルカウント値で初期化されるインターバル選択回路14を示す。プログラムディスパッチが命令ディスパッチユニット8からディスパッチされるたびに、カウント値はゼロに達するまで減分される。「ディスパッチされた」という用語はこの技術分野において様々な方法で使用することができ、本技術はこの用語の特定の用法によって限定されないことに留意されたい。カウント値がゼロに達すると、これは「サンプリング間隔ヒット」に対応し、対応する命令はサンプリングされたものとしてマークされる。これがサンプリングされた命令なのか、それともこれらと他の方法の組み合わせなのかを判断するために検査されるパイプラインを介して命令と共に移動するタグ、またはパイプライン内の命令のタグ値と比較される命令のタグ値のどこかのレコードの形式を取る。次に、実行パイプライン10は、マークされた命令が実行パイプライン10を通り抜けて実行されるまで、それが完了して廃棄されるまで、サンプリングされた命令レコード記憶装置16内にマークされた命令の特性を格納する。したがって、この例示的な実施形態におけるインターバル選択回路14は、プログラム可能なサンプリング間隔によってプログラム命令のストリーム内で分離されたディスパッチされた命令をマークするのに役立つ。上述の実施形態例では、サンプリングは命令がディスパッチされる時点で行われる。他の例示的な実施形態では、サンプリングは他の点でも起こり得る。命令がデコードされる前、または命令が実行ユニットに発行されるとき。以前にサンプリングされた処理動作から所定の間隔の整数倍で分離されたすべての処理動作がサンプリングされるわけではなく(すなわち、「所定の間隔条件」)、むしろサンプリングの候補であり、アドレス基準も満たす場合にサンプリングされる。以下に説明する。
前述のように、どの診断データが捕捉されるかをさらにフィルタリングするために使用される関連メモリアドレス基準は、プログラム命令のメモリアドレスまたはプログラム命令に関連するターゲットアドレスの形をとることができる。プログラム命令のメモリアドレスの場合は、フェッチユニット6がメモリ4からプログラム命令をフェッチすることで判断することができる。図示の実施例では、ブレークポイントユニット18が設けられており、これは前述の統計的サンプリングとは異なる診断動作を実行する別の診断回路の例である。プログラムコードのブレークポインティングに従って処理中の割り込みをトリガするためにフェッチされた命令の命令アドレスを識別するためにブレークポイントユニット18によって使用され得るブレークポイントユニット18内の比較器20は、再使用され得る。フェッチされたプログラム命令は、統計的サンプリングのアドレスフィルタリング基準に使用される所定のアドレス特性と一致する関連メモリアドレス(すなわちプログラム命令アドレス)を有する。ブレークポイントユニット18は、その通常のブレークポイント識別機能を有する代わりに、統計的サンプリング診断データ捕捉回路の一部として機能するようにプログラムされてもよい。この場合、ブレークポイントユニット18内の比較器20が所定のアドレスに対する命令アドレスの完全一致であり得るアドレスの一致を検出すると、所定のアドレス範囲内で失敗した命令アドレスに対応する一致が発生する。これにより、マスクによって指定された関連メモリアドレス内の1つまたは複数のビットまたはビットフィールド(たとえば、マッチング回路によって有意として扱われるビット数を指定するマスク値)が所定のアドレスと一致する。必要に応じて他の種類のアドレスマッチングも使用することができ、比較器20によってサポートされる。統計的サンプリングに関連するアドレス比較をサポートするために専用の比較器を提供するのではなく、ブレークポイントユニット18内で比較器20を再利用することは、統計的サンプリングの提供に関連するオーバーヘッドを減らす。
統計的サンプリングをサポートするために比較器20が使用されているときに比較器20によってアドレスの一致が識別されると、一致をもたらしたプログラム命令は、それが命令ディスパッチユニット8に渡されるときにそれを示すためにタグ付けされる。次に、その命令が実行パイプラインにディスパッチされると、それがアドレス一致に対応することを示すタグが、命令が完了したときにこの情報が利用できるように、その命令に対するサンプル命令レコード内にサンプル命令レコード記憶部16に格納される。そのため、その診断データを診断データバッファ12内に格納すべきかどうかについての判断(後述)を行うことができる。
前述のように、プログラム命令の関連メモリアドレスは、プログラム命令に関連するターゲットアドレスであり得る。統計的サンプリングとは別の診断技法に従ってデータ監視を実行するために使用されるウォッチポイントユニット22は、再利用されてもよく、または少なくともその比較器24が統計的サンプリングの対象となるプログラム命令を識別するために再利用されてもよい。所定のアドレス特性を有するターゲットアドレスにアクセスすることにより、所定のアドレス特性を有する。前述のように、これらの特性は、アドレスの完全な一致、所定の範囲内にあるターゲットアドレスに対応する一致、または部分的にマスクされたターゲットアドレス値と所定の値との間の一致を必要とし得る。他の形式のアドレス照合も可能であろう。ウォッチポイントユニット22は、実行パイプライン10によってターゲットアドレスデータを供給され、ウォッチポイントユニット22内の比較器24は、プログラム命令が所定のアドレス基準に一致するかどうかを識別するために使用され得る。そのような一致が生じた場合、これは実行パイプライン10を介して通知され、そのプログラム命令についてのサンプル命令レコード記憶部16内のサンプル命令レコード内に格納され得る。
アドレスマッチングはまた、メモリ4内のメモリアドレスの領域に関連するメモリ属性を示すメモリアドレス属性データに基づいて実行されてもよい。このようなメモリアドレス属性データは、ロードまたはストアを指定する命令によって、あるいはフェッチユニット6によるプログラム命令の所与の領域からのフェッチによって、メモリ4へのアクセスを制御するためにメモリ管理ユニット25によって使用されるページテーブルデータであり得る。メモリ属性データは、メモリの特定のページが統計的サンプリングに関連する所定のアドレス特性に対するアドレス一致に対応することを示すフラグを追加することができるページテーブルデータであり得る。統計サンプリングの対象としてページテーブルによってマークされたメモリアドレス空間のページ内からのメモリアドレスに関連付けられている場合、必要な間隔で候補プログラム命令がサンプリングされる。
前述のように、ブレークポイントユニット18とウォッチポイントユニット22の両方は、統計的サンプリングを実行する診断データ捕捉回路の一部として機能するためにそれらのそれぞれのアドレス比較器20、24を再使用させることができる。このように再利用されると、ブレークポイントまたはウォッチポイントを検出したときに処理の中断をトリガーする通常の機能はプログラム的に抑制され、代わりに次の2つのアドレスの一致を満たすことに対応する抑制アドレス一致イベントが発生する。候補プログラム命令の関連メモリアドレスおよび統計的サンプリングのための予め定められたアドレス特性との間のアドレスの一致を満たすことに対応する抑制アドレス一致イベントが発生する。
データ処理装置2はまた、プログラム実行フローを示すトレースデータを生成するためのトレース回路26を含み得る。このトレース回路26は、そのようなトレース動作中に使用される比較器28を含む。これらの比較器28はまた、このような統計的サンプリングの提供に関連するオーバーヘッドを減らすために統計的サンプリングを実行する診断データ捕捉回路の一部として再使用されてもよい。
上述のように、ページテーブルデータは、統計的サンプリングの対象となるべき(すなわち、アドレスの一致が示される)メモリアドレスの領域を識別するために使用され得る。いくつかの実施形態では、機能ポインタをメモリ領域へのポインタとして使用し、そのポインタを使用するときに許可された動作を指定することも可能である。そのような機能ポインタは、関係する領域が統計的サンプリングの対象となるべきであることを示すフラグ、すなわちアドレス一致基準を提供することによって増強することができる。
マークされたプログラム命令が実行パイプライン10からリタイアされているとき(「例示的な実施形態ではリタイア」とは、命令の効果がアーキテクチャ状態にコミットされたとき(非投機的になるとき)など)。その命令がサンプルレコードに何も記録するものがなくなったとき、または他の何らかの点で)他の命令に影響を与えることができなくなった(それでもなお投機的である)。そのプログラム命令に関連する診断データを診断データバッファ12内に記憶すべきかどうかを決定するためにチェックされる。アドレスフィルタリング回路30は、アドレス一致フラグがサンプリングされた命令レコード内に設定されているかどうかをチェックするために使用される。アドレス一致基準が満たされたことを示すアドレス一致フラグが設定されている場合、そのサンプリングされた命令の診断データは診断データバッファ12内に格納される。
図1の例では、サンプリングされる候補プログラム命令はサンプリング間隔を使用して識別される。次に、これらの候補プログラム命令の中からの選択は、それらが所定のアドレス特性と一致する関連メモリアドレスを有するかどうかに基づいて行われる。したがって、図1の回路の動作は、カウントフィルタ、次いでアドレスフィルタに基づいて統計的サンプリングを実行すると考えることができる。
図2は、間隔サンプリングプロセスを概略的に示す。ステップ32において、インターバル選択回路14内のカウンタはサンプリング間隔に対応するカウント値に初期化される。次いで、ステップ34は、命令が命令ディスパッチユニット8によってディスパッチされていると識別されるまで待機する。命令がディスパッチされると、ステップ36はカウンタをデクリメントする。ステップ38は、カウンタがゼロに達したかどうかを判定する。カウンタがゼロに達すると、ステップ40は命令をサンプル間隔基準を満たすものとしてマークし、処理はステップ34に戻る。
図3はアドレスマッチングプロセスを概略的に示す。ステップ42において、アドレスフィルタが初期化される。例えば、比較器20、24、28または統計的サンプリング専用の特定の比較器の適切なプログラミングである。次にステップ44は、プログラム命令に関連するアドレスが所定のアドレス条件(例えば、完全一致、範囲内の一致、または特定のマスキングの対象となる一致など)と一致するかどうかを判定する。アドレスの一致は、関係するプログラム命令の記憶アドレスおよび/またはプログラム命令によってアクセスされているターゲットアドレスに基づくことができる。アドレスの一致が見つかった場合、ステップ46は、その命令がアドレス一致基準を満たすものとしてマークされたものであるかどうかを判定する(アドレスの一致がすでにディスパッチされている命令のターゲットアドレスに対して行われていると仮定する)。命令がそのようにマークされている場合、ステップ48はサンプリングされた命令レコード内にアドレスの一致を記録する。
図4は、サンプルのフィルタリングおよび保存工程を概略的に示す。ステップ50において、ゲートサンプリングに対するサンプリングされた命令レコードの検査に使用されるべき基準が初期化される。ステップ52は、完了した命令がその関連するサンプル命令レコード内のサンプル間隔基準を満たすとしてマークされているかどうかを判定する。命令がこの基準を満たさない場合、その命令に関する診断データは格納されない。サンプリング間隔の基準が満たされると、処理はステップ54に進み、そこでアドレス一致基準が適用されるべきかどうかに関して判定が行われる。アドレス一致基準が適用されることになっている場合、ステップ56は、完了した命令についてのサンプリングされた命令レコードがアドレス一致基準を満たしたとマークされているかどうかを判定する。アドレスの一致基準が満たされていない場合、診断データは保存されない。
ステップ58は、それに関連する診断データを診断データバッファ12に記憶させるべきか否かを決定するために完了した命令に関して行われ得る他の基準チェックを概略的に表す。これらの他の基準は、本明細書に記載のサンプリング間隔チェックおよびアドレス一致チェックを超えてもよい。すべての基準が満たされる場合、処理はステップ60に進み、そこで完了した命令の診断データが診断データバッファに格納され、サンプリングされた命令レコードが他の命令による再使用のためにクリアされる。いずれかの基準が満たされた場合に、完了した命令の診断データが診断データバッファに格納されるように、ステップ56からのNパス上でチェックすることもできる。
図5は、統計的サンプリングを用いたデータ処理システム62の他の例示的実施形態を示す。この例示的な実施形態では、図1に関して説明したものと同様の回路要素については再度説明しない。図5の実施形態例は、アドレスフィルタリング基準がプログラム命令の命令アドレスに基づいて実行されるという点で図1の実施形態と異なる。ブレークポイントユニット18は、統計的サンプリングの一部として診断データ記録のための候補プログラム命令のストリームを識別する。候補プログラム命令のストリームは、それらの命令アドレスに基づいてアドレス一致基準が満たされた命令である。インターバル選択回路14は次に、アドレス基準に既に一致する候補プログラム命令のストリーム内の(プログラム可能な)サンプリング間隔をカウントする。インターバルカウントがゼロに達すると、その時点での候補プログラム命令はサンプリングされるようにマークされる。したがって、その指示が完了すると、それに関連する診断データが記憶されることになる。したがって、図5の例示的な実施形態は、アドレスフィルタリング基準を満たすプログラム命令に対してアドレス選択動作とそれに続く間隔選択を実行する。

Claims (21)

  1. データ処理装置であって、
    当該データ処理装置のデータ処理動作を行うサンプリング処理動作が、サンプリングされた診断を有する先行のサンプリング処理動作から離れている場合であって、当該先行のサンプリング処理動作は、所定の間隔条件に一致する間隔で診断データバッファに記憶されたサンプリング診断データを有し、前記所定の間隔条件とは、前記サンプリング診断データが前記先行のサンプリング処理動作と所定の時間間隔だけ離れていることであり、且つ、前記サンプリング処理動作が、所定のアドレス特性と一致する関連メモリアドレスを更に有する場合に、
    処理動作のストリーム内の前記サンプリング処理動作を特徴付けるサンプリング診断データの診断データバッファへの格納を制御する診断データ捕捉回路を含むデータ処理装置。
  2. 前記診断データ捕捉回路が、前に選択された候補処理動作から前記ストリーム内の所定の間隔だけ離れた処理動作の前記ストリーム内の処理動作をサンプリングするための候補処理動作として選択する間隔選択回路と、
    前記候補処理動作が前記所定のアドレス特性と一致する関連メモリアドレスを有するとき、前記候補処理動作を特徴付ける診断データを前記診断データバッファとして前記診断データバッファに格納することを制御するアドレスフィルタリング回路と、
    を含む請求項1に記載の装置。
  3. 前記診断データ捕捉回路が、所定のアドレス特性と一致する関連メモリアドレスを有する処理動作のストリーム内の処理動作をサンプリングするための候補処理動作として選択するアドレスフィルタリング回路と、
    候補の指示前記候補処理動作が前記候補処理動作のストリーム内で所定の間隔だけ前のサンプリング処理動作から分離されたとき、前記候補処理動作を特徴付ける診断データを前記サンプリング診断データとして前記診断データバッファに格納することを制御する区間選択回路と、
    を含む請求項1に記載の装置。
  4. 前記候補処理動作は、ターゲットメモリアドレスにアクセスするためのデータアクセス処理動作であり、前記関連メモリアドレスは、前記ターゲットメモリアドレスである、請求項2または3に記載の装置。
  5. 前記候補処理動作が命令アドレスに記憶され、前記関連メモリアドレスが前記命令アドレスである、請求項2、3および4のいずれか一項に記載の装置。
  6. 前記所定のアドレス特性と一致する前記関連メモリアドレスは、以下のうちの1つに対応するものであり、
    前記関連するメモリアドレスは、所定のアドレスと一致する、または、
    前記関連メモリアドレスは、所定の範囲のアドレスと一致する、または、
    マスクによって指定された前記関連メモリアドレス内のビットは、前記所定のアドレス内の対応するビットと一致する、請求項から5のいずれか一項に記載の装置。
  7. 前記所定の間隔が、所定の数の処理動作と所定の時間間隔とのうちの1つである、請求項2から6のいずれか一項に記載の装置。
  8. 前記所定のアドレス特性がユーザプログラム可能である、請求項から7のいずれか一項に記載の装置。
  9. 前記ストリームの実行に関連する別の診断動作を実行するための別の診断回路を含み、前記アドレスフィルタリング回路は、アドレス比較を実行する診断比較回路を前記別の診断回路と共有する、請求項2から8のいずれか一項に記載の装置。
  10. 前記別の診断回路が、前記診断比較回路によるアドレス一致の検出時に前記別の診断動作を抑制し、その代わりに抑制アドレス一致イベントを生成するようにプログラム可能である、請求項9に記載の装置。
  11. 前記所定のアドレス特性が、前記抑制されたアドレス一致イベントの発生を含む、請求項10に記載の装置。
  12. 前記アドレスフィルタリング回路は、前記抑制されたアドレス一致イベントの発生を前記所定のアドレス特性内に選択的に含むようにプログラム可能である、請求項11に記載の装置。
  13. 前記別の診断回路が、ウォッチポイント特性と一致するメモリアドレスへのデータアクセスが行われたときに処理動作実行への割り込みをトリガするウォッチポイント回路を含み、前記診断比較回路が、前記アドレスフィルタリング回路と共有されるウォッチポイント比較器を含む、請求項9から12のいずれか一項に記載の装置。
  14. 前記別の診断回路が、ブレークポイント特性と一致する命令アドレスを有する処理動作が実行されたときに処理動作の実行への割り込みをトリガするブレークポイント回路を含み、前記診断比較回路が、前記アドレスフィルタリング回路と共有されるブレークポイント比較器を含む、請求項9から13のいずれか一項に記載の装置。
  15. 前記別の診断回路が、処理動作実行フローを示すトレースデータを生成するためのトレース回路を含み、前記診断比較回路が、前記アドレスフィルタリング回路と共有されるトレースポイント比較器を含む、請求項9から14のいずれか一項に記載の装置。
  16. メモリ内のメモリアドレスの領域に関連メモリ属性を示すメモリアドレス属性データを使用して前記メモリへのアクセスを管理するためのメモリ管理回路を備え、前記関連メモリアドレスの前記所定のアドレス特性が、前記関連メモリアドレスのメモリアドレス属性データで指定されたパラメータに対応する、請求項1から15のいずれか一項に記載の装置。
  17. 前記メモリアドレス属性データはメモリページテーブルデータである、請求項16に記載の装置。
  18. 前記所定のアドレス特性は、メモリの領域へのポインタと前記ポインタを使用するときに許可された動作とを含む能力ポインタの一部である、請求項1から17のいずれか一項に記載の装置。
  19. 前記処理動作の前記ストリームは、プログラム命令のストリームである、請求項1から18のいずれか一項に記載の装置。
  20. データ処理装置であって、
    当該データ処理装置のデータ処理動作を行うサンプリング処理動作が、サンプリングされた診断を有する先行のサンプリング処理動作から離れている場合であって、当該先行のサンプリング処理動作は、所定の間隔条件に一致する間隔で診断データバッファに記憶されたサンプリング診断データを有し、前記所定の間隔条件とは、前記サンプリング診断データが前記先行のサンプリング処理動作と所定の時間間隔だけ離れていることであり、且つ、前記サンプリング処理動作が、所定のアドレス特性と一致する関連メモリアドレスを更に有する場合に、
    処理動作のストリーム内の前記サンプリング処理動作を特徴付けるサンプリング診断データの診断データバッファへの格納を制御する診断データ捕捉手段を含むデータ処理装置。
  21. データ処理方法であって、
    当該データ処理方法のデータ処理動作を行うサンプリング処理動作が、サンプリングされた診断を有する先行のサンプリング処理動作から離れている場合であって、当該先行のサンプリング処理動作は、所定の間隔条件に一致する間隔で診断データバッファに記憶されたサンプリング診断データを有し、前記所定の間隔条件とは、前記サンプリング診断データが前記先行のサンプリング処理動作と所定の時間間隔だけ離れていることであり、且つ、前記サンプリング処理動作が、所定のアドレス特性と一致する関連メモリアドレスを有する場合に、
    処理動作のストリーム内の前記サンプリング処理動作を特徴付けるサンプリング診断データの診断データバッファへ格納するデータ処理方法。
JP2018567249A 2016-06-29 2017-05-15 診断データキャプチャ Active JP7049275B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1611261.7 2016-06-29
GB1611261.7A GB2551747B (en) 2016-06-29 2016-06-29 Diagnostic data capture
PCT/GB2017/051346 WO2018002572A1 (en) 2016-06-29 2017-05-15 Diagnostic data capture

Publications (2)

Publication Number Publication Date
JP2019526108A JP2019526108A (ja) 2019-09-12
JP7049275B2 true JP7049275B2 (ja) 2022-04-06

Family

ID=56891482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018567249A Active JP7049275B2 (ja) 2016-06-29 2017-05-15 診断データキャプチャ

Country Status (7)

Country Link
US (1) US20190340097A1 (ja)
JP (1) JP7049275B2 (ja)
KR (1) KR102292197B1 (ja)
CN (1) CN109313603B (ja)
GB (1) GB2551747B (ja)
TW (1) TWI750190B (ja)
WO (1) WO2018002572A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11714676B2 (en) * 2020-01-03 2023-08-01 International Business Machines Corporation Software-directed value profiling with hardware-based guarded storage facility

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005689A (ja) 1999-06-23 2001-01-12 Nec Ibaraki Ltd トレース採取回路
JP2007213205A (ja) 2006-02-08 2007-08-23 Fujitsu Ltd システム分析プログラム、システム分析装置、およびシステム分析方法
JP2015513374A (ja) 2012-03-16 2015-05-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation アドレスによるランタイム・インスツルメンテーション間接サンプリングを実現するためのコンピュータ・プログラム・プロダクト、方法、およびシステム(アドレスによるランタイム・インスツルメンテーション間接サンプリング)

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6297044A (ja) * 1985-10-24 1987-05-06 Hitachi Electronics Eng Co Ltd プログラムトレ−ス装置
US6237073B1 (en) * 1997-11-26 2001-05-22 Compaq Computer Corporation Method for providing virtual memory to physical memory page mapping in a computer operating system that randomly samples state information
US7197671B2 (en) * 2002-06-07 2007-03-27 Arm Limited Generation of trace elements within a data processing apparatus
GB2389432B (en) * 2002-06-07 2005-09-07 Advanced Risc Mach Ltd Instruction tracing in data processing systems
US7539853B2 (en) * 2002-11-18 2009-05-26 Arm Limited Handling interrupts in data processing of data in which only a portion of a function has been processed
US8826241B2 (en) * 2004-02-16 2014-09-02 Oracle America, Inc. Instruction sampling in a multi-threaded processor
US7272453B2 (en) * 2004-11-30 2007-09-18 Air Products And Chemicals, Inc. Method and apparatus for utilizing a sequence interpreter approach to control logic of a programmable logic controller
US7627807B2 (en) * 2005-04-26 2009-12-01 Arm Limited Monitoring a data processor to detect abnormal operation
US8392726B2 (en) * 2006-12-20 2013-03-05 Stmicroelectronics S.A. Protection of memory areas
US8612720B2 (en) * 2007-02-09 2013-12-17 Edgewater Computer Systems, Inc. System and method for implementing data breakpoints
US8572295B1 (en) * 2007-02-16 2013-10-29 Marvell International Ltd. Bus traffic profiling
US9449314B2 (en) * 2008-10-02 2016-09-20 International Business Machines Corporation Virtualization of a central processing unit measurement facility
GB2481385B (en) * 2010-06-21 2018-08-15 Advanced Risc Mach Ltd Tracing speculatively executed instructions
GB2483509B (en) * 2010-09-13 2017-08-02 Advanced Risc Mach Ltd Data processing apparatus, trace unit and diagnostic apparatus
US9465716B2 (en) * 2012-03-16 2016-10-11 International Business Machines Corporation Run-time instrumentation directed sampling
EP2847681B1 (en) * 2012-05-07 2019-08-07 Microchip Technology Incorporated Device having configurable breakpoint based on interrupt status
US9268598B2 (en) * 2012-09-13 2016-02-23 International Business Machines Corporation Recording and profiling transaction failure source addresses and states of validity indicator corresponding to addresses of aborted transaction in hardware transactional memories
EP2873983B1 (en) * 2013-11-14 2016-11-02 Accemic GmbH & Co. KG Trace-data processing and profiling device
WO2015164765A1 (en) * 2014-04-25 2015-10-29 Hewlett-Packard Development Company, L.P. Flow sample
US9720797B2 (en) * 2015-06-30 2017-08-01 Nxp Usa, Inc. Flash memory controller, data processing system with flash memory controller and method of operating a flash memory controller
US10445133B2 (en) * 2016-03-04 2019-10-15 Nxp Usa, Inc. Data processing system having dynamic thread control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005689A (ja) 1999-06-23 2001-01-12 Nec Ibaraki Ltd トレース採取回路
JP2007213205A (ja) 2006-02-08 2007-08-23 Fujitsu Ltd システム分析プログラム、システム分析装置、およびシステム分析方法
JP2015513374A (ja) 2012-03-16 2015-05-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation アドレスによるランタイム・インスツルメンテーション間接サンプリングを実現するためのコンピュータ・プログラム・プロダクト、方法、およびシステム(アドレスによるランタイム・インスツルメンテーション間接サンプリング)

Also Published As

Publication number Publication date
GB2551747A (en) 2018-01-03
GB201611261D0 (en) 2016-08-10
JP2019526108A (ja) 2019-09-12
WO2018002572A1 (en) 2018-01-04
US20190340097A1 (en) 2019-11-07
KR20190022681A (ko) 2019-03-06
TWI750190B (zh) 2021-12-21
GB2551747B (en) 2019-04-10
CN109313603A (zh) 2019-02-05
CN109313603B (zh) 2023-06-06
TW201802670A (zh) 2018-01-16
KR102292197B1 (ko) 2021-08-23

Similar Documents

Publication Publication Date Title
EP2643751B1 (en) Processing apparatus, trace unit and diagnostic apparatus
US8185724B2 (en) Monitoring values of signals within an integrated circuit
JP4094724B2 (ja) ソフトウェアをデバッグする際に例外を識別するための装置および方法
JP5419103B2 (ja) デバッグイベントを監視するためのシステム及び方法
JP5523872B2 (ja) プログラムの動的分析方法及びその装置
US8839038B2 (en) Diagnosing code using single step execution
JP5841199B2 (ja) 安全保護方法およびプロセッサ
JP7049275B2 (ja) 診断データキャプチャ
CN108027762B (zh) 生成和处理指示处理电路的指令执行的跟踪流的装置和方法
US20190370149A1 (en) An apparatus and method for generating and processing a trace stream indicative of instruction execution by processing circuitry
US10747647B2 (en) Method, apparatus and system for diagnosing a processor executing a stream of instructions
JP7026107B2 (ja) 処理回路素子に対するトリガ信号のアサーションを制御する装置及び方法
WO2020109749A1 (en) Apparatus and data processing method for transactional memory
US20110185156A1 (en) Executing watchpoint events for debugging in a "break before make" manner
EP3743818B1 (en) Commit window move element
JP2001265619A (ja) データトレース方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220215

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: 20220301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220325

R150 Certificate of patent or registration of utility model

Ref document number: 7049275

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150