(57)【要約】パケットを結合する方法と装置を開示する。いろいろな実施形態において、具体的なプロトコルに則した複数のパケットを結合し、同じプロトコルの単一パケットにする。その単一パケットは結合されたパケットのそれぞれの識別情報も保存する。その識別情報を用いて結合されたパケットを分割及び／またはそれぞれの宛先に経路指定することができる。
2006526363.tif 000002
【特許請求の範囲】
【請求項１】
一プロトコルに則した複数のパケットを結合して同じプロトコルに則した単一パケットにするステップと、
前記結合されたパケットのそれぞれの識別情報を前記単一パケット内に保存するステップと、
前記単一パケットに表示を追加して前記結合されたパケットが前記単一パケット内に含まれていることを示すステップと、を有することを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、
前記追加は、前記単一パケットにヘッダーを付加するステップを有することを特徴とする方法。
【請求項３】
請求項１に記載の方法であって、
前記単一パケットをパケットの結合及び分割が可能なデバイスに送信するステップをさらに有することを特徴とする方法。
【請求項４】
請求項３に記載の方法であって、
前記単一パケットを受信するステップと、
前記単一パケットを他のデバイスに送信するステップと、をさらに有することを特徴とする方法。
【請求項５】
請求項３に記載の方法であって、
前記単一パケットを受信するステップと、
前記結合されたパケットを抽出するステップと、をさらに有することを特徴とする方法。
【請求項６】
請求項５に記載の方法であって、
抽出された各パケットを適当な宛先に送信するステップをさらに有することを特徴とする方法。
【請求項７】
請求項１に記載の方法であって、
前記結合は、（i）ペリフェラルコンポーネントインターコネクト（PCI）エクスプレスリンクの再同期前、及び（ii）PCIエクスプレスリンクの再同期中のうち少なくとも一方で実行されることを特徴とする方法。
【請求項８】
請求項１に記載の方法であって、
所定時間及び最小結合パケットサイズ閾値のうち少なくとも一方に基づきPCIエクスプレスリンクの再同期を遅らせるステップをさらに有することを特徴とする方法。
【請求項９】
一プロトコルに則した単一パケットを受信するステップを有し、
前記単一パケットが、結合された複数のパケットと前記結合されたパケットが前記単一パケット内に含まれていることを示すヘッダーとを含み、
結合された各パケットが同じプロトコルに則し、それに関連した識別情報を有することを特徴とする方法。
【請求項１０】
請求項９に記載の方法であって、
バスに結合したデバイスに前記単一パケットを経路指定するステップをさらに有する方法。
【請求項１１】
請求項９に記載の方法であって、
前記単一パケットから前記結合されたパケットを抽出するステップをさらに有することを特徴とする方法。
【請求項１２】
請求項１１に記載の方法であって、
前記抽出されたパケットを適当な宛先に送信するステップをさらに有することを特徴とする方法。
【請求項１３】
ペリフェラルコンポーネントインターコネクト（PCI）エクスプレスに則した複数のパケットを結合してPCIエクスプレスに則した単一パケットとし、
PCIエクスプレスリンクを介して前記単一パケットを送信することができる第１のPCIエクスプレスデバイスと、
前記単一パケットを受信する第２のPCIエクスプレスデバイスと、を有する装置であって、
前記単一パケットが、その中の前記結合されたパケットのそれぞれの識別情報と、前記結合されたパケットが前記単一パケット内に含まれていることを示すヘッダーとを含むことを特徴とする装置。
【請求項１４】
請求項１３に記載の装置であって、
前記第１のPCIエクスプレスデバイスは、PCIエクスプレスルートデバイス、PCIエクスプレススイッチデバイス、及びPCIエクスプレス周辺デバイスのうちの１つを有し、
前記第２のPCIエクスプレスデバイスは、PCIエクスプレスルートデバイス、PCIエクスプレススイッチデバイス、及びPCIエクスプレス周辺デバイスのうちの１つを有することを特徴とする装置。
【請求項１５】
請求項１３に記載の装置であって、
前記第２のPCIエクスプレスデバイスは、（i）前記単一パケットを他のPCIエクスプレスデバイスに経路指定、（ii）前記単一パケットから前記結合されたパケットを抽出、及び（iii）前記抽出されたパケットを適当な宛先に送信のうち少なくとも１つが可能であることを特徴とする装置。
【請求項１６】
グラフィックスコントローラと、
前記グラフィックスコントローラに結合した第１のペリフェラルコンポーネントインターコネクト（PCI）エクスプレスデバイスと、
前記単一パケットを受信する第２のPCIエクスプレスデバイスと、を有するシステムであって、
前記第１のPCIエクスプレスデバイスは、
ペリフェラルコンポーネントインターコネクト（PCI）エクスプレスに則した複数のパケットを結合してPCIエクスプレスに則した単一パケットとし、
PCIエクスプレスリンクを介して前記単一パケットを送信することができ、
前記単一パケットが、その中の前記結合されたパケットのそれぞれの識別情報と、前記結合されたパケットが前記単一パケット内に含まれていることを示すヘッダーとを含むことを特徴とするシステム。
【請求項１７】
請求項１６に記載のシステムであって、
前記第１のPCIエクスプレスデバイスは、PCIエクスプレスルートデバイス、PCIエクスプレススイッチデバイス、及びPCIエクスプレス周辺デバイスのうちの１つを有し、
前記第２のPCIエクスプレスデバイスは、PCIエクスプレスルートデバイス、PCIエクスプレススイッチデバイス、及びPCIエクスプレス周辺デバイスのうちの１つを有することを特徴とするシステム。
【請求項１８】
請求項１６に記載のシステムであって、
前記第２のPCIエクスプレスデバイスは、（i）前記単一パケットを他のPCIエクスプレスデバイスに経路指定、（ii）前記単一パケットから前記結合されたパケットを抽出、及び（iii）前記抽出されたパケットを適当な宛先に送信のうち少なくとも１つが可能であることを特徴とするシステム。
【請求項１９】
機械読み出し可能媒体であって、機械により実行された時、前記機械に
一プロトコルに則した複数のパケットを結合して同じプロトコルに則した単一パケットにするステップと、
前記結合されたパケットのそれぞれの識別情報を前記単一パケット内に保存するステップと、
前記単一パケットに表示を追加して前記結合されたパケットが前記単一パケット内に含まれていることを示すステップと、を有する動作を実行させる命令を有含むことを特徴とする機械読み出し可能媒体。
【請求項２０】
請求項１９に記載の機械読み出し可能媒体であって、前記追加は、
前記単一パケットにヘッダーを付加するステップを有することを特徴とする機械読み出し可能媒体。
【請求項２１】
請求項１９に記載の機械読み出し可能媒体であって、前記動作は
前記単一パケットをパケットの結合及び分割が可能なデバイスに送信するステップをさらに有することを特徴とする機械読み出し可能媒体。
【請求項２２】
請求項２１に記載の機械読み出し可能媒体であって、前記動作は
前記単一パケットを受信するステップと、
前記単一パケットを他のデバイスに送信するステップと、をさらに有することを特徴とする機械読み出し可能媒体。
【請求項２３】
請求項２１に記載の機械読み出し可能媒体であって、前記動作は
前記単一パケットを受信するステップと、
前記結合されたパケットを抽出するステップと、をさらに有することを特徴とする機械読み出し可能媒体。
【請求項２４】
請求項２３に記載の機械読み出し可能媒体であって、前記動作は
抽出された各パケットを適当な宛先に送信するステップをさらに有することを特徴とする機械読み出し可能媒体。
【請求項２５】
請求項１９に記載の機械読み出し可能媒体であって、
前記結合は、（i）ペリフェラルコンポーネントインターコネクト（PCI）エクスプレスリンクの再同期前、及び（ii）PCIエクスプレスリンクの再同期中のうち少なくとも一方で実行されることを特徴とする機械読み出し可能媒体。
【請求項２６】
請求項１９に記載の機械読み出し可能媒体であって、前記動作は
所定時間及び最小結合パケットサイズ閾値のうち少なくとも一方に基づきPCIエクスプレスリンクの再同期を遅らせるステップをさらに有することを特徴とする機械読み出し可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
ここに開示した実施形態は、パケット送信に関し、特に送信に先立つパケットの結合に関する。
【背景技術】
【０００２】
コンピュータシステム内で、または（例えば、ネットワークを介して）コンピュータシステム間で、データは多くの異なる形で送信される。一部のシステムでは、データはグループ化され、パケットとして送信される。PCIエクスプレス（Peripheral  Component  Interconnect  Special  Interest  Group’s  Peripheral  Component  Interconnect  Express  1.0仕様書、２００２年７月２２日発行）は、データをパケット化して送信するプロトコルの一例である。使用するプロトコルに係わらず、パケットの送信にはある程度のオーバーヘッドと最小パケットサイズが必要となる。
【０００３】
例えば、パケットの内容及び／または宛先に関する情報を含むヘッダー（例えば、オーバーヘッド）を必要とするパケットがある。パケットの送信前に最小パケットサイズを必要とする場合、その最小サイズ要件を満たさないパケットにビットを追加的に「詰め込む」システムもある。詰め込まれたビットは有用な情報は含んでおらず、システムの効率が下がる。
【０００４】
以下に示すのは、PCIエクスプレストランザクションの例であり、一般的に、最小パケットサイズ要件を満足するためにビットを詰め込むことを要するものである。第１に、IOマップされた（例えば、入出力マップされた）デバイスに対する簡単なシーケンスであり、これはインデックスレジスタへの８ビットIO書き込みトランザクションと、それに続く対応するデータレジスタへの８ビットIOサイクルを必要とする。これは２つの完全なPCIエクスプレストランザクションになり、両方とも長さと効率は最小である。
【０００５】
第２に、FIFO（例えば、ファーストイン、ファーストアウト）またはドアベルレジスタの読み出しであり、これはその都度別々のPCIエクスプレストランザクションを用いた同じアドレスの繰り返し読み出しよりなる。第３に、一部の特殊なメモリトランザクション（例えば、フラッシュメモリデバイスのプログラミング）であり、これはコマンドシーケンスの順序でバイトまたはワード書き込みを要する。これらの書き込みは、それぞれ別々のPCIエクスプレストランザクションを要する。
【０００６】
このように、これら３つのプロセスは、それぞれ長さが最小のPCIエクスプレストランザクションを複数必要とし、ビットの詰め込みのために不要なビットを非効率に送信することになりがちである。さらにまた、追加的なPCIエクスプレストランザクションには、パケットを構成し、パケットを送信し、パケット送信のアクノレッジを受けるために、それぞれシステムリソースを必要とする。
【０００７】
帯域幅が狭い周辺デバイスとIOデバイスをデータトラフィックが通る場合に、これらのデバイスの稼働率が低くなるので、パケットオーバーヘッドと最小パケットサイズの欠点が特に顕著となる。稼働率が低くなると、パワーが無駄になるが、これは低パワーシステムで特に問題となる。スイッチの場合、稼働率が低いと性能が非効率となり、アービトレーションの非効率性にもつながる。
［発明の詳細な説明］
【０００８】
添付した図面において、いろいろな実施形態を限定としてではなく例示として示した。同じ構成要素には同じ参照符号を用いた。本開示において、「１つの」、「その」、「他の」、「別の」、「いろいろな」実施形態は、必ずしも同じ実施形態を指すものではなく、少なくとも１つの実施形態を指していることに留意すべきである。
【０００９】
以下の説明では、説明を目的として、いろいろな実施形態を完全に理解してもらうため、具体的な詳細を多く記載した。当業者には明らかであるが、実施形態はこれらの具体的な詳細がなくても実施することができる。他の場合において、これらの実施形態の詳細が不明瞭にならないように、一部の構造とデバイスは省略または単純化してある。
【００１０】
以下の説明と添付した図面により例示する。しかし、これらの例は、可能なすべての実施形態を包括的に列挙することを目的としたものではないので、限定として解釈してはならない。ここに開示したいろいろな方法は、機械読み出し可能な媒体に格納された命令を読み出し、その命令に従って機能を実行する機械を用いて実施することができる。機械読み出し可能な媒体には、機械（例えば、コンピュータ）により読み出し可能な形式で情報を提供（例えば、格納及び／または送信）するいかなるメカニズムも含まれる。例えば、機械読み出し可能媒体には、読み出し専用メモリ（ROM）、ランダムアクセスメモリ（RAM）、磁気ディスク記録媒体、光記憶媒体、フラッシュメモリデバイス、及び電気的、光学的、音響的またはその他の形式の伝搬信号（例えば、搬送波、赤外線信号、デジタル信号など）が含まれる。
【００１１】
図１を参照する。図１にはパケットを結合する方法が示されている。ブロック１０において、具体的プロトコル（例えば、PCIエクスプレスなど）に則した複数のパケットを結合して単一パケットにする。その単一パケットは、その結合された複数のパケットと同じプロトコルに則している。
【００１２】
ブロック１２において、結合されたパケットのそれぞれの識別情報をその単一パケットに保存する。いろいろな実施形態において、識別情報の保存には、その単一パケット内の結合されたパケットのそれぞれのヘッダーを保持することが含まれる。１つの実施形態において、識別情報の保存はパケットの結合と同時に行われる。
【００１３】
図２は、複数のパケットが結合されて含まれる単一パケットの例を示す。具体的に、単一パケット１４は、ヘッダー１６、結合されたパケット１８、周期的冗長検査（「CRC」）２０が含まれる。いろいろな実施形態において、ヘッダー１６には、単一パケット１４が結合されたパケット１８を含むことの表示が含まれる。他の実施形態において、単一パケット１４が結合されたパケット１８を含むことの表示は、単一パケット１４内の別の部分（例えば、他のフィールドなど）にあってもよい。
【００１４】
結合された各パケット１８は、ヘッダー２２、データフィールド２４、及びCRC２６を含む。結合されたパケット１８は同じものでもよいし、互いに異なるものでもよい。例えば、PCIエクスプレスは、異なるタイプのパケットを利用する。そのパケットはトランザクションによって異なり、どのように結合してもよい。その理由は、実施形態では、異なるパケットタイプを単一パケットに結合するその結合の仕方は制限されていないからである。
【００１５】
図１には示していないが、本方法のいろいろな実施形態には、付加的な特徴が含まれる。例えば、単一パケットが一旦生成されると、その単一パケットは、パケットを結合及び分割できるデバイスに送られる。１つの実施形態において、PCIエクスプレスバスを介してその単一パケットを送る。受信デバイスは、例えば、PCIエクスプレスルートデバイス、PCIエクスプレススイッチ、またはPCIエクスプレス周辺デバイスなどである。PCIエクスプレス周辺デバイスの例としては、他にもあるが、ギガビットイーサネット（登録商標）やアクセラレイテッドグラフィックスポート等のIOデバイスがある。
【００１６】
受信デバイスがスイッチの場合、異なるイベントが起こり得る。例えば、スイッチが単一パケットを一旦受信すると、そのスイッチはその単一パケットを他のデバイスに経路指定または送信する。あるいは、そのスイッチは、その単一パケットを分割（例えば、結合されたパケットを抽出）して、抽出したパケットを適当な送り先に送信することができる。
【００１７】
いろいろな実施形態において、スイッチは、その単一パケットを再経路指定するか結合されたパケットの抽出を開始するかを判断するために、その単一パケットのヘッダーを使用する。パケットを抽出すると、スイッチは抽出したパケット（例えば、以前保存された）のヘッダーを使用して、抽出した各パケットをどこに送るべきか判断することができる。
【００１８】
しかし、受信デバイスが周辺デバイスである場合、単一パケットを単に受信し、結合されたパケットを使用または送信するために抽出する。
【００１９】
図１に示した方法を、結合を通信リンクの再同期と連携させることにより拡張することができる。例えば、PCIエクスプレスの場合、閾値基準（例えば、リンクが所定時間アクティブでない場合など）に基づきデバイス間のリンクをパワーダウンするように設定することができる。データを送受信するためにリンクにパワーアップするよう信号を送る時、リンクを再同期させなければならない。リンクをパワーアップしなければならないと表示されてから、再同期が完了するまでには必ずレイテンシー期間が必要である。
【００２０】
いろいろな実施形態において、リンクの再同期の前及び／または間にパケットを結合することにより、この内在的レイテンシー期間を利用する。他の実施形態において、再同期を意図的に遅延させる。意図的な遅延により生じた付加的レイテンシーにより、パケットの結合のためにさらに時間を利用できる。
【００２１】
これに関して、図３は、意図的に再同期を遅延させる方法の１つの実施形態を示すフローチャートである。ブロック２８において、利用可能なパケットを結合して単一パケットにする。判断ブロック３０において、所定時間が経過し、及び／または最小結合パケットサイズ閾値が満たされたかどうか判断する。必要な条件を満足しなかった場合、ブロック２８においてパケットの結合を継続する。しかし、必要な条件を満足した場合、ブロック３２においてリンクの再同期を進める。リンクを一旦再同期すると、ブロック３４において信号パケットを送る。
【００２２】
図４は、上で説明したいろいろな実施形態の一部を実行するために使用することができる２つのデバイスを示した概略図である。具体的に、第１のPCIエクスプレスデバイス３６が第２のPCIエクスプレスデバイス３８に結合している。上で述べたように、各デバイスは、PCIエクスプレスルートデバイス、PCIエクスプレススイッチデバイス、PCIエクスプレス周辺デバイスの１つであってもよい。
【００２３】
１つの実施形態において、デバイス３６（及び場合によってデバイス３８）は、PCIエクスプレスに則した複数のパケットを結合して、PCIエクスプレスに則した、結合されたパケットのそれぞれの識別情報を含む単一パケットにすることができる。デバイス３６は、PCIエクスプレスリンクを介して単一パケットをデバイス３８に送信することもできる。
【００２４】
デバイス３８は、デバイス３６から受信した単一パケットを他のPCIエクスプレスデバイスに経路指定し、その単一パケットから結合されたパケットを抽出し、その抽出したパケットを適当な宛先に送ることができる。いろいろな実施形態において、その適当な宛先は単一パケットのヘッダー及び／またはその単一パケット内の結合されたパケットのそれぞれのヘッダーにより決められる。
【００２５】
デバイス３６とデバイス３８は、それぞれポート３５を含む。そのポート３５は関連するトランスミッタ及びレシーバのグループである。いろいろな実施形態において、ポート３５はマッチング機能を有する（例えば、両ポート３５は、必要に応じて、上り方向及び下り方向両方のパケットを結合及び分割することができる）。図示した実施形態において、デバイス３６とデバイス３８の間には４つのレーン３７がある。「レーン」は一組の差動送受信ペアである。ここで使用する「リンク」という用語（例えば、PCIエクスプレスリンクなど）は、２つ（またはそれ以上）のポート及びそれを相互接続しているレーンを指す。
【００２６】
図５は、グラフィックスコントローラ４６、グラフィックスコントローラと結合した第１のPCIエクスプレスデバイス（例えば、ルート４０など）、及び第２のPCIエクスプレスデバイス（例えば、スイッチ４８など）を含むシステムを示す。このシステムは、ルート４０に結合した中央処理ユニット（「CPU」）４２、ルート４０に結合したメモリ４４、スイッチ４８に結合したレガシーエンドポイント５０、スイッチ４８に結合したエンドポイント５２も含む。図５ではルート４０を単一エレメントとして示したが、ルート４０は、メモリコントローラハブ（例えば、CPU４２、グラフィックスコントローラ４６、メモリ４４に結合したノースブリッジなど）と、IOコントローラハブ（例えば、ノースブリッジとスイッチ４８に結合したサウスブリッジなど）を有してもよい。
【００２７】
ルート４０とスイッチ４８は、上で説明した方法（例えば、パケットの結合、分割、及び経路指定）を実施することができる。同様に、エンドポイント５２は前に説明した方法を実施することもできる。しかし、レガシーエンドポイント５０はパケットを結合及び分割することはできない。
【００２８】
図６は、図５のシステムにあるデバイスの結合機能を有効にすることに基づく異なるデータストリームを示す。例えば、ルート４０の結合機能が無効とされている場合（例えば、各パケットは別々に送られる）、レーン４７上のパケットストリームは、図６中、ストリーム０として現れる。たぶん、各パケットを別々に送信すると、上で説明したように、送信用の最小パケットサイズを満たすために、ビットの詰め込みが必要となる。
【００２９】
しかし、ルート４０、スイッチ４８、及びエンドポイント５２でパケット結合が有効となっていると、レーン４７上のパケットストリームは、例えば、サイズ、宛先、宛先デバイスの結合能力（及び／またはその有効性）に基づき複数のパケットが適当に結合された、図６のストリーム１のようになるだろう。スイッチ４８は、受信パケットをその適当な宛先に基づいて経路指定する。パケットがストリーム１のようになる場合、結合されていないパケットCとDは、レガシーエンドポイント５０に送られ、結合されてABとEFGを含むパケットは、エンドポイント５２に送られる。このように、ライン４９のパケットストリームは、図６のストリーム２（例えば、パケットは結合されていない）のようになり、ライン５１のパケットストリームは図６のストリーム３のようになる。
【００３０】
ここに開示した方法とデバイスを利用することにより、一部のPCIシステムの効率は、パケットを結合しない従来システムに対して５−１０％高くなる。いくつかある利点の中で特に、ここに開示したいろいろな実施形態をチップセットサウスブリッジで使用したとき、ポート利用効率が大幅に向上し、これにより同じデバイス中のトラフィックが大きい周辺部により大きな帯域幅を使用することができる。
【００３１】
言うまでもなく、いろいろな実施形態の多数の特徴と利点をその詳細な構造と機能と共に説明したが、この開示は例示である。添付したクレームの文言の広く一般的な意味により表されるように、これらのいろいろな実施形態の範囲から逸脱することなく、詳細、特に構造と部分管理において変更することが可能である。
【図面の簡単な説明】
【００３２】
【図１】複数パケットを単一パケットに結合する方法の一実施形態を示すフローチャートである。
【図２】複数の結合パケットを含むパケットの一実施形態を示す図である。
【図３】複数パケットの単一パケットへの結合が完了するまでリンクの再同期を遅らせる方法の一実施形態を示すフローチャートである。
【図４】ここに開示したいろいろな実施形態による、パケットを結合及び分割できる、第２のPCIエクスプレスデバイスに結合した第１のPCIエクスプレスデバイスを示す図である。
【図５】パケットを結合及び分割することができる複数のPCIエクスプレスデバイスを含むシステムを示す図である。
【図６】図５のシステムにおいて、デバイスの結合機能の有効化（enablement）に基づく異なるデータストリームを示す図である。
【図１】
2006526363.tif 000003
【図２】
2006526363.tif 000004
【図３】
2006526363.tif 000005
【図４】
2006526363.tif 000006
【図５】
2006526363.tif 000007
【図６】
2006526363.tif 000008
【国際調査報告】
2006526363.tif 000009
2006526363.tif 000010
2006526363.tif 000011