データを処理するための装置であって、プログラム命令のストリームに応答して処理動作を実行するように構成された処理回路と、前記処理回路に連結され、前記処理回路によって実行される前記処理動作を表すトレースデータを生成するように構成されたトレーシング回路と、を備え、前記トレースデータは、第1のトレースストリームとトレースストリームとを含む複数の別個のトレースストリームを備え、前記トレース回路が前記第2のトレースストリームに同期マーカーを挿入して、前記第1のトレースストリームにおける既知のポイントに一致する同期ポイントをマークするように構成されていることを特徴とする装置。前記第1のトレースストリームにおける前記既知のポイントは、同期マーカーでもあることを特徴とする請求項1に記載の装置。前記第1のトレースストリームが前記処理回路によって処理されたプログラム命令を表す命令トレースストリームであり、前記第2のトレースストリームが、前記処理回路とメモリとの間のデータ転送を表すデータトレースストリームであることを特徴とする請求項1に記載の装置。前記命令トレースストリームが一続きの命令要素を備え、前記データトレースストリームが、一続きのデータ要素を備えることを特徴とする請求項3に記載の装置。前記トレース回路が、それぞれのキー値を有する前記第1のトレースストリームと前記第2のトレースストリーム内で個々の命令要素をマークするように構成されていることを特徴とする請求項1に記載の装置。前記命令トレースストリームが一続きの命令要素を備え、前記データトレースストリームが一続きのデータ要素を備え、前記トレース回路が、前記データ要素と関連付けられたそれぞれのプログラム命令に対応する前記命令トレースストリーム内で、前記一続きのデータ要素内の個々のデータ要素を命令要素のキー値に一致するそれぞれのキー値でマークするように構成されていることを特徴とする請求項5に記載の装置。一致するキー値を有するデータ要素および命令要素が、前記データトレースストリーム内のそれらのそれぞれの位置と前記命令トレースストリームとの間に可変オフセットを有することを特徴とする請求項6に記載の装置。前記トレース回路が、前記命令トレースストリーム内の隣接する命令要素どうしの間で前記命令要素の前記キー値を増分するように構成されていることを特徴とする請求項6に記載の装置。前記命令要素の前記キー値が、前記命令トレースストリーム内で所定の順序を有することを特徴とする請求項6に記載の装置。前記データ要素の前記キー値が、前記データトレースストリーム内で可変順序を有することを特徴とする請求項9に記載の装置。前記トレース回路が、所定のキー値の範囲内で前記キー値をラップするように構成されていることを特徴とする請求項8に記載の装置。前記トレース回路が、前記命令トレースストリームの隣接する命令要素の検索スペース内でデータ要素と命令要素との間で一致するキー値を検出することにより、前記データ要素と前記命令要素とを一致させるように構成されていることを特徴とする請求項6に記載の装置。前記検索スペースが、前記命令トレースストリーム内の最終一致命令要素に対して一定の位置を有するように前記命令トレースストリーム内に位置し、前記最終一致命令要素が、一致するデータ要素が前記データトレースストリーム内に置かれた前記命令トレースストリーム内で最後に現れる命令要素に対応することを特徴とする請求項12に記載の装置。前記トレース回路が、前記検索スペース内の最古の命令要素よりも古い命令トレースストリーム内の位置に対応するキー値を有する前記データトレースストリーム内でデータ要素を検出すると、前記命令トレースストリームと前記データトレースストリームとの両方で同期マーカーを挿入するように構成されていることを特徴とする請求項12に記載の装置。前記トレース回路が、前記検索スペース内の最古の命令要素よりも古い命令トレースストリーム内の位置に対応するキー値を有し、かつ最も最近生成されたキー値より新しい前記検索スペース内の位置に対応する命令要素を一致させるキー値を有する前記データトレースストリーム内でデータ要素を検出すると、前記命令トレースストリームと前記データトレースストリームとの両方で同期マーカーを挿入するように構成されていることを特徴とする請求項12に記載の装置。前記トレース回路が、前記検索スペース内の最新の命令要素よりも新しい命令トレースストリーム内の位置に対応するキー値を有する前記データトレースストリーム内でデータ要素を検出すると、前記命令トレースストリームと前記データトレースストリームとの両方で同期マーカーを挿入するように構成されていることを特徴とする請求項12に記載の装置。前記トレース回路が、前記検索スペース内の最新の命令要素よりも新しい命令トレースストリーム内の位置に対応するキー値を有し、かつ前記検索スペース内の最古の命令要素と前記最終一致命令要素との間に位置付けられた命令要素を一致させるキー値を有する前記データトレースストリーム内でデータ要素を検出すると、前記命令トレースストリームと前記データトレースストリームとの両方で同期マーカーを挿入するように構成されていることを特徴とする請求項13に記載の装置。前記命令トレースストリームを有する対応命令要素がキャンセルされるように、前記処理回路によって投機的に実行される1つ以上のプログラム命令がキャンセルされると、前記トレース回路が、前記命令トレースストリームと前記データトレースストリームとの両方で同期マーカーを挿入するように構成されていることを特徴とする請求項3に記載の装置。データを処理するための装置であって、プログラム命令のストリームに応答して処理動作を実行するための処理手段と、前記処理回路によって実行される前記処理動作を表すトレースデータを生成するための前記処理手段に連結されたトレース手段と、を備え、前記トレースデータが、第1のトレースストリームと第2のトレースストリームとを含む複数の別個のトレースストリームを備え、前記トレース手段が前記第2のトレースストリームに同期マーカーを挿入して、前記第1のトレースストリームにおける既知のポイントに一致する同期ポイントをマークするように構成されていることを特徴とする装置。プログラム命令のストリームに応答して処理動作を実行するステップと、前記実行される処理動作を表すトレースデータを生成するステップと、を含むデータ処理方法であって、前記トレースデータが、第1のトレースストリームと第2のトレースストリームとを含む複数の別個のトレースストリームを備え、前記生成するステップが、前記第2のトレースストリームに同期マーカーを挿入して、前記第1のトレースストリームにおける既知のポイントに一致する同期ポイントをマークすることを特徴とする方法。受信したトレースデータを処理するための装置であって、プログラム命令のストリームに応答して処理動作を実行する処理装置からトレースデータを受信するように構成された受信回路と、前記受信回路に連結され、前記トレースデータを分析するように構成された分析回路と、を備え、前記トレースデータは、第1のトレースストリームと第2のトレースストリームとを含む複数の別個のトレースストリームを備え、前記分析回路が、前記第1のトレースストリームと前記第2のトレースストリーム内の同期マーカーと、前記第1のデータストリーム内の既知のポイントと、を特定するように構成されており、前記同期マーカーおよび前記既知のポイントが前記第1のトレースストリームおよび前記第2のトレースストリーム内のマッチング位置とのそれぞれの同期ポイントを特定することを特徴とする装置。受信したトレースデータを処理するための装置であって、プログラム命令のストリームに応答して、処理動作を実行する処理装置からトレースデータを受信するための受信手段と、前記トレースデータを分析するための前記受信手段に連結された分析手段と、を備え、前記トレースデータは、第1のトレースストリームと第2のトレースストリームとを含む複数の別個のトレースストリームを備え、前記分析手段が、前記第1のトレースストリームと前記第2のトレースストリーム内の同期マーカーと、前記第1のデータストリーム内の既知のポイントと、を特定するように構成されており、前記同期マーカーおよび前記既知のポイントが前記第1のトレースストリームおよび前記第2のトレースストリーム内のマッチング位置とのそれぞれの同期ポイントを特定することを特徴とする装置。受信したトレースデータの処理方法であって、プログラム命令のストリームに応答して、処理動作を実行する処理装置からトレースデータを受信するステップと、前記トレースデータを分析するステップと、を含み、前記トレースデータは、第1のトレースストリームと第2のトレースストリームとを含む複数の別個のトレースストリームを備え、前記分析するステップが、前記第1のトレースストリームと前記第2のトレースストリーム内の同期マーカーと、前記第1のデータストリーム内の既知のポイントとを特定し、前記同期マーカーおよび前記既知のポイントが、前記第1のトレースストリームおよび前記第2のトレースストリーム内のマッチング位置とのそれぞれの同期ポイントを特定することを特徴とする方法。データを処理するための装置であって、プログラム命令のストリームに応答して処理動作を実行するように構成された処理回路と、前記処理回路に連結され、前記処理回路によって実行される前記処理動作を表すトレースデータを生成するように構成されたトレーシング回路と、を備え、前記トレースデータが、i前記処理回路によって処理されるプログラム命令を表す命令トレースストリームと、ii前記命令トレースストリームとは別であり、前記処理回路とメモリとの間のデータ転送を表し、前記命令トレースストリームと正確に相関しているデータトレースストリームと、を備えることを特徴とする装置。前記命令トレースストリームが一続きの命令要素を備え、前記データトレースストリームが、一続きのデータ要素を備えることを特徴とする請求項24に記載の装置。前記トレース回路が、それぞれのキー値を有する前記一続きの命令要素内で個々の命令要素をマークするように構成されていることを特徴とする請求項25に記載の装置。前記トレース回路が、前記データ要素と関連付けられたそれぞれのプログラム命令に対応する前記命令トレースストリーム内の命令要素のキー値に一致するそれぞれのキー値を有する前記一続きのデータ要素内の個々のデータ要素をマークするように構成されていることを特徴とする請求項26に記載の装置。一致するキー値を有するデータ要素および命令要素が、前記データトレースストリーム内のそれらのそれぞれの位置と前記命令トレースストリームとの間に可変オフセットを有することを特徴とする請求項27に記載の装置。前記トレース回路が、前記命令トレースストリーム内の隣接する命令要素どうしの間で前記命令要素の前記キー値を増分するように構成されていることを特徴とする請求項27に記載の装置。前記命令要素の前記キー値が、前記命令トレースストリーム内で所定の順序を有することを特徴とする請求項29に記載の装置。前記データ要素の前記キー値が、前記データトレースストリーム内で可変順序を有することを特徴とする請求項30に記載の装置。前記トレース回路が、所定のキー値の範囲内で前記キー値をラップするように構成されていることを特徴とする請求項29に記載の装置。前記トレース回路が、前記命令トレースストリームの隣接する命令要素の検索スペース内でデータ要素と命令要素との間で一致するキー値を検出することにより、前記データ要素と前記命令要素とを一致させるように構成されていることを特徴とする請求項27に記載の装置。前記検索スペースが、前記命令トレースストリーム内の最終一致命令要素に対して一定の位置を有するように前記命令トレースストリーム内に位置し、前記最終一致命令要素が、一致するデータ要素が前記データトレースストリーム内に置かれた前記命令トレースストリーム内で最後に現れる命令要素に対応することを特徴とする請求項33に記載の装置。前記トレース回路が、前記命令トレースストリームおよび前記データトレースストリーム内のマッチング位置とのそれぞれの同期ポイントをマークするために、前記命令トレースストリームと前記データトレースストリームとの両方で同期マーカーを挿入するように構成されていることを特徴とする請求項24に記載の装置。前記トレース回路が、前記検索スペース内の最古の命令要素よりも古い命令トレースストリーム内の位置に対応するキー値を有する前記データトレースストリーム内でデータ要素を検出すると、前記命令トレースストリームと前記データトレースストリームとの両方で同期マーカーを挿入するように構成されていることを特徴とする請求項33に記載の装置。前記トレース回路が、前記検索スペース内の最古の命令要素よりも古い命令トレースストリーム内の位置に対応するキー値を有し、かつ最も最近生成されたキー値より後で前記検索スペース内の位置に対応する命令要素を一致させるキー値を有する前記データトレースストリーム内でデータ要素を検出すると、前記命令トレースストリームと前記データトレースストリームとの両方で同期マーカーを挿入するように構成されていることを特徴とする請求項34に記載の装置。前記トレース回路が、前記検索スペース内の最新の命令要素よりも新しい命令トレースストリーム内の位置に対応するキー値を有する前記データトレースストリーム内でデータ要素を検出すると、前記命令トレースストリームと前記データトレースストリームとの両方で同期マーカーを挿入するように構成されていることを特徴とする請求項33に記載の装置。前記トレース回路が、前記検索スペース内の最新の命令要素よりも新しい命令トレースストリーム内の位置に対応するキー値を有し、かつ前記検索スペース内の最古の命令要素と前記最終一致命令要素との間に位置付けられた命令要素を一致させるキー値を有する前記データトレースストリーム内でデータ要素を検出すると、前記命令トレースストリームと前記データトレースストリームとの両方で同期マーカーを挿入するように構成されていることを特徴とする請求項34に記載の装置。前記命令トレースストリームを有する対応命令要素がキャンセルされるように、前記処理回路によって投機的に実行される1つ以上のプログラム命令がキャンセルされると、前記トレース回路が、前記命令トレースストリームと前記データトレースストリームとの両方で同期マーカーを挿入するように構成されていることを特徴とする請求項35に記載の装置。データを処理するための装置であって、プログラム命令のストリームに応答して処理動作を実行するための処理手段と、前記処理回路によって実行される前記処理動作を表すトレースデータを生成するための前記処理手段に連結されたトレース手段と、を備え、前記トレースデータが、i前記処理手段によって処理されるプログラム命令を表す命令トレースストリームと、ii前記命令トレースストリームとは別であり、前記処理手段とデータを格納するためのメモリ手段との間のデータ転送を表し、前記命令トレースストリームと正確に相関しているデータトレースストリームと、を備えることを特徴とする装置。プログラム命令のストリームに応答して処理動作を実行するステップと、前記実行される処理動作を表すトレースデータを生成するステップと、を含むデータ処理方法であって、前記トレースデータが、i処理されたプログラム命令を表す命令トレースストリームと、ii前記命令トレースストリームとは別であり、前記プログラム命令に応答したデータ転送を表し、前記命令トレースストリームと正確に相関しているデータトレースストリームと、を備えることを特徴とする方法。受信したトレースデータを処理するための装置であって、プログラム命令のストリームに応答して処理動作を実行する処理装置からトレースデータを受信するように構成された受信回路と、前記受信回路に連結され、前記トレースデータを分析するように構成された分析回路と、を備え、前記分析回路が前記トレースデータを、i前記処理回路によって処理されるプログラム命令を表す命令トレースストリームとして、およびii前記命令トレースストリームとは別であり、前記処理回路とメモリとの間のデータ転送を示し、前記命令トレースストリームと正確に相関しているデータトレースストリームとして、分析するように構成されていることを特徴とする装置。受信したトレースデータを処理するための装置であって、プログラム命令のストリームに応答して、処理動作を実行する処理装置からトレースデータを受信するための受信手段と、前記トレースデータを分析するための前記受信手段に連結された分析手段と、を備え、前記分析手段が前記トレースデータを、i前記処理回路によって処理されるプログラム命令を表す命令トレースストリームとして、およびii前記命令トレースストリームとは別であり、前記処理回路とメモリとの間のデータ転送を表し、前記命令トレースストリームと正確に相関しているデータトレースストリームとして、分析するように構成されていることを特徴とする装置。受信したトレースデータの処理方法であって、プログラム命令のストリームに応答して、処理動作を実行する処理装置からトレースデータを受信するステップと、前記トレースデータを分析するステップと、を含み、前記分析するステップは、前記トレースデータを、i前記処理回路によって処理されるプログラム命令を表す命令トレースストリームとして、およびii前記命令トレースストリームとは別であり、前記処理回路とメモリとの間のデータ転送を表し、前記命令トレースストリームと正確に相関しているデータトレースストリームとして、分析するように構成されていることを特徴とする方法。一態様から見て、本発明は、データを処理するための装置であって、プログラム命令のストリームに応答して処理動作を実行するように構成された処理回路と、前記処理回路に連結され、前記処理回路によって実行される前記処理動作を表すトレースデータを生成するように構成されたトレーシング回路と、を備え、前記トレースデータが、第1のトレースストリームと第2のトレースストリームとを含む複数の別個のトレースストリームを備え、前記トレース回路が前記第2のトレースストリームに同期マーカーを挿入して、前記第1のトレースストリームにおける既知のポイントに一致する同期ポイントをマークするように構成されている装置を提供する。複数のトレースストリームが提供されたときに、それらのトレースストリームの適切な分析をサポートする上で困難が生じるということが認められる。特に、トレースストリーム内の要素間の相関をすべての状況で判断するのが困難であり得る。この点を支援するために、本技法は、第1のトレースストリームと第2のトレースストリームとの両方で同期マーカーを挿入するようにトレース回路が構成されており、第1のトレースストリームおよび第2のトレースストリーム内のマッチング位置とのそれぞれの同期ポイントをマークするものと定める。このようにして、トレースストリームが分析されるときに同期マーカーを検出することができ、トレースストリーム間で正確に相関させることができる。第1のトレースストリーム内の既知のポイントは、それ自体も同期マーカーであり得る。複数のトレースストリームがいくつかの理由でサポートされ得るものの、本技法は、第1のトレースストリームが処理回路によって処理されるプログラム命令を表す命令トレースストリームであり、かつ第2のトレースストリームが処理回路とメモリシステムとの間でのデータ転送を表すデータトレースストリームである場合に特に有用である。命令とデータとを別々にトレースすることは、上記の理由など、いくつかの理由で便利である。一続きの命令要素内の要素がそれぞれのキー値でマークされている場合に、それらの要素の解釈が支援される。それらのデータ要素を生み出す個々のデータ要素と命令要素との相関は、それらのデータ値を生み出したり、それらのデータ値と関連付けられたりしている対応命令要素のキー値に一致するキー値でそのデータ値をマークすることによって支援される。一致するキー値を有するデータ要素および命令要素がデータトレースストリームおよび命令トレースストリーム内の自身のそれぞれの位置の間に可変オフセットを有することが許可されていると、命令要素およびデータ要素の生成および処理、さらには実行を開始する命令と利用可能になるその命令に関連するデータとの間で生じ得る遅延の性質に関する柔軟性が許容され得る。そのため、例えば、命令が実行を開始したときに命令トレースストリームで命令要素が生成され、置かれ得るとともに、後に可変遅延に従ってメモリシステムからデータ値が返されたときに、一致するキー値を有する対応データ要素がデータトレースストリームに挿入される。トレース回路は、隣接する命令間で命令要素のキー値を増分的に変更するように配置され得る。かかる配置に伴い、命令要素のキー値は、命令トレースストリーム内で所定の順序を有するであろう。命令トレースストリーム内の命令要素の所定順序および増分的に変化するそれらのキー値とは対照的に、データトレースストリーム内のデータ要素は、可変順序を有することができ、それらのデータ値と関連付けられている命令要素に関して順不同でシステムに返され得る。そのため、第1の命令が高レイテンシメモリにデータロードを発行し得る。第1の命令が先に実行を開始し、命令トレースストリーム内で先に現れる命令要素を有する場合であっても、第1の命令よりも後で実行された第2の命令が低レイテンシメモリにデータロードを発行し、第2の命令に対応するデータ値が、第1の命令と関連付けられたデータ値よりも先に返されることがあり得る。データ要素に提供されるキー値によって、かかる順不同のデータ要素を、対応命令要素と適切に一致させることができる。命令トレースストリームおよびデータトレースストリーム内にビットスペースを維持するために、キー値は、所定のキー値の範囲内でラップするように配置されることがあり、それによって、キー値を格納する目的で割り当てられる必要があるビットスペースを制限する。キー値ラッピングを理由にキー値が曖昧な場合であっても、同期マーカーにより、それぞれのトレースストリーム内の同期ポイントを特定できるため、本技法に従って挿入される同期マーカーがキー値のラッピングを簡便化する。キー値が、転送されたデータ値を表すデータ要素と関連付けられていると、データ要素とその対応命令要素との間のオフセットが大きすぎるために、同期マーカーを挿入して、システムがトレースデータストリームを復号し、データストリームと命令要素との間の関係におけるいかなる曖昧性も排除するのを支援する必要があるかどうかが判断される。この判断を支援するために、隣接する命令要素の検索スペースが命令トレースストリーム内で関連付けられている。この検索スペースは、命令トレースストリーム内の最終一致命令要素に対して相対的に位置付けられており、その最終一致命令要素は、データトレースストリーム内で一致するデータ要素が形成された対象命令トレースストリーム内で最後に現れる命令要素に対応する。こうして検索スペースが移動ウィンドウを形成し、その中でキー値が明瞭に一致するのが通常であることから、それぞれのトレースストリームに同期マーカーを挿入するというオーバーヘッドを必要としない。トレース回路は、さまざまな異なる検出環境に応答して同期マーカーを挿入するように構成され得る。トレース回路が、検索スペース内の最古の命令要素よりも古い命令トレースストリーム内の位置に対応するキー値を有するデータトレースストリーム内でデータ要素を検出するというのが1つの環境である。別の環境では、最も最近生成されたキー値よりも後の検索スペース内の位置に対応する命令要素にキー値が一致するという状況と上記の状況が組み合わさる。同期マーカーを挿入するためのこれらのトリガ状況は、データ要素が現れるのが対応命令要素と比較して遅すぎる事態への対応を支援して、一致しない対応命令要素がすでに検索スペースを離れたことによってキー値だけに依存するかどうかが曖昧になるようにする。トレース回路が命令トレースストリームとデータトレースストリームとの両方で同期マーカーを挿入するように構成されている別の環境は、検索スペース内の最新の命令要素よりも新しい命令トレースストリーム内の位置に対応するキー値を有するデータトレースストリーム内でトレース回路がデータ要素を検出したときである。このトリガ状況は、検索スペース内の最古の命令要素と検索スペース内の最終一致命令要素との間に位置付けられた命令要素にキー値が一致する状況と結び付き得る。これらの状況は、データ要素とその対応命令要素との間の差が大きすぎる事態に対応することから、同期マーカーの挿入が適切であり、これにより、トレースデータストリームを解釈する必要のある回路が、効率的かつエラーなく解釈できるようになる。トレース回路が同期マーカーを挿入するようにトリガされる別の環境は、命令トレースストリーム内の対応命令要素がキャンセルされるように、処理回路で投機的に実行されたもう1つのプログラム命令がキャンセルされたときである。この状況では、命令のキャンセルが命令トレースストリーム内でマークされる場合があり、キャンセルされた命令要素のキー値はその後再利用される。実行された命令要素とキャンセルされた命令要素との両方が命令トレースストリーム内に存在し得るため、データ要素を命令要素と一致させようとする際に、キャンセル動作と関連付けられた同期マーカーの挿入がいかなる潜在的な曖昧性も排除する。また、同じキーを有するデータ要素も存在する場合があり、そのいくつかはキャンセル前に対応し、いくつはキャンセル後に対応する。別の態様から見て、本発明は、データを処理するための装置であって、プログラム命令のストリームに応答して処理動作を実行するための処理手段と、前記処理回路によって実行される前記処理動作を表すトレースデータを生成するための前記処理手段に連結されたトレース手段と、を備え、前記トレースデータが、第1のトレースストリームと第2のトレースストリームとを含む複数の別個のトレースストリームを備え、前記トレース手段が前記第2のトレースストリームに同期マーカーを挿入して、前記第1のトレースストリームにおける既知のポイントに一致する同期ポイントをマークするように構成されている装置を提供する。さらなる態様から見て、本発明は、プログラム命令のストリームに応答して処理動作を実行するステップと、前記実行される処理動作を表すトレースデータを生成するステップと、を含むデータ処理方法であって、前記トレースデータが、第1のトレースストリームと第2のトレースストリームとを含む複数の別個のトレースストリームを備え、前記生成するステップが、前記第2のトレースストリームに同期マーカーを挿入して、前記第1のトレースストリームにおける既知のポイントに一致する同期ポイントをマークする装置を提供する。本発明の補完的な態様は、上記の技法に従って受信したトレースデータを処理ための受信装置である。そのため、本発明のさらなる態様は、受信したトレースデータを処理するための装置であって、プログラム命令のストリームに応答して処理動作を実行する処理装置からトレースデータを受信するように構成された受信回路と、前記受信回路に連結され、前記トレースデータを分析するように構成された分析回路と、を備え、前記トレースデータが第1のトレースストリームと第2のトレースストリームとを含む複数の別個のトレースストリームを備え、前記分析回路が、前記第1のトレースストリームと前記第2のトレースストリーム内の同期マーカーと、前記第1のデータストリーム内の既知のポイントとを特定するように構成されており、前記同期マーカーと前記既知のポイントが前記第1のトレースストリームおよび前記第2のトレースストリーム内のマッチング位置とのそれぞれの同期ポイントを特定する装置を提供する。本発明のさらなる態様は、受信したトレースデータを処理するための装置であって、プログラム命令のストリームに応答して、処理動作を実行する処理装置からトレースデータを受信するための受信手段と、前記トレースデータを分析するための前記受信手段に連結された分析手段と、を備え、前記トレースデータが第1のトレースストリームと第2のトレースストリームとを含む複数の別個のトレースストリームを備え、前記分析手段が、前記第2のトレースストリームにおける同期マーカーと、前記第1のトレースストリーム内の既知のポイントとを特定するように構成されており、前記同期マーカーおよび前記既知のポイントが前記第1のトレースストリームおよび前記第2のトレースストリーム内のマッチング位置とのそれぞれの同期ポイントを特定する装置を提供する。本発明のさらなる態様は、受信したトレースデータの処理方法であって、プログラム命令のストリームに応答して、処理動作を実行する処理装置からトレースデータを受信することと、前記トレースデータを分析することと、を含み、前記トレースデータが第1のトレースストリームと第2のトレースストリームとを含む複数の別個のトレースストリームを備え、前記分析するステップが、前記第2のトレースストリームにおける同期マーカーと、前記第1のデータストリーム内の既知のポイントとを特定し、前記同期マーカーおよび前記既知のポイントが、前記第1のトレースストリームおよび前記第2のトレースストリーム内のマッチング位置とのそれぞれの同期ポイントを特定する装置を提供する。本技法は、同期マーカーが提供されていない実施形態でも使用され得る。これらの態様では、本発明が、データを処理するための装置であって、プログラム命令のストリームに応答して処理動作を実行するように構成された処理回路と、前記処理回路に連結され、前記処理回路によって実行される前記処理動作を表すトレースデータを生成するように構成されたトレーシング回路と、を備え、前記トレースデータが、i前記処理回路によって処理されるプログラム命令を表す命令トレースストリームと、ii前記命令トレースストリームとは別であり、前記処理回路とメモリとの間のデータ転送を表し、前記命令トレースストリームと正確に相関しているデータトレースストリームと、を備える装置を提供する。命令トレースストリームと正確に相関してまたは関連付けられている可能性のある命令トレースストリームとデータトレースストリームとを別個に提供することにより、前述の利点が同期マーカーの挿入から独立して提供される。さらなる態様から見て、本発明は、データを処理するための装置であって、プログラム命令のストリームに応答して処理動作を実行するための処理手段と、前記処理回路によって実行される前記処理動作を表すトレースデータを生成するための前記処理手段に連結されたトレース手段と、を備え、前記トレースデータが、i前記処理手段によって処理されるプログラム命令を表す命令トレースストリームと、ii前記命令トレースストリームとは別であり、前記処理手段とデータを格納するためのメモリ手段との間のデータ転送を表し、前記命令トレースストリームと正確に相関しているデータトレースストリームと、を備える装置を提供する。さらなる態様から見て、本発明は、データ処理方法であって、プログラム命令のストリームに応答して処理動作を実行するステップと、前記実行される処理動作を表すトレースデータを生成するステップと、を含み、前記トレースデータが、i処理されたプログラム命令を表す命令トレースストリームと、ii前記命令トレースストリームとは別であり、前記プログラム命令に応答したデータ転送を表し、前記命令トレースストリームと正確に相関しているデータトレースストリームと、を含む方法を提供する。さらなる態様から見て、本発明は、受信したトレースデータを処理するための装置であって、プログラム命令のストリームに応答して処理動作を実行する処理装置からトレースデータを受信するように構成された受信回路と、前記受信回路に連結され、前記トレースデータを分析するように構成された分析回路と、を備え、前記分析回路が前記トレースデータを、i前記処理回路によって処理されるプログラム命令を表す命令トレースストリームとして、およびii前記命令トレースストリームとは別であり、前記処理回路とメモリとの間のデータ転送を表し、前記命令トレースストリームと正確に相関しているデータトレースストリームとして分析するように構成されている装置を提供する。さらなる態様から見て、本発明は、受信したトレースデータを処理するための装置であって、プログラム命令のストリームに応答して、処理動作を実行する処理装置からトレースデータを受信するための受信手段と、前記トレースデータを分析するための前記受信手段に連結された分析手段と、を備え、前記分析手段が前記トレースデータを、i前記処理回路によって処理されるプログラム命令を表す命令トレースストリームとして、およびii前記命令トレースストリームとは別であり、前記処理回路とメモリとの間のデータ転送を表し、前記命令トレースストリームと正確に相関しているデータトレースストリームとして分析するように構成されている装置を提供する。さらなる態様から見て、本発明は、受信したトレースデータの処理方法であって、プログラム命令のストリームに応答して、処理動作を実行する処理装置からトレースデータを受信することと、前記トレースデータを分析することと、を含み、前記分析ステップが前記トレースデータを、i前記処理回路によって処理されるプログラム命令を表す命令トレースストリームとして、およびii前記命令トレースストリームとは別であり、前記処理回路とメモリとの間のデータ転送を表し、前記命令トレースストリームと正確に相関しているデータトレースストリームとして分析する装置を提供する。本発明の上記および他の目的、特徴および利点は、添付の図面と併せて読まれるべき例示的実施形態に関する以下の詳細な説明から明らかとなるであろう。図1は、メモリ6に連結された処理回路4を含むデータ2を処理するための装置を模式的に表している。処理回路4は、受信したトレースデータ14を処理するための装置に供給される命令トレースストリーム10とデータトレースストリーム12とを生成しているトレーシング回路8を含む。処理回路4は、汎用レジスタ16、乗算器18、シフタ20および加算器22を含むデータパスを有するプロセッサコアを含む。プリフェッチ回路24を介してメモリ6からフェッチされたプログラム命令が命令パイプライン26に供給され、復号段階で、データパス16、18、20、22を制御して所望の処理動作を実行するための制御信号を生成する。本実施例において、これらの処理動作は、メモリ6と処理回路4との間でのデータ転送を含む。データ転送は、レジスタバンク16内のレジスタの1つに対するデータ値のロード、またはメモリ6に対するレジスタバンク16のレジスタ内の値の1つのストアという形態であり得る。処理回路4は極めて簡略化された形態で示されており、実際にはさらなる回路要素を多数含み得ることを理解されたい。さらに、図1の実施形態例は、処理回路4とメモリ6とを別個のものとして表しているが、これらの要素はシステムオンチップの集積回路等で複合的に形成され得ることも理解されたい。処理回路4は、処理回路4と関連付けられた組み込みトレースマクロセルETMの一部として、トレーシング回路8を含む。トレーシング回路8は、パイプライン26から受信される信号28に応答して、実行中の命令を表す命令要素を含む命令トレースストリームを生成する。トレース回路8は、処理回路4とメモリ6との間で行われているデータ転送を表す信号30も受信する。これらの信号30は、検出されたトレース中のデータ転送を表すデータ要素を含んでいるデータトレースストリームの生成を制御する目的でトレース回路8によって使用される。組み込みトレースマクロセルは、命令トレースストリームおよびデータトレースストリームがトレースデータ14を受信するための装置に送信される前に格納されるトレースバッファ32を含む。トレース回路8は、1つ以上の命令がキャンセルされたことを示すパイプライン26からのキャンセル信号にも応答する。命令のキャンセルの発生は、以下でさらに述べるとおり、データトレースストリーム12と命令トレースストリーム10とに同期マーカーを挿入するための1つのトリガである。この実施形態例におけるトレースデータ14を受信するための装置は、データトレースストリーム12と命令トレースストリーム10とを受信するための受信回路34、さらには汎用プロセッサ36とプログラムメモリ38とを含む汎用コンピュータを備える。プログラムメモリ38内に格納され、汎用プロセッサ36によって実行されるコンピュータプログラムは、受信したデータトレースストリーム12と命令トレースストリーム10とを分析して、実行された命令を所有するユーザと、転送されたデータ値を所有するユーザに明示する。これは、デバッギング、診断およびパフォーマンスの最適化など、さまざまな理由で有用である。分析には、命令トレースストリーム10およびデータトレースストリーム12内で同期マーカーが使用され、データ要素が命令要素と一致できるように、これらのトレースストリーム10、12内で一致相関する位置が特定される。動作トレーシング回路8、特にETM内のインデックス格納ユニット別称トラッキングテーブル220の動作について、表1を参照しながら以下説明する。表1は、プロセッサコアが命令A、BおよびCのグループを投機的に実行し、その後グループBがキャンセルされ、グループAが確定されるべきである事態で、カウンタ値、最古の未確定値およびトラッキングテーブルがどのようにETMで更新されるかを示す。グループAは、対象であり、現在トレース中であるロードLDR命令で始まる。そのため、グループAA.firstに対応する第1のインデックスユニット230のエントリは、現在のカウンタ値0を格納し、このカウンタは1に増分される。最後に、グループAA.lastに対応する最終インデックスユニット240のエントリが、現在のカウンタ値1を格納する。グループAにおける次の命令は、対象でなく、トレースもされていない移動命令MOVである。グループAの最終命令は、対象であり、かつトレースされる等しければ分岐BEQ命令であることから、カウンタは2に増分される。グループAA.lastに対応する最終インデックスユニット240のエントリは、その後現在のカウンタ値2で以て更新される。実際、現在のグループに対応する最終インデックスユニット240のエントリが常に現在のカウンタ値で以て更新されるのが各命令の最終ステップであるという点に注意すべきである。当然のことながら、このステップは、その命令に対してカウンタが更新された場合に限り有効である。表1に示す残りの命令ついては、このようにして最終値を更新することが明示的に記載されていない。グループBは、対象でなくトレースもされてもいないADD命令で始まるが、新しいグループにおける第1の命令により、現在のカウンタ値2に第1のインデックス値格納ユニットの対応エントリすなわちB.first=2に格納される。グループBにおける第2の命令は、同じく対象でなく、トレースもされてもおらず、いかなる値も更新しないSUB命令である。グループCは対象であり、トレースされるストアSTR命令によって開始されるため、現在のカウンタ値は、第1のインデックス格納ユニットのC.firstエントリに格納され、カウンタはその後3に増分される。グループCにおける第2の命令は、対象であり、トレースもされる等しくなければ分岐BNE命令であるので、カウンタは4に更新される。次にプロセッサコアは、グループBの投機的実行が間違っていたため、グループBおよびCがキャンセルされるべきであることを明示する。それに対し、ETMトレーシング回路8が制御は、カウンタ210の現在のカウント値と、第1のインデックス格納ユニット230の対応エントリすなわちB.firstに格納されている値現在は2とを参照する。したがってETMは、2つのトレースデータの項目4-2がキャンセルされるべきであると判断し、この事実を表すトレースデータの項目を生成する。その後カウンタ210は、それまでが4であり、2つの項目がキャンセルされたため、2にリセットされる。次にプロセッサコアが、このグループの命令の投機的実行が正しかったと判断したため、命令グループAが確定されるべきであることを明示する。それに対し、トレーシング回路8の制御下にあるETMは、最古の未確定格納ユニット250現在は0に格納されている値と、このグループに対応する最終インデックス格納ユニット240におけるエントリすなわちA.last現在は2とを参照する。したがってETMは、2つのトレースデータの項目2-0が確定されるべきであると判断し、この事実を表すトレースデータの項目を生成する。最古の未確定格納ユニット250に格納された値はその後、このグループに関して読み込まれる最終値本実施例では2にリセットされる。表1で参照されている実施形態では、確定とキャンセルがいくつかのイベントを参照して実行され、生成されたトレースデータの項目が、キャンセルまたは確定されるべきであるいくつかのイベントを明示するという点に注意されたい。代替実施形態では、トレースユニットが、イベント番号を参照してトレースのキャンセル/確定項目を生成することができる。この場合、トレースのキャンセル項目については、第1の値すなわち第1のインデックス値格納ユニットの対応エントリからイベント番号が取得され、トレースの確定項目については、最終値すなわち最終インデックス値格納ユニットにおける対応エントリからイベント番号が取得される。イベント番号による確定およびキャンセルは、減算が不要のためハードウェアの必要性が低いように思われるかもしれないが、いくつかのイベントによるキャンセル/確定を明示する際、一般に先頭のゼロを有することから、圧縮されることが多いという点に注意する必要がある。イベントの数またはイベント番号によるキャンセル/確定の選択は、システム要件、すなわちトレースユニットでハードウェアが少ないこと、またはトレースストリームで帯域幅が狭いことが重要とみなされるかどうかに応じて判断することができる。図2は、複数のトレースストリーム10、12を模式的に表している。本実施形態例において、これらの複数のトレースストリームは、データトレースストリーム12および命令トレースストリーム10である。異なるトレースストリーム内で同期マーカーを挿入する本技法の一般的な態様は、それらのトレースストリームがデータトレースストリーム12と命令トレースストリーム10とを備える事態に限定される必要はないという点を理解されたい。図2の実施例では、命令トレースストリーム10が一続きの命令要素アトムを含み、各々が0から5の範囲内のキー値でマークされている。これらのキー値は、増分シーケンスで命令要素に適用される。このシーケンスは、キー値5の後にラップされ、キー値0に戻る。このキー値の範囲は一例に過ぎず、実際には、はるかに大きい範囲および/または任意の既定シーケンスが使用され得るという点を理解されたい。さらに、本実施例における増分は昇順であるものの、キー値の絶対値を減らしていくように適用され、その後キー値がゼロに達するとラップされることもあり得る。さらに、システム全体のコンテキストで適切であれば、キー値が1以外の値ごとに変化する可能性がある。これらすべての可能性が、本技法によって包含される。命令トレースストリーム10内に、一致した最新の命令要素に対応する最終一致命令要素LME40、すなわち、以前に一致したすべての命令要素のうち最新のLMEがある。図2に表す実施例では、データ要素44が、処理回路4とメモリ6との間でのデータ転送の検出に続いてデータトレースストリーム12内で挿入される。このデータ要素44は、命令トレースストリーム10内で命令要素46と一致する。トレーシング回路8は、パイプライン26からの信号28と、データパスをスヌープすることによって派生した信号30とを分析することにより、これが正しい一致であると判断する例えばメモリアドレスが、データ転送を命令と一致させる目的で、トレース回路8によって使用され得る。データ要素44および命令要素46は、データトレースストリーム12および命令トレースストリーム10内でともに一致させることができるように、一致するキー値でマークされており、本実施例ではキー値が3である。データ要素44がデータトレースストリーム12で挿入される正確なタイミングは、データ転送の可変遅延への依存度によって変わるであろう。そのため、命令要素46とその対応データ要素44との間には可変オフセットがある。この可変オフセットの存在もあり、データトレースストリーム12内のデータ要素が、命令トレースストリーム10内の対応命令要素と必ずしも同じ順序に従うとは限らない。データトレースストリーム12内のデータ要素がこのように順不同で挙動することは、キー値を使用することが、処理回路4とメモリ6との正確な挙動を理解するために、データトレースストリーム12と命令トレースストリーム10とを相関的な方法で分析できる上で重要である1つの理由である。命令トレースストリーム10内の最終一致命令要素LME40の周りに位置するのが検索スペース48である。この検索スペースは、以下に述べるとおり、同期マーカーがデータトレースストリーム12と命令トレースストリーム10とに挿入されるべき時期を定義および制御する際に使用される。検索スペース48は、最終一致要素40と一定の関係を有するように位置付けられているため、最終一致要素40が命令トレースストリーム10内で位置を移動するにつれて、検索スペース48も命令トレースストリーム10内で移動する。図2に示す実施例では、検索スペース48が、キー値の1つの完全な数値範囲にわたるようなサイズ、すなわち、検索スペースが、0から5に及ぶ潜在的なキー値の全範囲を包含するようなサイズを有する。図3は、命令トレースストリーム10内に発行される命令要素と関連付けるキー値を判断する際にトレース回路8によって実行され得る処理を模式的に表すフロー図である。ステップ50で、キー値KVがゼロの値に初期化される。ステップ52で、命令要素が命令トレースストリーム10内に発行されるまで処理が待機するかかる命令要素が発行されると、処理はステップ54に進み、キー値KVの現在値が、命令トレースストリーム10内に置かれている命令要素と関連付けられる例えば、命令要素内の空フィールドが、キー値KVの現在値を保持する目的で使用される。ステップ56で、キー値KVが増分される。ステップ58で、キー値がラップされるべき状態に達したかどうかが判断される。図示された実施例では、キー値が6に達すると、ラップが実行されるべきであり、処理がステップ50に戻ってキー値が再び0に初期化される。ラップがそのキー値で必要でない場合には、処理がステップ52に戻り、発行される別の命令要素を待機する。図4は、データトレースストリーム12で挿入されるデータ要素とキー値KVを関連付ける際にトレース回路8によって実行される処理を模式的に表すフロー図である。ステップ60で、データトレースストリーム12内に発行されることになっているデータ要素が検出されるまで処理が待機する。かかるデータ要素が検出されると、ステップ62でキー値KVがそのデータ要素に割り当てられ、命令トレースストリーム10内にすでに発行され、関係のあるデータ要素に対応する命令要素のキー値KVを一致させる。こうしてロード命令が実行され得ると共に、その命令に対応している命令要素が命令トレースストリーム10内に挿入され得る。そのロード命令後で可変数の処理サイクルとなり得るに応答してデータ値が返されると、対応データ要素がデータトレースストリーム12内に挿入され、ロード命令の命令要素のキー値に一致するキー値でマークされる。トレース回路8は、データ要素でマークされるデータ転送を生み出すかかるインフライト命令をトラッキングするため、データ要素が到着すると、トレース回路8が、一致するキー値をそのデータ要素と関連付ける。ステップ62に続き、ステップ64で、適切なキー値でマークされているデータ要素がデータトレースストリーム12内に発行され、処理がステップ60に戻る。図5は、データトレースストリーム12および命令トレースストリーム10内への同期マーカー66の挿入がトリガされる状況の一実施例を模式的に表している。図5の実施例は、対応命令要素70が命令トレースストリーム10内に発行された後、データ要素68が挿入されるのが遅すぎる事態である。図5に示す実施例では、命令要素72が命令トレースストリーム10内に挿入される前にデータ要素68が生じたことが確認されるであろう。対応する命令が実行される前にデータ転送が行われることはないため、このケースでは、データ要素68がはるか以前の命令要素70に対応する。トレース回路8は、命令トレースストリーム10内で最も最近生成された命令要素をトラッキングすることによって動作する。さらに、検索スペース48の最新の終端は、最終一致要素LMEの位置から派生した一定の計算に基づいて判断され、この位置もトラッキングされる。挿入中のデータ要素68のキーが、最も最近生成された命令要素74のキーよりも新しいものの、検索スペース48の最新の終端76よりも前であるか等しい場合、データ要素68はその検索スペースよりも前である命令要素70に対応するため、同期マーカー66一意のビットパターンなどは、データトレースストリーム12と命令トレースストリーム10との両方に挿入される。図6Aは、データ要素78の挿入と先行データ要素との間の差が長すぎる事態を模式的に表している。この環境で同期マーカー82を挿入するための要件は、データ要素78のキー値が、最終一致要素LMEと検索スペース48の最古の終端86との間に存在するデータ要素80のキー値に一致すれば、検索スペース48の最新の終端84より後の位置に対応するキー値を有するデータ要素78によって特定される。図6Aの事態にかかる同期マーカー82の生成は、3つの状態を有するステートマシンを使用して制御され得る。このステートマシンは、図6Bに表すとおり、アイドル状態と、検索スペースより後状態と、最終一致要素より後状態とを有することができる。ステートマシンは、検索スペースの終端を過ぎた命令要素が生成されるまで、アイドル状態を占有する。これにより、ステートマシンが検索スペースより後状態に移動する。この状態では、検索スペースが進んで命令要素が検索スペースの最新の終端より後に存在しなくなると、ステートマシンがアイドル状態に戻り得る。生成された命令のキーがLMEキーに等しい場合には、ステートマシンが検索スペースより後状態から最終一致要素より後状態まで進み得る。同期マーカーが挿入される時期は、検索スペースの終端より後状態にあり、データ要素キーが検索スペースの最古の終端とLMEとの間にあるか、最終一致要素より後状態にあり、何らかのデータ要素が生成されるときである。図7は、命令要素90に対応する命令を含む2つの命令がキャンセルされたときに、データトレースストリーム12および命令トレースストリーム10で同期マーカー88が挿入される事態を表している。同期マーカーは、キャンセルされる命令より後の命令に対応する少なくとも第1のデータ要素を対象に挿入される。この挿入を制御するために、トレース回路8は、キャンセルされた最古の命令要素の明示を格納する。このキーは、キャンセル後の第1の命令要素用のキーとして機能する。例示された実施例では、キャンセル動作が、キー4と5とでマークされる命令要素をキャンセルする働きをする。したがって、キー4は、キャンセル動作に続いて再利用され、命令トレースストリーム10内でキャンセルマーカー94に続く第1の命令要素92をマークする。データ要素88に戻り、このデータ要素88のキーが、キャンセルされた最古の命令要素と最も最近生成された命令要素エンドポイント命令要素を含むとの間にある場合、このキーはキャンセル後の第1のデータ要素であり得るため、命令トレースストリーム10とデータトレースストリーム12との両方で同期マーカーが挿入される。これが検出される前に第2のキャンセルが発生すると、キャンセルされた最古の命令要素のキャンセル値が更新される。この場合、最も最近キャンセルされた命令要素より後の命令要素に対応する第1のデータ要素が検出されるまで、トレース回路8は、すべてのデータ要素を対象に同期マーカーを挿入する。キャンセルされた命令より後の命令要素に対応する第1のデータ要素が検出されると、キャンセルキーが無効とマークされ、そのキャンセルに続くさらなる同期マークは挿入不要となる。命令要素がキャンセル値に等しいキーで生成されると、そのキーはラップされる。この場合には、同期マーカーが次のデータ要素用に挿入される。キャンセル後に長期間にわたってデータ要素が存在しない場合を除き、この事象が発生する可能性は低い。図8は、図5と図6とで表された事態にかかる、同期マーカーを挿入する際のトレース回路8の動作を表すフロー図である。ステップ96で、データ要素が検出されるまで処理が待機する。ステップ100で、データ要素のキー値が、最も最近生成された命令要素のキー値より新しい検索スペース48内の命令要素に一致するかどうかが判断される。これは、検索スペース内の最古の命令要素より古いデータ要素のキー値に対応する。ここで一致すると判断されると、処理がステップ102に進み、命令トレースストリーム10とデータトレースストリーム12との両方に同期マーカーが挿入される。ステップ100での判断によって不一致とみなされた場合には、処理がステップ106に進む。ステップ106で、検索スペースより後状態にあるとき、または最終一致要素より後状態にあるときに、データ要素のキー値が、検索スペースの最古の終端と最終一致要素との間に位置付けられている検索スペース48内の命令要素に一致するかどうかが判断され、データ要素が生成される。これは、検索スペース内の最新の命令要素より新しいデータ要素のキー値に対応する。ステップ106で一致すると判断されると、処理がステップ102に進み、同期マーカーが挿入される。ステップ100での判断とステップ106での判断のどちらかでも一致とみなされないと、同期マーカーが挿入されない。図9は、図7に表す事態にかかるトレース回路の動作を模式的に表すフロー図である。ステップ108で、トレースストリーム内の命令要素に対応する命令がキャンセルされるまで処理が待機する。ステップ109で、キャンセル後の命令に対応する第1のデータ要素を求めて処理が待機する。ステップ110で、キャンセルされる最古の命令のキー値が明示され、キャンセルされた最新の命令と最も最近生成された命令要素との間にあるキー値を有するデータ要素が現れると、命令トレースストリーム10とデータトレースストリーム12との両方で同期マーカーが挿入される。本技法にかかるトレース分析ツールの動作について、図10Aから図10Dを参照して説明する。このツールは、命令とデータトレース要素とを別個のストリームで受信するため、データを命令と一致させるために何らかの作業を行う必要がある。ひいては、各データトレース要素を受信される順序で検討すべきである。このツールは、命令トレース要素すなわちアトム間の対応する一致を1つずつ試行し、見つける必要がある。そのために、次の2つの操作の1つを要する。現在検討されているデータトレース要素よりも同期マークの方が先であった場合には、対応する同期マークが命令トレース要素間で見つかる必要がある。そのために、同期マークが受信されたときにそれらを一致させる。両方のストリームに同じ数の同期マーク数があり、それらは両方のストリームで同じ順序なので、これは単純なタスクである。対応する同期マークが見つかると、このツールはその同期マークから後方に、正しいトレースキーを有する命令要素を見つけるまで検索する。対応する同期マークが見つからなければ、検索スペースコンセプトに従って検索する。命令トレースにはキャンセルが存在し得るため、この作業は検索スペースの検索よりも少し複雑である。その代わり、以下のステップが、一致命令要素が見つかるまで記載の順序で実行される。1LMEを含めLMEから、次のどちらかが満たされるまで前方に検索する。a.キャンセルトレース要素が見つかるb.検索スペースの最新の終端が見つかる2検索スペースの最古の終端よりもさらに戻ることになっても、一致が見つかるまで、またはツールが実行する命令がなくなるまで、LMEから後方に検索する。一対の同期マーカー各ストリームから1つずつが見つかり、上記第1の規則を適用できてLMEが設定されるまで、一致検索は始まらない。どちらの操作が使用されても、マッチングアトムが現在のLMEより新しいと、LMEが更新される。図10Aは、ツールが同期マークの後ろにデータアドレス要素DA1を見つけ、その要素を対応するアトムと一致させる実施例を示す。この一致の後、LMEはA1と明示される。図10Bは、ツールがDA3を検討しており、検索スペースを使用して一致検索を行っている実施例を示す。キャンセルは存在しない。この一致の後、LMEはA3へと前進する。図10Cは、キャンセルが存在する場合にツールが一致検索を行っている実施例を示す。この図はDA3を検討している。このツールは、LMEから前方に検索し、キャンセルの前に一致命令を見つける。この一致の後、LMEはA3へと前進する。図10Dは、キャンセルが存在する場合にツールが一致検索を行っている実施例を示す。このツールは、LMEから前方に検索するが、キャンセルの前に一致に見つからないため、次に後方に検索して一致を見つける。マッチングアトムがLMEより古いため、この一致の後にはLMEが移動しない。本発明の例示的実施形態について、添付の図面を参照して本明細書に記載してきたが、本発明はそれらの正確な実施形態に制限されず、添付の請求項によって定義される本発明の範囲と精神から逸脱しない限り、各種変更と改変が当業者によって本発明で遂行可能であることを理解すべきである。