JP4954330B2 - Pciエクスプレス・パケット・ダイジェストの変更のデバイス、システムおよび方法 - Google Patents

Pciエクスプレス・パケット・ダイジェストの変更のデバイス、システムおよび方法 Download PDF

Info

Publication number
JP4954330B2
JP4954330B2 JP2010513824A JP2010513824A JP4954330B2 JP 4954330 B2 JP4954330 B2 JP 4954330B2 JP 2010513824 A JP2010513824 A JP 2010513824A JP 2010513824 A JP2010513824 A JP 2010513824A JP 4954330 B2 JP4954330 B2 JP 4954330B2
Authority
JP
Japan
Prior art keywords
transaction layer
data
layer packet
ecrc
digest
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010513824A
Other languages
English (en)
Other versions
JP2010532607A (ja
Inventor
ビラン、ギオラ
グラノフスキ、イリヤ
ペルリン、エルチャナン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010532607A publication Critical patent/JP2010532607A/ja
Application granted granted Critical
Publication of JP4954330B2 publication Critical patent/JP4954330B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)

Description

本発明のいくつかの実施形態は、周辺コンポーネント相互接続(PCI:Peripheral Component Interconnect)エクスプレス(PCIe:PCI Express)を使用する通信の分野に関する。
コンピュータ・システムは、例えば、プロセッサと、グラフィックス・カード、メモリ・ユニットおよび同様のものなどの他のユニットとの間など、デバイス間を接続することができるPCIエクスプレス(PCIe)ホスト・ブリッジを含むことがある。PCIeは、クレジット・ベース・フロー制御(credit−based flow control)を用い、高速シリアル相互接続を通してパケット化データを転送することを可能にする、入出力(I/O:Input/Output)プロトコルである。PCIe通信は、階層プロトコルを利用するものであり、物理層(デバイス間のリンクを提供する)、データ・リンク層(パケット順序制御、データ保護および確認信号を提供する)、およびトランザクション層を含む。トランザクション層において、PCIeトランザクション層パケット(TLP:Transaction Layer Packet)は、パケット・ヘッダ、データ・ペイロードおよび任意選択のパケット・ダイジェストを含むことがある。パケット・ダイジェストは、エンド・ツー・エンド巡回冗長検査(ECRC:End−to−End Cyclic Redundancy Check)情報を含むことができ、フロー制御のためのヘッダ・クレジット下に含まれる。
残念ながら、小さなデータ・ペイロードを有するPCIeパケットが大きなリンク・オーバーヘッドをもたらすこともある。例えば、小さなデータ・ペイロードを有するPCIeパケットは、データ・クレジットを十分に利用することなくヘッダ・クレジットおよびデータ・クレジット両方を消費し、その結果リンク・オーバーヘッドの一因となる。
本発明のいくつかの実施形態は、例えば、PCIエクスプレス(PCIe)パケット・ダイジェストの変更のデバイス、システムおよび方法を含む。
いくつかの実施形態では、装置は、非ECRCデータをダイジェスト部の1つ以上のビットが搬送するクレジット・ベース・フロー制御相互接続トランザクション層パケット(credit−based flow control interconnect Transaction Layer Packet)を生成する、クレジット・ベース・フロー制御相互接続デバイスを含む。
いくつかの実施形態では、非ECRCデータは特定用途向けデータを含む。
いくつかの実施形態では、トランザクション層パケットのヘッダは、ダイジェストが非ECRCデータを搬送するということのインジケーションを含む。
いくつかの実施形態では、トランザクション層パケットのヘッダは、ダイジェストが特定用途向けデータを搬送するということのインジケーションを含む。
いくつかの実施形態では、トランザクション層パケットのヘッダは、受信デバイスはダイジェスト内で搬送される非ECRCを復号するべきであるということのインジケーションを含む。
いくつかの実施形態では、トランザクション層パケットのヘッダは、中間にあるデバイスはトランザクション層パケットのECRC検査の結果を無視するべきであるということのインジケーションを含む。
いくつかの実施形態では、クレジット・ベース・フロー制御相互接続デバイスは、PCIエクスプレス・デバイスを含み、クレジット・ベース・フロー制御相互接続トランザクション層パケットは、PCIエクスプレス・トランザクション層パケットを含む。
いくつかの実施形態では、方法は、非ECRCデータをダイジェスト部の1つ以上のビットが搬送するクレジット・ベース・フロー制御相互接続トランザクション層パケットを生成することを含む。
いくつかの実施形態では、この生成は、非ECRCデータをECRCデータに対応するダイジェスト・スペースに入れることを含む。
いくつかの実施形態では、この生成は、前記ダイジェストは非ECRCデータを搬送するということのインジケーションを、トランザクション層パケットのヘッダに入れることを含む。
いくつかの実施形態では、この生成は、前記ダイジェストは特定用途向けデータを搬送するということのインジケーションを、トランザクション層パケットのヘッダに入れることを含む。
いくつかの実施形態では、この生成は、受信デバイスはダイジェスト内で搬送される非ECRCを復号するべきであるということのインジケーションを、トランザクション層パケットのヘッダに入れることを含む。
いくつかの実施形態では、この生成は、中間にあるデバイスは前記トランザクション層パケットのECRC検査の結果を無視してトランザクション層パケットを転送するべきであるということのインジケーションを、トランザクション層パケットのヘッダに入れることを含む。
いくつかの実施形態では、クレジット・ベース・フロー制御相互接続トランザクション層パケットを生成することは、PCIエクスプレス・トランザクション層パケットを生成することを含む。
いくつかの実施形態では、この生成は、ヘッダ・クレジットを使用して特定用途向けデータを送信することを含む。
いくつかの実施形態では、システムは、非ECRCデータをダイジェスト部の1つ以上のビットが搬送するクレジット・ベース・フロー制御相互接続トランザクション層パケットを生成する、クレジット・ベース・フロー制御相互接続デバイスと、トランザクション層パケットを転送するクレジット・ベース・フロー制御相互接続リンクとを含む。
いくつかの実施形態では、トランザクション層パケットのヘッダ内のインジケーションに基づき、クレジット・ベース・フロー制御相互接続リンクは、前記トランザクション層パケットのECRC検査の結果を無視する。
いくつかの実施形態では、システムはさらに、トランザクション層パケットを受信してダイジェストから非ECRCデータを抽出する、さらなるクレジット・ベース・フロー制御相互接続デバイスを含む。
いくつかの実施形態では、トランザクション層パケットのヘッダ内のインジケーションに基づき、さらなるクレジット・ベース・フロー制御相互接続リンクは、前記トランザクション層パケットのECRC検査の実行を回避する。
いくつかの実施形態では、クレジット・ベース・フロー制御相互接続デバイスはPCIエクスプレス・デバイスを含み、クレジット・ベース・フロー制御相互接続トランザクション層パケットはPCIエクスプレス・トランザクション層パケットを含み、クレジット・ベース・フロー制御相互接続リンクはPCIエクスプレス・リンクを含む。
いくつかの実施形態は、例えば、コンピュータ可読プログラムを含むコンピュータ使用可能媒体を含んだコンピュータ・プログラム製品を含み、このコンピュータ可読プログラムは、コンピュータ上で実行されると本発明のいくつかの実施形態に従った方法をそのコンピュータに実行させる。
本発明のいくつかの実施形態は、その他および追加の、あるいはそのいずれかの利益および利点あるいはそのいずれかを提供すると考えられる。
説明が平易かつ明瞭となるよう、図面に示されている構成要素は、必ずしも原寸に比例して示されていない。例えば、明瞭に示すために、一部の構成要素の寸法を他の構成要素と比べて大きくしていることもある。さらに、参照番号は、対応する構成要素または類似の構成要素を示すために、複数の図面の間で繰り返されることもある。さらに、図面に示される複数ブロックのうちの一部が、単一の機能に組み合わされてもよい。以下に図面について記載する。
本発明の例証となる実施形態による、変更されたPCIエクスプレス・パケット・ダイジェストを利用できるシステムの概略ブロック図である。 本発明の例証となる実施形態による、変更されたPCIエクスプレス・パケットの構造の概略ブロック図である。 本発明の例証となる実施形態による、変更されたPCIエクスプレス・パケット・ダイジェストを利用する方法の概略流れ図である。
本発明のいくつかの実施形態が完全に理解されるよう、以下の詳細な説明には多数の具体的な詳細事項が記載されている。しかし、当業者には当然のことながら、本発明の実施形態はこれらの具体的な詳細事項を用いずに実践されてもよい。他の場合には、説明が不明瞭にならないよう、周知の方法、手順、コンポーネント、ユニットおよび回路、あるいはそのいずれかは詳細には記載されていない。本願明細書で開示される実施形態および図面は、制限的なものではなく実例であると見なされるものとする。
「処理」、「演算」、「計算」、「判断」または同様のものなどの用語を用いる本願明細書の説明の各部分は、コンピューティング・システムのレジスタおよびメモリあるいはそのいずれかの内部で電子などの物理量として表されるデータを、コンピューティング・システムのメモリ、レジスタまたはその他そのような情報ストレージ、伝送デバイスもしくは表示デバイスの内部で同じように物理量として表される他のデータへと操作および変換あるいはそのいずれかを行う、コンピュータもしくはコンピューティング・システムの、または同様の電子コンピューティング・デバイスの動作およびプロセス、あるいはそのいずれかを指す。さらに、本願明細書において、「複数の」という用語は、2つ以上のアイテムを表現するために使用され得る。例えば、複数のアイテムは2つ以上のアイテムを含む。
本願明細書の説明の各部分は、例証のために、有線リンクおよび有線通信、あるいはそのいずれかに関する場合もあるが、本発明の実施形態はこの点で制限されず、1つ以上の有線または無線リンクを含んでも、ワイヤレス通信の1つ以上のコンポーネントを利用しても、無線通信の1つ以上の方法またはプロトコル、または同様のものを利用してもよい。本発明のいくつかの実施形態は、有線通信および無線通信あるいはそのいずれかを利用するとよい。
本願明細書で使用される「送信デバイス」または「送信エンドポイント」または「送信ポート」という用語は、例えば、PCIeデータ、パケットおよび他の情報あるいはそのいずれかを送信または転送することができる、PCIeデバイス、PCIeエンドポイント、PCIeポート、またはその他のPCIeユニットもしくはPCIe互換のユニットを含む。本願明細書で使用される「受信デバイス」または「受信エンドポイント」または「受信ポート」という用語は、例えば、PCIeデータ、パケットおよび他の情報あるいはそのいずれかを受信すること、またはそれが転送されてくることが可能な、PCIeデバイス、PCIeエンドポイント、PCIeポート、またはその他のPCIeユニットもしくはPCIe互換のユニットを含む。
本願明細書で使用される「データ・ペイロード」という用語は、例えば、実データ(substantive data)もしくは特定用途向けデータもしくは同様のものを含むPCIeトランザクション層パケット(TLP)の部分もしくは内容、メタ・データ、構造情報、制御情報を含まないTLP部分もしくはTLP内容、非ヘッダのTLP部分もしくはTLP内容、非ダイジェストのTLP部分もしくはTLP内容、TLPの非ヘッダもしくは非ダイジェスト部、または、特定用途向けデータもしくは実データを格納する、もしくは格納することができる、もしくは格納もしくは搬送するよう指定されているTLPの他の部分、セグメント、フィールドもしくはスペースを含む。
本願明細書で使用される「ダイジェスト」または「パケット・ダイジェスト」または「PCIeパケット・ダイジェスト」または「PCIe TLPダイジェスト」または「ダイジェスト部」または「ダイジェスト・フィールド」または「ダイジェスト・セグメント」という用語は、例えば、任意選択でTLPに付加されるPCIe TLPの部分もしくは内容、全体もしくは一部分においてECRC、CRC、もしくは他のデータ保護メカニズム、もしくはデータ点検メカニズム、もしくはデータ保全メカニズム、もしくはデータ検証メカニズムに使用されるTLP部分もしくはTLP内容、TLPの最後にある、もしくはTLPに付加されている、もしくはTLPデータ・ペイロードに付加されている、32ビットの部分もしくは内容もしくは他のサイズの部分もしくは内容、TLPの最後の32ビットに該当するスペース、または、例えばヘッダ・フロー制御クレジットを利用する、TLPの任意の非ヘッダおよび非データ・ペイロード部分もしくは内容を含み得る。
本願明細書で使用される「ダブル・ワード」または「D(Double)ワード」または「DW(Double Word)」という用語は、例えば、4バイト、すなわち32ビットのサイズのデータ・ユニットを含む。
本願明細書で使用される、「非ECRCデータ」または「非ECRC情報」または「非CRCデータ」または「非CRC情報」という用語は、例えば、ECRC目的にもCRC目的にも使用されないデータもしくは情報、ECRCもしくはCRCデータ以外のデータもしくは情報、実データ、特定用途向けデータ、または同様のものを含む。
例証のために、本願明細書の説明の各部分はPCIe通信またはデバイスに関するが、本発明の実施形態は、他の種類の通信またはデバイスと共に使用されてもよい。例えば、パケット化データの高速シリアル相互接続を通した転送を利用する通信もしくはデバイス、フロー制御ベースのリンク管理を利用する通信もしくはデバイス、クレジット・ベース・フロー制御を利用する通信またはデバイス、完全シリアル・インターフェースを利用する通信もしくはデバイス、属性付きパケットと共に実装されるスプリット・トランザクション・プロトコルを利用する通信もしくはデバイス、改良されたパケット転送もしくは最適なパケット転送のためにパケットに優先順位をつける通信もしくはデバイス、1つ以上のレーンを有するスケーラブル・リンク(例えばポイント・ツー・ポイント接続)を利用する通信もしくはデバイス、高速シリアル相互接続を利用する通信もしくはデバイス、種々のトラフィック・タイプの区別を利用する通信またはデバイス、高信頼性のデータ転送メカニズムを利用する(例えば、シーケンス番号およびエンド・ツー・エンド巡回冗長検査(ECRC)あるいはそのいずれかを使用する)通信もしくはデバイス、転送データの保全性を実現するためにリンク層を利用する通信もしくはデバイス、2つの低電圧差動駆動信号ペア(例えば送信ペアおよび受信ペア)の物理層を利用する通信もしくはデバイス、レーン幅および動作周波数のネゴシエーションを含むリンク初期化を利用する通信もしくはデバイス、受信側で受信バッファがパケットを受信できることが既知であるときのみデータ・パケットの伝送を許可する通信もしくはデバイス、リクエスト・パケットおよびレスポンス・パケットあるいはそのいずれかを利用する通信もしくはデバイス、メッセージ・スペース、メッセージ信号割り込み(MSI:Message Signaled Interrupt)およびインバンド・メッセージあるいはそのいずれかを利用する通信もしくはデバイス、ソフトウェア層コンフィグレーション・スペースを利用する通信もしくはデバイス、最大ペイロード・サイズ(MPS:Maximum Payload Size)パラメータを利用する通信もしくはデバイス、または同様のものなどである。
概説として、本発明のいくつかの実施形態は、変更されたPCIeプロトコルを提供し、例えばデータ・クレジットを消費することなくデータ・ペイロードを搬送するためなど、TLPダイジェストの変更された使用法を可能にする。変更されたPCIeプロトコルは、ECRCに関するTLPダイジェストの従来の使用法の代わりに、またはそれに加えて、変更されたTLPダイジェストの(またはそのTLPダイジェストに対応するスペースもしくは通信部の)種々の利用モデルを可能にする。いくつかの実施形態は、1Dワードまたは1Dワード以下の一般的内容(generic content)、例えば、データ・クレジットもしくは他のデータ・リソースを消費してはならない実情報もしくはデータ、制御情報もしくはデータ、およびデータ・ペイロード、あるいはそのいずれかを搬送または転送または格納するために、TLPダイジェストに対応するパケット・スペースを利用する。変更されたTLPダイジェストを使用して搬送できる適切に小さなデータ・ペイロード伝送の例証となるいくつかの例には、状態インジケーション(status indication)、レジスタ・データ、保護キーなどがある。いくつかの実施形態では、小さなデータ・ペイロードを有するPCIe TLPは、例えばパケット・ダイジェストに対応するスペース内でデータを伝送してヘッダ・フロー制御クレジットのみを消費することによって、実質的にデータ・リソースを消費することなく送信、輸送および受信される。
本願明細書の説明の各部分は、例証のために、PCIeプロトコルを利用する通信に関することもあるが、本発明の実施形態は、例えば、ECRCが任意であるかもしくは重要でない通信システムもしくはプロトコル、信頼できるリンクを利用する通信システムもしくはプロトコル、または同様のものにおいてなど、他の適切な通信システム、デバイス、方法およびプロトコル、あるいはそのいずれかと共に使用することもできる。一例として、PCIエクスプレス・リンクは、リンク層CRC(LCRC:link layer CRC)をサポートしてPCIeパケットに関しデータ・リンク層での誤り検出を提供しており、トランザクション層では、TLPダイジェスト内などのさらなるECRC保護は任意選択である。さらに、PCIeホストに直接結合されている複数デバイスのPCIエクスプレス・システムにおいて、ならびに中間にあるコンポーネントが実質的にTLP内容の保存および転送あるいはそのいずれかを行うのに信頼できる場合、あるいはそのいずれかで、ECRCは重要でないこともある。
いくつかの実施形態では、トランザクション・イニシエータまたは送信デバイスが、変更されたPCIeプロトコルに従ってTLPを構成、作成または生成し、例えばTLPヘッダ内のインジケーション・ビットまたはフラグまたはパラメータを使用して、特定用途向けパケット・ダイジェストの存在を示す。受信エンドポイントまたは受信デバイスは、TLPヘッダのインジケーションに基づき、パケット・ダイジェストを復号する。中間にあるPCIeデバイス(例えばPCIeスイッチ)は、PCIeプロトコルおよび変更されたPCIeプロトコルあるいはそのいずれかに従って、特定用途向けダイジェストを含むTLPの中継、ルーティングおよび転送あるいはそのいずれかを行う。
図1は、本発明の例証となるいくつかの実施形態による、PCIeパケット・ダイジェストを利用できるシステム100のブロック図を概略的に示す。システム100は、例えば、コンピューティング・デバイス、コンピュータ、パーソナル・コンピュータ(PC:personal computer)、サーバ・コンピュータ、クライアント/サーバ・システム、モバイル・コンピュータ、ポータブル・コンピュータ、ラップトップ・コンピュータ、ノートブック型コンピュータ、タブレット・コンピュータ、相互接続された複数のデバイスのネットワーク、または同様のものであっても、もしくはそれらを含んでもよい。
システム100は、例えばプロセッサ111、入力ユニット112、出力ユニット113、メモリ・ユニット114、ストレージ・ユニット115、通信ユニット116およびグラフィックス・カード117を含むとよい。システム100は、任意選択で、他の適切なハードウェア・コンポーネントおよびソフトウェア・コンポーネント、あるいはそのいずれかを含んでもよい。
プロセッサ111は、例えば、中央処理ユニット(CPU:central processing unit)、デジタル・シグナル・プロセッサ(DSP:digital signal processor)、マイクロプロセッサ、ホスト・プロセッサ、制御器、複数のプロセッサもしくは制御器、チップ、マイクロチップ、1つ以上の回路、電気回路、論理ユニット、集積回路(IC:integrated circuit)、特定用途向け集積回路(ASIC:application−specific integrated circuit)またはその他任意の適切な多目的もしくは特定プロセッサもしくは制御器を含めばよい。プロセッサ111は、例えばシステム100のオペレーティング・システム(OS:operating system)171の、または1つ以上のソフトウェア・アプリケーション172の命令を実行するとよい。
入力ユニット112は、例えば、キーボード、キーパッド、マウス、タッチ・パッド、スタイラス、マイクロホン、またはその他適切なポインティング・デバイスもしくは入力デバイスを含めばよい。出力ユニット113は、例えば、陰極線管(CRT:cathode ray tube)モニタもしくはディスプレイ・ユニット、液晶ディスプレイ(LCD:liquid crystal display)モニタもしくはディスプレイ・ユニット、スクリーン、モニタ、スピーカ、またはその他適切なディスプレイ・ユニットもしくは出力デバイスを含めばよい。グラフィックス・カード117は、例えば、グラフィックスもしくはビデオ・プロセッサ、アダプタ、制御器またはアクセラレータを含めばよい。
メモリ・ユニット114は、例えば、ランダム・アクセス・メモリ(RAM:random access memory)、読み出し専用メモリ(ROM:read only memory)、ダイナミックRAM(DRAM:dynamic RAM)、シンクロナスDRAM(SD−RAM:synchronous DRAM)、フラッシュ・メモリ、揮発性メモリ、不揮発性メモリ、キャッシュ・メモリ、バッファ、短期メモリ・ユニット、長期メモリ・ユニット、またはその他適切なメモリ・ユニットもしくはストレージ・ユニットを含めばよい。ストレージ・ユニット115は、例えば、ハード・ディスク・ドライブ、フレキシブル・ディスク・ドライブ、コンパクト・ディスク(CD:compact disk)ドライブ、CD−ROMドライブ、デジタル多用途ディスク(DVD:digital versatile disk)ドライブ、またはその他適切な取り外し可能なストレージ・ユニットもしくは取り外し不可能なストレージ・ユニットを含めばよい。メモリ・ユニット114およびストレージ・ユニット115あるいはそのいずれかは、例えば、システム100により処理されたデータを格納するとよい。
通信ユニット116は、例えば、有線もしくは無線のネットワーク・インターフェース・カード(NIC:network interface card)、有線もしくは無線のモデム、有線もしくは無線の受信機および送信機あるいはそのいずれか、有線もしくは無線の送受信装置およびトランシーバあるいはそのいずれか、無線周波数(RF:radio frequency)通信ユニットもしくはトランシーバ、または信号、ブロック、フレーム、送信ストリーム、パケット、メッセージおよびデータあるいはそのいずれかの送信および受信あるいはそのいずれかを行うことができる他のユニットを含めばよい。通信ユニット116は、例えば、ダイポール・アンテナ、モノポール・アンテナ、全方向性アンテナ、エンド・フェッド・アンテナ(end fed antenna)、円偏波アンテナ、マイクロ・ストリップ・アンテナ、ダイバーシチ・アンテナ、または同様のものなどの1つ以上のアンテナを任意選択で含むか、またはそれと任意選択で関連していてもよい。
いくつかの実施形態では、システム100のコンポーネントは、例えば、共通の筐体、パッケージ、または同様のものに入れられるとよく、1つ以上の有線または無線リンクを使用して相互接続されるか、または動作可能に関連させられるとよい。他の実施形態では、例えば、システム100のコンポーネントは、複数または別々のデバイス間に分布してもよく、クライアント/サーバ構成もしくはシステムを使用して実装されてもよく、リモート・アクセス方法を使用して通信してもよく、または同様のことも可能である。
システム100はさらに、システム100の複数コンポーネント間、例えば複数のPCIeエンドポイント間またはデバイス間を接続することができるPCIeホスト・ブリッジ120を含むとよい。PCIeホスト・ブリッジ120は、メモリ・ブリッジ121またはその他のメモリ制御器を含むとよく、それに対してメモリ・ユニット114およびグラフィックス・カード117あるいはそのいずれかが接続されているとよい。PCIeホスト・ブリッジ120はさらに、入出力(I/O)ブリッジ122を含むとよく、それに対して入力ユニット112、出力ユニット113、ストレージ・ユニット115、通信ユニット116、および1つ以上のユニバーサル・シリアル・バス(USB:universal serial bus)デバイス118が接続されるとよい。
システム100はさらに、複数のPCIeエンドポイントまたはPCIeデバイス間を相互接続することができるPCIeスイッチ125を含むとよい。いくつかの実施形態では、PCIeスイッチ125は、別個またはスタンド・アロンのユニットまたはコンポーネントとして実装されてもよい。他の実施形態では、PCIeスイッチ125は、PCIeホスト・ブリッジ120またはその他適切なコンポーネントに統合されても、それと共に組み込まれても、またはそれを使用して他の方法で実装されてもよい。
図1のトポロジまたはアーキテクチャは、例証のために示されており、本発明の実施形態は、その他適切なトポロジまたはアーキテクチャと共に使用されてもよい。例えば、いくつかの実施形態では、メモリ・ブリッジ121は、メモリ制御器として実装され、PCIeホスト・ブリッジ120に含まれるかまたは組み込まれる。いくつかの実施形態では、「ノース・ブリッジ」または「サウス・ブリッジ」が使用され、任意選択で、PCIeホスト・ブリッジ120および同様のPCIeホスト・コンポーネントあるいはそのいずれかを含む。いくつかの実施形態では、メモリ・ブリッジ121およびPCIeホスト・ブリッジ120(および任意選択でプロセッサ111)は、単一または共通の集積回路(IC)を使用して、または複数のICを使用して実装される。その他適切なトポロジまたはアーキテクチャが使用されてもよい。
PCIeホスト・ブリッジ120およびPCIeスイッチ125あるいはそのいずれかは、複数のPCIeエンドポイント間またはPCIeデバイス間、例えばエンドポイント141〜145を相互接続するとよい。いくつかのPCIeデバイスまたはエンドポイント(例えばPCIeエンドポイント141および142)が、PCIeホスト・ブリッジ120によって直接接続され、その一方で、他のPCIeエンドポイント(例えばPCIeエンドポイント143〜145)はPCIeスイッチ125を使用して間接的に接続される。例証のために、エンドポイント141は、データをメモリ・ブリッジ121へ送信するとよい。したがって、エンドポイント141は、本願明細書では「送信エンドポイント」または「送信デバイス」と呼ばれ、その一方で、メモリ・ブリッジ121は、本願明細書では「受信エンドポイント」または「受信デバイス」と呼ばれる。
その他のコンポーネントは、送信デバイスおよび受信デバイスあるいはそのいずれかとして動作するとよい。例えば、プロセッサ111が送信デバイスであって、メモリ・ユニット114が受信デバイスであってもよく、USBデバイス118が送信デバイスであって、ストレージ・ユニット115が受信デバイスであってもよく、メモリ・ブリッジ121が受信デバイス(例えば第1のエンドポイントまたはコンポーネントに対する)および送信デバイス(例えば第2のエンドポイントまたはコンポーネントに対する)あるいはそのいずれかとして動作してもよく、または同様のことも可能である。いくつかの実施形態では、受信デバイスは、データまたは制御データを送信デバイスに送り返すことができ、またはその逆も可能である。例えば、送信デバイスと受信デバイスとの間の通信は、一方向または双方向であればよい。
任意選択で、送信デバイスはデバイス・ドライバを利用して動作してもよく、受信デバイスはデバイス・ドライバを利用して動作してもよい。いくつかの実施形態では、デバイス・ドライバ、ならびにPCIeホスト・ブリッジ120およびPCIeスイッチ125は、本発明のいくつかの実施形態による、変更されたPCIeプロトコル175をサポートするとよい。送信デバイスは、PCIeポート151(「アップストリーム・ポート」または「ダウンストリーム・フェイシング・ポート(downstream−facing port)」)に接続されている(またはそれを含む)。受信デバイスは、PCIeポート152、例えばPCIeホスト・ブリッジ120のPCIeポート(「ダウンストリーム・ポート」または「アップストリーム・フェイシング・ポート(upstream−facing port)」)に接続されている(またはそれを含む)。
いくつかの実施形態では、パケット191は、送信デバイスと受信デバイスとの間の、中間にあるPCIeデバイスを通過するか、またはそれによって中継されるとよい。例えば、エンドポイント145が送信デバイスであってメモリ・ブリッジ121が受信デバイスである場合、PCIeスイッチ125は、送信エンドポイント145と受信メモリ・ブリッジ121との中間にあるデバイスである。
いくつかの実施形態では、送信デバイスは、変更されたPCIeプロトコル175を使用して、すなわち、データ・フロー制御クレジットまたは追加のデータ・フロー制御クレジットを消費することなくデータ・ペイロードを輸送するために共通または特定用途向けパケット・ダイジェストを利用して、データを受信デバイスへ転送する。例えば、変更されたPCIeプロトコルに従って、非ECRCデータが、TLPダイジェストに含まれ、ヘッダ・フロー制御クレジットのみを使用して送信されるとよい。送信デバイスは、ダイジェストがパケットに付加されていることを示すため、ダイジェストがECRCデータを含まないことを示すため、およびCRC検査が無視されるべきであることを示すため、またはそのいずれかのための1つ以上のインジケーションをパケット・ヘッダ内に有する、変更されたTLP191を構成する。
いくつかの実施形態では、TLPダイジェストに対応するスペースは、例えば状態ベクトル(status vector)(例えば、ノンポステッド・リクエスト(non−posted request)へのレスポンスと共に搬送される)、保護キー、エンド・ツー・エンド・フロー制御、またはその他任意の特定用途向け単一DWペイロードなど、種々のタイプの情報を格納または搬送するために使用されるとよい。各実施形態は、例えば、拡張されたECRC保護を必要としないデータを、通常のデータ・ペイロードの代わりにパケット・ダイジェスト内で送信することで、データ保全性を損なうことなく、ダイジェスト・リソースのより最適な利用を可能にすることができる。
いくつかの実施形態は、特定用途向けデータまたはタスクにダイジェスト・スペース(例えばTLP毎に4バイト)を利用することを可能にし、その用途が当該のデータ・タスクにデータ・ペイロードを利用することを求めない。したがって、いくつかの実施形態は、特定用途向けデータ・ペイロードの使用を減らす。この特定用途向けデータ・ペイロードの使用は、追加のデータ・バッファおよび関連したクレジットあるいはそのいずれかの割り当てを必要とし、さらに理論上のリンク帯域幅の約20パーセント以下のパケット・オーバーヘッドをもたらす(例えば短いパケット・トラフィックに関して)。本発明の実施形態は、他の利点または利益を提供し得る。
いくつかの実施形態では、変更されたPCIeプロトコル175は、リンクに接続されているデバイス間の効率的なデータ転送のために、フロー制御ベースのリンク管理を利用する。例えば、実質的に各PCIeデバイスが、例えば「クレジット」または他の受信バッファ単位の規定を使用して、他のPCIeデバイス(単数または複数)に、その受信バッファの能力を通知する。伝送される各パケットは、いくらかのクレジットを消費する。時折、受信PCIeデバイスは、新たなパケットに利用可能となる(例えば受信バッファからの古いデータの除去によって)バッファ・スペースの追加量(例えば解放されたクレジット)について送信PCIeデバイスに最新情報を与える。送信PCIeデバイスは、遠隔の受信側によって通知された利用可能なクレジットを累算していき、それと、送信デバイスがそれまでにパケットを送信して消費したクレジットの総数とを比較する。送信デバイスは、受信デバイス側に利用可能なクレジットが十分ある場合に限り、新たなパケットを送信することができる。クレジットの不足は、伝送の停滞を招き、パフォーマンスの低下につながる。いくつかの実施形態に従い、変更されたPCIeプロトコル175は、送信PCIeデバイスが、特定用途向けデータをTLPダイジェストに対応するスペースまたはその一部(例えばECRC部)に格納できるようにし、その結果、TLP内でさらなる量の実データを送信して、利用可能なクレジットをより効率的に利用できるようにする。
変更されたPCIeプロトコル175は、PCIe TLPヘッダ(例えばヘッダ単位)およびPCIe TLPデータ(例えば16バイト単位)の別々のクレジットの規定を利用する。PCIe TLPは、ヘッダのみを含み、したがって1つのヘッダ・クレジットのみを消費してもよい。または、データ・ペイロードを有するPCIe TLPが、1つのヘッダ・クレジットおよびデータ・ペイロード・サイズに等しいいくつかのデータ・クレジットを消費してもよい。PCIe TLPダイジェスト(例えばECRCに使用される1DW)は、ヘッダ・クレジットに収まり、データ・クレジットの消費は必要としない。したがって、いくつかの実施形態では、特定用途向けデータを搬送および転送するためにTLPダイジェストを使用することで、データ・クレジットが節約される。このように、いくつかの実施形態は、データ・バッファ消費およびクレジット消費あるいはそのいずれかを軽減するために、ヘッダ・クレジットとデータ・クレジットとを分ける、または区別するPCIeメカニズムを利用する。これは例えば特定用途向けデータ(例えば非ECRCデータ)をヘッダ・クレジット(単数または複数)に含まれるPCIe TLPの一部に(例えばダイジェストまたはダイジェストの一部に)格納して搬送することによる。
図2は、本発明の例証となるいくつかの実施形態による、変更されたTLPダイジェストを含むPCIeパケット210の構造を概略的に示す。本願明細書の説明の各部分は、例証のために、64ビット・アドレッシングを利用するPCIe TLP構造に関するが、本発明の実施形態はこの点で制限されず、他のPCIe TLP構造、例えば32ビット・アドレッシングを利用する構造またはその他適切な構造もしくはサイズと共に使用されてもよい。
パケット210は、4ダブル・ワードの構造であり、ヘッダ部220、データ部230およびダイジェスト部240を含む。第1の行211は、バイト・オフセット(例えば+0、+1、+2および+3)を示し、第2の行212は、ビット数(例えば0〜7まで番号付けされた8ビット)を示す。ヘッダ220は、行213および214に示されているように、8バイトを占有する制御情報のフィールド(例えば、フォーマット・フィールド、タイプ・フィールド、長さフィールド、IDフィールド、タグ・フィールドおよび同様のものを含む)を含む。行215および216は、64ビット・アドレス、例えば、予約されている下位2ビットを有するリクエスト・アドレスを含む。行213〜216は、パケット210のヘッダ部220に当たる。
適切であれば、TLP210のデータ部230は、ペイロード・データを搬送するために使用される。いくつかのTLPは、データ・ペイロード部230を含むことがあり、その一方で、他のTLPは、データ・ペイロード部230を含まないこともある。クレジット・ベース・フロー制御プロトコルに従い、TLPのデータ部230をデータ転送に利用するにはデータ・フロー制御クレジットが必要であり、非常に小さなデータ・ペイロードには効率的でないと考えられる。
ダイジェスト部240は、TLPに付加されてもよい任意選択のTLPダイジェストを含む。いくつかの実施形態では、パケット210は、追加の実データまたは非ECRCデータを含み、その格納および搬送あるいはそのいずれかが、TLPダイジェストに対応するスペースにおいて行われる。ダイジェスト240内の追加スペースは、ECRC情報を格納せず、代わりに、他の情報または代わりの情報、例えば特定用途向けデータまたは非ECRCデータを格納する。
いくつかの実施形態では、変更されたTLP210のヘッダは、特定用途向けデータまたは非ECRCデータを有するTLPダイジェストの存在を示す1つ以上のインジケーション・ビットまたはフラグまたはフィールドを含む。例えば、TLPダイジェスト(TD:TLP Digest)インジケーション・ビット299がダイジェストの存在を示すとよい。例えば、ダイジェストが特定用途向けデータもしくは非ECRCデータを含むことを示すため、ダイジェストがECRC情報を含まないことを示すため、ECRC検査が無視されるべきであることを示すため、およびTLPダイジェストに対応するスペースもしくはそのスペースの定義済み部分から実データもしくは非ECRCデータが読み取りまたは収集されるべきである(例えば受信デバイスによって)ことを示すため、あるいはそのいずれかのために、ヘッダ220の指定された1つ以上のビットまたはフラグもしくはフィールド、例えば予約されているビット297および予約されているフィールド298あるいはそのいずれかが使用されてもよい。
図3は、本発明の例証となるいくつかの実施形態による、変更されたPCIエクスプレス・パケット・ダイジェストを利用する方法300の概略流れ図である。本方法の各工程は、例えば、図1のシステム100によって、またはその他適切なユニット、デバイスおよびシステムあるいはそのいずれかによって、あるいはシステム100と、その他適切なユニット、デバイスおよびシステムあるいはそのいずれかとの両方によって、使用されればよい。
いくつかの実施形態において、本方法は、特定用途向けダイジェストを有するPCIe TLPを構成または生成することを含む(ブロック310)。例えば、特定用途向けダイジェストは、パケットのダイジェスト部に対応するスペース内で搬送される非ECRCデータまたは一般的データまたは特定用途向けデータを含めばよい。例えば、非ECRCデータは、ECRCデータに対応する(またはそれにあらかじめ割り当てられた)ダイジェスト・スペースに入れられるか、または格納されるとよい。
ブロック312に示されているように、本方法は、特定用途向けダイジェストをTLPのヘッダ内で示すことを含む。例えば、TDインジケーション・ビットまたはフィールド、および予約されている、もしくは特定用途向けのインジケーション・ビットまたはフィールド、あるいはそのいずれかが、ダイジェスト内に特定用途向けデータが存在することをパケット・ヘッダ内で示すよう使用される。いくつかの実施形態では、TDインジケーション・ビット内の「1」という値が、ダイジェストの存在を示すとよく、特定用途向けインジケーション・ビットまたはフラグまたはフィールドがさらに、ダイジェスト・タイプまたはダイジェスト長を示すとよい。他の実施形態では、TDインジケーション・ビットにおける「ゼロ」という値は非ECRCダイジェストを示すとよい。その他適切な値またはインジケーションが使用されてもよい。
ブロック314に示されているように、本方法は、特定用途向けダイジェストに含まれるデータを、ヘッダ・フロー制御クレジットを使用して送信することを含むとよい。TLPダイジェストに対応するスペースに特定用途向けデータが含まれれば、そのようなデータはヘッダ・クレジットに含まれ、データ・クレジットを消費しない。それに対して、特定用途向けデータがデータ・ペイロードとして規則どおりに送信されると、1つ以上のデータ・クレジットが消費される(例えば、ダイジェストの存在にかかわらずTLPヘッダにより消費されるヘッダ・クレジットに加えて)。
ブロック316で示されているように、TLPダイジェストの処理は、例えばPCIeデバイスが受信デバイス(ブロック318)または中間にあるデバイス(ブロック320)であるか否かによって、異なるとよい。
ブロック318に示されているように、受信デバイスは、特定用途向けデータを、変更されたTLPダイジェストから読み取って抽出する。受信デバイスは、例えばTDインジケーション・ビットおよび別の指定されたインジケーション・ビットもしくはフィールドによって、あるいはそのいずれかによって示される、TLPがデータ・ペイロードをメッセージ・ダイジェスト内に含むこと、およびTLPはECRCをメッセージ・ダイジェスト内に含まないこと、あるいはそのいずれかの、変更されたTLPのヘッダ内のインジケーションを受信し、復号するとよい。例えば、変更されていないTLPに対してECRC検査が実行される場合には、TDビットにより示されるように、変更されたTLPに対するECRC検査を受信デバイスが無視し(例えば、ECRCメカニズムを省略もしくは回避もしくは無効化することによって、またはECRCプロセスの結果を無視することによって)、変更されたTLPダイジェストから特定用途向けデータを抽出または復号する。
ブロック320で示されているように、中間にあるデバイス(例えば、PCIeスイッチまたは目標の受信デバイスではない他のPCIeデバイス)は、実質的にメッセージ・ダイジェストにアクセスすることまたは変更を加えることなく、TLPを中継または転送する。中間にあるデバイスがECRC検査をサポートする場合、中間にあるそのデバイスは、例えば変更されたTLPヘッダ内の指定のビットもしくはフラグもしくはフィールド内のインジケーションによって、またはECRCを無効にするシステム構成によって、ECRC検査を実行しないよう(またはECRC検査結果を無視するよう)命令されるとよい。
その他適切な動作または複数セットの動作が、本発明の実施形態に従って使用されればよい。
本発明のいくつかの実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェア要素およびソフトウェア要素両方を含んだ実施形態という形をとってよい。いくつかの実施形態はソフトウェアにおいて実装されてもよく、このソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコードまたは同様のものを含むがこれに限定されるものではない。
さらに、本発明のいくつかの実施形態は、コンピュータまたは任意の命令実行システムにより使用される、またはそれに関連して使用されるプログラム・コードを提供するコンピュータ使用可能またはコンピュータ可読媒体からアクセス可能な、コンピュータ・プログラム製品という形をとることができる。例えば、コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、装置もしくはデバイスにより使用される、またはこれらに関連して使用されるプログラムを、含むこと、格納すること、伝達すること、伝播させること、または転送することができる任意の装置であっても、またはそれを含んでもよい。
いくつかの実施形態では、媒体は、電子、磁気、光学、電磁気、赤外線または半導体のシステム(もしくは装置もしくはデバイス)、または伝播媒質とすることができる。コンピュータ可読媒体の例証となるいくつかの例には、半導体または固体メモリ、磁気テープ、取り外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read−only memory)、剛体磁気ディスクおよび光ディスクがある。光ディスクの例証となるいくつかの例には、コンパクト・ディスク−読み取り専用メモリ(CD−ROM:compact disk−read only memory)、コンパクト・ディスク−リード/ライト(CD−R/W:compact disk−read/write)およびDVDがある。
いくつかの実施形態では、プログラム・コードの格納および実行あるいはそのいずれかを行うのに適したデータ処理システムは、例えばシステム・バスを介して、直接的または間接的にメモリ要素に結合された、少なくとも1つのプロセッサを含むとよい。メモリ要素は、例えば、プログラム・コードの実際の実行中に用いられるローカル・メモリと、大容量ストレージと、実行中に大容量ストレージからコードを読み出さなければならない回数を減らすために少なくとも一部のプログラム・コードの一時的なストレージとなることができるキャッシュ・メモリとを含み得る。
いくつかの実施形態では、入出力すなわちI/Oデバイス(限定されるものではないが、キーボード、ディスプレイ、ポインティング・デバイスなどを含む)を、直接、または介在するI/O制御装置を介してシステムに結合可能である。いくつかの実施形態では、データ処理システムを、例えば介在するプライベート・ネットワークまたはパブリック・ネットワークを介して他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに結合できるよう、ネットワーク・アダプタがシステムに結合されているとよい。モデム、ケーブル・モデムおよびイーサネット(R)カードが、本発明のいくつかの実施形態におけるネットワーク・アダプタのタイプの例証となる例である。その他適切なコンポーネントが使用されてもよい。
本発明の特定の特徴が、本願明細書において説明および記載されてきたが、当業者には、多数の改良、置換、変更および等価物が想起される可能性がある。

Claims (18)

  1. 周辺コンポーネント相互接続(PCI)エクスプレス・パケット・ダイジェストを変更する装置であって、
    非エンド・ツー・エンド巡回冗長検査(ECRC)データをダイジェスト部の1つ以上のビットが搬送するクレジット・ベース・フロー制御相互接続トランザクション層パケットを生成する、クレジット・ベース・フロー制御相互接続デバイスを含み、
    前記トランザクション層パケットのヘッダは、前記ダイジェスト部は非ECRCデータを搬送するということのインジケーションを含む、
    装置。
  2. 前記非ECRCデータは、特定用途向けデータを含む、請求項1に記載の装置。
  3. 前記トランザクション層パケットのヘッダは、前記ダイジェスト部は特定用途向けデータを搬送するということのインジケーションを含む、請求項1に記載の装置。
  4. 前記トランザクション層パケットのヘッダは、受信デバイスは前記ダイジェスト部において搬送される前記非ECRCデータを復号するべきであるということのインジケーションを含む、請求項1に記載の装置。
  5. 前記トランザクション層パケットのヘッダは、中間にあるデバイスは前記トランザクション層パケットのECRC検査の結果を無視するべきであるということのインジケーションを含む、請求項1に記載の装置。
  6. 前記クレジット・ベース・フロー制御相互接続デバイスは、PCIエクスプレス・デバイスを含み、前記クレジット・ベース・フロー制御相互接続トランザクション層パケットは、PCIエクスプレス・トランザクション層パケットを含む、請求項1に記載の装置。
  7. 周辺コンポーネント相互接続(PCI)エクスプレス・パケット・ダイジェストを変更する方法であって、
    エンド・ツー・エンド巡回冗長検査(ECRCデータをダイジェスト部の1つ以上のビットが搬送するクレジット・ベース・フロー制御相互接続トランザクション層パケットを生成するステップを含み、
    前記生成するステップは、前記ダイジェスト部は非ECRCデータを搬送するということのインジケーションを、前記トランザクション層パケットのヘッダに入れるステップを含む、
    方法。
  8. 前記生成するステップは、前記非ECRCデータを、ECRCデータに対応するダイジェスト・スペースに入れるステップを含む、請求項に記載の方法。
  9. 前記生成するステップは、前記ダイジェスト部は特定用途向けデータを搬送するということのインジケーションを、前記トランザクション層パケットのヘッダに入れるステップを含む、請求項に記載の方法。
  10. 前記生成するステップは、受信デバイスは前記ダイジェスト部において搬送される前記非ECRCデータを復号するべきであるということのインジケーションを、前記トランザクション層パケットのヘッダに入れるステップを含む、請求項に記載の方法。
  11. 前記生成するステップは、中間にあるデバイスは前記トランザクション層パケットのECRC検査の結果を無視して前記トランザクション層パケットを転送するべきであるということのインジケーションを、前記トランザクション層パケットのヘッダに入れるステップを含む、請求項に記載の方法。
  12. 前記クレジット・ベース・フロー制御相互接続トランザクション層パケットを前記生成するステップは、PCIエクスプレス・トランザクション層パケットを生成するステップを含む、請求項に記載の方法。
  13. 特定用途向けデータを、ヘッダ・クレジットを使用して送信するステップを含む、請求項に記載の方法。
  14. 周辺コンポーネント相互接続(PCI)エクスプレス・パケット・ダイジェストを変更するシステムであって、
    エンド・ツー・エンド巡回冗長検査(ECRCデータをダイジェスト部の1つ以上のビットが搬送するクレジット・ベース・フロー制御相互接続トランザクション層パケットを生成する、クレジット・ベース・フロー制御相互接続デバイスと、
    前記トランザクション層パケットを転送するクレジット・ベース・フロー制御相互接続リンクと、
    を含み、
    前記トランザクション層パケットのヘッダは、前記ダイジェスト部は非ECRCデータを搬送するということのインジケーションを含む、
    システム。
  15. 前記トランザクション層パケットのヘッダ内のインジケーションに基づき、前記クレジット・ベース・フロー制御相互接続リンクは、前記トランザクション層パケットのECRC検査の結果を無視する、請求項1に記載のシステム。
  16. 前記トランザクション層パケットを受信して前記ダイジェスト部から前記非ECRCデータを抽出する、さらなるクレジット・ベース・フロー制御相互接続デバイスをさらに含む、請求項1に記載のシステム。
  17. 前記トランザクション層パケットのヘッダ内のインジケーションに基づき、さらなるクレジット・ベース・フロー制御相互接続リンクは、前記トランザクション層パケットのECRC検査の実行を回避する、請求項1に記載のシステム。
  18. 前記クレジット・ベース・フロー制御相互接続デバイスは、PCIエクスプレス・デバイスを含み、前記クレジット・ベース・フロー制御相互接続トランザクション層パケットは、PCIエクスプレス・トランザクション層パケットを含み、前記クレジット・ベース・フロー制御相互接続リンクは、PCIエクスプレス・リンクを含む、請求項1に記載のシステム。
JP2010513824A 2007-06-29 2008-06-05 Pciエクスプレス・パケット・ダイジェストの変更のデバイス、システムおよび方法 Active JP4954330B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/771,238 2007-06-29
US11/771,238 US8139575B2 (en) 2007-06-29 2007-06-29 Device, system and method of modification of PCI express packet digest
PCT/EP2008/056990 WO2009003786A1 (en) 2007-06-29 2008-06-05 Device, system and method of modification of pci express packet digest

Publications (2)

Publication Number Publication Date
JP2010532607A JP2010532607A (ja) 2010-10-07
JP4954330B2 true JP4954330B2 (ja) 2012-06-13

Family

ID=39735936

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010513824A Active JP4954330B2 (ja) 2007-06-29 2008-06-05 Pciエクスプレス・パケット・ダイジェストの変更のデバイス、システムおよび方法

Country Status (5)

Country Link
US (1) US8139575B2 (ja)
JP (1) JP4954330B2 (ja)
KR (1) KR20090108710A (ja)
CN (1) CN101681325B (ja)
WO (1) WO2009003786A1 (ja)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996705B2 (en) * 2000-04-17 2015-03-31 Circadence Corporation Optimization of enhanced network links
AU2001253533A1 (en) 2000-04-17 2001-10-30 Circadence Corporation System and method for reformatting data traffic
US20110128972A1 (en) 2000-04-17 2011-06-02 Randy Thornton Peer to peer dynamic network link acceleration
US8958414B1 (en) 2007-11-14 2015-02-17 Force10 Networks, Inc. Intelligent chassis management
US20090210770A1 (en) * 2008-02-14 2009-08-20 International Business Machines Corporation Method, system and computer program product for end to end error checking in ethernet
US20100064080A1 (en) * 2008-09-11 2010-03-11 International Business Machines Corporation Managing pci-express max payload size for legacy operating systems
US8045472B2 (en) * 2008-12-29 2011-10-25 Apple Inc. Credit management when resource granularity is larger than credit granularity
US9137160B2 (en) * 2009-01-29 2015-09-15 Qualcomm Incorporated Method and apparatus for accomodating a receiver buffer to prevent data overflow
JP2010238150A (ja) 2009-03-31 2010-10-21 Toshiba Corp PCIExpress通信システム、及びその通信方法
JP2010250665A (ja) * 2009-04-17 2010-11-04 Toshiba Corp PCIExpressのTLP処理回路、及びこれを備える中継デバイス
US8196013B2 (en) 2009-10-23 2012-06-05 Plx Technology, Inc. Supporting global input/output interconnect features on ports of a midpoint device
US20110153875A1 (en) * 2009-12-18 2011-06-23 Plx Technology, Inc. Opportunistic dma header insertion
US8291146B2 (en) * 2010-07-15 2012-10-16 Ati Technologies Ulc System and method for accessing resources of a PCI express compliant device
US8799550B2 (en) * 2010-07-16 2014-08-05 Advanced Micro Devices, Inc. System and method for increased efficiency PCI express transaction
JP2012079377A (ja) 2010-09-30 2012-04-19 Toshiba Corp 半導体記憶装置
US8904126B2 (en) 2010-11-16 2014-12-02 Actifio, Inc. System and method for performing a plurality of prescribed data management functions in a manner that reduces redundant access operations to primary storage
US8402004B2 (en) 2010-11-16 2013-03-19 Actifio, Inc. System and method for creating deduplicated copies of data by tracking temporal relationships among copies and by ingesting difference data
US8843489B2 (en) 2010-11-16 2014-09-23 Actifio, Inc. System and method for managing deduplicated copies of data using temporal relationships among copies
US9858155B2 (en) 2010-11-16 2018-01-02 Actifio, Inc. System and method for managing data with service level agreements that may specify non-uniform copying of data
US8417674B2 (en) 2010-11-16 2013-04-09 Actifio, Inc. System and method for creating deduplicated copies of data by sending difference data between near-neighbor temporal states
US8763121B2 (en) * 2011-01-20 2014-06-24 F-Secure Corporation Mitigating multiple advanced evasion technique attacks
CN102694717B (zh) * 2011-03-23 2017-04-12 华为数字技术(成都)有限公司 在pcie总线上传输报文的方法、设备和系统
WO2013019869A2 (en) 2011-08-01 2013-02-07 Actifio, Inc. Data fingerpringting for copy accuracy assurance
US9032102B2 (en) * 2012-03-02 2015-05-12 International Business Machines Corporation Decode data for fast PCI express multi-function device address decode
US9754005B2 (en) 2012-06-18 2017-09-05 Actifio, Inc. System and method for incrementally backing up out-of-band data
AU2014265979A1 (en) 2013-05-14 2015-12-10 Actifio, Inc. Efficient data replication and garbage collection predictions
CN103533045B (zh) * 2013-10-12 2017-12-29 丁贤根 一种用于pcie数据链路层高性能容错的方法
US9665437B2 (en) 2013-11-18 2017-05-30 Actifio, Inc. Test-and-development workflow automation
US9720778B2 (en) 2014-02-14 2017-08-01 Actifio, Inc. Local area network free data movement
CN103825768B (zh) * 2014-03-04 2017-07-14 新华三技术有限公司 报文传输方法和装置
CN104170322B (zh) * 2014-04-02 2017-06-20 华为技术有限公司 一种PCIe链路故障的处理方法、设备及系统
US9792187B2 (en) 2014-05-06 2017-10-17 Actifio, Inc. Facilitating test failover using a thin provisioned virtual machine created from a snapshot
US9772916B2 (en) 2014-06-17 2017-09-26 Actifio, Inc. Resiliency director
KR102173089B1 (ko) 2014-08-08 2020-11-04 삼성전자주식회사 인터페이스 회로 및 그것의 패킷 전송 방법
US10042710B2 (en) 2014-09-16 2018-08-07 Actifio, Inc. System and method for multi-hop data backup
US10379963B2 (en) 2014-09-16 2019-08-13 Actifio, Inc. Methods and apparatus for managing a large-scale environment of copy data management appliances
WO2016094819A1 (en) 2014-12-12 2016-06-16 Actifio, Inc. Searching and indexing of backup data sets
US10055300B2 (en) 2015-01-12 2018-08-21 Actifio, Inc. Disk group based backup
US9535850B1 (en) * 2015-01-28 2017-01-03 Google Inc. System and method for efficient DMA transfers
KR102237991B1 (ko) * 2015-03-20 2021-04-08 한국전자통신연구원 Pci 익스프레스 전용 통신 모듈을 이용한 통신 방법과 이를 포함하는 네트워크 장치
US10282201B2 (en) 2015-04-30 2019-05-07 Actifo, Inc. Data provisioning techniques
US10922252B2 (en) 2015-06-22 2021-02-16 Qualcomm Incorporated Extended message signaled interrupts (MSI) message data
US10613938B2 (en) 2015-07-01 2020-04-07 Actifio, Inc. Data virtualization using copy data tokens
US10691659B2 (en) 2015-07-01 2020-06-23 Actifio, Inc. Integrating copy data tokens with source code repositories
US10296383B2 (en) 2015-07-10 2019-05-21 Samsung Electronics Co., Ltd. Computing system with resource management mechanism and method of operation thereof
US9904653B2 (en) * 2015-08-19 2018-02-27 Nvidia Corporation Scaled PCI express credits
CN105608029B (zh) * 2015-12-17 2018-08-21 深圳市紫光同创电子有限公司 处理层数据包生成方法、装置及PCI Express系统
US10445298B2 (en) 2016-05-18 2019-10-15 Actifio, Inc. Vault to object store
US10476955B2 (en) 2016-06-02 2019-11-12 Actifio, Inc. Streaming and sequential data replication
US10275388B2 (en) 2016-09-26 2019-04-30 International Business Machines Corporation Simultaneous inbound multi-packet processing
US10855554B2 (en) 2017-04-28 2020-12-01 Actifio, Inc. Systems and methods for determining service level agreement compliance
US11403178B2 (en) 2017-09-29 2022-08-02 Google Llc Incremental vault to object store
JP7143609B2 (ja) 2018-03-28 2022-09-29 日本電気株式会社 通信装置、通信方法、プログラム
US11176001B2 (en) 2018-06-08 2021-11-16 Google Llc Automated backup and restore of a disk group
US11070527B2 (en) 2018-12-07 2021-07-20 Intel Corporation Securing platform link with encryption
US11743240B2 (en) * 2019-03-08 2023-08-29 Intel Corporation Secure stream protocol for serial interconnect
EP4080839B1 (en) * 2020-01-22 2024-01-03 Huawei Technologies Co., Ltd. Pcie-based data transmission method and apparatus
EP4080845A4 (en) * 2020-01-22 2023-01-11 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR DATA TRANSMISSION ON PCIE BASE
EP4080844A4 (en) * 2020-01-22 2022-12-21 Huawei Technologies Co., Ltd. PCIE-BASED DATA TRANSMISSION METHOD AND DEVICE
CN113439268B (zh) * 2020-01-22 2023-01-06 华为技术有限公司 一种基于PCIe的数据传输方法、装置及系统
US11528232B1 (en) * 2021-08-27 2022-12-13 Hong Kong Applied Science and Technology Research Institute Company Limited Apparatus and method for handling real-time tasks with diverse size based on message queue

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10290270A (ja) 1997-04-11 1998-10-27 Ricoh Co Ltd シリアルデータ転送システム
US7457897B1 (en) * 2004-03-17 2008-11-25 Suoer Talent Electronics, Inc. PCI express-compatible controller and interface for flash memory
US6697943B1 (en) 1999-12-17 2004-02-24 Cisco Technology, Inc. Use of cyclic redundancy checking for segregating control traffic
JP3859501B2 (ja) 2001-12-03 2006-12-20 日本電気株式会社 マルチメディア通信装置
US7447975B2 (en) 2002-09-12 2008-11-04 Hewlett-Packard Development Company, L.P. Supporting cyclic redundancy checking for PCI-X
US7047475B2 (en) 2003-02-04 2006-05-16 Hewlett-Packard Development Company, L.P. CRC encoding scheme for conveying status information
EP1728170A2 (en) 2004-03-19 2006-12-06 Koninklijke Philips Electronics N.V. Signaling arrangement and approach therefor
US20060092928A1 (en) * 2004-10-15 2006-05-04 Dell Products L.P. System and method for providing a shareable input/output device in a PCI express environment
US7543096B2 (en) * 2005-01-20 2009-06-02 Dot Hill Systems Corporation Safe message transfers on PCI-Express link from RAID controller to receiver-programmable window of partner RAID controller CPU memory
US7478178B2 (en) * 2005-04-22 2009-01-13 Sun Microsystems, Inc. Virtualization for device sharing
JP4690828B2 (ja) 2005-08-30 2011-06-01 株式会社リコー 情報処理システム、プログラムおよびパケット通信方法
US7424565B2 (en) * 2005-11-16 2008-09-09 Sun Microsystems, Inc. Method and apparatus for providing efficient output buffering and bus speed matching
US20090003335A1 (en) * 2007-06-29 2009-01-01 International Business Machines Corporation Device, System and Method of Fragmentation of PCI Express Packets
US7849252B2 (en) * 2008-05-30 2010-12-07 Intel Corporation Providing a prefix for a packet header
US8385333B2 (en) * 2009-06-30 2013-02-26 Intel Corporation Mechanism for clock synchronization

Also Published As

Publication number Publication date
WO2009003786A1 (en) 2009-01-08
CN101681325B (zh) 2016-08-03
US8139575B2 (en) 2012-03-20
CN101681325A (zh) 2010-03-24
JP2010532607A (ja) 2010-10-07
US20090006932A1 (en) 2009-01-01
KR20090108710A (ko) 2009-10-16

Similar Documents

Publication Publication Date Title
JP4954330B2 (ja) Pciエクスプレス・パケット・ダイジェストの変更のデバイス、システムおよび方法
US7702827B2 (en) System and method for a credit based flow device that utilizes PCI express packets having modified headers wherein ID fields includes non-ID data
US10963415B2 (en) Bimodal PHY for low latency in high speed interconnects
US20090003335A1 (en) Device, System and Method of Fragmentation of PCI Express Packets
US7424566B2 (en) Method, system, and apparatus for dynamic buffer space allocation
US11561910B2 (en) In-band retimer register access
US7945721B1 (en) Flexible control and/or status register configuration
JP6251806B2 (ja) 装置、方法、プログラム、システム、およびコンピュータ可読ストレージ媒体
US7827325B2 (en) Device, system, and method of speculative packet transmission
KR101298862B1 (ko) Pci 익스프레스를 통해 ⅰd 기반 스트림을 가능하게 하는 방법 및 장치
US7424567B2 (en) Method, system, and apparatus for a dynamic retry buffer that holds a packet for transmission
US7583600B1 (en) Schedule prediction for data link layer packets
US7424565B2 (en) Method and apparatus for providing efficient output buffering and bus speed matching
US20220414046A1 (en) Systems, methods, and devices for dynamic high speed lane direction switching for asymmetrical interfaces
US7752376B1 (en) Flexible configuration space
US11593280B2 (en) Predictive packet header compression
EP3465453B1 (en) Reduced pin count interface
US20160350250A1 (en) Input output data alignment
JP2005148896A (ja) 画像機器システム
JP2019192287A (ja) 装置、方法、プログラム、システム、およびコンピュータ可読ストレージ媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111101

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120221

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120313

R150 Certificate of patent or registration of utility model

Ref document number: 4954330

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3