(57)【要約】      （修正有）【課題】長時間に亘って相互作用プロセスの一貫した挙動を確保することを可能にする仕組みを提供する。【解決手段】インターコネクト回路は複数のパスのうちの少なくとも１つに沿って、データ・ストア・メインテナンス操作を送信し、引き続きバリア・トランザクション要求を送信することによりデータ・ストア・メインテナンス操作の受信に応答するように構成され、トランザクション要求のストリームの中でデータ・ストア・メインテナンス要求の後に続く少なくともいくつかのトランザクション要求がバリア・トランザクション要求によってデータ・ストア・メインテナンス要求の後に保持されるように、いくつかのトランザクション要求の順序付けを維持するように構成され、少なくとも１つの入力から受信されたトランザクション要求を少なくとも１つの出力へルーティングする制御回路と、を備える。【選択図】図２
2011138481.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１台のイニシエータ機器が少なくとも１台の受信機器にアクセスする際に経由することがあるデータ経路を提供するように構成されている、データ処理装置用のインターコネクト回路であって、
前記少なくとも１台のイニシエータ機器からトランザクション要求を受信する少なくとも１つの入力と、
トランザクション要求を前記少なくとも１台の受信機器へ出力する少なくとも１つの出力と、
少なくとも１個の前記トランザクション要求が前記データ処理装置の内部でデータ・ストアにデータ・ストア・メインテナンス操作が実行されることを要求するデータ・ストア・メインテナンス要求を備える前記トランザクション要求を前記少なくとも１つの入力と前記少なくとも１つの出力との間で送信する複数のパスと、
複数のパスのうちの少なくとも１つのパスに沿って、データ・ストア・メインテナンス要求および引き続くバリア・トランザクション要求を送信することにより前記データ・ストア・メインテナンス要求の受信に応答するように構成され、トランザクション要求のストリームの中で前記データ・ストア・メインテナンス要求に先行する少なくともいくつかのトランザクション要求が前記バリア・トランザクション要求によって前記データ・ストア・メインテナンス要求より前方に保持され、トランザクション要求の前記ストリームの中で前記データ・ストア・メインテナンスに後に続く少なくともいくつかのトランザクション要求が前記バリア・トランザクション要求によって前記データ・ストア・メインテナンス要求より後方に保持されるように、前記複数のパスのうちの少なくとも１つのパスに沿って進むトランザクション要求のストリームの内部で前記バリア・トランザクション要求に関して少なくともいくつかのトランザクション要求の順序付けを維持するように構成され、前記少なくとも１つの入力から受信された前記トランザクション要求を前記少なくとも１つの出力へルーティングする制御回路と、
を備える、インターコネクト回路。
【請求項２】
前記制御回路が前記バリア・トランザクション要求に応答し、前記バリア・トランザクションをクリアする応答信号の受信まで前記複数のパスのうちの少なくとも１つのパスに沿って前記少なくともいくつかのトランザクション要求の伝送を遅らせることにより、前記バリア・トランザクション要求の後に続く前記少なくともいくつかのトランザクション要求の順序付けを維持するように構成されている、請求項１に記載のインターコネクト回路。
【請求項３】
前記データ・ストア・メインテナンス要求がキャッシュ・メインテナンス要求を備え、前記データ処理装置が少なくとも１つのメモリと前記少なくとも１つのメモリに記憶されたデータ項目のローカルコピーを記憶する１つ以上のキャッシュとを備え、前記キャッシュ・メインテナンス要求および前記バリア・トランザクション要求を前記１つ以上のキャッシュのうちの少なくとも１つのキャッシュへ送信するように構成されている、請求項１に記載のインターコネクト回路。
【請求項４】
前記制御回路が前記バリア・トランザクション要求に応答し、前記バリア・トランザクションをクリアする応答信号の受信まで前記複数のパスのうちの少なくとも１つのパスに沿って前記少なくともいくつかのトランザクション要求の伝送を遅らせることにより、前記バリア・トランザクション要求の後に続く前記少なくともいくつかのトランザクション要求の順序付けを維持するように構成され、
前記少なくとも１つのキャッシュから前記応答信号を受信するように構成されている、請求項３に記載のインターコネクト回路。
【請求項５】
前記１つ以上のキャッシュのうち、前記キャッシュへの入力で前記バリア・トランザクション要求を保持し、さらなるトランザクション要求を受信しないように構成された少なくとも１つのキャッシュを備え、前記キャッシュ・メインテナンス要求がさらなるトランザクション要求を安全に受信できる時点まで処理されたことを判定する前記キャッシュと関連付けられた制御回路に応答して、前記少なくとも１つのキャッシュが前記さらなるトランザクション要求を受信するように構成されている、請求項３に記載のインターコネクト回路。
【請求項６】
前記キャッシュ・メインテナンス要求がさらなるデータ・ストアへ送信されるべきトランザクション要求を始動させる場合、前記時点が前記キャッシュ・メインテナンスの操作から流れ出るすべてのトランザクションがさらに送信された時点を備え、前記制御回路は前記キャッシュ・メインテナンスの操作から流れ出る前記トランザクションのさらに後方で前記バリア・トランザクション要求を送信するように構成されている、請求項５に記載のインターコネクト回路。
【請求項７】
前記キャッシュ・メインテナンス要求がさらなるトランザクション要求を始動させない場合、前記制御回路は、前記キャッシュ・メインテナンス要求がさらなるトランザクション要求を安全に受信できる前記時点まで処理されたという判定に応答して、前記バリア・トランザクション要求を除去するように構成されている、請求項５に記載のインターコネクト回路。
【請求項８】
前記キャッシュ・メインテナンス要求が１個以上のアドレスへ向けられ、前記バリア・トランザクション要求が対応する１個以上のアドレスを備え、前記制御回路が前記複数のパスのうちの少なくともいくつかのパスに沿って前記バリア・トランザクション要求および前記キャッシュ・メインテナンス要求をルーティングするように構成されている、請求項３に記載のインターコネクト回路。
【請求項９】
前記キャッシュ・メインテナンス要求の後に続き、前記バリア・トランザクション要求によって前記キャッシュ・メインテナンス要求の後方に保持された前記少なくともいくつかのトランザクション要求が前記１個以上のアドレスへ向けられたトランザクション要求を備える、請求項８に記載のインターコネクト回路。
【請求項１０】
前記複数のパスのうちの前記少なくともいくつかのパスが前記１個以上のアドレスのためのデータをキャッシュできる前記１個以上のキャッシュのうちのいずれかのキャッシュへのパスである、請求項８に記載のインターコネクト回路。
【請求項１１】
前記制御回路が前記複数のパスのうちの少なくともいくつかのパスに沿って前記バリア・トランザクション要求および前記キャッシュ・メインテナンス要求をルーティングするように構成され、前記複数のパスのうちの前記少なくともいくつかのパスが前記キャッシュ・メインテナンス要求を開始する前記イニシエータがデータをキャッシュ可能であるいずれかのキャッシュへのパスである、請求項１に記載のインターコネクト回路。
【請求項１２】
前記複数のパスのうちの少なくともいくつかのパスがノードから分岐する分岐パスであり、前記制御回路が前記データ・ストア・メインテナンス要求および前記引き続くバリア・トランザクション要求を複製し、前記トランザクション要求がルーティングされる前記分岐パスのうちの少なくともいくつかの分岐パスに沿って送信するように構成されている、請求項１に記載のインターコネクト回路。
【請求項１３】
前記制御回路が、前記複製されたバリア・トランザクション要求の全部に対し応答する応答信号の受信後まで、前記バリア・トランザクション要求の後に続く前記少なくともいくつかのトランザクション要求の伝送を遅らせるように構成されている、請求項１２に記載のインターコネクト回路。
【請求項１４】
前記制御回路が前記インターコネクトの内部の直列化の時点に位置している応答信号生成器を備え、その時点を越えると、トランザクション要求は再順序付けが不可能であり、前記応答信号生成器が前記バリア・トランザクション要求への前記応答信号を生成し、前記バリア・トランザクション要求をさらに送信しないように構成されている、請求項１に記載のインターコネクト回路。
【請求項１５】
前記制御回路が、前記バリア・トランザクション要求の受信に応答して、前記バリア・トランザクション要求が受信された入口パスに沿って前記応答信号を発行する応答信号生成器と、前記バリア・トランザクション要求の受信に応答して、前記応答信号の受信まで、前記バリア・トランザクション要求が送信された、前記バリア・トランザクション要求の後に続く前記少なくともいくつかのトランザクション要求へのすべての出口パスをブロックするブロッキング回路とを備える、請求項１に記載のインターコネクト回路。
【請求項１６】
前記応答信号生成器が前記ブロッキング回路の直ぐ上流に位置している、請求項１５に記載のインターコネクト回路。
【請求項１７】
前記複数のパスが前記インターコネクト回路の内部で２個のノードの間に通信パスだけを備える少なくとも１つのバイセクションパスを備え、前記２個のノードが前記バイセクションパスへの入口ノードおよび出口ノードを備え、
前記応答信号生成器が前記入口ノードに位置し、前記バリア・トランザクション要求の受信に応答して、前記バリア・トランザクション要求が受信された前記入口パスに沿って前記応答信号を送信し、
前記ブロッキング回路が前記出口ノードに位置し、前記バリア・トランザクション要求の受信に応答して、前記バリア・トランザクション要求が送信されたすべての出口パスを前記バリア・トランザクション要求の後に続く前記少なくともいくつかのトランザクション要求までブロックする、
請求項１５に記載のインターコネクト回路。
【請求項１８】
前記少なくとも１台のイニシエータ機器からトランザクション要求を受信する前記少なくとも１つの入力のうちの少なくとも１つを備える少なくとも１つのドメインを備え、ドメイン境界が前記少なくとも１つの入力から受信されたトランザクション要求の何らかのマージが前記少なくとも１つのドメインの内部で行われるように配置され、
前記バリア・トランザクション要求が前記少なくとも１つのドメインに適用されるかどうかを指示するインジケータを備え、
前記制御回路が前記少なくとも１つのドメインに適用されることを指示する前記インジケータを備える前記バリア・トランザクション要求の検出に応答し、前記バリア・トランザクションが前記ドメインの外側であることを指示する指標を提供するため前記少なくとも１つのドメインの外側にある、
請求項１に記載のインターコネクト回路。
【請求項１９】
前記指標が、前記バリア・トランザクション要求が今度は適用される前記ドメインの外側であることを指示する前記バリア・トランザクション要求に適用されたインジケータを備える、請求項１８に記載のインターコネクト回路。
【請求項２０】
前記制御回路が、所定のタイプのバリア・トランザクション要求が、前記バリアが適用されることを前記インジケータが示すドメインの内部にある場合、この所定のタイプのバリア・トランザクション要求に応答することなく、前記所定のタイプのバリア・トランザクション要求が前記ドメインの外側にある場合、前記所定のタイプのバリア・トランザクション要求に応答するように構成されている応答信号生成器を備える、請求項１８に記載のインターコネクト回路。
【請求項２１】
前記インターコネクト回路が複数のドメインを備え、前記複数のドメインのうちの１つずつが前記少なくとも１台のイニシエータ機器からトランザクション要求を受信する前記少なくとも１つの入力のうちの少なくとも１つの入力を備え、ドメイン境界が前記ドメインのうちの１つのドメインの内部で前記少なくとも１つの入力から受信されたトランザクション要求のマージが前記ドメインのうちの前記１つのドメインの内部で行われるように配置されている、請求項１８に記載のインターコネクト回路。
【請求項２２】
前記複数のドメインのうちの少なくとも１つのドメインがより大規模なドメインの一部であり、入力が下位階層のドメインのメンバである場合、入力が同様に高位階層のドメインのメンバであるように、入力毎にドメインの階層が存在し、トランザクションが前記高位階層の前記ドメインから出るときと同時またはそれ以前に前記トランザクションが前記下位階層の前記ドメインから出る、請求項２１に記載のインターコネクト回路。
【請求項２３】
前記ドメインが、前記入力のうちの１つの入力だけを収容する非共用可能ドメインおよび前記入力の全部を具備するシステムドメインと、少なくとも１つのさらなるタイプの共用可能ドメインとを備え、非共用可能ドメインの内部の入力が前記入力に対する前記少なくとも１つのタイプの共用可能ドメインの内部に同時に存在し、前記少なくとも１つのタイプの共用可能ドメインの内部の入力が前記入力に対する前記システムドメインの内部に同様に存在するように、入力毎にドメイン階層が存在する、請求項２２に記載のインターコネクト回路。
【請求項２４】
前記データ処理装置が複数の階層レベルからなる複数のキャッシュを備え、前記バリア・トランザクション要求が前記複数の階層レベルのうちの少なくとも１つの階層レベルを指示するインジケータを備え、前記複数の階層レベルのうちの前記少なくとも１つの階層レベルのキャッシュが前記バリア・トランザクション要求の受信に応答して応答信号を生成するように構成されている、請求項１に記載のインターコネクト回路。
【請求項２５】
インターコネクトを経由してイニシエータ機器からトランザクション要求を受信する受信機器であって、
前記インターコネクトから前記トランザクション要求を受信する入力と、
キャッシュと、
所定のタイプのバリア・トランザクション要求に対する応答信号を生成する応答信号生成器と、
を備え、
前記入力でのキャッシュ・メインテナンス要求と引き続く前記所定のタイプのバリア・トランザクション要求のうちの１つとの受信に応答し、前記バリア・トランザクション要求に対する前記応答を生成するように構成され、データ・コヒーレンシを落とすことなく、前記受信機器がさらなるトランザクション要求を受信し処理するために、前記キャッシュが前記キャッシュに十分なキャッシュ・メインテナンス操作を実行したと判定したとき、前記応答信号を発行するように構成されている、
受信機器。
【請求項２６】
キャッシュ・メインテナンス要求の後に続くさらなるタイプのバリア・トランザクション要求の受信に応答して、前記受信機器への入力で前記バリア・トランザクション要求を保持し、さらなるトランザクション要求を受信することがなく、前記キャッシュがデータ・コヒーレンシを落とすことなくさらなるトランザクション要求を受信し処理するために前記キャッシュのための十分なキャッシュ・メインテナンス操作を実行したことを前記受信機器が判定するとすぐに、前記バリア・トランザクション要求がさらに送信され、前記入力がさらなるトランザクション要求を受信する、請求項２５に記載の受信機器。
【請求項２７】
データ・ストア・トランザクション要求を含むトランザクション要求を生成し、インターコネクトを経由して受信機器へ発行するイニシエータ機器であって、
前記インターコネクトを通過するトランザクション要求のストリームの内部の少なくともいくつかのトランザクション要求の順序付けが、前記バリア・トランザクション要求の後に現れる前記トランザクション要求のうちの少なくともいくつかに関して、前記トランザクション要求のストリームの中で前記バリア・トランザクション要求の前に現れる前記トランザクション要求のうちの少なくともいくつかの再順序付けを許可しないことにより維持されることを前記インターコネクトに指示するバリア・トランザクション要求を生成するように構成されているバリア・トランザクション要求生成器を備え、
前記データ・ストア・メインテナンス・トランザクション要求と引き続く前記バリア・トランザクション要求とを発行するように構成されている、
イニシエータ機器。
【請求項２８】
前記バリアの生成器が、前記データ・ストア・メインテナンス・トランザクション要求に依存して、前記生成されたバリア・トランザクション要求にブロッキング・インジケータまたは非ブロッキング・インジケータを設けるように構成されている、請求項２７に記載のイニシエータ機器。
【請求項２９】
前記ブロッキング・インジケータを用いて前記バリア・トランザクション要求を生成する前記バリア・トランザクション要求生成器に応答して、前記イニシエータ機器が前記ブロッキング・バリア・トランザクション要求に対する応答を受信するまで、前記インターコネクトへの前記バリア・トランザクション要求の後に現れる前記少なくともいくつかのトランザクション要求を発行することなく、
前記非ブロッキング・インジケータを用いて前記バリア・トランザクション要求を生成する前記バリア・トランザクション要求生成器に応答して、前記インターコネクトへの前記バリア・トランザクション要求の後に現れる前記少なくともいくつかのトランザクション要求を発行するように構成されている、
請求項２８に記載のイニシエータ機器。
【請求項３０】
前記バリアの生成器が、前記バリア・トランザクション要求が適用される前記インターコネクトの内部のドメインを表すドメイン・インジケータを前記生成されたバリア・トランザクション要求に設けるように構成されている、請求項２７に記載のイニシエータ機器。
【請求項３１】
データ・ストア・メインテナンス・トランザクション要求を含むトランザクション要求を生成し、インターコネクトを経由して受信機器へ発行する少なくとも１台のイニシエータ機器を含む複数のイニシエータを備えるデータ処理装置であって、
前記インターコネクトを通過するトランザクション要求のストリームの内部の少なくともいくつかのトランザクション要求の順序付けが、前記バリア・トランザクション要求の後に現れる前記トランザクション要求のうちの少なくともいくつかに関して、前記トランザクション要求のストリームの中で前記バリア・トランザクション要求の前に現れる前記トランザクション要求のうちの少なくともいくつかの再順序付けを許可しないことにより維持されることを前記インターコネクトに指示するバリア・トランザクション要求を生成するように構成されているバリア・トランザクション要求生成器と、
前記データ・ストア・メインテナンス・トランザクション要求と引き続く前記バリア・トランザクション要求とを発行するように構成されている前記イニシエータ機器と、
少なくとも１台の受信機器、および前記複数のイニシエータと前記受信機器との間にデータ経路を提供する請求項１に記載のインターコネクト回路と、
を備えるデータ処理装置。
【請求項３２】
少なくとも１台のイニシエータ機器からインターコネクト回路を経由して少なくとも１台の受信機器へデータをルーティングする方法であって、
少なくとも１つのトランザクション要求が、データ・ストア・メインテナンス操作がデータ処理装置の内部でデータ・ストアに実行されることを要求するデータ・ストア・メインテナンス要求を備え、前記少なくとも１台のイニシエータ機器からトランザクション要求を少なくとも１つの入力で受信し、
少なくとも１つの出力の方へ向かう複数のパスのうちの少なくとも１つに沿って前記トランザクション要求を送信し、
前記データ・ストア・メインテナンス要求の受信に応答して、
前記複数のパスのうちの少なくとも１つのパスに沿って前記データ・ストア・メインテナンス要求および引き続くバリア・トランザクション要求を送信し、
前記データ・ストア・メインテナンス要求の前方でトランザクション要求の前記ストリームの中の前記データ・ストア・メインテナンス要求に先行する少なくともいくつかのトランザクション要求と、前記データ・ストア・メインテナンス要求の後方でトランザクション要求の前記ストリームの中の前記データ・ストア・メインテナンス要求に後続する少なくともいくつかのトランザクション要求とを保持するために、前記バリア・トランザクション要求を使用することにより前記複数のパスのうちの前記少なくとも１つのパスに沿って進むトランザクション要求のストリームの内部で前記バリア・トランザクション要求に関して少なくともいくつかのトランザクション要求の順序付けを維持する、方法。
【請求項３３】
データ・ストア・メインテナンス・トランザクション要求を生成し、インターコネクトを経由して受信機器へデータ・ストア・メインテナンス・トランザクション要求を発行する方法であって、
前記データ・ストア・メインテナンス・トランザクション要求のうちの１つを生成し、その後、前記インターコネクトを通過するトランザクション要求のストリームの内部で少なくともいくつかのトランザクション要求の順序付けが前記バリア・トランザクション要求の後に現れる前記トランザクション要求のうちの少なくともいくつかのトランザクション要求に関してトランザクション要求の前記ストリームの中で前記バリア・トランザクション要求の前に現れる前記トランザクション要求のうちの少なくともいくつかのトランザクション要求の再順序付けを許可しないことによって維持されるべきことを前記インターコネクトに指示するバリア・トランザクション要求を生成し、
前記データ・ストア・メインテナンス・トランザクション要求および引き続く前記バリア・トランザクション要求を発行する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュおよびメモリの両方を含むデータ・ストアを有するデータ処理装置の分野に関する。より具体的には、本発明は、マスタのような１台以上のイニシエータ機器がスレイブのような１台以上の受信機器にアクセスする際に経由することがあるデータ経路を提供するこれらのデータ処理装置用のインターコネクト回路に関する。
【背景技術】
【０００２】
インターコネクトはデータ処理システムにおいて異なるコンポーネントの間を接続するため使用される。インターコネクトは、１台以上のイニシエータ機器が１台以上の受信機器にアクセスする際に経由することがあるデータ経路を提供する。イニシエータ機器は、単にトランザクション要求を生成する機器であり、従って、プロセッサのようなマスタでもよく、または、別のインターコネクトでもよい。受信機器は、単にトランザクションを受信する機器であり、周辺機器のようなスレイブでもよく、または、同様に別のインターコネクトでもよい。
【０００３】
システムは、複数のプロセッサが互いに、および複数の機器と通信するとともに、そして異なるストレージ設備が高速データアクセスを提供するキャッシュおよびメモリの両方を含むためにより複雑になるので、マルチプロセッサ・システムのためのソフトウェアを書く著作者は、長時間に亘って相互作用プロセスの一貫した挙動を確保するソフトウェアを書くために、アーキテクチャのトポロジおよびレイテンシについての詳細な知識を必要とする。この詳細な知識がある場合でさえ、この一貫性は達成するのに多大な努力およびコストを使う場合に限り実現される。
【０００４】
プログラマが任意のアーキテクチャのための一般的な方法で長時間に亘って相互作用プロセスの一貫した挙動を確保することを可能にする仕組みを提供することが望ましい。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
任意のアーキテクチャをもつ複雑なシステムでは、データ・ストア・メインテナンス操作がいつ完了するかを知ることが重要であるが、それにもかかわらず、システムはデータ・ストアの台数または配置について確実にはわからない場合、台数または配置を追跡することが難しいことがあるので、これらの操作と関連付けられた特有の問題がある。
【０００６】
例えば、少なくともいくつかのキャッシュが２台以上のマスタによってアクセス可能である複数のキャッシュを有するシステムでは、キャッシュを維持するいずれかのキャッシュ・メインテナンス操作に対し、キャッシュのアーキテクチャ、特に、台数および配置についての詳細な知識無しでこのメインテナンスが完了するときを判定することは難しい。よって、データ・ストア・メインテナンス操作は、アーキテクチャについてわからないシステムを設計するときに特有の問題をもたらす。
【課題を解決するための手段】
【０００７】
発明の第１の態様は、少なくとも１台のイニシエータ機器が少なくとも１台の受信機器にアクセスする際に経由することがあるデータ経路を提供するように構成されている、データ処理装置用のインターコネクト回路であって、前記少なくとも１台のイニシエータ機器からトランザクション要求を受信する少なくとも１つの入力と、トランザクション要求を前記少なくとも１台の受信機器へ出力する少なくとも１つの出力と、少なくとも１個が前記データ処理装置の内部でデータ・ストアにデータ・ストア・メインテナンス操作が実行されることを要求するデータ・ストア・メインテナンス要求を備える前記トランザクション要求を前記少なくとも１つの入力と前記少なくとも１つの出力との間で送信する複数のパスと、複数のパスのうちの少なくとも１つに沿って、データ・ストア・メインテナンス要求を送信し、引き続きバリア・トランザクション要求を送信することによりデータ・ストア・メインテナンス要求の受信に応答するように構成され、トランザクション要求の前記ストリームの中で前記データ・ストア・メインテナンス要求に先行する少なくともいくつかのトランザクション要求が前記バリア・トランザクション要求によって前記データ・ストア・メインテナンス要求より前に保持され、トランザクション要求の前記ストリームの中で前記データ・ストア・メインテナンスに後に続く少なくともいくつかのトランザクション要求が前記バリア・トランザクション要求によって前記データ・ストア・メインテナンスより後に保持されるように、前記複数のパスのうちの少なくとも１つに沿って進むトランザクション要求のストリームの内部でバリア・トランザクション要求に関して少なくともいくつかのトランザクション要求の順序付けを維持するように構成され、前記少なくとも１つの入力から受信されたトランザクション要求を前記少なくとも１つの出力へルーティングする制御回路と、を備える、インターコネクト回路を提供する。
【０００８】
本発明は、データ・ストア・メインテナンス操作がデータ処理システムに与える問題を認識し、バリアを用いてこれらの問題を扱う。インターコネクトがバリアを越える少なくともいくつかの命令の再順序付けを許可しないことによりバリア・トランザクション要求に応答するためセットアップされる場合、バリアは、データ・ストア・メインテナンスより後のトランザクションがデータ・ストア・メインテナンスより前に実行されることを阻止するために、データ・ストア・メインテナンス操作より後に使用可能である。さらに、インターコネクトは、データ・ストア・メインテナンス操作の正確かつ一貫した遂行を確実にするため、バリアに応答してセットアップされるだけでよく、存在するキャッシュとキャッシュの位置についての知識は分からなくてもよい。その上、インターコネクトが他の理由のためバリアに応答して作用するためセットアップされる場合、この機能性は、有意で付加的なオーバーヘッドの必要性無しにデータ・ストア・メインテナンス操作を効果的に取り扱うために使用可能である。
【０００９】
順序付けは、少なくともいくつかのトランザクション要求がバリアを追い越す、または、バリアによって追い越されることを許可しないことにより維持可能であるので、バリアはトランザクション要求のストリームの中に位置し、トランザクション要求の周りの順序付けを維持する。
【００１０】
いくつかの実施形態では、前記制御回路は、前記バリア・トランザクションをクリアする応答信号の受信まで前記複数のパスのうちの１つに沿って前記少なくともいくつかのトランザクション要求の伝送を遅らせることにより、前記バリア・トランザクション要求の後に続く前記少なくともいくつかのトランザクション要求の順序付けを維持するため前記バリア・トランザクション要求に応答するように構成されている。
【００１１】
バリアより後に保たれるべき少なくともいくつかのトランザクション要求がおそらく回路を妨げることにより遅らせられるシステムでは、バリアより後に留まるべきトランザクション要求は既に上流で遅らせられているので、バリアより後にあるトランザクション要求は、バリアによって順序が維持されるべきトランザクション要求が存在しないとき、バリアを追い越すことが許可される可能性がある。しかし、バリアの前にあるすべてのトランザクション要求はバリアの前に保持されなくてはならない。
【００１２】
いくつかの実施形態では、前記データ・ストア・メインテナンス要求はキャッシュ・メインテナンス要求を備え、前記データ処理装置は、少なくとも１つのメモリと、前記少なくとも１つのメモリに記憶されたデータ項目のローカルコピーを記憶する１つ以上のキャッシュとを備え、前記インターコネクト回路は、前記キャッシュ・メインテナンス要求および前記バリア・トランザクション要求を前記１つ以上のキャッシュのうちの少なくとも１つへ送信するように構成されている。
【００１３】
キャッシュ・メインテナンス要求は、データ・コヒーレンシを維持するためにある種の順序で実行される必要があり、よって異なる速度で動作することのある異なる機器がインターコネクトを介して互いに通信するシステムでは、バリア・トランザクションは順序付けを維持するために役立つことがある。
【００１４】
いくつかの実施形態では、前記インターコネクト回路は、前記少なくとも１つのキャッシュから前記応答信号を受信するように構成されている。
【００１５】
キャッシュは、キャッシュ・メインテナンス・トランザクション要求に続いてバリア・トランザクション要求を受信したとき応答信号を生成するように構成されることがある。キャッシュは、バリア・トランザクション要求の受信に続いて、単に応答を生成し、送信することがあり、この場合、応答は、キャッシュ・メインテナンス要求がキャッシュに到達したことをイニシエータ機器に指示し、または、キャッシュは、要求されたキャッシュ・メインテナンス操作がさらなるトランザクションがキャッシュによって安全に取り扱い可能である時点まで進んだときに、単に応答をバリアへ送信するように構成されることがある。この時点はキャッシュの設計に依存し、例えば、メモリへのダーティデータの書き込みのような、キャッシュ・メインテナンス操作によって始動させられた他の操作がまだ保留中である場合でも、キャッシュ自体の内部で実行されるキャッシュ・メインテナンス操作（例えば、ライン無効化）が完了したときであるかもしれない。メインテナンス・トランザクション要求がさらに送信された場合、バリア・トランザクション要求はメインテナンス・トランザクション要求の後でさらに送信されることに注意を要する。
【００１６】
いくつかの実施形態では、前記インターコネクト回路は、前記１つ以上のキャッシュのうち、前記キャッシュへの入力で前記バリア・トランザクション要求を保持し、さらなるトランザクション要求を受信しないように構成された少なくとも１つのキャッシュを備え、前記キャッシュ・メインテナンス要求がさらなるトランザクション要求を安全に受信できる時点まで処理されたことを判定する前記キャッシュと関連付けられた制御回路に応答して、前記少なくとも１つのキャッシュが前記さらなるトランザクション要求を受信するように構成されている。
【００１７】
バリア・トランザクション要求が上流でトランザクション要求を妨げていない場合、いくつかの実施形態では、バリア・トランザクション要求は、制御回路がデータ・コヒーレンシの観点からキャッシュがさらなるトランザクション要求を安全に受信すると判定するまで、さらなるトランザクション要求がキャッシュによって受信できないように、キャッシュへの入力に留められることがある。
【００１８】
いくつかの実施形態では、前記キャッシュ・メインテナンス要求はさらなるデータ・ストアへ送信されるべきトランザクション要求を始動させ、前記時点は前記キャッシュ・メインテナンス操作から流れ出るすべてのトランザクションがさらに送信された時点を備え、前記制御回路は、前記キャッシュ・メインテナンス操作から流れ出る前記トランザクションのさらに後で前記バリア・トランザクション要求を送信するように構成されている。
【００１９】
キャッシュ・メインテナンス要求がさらなるデータ・ストアへのさらなるトランザクション要求を始動させない場合、制御回路は、前記キャッシュ・メインテナンス要求がさらなるトランザクション要求を安全に受信できる前記時点まで処理されたという判定に応答して、前記バリア・トランザクション要求を除去するように構成されている。
【００２０】
キャッシュ・メインテナンス要求がさらなるトランザクション要求を始動させる場合、バリア・トランザクション要求はこれらの要求の後に送信される。さらなるトランザクション要求がキャッシュ・メインテナンス要求によって生成されない場合、換言すると、すべてのキャッシュ・メインテナンス操作がキャッシュの内部で実行され、キャッシュが、キャッシュを超えるさらなるキャッシュが存在しないように、パスの末尾にある場合、バリアがキャッシュへの入力をブロックするように要求されなくなると、バリアは削除されることがある。
【００２１】
いくつかの実施形態では、前記キャッシュ・メインテナンス要求は１個以上のアドレスへ向けられ、前記バリア・トランザクション要求は対応する１個以上のアドレスを備え、前記制御回路は前記複数のパスのうちの少なくともいくつかに沿って前記バリア・トランザクション要求および前記キャッシュ・メインテナンス要求をルーティングするように構成されている。
【００２２】
キャッシュ・メインテナンス操作はキャッシュの全体に対し実行されることがあり、例えば、キャッシュ全体がフラッシュされることがあり、または、キャッシュ・メインテナンス操作は単一のアドレスまたはアドレスの範囲に対し実行されることがある。後者の場合、バリア・トランザクションがアドレスをさらに収容する場合に有利である。制御回路は、パスのうちのすくなくともいくつかに沿ってバリア・トランザクション要求およびキャッシュ・メインテナンス要求をルーティングするように構成されている。それらはパスのすべてに沿ってルーティングされることがあり、または、制御回路は、このようなキャッシュ・メインテナンス要求が特有のパスに沿ってコンポーネントにサービスを提供する必要がなく、従って、そのパスに沿ってバリアまたはキャッシュ・メインテナンス要求を送信しないことを認識することがある。適切な場合にバリアおよびキャッシュ・メインテナンス要求をパスの一部へ送出できる能力は、バリアおよびキャッシュ・メインテナンス要求がシステムに引き起こすレイテンシを削減する。
【００２３】
いくつかの実施形態では、前記キャッシュ・メインテナンス要求の後に続き、前記バリア・トランザクション要求によって前記キャッシュ・メインテナンス要求の後に保持された前記少なくともいくつかのトランザクション要求は、前記１個以上のアドレスへ向けられたトランザクション要求を備える。
【００２４】
バリア・トランザクション要求の内部にアドレスを有する１つの特有の利点は、ブロックされるべきトランザクションを制御回路に指示できることである。よって、キャッシュ・メインテナンス操作によって影響されることがなく、キャッシュ・メインテナンス操作に影響を与えない他のアドレスへのトランザクションは進むことが可能である。これは、キャッシュ・メインテナンス操作が比較的長い時間を要する可能性があり、よって、すべてのトランザクションが止められ、キャッシュ・メインテナンス操作が完了するまで待つ場合、システムのレイテンシは著しく増大される可能性があるので、非常に有利である。バリア・トランザクション要求の内部でアドレスを信号で送ることができる能力は、この潜在的なレイテンシ問題が著しく改善されることを可能にする。
【００２５】
いくつかの実施形態では、前記複数のパスのうちの前記少なくともいくつかは、前記１個以上のアドレスのためのデータをキャッシュできるいずれかのキャッシュへのパスである。
【００２６】
キャッシュ・メインテナンス要求およびバリア・トランザクション要求が送信されるパスは、そのアドレスのためのデータをキャッシュできるいずれかのキャッシュへのパスである可能性がある。このような場合、メインテナンス操作はそのアドレスをキャッシュできるすべてのキャッシュのために実行される。
【００２７】
他の実施形態では、前記複数のパスのうちの前記少なくともいくつかは、前記キャッシュ・メインテナンス要求を開始する前記イニシエータが前記１個以上のアドレスのためのデータをキャッシュ可能であるいずれかのキャッシュへのパスである。
【００２８】
代替的に、制御回路は、メインテナンス要求および引き続くバリア要求を、キャッシュ・メインテナンス要求のイニシエータがそのアドレスのためのデータをキャッシュ可能であるいずれかのキャッシュへ、単に送信することがある。イニシエータ自体がアクセス可能であるキャッシュを維持することだけが適切であることがあり、このような場合、キャッシュ・メインテナンス要求およびバリア・トランザクション要求がこれらのパスに沿って送信されるだけである。
【００２９】
いくつかの実施形態では、前記複数のパスのうちの少なくともいくつかはノードから分岐する分岐パスであり、前記制御回路は、前記トランザクション要求がルーティングされる前記分岐パスのうちの少なくともいくつかに沿って、前記キャッシュ・メインテナンス要求および前記引き続くバリア・トランザクション要求を複製するように構成されている。
【００３０】
パスが分岐する場合、キャッシュ・メインテナンス要求はキャッシュを収容することがあるどのようなパスでも進むために複製される必要がある。バリア・トランザクション要求を追跡するためにキャッシュ・メインテナンス要求が複製されたパスは、追跡するためさらに複製されるべきであり、複製されたキャッシュ・メインテナンス要求の後で送信されるべきである。このようにして、データ処理装置の正確な挙動が確保される可能性がある。
【００３１】
いくつかの実施形態では、前記制御回路は、前記複製されたバリア・トランザクション要求の全部に対し応答する応答信号の受信後まで、前記バリア・トランザクション要求の後に続く前記少なくともいくつかのトランザクション要求の伝送を遅らせるように構成されている。
【００３２】
バリア・トランザクション要求がブロックしている場合、後続のトランザクション要求は、複製されたバリア・トランザクション要求の全部に対する応答が受信されるまでブロックされる。このようにして、後続のトランザクションは、キャッシュ・メインテナンス操作を別のパスへ持ち込むことがあり、処理エラーを引き起こす場合に、パスのいずれかへ送出されないことが確実にされる。
【００３３】
いくつかの実施形態では、前記制御回路は、前記インターコネクトの内部の直列化の時点に位置している応答信号生成器を備え、その時点を越えると、トランザクション要求は再順序付けが不可能であり、前記応答信号生成器は前記バリア・トランザクション要求への前記応答信号を生成し、前記バリア・トランザクション要求をさらに送信しないように構成されている。
【００３４】
インターコネクトの内部の直列化の時点で、さらに送信される後続のトランザクションが送信された順序付けを維持することを確実にすることが可能である。よって、このような時点で、応答信号はバリア・トランザクションへ送信可能であり、トランザクションが互いに追い越す問題が存在しないので、バリア・トランザクションをさらに送信する必要がない。このようにして、バリア・トランザクションは効果的に取り扱うことが可能であり、バリア・トランザクションがもはや必要とされないとき、システムから削除可能である。
【００３５】
いくつかの実施形態では、前記制御回路は、前記バリア・トランザクション要求の受信に応答して、前記バリア・トランザクション要求が受信された入口パスに沿って前記応答信号を発行する応答信号生成器と、前記バリア・トランザクション要求の受信に応答して、前記応答信号の受信まで、前記バリア・トランザクション要求が送信された、前記バリア・トランザクション要求の後に続く前記少なくともいくつかのトランザクション要求へのすべての出口パスをブロックするブロッキング回路とを備える。
【００３６】
ブロッキング回路は、パスがクリアであることを指示する応答信号の受信まで、バリアが送出されたパスをブロックすることにより順序付けを保持することがある。いくつかのパスが存在する場合、バリアはそれぞれのパスまたは少なくとも一部へ送出するため複製されることがあり、応答は、ブロッキングが停止されることを可能にするため全部または１個を除いて全部から必要とされることがある。
【００３７】
いくつかの実施形態では、前記応答信号生成器は前記ブロッキング回路の直ぐ上流に位置していることがある。
【００３８】
応答信号生成器およびブロッキング回路は、バリアがこれらのユニットに到着したときに、パスがクリアされ、その結果、上流で止められたトランザクションがさらに送信可能であり、出口パスがブロックされるように、互いに隣接して配置されることが可能である。
【００３９】
いくつかの実施形態では、前記複数のパスは、前記インターコネクト回路の内部で２個のノードの間に通信パスだけを備える少なくとも１つのバイセクションパスを備え、前記２個のノードは前記バイセクションパスへの入口ノードおよび出口ノードを備え、前記応答信号生成器が前記入口ノードに位置し、前記バリア・トランザクション要求の受信に応答して、前記入口パスに沿って前記応答信号を送信し、前記ブロッキング回路が前記出口ノードに位置し、前記バリア・トランザクション要求の受信に応答して、前記バリア・トランザクション要求が送信されたすべての出口パスを前記バリア・トランザクション要求の後に続く前記少なくともいくつかのトランザクション要求までブロックする。
【００４０】
インターコネクトの内部では、種々のイニシエータ機器と受信機器とを接続するバスが存在する。これらのパスのいくつかは、パスの切断がインターコネクトをこのパスに沿って２つに分離するようにインターコネクト回路の内部の２個のノード間の唯一のリンクであるので、バイセクションパスであると考えることができる経路を形成する。ノードは回路の中のいずれかの点である。このような場合、バリア・トランザクション要求がバイセクションパスへの入口ノードに到達したとき、後方のパスをクリアするため応答信号を送信することにより、バリア・トランザクション要求によってブロックされていたパスをブロック解除することが有利である可能性がある。応答信号生成器がバイセクションパスの始点にある場合、トランザクションが正しい順序でバイセクションパスに入るかのように、ブロッキング回路はこのパスの終点に位置していることがあり、トランザクションは同じ順序でバイセクションパスから出なければならない。
【００４１】
バイセクションパスに沿って進むトランザクション要求は、１個の経路だけに沿って進むことが可能であり、よって、トランザクション要求がバリアと相対的にパスに送出された順序を維持しなければならない。従って、トランザクション要求がバリアと相対的に正しい順序で入口ノードに到達するようにシステムがセットアップされた場合、バリア・トランザクション要求がバイセクションパスへ送出されると、先行のパスがブロック解除され、止められていた後続のトランザクション要求が送信されることを許可することが可能である。よって、すべての先行の命令が送信される前に完了するのを待つのではなく、すべての先行の命令は、バリア・トランザクション要求がバイセクションパスの入口ノードに到達したという判定に応答して、インターコネクトの一部分に沿って送信可能である。このようにして、これらのバリア・トランザクション要求のブロッキング特性と関連付けられたレイテンシは削減可能であり、インターコネクト回路の性能は著しく改善される。
【００４２】
いくつかの実施形態では、前記インターコネクト回路は、前記少なくとも１台のイニシエータ機器からトランザクション要求を受信する前記少なくとも１つの入力のうちの少なくとも１つを備える少なくとも１つのドメインを備え、ドメイン境界は前記少なくとも１つの入力から受信されたトランザクション要求の何らかのマージが前記少なくとも１つのドメインの内部で行われるように配置され、前記バリア・トランザクション要求は前記少なくとも１つのドメインに適用されるかどうかを指示するイニシエータを備え、前記制御回路は、前記少なくとも１つのドメインに適用されることを指示する前記インジケータを備える前記バリア・トランザクション要求の検出に応答し、前記バリア・トランザクションが前記ドメインの外側であることを指示する指標を提供するため前記少なくとも１つのドメインの外側にある。
【００４３】
インターコネクトがドメインの内部にある入力から受信されたトランザクション要求の何らかのマージが内部で行われるインターコネクトのエリアであるとして選択されたドメインの中に配置されている場合、バリア・トランザクション要求がドメインの内部にあるか、または、ドメインの外側にあるかに依存して別々に取り扱われることがあることが認識されている。よって、インターコネクトはドメインの中に配置され、少なくともいくつかのバリア・トランザクションが特有のドメインに適用されるものとしてマークされると考えるのが有利であることがわかり、従って、このようなバリア・トランザクション要求が適用されるドメインの外側であると判定されたとき、このことは、この時点で、バリア挙動が変化するものとして指示される可能性がある。バリア・トランザクション要求がドメインに適用されることを指示するインジケータが、いくつかの実施形態では、要求と関連付けられた明示的なインジケータでもよく、他の実施形態では、インジケータは暗黙的でもよく、制御回路は、そのドメインに適用されるバリア・トランザクション要求のロケーションおよびタイプから判定可能であることに注意を要する。
【００４４】
いくつかの実施形態では、前記指標は、前記バリア・トランザクション要求が今度は適用される前記ドメインの外側であることを指示する前記バリア・トランザクション要求に付属されたインジケータを備える。
【００４５】
このインジケータは、バリアのロケーションに依存してバリアに異なる挙動を与えるために使用可能である。例えば、バリアは、バリアがインジケータによって指示されたバリアのドメインの内側だけをブロックするという特性を有することがあり、よってバリアはこのドメインの外側がおそらく相互結合領域の中にある場合であっても、もはやブロッキングしないことがある。
【００４６】
いくつかの実施形態では、前記制御回路は、所定のタイプのバリア・トランザクション要求が、前記バリアが適用されることを前記インジケータが示すドメインの内部にある場合、この所定のタイプのバリア・トランザクション要求に応答せずに、そして、前記所定のタイプのバリア・トランザクション要求が前記ドメインの外側にある場合、前記所定のタイプのバリア・トランザクション要求に応答するように構成されている応答信号生成器を備える。
【００４７】
ドメインの特性、および、バリア・トランザクション要求が特有のドメインの内部にあるかどうかに依存するバリア・トランザクション要求の特性の変動は、キャッシュ・メインテナンス要求の現在の場所についての指標をイニシエータ機器へ提供するために、本発明の実施形態によって使用可能である。いくつかのバリア・トランザクション要求は、ドメインの内部にあるとき、早期応答の対象にできないので、応答がこのようなバリア・トランザクションから受信される場合、バリア・トランザクション要求が適用されるドメインから出ることを確実にすることが可能である。データ・ストア・メインテナンス・トランザクション要求は、バリア・トランザクションの前に止まることが必要であるので、同様にドメインから出ていなければならない。バリア・トランザクションの使用は、データ・ストア・メインテナンス・トランザクション要求のロケーションがその操作から分離され、監視されることを可能にさせる。
【００４８】
これは、何台のキャッシュが存在するかを知らないという、アーキテクチャ的にとらわれないシステムにおいて、キャッシュ・メインテナンス操作を取り扱うときに特に役立つ可能性がある。このような場合、要求されたメインテナンスがそのキャッシュの内部で実行されたことを指示する
キャッシュから受信された応答は、保留中のメインテナンス操作を依然として有している他のキャッシュがシステムの中に存在するかどうかを、イニシエータ機器に指示しない。よって、ドメインから出るときに応答を生成するドメイン・インジケータを有するバリアを用いる、このようなキャッシュ・メインテナンス操作要求の追跡は、イニシエータ機器が指定されたドメインの内部のすべてのキャッシュ・メインテナンス操作が完了したときを知ることを可能にする。ドメイン特性は、ドメインが適切に選択された場合に、イニシエータ機器がさらなるトランザクション要求を安全に送信できることを知ることを可能にするために、十分な情報であるようなドメイン特性である。
【００４９】
いくつかの実施形態では、前記インターコネクト回路は複数のドメインを備え、前記複数のドメインのうちの１つずつは、前記少なくとも１台のイニシエータ機器からトランザクション要求を受信する前記少なくとも１つの入力のうちの少なくとも１つを備え、ドメイン境界は前記ドメインのうちの１つの内部で前記少なくとも１つの入力から受信されたトランザクション要求のマージが、前記ドメインのうちの前記１つの内部で行われるように配置されている。
【００５０】
いくつかの実施形態では、インターコネクト回路は単一のドメインを有することがあるが、他の実施形態では、インターコネクト回路は複数のドメインを有し、ドメインの内部の入力から受信されたトランザクション要求のマージがそのドメインの内部で行われるように複数のドメインがすべて配置されている場合、複数のドメインはすべてバリア・トランザクション挙動がドメインから出るときに変化する特性を有し、この特性はインターコネクトの内部でバリアによってもたらされたレイテンシを削減するため使用可能である。
【００５１】
いくつかの実施形態では、前記複数のドメインのうちの少なくとも１つはより大規模なドメインの一部であり、入力が下位階層のドメインのメンバである場合、入力が同様に高位階層のドメインのメンバであるように、入力毎にドメインの階層が存在し、トランザクションは、トランザクションが前記高位階層の前記ドメインから出るときと同時またはそれ以前に前記下位階層の前記ドメインから出る。
【００５２】
いくつかの実施形態では、ドメインは階層に配置され、この階層は後述されるようにバリア・トランザクションのさらなる制御を行うため使用可能である。高次階層のドメインは、下位階層のドメインより大型であるか、または、同じサイズであり、下位階層のドメインを囲み、よって、トランザクションは、上位階層のドメインから出るときと同時またはそれ以前に下位階層ドメインから出る。
【００５３】
いくつかの実施形態では、前記ドメインは、前記入力のうちの１つだけを収容する非共用可能ドメインおよび前記入力の全部を具備するシステムドメインと、少なくとも１つのさらなるタイプの共用可能ドメインとを備え、非共用可能ドメインの内部の入力が前記入力に対する前記少なくとも１つのタイプの共用可能ドメインの内部に同時に存在し、前記少なくとも１つのタイプの共用可能ドメインの内部の入力が前記入力に対する前記システムドメインの内部に同様に存在するように、入力毎にドメイン階層が存在する。
【００５４】
単なる入力である非共用可能ドメインを有することは役に立つことがあり、よって、非共用可能であるとしてマークされたすべてのバリアは、インターコネクトの内部にあるとき、それらのバリアのドメインの外側にあり、従って、バリアが非共用可能ドメインに適用されるというインジケータはバリアがバリアのドメインの外側であるというインジケータとして使用可能である。他の共用可能ドメインと、すべての入力を備え、それ自体が共用可能ドメインでもあるシステムドメインとが存在する。
【００５５】
いくつかの実施形態では、前記データ処理装置は複数の階層レベルからなる複数のキャッシュを備え、前記バリア・トランザクション要求は、前記複数の階層レベルのうちの少なくとも１つの階層レベルを指示するインジケータを備え、前記複数の階層レベルのうちの前記少なくとも１つの階層レベルのキャッシュは、前記バリア・トランザクション要求の受信に応答して応答信号を生成するように構成されている。
【００５６】
バリア・トランザクション要求がある種の階層レベルのキャッシュだけが要求に対する応答を送信するようにマークされている場合、キャッシュ・メインテナンス操作の進行がバリア・トランザクション要求への応答から判定可能であるさらなる方法が存在する。このようにして、例えば、バリアがレベル２キャッシュだけに適用されるとしてマークされている場合、バリアは、キャッシュ・メインテナンス・トランザクション要求の後でレベル１キャッシュを通過し、バリアに対する応答は送信されず、レベル２キャッシュに到達するときに限り、応答が送信される。
【００５７】
本発明の第２の態様は、インターコネクトを経由してイニシエータ機器からトランザクション要求を受信する受信機器であって、前記インターコネクトから前記トランザクション要求を受信する入力と、キャッシュと、所定のタイプのバリア・トランザクション要求に対する応答信号を生成する応答信号生成器とを備え、前記入力でのキャッシュ・メインテナンス要求と引き続く前記所定のタイプのバリア・トランザクション要求のうちの１つとの受信に応答し、前記バリア・トランザクション要求に対する前記応答を生成するように構成され、データ・コヒーレンシを落とすことなく、前記受信機器がさらなるトランザクション要求を受信し処理するために、前記キャッシュが前記キャッシュに十分なキャッシュ・メインテナンス操作を実行したと判定したとき、前記応答信号を発行するように構成されている、受信機器を提供する。
【００５８】
キャッシュ・メインテナンス・トランザクション要求が完了したときではなく、受信機器がさらなるトランザクション要求を安全に受信できると受信機器が判定したとき、キャッシュ・メインテナンス要求の後に続くある種のタイプのバリア・トランザクション要求に対する応答を送信するためだけに構成されている受信機器は、システムのレイテンシが削減されることを可能にする。
【００５９】
いくつかの実施形態では、前記受信機器は、キャッシュ・メインテナンス要求の後に続くさらなるタイプのバリア・トランザクション要求の受信に応答して、前記受信機器への入力で前記バリア・トランザクション要求を保持し、前記キャッシュがデータ・コヒーレンシを落とすことなくさらなるトランザクション要求を受信し処理するために前記キャッシュのための十分なキャッシュ・メインテナンス操作を実行したことを前記受信機器が判定するまで、さらなるトランザクション要求を受信しない。
【００６０】
いくつかの場合、バリア・トランザクション要求は、少なくともいくつかがバリア・トランザクション要求に関して再順序付けされるべきでないトランザクション要求の間に位置している。このような場合、受信機器は、バリア・トランザクション要求をさらに送信できるか、または、削除できるまで、バリア・トランザクション要求を入力で保持するように構成されることがある。このようにして、バリアは他のトランザクション要求への入口をブロックし、他のトランザクション要求は、バリアが除去された場合に限り進行可能である。
【００６１】
本発明の第３の態様は、データ・ストア・トランザクション要求を含むトランザクション要求を生成し、インターコネクトを経由して受信機器へ発行するイニシエータ機器であって、前記インターコネクトを通過するトランザクション要求のストリームの内部の少なくともいくつかのトランザクション要求の順序付けが、前記バリア・トランザクション要求の後に現れる前記トランザクション要求のうちの少なくともいくつかに関して、前記トランザクション要求のストリームの中で、前記バリア・トランザクション要求の前に現れる前記トランザクション要求のうちの少なくともいくつかの再順序付けを許可しないことにより維持されることを前記インターコネクトに指示するバリア・トランザクション要求を生成するように構成されているバリア・トランザクション要求生成器を備え、前記データ・ストア・メインテナンス・トランザクション要求と引き続く前記バリア・トランザクション要求とを発行するように構成されている、イニシエータ機器を提供する。
【００６２】
イニシエータ機器がデータ・ストア・メインテナンス要求を発行するとき、メインテナンス操作の前にデータ・ストアへのアクセスを要求するか、または、これらの動作後にアクセスを要求する他のトランザクション要求がこのメインテナンス要求に関して再順序付けされないことが重要である。アーキテクチャ的にとらわれない方法でこのことを確実にするため、イニシエータ機器はバリアを生成するバリア生成器を有することがあり、イニシエータ機器は、データ・ストア・メインテナンス操作を追跡するためにバリアを発行する。バリアは、バリアの後の少なくともいくつかのトランザクションがバリアの後方に留まるべきであり、一方、バリアの前方で少なくともいくつかが前方に留まるべきであることをインターコネクトに指示する。
【００６３】
いくつかの実施形態では、前記バリア生成器は、前記データ・ストア・メインテナンス・トランザクション要求に依存して、前記生成されたバリア・トランザクション要求にブロッキング・インジケータまたは非ブロッキング・インジケータを設けるように構成されている。
【００６４】
バリア生成器によって生成されることがあるバリアは、ブロッキングまたは非ブロッキングであることが有利であり、ブロッキング・バリアは、すべてのトランザクションがバリアを追い越すことがあるように、バリアの後方に留まることが必要である少なくともいくつかのトランザクション要求が上流でブロックされていたことを指示するが、非ブロッキング・バリアは、バリアが適用されるトランザクション要求によって追い越されるべきではない。
【００６５】
いくつかの実施形態では、前記イニシエータ機器は、前記ブロッキング・インジケータを用いて前記バリア・トランザクション要求を生成する前記バリア・トランザクション要求生成器に応答して、前記イニシエータ機器が前記ブロッキング・バリア・トランザクション要求に対する応答を受信するまで、前記インターコネクトへの前記バリア・トランザクション要求の後に現れる前記少なくともいくつかのトランザクション要求を発行せずに、前記非ブロッキング・インジケータを用いて前記バリア・トランザクション要求を生成する前記バリア・トランザクション要求生成器に応答して、前記インターコネクトへの前記バリア・トランザクション要求の後に現れる前記少なくともいくつかのトランザクション要求を発行するように構成されている。
【００６６】
いくつかの実施形態では、前記バリア生成器は、前記バリア・トランザクション要求が適用される前記インターコネクトの内部のドメインを表すドメイン・インジケータを前記生成されたバリア・トランザクション要求に設けるように構成されている。
【００６７】
上述されているように、ドメインによるバリア・トランザクション要求の制御は、バリアがインターコネクトの内部に到達したかどうかに関する情報を提供する有用な方法を提供可能である。
【００６８】
本発明の第４の態様は、少なくとも１台のイニシエータ機器からインターコネクト回路を経由して少なくとも１台の受信機器へデータをルーティングする方法であって、少なくとも１つの入力で前記少なくとも１台のイニシエータ機器から、少なくとも１つのトランザクション要求が、データ・ストア・メインテナンス操作が前記データ処理装置の内部でキャッシュに実行されることを要求するデータ・ストア・メインテナンス要求を備えるトランザクション要求を受信し、少なくとも１つの出力の方へ向かう複数のパスのうちの少なくとも１つに沿って前記トランザクション要求を送信し、前記データ・ストア・メインテナンス要求の受信に応答して、前記複数のパスのうちの少なくとも１つのパスに沿って前記データ・ストア・メインテナンス要求および引き続くバリア・トランザクション要求を送信し、前記バリア要求の後で前記データ・ストア・メインテナンス要求の後に続く前記少なくともいくつかのトランザクション要求を保持することにより、前記複数のパスの中の前記少なくとも１つのパスに沿って進むトランザクション要求のストリームの内部で前記バリア・トランザクション要求に関して少なくともいくつかのトランザクション要求の順序付けを維持する、方法を提供する。
【００６９】
本発明の第５の態様は、本発明の第３の態様による少なくとも１台のイニシエータ機器を含む複数のイニシエータと、少なくとも１台の受信機器と、前記イニシエータと前記受信機器との間にデータ経路を提供する本発明の第１の態様によるインターコネクト回路とを備えるデータ処理装置を提供する。
【００７０】
本発明の第６の態様は、データ・ストア・メインテナンス・トランザクション要求を生成し、インターコネクトを経由して受信機器へデータ・ストア・メインテナンス・トランザクション要求を発行する方法であって、前記データ・ストア・メインテナンス・トランザクション要求のうちの１つを生成し、その後、前記インターコネクトを通過するトランザクション要求のストリームの内部で、少なくともいくつかのトランザクション要求の順序付けが前記バリア・トランザクション要求の後に現れる前記トランザクション要求のうちの少なくともいくつかのトランザクション要求に関して、トランザクション要求の前記ストリームの中で前記バリア・トランザクション要求の前に現れる前記トランザクション要求のうちの少なくともいくつかのトランザクション要求の再順序付けを許可しないことによって維持されるべきことを前記インターコネクトに指示するバリア・トランザクション要求を生成し、前記データ・ストア・メインテナンス・トランザクション要求および引き続く前記バリア・トランザクション要求を発行する方法を提供する。
【００７１】
本発明は、単に一例として、添付図面に例示されているような実施形態を参照してさらに説明される。
【図面の簡単な説明】
【００７２】
【図１】バリアを取り扱うため適したインターコネクトを示す図である。
【図２】本発明の実施形態によるインターコネクトを備えるシステムを示す図である。
【図３】本発明の別の実施形態によるインターコネクトを備えるシステムを示す図である。
【図４】本発明の実施形態によるキャッシュを有するインターコネクトを示す図である。
【図５】異なる階層レベルからなるキャッシュを有するシステムを示す図である。
【図６】本発明の実施形態による方法を示すフローチャートである。
【図７ａ】インターコネクトが異なるドメインに分割可能であり、いくつかのバリアが属しているドメインに依存して別々に取り扱われる方法を概略的に示す図である。
【図７ｂ】インターコネクトが異なるドメインに分割可能であり、いくつかのバリアが属しているドメインに依存して別々に取り扱われる方法を概略的に示す図である。
【図８】インターコネクトが異なるドメインに分割可能であり、いくつかのバリアが属しているドメインに依存して別々に取り扱われる方法を概略的に示す図である。
【発明を実施するための形態】
【００７３】
図１は、バリアを使用してトランザクション要求の送信を制御するように構成されたインターコネクト１０を示し、バリアがこのようなインターコネクトで取り扱われる方法を示している。インターコネクト１０は、複数のパスを経由して複数のマスタ２０、２２、２４および２６を複数のスレイブ３０、３２、３４および３６に接続する。これらのパスは、例えば、２本のパスの各々がそれぞれのスプリット点４１および４２で２つに分けられ、マージ点４４および４５で合流する４０で示されているような相互結合部を有することがある。例えば、５０に示されているようなバイセクションパスがさらに存在することがある。インターコネクトの中の２個のノード間には、パスの切断が実際にインターコネクトを２つに分割するような唯一の接続であるパスが存在する。
【００７４】
トランザクションがこれらの異なるパスに沿って進むとき、パスの性質、すなわち、パスが相互結合型であるか、バイセクションであるかはトランザクションの順序付けに影響を与える。例えば、相互結合型パスは、トランザクション・ストリームを複数のトランザクション・ストリームに分割するスプリット点から始まり、スプリット点より前にトランザクション・ストリームの中で別のトランザクションの後に位置していたトランザクションは、既に後に位置していたトランザクションがそれぞれの宛先に到達する前に、その宛先に到達することがある。バイセクションパスに沿って進行するトランザクションは、例えば、６０で示されているように再順序付けバッファのような再順序付けを可能にする何らかの機能的ユニットが存在しない限り、それらの順序を保つべきである。再順序付けバッファは、低優先度のトランザクションより前により高優先度のトランザクションがスレイブへ配信されることを可能にするためにトランザクションを再順序付けるため使用される。
【００７５】
予め分離されたパスが再び一体的になる再合流と呼ばれるパスがさらに存在し、これはトランザクション・ストリームの内部で再順序付けをさらに引き起こす可能性がある。インターコネクト１０は再合流パスを有していない。
【００７６】
トランザクションが提示された順序とは異なる順序でそれぞれの宛先に到達可能であるという事実は、後続するトランザクションが先行するトランザクションに依存し、よって、先行するトランザクションを先に完了する必要があるという問題をもたらす可能性がある。例えば、トランザクション・ストリームの中で同じアドレスに対してロード命令より前にストア命令が存在する場合、ストアがロードより前に実行されることが重要であり、そうでなければ、ロードは間違った値を読み取ることになる。プログラマが必要とされるトランザクションが必要とされる順序で到達することを確保できるようにするため、インターコネクト１０は、バリアに関してインターコネクトの内部でトランザクションの順序付けを維持するためにトランザクション・ストリームの内部でバリア・トランザクションに応答するように構成されている。よって、バリア・トランザクションは互いに追い越すべきでないトランザクションの間に挿入可能であり、これは追い越しが起こらないことを確実にする。
【００７７】
インターコネクトは、バリア・トランザクションへの応答信号が受信されるまで、インターコネクトの中を進むことによりバリア・トランザクションの後に続いてトランザクション・ストリームの中に現れるトランザクションを遅らせることにより、これらのバリア・トランザクションに応答することがある。応答信号は、後続の命令を安全に送信できることを指示する。パスをクリアする応答信号が、先行のトランザクションがすべて完了していることを指示する信号であるかもしれないこと、もしくは、応答信号が、例えば、パスがバイセクションパスである場合に、単にバリア・トランザクションがパスに沿って進んだこと、もしくは、先行のクリアリング応答信号が送信され、そしてブロッキングが再び実行されるノードに到達したことを指示する信号であるかもしれないことに注意を要する。
【００７８】
インターコネクトはまた、以前のトランザクションの後かつ後続のトランザクションの前に様々なパスに沿ってバリア・トランザクションを単に送信し、バリア・トランザクションを越えるトランザクションの再順序付けを許可しないこともあるので、バリアがある種の点に到達するとして検出されるとき、インターコネクトは、すべての先行のトランザクションが既にこの点を通過したことに気付く可能性がある。インターコネクトがストリームの範囲内で単にバリアを送信したか、または、トランザクションを遅らせるかどうか、そしてブロッキング・バリアであるかどうかは、バリアの性質に依存し、ブロッキング・バリアは、前の上流点で後続のトランザクション要求の少なくとも一部をブロックするものである。
【００７９】
バリア・トランザクションの進行は制御回路７０によって制御される。これは、同図中、単一のブロックとして概略的に示されているが、実際には、制御回路は、制御対象である回路に隣接してインターコネクトの全域に分布している。よって、各分離点において、例えば、少なくともいくつかの実施形態において、バリア・トランザクションが受信されたときに、バリア・トランザクションが複製され、二重のバリア・トランザクションが分離点からの各出口パスで送出されることを確実にする何らかの制御回路が存在する。複製されたバリアが１つを除いてすべての出口パスで送出される他の実施形態が存在することがあり、このことが後述されている。制御回路はバリア・トランザクションが複製されたことを知り、よって、応答信号が元のバリア・トランザクションの後に続き、かつ、元のバリア・トランザクションの後に留まる必要があるトランザクションの伝送のためのパスをクリアできる前に、複製されたバリア・トランザクションのそれぞれから応答信号を要求することがある。
【００８０】
バリア・トランザクションは、最も簡単な形式では、マスタ、例えばマスタ２０によって発行され、マスタ２０は、その後インターコネクトからインターコネクトが後続のトランザクションを送信可能であることを指示する応答信号を有するまで、すべての後続のトランザクションをブロックする。代替的に、バリアはインターコネクトへのエントリ時に直ちに制御回路によって発行されることがある。バリア・トランザクション前のトランザクションおよびバリア・トランザクションはインターコネクトへ送信され、制御回路７０はこれらのトランザクションのルーティングを制御する。よって、スプリット点４２において、バリア・トランザクションは複製され、マージ点４４および４５へ進む。この時点で、トランザクションは、バイセクションパス５０および５２に入り、トランザクションはバリア・トランザクションがこれらのパスのうちの１つの始点に到達するときにこれらのパス上のバリアに関してトランザクションの位置を変更できないので、バリア・トランザクションより前のすべてのトランザクションはバリア・トランザクションより先行し、パスに沿ってバリア・トランザクションより先を維持する。よって、早期応答信号は早期応答ユニット８０によって送信可能であり、これらの信号の両方の受信に応答して、スプリット点４２での制御回路は、その後に、マスタ２０によって制御されるバリア・トランザクションより後に続くトランザクションをブロック解除し、インターコネクトへ送信可能であるマスタ２０へ早期応答信号を送信する。
【００８１】
早期応答ユニット８０を設けることにより、マスタ２０は、バリア・トランザクションがスレイブに到達したことを指示するスレイブからの応答を待機していた時間より遙かに短い時間に亘ってブロックされ、このようにして、バリア・トランザクションによって持ち込まれたレイテンシが削減される。
【００８２】
パス５０に沿って進むバリア・トランザクションは、インターコネクトから出て、バイセクションパス５０以外のパスに沿って進むこと無くスレイブ３０に到達するので、バリアがバリアに先行するトランザクションが留まらなければならない早期応答ユニット８０を通過したとき、このバリア・トランザクションに応答して再びブロックする必要がない。しかし、パス５２に沿って送信されたバリア・トランザクションがさらなる相互結合セクション４８に到達し、スプリット点４９でのバリア・トランザクションの受信に応答して、このスプリット点と関連付けられた制御回路７０は、バリア・トランザクションを複製し、両方の出口パスへ送出し、バリア・トランザクションの後でバリアの後に続いて出現し、制御回路によって制御されるトランザクション要求までエントリ・パスをブロックする。このように、これらの後続のトランザクションは、すべての複製されたバリア・トランザクションへの応答信号が受信されるまで、ブロッキング回路９０の内部のバッファの中に保持されることによっていくつかの実施形態において止められる。このようにして、複製されたバリア・トランザクションは、相互結合回路４０を通過し、相互結合回路から出て、さらなるバイセクションリンク５２および５０に加わる。上述されているように、バイセクションパスは、バリアと相対的な順序でトランザクションを保持するので、早期応答は、早期応答ユニット８０によってバイセクションパスの始点から送信可能である。ブロッキング回路９０は、スプリット点４９からのバリア・トランザクションへの応答の受信を待つ。スプリット点４９は、バリア・トランザクションを複製し、２個のバリア・トランザクションをパス毎にさらに下方へ送信する。スプリット点４９は、スプリット点が送信した２個のバリア・トランザクションの１つずつから応答を受信するまで、ブロッキング回路９０に応答を返信しない。この応答に応答して、ブロッキング回路９０は、ブロッキング回路のバッファの中に保持された後続のトランザクションが送信されることを可能にする。クリアリング回路は、インターコネクトへの出口より前で最後のバイセクションパス上にあるので、何らかのバリアタイプのためのさらなるブロッキングは不要である。
【００８３】
上述されているように、バイセクションパス５２に再順序付けバッファ６０が存在し、このバッファは、バリアに応答するように構成され、バリアによって制御されるトランザクションがバリアに関して再順序付けされることを許可しない。
【００８４】
これまでの説明では、バリアは、バリアの後でバリアに続くすべてのトランザクション維持するため存在すると仮定されている。しかし、いくつかの実施形態では、より詳細に後述されるように、バリアは後続のトランザクションの部分集合、おそらく特有のマスタからのトランザクション、または、書き込みトランザクションのような特有の機能をもつトランザクションがバリアを越えることを抑えることだけが必要になることがある。このような場合、制御回路７０およびブロッキング回路９０は、トランザクションのこの部分集合を遅らせるだけであり、他のトランザクションが進行することを許可する。さらに、スプリット点でバリアによって制御されるトランザクションはパスのうちの１つへ決して進むことがない場合、複製されたバリアはそのパスへ送出される必要がない。
【００８５】
図２は、本実施形態では、インターコネクト１０を介して２つのキャッシュ２００、２１０にアクセスする複数のプロセッサＰ１、Ｐ２、Ｐ３を有するインターコネクトを示している。上述されているように、異なるキャッシュおよび異なるメモリを含む種々のデータ・ストアにアクセスする多数の機器をもつ複雑なシステムでは、データ・コヒーレンシを維持することは複雑な問題である可能性がある。これは、様々なストアにおけるデータ記憶がコヒーレント状態を保つことを確実にするため、ある一定の時間にキャッシュ・メインテナンス操作を実行する必要性を含む。
【００８６】
詳細アーキテクチャが知られていないシステムのためプログラムが書き込まれている場合、このようなキャッシュ・メインテナンス操作の取り扱いは難しい可能性がある。キャッシュ・メインテナンス操作は発行可能であるが、キャッシュ・メインテナンス操作が完了したときを知ることは難しいことがある。このことは、特に、特有のキャッシュが特有のパスに沿って最後のキャッシュであるかどうかを知ることが難しいようなシステムと同様に、キャッシュの異なる階層レベルを有し、キャッシュがインターコネクトの内部に位置しているシステムにおいてそのように言われる。この問題は、本発明の実施形態では、バリア・トランザクションの使用によって対処される。
【００８７】
よって、キャッシュ・メインテナンス操作が発行されるとき、バリアがキャッシュ・メインテナンス操作に続くように発行される。バリアの通過は追跡可能であるので、キャッシュ・メインテナンス操作がバリアに先行するとき、キャッシュ・メインテナンス操作も同様に追跡可能である。バリアの特性は、キャッシュ・メインテナンス要求に応じて選択可能であるので、後続のトランザクションがキャッシュ・メインテナンス要求を追い越すことを単に妨げるバリアが選択されることがあり、または、ある一定の点で後続のトランザクションをブロックするバリアが使用されることがある。バリア生成器７９はマスタＰ１の内部に示され、バリア生成器は、マスタＰ１からの要求に応答して、バリア・トランザクション要求を生成し発行する。マスタは、マスタがキャッシュ・コヒーレンシ・メインテナンス要求を生成し発行したとき、バリアを生成するようにバリア生成器に命令し、バリアの特性は実行されるべきメインテナンス操作に応じて選択されることがある。
【００８８】
生成されたバリアは、ブロッキング・バリアでも非ブロッキング・バリアでもよく、生成されたバリアがブロッキング・バリアである場合、マスタＰ１は、このバリアに対する応答を受信するまで、このバリアが適用されるさらなるトランザクション要求を発行しない。
【００８９】
図２に示された実施形態では、早期応答ユニット７１と、その後にブロッキング回路７２と、その後に分岐点７３とが存在する。インターコネクト内部の制御回路７０は、プロセッサＰ１から受信されたキャッシュ・メインテナンス要求および後に続くバリア・トランザクションを検出し、バリア・トランザクションがブロッキング・バリアである場合、インターコネクトは早期応答ユニット７１でバリアに対する応答を発行し、この早期応答は、その後にブロックされたトランザクション要求をさらに送信するマスタＰ１で受信される。ブロッキング回路７２は、その後に、バリア・トランザクション要求の影響を受けるさらなるトランザクション要求をブロックする。バリア・トランザクションがブロッキング・バリアではない場合、バリア・トランザクション要求は、早期応答ユニットおよびブロッキング回路を介して単に送信される。
【００９０】
バリア・トランザクション要求が後に続くキャッシュ・メインテナンス要求は、その後、分岐点７３に到着し、制御回路７０は、キャッシュ・メインテナンスがキャッシュ２００およびキャッシュ２１０の両方で実行されるべきであると判定するので、キャッシュ・メインテナンス要求および引き続くキャッシュ・メインテナンス要求の両方を複製する。これらの要求は、その後、キャッシュ２００および２１０へ向けてさらに送信される。インターコネクト回路１０は、キャッシュ２００および２１０へのそれぞれのインターコネクト出力の前に、ブロッキングユニット７７および７８に沿って早期応答ユニット７５および７６を有し、バリアがブロッキング・バリアである場合、バリア・トランザクションが早期応答ユニット７５および７６に到着し次第、応答が送信され、両方の応答の受信に応答して、ブロッキング回路７２は、後続のトランザクションがさらに送信されることを許可する。しかし、これらの後続のトランザクションは、その後に、ブロッキング回路７７および７８の点に到着したとき、ブロッキング回路７７および７８によってブロックされる。
【００９１】
それぞれの受信機器の内部にあるキャッシュ２００および２１０は、その後、キャッシュ・メインテナンス要求と、引き続くバリア・トランザクション要求とを受信し、バリアがブロッキング・バリアである場合、各キャッシュと関連付けられた応答回路２０１は、制御回路２０３が、キャッシュ・メインテナンス操作がさらなるトランザクション要求が安全に取り扱える時点まで進んだと判定したとき、バリア・トランザクション要求に対する応答を送信する。このようにして、例えば、ラインのうちのいくつかが無効であるとマークされると直ぐにキャッシュがフラッシュされ、キャッシュが取り扱われるべきさらなるトランザクションのためのスペースを有する場合、応答が送信可能である。この時点におけるバリアに対する応答は、例えば、キャッシュがダーティラインで満ちている場合、このデータのすべてを元のメモリへ書き込むことは長時間を要するので、有利である可能性がある。プロセスが開始すると、キャッシュの中には、データを記憶するため利用できるラインが存在するので、さらなるトランザクションが実行可能である。バリア・トランザクション要求が非ブロッキング・バリアである場合、このバリア・トランザクション要求は、キャッシュがさらなるトランザクションを安全に受信するためにキャッシュ・メインテナンス要求を処理し、その時点でバリア・トランザクション要求がキャッシュ・メインテナンス要求によって始動させられた他のデータ・ストア・メインテナンス操作のさらに後で送信されるか、または、バリア・トランザクション要求が除去されるまで、それぞれのキャッシュの入力インターフェイス２０２に保持される。
【００９２】
バリアがブロッキング・バリアである場合、ブロッキング回路７７および７８は、応答生成器２０１からの応答を受信したとき、後続のトランザクションのブロックを停止し、後続のトランザクションはそれぞれのキャッシュへ進むことが可能である。
【００９３】
上述されているように、バリア生成器７９は、ブロッキング・バリアを生成したか、または、非ブロッキング・バリアを生成したかを判定するため、キャッシュ・メインテナンス操作のタイプに応答する。このようにして、例えば、要求されたキャッシュ・メインテナンス操作が単に無効ライン操作である場合、この操作の後でトランザクション・ストリームの中に位置するに過ぎない非ブロッキング・バリアが発行可能であり、トランザクションがいずれの方向にもトランザクション・ストリームを通過することを許可しない。上述されているように、バリア・トランザクション要求は、すべてのトランザクションに関して、または、トランザクションの部分集合に関して、すべてのトランザクションの順序付けを維持可能である。上記の場合、無効ラインは特有のアドレスに設定されるので、バリアはこのアドレスを備えることが有利であり、この場合、制御回路７０はバリアに関してそのアドレスをもつトランザクションの順序を維持するだけであるが、他のトランザクション要求が必要に応じてバリアに関して再順序付けされることを許可する。
【００９４】
図３は、インターコネクト１０が、キャッシュ２２０および２１０を備え、３台のプロセッサＰ１、Ｐ２およびＰ３を２つのメモリＭＥＭ１およびＭＥＭ２と相互接続するさらなる実施形態を示している。Ｐ１からインターコネクト１０で受信されたキャッシュ・メインテナンス・トランザクション要求の後に、マスタＰ１によって生成されたブロッキング・バリア・トランザクションが続き、後続のトランザクションは、応答信号の受信までＰ１でブロックされることを示している。インターコネクト内部の早期応答信号生成器７１は、後続のトランザクションをさらに進めることを許可する応答をマスタＰ１へ送信する。これらの後続のトランザクションは、その後、応答信号が受信されるまでこれらの後続のトランザクションをブロックするため作用するブロッキング回路７２に達する。
【００９５】
インターコネクト内部にはその後に分岐点７３が存在し、バリア・トランザクションおよびキャッシュ・メインテナンス・トランザクションが複製され、キャッシュ２２０および２２１へさらに送信されることがある。この場合には、分岐点と関連付けられた制御回路７０は一方のキャッシュから受信された応答信号を保持し、両方のキャッシュから応答信号を受信したときに限りブロッキング回路７２へ応答信号を送信する。
【００９６】
キャッシュ・メインテナンス・トランザクションがキャッシュ２２０だけで実行されるべき場合、バリア・トランザクションおよびキャッシュ・メインテナンス・トランザクションは複製されず、キャッシュ２２０だけに送信され、ブロッキングは必要とされない。バリア・トランザクションは単にキャッシュ２２０への入力に位置し、キャッシュがバリア・トランザクションを受信し、さらに送信する準備が整うまで、他のトランザクションがキャッシュに入ることを抑える。
【００９７】
キャッシュ２２０は、キャッシュ・メインテナンス要求に応答して、メモリへ送信されるトランザクションを生成し、その後、バリア・トランザクション要求が同様にトランザクションの後で送信される。メモリへのパス上に分岐点２３０が存在し、分岐点２３０と関連付けられた制御回路７０は、生成されたトランザクションおよび引き続くバリア・トランザクション要求を適切なメモリへ送信する。よって、生成されたトランザクションおよび引き続くバリア・トランザクション要求は、必要とされるメインテナンス操作に依存して、ＭＥＭ１およびＭＥＭ２、または、ＭＥＭ１だけに送信されることがある。バリア・トランザクションはトランザクションの後に送信され、トランザクションが両方のパス上に送信される場合、バリア・トランザクションは複製され、ブロッキング回路２３２は後続のトランザクションへのパスをブロックする。しかし、キャッシュ・メインテナンス操作のためアクセスされるべきメモリが一方のメモリだけである場合、単一のバリア・トランザクションがキャッシュ・メインテナンス操作に続いて送信され、ブロッキングは実行される必要がない。
【００９８】
メインテナンス操作が選択されたアドレス範囲に向けられる場合、バリアは、これらのアドレス範囲を指定するアドレス指定されたバリアでもよく、このような場合、他のアドレスへ向けられたトランザクションはこのバリアを越えることが可能であり、バリアがブロッキング中である場合、バリアは指定されたアドレスへのトランザクションだけをブロックする。バリアがメモリに到達したとき、バリアは、キャッシュ・メインテナンス要求に起因するメモリ内部の操作が完了するまで、メモリへの入口をブロックし続ける。この時点で、すべての後続のトランザクションはメモリに入ることが可能である。
【００９９】
ブロッキング・バリアが複製され、両方のメモリへ送信された場合、ブロッキング・バリアがそれぞれのメモリへ入るとき、応答信号が送信され、両方の応答信号が受信されると、ブロッキング回路２３２における閉塞はクリアされ、ブロックされていたトランザクション要求はさらに送信可能である。
【０１００】
図３では、Ｐ１とキャッシュ２２０との間の接続と、メモリとだけが詳細に示されているが、図面をより明瞭にするため図示されていない他の接続が存在する。
【０１０１】
図４は、プロセッサＰ１がキャッシュ２２０の中にデータを記憶可能であるが、キャッシュ２２１にデータを記憶できない本発明の代替的な実施形態を示している。キャッシュ・メインテナンス要求と、引き続くバリア・トランザクション要求との受信に応答して、制御回路７０は、プロセッサＰ１がキャッシュ２２０だけをアクセス可能であり、キャッシュ２２１をアクセスできないことを認識するので、キャッシュ・メインテナンス操作および引き続くバリア・トランザクションをキャッシュ２２０へ送信し、ブロッキング・バリアの場合、早期応答ユニット７１はプロセッサＰ１へ応答を送信する。バリア・トランザクションはキャッシュ２２０への入口に位置し、キャッシュ内部のキャッシュ・メインテナンス操作が完了するまで、さらなるトランザクションがキャッシュへ入ることをブロックする。この時点で、バリア・トランザクションは、キャッシュ・メインテナンス操作によって始動させられたいずれかのメインテナンス操作の後でさらに送信され、後続のトランザクションはキャッシュ２２０にアクセス可能である。このようにして、キャッシュへのアクセスは、すべてのキャッシュ・メインテナンス操作が完了するまでブロックされず、キャッシュ自体の内部の操作が完了するまでブロックされるだけである。
【０１０２】
図４の上記実施形態では、キャッシュ・メインテナンス操作は、キャッシュに対する一般的なキャッシュ・メインテナンス操作である。いくつかの操作では、キャッシュ・メインテナンス操作は、キャッシュ内部の特有のアドレスまたはアドレスの範囲へ向けられることがある。このような場合、バリア・トランザクションはこの情報を収容し、ブロッキング回路は、これらのアドレスへ向けられたブロックトランザクションだけに作用し、他のトランザクションは送信される。このように、システムのレイテンシはかなり削減される。
【０１０３】
図５はキャッシュの階層を含むシステムを示している。本実施形態では、マスタＰ１およびＰ２の内部のバリア生成器は、例えば、階層レベル２を示すことがあるキャッシュ階層を示すインジケータと共にバリアを生成することがある。このような場合、このインジケータは、応答がＬ２キャッシュからだけ送信されるべきであることを示す。これは、システムが、キャッシュ・メインテナンス操作がレベル２共有キャッシュに到達するときを知ることを可能にする。
【０１０４】
実質的に、バリアは、バリアが（バリアが適用され、そして）バリアの前にあるトランザクションを追い越すことを許可されていないときに、バリアの前にあるトランザクションが到達したロケーションがわかるようにする。よって、バリアは、ある種のキャッシュ・メインテナンス要求が特有のキャッシュまたはある種の階層レベルのキャッシュに到達したときを判定するため使用可能である。キャッシュに関する応答回路は、バリアに対し応答するためにキャッシュ・メインテナンス操作の中の適当な時点を判定するためさらに使用可能であり、よって、単にキャッシュ・メインテナンス操作が完了したことをシグナリングするのではなく、信号は後続のトランザクションをキャッシュへ安全に送信できるときに生成可能であり、このようにしてレイテンシが削減可能である。
【０１０５】
図６は、本発明の実施形態によるバリア・トランザクション要求を使用して、データ・ストア・メインテナンス操作の順序付けを確実にする方法におけるステップを説明するフローチャートを示している。データ・ストア・メインテナンス要求と引き続くバリアとは、インターコネクトで受信される。要求が少なくとも１つのパスに沿って送信され、バリアがその後に続けられる。バリアがブロッキング・バリアである場合、バリアの対象であり、トランザクション要求ストリームの中でバリアの後にあるトランザクション要求は上流のどこかでブロックされ、よって、早期応答ユニットが適合している場合、ブロックされたトランザクションを解放する応答が送信される。早期応答ユニットのロケーションに依存して、ブロッキングユニットは再びブロックすることがあり、この場合、この閉塞は後続の応答ユニットによってブロック解除される。バリアは、トランザクションがいずれの方向にもバリアを通過することを許可しないことにより、バリアが適用されるトランザクションの順序付けを維持する。
【０１０６】
図７および８は、インターコネクトを特有の特性を有し、バリアがどのドメインに属しているかに依存して、バリアが別々に取り扱われ、特に、バリアに対して応答され、バリアがそれ以上ブロックしないようにする異なるドメインに分割する方法を概略的に示している。これらの特性は、これらのバリアに関連付けられたレイテンシが削減されることを可能にする。
【０１０７】
トランザクションの正しい順序付けがレイテンシを過度に増大させることなく維持されることを確実にするため、マスタとインターコネクトの部分とを異なるドメインに分類し、ドメイン内部のバリアおよびトランザクションを制御する多数の異なる方法が存在する。この点に関して、ある種のルールがドメインに関係するインターコネクトのトポロジに適用される場合、バリアは、バリアのレイテンシを削減するため利用可能であるある種の特性を有している。ドメインを特有の方法で配置することは、システムの許可されたトポロジに制約を生じさせることがあるが、バリアによって生成されるレイテンシをさらに減少させることがあるので、後述されるドメインの種々の可能な実施に有利な点と不利な点とがある。よって、例えば、キャッシュ・メインテナンス・トランザクションがキャッシュ・メインテナンス・トランザクションと関連付けられたドメイン・インジケータを有する場合、キャッシュ・メインテナンス・トランザクションの後に類似したドメイン・インジケータを伴うバリア・トランザクションが続けられる可能性があり、後述されるように、バリアに関するドメイン・インジケータはドメイン境界に関する早期応答を生成可能であり、それによって、前の閉塞がクリアされることを許可することによりバリアと関連付けられたレイテンシを削減する。さらに、この特性が使用される場合、応答信号の受信は、バリア・トランザクション要求がインターコネクトの中のこのロケーションに到達したこと、従って、キャッシュ・メインテナンス要求がこのロケーションにさらに到達したことを指示する。このようにして、キャッシュ・メインテナンス要求のロケーションがキャッシュ・メインテナンス操作とは独立に判定可能である。
【０１０８】
バリア・トランザクションはキャッシュ・メインテナンス・トランザクションと同じドメイン・インジケータを有することがあるが、異なるものを有してもよく、または、バリア・トランザクションはドメイン・インジケータを有し、キャッシュ・メインテナンス・トランザクションはこのようなインジケータを有しないことがあることに注意を要する。例えば、キャッシュフラッシュの場合、この操作は何らかのライトバックが実行されるメモリへ進む必要があるが、後続のトランザクションが正確に実行されるため、フラッシュによって始動させられたトランザクションが外側ドメインに到達すると、他のトランザクションが進行することを安全に許可できることがある。このような場合、バリア・トランザクション要求を適切なドメイン・インジケータでマーキングすることは、バリア・トランザクションが外側ドメインに到達したとき、応答が送信されることを許可し、その時点で、イニシエータ機器はトランザクションをさらに送信可能である。
【０１０９】
ドメインの配置のすべてにおいて、バリア・トランザクションが特有のドメインに関係しているとしてマークされている場合、バリア・トランザクションがそのドメインの外側にあり、ブロッキング・バリアであるとき、バリア・トランザクションは、再合流領域の中を除いて、常にブロック解除可能である。ある種のタイプのバリアは、そのドメインの内側において、相互結合領域の中をのぞいてブロック解除可能である。ドメインの中で常にブロックするバリアのタイプがキャッシュ・メインテナンス要求の後で使用される場合、このバリアに対する応答は、バリアと、従って、キャッシュ・メインテナンス要求との両方がバリアによって指示されたドメインから出たことを指示する。
【０１１０】
第１の「ヌル」実施では、これらのドメインは考慮されていない。すべてのバリアは、システムのすべての部分ですべてのトランザクションに適用されるとして取り扱われる。これは、バリアからのレイテンシが高いので、明らかに性能が低い。しかし、これは、（メンバーシップは効果がないとしても）無制限、任意のドメイン・メンバーシップと、トポロジとを可能にさせるので、常に構築可能である。これは、すべてのドメインにすべてのマスタを含むすべてのドメインと理論的に等価である。
【０１１１】
代替的な「ほぼヌル」実施では、各マスタに関係する非共用ドメインが存在し、これらのドメインに関連したバリアはこのドメインの外側で別々に取り扱われる。非共用バリアは、マスタからの入力を越えた共用可能ドメインの外側にあるので、非共用バリアは、インターコネクト全体でそのように取り扱うことが可能であり、従って、インターコネクトのすべての非再合流部分において非ブロッキングである。他の共用可能ドメインでバリア・トランザクションはヌル実施の場合のように取り扱われる。これは、非共用ドメイン境界を発行器またはマスタ入力とすることと論理的に等価であり、すべての他のドメインがすべての他のマスタを収容する。
【０１１２】
代替的な「単純」実施は、やや制限されたトポロジと改良された性能とを有する。このアプローチは、許容されることがある制限のレベルに依存して２つの異なる解決策をもたらす。
【０１１３】
許容可能ドメイン・メンバーシップに関する３つの制限はこれらのアプローチの両方に共通である。
１．  オブザーバの非共用ドメインはそれ自体が離れている。
２．  オブザーバのシステム共用ドメインは、直接的または間接的に通信可能である少なくともすべての他のオブザーバを備える。
３．  オブザーバの内側の共用ドメインのすべてのメンバはオブザーバの外側の共用ドメインのメンバでもある。
【０１１４】
これらのうちの最初の２つの制限は〔３〕によって課される制限である。その上、２つの解決策のそれぞれは、特定のトポロジ的制限と、場合によっては、付加的な共用可能ドメイン・メンバーシップ制限とを有する。
【０１１５】
２つの実施のうちの最初の実施は、各ロケーションが単一のドメインの中にあり、よって、ドメイン、内側、外側、または、システムのうちの１種類だけにあるインターコネクトの中の各ロケーションに依存する制限を必要とする。これを可能にするため、付加的な共用可能ドメイン・メンバーシップ制限が強制されなければならない。
【０１１６】
いずれかのオブザーバのいずれかの共用可能ドメインのすべてのメンバは、その共用可能ドメインの中のすべての他のメンバを同じレベルの共用可能ドメインのメンバとして保有しなければならない。すなわち、オブザーバＢがオブザーバＡの内側共用可能ドメインのメンバである場合、対応してＡはＢの内側共用可能ドメインのメンバでなければならない。
【０１１７】
満たされるべきトポロジ的制限は以下の通りである。
１．  ドメイン境界はドメインのすべてのメンバを含まなければならない。
２．  ドメインから外に出るものでドメインにマージするものはなく、すなわち、ドメイン境界は、ドメイン境界の内側にないものの下流にあるものを含むべきではない。
３．  すべてのドメイン境界はドメイン・バイセクション・リンクに位置しなければならない。
【０１１８】
この場合、ドメイン境界を考慮する単純な方法は、高度を表現するトポロジ的輪郭線として考慮することである（垂直面は許容されるが、オーバーハングは許容されない）。各マスタは同じ高さにあり、各共用可能ドメイン輪郭は同じタイプのすべての他のものと同じ高さにある。垂直壁は異なるタイプの共用可能ドメインが同一であることを許可するため許容されるが、共用可能ドメインの交差を許可するオーバーハングは許容されない。
【０１１９】
これらのトポロジ的制限は、ドメインにマージするものがないこと、すなわち、（制限１に違反する）ドメインのメンバも（制限２に違反する）非メンバもドメインにマージしないことを必要とする。メンバの下流のスプリットがドメインから外へ出て、そして、ドメインの外にあるものとさらにマージすることなく、ドメインへ再マージする場合、流出と再流入との間の部分はドメインの中に有効に留まる。
【０１２０】
組み合わされたトポロジ的制限およびドメイン・メンバーシップ制限は、共用可能ドメインの内部で、バリアがそのドメインから外に出たオブザーバからのトランザクションと衝突し得ないことと、トランザクションがドメインから出たとき、トランザクションと絶対にマージするドメインのすべてのメンバからのすべてのトランザクション・ストリームとマージしていることとを確実にする。これらの制限は、内側の共用可能ドメインの外側にあるロケーションがすべての内側の共用可能ドメインの外側にあることと、外側の共用可能ドメインの外側がすべての外側の共用可能ドメインの外側であることとをさらに確実にする。
【０１２１】
この結果として、バリアがスプリット点でブロックされるべきであるという要件は、共用可能ドメインのメンバはロケーションの下流でマージできないという要件がこのような制約付きのシステムの中でそのドメインから外へ出るバリアによって暗黙的に満たされるので、バリアの共用可能ドメインをそのスプリット点が内部に存在しているドメインタイプと単に比較することにより判定されることがある。
【０１２２】
この仕組みは、ドメイン出口点における明示的な検出コンポーネントを必要とするバリアの共用可能ドメインから外へ出るバリアの明示的な表示、または、１つずつの関連したスプリット点での状態の判定のいずれかによって実施可能である。
【０１２３】
これらの２つの実施のうちの２番目は、複数のドメインの中のロケーションを可能にする。この実施は、バリア・トランザクションがその共用可能ドメインから出ると、変化させることにより非ブロッキングになるように、共用可能ドメインの境界を通過するときに修正されるバリア・トランザクションの指示された共用可能ドメインに依存する。バリア・トランザクションが内側または外側共用可能ドメインから消えるとき、バリア・トランザクションの指示されたドメインは非共用可能に向かって移動し、非共用可能としてマークされるとき、そのドメインの外側にあることがわかるので、非ブロッキングである可能性がある。
【０１２４】
この場合、共用可能ドメイン・メンバーシップに関する付加的な制限はより緩い。
いずれかの２つの共用可能ドメインＡおよびＢに対し、Ａのすべてのメンバは同様にＢのメンバでもあることが必要であり、または、Ｂのすべてのメンバは同様にＡのメンバであることが必要であり、または、両方である（この場合、ＡおよびＢは同一である）。換言すると、ドメイン境界は交差しないことがある。
【０１２５】
同じトポロジ的制限が必要とされる。
１．  ドメイン境界はドメインのすべてのメンバを含まなければならない。
トポロジの最大フレキシビリティを許容するため、以下の通りドメイン境界が描かれるように、トポロジコンポーネント（スプリットおよびマージ）を分解できることだけが必要である。
２．  ドメインから外に出るものでドメインにマージするものはなく、すなわち、ドメイン境界は、ドメイン境界の内側にないものの下流にあるものを含むべきではない。
３．  ドメイン境界はドメイン・バイセクション・リンクを越えて位置している。
最終的に、付加的なトポロジ的制限がドメイン・メンバーシップに関するより緩い制限によってもたらされる問題を補償するために課される。
４．  ロケーションが外側共用可能ドメインから既に外にでているマスタを除く様々なマスタのための様々な個数のドメインに対する境界ロケーションは存在できない。
【０１２６】
制限４は、バリアがドメイン境界を横切るときに修正されるべき場合に、バリアが属しているすべてのドメインの境界を横切ることを確実にする。これは、修正操作がバリアのオリジネータに依存しないことを確実にする。
【０１２７】
バリアが修正され、非ブロッキング状態を獲得する場合、バリアは、バイセクションリンク上にある場合には、当然ながら、非ブロック状態でもよいが、いくつかの状況では、バリアは、相互結合型リンク上にあるかどうかとは無関係に非ブロック状態でもよい。ドメイン境界を横切るリンクがドメインに関する限りバイセクションであるドメイン・バイセクション・リンクである場合、すなわち、ドメイン境界を横切るリンクがそれらの固有のドメインからのパスとマージせず、他のドメインから来るパスだけとマージする場合、バリア・トランザクションの修正がそこで行われ、非ブロッキングもまたその点から行われることがある。
【０１２８】
制限２は、指示されたドメインをドメイン出口で非共用可能に変更するのに加えて、指示されたドメインがドメイン入口での非共用可能から変更される場合、放棄されることがある。これは、飽和しないドメイン・インジケータ、または、飽和が起こらないように入力されることがあるドメインの個数に関する制限を必要とする。その上、これは結果として指示された範囲の増加に起因して、非メンバからのトランザクションをブロックしているドメインに入力したバリアを生じる。
【０１２９】
図７ａは、インターコネクト内部でのドメインの上記実施を非常に概略的に示している。同図において、マスタは、インターコネクトの内部に示されているが、実際には、マスタは当然ながらインターコネクトの外部にある。各マスタ２０、２２、２４、２６、２８は、ストリーム、または、マスタによって生成されたトランザクションだけに関係し、マスタを直接に取り囲む非共用可能ドメイン１２０、１２２、１２４、１２６、１２７を有している。従って、複数のマスタまたは同様に単に同じマスタを取り囲むかいくつかの次の階層レベルドメインが存在するので、マスタ２０および２２は、非共用可能ドメインを有し、周りに内側ドメイン１２１を有し、一方、マスタ２４は内側ドメイン１２５を有し、マスタ２６は非共用可能ドメイン１２６および内側ドメイン１２７を有し、マスタ２８非共用可能ドメイン１２８および内側ドメイン１２９を有している。その結果、この場合にドメイン３１および３３であるマスタを取り囲む外側ドメインが存在する。その結果、インターコネクト全体であるシステムドメインが存在する。図示されているように、ドメインは互いの内部に完全に位置し、決して遮断しない。ドメインからのすべての出口パスがバイセクションパスであるという制約がさらに存在する。このようにドメインを制約することにより、これらのドメインから出るトランザクションがある種の方法で制約されることを確実にすることが可能であり、ドメインの内部でバリアが正確に機能するならば、トランザクションがバイセクションパスに出るとき、トランザクションは正しい順序のままである。これは特有の方法でこれらのドメインに関するバリア・トランザクションの制御を可能にする。
【０１３０】
図７ｂは、マスタｐ０およびｐ１を含むドメインへの出口ノード１３５を概略的に示している。この出口ノード１３５は制御回路７０によって制御され、このノードでは、バリア・トランザクションおよび制御回路が制御するトランザクションは正しい順序であることがわかっている。ここで、上述されているように、バリア・トランザクションは、必ずしもすべてのトランザクションを制御しないが、特有のマスタによって生成されたトランザクション、または、特有の機能のトランザクションを制御することがある。
【０１３１】
共用可能ドメインの場合、バリア・トランザクションは特有のドメインからのトランザクションを制御するものとしてマークされる。よって、トランザクションは、すべてのトランザクションを制御するのでシステム・バリア・トランザクションとしてマークされることがあり、ストリームもしくは非共用可能ドメインから、内側ドメインから、または、外側ドメインからのトランザクションを制御するものとしてマークされることがある。いずれにしても、バリア・トランザクションがドメインから出るとき、バリア・トランザクションは、本実施では、この階層レベルを削減させることが可能であり、その結果、バリア・トランザクションが内側ドメインから出るときに外側ドメイン・バリアである場合、内側ドメインからのトランザクションを制御するバリア・トランザクションまで削減され、そして、バリア・トランザクションが外側ドメインから出るときに、制御の階層レベルをトランザクションがバリア・トランザクションによって遅れさせられる必要がない非共用可能ドメインまで削減される。これが可能であるのは、この時点で、すべてのトランザクションがこのバリアに関して順序付けられ、再合流パスが存在しない場合、インターコネクトが順序付けを必ず正しくするからである。システム・バリアは、常にあらゆる場所であらゆるものに適用されるので、既存のドメインで変化しないことに注意を要する。
【０１３２】
再合流パスがドメインの内部に存在するならば、いずれかのブロッキング・バリアは、再合流領域を越えて遮断性でなければならないことに注意を要する。再合流パスをもたらすさらなるインターコネクトがドメインを有するインターコネクトに接続されている場合、バリアを制御するドメイン・システムはもはや機能しない。ドメインおよびドメインの階層に影響を与えるインターコネクトが追加される場合、システムは、バリア・トランザクションの中の共用可能ドメイン・インジケータが、バリア・トランザクションがドメインから出るときに削減されないように制御される。
【０１３３】
再合流領域に関して、特有のアドレスに向けられたいくつかのトランザクションは、再合流領域を通る特有のルートに沿って進むために抑制されることがあり、このような場合、再合流領域はそのアドレスに関して再合流しないことに注意を要する。インターコネクトは、トランザクションが特有のルートに沿ってすべてのアドレスに対し特有のアドレスへ進むように制約されることがあり、このような場合、何らかの再合流領域は、再合流領域がシステムに課すかなりの制約のため有利であることがある相互結合領域として取り扱われることがある。
【０１３４】
インターコネクトが構成される方法に起因して、非共用可能バリアとしてマークされていないドメイン内部のバリア・トランザクションは、実質的に、別のドメインからのトランザクションに衝突しないときに衝突するいずれかのドメインのトランザクションを制御する。非共用可能バリアとしてマークされたバリア・トランザクションは、バリア・トランザクションの後に続くいずれのトランザクションも遅らせないが、このトランザクションに関して再順序付けされることが許可されるトランザクションは存在しない。このようにして、インターコネクト・ドメインをこのように配置し、そして、ドメインの出口でのインジケータの階層レベルを削減することにより、バリア・トランザクションが衝突するすべてのトランザクションを遅らせるか、遅らせないかを判定する簡単な方法は、制御コンポーネントがインターコネクト内部でどのドメインに属しているかを正確に知る必要無しに使用される。
【０１３５】
ドメインのためのさらなる可能な実施は「複雑な」実施である。この実施は、上記のトポロジ的制限またはドメイン・メンバーシップ制限が非常に制限的であると考えられる場合に使用可能である。非共用可能なシステム・ドメイン・メンバーシップに関する要件が維持されるべきであると仮定すると、必要とされる情報は、そのロケーションにおいて非ブロッキングであると見なされるバリア発行者と共用可能ドメインとの組み合わせの明示的に列挙されたリストである。従って、図５ａおよび５ｂに関して記載された実施のようにバリア自体からバリアのブロッキング特性を判定できるようにするのではなく、バリアのブロッキング特性は、ドメイン情報が記憶されているロケーションから判定される。
【０１３６】
これは、関連した各ロケーションでの２つのリスト、すなわち、内側共用可能ドメインのためのリストと、外側共用可能ドメインのためのリストとを用いて実行可能である。各リストは、ロケーションがそのドメインの外側である集合またはバリア源を指示している。代替的に、ロケーションが外側であるソースの共用可能ドメインを示す２ビット値をもつソースのリストを記憶することが可能である。
【０１３７】
しかし、情報が提示されても、設計再使用を可能にすることは、システムが再使用されるときにドメイン情報を表現するために様々な要件に起因して、著しくより複雑であり、かつ、より困難であることが明かである。
【０１３８】
図８は、このようなインターコネクトの実施例を示している。このインターコネクトは、４台のマスタＳ０、Ｓ１、Ｓ２またはＳ３からのトランザクション要求を受信する。Ｓ０およびＳ１は、内側ドメイン２００の中にあり、一方、Ｓ２またはＳ３は内側ドメイン３０１に含まれ、これらはすべてが外側ドメイン３０２に含まれる。他のドメインを有する図示されていない他のマスタが存在する。
【０１３９】
ロケーション３１０で、１つがＳ２から来るトランザクションのための内側ドメインと、Ｓ０またはＳ１から来るトランザクションのための外側ドメインとに含まれる。よって、このロケーションはそのようにマーク可能であり、バリアが受信されたとき、バリアがどのドメインに関係するかを判定可能であり、よって、バリアがそのドメインの外側にあるかどかを判定可能である。従って、Ｓ０、Ｓ１内側ドメインに適用されるバリアはそのドメインの外側にあり、実施形態に依存して、そのようにマーク可能であるか、または、早期応答が送信される。これは明らかに非常に複雑である。
【０１４０】
この実施例の代替案は保守的で複雑な実施である。この代替案は、複雑な実施のトポロジ的な自由およびドメイン・メンバーシップの自由が必要とされるが、実施および再使用の問題が回避されなければならない場合に使用される。この場合、ドメイン・ロケーションに固有の挙動を示すべきあらゆるコンポーネントがドメインの特有のレベルにあり、正確な挙動を達成すると考えることが可能である。コンポーネントが実際に内部に位置している最小ドメインにコンポーネントがあると考えられる場合、実際にドメインの外側にあるバリアの挙動が保守的（さらに正確）であり、そして、それらのドメインの内部にあるバリアに対し正確である。この点について、バリア、ドメインまたはトランザクションの特性は変更可能であり、それらの特性がより制限的になるように変更される場合により効果的に取り扱われることを可能にすることに注意を要する。従って、内側としてマークされたバリアは、外側バリアとして取り扱うことが可能であり、外側ドメインに適用されるとしてマークされたトランザクションは内側ドメインに適用されるとしてマーク可能である。
【０１４１】
このアプローチを用いて、ドメインを知っていることが必要とされるコンポーネントは、単一ドメインを有するように単にプログラムまたは構成可能である（内側ドメイン・メンバーシップの安全なデフォルトを用いて、これはパワーアップ時に使用可能である）。
【０１４２】
よって、本実施では、ドメイン内部のロケーションは、非共用可能ドメインを除く最低階層レベルのドメインであり、そのロケーションがメンバである最も制限的な挙動をもつドメインの特性を有するものとしてマークされる。そのロケーションでのバリア・トランザクションは、その後、このようなドメインの内部にあるものとして取り扱われる。このような配置では、ドメインは、他のドメインの部分的な一部分であることが許可される。この配置では、インターコネクトの中でバリアがある場所を知ることを必要とせずにバリアのブロッキング挙動を調整するために、バリアがドメインから出るときにバリア上のマークを変更するのではなく、インターコネクトの中のロケーションは、バリアが位置している最低階層または最小共用可能なドメインに依存して特有のドメインの中にあるものとしてマークされる。
【０１４３】
例えば、図８の実施例では、ロケーション３１０は、３個の異なるマークを用いてマークされる必要がなく、ロケーションが内部にある最小共用可能なドメイン、すなわち、内側ドメインを用いてマークされるだけである。よって、この場合内側または外側であるとしてマークされるバリアは、このドメインの内部にあると考えられ、Ｓ０、Ｓ１内側ドメインからのバリアは、そのドメインの内部にないとしても、そのドメインの内部にあると考えられる。よって、早期応答は送信可能ではなく、インターコネクトのレイテンシが増加することはこのアプローチの弱点である。しかし、ドメインのマーキングは、バリアがドメインの内部にあるかどうかの判定と同様に簡単である。
【０１４４】
本発明の種々のさらなる態様および特徴は請求項において明確にされている。種々の変形が本発明の範囲から逸脱することなく上述された本明細書中の実施形態になされる可能性がある。
【０１４５】
発明の例示的な実施形態が添付図面を参照して本明細書中で詳細に記載されているが、発明はこれらの実施形態そのままに限定されることなく、種々の変更および変形が請求項によって明確にされているような発明の範囲および精神から逸脱することなく当業者によってその点でなされる可能性があることが理解されるべきである。
【符号の説明】
【０１４６】
１０  インターコネクト
２０、２２、２４および２６  マスタ
３０、３２、３４および３６  スレイブ
４１および４２  スプリット点
４４および４５  マージ点
４０  相互接続部
５０および５２  バイセクションパス
６０  再順序付けバッファ
７０  制御回路
８０  早期応答ユニット
９０  ブロッキング回路
【図１】
2011138481.tif 000003
【図３】
2011138481.tif 000004
【図４】
2011138481.tif 000005
【図５】
2011138481.tif 000006
【図６】
2011138481.tif 000007
【図７ａ】
2011138481.tif 000008
【図７ｂ】
2011138481.tif 000009
【図８】
2011138481.tif 000010
【図２】
2011138481.tif 000011
【外国語明細書】
2011138481.tif 000012
2011138481.tif 000013
2011138481.tif 000014
2011138481.tif 000015
2011138481.tif 000016
2011138481.tif 000017
2011138481.tif 000018
2011138481.tif 000019
2011138481.tif 000020
2011138481.tif 000021
2011138481.tif 000022
2011138481.tif 000023
2011138481.tif 000024
2011138481.tif 000025
2011138481.tif 000026
2011138481.tif 000027
2011138481.tif 000028
2011138481.tif 000029
2011138481.tif 000030
2011138481.tif 000031
2011138481.tif 000032
2011138481.tif 000033
2011138481.tif 000034
2011138481.tif 000035
2011138481.tif 000036
2011138481.tif 000037
2011138481.tif 000038
2011138481.tif 000039
2011138481.tif 000040
2011138481.tif 000041
2011138481.tif 000042
2011138481.tif 000043
2011138481.tif 000044
2011138481.tif 000045
2011138481.tif 000046
2011138481.tif 000047
2011138481.tif 000048
2011138481.tif 000049
2011138481.tif 000050
2011138481.tif 000051
2011138481.tif 000052
2011138481.tif 000053
2011138481.tif 000054
2011138481.tif 000055
2011138481.tif 000056
2011138481.tif 000057
2011138481.tif 000058
2011138481.tif 000059
2011138481.tif 000060
2011138481.tif 000061
2011138481.tif 000062