(57)【要約】      （修正有）【課題】ターゲットＩＰコア（これらは第１の集合ターゲットを構成する２以上のチャネルを含む）へのインターコネクト経路指定トランザクションに適する技術を提供する。【解決手段】第１の集合ターゲットを構成する２以上のチャネルは、第１の集合ターゲットに割り当てられたアドレス空間をポピュレートして、イニシエータＩＰコアからは単一のターゲットとして見える。インターコネクト装置は、分断論理１５８４を実装し第１のイニシエータＩＰコアからの個々のトランザクション（アドレス・シーケンスが、第１の集合ターゲット内で第１のチャネルから第２のチャネルへと、チャネル・アドレス境界を交差する）を、２以上のバースト・トランザクションに分断する。分断された１番目のバースト・トランザクションは第１のチャネルのアドレス境界１５２０内に適応し、２番目のバースト・トランザクションは第２のチャネルのアドレス境界１５２２内に適応する。【選択図】図１４
2011054184.tif 000002
【特許請求の範囲】
【請求項１】
インターコネクト装置に結合された１つ又はそれよりも多くのターゲットＩＰコアの間で、トランザクションを該ターゲットＩＰコアの１つと関連付ける提供されたトランザクションアドレスに基づいて該トランザクションを経路指定する集積回路のためのインターコネクト装置であって、
イニシエータＩＰコアに対して単一ターゲットのように見える第１の集合ターゲットに割り当てられたアドレス空間をポピュレートする２以上のチャネルを有する第１の集合ターゲットを含む１つ又はそれよりも多くのターゲットＩＰコアに対して割り当てられたアドレスを有するアドレス・マップを実施し、
前記第１の集合ターゲット内の第１のチャネルから第２のチャンネへのチャネル・アドレス境界と交差する第１のイニシエータＩＰコアからの個々のトランザクションを、単一チャネルの該アドレス境界内に各々適合する２以上のバーストトランザクションに分断する分断論理を実施するように構成される、
ことを特徴とするインターコネクト装置。
【請求項２】
前記第１の集合ターゲットの前記第１のチャネル及び第２のチャネルは、前記アドレス・マップにおける該第１の集合ターゲットのためのアドレス空間においてインタリーブされたメモリ・チャネルであり、前記分断論理は、該第１の集合ターゲットにおいて前記チャネル・アドレス境界と交差する個々のバーストトランザクションを検出し、かつそれを分断して各バーストトランザクションのバースト・サイズ及び開始アドレスが該チャネル境界から独立であることを可能にするように構成されることを特徴とする請求項１に記載の装置。
【請求項３】
各メモリ・チャネルは、他のメモリ・チャネルからのメモリ・インタリーブ・セグメントとインタリーブされた所定のメモリ・インタリーブ・セグメントを有し、該メモリ・チャネルの各メモリ・インタリーブ・セグメントは、システム設計者によるメモリ設計仕様によって許容されるバースト長要求によって抑制されないサイズ粒度で前記アドレス空間において形成され、かつインタリーブされることを特徴とする請求項２に記載の装置。
【請求項４】
各メモリ・チャネルモジュールが、システム・アドレス・マップの前記アドレス空間においてインタリーブされて、経時的な該メモリ・チャネルモジュールの各々にわたる要求の自動的な統計的拡散を可能にし、前記第１の集合ターゲットを構成する該メモリ・チャネルモジュールの部分集合をターゲットにするトラフィックが多すぎる時に生じる可能性がある個別のメモリ・チャネルモジュール間の不均一な負荷バランスの位置を回避し、
前記アドレス・マップは、２以上の領域に分割され、各インタリーブされたメモリ・チャネルモジュールが、それらの領域の少なくとも１つに割り当てられて、その領域のための前記アドレス空間をポピュレートし、
アドレス論理が、前記アドレス・マップと前記集積回路における前記第１の集合ターゲットの既知の構造的編成とを問い合わせて、該集合ターゲットのインタリーブされたアドレス空間を復号し、該第１の集合ターゲットを構成するどのメモリ・チャネルモジュールが第１の要求に供することが必要であるかを判断するために、該第１の集合ターゲットを構成する該メモリ・チャネルモジュール間の物理的区別を判断する、
ことを特徴とする請求項２に記載の装置。
【請求項５】
機械によって実行された時に該機械をして「電子設計自動化」工程に使用される請求項１に記載のインターコネクト装置のためのモデル表現を発生させる命令を格納することを特徴とする機械可読記憶媒体。
【請求項６】
前記分断論理は、前記第１の集合ターゲット内で第１のメモリ・チャネルから第２のメモリ・チャネルへのメモリ・チャネル・アドレス境界と交差する個々の２次元（２Ｄ）トランザクションを、１よりも大きい高さ値、並びに該第１の集合ターゲットの該メモリ・チャネル・アドレス境界内に適合するように分断されたストライド及び幅寸法を有する２以上の２Ｄトランザクションに分断するように構成されることを特徴とする請求項１に記載の装置。
【請求項７】
バースト要求内の要求バイトの最初のワードの開始アドレスと該バースト要求内の要求バイトの最後のワードの終了アドレスとが、そのバースト要求内の該要求バイトを１つ又はそれよりも多くのメモリ・チャネル・アドレス境界にわたって延ばして該バースト要求内のワード要求の全てを充足させる時を検出するように構成された検出器、
を更に含み、
前記バースト要求に対して前記経路指定されたトランザクションは、１つ又はそれよりも多くの要求及び１つ又はそれよりも多くの任意的な応答を含む、
ことを特徴とする請求項６に記載の装置。
【請求項８】
前記分断論理は、少なくとも第１及び第２のメモリ・チャネル上に及ぶデータを利用する、第１のイニシエータＩＰコアから前記第１の集合ターゲットへの第１のスレッドからの第１の２次元（２Ｄ）トランザクションと、デッドロック分断論理を実施する該分断論理に基づいて同時に未処理であるように少なくとも該第１及び該第２のメモリ・チャネル上に及ぶデータを利用する、第２のイニシエータＩＰコアから該第１の集合ターゲットへの第２のスレッドからの第２の２Ｄトランザクションとをサポートするように構成されることを特徴とする請求項７に記載の装置。
【請求項９】
前記メモリ・チャネルは、メモリ・スケジューラを通じてアドレス可能であり、第１のメモリ・チャネルモジュールは、２Ｄデータに専用の領域に割り当てられた２以上の所定のメモリ・インタリーブ・セグメントを有することを特徴とする請求項２に記載の装置。
【請求項１０】
前記アドレス・マップは、設定可能であり、かつ各メモリ・チャネルモジュールが、他のメモリ・チャネルモジュールからのメモリ・インタリーブ・セグメントでインタリーブされた所定のメモリ・インタリーブ・セグメントを有する場合に、前記第１の集合ターゲットを含む１つ又はそれよりも多くの集合ターゲット上へのアドレス領域の設定可能マッピングをサポートし  前記設定可能アドレス・マップは、２以上の領域に分割され、該設定可能アドレス・マップは、動的に変更可能な前記１つ又はそれよりも多くの集合ターゲットの構成を柔軟にサポートするために各領域に対して設定することができる設定可能パラメータを有し、各インタリーブされたメモリ・インタリーブ・セグメントは、それらの領域の少なくとも１つに割り当てられて、その領域のための前記アドレス空間をポピュレートする、
ことを特徴とする請求項２に記載の装置。
【請求項１１】
各領域における前記設定パラメータは、ハードウエアが、構築される時、実行時にオペレーティング・システム（ＯＳ）ソフトウエアによってプログラムに書き込まれる時、設計時に電子設計ソフトウエアを通じてプログラムに書き込まれる時、シミュレーションがソフトウエアを通じて実行された後に変更可能である異なるオン・チップのピン組合せを選択することによって前記集積回路が製作される時に物理的に変更される時、該チップにわたって経路指定された特定の制御線上で搬送される電圧をアサート／アサート停止することによって動的に変更される時、及びこれらのあらゆる組合せから成る群から選択された時間に設定することができることを特徴とする請求項１０に記載の装置。
【請求項１２】
前記第１の集合ターゲットは、前記集積回路に対して外部のメモリ・チャネルモジュールであり、
前記集積回路は、システムオンチップ（Ｓｙｓｔｅｍ−ｏｎ−ａ−Ｃｈｉｐ）であり、前記動的に変更可能な構成は、単一の事前設計のシステムオンチップ設計が、異なる外部メモリ構成を使用する広範なパッケージ化オプションをサポートすることを可能にし、メモリ・チャネル−領域間割り当ての再設定を可能にし、かつ単一パッケージの作動の異なるモードをより良くサポートするためにチャネル間のインタリーブする境界の再設定を可能にする、
ことを特徴とする請求項１１に記載の装置。
【請求項１３】
設定パラメータの中央供給源から前記１つ又はそれよりも多くの領域設定パラメータ値を受け取って前記第１の集合ターゲットの前記柔軟な再設定を可能にするためのテーブルが、各エージェントにおいてローカルに維持されることを特徴とする請求項１０に記載の装置。
【請求項１４】
集積回路のためのインターコネクト装置上で、該インターコネクト装置に結合された１つ又はそれよりも多くのイニシエータＩＰコアと１つ又はそれよりも多くの集合ターゲットを含む１つ又はそれよりも多くのターゲットＩＰコアとの間でトランザクションを経路指定し、２以上のチャネルが、該イニシエータＩＰコアへの単一のターゲットのように見える第１の集合ターゲットに割り当てられたアドレス空間をポピュレートする段階と、
前記第１の集合ターゲット内で第１のチャネルから第２のチャネルへのチャネル・アドレス境界と交差する第１のイニシエータＩＰコアからの個々のトランザクションを、単一チャネルの該アドレス境界内に各々適合する２以上のバーストトランザクションに分断論理で分断する段階と、
を含むことを特徴とする方法。
【請求項１５】
少なくとも第１及び第２のメモリ・チャネル上に及ぶデータを利用する第１のスレッドからの第１の２次元（２Ｄ）トランザクションを前記第１のイニシエータＩＰコアから前記第１の集合ターゲットまで経路指定する段階と、
少なくとも前記第１及び前記第２のメモリ・チャネル上に及ぶデータを利用する第２のスレッドからの第２の２Ｄトランザクションを第２のイニシエータＩＰコアから前記第１の集合ターゲットまで経路指定する段階と、
を含み、
前記第１の２次元（２Ｄ）トランザクション及び前記第２の２Ｄトランザクションは、デッドロック分断論理を実施する前記分断論理に基づいて同時に未処理にすることができる、
ことを特徴とする請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願 
本出願は、２００７年６月２５日出願の「内部制御を実施するインターコネクト」という名称の米国特許仮出願出願番号第６０／９４６、０９６号、並びに２００８年６月２４日出願の「内部制御を実施するインターコネクト」という名称の米国一般特許出願出願番号第１２／１４４、８８３号に関し、かつこれらの特許の恩典を請求するものである。
【０００２】
著作権の通知  本特許文書の開示内容の一部は、著作権保護を受ける材料を含む。著作権所有者は、ソフトウエアエンジン及びそのモジュールの何人による複製にも、それが米国特許商標局特許ファイル又は記録に現れる時には異議はないが、他の場合には、全ての著作権を保有するものである。
【０００３】
[技術分野]  本発明の実施形態は、一般的に内部制御を実施するインターコネクト装置に関する。
【背景技術】
【０００４】
異なるアドレスで並列に複数のＤＲＡＭにアクセスするための複数のＤＲＡＭインタフェースを、ＳＯＣが有する時、各ＤＲＡＭインタフェースは、一般的にメモリ「チャネル」と呼ぶことができる。従来の手法では、チャネルは、インタリーブされず、従って、トラフィックを発生させるアプリケーション・ソフトウエア及び全てのハードウエア・ブロックは、それらが負荷の均衡を取るためにチャネルにわたって均一にそのトラフィックを拡散させることを確実にする必要がある。また、過去には、システムは、複数の要求にスレッドを分割するアドレス発生器を使用しており、各要求は、それ自体のメモリ・チャネルに送られる。これは、イニシエータ要求の発生時にソフトウエア及びシステム機能ブロックにメモリ・システムの編成及び構造が既知であるべきであることを強制した。また、一部のスーパー・コンピュータの従来のシステムにおいては、システムは、バースト長要求のサイズでのメモリ・チャネルの分割を強制した。また、一部の従来技術においては、プロセッサからの要求は、１つ又はそれよりも多くのアドレス発生器（ＡＧ）により個々のメモリ・アドレスに拡張されるメモリ演算を実行する。適切な並列性を供給するために、各ＡＧは、分割されたメモリ・チャネルの複数のセグメントに対してサイクル毎に複数のアドレスを発生させることができる。メモリ・チャネルは、要求されたアクセスを実行し、発生源のＡＧに関連の並べ替えバッファ（ＲＢ）に読取データを戻す。並べ替えバッファは、メモリ・チャネルからの回答をイニシエータ・コアに呈示することができるように、それらを回収して並べ替える。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の手法では、トラフィックは、メモリ・サブシステムにおいて中央経路指定（セントラル・ルーティング）ユニットに深く分割される場合があり、これは、トラフィック及び経路指定混雑を増大し、設計及び検証の複雑性を増大し、トポロジーの自由を排除し、かつ待ち時間（レイテンシー）を増大させる。作り出された集中点は、帯域幅閉塞点（バンド幅チョーク・ポイント）、経路指定混雑点（ルーティング・コンジェスチョン）、及び達成可能な周波数を低下させてスイッチング電力消費量を増大させると考えられる伝播経路長の延長化の原因として作用する可能性がある。また、一部のシステムは、並べ替え（リオーダ）バッファを使用してシステムにおけるトランザクションの予想実行順序を維持する。
典型的な手法では、トラフィックが合流してターゲットから来るのが早すぎる応答データを保持する点でエリア消費型並べ替えバッファリングが用いられる。
【課題を解決するための手段】
【０００６】
内部制御を実施するインターコネクト装置を有する集積回路に一般的に関連する方法、装置、及びシステムを説明する。インターコネクト装置は、トランザクション順序付けを維持しながら複数のターゲットへの未処理トランザクションをサポートするためにトランザクション経路順序を維持し、要求経路順序を維持し、応答経路順序を維持し、制約されないバースト・サイズで集合ターゲット内のチャネルをインタリーブし、集合ターゲット内のチャネルと、１つ又はそれよりも多くの集合ターゲット上へのアドレス領域のマッピングとのための設定可能なパラメータを有し、個々のトランザクション内のデータ・アドレス・シーケンスが集合ターゲット内のインタリーブされたチャネル・アドレス境界と交差するその個々のトランザクションを分断し、そして、集合ターゲット内のチャネルに向かうチャネル境界と交差する個々の２次元（２Ｄ）トランザクションを、分断された部分の２以上がそれらの２Ｄバースト属性を保持するように、分断し、並びに多くの他の内部制御を実施することができる。
【０００７】
図面は、以下に続く本発明の実施形態を参照するものである。
【０００８】
本発明は、様々な修正及び代替形態の対象になるが、その特定的な実施形態を一例として図に示し、本明細書で以下に詳細に説明する。本発明は、開示する特定の形態に限定されないことを理解すべきであり、逆に、本発明は、本発明の精神及び範囲に該当する全ての修正、均等物、及び代替物を含むものとする。
【図面の簡単な説明】
【０００９】
【図１】インターコネクト装置上でトランザクションを通信する複数のイニシエータＩＰコア及び複数のターゲットＩＰコアを有する「システムオンチップ」の実施形態のブロック図である。
【図２】個別のメモリＩＰコアが所定のメモリ・インタリーブ・セグメントに分割され、次に、他のメモリＩＰコアからのメモリ・インタリーブ・セグメントとインタリーブされる連続アドレス空間のマップの実施形態を示す図である。
【図３】複数のインタリーブ済みメモリ・チャネルのためのアドレス領域のマップの実施形態を示す図である。
【図４】例示的な個別のＤＲＡＭのＩＰコアが所定のメモリ・インタリーブ・セグメントに分割され、次に、他のＤＲＡＭのＩＰブロックからのメモリ・セグメントとインタリーブされる再設定されたパラメータによる連続アドレス空間のマップを示す図である。
【図５】多重チャネル集合ターゲットの柔軟な再構成を可能にする中央構成レジスタからの領域のパラメータ値を受信するルックアップ・テーブルの実施形態を示す図である。
【図６Ａ】複数のスレッド融合・スレッド分割のユニットを有するインターコネクト装置上の読取及び書込要求に対する要求順序を維持する複数のイニシエータＩＰコアと複数のターゲットＩＰコアとを有する集積回路の実施形態のブロック図である。
【図６Ｂ】要求経路順序を維持するために集中化した融合・分割ユニットに実施されるフロー制御論理の実施形態のブロック図である。
【図７Ａ】２以上の異なる物理的経路を下るスレッドに１組のトランザクションを発生させるイニシエータＩＰコアからの要求を経路指定する１つ又はそれよりも多くのスレッド分割ユニットの実施形態のブロック図である。
【図７Ｂ】スレッド分割ユニットでの肯定応答機構の実施形態の概略図である。
【図８】所定のスレッドからの複数の書込要求をいずれか所定の時間に未処理のままにするが、そのスレッドからその後の書込要求を出すことを制限するフロー制御プロトコル論理のイニシエータ・エージェントの使用におけるスレッド分割ユニットの例示的な時系列を示す図である。
【図９】所定のスレッドからの複数の読取要求をいずれか所定の時間に未処理のままにするが、そのスレッドからその後の読取要求を出すことを制限するフロー制御プロトコル論理のイニシエータ・エージェントの使用におけるスレッド分割ユニットの例示的な時系列を示す図である。
【図１０Ａ】「２Ｄ書込バースト」要求を分割するフロー制御論理の実施形態の例示的な時系列を示す図である。
【図１０Ｂ】ターゲット要求トラフィックを分割するフロー制御論理の実施形態の付加的な例示的な時系列を示す図である。
【図１０Ｃ】ターゲット要求トラフィックを分割するフロー制御論理の実施形態の付加的な例示的な時系列を示す図である。
【図１１】２つのスレッド分割ユニット及び２つのスレッド融合・分割ユニットを通過する２つのターゲット・エージェントから２つのイニシエータ・エージェントまでの応答経路の実施形態のブロック図である。
【図１２】戻り順序応答を保証するための多重チャネル集合ターゲットにおける「応答バッファ使用量」の実施形態の図である。
【図１３】スレッド内の要求順序及びそれらの要求に対する予想応答順序を維持する例示的なインターコネクト装置の内部構造を示す図である。
【図１４】チャネル・アドレス境界と交差する個々のトランザクションを同じスレッドからの２以上のトランザクション／要求として分断することを直接にサポートする分断論理の実施形態の図である。
【図１５】イニシエータ・エージェントから多重チャネル集合ターゲットを含む複数のターゲット・エージェントまでのインターコネクト装置にわたる経路の実施形態の図である。
【図１６】ブロック・バースト要求に関する５つの形式のチャネル・ベースの分断の１つ、すなわち、通常のブロック分断を示す図である。
【図１７】２次元（２Ｄ）タイル・バースト要求に対して割り当てられたアドレス・マップの１つ又はそれよりも多くのアドレス領域を有する２Ｄビットマップの「メモリ空間」の実施形態の図である。
【図１８】多重チャネル・インタリービング及びアドレス・タイリング例のアドレス整合を示す図である。
【図１９】多重チャネル領域に対してアドレス整合する実施形態のブロック図である。
【図２０】「インターコネクト装置」に対して上述した設計及び概念を用いて「システムオンチップ」のようなデバイスを発生させるための処理の例の実施形態の流れ図である。
【発明を実施するための形態】
【００１０】
以下の説明では、本発明を完全に理解することができるように特定のデータ信号、選択した構成要素、接続、集合ターゲット（アグリゲート・ターゲット）内のメモリ・チャネル数などの例のような多くの特定の詳細を説明する。しかし、これらの特定の詳細がなくても本発明を実施することができることは当業者には明らかであろう。一部の場合には、本発明を不要に曖昧にしないために、公知の構成要素又は方法の説明は、詳細にわたるものではなくブロック図で行っている。更に、第１のターゲットのような特定の数値による言及を行う場合がある。しかし、特定の数値による言及は、文字通りの順番と解釈するのではなく、第１のターゲットは、第２のターゲットと異なると解釈すべきである。従って、説明する特定の詳細は、単に例示的なものである。特定の詳細は、本発明の精神及び範囲から変更することができ、かつ依然としてその範囲内と考えることができる。
【００１１】
一般的に、内部制御を実施するインターコネクト装置を有する集積回路に一般的に関する方法、装置、及びシステムを説明する。インターコネクト装置は、要求経路順序を維持し、応答経路順序を維持し、制約されないバースト・サイズで集合ターゲット内のチャネルをインタリーブし、集合ターゲット内のチャネルに対する設定可能なパラメータを有し、集合ターゲット内のチャネルに向かうチャネル境界と交差する個々のトランザクションを分断し、分断された部分の２以上がそれらの２Ｄバースト属性を保持するように、集合ターゲット内のチャネルに向かうチャネル境界と交差する個々のトランザクションを分断し、並びに多くの他の内部制御を実施することができる。
【００１２】
本発明の殆どの態様は、殆どのネットワーク環境に適用することができ、「システムオンチップ」環境のような例示的な集積回路を使用して本発明のこれらの態様が具体化されることになる。
【００１３】
図１は、インターコネクト装置上で読取要求及び書込要求、並びにそれらの要求に対する応答を通信する複数のイニシエータＩＰコア及び複数のターゲットＩＰコアを有する「システムオンチップ」の実施形態のブロック図を示している。「ＣＰＵ  ＩＰ」コア１０２、オンチップ・セキュリティＩＰコア１０４、「デジタル信号プロセッサ（ＤＳＰ）」１０６ＩＰコア、マルチメディアＩＰコア１０８、「グラフィックＩＰ」コア１１０、ストリーミング「入出力（Ｉ／Ｏ）」ＩＰコア１１２、チップの外部にあるデバイス又は構成要素を有する無線送受信ＩＰコアなどの通信ＩＰコア１１４のような各イニシエータＩＰコア、及び他の類似したＩＰコアは、インターコネクト装置１１８とインタフェースで接続するそれ独自のイニシエータ・エージェント１１６を有することができる。第１の「ＤＲＡＭ  ＩＰ」コア１２０から第４の「ＤＲＡＭ  ＩＰ」コア１２６、並びにフラッシュメモリＩＰコア１２８のような各ターゲットＩＰコアは、インターコネクト装置１１８とインタフェースで接続するそれ独自のターゲット・エージェント１３０を有することができる。各「ＤＲＡＭ  ＩＰ」コア１２０〜１２６は、関連のメモリ・スケジューラ１３２、並びにＤＲＡＭコントローラ１３４を有することができる。
【００１４】
「アイピー (Intellectual Property)」（ＩＰ）コアは、システムにそのマクロ機能をもたらす内蔵型の設計された機能性を有する。インターコネクト装置１１８は、システムにおけるターゲットＩＰコア１２０〜１２８及び潜在的にイニシエータＩＰコア１０２〜１１４に対して割り当てられたアドレスを用いてアドレス・マップ１３６を実施し、集積回路内のターゲットＩＰコア１２０〜１２８とイニシエータＩＰコア１０２〜１１４との間の要求及び潜在的に応答を経路指定する。１つ又はそれよりも多くのアドレス発生器が、各イニシエータＩＰコアに存在し、ＩＰコアが開始するデータ転送に関連のアドレスをメモリ又は他のターゲットＩＰコアに供給することができる。ＩＰコアの全ては、異なる性能速度（すなわち、クロック周波数にデータビット線の数（別名データ幅）を掛けたものとして計算することができるピーク帯域幅、及び所要又は意図した性能レベルを表す持続帯域幅）で作動させることができる。異なるＩＰコアの殆どは、メモリＩＰコア１２０〜１２６オンオフチップを通じて互いに通信することができる。各イニシエータ・エージェント１１６及びターゲット・エージェント１３０におけるＤＲＡＭコントローラ１３４及びアドレス・マップ１３６は、アドレス・マップを維持してアドレス・マップに割り当てられた論理アドレスの物理ＩＰアドレスへのアドレス変換を行うことにより、各「ＤＲＡＭ  ＩＰ」コア１２０〜１２６の実際のＩＰコアアドレスを他のオンチップコアから抽出する。
【００１５】
アドレス・マッピング・ハードウエア論理は、イニシエータ・エージェントの内側に位置することができる。ＤＲＡＭスケジューラ及びコントローラは、ターゲット・エージェントの下流側に接続することができる。従って、イニシエータからターゲットへの要求の経路指定を判断する１つの方法は、着信イニシエータ・アドレスを特定のターゲットＩＰコアに関連付けるアドレス・マッピング装置を実施することである。このようなアドレス・マッピング装置の一実施形態は、ターゲットが各イニシエータ・エージェントにおいてターゲットアドレス復号論理を実施することである。単一のイニシエータがターゲットＩＰコア位置の全てにアクセス可能であるためには、イニシエータは、インターコネクト装置がイニシエータ・アドレスをターゲットＩＰコアアドレスに変換することができるように、単一のターゲットＩＰコアが収容する以上の全アドレス値を供給する必要があると考えられる。このような変換の一実施形態は、選択したターゲットＩＰを復号するのに使用したイニシエータ・アドレスビットをターゲットＩＰコアに呈示されるアドレスから除去することである。
【００１６】
インターコネクト装置１１８は、システムのＩＰコアサブシステム１２０〜１２８及び１０２〜１１４の間で共有通信バスを提供する。共有通信バス内の全ての通信経路は、単一の閉塞点を通過する必要はなく、多くの分散経路は、共有通信バスに存在することができる。オンチップインターコネクト装置１１８は、複数の「アイピー」コア１０２〜１１４及び１２０〜１２８間の通信のアドレス・マッピング及びアービトレートした通信を容易にする相互接続ワイヤと共に、アダプタ及び／又は他の論理モジュールとすることができる機構の集合とすることができる。
【００１７】
インターコネクト装置１１８は、「システムオンチップ」を通じてステージ単位で要求及び応答を格納及び移動させるためにバッファリングを伴ってパイプライン化する「システムオンチップ」のような集積回路の一部とすることができる。インターコネクト装置１１８は、１）別のスレッドからの要求に対して、並びに同じスレッドからその後の要求を出す前に初期要求の応答を必要とすることに対して非閉塞であり、２）パイプライン化プロトコルを実施し、かつ３）各スレッドの予想実行順序を維持するフロー制御論理を有することができる。インターコネクト装置は、２Ｄ及びアドレスタイリング機能、応答フロー制御、及び個々のバースト要求の分断を用いて、複数のメモリ・チャネルをサポートすることができる。各イニシエータＩＰコアは、インターコネクト装置とインタフェースで接続するそれ独自のイニシエータ・エージェントを有することができる。各ターゲットＩＰコアは、インターコネクト装置とインタフェースで接続するそれ独自のターゲット・エージェントを有することができる。
【００１８】
「システムオンチップ」は、それを通じてステージ単位で要求及び応答を格納及び移動させるためにパイプライン化することができる。インターコネクト装置内のフロー制御論理は、別のスレッドからの要求に対して、並びに同じスレッドから第２の要求を出す前に第１の要求の応答を必要とすることに対して非閉塞であり、パイプライン化されており、かつ各スレッドの実行順序を維持する。
【００１９】
各メモリ・チャネルは、ＩＰコアとすることができ、又は単一のメモリとしての役割を果たすように１組に構成される複数の外部ＤＲＡＭチップは、６４ビット又は１２８ビットのようなデータ・ワードの幅を成す。各ＩＰコア及びＤＲＡＭチップは、そのＩＰコア／チップの内側に複数のバンクを有することができる。各チャネルは、チャネルに関連の要求及び／又は応答を可能にすることができる１つ又はそれよりも多くのバッファを含むことができる。これらのバッファは、チャネル・トランザクションに関連の要求アドレス、書込データ・ワード、読取データ・ワード、及び他の制御情報を保持することができ、かつパイプライン式にメモリに要求及び書込データを供給してメモリから読取データを受信することによってメモリ処理機能を改善しやすくすることができる。バッファは、同じメモリバンクにおいて異なるページを開くために強制的にそのページを閉じさせる異なる要求を供する点とは対照的に、開いているメモリページをターゲットにする要求を支持するためにメモリ・スケジューラがアドレス局所性を利用することを可能にすることによってメモリ処理機能を改善することができる。
【００２０】
多重チャネル集合ターゲットの１つの恩典は、ターゲット・アクセスに空間的同時並行性を提供し、従って、同じ幅の単一のターゲットで達成可能な有効帯域幅に優って有効帯域幅が増大するという点である。付加的な恩典は、各チャネルの全バースト・サイズが、同じ帯域幅による単一のチャネル・ターゲットの全バースト・サイズよりも小さいという点であり、その理由は、単一のチャネル・ターゲットは、集合ターゲット内の複数のチャネルの各々のデータ・ワード長の合計と同じ幅であるデータ・ワードを必要とすることになるからである。従って、多重チャネル集合ターゲットは、データサイズが単一のチャネル・ターゲットのバースト・サイズよりも小さいという状況において、単一のチャネル・ターゲットよりも効率的にＳｏＣとメモリの間でデータを移動させることができる。実施形態では、このインターコネクト装置は、以前のインターコネクト装置の機能集合の厳密な上位集合をサポートする。
【００２１】
多重チャネル・ターゲットの接続性は、主として、チャネル・ターゲットの群をダイ上で切り離すことを可能にする一連のパイプライン点を有するクロスバー交換により達成することができる。複数のチャネル集合ターゲットは、汎用（メモリ参照及びＤＭＡ）インターコネクト装置空間におけるデジタルメディアが主役であるＳＯＣの高性能に対する必要性のためのものである。
【００２２】
また、集合ターゲット内のメモリ・チャネルは、設定可能な構成パラメータをサポートすることができる。設定可能な構成パラメータは、動的に変更可能である複数のチャネル構成を柔軟にサポートすると共に、単一の設計された「システムオンチップ」設計が、チャネルと領域間の割り当て及びチャネル間のインタリーブ境界を構成し直して単一のパッケージの異なる作動モードをより良くサポートすることにより、異なるオンチップ又は外部記憶構成を使用する広範囲にわたるパッケージング又はプリント回路基板レベルのレイアウト選択肢をサポートすることを可能にするものである。
【００２３】
制約されないバースト・サイズの集合ターゲットにおけるインタリーブされたチャネル
多くの種類のＩＰコア・ターゲット・ブロックは、結合させると、それらのアドレス空間をインタリーブさせることができる。以下で説明する内容では、システム・アドレス空間内に単一の集合ターゲットを作成するためにインタリーブされるターゲットブロックとしてメモリ・ブロックを使用する。以下で説明する例示的な「集合ターゲット」は、集合ターゲット・セットにわたってインタリーブされたアドレス指定をサポートする１つ又はそれよりも多くのアドレス領域を共有する異なる外部ＤＲＡＭチップのような個々のメモリ・チャネルの集合である。別の集合ターゲットは、システムにより単一のターゲットとして認識かつ処理される異なるＩＰブロックの集合である。
【００２４】
図２は、異なるメモリＩＰコアが所定のメモリ・インタリーブ・セグメントに分割され、次に、他のメモリ・チャネルＩＰコアとインタリーブされる連続アドレス空間のマップの実施形態を示している。オンチップＩＰコア及びオフチップメモリコアを含む２以上の個別のメモリ・チャネルは、システム・アドレス空間内の単一のメモリ（すなわち、集合ターゲット）としてシステムソフトウエア及び他のＩＰコアに呈示されるように互いにインタリーブすることができる。各メモリ・チャネルは、オンチップＩＰメモリコア、オフチップＩＰメモリコア、独立型メモリバンク、又は類似のメモリ構造体とすることができる。例えば、システムは、第１のＤＲＡＭチャネル２２０、第２のＤＲＡＭチャネル２２２、第３のＤＲＡＭチャネル２２４、及び第４のＤＲＡＭチャネル２２６をインタリーブすることができる。各メモリ・チャネル２２０〜２２６は、第１のメモリ・インタリーブ・セグメント２４０及び第２のメモリ・インタリーブ・セグメント２４２のような２以上の所定のメモリ・インタリーブ・セグメントを有する。所定の個別のメモリ・チャネルの２以上の所定のメモリ・インタリーブ・セグメントは、メモリマップ２３６ｂのアドレス空間において、他の個別のメモリ・チャネルの２以上の所定のメモリ・インタリーブ・セグメントとインタリーブされる。アドレス・マップ２３６ａは、領域１〜領域４のような２以上の領域に分割することができ、各インタリーブされたメモリ・セグメントは、それらの領域の少なくとも１つに割り当てられて、２３６ｂに示すように、その領域のシステム・アドレス空間をポピュレート(データ投入操作）し、最終的には、アドレス空間において物理アドレスにマッピング可能である。
【００２５】
例えば、第１及び第２のＤＲＡＭチャネル２２０及び２２２のメモリ・インタリーブ・セグメントは、アドレス・マップ２３６ｂの領域２内に寸法決めされてその後インタリーブされる。また、第３及び第４のＤＲＡＭチャネル２２４及び２２６のメモリ・インタリーブ・セグメントは、アドレス・マップ２３６ｂの領域４内に寸法決めされて（第１及び第２のＤＲＡＭチャネルのインタリーブ・セグメントより小さい粒度で）その後インタリーブされる。第１及び第２のＤＲＡＭチャネル２２０及び２２２のメモリ・インタリーブ・セグメントは、アドレス・マップ２３６ｂの領域４内にもインタリーブされる。従って、メモリ・チャネルは、２以上の領域のアドレス空間において所定のメモリ・インタリーブ・セグメントを有することができ、かつエイリアシング技術により実施することができる。第１のメモリ・インタリーブ・セグメント２４０のような第１のサイズの第１のＤＲＡＭチャネル２２０のメモリ・インタリーブ・セグメントは、アドレス・マップ２３６ｂ内の第２の領域の設定可能なパラメータにより制御され、第３のメモリ・インタリーブ・セグメント２４４のような第２のサイズのインタリーブ・セグメントは、アドレス・マップ２３６ｂ内の第４の領域の設定可能なパラメータにより制御される。
【００２６】
従って、各メモリ・チャネル２２０〜２２６は、所定のメモリ・インタリーブ・セグメントを有し、異なるサイズのメモリ・インタリーブ・セグメントを有することができる。
システム・アドレス・マップ２３６ｂの各々の対応する領域４は、設定可能なパラメータを有し、設定可能なパラメータは、その領域内のメモリ・インタリーブ・セグメントに関するトランザクションを有すると予想される予測された形式のアプリケーションに潜在的に基づいて、その領域に割り当てられたアドレス空間内のメモリ・インタリーブ・セグメントのサイズ粒度を制御するように、ソフトウエアにより実効時又は設計時にプログラマブルにすることができる。上述のように、例えば、アドレス・マップ２３６内の第２の領域は、第１の量のバイトで構成された粒度を有する第２のメモリ・チャネルからその領域に割り当てられた所定のメモリ・インタリーブ・セグメントを有する。また、アドレス・マップ２３６ｂ内の第４の領域は、第２の量のバイトで構成された粒度を有する第１のメモリ・チャネルからその領域に割り当てられた所定のメモリ・インタリーブ・セグメントを有する。また、領域４のような各領域は、２以上のメモリ・チャネル２２０〜２２６からその領域に割り当てられた所定のメモリ・インタリーブ・セグメントを有することができる。
【００２７】
図３は、複数のインタリーブされたメモリ・チャネルのためのアドレス領域のマップの実施形態を示している。アドレス領域３４６又はアドレス・マップ３３６は、１６進の付番システムにおいて例えば０００００〜３ＦＦＦＦまでのアドレス空間を有することができる。領域３４６は、集合ターゲット内の複数のチャネルにわたってインタリーブされたアドレスを有する。アドレス領域３４６が対象とする全体的アドレス空間は、異なるメモリ・チャネルの所定のメモリ・インタリーブ・セグメントの組に分割することができる。
所定のメモリ・インタリーブ・セグメントは、アドレス空間において非重複であり、そのアドレス空間において領域３４６全体を集合的に対象としてかつポピュレートする。オンチップ又はオフチップＩＰメモリコア／チャネルの各インタリーブされたメモリ・セグメントをその後他のオンチップＩＰメモリコアの所定のインタリーブされたセグメントと共に順次積み重ねてアドレス・マップ内のアドレス空間をポピュレートする。領域に関連のチャネルの最大数は、領域に関連の個々のターゲット数から及びターゲットの性質から導出される静的な値とすることができる。個々のターゲット及び多重ポートターゲットは、単一のチャネルを有することができ、多重チャネル・ターゲットは、最大２つ、４つ、又は８つまでのチャネルを有する。実施形態では、ｎｕｍ＿ｃｈａｎｎｅｌｓ属性が、ＲＴＬ．ｃｏｎｆ構文で供給される「領域」構成に対して導入され、アドレス領域が有することができる最大数の能動チャネルを示すため使用される。領域に関連の静的な数よりも少ない個々のターゲットを使用するようにアドレス・マップを形成することが可能であると考えられる。領域３３６における第１の所定のメモリ・インタリーブ・セグメント３４０は、チャネル０にマップされている。領域３３６における第２の所定のメモリ・インタリーブ・セグメント３４２は、チャネル１にマップされている。領域３３６における第３の所定のメモリ・インタリーブ・セグメント３４４は、チャネル２にマップされている。領域３３６における次の所定のメモリ・インタリーブ・セグメント３４６は、チャネル３にマップされている。この処理は、メモリ・インタリーブ・セグメントがこの領域でアクティブである最終チャネルにマップされるまで続く。それによって「チャネルラウンド」として公知であるものが完了する。次に、領域に割り当てられたアドレス空間のメモリ・インタリーブ・セグメントの順次積み重ね処理は、特定の領域に割り当てられたアドレス空間を完全に網羅するように十分なチャネルラウンドがマップされるまで繰り返される。このアドレス領域３３６は、集合ターゲットとして処理される。この領域のその集合ターゲットからの第１の要求３４８のようなデータに関する要求には、複数の所定のメモリ・インタリーブ・セグメントにわたって、及び従って複数の個別のメモリＩＰコアにわたって応答データスパンが必要である場合がある。また、オンチップ又はオフチップメモリの物理メモリ位置を実際にシステム・アドレス空間内の複数の領域に割り当て、従って、そのアドレス・マップから同じ物理メモリ位置まで複数の割り当てられたシステム・アドレスを有することができる。アドレスエイリアシングということもあるこのような多重マッピングを用いて、異なる領域が異なるインタリーブサイズ又はチャネル群を有し、従って、異なるアクセス性能特性を有する場合がある時に、同じメモリ位置にアドレス指定する複数の方法をサポートするか、又は一方の領域又は他方のメモリ位置へのメモリ位置の動的割り当てをサポートすることができる。
【００２８】
各メモリ・インタリーブ・セグメントは、システム設計者によるＤＲＡＭメモリ設計仕様により許容されるバースト長要求により抑制されないサイズ粒度でシステム・アドレス空間内で定義かつインタリーブされる。メモリ・インタリーブ・セグメントのサイズ粒度は、ＤＲＡＭに構成されたＤＲＡＭメモリ設計仕様により許容される最小バースト長要求と、メモリ構成により認められる予測最大ＤＲＡＭメモリページ長との間の所定の長さとすることができる。この粒度のサイズは、ソフトウエアプログラマブルのようなユーザにより供給される設定可能な値である。例えば、ユーザにより供給される所定の長さは、６４バイトと６４キロバイトの間とすることができる。
【００２９】
論理上、この集合ターゲットは、他のＩＰコアには単一のターゲットの姿を示すが、システムのアドレス・マップにおいて複数のオンチップＩＰメモリコア／メモリ・チャネルのメモリインタリーブ／セグメントをインタリーブする。従って、各「ＤＲＡＭ  ＩＰ」コア／チャネルは、ユーザにより供給されるサイズ粒度でインタリーブのためのセグメントに物理的に分割することができる。第１のイニシエータＩＰコアに対してインターコネクト装置のインタフェースになるイニシエータ・エージェントは、２以上のインタリーブされたメモリ・チャネルの集合ターゲットへの第１の要求に関連の論理宛先アドレスに基づいてアドレス・マップに問い合わせ、どのメモリ・チャネルが要求に対応するか、及びいずれのＩＰコアも集合ターゲット内の各メモリ・チャネルの物理ＩＰアドレスを知る必要がないようにその要求に役立つ集合ターゲット内の各メモリ・チャネルの物理ＩＰアドレスに要求を経路指定する方法を判断する。
【００３０】
各メモリコアに対するアクセス負荷は、その領域／集合ターゲットに至る予想要求トラフィックに関連のアドレス・パターンに基づいてインタリーブ・セグメントの粒度を形成するシステム設計者によってチャネルにわたってアプリケーション・トラフィックを自動的かつ統計学的に拡散する。多重チャネル・アドレス領域に単一の開始スレッドにより送られる要求は、１つのチャネル・ターゲットに送られるものもあれば、集合ターゲット内の別のチャネル・ターゲットに送られるものもあるように、インタリーブ境界と交差することができる。これらの要求は、チャネル・インタリーブ境界を交差した要求バーストの一部、又は独立したトランザクションとすることができる。すなわち、システムに関する予想要求トラフィックが、実行されるプログラム内のコードにより線形にメモリ位置にアクセスする要求により占められている場合、サイズ粒度は、いくつかの要求が第１のメモリ・チャネルによって供され、次に、メモリ・チャネルの境界の両側に該当する恐らく１つの要求が供され、次に、いくつかの要求が第２のメモリ・チャネルによって供されるように設定される。トラフィック拡張は、システム・アドレス指定、メモリ・セグメントのサイズ粒度、及び順次積み重ねられたメモリ・チャネルによるものである。従って、例えば、同じスレッドから要求ａ〜ｃ３５０には、専らメモリ・チャネル２が供することができ、要求ｄ３５２には、メモリ・チャネル２及びメモリ・チャネル３がある程度供する。
異なるコア／チャネルのアドレス空間内での所定のメモリ・インタリーブ・セグメントのこの順次積み重ね方法は、メモリ・コア間のそれ独自の拡張／負荷平衡が可能にし、並びに局所性の原理の恩典を利用するものである（すなわち、スレッド内の要求は、局所的に最終要求の近くのメモリ・アドレスにアクセスして潜在的に同じアクセス・データを再利用する傾向がある）。
【００３１】
アドレス・マップ内の各領域は、１）その領域内のメモリを使用して予測プログラムに関連のアドレス・パターンに基づいており、２）その領域内のメモリを用いた一種の予測されたプログラムのアドレス局所性の原理を利用するようにその領域に割り当てられたアドレス空間内でメモリ・インタリーブ・セグメントのサイズ粒度を制御するそれ独自の設定可能なパラメータを設定することができる。システム・アドレス・マップのアドレス空間の複数のメモリ・チャネルのインタリービングは、集合ターゲットを構成するチャネルの部分集合をターゲットにするトラフィックが多すぎる時に起こる可能性がある異なるＩＰメモリコア間の不均一な負荷平衡の「ホットスポット」を回避するために、時間と共にメモリ・チャネルの各々にわたるアプリケーション・トラフィックの自動的な統計的拡張を可能にするものである。次の組の要求の開始がチャネル２によって供される時までには、要求ａａ３５４、チャネル２は、要求ａ〜ｄに応答しまっているはずであり、一方、そのスレッドからのｅとａａ３５４間の要求は、集合ターゲットを構成する他のチャネルによって供されている。
【００３２】
すなわち、システムは、並列性及び局所性を利用することによって、最大収量を最新ＤＲＡＭから抽出することができる。並列性は、高帯域幅ＤＲＡＭ構成要素にメモリ要求をパイプライン化することによって、また、複数のメモリ・チャネル上にアクセスをインタリーブすることによって利用される。データ並列メモリ・システムは、メモリアクセススケジューリングを用いてメモリアクセスを順序付けることによって局所性を改善することができる。順序付けは、オープン行（ロウ）（すなわち、ＤＲＡＭページ）を再利用することによって、及び内部バンク競合及び読取及び書込転換ペナルティを最小にすることによって性能を改善する。
【００３３】
システム設計者は、その要求サイズ及び要求アクセスが一般的に発生する順序に基づいて一般的要求サイズ及びアドレス増分を知ることができる。アドレス・マップ３３６内の領域が異なれば、異なる形式のデータ／データオブジェクトを格納するように構成することができる。特定の領域内の各メモリ・インタリーブ・セグメントの粒度の適正サイズを定めることによって、いくつかの要求は、同じメモリ・チャネルにアクセスした後に別のチャネル境界と交差する必要があり、従って、同じ繰返し数のために複数のメモリリソースではなく、２回のサイクルに向けてこの単一のメモリリソースが連結される。更に、第１のメモリコアのページバッファは、集合ターゲット内の各メモリ・チャネルのページバッファ内にメモリ・インタリーブ・セグメント内の先にアクセスしたデータ及び対応してアクセスしたデータを有する。単一のメモリアクセスには、対応するページバッファに望ましいデータを得るために複数のＤＲＡＭ指令が必要である場合がある。データをページバッファ内に有し、かつそのデータを数回のサイクルに再利用することによって、局所性の原理に基づいて効率が改善する。また、粗い粒度／より大きなサイズでメモリ・チャネルのメモリ・インタリーブ・セグメントをインタリーブすることによって、スレッド間の並列性を利用することができ、かつ単一の要求スレッドの必要性に役立つ複数のＤＲＡＭバンク／チャネルからページバッファを保護する必要性が少なくなる。代替的に、１つのＤＲＡＭバンクの単一のページバッファは、複数のサイクルに向けてその要求スレッドに役立たせることができる。従って、局所性の原理の利用するためにアドレス・マップのその領域に格納されることになる一般的なデータ構造のサイズに対して所定のメモリ・インタリーブ・セグメントのサイズを設定する。複数の個別のメモリコアがシステムの中に存在し、かつ３つの要求がラインに沿って存在する場合、イニシエータのプログラムは、第１の要求と同じデータが求められ、その時には、そのデータは、第１のメモリコアのページバッファ内に格納されているはずであり、第１のメモリ・チャネルのページバッファ内にそのデータを入れることを繰り返す数回のサイクルの遅延が排除される。
【００３４】
演算の局所性の原理は、複数回単一のリソースにアクセスする処理に関する概念であることに注意されたい。時間的、空間的、及び順次的に分けられる３つの基本的形式の局所性が存在する。時間的局所性、すなわち、時間における局所性は、メモリに格納したデータ又は命令を参照する場合、その同じ項目が直ちに再び参照される（例えば、ループ、再利用）傾向があることを示唆する。空間的局所性、すなわち、空間における局所性は、メモリに格納したデータ又は命令を参照する場合、アドレスが近い項目が再び参照される傾向があることを示唆する。順次的局所性は、メモリが一般的に線形プログラムにより順番にアクセスされることを示唆する。一般的に、関係がある線形プログラムからのデータは、メモリ内に連続的な位置に格納され、関連する多次元オブジェクトからのデータの場合、そのデータは、メモリ内にブロックパターンで格納される。局所性の原理は、一部は、コンピュータプログラムを作成する方法によるものである。設計者及びユーザは、システムメモリを用いたプログラムの形式を予測してこれらの原理を最大にするように領域を設定することができる。
【００３５】
実施形態では、設計者又はユーザが供給することができるアドレス領域に関する設定可能なパラメータ３６０の一部は、領域のＢａｓｅ＿ａｄｄｒｅｓｓパラメータ、ｒｅｇｉｏｎ＿ｓｉｚｅパラメータ、ａｄｄｒｅｓｓ＿ｓｐａｃｅパラメータ、ターゲットとの関連パラメータ、ｉｎｔｅｒｌｅａｖｅ＿ｓｉｚｅパラメータ、及びａｃｔｉｖｅ＿ｔａｒｇｅｔｓパラメータである。ｉｎｔｅｒｌｅａｖｅ＿ｓｉｚｅパラメータは、許容システム要求バースト長によりバイトによる制約を受けないｉｎｔｅｒｌｅａｖｅ／ｄｅｆｉｎｅｄメモリ・セグメントのサイズを定める。システム・アドレス・マップは、ＤＲＡＭに構成されたＤＲＡＭメモリ設計仕様により許容された最小ＤＲＡＭバースト要求長（６４バイト）とメモリ構成により認められる予測最大ＤＲＡＭメモリページ長（６４キロバイト）と間のサイズ粒度でシステム・アドレス空間において内包的にインタリーブされた例えば６４バイトと６４キロバイトの間の２進数の累乗であるインタリーブサイズをサポートすることができる。領域に関するｒｅｇｉｏｎ＿ｓｉｚｅは、最小１ＫＢであり、かつ少なくとも１チャネルラウンド＝メモリ・インタリーブ・セグメントサイズ＊その領域内にメモリ・インタリーブ・セグメントを割り当てるメモリ・チャネルの数に対して十分に大きいものであるべきである。
【００３６】
図１を参照すると、イニシエータＩＰコア自体及びシステムソフトウエアは、メモリターゲットに向かう要求のアドレスを発生時には、メモリ・システムの編成及び構造の詳細は分らない状態である。メモリ演算を実施するＣＰＵ１０２のようなイニシエータ・コアからの要求は、１つ又はそれよりも多くのアドレス発生器（ＡＧ）により個々のメモリ・アドレスに拡張することができる。適切な並列性を供給するために、イニシエータ・エージェント内のＡＧは、要求当たりに単一のアドレスを生成し、いくつかのＡＧは、並列に作動させることができ、各ＡＧは、異なるスレッドからアクセスを発生させる。アドレス発生器は、メモリマップ内のシステム・アドレスを、特定のＩＰメモリコア内の、一部の場合には、図１８に示すものと同様にチャネル境界を超えて、メモリセルの実アドレスに変換する。発生された要求は、メモリ・チャネル選択ビットのための付加的なフィールドを有するアドレスを有することができ、これらのフィールドは、１つ又はそれよりも多くの集合ターゲットを有するシステムにおいてどこで望ましい情報を検索するしたらよいかを判断することを助けるものである。第１のイニシエータ・エージェント１５８のようなイニシエータ・エージェントは、ＩＰコアから発生された要求のアドレスにチャネル選択ビットを追加する論理を有するアドレス発生器を有することができる。ターゲットのアドレスのアドレス復号の少なくとも一部は、要求がイニシエータ・エージェントでのような最初にインターコネクト装置に入った時に行うことができる。アドレス復号器は、要求のアドレスを復号して、例えば、メモリ・アドレスの低位ビットに基づいて適切なＩＰメモリコアに要求を経路指定することができる。アドレス復号器は、アドレスからチャネル選択ビットを取り除いて、次に、メモリコントローラにおいてアドレス復号器／発生器にアドレスを渡す。チャネル・ターゲットに呈示するアドレスは、チャネル選択ビットを補正するために、例えば右に移動させることができる。メモリ・スケジューラ１３２は、要求で送られたシステムのメモリターゲットアドレスを復号／変換して、チップ上の所定のメモリ・セグメントの物理的な位置、すなわち、（ランク、バンク、行（ロウ）及び列（コラム）アドレス情報）を判断することができる。各アクセスは、ルックアップ・テーブルを通じて適切なメモリ・チャネル（ＭＣ）に経路指定することができる。メモリ・システムの編成及び構造の詳細のアドレス・マップ１３６は、ＩＰコアに結合された各イニシエータ・エージェントにおいて出る。メモリ・スケジューラ１３２は、各ＤＲＡＭ指令サイクル中に１つのアクセスを選択し、ＤＲＡＭに適切な指令を送って未処理アクセスの状態を更新してチャネル−バッファ内の未処理アクセスを予定する。単一のメモリアクセスに完了すべきＤＲＡＭ指令が３つも必要である場合があることに注意されたい。次に、メモリ・チャネルは、要求されたアクセスを実施して、読取データを有する１つ又はそれよりも多くの応答をバッファに返送する。ターゲット・エージェントは、予想される順序付け応答順序でイニシエータ・コアに呈示することができるようにメモリ・チャネルからの応答を回収する。
【００３７】
従って、イニシエータ・コア１０２〜１１４及び１２０〜１２６には、メモリ・アドレス構造及び編成を追跡するために内蔵したハードウエア及びソフトウエアは不要である。
イニシエータ・コア１０２〜１１４及び１２０〜１２６には、メモリ・アドレス構造及び編成に関する事前の知識は不要である。イニシエータ・エージェント１１６は、この情報を有するので、コアがこの知識を必要としないように済ませる。イニシエータ・エージェント１１６は、ターゲットの真のアドレス、インターコネクト装置１１８にわたるイニシエータからターゲットに至るルート、次に、集合ターゲット内のチャネルルートを選択するためにこの情報を有する。メモリ・スケジューラ１３２は、イニシエータ・エージェントにより送られた要求を受信すると、ターゲットアドレス及びチャネルルートを、様々なメモリ・チャネル／ＩＰコア内のバンク、行（ロウ）及び列（コラム）移動情報に変換する。実施形態では、集合ターゲットの多重チャネルの性質が、システム内のＩＰコアから取り出され、このメモリ・チャネルの構造及び編成に関する知識をシステム内の各イニシエータ・エージェント１１６又はシステム内の集中メモリ・スケジューラ１３２上に配置する。
【００３８】
メモリ・スケジューラ１３２も、ユーザ定義のアドレ様式（図１８を参照されたい）をサポートする。各タイリング機能は、指定のＯＣＰのＭＡｄｄｒＳｐａｃｅに関連付けることができる。メモリ・スケジューラ１３２を通じてアドレス可能なメモリは、複数の領域（非重複）としてシステム・アドレス空間にマップすることができ、各々は、それ独自のタイリング機能を有する。タイリングは、２Ｄブロックトランザクション最適化に向けて２Ｄメモリページ検索において用いることができる。第１の領域に割り当てられたアドレス空間内のメモリ・インタリーブ・セグメントは、２Ｄブロック要求に関して２Ｄメモリページ検索において使用されるそれ独自のタイリング機能を有する。それらのメモリ・インタリーブ・セグメントは、メモリ・スケジューラを通じてアドレス可能である。
【００３９】
実施形態では、インターコネクト装置上で使用するプロトコルは、２個、４個、又は８個のターゲットを収容する集合ターゲットをサポートする。ソケットプロトコル及び構成は、集合ターゲット内の個々のターゲットに対して同一ものとすることができる。集合ターゲット内の個々のターゲットは、同じ２の累乗インタリーブ境界を有することができる。集合ターゲットのターゲットメンバは、インターコネクト装置内の共通の交換器又は異なる交換器に接続することができる。
【００４０】
フロー制御プロトコル及びフロー制御論理により、対応する応答がイニシエータＩＰコアに返送される前に、確実にトランザクションが応答通路で正しく組み立て直される。
【００４１】
実施形態では、インターコネクト装置は、ＱＯＳユニットを使用する。集合ターゲットのＱＯＳモードは、ｂｅｓｔ＿ｅｆｆｏｒｔｓ、優先度、又は制御された待ち時間及び帯域幅とすることができる。Ｓｏｃｃｏｍｐソフトウエアツールは、集合ターゲット・セット内の全てのターゲットが同じＱＯＳモードを有することを検査することができる。モードが優先度又は制御された待ち時間及び帯域幅である場合、各スレッドは、アービトレーション優先度を割り当てるべきである。全てのターゲットメンバは、同じ組のスレッドを有する。Ｓｏｃｃｏｍｐソフトウエアツールは、全てのスレッドアービトレーション優先度が各ターゲットメンバに同一に割り当てられていることを検査することができる。各ターゲットは、割当帯域幅を指定するためにレジスタフィールドを有する。これらの分野がソフトウエアアクセス、エクスポート性、又は初期値に関して各ターゲットで同一パラメータを有することは要件ではない。
【００４２】
各イニシエータがほぼ等しくチャネルにわたってアクセスを分配することが、インタリーブされた多重チャネル・システムにおいて望ましい。インタリーブサイズは、これに影響を与えるものである。スレッドに帯域幅Ｎを割り当てる予想される方法は、小さい公差余裕を持たせた（Ｎ／チャネル）として各チャネルＱＯＳ割り当てをプログラムすることである。アプリケーションがチャネル・バイアスを有することが既知である場合、代わりに非対称割り当てを行うことができる。領域再定義を使用する場合、アクティブ・チャネルの数は、ブート設定が異なれば異なる場合がある。各チャネルで別々の割り当てを有することが、これに対処するのに有用である。
【００４３】
単一チャネルＤＲＡＭターゲットに対しては、全てのアクセスがページミスである時に達成される最小の割合と、全てのアクセスがページヒットである時に達成される最大の割合との間で異なる。保証帯域幅割当ては、最小値より高く設定されるのが普通であり、アプリケーションが最小のものより高く設定されることは普通であり、これによりアプリケーション障害を可能にするが、その可能性は小さい。これらの障害の確率は、サービス帯域幅のうち何パーセントが弾力的であるか、すなわち、最小値に対する最大値の過剰分に関連する。
【００４４】
多重チャネルＤＲＡＭに対しては、弾力的であるサービス帯域幅の百分率は、単一のＤＲＡＭの場合よりも大きい。各チャネルは、依然として弾力性に基づくページ局所性を有する。更に、各イニシエータが利用可能である単一のチャネルのサービス帯域幅の部分に関連する弾力性がある。アドレスストリームがチャネル全体で確実に分配されている場合、特定のレベルの競合が各チャネルに存在する。アドレスストリームがいくつかのチャネルに集中する傾向がある場合、他のチャネルは、使用度が軽く（利用度１００％未満）、従って、集合サービス率は低くなる。
【００４５】
トラフィックがチャネルに集中する時、ターゲットスレッドの全サービスのシェアが小さくなる。それによって割当カウンタは、クレジットが蓄積される傾向がある。一方、スレッドは、他のチャネルではアクティブ度が低くなる。それによってそちらの方のチャネルのカウンタもクレジットが蓄積する。クレジット蓄積を押さえる機構が存在する。これは、スレッドが再びアクティブになった時に他のスレッドを飢餓状態にすること、すなわち、サービスジッタを招くことを回避するためのものである。しかし、最大上限の設定が低すぎた場合、スレッドは、正しく割り当てられたクレジットが蓄積しない恐れ、すなわち、割り当てられた帯域幅を受け入れるのに失敗する場合がある。
【００４６】
従って、多重チャネルＱＯＳの方が、単一チャネルＱＯＳよりもジッタが増大する可能性がある。
【００４７】
ターゲットスレッドに割り当てられる帯域幅の複数のイニシエータ・スレッドの間の重み付け共有が準備されている。これは、遅れた参加でフェアネス群を実施するエポック・システムを通じて行われる。インターコネクト装置は、各チャネルに対してではなく、集合ターゲットに対して各エポックを追跡する。実際には、エポックは、イニシエータで追跡される。エポックは、新しいターゲットにアドレス指定された時に再開される。
【００４８】
実施形態では、インターコネクト装置の内部にあるフロー制御論理は、アドレス・マップ及び集積回路における集合ターゲットの既知の構造編成に問い合わせて、第１の集合ターゲットを構成するどのターゲットが第１の要求に役立つ必要があるかを判断するために、集合ターゲットのインタリーブされたアドレス空間を復号して第１の集合ターゲットを構成するターゲットの物理的区別を判断することができる。フロー制御論理が、フロー制御分割プロトコルを適用して同じスレッドからの複数のトランザクションがいずれか所定の時間に集合ターゲットの複数のチャネルに対して未処理であることを可能にすると、集合ターゲット内の複数のチャネルは、物理的に異なるアドレスを有するＩＰメモリコアにマップされる。インターコネクト装置の内部にあるフロー制御論理は、ターゲットＩＰコアに経路指定された要求順序を維持するように構成される。フロー制御機構が、制御フロー制御論理と協働して分割プロトコルを適用して同じスレッドからの複数のトランザクションがいずれか所定の時間に集合ターゲットの複数のチャネルに対して未処理であることを可能にすると、集合ターゲット内の複数のチャネルは、物理的に異なるアドレスを有するＩＰメモリコアにマップされる。
【００４９】
インターコネクト装置は、集積回路内のターゲットＩＰコアの割当アドレスでアドレス・マップを実施して集積回路内のターゲットＩＰコアとイニシエータＩＰコアとの間でトランザクションを経路指定する。ターゲットＩＰコアの第１の集合ターゲットは、アドレス・マップ内の第１の集合ターゲットのためのアドレス空間内でインタリーブされる２以上のメモリ・チャネルを含む。各メモリ・チャネルは、所定のメモリ・インタリーブ・セグメントに分割され、次に、他のメモリ・チャネルのメモリ・インタリーブ・セグメントとインタリーブされる。それらのメモリ・チャネルの各メモリ・インタリーブ・セグメントは、システム設計者によるメモリ設計仕様により許容されるバースト長要求によって抑制されないサイズ粒度でアドレス空間内で定義かつインタリーブされる。メモリ・インタリーブ・セグメントのサイズ粒度は、ＤＲＡＭに構成されたＤＲＡＭメモリ設計仕様により許容された最小バースト長要求とメモリ構成により認められる予測最大ＤＲＡＭメモリページ長との間の所定の長さとすることができ、この粒度のサイズは、設定可能である。
【００５０】
２以上の個別のメモリ・チャネルは、アドレス空間内の単一のメモリとしてシステム・ソフトウエア及び他のＩＰコアに呈示されるように互いにインタリーブすることができるオンチップＩＰコア及びオフチップ・メモリコアを含むことができる。
【００５１】
第１のイニシエータＩＰコアに対してインターコネクト装置のインタフェースになるイニシエータ・エージェントは、２以上のインタリーブされたメモリ・チャネルの集合ターゲットへの第１の要求に関連の論理宛先アドレスに基づいてアドレス・マップに問い合わせるように構成され、どのメモリ・チャネルが第１の要求に供するかと、第１のＩＰコアが集合ターゲット内の各メモリ・チャネルの上述の物理ＩＰアドレスを知る必要がないようにその要求に役立つ集合ターゲット内の各メモリ・チャネルの物理ＩＰアドレスに第１の要求を経路指定する方法とを判断する。
【００５２】
２以上のメモリ・チャネルは、集合ターゲットを構成するチャネルの部分集合をターゲットにするトラフィックが多すぎる時に起こる可能性がある異なるＩＰメモリコア間の不均一な負荷平衡の位置を回避するために、時間と共にメモリ・チャネルの各々にわたるアプリケーション・トラフィックの自動的な統計的拡張を可能にするように、システム・アドレス・マッピングのアドレス空間内にインタリーブされる。
【００５３】
アドレス・マップは、２以上の領域に分割することができるので、各インタリーブされたメモリのインタリーブ・セグメントが、それらの領域の少なくとも１つに割り当てられてその領域のアドレス空間をポピュレートする。メモリ・チャネルは、２以上の領域のアドレス空間において所定のメモリ・インタリーブ・セグメントを有することができる。特定の領域に割り当てられたアドレス空間内のメモリ・インタリーブ・セグメントは、２Ｄブロック要求に関して２次元（２Ｄ）メモリページ検索において使用されるそれ独自のタイリング機能を有し、メモリ・インタリーブ・セグメントは、メモリ・スケジューラを通じてアドレス可能である。メモリ・インタリーブ・セグメントは、メモリ・スケジューラを通じてアドレス可能である。
【００５４】
インターコネクト装置の内部にある分断論理は、集合ターゲット内のチャネルに向かうチャネル境界と交差する個々のトランザクションを２以上の要求に分断する。分断論理は、得られる要求の２以上がそれらの２Ｄバースト属性を保持するように、集合ターゲット内のチャネルに向かうチャネル境界と交差する個々のトランザクションを分断する。
【００５５】
集合ターゲット内のチャネルに関する構成可能なパラメータ
図４は、例示的な個別の「ＤＲＡＭ  ＩＰ」コアが所定のメモリ・インタリーブ・セグメントに分割され、次に、他の「ＤＲＡＭ  ＩＰ」ブロックからのメモリ・セグメントとインタリーブされる構成パラメータを有する連続アドレス空間のマップの実施形態を示している。設計者又はユーザは、構成パラメータ４６０を供給することができるが、１つ又はそれよりも多くの「ＤＲＡＭ  ＩＰ」ブロックがこの設計では不要であるとシミュレーション又は設計変更後に判断することが考えられ、設計者は、アドレス・マップをプログラムし直すことができる。ユーザインタフェース観点から、ユーザは、１）いくつかの個別のＩＰメモリコアを列挙し、２）アドレス・マップ内にいくつかの領域を列挙し、３）アドレス・マップ内のいくつかの領域に個別のＩＰメモリコアをマップし、４）領域からチャネルを除去し、これが、その後にその領域の残りのチャネルによりポピュレートされたシステム・アドレスを崩壊させることができ、５）領域内のチャネルの存在をリセットし、６）更に小型化／狭小化のような集合ターゲット内の１つ又はそれよりも多くのメモリ・チャネル内のシステム利用可能空間を変え、７）メモリ・インタリーブ・セグメントの所定のサイズ粒度を変え、８）１つの領域内のチャネル数を判断して、領域間でチャネル数を割り当て直し、それによって全てインタリーブ境界がリセットされ、チャネルがある領域もあれば、チャネルのない領域もあり、９）そのあらゆる組合せ、かつ１０）設計に対して他の類似した変更を設定することをユーザが行うことを可能にする構成パラメータで中央レジスタを構成することができる。
【００５６】
例えば、第２のＤＲＡＭチャネル４２２からメモリ・インタリーブ・セグメントは、完全に除去することができ、しかし、それによって次にアドレス・マップのその領域（領域２）内の残りの第１のＤＲＡＭチャネル４２０によりポピュレートされるシステム・アドレスが崩壊する場合がある。同様に、第３及び第４のＤＲＡＭチャネル４２４、４２６からの４３６Ｃメモリ・インタリーブ・セグメントは、ＤＲＡＭ３及び４内のメモリ・インタリーブ・セグメントの先に構成されたサイズの半分の粒度でサイズ設定され、次に、アドレス・マップの領域４にインタリーブされるように構成することができる。中央構成レジスタのレジスタフィールドは、エクスポートされた定数として構成される。
【００５７】
上述のように、設定可能なシステムパラメータは、柔軟に動的に変更可能である多重ｃ構成をサポートし、かつ単一の予め設計された「システムオンチップ」設計が、異なる外部記憶構成を使用する広範囲にわたるパッケージング選択肢をサポートし、かつチャネルと領域間の割り当て及びチャネル間のインタリーブ境界を構成し直して単一のパッケージの異なる作動モードをより良くサポートすることを可能にする。
【００５８】
構成パラメータの設定は、レジスタへのソフトウエア書込、オンチップピンを選択してこの構成情報を担持する専用管理線を起動する選択可能なピン構成に結び付いた論理で構成モードを確立する選択可能なピン構成の設定、構成要素がチップを通じて経路指定されたこれらの管理線上の構成パラメータを参照することができるこの構成情報を担持する専用制御線の起動、ソフトウエアよって問合せ可能である読取専用メモリへの埋め込み、適切なパッケージ半田接合部との嵌め合い接続、及びそのあらゆる組合せのようないくつか方法を通じて設計者より供給することができる。従って、各領域内のパラメータは、次の時点、すなわち、１）ハードウエアが構築される時、２）実行時にＯＳソフトウエアよってプログラムされる時、３）設計時に電子設計ソフトウエアよってプログラムされる時、４）異なるオンチップピン組合せを選択することによって物理的にデバイスが製造時に物理的に変更される時、５）シミュレーションがソフトウエアにより実施された後に変更可能である時、６）チップを通して経路指定された特定の制御線上に担持された電圧をアサート／アサート解除することによって動的に変更される時、及び７）そのあらゆる組合せの時点で設定することができる。
【００５９】
構成レジスタのコンテンツは、複写するとシステムにおいてインターコネクト装置に接続した各エージェントに送ることができる。構成済みパラメータは、各イニシエータ・エージェント内に局所的に維持されたルックアップ・テーブル内に複製され、各エージェント内にアドレス・マップを発生させる。従って、各エージェント内に局所的に維持されたテーブルは、構成パラメータの中央ソースから領域の構成パラメータ値を受信して多重チャネル集合ターゲットの柔軟な再構成を可能にする。
【００６０】
図５は、中央構成レジスタから領域のパラメータ値を受信して多重チャネル集合ターゲットの柔軟な再構成を可能にするルックアップ・テーブルの実施形態を示している。ルックアップ・テーブル５６２は、構成パラメータの多くを収容することができる。テーブル５６２は、いくつかの例示的な設定可能パラメータ、並びに設定可能パラメータに対してどの値を供給することができるかに関する制約位置を示している。「ａｃｔｉｖｅ＿ｔａｒｇｅｔｓ値」パラメータ５６４は、システムの残りにモード構成を通信するものである。「この領域内のアクティブ・チャネルの実際の数」パラメータ５６６は、アクティブ・チャネルと、領域に関連いた多重チャネル集合ターゲットの個々のターゲットメンバとの間の関係を定める。「この領域パラメータ５６６内のアクティブ・チャネルの実際の数」パラメータ５６６はまた、要求内に含まれたアドレス内で必要とされるチャネル選択ビット数も制御することになる。「チャネルにマップされたターゲット」パラメータ５６８は、メモリ・チャネルに割当可能な合法的物理アドレスを示している。「これらのメンバ・カウントを有するターゲットに対して合法」パラメータ５７０は、サポートされた構成の使用回数を限定する構成論理からの制約を有する。可能な関係の全てがサポートされるというわけではない。
【００６１】
構成論理４６１は、汎用使用に向けてハードウエア及びソフトウエアを製造するのではなく、サポートされた構成及び構造的編成の数を限定するために存在する。構成パラメータ、構成パラメータの値、及びそれらのパラメータを変更することができる時期の多様性は、設計された「システムオンチップ」設計をいくつかの異なる用途をサポートするように柔軟なものにするが、可能な構成の個数を限定する論理を有することによって、エージェント、スレッド融合（マージ）ユニット、及び分割（スプリット）ユニットのようなインターコネクト装置内のハードウエアは、論理及び構成要素数が低減し、並びに特定のサポートされた構成及び構造編成を構成するための情報の通信量が低減し、並びに各イニシエータ・エージェント内に維持するルックアップ・テーブルを小型化することができる。
従って、受信構成パラメータと協働する論理は、一般的な目的からいくつかのアプリケーション専用目的／構成にいたるまで、メモリ・システムによる合法的構成量を限定して、通信すべきである設定可能なパラメータ量を限定すると共に、ＩＰコアを全てのアプリケーションに対して汎用とするためにチップ上に物理的に存在する論理及びハードウエア量を限定することができる。
【００６２】
テーブルは、８メンバ多重チャネル集合ターゲットに関する可能な例示的な関係を示している。４メンバ及び２メンバチャネル集合ターゲットに対しては、アクティブターゲットパラメータの一部の値は違法であるので、コンパイル時にＥＲＲＯＲが発生する。ａｃｔｉｖｅ＿ｔａｒｇｅｔｓパラメータの値の多くは、静的構成に関しては価値がないものであるが、その理由は、アクティブ・チャネルの個数は、関連ターゲットメンバ・カウントよりも少ないからである（例えば、８メンバターゲットの場合は２という値）。これらの値は、ブート構成をサポートために利用可能である。これらの値がブート設定可能ではない領域に対して構成されていた場合は、コンパイルエラーも発生する。例えば、ａｃｔｉｖｅ＿ｔａｒｇｅｔｓ値１５及び値１４は、４メンバ多重チャネル・ターゲットに対して合法的な値ではなく、また、２メンバ多重チャネル・ターゲットに対しても合法的ではないので、コンパイル時でＥＲＲＯＲが発生する。
【００６３】
ａｃｔｉｖｅ＿ｔａｒｇｅｔｓ属性５６６の値の多くも「静的構成」に関しては価値がないものであるが、その理由は、アクティブ・チャネルの個数は、関連の多重チャネル・ターゲットのメンバ・カウントに等しくなければならないからである。例えば、８メンバ多重チャネル・ターゲットの７（すなわち、４個のアクティブ・チャネル）のｔａｒｇｅｔ＿ａｃｔｉｖｅｓ値は、合法的でないが、４メンバ多重チャネル・ターゲットに対しては構わないものである。これらの値は、システムの構成パラメータのブート構成をサポートするのに利用可能である。
【００６４】
実施形態では、多重チャネル集合ターゲットを含む個々のターゲットは、同一ソケット構成を有することができる。これは、領域パラメータよって定められる同一ｃｈａｎｎｅ＿ｓｉｚｅを有することを意味する。個々のターゲットコアがある程度アドレス可能なｃｈａｎｎｅｌ＿ｓｉｚｅ（ａｄｄｒ＿ｗｉｄｔｈ及びｃｈａｎｎｅｌ＿ｓｉｚｅと不一致）をポピュレートした場合、ターゲットは、エイリアシング（アドレス・マップ内の２以上の異なる領域内の割当メモリと同じ物理メモリ空間の使用）又は誤差検出を実施することを担当する。この領域パラメータ内のアクティブ・チャネルの実際の数は、２進数の組の個々のターゲットを多重チャネル・ターゲットからポピュレート解除することを可能にするのに利用可能である。これは、主として起動可能な構成において有効である。このように多重チャネル・ターゲットをポピュレート解除（他の領域パラメータを変えることなく）ことによって、集合ターゲットで利用可能なメモリ・インタリーブ・セグメントの総数が少なくなる。ｒｅｉｏｎ＿ｓｉｚｅが完全に多重チャネル・ターゲットを網羅すると仮定すると、個々の構成ターゲットの一部をポピュレート解除することにより、その領域が多重チャネル・ターゲットをエイリアシングすることになる。
【００６５】
ｉｎｔｅｒｌｅａｖｅ＿ｓｉｚｅパラメータは、外部ＤＲＡＭ構成要素密度が変更された時に変更することができるように設計者によりブート設定可能／実行時プログラマブルにすることができる。この領域パラメータ内のアクティブ・チャネルの実際の数は、外部ＤＲＡＭターゲットがポピュレート又はポピュレート解除された時に変更することができるように、設計者よってブート設定可能にすることができる。複数のチャネル／領域割り当てから選択するブート設定可能ａｃｔｉｖｅ＿ｔａｒｇｅｔｓパラメータも有効である。ｒｅｇｉｏｎ＿ｓｉｚｅパラメータは、外部ＤＲＡＭ密度の変動、外部母集団、及び／又はチャネル／領域割り当てに適応するように、設計者よってブート設定可能にすることができる。
【００６６】
アドレス・マップレジスタブロックは、以下の２つの形式のレジスタ、すなわち、基準レジスタ及び制御レジスタを含む。基準レジスタ及び制御レジスタの各対は、多重チャネル・アドレス領域に対応している。基準レジスタは、多重チャネル・アドレス領域の基準アドレスを収容する。フィールド制御レジスタは、他の構成パラメータを収容する。
【００６７】
実施形態では、各アドレス・マップレジスタ対は、設計のためにｒｔｌ．ｃｏｎｆファイル内に指定された１つの多重チャネル・アドレス領域に対応している。アドレス・マップレジスタブロック及びレジスタ対は、指定されているという点で他のレジスタブロック及びレジスタと異なっている。設計における他のレジスタブロック及びレジスタは、それらがｒｔｌ．ｃｏｎｆレグブロック及びレジスタ構成を使用することに属することをエージェントの内側で明示的に指定される。
【００６８】
ＡＤＤＲ＿ＭＡＰレジスタブロック及びレジスタ対は、ａｄｄｒｅｓｓ＿ｍａｐ及び領域構成を用いたｒｔｌ．ｃｏｎｆ内で指定されており、かつそれらの多重チャネル・アドレス領域内に説明される全てのフィールドを含む。また、可読エクスポート機能及びレジスタのリストは、ａｄｄｒｅｓｓ＿ｍａｐ及び領域構成の一部として指定される。ソフトウエア可視レジスタは、これらのレジスタによって作成される。ＡＤＤＲ＿ＭＡＰレジスタブロック及びレジスタ対はｒｔｌ．ｃｏｎｆファイル内では明示的に定めることができないので、レグブロック及びレジスタ構成を用いたｒｔｌ．ｃｏｎｆ内では書き出されない。
【００６９】
ＡＤＤＲ＿ＭＡＰレジスタブロックの個々のレジスタ内の個々のレジスタフィールドは、エクスポートされた定数として構成することができる。それによって領域パラメータは、ブート設定可能にすることができる。具体的には、次に、ブート設定可能とすることができると考えられる領域パラメータは、少なくともｒｅｇｉｏｎ＿ｂａｓｅ、ｒｅｇｉｏｎ＿ｓｉｚｅ、ａｄｄｒｅｓｓ＿ｓｐａｃｅ、ｉｎｔｅｒｌｅａｖｅ＿ｓｉｚｅ、及びａｃｔｉｖｅ＿ｔａｒｇｅｔｓを含む。エクスポートと指定された各フィールドにより、単一の中央レジスタは、そのフィールドに対して定められた分のビットでインターコネクト装置の内側でインスタンス化される。このようにして、ゲートコストに対する影響は、設計に対して定められたブート構成可能性の量に正比例する。パラメータは、その単一の中央レジスタからインターコネクト装置の残りまで一斉に送られることになる。
【００７０】
ａｃｔｉｖｅ＿ｔａｒｇｅｔｓ属性５６０は、多重チャネル・ターゲットからポピュレート解除される個々のターゲットのバイナリの組を可能にするのに利用可能である。これは、主として起動可能な構成において有効である。このように多重チャネル・ターゲットをポピュレート解除することによって（他の領域パラメータを変えることなく）、集合ターゲットで利用可能なメモリ・インタリーブ・セグメントの総数が少なくなる。領域サイズが、完全にポピュレートされた構成に向けて多重チャネル集合ターゲットを完全に網羅すると仮定すると、個々の構成ターゲットの一部をポピュレート解除すれば、この領域により多重チャネル集合ターゲットがエイリアシングされる。例えば、完全にポピュレートされたアドレス領域が４メンバ多重チャネル・ターゲットに対して図３に示すように３のアクティブターゲット値でポピュレート解除された時、ポピュレート解除されたアドレスに対して利用可能なインタリーブの総数が８になる（１６から）ばかりでなく、これらの利用可能なインタリーブは、領域ベースに向けて詰められ、アドレス領域の数値が高いアドレス可能な空間（領域サイズの半割部）は、エイリアシング済みアドレス空間になる。
【００７１】
システム設計者が構成パラメータの全部でプログラムした後、負荷シミュレーションを実施することができる。経時的な統計負荷平衡が望ましい特性内に発生しない場合、設計者は、中央レジスタに異なる構成パラメータをプログラムして、負荷平衡が新しい構成パラメータで望ましい特性内に現在発生しているか否かを確かめることができる。同様の再構成処理は、チップのプロトタイプが製造された後のような設計サイクルにおいて後で実施することもできる。
【００７２】
実施形態では、インターコネクト装置は、集積回路内のターゲットＩＰコアに対して割り当てられたアドレスでアドレス・マップを実施して、集積回路内のターゲットＩＰコアとイニシエータＩＰコアの間で要求を経路指定する。ターゲットＩＰコアの第１の集合ターゲットは、アドレス・マップ内の第１の集合ターゲットに対してアドレス空間内でインタリーブされる２以上のメモリ・チャネルを含む。各メモリ・チャネルは、所定のメモリ・インタリーブ・セグメントに分割されて、次に、他のメモリ・チャネルのメモリ・インタリーブ・セグメントとインタリーブされる。アドレス・マップは、２以上の領域に分割され、各インタリーブされたメモリ・インタリーブ・セグメントは、それらの領域の少なくとも１つに割り当てられ、その領域のアドレス空間をポピュレートし、領域及びメモリ・インタリーブ・セグメントに関連のパラメータは、設定可能である。
【００７３】
第１のメモリ・チャネルは、アドレス・マップ内の第１の領域の設定可能なパラメータにより制御された第１のサイズの第１のメモリ・インタリーブ・セグメントと、アドレス・マップ内の第２の領域の設定可能なパラメータにより制御された第２のサイズの第２のメモリ・インタリーブ・セグメントとを有する。それらのメモリ・チャネルの各メモリ・インタリーブ・セグメントは、ＤＲＡＭメモリ設計仕様により、又はそのバーストの開始アドレスにより許容されるバースト長要求よって制約されないサイズ粒度でアドレス空間内で定義かつインタリーブされる。
【００７４】
特定の領域に割り当てられたアドレス空間内のメモリ・インタリーブ・セグメントのサイズ粒度を制御する設定可能なパラメータは、その領域内の上述のメモリ・インタリーブ・セグメントに関するトランザクションを有すると予想される予測された形式のアプリケーションに基づいている。各領域内の構成パラメータは、ハードウエアが構築される時、実行時にＯＳソフトウエアよってプログラムされる時、設計時に電子設計ソフトウエアよってプログラムされる時、異なるオンチップピン組合せを選択することによってデバイスが製造時に物理的に変更される時、シミュレーションがソフトウエアにより実施された後に変更可能である時、チップを通して経路指定された特定の制御線上に担持された電圧をアサート／アサート解除することによって動的に変更される時、及びそのあらゆる組合せから成る群から選択された時期に設定することができる。設定可能な構成パラメータは、動的に変更可能である複数のチャネル配置を柔軟にサポートすると共に、単一の設計された「システムオンチップ」設計が、異なる外部記憶構成を使用する広範囲にわたるパッケージング選択肢をサポートし、かつチャネルと領域間の割り当て及びチャネル間のインタリーブ境界を構成し直して単一のパッケージの異なる作動モードをより良くサポートすることを可能にする。
【００７５】
１つ又はそれよりも多くの集合ターゲット上のアドレス領域の設定可能なマッピングにより、領域当たりの異なるインタリーブサイズがサポートされ、集合ターゲット当たりの異なる物理チャネルがサポートされ、インタリーブサイズの実行時の割当及び／又は集合ターゲット又はアドレス領域へのチャネル割当がサポートされる。
【００７６】
構成パラメータの設定は、レジスタへのソフトウエア書込、オンチップピンを選択してこの構成情報を担持する専用管理線を起動する選択可能なピン構成に結び付いた論理で構成モードを確立する選択可能なピン構成の設定、構成要素がチップを通じて経路指定されたこれらの管理線上の構成パラメータを参照することができるこの構成情報を担持する専用制御線の起動、ソフトウエアよって問合せ可能である読取専用メモリへの埋め込み、適切なパッケージ半田接合部との嵌め合い接続、及びそのあらゆる組合せから成る群から選択されたいくつか方法を通じて設計者により供給することができる。
【００７７】
アドレス・マップ内のアドレス領域は、第１の量のバイトで構成された粒度を有する第１のメモリ・チャネルからその領域に割り当てられた所定のメモリ・インタリーブ・セグメントを有し、アドレス・マップ内の第２の領域は、第２の量のバイトで構成された粒状度を有する第２のメモリ・チャネルからその領域に割り当てられた所定のメモリ・インタリーブ・セグメントを有する。
【００７８】
アドレス・マップ内の各領域は、１）その領域内のメモリを用いた予測されたプログラムに基づいており、２）その領域内のメモリを用いた一種の予測されたプログラムのアドレス局所性の原理を利用するように、その領域に割り当てられたアドレス空間内でメモリ・インタリーブ・セグメントのサイズ粒度を制御するそれ独自の設定可能なパラメータを設定することができる。ユーザは、１）いくつかの個別のＩＰメモリコアを列挙し、２）アドレス・マップ内にいくつかの領域を列挙し、３）アドレス・マップにおいて領域に慎重なＩＰメモリコアをマップし、４）領域からチャネルを除去し、その後その領域の残りのチャネルによりポピュレートされたシステム・アドレスを崩壊させることができ、５）領域におけるチャネルの存在をリセットし、６）更に小型化／狭小化のような集合ターゲット内の１つ又はそれよりも多くのメモリ・チャネル内のシステム利用可能空間を変更し、７）メモリ・インタリーブ・セグメントの所定のサイズ粒度を変更し、８）１つの領域内のチャネル数を判断して、領域間でチャネル数を割り当て直し、それによって全てインタリーブ境界がリセットされ、チャネルがある領域もあれば、チャネルのない領域もあり、かつ９）そのあらゆる組合せから成る群から選択された変数に対して、構成パラメータを供給することができる。ユーザインタフェースの観点から単一の中央構成レジスタは、設計者がこのレジスタに構成パラメータをプログラムするために存在するものであり、中央構成レジスタのレジスタフィールドは、エクスポートされた定数として構成される。
【００７９】
受信構成パラメータと協働する構成論理は、一般的な目的からいくつかのアプリケーション専用目的／構成にいたるまでメモリ・システムによる合法的構成量を限定して、通信すべきである設定可能なパラメータ量を限定し、かつＩＰコアを全てのアプリケーションに対して汎用とするためにチップ上に物理的に存在する論理及びハードウエア量を限定する。各エージェント内に局所的に維持されたテーブルは、構成パラメータの中央ソースから領域の構成パラメータ値を受信して多重チャネル集合ターゲットの柔軟な再構成を可能にする。
【００８０】
システムは、並行処理管理の強化をサポートすることができる。システムは、オープンコアプロトコル（ＯＣＰ）スレッド及びＯＣＰタグに対するサポート及びマスターＩＤによるＡＸＩとの接続性を有する。インターコネクト装置が並行処理の外部かつ内部ユニット間での柔軟なマッピングを有することが重要である。これは、柔軟なスレッド／タグマッピングの形を取る。インターコネクト装置は、並行処理コストと性能のトレードオフを管理する効率的な機構を有する。スレッドマッピング及びスレッド崩壊アドレスを使用して制御の細密な粒度と共に、並行処理コストと性能のトレードオフの必要性を管理することができる。組合せたＯＣＰスレッド及びＯＣＰタグサポートをもたらすことが、これらの必要性に対応する１つの方法である。また、付加的な制御は、ターゲットスレッドとのイニシエータ・スレッド融合が行われるタグ取り扱いを指定することよって行うことができる。部分的スレッド崩壊のサポートは、これらのトレードオフ必要性に対応することができる別の機能である。
【００８１】
実施形態では、イニシエータ・エージェントが多重チャネル・ターゲット内の１つの個々のターゲットにエージェントを接続した場合、このイニシエータ・エージェントは、多重チャネル・ターゲット内の全ての個々のターゲットにエージェントを接続すべきである。
【００８２】
要求経路順序の維持
図６Ａは、複数のスレッド融合・スレッド分割のユニットを有するインターコネクト装置上で読取及び書込要求の要求順序を維持する複数のイニシエータＩＰコア及び複数のターゲットＩＰコアを有するＳｏＣのような集積回路の実施形態のブロック図を示している。「中央演算処理装置」ＩＰコア６０２のような各イニシエータＩＰコアは、インターコネクト装置６１８とインタフェースで接続するそれ独自のイニシエータ・エージェント６５８を有することができる。第１の「ＤＲＡＭ  ＩＰ」コアのような各ターゲットＩＰコアは、インターコネクト装置６１８とインタフェースで接続するそれ独自のイニシエータ・エージェントを有することができる。各「ＤＲＡＭ  ＩＰ」コア６２０〜６２４は、関連のメモリ・スケジューラ６３２、ＤＲＡＭコントローラ６３４、及びＰＨＹユニット６３５を有することができる。インターコネクト装置６５８は、インターコネクト装置６１８自体の内部にあるフロー制御論理を実施して、スレッド当たりを条件として、所定のスレッド内の各出された要求が各スレッドの宛先アドレスで到着した時の順序を管理する。
インターコネクト装置６１８も、応答ネットワーク内のインターコネクト装置の内部にあるフロー制御プロトコルを実施して、送信された場合に対応する要求の順序で同じスレッド内の応答を戻す時期の順序付け制限事項を実行する。インターコネクト装置６１８は、インターコネクト装置自体の内部にあるフロー制御論理及びフロー制御プロトコルを実施して、供される同じスレッド内の１組の出された要求、及び互いに対して、ただし、別のスレッドの順序付けとは独立に、順序正しく返送される応答を順序付ける予想される実施を管理する。スレッド分割ユニットのフロー制御論理は、１つのイニシエータ・スレッドからのトランザクションが同時に複数のチャネルに対して、及び従って同時に多重チャネル・ターゲット内の複数の個々のターゲットに対して未処理であることを可能にする。これには、２つの異なるチャネルでターゲットとされるトランザクション、並びに単一であるが異なるチャネルで各々ターゲットとされる２つのトランザクション（同じイニシエータ・スレッドから）が含まれ、ここで、これらの２つの異なるチャネルは、多重チャネル・ターゲット内の２つの個々のターゲットにマップされている。
【００８３】
イニシエータ・エージェント近傍又はイニシエータ・エージェント内のスレッド分割ユニットは、要求のようなスレッドの各部をチップ上の複数の別々の物理的経路に送る。例えば、ＣＰＵコア６０２に関連の第１のイニシエータ・エージェント６５８内のスレッド分割ユニットは、第１の結合式スレッド融合・分割ユニット６６８に至る第１の物理的経路６６２に沿って、第２の結合式スレッド融合・分割ユニット６６８に至る第２の物理的経路６６４に沿って、又は第３の結合式スレッド融合・分割ユニット６７２に至る第１の物理的経路６６２に沿って所定のスレッド内のトランザクションを経路指定することができる。フロー制御論理は、その組のトランザクションの各部がシステム内の別々の物理的経路上で経路指定されており、並びにシステム内の／チップ上の異なるエリアに物理的に位置するターゲットに経路指定されているために、適切である場合には、フロー制御分割プロトコルを早期のトラフィック分割に適用する。
【００８４】
ターゲット・エージェント近傍又はターゲット・エージェント内のスレッド融合ユニットは、そのスレッドセグメントからの要求に対する応答が、予想された順序正しい応答順序でターゲットコアからイニシエータ・コアに戻ることを保証する。例えば、第１のターゲット・エージェント６３１の近くの第１のスレッド融合ユニット６６８は、所定のスレッドからの要求に対する応答が、予想された順序正しい応答順序で第１のターゲット「ＤＲＡＭ  ＩＰ」コア６２０及び第２のターゲット「ＤＲＡＭ  ＩＰ」コア６２２から第１のイニシエータ・コア６６２に戻ることを保証する。
【００８５】
２つの異なるイニシエータからスレッドは、スレッド融合ユニット内で単一の第３のスレッドに結合することができる。単一のスレッドの各部は、スレッド分割ユニット内で２つの異なるスレッドに分割することができる。融合及び分割ユニットは、スレッドｉｄマッピングを用いて、異なるスレッド識別子を有するスレッドを結合することができる。各スレッド融合ユニット及びスレッド分割ユニットは、分割融合点でトランザクションの局所的順序を維持すると共に、そのシステムを応答のための簡単なフロー制御機構に結合することができる。
【００８６】
上述のように、第１のイニシエータ・エージェント６５８のようなイニシエータ・エージェント内のスレッド分割ユニットは、接続したイニシエータＩＰコアからの所定のスレッド内の１組のトランザクションを分割することができ、ここで、１組のトランザクションの分割された各部は、意図したターゲット（すなわち、２つの異なるチャネル及び２つの異なるターゲットＩＰコア）に至る別々の物理的経路上で経路指定されている。その分割ユニットに関連のフロー制御論理は、現在の物理的経路に向かうその同じスレッド内の未処理要求からの全ての肯定応答通知がスレッド分割ユニットに返送された時に他方の物理的経路への切り換え及び他方の物理的経路に沿った宛先アドレスによる同じスレッドからの要求を経路指定する切り換えが行われることを可能にするために、その同じスレッド内の未処理要求よって使用されている物理的経路以外に、物理的経路に向かう同じスレッドからの次の要求の発行を停止していてフロー制御を実施する。フロー制御論理は、スレッド分割ユニットの一部又はスレッド分割ユニットターゲットで調節する論理の別々のブロックとすることができる。従って、スレッド分割ユニットは、フロー制御を実施して、現在の物理的経路に向かうその同じスレッド内の未処理要求からの全ての肯定応答通知が上述のスレッド分割ユニットに戻されるまでその同じスレッド内の未処理要求よって使用されている現在の物理的経路以外に、リンクのような第１の物理的経路６６２に向かう同じスレッドからの次の要求の発行を防止する。
【００８７】
フロー制御論理は、同じスレッドからの要求が第２の意図したターゲットに別々の物理的経路に沿って経路指定される前に、要求の安全な到着を示す同じスレッド内の肯定応答通知を追跡して、全ての以前の要求が意図したターゲットＩＰコアの前に最後のスレッド融合ユニットに到達したことを検証する。フロー制御論理は、フロー制御プロトコルを適用して、単にそのスレッドから要求がシステム内の別々の物理的経路に経路指定されている時に同じスレッドからの要求の発行を停止する。スレッド分割ユニット及び関連のフロー制御論理は、インターコネクト装置トポロジーにおいて各ターゲット又はチャネルに装備され、かつ集中化したターゲット／チャネル分割ユニットに関連のトラフィック及び経路指定混雑に関する問題を最小にする位置に関して遥かに多くの柔軟性を可能にするものである。
【００８８】
実施形態では、要求がイニシエータ・エージェントにおけるようにインターコネクト装置インタフェースに入ると直ちにスレッドから要求された意図したアドレスのアドレス復号が行われる。フロー制御論理は、アドレス・マップシステム内の及び各集合ターゲットの既知の構造編成に問い合わせて、第１の集合ターゲットを構成するどのターゲットが第１の要求に役立つ必要があるかを判断するために集合ターゲットのインタリーブされたアドレス空間を復号して第１の集合ターゲットを構成するターゲットの物理的区別を判断する。第１の集合ターゲット６３７内の複数のチャネルは、物理的に異なるアドレスを有するＩＰメモリコア６２０及び６２２にマップされる。フロー論理は、メモリ・インタリーブ・セグメントが最初のチャネルに戻るチャネルラウンドにおいて異なるチャネルのチャネル境界にわたってラッピングし、次に、このラッピングの性質を繰り返す方法を含む、集合ターゲットの既知の構造編成を理解する分断論理と協働することができる。すなわち、イニシエータ・エージェントのフロー論理は、チップ上の全ての他のターゲットの中で集合ターゲット６３７内の６２０及び６２２のような適正なチャネル及び特定のターゲット６２８に要求を経路指定することができる。全体として、フロー制御論理は、例えば、フロー制御分割プロトコルを適用して、同じスレッドからの複数のトランザクションがあらゆる所定の時点で複数のチャネルに対して未処理であることを可能にする。
【００８９】
別々の物理的経路を通じて経路指定された要求は、イニシエータ・エージェントで、並びにカスケード式分割ユニット高度パイプラインシステム内の他の分割ユニットで分割することができる。図６ｂは、要求経路順序を維持するために集中融合分割ユニット６６８ｂにおいて実施されるフロー制御論理６５７の実施形態のブロック図を示している。
【００９０】
図７ａは、２以上の異なる物理的経路に沿ってスレッドにおいて第１のターゲット７２４のようなチップ上の第１の物理的位置に向かう宛先アドレスを有する第１の要求及び第１のチャネル７２２及び集合された第２のターゲット７３７を形成する第２のチャネル７２０のような第１の物理的位置からチップ上の異なる物理的位置に向う宛先アドレスを有するそのスレッド内の他の要求を経路指定することより、１組のトランザクションを発生させるイニシエータＩＰコア７１６から要求を経路指定する１つ又はそれよりも多くのスレッド分割ユニットの実施形態のブロック図を示している。第１及び第２のチャネル７２０及び７２２は、アドレス領域を共有して単一の論理集合ターゲット７３７として呈示される。イニシエータ・エージェント７１６は、スレッドから第１のスレッド分割ユニットに要求を経路指定することができる。第１のスレッド分割ユニット７６１は、第１のリンク７６２及び第２のリンク７６４のような１つ又はそれよりも多くの異なる物理的経路に沿った宛先アドレスによって要求を経路指定することができる。
【００９１】
ＩＡ７１６において、アドレス調査が行われる時、要求宛先物理ルート判断及び肯定応答通知判断の戻りルートが調査される。ＩＡ７１６は、送信アドレス／ルート調査が行われる時点で静的に肯定応答通知戻りルートを調査する。１次フロー待ち行列７１７のような順序付けフロー待ち行列は、各スレッド分割ユニット７６１及び７６３、及びスレッド融合ユニット７６５、７６７、７６９、及び７７１内に受信スレッド毎に存在する。順序付けフロー待ち行列は、先入れ後出し順序付け構造を有することができる。１つの転換先入れ後出し順序付けフロー待ち行列は、その第１の分割ユニット内の受信スレッド毎に維持することができる。論理回路及び１つ又はそれよりも多くのテーブルは、その順序付けフロー待ち行列内に入る／格納されたトランザクションの各順序付けフロー待ち行列において局所的に要求の履歴を維持する。上述のように、フロー論理は、同じスレッド内からの要求から肯定応答通知／信号を追跡して、同じスレッドからの要求が第２の意図したターゲットに別々の物理的経路に沿って経路指定される前に、意図したターゲットに向けて全ての以前の要求が意図したターゲットの前の最終融合器に到達したことを検証する。
【００９２】
待ち行列の先入れ先出しの固有の順序付けを用いてスレッド内の受け取った要求の順序を確立することができ、所定のスレッド内の要求のこの維持された局所的順序を用いて、要求をその同じスレッド内の他の要求と比較して、同じターゲットに向かうその同じスレッドからの全ての以前の要求がそのスレッドの各部を分割する分割ユニットに肯定応答信号を戻すまで、異なるリンクに対するその後の要求が分割ユニットから発せられていないことを検証することができる。
【００９３】
スレッド分割ユニットは、一般的に、所定のスレッド内の単一のトランザクションを２以上のトランザクションに分割することができる場所に位置し、単一のトランザクションの分割された各部は、それらの意図したターゲットに至る別々の物理的経路上に経路指定される。実施形態では、トランザクション転送／本来の要求の一部がその転送の意図したターゲットの前に最後のシリアル化の点（最終スレッド融合ユニットなど）に到達した時、肯定応答通知が、初期スレッド分割ユニットに戻される。未処理トランザクションは、肯定応答信号が異なる物理的経路からの全ての以前の要求から受信されるまでシリアル化されているが、そのスレッド内の要求のいずれかに対する応答の受信に関してシリアル化されるのではないことに注意されたい。要求に関するフロー制御プロトコルは、他のスレッドに対しても非閉塞性を有し、並びに同じスレッドから第２の要求を出す前に第１の要求に対する応答を必要とすることに対しても非閉塞である。
【００９４】
第１のスレッド分割ユニット７６１は、第２のスレッド分割ユニット７６３と要求経路においてカスケード式にすることができる。初期スレッド分割ユニットと意図した集合ターゲットチャネル間の物理的経路内のその後のスレッド分割ユニットは、ターゲットチャネルとして処理することができる。要求経路スレッド融合ユニットも、初期スレッド分割ユニットに関連のフロー制御論理によってカスケード式にすることができるが、各スレッドの肯定応答通知は、経路上の最終スレッド融合ユニットから意図したターゲットチャネルに送られるべきである。上述のように、スレッド分割ユニットは、カスケード式にすることができるが、通知は、経路内の全ての分割ユニットに戻す必要がある。物理的経路内の各分割ユニット内のフロー論理は、オープンブランチ経路からの全ての肯定応答通知が受信されるまで異なる「ブランチ／物理的経路」に切り換わる。応答戻りネットワークは、図７ａに示す以前の要求ネットワークの正確な対等物とすることができ、逆のフロー制御を追加して同じインターコネクト装置リンク７６２及び７６４を使用することさえできることに注意されたい。
【００９５】
実施形態では、上流側分割ユニットは、その後の要求を下流側スレッド分割ユニットで別々の物理的経路に沿って分割することが必要になるまで、所定のスレッドから別の分割ユニットまで複数の要求を送り続ける。次に、経路分割を引き起こす下流側分割ユニットは、初期物理的経路に沿って進むそのスレッドからの未処理要求の全てが経路分割を引き起こす下流側スレッド分割ユニットにそれらの未処理要求の受信の肯定応答通知を通信してしまうまで、そのスレッドからの未処理要求の全てから別々の物理的経路に沿って進む同じスレッドからのその後の要求のフロー制御バッファリングを実施する。
【００９６】
肯定応答通知は、黙示的なものとすることができ、従って、両方の状況、すなわち、１）初期スレッド分割ユニットとスレッド要求の最終宛先アドレスの前の最終スレッド融合ユニットとの間に分割ユニットが存在しない場合、２）初期スレッド分割ユニットと下流側スレッド分割ユニットの間に構成要素に影響を与える他のスレッドが存在しない場合に、要求の実際の肯定応答通知の戻しを否認することができる。
【００９７】
実施形態では、集積回路のインターコネクト装置は、インターコネクト装置に結合された１つ又はそれよりも多くのイニシエータ・アイピー（ＩＰ）コアと、複数のターゲットＩＰコアとの間でトランザクションを通信する。インターコネクト装置は、トランザクション内で予想実行順序を維持しながら、互いに対して並列に第１のイニシエータから出され、かつ１）複数の個別のターゲットＩＰコア、及び２）アドレス・マップ内の第１の集合ターゲットのためのアドレス空間内でインタリーブされる２以上のメモリ・チャネルを含む集合ターゲットＩＰコアのうちの少なくとも一方に出された複数のトランザクションをサポートするように構成された論理を有するフロー制御機構を実施することができる。
フロー制御機構は、第１のトランザクションが第２のトランザクションの前に完了することを保証しながら、かつ第１のトランザクション内の予想実行順序が維持されることを保証しながら、同じ第１のイニシエータＩＰコアから第１のＩＰコアに出された第１のトランザクションが完了する前に第１のイニシエータＩＰコアから第２のターゲットＩＰコアに出される第２のトランザクションをサポートする論理を有する。第１及び第２のトランザクションは、同じイニシエータＩＰコアからの同じスレッドの一部である。第１及び第２のトランザクションの各々は、１つ又はそれよりも多くの要求及び１つ又はそれよりも多くの任意的な応答から成る。要求を送るイニシエータ及び要求に対する応答を送るターゲットは、トランザクションであると考えられる。従って、イニシエータからの書込及び本来の書込に応答するターゲットからの書込は、依然としてトランザクションであると考えられる。
【００９８】
インターコネクト装置は、インターコネクト装置自体の内部にあるフロー制御論理を実施して、互いに対して、ただし、別のスレッドの順序付けとは独立に順々に供される同じイニシエータからの同じスレッド内の１組の出された要求を順序付ける予想された実施を管理することができる。フロー制御論理は、ターゲットＩＰコアの宛先アドレスに至る要求経路内のスレッド分割ユニットに関連するものであり、スレッド分割ユニットは、フロー制御を実施して、現在の物理的経路に向かうその同じスレッド内の未処理要求からの全ての肯定応答通知が上述のスレッド分割ユニットに戻されるまでその同じスレッド内の未処理要求よって使用されている現在の物理的経路以外に、リンクのような第１の物理的経路６６２に向かう同じスレッドからの次の要求の発行を防止する。
【００９９】
フロー制御論理は、同じスレッド内の要求の安全な到着を示すそれらの要求からの肯定応答通知を追跡して、同じスレッドからの要求が第２の意図したターゲットに別々の物理的経路に沿って経路指定される前に、意図したターゲットに向けて進む全ての以前の要求が意図したターゲットの前の最終融合器に到達したことを検証するように構成される。順序付けフロー待ち行列は、分割ユニット、並びに各順序付けフロー待ち行列内での要求の履歴を局所的に維持するテーブル内の受信スレッド毎に存在する。従って、スレッド分割ユニットで受け取った要求の局所的順序が確立される。スレッド内の要求の局所的順序は、要求をその同じスレッド内の他の要求と比較して、初期物理的経路に向かうその同じスレッドからの全ての以前の要求が分割ユニットに肯定応答信号を戻すまで別々の物理的経路に至るその後の要求がスレッド分割ユニットから発されていないことを検証するために維持される。
【０１００】
所定のスレッド内のトランザクションの組を分割したスレッド分割ユニットに関連のフロー制御論理は、そのスレッド内の他の未処理要求から別々の第１の物理的経路に沿って経路指定される次の要求を出すが、１）以前の要求がバースト要求であった場合は早くても直前の要求内のワード量の１サイクル後であるか、又は２）早くても、直前の要求がその直前の要求のターゲットアドレスの前の最終スレッド融合ユニットに到着することになる時間量の総時間と、スレッド分割ユニットに肯定応答通知を通信する時間との合計である。肯定応答通知は、黙示的なものであり、従って、両方の状況、すなわち、初期スレッド分割ユニットとスレッド要求の最終宛先アドレスの前の最終スレッド融合ユニットとの間に分割ユニットが存在しない場合、及び初期スレッド分割ユニットと下流側スレッド分割ユニットとの間に構成要素に影響を与える他のスレッドが存在しない場合には、要求の実際の肯定応答通知の戻しを否認する。
【０１０１】
スレッド分割ユニットは、別のスレッド分割ユニットと要求経路においてカスケード式にすることができる。上流側スレッド分割ユニットは、その後の要求を下流側スレッド分割ユニットで別々の物理的経路に沿って分割することが必要になるまで、所定のスレッドからの要求を上流側スレッド分割ユニットから下流側スレッド分割ユニットに連続的に送ることができる。下流側分割ユニットは、初期物理的経路に沿って進むそのスレッドからの未処理要求の全てがそれらの未処理要求の受信の肯定応答通知を経路分割を引き起こす下流側スレッド分割ユニットに通信してしまうまで、そのスレッドからの未処理要求の全てから、別々の物理的経路に沿って進む同じスレッドからのその後の要求のフロー制御バッファリングを実施する。
【０１０２】
システムを通じたステージ単位で要求及び応答を格納及び移動させるためにバッファを伴ってシステムをパイプライン化することができる。システムは、複数の要求を同じイニシエータから送ることができるようにパイプライン記憶システムも使用し、各々の要求は、異なるサイクルで送り出され、イニシエータは、次の要求を発生させる前に初期要求に対する応答を受信するのを待たなくて済む。インターコネクト装置内のスレッド分割ユニットは、以前の要求と同じ要求に沿って次の要求を送る前に単に出された要求の肯定応答通知を待たなければならないだけである。
【０１０３】
フロー論理は、肯定応答通知を用いて要求経路デッドロックを防止し、肯定応答通知は、最終スレッド融合ユニットから要求ネットワークに沿って戻される。フロー論理は、一度に２以上のターゲットに対して未処理であるトランザクションを有するイニシエータがないことを検証するインタロックとして上述のフロー制御プロトコルを使用する。依然としてフロー制御プロトコルは、明らかに、１つのイニシエータからのトランザクションが、一度に１つの集合ターゲット内の複数のチャネルに対して、及び従って一度に集合ターゲット内の複数の個々のターゲットに対して未処理であることを可能にするものである。
これらの個々のターゲットでの進行速度は異なる場合があるので、応答は、要求がイニシエータ・コアよって出された方法に関して順序がバラバラになってイニシエータ・コアに送られる可能性がある。簡単な応答フロー制御プロトコルを用いて、これらの要求に対する応答が、要求がイニシエータ・コアよって出された方法に対して予想順序でイニシエータ・コアに送られることを保証することができる。要求フロー制御論理と簡単な応答フロー制御プロトコルの組合せにより、インターコネクト装置は、同時に同じスレッドからの集合ターゲットの複数のチャネルに向かう同時の要求を管理することができる。
【０１０４】
各スレッド分割ユニットとスレッド融合ユニットに実施される要求フロー制御論理と簡単な応答フロー制御プロトコルの組合せにより、この制御をインターコネクト装置上に分散させることができる。各スレッド分割ユニット及びスレッド融合ユニット内の実施の分散により、各スレッド分割ユニット及びスレッド融合ユニットは、物理的経路の切り換えが起こることができるまで、局所システム・アドレス・マップに問い合わせてスレッド経路指定及びスレッドバッファリングを判断することができる。それによって要求平均待ち時間の低減が発生する。また、ソフトウエア及び実際にはＩＰコア自体は、実際の集合ターゲット構造を理解する必要がないので、ソフトウエア透過性である。スレッド分割ユニット及びスレッド融合ユニットは、端末相互間で協働して、インターコネクト装置内に完全なトランザクション並べ替えバッファをインストールする必要がなく順序付けを保証する。
【０１０５】
同様に、図１５は、多重チャネル集合ターゲット１５７９を含むイニシエータ・エージェントから複数のターゲット・エージェントまでのインターコネクト装置にわたる経路の実施形態の図を示している。
【０１０６】
図８は、イニシエータ・エージェント内のスレッド分割ユニットの例示的な時系列を示している。イニシエータ・エージェントのフロー制御プロトコル論理の使用において、第１の書込バースト要求８５１及び第２の書込バースト要求８５３のような所定のスレッドからの複数の書込要求をいずれか所定の時間に未処理のままにするが、そのスレッド内の未処理要求の全てからの別々の物理的経路に沿って宛先アドレスを有する第３の書込バースト要求８５５のようなそのスレッドからのその後の書込要求を出すことが制限される。
全てのイニシエータ・エージェントは、そのスレッド内の他の要求からの別々の物理的経路に沿って経路指定されているその組の要求内の要求に基づいて所定のスレッドからの要求を分割するスレッド分割ユニットを有することができる。バースト要求は、互いに結びつけられて所定のアドレス・シーケンス、所定のパターン、及びいくつかのワード要求を有するトランザクションになる１組のワード要求とすることができる。第１の書込バースト要求８５１及び第２の書込バースト要求８５３は、要求内の８ワードとチャネル０の宛先アドレスとを有する。第３のバースト要求８５５も、要求内に８ワードを有するが、チャネル０から別々の物理的経路の下にあるチャネル１の宛先アドレスを有する。
【０１０７】
所定のスレッド内のトランザクションの組を分割したスレッド分割ユニットに関連のフロー制御論理８５７は、そのスレッド内の第１及び第２（８５１及び８５３）のような他の未処理要求からの別々の第１の物理的経路に沿って経路指定されている次の第３のバースト要求を出すが、１）以前の要求がバースト要求であった場合は早くても直前の要求内のワード量の１サイクル後であるか、又は２）早くても、直前の要求がその直前の要求のターゲットアドレスの前の最終スレッド融合ユニットに到着する時間量の総時間とスレッド分割ユニットに肯定応答通知を発信する時間との合計である。フロー論理が、直前の要求が最終スレッド融合ユニットに到着する予測時間量と、スレッド分割ユニットに以前の要求の肯定応答通知を通信する時間／サイクルの量との合計に基づくのみであった場合、第３の要求８５５は、３サイクル前にを出していた可能性がある。第１のバースト要求８５１に対する応答も、第２のバースト要求８５３に対する応答も発生させる必要さえなく、第３の要求８５５を出す前に開始コアに戻ることも必要がないことに注意されたい。
【０１０８】
すなわち、インターコネクト装置は、フロー制御論理を使用して所定のスレッドから複数の書込要求をいずれか所定の時間に未処理のままにするが、その後のスレッドを出すためにそのスレッド内の未処理要求の全てからの別々の物理的経路に沿って宛先アドレスを有するそのスレッドからのその後の要求を出すことを制限するものであるが、１）以前の要求がバースト要求であった場合は早くても直前の要求内のワード量の１サイクル後であり、又は２）早くても、直前の要求がその直前の最終宛先ターゲットアドレスの前の最終スレッド融合点て到着する予測時間量の総時間と、２以上の異なる物理的経路に沿って経路指定されるその所定のスレッド内のトランザクションの組を分割する分割ユニットに以前の要求の安全な到着を示す肯定応答通知を戻す時間量との合計である。
【０１０９】
実施形態では、フロー制御論理は、現在の物理的経路から異なる物理的経路を宛先とするその後の書込要求をいつ発行すべきかを決めた時に公式を実施することができる。その公式は、ＢＬ＋１＜＞Ｎ＋Ｍである。Ｎ＋Ｍは、ＢＬ＋１と比較され、より大きい値が、新しい物理的経路への切り換えが行われる前の遅延時間として選択される。ＢＬは、バースト内のワード数である。Ｎは、その以前の要求の最終宛先ターゲットアドレス前の最終スレッド融合点に要求が到着するサイクル数である。Ｍは、その所定のスレッド内の組のトランザクションを分割する分割ユニットに以前の要求の安全な到着を示す肯定応答通知を戻すサイクル数である。
【０１１０】
パイプライン経路（最終スレッド融合ユニットまで）の集合深さは、分割ユニットがブランチ間で切り換えることができる最大頻度に影響を与える。例：スレッド分割ユニットと最終スレッド融合ユニットの間のパイプライン点の深さがＮであり、逆方向内の肯定応答（ＡＣＫ）パイプラインの深さがＭ（Ｎ＝Ｍ）であるとする。次に、リーフ分割器がブランチ（チャネル）間で切り換わることができる最大頻度は、Ｎ＋Ｍサイクル毎に一回である。分割器が所定のスレッドに対して新しいチャネルに切り換わる度に上述のパイプラインの両方ともバブルで満たされると保証されていることに注意されたい。同様に、書込要求に対しては、物理的経路の間で切り換えられるＷＲＩＴＥデータバースト内のワード数のサイズは、肯定応答ループの待ち時間をよりも大きく、次に、待ち時間は隠される。
【０１１１】
図９は、第１の書込バースト要求９５１及び第２の書込バースト要求９５３のような所定のスレッドからの複数の書込要求をいずれか所定の時間に未処理のままにするが、そのスレッド内の未処理要求の全てからの別々の物理的経路に沿って宛先アドレスを有するそのスレッドからのその後の読取要求９５３の発行を制限するイニシエータ・エージェントのフロー制御プロトコル論理の使用におけるスレッド分割ユニットの時系列を示している。第１の読取バースト要求９５１は、予想応答において８ワード及びチャネル０の宛先アドレスを有する。第２の読取バースト要求９５３も、予想応答において８ワードを有するが、チャネル０から別々の物理的経路の下にあるチャネル１の宛先アドレスを有する。その所定のスレッド内のトランザクションの組を分割するスレッド分割ユニットに関連のフロー制御論理９５７は、その後の第２のスレッドを出すが、１）以前の要求がバースト要求であった場合は早くても直前の要求内のワード量の１サイクル後であり、２）早くても、直前の要求がその直前の最終宛先ターゲットアドレスの前の最終スレッド融合点て到着する予測時間量の総時間と２以上の異なる物理的経路に沿って経路指定されるその所定のスレッド内のトランザクションの組を分割する分割ユニットに以前の要求の安全な到着を示す肯定応答通知を戻す時間量との合計である。従って、第１の読取バースト要求内のＡＣＫループの待ち時間は、Ｎ＝３、Ｍ＝２であり、ワードのＣｈａｎｎｅｌＢｕｒｓｔＬｅｎｇ＝８であり、ＢＬ＋１＞Ｎ＋Ｍにする。分割ユニットは、ＡＣＫループチャネルの待ち時間による影響を受けることなく、第１及び第２の読取バースト要求を分割する。応答は、早い時期に到着する恐れがあり、次に、順序付けられるのを待たなければならない。それらは、その代わりに、要求経路内の関連のスレッドに逆圧を掛けることになる。
【０１１２】
ＲＥＡＤ要求は、要求経路上で単一のサイクルが必要であるが、同じスレッド上のＲＥＡＤ要求は、連続サイクルにおいては複数のチャネル間に分割することができない。しかし、応答経路は、イニシエータが分割済み応答を組み立てなければならないのでＲＥＡＤ要求の効率を判断する。従って、ＲＥＡＤ要求に対しては、応答経路上で縫い合わせるべきであるチャネル応答のサイズがＡＣＫループの待ち時間を超える場合、後者は隠される。
【０１１３】
図１０ｂ及び１０ｃは、２ＤのＷＲＩＴＥバースト及び２ＤのＲＥＡＤバーストのようなターゲット要求トラフィックを分割するフロー制御論理の実施形態の付加的な例示的な時系列を示している。図７ａを参照すると、実施形態では、肯定応答機構は、最終の２つのリンクがスレッドを融合させるチャネル融合点から検証情報を発生させる。この情報は、異なるリンクからチャネル要求がシリアル化されたことを検証するものである。肯定応答情報は、要求ネットワークで全てのチャネルスレッド分割ユニットに戻される。チャネル分割器及び最終シリアル化点が同じサイクル境界に存在する場合（すなわち、レジスタが間にない）、明示的肯定応答信号が不要であり、チャネル分割器とチャネル融合器の間のリンク上の転送の受諾を利用して肯定応答を示すことができる。
【０１１４】
実施形態では、融合ユニットは、ａｃｋ＿ｒｅｑセットを有する成功した要求に対して着信ブランチ／スレッドを格納するように構造的に構成される。ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ信号が高と設定された時、転換待ち行列が「ポップ表示」され、かつ対応するａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ信号が正しいブランチ／スレッド上で高で駆動される。シリアル化融合器（このスレッドに対する）−スレッド融合がここで起こる。融合ユニットは、現在の要求を送ったブランチ／スレッド上のａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ信号で着信ａｃｋ＿ｒｅｑ信号を反映させるように構造的に構成される。
【０１１５】
イニシエータ・エージェントは、ｍ＿ａｃｋ＿ｒｅｑ信号を発生させる。信号は、デフォルトで低で駆動される。ｍ＿ａｃｋ＿ｒｅｑ信号は、多重チャネル・ターゲットに向かうイニシエータ・エージェントを出るあらゆる分割済みバーストの第１の転送で高で駆動される。チャネル分割は、内蔵型レジスタ点において又はパイプライン点においてスレッド分割ユニットで起こり、要求経路において必要とされる。分割ユニット内には、肯定応答制御ユニット（ＡＣＵ）が追加される。ＡＣＵは、出発する分割ユニットブランチ及び／又はスレッドが以前の転送から変わって未処理肯定応答信号がある場合は、スレッドの要求が進むのを防止する。ＲＳでの各（入力）スレッドに対しては、ＡＣＵは高々１つである。
【０１１６】
ｍ＿ａｃｋ＿ｒｅｑ信号は、要求転送と共に帯域内を進む。何らかの時点で、ｍ＿ａｃｋ＿ｒｅｑを有する要求転送がシリアル化融合ユニットに到達し、これは、接続部が同じ融合ユニット（出発）スレッド上の別の接続部と融合する最終点である。転送が融合ユニットでアービトレーションを勝ち取った場合、融合ユニットは、ｍ＿ａｃｋ＿ｒｅｑ信号を抽出してｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ信号を通じて同じ要求ＤＬリンク経路上の上流側に戻す。ｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ信号は、要求ＤＬリンク上で上流側に伝播される。これらの信号では、逆圧が発生したり、又はフロー制御が行われたりしない。「ＰＰ  ＲＳ」がある場合はいつでも、ｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ信号が登録される。ｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ信号は、経路に沿って各チャネル分割器ＡＣＵに使用される。ＡＣＵは、未処理肯定応答のカウントを維持する。ｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎが１に設定された時、ＡＣＵは、未処理肯定応答のカウントを減分させる。ｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎは、要求ネットワーク内の第１のチャネル分割点に伝播される。図７ａに示す例に対しては、この第１のチャネル分割点は、イニシエータ・エージェント構成要素に至るちょうど下流側で内蔵型レジスタ点ＲＳにある。しかし、要求肯定応答ネットワーク内の第１のチャネル分割点は、「ＰＰ  ＲＳ」構成要素にあるとすることができる。
【０１１７】
チャネル分割を行うＲＳに至る経路が、崩壊したスレッドである場合、ＤＬリンクは、肯定応答機構の目的で単一スレッドとして扱われる。
【０１１８】
実施形態では、いずれかのスレッド融合ユニットからいずれかのチャネルに至る単一の経路があるはずである。また、いずれかのイニシエータからいずれかのチャネルまで、分割ユニット及び恐らくは融合ユニットから成る単一の経路があるべきである。すなわち、ネットワーク内の２点間に複数の経路があると考えられる場合とは対照的である。いずれの２つの構成要素間にもバッファ／レジスタ点があると考えられる。肯定応答信号は、点から点の方式で上流側に渡される。肯定応答が通信される構成要素の形式に基づいて、若干異なる形式の肯定応答プロトコルがある可能性がある。
【０１１９】
ＡＣＫ手法を用いると、異なるイニシエータ・スレッドは、同時に異なるチャネル／ブランチと話し中であることができるが、チャネル／ブランチを切り換えることができる頻度は制御される。しかし、チャネル／バーストのサイズがＡＣＫループの待ち時間より大きい場合、ＡＣＫ機構は、性能を損うことにはならない。
【０１２０】
実施形態では、肯定応答機構は、チャネルに至るあらゆる経路上では最終融合ユニットより上方では必要でない。その点より先には、応答転換待ち行列をスレッド分割ユニットにおいて使用することができるが、肯定応答関連の状態／ワイヤは不要である。肯定応答機構は、イニシエータ・スレッドが専用ターゲット・スレッドを有する時はいつでも不要である。肯定応答機構は、ターゲット・スレッドを共有するイニシエータ間では、デッドロックを防止する。肯定応答信号は、「リーフ分割器」からその「リーフ融合器」までの経路のいずれにもバッファリングがない時は、黙示的に受諾される。
【０１２１】
このアーキテクチャは、ＩＡにおいて又は複数のチャネル・ターゲット・エージェントに至る経路に沿ってできるだけ早い時期に、意図的に多重チャネル経路を分割する。この手法は、帯域幅閉塞点、経路指定混雑点、及び達成可能な周波数の低下、及びスイッチング電力消費量の増大になる伝播経路長の延長化の原因になる可能な集中点を作り出すことを回避するものである。
【０１２２】
実施形態では、各スレッド分割ユニットは、リンクが所定のスレッドＩＤの肯定応答を送っていることを示す設定時に入力ビットベクトルを受信するブランチ当たりのレジスタを有する肯定応答機構を有することができる。肯定応答機構は、スレッド毎にａｃｋ＿ｃｏｕｎｔｅｒ、ｃｕｒｒｅｎｔ＿ｂｒａｎｃｈ＿ｉｄ、及びブランチ当たりロック済みフラグを有することができる。ａｃｋ＿ｃｏｕｎｔｅｒは、肯定応答信号を待っているスレッドよって送られた要求の数を数える。ｃｕｒｒｅｎｔ＿ｂｒａｎｃｈ＿ｉｄは、肯定応答信号を待っている全ての未処理要求の送り先である物理的リンクを示している。ロック済みフラグは、所定のスレッドＩＤがこの物理的リンクに対するロックを保持するか（例えば、その物理的リンク上にオープントランザクションを有するか）を示している。フラグは、バーストの要求の第１のワードで設定され、バーストの要求の最終ワードでリセットされる。
【０１２３】
分割ユニットは、そのスレッドＩＤに対するａｃｋ＿ｃｏｕｎｔｅｒ＝＝０、又はｃｕｒｒｅｎｔ＿ｂｒａｎｃｈ＿ｉｄ［ＴＲＤ］＝＝その物理的リンクである時に限り、物理的リンクに所定のスレッドＩＤで要求を送信することができる。また、スレッド分割ユニットが新しい要求を送信するためにそのスレッドＩＤに対して物理的リンクに切り換わる場合、スレッドＩＤに対して物理的リンク上にオープンバーストはないものとする（例えば、ロック済み［ＴＲＤ］［ＢＲ］は、偽でなければならない）。スレッド分割ユニットが（上述の条件で）物理的リンクにスレッドＩＤで要求を送信する時、分割ユニットは、ａｃｋカウンタを増加して、ｃｕｒｒｅｎｔ＿ｂｒａｎｃｈ＿ｉｄ＿ｆｌａｇ＝その物理的ブランチを設定する。スレッド分割ユニットがそのｔｈｒｅａｄ＝１に対して肯定応答信号を受信するサイクル毎に、スレッド分割ユニットは、ａｃｋ＿ｃｏｕｎｔｅｒを１だけ低減する。このカウンタが０に達した状態で、分割ユニットは、そのスレッドＩＤに対して異なるブランチに送信用要求を切り換えることができる。設定された状態で、ロック済みフラグは、スレッドＩＤに物理的リンク上のオープンバーストがなくなるまで設定されたままであり、かつそのスレッドＩＤに対するａｃｋ＿ｃｏｕｎｔｅｒ＝＝０である。
次に、異なる物理的経路への切り換えが行われる場合がある。スレッドＩＤが複数の物理的経路に対するロックを同時に保持するための２ＤのＷＲＩＴＥバースト又は２Ｄの「ＭＲＭＤ  Ｒｅａｄ」バーストの場合、例えば、ロック済みフラグ経路０＝ロック済みフラグ経路１＝真である。
【０１２４】
肯定応答機構は、あらゆる情報を肯定応答信号に加える／から差し引くことなく、受信する肯定応答信号を単に上流に中継するレジスタ点を有することができる。「リーフ・スレッド分割器」ユニットの出力と「リーフ融合器」ユニットの入力の間にバッファリング（又はレジスタ点）がない場合、肯定応答信号は、要求が受諾された時に黙示的に通信される。
【０１２５】
換言すれば、「リーフ・スレッド分割器」ユニットは、１つの「リーフ融合器」ユニットに要求を送信すると直ちに別の「リーフ・スレッド融合器」ユニットに送信を切り換えることができる。しかし、デッドロックは、依然として回避すべきである。数値の高いアドレスを有するチャネルから数値の低いアドレスを有するチャネルへのチャネル交差を伴った２Ｄバーストは、異なる分割の方法をしなければならず、その場合、その機能は、イニシエータ・エージェント内で実施することができる。
【０１２６】
２つの構成要素の間の距離が長い場合、それは、パイプライン化すべきである。それによって肯定応答経路も実質的にパイプライン化される。サイクル毎に、スレッドＩＤ当たりの０／１（又は、スレッドＩＤ当たりの≧０ＡＣＫカウント）が下部でこのＡＣＫパイプラインに入り、１つが上部でこのＡＣＫパイプラインを出る。このパイプライン内の０（又は、カウント＝０）は、バブルに相当するものである。
【０１２７】
図１０ａは、２ＤのＷＲＩＴＥバースト要求を分割するフロー論理の実施形態の例示的な時系列を示している。この例においては、２ＤのＷＲＩＴＥバースト要求のワード数は、４、Ｎ＝３、Ｍ＝２であり、ＣｈａｎｎｅｌｌｎｔｅｒｌｅａｖｅＳｉｚｅ＝４＜Ｎ＋Ｍである。ＷＲＩＴＥバースト要求１０８１は、時間と共に示されている。図１０ｂは、２ＤのＷＲＩＴＥバースト要求１０８３を分割するフロー論理の実施形態の例示的な時系列も示している。図１０ｃは、２ＤのＲＥＡＤバースト１０８５を分割するフロー論理の実施形態の例示的な時系列を示している。他の以前の機能に関連のこのフロー制御論理は、トランザクションの高い収量／深いパイプライン化を可能にするものである。図１０ａに示すように、複数のトランザクションが出され、かつ並列に供されており、それによって同じ期間内で供されるよりも多くのトランザクションを有するように開始することができる各イニシエータの効率が増大する。また、図１０ａのバブルで分るように、システム内の休止期間が極めて少ないのでメモリの利用度が増大している。初期の書込バースト内で示めされる最初の４つのバブルが出されている。次に、２つの休止のバブルが発生する。しかし、次に、次の書込バーストの次の４つのバブルが出されて、システムにより供されている。イニシエータ及びメモリは、同時に複数のトランザクションに作用している。
ＡＣＫループの待ち時間は、イニシエータの有効データ帯域幅を限定することができる。
イニシエータは、第１の行（ロウ）の応答を順序付けるために第１の行（ロウ）の応答を待たなければならない。次の行（ロウ）を待つ必要はない。チャネル応答は、イニシエータがチャネル応答を消費するのに利用可能な時期が早期の場合がある。それによってチャネルでこのスレッドに対して逆圧が発生し、チャネルに強制的に２Ｄバーストを送る他のスレッドイニシエータに供させることによって、イニシエータが２Ｄバーストの持続時間にわたって複数のチャネル上でスレッドを占有することができる方法に対する専用スレッドを有することができる。２ＤのＷＲＩＴＥバーストに対しては、チャネル切り換えのために、分割済みＷＲＩＴＥバーストは、元の２Ｄバーストが閉じられるまで開いたままであることに注意されたい。すなわち、分割ユニットが特定のブランチへ切り換わる前に全ての他のブランチを掃引している間に、ブランチのそのスレッドの全てのリソースは休止のままである（恐らく、マイナスＮサイクル）。同様の状況が、応答経路上で２ＤのＲＥＡＤ要求に対して存在する。
【０１２８】
図７ｂは、スレッド分割ユニットでの肯定応答機構の実施形態の概略図を示している。
肯定応答機構７８７は、論理ゲート及び肯定応答制御ユニットカウンタを含む。多重チャネル・ターゲットと通信するあらゆるイニシエータ・エージェントは、２つの機構、すなわち、肯定応答機構７８７及び応答経路間転換待ち行列と共に、要求経路内のスレッド分割又は融合ユニット内の内蔵型レジスタ点を有することができる。
【０１２９】
肯定応答機構７８７は、入力スレッド当たりのものである。スレッドは、カウントを維持することができる。カウントは、肯定応答信号（ｍ＿ａｃｋ＿ｒｅｑアサート）がｄｌｉｎ入力部で受信された時に増分され、肯定応答信号（ｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎアサート）がｄｌｏｕｔブランチに着信した時に減分される。分割ユニットは、最終転送の現在のブランチ及びスレッドを追跡し、カウントがゼロになるまでスレッドが新しいブランチ及び／又はスレッドに切り換わるのを防止する。
【０１３０】
要求経路から応答経路の転換待ち行列。チャネル分割ユニットを出る転送が肯定応答信号ｍ＿ａｃｋ＿ｒｅｑセットを有する時はいつでも、対応する応答経路融合ユニット内にあるどのブランチ及びスレッドで要求が戻るのかに関する情報が待ち行列に押し込まれる。この導出アルゴリズムは、データ構造をスレッド分割ユニット構成コードに渡してどの要求経路分割ユニット出発ブランチ及びスレッドがどの応答経路融合着信ブランチ及びスレッドに対応するかを判断する。
【０１３１】
肯定応答制御ユニット（ＡＣＵ）は、スレッド分割ユニットでの入力スレッドに対して肯定応答機構を管理するようにインスタンス化されることになる。ＡＣＵは、カウンタを保持する。カウンタは、対応するスレッドバッファが１に設定されたｍ＿ａｃｋ＿ｒｅｑセットを有する要求を送り出した時はいつでも増分される。ｍ＿ａｃｋ＿ｒｅｑ信号は、たとえｄｌｏｕｔリンク上で必要ではなくてもＲＳバッファ内に格納される。ＡＣＵカウンタは、ｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ入力が１に設定された時に減分される。ｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ信号は、以下で説明するように、ｄｌｏｕｔリンクから来るか又は内部的に発生される場合がある。ＡＣＵは、要求の宛先ブランチ及び／又はスレッドが以前のものと異なり、かつＡＣＵカウンタはゼロではない場合は、スレッドバッファが更に別の要求を送信するのを防止する。
【０１３２】
ｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ信号（減分に使用）は、各ＡＣＵでｏｎｅ−ｈｏｔである。ｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ信号が発生される３つの例示的な方法がある。図７ｂは、これらを示している。例におけるスレッド分割ユニットは、２つの着信イニシエータ・スレッドを有する。
【０１３３】
ケース１：  発信ブランチは、ターゲット・スレッドを担持する（すなわち、イニシエータ・スレッドとターゲット・スレッド間でのマッピングがこのスレッド分割ユニットモジュールで行われる）。この場合、各ターゲット・スレッドには、固有の転換待ち行列が必要である。ｍ＿ａｃｋ＿ｒｅｑ信号が対応するスレッドに対してｄｌｏｕｔで１に設定された時はいつでも、転換待ち行列は、肯定応答信号がどのスレッド（着信）に属するかを格納する。ｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ信号がｄｌｏｕｔで高に設定された時、転換待ち行列がポップ表示されて、正しいＡＣＵにｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ信号を経路指定する。
【０１３４】
ケース２：  発信ブランチは、イニシエータ・スレッドを担持し（すなわち、動的スレッドマッピングなし）、シリアル化スレッド融合ユニットは、同じサイクル境界内にある。この場合、発信要求がｍ＿ａｃｋ＿ｒｅｑセットを有し（ＲＳバッファから、信号はｄｌｏｕｔ上ではない）、要求が確実に送信された場合、ｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎが発生されて、そのイニシエータ・スレッドの対応するＡＣＵに送られる。従って、シリアル化融合ユニットは、ａｃｃｅｐｔ信号をａｃｋ＿ｒｅｔｕｒｎとして使用することができるように同じサイクル境界の中である。
【０１３５】
ケース３：  この場合、発信ブランチは、イニシエータ・スレッドを担持し、シリアル化スレッド融合器は、別のサイクル境界内にある。換言すれば、このＲＳブランチとシリアル化融合器の間にはＰＰがある。この場合、ｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ信号は、イニシエータ・スレッドの一部又は全てに対して存在する。この信号がない場合、そのスレッドに対してはＡＣＵはない。ｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ［スレッド］信号ビットは、ＡＣＵに直接に送る必要がある。従って、シリアル化融合器は、別のサイクル境界内にあるので、ａｃｋ＿ｒｅｔｕｒｎ＿＜スレッド＞信号が存在し、かつ直接に使用することができる。
【０１３６】
一部のスレッド分割器のスレッドは、対応するＡＣＵ又は対応するｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ信号なしで発信イニシエータ・スレッド上にｍ＿ａｃｋ−ｒｅｑ信号を有することができる。この場合、イニシエータ・スレッドは、チャネル分割を行わないが、何らかの下流側スレッド分割ユニットが、チャネル分割を提供する。
【０１３７】
ＲＳのｄｌｉｎリンクが、ｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎを有する場合、その値を結び止めたｄｌｉｎスレッドを除いて、ｄｌｏｕｔリンクのｓ＿ａｃｋ＿ｒｅｑ＿ｒｅｔｕｒｎ値を上流側に渡す必要がある。
【０１３８】
ブロック・バーストがスレッド分割器でチャネルにわたって分割されている場合、バーストは、１つのアトミック・シーケンスとしてスレッド分割器に入り、２以上の別々のアトミック・シーケンスとして出る。スレッド分割器には、これを処理する特別な論理が必要である。各チャネル分割ユニットは、固有のチャネル分割ユニットＩＤをあらゆるアトミック・シーケンスである第１の転送部分の着信ｐ＿ｓｐｌｉｔ＿ｉｎｆｏと比較する。
値が適合した場合、スレッド分割器は、１に設定されたｂｕｒｓｔｌａｓｔを有するバースト内のあらゆる転送に対してｍ＿ｌｏｃｋａｒｂをアサート解除すべきである。
【０１３９】
スレッド分割ユニットｄｌｉｎ＿ｂｌｃｋ＿ａｔｏｍｉｃ＿ｓｐｌｉｔ（着信スレッド）パラメータは、この機能をサポートする必要がある各着信スレッドに対して１に設定される。論理は、発信ブランチ／スレッドがアトミック・シーケンス内で変化するかを検出する必要がある。変化する場合、ｂｕｒｓｔｌａｓｔが０に設定された時はいつでも、ｍ＿ｌｏｃｋａｒｂを発信リンク上で強制的に０にすべきである。
【０１４０】
応答経路順序の維持
図１１は、２つのスレッド分割ユニット及び２つのスレッド融合ユニットを通過する２つのターゲット・エージェントから２つのイニシエータ・エージェントまでの応答経路の実施形態のブロック図を示している。２つのターゲット・エージェント１１２０、１１２２の各々は、第１のターゲット・エージェント１１２０の第１のスレッド分割ユニット１１４１及び第２のターゲット・エージェント１１２２の第２のスレッド分割ユニット１１４１のような１つ又はそれよりも多くの関連のスレッド分割ユニットを有することができる。２つのターゲット・エージェント１１２０、１１２２の各々は、第１のターゲット・エージェント１１２０の第１のスレッド融合ユニット１１４５及び第２のターゲット・エージェント１１２２の第２のスレッド融合ユニット１１４７のような１つ又はそれよりも多くの関連のスレッド融合ユニットを有することができる。ターゲット・エージェント又はメモリ・スケジューラは、並べ替えバッファを使用するのではなく、フロー制御プロトコルを実施して、対応する要求が送信された順序で同じスレッド内の応答を戻す融合ユニット１１４５、１１４７と協働する第１の応答フローバッファ１１４９のようなＦＩＦＯ応答フローバッファを有することができる。
【０１４１】
ターゲット・エージェント及び融合ユニット内のフロー論理は、先入れ先出し方式の固有の順序付けを使用して応答をその同じスレッド内の他の応答と比較し、その同じスレッドからの全ての以前の応答がそのスレッドを出すイニシエータＩＰコアに向う応答経路内のスレッド融合ユニットに向けて送信されるまで次の応答がターゲット・エージェントから発せられないことを検証する。ＦＩＦＯ応答フローバッファは、スレッド当たりを条件として満たされる。代替的に、応答バッファの転換状態は、集合ターゲットを構成する他のチャネル、又は更に応答フロー順序プロトコルを実施するチップ上の他のターゲットだけに分散させることができる。
【０１４２】
ターゲット／チャネルに最も近い融合ユニットは、どの物理的ブランチ経路が次の応答を送出すべきかに関して判断することができ、かつ適正なブランチからターゲットにｔｈｒｅａｄｂｕｓｙを経路指定する。ターゲット・エージェントに最も近い融合ユニット、又はスレッドを発生させるイニシエータＩＰコアに最も近い融合ユニットは、そのスレッドに関する順序正しい次の要求を送るように予想された物理的経路からの応答を除き、そのスレッド融合ユニットに接続した全ての物理的経路からこのフロー制御プロトコルをアサートしてこの所定のスレッドからの全ての応答に逆圧を掛けることができる。例えば、第１のスレッド融合ユニットは、応答が第１のターゲット・エージェント１１２０及び第２のターゲット・エージェント１１２２からいつ来るかを制御する。融合ユニット保持に関連の論理、カウンタ、及びテーブルは、リンクなどの物理的経路がそのスレッドの順番で次の応答を供給すべきであるかを追跡すると共に、そのスレッドの順番で次の応答がアクティブな／現在の物理的経路上で受信されるまで全ての他の物理的ブランチから来るそのスレッドからの応答を停止する。
【０１４３】
フロー制御論理は、要求待ち行列の維持された順序履歴からどの物理的経路要求がどこに経路指定されているかをそれらの要求に対応する応答の予想実行順序の順序付けされた履歴を参照することによって所定のスレッド内からの応答の予想実行順序を維持すると共に、そのスレッドに対して応答を融合ユニットに送る次の予想された順序正しい応答の物理的ブランチからのターゲット・エージェントのみを可能にし、他の物理的ブランチからのそのスレッドからの応答を阻止する。融合ユニット内のフロー論理は出された要求に関する局所的順序、及び従ってそれらの別々の物理的経路に沿って送られる予想応答順序を確立する。
【０１４４】
各融合ユニット１１４５、１１４７は、スレッド当たりを条件として、維持された応答に対するスレッドバッファを有する。スレッド深さは、最深予想バースト長にバースト要求に対する応答の全てを発生させる際の予想最大パイプライン遅延を加えたものとすることができる。フロー制御論理は、スレッド当たりを条件として、応答フロー制御をアサートする。フロー制御論理は、待機中には他のスレッドからの応答を阻止しないことに注意されたい。フロー制御論理は、単に、互いに対して所定のスレッドの中の順序正しくない応答を阻止するだけであり、あらゆる他のスレッドからの応答に対して非閉塞である。所定のスレッドに関する応答は、いずれか所定の時間に単一の物理的ブランチからその融合ユニットに来ることができる。２Ｄ要求の応答に対しては、応答は、ターゲットの間を出入りすることができる。フロー論理は、対応する要求を生成したイニシエータ・コアに戻される応答の実行順序を保証すると共に、他のスレッドマルチスレッド化フロー制御から応答に対して非閉塞である。ターゲット・エージェントの近くのフロー制御機構を使用して同じスレッド内の応答を含むトランザクション順序付けを管理することにより、この解決法は、パイプライン化されたシステム対単一チャネル手法のバッファリング要件を増大させることなく、要求がチップ上の異なる物理的経路に経路指定されるトランザクションに対する予想された順序正しい応答順序から得られるようにする。
【０１４５】
すなわち、フロー制御論理及び関連の回路は、１）どの物理的経路要求がどこに経路指定されているかの順序付けされた履歴を参照することにより、２）それらの要求に対応する応答の予想実行順序により、及び３）ターゲット・エージェントが次の予想した順序正しい要求が来る物理的経路からのみその所定のスレッドに関する応答をスレッド融合ユニットに送り、かつ他の物理的経路から来るそのスレッドからの応答を阻止することを可能にすることにより、所定のスレッド内からの応答の予想実行順序を維持する。
【０１４６】
実施形態では、インターコネクト装置は内部機構を実施して、各スレッドに対して要求順序を管理し、かつ応答ネットワーク内の内部フロー制御を用いて順序付け制限事項を実施する。内部のフロー制御を用いて応答順序を制御するので、多重チャネル構成ターゲットのターゲット・エージェント内でのスレッド崩壊は、潜在的なデッドロックを顕在化させることになるために禁止される。デッドロックとは、スレッドが互いに融合されて分割される時であり、次に、スレッドの初期要求は、その同じスレッドのその後の要求の後でパイプライン化することができる。システムは、初期要求が供されるのを待って休止／デッドロックするが、これは、パイプラインがその同じスレッドのその後の要求の後になるので発生することができないものである。
【０１４７】
多重チャネル構成ターゲットのターゲットソケット／エージェントは、対応する融合ユニットと協働する応答フロー制御論理を有するか、又は関連のターゲット・エージェントは、応答バッファを有することができる。インターコネクト装置は、非閉塞（すなわち、ＯＣＰのｍｔｈｒｅａｄｂｕｓｙ＿ｅｘａｃｔ）応答フロー制御に関して多重チャネル・ターゲットに対して最適化することができる。ターゲットソケットが阻止式フロー制御を用いるか又はフロー制御を用いない場合、ターゲット・エージェントは、応答経路が阻止されないように、そのスレッドに対して利用可能な応答バッファと各スレッド上の要求を連動させる。それによってたとえターゲットコア内の要求バッファリングを最小にすることができるとしても、インターコネクト装置に対して直接ゲートカウントと性能のトレードオフが発生する。
【０１４８】
内部インターコネクト装置機構は、デッドロック回避を保証するために要求連動を実施する。それによって要求が厳密に順序正しく多重チャネル・ターゲット・スレッドに送出されることを保証する。一般的に、これらのインタロック遅延は、見えないことになる。
インタロック機構の遅延は、同時にここで全ての基準を満たすバーストに対して単に性能に影響を与えるだけのはずである。その基準とは、バーストは、前のバーストと同じイニシエータ・スレッド上にあり、バーストは、前のバーストと異なるチャネル寄りにあり、バーストは、インターコネクト装置の深さと比較すると短く（インターコネクト装置クロックサイクルで測定）、かつバーストには、ターゲットへ向かう途中で殆ど競合は発生しないということである。
【０１４９】
応答ネットワークフロー制御を用いてスレッド順序付けを保証するインターコネクト装置の機構が性能に影響を与えるのは、フロー制御ループの待ち時間がターゲット間での応答ストリームの切り換えを遅くすることができるという範囲に限られる。ターゲット・エージェント内に又はターゲットコア内に応答の順序を維持するのを補助するために弾力バッファを設置することによって、ゲートカウント経費が最小にされる。内部機構は、応答ソース間の切り換え遅延を最小にしてターゲット応答帯域幅を限定しないように設計されている。１００％を多少下回るように単一のスレッドに関するイニシエータ応答帯域幅のみを限定することができる。しかし、複数のイニシエータが一般的に単一のターゲットを共有する場合、イニシエータ帯域幅要求が１００％よりも小さいことは既に真である。
【０１５０】
実施形態では、インターコネクト装置は、応答ネットワーク内でインターコネクト装置の内部にあるフロー制御プロトコルを実施し、応答をトリガしている要求が送信された順に対応するように、いつ同じスレッドの中で応答を戻すべきかという順序付け制限事項を実施し、フロー制御プロトコルは、別のスレッドからの要求に対して非閉塞である。
【０１５１】
ターゲットＩＰコア、並びにインターコネクト装置にインタフェースで接続するエージェントは、応答を格納するために応答フローバッファを有することができる。これらの応答フローバッファは、メモリコントローラ内にあるとすることができる。応答フローバッファは、フロー制御機構を実施する１つ又はそれよりも多くのスレッド融合ユニットと協働して、対応する要求がそのスレッド融合ユニットから送信された順序で同じスレッド内の応答を戻す。応答フローバッファは、スレッド当たりを条件として満たすことができる。
【０１５２】
フロー制御機構は、そのスレッドの順番による次の応答を供給して、そのスレッドの順番による次の応答がそのスレッドの順番による次の応答を予想している第１のスレッド融合ユニットにより受信されるまでそのスレッドからの他の応答を停止する。
【０１５３】
１つ又はそれよりも多くのスレッド融合ユニットは、インターコネクト装置内のどの物理的リンクがそのスレッドの順番による次の応答を供給すべきであるかを追跡すると共に、そのスレッドの順番による次の応答が現在の物理的リンク上で受信されるまで全ての他の物理的リンクから来るそのスレッドからの応答を停止する。ターゲット・エージェントに最も近いスレッド融合ユニットは、フロー制御プロトコルをアサートし、そのスレッド融合ユニットに接続した全ての物理的経路からの特定のスレッドからの全ての応答に対して、そのスレッドの順番による次の要求を送るように予想された物理的経路からの応答を除いて逆圧を掛ける。
【０１５４】
また、ターゲットＩＰコアに最も近いスレッド融合ユニットは、物理的ブランチ経路が次の応答を送出すべきかに関して判断することができ、第１のターゲットＩＰコアに戻る現在の物理的経路を除き、物理的経路の全部でｔｈｒｅａｄｂｕｓｙを経路指定する。
【０１５５】
フロー制御機構は、先入れ先出し方式（ＦＩＦＯ）の固有の順序付けを用いてその同じスレッド内の他の要求と要求を比較し、その同じスレッドからの全ての以前の応答がそのスレッドを出すイニシエータＩＰコアに向う応答経路内のスレッド融合ユニットに向けて送信されるまで次の応答がターゲット・エージェントから発せられていないことを検証する。出された要求に対するフロー制御機構内の局所的順序が確立され、次に、相関付けられて、それらの別々の物理的リンクに沿って送られた予想応答順序で通信される。予想情報応答順序付け情報は、予想応答順序を相関付けるために要求側スレッド分割ユニットと応答側スレッド融合ユニット間で受け渡される。
【０１５６】
フロー制御論理は、スレッド当たりを条件として応答フロー制御をアサートし、フロー制御機構は、所定のスレッドの中の順序正しくない応答に対して阻止され、あらゆる他のスレッドからの応答に対して非閉塞である。フロー制御論理及び関連の回路は、１）どの物理的経路要求がどこに経路指定されているかの順序付けされた履歴を参照することにより、２）それらの要求に対応する応答の予想実行順序により、かつ３）ターゲット・エージェントがここで次の予想される順序正しい応答が来る予定である物理的経路からのみその所定のスレッドに関する応答をスレッド融合ユニットに送り、かつ他の物理的経路から来るそのスレッドからの応答を阻止することを可能にすることにより、所定のスレッド内からの応答の予想実行順序を維持する。
【０１５７】
メモリコントローラ内のバッファと組み合わせたスレッド分割ユニット及び融合ユニットにより、専用並べ替えバッファが不要になると共に、複数のトランザクションが単に連続的にではなく並列に供されるように非閉塞フロー制御が可能である。
【０１５８】
図１２は、戻り順序応答を保証するための多重チャネル集合ターゲットにおける応答バッファ使用量の実施形態を示している。ターゲット・エージェントの応答バッファは、複数のチャネルにわたって戻り順序応答を保証するために、更に多重チャネル集合ターゲットでの応答待ち時間の変動に対処するためにも使用される。書込要求は、イニシエータにより帯域幅が限定される。従って、バッファリングの必要性／恩典が殆どない。バッファリングの興味深いケースは、応答経路の読取性能である。
【０１５９】
図１２は、集合ターゲット内のチャネル境界に及ぶイニシエータバーストの簡単な場合を示している。交差により導入される何らかのＣｈｏｐ＿ｄｅｌａｙが存在する。インターコネクト装置は、イニシエータ・エージェント内の分断論理を実施する。イニシエータ・エージェントは、サイクル当たりに１つの要求を出すので、最良の場合はＣｈｏｐ＿ｄｅｌａｙ＝１である。しかし、イニシエータ・エージェントからチャネルまでの経路において構造的な（最小）待ち時間の差異がある場合がある（要求経路内の各パイプライン点又はレジスタ点に対して１サイクル）。更に、インターコネクト装置は、分割点で全体的順序を実施する。それによって第２の分断された要求が数サイクル（０−２）遅れる恐れがあり、この遅れは、Ｃｈｏｐ＿ｄｅｌａｙに追加されることになる。従って、Ｃｈｏｐ＿ｄｅｌａｙは、良好な構成に対しては１〜２サイクルの範囲、より厳しい構成に対しては２〜４サイクルの範囲に見るのが適切であると考えられる。
【０１６０】
典型的な場合１２０５では、２つのチャネル、すなわち、チャネル０及びチャネル１での待ち時間はほぼ同じである。この場合、チャネル１応答経路では、一部の場合には、何らかの逆圧（部分的には、Ｒｅｓｐ＿ｒｅｏｒｄｅｒ＿ｄｅｌａｙによる）があると思われる。この時間中には、ターゲット自体を遅れさせることを回避するためにターゲット・エージェントのバッファリングが必要である。必要なバッファリング量は、以下の通りである。
i. =(Ch0_rd_latency+Ch0_rd_length) - (Chop_delay+Ch1_rd_latency)
ii. =(Ch0_rd_latency-Ch1_rd_latency) + (Ch0_rd_length-Chop_delay)
【０１６１】
換言すれば、十分なバッファリングは、待ち時間の差及び分断遅延にわたる過剰なバースト長に対処するのに必要である。
【０１６２】
一部の場合には、チャネル１待ち時間は、チャネル０待ち時間を超えることになる。上の式は、待ち時間の差が増大する時に、初項がマイナスになり必要なバッファリングが少なくなることを示している。何らかの時点で、待ち時間の相違点は第２の項を圧倒するのに十分に大きなものになる可能性があり、従って、バッファリングが不要になる。この時点は、以下の時である。
i. Ch1_rd_latency=Ch0_rd_latency+(Ch0_rd_length-Chop_delay)
【０１６３】
１つの待ち時間がこの時点よりも先で増大した場合、イニシエータは、応答流れにバブルを見ることになる。これを「遅延ケース」１２０７として示している。
【０１６４】
一部の場合には、チャネル０待ち時間は、チャネル１待ち時間を超えることになる。この差異は、極端なものになる可能性がある。上の図は、これを「歪みケース」１２０９として示している。この場合、Ｃｈ１＿ｒｄ＿ｌｅｎｇｔｈエントリを備えたチャネル１応答バッファは、イニシエータの応答速度を維持するのに十分なものである。しかし、その後のバーストには、完全な応答バッファの結果として逆圧が発生する可能性がある。連続的な読取バーストが逆圧なしに必要とされる場合は、依然として上の式を適用することができる。
【０１６５】
イニシエータ・エージェント内での応答並べ替えバッファには殆ど利点がない。インターコネクト装置は、ターゲット・エージェント内の応答平滑化バッファをサポートする。
ターゲット・エージェントでスレッド当たりの応答バッファの個数は、インターコネクト装置内でユーザが設定可能である。スレッド当たりのバッファの最大個数は、３２とすることができる。多重チャネル・ターゲットの頻繁な利用のための応答バッファは、同様の構成であるが性能低下を備えたＳＭＸ設計に関しては、インターコネクト装置における支配的なゲートカウント増加源になる場合がある。
【０１６６】
図１３は、それらの要求に即してスレッド内の要求順序及び予想応答順序を維持する例示的なインターコネクト装置の内部構造を示している。インターコネクト装置は、３つのイニシエータ・エージェント１３３１、１３３３、及び１３３５、及び３つのターゲット・エージェントを含み、ターゲットａｇｅｎｔ０（１３４１）及びターゲットａｇｅｎｔ１（１３３９）は、多重チャネル・ターゲット（ＤＲＡＭ）に属するターゲット・エージェントである。この例においては、１つの多重チャネル集合ターゲット１３３１のみが存在する。
【０１６７】
要求ネットワーク上では、イニシエータ・エージェント１３３１に対して、多重チャネル・ターゲットＤＲＡＭに向かう多重チャネル経路は、イニシエータａｇｅｎｔ０の１３３１の内蔵型要求側スレッド分割ユニット、Ｒｅｑ＿ｒｓ１０に分割される。２つのチャネルがあるので、２つの発信の単一スレッド化（ＳＴ）したＤ１リンク１３６２、１３６４の各々は、異なるチャネル・ターゲットに向かう。第３の発信「ＳＴ  ＤＬ」リンク１３６６は、通常の個々のターゲット・エージェントＴＡ２（１３４１）に至る通常の経路である。要求側チャネル分割ユニット１３６８ｂは、イニシエータ・エージェント１３３１に組み込まれている。チャネル・ターゲットａｇｅｎｔ０（１３４３）に対しては、ターゲットａｇｅｎｔ０（１３４３）の上流側にある融合分割ユニット構成要素、ｔａｔ００＿ｍｓ０（１３６８ａ）は、チャネル融合ユニットとしての役割を果たし、２つの異なるイニシエータ・エージェント、イニシエータａｇｅｎｔ０（１３３１）及びイニシエータａｇｅｎｔ１（１３３３）から来るチャネルトラフィックを調節する。
【０１６８】
応答ネットワーク上では、ターゲットａｇｅｎｔ１（１３３９）に対して、内蔵型ＲＳ構成要素、Ｒｅｓｐ＿ｒｓ０１は、応答チャネル分割ユニットとしての役割を果たし、それぞれ、チャネル応答をイニシエータａｇｅｎｔ０（１３３１）に、通常の応答を通常のイニシエータａｇｅｎｔ２（１３３３）に、及びチャネル応答をイニシエータａｇｅｎｔ１（１３３５）に戻す３つの発信リンク１３７１、１３７３、１３７５を有する。応答側チャネル分割ユニットは、青色で色分けされている。イニシエータａｇｅｎｔ１（１３３３）に対しては、上流側融合分割ユニット構成要素、Ｉａｈ１１＿ｍｓ０は、チャネル融合ユニットであり、集合ターゲット１３３７においてチャネル０（すなわち、ターゲットａｇｅｎｔ０）及びチャネル１（すなわち、ターゲットａｇｅｎｔ１）から戻る応答を調節するばかりでなく、通常のターゲットａｇｅｎｔ２（１３４１）により戻される応答を処理する。応答側チャネル融合ユニット１３８１は、ターゲットａｇｅｎｔ０（１３４３）、ターゲットａｇｅｎｔ１（１３３９）、及びターゲットａｇｅｎｔ２（１３４１）から応答を受信する。
【０１６９】
応答側チャネル融合ユニットは、チャネル応答を調節する必要があるが、作動の基本である十分な情報を有することができないので、付加的な並べ替え情報をイニシエータ・エージェントの要求側チャネル分割ユニットから融合ユニットに渡すことができる。例えば、ＤＲＬリンク１３９１は、イニシエータａｇｅｎｔ１（１３３３）に対して、要求側チャネルスレッド分割ユニット、Ｒｅｑ＿ｒｓ１１、及び応答側チャネルスレッド融合ユニット、Ｉａｈ１１＿ｍｓ０の間で応答並べ替え情報を渡すために使用される。
【０１７０】
多重チャネル・ターゲットＤＲＡＭに対しては、ターゲット・エージェントＴＡ０（１３４３）は、チャネル０に割り当てられ、ターゲット・エージェントＴＡ１（１３３９）は、チャネル１に割り当てられている。多重チャネル・ターゲットＤＲＡＭのイニシエータと個々のターゲット間の接続性は、例に示すようにイニシエータ・エージェント（イニシエータに接続）及び特定のターゲット・エージェント（多重チャネル・ターゲットＤＲＡＭの個々のターゲットに接続）を指定する接続性ステートメントを通して行われる。
【０１７１】
また、２つの多重チャネル・アドレス領域ＳＭＳ＿ｒｅｇ及びＵＳＢ＿ｍｅｍを開示する。ＳＭＳ＿ｒｅｇ領域の仕様は、以下のように説明することができる。この領域のサイズは、０ｘ１０００バイトである。８のｃｈａｎｎｅｌ＿ｉｎｔｅｒｌｅａｖｅ＿ｓｉｚｅを有することは、各インタリーブがサイズ０ｘ１００（２８）であることを意味する。
それによって１６の非重複メモリ・インタリーブ・セグメント（領域サイズ０ｘ１０００／インタリーブサイズ０ｘ１００＝１６）をもたらす。上述のように、各インタリーブは、「チャネルラウンド」の考えでチャネルに割り当てられる。この場合、２つのチャネルがあるので、インタリーブ０、２、４、６、８、１０、１２、１４は、チャネル０（ターゲット・エージェントＴＡ０）に割り当てられ、インタリーブ１、３、５、７、９、１１、１３、１５は、チャネル１（ターゲット・エージェントＴＡ１）に割り当てられる。イニシエータ・エージェントが多重チャネル・ターゲット内の１つの個々のターゲットに接続した場合、このイニシエータ・エージェントは、多重チャネル・ターゲット内の全ての個々のターゲットに接続すべきであることに注意されたい。すなわち、図１３に示すように、ＩＡ２が同じ時間でＴＡ０にも接続されない限り、ＩＡ２とＴＡ１の関係は許容されない。
【０１７２】
実施形態では、応答経路順序付けでは、インターコネクト装置は、ＯＣＰスレッド順序を維持し、かつ応答経路において応答を並べ替える機構を有する。これは、要求経路チャネル分割器ＲＳ構成要素の情報を対応する応答経路チャネル融合器ＭＳ構成要素に渡すことによって達成される。情報は、転換待ち行列を通して渡され、それによってＦＩＦＯ順序が維持される。渡された情報は、次の応答バーストがどの着信ブランチ／スレッドから来るべきかをスレッド融合分割ユニット構成要素に教える。スレッド融合分割ユニット構成要素は、転換待ち行列によって示されたものを除き、同じ発信スレッドにマップされる全てのブランチ／スレッドに逆圧を印加する。バーストが完了した時、転換待ち行列エントリがポップ表示される。この機構により、全ての応答が正しい順に戻ることを保証する。
【０１７３】
集合ターゲット内のチャネルに向うチャネル境界と交差する個々のトランザクションの分断
図１４は、チャネル・アドレス境界と交差する個々のトランザクションを同じスレッドからの２以上のトランザクション／要求に分断することを直接にサポートする分断論理の実施形態を示しており、それによってトラフィックを発生させるソフトウエア及びハードウエアは、所定のＳｏＣの特定の多重チャネル構成に対する依存度が小さくなる。
【０１７４】
インターコネクト装置は、分断論理１５８４を実施して、第１の集合ターゲット内の第１のメモリ・チャネル１５２０から第２のメモリ・チャネル１５２２までのメモリ・チャネル・アドレス境界と交差する個々のトランザクションを同じスレッドからの２以上のバースト要求に分断する。分断論理１５８４は、検出器１５８５と協働し、バースト要求１５４８の要求バイトの最初のワードの開始アドレス及びバースト要求１５４８の要求バイトの最終ワードの終了アドレスが原因でそのバースト要求１５４８内の要求バイトがバースト要求１５４８内のワード要求の全てをもたらすために１つ又はそれよりも多くのチャネル・アドレス境界まで及ぶのはいつかを検出する。分断論理１５８５は、ＩＰイニシエータ・コアにより出された各バースト要求１５４８内のスレッド順序付けを追跡して個々のメモリ・チャネル１５２０及び１５２２にわたって拡散されているバースト要求１５４８の分断された各部間で全体的ターゲット順序付けを維持するためのチャネル分断アルゴリズム及び１つ又はそれよりも多くのテーブル１５８６を含む。システム内の各イニシエータ・エージェントによる分散実施において、又は集中メモリ・スケジューラ１５８７において、システムは、分断処理を容易にし、並びに元の分断されたトランザクション内の順番を保証するために、検出器１５８５、分断論理１５８４、いくつかのバッファ１５８７、状態機械１５８８、及びカウンタ１５８７を有することができる。
【０１７５】
分断論理は、集合ターゲット内のチャネル間のトランザクションス分割をサポートする。分断論理１５８４は、イニシエータバーストが単一の領域内に留まるがチャネル境界に及ぶバーストを分断する。分断論理は、インターコネクト装置と第１のイニシエータ・コアの間のインタフェースでイニシエータ・エージェント内に埋め込むことができる。分断論理は、バースト要求内のワード要求の全てをもたらすために１つ又はそれよりも多くのメモリ・チャネル・アドレス境界に及ぶ最初のバースト要求を各メモリ・チャネルに対して同じ高さ寸法の２以上のバースト要求に分断する。図８に示すように、フロー制御論理１６５７内の分断アルゴリズムは、図１６ｂに示すように、第１のメモリ・チャネルの隣接行（ロウ）のバースト要求内の一連の要求内で開始する次の要求の開始アドレスと同じ第１のメモリ・チャネル内のチャネルからのオフセットを有するようにバースト要求内の一連の要求を分断する。また、バースト要求が縦方向で別のメモリ・チャネルと交差した場合、分断アルゴリズムは、図１６ｃに示すように、初期要求の開始アドレスが第１のメモリ・チャネルの第２のＤＲＡＭページのバースト要求内の一連の要求のシーケンスを開始する次の要求の開始アドレスと同じ第１のメモリ・チャネル内の第１のＤＲＡＭページ内のチャネル境界からのオフセットを有するようにバースト要求内のトランザクションからの一連の要求を分断する。
【０１７６】
２Ｄブロック形式のバースト要求を検出する際の検出器１５８５は、２Ｄバースト要求の最初のワードが、分断されたトランザクションからのその２Ｄバースト要求内のその後の要求に役立つメモリ・チャネルよりもアドレス番号が高いメモリ・チャネル内で開始するか否かも検出する。検出器が、メモリ・チャネル境界と交差する２Ｄブロック・バーストの第１の行（ロウ）の最初のワードが、アドレス番号の低い方のメモリ・チャネルで供されるべきその後の要求よりもアドレス番号が高い方のメモリ・チャネルで開始されることを検出した場合、状態機械は、この第１の行（ロウ）を互いに独立に供することができる複数のバーストに分断する。アドレス番号が高い方のメモリ・チャネルに向かう２Ｄブロック・バースト要求の第１の行（ロウ）内の最初のワードを収容する要求は、分断論理が第１の行（ロウ）の残りを収容する第２のバーストをアドレス番号が低い方のメモリ・チャネルに経路指定することを可能にする前に、意図したアドレス番号が高い方のメモリ・チャネルの前の最終スレッド融合ユニットで受信されたとして肯定応答されるべきである。
【０１７７】
分断論理内の状態機械１５８８は、メモリ・チャネル・アドレス境界と交差しているバースト要求の形式に基づいてトランザクションを分断する。検出器１５８５は、バーストの形式を検出する。検出器は、要求を含むバーストに対して、単一のターゲットＩＰコア内の関連するアドレスに向かうイニシエータ・アイピー（ＩＰ）コアからのバースト内の１つ又はそれよりも多くの読取要求を通信する情報を検出する。バースト形式は、ターゲットＩＰコア内の要求データのアドレス・シーケンスを通信するものである。状態機械１５８８は、同じスレッドからの２以上のトランザクション／要求への初期チャネル・アドレス境界と交差する個々のトランザクションの実際の分断を行って分断された各部をバッファ１５８７に入れることができる。次に、検出器１５８８は、バースト要求内の残りのワードが別のチャネル・アドレス境界と交差するか否かを検査することができる。状態機械は、得られるトランザクションが単一のチャネルのアドレス境界に適合するまでトランザクションを分断する。状態機械１５８５は、１）バースト要求の形式、２）バースト要求内の一連の要求内の最初のワードの開始アドレス、３）バースト要求内の一連の要求内のワード数を示すバースト長、及び４）チャネル・アドレス境界の交差に関わるワード長をトランザクションの分断に盛り込むことができる。バースト要求のワード長及びワード数は、元のバースト要求内の最終ワードの終了アドレスを計算するのに使用することができる。この設計により、トラフィックを発生させる要素は、要求及び応答の両方のトラフィックがこのようなチャネル・アドレス境界と交差することを可能にすることができる。
【０１７８】
実施形態では、分断論理の状態機械１５８５は、２Ｄブロック・バーストシーケンスに対するＯＣＰソケットサポートを含むことができる。サポートは、イニシエータ及びターゲットソケットで存在する。包含的に２から６ビットのＭＢＩｏｃｋＨｅｉｇｈｔ幅がサポートされる。包含的に６から２１ビットのＭＢＩｏｃｋＳｔｒｉｄｅ幅がサポートされる。ブロックイニシエータバーストが１つよりも多いアクティブターゲットを有する多重チャネル・ターゲットにアドレス指定された時、ＭＢＩｏｃｋＳｔｒｉｄｅ値は、チャネルラウンドサイズの自然数の倍数とすべきであり、それによってブロックトランザクション内の各行（ロウ）が同じチャネル内で、かつインタリーブ内の同じオフセットで開始されることを保証する。それによってチャネル境界と交差するブロック・バーストを各チャネルに対して同じＭＢＩｏｃｋＨｅｉｇｈｔのブロック・バーストに分断することが可能になる。この要件は、ＲＴＬアサートにより検査することができる。
【０１７９】
実施形態では、多重チャネル境界でのイニシエータバースト分断に関するイニシエータ・エージェントでの分断論理により、ブロック以外のバーストは、高々１つのチャネル境界と交差し、ブロック・バーストは、ブロック・バーストの各行（ロウ）に対して高々１つのチャネル境界と交差することができる。Ｂｕｒｓｔ＿ａｌｉｇｎｅｄ増分バースト要求は、完全に単一のチャネルに該当するか、又は２ｘ２ｃｈａｎｎｅｌ＿ｉｔｅｒｌｅａｖｅ＿ｓｉｚｅバイト及び偶数のチャネルの開始境界に整列している開始アドレスを有することができる。２Ｄブロック・バーストは、多重チャネル・アドレス領域のチャネルラウンドサイズのｎ倍に等しいＭＢｕｒｓｔＳｔｒｉｄｅバイト長を有することができ、ここで、ｎは、領域のチャネルラウンドの個数である。多重チャネル領域でターゲットとしない２Ｄブロック・バーストに対しては、上述の制約条件は適用されないことに注意されたい。
【０１８０】
実施形態では、バースト長は、このバースト内の複数の読取要求が、この同じイニシエータＩＰコアから来て単一のターゲットＩＰコア内の関係があるアドレスに向かうということを通信することができる。バースト形式は、要求が、増分式アドレス又は非増分式アドレス、ただし、ブロックトランザクションのような関係があるパターンのアドレスに関することを示すことができる。バーストシーケンスは、些細でない２次元ブロック、ラップ、ｘｏｒ、又は類似のバーストシーケンスに関するものとすることができる。ブロックトランザクションが２次元データに関する場合、要求は、１）２次元オブジェクトが占有する行（ロウ）の長さ（ラスタ線の幅など）で測定する２次元オブジェクトの幅、２）２次元オブジェクトが占有する行（ロウ）数で測定する２次元オブジェクトの高さ、及び３）２次元オブジェクトが占有する２つの連続した行（ロウ）間のアドレス間隔で測定する２次元オブジェクトのストライドを示す注釈を含む。２つの連続した行（ロウ）間のアドレス間隔は、１）ターゲットデータにより占有される２つの連続した行（ロウ）の開始アドレス間の長さの差、２）前の行（ロウ）の終了と次の列の開始と間の差、又は３）同様の間隔とすることができる。単一の２Ｄブロック・バースト要求は、単一の要求を復号するターゲットにインターコネクト装置にわたる２次元データブロックの属性を十分に説明することができる。
【０１８１】
ブロックトランザクションに対して発生される要求は、このバースト内のＮ個の読取要求が、単一のターゲット、ターゲットデータにより占有される行（ロウ）の長さ、ターゲットデータにより占有される行（ロウ）数、及びターゲットデータにより占有される２つの連続した行（ロウ）の開始アドレス間の長さの差で、関係があるアドレスに向かうことを示す注釈を含むことができる。
【０１８２】
分断された部分の２以上がそれらの２Ｄバースト属性を保持するように集合ターゲット内のチャネルに向かうチャネル境界と交差する個々のトランザクションの分断
図１６ａ〜図１６ｅは、ブロック・バースト要求に関するチャネル・ベースの分断の５つの形式、すなわち、通常のブロック分断、ブロック行（ロウ）分断、ブロック高さ分断、ブロックデッドロック分断、及びブロックデッドロック分断及びその後のブロック高さ分断を示している。状態機械は、以下のようにチャネル・ベースの分断規則を実施するように構成することができる。
【０１８３】
未知のパターン形式のバースト要求に対しては、分断論理は、単一のイニシエータバーストを同じシーケンスコードを有する一連の単一のイニシエータワード転送（イニシエータシングルに分断）に分ける。
【０１８４】
ストリーミング、増分式アドレス、ＸＯＲ、及びラップバーストのような検出したバーストの形式に対して、分断は、それらを単一のチャネル内に適合させる。ストリーミングバーストは、定義上、常に単一のチャネル内にある。増分式バースト要求は、一連の増分式アドレスに関し、ＸＯＲバーストは、非増分式アドレスであるが、チャネル境界と交差する関係があるパターンのアドレスに関する。状態機械は、単一のイニシエータバーストを一連の２以上の別々のバースト要求に分け、各々は、バースト長が集合ターゲットの各個々のチャネル内に適合するように短縮されている（チャネルへの分断）。更に、チャネル境界と交差するあらゆるＸＯＲバーストに対しては、得られるチャネルバーストは、２channel_interleave_sizeバイトの２倍に等しいバーストバイト長を有し、第２のｂｕｒｓｔは、ＭＡｄｄｒ±２channel_interleave_sizeで開始される。チャネル境界と交差するＷＲＡＰバーストに対しては、状態機械は、単一のイニシエータバーストを一連の単一のイニシエータワード転送に分ける（イニシエータシングルへの分断）。通常、ｉｎｔｅｒｌｅａｖｅ＿ｓｉｚｅは、その移動が支配的なラップバースト源であるキャッシュ線よりも大きいように選択される。従って、チャネル交差ＷＲＡＰは、通常発生せず、分断論理は、ＷＲＡＰバーストがチャネル境界と交差した時にＷＲＡＰバーストを２つのＩＮＣＲバーストに分断する。
【０１８５】
ターゲットは、以下のいずれかが適用された場合、イニシエータのブロック・バーストをサポートすることができるといわれる：すなわち、ターゲットＯＣＰが、ブロック・バーストシーケンスをサポートし、ターゲットが、ＭＢｕｒｓｔＬｅｎｇｔｈ、ＭＢｕｒｓｔＨｅｉｇｈｔ、及びＭＢｕｒｓｔＳｔｒｉｄｅ上であらゆる必要な幅変換調節後にイニシエータのブロック・バーストを転送するのに十分な幅を有することである。これに対しては、ターゲットのＭＢｕｒｓｔＳｔｒｉｄｅ幅は、イニシエータのバーストＭＢｕｒｓｔＳｔｒｉｄｅ／ｎｕｍ＿ａｃｔｉｖｅ＿ｃｈａｎｎｅｌ（ターゲットの復号された領域の）をサポートするのに十分な大きさでなければならないことに注意されたい。ユーザ制御式の分断がターゲットに使用された場合、ｃｈｏｐ＿ｌｅｎｇｔｈパラメータは、イニシエータのブロック・バーストＭＢｕｒｓｔＬｅｎｇｔｈを転送するに十分な大きさである（いずれの必要な幅変換調節後でも）。
【０１８６】
ブロック・バーストをサポートすることができず、ターゲットが、ＩＮＣＲをサポートしないターゲットに送られたあらゆるイニシエータ２次元ブロック・バーストに対して、状態機械は、イニシエータバーストをターゲットがサポートする数字が最も低いバーストシーケンスを用いた一連の単一のイニシエータワード転送に分け、各々は、適切なターゲットに向けられる（イニシエータシングルへの分断）。
【０１８７】
ブロック・バーストをサポートすることができないが、ターゲットが、ＩＮＣＲをサポートするターゲットへのあらゆるイニシエータ２次元ブロック・バーストに対して、状態機械は、ブロック行（ロウ）分断を提供する。ブロック行（ロウ）分断により、イニシエータバーストは、ブロック・バーストの各行（ロウ）に対して１つだけ一連のＩＮＣＲバーストに分けられる。行（ロウ）がチャネル境界と交差した場合、各行（ロウ）は、各チャネルに１つだけ一連の２つのＩＮＣＲバーストに分けられる。各ＩＮＣＲバーストは、ターゲットがユーザ制御式のバースト分断を有して十分に大きなｃｈｏｐ＿ｌｅｎｇｔｈを持たないか、又はターゲットがより短いＯＣＰのＭＢｕｒｓｔＬｅｎｇｔｈをサポートする場合には、更により小さいＩＮＣＲバーストに分断することができる。
【０１８８】
ブロックをサポートするが、ＭＢｕｒｓｔＬｅｎｇｔｈ、ＭＢｕｒｓｔＨｅｉｇｈｔ、又はＭＢｕｒｓｔＳｔｒｉｄｅ上でイニシエータの要求を転送する長さが不十分であるターゲットへのブロック・バーストに対しては、ブロック行（ロウ）分断が実施される。
【０１８９】
ブロックをサポートし、ＭＢｕｒｓｔＬｅｎｇｔｈ、ＭＢｕｒｓｔＨｅｉｇｈｔ、又はＭＢｕｒｓｔＳｔｒｉｄｅ上でイニシエータの要求を転送するのに十分な長さを有するターゲットへのブロック・バーストに対しては、分断論理は、要求全体に役立つようにアドレス指定されたターゲットに２Ｄ要求を送る。行（ロウ）がチャネル境界と交差し、第２のその後の要求がアドレス番号の低い方のメモリ・チャネルにより供される前にバーストが集合ターゲット内の番号の高い方のメモリ・チャネル内で開始された場合、ブロック行（ロウ）分断が実施される。イニシエータブロック行（ロウ）がチャネル境界と交差してバーストがそのバースト内のその後の要求に役立つメモリ・チャネルよりもアドレス番号が高いメモリ・チャネル以外の何らかのチャネルで開始された場合、ブロック行（ロウ）分断が実施される。通常のブロック分断により、２つのより小さいターゲットブロック・バーストが作成され、各々は、図１６ａに示すイニシエータにより供給されたＭＢｕｒｓｔＨｅｉｇｈｔ及びＭｂｕｒｓｔＳｔｒｉｄｅを有する。２つの分断されたブロック・バーストの第１のブロック・バーストは、チャネルに適合する新しい幅属性として分断された長さを有し、アドレス指定されたチャネルに送られる。２つの分断されたブロック・バーストの第２のブロック・バーストは、新しい幅属性として残りの行（ロウ）長を使用してアドレス指定されたメモリ・チャネルに１つを加えたものに送られる。
【０１９０】
分断論理は、トランザクションの各々のより小さいバースト／部分がそれ独自のチャネルにより供される必要がある要求を有する時、デッドロック状況を防止し、これらの要求は、アドレス番号が低い方のメモリ・チャネルに向かうバースト要求が最初に供され、次に第２の部分内のバースト要求がアドレス番号の高い方のメモリ・チャネルから供されることができるようにすることにより、ピンポン式に各チャネルから供されるべきである。
イニシエータブロック行（ロウ）がチャネル境界と交差し、バーストが、そのバースト内のその後の要求に役立つメモリ・チャネルよりもアドレス番号が高いメモリ・チャネル内で開始された場合、ブロックデッドロック分断により、図１６ｄに示すように４つのターゲットバーストが作成される。４つの分断されたバースト（デッドロックブロック分断から生じる）の第１のバーストは、番号が最も高いチャネルのための分断された長さを有する単一の行（ロウ）ブロックである。それは、番号が最も高いチャネルに該当するイニシエータブロック・バーストの第１の行（ロウ）の先導部分に対応する。４つの分断されたバースト（デッドロックブロック分断から生じる）の最終バーストは、第１のチャネル（チャネル０）のための分断された長さを有する単一の行（ロウ）ブロックである。それは、チャネル０に該当するイニシエータブロック・バーストの最終行（ロウ）の尾部に対応する。第１及び最終の単一行（ロウ）ブロック・バーストは、各々が交互にチャネル０、その後に番号が最も高いチャネルｃｈ３に該当する一連の行（ロウ）を収容する偶数のブロック・バーストにより分離される。このようなチャネルブロック・バーストの各対は、２の累乗である新しくて可能な限り大きな／手頃なＭＢｕｒｓｔＨｅｉｇｈｔを有する。
４つのターゲットバーストは、イニシエータを供給されたＭＢｕｒｓｔＳｔｒｉｄｅをｎｕｍ＿ａｃｔｉｖｅ＿ｃｈａｎｎｅｌｓで割ったものに等しい新しいＭＢｕｒｓｔＳｔｒｉｄｅを有することができる。第１の分断されたバーストは、アドレス番号が高い方のメモリ・チャネルのための行（ロウ）端部に及ぶ分断された長さを有する単一の行（ロウ）ブロックである。第２の分断されたバーストは、バースト高さと、更に残りの行（ロウ）長がアドレス番号の低い方のメモリ・チャネル内に留まるように短縮されているストライド２Ｄ特性ブロックとを有する。第２の分断されたバーストは、第１の行（ロウ）がチャネル境界と交差するアドレスから開始される。第３の分断されたバースト部分は、バースト高さと、更に残りの行（ロウ）長がアドレス番号の高い方のメモリ・チャネル内に留まるように短縮されているストライド２Ｄ特性ブロックとを有する。従って、第３の分断されたバースト部分は、イニシエータにより供給されたＭＢｕｒｓｔＨｅｉｇｈｔ−１及び元のＭＡｄｄｒにイニシエータにより供給されたＭＢｕｒｓｔＳｔｒｉｄｅを加えたもので開始するブロック・バーストを有することができ、分断された長さは、番号が最も高いチャネルに適合するものである。最後から４番目のブロック・バーストは、アドレス番号が低い方のメモリ・チャネルに対する新しい幅属性として残りの行（ロウ）長を有する単一行（ロウ）バーストである。ブロック分断機構により、複数の開始スレッドは、デッドロックの危険性なくチャネル境界と交差する未処理ブロックトランザクションを有することができる。
【０１９１】
実施形態では、２Ｄブロック・バーストの第１の行（ロウ）がチャネル境界と交差して、行（ロウ）に最終（アドレス番号が最も高い）アクティブ・チャネルで開始する場合、この第１の行（ロウ）は、２つのバーストに分断される。例えば、上述の例においては、２行（ロウ）２Ｄブロック・バースト「Ｒｏｗｓ＿２Ｄ０＿ｃｈ３及び２Ｄ１＿ｃｈ０の初期行（ロウ）」は、分断されると以下の４つのバーストに分割されて、それぞれチャネルＴＡ０及びＴＡ１に送出される。すなわち、
チャネル３により供されるＲｏｗ＿２Ｄ０＿の単一の１行（ロウ）ブロック・バースト、チャネル０により供される多くの行（ロウ）２Ｄ１＿から成るより小さい２Ｄブロック・バースト、チャネル３により供される多くの行（ロウ）２Ｄ２＿から成るより小さい２Ｄブロック・バースト、及びチャネル０により供されるＲｏｗ＿２Ｄ３＿の別の単一の１行（ロウ）ブロック・バーストである。
「Ｒｏｗｓ＿２Ｄ０＿ｃｈ３及び２Ｄ１＿ｃｈ０の最初の行（ロウ）」のためのチャネルＭｅｒｇｅｒ０の２Ｄブロック・バーストロック条件は存在しないので（初期１つのバーストではなく、ここでは２つの異なるバーストに属する）、上述の周期的依存度は砕かれており、従って、デッドロックはない。
【０１９２】
第１のイニシエータブロック・バーストを３つのみではなく４つのターゲットバーストに分断することは、ハードウエア実施最適化を可能にすることができる。
【０１９３】
通常のブロック分断又はブロックデッドロック分断が、ブロック書込バースト、又は「単一要求多重応答データ（ＳＲＭＤ）」に変換されない（「ＭＲＭＤ読取から「ＳＲＭＤ読取」への変換は、所定のターゲットに対して無効にされる）ブロック「多重要求多重応答データ読取（ＭＲＭＤ）バーストに適用される時はいつでも、イニシエータ・エージェントは、インタリーブされたブロック・バーストという単一のアトミック・シーケンスとして２つの得られるチャネルブロック・バーストを送る。その理由は、上流側分割ユニットが２−チャネルブロック・バーストの選択的行（ロウ）の間で切り換わる、すなわち、全ての行（ロウ）が処理され、次に、両方のブランチ／スレッドのロックを解除するまで、分割ユニットは、その発信ブランチ／スレッドの両方でアービトレーション（ｍ＿ｌｏｃｋａｒｂを使用する）をロックすべきである間、下流側融合ユニットが他のイニシエータからの他のトラフィック内でインタリービングすることを防止するためのものである。
代案においては、分割ユニットのｍ＿ｌｏｃｋａｒｂアクションは、以下のものとすることができる：すなわち、（ａ）イニシエータ・エージェントは、選択的行（ロウ）が第１のチャネル分割ユニットＲＳ（１つのチャネル交差のみ）に到達する前に下流側融合ユニットが他のトラフィック内でインタリーブすることを防止するためにこれらの選択的行（ロウ）間で適切にｍ＿ｌｏｃｋａｒｂを設定すべきである。チャネル分割器においては、ｍ＿ｌｏｃｋａｒｂを第１のブロック・バーストの最終行（ロウ）に対して設定すべきである。
【０１９４】
インターコネクト装置においては、２Ｄブロック・バーストは、可能な時はいつでも単一要求多重応答データバーストとして送られる（すなわち、ＲｄバーストのＭＲＭＤからＳＲＭＤへの変換は無効ではない）。ブロックチャネルバーストに対するバースト長変換（チャネルバースト分断後）は、ＩＮＣＲバーストと同様に実施される。例えば、広から狭への変換に対しては、バースト長にターゲット幅：イニシエータデータ幅の比を掛ける。狭から広への変換に対しては、イニシエータ・エージェントは、開始及び終了で各行（ロウ）を埋め込みんで、それをターゲットデータ幅に整列させ、得られるイニシエータバースト（行（ロウ））長は、ターゲットバースト長を取得するために分割される。長さ１（分断後）のブロックチャネルバーストは、行（ロウ）当たりに正確なトリミングを受けて過大なヌル要求を回避する。正確なターゲットワード数は、着信バイト有効化を考慮して計算され、次に、ｐ＿ｐａｃｋｗｏｒｄｓ、ｐ＿ｍｂｕｒｓｔｌｅｎｇｔｈ、及びｐ＿ｍａｄｄｒは、互いに矛盾なく全て調節される。更に、イニシエータ転送は、ターゲットで非整列のバーストを回避するために、最小ｂｕｒｓｔ＿ａｌｉｇｎｅｄパターンに切り取ることができる。
【０１９５】
図１６ｃに示すように、ブロック分断論理は、縦方向に開始アドレス及びＤＲＡＭページ境界の最終アドレスに適合するように要求高さを分断する。多重チャネル・ターゲットの保護機構が有効にされる場合（１つよりも多い保護領域を有する）、得られるチャネルブロック・バーストは、２の累乗であるＭＢｕｒｓｔＨｅｉｇｈｔを有する必要がある。
この要件は、ブロック・バーストの開始アドレス及び終端アドレスが同じ保護領域に属するか否かを検査する論理を簡素化するためである。
【０１９６】
このような状況下では、ＳＳＸは、以下で説明するようなブロック高さ分断を使用する。
【０１９７】
保護機構の存在下では、そうでなければ通常のブロック分断を有するであろうブロック・バーストは、以下のように扱われる。イニシエータバーストは、同じＭＢｕｒｓｔＬｅｎｇｔｈ及びＭＢｕｒｓｔＳｔｒｉｄｅを有するが各々が２の累乗である可能な限り大きいＭＢｕｒｓｔＨｅｉｇｈｔを有する一連のブロック・バーストに変換される。この一連の各ブロック・バーストは、次に、通常のブロック分断で２つのチャネルバーストに分断されてアトミック・シーケンスとして送られる。
ｉ．例えば、ＭＡｄｄｒから開始し、イニシエータブロック・バーストは、ＭＡｄｄｒ２でチャネル境界と交差し、かつＭＢｕｒｓｔＨｅｉｇｈｔ＝１５を有するイニシエータブロック・バーストは、以下の新しい（ＭＡｄｄｒ、ＭＢｕｒｓｔＨｅｉｇｈｔ）タプルを有する一連の８個のブロック・バーストに分断される：
1.  (MAddr、8)、(MAddr2、8);
[(MAddr+8*MBurstStride、4)、(MAddr2+8*MBurstStride、4)];
[(MAddr+(8+4)*MBurstStride、2)、(MAddr2+(8+4)*MBurstStride、2)];
[(MAddr+(8+4+2)*MBurstStride、1);
(MAddr2+(8+4+2)*MBurstStride、1)]、
ｉ．アトミック・シーケンスとして送られる対を角括弧に示している。チャネルブロック・バーストの新しいＭＢｕｒｓｔＬｅｎｇｔｈは、明暸さを期すために示されていない。新しいＭＢｕｒｓｔＳｔｒｉｄｅは、元のものと同じである。
【０１９８】
図１６ｅに示すように、４つの分断の第２及び第３のものへのブロック高さ分断のラウンドは、元のブロックデッドロック分断から生じる。
【０１９９】
実施形態では、分断論理が要求を２つに分断した時、第１のチャネルにより供される分断されたワード要求の第１の部分でビット数を割り出して、そのビット数をワードの幅から減算し、次のチャネルにより供される分断されたワード要求の第２の部分の幅を求めることにより、分断論理は、分断されるワード要求の幅を維持する。図３及び分断された要求ｄを参照されたい。第２のチャネルにより供される分断されたワード要求の第２の部分は、次のチャネルの第１の行（ロウ）の先頭アドレスを有する。また、分断されたバースト要求の各部分は、各部分の一連の要求における初期要求の要求されたバイトのための開始アドレス列（コラム）内の他のワードと同じ相対位置（列（コラム）内でのチャネル境界からの同じ相対オフセット）をチャネル内に有するように分断することができる。図１６ａ及びチャネル０内に整列した部分を参照されたい。
【０２００】
実施形態では、分断から生じる個々のバーストトランザクションは、線形／水平方向で分断されたトランザクションの行（ロウ）当たりに１回よりも多くチャネル境界と交差することができない。２ＤトランザクションＭＢＩｏｃｋＳｔｒｉｄｅは、縦方向のチャネル交差を回避して及びＤＲＡＭページ境界内に縦方向に適合するようにチャネル間で一貫して全ての行（ロウ）をマッピングすべきである。ＭＢＩｏｃｋＳｔｒｉｄｅは、（＃チャネル×インタリーブ境界）の倍数であるべきである。同じ開始スレッドからのトランザクションは、複数のチャネルに対して未処理とすることができる。インターコネクト装置は、グラフィック、画像処理、及び映像ＭＰＥＧ符号化／復号化を含むアプリケーションからのトラフィックに対してイニシエータターゲット２Ｄトランザクションサポートを内部的に実行する。
【０２０１】
イニシエータ・エージェントは、チャネルバーストにイニシエータバーストを分断する。このようなチャネルバーストの対は、インタリーブされたバーストを成すことができる。インタリーブされたバーストは、互いにインタリーブされる２つの異なるチャネルに対して転送を有するものである。通常のブロック分断又はブロックデッドロック分断がイニシエータブロックに行われた時、書込バースト（又はＭＲＭＤとしてＭＲＭＤから転送されるＲｄバースト）、すなわち、２つの得られる構成要素ブロック・バーストは、インタリーブされたバーストを成し、得られる構成要素ブロック・バーストの行（ロウ）は、全ての行（ロウ）が転送されるまで、一方のチャネルブロック・バーストからの行（ロウ）１つ、次に他方のチャネルブロック・バーストからの行（ロウ）１つとインタリーブされて転送される。イニシエータ・エージェントは、２つのチャネルに送られる転送に対して異なる経路指定情報（ｍ＿ｃｕｒｒｏｕｔｅ／ｐ＿ｒｏｕｔｅ）を添付する。
【０２０２】
イニシエータ・エージェントは、アトミック・シーケンスとしてあらゆるインタリーブされたバースト（常に少なくとも２つの構成要素ブロック・バーストで構成）を送る。すなわち、最終転送を除いて、インタリーブされたバースト内で全ての転送に対してｍ＿ｌｏｃｋａｒｂ信号を１に設定する。これは、他のトラフィック（同じスレッドに対して）が、あらゆる下流側融合ユニットで２つの構成要素ブロック・バーストとでインタリーブされることを防止するためである。しかし、インタリーブされたバーストが２つの異なるブランチ及び／又はスレッド（ｐ＿／ｏｕｔｅの値に基づいて）に分割される一部の下流側チャネル分割ユニットでは、各構成要素ブロック・バーストは、バーストの終わりでそれ独自のｍ＿ｌｏｃｋａｒｂ＝０を有するものとする。受け取ったインタリーブされたバーストが有していたのは、ｍ＿ｌｏｃｋａｒｂ＝０を有するｔｒａｎｓｆｅｒ１つのみであったので、分割ユニットは、第２の転送を生成すべきである。従って、インタリーブされたバーストの分割ユニットは、ｐ＿ｂｕｒｓｔｌａｓｔ＝１の時、ｍ＿ｌｏｃｋａｒｂ＝０を設定する。分割ユニットは、それ独自のｃｈａｎｎｅｌ＿ｓｐｌｉｔｔｅｒｉｄをｐ＿ｓｐｌｉｔ＿ｉｎｆｏと比較して現在のバーストが現在のＲＳで異なるブランチにわたって分割されたのか否かを判断する。システムは、初期２Ｄを形成する構成要素の全てが集合ターゲットに関連のスレッド融合ユニットにより完全に供されて一緒に融合されるまで２Ｄトランザクションに役立つチャネルをリリースすることができない。応答待ち行列は、要求がそれぞれのメモリ・チャネルから戻って来る時に順序正しく応答を回収するために存在するものであり、分断された元のバースト要求からの最終応答が応答キューにより回収された時、応答の全てを元のバースト要求を出したイニシエータＩＰコアに送り返すことができる。
【０２０３】
インタリーブされたバースト要求の各部分は、依然として２以上のワード要求の寄せ集めとすることができ、そうである場合、要求に対して他の部分からの要求に対して異なるチャネルにより供される要求を送るそれらの各部分は、インタリーブされる。従って、２つに分割されてその後２つの異なる物理的経路に沿って送られたバースト要求からの応答は、イニシエータに戻る応答が元の分断されたバースト要求の予想戻り順序で発生されるように、交互のパターンで２つの異なるメモリ・チャネルからスレッド融合ユニットに送り返される。
【０２０４】
実施形態では、インタリーブされたブロック・バーストは、通常のブロック分断又はブロックデッドロック分断の結果としてイニシエータ・エージェントで発生される。このようなバーストは、互いにインタリーブされている２つのブロック・バーストを担持し、下流側で正しい分割ユニットに到達した時、２つの異なる発信ブランチ／スレッドに対して２つ別々のブロック・バーストに分割される。
【０２０５】
インタリーブされたブロック・バースト（ＩＮＴ＿ｂｌｏｃｋバースト）がイニシエータ・エージェントで発生された時、以下が、発生する場合がある。
【０２０６】
新しいペイロード信号が、多重チャネル・ターゲットに接続するブロック・バーストを担持する要求経路ドルフィンリンクに追加される。このようなＤ１リンクは、潜在的にインタリーブされたブロック・バーストを担持する。この信号は、ｐ＿ｉｎｔｅｒｌｅａｖｅｄ＿ｂｌｃｋと呼ばれる。それは、ＩＮＴブロック・バーストのクロスオーバー待ち行列内に２つのエントリを格納するために分割ユニットにより必要とされるものである。
【０２０７】
インタリーブされたブロック・バーストは、第１の「構成要素ブロック・バースト」に属する全ての転送に対してｐ＿ｉｎｔｅｒｌｅａｖｅｄ＿ｂｌｃｋ＝１、第２の「構成要素ブロック・バースト」の全ての転送に対してｐ＿ｉｎｔｅｒｌｅａｖｅｄ＿ｂｌｃｋ＝０で送られる（初期イニシエータ・エージェントにより）。全ての他の指令（ブロック以外の又は通常のブロック・バースト）は、全ての転送に対してｐ＿ｉｎｔｅｒｌｅａｖｅｄ＿ｂｌｃｋ＝０で送られる。
【０２０８】
インタリーブされたブロック・バーストは、アトミック・シーケンスとして送られ、すなわち、まさに最終転送を除く転送の全ては、ｍ＿ｌｏｃｋａｒｂ＝１を有し、最終転送は、ｍ＿ｌｏｃｋａｒｂ＝０を有する。
【０２０９】
アトミック・シーケンスの第１の転送は、第１の構成要素ブロック・バーストの開始を特定して、そのバーストに関連のルートを有する。異なるルートを有するアトミック・シーケンスのサブシーケンスの第１の転送は、第２の構成要素ブロック・バーストの開始を特定する。残りの転送は、ルートに従って第１又は第２の構成要素ブロック・バーストに順番に属している。バーストの各々の最終転送は、ｍ＿ｂｕｒｓｔｌａｓｔ＝１と記載される。
【０２１０】
２つの構成要素ブロック・バーストの各々の第１の転送は、そのブロック・バーストに対して全ての必要な制御情報を担持する。特に、２つの構成要素ブロック・バーストの各々の第１の転送は、ｍ＿ａｃｋ＿ｒｅｑ＝１で常に送られる。全ての他の転送は、ｍ＿ａｃｋ＿ｒｅｑ＝０を有する。第１のブロック・バーストの第１の転送だけが、ｍ＿ｅｐｏｃｈ＝１で送ることができる。
【０２１１】
２つの構成要素ブロック・バーストの各々の第１の転送は、そのブロック・バーストに対して全ての必要なペイロード情報を担持する。一般的に、２つの構成要素ブロック・バーストは、ｐ＿ｍａｄｄｒ、ｐ＿ｍａｄｄｒｓｐａｃｅ、ｐ＿ｍｂｕｒｓｔｌｅｎｇｔｈ、及びｐ＿ｍｂｕｒｓｔｈｅｉｇｈｔで異なる値を有する。２つの構成要素ブロック・バーストは、以下のペイロード信号、すなわち、ｐ＿ｍｂｕｒｓｔｐｒｅｃｉｓｅ＝１、ｐ＿ｍｂｕｒｓｔｓｅｑ＝ｂｌｏｃｋ、ｐ＿ｍｃｍｄ、ｐ＿ｍｂｕｒｓｔｓｔｒｉｄｅ、ｐ＿ｍｂｕｒｓｔｓｉｎｇｌｅｒｅｑ、及びｐ＿ｍｌｉｔｔｌｅｅｎｄｉａｎで同じ値を有する。
【０２１２】
各構成要素ブロック・バーストの各行（ロウ）は、ｐ＿ｍｒｏｗｌａｓｔ＝１で終了する。
【０２１３】
各インタリーブされたブロック・バーストに対して、１つの（又はクロスオーバー待ち行列実施により、２つの）エントリは、イニシエータ・エージェントクロスオーバー待ち行列に押し込まれる。エントリは、応答を正しいＳＲｏｗＬａｓｔ値及びＳＢｕｒｓｔＬａｓｔ値で送り出すことができるように、構成要素ブロック・バーストのｐ＿ｍｂｕｒｓｔｌｅｎｇｔｈ及びｐ＿ｍｂｕｒｓｔｈに関する情報を収容すべきである。
【０２１４】
分断論理は、各々が依然として要求データのストライド、高さ、及び幅の寸法を含む２Ｄトランザクションの属性を保持するように、２以上のバースト要求にチャネル境界全体で要求に及ぶ２Ｄバースト要求を分断するが、集合ターゲットを構成するメモリ・チャネルの境界内に各々の２以上のバースト要求のそれらの２Ｄ寸法に適合させる。メモリページ境界及びメモリ・チャネル境界内に適合するように分断される分断トランザクションは、依然としてデータのストライド、高さ、及び幅（ターゲットメモリの寸法）を含む２Ｄトランザクションの属性を保持する。２Ｄ分断されたトランザクションは、高さを含む２Ｄ属性を保持し、かつ図１６ｃに示すように縦方向に長くＤＲＡＭページ境界の先頭アドレス及び最終アドレス内に適合する。上述のように、分断論理は、インタリーブされたメモリ・セグメントが異なるチャネルのチャネル境界と交差してこの要求の供給を開始した元のチャネルまで完全なラップループを作る時以外は、等しい高さ寸法を有するようにチャネル境界と交差する２Ｄトランザクションを分断する。従って、インターコネクト装置は、多重チャネル・システム内に２Ｄトランザクションの性能利点を維持しながら同じスレッドからの２以上のトランザクションにチャネル境界と交差した２Ｄトランザクション分断を内部的にサポートする。保持された属性を有する２Ｄトランザクションを移動させることによって明示的に要求ジッタが低減し、かつタイリングされた転送をグループ分けするスケジューラの機能が改善する。
【０２１５】
実施形態では、ブロック・バースト及びブロック・バーストの幅変換をサポートするために、３つの新しい信号、
ｐ＿ｍｂｕｒｓｔｓｔｒｉｄｅ、ｐ＿ｍｂｕｒｓｔｈｅｉｇｈｔ、及びｐ＿ｍｒｏｗｌａｓｔ
がＤ１リンクバンドルに追加される。これらの信号はイニシエータ・エージェントによって発生されて、ターゲット・エージェントにインターコネクト装置ファブリックにより透過的に渡される。ｐ＿ｍｂｕｒｓｔｓｔｒｉｄｅ信号は、バイト単位であり、かつイニシエータ・エージェントから出てきている間、元のＯＣＰブロック・バーストにより担持されるＭＢｕｒｓｔＳｔｒｉｄｅ値、又はブロック・バーストに対してイニシエータ・エージェントでチャネル分割が実施された場合には、このＭＢｕｒｓｔＳｔｒｉｄｅ値をアクティブ・チャネル数で割ったものに等しいとすることができる。また、ｐ＿ｍｂｕｒｓｔｈｅｉｇｈｔ信号は、元のブロック・バーストにより担持されるＭＢｕｒｓｔＨｅｉｇｈｔ値に等しい。ｐ＿ｍｂｕｒｓｔｓｔｒｉｄｅ及びｐ＿ｍｂｕｒｓｔｈｅｉｇｈｔ信号は、要求ネットワーク専用信号である。ＭＢｕｒｓｔＳｔｒｉｄｅ値は、図１８のイニシエータブロックに示すように「チャネル選択ビット」と記載されたアドレスビットの廃棄によるものである。アクティブ・チャネルの数は、図５のａｃｔｉｖｅ＿ｔａｒｇｅｔｓ設定から導出することができる。
【０２１６】
ｐ＿ｐａｃｋｗｏｒｄｓ信号及びｐ＿ｂｕｒｓｔｌａｓｔ信号の使用に加えて、ｐ＿ｍｒｏｗｌａｓｔ信号も使用してブロック・バーストの各行（ロウ）の終わりでの停止パッキングを制御する。チャネル・インタリーブ境界と交差しているブロック・バーストに対しては、ｐ＿ｍｒｏｗｌａｓｔ信号を使用して、チャネル融合ユニットが適切に応答ネットワーク上でブロック・バースト応答を組み立て直すことを可能にすることができる。ＳＲＭＤブロック読取バーストに対しては、ｐ＿ｐａｃｋｗｏｒｄｓを使用して、イニシエータ・エージェントからターゲット・エージェントにブロック・バーストの各行（ロウ）内の最終転送のターゲットワード有効化情報を通信する。
【０２１７】
実施形態では、ブロック・バーストは、各々が増分式バーストのアドレス・シーケンスを有する一連の行（ロウ）としてインターコネクト装置により転送することができる。従って、イニシエータ・エージェントからターゲット・エージェントまでバーストを増分式転送に適用するあらゆる規則は、ブロック・バースト行（ロウ）を転送するために適用される。ターゲット・エージェントは、ＭＲｅｑＲｏｗＬａｓｔ、ＭＤａｔａＲｏｗＬａｓｔ、及びＭＲｅｓｐＲｏｗＬａｓｔのように構成された時にブロック・バーストに関連の他のＯＣＰ信号を発生させることを担当する。
【０２１８】
要求経路においては、肯定応答機構は、通常のフロー制御におけるデッドロックを防止する。要求経路の分断論理内の２Ｄ要求検出器は、２Ｄブロックデッドロック分断をするために設けられる。応答経路においては、チャネル応答並べ替えは、要求経路スレッド分割器から応答経路スレッド融合ユニットに情報を渡すことによって達成される。応答経路スレッド融合ユニットは、この情報を使用して、物理的経路から選択的に一部の応答スレッドに逆圧を掛け、それによって応答がイニシエータ・コアに戻る前に正しく順序付けられることを保証する。
【０２１９】
実施形態では、メモリ・チャネルのような２以上の個別のＩＰコアは、集積回路内の第１の集合ターゲットを構成することができる。２以上のチャネルは、第１の集合ターゲットに割り当てられたアドレス空間をポピュレートしてイニシエータＩＰコアの単一のターゲットとして呈示される。インターコネクト装置は、分断論理を実施して、第１の集合ターゲット内の第１のメモリ・チャネルから第２のメモリ・チャネルまでのメモリ・チャネル・アドレス境界と交差する個々のバースト要求を同じスレッドからの２以上のバースト要求に分断する。分断論理は、インターコネクト装置と第１のイニシエータ・コアの間のインタフェースでイニシエータ・エージェント内に埋め込むことができる。分断論理は、バースト要求内の最初のワードの開始アドレス及びバースト要求内の最終ワードの終了アドレスによりバースト要求内のワード要求の全てをもたらすために、バースト要求が１つ又はそれよりも多くのメモリ・チャネル・アドレス境界に及ぶ初期バースト要求を各メモリ・チャネルに対して同じ高さ寸法の２以上のバースト要求に分断する。分断論理は、集合ターゲット内の２以上のメモリ・チャネルに向かうチャネル境界と交差する個々のバーストトランザクションを分断して、各バーストトランザクションのバースト・サイズ及び開始アドレスがチャネル境界とは独立に存在することを可能にすることができる。
【０２２０】
分断論理は、第１のＩＰイニシエータ・コアにより出された第１のバースト要求内のスレッド順序付けを追跡して個々のメモリ・チャネルにわたって拡散されている第１のバースト要求各部間で全体的ターゲット順序付けを維持するためのチャネル分断アルゴリズム及びテーブルを含む。分断アルゴリズムは、その一連における初期要求の開始アドレスが、第１のメモリ・チャネル内の隣接行（ロウ）のバースト要求内の一連の要求において開始する次の要求の開始アドレスと同じ第１のメモリ・チャネル内のチャネル境界からのオフセットを有するように、バースト要求内のトランザクションからの一連の要求を分断する。分断アルゴリズムは、初期要求の開始アドレスが第１のメモリ・チャネルの第２のＤＲＡＭページのバースト要求内の一連の要求のシーケンスを開始する次の要求の開始アドレスと同じ第１のメモリ・チャネル内の第１のＤＲＡＭページ内のチャネル境界からのオフセットを有するように、バースト要求が縦方向で別のメモリ・チャネル内と交差した場合にバースト要求をバースト要求内の一連の要求に分断する。
【０２２１】
検出器は、バースト要求内の要求バイトの最初のワードの先頭アドレス及びバースト要求内の要求バイトの最終ワードの終了アドレスにより、バースト要求内のワード要求の全てをもたらすためにそのバースト要求内の要求バイトが１つ又はそれよりも多くのチャネル・アドレス境界にわたって及ぶのはいつかを検出する。分断論理の状態機械は、メモリ・チャネル・アドレス境界と交差しているバースト要求の形式に基づいてトランザクションを分断する。状態機械は、１）バースト要求の形式、２）バースト要求内の一連の要求内の最初のワードの開始アドレス、３）バースト要求内の一連の要求内のワード数を示すバースト長、及び４）チャネル・アドレス境界の交差に関わるワード長をトランザクションの分断に盛り込むことができ、バースト要求内のワード長及びワード数は、元のバースト要求内の最終ワードの終了アドレスを計算するのに使用することができる。
【０２２２】
バースト要求からの応答は、２つに分割してその後に２つの異なる物理的経路に沿って送ることができ、それによって応答は、イニシエータに戻る応答が元の分断されたバースト要求の予想戻り順序で発生されるように２つの異なるメモリ・チャネルから交互のパターンでスレッド融合ユニットに送り返される。応答待ち行列は、要求がそれぞれのメモリ・チャネルから戻って来る時に順序正しく応答を回収するためにスレッド融合ユニットに存在するものであり、分断された元のバースト要求からの最終応答が応答キューにより回収された時、応答の全ては、元のバースト要求を出したイニシエータＩＰコアに送り返すことができる。
【０２２３】
分断論理は、第１の集合ターゲット内の第１のメモリ・チャネルから第２のメモリ・チャネルまでのメモリ・チャネル・アドレス境界と交差する個々のバースト要求を、第１の集合ターゲットのメモリページ境界及びメモリ・チャネル境界内に適合するように分断されるデータのストライド、高さ、及び幅、及び第１の集合ターゲット内の寸法を含む２Ｄトランザクションの属性を保持する同じスレッドからの２以上のバースト要求に分断するように構成することができる。分断論理は、チャネル境界にわたって及ぶ２Ｄバースト要求を、各々が依然として要求データのストライド、高さ、及び幅の寸法を含む２Ｄトランザクションの属性を保持するが、２以上のバースト要求の各々のそれらの２Ｄ寸法を集合ターゲットを構成するメモリ・チャネルの境界内に適合させる２以上のバースト要求に分断する。２Ｄブロック・バースト要求は、ターゲットバイトにより占有される行（ロウ）の幅の長さ、ターゲットバイトにより占有される行（ロウ）の数、及びターゲットバイトにより占有される２つの連続した行（ロウ）間のアドレスストライド間隔を示す注釈を収容する２次元データブロックの属性を十分に説明する。
【０２２４】
アドレス・マップの第１の領域は、所定のピクセルの周りにあるピクセルが２次元タイリングされた要求を満たすのに利用可能に維持されるように、ブロックメモリページ要求に対して性能を固守及び最大にする規則を有する２次元（２Ｄ）のタイリングされたバースト要求に対して割り当てられる。
【０２２５】
検出器は、バースト要求内の要求バイトの最初のワードの開始アドレス及びバースト要求内の要求バイトの最終ワードの終了アドレスによりバースト要求内のワード要求の全てをもたらすために、そのバースト要求内の要求バイトが１つ又はそれよりも多くのチャネル・アドレス境界に及ぶのはいつかを検出する。２Ｄブロック形式のバースト要求を検出する際の検出器は、２Ｄバースト要求の最初のワードが分断されたトランザクションからのその２Ｄバースト要求内のその後の要求に役立つメモリ・チャネルよりもアドレス番号が高いメモリ・チャネル内で開始するか否かも検出する。検出器が、メモリ・チャネル境界と交差する２Ｄブロック・バーストの第１の行（ロウ）の最初のワードがアドレス番号の低い方のメモリ・チャネルで供すべきその後の要求よりもアドレス番号が高い方のメモリ・チャネルで開始されることを検出した場合、状態機械は、この第１の行（ロウ）を互いとは独立に役立たせることができる２つのバーストに分断する。
【０２２６】
アドレス番号が高い方のメモリ・チャネルに向かう２Ｄブロック・バースト要求の第１の行（ロウ）の最初のワードを収容する要求は、分断論理が、第１の行（ロウ）の残りを収容する第２のバーストをアドレス番号の低い方のメモリ・チャネルに経路指定することを可能にする前に、意図したアドレス番号が高い方のメモリ・チャネルの前の最終スレッド融合ユニットで受信されたとして肯定応答されるべきである。
【０２２７】
分断論理は、多重チャネル・アドレス領域のチャネルラウンドサイズのｎ倍に等しいターゲットバイトにより占有される行（ロウ）数を有するように第１の２Ｄブロック・バーストを分断し、ここで、ｎは、領域のチャネルラウンドの個数である。分断論理は、２Ｄバースト要求以外のバースト要求も分断する。分断論理は、各々がイニシエータにより供給された高さ及びストライドを有する、得られる２以上のバースト要求を分断し、分断されたバースト要求の第１のバースト要求は、チャネル内に適合するような分断された長さを有し、かつ第１のチャネルに送られ、分断されたバースト要求の第２バースト要求では、新しい幅属性として残りの行（ロウ）長が使用され、かつ第２バースト要求は、第２のチャネルに送られる。
【０２２８】
図１７は、２次元（２Ｄ）のタイリングされたバースト要求に対して割り当てられたアドレス・マップの１つ又はそれよりも多くのアドレス領域を有する２Ｄビットマップの「メモリ空間」の実施形態を示している。アドレス・マップ１７００の１つ又はそれよりも多くの領域は、ターゲットピクセルから左右、上下にある所定のピクセルの周りにあるピクセルが、２つの２次元のタイリングされた要求を満たすのに利用可能に維持されるように、ブロックメモリページ要求に対して性能を固守及び最大にする規則を有する２次元（２Ｄ）のタイリングされたバースト要求に対して割り当てられる。タイリング機能は、ターゲットに利用可能なアドレスビットの指定の任意な交換とすることができる。
【０２２９】
ブロック・バーストに関わるメモリ領域１７９０は、例示的な、例えば、３行（ロウ）２次元ＯＣＰバーストを満たすことができる。バーストは、行（ロウ）ｉ及び行（ロウ）ｉ＋１内の第１のワード間の間隔を示すＭＢＩｏｃｋＳｔｒｉｄｅ属性＝２５６ＯＣＰワードを有する。バーストは、ＭＢｕｒｓｔＬｅｎｇｔｈ／ＭＢＩｏｃｋＷｉｄｔｈ＝８ＯＣＰワードを有する。バーストは、ＭＢＩｏｃｋＨｅｉｇｈｔ属性＝３行（ロウ）を有する。タイリングの例は、ＤＲＡＭバンク０上のＤＲＡＭページ０、ＤＲＡＭバンク１上のＤＲＡＭページ０、ＤＲＡＭバンク２上のＤＲＡＭページ０、ＤＲＡＭバンク３上のＤＲＡＭページ０、及び再ラッピングのような４バンク構成の４ＫＢページ（１０２４ｘ３２ｂ）及び１０２４Ｂ／行（ロウ）を有する。１ページバッファは、ブロックメモリページ要求を格納するために各個別のＤＲＡＭバンク内でオープンとすることができる。
【０２３０】
図中、メモリ・チャネルは、ビットマップを列（コラム）に分割する。メモリ・チャネルは、メモリページのサイズ粒度で設定され、かつ４つの個別のＤＲＡＭバンク／ＩＰコアからインタリーブされる。インタリーブされたメモリ・チャネルは、２Ｄ性能の最適化に向けて構成され、全く単独でアドレス・マップ内の領域に割り当てられる。
【０２３１】
２Ｄタイリングされた要求に関するアドレス・マップのこの割当領域は、ターゲットピクセルから左右、上下にある所定のピクセルの周りにあるピクセルが、同じ検索済みメモリページ内で利用可能であるように、ブロックメモリページ要求に対して性能を固守及び最大にする規則を有する。タイリング機能は、２Ｄブロックメモリ要求を最適化するために、要求内の割当アドレスのマッピング構造を領域の実メモリ・アドレスに変える。更に、ページバッファは、以前のブロックメモリページ要求、現在のブロックメモリページ要求、及び今後のブロックメモリページ要求を格納するために各個別のＤＲＡＭバンクにおいてオープンとすることができる。ＤＲＡＭのためのバンク、行（ロウ）及び列（コラム）アドレスビットの従来の線形レイアウトは、バースト、すなわち、キャッシュ線補充を増分／ラッピングするのに有効である。２Ｄデータ構造格納及び検索のための割当タイリングアドレス領域（例えば、ＭＰＥＧマクロブロック）は、２Ｄブロック要求に有効である。２Ｄデータのための割当タイリングアドレス領域は、マクロブロック内の各行（ロウ）に対してページミスを排除する傾向がある。多くの消費者向けデジタル製品は、ＤＲＡＭに至る経路内のアドレスビットを変換（転置）し、アプリケーションから矩形ページを作ることによって状況を改善する。このようなデバイスは、アドレスタイリング変換をするアドレスエイリアシングに基づいて複数の編成をサポートすることが多い。
【０２３２】
インターコネクト装置及びメモリ・スケジューラは、アドレスタイリングに関する解決法をもたらし、「オープンコアプロトコル」によって定められる２Ｄトランザクションをサポートする。
【０２３３】
ＤＲＡＭアドレス編成は、この割当領域の２Ｄタイリング空間内で線形手法から変更される。実際のシステム・アドレス構造に変換される割当アドレスは、例えば、＜ｒｏｗ［ｒ：２］＞＜ｂａｎｋ［１］＞＜ｃｏｌ［９：６］＞＜ｒｏｗ［１：０］＞＜ｂａｎｋ［０］＞＜ｃｏｌ［５：０］＞とすることができる。従って、２Ｄバースト要求のアドレスビットにおいては、上述の座標に対応するフィールドは、ＤＲＡＭバンク０又は１内の列（コラム）ｃｏｌ［５：０］の幅に対応するアドレスのフィールド０〜５内のビット、ＤＲＡＭバンク０又は１内の行（ロウ）のストライドに対応するアドレスのフィールド７〜８内のビットなどとすることができる。
【０２３４】
メモリ・スケジューラを通じてアドレス可能なメモリは、次に、複数の領域（非重複）としてシステム・アドレス空間にマップすることができ、各々は、それ独自のタイリング機能を有する。タイリングは、２Ｄメモリページ検索において用いることができる。要求は、２Ｄメモリページ検索を形成するメモリ・アドレスのブロックを検索する。最大２つまでのタイリング方程式が、メモリ・スケジューラに接続したターゲット・エージェント当たりに存在することができる。アドレス領域は、各領域に対してａｄｄｒｅｓｓ＿ｓｐａｃｅパラメータによりターゲットＭＡｄｄｒＳｐａｃｅに関連付けられる。ターゲットコアは、各アドレス空間にそれ独自のタイリング機能を関連付けることができる。次に、ターゲットアドレス可能範囲を複数の領域（非重複）としてシステム・アドレス空間内にマップすることができ、各々は、それ独自のタイリング機能を有する。領域ａｄｄｒ空間パラメータのブート設定可能性は、有用なものとすることができる。タイリング方程式においては、ビットＭａｄｄｒのあらゆる置換が行われる場合がある。アドレス領域内の低位６４バイトは、タイリングされない。タイリングは、メモリ・チャネル選択に影響を与えるものではない。タイリングは、チャネル復号後に行われる。分断論理は、２Ｄ要求の各分断された部分には縦方向のチャネル流路ＤＲＡＭページ境界と交差するＭＢｕｒｓｔＳｔｒｉｄｅはないことを保証する。タイリング方程式は、プログラムし直すことができる。ターゲット・エージェント又はメモリ・スケジューラ内で複数のユーザ指定のアドレスタイリング機能を実施する機能が存在する。内部のタイリング機能がソケットＭＡｄｄｒＳｐａｃｅとは独立に指定することができるように、ｔｉｌｅ＿ｆｕｎｃパラメータは、アドレス領域内にある。アドレスタイリングにより、２Ｄ形式トランザクションは、ページミス率を低減することによって遥かにより効率的になる。
【０２３５】
実施形態では、１ページバッファは、以前のブロックメモリページ要求、現在のブロックメモリページ要求、及び予測される今後のブロックメモリページ要求を格納するために各個別の動的ランダム・アクセス・メモリ（ＤＲＡＭ）バンクにおいてオープンとすることができる。メモリ・システムにおいては、メモリページは、ＤＲＡＭバンクにわたるメモリセルの行（ロウ）全体のようなＤＲＡＭ編成により認識された固定数のバイトであり、ＤＲＡＭ編成は、そのＤＲＡＭバンクに対してページバッファ内でその後アクセスされる。
【０２３６】
図１８は、多重チャネルインタリーブ及びアドレスタイリング例のアドレス整合を示している。可能なドレス変換フロー１９００は、イニシエータ側から発生し、イニシエータ・エージェントで任意的なアドレス充填作業を経ると、イニシエータ・エージェントでアドレス復号及びチャネル分割を経て、チャネル・ターゲットに送出され、適切なＭＡｄｄｒＳｐａｃｅを伴ってインターコネクト装置から現れ、ユーザ定義式のタイリング変換機能のうちの１つを用いたターゲット側メモリ・スケジューラモジュール経ると、最後にＩＰメモリコアターゲットに到達する。メモリ・スケジューラは、ユーザ定義式のアドレスタイリングをサポートする。各タイリング機能は、指定のＯＣＰのＭＡｄｄｒＳｐａｃｅに関連付ける。メモリ・スケジューラを通じてアドレス可能なメモリは、次に、複数の領域（非重複）としてシステム・アドレス空間にマップすることができ、各々は、それ独自のタイリング機能を有する。
【０２３７】
図１９は、多重チャネル領域に関してアドレス整合する実施形態のブロック図を示している。イニシエータ・エージェント２１００は、バースト要求内の着信オープンコアＰｒｏｔｏｃｏｌ（ＯＣＰ）アドレスを復号する。イニシエータ・エージェントにより受信されるＯＣＰアドレスは、このイニシエータ・スレッド（例えば、アドレス整合器［ｘ］［ａｎｙ］）に接続性を有する多重チャネル・ターゲット［ｘ］にマップされる全ての多重チャネル領域［ｘ］［ａｎｙ］のベース及びサイズと照合される。アドレス整合器は、要求に対してアドレスを適合させるためにベースアドレス、領域サイズ、及び恐らく領域のａｌｉａｓ＿ｓｉｚｅ属性を使用する。多重チャネル領域がイニシエータ・アドレスに照らして整合されると、イニシエータは、アドレスを含む多重チャネル・ターゲットのチャネルを特定する必要がある。これは、復号済み多重チャネル領域のａｃｔｉｖｅ＿ｔａｒｇｅｔｓ属性に依存する。ＯＣＰのＭＡｄｄｒは、多重チャネル領域［ｘ］［ｚ］及びアドレス整合器［ｘ］［ｚ］に照らして整合される。ａｃｔｉｖｅ＿＿ｔａｒｇｅｔｓ属性は、所定の多重チャネル領域でアクティブである多重チャネル・ターゲットのチャネルの順序付けられた部分集合ａｃｔｉｖｅ＿ｃｈａｎｎｅｌ＿ｓｅｔを符号化する。ａｃｔｉｖｅ＿ｃｈａｎｎｅｌ＿ｓｅｔ順序付け部分集合のサイズが、ｎｕｍ＿ａｃｔｉｖｅ＿ｃｈａｎｎｅｌであるとする。この数字は、常に２の累乗である。次に、領域属性を使用して、ａｃｔｉｖｅ＿ｔａｒｇｅｔ、ｎｕｍ＿ａｃｔｉｖｅ＿ｃｈａｎｎｅｌｓ、及びＯＣＰアドレスのマッピング先であるアクティブ・チャネルＩＤを符号化するＯＣＰのＭＡｄｄｒのビットフィールドを特定する。次に、ＯＣＰアドレスのアクティブ・チャネルＩＤを物理的アクティブ・チャネルの１つにマップする。
【０２３８】
ＡＤＤＲ＿ＭＡＰレジスタブロックは、あらゆる多重チャネル・アドレス領域に関連の属性の全てを含むことができる。多重チャネル領域は、設計時に多重チャネル・ターゲットに関連付けられる。多重チャネル・ターゲットは、類似のＯＣＰパラメータを有する個々のターゲットの順序付けられた組である。多重チャネル領域の属性には、ベース、サイズ、ｃｈａｎｎｅｌ＿ｉｎｔｅｒｌｅａｖｅ＿ｓｉｚｅ、ａｃｔｉｖｅ＿ｔａｒｇｅｔｓ、ａｄｄｒ＿ｓｐａｃｅ、及びｎｕｍ＿ｃｈａｎｎｅｌｓがある。これらの領域属性に関する定義及び使用法は、付帯的な章で説明する。
【０２３９】
多重チャネル・ターゲットとの関係を有する各イニシエータ・エージェントは、そのターゲットの各多重チャネル領域当たりに、１つのアドレス整合器でインスタンス化される。それによってイニシエータ・エージェントは、このような領域のいずれかに該当するあらゆるＯＣＰアドレスを復号することができる。
【０２４０】
各アクティブ・チャネルが正確に１つの個々のターゲットにマップされるので、アクティブ・チャネル（ｎｕｍ＿ａｃｔｉｖｅ＿ｃｈａｎｎｅｌｓ）の数が多重チャネル領域に関する多くのアクティブターゲットに等しい点に注意されたい。また、多重チャネル領域の属性は、アドレス領域に対して構造的に利用可能なチャネル（すなわち、個々のターゲット）の最大数を示している。
【０２４１】
ｎｕｍ＿ａｃｔｉｖｅ＿ｃｈａｎｎｅｌｓ＝＝１である場合、この領域に属するあらゆるアドレスは、更なる処理が必要なく、このアドレス領域のａｃｔｉｖｅ＿ｔａｒｇｅｔｓ属性により特定される単一のチャネルに該当する。以下で説明する内容においては、ｎｕｍ＿ａｃｔｉｖｅ＿ｃｈａｎｎｅｌｓ＞１と仮定する。
【０２４２】
ａｃｔｉｖｅ＿ｔａｒｇｅｔｓに関連の順序付けられたチャネルセットａｃｔｉｖｅ＿ｃｈａｎｎｅｌ＿ｓｅｔのｉ番目の要素が（物理的な）チャネルｊである場合、以下のようになる。
i.  active_channel_set[i]=j、for 0≦i≦num_active_channels、and 0≦j≦num_channels．
【０２４３】
領域のｃｈａｎｎｅｌ＿ｉｎｔｅｒｌｅａｖｅ＿ｓｉｚｅ属性を用いて、２channel_interleave_sizeバイトのサイズ番号は、インタリーブサイズ及びチャネル交差が発生する境界を特定する。また、以下のように定める。
i.  num_active_channels_log=log2(num_active_channels)．
ii．次に、ＯＣＰ要求相の以下のＭＡｄｄｒビットフィールドは、アドレスが属するアクティブ・チャネルＩＤを符号化する。
i.  MAddr[num_active_channels_log + channel_interleave_size-1: channel_interleave_size]
【０２４４】
このビットフィールドの値がｉである場合、このＯＣＰ要求は、チャネル「ａｃｔｉｖｅ＿ｃｈａｎｎｅｌ＿ｓｅｔ［ｉ］」に経路指定されるものとする。更に、ＭＡｄｄｒの上述のビットフィールドは、下流側ＲＳチャネル分割ユニットに渡された時、イニシエータ・エージェントにより剥ぎ取られる。
−−ａ．イニシエータ・エージェントは、通常のチャネル・ベースの分断規則に従っていくつかのより小さいバーストに各イニシエータバーストを分断する。イニシエータ・エージェントは、対応する読取応答ワードをアセンブルして正しい描写（例えばＳＲｅｓｐＬａｓｔ及びＳＲｅｓｐＲｏｗＬａｓｔ）をＯＣＰインタフェースに転送すべきである。
書込応答が必要な場合、イニシエータ・エージェントは送信されたバースト分断（書込要求は、インターコネクト装置コアにＳＲＭＤバーストとして送られる）当たりの１つの応答を回収して、ＳＲＭＤ書込バーストに対して単一のＯＣＰ応答を、又はＭＲＭＤ書込バーストに対してＯＣＰ応答ＭＢｕｒｓｔＬｅｎｇｔｈ数を生成すべきである。
−−ｂ．実施形態では、書込ポスティングが有効にされた時、適切な書込応答ドロップカウントは、ポスティングされたＯＣＰ書込応答対応物がイニシエータに送り返されていた時、ｄｌｉｎポートから戻されたインターコネクト装置書込応答を廃棄するために維持する必要がある。
−−ｃ．ｄｌｉｎポートからイニシエータ・エージェントにより受信されるイニシエータ・スレッド応答当たりのワードは、多重チャネル・ターゲットへのアクセスに対してさえも順序正しいものであると保証される。要求ネットワーク上の下流側チャネル分割ユニットのクロスオーバー待ち行列を使用して、応答経路上のイニシエータ・エージェントに順々に渡す前に、応答ネットワーク上でイニシエータ・エージェントの上流側にある対応するチャネル融合ユニットが正しい順序でこのようなチャネル応答を回収するのを助ける。
−−ｄ．イニシエータ・エージェントは、応答アセンブルのためのイニシエータ・スレッド当たりのクロスオーバー待ち行列を有する。しかし、ブロック及びＩＮＴ＿ｂｌｏｃｋのようなインターコネクト装置によりサポートされる種類のバーストをサポートするために、クロスオーバー待ち行列内にエントリ当たりで付加的な情報が格納される。イニシエータＯＣＰインタフェースがブロック・バーストをサポートしない場合、それに続くフィールドは不要である。
【０２４５】
イニシエータ・ブロック要求に対しては、応答は、各行（ロウ）の終わりにＳＲｅｓｐＲｏｗＬａｓｔ＝１を有する必要がある場合がある。ｃｈｏｐ＿ｂｌｃｋという新しい単一のビットフィールドは、ＳＲｅｓｐＬａｓｔが応答ストリーム（更に以下で説明）の適切な点で発生させる必要がある場合があることを示すためにクロスオーバー待ち行列内に格納される。それは、ブロック又はＩＮＴ＿ｂｌｏｃｋバースト分断に関連の応答を正しく数えるためにも使用される。このビットは、イニシエータブロック・バースト（ＩＮＣＲ、ブロック、ＩＮＴ＿ｂｌｏｃｋ）に関連のバースト分断のいずれに対しても１に設定することができることに注意されたい。ブロック以外のイニシエータバーストのバースト分断は、いずれについても１には決して設定されない。
【０２４６】
新しいフィールドｃｈｏｐ＿ｄｅａｄｌｏｃｋ＿ｂｌｃｋは、クロスオーバー待ち行列に格納される。ｃｈｏｐ＿ｄｅａｄｌｏｃｋ＿ｂｌｃｋ＝１は、ブロックデッドロック分断の結果であるＩＮＴ＿ｂｌｏｃｋバースト分断のためだけのものである。このようなＩＮＴ＿ｂｌｏｃｋバースト分断は、第１の行（ロウ）の第１の部分及びチャネルに交差する境界での最終行（ロウ）の最終部分をはずしている。あらゆる他のバースト分断（特に、ｃｈｏｐ＿ｂｌｃｋ＝０である時）は、ｃｈｏｐ＿ｄｅａｄｌｏｃｋ＿ｂｌｃｋ＝０を有するものとする。
【０２４７】
３つのカウントは、ブロック及びＩＮＴ＿ｂｌｏｃｋバースト：すなわち、ｃｈｏｐ＿ｂｕｒｓｔ＿ｌｅｎｇｔｈ、ｃｈｏｐ＿ｂｕｒｓｔ＿ｈｅｉｇｈｔ、ｃｈｏｐ＿ｐａｒｔｉａｌ＿ｂｕｒｓｔ＿ｌｅｎｇｔｈを取り扱うためにクロスオーバー待ち行列内に格納される。
−−ａ．ｃｈｏｐ＿ｂｕｒｓｔ＿ｌｅｎｇｔｈカウントを使用して、ブロック以外のバースト分断内の応答の個数、又はブロック又はＩＮＴ＿ｂｌｏｃｋバースト分断内の行（ロウ）の長さを数える（更なる詳細に対しては、以下のｃｈｏｐ＿ｐａｒｔｉａｌ＿ｂｕｒｓｔ＿ｌｅｎｇｔｈの説明を参照されたい）。フィールドｃｈｏｐ＿ｂｌｃｋ＝１及びｐａｒｔｉａｌ＿ｂｕｒｓｔ＿ｌｅｎｇｔｈ＝０である場合、このバースト分断に関連の各ｃｈｏｐ＿ｂｕｒｓｔ＿ｌｅｎｇｔｈ応答の終了時に、イニシエータ・エージェントは、信号が存在する場合にＳＲｅｓｐＲｏｗＬａｓｔ＝１を設定することができる。イニシエータブロック・バーストがブロック以外のバースト（例えば、ＩＮＣＲ）に分断された場合、その全てがｃｈｏｐ＿ｂｌｃｋ＝１を有するクロスオーバーエントリを有するというわけではないことに注意されたい。行（ロウ）の終了と一致するものみが、ｃｈｏｐ＿ｂｌｃｋ＝１を有する。
−−ｂ．ｃｈｏｐ＿ｂｕｒｓｔ＿ｈｅｉｇｈｔフィールドは、ブロック及びＩＮＴ＿ｂｌｏｃｋバースト分断のために使用される。全てのブロック以外のバースト分断に対しては１であり、かつブロック又はＩＮＴ＿ｂｌｏｃｋバースト内の完全な行（ロウ）の数に等しくなければならない。ブロックデッドロック分断が使用される時、得られるＩＮＴ＿ｂｌｏｃｋバーストは、元のチャネル交差バーストより完全な行（ロウ）数が２つ少ない。
−−ｃ．ｃｈｏｐ＿ｐａｒｔｉａｌ＿＿ｂｕｒｓｔ＿ｌｅｎｇｔｈフィールドは、ブロックデッドロック分断の結果であるＩＮＴ＿ｂｌｏｃｋバースト分断に対してのみ非ゼロである。このようなＩＮＴ＿ｂｌｏｃｋバースト分断は、第１の行（ロウ）の第１の部分及びチャネルに交差する境界での最終行（ロウ）の最終部分をはずしている。このようなバーストに対しては、このカウントは、ＩＮＴ＿ｂｌｏｃｋバーストの第２の構成要素ブロック・バースト、すなわち、番号が最も高いアクティブ・チャネルで開始するブロックのｐ＿ｍｂｕｒｓｔｌｅｎｇｔｈに設定される。あらゆる他の種類のバースト分断（特に、ｃｈｏｐ＿ｂｌｃｋ＝０の時）に対しては、このフィールドは、０でなければならない。一例として、チャネル７で開始して行（ロウ）の第７番目のワードの後にチャネル０内に交差し、イニシエータをＭＢｕｒｓｔＬｅｎｇｔｈ＝１０を有するブロック・バーストを考えてみる。ブロックデッドロック分断が実施されることになっているので、得られるＩＮＴ＿ｂｌｏｃｋバースト分断は、ｃｈｏｐ＿ｐａｒｔｉａｌ＿ｂｕｒｓｔ＿ｌｅｎｇｔｈ＝７を有するものとする。ｐａｒｔｉａｌ＿ｂｕｒｓｔ＿ｌｅｎｇｔｈに関する非ゼロの値は、フィールド分断ｂｌｃｋ＝１が常に伴うものとする。更に、その場合のｃｈｏｐ＿ｂｕｒｓｔ＿ｌｅｎｇｔｈは、ＩＮＴ＿ｂｌｏｃｋバーストの第１の構成要素ブロック・バースト、すなわち、数字が最も低いアクティブ・チャネル（例えば、上述の例のｃｈｏｐ＿ｂｕｒｓｔ＿ｌｅｎｇｔｈ＝３）で開始するブロックのｐ＿ｍｂｕｒｓｔｌｅｎｇｔｈに設定されるものとする。
【０２４８】
応答側のクロスオーバーエントリを処理する時、ブロックデッドロック分断の結果であるＩＮＴ＿ｂｌｏｃｋバースト分断（すなわち、）に対するものである
chop_blck=1及びchop_deadlock_blck=1（すなわち、partial_burst_legnth! = 0）である場合、以下のようになる。
【０２４９】
イニシエータ・エージェントは、chop_burst_length応答の最後分と共に第１のSRespRowLast=1を送り、
【０２５０】
イニシエータ・エージェントは、次に、chop_burst_height、chop_burst_length+chop_partial_burst_length応答から分離されたSRespRowLast = 1ほど多くのものを送る。
【０２５１】
イニシエータ・エージェントは、次に、応答の最終chop_partial_burst_lengthを送る。このような応答の最終分は、SRespRowLast = 1では送られない。
【０２５２】
応答側のクロスオーバーエントリを処理する時、chop_deadlock_blck=0(すなわち、partial_burst_legnth=0)である場合、
−−ａ．イニシエータ・エージェントは、chop_burst_length*MBurstHeight応答を検索して送り、chop_blck = 1である場合、chop_burst_length応答の各シーケンスは、SRespRowLast = 1で終了する。
ｉ．要求側MBurstHeight値は、クロスオーバー待ち行列内に格納することができる。
【０２５３】
クロスオーバー待ち行列のエントリは、それが完全に処理された時にポップ表示される。
−−ａ．どのバースト−分断が、SBurstLast = 1で終了すべきかを示すフィールドがクロスオーバーエントリにある必要がある。イニシエータバーストのまさに最終バースト分断のみが、このフィールドが１に設定されたクロスオーバーエントリを有するものとする。
【０２５４】
イニシエータ・エージェントは、ＯＣＰ書込応答の正しい生成に向けてクロスオーバー待ち行列を用いる必要な機構を有する。ＳＲＭＤ書込に対しては、単一の応答は、最終バースト分断の完了で発生されるものとする。ＭＲＭＤバーストに対しては、上述の新しい付加的なフィールドを使用して、必要な時にSRespRowLast = 1の正しいアサートで、各バースト分断に関連の正しい個数の応答を発生させることができる。ＳＲＭＤ／ＭＲＭＤのＯＣＰ書込バーストの各バースト分断は、常に、イニシエータ・エージェントにより廃棄される単一の応答を戻す（全てＳＲＭＤ書込として送られるので）。
【０２５５】
イニシエータ・スレッド・クロスオーバー待ち行列当たりの各々の深さは、ｍａｘ＿ｂｕｒｓｔにより判断される。イニシエータ・エージェントは、クロスオーバー待ち行列が一杯になった時にそのバースト分断を中止し、エントリが利用可能になった時に再開する。
【０２５６】
イニシエータ・エージェントは、イニシエータ・スレッドがアクセスされた最終ターゲットと異なる集合ターゲットにアクセスするのはいつかを検出する。このような場合、イニシエータ・エージェントは、現在オープンである集合ターゲットに対する現在未処理のバーストの全てが完了されるまで、すなわち、イニシエータ・スレッドのクロスオーバー待ち行列が空になるまで、バースト分断処理全体及びターゲット・チャネルへのバースト分断の送りを中止する。
【０２５７】
イニシエータ・エージェント・クロスオーバー待ち行列を実施する２つの例示的な方法は、以下の通りである。
−−ａ．広範な実施において、イニシエータ・エージェント（分断されるバーストに対して完全な知識を有する）は、上述の全ての必要な情報（ｃｈｏｐ＿ｂｕｒｓｔ＿ｌｅｎｇｔｈ、ｃｈｏｐ＿ｂｕｒｓｔ＿ｈｅｉｇｈｔ及びｃｈｏｐ＿ｐａｒｔｉａｌ＿ｂｕｒｓｔ＿ｌｅｎｇｔｈ）を有するＩＮＴ＿ｂｌｏｃｋバースト分断当たりに１つのエントリを格納する。しかし、このような実施では、ｃｈｏｐ＿ｄｅａｄｌｏｃｋ＿ｂｌｃｋフィールドは、その値がｃｈｏｐ＿ｐａｒｔｉａｌ＿ｂｕｒｓｔ＿ｌｅｎｇｔｈの値と共に捕捉されると思われるので、冗長であると考えられる。
−−ｂ．クロスオーバー待ち行列の奥深い実施において、イニシエータ・エージェントは、ＩＮＴ＿ｂｌｏｃｋバースト分断に対して２つのエントリを転換待ち行列に格納し、第１のエントリは、フィールドｃｈｏｐ＿ｄｅａｄｌｏｃｋ＿ｂｌｃｋ上に第２のエントリの存在を示す１の値を有する：すなわち、第１のエントリは、ｃｈｏｐ＿ｂｕｒｓｔ＿ｌｅｎｇｔｈを担持し、第２のエントリは、上述のｃｈｏｐ＿ｐａｒｔｉａｌ＿ｂｕｒｓｔ＿ｌｅｎｇｔｈを担持することになる。すなわち、クロスオーバー待ち行列は、より狭くすることができるが、恐らく少し深めにすべきである。この場合、イニシエータ・エージェント応答論理は、第２のエントリの付加的な情報にアクセス可能なように第１のエントリをポップ表示する。要求側では、ＩＮＴ＿ｂｌｏｃｋの各エントリは、関連の構成要素ブロック・バーストの第１の転送と共にクロスオーバー待ち行列に押し進められる。
【０２５８】
イニシエータ・エージェントは、各イニシエータ・スレッドに対して別々のｅｐｏｃｈ＿ｃｏｕｎｔｅｒを有する。ｅｐｏｃｈ＿ｃｏｕｎｔｅｒは、０になるか、又はこのイニシエータ・エージェントが異なるターゲットに切り換える度に相対帯域幅重み値がロードされる。多重チャネル・ターゲットの異なるチャネルにアクセスは、同じターゲットに属しており、ｅｐｏｃｈ＿ｃｏｕｎｔｅｒのリロードを引き起こさないことに注意されたい。ｅｐｏｃｈ＿ｃｏｕｎｔｅｒは、このイニシエータ・スレッドの現在オープンのターゲット（又は、多重チャネル・ターゲット）に送られる各転送で減分される。
【０２５９】
インタリーブされたブロック・バーストは、２以上のカテゴリに分類することができる。２つのカテゴリは、第１及び第２の構成要素ブロック・バーストが互いに対して開始及び終了する順序が異なる。
【０２６０】
カテゴリ（Ａ）：  第１の構成要素ブロック・バーストは、第２のブロック・バーストの開始の後及びその終了前に終了する。アトミック・シーケンス内のｐ＿ｒｏｕｔｅの（ヘッダ）変更を検出する下流側分割ユニットは、第２の構成要素ブロック・バーストの第１の転送上の欠けているｍ＿ｅｐｏｃｈ＝１（アトミック・シーケンスの第１の転送上に設定されていた場合）、及び第１のブロック・バーストの最終転送上のｍ＿ｌｏｃｋａｒｂ＝０、及び分割に成功したインタリーブされたブロック・バーストを難なく挿入することができる。
【０２６１】
カテゴリ（Ｂ）：  第１の構成要素ブロック・バーストは、ブロック・バーストが開始さえもする第２の構成要素の前で終了する。アトミック・シーケンス内のｐ＿ｒｏｕｔｅの変更を検出する下流側分割ユニットが、依然としてアトミック・シーケンスの第１の転送上に設定されていた場合は、第２の構成要素ブロック・バーストの第１の転送に関する欠けているｍ＿ｅｐｏｃｈ＝１を難なく設定することができる。分割ユニットは、アトミック・シーケンスの第１のｍ＿ｂｕｒｓｔｌａｓｔがｍ＿ｌｏｃｋａｒｂ＝０を伴わず、変更に向けて次の転送のｐ＿ｒｏｕｔｅを検証するまでには、第１のバーストの最終転送に対してｍ＿ｌｏｃｋａｒｂ＝０を設定しても遅すぎることを検出することができる。インタリーブされたブロック・バーストの第１のブロック・バーストに対してｍ＿ｌｏｃｋａｒｂ＝０を正しくリセットするためには、以下のいずれかになる。
【０２６２】
分割ユニットが、ｐ＿ｂｕｒｓｔｌａｓｔ＝１及びｍ＿ｌｏｃｋａｒｂ＝０を見た時に次の転送のルートを先読みしなければならない：この解決法は、エリア、待ち時間の両方のペナルティを招く。
【０２６３】
代替的に、分割器が、まさに第１の転送のｐ＿ｒｏｕｔｅに基づいて確かにこのインタリーブされたブロック・バーストに関する分割器であるということを構造的に知る必要がある：これは、可能でさえない場合があり、又は以下のようである。
【０２６４】
それに加えて、イニシエータ・エージェントは、ＩＮＴ＿ｂｌｏｃｋバーストのまさに第１の転送に対して、分割を実施すべきであることをこの分割器に明示的に通知し、かつアトミック順序において、ｐ＿ｂｕｒｓｔｌａｓｔ＝１を備えたあらゆるｍ＿ｌｏｃｋａｒｂ＝１を０にリセットすべきである。
【０２６５】
Ｄ１リンクペイロード信号ｐ＿ｓｐｌｉｔ＿ｉｎｆｏを使用して、分割器に通知することができる。ｐ＿ｓｐｌｉｔ＿ｉｎｆｏフィールドは、非ＩＮＴ＿ｂｌｏｃｋバーストに対してはゼロである。ＩＮＴ＿ｂｌｏｃｋバーストに対しては、ｓｐｌｉｔ＿ｉｎｆｏは、ＩＮＴ＿ｂｌｏｃｋバーストが２つに分割することになる下流側分割器を識別する。ｃｈａｎｎｅｌ＿ｓｐｌｉｔｔｅｒ＿ｉｄがｐ＿ｓｐｌｉｔ＿ｉｎｆｏと適合するチャネル分割ユニットは、ＩＮＴ＿ｂｌｏｃｋバーストを分割し、そのアトミック・シーケンス内でｐ＿ｂｕｒｓｔｌａｓｔ＝１を備えたｍ＿ｌｏｃｋａｒｂ＝１を０にリセットする。
より高性能のアクセス保護
インターコネクト装置の分断論理は、アクセス保護機構（ＰＭ）検査に向けて新しい高性能化されたアーキテクチャを使用することができる。このアーキテクチャは、二重ルックアップアーキテクチャである。ターゲット・エージェントから出される各要求バーストは、最初に、並列に２つのルックアップを使用するＰＭにより資格が認定される。第１のルックアップは、バーストに対して開始アドレスに基づくものである。第２のルックアップは、バーストに対して計算終了アドレスに基づくものである。アクセス許可の資格付けには、第１のルックアップに関連のＳＭＸで現在必要とされる全ての条件に１つの新しい条件を加えたものが必要である。新しい条件とは、第１及び第２のルックアップが同じ保護領域をヒットすべきであるということである。それによってたとえ適切な許可が開始及び終了領域内に設定されているとしても、保護領域境界と交差するバーストが失格になる。単一の保護領域は、バーストがアクセスするデータセットを対象とすることが予想かつ必要とされる。
【０２６６】
第２のルックアップは、ｂｕｒｓｔ＿ａｌｉｇｎｅｄ＝０を有するターゲットでＩＮＣＲバーストに対して、及びブロック・バーストに対して実施されるだけである。ＷＲＡＰ、ＸＯＲ１、ＳＴＲＭ、及びバーストに整列したＩＮＣＲバーストに対しては、第２のルックアップの成功は保証される（バーストの整列した性質、サポートされる長さの範囲、及び保護領域サイズの最小粒度により）。ＵＮＫＮ及びＤＦＬＴ２トランザクションは、依然として保護ターゲット・エージェントで単一のワード転送として処理されることになるだけであるから、これらに関する第２のルックアップも保証される。
【０２６７】
二重ルックアップＰＭにより、ＩＡによる控え目な局所性実施が不要になる。ＩＡバースト分断の性能に対してコストが最も高い場合が排除され、ＵＮＫＮバーストの優勢な使用が２Ｄトランザクションのためであると考えられるので、ブロック・バーストサポートも重要な役割をここで果たす。ブロック・バーストを使用するようにこれらのイニシエータを変換すれば、ＰＭによるターゲットでの処理の効率化が可能になり、かつゲートカウントスケーリングが改善する。
【０２６８】
ブロック・バーストに関する終了アドレス計算をハードウエア効率及びタイミング効率を高いものにするために、処理は、バイナリ累乗であるＭＢＩｏｃｋＨｅｉｇｈｔ値に制限される。このバースト分断は、アドレス指定されたターゲット・エージェントが保護マネージャを有する時に単にイニシエータ・エージェントにより実施される。従って、単一のイニシエータブロック・バーストが一連のターゲットブロック・バーストに分断される可能性があり、各々は、ＰＭ検査を通過すべきである。それによってイニシエータバースト全体を対象とする単一の保護領域の要件に可能な例外ができる。イニシエータブロック・バーストの以前の各部がＰＭ検査を通過し、後の各部がＰＭ検査を通過しない可能性もある。このようなバーストが読み取られた場合、エラー応答が戻される前に何らかの応答データを戻すことができる。しかし、保護データは、これらの場合は漏れないことになり、その理由は、戻される応答は、全てが、アクセスが許可されたからのものであり、応答ＥＲＲ及び０データ・ワードは、初回の違反が検出された後に包含的に全てのアドレスから戻されたものであるからである。同等の挙動が、イニシエータバーストがＰＭ局所性実施のために分断された時に今日ＳＭＸに存在する。
【０２６９】
集合ターゲットにアクセス保護機構を追加するには、集合内の個々のターゲットの各々に対してアクセス保護機構を追加かつ同一に構成する必要がある。Ｓｏｃｃｏｍｐは、ＰＭが多重チャネル・ターゲットの構成ターゲットである何らかの意味のターゲットで存在する場合は、そのＰＭが全ての構成ターゲットで存在するかを検査することになる。更に、これらのＰＭの各々に対して定められる領域の数は、同じでなければならない。
【０２７０】
常に実質的に同一であるように多重チャネルセットの個々のＰＭを維持することは、ソフトウエアの責任である。チャネルＸでの領域Ｍの最新情報とチャネルＹでの領域Ｍの最新情報との間に時間間隔がある場合がある。セキュリティマネージャは、全てのチャネルが更新されるまで領域Ｍの使用を可能にすべきでない。
【０２７１】
高性能非同期かつ電圧隔離ＯＣＰブリッジング
インターコネクト装置は、複数の非同期クロック入力をサポートする。１つは、ベースクロックと指定され、ＳＭＸに供給される単一のクロックに対応する。ＳＭＸ−Ｃ０リリースと同時に、Ｓｏｎｉｃｓは、高性能ＯＣＰ２間非同期電圧隔離ブリッジを利用可能にする。ＳＳＸにより、非同期入力クロックを各ソケットに関連付けることができる。このような関連付けが行われた時、非同期ブリッジのインスタンスがソケットに対して自動的に含まれる。そのブリッジは、電圧隔離に向けて戦術的セルを含むように構成することができるＲＴＬ階層の新しい最上層は、階層内での電圧領域の分離を助けるために作成される。
【０２７２】
図２０は、インターコネクト装置に対して上述の設計及び概念による「システムオンチップ」のようなデバイスを発生させる処理の例の実施形態の流れ図を示している。インターコネクト装置の設計からデバイスを発生させる例示的な方法は、「電子設計自動化（ＥＤＡ）」ツールセットの一部を成すように、チップコンパイラ上システムのような電子回路設計発生器を利用することができる。ハードウエア論理、符号化済みソフトウエア、及び両方の組合せを用いて、ＥＤＡツールセットの実施形態を用いた設計処理段階を実施することができる。インターコネクト装置内の回路のような装置及び／又は方法を表す情報は、セルライブラリ、電子回路設計発生器内のソフト命令内のようなインスタンス内に、又はこの情報を格納する類似の機械可読記憶媒体内に収容することができる。機械可読記憶媒体上に記憶された装置及び／又は方法を表す情報は、装置を製造する処理に、又はシミュレーション及びリソグラフィ・マスク及び／又は本明細書で説明する方法のような装置の表示に用いることができる。
【０２７３】
上述の設計の態様は、インターコネクト装置及び関連の部品を構成する構成要素の１組の設計を収容するソフトウエアライブラリの一部とすることができる。ライブラリセルは、業界規格に従って開発される。設計要素を含むファイルのライブラリは、それ自体独立型プログラム、並びにＥＤＡツールセットの一部とすることができる。
【０２７４】
ＥＤＡツールセットは、入出力データ、制御、デバッグ、及び試験フロー、並びに他の機能を完全に管理する高度に設定可能な拡張性のある「システムオンチップ（ＳＯＣ）」ブロック間通信システムを製造するのに使用することができる。実施形態では、例示的なＥＤＡツールセットは、以下のもの、すなわち、グラフィカル・ユーザ・インタフェース、共通の１組の処理要素、及びＥＤＡツールセットを定める回路、制御論理、及びセルアレイのような設計要素を収容するファイルのライブラリを含むことができる。ＥＤＡツールセットは、回路設計を生成して設計を試験し、及び／又はターゲット・チップ上で利用可能な空間内に設計のレイアウトを設置する目的のために複数のアルゴリズム及び設計で構成された１つ又はそれよりも多くのソフトウエア・プログラムとすることができる。ＥＤＡツールセットは、オブジェクト・コードを１組の実施可能ソフトウエア・プログラム内に含むことができる。ＥＤＡツールセットの特定用途向けアルゴリズム及びインタフェースの組をシステム集積回路（１Ｃ）インテグレータが使用して、特定の用途向けに個々のＩＰコア又はＩＰコアのシステム全体を迅速に作成することができる。ＥＤＡツールセットは、各構成要素のタイミング図、電力、及びエリアに関する態様を供給すると共に、実際の作動及び構成のシミュレーションを実施するために構成要素を表すように符号化されたモデルでシミュレーションを提供する。ＥＤＡツールセットは、ターゲット・チップ上で利用可能な空間内に適合させることを意図したＮｅｔｌｉｓｔ及びレイアウトを発生させることができる。ＥＤＡツールセットは、機械可読記憶媒体上にインターコネクト装置及び論理回路を表すデータを格納することができる。
【０２７５】
一般的に、ＥＤＡツールセットは、ＳＯＣ設計フロントエンド処理及びバックエンドプログラミングの２つの主要な段階において使用される。
【０２７６】
フロントエンド処理には、ＳＯＣ概略図の設計を含む設計及びアーキテクチャ段階が含まれる。フロントエンド処理には、モデルの接続、設計の構成、アーキテクチャ探索中の設計の模擬、試験、及び調整を含むことができる。設計は、一般的にシミュレーションが行われると共に試験される。フロントエンド処理には、従来的に、ＳＯＣ内の回路のシミュレーション及び正しく作動することの検証が含まれる。試験及び検証済みの構成要素は、次に、独立型ライブラリの一部又はＩＰブロックの一部としてチップに格納することができる。フロントエンド図により、文書化、シミュレーション、デバギング、及び試験が裏付けられる。
【０２７７】
ブロック２００５では、ＥＤＡツールセットは、構成パラメータを説明するデータ及び複数のレベルの階層を有する個々のＩＰブロックの少なくとも一部に関する設計を有するユーザにより供給されたテキストファイルを受信することができる。データは、そのＩＰブロックに関する１つ又はそれよりも多くの構成パラメータを含むことができる。ＩＰブロックの記述は、インターコネクト装置のようなそのＩＰブロックの全体的な機能性とすることができる。インターコネクト装置ＩＰブロックの構成パラメータは、システム内のいくつかのアドレス領域、システム・アドレス、システム・アドレスに基づくデータの経路指定の方法などとすることができる。
【０２７８】
ＥＤＡツールセットは、そのＩＰブロックの構成要素レベルの製作を実施する製造工程、その技術においてセルにより占有されるサイズの推定、その技術において実施された構成要素レベルの論理の作動電圧、その技術における標準的セルの平均ゲート遅延のようなユーザにより供給された実施技術パラメータを受信する。技術パラメータは、意図した実施技術の抽出を説明する。ユーザにより供給された技術パラメータは、テキストにより説明又は単に公知の可能性範囲に応答して提出された値とすることができる。
【０２７９】
ＥＤＡツールセットは、ＩＰブロック設計を形成する各ＩＰ下位構成要素に対して抽象的な実施可能な表現を作成することによってＩＰブロック設計を分割することができる。
抽象的な実施可能表現は、各ＩＰ下位構成要素に関するモデルＴＡＰ特性をモデル化すると共に、実際のＩＰブロック設計の特性に類似した特性を模倣する。モデルは、そのＩＰブロックの１つ又はそれよりも多くの挙動特性を中心とすることができる。ＥＤＡツールセットは、ＩＰブロック設計の一部又は全体のモデルを実施する。ＥＤＡツールセットは、そのＩＰブロックのモデル化した挙動特性の結果を要約して報告する。ＥＤＡツールセットは、アプリケーションの性能を分析することができ、ユーザがＩＰブロック設計の新しい構成又は新技術パラメータによる機能説明を供給することを可能にする。ユーザがＩＰ設計パラメータの供給された構成の反復のうちの１つの性能結果で満足して技術パラメータが実施されることを受けて、ユーザは、その関連の技術パラメータで最終的なＩＰコア設計を決めることができる。
【０２８０】
ＥＤＡツールセットは、潜在的に付加的な情報と共に抽象的な実施可能表現からの結果を統合してＩＰブロックに対して合成スクリプトを発生させる。ＥＤＡツールセットは、全体的な性能の結果及びエリア推定値がユーザに呈示された後にＩＰブロックに対して様々な性能及び地域ターゲットを確立する合成スクリプトを供給することができる。
【０２８１】
ＥＤＡツールセットは、ユーザにより供給された構成パラメータ及び実施技術パラメータに基づいて、論理合成に向けてそのＩＰブロック設計のＲＴＬファイルを発生させることができる。上述のように、ＲＴＬファイルは、レジスタ、ブール方程式、「ｉｆ−ｔｈｅｎ−ｅｌｓｅ」ステートメントのような制御論理及び複雑なイベント・シーケンスの集合で電子回路を説明する高レベル・ハードウエアの記述とすることができる。
【０２８２】
ブロック２０１０では、ＡＳＩＣ又はＳＯＣチップ設計における別々の設計経路は、統合段階と呼ばれる。ＩＰブロックのシステムの統合は、ＩＰブロックのＲＴＬファイル及びそのＩＰブロックに関する合成スクリプトの生成に並行して行うことができる。
【０２８３】
ＥＤＡツールセットは、シミュレーションを行って設計の作業が正しく機能することを検証する回路及び論理ゲートの設計を供給することができる。システム設計者は、一緒に機能するようにＩＰブロックのシステムを符号化する。ＥＤＡツールセットは、機能試験、タイミング試験、デバッグ、検証を行うことができる上述の回路のシミュレーションを発生させる。ＥＤＡツールセットは、ＩＰブロックの挙動のシステムのシミュレーションを提供する。システム設計者は、ＩＰブロックの挙動のシステムを検証及びデバッグする。ＥＤＡツールセットは、ＩＰコアをパッケージ化する。機械可読記憶媒体は、外部試験器及びインターコネクト装置が本明細書で説明する試験に対して試験シーケンスを実施する命令を試験生成プログラム発生させるように命令を格納することができる。電子設計自動化の当業者は、設計技術者が異なる表現を作成及び使用して有形の有用な情報及び／又は結果を生じやすくすることを知っている。これらの表現の多くは、高レベル（抽象化されかつ詳細が少なめである）又はトップダウン図とすることができ、システムレベルから始まる電子設計を最適化しやすくするのに使用することができる。更に、設計過程は、通常は相に分割することができ、各相の終了時に、その相に対する調整された表現が、通常は出力として発生され、次の相によって入力として使用される。ベテラン技術者は、これらの表現を使用すると共に発見的アルゴリズムを適用して最終相から得られる最終結果の品質を改善する。これらの表現により、電子設計自動化の世界では、回路を設計し、回路を試験及び検証し、回路のＮｅｔｌｉｓｔ及び他の類似の有用な結果からリソグラフィマスクを導出することができる。
【０２８４】
ブロック２０１５では、次に、システム統合は、集積回路設計工程において行うことができる。バックエンド・プログラミングには、一般的に、チップ・レイアウト上での回路要素の配置及び経路指定又は平面計画、並びに構成要素間の全ての配線接続の経路指定のようなＳＯＣの物理的レイアウトのプログラミングが含まれる。レイアウト、物理的ライブラリ交換フォーマット（ＬＥＦ）のようなバックエンド・ファイルがレイアウト及び製作のために発生される。
【０２８５】
生成したデバッグ・レイアウトは、チップのレイアウトの残りと統合することができる。論理合成ツールは、ＩＰコアのための合成スクリプト及びＩＰコアのＲＴＬ設計ファイルを受信する。論理合成ツールは、セルライブラリからの設計において使用される論理ゲートの特性を受信する。ＩＰブロックのシステムを含むＳＯＣをインスタンス化するために、ＲＴＬコードを発生させることができる。固定ＲＴＬ及び合成スクリプトを有するＩＰブロックのシステムのシミュレーション及び検証を行うことができる。レジスタ転送レベル（ＲＴＬ）と設計の合成が行われると考えられる。論理合成ツールは、ＲＴＬ設計を合成してゲートレベルＮｅｔｌｉｓｔ回路設計（すなわち、ＩＰ下位構成要素ブロックの全てを構成する個々のトランジスタ及び論理ゲートの記述）を作成する。設計は、Ｖｅｒｉｌｏｇ、ＶＨＤＬ（超高速集積回路ハードウエア記述言語）、又はＳＰＩＣＥ（集積回路重点シミュレーションプログラム）のような１つ又はそれよりも多くのハードウエア設計言語（ＨＤＬ）のＮｅｔｌｉｓｔ内に出力することができる。Ｎｅｔｌｉｓｔは、設計に含まれる構成要素、各構成要素の属性、及び構成要素間の相互接続性のような電子設計の接続性を説明することができる。ＥＤＡツールセットは、チップのＸＹ座標のようなチップ上で利用可能な空間内での構成要素配置に関する制約条件の追加を含む構成要素の平面計画を助けると共に、それらの構成要素の金属接続を経路指定する。ＥＤＡツールセットは、製造中にチップ上へ回路設計を転送するためにＩＰコアのこの表現から発生される石版印刷マスクのための情報、又は上述の回路の他の類似した有用な導出を提供する。従って、バックエンド・プログラミングは、レイアウトが物理的に製造可能であり、かつ得られるＳＯＣがいかなる機能を妨げる物理的欠陥も持たないことになることを検証するレイアウトの物理的検証を更に含むことができる。
【０２８６】
ブロック２０２０では、製作施設は、ＥＤＡツールセットの回路設計及びレイアウトから発生されたリソグラフィ・マスクを利用して、シグナル発生回路を有する１つ又はそれよりも多くのチップを製造することができる。製作施設は、１．０μｍ、０．５０μｍ、０．３５ｕｍ、０．２５ｕｍ、０．１８ｕｍ、０．１３ｕｍ、０．１０ｕｍ、９０ｎｍ、６５ｎｍ又はそれ未満のような最小線幅を有する標準的ＣＭＯＳ論理処理を使用してチップを製造することができる。一般的に使用されるＣＭＯＳ論理処理のサイズは、リソグラフィマスクを用いてチップ上に製造することができる数値が最も小さい最小リソグラフィ寸法を定めるものであり、それによって最小構成要素サイズが決まる。一実施形態によれば、Ｘ線及び極紫外線を含む光は、これらの石版印刷マスクを通過してチップ上に至り、試験回路のための回路設計及びレイアウトをチップ自体上に転写することができる。
【０２８７】
ＥＤＡツールセットは、グラフィカル・ユーザ・インタフェースに対して構成ダイアログ・プラグインを有することができる。ＥＤＡツールセットは、ＳｏｃＣｏｍｐに対してＲＴＬ発生器プラグインを有することができる。ＥＤＡツールセットは、ＳｏｃＣｏｍｐに対してＳｙｓｔｅｍＣ発生器プラグインを有することができる。ＥＤＡツールセットは、ＲＴＬシミュレーションに含むことができる構成要素上でユニットレベルの検証を実施することができる。ＥＤＡツールセットは、試験検証テストベンチ発生器を有することができる。ＥＤＡツールセットは、仮想及びハードウエアのデバッグポート追跡のためのファイルに対する逆アセンブラーを有することができる。ＥＤＡツールセットは、オープンコアプロトコル規格準拠とすることができる。ＥＤＡツールセットは、トランザクターモデル、バンドルプロトコルチェッカー、ソケット活動を表示するＯＣＰＤｉｓ２、バンドルの性能を分析するＯＣＰＰｅｒｆ２、並びに他の類似のプログラムを有することができる。
【０２８８】
上述のように、ＥＤＡツールセットは、他のプログラムに対して呼び出し可能なソフトウエア・ライブラリ又は実施可能なプログラムから成るＥＤＡツールセットのインスタンスのような１組のデータ及び命令としてソフトウエアに実施することができ、１つのプログラム内のソフトウエア・セルライブラリは、機械可読媒体上に記憶される。機械可読記憶媒体は、機械（例えば、コンピュータ）により可読の形式で情報を提供する（例えば、格納及び／又は送信する）あらゆる機構を含むことができる。例えば、機械可読媒体は、以下に限定されるものではないが、読取専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、磁気ディスク記憶装置媒体、光記憶媒体、フラッシュ・メモリデバッグ、ＤＶＤ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュカード、磁気カード又は光カード、又は電子命令の格納に適するあらゆる他の形式の媒体を含むことができる。命令及び演算はまた、機械可読媒体が１つよりも多いコンピュータ・システム上に格納され、及び／又はそれによって実行される分散コンピュータ環境に実施することができる。更に、コンピュータシステム間で転送された情報は、コンピュータ・システムを接続する通信媒体にわたってやり取りすることができる。
【０２８９】
以上の詳細説明の一部は、コンピュータメモリ内のデータビットに対する演算のアルゴリズム及び記号表現に関して示したものである。これらのアルゴリズム記述及び表現は、他の当業者に自分たちの仕事の内容を最も有効に通信するためにデータ処理技術分野の当業者によって使用されている手段である。アルゴリズムとは、本明細書では及び一般的に、望ましい結果をもたらす演算の首尾一貫した演算のシーケンスであると考えられている。演算とは、物理量の物理的操作を必要とするものである。必ずしもそうというわけではないが通常は、これらの量は、格納し、転送し、結合し、比較し、及び他の方法で操作することができる電気信号又は磁気信号の形を取る。これらの信号は、主として一般的な使用上の理由から、ビット、値、要素、記号、文字、項、又は数字などとして参照することが時に便利であることが判明している。
【０２９０】
本発明の一部の特定的な実施形態を示したが、本発明は、これらの実施形態に限定されないものとする。例えば、電子ハードウエア構成要素により実施される殆どの機能は、ソフトウエア・エミュレーションにより複製することができる。すなわち、その同じ機能を達成するために書かれたソフトウエア・プログラムは、入力−出力回路のハードウエア構成要素の機能性をエミュレートすることができる。ターゲットは、単一スレッド化又は多重スレッド化することができる。本発明は、本明細書に説明した特定的な実施形態によって限定されるのではなく、特許請求の範囲によってのみ限定されるように理解されるものとする。
【符号の説明】
【０２９１】
１０４  オンチップ・セキュリティＩＰコア
１０８  マルチメディアＩＰコア
１１６  イニシエータ・エージェント
１１８  インターコネクト装置
【図１】
2011054184.tif 000003
【図２】
2011054184.tif 000004
【図３】
2011054184.tif 000005
【図４】
2011054184.tif 000006
【図５】
2011054184.tif 000007
【図６Ａ】
2011054184.tif 000008
【図６Ｂ】
2011054184.tif 000009
【図７Ａ】
2011054184.tif 000010
【図７Ｂ】
2011054184.tif 000011
【図８】
2011054184.tif 000012
【図９】
2011054184.tif 000013
【図１０Ａ】
2011054184.tif 000014
【図１０Ｂ】
2011054184.tif 000015
【図１０Ｃ】
2011054184.tif 000016
【図１１】
2011054184.tif 000017
【図１２】
2011054184.tif 000018
【図１３】
2011054184.tif 000019
【図１４】
2011054184.tif 000020
【図１５】
2011054184.tif 000021
【図１６】
2011054184.tif 000022
【図１７】
2011054184.tif 000023
【図１８】
2011054184.tif 000024
【図１９】
2011054184.tif 000025
【図２０】
2011054184.tif 000026