【課題を解決するための手段】
【0005】
一態様から見ると、本発明は、プログラム命令に応答して、処理操作を実行するように構成された処理回路と、前記処理回路の条件を示す、少なくとも1つの条件フラグを格納するように構成された、条件ステータス格納場所と、前記プログラム命令に応答して、前記処理回路によって実行された前記処理操作を示すトレースデータ要素を生成するように構成されたトレース回路とを備える、処理装置を提供し、前記処理回路は、少なくとも1つの条件付き命令に応答して、前記少なくとも1つの条件フラグのサブセットの現在の値に基づいて条件付き操作を実行し、前記トレース回路は、前記処理回路が少なくとも1つの選択された命令を処理することに応答して、前記少なくとも1つの条件フラグの少なくとも前記サブセットを示す、トレースされた条件値を含む、トレースデータ要素を生成するように構成され、前記トレースされた条件値が、前記少なくとも1つの条件付き命令の処理結果を判定するための情報を提供する。
【0006】
処理装置は、処理回路の条件を示す、少なくとも1つの条件フラグを格納するための、条件ステータス格納場所(例えば、レジスタ等)を有してもよい。処理回路は、少なくとも1つの条件フラグの少なくともサブセットの現在の値に基づいて、条件付き命令を実行することができる。例えば、条件付き命令が実行されると、条件フラグのサブセットの現在の値が所与の条件を満たす場合、それに関連付けられた条件付き操作が実行され得るが、その条件が満たされない場合は、操作は実行されない。トレース回路は、処理回路が少なくとも1つの選択された命令を処理することに応答して、少なくとも1つの条件フラグの少なくともサブセットを示すトレースされた条件値を含む、トレースデータ要素を生成するように構成されてもよく、条件付き命令は、この少なくとも1つの条件フラグに基づく。トレースされた条件値は、少なくとも1つの条件付き命令の処理結果を判定するための情報を提供する。
【0007】
本技術は、条件フラグの値が、条件付き命令の成立/不成立の結果よりも、一般により容易に利用可能であることを認識している。例えば、条件フラグは、しばしば、処理装置のアーキテクチャの状態の一部であるため、条件フラグは、いつ、および処理パイプラインのどの段階において命令の実行結果が利用可能になるかを監視する必要なく、処理パイプラインの早い段階において読み取られ得る。したがって、成立/不成立の結果よりも、条件フラグをトレースすることによって、トレース回路の構成は簡略化される。
【0008】
トレースされた条件値は、異なる形式を有してもよい。一例において、トレースされた条件値は、少なくとも1つの条件フラグの少なくともサブセットの現在の値を含み得る。そのため、トレースデータ要素は、条件フラグの値を直接識別する。
【0009】
あるいは、トレースされた条件値は、少なくとも1つの条件フラグの少なくともサブセットの値を識別する識別子を含んでもよい。これは、いくつかの場合において、条件フラグの実際の値をトレースするよりも効果的であり得る。例えば、条件フラグの値の、特定のパターンが他のパターンよりも多く見られる場合、最もよく見られるパターンには、条件フラグの実際の値よりも少ないビットを有する特定の識別子を割り当てることができる。これにより、トレース回路によって生成されるトレースデータの量が低減する傾向になるため、トレース帯域幅についての制約が軽減される。
【0010】
条件フラグがトレースされる、命令ストリームの時点は、異なってもよく、必ずしも、その結果がトレースされた条件値を使用して判定される条件付き命令である必要はない。トレースされた条件値は、任意の選択された命令によって出力され得る。
【0011】
一例において、処理回路は、少なくとも1つの条件更新命令に応答して、関連付けられた処理操作を実行し、その関連付けられた処理操作の処理結果に基づいて、少なくとも1つの条件フラグを更新する。この場合、条件フラグのトレースをトリガする、少なくとも1つの選択された命令は、少なくとも1つの条件更新命令を含んでもよい。例えば、条件更新命令は、比較命令を含んでもよく、この比較命令は、2つのデータの値を比較して、比較の結果に基づいて、少なくとも1つの条件フラグを更新し、この少なくとも1つの条件フラグは、比較命令の実行時にトレースされ得る。少なくとも1つの条件フラグが更新されるときに、トレースストリームに含まれるトレースされた条件値は、任意の後続の条件付き命令が、それに関連付けられた条件が成立したか、または不成立であったかを判定するための情報を提供する。
【0012】
少なくとも1つの条件更新命令が実行されたことによって、トレースされた条件値が出力されると、トレースされた条件値は、少なくとも1つの条件更新命令を処理することによってもたらされる、条件フラグの更新された値を示し得る。そのため、この更新された値は、条件フラグの次の更新の前に発生する、任意の後続の条件付き命令の結果を判定するために使用することができる。
【0013】
少なくとも1つの条件更新命令は、処理回路によって実行された全ての条件更新命令を含む必要はない。何らかの状況において、介在する条件付き命令なしに、いくつかの条件更新命令が連続して発生する場合があり、この場合には、最後の条件更新命令からもたらされた条件フラグの値が、条件付き命令によって使用される。そのため、全ての条件更新命令についてトレースされた条件値を生成する必要はない。
【0014】
少なくとも1つの条件更新命令の代替として、またはそれに加えて、少なくとも1つの選択された命令が、少なくとも1つの条件付き命令のうちの少なくとも1つを含んでもよい。何らかの状況において、条件更新命令が実行されるときに、任意の後続の条件命令が、その条件更新命令によって生成された、更新された条件フラグの値を実際に使用するかどうかを判定することが困難である場合がある。そのため、代わりに、条件付き命令が、その条件付き命令によって使用される、少なくとも1つの条件フラグの少なくともサブセットをトレースする前に、少なくとも1つの条件フラグを使用するのを待つことがより効果的であり得る。
【0015】
条件付き命令が実行されたことによって、トレースされた条件値が出力されると、トレースされた条件値は、条件付き命令を処理したときの、少なくとも1つの条件フラグの少なくとも関連したサブセットの現在の値を示し得る。
【0016】
同様に、必ずしも、全ての条件付き命令の実行の度にトレースされた条件値を出力する必要はない。プログラムには、相互排他条件に関連付けられた、補助的な一組の条件付き命令が含まれてもよい。例えば、「等しい」という結果を生成する以前の処理操作によって決まる第1の条件付き命令には、「等しくない」という結果を生成する以前の処理操作によって決まる第2の条件付き命令が続いてもよい。この場合、第2の条件付き命令についての条件フラグの値をトレースする必要はなく、これは、その処理結果は第1の条件付き命令について生成されるトレースされた条件値から判定することができるためである。そのため、何らかの状況においては、選択された命令が、少なくとも1つの条件フラグの更新後に処理された第1の条件付き命令を含むことが好ましい場合がある。
【0017】
全てのタイプの条件付き命令または条件更新命令がトレースユニットによってトレースされる必要はない。いくつかの例において、命令のタイプのサブセットのみが対象となり得る。この場合、条件付き命令または条件付き更新命令の関連するサブセットのみが、トレースされた条件値を含むトレースデータ要素の出力をトリガする。トレース回路は、トレースされた条件値を含むトレースデータ要素の生成をトリガするために、プログラム命令のうちの少なくとも1つの選択された命令に含まれる命令を選択するように構成されてもよい。例えば、トレース回路は、例えば、条件付き格納命令等のような、特定の条件付き命令のみというように、条件フラグがトレースされるべきである命令を示す制御信号に応答してもよい。
【0018】
いくつかの種類の命令は、条件付き命令と条件更新命令の両方であり得ることに留意されたい。例えば、条件付き比較命令は、関連付けられた条件を有することができ、関連付けられた条件が満たされた場合に比較が行われることを指定することができる。条件付き比較命令の実行時、関連付けられた条件が、少なくとも1つの条件フラグの現在の値によって満たされた場合に比較は行われ、少なくとも1つの条件フラグは、比較の結果に基づいて更新される。したがって、条件付き比較命令は、トレース回路の構成に依存して、条件付き命令として、もしくは条件更新命令としてのいずれか、または両方にトレースされ得る。
【0019】
トレース回路は、制御フラグを格納するように構成されてもよく、トレース回路は、特定のプログラム命令が、トレースされた条件値を含むトレースデータ要素の生成をトリガするかを選択するために、制御フラグに対する責任を負う。例えば、トレース回路は、制御フラグを使用して、少なくとも1つの条件フラグの現在の状態がすでにトレースされたかどうかの経過を追い、次いで制御フラグを使用して、少なくとも1つの条件フラグが後続の命令によってトレースされるべきか否かを判定する。
【0020】
一例において、制御フラグは第1の状態および第2の状態を有する。例えば、制御フラグは、第1および第2の状態のうちの1つを示す「0」の値と、第1および第2の状態のうちのもう一方を示す「1」の値とを有するビットを含んでもよい。トレース回路は、少なくとも1つの条件フラグの更新に応答して、制御フラグを第1の状態にすることができ、処理回路が条件付き命令を処理することに応答して、(a)前記制御フラグが前記第1の状態にあるかどうかを判定し、かつ(b)前記制御フラグが前記第1の状態にある場合、前記トレースされた条件値を含むトレースデータ要素を生成して、前記制御フラグを前記第2の状態にすることができる。
【0021】
そのため、制御フラグの第1の状態は、少なくとも1つの条件フラグは更新されたが、少なくとも1つの条件フラグの更新値は、まだトレースされていないことを示す。トレースされるべき条件付き命令が実行されたときに、制御フラグが第1の状態にある場合、条件付き命令の処理結果が、トレースデータから判定することができるように、トレースデータ要素がトレースされた条件値を含んで生成される。トレースされた条件値を含むトレースデータ要素の生成に続いて、少なくとも1つの条件フラグの現在の状態はすでにトレースされたため、後続の条件付き命令の実行によって少なくとも1つの条件フラグが再びトレースされる必要がないことを示すために、制御フラグは第2の状態にされる。制御フラグは、少なくとも1つの条件フラグがもう一度更新されると、第1の状態に戻される。この技術は、対応する命令の処理結果が、以前に生成されたトレースデータ要素に含まれた、トレースされた条件値からすでに判定され得る場合は、トレースされた条件値を含むトレースデータ要素は生成されないため、トレースデータの量を低減するのに役立つ。
【0022】
いくつかの実施形態において、条件ステータス格納場所は、処理回路の個々の条件に対応する、複数の条件フラグを格納するように構成され得る。例えば、英国ケンブリッジ所在のARM Limited社によって設計されたプロセッサにおいて、条件フラグには、以前の処理の結果が負の値だったか否かを示すNフラグ、以前の処理の結果がゼロだったか否かを示すZフラグ、以前の処理操作がキャリー演算の結果をもたらしたか否かを示すCフラグ、および以前の処理操作がオーバーフローの結果をもたらしたか否かを示すVフラグが、一般に含まれる。他のタイプの条件フラグもまた可能である。
【0023】
複数の条件フラグが存在する場合、特定の条件付き命令は全ての条件フラグに基づく必要はないが、それらの条件フラグの任意のサブセットに基づき得る。条件フラグの現在の値をトレースする場合、複数の条件フラグの関連するサブセットを示す、トレースされた条件値を有するトレースデータ要素を生成することによって、トレースデータの量は低減され得る。サブセットの一部ではない条件フラグは、トレースデータ要素に含まれることから省略され得る。
【0024】
その一方で、トレース回路はまた、条件フラグのどのサブセットが条件付き命令によって実際に使用されているかに関わらず、複数の条件フラグのうちの全てを示しているトレースされた条件値を有するトレースデータ要素を生成するように構成され得る。これにより、何らかの状況において、条件ステータス格納場所の個々のフラグにアクセスするための回路を設ける必要がなくなる以降は、条件フラグの値にアクセスするために備えられるハードウェアの複雑性が低減され得る。
【0025】
一実施形態において、トレース回路は、複数の条件フラグに対応する複数の制御フラグを格納するように構成され得る。トレース回路は、それぞれの制御フラグに応答して、対応する条件フラグを示す、トレースされた条件値を含むトレースデータ要素を、所与のプログラム命令について生成するか否かを選択することができる。それぞれの制御フラグは、例えば、対応する条件フラグが、そのフラグの直近の更新後からすでにトレースされたか否かの経過を追うために使用されてもよく、したがって、その条件フラグが、後のプログラム命令の実行によってトレースされる必要があるか否かを判定するために使用されてもよい。
【0026】
一例において、複数の制御フラグはそれぞれ、第1の状態および第2の状態を有し、前記トレース回路は、前記複数の条件フラグのうちのいずれかの更新に応答して、少なくとも、更新された条件フラグに対応する制御フラグを前記第1の状態にし、前記トレース回路は、前記処理回路が、必要な条件フラグのサブセットに基づく、前記少なくとも1つの条件付き命令のうちの1つを処理することに応答して、(a)前記必要な条件フラグのサブセットに対応する、対応する制御フラグのいずれかが、前記第1の状態にあるかどうかを判定し、かつ(b)前記対応する制御フラグのいずれかが前記第1の状態にある場合、対応する制御フラグが前記第1の状態にある前記必要なサブセットの、少なくとも条件フラグを示す、トレースされた条件値を含むトレースデータ要素を生成して、前記対応する制御フラグを前記第2の状態にする。
【0027】
したがって、条件フラグのいずれかが更新された場合、少なくとも、更新された条件フラグに対応する制御フラグは、第1の状態にされ、対応する条件フラグはまだ、それらの更新された形態にトレースされていないことを示す。必要な条件フラグのサブセットに基づく条件付き命令を検出した場合、そのサブセットに対応する、対応する制御フラグのうちのいずれかが第1の状態にあるか否かが判定される。これらの対応する制御フラグのうちのいずれかが第1の状態にある場合、これは、対応する条件フラグはまだトレースされていないことを示すため、対応する制御フラグが第1の状態にある、少なくとも、必要なサブセットの条件フラグを示す、トレースされた条件値を含んで、トレースデータ要素が生成される。特定の条件フラグがトレースされる場合、その対応する制御フラグは、第2の状態にされる。条件付き命令を検出し、必要な条件フラグのサブセットのうちの1つが、第2の状態にある対応する制御フラグを有する場合、これは、条件フラグがすでにトレースされており、再度トレースされる必要がないことを示す。この技術は、条件フラグの現在の形態にまだトレースされておらず、特定の条件付き命令の処理結果を判定するために必要である条件フラグをトレースすることによって、トレースデータの量を低減するのに役立つ。
【0028】
一実施形態において、複数の制御フラグのうちの全てが、条件フラグのサブセットのみが更新される場合であっても、条件の更新において第1の状態にされ得る。これにより、条件更新命令の結果としてどのフラグが実際に更新されたかを確認する必要がなくなる以降は、本技術を実装するためのハードウェアは簡素化され得る。
【0029】
複数の制御フラグが提供される実施形態において、その制御フラグが第1の状態にある、必要なサブセットの条件フラグのみをトレースすることによって、トレースデータの量における最も大きな低減が達成され得る。それでもなお、必要な条件フラグのサブセットに対応する、対応する制御フラグのうちのいずれかが、条件付き命令の実行時に第1の状態にある場合、全ての条件フラグの値をトレースすることもまた可能である。これにより、条件フラグの状態を読み取るためのハードウェアが簡素化され得る。
【0030】
1つ以上の制御フラグが、条件フラグの更新が発生するときに、第1の状態にされるものとして、上記に説明されてきた。しかし、これは、制御フラグが第1の状態にリセットされるときだけである必要はない。種々の他の事象によってもまた、制御フラグが第1の状態にされ得る。
【0031】
上述のように、本技術は、全てのタイプの条件付き命令に適用される必要はない。本技術は、例えば、条件付き命令のサブセットだけのために使用されてもよい。一例において、少なくとも1つの条件付き命令の条件付き操作は、非分岐操作であり得る。いくつかのトレース回路は、例えば分岐予測のスキームを使用して、条件付き分岐命令の結果を判定するための、個別の機構を有し得る。したがって、いくつかの実施形態において、本技術は、条件付き非分岐命令のみに適用され、条件付き分岐命令のトレースはトレース回路によって別個に対処され得る。
【0032】
別の態様から見ると、本発明は、プログラム命令に応答して処理操作を実行するための処理手段と、前記処理手段の条件を示す、少なくとも1つの条件フラグを格納するための、条件ステータス格納手段と、前記プログラム命令に応答して、前記処理手段によって実行された前記処理操作を示すトレースデータ要素を生成するためのトレース手段とを含む、処理装置を提供し、前記処理手段は、少なくとも1つの条件付き命令に応答して、前記少なくとも1つの条件フラグのサブセットの現在の値に基づいて、条件付き操作を実行し、前記トレース手段は、前記処理手段が少なくとも1つの選択された命令を処理することに応答して、前記少なくとも1つの条件フラグの少なくとも前記サブセットを示す、トレースされた条件値を含む、トレースデータ要素を生成するように構成され、前記トレースされた条件値が、前記少なくとも1つの条件付き命令の処理結果を判定するための情報を提供する。
【0033】
さらなる態様から見ると、本発明は、プログラム命令に応答して、処理装置によって実行された処理操作を監視するためのトレースユニットを提供し、前記処理装置は、前記処理装置の条件を示す少なくとも1つの条件フラグを格納するように構成された、条件ステータス格納場所を備え、前記処理装置は、少なくとも1つの条件付き命令に応答して、前記少なくとも1つの条件フラグのサブセットの現在の値に基づいて、条件付き操作を実行し、前記トレースユニットは、前記プログラム命令に応答して、前記処理装置によって実行された前記処理操作を示す、トレースデータ要素を生成するように構成されたトレース回路を備え、前記トレース回路は、前記処理装置が少なくとも1つの選択された命令を処理することに応答して、前記少なくとも1つの条件フラグの少なくとも前記サブセットを示す、トレースされた条件値を含む、トレースデータ要素を生成するように構成され、前記トレースされた条件値が、前記少なくとも1つの条件付き命令の処理結果を判定するための情報を提供する。
【0034】
さらなる態様から見ると、本発明は、プログラム命令に応答して、処理装置によって実行された処理操作を監視するためのトレースユニットを提供し、前記処理装置は、前記処理装置の条件を示す少なくとも1つの条件フラグを格納するための、条件ステータス格納手段を含み、前記処理装置は、少なくとも1つの条件付き命令に応答して、前記少なくとも1つの条件フラグのサブセットの現在の値に基づいて、条件付き操作を実行し、前記トレースユニットは、前記プログラム命令に応答して、前記処理装置によって実行された前記処理操作を示す、トレースデータ要素を生成するためのトレース手段を含み、前記トレース手段は、前記処理装置が少なくとも1つの選択された命令によって処理することに応答して、前記少なくとも1つの条件フラグの少なくとも前記サブセットを示す、トレースされた条件値を含む、トレースデータ要素を生成し、前記トレースされた条件値が、前記少なくとも1つの条件付き命令の処理結果を判定するための情報を提供する。
【0035】
さらなる別の態様から見ると、本発明は、プログラム命令に応答して、処理装置によって実行された処理操作を示す、トレースデータを分析するための診断装置を提供し、前記処理装置は、前記処理装置の条件を示す少なくとも1つの条件フラグを格納するように構成された条件ステータス格納場所を備え、前記処理装置は、少なくとも1つの条件付き命令に応答して、前記少なくとも1つの条件フラグのサブセットの現在の値に基づいて、条件付き操作を実行し、前記診断装置は、前記処理装置が少なくとも1つの選択された命令を処理することに応答して生成された、少なくとも1つのトレースデータ要素を含むトレースデータを受信するように構成されたトレース入力部であって、前記少なくとも1つのトレースデータ要素が前記少なくとも1つの条件フラグの少なくとも前記サブセットを示す、トレースされた条件値を含む、トレース入力部と、前記少なくとも1つのトレースデータ要素に含まれた、前記トレースされた条件値に基づいて、前記少なくとも1つの条件付き命令の処理結果を判定するように構成された、診断回路とを備える。
【0036】
診断装置は、対応するトレースユニットによって生成されたトレースデータを受信する。診断装置は、トレースデータを分析するための診断回路を有する。トレースデータ要素内に示された、トレースされた条件値を使用して、診断回路は、少なくとも1つの条件付き命令の処理結果を判定することができる。
【0037】
診断装置は、どの命令が、トレースされながら処理装置によって実行されたかの指示を受信することができる。この指示は、いくつかの形態を有し得る。どの命令が処理装置によって実行されたかを示すために、トレースストリーム内に情報を提供することが可能である。しかし、診断装置が、実行されたプログラム命令を格納しているメモリに対するアクセスを有するようにすること(例えば、診断装置に、そこからプログラムの実行が始まる、命令のアドレスを提供することによって)、または、診断装置に、処理装置によって実行された、対応するプログラムコピーを格納するための、対応するメモリを設けることのいずれかによって、より効果的な実装が提供され得る。診断装置は、どの命令が処理装置によって実行されたかというこの指示を使用して、いつ、トレースされた条件値を含むトレースデータ要素を予期するかを判定することができる。一例において、少なくとも1つの選択された命令の指示に応答して、診断装置は、対応するデータ要素がトレースストリーム内に含まれていることを推測することができ、このデータ要素を探し出すことによって、診断回路は、少なくとも1つの条件付き命令の処理結果を判定することができる。選択された命令は、少なくとも1つの条件更新命令、または少なくとも1つの条件付き命令のうちの少なくとも1つであってもよい。
【0038】
診断回路は、第1の状態および第2の状態を有する診断制御フラグを格納するように構成され得、前記トレース入力部は、前記処理装置によって処理された前記プログラム命令の指示を受信することができ、前記診断回路は、前記処理装置が前記少なくとも1つの条件フラグを更新したことの指示に応答して、前記診断制御フラグを、前記第1の状態にし、前記診断回路は、前記処理装置が条件付き命令を処理したことの指示に応答して、(a)前記制御フラグが前記第1の状態にあるかどうかを判定することができ、(b)前記診断制御フラグが、前記第1の状態にある場合、前記条件付き命令について、関連付けられたトレースデータ要素を、前記トレースデータ内から探し出し、前記関連付けられたトレースデータ要素内に含まれている前記トレースされた条件値に基づいて、前記条件付き命令の前記処理結果を判定し、前記診断制御フラグを、前記第2の状態にすることができ、かつ(c)前記診断制御フラグが前記第2の状態にある場合、以前の条件付き命令に関連付けられた、さらなるトレースデータ要素を、前記トレースデータ内から探し出し、前記さらなるトレースデータ要素内に含まれている前記トレースされた条件値に基づいて、前記条件付き命令の前記処理結果を判定することができる。
【0039】
このようにして、診断回路は、トレースストリームを生成するときに、トレースユニットによって使用される制御フラグに対応する診断制御フラグを維持することができる。診断回路が、処理回路によって実行されたプログラム命令の指示を受信すると、これは、少なくとも1つの条件フラグの更新による結果であるが(この指示は、例えば、トレースストリーム内の条件更新の明確な指示、または診断回路が、トレースストリームを処理中に条件更新命令を検出したときに発生する黙示的な指示であってもよい)、診断装置は、自身の診断制御フラグを、条件付き命令の指示が次に見つかった際には、診断回路は、トレースストリームが、トレースされた条件値を含む関連付けられたトレースデータ要素を含むことを予期するべきであることを示す状態にする。
【0040】
診断回路が、処理装置が条件付き命令を処理することの指示を受信すると、診断装置は、診断制御フラグが第1の状態にあるか否かを判定し、制御フラグが第1の状態にある場合、診断装置は、その条件付き命令について関連付けられたトレースデータ要素を探し出し、関連付けられたトレースデータ要素に含まれているトレースされた条件値に基づいて、条件付き命令の処理結果を判定する。診断装置は次いで、診断制御フラグを第2の状態にし、任意の後続の条件付き命令の結果は、関連付けられたトレースデータ要素に含まれている、トレースされた条件値から推測し得ることを示す。次いで、診断制御フラグが第2の状態にあるときに、条件付き命令の指示が検知された場合、診断装置は、以前の条件付き命令に関連付けられたトレースデータ要素に戻ることができ、先行のトレースデータ要素に含まれていた、トレースされた条件値に基づいて、最新の条件付き命令の処理結果を判定することができる。この技術によって、診断装置は、トレース回路によって実行される技術に対応する方法で、処理操作の結果を判定することが可能となる。
【0041】
処理装置の条件ステータス格納場所が、前記処理装置の個々の条件に対応する複数の条件フラグを格納する場合、診断回路は、前記複数の条件フラグに対応する、複数の診断制御フラグを格納するように構成され得、前記複数の診断制御フラグのそれぞれは、第1の状態および第2の状態を有し、前記トレース入力部は、前記処理装置によって処理された前記プログラム命令の指示を受信することができ、前記診断回路は、前記処理装置が前記複数の条件フラグのうちのいずれかを更新することの指示に応答して、少なくとも、更新された条件フラグに対応する制御フラグを前記第1の状態にすることができ、前記診断回路は、前記処理装置が、必要な条件フラグのサブセットに基づく条件命令を処理することの指示に応答して、(a)前記必要な条件フラグのサブセットに対応する、対応する診断制御フラグのうちのいずれかが前記第1の状態にあるかどうかを判定することができ、(b)ステップ(a)において、前記対応する診断制御フラグのうちのいずれかが前記第1の状態にある場合、前記条件付き命令について関連付けられたトレースデータ要素を、前記トレースデータ内から探し出すことができ、前記関連付けられたトレースデータ要素が、少なくとも、対応する診断制御フラグが前記第1の状態にある条件フラグを示す、第1のトレースされた条件値を含み、前記対応する診断制御フラグを前記第2の状態にすることができ、(c)ステップ(a)において、前記対応する診断制御フラグのうちのいずれかが前記第2の状態にある場合、少なくとも1つの以前の条件付き命令について、少なくとも1つのさらなるトレースデータ要素を、前記トレースデータ内に置くことができ、前記少なくとも1つのさらなるトレースデータ要素は、少なくとも、対応する診断制御フラグが前記第2の状態にある条件フラグを示す、少なくとも1つのさらなるトレースされた条件値を含み、かつ(d)前記第1のトレースされた条件値および前記少なくとも1つのさらなるトレースされた条件値のうちの少なくとも1つに基づいて、前記条件付き命令の前記処理結果を判定することができる。
【0042】
このアルゴリズムは、個々の条件フラグに応じて、個別の条件制御フラグが提供されるトレースユニットのアルゴリズムに対応する。診断回路は、トレースストリームが、条件フラグの関連サブセットの値を示す、所与の条件付き命令について、トレース要素を含むか否かを、または、先行の条件付き命令について、1つ以上のさらなるトレースデータ要素に戻って、必要な条件フラグの値を判定する必要があるかどうかを、診断制御フラグから判定することができる。現在の条件付き命令の処理結果は、現在の条件付き命令についてトレースデータ要素に含まれているトレースされた条件値、および先行の条件付き命令について少なくとも1つの先行のトレースデータ要素に含まれているトレースされた条件値のうちの1つまたは両方に基づいて判定することができる。
【0043】
別の態様から見ると、本発明は、プログラム命令に応答して、処理装置によって実行された処理操作を示すトレースデータ要素を分析するための診断装置を提供し、前記処理装置は、前記処理装置の条件を示す、少なくとも1つの条件フラグを格納するための、条件ステータス格納手段を含み、前記処理装置は、少なくとも1つの条件付き命令に応答して、前記少なくとも1つの条件フラグのサブセットの現在の値に基づいて、条件付き操作を実行し、前記診断装置は、前記処理装置が少なくとも1つの選択された命令を処理することに応答して生成されたトレースデータ要素を受信するための入力手段であって、前記トレースデータ要素が、前記少なくとも1つの条件フラグの少なくとも前記サブセットを示す、トレースされた条件値を含む、入力手段と、前記少なくとも1つの選択された命令について、前記トレースデータ要素に含まれている前記トレースされた条件値に基づいて、前記少なくとも1つの条件付き命令の処理結果を判定するための、診断手段とを備える。
【0044】
さらなる態様から見ると、本発明は、プログラム命令に応答して、処理装置を使用して処理操作を実行するステップと、前記処理装置の条件を示す、少なくとも1つの条件フラグを格納するステップと、前記処理操作を示すトレースデータ要素を生成するステップとを含む、データ処理の方法を提供し、処理操作を実行する前記ステップは、少なくとも1つの条件付き命令に応答して、前記少なくとも1つの条件フラグのサブセットの現在の値に基づいて、条件付き操作を実行することを含み、トレースデータ要素を生成する前記ステップは、少なくとも1つの選択された命令に応答して、前記少なくとも1つの条件フラグの少なくとも前記サブセットを示す、トレースされた条件値を含むトレースデータ要素を生成することを含み、トレースされた条件値が、前記少なくとも1つの条件付き命令の処理結果を判定するための情報を提供する。
【0045】
さらなる別の態様から見ると、本発明は、プログラム命令に応答して、処理装置によって実行された処理操作を示すトレースデータ要素を分析するための方法を提供し、前記処理装置は、前記処理装置の条件を示す、少なくとも1つの条件フラグを格納するように構成された条件ステータス格納場所を備え、前記処理装置は、少なくとも1つの条件付き命令に応答して、前記少なくとも1つの条件フラグのサブセットの現在の値に基づいて、条件付き操作を実行し、前記方法は、前記処理装置が少なくとも1つの選択された命令を処理することに応答して生成されたトレースデータ要素を受信するステップであって、前記トレースデータ要素が、前記少なくとも1つの条件フラグの少なくとも前記サブセットを示すトレースされた条件値を含む、ステップと、前記少なくとも1つの選択された命令について、前記トレースデータ要素に含まれている前記トレースされた条件値に基づいて、前記少なくとも1つの条件付き命令の処理結果を判定するステップとを含む。
【0046】
コンピュータプログラムは、コンピュータを制御して、上記に説明されたトレースデータ要素を分析するための方法を実行するために提供され得る。コンピュータプログラムは、非一時的な記憶媒体上に提供されてもよい。
【0047】
さらなる態様から見ると、本発明は、プログラム命令に応答して、処理操作を実行するように構成された処理回路と、前記プログラム命令に応答して、前記処理回路によって実行された前記処理操作を示すトレースデータ要素を生成するように構成された、トレース回路とを備える、処理装置を提供し、前記処理回路は、少なくとも1つの条件付き命令に応答して、前記処理回路の条件に基づいて、条件付き操作を実行し、前記トレース回路は、第1の状態および第2の状態を有する制御フラグを格納するように構成され、前記トレース回路は、前記処理回路の前記条件の更新に応答して、前記制御フラグを前記第1の状態にし、前記トレース回路は、前記処理回路が、前記少なくとも1つの条件付き命令のうちの1つを処理することに応答して、(a)前記制御フラグが前記第1の状態にあるかどうかを判定し、かつ(b)前記制御フラグが前記第1の状態にある場合、前記少なくとも1つの条件付き命令の処理結果についての情報を提供するための値を示す結果を含むトレースデータ要素を生成し、前記制御フラグを前記第2の状態にする。
【0048】
所与の条件付き命令について、条件フラグの値をトレースするか否かを判定するための、上記に説明された制御アルゴリズムは、拡張されて、条件付き命令の処理結果を判定するための情報を提供する値を示す、任意の結果をトレースするために適用され得る。例えば、値を示す結果には、上記に説明されたように、トレースされた条件値が含まれ得るが、条件付き命令の成立/不成立の結果等のような値を示す、他の種類の結果もまた含まれてもよい。このアルゴリズムを使用することによって、値を示す結果は、処理回路の条件の更新に続いて、第1の条件付き命令について含まれるが、以前の命令について生成されたトレースデータを使用して処理結果が判定され得る、後続の命令については含まれないため、トレースデータの量は低減される。
【0049】
別の態様から見ると、本発明は、プログラム命令に応答して、処理操作を実行するための処理手段と、前記プログラム命令に応答して、前記処理手段によって実行された前記処理操作を示すトレースデータ要素を生成するための、トレース手段とを備える、処理装置を提供し、前記処理手段は、少なくとも1つの条件付き命令に応答して、前記処理手段の条件に基づいて、条件付き操作を実行し、前記トレース手段は、第1の状態および第2の状態を有する制御フラグを格納するように構成され、前記トレース手段は、前記処理手段の前記条件の更新に応答して、前記制御フラグを前記第1の状態にし、前記トレース手段は、前記処理手段が、前記少なくとも1つの条件付き命令のうちの1つを処理することに応答して、(a)前記制御フラグが前記第1の状態にあるかどうかを判定し、かつ(b)前記制御フラグが前記第1の状態にある場合、前記少なくとも1つの条件付き命令の処理結果についての情報を提供するための値を示す結果を含む、トレースデータ要素を生成し、前記制御フラグを前記第2の状態にする。
【0050】
別の態様から見ると、本発明は、プログラム命令に応答して、処理装置を使用して処理操作を実行するステップであって、前記処理操作を実行することは、少なくとも1つの条件付き命令に応答して、前記処理回路の条件に基づいて、条件付き操作を実行することを含む、ステップと、前記処理操作を示すトレースデータ要素を生成するステップであって、前記トレースデータ要素は、第1の状態および第2の状態を有する制御フラグに基づいて生成される、ステップとを含む、データ処理の方法を提供し、トレースデータ要素を生成する前記ステップは、前記処理回路の条件の更新に応答して、前記制御フラグを前記第1の状態にすることと、前記少なくとも1つの条件付き命令のうちの1つを処理することに応答して、(a)前記制御フラグが前記第1の状態にあるかどうかを判定すること、および(b)前記制御フラグが前記第1の状態にある場合、前記少なくとも1つの条件付き命令の処理結果についての情報を提供するための値を示す結果を含むトレースデータ要素を生成し、前記制御フラグを前記第2の状態にすることと、を含む。
【0051】
本技術の、さらなる態様、実施形態、および特徴は、以下の説明および添付の図面から明らかとなるであろう。