JP2009176297A - 診断コンテキストの構成および比較 - Google Patents

診断コンテキストの構成および比較 Download PDF

Info

Publication number
JP2009176297A
JP2009176297A JP2009004051A JP2009004051A JP2009176297A JP 2009176297 A JP2009176297 A JP 2009176297A JP 2009004051 A JP2009004051 A JP 2009004051A JP 2009004051 A JP2009004051 A JP 2009004051A JP 2009176297 A JP2009176297 A JP 2009176297A
Authority
JP
Japan
Prior art keywords
diagnostic
value
trigger point
circuit
point definition
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
JP2009004051A
Other languages
English (en)
Other versions
JP5430153B2 (ja
Inventor
Michael John Williams
マイケル・ジョン・ウィリアムス
Richard Roy Grisenthwaite
リチャード・ロイ・グリセンスウェイト
Michael Horley John
ジョン・マイケル・ホーリー
Brookfield Swaine Andrew
アンドリュー・ブルックフィールド・スウェイン
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 JP2009176297A publication Critical patent/JP2009176297A/ja
Application granted granted Critical
Publication of JP5430153B2 publication Critical patent/JP5430153B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • 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/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

【課題】一連のプログラム命令の実行の分析を容易にするための診断機構を提供するデータ処理システムを提供する。
【解決手段】データ処理システム1は、プロセッサコア2を有し、該プロセッサコアは、仮想マシン識別子によってそれぞれが識別された複数の仮想マシンのうちの1つとして機能するようにプログラム可能であり、各仮想マシンは、コンテキスト識別子によってそれぞれ識別された複数のコンテキストのうちの1つにおいて機能し、各コンテキストは、一連のプログラム命令を実行し、各プログラム命令は1つ以上の関連するメモリアドレスを有する。データ処理システムは、プロセッサコア上で診断動作を実行するための診断回路10を有する。診断制御回路12が提供され、該回路は、仮想マシン識別子、コンテキスト識別子、および1つ以上の関連するメモリアドレスのうちの少なくとも1つの現在値に応答して診断回路10をトリガして診断動作を実行する。
【選択図】図1

Description

本発明は、データ処理システムの分野に関する。より具体的には、本発明は、一連のプログラム命令の実行の分析を容易にするための診断機構を提供する、データ処理システムに関する。
データ処理装置では、例えばデータ処理システムの開発中に使用することができる、診断動作を行うための機構を提供することが有用である。提供できる1つの機構は、所定のイベントが検出されたときに、診断動作を実行させるトリガポイントを構成するものである。例えば、メモリ内の所定のアドレスからプログラム命令が取り込まれたときに、診断動作がトリガされるように、ブレークポイントを設定することができる。別様には、または加えて、プログラム命令がメモリ内の所定のアドレスにアクセスしたときに、診断動作をトリガするように、ウォッチポイントを設定することができる。
データ処理装置では、プロセッサによって実行される一連のプログラム命令は、一般的にメモリ内に格納される。一部のシステムでは、プロセッサは、コンテキストとして知られる複数の状態で動作することができ、各コンテキストは、順々に実行される一連のプログラム命令で構成される。このようなシステムの一例は、ARM Limited of Cambridgeによって作成されたプロセッサであり、コンテキストは、コンテキスト識別子によって識別され、そのうちの8ビットを、アプリケーション空間識別子(application space identifier:ASID)タグとして使用して、最高256の処理のうちの1つを識別する。仮想アドレス指定を使用したシステムでは、異なるコンテキストは、仮想アドレス空間を共有し、ASIDは、異なるコンテキスト内の同じ仮想アドレスにおいてデータ同士を差別化する方法を提供する。
コンテキスト認識のトリガポイントを提供することが知られており、プロセッサの現在のコンテキストのコンテキスト識別子に応答する様式で、診断動作の実行をトリガする。これらのコンテキスト認識のトリガポイントは、上述したアドレス認識のトリガポイントにリンクさせることができるので、診断動作は、所定のアドレスがアクセスされて、所定のコンテキストがシステムの現在の状態に一致したときにだけトリガされる。
プロセッサは、それ自体の、または別のマシンの特徴を模写するように、仮想マシンとして機能するようにプログラムすることができる。
一実施形態によれば、本発明は、データを処理するための装置であって、処理動作を実行し、メモリにアクセスするように構成された処理回路であって、該処理回路は、仮想マシン識別子によってそれぞれ識別された複数の仮想マシンのうちの1つとして機能するようにプログラム可能であり、各仮想マシンは、コンテキスト識別子によってそれぞれ識別された複数のコンテキストのうちの1つにおいて機能し、各コンテキストは、一連のプログラム命令を実行し、各プログラム命令は、1つ以上の関連するメモリアドレスを有する処理回路と、
診断動作をその上で実行するように該処理回路に連結された診断回路と、
該処理回路および該診断回路に連結され、該仮想マシン識別子、該コンテキスト識別子、および該1つ以上の関連するメモリアドレスのうちの少なくとも1つの現在値に応答して、該診断回路をトリガして該診断動作を実行する診断制御回路とを備える、装置を提供する。
仮想マシン機能を備えたデータ処理装置では、各仮想マシンは、複数のコンテキストにおいて機能することができ、該コンテキストのそれぞれは、1つ以上のメモリアドレスに関連付けられた一連のプログラムを実行することができる。本発明では、1つの仮想マシンのコンテキスト識別子およびプログラム命令のアドレスが、別の仮想マシンのそれらと不適切に重複する場合があり、したがって、仮想マシン認識デバッグ機構が必要であることを認識している。仮想マシン識別子、コンテキスト識別子、およびメモリアドレスのうちの少なくとも1つの現在値に応答して診断回路をトリガすることによって、例えば、現在のプログラム命令に関連付けられたメモリアドレスおよびコンテキスト識別子が、トリガポイントが設定された別の仮想マシンによって使用されたメモリアドレスおよびコンテキスト識別子と同じであった場合に、診断動作が誤ってトリガされないようにする。これにより、仮想マシン内でのより効率的なプロセスの分析が可能となる。
診断回路は、多数の異なる種類の診断動作を実行することができるものと理解されよう。なお、特に有用な動作には、デバッグモードに入るように処理回路をトリガするステップ、トレースモジュールのオン/オフを行うステップ、トレースデータを内部または外部トレースデバイスに出力するステップ、およびソフトウェア例外をトリガするステップが挙げられる。これらの動作は、データ処理装置によって実行される一連のプログラム命令の分析を補助する。
1つ以上の関連するメモリアドレスのうちの少なくとも1つは、プログラム命令が格納されたメモリ内の位置のアドレスとすることができる。このように、所定のアドレスからプログラム命令が実行されたときに、診断回路をトリガして診断動作を実行することができる。
さらに、1つ以上の関連するメモリアドレスのうちの少なくとも1つは、プログラム命令によってアクセスされたメモリ内の位置のアドレスとすることができる。このように、例えば、所定のメモリアドレスに対する読み込みが生じたとき、および/または所定のメモリアドレスに対する書き込みが生じたときに、診断回路をトリガして診断動作を実行することができる。
当業者は、1つ以上の関連するメモリアドレスは、物理または仮想アドレスとすることができるものと理解されよう。
また、診断制御回路は、トリガポイント定義値を格納する複数のプログラム可能なレジスタを有することもでき、該診断制御回路は、該複数のトリガポイント定義値と、該仮想マシン識別子、該コンテキスト識別子、および該1つ以上の関連するメモリアドレスのうちの該少なくとも1つの現在値との比較に応答して該診断動作を実行するように、該診断回路をトリガする。
トリガポイント定義値は、それぞれブレークポイントまたはウォッチポイントを表し、これらはシステムのユーザによってプログラムされ、診断動作の実行をトリガする所定のイベントを定義することができる。これは、より柔軟かつ効率的な診断機構を提供する。仮想マシン識別子、コンテキスト識別子、およびメモリアドレスの値を、トリガポイント定義値と比較することによって、診断動作がトリガされたかどうか、処理回路の現在の状態を判断する。
別の実施形態によれは、本発明は、データを処理するための装置であって、
処理動作を行うための、およびメモリにアクセスするための処理手段であって、該処理手段は、仮想マシン識別子によってそれぞれ識別された複数の仮想マシンのうちの1つとして機能するようにプログラム可能であり、各仮想マシンは、コンテキスト識別子によってそれぞれ識別された複数のコンテキストのうちの1つにおいて機能し、各コンテキストは、一連のプログラム命令を実行し、各プログラム命令は、1つ以上の関連するメモリアドレスを有する処理手段と、
診断動作をその上で実行するように該処理手段に連結された診断手段と、
該処理手段および該診断手段に連結され、該仮想マシン識別子の現在値に対応する診断制御手段であって、該コンテキスト識別子および該1つ以上の関連するメモリアドレスのうちの少なくとも1つは、該診断手段をトリガして該診断動作を実行するためのものである、診断制御手段とを備える、装置を提供する。
更なる実施形態によれば、本発明は、データを処理するための方法であって、
仮想マシン識別子によってそれぞれ識別された複数の仮想マシンのうちの1つとして機能するようにプログラム可能な処理回路を使用して、処理動作およびメモリへのアクセスを実行するステップであって、各仮想マシンは、コンテキスト識別子によってそれぞれ識別された複数のコンテキストのうちの1つにおいて機能し、各コンテキストは、一連のプログラム命令を実行し、各プログラム命令は、1つ以上の関連するメモリアドレスを有するステップと、
該処理回路に連結された診断回路を使用して診断動作を実行するステップと、
該仮想マシン識別子の現在値、該コンテキスト識別子、および該1つ以上の関連するメモリアドレスのうちの少なくとも1つの現在値に応答して、該診断動作を実行するように、該診断回路をトリガするステップとを含む、データを処理するための方法を提供する。
本発明の別の実施形態によれば、データを処理するための装置であって、
処理動作を実行し、メモリにアクセスするように構成された処理回路であって、該処理回路は、複数の状態識別子のうちの少なくとも1つによってそれぞれ識別された複数の状態のうちの1つにおいて動作する処理回路と、
診断動作をその上で実行するように該処理回路に連結された診断回路と、
該処理回路および該診断回路に連結され、それぞれがトリガポイント定義値を格納する複数のプログラム可能なレジスタを有する診断制御回路であって、該診断制御回路は、該診断回路をトリガして該診断動作を実行するように、該複数のトリガポイント定義値の第1のサブグループのそれぞれと、該複数の状態識別子のうちの少なくとも1つの少なくとも一部で形成された、状態特徴値の現在値との比較に応答する診断制御回路と、
プログラム可能な比較選択値に応答して、該複数の状態識別子の一部が該状態特徴値を形成する、該トリガポイント定義値の第1のサブグループの全てを選択する、全体的な比較選択回路とを備える、装置が提供される。
データ処理装置は、複数の状態において動作することができ、各状態は、複数の識別子によって識別される。状態特徴値によって特徴付けられたシステムの現在の状態と比較されるトリガポイント定義値を格納する、複数のプログラム可能なレジスタを提供することによって、処理回路の状態に基づいて、診断回路をトリガして診断動作を実行することが可能である。状態特徴値は、複数の状態識別子のうちの少なくとも1つの少なくとも一部から形成される。全体的な比較選択回路を使用することで、ユーザは、状態識別子のどの部分が状態特徴値を形成するのかを設定することができる。これによって、トリガポイントに対するトリガ条件の設定における高い柔軟度を可能にする。また、本発明は、同じ組み合わせの識別子を、各トリガポイント定義値との比較にしばしば使用すること、および比較選択回路を各トリガポイント定義値に提供しなくてもよいことを実現する。したがって、状態識別子の組み合わせを使用して状態特徴値を形成するトリガポイント定義値の第1のサブグループの全てを選択する、全体的な比較選択を使用することによって、回路のオーバーヘッドの低減が達成される。
診断回路は、多数の異なる種類の診断動作を実行することができるものと理解されよう。なお、特に有用な動作には、デバッグモードに入るように処理回路をトリガするステップ、トレースモジュールのオン/オフを行うステップ、トレースデータを内部または外部トレースデバイスに出力するステップ、およびソフトウェア例外をトリガするステップが挙げられる。これらの動作は、データ処理装置によって実行される一連のプログラム命令の分析を補助する。
さらに、該処理回路は、仮想マシン識別子によってそれぞれ定義された複数の仮想マシンのうちの1つとして機能するようにプログラム可能であり、各仮想マシンは、少なくとも1つのコンテキスト識別子によってそれぞれ識別された、複数のコンテキストのうちの1つにおいて機能する。
仮想マシンによって、プロセッサは、それ自体または別のデータ処理装置の特徴を模写することができる。例えば、これによって、プロセッサは、複数の均質なマシンのイリュージョン(illusion)を提供するか、または異なるプロセッサタイプをエミュレートすることができる。各仮想マシンは、複数のコンテキストのうちの1つにおいて機能することができ、各コンテキストによって、異なる組の機能を実行することができる。各仮想マシンおよびコンテキストは、それらのそれぞれの識別子によって識別することができる。
複数の状態識別子は、処理装置の状態を記述するあらゆる値を含むことができるものと理解されよう。なお、特に有用な状態識別子には、該仮想マシン識別子および該少なくとも1つのコンテキスト識別子が挙げられ、各状態は、該仮想マシン識別子および該少なくとも1つのコンテキスト識別子の組み合わせによって識別される。
仮想マシン識別子と少なくとも1つのコンテキスト識別子との組み合わせを使用して処理回路の状態を記述することによって、診断動作をトリガするための条件が処理回路の現在の状態に依存するように、トリガポイント定義値と、仮想マシン識別子のうちの少なくとも1つのうちの少なくとも一部とを比較するように、トリガポイントを構成することができる。
いくつかの実施形態では、該複数のコンテキストのそれぞれは、第1のコンテキスト識別子および第2のコンテキスト識別子のうちの少なくとも1つによって識別される。第2のコンテキスト識別子は、各コンテキストに固有である。既知のプロセッサでは、コンテキストは、単一タイプのコンテキスト識別子によって識別することができ、その一部は、アプリケーション空間識別子(ASID)としても機能する。なお、ASIDは、変換索引バッファ(translation lookaside buffer:TLB)のフラッシングを回避するために使用され、これは、ASIDのサイズを、プロセスごとに固有の値を収容する可能性のあるサイズよりも小さく制限することができる。その結果、いくつかのオペレーティングシステムは、ASIDを再利用するので、各プロセスは、プロセスの期間全体を通じて固有のコンテキスト識別子を有する必要がなくなり、さらには、ハードウェアが応答するコンテキスト識別子の少なくとも一部は、各プロセスに対して固有のものとする必要がなくなる。各コンテキストに固有の第2のコンテキスト識別子を提供することによって、コンテキストを、正確に識別することができる。トリガポイント定義値と、第1のコンテキスト識別子との比較を停止させることも可能である。なお、第1および第2のコンテキスト識別子の両方によってコンテキストを識別できるようにすることによって、第1のコンテキスト識別子だけを使用するこれまでのプロセッサに対して書かれたレガシーコードを実行することができるように、処理装置を下位互換性のあるものとすることができる。
診断制御回路は、それぞれのトリガポイント制御値を格納する複数のプログラム可能な制御レジスタも有し、各トリガポイント制御値は、該トリガポイント定義値のうちの1つに関連付けられる。各トリガポイント制御値に、関連するプログラム可能な制御レジスタを提供することによって、後述するように、ユーザは、トリガポイント制御値が使用される方法を定義することができる。
第1の実施形態では、全体的な比較選択回路は、
該第1のコンテキスト識別子の現在値の全体、または
該第2のコンテキスト識別子の現在値の全体のうちの1つから形成されるべき、該状態特徴値を選択する。
本発明では、ユーザが、第1のコンテキスト識別子と比較すべきトリガポイント定義値のうちの一部、および第2のコンテキスト識別子と比較すべき他の定義値を必要とする可能性は低いものと認識する。しばしば、ユーザは、第1のコンテキスト識別子、または、例えば古いプロセッサに対して書かれたレガシーコードを処理する場合に、第2のコンテキスト識別子のいずれかの使用を望む。したがって、どのコンテキスト識別子を各トリガポイントに対して使用すべきかを、全体的に設定できるようにすることが好都合である。これは、プログラム可能な比較選択値の値を設定することによって行われる。
さらに、診断制御回路は、それぞれの仮想マシンのトリガポイント定義値を格納する第2の複数のプログラム可能な制御レジスタも有し、各仮想マシンのトリガポイント定義値は、該トリガポイント定義値の第1のサブグループおよび該トリガポイント制御値のうちのそれぞれ1つに関連付けられる。
トリガポイント定義値の第1のサブグループのうちの1つにそれぞれ関連付けられた、プログラム可能なレジスタの第2のグループを提供することによって、各トリガポイントは、コンテキスト認識およびマシン認識の両方とすることができる。仮想マシンのトリガポイント定義値は、トリガポイント定義値を格納するレジスタから別個のレジスタ内に提供されるので、仮想マシン識別子の全体、またはコンテキスト識別子のうちの1つの全体に応答して、診断動作の実行をトリガすることが可能である。
各仮想マシンのトリガポイント定義値に対して、該診断制御回路は、該診断回路をトリガして該診断動作を実行するように、該仮想マシンのトリガポイント定義値と、該仮想マシン識別子との比較に選択的に応答する。
このように、トリガポイント定義値と、状態特徴値(第1または第2のコンテキスト識別子のいずれかから選択される)との比較、および、選択された場合は、関連する仮想マシンのトリガポイント定義値と、仮想マシン識別子の現在値との比較の両方に応答して、診断動作をトリガすることができる。
各仮想マシンのトリガポイント定義値に対して、該診断制御回路が、該仮想マシンのトリガポイント定義値と、該仮想マシン識別子の該現在値との該比較に応答するかどうかを選択するように、該診断制御回路は、該仮想マシンのトリガポイント定義値に関連付けられた該トリガポイント制御値に応答する。したがって、ユーザは、トリガポイント制御値をプログラムして、仮想マシンのトリガポイント定義値と、仮想マシン識別子の現在値との比較が必要であるかどうかを選択することができる。
第2の実施形態では、該全体的な比較選択回路は、該第1のコンテキスト識別子の現在値、該第2のコンテキスト識別子の現在値、該仮想マシン識別子の現在値、およびマスキング値のうちの少なくとも1つの一部から形成されるべき、該状態特徴値を選択する。
仮想マシン識別子が比較に選択されたかどうかも全体的に設定されるので、これによって、回路のオーバーヘッドを低減することができる。仮想マシンのトリガポイント定義値を格納するための、いかなるレジスタも不要である。また、状態特徴値のうちの一部のビットがマスクされるように、マスク値が、状態特徴値の一部を形成できるようにすることによって、1つ以上の識別子の全長が、状態特徴値およびトリガポイント定義値の長さよりも短い場合であっても、1つ以上の識別子からの状態特徴値の形成を可能にする。
また、該プログラム可能な比較選択値は、複数のフィールドを有し、各フィールドは、該第1のコンテキスト識別子の該現在値、該第2のコンテキスト識別子の該現在値、該仮想マシン識別子の該現在値、および該マスキング値のうちのどれから、該状態特徴値の対応部分が選択されたのかを示す。
ユーザは、状態特徴値のうちの各部分が、状態識別子またはマスク値のうちの1つの一部から構成されるように、プログラム可能な比較選択値のフィールドをプログラムすることができる。これにより、高い柔軟度が可能となり、ユーザは、実行すべき診断動作をトリガするために、トリガポイント定義値との比較のための識別子の異なる組み合わせを設定することが可能となる。
本発明のいくつかの実施形態では、各コンテキストは、一連のプログラム命令を実行し、各プログラム命令が1つ以上の関連するメモリアドレスを有する。したがって、各コンテキストは、そのコンテキストに関連付けられた一連のプログラム命令を実行することによって、コンテキストが実行する関連する機能を有することができる。
さらに、該診断制御回路は、該診断回路をトリガして該診断動作を実行するように、該複数のトリガポイント定義値の第2のサブグループのそれぞれと、該1つ以上の関連するメモリアドレスとの比較に応答する。
トリガポイント定義値の第1のサブグループは、処理回路の現在の状態を特徴付ける状態特徴値と比較されるが、トリガポイント値の第2のサブグループは、1つ以上の関連するメモリアドレスのうちの1つと比較される。したがって、所定のメモリアドレスがアクセスされたときに、診断回路をトリガして診断動作を実行することができる。
1つ以上の関連するメモリアドレスのうちの1つは、プログラム命令が格納されたメモリ内の位置を示すアドレスとすることができる。このように、所定のメモリアドレスからプログラム命令が実行されたときに、診断回路をトリガして診断動作を実行することができる。
さらに、1つ以上の関連するメモリアドレスのうちの1つは、プログラム命令によってアクセスされたメモリ内の位置を示すアドレスとすることができる。このように、例えば、特定のメモリアドレスに対する読み込みが生じたとき、および/または所定のメモリアドレスに対する書き込みが生じたときに、診断回路をトリガして診断動作を実行することができる。
トリガポイント定義値の該第2のサブグループのうちの少なくとも1つは、メモリアドレスの所定の範囲を定義することができ、該診断制御回路は、該診断回路をトリガして該診断動作を実行するように、該1つ以上の関連するメモリアドレスのうちの該1つが、該メモリアドレスの所定の範囲内にあるかどうかに応答する。
トリガポイント定義値の該第2のサブグループのうちの少なくとも1つは、該所定のアドレス範囲の上限および下限を示す、一対のアドレス値を含むことができる。
別様には、トリガポイント定義値の該第2のサブグループのうちの少なくとも1つは、アドレス値とマスクとを含むことができ、該診断制御回路は、該アドレス値と、該マスクを使用して該1つ以上の関連するメモリアドレスのうちの該1つに、ビットごとのマスク動作を実行することによって得られたマスクされたアドレス値との比較に応答する。
該診断回路をトリガして該診断動作を実行するように、該診断制御回路が、該第1のトリガポイント定義値と、該状態特徴値との該比較、および該第2のトリガポイント定義値と、該1つ以上の関連するメモリアドレスのうちの該1つとの該比較の両方に応答するように、トリガポイント定義値の該第2のサブグループのそれぞれは、トリガポイント定義値の該第1のサブグループのうちの1つに選択的にリンクさせることができる。
このように、所定のアドレスが、トリガポイント定義値の第2のサブグループのうちの1つと一致し、状態特徴値が、第2のサブグループのトリガポイント定義値にリンクされたトリガポイント定義値の第1のサブグループのうちの1つに一致するように、メモリ内の所定のアドレスがアクセスされたときに、診断動作をトリガすることができる。したがって、関連するアドレス、コンテキスト識別子、および仮想マシン識別子のあらゆる組み合わせを使用して、診断回路をトリガして診断動作を実行することができる。
本発明の別の特徴では、トリガポイント定義値の該第2のサブグループのうちの2つ以上を、トリガポイント定義値の該第1のサブグループのうちの1つにリンクさせることができる。
その結果、第1のサブグループのコンテキスト/仮想マシン認識のトリガ値は、第2のサブグループの値を定義するアドレス認識のトリガ値ごとに定義する必要がなくなる。したがって、装置は、回路のオーバーヘッドの低減が可能である。
さらに、診断制御回路は、該トリガポイント制御値のそれぞれに応答して、該トリガポイント制御値に関連付けられた該トリガポイント定義値が、トリガポイント定義値の該第1のサブグループのメンバなのか、トリガポイント定義値の該第2のサブグループのメンバなのかを選択する。
これによって、ユーザは、どのトリガポイント定義値が第1のサブグループのメンバなのか、およびどのトリガポイント定義値が第2のサブグループのメンバなのかを選択することができる。これは、より大きな柔軟度をユーザに提供する。各コンテキスト/仮想マシン認識のトリガポイントは、それにリンクされた複数のアドレス認識のトリガポイントを有することができるので、概して、第2のサブグループ内のトリガポイント定義値は、第1のサブグループ内のものよりも大きいが、これは必ずしも生じるとは限らない。したがって、回路の複雑さを減じるには、プログラム可能なレジスタのうちのいくつかを、そのサブグループにそれぞれのトリガポイント定義値が属するように制限することができる。
更なる特徴では、診断制御回路は、該トリガポイント制御値のそれぞれに応答して、該トリガポイント制御値に関連付けられた該トリガポイント定義値が、該トリガポイント定義値の別の値にリンクされているかどうかを選択する。
このように、ユーザは、1つのトリガポイント定義値が別のトリガポイント定義値にリンクするように選択することができる。別様には、例えば、処理回路の現在の状態がどのようなものであるのかに関わらず、所定のアドレスがアクセスされたときに、診断動作がトリガされるように、トリガポイント定義値の第2のサブグループのうちの1つを設定できるように、トリガポイント定義値が、他のトリガポイント定義値にリンクされないように設定することができる。
別の特徴では、トリガポイント定義値の該第2のサブグループの各トリガポイント定義値に対して、該診断制御回路は、該第2のサブグループの該トリガポイント定義値に関連付けられた、該トリガポイント制御値に応答して、該トリガポイント定義値の第1のサブグループのうちのどれが、該第2のサブグループの該トリガポイント定義値にリンクされているのかを選択する。このように、ユーザは、各サブグループのトリガポイント定義値がリンクされる方法をプログラムすることができる。
また、診断制御回路は、該トリガポイント制御値にそれぞれ応答して、該診断回路をトリガして該診断動作を、
比較の結果が一致したときに実行するのか、または
比較の結果が一致しなかったときに実行するのかを選択する。
ほとんどの場合、ユーザは、例えば、システムまたは関連するアドレスのうちの1つの現在の状態が、トリガポイント定義値と一致したときには、トリガポイントが、診断動作をトリガすることを望むものと予想される。なお、コンテキスト識別値、または関連するアドレスのうちの1つがトリガポイント定義値と一致しなかったときに、実行すべき診断動作をトリガするトリガポイントを、ユーザが設定できるようにすることも可能である。例えば、これは、ユーザが、システムに、1つのアドレスを除く所定のコンテキスト内の全てのアドレスに対する診断動作をトリガすることを望んだ場合に、特に有用となる。比較の結果が不一致であったときに、診断動作をトリガすることをユーザが選択できなかった場合、本実施例では、ユーザは、診断動作が望まれないもの以外のアドレスのそれぞれに対して、トリガポイント定義値を設定しなければならない。これには、より大きな回路リソースが必要である。比較の結果が不一致であったときに、診断動作がトリガされるようにすることで、この問題に対処する。
また、該比較の結果は、仮想マシン識別子における不一致とすることができる。
更なる実施形態によれば、本発明は、データを処理するための装置であって、
処理動作を行うための、およびメモリにアクセスするための処理手段であって、該処理手段は、複数の状態識別子のうちの少なくとも1つによってそれぞれ識別された複数の状態のうちの1つにおいて動作する処理手段と、
診断動作をその上で実行するように該処理手段に連結された診断手段と、
該処理手段および該診断手段に連結され、それぞれのトリガポイント定義値を格納する複数のプログラム可能なレジスタを有する診断制御手段であって、該診断制御手段は、該診断手段をトリガして該診断動作を実行するように、該複数のトリガポイント定義値の第1のサブグループのそれぞれと、該複数の状態識別子のうちの少なくとも1つの少なくとも一部を形成する、状態特徴値の現在値とを比較する診断制御手段と、
プログラム可能な比較選択値に応答して、該複数の状態識別子の一部が該状態特徴値を形成する、トリガポイント定義値の該第1のサブグループの全てを選択する、全体的な比較選択手段とを備える、装置を提供する。
別の実施形態によれば、本発明は、データを処理するための方法であって、
複数の状態識別子のうちの少なくとも1つによってそれぞれ定義された複数の状態のうちの1つにおいて動作する処理回路使用して、処理動作およびメモリへのアクセスを実行するステップと、
該処理回路に連結された診断回路を使用して、該処理回路上で診断動作を実行するステップと、
複数のトリガポイント定義値の第1のサブグループのそれぞれと、該複数の状態識別子のうちの少なくとも1つの少なくとも一部で形成された状態特徴値の現在値との比較に応答して、該診断動作を実行するように該診断回路をトリガするステップと、
プログラム可能な比較選択値に応答して、該複数の状態識別子の一部が該状態特徴値を形成する、トリガポイント定義値の該第1のサブグループの全てを選択するステップとを含む、方法を提供する。
本発明の上述の、および他の目的、特徴、および利点は、添付図面とともに読み取られる例示的実施形態の以下の詳細な説明から明らかとなろう。
診断回路と診断制御回路とを含むデータ処理システムを示す概略図である。 診断回路をトリガして診断動作を行うための診断制御回路を示す概略図である。 ブレークポイント制御レジスタのタイプフィールドの可能な意味を示す図である。 全体的な比較選択回路の第1の例示的な一実施形態を示す概略図である。 第1の例示的な一実施形態のブレークポイント制御レジスタのタイプフィールドの可能な意味を示す図である。 全体的な比較選択回路の第2の例示的な一実施形態を示す概略図である。 比較選択値CSV2がどのように第2の例示的な一実施形態内に使用されるかを示す図である。 組み合わせて、第2の例示的な一実施形態の状態特徴値を形成することができる、識別子の組み合わせのいくつかの例を示す図である。
図1は、プロセッサコア2とキャッシュメモリ4とを含むデータ処理システム1を概略的に示す図である。データ処理システム1は、メインメモリ6に連結される。データ処理システム1は、プロセッサコア2上で診断動作を実行するための診断回路8も含む。データ処理システム1内には、診断回路を制御するための、診断回路8に連結された診断制御回路10も含まれる。診断制御回路10は、プログラム可能な一連のレジスタ12を有する。本技術分野の当業者は、実際には、データ処理システム1は、一般的に、異なる機能を実行する多数の更なる回路要素を含むが、簡潔にするために、図1にはこれらが示されていないものと理解されよう。
プロセッサコア2は、それ自体の機能を、または他のマシンの機能を複製するように、仮想マシンとして機能するようにプログラムしてもよい。各仮想マシンは、8ビット仮想マシン識別子(virtual machine identifier:VMID)によって識別される。プロセッサコア2が現在エミュレートしている仮想マシンのVMIDは、データ処理システム1内の8ビットレジスタ(VMIDR)内に格納することができる。
仮想マシンごとに、プロセッサコア2は、コンテキストとして知られている複数の状態で動作することができる。各コンテキストは、順々に実行される一連のプログラム命令に関連付けられ、また、32ビットコンテキスト識別子(CONTEXTID)によって識別される。プロセッサコア2が現在機能しているコンテキストのコンテキストIDは、32ビットレジスタ(CONTEXTIDR)内に格納される。仮想アドレス指定を使用したシステムでは、異なるコンテキストが、仮想アドレス空間を共有する。コンテキストIDの最下位8ビットは、アプリケーション空間識別子(ASID)タグとしてプロセッサによって使用される。ASIDは、例えば、変換索引バッファのエントリのために使用してもよい。
いくつかのオペレーティングシステムでは、ASID値は再利用され、したがって、コンテキストの存続期間中には、複数の異なるASID値を有することができ、各ASID値は、単一のコンテキストに固有とはなり得ない。この理由から、各コンテキストに固有であるデバッグ固有の識別子(DBGUID)が提供される。これは、いかなる多重定義手段も無い32ビット値である。プロセッサコア2が現在機能しているコンテキストのDBGUIDは、32ビットレジスタ(DBGUIDR)内に格納される。オペレーティングシステムおよび診断制御回路10は、このレジスタのあらゆる好適な値への設定において協働してもよい。
複数の状態識別子(VMID、CONTEXTID/ASIDおよびDBGUID)を各仮想マシンおよび各コンテキストに提供することによって、プロセッサコア2の異なる状態を識別することができる。したがって、プロセッサコア2は、異なる仮想マシンおよび/またはコンテキスト内の同じ仮想アドレスで、データ同士を区別することができる。この1つの用途は、仮想的にアドレス指定を行った変換索引バッファが、コンテキストスイッチまたは仮想マシンスイッチがあるたびにフラッシュされないようにすることである。当業者は、他の識別子を使用して、システムの状態(例、スレッドID)を記述することもできると理解されよう。
診断回路8は、種々の診断動作を実行して、プロセッサコア2による一連のプログラム命令の実行を分析できるようにすることができる。これらの動作には、例えば、デバッグモードに入るためのプロセッサコア2のトリガ、トレースモジュール11のオン/オフ、トレースデータの内部または外部トレースデバイスへの出力、またはソフトウェア例外のトリガが挙げられる。しかし、他の診断動作も可能であると理解されよう。
所定のイベントが生じたときに、診断制御回路10を使用して、診断回路8をトリガして診断動作を実行する。診断制御回路10のプログラム可能なレジスタ12は、ユーザによってプログラムして、診断動作をトリガする所定のイベントを定義してもよい。
図2は、診断制御回路10をさらに詳細に概略的に示す図である。診断制御回路10のプログラム可能なレジスタ12は、対で理論的に構成され、各対は、ブレークポイントまたはウォッチポイントを表す。簡潔にするため、以降、レジスタの各対をブレークポイントと称する。しかし、当業者は、各対は、ウォッチポイントも表し得るものと理解されよう。各対内の1つのレジスタBVR0、BVR1、BVR5は、ブレークポイント値レジスタと呼ばれ、所定のブレークポイント値を格納する。各対内の他のレジスタは、ブレークポイント制御レジスタBCR0、BCR1、BCR5と呼ばれ、各ブレークポイントの特性の定義に使用される。
ブレークポイントは、異なるタイプのものとしてもよい。ブレークポイントの第1のサブグループの場合、ブレークポイント値レジスタBVR5は、システムの所定のコンテキスト状態を定義するデバッグコンテキスト値を含む。これらのブレークポイントは、状態認識ブレークポイントである。ブレークポイント値レジスタ内に格納された値は、比較器20−5を使用して状態特徴値SCVと比較される。状態特徴値SCVは、システムの状態を表す値である。比較器20−5は、ブレークポイント値レジスタ内に格納されたデータが、状態特徴値と一致したかどうかに対応する結果を出力する。
ブレークポイントの第2のサブグループの場合、ブレークポイント値レジスタBVR0、BVR1は、メモリ内の所定の位置のアドレスAddress0、Address1を含む。これらのブレークポイントは、アドレス認識ブレークポイントである。ブレークポイント値レジスタ内に格納された値は、比較器20−0、20−1を使用して、現在のプログラム命令アドレスIADDRと比較される。比較器20−0、20−1は、ブレークポイント値レジスタ内に格納されたデータが、プログラム命令アドレスと一致したかどうかに対応する結果を出力する。ウォッチポイントの場合、ブレークポイント値レジスタ内に格納された値は、現在のプログラム命令によってアクセスされたメモリ内の位置を示すアドレスと比較してもよい。
いくつかの実施形態では、アドレス認識ブレークポイントのブレークポイント値レジスタが、メモリアドレスの所定の範囲を定義することが可能である。したがって、診断動作は、所定の範囲内のアドレスにアクセスされたときにトリガすることができる。この範囲を定義する複数の方法が存在する。ブレークポイント値レジスタは、それぞれアドレス範囲の上限および下限を示す一対のアドレス値を含むことが可能である。別様には、ブレークポイント値レジスタは、アドレス値およびマスクを含むことが可能である。次いで、ブレークポイントは、比較器が、アクセスされたメモリアドレスをアドレス値と比較する前に、該メモリアドレス上でビットごとのマスク動作を実行するように構成される。当業者は、マスクは、各ビットがアクセスされたアドレス内のビットに対応するビットごとのマスクとして、またはマスク値の最上位ビットインデックスを符号化する適正フィールドとして定義することが可能であると理解されよう。
簡潔にするため、以降の説明では、アドレス認識ブレークポイントは、ブレークポイント値レジスタが単一のアドレス値を含むタイプのものとなる。しかし、それらは、上述のように、メモリアドレスの範囲も同様に定義することが可能であると理解されよう。
各ブレークポイントは、関連する比較器20−0、20−1、20−5の出力に応答し、また関連するブレークポイント制御レジスタBCR0、BCR1、BCR5に応答する、タイプロジック22−0、22−1、22−5に関連付けられる。タイプロジック22−0、22−1、22−5は、ブレークポイント制御レジスタによって定義されたときのブレークポイントの特性に基づき、比較器20−0、20−1、20−5から出力された結果が一致に対応するのか不一致に対応するのかに対応する結果を出力する。タイプロジック22−0、22−1、22−5によって出力された結果は、診断制御回路10によって使用され、診断回路8をトリガして診断動作を実行するかどうかを選択する。
アドレス認識ブレークポイントは、状態認識ブレークポイントにリンクしてもよい。図2では、例えば、1つのアドレス認識ブレークポイントBVR0、BCR0は、状態認識ブレークポイントBVR5、BCR5にリンクされる。なお、2つ以上のアドレス認識ブレークポイントを、同じ状態認識ブレークポイントにリンクすることが可能である。
本実施例では、状態認識ブレークポイントBVR5、BCR5が、そこにリンクされた1つ以上のアドレス認識ブレークポイント(すなわち、アドレス認識ブレークポイントBVR0、BCR0)を有するので、状態認識ブレークポイントに関連付けられたタイプロジック22−5は、診断回路8をトリガするように結果を出力しない。代わりに、タイプロジック22−5の出力は、状態認識ブレークポイントにリンクされた1つ以上のアドレス認識ブレークポイントのそれぞれに関連付けられた、タイプロジック22−0にルーティングされる。タイプロジック22−0は、次いで、比較器20−0の結果、およびタイプロジック22−5からルーティングされた結果に基づいて結果を出力する。このように、現在のプログラム命令に関連付けられたアドレスが、所定のアドレスと一致するかどうか、およびシステムの現在の状態が所定のデバッグコンテキスト値と一致するかどうかに基づいて、診断回路8をトリガして診断動作を実行してもよい。例えば、ブレークポイントは、所定のコンテキスト内の所定のアドレスで命令が実行されたときに、診断回路8をトリガするように構成することができる。
各ブレークポイント制御レジスタBCR0、BCR1、BCR5は、関連するタイプロジック22−0、22−1、22−5が、比較器20−0、20−1、20−5の結果をどのように使用するかを制御する。ブレークポイント制御レジスタの3つのビット(例、ビット22乃至20)は、タイプフィールドとして使用される。ブレークポイント制御レジスタの4つのビット(例、ビット19乃至16)は、リンクされたブレークポイント番号フィールドとして使用される。タイプフィールドの値、およびリンクされたブレークポイント番号フィールドは、タイプロジック22−0、22−1、22−5に渡され、タイプロジックの動作の制御に使用される。
ブレークポイント制御レジスタBCR0、BCR1、BCR5のビット22を使用して、比較の結果が一致であっとき、または比較の結果が不一致であったときに、診断動作をトリガするかどうかを選択する。このビットは、不一致が生じたときに診断動作をトリガする場合は1に設定され、一致が生じたときに診断動作をトリガする場合は0に設定される。いくつかの実施形態では、不一致機能は、アドレス認識ブレークポイントに対してのみサポートされる。この場合、状態認識ブレークポイントに対しては、ビット22を1に設定してはならない、そしてウォッチポイントに対しては、ビット22は0に固定される。必要に応じて、状態認識ブレークポイントおよびウォッチポイントの両方に対して不一致機能をサポートすることが可能であると理解されよう。
ブレークポイント制御レジスタBCR0、BCR1、BCR5のビット21を使用して、ブレークポイントが、アドレス認識ブレークポイントなのか、状態認識ブレークポイントなのかを選択する。このビットは、ブレークポイント値レジスタが、状態特徴値と比較される所定のデバッグコンテキスト値を格納するように、状態認識ブレークポイントに対して1に設定される。このビットは、ブレークポイント値レジスタが、(ブレークポイントに対して)現在のプログラム命令のアドレスのいずれかと比較される所定のアドレス値を格納するように、アドレス認識ブレークポイントに対して0に設定される。個々のブレークポイントが、状態認識ブレークポイントとして選択されることをサポートしない場合は、このビットは0に固定される。ウォッチポイントに対しては、すなわち、ウォッチポイント値レジスタが、現在のプログラム命令によってアクセスされたアドレスを含む場合は、このビットは0に固定される。
ブレークポイント制御レジスタBCR0、BCR1、BCR5のビット20を使用して、ブレークポイントがリンクされたかどうかを設定する。すなわち、アドレス認識ブレークポイントまたはウォッチポイントに対しては、第2の状態認識ブレークポイントにブレークポイントがリンクされたのか、ウォッチポイントがリンクされたのかを設定し、状態認識ブレークポイントに対しては、1つ以上のアドレス認識ブレークポイントまたはウォッチポイントによって、ブレークポイントがリンクされたかどうかを設定する。このように、ブレークポイントは、アドレスの比較およびデバッグコンテキスト比較の両方を必要とするように設定することができる。ブレークポイントがリンクされている場合、このビットは1に設定される。ブレークポイントがリンクされていない場合、このビットは0に設定される。
図3は、ブレークポイント制御レジスタのタイプフィールドの可能な意味を示す図である。以下の項では、xはあらゆるアドレス認識ブレークポイントのブレークポイント番号を表し、yはあらゆる状態認識ブレークポイントのブレークポイント番号を表す。タイプフィールドの可能な値は、以下の通りである。
●0b000−リンクを外された命令の仮想アドレスの一致
この場合、このアドレス認識ブレークポイントのタイプロジック22−xは、ブレークポイント値レジスタ内に格納された値と、現在のプログラム命令アドレスとの、比較器20−xによって実行された比較が一致であった場合に、診断動作をトリガする結果を出力する。
●0b001−リンクされた命令の仮想アドレスの一致
この場合、このアドレス認識ブレークポイントのタイプロジック22−xは、アドレス認識ブレークポイントにリンクされた状態認識ブレークポイントのタイプロジック22−yから結果を受信する。アドレス認識ブレークポイントのタイプロジック22−xは、比較器20−xによって実行されたアドレスの比較が一致であり、リンクされた状態認識ブレークポイントによって実行された比較の結果が一致であった場合に、診断動作をトリガする結果を出力する。
●0b010−リンクを外されたデバッグコンテキストの一致
この場合、この状態認識ブレークポイントのタイプロジック22−yは、ブレークポイント値レジスタ内に格納された値と、状態特徴値との、比較器20−yによって実行された比較が一致であった場合に、診断動作をトリガさせる結果を出力する。
●0b011−リンクされたデバッグコンテキストの一致
この場合、この状態認識ブレークポイントのタイプロジック22−yは、ブレークポイント値レジスタ内に格納された値と、状態特徴値との、比較器22−yによって実行された比較の結果を、状態認識ブレークポイントにリンクされたアドレス認識ブレークポイントのタイプロジック22−xにルーティングする。
●0b100−リンクを外された命令の仮想アドレスの不一致
この場合、このアドレス認識ブレークポイントのタイプロジック22−xは、ブレークポイント値レジスタ内に格納された値と、現在のプログラムアドレス命令との、比較器20−xによって実行された比較が不一致であった場合に、診断動作をトリガさせる結果を出力する。
●0b101−リンクされた命令の仮想アドレスの不一致
この場合、このアドレス認識ブレークポイントのタイプロジック22−xは、アドレス認識ブレークポイントにリンクされた状態認識ブレークポイントの、タイプロジック22−yから結果を受信する。アドレス認識ブレークポイントのタイプロジック22−xは、比較器20−xによって実行されたアドレスの比較が不一致であり、リンクされた状態認識ブレークポイントによって実行された比較の結果が一致であった場合に、診断動作をトリガする結果を出力する。
●0b110−リンクを外されたデバッグコンテキストの不一致−予約済
●0b111−リンクされたデバッグコンテキストの不一致−予約済
これらの最後の2つの場合は、いくつかの実施形態ではサポートされない。しかし、これらは必要に応じてサポートすることができるものと理解されよう。
リンクされたブレークポイント番号フィールドを使用して、どの状態認識ブレークポイントがアドレス認識ブレークポイントにリンクされたのかを示す。状態認識ブレークポイントに対して、リンクされたブレークポイント番号フィールドは、常に0b0000に設定される。状態認識ブレークポイントにリンクされていないアドレス認識ブレークポイントに対して、リンクされたブレークポイント番号フィールドは、0b0000に設定される。状態認識ブレークポイントにリンクされたアドレス認識ブレークポイントに対して、リンクされたブレークポイント番号フィールドは、アドレス認識ブレークポイントにリンクされた状態認識ブレークポイント番号を示す値を含む。例えば、図2において、ブレークポイントBVR0、BCR0は、ブレークポイントBVR5、BCR5にリンクされ、そのようにリンクされたBCR0のブレークポイント番号フィールドは0b0101に設定される。
このように、ブレークポイント制御レジスタの設定ビットによって、ユーザは、異なるタイプのブレークポイントを設定することができる。
状態認識ブレークポイントに対して、ブレークポイント値レジスタBVR5内に格納されたデバッグコンテキスト値は、状態特徴値SCVと比較される(図2を参照のこと)。状態特徴値は、全体的な比較選択回路26によって、全ての状態認識ブレークポイントに設定される。これによって、ユーザは、どの状態識別子を使用して状態特徴値を形成するのかを設定することができる。どの状態識別子を使用するのかを全体的に選択することによって、比較選択回路がブレークポイントごとに提供された場合よりも、この手段は、必要となる回路リソースが少ない。
全体的な比較選択回路26の例示的な一実施形態を、図4を参照して記述する。図2に示された特徴と同じ図4の特徴は、同じ参照番号で識別される。
本実施形態では、全体的な比較選択回路26は、比較選択レジスタCSELR内に格納された、プログラム可能な比較選択値CSVの値に応答する、セレクタ40を有する。比較選択値の値が1である場合は、セレクタ40は、DBGUIDR内に格納されたDBGUIDの値を出力する。比較選択値の値が0である場合は、セレクタ40は、CONTEXTIDR内に格納されたCONTEXTIDの値を出力する。セレクタ40によって出力された値は、状態認識ブレークポイントのブレークポイント値レジスタBVR5内に格納されたデバッグコンテキスト値と比較するための、状態特徴値として使用される。このように、ユーザは、CONTEXTIDおよびDBGUIDのどちらを使用してコンテキストを識別すべきかを、全体的に選択してもよい。
状態認識ブレークポイントが、仮想マシン認識およびコンテキスト認識となるために、追加的なブレークポイント値レジスタBXVR5および追加的な比較器44−5が、各状態認識ブレークポイントに提供される。追加的なブレークポイント値レジスタBXVR5は、診断動作がそれに対してトリガされるVMIDを表す、所定の値を格納する。比較器44−5は、追加的なブレークポイント値レジスタと、現在のVMIDを表すVMIDR(プロセッサがそのように機能するように現在プログラムされている仮想マシンのVMID)内に格納された値とを比較する。比較器44−5は、追加的なブレークポイント値レジスタBXVR5内に格納された値が現在のVMIDと一致したか、または一致しなかったかを示す結果を出力する。タイプロジックは、比較器44−5の出力に選択的に応答する。追加的なブレークポイント値レジスタおよび比較器を提供することによって、本手法は、VMIDの全ての値およびコンテキスト識別子のうちの1つと、所定の値との比較に応答して、診断動作をトリガするブレークポイントを設定できるようにする。
ブレークポイント制御レジスタでは、追加的なビット(例、ビット23)を使用して、関連するタイプロジックが、VMIDの比較の結果に応答するかどうかを設定する。このビットが1に設定されたときには、タイプロジックは、比較器44−5の出力に応答する。このビットが0に設定されたときには、タイプロジックは、比較器44−5の出力に応答しない。
図5は、本発明の本実施形態における、ブレークポイント制御レジスタのタイプフィールドの可能な意味を示す図である。値0b0000乃至0b0111は、図3を参照して説明した値0b000乃至0b111と同じ意味である。タイプ0b0100乃至0b0101の場合、BXVR5内の値および現在のVMIDは無視される。
●0b1000−リンクを外されたVMIDの一致
この場合、この状態認識ブレークポイントのタイプロジック22−yは、追加的なブレークポイント値レジスタBXVRy内に格納された値と、現在のVMIDとの、比較器44−yによって実行された比較が一致であった場合に、診断動作をトリガする結果を出力する。ブレークポイント値レジスタBVR5内に格納されたデバッグコンテキスト値は無視される。
●0b1001−リンクされたVMIDの一致
この場合、この状態認識ブレークポイントのタイプロジック22−yは、追加的なブレークポイント値レジスタ内に格納された値と、現在のVMIDとの、比較器44−yによって実行された比較の結果を、状態認識ブレークポイントにリンクされたアドレス認識ブレークポイントのタイプロジック22−xにルーティングする。
●0b1010−リンクを外されたデバッグコンテキストおよびVMIDの一致
この場合、この状態認識ブレークポイントのタイプロジック22−yは、ブレークポイント値レジスタBVRy内に格納されたデバッグコンテキスト値と、状態特徴値SCVとの、比較器20−yによって実行された比較が一致であり、追加的なブレークポイント値レジスタBXVRyと、現在のVMIDとの、比較器44−yによって実行された比較が一致であった場合に、診断動作をトリガする結果を出力する。
●0b1011−リンクされたデバッグコンテキストおよびVMIDの一致
この場合、この状態認識ブレークポイントのタイプロジック22−yは、比較器20−yおよび44−yによって実行された比較の結果を、状態認識ブレークポイントにリンクされたアドレス認識ブレークポイントのタイプロジック22−xにルーティングする。
●0b1100−リンクを外されたVMIDの不一致−予約済
●0b1101−リンクされたVMIDの不一致−予約済
●0b1110−リンクを外されたデバッグコンテキストおよびVMIDの不一致−予約済
●0b1111−リンクされたデバッグコンテキストおよびVMIDの不一致−予約済
最後の4つの場合は、いくつかの実施形態ではサポートされない。しかし、必要に応じてこれらの場合をサポートすることが可能である。
したがって、適切な方法で、ブレークポイント制御レジスタのタイプフィールドのビットを設定することによって、命令アドレス、VMID、およびCONTEXTID/DBGUIDのあらゆる組み合わせに基づいて実行すべき診断動作をトリガできるように、ブレークポイントを設定することができる。VMIDおよびCONTEXTID/DBGUIDの全ての値は、ブレークポイント値レジスタ内に格納された値と比較してもよい。
別の実施形態では、全体的な比較選択回路26は、図6に概略的に示されるように構成される。図2に示された特徴と同じ図6の特徴は、同じ参照番号で識別される。上述の実施形態とは異なり、いかなる追加的なブレークポイント値レジスタも存在しない。図2のように、タイプフィールドは、3つのビットだけで構成される。タイプフィールドの可能な値の意味は、図3と同様である。
本実施形態では、全体的な比較選択回路26は、比較選択レジスタCSELR2内に格納された、プログラム可能な比較選択値CSV2の値に応答する、セレクタ60を有する。状態特徴値SCVの各部に対して、セレクタ60は、CONTEXTIDR(すなわち、現在のCONTEXTID)内に格納された値、DBGUIDR(現在のDBGUID)内に格納された値、VMIDR(現在のVMID)内に格納された値、またはマスク値0x00000000のうちの1つからビットを選択する。この実施形態の比較選択値CSV2は、複数のフィールド64から構成される。各フィールド64を使用して、どのレジスタから状態特徴値SCVの対応する部分を取り込むのか、またはマスク値から対応する部分を取り込むべきかどうかを選択する。
図7は、比較選択値CSV2がどのように使用されるのかを示す表である。比較選択値CSV2のビット[31:16]は、予約済である。セレクタ60は、これらのビットに応答しない。比較選択値CSV2のビット[15:12]は、どのレジスタから状態特徴値SCVのビット[31:24]が取り込まれたのかを示す。比較選択値CSV2のビット[11:4]は、どのレジスタから状態特徴値SCVのビット[23:8]が取り込まれたのかを示す。比較選択値CSV2のビット[3:0]は、どのレジスタから状態特徴値SCVのビット[7:0]が取り込まれたのかを示す。
このように、識別子の異なる組み合わせの一部を組み合わせて、状態特徴値を形成することができる。図8は、いくつかの例示的組み合わせを要約した図である。比較選択値CSV2が0x0000に設定された場合、ブレークポイント値レジスタBVR5内に格納されたデバッグコンテキスト値は、CONTEXTIDのみと比較される。比較選択値CSV2が0x2222に設定された場合、DBGUIDRのみとの比較が実行される。比較選択値CSV2が0x1FFFに設定された場合、VMIDのみとの比較が実行される。比較選択値CSV2が0x1220に設定された場合、VMID、DBGUID、およびASID(ASIDは、CONTEXTIDの最下位8ビットで形成される)の一部との比較が実行される。比較選択値CSV2が0xFFF0に設定された場合、ASIDのみとの比較が実行される。マスク値を使用することにより、VMIDのみ、またはASIDのみとの比較が可能である。
本実施形態を使用することで、ユーザは、比較選択値CSV2をプログラムして、識別子の組み合わせを使用して診断動作をトリガする全てのブレークポイントに対して全体的に選択することができる。これは、データ処理システムには回路リソースがあまり必要ではないことを意味する。
本発明の例示的実施形態を図面で参照しながら本願明細書に詳述したが、本発明は、それらの厳密な実施形態に限定されるものではなく、また、種々の変更および修正は、添付の特許請求の範囲に記載の本発明の範囲および趣旨から逸脱することなく、当業者によって行うことができるものと理解されたい。

Claims (40)

  1. 処理動作を実行し、メモリにアクセスするように構成された処理回路であって、前記処理回路は、仮想マシン識別子によってそれぞれ識別された複数の仮想マシンのうちの1つとして機能するようにプログラム可能であり、各前記仮想マシンは、コンテキスト識別子によってそれぞれ識別された複数のコンテキストのうちの1つにおいて機能し、各前記コンテキストは、一連のプログラム命令を実行し、各前記プログラム命令は、1つ以上の関連するメモリアドレスを有する前記処理回路と、
    診断動作をその上で実行するように前記処理回路に連結された診断回路と、
    前記処理回路および前記診断回路に連結され、前記仮想マシン識別子、前記コンテキスト識別子、および前記1つ以上の関連するメモリアドレスのうちの少なくとも1つの現在値に応答して、前記診断回路をトリガして前記診断動作を実行する診断制御回路と、
    を備えることを特徴とするデータを処理するための装置。
  2. 前記診断回路は、
    デバッグモードに入るように前記処理回路をトリガするステップ、
    トレースモジュールのオン/オフを行うステップ、
    トレースデータを内部トレースデバイスに出力するステップ、
    トレースデータを外部トレースデバイスに出力するステップ、および
    ソフトウェア例外をトリガするステップ、のうちの1つ以上を含む診断動作を実行することを特徴とする請求項1に記載の装置。
  3. 前記1つ以上の関連するメモリアドレスのうちの少なくとも1つは、前記プログラム命令が格納されたメモリ内の位置を示すアドレスであることを特徴とする請求項1に記載の装置。
  4. 前記1つ以上の関連するメモリアドレスのうちの少なくとも1つは、前記プログラム命令によってアクセスされたメモリ内の位置を示すアドレスであることを特徴とする請求項1に記載の装置。
  5. 前記診断制御回路は、トリガポイント定義値を格納する複数のプログラム可能なレジスタを有し、前記診断制御回路は、前記複数のトリガポイント定義値と、前記仮想マシン識別子、前記コンテキスト識別子、および前記1つ以上の関連するメモリアドレスのうちの前記少なくとも1つの現在値との比較に応答して、前記診断動作を実行するように、前記診断回路をトリガすることを特徴とする請求項1に記載の装置。
  6. 処理動作を行うための、およびメモリにアクセスするための処理手段であって、前記処理手段は、仮想マシン識別子によってそれぞれ識別された複数の仮想マシンのうちの1つとして機能するようにプログラム可能であり、各前記仮想マシンは、コンテキスト識別子によってそれぞれ識別された複数のコンテキストのうちの1つにおいて機能し、各前記コンテキストは、一連のプログラム命令を実行し、各前記プログラム命令は、1つ以上の関連するメモリアドレスを有する処理手段と、
    診断動作をその上で実行するように前記処理手段に連結された診断手段と、
    前記処理手段および前記診断手段に連結され、前記仮想マシン識別子の現在値に対応する診断制御手段であって、前記コンテキスト識別子および前記1つ以上の関連するメモリアドレスのうちの少なくとも1つは、前記診断手段をトリガして前記診断動作を実行するためのものである、診断制御手段と、
    を備えることを特徴とするデータを処理するための装置。
  7. 仮想マシン識別子によってそれぞれ識別された複数の仮想マシンのうちの1つとして機能するようにプログラム可能な処理回路を使用して、処理動作およびメモリへのアクセスを実行するステップであって、各前記仮想マシンは、コンテキスト識別子によってそれぞれ識別された複数のコンテキストのうちの1つにおいて機能し、各前記コンテキストは、一連のプログラム命令を実行し、各前記プログラム命令は、1つ以上の関連するメモリアドレスを有するステップと、
    前記処理回路に連結された診断回路を使用して診断動作を実行するステップと、
    前記仮想マシン識別子の現在値、前記コンテキスト識別子、および前記1つ以上の関連するメモリアドレスのうちの少なくとも1つの現在値に応答して、前記診断動作を実行するように、前記診断回路をトリガするステップと、
    を含むことを特徴とするデータを処理するための方法。
  8. 前記診断動作は、
    デバッグモードに入るように前記処理回路をトリガするステップ、
    トレースモジュールのオン/オフを行うステップ、
    トレースデータを内部トレースデバイスに出力するステップ、
    トレースデータを外部デバイスに出力するステップ、および
    ソフトウェア例外をトリガするステップ、のうちの1つ以上を含むことを特徴とする請求項7に記載のデータを処理するための方法。
  9. 前記1つ以上の関連するメモリアドレスのうちの1つは、前記プログラム命令が格納されたメモリ内の位置を示すアドレスであることを特徴とする請求項7に記載のデータを処理するための方法。
  10. 前記1つ以上の関連するメモリアドレスのうちの1つは、前記プログラム命令によってアクセスされたメモリ内の位置を示すアドレスであることを特徴とする請求項7に記載のデータを処理するための方法。
  11. 前記トリガするステップは、複数のトリガポイント定義値と、前記仮想マシン識別子、前記コンテキスト識別子、および前記1つ以上の関連するメモリアドレスのうちの前記少なくとも1つの現在値との比較に応答して、前記診断動作を実行するように、前記診断回路をトリガすることを特徴とする請求項7に記載のデータを処理するための方法。
  12. 処理動作を実行し、メモリにアクセスするように構成された処理回路であって、前記処理回路は、複数の状態識別子のうちの少なくとも1つによってそれぞれ識別された複数の状態のうちの1つにおいて動作する前記処理回路と、
    診断動作をその上で実行するように前記処理回路に連結された診断回路と、
    前記処理回路および前記診断回路に連結され、それぞれがトリガポイント定義値を格納する複数のプログラム可能なレジスタを有する診断制御回路であって、前記診断制御回路は、前記診断回路をトリガして前記診断動作を実行するように、前記複数のトリガポイント定義値の第1のサブグループのそれぞれと、前記複数の状態識別子のうちの少なくとも1つの少なくとも一部で形成された、状態特徴値の現在値との比較に応答する前記診断制御回路と、
    プログラム可能な比較選択値に応答して、前記複数の状態識別子の一部が前記状態特徴値を形成する、前記トリガポイント定義値の前記第1のサブグループの全てを選択する、全体的な比較選択回路と、
    を備えることを特徴とするデータを処理するための装置。
  13. 前記診断回路は、
    デバッグモードに入るように前記処理回路をトリガするステップ、
    トレースモジュールのオン/オフを行うステップ、
    トレースデータを内部トレースデバイスに出力するステップ、
    トレースデータを外部トレースデバイスに出力するステップ、および
    ソフトウェア例外をトリガするステップ、のうちの1つ以上を含む診断動作を実行することを特徴とする請求項12に記載の装置。
  14. 前記処理回路は、仮想マシン識別子によってそれぞれ定義された複数の仮想マシンのうちの1つとして機能するようにプログラム可能であり、各前記仮想マシンは、少なくとも1つのコンテキスト識別子によってそれぞれ識別された、複数のコンテキストのうちの1つにおいて機能することを特徴とする請求項12に記載の装置。
  15. 前記複数の状態識別子は、前記仮想マシン識別子および前記少なくとも1つのコンテキスト識別子を含み、各状態は、前記仮想マシン識別子および前記少なくとも1つのコンテキスト識別子の組み合わせによって識別されることを特徴とする請求項14に記載の装置。
  16. 前記複数のコンテキストのそれぞれは、第1のコンテキスト識別子および第2のコンテキスト識別子のうちの少なくとも1つによって識別されることを特徴とする請求項14に記載の装置。
  17. 前記第2のコンテキスト識別子は、各前記コンテキストに固有であることを特徴とする請求項16に記載の装置。
  18. 前記診断制御回路は、それぞれのトリガポイント制御値を格納する複数のプログラム可能な制御レジスタも有し、各前記トリガポイント制御値は、前記トリガポイント定義値のうちの1つに関連付けられることを特徴とする請求項12に記載の装置。
  19. 前記全体的な比較選択回路は、
    前記第1のコンテキスト識別子の現在値の全体、または
    前記第2のコンテキスト識別子の現在値の全体のうちの1つから形成されるべき、前記状態特徴値を選択することを特徴とする請求項18に記載の装置。
  20. 前記診断制御回路は、それぞれの仮想マシンの前記トリガポイント定義値を格納する第2の複数のプログラム可能な制御レジスタも有し、各前記仮想マシンの前記トリガポイント定義値は、前記トリガポイント定義値の前記第1のサブグループおよび前記トリガポイント制御値のうちのそれぞれ1つに関連付けられることを特徴とする請求項19に記載の装置。
  21. 各前記仮想マシンの前記トリガポイント定義値に対して、前記診断制御回路は、前記診断回路をトリガして前記診断動作を実行するように、前記仮想マシンの前記トリガポイント定義値と、前記仮想マシン識別子との現在値との比較に選択的に応答することを特徴とする請求項20に記載の装置。
  22. 各前記仮想マシンの前記トリガポイント定義値に対して、前記診断制御回路が、前記仮想マシンの前記トリガポイント定義値と、前記仮想マシン識別子の前記現在値との前記比較に応答するかどうかを選択するように、前記診断制御回路は、前記仮想マシンの前記トリガポイント定義値に関連付けられた前記トリガポイント制御値に応答することを特徴とする請求項21に記載の装置。
  23. 前記全体的な比較選択回路は、前記第1のコンテキスト識別子の現在値、前記第2のコンテキスト識別子の現在値、前記仮想マシン識別子の現在値、およびマスキング値のうちの少なくとも1つの一部から形成されるべき、前記状態特徴値を選択することを特徴とする請求項18に記載の装置。
  24. 前記プログラム可能な比較選択値は、複数のフィールドを有し、各前記フィールドは、前記第1のコンテキスト識別子の前記現在値、前記第2のコンテキスト識別子の前記現在値、前記仮想マシン識別子の前記現在値、および前記状態特徴値の対応する部分のうちのどれから、前記状態特徴値の対応部分が選択されたのかを示すことを特徴とする請求項23に記載の装置。
  25. 各コンテキストは、一連のプログラム命令を実行し、各前記プログラム命令が1つ以上の関連するメモリアドレスを有することを特徴とする請求項18に記載の装置。
  26. 前記診断制御回路は、前記診断回路をトリガして前記診断動作を実行するように、前記複数のトリガポイント定義値の第2のサブグループのそれぞれと、前記1つ以上の関連するメモリアドレスとの比較に応答することを特徴とする請求項25に記載の装置。
  27. 前記1つ以上の関連するメモリアドレスのうちの前記1つは、前記プログラム命令が格納されたメモリ内の位置を示すアドレスであることを特徴とする請求項26に記載の装置。
  28. 前記1つ以上の関連するメモリアドレスのうちの前記1つは、前記プログラム命令によってアクセスされたメモリ内の位置を示すアドレスであることを特徴とする請求項26に記載の装置。
  29. 前記トリガポイント定義値の前記第2のサブグループのうちの少なくとも1つは、メモリアドレスの所定の範囲を定義し、前記診断制御回路は、前記診断回路をトリガして前記診断動作を実行するように、前記1つ以上の関連するメモリアドレスのうちの前記1つが、前記メモリアドレスの所定の範囲内にあるかどうかに応答することを特徴とする請求項26に記載の装置。
  30. 前記トリガポイント定義値の前記第2のサブグループのうちの前記少なくとも1つは、前記所定のアドレス範囲の上限および下限を示す、一対のアドレス値を含むことを特徴とする請求項29に記載の装置。
  31. 前記トリガポイント定義値の前記第2のサブグループのうちの前記少なくとも1つは、アドレス値とマスクとを含み、前記診断制御回路は、前記アドレス値と、前記マスクを使用して前記1つ以上の関連するメモリアドレスのうちの前記1つに、ビットごとのマスク動作を実行することによって得られたマスクされたアドレス値との比較に応答することを特徴とする請求項29に記載の装置。
  32. 前記診断回路をトリガして前記診断動作を実行するように、前記診断制御回路が、前記第1のトリガポイント定義値と、前記状態特徴値との前記比較、および前記第2のトリガポイント定義値と、前記1つ以上の関連するメモリアドレスのうちの前記1つとの前記比較の両方に応答するように、前記トリガポイント定義値の前記第2のサブグループのそれぞれは、前記トリガポイント定義値の前記第1のサブグループのうちの1つに選択的にリンクされることを特徴とする請求項26に記載の装置。
  33. 前記トリガポイント定義値の前記第2のサブグループのうちの2つ以上は、前記トリガポイント定義値の前記第1のサブグループのうちの1つにリンクされることを特徴とする請求項32に記載の装置。
  34. 前記診断制御回路は、前記トリガポイント制御値のそれぞれに応答して、前記トリガポイント制御値に関連付けられた前記トリガポイント定義値が、前記トリガポイント定義値の前記第1のサブグループのメンバなのか、前記トリガポイント定義値の前記第2のサブグループのメンバなのかを選択することを特徴とする請求項26に記載の装置。
  35. 前記診断制御回路は、前記トリガポイント制御値のそれぞれに応答して、前記トリガポイント制御値に関連付けられた前記トリガポイント定義値が、前記トリガポイント定義値の別の値にリンクされているかどうかを選択することを特徴とする請求項33に記載の装置。
  36. 前記トリガポイント定義値の前記第2のサブグループの各トリガポイント定義値に対して、前記診断制御回路は、前記第2のサブグループの前記トリガポイント定義値に関連付けられた、前記トリガポイント制御値に応答して、前記トリガポイント定義値の前記第1のサブグループのうちのどれが、前記第2のサブグループの前記トリガポイント定義値にリンクされているのかを選択することを特徴とする請求項32に記載の方法。
  37. 前記診断制御回路は、前記トリガポイント制御値に応答して、前記診断回路をトリガして前記診断動作を、
    比較の結果が一致したときに実行するのか、または
    比較の結果が一致しなかったときに実行するのかを選択することを特徴とする請求項18に記載の装置。
  38. 前記比較の前記結果は、仮想マシン識別子における不一致であることを特徴とする請求項37に記載の装置。
  39. 処理動作を行うための、およびメモリにアクセスするための処理手段であって、前記処理手段は、複数の状態識別子のうちの少なくとも1つによってそれぞれ識別された複数の状態のうちの1つにおいて動作する前記処理手段と、
    診断動作をその上で実行するように前記処理手段に連結された診断手段と、
    前記処理手段および前記診断手段に連結され、それぞれのトリガポイント定義値を格納する複数のプログラム可能なレジスタを有する診断制御手段であって、前記診断制御手段は、前記診断手段をトリガして前記診断動作を実行するように、前記複数のトリガポイント定義値の第1のサブグループのそれぞれと、前記複数の状態識別子のうちの少なくとも1つの少なくとも一部を形成する、状態特徴値の現在値とを比較する前記診断制御手段と、
    プログラム可能な比較選択値に応答して、前記複数の状態識別子の一部が前記状態特徴値を形成する、前記トリガポイント定義値の前記第1のサブグループの全てを選択する、全体的な比較選択手段と、
    を備えることを特徴とするデータを処理するための装置。
  40. 複数の状態識別子のうちの少なくとも1つによってそれぞれ定義された複数の状態のうちの1つにおいて動作する処理回路を使用して、処理動作およびメモリへのアクセスを実行するステップと、
    前記処理回路に連結された診断回路を使用して、前記処理回路上で診断動作を実行するステップと、
    複数のトリガポイント定義値の第1のサブグループのそれぞれと、前記複数の状態識別子のうちの少なくとも1つの少なくとも一部で形成された状態特徴値の現在値との比較に応答して、前記診断動作を実行するように前記診断回路をトリガするステップと、
    プログラム可能な比較選択値に応答して、前記複数の状態識別子の一部が前記状態特徴値を形成する、前記トリガポイント定義値の前記第1のサブグループの全てを選択するステップと、
    を含むことを特徴とするデータを処理するための方法。
JP2009004051A 2008-01-24 2009-01-09 診断コンテキストの構成および比較 Active JP5430153B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0801338.5A GB2456813B (en) 2008-01-24 2008-01-24 Diagnostic context construction and comparison
GB0801338.5 2008-01-24

Publications (2)

Publication Number Publication Date
JP2009176297A true JP2009176297A (ja) 2009-08-06
JP5430153B2 JP5430153B2 (ja) 2014-02-26

Family

ID=39186291

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009004051A Active JP5430153B2 (ja) 2008-01-24 2009-01-09 診断コンテキストの構成および比較

Country Status (4)

Country Link
US (1) US8250411B2 (ja)
JP (1) JP5430153B2 (ja)
CN (1) CN101493792B (ja)
GB (1) GB2456813B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448910B2 (en) 2013-03-29 2016-09-20 International Business Machines Corporation Computer-implemented method, program, and tracer node for obtaining trace data relating to particular virtual machine
JP2018527657A (ja) * 2015-07-31 2018-09-20 エイアールエム リミテッド 条件付きロードの抑制
US10503512B2 (en) 2014-11-13 2019-12-10 Arm Limited Context sensitive barriers with an implicit access ordering constraint for a victim context
JP2022523787A (ja) * 2019-03-08 2022-04-26 インターナショナル・ビジネス・マシーンズ・コーポレーション セキュア仮想マシン環境におけるストレージ保護ハードウェアのテスト方法、システム、プログラム

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2456813B (en) * 2008-01-24 2012-03-07 Advanced Risc Mach Ltd Diagnostic context construction and comparison
US20140108701A1 (en) * 2010-07-16 2014-04-17 Memory Technologies Llc Memory protection unit in a virtual processing environment
US9361204B2 (en) * 2013-02-19 2016-06-07 Arm Limited Generating trace data including a lockup identifier indicating occurrence of a lockup state
KR20140125488A (ko) * 2013-04-19 2014-10-29 한국전자통신연구원 스마트 유비쿼터스 네트워크에서 상황 인지 기반 네트워크 장치 및 시스템
US9141512B2 (en) * 2013-05-21 2015-09-22 Red Hat, Inc. System and method for cluster debugging
US11126522B2 (en) 2013-06-18 2021-09-21 Nxp Usa, Inc. Method and apparatus for offloading functional data from an interconnect component
US9571304B2 (en) 2013-07-08 2017-02-14 Nicira, Inc. Reconciliation of network state across physical domains
US9760390B2 (en) 2013-07-16 2017-09-12 Empire Technology Development Llc Processor identification for virtual machines
US10209762B2 (en) 2013-09-27 2019-02-19 Nxp Usa, Inc. Selectively powered layered network and a method thereof
US20150277949A1 (en) * 2014-03-27 2015-10-01 Thiam Wah Loh Securing shared interconnect for virtual machine
US9825851B2 (en) 2015-06-27 2017-11-21 Nicira, Inc. Distributing routing information in a multi-datacenter environment
US10216616B2 (en) * 2016-07-02 2019-02-26 Intel Corporation Cooperative triggering
US10719451B2 (en) * 2017-01-13 2020-07-21 Optimum Semiconductor Technologies Inc. Variable translation-lookaside buffer (TLB) indexing
US10599555B2 (en) 2017-09-20 2020-03-24 Texas Instruments Incorporated Context-sensitive debug requests for memory access
US11777793B2 (en) 2020-04-06 2023-10-03 Vmware, Inc. Location criteria for security groups
US11088916B1 (en) 2020-04-06 2021-08-10 Vmware, Inc. Parsing logical network definition for different sites
US11870679B2 (en) 2020-04-06 2024-01-09 VMware LLC Primary datacenter for logical router
US11088902B1 (en) 2020-04-06 2021-08-10 Vmware, Inc. Synchronization of logical network state between global and local managers
US11882000B2 (en) 2020-04-06 2024-01-23 VMware LLC Network management system for federated multi-site logical network
US11343227B2 (en) 2020-09-28 2022-05-24 Vmware, Inc. Application deployment in multi-site virtualization infrastructure

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03217949A (ja) * 1990-01-23 1991-09-25 Hitachi Ltd 計算機システム
JPH05224950A (ja) * 1992-02-17 1993-09-03 Hitachi Ltd デバッグ用割込み発生回路
JP2005317023A (ja) * 2004-04-30 2005-11-10 Arm Ltd データ処理装置のブレークポイント論理ユニット、デバッグ論理、およびブレークポイントの方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09218801A (ja) * 1995-08-30 1997-08-19 Motorola Inc データプロセッサ
US6427162B1 (en) * 1996-05-02 2002-07-30 Sun Microsystems, Inc. Separate code and data contexts: an architectural approach to virtual text sharing
US5812830A (en) * 1996-11-14 1998-09-22 Hewlett-Packard Company Debug system with raw mode trigger capability
GB9704068D0 (en) * 1997-02-27 1997-04-16 Sgs Thomson Microelectronics Trigger sequencing controller
US6633838B1 (en) * 1999-11-04 2003-10-14 International Business Machines Corporation Multi-state logic analyzer integral to a microprocessor
AU2000231862A1 (en) * 2000-03-23 2001-10-03 Sun Microsystems, Inc. Method of and system for testing software in computers
US7093236B2 (en) * 2001-02-01 2006-08-15 Arm Limited Tracing out-of-order data
US6883162B2 (en) * 2001-06-06 2005-04-19 Sun Microsystems, Inc. Annotations for transaction tracing
US6857084B1 (en) * 2001-08-06 2005-02-15 Lsi Logic Corporation Multiprocessor system and method for simultaneously placing all processors into debug mode
US6862694B1 (en) * 2001-10-05 2005-03-01 Hewlett-Packard Development Company, L.P. System and method for setting and executing breakpoints
GB2383437B (en) * 2001-12-20 2004-02-04 Sun Microsystems Inc System trace unit
US7010672B2 (en) * 2002-12-11 2006-03-07 Infineon Technologies Ag Digital processor with programmable breakpoint/watchpoint trigger generation circuit
US7644312B2 (en) * 2002-12-31 2010-01-05 International Business Machines Corporation Virtual machine monitoring for application operation diagnostics
US7111146B1 (en) * 2003-06-27 2006-09-19 Transmeta Corporation Method and system for providing hardware support for memory protection and virtual memory address translation for a virtual machine
JP2006092029A (ja) * 2004-09-21 2006-04-06 Fujitsu Ltd マイクロコンピュータ及びトレース制御方法
US7711914B2 (en) * 2005-06-28 2010-05-04 Hewlett-Packard Development Company, L.P. Debugging using virtual watchpoints
US7332929B1 (en) * 2006-03-03 2008-02-19 Azul Systems, Inc. Wide-scan on-chip logic analyzer with global trigger and interleaved SRAM capture buffers
GB2443277B (en) * 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
US8032741B2 (en) * 2007-08-22 2011-10-04 Intel Corporation Method and apparatus for virtualization of a multi-context hardware trusted platform module (TPM)
GB2456813B (en) * 2008-01-24 2012-03-07 Advanced Risc Mach Ltd Diagnostic context construction and comparison

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03217949A (ja) * 1990-01-23 1991-09-25 Hitachi Ltd 計算機システム
JPH05224950A (ja) * 1992-02-17 1993-09-03 Hitachi Ltd デバッグ用割込み発生回路
JP2005317023A (ja) * 2004-04-30 2005-11-10 Arm Ltd データ処理装置のブレークポイント論理ユニット、デバッグ論理、およびブレークポイントの方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448910B2 (en) 2013-03-29 2016-09-20 International Business Machines Corporation Computer-implemented method, program, and tracer node for obtaining trace data relating to particular virtual machine
US9632725B2 (en) 2013-03-29 2017-04-25 International Business Machines Corporation Computer-implemented method, program, and tracer node for obtaining trace data relating to particular virtual machine
US10503512B2 (en) 2014-11-13 2019-12-10 Arm Limited Context sensitive barriers with an implicit access ordering constraint for a victim context
JP2018527657A (ja) * 2015-07-31 2018-09-20 エイアールエム リミテッド 条件付きロードの抑制
JP2022523787A (ja) * 2019-03-08 2022-04-26 インターナショナル・ビジネス・マシーンズ・コーポレーション セキュア仮想マシン環境におけるストレージ保護ハードウェアのテスト方法、システム、プログラム
JP7373578B2 (ja) 2019-03-08 2023-11-02 インターナショナル・ビジネス・マシーンズ・コーポレーション セキュア仮想マシン環境におけるストレージ保護ハードウェアのテスト方法、システム、プログラム

Also Published As

Publication number Publication date
JP5430153B2 (ja) 2014-02-26
CN101493792B (zh) 2013-12-18
CN101493792A (zh) 2009-07-29
US20090193297A1 (en) 2009-07-30
GB2456813B (en) 2012-03-07
GB0801338D0 (en) 2008-03-05
GB2456813A (en) 2009-07-29
US8250411B2 (en) 2012-08-21

Similar Documents

Publication Publication Date Title
JP5430153B2 (ja) 診断コンテキストの構成および比較
TWI464576B (zh) 使用除錯指令之方法、裝置及控制處理器之除錯行為之方法
US20050257089A1 (en) Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus
JP4094724B2 (ja) ソフトウェアをデバッグする際に例外を識別するための装置および方法
US20180107489A1 (en) Computer instruction processing method, coprocessor, and system
US9003376B2 (en) Software breakpoints with tailoring for multiple processor shared memory or multiple thread systems
US5564041A (en) Microprocessor for inserting a bus cycle in an instruction set to output an internal information for an emulation
US20020147965A1 (en) Tracing out-of-order data
US20090217095A1 (en) Means and method for debugging
JP5449472B2 (ja) スレッド間同期通信のための装置、システム、および、その方法
US7689815B2 (en) Debug instruction for use in a data processing system
JP2014182562A (ja) 情報処理装置およびデバッグ方法
TW201009574A (en) Debug instruction for use in a multi-threaded data processing system
JP6846405B2 (ja) 条件付きロードの抑制
JP2011513834A (ja) デバッグ資源を共有する方法及び装置
CN107436752B (zh) 异常现场恢复方法、装置及计算机可读存储介质
JP4965638B2 (ja) タスクの切り換えを制御するシステムおよび方法
WO2017202083A1 (zh) 微码调试方法及单板
KR20140099255A (ko) 레지스터 리네이밍 데이터 처리장치 및 레지스터 리네이밍 실행방법
US10642710B2 (en) Apparatus and method for generating and processing a trace stream indicative of execution of predicated vector memory access instructions by processing circuitry
JP2000353092A (ja) 情報処理装置及びそのレジスタファイル切替方法
JP2008140124A (ja) データ処理装置
JP7049275B2 (ja) 診断データキャプチャ
JP2010015364A (ja) マルチプロセッサシステム及び情報処理装置
GR20180200009U (el) Μια διαταξη εκτελεσης ομαδων νηματων

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130723

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131203

R150 Certificate of patent or registration of utility model

Ref document number: 5430153

Country of ref document: JP

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