(57)【要約】  トランザクション操作デバイスは、データ処理トランザクションのトランザクション要求を操作するためのトランザクション操作回路であって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション操作回路と、その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータの状態を検出するための検出回路と、を備える。
2020502660.tif 000002
【特許請求の範囲】
【請求項１】
トランザクション操作デバイスであって、
データ処理トランザクションのトランザクション要求を操作するためのトランザクション操作回路であって、前記トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション操作回路と、
その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための前記識別子に関連付けられたインジケータの状態を検出するための検出回路と、
を備えるトランザクション操作デバイス。
【請求項２】
前記処理の態様が、
（ｉ）前記トランザクションがその宛先に配信されている、
（ｉｉ）前記トランザクションへの応答が前記トランザクションの前記イニシエータに返されている、および
（ｉｉｉ）前記トランザクションが完了している、
ことからなるリストから選択された１つ以上を備える、請求項１に記載のデバイス。
【請求項３】
順序付け回路を備え、前記順序付け回路は、
同じ識別子を有する要求のセットを定義するデータを記憶するためのバッファ回路と、
新しく受信したトランザクションに関連付けられた前記識別子が前記バッファ回路によってデータが保持されているいずれかのトランザクションの前記識別子と同じであるか否かを検出するための比較回路と、
を備える、請求項１に記載のデバイス。
【請求項４】
前記順序付け回路は、これらのトランザクションの発行の順序にしたがって、同じ識別子を有する前記バッファ回路によって保持されるこれらのトランザクションを定義するデータを出力するように構成されている、請求項３に記載のデバイス。
【請求項５】
前記バッファ回路は、トランザクション識別子の完了確認に応答してそのトランザクション識別子に関するバッファデータを削除するように構成されている、請求項３または４に記載のデバイス。
【請求項６】
前記トランザクション操作回路は、前記要求識別子が同時に保留中の１つの要求のみに関連することを示すように前記インジケータが設定されていることを前記検出回路が検出するトランザクション要求を操作するときに、前記順序付け回路をバイパスするように構成されている、請求項３から５のいずれか一項に記載のデバイス。
【請求項７】
前記インジケータは１ビットインジケータである、請求項１から６のいずれか一項に記載のデバイス。
【請求項８】
データ処理トランザクションのトランザクション要求を発行するためのトランザクション発行回路であって、前記トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション発行回路を備え、
前記トランザクション発行回路は、その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための前記識別子にインジケータを関連付けるように構成されている、
イニシエータデバイス。
【請求項９】
前記処理の態様が、
（ｉ）前記トランザクションがその宛先に配信されている、
（ｉｉ）前記トランザクションへの応答が前記イニシエータデバイスに返されている、および
（ｉｉｉ）前記トランザクションが完了している、
ことからなるリストから選択された１つ以上を備える、請求項８に記載のデバイス。
【請求項１０】
前記デバイスは、トランザクション識別子に関する完了確認の受信に応答し、このために前記インジケータは、別の要求にこのトランザクション識別子を再使用できるようにするため、前記トランザクションが同時に保留中の１つのトランザクションのみに関連することを示すように設定されている、請求項８または９に記載のデバイス。
【請求項１１】
前記インジケータは１ビットインジケータである、請求項５に記載のデバイス。
【請求項１２】
各々が請求項１から４のいずれか一項に記載の１つ以上のトランザクション操作デバイスと、
各々が請求項５から６のいずれか一項に記載の１つ以上のイニシエータデバイスと、
前記１つ以上のイニシエータを前記１つ以上のトランザクション操作デバイスに接続するための相互接続回路と、
を備えるデータ処理装置。
【請求項１３】
前記装置は、前記インジケータを、トランザクション識別子を含む全てのトランザクションメッセージに関連付けるように構成されている、請求項１２に記載の装置。
【請求項１４】
データ操作トランザクション要求を表すデータ信号であって、前記データ信号は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような識別子と、その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための前記識別子に関連付けられたインジケータと、を備える、データ信号。
【請求項１５】
データ処理トランザクションのトランザクション要求を操作するステップであって、前記トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、ステップと、
その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための前記識別子に関連付けられたインジケータの状態を検出するステップと、
を備える方法。
【請求項１６】
データ処理トランザクションのトランザクション要求を発行するステップであって、前記トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、ステップと、
その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための前記識別子にインジケータを関連付けるステップと、
を備える方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、トランザクション操作に関する。
【背景技術】
【０００２】
いくつかのトランザクション操作プロトコルは、（トランザクションを開始する）イニシエータデバイスがトランザクションへの応答を待つことができるとともに、トランザクションサーバデバイスから応答が到着すると適切に応答を操作できるように、データ処理トランザクションに関連付けられた識別子を利用する。
【０００３】
いくつかのプロトコルでは、同じ識別子を有するイニシエータデバイスによって複数の同時トランザクションが発行されることが可能である。このようなトランザクションのセットには通常、順序付け要件が適用される。たとえば、順序付け要件は、トランザクションがトランザクション発行順序でその宛先に配信されるという要件、ｉ）トランザクションへの応答がトランザクション発行順序でトランザクションのイニシエータに戻されるという要件、およびトランザクションがトランザクション発行順序で完了するという要件のうちの１つ以上であってもよい。
【０００４】
しかしながら、たとえばトランザクションのセットが複数のサーバデバイスによって操作される場合など、順序付けが潜在的に阻害され得る事例が発生する可能性がある。このような事例では、順序付け要件が阻害されるのを回避するために、いわゆる順序付け技術が使用され得る。これらの技術は、順序付け要件に対して「早く」受信または操作されるトランザクションを延期すること、および／またはこのような情報を転送するのに敵した段階までトランザクションに関する情報をバッファリングすることを含むことができる。
【発明の概要】
【０００５】
例示的な配置では、トランザクション操作デバイスであって、
データ処理トランザクションのトランザクション要求を操作するためのトランザクション操作回路であって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション操作回路と、
その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータの状態を検出するための検出回路と、
を備えるトランザクション操作デバイスが提供される。
【０００６】
別の例示的な配置では、イニシエータデバイスであって、
データ処理トランザクションのトランザクション要求を発行するためのトランザクション発行回路であって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション発行回路を備え、
トランザクション発行回路は、その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子にインジケータを関連付けるように構成されている、
イニシエータデバイスが提供される。
【０００７】
別の例示的な配置では、データ操作トランザクション要求を表すデータ信号であって、データ信号は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子と、その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータと、を備える、データ信号が提供される。
【０００８】
別の例示的な配置では、
データ処理トランザクションのトランザクション要求を操作するステップであって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、ステップと、
その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータの状態を検出するステップと、
を備える方法が提供される。
【０００９】
別の例示的な配置では、
データ処理トランザクションのトランザクション要求を発行するステップであって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、ステップと、
その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子にインジケータを関連付けるステップと、
を備える方法が提供される。
【００１０】
本技術のさらなるそれぞれの態様および特徴は、添付の請求項によって定義される。
【００１１】
本技術は、以下の添付図面に示されるようなその実施形態を参照して、単なる例示によって、さらに説明される。
【図面の簡単な説明】
【００１２】
【図１】データ処理装置を概略的に示す図である。
【図２】例示的なトランザクション操作状況を概略的に示す図である。
【図３】例示的なトランザクション操作状況を概略的に示す図である。
【図４】トランザクション操作回路を概略的に示す図である。
【図５】イニシエータデバイスの動作の方法を示す概略フローチャートである。
【図６】イニシエータデバイスの動作の方法を示す概略フローチャートである。
【図７】トランザクション操作回路の動作の方法を示す概略フローチャートである。
【図８】トランザクション操作回路の動作の方法を示す概略フローチャートである。
【図９】トランザクション操作回路の動作の方法を示す概略フローチャートである。
【図１０】トランザクション操作回路を概略的に示す図である。
【図１１】イニシエータデバイスを概略的に示す図である。
【図１２】要約した方法を示す概略フローチャートである。
【図１３】要約した方法を示す概略フローチャートである。
【発明を実施するための形態】
【００１３】
添付図面を参照して実施形態を論じる前に、以下の実施形態の説明が提供される。
【００１４】
例示的な実施形態は、トランザクション操作デバイスであって、
データ処理トランザクションのトランザクション要求を操作するためのトランザクション操作回路であって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション操作回路と、
その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータの状態を検出するための検出回路と、
を備えるトランザクション操作デバイスを提供する。
【００１５】
例示的な配置では、識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すためにインジケータが提供される。そうでない場合には、２つ以上の同時に保留中のトランザクション要求に関連しないトランザクション識別子によって課される順序付け要件はないので、いかなる再順序付け配置も都合よく無視またはバイパスされることが可能である。
【００１６】
トランザクション要求操作に適用可能な順序付け要件は、処理の態様が以下からなるリストから選択された１つ以上を備えるようになり得る。
（ｉ）トランザクションがその宛先に配信されている、
（ｉｉ）トランザクションへの応答がトランザクションのイニシエータに返されている、および
（ｉｉｉ）トランザクションが完了している（たとえば、そのトランザクションに関する全ての処理が実行済みである）。
【００１７】
例示的な配置では、（トランザクション操作デバイスの一部としての）順序付け回路は、同じ識別子を有する要求のセットを定義するデータを記憶するためのバッファ回路と、新しく受信したトランザクションに関連付けられた識別子がバッファ回路によってデータが保持されているいずれかのトランザクションの識別子と同じであるか否かを検出するための比較回路と、を備えてもよい。例では、順序付け回路は、これらのトランザクションの発行の順序にしたがって、同じ識別子を有するバッファ回路によって保持されるこれらのトランザクションを定義するデータを出力するように構成されている。
【００１８】
例示的な配置では、バッファ回路は、トランザクション識別子の完了確認に応答してそのトランザクション識別子に関するバッファデータを削除するように構成されてもよい。
【００１９】
要求識別子が同時に保留中の１つの要求のみに関連することを示すようにインジケータが設定されていることを検出回路が検出するトランザクション要求を操作するときに、トランザクション操作回路が順序付け回路をバイパスするように構成されている配置では、同時に保留中の別のトランザクションと識別子を共有しないトランザクションの場合には、再順序付けは都合よく回避され得る。同様に、少なくともいくつかのトランザクションはこれをバイパスするので、これによってあまり強力ではない（たとえばより少ない回路空間を占有する）順序付け回路を使用できるようにする。
【００２０】
別の例示的な実施形態は、イニシエータデバイスであって、
データ処理トランザクションのトランザクション要求を発行するためのトランザクション発行回路であって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション発行回路を備え、
トランザクション発行回路は、その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子にインジケータを関連付けるように構成されている、
イニシエータデバイスを提供する。
【００２１】
例示的な配置では、その識別子を有する前のトランザクションが完了し、（たとえば）その完了がイニシエータに通知されると、トランザクション識別子は再使用され得る（そして同時に保留中の別のトランザクションにはまだ適用されないと見なされ得る）。したがって、例示的な配置では、トランザクション識別子に関する完了確認の受信に応答し、このためにインジケータは、別の要求にこのトランザクション識別子を再使用できるようにするため、そのトランザクションが同時に保留中の１つのトランザクションのみに関連することを示すように設定されている。
【００２２】
一意／非一意表示のみが少なくとも例示的な実施形態で必要とされるので、インジケータは１ビットインジケータであってもよい。
【００２３】
別の例示的な実施形態は、
上記で定義されたような１つ以上のトランザクション操作デバイスと、
上記で定義されたような１つ以上のイニシエータデバイスと、
１つ以上のイニシエータを１つ以上のトランザクション操作デバイスに接続するための相互接続回路と、
を備えるデータ処理装置を提供する。
【００２４】
トランザクションの操作における様々な段階で（一意識別子の場合）再順序付けを回避できるようにするために、例示的な配置では、装置は、トランザクション識別子を含む全てのトランザクションメッセージにインジケータを関連付けるように構成されている。
【００２５】
別の例示的な実施形態は、データ操作トランザクション要求を表すデータ信号であって、データ信号は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子と、その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータと、を備える、データ信号を提供する。
【００２６】
別の例示的な実施形態は、
データ処理トランザクションのトランザクション要求を操作するステップであって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、ステップと、
その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータの状態を検出するステップと、
を備える方法を提供する。
【００２７】
これらのステップは、並行してまたは暗黙的に実行され得ることに留意されたい。たとえば、イニシエータ内のＩＤのセットは、イニシエータの動作の他の詳細のために一意であることが、暗黙的に知られているかも知れない。つまり、この機能を網羅するために２つの別々にまたは連続して実施されるステップは不要である。
【００２８】
別の例示的な実施形態は、
データ処理トランザクションのトランザクション要求を発行するステップであって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、ステップと、
その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子にインジケータを関連付けるステップと、
を備える方法を提供する。
【００２９】
図面を参照すると、図１は、多数のマスターまたはトランザクション開始デバイス（もしくはイニシエータとも称される）１００、１１０、１２０、１３０を備えるデータ処理システムを概略的に示す。イニシエータ１００、１１０は、ＡＸＩ（Ａｄｖａｎｃｅｄ  Ｅｘｔｅｎｓｉｂｌｅ  Ｉｎｔｅｒｆａｃｅ）プロトコルにしたがって動作する。イニシエータ１２０、１３０は、ＣＨＩ（Ｃｏｈｅｒｅｎｔ  Ｈｕｂ  Ｉｎｔｅｒｆａｃｅ）プロトコルにしたがって動作する。
【００３０】
イニシエータ１００、１１０は相互接続部１４０に接続され、イニシエータ１２０、１３０はキャッシュコヒーレント相互接続部１５０に接続されている。
【００３１】
相互接続部１４０、１５０は、相互接続部１６０を介して、主メモリ、主メモリにアクセスするダイナミックメモリコントローラなどのような様々なスレーブノード１７０、１８０に接続されている。
【００３２】
図１のデータ処理装置は、いわゆるシステムオンチップ（ＳｏＣ）またはネットワーク御チップ（ＮｏＣ）システムとして実装されることが可能である。
【００３３】
動作中、イニシエータ１００から１３０は、データ処理動作に関するいわゆるトランザクション要求を発行する。トランザクション要求の一例は、特定のメモリアドレスまたはメモリアドレスの範囲からデータを読み出す要求である。別の例は、メモリアドレスまたはメモリアドレスの範囲にデータを書き込む要求である。その他のトランザクション要求は、装置内の特定のノードに保持された特定のデータのコピーを無効化することなどの事項に関係してもよい。
【００３４】
イニシエータは、各トランザクションに、トランザクション識別子を関連付ける。いくつかの事例では、トランザクション識別子は「一意」であり得る。用語「一意」は、装置全体にわたる一意性を暗示するものではなく、全期間にわたる一意性を暗示するものでもない。むしろ、一意性は、その識別子を有する特定のイニシエータからの現在保留中のトランザクションが１つだけあるものとして定義される。そのため、別のイニシエータが同じ識別子を使用していたとしても、識別子が一意であることが可能であり、その識別子を有する現在保留中のトランザクションが１つだけある場合、同じイニシエータによって複数回使用されても識別子はなお一意と見なされることが可能であり、これはつまり、特定の識別子を有するトランザクションが完了してその完了がイニシエータに通知されれば、その一意な状態を損なわずに後続のトランザクションで同じ識別子が使用され得る。
【００３５】
イニシエータによって発行されたデータ処理トランザクションは、様々な相互接続部を介して、スレーブノード１７０、１８０のうちの１つなどの宛先に配信される。そこで、トランザクションに関する処理が実行され、適切な応答がそのトランザクションのイニシエータに送信される。トランザクションに関する処理の終わりに、完了確認がイニシエータに送信される。
【００３６】
ＣＨＩイニシエータ１２０、１３０は、ＣＨＩプロトコルによって、上記で定義されたような一意識別子を常に使用することになっている。
【００３７】
しかしながら、ＡＸＩイニシエータ１００、１１０はいずれかの一意識別子を使用することができ、または同じ識別子を有する２つ以上のトランザクションのセットを発行することができる。このような配置は、ＡＸＩおよび様々なその他のトランザクション操作プロトコルにおいて許容される。しかしながら、識別子を共有するトランザクションのこのようなセットに適用される条件は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないことである。このような処理の態様の例は、以下からなるリストから選択された１つ以上である。
・トランザクションがその宛先（スレーブノードなど）に配信されている、
・トランザクションへの応答がイニシエータに返されている、および
・トランザクションが完了している（たとえば、そのトランザクションに関する全ての処理が実行済みであり、スレーブで処理されている。書き込みの例では、書き込みの結果が今や同じアドレスへのいずれか後続のトランザクションによって観察可能となっている）。
【００３８】
これらの条件のうちの２つ以上が適用され得ることは、理解されるだろう。
【００３９】
トランザクション識別子を共有するトランザクション要求の少なくとも部分的に順序付けされた処理の要件を踏まえて、順序付け要件が満たされることを保証するために、図１の装置内にいわゆる再順序付け配置が提供され得る。
【００４０】
そのため、順序付けの制約を満たすために、同じ識別子を有するトランザクションがこれらを再順序付けする可能性のある宛先に送信されるとき、いくつかの例示的な配置では、これらは延期されるか、またはシステムに１つ以上の再順序付けバッファが設けられる。このような予防措置は、プロトコルの順序付け要件を満たすため、および関連する行き詰まり状態を回避するための両方に適している。
【００４１】
したがって、図１は１つ以上のトランザクション操作デバイスと、１つ以上のイニシエータデバイスと、１つ以上のイニシエータを１つ以上のトランザクション操作デバイスに接続するための相互接続回路と、を備えるデータ処理装置の一例を提供する。
【００４２】
トランザクション操作デバイスはスレーブデバイスであってもよいことに留意されたい。しかしより一般的には、これはイニシエータの下流にあるデバイスである。そのため、相互接続部、または相互接続部の一部は、トランザクション操作デバイスであってもよい。
【００４３】
図２は、再順序付けが必要とされ得る状況を概略的に示す。マスターまたはイニシエータデバイス２００は、トランザクション識別子を共有するトランザクションのセットを１対のスレーブデバイス２１０、２２０に送信する。言い換えると、識別子を共有するトランザクションのセットのうち、いくつかはこの例ではスレーブデバイス２１０によって操作され、いくつかはスレーブデバイス２２０によって操作される。２つのスレーブデバイスから受信した応答は、そのタイミングおよび／または順序に関して互いに独立していてもよい。そのため、順序付け要件に準拠するために、再順序付けを提供するための論理２３０が使用される。
【００４４】
論理２３０は、既に進行中のトランザクションに関する識別子を追跡する機能と、新しく受信したトランザクション要求をこれらの識別子と比較する機能と、いくつかの事例では、適切な順序で発行されてトランザクションに戻されるまでトランザクションの結果が一時的にバッファリングされ得るように、順序付けバッファを提供する機能と、いくつかの事例では、この例ではスレーブデバイス２１０、２２０からの応答を延期しなければならないことによって生じる行き詰まりを回避するための順序でトランザクションがスレーブデバイス２１０、２２０に転送され得る順序を再び制御するＣＤＡＳ（Ｃｙｃｌｉｃ  Ｄｅｐｅｎｄｅｎｃｙ  Ａｖｏｉｄａｎｃｅ  Ｓｃｈｅｍｅ）に関する回路を提供する機能と、を提供する。
【００４５】
このような問題が生じる別の例示的な配置は、ＡＸＩ準拠のマスターまたはイニシエータ３００がＣＨＩ準拠のスレーブまたはその他のドメイン３１０にトランザクション要求を発行する、図３に示されている。やはり、マスターデバイスと（たとえば相互接続回路の一部としての）スレーブデバイスとの間では、論理３２０には、上記で論じられたような、および２つのプロトコルの間のブリッジとして作用するための、論理２３０の機能が設けられる。
【００４６】
本技術の例は、その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すためのトランザクション識別子に関連付けられたインジケータを提供する。
【００４７】
いくつかの例では、インジケータは１ビットインジケータであってもよい（一意／非一意表示のみが必要とされるため）。インジケータは、識別子（または他のデータフィールド）を搬送するために既に使用されている同じ接続上に多重化され得るが、速度のためおよび便宜上、インジケータはいくつかの例示的な配置では、追加の接続によって担持され得る。インジケータは、単にイニシエータから再順序付け能力を有する第１の下流段に提供され得るが、例示的な配置では、これは識別子を担持する全てのトランザクションメッセージ（たとえば応答および完了確認を含む）に関連付けられている。
【００４８】
識別子およびインジケータの例示的なフォーマットは、以下の通り。
【表１】
2020502660.tif 000003
【００４９】
この情報を担持するトランザクション関連メッセージは、データ操作トランザクション要求を表すデータ信号の一例を提供し、データ信号は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような識別子と、その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータと、を備える。
【００５０】
インジケータを提供する技術が、以下に論じられる。まず、図４は、トランザクション順序付け機能を提供する論理２３０、３２０の一例を概略的に表す。
【００５１】
図４を参照すると、回路４００は、関連付けられたインジケータを有するトランザクション入力４１０（以下で説明するように、応答出力としても機能する）においてトランザクションを受信する。インジケータ検出器４２０として機能する検出回路は、その識別子が上記で論じられたように一意であることを受信したトランザクション要求に関連付けられたインジケータが示すか否かを検出する。トランザクション識別子が一意である場合には、再順序付けは必要ではなく、トランザクションは、バイパス経路４３０を介してトランザクション出力４４０（以下で論じられるように、応答入力としても機能する）に転送されることが可能である。
【００５２】
しかしながら、識別子が（インジケータによって示されるように）一意でない場合には、トランザクションの正しい順序付けを操作するために、識別子および／または再順序付けバッファ４５０、検出器および順序付け論理４６０、およびＣＤＡＳ回路４７０を含む回路が提供される。これらのユニットの動作は、以下に詳細に論じられる。トランザクション要求は、トランザクション出力４４０によって出力される。
【００５３】
宛先デバイスによるトランザクション要求の処理に応答して、イニシエータに返されるべき応答が生成される。応答は、読み出し要求に応答して提供されるデータを含んでもよい。応答は、処理動作が実行されたことを示す完了確認を含んでもよい。
【００５４】
応答入力４４０は、インジケータ検出器４４５（図の明瞭さのため図４とは別に示されるが、インジケータ検出器４２０と同じ論理によって実装されてもよい）への受信した応答を参照する。応答が一意識別子を有するトランザクション要求に関連することをインジケータが示す場合、応答は出力４１０のためにバイパス経路４３０によって渡されることが可能である。しかしながら、応答が非一意識別子を有するトランザクション要求に関連することをインジケータが示す場合には、応答は、これらのトランザクションの（関連するイニシエータによる）発行の順序にしたがって、（例示的な配置において）同じ識別子を有するバッファ回路によって保持されるこれらのトランザクションを定義するデータを出力するように、出力される前に以下で論じられるやり方で操作するために、バッファ４５０、検出器／順序付け論理４６０、ＣＤＡＳ４７０に渡される。
【００５５】
したがって、図４は、同じ識別子を有する要求のセットを定義するデータを記憶するためのバッファ回路（４５０）と、新しく受信したトランザクションに関連付けられた識別子が、バッファ回路によってデータが保持されているいずれかのトランザクションの識別子と同じであるか否かを検出するための比較回路（４６０）と、を備える順序付け回路（４５０、４６０、４７０）の一例を提供する。トランザクション操作回路４００は、要求識別子が同時に保留中の１つの要求のみに関連することを示すようにインジケータが設定されていることを検出回路が検出するトランザクション要求を操作するときに、（たとえば、バイパス経路４３０によって）順序付け回路をバイパスするように構成されている。
【００５６】
図５は、トランザクションイニシエータにおける動作を示す概略フローチャートである。
【００５７】
ステップ５００において、イニシエータは、発行すべきトランザクションを確立し、そのトランザクションに識別子を割り当てる。
【００５８】
ステップ５１０において、イニシエータは、識別子が一意であるか否か、すなわち現在保留中のその他のトランザクションに関して識別子が使用されていないか、およびトランザクション自体が同じ識別子が再利用されなければならないトランザクションのセットのものではないことを、判断する。
【００５９】
これらのステップは、並行してまたは暗黙的に実行され得ることに留意されたい。たとえば、イニシエータ内のＩＤのセットは、イニシエータの動作の他の詳細のために一意であることが、暗黙的に知られているかも知れない。つまり、この機能を網羅するために２つの別々にまたは連続して実施されるステップは不要である。
【００６０】
イニシエータはトランザクションを生成し、したがって識別子が一意に使用されているか否かを認識している。たとえば、トランザクションは、イニシエータにおけるラインフィルバッファまたはその他のキャッシュメモリ領域の群との間のデータ転送を操作するためのトランザクションの群のうちの１つであってもよく、この場合、イニシエータは、トランザクションが共有識別子に割り当てられているので、識別子が複数のトランザクション要求に関して非一意に使用されていることを認識している。別の例では、イニシエータは、全て同じ識別子を有する、要求として転送すべきトランザクションのセットまたはストリームを提供する、別のドメインに接続されるかまたは関連付けられてもよい。別の例では、トランザクションは、いずれの順序でもトランザクション応答を受信するための再順序付け能力（または十分な能力）を有さず、したがって応答が既知の順序で受信されることを保証するために同じ識別子を使用するようになっていてもよい。
【００６１】
ステップ５２０において、識別子が一意であると検出された場合には、制御はステップ５３０に進み、そこでインジケータは一意性を示すように設定される。そうでない場合には、制御はステップ５４０に進み、そこでインジケータは一意性の欠如を示すように設定される。
【００６２】
図６は、ステップ６００でイニシエータが特定の識別子に関する完了確認を受信し、ステップ６１０でその識別子を一意識別子として再利用できるようにする、イニシエータにおける動作を表す概略フローチャートである。これは、トランザクション識別子に関する完了確認の受信に応答するイニシエータデバイスの一例であり、このためにインジケータは、別の要求にこのトランザクション識別子を再使用できるようにするため、そのトランザクションが同時に保留中の１つのトランザクションのみに関連することを示すように設定されている。
【００６３】
図７は、図４の回路に関する概略フローチャートである。図７は、新しく受信したトランザクションの操作に関する（図４に描かれるように概して下向きの経路）。以下で論じられる図８および図９は、新しく受信したトランザクション応答の操作に関する（図４に描かれるように概して上向きの経路）。
【００６４】
ステップ７００において、新しいトランザクション要求が入力４１０で受信される。
【００６５】
ステップ７１０において、検出器４２０はインジケータを調べ、ステップ７２０において、インジケータが一意性を示すように設定されている場合、トランザクションはバイパス経路４３０を経由してルーティングされ（「はい」の分岐７２５で表される通り）、トランザクションはステップ７３０において出力４４０によって発行される。
【００６６】
一意識別子が一意性を示すように設定されていない（または非一意性を示すように設定されている）場合には、制御は、バッファ４５０、論理４６０、および適切であればＣＤＡＳ４７０によって実装される、ステップ７４０に進む。ステップ７４０において、新しく受信したトランザクション要求の識別子は、バッファ４５０によって保持される現在保留中のトランザクションのための識別子の追跡リストと比較される。識別子が既にリスト内に存在する場合、既にリスト内にあるこれらのトランザクションの後に受信されたことを示すために、新しく受信したトランザクションを定義するデータがリスト内の１つ以上のエントリに対して順序付けられた位置に追加される。識別子がまだリスト内にない場合には、トランザクションを定義するデータがリストに追加される。そのトランザクション識別子のための完了確認に応答してトランザクション識別子に関するバッファデータを削除するように構成されているバッファ回路の一例として、その識別子に関して完了確認が引き続き受信されるまで、リスト内のエントリは持続する。しかしながら、再順序付けバッファを使用する配置では、完了確認が受信されてバッファから送信されるまでエントリが持続し得ることに、留意されたい。これは、間違った順序で受信される可能性があり、そのため送信されるのに有効になるまで追跡されたままである必要があるからである。
【００６７】
リソース競合または順序付け問題がある場合には、ステップ７５０において、ステップ７５０の「いいえ」の結果としてステップ７６０でリソースを割り当ておよび追跡することによってトランザクションが発行の準備を整えるまで、トランザクションが延期される。次いで制御はステップ７３０に進み、そこでトランザクションが発行される。リソース競合がある場合には、（たとえば、先に受信された同じ識別子を有するトランザクションが完了することによって）競合が解消されるまで、トランザクション要求は延期される。延期の代替として、（バッファ４５０によって実装され得る）再順序付けバッファに要求が追加されることも可能である。再順序付けバッファは、単に要求を定義するデータを記憶するのではなく、要求自体を記憶する。そのため、これを提供するノードからの要求の受信および処理を延期する必要はない。要求は受け入れられ、次いで要求を転送するのに適した段階まで再順序付けバッファによって記憶されることが可能である。
【００６８】
図８は類似の状況に関するが、トランザクションの宛先であったスレーブまたはその他のノードから（入力４４０において）受信したトランザクション応答に関するものである。
【００６９】
ステップ８１０において、識別子が上記で論じられたように一意であるか否かを検出するために、インジケータフィールドが調べられる。ステップ８２０において、インジケータが一意である場合には（「はい」の分岐８２５の通り）、制御は（バイパス経路４３０によって）ステップ８３０に進み、そこで応答が発行されてイニシエータに向かって戻される。
【００７０】
しかしながら、ステップ８２０での結果が「いいえ」である場合には、制御はステップ８４０に進み、そこでトランザクション応答の識別子は、バッファ４５０によって保持される追跡リストと比較される。ステップ８５０において順序付け要件が満たされた場合には（たとえば、応答が他の応答に対して正しい順序で受信されたか、または（この特定の例において）応答の受信の順序に対する順序付け要件がない）、制御はステップ８６０に進み、そこでトランザクションによって使用されるリソースの割り当ておよびリンクが解除され、ステップ８３０で応答が発行される。しかしながら、ステップ８５０での結果が「いいえ」である場合には、制御はステップ８４０に戻り、順序付け要件が満たされるまで延期状態となる。つまり、（順序付け要件によって）現在の応答よりも早くイニシエータによって受信される必要がある応答が使用可能になるまで、応答が延期される。
【００７１】
図９は、ステップ８５０の「いいえ」の結果でトランザクションを延期することに対する代替案を概略的に示す。図９に示されるステップは図８のステップ８５０に置き換わり、図８の残りの部分は同じままである。
【００７２】
制御がステップ８４０から進むと、ステップ９００において、応答は（バッファ４５０によって実装されてもよい）再順序付けバッファに追加される。再順序付けバッファは、単に応答を定義するデータを記憶するのではなく、応答自体を記憶する。そのため、これを提供するノードからの応答の受信および処理を延期する必要はない。応答は受け入れられ、次いで応答を転送するのに適した段階まで再順序付けバッファによって記憶されることが可能である。
【００７３】
ステップ９１０において、トランザクション応答が発行されるのに有効か否かをステップ９２０で判断するために、ＩＤ追跡リストが照会される。答えが「いいえ」である場合には、制御はステップ９１０に戻るが、答えが「はい」の場合には、制御はステップ８６０に進む。
【００７４】
図１０は、データ処理トランザクションのトランザクション要求を操作するためのトランザクション操作回路１０００であって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション操作回路１０００と、その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータの状態を検出するための検出回路１０１０と、を備えるトランザクション操作デバイスの要約した実施形態を概略的に示す。
【００７５】
図１１は、データ処理トランザクションのトランザクション要求を発行するためのトランザクション発行回路１１００であって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション発行回路１１００を備え、トランザクション発行回路は、その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子にインジケータを関連付けるように構成されている、イニシエータデバイスの要約した実施形態を概略的に示す。
【００７６】
図１２は、
（ステップ１２００において）データ処理トランザクションのトランザクション要求を操作するステップであって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、ステップと、
（ステップ１２１０において）その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータの状態を検出するステップと、
を備える方法を示す概略フローチャートである。
【００７７】
これらのステップは、並行してまたは暗黙的に実行され得ることに留意されたい。たとえば、イニシエータ内のＩＤのセットは、イニシエータの動作の他の詳細のために一意であることが、暗黙的に知られているかも知れない。つまり、この機能を網羅するために２つの別々にまたは連続して実施されるステップは不要である。
【００７８】
図１３は、
（ステップ１３００において）データ処理トランザクションのトランザクション要求を発行するステップであって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも１つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、ステップと、
（ステップ１３１０において）その識別子が２つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子にインジケータを関連付けるステップと、
を備える方法を示す概略フローチャートである。
【００７９】
後方互換性を提供するための例示的な技術として、これらの技術を実装してないＡＸＩイニシエータ（または既存のサブシステム）がこれらの技術を使用する相互接続部またはスレーブに接続されているとき、インジケータは「一意ではない」と示すように設定（または結線）されることが可能であり、これは常に正しい順序付け挙動を与えることになる。これらの技術を使用していないＡＸＩイニシエータまたはサブシステムが常に一意のＩＤを生成するという事前知識をシステムインテグレータが有する場合、インジケータは、トランザクションと一緒に来るのではなく、これらの技術を使用する相互接続部またはスレーブへの入力において「一意」に設定または結線されることが可能である。
【００８０】
例示的な配置では、本技術は、集積回路実装における回路面積を節約するのに貢献することができる。これは、システム設計者がマスターの特性、特に一意のＩＤを使用しないトランザクションにどのくらいの帯域幅を必要とするかについて何らかの知識を有する場合に該当し得る。設計ツールはこの決定を助けることができる。たとえば、設計ツールは、マスターの要件および／または一意のＩＤの挙動に関する入力（たとえば、モデルから、または仕様の形態として設計ツールへの直接入力）を行い、順序付け回路のより最適なサイズまたは存在を構成するためにこの情報を使用してもよい。
【００８１】
本出願において、「〜するように構成された」という用語は、装置の要素が定義された動作を実行できる構成を有することを意味するために使用される。この文脈において、「構成」は、ハードウェアまたはソフトウェアの配置または相互接続方法を意味する。たとえば、装置は、所定の動作を提供する専用ハードウェアを有してもよく、あるいはプロセッサまたは他の処理デバイス（上記で論じられたような処理要素など）が機能を実行するようにプログラムされてもよい。「構成された」は、所定の動作を提供するために装置要素が多少なりとも変更されなければならないことを示唆するものではない。
【００８２】
以上、添付図面を参照して本技術の例示的な実施形態を本明細書で詳細に説明したが、本技術はこれらの厳密な実施形態に限定されるものではなく、添付の請求項によって規定される本技術の範囲および趣旨から逸脱することなく、様々な変更、追加、および修正が当業者によって実施され得ることが、理解されるべきである。たとえば、従属請求項の特徴の様々な組み合わせは、本技術の範囲から逸脱することなく、独立請求項の特徴と一緒になされ得る。
【図１】
2020502660.tif 000004
【図２】
2020502660.tif 000005
【図３】
2020502660.tif 000006
【図４】
2020502660.tif 000007
【図５】
2020502660.tif 000008
【図６】
2020502660.tif 000009
【図７】
2020502660.tif 000010
【図８】
2020502660.tif 000011
【図９】
2020502660.tif 000012
【図１０】
2020502660.tif 000013
【図１１】
2020502660.tif 000014
【図１２】
2020502660.tif 000015
【図１３】
2020502660.tif 000016
【国際調査報告】
2020502660.tif 000017
2020502660.tif 000018