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