データ処理装置であって、対応するメモリアドレスによって識別された複数のメモリロケーションを含むメモリと、命令に応答して、処理動作を実行するように構成された処理回路と、前記処理回路によって実行された前記処理動作を示すトレースデータ要素のストリームを生成し、前記トレースデータ要素のストリームを出力するように構成されたトレース回路と、を備え、前記トレース回路は、複数の参照アドレスを格納するように構成された複数の参照アドレスレジスタを含み、前記トレース回路は、選択された参照アドレスレジスタとして前記複数の参照アドレスレジスタのうちの1つを選択し、i前記複数の参照アドレスレジスタのうちのどれが前記選択された参照アドレスレジスタであるかを示す第1の情報と、ii関連付けられたメモリアドレスと前記選択された参照アドレスレジスタに格納された選択された参照アドレスとの差を示す第2の情報と、を示すトレースデータ要素を生成および出力するために、前記関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を処理する前記処理回路に応答する、データ処理装置。前記トレースデータ要素は、前記第1の情報を示すヘッダ部分と、前記第2の情報を示すアドレス部分とを含む、請求項1に記載のデータ処理装置。前記関連付けられたメモリアドレスと、前記選択された参照アドレスとの間の前記差がゼロである場合、前記トレース回路は、前記アドレス部分を前記トレースデータ要素から省略する、請求項2に記載のデータ処理装置。前記トレース回路は、前記複数の参照アドレスレジスタに対応する複数の候補の第2の情報の値を決定するように構成され、各候補の第2の情報の値は、前記関連付けられたメモリアドレスと、前記対応する参照アドレスレジスタに格納された前記参照アドレスとの差を示し、前記トレース回路は、最も効率的な候補の第2の情報の値に対応する前記参照アドレスレジスタのうちの1つを、前記選択された参照アドレスレジスタとして選択し、かつ、前記最も効率的な候補の第2の情報の値に対応する前記第2の情報と共に、前記トレースデータ要素を生成するように構成される、請求項1に記載のデータ処理装置。前記最も効率的な候補の第2の情報の値は、前記対応する第2の情報が最小のビット数を使用して表すことができる、候補の第2の情報の値である、請求項4に記載のデータ処理装置。前記最も効率的な候補の第2の情報の値は、前記対応する第2の情報が、前記トレースデータ要素のストリーム内の前記トレースデータ要素に含まれる場合に、前記トレースデータ要素のストリーム内のトレースデータの合計数が最小になる、候補の第2の情報の値である、請求項4に記載のデータ処理装置。前記第2の情報は、前記選択された参照アドレスレジスタの前記選択された参照アドレスの対応する部分に対する異なるビット値を有する、前記関連付けられたメモリアドレスの部分を示す、請求項1に記載のデータ処理装置。前記第2の情報は、前記関連付けられたメモリアドレスと前記選択された参照アドレスとの間の数値の差を示す、請求項1に記載のデータ処理装置。前記トレース回路は、前記トレースデータ要素を生成後、前記関連付けられたメモリアドレスに応じて、前記複数の参照アドレスレジスタのうちの少なくとも1つの前記参照アドレスを選択的に更新するための参照アドレス更新動作を実行するように構成される、請求項1に記載のデータ処理装置。前記参照アドレス更新動作は、前記関連付けられたメモリアドレスを、前記複数の参照アドレスレジスタの犠牲参照アドレスレジスタへ書き込むことを含む、請求項9に記載のデータ処理装置。前記参照アドレス更新動作は、a少なくとも1つの参照アドレスレジスタについて、前記対応する参照アドレスと前記関連付けられたメモリアドレスとの間のアドレスの差が、所定の閾値を上回るかどうかを決定することと、b前記アドレスの差が、前記少なくとも1つの参照アドレスレジスタのそれぞれについて前記所定の閾値を上回る場合に、前記少なくとも1つの参照アドレスレジスタから選択された犠牲参照アドレスレジスタへ、前記関連付けられたメモリアドレスを書き込むことを含む、請求項9に記載のデータ処理装置。前記トレースデータ要素は、前記第2の情報を示すアドレス部分を含み、前記所定の閾値は、前記アドレス部分の最小サイズに対応する、請求項11に記載のデータ処理装置。前記トレース回路は、前記複数の参照アドレスレジスタのうちのどれが前記犠牲参照アドレスレジスタであるかを選択するために、犠牲選択動作を実行するように構成される、請求項10に記載のデータ処理装置。前記トレース回路は、前記参照アドレス更新動作による更新から、少なくとも1つの参照アドレスレジスタを選択的に除外するように、ロックダウンシグナルに応答する、請求項9に記載のデータ処理装置。前記複数の参照アドレスレジスタのうちの少なくとも1つは、事前定義された参照アドレスを格納するための固定の参照アドレスレジスタであり、前記固定の参照アドレスレジスタは、前記参照アドレス更新動作による更新から除外される、請求項9に記載のデータ処理装置。前記複数の参照アドレスレジスタのうちの少なくとも1つは、前記メモリアドレスの関連付けられた範囲に関連付けられた範囲を限定した参照アドレスレジスタであり、前記範囲を限定した参照アドレスレジスタは、前記関連付けられたメモリアドレスが前記メモリアドレスの前記関連付けられた範囲外である場合に、前記参照アドレス更新動作による更新から除外される、請求項9に記載のデータ処理装置。前記複数の参照アドレスレジスタの少なくともサブセットは、参照アドレスパイプラインを形成するために結合されており、前記参照アドレス更新動作は、前記関連付けられたメモリアドレスに応じて、前記参照アドレスパイプラインで前記参照アドレスを更新することを含む、請求項9に記載のデータ処理装置。前記参照アドレスパイプラインは、N個の参照アドレスレジスタを含み、前記参照アドレス更新動作は、前記参照アドレスパイプラインの1番目からN-1番目の参照アドレスレジスタ内の参照アドレスを、前記参照アドレスパイプラインの次の参照アドレスレジスタへシフトすることと、前記関連付けられたメモリアドレスを、前記参照アドレスパイプラインの第1の参照アドレスレジスタへ書き込むことと、を含む、請求項17に記載のデータ処理装置。前記参照アドレスパイプラインは、N個の参照アドレスレジスタを含み、前記選択された参照アドレスレジスタは、1≦M≦Nである場合に、前記参照アドレスパイプラインのM番目の参照アドレスレジスタを含み、前記参照アドレス更新動作は、M>1の場合に、前記参照アドレスパイプラインの1番目からM-1番目の参照アドレスレジスタ内の参照アドレスを、前記参照アドレスパイプラインの次の参照アドレスレジスタへシフトすることと、前記参照アドレスパイプラインの第1の参照アドレスレジスタへ、前記関連付けられたメモリアドレスを書き込むことを含む、請求項17に記載のデータ処理装置。M=1である場合に、前記パイプライン更新動作は、さらに、前記関連付けられたメモリアドレスと前記第1の参照アドレスレジスタの前記参照アドレスとの差が、所定の閾値を上回るかどうかを決定することと、前記差が、前記所定の閾値を上回る場合、前記参照アドレスパイプラインの前記第1の参照アドレスレジスタへ前記関連付けられたメモリアドレスを書き込む前に、前記参照アドレスパイプラインの1番目からN-1番目の参照アドレスレジスタ内の参照アドレスを、前記参照アドレスパイプラインの次の参照アドレスレジスタへシフトすることと、を含む、請求項19に記載のデータ処理装置。前記トレース回路は、前記N個の参照アドレスレジスタに対応するN個の候補の第2の情報の値を決定するように構成され、各候補の第2の情報の値は、前記関連付けられたメモリアドレスと、前記対応する参照アドレスレジスタに格納された前記参照アドレスとの差を示し、前記トレース回路は、前記選択された参照アドレスレジスタとして、最も効率的な候補の第2の情報の値に対応する前記N個の参照アドレスレジスタのうちの1つを選択するように構成され、前記対応する候補の第2の情報の値が同等に効率的である複数の参照アドレスレジスタが存在する場合、前記トレース回路は、前記選択された参照アドレスレジスタとして、前記参照アドレスパイプラインの最後に最も近い前記複数の参照アドレスレジスタのうちの1つを選択する、請求項19に記載のデータ処理装置。前記トレース回路は、前記複数の参照アドレスレジスタのそれぞれへのデフォルトの参照アドレスを格納するように、初期化事象に応答する、請求項1に記載のデータ処理装置。前記初期化事象は、作動中である前記トレース回路である、請求項22に記載のデータ処理装置。前記初期化事象は、トレース同期化データ要素を生成および出力するために、前記トレース回路をトリガするためのトレース同期化事象である、請求項22に記載のデータ処理装置。前記処理回路は、複数の異なる種類のデータ処理命令に応答して、データ処理動作を実行するように構成され、前記複数の種類のデータ処理命令のそれぞれについて、前記トレース回路は、前記トレース回路が、異なる種類のデータ処理命令を示すトレースデータ要素を生成するための同じ参照アドレスレジスタを利用するように、前記選択されたアドレスレジスタとして、前記複数の参照アドレスレジスタのうちのいずれかを選択するように構成される、請求項1に記載のデータ処理装置。前記複数の種類のデータ処理命令は、分岐命令と、例外事象が発生した場合に実行中の命令と、前記例外事象が発生した後に実行が方向付けられる命令と、現在、前記処理回路によって実行中の命令と、ロード命令と、格納命令と、のうちの少なくとも2つを含む、請求項25に記載のデータ処理装置。データ処理装置であって、データを格納するためのメモリ手段であって、対応するメモリアドレスによって識別された複数のメモリロケーションを含む、メモリ手段と、命令に応答して、処理動作を実行するための処理手段と、前記処理手段によって実行された前記処理動作を示すトレースデータ要素のストリームを生成し、前記トレースデータ要素のストリームを出力するためのトレース手段と、を備え、前記トレース手段は、複数の参照アドレスを格納するための複数の参照アドレスレジスタ手段を含み、前記トレース手段は、選択された参照アドレスレジスタ手段として前記複数の参照アドレスレジスタ手段のうちの1つを選択し、i前記複数の参照アドレスレジスタ手段のうちのどれが前記選択された参照アドレスレジスタ手段であるかを示す第1の情報と、ii関連付けられたメモリアドレスと前記選択された参照アドレスレジスタ手段に格納された選択された参照アドレスとの差を示す第2の情報と、を示すトレースデータ要素を生成および出力するために、前記関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を処理する前記処理手段に応答する、データ処理装置。対応するメモリアドレスによって識別された複数のメモリロケーションを含むメモリを含むデータ処理装置のためのデータ処理方法であって、前記方法は、命令に応答して、処理動作を実行するステップと、複数の参照アドレスレジスタに複数の参照アドレスを格納するステップと、前記処理回路によって実行された前記処理動作を示すトレースデータ要素のストリームを生成するステップと、前記トレースデータ要素のストリームを出力するステップと、を含み、トレースデータ要素のストリームを生成する前記ステップは、関連付けられたメモリアドレスに関連付けられた処理動作のパフォーマンスに応答して、選択された参照アドレスレジスタとして前記複数の参照アドレスレジスタのうちの1つを選択し、i前記複数の参照アドレスレジスタのうちのどれが前記選択された参照アドレスレジスタであるかを示す第1の情報と、ii前記関連付けられたメモリアドレスと前記選択された参照アドレスレジスタに格納された選択された参照アドレスとの差を示す第2の情報と、を示すトレースデータ要素を生成および出力することを含む、データ処理方法。命令に応答して、処理装置によって実行された処理動作を監視するためのトレースユニットであって、前記処理装置は、対応するメモリアドレスによって識別された複数のメモリロケーションを含むメモリを含み、前記トレースユニットは、前記処理装置によって実行された前記処理動作を示すトレースデータ要素のストリームを生成し、前記トレースデータ要素のストリームを出力するように構成されたトレース回路を含み、前記トレース回路は、複数の参照アドレスを格納するように構成された複数の参照アドレスレジスタを含み、前記トレース回路は、選択された参照アドレスレジスタとして前記複数の参照アドレスレジスタのうちの1つを選択し、i前記複数の参照アドレスレジスタのうちのどれが前記選択された参照アドレスレジスタであるかを示す第1の情報と、ii前記関連付けられたメモリアドレスと前記選択された参照アドレスレジスタに格納された選択された参照アドレスとの差を示す第2の情報と、を示すトレースデータ要素を生成および出力するために、関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を処理する前記処理回路処理に応答する、トレースユニット。命令に応答して、処理装置によって実行された処理動作を監視するためのトレースユニットであって、前記処理装置は、データを格納するためのメモリ手段を含み、前記メモリ手段は、対応するメモリアドレスによって識別された複数のメモリロケーションを含み、前記トレースユニットは、前記処理装置によって実行された前記処理動作を示すトレースデータ要素のストリームを生成し、前記トレースデータ要素のストリームを出力するためのトレース手段を含み、前記トレース手段は、複数の参照アドレスを格納するための複数の参照アドレスレジスタ手段を含み、前記トレース手段は、選択された参照アドレスレジスタとして前記複数の参照アドレスレジスタのうちの1つを選択し、i前記複数の参照アドレスレジスタ手段のうちのどれが前記選択された参照アドレスレジスタ手段であるかを示す第1の情報と、ii関連付けられたメモリアドレスと前記選択された参照アドレスレジスタ手段に格納された選択された参照アドレスとの差を示す第2の情報と、を示すトレースデータ要素を生成および出力するために、前記関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を処理する前記処理装置に応答する、トレースユニット。命令に応答して、処理装置によって実行された処理動作を示すトレースデータ要素のストリームを分析するための診断装置であって、前記処理装置は、対応するメモリアドレスによって識別された複数のメモリロケーションを含むメモリを含み、前記診断装置は、前記トレースデータ要素のストリームを受信するためのトレース入力と、前記処理動作の処理結果を決定するために、前記トレースデータ要素のストリームを分析するように構成された診断回路と、を備え、前記診断回路は、複数の参照アドレスを格納するように構成された複数の参照アドレスレジスタを含み、前記診断回路は、ai前記複数の参照アドレスレジスタのうちのいずれが選択された参照アドレスレジスタであるかを示す第1の情報と、ii前記関連付けられたメモリアドレスと前記選択された参照アドレスレジスタに格納された選択された参照アドレスとの差を示す第2の情報と、を示すトレースデータ要素を、前記トレースデータ要素のストリームに配置するために、および、b前記第2の情報と前記選択された参照アドレスレジスタに格納された前記選択された参照アドレスとに応じて、前記関連付けられたメモリアドレスを決定するために、関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を処理する前記処理装置の指示に応答する、診断装置。前記トレースデータ要素は、前記第1の情報を示すヘッダ部分と、前記第2の情報を示すアドレス部分とを含む、請求項31に記載の診断装置。前記トレースデータ要素が前記アドレス部分を含まない場合、前記診断回路は、前記選択された参照アドレスと同じになるように前記関連付けられたメモリアドレスを決定する、請求項32に記載の診断装置。前記第2の情報は、前記選択された参照アドレスレジスタの前記選択された参照アドレスの対応する部分に対して異なるビット値を有する前記関連付けられたメモリアドレスの部分を示し、前記診断回路は、i前記選択された参照アドレスのビット値で開始し、ii前記第2の情報によって示された前記関連付けられたメモリアドレスの前記部分のビット値で、前記選択された参照アドレスの前記対応する部分のビット値を置換することによって、得られる値と等しいアドレス値を有するものとして、前記関連付けられたメモリアドレスを決定するように構成される、請求項31に記載の診断装置。前記第2の情報は、前記関連付けられたメモリアドレスと前記選択された参照アドレスとの間の数値の差を示し、前記診断回路は、前記選択された参照アドレスに、前記第2の情報によって示された前記数値の差を追加することによって、前記関連付けられたメモリアドレスを決定するように構成される、請求項31に記載の診断装置。前記診断回路は、前記関連付けられたメモリアドレスを決定した後に、前記関連付けられたメモリアドレスに応じて、前記複数の参照アドレスレジスタのうちの1つの前記参照アドレスを選択的に更新するための参照アドレス更新動作を実行するように構成される、請求項31に記載の診断装置。前記参照アドレス更新動作は、前記関連付けられたメモリアドレスを、前記複数の参照アドレスレジスタの犠牲参照アドレスレジスタへ書き込むことを含む、請求項36に記載の診断装置。前記参照アドレス更新動作は、a少なくとも1つの参照アドレスレジスタについて、前記対応する参照アドレスと前記関連付けられたメモリアドレスとの間のアドレスの差が、所定の閾値を上回るかどうかを決定することと、b前記アドレスの差が、前記少なくとも1つの参照アドレスレジスタのそれぞれについて前記所定の閾値を上回る場合に、前記少なくとも1つの参照アドレスレジスタから選択された犠牲参照アドレスレジスタへ、前記関連付けられたメモリアドレスを書き込むことを含む、請求項36に記載の診断装置。前記トレースデータ要素は、前記第2の情報を示すアドレス部分を含み、前記所定の閾値は、前記アドレス部分の最小サイズに対応する、請求項38に記載の診断装置。前記診断回路は、前記複数の参照アドレスレジスタのうちのどれが前記犠牲参照アドレスレジスタであるかを選択するために、犠牲選択動作を実行するように構成される、請求項37に記載の診断装置。前記診断回路は、前記参照アドレス更新動作による更新から、少なくとも1つの参照アドレスレジスタを選択的に除外するように、ロックダウンシグナルに応答する、請求項36に記載の診断装置。前記複数の参照アドレスレジスタのうちの少なくとも1つは、事前定義された参照アドレスを格納するための固定の参照アドレスレジスタであり、前記固定の参照アドレスレジスタは、前記参照アドレス更新動作による更新から除外される、請求項36に記載の診断装置。前記複数の参照アドレスレジスタのうちの少なくとも1つは、前記メモリアドレスの関連付けられた範囲に関連付けられた範囲を限定した参照アドレスレジスタであり、前記範囲を限定した参照アドレスレジスタは、前記関連付けられたメモリアドレスが前記メモリアドレスの前記関連付けられた範囲外である場合に、前記参照アドレス更新動作による更新から除外される、請求項36に記載の診断装置。前記複数の参照アドレスレジスタの少なくともサブセットは、参照アドレスパイプラインを形成するために結合されており、前記参照アドレス更新動作は、前記関連付けられたメモリアドレスに応じて、前記参照アドレスパイプラインで前記参照アドレスを更新することを含む、請求項36に記載の診断装置。前記参照アドレスパイプラインは、N個の参照アドレスレジスタを含み、前記参照アドレス更新動作は、前記参照アドレスパイプラインの1番目からN-1番目の参照アドレスレジスタ内の参照アドレスを、前記参照アドレスパイプラインの次の参照アドレスレジスタへシフトすることと、前記関連付けられたメモリアドレスを、前記参照アドレスパイプラインの第1の参照アドレスレジスタへ格納することを含む、請求項44に記載の診断装置。前記参照アドレスパイプラインは、N個の参照アドレスレジスタを含み、前記選択された参照アドレスレジスタは、1≦M≦Nである場合に、前記参照アドレスパイプラインのM番目の参照アドレスレジスタを含み、前記参照アドレス更新動作は、M>1の場合に、前記参照アドレスパイプラインの1番目からM-1番目の参照アドレスレジスタ内の参照アドレスを、前記参照アドレスパイプラインの次の参照アドレスレジスタへシフトすることと、前記参照アドレスパイプラインの第1の参照アドレスレジスタへ、前記関連付けられたメモリアドレスを格納することを含む、請求項44に記載の診断装置。M=1である場合に、前記参照アドレス更新動作は、さらに、前記関連付けられたメモリアドレスと前記第1の参照アドレスレジスタの前記参照アドレスとの差が、所定の閾値を上回るかどうかを決定することと、前記差が、前記所定の閾値を上回る場合、前記参照アドレスパイプラインの前記第1の参照アドレスレジスタへ前記関連付けられたメモリアドレスを書き込む前に、前記参照アドレスパイプラインの1番目からN-1番目の参照アドレスレジスタ内の参照アドレスを、前記参照アドレスパイプラインの次の参照アドレスレジスタへシフトすることを含む、請求項46に記載の診断装置。前記診断回路は、前記複数の参照アドレスレジスタのそれぞれへのデフォルトの参照アドレスを格納するように、初期化事象に応答する、請求項31に記載の診断装置。前記初期化事象は、作動中である前記診断回路である、請求項48に記載の診断装置。前記初期化事象は、前記トレースデータ要素のストリーム内のトレース同期化データ要素に応答する前記診断回路である、請求項48に記載の診断装置。命令に応答して、処理装置によって実行された処理動作を示すトレースデータ要素のストリームを分析するための診断装置であって、前記処理装置は、データを格納するためのメモリ手段を含み、前記メモリ手段は、対応するメモリアドレスによって識別された複数のメモリロケーションを含み、前記診断装置は、前記トレースデータ要素のストリームを受信するためのトレース入力手段と、前記処理動作の処理結果を決定するために、前記トレースデータ要素のストリームを分析するための診断手段と、を備え、前記診断手段は、複数の参照アドレスを格納するための複数の参照アドレスレジスタ手段を含み、前記診断手段は、ai前記複数の参照アドレスレジスタ手段のうちのどれが選択された参照アドレスレジスタ手段であるかを示す第1の情報と、ii前記関連付けられたメモリアドレスと前記選択された参照アドレスレジスタ手段に格納された選択された参照アドレスとの差を示す第2の情報と、を示すトレースデータ要素を、前記トレースデータ要素のストリームに配置するために、および、b前記第2の情報と前記選択された参照アドレスレジスタ手段に格納された前記選択された参照アドレスとに応じて、前記関連付けられたメモリアドレスを決定するために、関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を処理する前記処理装置の指示に応答する、診断装置。命令に応答して、処理装置によって実行された処理動作を示すトレースデータ要素のストリームを分析するための方法であって、前記処理装置は、対応するメモリアドレスによって識別された複数のメモリロケーションを含むメモリを含み、前記方法は、前記トレースデータ要素のストリームを受信するステップと、複数の参照アドレスレジスタに複数の参照アドレスを格納するステップと、前記処理動作の処理結果を決定するために、前記トレースデータ要素のストリームを分析するステップと、を含み、前記分析手段は、関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を処理する前記処理装置の指示に応答して、ai前記複数の参照アドレスレジスタのうちのどれが選択された参照アドレスレジスタであるかを示す第1の情報と、ii前記関連付けられたメモリアドレスと前記選択された参照アドレスレジスタに格納された選択された参照アドレスとの差を示す第2の情報と、を示すトレースデータ要素を、前記トレースデータ要素のストリームに配置することと、b前記第2の情報と前記選択された参照アドレスレジスタに格納された前記選択された参照アドレスとに応じて、前記関連付けられたメモリアドレスを決定することを含む、方法。一態様から見ると、本発明は、データ処理装置であって、対応するメモリアドレスによって識別された複数のメモリロケーションを含むメモリと、命令に応答して、処理動作を実行するように構成された処理回路と、前記処理回路によって実行された前記処理動作を示すトレースデータ要素のストリームを生成し、前記トレースデータ要素のストリームを出力するように構成されたトレース回路と、を備え、前記トレース回路は、複数の参照アドレスを格納するように構成された複数の参照アドレスレジスタを含み、前記トレース回路は、選択された参照アドレスレジスタとして前記複数の参照アドレスレジスタのうちの1つを選択し、i前記複数の参照アドレスレジスタのうちのどれが前記選択された参照アドレスレジスタであるかを示す第1の情報と、ii関連付けられたメモリアドレスと前記選択された参照アドレスレジスタに格納された選択された参照アドレスとの差を示す第2の情報と、を示すトレースデータ要素を生成および出力するために、関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を処理する処理回路に応答する、データ処理装置を提供する。本技術は、処理動作を実行するための処理回路を有するデータ処理装置と、処理回路によって実行された処理動作を示すトレースデータ要素のストリームを生成および出力するためのトレース回路とを提供する。トレース回路は、複数の参照アドレスを格納するように構成された複数の参照アドレスレジスタを有する。処理回路が関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を処理する場合、トレース回路は、選択された参照アドレスレジスタとして複数の参照アドレスレジスタのうちの1つのいずれかを選択し、複数の参照アドレスレジスタのどれが選択されたアドレスレジスタであるかを示す第1の情報、および関連付けられたメモリアドレスと、選択された参照アドレスレジスタの選択された参照アドレスとの差を示す第2の情報を示すトレースデータ要素を生成および出力する。関連付けられたメモリアドレスと選択された参照アドレスとの差が小さければ小さいほど、関連付けられたメモリアドレスを表すために必要なトレースデータの量は小さくなる。トレース回路が、所与の関連付けられたメモリアドレスについて、複数のアドレスレジスタのいずれかを選択できるようにし、また、選択された参照アドレスレジスタが識別され、選択された参照アドレスと関連付けられたメモリアドレスとの差が示されるトレースデータ要素を生成することにより、複数の参照アドレスレジスタ内の参照アドレスのうちの1つが、関連付けられたメモリアドレスと一致する、または、関連付けられたメモリアドレスとわずかに異なる可能性が高くなる。このため、トレースデータが大きく圧縮される可能性が高くなり、従って、トレースデータを格納するためのトレースバッファがオーバーフローする、または生成されたトレースデータが利用可能なトレース帯域幅を超える可能性が低下する。関連付けられたメモリアドレスが、選択された参照アドレスと完全に一致する場合、第2の情報は、関連付けられたメモリアドレスと選択された参照アドレスとの間でゼロの差を示すことに留意されたい。トレースデータ要素は、多くの方法で第1の情報および第2の情報を符号化し得る。どの参照アドレスレジスタが選択された参照アドレスレジスタであるか、および、関連付けられたメモリアドレスと選択された参照アドレスとの差の両方を識別する単一のデータ値を含むトレースデータ要素を提供することが可能である。しかしながら、一実施形態において、トレースデータ要素は、選択された参照アドレスレジスタを示す第1の情報を示すヘッダ部分、および関連付けられたメモリアドレスと選択された参照アドレスとの間のアドレスの差を示す第2の情報を示すアドレス部分を含み得る。関連付けられたメモリアドレスが、選択された参照アドレスと完全に一致するケースを、多くの方法でトレースデータ要素において正確に符号化し得る。例えば、トレースデータ要素のアドレス部分を、関連付けられたメモリアドレスおよび選択された参照アドレスの間のゼロの差を示すゼロの値に設定し得る。あるいは、所定の識別子を、関連付けられたメモリアドレスおよび選択された参照アドレスの間の完全な一致が存在することを表すトレースデータ要素に含むことができる。しかしながら、一実施形態において、トレース回路は、関連付けられたアドレスと選択された参照アドレスとの間の差がゼロである場合に、トレースデータ要素からアドレス部分を省略し得る。この場合、ヘッダ部分のみを含み、アドレス部分を含まないトレースデータ要素は、選択された参照アドレスと関連付けられたメモリアドレスとの間の完全な一致が存在するつまり、アドレス部分の欠如は、関連付けられたメモリアドレスと選択された参照アドレスとの差がないことを示す第2の情報を伝えることを示すことができる。関連付けられたメモリアドレスおよび選択された参照アドレスの間の完全な一致が存在する場合に、アドレス部分を省略することで、トレースデータの量を小さくすることができる。トレース回路は、多くの方法で選択された参照アドレスレジスタを選択するように構成され得る。一実施形態において、トレース回路は、それぞれの複数の参照アドレスレジスタに対応する複数の候補の第2の情報の値を決定するように構成され得る。各候補の第2の情報の値は、関連付けられたメモリアドレスとその候補の第2の情報の値に対応する参照アドレスレジスタに格納された参照アドレスとの間の差を示す。トレース回路は、選択された参照アドレスレジスタとして、最も効率的な候補の第2の情報の値に対応する参照アドレスレジスタを選択し得る。最も効率的な候補の第2の情報の値は、典型的には、トレースデータ要素の最も効率的な符号化を生じさせる値となる。複数の候補の第2の情報の値が同等に効率的である場合、これらの値のいずれか1つを、最も効率的な候補の第2の情報の値として選択し得る。次いで、トレース回路は、最も効率的な候補の第2の情報の値に対応する第2の情報を示すトレースデータ要素を生成し得る。選択された参照アドレスレジスタとして、最も効率的な候補の値に対応する参照アドレスレジスタを選択することにより、トレースデータを、より効率的に符号化できる。一実施形態において、最も効率的な候補の第2の情報の値は、対応する第2の情報を提供するために、トレースデータ要素に含まれる。しかしながら、他の実施形態において、最も効率的な候補の第2の情報の値は、トレースデータ要素に常に含まれる必要はなく、時には、対応する第2の情報を示すために別の種類の情報がトレースデータ要素に含まれてもよい。例えば、関連付けられたメモリアドレスおよび選択された参照アドレスの間に完全な一致が存在する場合、最も効率的な候補の第2の情報は、ゼロの差を示し、こうして、対応する第2の情報を、上記のように完全な一致を示すアドレス情報の欠如により、ゼロビットを用いてトレースデータ要素に表し得る。一例において、最も効率的な候補の第2の情報の値は、対応する第2の情報を最小のビットを用いて表すことができる候補の第2の情報の値である。トレースデータ要素において、より少ないビットを用いて表すことができる第2の情報を含むことにより、トレースデータの量を少なくすることができる。あるいは、最も効率的な候補の第2の情報の値を、トレースデータ要素のストリーム内のトレースデータ要素に含む場合、対応する第2の情報が、トレースデータ要素のストリーム内のトレースデータの全ての最小の量となる候補の第2の情報の値として選択し得る。このため、選択された参照アドレスレジスタとして参照アドレスレジスタのうちの適した1つを選択することにより、トレースデータの合計量を減らすことができる。第2の情報は、関連付けられたメモリアドレスと選択された参照アドレスとの間の差を異なる方法で示し得る。一実施形態において、第2の情報は、選択された参照アドレスレジスタの選択された参照アドレスの対応する部分に対して異なるビット値を有する関連付けられたメモリアドレスの部分を示してもよい。選択された参照アドレスの対応するビットに対して異なるビットを有する部分を示す第2の情報を提供し、関連付けられたメモリアドレスおよび選択された参照アドレスにおいて同じである共通の部分を省略することにより、第2の情報を、関連付けられたメモリアドレスよりも少ないビットを用いて表すことができる。あるいは、第2の情報は、関連付けられたメモリアドレスと選択されたメモリアドレスとの間の数値の差を示し得る。この場合、トレース回路は、数値の差を生成するために、選択された参照アドレスから関連付けられたメモリアドレスを、または関連付けられたメモリアドレスから選択された参照アドレスを差し引くことにより、第2の情報を生成し得る。トレース動作中に変化しない固定の参照アドレスを格納する参照アドレスレジスタを提供することが可能である。しかしながら、一実施形態において、トレースデータ要素を生成後に、関連付けられたメモリアドレスに応じて、複数の参照アドレスレジスタのうちの少なくとも1つの参照アドレスを選択的に更新するための参照アドレス更新動作を実行するために、トレース回路を構成してもよい。本技術は、ある処理動作のための関連付けられたメモリアドレスが、1つ以上の以下の処理動作のための関連付けられたメモリアドレスと類似している可能性が大きいことを認識している。例えば、プログラム命令のループは、同じ送信先アドレスへ何度も分岐してもよく、または、一連のロード/格納動作は、隣接するメモリアドレスのブロック上で実行されてもよい。このため、トレース回路に、関連付けられたメモリアドレスに応じて、参照アドレスレジスタのうちの少なくとも1つの参照アドレスを更新する能力を与えることにより、以下の処理動作のための関連付けられたメモリアドレスが参照アドレスのうちの1つと同一または類似であるの可能性が高くなり、そのため、トレースデータの合計量を小さくできる可能性がある。一実施形態において、参照アドレス更新動作は、複数の参照アドレスレジスタから選択された犠牲参照アドレスレジスタへ関連付けられたアドレスを書き込むことを含む。関連付けられたメモリアドレスは、次いで、トレースデータ要素を生成するために、以下の動作で使用可能な参照アドレスのうちの1つになる。関連付けられたメモリアドレスを用いて参照アドレスのうちの1つを更新することにより、以下の処理動作のための関連付けられたメモリアドレスと、参照アドレスのうちの1つとの差は小さい可能性がより大きくなる。トレース回路において、各処理動作後、または各トレースデータ要素生成後に、参照アドレスレジスタを更新することは不要である。時により、トレース回路は、いかなる参照アドレスも更新しない場合がある。例えば、一実施形態において、参照アドレス更新動作は、a少なくとも1つの参照アドレスレジスタについて、対応する参照アドレスと前記関連付けられたメモリアドレスとの間のアドレスの差が、所定の閾値を上回るかどうかを決定することと、b前記アドレスの差が前記少なくとも1つの参照アドレスレジスタのうちのそれぞれについて、前記所定の閾値を上回る場合に、前記少なくとも1つの参照アドレスレジスタから選択された犠牲参照アドレスレジスタへ、前記関連付けられたメモリアドレスを書き込むことと、を含む。これによって、いずれかの所与の関連付けられたメモリアドレスが、参照アドレスのうちの1つとわずかに異なる可能性が高まるため、参照アドレスレジスタは、異なる範囲のメモリアドレススペースに、広く拡散された異なる参照アドレスを格納することが望ましい場合がある。同様の参照アドレス値が参照アドレスレジスタにあまりに多く格納されるのを防ぐために、トレース回路は、参照アドレスレジスタのうちの少なくとも1つについて、関連付けられたメモリアドレスと対応する参照アドレスとの間のアドレスの差が所定の閾値を上回るかどうかを決定し得る。次いで、トレース回路は、アドレスの差が所定の閾値を上回る場合に、関連付けられたメモリアドレスを犠牲参照アドレスレジスタに書き込み得る。アドレスの差が閾値を上回らない場合、これは、参照アドレスレジスタに既に格納された参照アドレスのうちの1つが、実質的に、参照アドレスレジスタへ格納された場合の関連付けられた参照アドレスがそうなるであろうと同程度、トレースデータの圧縮に有用であることを示すため、この場合、関連付けられたメモリアドレスによる参照アドレスレジスタの更新に関し、利点はほとんどない。そのため、この場合では、トレース回路は、関連付けられたメモリアドレスによって参照アドレスレジスタを更新しないように選択できる。所与の関連付けられたメモリアドレスによって参照アドレスレジスタを更新するかどうかを決定するための閾値アドレスの差は、異なる方法で定義してもよい。例えば、所定の閾値は、参照アドレスの対応する部分とは異なる関連付けられたメモリアドレスの部分のための、閾値ビット数であってもよい。例えば、閾値ビット数が4ビットである場合、トレース回路は、関連付けられたメモリアドレスが4ビットよりも多く既存の参照アドレスのうちの1つと異なる場合に、関連付けられたメモリアドレスによって、参照アドレスのうちの1つを更新できる。あるいは、関連付けられたメモリアドレスと既存の参照アドレスとの間の数値の差が閾値よりも大きい場合に、関連付けられたメモリアドレスが参照アドレスレジスタのうちの1つに格納されるように、閾値アドレスの差を、数値の差として定義してもよい。一実施形態において、所定の閾値は、第2の情報を示すためのアドレス部分の最小サイズに対応する。いくつかのトレース符号化スキームにおいて、第2の情報を示すためのアドレス部分は、最小サイズを有してもよい。関連付けられたメモリアドレスと既存の参照アドレスのうちの1つとの差が所定の閾値を上回らないつまり、最小サイズのアドレス部分を用いて差を既に表すことができる場合、参照アドレスとして関連付けられたメモリアドレスを使用することは、既存の参照アドレスを用いて既に達成できる以上に、トレースデータの量を低下させることはなく、そのため、関連付けられたメモリアドレスの参照アドレスレジスタへの書き込みにおいて、有利な点はほとんどない。所定の閾値が、関連付けられたメモリアドレスと参照アドレスとの間において変化する部分の閾値ビット数である場合、閾値は、アドレス部分の最小サイズのビット数に対応し得る。あるいは、所定の閾値が数値の差である場合、これは、アドレス部分の最小サイズを用いて表すことができる最大の正または負の値に対応する場合がある。例えば、最小サイズが6ビットである場合、およびアドレス部分が符号なしのバイナリ表現を用いる場合、閾値は、アドレス部分を用いて表すことが可能な最大の値である、63という数値の差に対応する場合がある。あるいは、例えば、6ビットのアドレス部分が-32~31の範囲の値を表せるように、アドレス差を、符号付きのバイナリ表現を用いて表し得る。この場合、所定の閾値は、負のアドレス差で32、正のアドレス差で31にできる。負の差の値について、差は、閾値よりもさらに負の値が大きい場合に、閾値を上回ると考えられ得るつまり、その絶対値は閾値の絶対値よりも大きい、例えば、-35という差は、-32という閾値を上回ると考えられることに留意されたい。トレース回路は、参照アドレスレジスタのどれが、関連付けられたメモリアドレスが参照アドレス更新中に書き込まれる犠牲参照アドレスレジスタであるかを選択するために、犠牲選択動作を実行するように構成され得る。いずれかの参照アドレスが既に犠牲アドレスレジスタに格納されている場合、これは、関連付けられたメモリアドレスによって上書きされる。トレース回路は、いずれかの種類の犠牲選択動作、例えば、ランダム、使用頻度が最も低いLRUまたはラウンドロビンを使用し得る。例えば、レジスタは、最も最近に更新されたレジスタを示すポインタに関連付けられてもよく、ラウンドロビン犠牲選択スキームは、ポインタによって示されたレジスタの後続のレジスタの除去のために選択することにより、実装されてもよい。一実施形態において、トレース回路は、参照アドレス更新動作による更新から少なくとも1つの参照アドレスレジスタを選択的に除外するために、ロックダウンシグナルに応答し得る。このため、ロックダウンシグナルは、これらのレジスタがそれらの現在の参照アドレスを格納し続けるように、所与のレジスタを動的に選択するように使用できる。例えば、特定のシーケンスのプログラム命令が、特定の関連付けられたメモリアドレスを何度も使用することである場合、および参照アドレスレジスタが、繰り返される関連付けられたメモリアドレスと類似の所与の参照アドレスを格納する場合、所与の参照アドレスが破棄または上書きされるべきではないことをトレース回路に通知するためにロックダウンシグナルを使用でき、これにより、トレースストリームを大幅に圧縮できる可能性が高まる。参照アドレスレジスタの全てが更新可能である必要はない。一実施形態において、所定の参照アドレスを格納するための少なくとも1つの固定の参照アドレスレジスタが存在してもよい。次いで、固定の参照アドレスレジスタを、参照アドレス更新動作による更新から除外してもよい。例えば、プログラム命令に特定のメモリアドレスを頻繁に使用してもよいため、そのアドレスを格納する固定の参照アドレスレジスタを提供することが有益である可能性がある。一実施形態において、参照アドレスレジスタのうちの少なくとも1つを、メモリアドレススペースの関連付けられた範囲のメモリアドレスに関連付けられた、範囲を限定された参照アドレスレジスタにしてもよい。トレース回路は、次いで、関連付けられたメモリアドレスがそのレジスタの関連付けられた範囲外である場合に、範囲が限定された参照アドレスレジスタを更新から除外してもよい。このため、範囲が限定された参照アドレスレジスタは、関連付けられた範囲内においてアドレスを格納するのみであってもよい。関連付けられた範囲は、連続するメモリ範囲である必要はないが、さらに、アドレスの複数の個別範囲を含んでもよい。一例において、異なる範囲が限定されたレジスタが異なるアドレス範囲にそれぞれ関連付けられて提供される場合に、関連付けられたメモリアドレスと参照アドレスのうちの1つとの間の小さな差が存在する可能性が高まるように、参照アドレスレジスタが、全メモリアドレススペース全体に分散される参照アドレスを格納することを確実にためにこれを使用できる。別の例において、参照アドレスレジスタは、関連付けられたメモリアドレスの少なくとも1つの範囲がいかなる参照アドレスレジスタへの書き込みから除外されるように、範囲を限定されてもよい。一実施形態において、参照アドレスレジスタの少なくともサブセットは、参照アドレスパイプラインを形成するように結合されてもよく、参照アドレス更新動作は、関連付けられたメモリアドレスに応じて、パイプライン内のアドレスを更新することを含んでもよい。パイプラインは、より最近の関連付けられたアドレスの前に、より以前の関連付けられたアドレスが書き込まれるように、参照アドレスを更新するための便利なスキームを提供できる。パイプラインにおいて、参照アドレス更新動作は、パイプラインの参照アドレスレジスタの間で参照アドレスを選択的にシフトすることを含んでもよい。一実施形態において、参照アドレスパイプラインは、N個の参照アドレスレジスタを含み、前記参照アドレス更新動作は、前記参照アドレスパイプラインの1番目からN-1番目の参照アドレスレジスタ内の参照アドレスを、前記参照アドレスパイプラインの次の参照アドレスレジスタへシフトすること、および、前記関連付けられたメモリアドレスを、前記参照アドレスパイプラインの第1の参照アドレスレジスタへ書き込むことを含む。この例では、パイプラインの第1の参照アドレスレジスタは、最も最近の関連付けられたメモリアドレスを含み、第2のアドレスレジスタは、第2の最も最近の関連付けられたメモリアドレス等を含む。パイプライン内のN番目のアドレスレジスタのコンテンツは、新しい関連付けられたメモリアドレスがパイプラインに追加されると失われる。例えばプログラムループにおいて命令ストリーム内で何度も同じ分岐送信先アドレスが生じる可能性があるため、この技術は命令アドレスにおいて得に有用であり、そのため、パイプラインがN個の最も最近の関連付けられたメモリアドレスに対応する参照アドレスを含むように構成することにより、関連付けられたメモリアドレスが、参照アドレスのうちの1つと完全に一致する可能性が高まる。あるいは、参照アドレスパイプラインは、N個の参照アドレスレジスタを含んでもよく、選択された参照アドレスレジスタがパイプラインのM番目の参照アドレスレジスタである場合1≦M≦Nである場合、参照アドレス更新動作は、M>1の場合に、前記参照アドレスパイプラインの1番目からM-1番目の参照アドレスレジスタ内の参照アドレスを、前記参照アドレスパイプラインの次の参照アドレスレジスタへシフトすることと、前記参照アドレスパイプラインの第1の参照アドレスレジスタへ、前記関連付けられたメモリアドレスを書き込むことを含んでもよい。この場合、パイプラインの参照アドレスレジスタのどれが更新されるかは、どの参照アドレスレジスタが、トレースデータ要素を生成するための選択された参照アドレスレジスタとして使用されたかによる。M>1の場合に、選択された参照アドレスレジスタに先行する参照アドレスレジスタ内の参照アドレスは、次のレジスタアドレスレジスタにシフトされこのため選択された参照アドレスレジスタは、先行する参照アドレスレジスタの参照アドレス内で更新される、次いで、関連付けられたメモリアドレスは、パイプラインの第1の参照アドレスレジスタに書き込まれる。この技術において、トレースデータ要素の生成に使用された参照アドレスが、パイプラインから除かれ、次いで、関連付けられたメモリアドレスと置換されるため、パイプライン内に複数の重複または類似のアドレスが存在する可能性が低下し、そのため、パイプライン内の参照アドレスがメモリスペース全体においてより均一に分散される。それにもかかわらず、関連付けられたメモリアドレスを第1の参照アドレスレジスタに追加することにより、より最近の関連付けられたメモリアドレスが、再び、パイプラインの最初となり、そのため、より以前の関連付けられたメモリアドレスよりも長期間、パイプラインに存在する。この技術は、特にデータアドレスについて有用であり得、この場合、参照アドレスの完全な一致の可能性は命令アドレスよりも低く、そのため、利用可能な参照アドレスの幅広い拡散を提供するために有用であり得る。選択された参照アドレスレジスタがパイプラインの第1の参照アドレスレジスタつまりM=1である場合、パイプライン動作は、さらに、前記関連付けられたメモリアドレスと前記第1の参照アドレスレジスタの参照アドレスとの差が、所定の閾値を上回るかどうかを決定することと、前記差が、前記所定の閾値を上回る場合、前記参照アドレスパイプラインの前記第1の参照アドレスレジスタへ前記関連付けられたメモリアドレスを書き込む前に、前記参照アドレスパイプラインの次の参照アドレスレジスタへ、前記参照アドレスパイプラインの1番目からN-1番目の参照アドレスレジスタ内の参照アドレスをシフトすることを含んでもよい。この技術は、再び、パイプラインへ同様のアドレス値をあまりに多く書き込むことが望ましくないことを認識している。M=1であり、第1の参照アドレスと関連付けられたメモリアドレスとの差が所定の閾値を上回らない場合、パイプライン内の参照アドレスを全て上方にシフトしshiftingup、第1の参照アドレスレジスタへ関連付けられたメモリアドレスを書き込むことにより、パイプラインの最初の2つのレジスタに、2つの類似したアドレス値が生じる。従って、代わりに、トレース回路は、単に、関連付けられたメモリアドレスで、第1の参照アドレスレジスタのアドレスを置換する。一方で、M=1であり、第1の参照アドレスと関連付けられたメモリアドレスとの差が所定の閾値を上回る場合、パイプライン内に両方のアドレスを提供することが有用であり、そのため、トレース回路は、パイプラインの一段上に参照アドレスをシフトし、次いで、関連付けられたメモリアドレスを第1の参照アドレスレジスタに書き込む。この技術により、アドレスレジスタ内の非常に類似のアドレス値を生じさせる、多すぎるパイプラインのシフトを生じさせずに、アドレスレジスタを投入するpopulatedことが可能になる。再び、所定の閾値が上記のように最小アドレス部分のサイズに対応してもよく、参照アドレスの対応する部分に対して異なる関連付けられたメモリアドレスの部分の、数値の差の閾値または閾値ビット数として示されてもよい。上述のように、トレース回路は、アドレスレジスタのどれが最も効率的な候補の第2の情報の値に対応するかに応じて、選択された参照アドレスレジスタを選択し得る。パイプラインの実施形態において、対応する候補の第2の情報の値が同等に効率的である複数の参照アドレスレジスタが存在する場合、トレース回路は、選択された参照アドレスレジスタとして、参照アドレスパイプラインの最後に最も近い複数の参照アドレスレジスタのうちの1つを選択し得る。同等に効率的な参照アドレスのうちの最も古いものつまり、参照アドレスは、将来的なアドレストレースについて有用である可能性が最も低いがパイプラインから除去され、トレースデータを生成するために使用された後で、関連付けられたアドレスによって置換されることを確実にするため、これは有用である。あるいは、対応する候補の第2の情報の値が同等に効率的である複数の参照アドレスレジスタが存在する場合、トレース回路は、選択された参照アドレスレジスタとして、複数の参照アドレスレジスタのうちのいずれか1つを選択し得る。一実施形態において、トレース回路は、複数の参照アドレスレジスタのそれぞれにデフォルトの参照アドレスを格納するために、初期化事象に応答し得る。例えば、デフォルトの参照アドレスは、そのビットが全てゼロ値を有するアドレスにしてもよい。デフォルトの参照アドレスは、アドレスレジスタのそれぞれと同じである必要はない。一実施形態において、トレース回路がトレースストリームの生成を開始する場合に、参照アドレスレジスタが、全て、公知のデフォルトの参照アドレス値を格納するように、初期化事象は、作動中のトレース回路になっている。このため、トレースストリームを分析する診断ユニットは、参照アドレスレジスタのコンテンツがトレースストリームの最初にあることを知ることができる。さらに、初期化事象は、トレース同期化データ要素を生成および出力するために、トレース回路をトリガするためのトレース同期化事象であってもよい。典型的には、トレースストリームのトレースデータ要素の分析が、ストリームの以前のトレースデータ要素の分析に基づく例えば、診断ユニットが、以前のトレースデータ要素から推測された処理結果に基づいて、参照アドレスレジスタのコンテンツを決定してもよいため、これは有用である。トレース同期化データ要素を生成および出力するために、トレース回路をトリガするためのトレース同期化事象を提供し、トレース同期化事象の発生時における参照アドレスレジスタの再初期化を行うことで、診断ユニットに、以前のトレースデータの知識を必要とせずに、診断ユニットがトレースストリームの分析を開始できるトレースストリーム内の参照ポイントが提供される。これは、診断ユニットは、トレースストリームの開始時において開始しなければならないのではなく、トレース同期化データ要素によって示された参照ポイントからトレースデータの分析を開始できることを意味する。本技術において、処理回路は、複数の異なる種類のデータ処理命令に応答してデータ処理動作を実行するように構成されてもよく、これらの複数の種類のそれぞれについて、トレース回路が異なる種類のデータ処理命令を示すトレースデータ要素を示すための同じ参照アドレスレジスタを使用するように、トレース回路は、参照アドレスレジスタのいずれかを選択するように構成されてもよい。このため、選択された参照アドレスレジスタの選択は、データ処理命令の種類に依存しない。各アドレスレジスタは、いずれかの種類の命令に関連付けられたアドレスを保持してもよい。いずれの命令について、トレース回路は、選択されたレジスタとして選択参照アドレスレジスタのいずれかを選択する自由を有し、そのため、関連付けられたメモリアドレスと参照アドレスのうちの1つとに小さな差が存在する可能性が大きくなる。従って、いずれかの特定の種類の命令について単一のアドレスレジスタのみを提供する先行技術と比較して、トレースストリームが大幅に圧縮される可能性がある。複数の種類のデータ処理命令は、例えば、分岐命令、例外事象が発生した場合に実行される命令、例外事象が発生後に実行が方向付けられる命令、処理回路によって現在実行される命令、ロード命令および格納命令のうちの少なくとも2つを含んでもよい。別の態様から見ると、本発明は、データを格納するためのメモリ手段であって、対応するメモリアドレスによって識別された複数のメモリロケーションを含む、メモリ手段と、命令に応答して、処理動作を実行するための処理手段と、前記処理手段によって実行された前記処理動作を示すトレースデータ要素のストリームを生成し、前記トレースデータ要素のストリームを出力するためのトレース手段と、を備え、前記トレース手段は、複数の参照アドレスを格納するための複数の参照アドレスレジスタ手段を含み、前記トレース手段は、選択された参照アドレスレジスタ手段として前記複数の参照アドレスレジスタ手段のうちの1つを選択し、i前記複数の参照アドレスレジスタ手段のうちのどれが前記選択された参照アドレスレジスタ手段であるかを示す第1の情報と、ii関連付けられたメモリアドレスと前記選択された参照アドレスレジスタ手段に格納された選択された参照アドレスとの差を示す第2の情報と、を示すトレースデータ要素を生成および出力するために、関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を処理する前記処理手段に応答する、データ処理装置を提供する。さらなる態様から見ると、本発明は、対応するメモリアドレスによって識別された複数のメモリロケーションを含むメモリを含むデータ処理装置のためのデータ処理方法であって、前記方法は、命令に応答して、処理動作を実行するステップと、複数の参照アドレスレジスタに複数の参照アドレスを格納するステップと、前記処理回路によって実行された前記処理動作を示すトレースデータ要素のストリームを生成するステップと、前記トレースデータ要素のストリームを出力するステップと、を含み、トレースデータ要素のストリームを生成する前記ステップは、関連付けられたメモリアドレスに関連付けられた処理動作のパフォーマンスに応答して、選択された参照アドレスレジスタとして前記複数の参照アドレスレジスタのうちの1つを選択し、i前記複数の参照アドレスレジスタのうちのどれが前記選択された参照アドレスレジスタであるかを示す第1の情報と、ii前記関連付けられたメモリアドレスと前記選択された参照アドレスレジスタに格納された選択された参照アドレスとの差を示す第2の情報と、を示すトレースデータ要素を生成および出力することを含む、データ処理方法を提供する。さらに別の態様から見ると、本発明は、命令に応答して、処理装置によって実行された処理動作を監視するためのトレースユニットであって、前記処理装置は、対応するメモリアドレスによって識別された複数のメモリロケーションを含むメモリを含み、前記トレースユニットは、前記処理装置によって実行された前記処理動作を示すトレースデータ要素のストリームを生成し、前記トレースデータ要素のストリームを出力するように構成されたトレース回路を含み、前記トレース回路は、複数の参照アドレスを格納するように構成された複数の参照アドレスレジスタを含み、前記トレース回路は、選択された参照アドレスレジスタとして前記複数の参照アドレスレジスタのうちの1つを選択し、i前記複数の参照アドレスレジスタのうちのどれが前記選択された参照アドレスレジスタであるかを示す第1の情報と、ii前記関連付けられたメモリアドレスと前記選択された参照アドレスレジスタに格納された選択された参照アドレスとの差を示す第2の情報と、を示すトレースデータ要素を生成および出力するために、関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を処理する前記処理回路処理に応答する、トレースユニットを提供する。さらなる態様から見ると、本発明は、命令に応答して、処理装置によって実行された処理動作を監視するためのトレースユニットであって、前記処理装置は、データを格納するためのメモリ手段を含み、前記メモリ手段は、対応するメモリアドレスによって識別された複数のメモリロケーションを含み、前記トレースユニットは、前記処理装置によって実行された前記処理動作を示すトレースデータ要素のストリームを生成し、前記トレースデータ要素のストリームを出力するためのトレース手段を含み、前記トレース手段は、複数の参照アドレスを格納するための複数の参照アドレスレジスタ手段を含み、前記トレース手段は、選択された参照アドレスレジスタとして前記複数の参照アドレスレジスタのうちの1つを選択し、i前記複数の参照アドレスレジスタ手段のうちのどれが前記選択された参照アドレスレジスタ手段であるかを示す第1の情報と、ii前記関連付けられたメモリアドレスと前記選択された参照アドレスレジスタ手段に格納された選択された参照アドレスとの差を示す第2の情報と、を示すトレースデータ要素を生成および出力するために、関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を処理する前記処理装置に応答する、トレースユニットを提供する。別の態様から見ると、本発明は、命令に応答して、処理装置によって実行された処理動作を示すトレースデータ要素のストリームを分析するための診断装置であって、前記処理装置は、対応するメモリアドレスによって識別された複数のメモリロケーションを含むメモリを含み、前記診断装置は、前記トレースデータ要素のストリームを受信するためのトレース入力と、前記処理動作の処理結果を決定するために、前記トレースデータ要素のストリームを分析するように構成された診断回路と、を備え、前記診断回路は、複数の参照アドレスを格納するように構成された複数の参照アドレスレジスタを含み、前記診断回路は、ai前記複数の参照アドレスレジスタのうちのいずれが選択された参照アドレスレジスタであるかを示す第1の情報と、ii前記関連付けられたメモリアドレスと前記選択された参照アドレスレジスタに格納された選択された参照アドレスとの差を示す第2の情報と、を示すトレースデータ要素を、前記トレースデータ要素のストリームに配置するために、および、b前記第2の情報と前記選択された参照アドレスレジスタに格納された前記選択された参照アドレスとに応じて、前記関連付けられたメモリアドレスを決定するために、関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を処理する前記処理装置の指示に応答する、診断装置を提供する。生成されたトレースデータ要素を分析するための診断装置は、処理装置のトレースユニット内のものに対応する参照アドレスレジスタを含んでもよい。トレースデータ要素の分析時において、診断回路は、処理装置によって命令が実行される指示へのアクセスを有する。処理装置が関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を処理する指示に、診断回路が遭遇する場合、診断回路は、トレースデータ要素のストリームにおいて、対応するトレースデータ要素を配置できる。対応するトレースデータ要素は、トレースデータ要素を生成する場合にトレースユニットによって選択された選択参照アドレスレジスタを示す第1の情報、関連付けられたメモリアドレスと選択された参照アドレスレジスタに格納された選択された参照アドレスとの差を示す第2の情報を示す。次いで、診断回路は、第1の情報によって示された参照アドレスレジスタにアクセスし、第2の情報および参照アドレスレジスタに格納された選択参照アドレスに応じて、関連付けられたメモリアドレスを決定できる。このため、診断回路は、関連付けられたメモリアドレスを識別するために、トレースストリームを解凍できる。再び、トレースデータ要素の種々の符号化を使用してもよいが、一実施形態において、トレースデータ要素は、第1の情報を示すヘッダ部分および第2の情報を示すアドレス部分を含んでもよい。トレースデータ要素がアドレス部分を含まないことがわかっている場合に、診断回路は、関連付けられたメモリアドレスが選択された参照アドレスと同じであると決定してもよい。このため、アドレス部分の欠如は、関連付けられたメモリアドレスおよび選択された参照アドレスの間の完全な一致が存在することを示唆する。選択アドレスの対応する部分に対して異なるビット値を有する関連付けられたメモリアドレスの一部として、第2の情報が示される場合、診断回路は、i前記選択された参照アドレスのビット値で開始し、ii前記第2の情報によって示された前記関連付けられたメモリアドレスの前記部分のビット値で、前記選択された参照アドレスの前記対応する部分のビット値を置換することによって、得られる値と等しいアドレス値を有するものとして、前記関連付けられたメモリアドレスを決定してもよい。診断回路は、実際にはステップiおよびiiを実行する必要はないが、ステップiおよびiiの実行によって得られた値に等しい値を有するアドレス値を生じさせる論理または演算動作のいずれかの組み合わせを実行してもよいことが理解されよう。あるいは、第2の情報が、関連付けられたメモリアドレスと選択された参照アドレスとの間の数値の差を示す場合、診断回路は、選択された参照アドレスへその数値の差を加算することにより、関連付けられたメモリアドレスを決定してもよい。診断回路は、関連付けられたメモリアドレスを決定した後に、トレースユニットに対応した方法で、参照アドレス更新動作を実行することにより、複数の参照アドレスレジスタのうちの1つの参照アドレスを選択的に更新してもよい。参照アドレス更新動作は、前記関連付けられたメモリアドレスを、前記複数の参照アドレスレジスタの犠牲参照アドレスレジスタへ書き込むことを含んでもよい。参照アドレス更新動作は、a少なくとも1つの参照アドレスレジスタについて、前記対応する参照アドレスと前記関連付けられたメモリアドレスとの間のアドレスの差が、所定の閾値を上回るかどうかを決定することと、b前記アドレスの差が、前記少なくとも1つの参照アドレスレジスタのそれぞれについて前記所定の閾値を上回る場合に、前記少なくとも1つの参照アドレスレジスタから選択された犠牲参照アドレスレジスタへ、前記関連付けられたメモリアドレスを書き込むことを含んでもよい。トレースデータ要素は、前記第2の情報を示すアドレス部分を含んでもよく、所定の閾値は、前記アドレス部分の最小サイズに対応してもよい。診断回路は、前記複数の参照アドレスレジスタのうちのどれが前記犠牲参照アドレスレジスタであるかを選択するために、犠牲選択動作を実行するように構成されてもよい。診断回路は、参照アドレス更新動作による更新から、少なくとも1つの参照アドレスレジスタを選択的に除外するように、ロックダウンシグナルに応答してもよい。複数の参照アドレスレジスタのうちの少なくとも1つは、事前定義された参照アドレスを格納するための固定の参照アドレスレジスタにしてもよく、診断回路は、前記参照アドレス更新動作による更新から固定の参照アドレスレジスタを除外してもよい。前記複数の参照アドレスレジスタのうちの少なくとも1つは、関連付けられた範囲の前記メモリアドレスに関連付けられた範囲を限定された参照アドレスレジスタにしてもよく、診断回路は、関連付けられたメモリアドレスが前記メモリアドレスの関連付けられた範囲外である場合に、範囲を限定した参照アドレスレジスタを、参照アドレス更新動作による更新から除外してもよい。複数の参照アドレスレジスタの少なくともサブセットは、参照アドレスパイプラインを形成するために結合されてもよく、参照アドレス更新動作は、関連付けられたメモリアドレスに応じて、参照アドレスパイプラインで参照アドレスを更新することを含んでもよい。参照アドレスパイプラインは、N個の参照アドレスレジスタを含んでもよく、前記参照アドレス更新動作は、前記参照アドレスパイプラインの1番目からN-1番目の参照アドレスレジスタ内の参照アドレスを、前記参照アドレスパイプラインの次の参照アドレスレジスタへシフトすることと、前記関連付けられたメモリアドレスを、前記参照アドレスパイプラインの第1の参照アドレスレジスタへ格納することを含んでもよい。参照アドレスパイプラインは、N個の参照アドレスレジスタを含んでもよく、選択された参照アドレスレジスタは、1≦M≦Nである場合に、前記参照アドレスパイプラインのM番目の参照アドレスレジスタを含んでもよく、参照アドレス更新動作は、M>1の場合に、前記参照アドレスパイプラインの1番目からM-1番目の参照アドレスレジスタ内の参照アドレスを、前記参照アドレスパイプラインの次の参照アドレスレジスタへシフトすることと、前記参照アドレスパイプラインの第1の参照アドレスレジスタへ、前記関連付けられたメモリアドレスを格納することを含んでもよい。M=1である場合に、参照アドレス更新動作は、さらに、前記関連付けられたメモリアドレスと前記第1の参照アドレスレジスタの参照アドレスとの差が、所定の閾値を上回るかどうかを決定することと、前記差が、前記所定の閾値を上回る場合、前記参照アドレスパイプラインの前記第1の参照アドレスレジスタへ前記関連付けられたメモリアドレスを書き込む前に、前記参照アドレスパイプラインの1番目からN-1番目の参照アドレスレジスタ内の参照アドレスを、前記参照アドレスパイプラインの次の参照アドレスレジスタへシフトすることを含んでもよい。再び、所定の閾値は、アドレス部分の最小サイズに対応してもよい。所定の閾値は、第1の参照アドレスレジスタの参照アドレスの対応する部分に対して異なる関連付けられたメモリアドレスの部分についての閾値ビット数であってもよい、または、閾値の数値の差であってもよい。診断回路は、トレースユニットに対応するように、参照アドレスレジスタのそれぞれへデフォルトの参照アドレスを格納することにより、初期化事象に応答してもよい。初期化事象は、デフォルトの参照アドレスがトレースストリームの分析の開始時に使用されるように、トレースストリームの分析を開始するように作動される診断回路にしてもよい。さらに、初期化事象は、トレースデータ要素のストリーム内のトレース同期化データ要素に応答する診断回路にしてもよい。参照アドレスレジスタはトレース同期化データ要素において再初期化されるため、トレース同期化データ要素は、以前のトレースデータ要素から導き出された情報を必要とせずに、トレースデータ分析を開始できる参照ポイントを提供する。別の態様から見ると、本発明は、命令に応答して、処理装置によって実行された処理動作を示すトレースデータ要素のストリームを分析するための診断装置であって、前記処理装置は、データを格納するためのメモリ手段を含み、前記メモリ手段は、対応するメモリアドレスによって識別された複数のメモリロケーションを含み、前記診断装置は、前記トレースデータ要素のストリームを受信するためのトレース入力手段と、前記処理動作の処理結果を決定するために、前記トレースデータ要素のストリームを分析するための診断手段と、を備え、前記診断手段は、複数の参照アドレスを格納するための複数の参照アドレスレジスタ手段を含み、前記診断手段は、ai前記複数の参照アドレスレジスタ手段のうちのどれが選択された参照アドレスレジスタ手段であるかを示す第1の情報と、ii前記関連付けられたメモリアドレスと前記選択された参照アドレスレジスタ手段に格納された選択された参照アドレスとの差を示す第2の情報と、を示すトレースデータ要素を、前記トレースデータ要素のストリームに配置するために、および、b前記第2の情報と前記選択された参照アドレスレジスタ手段に格納された前記選択された参照アドレスとに応じて、前記関連付けられたメモリアドレスを決定するために、関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を処理する前記処理装置の指示に応答する、診断装置を提供する。さらなる態様から見ると、本発明は、命令に応答して、処理装置によって実行された処理動作を示すトレースデータ要素のストリームを分析するための方法であって、前記処理装置は、対応するメモリアドレスによって識別された複数のメモリロケーションを含むメモリを含み、前記方法は、前記トレースデータ要素のストリームを受信するステップと、複数の参照アドレスレジスタに複数の参照アドレスを格納するステップと、前記処理動作の処理結果を決定するために、前記トレースデータ要素のストリームを分析するステップと、を含み、前記分析手段は、関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を処理する前記処理装置の指示に応答して、ai前記複数の参照アドレスレジスタのうちのどれが選択された参照アドレスレジスタであるかを示す第1の情報と、ii前記関連付けられたメモリアドレスと前記選択された参照アドレスレジスタに格納された選択された参照アドレスとの差を示す第2の情報と、を示すトレースデータ要素を、前記トレースデータ要素のストリームに配置することと、b前記第2の情報と前記選択された参照アドレスレジスタに格納された前記選択された参照アドレスとに応じて、前記関連付けられたメモリアドレスを決定することを含む、方法を提供する。本発明の上記および他の目的、特徴および利点は、添付の図面に関連して読まれるべき、例示的な実施形態の以下の詳細な説明から、明らかであろう。図1は、処理回路4、メモリシステム6、およびトレース回路8を含む処理装置2を概略的に示す。メモリシステム6は、処理回路4に代わって、データおよび/または命令を格納するための1つ以上のキャッシュユニットまたはメモリユニットを含む。処理回路4は、命令に応答して、処理動作を実行する。トレース回路8は、処理回路4によって実行される処理動作を示すトレースデータ要素のストリームを生成し、トレース出力ポート10を介して、トレースデータ要素のストリームを出力する。処理回路4、メモリシステム6およびトレース回路8は、必ずしも、同じ集積回路で提供される必要はない。例えば、トレース回路8は、いくつかの実施形態において、処理装置2の他の部分とは別々に提供される独立したトレースユニットとして提供され得る。トレース回路8によって生成されたトレースデータ要素のストリームは、トレースストリームの分析のための診断装置20によって受信されてもよい。トレースデータ要素は、トレース入力ポート22において受信される。診断装置20は、処理回路4によって実行される処理動作の処理結果を決定するために、トレースデータ要素を分析するための診断回路24を有する。診断回路24は、トレースデータが生成された時点において、処理回路4によってどの命令が実行されたかの指示へのアクセスを有する。この指示は、例えば、処理回路によってプログラム実行が開始されたメモリシステム6内のメモリアドレスの指示として、提供されてもよい。あるいは、トレース回路8は、トレースストリームにおいて、どの命令が実行されたかの指示を含むことができる。さらに、診断装置20は、それ自体、処理回路4によって実行されたプログラムコピーを格納するためのメモリ図1に図示せずを含んでもよい。診断回路24は、どの命令が実行されたか、および処理回路4によって実行された処理動作の結果を推察するために、トレースデータ要素によって提供された追加の情報の指示を使用する。トレースデータ要素は、処理装置2から診断装置20へ直接出力される必要はないが、トレース回路8によってメモリデバイスに格納され、次いで、診断回路24によって、メモリデバイスからアクセスされてもよい。診断装置20は、例えば、トレースストリームを分析するようにプログラムされた汎用コンピュータにしてもよい。トレース回路8は、2つ以上の参照アドレスを格納するための2つ以上の参照アドレスレジスタ30-1を含む。トレース回路8が、関連付けられたメモリアドレスに関連付けられた処理動作を実行する処理回路4に応じて、トレースデータ要素を生成する場合、トレース回路8は、参照アドレスレジスタ30-1のうちの1つを選択し、関連付けられたメモリアドレスと選択された参照アドレスレジスタの参照アドレスとの間の差を決定し、参照アドレスレジスタ30-1のうちのどれが選択された参照アドレスレジスタであったかを示す第1の情報と、関連付けられたメモリアドレスと選択された参照アドレスレジスタの参照アドレスとの間差を、ある場合は示す、第2の情報とを示すトレースデータ要素を生成する。診断装置20は、参照アドレスレジスタ30-2の対応するセットを有する。トレースストリームを分析する場合、診断回路24は、トレースストリームが生成された時点でのトレース回路8の参照アドレスレジスタ30-1内にあった参照アドレスに対応する参照アドレスを含むために、参照アドレスレジスタ30-2を維持する。診断回路が、処理回路4が関連付けられたメモリアドレスに関連付けられた処理動作を実行したという指示に遭遇する場合、診断回路24は、トレースストリームにおいて、その動作に対応するトレースデータ要素を配置する。診断回路24は、参照アドレスレジスタ30-2の間から選択された参照アドレスレジスタを決定するために、トレースデータ要素によって示された第1の情報を使用する。次いで、診断回路24は、関連付けられたメモリアドレスと選択された参照アドレスレジスタの参照アドレスとの間の差がある場合にはそれを示す第2の情報に応じて、関連付けられたメモリアドレスの値を決定する。トレース回路8内に2つ以上の参照アドレスレジスタ30-1と、診断回路24内に対応する参照アドレスレジスタ30-2を提供することにより、関連付けられたメモリアドレスが参照アドレスレジスタ30-1のうちの1つの参照アドレスと一致する、または参照アドレスのうちの1つと類似である可能性が高まるため、トレースデータを大幅に圧縮できる可能性が高まる。以下に、レジスタの両方のセットに共通する特徴を表すために、参照番号30が、トレース回路8および診断回路24の両方の参照アドレスレジスタを参照するために使用される。概して、トレース回路8は、トレースデータ要素を生成するために用いられる場合に、選択された参照アドレスレジスタとして、トレースデータ要素の最も効率的な符号化を生じさせるレジスタ30-1を選択する。これを行う1つの方法は、各参照アドレスレジスタ30-1に対応する候補の値を決定することであり、各候補の値は、関連付けられたメモリアドレスとその参照アドレスレジスタ30-1の対応する参照アドレスとの間の差を示す。次いで、トレース回路8は、選択された参照アドレスレジスタとして、最も効率的な候補の値に対応する参照アドレスレジスタ30-1を選択できる。最も効率的な候補の値は、例えば、最小のビット数を用いて表すことができる値、またはトレースデータ要素に含まれる場合に、トレースストリーム内のトレースデータの最小の合計数を生じさせる値にしてもよい。トレースデータの最も効率的な符号化を生じさせる参照アドレスレジスタ30-1を選択することにより、トレースデータの量を低減できる。トレース回路8は、トレースストリームを分析する場合に、診断装置20がそのレジスタ30-2からの対応する選択を行うことができるように、レジスタ30-1が選択された診断装置20へのシグナルへのトレースデータ要素において第1の情報を含む。関連付けられたメモリアドレスと選択された参照アドレスとの差は、異なる方法で示し得る。図2は、参照アドレスの対応する部分に対する異なるビット値を有する関連付けられたメモリアドレスの部分として、差が示される例を示す。例えば、トレースデータ要素は、参照アドレスの対応する最下位のビットに対して異なる関連付けられたメモリアドレスの最下位のビットを示してもよく、一方で、参照アドレスの対応するビットと同じ関連付けられたメモリのより上位のビットを省略し得る。例えば、図2において、関連付けられたメモリアドレス0x00004012は、参照アドレスレジスタ0内の参照アドレス0x00000000とは、0x4012の部分が異なる。トレース回路8は、関連付けられたメモリアドレスを各参照アドレスレジスタ30-1の参照アドレスと比較し、各参照アドレスレジスタについて候補の差の値を決定する。図2の例において、各候補の差の値は、対応する参照アドレスの対応する部分に対して異なる関連付けられたアドレスの部分を表す。次いで、例えば、最も少ないビットを有する候補の値または最も少ない量のトレースデータを生じさせる候補の値として、最も効率的な候補の値が決定される。次いで、選択された参照アドレスレジスタとして、対応する参照アドレスレジスタが選択される図2の例において、その対応する候補の値は、最も効率的なトレース符号化を提供するため、参照アドレスレジスタ1が選択される。参照アドレスレジスタ30-1のどれが選択された参照アドレスレジスタであるかを示す第1の情報、および、最も効率的な候補の値に対応する第2の情報を含む、トレースデータ要素が生成される。この例において、トレースデータ要素は、選択された参照アドレスレジスタを示すヘッダ部分40と、差の値を示すアドレス部分42とを含む。トレースデータ要素を分析する場合、診断装置20は、ヘッダ部分40によって識別される参照アドレスレジスタ30-2の参照アドレスを用いて関連付けられたメモリアドレス、およびアドレス部分42によって識別されるアドレスの差を決定できる。あるいは、選択されたアドレスレジスタおよび差の値がトレースデータ要素の共通部分において符号化される、トレース符号化を考案できた。図3は、アドレス差が、関連付けられたメモリアドレスおよび参照アドレスの間の数値の差として示される別の実施形態を示す。この例において、トレース回路8は、参照アドレスレジスタ30のそれぞれについて、候補の差の値を決定し、各候補の値は、関連付けられたメモリアドレスおよび参照アドレスのうちの一方を、他方から減算することによって得られる。次いで、最も効率的な候補の値を、最も少ないビットを用いて表すことができる、またはトレースデータの最も少ない量を生じさせる値として選択できる。次いで、対応する参照アドレスレジスタが、トレースデータ要素の生成において使用するために選択された参照アドレスレジスタとして選択される。再び、トレースデータ要素は、ヘッダ部分40およびアドレス部分42を含んでもよい、または、選択された参照アドレスレジスタを識別できる符号化、および共通の値を用いて示される差の値を有してもよい。図3に示されるトレースデータ要素を分析する場合、診断回路24は、トレースデータ要素のヘッダ部分によって識別される選択された参照アドレスレジスタ30-2に格納されたアドレスへ、トレースデータ要素に示される差の値を追加することにより、関連付けられたメモリアドレスを決定できる。時により、関連付けられたメモリアドレスは、参照アドレスのうちの1つと完全に一致し得る。この場合、トレースデータは、図4に示される例等、多くの方法で符号化され得る。例Aにおいて、トレースデータ要素は、トレースデータ要素のアドレス部分をゼロの値に設定することにより、関連付けられたメモリアドレスおよび選択された参照アドレスレジスタの参照アドレスの間の完全な一致があることを示す。あるいは、例Bにおいて、アドレス部分は、完全な一致が存在することを示す識別コードに設定される。図4の例Cに示されるように、完全な一致は、アドレス部分の欠如によって表すこともできる。この場合、ヘッダ部分のみを含むトレースデータ要素は、関連付けられたメモリアドレスが、ヘッダ部分において識別される参照アドレスレジスタの参照アドレスと同じであることを示すことができる。このため、例Cにおいて、第2の情報は、いずれかの特定のデータ値ではなく、アドレス部分の欠如によって伝達される。図4の例Dに示されるように、選択された参照アドレスレジスタを識別するアドレスヘッダは、そのアドレスレジスタに格納されたアドレスとの完全な一致が存在することを示すように、修正することもできる。このため、図4は、関連付けられたメモリアドレスと選択された参照アドレスとの間のゼロの差を多くの方法で示すことが可能であることを示す。各トレースデータ要素にとって、第1の情報および第2の情報を示すための別々の値を含むことは必要ではない。例えば、例CおよびDにおいて、単一のデータ値は、選択された参照アドレスレジスタを識別する第1の情報、およびゼロの差が存在することを識別する第2の情報の両方を提供する。典型的には、トレース回路8は、処理回路4によって使用されているアドレスに応じて、参照アドレスレジスタ30-1に格納される参照アドレスを更新するように構成される。所与のプログラム命令シーケンスは、同じまたは類似のアドレスを何度も使用する可能性がある。例えば、命令のシーケンスは、同じ分岐送信先アドレスを繰り返し使用するように何度もループされてもよい、または、命令のシーケンスは、一連の隣接するメモリアドレスに関連付けられたロード/格納動作を生じさせてもよい。関連付けられたメモリアドレスに応じて参照アドレスレジスタ30-1を選択的に更新することにより、その関連付けられたメモリアドレスは、以下の処理動作のための参照アドレスとして使用でき、そのため、以下の動作に関連付けられたアドレスが、参照アドレスのうちの1つと類似である可能性が高くなる。対応するように、診断回路24は、トレースストリームから決定された関連付けられたメモリアドレスに基づいて、その参照アドレスレジスタ30-2の参照アドレスを更新できる。トレース回路8および診断回路24は、各関連付けられたメモリアドレス30によって参照アドレスレジスタを更新する必要がない。トレースストリームを使用可能なメモリスペースの特定のメモリ範囲に圧縮するための能力に集中するため、多数の同様のアドレスを、参照アドレスレジスタに追加することは望ましくない場合がある。その代わりに、メモリアドレススペース全体に分散された多くの参照アドレスによって、関連付けられたメモリアドレスと参照アドレスのうちの1つとの間の比較的小さい差が存在する可能性が高められ得る。従って、トレースデータ要素を生成後、トレース回路8は、一実施形態において、関連付けられたメモリアドレスを、アドレスレジスタ30-1の既存の参照アドレスと比較するように構成されてもよく、次いで、関連付けられたメモリアドレスと既存の参照アドレスのうちの1つとの間の差が所定の閾値よりも大きくなる場合にのみ、参照アドレスレジスタ30-1のうちの1つを、関連付けられたメモリアドレスで更新してもよい。診断回路24は、さらに、同様の比較を実行してもよく、また、トレース回路8に対応するように、参照アドレスレジスタ30-2を更新してもよい。参照アドレスレジスタ30のうちの1つを更新する価値があるかどうかを決定するための閾値を、多くの方法、例えば、参照アドレスの対応する部分に対して異なるビット値を有する関連付けられたメモリアドレスレジスタの部分についての閾値ビット数、または数値差の閾値として、決定してもよい。トレースデータ要素が、関連付けられたメモリアドレスと選択された参照アドレスとの差を示すためのアドレス部分42を含む場合、閾値は、アドレス部分42の最小サイズに対応してもよい。例えば、アドレス部分が、4ビットの最小サイズを有する場合、参照アドレスを、4ビット以下によって表すことができるアドレス差だけ、既存の参照アドレスのうちの1つとは異なる関連付けられたメモリアドレスつまりアドレス差が、15以下の数値を有する場合によって更新することを避けることが望ましい場合がある。トレース回路8および診断回路24は、デフォルトの参照アドレス値を格納する参照アドレスレジスタ30で初期化してもよい。例えば、デフォルトの値は、ゼロのアドレス値にすることができる。さらに、周期的に、トレース回路8は、デフォルトの値に参照アドレスレジスタ30-1をリセットし、トレース同期化パケットを生成してもよい。次いで、診断装置20は、その参照アドレスレジスタ30-2をデフォルトの値にリセットすることにより、トレース同期化パケットに応答してもよい。同期化事象は、例えば、診断装置20が、トレースストリームの開始時において分析を開始する必要があるのではなく、トレース同期化パケットによって示される中間点において、トレースストリームの分析を開始することを可能にする、周期的事象にしてもよい。図5は、トレースデータ要素のストリームの生成方法を示す。ステップ50において、処理装置2は、命令に応答して、処理動作の実行を開始する。トレース回路8は、どの命令が処理回路4によって実行中であるかを監視する。ステップ52において、トレース回路8は、処理回路4が、トレースされる関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を実行しているかどうかを決定するトレースユニットは、関連付けられたメモリアドレスのサブセットのみをトレースしてもよい。現在の命令が、トレースされる関連付けられたメモリアドレスに関連付けられる場合、ステップ54において、トレース回路8は、各参照アドレスレジスタ30-1についての候補の第2の情報を決定する。候補の第2の情報は、例えば、図2および図3の例で示される形式の異なる差の値にしてもよい。ステップ56において、トレース回路8は、候補の第2の情報の値の最も効率的なものを決定する。例えば、最も効率的な候補の第2の情報は、最小ビットを使用して表すことができる情報にしてもよい、または最小のトレースデータを生じさせる。次いで、ステップ58において、トレース回路8は、選択された参照アドレスレジスタとして、最も効率的な候補の第2の情報に対応する参照アドレスレジスタ30-1を選択する。ステップ60において、トレース回路8は、第1の情報および第2の情報を示すトレースデータ要素を生成する。第1の情報は、どのアドレスレジスタ30-1が選択された参照アドレスレジスタであるかを識別する。第2の情報は、最も効率的な候補の第2の情報に対応し、関連付けられたメモリアドレスと選択された参照アドレスレジスタに格納された参照アドレスとの間の差がある場合には示す。次いで、トレースデータ要素が、トレースストリームの一部として出力される。ステップ62において、トレース回路8は、次いで、関連付けられたメモリアドレスに応じて、少なくとも1つの参照アドレスレジスタ30-1を選択的に更新するための参照アドレス更新動作を実行する。参照アドレス更新動作は、以下に記載されるように、多くの形式にすることができる。ステップ52において、現在の命令が関連付けられたメモリアドレスに関連付けられた命令でないことが決定される場合、ステップ54~62が省略される。トレース回路8は、トレースされるメモリアドレスに関連付けられていない命令の他の種類のトレース動作を実行してもよい。ステップ64において、トレース回路8は、処理回路4が別の命令を処理するかどうかを決定する。別の命令が存在する場合、方法はステップ52に戻り、さらなる命令が存在しない場合、方法は、ステップ66において終了する。このため、図5の方法を実行することにより、トレース回路8は、処理回路4の動作を示すトレースデータ要素のストリームを出力できる。関連付けられたメモリアドレスがトレースされる場合、トレースデータ要素は、選択された参照アドレスレジスタのうちの1つ、および関連付けられたメモリアドレスと選択された参照アドレスレジスタのアドレスとの差を識別する。最も効率的な差の情報を提供できる参照アドレスレジスタを選択することにより、トレースデータの量を低減できる。図6は、トレース回路8によって生成されたトレースデータ要素を分析するための対応する方法を示す。ステップ70において、診断装置20は、トレース回路8から直接、またはメモリあるいは分析されるまでトレースデータ要素を格納する他の格納デバイスから、トレースデータ要素のストリームを受信する。さらに、診断装置20は、トレースストリームが生成された場合に処理回路4によってどのプログラム命令が実行されたかの指示へのアクセスを有する。ステップ72において、診断回路24は、トレースされる関連付けられたメモリアドレスに関連付けられた処理動作を実行するための命令を、処理回路4が実行したかどうかを決定する。かかる命令が存在する場合、ステップ74において、診断回路24は、その命令に関連付けられたトレースデータ要素を、トレースストリームに配置する。トレースデータ要素は、トレース回路8によって選択された選択参照アドレスレジスタを識別する第1の情報、および、関連付けられたメモリアドレスと選択された参照アドレスレジスタの参照アドレスとの差を示す第2の情報を含む。診断回路24は、次いで、トレースデータ要素に示された第1の情報に対応するその参照アドレスレジスタ30-2のうちの1つを選択する。ステップ76において、診断回路24は、トレースデータ要素に含まれる第2の情報に基づく関連付けられたメモリアドレス、および選択された参照アドレスレジスタ30-2に格納された参照アドレスを決定する。このため、診断装置20は、トレースデータ要素に含まれる第1および第2の情報から、関連付けられたメモリアドレスを再構成できる。ステップ78において、診断装置20は、図5のステップ62に対応して、関連付けられたメモリアドレスに応じて、参照アドレスレジスタ30-2の参照アドレスを選択的に更新するための参照アドレス更新動作を実行する。異なる参照更新の形式を以下に示す。図10-12に関して以下に記載される一例において、診断装置20によって実行される参照アドレス更新動作は、どの参照アドレスレジスタ30-2が選択された参照アドレスレジスタであるかに依存し診断装置20は、トレースデータ要素に示される第1の情報から、選択された参照アドレスレジスタを識別できる、さらに、参照アドレスレジスタが更新される方法を制御する閾値の差の値に依存してもよい。ステップ72において、指示は、トレースされる関連付けられたメモリアドレスに関連付けられていない命令のものであり、ステップ74~78は、診断回路24によって省略される。診断回路24は、こうした命令の他の種類のトレース分析を実行してもよい。ステップ80において、診断回路24は、処理回路4によって実行された別の命令の指示が存在するかどうかを決定する。これ以上の命令が実行されていない場合、方法はステップ82において終了し、一方で、そうではない場合には、新しい方法がステップ72に戻る。図5および6のステップ62および78で実行される参照アドレス更新動作の種々の例について説明する。図7の例において、参照アドレスレジスタ30の少なくともいくつかが、参照アドレスパイプラインを形成するために構成される。パイプラインは、参照アドレスレジスタ30の全てを含む必要はなく、いくつかの例において、レジスタ30のサブセットのみを含んでもよい。トレースデータ要素を生成する場合、トレース回路8は、選択された参照アドレスレジスタとして、パイプラインにレジスタのいずれかを選択してもよい。参照アドレスのうちの1つを更新するために、関連付けられたメモリアドレスは、パイプライン内の第1の参照アドレスレジスタに書き込まれ、パイプライン内のアドレスは、パイプライン内の次のレジスタにシフトされる。パイプライン内のレジスタは、パイプラインからシフトされる。図8は、図7のステップ62および78の参照アドレス更新動作を示す。パイプラインにはN個の参照アドレスレジスタが存在する。ステップ100において、1番目からN-1番目の参照アドレスレジスタの参照アドレスは、パイプラインの次の参照アドレスレジスタにシフトされる。次いで、ステップ102において、関連付けられたメモリアドレスは、パイプラインの第1の参照アドレスレジスタに書き込まれる。このように、最も最近に関連付けられたメモリアドレスが常にパイプラインの最初にあり、パイプライン内の連続レジスタは、より以前に関連付けられたメモリアドレスを段階的に含む。図9は、2つのアドレスレジスタ、アドレスレジスタ0およびアドレスレジスタ1を含むパイプラインについて、この参照アドレス更新動作の一例を示す表を示す。図9は、一連の6つの関連付けられたメモリアドレスの6つのトレースデータ要素の生成を示す。両方のアドレスレジスタは、最初に、デフォルトのアドレス0x00000000を格納する。関連付けられたアドレス0x00000001に応答して、これらのレジスタのうちの1つ例:レジスタ0が、選択された参照アドレスレジスタとして選択され、選択されたアドレスレジスタ、および選択されたアドレスレジスタのアドレスの対応する部分とは異なる関連付けられたメモリアドレスの部分を示す選択されたアドレス値0x01を示す、トレースデータ要素が生成される。次いで、関連付けられたメモリアドレスがアドレスレジスタ0に配置され、アドレスレジスタ0に格納される値がアドレスレジスタ1にシフトされる。同様に、図9の各ステップにおいて、最も効率的なトレースデータ要素を生じさせるアドレスレジスタが選択され、トレースデータ要素が選択されたアドレスレジスタを用いて生成され、次いで、関連付けられたメモリアドレスがパイプラインにシフトされる。例えば、図9のステップ4および5において、関連付けられたメモリアドレスは、アドレスレジスタ0に格納されるアドレスよりもアドレスレジスタ1に格納されるアドレスにより類似しているため、この場合、選択された参照アドレスとしてアドレスレジスタ1が選択される。診断回路24がトレースストリームを分析する場合、トレース回路8内のレジスタ30-1に対応するように診断回路24のアドレスレジスタ30-2にストアされた値が変化するように、トレース回路8と同様にアドレスレジスタ30-2を更新する。図10~12は、トレース回路8および診断回路24によって使用される参照アドレスパイプラインの別の例を示す。再び、パイプラインは、N個の参照アドレスレジスタ30を含む。この例において、パイプラインが更新される方法は、トレースデータ要素を生成するための選択された参照アドレスレジスタとしてどの参照アドレスレジスタが選択されたかに依存する。各参照アドレスレジスタ30は、参照アドレスレジスタ30が、パイプラインの先行するレジスタに格納されたアドレスによって更新されるかどうかまたはパイプラインの第1の参照アドレスレジスタの場合、関連付けられたメモリアドレスによって更新されるかどうかを制御する対応するイネーブルシグナル105に関連付けられる。関連付けられたメモリアドレスがトレースされる場合、および選択された参照アドレスレジスタがパイプラインの第1の参照アドレスレジスタではない場合、選択された参照アドレスレジスタに対する第2の参照アドレスレジスタのためのイネーブルシグナルは、これらのレジスタがパイプラインの先行するレジスタに格納されたアドレスをキャプチャするように、真の値に設定される。選択された参照アドレスレジスタよりもパイプラインのさらに上である参照アドレスレジスタは、対応する参照アドレスが変化しないように、イネーブルシグナルを偽の値に設定する。第1の参照アドレスレジスタは、新しい関連付けられたメモリアドレスに選択的に更新される。例えば、図10において、パイプライン内の4番目のアドレスレジスタは選択された参照アドレスレジスタである。この場合、パイプラインの2番目から4番目のレジスタ30のイネーブルシグナルは、2番目から4番目のレジスタ30が、1番目から3番目のレジスタ30に以前に格納されたアドレスをそれぞれキャプチャするように、真の値に設定される。さらに、第1の参照アドレスレジスタのためのイネーブルシグナルは、第1の参照アドレスレジスタが関連付けられたメモリアドレスをキャプチャするように、真の値に設定される。対照的に、パイプライン内の5番目から7番目の参照アドレスレジスタは、これらのレジスタに格納されるアドレスが変化しないように、イネーブルシグナルを偽の値に設定する。図10の例において、同等に効率的なトレースデータを生成するために1つよりも多いアドレスレジスタを使用できる場合、トレース回路8は、選択されたアドレスレジスタとして、パイプラインの最後に最も近いレジスタつまり、最も長い期間、パイプラインに存在するアドレスを選択する。このため、最後のアドレスレジスタが優先され、以降、最後から2番目のレジスタ、最後から3番目のレジスタ、のようになる。これらのアドレスが同等に効率的なトレースデータを生成する場合に、より新しい参照アドレスにより古い参照アドレスを優先的に選択することで、トレース回路8は、パイプライン内の最も有用な参照アドレスを維持する傾向がある。パイプラインの第1の参照アドレスレジスタが、トレースデータ要素の生成に使用される選択された参照アドレスレジスタである場合、参照アドレスの更新のための特別のケースが存在し得る。この場合、トレース回路8または診断回路24は、関連付けられたメモリアドレスと第1の参照アドレスレジスタの参照アドレスとの間の差を決定できる。この差が所与の閾値を上回らない場合、第1の参照アドレスレジスタは、他のアドレスレジスタを変化させないように更新される。一方で、差が閾値を上回る場合、パイプラインの最後から2番目のアドレスレジスタは、パイプラインの先行するレジスタに格納されるアドレスを用いてそれぞれ更新され、関連付けられた参照アドレスは、第1のアドレスレジスタに書き込まれる。この機構は、パイプラインシフトが多くなりすぎることで、全アドレスレジスタの値が類似しないようにすることにより、メモリスペースのアドレス範囲全体におけるアドレスのよりよい拡散を実現する。図11は、アドレスレジスタのサブセットが、図10に示されるように参照アドレスパイプラインを形成する場合に、図5および6のステップ62および78において実行され得る参照アドレス更新動作の一例を示す。ステップ110において、トレース回路8または診断回路24は、パイプライン内のN個のレジスタのどれが選択された参照アドレスレジスタであるかを決定する。選択されたアドレスレジスタは、パイプラインのM番目のレジスタである1≦M≦N。トレース回路8または診断回路24は、さらに、Mが1と等しいかどうかを決定する。Mが1と同等にない場合、ステップ112において、1番目からM-1番目の参照アドレスレジスタの参照アドレスは、パイプラインの次のレジスタにシフトされる。次いで、方法はステップ114に進み、ここで、関連付けられたメモリアドレスは、パイプライン内の第1のレジスタに書き込まれる。一方、M=1の場合、ステップ116において、関連付けられたメモリアドレスとパイプライン内の第1のレジスタの参照アドレスとの間の差が、所与の閾値よりも大きいかどうかを決定する。差が閾値以下である場合、方法はステップ114に進み、ここで、関連付けられたメモリアドレスは、パイプラインの他のアドレスレジスタ内のアドレスを修正せずに、第1のアドレスレジスタに書き込まれる。ステップ116において、関連付けられたメモリアドレスと第1の参照アドレスとの間の差が閾値よりも大きい場合、ステップ118において、ステップ114において関連付けられたメモリアドレスを第1のレジスタに書き込む前に、パイプラインの1番目からN-1番目のレジスタの参照アドレスがパイプラインの次のレジスタにシフトされる。要するに、図11の参照アドレス更新動作は、第1の参照アドレスレジスタ以外の参照アドレスレジスタを選択された参照アドレスレジスタとして使用する場合に、使用された参照アドレスがパイプラインから除去され、パイプラインのいずれかの先行するアドレスが一段上にシフトされ、関連付けられたメモリアドレスがパイプラインの1番目の段に追加されることを確実にする。この技術により、使用された参照アドレスが、関連付けられたメモリアドレスによって置換され、このため、複数の同様のアドレスがパイプラインに存在することを回避するが、それにもかかわらず、最も最近に追加された参照アドレスがより以前の参照アドレスよりも長い間パイプラインに保持されるように、関連付けられたメモリアドレスがパイプラインの最初に追加されることを確実にする。第1の参照アドレスレジスタが選択された参照アドレスレジスタである場合、パイプライン内のアドレスは、第1の参照アドレス値が、所定の量よりも多く、関連付けられたメモリアドレスとは異なる場合にのみ、一段上にシフトされる。これは、さらに、参照アドレスレジスタがいくつかの類似の参照アドレス値を含まないようにすることを確実にするために役立つ。図12は、図10および11の技術を、2つの参照アドレスレジスタを有するパイプラインに適用する例を示す表を示す。この例において、トレースデータ要素のアドレスの最小サイズが8ビットであるつまり2つの16進数の数字、例えば、0x01の値は、最小のアドレス部分サイズを有すると想定される。従って、図11のステップ116に使用される所定の閾値は、8ビットの最小サイズに対応する。閾値は、8ビットの閾値部分サイズ、または、255の閾値の数値の差8ビットを使用して表すことができる最大の値として指定され得る。図12の最初の2つのステップにおいて、パイプラインの第1の参照アドレスレジスタ参照アドレスレジスタ0は、選択された参照アドレスレジスタであり、関連付けられたメモリアドレスとパイプライン内の第1の参照アドレスレジスタの選択された参照アドレスとの差は、ステップ1の差0x01およびステップ2の0x21は、最小部分サイズを用いて表すことができるため所定の閾値以下である。従って、ステップ1および2において、パイプライン内のアドレスは、一段上にシフトされない。代わりに、アドレスレジスタ0の参照アドレスは、図11のステップ116および114の後に、関連付けられたメモリアドレスに上書きされる。しかしながら、図12のステップ3において、参照アドレスレジスタ0は、選択された参照アドレスレジスタであり、関連付けられたメモリアドレスと参照アドレスレジスタ0の値との間の差0x30000000は、閾値よりも大きいため、この場合、パイプラインの値は、図11のステップ118に応じて一段上にシフトされ、関連付けられたメモリアドレスは、参照アドレスレジスタ0に書き込まれる。次いで、図12のステップ4および5において、参照アドレスレジスタ1は、選択された参照アドレスレジスタである。この場合、参照アドレスレジスタ0に格納される値は、図11のステップ112に従い参照アドレスレジスタ1に格納されるようにシフトされ、関連付けられたメモリアドレスは、図1のステップ114に従い参照アドレスレジスタ0に書き込まれる。図12のステップ6において、第1のアドレスレジスタのアドレス値の対応する部分に対して異なる関連付けられたメモリアドレスの部分が0x08であるため、再び、パイプラインにはシフトが存在せず、これは、再び、8ビットの閾値部分サイズを超えない。図12に示される各ステップにおいて、選択されたアドレスレジスタおよび関連付けられたメモリアドレスと選択されたアドレスレジスタ内のアドレス値との差を識別するトレースデータ要素が生成される。トレースデータの分析時、診断回路24は、トレース回路8に対応するように、アドレスレジスタ内のアドレスを修正する。図9および12の例は、関連付けられたアドレスと選択された参照アドレスとの間のアドレス差が、参照アドレスの対応する部分に対する異なるビット値を有する関連付けられたアドレスの部分によって示される場合を示すが、この技術は、トレースデータ要素が、関連付けられたアドレスおよび選択された参照アドレスのうちの一方を他方から減算することによって得られた数値の差の値として、アドレス差を示す場合にも適用できることが考えられよう。図13は、参照アドレスレジスタ30内で参照アドレスを更新する別の例を示す。図7および10に示されるように、ある参照アドレスレジスタから別のものへとアドレスを物理的にシフトするのではなく、関連付けられたメモリアドレスを、他の参照アドレスレジスタを変化させずに、選択された犠牲参照アドレスレジスタへ書き込んでもよい。トレース回路8または診断回路24は、犠牲参照アドレスレジスタ、例えば、使用頻度が最も低い、ラウンドロビン、またはランダムの犠牲選択アルゴリズムを選択するために、異なる種類の犠牲選択アルゴリズムを実行できる。例えば、アドレスレジスタ30は、表またはキャッシュのような構造を形成すると考えられ得る。最も最近に更新されたレジスタを示すために、トレース回路8または診断回路24によってポインタを維持できる。犠牲レジスタを選択する場合、トレース回路8または診断回路24は、ポインタと共に現在示されているレジスタの後のレジスタを選択できる表の最後のレジスタが、現在、ポインタと共に示されている場合、トレース回路8または診断回路24は、表の第1のレジスタを選択できる。トレース回路8または診断回路24は、次いで、関連付けられたメモリアドレスによって、選択された犠牲レジスタを更新でき、新たに選択された犠牲レジスタを示すために、ポインタを修正できる。関連付けられたメモリアドレスが参照アドレスレジスタ30へ書き込まれる毎に、この犠牲選択アルゴリズムを繰り返すことにより、トレース回路8または診断24は、最も以前に更新されたアドレスレジスタが次に犠牲として選択されるように、周期シーケンスにおいてレジスタを更新する。関連付けられたメモリアドレスが、選択された犠牲参照アドレスレジスタに書き込まれる、図13の実施形態は、多くの参照アドレスレジスタが存在する場合において、パイプライン実施形態よりも効率的であってもよい。図14は、多数の更新可能な参照アドレスレジスタ120図7~12に従うパイプラインの一部または図13に示されるようにキャッシュ状の構造であってもよいと共に、更新ができない少なくとも1つの固定の参照アドレスレジスタ122も存在する、別の例を示す。固定の参照アドレスレジスタ122は、事前定義された参照アドレス値を格納する。例えば、固定の参照アドレスレジスタは、所与のプログラム内において頻繁に使用されることがわかっているアドレスを格納するように構成できる。図15は、参照アドレスレジスタのいくつかが、そのアドレス範囲内の関連付けられたメモリアドレスによってのみ更新できるように、特定のアドレス範囲に関連付けられる、別の例を示す。トレースされている関連付けられたメモリアドレスが特定のレジスタについて指定されたアドレスの範囲外である場合、そのレジスタは、レジスタ更新プロセスから除外される。これは、例えば、メモリスペースの異なる範囲に関連付けられた参照アドレスを幅広く選択できることを確実にするために使用できる。図16は、トレース回路8および診断回路24が更新されないように、特定のレジスタを動的にロックダウンするための外部ロックダウンシグナルに応答する、例を示す。例えば、ロックダウンされたレジスタは、図7~12に示されるように、パイプラインから除外されてもよい、または、犠牲選択アルゴリズムから除外されてもよい。このため、特定の参照アドレスレジスタ30が、以下の命令セットのために有用であることが知られている参照アドレスを格納している場合、参照アドレスが参照アドレスレジスタ30から取り除かれないように、ロックダウンシグナルを提供できる。診断回路24が、トレース回路8に対応するように、そのレジスタ30-2をロックできるようにするために、対応するロックダウンシグナルを、トレースデータ要素を分析する場合に、診断回路24に提供し得る。あるいは、トレース回路8は、診断回路24が、トレース回路のレジスタ30-1へ対応するようにそのレジスタ30-2をロックできるように、トレースストリームに、ロックダウンシグナルのどの値が使用されたかを示す情報を含み得る。参照アドレスレジスタを更新するための図7~16に示された種々の技術を、組み合わせて使用してもよい、例えば、固定の所定の値を格納するまたは特定の範囲のアドレスに関連付けられた少なくとも1つの他のレジスタがパイプライン内に提供された、レジスタのサブセットが存在し得ることが理解されよう。本発明の例示的な実施形態について、添付の図面を参照しながら本明細書に詳細に説明してきたが、本発明はこれらの正確な実施形態には制限されず、添付の特許請求の範囲に記載される本発明の範囲から逸脱せずに、当業者により、種々の変更および修正がなされ得ることを理解されたい。