(57)【要約】【課題】ＰＣＩエクスプレス・パケット・ダイジェストの変更のデバイス、システムおよび方法を提供する。【解決手段】例えば、装置は、ダイジェスト部の１つ以上のビットが非ＥＣＲＣデータを搬送するクレジット・ベース・フロー制御相互接続トランザクション層パケットを生成する、クレジット・ベース・フロー制御相互接続デバイスを含む。【選択図】図３
2010532607.tif 000002
【特許請求の範囲】
【請求項１】
周辺コンポーネント相互接続（ＰＣＩ）エクスプレス・パケット・ダイジェストを変更する装置であって、
非エンド・ツー・エンド巡回冗長検査（ＥＣＲＣ）データをダイジェスト部の１つ以上のビットが搬送するクレジット・ベース・フロー制御相互接続トランザクション層パケットを生成する、クレジット・ベース・フロー制御相互接続デバイス
を含む装置。
【請求項２】
前記非ＥＣＲＣデータは、特定用途向けデータを含む、請求項１に記載の装置。
【請求項３】
前記トランザクション層パケットのヘッダは、前記ダイジェスト部は非ＥＣＲＣデータを搬送するということのインジケーションを含む、請求項１に記載の装置。
【請求項４】
前記トランザクション層パケットのヘッダは、前記ダイジェスト部は特定用途向けデータを搬送するということのインジケーションを含む、請求項１に記載の装置。
【請求項５】
前記トランザクション層パケットのヘッダは、受信デバイスは前記ダイジェスト部において搬送される前記非ＥＣＲＣデータを復号するべきであるということのインジケーションを含む、請求項１に記載の装置。
【請求項６】
前記トランザクション層パケットのヘッダは、中間にあるデバイスは前記トランザクション層パケットのＥＣＲＣ検査の結果を無視するべきであるということのインジケーションを含む、請求項１に記載の装置。
【請求項７】
前記クレジット・ベース・フロー制御相互接続デバイスは、ＰＣＩエクスプレス・デバイスを含み、前記クレジット・ベース・フロー制御相互接続トランザクション層パケットは、ＰＣＩエクスプレス・トランザクション層パケットを含む、請求項１に記載の装置。
【請求項８】
周辺コンポーネント相互接続（ＰＣＩ）エクスプレス・パケット・ダイジェストを変更する方法であって、
非ＥＣＲＣデータをダイジェスト部の１つ以上のビットが搬送するクレジット・ベース・フロー制御相互接続トランザクション層パケットを生成するステップ
を含む方法。
【請求項９】
前記生成するステップは、
前記非ＥＣＲＣデータを、ＥＣＲＣデータに対応するダイジェスト・スペースに入れるステップ
を含む、請求項８に記載の方法。
【請求項１０】
前記生成するステップは、
前記ダイジェスト部は非ＥＣＲＣデータを搬送するということのインジケーションを、前記トランザクション層パケットのヘッダに入れるステップ
を含む、請求項８に記載の方法。
【請求項１１】
前記生成するステップは、
前記ダイジェスト部は特定用途向けデータを搬送するということのインジケーションを、前記トランザクション層パケットのヘッダに入れるステップ
を含む、請求項８に記載の方法。
【請求項１２】
前記生成するステップは、
受信デバイスは前記ダイジェスト部において搬送される前記非ＥＣＲＣデータを復号するべきであるということのインジケーションを、前記トランザクション層パケットのヘッダに入れるステップ
を含む、請求項８に記載の方法。
【請求項１３】
前記生成するステップは、
中間にあるデバイスは前記トランザクション層パケットのＥＣＲＣ検査の結果を無視して前記トランザクション層パケットを転送するべきであるということのインジケーションを、前記トランザクション層パケットのヘッダに入れるステップ
を含む、請求項８に記載の方法。
【請求項１４】
前記クレジット・ベース・フロー制御相互接続トランザクション層パケットを前記生成するステップは、ＰＣＩエクスプレス・トランザクション層パケットを生成するステップを含む、請求項８に記載の方法。
【請求項１５】
特定用途向けデータを、ヘッダ・クレジットを使用して送信するステップ
を含む、請求項８に記載の方法。
【請求項１６】
周辺コンポーネント相互接続（ＰＣＩ）エクスプレス・パケット・ダイジェストを変更するシステムであって、
非ＥＣＲＣデータをダイジェスト部の１つ以上のビットが搬送するクレジット・ベース・フロー制御相互接続トランザクション層パケットを生成する、クレジット・ベース・フロー制御相互接続デバイスと、
前記トランザクション層パケットを転送するクレジット・ベース・フロー制御相互接続リンクと、
を含むシステム。
【請求項１７】
前記トランザクション層パケットのヘッダ内のインジケーションに基づき、前記クレジット・ベース・フロー制御相互接続リンクは、前記トランザクション層パケットのＥＣＲＣ検査の結果を無視する、請求項１６に記載のシステム。
【請求項１８】
前記トランザクション層パケットを受信して前記ダイジェスト部から前記非ＥＣＲＣデータを抽出する、さらなるクレジット・ベース・フロー制御相互接続デバイス
をさらに含む、請求項１６に記載のシステム。
【請求項１９】
前記トランザクション層パケットのヘッダ内のインジケーションに基づき、さらなるクレジット・ベース・フロー制御相互接続リンクは、前記トランザクション層パケットのＥＣＲＣ検査の実行を回避する、請求項１８に記載のシステム。
【請求項２０】
前記クレジット・ベース・フロー制御相互接続デバイスは、ＰＣＩエクスプレス・デバイスを含み、前記クレジット・ベース・フロー制御相互接続トランザクション層パケットは、ＰＣＩエクスプレス・トランザクション層パケットを含み、前記クレジット・ベース・フロー制御相互接続リンクは、ＰＣＩエクスプレス・リンクを含む、請求項１６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明のいくつかの実施形態は、周辺コンポーネント相互接続（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）エクスプレス（ＰＣＩｅ：ＰＣＩ  Ｅｘｐｒｅｓｓ）を使用する通信の分野に関する。
【背景技術】
【０００２】
コンピュータ・システムは、例えば、プロセッサと、グラフィックス・カード、メモリ・ユニットおよび同様のものなどの他のユニットとの間など、デバイス間を接続することができるＰＣＩエクスプレス（ＰＣＩｅ）ホスト・ブリッジを含むことがある。ＰＣＩｅは、クレジット・ベース・フロー制御（ｃｒｅｄｉｔ−ｂａｓｅｄ  ｆｌｏｗ  ｃｏｎｔｒｏｌ）を用い、高速シリアル相互接続を通してパケット化データを転送することを可能にする、入出力（Ｉ／Ｏ：Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）プロトコルである。ＰＣＩｅ通信は、階層プロトコルを利用するものであり、物理層（デバイス間のリンクを提供する）、データ・リンク層（パケット順序制御、データ保護および確認信号を提供する）、およびトランザクション層を含む。トランザクション層において、ＰＣＩｅトランザクション層パケット（ＴＬＰ：Ｔｒａｎｓａｃｔｉｏｎ  Ｌａｙｅｒ  Ｐａｃｋｅｔ）は、パケット・ヘッダ、データ・ペイロードおよび任意選択のパケット・ダイジェストを含むことがある。パケット・ダイジェストは、エンド・ツー・エンド巡回冗長検査（ＥＣＲＣ：Ｅｎｄ−ｔｏ−Ｅｎｄ  Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）情報を含むことができ、フロー制御のためのヘッダ・クレジット下に含まれる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
残念ながら、小さなデータ・ペイロードを有するＰＣＩｅパケットが大きなリンク・オーバーヘッドをもたらすこともある。例えば、小さなデータ・ペイロードを有するＰＣＩｅパケットは、データ・クレジットを十分に利用することなくヘッダ・クレジットおよびデータ・クレジット両方を消費し、その結果リンク・オーバーヘッドの一因となる。
【課題を解決するための手段】
【０００４】
本発明のいくつかの実施形態は、例えば、ＰＣＩエクスプレス（ＰＣＩｅ）パケット・ダイジェストの変更のデバイス、システムおよび方法を含む。
【０００５】
いくつかの実施形態では、装置は、非ＥＣＲＣデータをダイジェスト部の１つ以上のビットが搬送するクレジット・ベース・フロー制御相互接続トランザクション層パケット（ｃｒｅｄｉｔ−ｂａｓｅｄ  ｆｌｏｗ  ｃｏｎｔｒｏｌ  ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｔｒａｎｓａｃｔｉｏｎ  Ｌａｙｅｒ  Ｐａｃｋｅｔ）を生成する、クレジット・ベース・フロー制御相互接続デバイスを含む。
【０００６】
いくつかの実施形態では、非ＥＣＲＣデータは特定用途向けデータを含む。
【０００７】
いくつかの実施形態では、トランザクション層パケットのヘッダは、ダイジェストが非ＥＣＲＣデータを搬送するということのインジケーションを含む。
【０００８】
いくつかの実施形態では、トランザクション層パケットのヘッダは、ダイジェストが特定用途向けデータを搬送するということのインジケーションを含む。
【０００９】
いくつかの実施形態では、トランザクション層パケットのヘッダは、受信デバイスはダイジェスト内で搬送される非ＥＣＲＣを復号するべきであるということのインジケーションを含む。
【００１０】
いくつかの実施形態では、トランザクション層パケットのヘッダは、中間にあるデバイスはトランザクション層パケットのＥＣＲＣ検査の結果を無視するべきであるということのインジケーションを含む。
【００１１】
いくつかの実施形態では、クレジット・ベース・フロー制御相互接続デバイスは、ＰＣＩエクスプレス・デバイスを含み、クレジット・ベース・フロー制御相互接続トランザクション層パケットは、ＰＣＩエクスプレス・トランザクション層パケットを含む。
【００１２】
いくつかの実施形態では、方法は、非ＥＣＲＣデータをダイジェスト部の１つ以上のビットが搬送するクレジット・ベース・フロー制御相互接続トランザクション層パケットを生成することを含む。
【００１３】
いくつかの実施形態では、この生成は、非ＥＣＲＣデータをＥＣＲＣデータに対応するダイジェスト・スペースに入れることを含む。
【００１４】
いくつかの実施形態では、この生成は、前記ダイジェストは非ＥＣＲＣデータを搬送するということのインジケーションを、トランザクション層パケットのヘッダに入れることを含む。
【００１５】
いくつかの実施形態では、この生成は、前記ダイジェストは特定用途向けデータを搬送するということのインジケーションを、トランザクション層パケットのヘッダに入れることを含む。
【００１６】
いくつかの実施形態では、この生成は、受信デバイスはダイジェスト内で搬送される非ＥＣＲＣを復号するべきであるということのインジケーションを、トランザクション層パケットのヘッダに入れることを含む。
【００１７】
いくつかの実施形態では、この生成は、中間にあるデバイスは前記トランザクション層パケットのＥＣＲＣ検査の結果を無視してトランザクション層パケットを転送するべきであるということのインジケーションを、トランザクション層パケットのヘッダに入れることを含む。
【００１８】
いくつかの実施形態では、クレジット・ベース・フロー制御相互接続トランザクション層パケットを生成することは、ＰＣＩエクスプレス・トランザクション層パケットを生成することを含む。
【００１９】
いくつかの実施形態では、この生成は、ヘッダ・クレジットを使用して特定用途向けデータを送信することを含む。
【００２０】
いくつかの実施形態では、システムは、非ＥＣＲＣデータをダイジェスト部の１つ以上のビットが搬送するクレジット・ベース・フロー制御相互接続トランザクション層パケットを生成する、クレジット・ベース・フロー制御相互接続デバイスと、トランザクション層パケットを転送するクレジット・ベース・フロー制御相互接続リンクとを含む。
【００２１】
いくつかの実施形態では、トランザクション層パケットのヘッダ内のインジケーションに基づき、クレジット・ベース・フロー制御相互接続リンクは、前記トランザクション層パケットのＥＣＲＣ検査の結果を無視する。
【００２２】
いくつかの実施形態では、システムはさらに、トランザクション層パケットを受信してダイジェストから非ＥＣＲＣデータを抽出する、さらなるクレジット・ベース・フロー制御相互接続デバイスを含む。
【００２３】
いくつかの実施形態では、トランザクション層パケットのヘッダ内のインジケーションに基づき、さらなるクレジット・ベース・フロー制御相互接続リンクは、前記トランザクション層パケットのＥＣＲＣ検査の実行を回避する。
【００２４】
いくつかの実施形態では、クレジット・ベース・フロー制御相互接続デバイスはＰＣＩエクスプレス・デバイスを含み、クレジット・ベース・フロー制御相互接続トランザクション層パケットはＰＣＩエクスプレス・トランザクション層パケットを含み、クレジット・ベース・フロー制御相互接続リンクはＰＣＩエクスプレス・リンクを含む。
【００２５】
いくつかの実施形態は、例えば、コンピュータ可読プログラムを含むコンピュータ使用可能媒体を含んだコンピュータ・プログラム製品を含み、このコンピュータ可読プログラムは、コンピュータ上で実行されると本発明のいくつかの実施形態に従った方法をそのコンピュータに実行させる。
【００２６】
本発明のいくつかの実施形態は、その他および追加の、あるいはそのいずれかの利益および利点あるいはそのいずれかを提供すると考えられる。
【００２７】
説明が平易かつ明瞭となるよう、図面に示されている構成要素は、必ずしも原寸に比例して示されていない。例えば、明瞭に示すために、一部の構成要素の寸法を他の構成要素と比べて大きくしていることもある。さらに、参照番号は、対応する構成要素または類似の構成要素を示すために、複数の図面の間で繰り返されることもある。さらに、図面に示される複数ブロックのうちの一部が、単一の機能に組み合わされてもよい。以下に図面について記載する。
【図面の簡単な説明】
【００２８】
【図１】本発明の例証となる実施形態による、変更されたＰＣＩエクスプレス・パケット・ダイジェストを利用できるシステムの概略ブロック図である。
【図２】本発明の例証となる実施形態による、変更されたＰＣＩエクスプレス・パケットの構造の概略ブロック図である。
【図３】本発明の例証となる実施形態による、変更されたＰＣＩエクスプレス・パケット・ダイジェストを利用する方法の概略流れ図である。
【発明を実施するための形態】
【００２９】
本発明のいくつかの実施形態が完全に理解されるよう、以下の詳細な説明には多数の具体的な詳細事項が記載されている。しかし、当業者には当然のことながら、本発明の実施形態はこれらの具体的な詳細事項を用いずに実践されてもよい。他の場合には、説明が不明瞭にならないよう、周知の方法、手順、コンポーネント、ユニットおよび回路、あるいはそのいずれかは詳細には記載されていない。本願明細書で開示される実施形態および図面は、制限的なものではなく実例であると見なされるものとする。
【００３０】
「処理」、「演算」、「計算」、「判断」または同様のものなどの用語を用いる本願明細書の説明の各部分は、コンピューティング・システムのレジスタおよびメモリあるいはそのいずれかの内部で電子などの物理量として表されるデータを、コンピューティング・システムのメモリ、レジスタまたはその他そのような情報ストレージ、伝送デバイスもしくは表示デバイスの内部で同じように物理量として表される他のデータへと操作および変換あるいはそのいずれかを行う、コンピュータもしくはコンピューティング・システムの、または同様の電子コンピューティング・デバイスの動作およびプロセス、あるいはそのいずれかを指す。さらに、本願明細書において、「複数の」という用語は、２つ以上のアイテムを表現するために使用され得る。例えば、複数のアイテムは２つ以上のアイテムを含む。
【００３１】
本願明細書の説明の各部分は、例証のために、有線リンクおよび有線通信、あるいはそのいずれかに関する場合もあるが、本発明の実施形態はこの点で制限されず、１つ以上の有線または無線リンクを含んでも、ワイヤレス通信の１つ以上のコンポーネントを利用しても、無線通信の１つ以上の方法またはプロトコル、または同様のものを利用してもよい。本発明のいくつかの実施形態は、有線通信および無線通信あるいはそのいずれかを利用するとよい。
【００３２】
本願明細書で使用される「送信デバイス」または「送信エンドポイント」または「送信ポート」という用語は、例えば、ＰＣＩｅデータ、パケットおよび他の情報あるいはそのいずれかを送信または転送することができる、ＰＣＩｅデバイス、ＰＣＩｅエンドポイント、ＰＣＩｅポート、またはその他のＰＣＩｅユニットもしくはＰＣＩｅ互換のユニットを含む。本願明細書で使用される「受信デバイス」または「受信エンドポイント」または「受信ポート」という用語は、例えば、ＰＣＩｅデータ、パケットおよび他の情報あるいはそのいずれかを受信すること、またはそれが転送されてくることが可能な、ＰＣＩｅデバイス、ＰＣＩｅエンドポイント、ＰＣＩｅポート、またはその他のＰＣＩｅユニットもしくはＰＣＩｅ互換のユニットを含む。
【００３３】
本願明細書で使用される「データ・ペイロード」という用語は、例えば、実データ（ｓｕｂｓｔａｎｔｉｖｅ  ｄａｔａ）もしくは特定用途向けデータもしくは同様のものを含むＰＣＩｅトランザクション層パケット（ＴＬＰ）の部分もしくは内容、メタ・データ、構造情報、制御情報を含まないＴＬＰ部分もしくはＴＬＰ内容、非ヘッダのＴＬＰ部分もしくはＴＬＰ内容、非ダイジェストのＴＬＰ部分もしくはＴＬＰ内容、ＴＬＰの非ヘッダもしくは非ダイジェスト部、または、特定用途向けデータもしくは実データを格納する、もしくは格納することができる、もしくは格納もしくは搬送するよう指定されているＴＬＰの他の部分、セグメント、フィールドもしくはスペースを含む。
【００３４】
本願明細書で使用される「ダイジェスト」または「パケット・ダイジェスト」または「ＰＣＩｅパケット・ダイジェスト」または「ＰＣＩｅ  ＴＬＰダイジェスト」または「ダイジェスト部」または「ダイジェスト・フィールド」または「ダイジェスト・セグメント」という用語は、例えば、任意選択でＴＬＰに付加されるＰＣＩｅ  ＴＬＰの部分もしくは内容、全体もしくは一部分においてＥＣＲＣ、ＣＲＣ、もしくは他のデータ保護メカニズム、もしくはデータ点検メカニズム、もしくはデータ保全メカニズム、もしくはデータ検証メカニズムに使用されるＴＬＰ部分もしくはＴＬＰ内容、ＴＬＰの最後にある、もしくはＴＬＰに付加されている、もしくはＴＬＰデータ・ペイロードに付加されている、３２ビットの部分もしくは内容もしくは他のサイズの部分もしくは内容、ＴＬＰの最後の３２ビットに該当するスペース、または、例えばヘッダ・フロー制御クレジットを利用する、ＴＬＰの任意の非ヘッダおよび非データ・ペイロード部分もしくは内容を含み得る。
【００３５】
本願明細書で使用される「ダブル・ワード」または「Ｄ（Ｄｏｕｂｌｅ）ワード」または「ＤＷ（Ｄｏｕｂｌｅ  Ｗｏｒｄ）」という用語は、例えば、４バイト、すなわち３２ビットのサイズのデータ・ユニットを含む。
【００３６】
本願明細書で使用される、「非ＥＣＲＣデータ」または「非ＥＣＲＣ情報」または「非ＣＲＣデータ」または「非ＣＲＣ情報」という用語は、例えば、ＥＣＲＣ目的にもＣＲＣ目的にも使用されないデータもしくは情報、ＥＣＲＣもしくはＣＲＣデータ以外のデータもしくは情報、実データ、特定用途向けデータ、または同様のものを含む。
【００３７】
例証のために、本願明細書の説明の各部分はＰＣＩｅ通信またはデバイスに関するが、本発明の実施形態は、他の種類の通信またはデバイスと共に使用されてもよい。例えば、パケット化データの高速シリアル相互接続を通した転送を利用する通信もしくはデバイス、フロー制御ベースのリンク管理を利用する通信もしくはデバイス、クレジット・ベース・フロー制御を利用する通信またはデバイス、完全シリアル・インターフェースを利用する通信もしくはデバイス、属性付きパケットと共に実装されるスプリット・トランザクション・プロトコルを利用する通信もしくはデバイス、改良されたパケット転送もしくは最適なパケット転送のためにパケットに優先順位をつける通信もしくはデバイス、１つ以上のレーンを有するスケーラブル・リンク（例えばポイント・ツー・ポイント接続）を利用する通信もしくはデバイス、高速シリアル相互接続を利用する通信もしくはデバイス、種々のトラフィック・タイプの区別を利用する通信またはデバイス、高信頼性のデータ転送メカニズムを利用する（例えば、シーケンス番号およびエンド・ツー・エンド巡回冗長検査（ＥＣＲＣ）あるいはそのいずれかを使用する）通信もしくはデバイス、転送データの保全性を実現するためにリンク層を利用する通信もしくはデバイス、２つの低電圧差動駆動信号ペア（例えば送信ペアおよび受信ペア）の物理層を利用する通信もしくはデバイス、レーン幅および動作周波数のネゴシエーションを含むリンク初期化を利用する通信もしくはデバイス、受信側で受信バッファがパケットを受信できることが既知であるときのみデータ・パケットの伝送を許可する通信もしくはデバイス、リクエスト・パケットおよびレスポンス・パケットあるいはそのいずれかを利用する通信もしくはデバイス、メッセージ・スペース、メッセージ信号割り込み（ＭＳＩ：Ｍｅｓｓａｇｅ  Ｓｉｇｎａｌｅｄ  Ｉｎｔｅｒｒｕｐｔ）およびインバンド・メッセージあるいはそのいずれかを利用する通信もしくはデバイス、ソフトウェア層コンフィグレーション・スペースを利用する通信もしくはデバイス、最大ペイロード・サイズ（ＭＰＳ：Ｍａｘｉｍｕｍ  Ｐａｙｌｏａｄ  Ｓｉｚｅ）パラメータを利用する通信もしくはデバイス、または同様のものなどである。
【００３８】
概説として、本発明のいくつかの実施形態は、変更されたＰＣＩｅプロトコルを提供し、例えばデータ・クレジットを消費することなくデータ・ペイロードを搬送するためなど、ＴＬＰダイジェストの変更された使用法を可能にする。変更されたＰＣＩｅプロトコルは、ＥＣＲＣに関するＴＬＰダイジェストの従来の使用法の代わりに、またはそれに加えて、変更されたＴＬＰダイジェストの（またはそのＴＬＰダイジェストに対応するスペースもしくは通信部の）種々の利用モデルを可能にする。いくつかの実施形態は、１Ｄワードまたは１Ｄワード以下の一般的内容（ｇｅｎｅｒｉｃ  ｃｏｎｔｅｎｔ）、例えば、データ・クレジットもしくは他のデータ・リソースを消費してはならない実情報もしくはデータ、制御情報もしくはデータ、およびデータ・ペイロード、あるいはそのいずれかを搬送または転送または格納するために、ＴＬＰダイジェストに対応するパケット・スペースを利用する。変更されたＴＬＰダイジェストを使用して搬送できる適切に小さなデータ・ペイロード伝送の例証となるいくつかの例には、状態インジケーション（ｓｔａｔｕｓ  ｉｎｄｉｃａｔｉｏｎ）、レジスタ・データ、保護キーなどがある。いくつかの実施形態では、小さなデータ・ペイロードを有するＰＣＩｅ  ＴＬＰは、例えばパケット・ダイジェストに対応するスペース内でデータを伝送してヘッダ・フロー制御クレジットのみを消費することによって、実質的にデータ・リソースを消費することなく送信、輸送および受信される。
【００３９】
本願明細書の説明の各部分は、例証のために、ＰＣＩｅプロトコルを利用する通信に関することもあるが、本発明の実施形態は、例えば、ＥＣＲＣが任意であるかもしくは重要でない通信システムもしくはプロトコル、信頼できるリンクを利用する通信システムもしくはプロトコル、または同様のものにおいてなど、他の適切な通信システム、デバイス、方法およびプロトコル、あるいはそのいずれかと共に使用することもできる。一例として、ＰＣＩエクスプレス・リンクは、リンク層ＣＲＣ（ＬＣＲＣ：ｌｉｎｋ  ｌａｙｅｒ  ＣＲＣ）をサポートしてＰＣＩｅパケットに関しデータ・リンク層での誤り検出を提供しており、トランザクション層では、ＴＬＰダイジェスト内などのさらなるＥＣＲＣ保護は任意選択である。さらに、ＰＣＩｅホストに直接結合されている複数デバイスのＰＣＩエクスプレス・システムにおいて、ならびに中間にあるコンポーネントが実質的にＴＬＰ内容の保存および転送あるいはそのいずれかを行うのに信頼できる場合、あるいはそのいずれかで、ＥＣＲＣは重要でないこともある。
【００４０】
いくつかの実施形態では、トランザクション・イニシエータまたは送信デバイスが、変更されたＰＣＩｅプロトコルに従ってＴＬＰを構成、作成または生成し、例えばＴＬＰヘッダ内のインジケーション・ビットまたはフラグまたはパラメータを使用して、特定用途向けパケット・ダイジェストの存在を示す。受信エンドポイントまたは受信デバイスは、ＴＬＰヘッダのインジケーションに基づき、パケット・ダイジェストを復号する。中間にあるＰＣＩｅデバイス（例えばＰＣＩｅスイッチ）は、ＰＣＩｅプロトコルおよび変更されたＰＣＩｅプロトコルあるいはそのいずれかに従って、特定用途向けダイジェストを含むＴＬＰの中継、ルーティングおよび転送あるいはそのいずれかを行う。
【００４１】
図１は、本発明の例証となるいくつかの実施形態による、ＰＣＩｅパケット・ダイジェストを利用できるシステム１００のブロック図を概略的に示す。システム１００は、例えば、コンピューティング・デバイス、コンピュータ、パーソナル・コンピュータ（ＰＣ：ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）、サーバ・コンピュータ、クライアント／サーバ・システム、モバイル・コンピュータ、ポータブル・コンピュータ、ラップトップ・コンピュータ、ノートブック型コンピュータ、タブレット・コンピュータ、相互接続された複数のデバイスのネットワーク、または同様のものであっても、もしくはそれらを含んでもよい。
【００４２】
システム１００は、例えばプロセッサ１１１、入力ユニット１１２、出力ユニット１１３、メモリ・ユニット１１４、ストレージ・ユニット１１５、通信ユニット１１６およびグラフィックス・カード１１７を含むとよい。システム１００は、任意選択で、他の適切なハードウェア・コンポーネントおよびソフトウェア・コンポーネント、あるいはそのいずれかを含んでもよい。
【００４３】
プロセッサ１１１は、例えば、中央処理ユニット（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、デジタル・シグナル・プロセッサ（ＤＳＰ：ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）、マイクロプロセッサ、ホスト・プロセッサ、制御器、複数のプロセッサもしくは制御器、チップ、マイクロチップ、１つ以上の回路、電気回路、論理ユニット、集積回路（ＩＣ：ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、特定用途向け集積回路（ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）またはその他任意の適切な多目的もしくは特定プロセッサもしくは制御器を含めばよい。プロセッサ１１１は、例えばシステム１００のオペレーティング・システム（ＯＳ：ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）１７１の、または１つ以上のソフトウェア・アプリケーション１７２の命令を実行するとよい。
【００４４】
入力ユニット１１２は、例えば、キーボード、キーパッド、マウス、タッチ・パッド、スタイラス、マイクロホン、またはその他適切なポインティング・デバイスもしくは入力デバイスを含めばよい。出力ユニット１１３は、例えば、陰極線管（ＣＲＴ：ｃａｔｈｏｄｅ  ｒａｙ  ｔｕｂｅ）モニタもしくはディスプレイ・ユニット、液晶ディスプレイ（ＬＣＤ：ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ）モニタもしくはディスプレイ・ユニット、スクリーン、モニタ、スピーカ、またはその他適切なディスプレイ・ユニットもしくは出力デバイスを含めばよい。グラフィックス・カード１１７は、例えば、グラフィックスもしくはビデオ・プロセッサ、アダプタ、制御器またはアクセラレータを含めばよい。
【００４５】
メモリ・ユニット１１４は、例えば、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み出し専用メモリ（ＲＯＭ：ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、ダイナミックＲＡＭ（ＤＲＡＭ：ｄｙｎａｍｉｃ  ＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤ−ＲＡＭ：ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ）、フラッシュ・メモリ、揮発性メモリ、不揮発性メモリ、キャッシュ・メモリ、バッファ、短期メモリ・ユニット、長期メモリ・ユニット、またはその他適切なメモリ・ユニットもしくはストレージ・ユニットを含めばよい。ストレージ・ユニット１１５は、例えば、ハード・ディスク・ドライブ、フレキシブル・ディスク・ドライブ、コンパクト・ディスク（ＣＤ：ｃｏｍｐａｃｔ  ｄｉｓｋ）ドライブ、ＣＤ−ＲＯＭドライブ、デジタル多用途ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）ドライブ、またはその他適切な取り外し可能なストレージ・ユニットもしくは取り外し不可能なストレージ・ユニットを含めばよい。メモリ・ユニット１１４およびストレージ・ユニット１１５あるいはそのいずれかは、例えば、システム１００により処理されたデータを格納するとよい。
【００４６】
通信ユニット１１６は、例えば、有線もしくは無線のネットワーク・インターフェース・カード（ＮＩＣ：ｎｅｔｗｏｒｋ  ｉｎｔｅｒｆａｃｅ  ｃａｒｄ）、有線もしくは無線のモデム、有線もしくは無線の受信機および送信機あるいはそのいずれか、有線もしくは無線の送受信装置およびトランシーバあるいはそのいずれか、無線周波数（ＲＦ：ｒａｄｉｏ  ｆｒｅｑｕｅｎｃｙ）通信ユニットもしくはトランシーバ、または信号、ブロック、フレーム、送信ストリーム、パケット、メッセージおよびデータあるいはそのいずれかの送信および受信あるいはそのいずれかを行うことができる他のユニットを含めばよい。通信ユニット１１６は、例えば、ダイポール・アンテナ、モノポール・アンテナ、全方向性アンテナ、エンド・フェッド・アンテナ（ｅｎｄ  ｆｅｄ  ａｎｔｅｎｎａ）、円偏波アンテナ、マイクロ・ストリップ・アンテナ、ダイバーシチ・アンテナ、または同様のものなどの１つ以上のアンテナを任意選択で含むか、またはそれと任意選択で関連していてもよい。
【００４７】
いくつかの実施形態では、システム１００のコンポーネントは、例えば、共通の筐体、パッケージ、または同様のものに入れられるとよく、１つ以上の有線または無線リンクを使用して相互接続されるか、または動作可能に関連させられるとよい。他の実施形態では、例えば、システム１００のコンポーネントは、複数または別々のデバイス間に分布してもよく、クライアント／サーバ構成もしくはシステムを使用して実装されてもよく、リモート・アクセス方法を使用して通信してもよく、または同様のことも可能である。
【００４８】
システム１００はさらに、システム１００の複数コンポーネント間、例えば複数のＰＣＩｅエンドポイント間またはデバイス間を接続することができるＰＣＩｅホスト・ブリッジ１２０を含むとよい。ＰＣＩｅホスト・ブリッジ１２０は、メモリ・ブリッジ１２１またはその他のメモリ制御器を含むとよく、それに対してメモリ・ユニット１１４およびグラフィックス・カード１１７あるいはそのいずれかが接続されているとよい。ＰＣＩｅホスト・ブリッジ１２０はさらに、入出力（Ｉ／Ｏ）ブリッジ１２２を含むとよく、それに対して入力ユニット１１２、出力ユニット１１３、ストレージ・ユニット１１５、通信ユニット１１６、および１つ以上のユニバーサル・シリアル・バス（ＵＳＢ：ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）デバイス１１８が接続されるとよい。
【００４９】
システム１００はさらに、複数のＰＣＩｅエンドポイントまたはＰＣＩｅデバイス間を相互接続することができるＰＣＩｅスイッチ１２５を含むとよい。いくつかの実施形態では、ＰＣＩｅスイッチ１２５は、別個またはスタンド・アロンのユニットまたはコンポーネントとして実装されてもよい。他の実施形態では、ＰＣＩｅスイッチ１２５は、ＰＣＩｅホスト・ブリッジ１２０またはその他適切なコンポーネントに統合されても、それと共に組み込まれても、またはそれを使用して他の方法で実装されてもよい。
【００５０】
図１のトポロジまたはアーキテクチャは、例証のために示されており、本発明の実施形態は、その他適切なトポロジまたはアーキテクチャと共に使用されてもよい。例えば、いくつかの実施形態では、メモリ・ブリッジ１２１は、メモリ制御器として実装され、ＰＣＩｅホスト・ブリッジ１２０に含まれるかまたは組み込まれる。いくつかの実施形態では、「ノース・ブリッジ」または「サウス・ブリッジ」が使用され、任意選択で、ＰＣＩｅホスト・ブリッジ１２０および同様のＰＣＩｅホスト・コンポーネントあるいはそのいずれかを含む。いくつかの実施形態では、メモリ・ブリッジ１２１およびＰＣＩｅホスト・ブリッジ１２０（および任意選択でプロセッサ１１１）は、単一または共通の集積回路（ＩＣ）を使用して、または複数のＩＣを使用して実装される。その他適切なトポロジまたはアーキテクチャが使用されてもよい。
【００５１】
ＰＣＩｅホスト・ブリッジ１２０およびＰＣＩｅスイッチ１２５あるいはそのいずれかは、複数のＰＣＩｅエンドポイント間またはＰＣＩｅデバイス間、例えばエンドポイント１４１〜１４５を相互接続するとよい。いくつかのＰＣＩｅデバイスまたはエンドポイント（例えばＰＣＩｅエンドポイント１４１および１４２）が、ＰＣＩｅホスト・ブリッジ１２０によって直接接続され、その一方で、他のＰＣＩｅエンドポイント（例えばＰＣＩｅエンドポイント１４３〜１４５）はＰＣＩｅスイッチ１２５を使用して間接的に接続される。例証のために、エンドポイント１４１は、データをメモリ・ブリッジ１２１へ送信するとよい。したがって、エンドポイント１４１は、本願明細書では「送信エンドポイント」または「送信デバイス」と呼ばれ、その一方で、メモリ・ブリッジ１２１は、本願明細書では「受信エンドポイント」または「受信デバイス」と呼ばれる。
【００５２】
その他のコンポーネントは、送信デバイスおよび受信デバイスあるいはそのいずれかとして動作するとよい。例えば、プロセッサ１１１が送信デバイスであって、メモリ・ユニット１１４が受信デバイスであってもよく、ＵＳＢデバイス１１８が送信デバイスであって、ストレージ・ユニット１１５が受信デバイスであってもよく、メモリ・ブリッジ１２１が受信デバイス（例えば第１のエンドポイントまたはコンポーネントに対する）および送信デバイス（例えば第２のエンドポイントまたはコンポーネントに対する）あるいはそのいずれかとして動作してもよく、または同様のことも可能である。いくつかの実施形態では、受信デバイスは、データまたは制御データを送信デバイスに送り返すことができ、またはその逆も可能である。例えば、送信デバイスと受信デバイスとの間の通信は、一方向または双方向であればよい。
【００５３】
任意選択で、送信デバイスはデバイス・ドライバを利用して動作してもよく、受信デバイスはデバイス・ドライバを利用して動作してもよい。いくつかの実施形態では、デバイス・ドライバ、ならびにＰＣＩｅホスト・ブリッジ１２０およびＰＣＩｅスイッチ１２５は、本発明のいくつかの実施形態による、変更されたＰＣＩｅプロトコル１７５をサポートするとよい。送信デバイスは、ＰＣＩｅポート１５１（「アップストリーム・ポート」または「ダウンストリーム・フェイシング・ポート（ｄｏｗｎｓｔｒｅａｍ−ｆａｃｉｎｇ  ｐｏｒｔ）」）に接続されている（またはそれを含む）。受信デバイスは、ＰＣＩｅポート１５２、例えばＰＣＩｅホスト・ブリッジ１２０のＰＣＩｅポート（「ダウンストリーム・ポート」または「アップストリーム・フェイシング・ポート（ｕｐｓｔｒｅａｍ−ｆａｃｉｎｇ  ｐｏｒｔ）」）に接続されている（またはそれを含む）。
【００５４】
いくつかの実施形態では、パケット１９１は、送信デバイスと受信デバイスとの間の、中間にあるＰＣＩｅデバイスを通過するか、またはそれによって中継されるとよい。例えば、エンドポイント１４５が送信デバイスであってメモリ・ブリッジ１２１が受信デバイスである場合、ＰＣＩｅスイッチ１２５は、送信エンドポイント１４５と受信メモリ・ブリッジ１２１との中間にあるデバイスである。
【００５５】
いくつかの実施形態では、送信デバイスは、変更されたＰＣＩｅプロトコル１７５を使用して、すなわち、データ・フロー制御クレジットまたは追加のデータ・フロー制御クレジットを消費することなくデータ・ペイロードを輸送するために共通または特定用途向けパケット・ダイジェストを利用して、データを受信デバイスへ転送する。例えば、変更されたＰＣＩｅプロトコルに従って、非ＥＣＲＣデータが、ＴＬＰダイジェストに含まれ、ヘッダ・フロー制御クレジットのみを使用して送信されるとよい。送信デバイスは、ダイジェストがパケットに付加されていることを示すため、ダイジェストがＥＣＲＣデータを含まないことを示すため、およびＣＲＣ検査が無視されるべきであることを示すため、またはそのいずれかのための１つ以上のインジケーションをパケット・ヘッダ内に有する、変更されたＴＬＰ１９１を構成する。
【００５６】
いくつかの実施形態では、ＴＬＰダイジェストに対応するスペースは、例えば状態ベクトル（ｓｔａｔｕｓ  ｖｅｃｔｏｒ）（例えば、ノンポステッド・リクエスト（ｎｏｎ−ｐｏｓｔｅｄ  ｒｅｑｕｅｓｔ）へのレスポンスと共に搬送される）、保護キー、エンド・ツー・エンド・フロー制御、またはその他任意の特定用途向け単一ＤＷペイロードなど、種々のタイプの情報を格納または搬送するために使用されるとよい。各実施形態は、例えば、拡張されたＥＣＲＣ保護を必要としないデータを、通常のデータ・ペイロードの代わりにパケット・ダイジェスト内で送信することで、データ保全性を損なうことなく、ダイジェスト・リソースのより最適な利用を可能にすることができる。
【００５７】
いくつかの実施形態は、特定用途向けデータまたはタスクにダイジェスト・スペース（例えばＴＬＰ毎に４バイト）を利用することを可能にし、その用途が当該のデータ・タスクにデータ・ペイロードを利用することを求めない。したがって、いくつかの実施形態は、特定用途向けデータ・ペイロードの使用を減らす。この特定用途向けデータ・ペイロードの使用は、追加のデータ・バッファおよび関連したクレジットあるいはそのいずれかの割り当てを必要とし、さらに理論上のリンク帯域幅の約２０パーセント以下のパケット・オーバーヘッドをもたらす（例えば短いパケット・トラフィックに関して）。本発明の実施形態は、他の利点または利益を提供し得る。
【００５８】
いくつかの実施形態では、変更されたＰＣＩｅプロトコル１７５は、リンクに接続されているデバイス間の効率的なデータ転送のために、フロー制御ベースのリンク管理を利用する。例えば、実質的に各ＰＣＩｅデバイスが、例えば「クレジット」または他の受信バッファ単位の規定を使用して、他のＰＣＩｅデバイス（単数または複数）に、その受信バッファの能力を通知する。伝送される各パケットは、いくらかのクレジットを消費する。時折、受信ＰＣＩｅデバイスは、新たなパケットに利用可能となる（例えば受信バッファからの古いデータの除去によって）バッファ・スペースの追加量（例えば解放されたクレジット）について送信ＰＣＩｅデバイスに最新情報を与える。送信ＰＣＩｅデバイスは、遠隔の受信側によって通知された利用可能なクレジットを累算していき、それと、送信デバイスがそれまでにパケットを送信して消費したクレジットの総数とを比較する。送信デバイスは、受信デバイス側に利用可能なクレジットが十分ある場合に限り、新たなパケットを送信することができる。クレジットの不足は、伝送の停滞を招き、パフォーマンスの低下につながる。いくつかの実施形態に従い、変更されたＰＣＩｅプロトコル１７５は、送信ＰＣＩｅデバイスが、特定用途向けデータをＴＬＰダイジェストに対応するスペースまたはその一部（例えばＥＣＲＣ部）に格納できるようにし、その結果、ＴＬＰ内でさらなる量の実データを送信して、利用可能なクレジットをより効率的に利用できるようにする。
【００５９】
変更されたＰＣＩｅプロトコル１７５は、ＰＣＩｅ  ＴＬＰヘッダ（例えばヘッダ単位）およびＰＣＩｅ  ＴＬＰデータ（例えば１６バイト単位）の別々のクレジットの規定を利用する。ＰＣＩｅ  ＴＬＰは、ヘッダのみを含み、したがって１つのヘッダ・クレジットのみを消費してもよい。または、データ・ペイロードを有するＰＣＩｅ  ＴＬＰが、１つのヘッダ・クレジットおよびデータ・ペイロード・サイズに等しいいくつかのデータ・クレジットを消費してもよい。ＰＣＩｅ  ＴＬＰダイジェスト（例えばＥＣＲＣに使用される１ＤＷ）は、ヘッダ・クレジットに収まり、データ・クレジットの消費は必要としない。したがって、いくつかの実施形態では、特定用途向けデータを搬送および転送するためにＴＬＰダイジェストを使用することで、データ・クレジットが節約される。このように、いくつかの実施形態は、データ・バッファ消費およびクレジット消費あるいはそのいずれかを軽減するために、ヘッダ・クレジットとデータ・クレジットとを分ける、または区別するＰＣＩｅメカニズムを利用する。これは例えば特定用途向けデータ（例えば非ＥＣＲＣデータ）をヘッダ・クレジット（単数または複数）に含まれるＰＣＩｅ  ＴＬＰの一部に（例えばダイジェストまたはダイジェストの一部に）格納して搬送することによる。
【００６０】
図２は、本発明の例証となるいくつかの実施形態による、変更されたＴＬＰダイジェストを含むＰＣＩｅパケット２１０の構造を概略的に示す。本願明細書の説明の各部分は、例証のために、６４ビット・アドレッシングを利用するＰＣＩｅ  ＴＬＰ構造に関するが、本発明の実施形態はこの点で制限されず、他のＰＣＩｅ  ＴＬＰ構造、例えば３２ビット・アドレッシングを利用する構造またはその他適切な構造もしくはサイズと共に使用されてもよい。
【００６１】
パケット２１０は、４ダブル・ワードの構造であり、ヘッダ部２２０、データ部２３０およびダイジェスト部２４０を含む。第１の行２１１は、バイト・オフセット（例えば＋０、＋１、＋２および＋３）を示し、第２の行２１２は、ビット数（例えば０〜７まで番号付けされた８ビット）を示す。ヘッダ２２０は、行２１３および２１４に示されているように、８バイトを占有する制御情報のフィールド（例えば、フォーマット・フィールド、タイプ・フィールド、長さフィールド、ＩＤフィールド、タグ・フィールドおよび同様のものを含む）を含む。行２１５および２１６は、６４ビット・アドレス、例えば、予約されている下位２ビットを有するリクエスト・アドレスを含む。行２１３〜２１６は、パケット２１０のヘッダ部２２０に当たる。
【００６２】
適切であれば、ＴＬＰ２１０のデータ部２３０は、ペイロード・データを搬送するために使用される。いくつかのＴＬＰは、データ・ペイロード部２３０を含むことがあり、その一方で、他のＴＬＰは、データ・ペイロード部２３０を含まないこともある。クレジット・ベース・フロー制御プロトコルに従い、ＴＬＰのデータ部２３０をデータ転送に利用するにはデータ・フロー制御クレジットが必要であり、非常に小さなデータ・ペイロードには効率的でないと考えられる。
【００６３】
ダイジェスト部２４０は、ＴＬＰに付加されてもよい任意選択のＴＬＰダイジェストを含む。いくつかの実施形態では、パケット２１０は、追加の実データまたは非ＥＣＲＣデータを含み、その格納および搬送あるいはそのいずれかが、ＴＬＰダイジェストに対応するスペースにおいて行われる。ダイジェスト２４０内の追加スペースは、ＥＣＲＣ情報を格納せず、代わりに、他の情報または代わりの情報、例えば特定用途向けデータまたは非ＥＣＲＣデータを格納する。
【００６４】
いくつかの実施形態では、変更されたＴＬＰ２１０のヘッダは、特定用途向けデータまたは非ＥＣＲＣデータを有するＴＬＰダイジェストの存在を示す１つ以上のインジケーション・ビットまたはフラグまたはフィールドを含む。例えば、ＴＬＰダイジェスト（ＴＤ：ＴＬＰ  Ｄｉｇｅｓｔ）インジケーション・ビット２９９がダイジェストの存在を示すとよい。例えば、ダイジェストが特定用途向けデータもしくは非ＥＣＲＣデータを含むことを示すため、ダイジェストがＥＣＲＣ情報を含まないことを示すため、ＥＣＲＣ検査が無視されるべきであることを示すため、およびＴＬＰダイジェストに対応するスペースもしくはそのスペースの定義済み部分から実データもしくは非ＥＣＲＣデータが読み取りまたは収集されるべきである（例えば受信デバイスによって）ことを示すため、あるいはそのいずれかのために、ヘッダ２２０の指定された１つ以上のビットまたはフラグもしくはフィールド、例えば予約されているビット２９７および予約されているフィールド２９８あるいはそのいずれかが使用されてもよい。
【００６５】
図３は、本発明の例証となるいくつかの実施形態による、変更されたＰＣＩエクスプレス・パケット・ダイジェストを利用する方法３００の概略流れ図である。本方法の各工程は、例えば、図１のシステム１００によって、またはその他適切なユニット、デバイスおよびシステムあるいはそのいずれかによって、あるいはシステム１００と、その他適切なユニット、デバイスおよびシステムあるいはそのいずれかとの両方によって、使用されればよい。
【００６６】
いくつかの実施形態において、本方法は、特定用途向けダイジェストを有するＰＣＩｅ  ＴＬＰを構成または生成することを含む（ブロック３１０）。例えば、特定用途向けダイジェストは、パケットのダイジェスト部に対応するスペース内で搬送される非ＥＣＲＣデータまたは一般的データまたは特定用途向けデータを含めばよい。例えば、非ＥＣＲＣデータは、ＥＣＲＣデータに対応する（またはそれにあらかじめ割り当てられた）ダイジェスト・スペースに入れられるか、または格納されるとよい。
【００６７】
ブロック３１２に示されているように、本方法は、特定用途向けダイジェストをＴＬＰのヘッダ内で示すことを含む。例えば、ＴＤインジケーション・ビットまたはフィールド、および予約されている、もしくは特定用途向けのインジケーション・ビットまたはフィールド、あるいはそのいずれかが、ダイジェスト内に特定用途向けデータが存在することをパケット・ヘッダ内で示すよう使用される。いくつかの実施形態では、ＴＤインジケーション・ビット内の「１」という値が、ダイジェストの存在を示すとよく、特定用途向けインジケーション・ビットまたはフラグまたはフィールドがさらに、ダイジェスト・タイプまたはダイジェスト長を示すとよい。他の実施形態では、ＴＤインジケーション・ビットにおける「ゼロ」という値は非ＥＣＲＣダイジェストを示すとよい。その他適切な値またはインジケーションが使用されてもよい。
【００６８】
ブロック３１４に示されているように、本方法は、特定用途向けダイジェストに含まれるデータを、ヘッダ・フロー制御クレジットを使用して送信することを含むとよい。ＴＬＰダイジェストに対応するスペースに特定用途向けデータが含まれれば、そのようなデータはヘッダ・クレジットに含まれ、データ・クレジットを消費しない。それに対して、特定用途向けデータがデータ・ペイロードとして規則どおりに送信されると、１つ以上のデータ・クレジットが消費される（例えば、ダイジェストの存在にかかわらずＴＬＰヘッダにより消費されるヘッダ・クレジットに加えて）。
【００６９】
ブロック３１６で示されているように、ＴＬＰダイジェストの処理は、例えばＰＣＩｅデバイスが受信デバイス（ブロック３１８）または中間にあるデバイス（ブロック３２０）であるか否かによって、異なるとよい。
【００７０】
ブロック３１８に示されているように、受信デバイスは、特定用途向けデータを、変更されたＴＬＰダイジェストから読み取って抽出する。受信デバイスは、例えばＴＤインジケーション・ビットおよび別の指定されたインジケーション・ビットもしくはフィールドによって、あるいはそのいずれかによって示される、ＴＬＰがデータ・ペイロードをメッセージ・ダイジェスト内に含むこと、およびＴＬＰはＥＣＲＣをメッセージ・ダイジェスト内に含まないこと、あるいはそのいずれかの、変更されたＴＬＰのヘッダ内のインジケーションを受信し、復号するとよい。例えば、変更されていないＴＬＰに対してＥＣＲＣ検査が実行される場合には、ＴＤビットにより示されるように、変更されたＴＬＰに対するＥＣＲＣ検査を受信デバイスが無視し（例えば、ＥＣＲＣメカニズムを省略もしくは回避もしくは無効化することによって、またはＥＣＲＣプロセスの結果を無視することによって）、変更されたＴＬＰダイジェストから特定用途向けデータを抽出または復号する。
【００７１】
ブロック３２０で示されているように、中間にあるデバイス（例えば、ＰＣＩｅスイッチまたは目標の受信デバイスではない他のＰＣＩｅデバイス）は、実質的にメッセージ・ダイジェストにアクセスすることまたは変更を加えることなく、ＴＬＰを中継または転送する。中間にあるデバイスがＥＣＲＣ検査をサポートする場合、中間にあるそのデバイスは、例えば変更されたＴＬＰヘッダ内の指定のビットもしくはフラグもしくはフィールド内のインジケーションによって、またはＥＣＲＣを無効にするシステム構成によって、ＥＣＲＣ検査を実行しないよう（またはＥＣＲＣ検査結果を無視するよう）命令されるとよい。
【００７２】
その他適切な動作または複数セットの動作が、本発明の実施形態に従って使用されればよい。
【００７３】
本発明のいくつかの実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェア要素およびソフトウェア要素両方を含んだ実施形態という形をとってよい。いくつかの実施形態はソフトウェアにおいて実装されてもよく、このソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコードまたは同様のものを含むがこれに限定されるものではない。
【００７４】
さらに、本発明のいくつかの実施形態は、コンピュータまたは任意の命令実行システムにより使用される、またはそれに関連して使用されるプログラム・コードを提供するコンピュータ使用可能またはコンピュータ可読媒体からアクセス可能な、コンピュータ・プログラム製品という形をとることができる。例えば、コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、装置もしくはデバイスにより使用される、またはこれらに関連して使用されるプログラムを、含むこと、格納すること、伝達すること、伝播させること、または転送することができる任意の装置であっても、またはそれを含んでもよい。
【００７５】
いくつかの実施形態では、媒体は、電子、磁気、光学、電磁気、赤外線または半導体のシステム（もしくは装置もしくはデバイス）、または伝播媒質とすることができる。コンピュータ可読媒体の例証となるいくつかの例には、半導体または固体メモリ、磁気テープ、取り外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、剛体磁気ディスクおよび光ディスクがある。光ディスクの例証となるいくつかの例には、コンパクト・ディスク−読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｋ−ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、コンパクト・ディスク−リード／ライト（ＣＤ−Ｒ／Ｗ：ｃｏｍｐａｃｔ  ｄｉｓｋ−ｒｅａｄ／ｗｒｉｔｅ）およびＤＶＤがある。
【００７６】
いくつかの実施形態では、プログラム・コードの格納および実行あるいはそのいずれかを行うのに適したデータ処理システムは、例えばシステム・バスを介して、直接的または間接的にメモリ要素に結合された、少なくとも１つのプロセッサを含むとよい。メモリ要素は、例えば、プログラム・コードの実際の実行中に用いられるローカル・メモリと、大容量ストレージと、実行中に大容量ストレージからコードを読み出さなければならない回数を減らすために少なくとも一部のプログラム・コードの一時的なストレージとなることができるキャッシュ・メモリとを含み得る。
【００７７】
いくつかの実施形態では、入出力すなわちＩ／Ｏデバイス（限定されるものではないが、キーボード、ディスプレイ、ポインティング・デバイスなどを含む）を、直接、または介在するＩ／Ｏ制御装置を介してシステムに結合可能である。いくつかの実施形態では、データ処理システムを、例えば介在するプライベート・ネットワークまたはパブリック・ネットワークを介して他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに結合できるよう、ネットワーク・アダプタがシステムに結合されているとよい。モデム、ケーブル・モデムおよびイーサネット（Ｒ）カードが、本発明のいくつかの実施形態におけるネットワーク・アダプタのタイプの例証となる例である。その他適切なコンポーネントが使用されてもよい。
【００７８】
本発明の特定の特徴が、本願明細書において説明および記載されてきたが、当業者には、多数の改良、置換、変更および等価物が想起される可能性がある。
【図１】
2010532607.tif 000003
【図２】
2010532607.tif 000004
【図３】
2010532607.tif 000005
【国際調査報告】
2010532607.tif 000006
2010532607.tif 000007