(57)【特許請求の範囲】
【請求項１】
装置であって、
リンクの複数のレーンの各々に対応するパリティを算出するためのポート送信機であって、レーンに対応する前記パリティは、前記レーンによって通信される複数のデータブロックの複数のペイロードに対して１つの偶数パリティを有する、前記ポート送信機と、
特定の前記レーンに関連付けられたＳＫＰの順序付けられたセット（ＯＳ）を生成するためのＩ／Ｏロジックであって、前記ＳＫＰのＯＳは、データパリティビットを有し、前記データパリティビットは、特定の前記レーンの前記偶数パリティを示す、前記Ｉ／Ｏロジックと、
特定の前記レーン上で前記ＳＫＰのＯＳを送信するための送信機と、を備える
装置。
【請求項２】
前記パリティは、全ての他のレーンとは別個に算出される
請求項１に記載の装置。
【請求項３】
各ＳＫＰのＯＳは、前記リンクの前記複数のレーンの各々に対して生成され、対応する前記レーンに対して算出されたパリティを示すためのデータパリティビットを含む
請求項１または２に記載の装置。
【請求項４】
データシーケンスの開始（ＳＤＳ）ＯＳを受信するための受信機をさらに備え、
前記パリティは、前記ＳＤＳ  ＯＳの受信から始まって通信される複数のデータブロックの複数のペイロードのセットに基づき算出される
請求項１から３のいずれか一項に記載の装置。
【請求項５】
前記ＳＫＰのＯＳは、アクティブリンク状態からの終了と一致するように送信される
請求項１から４のいずれか一項に記載の装置。
【請求項６】
前記リンクは、前記アクティブリンク状態からの前記終了の後に回復に入る
請求項５に記載の装置。
【請求項７】
前記ＳＫＰのＯＳは、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）ベースのプロトコルに従ったフォーマットを含む
請求項１から６のいずれか一項に記載の装置。
【請求項８】
装置であって、
複数のレーンを有するリンク上で複数のデータブロックを受信し、前記複数のレーンのうちの１つの特定のレーン上でＳＫＰの順序付けられたセット（ＯＳ）を受信するための受信機であって、前記ＳＫＰのＯＳは、前記特定のレーンに関連付けられ、前記ＳＫＰのＯＳは、データパリティビットを含み、前記データパリティビットは、送信機によって前記特定のレーン上で送信された前記複数のデータブロックの複数のペイロードに対して算出された１つの第１の偶数パリティ値を示す、前記受信機と、
前記受信した複数のデータブロックの複数のペイロードに対する１つの第２のパリティ値を算出するためのパリティ計算機と、
エラー状態が存在するかを決定するべく、前記第１の偶数パリティ値を前記第２のパリティ値と比較するためのパリティ比較ロジックと、を備える
装置。
【請求項９】
前記第１の偶数パリティ値は、前記複数のレーンのうちの他のレーン上で送信される複数のデータブロックに対して算出されるパリティ値とは別個に算出される
請求項８に記載の装置。
【請求項１０】
各ＳＫＰのＯＳは、前記リンクの前記複数のレーンの各々に対して前記送信機によって生成され、対応する前記レーン上で送信された複数のデータブロックに対して前記送信機によって算出されたパリティを示すためのデータパリティビットを含む
請求項８または９に記載の装置。
【請求項１１】
データシーケンスの開始ＯＳ（ＳＤＳ  ＯＳ）を送信するための前記送信機をさらに備え、
前記パリティは、前記ＳＤＳ  ＯＳの送信の後に前記送信機によって送信される複数のデータブロックの複数のペイロードのセットに基づき前記送信機によって算出される
請求項１０に記載の装置。
【請求項１２】
前記ＳＫＰのＯＳは、アクティブリンク状態からの終了と一致するように前記送信機によって送信される
請求項８から１１のいずれか一項に記載の装置。
【請求項１３】
前記リンクは、前記アクティブリンク状態からの前記終了の後に回復に入る
請求項１２に記載の装置。
【請求項１４】
前記ＳＫＰのＯＳは、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）ベースのプロトコルに従ったフォーマットを含む
請求項８から１３のいずれか一項に記載の装置。
【請求項１５】
装置によって実行される方法であって、
リンクの複数のレーンの各々に対応するパリティを算出する段階であって、レーンに対応する前記パリティは、前記レーンによって通信される複数のデータブロックの複数のペイロードに対する１つの偶数パリティを有する、前記算出する段階と、
特定の前記レーンに関連付けられたＳＫＰの順序付けられたセット（ＯＳ）を生成する段階であって、前記ＳＫＰのＯＳは、データパリティビットを有し、前記データパリティビットは、特定の前記レーンの前記偶数パリティを示す、前記生成する段階と、
特定の前記レーン上で前記ＳＫＰのＯＳを送信する段階と、を備える
方法。
【請求項１６】
システムであって、
リンクの複数のレーンの各々に対応するパリティを算出するための手段であって、レーンに対応する前記パリティは、前記レーンによって通信される複数のデータブロックの複数のペイロードに対する１つの偶数パリティを有する、前記算出するための手段と、
特定の前記レーンに関連付けられたＳＫＰの順序付けられたセット（ＯＳ）を生成するための手段であって、前記ＳＫＰのＯＳは、データパリティビットを有し、前記データパリティビットは、特定の前記レーンの前記偶数パリティを示す、前記生成するための手段と、
特定の前記レーン上で前記ＳＫＰのＯＳを送信するための手段と、を備える
システム。
【請求項１７】
第１のデバイスと、前記第１のデバイスにポイントツーポイントシリアルデータリンクで接続された第２のデバイスとを備えるシステムであって、
前記ポイントツーポイントシリアルデータリンクは、複数のレーンを有し、
前記第２のデバイスは、
前記ポイントツーポイントシリアルデータリンクの前記複数のレーンの各々に対応するパリティを算出するためのポート送信機であって、レーンに対応する前記パリティは、前記レーン上で通信される複数のデータブロックの複数のペイロードに対する１つの偶数パリティを有する、前記ポート送信機と、
特定の前記レーンに関連付けられたＳＫＰの順序付けられたセット（ＯＳ）を生成するためのＩ／Ｏロジックであって、前記ＳＫＰのＯＳは、データパリティビットを有し、前記データパリティビットは、特定の前記レーンの前記偶数パリティを示す、前記Ｉ／Ｏロジックと、
特定の前記レーン上で前記ＳＫＰのＯＳを前記第１のデバイスに送信するための送信機と、を備える
システム。
【請求項１８】
前記第２のデバイスは、プロセッサデバイスを有する
請求項１７に記載のシステム。
【請求項１９】
前記第２のデバイスは、ルートポートを有する
請求項１７または１８に記載のシステム。
【請求項２０】
前記第１のデバイスは、グラフィックスプロセッサを有する
請求項１７から１９のいずれか一項に記載のシステム。
【請求項２１】
前記第１のデバイスは、メモリコントローラを有する
請求項１７から２０のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピューティングシステム、特に（限定はされないが）ポイントツーポイント相互接続に関する。
【背景技術】
【０００２】
半導体処理およびロジック設計における進歩は、集積回路デバイスに存在し得るロジック量の増加を可能にするに至った。必然的帰結として、コンピュータシステム構成は、システムにおける単一若しくは複数の集積回路からマルチコア、複数のハードウェアスレッド、および個々の集積回路上に存在する複数の論理プロセッサ、並びにそのようなプロセッサ内に統合された他のインタフェースへと進化した。プロセッサ若しくは集積回路は通常、単一の物理プロセッサダイを備え、そこにおいてプロセッサダイは、任意の数のコア、ハードウェアスレッド、論理プロセッサ、インタフェース、メモリ、コントローラハブ等を含み得る。
【０００３】
より小さなパッケージにおいて、より大きな処理能力により適合できる結果、より小型のコンピューティングデバイスの人気が増した。スマートフォン、タブレット、超薄型ノートブック、および他のユーザ機器が、飛躍的に成長している。しかしながら、これらのより小型のデバイスは、データストレージおよびフォームファクタを超える複雑な処理の両方に対し、サーバに依存している。結果的に、高性能コンピューティング市場（すなわち、サーバ空間）における要求もまた、増大している。例えば、現行のサーバにおいては通常、マルチコアを有するシングルプロセッサだけでなく、コンピューティング力を高めるために複数の物理プロセッサ（マルチソケットとも称される）が存在する。しかしながら、コンピューティングシステムにおけるデバイス数とともに処理能力が増大するにつれ、ソケットと他のデバイスとの間の通信がより重大性を帯びてきている。
【０００４】
実際、相互接続は、電気通信を主に処理してきた従来型のマルチドロップバスから、高速通信を容易にする本格的な相互接続アーキテクチャへと成長した。残念ながら、さらにより高速に使用するための将来のプロセッサへの要求として、要求は、既存の相互接続アーキテクチャの機能に対し寄せられる。
【０００５】
様々な図面中の同一の参照番号および符号は、同一の要素を示す。
【図面の簡単な説明】
【０００６】
【図１】相互接続アーキテクチャを含むコンピューティングシステムの実施形態を示す。
【図２】層状スタックを含む相互接続アーキテクチャの実施形態を示す。
【図３】相互接続アーキテクチャ内で生成または受信されるリクエストまたはパケットの実施形態を示す。
【図４】相互接続アーキテクチャのための送信機と受信機のぺアの実施形態を示す。
【図５】例示的な２つのコネクタから成る相互接続チャネルの実施形態を示す。
【図６】複数のビアを含む相互接続構造の断面の簡易ブロック図である。
【図７】ビアスタブのバックドリルを採用する相互接続の断面の表示である。
【図８】レーンエラー状態レジスタを含む機能構造を表わすブロック図である。
【図９】マルチレーン相互接続上でのデータフローを示す簡易図である。
【図１０】例示的なフレーミングトークンシンボルを表わしたものを示す。
【図１１】例示的なスキップ（ＳＫＰ）の順序付けられたセットを含むデータフローを示す簡易図である。
【図１２】エラーレジスタに報告可能なレーンエラーを示す簡易ブロック図である。
【図１３Ａ】リンクのレーンエラーを報告する例示的な技術を示すフローチャートである。
【図１３Ｂ】リンクのレーンエラーを報告する例示的な技術を示すフローチャートである。
【図１３Ｃ】リンクのレーンエラーを報告する例示的な技術を示すフローチャートである。
【図１３Ｄ】リンクのレーンエラーを報告する例示的な技術を示すフローチャートである。
【図１４】マルチコアプロセッサを含むコンピューティングシステムのための実施形態のブロック図を示す。
【図１５】マルチコアプロセッサを含むコンピューティングシステムのための別の実施形態のブロック図を示す。
【図１６】プロセッサの実施形態のブロック図を示す。
【図１７】プロセッサを含むコンピューティングシステムの別の実施形態のブロック図を示す。
【図１８】複数のプロセッサを含むコンピューティングシステムの実施形態のブロックを示す。
【図１９】システムオンチップ（ＳｏＣ）として実装された例示的なシステムを示す。
【発明を実施するための形態】
【０００７】
以下の説明には、本発明の深い理解を与えるべく、多数の具体的な詳細が記載されている。例えば、特定のタイプのプロセッサおよびシステム構成、特定のハードウェア構造、特定の設計上およびミクロ設計上の細部、特定のレジスタ構成、特定の命令タイプ、特定のシステムコンポーネント、特定の寸法／高さ、特定のプロセッサパイプライン段階、および動作等の例示である。しかしながら、本発明を実施するのにこれらの具体的な細部を採用する必要がないことは、当業者にとって明らかであろう。他の例において、特定のおよび代替的なプロセッサアーキテクチャ、記載されたアルゴリズムのための特定のロジック回路／コード、特定のファームウェアコード、特定の相互接続動作、特定のロジック構成、特定の製造技術および材料、特定のコンパイラ実装、コードにおけるアルゴリズムの特定の表現、特定のパワーダウンおよびゲーティング技術／ロジック並びにコンピュータシステムの他の特定の動作詳細のような周知のコンポーネントまたは方法については、本発明を不必要に不明瞭にするのを回避すべく、詳細に記載されていない。
【０００８】
以下の実施形態は、コンピューティングプラットフォームまたはマイクロプロセッサといった特定の集積回路における省エネルギーおよびエネルギー効率に関し記載されている場合があるが、他の実施形態が、他のタイプの集積回路およびロジックデバイスに適用可能である。本明細書に記載された実施形態に係る同様の技術および教示が、他のタイプの回路または半導体デバイスに適用可能であり、それらも、より優れたエネルギー効率および省エネルギーからの利点を享受し得る。例えば、開示された実施形態は、デスクトップコンピュータシステムまたはウルトラブック（商標）に限定されない。また、ハンドヘルドデバイス、タブレット、他の薄型ノートブック、システムオンチップ（ＳＯＣ）デバイス、および埋め込みアプリケーションのような他のデバイスにおいても使用され得る。ハンドヘルドデバイスのいくつかの例としては、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、携帯情報端末（ＰＤＡ）、およびハンドヘルドＰＣが挙げられる。埋め込みアプリケーションとは典型的には、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、システムオンチップ、ネットワークコンピュータ（ネットＰＣ）、セットトップボックス、ネットワークハブ、広域ネットワーク（ＷＡＮ）スイッチ、または以下に教示される機能および動作を実行し得る任意の他のシステムを含む。さらに、本明細書に記載される装置、方法およびシステムは、物理コンピューティングデバイスに限定されず、省エネルギーおよび効率性のためのソフトウェア最適化にも関連し得る。以下の詳細な説明から容易に明らかであるように、本明細書に記載の方法、装置、システムの実施形態（ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせに関するかどうかを問わず）は、性能検討事項とバランスが採られた「グリーンテクノロジ」の将来に不可欠である。
【０００９】
コンピューティングシステムが進歩するにつれ、それらのコンポーネントは、より複雑化してきている。結果として、最適なコンポーネント動作のための帯域幅要件が満たされることを保証すべく、コンポーネント間の連結および通信を行うための相互接続アーキテクチャも複雑性が増している。さらに、様々な市場セグメントが、市場ニーズに適合する相互接続アーキテクチャの様々な態様を要求する。例えば、サーバがさらなる高性能を必要とする一方で、モバイルエコシステムは場合によっては、省電力化のために性能全体を犠牲にできる。とはいえ、最大限の省電力化で可能な限り高い性能を提供することが、大半のファブリックの唯一の目的である。以下に説明される多数の相互接続は、本明細書に記載される本発明の複数の態様から潜在的に利点を享受するであろう。
【００１０】
ある相互接続ファブリックアーキテクチャは、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）エクスプレス（ＰＣＩｅ）アーキテクチャを含む。ＰＣＩｅの第１の目的は、クライアント（デスクトップおよびモバイル）、サーバ（標準およびエンタープライズ）、並びに埋め込みおよび通信デバイスといった複数の市場セグメントにわたる、異なるベンダのコンポーネントおよびデバイスが、オープンアーキテクチャにおいて相互運用できるようにすることにある。ＰＣＩ  Ｅｘｐｒｅｓｓは、多種多様な将来のコンピューティングおよび通信プラットフォームのために定義された高性能な汎用Ｉ／Ｏ相互接続である。その利用モデル、ロード‐ストアアーキテクチャ、およびソフトウェアインタフェースのようないくつかのＰＣＩ属性が、その改訂版を通して維持されているが、これに対し、以前のパラレルバス実装は、高度に拡張可能な完全シリアルインタフェースによって置き換えられた。ＰＣＩ  Ｅｘｐｒｅｓｓのより最近のバージョンでは、新しいレベルの性能と特徴を供給すべく、ポイントツーポイント相互接続、スイッチベースの技術、およびパケット化されたプロトコルにおける進展を活用している。ＰＣＩ  Ｅｘｐｒｅｓｓによってサポートされるいくつかの高度な特徴の中に、電力管理、サービス品質（ＱｏＳ）、ホットプラグ／ホットスワップサポート、データ整合性、およびエラー処理がある。
【００１１】
図１を参照すると、一連のコンポーネントを相互接続するポイントツーポイントリンクから構成されるファブリックの一実施形態が示されている。システム１００は、コントローラハブ１１５に連結されたプロセッサ１０５およびシステムメモリ１１０を含む。プロセッサ１０５は、マイクロプロセッサ、ホストプロセッサ、埋め込みプロセッサ、コプロセッサ、または他のプロセッサのような任意の処理要素を含む。プロセッサ１０５は、フロントサイドバス（ＦＳＢ）１０６を介してコントローラハブ１１５に連結される。一実施形態において、ＦＳＢ１０６は後述のようなシリアルポイントツーポイント相互接続である。別の実施形態において、リンク１０６は、異なる相互接続規格に準拠するシリアルの差動相互接続アーキテクチャを含む。
【００１２】
システムメモリ１１０は、ランダムアクセスメモリ（ＲＡＭ）、不揮発性（ＮＶ）メモリ、またはシステム１００におけるデバイスによってアクセス可能な他のメモリのような、任意のメモリデバイスを含む。システムメモリ１１０は、メモリインタフェース１１６を介してコントローラハブ１１５に連結される。メモリインタフェースの例としては、ダブルデータレート（ＤＤＲ）メモリインタフェース、デュアルチャネルＤＤＲメモリインタフェース、および動的ＲＡＭ（ＤＲＡＭ）メモリインタフェースが含まれる。
【００１３】
一実施形態において、コントローラハブ１１５は、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅまたはＰＣＩＥ）相互接続階層におけるルートハブ、ルートコンプレックス、またはルートコントローラである。コントローラハブ１１５の例としては、チップセット、メモリコントローラハブ（ＭＣＨ）、ノースブリッジ、相互接続コントローラハブ（ＩＣＨ）、サウスブリッジ、およびルートコントローラ／ハブが含まれる。チップセットという用語はしばしば、２つの物理的に別個のコントローラハブ、すなわち相互接続コントローラハブ（ＩＣＨ）に連結されたメモリコントローラハブ（ＭＣＨ）を指す。現在のシステムは通常、プロセッサ１０５と統合されたＭＣＨを含む一方で、コントローラ１１５は、後述されるのと同様の態様で、Ｉ／Ｏデバイスと通信することに留意されたい。いくつかの実施形態において、ピアツーピアルーティングが任意に、ルートコンプレックス１１５を介してサポートされる。
【００１４】
ここでは、コントローラハブ１１５はシリアルリンク１１９を介してスイッチ／ブリッジ１２０に連結される。インタフェース／ポート１１７および１２１とも称され得る入／出力モジュール１１７および１２１は、層状プロトコルスタックを含み／実装して、コントローラハブ１１５とスイッチ１２０との間の通信を提供する。一実施形態において、複数のデバイスが、スイッチ１２０に連結可能である。
【００１５】
スイッチ／ブリッジ１２０は、デバイス１２５から上流に、すなわちルートコンプレックスに向かいヒエラルキー上方のコントローラハブ１１５へ、および下流に、すなわちルートコントローラからヒエラルキー下方へ、プロセッサ１０５若しくはシステムメモリ１１０からデバイス１２５へ、複数のパケット／メッセージをルーティングする。一実施形態において、スイッチ１２０は、複数の仮想ＰＣＩツーＰＣＩブリッジデバイスの論理的アセンブリと称される。デバイス１２５は、Ｉ／Ｏデバイス、ネットワークインタフェースコントローラ（ＮＩＣ）、アドインカード、オーディオプロセッサ、ネットワークプロセッサ、ハードドライブ、ストレージデバイス、ＣＤ／ＤＶＤ  ＲＯＭ、モニタ、プリンタ、マウス、キーボード、ルータ、ポータブルストレージデバイス、ファイヤワイヤデバイス、ユニバーサルシリアルバス（ＵＳＢ）デバイス、スキャナ、および他の入／出力デバイスのような、電子システムに連結される任意の内蔵若しくは外付けのデバイスまたはコンポーネントを含む。ＰＣＩｅ用語では通常、そのようなデバイスをエンドポイントと称される。具体的に示されていないが、デバイス１２５は、レガシまたは他のバージョンのＰＣＩデバイスをサポートすべく、ＰＣＩｅツーＰＣＩ／ＰＣＩ−Ｘブリッジを含んでよい。ＰＣＩｅにおけるエンドポイントデバイスは通常、レガシエンドポイント、ＰＣＩｅエンドポイント、またはルートコンプレックス統合エンドポイントとして分類される。
【００１６】
グラフィックアクセラレータ１３０も、シリアルリンク１３２を介してコントローラハブ１１５に連結される。一実施形態において、グラフィックアクセラレータ１３０は、ＩＣＨに連結されたＭＣＨに連結される。スイッチ１２０、およびそれに基づいてＩ／Ｏデバイス１２５が次にＩＣＨに連結される。Ｉ／Ｏモジュール１３１および１１８はまた、グラフィックアクセラレータ１３０およびコントローラハブ１１５間で通信するための層状プロトコルスタックを実装する。上記のＭＣＨの記載と同様、グラフィックコントローラまたはグラフィックアクセラレータ１３０それ自体が、プロセッサ１０５に統合されてよい。
【００１７】
図２を見ると、層状プロトコルスタックの一実施形態が示されている。層状プロトコルスタック２００は、クイックパスインターコネクト（ＱＰＩ）スタック、ＰＣＩｅスタック、次世代高性能コンピューティング相互接続スタック、または他の層状スタックのような、任意の形態の層状通信スタックを含む。図１〜図４に関する直下の記載はＰＣＩｅスタックに関するものであるが、同一概念が他の相互接続スタックに適用されてよい。一実施形態において、プロトコルスタック２００は、トランザクション層２０５、リンク層２１０、および物理層２２０を含むＰＣＩｅプロトコルスタックである。図１中のインタフェース１１７、１１８、１２１、１２２、１２６および１３１のようなインタフェースが、通信プロトコルスタック２００として表されてよい。通信プロトコルスタックとして表されるものは、プロトコルスタックを実装／包含するモジュールまたはインタフェースとも称され得る。
【００１８】
ＰＣＩ  Ｅｘｐｒｅｓｓは、コンポーネント間で情報を通信するためにパケットを使用する。パケットは、送信コンポーネントから受信コンポーネントへと情報を搬送すべく、トランザクション層２０５およびデータリンク層２１０で形成される。送信されるパケットが他の層を流れる際に、それらの層においてパケットを処理するために必要な追加の情報でパケットが拡張される。受信側では逆の処理が発生し、パケットは物理層２２０として表されるものから、データリンク層２１０として表されるものへと変換され、最終的（トランザクション層パケット用）に、受信デバイスのトランザクション層２０５によって処理され得る形態に変換される。
【００１９】
トランザクション層
【００２０】
一実施形態において、トランザクション層２０５は、デバイスの処理コアと、データリンク層２１０および物理層２２０のような相互接続アーキテクチャとの間のインタフェースを提供する。この点において、トランザクション層２０５の主な役割は、パケット（すなわち、トランザクション層パケットまたはＴＬＰ）のアセンブリおよびディスアセンブリである。トランザクション層２０５は通常、ＴＬＰのためのクレジットベースのフロー制御を管理する。ＰＣＩｅは、分割トランザクション、すなわち、時間により分離されたリクエストと応答を持つトランザクションを実装し、ターゲットデバイスが当該応答のためのデータを収集中に、リンクが他のトラフィックを搬送することを可能にする。
【００２１】
また、ＰＣＩｅはクレジットベースのフロー制御を利用する。このスキームにおいて、デバイスはトランザクション層２０５内の複数のそれぞれの受信バッファの各々に対するクレジットの初期量を通知する。図１のコントローラハブ１１５のようなリンクの他端における外部デバイスは、各ＴＬＰによって使用されるクレジット数をカウントする。トランザクションは、そのトランザクションがクレジットリミットを超過しない場合に、送信されてよい。応答を受信すると、クレジット量が復元される。クレジットスキームの利点は、クレジットリミットに直面しなければ、クレジットリターンのレイテンシが性能に影響を与えないことである。
【００２２】
一実施形態において、４つのトランザクションアドレス空間は、構成アドレス空間、メモリアドレス空間、入／出力アドレス空間、およびメッセージアドレス空間を含む。メモリマップされた位置へ／からデータを転送するために、メモリ空間トランザクションは、読み取りリクエストおよび書き込みリクエストのうちの１または複数を含む。一実施形態において、メモリ空間トランザクションは、例えば、３２ビットアドレスのようなショートアドレスフォーマット、または６４ビットアドレスのようなロングアドレスフォーマットといった、２つの異なるアドレスフォーマットを使用可能である。構成空間トランザクションを使用して、ＰＣＩｅデバイスの構成空間にアクセスする。構成空間に対するトランザクションには、読み取りリクエストおよび書き込みリクエストが含まれる。メッセージ空間トランザクション（または、単にメッセージ）は、ＰＣＩｅエージェント間のインバンド通信をサポートするよう定義される。
【００２３】
従って、一実施形態において、トランザクション層２０５は、パケットヘッダ／ペイロード２０６を組み立てる。現行のパケットヘッダ／ペイロードのためのフォーマットは、ＰＣＩｅ仕様ウェブサイトにおけるＰＣＩｅ仕様の中に見出され得る。
【００２４】
図３を素早く参照するに、ＰＣＩｅトランザクション記述子の一実施形態が示されている。一実施形態において、トランザクション記述子３００は、トランザクション情報を搬送するためのメカニズムである。この点において、トランザクション記述子３００は、システム内のトランザクションの識別をサポートする。他の潜在的な使用としては、既定のトランザクションの順序付けの修正およびチャネルとトランザクションとの関連付けを追跡することを含む。
【００２５】
トランザクション記述子３００は、グローバル識別子フィールド３０２、属性フィールド３０４およびチャネル識別子フィールド３０６を含む。図示される例では、グローバル識別子フィールド３０２は、ローカルトランザクション識別子フィールド３０８およびソース識別子フィールド３１０を含むよう示されている。一実施形態において、グローバルトランザクション識別子３０２は、すべての未処理のリクエストに対し一意である。
【００２６】
一実装に従うと、ローカルトランザクション識別子フィールド３０８は要求元エージェントによって生成されるフィールドであり、このフィールドは、その要求元エージェントのための、完了を必要とするすべての未処理のリクエストに対して一意である。さらに、この例において、ソース識別子３１０は、ＰＣＩｅ階層内の要求元エージェントを一意に識別する。従って、ローカルトランザクション識別子３０８フィールドはソースＩＤ３１０と共に、階層ドメイン内のトランザクションのグローバルな識別を提供する。
【００２７】
属性フィールド３０４は、トランザクションの特性および関係を指定する。この点において、属性フィールド３０４は、トランザクションの既定の処理に対する修正を可能にする追加の情報を提供すべく、潜在的に使用される。一実施形態において、属性フィールド３０４は、優先度フィールド３１２、予約フィールド３１４、順序付けフィールド３１６、およびスヌープ無しフィールド３１８を含む。ここで、優先度サブフィールド３１２は、そのトランザクションへ優先度を割り当てるために、イニシエータによって修正されてよい。予約属性フィールド３１４は、将来のため、またはベンダ定義の用途のために、予約された状態になっている。優先度またはセキュリティ属性を使用する、可能な利用モデルが、予約属性フィールドを使用して実装されてよい。
【００２８】
この例において、順序付け属性フィールド３１６が使用され、既定の順序付けルールを修正し得る順序付けタイプを伝達する任意の情報を供給する。一例示的な実装によると、順序付け属性「０」は、既定の順序付けルールが適用されることを示し、その場合、順序付け属性「１」は緩和された順序付けを示し、その場合、書き込みは、同一方向への書き込みを渡すことができ、読み取り完了は、同一方向への書き込みを渡すことができる。スヌープ属性フィールド３１８は、トランザクションがスヌープされるかどうかを判断するために利用される。図示の通り、チャネルＩＤフィールド３０６は、トランザクションが関連付けられるチャネルを識別する。
【００２９】
リンク層 
【００３０】
データリンク層２１０とも称されるリンク層２１０は、トランザクション層２０５と物理層２２０との間の中間段階として動作する。一実施形態において、データリンク層２１０の役割は、リンクの２つのコンポーネント間でトランザクション層パケット（ＴＬＰ）を交換するための信頼性のあるメカニズムを提供することである。データリンク層２１０の一方側は、トランザクション層２０５によって組み立てられたＴＬＰを受け入れ、パケットシーケンス識別子２１１、すなわち識別番号またはパケット番号を適用し、エラー検出コード、すなわちＣＲＣ２１２を計算および適用し、物理デバイスから外部デバイスにわたる送信のため、修正されたＴＬＰを物理層２２０に送信する。
【００３１】
物理層
【００３２】
一実施形態において、物理層２２０は、パケットを外部デバイスに物理的に送信するための論理サブブロック２２１および電気サブブロック２２２を含む。ここで、論理サブブロック２２１は、物理層２２１の「デジタル」機能を担当する。この点において、論理サブブロックは、物理サブブロック２２２による送信のための発信情報を準備する送信セクション、および受信された情報をリンク層２１０に渡す前に、それを識別および準備するための受信セクションを含む。
【００３３】
物理ブロック２２２は、送信機および受信機を含む。送信機には、論理サブブロック２２１によってシンボルが供給され、送信機はそれらをシリアライズし、外部デバイスへと送信する。受信機は外部デバイスからのシリアライズされたシンボルが供給され、受信された信号をビットストリームに変換する。ビットストリームは、非シリアライズ化されて、論理サブブロック２２１へ供給される。一実施形態において、８ｂ／１０ｂ送信コードが採用され、その場合、１０ビットシンボルが送信／受信される。ここで、複数のフレーム２２３を有するパケットをフレーム化するために特別なシンボルが使用される。また、一例において、受信機も着信シリアルストリームから復元されたシンボルクロックを提供する。
【００３４】
上記の通り、トランザクション層２０５、リンク層２１０、および物理層２２０はＰＣＩｅプロトコルスタックの特定の実施形態に関し記載されているが、層状プロトコルスタックはそのように限定されない。実際、任意の層状プロトコルが含まれ／実装されてよい。一例として、層状プロトコルとして典型的なポート／インタフェースとしては、（１）パケットを組み立てる第１の層、すなわちトランザクション層と、パケットを順序付ける第２の層、すなわちリンク層、およびパケットを送信する第３の層、すなわち物理層が含まれる。具体例としては、共通の標準インタフェース（ＣＳＩ）層状プロトコルが利用される。
【００３５】
次に図４を見ると、ＰＣＩｅシリアルポイントツーポイントファブリックの実施形態が示されている。ＰＣＩｅシリアルポイントツーポイントリンクの実施形態が示されているが、シリアルポイントツーポイントリンクは、シリアルデータを送信するための任意の送信パスを含み、そのように限定されない。図示された実施形態においては、基本的なＰＣＩｅリンクは、２組の低電圧な、差動で駆動される信号ペア、すなわち送信ペア４０６／４１１および受信ペア４１２／４０７を含む。従って、デバイス４０５は、データをデバイス４１０へ送信するための送信ロジック４０６と、デバイス４１０からデータを受信するための受信ロジック４０７とを含む。換言すると、２つの送信パス、すなわちパス４１６および４１７と、２つの受信パス、すなわちパス４１８および４１９とがＰＣＩｅリンクに含まれる。
【００３６】
送信パスは、送信線、銅配線、光回線、無線通信チャネル、赤外線通信リンク、または他の通信パスのような、データを送信するための任意のパスを指す。例えば、デバイス４０５およびデバイス４１０のような２つのデバイス間の接続は、リンク４１５等のリンクと称される。リンクは、１つのレーンをサポートしてよく、各レーンは差動信号ペアのセット（１つのペアは送信用、１つのペアは受信用）を表わす。帯域幅を拡張すべく、リンクはｘＮとして示される複数のレーンを集約してよく、ここでＮは、例えば１、２、４、８、１２、１６、３２、６４、またはそれより広い、任意のサポートされたリンク幅である。
【００３７】
差動ペアは、差動信号を送信するためのライン４１６および４１７のような２つの送信パスを指す。一例として、ライン４１６が低電圧レベルから高電圧レベルへと切り替わる、すなわち立ち上りエッジである場合、ライン４１７は高ロジックレベルから低ロジックレベルへ、すなわち、立ち下りエッジへと、駆動する。差動信号は、より良好な電気的特性、たとえばより良好な信号完全性、すなわちクロスカップリング、電圧オーバシュート／アンダシュート、リンギング等を潜在的に示す。これにより、より良好なタイミングウィンドウを可能にし、それにより、より高速な送信周波数を可能にする。
【００３８】
高速チャネル
【００３９】
ＰＣＩｅ  Ｉ／Ｏ仕様への改訂とは、ＰＣＩｅ改訂４．０（またはＰＣＩｅ  ４．０）である。１６ＧＴ／秒ビットレートで、ＰＣＩｅ  ４．０は、ソフトウェアインタフェースおよび機械インタフェースとの互換性を維持しつつ、ＰＣＩｅ３．０仕様に対し、相互接続性能帯域幅を２倍にすることを目的としている。前の世代のＰＣＩｅに対し性能帯域幅を上げることで、低コスト、低電力、プラットフォームレベルでの最小混乱状態を提供することを目標としつつ、様々な開発中のアプリケーションからの帯域幅向上への要求と整合性のとれた性能スケーリングを提供できる。ＰＣＩｅアーキテクチャの広範な採用における主要な要因の１つに、大量生産機能および、より低コストの回路基板、低コストのコネクタといった材料等に対するその応答性にある。
【００４０】
１６ＧＴ／秒ビットレートは、性能、製造可能性、コスト、電力および互換性の間で、最適なトレードオフを提供することを目的とする。実現可能性の分析が行われ、ＰＣＩｅ  ４．０の１６ＧＴ／秒ビットレートをサポートするデバイスおよびチャネルに対する特性を推奨する。ＰＣＩ‐ＳＩＧ分析は、複数のトポロジに及んだ。例えば、銅での１６ＧＴ／秒は、ほぼＰＣＩｅ  ３．０電力レベルで技術的に実現可能であることが、分析により判断され、これはＰＣＩｅ  ３．０仕様に対し、帯域幅を２倍にする。ここで、１６ＧＴ／秒の相互接続は、前の世代のＰＣＩｅアーキテクチャとの互換性を維持しつつ、メインストリームのシリコン処理技術において潜在的に製造され、既存の低コスト材料およびインフラストラクチャを用いて展開される。
【００４１】
より速いデータ転送速度のシリアルＩ／Ｏ（例えば、ＰＣＩｅ  ４．０下での１６ＧＴ／秒）は、著しい電力を消費し、回路の複雑性を増す可能性があり、それが潜在的にシリコン（Ｓｉ）領域の使用の増加につながる。これらの考慮事項はさらに、より多くのレーン数を利用するＣＰＵおよびシステムへのＰＣＩｅ  ４．０（および他のそのような高速相互接続アーキテクチャ）の統合を限定する可能性を有する。いくつかの例示的な実装において、例えば、ＰＣＩｅ  ４．０のような高速アーキテクチャ内で採用される相互接続の長さおよびコネクタ数には、制限が課される。例えば、そのような制限は、仕様レベルで定義される。一例において、相互接続チャネルの長さは、１つのコネクタおよび、１２インチ（３０．４８センチメートル）または１２インチ（３０．４８センチメートル）未満に限定される。
【００４２】
インターコネクタチャネルに制限を課すことで、それらの適用がいくつかのシステムに限定される可能性がある。例えば、サーバの相互接続の適用においては、プラットフォーム相互接続は、時として最大２０インチ（５０．８センチメートル）またはそれより長くなり、また２つのコネクタを有する可能性がある。潜在的に考えられる他の複数の例の中でも特に、相互接続チャネルを最大１２インチ（３０．４８センチメートル）の長さおよび単一のコネクタに制限するアーキテクチャの場合、２つの１２インチ（３０．４８センチメートル）のチャネルを結合し、サーバシステム内の複数のデバイス間の距離に対応すべく、別個のリピータチップまたは他の追加のデバイスが含まれるであろう。
【００４３】
いくつかの実装において、ＰＣＩｅ４．０および他の相互接続に準拠するよう構成される相互接続リンクが提供可能であり、これにより、１６ＧＴ／秒のデータ通信速度を依然サポートしつつ、長さが２０インチ（５０．８センチメートル）に等しいか、またはそれより長い２つのコネクタから成るチャネルを可能にする。例えば、より長い相互接続チャネルランからリピータおよび他のデバイスが省略可能なように、回路および相互接続は共に最適化され得る。これにより、製造コストの低減、Ｉ／Ｏレイテンシの低減、およびより高速の帯域幅アーキテクチャの適用可能性をさらなる適用に拡張することに役立ち得る。例えば、リピータチップは、送信機、受信機、クロック発生（例えば、位相ロックループ（ＰＬＬ））、クロックリカバリ、および関連のロジック機能を含み得る。そのようなコンポーネントは、貴重な基板領域を利用する可能性がある。さらに、他の潜在的な欠点の中でも特に、ｘ１６  ＰＣＩｅ  ４．０相互接続について、各リピータは、余分な電力を消費し、追加のコストをシステムの製造にもたらす可能性がある。例えば、リピータはまた追加のＩ／Ｏレイテンシをもたらす可能性がある。
【００４４】
図５は、２つのコネクタチャネル構成の例を示す。例えば、チャネル５００は、他の要素の中でも特に、ソケット（例えば、ＣＰＵの）上のセクション、マザーボード、追加カード、ライザボードといった複数のセクションを含むことができ、それらにわたり、チャネルリンクは伸び、システム内の２つのデバイス（例えば、５０５、５１０）を接続できる。この例において、複数のチャネルセクションは各々、それぞれの長さを有することができ、Ｌ１＝１インチ（２．５４センチメートル）、Ｌ２＝１０．５インチ（２６．６７センチメートル）、Ｌ３＝０．５インチ（１．２７センチメートル）、Ｌ４＝４インチ（１０．１６センチメートル）、Ｌ５＝３インチ（７．６２センチメートル）、およびＬ６＝１インチ（２．５４センチメートル）で、チャネル５００の全長は全部で２０インチ（５０．８センチメートル）である。チャネルは、それぞれのコネクタ５１５、５２０（各パッケージにおいて）を使用して、各デバイス５０５、５１０に接続可能である。
【００４５】
従来の技術を使用して、図５に示されるような構成は、リンクにわたりネガティブマージンを生じさせる可能性がある。一例において、潜在的に考えらえる他の複数の特徴の中でも特に、コネクタスタブビアの影響を最小化し、ＳＰＵソケット影響を最小化し、改善された低損失のパーソナルコンピュータボード（ＰＣＢ）の進歩を活用し、オンチップ受信機フロントエンドゲインにおける増加をもたらす、１６ＧＴ／秒ビットレートをサポートする２０インチ（５０．８センチメートル）の２つのコネクタから成る相互接続（例えば、５００）が提供可能であり、リンクにわたりポジティブゲインを実現する。
【００４６】
コネクタは、層間に電気的接続を形成するために使用される、１または複数のビアを含むことができる。例えば、回路基板またはコンポーネントの複数の層の間で、信号および電力を搬送すべく、ビアが使用可能である。高速システムにおいて、コネクタ、チップ、または基板上に残されたビアの部分は、すなわち当該ビアを利用するポイントツーポイント電気リンク内において使用されない部分である。図６を見ると、回路基板または他のコンポーネントの断面の簡易表示６００が示されている。コンポーネントは、１または複数のスタブビア６０５、６１０を含むことができる。ビアは、めっきスルーホール（ＰＴＨ）技術を介するなどして、プリント回路基板上で複数の層間に電気的接続を形成できる。例えば、ビアはコネクタの複数のピンを内側の信号層（例えば、トレース）に接続できる。例えば、図６の例において、別の一部（例えば、リンク（またはチャネル）上でコンポーネントの層６３０に沿って別のコンポーネント、別のビア等に伸びるトレース（例えば、６２５））に接続するためのＰＴＨビアの部分（例えば、６１５、６２０）を使用してリンクの一部を実装可能である。ビアの残りの部分（例えば、６３５）は、スタブとみなし得る。ビアを利用する高速接続において、ビアスタブ６３５は、共振効果（例えば、共振周波数のヌル）を引き起こす可能性があり、それによりチャネル（例えば、レーン）に対し、信号の劣化をもたらす。従って、いくつかの実装において、ビアスタブは、そのような効果を軽減すべく、６５０において示されるようにバックドリル可能である。バックドリルにより、これらの悪い電磁効果の原因であるビアのスタブ部分を除去できる。場合によっては、バックドリルは後工程のドリルプロセスとして実施でき、この場合、バックドリルの穴は、元のめっきスルーホール（ＰＴＨ）よりも直径が大きい。
【００４７】
２０インチ（５０．８センチメートル）の１６ＧＴ／秒チャネルにおいて採用された２つのコネクタにおけるビアスタブは、例えば、バックドリル、Ｕターンビア、および他の解決手段を介して除去または最小化可能である。バックドリルの場合、コネクタのタイプはバックドリルに適した候補であるコネクタタイプに基づいて選択されてよい。例えば、コネクタによっては、バックドリルされる場合、機械的に支障をおこし、故障が発生する可能性がある。表面実装型コネクタのような他のタイプのコネクタがより適切であり得る。
【００４８】
バックドリルを介してコネクタの電気的品質を改善することに加え、ＣＰＵソケットの電気的品質も改善され、ソケット上での２０インチ（５０．８センチメートル）の１６ＧＴ／秒のチャネルを可能にする。例えば、ＣＰＵソケットの各ピンまたは、ビアを使用して接続され、ボードを介してルーティングされる２０インチ（５０．８センチメートル）の１６ＧＴ／秒チャネルレーンに対応する他のデバイスがバックドリルされることができる。これらのより長い、２つのコネクタから成る高速チャネルのソケットスタブの長さはまた、チャネルによって利用されるトレースのためのピンにより近い層を確保しておくことにより、減らすことができる。これにより、ソケットスタブの長さ（ビアの）が、これらのレーンをボードのそのような複数の層を通るようルーティングすることによって、境されることを許容可能にする。
【００４９】
ＣＰＵソケット影響の最小化には、２０インチ（５０．８センチメートル）の１６ＧＴ／秒のチャネルのレーンにレイアウトの優先度が付与されるよう、ボードのピンアウトおよびブレークアウトのレイアウトを設計することが含まれ得る。例えば、２０インチ（５０．８センチメートル）の１６ＧＴ／秒のチャネルに接続されたＣＰＵの各ピンにバックドリルが利用可能なように、チャネルは層上でルーティングされるよう設計され得る。代替的（または追加的に）には、２０インチ（５０．８センチメートル）の１６ＧＴ／秒のチャネルが、ソケットスタブの長さが制約されることを許容する複数の層を利用するよう、ルーティングは設計可能である。
【００５０】
図７は、ボードの断面の簡易表示であり、ボードを介して、２つのデバイス７０５、７１０は、例示的な２つのコネクタから成るリンク（例えば、２０インチ（５０．８センチメートル）の１６ＧＴ／秒のチャネルを具現化するもの）を使用して接続されている。この例においては、ピンフィールドにおける他のブレークアウトチャネルをブロッキングすることなく、バックドリルが適用できるよう、デバイス７０５、７１０の複数のピンのブレークアウトは設計可能である。例えば、内側ピン（例えば、７１５）は、ボードのより下側の層をルーティングする外側ピン（例えば、７２０）のブレークアウトの上方の層にブレークアウトするよう設計可能である。さらに、ピンは、そのビアスタブがドリルアウトされる任意のピン（例えば、２０インチ（５０．８センチメートル）の１６ＧＴ／秒のチャネルのピン）が、電力ビアに隣接して位置されないよう配置されるべく設計可能である。というのは、バックドリル（例えば、７２５ａ〜７２５ｆ）は電源プレーンおよび形状に穴を開けるリスクを冒す可能性があり、潜在的に非効率な電力供給ネットワークをもたらすことがあるからである。また、他のルールおよび例の中でも特に、接地ピンはバックドリル後に接地面をもたらす穴に基づいて配置され得る。
【００５１】
リンクにわたり、ポジティブゲインを依然実現しつつ、１６ＧＴ／秒に対応またはそれを超えるビットレートを許容すべく、追加の特徴が２０インチ（５０．８センチメートル）の２つのコネクタから成るチャネルに含まれ得る。例えば、４ＧＨｚにおいて、０．４８ｄＢ／ｉｎより小さいか、または実質的にそれに等しいトレース差動挿入損失を持つボードのような低損失ＰＣボードが、実現可能である。
【００５２】
２つのコネクタから成る１２インチ（３０．４８センチメートル）のチャネルの当該コネクタおよびソケットにおけるスタブの影響を軽減すること、および低損失ボードを使用するチャネルを提供することに加え、少なくとも２０インチ（５０．８センチメートル）のチャネルにおける１６ＧＴ／秒速度は、場合によっては、受信機フロントエンドにおける追加のゲインおよび／または連続時間リニアイコライザ（ＣＴＬＥ）における追加のピークをさらに提供することによって、実現可能である。いくつかの例において、他の複数の潜在的な例の中でも特に、受信機フロントエンドは、例えば、ＣＴＬＥ、ＡＧＣ（ａｕｔｏｍａｔｉｃ  ｇａｉｎ  ｃｏｎｔｒｏｌ）、ＤＦＥ（ｄｅｃｉｓｉｏｎ‐ｆｅｅｄｂａｃｋ  ｅｑｕａｌｉｚｅｒ）、および／またはデータサンプラ（スライサとも呼ばれる）を含む、信号データパスにおいて結合されたアナログ回路を含むことができる。例えば、一実装において、受信機フロントエンドおよび／またはＣＴＬＥにおいて、合計およそ６ｄＢのゲイン（例えば、ＰＣＩｅ  ４．０のベースラインを超える）を追加することが、２０インチ（５０．８センチメートル）の１６ＧＴ／秒のチャネルを実現することに役立ち得る。他の複数の例の中でも特に、適度の量のゲイン（例えば、およそ６ｄＢ）を実現することが、例えば、単一のゲインステージの追加によって、電力および回路の複雑性がわずかに増すことのみで達成可能である。さらに、いくつかのシステムにおいて、ゲインは調整可能または別途チャネル上で構成可能である。例えば、他の複数の例の中でも特に、１６ＧＴ／秒の速度が利用されるアプリケーションに対し、チャネルはプログラム的に調整可能であり、ゲインは、より低速を使用するアプリケーションに対しては、オフにできる。
【００５３】
信頼性、可用性、および保守性（ＲＡＳ）
【００５４】
いくつかの実装において、ＰＣＩｅのような相互接続アーキテクチャは、システムにおける信頼性、可用性、および保守性（ＲＡＳ）に対する強化点を含むことができる。この問題はすべてのデータ転送速度に当てはまる可能性がある一方で、いくつかのアーキテクチャは、より高速のデータ転送速度との関連において特定のエンコーディングスキームを適用可能である。例えば、ＰＣＩｅ  ４．０（並びにＰＣＩｅ改訂３．０）は、１２８ｂ／１３０ｂエンコーディングスキームを例えば、８ＧＴ／秒を超えるデータ転送速度に採用する。１２８ｂ／１３０ｂスキームにおいては、他の複数の例の中でも特に、レーンごとのパリティが、ＳＫＰ（または「スキップ」）の順序付けられたセット（ＳＫＰ  ＯＳ）ごとに提供され、リンク内のどのレーンが、予測分析を実行できなかったであろうこと、および適切であれば、狭められたリンク幅で動作できなかったであろうことを識別する。レーンパリティは、リンクの特定のレーンにおけるエラーを識別する際に効果的なツールであり得る。しかしながら、いくつかの例においては、リンクが主にアイドルの場合（例えば、リンク上でロジカルアイドルフレーミングトークン（ＩＤＬ）を有する）、パリティビットを介して提供される検出機能が損なわれることを引き起こす危険性が存在する可能性がある。というのは、フレーミングトークン（例えば、ＩＤＬ）内のエラーは、パリティ情報をその時点まで除去するリンク回復をもたらし得るからである。従来のアーキテクチャのエラー検出メカニズムにおいて、エラーの過小評価を引き起こし得る、追加の盲点が存在する可能性がある。例えば、他の複数の欠点の中でも特に、相互接続アーキテクチャは、検出されたフレーミングトークンエラーに関する欠陥のあるレーンをより少なく検出するか、あるいはまったく検出できない可能性がある。
【００５５】
いくつかのアーキテクチャにおいて、リンク上で検出または予期されるエラー、並びに場合によっては、エラーが発生する特定のレーンを識別するためのレジスタが提供可能である。例えば、図８に示される通り、ＰＣＩｅは、第２のＰＣＩｅ拡張機能構造のような機能構造に関連するレーンエラー状態（ＬＥＳ）レジスタ８０５を提供可能である。そのような機能構造８００は、ＬＥＳレジスタ８０５に加え、第２のＰＣＩｅ拡張機能ヘッダ８１０、リンク制御３レジスタ８１５、およびイコライゼーション制御レジスタ８２０を含むことができる。いくつかの実装において、ＬＥＳレジスタは、３２ビットベクトルを含むことができ、そこにおいて、各ビットは、リンク内の１つのレーン（例えば、レーン番号によって識別される）に対応し、レーンがエラーを検出したかを示す。ＬＥＳレジスタ内でのエラーイベントの報告をもたらし得るエラーのセットがＰＣＩｅで定義されている。例えば、他の複数の例の中でも特に、上記で紹介した通り、最後のＳＫＰ  ＯＳ（またはＳｔａｒｔ  ｏｆ  Ｄａｔａ  Ｓｔｒｅａｍ（ＳＤＳ）の順序付けられたセット）後のスクランブル後に送信されたすべてのデータブロックのペイロード内に偶数パリティが存在することが検出されたかを示すＳＫＰ  ＯＳに含まれるデータパリティビットを介して、データパリティが実装され得る。しかしながら、データパリティは各レーンに独立的に計算可能である。受信デバイスおよび送信デバイスは、同一技術を使用してパリティを計算し、受信機は、各レーンの計算されたパリティを、送信機によって計算されたパリティ（パリティビットによって識別されるような）と比較して、潜在的なエラーを識別する。例えば、計算および受信された値が一致しない場合、ＬＥＳレジスタ内のビット（例えば、不一致が検出されたレーン番号に対応する）が設定可能である。
【００５６】
上記の通り、および図９の簡易表示９００に示される通り、データはリンクの２または２より多いレーンで送信可能である。例えば、例示的なＰＣＩｅにおいて示される通り、データ送信の基本的なエンティティは、８ビットデータキャラクタとして実装されるシンボルのようなシンボルであり得る。データブロックのペイロードは、フレーミングトークン、トランザクション層パケット（ＴＬＰ）、データリンク層パケット（ＤＬＬＰ）等を含み得るデータストリームとして定義されるシンボルのストリームである。データストリームの各シンボルが、送信のためにリンクの単一のレーン上に配置され得、シンボルのストリームは、リンクのすべてのレーンにわたりストリップに配置され、複数のブロックの境界に及ぶ。さらに、いくつかの例において、物理層は、レーンごとのブロックコードを使用できる。各ブロックは、２ビットの同期ヘッダおよびペイロードを含むことができる。ＰＣＩｅにおいては、ブロックが含むペイロードタイプを定義する、２つの有効な同期ヘッダのエンコーディング、１０ｂおよび０１ｂが定義される。例えば、同期ヘッダ１０ｂは、データブロックを示すことができ、同期ヘッダ０１ｂは、順序付けられたセットのブロックを示すことができる。一例として、図９は、レーン０、１、２、および３の４つのレーン上でのデータストリームの送信を示す。マルチレーンリンクのすべてのレーンは、同一の同期ヘッダを用いて複数のブロックを同時に送信する。ビットの送信順序は、同期ヘッダ（レーン上に「Ｈ０‐Ｈ１」として配置され、「Ｈ１Ｈ０」で表される）で開始でき、次に「Ｓ０」で開始し、「Ｓ７」で終了する、レーン上に配置される「Ｓ７‐Ｓ６‐Ｓ５‐Ｓ４‐Ｓ３‐Ｓ２‐Ｓ１‐Ｓ０」で表される第１のシンボルが続く。
【００５７】
ＰＣＩｅは、データストリーム内の不一致または無効な同期ヘッダに対応するエラーをＬＥＳレジスタに報告するオプションを受信機に対し提供する。例えば、他の複数の例の中でも特に、複数のレーンのうちの１または複数（例えば、データストリーム内の第１の２つのＵＩ中）が、無効な値（例えば、００ｂ、１１ｂ）を持つ同期ヘッダを含むことを識別することは、当該レーン上でのエラーとして識別され得、それはＬＥＳレジスタに報告され得る。
【００５８】
図１０を見ると、例示的なフレーミングトークン１００５、１０１０、１０１５、１０２０、１０２５を表わしたものが示されている。フレーミングトークン（または「トークン」）は、当該トークンに関連付けられたシンボル数を指定または暗示する物理層データカプセル化であり得、それにより次のフレーミングトークンの位置を識別する。データストリームのフレーミングトークンは、データストリームの第１のデータブロックの第１のレーン（例えば、レーン０）の第１のシンボル（シンボル０）に位置付けられ得る。一例において、ＰＣＩｅは、ＴＬＰの開始（ＳＴＰ）トークン１００５、データストリームの終了（ＥＤＳ）トークン１０１０、エンドバッド（ＥＤＢ）トークン１０１５、ＤＬＬＰの開始（ＳＤＰ）トークン１０２０、およびロジカルアイドル（ＩＤＬ）トークン１０２５を含む５つのフレーミングトークンを定義する。ＳＴＰトークン１００５は、４つのシンボルからなる長さであり、データリンク層情報が続き得る。例示的なＥＤＳトークン１０１０は、４つのシンボルからなる長さで、次のブロックは、順序付けられたセットのブロックであることを示すことができる。ＥＤＢトークン１０１５も、４つのシンボルからなる長さで、ＴＬＰが「間違い」であり、無効化されたことを確認する。ＥＤＢは常に、ＴＬＰデータに続く。さらに、ＳＤＰトークン１０２０は、より短い２つのシンボルの長さであり、その後にＤＬＬＰ情報が続き得る。この例の最後におけるＩＤＬトークン１０２５は、単一のシンボルであり、ＴＬＰ、ＤＬＬＰ、あるいは他のフレーミングトークンが何もリンク上で送信されない場合に送信される。
【００５９】
図１１は、例示的なｘ８リンク経由で送信された例示的なデータを示す表示１１００を示し、ＰＣＩｅのような特定の相互接続アーキテクチャに従い定義されたデータストリームの特徴を示す。この例において、データは、ＳＫＰの順序付けられたセットの送信を含むことができる。この例において、ストリームは、データブロックを示す同期ヘッダＨ１Ｈ０＝１０ｂの送信で開始できる。従って、ＳＴＰフレーミングトークンが、レーン０〜３上で第１のシンボル０として送信され、ＴＬＰストリームの開始を示すことができる。リンク巡回冗長検査（ＬＣＲＣ）がＴＬＰデータの後に続き、ＤＬＬＰデータが送信される（例えば、シンボル３〜４において）ことを示すＳＤＰヘッダがさらに続く。巡回冗長検査（ＣＲＣ）データも、ＤＬＬＰデータに関連して提供され得る。
【００６０】
図１１の例において、一連のＵＩの間、データがリンク上で送信されないとき、ロジカルアイドル（ＩＤＬ）トークンが送信される。当該複数のレーン上での順序付けられたセットのデータへの移行を示す、ＥＤＳトークンが次に送信され得る。例えば、別の同期ヘッダ（例えば、１１０５において）が、「０１ｂ」としてエンコードされて送信され、次の複数のデータブロックは、順序付けられたセットのデータブロックであることを示すことができる。この特定の例において、送信される順序付けられたセットは、ＳＫＰの順序付けられたセット（ＯＳ）である。上記の通り、いくつかの実装において、ＳＫＰ  ＯＳは、リンクの各レーン（例えば、レーン０〜７）のパリティ状態を示すパリティビットを含むことができる。ＳＫＰ  ＯＳはさらに、受信機にとって識別可能な定義されたレイアウトを有し得る。例えば、ＰＣＩｅの１２８ｂ／１３０ｂエンコーディングの場合、ＳＫＰ  ＯＳは、１６個のシンボルのベースを含むことができる。４つのＳＫＰシンボルのグループ化がポートによって追加または削除され得、それに応じてＳＫＰ  ＯＳは、８、１２、１６、２０、または２４のシンボル等になり得る。さらに、他の複数の例の中でも特に、図１１に示されるように、ＳＫＰ＿ＥＮＤシンボルが当該複数のレーン上に提供され、ＳＫＰ  ＯＳの終了の位置および当該複数のレーン上で送信される次のブロックの同期ヘッダの位置を示すことができる。
【００６１】
いくつかの例示的な実装において、相互接続アーキテクチャにおける複数の追加のレーンエラーを検出するロジックが提供され得る。システム内のソフトウェアが、一定時間にわたるレーンごとベースの複数のエラーを追跡すべく、ＬＥＳレジスタのようなレジスタを監視できる。単一のレーンエラーは、エラーについて問題があることを示さない可能性がある。しかしながら、複数のエラーがリンクの１または複数の特定のレーンにおいて統計的に有意な頻度において発生するとき、システムソフトウェアは、当該複数の特定のレーンに関し、潜在的な問題が存在すると判断することができる。さらに、いくつかの実装において、他の複数の例の中でも特に、エラー傾向のレーンにおいて、少なくとも何らかのシステムデータの送信を回避し、リンクの再構成、リンクのより厳重な検査のためのチケットの生成等による、修正対策を取ることができる。エラーによっては、レーンごとベースの検出が難しい可能性がある。リンク上のエラーの部分を検出し報告する（例えば、パリティまたは誤った同期ヘッダに基づいて）ためのいくつかのメカニズムが提供される一方で、レーンの特定のルールに関するさらなる追加の例を識別すべく、他のアーキテクチャの特徴およびルールが活用され得る。他の複数の例および検討事項の中でも特に、リンクの個々のレーンの正常性に関するより完全なイメージを構築すべく、従来のレーンエラー報告とともにこれらのエラーも、検討のため、レジスタに対し報告可能である。
【００６２】
上記のＰＣＩｅの例のような第１の例において、あるレーンが、直前に先行する無効な（不一致の、誤った、あるいは予期されない）ＥＤＳトークンを持つ順序付けられたセットのブロックを受信した場合、当該無効なＥＤＳトークンが検出されたレーン上でエラーが発生したと推測され得る。さらに、当該レーン上での無効なＥＤＳトークンに関するエラーが、ＰＣＩｅ  ＬＥＳレジスタ内で対応するビットを設定することなどにより、エラーレジスタに報告され得る。
【００６３】
別の例において、複数の追加のレーンエラーを識別すべく、特定の順序付けられたセットに対する予め定められたフォーマットが活用可能である。例えば、ＳＫＰ  ＯＳは、順序付けられたセットの終了を識別するためのＳＫＰ  ＥＮＤシンボルが送信されるまで、明確に定義されたＳＫＰシンボルを含むことができる。順序付けられたセットの予期されるＳＫＰシンボル内（およびＳＫＰ  ＥＮＤシンボルの前）内における特定のレーン上で無効またはエラーのＳＫＰシンボルが識別された場合、当該エラーのＳＫＰシンボルの識別を使用して、ＬＥＳレジスタのようなエラーレジスタ内への特定のレーンに関するエラーの報告をトリガできる。さらに、特定のＯＳシンボルの定義されたタイミングも使用して、予期されないシンボルがレーン上で受信されたことを識別できる。例えば、ＳＫＰの順序付けられたセットの例で続けると、潜在的に考えられる他の複数の例の中でも特に、ＳＫＰ  ＯＳ内のシンボル数が４の整数倍になるとき、リンクの１または複数の特定のレーン上においてシンボル８、１２、１６、２０、または２４内でＳＫＰ＿ＥＮＤを受信しないと、エラーレジスタ内の対応するビットが、当該特定のレーンに対し設定されるようにできる。
【００６４】
いくつかの実装において、様々なフレーミングエラーが発生可能および検出可能である。例えば、フレーミングトークンであると予期されるシンボルを処理する場合に、フレーミングトークンの定義に一致しないシンボルまたはシンボルのシーケンスを受信することは、フレーミングエラーの可能性がある。さらに、いくつかのフレーミングトークンは、他のタイプのデータの後に続くよう定義可能であり、特定のフレーミングトークンの予期されない到来（または遅延）はフレーミングエラーの可能性がある。一例にすぎないが、多くの他の例の中でも特に、ＴＬＰの直後にＥＤＢトークンが受信されるよう指定可能であり、任意の他の時点（ＴＬＰの直後以外）においてＥＤＢトークンを受信すると、ＰＣＩｅの仕様において定義されたフレーミングエラーのようなフレーミングエラーをトリガできる。システム内でフレーミングエラーを識別可能な一方で、いくつかの実装においては、フレーミングエラーは、レーンごとベースで判断されない、またはリンクの特定のレーンにマップされない。実際、いくつかの例において、他の複数の例の中でも特に、フレーミングエラーにより、リンク回復が開始されるようにでき、リンク回復がパリティ計算および報告（例えば、ＳＫＰ  ＯＳで送信されたパリティビットを介する）を消去する場合、さらにレーンエラー検出を複雑化する。
【００６５】
いくつかの実装において、論理ＰＨＹに含まれるロジック（例えば、受信デバイスにおいて）はさらに、フレーミングトークンから欠陥のあるレーンを識別できる。第１の例において、フレーミングトークンのシンボルが指定可能（図１０の例に示されるように）であり、予期されるシンボル値から逸脱する複数のシンボルのうちの１つにおいてエラーを検出すること、並びにエラーのあるトークンシンボルが識別されるレーンが識別可能である。例えば、フレーミングトークンの第１のシンボルが識別可能であり、第１のシンボルが、ＰＨＹのための定義されたフレーミングトークンのセットのうちの任意の１つに係る第１のシンボルに一致しない場合、エラーがスローされ得る。このエラーは、例えば、ＬＥＳレジスタ内にログ記録され得る。ＰＣＩｅフレーミングトークンの例において、受信されたフレーミングトークンの第１のシンボルが、ＰＣＩｅ  ＩＤＬ、ＳＤＰ、ＳＴＰ、ＥＤＢ、またはＥＤＳのために定義された第１のシンボルと一致しない場合、当該エラーの第１のフレーミングトークンシンボルが表われたレーンに対し、エラーが判断され得、当該エラーは、当該識別されたレーンのレーンエラーレジストリにログ記録され得る。
【００６６】
第２に、別の例において、１つのシンボルのみの長さであるＩＤＬフレーミングトークンが、ＴＬＰ、ＤＬＬＰ、または他のフレーミングトークンが送信されない場合にリンクのすべてのレーンに対し送信されるよう指定され得る。従って、第１のＩＤＬが、４または４より多いレーンを有するリンクのあるレーン上で表れる場合、当該ＩＤＬの複数のインスタンスが、レーンｎ＋１、ｎ＋２、およびｎ＋３（ここで、第１のレーンｎ（ｎモジュロ４＝０））上でも表れることが予期され得る。ＩＤＬトークンを送信後、次のＳＴＰまたはＳＤＰトークンの第１のシンボルが、将来のシンボル時間のレーン０に送信されるよう指定可能である。従って、ＩＤＬトークンの使用および予期される使用におけるこれらの制約を考慮すると、ＩＤＬが予期される通り反復されない場合、または誤ったレーンに第１のＩＤＬが表れる場合、当該反復されないＩＤＬまたはそれ以外のエラーのシンボルが表れたレーンが識別され、またＬＥＳレジスタのようなエラーレジスタ内に、特定のレーンのエラーとしてログ記録され得る。
【００６７】
さらに別の例において、ＥＤＢトークンが、ＰＣＩｅで４つのシンボル長のような特定の長さに定義され得る。結果的に、第１のＥＤＢシンボルを識別するが、次に定義された長さに含まれる直後に続くシンボル内に追加のＥＤＢシンボルを識別しないことにより、フレーミングエラーが生じ得る。例えば、ＰＣＩｅにおいて、フレーミングトークンＥＤＢが、ＴＬＰの直後のレーンｎ（ｎモジュロ４＝０）上で検出されるが、レーン＋１、ｎ＋２、またはｎ＋３のうちのいずれにおいても検出されない場合、予期される有効なＥＤＢシンボルが表示されない任意のレーン（例えば、レーンｎ＋１、ｎ＋２、またはｎ＋３）のエラーレジスタにエラーが報告され得る。さらに、ＥＤＢトークンの第１のシンボルがＴＬＰストリームの直後に配置されるよう定義可能であり、これにより先行するフレーミングトークン、ＳＴＰは、リンク上で表示される最後のフレーミングトークンであることを意味する。従って、他の複数の例の中でも特に、ＥＤＢトークンの第１のシンボルがレーンｎ上に表示されるが、その直前のフレーミングトークンがＳＴＰトークン以外の場合、レーンｎ上のエラーが識別され、エラーレジスタに報告され得る。
【００６８】
ＥＤＢトークンのフレーミングエラーの例と同様、フレーミングエラーはまた、長さ、フォーマット、および他のフレーミングトークンの配置からのずれに基づくことができる。例えば、別の例において、ＳＤＰの第１のシンボルがレーンｎにおいて検出され、有効なＳＤＰトークンの配置ルール（例えば、ＤＬＬＰトラフィックに先行する）とは整合性があるが、レーン＋１がＳＤＰトークンの予期される第２のシンボルと一致しない場合、論理ＰＨＹロジックは、レーンｎ＋１上でエラーを識別し、当該エラーをエラーレジスタ内にログ記録し得る。
【００６９】
図１２は、リンクに対応するＰＣＩｅ  ＬＥＳレジスタのような例示的なエラーレジスタ１２５０における複数のレーンエラー（例えば、１２０５、１２１０、１２１５、１２２０、１２２５、１２３０、１２３５、１２４０）の拡張された検出およびログ記録を示す簡易ブロック図である。例えば、同期ヘッダレーンエラー１２０５、およびパリティビットエラー１２１０の報告に加え、検出可能な追加の複数のエラーは、直前のＥＤＳトークンエラー１２１５およびＳＫＰ  ＯＳエラー１２２０を持たないＯＳブロック（上記の例において記載されたような）のような、複数の順序付けられたセットのレーンエラーを含む。例えば、順序付けられたセット、データブロック、およびアーキテクチャ内のフレーミングトークンのために定義されたルールを活用する潜在的に考えられる他の複数の例の中でも特に、第１のシンボルフレーミングトークンエラー１２２５、ＩＤＬフレーミングトークンエラー１２３０（例えば、レーンｎ上で最初のＩＤＬ後にＩＤＬを適切に反復することに関する）、ＥＤＢフレーミングトークンエラー１２３５（例えば、前述において例として概説したような、ＥＤＢトークンシンボルの配置におけるエラーに関する）、およびＳＤＰフレーミングトークンエラー１２４０（例えば、ＳＤＰトークンの第２のシンボル内で検出されたエラー関する）のような複数のフレーミングトークンレーンエラーを含む、さらなるエラーが報告され得る。
【００７０】
上記の通り、場合によっては、エラーまたはリンク回復を強制する他のイベントが、パリティ判断のようなレーンエラー検出メカニズムを損なう可能性がある。上記の通り、受信および送信デバイスは、データストリームまたは他のストリームのためのパリティを判断でき、送信機によって判断されたパリティ情報が、受信されたパリティ情報と、同一データストリームに対し受信機によって判断された対応するパリティ情報（当該レーンの）との比較のために、受信機に対し通信され得る。パリティ情報が定期的に送信され得る。例えば、送信機によって各レーンに対し判断されたパリティを示すＳＫＰ  ＯＳシンボルにおける１または複数のパリティビットを含む送信ＳＫＰ  ＯＳが送信可能である。しかしながら、いくつかの従来型のシステムにおいては、リンク回復または他のイベントによって、前に判断されたパリティ情報が受信機に通信される前に、パリティ情報が消去および／または再開されることがもたらされ得る。従って、そのような例においては、パリティ情報に基づいて特定のレーンに対し判断されたエラーも失われ、報告されないままになり得、当該特定のレーンに対するエラー報告の精度を損なうことになる。
【００７１】
一実施形態において、リンク回復がＳＫＰ  ＯＳ、または回復されるリンクの各レーンのためのパリティ情報を報告するデータを含む他のデータセットによって自動的に先行されるように強制することによって、パリティ情報は維持され得る。例えば、フレーミングエラーまたはリンク回復をトリガする他のイベントに応答して、ＳＫＰ  ＯＳ（パリティビットを含む）が送信されるように、リンク回復プロトコルが再定義され得る。ＳＫＰ  ＯＳはそれにより、送信機によって判断されたパリティ情報を、リンク回復がトリガされる瞬間まで搬送でき、受信機がパリティ情報に基づいて複数の潜在的なレーンエラーを識別できるようにする。
【００７２】
一例において、パリティ情報は、リンクをアクティブ状態（例えば、Ｌ０）から回復に入らせる前に、ＳＫＰ  ＯＳを送信することによって、回復前に送信可能である。例えば、各送信機は、回復に入る前に、ＥＤＳトークンを持つ追加のデータブロックが次に続くＳＫＰ  ＯＳ（例えば、ＳＫＰ  ＯＳ間の最大間隔のような予め定義された間隔に従い）を送信できる。これにより、フレーミングエラーを発生させた可能性があったかもしれない１または複数のデータブロックを含む、受信機が受信した先行するデータブロックに対するパリティを受信機が受信することを保証する。受信機はさらに、パリティビット比較がエラーを示す場合、当該エラーを適切なＬＥＳにログ記録できる。
【００７３】
別の例において、回復または他のイベントの前にパリティ情報を完了前にダンプするのではなく（例えば、パリティ情報が失われる前に通信されることを保証することを試行して）、ＳＫＰ  ＯＳパリティのようなパリティ情報は、リンクがアクティブ（例えば、ＰＣＩｅにおいて「ＬｉｎｋＵｐ＝１ｂ」）の間、データストリームにわたるパリティをカバーするよう拡張可能である。さらに、パリティ情報はまた、当該パリティ情報が回復イベントの間中、存続するよう、リンクの各レーンについて持続的に維持され得る。従来のリンク回復では、先行するデータブロックのパリティ情報が失われる（例えば、回復によって割り込まれ）ようにしていたのに対し、パリティ情報を持続的に格納することによって、当該パリティが回復の間中、維持され、回復後に通信されることを可能にし得る（例えば、回復後の第１のＳＫＰ  ＯＳにおいて）。さらに、他の複数の例の中でも特に、場合によっては、リンクの回復後（および次のＳＫＰ  ＯＳ前）に送信された新しいデータブロックのパリティ情報も判断可能であり、また、場合によっては、維持されている回復前のパリティ情報に追加され、この組み合わされたパリティ情報が、例えば、次のＳＫＰ  ＯＳにおいて通信され得る。
【００７４】
上記の例は、非限定的な例示であり、特定の原理および特徴を示す目的のためだけに提供されていることを理解されたい。さらに、いくつかのシステムは、上記の特徴およびコンポーネントの２または２より多い様々な組み合わせを含み得る。一例として、システムは、上記のレーンエラー検出機能のような、上記の例示的なエラー検出の特徴の組み合わせを含むことができる。
【００７５】
図１３Ａ〜図１３Ｄを見ると、リンクの複数のレーン上でのエラーを検出するための例示的な技術を示す、例示的なフローチャート１３００ａ〜１３００ｄが示されている。例えば、図１３Ａにおいて、複数のレーンを含むリンク上でデータが受信され得る（１３０５）。当該データは、複数のシンボルを含むことができ、当該複数のシンボルは監視され、当該複数のシンボルのうちの１または複数が、エラーのシンボルであるかどうか判断され得る（１３１０）。他の複数の例の中でも特に、エラーのシンボルは、フレーミングトークン（例えば、ＥＤＢ、ＥＤＳ、ＳＴＰ、ＩＤＬ、ＳＤＰ等）、順序付けられたセット（例えば、ＳＫＰ  ＯＳ等）、または誤った値を有し、誤ったまたは予期しない順序にあり、誤ったまたは予期しないレーンで送信され、特定の定義されたシーケンスに属しない他の定義されたシーケンスにおいて、複数のシンボルを含み得る。他の複数の例の中でも特に、エラーのシンボルが送信されたレーンが識別され得（１３１５）、また識別されたレーンのレーンエラーが、当該エラーのシンボルに基づいて、例えば、レーンエラーレジスタに報告され得る（１３２０）。
【００７６】
図１３Ｂを見ると、データが複数のレーンを含むリンク上で送信され得る（１３２５）。パリティ情報は、リンク上の各レーンに対し、維持され得る（１３３０）。リンクがアクティブ状態を終了すること（リンクの回復に関連するなど）を識別すること（１３３５）に応じて、アクティブリンク状態からの終了より前に、当該パリティ情報のインジケーションが送信され得る（１３４０）。一例において、パリティ情報のインジケーションは、受信側に送信された、ＰＣＩｅ  ＳＫＰの順序付けられたセットのような、順序付けられたセットの複数のパリティビットに含まれ得る。パリティ情報のインジケーションは、当該パリティ情報を受け側によって受信されたパリティ情報と比較すべく、使用（例えば、特定の情報の受け側によって）され得る。パリティ情報における不一致は、不一致のパリティ情報に対応するレーンに関するレーンエラーの証拠として識別され得る。
【００７７】
図１３Ｃの例において、データはリンクの複数のレーン上で送信され得（１３４５）、各レーンで識別された送信データに基づいて、パリティ情報が複数のレーンの各々のために判断され得る（１３５０）。リンクの回復が発生し、パリティ情報が回復の間中維持され得る（１３５５）。回復の後、各レーンのためのパリティ情報のインジケーションが、通信され得（１３７０）、このインジケーションはリンク回復の間中、維持されるパリティ情報に基づくことができる。任意に、リンク回復の後、追加のデータがリンク上で送信され得（１３６０）、この回復後データに基づいて、各レーンに対するパリティ情報が判断され得る。各レーンのパリティ情報は、各レーン上の回復前および回復後の両方のデータに基づいて更新され得（１３６５）、通信されるパリティ情報（１３７０）のインジケーションは、この組み合わされたパリティ情報を示すことができる。
【００７８】
図１３Ｃの例に対応し、図１３Ｄにおいて、第１のデータがリンク上で受信され得（１３７５）、当該複数のレーン上で受信されたデータに基づいて、第１のパリティ情報が各レーンに対し判断され得る（１３８０）。このパリティ情報は、第１のデータの受信後、リンクの回復の間中、維持され得る（１３８５）。リンクの回復後、受信されたＳＫＰの順序付けられたセットのパリティビットで識別されるような、第２のパリティデータが、受信され得る（１３９８）。この第２のパリティデータは、リンク回復の間中（およびそれを超えて）維持されるパリティ情報と比較可能である。場合によっては、他の複数の例の中でも特に、リンク回復後、当該複数のレーン上で受信（１３９０）された第２のデータに基づいて、当該複数のレーンに対し判断されたパリティ情報を構成すべく、維持されたパリティ情報は更新（１３９４）可能である（例えば、この回復後データの送信に基づく、対応する送信機によるパリティ情報の更新に相当する）。
【００７９】
上記の原理および例示の多くは、ＰＣＩｅおよびＰＣＩｅ仕様の特定の改訂の文脈の中で記載されている一方、本明細書に記載の原理、解決手段、および特徴は他のプロトコルおよびシステムに等しく適用可能であることに留意されたい。例えば、類似のレーンエラーが、他のリンクにおいて、類似のシンボル、データストリームおよびトークン、並びにこれらの他のリンク経由で送信されたデータ内のそのような構造の使用、配置、およびフォーマットに関し指定されたルールに基づく他のプロトコルを使用する他のリンクにおいて検出可能である。さらに、代替的なメカニズムおよび構造（例えば、ＰＣＩｅ  ＬＥＳレジスタまたはＳＫＰ  ＯＳ以外）を使用して、システム内のレーンエラー検出および報告機能を提供できる。さらに、他の複数の例の中でも特に、リンクに対する論理的および物理的な強化点および本明細書の記載のその対応するロジックの組み合わせを含む、上記複数の解決手段の複数の組み合わせが、システム内で適用され得る。
【００８０】
上記の装置、方法、およびシステムは、前述の通り、任意の電子デバイスまたはシステムにおいて実装されてよいことに留意されたい。具体例として、以下の図は、本明細書に記載の本発明を利用するための例示的なシステムを提供する。以下のシステムがより詳細に記載される通り、多数の異なる相互接続が開示され、記載され、上記説明から再検討される。容易に明らかなように、上記の進歩は、それらの相互接続、ファブリック、またはアーキテクチャのうちの任意のものに適用され得る。
【００８１】
図１４を参照すると、マルチコアプロセッサを含むコンピューティングシステムの一実施形態のブロック図が示されている。プロセッサ１４００は、マイクロプロセッサ、埋め込みプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、ハンドヘルドプロセッサ、アプリケーションプロセッサ、コプロセッサ、システムオンチップ（ＳＯＣ）、コードを実行する他のデバイスのような任意のプロセッサまたは処理デバイスを含む。一実施形態において、プロセッサ１４００は、少なくとも２つのコア、コア１４０１および１４０２を含み、これらは、非対称コアまたは対称コア（図示された実施形態）を含んでよい。しかしながら、プロセッサ１４００は、対称または非対称であり得る任意の数の処理要素を含んでよい。
【００８２】
一実施形態において、処理要素とは、ソフトウェアスレッドをサポートするハードウェアまたはロジックを指す。ハードウェア処理要素の例としては、スレッドユニット、スレッドスロット、スレッド、処理ユニット、コンテキスト、コンテキストユニット、論理プロセッサ、ハードウェアスレッド、コア、および／または、実行状態またはアーキテクチャ状態のようなプロセッサの状態を保持可能な任意の他の要素を含む。換言すると、一実施形態において、処理要素は、ソフトウェアスレッド、オペレーティングシステム、アプリケーション、または他のコードのようなコードに独立して関連付け可能な任意のハードウェアを指す。物理プロセッサ（またはプロセッサソケット）は通常、コアまたはハードウェアスレッドのような任意の数の他の処理要素を潜在的に含む集積回路を指す。
【００８３】
コアとは通常、独立のアーキテクチャ状態を維持可能な集積回路上に位置するロジックを指し、独立に維持される各アーキテクチャ状態は、少なくともいくつかの専用実行リソースと関連付けられる。コアとは対照的に、ハードウェアスレッドとは通常、独立のアーキテクチャ状態を維持可能な集積回路上に位置された任意のロジックを指し、独立に維持されるアーキテクチャ状態は、実行リソースへのアクセスを共有する。わかる通り、特定のリソースが共有され、他のリソースが特定のアーキテクチャ状態に専用化された場合、ハードウェアスレッドの名称およびコアの名称間のラインが重複する。さらにしばしば、コアおよびハードウェアスレッドは、オペレーティングシステムによって個々の論理プロセッサとしてみなされ、その場合、オペレーティングシステムは、各論理プロセッサに対する操作を個々にスケジューリング可能である。
【００８４】
図１４に示されるように、物理プロセッサ１４００は２つのコア、すなわちコア１４０１および１４０２を含む。ここで、コア１４０１および１４０２は、対称コア、すなわち、同一の構成、機能ユニット、および／またはロジックを備えるコアであるとみなされる。別の実施形態において、コア１４０１はアウトオブオーダプロセッサコアを含む一方、コア１４０２はインオーダプロセッサコアを含む。しかしながら、コア１４０１および１４０２は、ネイティブコア、ソフトウェア管理コア、ネイティブ命令セットアーキテクチャ（ＩＳＡ）を実行するよう適合されたコア、変換された命令セットアーキテクチャ（ＩＳＡ）を実行するよう適合されたコア、共同設計されたコア、または他の既知のコアといった、任意のタイプのコアから個々に選択されてよい。異種コア環境（すなわち、非対称コア）においては、バイナリ変換のような、ある形態の変換が利用されてよく、一方または両方のコアに対し、コードをスケジューリングまたは実行する。まだ説明していないが、コア１４０１内の図示された機能ユニットについて、以下にさらに詳細に述べる。コア１４０２におけるユニットは、図示された実施形態において同様の態様で動作する。
【００８５】
図示の通り、コア１４０１は、ハードウェアスレッドスロット１４０１ａおよび１４０１ｂとも称され得る、２つのハードウェアスレッド１４０１ａおよび１４０１ｂを含む。従って、一実施形態において、オペレーティングシステムのようなソフトウェアエンティティは、プロセッサ１４００を４つの別個のプロセッサ、すなわち、４つのソフトウェアスレッドを同時に実行可能な４つの論理プロセッサまたは処理要素として潜在的にみなす。先に暗示の通り、第１のスレッドはアーキテクチャ状態レジスタ１４０１ａに関連付けられ、第２のスレッドは、アーキテクチャ状態レジスタ１４０１ｂに関連付けられ、第３のスレッドはアーキテクチャ状態レジスタ１４０２ａに関連付けられてよく、第４のスレッドは、アーキテクチャ状態レジスタ１４０２ｂに関連付けられてよい。ここで、アーキテクチャ状態レジスタ（１４０１ａ、１４０１ｂ、１４０２ａ、および１４０２ｂ）の各々は上記の通り、処理要素、スレッドスロット、またはスレッドユニットと称されてよい。図示の通り、アーキテクチャ状態レジスタ１４０１ａは、アーキテクチャ状態レジスタ１４０１ｂにおいて複製されており、よって個々のアーキテクチャ状態／コンテキストは、論理プロセッサ１４０１ａおよび論理プロセッサ１４０１ｂのために格納可能である。コア１４０１において、命令ポインタおよび割り当ておよびリネームブロック１４３０内のリネームロジックのような、他のより小さなリソースも、スレッド１４０１ａおよび１４０１ｂのために複製されてよい。並べ替え／リタイヤユニット１４３５における並べ替えバッファのようないくつかのリソース、ＩＬＴＢ  １４２０、ロード／ストアバッファ、およびキューが、パーティショニングを介して共有されてよい。汎用内部レジスタ、ページテーブルベースレジスタ、低レベルデータキャッシュおよびデータＴＬＢ１４２０、実行ユニット１４４０、アウトオブオーダユニット１４３５の部分のような他のリソースが、潜在的に完全に共有される。
【００８６】
プロセッサ１４００は通常、複数の他のリソースを含み、それらは完全に共有、パーティショニングを介して共有、または処理要素により／対して専用とされてよい。図１４において、プロセッサの例示的な論理ユニット／リソースを有する純粋に例示的なプロセッサの実施形態が図示されている。プロセッサは、これらの機能ユニットのうちの任意のものを含む、または省略してよく、並びに図示されていない、任意の他の既知の機能ユニット、ロジック、またはファームウェアを含んでよいことに留意されたい。図示の通り、コア１４０１は、簡易化された代表的アウトオブオーダ（ＯＯＯ）プロセッサコアを含む。しかしながら、インオーダプロセッサは、異なる実施形態において利用されてよい。ＯＯＯコアは、実行されるべき／取り出されるべき分岐を予測する分岐ターゲットバッファ１４２０と、命令に対するアドレス変換エントリを格納する命令変換バッファ（Ｉ−ＴＬＢ）１４２０とを含む。
【００８７】
コア１４０１はさらに、フェッチされた要素をデコードするフェッチユニット１４２０に連結されたデコードモジュール１４２５を含む。一実施形態において、フェッチロジックは、スレッドスロット１４０１ａ、１４０１ｂにそれぞれ関連付けられた個々のシーケンスを含む。通常、コア１４０１は、プロセッサ１４００上で実行可能な命令を定義／指定する第１のＩＳＡに関連付けられる。通常、第１のＩＳＡの部分である機械コード命令は、命令（オペコードと称される）の部分を含み、それは実行される命令または動作を参照／指定する。デコードロジック１４２５は、これらの命令をそれらのオペコードから認識し、第１のＩＳＡによって定義されるよう処理するために、デコードされた命令をパイプラインで渡す回路を含む。例えば、後に詳細に記載される通り、一実施形態において、デコーダ１４２５は、トランザクション命令のような特定の命令を認識するよう設計または適合されたロジックを含む。デコーダ１４２５による認識の結果、アーキテクチャまたはコア１４０１は、適切な命令に関連付けられたタスクを実行すべく、特定の予め定義されたアクションを取る。本明細書で記載されたタスク、ブロック、動作、および方法のうちの任意のものが、単一または複数の命令に応答して実行されてよく、それらのうちのいくつかは、新しいまたは古い命令であってよいことを留意することが重要である。一実施形態において、デコーダ１４２６は、同一のＩＳＡ（または、それらのサブセット）を認識することに留意されたい。あるいは、異種コア環境においては、デコーダ１４２６は、第２のＩＳＡ（第１のＩＳＡのサブセットまたは別個のＩＳＡ）を認識する。
【００８８】
一例において、割り当ておよびリネームブロック１４３０は、命令処理結果を格納するレジスタファイルのようなリソースを予約するアロケータを含む。しかしながら、スレッド１４０１ａおよび１４０１ｂは潜在的にアウトオブオーダ実行を可能であり、その場合、割り当ておよびリネームブロック１４３０は、命令結果を追跡する並べ替えバッファのような他のリソースも予約する。ユニット１４３０はまた、プログラム／命令参照レジスタをプロセッサ１４００の内部の他のレジスタにリネームするレジスタリネーマも含んでよい。並べ替え／リタイヤユニット１４３５は、上述の並べ替えバッファ、ロードバッファ、およびストアバッファのようなコンポーネントを含み、アウトオブオーダ実行と、その後のアウトオブオーダ実行された命令のインオーダリタイヤとをサポートする。
【００８９】
スケジューラおよび実行ユニットブロック１４４０は、一実施形態において、実行ユニットに対する命令／操作をスケジューリングするスケジューラユニットを含む。例えば、浮動小数点命令が、利用可能な浮動小数点実行ユニットを有する実行ユニットのポートでスケジューリングされる。情報命令処理結果を格納すべく、実行ユニットに関連付けられたレジスタファイルも含まれる。例示的な実行ユニットは、浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、ロード実行ユニット、ストア実行ユニット、および他の既知の実行ユニットを含む。
【００９０】
より低レベルのデータキャッシュおよびデータ変換バッファ（Ｄ−ＴＬＢ）１４５０が、実行ユニット１４４０に連結される。データキャッシュは、データオペランドのような最近使用／操作された要素を格納し、それらは、メモリコヒーレンシ状態で潜在的に保持される。Ｄ−ＴＬＢは、物理アドレスへの最近の仮想／線形変換を格納する。具体例として、プロセッサは、物理メモリを複数の仮想ページに分割するページテーブル構造を含んでよい。
【００９１】
ここで、コア１４０１および１４０２は、オンチップインタフェース１４１０に関連付けられた第２のレベルキャッシュのような、より高レベルまたはより遠いキャッシュへのアクセスを共有する。より高レベル、またはより遠いとは、増加した、または実行ユニットからさらに離れた、キャッシュレベルを指すことに留意されたい。一実施形態において、より高レベルのキャッシュは、ラストレベルデータキャッシュ、すなわちプロセッサ１４００のメモリ階層のラストキャッシュであり、例えば第２または第３のレベルデータキャッシュである。しかしながら、より高レベルのキャッシュはそのように限定されず、命令キャッシュに関連付けられてよく、またはそれを含んでよい。トレースキャッシュ、すなわち命令キャッシュのタイプが代わりに、デコーダ１４２５の後に連結され、最近デコードされたトレースを格納してよい。ここで、命令は潜在的にマクロ命令（すなわち、デコーダにより認識される一般的命令）を指し、それは複数のマイクロ命令（マイクロ操作）にデコードされてよい。
【００９２】
図示の構成において、プロセッサ１４００はまた、オンチップインタフェースモジュール１４１０を含む。歴史的には、メモリコントローラは、以下で詳細に後述するが、プロセッサ１４００の外部のコンピューティングシステムに含まれてきた。このシナリオでは、オンチップインタフェース１４１０は、プロセッサ１４００の外部のデバイス、例えば、システムメモリ１４７５、チップセット（通常、メモリ１４７５に接続するメモリコントローラハブ、および周辺デバイスに接続するＩ／Ｏコントローラハブを含む）、メモリコントローラハブ、ノースブリッジ、または他の集積回路、と通信する。またこのシナリオでは、バス１４０５は任意の既知の相互接続を含んでよく、例えば、マルチドロップバス、ポイントツーポイント相互接続、シリアル相互接続、パラレルバス、コヒーレント（例えば、キャッシュコヒーレント）バス、層状プロトコルアーキテクチャ、差動バス、およびＧＴＬバスである。
【００９３】
メモリ１４７５は、プロセッサ１４００に専用であってもよいし、システム内の他のデバイスと共有されてもよい。メモリ１４７５の共通のタイプの例としては、ＤＲＡＭ、ＳＲＡＭ、不揮発性メモリ（ＮＶメモリ）、および他の既知のストレージデバイスが含まれる。デバイス１４８０は、グラフィックアクセラレータ、メモリコントローラハブに連結されたプロセッサ若しくはカード、Ｉ／Ｏコントローラハブに連結されたデータストレージ、無線送受信機、フラッシュデバイス、オーディオコントローラ、ネットワークコントローラ、または他の既知のデバイスを含んでよいことに留意されたい。
【００９４】
しかしながら、最近、より多くのロジックおよびデバイスがＳＯＣのような単一のダイ上に統合されており、これらのデバイスの各々はプロセッサ１４００上に組み込まれてよい。例えば、一実施形態において、メモリコントローラハブが、プロセッサ１４００と同一のパッケージおよび／またはダイ上にある。ここで、コア１４１０の部分（オンコア部分）は、メモリ１４７５またはグラフィックデバイス１４８０等の他のデバイスとのインタフェースを取るための１または複数のコントローラを含む。そのようなデバイスとインタフェースを取るための相互接続とコントローラとを含む構成は通常、オンコア（または、アンコア構成）と称される。一例として、オンチップインタフェース１４１０は、オンチップ通信のためのリング相互接続と、オフチップ通信のための高速シリアルポイントツーポイントリンク１４０５とを含む。さらに、ＳＯＣ環境では、ネットワークインタフェース、コプロセッサ、メモリ１４７５、グラフィックプロセッサ１４８０、および任意の他の既知のコンピュータデバイス／インタフェース等の、さらにずっと多くのデバイスが、単一のダイまたは集積回路に統合され、高機能および低電力消費を備えたスモールフォームファクタを提供してよい。
【００９５】
一実施形態において、プロセッサ１４００は、本明細書に記載の装置および方法をサポートし、またはそれらとインタフェースを取るべく、アプリケーションコード１４７６をコンパイル、変換、および／または最適化するためのコンパイラ、最適化、および／または変換コード１４７７を実行可能である。コンパイラは通常、ソースのテキスト／コードをターゲットのテキスト／コードへと変換するためのプログラムまたはプログラムのセットを含む。通常、コンパイラによるプログラム／アプリケーションコードのコンパイルは、高レベルのプログラミング言語コードを低レベルの機械またはアセンブリ言語コードへと変換すべく、複数のフェーズおよびパスで行われる。しかしながら、簡易コンパイルのために単一パスのコンパイラも利用されてよい。コンパイラは、任意の既知のコンパイル技術を利用してよく、字句分析、前処理、解析、セマンティック分析、コード生成、コード変換、およびコード最適化のような任意の既知のコンパイラ動作を実行してよい。
【００９６】
より大型のコンパイラは通常、複数のフェーズを含むが、ほとんどの場合、これらのフェーズは、次の２つの一般的なフェーズ内に含まれる。（１）フロントエンド。すなわち、概してそこでは、構文処理、セマンティック処理、およびいくつかの変換／最適化が行われ得る。（２）バックエンド。すなわち、概してそこでは、分析、変換、最適化、およびコード生成が行われる。いくつかのコンパイラはミドルと称され、コンパイラにおけるフロントエンドとバックエンドとの間のあいまいな描写を示す。結果として、挿入、関連付け、生成、またはコンパイラの他の動作への言及が、前述のフェーズまたはパスのうち任意のものにおいて、並びにコンパイラの任意の他の既知のフェーズまたはパスにおいて行われてよい。例示的な例として、コンパイラは、オペレーション、呼び出し、関数等をコンパイルの１または複数のフェーズにおいて潜在的に挿入する。例えば、コンパイルのフロントエンドフェーズにおいて呼び出し／動作の挿入、その後、変換フェーズ中にその呼び出し／動作の変換をより低レベルのコードへと変換する。動的コンパイル中、コンパイラコードまたは動的最適化コードは、そのようなオペレーション／呼び出しを挿入するだけでなく、ランタイム中の実行のためにコードを最適化してよいことに留意されたい。特定の実施例として、バイナリコード（既にコンパイルされたコード）が、ランタイム中に動的に最適化されてよい。ここで、プログラムコードには、動的最適化コード、バイナリコード、またはこれらの組み合わせが含まれてよい。
【００９７】
コンパイラと同様、バイナリトランスレータ等のトランスレータは、コードを最適化および／または変換すべく、コードを静的または動的のいずれかで変換する。故に、コード、アプリケーションコード、プログラムコード、または他のソフトウェア環境の実行という言及は、（１）プログラムコードをコンパイルし、ソフトウェア構造を維持し、他の動作を実行し、コードを最適化し、またはコードを変換するための、コンパイラプログラム、最適化コードオプティマイザ、または動的若しくは静的いずれかのトランスレータの実行、（２）最適化／コンパイルがなされたアプリケーションコードといった、動作／呼び出しを含むメインプログラムコードの実行、（３）ソフトウェア構造を維持し、他のソフトウェア関連の動作を実行し、またはコードを最適化すべく、メインプログラムコードに関連付けられたライブラリ等の他のプログラムコードの実行、あるいは（４）これらの組み合わせ、を指してよい。
【００９８】
ここで図１５を参照すると、マルチコアプロセッサの一実施形態のブロック図が示されている。図１５の実施形態に示される通り、プロセッサ１５００は、複数のドメインを含む。具体的には、コアドメイン１５３０は、複数のコア１５３０Ａ〜１５３０Ｎを含み、グラフィックドメイン１５６０は、メディアエンジン１５６５を有する１または複数のグラフィックエンジンおよびシステムエージェントドメイン１５１０を含む。
【００９９】
様々な実施形態において、システムエージェントドメイン１５１０は、電力制御イベントおよび電力管理を処理し、その結果、ドメイン１５３０および１５６０（例えば、複数のコアおよび／またはグラフィックエンジン）の個々のユニットは、特定のユニット内で発生するアクティビティ（または非アクティビティ）の観点から、適切な電力モード／レベル（例えば、アクティブ、ターボ、スリープ、休止状態、ディープスリープ、または他のＡｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅのような状態）において動的に動作するよう独立的に制御可能である。ドメイン１５３０および１５６０の各々は、異なる電圧および／または電力で動作してよく、さらに当該複数のドメイン内の個々のユニットはそれぞれ、独立した周波数および電圧で潜在的に動作する。３つのドメインのみとともに示されているが、本発明の範囲はこの点に限定されず、他の実施形態において追加のドメインが存在してよいことに留意されたい。
【０１００】
図示の通り、各コア１５３０は、様々な実行ユニットおよび追加の処理要素に加え、低レベルキャッシュをさらに含む。ここで、様々なコアが互いに連結され、またラストレベルキャッシュ（ＬＬＣ）１５４０Ａ〜１５４０Ｎの複数のユニットまたはスライスから形成される共有キャッシュメモリへと連結されている。これらのＬＬＣは通常、ストレージおよびキャッシュコントローラ機能を含み、これらのコア間、並びに潜在的にはグラフィックエンジンとの間においても共有される。
【０１０１】
見ての通り、リング相互接続１５５０は、当該コアを互いに連結し、複数のリングストップ１５５２Ａ〜１５５２Ｎを介して、コアドメイン１５３０、グラフィックドメイン１５６０、およびシステムエージェント回路１５１０間の相互接続を提供する。当該リングストップの各々は、コアとＬＬＣスライスとの間の連結において存在する。図１５に示されるように、相互接続１５５０は、アドレス情報、データ情報、受信確認情報、およびスヌープ／無効情報を含む様々な情報を搬送するために使用される。リング相互接続が示されているが、任意の既知のオンダイ相互接続またはファブリックが利用されてよい。例示として、上記のいくつかのファブリック（例えば、別のオンダイ相互接続、オンチップシステムファブリック（ＯＳＦ）、Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏｃｏｎｔｒｏｌｌｅｒ  Ｂｕｓ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＡＭＢＡ）相互接続、多次元メッシュファブリック、または他の既知の相互接続アーキテクチャ）が、同様の様式で利用されてよい。
【０１０２】
さらに示される通り、システムエージェントドメイン１５１０は、関連付けられたディスプレイに対する制御およびそれに対するインタフェースを提供するディスプレイエンジン１５１２を含む。システムエージェントドメイン１５１０は、システムメモリ（例えば、複数のＤＩＭＭとともに実装されたＤＲＡＭ）へのインタフェースを提供する統合メモリコントローラ１５２０、メモリコヒーレンシ動作を実行するコヒーレンシロジック１５２２のような他のユニットを含んでよい。プロセッサと他の回路との間の相互接続を有効にする複数のインタフェースが存在してよい。例えば、一実施形態において、少なくとも１つのダイレクトメディアインタフェース（ＤＭＩ）１５１６インタフェース並びに１または複数のＰＣＩｅ（商標）インタフェース１５１４が提供される。ディスプレイエンジンおよびこれらのインタフェースは通常、ＰＣＩｅ（商標）ブリッジ１５１８を介してメモリに連結される。さらに、追加のプロセッサまたは他の回路等の他のエージェント間での通信を提供するために、１または複数の他のインタフェースが提供されてよい。
【０１０３】
図１６を参照すると、代表的なコアのブロック図が示されている。具体的には、図１５のコア１５３０のようなコアのバックエンドの論理ブロックである。概して、図１６に示される構造は、着信命令をフェッチし、様々な処理（例えば、キャッシュ、デコード、分岐予測等）およびアウトオブオーダ（ＯＯＯ）エンジン１６８０に複数の命令／動作を渡すことを実行すべく使用されるフロントエンドユニット１６７０を有するアウトオブオーダプロセッサを含む。ＯＯＯエンジン１６８０は、デコードされた命令に対し、さらなる処理を実行する。
【０１０４】
具体的には、図１６の実施形態において、アウトオブオーダエンジン１６８０は、１または複数のマイクロ命令またはマイクロオペレーションの形態であり得るデコードされた命令をフロントエンドユニット１６７０から受信し、それらをレジスタ等の適切なリソースに割り当てる割り当てユニット１６８２を含む。次に、命令は予約ステーション１６８４へ提供され、このステーションは、複数の実行ユニット１６８６Ａ〜１６８６Ｎのうちの１つに対し実行するために、リソースを予約およびスケジューリングする。様々なタイプの実行ユニットが存在してよく、例えば、とりわけ、演算ロジックユニット（ＡＬＵ）、ロードおよびストアユニット、ベクトル処理ユニット（ＶＰＵ）、浮動小数点実行ユニットを含む。これらの異なる実行ユニットからの結果は、並べ替えバッファ（ＲＯＢ）１６８８へと提供され、並べ替えバッファは、順序付けられていない結果を取得し、それらを正しいプログラム順序へ戻す。
【０１０５】
さらに図１６を参照し、フロントエンドユニット１６７０およびアウトオブオーダエンジン１６８０の両方が、異なるレベルのメモリ階層に連結されていることに留意されたい。具体的には、命令レベルキャッシュ１６７２が図示され、その次には中間レベルキャッシュ１６７６に連結され、その次にはラストレベルキャッシュ１６９５に連結される。一実施形態において、ラストレベルキャッシュ１６９５が、オンチップ（場合により、アンコアと称される）ユニット１６９０に実装されている。一例として、ユニット１６９０は、図１５のシステムエージェント１５１０と同様である。上記の通り、アンコア１６９０は、例示された実施形態において、ＥＤ  ＲＡＭを介して実装されるシステムメモリ１６９９と通信する。アウトオブオーダエンジン１６８０内の様々な実行ユニット１６８６が、第１のレベルキャッシュ１６７４と通信し、当該第１のレベルキャッシュはまた中間レベルキャッシュ１６７６と通信することを留意されたい。追加のコア１６３０Ｎ２〜１６３０Ｎが、ＬＬＣ１６９５に連結できることにも留意されたい。図１６の実施形態においては、この高レベルにおいて示されているが、様々な変更および追加のコンポーネントが存在してよいことを理解されたい。
【０１０６】
図１７を参照すると、命令を実行するための実行ユニットを含むプロセッサで形成された例示的なコンピュータシステムのブロック図が示されており、そこでは、１または複数の相互接続が、本発明の一実施形態に従い、１または複数の特徴を実装する。システム１７００は、本明細書に記載される実施形態のような本発明に従い、プロセスデータのためのアルゴリズムを実行するロジックを含む実行ユニットを採用するプロセッサ１７０２のようなコンポーネントを含む。システム１７００は、ＰＥＮＴＩＵＭ（登録商標）ＩＩＩ（商標）、Ｐｅｎｔｉｕｍ（登録商標）４（商標）、Ｘｅｏｎ（商標）、Ｉｔａｎｉｕｍ、ＸＳｃａｌｅ（商標）および／またはＳｔｒｏｎｇＡＲＭ（商標）マイクロプロセッサに基づく典型的な処理システムであるが、他のシステム（他のマイクロプロセッサを有するＰＣ、エンジニアリングワークステーション、セットトップボックス等も含む）も使用されてよい。一実施形態において、サンプルシステム１７００は、ワシントン州レドモンドのマイクロソフト社から入手可能なＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムのあるバージョンを実行するが、他のオペレーティングシステム（例えば、ＵＮＩＸ（登録商標）およびＬｉｎｕｘ（登録商標））、埋め込みソフトウェア、および／またはグラフィカルユーザインタフェースも使用されてよい。従って、本発明の複数の実施形態は、ハードウェア回路およびソフトウェアの任意の特定の組み合わせに限定されない。
【０１０７】
実施形態は、コンピュータシステムに限定されない。本発明の複数の代替的な実施形態は、ハンドヘルドデバイスおよび埋め込みアプリケーションのような他のデバイスにおいて使用され得る。ハンドヘルドデバイスのいくつかの例としては、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、携帯情報端末（ＰＤＡ）、およびハンドヘルドＰＣを含む。埋め込みアプリケーションは、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、システムオンチップ、ネットワークコンピュータ（ネットＰＣ）、セットトップボックス、ネットワークハブ、広域ネットワーク（ＷＡＮ）スイッチ、あるいは少なくとも一実施形態に従う１または複数の命令を実行し得る任意の他のシステムを含み得る。
【０１０８】
この例示された実施形態では、プロセッサ１７０２は、少なくとも１つの命令を実行するアルゴリズムを実装する１または複数の実行ユニット１７０８を含む。一実施形態が、シングルプロセッサのデスクトップまたはサーバシステムの文脈で記載されることがあるが、代替的な実施形態が、マルチプロセッサシステムに含まれてよい。システム１７００は、「ハブ」システムアーキテクチャの一例である。コンピュータシステム１７００は、データ信号を処理するためのプロセッサ１７０２を含む。１つの例示として、プロセッサ１７０２は、複合命令セットコンピュータ（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピュータ（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、命令セットの組み合わせを実装するプロセッサ、あるいは、例えば、デジタル信号プロセッサのような任意の他のプロセッサデバイスを含む。プロセッサ１７０２は、システム１７００内のプロセッサ１７０２と他のコンポーネントとの間でデータ信号を送信するプロセッサバス１７１０に連結される。システム１７００の要素（例えば、グラフィックアクセラレータ１７１２、メモリコントローラハブ１７１６、メモリ１７２０、Ｉ／Ｏコントローラハブ１７２４、無線送受信機１７２６、フラッシュＢＩＯＳ１７２８、ネットワークコントローラ１７３４、オーディオコントローラ１７３６、シリアル拡張ポート１７３８、Ｉ／Ｏコントローラ１７４０等）は、当業者に周知の従来の機能を実行する。
【０１０９】
一実施形態において、プロセッサ１７０２は、レベル１（Ｌ１）の内部キャッシュメモリ１７０４を含む。アーキテクチャに応じて、プロセッサ１７０２は、単一の内部キャッシュまたは複数のレベルの内部キャッシュを有してよい。他の実施形態は、特定の実装および必要性に応じて、内部および外部キャッシュの両方の組み合わせを含む。レジスタファイル１７０６は、異なるタイプのデータを、整数レジスタ、浮動小数点レジスタ、ベクトルレジスタ、バンクレジスタ、シャドウレジスタ、チェックポイントレジスタ、状態レジスタ、および命令ポインタレジスタを含む、様々なレジスタに格納する。
【０１１０】
整数および浮動小数点操作を実行するロジックを含む実行ユニット１７０８も、プロセッサ１７０２に存在する。プロセッサ１７０２は、一実施形態において、実行時に特定のマイクロ命令のためのアルゴリズムを実行する、または複雑なシナリオを処理するマイクロコードを格納するマイクロコード（μコード）ＲＯＭを含む。ここで、マイクロコードは、プロセッサ１７０２のためのロジックバグ／修正を処理すべく、潜在的に更新可能である。一実施形態について、実行ユニット１７０８は、パックされた命令セット１７０９を処理するためのロジックを含む。パックされた命令セット１７０９を汎用プロセッサ１７０２の命令セットに、命令を実行するための関連付けられた回路とともに含むことで、多くのマルチメディアアプリケーションによって使用される操作は、汎用プロセッサ１７０２のパックされたデータを使用して実行されてよい。従って、パックされたデータに対し操作を実行するためのプロセッサのデータバスの全幅を使用することによって、多くのマルチメディアアプリケーションが、加速され、より効率的に実行される。これにより、１または複数の操作を実行すべく、一度に１つのデータ要素といった、より小さなデータ単位をプロセッサのデータバスに渡り転送する必要性が潜在的になくなる。
【０１１１】
実行ユニット１７０８の代替的な実施形態は、マイクロコントローラ、埋め込みプロセッサ、グラフィックデバイス、ＤＳＰ、および他のタイプのロジック回路においても使用されてよい。システム１７００は、メモリ１７２０を含む。メモリ１７２０は、動的ランダムアクセスメモリ（ＤＲＡＭ）デバイス、静的ランダムアクセスメモリ（ＳＲＡＭ）デバイス、フラッシュメモリデバイス、または他のメモリデバイスを含む。メモリ１７２０は、プロセッサ１７０２によって実行されるデータ信号によって表される命令および／またはデータを格納する。
【０１１２】
本発明に係る前述の特徴または態様のうちの任意のものが、図１７に例示された１または複数の相互接続で利用されてよいことに留意されたい。例えば、プロセッサ１７０２の内部ユニットを連結するための、不図示のオンダイ相互接続（ＯＤＩ）が、上記の本発明の１または複数の態様を実装する。あるいは、本発明はプロセッサバス１７１０（例えば、他に高性能コンピューティング相互接続として知られる）、メモリ１７２０への高帯域幅メモリパス１７１８、グラフィックアクセラレータ１７１２へのポイントツーポイントリンク（例えば、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）準拠ファブリック）、コントローラハブ相互接続１７２２、他の図示されたコンポーネントを連結するためのＩ／Ｏまたは他の相互接続（例えば、ＵＳＢ、ＰＣＩ、ＰＣＩｅ）に関連する。そのようなコンポーネントのいくつかの例としては、オーディオコントローラ１７３６、ファームウェアハブ（フラッシュＢＩＯＳ）１７２８、無線送受信機１７２６、データストレージ１７２４、ユーザ入力とキーボードインタフェース１７４２とを備えるレガシＩ／Ｏコントローラ１７１０、ユニバーサルシリアルバス（ＵＳＢ）のようなシリアル拡張ポート１７３８、およびネットワークコントローラ１７３４を含む。データストレージデバイス１７２４は、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ‐ＲＯＭデバイス、フラッシュメモリデバイス、または他の大容量ストレージデバイスを備え得る。
【０１１３】
ここで図１８を見ると、本発明の一実施形態に従う第２のシステム１８００のブロック図が示されている。図１８に示される通り、マルチプロセッサシステム１８００は、ポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続１８５０を介して連結された第１のプロセッサ１８７０と、第２のプロセッサ１８８０とを含む。プロセッサ１８７０および１８８０の各々は、プロセッサの何らかのバージョンであってよい。一実施形態において、１８５２および１８５４は、高性能アーキテクチャのような、シリアルポイントツーポイントコヒーレント相互接続ファブリックの一部である。結果的に、本発明は、ＱＰＩアーキテクチャ内に実装されてよい。
【０１１４】
２つのプロセッサ１８７０、１８８０のみが示されているが、本発明の範囲はそのように限定されないことを理解されたい。他の実施形態において、１または複数の追加のプロセッサが、特定のプロセッサにおいて存在してよい。
【０１１５】
プロセッサ１８７０および１８８０は、統合メモリコントローラユニット１８７２および１８８２をそれぞれ含むように示されている。プロセッサ１８７０はまた、自己のバスコントローラユニットの一部として、ポイントツーポイント（Ｐ−Ｐ）インタフェース１８７６および１８７８を含み、同様に、第２のプロセッサ１８８０は、Ｐ−Ｐインタフェース１８８６および１８８８を含む。プロセッサ１８７０、１８８０は、ポイントツーポイント（Ｐ−Ｐ）インタフェース回路１８７８、１８８８を使用するＰ−Ｐインタフェース１８５０を介して、情報を交換してよい。図１８に示されるように、ＩＭＣ１８７２および１８８２は、当該複数のプロセッサをそれぞれのメモリ、すなわちメモリ１８３２およびメモリ１８３４に連結し、これらは、それぞれのプロセッサへローカルに取り付けられたメインメモリの部分であってよい。
【０１１６】
プロセッサ１８７０、１８８０はそれぞれ、ポイントツーポイントインタフェース回路１８７６、１８９４、１８８６、１８９８を使用する個々のＰ−Ｐインタフェース１８５２、１８５４を介して、チップセット１８９０と情報を交換する。チップセット１８９０はまた、高性能グラフィックス回路１８３８と、高性能グラフィックス相互接続１８３９沿いのインタフェース回路１８９２を介して情報を交換する。
【０１１７】
共有キャッシュ（不図示）は、いずれかのプロセッサの内部に含まれ、または両方のプロセッサの外部にあってもよいが、プロセッサが低電力モードであっても、いずれかまたは両方のプロセッサのローカルキャッシュ情報が共有キャッシュに格納され得るように、Ｐ−Ｐ相互接続を介して複数のプロセッサに接続される。
【０１１８】
チップセット１８９０が、インタフェース１８９６を介して、第１のバス１８１６に連結されてよい。一実施形態において、第１のバス１８１６は、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス、またはＰＣＩ  Ｅｘｐｒｅｓｓバスまたは別の第３世代Ｉ／Ｏ相互接続バスのようなバスであってよいが、本発明の範囲はそのように限定されない。
【０１１９】
図１８に示されるように、様々なＩ／Ｏデバイス１８１４が、第１のバス１８１６に、バスブリッジ１８１８とともに連結され、このブリッジは、第１のバス１８１６を第２のバス１８２０へと連結する。一実施形態において、第２のバス１８２０は、ｌｏｗ  ｐｉｎ  ｃｏｕｎｔ（ＬＰＣ）バスを含む。様々なデバイスが、第２のバス１８２０に連結され、例えば、キーボードおよび／またはマウス１８２２、通信デバイス１８２７および、通常、一実施形態において命令／コードおよびデータ１８３０を含むディスクドライブまたは他の大容量ストレージデバイスのようなストレージユニット１８２８を含む。さらに、オーディオＩ／Ｏ  １８２４が第２のバス１８２０に連結されて示されている。他のアーキテクチャが可能であり、その場合、含まれるコンポーネントおよび相互接続アーキテクチャが変わることに留意されたい。例えば、図１８のポイントツーポイントアーキテクチャの代わりに、システムは、マルチドロップバスまたは他のそのようなアーキテクチャを実装してよい。
【０１２０】
次に図１９を見ると、本発明に従うシステムオンチップ（ＳＯＣ）設計の一実施形態が示されている。特定の実施例として、ＳＯＣ１９００が、ユーザ機器（ＵＥ）に含まれる。一実施形態において、ＵＥとは、携帯電話、スマートフォン、タブレット、超薄型ノートブック、ブロードバンドアダプタ付きノートブック、または任意の他の同様の通信デバイスのような、通信するためにエンドユーザによって使用される任意の他のデバイスを指す。通常、ＵＥは、ＧＳＭ（登録商標）ネットワークにおける本質的な移動局（ＭＳ）に潜在的に対応する、基地局またはノードに接続する。
【０１２１】
ここで、ＳＯＣ１９００は、２つのコア、１９０６および１９０７を含む。上記と同様、コア１９０６および１９０７は、Ｉｎｔｅｌ（登録商標）Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｃｏｒｅ（商標）ベースのプロセッサ、Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．（ＡＭＤ）のプロセッサ、ＭＩＰＳベースのプロセッサ、ＡＲＭベースのプロセッサ設計、またはそれらの顧客、並びにライセンシー若しくは採用者等の命令セットアーキテクチャに準拠してよい。コア１９０６および１９０７は、システム１９００の他の部分と通信するため、バスインタフェースユニット１９０９およびＬ２キャッシュ１９１１に関連付けられたキャッシュ制御１９０８に連結されている。相互接続１９１０は、ＩＯＳＦ、ＡＭＢＡ、または上述した他の相互接続のようなオンチップ相互接続を含み、本明細書に記載の１または複数の態様を潜在的に実装する。
【０１２２】
インタフェース１９１０は、ＳＩＭカードとのインタフェースを取る加入者識別モジュール（ＳＩＭ）１９３０、ＳＯＣ１９００を初期化およびブートすべくコア１９０６および１９０７によって実行されるブートコードを保持するブートＲＯＭ１９３５、外部メモリ（例えば、ＤＲＡＭ１９６０）とインタフェースを取るＳＤＲＡＭコントローラ１９４０、不揮発性メモリ（例えば、フラッシュ１９６５）とインタフェースを取るフラッシュコントローラ１９４５、周辺機器とインタフェースを取る周辺コントロール１９５０（例えば、シリアル周辺インタフェース）、入力（例えば、タッチ対応入力）を表示および受信するビデオコーデック１９２０およびビデオインタフェース１９２５、グラフィック関連の計算を行うＧＰＵ１９１５等といった他のコンポーネントに対する通信チャネルを提供する。これらのインタフェースのうちの任意のものが、本明細書に記載の本発明の複数の態様を組み込んでよい。
【０１２３】
また、本システムは、Ｂｌｕｅｔｏｏｔｈ（登録商標）モジュール１９７０、３Ｇモデム１９７５、ＧＰＳ１９８５、およびＷｉＦｉ  １９８５のような通信用の周辺機器を示す。上記の通り、ＵＥは通信用無線を含むことに留意されたい。結果的に、これら周辺通信モジュールがすべて必要なわけではない。しかしながら、ＵＥにおいては、外部通信用の何らかの形式の無線通信が含まれる。
【０１２４】
本発明は、限定された数の実施形態に関し記載されているが、当業者はそれらからの多数の修正形態および改変形態を想起するであろう。添付の特許請求の範囲は、そのようなすべての修正形態および改変形態が、本発明の真の精神および範囲に属することを意図している。
【０１２５】
設計は、作成からシミュレーション、そして製造まで様々な段階を経ることがある。設計を表わすデータは、当該設計を多数の態様で表してよい。第１に、シミュレーションで有用なように、ハードウェアは、ハードウェア記述言語または別の機能記述言語を使用して表されてよい。また、ロジックおよび／またはトランジスタゲートを持つ回路レベルモデルが、設計処理のどこかの段階で生成されてよい。さらに、いくつかの段階において、多くの設計は、ハードウェアモデルにおける様々なデバイスの物理的配置を表わすレベルのデータに到達する。従来の半導体製造技術が使用される場合、ハードウェアモデルを表すデータとは、集積回路の製造に使用されるマスクのための異なるマスク層に、様々な特徴が存在するか存在しないかを指定するデータであってよい。設計の任意の表現において、データは任意の形態の機械可読媒体に格納されてよい。メモリまたはディスク等の磁気または光ストレージが当該機械可読媒体であってよく、変調されたまたはそれ以外の方法で生成された、そのような情報を送信するための光または電気の波を介して送信される情報を格納する。コードまたは設計を、示しまたは搬送する電気的な搬送波が送信される場合、その電気信号のコピー、バッファ処理、または再送信が実行される範囲において、新たなコピーが作成される。従って、通信プロバイダまたはネットワークプロバイダは、搬送波にエンコードされた情報のような、本発明の複数の実施形態における複数の技術を具体化した項目を有形の機械可読媒体に少なくとも一時的に格納してよい。
【０１２６】
本明細書で使用されるモジュールとは、ハードウェア、ソフトウェア、および／またはファームウェアの任意の組み合わせを指してよい。一例として、モジュールは、マイクロコントローラのような、マイクロコントローラによって実行されるよう適合されたコードを格納するための非一時的媒体に関連付けられたハードウェアを含む。従って、一実施形態において、モジュールという言及は、非一時的媒体に保持されるコードを認識および／または実行するよう特に構成されたハードウェアを指す。さらに、別の実施形態において、モジュールの使用は、予め定められた動作を実行するためのマイクロコントローラによって実行されるよう特に適合されたコードを含む非一時的媒体を指す。さらに、推測され得るように、さらなる別の実施形態では、モジュールという用語は（この例では）、当該マイクロコントローラおよび当該非一時的媒体の組み合わせを指すことがある。通常、別個に示されるモジュールの境界線は一般に変化し、潜在的には重複する。例えば、第１および第２のモジュールは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせを共有しつつ、その一方で、潜在的には、いくつかの独立したハードウェア、ソフトウェアまたはファームウェアを維持してよい。一実施形態において、ロジックという用語の使用は、トランジスタ、レジスタのようなハードウェア、またはプログラマブルロジックデバイスのような他のハードウェアを含む。
【０１２７】
一実施形態において、「構成される」という文言の使用は、指定された、または判断されたタスクを実行すべく、装置、ハードウェア、ロジック、または要素を、配置し、組み立て、製造し、販売の申出をし、輸入し、および／または、設計することを指す。この例において、動作していない装置またはその要素が、指定されたタスクを実行すべく設計され、連結され、および／または相互接続されている場合には、依然として、指定されたタスクを実行するよう「構成され」ている。純粋な例示として、ロジックゲートが動作中、０または１を提供してよい。しかし、イネーブル信号をクロックに供給するよう「構成され」たロジックゲートは、１または０を提供し得るすべての潜在的なロジックゲートを含むわけではない。代わりに、ロジックゲートは、動作中に１または０の出力がクロックをイネーブルにするように、いくつかの態様で連結されているものである。「構成され」という用語の使用は、動作を必要とはせず、その代わりに、装置、ハードウェア、および／または要素の潜在的な状態に重きを置いたものであって、その場合、潜在的な状態においては、装置、ハードウェアおよび／または要素は、装置、ハードウェアおよび／または要素が動作中、特定のタスクを実行するよう設計されていることに再度留意されたい。
【０１２８】
さらに、「すべく」、「可能」、および／または「動作可能」という文言の使用は、一実施形態において、装置、ロジック、ハードウェアおよび／または要素を指定された態様で使用することを可能にするよう設計された、いくつかの装置、ロジック、ハードウェア、および／または要素を指す。上記したように、すべく、可能、または動作可能の使用は、一実施形態において、装置、ロジック、ハードウェアおよび／または要素の潜在的な状態を指し、この場合、装置、ロジック、ハードウェア、および／または要素は、動作をしているのではなく、指定された態様での装置の使用を可能にするような態様で設計がされていることに留意されたい。
【０１２９】
本明細書中で使用される値は、数値、状態、ロジック状態、またはバイナリロジック状態についての任意の既知の表現を含み得る。通常、ロジックレベル、ロジック値、または論理値という使用は、単純にバイナリロジック状態を表す１および０のレベルまたは値とも称される。例えば、１は高ロジックレベルおよび０は低ロジックレベルを指す。一実施形態において、トランジスタまたはフラッシュセルのようなストレージセルは、単一の論理値または複数の論理値を保持可能であってよい。しかしながら、コンピュータシステムにおける他の値の表現が使用されている。例えば、１０進数の１０は、バイナリ値１０１０として、１６進数では文字Ａとして、表され得る。従って、値は、コンピュータシステムにおいて保持可能な情報の任意の表現を含む。
【０１３０】
さらに、状態は、値または値の部分によって表現されてよい。一例として、ロジック１等の第１の値が、既定または初期の状態を表し得るが、ロジック０等の第２の値は、既定以外の状態を表し得る。また、一実施形態において、リセットおよび設定という用語は、既定および更新された値または状態をそれぞれ指す。例えば、既定値は潜在的に高論理値、すなわち、リセットを含むが、更新された値は潜在的に低論理値、すなわち、設定を含む。値の任意の組み合わせが、任意の数の状態を表すべく利用され得ることに留意されたい。
【０１３１】
上述の方法、ハードウェア、ソフトウェア、ファームウェアまたはコードの複数の実施形態は、機械アクセス可能、機械可読、コンピュータアクセス可能、または処理要素によって実行可能なコンピュータ可読媒体上に格納された命令またはコードを介して実装されてよい。非一時的機械アクセス可能／可読媒体は、コンピュータまたは電子システムのような機械によって読み取り可能な形態の情報を提供（すなわち、格納および／または送信）する任意のメカニズムを含む。例えば、非一時的機械アクセス可能媒体としては、静的ＲＡＭ（ＳＲＡＭ）若しくは動的ＲＡＭ（ＤＲＡＭ）のようなランダムアクセスメモリ（ＲＡＭ）、ＲＯＭ、磁気若しくは光ストレージ媒体、フラッシュメモリデバイス、電気ストレージデバイス、光ストレージデバイス、音響ストレージデバイス、一時的（伝搬される）信号（例えば、搬送波、赤外線信号、デジタル信号）から受信される情報を保持するための他の形態のストレージデバイス等を含み、これらは、それらからの情報を受信できる非一時的媒体とは区別される。
【０１３２】
本発明の複数の実施形態を実行するロジックをプログラムすべく使用される命令は、ＤＲＡＭ、キャッシュ、フラッシュメモリ、または他のストレージのようなシステム内のメモリ内部に格納されてよい。さらに、命令はネットワークを介して、または他のコンピュータ可読媒体によって配信され得る。従って、機械可読媒体は、機械（例えば、コンピュータ）によって読み取り可能な形態で情報を格納または送信するための任意のメカニズムを含んでよい。そのようなものとして、限定されないが、フロッピー（登録商標）ディスク、光ディスク、コンパクトディスク、リードオンリメモリ（ＣＤ‐ＲＯＭ）、および光磁気ディスク、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、磁気または光カード、フラッシュメモリ、または電気形態、光形態、音響形態若しくは他の形態の伝搬信号（例えば、搬送波、赤外線信号、デジタル信号等）を介したインターネット経由での情報送信に使用される有形の機械可読ストレージが挙げられる。従って、コンピュータ可読媒体には、機械（例えば、コンピュータ）によって読み取り可能な形態で電子命令または情報を格納または送信するのに好適な任意のタイプの有形の機械可読媒体が含まれる。
【０１３３】
以下の複数の例は、本明細書に従う複数の実施形態に関する。１または複数の実施形態は、少なくとも１６ギガ転送／秒（ＧＴ／Ｓ）のビットレートをサポートするペリフェラルコンポーネントインターコネクト（ＰＣＩ）エクスプレス（ＰＣＩｅ）プロトコルに基づくチャネルを提供するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび／またはソフトウェアベースのロジック、および方法を提供してよく、チャネルは、２つのコネクタを含み、１２インチ（３０．４８センチメートル）より長い長さを有する。
【０１３４】
少なくとも一例において、チャネルは、少なくとも１つのビアを含み、上記ビアのスタブは少なくとも部分的に除去されている。
【０１３５】
少なくとも一例において、上記ビアは、上記スタブを除去すべく、バックドリルされる。
【０１３６】
少なくとも一例において、上記ビアは、上記複数のコネクタのうちの第１のコネクタのビアである。
【０１３７】
少なくとも一例において、第１のデバイスに接続するために上記コネクタによって利用される各ビアは、バックドリルされる。
【０１３８】
少なくとも一例において、第２のデバイスに接続するために利用される上記複数のコネクタのうちの第２のコネクタの複数のビアは、バックドリルされる。
【０１３９】
少なくとも一例において、上記ビアは、プロセッサソケットのビアである。
【０１４０】
少なくとも一例において、上記チャネルの各レーンは、それぞれのプロセッサソケットの対応する部分を含み、ビアスタブを有する上記チャネルのレーンに対応する上記複数のプロセッサソケットの各々は、バックドリルされる。
【０１４１】
少なくとも一例において、低損失回路基板が提供され、上記チャネルは上記回路基板に少なくとも部分的に実装される。
【０１４２】
少なくとも一例において、上記低損失回路基板は、より少ないトレース差動挿入損失を有する。少なくとも一例において、ゲインが上記チャネルの受信機フロントエンドにおいて適用される。
【０１４３】
少なくとも一例において、上記ゲインは、およそ６ｄＢを含む。
【０１４４】
少なくとも一例において、ゲインは上記チャネルのｃｏｎｔｉｎｕｏｕｓ  ｔｉｍｅ  ｌｉｎｅａｒ  ｅｑｕａｌｉｚｅｒに適用される。
【０１４５】
少なくとも一例において、上記受信機フロントエンドおよび上記ｃｏｎｔｉｎｕｏｕｓ  ｔｉｍｅ  ｌｉｎｅａｒ  ｅｑｕａｌｉｚｅｒに適用された上記結合されたゲインは、およそ６ｄＢである。
【０１４６】
少なくとも一例において、上記チャネルは、バックドリルされたスタブを持つ少なくとも１つのビアを含み、上記チャネルは、低損失回路基板に少なくとも部分的に実装され、およそ６ｄＢの結合されたゲインが、上記チャネルの受信機フロントエンドおよび上記チャネルのｃｏｎｔｉｎｕｏｕｓ  ｔｉｍｅ  ｌｉｎｅａｒ  ｅｑｕａｌｉｚｅｒのうちの１または複数において適用される。
【０１４７】
少なくとも一例において、上記チャネルの長さは、少なくとも２０インチ（５０．８センチメートル）である。
【０１４８】
１または複数の実施形態は、２つのコネクタから成るマルチレーンリンクを含むチャネル上で少なくとも１６ＧＴ／秒のビットレートでデータを送信するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび／またはソフトウェアベースのロジック、および方法を提供してよく、上記チャネルの長さは、１２インチ（３０．４８センチメートル）より長い。
【０１４９】
少なくとも一例において、上記チャネルの長さは、少なくとも２０インチ（５０．８センチメートル）である。
【０１５０】
少なくとも一例において、上記チャネルは、１または複数のビアを含み、上記複数のビアの複数のスタブはバックドリルされる。
【０１５１】
少なくとも一例において、上記１または複数のビアは、上記２つのコネクタのうちの一方または両方に含まれる。
【０１５２】
少なくとも一例において、上記チャネルは、複数のプロセッサソケットを含み、上記複数のプロセッサソケットは、上記複数のビアを含む。
【０１５３】
少なくとも一例において、上記チャネルは、バックドリルされたスタブを持つ少なくとも１つのビアを含み、上記チャネルは、低損失回路基板に少なくとも部分的に実装され、およそ６ｄＢの結合されたゲインが、上記チャネルの受信機フロントエンドおよび上記チャネルのｃｏｎｔｉｎｕｏｕｓ  ｔｉｍｅ  ｌｉｎｅａｒ  ｅｑｕａｌｉｚｅｒのうちの１または複数において適用される。
【０１５４】
少なくとも一例において、上記チャネルは、ＰＣＩｅベースのチャネルを含む。
【０１５５】
１または複数の実施形態は、２つのコネクタから成るマルチレーンリンクを含むチャネル上で少なくとも１６ＧＴ／秒のビットレートで送信されるデータを受信するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび／またはソフトウェアベースのロジック、および方法を提供してよく、上記チャネルの長さは、１２インチ（３０．４８センチメートル）より長い。
【０１５６】
少なくとも一例において、上記チャネルの長さは、少なくとも２０インチ（５０．８センチメートル）である。
【０１５７】
少なくとも一例において、上記チャネルは、１または複数のビアを含み、上記複数のビアの複数のスタブはバックドリルされる。
【０１５８】
少なくとも一例において、上記１または複数のビアは、上記２つのコネクタのうちの一方または両方に含まれる。
【０１５９】
少なくとも一例において、上記チャネルは、複数のプロセッサソケットを含み、上記複数のプロセッサソケットは、上記複数のビアを含む。
【０１６０】
少なくとも一例において、上記チャネルは、バックドリルされたスタブを持つ少なくとも１つのビアを含み、上記チャネルは、低損失回路基板に少なくとも部分的に実装され、およそ６ｄＢの結合されたゲインが、上記チャネルの受信機フロントエンドおよび上記チャネルのｃｏｎｔｉｎｕｏｕｓ  ｔｉｍｅ  ｌｉｎｅａｒ  ｅｑｕａｌｉｚｅｒのうちの１または複数において適用される。
【０１６１】
少なくとも一例において、上記チャネルは、ＰＣＩｅベースのチャネルを含む。
【０１６２】
少なくとも一例において、第１のデバイスおよび相互接続チャネルを使用して上記第１のデバイスに通信可能に連結された第２のデバイスを含むシステムが提供され、上記相互接続チャネルは、少なくとも１６ＧＴ／秒のビットレートをサポートするペリフェラルコンポーネントインターコネクト（ＰＣＩ）エクスプレス（ＰＣＩｅ）プロトコルベースのリンクを含み、上記リンクは、２つのコネクタを含み、１２インチ（３０．４８センチメートル）より長い長さを有する。
【０１６３】
少なくとも一例において、上記システムは、サーバチップセットを含む。
【０１６４】
少なくとも一例において、上記第１のデバイスは、プロセッサデバイスを含む。
【０１６５】
１または複数の実施形態は、特定のレーン上で送信された少なくとも１つのエラーのシンボルの検出に基づいて、リンクの複数のレーンのうちの特定の１つのレーン上で第１のレーンエラーを識別し、上記第１のレーンエラーをレーンエラーレジスタに報告するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび／またはソフトウェアベースのロジック、および方法を提供してよい。
【０１６６】
少なくとも一例において、上記レーンエラーレジスタにおいて報告された複数のレーンエラーは、上記複数のレーンにおける対応するレーンを識別する。
【０１６７】
少なくとも一例において、上記複数のレーンのうちの少なくとも１つのレーンにおけるエラー同期ヘッダの検出に基づいて、第２のレーンエラーがリンク上で識別され、上記第２のレーンエラーは、上記レーンエラーレジスタに報告される。
【０１６８】
少なくとも一例において、上記リンク経由で送信されたデータストリームに対するパリティ情報の不一致の判断に基づいて、第３のレーンエラーが識別され、上記第３のレーンエラーは、上記レーンエラーレジスタに報告される。
【０１６９】
少なくとも一例において、パリティ情報は、ＳＫＰの順序付けられたセット（ＳＫＰ  ＯＳ）で受信される。
【０１７０】
少なくとも一例において、上記Ｉ／Ｏロジックは、物理層ロジックを含む。
【０１７１】
少なくとも一例において、上記エラーのシンボルは、ＳＫＰ  ＯＳに含まれるシンボルに対するエラーを含む。
【０１７２】
少なくとも一例において、上記エラーのシンボルは、上記ＳＫＰ  ＯＳ内の第１のＳＬＰ  ＯＳシンボルと、上記ＳＫＰ  ＯＳ内のＳＬＰ  ＥＮＤマーカとの間に検出されたＳＫＰ  ＯＳ以外のシンボルを含む。
【０１７３】
少なくとも一例において、上記エラーのシンボルは、ＳＫＰ  ＯＳのシンボル８、１２、１６、２０または２４以外のシンボルに配置されるＳＫＰ  ＥＮＤを含む。
【０１７４】
少なくとも一例において、上記エラーのシンボルは、フレーミングトークンの第１のシンボルを含む。
【０１７５】
少なくとも一例において、上記フレーミングトークンは、ＰＣＩｅフレーミングトークンを含む。
【０１７６】
少なくとも一例において、上記フレーミングトークンは、ロジカルアイドルトークン（ＩＤＬ）、データリンク層パケット（ＤＬＬＰ）データトークンの開始（ＳＤＰ）、トランザクション層パケット（ＴＬＰ）データトークンの開始（ＳＴＰ）、および不良ＴＬＰトークンの終了（ＥＤＢ）のうちの少なくとも１つを含む。
【０１７７】
少なくとも一例において、上記エラーのシンボルは、エラーのＩＤＬトークンシンボルを含む。
【０１７８】
少なくとも一例において、第１のＩＤＬトークンが複数のレーンにおける特定のレーンｎに含まれ、上記エラーのシンボルは、上記複数のレーンにおけるレーンｎ＋１、ｎ＋２、およびｎ＋３のうちのいずれか１つにおいて検出されたＩＤＬ以外のシンボルを含む。
【０１７９】
少なくとも一例において、上記エラーのシンボルは、ＥＤＢトークンシンボルを含む。
【０１８０】
少なくとも一例において、第１のＥＤＢトークンが、上記複数のレーンにおける特定のレーンｎ上でＴＬＰに続き、上記エラーのシンボルは、上記複数のレーンにおけるレーンｎ＋１、ｎ＋２、およびｎ＋３のうちのいずれか１つにおいて検出されたＥＤＢ以外のシンボルを含む。
【０１８１】
少なくとも一例において、上記エラーのシンボルは、ＥＤＢトークンのシンボルを含み、上記ＥＤＢトークンは、ＳＤＰトークン以外のフレーミングトークンに続く。
【０１８２】
少なくとも一例において、上記エラーのシンボルは、ＳＤＰトークンシンボルを含む。
【０１８３】
少なくとも一例において、ＳＤＰトークンの第１のシンボルは、上記複数のレーンにおける特定のレーンｎに含まれ、上記エラーのシンボルは、上記複数のレーンにおけるレーンｎ＋１で検出されたＳＤＰ以外のシンボルを含む。
【０１８４】
少なくとも一例において、上記レーンエラーレジスタは、ＰＣＩｅレーンエラー状態（ＬＥＳ）レジスタを含む。
【０１８５】
少なくとも一例において、上記リンクは、ＰＣＩｅ準拠リンクを含む。
【０１８６】
少なくとも一例において、第２のレーンエラーが、先行するＥＤＳトークンが欠如する順序付けられたセットのブロックの検出に基づいて、上記リンク上で識別される。
【０１８７】
少なくとも一例において、順序付けられたセットのシンボル、ＩＤＬトークンシンボル、ＳＤＰトークンシンボル、ＳＴＰトークンシンボル、およびＥＤＢトークンシンボルのうちのいずれか１つにおけるエラーの検出に基づくレーンエラーが、識別され、報告される。
【０１８８】
少なくとも一例において、特定のレーンに関する複数のレーンエラーを識別すべく、レーンエラーレジスタが監視され、上記レーンエラーレジスタ内の上記特定のレーンに対し識別された上記複数のエラーに基づいて、上記特定のレーンに欠陥があることを判断できる。
【０１８９】
少なくとも一例において、上記特定のレーンに欠陥があることを判断することは、上記複数のエラーの統計的分析を含む。
【０１９０】
１または複数の実施形態は、複数のレーンを含むリンクが、アクティブ状態を終了することを識別し、上記リンク経由で前に送信されたデータに基づいて、上記複数のレーンのためのパリティ情報を維持し、上記アクティブ状態からの上記終了前に、上記パリティ情報のインジケーションを送信するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび／またはソフトウェアベースのロジック、および方法を提供してよい。
【０１９１】
少なくとも一例において、上記パリティ情報の上記インジケーションは、上記終了に応答して送信される。
【０１９２】
少なくとも一例において、上記パリティ情報の上記インジケーションは、順序付けられたセットで送信される。
【０１９３】
少なくとも一例において、各レーンのための上記パリティ情報の上記インジケーションは、上記順序付けられたセットに含まれる各レーンのためのそれぞれのパリティビットに含まれる。
【０１９４】
少なくとも一例において、上記順序付けられたセットは、ＰＣＩｅ  ＳＫＰ  ＯＳを含む。
【０１９５】
少なくとも一例において、上記リンクは、リンク回復に基づいて、上記アクティブ状態を終了する。
【０１９６】
少なくとも一例において、上記リンク回復は、上記リンク上で検出されたエラーに基づく。
【０１９７】
少なくとも一例において、上記エラーは、フレーミングトークンエラーを含む。
【０１９８】
１または複数の実施形態は、複数のレーンを含むリンク上でデータを送信し、上記送信されたデータに基づいて、上記複数のレーンの各々のためのパリティ情報を維持し、上記リンクは、アクティブ状態を終了するということを識別し、上記アクティブ状態からの上記終了の前に、上記パリティ情報を送信するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび／またはソフトウェアベースのロジック、および方法を提供してよい。
【０１９９】
１または複数の実施形態は、リンク経由で前に送信されたデータに基づいて、上記リンクの複数のレーンの各々のための第１のパリティ情報を維持し、イベントに応じて第２のパリティ情報を受信し、上記イベントは、上記リンクがアクティブ状態を終了するようにさせ、上記第２のパリティ情報は、上記アクティブ状態からの上記終了の前に送信されるようにされる、装置，システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび／またはソフトウェアベースのロジック、および方法を提供してよい。上記複数のレーンのうちの１または複数上における複数の潜在的なレーンエラーを識別すべく、上記第１のパリティ情報は、上記第２のパリティ情報と比較される。
【０２００】
少なくとも一例において、上記第２のパリティ情報は、順序付けられたセットに含まれる。
【０２０１】
少なくとも一例において、上記第２のパリティ情報は、上記順序付けられたセットに含まれる複数のパリティビットに含まれる。
【０２０２】
少なくとも一例において、上記順序付けられたセットは、ＳＫＰ  ＯＳを含む。
【０２０３】
少なくとも一例において、上記リンクの回復に基づいて、上記リンクは上記アクティブ状態を終了する。
【０２０４】
少なくとも一例において、上記回復は、上記リンク上で検出されたエラーによってトリガされる。
【０２０５】
少なくとも一例において、上記エラーは、フレーミングトークンエラーを含む。
【０２０６】
少なくとも一例において、複数の潜在的なレーンエラーが、レーンエラーレジスタに報告される。
【０２０７】
少なくとも一例において、上記レーンエラーレジスタは、ＬＥＳレジスタを含む。
【０２０８】
少なくとも一例において、上記イベントは、上記リンク上で検出されたエラーを含む。
【０２０９】
少なくとも一例において、上記リンクの回復は、上記エラーに基づいてトリガされ、上記回復は、上記リンクに上記アクティブ状態を終了させる。
【０２１０】
少なくとも一例において、上記第１のパリティ情報が上記第２のパリティ情報と一致しないということの検出に基づいて、複数の潜在的なレーンエラーが識別される。
【０２１１】
１または複数の実施形態は、複数のレーンを含むリンク経由でデータを受信し、上記データに基づいて、上記複数のレーンの各々のための第１のパリティ情報を維持し、イベントに応じて第２のパリティ情報を受信し、上記複数のレーンのうちの１または複数上における複数の潜在的なレーンエラーを識別すべく、上記第１のパリティ情報を上記第２のパリティ情報と比較するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび／またはソフトウェアベースのロジック、および方法を提供してよく、上記イベントは、上記リンクがアクティブ状態を終了するようにさせ、上記第２のパリティ情報は、上記アクティブ状態からの上記終了の前に送信されるようにされる。
【０２１２】
１または複数の実施形態は、リンク経由で送信されたデータの第１の部分に基づいて、上記リンクの複数のレーンの各々のためのパリティ情報を維持し、上記リンクの回復の後、上記パリティ情報の計算を再開するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび／またはソフトウェアベースのロジック、および方法を提供してよく、上記パリティ情報は上記リンクの回復の間、維持され、上記パリティ情報はさらに上記リンク経由で送信されたデータの第２の部分に基づいており、データの上記第２の部分は持続的なものとみなされる。
【０２１３】
少なくとも一例において、上記データの上記第１の部分は、第１のデータブロックに対応し、上記データの上記第２の部分は、異なる第２のデータブロックに対応する。
【０２１４】
少なくとも一例において、上記第１のデータブロックは、上記回復によって割り込まれ、上記第２のブロックは、上記回復の後、開始する。
【０２１５】
少なくとも一例において、上記回復は、上記リンク上で検出されたエラーに基づく。
【０２１６】
少なくとも一例において、上記データの上記第１および上記第２の部分に基づいて計算される上記パリティ情報のインジケーションが、受信デバイスに送信される。
【０２１７】
少なくとも一例において、上記パリティ情報は第１のパリティ情報を含み、Ｉ／Ｏロジックはさらに、送信デバイスから、上記データの上記第１および上記第２の部分に基づいて上記送信デバイスによって計算された第２のパリティ情報のインジケーションを受信し、上記第２のパリティ情報の上記インジケーションを上記第１のパリティ情報と比較する。
【０２１８】
少なくとも一例において、上記第２のパリティ情報の上記インジケーションと上記第１のパリティ情報との比較に基づいて、複数の潜在的なエラーが上記複数のレーンのうちの１または複数上に存在するかどうかが判断される。
【０２１９】
少なくとも一例において、上記複数の潜在的なエラーは、レーンエラーレジスタに報告される。
【０２２０】
少なくとも一例において、上記レーンエラーレジスタは、ＰＣＩｅ  ＬＥＳレジスタを含む。
【０２２１】
少なくとも一例において、上記第２のパリティ情報の上記インジケーションは、ＳＫＰ  ＯＳに含まれる。
【０２２２】
少なくとも一例において、上記第２のパリティ情報の上記インジケーションは、上記ＳＫＰ  ＯＳの複数のパリティビットを含む。
【０２２３】
少なくとも一例において、上記リンクは、ＰＣＩｅ準拠リンクを含む。
【０２２４】
１または複数の実施形態は、複数のレーンを含むリンク上で第１のデータを送信し、上記送信された第１のデータに基づいて、上記複数のレーンの各々のためのパリティ情報を判断し、上記リンクの回復に参加し、上記リンクの上記回復の後、上記リンク上で第２のデータを送信し、更新されたパリティ情報を生成すべく、上記パリティ情報を更新するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび／またはソフトウェアベースのロジック、および方法を提供してよく、上記パリティ情報は上記リンクの上記回復の間、維持され、上記更新されたパリティ情報は、上記第１のデータおよび上記第２のデータに基づく。
【０２２５】
１または複数の実施形態は、デバイスから第１のデータを受信し、上記受信された第１のデータに基づいて上記複数のレーンの各々のためのパリティ情報を判断し、上記リンクの回復に参加し、上記リンクの上記回復の後、上記デバイスから上記リンク上で第２のデータを受信し、更新されたパリティ情報を生成すべく、上記パリティ情報を更新するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび／またはソフトウェアベースのロジック、および方法を提供してよく、上記第１のデータは、複数のレーンを含むリンク上で受信され、上記パリティ情報は上記リンクの上記回復の間、維持され、上記更新されたパリティ情報は、上記第１のデータおよび上記第２のデータに基づく。
【０２２６】
少なくとも一例において、１または複数の潜在的なレーンエラーを判断すべく、上記特定のパリティ情報は、他のパリティ情報と比較可能である。
【０２２７】
少なくとも一例において、上記他のパリティ情報は、ＳＫＰ  ＯＳに含まれる。
【０２２８】
少なくとも一例において、上記他のパリティ情報は、上記ＳＫＰ  ＯＳに含まれる複数のパリティビットから識別可能である。
【０２２９】
１または複数の実施形態は、デバイスから第１のデータを受信し、上記受信された第１のデータに基づいて、上記複数のレーンの各々のためのパリティ情報を判断し、上記リンクの回復に参加し、上記リンクの上記回復の後、上記デバイスから上記リンク上で第２のデータを受信し、更新されたパリティ情報を生成すべく、上記パリティ情報を更新するための装置、システム、機械可読ストレージ、機械可読媒体、ハードウェアベースおよび／またはソフトウェアベースのロジック、および方法を提供してよく、上記第１のデータは、複数のレーンを含むリンク上で受信され、上記パリティ情報は上記リンクの上記回復の間、維持され、上記更新されたパリティ情報は、上記第１のデータおよび上記第２のデータに基づく。
【０２３０】
本明細書全体で「一実施形態」または「ある実施形態」に言及する場合、当該実施形態に関連して記載された特定の特徴、構造、または特性が本発明の少なくとも一実施形態に含まれることを意味する。従って、本明細書中の随所における「一実施形態において」または「ある実施形態において」という文言が現れても、必ずしもすべてが同一の実施形態を指している訳ではない。さらに、当該特定の特徴、構造、または特性は、１または複数の実施形態において、任意の好適な態様で組み合わされ得る。
【０２３１】
上記明細書においては、詳細な説明は、特定の例示的な実施形態に関し記載されている。しかしながら、添付の特許請求の範囲に記載される本発明のより広範な精神および範囲から逸脱することなく、様々な変更および修正がそこになされ得ることは明らかであろう。本明細書および添付図面は、従って、限定的な意味ではなく、例示的な意味のものとみなされるべきである。さらに、実施形態および他の例示的な文言の上記使用は、同一の実施形態または同一の例を必ずしも指しておらず、異なるおよび区別される複数の実施形態並びに潜在的に同一の実施形態を指すことがある。
（項目１）
複数のレーンを含むリンクが、アクティブ状態を終了することを識別し、
上記リンク経由で前に送信されたデータに基づいて、上記複数のレーンのためのパリティ情報を維持し、
上記アクティブ状態からの上記終了の前に、上記パリティ情報のインジケーションを送信する、Ｉ／Ｏロジックを備える、装置。
（項目２）
上記パリティ情報の上記インジケーションは、上記終了に応答して送信される、項目１に記載の装置。
（項目３）
上記パリティ情報の上記インジケーションは、順序付けられたセットで送信される、項目１に記載の装置。
（項目４）
各レーンのための上記パリティ情報の上記インジケーションは、上記順序付けられたセットに含まれる各レーンのためのそれぞれのパリティビットに含まれる、項目３に記載の装置。
（項目５）
上記順序付けられたセットは、ＰＣＩｅ  ＳＫＰ  ＯＳを含む、項目３に記載の装置。
（項目６）
上記リンクは、リンク回復に基づいて、上記アクティブ状態を終了する、項目１に記載の装置。
（項目７）
上記リンク回復は、上記リンク上で検出されたエラーに基づく、項目６に記載の装置。
（項目８）
上記エラーは、フレーミングトークンエラーを含む、項目７に記載の装置。
（項目９）
複数のレーンを含むリンク上でデータを送信する段階と、
上記送信されたデータに基づいて、上記複数のレーンの各々のためのパリティ情報を維持する段階と、
上記リンクは、アクティブ状態を終了するということを識別する段階と、
上記アクティブ状態からの上記終了の前に、上記パリティ情報のインジケーションを送信する段階と、を備える、方法。
（項目１０）
上記パリティ情報の上記インジケーションは、ＳＫＰ  ＯＳで送信される、項目９に記載の方法。
（項目１１）
上記リンクが、上記アクティブ状態を終了するということを識別する段階に基づいて、パリティ情報のスケジューリングされた送信の前に、上記パリティ情報の上記インジケーションが送信される、項目９に記載の方法。
（項目１２）
上記リンク上で検出されたエラーによってトリガされたリンク回復に基づいて、上記リンクは上記アクティブ状態を終了する、項目９に記載の方法。
（項目１３）
受信デバイスからの上記エラーを示すデータを受信する段階をさらに備える、項目１２に記載の方法。
（項目１４）
格納されたコードを有する少なくとも１つの機械アクセス可能ストレージ媒体であって、上記コードは機械における実行時、上記機械に対し、
複数のレーンを含むリンク上でデータを送信させ、
上記送信されたデータに基づいて、上記複数のレーンの各々のためのパリティ情報を維持させ、
上記リンクは、アクティブ状態を終了するということを識別させ、
上記アクティブ状態からの上記終了の前に、上記パリティ情報を送信させる、少なくとも１つの機械アクセス可能ストレージ媒体。
（項目１５）
リンク経由で前に送信されたデータに基づいて、上記リンクの複数のレーンの各々のための第１のパリティ情報を維持し、
イベントに応じて第２のパリティ情報を受信し、
上記複数のレーンのうちの１または複数のレーン上における複数の潜在的なレーンエラーを識別すべく、上記第１のパリティ情報を上記第２のパリティ情報と比較する、Ｉ／Ｏロジックを備え、
上記イベントは、上記リンクがアクティブ状態を終了するようにさせ、上記第２のパリティ情報は、上記アクティブ状態からの上記終了の前に送信される、装置。
（項目１６）
上記第２のパリティ情報は、順序付けられたセットに含まれる、項目１５に記載の装置。
（項目１７）
上記第２のパリティ情報は、上記順序付けられたセットに含まれる複数のパリティビットに含まれる、項目１６に記載の装置。
（項目１８）
上記順序付けられたセットは、ＳＫＰ  ＯＳを含む、項目１６に記載の装置。
（項目１９）
上記リンク上で検出されたエラーによってトリガされた上記リンクの回復に基づいて、上記リンクは上記アクティブ状態を終了する、項目１５に記載の装置。
（項目２０）
上記エラーはフレーミングトークンエラーを含む、項目１９に記載の装置。
（項目２１）
上記Ｉ／Ｏロジックはさらに、複数の潜在的なレーンエラーをレーンエラーレジスタに報告する、項目１５に記載の装置。
（項目２２）
上記レーンエラーレジスタは、ＬＥＳレジスタを含む、項目２１に記載の装置。
（項目２３）
複数のレーンを含むリンク経由でデータを受信する段階と、
上記データに基づいて、上記複数のレーンの各々のための第１のパリティ情報を維持する段階と、
イベントに応じて第２のパリティ情報を受信する段階と、
上記複数のレーンのうちの１または複数のレーン上における複数の潜在的なレーンエラーを識別すべく、上記第１のパリティ情報を上記第２のパリティ情報と比較する段階と、を備え、
上記イベントは、上記リンクがアクティブ状態を終了するようにさせ、上記第２のパリティ情報は、上記アクティブ状態からの上記終了の前に送信される、方法。
（項目２４）
上記イベントは、上記リンク上で検出されたエラーを含む、項目２３に記載の方法。
（項目２５）
上記リンクの回復は、上記エラーに基づいてトリガされ、上記回復は、上記リンクに上記アクティブ状態を終了させる、項目２３に記載の方法。
（項目２６）
複数の潜在的なレーンエラーをレーンエラーレジスタに報告する段階をさらに備える、項目２３に記載の方法。
（項目２７）
上記レーンエラーレジスタに報告された複数のレーンエラーに基づいて、上記複数のレーンのうちの１または複数に欠陥があるかどうかを判断すべく、上記レーンエラーレジスタを監視する段階をさらに備える、項目２６に記載の方法。
（項目２８）
上記第１のパリティ情報が上記第２のパリティ情報と一致しないということの検出に基づいて、複数の潜在的なレーンエラーが識別される、項目２３に記載の方法。
（項目２９）
格納されたコードを有する少なくとも１つの機械アクセス可能ストレージ媒体であって、上記コードは機械における実行時、上記機械に対し、
複数のレーンを含むリンク経由でデータを受信させ、
上記データに基づいて、上記複数のレーンの各々のための第１のパリティ情報を維持させ、
イベントに応じて第２のパリティ情報を受信させ、
上記複数のレーンのうちの１または複数のレーン上における複数の潜在的なレーンエラーを識別すべく、上記第１のパリティ情報を上記第２のパリティ情報と比較させ、
上記イベントは、上記リンクがアクティブ状態を終了するようにさせ、上記第２のパリティ情報は、上記アクティブ状態からの上記終了の前に送信される、少なくとも１つの機械アクセス可能ストレージ媒体。
（項目３０）
複数のレーンを含むデータリンクと、
第１のデバイスと、
上記データリンクを使用し、上記第１のデバイスに通信可能に連結された第２のデバイスと、を備え、
上記第２のデバイスは、
上記リンク上で上記第１のデバイスにデータを送信し、
上記送信されたデータに基づいて、上記複数のレーンの各々のためのパリティ情報を維持し、
上記リンクが、アクティブ状態を終了するということを識別し、
上記アクティブ状態からの上記終了の前に、上記パリティ情報のインジケーションを送信する、Ｉ／Ｏロジックを含む、システム。
（項目３１）
上記パリティ情報は、第１のパリティ情報を含み、上記第１のデバイスは、
上記データに基づいて、上記複数のレーンの各々のための第２のパリティ情報を維持し、
上記第１のパリティ情報の上記インジケーションを受信し、
上記複数のレーンのうちの１または複数のレーン上における複数の潜在的なレーンエラーを識別すべく、上記第１のパリティ情報を上記第２のパリティ情報と比較する、Ｉ／Ｏロジックを含む、項目３０に記載のシステム。
（項目３２）
上記第１のデバイスの上記Ｉ／Ｏロジックはさらに、上記第１のパリティ情報と上記第２のパリティ情報との比較に基づいて、上記複数のレーンのうちの特定の１つに関する潜在的なエラーを判断する、項目３１に記載のシステム。
（項目３３）
上記パリティ情報の上記インジケーションは、上記第２のデバイスによって、上記第１のデバイスに送信されるＳＫＰ  ＯＳに含まれる、項目３０に記載のシステム。
【図１】
0006552581.tif 000002
【図２】
0006552581.tif 000003
【図３】
0006552581.tif 000004
【図４】
0006552581.tif 000005
【図５】
0006552581.tif 000006
【図６】
0006552581.tif 000007
【図７】
0006552581.tif 000008
【図８】
0006552581.tif 000009
【図９】
0006552581.tif 000010
【図１０】
0006552581.tif 000011
【図１１】
0006552581.tif 000012
【図１２】
0006552581.tif 000013
【図１３Ａ】
0006552581.tif 000014
【図１３Ｂ】
0006552581.tif 000015
【図１３Ｃ】
0006552581.tif 000016
【図１３Ｄ】
0006552581.tif 000017
【図１４】
0006552581.tif 000018
【図１５】
0006552581.tif 000019
【図１６】
0006552581.tif 000020
【図１７】
0006552581.tif 000021
【図１８】
0006552581.tif 000022
【図１９】
0006552581.tif 000023