(57)【要約】  論理トランスポートネットワークを既存の物理トランスポートネットワーク上に透過的にオーバーレイするための方法およびシステムが開示される。システムは、第１のネットワークプロトコルに準拠するネットワークの第１のトランザクションレイヤ中にある仮想チャネルを指定する。システムは、第１のトランザクションレイヤによっても認識可能である、第２のネットワークプロトコルの第２の論理トランザクションレイヤにおいてトランザクションレイヤパケットを組み立てる。システムは、トランザクションレイヤパケットを第２のトランザクションレイヤから仮想チャネルに転送する。システムは、ネットワーク上の指定された仮想チャネルを使用して、第１のトランザクションレイヤ上でトランザクションレイヤパケットを送信する。【選択図】図５
2021533481.tif 000002
【特許請求の範囲】
【請求項１】
論理トランザクションネットワークを既存の物理トランスポートネットワーク上に透過的にオーバーレイする方法であって、
第１のネットワークプロトコルに準拠するネットワークの第１のトランザクションレイヤ中にある仮想チャネルを指定することと、
第２のネットワークプロトコルの第２の論理トランザクションレイヤにおいてトランザクションレイヤパケットを組み立てることと、
前記トランザクションレイヤパケットを前記第２のトランザクションレイヤから前記仮想チャネルに転送することと、
前記ネットワーク上の前記仮想チャネルを使用して、前記第１のトランザクションレイヤ上で前記トランザクションレイヤパケットを送信することと
を含む、方法。
【請求項２】
前記トランザクションレイヤパケットが、前記第１のトランザクションレイヤにとって認識可能なサードパーティ識別子と、前記第２の論理トランザクションレイヤにとって認識可能な、サードパーティメッセージタイプおよびサードパーティヘッダとを含む、請求項１に記載の方法。
【請求項３】
前記第１のトランザクションレイヤが、データリンクレイヤ、および前記第１のネットワークプロトコルに準拠する物理レイヤ上で前記トランザクションレイヤパケットを送信する、請求項１に記載の方法。
【請求項４】
前記第２のトランザクションレイヤが、前記物理レイヤの既存のプロパティを活用するが、前記第２の論理トランザクションレイヤに特有であるサービスクラス（ＣＯＳ）属性を採用する、請求項１に記載の方法。
【請求項５】
前記ＣＯＳ属性が、低レイテンシ属性およびプロトコル属性のうちの少なくとも１つである、請求項４に記載の方法。
【請求項６】
前記トランザクションレイヤパケット内に含まれている少なくとも１つの属性が、前記第１のトランザクションレイヤにとって認識可能でないが、前記パケットの残りのフィールドが、前記第１のトランザクションレイヤによって認識可能である、請求項１に記載の方法。
【請求項７】
前記パケットの残りのフィールドが、前記第２の論理トランザクションレイヤに特有である、請求項１に記載の方法。
【請求項８】
前記第２のネットワークプロトコルが、ロード／ストアセマンティクスを含んでいる、請求項１に記載の方法。
【請求項９】
前記第１のネットワークプロトコルがＰＣＩｅプロトコルであり、前記第２のネットワークプロトコルがＣＣＩＸプロトコルである、請求項１に記載の方法。
【請求項１０】
前記第２の論理トランザクションレイヤが順序パケット配信を提供する、請求項１に記載の方法。
【請求項１１】
論理トランザクションネットワークを既存の物理トランスポートネットワーク上に透過的にオーバーレイする方法であって、
第１のネットワークプロトコルに準拠するネットワークの第１のトランザクションレイヤ中にあるトランザクションレイヤパケットを受信することと、
第２のネットワークプロトコルに準拠する第２の論理トランザクションレイヤによる使用のために指定された前記第１のトランザクションレイヤ中にある仮想チャネルから前記トランザクションレイヤパケットを抽出することと、
前記第２の論理トランザクションレイヤにとって認識可能な前記第２のネットワークプロトコルに準拠するトランザクションレイヤパケットを組み立てることと、
前記トランザクションレイヤパケットを前記仮想チャネルから前記第２のトランザクションレイヤに転送することと
を含む、方法。
【請求項１２】
前記トランザクションレイヤパケットが、前記第１のトランザクションレイヤにとって認識可能なサードパーティ識別子と、前記第２の論理トランザクションレイヤにとって認識可能な、サードパーティメッセージタイプおよびサードパーティヘッダとを含む、請求項１１に記載の方法。
【請求項１３】
前記第２のトランザクションレイヤが、前記物理レイヤの既存のプロパティを活用するが、前記第２の論理トランザクションレイヤに特有であるサービスクラス（ＣＯＳ）属性を採用する、請求項１１に記載の方法。
【請求項１４】
前記トランザクションレイヤパケット内に含まれている少なくとも１つの属性が、前記第１のトランザクションレイヤにとって認識可能でないが、前記パケットの残りのフィールドが、前記第１のトランザクションレイヤによって認識可能である、請求項１１に記載の方法。
【請求項１５】
論理トランザクションネットワークを既存の物理トランスポートネットワーク上に透過的にオーバーレイするシステムであって、
コンピュータプロセッサと、
前記コンピュータプロセッサに結合されたメモリと
を備え、前記コンピュータプロセッサが、
第１のネットワークプロトコルに準拠するネットワークの第１のトランザクションレイヤ中にある仮想チャネルを指定することと、
第２のネットワークプロトコルの第２の論理トランザクションレイヤにおいてトランザクションレイヤパケットを組み立てることと、
前記トランザクションレイヤパケットを前記第２のトランザクションレイヤから前記仮想チャネルに転送することと、
前記ネットワーク上の前記仮想チャネルを使用して、前記第１のトランザクションレイヤ上で前記トランザクションレイヤパケットを送信することと
を行うために、前記メモリ中にあるコードを実行するように構成された、
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の例は、一般に、コンピューティングシステムのバスアーキテクチャに関し、詳細には、論理トランスポートネットワークを既存の物理トランスポートネットワーク上に透過的にオーバーレイすることに関する。
【背景技術】
【０００２】
パーソナルコンピュータおよびサーバアーキテクチャは、時間とともにますます高性能になったバスシステムを採用している。周辺構成要素相互接続（ＰＣＩ）バスは、前のバス実装形態に勝るいくつかの利点を提示した。特に重要なのは、プロセッサ独立性、バッファされた分離、バスマスタリング、および真のプラグアンドプレイ動作であった。バッファされた分離は、本質的に、中央処理ユニット（ＣＰＵ）ローカルバスをＰＣＩバスから電気的に分離するとともに、クロック領域によって分離する。デバイスが自動的に検出および構成されることを可能にするプラグアンドプレイ動作により、業界標準アーキテクチャ（ＩＳＡ）ベースボードユーザをいらいらさせた、ベースアドレスおよびダイレクトメモリアクセス（ＤＭＡ）割込みのためのスイッチおよびジャンパの手動設定がなくなった。
【０００３】
ＰＣＩは大きな成功を享受したが、ＰＣＩは、帯域幅制限と、ホストピンカウント制限と、等時データ転送などのリアルタイムデータ転送サービスの欠如と、サービス品質、電力管理、キャッシュコヒーレンシ、および入出力（Ｉ／Ｏ）仮想化などの次世代Ｉ／Ｏ要件を満たすための特徴の欠如とを含む一連の課題に直面する。サービス品質測定および電力管理などの次世代Ｉ／Ｏ要件は、データ完全性を改善し、現代のＰＣによって必要とされる電力量が増え続けるので重要な考慮事項である、システムデバイスの選択的電源切断を可能にする。これらの特徴のうちのいくつかは、旧来のＰＣＩ要件以外にソフトウェア制御を必要とし、ＯＳおよびデバイスドライバサポートが利用可能になるまで利用可能でない。
【０００４】
周辺構成要素インターフェースエクスプレス（ＰＣＩｅ）は、旧来のＰＣＩ実装形態における欠陥の多くを補ったが、ＰＣＩｅは、コマンド特徴と、ルーティングと、キャッシュコヒーレンシの欠如とに関していくつかの制限を有する。ロード／ストアまたはコヒーレンシセマンティクスをもつプロトコルは、一般に、機能的正当性を維持するために、ロード／ストアを実施するデバイスのソースにかかわらず、動作／イベント間の同じアドレス順序付けをそのアドレスロケーションに対して必要とする。キャッシュコヒーレンスは、複数のローカルキャッシュに記憶された共有リソースデータの均一性である。システムにおけるクライアントが、共通メモリリソースのキャッシュを維持するとき、インコヒーレントデータに関する問題が起こることがあり、これは特に、多重処理システムにおけるＣＰＵの場合である。
【０００５】
ＰＣＩｅバスベースアーキテクチャにおけるロード／ストアまたはキャッシュコヒーレンシセマンティクスの欠如を克服するための１つのオプションは、ＰＣＩｅバスに関係するすべてのハードウェアおよびソフトウェアを、ＰＣＩｅバスと同じまたは追加の利点を有するキャッシュコヒーレントバスアーキテクチャと入れ替えることである。しかしながら、ハードウェアの完全な交換は費用がかかり、時間がかかり、エラーを起こしやすい。
【０００６】
したがって、下にあるバス構造の物理レイヤハードウェアのすべてを交換することなしに、既存のバスアーキテクチャ上に部分的にオーバーレイされ得るキャッシュコヒーレントバスアーキテクチャを提供することが望ましい。
【発明の概要】
【０００７】
論理トランスポートネットワークを既存の物理トランスポートネットワーク上に透過的にオーバーレイするための技法が開示される。一例では、方法が、第１のネットワークプロトコルに準拠するネットワークの第１のトランザクションレイヤ中にある仮想チャネルを指定することと、第２のネットワークプロトコルの第２の論理トランザクションレイヤにおいてトランザクションレイヤパケットを組み立てることと、トランザクションレイヤパケットを第２のトランザクションレイヤから仮想チャネルに転送することとを含む。本方法は、ネットワーク上の仮想チャネルを使用して、第１のトランザクションレイヤ上でトランザクションレイヤパケットを送信することをも含む。
【０００８】
いくつかの実施形態では、トランザクションレイヤパケットは、第１のトランザクションレイヤにとって認識可能なサードパーティ識別子と、第２の論理トランザクションレイヤにとって認識可能な、サードパーティメッセージタイプおよびサードパーティヘッダとを含む。
【０００９】
いくつかの実施形態では、第１のトランザクションレイヤは、データリンクレイヤ、および第１のネットワークプロトコルに準拠する物理レイヤ上でトランザクションレイヤパケットを送信する。
【００１０】
いくつかの実施形態では、第２のトランザクションレイヤは、物理レイヤの既存のプロパティを活用するが、第２の論理トランザクションレイヤに特有であるサービスクラス（ＣＯＳ）属性を採用する。
【００１１】
いくつかの実施形態では、ＣＯＳ属性は、低レイテンシ属性およびプロトコル属性のうちの少なくとも１つである。
【００１２】
いくつかの実施形態では、トランザクションレイヤパケット内に含まれている少なくとも１つの属性が、第１のトランザクションレイヤにとって認識可能でないが、パケットの残りのフィールドが、第１のトランザクションレイヤによって認識可能である。
【００１３】
いくつかの実施形態では、パケットの残りのフィールドは、第２の論理トランザクションレイヤに特有である。
【００１４】
いくつかの実施形態では、第２のネットワークプロトコルは、ロード／ストアセマンティクスを含んでいる。
【００１５】
いくつかの実施形態では、第１のネットワークプロトコルはＰＣＩｅプロトコルであり、第２のネットワークプロトコルはＣＣＩＸプロトコルである。
【００１６】
いくつかの実施形態では、第２の論理トランザクションレイヤは順序パケット配信を提供する。
【００１７】
別の例では、方法が、第１のネットワークプロトコルに準拠するネットワークの第１のトランザクションレイヤ中にあるトランザクションレイヤパケットを受信することと、第２のネットワークプロトコルに準拠する第２の論理トランザクションレイヤによる使用のために指定された第１のトランザクションレイヤ中にある仮想チャネルからトランザクションレイヤパケットを抽出することとを含む。本方法は、第２の論理トランザクションレイヤにとって認識可能な第２のネットワークプロトコルに準拠するトランザクションレイヤパケットを組み立てることと、トランザクションレイヤパケットを仮想チャネルから第２のトランザクションレイヤに転送することとをも含む。
【００１８】
別の例では、システムが、論理トランザクションネットワークを既存の物理トランスポートネットワーク上に透過的にオーバーレイする。本システムは、コンピュータプロセッサと、コンピュータプロセッサに結合されたメモリとを含む。コンピュータプロセッサは、第１のネットワークプロトコルに準拠するネットワークの第１のトランザクションレイヤ中にある仮想チャネルを指定することと、第２のネットワークプロトコルの第２の論理トランザクションレイヤにおいてトランザクションレイヤパケットを組み立てることと、トランザクションレイヤパケットを第２のトランザクションレイヤから仮想チャネルに転送することとを行うために、メモリ中にあるコードを実行するように構成される。コンピュータプロセッサはまた、ネットワーク上の仮想チャネルを使用して、第１のトランザクションレイヤ上でトランザクションレイヤパケットを送信するように構成される。
【００１９】
これらおよび他の態様は、以下の発明を実施するための形態を参照しながら理解され得る。
【００２０】
上記の具陳された特徴が詳細に理解され得るように、上記で手短に要約されたより詳細な説明は、添付の図面にその一部が示されている例示的な実装形態を参照することによってなされ得る。しかしながら、添付の図面は、典型的な例示的な実装形態を示すにすぎず、したがって、その範囲の限定と見なされるべきでないことに留意されたい。
【図面の簡単な説明】
【００２１】
【図１】一例による、論理トランスポートネットワークを既存の物理トランスポートネットワーク上に透過的にオーバーレイするためのシステムを示すブロック図である。
【図２】ＰＣＩｅデバイスがＰＣＩｅ上でロード／ストアおよびコヒーレンシセマンティクスを有することを可能にするＣＣＩＸ機能性をもつＰＣＩｅデバイスを示す図である。
【図３】ＰＣＩｅパケットのレイアウトを示す図である。
【図４】ツリートポロジーを有するＰＣＩｅネットワークのブロック図である。
【図５】一例による、論理トランスポートネットワークを既存の物理トランスポートネットワーク上に透過的にオーバーレイするための第１の方法を示す流れ図である。
【図６】一例による、論理トランスポートネットワークを既存の物理トランスポートネットワーク上に透過的にオーバーレイするための方法を示す流れ図である。
【図７】一例による、プログラマブルＩＣを示すブロック図である。
【図８】一例による、プログラマブルＩＣのシステムオンチップ（ＳｏＣ）実装形態を示すブロック図である。
【図９】一例による、プログラマブルＩＣのフィールドプログラマブルゲートアレイ（ＦＰＧＡ）実装形態を示す図である。
【発明を実施するための形態】
【００２２】
理解を容易にするために、可能な場合、図に共通である同一の要素を指定するために同一の参照番号が使用されている。一例の要素が、他の例に有益に組み込まれ得ることが企図される。
【００２３】
図を参照しながら様々な特徴が本明細書で説明される。図は一定の縮尺で描かれることも描かれないこともあり、同様の構造または機能の要素が、図全体にわたって同様の参照番号によって表されることに留意されたい。図は、特徴の説明を容易にすることを意図されているにすぎないことに留意されたい。図は、請求される本発明の網羅的な説明として、または請求される本発明の範囲に対する限定として意図されていない。さらに、示されている例は、すべての態様または利点が示される必要があるとは限らない。特定の例に関して説明される一態様または利点は、必ずしもその例に限定されるとは限らず、そのように示されていない場合でも、またはそのように明示的に説明されていない場合でも、任意の他の例において実施され得る。
【００２４】
論理トランスポートネットワークを既存の物理トランスポートネットワーク上に透過的にオーバーレイするための技法が開示される。組み合わせられた論理／物理トランスポートネットワークは、物理トランスポートの既存のプロパティを活用するが、その論理トランスポートネットワークに特有であり、物理トランスポートネットワーク上でネイティブに利用可能でない、サービスクラス（ＣＯＳ）属性をも含む。一例では、物理トランスポートネットワークおよびプロトコルは、限定はしないが、周辺構成要素相互接続エクスプレス（ＰＣＩｅ）ネットワークであり得る。ＰＣＩｅプロトコルスタックは、組み込まれた物理レイヤおよびデータリンクレイヤを含む。一例では、論理トランスポートネットワークは、限定はしないが、アクセラレータのためのキャッシュコヒーレンス相互接続（ＣＣＩＸ：Ｃａｃｈｅ  Ｃｏｈｅｒｅｎｃｅ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｆｏｒ  Ａｃｃｅｌｅｒａｔｏｒｓ）プロトコルのトランスポートレイヤを含み得る。本明細書で説明される技法は、ＣＣＩＸメッセージの論理トランスポートのためのＰＣＩｅ仮想チャネル（ＶＣ）を指定する。本技法は、ベンダー定義メッセージ（ＶＤＭ：Ｖｅｎｄｏｒ  Ｄｅｆｉｎｅｄ  Ｍｅｓｓａｇｅ）として知られるＰＣＩｅサードパーティメッセージを介して、ＰＣＩｅ物理トランスポートレイヤ上で透過的に搬送される論理トランスポートネットワークのためのサービスクラス属性を作成する。本技法は、ＰＣｌｅ規格トランザクションレイヤパケット（ＴＬＰ）とは異なり、指定されたＶＣ上でのみ搬送される、最適化されたＴＬＰを作成する。最適化されたＴＬＰは、オーバーレイされた論理トランスポートネットワークに固有である、低レイテンシ属性とプロトコル属性とを含んでいる。
【００２５】
本開示の例は、ＣＣＩＸ論理トランスポートの要件を満たす利用可能なＰＣＩｅ機構を活用する。ＣＣＩＸ論理トランスポート属性は、その物理電気レイヤおよび物理論理レイヤと、そのデータリンクレイヤと、ＶＤＭをもつそのトランザクションレイヤとの中にある、ＰＣＩｅ定義された機構上にオーバーレイされる。ＰＣＩｅ  ＴＬＰパケット定義とは異なるＣＣＩＸパケット定義は、トランザクションレイヤのＰＣＩｅ  ＶＤＭ上にオーバーレイされ、順序パケット配信のＣＣＩＸプロパティが、ＶＤＭの順序配信のＰＣＩｅ  ＴＬＰプロパティを介しても達成される。
【００２６】
本開示の例は、新しい機構が論理トランスポートのために必要とされるが、物理トランスポート上でネイティブに利用可能でないとき、それらの機構を定義する。この機構は、ＰＣＩｅ仮想チャネル（ＶＣ）を指定することを伴い、ここで、そのＶＣ上のＰＣＩｅ  ＶＤＭは、ＣＣＩＸ論理トランスポートに特有のプロパティを含んでいる。それらのプロパティは、サービスクラス属性と、その指定されたＰＣＩｅ仮想チャネル内でトランスポートされたＣＣＩＸ仮想チャネルとを含む。それらのプロパティから導出されたＣＣＩＸ機能は、これらのＶＤＭがＰＣＩｅ上で透過的に搬送されるので、ＰＣＩｅトランザクションレイヤを介して接続されたデバイス上で広く利用可能である。
【００２７】
さらに、本開示の例は、ＰＣＩｅ規格トランザクションレイヤパケット（ＴＬＰ）とは異なり、その指定されたＶＣをもつあるデバイスから、その指定されたＶＣと同じＶＣをもつ別のデバイスにのみ搬送される、最適化されたＴＬＰの作成を可能にする。最適化されたＴＬＰは、ＣＣＩＸに固有である、低レイテンシ属性とプロトコル属性とを含んでいる。
【００２８】
図１は、一例による、論理トランスポートネットワークを既存の物理トランスポートネットワーク上に透過的にオーバーレイするためのシステム１００を示すブロック図である。システム１００は、コンピュータシステム１０２を含む。コンピュータシステム１０２は、ハードウェアプラットフォーム（「ハードウェア１０４」）と、ハードウェア１０４上で実行するソフトウェアプラットフォーム（「ソフトウェア１０６」）とを含む。ハードウェア１０４は、処理システム１１０と、システムメモリ１１６と、ストレージデバイス（「ストレージ１１８」）と、周辺デバイス１２２とを含む。ソフトウェア１０６は、オペレーティングシステム（ＯＳ）１４４と、デバイスドライバ１４６と、アプリケーション１５０とを含む。ＯＳ１４４は、実施形態によれば、ＰＣＩｅデータリンクレイヤおよび物理レイヤ上で、ＣＣＩＸトランザクションレイヤを実装するように構成された、組み合わせられたＣＣＩＸ／ＰＣＩｅプロトコルスタック１５２を実装するように構成される。
【００２９】
処理システム１１０は、さらに、マイクロプロセッサ１１２と、サポート回路１１４と、周辺バス１１５とを含む。マイクロプロセッサ１１２は、ｘ８６ベースプロセッサ、ＡＲＭ（登録商標）ベースプロセッサなど、任意のタイプの汎用中央処理ユニット（ＣＰＵ）であり得る。マイクロプロセッサ１１２は、１つまたは複数のコアと、関連する回路要素（たとえば、キャッシュメモリ、メモリ管理ユニット（ＭＭＵ）、割込みコントローラなど）とを含むことができる。マイクロプロセッサ１１２は、本明細書で説明される１つまたは複数の動作を実施するプログラムコードを実行するように構成され、それらのプログラムコードは、システムメモリ１１６および／またはストレージ１１８に記憶され得る。サポート回路１１４は、マイクロプロセッサ１１２と協働して、マイクロプロセッサ１１２、システムメモリ１１６、ストレージ１１８、周辺デバイス１２２、または任意の他の周辺デバイスの間のデータフローを管理する、様々なデバイスを含む。たとえば、サポート回路１１４は、チップセット（たとえば、ノースブリッジ、サウスブリッジ、プラットフォームホストコントローラなど）、電圧調節器、ファームウェア（たとえば、ＢＩＯＳ）などを含むことができる。サポート回路１１４は、マイクロプロセッサ１１２と周辺バス１１５との間のデータフローを管理し、そこに周辺デバイス１２２などの様々な周辺機器が接続される。いくつかの例では、マイクロプロセッサ１１２は、チップセット（たとえば、ノースブリッジ、サウスブリッジなど）の機能性の全部または実質的部分を吸収する、システムインパッケージ（ＳｉＰ）、システムオンチップ（ＳｏＣ）などであり得る。周辺バスは、周辺構成要素相互接続エクスプレス（ＰＣＩｅ）など、拡張バス規格を実装することができる。本例では、処理システム１１０は、周辺デバイス１２２とは別個に示されている。以下でさらに説明される他の例では、処理システム１１０と周辺デバイス１２２とは、同じ集積回路（ＩＣ）上に実装され得る。
【００３０】
システムメモリ１１６は、実行可能な命令およびデータなど、情報が記憶され、取り出されることを可能にするデバイスである。システムメモリ１１６は、たとえば、ダブルデータレート（ＤＤＲ）ダイナミックＲＡＭ（ＤＲＡＭ）など、１つまたは複数のランダムアクセスメモリ（ＲＡＭ）モジュールを含むことができる。ストレージ１１８は、ローカルストレージデバイス（たとえば、１つまたは複数のハードディスク、フラッシュメモリモジュール、ソリッドステートディスク、および光ディスク）、および／またはコンピュータシステム１０２が１つまたは複数のネットワークデータストレージシステムと通信することを可能にするストレージインターフェースを含む。ハードウェア１０４は、グラフィックスカード、ユニバーサルシリアルバス（ＵＳＢ）インターフェースなど、コンピューティングシステムの様々な他の従来のデバイスおよび周辺機器を含むことができる。
【００３１】
周辺デバイス１２２は、プログラマブルＩＣ１２８と、不揮発性メモリ１２４と、ＲＡＭ１２６とを含む。プログラマブルＩＣ１２８は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）など、またはＦＰＧＡを有するＳｏＣなどであり得る。ＮＶＭ１２４は、フラッシュメモリなど、任意のタイプの不揮発性メモリを含むことができる。ＲＡＭ１２６は、ＤＤＲ  ＤＲＡＭなどを含むことができる。プログラマブルＩＣ１２８は、ＮＶＭ１２４およびＲＡＭ１２６に結合される。プログラマブルＩＣ１２８は、処理システム１１０の周辺バス１１５にも結合される。プログラマブルＩＣ１２８は、さらに、周辺バス１１５の物理レイヤを実装するＰＣＩｅ回路論理１３０Ａを含み、周辺デバイス１２２など、ＣＣＩＸトランスポートプロトコルアウェアデバイスに固有のハードウェア特徴を実装するための、およびＣＣＩＸファームウェア１１９を実装するためのＣＣＩＸカスタム論理１３０Ｂを含み得る。
【００３２】
ＯＳ１４４は、当技術分野において知られている任意のコモディティオペレーティングシステムであり得る。ドライバ１４６は、周辺デバイス１２２に、ドライバ１４６のコマンドおよび制御のためのアプリケーションプログラミングインターフェース（ＡＰＩ）を提供する、ドライバとライブラリとを含む。アプリケーション１５０は、ＣＣＩＸ／ＰＣＩｅ属性とトランザクションレイヤパケット（ＴＬＰ）とを送信するために、組み合わせられたＣＣＩＸ／ＰＣＩｅプロトコルスタック１５２を通して周辺デバイス１２２を呼び出す、マイクロプロセッサ１１２上で実行するソフトウェアを含む。アプリケーション１５０は、ニューラルネットワーク、ビデオ処理、ネットワーク処理、または、周辺デバイス１２２にいくつかの機能をオフロードする同様のタイプのアプリケーションを含むことができる。
【００３３】
ＣＣＩＸアーキテクチャ仕様は５つの個別論理レイヤを備える。これらは、ＣＣＩＸプロトコルレイヤと、ＣＣＩＸリンクレイヤと、ＣＣＩＸトランザクションレイヤとを含む。ＣＣＩＸトランザクションレイヤと、データリンクと、物理レイヤとは、合わせてＣＣＩＸトランスポートと呼ばれる。ＣＣＩＸアーキテクチャ仕様は、ＰＣＩｅトランザクションレイヤと、ＰＣＩｅデータリンクレイヤと、ＰＣＩｅ物理レイヤとをも含む。これらのレイヤの各々は、２つのセクション、すなわち、アウトバウンド（送信されるべき）情報を処理するセクションと、インバウンド（受信された）情報を処理するセクションとに分割される。
【００３４】
図２は、ＰＣＩｅデバイス２００がＰＣＩｅ上でロード／ストアおよびコヒーレンシセマンティクスを有することを可能にするＣＣＩＸ機能性をもつＰＣＩｅデバイス２００を示す。ＰＣＩｅデバイス２００は、１つまたは複数のギガビットトランシーバ（ＧＴ）２０２に結合される。ＰＣＩｅデバイス２００は、ＰＣＩｅ物理レイヤ２０４とＰＣＩｅデータリンクレイヤ２０６とを保持するが、ＣＣＩＸアウェアデバイスがＣＣＩＸトランスポートの特徴を採用することができるように、ＰＣＩｅトランザクションレイヤ２１０がＣＣＩＸトランザクションレイヤ２０８と並んで存在することを可能にする。ＣＣＩＸ仕様は、ＰＣＩｅトランザクションレイヤ２１０を変更しない。ＰＣＩｅトランザクションレイヤ２１０の主要な任務は、トランザクションレイヤパケット（ＴＬＰ）の組立および分解である。ＴＬＰは、トランザクション（たとえば、読取り、書込み）、ならびにいくつかのタイプのイベントを通信するために使用される。ＰＣＩｅトランザクションレイヤ２１０はまた、ＴＬＰのためのクレジットベースフロー制御を管理するための役目を果たす。ＣＣＩＸ仕様は、ＰＣＩｅデータリンクレイヤ２０６とＰＣＩｅ物理レイヤ２０４とを変更せず、それらをそのまま利用する。ＰＣＩｅデータリンクレイヤ２０６は、ＰＣＩｅトランザクションレイヤ２１０とＣＣＩＸトランザクションレイヤ２０８との間の中間段として機能する。ＰＣＩｅデータリンクレイヤ２０６の主要な任務は、誤り検出と誤り訂正とを含む、リンク管理とデータ完全性とを含む。
【００３５】
論理トランスポートネットワークを既存の物理トランスポート（たとえば、ＰＣＩｅ）上に透過的にオーバーレイする技法は、新しいトランザクションレイヤ、たとえば、ＣＣＩＸトランザクションレイヤ２０８を定義する。ＣＣＩＸトランザクションレイヤ２０８は、マルチ仮想チャネル（ＶＣ）実装形態において、ＰＣＩｅ  ＶＣのうちの１つにおけるＰＣＩｅトランザクションレイヤ２１０と入れ替わる。ＣＣＩＸトランザクションレイヤ２０８は、最適化されたＣＣＩＸ適合ＴＬＰとＰＣＩｅ適合ＴＬＰとをサポートする、低減されたＰＣＩｅトランザクションレイヤである。
【００３６】
ＣＣＩＸトランザクションレイヤの主要な任務は、ＣＣＩＸトランザクションレイヤパケット（ＴＬＰ）の組立および分解である。受信経路上で、ＣＣＩＸトランザクションレイヤ２０８は、ＰＣＩｅデータリンクレイヤ２０６にＴＬＰをフォワーディングする前に、ＣＣＩＸ  ＴＬＰ完全性を検査する。ＰＣＩｅ適合ＴＬＰの場合、ＰＣＩエクスプレスベース仕様において規定されたＰＣＩｅトランザクションレイヤ２１０検査が適用可能である。最適化されたＴＬＰの場合、ＣＣＩＸトランザクションレイヤ検査の新しいセットが規定される。
【００３７】
ＣＣＩＸトランザクションレイヤ２０８はまた、ＣＣＩＸ  ＴＬＰのためのクレジットベースフロー制御を管理するための役目を果たす。受信経路上で、ポスティングされたフロー制御クレジットは、データ完全性検査に合格するＣＣＩＸ  ＴＬＰのために返され、ＣＣＩＸトランザクションレイヤ２０８にフォワーディングされる。送信経路では、クレジットゲートが、利用可能なポスティングされたクレジットに基づいて、ＣＣＩＸ  ＴＬＰのフローを制御するために実装される。これらのポスティングされたクレジットは、リンク全体で定義される。
【００３８】
ＣＣＩＸは、ＰＣＩＥデータリンクレイヤ２０６と物理レイヤ２０４との上で情報を通信するためにトランザクションレイヤパケット（ＴＬＰ）を使用する。送信パケットが、ＣＣＩＸトランザクションレイヤ２０８と、ＰＣＩＥデータリンクレイヤ２０６と、ＰＣＩｅ物理レイヤ２０４とを通して下流に流れるので、ＣＣＩＸパケットは、上述のレイヤの各々においてパケットをハンドリングするために必要な追加情報で拡大される。受信側において、逆方向プロセスが行われ、パケットは、ＰＣＩｅ物理レイヤ２０４表現からＰＣＩＥデータリンクレイヤ２０６表現に変換され、最終的に、（トランザクションレイヤパケットについて）受信デバイスのＣＣＩＸトランザクションレイヤ２０８によって処理され得る形式に変換される。
【００３９】
ＣＣＩＸトランスポートは、指定されたＰＣＩｅ仮想チャネル上にある。指定されたＶＣは、他のＰＣＩｅトラフィックからの性能分離を可能にし、また、他のＰＣＩｅトラフィックとのリソース依存性デッドロックを防ぐ。ＣＣＩＸプロトコルメッセージが、サードパーティＰＣＩｅベンダー定義メッセージ（ＶＤＭ）を介して送信される。ＰＣＩｅ  ＶＤＭは、ＶＤＭの順序付けプロパティと、ＶＤＭの性能プロパティとを活用し、ポスティングされたトランザクション、すなわち、ファイアアンドフォゲットトランザクションになる。送信側は、パケットが確認応答されるのを待つ必要がなく、また、ＰＣＩｅ順序付きネットワークが時間順序で複数のＶＤＭを配信することに依拠することができる。ＣＣＩＸトラフィックのための指定された仮想チャネルでは、ＣＣＩＸトランザクションレイヤ２０８が指定され得る。ＰＣＩｅトランスポート上に現れるトラフィックは、そのトラフィックがＣＣＩＸ  ＶＣ上にあるのか非ＣＣＩＸ  ＶＣ上にあるのかに応じて、ＣＣＩＸトランザクションレイヤ２０８またはＰＣＩｅトランザクションレイヤ２１０に分岐する。これは、レイテンシおよび帯域幅の利点を与え、それらの利点は、概して、ロード／ストアおよびコヒーレンシプロトコルにとって重要である。また、ＰＣＩｅに依存しないＣＣＩＸトランザクションレイヤ２０８はまた、ＰＣＩｅトランザクションレイヤにおいて利用可能でない特徴を可能にすることによって、レイテンシおよび性能の利点を与え、これは、ＣＣＩＸ要求チェイニングとＣＣＩＸメッセージパッキングとを含む。
【００４０】
図３は、ＰＣＩｅ／ＴＬＰパケット３００のレイアウトを示す。ＰＣＩｅ／ＴＬＰパケット３００は、少なくとも、ペイロード３０２と、ベンダーＩＤ（ベンダー固有識別子）フィールド３０４と、メッセージコードフィールド３０６とを含む。ＯＳ１４４は、デバイス間のパケットトラフィックをハンドリングするためのＰＣＩｅ仮想チャネルを作成し、採用する。ＣＣＩＸベンダー定義ＶＤＭがＯＳ１４４によって検出されると、ＣＣＩＸファームウェア１１９は、ＰＣＩｅトランザクションレイヤ２１０に知られていない、ＣＣＩＸトランザクションレイヤ２０８中のＰＣＩｅ仮想チャネルを有効化する。ＣＣＩＸカスタム論理１３０Ｂが、ＣＣＩＸ指定ＰＣＩｅ仮想チャネルの有効化を発見すると、ＣＣＩＸカスタム論理１３０Ｂは、続いて、組み合わせられたＣＣＩＸ／ＰＣＩｅプロトコルスタック１５２中にあるＰＣＩｅパケットが、ＣＣＩＸベースデバイスにとって認識可能であるベンダー定義メッセージを、ＰＣＩｅパケット中に含んでいるかどうかを発見する。ＰＣＩｅは、ベンダー定義メッセージと呼ばれる、ＰＣＩｅのプロトコル内の既存のサードパーティベンダー識別子（ＩＤ）とサードパーティパケットタイプとを認識するように構成される。ＣＣＩＸは、ＣＣＩＸの任意のベンダーからのあらゆるＣＣＩＸベースデバイスが、通信において認識および採用することができるベンダー定義メッセージを使用する。ＰＣＩｅトランザクションレイヤ２１０は、ＣＣＩＸ仮想チャネル上でＰＣＩｅ属性を認識し、これらの属性が、ＰＣＩｅの能力を拡大するＣＣＩＸ属性として指定されることに気づいていない。
【００４１】
図３は、ＰＣＩｅ／ＴＬＰパケット３００のレイアウトを示す。ＰＣＩｅ／ＴＰＬパケット３００は、ヘッダ３０１とペイロード３０２とを含む。図１および図３を参照すると、ＣＣＩＸアウェアファームウェア１１９が、ＰＣＩＥ適合ＴＬＰパケット３００において、ヘッダ３０１中のベンダーＩＤ３０４と呼ばれるベンダー固有識別子を有することを検出する。ＣＣＩＸファームウェア１１９は、次いで、ベンダー定義メッセージとしてパケットを識別するヘッダ３０１中のメッセージコードフィールド３０６を調査する。ＣＣＩＸ通信に関連するＶＤＭを含んでいるＣＣＩＸヘッダ３０１を検出したことに応答して、ＣＣＩＸアウェアファームウェア１１９は、ＣＣＩＸパケットをどのように処理すべきかを決定するために、ＴＬＰパケット３００内に組み込まれたＣＣＩＸ  ＴＬＰのＣＣＩＸベースヘッダ３０１のコンテンツを調査する。ＣＣＩＸファームウェア１１９は、次いで、ＣＣＩＸアウェアＯＳ１４４に、ＶＤＭ中に含まれている情報がＣＣＩＸアウェアアプリケーションに関連し、ＣＣＩＸアウェアＯＳ１４４が、ＣＣＩＸトランザクションレイヤ２０８上で受信された１つまたは複数のＣＣＩＸタイプＴＬＰを処理することを予想するべきであることを知らせる。
【００４２】
ＣＣＩＸは、さらに、指定されたベンダー固有の消耗された能力（ＤＶＳＥＣ：Ｄｅｓｉｇｎａｔｅｄ  Ｖｅｎｄｏｒ−Ｓｐｅｃｉｆｉｃ  Ｅｘｐｅｎｄｅｄ  Ｃａｐａｂｉｌｉｔｉｅｓ）と呼ばれる、ベンダー定義メッセージのカウンターパートであるソフトウェアデータ構造を採用する。このＤＶＳＥＣソフトウェアデータ構造は、デバイスベンダー固有である。ＯＳ１４４が、ＤＶＳＥＣベンダー定義メッセージ識別子を認識するとき、ＯＳ１４４は、不随するＤＶＳＥＣパケットが、ＰＣＩｅによって認識可能でない追加の属性を有することを認識する。ＯＳ１４４は、次いで、ＤＶＳＥＣ属性およびパケットを解釈するために、ＣＣＩＸアウェアファームウェア１１９を調べる。したがって、ＯＳ１４４のＰＣＩｅ部分は、ＰＣＩｅ部分がＣＣＩＸパケットをハンドリングする必要があることに気づかされるが、パケットの組み込まれた属性をどのように解釈すべきかに気づいていないままである。ＯＳ１４４は、次いで、さらなる解釈のために、組み合わせられたＣＣＩＸ／ＰＣＩｅプロトコルスタック１５２のＣＣＩＸトランザクションレイヤ２０８と、ＣＣＩＸファームウェア１１９とにＤＶＳＥＣメッセージをフォワーディングする。
【００４３】
図４は、ツリートポロジーを有するＰＣＩｅネットワーク４００のブロック図である。ＰＣＩｅネットワーク４００は、ＰＣＩｅデバイス４０８ａ〜４０８ｎのセットおよび複数のＣＣＩＸアウェアデバイス４１０ａ〜４１０ｎと通信するＰＣＩｅスイッチ４０６に接続されたＰＣＩｅルートポート４０４を含むホスト／サーバ４０２を含む。仮想チャネル上でＶＤＭを使用して、あるＣＣＩＸデバイス（たとえば、４１０ａ）から別のＣＣＩＸデバイス（たとえば、４１０ｎ）に進行すべきトラフィックが、要求された宛先に進行する前にＰＣＩｅスイッチ４０６を横断する必要がある。
【００４４】
ＰＣＩｅデバイス４０８ａ〜４０８ｎ間で送られるメッセージは、実質的に、ポイントツーポイントメッセージである。しかしながら、ＣＣＩＸアウェアデバイス４１０ａ〜４１０ｎは、旧来のＰＣＩｅデバイスにおいて見つけられないいくつかの拡大された能力を有する。たとえば、デバイス４１０ａは、デバイス４１０ｎのアドレスを有するＶＤＭをもつＴＬＰを送ることができる。ＴＬＰメッセージが、ＰＣＩｅスイッチ４０６を通して宛先デバイス４１０ｎにトランスポートされると、デバイス４１０ｎは、さらに、拡張された能力を用いて、受信されたＶＤＭを解釈することができる。拡張された能力のうちの１つのタイプは、ＶＤＭが、ネットワーク４００におけるさらなるＣＣＩＸアウェアデバイス（図示せず）に、受信されたメッセージを送信するようにとの命令を含んでいることがあることである。ＰＣＩｅトランザクションレイヤ２１０は、このさらなる送信に気づいていない。
【００４５】
図５は、一例による、論理トランスポートネットワークを既存の物理トランスポートネットワーク上に透過的にオーバーレイするための第１の方法５００を示す流れ図である。方法５００の態様は、図１〜図４を参照しながら理解され得る。方法５００は、ブロック５０２において開始し、コンピュータシステム１０２が、第１のネットワークプロトコルに準拠するネットワークの第１のトランザクションレイヤ中にある仮想チャネルを指定する。ブロック５０４において、コンピュータシステム１０２は、第１のトランザクションレイヤによっても認識可能である、第２のネットワークプロトコルの第２の論理トランザクションレイヤにおいてトランザクションレイヤパケットを組み立てる。トランザクションレイヤパケット内に含まれている少なくとも１つの属性が、第１のトランザクションレイヤにとって認識可能でないが、パケットの残りのフィールドが、第１のトランザクションレイヤによって認識可能である。パケットの残りのフィールドは、第２の論理トランザクションレイヤに特有である。
【００４６】
一例では、トランザクションレイヤパケットは、第１のトランザクションレイヤにとって認識可能なサードパーティ識別子と、第２の論理トランザクションレイヤにとって認識可能な、サードパーティメッセージタイプおよびサードパーティヘッダとを含む。ブロック５０６において、コンピュータシステム１０２は、トランザクションレイヤパケットを第２のトランザクションレイヤから仮想チャネルに転送する。ブロック５０８において、コンピュータシステム１０２は、ネットワーク上の指定された仮想チャネルを使用して、第１のトランザクションレイヤ上でトランザクションレイヤパケットを送信する。一例では、第１のトランザクションレイヤは、データリンクレイヤ、および第１のネットワークプロトコルに準拠する物理レイヤ上でトランザクションレイヤパケットを送信する。
【００４７】
一例では、第２のトランザクションレイヤは、物理レイヤの既存のプロパティを活用するが、第２の論理トランザクションレイヤに特有であるサービスクラス（ＣＯＳ）属性を採用する。ＣＯＳ属性は、低レイテンシ属性およびプロトコル属性のうちの少なくとも１つである。
【００４８】
一例では、第２のネットワークプロトコルはキャッシュコヒーレントである。一例では、第１のネットワークプロトコルはＰＣＩｅプロトコルであり、第２のネットワークプロトコルはＣＣＩＸプロトコルである。
【００４９】
図６は、一例による、論理トランスポートネットワークを既存の物理トランスポートネットワーク上に透過的にオーバーレイするための第２の方法６００を示す流れ図である。方法６００の態様は、図１〜図４を参照しながら理解され得る。方法６００は、ブロック６０２において開始し、コンピュータシステム１０２が、第１のネットワークプロトコルに準拠するネットワークの第１のトランザクションレイヤ中にあるトランザクションレイヤパケットを受信する。ブロック６０４において、コンピュータシステム１０２は、第２のネットワークプロトコルに準拠する第２の論理トランザクションレイヤによる使用のために指定された第１のトランザクションレイヤ中にある仮想チャネルからトランザクションレイヤパケットを抽出する。トランザクションレイヤパケット内に含まれている少なくとも１つの属性が、第１のトランザクションレイヤにとって認識可能でないが、パケットの残りのフィールドが、第１のトランザクションレイヤによって認識可能である。パケットの残りのフィールドは、第２の論理トランザクションレイヤに特有である。
【００５０】
一例では、トランザクションレイヤパケットは、第１のトランザクションレイヤにとって認識可能なサードパーティ識別子と、第２の論理トランザクションレイヤにとって認識可能な、サードパーティメッセージタイプおよびサードパーティヘッダとを含む。ブロック６０６において、コンピュータシステム１０２は、第２の論理トランザクションレイヤにとって認識可能な第２のネットワークプロトコルに準拠するトランザクションレイヤパケットを組み立てる。ブロック６０８において、コンピュータシステム１０２は、トランザクションレイヤパケットを仮想チャネルから第２のトランザクションレイヤに転送する。
【００５１】
一例では、トランザクションレイヤパケットは、第１のトランザクションレイヤにとって認識可能なサードパーティ識別子と、第２の論理トランザクションレイヤにとって認識可能な、サードパーティメッセージタイプおよびサードパーティヘッダとを含む。ブロック６１０において、コンピュータシステム１０２の第２の論理トランザクションレイヤは、サードパーティメッセージタイプに基づいて、トランザクションレイヤパケットからサードパーティヘッダを抽出し、処理する。
【００５２】
一例では、第２のトランザクションレイヤは、物理レイヤの既存のプロパティを活用するが、第２の論理トランザクションレイヤに特有であるサービスクラス（ＣＯＳ）属性を採用する。ＣＯＳ属性は、低レイテンシ属性およびプロトコル属性のうちの少なくとも１つである。
【００５３】
一例では、第２のネットワークプロトコルはキャッシュコヒーレントである。一例では、第１のネットワークプロトコルはＰＣＩｅプロトコルであり、第２のネットワークプロトコルはＣＣＩＸプロトコルである。
【００５４】
図７は、一例による、プログラマブルＩＣ１を示すブロック図である。プログラマブルＩＣ１は、プログラマブル論理３と、構成論理２５と、構成メモリ２６とを含む。プログラマブルＩＣ１は、不揮発性メモリ２７、ＤＲＡＭ２８、および他の回路２９など、外部回路に結合され得る。プログラマブル論理３は、論理セル３０と、サポート回路３１と、プログラマブル相互接続３２とを含む。論理セル３０は、複数の入力の一般的な論理関数を実装するように構成され得る回路を含む。サポート回路３１は、トランシーバ、入出力ブロック、デジタル信号プロセッサ、メモリなどの専用の回路を含む。論理セルとサポート回路３１とは、プログラマブル相互接続３２を使用して相互接続され得る。論理セル３０をプログラムするための情報と、サポート回路３１のパラメータを設定するための情報と、プログラマブル相互接続３２をプログラムするための情報とが、構成論理２５によって構成メモリ２６に記憶される。構成論理２５は、不揮発性メモリ２７または任意の他のソース（たとえば、ＤＲＡＭ２８または他の回路２９）から構成データを取得することができる。いくつかの例では、プログラマブルＩＣ１は処理システム２を含む。処理システム２は、（１つまたは複数の）マイクロプロセッサ、メモリ、サポート回路、ＩＯ回路などを含むことができる。
【００５５】
図８は、一例による、プログラマブルＩＣ１のシステムオンチップ（ＳｏＣ）実装形態を示すブロック図である。本例では、プログラマブルＩＣ１は、処理システム２とプログラマブル論理３とを含む。処理システム２は、リアルタイム処理ユニット（ＲＰＵ）４、アプリケーション処理ユニット（ＡＰＵ）５、グラフィックス処理ユニット（ＧＰＵ）６、構成およびセキュリティユニット（ＣＳＵ）１２、プラットフォーム管理ユニット（ＰＭＵ）１１など、様々な処理ユニットを含む。処理システム２は、オンチップメモリ（ＯＣＭ）１４、トランシーバ７、周辺機器８、相互接続１６、ＤＭＡ回路９、メモリコントローラ１０、周辺機器１５、および多重化ＩＯ（ＭＩＯ）回路１３など、様々なサポート回路をも含む。処理ユニットとサポート回路とは、相互接続１６によって相互接続される。ＰＬ３も、相互接続１６に結合される。トランシーバ７は、外部ピン２４に結合される。ＰＬ３は、外部ピン２３に結合される。メモリコントローラ１０は、外部ピン２２に結合される。ＭＩＯ１３は、外部ピン２０に結合される。ＰＳ２は、一般に、外部ピン２１に結合される。ＡＰＵ５は、ＣＰＵ１７と、メモリ１８と、サポート回路１９とを含むことができる。
【００５６】
図８の例では、プログラマブルＩＣ１は、周辺デバイス１２２において使用され得、上記で説明されたように機能することができる。ＰＣＩｅ回路論理１３０ＡおよびＣＣＩＸカスタム論理１３０Ｂは、ＰＬ３においてプログラムされ、上記で説明されたように機能することができる。別の例では、上記で説明されたハードウェア１０４の機能性は、コンピューティングシステムのハードウェアを通してではなく、ＰＳ２を使用して実装され得る。そのような場合、ソフトウェア１０６はＰＳ２上で実行し、上記で説明されたように機能する。
【００５７】
ＰＳ２を参照すると、処理ユニットの各々が、１つまたは複数の中央処理ユニット（ＣＰＵ）と、メモリ、割込みコントローラ、ダイレクトメモリアクセス（ＤＭＡ）コントローラ、メモリ管理ユニット（ＭＭＵ）、浮動小数点ユニット（ＦＰＵ）など、関連する回路とを含む。相互接続１６は、処理ユニットを相互接続し、ならびにＰＳ２中の他の構成要素を処理ユニットに相互接続するように構成された、様々なスイッチ、バス、通信リンクなどを含む。
【００５８】
ＯＣＭ１４は、ＰＳ２全体に分散され得る１つまたは複数のＲＡＭモジュールを含む。たとえば、ＯＣＭ１４は、バッテリーバックアップＲＡＭ（ＢＢＲＡＭ：ｂａｔｔｅｒｙ  ｂａｃｋｅｄ  ＲＡＭ）、密結合メモリ（ＴＣＭ）などを含むことができる。メモリコントローラ１０は、外部ＤＲＡＭにアクセスするためのＤＲＡＭインターフェースを含むことができる。周辺機器８、１５は、ＰＳ２へのインターフェースを提供する１つまたは複数の構成要素を含むことができる。たとえば、周辺機器８、１５は、グラフィックス処理ユニット（ＧＰＵ）、ディスプレイインターフェース（たとえば、ＤｉｓｐｌａｙＰｏｒｔ、高精細度マルチメディアインターフェース（ＨＤＭＩ）ポートなど）、ユニバーサルシリアルバス（ＵＳＢ）ポート、イーサネットポート、ユニバーサル非同期トランシーバ（ＵＡＲＴ）ポート、シリアル周辺インターフェース（ＳＰＩ）ポート、汎用ＩＯ（ＧＰＩＯ）ポート、シリアルアドバンストテクノロジアタッチメント（ＳＡＴＡ）ポート、ＰＣＩｅポートなどを含むことができる。周辺機器１５は、ＭＩＯ１３に結合され得る。周辺機器８は、トランシーバ７に結合され得る。トランシーバ７は、シリアライザ／デシリアライザ（ＳＥＲＤＥＳ）回路、ＭＧＴなどを含むことができる。
【００５９】
図９は、トランシーバ３７、構成可能論理ブロック（「ＣＬＢ」）３３、ランダムアクセスメモリブロック（「ＢＲＡＭ」）３４、入出力ブロック（「ＩＯＢ」）３６、構成およびクロッキング論理（「ＣＯＮＦＩＧ／ＣＬＯＣＫＳ」）４２、デジタル信号処理ブロック（「ＤＳＰ」）３５、特殊な入出力ブロック（「Ｉ／Ｏ」）４１（たとえば、構成ポートおよびクロックポート）、ならびにデジタルクロックマネージャ、アナログデジタルコンバータ、システム監視論理などの他のプログラマブル論理３９を含む、多数の異なるプログラマブルタイルを含むプログラマブルＩＣ１のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）実装形態を示す。ＦＰＧＡはまた、ＰＣＩｅインターフェース４０、アナログデジタル変換器（ＡＤＣ）３８などを含むことができる。
【００６０】
いくつかのＦＰＧＡでは、各プログラマブルタイルは、図８の上部に含まれる例によって示されているように、同じタイル内のプログラマブル論理要素の入力および出力端子４８への接続を有する少なくとも１つのプログラマブル相互接続要素（「ＩＮＴ」）４３を含むことができる。各プログラマブル相互接続要素４３は、同じタイルまたは（１つまたは複数の）他のタイル中の（１つまたは複数の）隣接するプログラマブル相互接続要素の相互接続セグメント４９への接続をも含むことができる。各プログラマブル相互接続要素４３は、論理ブロック（図示せず）間の一般的なルーティングリソースの相互接続セグメント５０への接続をも含むことができる。一般的なルーティングリソースは、相互接続セグメント（たとえば、相互接続セグメント５０）のトラックを備える論理ブロック（図示せず）と、相互接続セグメントを接続するためのスイッチブロック（図示せず）との間のルーティングチャネルを含むことができる。一般的なルーティングリソースの相互接続セグメント（たとえば、相互接続セグメント５０）は、１つまたは複数の論理ブロックにわたることができる。一般的なルーティングリソースとともにとられるプログラマブル相互接続要素４３は、示されているＦＰＧＡのためのプログラマブル相互接続構造（「プログラマブル相互接続」）を実装する。
【００６１】
例示的な一実装形態では、ＣＬＢ３３は、ユーザ論理を実装するようにプログラムされ得る構成可能論理要素（「ＣＬＥ」）４４と、単一のプログラマブル相互接続要素（「ＩＮＴ」）４３とを含むことができる。ＢＲＡＭ３４は、１つまたは複数のプログラマブル相互接続要素に加えてＢＲＡＭ論理要素（「ＢＲＬ」）４５を含むことができる。典型的には、タイル中に含まれる相互接続要素の数は、タイルの高さに依存する。描かれている例では、ＢＲＡＭタイルは、５つのＣＬＢと同じ高さを有するが、他の数（たとえば、４つ）も使用され得る。ＤＳＰタイル３５は、適切な数のプログラマブル相互接続要素に加えてＤＳＰ論理要素（「ＤＳＰＬ」）４６を含むことができる。ＩＯＢ３６は、たとえば、プログラマブル相互接続要素４３の１つのインスタンスに加えて入出力論理要素（「ＩＯＬ」）４７の２つのインスタンスを含むことができる。当業者に明らかになるように、たとえばＩ／Ｏ論理要素４７に接続される実際のＩ／Ｏパッドは、典型的に、入出力論理要素４７のエリアに制限されない。
【００６２】
描かれている例では、（図１０に示されている）ダイの中心の近くの水平方向のエリアが、構成、クロック、および他の制御論理のために使用される。この水平方向のエリアまたは列から延びる垂直方向の列５１が、ＦＰＧＡの幅にわたってクロックおよび構成信号を分散させるために使用される。
【００６３】
図８に示されているアーキテクチャを利用するいくつかのＦＰＧＡは、ＦＰＧＡの大部分を構築する規則的な列状構造を損なう追加の論理ブロックを含む。追加の論理ブロックは、プログラマブルブロックおよび／または専用の論理であり得る。
【００６４】
図９は、例示的なＦＰＧＡアーキテクチャを示すことを意図されているにすぎないことに留意されたい。たとえば、１つの行中の論理ブロックの数、行の相対幅、行の数および順序、行中に含まれる論理ブロックのタイプ、論理ブロックの相対サイズ、および図９の上部に含まれる相互接続／論理実装形態は、例にすぎない。たとえば、実際のＦＰＧＡでは、ユーザ論理の効率的な実装を容易にするために、ＣＬＢが現れるところならどこでも、ＣＬＢの２つ以上の隣接する行が典型的に含まれるが、隣接するＣＬＢ行の数は、ＦＰＧＡの全体的なサイズによって変動する。
【００６５】
上記は特定の例を対象とするが、他のおよびさらなる例がその基本的範囲から逸脱することなく考案され得、その範囲は以下の特許請求の範囲によって決定される。
【図１】
2021533481.tif 000003
【図２】
2021533481.tif 000004
【図３】
2021533481.tif 000005
【図４】
2021533481.tif 000006
【図５】
2021533481.tif 000007
【図６】
2021533481.tif 000008
【図７】
2021533481.tif 000009
【図８】
2021533481.tif 000010
【図９】
2021533481.tif 000011
【手続補正書】
【提出日】令和2年6月1日(2020.6.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のネットワークプロトコルに準拠する物理トランスポートネットワークの第１のトランザクションレイヤ中にある仮想チャネルを指定することと、
第２のネットワークプロトコルの第２の論理トランザクションレイヤにおいてトランザクションレイヤパケットを組み立てることであって、前記トランザクションレイヤパケットが、前記第１のトランザクションレイヤにとって認識可能なサードパーティ識別子と、前記第２の論理トランザクションレイヤにとって認識可能な、サードパーティメッセージタイプおよびサードパーティヘッダとを含む、トランザクションレイヤパケットを組み立てることと、
前記トランザクションレイヤパケットを前記第２の論理トランザクションレイヤから前記仮想チャネルに転送することと、
前記物理トランスポートネットワーク上の前記仮想チャネルを使用して、前記第１のトランザクションレイヤ上で前記トランザクションレイヤパケットを送信することと
を含む、方法。
【請求項２】
前記第１のトランザクションレイヤが、データリンクレイヤ、および前記第１のネットワークプロトコルに準拠する物理レイヤ上で前記トランザクションレイヤパケットを送信する、請求項１に記載の方法。
【請求項３】
前記第２のトランザクションレイヤが、前記物理レイヤの既存のプロパティを活用するが、前記第２の論理トランザクションレイヤに特有であるサービスクラス（ＣＯＳ）属性を採用する、請求項２に記載の方法。
【請求項４】
前記ＣＯＳ属性が、低レイテンシ属性およびプロトコル属性のうちの少なくとも１つである、請求項３に記載の方法。
【請求項５】
前記トランザクションレイヤパケット内に含まれている少なくとも１つの属性が、前記第１のトランザクションレイヤにとって認識可能でないが、前記トランザクションレイヤパケットの残りのフィールドが、前記第１のトランザクションレイヤによって認識可能である、請求項１に記載の方法。
【請求項６】
前記トランザクションレイヤパケットの残りのフィールドが、前記第２の論理トランザクションレイヤに特有である、請求項１に記載の方法。
【請求項７】
前記第２のネットワークプロトコルが、ロード／ストアセマンティクスを含んでいる、請求項１に記載の方法。
【請求項８】
前記第１のネットワークプロトコルがＰＣＩｅプロトコルであり、前記第２のネットワークプロトコルがＣＣＩＸプロトコルである、請求項１に記載の方法。
【請求項９】
前記第２の論理トランザクションレイヤが順序パケット配信を提供する、請求項１に記載の方法。
【請求項１０】
第１のネットワークプロトコルに準拠する物理トランスポートネットワークの第１のトランザクションレイヤ中にある第１のトランザクションレイヤパケットを受信することと、
第２のネットワークプロトコルに準拠する第２の論理トランザクションレイヤによる使用のために指定された前記第１のトランザクションレイヤ中にある仮想チャネルから前記第１のトランザクションレイヤパケットを抽出することであって、前記第１のトランザクションレイヤパケットが、前記第１のトランザクションレイヤにとって認識可能なサードパーティ識別子と、前記第２の論理トランザクションレイヤにとって認識可能な、サードパーティメッセージタイプおよびサードパーティヘッダとを含む、前記第１のトランザクションレイヤパケットを抽出することと、
前記第２の論理トランザクションレイヤにとって認識可能な前記第２のネットワークプロトコルに準拠する第２のトランザクションレイヤパケットを組み立てることと、
前記第２のトランザクションレイヤパケットを前記仮想チャネルから前記第２の論理トランザクションレイヤに転送することと
を含む、方法。
【請求項１１】
前記第２のトランザクションレイヤが、物理レイヤの既存のプロパティを活用するが、前記第２の論理トランザクションレイヤに特有であるサービスクラス（ＣＯＳ）属性を採用する、請求項１０に記載の方法。
【請求項１２】
前記トランザクションレイヤパケット内に含まれている少なくとも１つの属性が、前記第１のトランザクションレイヤにとって認識可能でないが、前記トランザクションレイヤパケットの残りのフィールドが、前記第１のトランザクションレイヤによって認識可能である、請求項１０に記載の方法。
【請求項１３】
コンピュータプロセッサと、
前記コンピュータプロセッサに結合されたメモリと
を備え、前記コンピュータプロセッサが、
第１のネットワークプロトコルに準拠する物理トランスポートネットワークの第１のトランザクションレイヤ中にある仮想チャネルを指定することと、
第２のネットワークプロトコルの第２の論理トランザクションレイヤにおいてトランザクションレイヤパケットを組み立てることであって、前記トランザクションレイヤパケットが、前記第１のトランザクションレイヤにとって認識可能なサードパーティ識別子と、前記第２の論理トランザクションレイヤにとって認識可能な、サードパーティメッセージタイプおよびサードパーティヘッダとを含む、トランザクションレイヤパケットを組み立てることと、
前記トランザクションレイヤパケットを前記第２の論理トランザクションレイヤから前記仮想チャネルに転送することと、
前記物理トランスポートネットワーク上の前記仮想チャネルを使用して、前記第１のトランザクションレイヤ上で前記トランザクションレイヤパケットを送信することと
を行うために、前記メモリ中にあるコードを実行するように構成された、
システム。
【国際調査報告】
2021533481.tif 000012
2021533481.tif 000013
2021533481.tif 000014