(57)【要約】  インターコネクトを介して受信側デバイスにトランザクション要求を発行するイニシエータデバイスが開示される。イニシエータデバイスは、前記インターコネクトから要求を受信し、前記インターコネクトに要求を発行する少なくとも１つのポートと、バリアトランザクション要求を生成するバリア発生器とを備え、バリアトランザクション要求は、インターコネクトを通過するトランザクション要求のストリーム内の少なくともいくつかのトランザクション要求の順序付けが、バリアトランザクション要求に関してトランザクション要求のストリームにおいてバリアトランザクション要求の前に発生するトランザクション要求の少なくともいくつかの再順序付けを可能にしないことによって維持されるべきであることを、インターコネクトに示し、トランザクション要求の少なくとも部分集合の進捗を問い合わせる同期要求の受信に応答して、イニシエータデバイスは、トランザクション要求の少なくとも部分集合内の任意の保留中のトランザクション要求を実行し、バリア発生器においてバリアトランザクション要求を生成し、少なくとも１つのポートを介してインターコネクトにバリアトランザクション要求を発行し、バリアトランザクション要求に対する応答を受信することに応答して、同期要求に対する応答としてアクノリッジ信号を発行するように応答する。
2013507710.tif 000002
【特許請求の範囲】
【請求項１】
インターコネクトを介して受信側デバイスにトランザクション要求を発行するイニシエータデバイスであって、
前記インターコネクトから要求を受信し、前記インターコネクトに要求を発行する少なくとも１つのポートと、
バリアトランザクション要求を生成するバリア発生器とを備え、前記バリアトランザクション要求は、前記インターコネクトを通過するトランザクション要求のストリーム内の少なくともいくつかのトランザクション要求の順序付けが、前記バリアトランザクション要求に関して前記トランザクション要求のストリームにおいて前記バリアトランザクション要求の前に発生する(occur)前記トランザクション要求の少なくともいくつかの再順序付けを可能にしないことによって維持されるべきであることを、前記インターコネクトに示し、
トランザクション要求の少なくとも部分集合の進捗を問い合わせる同期要求の受信に応答して、前記イニシエータデバイスは、前記トランザクション要求の少なくとも部分集合内の任意の保留中のトランザクション要求を実行し、前記バリア発生器においてバリアトランザクション要求を生成し、前記少なくとも１つのポートを介して前記インターコネクトに前記バリアトランザクション要求を発行し、前記バリアトランザクション要求に対する応答を受信することに応答して、前記同期要求に対する応答としてアクノリッジ信号を発行するように応答するイニシエータデバイス。
【請求項２】
前記トランザクション要求の部分集合は、前記少なくとも１つの受信側デバイスに前記イニシエータデバイスによって発行される全てのトランザクション要求を含み、その順序付けが前記バリアトランザクション要求によって維持される前記少なくともいくつかのトランザクション要求は、前記イニシエータデバイスによって発行される前記全てのトランザクション要求を含む請求項１に記載のイニシエータデバイス。
【請求項３】
メモリ管理ユニットをさらに備え、
前記トランザクション要求の少なくとも部分集合は、メモリ管理オペレーション要求を含み、前記同期要求は、前記メモリ管理オペレーション要求がいつ終了したか、また、そのステータスが前記メモリ管理オペレーション要求によって影響を受けることになる、以前に発行されたトランザクション要求が前記インターコネクト内の所定のポイントにいつ到達したかを問い合わせるメモリ管理同期要求であり、
イニシエータデバイスは、前記バリアトランザクション要求に対する前記応答の受信に応答して、また、前記保留中のメモリ管理オペレーションが終了することに応答して、前記アクノリッジ信号を発行するように構成される請求項１に記載のイニシエータデバイス。
【請求項４】
プロセッサからトランザクション要求を受信するポートをさらに備え、前記インターコネクトに前記トランザクション要求の少なくともいくつかを送信する請求項３に記載のイニシエータデバイス。
【請求項５】
データを処理するプロセッサをさらに備え、
前記プロセッサは、前記インターコネクトにトランザクション要求および前記同期要求を発行するように構成され、
前記バリア発生器は、同期バリアトランザクション要求を生成し、前記同期要求の前に、前記プロセッサによって前記少なくとも１つの受信側デバイスに発行されたトランザクション要求の後に続くように、前記インターコネクトに前記バリアトランザクション要求を発行するように構成される請求項１から３のいずれか１項に記載のイニシエータデバイス。
【請求項６】
インターコネクトを介して受信側デバイスにトランザクション要求を発行するイニシエータデバイスであって、
データを処理するプロセッサと、
前記インターコネクトから要求を受信し、前記インターコネクトに要求を発行する少なくとも１つのポートと、
バリアトランザクション要求を生成するバリア発生器とを備え、前記バリアトランザクション要求は、前記インターコネクトを通過するトランザクション要求のストリーム内の少なくともいくつかのトランザクション要求の順序付けが、前記バリアトランザクション要求に関して前記トランザクション要求のストリームにおいて前記バリアトランザクション要求の前に発生する前記トランザクション要求の前記少なくともいくつかの再順序付けを可能にしないことによって維持されるべきであることを、前記インターコネクトに示し、
前記プロセッサは、トランザクション要求、および、未処理トランザクション要求の少なくとも部分集合の進捗を問い合わせる同期要求を前記インターコネクトに発行するように構成され、
前記バリア発生器は、同期バリアトランザクション要求を生成し、前記少なくとも１つの受信側デバイスに対して前記同期要求の前に前記プロセッサによって発行されたトランザクション要求の後に続くように前記同期バリアトランザクション要求を前記インターコネクトに発行するように構成されるイニシエータデバイス。
【請求項７】
前記トランザクション要求の少なくとも部分集合は、メモリ管理オペレーション要求を含み、前記同期要求は、前記メモリ管理オペレーション要求がいつ終了したか、また、そのステータスが前記メモリ管理オペレーション要求によって影響を受けることになる、以前に発行されたトランザクション要求が前記インターコネクト内の所定のポイントにいつ到達したかを問い合わせるメモリ管理同期要求である請求項６に記載のイニシエータデバイス。
【請求項８】
前記同期バリアトランザクション要求および前記同期要求に対する応答が受信されるまで、前記インターコネクトにさらなるトランザクション要求を発行しないように、前記同期バリアトランザクション要求の前記発行に対して応答する請求項５、６、または７のいずれか１項に記載のイニシエータデバイス。
【請求項９】
前記メモリ管理オペレーションは、仮想アドレス−物理アドレス変換の管理を含み、前記バリアトランザクションがその順序を維持する前記少なくともいくつかのトランザクションは、前記メモリ管理オペレーションが実施される前に現行の仮想アドレス−物理アドレス変換を使用するトランザクションを含む請求項３、４、または７のいずれか１項に記載のイニシエータデバイス。
【請求項１０】
前記バリア発生器は、バリアであって、バリアに関連するドメインインジケータを有するバリアを発行するように構成され、前記ドメインインジケータは、前記バリアトランザクション要求に対する応答が発行されることができない前記インターコネクト内のエリアを示す請求項１から９のいずれか1項に記載のイニシエータデバイス。
【請求項１１】
前記同期要求は、前記部分集合のトランザクション要求の少なくともいくつかが、前記インターコネクト内の所定のポイントに到達したかどうかを問い合わせる要求であり、前記同期要求は、前記所定のポイントを示すインジケータを含む請求項１から１０のいずれか1項に記載のイニシエータデバイス。
【請求項１２】
前記バリア発生器は、前記同期要求内に含まれる前記インジケータに応じて前記バリアドメインインジケータを発行するように構成される請求項１０または１１に記載のイニシエータデバイス。
【請求項１３】
複数のイニシエータデバイスの少なくとも１つのイニシエータデバイスが、少なくとも１つの受信側デバイスおよび前記複数のイニシエータデバイスの少なくとも１つの他のイニシエータデバイスにアクセスすることができるデータルートを提供するように構成される、データ処理装置用のインターコネクト回路であって、
前記複数のイニシエータデバイスと前記インターコネクトとの間でトランザクション要求を送信する複数のイニシエータポートと、
前記少なくとも１つの受信側デバイスにトランザクション要求を送信する少なくとも１つの受信側ポートと、
前記複数のイニシエータポートと前記少なくとも１つの受信側ポートとの間で前記トランザクション要求を送信する複数の経路と、
前記受信されたトランザクション要求を、前記複数の経路の少なくとも１つに沿って前記複数の入力の１つから前記入力または出力ポートの一方にルーティングする制御回路とを備え、
前記トランザクション要求の少なくともいくつかは、前記複数のイニシエータデバイスの第１のイニシエータデバイスからの、トランザクション要求の少なくとも部分集合の進捗を問い合わせる同期要求を含み、
前記制御回路は、前記トランザクション要求の少なくとも部分集合を実行するように構成された前記イニシエータデバイスの少なくとも１つの他のイニシエータデバイスに前記同期要求をルーティングし、前記イニシエータデバイスの前記少なくとも１つの他のイニシエータデバイスからバリアトランザクション要求を受信するように構成され、前記制御回路は、前記少なくとも１つの他のイニシエータデバイスから以前に受信されたトランザクション要求の後で、前記複数の経路の少なくとも１つの経路に沿って前記バリアトランザクション要求を前記少なくとも１つの受信側デバイスにルーティングし、前記トランザクション要求ストリーム内で前記以前に受信されたトランザクション要求および前記バリアトランザクション要求の少なくともいくつかの順序付けを維持し、前記バリアトランザクション要求に対する応答信号に応答して、前記複数のイニシエータデバイスの前記少なくとも１つの他のイニシエータデバイスに前記応答信号をルーティングするように構成され、前記応答信号は、前記少なくともいくつかの以前に受信されたトランザクション要求が前記応答信号発生器の場所に到達したという指示を前記少なくとも１つの他のイニシエータデバイスに提供するインターコネクト回路。
【請求項１４】
前記制御回路は、前記同期要求を複製し、前記同期要求を、前記トランザクション要求の前記少なくとも部分集合を実行する前記複数の他のイニシエータデバイスに送信する同期要求複製回路を備え、
前記制御回路は、前記複製された同期要求に対する、前記複数の他のイニシエータデバイスから受信された応答信号を保持し、前記複製された同期要求の全てに対してアクノリッジ応答を受信することに応答して、前記第１のイニシエータデバイスに同期要求応答信号を発行する保持回路をさらに備える請求項１３に記載のインターコネクト回路。
【請求項１５】
前記第１のイニシエータデバイスからバリアトランザクション要求を受信することに応答して、前記第１のイニシエータデバイスから以前に受信され、前記少なくとも１つの受信側デバイスにルーティングされたトランザクション要求の後で、前記少なくとも１つの受信側デバイスに前記バリアトランザクション要求をルーティングするように構成され、前記制御回路は、前記バリアトランザクション要求に対して、前記以前に受信されたトランザクション要求のすくなくともいくつかの順序を維持し、前記バリアトランザクション要求に対する応答信号に応答して、前記第１のイニシエータデバイスに前記応答信号をルーティングするように構成され、前記応答信号は、前記以前に受信されたトランザクション要求の前記少なくともいくつかが前記応答信号発生器の場所に到達したという指示を前記第１のイニシエータデバイスに提供する請求項１３または１４に記載のインターコネクト回路。
【請求項１６】
前記トランザクション要求の少なくとも部分集合は、メモリ管理オペレーション要求であり、前記同期要求は、前記メモリ管理オペレーション要求がいつ終了したか、また、そのステータスが前記メモリ管理オペレーション要求によって影響を受けることになる、以前に発行されたトランザクション要求が前記インターコネクト内の所定のポイントにいつ到達したかを問い合わせるメモリ管理同期要求である請求項１３から１５のいずれか1項に記載のインターコネクト回路。
【請求項１７】
前記メモリ管理オペレーションは、仮想アドレス−物理アドレス変換の管理を含み、前記バリアトランザクションがその順序を維持する前記少なくともいくつかのトランザクションは、前記メモリ管理オペレーションが実施される前に現行の仮想アドレス−物理アドレス変換を使用するトランザクションを含む請求項１６に記載のインターコネクト回路。
【請求項１８】
前記バリアトランザクション要求を受信することに応答して、前記応答信号を発生する応答信号発生器を備える請求項１３から１７のいずれか1項に記載のインターコネクト回路。
【請求項１９】
少なくとも１つのドメインを備え、前記少なくとも１つのドメインは、前記少なくとも１つのイニシエータデバイスからトランザクション要求を受信する前記少なくとも１つの入力の少なくとも１つを備え、前記少なくとも１つの入力から受信されるトランザクション要求の任意のマージが前記少なくとも１つのドメイン内で行われるようにドメイン境界が構成され、
前記同期要求は、前記同期要求が前記少なくとも１つのドメインのうちのどのドメインに適用されるかを示すインジケータを含み、
前記応答信号発生器は、前記少なくとも１つのドメインの出口点に位置し、
前記応答信号発生器は、応答信号を発生するために、前記出口点を通過する前記バリアトランザクション要求を検出することに応答し、
前記制御回路は、前記バリアトランザクション要求がそこから受信された前記イニシエータデバイスに前記応答信号を送信するように構成される請求項１８に記載のインターコネクト回路。
【請求項２０】
前記制御回路は、前記イニシエータデバイスに前記応答信号が送信されると、前記バリアトランザクションをさらに送信しないように構成される請求項１９に記載のインターコネクト回路。
【請求項２１】
前記複数の経路の少なくともいくつかは、ノードから分岐する分岐経路であり、前記制御回路は、前記少なくともいくつかのトランザクション要求および前記それに続くバリアトランザクション要求を、複製し、前記少なくともいくつかのトランザクション要求がそれに沿ってルーティングされる前記分岐経路の少なくともいくつかの分岐経路に沿って送信するように構成される請求項１３から２０のいずれか1項に記載のインターコネクト回路。
【請求項２２】
前記制御回路は、前記複製されたバリアトランザクション要求から受信される応答信号を保持し、前記複製されたバリアトランザクション要求の全てに対する応答を受信することに応答して、前記バリアトランザクション要求の前記発信源に対して前記受信された応答信号を送信するだけであるように構成される保持回路を、前記ノードに備える請求項２１に記載のインターコネクト回路。
【請求項２３】
インターコネクト回路を介して少なくとも１つの受信側デバイスと通信する複数のイニシエータデバイスを備えるデータ処理装置であって、前記イニシエータデバイスの少なくとも１つは、請求項３によるイニシエータデバイスであり、前記インターコネクト回路は、請求項１３から２２のいずれか１項によるインターコネクト回路であるデータ処理装置。
【請求項２４】
インターコネクトを介して少なくとも１つの受信側デバイスにトランザクション要求を発行する複数のイニシエータデバイスを備えるデータ処理装置を同期させる方法であって、
トランザクション要求の少なくとも部分集合の進捗を問い合わせる同期要求を発行するステップと、
前記トランザクション要求の少なくとも部分集合を実行するように構成される、前記複数のイニシエータデバイスの前記少なくとも１つの他のイニシエータデバイスに前記同期要求をルーティングするステップと、
前記イニシエータデバイスの前記少なくとも１つの他のイニシエータデバイスからバリアトランザクション要求を発行するステップと、
前記少なくとも１つの他のイニシエータデバイスから以前に受信されたトランザクション要求の後で、前記複数の経路の少なくとも１つの経路に沿って前記バリアトランザクション要求を前記少なくとも１つの受信側デバイスにルーティングするステップであって、それにより、トランザクション要求ストリーム内で、前記以前に受信されたトランザクション要求および前記バリアトランザクション要求の少なくともいくつかの順序付けを維持する、ルーティングするステップと、
前記バリアトランザクション要求に対する応答信号に応答して、前記複数のイニシエータデバイスの前記少なくとも１つの他のイニシエータデバイスに前記応答信号をルーティングするステップであって、前記応答信号は、前記以前に受信されたトランザクション要求が前記応答信号発生器の場所に到達したという指示を前記少なくとも１つの他のイニシエータデバイスに提供する、ルーティングするステップと、
前記同期要求に応答するアクノリッジ信号を生成し、前記アクノリッジ信号を前記第１のイニシエータデバイスに向けてルーティングするステップとを含む方法。
【請求項２５】
受信された同期要求にいつ応答するかを決定する方法であって、
インターコネクトを介して受信側デバイスにトランザクション要求を発行するステップと、
トランザクション要求の少なくとも部分集合の進捗を問い合わせる同期要求を前記インターコネクトから受信するステップと、
前記トランザクション要求の少なくとも部分集合内の任意の保留中トランザクション要求を実行するステップと、
バリアトランザクション要求を生成し、前記バリアトランザクション要求を前記インターコネクトに発行するステップと、
前記バリアトランザクション要求に対する応答を受信することに応答して、前記同期要求に対する応答としてアクノリッジ信号を発行するステップとを含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムに関し、特に、インターコネクトを介して少なくとも１つの受信側デバイスと通信する異なるイニシエータデバイスを有する分散システムおよびこうしたシステム内で異なるコンポーネントの活動を同期させる方法に関する。
【背景技術】
【０００２】
インターコネクトは、データ処理システム内の異なるコンポーネント間の接続を提供するために使用される。インターコネクトは、１つまたは複数のイニシエータデバイスが、１つまたは複数の受信側デバイスにそれを介してアクセスできるデータルートを提供する。イニシエータデバイスは、単にトランザクション要求を生成するデバイスであり、したがって、プロセッサなどのマスターとすることができる、または、イニシエータデバイスは、別のインターコネクトとすることができる。受信側デバイスは、単にトランザクションを受信するデバイスであり、周辺機器などのスレーブとすることができる、または、受信側デバイスは、別のインターコネクトとすることもできる。
【０００３】
システムが、互いに通信する複数のプロセッサおよび複数のデバイスによってより複雑になるにつれて、所定期間にわたって対話的プロセスの整合性のある挙動を保証するソフトウェアを書くために、マルチプロセッサ用のソフトウェアを書く者は、アーキテクチャのトポロジおよびレーテンシの詳細な知識を必要とする。この詳細な知識を用いても、この整合性は、性能に対するある大幅な努力およびコストによって達成されるだけである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
任意のアーキテクチャについて一般的な方法で所定期間にわたって対話的プロセスの整合性のある挙動をプログラマが保証することを可能にするメカニズムを提供することが望ましい場合がある。こうしたメカニズムは、同じ資源を共有するコンポーネントが互いのトランザクションの可視性をどの時点で有するかを知るように、ある時間に、異なるコンポーネントの同期を保証する方法を含むことができる。
【課題を解決するための手段】
【０００５】
本発明の第１の態様は、インターコネクトを介して受信側デバイスにトランザクション要求を発行するイニシエータデバイスを提供し、前記イニシエータデバイスは、前記インターコネクトから要求を受信し、前記インターコネクトに要求を発行する少なくとも１つのポートと、バリアトランザクション要求を生成するバリア発生器とを備え、前記バリアトランザクション要求は、前記インターコネクトを通過するトランザクション要求のストリーム内の少なくともいくつかのトランザクション要求の順序付けが、前記バリアトランザクション要求に関して前記トランザクション要求のストリームにおいて前記バリアトランザクション要求の前に発生する前記トランザクション要求の少なくともいくつかの再順序付けを可能にしないことによって維持されるべきであることを、前記インターコネクトに示し、トランザクション要求の少なくとも部分集合の進捗を問い合わせる同期要求の受信に応答して、前記イニシエータデバイスは、前記トランザクション要求の少なくとも部分集合内の任意の保留中のトランザクション要求を実行し、前記バリア発生器においてバリアトランザクション要求を生成し、前記少なくとも１つのポートを介して前記インターコネクトに前記バリアトランザクション要求を発行し、前記バリアトランザクション要求に対する応答を受信することに応答して、前記同期要求に対する応答としてアクノリッジ信号を発行するように応答する。
【０００６】
他のデバイスによって実行されているトランザクション要求がいつ終了したか、または、いつ既知のポイントに少なくとも到達したかを決定することが難しい場合があることを本発明は認識する。本発明は、特定のトランザクション要求が実行されたか否かを問い合わせる同期要求を使用することによって、この問題に対処する。これらの要求を実行するイニシエータデバイスが、以前に発行された少なくともいくつかのトランザクション要求が、いつあるポイントまで進んだかを決定するために、イニシエータデバイスは、バリアトランザクション要求を生成し、以前に発行されたトランザクション要求に続くようにバリアトランザクション要求を送出する。その進捗が監視される少なくともいくつかのトランザクション要求の順序付けは、バリアトランザクションの進捗によって決定されることができる。その理由は、これらのトランザクションがバリアの前で留まらなければならないようにシステムが構成されているからである。そのため、バリアからの応答は、バリアが応答発生器の場所に到達したことだけでなく、少なくともいくつかのトランザクション要求もまたこのポイントに到達したことを示すことになる。このようにしてトランザクション要求の進捗を決定することができる。
【０００７】
いくつかの実施形態では、前記トランザクション要求の部分集合は、前記少なくとも１つの受信側デバイスに前記イニシエータデバイスによって発行される全てのトランザクション要求を含み、その順序付けが前記バリアトランザクション要求によって維持される前記少なくともいくつかのトランザクション要求は、前記イニシエータデバイスによって発行される前記全てのトランザクション要求を含む。
【０００８】
いくつかの実施形態では、同期要求は、別のイニシエータデバイスの保留中のトランザクション要求の全てがいつ終了したか、または、いつ特定のポイントに到達したかについての通知を要求するだけである場合がある。この場合、部分集合はトランザクション要求の全てであり、バリアトランザクション要求は、バリアの進捗についての知識がトランザクション要求の全てについての進捗の知識を提供するように、トランザクション要求の全ての順序付けを維持する。
【０００９】
いくつかの実施形態では、前記イニシエータデバイスは、メモリ管理ユニットをさらに備え、前記トランザクション要求の少なくとも部分集合は、メモリ管理オペレーション要求を含み、前記同期要求は、前記メモリ管理オペレーション要求がいつ終了したか、また、そのステータスが前記メモリ管理オペレーション要求によって影響を受けることになる、以前に発行されたトランザクション要求が前記インターコネクト内の所定のポイントにいつ到達したかを問い合わせるメモリ管理同期要求であり、前記イニシエータデバイスは、前記バリアトランザクション要求に対する前記応答の受信に応答して、また、前記保留中のメモリ管理オペレーションが終了することに応答して、前記アクノリッジ信号を発行するように構成される。
【００１０】
発行されるメモリ管理オペレーショントランザクション要求は、メモリ管理ユニットを有する他のイニシエータデバイスによって容認されることができる。しかし、これらのデバイスは、即座にその要求を実装できない。これは、これらの要求が高いレーテンシを有するため有利とすることができ、それらの要求が、他の高優先度のトランザクションの処理に影響を与える場合、望ましくない場合がある。処理のあるポイントで、このポイントを超えて発行されるトランザクションが、メモリ管理オペレーションが実施されていることを必要とすることを、プロセッサが認識する場合がある。このポイントで、イニシエータデバイスは、メモリ管理同期要求を発行する。イニシエータデバイスにおけるメモリ管理同期要求の受信は、そのイニシエータデバイスに、同期要求を発行するイニシエータデバイスから既に受信した任意の保留中のメモリ管理オペレーション要求が処理されなければならないことを示す。そのため、こうした同期要求を受信することに応答して、イニシエータデバイスは、インターコネクトに対して任意の保留中のメモリ管理オペレーション要求を実施し、バリアトランザクション要求をインターコネクトに送信する。こうして、バリアトランザクション要求に対する応答の受信は、以前に発行された任意のトランザクションが、あるポイントに到達したという指示をイニシエータデバイスに提供し、このポイントが正しく選択される場合、イニシエータデバイスは、この時点でメモリ管理同期要求に対する応答を送出できる可能性がある。そのため、このようにバリアトランザクション要求を使用することは、イニシエータデバイスがいつメモリ管理同期要求に応答できるかをイニシエータデバイスが決定することを可能にする。
【００１１】
いくつかの実施形態では、前記イニシエータデバイスは、プロセッサからトランザクション要求を受信するさらなるポートを備え、前記イニシエータデバイスは、前記インターコネクトに前記トランザクション要求の少なくともいくつかを送信する。
【００１２】
イニシエータデバイスは、メモリ管理ユニットを備えることができるだけでよい。この場合、イニシエータデバイスは、プロセッサからトランザクション要求を受信するさらなるポートを備えることができる。メモリ管理ユニットは、このトランザクション要求をインターコネクトにルーティングし、プロセッサが実施することをメモリ管理ユニットに要求する任意のメモリ管理オペレーションを実施することになる。メモリ管理ユニットはまた、他のイニシエータデバイス上で形成される他のメモリ管理オペレーションをインターコネクトに転送することになる。
【００１３】
いくつかの実施形態では、前記イニシエータデバイスは、データを処理するプロセッサをさらに備え、前記プロセッサは、前記インターコネクトにトランザクション要求および前記同期要求を発行するように構成され、前記バリア発生器は、同期バリアトランザクション要求を生成し、前記同期要求の前に、前記プロセッサによって前記少なくとも１つの受信側デバイスに発行されたトランザクション要求の後に続くように、前記インターコネクトに前記バリアトランザクション要求を発行するように構成される。
【００１４】
イニシエータデバイスは、メモリ管理ユニットを備えることができるだけでよいが、いくつかの実施形態では、プロセッサならびにメモリ管理ユニットを備える。こうしたイニシエータデバイスは、メモリ管理オペレーション要求および同期要求を受信することができるだけでなく、これらの要求を生成し、これらの要求をインターコネクトに送信することもできる。イニシエータデバイスは、こうした同期要求を生成する場合、少なくとも１つの受信側デバイスに対して以前に発行されたトランザクション要求が、あるポイントにいつ到達したかを決定できるように、この同期要求の後に同期バリアを発行することになる。
【００１５】
本発明の第２の態様は、インターコネクトを介して受信側デバイスにトランザクション要求を発行するイニシエータデバイスを提供し、前記イニシエータデバイスは、データを処理するプロセッサと、前記インターコネクトから要求を受信し、前記インターコネクトに要求を発行する少なくとも１つのポートと、バリアトランザクション要求を生成するバリア発生器とを備え、前記バリアトランザクション要求は、前記インターコネクトを通過するトランザクション要求のストリーム内の少なくともいくつかのトランザクション要求の順序付けが、前記バリアトランザクション要求に関して前記トランザクション要求のストリームにおいて前記バリアトランザクション要求の前に発生する前記トランザクション要求の前記少なくともいくつかの再順序付けを可能にしないことによって維持されるべきであることを、前記インターコネクトに示し、前記プロセッサは、トランザクション要求、および、未処理トランザクション要求の少なくとも部分集合の進捗を問い合わせる同期要求を前記インターコネクトに発行するように構成され、前記バリア発生器は、同期バリアトランザクション要求を生成し、前記少なくとも１つの受信側デバイスに対して前記同期要求の前に前記プロセッサによって発行されたトランザクション要求の後に続くように前記同期バリアトランザクション要求を前記インターコネクトに発行するように構成される
【００１６】
イニシエータデバイスは、他のイニシエータデバイスによって実施されるトランザクションの進捗を知りたいと思うときに同期要求を発行することができる。イニシエータデバイスは、これを行いたいとき、同期バリアトランザクション要求を生成し、前記少なくとも１つの受信側デバイスに以前に発行されたトランザクション要求の後に続くように、これを送信することもできる。こうして、イニシエータデバイスは、同期要求に対する応答から、他のイニシエータデバイスによって発行されたトランザクションの進捗を決定できるだけでなく、自分自身が以前に発行したトランザクション要求の進捗も決定できる。
【００１７】
いくつかの実施形態では、前記トランザクション要求の少なくとも部分集合は、メモリ管理オペレーション要求であり、前記同期要求は、前記メモリ管理オペレーション要求がいつ終了したか、また、そのステータスが前記メモリ管理オペレーション要求によって影響を受けることになる、以前に発行されたトランザクション要求が前記インターコネクト内の所定のポイントにいつ到達したかを問い合わせるメモリ管理同期要求である。
【００１８】
先に述べたように、同期は、メモリ管理オペレーションが実施されている場合に特に有用である。こうした場合、処理のあるポイントで、以前に要求されたメモリ管理オペレーションが終了していることが重要になる場合があり、したがってこのポイントで、同期要求およびバリアが送信されることができる。
【００１９】
いくつかの実施形態では、前記イニシエータデバイスは、前記同期バリアトランザクション要求および前記同期要求に対する応答が受信されるまで、前記インターコネクトにさらなるトランザクション要求を発行しないように、前記同期バリアトランザクション要求の前記発行に対して応答する
【００２０】
同期バリアトランザクション要求を送信することに応答して、イニシエータデバイスは、同期バリアトランザクション要求および同期要求に対する応答が受信されるまで、さらなるトランザクション要求の発行をブロックすることができる。同期要求が、さらなるトランザクション要求を送信することが安全である前に、同期要求が問い合わせている以前のオペレーションが実行されていることを必要とする同期要求である場合、イニシエータデバイスは、それ自身のバリアトランザクション要求からまた同期要求から受取りをもらうまでさらなるトランザクション要求の発行をブロックすることになる。このポイントで、もし応答信号発生器が適切に構成されるとすれば、以前のトランザクション要求が安全ポイントまで進んでおり、イニシエータデバイスがトランザクションを発行し続けることができることを確信することができる。
【００２１】
いくつかの実施形態では、前記メモリ管理オペレーションは、仮想アドレス−物理アドレス変換の管理を含み、前記バリアトランザクションがその順序を維持する前記少なくともいくつかのトランザクションは、前記メモリ管理オペレーションが実施される前に現行の仮想アドレス−物理アドレス変換を使用するトランザクションを含む。
【００２２】
同期を必要とするメモリ管理オペレーションは、たとえば仮想アドレス−物理アドレス変換の管理である。物理アドレスを使用してデータが記憶されるデータ記憶をアドレス指定するために仮想アドレスを使用するイニシエータデバイスを有するシステムは、仮想アドレスから物理アドレスに変換する変換テーブルを必要とする。これらの変換テーブルの更新は、少なくともメモリ内の同じアドレス空間を使用するイニシエータデバイスについて一貫して適用されることが必要である。これらの変換テーブルを使用するシステム内でイニシエータデバイスの数が得られていない(unsure  of)場合、これを行うことは難しいとすることができる。さらに、これらのアクションは、高いレーテンシを有し、アクションが全て、終了することを待つこと、および、アクションが全て終了したことを完全に確信することを待つことは、たくさんの性能オーバヘッドを有しうる。
【００２３】
バリアトランザクション要求を生成し、メモリ管理オペレーショントランザクション要求の少なくとも１つの後に続くようにバリアトランザクション要求を発行することは、メモリ管理オペレーショントランザクション要求に関する順序付けを維持する方法、また同様に場合によっては、その要求がどれだけ遠くまで進んだかを決定する方法を提供する。これは重要である。その理由は、ページテーブルが更新されている場合、古いテーブルを使用する以前のトランザクションが、新しいテーブルが所定場所に存在する前に、あるポイントを超えて進捗していることが重要であり、また、新しいテーブルを使用するさらなるトランザクションが、そうなるまで発行されないことも重要であるからである。
【００２４】
いくつかの実施形態では、前記バリア発生器は、バリアであって、バリアに関連するドメインインジケータを有するバリアを発行するように構成され、前記ドメインインジケータは、前記バリアトランザクション要求に対する応答が発行されることができない前記インターコネクト内のエリアを示す。
【００２５】
インターコネクト内でバリアがどれだけ遠くまで進捗したかを、有用な方法で決定する１つの方法は、ドメインインジケータを使用することである。インターコネクトは、ドメインに分割されることができる。これがインテリジェントな方法で行われる場合、ドメインはある特性を有することができる。たとえば、２つのポートからの経路は全て、ドメインにマージする可能性があり、したがって、ドメインを出ると、これらの２つのポートのそれぞれからのトランザクションが、ポートの両方にとって見ることができることがわかっている。そのため、バリアが、そのドメイン内の応答を許容しないドメインインジケータを有する場合、応答が受信されると、バリアがそのドメイン以外にあることがわかり、したがって、いずれかのポートからのトランザクションが、このポイントで両方のポートにとって見ることができる。
【００２６】
いくつかの実施形態では、前記同期要求は、前記部分集合のトランザクション要求の少なくともいくつかが、前記インターコネクト内の所定のポイントに到達したかどうかを問い合わせる要求であり、前記同期要求は、前記所定のポイントを示すインジケータを含む。
【００２７】
同期要求が、インターコネクト同期が起こるべきポイントを示すインジケータの形態で情報を運ぶことが可能であれば、有利となる場合がある。同期要求内に情報を設けることは、同期要求を受信するイニシエータデバイスが、バリア要求に対する応答をどこから受信するかを制御することを可能にし、したがって、同期要求を受信するイニシエータが、同期要求に応答するために必要な情報を取得することを可能にする。
【００２８】
いくつかの実施形態では、前記バリア発生器は、前記同期要求内に含まれる前記インジケータに応じて前記バリアドメインインジケータを発行するように構成される。
【００２９】
所定のポイントに関する情報が同期要求内に設けられる場合、バリア発生器は、インターコネクト内のドメインの知識と共にこの情報を利用して、適したドメインインジケータをバリアトランザクション要求に提供することができ、それにより、要求されるトランザクション要求が所定のポイントに少なくとも到達したことを、バリアトランザクション要求に対する応答が示す。
【００３０】
本発明の第３の態様は、複数のイニシエータデバイスの少なくとも１つのイニシエータデバイスが、少なくとも１つの受信側デバイスおよび前記複数のイニシエータデバイスの少なくとも１つの他のイニシエータデバイスにアクセスすることができるデータルートを提供するように構成される、データ処理装置用のインターコネクト回路を提供し、前記インターコネクト回路は、前記複数のイニシエータデバイスと前記インターコネクトとの間でトランザクション要求を送信する複数のイニシエータポートと、前記少なくとも１つの受信側デバイスにトランザクション要求を送信する少なくとも１つの受信側ポートと、前記複数のイニシエータポートと前記少なくとも１つの受信側ポートとの間で前記トランザクション要求を送信する複数の経路と、前記受信されたトランザクション要求を、前記複数の経路の少なくとも１つに沿って前記複数の入力の１つから前記入力または出力ポートの一方にルーティングする制御回路とを備え、前記トランザクション要求の少なくともいくつかは、前記複数のイニシエータデバイスの第１のイニシエータデバイスからの、トランザクション要求の少なくとも部分集合の進捗を問い合わせる同期要求を含み、前記制御回路は、前記トランザクション要求の少なくとも部分集合を実行するように構成された前記イニシエータデバイスの少なくとも１つの他のイニシエータデバイスに前記同期要求をルーティングし、前記イニシエータデバイスの前記少なくとも１つの他のイニシエータデバイスからバリアトランザクション要求を受信するように構成され、前記制御回路は、前記少なくとも１つの他のイニシエータデバイスから以前に受信されたトランザクション要求の後で、前記複数の経路の少なくとも１つの経路に沿って前記バリアトランザクション要求を前記少なくとも１つの受信側デバイスにルーティングし、前記トランザクション要求ストリーム内で前記以前に受信されたトランザクション要求および前記バリアトランザクション要求の少なくともいくつかの順序付けを維持し、前記バリアトランザクション要求に対する応答信号に応答して、前記複数のイニシエータデバイスの前記少なくとも１つの他のイニシエータデバイスに前記応答信号をルーティングするように構成され、前記応答信号は、前記少なくともいくつかの以前に受信されたトランザクション要求が前記応答信号発生器の場所に到達したという指示を前記少なくとも１つの他のイニシエータデバイスに提供する。
【００３１】
同期要求およびバリアトランザクション要求が、意味のある応答を戻すために、バリアトランザクション要求の順序付けが、バリアトランザクション要求に先立つトランザクション要求の少なくともいくつかのトランザクション要求に対して維持されるように、インターコネクトがバリアトランザクション要求に関連する制御回路を有することが重要である。こうして、バリアトランザクション要求に対する応答から、バリアトランザクション要求に先だって維持される要求もまた、応答ポイントに到達したと判定されることができる。
【００３２】
いくつかの実施形態では、前記制御回路は、前記同期要求を複製し、前記同期要求を、前記トランザクション要求の前記少なくとも部分集合を実行する前記複数の他のイニシエータデバイスに送信する同期要求複製回路を備え、前記制御回路は、前記複製された同期要求に対する、前記複数の他のイニシエータデバイスから受信された応答信号を保持し、前記複製された同期要求の全てに対してアクノリッジ応答を受信することに応答して、前記第１のイニシエータデバイスに同期要求応答信号を発行する保持回路をさらに備える。
【００３３】
トランザクション要求の部分集合がそれによって実行される、したがって、同期した要求がそれに関する進捗を問い合わせる、２つ以上の他のイニシエータデバイスが存在することが重要である場合があり、こうした場合、同期した要求は、複製され、これらのイニシエータデバイスの全てに送出される。こうした場合、制御回路は、制御回路が同期要求を送出したイニシエータデバイスの全てからアクノリッジ応答を受信するまで、同期応答に応答しないことになる。
【００３４】
いくつかの実施形態では、前記インターコネクトは、前記第１のイニシエータデバイスからバリアトランザクション要求を受信することに応答して、前記第１のイニシエータデバイスから以前に受信され、前記少なくとも１つの受信側デバイスにルーティングされたトランザクション要求の後で、前記少なくとも１つの受信側デバイスに前記バリアトランザクション要求をルーティングするように構成され、前記制御回路は、前記バリアトランザクション要求に対して、前記以前に受信されたトランザクション要求の少なくともいくつかの順序を維持し、前記バリアトランザクション要求に対する応答信号に応答して、前記第１のイニシエータデバイスに前記応答信号をルーティングするように構成され、前記応答信号は、前記以前に受信されたトランザクション要求の前記少なくともいくつかが前記応答信号発生器の場所に到達したという指示を前記第１のイニシエータデバイスに提供する。
【００３５】
いくつかの実施形態では、前記トランザクション要求の少なくとも部分集合は、メモリ管理オペレーション要求であり、前記同期要求は、前記メモリ管理オペレーション要求がいつ終了したか、また、そのステータスが前記メモリ管理オペレーション要求によって影響を受けることになる、以前に発行されたトランザクション要求が前記インターコネクト内の所定のポイントにいつ到達したかを問い合わせるメモリ管理同期要求である。
【００３６】
いくつかの実施形態では、前記メモリ管理オペレーションは、仮想アドレス−物理アドレス変換の管理を含み、前記バリアトランザクションがその順序を維持する前記少なくともいくつかのトランザクションは、前記メモリ管理オペレーションが実施される前に現行の仮想アドレス−物理アドレス変換を使用するトランザクションを含む。
【００３７】
変換テーブルが管理されている場合、古いテーブルを使用する、以前に発行されたトランザクション要求が、テーブルが変更される前に、あるポイントに到達していることが重要であり、これらのトランザクション要求に続くバリアトランザクションは、そうなるときを決定する単純でかつエレガントな方法である。
【００３８】
いくつかの実施形態では、前記インターコネクトは、前記バリアトランザクション要求を受信することに応答して、前記応答信号を発生する応答信号発生器を備える。
【００３９】
応答信号発生器は、トランザクション要求を受信する受信側デバイス内にあり、トランザクション要求を実行するデバイスとすることができる、または、別のインターコネクトとすることができるが、インターコネクト内にあり、バリアトランザクション要求に先だって応答信号を送出できる場合が有利である可能性がある。トランザクション要求が受信側に到達したことを、イニシエータデバイスがわかることが重要である場合がある。しかし、多くの場合、インターコネクト内のあるポイントにおいて、さらなるトランザクション要求がこのポイントでインターコネクトに発行される場合、さらなるトランザクション要求の発行が、以前のトランザクション要求と同期したままであるように十分に遠くまで、トランザクション要求が移動してしまっているように、インターコネクトが構成されることができる。たとえば、異なるポートからの経路が、早期段階の間、インターコネクト内で、その後、これらのマージポイントを超えるポイントでマージするように構成される場合、応答および後続のトランザクション要求は、安全に送出されることができる。明らかに、早期に応答することはシステムのレーテンシを低減し、性能を改善する。
【００４０】
いくつかの実施形態では、前記インターコネクト回路は、少なくとも１つのドメインを備え、前記少なくとも１つのドメインは、前記少なくとも１つのイニシエータデバイスからトランザクション要求を受信する前記少なくとも１つの入力の少なくとも１つを備え、前記少なくとも１つの入力から受信されるトランザクション要求の任意のマージングが前記少なくとも１つのドメイン内で行われるようにドメイン境界が構成され、前記同期要求は、前記同期要求が前記少なくとも１つのドメインのうちのどのドメインに適用されるかを示すインジケータを含み、前記応答信号発生器は、前記少なくとも１つのドメインの出口点に位置し、前記応答信号発生器は、応答信号を発生するために、前記出口点を通過する前記バリアトランザクション要求を検出することに応答し、前記制御回路は、前記バリアトランザクション要求がそこから受信された前記イニシエータデバイスに前記応答信号を送信するように構成される。
【００４１】
先に述べたように、インターコネクト回路はいくつかのドメインを備えることができ、トランザクション要求のマージングが、あるドメイン内で起こるように、いくつかのドメインが配置される場合、そして、応答信号発生器が、あるドメインの出口に配置される場合、そして、必要とされるイニシエータデバイスからのトランザクション要求が、そのドメインの出口でマージすることを確信できるようにドメインインジケータが選択されるとすれば、このポイントにおける応答は、対象となるイニシエータデバイスの全てにとってトランザクション要求を見ることができるポイントまで、トランザクション要求が進んだことをシステムに示すのに非常に役立つ。
【００４２】
いくつかの実施形態では、前記制御回路は、前記イニシエータデバイスに前記応答信号を送信すると前記バリアトランザクションをさらに送信しないように構成される。
【００４３】
いくつかの実施形態では、バリアトランザクション要求は、バリアトランザクション要求が、インターコネクト内のあるポイントにいつ到達したかをイニシエータデバイスに示すために使用され、このポイントは、要件に応じて選択される。これは、多くの実施形態では、バリアトランザクション要求の唯一の目的であり、したがって、一旦応答が与えられると、バリアトランザクション要求は、打ち切られ、さらに送信されない可能性がある。
【００４４】
いくつかの実施形態では、前記複数の経路の少なくともいくつかは、ノードから分岐する分岐経路であり、前記制御回路は、前記少なくともいくつかのトランザクション要求および前記それに続くバリアトランザクション要求を、複製し、前記少なくともいくつかのトランザクション要求がそれに沿ってルーティングされる前記分岐経路の少なくともいくつかの分岐経路に沿って送信するように構成される。
【００４５】
いくつかの経路が分岐する場合、バリアトランザクション要求によって追従されるトランザクション要求が、経路の両方を下方に進む場合、バリアトランザクション要求は、複製され、複製されたバリアの全てからの応答が収集されるまで応答されないことが必要である。これが起こることを可能にするため、いくつかの実施形態では、前記制御回路は、前記複製されたバリアトランザクション要求から受信される応答信号を保持し、前記複製されたバリアトランザクション要求の全てに対する応答を受信することに応答して、前記バリアトランザクション要求の前記発信源に対して前記受信された応答信号を送信するだけであるように構成される保持回路を、前記ノードに備える。
【００４６】
本発明の第４の態様は、インターコネクトを介して少なくとも１つの受信側デバイスと通信する複数のイニシエータデバイスを備えるデータ処理装置を提供し、前記イニシエータデバイスの少なくとも１つは、本発明の第２の態様によるイニシエータデバイスであり、前記インターコネクトは、本発明の第３の態様によるによるインターコネクトである。
【００４７】
本発明の第５の態様は、インターコネクトを介して少なくとも１つの受信側デバイスにトランザクション要求を発行する複数のイニシエータデバイスを備えるデータ処理装置を同期させる方法を提供し、前記方法は、トランザクション要求の少なくとも部分集合の進捗を問い合わせる同期要求を発行するステップと、前記トランザクション要求の少なくとも部分集合を実行するように構成される、前記複数のイニシエータデバイスの前記少なくとも１つの他のイニシエータデバイスに前記同期要求をルーティングするステップと、前記イニシエータデバイスの前記少なくとも１つの他のイニシエータデバイスからバリアトランザクション要求を発行するステップと、前記少なくとも１つの他のイニシエータデバイスから以前に受信されたトランザクション要求の後で、前記複数の経路の少なくとも１つの経路に沿って前記バリアトランザクション要求を前記少なくとも１つの受信側デバイスにルーティングするステップであって、それにより、トランザクション要求ストリーム内で、前記以前に受信されたトランザクション要求および前記バリアトランザクション要求の少なくともいくつかの順序付けを維持する、ルーティングするステップと、前記バリアトランザクション要求に対する応答信号に応答して、前記複数のイニシエータデバイスの前記少なくとも１つの他のイニシエータデバイスに前記応答信号をルーティングするステップであって、前記応答信号は、前記以前に受信されたトランザクション要求が前記応答信号発生器の場所に到達したという指示を前記少なくとも１つの他のイニシエータデバイスに提供する、ルーティングするステップと、前記同期要求に応答するアクノリッジ信号を生成し、前記アクノリッジ信号を前記第１のイニシエータデバイスに向けてルーティングするステップとを含む。
【００４８】
本発明の第６の態様は、受信された同期要求にいつ応答するかを決定する方法を提供し、方法は、インターコネクトを介して受信側デバイスにトランザクション要求を発行するステップと、トランザクション要求の少なくとも部分集合の進捗を問い合わせる同期要求を前記インターコネクトから受信するステップと、前記トランザクション要求の少なくとも部分集合内の任意の保留中トランザクション要求を実行するステップと、バリアトランザクション要求を生成し、前記バリアトランザクション要求を前記インターコネクトに発行するステップと、前記バリアトランザクション要求に対する応答を受信することに応答して、前記同期要求に対する応答としてアクノリッジ信号を発行するステップとを含む。
【００４９】
本発明は、添付図面に示す本発明の実施形態を参照して、単に例としてさらに述べられる。
【図面の簡単な説明】
【００５０】
【図１】本発明の実施形態による電力コントローラを有するデータ処理装置を示す図である。
【図２】メモリ管理オペレーションを同期させるインターコネクトを示す図である。
【図３】本発明の実施形態によるイニシエータデバイスを示す図である。
【図４】本発明の実施形態による、複数のイニシエータデバイス、インターコネクト、および受信側デバイスを有するデータ処理装置を示す図である。
【図５】本発明の実施形態による異なるドメインとのインターコネクトを有するデータプロセッサを示す図である。
【図６】イニシエータデバイスにおいて同期要求に応答する方法のステップを示すフロー図である。
【図７】本発明の実施形態によるイニシエータデバイスにおいて同期要求を生成する方法のステップを示す図である。
【図８】本発明の実施形態によるメモリ管理オペレーションを同期させる方法のステップを示すフロー図である。
【図９ａ】インターコネクトが、異なるドメインに分割されることができる方法を概略的に示す図であり、いくつかのバリアは、バリアが存在するドメインに応じて異なるように処理される。
【図９ｂ】インターコネクトが、異なるドメインに分割されることができる方法を概略的に示す図であり、いくつかのバリアは、バリアが存在するドメインに応じて異なるように処理される。
【図１０】インターコネクトが、異なるドメインに分割されることができる方法を概略的に示す図であり、いくつかのバリアは、バリアが存在するドメインに応じて異なるように処理される。
【図１１】バリアを扱うのに適するインターコネクトを詳細に示す図である。
【発明を実施するための形態】
【００５１】
図１は、インターコネクト２５を介してメモリデバイス２０と通信する２つのプロセッサ１０および１２を有するデータ処理システム５を概略的に示す。電力コントローラ４０も存在し、電力コントローラ４０は、休止期間中に低電力モードを始動し、それにより、システム５の電力消費を低減するために使用される。電力コントローラがシステムを安全にパワーダウンするために、電力コントローラは、プロセッサＰ０およびＰ１によって発行された未処理トランザクション要求が終了したかどうかを判定することを必要とする。したがって、電力コントローラは、同期要求をインターコネクト回路２５に送出し、インターコネクト内の制御回路７０は、同期要求を、両方Ｐ０およびＰ１にルーティングする。同期要求の受信に応答して、プロセッサＰ０およびＰ１は、任意の未処理トランザクション要求をインターコネクト２５に発行し、その後、プロセッサのトランザクション要求がいつ終了したかをプロセッサが知るようにバリアトランザクション要求を発行する。バリアトランザクション要求は、以前のトランザクション要求に続き、以前のトランザクション要求がとる経路に沿ってバリアトランザクション要求を発行するプロセッサをパワーダウンすることが安全であるポイントで、応答が、バリアに対して生成され、この応答信号は、保持ユニットを介して制御回路７０を介して電力コントローラに向けてルーティングされる。受信される第１の応答は、両方のバリアトランザクション要求に対する応答が受信されるまで、保持ユニット７２に保持され、その後、システムをパワーダウンさせる単一応答が電力コントローラ４０に送出される。電力コントローラによって送出される同期信号は、システムのどの部分がパワーダウンされるかを示すインジケータを伴うことができることが留意されるべきである。パワーダウンされるシステムの部分に応じて、プロセッサＰ０およびＰ１は、応答がそこから与えられることができるシステム内のポイントを示すインジケータを伴うバリアトランザクション要求を生成することができる。応答をどこから与ることができるかを指定するインジケータを有するバリアトランザクション要求を提供するこの能力は、後で述べられる。
【００５２】
図２は、本発明の実施形態によるデータ処理システム５０を示す。システム５０は、インターコネクト２５、ならびに、インターコネクト２５を介して、互いとまたメモリ２０と通信する種々のプロセッサＰ０、Ｐ１、およびＰ２を有する。プロセッサＰ１は、プロセッサに加えてメモリ管理ユニットを有する。プロセッサＰ２は、プロセッサＰ２がそこを通してトランザクションを送出する外部メモリ管理ユニット４５を、インターコネクト２５の途中で使用する。
【００５３】
この実施形態では、プロセッサＰ０は、Ｐ１のメモリ管理ユニットおよびメモリ管理ユニット４５によって実施されるメモリ管理オペレーションを生成することができ、メモリ管理オペレーションが終了したことを知りたいと思うあるポイントで、プロセッサＰ０は、インターコネクト２５に同期要求を送信することになる。制御回路７０は、メモリ管理オペレーション要求を受信し、種々のＭＭＵにそれらの要求を適切にルーティングし、その後、メモリ同期要求を受信すると、必要である場合それを複製し、制御回路７０がメモリ管理オペレーション要求をそこにルーティングしたＭＭＵ（複数可）に同期要求（複数可）をルーティングする。
【００５４】
一旦制御回路がメモリ管理同期要求を発行すると、プロセッサＰ０は、同期バリアを発行し、さらなるトランザクションの発行をブロックする。これは、このポイントで、さらなるトランザクションは、安全に発行されることができる前にメモリ管理オペレーションが実行されていることを必要とするためである。同期要求が発行されたのはこの理由のためである。
【００５５】
しかし、Ｐ１およびＰ２によって以前に発行されたトランザクションは、メモリ管理オペレーションが有効になる前に終了することを欲する。このため、同期要求を受信することに応答して、各メモリ管理ユニットは、メモリ管理オペレーションを実行するが、同様にバリア発生器（この図では示さず）によって生成されたバリアをインターコネクト２５に送出することになる。バリアは、メモリ管理オペレーションが有効になる前に終了する必要がある以前に発行されたトランザクションに続くことになる。そのため、メモリ管理オペレーションが、仮想アドレスから物理アドレスに変換する変換テーブルのフラッシングである場合、古い変換を使用するいずれのトランザクション要求も、メモリ管理オペレーションが終了する前に終了しなければならない。そのため、バリアは、インターコネクト２５を通してこれらのトランザクション要求に続き、これらのトランザクション要求が、メモリ同期要求を発行したプロセッサＰ０にとって見ることができるポイントで、これらのバリアトランザクション要求に対する応答が生成され、この応答は、バリアを発行したＭＭＵに返送される。
【００５６】
各ＭＭＵは、そのバリアトランザクション要求に対する応答を受信し、その未処理のメモリ管理オペレーションを終了した場合、メモリ管理同期要求に対してアクノリッジ応答信号を送出することになる。この信号は、制御回路７０にルーティングされ、全ての複製されたメモリ管理同期要求に対する応答が受信されるまで、保持回路７２に保持される。この場合、２つの応答が必要とされる。２つの応答が受信されると、制御回路７０は、同期アクノリッジ応答をプロセッサＰ０に送信することになる。プロセッサＰ０は、この応答およびそれ自身の同期バリアに対する応答を待つことになり、これらを両方とも受信すると、以前にブロックされたさらなるトランザクションをインターコネクト２５に送信できる。
【００５７】
Ｐ１およびＰ２によって送出されるトランザクション要求の可視性をＰ０が有するポイントである、バリアがそこで応答するポイントは、図５に関してより詳細に述べられる。
【００５８】
図３は、本発明の実施形態によるイニシエータデバイス８０を示す。このイニシエータデバイスは、ポート８５を介してインターコネクトにトランザクション要求を送出するプロセッサ８２を有する。これらのトランザクション要求がメモリ管理オペレーション要求を含む場合、トランザクション要求の一部は、それ自身のＭＭＵ９０によって実行され、一部は、インターコネクトに接続された他のイニシエータデバイスのＭＭＵに送信される。メモリ管理ユニット９０は、変換ルックアサイドバッファＴＬＢ９５と通信し、このバッファ内に記憶された変換テーブルを使用して、プロセッサによって送出された命令内の仮想アドレスを、処理システム内に記憶されたデータによって使用される物理アドレスに変換する。メモリ管理オペレーションは、一般に、これらの変換テーブルを更新することに関連することになり、後続の命令が新しい変換を使用するとき、自分自身の変換ルックアサイドバッファが更新されることだけでなく、同じメモリ空間にアクセスする他のＭＭＵによって使用されるバッファもまた更新されることを知っていることが重要である。
【００５９】
その通りになることを保証するために、プロセッサ８２は、メモリ管理同期要求を送出し、その要求は、インターコネクトによって種々のＭＭＵにルーティングされることになる。さらに、バリア発生器は、同期バリアを生成し、以前の変換を使用した、以前に発行されたトランザクション要求に続くように、ポート８５を通してこのバリアを送信することになる。このバリアは、これらのトランザクション要求の後に位置し、このバリアに対する応答が応答信号発生器から受信されると、以前のトランザクション要求もまた、このポイントに到達したことを確信することができる。イニシエータデバイス８０は、バリア発生器１００によって生成されたバリアおよびメモリ同期要求に応答するアクノリッジ応答を一旦受信すると、イニシエータデバイス８０がこのポイントまでブロックした、新しい変換を使用した後続のトランザクションを発行できる。このポイントで、古い変換を使用した以前のトランザクション要求が、新しい変換が実装されることができるポイントに到達しており、新しい変換が、さらなるトランザクションが送信されることができる程度に実装されることをイニシエータデバイス８０は知っている。
【００６０】
メモリ同期要求を発行することに加えて、イニシエータデバイス８０はまた、ポート８７で他のイニシエータデバイスからメモリ同期要求を受信することができる。これらの同期要求は、以前に受信され、実装されるＴＬＢ９５の変換テーブルのフラッシングなどのメモリ管理オペレーションを必要とするメモリ管理オペレーション要求に続く。メモリ同期要求を受信することに応答して、ＭＭＵ９０は、以前に発行されており、古い変換を使用するトランザクション要求の後に続くように、ＭＭＵ９０がまだ実施しておらず、バリア発生器１００で生成することになる保留中の任意のメモリ管理オペレーションを実施することになる。ＭＭＵ９０は、バリアトランザクション要求に対する応答を受信し、メモリ管理オペレーションを終了すると、メモリ同期要求に応答して同期アクノリッジ応答を送出することになる。
【００６１】
図４は、それぞれがキャッシュおよび自分自身のメモリ管理ユニット（ＭＭＵ）を有するプロセッサＰ１、Ｐ２、およびＰ３を示す。メモリ管理ユニットを持たない別のイニシエータデバイスＰ４も存在し、イニシエータデバイスＰ４は、イニシエータデバイスＰ４もメモリＭＥＭにアクセスできるように、システムＭＭＵ４５を介してインターコネクト１０に接続される。
【００６２】
メモリ管理ユニット（ＭＭＵ）は、仮想アドレスを使用するプロセッサが、物理アドレスを使用するメモリと通信することを可能にするために使用される。そのため、ＭＭＵは、仮想アドレスを物理アドレスにマッピングする仮想アドレス−物理アドレス変換テーブルを保持し、プロセッサからメモリへのアクセスは、これらのテーブルを使用することになる。図４に示すようなマルチプロセッサシステムでは、メモリ管理システムは、事実上、システム内の異なるポイントにいくつかのＭＭＵを有する分散システムである。同じアドレス変換を使用するこれらのＭＭＵまたはこれらのＭＭＵの少なくとも部分集合は、互いに整合したままでなければならず、したがって、１つのＭＭＵによって発行されるメモリ管理トランザクションは、他のＭＭＵに適用されなければならない可能性がある。そのため、たとえば１つのＭＭＵの変換テーブルがフラッシングされ、新しい変換の集合が使用される場合、このメモリ管理オペレーションは、同じアドレス変換を使用する全てのＭＭＵ上で実施されなければならない。これらのメモリ管理トランザクションは、長いレーテンシ時間を有し、したがって、性能にかなり影響を及ぼしうる。さらに、システムは、これらのトランザクションのいくつかがいつ終了したかを知る方法を全く持たない可能性があり、バリアは、これらのトランザクションに関連する順序付け要件を管理する特に有効な方法である。
【００６３】
そのため、たとえばＰ２が、そのＭＭＵおよびインターコネクトにいくつかのＭＭＵメンテナンストランザクションを発行した場合、制御回路７０は、同じアドレス変換を使用する他のＭＭＵにメンテナンス要求を転送することになり、これらのＭＭＵは全て、これらのメンテナンス要求の受信にアクノリッジを返すことになるが、これらのＭＭＵは、ある期間、メンテナンス要求をさらに続行しない可能性がある、または、メンテナンス要求の処理を開始するが、メンテナンス要求が処理するのにある期間を必要とするため、少しの間、終了しない可能性がある。Ｐ２は、たとえば新しい変換を使用するトランザクションを発行する前のあるポイントで、メンテナンス要求が終了していることを知る必要がある場合がある。そのため、Ｐ２は、メンテナンス要求に続く同期要求を、そのＭＭＵおよびインターコネクトに送出することになり、インターコネクトは、その同期要求を、適切なＭＭＵのそれぞれに転送することになる。この実施形態では、新しいページを使用する後続のトランザクションがＰ２によって発行されることができる前に、Ｐ２は、古いページテーブルを使用した全てのトランザクションがその目的地に到達したことを知る必要がある。そのため、同期要求を送出することに加えて、Ｐ２はまた、Ｐ２が自身で発行し、古い変換を使用する、以前に発行されたトランザクション要求に続くように同期バリアトランザクション要求を送出し、Ｐ２は、その後、さらなるトランザクション要求の発行をブロックする。
【００６４】
ＭＭＵは、メンテナンス要求を発行し、メンテナンス要求に続くようにバリアを送出することによって同期要求の受信に反応することになる。バリアは、古い変換を使用する、以前に送出された要求に続くために使用され、こうして、バリアがその目的地に到達したことを示すバリアに対する応答は、古いページテーブルを使用することになる全ての保留中のトランザクションがその目的地に到達していることを示す。応答がＭＭＵのバリアから受信されると、もしＭＭＵがメモリ管理要求を実行したとすれば、ＭＭＵは、同期要求に対するアクノリッジ応答を送出することになり、この応答は、保持回路５２に記憶され、ついには、同期要求を受信したＭＭＵの全てから応答が受信され、そのポイントで、同期返答がＰ２に送出され、もしＰ２が、Ｐ２が発行した同期バリアに対する応答を受信したとすれば、Ｐ２は、さらなるトランザクションを発行できる。
【００６５】
同期要求に応答して種々のＭＭＵによって発行されるバリアは、ＭＭＵが制御する、バリアに先立って発行された全てのトランザクションが、あるポイントにいつ到達したかを発行者に知らせるように働くことが留意されるべきである。ＭＭＵは、バリアの後のトランザクションをブロックせず、したがって、バリアに関連するレーテンシのわずかな増加を有するだけである。
【００６６】
いくつかのメモリ管理トランザクションの場合、管理オペレーションが終了する前にトランザクションが全く送出されないことが重要である。たとえば、新しい変換の集合が使用される場合、新しい変換を使用する任意のトランザクションは、メモリ管理トランザクションがあらゆる所で終了するまで、発行されないことが重要である。
【００６７】
マスターＰ２が仮想メモリ管理同期要求を発行する場合、Ｐ２が、バリア発生器６２で生成しこの同期要求の後で送出するバリアは、マスターでブロックする。同期要求は、全てのＭＭＵが持つ保留中の任意の仮想メモリ管理オペレーションについて全てのＭＭＵに問い合わせることになり、マスターＰ２は、保留中の全ての仮想管理オペレーションが終了したことを示す応答、および、Ｐ２が発行した以前のトランザクションがあるポイントに到達したことを示す、Ｐ２が発行したバリアからの応答をＰ２が受信するまでさらなるトランザクションを発行しないことになり、この場合、応答は、ＭＥＭ１内の応答発生器５５から与えられるが、他の実施形態では、応答は、インターコネクト内の早期応答ユニットから与えられることができる。
【００６８】
これらの異なる特徴がマスターＰ２について示されるが、他のマスターによって発行されるトランザクションを制御する他の回路が存在するが示されないことが留意されるべきである。
【００６９】
図５は、いくつかのドメインが、本発明の実施形態でどのように使用されることができるかを示す。この実施形態では、インターコネクト２５は、点線５１および５２で示すドメインを有する。点線５２は、Ｐ０およびＰ１からのトランザクションがその中でマージされることになるドメインを示す。ドメイン５２の出口に早期応答発生器１１０が存在し、トランザクション要求は、一旦このポイントを通過すると、他のプロセッサからのトランザクション要求とマージされており、したがって、両方のプロセッサにとって見ることができる。そのため、システムがちょうど２つのプロセッサＰ０およびＰ１を持つ場合、バリアトランザクション要求に対する応答発生器１１０からの応答は、バリア、したがってプロセッサが制御した任意のトランザクション要求が、各プロセッサのトランザクションが他のプロセッサにとってみることができるポイントに到達したことを示すことになる。
【００７０】
そのため、仮想アドレスを物理アドレスに変換する変換テーブルに対して実施されるメモリ管理オペレーションの場合、古いテーブルを使用する以前のトランザクション要求が一旦このポイントに到達すると、新しい変換テーブルが実装されることができる。そのため、ドメインインジケータが、任意のバリアトランザクション要求に付加され、５２で境界付けされるドメイン内で応答が全く許容されないことを示す場合、バリアに対する応答は、トランザクション要求がこのドメインを励起したことを示すことになる。ドメイン境界上に位置する応答発生器は、この条件が満たされるとすぐに応答が送出されることを意味する。いくつかの実施形態では、同期トランザクション要求が同期させるトランザクションが、同期が起こる前にその外側にある必要があるドメインを示すインジケータを、同期トランザクション要求それ自身が含むことができることが留意されるべきである。そうなる場合、バリア発生器は、同期要求からの応答が、どこから送出されることができるかに関してバリア発生器が必要とする情報を全て取得でき、バリア発生器は、同期要求のドメインインジケータをバリアに付加するだけである。
【００７１】
図６は、本発明の実施形態によるマスターにおいて同期要求に応答する方法のステップを示すフロー図を示す。マスターは、トランザクション要求をインターコネクトに発行する。マスターは、その後、メモリ管理オペレーション要求を受信し、マスターは、その要求にアクノリッジを返し、その要求を即座に実行してもよく、または、しなくてもよい。マスターは、その後、メモリ管理同期要求を受信し、それにより、マスターは、まだ実行していなかった保留中のメモリ管理要求の任意の要求を実行し、発行した以前のトランザクション要求に続くバリアトランザクション要求を発行する。
【００７２】
応答がバリアから受信されており、以前のトランザクション要求が、応答が与えられるポイントを超えて進んだことを応答が示すときでかつマスターがメモリ管理オペレーションを終了したとき、マスターは、同期要求に応答することになる。こうして、このイニシエータデバイスは、イニシエータデバイスが、必要とされるメモリ管理オペレーションを実施したこと、および、あるポイントであって、応答を発行した応答信号発生器の場所である、あるポイントを超えてイニシエータデバイスの以前のトランザクションが進捗したことを示す。先の図に関して述べたように、このポイントは、バリアの適切な特性によって選択されることができる。
【００７３】
図７は、インターコネクトを介して受信側デバイスおよび少なくとも１つの他のイニシエータデバイスと通信し、メモリ管理オペレーションおよび同期を要求するイニシエータデバイスによって実施される方法のステップを示すフロー図を示す。イニシエータデバイスは、トランザクション要求を発行し、その後、メモリ管理オペレーションが必要とされるときに、他のイニシエータデバイスに送出される要求を発行する。処理のあるポイントで、イニシエータデバイスは、これらの要求が実施されたことを知る必要があるため、イニシエータデバイスは、メモリ管理同期要求を発行し、また、同期バリア要求を発行する。同期バリア要求は、インターコネクトに発行され、以前に発行されたトランザクション要求の後でインターコネクトを通して進み、以前に発行されたそのトランザクション要求は、受信側まで進み、メモリ管理オペレーションが有効になる前にあるポイントを超えて進捗している必要がある。
【００７４】
同期バリア要求を発行して、イニシエータデバイスは、さらなるトランザクション要求の発行をブロックする、その理由は、これらのトランザクション要求が、メモリ管理オペレーションが実行されていることを必要とするからである。同期バリアとメモリ管理同期要求の両方に対する応答が受信されると、イニシエータデバイスは、さらなるトランザクション要求のブロックを解除し、これらの要求がインターコネクトに発行されることができる。
【００７５】
図８は、インターコネクトを介して少なくとも１つの受信側デバイスに接続された、いくつかのイニシエータデバイスを有するデータ処理装置のインターコネクト内でトランザクション要求をルーティングする方法のステップを示すフロー図を示す。第１のステップでは、トランザクション要求は、第１のまた他のイニシエータデバイスから受信され、１つまたは複数の受信側デバイスにルーティングされる。メモリ管理オペレーション要求は、その後、第１のイニシエータデバイスから受信され、これらの要求は、メモリ管理オペレーションが、他のイニシエータデバイスによって実施されることを必要とするため、これらの他のイニシエータデバイスにルーティングされる。これらのイニシエータデバイスは、独立型ＭＭＵであってよく、または、ＭＭＵを有する処理デバイスであってよい。メモリ管理同期要求は、その後、第１のイニシエータデバイスから受信され、この要求は、メモリ管理オペレーション要求が実行されたかどうかを、また、メモリ管理オペレーションが終了する前に、インターコネクト内のあるポイントに到達しているべきである、他のイニシエータデバイスによって発行された他のトランザクション要求の進捗を問い合わせる。メモリ同期要求は、複製され、メモリ管理オペレーション要求を受信した他のイニシエータデバイスに送信される。
【００７６】
同期バリア要求は、その後、第１のイニシエータデバイスから受信され、受信側デバイスまで進む第１のイニシエータデバイスから受信されるトランザクション要求の後でルーティングされる。インターコネクト回路は、同期バリア要求に対して第１のイニシエータデバイスから受信されるトランザクション要求の順序を維持し、それにより、この同期バリア要求は、同期バリア要求が続くトランザクション要求の進捗の指示を第１のイニシエータデバイスに提供する。
【００７７】
同期バリア要求に対する応答は、その後、受信され、第１のイニシエータデバイスにルーティングされ、第１のイニシエータデバイスは、同期バリア要求に先行するトランザクション要求が、応答信号発生器の場所に到達したことを知る。
【００７８】
バリアトランザクション要求は、その後、他のイニシエータデバイスから受信され、それぞれの他のイニシエータデバイスから受信されたトランザクション要求の後でルーティングされる。バリアに対するトランザクション要求の順序は、その後、インターコネクト制御回路によって維持される。
【００７９】
バリアに対する応答は、その後、受信され、バリアを発行したそれぞれの他のイニシエータデバイスに送信され、こうして、これらのイニシエータデバイスは、バリアの前に進むトランザクション要求もまた、応答を発行した場所に到着したことを知る。こうして、イニシエータデバイスは、受信した同期要求にいつ応答するかを決定できる。
【００８０】
複製されたメモリ同期要求に対する応答は、その後、これらの他のイニシエータデバイスから受信され、これらの応答が全て受信されると、アクノリッジ応答が、第１のイニシエータデバイスに送出される。こうして、インターコネクトを通したバリアおよびそのコントロールの使用は、種々のトランザクション要求の進捗を決定し、異なるコンポーネントが同期されることを可能にするために使用される。
【００８１】
先に述べたように、インターコネクトは、複数のドメインに分割されることができ、ドメインの特性が適切に選択される場合、ドメインの出口の応答は、あるトランザクション要求が、ある数の他の入力ポートにとって見ることができると言えるポイントに到達したことをイニシエータデバイスに示すために使用されることができる。
【００８２】
一般に、レーテンシを過度に増加させないようにしながら、トランザクションの正しい順序付けが維持されることを保証するために、マスターおよびインターコネクトの部分を異なるドメインにグループ分けし、ドメイン内でバリアおよびトランザクションを制御する、いくつかの異なる方法が存在する。この点に関し、あるルールがドメインに関連するインターコネクトのトポロジに課される場合、バリアは、バリアのレーテンシを低減するために利用されることができるある特性を有することが認識されている。特定の方法でドメインを配置することは、システムの許可されるトポロジにおける制約を生成する可能性があるが、バリアによって生成されるレーテンシを減少させる可能性もあり、したがって、以下で述べる、ドメインの考えられる異なる実装には利点および欠点が存在する。
【００８３】
ドメインの配置の全てにおいて、バリアトランザクションが、特定のドメインに関連するものと特徴付けられる場合、バリアトランザクションは、そのドメインの外にあるとき、再収斂領域を除いて、常に応答されることができ、一方、バリアのあるタイプは、特徴付けられたドメイン内にあるとき、ブロック解除されることができない。
【００８４】
第１の「ヌル(null)」実装では、これらのドメインは考慮されない。全てのバリアは、システムの全ての部分において全てのトランザクションに適用されるものとして扱われる。バリアによるレーテンシが高くなる点で、これは、明らかに性能が低い。しかし、それは、実際には制限のない任意のドメインメンバーシップ（たとえそのメンバーシップが影響を持たなくても）およびトポロジを可能にするため、常に構築されることができる。これは、全てのドメインがその全てのドメイン内に全てのマスターを含むことと論理的に等価である。
【００８５】
代替の「ほぼヌルの(nearly null)」実装では、各マスターに関連する共有不能なドメインが存在し、これらのドメインに関連するバリアは、このドメインの外で異なるように扱われる。共有不能なバリアは、マスターからの入力を超えていたる所でその共有可能性ドメインの外にあるため、インターコネクト全体においてそのように扱われ、したがって、インターコネクトの全ての非再収斂部分において応答されることができる。他の共有可能性ドメインバリアトランザクションは、ヌル実装の場合と同様に扱われる。これは、共有不能なドメイン境界を、発行者またはマスター入力にすることと論理的に等価であり、全ての他のドメインが、全ての他のマスターを含む。
【００８６】
代替の「単純な(simple)」実装は、ある制限されたトポロジおよび改善された性能を有する、この手法は、容認されることができる制限のレベルに応じて２つの異なる解決策をもたらす。
【００８７】
共有可能性ドメインメンバーシップに対する３つの制限は、これらの手法の両方に共通である。
１．観測者の共有不能なドメインは、それ自身単独である。
２．観測者のシステムの共有可能性ドメインは、そのドメインが直接または間接に通信できる、少なくとも全ての他の観測者を含む。
３．観測者の内部共有可能ドメインの全てのメンバーは、その外部供給可能ドメインのメンバーでもある。
【００８８】
これらの最初の２つは、［３］によって課される制限である。さらに、２つの解決策はそれぞれ、特定のトポロジカルな制限およびおそらくは付加的な共有可能性ドメインメンバーシップ制限を有する。
【００８９】
これらの２つの実装の第１の実装は、各場所が単一ドメイン内にあるという制限を必要とし、したがって、１種類だけのドメイン、内部、外部、またはシステム内に存在するインターコネクト内の各場所に依存する。これを使用可能にするために、さらなる共有可能性ドメインメンバーシップ制限が施行されなければならない。
【００９０】
任意の観測者の任意の共有可能性ドメインの全てのメンバーは、その同じレベルの共有可能性ドメインのメンバーとして、その共有可能性ドメインの全ての他のメンバーを持たなければならない。すなわち、観測者Ｂが観測者Ａの内部共有可能ドメインのメンバーである場合、相反的に、Ａは、Ｂの内部共有可能ドメインのメンバーでなければならない。
【００９１】
満たされなければならないトポロジカル制限は、
１．ドメイン境界は、そのドメインの全てのメンバーを含まなければならない
２．ドメインの外側のものは何も、そのドメインにマージできない。すなわち、ドメイン境界は、ドメイン境界の内部にない任意のもののダウンストリームにある何ものをも含んではならない。
３．全てのドメイン境界は、ドメイン２分リンク上に存在しなければならない
である。
【００９２】
ドメイン境界を考える単純な方法は、この場合、高度を表現するトポロジカル輪郭線（垂直面は許可されるが、オーバハングは許可されない）としてである。各マスターは、同じ高さにあり、各共有可能性ドメイン輪郭は、同じタイプの全ての他の輪郭と同じ高さにある。垂直クリフは、異なるタイプの共有可能性ドメインが同一であることを可能にすることを許可されるが、共有可能性ドメインの横断を可能にすることになるオーバハングは許可されない。
【００９３】
これらのトポロジカル制限は、何も−ドメインのメンバー（制限１に違反する）も、非メンバー（制限２に違反する）も−ドメインにマージできないことを要求する。メンバーの分割されたダウンストリームが、ドメインをエグジットし、その後、ドメインの外側の何かとマージすることもなくドメインに再マージする場合、エグジットとリエントリとの間の部分は、事実上依然としてドメイン内に存在する。
【００９４】
結合したトポロジカル制限およびドメインメンバーシップ制限は、その共有可能性ドメイン内で、バリアが、そのドメインの外側の観測者からのトランザクションに遭遇できないこと、および、バリアが、ドメインからエグジットするとき、バリアがいずれマージすることになる、ドメインの全てのメンバーからの全てのトランザクションストリームとマージしていることを保証する。結合した制限はまた、任意の内部共有可能ドメインの外側にある任意の場所が全ての内部共有可能ドメインの外側にあること、および、任意の外部共有可能ドメインの外側にある任意の場所が全ての外部共有可能ドメインの外側にあることを保証する。
【００９５】
この結果として、バリアが分割ポイントでブロックされるための要件は、バリアの共有可能性ドメインを、分割ポイントがその中に存在するドメインタイプと単に比較することによって決定されることができる。その理由は、共有可能ドメインのいずれのメンバーも、その場所のダウンストリームでマージできないという要件が、こうした制約付きシステム内でバリアがそのドメインの外側に存在することによって暗黙的に満たされるからである。
【００９６】
このメカニズムは、ドメインエグジットポイントにおいて明示的な検出コンポーネントを必要とすることになる、バリアがその共有可能性ドメインの外側に存在するという明示的な指示、または、それぞれの関連する分割ポイントにおけるそのステータスの確定によって実装されることができる。
【００９７】
これらの２つの実装の第２の実装は、複数のドメイン内に複数の場所を可能にする。この実装は、バリアトランザクションが、一旦その共有可能性ドメインをエグジットすると、遷移を行うことによってノンブロッキングになるように、バリアトランザクションが共有可能性ドメインの境界を通過するときに、バリアトランザクションの指示された共有可能性ドメインが修正されることによる。バリアトランザクションが内部または外部共有可能ドメインから出るとき、その指示されたドメインは、共有不能の方に移動し、共有不能と特徴付けられると、バリアトランザクションが、そのドメインの外側に存在することがわかっているため、ノンブロッキングであるとすることができる。
【００９８】
この場合、共有可能性ドメインメンバーシップに対するさらなる制限は緩い：
【００９９】
任意の２つの共有可能性ドメインＡおよびＢの場合、Ａの全てのメンバーもまたＢのメンバーでなければならないか、Ｂの全てのメンバーもまたＡのメンバーでなければならないか、または両方である（その場合、ＡおよびＢは同一である）。換言すれば、ドメイン境界は横断しない
【０１００】
同じトポロジ制限が必要とされる：
１．ドメイン境界は、ドメインの全てのメンバーを含まなければならない。
【０１０１】
トポロジの最大の柔軟性を可能にするために、以下のようにドメイン境界が描かれるように、トポロジコンポーネント（分割およびマージ）を分解することが可能でなければならないだけである。
２．ドメインの外側のものは何も、そのドメインにマージできない−すなわち、ドメイン境界が、ドメイン境界の内部にない任意のもののダウンストリームにある何ものをも含んではならない。
３．ドメイン境界は、ドメイン２分リンクを横切って存在する。
【０１０２】
最後に、ドメインメンバーシップに対する緩い制限によって導入される問題を補償するために、さらなるトポロジカル制限が課される：
４．その境界場所が、既に自分の外部共有可能性ドメインの外側にあるマスターを除いて、どの境界場所も、異なるマスター用の異なる数のドメインのためのものとすることができない。
【０１０３】
制限４は、バリアがドメイン境界を横断するときに、バリアが修正されなければならない場合、バリアは、バリアがその中に存在する全てのドメインについて境界を横断することを保証する。これは、修正オペレーションが、バリアの発信者に依存しないことを保証する。
【０１０４】
バリアが修正され、ノンブロッキングステータスを取得する場合、バリアは、２分リンク上に存在する場合、もちろんブロック解除される可能性があるが、いくつかの状況では、バリアは、交差結合リンク上に存在しても、ブロック解除される可能性がある。ドメイン境界を横断するリンクがドメイン２分リンクである、すなわち、それらのリンクが、そのドメインに関する限り２分である、すなわち、それらのリンクが、自分自身からの経路とマージせず、他のドメインから来る経路とだけマージする場合、バリアトランザクションの修正がそこで起こり、ブロック解除は、そのポイントから起こる可能性がある。
【０１０５】
制限２は、ドメインエグジット上で、指示されるドメインを共有不能に変更することに加えて、指示されるドメインが、ドメインエントリ上で共有不能でなくなるように変更される場合、放棄される可能性がある。これは、飽和しないドメインインジケータ、または、飽和が起こらないように入力されることができるドメインの数に対する制限を必要とする。さらに、これは、ドメインに入ったバリアが、指示される範囲の増加によって、そのドメインの非メンバーからのトランザクションのブロッキングであることをもたらすことになる。
【０１０６】
図９ａは、インターコネクト内へのドメインの上記実装を非常に概略的に示す。この図では、マスターは、インターコネクト内に示されるが、実際には、もちろんインターコネクトの外部にある。各マスター２００、２２０、２４０、２６０、２８０は、自分自身によって生成されたトランザクションだけに関連する、各マスターを直近で囲むストリームまたは共有不能ドメイン１２０、１２２、１２４、１２６、１２８を有する。そして、複数のマスターをまたは単に同じマスターを再び包囲することができる、いくつかの隣り合う階層レベルドメインが存在し、したがって、マスター２００および２２０は、両者の共有不能ドメインを有し、そして、両者の周りに内部ドメイン１２１を有し、一方、マスター２４０は内部ドメイン１２５を有し、マスター２６０は共有不能ドメイン１２６および内部ドメイン１２７を有し、マスター２８０は、共有不能ドメイン１２８および内部ドメイン１２９を有する。そして、それらを囲む外部ドメインが存在し、外部ドメインは、この場合、ドメイン３１および３３である。そして、インターコネクト全体であるシステムドメインが存在する。見てわかるように、ドメインは、互いの中に完全に存在し、全くインターセプトしない。ドメインからの全てのエグジット経路が２分経路であるという制約も存在する。ドメインにこうして制約をかけることによって、これらのドメインを出るトランザクションが、一定の方法でそうすることになることを確信でき、もしドメイン内でバリアが正しく機能するとすれば、トランザクションは、２分経路上を出るときに、正しい順序で出ることになる。これは、これらのドメインに関してバリアトランザクションを特定の方法で制御することを可能にする。
【０１０７】
図９ｂは、マスターＰ0およびＰ1を含むドメインに対するエグジットノード１３５を概略的に示す。このエグジットノード１３５は、制御回路７０によって制御され、このノードにおいて、任意のバリアトランザクションおよびそのバリアトランザクションが制御するトランザクションが正しい順序にあることがわかっている。ここで、先に述べたように、バリアトランザクションは、全てのトランザクションを必ず制御するのではなく、特定のマスターによって生成されるトランザクションまたは特定の機能のトランザクションを制御することができる。
【０１０８】
共有可能性ドメインの場合、バリアトランザクションは、特定のドメインからのトランザクションを制御するものと特徴付けられてもよい。そのため、バリアトランザクションは、全てのトランザクションを制御する点でシステムバリアトランザクションと特徴付けられてもよく、ストリームまたは共有不能ドメインからの、内部ドメインからの、または外部ドメインからのトランザクションを制御するものと特徴付けられてもよい。いずれにしても、バリアトランザクションは、ドメインを出るとき、この実装では、この階層レベルを低減されることができ、それにより、バリアトランザクションは、内部ドメインをエグジットしたときに外部ドメインバリアである場合、内部ドメインからのトランザクションを制御するバリアトランザクションに低減されることになり、外部ドメインをエグジットするとき、バリアトランザクションは、その制御の階層レベルを、トランザクションがそれによって遅延される必要がない共有不能ドメインに低減されることになる。このポイントで、トランザクションがこのバリアに関して順序付けされるため、これが可能であり、もし再収斂経路が存在しないとすれば、インターコネクトは、順序付けが正しいことを確信する。システムバリアは、いたる所で全てに常に適用されるため、ドメインをエグジットするときに変化しないことが留意されるべきである。
【０１０９】
ドメイン内に再収斂経路が存在する場合、いずれのノンブロッキングバリアも、再収斂領域を横切ってブロッキングにならなければならないことが留意されるべきである。再収斂経路を導入するさらなるインターコネクトが、ドメインを有するインターコネクトに接続される場合、バリアを制御するドメインシステムは、もはや働かない。ドメインおよびその階層構造に影響を与えるインターコネクトが付加される場合、システムは、バリアトランザクションがドメインをエグジットするときに、バリアトランザクション内の共有可能性ドメインインジケータが低減されないように制御される。
【０１１０】
特定のアドレスに対するいくつかのトランザクションは、再収斂領域を通る特定のルートに沿って通過するように制限されることができ、こうした場合、再収斂領域は、そのアドレスについて収斂性でないことが再収斂領域に関して留意されるべきである。インターコネクトは、トランザクションが全てのアドレスについて特定のアドレスまで特定のルートに沿って通過するように制約をかけることができ、こうした場合、いずれの再収斂領域も、交差結合領域として扱われ、交差結合領域は、再収斂領域が課す、システムに対するかなりの制約のために有利である場合がある。
【０１１１】
インターコネクトが構成される方法のせいで、共有不能バリアと特徴付けられないドメイン内の任意のバリアトランザクションは、別のドメインからのトランザクションに遭遇しないことになるため、遭遇する任意のドメインのトランザクションを事実上制御することになる。共有不能バリアと特徴付けられるバリアトランザクションは、それに続くトランザクションのうちのいずれのトランザクションも遅延させないことになる。しかし、いずれのトランザクションも、このトランザクションに関して再順序付けされることを許可されないことになる。こうして、インターコネクトドメインをこうして配置することによって、また、ドメインのエグジット上でインジケータの階層レベルを低減することによって、バリアトランザクションが、遭遇する(meet)全てのトランザクションを遅延させなければならないか、または、全く遅延させる必要がないかを判定する単純な方法は、制御コンポーネントが、インターコネクト内のどのドメインにいるかを正確に知る必要なしで使用される。
【０１１２】
ドメインについての考えられるさらなる実装は、「複雑な(complex)」実装である。これは、上記トポロジカル制限またはドメインメンバーシップ制限が、過度に制限的であると考えられる場合に使用されることができる。共有不能およびシステムドメインメンバーシップに対する要件が維持されると仮定すると、必要とされる情報は、バリア発行者と共有不能性ドメインのどんな組合せが、その場所でノンブロッキングと考えられることができるかという明示的に列挙されるリストである。そのため、図５ａおよび図５ｂに関して述べた実装の場合と同様にバリア自体からバリアのブロッキングの性質を決定することができるのではなく、バリアのブロッキングの性質は、その場所から決定され、ドメイン情報はその場所に記憶される。
【０１１３】
これは、それぞれの関連する場所の２つのリスト（１つは内部共有可能ドメイン用、１つは外部共有可能ドメイン用である）について行われることができる。各リストは、その場所がそのドメインの外側である集合またはバリア発信源を示す。あるいは、リストは、その場所が、その発信源のどの共有可能性ドメインの外側にあるかを示す２ビット値を有する信号源のリストが記憶されることができる。
【０１１４】
情報は示されるが、システムが再利用されるときにドメイン情報を表すための要件が異なるため、設計の再利用を可能にすることは、明らかに有意により複雑でかつより難しい。
【０１１５】
図１０は、こうしたインターコネクトの例を示す。このインターコネクトは、４つのマスターＳ0、Ｓ1、Ｓ3、またはＳ3からトランザクション要求を受信する。Ｓ0およびＳ1は内部ドメイン２００内にあり、一方、Ｓ2またはＳ3は内部ドメイン２０１内にあり、それらは全て、外部ドメイン２０２内にある。他のドメインを有する図示しない他のマスターが存在する。
【０１１６】
場所２１０では、その場所は、Ｓ２からやって来るトランザクションについて内部ドメイン内にあり、かつ、Ｓ0またはＳ1からやって来るトランザクションについて外部ドメイン内にある。そのため、この場所は、そのように特徴付けられることができ、バリアが受信されると、バリアがどのドメインに関連するか、したがって、そのバリアがそのドメインの外側にあるか否かが判定されることができる。そのため、Ｓ0、Ｓ1内部ドメインに適用されるバリアは、そのドメインの外側にあり、そのように、または、実施形態に応じて送出された早期応答として特徴付けられることができる。これは、明らかにとても複雑である。
【０１１７】
これの代替は、保守的で複雑な実装である。これは、複雑な実装のトポロジカルおよびドメインメンバーシップ自由度が必要とされるが、実装および再利用が回避されなければならない場合に使用される。この場合、ドメイン−場所固有の挙動を示さなければならない全てのコンポーネントに、それ自身、ドメインの特定のレベルにいると考えさせ、正しい挙動を達成させることが可能である。コンポーネントが、それ自身、コンポーネントがその中に存在する任意のドメインの最小ドメインにいると考える場合、バリアであって、実際にはそのドメインの外側にあり、そのドメイン内にあるバリアを補正する、バリアにとって、それは、挙動が保守的である（しかし正しい）ことになる。これ関して、バリア、ドメイン、またはトランザクションの特性が変更されうることが留意されるべきであり、それにより、もし特性がより制限的になるように変更されるとすると、特性がより効率的に扱われることが可能になる場合がある。そのため、内部と特徴付けられるバリアは、外部バリアとして扱われることができる。
【０１１８】
この手法によって、ドメインアウェアである必要があるコンポーネントは、単一ドメインを持つようにプログラムされるかまたは構成されることができるだけである（内部ドメインメンバーシップの安全なデフォルトによって、これは、パワーアップ時に使用されることができる）。
【０１１９】
そのため、この実装では、ドメイン内の場所は、その場所がそれのメンバーである、最も制限的な挙動を有するドメインの特性を有すると特徴付けられ、そのドメインは、共有不能ドメインを排除する最低階層レベルのドメインである。その場所のバリアトランザクションは、こうしたドメイン内にあるものとして扱われる。こうした配置構成では、ドメインは、他のドメインの部分集合であることを許可される。こうした配置構成では、インターコネクト内にバリアが存在するかどうかを知る必要なしで、バリアのブロッキング挙動を調整するために、バリアがドメインをエグジットするときにバリアに対する特徴付けを変更するのではなく、インターコネクト内の場所は、場所がそこに位置する最低階層または最小共有可能ドメインに応じて、特定のドメインに存在すると特徴付けられる。
【０１２０】
たとえば図１０の例では、場所２１０は、３つの異なるマークで特徴付けられる必要はなく、場所２１０が存在する最小共有可能ドメイン（内部である）で特徴付けられるだけである。そのため、この場合、内部または外部であるとして特徴付けられるいずれのバリアも、このドメイン内にあると考えられ、Ｓ0、Ｓ1内部ドメインからのバリアは、たとえそのドメイン内になくても、そのドメイン内にあると考えられることになる。そのため、早期応答は送出されることができず、インターコネクトのレーテンシは増加することになり、それは、この手法のマイナス面である。しかし、ドメインの特徴付けは、バリアがドメイン内にあるか否かについての判定であるため単純である。       
【０１２１】
図１１は、インターコネクト１００およびバリアがどのように扱われるかを全体的に示す。インターコネクト１００は、複数の経路を介して複数のマスター２００、２２０、２４０、および２６０を複数のスレーブ３００、３２０、３４０、および３６０に接続する。これらの経路は、たとえば４００に示すような交差結合部を有することができ、２つの経路はそれぞれ、各分割ポイント４１０および４２０で２つの経路に分割され、マージポイント４４０および４５０でマージする。たとえば５００で示すような２分経路が存在する可能性もある。これらは、インターコネクト内の２つのノード間の唯一の接続である経路であり、それにより、経路の切断は、事実上インターコネクトを２つのインターコネクトに分割することになる。
【０１２２】
トランザクションがこれらの異なる経路に沿って通過するとき、経路の性質、すなわち経路が交差結合かまたは２分であるかは、トランザクションの順序付けに影響を及ぼすことになる。たとえば交差結合経路は、トランザクションストリームを複数のトランザクションストリームに分割することになる分割ポイントで始まり、分割ポイント以前でトランザクションストリーム内で別のトランザクションより遅れていたトランザクションは、直前にそれより遅れていたトランザックションがそれ自身の目的地に到達する前に、その目的地に到達することができる。２分経路に沿って進むトランザクションは、たとえば６０で示される再順序バッファなどの再順序付けを可能にするある機能ユニットが存在しない限り、自分の順序を維持しなければならない。再順序バッファは、高優先度のトランザクションが、低優先度のトランザクション以前にスレーブに送出されることを可能にするようにトランザクションを再順序付けするために使用される。
【０１２３】
直前に分割された経路が共に戻る、再収斂経路と呼ばれる経路も存在し、これはまた、トランザクションストリーム内での再順序付けをもたらしうる。インターコネクト１００は、再収斂経路を全く持たない。
【０１２４】
トランザクションが、送出された順序と異なる順序で自分の目的地に到達できることは、後続のトランザクションが、直前のトランザクションに依存し、したがって、直前のトランザクションが最初に終了することを必要とする問題をもたらしうる。たとえば、トランザクションストリームにおいて同じアドレスに対してロード命令に先んじてストア命令が存在する場合、ストアがロード以前に実施されることが重要である、そうでなければ、ロードが不正確な値を読取ることになる。必要とされるトランザクションが必要とされる順序で到達することをプログラマが保証することを可能にするために、インターコネクト１００は、トランザクションストリーム内のバリアトランザクションに応答して、バリアに対してインターコネクト内のトランザクションの順序付けを維持するように構成される。そのため、バリアトランザクションは、互いに追いつくべきでないトランザクション間に挿入されることができ、これは、追いつきが起こらないことを保証することになる。
【０１２５】
インターコネクトは、トランザクションストリーム内で起こるバリアトランザクションに続くトランザクションを、バリアトランザクションに対する応答信号が受信されるまで、インターコネクト内を進捗することから遅延させることによって、これらのバリアトランザクションに応答することができる。応答信号は、後続の命令を送出することが安全であることを示す。経路をクリアする応答信号は、以前のトランザクションが全て終了したことを示す信号とすることができる、あるいは、その応答信号は、たとえば経路が２分経路である場合、経路に沿ってバリアトランザクションが通過したか、または、バリアが、早期クリア用の応答信号が送出されるノードに達し、ブロッキングが再び実施されることを示す信号とすることができるだけであることが留意されるべきである。
【０１２６】
インターコネクトはまた、直前のトランザクションより遅れて種々の経路に沿ってバリアトランザクションを単に送出することができ、それにより、バリアが、あるポイントに達したとして検出されると、直前の全てのトランザクションが、このポイントを既に通過したことをインターコネクトが確信できる。インターコネクトが、ストリーム内にバリアを送信するだけか、または、トランザクションを遅延させるかは、バリアの性質およびバリアがブロッキングバリアであるか否かによる。
【０１２７】
ブロッキングバリアは、ブロッキングバリアが制御する、トランザクションストリーム内でブロッキングバリアより遅れたトランザクションが、アップストリームのどこかでブロックされているバリアであり、したがって、他のトランザクションは、他のトランザクションが、必ずしもブロッキングバリアより遅れたままである必要があるトランザクションでないため、ブロッキングバリアに追いつくことができる。しかし、バリア自体は、バリアが制御する、バリアに先立つどのトランザクション要求にも追いつくことができない。ブロッキングバリアは、早期応答ユニットによってブロック解除されることができる。これは、以下でより詳細に述べられる。
【０１２８】
ノンブロッキングバリアは、トランザクション要求が全くブロックされておらず、したがって、ノンブロッキングバリアが制御するトランザクション要求が、このバリアトランザクション要求の正しい側に留まらなければならないバリアである。アップストリームブロッキングが存在しないため、ノンブロッキングバリアは、早期応答ユニットによってブロック解除されることができない。後で明らかになるように、バリアの異なる性質は、ブロッキングまたはノンブロッキングインジケータによって示されることができる。あるいは、システムは、１つのタイプのバリアをサポートできるだけであり、その場合、インジケータは必要とされない。あるいは、１つのバリアは、デフォルトバリアタイプであることができ、この場合、他のタイプのバリアだけが、インジケータを備える。あるいは、全てのバリアがブロッキングバリアとして働くインターコネクトの領域およびバリアが全てノンブロッキングバリアとして働く領域が存在することができる。こうした場合、インターコネクトは、バリアがインジケータを全く保持しないように構成されることができるが、インターコネクトは、インターコネクト内のバリアの場所に応じてある方法でバリアを扱うことになる。
【０１２９】
バリアトランザクションの進捗は、制御回路７０によって制御される。これは、この図において単一ブロックとして概略的に示される、しかし実際には、制御回路７０は、制御回路７０が制御する回路に隣接してインターコネクト全体を通して分配される。そのため、たとえば各分割ポイントにおいて、バリアトランザクションが受信されると、バリアトランザクションが複製され、複製バリアトランザクションが、分割ポイントから各エグジット経路に下方に送出されることを、少なくともいくつかの実施形態で保証する、ある制御回路が存在することになる。複製されたバリアが、１つのエグジット経路以外の全ての経路で下方に送出される他の実施形態が存在する可能性があり、これは後で述べられる。制御回路は、バリアトランザクションが、複製されており、したがって、元のバリアトランザクションに続き、元のバリアトランザクションに続くままでなければならないトランザクションの送信のために経路をクリアできる以前に、複製された各バリアトランザクションからの応答信号を必要とする可能性があることを知っている。
【０１３０】
その最も単純な形態では、バリアトランザクションは、マスター、たとえばマスター２００によって発行され、マスター２００は、その後、マスター２００が後続のトランザクションを送信できることを示す、インターコネクトからの応答信号を受けるまで後続の全てのトランザクションをブロックする。あるいは、バリアは、インターコネクトへのエントリに直近の制御回路によって発行されることができる。バリアトランザクションに先立つトランザクションおよびバリアトランザクションは、インターコネクトに送信され、制御回路７０が、これらのトランザクションのルーティングを制御する。そのため、分割ポイント４２０において、バリアトランザクションは、複製され、マージポイント４４０および４５０に進む。このポイントにおいて、トランザクションは、２分経路５００および５２０に入り、トランザクションがこれらの経路上でのバリアに対する自分の位置を変更できないため、バリアトランザクションがこれらの経路の一方の出発点に到達すると、バリアトランザクションの直前のトランザクションが全て、バリアトランザクションに先んじており、その経路に沿ってバリアトランザクションに先んじたままであることがわかっている。そのため、早期応答信号が、クリア用ユニット８００によって送出され、これらの信号の両方を受信することに応答して、分割ポイント４２０の制御回路は、早期応答信号をマスター２００に送出し、マスター２００は、その後、マスター２００によって制御されるバリアトランザクションに続くトランザクションをブロック解除し、それらをインターコネクトに送信できる。
【０１３１】
ユニット８００が早期に応答することによって、マスター２００は、バリアトランザクションがスレーブに達したことを示す、スレーブからの応答を待つのに比べてずっと短い期間、ブロックされ、こうして、バリアトランザクションによって導入されるレーテンシが低減される。
【０１３２】
経路５００に沿って通過するバリアトランザクションは、２分経路５００以外の経路に沿って進むことなく、インターコネクトをエグジットしスレーブ３００に到達する。したがって、このバリアトランザクションに応答して再びブロックする必要性は存在しない。その理由は、一旦バリアがクリア用ユニット８００を通過すると、バリアに先立つトランザクションが、そこに留まらなければならないからである。しかし、経路５２０に沿って送出されるバリアトランザクションが、さらなる交差結合セクション４８０に達し、分割ポイント４９０におけるバリアトランザクションの受信に応答して、この分割ポイントに関連する制御回路７０は、バリアトランザクションを複製し、それを、両方のエグジット経路の下方に送出し、また、バリアに続いて起こり、バリアによって制御されるトランザクション要求に対して、エグジット経路の後のエントリ経路をブロックする。そのため、後続のこれらのトランザクションは、いくつかの実施形態では、複製された全てのバリアトランザクションに対する応答信号が受信されるまで、ブロッキング回路９００内のバッファに保持されることによってストールされる。そのため、複製されたバリアトランザクションは、交差結合回路４００を通過し、交差結合回路をエグジットして、さらに２分経路５２０および５００に繋がり結合する。先に述べたように、２分経路は、バリアに対する順序でトランザクションを保持するため、早期応答する、クリア用ユニット８００によって２分経路の開始点から送出されることができる。ブロッキング回路９００は、分割ポイント４９０からバリアトランザクションに対する応答を受信するために待つ。分割ポイント４９０は、バリアトランザクションを複製し、２つのバリアトランザクションを、各経路を下方に送出する。分割ポイント４９０は、送信した２つのバリアトランザクションのそれぞれからの応答を受信するまで、応答をブロッキング回路９００に返送しない。この応答に応答して、ブロッキング回路９００は、そのバッファに保持される後続の任意のトランザクションを送信可能にする。クリア用回路が、インターコネクトに対するエグジットの前の最後の２分経路上にあるため、いくつかのバリアタイプについてさらなるブロッキングについての必要性は存在しない。
【０１３３】
先に述べたように、２分経路５２０上に再順序バッファ６００が存在し、このバッファは、バリアに応答するように構成され、バリアによって制御されるトランザクションが、バリアに対して再順序付けされることを可能にしない。
【０１３４】
先の説明では、バリアに遅れバリアに続く全てのトランザクションを維持するために、バリアが存在することが仮定される。しかし、いくつかの実施形態では、後でより詳細にわかるように、バリアは、後続のトランザクションの部分集合、おそらく特定のマスターからのトランザクションまたは書込みトランザクションなどの特定の機能を有するトランザクションがバリアに追いつくことを止める必要があるだけである。こうした場合、制御回路７０およびブロッキング回路９００は、トランザクションのこの部分集合を単に遅延させ、他のトランザクションが進むことを可能にすることになる。さらに、分割ポイントにおいて、バリアによって制御されるトランザクションが、経路の一方を下方に進まない場合、複製されたバリアは、その経路を下方に送出される必要はない。
【０１３５】
本発明の種々のさらなる態様および特徴は、添付特許請求の範囲で規定される。本発明の範囲から逸脱することなく、前述の本明細書の実施形態に対して種々の変更が行われることができる。
【符号の説明】
【０１３６】
１０、１２、８２  プロセッサ
２０  メモリデバイス
２５  インターコネクト
３１、３３  ドメイン
４０  電力コントローラ
４５  メモリユニット
５０  データ処理システム
７０  制御回路
７２、５２  保持回路
８０  イニシエータデバイス
８５、８７  ポート
９０  メモリ管理ユニット
９５  変換ルックアサイドバッファ
１００  バリア発生装置
１１０  応答発生装置
１２０、１２２、１２４、１２６、１２８  共有不能ドメイン
１２１、１２５  内部ドメイン
１３５  エグジットノード
２００、２２０、２４０、２６０、２８０  マスター
３００  スレーブ
４２０、４９０  分割ポイント
４４０、４５０  マージポイント
５００、５２０  ２分経路
６００  再順序バッファ
８００  クリア用ユニット
９００  ブロッキング回路
【図１】
2013507710.tif 000003
【図２】
2013507710.tif 000004
【図３】
2013507710.tif 000005
【図４】
2013507710.tif 000006
【図５】
2013507710.tif 000007
【図６】
2013507710.tif 000008
【図７】
2013507710.tif 000009
【図８】
2013507710.tif 000010
【図９ａ】
2013507710.tif 000011
【図９ｂ】
2013507710.tif 000012
【図１０】
2013507710.tif 000013
【図１１】
2013507710.tif 000014
【国際調査報告】
2013507710.tif 000015
2013507710.tif 000016