(57)【要約】【課題】  リンクを介してデータを送信する方法において、可変幅リンク（例えば、縮小幅リンク）を実装するときに直面するいくつかの問題を解決する。【解決手段】  本発明の実施形態は、リンクを１以上の縮小幅リンクに分割するアルゴリズムを提供する。本発明の一実施形態において、多重化スキームが特定のサイクリック冗長性チェックにより要求されるビット送信順序を実施するために用いられる。多重化された出力ビットは、オンボードのルーティング輻輳を減少させるためオンチップでスウィズルされる。【選択図】  図１Ａ
2005332359.tif 000002
【特許請求の範囲】
【請求項１】
フロー制御単位のビットをグループに分割するステップであり、各グループは同数のビットを持つものと、
１以上の対応するマルチプレクサにグループの各ビットを入力することにより、所望の送信順序を独立に実施するために各グループの前記ビットを乗算するステップとを有することを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、
各グループからの多重化されたビットが各送信レーン分割中の送信レーン数に対応する多数のビットを有する物理制御単位を形成するように送信レーンを多数の送信レーン分割に分割するステップをさらに有することを特徴とする方法。
【請求項３】
請求項２に記載の方法であって、
前記１以上の対応するマルチプレクサの各々は前記送信レーン分割の個別のものと関連していることを特徴とする方法。
【請求項４】
請求項１に記載の方法であって、各グループは４ビットを有することを特徴とする方法。
【請求項５】
請求項３に記載の方法であって、各送信レーン分割は送信レーンクアドラントであることを特徴とする方法。
【請求項６】
請求項５に記載の方法であって、各送信レーンクアドラントは５つの送信レーンをもつことを特徴とする方法。
【請求項７】
請求項６に記載の方法であって、各出力ビットが隣接する物理送信レーンから送信されるように、前記多重化されたビットがスウィズリングされることを特徴とする方法。
【請求項８】
請求項１に記載の方法であって、前記所望の送信順序は特定のサイクリック冗長性チェックを促進することを特徴とする方法。
【請求項９】
可変幅リンクを提供するシステムであって、
リンクのポートのデータ送信レーンを、少なくとも１つがアクティブであるクアドラントに分割するポート分割部と、
フロー制御単位を複数の物理制御単位として送信する送信部であって、各物理制御単位は前記アクティブな全クアドラントのデータ送信レーンの全数に等しい数のビットを有するものとを有することを特徴とするシステム。
【請求項１０】
請求項９に記載のシステムであって、フロー制御単位の物理制御単位と物理制御単位のビットは特定されたビット送信オーダーで前記リンクを介して送信されることを特徴とするシステム。
【請求項１１】
請求項９に記載のシステムであって、前記特定されたビット送信オーダーはサイクリック冗長性チェックを実施するように選択されることを特徴とするシステム。
【請求項１２】
請求項１１に記載のシステムであって、
複数組のマルチプレクサであって、各組はビットのグループに関連し、各グループのビットは前記関連したマルチプレクサの組の各々に入力されるものをさらに有することを特徴とするシステム。
【請求項１３】
請求項１２に記載のシステムであって、マルチプレクサの各組の出力は物理制御単位を形成することを特徴とするシステム。
【請求項１４】
請求項１２に記載のシステムであって、各マルチプレクサに入力された前記ビットは、前記マルチプレクサからの一組の出力ビットが一組の隣接する物理送信レーンから送信されるようにスウィズリングされることを特徴とするシステム。
【請求項１５】
請求項１４に記載のシステムであって、前記ポートは分岐していることを特徴とするシステム。
【請求項１６】
関連データを有するマシンアクセス可能な媒体であって、アクセスされたとき、２つのエージェント間の物理レイヤリンクの初期化を実施する動作をマシンに実行させるものを有する製造品であって、
前記エージェントは、
リンクのポートのデータ送信レーンをクアドラントに分割し、前記クアドラントの少なくとも１つはアクティブであり、
フロー制御単位を複数の物理制御単位として送信し、各物理制御単位はすべてのアクティブクアドラント中のデータ送信レーンの総数と等しい数のビットを持つことを特徴とする製造品。
【請求項１７】
請求項１６に記載の製造品であって、フロー制御単位の物理制御単位および物理制御単位のビットは特定されたビット送信順序で前記リンクを介して送信されることを特徴とする製造品。
【請求項１８】
請求項１６に記載の製造品であって、前記特定されたビット送信順序は、サイクリック冗長性チェックを実施するために選択されることを特徴とする製造品。
【請求項１９】
請求項１８に記載の製造品であって、複数組のマルチプレクサをさらに有し、マルチプレクサの各組は一群のビットと関連し、各群のビットは前記関連した組のマルチプレクサの各々に入力されることを特徴とする製造品。
【請求項２０】
請求項１９に記載の製造品であって、各組のマルチプレクサの出力は物理制御単位を形成することを特徴とする製造品。
【請求項２１】
請求項１９に記載の製造品であって、前記マルチプレクサの各々に入力されるビットは、前記マルチプレクサからの一組の出力ビットが隣接した物理的送信レーンから送信されることを特徴とする製造品。
【請求項２２】
クアドラントに分割された複数のデータ送信レーンを持つ送信エージェントと、ここで少なくとも１つのクアドラントはアクティブであり、データを受信し多重化し出力するために複数群のマルチプレクサが実装され、各群のマルチプレクサの出力は物理制御単位を形成し、各物理制御単位は前記アクティブなクアドラントの送信レーンを介して対応するクロックサイクルで送信され、
前記送信された物理制御単位を受信するポイント・ツー・ポイントのリンクベース相互接続スキームを通じて前記送信エージェントに相互接続された受信エージェントとを有するシステム。
【請求項２３】
請求項２２に記載のシステムであって、前記送信エージェントと前記受信エージェントは、プロセッサ、メモリコントローラ、入出力ハブコンポーネント、チップセット、およびこれらの組み合わせからなるグループから選択されたコンポーネントであることを特徴とするシステム。
【請求項２４】
請求項２３に記載のシステムであって、前記データはサイクリック冗長性チェックを実施するために多重化されていることを特徴とするシステム。
【請求項２５】
請求項２２に記載のシステムであって、各群のマルチプレクサの出力は、前記一群のマルチプレクサの各々からの出力ビットが隣接する一組の物理送信レーンから送信されるようにスウィズリングされることを特徴とする。
【請求項２６】
請求項２５に記載のシステムであって、前記受信エージェントの複数のデータ送信レーンは、前記送信エージェントの複数のデータ送信レーンに逆の順序で接続されていることを特徴とするシステム。
【請求項２７】
請求項２６に記載のシステムであって、前記逆の順序は、各データ送信レーンのためのデータ送信レーン識別子の単一ビットにより示されることを特徴とするシステム。
【請求項２８】
請求項２５に記載のシステムであって、前記受信エージェントは、データを受信しそのデータをデマルチプレックスするために、実装された複数群のマルチプレクサを含むことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態はリンクベースの相互接続方法を用いた処理システムの技術分野に関し、特に、可変リンク幅・レーン反転・ポート分岐フィーチャがサポートされるように、単一のリンクインターフェイスを論理的に分割してクアドラントとする方法および装置に関する。
【背景技術】
【０００２】
マルチプロセッサシステムのバスベースの相互接続方法の欠点を克服するために、ポイント・ツー・ポイントのリンクベース相互接続方法が開発された。上記システムの各ノードは、エージェント（例えば、プロセッサ、メモリコントローラ、I/Oハブコンポーネント、チップセット）と接続されたノード間でデータ通信するためのルータとを含む。上記システムのエージェントは、プロトコルレイヤ、オプショナルルーティングレイヤ、リンクレイヤ、物理レイヤを典型的に含む相互接続回廊を用いて、データ通信する。
【０００３】
プロトコルレイヤは、プロトコル・トランザクション・パケット（PTP）のフォーマットを設定する。そのプロトコル・トランザクション・パケット（PTP）は、ノード間で通信されるデータの単位を構成する。ルーティングレイヤは、データがノード間で通信されるパスを決定する。リンクレイヤは、プロトコルレイヤからPTPを受け取り、そのPTPを部分のシーケンスとして通信する。各部分のサイズはリンクレイヤにより決定され、同期転送しなければならないPTPの部分を表す。よって各部分はフロー制御単位（flit）として知られている。PTPは可変個数のflitが集まって構成される。物理レイヤは各ノードの実際のエレクトロニクスと信号メカニズムから構成されている。ポイント・ツー・ポイントのリンクベース相互接続方法において、各リンクに接続されているエージェントは２つしかない。この限定された電子的付加により動作速度が速くなる。物理レイヤインターフェイス（PLI）の幅と、それによりクロックのバリエーションとを減少することにより、さらに動作速度を速くすることができる。それゆえ、PLIは、典型的には、数クロックサイクルごとにflitの一部を通信するように設計される。単一クロックサイクルで物理インターフェイスを介して転送することができるflitの一部は、物理制御単位（phit）として知られている。flitがデータの論理的単位を表すのに対し、phitはデータの物理量に対応する。
【０００４】
相互接続階層は、物理レイヤにおいてより速いシステム動作速度を達成するために実装される。リンクレイヤは、（PTPとしてプロトコルレイヤから受信した）データをflitとして送信する。そのflitは、物理レイヤでphitに分解され、PLIを介して受信エージェントの物理レイヤに通信される。受信されたphitは、その受信エージェントの物理レイヤでflitにまとめられ、その受信エージェントのリンクレイヤに転送される。その受信エージェントのリンクレイヤはflitを結合してPTPとし、そのPTPをその受信エージェントのプロトコルレイヤに転送する。
【０００５】
リンクを介してデータを送信するこの方法は、可変幅リンク（例えば、縮小幅リンク）を実装するときにいくつかの困難に直面する。
【０００６】
典型的な先行技術による相互接続方法（例えば、PCIエクスプレス）は、データパケットを用いるものである。送信エージェント（Tx）は、各クロックサイクルにおいてリンクの各レーンにデータパケットを１バイト送信する。そのパケットは、「パケット開始」（SOP）と「パケット終了」（EOP）の２つのインディケータを持っている。初期化において、受信エージェント（Rx）は、利用可能なレーンの数を決定するトレーニングシーケンスを使用する。Rxは、順次、各利用可能レーンから１バイトを取り出し、EOPインディケータを受信するまでバイトをアセンブルする。
【０００７】
この方法は、「byte  serial  fashion  per  lane」と呼ばれ、リンクが任意個数のレーンに縮小されることを可能とする。しかし、ポイント・ツー・ポイントのリンクベースPLIは数クロックサイクルの各々でflitの一部を通信するように設計されているので、それに上記方法を実装すると、許容できないほどレーテンシーが大きくなることがある。例えば、上記システムは、８０ビットのflitを使用し、そのflitを４クロックサイクルで２０レーン、全幅のリンクを介して送信するかも知れない。すなわち、各クロックサイクルで２０レーンの各々で１ビットが送信される。上記のシステムにおいて、バイトが２０レーンの各々で順次送信されるべきとき、１６０ビットを送信するのに８クロックサイクルかかる。これはflitのサイズを大きくするのと等価である。すなわち、１６０ビット全部がRxに到達するまで、１つの８０ビットflitを転送することができない。上記のシステムではこの付加的レーテンシーを許容できないかもしれない。さらにまた、上記システムはSOPインディケータやEOPインディケータ自体を含む必要はなく、これらはbyte  serial  fashion  per  lane送信方法を実装するために付加されねばならない。
【０００８】
PLIによりサポートされた他のフィーチャを収容する縮小幅リンク実装方法の開発において、さらに考慮すべき問題が発生する。
【発明の開示】
【課題を解決するための手段】
【０００９】
上記の課題は、フロー制御単位のビットをグループに分割するステップであり、各グループは同数のビットを持つものと、
１以上の対応するマルチプレクサにグループの各ビットを入力することにより、所望の送信順序を独立に実施するために各グループの前記ビットを乗算するステップとを有することを特徴とする方法により解決される。
【発明を実施するための最良の形態】
【００１０】
本発明は、実施形態を説明するために用いる以下の説明と添付した図面を参照することにより、よく理解できるであろう。
【００１１】
以下の説明において、多数の特定の細部を説明する。しかし、本発明の実施形態はこれらの特定の細部無しで実施可能であることが分かる。他の例においては、この説明の理解を分かりにくくしないように、周知の回路、構成、方法については詳しく示していない。
【００１２】
本明細書において、「一実施形態」とは、その実施形態に関して説明された特定のフィーチャ、構成、または特徴が本発明の少なくとも１つの実施形態に含まれることを意味する。よって、本明細書において様々な場所で「一実施形態において」または「一実施形態によると」という文言が出てきたときは、すべてが必ずしも同一の実施形態を参照しているわけではない。さらにまた、その特定のフィーチャ、構成、特徴は１つ以上の実施形態でいずれかの好適な方法で結合されてもよい。
【００１３】
さらにまた、発明性のある態様は、開示された単一の実施形態の決してすべてではないフィーチャにある。よって、本出願の特許請求の範囲は、ここに明示的にこの詳細な説明に組み込まれ、各請求項はそれ自体本発明の別の実施形態として成立する。
フロー制御単位のフォーマット
本発明の一実施例によると、８０ビットflitを４つの２０ビットphitとして送信する２０レーン（全幅）のリンクを持つPLIが提供される。本発明の一実施形態によると、２０レーンは各々５レーンをもつクアドラントに分割される。上記の実施形態において、縮小幅リンクについては、半幅リンクは２つのクアドラントの任意の組み合わせで、４分の１幅リンクはクアドラントの任意の１つで構成することができる。すなわち、上記の実施形態は任意のリンク幅をサポートできず、全幅（２０レーン）、半幅（１０レーン）、および４分の１幅（５レーン）のみをサポートするだけである。全幅の場合、リンクは８０ビットflitを４つの２０ビットphitとして４クロックで送信する。半幅の場合、リンクは８０ビットflitを８つの１０ビットphitとして８クロックで送信する。４分の１幅の場合、リンクは８０ビットflitを１６個の５ビットphitとして１６クロックで送信する。
【００１４】
８０ビットflitはサイクリック冗長性チェック（CRC）を実施するために（例えば、８個の）エラー検出ビットを含んでいる。CRCは、通信リンクを介して送信されたデータ中のエラーを検出する方法である。典型的には、Txは、データのブロックに多項式を適用し、結果として得られるCRCコードをそのブロックに付加する。Rxは同じ多項式を適用し、その結果をTxにより付加された結果と比較する。両者が一致すれば、データが正しく受信されたことが分かり、一致しなければ、Txはそのデータを再送するように通知される。
【００１５】
flitのCRCビットは、CRCを実装するために用いた数学に基づき、特定の順序で送信されることを要する。一実施形態において、phitおよび各phit内のビットは、リンクレイヤのCRCバーストエラー検出能力を効率的に用いるため、特定の順序で送信されることを要する。送信順序は、使用するリンク幅に依存する。図１は、本発明の一実施形態によるflitフォーマットと、４つのチャンクに分割された８０ビットflit内の８つのCRCビットの順序付けを示す図である。図１に示したように、図示したflitは、４つの２０ビットチャンク０−３を含み、その中に全部で８つのCRCビットC０−C８を含む。CRCを実施するために、CRCビットは特定された順序で送信される。CRCビットC０とC４はチャンク０に含まれている。C１とC５はチャンク１に含まれている。C２とC６はチャンク２に含まれている。C３とC７はチャンク３に含まれている。
【００１６】
図１Aは、本発明の一実施形態による全幅リンクの送信のための、４つのphit、phit０−phit３に分割された図１の８０ビットflitのflitフォーマットを示す図である。図１に示したように、２０レーンを持つ全幅リンクについては、flitの各チャンクはphitに対応する。図１Aは、各ビットを順序対<q,o>として表している。ここで、qはそのビットが属するクアドラントを指し、oはそのクアドラント内のそのビットのオフセットを指す。図１Aに示したように、８つのCRCビットは４つのphit、phit０−phit３の各々のコラム（ビット位置）０と１に含まれている。
【００１７】
半幅リンクは、８０ビットflitを、２つのクアドラントの任意の組み合わせを用いて、８クロックサイクルで８つの１０ビットflitとして送信する。８つのphitは、単にflitの４つのチャンクの各々の前半分と後半分により構成されているわけではない。CRCアルゴリズムの要件に合致するため、半幅リンクのためのflitフォーマットは、８つのCRCビットが８つのphit各々の第１のビット位置にあるように、flitのビットをインターリーブしたものである。図２は、本発明の一実施形態による半幅リンクで送信するために８つのphitに分割された８０ビットflitのflitフォーマットを示す。図２に示したように、８つのphitの第１のものであるphit０は、flitの第１チャンクの１つおきのビットにより構成される。８つのphitの第２のものであるphit１は、第２チャンクの１つおきのビットにより構成される。８つのphitの第３のものであるphit２は、第１チャンクに残っている１つおきのビット（phit０に含まれていないもの）により構成される。以下同様である。すなわち、phit０はチャンク０の偶数コラムを含み、phit１はチャンク１の偶数コラムを含む。その次の２つのphitであるphit２とphit３は、それぞれチャンク０とチャンク１の奇数コラムを含む。よって、phit０−phit３は、チャンク０とチャンク１を完全に送信するために用いられる。phit４−phit７は、上記と同様のプロセスを繰り返すことにより、チャンク２とチャンク３を送信するために用いられる。この順序付けにより、８つのCRCビットが、図示したように８つのphitの各々の第１のビット位置に位置させることができる。
【００１８】
半幅リンクの場合、４つのレーンクアドラントのうち２つだけが使用される。使用する２つのクアドラントは、図２に示すように、４つのクアドラントの任意の組み合わせ<x,y>であってよい。本発明の一実施形態において、選択された２つのクアドラントのうちq値が小さいクアドラントは、コラム番号（phit内のビット位置）が低いビットを送信する。例えば、図２に示したflitフォーマットの場合、y>xである。
【００１９】
４分の１幅リンクは、レーンクアドラントのいずれか１つを用いて、１６クロックサイクルで１６個の５ビットphitとして８０ビットflitを送信する。前述のように、flit内のビットは、CRCの要件に合わせて順序付けられねばならない。図３は、本発明の一実施形態による、４分の１幅リンクで送信するために１６phitに分割された８０ビットflitのflitフォーマットを示す。図３に示したように、８つのCRCビットは、phitの１つおきのペアの第１のビット位置にある。１６個のphitは、図２を参照して上で説明したプロセスと同様のプロセスを通して形成される。すなわち、phit０は、チャンク０のコラム０から始まる４つおきの各ビットを含む５ビットを有する。phit１は、チャンク１のコラム０から始まる４つおきの各ビットを含む５ビットを有する。phit２−phit７は、チャンクごとに５つのビットを有し、コラム２、１、および３で始まる４ビットごとの各ビットを選択した、チャンク０とチャンク１のビットをその順序でインターリーブする。よって、phit０−phit７はチャンク０とチャンク１を完全に送信するために用いられる。phit８−phit１５は、上記と同様のプロセスを繰り返すことにより、チャンク２とチャンク３を送信するために用いられる。
ニブル多重化
CRCに要する順序でビットを直接ルーティングすると、トレース長が長くなり、ルーティング輻輳と可変遅延を起こす。図４は、本発明の一実施形態による可変幅リンクを提供する直接ルーティング方法に内在するオンチップルーティング輻輳と可変遅延を示す図である。図４に示したように、２０個のレーンからのビットは、それぞれ５つのレーンを有するクアドラントに分割される。クアドラントQ１−Q４の各々からの１ビットは、２０個のマルチプレクサmux１−mux２０のうちの４つに送られる。例えば、図４に示したように、ビット０、５、１０、１５（各クアドラントの第１のビット）は、mux１、mux６、mux１１、mux１６に送られる。mux２、mux７、mux１２、mux１７の各々に送られるビット１、６、１１、１６（各クアドラントの第２ビット）でもこのパターンは続く。各々のマルチプレクサは、４つの入力ビットを受け取り、リンク幅に基づき出力を供給する。すなわち、全幅（２０ビット）リンクの場合、２０個のマルチプレクサの各々が出力を供給する。例えばビット０の出力を提供する。半幅リンクの場合、２０個のマルチプレクサのうち１０個だけがクロックサイクルごとに出力を提供し、１クロックサイクルあたり１０ビットが全部で出力される。例えば、mux１は、２つの連続するクロックサイクルの各々において、それぞれビット０とビット１０からの出力を提供してもよい、またmux６は、２つの連続するクロックサイクルの各々において、それぞれビット５とビット１５からの出力を提供してもよい。ここで、クアドラントQ１とQ２が用いられる。クアドラントQ３とQ４を用いて、mux１１は、２つの連続するクロックサイクルの各々において、それぞれビット０とビット１０からの出力を提供してもよく、またmux１６は、２つの連続するクロックサイクルの各々において、それぞれビット５と１５からの出力を提供してもよい。４分の１幅リンクの場合、２０個のマルチプレクサのうち５個だけがクロックサイクルごとに出力を提供し、１クロックあたり５ビットが全部で出力される。例えば、mux１は、４つの連続するクロックサイクルの各々において、それぞれビット０、５、１０、１５からの出力を提供する（ここで、クアドラントQ１が用いられる）。
【００２０】
上記の方法によるトレース長の比較により可変遅延が示される。トレース長の可変性によりバッファを使用する必要性が生じることがある。
【００２１】
CRCで要求されるビット送信順序を実施し、一方上記の欠点を避けるために、集積されたマルチプレクサ（Mux）が本発明の一実施形態においてPLIの各レーンに備えられる。２０レーンのPLIの場合、２０個のマルチプレクサが集積される。
【００２２】
図５は、本発明の一実施形態による要求されるphitとビットの送信順序を実施するためのマルチプレクサ入力スキームを示す図である。マルチプレクサ入力スキーム５００は、２０ビットチャンクを５つのニブルに分割し、４ビットのニブル０−４にする。CRCにより課された送信順序制限を解決する多重化スキームをニブル０について説明する。
【００２３】
全幅リンクの場合、マルチプレクサ入力選択は単純明快である。２０個のマルチプレクサが偶チャンクと奇チャンクの各々に実装されている。全幅リンクの場合、２０個のマルチプレクサの各々（１つのマルチプレクサが各入力に関連する）はアクティブであり、各マルチプレクサはそれに対応する入力をニブルごとに受信する。図５に示したように、ニブル０のビット、ビット０−３は４つのマルチプレクサmux０−mux３にそれぞれ入力される。これらのビットのオフセットは、各クアドラントで０である。チャンク０のすべてのニブルは、チャンク０のニブル０により例示したように、phit０として送信され、チャンク１のすべてのニブルは、phit１として送信される（チャンク０のニブル０により例示した）。チャンクの送信はチャンクマルチプレクサ５１０によりインターリーブされる。
【００２４】
上記の操作が次の２つのphitのチャンク２と３について繰り返される。
【００２５】
半幅リンクの場合、２つのクアドラント（QyとQxで示す）が用いられ、それゆえ各ニブルに関連する４つのマルチプレクサのうち２つだけが用いられ、全部で１０個のアクティブなマルチプレクサが用いられる。チャンク０とチャンク１のニブル０は、ビット<x,0>と<y,0>を用いて８つのphitの最初の４つで送信される。phit０において、QxとQyはそれぞれチャンク０のビット０と２（および同様にビット４、８、１２、１６とビット６、１０、１４、１８）を送信する。Phit１において、QxとQyはチャンク１に切り替え、ビット０と２（および同様にビット４、８、１２、１６とビット６、１０、１４、１８）をそれぞれ送信する。この操作はチャンク０とチャンク１のビット１と３（および同様にビット５、９、１３、１７とビット７、１１、１５、１９）に対して繰り返され、全部で４つのphitに対して繰り返される。次の４つのphitはチャンク２と３について上記操作を繰り返す。
【００２６】
上で注意したように、クアドラント対QyとQxにおいてxの値はyより小さい。例えば、クアドラント１と０が半幅リンクを形成するために用いられるとき、クアドラント０は連続したphitで各チャンクのビット０と１を送信し、クアドラント１は連続したphitでビット２と３を送信する。一方、クアドラント１と２が使用されるとき、クアドラント１は連続したphitで各チャンクのビット０と１を送信し、クアドラント２は連続したphitでビット２と３を送信する。
【００２７】
４分の１幅リンクにおいて、クアドラントQxの１つが使用され、それゆえ各ニブルに関連するマルチプレクサの１つが使用され、全部で５つのアクティブなマルチプレクサとなる。チャンク０とチャンク１のニブル０は、<x,0>を用いて１６個のphitのうち最初の８個で送信される。チャンク０のビット０（ビット４、８、１２、１６も同様）はphit０で送信され、チャンク１のビット０（ビット４、８、１２、１６も同様）はphit１で送信される。この操作は、ニブル０のビット２、１、３（および他の各ニブルの対応するビット）を用いてそれぞれ３回繰り返される。各回、チャンク０と１がインターリーブされ、２つのチャンクに対して全部で８つのphitとなる。この操作は次の８つのphitを用いてチャンク２と３について繰り返される。
【００２８】
送信後、受信したビットは、Rxポートにおいてデマルチプレクスされる。上で説明した多重化方法の逆を実施し、ビットとphitをデマルチプレクスする方法が用いられる。
スウィズリング
上で説明したように、ニブル多重化を実施する本発明の一実施形態は、関連した入力に対して非常に局所化されたオンチップのマルチプレクサを提供することにより、オンチップルーティング輻輳と可変ライン長を減少させる。各phit内で要求されたphitとビットの順序を維持することは、関係する問題を生ずるかもしれない。なぜなら、縮小幅リンク（本発明の一実施形態による半幅リンクまたは４分の１幅リンク）を操作するとき、phitは隣接した物理レーンを介して送信されないからである。すなわち、ニブル多重化方法の実施は、与えられたニブルに対応する４つのマルチプレクサの各々の出力を個々のクアドラントに向ける。これは、多様な特徴をサポートするシステムにおいて問題となることがある。
【００２９】
例えば、サポートされた特徴としてポート分岐を考える。ポート分岐により全幅エージェントを各々半幅リンクを持つ２つのエージェントに分割することができる。例えば、システムプラットホームにおいて、I/O上のトラフィックはプロセッサ間のトラフィックほど多くはない。それゆえ、２つのプロセッサを含むシステムは、各プロセッサがそれ自身専用のI/Oコンポーネントを持つのではなく、その２つのプロセッサが相互接続によって単一のI/Oコンポーネントをシェアすることができる。このような場合、その２つのプロセッサは２０ビット幅の相互接続（２０レーン）を用いてお互いに通信するが、I/Oエージェントは２０レーンのうち１０レーンを一方のプロセッサとの通信に割当て、残り１０レーンを他方のプロセッサとの通信に割り当てる。本発明の一実施形態において、ポート分岐はリンク初期化前にピンストラップを通じて実施され、その構成はそのまま維持される。本発明の一実施形態において、分岐ポートはピンフィールドの中心に２つのクロックレーン（各半幅リンクに対し１つ）を有する。本発明の一実施形態において、分岐可能なポートは、単一の全幅リンクとしても動作可能である。このような実施形態について、余分なクロックピンは接続されていなくてもよく、VccまたはVssのいずれかにハードウェア接続されていてもよい。
【００３０】
図６は、本発明の一実施形態による、分岐ポートをサポートしつつ所望のビット送信順序を実施するためにニブル多重化を実施するシステムのボードレイアウトを示す図である。図６に示したシステム６００は、図５を参照して上で説明したように、ニブル多重化の結果生じる所望の送信順序を実施するTxエージェント６０５を含んでいる。示されているように、エージェント６０５は分岐ポートを持っている。システム６００は、各々半幅ポートを有する２つのエージェント６１０Aと６１０Bも含む。エージェント６１０Aと６１０Bの各々で利用可能な２０レーンのうち半分はアクティブではない。エージェント６１０Aの半幅ポートはレーン０−９を使用し、エージェント６１０Bの半幅ポートはレーン１０−１９を使用する。図６に示したように、エージェント６０５のクアドラント０と１はエージェント６１０Aに向けられ、クアドラント２と３はエージェント６１０Bに向けられる。このレイアウトは、図６に示したように、ワイヤがボード上で過剰に交差し、またはその代わりに追加的ルーティングレイヤを必要とするが、どちらも望ましくない。
【００３１】
この問題を解決するため、本発明の一実施形態において、内部ロジックと物理レーンの間にビットスウィズリングレイヤを実装する。
【００３２】
図７は、本発明の一実施形態によるビットスウィズリング方法の実装を示す図である。図７に示されたシステム７００は、内部ロジックと物理ピン７０６間に実装されたビットスウィズリング方法を有するエージェント７０５を含む。ビットスウィズリングによりクアドラントのビットが隣接する物理レーンで送信される。本発明の一実施形態において、ビットスウィズリングはダイ上のハードウェアワイヤリングにより実装され、それゆえこの場合には追加的ロジックは必要ない。図７に示したとおり、本発明の一実施形態において、順序対<q,o>を用いて表されたビットは、以下のスウィズリング方程式を用いて物理レーンnにマップされる。
【００３３】
【数１】
2005332359.tif 000003
【００３４】
ここで、nはレーン番号（０からNL−１）、NLは全幅リンクのレーン数（例えば、２０レーン）、qはクアドラント番号（０から３）、oはクアドラントq内のビットオフセット（０から４）である。ビットを内部的にスウィズリングし、それによりクアドラントのすべてのビットが隣接した物理レーンで送信されるように強制することにより、分岐ポートのオンボードルーティング輻輳は緩和される。エージェント７０５のポートは、図示したように、エージェント７１０Aの半幅ポートに向けられたクアドラント０と１、およびエージェント７１０Bの半幅ポートに向けられたクアドラント２と３で分岐することができる。説明したスウィズリング方法を実施した後のクアドラントの順序は、物理ピン７０６ではシーケンシャルではないが、エージェント７１０Aと７１０Bへの接続は追加的ルーティングレイヤ無しに直接接続することができる。
一般的事項
本発明の実施形態は、リンクを１以上の縮小幅リンクに分割するアルゴリズムを提供する。２０レーンの全幅リンクを持つPLIを参照して８０ビットflitサイズ、半幅および４分の１幅の縮小幅リンクを上で説明したが、本発明の別の実施形態を異なるサイズのリンク、flitを持ち、様々な縮小幅リンクを提供するPLIに同様に適用できる。
【００３５】
一実施形態において、図５を参照して上で説明したニブル多重化プロセスによる高度に局所化したマルチプレクサは、チップの非常に混雑したエリアのオンチップ輻輳を救援する。図６を参照して上で説明したビットスウィズリングは、（混雑の度合いが高まっても許容できる、それほど混雑していないエリアにおいて）オンチップ輻輳を増加させるが、しかし、システムがポート分岐とレーン反転の特徴をよりよくサポート可能とすることでオンボード輻輳を緩和する。
レーン反転
上で説明したように、多重化およびスウィズリング方法を実施することで、レーン反転に関して付加的利益が提供される。
【００３６】
理想的には、２つの相互接続されたエージェントの各々に物理的信号を供給するピンは、他のエージェントの対応するピンに接続されている。すなわち、２０ピンエージェントのペアについて、一方のエージェントのピン０−１９は他のエージェントのピン０−１９に接続されている。上記の接続は、過剰なボードレイアウト輻輳またはトポロジの複雑性につながる。本発明の一実施形態において、一方のポートのピンが他のポート上のピンに関して反転していてもよい。上記のレーン反転は２つのポートA、B間の以下のピン接続方程式により定義される。
【００３７】
【数２】
2005332359.tif 000004
【００３８】
レーン反転は、自動的に検出され、Rxポートにより補償される。エージェントが対応するピン（ストレート接続）またはレーン反転の上で述べたピン接続方程式により接続されている限り、ボード上で追加的ステップは必要ない。
【００３９】
ポート分岐とともにレーン反転の特徴をサポートしている本発明の一実施形態において、分岐された２０レーンのポートのレーン０−９は、第１の半幅ポートのレーン１９−１０に（その特定の順序で）接続されており、分岐された２０レーンのポートのレーン１０−１９は第２の半幅ポートのレーン９−０に（その特定の順序で）接続されている。
【００４０】
本発明の一実施形態において、上で説明した多重化およびスウィズリング方法を用いるので、ストレート接続の各レーンのレーン識別子は、反転したレーン接続のレーン識別子から１ビットだけ異なる。すなわち、レーンは２箇所の一方に限定されているので、その識別子は１ビットを除き同じでもよい。上記の実施形態において、レーン反転は単一のビットを比較することにより検出できる。これにより、レーン反転はレーン識別子の単一ビットの参照により示すことができるので、時間とチップスペースを省くことができる。よって、レーン反転をサポートするためには単一ビットコンパレータを実装するだけでよい。反対に、従来技術の方法は、レーン識別子の５ビットすべてを比較する必要があり、５ビットのコンパレータが必要であった。
【００４１】
本発明の実施形態は所望のビット送信順序を実施する多重化およびスウィズリングプロセスを提供し、その他の所望の特徴をサポートしつつ縮小幅リンクを容易にする。これらのプロセスは、様々な操作を含み、最も基本的な形式で説明した。しかし、本発明の範囲から逸脱することなく、これらのプロセスのいずれかに操作を加えたり、操作を引いたりすることができる。本発明の多様な実施形態の操作は、上で説明したように、ハードウェアコンポーネントにより実施されてもよく、マシーン実行可能な命令によって実施してもよい。あるいは、ハードウェアとソフトウェアの組み合わせにより実行することもできる。本発明の一実施形態は、マシーンアクセス可能な媒体であって、命令を記憶させたものを含むコンピュータプログラムプロダクトとして提供されてもよい。その媒体は、上で説明したように本発明によるプロセスを実行するために、コンピュータ（または他の電子機器）をプログラムするために用いてもよい。
【００４２】
マシーンアクセス可能な媒体は、マシーン（例えば、コンピュータ、ネットワーク機器、パーソナルデジタルアシスタント、製造装置、その他１以上のプロセッサを有する機器等）によりアクセス可能な形式で情報を提供する（記憶させる、および／または送信する）いかなるメカニズムをも含む。例えば、マシーンアクセス可能媒体は、記録可能・記録不能媒体（例えば、リードオンリメモリ（ROM）、ランダムアクセスメモリ（RAM）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ等）、および同様に、光、音響、その他の伝播信号の形式（例えば、搬送波、赤外線信号、デジタル信号等）を含む。
【００４３】
本発明をいくつかの実施形態について説明したが、当業者は本発明がこれらの説明した実施形態には限定されず、添付した請求項の精神と範囲内で修正・変更をして実施することができることを認めるであろう。それゆえ、上記説明は本発明を限定するものではなく、例示するものとして捉えるべきである。
【図面の簡単な説明】
【００４４】
【図１】本発明の一実施形態によるflitフォーマットと４つの部分に分割された８０ビットflit内の８つのCRCビットの順序付けを示す図である。
【図１Ａ】本発明の一実施形態による全幅リンクで送信するための、４つのphit（phit０〜phit３）に分割された図１の８０ビットflitのflitフォーマットを示す図である。
【図２】本発明の一実施形態による、半幅リンクで送信するための、８つのphitに分割された８０ビットflitのflitフォーマットである。
【図３】本発明の一実施形態による、４分の１幅リンクで送信するための、１６個のphitに分割された８０ビットflitのflitフォーマットである。
【図４】本発明の一実施形態による、可変幅リンクを提供する直接ルーティング方法に内在するオンチップルーティング輻輳と可変遅延を説明するための図である。
【図５】本発明の一実施形態による、必要なphitおよびbit送信オーダーを遂行するマルチプレクサ入力方法を示す図である。
【図６】本発明の一実施形態による、分岐したポートをサポートしつつ所望のビット送信命令を遂行するためのニブル多重化を実装したシステムのボードレイアウトを示す図である。
【図７】本発明の一実施形態による、ビットスウィズリング方法の実装を示す図である。
【符号の説明】
【００４５】
５００  マルチプレクサ入力スキーム
５１０  チャンクマルチプレクサ
６００  システム
６０５  エージェント
６１０A/B  エージェント
７００  システム
７０５  エージェント
７０６  物理ピン
７１０A/B  エージェント
【図１】
2005332359.tif 000005
【図１Ａ】
2005332359.tif 000006
【図２】
2005332359.tif 000007
【図３】
2005332359.tif 000008
【図４】
2005332359.tif 000009
【図５】
2005332359.tif 000010
【図６】
2005332359.tif 000011
【図７】
2005332359.tif 000012