(57)【特許請求の範囲】
【請求項１】
物理層論理と、リンク層論理と、プロトコル層論理とを備え、
前記物理層論理は、反復するシーケンスを有するスーパーシーケンスを生成し、前記シーケンスは、ＥＯＳ（ｅｌｅｃｔｒｉｃａｌ  ｏｒｄｅｒｅｄ  ｓｅｔ）および複数のトレーニングシーケンスを含み、
前記複数のトレーニングシーケンスは、前記スーパーシーケンスが関連づけられる複数のトレーニングステートのうちのそれぞれ１つに対応する事前に定義された数のトレーニングシーケンスを有し、
前記複数のトレーニングシーケンスの各トレーニングシーケンスは、それぞれのトレーニングシーケンスヘッダおよびトレーニングシーケンスペイロードを含み、
前記複数のトレーニングシーケンスの前記トレーニングシーケンスペイロードは、スクランブル処理されて送信され、
前記複数のトレーニングシーケンスの前記トレーニングシーケンスヘッダは、スクランブル処理されずに送信される
装置。
【請求項２】
前記トレーニングシーケンスヘッダは、擬似乱数ビットシーケンス（ＰＲＢＳ）を用いてスクランブル処理される
請求項１に記載の装置。
【請求項３】
前記ＰＲＢＳは、ＰＲＢＳ２３を有する
請求項２に記載の装置。
【請求項４】
前記物理層論理は、前記ＰＲＢＳを生成するための線形フィードバックシフトレジスタ（ＬＦＳＲ）を有する
請求項２に記載の装置。
【請求項５】
前記ＬＦＳＲは、２３ビットのフィボナッチＬＦＳＲを有する
請求項４に記載の装置。
【請求項６】
前記ＬＦＳＲは、ｘ２３＋ｘ２１＋ｘ１６＋ｘ８＋ｘ５＋ｘ２＋１を含む生成器多項式を実装する
請求項５に記載の装置。
【請求項７】
前記ＥＯＳは、ＥＩＥＯＳ（ｅｌｅｃｔｒｉｃ  ｉｄｌｅ  ｅｘｉｔ  ｏｒｄｅｒｅｄ  ｓｅｔ）を有する
請求項１から６のいずれか一項に記載の装置。
【請求項８】
前記ＥＩＥＯＳは、１６バイト順序セットを有し、
前記ＥＩＥＯＳのバイト０、２、４、６、８、１０、１２および１４は、値８'ｈ００を有し、
前記ＥＩＥＯＳのバイト１、３、５、７、９、１１、１３および１５は、値８'ｈＦＦを有する
請求項７に記載の装置。
【請求項９】
前記複数のトレーニングステートは、検出状態、ポーリング状態、コンフィギュレーション状態、およびループバック状態を含む
請求項１から８のいずれか一項に記載の装置。
【請求項１０】
前記スーパーシーケンスは、前記検出状態に対応する検出スーパーシーケンスを有し、
前記検出スーパーシーケンスにおける前記事前に定義された数のトレーニングシーケンスは、一連の６つのトレーニングシーケンスを有する
請求項９に記載の装置。
【請求項１１】
前記スーパーシーケンスは、前記ポーリング状態に対応するポーリングスーパーシーケンスを有し、
前記ポーリングスーパーシーケンスにおける前記事前に定義された数のトレーニングシーケンスは、一連の３０のトレーニングシーケンスを有する
請求項９に記載の装置。
【請求項１２】
前記ループバック状態に対応するループバックスーパーシーケンスは、一連の３０のトレーニングシーケンスも有し、
前記ポーリングスーパーシーケンスにおける前記トレーニングシーケンスは、第１の値を有し、
前記ループバックスーパーシーケンスにおける前記トレーニングシーケンスは、第２の値を有する
請求項１１に記載の装置。
【請求項１３】
前記物理層論理は、前記スーパーシーケンスをリンクの複数のレーンの各々で送信するための送信機を有する
請求項１から１２のいずれか一項に記載の装置。
【請求項１４】
前記スーパーシーケンスは、別のデバイスに送信され、
前記物理層論理は、前記別のデバイスからの前記スーパーシーケンスのインスタンスを受信するための受信機を有する
請求項１３に記載の装置。
【請求項１５】
プロセッサノードと、物理層論理とを備え、
前記物理層論理は、
反復するシーケンスを有するスーパーシーケンスを受信する段階であって、前記シーケンスは、ＥＩＥＯＳ（ｅｌｅｃｔｒｉｃ  ｉｄｌｅ  ｅｘｉｔ  ｏｒｄｅｒｅｄ  ｓｅｔ）と一連のトレーニングシーケンスとを含み、前記一連のトレーニングシーケンスは、ステートマシンにおける複数のステートのうちの特定の１つに対応する事前に定義された数のトレーニングシーケンスを有し、前記一連のトレーニングシーケンスにおける各トレーニングシーケンスは、それぞれのヘッダおよびペイロードを含み、前記一連のトレーニングシーケンスの前記ペイロードは、擬似乱数ビットシーケンス（ＰＲＢＳ）によってスクランブル処理され、前記一連のトレーニングシーケンスの前記ヘッダは、スクランブル処理されない、受信する段階と、
前記スーパーシーケンスから前記特定のステートを決定する段階とを実行するためのものである
プロセッサデバイス。
【請求項１６】
前記物理層論理を有するコントローラをさらに備え、
前記コントローラは、リンク層論理およびプロトコル層論理をさらに備える
請求項１５に記載のプロセッサデバイス。
【請求項１７】
前記ＰＲＢＳを生成するための線形フィードバックシフトレジスタ（ＬＦＳＲ）をさらに備える
請求項１５または１６に記載のプロセッサデバイス。
【請求項１８】
前記ＬＦＳＲは、２３ビットのフィボナッチＬＦＳＲを有する
請求項１７に記載のプロセッサデバイス。
【請求項１９】
前記トレーニングシーケンスのヘッダは、前記複数のステートのうちの特定の１つを示すための型フィールドを有する
請求項１５から１８のいずれか一項に記載のプロセッサデバイス。
【請求項２０】
前記トレーニングシーケンスのヘッダは、レーン番号付けフィールドをさらに有する
請求項１９に記載のプロセッサデバイス。
【請求項２１】
少なくとも、第１の命令セットを認識するための第１のプロセッサと、前記第１の命令セットとは異なる第２の命令セットを認識するための第２のプロセッサとの間でインタフェース接続するための前記第１のプロセッサに対応するコントローラを備え、
前記コントローラは、プロトコル層論理と、リンク層論理と、物理層論理とを有し、
前記物理層論理は、反復するシーケンスを有するスーパーシーケンスを生成し、前記シーケンスは、ＥＯＳ（ｅｌｅｃｔｒｉｃａｌ  ｏｒｄｅｒｅｄ  ｓｅｔ）および複数のトレーニングシーケンスを含み、
前記複数のトレーニングシーケンスは、ステートマシンにおける複数のトレーニングステートのうちの特定の１つに対応する事前に定義された数のトレーニングシーケンスを有し、
前記複数のトレーニングシーケンスの各トレーニングシーケンスは、それぞれのトレーニングシーケンスヘッダおよびトレーニングシーケンスペイロードを含み、
前記複数のトレーニングシーケンスの前記トレーニングシーケンスペイロードは、スクランブル処理され、
前記複数のトレーニングシーケンスの前記トレーニングシーケンスヘッダは、スクランブル処理されず、
前記複数のトレーニングステートは、検出状態、ポーリング状態、コンフィギュレーション状態、およびループバック状態を含む
装置。
【請求項２２】
第１のプロセッサと、
前記第１のプロセッサに相互接続によって接続された第２のプロセッサとを備え、
前記第２のプロセッサは、プロトコル層論理、リンク層論理、および物理層論理を有し、
前記物理層論理は、前記相互接続上で前記第１のプロセッサにスーパーシーケンスを送信し、
前記スーパーシーケンスは、反復するシーケンスを有し、前記シーケンスは、ＥＯＳ（ｅｌｅｃｔｒｉｃａｌ  ｏｒｄｅｒｅｄ  ｓｅｔ）および一連のトレーニングシーケンスを含み、
前記一連のトレーニングシーケンスは、ステートマシンにおける複数のリンクトレーニングステートのうちの特定の１つに対応する事前に定義された数のトレーニングシーケンスを有し、
前記一連のトレーニングシーケンスにおける各トレーニングシーケンスは、それぞれのトレーニングシーケンスヘッダおよびトレーニングシーケンスペイロードを有し、
前記一連のトレーニングシーケンスの前記トレーニングシーケンスペイロードは、スクランブル処理され、
前記一連のトレーニングシーケンスの前記トレーニングシーケンスヘッダは、スクランブル処理されず、
前記第１のプロセッサは、物理層論理を有し、
前記物理層論理は、
前記スーパーシーケンスを受信し、
前記スーパーシーケンスから前記特定のステートを決定する
システム。
【請求項２３】
前記第１のプロセッサは、プロトコル層論理、リンク層論理、および物理層論理を有し、
前記物理層論理は、前記第２のプロセッサからの前記スーパーシーケンスを受信し、前記第２のプロセッサに送信するための前記スーパーシーケンスの複数のインスタンスを生成する
請求項２２に記載のシステム。
【請求項２４】
前記ＥＯＳは、ＥＩＥＯＳ（ｅｌｅｃｔｒｉｃ  ｉｄｌｅ  ｅｘｉｔ  ｏｒｄｅｒｅｄ  ｓｅｔ）を有する
請求項２２または２３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概してコンピュータ開発の分野に関し、より詳細には、相互に依存する複数の制約されたシステムを調和させること含むソフトウェア開発に関する。
【０００２】
背景技術
半導体プロセスおよび論理設計における進展が、集積回路デバイスに提供されうるロジックの分量の増加を可能としてきた。その当然の結果として、コンピュータのシステム構成は、システム中のシングルまたはマルチ集積回路から、個別の集積回路に存在するマルチコア、マルチハードウェアスレッド、およびマルチ論理プロセッサへと、そのようなプロセッサ内で一体化される他のインタフェースと同様に、発展してきた。プロセッサや集積回路は、典型的には単一の物理プロセッサダイを備え、プロセッサダイは、任意の数のコア、ハードウェアスレッド、論理プロセッサ、インタフェース、メモリ、コントローラハブなどを含んでよい。
【０００３】
より小型なパッケージにより大きな処理パワーを適合させるための能力が大きくなった結果、より小型なコンピューティングデバイスの人気が高まっている。スマートフォン、タブレット、超薄型ノートブック、および、その他のユーザ機器が、指数関数的に成長している。しかしながら、より小型なこれらのデバイスは、データ保管およびフォームファクタを超えた複雑な処理という両方の目的で、サーバに依存している。その結果、高性能コンピュータ市場（例えば、サーバスペース）の要求もまた、拡大している。例えば、最新のサーバには、典型的には、マルチコアを有するシングルプロセッサだけでなく、演算能力を高めるためのマルチ物理プロセッサ（またマルチソケットと称される）が、搭載されている。しかし、コンピューティングシステムのデバイスの数とともに処理能力が増加するにつれて、ソケット他のデバイスとの間の通信が、よりクリティカルとなっている。
【０００４】
実際に、相互接続は、主に電気通信を処理する従来のマルチドロップバスから、高速通信を容易にする完璧な相互接続アーキテクチャへと成長している。残念なことに、次世代のプロセッサに対する要求がより一層高レートでの消費となるにつれて、対応する要求が、現存の相互接続アーキテクチャの機能へと置き換えられている。
【図面の簡単な説明】
【０００５】
【図１】一実施形態によるコンピュータシステムのＩ／Ｏデバイスに接続するシリアル２地点間（ポイントツーポイント）相互接続を有するシステムの簡略化されたブロック図を示す。
【０００６】
【図２】一実施形態による層状プロトコルスタックの簡略化されたブロック図を示す。
【０００７】
【図３】トランザクション記述子の実施形態を示す。
【０００８】
【図４】シリアル２地点間リンクの実施形態を示す。
【０００９】
【図５】潜在的な高性能相互接続（ＨＰＩ）システム構成の複数の実施形態を示す。
【００１０】
【図６】ＨＰＩに関連する層状プロトコルスタックの実施形態を示す。
【００１１】
【図７】例示的なステートマシンの表現を示す。
【００１２】
【図８】例示的な複数の制御スーパーシーケンスを示す。
【００１３】
【図９】部分幅送信状態へと向かう例示的なエントリを表したフロー図である。
【００１４】
【図１０】例示的なトレーニングシーケンスを示す。
【００１５】
【図１１】マルチコアプロセッサを有するコンピューティングシステムのためのブロック図の実施形態を示す。
【００１６】
【図１２】マルチコアプロセッサを有するコンピューティングシステムのためのブロック図の別の実施形態を示す。
【００１７】
【図１３】プロセッサのためのブロック図の実施形態を示す。
【００１８】
【図１４】プロセッサを有するコンピューティングシステムのためのブロック図の別の実施形態を示す。
【００１９】
【図１５】マルチプロセッサソケットを有するコンピューティングシステムのためのブロック図の実施形態を示す。
【００２０】
【図１６】コンピューティングシステムのためのブロック図の別の実施形態を示す。
【００２１】
様々な図面中における類似の参照番号および記号表示は、同じ要素を指す。
【発明を実施するための形態】
【００２２】
本発明の深い理解を提供するために、以下では、プロセッサおよびシステム構成の具体的なタイプの例、具体的なハードウェア構造、具体的なアーキテクチャのおよびマイクロアーキテクチャの詳細、具体的なレジスタ構成、具体的な命令タイプ、具体的なシステムコンポーネント、具体的なプロセッサパイプラインステージ、具体的な相互接続レイヤ、具体的なパケット／トランザクション構成、具体的なトランザクション名、具体的な交換プロトコル、具体的なリンク幅、具体的な実装、および動作等の、多数の具体的な詳細が説明される。しかしながら、本開示の主題を実施するために、これら具体的詳細が必ずしも採用される必要は無いことが、当業者には明らかであろう。他の例では、具体的かつ代わりのプロセッサアーキテクチャ、記述されたアルゴリズムのための具体的な論理回路／コード、具体的なファームウェアコード、具体的な低レベル相互接続オペレーション、具体的な論理構成、具体的な製造技術および材料、具体的なコンパイラ実装、具体的なアルゴリズムのコード表現、具体的なパワーダウンおよびゲーティング技術／論理、コンピュータシステムにおけるその他の具体的な操作上の詳細のような周知のコンポーネントや方法についての詳細な説明は、不必要に本開示を不明瞭にすることを避けるべく、回避されている。
【００２３】
以下の複数の実施形態は、コンピューティングプラットフォームやマイクロプロセッサのような具体的な集積回路におけるエネルギー保存、エネルギー効率、処理効率性などに関連して説明がなされるかもしれないが、他の複数の実施形態が、他の複数のタイプの集積回路および論理デバイスに適用し得る。ここで記載される複数の実施形態についての複数の技術および複数の教示と類似するものが、それらの特徴から同様に利益を得る可能性のある他のタイプの回路や半導体デバイスへ、適用されてよい。例えば、開示された複数の実施形態は、サーバコンピュータシステム、デスクトップコンピュータシステム、ラップトップ、ウルトラブック（商標）には限定されず、またハンドヘルドデバイス、スマートフォン、タブレット、他の薄型ノートブック、システムオンチップ（ＳＯＣ）デバイス、および埋め込みアプリケーションのようなその他の複数のデバイスで用いられてもよい。ハンドヘルドデバイスの幾つかの例としては、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、携帯情報端末（ＰＤＡ）およびハンドヘルドＰＣを含む。ここで、低電力相互接続において性能を高めるために（さらには省電力化のため）、高性能相互接続のための類似の技術が適用されてよい。埋め込みアプリケーションとしては、典型的には、マイクロコントローラ、デジタルシグナルプロセッサ（ＤＳＰ）、システムオンチップ、ネットワークコンピュータ（ＮｅｔＰＣ）、セットトップボックス、ネットワークハブ、ワイドエリアネットワーク（ＷＡＮ）スイッチ、または、以下で教示される機能およびオペレーションを実行可能な他の任意のシステム、を含む。さらに、ここで記載される複数の装置、複数の方法および複数のシステムは、物理コンピューティングデバイスには限定されずに、また、エネルギー保存および効率性のためのソフトウェア最適化に関連してよい。以下の説明から容易に明らかになるであろうが、ここで記載される複数の方法、複数の装置および複数のシステム（ハードウェア、ファームウェア、ソフトウェアに関するものであろうとこれらの組み合わせに関するものであろうと）における複数の実施形態は、性能への配慮と将来のバランスが取れた「グリーンテクノロジー」に不可欠であると見なされてよい。
【００２４】
コンピューティングシステムが発展するにつれて、その中のコンポーネントは、より複雑になっている。複数のコンポーネントと連結し、かつそれらの間で通信を行う相互接続アーキテクチャでは、また、帯域幅要求が最適なコンポーネントオペレーションに合致することを保証するために、複雑性が増加している。さらには、異なる市場セグメントが、それぞれの市場に合致した相互接続アーキテクチャの異なる態様を要求する。例えば、サーバはより高い性能を必要するが、モバイルのエコシステムは、場合によっては、省電力化のために全体的な性能を犠牲にすることがありうる。その上、多くのファブリックの唯一の目的は、最大の省電力化を行いながら、最高の可能な性能を提供することである。さらには、様々な異なる相互接続が、ここで記載される主題から潜在的に利益を得ることができる。
【００２５】
とりわけ、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）エクスプレス（ＰＣＩｅ）相互接続ファブリックアーキテクチャおよびクイックパスインターコネクト（ＱＰＩ）ファブリックアーキテクチャは、特に、ここで記載される１または複数の原理によって潜在的に改善されうる。
例えば、ＰＣＩｅの基本的な目的は、異なる複数ベンダからの複数のコンポーネントおよび複数のデバイスにオープンアーキテクチャで相互運用を可能とすることであり、それは多数の市場セグメント、複数のクライアント（デスクトップおよびモバイル）、複数のサーバ（規格および企業向け）および複数の埋め込み通信デバイスに及ぶ。ＰＣＩ  Ｅｘｐｒｅｓｓは、多種多様な次世代のコンピューティングおよび通信プラットフォームのために規定された高性能汎用Ｉ／Ｏ相互接続である。利用モデル、読み込み／書込みアーキテクチャ、ソフトウェアインタフェースのようないくつかのＰＣＩ属性が複数の改訂版を通して維持されてきたが、これに対し、以前のパラレルバス実装は、高度に拡張可能な完全シリアルインタフェースによって置き換えられてきた。ＰＣＩ  Ｅｘｐｒｅｓｓの最近のバージョンでは、２地点間相互接続、スイッチベースのテクノロジー、および、性能と特徴の新たな複数レベルでの配信のためパケット化されたプロトコル、のそれぞれでの進歩を活用している。電力管理、サービス品質（ＱｏＳ）、ホットプラグ／ホットスワップサポート、データ整合性、およびエラー処理は、ＰＣＩ  Ｅｘｐｒｅｓｓによってサポートされる進歩的な複数の特徴のうちのいくつかである。ここでの主要な議論は新たな高性能相互接続（ＨＰＩ）アーキテクチャに関連するが、ここで記載される本発明の複数の態様は、ＰＣＩｅ準拠アーキテクチャ、ＱＰＩ準拠アーキテクチャ、ＭＩＰＩ準拠アーキテクチャ、高性能アーキテクチャ、またはその他の知られた相互接続アーキテクチャのような、他の相互接続アーキテクチャへ適用されてもよい。
【００２６】
図１を参照すると、一連の複数のコンポーネントを相互接続する２地点間リンクを備えたファブリックの実施形態が図示される。システム１００は、プロセッサ１０５、および、コントローラハブ１１５に結合されたシステムメモリ１１０を有する。プロセッサ１０５は、マイクロプロセッサ、ホストプロセッサ、組込みプロセッサ、コプロセッサ、その他のプロセッサのような任意の処理要素を含むことができる。プロセッサ１０５は、フロントサイドバス（ＦＳＢ）１０６を介してコントローラハブ１１５へ結合される。一実施形態では、後述のＦＳＢ１０６は、シリアル２地点間相互接続である。別の実施形態では、リンク１０６は、シリアルの差動相互接続アーキテクチャを有し、これは異なる相互接続規格に準拠する。
【００２７】
システムメモリ１１０は、ランダムアクセスメモリ（ＲＡＭ）、不揮発性（ＮＶ）メモリ、またはシステム１００における複数のデバイスによってアクセス可能な他のメモリのような、任意のメモリデバイスを有する。システムメモリ１１０は、メモリインタフェース１１６を通してコントローラハブ１１５へ結合される。メモリインタフェースの例として、ダブルデータレート（ＤＤＲ）メモリインタフェース、デュアルチャネルＤＤＲメモリインタフェース、およびダイナミックＲＡＭ（ＤＲＡＭ）メモリインタフェースを含む。
【００２８】
一実施形態では、コントローラハブ１１５は、ＰＣＩｅ相互接続階層においてそうであるように、ロートハブ、ルートコンプレックス、またはルートコントローラを有しうる。コントローラハブ１１５の例としては、チップセット、メモリコントローラハブ（ＭＣＨ）、ノースブリッジ、相互接続コントローラハブ（ＩＣＨ）、サウスブリッジ、およびルートコントローラ／ハブを有する。しばしば、チップセットという用語は、２つの物理的に別個なコントローラハブ、例えば、相互接続コントローラハブ（ＩＣＨ）に結合されたメモリコントローラハブ（ＭＣＨ）、を指す。現在のシステムは、しばしば、プロセッサ１０５と一体化されたＭＣＨを含むが、その一方で、コントローラ１１５は、後述されるのと類似のやり方で、複数のＩ／Ｏデバイスと通信することに留意されたい。いくつかの実施形態では、ピアツーピアのルーティングが、ルートコンプレックス１１５を介して任意選択的にサポートされる。
【００２９】
ここでコントローラハブ１１５は、シリアルリンク１１９を通してスイッチ／ブリッジ１２０に結合される。入出力モジュール１１７および１２１は、またインタフェース／ポート１１７／１２１とも称されてよく、層状プロトコルスタックを含む／実装することが可能であり、コントローラハブ１１５とスイッチ１２０との間で通信を提供する。一実施形態では、複数のデバイスがスイッチ１２０に結合されることが可能である。
【００３０】
スイッチ／ブリッジ１２０は、デバイス１２５からの複数のパケット／複数のメッセージを、上流へ、即ちルートコンプレックスへ向かう階層の上方、コントローラハブ１１５へと送り、かつ下流へ、即ちルートコントローラから離れる階層の下方、プロセッサ１０５またはシステムメモリ１１０からデバイス１２５へと送る。スイッチ１２０は、一実施形態では、複数の仮想的なＰＣＩ−ＰＣＩ間のブリッジデバイスの論理的アセンブリとも称される。デバイス１２５は、Ｉ／Ｏデバイス、ネットワークインタフェースコントローラ（ＮＩＣ）、アドインカード、オーディオプロセッサ、ネットワークプロセッサ、ハードドライブ、ストレージデバイス、ＣＤ／ＤＶＤ  ＲＯＭ、モニタ、プリンタ、マウス、キーボード、ルータ、持ち運び可能なストレージデバイス、ファイヤーワイヤーデバイス、ユニバーサルシリアルバス（ＵＳＢ）デバイス、スキャナ、その他の入出力デバイスのような、電子システムに結合されるべき任意の、内部若しくは外部デバイスまたはコンポーネントを有してよい。しばしば、ＰＣＩｅ専門用語では、そのようなデバイスは、エンドポイントとも称される。具体的には示されていないが、デバイス１２５は、ブリッジ（ＰＣＩｅとＰＣＩ、ＰＣＩとＸブリッジ）を含んでよく、レガシーのまたは他の複数のバージョンのデバイス、または、それらのデバイスによってサポートされる相互接続ファブリックをサポートする
【００３１】
グラフィックスアクセラレータ１３０は、また、シリアルリンク１３２を通してコントローラハブ１１５に結合されうる。一実施形態では、グラフィックスアクセラレータ１３０はＭＣＨに結合され、ＭＣＨはＩＣＨに結合される。スイッチ１２０は、および、その結果としてＩ／Ｏデバイス１２５は、ＩＣＨに結合される。Ｉ／Ｏモジュール１３１および１１８は、また層状プロトコルスタックを実装するためものであり、グラフィックスアクセラレータ１３０とコントローラハブ１１５との間で通信する。上記のＭＣＨの議論と類似して、グラフィクスコントローラまたはグラフィックスアクセラレータ１３０それ自体が、プロセッサ１０５で一体化されてよい。
【００３２】
図２に移ると、層状プロトコルスタックの実施形態が図示される。層状プロトコルスタック２００は、ＱＰＩスタック、ＰＣＩｅスタック、次世代高性能コンピューティング相互接続（ＨＰＩ）スタック、その他の層状スタックのような、任意の形態の層状の通信スタックを含むことができる。一実施形態では、プロトコルスタック２００は、トランザクション層２０５、リンク層２１０、および物理層２２０を含むことができる。図１におけるインタフェース１１７、１１８、１２１、１２２、１２６および１３１のようなインタフェースが、通信プロトコルスタック２００として表されてよい。通信プロトコルスタックとしての表現は、また、プロトコルスタックを実装している／有しているモジュール又はインタフェースとも称されてよい。
【００３３】
複数のコンポーネント間で情報を通信するべく複数のパケットが用いられうる。パケットは、トランザクション層２０５およびデータリンク層２１０で形成されることが可能であり、情報を送信コンポーネントから受信コンポーネントへと搬送する。送信される複数のパケットが他の複数層を通って流れるにつれて、それらは複数層でパケットを処理するために用いられる付加情報で拡張される。受信側ではリバース処理が発生し、複数のパケットは、それら物理層２２０表現からデータリンク層２１０表現へ、そして最終的には（トランザクション層パケットのために）受信デバイスのトランザクション層２０５によって処理することができる形態へと変換される。
【００３４】
一実施形態ではトランザクション層２０５は、データリンク層２１０および物理層２２０のような、デバイスの処理コアと相互接続アーキテクチャとの間のインタフェースを提供することができる。これに関連して、トランザクション層２０５の主要な責務として、複数パケット（即ち、トランザクション層パケットまたはＴＬＰ）を組み立て、分解することを含みうる。変換層２０５は、また、ＴＬＰのためのクレジットベースのフロー制御を管理することが可能でる。いくつかの実装では、分割された複数のトランザクションを使用することができる。即ち、特に、時間分割された要求と応答とを有する複数のトランザクションが、ターゲットデバイスが応答のためのデータを集めている間に、リンクが他のトラヒックを搬送することを許容する。
【００３５】
クレジットベースのフロー制御は、相互接続ファブリックを利用する仮想の複数のチャネルおよび複数のネットワークを理解するために用いられうる。一例において、デバイスは、トランザクション層２０５における複数の受信バッファのそれぞれに対してクレジットの初期量を通知することができる。図１のコントローラハブ１１５のような、リンクの反対側の終点における外部デバイスは、各ＴＬＰにより消費されるクレジット数をカウントすることができる。トランザクションは、そのトランザクションがクレジット限度を超過しない場合に、送信されてよい。応答を受信すると、クレジット量が元に戻される。他の潜在的利点の中で、そのようなクレジットスキームの利点の１つの例は、もしクレジット限度に遭遇しなければ、クレジットリターンのレイテンシが性能に影響しないということである。
【００３６】
一実施形態では、４つのトランザクションアドレス空間は、設定アドレス空間、メモリアドレス空間、入出力アドレス空間およびメッセージアドレス空間を含むことができる。メモリマッピングされた位置へ／からデータを転送するために、メモリ空間トランザクションは、複数の読み取り要求および複数の書き込み要求のうちの１または複数を有する。一実施形態では、メモリ空間トランザクションは、２つの異なるアドレス形式を用いることが可能であり、例えば３２ビットアドレスのようなショートアドレス形式、および、６ビットアドレスのようなロングアドレス形式である。配置空間トランザクションは、相互接続に接続される様々なデバイスの配置空間にアクセスするために用いることができる。コンフィギュレーション空間へのトランザクションは、複数の読み取り要求および複数の書き込み要求を含むことができる。メッセージ空間トランザクション（あるいは単純にメッセージ）は、また、複数の相互接続エージェントの間の帯域内通信をサポートするために規定されうる。故に、例示的な一実施形態において、トランザクション層２０５は、パケットヘッダ／ペイロード２０６を組み立てることができる。
【００３７】
手早く図３を参照すると、トランザクション層パケット記述子の例示的な実施形態が図示される。一実施形態では、トランザクション記述子３００は、トランザクション情報を搬送するためのメカニズムでありうる。これに関連して、トランザクション記述子３００は、システムにおいて複数のトランザクションの識別をサポートする。他の潜在的な使用としては、デフォルトトランザクションの順序変更や複数チャネルとトランザクションとの関連を追跡することを含む。例えば、トランザクション記述子３００は、グローバル識別子フィールド３０２、属性フィールド３０４およびチャネル識別子フィールド３０６を含みうる。図示される例では、グローバル識別子フィールド３０２は、ローカルトランザクション識別子フィールド３０８とソース識別子フィールド３１０を備えるように示される。一実施形態では、グローバルトランザクション識別子３０２は、全ての未処理の要求に対して固有である。
【００３８】
１つの実装によると、ローカルトランザクション識別子フィールド３０８は、要求中エージェントにより生成されるフィールドであり、その要求中エージェントに対して完了を必要とする全ての未処理の要求は、固有でありうる。さらに、この例において、ソース識別子３１０は、相互接続階層内で、要求元エージェントを一意に特定する。従って、ソースＩＤ３１０と共に、ローカルトランザクション識別子フィールド３０８は、階層ドメイン内のトランザクションのグローバルな識別を提供する。
【００３９】
属性フィールド３０４は、そのトランザクションについての複数の特性および複数の関係を特定する。これに関連して、属性フィールド３０４は、トランザクションのデフォルト処理の変更を許容する付加情報を提供するために潜在的に用いられる。一実施形態では、属性フィールド３０４は、優先度フィールド３１２、予約フィールド３１４、順序フィールド３１６、およびスヌープ無しフィールド３１８を有する。ここで、優先度サブフィールド３１２は、そのトランザクションへ優先度を割り当てるために、開始プログラムによって変更されてよい。予約属性フィールド３１４は、将来のためまたはベンダ規定の利用のために、予約（リザーブ）されたままとされる。優先度またはセキュリティ属性を用いる可能な利用モデルは、予約属性フィールドを用いて実装されてよい。
【００４０】
この例において、順序タイプを伝える任意選択的な情報を提供するために順序属性フィールド３１６が用いられ、この順序タイプはデフォルトの順序規則を変更してよい。１つの例示的な実装によると、順序属性「０」は、デフォルトの順序規則が適用されることを示し、ここで、順序属性「１」は緩和された順序を示し、書込みでは同じ方向への書込みをパスでき、読み取り完了では、同じ方向に書込みをパスできる。スヌープ属性フィールド３１８は、複数のトランザクションがスヌープされるかどうかを決定するために使用される。示されるように、チャネルＩＤフィールド３０６は、トランザクションと関連するチャネルを特定する。
【００４１】
図２の議論に戻ると、リンク層２１０はデータリンク層２１０とも称され、トランザクション層２０５および物理層２２０の間の中間ステージとして動作することができる。一実施形態では、データリンク層２１０の責務は、リンク上の２つのコンポーネント間でトランザクション層パケット（ＴＬＰ）を交換するための信頼性のあるメカニズムを提供することである。データリンク層２１０の片側は、トランザクション層２０５によって組み立てられた複数のＴＬＰを受諾し、パケットシーケンス識別子２１１即ち、識別番号またはパケット番号を適用し、エラー検出コード、即ちＣＲＣ２１２を算出し適用し、変更された複数のＴＬＰを、物理層をこえて外部デバイスへ送信するために物理層２２０へと提示する。
【００４２】
一例において、物理層２２０は、パケットを外部デバイスへ物理的に送信するために、論理サブブロック２２１および電気サブブロック２２２を有する。ここで論理サブブロック２２１は、物理層２２１での「デジタル的」な複数の機能を担う。これに関連して、論理サブブロックは、物理サブブロック２２２による送信のための送出情報を準備するための送信セクションと、リンク層２１０へとパスする前に受信情報を特定し準備する受信機セクションとを有することができる。
【００４３】
物理ブロック２２２は、送信機および受信機を含む。送信機には論理サブブロック２２１により複数のシンボルが供給され、送信機はそれらをシリアル変換し、外部デバイスへと送信する。受信機には外部デバイスから、シリアル変換された複数のシンボルが供給され、受信機は複数の受信信号をビットストリームへ変換する。ビットストリームは、非シリアル化されて、論理サブブロック２２１へ供給される。例示的な一実施形態では、８ｂ／１０ｂ送信コードが採用され、ここでは１０ビットシンボルが送信／受信される。ここで、複数のフレーム２２３を有するパケットをフレーム化するために複数の特別なシンボルが用いられる。加えて一例において、受信機は、また、到着するシリアルストリームから回復されるシンボルクロックを提供する。
【００４４】
上述したように、トランザクション層２０５、リンク層２１０および物理層２２０が、（ＰＣＩｅプロトコルスタックのような）プロトコルスタックの具体的な実施形態と関連して議論されているが、層状プロトコルスタックは、それらには限定されない。実際には、任意の層状プロトコルが含まれ／実装されてよく、ここで議論された複数の特徴を採用してよい。一例として、層状プロトコルとして表されるポート／インタフェースは、（１）複数のパケットを組み立てるための第１の層、即ちトランザクション層；複数のパケットを配列するための第２の層、即ち、リンク層；および、複数のパケットを送信する第３の層、即ち、物理層、を有しうる。具体的な例として、本明細書中に述べたように、高性能相互接続層状プロトコルが使用される。
【００４５】
次に図４を参照すると、シリアル２地点間ファブリックの例示的な実施形態が図示される。シリアル２地点間リンクは、シリアルデータを送信するための任意の伝送路を含むことができる。示される実施形態ではリンクは、２つの低電圧の差動駆動される複数の信号ペア、送信ペア４０６／４１１および受信ペア４１２／４０７、を有しうる。従って、デバイス４０５は、データをデバイス４１０へ伝送するための送信論理４０６と、デバイス４１０からデータを受信するための受信論理４０７とを有する。言い換えると、１つのリンクに関するいくつかの実装には、２つの送信パス、即ち、パス４１６および４１７と、２つの受信パス、即ち、パス４１８および４１９が、含まれる。
【００４６】
伝送路とは、伝送ライン、銅ライン、光ライン、無線通信チャネル、赤外通信リンク、またはその他の通信パスのようなデータを送信するための任意のパスを指す。デバイス４０５およびデバイス４１０のような２つのデバイスの間の接続は、リンク４１５のようなリンクとしても称される。リンクは、１つのレーンをサポートしてよく、各レーンは、一連の差動信号の複数ペア（１つのペアは送信用、１つのペアは受信用）を表す。帯域幅を拡張すべく、リンクはｘＮとして示される複数のレーンを集約してよく、ここでＮは、１、２、４、８、１２、１６、３２、６４のような、またはそれより広い、任意のサポートされたリンク幅である。
【００４７】
差動ペアとは、ライン４１６および４１７のような、２つの伝送路のことを指してよく、差動信号を送信する。一例として、ライン４１６が低電圧レベルから高電圧レベルへと切り替わる、即ち、立上りエッジであるとき、ライン４１７は、高論理レベルから低論理レベル、即ち立下りエッジへと、駆動する。差動信号は、数ある利点の中でも特に、クロスカップリング、電圧のオーバーシュート／アンダーシュート、リンギング等の優れた信号品位のような、優れた電気的特性を潜在的に示す。これにより、優れたタイミング窓を許容し、より速い送信周波数を可能とする。
【００４８】
一実施形態では、新しい高性能相互接続（ＨＰＩ）が提供される。ＨＰＩは、次世代のキャッシュコヒーレントであってリンクベースの相互接続を有することが可能である。１つの例としてＨＰＩは、ワークステーションまたはサーバのような高性能コンピューティングプラットフォームで使用されてよく、複数のプロセッサ、複数のアクセラレータ、複数のＩ／Ｏデバイス等を接続するために典型的にはＰＣＩｅまたは別の相互接続プロトコルが用いられるようなシステムに含まれる。しかしながら、ＨＰＩはそれらには限定されない。代わりに、ＨＰＩは、ここで記載される任意のシステムまたはプラットフォームで使用されてよい。さらに、個別に開発された複数の思想が、ＰＣＩｅ、ＭＩＰＩ、ＱＰＩのような、その他の複数の相互接続および複数のプラットフォームへ適用されてよい。
【００４９】
複数のデバイスをサポートするべく、１つの例示の実装において、ＨＰＩは、命令セットアーキテクチャ（ＩＳＡ）には依存しない（即ち、ＨＰＩは、複数の異なるデバイスに実装されることができる）ものとすることができる。別のシナリオでは、ＨＰＩは、また、単にプロセッサやアクセラレータへ接続するためではなく、高性能Ｉ／Ｏデバイスへ接続するために使用されてよい。例えば、高性能ＰＣＩｅデバイスは、適切な変換ブリッジ（即ち、ＨＰＩからＰＣＩｅへ）を通してＨＰＩに結合されてよい。さらに、複数のＨＰＩリンクは、様々なやり方で（例えば、スター、リング、メッシュなど）複数のプロセッサのような多数のＨＰＩベースのデバイスによって使用されてよい。図５は、多数の潜在的なマルチソケット構成の複数の例示的な実装を図示する。図示されるように、２ソケット構成５０５は、２つのＨＰＩリンクを含むことができるが、他の実装では、１つのＨＰＩリンクが使用されてよい。より大きなトポロジーに対しては、追加のまたは代替の特徴の中でもとりわけ識別子（ＩＤ）が割当可能であってかつ何らかの形態で仮想経路が存在する限りにおいて、任意の構成が使用されてよい。示されるように、一例において、４ソケット構成５１０は、各プロセッサから別のプロセッサへのＨＰＩリンクを有する。しかし、構成５１５に示される８ソケット実装では、全てのソケットが互いを、ＨＰＩリンクを通じて直接的に接続しているわけではない。しかしながら、仮想経路またはチャネルが複数のプロセッサ間に存在するような場合には、そうした構成がサポートされる。サポートされる複数のプロセッサの範囲は、ネイティブ・ドメインにおいて、２−３２個である。より多数のプロセッサが、多重ドメインのまたは複数のノードコントローラやその他の事例の間におけるその他の相互接続の使用を通して、達成されてよい。
【００５０】
ＨＰＩアーキテクチャは、層状プロトコルアーキテクチャの定義を含み、いくつかの実施例においては、この層状プロトコルアーキテクチャは、複数のプロトコル層（コヒーレントの、非コヒーレントの、および任意選択的には、他のメモリベースのプロトコル）、ルーティング層、リンク層、および物理層を含む。その上、ＨＰＩは、他の事例では、複数の電力管理者（複数の電力制御ユニット（ＰＣＵ）のような）、テストおよびデバック設計（ＤＦＴ）、フォールト処理、複数のレジスタ、セキュリティに関連する改善をさらに含むことができる。図５は、例示的ＨＰＩ層状プロトコルスタックの実施形態を示す。いくつかの実装では、図５の複数の層の少なくともいくつかは、オプションである。各層は、情報（複数のパケット６３０を有するプロトコル層６０５ａ、ｂ、複数のフリット（ｆｌｉｔ）６３５を有するリンク層６１０ａ、ｂ、複数のフィット（ｐｈｉｔ）６４０を有する物理層６０５ａ、ｂ）の粒度または量について、自身のレベルを取扱う。いくつかの実施形態では、パケットは、その実装に基づいて、複数の部分フリット、単一フリット、または多数のフリットを含んでよいことに留意されたい。
【００５１】
第１の例として、フィット６４０の幅は、１から１マッピング・リンク幅ビット（例えば、２０ビットリンク幅は、２０ビットのフィットを有するなど）を有する。フリットは、１８４、１９２または２００ビットのような、より大きなサイズを有してよい。フィット６４０が２０ビット幅で、フリット６３５のサイズが１８４ビットの場合、１つのフリット６３５を送信するためには小数のフィット６４０が必要となる（例えば、特に１８４ビットのフリット６３５の送信には２０ビットで９．２フィットとなり、１９２ビットのフリットの送信には２０ビットで９．６フィットとなる）。物理層における基本的なリンク幅は、変化してよい。例えば、方向毎のレーン数は、２、４、６、８、１０、１２、１４、１６、１８、２０、２２、２４などであってよい。一実施形態では、リンク層６１０ａ、ｂは、単一フリットに異なるトランザクションについての多数の要素を埋め込むことが可能であり、１または複数のヘッダ（例えば、１、２、３、４）が、そのフリット内に埋め込まれてよい。一例において、ＨＰＩは複数のヘッダを対応する複数のスロットへ分割し、そのフリットにおける多数のメッセージが、異なるノード行きとなることを可能とする。
【００５２】
一実施形態では、物理層６０５ａ、ｂが、物理媒体（電気、光、など）上での情報の高速伝達を担うことができる。物理リンクは、層６０５ａおよび６０５ｂのような２つのリンク層エンティティの２地点間でありうる。リンク層６１０ａ、ｂは、物理層６０５ａ、ｂを複数の上位層から要約することができ、（リクエストと同様に）確実にデータを転送し、かつ、２つの直接接続されたエンティティ間のフロー制御を管理する機能を提供する。リンク層は、また、物理チャネルを多重の仮想チャネルおよび複数のメッセージクラスへの仮想化を担うことができる。プロトコル層６２０ａ、ｂはリンク層６１０ａ、ｂに依存しており、複数の物理リンクにわたって伝達するために、物理層６０５ａ、ｂへ向けて複数のプロトコルメッセージを操作する前に、それらを適切な複数のメッセージクラスおよび複数の仮想チャネルへとマッピングする。リンク層６１０ａ、ｂは、他の例において、リクエスト、スヌープ、応答、ライトバック、非コヒーレントデータのような多重のメッセージをサポートしてよい。
【００５３】
ＨＰＩの物理層６０５ａ、ｂ（または、ＰＨＹ）は、図６に図示されるように、電気層（例えば、２つのコンポーネントを接続する電気伝導体）の上であって、リンク層６１０ａ、ｂの下に実装されうる。物理層および対応する論理は、各エージェントに存在することができ、互いに分離されている（例えば、あるリンクのいずれかの側における複数のデバイスにおいて）２つのエージェント（ＡおよびＢ）における複数のリンク層を接続する。ローカルな、および、遠隔の複数の電気層は、物理媒体により接続される（例えば、ワイヤ、導体、光、等）。一実施形態では、物理層６０５ａ,ｂは、２つの主要なフェーズ、初期化およびオペレーションを有する。初期化の間、接続はリンク層に対して不透明であり、シグナリングは、複数の時限状態と複数のハンドシェイクイベントとの組み合わせを含んでよい。オペレーションの間、接続はリンク層に対して透明であり、シグナリングは、単一のリンクとして一斉に動作している全てのレーンと共に、所定の速度である。オペレーションフェイズの間、物理層は、エージェントＡからエージェントＢへ、そして、エージェントＢからエージェントＡへ、フリットを運ぶ。接続はリンクとも称され、いくらか物理的態様を要約するが、この態様は、媒体、幅およびリンク層からの速度を含み、他方では、フリットおよび現在の構成（例えば幅）の制御／状態を、リンク層と交換する。初期化フェーズは、重要ではないフェーズ、例えば、ポーリングやコンフィギュレーションを含む。オペレーションフェイズは、また重要ではないフェーズ（例えば、リンク電力管理状態）を含む。
【００５４】
一実施形態では、リンク層６１０ａ、ｂは、２つのプロトコルまたはルーティングエンティティの間で信頼性あるデータ転送を提供するために実装されうる。リンク層は、プロトコル層６２０ａ、ｂから物理層６０５ａ,ｂを要約することができ、そして、２つのプロトコルエージェント（Ａ、Ｂ）の間のフロー制御を担い、プロトコル層（メッセージクラス）およびルーティング層（仮想ネットワーク）へ複数の仮想的チャネルサービスを提供することができる。プロトコル層６２０ａ、ｂとリンク層６１０ａ、ｂとの間のインタフェースは、典型的には、パケットレベルでありうる。一実施形態では、リンク層での最小の伝達ユニットは、規定ビット数であるフリットと称され、例えば、１９２ビットまたはその他の特定単位である。リンク層６１０ａ、ｂは、物理層６０５ａ,ｂに依存しており、物理層６０５ａ,ｂの伝達ユニット（フィット）を、リンク層６１０ａ、ｂの伝達ユニット（フリット）へと組み立てる。加えて、リンク層６１０ａ、ｂは、論理的に２つの部分、送信機と受信機とに分割されてもよい。１つのエンティティでの送信機／受信機ペアは、別のエンティティでの送信機／受信機ペアと接続されてよい。フロー制御はしばしば、フリットおよびパケットの両方をベースに実行される。エラー検出および訂正は、また、潜在的には、フリットレベルベースで実行される。
【００５５】
一実施形態では、ＨＰＩトランザクションをソースから宛先へとルーティングするために、ルーティング層６１５ａ、ｂは、柔軟かつ分散型の方法を提供することができる。このスキームは柔軟性に富む、というのも、多重トポロジーのためのルーティングアルゴリズムは、各ルータでプログラム可能なルーティング表を通して規定されてよいからである（一実施形態ではプログラミングは、ファームウェア、ソフトウェア、またはそれらの組み合わせにより実行される）。ルーティング機能は分散型であってよく、ルーティングは一連のルーティングステップを通してなされてよく、各ルーティングステップは、ソースの、中間の、または宛先のルータのいずれかにおける表を検索することを通して規定される。ソースでの検索は、ＨＰＩパケットをＨＰＩファブリックへと注入するために用いられてよい。中間ルータでの検索は、入力ポートから出力ポートへＨＰＩパケットをルーティングするために用いられてよい。宛先ポートでの検索は、宛先ＨＰＩプロトコルエージェントをターゲットにするために用いられてよい。いくつかの実装では、複数のルーティング表、つまり、複数のルーティングアルゴリズムは仕様によって具体的に規定されないので、ルーティング層を薄くするこができる。これにより、柔軟性と多様な利用モデルが可能となり、そこではシステムの実装によって規定される複数の柔軟なプラットフォームアーキテクチャトポロジーを含む。ルーティング層６１５ａ、ｂは、３つまで（またはそれより多く）の仮想ネットワーク（ＶＮ）の使用を提供するために、リンク層６１０ａ、ｂに依存しており、一例において、２つのデッドロックフリーのＶＮである、ＶＮ０とＶＮ１は、各仮想ネットワークで規定される複数のメッセージクラスを有する。共有され適応的な仮想ネットワーク（ＶＮＡ）は、リンク層で規定されてよいが、この適応的なネットワークは、直接的にはルーティングコンセプトに露出されない。というのは、他の特徴や事例において、各メッセージクラスと仮想ネットワークは、専用化された複数のリソース、および保証された将来の進展を有してよいからである。
【００５６】
いくつかの実装では、ＨＰＩは埋め込みクロックを利用することができる。クロック信号は、相互接続を用いて送信されるデータに埋め込むことができる。データに埋め込まれたクロック信号によって、個別の専用化された複数のクロックレーンを省くことができる。このことは有用でありうる、というのも例えば、これによりデータ転送のためデバイスのより多くのピンを、具体的にはピンのための空間が高価であるようなシステムにおいて、専用化できるからである。
【００５７】
相互接続のいずれの側においても、２つのエージェント間でリンクを確立することが可能である。データを送信するエージェントは、ローカルなエージェントであり、データを受信するエージェントは、遠隔のエージェントであるかもしれない。ステートマシンが両方のエージェントによって採用されてよく、リンクの多様な態様を管理する。一実施形態では、物理層データパスは、リンク層から電気的なフロントエンドへと、フリットを送信することができる。１つの実装では、制御パスは、ステートマシン（リンクトレーニングステートマシンまたはその同等物とも称される）を含む。ステートマシンの複数の動作、および、複数の状態の終了は、内部信号、タイマ、外部信号、またはその他の情報に依存する。実際に、いくつかの初期状態のように、複数の状態のうちのいくつかは、状態を終了するためのタイムアウト値を提供するため複数のタイマを有してよい。いくつかの実施形態では、検出とは、レーンの両方の足でイベントを検出することを指すが、必ずしも同時にというわけではない。しかしながら、他の実施形態では、検出するとは、参照しているエージェントによるイベントの検出を指す。一例として、デバウンスとは、信号維持アサーションを指す。一実施形態では、ＨＰＩは、複数の非機能レーンでのイベントにおけるオペレーションをサポートする。ここで、複数のレーンは、複数の固有の状態でドロップされてよい。
【００５８】
ステートマシンにおいて規定される状態としては、他の複数のカテゴリおよび複数のサブカテゴリにおいて、複数のリセット状態、複数の初期状態、および複数の動作状態を含むことができる。一例において、いくつかの初期状態は、タイムアウトの状態を終了するために用いられる第２のタイマを有することができる（本質的には、その状態での進行が失敗することによるアボートである）。アボートは、状態レジスタのような、複数のレジスタを更新することを含んでよい。いくつかの状態は、また、その状態において主要な複数の機能の時間を決めるために用いられる１または複数の第１のタイマを有してよい。とりわけ、他の複数の状態は、（ハンドシェイクプロトコルのような）内部または外部の信号がその状態から別の状態へと遷移を駆動するように、規定されうる。
【００５９】
ステートマシンは、また、単一ステップでのデバッグ、初期化アボートでのフリーズ、および、複数のテスタの使用、をサポートしてよい。ここで、状態終了は、デバッグソフトウェアが準備されるまで延期／ホールドされうる。いくつかの例では、終了は、第２のタイムアウトまで延期／ホールドされうる。一実施形態では、動作と終了は、トレーニングシーケンスでのやり取りに基づくことができる。一実施形態では、リンクステートマシンはローカルなエージェントのクロックドメインで実行され、ある状態から次への遷移は、送信機のトレーニングシーケンス境界と一致する。現在の状態を反映するために、複数の状態レジスタが使用されてよい。
【００６０】
図７は、ＨＰＩの１つの例示の実装において複数のエージェントによって使用されるステートマシンの少なくとも一部の表現を図示する。当然のことながら、図７の状態表に含まれる複数の状態は、包括的ではない可能な複数の状態のリストを含むものである。例えば、いくつかの遷移が、ダイアグラムを単純化するために省かれている。また、いくつかの状態は、組み合わされ、分割され、あるいは省略されてよく、一方で、他の状態が追加されてもよい。そのような状態として、以下を含むことができる。
【００６１】
イベントリセット状態：
ウォームまたはコールドのリセットイベントで入る。複数のデフォルト値を回復する。複数のカウンタ（例えば、複数の同期カウンタ）を初期化する。別のリセット状態のような、別の状態へと抜け出てよい。
【００６２】
タイムドリセット状態：
インバンドリセットのための時限状態。事前に定義されたＥＯＳ（ｅｌｅｃｔｒｉｃａｌ  ｏｒｄｅｒｅｄ  ｓｅｔ）を駆動してよい。複数の遠隔の受信機は、ＥＯＳを検出し、同様にタイムドリセットへと入ることが可能。受信機は、複数の電気的な設定を保持する複数のレーンを有する。リセット状態をキャリブレーションするために、エージェントへと抜け出てよい。
【００６３】
キャリブレーションリセット状態：
レーンでシグナリングを行うことなく（例えば受信機のキャリブレーション状態）またはドライバをオフすることなく、キャリブレーションする。タイマに基づいて、予め定められた時間だけ、その状態であってよい。動作速度を設定してよい。ポートが使用不可能である場合には、待ち状態として動作してよい。最小の常駐時間を含んでよい。受信機での条件設定またはスタガリング・オフ（ｓｔａｇｇｅｒｉｎｇ ｏｆｆ）が、設計に基づいて生じてよい。タイムアウトおよび／またはキャリブレーション完了の後、受信機検出状態へと抜け出してよい。
【００６４】
受信機検出状態：
１または複数のレーン上の受信機の存在を検出する。受信機の終端（例えば、受信機のプルダウン挿入）を探してよい。規定値が設定されていることに応じて、あるいは、別の規定値が設定されていないときに、キャリブレーションリセット状態へと抜け出してよい。受信機が検出された、またはタイムアウトに達した場合に、送信機キャリブレーション状態へと抜け出してよい。
【００６５】
送信機キャリブレーション状態：
送信機のキャリブレーションのためのものである。送信機のキャリブレーションのために割り当てられた時限状態であってよい。レーン上でのシグナリングを含んでよい。ＥＩＥＯＳ（ｅｌｅｃｔｒｉｃ  ｉｄｌｅ  ｅｘｉｔ  ｏｒｄｅｒｅｄ  ｓｅｔ）のように、ＥＯＳを継続して駆動してよい。キャリブレーションを完了した、またはタイマの期限が切れたときに、コンプライアンス状態へと抜け出してよい。カウンタの期限が切れた場合、または第２のタイムアウトが発生した場合には、送信機検出状態へと抜け出してよい。
【００６６】
送信機検出状態：
有効なシグナリングを適格とする。ハンドシェイク状態であってよく、この場合、エージェントは複数の動作を完了し、遠隔のエージェントのシグナリングに基づいて次の状態へと抜け出る。受信機が、送信機からの有効なシグナリングを適格としてよい。一実施形態では、受信機がウェイク検出を探し、１または複数のレーンでデバウンスされた場合には、他の複数のレーンで探す。送信機が、検出信号を駆動する。全レーンに対するデバウンスの完了に応じて、および／または、タイムアウトに応じて、または、全レーンでのデバウンスが完了せずにタイムアウトが生じた場合に、ポーリング状態へと抜け出してよい。ここで、１または複数の監視レーンは、ウェイク信号をデバウンスするために、アウェイクのままであってよい。デバウンスされると、他の複数のレーンが潜在的にデバウンスされる。これにより、低電力状態において省電力化が可能となる。
【００６７】
ポーリング状態：
受信機が、適応し、ドリフトバッファを初期化し、ビット／バイト（例えば、シンボル境界を特定する）でロックする。複数のレーンがデスキューされてよい。遠隔のエージェントが、アクノリッジメッセージに応じて、次の状態（例えば、リンク幅状態）へ抜け出すことを引き起こしてよい。ＥＯＳおよびトレーニングシーケンスヘッダへとロックすることによって、ポーリングは追加的にトレーニングシーケンスロックを含むことができる。遠隔の送信機でのレーン間スキューは、最高速度のための第１の長さ、および、低速度のための第２の長さに、制限されてよい。デスキューは、動作モードと同様に低速モードで実行されてよい。受信機は、レーン間スキューをデスキューするための具体的な最大値を有してよく、例えば８、１６または３２スキュー間隔である。受信機動作は、レイテンシ調整を有してよい。一実施形態では、受信機動作は、有効なレーンマップで成功をおさめたデスキューにおいて完了されうる。一例において、多数の連続するトレーニングシーケンスヘッダが複数のアクノリッジと共に受信され、かつ、受信機が自身の動作を完了した後に肯定応答を有する多数のトレーニングシーケンスが送信されたときに、ハンドシェイクが成功裡に達成される。
【００６８】
リンク幅状態：
エージェントは遠隔の送信機に対する最終レーンマップと通信する。受信機は、情報を受信しデコードする。受信機は、設定されたレーンマップを、ある構造中、第２の構造における過去のレーンマップ値のチェックポイントの後に、記録してよい。受信機は、また、肯定応答（ＡＣＫ）で返答してよい。インバンドリセットを開始してよい。一例としては、インバンドリセットで開始するための第１の状態である。一実施形態では、フリットコンフィギュレーション状態のような、次の状態への抜け出しが、ＡＣＫに応じて実行される。さらには、また、低電力状態に入るよりも前に、もしウェイク検出信号発生の周波数が規定値を下回った場合には（例えば４０００ＵＩのように、所定数のユニットインターバル（ＵＩ）毎に１回）、リセット信号が生成されてよい。受信機は、現在と過去のレーンマップを保持してよい。送信機は、異なる値を有するトレーニングシーケンスに基づいて、異なるグループのレーンを用いてよい。いくつかの実施形態では、レーンマップは、いくつかの状態レジスタを変更しないでよい。
【００６９】
フリットロックコンフィギュレーション状態：
送信機により入るが、送信機および受信機の両方が、ブロッキングリンク状態または他のリンク状態へと抜け出たときに、本状態は終了したものとされる（即ち、第２のタイムアウトの意味がなくなる）。一実施形態では、送信機がリンク状態へと抜け出ることには、データシーケンスの開始（ＳＤＳ）および気まぐれに配列された信号（ｐｌａｎｅｔａｒｙ  ａｌｉｇｍｅｎｔ  ｓｉｇｎａｌ）を受信した後でのトレーニングシーケンス（ＴＳ）境界、を含む。ここで、受信機の終了は、遠隔の送信機からＳＤＳを受信することに基づいてよい。この状態は、エージェントからリンク状態へのブリッジであってよい。受信機は、ＳＤＳを特定する。デスクランブラの初期化後にＳＤＳが受信されると、受信機は、ブロッキングリンク状態（ＢＬＳ）（または制御窓）へと抜け出してよい。タイムアウトが生じた場合には、リセット状態へと抜け出してもよい。送信機は、複数のレーンをコンフィギュレーション信号で駆動する。送信機の終了は、リセット、ＢＬＳ、または、複数の条件や複数のタイムアウトに基づく他の複数の状態であってよい。
【００７０】
送信リンク状態：
リンク状態である。フリットが、遠隔のエージェントへ送信される。ブロッキングリンク状態から入り、タイムアウトのようなイベントでブロッキングリンク状態へと戻る。送信機はフリットを送信する。受信機はフリットを受信する。また、低電力リンク状態へと抜け出してよい。いくつかの実装では、送信リンク状態（ＴＬＳ）は、Ｌ０状態としても称されうる。
【００７１】
ブロッキングリンク状態：
リンク状態である。送信機および受信機は、統一されたやり方で動作している。時限状態であってよく、その間、リンク層フリットが延期されるが、物理層情報は遠隔のエージェントへと伝えられる。低電力リンク状態へと（または設計に基づく他のリンク状態へと）抜け出してよい。一実施形態では、ブロッキングリンク状態（ＢＬＳ）が定期的に生じる。この期間は、ＢＬＳ間隔とも称され、低速度と動作速度との間では異なってもよいのと同様に、時限的であってよい。例えば、送信リンク状態または部分幅送信リンク状態の間において、ある長さの物理層制御シーケンスが送信されてもよいように、リンク層は、フリットの送信から定期的にブロックされてよいことに注意されたい。いくつかの実装では、ブロッキングリンク状態（ＢＬＳ）は、Ｌ０制御状態またはＬ０ｃ状態とも称されうる。
【００７２】
部分幅送信リンク状態：
リンク状態である。部分幅状態へ入ることに省電力化してよい。一実施形態では、非対称の部分幅とは、幅が異なる２方向リンクにおける各方向を指し、これらはいくつかの設計でサポートされてよい。部分幅送信リンク状態に入るために部分幅指示を送信する送信機等の開始プログラムの一例が、図９の例に示される。ここで、第１の幅を有するリンク上で送信が行われる一方で、部分幅指示が、第２の新たな幅での送信するためにリンクを遷移させるべく、送信される。不整合は、リセットをもたらしてよい。留意すべきは、速度は変更されないが、幅は変更されてよい。故に、フリットは、潜在的には、異なる幅で送信される。論理的には送信リンク状態と類似してよいが、より小さい幅であるため、フリットの送信にはより長い時間がかかりうる。特定の受信および送信メッセージに基づいて低電力リンク状態へ抜け出す、部分幅送信リンク状態を終了する、他のイベントに基づいてリンクブロッキング状態へと抜け出すなど、他の複数のリンク状態へと抜け出してよい。一実施形態では、より良質な信号品位（雑音緩和など）を提供すべく、送信機ポートは、アイドル状態の複数のレーンを互い違いにオフしてよい。ここで、ヌルフリットのようなリトライ不可能なフリットが、リンク幅が変化している期間中に使用されてよい。対応する受信機は、１または複数の構造における現在および過去のレーンマップをレコードするのと同様に、これらのヌルフリットをドロップし、アイドル状態の複数のレーンを互い違いにオフしてよい。状態および関連する状態レジスタは、変えられないままでもよいことに留意されたい。いくつかの実装では、部分幅送信リンク状態は、部分Ｌ０状態またはＬ０ｐ状態とも称されうる。
【００７３】
終了部分幅送信リンク状態：
部分幅状態を終了する。いくつかの実装では、ブロッキングリンク状態を用いてもよいし、そうでなくてもよい。一実施形態では、トレーニングしデスキューするために、複数のアイドル状態のレーンで部分幅終了パターンを送信することによって、送信機が終了を開始する。一例として終了パターンは、ＥＩＥＯＳで開始し、このＥＩＥＯＳは、検出され、そのレーンがフル送信リンク状態へのエントリを開始する準備ができていることを示す信号へデバウンスされ、そして終了パターンは、ＳＤＳまたは複数のアイドル状態のレーンの高速トレーニングシーケンス（ＦＴＳ）において、終了してよい。終了シーケンスの間の任意の失敗（タイムアウトより前にデスキューが完了しない、等の受信機動作）は、リンク層へのフリットの伝達を停止し、リセットをアサートし、これは、次のブロッキングリンク状態の発生でリンクをリセットすることにより処理される。またＳＤＳは、複数のレーン上のスクランブラ／デスクランブラを適切な値へと初期化してよい。
【００７４】
低電力リンク状態：
より低い電力の状態である。一実施形態では、この実施形態のシグナリングは、全レーンかつ両方の方向で停止されるため、部分幅リンク状態よりも低い電力である。送信機は、低電力リンク状態をリクエストするためにブロッキングリンク状態を用いてよい。ここで、受信機は、ＡＣＫまたはＮＡＫを有するリクエストまたは応答をデコードしてよく、さもなければ、リセットがトリガにされてよい。いくつかの実装では、低電力リンク状態は、Ｌ１状態とも称されうる。
【００７５】
いくつかの実装では、状態遷移は、その状態が迂回されるように促されることがあり、例えば、特定のキャリブレーション動作やコンフィギュレーション動作のような、その状態における状態動作が既に完了している場合において、そうである。複数の過去の状態の結果およびリンクについての複数のコンフィギュレーションが、格納され、後続の初期化やリンクのコンフィギュレーションで再利用されうる。そのようなコンフィギュレーションおよび状態動作を繰り返すのではなく、むしろ、対応する状態を迂回することが可能である。しかしながら、状態を迂回することを実装した従来のシステムでは、しばしば、複雑な設計と、高価な検証エスケープを実装している。一例において、従来の迂回を用いるのではなく、ＨＰＩは、状態動作が繰り返される必要が無い場合のような特定の複数の状態で、複数のショートタイマを利用できる。このことは、潜在的に、その他の潜在的利点におけるより統一され同期されたステートマシン遷移を可能とする。
【００７６】
一例において、ソフトウェアベースのコントローラ（例えば、物理層のための外部制御ポイントを通して）は、１または複数の特定の状態のためのショートタイマを使用可能にすることができる。例えば、その状態に対する複数の動作が既に実行され格納されているような状態に対して、その状態は、当該状態から次の状態へと素早く抜け出すことを促すために、短縮化されうる。しかしながら、過去の状態動作がフェイルであるか、または、ショートタイマ期間内に適用することができない場合には、状態終了を実行することができる。さらに、コントローラは、例えば、状態動作が再び実行されるべきであるとき、ショートタイマを無効化することができる。それぞれの状態に対して、ロングのまたはデフォルトのタイマが設定されうる。その状態でのコンフィギュレーション動作がロングタイマの期間内で完了することができない場合には、状態終了が生じうる。ロングタイマは、その状態動作の完了を許可するために、合理的な期間を設定することができる。対照的にショートタイマは、相当に短くてよく、場合によっては、とりわけ、過去に実行された状態動作へと戻って参照することなしに状態動作を実行することを不可能としてよい。
【００７７】
ＨＰＩのいくつかの実装では、スーパーシーケンスを規定することができ、各スーパーシーケンスは、それぞれの状態、または、それぞれの状態への／からの、エントリ／抜け出ること、に対応する。
スーパーシーケンスは、データセットおよびシンボルの反復シーケンスを含むことができる。シーケンスは、いくつかの例では、特に、状態の完了、状態遷移、または、対応するイベントの通信が行われるまで、反復することができる。いくつかの例では、スーパーシーケンスの反復シーケンスは、規定されたユニットインターバル（ＵＩ）の個数等の規定の周波数に従って、反復することができる。
ユニットインターバル（ＵＩ）は、リンクまたはシステムにおけるレーンで単一のビットを送信するための時間間隔に対応しうる。いくつかの実装では、反復シーケンスは、ＥＯＳで始まりうる。従って、ＥＯＳの例は、予め定められた周波数に従って反復することが期待されうる。そのような順序セットは、規定された１６バイトコードとして実装されることが可能であり、とりわけ、１６進形式で表されてよい。一例において、スーパーシーケンスのＥＯＳは、ＥＩＥＯＳでありうる。一例において、ＥＩＥＯＳは、低周波数クロック信号（例えば、ＦＦ００やＦＦＦ０００等の１６進シンボルを事前に規定された回数繰り返したもの）と類似してよい。事前に定義されたデータセットは、事前に定義された個数のトレーニングシーケンスのようなＥＯＳやその他のデータを流すことができる。そのようなスーパーシーケンスは、他の例における初期化と同様に、リンク状態遷移を含んだ複数の状態遷移において使用することができる。
【００７８】
上で紹介したように、一実施形態では初期化は、初めは低速度で行われ、高速度の初期化が続くことができる。低速度の初期化は、複数のレジスタおよびタイマに対してデフォルト値を用いる。すると、ソフトウェアは、低速度リンクを使用して、複数のレジスタ、タイマおよび電気パラメータを設定し、高速度初期化のための路を舗装すべく、キャリブレーションセマフォをクリアする。一例では、初期化は、他の可能性のある中で特に、リセット、検出、ポーリング、コンフィギュレーションのような、複数の状態または複数のタスクから構成されうる。
【００７９】
一例において、制御シーケンスをブロックするリンク層（ブロッキングリンク状態（ＢＬＳ）またはＬ０ｃ状態など）は時限状態を含むことができ、その間においては、リンク層フリットが延期されつつ、他方でＰＨＹ情報が遠隔のエージェントへと伝えられる。ここで、送信機および受信機は、ブロック制御シーケンスタイマを開始してよい。タイマの期限が切れると、送信機および受信機は、ブロッキング状態を終了することができ、そして、リセットへと抜け出る、異なるリンク状態（または他の状態）へと抜け出る等のその他の複数の動作を行ってよく、この場合、当該リンクにわたりフリットの送信を可能とする状態を含む。
【００８０】
一実施形態では、リンクトレーニングが、提供され、規定されたスーパーシーケンスに関連するような、スクランブルされたトレーニングシーケンス、順序セット、および制御シーケンスのうちの１または複数を送信することを含みうる。トレーニングシーケンスシンボルは、ヘッダ、複数の予約部分、ターゲットレイテンシ、ペア数、物理レーンマップコードの参照レーン若しくはレーン群、および、初期状態のうちの１または複数を含んでよい。一実施形態では、ヘッダは、他の例では、ＡＣＫまたはＮＡＫと共に送信することができる。一例として、トレーニングシーケンスは、スーパーシーケンスの一部として送信されてよく、かつスクランブルされてよい。
【００８１】
一実施形態では、順序セットおよび制御シーケンスは、スクランブルされず、互い違い（ｓｔａｇｇｅｒｅｄ）にされず、全く同じになるように、同時に、かつ完全に、全レーンで送信される。順序セットを有効に受信することには、順序セットの少なくとも一部（または、複数の部分的な順序セットのための全体順序セット）をチェックすることを含んでよい。順序セットは、ＥＩＯＳまたはＥＩＥＯＳのようなＥＯＳを含んでよい。スーパーシーケンスは、データシーケンスの開始（ＳＤＳ）または高速トレーニングシーケンス（ＦＴＳ）を含んでよい。そのような複数のセットおよび複数の制御スーパーシーケンスは事前に定義することができ、かつ、任意の長さを有してよいのと同様に、任意のパターンまたは１６進表現を有してよい。例えば、順序セットおよびスーパーシーケンスは、８バイト、１６バイト、３２バイト等の長さであってよい。一例として、ＦＴＳは、部分幅送信リンク状態を終了する間に高速ビットロックのために追加的に使用されうる。ＦＴＳ定義はレーン毎であってよく、ＦＴＳの回転されたバージョンが使用されてもよい。
【００８２】
一実施形態では、スーパーシーケンスは、ＥＩＥＯＳのように、トレーニングシーケンスストリームに、ＥＯＳの挿入を含むことができる。一実装では、シグナリングが開始すると、複数のレーンが、互い違いに電源オンする。しかしながら、このことは、いくつかのレーンの受信機において、初期のスーパーシーケンスが切り詰められることをもたらしうる。しかしながら、スーパーシーケンスを、短い間隔にわたって（例えば、およそ１０００単位インターバル、即ち、１ＫＵＩ）繰り返すことができる。トレーニングスーパーシーケンスは、デスキュー、コンフィギュレーションのうちの１または複数のために、そして、初期化ターゲット、レーンマップ等との通信のために、追加的に用いられてよい。ＥＩＥＯＳは、その他の例において、レーンを非アクティブからアクティグ状態へと遷移させること、良好なレーンをスクリーニングすること、シンボルおよびＴＳ境界を特定することのうちの１または複数のために、用いることができる。
【００８３】
図８に移ると、例示的なスーパーシーケンスの表現が示される。例えば、例示的な検出スーパーシーケンス８０５を規定することができる。検出スーパーシーケンス８０５は、単一のＥＩＥＯＳ（または他のＥＯＳ）の反復シーケンスを含むことができ、その後には事前に定義された個数の特定のトレーニングシーケンス（ＴＳ）の例（インスタンス、実例、実体）が続く。一例において、ＥＩＥＯＳが送信され、その直後に７つの繰り返されたＴＳの例が送信されうる。７つのＴＳのうちの最後が送信されると、ＥＩＥＯＳが送信され、追加の７つのＴＳの例が再度その後に続き、これが繰り返される。このシーケンスを、特定の事前に定義された周波数に従って、繰り返すことができる。図８の例では、ＥＩＥＯＳは、およそ１０００ユニット単位（〜１ＫＵＦ）毎に１回、レーンに再び現れ、その後に、検出スーパーシーケンス８０５の残りが続く。受信機は、繰り返し検出スーパーシーケンス８０５の有無について複数のレーンを監視することができ、確証が得られるとスーパーシーケンス７０５は、遠隔のエージェントが、存在している、レーンに追加された（ホットプラグ化された）、アウェイクしていた、再初期化している等と結論することができる。
【００８４】
他の例において、別のスーパーシーケンス８１０は、ポーリング、コンフィギュレーション、または、ループバック条件若しくは状態、を示すために規定されうる。例示的な検出スーパーシーケンス８０５と共に、１つのリンクの複数レーンが、ポーリング／コンフィギュレーション／ループスーパーシーケンス８１０等のための受信機によって監視され、ポーリング状態、コンフィギュレーション状態、またはループバック状態若しくは条件を特定することができる。一例において、ポーリング／コンフィギュレーション／ループスーパーシーケンス８１０は、ＥＩＥＯＳで始まり、その後には、事前に定義された個数の、繰り返されたＴＳの例が続く。例えば、一例において、約４０００ＵＩ（例えば、〜４ＫＵＩ）毎に繰り返すＥＩＥＯＳと共に３１個のＴＳの例が、ＥＩＥＯＳの後に続いてよい。
【００８５】
さらに、他の例において、部分幅送信状態（ＰＷＴＳ）終了スーパーシーケンス８１５を規定することができる。一例において、ＰＷＴＳ終了スーパーシーケンスは、初期ＥＩＥＯＳを含むことができ、スーパーシーケンスに第１の完全なシーケンスを送信するよりも前に事前に条件付けされた複数のレーンを反復する。例えば、スーパーシーケンス８１５で繰り返されるべきシーケンスはＥＩＥＯＳで始まりうる（約１０００ＵＩ毎に１回繰り返す）。さらに、高速トレーニングシーケンス（ＦＴＳ）を他のトレーニングシーケンス（ＴＳ）の代わりに使用することができ、ＦＴＳは、より素早いビットロック、バイトロックおよびデスキューをアシストするように構成される。いくつかの実装では、ＦＴＳは、複数のアイドル状態のレーンをできるだけ早くかつ無停止でアクティブへと戻すことをさらにアシストすべく、アンスクランブルされうる。リンク送信状態へのエントリに先立つ他の複数のスーパーシーケンスと同様に、スーパーシーケンス８１５は、データシーケンスの開始（ＳＤＳ）の送信によって、遮られ、終わらせることができる。さらに、とりわけ、部分ＦＴＳ（ＦＴＳｐ）に複数ビットを減算（または加算）することを許容する等によって、ＦＴＳｐが、新たな複数のレーンをアクティブな複数のレーンと同期することをアシストするために送信されうる。
【００８６】
検出スーパーシーケンス７０５および、ポーリング／コンフィギュレーション／ループスーパーシーケンス７１０等のスーパーシーケンスは、潜在的には、実質的に１つのリンクにおける初期化または再初期化の間中にわたって送信されうる。特定のスーパーシーケンスの受信および検出に応じて、いくつかの例では、受信機は、複数のレーンにわたって送信機へ同じスーパーシーケンスをそのまま繰り返すことにより、応答を行うことができる。送信機と受信機による特定のスーパーシーケンスの受信および検証は、そのスーパーシーケンスを通じて伝達される状態または条件をアクノリッジするためのハンドシェイクとしての機能を果たし得る。例えば、そのようなハンドシェイク（例えば、検出スーパーシーケンス７０５を利用すること）は、リンクの再初期化を特定するために用いられうる。他の例において、そのようなハンドシェイクは、電気的なリセットまたは低電力状態の終わりを示すために使用することができ、特に、対応する複数のレーンは、バックアップへと戻されることになる。電気的なリセットの終わりは、例えば、検出スーパーシーケンス７０５をそれぞれ送信する送信機および受信機の間でのハンドシェイクから、特定されうる。
【００８７】
他の例において、複数のレーンは、複数のスーパーシーケンスに対してモニタされ、かつ、検出、ウェイク、状態終了、エントリ、その他のイベントに対するレーンのスクリーニングに関連してその複数のスーパーシーケンスを用いることができる。事前に定義され予測可能なスーパーシーケンスの特性および形態は、ビットロック、バイトロック、デバウンス、デスクランブル、デスキュー、適応化、レイテンシ調整、ネゴシエートされた遅延、および、その他の潜在的使用等の初期化タスクを実行するために、さらに用いられてよい。実際のところ、複数のレーンが、そのようなイベントに対して実質的に継続してモニタされ、そのような条件に反応し処理するためのシステムの能力を活性化する。
【００８８】
図１０は、一例による、トレーニングシーケンス（ＴＳ）の例を表す。図１０において、トレーニングシーケンス１００５は、ヘッダ１０１０、および、リンクの初期化に関連する情報を通信するために用いられうる様々なフィールドを、含むことができる。例えば、一例において、複数のフィールドの中でも特に、ターゲットレイテンシ１０１５、状態１０２０、レーンペア数１０２５およびレーンマッピング１０２８のフィールドを、含むことができる。例えば、複数の機能の中でも特にスクランブラ同期フィールド１０３０が、追加的に設けられ、ＴＳフィールドのデスクランブルを可能とするためにデバイスにおける線形フィードバックシフトレジスタ（ＬＦＳＲ）の同期を、アシストすることができる。他の予約フィールド（例えば、１０５５、１０６０）は、また、トレーニングシーケンス（例えば、１００５）に含まれ得る。
【００８９】
ＴＳヘッダ１０１０は追加のフィールドを有することができ、それらはトレーニングシーケンス型１０３５（例えば、そこから初期状態を決定または推測することができる）、ＡＣＫ／ＮＡＫフィールド１０４０（例えばハンドシェイクで用いる）、レーン識別子フィールド１０４５（例えば、その最下位ビットやレーン逆転等によりレーンを特定する）、および、予約フィールドを含んだその他のフィールド、と通信するために用いられうる。いくつかの実装では、例えば、ランダムまたは擬似ランダムバイナリシーケンス（ＰＲＢＳ）によって、ＴＳの複数の部分が、スクランブルされうる。一例において、ＴＳヘッダ１０１０は暗号化されず、その一方で、ＴＳの残り部分（または本体（１０５０など））は、ＴＳのこれらの複数の部分を、特に、ＰＲＢＳでＸＯＲすることにより、例えば、スクランブルされる。
【００９０】
１つの実装では、ＴＳは１６バイト長（１６）であってよく、ＴＳヘッダは、ＴＳの第１のバイト（即ちバイト０）を占有してよい。ＴＳペイロードは、スクランブルされ、残りの１５バイトを占有することができる。１つの例示の実装において、ＴＳの尾部またはサフィックスは、ＴＳの最後の数バイトを含んでよい。例えば、一例において、スクランブル処理同期フィールド１０３０は、少なくともＴＳの３バイト、例えばＴＳのバイト６〜８、を占有してよい。この特定の実装では、ＴＳの尾部ビット（例えば、バイト９〜１５）は、予約ビット（例えば、１０５５）として維持されてよい。バイト６〜１５のビットは全て０に設定されうる。
【００９１】
いくつかの実装ではＨＰＩはＴＳヘッダ（例えば、１０１０）の使用をサポートすることができ、複数のキー初期化パラメータのために、ＴＳペイロードに代えて、または、に加えて、使用されうる。いくつかの実装において、ＴＳペイロードは、ＡＣＫやレーン数等の初期化パラメータを交換するために用いられてよい。レーン極性を伝えるために複数のＤＣレベルを用いてもよい。しかしながら、いくつかの実装では、ＨＰＩは、複数のキーパラメータのために、ＴＳヘッダ（例えば１０１０）に複数のＤＣバランスされたコードを実装することができる。例えば、ＴＳヘッダがアンスクランブルされるような複数の例では、利用可能なＴＳヘッダコードが、ＴＳヘッダフィールド（例えば、１０３５、１０４０、１０４５）に出現する「１」の個数が「０」の個数と実質的に等しくなるように規定されうる。ランダムまたは擬似ランダムバイナリシーケンスに対してビットをＸＯＲすることでＴＳペイロードのビットをスクランブル処理することにより、ＤＣバランスが、ＴＳの残り部分（例えば、ＴＳペイロード）で実現される。
【００９２】
１つの例示の実装において、ＰＲＢＳシーケンスは、少なくとも２３ビット（ＰＲＢＳ２３）を使用することができる。ＰＲＢＳは、特定の選択された多項式に従って、生成されうる。一例において、ＰＲＢＳは、線形フィードバックシフトレジスタ（ＬＦＳＲ）のような、類似のビットサイズやセルフシードストレージ要素により生成されうる。ＬＦＳＲは、８Ｍｂの長さまでＰＲＢＳシーケンスを生成することが可能な２３ビットフィボナッチＬＦＳＲでありうる。ＰＲＢＳは、シーケンスの終わりに続いて反復することができる。いくつかの実装では、ＰＲＢＳ２３シーケンスの全体が、例えば、ＨＰＩのリンクの初期化で用いられるスーパーシーケンスに含まれるトレーニングシーケンスのスクランブル処理に用いることができる。
【００９３】
ＰＲＢＳシーケンスの全長を用いることができる一方で、いくつかの実装では、ＨＰＩは、利用可能な様々な長さのＰＲＢＳシーケンスの使用を許容すること（例えば、ＰＲＢＳ２３シーケンスの一部分のみの使用）をサポートできる。いくつかの実施例において、デバイスのコントローラは、ＰＲＢＳシーケンスの全長の一部分だけが使用されることを特定することができる。例えば、このことは、潜在的な他のアプリケーションの中でも特に、ビットシーケンスの再現性が望ましいようなアプリケーションの試験では、好ましい。ソフトウェアベースのコントローラは、適用されるべき様々な長さのＰＲＢＳを特定できる。例えば、デバイスのＢＩＯＳは、そのリンクで適用されるべきＰＲＢＳ長さを特定することができる。いくつかの実装では、例えば、冗長なＰＲＢＳシーケンスの便益を最大化するために、ＰＲＢＳシーケンスの全長を使用することが、デフォルトの設定であり得る。
【００９４】
送信リンク状態（ＴＬＳ）でのレーントラヒックおよびトレーニングシーケンスは、特定の最小長（例えば、２３ビット）のＰＲＢＳでスクランブルされうる。ストリームへ適用されるべき開始シードは、そのリンクのＰＲＢＳの電気的な便益を強めるべく、レーン間で変化させられうる。１つの例示の実装において、ＰＲＢＳは、（ｘ２３＋ｘ２１＋ｘ１６＋ｘ８＋ｘ５＋ｘ２＋１）のような、６タップ生成器多項式を実装する２３ビットフィボナッチＬＦＳＲにより生成することができる。
【００９５】
８を法とした場合のレーン数に対する（スクランブラ／デスクランブラ初期化での）開始シード値は、任意の値、例えば８つの１６進値であってよく、それぞれの値は、そのリンクの複数レーンの２つまたは３つに関連する。そのようなシードの使用は、複数のレーン間でのＰＲＢＳの回転（またはスタガリング（ｓｔａｇｇｅｒｉｎｇ））をもたらすことができる。偶数レーンＰＲＢＳが奇数レーンのＰＲＢＳのＸＯＲから得られるという特質を用いることにより、ＬＦＳＲの個数を減らすことができる。ＥＩＥＯＳおよびトレーニングシーケンスのヘッダは、スクランブルされない。各レーンのスーパーシーケンスのエントリポイントは、各レーンの異なるポイントで（例えば、送信機が駆動を開始する場所で）初期化されうる。これにより、電力配信システムで雑音を低減するべく、複数レーンを互い違いにオンさせることができる。実際に、各レーンは、ＬＦＳＲの特有の例（インスタンス）を有しうる。スタガリング時間は、オンされているレーンの個数によって変えることができ、初期化の間は、実装依存であってよい。これらは、部分送信幅状態終了に対するタイミング図およびタイマプロファイルで規定されうる。さらに、高速トレーニングシーケンス（ＦＴＳ）（以下でも論じられる）が、同様に、レーンにより回転されてよい。
【００９６】
いくつかの例では、スクランブル処理は、送信機の電力供給ノイズを低減し、よりリッチな周波数スペクトルを受信機に提供することができる。スクランブラは、送信された第１のＥＩＥＯＳによって初期化されうる。デスクランブラは、例えば、セルフシードにより、スクランブラに同期されうる。例えば、受信した２３ビットパターンは、シードとして、ＴＳのフィールドへ埋め込まれうる。一例において、２３ビットシードは、スクランブル処理同期フィールド（例えば１０５０）のビットのスクランブル処理から、特定されうる。受信機は、シード値を使用して、受信したＴＳをスクランブル処理するために用いられる具体的なＰＲＢＳ位置を特定することができる。例えば、受信機はシードを特定し、そして、送信機で用いられるＰＲＢＳと同期するためにそのシードを自身のＬＦＳＲへと読み込むことができる。いくつかの例では、受信機は、自身のＬＦＳＲへのシードとする目的で、スーパーシーケンスの中の多数のスクランブル処理同期フィールドまたは多数のＴＳを読み取ってよい。しかしながら、送信機のＰＲＢＳを検出し同期すると、受信機は、とりわけそのリンクの初期化中に、複数のスーパーシーケンスの中で送信された全ての後続のＴＳと同様に複数のＴＳの残り部分を、デスクランブル処理しうる。
【００９７】
スーパーシーケンスは、レーンでのビットロックおよび同期を容易にするために用いられうる。上述したように、スーパーシーケンスの少なくとも一部がスクランブルされうる。図８の議論に戻ると、検出スーパーシーケンスは、受信したビットストリームのビットのおよびバイトの端部を検出またはロックし、どのバイトがそのスーパーシーケンスで送信されたかを特定するために、受信機によって用いられ得る。例えば、ＥＩＥＯＳおよびＴＳヘッダは、スクランブル処理されず、受信機がスーパーシーケンスをより速くロックするアシストをすることができる。追加的に、スーパーシーケンスは、ＥＩＥＯＳ（およびスーパーシーケンスの開始）が、相対的に短い周波数で反復することを可能とするように規定されうる（例えば、第１のＥＩＥＯＳが正確には検出されなかった場合に、受信機が、より速くＥＩＥＯＳを検出する別の機会を可能とする）。例えば、一例において、スーパーシーケンスは、１０００ＵＩ毎にまたはそれより短く、反復するよう規定されうる。そのようなスーパーシーケンスは、さらに、初期化の間において、ＴＳロック、レイテンシ調整および他の動作を単純化するのと同様に、よりランダム化された遷移を可能とする。
【００９８】
追加的に、ＥＩＥＯＳおよびＴＳヘッダをアンスクランブルのままとすることにより、バイトロックが生じることを可能とし、かつ、後続のバイトおよびシンボル（スクランブルされたＴＳシンボルを含む）の位置を受信機が特定することを許容できる。例えば、アンスクランブルされたＴＳヘッダの端部が特定され、それによりまた、スクランブル処理同期フィールド（例えば、１０５０）の開始（例えば、ＴＳヘッダの端部からシンボルへのバイト数を単純にカウントすることにより）が特定されうる。スクランブル処理同期フィールドにおけるＰＲＢＳシードを検出すると、受信機は、次に来るＰＲＢＳのパターン値を知り、また、後続のスクランブル処理同期フィールド（例えば、１０５０）の値を予測する。従って、ＰＲＢＳへとロックすると、受信機はさらに、スクランブル処理同期フィールド（例えば、１０５０）の値を使用することができ、適応化、デスキューおよびその他のタスクのような他の複数のコンフィギュレーションタスクを促進する。
【００９９】
マルチレーンにおける複数のリンクでは、複数のシンボルが送信機によって、全レーンで同時に送信されうるが、しかしながら、リンク間のスキューは、受信機に同時には到達しないいくつかのシンボルと共に現れうる。例えば、スキューのソースとしては、特に、チップ差動ドライバおよび受信機、プリント配線板のインピーダンス変動、レーンのワイヤ長不整合、を含んでよい。一実施形態では、ＨＰＩは、複数のレーンをデスキューするための進化した論理を提供する。一例として、ＴＳロック後のＴＳ境界が、複数のレーンをデスキューするために用いられうる。例えば、ＴＳロックは、スキューの検出（例えば、あるレーンでＴＳが、そのリンクにおける複数のレーンのうちの別のレーンで別のＴＳが到着するよりも、遅く到着する）に用いられうる。ＥＩＥＯＳが、また、スキューを検出するために用いられうる。さらには、同期されたＰＲＢＳパターンの予測可能性を用いて、ペイロードの特定の複数時点の間におけるＬＦＳＲでの複数のレーンＰＲＢＳパターンを比較することにより、ＨＰＩのいくつかの実装がデスキューしてよい。さらに、いくつかの例では、トレーニングシーケンスのスクランブル処理が再初期化されてよく、そして、特にトレーニングシーケンスをやり直す間にＰＲＢＳ値の表の検索を行うことでデスキューが実行されうる。そのようなデスキューは、例えば、ＴＳを検出する能力が欠如したテストチップや、特にデスキューを管理するステートマシンで有用でありえる。
【０１００】
スキューを検出すると、ＨＰＩ論理（例えば、スソフトウェアでサポートされたコントローラを通じて提供される）は、あるリンクにおいて、各レーンで他の複数のレーンに対するスキューを特定し、そして、そのスキューを排除するように試みるべくそれらのレーンを調整することができる。例えば、「より速い」レーンは、レーン間スキューにおいて検出された遅延に基づいて人為的に遅らされ（またはこれに代えて、より遅いレーンが速くされる（例えばデータパスのレイテンシを低減することにより））、その遅れた「より速い」レーンと実質的に同時に到着した「より遅い」レーンでのシンボルを調整することができる。
【０１０１】
適応化の場合、レーンの電気的特性が、例えば送信機と受信機との間で送信されるサンプルデータに基づいて、送信機と受信機との間で調整されうる。例えば、受信機の適応化としては、リンクに対するレーンの適応化を行うべく受信機での電気的特性を調整する受信機において、論理を用いてデータパターンを受信機へ送信する送信機を含むことができる。送信機の適応化には、受信機へサンプルデータを送信する送信機と、レーンの適応化を行うべく送信機で調節を行うための送信機によって用いられうる送信機へとフィードバックを送信する受信機とを含むことができる。受信機は、送信機でなされた調節に基づいて、その送信機へフィードバックの送信を継続することができる。
【０１０２】
一例において、適応化サンプルデータが、スクランブルされたＴＳデータを通じて実装されうる。一例として、適応化状態への迂回と共に、スクランブル処理に固定化ＵＩパターンが使用されてよい。しかし、ＰＲＢＳ２３と共にＴＳをスクランブル処理することより、迂回なしで受信機の適応化が実行されてよい。さらに、クロックリカバリおよびサンプリングの間、オフセットおよびその他の複数のエラーが、低減されてよい。ロングＰＲＢＳシーケンス（例えば、ＰＲＢＳ２３）を通じて提供されるランダム性により、適応化のための有効なサンプルストリームを証明できる。さらに、いくつかの実装では、レーンは、低速モードで動作するように設定され、そのレーンで受信したサンプルデータを分析し適応化する論理をアシストすることができる。レーン特性を適応化を通じて承認すると、適応化された特性は、そのリンクの初期化に設定されかつ適用されうる。
【０１０３】
ひとたびリンクが成功裏にキャリブレーションされ、コンフィギュレーションされると、初期化が終了し、フリットの送信が始まる送信リンク状態（ＴＬＳ）へと遷移できる。ＨＰＩのいくつかの実装では、ＴＬＳへの遷移は、システムでの気まぐれな配列（ｐｌａｎｅｔａｒｙ ａｌｉｇｎｍｅｎｔ）に基づいてよい。例えば、気まぐれに配列された信号は、ＴＬＳへの遷移の機会を示しうる。スーパーシーケンス、ＥＩＥＯＳまたはＴＬＳの端部で遷移するのではなく、ＨＰＩのいくつかの実装では、初期化とＴＬＳへの遷移とを終了するために、気まぐれな配列に従って送信されるデータシーケンスの開始（ＳＤＳ）シンボルを利用することができる。一例においてＳＤＳは、初期化ビットストリームの任意の場所で送信されうる。従って、受信機は、ＳＤＳに対する受信ビットを継続してスキャンすることができ、気まぐれな配列に従って、初期化の終了を加速する。
【０１０４】
一例において、例示的なＥＩＥＯＳは、反復ＦＦ００信号のような低周波数クロック信号を、エミュレートできる。例示的なＳＤＳは、いくつかの実装では、反復するＦ０信号を含みうる。従って、そのような例では、ＥＩＥＯＳ内のエイリアスのリスクが最小となりうるので、ＥＩＥＯＳの中間で送信されたＳＤＳを検出することは、相対的に特定が単純である。しかしながら、ＴＳペイロードのスクランブル処理および、ＴＳデータのでたらめさの結果により、ＳＤＳのいくつかの形態におけるエイリアスのリスクが導入されるかもしれない。いくつかの実装では、ＰＲＢＳが生成されてよく、これにより、多数のビットからなる任意の特定期間をこえてＳＤＳをエイリアスしない。さらに、尾部またはサフィックスがＴＳで提供されてよく、例えば、ＴＳの最後のバイトを用いてＰＲＢＳを、そのサフィックスの０値とＸＯＲとなるようにし、そのＴＳの終端部分でアンスクランブルされたＰＲＢＳを効率的に示す。サフィックスが十分に長い場合、スクランブルされるサフィックスの中で反映されるＰＲＢＳ値は、ＳＤＳが、あるＴＳのスクランブル処理されたペイロードにおいてエイリアスされることを不可能にする。例えば、一例において、ＳＤＳは、Ｆ０値が１０個連続したバイト（即ち、１１１１００００１１１１００００...）として定義されてよい。さらに、例えば、図１０の例で示されたように、７個の予約バイトのサフィックスが、ＴＳで提供され、その直後にスクランブル処理同期フィールド（例えば、１０５０）の３バイトが続くことができる。結果として、ゼロとなったＴＳサフィックスの長さ（例えば全１０バイト）が選択されたＳＤＳ値に対応し（例えば、Ｆ０の１０バイト）、これは、特に、選択されたスクランブル処理ＰＲＢＳ（例えば、ＰＲＢＳ２３）の内には現れないものとして選択されたものである。例えば、特に、ＰＲＢＳ２３（または別のＰＲＢＳ）の実装で使用される多項式に基づいて、ＰＲＢＳ２３での非１０バイトシーケンスは、選択されたＳＤＳ値と完全に等しくなるであろう。
【０１０５】
いくつかの実装では、コンフィギュレーション状態からＴＬＳへ抜け出す場合に、送受信ＬＦＳＲは、送信機と受信機との間でやり取りされたＳＤＳによって再初期化されうる。例えば、８つの開始ＰＲＢＳシードが、レーン０…７、１２…１９および８…１１（例えば、最初の４つのみ）へと、それぞれ適用されうる。さらには、リンクでのレーン逆転およびレーンでの極性反転は、例えばＥＩＥＯＳの後のＴＳのアンスクランブルされた第１バイト（ＴＳヘッダなど）を、特に、一連の可能な値と比較することにより、決定されてもよい。
【０１０６】
一実施形態では、クロックがデータへ埋め込まれ、このため、別個のクロックレーンはなくなる。フリットは、埋め込みクロックに従って送信されうる。さらに、複数のレーンにわたって送信されるフリットは、クロックリカバリを容易にすべくスクランブル処理されうる。一例として、受信機クロックリカバリユニットは、サンプリングクロックを受信機へ配信することができる（即ち、受信機はデータからクロックを回復し、入ってくるデータをサンプルするためにそれを使用する）。いくつかの実装では、複数の受信機が継続して入ってくるビットストリームに対して適応する。クロックを埋め込むことにより、潜在的にピン配列を低減できる。しかしながら、インバンドデータにクロックを埋め込むことで、インバンドリセットに着手するやり方を変更することができる。一実施形態では、ブロッキングリンク状態（ＢＬＳ）が初期化の後に使用されうる。また、他の複数の考慮すべき事項の中でもとりわけ、ＥＯＳスーパーシーケンスがリセットを容易にすべく、初期化中に使用されてよい。埋め込みクロックは、リンク上の複数デバイスの間で共通であってよく、共通に動作可能なクロックが、そのリンクのキャリブレーションおよびコンフィギュレーションの動作の間に設定されうる。例えば、複数のＨＰＩリンクは、複数のドリフトバッファを用いて共通クロックを参照することができる。そのような実装により、その他の潜在的利点の中でも特に、複数の非共通の参照クロックが用いられるエラスティックバッファよりも、より低いレイテンシを実現することができる。さらに、複数の参照クロック配信セグメントが、規定された範囲内で適合されてよい。
【０１０７】
上記したように、ＨＰＩリンクは、デフォルトの電力投入や初期化などのための「低速モード」を含んだ複数の速度で動作可能である。各デバイスにおける動作可能な（または「速い」）速度またはモードは、静的にＢＩＯＳによって設定されうる。リンク上の共通クロックは、そのリンクのいずれかの側の各デバイスのそれぞれの動作速度に基づいて、構成されうる。例えば、リンク速度は、特に、２つのデバイスの動作速度のうちのより遅い方に基づくことができる。任意の動作速度の変更が、ウォームリセットまたはコールドリセットに付随して起ってよい。
【０１０８】
いくつかの実施例において、電力オンの場合、リンクは、例えば、伝送速度１００ＭＴ／ｓの低速モードへ初期化する。するとソフトウェアは、そのリンクの動作速度のために２つの側を設定し、初期化を開始する。他の例においては、例えば、低速モードが存在しない場合や利用不可能である場合に、サイドバンドメカニズムを使用して、そのリンク上の共通クロックを含んだリンクを設定することができる。
【０１０９】
一実施形態では、低速モード初期化フェーズは、動作速度として、同じエンコード、スクランブル処理、トレーニングシーケンス（ＴＳ）、状態等を使用することができるが、潜在的にはより少ない特徴（例えば、電気パラメータ設定をしない、適応化をしない、等）を使用する。低速モードのオペレーションフェイズは（他の実装ではそうではなくてもよいが）、また潜在的に、同じエンコード、スクランブル処理等を用いることができるが、動作速度（例えば、低電力状態が無い）と比較して、より少ない状態および特徴を有してよい。
【０１１０】
さらに、低速モードは、そのデバイスが有しているフェーズロックループ（ＰＬＬ）クロック周波数を用いて実装されうる。例えば、ＨＰＩは、ＰＬＬクロック周波数を変更することなく、エミュレートされた低速モードをサポートすることができる。設計によっては低速および高速の実現のために別個のＰＬＬを用いてよいが、いくつかのＨＰＩの実装においては、低速モードの最中にＰＬＬクロックを同じ高速動作速度で実行することを許容することで、エミュレートされた低速モードを実現できる。例えば、遅い高クロック信号と、その次に遅い低クロック信号とをエミュレートすべく、送信機は、ビットを複数回繰り返すことによってより遅いクロック信号をエミュレートできる。受信機は、次に、受信信号をオーバーサンプリングし、ビット反復によってエミュレートされた複数の端部の場所を探し、ビットを特定する。そのような実装では、ＰＬＬを共有する複数のポートが、低速度および高速度で同時に終了してよい。
【０１１１】
いくつかのＨＰＩの実装では、リンク上での複数レーンの適応化がサポートされ得る。物理層は、受信機の適応化、および、送信機または送信機の適応化、の両方をサポートできる。受信機の適応化において、あるレーンの送信機は、サンプルデータを受信機へと送信し、受信ロジックは、そのレーンの電気的特性の欠点および信号品質を特定するべく、それらのデータを処理することができる。すると受信機は、そのレーンのキャリブレーションの調節をすることができ、受信したサンプルデータの分析に基づいてそのレーンを最適化する。送信機の適応化の場合には、受信機は再度サンプルデータを受信し、そのレーンの品質を説明するメトリックを展開するが、この場合、そのメトリックを（例えば、ソフトウェア、ハードウェア、埋め込み、サイドバンド、またはその他のチャネル等の裏チャネルを用いて）送信機へ通信し、送信機がフィードバックに基づきそのレーンを調節することを可能とする。
【０１１２】
リンク上の両方のデバイスが同じ参照クロック（例えばｒｅｆ  ｃｌｋ）で動作するので、融通性のあるバッファを省略することが可能である（任意のエラスティックバッファが迂回されるか、または、できるだけ最低のレイテンシを有するドリフトバッファとして用いられてよい）。しかしながら、各レーンで位相調節またはドリフトバッファを使用することができ、遠隔クロックドメインからローカルクロックドメインへと、各受信者へビットストリームを伝達する。ドリフトバッファのレイテンシは、全てのソースからのドリフトの合計を電気的な仕様（例えば、電圧、温度、参照クロックのルート不整合によりもたらされた残差ＳＳＣなど）で処理するのに十分であってよいが、移送遅延を低減するために可能な限り小さくてよい。ドリフトバッファが浅すぎる場合、ドリフトエラーは、一連のＣＲＣエラーとして生じ現れうる。その結果、いくつかの実装では、ドリフトアラームが提供され、特に、実際のドリフトエラーが生じる前に物理層リセットを初期化することができる。
【０１１３】
いくつかのＨＰＩの実装では、同じ基準参照クロック周波数で動作する２つの側をサポートしてよいがｐｐｍの差異はあってよい。この場合、周波数調節可能な（または融通性のある）バッファが必要であってよく、特に、拡張ＢＬＳ窓の最中または、定期的に生じてよい特別なシーケンスの最中に再調節されうる。
【０１１４】
ＨＰＩのＰＨＹ論理層の動作は、設けられた下層の伝送媒体から独立してよく、そのレイテンシは、他の複数の考慮すべき事項の中でも特に、リンク層でのレイテンシ調整エラーまたはタイムアウトをもたらさない。
【０１１５】
ＨＰＩでは、複数の外部インタフェースが設けられてよく、物理層の管理をアシストする。例えば、（ピン、ヒューズ、その他の層からの）複数の外部信号、複数のタイマ、複数の制御および状態レジスタが設けられうる。入力信号は、ＰＨＹ状態に対していつでも変化することができるが、物理層により各状態の特定の時点で観察される。例えば、（下記で導入されるように）変化する配列信号が受信されてよいが、いくつかの例の中でも特に、リンクが送信リンク状態へと入った後には何の効力も持たない。同様に、複数のコマンドレジスタ値が、特定の時点でのみ、複数の物理層エンティティによって観察されうる。例えば、物理層論理は、値のスナップショットを取り、後続の動作でそれを使用することができる。その結果、いくつかの実装では、コマンドレジスタの更新は、変則的な挙動を回避するために、複数の特定期間（例えば、送信リンク状態において、リセットキャリブレーションで保持をしている時、低速モードの送信リンク状態において）からなる限定されたサブセットに関連付けられうる。
【０１１６】
複数の状態値はハードウェア変化を追跡するので、読み値は、それらがいつ読み取られたかに依存しうる。しかしながら、リンクマップ、レイテンシ、速度等のいくつかの状態値は、初期化の後、変化しなくてよい。例えば、再初期化（または、低電力リンク状態（ＬＰＬＳ）やＬ１状態、終了）は、これらを変化させてよい唯一の状況である（例えば、特に、ＴＬＳでのハードレーンの失敗は、再初期化がトリガされるまで、リンクの再設定をもたらさないでよい）。
【０１１７】
インタフェース信号は、外部用であるが物理層の挙動に影響を与える信号を含みうる。そのようなインタフェース信号は、例えば、エンコード信号およびタイミング信号を含みうる。インタフェース信号は、設計に固有であるかもしれない。これらの信号は、入力または出力でありうる。特に、セマフォおよびプレフィックスＥＯのような、いくつかのインタフェース信号はアサーションエッジ毎に１回アクティブとなってよく、即ち、それらの信号は、特に、デアサートされ、再び効力を得るべく再アサートされてよい。例えば、表１は、例示的な機能の例示的なリストを含む。
【表１】
0006423040.tif 000002
【０１１８】
ＣＳＲタイマのデフォルト値は、ペアで提供されてよく、１つは低速モードに対しするものであり、もう１つは動作速度に対するものである。いくつかの例では、値０は、タイマを無効化する（即ち、タイムアウトが生じないようにする）。タイマは、以下の表２に示すようなものを含みうる。複数の第１のタイマが、ある状態における予期される動作の時間を測定するために用いられうる。複数の第２のタイマは、進行中ではない複数の初期化をアボートするために、または、自動化された試験機器（またはＡＴＥ）モードにおいて、正確な時間で状態遷移を進めるために用いられ、場合によっては、複数の第２のタイマは、ある状態において、複数の第１のタイマよりも、ずっと大きくなりうる。指数関数的なタイマのセットは、末尾にｅｘｐが付され、タイマ値は、２のフィールド値だけべき乗される。線形タイマの場合、タイマ値がフィールド値である。いずれのタイマも、異なる粒度を使用することができる。さらには、電力管理セクションにおけるいくつかのタイマは、タイミングプロファイルと呼ばれるセットでありうる。これらは同名のタイミング図と関連してよい。
【表２】
0006423040.tif 000003
【０１１９】
コマンドおよび制御レジスタが設けられてよい。制御レジスタは、レイト動作（ｌａｔｅ ａｃｔｉｏｎ）であってよく、いくつかの例では、ソフトウェアによって読み取られまたは書き込まれてよい。レイト動作の値は、リセット中、継続して有効であるうる（例えば、ソフトウェア対応からハードウェア対応のステージへとパススルーする）。制御セマフォ（接頭されたＣＰ）はＲＷ１Ｓであり、ハードウェアによってクリアされうる。制御レジスタは、ここで述べた任意の項目を実行するために使用されてよい。それらは、ハードウェア、ソフトウェア、ファームウェアまたはそれらの組み合わせにより、変更可能かつアクセス可能であってよい。
【０１２０】
状態レジスタは、ハードウェアの変更（ハードウェアによる書込みおよび使用）を追跡するために設けることができ、読み取り専用でありうる（しかし、デバッグソフトウェアが、また、それらへと書き込まれてよい）。そのようなレジスタは、相互運用性に影響を与えず、典型的には、多くの私的な状態レジスタで補完されうる。状態セマフォ（接頭されたＳＰ）は、ソフトウェアによりクリアされ、その状態を設定する複数の動作をやり直してよいため、強制的に命令されてよい。（リセットでの）デフォルト手段の初期値は、これらの、初期化に関連する状態ビットのサブセットとして提供されてよい。初期化アボートでは、このレジスタは記憶構造へとコピーされてよい。
【０１２１】
ツールボックスレジスタが設けられてよい。例えば、物理層におけるテスタビリティツールボックスレジスタは、パターン生成、パターンチェックおよびループバック制御メカニズムを提供しうる。高レベルアプリケーションは、マージンを決定するために、これらのレジスタを、電気パラメータと共に活用することができる。例えば、相互接続組込みテストでは、マージンを決定するためにこのツールボックスを使用してよい。送信機の適応化のため、これらのレジスタは、特に、先のセクションで記載された具体的なレジスタと共に使用されうる。
【０１２２】
いくつかの実装では、ＨＰＩは、信頼性、利用度、および物理層を利用するサービス性（ＲＡＳ）機能をサポートする。一実施形態では、ＨＰＩは、ホットプラグおよびホットリムーブを１または複数の層でサポートし、これはソフトウェアを含んでよい。ホットリムーブはリンクを休止することができ、取り除かれるべきエージェントに対して初期化の開始状態／信号がクリアされうる。遠隔のエージェント（即ち、取り除かれていないもの（例えば、ホストエージェント））は、低速度に設定され、また初期化信号がクリアされうる。インバンドリセット（例えば、ＢＬＳを通して）は、両方のエージェントを、キャリブレーションリセット状態（ＣＲＳ）のようなリセット状態で待機させることができ、特に、取り除かれるべきエージェントが取り除かれうる（または、ターゲットとされるピンリセットにおいて保持され、電力がダウンされる）。実際には、上記イベントのいくつかは省略されてよく、追加イベントが追加されうる。
【０１２３】
ホットアドは、デフォルトで低速であってよい初期化速度を有することができ、初期化信号は、追加されるべきエージェントで設定されうる。ソフトウェアは、速度を遅く設定することができ、遠隔のエージェントでの初期化信号をクリアしてよい。リンクが低速モードにまで達し、ソフトウェアは動作速度を決定できる。場合によっては、遠隔でのＰＬＬ再ロックは、この時点では実行されない。動作速度は両方のエージェントで設定され、適応化のために（もし過去になされていないのであれば）イネーブルが設定されうる。初期化開始インジケータが両方のエージェントでクリアされ、インバンドＢＬＳリセットが、両方のエージェントをＣＲＳで待機させうる。ソフトウェアは、（追加されるべき）エージェントのウォームリセット（例えば、ターゲットのまたは自己リセット）をアサートすることができ、これによりＰＬＬに再ロックさせてよい。ソフトウェアは、また、初期化開始信号を、任意の周知の論理により設定してよく、さらには遠隔で設定してよい（これにより、受信機検出状態（ＲＤＳ）へと進ませる）。ソフトウェアは、その追加エージェントのウォームリセットをデアサートすることができる（これにより、ＲＤＳへと進ませる）。すると、リンクは、いくつかの例の中でも特に、動作速度で送信リンク状態（ＴＬＳ）へ（適応信号が設定されていたらループバックへ）と初期化してよい。実際には、上記イベントのいくつかは省略されてよく、追加イベントが追加されうる。
【０１２４】
データレーンでの失敗のリカバリがサポートされうる。一実施形態では、ＨＰＩにおけるリンクは、自身を全幅よりも狭く設定する（例えば、全幅の半分よりも小さくする）ことにより、単一レーンでのハードエラーに対して回復機能を有することができ、これにより、欠陥のあるレーンを除外できる。一例として、リンクステートマシンによって、その設定がなされ、不使用のレーンはコンフィギュレーション状態ではオフにされうる。結果としてフリットが、いくつかの例の中でも特に、より狭い幅で送信されてよい。
【０１２５】
ＨＰＩのいくつかの実装では、レーン逆転がいくつかのリンクでサポートされうる。例えば、レーン逆転とは、受信機レーンｎ／ｎ−１／ｎ−２・・・に接続された送信機レーン０／１／２・・・を意味しうる（例えば、ｎは、１９や７などと等しくてよい）。レーン逆転は、ＴＳヘッダのフィールドにおいて特定がなされるように、受信機において検出されうる。受信機は、論理レーン０・・・ｎに対する物理レーン０・・・ｎを用いてポーリング状態を開始することによって、レーン逆転を処理することができる。従って、あるレーンへの参照とは、論理レーン数への参照であってよい。故に、基板設計者は、より効率的に物理的または電気的設計を定めてよく、ＨＰＩは、ここで述べたように、仮想的なレーン割当として機能してよい。さらに、一実施形態では、極性が反転されてよい（即ち、差動送信機＋／−は、受信機の−／＋に接続される）。一実施形態では、極性は、ポーリング状態で、１または複数のＴＳヘッダフィールドから受信機で検出され、そして処理されうる。
【０１２６】
図１１を参照すると、マルチコアプロセッサを含むコンピューティングシステムのためのブロック図が示される。プロセッサ１１００は、マイクロプロセッサ、組込みプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、ネットワークプロセッサ、ハンドヘルドプロセッサ、アプリケーションプロセッサ、コプロセッサ、システムオンチップ（ＳＯＣ）、コードを実行するその他のデバイスのような任意のプロセッサまたは処理デバイスを有する。一実施形態では、プロセッサ１１００は、少なくとも２つのコア１１０１および１１０２を有し、これらは、非対称コアまたは対称コアを有してよい（図示された実施形態）。しかしながら、プロセッサ１１００は、任意の数の対称または非対称の処理要素を含んでよい。
【０１２７】
一実施形態では、処理要素は、ハードウェアまたは論理を参照して、ソフトウェアスレッドをサポートする。ハードウェア処理要素の例としては、スレッドユニット、スレッドスロット、スレッド、処理ユニット、コンテクスト、コンテクストユニット、論理プロセッサ、ハードウェアスレッド、コア、および／または、実行状態やアーキテクチャ状態のようなプロセッサの状態を保持することのできる他の任意の要素を有する。言い換えると、一実施形態では、処理要素は、ソフトウェアスレッド、オペレーティングシステム、アプリケーション、その他のコードのようにコードと別々に関連付られることが可能な任意のハードウェアを指す。物理プロセッサ（またはプロセッサソケット）は、典型的には集積回路を指し、潜在的に、コアやハードウェアスレッドのような任意の数の処理要素を有してよい。
【０１２８】
コアはしばしば、個々のアーキテクチャ状態を維持することが可能な集積回路に配置されたロジックを指し、この場合、別々に維持されるアーキテクチャ状態は、少なくともいくつかの専用化された実行リソースと関連する。コアとは対照的に、ハードウェアスレッドは典型的には個々のアーキテクチャ状態を維持することが可能な集積回路に配置された任意の論理を指し、この場合、別々に維持される複数のアーキテクチャ状態は、実行リソースへのアクセスを共有する。見て理解できるように、特定のリソースが共有され、その他があるアーキテクチャ状態へと専用化された場合に、ハードウェアスレッドおよびコアの間の用語体系のラインが重なり合う。それでもしばしば、コアおよびハードウェアスレッドは、オペレーティングシステムによって、個別の論理プロセッサとして見なされ、ここでオペレーティングシステムは、各論理プロセッサにおいて個別に動作をスケジューリングすることができる。
【０１２９】
図１１に図示されるように、物理プロセッサ１１００は２つのコア、コア１１０１、１１０２を有する。ここでは、コア１１０１および１１０２は、対称コア、即ち、同じ構成、機能ユニットおよび／または論理を有するコアだと見なされる。別の実施形態では、コア１１０１がアウト・オブ・オーダプロセッサコアを有し、他方で、コア１１０２がイン・オーダプロセッサコアを有してよい。しかしながら、コア１１０１および１１０２は、ネイティブコア、ソフトウェア管理されたコア、命令セットアーキテクチャ（ＩＳＡ）を実行するように適合されたコア、変換された命令セットアーキテクチャ（ＩＳＡ）を実行するように適合されたコア、協調設計コア、他の周知のコアのような任意のタイプのコアから個別に選択されてよい。ヘテロジニアスなコア環境（即ち、非対称コア）では、バイナリ変換のような、ある変換形態が使用されてよく、一方又は両方のコアで、スケジューリングまたはコードの実行をする。さらなる議論はまだされていないが、コア１１０２における複数のユニットは図示された実施形態において同様に動作するので、コア１１０１の中の図示された複数の機能ユニットが、以下でさらに詳細に述べられる。
【０１３０】
図示されているように、コア１１０１は、２つのハードウェアスレッド１１０１ａ、１１０１ｂを有し、これらはまた、ハードウェアスレッドスロット１１０１ａ、１１０１ｂとも称されてよい。従って、一実施形態ではオペレーティングシステムのようなソフトウェアエンティティは、潜在的にプロセッサ１１００を、４つの別個のプロセッサ、つまり、４つのソフトウェアスレッドを同時に実行可能な４つの論理プロセッサまたは処理要素とみなす。上記で示唆されるように、第１のスレッドはアーキテクチャ状態レジスタ１１０１ａに関連付けられ、第２のスレッドはアーキテクチャ状態レジスタ１１０１ｂに関連付けられ、第３のスレッドはアーキテクチャ状態レジスタ１１０２ａに関連付けられてよく、第４のスレッドはアーキテクチャ状態レジスタ１１０２ｂに関連付けられてよい。ここで、上述のように、複数のアーキテクチャ状態レジスタ（１１０１ａ、１１０１ｂ、１１０２ａおよび１１０２ｂ）のそれぞれは、処理要素、スレッドスロット、またはスレッドユニットとして称されてもよい。図示されるように、アーキテクチャ状態レジスタ１１０１ａはアーキテクチャ状態レジスタ１１０１ｂで複製され、個別のアーキテクチャ状態／コンテクストが論理プロセッサ１１０１ａおよび論理プロセッサ１１０１ｂに対して格納されることが可能となる。コア１１０１において、アロケータおよびリネームブロック１１３０における、命令ポインタおよびリネーム論理のような、より小さな他のリソースが、また、スレッド１１０１ａおよび１１０１ｂのために複製されてよい。リオーダ／リタイヤユニット１１３５におけるリオーダバッファのようないくつかのリソース、ＩＬＴＢ１１２０、読み込み／書込みバッファ、およびキューが、パーティショニングを通じて共有されてよい。複数の汎用内部レジスタ、１または複数のページテーブルベースレジスタ、低レベルデータキャッシュおよびデータＴＬＢ１１１５、１または複数の実行ユニット１１４０、アウト・オブ・オーダユニット１１３５の複数の部分のようなその他のリソースが、潜在的に、完全に共有される。
【０１３１】
プロセッサ１１００はしばしば他のリソースを有し、これらは完全に共有されてよく、またはパーティショニングを通して共有されてよく、または、処理要素により／対して専用化されてよい。図１１では、そのプロセッサの例示のロジックユニット／リソースを有する純粋に例示的なプロセッサが図示される。プロセッサは、図示されていない他の周知の機能ユニット、論理およびファームウェアを有してよいのと同様に、これらの機能ユニットのいずれを有しても省略してもよい。図示されているように、コア１１０１は、単純化され代表的な、アウト・オブ・オーダ（ＯＯＯ）プロセッサコアを有する。しかし、異なる実施形態では、イン・オーダプロセッサが使用されてよい。ＯＯＯコアは、実行されるべき／取り出されるべき複数の分岐を予測する分岐ターゲットバッファ１１２０と、命令に対するアドレス変換エントリを格納する命令変換バッファ（Ｉ−ＴＬＢ）１１２０と、を有する。
【０１３２】
コア１１０１はさらに、フェッチされた要素をデコードするためのフェッチユニット１１２０に結合されるデコードモジュール１１２５を有する。一実施形態では、フェッチ論理は、スレッドスロット１１０１ａ、１１０１ｂに関連する個別のシーケンスをそれぞれ有する。通常、コア１１０１は、プロセッサ１１００で実行可能な命令を規定／特定する、第１ＩＳＡに関連付られる。しばしば、第１ＩＳＡの一部である機械コード命令は命令の一部分を有し（オペコードとも称される）、これは、実行されるべき命令または動作を参照／特定する。デコード論理１１２５は、これらの命令をそれらのオペコードから認識し、かつパイプラインにおいて第１ＩＳＡによって規定されるような処理を行うためにデコードされた命令をパスするための回路を、有する。例えば、より詳細に以下で議論されるように、一実施形態では、デコーダ１１２５は、トランザクション命令等の特定の命令を認識すべく設計または適応化された論理を有する。デコーダ１１２５による認識の結果として、アーキテクチャまたはコア１１０１は、適切な命令に関連したタスクを実行するために、特定の事前に定義された動作を行う。ここで記載される任意のタスク、ブロック、動作、および方法が単一のまたは複数の命令に応じて実行されてもよいことを指摘しておくことは重要であり、命令のいくつかは、新たな、または、古いものであってよい。一実施形態では、複数のデコーダ１１２６は、同じＩＳＡ（またはそのサブセット）を認識する。この代わりに、ヘテロジニアスなコア環境では、複数のデコーダ１１２６は、第２ＩＳＡ（第１ＩＳＡのサブセットまたは区別されるＩＳＡのいずれか）を認識する。
【０１３３】
一例において、アロケータおよびリネームブロック１１３０は、命令処理の結果を格納するためのレジスタファイル等のリソースをリザーブするための割り当て部を有する。しかしながら、スレッド１１０１ａおよび１１０１ｂは、アウト・オブ・オーダ実行が潜在的に可能であり、この場合、アロケータおよびリネームブロック１１３０は、命令の結果を追跡するためのリオーダバッファ等の他のリソースをリザーブする。ユニット１１３０はまた、プログラム／命令参照レジスタを、プロセッサ１１００の内部の他のレジスタへとリネームするための、レジスタリネーム部を有してよい。リオーダ／リタイヤユニット１１３５は、上述のリオーダバッファ、読み込みバッファ、書込みバッファのようなコンポーネントを含み、アウト・オブ・オーダ実行と、その後、アウト・オブ・オーダで実行された命令のイン・オーダ・リタイヤとをサポートする。
【０１３４】
１または複数のスケジューラおよび実行ユニットブロック１１４０は、一実施形態では、スケジューラユニットを有し、複数の実行ユニットでの命令／動作をスケジューリングする。例えば、利用可能な浮動小数点実行ユニットを有する実行ユニットのポートで浮動小数点命令がスケジューリングされる。実行ユニットに関連するレジスタファイルが、また、含まれており、情報命令処理の結果を格納する。例示的な実行ユニットは、浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、読み込み実行ユニット、格納実行ユニット、および他の周知の実行ユニットを有する。
【０１３５】
低レベルデータキャッシュおよびデータ変換バッファ（Ｄ−ＴＬＢ）１１５０は、１または複数の実行ユニット１１４０に結合される。データキャッシュは、データオペランドのような、要素における最近の使用／動作を格納し、それらは、潜在的に、メモリコヒーレンシ状態で保持される。Ｄ−ＴＬＢは、物理アドレス変換への最近の仮想／線形を格納する。具体的な例としてプロセッサは、物理メモリを複数の仮想ページへとブレークするために、ページテーブル構造体を有してよい。
【０１３６】
ここで、コア１１０１、１１０２は、オンチップインタフェース１１１０に関連する第２レベルキャッシュのような、より高レベルのまたはより離れた（ｆｕｒｔｈｅｒ−ｏｕｔ）キャッシュへのアクセスを共有する。より高レベルの、または、より離れたとは、増加した、または、１または複数の実行ユニットからさらに離れた、キャッシュレベルを指す。一実施形態では、より高レベルのキャッシュは、ラストレベルのデータキャッシュ、つまりプロセッサ１１００のメモリ階層の最後のキャッシュであり、例えば第２または第３レベルデータキャッシュである。しかしながら、より高レベルのキャッシュとはそれらには限定されず、命令キャッシュと関連付けられてもよく、または、命令キャッシュを有してもよい。トレースキャッシュ、つまりは、命令キャッシュの１つのタイプが、代わりにデコーダ１１２５の後に結合されてよく、最近のデコードされたトレースを格納する。ここで、命令とは、潜在的には、マクロ命令（即ち、デコーダにより認識される一般的な命令）を指し、多数のマイクロ命令（マイクロオペレーション）へとデコードする。
【０１３７】
図示された構成では、プロセッサ１１００は、また、オンチップインタフェースモジュール１１１０を有する。歴史的には、メモリコントローラは、以下でより詳細に述べるが、プロセッサ１１００の外部のコンピューティングシステムに含まれてきた。本シナリオでは、オンチップインタフェース１１１０は、プロセッサ１１００の外部の複数のデバイス、例えば、システムメモリ１１７５、チップセット（しばしば、メモリ１１７５に接続するメモリコントローラハブ、および、周辺機器に接続するＩ／Ｏコントローラハブを有する）、メモリコントローラハブ、ノースブリッジ、または他の集積回路、と通信する。また、このシナリオでは、バス１１０５は任意の周知の相互接続を有してよく、例えば、マルチドロップバス、２地点間相互接続、シリアル相互接続、パラレルバス、コヒーレント（例えば、キャッシュコヒーレント）バス、層状プロトコルアーキテクチャ、差動バス、ＧＴＬバスである。
【０１３８】
メモリ１１７５は、プロセッサ１１００に専用化され、またはシステム中の他のデバイスと共有されてよい。メモリ１１７５のタイプについての一般的な例としては、ＤＲＡＭ、ＳＲＡＭ、不揮発性メモリ（ＮＶメモリ）および、他の周知のストレージデバイスを含む。デバイス１１８０は、グラフィックアクセラレータ、メモリコントローラハブに結合されたプロセッサ若しくはカード、Ｉ／Ｏコントローラハブに結合されたデータストレージ、無線送受信器、フラッシュデバイス、オーディオコントローラ、ネットワークコントローラ、または他の周知のデバイスを含んでよい。
【０１３９】
しかしながら、最近では、より多くの論理およびデバイスがＳＯＣ等の単一ダイ上に一体化されているように、これらのデバイスのそれぞれがプロセッサ１１００に組み込まれてよい。例えば、一実施形態では、プロセッサ１１００と共にメモリコントローラハブが、同じパッケージおよび／またはダイ上にある。ここで、コアの部分（オンコア部分）１１１０は、メモリ１１７５やグラフィックスデバイス１１８０等の他のデバイスへとインタフェースするために、１または複数のコントローラを有する。そのようなデバイスとインタフェースするための相互接続とコントローラとを備えた構成は、しばしば、オンコア（または、アンコア構成）とも称される。一例として、オンチップインタフェース１１１０は、オンチップ通信のためのリング相互接続と、オフチップ通信のための高速シリアル２地点間リンク１１０５とを有する。さらに、ＳＯＣ環境では、ネットワークインタフェース、コプロセッサ、メモリ１１７５、グラフィックスプロセッサ１１８０、および他の任意の周知のコンピュータデバイス／インタフェース等の、より多くのデバイスが、単一ダイまたは集積回路に一体化されてよく、高機能で低電力消費な小さなフォームファクタを提供する。
【０１４０】
一実施形態では、プロセッサ１１００は、アプリケーションコード１１７６をコンパイルし、トランスレートし、および／または最適化するべく、コンパイラ、最適化、および／または変換器コード１１７７を実行することが可能であって、ここで記載される装置および方法をサポートし、または、それらとのインタフェースを行う。コンパイラは、しばしば、プログラムまたはプログラムのセットであり、ソースのテキスト／コードをターゲットのテキスト／コードへと変換する。通常、コンパイラによるプログラム／アプリケーションコードのコンパイルは多重フェーズで行われ、高レベルプログラミング言語コードを、低レベルの機械またはアセンブリ言語コードへと変換すべくパスする。けれども、今なお、簡単なコンパイルのために単一パスのコンパイラが使用されてよい。コンパイラは、任意の周知のコンパイル技術を使用してよく、また、任意の周知のコンパイラ動作を実行してよく、例えば、単語解析、前処理、構文解析、セマンティクス解析、コード生成、コード変換、およびコード最適化を含む。
【０１４１】
より大きなコンパイラは、しばしば、多重フェーズを有するが、ほとんどの場合、これらの複数のフェーズは、２つの一般的なフェーズ内に含まれる：（１）フロントエンド、即ち、一般的には、統語的処理、セマンティクス処理、およびいくつかの変換／最適化が行われてよく、（２）バックエンド、即ち、一般的には、解析、複数の変換、複数の最適化、およびコード生成が行われる。いくつかのコンパイラは中間なものであり、コンパイラにおけるフロントエンドとバックエンドとの間の描写がぼやけたものを例示する。結果として、挿入への参照、関連づけ、生成、その他のコンパイラ動作は、任意の前述のフェーズまたはパスにおいてのみならず、コンパイラにおける他の任意の周知のフェーズまたはパスで行われてよい。例示的な事例として、コンパイラは、コンパイルの１または複数のフェーズで、動作、呼び出し、機能などを、例えばコンパイルのフロントエンドフェーズでの呼び出し／動作の挿入のように、潜在的に挿入し、その後、変換フェーズの間に、その呼び出し／動作の変換を、より低レベルのコードへと挿入する。動的コンパイルの間、コンパイラコードまたは動的最適化コードは、そのような操作／呼び出しを挿入するだけでなく、ランタイムの間の実行のためのコードを最適化してよい。特定の例示的な事例として、バイナリコード（既にコンパイルされたコード）が、ランタイムの間に動的に最適化されてよい。ここで、プログラムコードは、動的最適化コード、バイナリコード、またはそれらの組み合わせを有してよい。
【０１４２】
コンパイラと類似して、バイナリ変換器等の変換器は、コードを静的または動的に最適化し、および／またはコードを変換する。故に、コード、アプリケーションコード、プログラムコード、その他のソフトウェア環境の実行を参照するとは：（１）プログラムコードをコンパイルし、ソフトウェア構造を維持し、複数の動作を実行し、コードを最適化し、またはコードを変換するために、１または複数のコンパイラプログラムの、最適化コード最適化器の、または変換器の、動的または静的な実行を参照すること、（２）最適化／コンパイルがなされたアプリケーションコード等の操作／呼び出しを有するメインプログラムコードの実行を参照すること、（３）ソフトウェア構造を維持し、オペレーションに関連する他のソフトウェアを実行し、またはコードを最適化するために、メインプログラムコードと関連する、ライブラリ等のその他のプログラムコードの実行を参照すること、または（４）これらの組み合わせを参照すること、であってよい。
【０１４３】
図１２を参照すると、マルチコアプロセッサの実施形態のブロック図が示される。図１２の実施形態に示されるように、プロセッサ１２００は、複数のドメインを有する。具体的には、コアドメイン１２３０は、複数のコア１２３０Ａ−１２３０Ｎ、メディアエンジン１２６５を含む１または複数のグラフィクスエンジンを有するグラフィクスドメイン１２６０、およびシステムエージェントドメイン１２１０を備える。
【０１４４】
様々な実施形態において、システムエージェントドメイン１２１０は、電力制御イベントおよび電力管理を処理し、その結果、ドメイン１２３０および１２６０における個々のユニット（例えば、複数のコアおよび／または複数のグラフィクスエンジン）が、独立して制御可能となり、所定ユニットで生じている活動（または非活動）を考慮して適切な電力モード／レベルで（例えば、アクティブ、ターボ、スリープ、ハイバーネイト、ディープスリープ、その他の進化的設定電力インタフェースに似た状態で）動的に動作する。ドメイン１２３０および１２６０のそれぞれは、異なる電圧および／または電力で動作してよく、さらには、複数のドメイン内の個々のユニットは、それぞれ潜在的に独立した周波数および電圧で動作してよい。３つのドメインが示されているが、本発明の範囲はこれには限定されず、他の実施形態においては追加のドメインが存在してよいことが理解されるべきである。
【０１４５】
図示されるように、各コア１２３０は、さらに、様々な実行ユニットおよび追加の処理要素に加えて、複数の低レベルキャッシュを有する。ここで、様々なコアが、お互いに、かつラストレベルキャッシュ（ＬＬＣ）１２４０Ａ−１２４０Ｎにおける複数のユニットまたはスライスから形成される共有キャッシュメモリへと結合され、これらのＬＬＣはしばしば、ストレージおよびキャッシュ制御機能を有し、これらの複数コアの間だけでなく、潜在的にはグラフィクスエンジンの間においても共有される。
【０１４６】
見てわかるように、リング相互接続１２５０は、複数のコアを連結し、かつ、コアドメイン１２３０、グラフィクスドメイン１２６０およびシステムエージェント回路１２１０の間の相互接続を、それぞれがコアとＬＬＣスライスとの間の連結を行っている複数のリングストップ１２５２Ａ−１２５２Ｎを介して、提供する。図１２に見られるように、相互接続１２５０は、アドレス情報、データ情報、肯定応答情報、スヌープ／無効情報を含む様々な情報を搬送するために用いられる。リング相互接続が図示されているが、任意の周知のオンダイ相互接続またはファブリックが使用されてよい。例示的な事例として、上述したようなファブリックのいくつか（別のオンダイ相互接続、オンチップシステムファブリック（ＯＳＦ）、次世代マイクロコントローラバスアーキテクチャ（ＡＭＢＡ）相互接続、多次元メッシュファブリック、または他の周知の相互接続アーキテクチャなど）が、同様に用いられてよい。
【０１４７】
さらに図示されるように、システムエージェントドメイン１２１０は、関連するディスプレイの制御、および、へのインタフェースを提供するディスプレイエンジン１２１２を含む。システムエージェントドメイン１２１０は、システムメモリに対するインタフェースを提供する内蔵型メモリコントローラ１２２０のような他のユニットを有してよい（例えば、マルチＤＩＭＭと共に実装されたＤＲＡＭ、メモリコヒーレンス動作を実行するためのコヒーレンス論理１２２２）。マルチインタフェースは、プロセッサと他の回路との間の相互接続をさせるために存在してよい。例えば、一実施形態では、少なくとも１つのダイレクトメディアインタフェース（ＤＭＩ）１２１６が、１または複数のＰＣＩｅ（商標）インタフェース１２１４と同様に、提供される。ディスプレイエンジンおよびこれらの複数のインタフェースは、典型的には、ＰＣＩｅ（商標）ブリッジ１２１８を介してメモリに連結される。さらには、複数の追加のプロセッサや他の回路等の他のエージェント間での通信を提供するために、１または複数の他のインタフェースが設けられてよい。
【０１４８】
図１３を参照すると、代表的なコアのブロック図が、具体的には図１２のコア１２３０のようなコアのバックエンドの複数の論理ブロックが、示される。概して、図１３に示される構造はアウト・オブ・オーダプロセッサを有しており、このプロセッサは、入力命令をフェッチするために用いられるフロントエンドユニット１３７０を有し、様々な処理（キャッシュ、デコード、分岐、予測など）を実行し、複数の命令／動作をアウト・オブ・オーダ（ＯＯＯ）エンジン１３８０へとパスする。ＯＯＯエンジン１３８０は、デコードされた命令でさらに処理を実行する。
【０１４９】
具体的には、図１３の実施形態では、アウト・オブ・オーダエンジン１３８０は、デコードされた命令を受信する割り当てユニット１３８２を有し、これらの命令は、フロントエンドユニット１３７０からの１または複数のマイクロ命令またはｕｏｐｓの形態であってよく、複数のレジスタなどのような適切な複数のリソースへと割り当てる。次に、命令は、予約ステーション１３８４へ提供され、このステーションは、複数の実行ユニット１３８６Ａ−１３８６Ｎの１つで実行するためにリソースをリザーブしスケジューリングする。様々なタイプの実行ユニットが存在してよく、例えば、とりわけ、複数の演算ロジックユニット（ＡＬＵ）、複数の読み込みおよび書込みユニット、複数のベクトル処理ユニット（ＶＰＵ）、浮動小数点実行ユニットを含む。これらの異なる実行ユニットからの結果はリオーダバッファ（ＲＯＢ）１３８８へと提供され、リオーダバッファは、複数の順序付けられていない結果を取得し、それらを正しいプログラム順序へリターンする。
【０１５０】
さらに図１３を参照すると、フロントエンドユニット１３７０とアウト・オブ・オーダエンジン１３８０の両方がメモリ階層の異なるレベルに結合される。具体的には命令レベルキャッシュ１３７２が図示され、その次には中間レベルキャッシュ１３７６が結合され、その次にはラストレベルキャッシュ１３９５が結合される。一実施形態では、ラストレベルキャッシュ１３９５は、オンチップユニット１３９０（場合によってはアンコアとも称される）のかたちで実装される。一例として、ユニット１３９０は図１２のシステムエージェント１２１０に類似する。上述したように、アンコア１３９０は、例示の実施形態では、ＥＤ  ＲＡＭを介して実装されるシステムメモリ１３９９と通信する。また、アウト・オブ・オーダエンジン１３８０内の様々な実行ユニット１３８６が第１レベルキャッシュ１３７４と通信し、当キャッシュはまた中間レベルキャッシュ１３７６と通信することに留意されたい。また、追加のコア１３３０Ｎ−２〜１３３０ＮがＬＬＣ１３９５に連結されうることに留意されたい。図１３の実施形態ではこのような高いレベルで示されたが、多様な変更および追加的な構成が存在してよいことを理解すべきである。
【０１５１】
図１４に移ると、命令を実行する複数の実行ユニットを含んだプロセッサを備えて形成された例示的なコンピュータシステムのブロック図が図示されており、そこでは相互接続のうちの１または複数が本発明の実施形態に従う１または複数の特徴を実装する。システム１４００は、プロセッサ１４０２のようなコンポーネントを有しており、ここで記載される実施形態のような本発明に従って、論理を含んだ複数の実行ユニットを利用してデータ処理のためのアルゴリズムを実行する。システム１４００は、ＰＥＮＴＩＵＭ（登録商標）ＩＩＩ、ＰＥＮＴＩＵＭ（登録商標）４、Ｘｅｏｎ（商標）、Ｉｔａｎｉｕｍ、Ｓｃａｌｅ（商標）、および／またはＳｔｒｏｎｇＡＲＭ（商標）マイクロプロセッサに基づく代表的な処理システムであるが、（その他のマイクロプロセッサを有するＰＣ、エンジニアリングワークステーション、セットトップボックス等を含む）その他のシステムが用いられてもよい。一実施形態では、サンプルシステム１４００は、ワシントン、レドモンドのマイクロソフト社から利用可能なＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムのバージョンを実行するが、他のオペレーティングシステム（例えば、ＵＮＩＸ（登録商標）やリナックス（登録商標））、埋め込みソフトウェア、および／またはグラフィカルユーザインタフェースが、また、用いられてもよい。したがって、本発明の実施形態は、いかなる具体的なハードウェア回路およびソフトウェアの組み合わせにも限定されない。
【０１５２】
実施形態は、コンピュータシステムには限定されない。本発明の代替的実施形態は、ハンドヘルドデバイスや埋め込みアプリケーションのような他のデバイスにおいて利用されうる。ハンドヘルドデバイスの例としては、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、携帯情報端末（ＰＤＡ）、およびハンドヘルドＰＣを含む。埋め込みアプリケーションとしては、マイクロコントローラ、デジタルシグナルプロセッサ（ＤＳＰ）、システムオンチップ、ネットワークコンピュータ（ＮｅｔＰＣ），セットトップボックス、ネットワークハブ、ワイドエリアネットワーク（ＷＡＮ）スイッチ、少なくとも１つの実施形態に従って１または複数の命令を実行可能なその他の任意のシステム、を含むことができる。
【０１５３】
この図示された実施形態では、プロセッサ１４０２は、少なくとも１つの命令を実行するアルゴリズムを実装する１または複数の実行ユニット１４０８を有する。１つの実施形態が、単一プロセッサのデスクトップまたはサーバシステムのコンテクストで記載されてよいが、代替的実施形態は、マルチプロセッサシステムに含まれてもよい。システム１４００は、「ハブ」システムアーキテクチャの一例である。コンピュータシステム１４００は、データ信号を処理するプロセッサ１４０２を有する。１つの例示的な事例として、プロセッサ１４０２は、複合命令セットコンピュータ（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピュータ（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、命令セットの組み合わせを実装したプロセッサ、または、例えばデジタルシグナルプロセッサのような他の任意のプロセッサデバイス、を含む。プロセッサ１４０２は、プロセッサ１４０２とシステム１４００中の他のコンポーネントとの間でデータ信号を送信するプロセッサバス１４１０に結合される。システム１４００の要素（例えば、グラフィックスアクセラレータ１４１２、メモリコントローラハブ１４１６、メモリ１４２０、Ｉ／Ｏコントローラハブ１４２４、無線送受信器１４２６、フラッシュＢＩＯＳ１４２８、]ネットワークコントローラ１４３４、オーディオコントローラ１４３６、シリアル拡張ポート１４３８、Ｉ／Ｏコントローラ１４４０など）は、当業者に周知の従来の機能を実行する。
【０１５４】
一実施形態では、プロセッサ１４０２は、レベル１（Ｌ１）内部キャッシュメモリ１４０４を有する。アーキテクチャに応じて、プロセッサ１４０２は、単一の内部キャッシュまたはマルチレベル内部キャッシュを有してよい。他の実施形態は、特定の実装および必要に応じて、内部および外部キャッシュ両方の組み合わせを有する。レジスタファイル１４０６は、複数の異なるタイプのデータを、整数レジスタ、浮動小数点レジスタ、ベクトルレジスタ、バンクレジスタ、シャドウレジスタ、チェックポイントレジスタ、状態レジスタ、命令ポインタレジスタを含む様々なレジスタに格納する。
【０１５５】
整数のおよび浮動小数点の動作を実行する論理を有する実行ユニット１４０８が、また、プロセッサ１４０２内に存在する。一実施形態では、プロセッサ１４０２は、マイクロコードを格納するためのマイクロコード（ｕｃｏｄｅ）ＲＯＭ を有し、実行されると、特定のマクロ命令のためのアルゴリズムを実行するか、または複雑なシナリオを処理する。ここで、マイクロコードは、プロセッサ１４０２のための論理バグ／解決策を処理すべく、潜在的にアップデート可能である。一実施形態に対して、実行ユニット１４０８は、パックド命令セット１４０９を処理するための論理を含む。汎用プロセッサ１４０２の命令セットに、パックド命令セット１４０９を、それらの命令を実行するための関連する回路と共に含ませることによって、多くのマルチメディアアプリケーションによって使用される複数の動作が、汎用プロセッサ１４０２でパックドデータを用いることで実行されてよい。このように、パックドデータで動作を実行するためにそのプロセッサのデータバスの全幅を用いることにより、多くのマルチメディアアプリケーションが、加速され、より効率的に実行される。このことは、１または複数の動作および１つのデータ要素を一度に実行すべく、プロセッサのデータバスにわたって、より小さい複数のデータユニットを伝達する必要性を、潜在的に排除する。
【０１５６】
実行ユニット１４０８の代替的な実施形態が、マイクロコントローラ、組込みプロセッサ、グラフィックスデバイス、ＤＳＰ、および他のタイプの論理回路で用いられてよい。システム１４００は、メモリ１４２０を有する。メモリ１４２０は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイス、スタティックランダムアクセスメモリ（ＳＲＡＭ）デバイス、フラッシュメモリデバイス、またはその他のメモリデバイスを含む。メモリ１４２０は、プロセッサ１４０２により実行されるべきデータ信号によって表される命令および／またはデータを、格納する。
【０１５７】
任意の前述の特徴または本発明の態様が、図１４に例示された１または複数の相互接続で使用されてよい。例えば、プロセッサ１４０２の内部ユニットの連結のための、不図示のオンダイ相互接続（ＯＤＩ）が、上記の本発明の１または複数の態様を実装する。または、本発明はプロセッサバス１４１０（例えば、他に高性能コンピューティング相互接続として知られる）、メモリ１４２０への高帯域幅メモリパス１４１８、グラフィックスアクセラレータ１４１２への２地点間リンク（周辺構成要素相互接続（ＰＣＩｅ）準拠ファブリック）、コントローラハブ相互接続１４２２、Ｉ／Ｏ、または図示されたその他のコンポーネントを連結するためのその他の相互接続（例えば、ＵＳＢ、ＰＣＩ、ＰＣＩｅ）に関連する。そのようなコンポーネントの例としては、オーディオコントローラ１４３６、ファームウェアハブ（フラッシュＢＩＯＳ）１４２８、無線送受信器１４２６、データストレージ１４２４、ユーザ入力とキーボードインタフェース１４４２とを備えるレガシーＩ／Ｏコントローラ１４１０、ユニバーサルシリアルバス（ＵＳＢ）のようなシリアル拡張ポート１４３８、および、ネットワークコントローラ１４３４を含む。データストレージデバイス１４２４は、ハードディスクドライブ、フロッピディスクドライブ、ＣＤ−ＲＯＭデバイス、フラッシュメモリデバイス、または、その他の大容量ストレージデバイスを備えることができる。
【０１５８】
ここで図１５を参照すると、本発明の実施形態による第２のシステム１５００のブロック図が示される。図１５に示されるように、マルチプロセッサシステム１５００は２地点間相互接続システムであって、第１のプロセッサ１５７０と、２地点間相互接続１５５０を介して結合される第２のプロセッサ１５８０とを備える。プロセッサ１５７０および１５８０のそれぞれは、あるプロセッサのいくつかのバージョンであってよい。一実施形態では、１５５２および１５５４は、高性能アーキテクチャのような、シリアル２地点間コヒーレント相互接続ファブリックの一部である。結果として、本発明は、ＱＰＩアーキテクチャ内に実装されてよい。
【０１５９】
２つのプロセッサ１５７０、１５８０のみが図示されているが、本発明の範囲はこれには限定されないことが理解されるべきである。他の実施形態において、１または複数の追加のプロセッサが、所定のプロセッサに存在してよい。
【０１６０】
集積メモリコントローラユニット１５７２および１５８２をそれぞれ含んだ、プロセッサ１５７０および１５８０が示される。プロセッサ１５７０は、また、バスコントローラユニットの一部として、２地点間（Ｐ−Ｐ）インタフェース１５７６、１５７８を有し、同様に、第２のプロセッサ１５８０は、Ｐ−Ｐインタフェース１５８６および１５８８を有する。プロセッサ１５７０、１５８０は、Ｐ−Ｐインタフェース回路１５７８、１５８８を用いて、２地点間（Ｐ−Ｐ）インタフェース１５５０を介して情報を交換してよい。図１５に示されるように、ＩＭＣ１５７２および１５８２は、プロセッサをそれぞれのメモリ、即ち、メモリ１５３２およびメモリ１５３４に連結し、これらは、各プロセッサへ局所的に帰属するメインメモリの複数の部分であってよい。
【０１６１】
プロセッサ１５７０、１５８０は、それぞれ、２地点インタフェース回路１５７６、１５９４、１５８６、１５９８を用いて、個別のＰ−Ｐインタフェース１５５２、１５５４を介して、チップセット１５９０と情報を交換する。チップセット１５９０はまた、高性能グラフィックス相互接続１５３９に沿って、インタフェース回路１５９２を介して高性能グラフィックス回路１５３８と情報を交換する。
【０１６２】
共有キャッシュ（不図示）を、いずれかのプロセッサに、または両方のプロセッサの外部に有してよく、さらには、プロセッサが低電力モードに置かれた場合に、いずれかのまたは両方のプロセッサのローカルキャッシュ情報が共有キャッシュに格納されうるように、Ｐ−Ｐ相互接続を介してこれらのプロセッサに接続されてもよい。
【０１６３】
チップセット１５９０は、インタフェース１５９６を介して第１のバス１５１６に結合されてよい。一実施形態では、第１のバス１５１６は、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス、または、ＰＣＩ  Ｅｘｐｒｅｓｓバスまたは別の第３世代Ｉ／Ｏ相互接続バスのようなバスであってよいが、本発明の範囲は、これらには限定されない。
【０１６４】
図１５に示されるように、多様なＩ／Ｏデバイス１５１４が、第１のバス１５１６に、バスブリッジ１５１８とともに結合され、このブリッジは、第１のバス１５１６を第２のバス１５２０へと連結する。一実施形態では、第２のバス１５２０は、ＬｏｗＰｉｎＣｏｕｎｔ（ＬＰＣ）バスを有する。様々なデバイスが第２のバス１５２０に結合され、例えば、キーボードおよび／またはマウス１５２２、通信デバイス１５２７、ディスクドライブやその他の大容量ストレージデバイスのようなストレージユニット１５２８を有し、これらは一実施形態では、しばしば命令／コードおよびデータ１５３０を含む。さらに、オーディオＩ／Ｏ１５２４は、第２のバス１５２０に結合して、示される。その他の複数のアーキテクチャが可能であり、そこでは、含まれる複数のコンポーネントおよび複数の相互接続アーキテクチャが変更されてよい。例えば、図１の２地点間アーキテクチャの代わりに、システムは、マルチドロップバスやその他のアーキテクチャを実装してよい。
【０１６５】
次に図１６に移ると、本発明によるシステムオンチップ（ＳＯＣ）設計が図示される。具体的な例示的な事例として、ＳＯＣ１６００が、ユーザ機器（ＵＥ）に含まれる。一実施形態では、ＵＥとは、携帯電話、スマートフォン、タブレット、超薄型ノートブック、ブロードバンドアダプタ付ノートブック、または、その他の類似の通信デバイスのような、通信目的でエンドユーザにより使用される他の任意のデバイスを指す。ＵＥはしばしば基地局またはノードへと接続し、これらは潜在的に、事実上、ＧＳＭ（登録商標）ネットワークの移動局（ＭＳ）に対応する。
【０１６６】
ここで、ＳＯＣ１６００は、２つのコア、１６０６と１６０７とを備える。上記の議論と同様に、コア１６０６および１６０７は、命令セットアーキテクチャに適合してよく、例えば、インテル（登録商標）アーキテクチャコア（商標）ベースのプロセッサ、アドバンスト・マイクロ・デバイセズ社（ＡＭＤ）プロセッサ、ＭＩＰＳベースのプロセッサ、ＡＲＭベースのプロセッサ設計、またはそれらの顧客に加えて、それらのライセンシーや利用者のプロセッサなどである。コア１６０６および１６０７は、キャッシュ制御１６０８に結合され、この制御部は、システム１６００の他の部分と通信するバスインタフェースユニット１６０９およびＬ２キャッシュ１６１１に関連する。相互接続１６１０は、ＩＯＳＦ、ＡＭＢＡ、上述した他の相互接続等のオンチップ相互接続を有し、ここで述べた１または複数の態様を潜在的に実装する。
【０１６７】
相互接続１６１０は、他の複数のコンポーネントへの複数の通信チャネルを提供し、たとえば、ＳＩＭカードとインタフェースする加入者アイデンティティモジュール（ＳＩＭ）１６３０、ＳＯＣ１６００を初期化しブートすべくコア１６０６、１６０７によって実行するための起動コードを保持するブートＲＯＭ１６３５、外部メモリ（ＤＲＡＭ１６６０等）とインタフェースするＳＤＲＡＭコントローラ１６４０、不揮発性メモリ（フラッシュ１６６５等）とインタフェースするフラッシュコントローラ１６４５、周辺機器とインタフェースする周辺機器制御１６５０（シリアル周辺機器インタフェース等）、入力を表示し受信する（例えば、タッチが入力を可能とする）映像コーディック１６２０およびビデオインタフェース１６２５、グラフィックスに関連する計算を実行するＧＰＵ１６１５、等である。これらの任意のインタフェースが、ここで述べられた本発明の態様を組み込んでよい。
【０１６８】
追加的に、本システムでは、ブルートゥースモジュール１６７０、３Ｇモデム１６７５、ＧＰＳ１６８５、ＷｉＦｉ１６８５のような通信のための周辺機器を例示する。先に述べられたように、ＵＥは通信用に無線を有する。結果として、これらの周辺機器通信モジュールは、全てが必要というわけでは無い。しかしながら、あるＵＥの形態では、外部通信用の無線が備えられてもよい。
【０１６９】
本発明が限られた個数の実施形態に関して説明されたが、当業者であれば、それらからの様々な変更およびバリエーションを理解できよう。添付の請求項は、本発明の真の精神および範囲内において、そのような変更およびバリエーションの全てをカバーすることを意図している。
【０１７０】
設計は、様々なステージ、創作から製作へのシミュレーションまでを、経てよい。ある設計を表すデータは、多数のやり方で、その設計を表現してよい。第１に、シミュレーションにおいて有用であるように、ハードウェア記述言語または別の機能記述言語を用いて、ハードウェアが表されてよい。追加的に、論理および／または複数のトランジスタゲートを有する１つの回路レベルモデルが、その設計処理のいくつかのステージで生成されてよい。さらに、あるステージでは、大部分の設計が、ハードウェアモデルで様々なデバイスの物理的配置を表すデータのレベルに達する。従来の半導体製造技術が使用される場合、ハードウェアモデルを表すデータとは、集積回路の生産に用いられるマスクのための異なる複数のマスク層に、様々な特徴が存在するか存在しないかを特定するデータであってよい。設計の任意の表現において、データは、機械可読媒体に任意の形態で格納されてよい。メモリ、または、ディスク等の磁気若しくは光ストレージが、この機械可読媒体であってよく、変調された光または電気の波を介して送信される情報を、または、そうした情報を送信するために生成された情報を、格納する。コードまたは設計を、示しまたは搬送する電気的な搬送波が送信されるとき、その電気信号のコピー、バッファ処理、再送信が実行される範囲において、新たなコピーが作られる。したがって、通信プロバイダまたはネットワークプロバイダは、例えば搬送波へエンコードされた情報のような、本発明の複数の実施形態における複数の技術を具体化した物品を、有形の機械可読媒体に少なくとも一時的に格納してよい。
【０１７１】
本明細書中で用いられるモジュールとは、ハードウェア、ソフトウェア、および／またはファームウェアの任意の組み合わせを指す。一例として、モジュールは、マイクロコントローラのようなハードウェアを含み、そのマイクロコントローラによって実行されるように適合されたコードを格納する非一時的媒体に関連する。従って、一実施形態では、モジュールを参照するとはハードウェアを参照することであり、このハードウェアは、非一時的媒体に保持されるべきコードを認識および／または実行するように具体的に構成されている。さらに別の実施形態では、モジュールの使用とは、コードを含む非一時的媒体を参照することを指し、このコードは、予め定められた動作を実行すべく、マイクロコントローラによって実行されるように具体的に適合されている。さらに別の実施形態では、推測が可能であるように、モジュールという用語（この例では）が、マイクロコントローラおよび非一時的媒体の組み合わせを指してよい。一般には別個に図示されるモジュールの境界線は、しばしば変化し、潜在的には重なり合う。例えば、第１および第２のモジュールは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせを共有しつつ、その一方で、潜在的には、いくらかの独立したハードウェア、ソフトウェアまたはファームウェアを保持してよい。一実施形態では、論理という用語の使用には、トランジスタやレジスタのようなハードウェア、または、プログラム式論理デバイスのような他のハードウェアを含む。
【０１７２】
一実施形態では、"ように構成される"という用語は、指定されたまたは決定されたタスクを実行すべく、装置、ハードウェア、ロジックまたは要素を、配置する、組み立る、製造する、販売の申出をする、輸入する、および／または、設計することを指す。この例においては、動作していないそれらの装置や要素であっても、その指定されたタスクを実行するべく設計され、結合され、および／または相互接続されている場合には、依然として、指定されたタスクを実行する"ように構成され"ている。純粋に説明用の例として、論理ゲートは、動作の間は、０または１を提供してよい。しかし、イネーブル信号をクロックへ提供する"ように構成される"論理ゲートとは、必ずしも、１または０を提供しうる全ての潜在的な論理ゲートを含むわけではない。代わりに、この論理ゲートとは、動作の間に１または０の出力がクロックを有効にするように論理ゲートが結合されているような論理ゲートである。再度述べるが、"ように構成される"という用語の使用は必ずしも動作を必要とはせず、その代わりに、装置、ハードウェアおよび／または要素の隠れた状態に焦点を当てたものであって、その隠れた状態において、装置、ハードウェアおよび／または要素は、装置、ハードウェアおよび／または要素が動作しているときに特定のタスクを実行するように設計されている。
【０１７３】
さらに、"すべく"、"することができる"、"動作可能"という用語の使用は、一実施形態では、特定されたやり方でその装置、論理、ハードウェア、および／または要素を使用させるべく、装置、論理、ハードウェア、および／または要素が設計されていることを指す。上記したように、すべく、することができる、動作可能の使用は、装置、論理、ハードウェアおよび／または要素の隠れた状態を指し、この場合、その装置、論理、ハードウェアおよび／または要素は、動作をしているのではなく、特定されたやり方で装置の使用がなされるように設計がされている。
【０１７４】
本明細書中で用いられるように、値には、数、状態、論理状態、またはバイナリ論理状態についての任意の既知の表現を含んでよい。しばしば、論理レベル、ロジック値または論理値の使用は、１または０のレベルや値として称され、これらは単純にバイナリ論理状態を表す。例えば、１は高論理レベルを、０は低論理レベルを指す。一実施形態では、トランジスタまたはフラッシュセルのようなストレージセルは、単一の論理値または多重の論理値を保持することが可能であってよい。しかしながら、コンピュータシステムでは、他の値に関する表現が用いられてきた。例えば、１０進数の１０は、バイナリ値１０１０として、１６進数では文字Ａとして、表されてよい。従って、値とは、コンピュータシステムにおいて保持することが可能な情報についての任意の表現を含む。
【０１７５】
さらに、複数の状態が、複数の値または複数の値の複数の部分で表されてよい。一例として、論理１のような第１の値が、デフォルトまたは初期の状態を表してよく、これに対して、論理ゼロのような第２の値が、非デフォルト状態を表してよい。さらには一実施形態では、リセットおよび設定という用語は、デフォルトおよび更新された値または状態を、それぞれ指す。例えば、デフォルト値は潜在的に高論理値、即ち、リセットを含み、これに対して更新値は潜在的に低論理値、即ち、設定を含む。値の任意の組み合わせが、任意の状態の数を表すために使用されてよい。
【０１７６】
先に説明した方法、ハードウェア、ソフトウェア、ファームウェアまたはコードセットについての複数の実施形態が、機械アクセス可能な、機械可読な、コンピュータアクセス可能な、または、コンピュータ可読媒体であって、かつ処理要素によって実行可能な媒体に格納された命令またはコードによって、実装されうる。非一時的機械アクセス可能／可読媒体は、コンピュータや電子システム等の機械によって読み取り可能な形態で情報を提供する（即ち、格納および／または送信する）任意のメカニズムを有する。例えば、非一時的機械アクセス可能媒体は、スタティックＲＡＭ（ＳＲＡＭ）やダイナミックＲＡＭ（ＤＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）、ＲＯＭ、磁気または光ストレージ媒体、フラッシュメモリデバイス、電気ストレージデバイス、光ストレージデバイス、音響ストレージデバイス、一時的な（伝播された）信号（搬送波、赤外線信号、デジタル信号など）から受信した情報を保持するストレージデバイスにおけるその他の形態、などを有し、これらの一時的な信号は、情報をそれ自身から受信できる非一時的媒体とは区別される。
【０１７７】
本発明の実施形態を実行するための論理をプログラムするために用いられる命令は、ＤＲＡＭ、キャッシュ、フラッシュメモリ、その他のストレージのような、システムのメモリ内に格納されてよい。さらに、こうした命令は、ネットワークを介して、または、他のコンピュータ可読媒体を用いて、配信されうる。このように、機械可読媒体は、機械（例えば、コンピュータ）に可読な形で情報を格納しまたは送信するための任意のメカニズムを有してよく、これらに限定されるわけではないが、フロッピー（登録商標）ディスケット、光ディスク、コンパクトディスク、リードオンリメモリ（ＣＤ−ＲＯＭ）、光磁気ディスク、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、磁気または光カード、フラッシュメモリ、または、電気、光、音響、その他の形式の伝搬信号（搬送波、赤外線信号、デジタル信号等）でインタネットを通じて情報を送信するために用いられる有形の機械可読ストレージ、である。従って、コンピュータ可読媒体には、機械（例えばコンピュータ）によって可読な形式で電子命令や情報を格納または送信するのに適した任意のタイプの有形の機械可読媒体が含まれる。
【０１７８】
以下の例は、本明細書による実施形態に関連する。１または複数の実施形態は、一連の複数のトレーニングシーケンスを生成するための、装置、システム、機械可読ストレージ、機械可読媒体および方法を提供してよく、各トレーニングシーケンスはトレーニングシーケンスヘッダをそれぞれ有し、トレーニングシーケンスヘッダは、一連の複数のトレーニングシーケンスにわたってＤＣバランスがなされる。
【０１７９】
少なくとも１つの例では、一連の複数のトレーニングシーケンスは、１つのスーパーシーケンスに含まれる。
【０１８０】
少なくとも１つの例では、スーパーシーケンスは、ＥＯＳ（ｅｌｅｃｔｒｉｃａｌ  ｏｒｄｅｒｅｄ  ｓｅｔ）を有する反復シーケンスを備え、その後には複数のトレーニングシーケンスが続く。
【０１８１】
少なくとも１つの例では、スーパーシーケンスは複数のスーパーシーケンス型のうちの特定の１つであり、各スーパーシーケンス型はシリアルデータリンクの１または複数の状態にそれぞれ対応する。
【０１８２】
少なくとも１つの例では、これらの複数のスーパーシーケンス型は、検出状態に対応する検出スーパーシーケンスと、ループバック状態、コンフィギュレーション状態およびポーリング状態を有する一連の複数の状態に対応する第２スーパーシーケンスと、部分幅送信状態からの終了に対応する部分幅終了スーパーシーケンスと、を有する。
【０１８３】
少なくとも１つの例において、検出スーパーシーケンスの反復シーケンスは、ＥＩＥＯＳ（ｅｌｅｃｔｒｉｃ  ｉｄｌｅ  ｅｘｉｔ  ｏｒｄｅｒｅｄ  ｓｅｔ）を有するＥＯＳを備え、その後には７つの連続するトレーニングシーケンスの例が続き、このシーケンスは１０００単位インターバル毎に略１回繰り返される。
【０１８４】
少なくとも１つの例において、第２スーパーシーケンスの反復シーケンスは、ＥＩＥＯＳを有するＥＯＳを備え、その後には３１の連続するトレーニングシーケンスの例が続き、このシーケンスは４０００単位インターバル毎に略１回繰り返される。
【０１８５】
少なくとも１つの例において、部分幅終了スーパーシーケンスの反復シーケンスは、ＥＩＥＯＳを有するＥＯＳを備え、その後には７つの連続する高速トレーニングシーケンスの例が続き、このシーケンスは１０００単位インターバル毎に略１回繰り返される。
【０１８６】
少なくとも１つの例において、トレーニングシーケンスのそれぞれはトレーニングシーケンスペイロードを有し、トレーニングシーケンスペイロードはスクランブル処理され、トレーニングシーケンスヘッダは、アンスクランブル処理される。
【０１８７】
少なくとも１つの例において、ＥＯＳはアンスクランブル処理される。
【０１８８】
少なくとも１つの例において、トレーニングシーケンスペイロードは、擬似ランダムバイナリシーケンス（ＰＲＢＳ）を用いてスクランブル処理される。
【０１８９】
少なくとも１つの例において、ヘッダは、ＡＣＫ／ＮＡＫフィールドおよびトレーニングシーケンス型フィールドを有する。
【０１９０】
少なくとも１つの例において、トレーニングシーケンス型フィールドは、シリアルデータリンクの各状態に対応するトレーニングシーケンス型を特定するために、エンコードされる。
【０１９１】
１または複数の実施形態は、一連の複数のトレーニングシーケンスを受信するための装置、システム、機械可読ストレージ、機械可読媒体および方法を提供してよく、各トレーニングシーケンスはトレーニングシーケンスヘッダをそれぞれ有し、トレーニングシーケンスヘッダは、一連の複数のトレーニングシーケンスにわたってＤＣバランスがなされ、物理層論理はさらに一連の複数のトレーニングシーケンスヘッダのうちの１または複数のトレーニングシーケンスヘッダの複数の境界を検出する。
【０１９２】
少なくとも１つの例において、一連の複数のトレーニングシーケンスは、スーパーシーケンスの一部として受信され、スーパーシーケンスはＥＩＥＯＳを有する反復シーケンスを備え、その後には複数のトレーニングシーケンスが続く。
【０１９３】
スーパーシーケンスに基づいてデータリンクの状態を決定する。
【０１９４】
少なくとも１つの例において、状態は、少なくとも部分的に、シーケンスがスーパーシーケンスで繰り返される周波数から決定される。
【０１９５】
少なくとも１つの例において、状態は、少なくとも部分的に、複数のトレーニングシーケンスの個数から決定される。
【０１９６】
状態は、少なくとも部分的に、トレーニングシーケンスヘッダ情報から決定される。
【０１９７】
１または複数の実施形態は、複数のレーンのそれぞれにおいてそれぞれのスーパーシーケンスを受信するための装置、システム、機械可読ストレージ、機械可読媒体および方法を提供してよく、スーパーシーケンスはＥＯＳを有し、その後には複数のトレーニングシーケンスが続き、スーパーシーケンスに基づいて、複数のレーンのうちの少なくとも第１のレーンおよび第２のレーンの間の、レーン間スキューを検出する。
【０１９８】
少なくとも１つの例において、各トレーニングシーケンスがトレーニングシーケンスヘッダを有する。
【０１９９】
少なくとも１つの例において、スキューは、トレーニングシーケンスヘッダの端部に少なくとも部分的に基づいて検出される。
【０２００】
少なくとも１つの例において、スキューは、端部が第１のレーンよりも遅れて第２のレーンに到達するという識別に基づいて検出される。
【０２０１】
少なくとも１つの例において、トレーニングシーケンスヘッダはアンスクランブル処理されて送信され、トレーニングシーケンスの残りはスクランブル処理される。
【０２０２】
少なくとも１つの例において、トレーニングシーケンスの少なくともペイロードがスクランブル処理される。
【０２０３】
少なくとも１つの例において、ペイロードは、２３ビットのシードを有する２３ビットの擬似ランダムバイナリシーケンス（ＰＲＢＳ）を用いてスクランブル処理される。
【０２０４】
少なくとも１つの例において、ＰＲＢＳのシードは、スーパーシーケンスから検出されうる。
【０２０５】
少なくとも１つの例において、レーン間スキューが修正されうる。
【０２０６】
１または複数の実施形態は、装置、システム、機械可読ストレージ、機械可読媒体および方法を提供してよく、これらは、２またはそれ以上連続したシーケンスの例を備えるスーパーシーケンスを生成し、このシーケンスは一連の複数のトレーニングシーケンスが後に続くＥＯＳを有し、各トレーニングシーケンスの少なくとも一部は、それぞれのスクランブル値によってスクランブル処理される。
【０２０７】
少なくとも１つの例では、ＰＲＢＳのシードは、スクランブル処理同期フィールドから識別可能である。
【０２０８】
少なくとも１つの例では、そのシードは、スクランブル処理で使用されるＰＲＢＳにおける特定部分を示す。
【０２０９】
少なくとも１つの例において、スクランブル処理同期フィールドは、３バイトのペイロードを備える。
【０２１０】
少なくとも１つの例において、ＰＲＢＳの全体が、スクランブル処理で用いられる。
【０２１１】
少なくとも１つの例において、ＰＲＢＳの全体未満が、スクランブル処理で用いられる。
【０２１２】
１または複数の実施形態は、第１のデバイスおよび第２のデバイスを接続するリンクのレーンの適応のためのサンプル信号を受信するための装置、システム、機械可読ストレージ、機械可読媒体および方法を提供してよく、信号は、スーパーシーケンスと疑似ランダムシーケンスによってスクランブル処理されるべきスーパーシーケンスの少なくとも一部とを備え、サンプル信号に基づいて少なくとも１つの適応タスクを実行する。
【０２１３】
請求項６８の装置においてスーパーシーケンスは、ＥＯＳを有し、その後には複数の連続するトレーニングシーケンスが続く。
【０２１４】
少なくとも１つの例において、少なくとも１つの適応タスクは、サンプル信号からレーンの品質を決定することを含む。
【０２１５】
少なくとも１つの例において、少なくとも１つの適応タスクは、さらに、レーンの品質を決定することに基づいてサンプル信号の送信機へフィードバックを提供することを含む。
【０２１６】
少なくとも１つの例において、少なくとも１つの適応タスクは、さらに、レーンの品質を決定することに基づいてレーンの複数の特性を修正することを含む。
【０２１７】
１または複数の実施形態は、初期状態で複数のスーパーシーケンスを生成するための装置、システム、機械可読ストレージ、機械可読媒体および方法を提供してよく、各スーパーシーケンスはＥＯＳを有するシーケンスを備え、その後には一連の複数のトレーニングシーケンスが続き、各トレーニングシーケンスはサフィックスを有し、初期状態から送信リンク状態への遷移を示すデータシーケンスの開始（ＳＤＳ）を送信する。
【０２１８】
少なくとも１つの例では、サフィックスは、擬似乱数値により、ＳＤＳのエイリアスを防止する。
【０２１９】
少なくとも１つの例では、ＳＤＳの値は、擬似乱数値には含まれない。
【０２２０】
少なくとも１つの例では、擬似乱数値は、線形フィードバックシフトレジスタ（ＬＦＳＲ）によって生成される擬似ランダムバイナリシーケンス（ＰＲＢＳ）を有する。
【０２２１】
少なくとも１つの例では、ＥＩＥＯＳは、低周波数クロック信号をエミュレートし、ＳＤＳは、低周波数クロック信号よりも高い周波数のクロック信号をエミュレートする。
【０２２２】
少なくとも１つの例では、ＳＤＳは、スーパーシーケンスに割り込むために送信される。
【０２２３】
少なくとも１つの例では、ＳＤＳは、複数のトレーニングシーケンスのうちの特定の１つの中に送信される。
【０２２４】
少なくとも１つの例では、ＳＤＳは、ＥＯＳの特定の例の中に送信される。
【０２２５】
少なくとも１つの例では、ＳＤＳは、決定論的な配列制御信号に基づいて送信される。
【０２２６】
１または複数の実施形態は、初期状態で複数のスーパーシーケンスを受信するための装置、システム、機械可読ストレージ、機械可読媒体および方法を提供してよく、各スーパーシーケンスはＥＯＳを有するシーケンスを備え、その後には一連の複数のトレーニングシーケンスが続き、各トレーニングシーケンスはサフィックスを有し、初期状態から送信リンク状態への遷移を示すデータシーケンスの開始（ＳＤＳ）を受信する。
【０２２７】
少なくとも１つの例では、ＳＤＳは、決定論的な配列制御信号に基づいて送信される。
【０２２８】
１または複数の例は、さらに、リンクに結合されるように構成される物理層（ＰＨＹ）を提供することができ、このリンクは第１の個数のレーンを有し、ＰＨＹは２３ビットの擬似乱数ビットシーケンス（ＰＲＢＳ）を生成するためのセルフシードなストレージ要素を有し、ＰＨＹは、２３ビットのＰＲＢＳに基づいて、スクランブル処理されたトレーニングシーケンスを送信する。
【０２２９】
本明細書で"一実施形態"または"実施形態"と言及した場合それは、その実施形態に関連して記載された特定の特徴、構造、または特性が、本発明の少なくとも１つの実施形態に含まれることを意味する。従って、本明細書を通じて様々な箇所の"一実施形態で"または"実施形態で"という用語は、その同じ実施形態の全てを必ずしも意味しない。さらには、複数の特定の特徴、構造または特性が、１または複数の実施形態において、任意の適切なやり方で、適切に組み合されてよい。
【０２３０】
上述の明細書では、詳細な説明が、特定の例示的な複数の実施形態を参照しつつ行われた。しかしながら、添付の請求項で説明された本発明についてのより広い精神および範囲から逸脱することなく、多様な修正および変更をそれらに行ってよいことは明白であろう。従って、明細書および図面は、限定を意図したものではなく、例示的な意図とみなされる。さらに、上述のように実施形態やその他の例示的な用語を使用したことは、同じ実施形態または同じ例を必ずしも参照せず、異なり区別される実施形態を参照してもよいが、潜在的には同じ実施形態を参照してもよい。
本実施形態の例を下記の各項目として示す。
［項目１］
物理層論理、リンク層論理およびプロトコル層論理を有する層状スタックを備え、
前記物理層論理は一連の複数のトレーニングシーケンスを生成し、
各トレーニングシーケンスはトレーニングシーケンスヘッダをそれぞれ有し、
前記トレーニングシーケンスヘッダは、前記一連の複数のトレーニングシーケンスにわたってＤＣバランスがなされる、装置。
［項目２］
前記一連の複数のトレーニングシーケンスは、スーパーシーケンスに含まれる、項目１に記載の装置。
［項目３］
前記スーパーシーケンスは、ＥＯＳ（ｅｌｅｃｔｒｉｃａｌ  ｏｒｄｅｒｅｄ  ｓｅｔ）を有する反復シーケンスを備え、その後には複数のトレーニングシーケンスが続く、項目２に記載の装置。
［項目４］
前記スーパーシーケンスは複数のスーパーシーケンス型のうちの特定の１つであり、各スーパーシーケンス型はシリアルデータリンクの１または複数の状態にそれぞれ対応する、項目３に記載の装置。
［項目５］
前記複数のスーパーシーケンス型が、
検出状態に対応する検出スーパーシーケンスと、
ループバック状態、コンフィギュレーション状態およびポーリング状態を有する一連の複数の状態の１つに対応する第２スーパーシーケンスと、
部分幅送信状態からの終了に対応する部分幅終了スーパーシーケンスと、
を有する、項目４に記載の装置。
［項目６］
前記検出スーパーシーケンスの前記反復シーケンスは、ＥＩＥＯＳ（ｅｌｅｃｔｒｉｃ  ｉｄｌｅ  ｅｘｉｔ  ｏｒｄｅｒｅｄ  ｓｅｔ）を有するＥＯＳを備え、その後には７つの連続するトレーニングシーケンスのインスタンスが続き、
前記シーケンスは１０００単位インターバル毎に略１回繰り返される、項目５に記載の装置。
［項目７］
前記第２スーパーシーケンスの前記反復シーケンスは、ＥＩＥＯＳを有するＥＯＳを備え、その後には３１の連続するトレーニングシーケンスのインスタンスが続き、
前記シーケンスは４０００単位インターバル毎に略１回繰り返される、項目５に記載の装置。
［項目８］
前記部分幅終了スーパーシーケンスの前記反復シーケンスは、ＥＩＥＯＳを有するＥＯＳを備え、その後には７つの連続する高速トレーニングシーケンスのインスタンスが続き、
前記シーケンスは１０００単位インターバル毎に略１回繰り返される、項目５に記載の装置。
［項目９］
前記トレーニングシーケンスのそれぞれはトレーニングシーケンスペイロードを有し、
前記トレーニングシーケンスペイロードはスクランブル処理され、
前記トレーニングシーケンスヘッダは、スクランブル処理されない、項目３に記載の装置。
［項目１０］
前記ＥＯＳはスクランブル処理されない、項目９に記載の装置。
［項目１１］
前記トレーニングシーケンスペイロードは、擬似ランダムバイナリシーケンス（ＰＲＢＳ）を用いてスクランブル処理される、項目９に記載の装置。
［項目１２］
前記ヘッダは、ＡＣＫ／ＮＡＫフィールドおよびトレーニングシーケンス型フィールドを有する、項目１に記載の装置。
［項目１３］
前記トレーニングシーケンス型フィールドは、シリアルデータリンクの各状態に対応するトレーニングシーケンス型を特定するために符号化される、項目１２に記載の装置。
［項目１４］
物理層論理、リンク層論理およびプロトコル層論理を有する層状スタックを備え、
前記物理層論理は一連の複数のトレーニングシーケンスを受信し、各トレーニングシーケンスはトレーニングシーケンスヘッダをそれぞれ有し、前記トレーニングシーケンスヘッダは、前記一連の複数のトレーニングシーケンスにわたってＤＣバランスがなされ、
前記物理層論理はさらに前記一連の複数のトレーニングシーケンスヘッダのうちの１または複数のトレーニングシーケンスヘッダの複数の境界を検出する、装置。
［項目１５］
前記一連の複数のトレーニングシーケンスは、スーパーシーケンスの一部として受信され、
前記スーパーシーケンスは、ＥＩＥＯＳを有する反復シーケンスを備え、その後には複数の前記トレーニングシーケンスが続く、項目１４に記載の装置。
［項目１６］
前記物理層論理は、前記スーパーシーケンスに基づいてデータリンクの状態を決定する、項目１５に記載の装置。
［項目１７］
前記状態は、少なくとも部分的に、前記シーケンスが前記スーパーシーケンスで繰り返される頻度から決定される、項目１６に記載の装置。
［項目１８］
前記状態は、少なくとも部分的に、前記複数のトレーニングシーケンスの個数から決定される、項目１６に記載の装置。
［項目１９］
前記状態は、少なくとも部分的に、トレーニングシーケンスヘッダフィールド情報から決定される、項目１６に記載の装置。
［項目２０］
前記ＥＩＥＯＳおよび複数のトレーニングシーケンスヘッダはスクランブル処理されず、
複数のトレーニングシーケンスペイロードはスクランブルされる、項目１５に記載の装置。
［項目２１］
複数のトレーニングシーケンスペイロードは、擬似ランダムバイナリシーケンス（ＰＲＢＳ）を用いてスクランブル処理される、項目１６に記載の装置。
［項目２２］
前記ヘッダは、ＡＣＫ／ＮＡＫフィールドおよびトレーニングシーケンス型フィールドを有する、項目１４に記載の装置。
［項目２３］
シリアルデータリンクのためのステートマシンの複数の状態に含まれる特定の状態に入ろうと試みる段階と、
前記状態を示すために、前記データリンク上で別のデバイスへスーパーシーケンスを送信する段階と、
を備え、
前記スーパーシーケンスは、ＥＩＥＯＳから始まる反復シーケンスを有し、その後には予め定められた個数のトレーニングシーケンスが続き、
前記複数のトレーニングシーケンスのそれぞれが、ＤＣバランスされたヘッダを有する、方法。
［項目２４］
前記スーパーシーケンスの少なくとも一部をスクランブル処理する段階をさらに備える、項目２３に記載の方法。
［項目２５］
擬似ランダムバイナリシーケンス（ＰＲＢＳ）が、前記スーパーシーケンスの前記一部をスクランブル処理するために用いられる、項目２４に記載の方法。
［項目２６］
前記複数のトレーニングシーケンスヘッダおよびＥＩＥＯＳは、スクランブル処理されずに送信される、項目２５に記載の方法。
［項目２７］
前記スーパーシーケンスの前記一部が、前記複数のトレーニングシーケンスにおける複数のペイロードを有する、項目２６に記載の方法。
［項目２８］
第１のデバイス、および
シリアルデータリンクを用いて、前記第１のデバイスと通信可能に結合された第２のデバイス、
を備え、
前記第２のデバイスは、少なくとも１つのプロセッサにより実行される物理層モジュールを有し、
前記データリンクのためのステートマシンの複数の状態に含まれる特定の状態に入ろうと試み、
前記状態を示すために、前記データリンク上で前記第１のデバイスへスーパーシーケンスを送信し、
前記スーパーシーケンスは、ＥＩＥＯＳから始まる反復シーケンスを有し、その後には予め定められた個数のトレーニングシーケンスが続き、
前記複数のトレーニングシーケンスのそれぞれが、ＤＣバランスされたヘッダを有する、システム。
［項目２９］
前記第１のデバイスは、マイクロプロセッサを有する、項目２８に記載のシステム。
［項目３０］
前記第２のデバイスは、第２のマイクロプロセッサを有する、項目２９に記載のシステム。
［項目３１］
前記第２のデバイスは、グラフィックスアクセラレータを有する、項目２９に記載のシステム。
［項目３２］
前記第１のデバイスは、
前記スーパーシーケンスを検証し、前記スーパーシーケンスに少なくとも部分的に基づいて前記状態を特定する、物理層モジュールを有する、項目２８に記載のシステム。
［項目３３］
前記第１のデバイスの前記物理層モジュールはさらに、前記スーパーシーケンスにおける、スクランブル処理された複数の部分をデスクランブル処理する、項目３２に記載のシステム。
［項目３４］
物理層論理、リンク層論理およびプロトコル層論理を有する層状スタックを備え、
前記物理層論理は、
複数のレーンのそれぞれにおいてそれぞれのスーパーシーケンスを受信し、前記スーパーシーケンスはＥＯＳを有し、その後には複数のトレーニングシーケンスが続き、
前記スーパーシーケンスに基づいて、前記複数のレーンのうちの少なくとも第１のレーンおよび第２のレーンの間の、レーン間スキューを検出する、装置。
［項目３５］
各トレーニングシーケンスがトレーニングシーケンスヘッダを有する、項目３４に記載の装置。
［項目３６］
前記スキューは、前記トレーニングシーケンスヘッダの端部に少なくとも部分的に基づいて検出される、項目３５に記載の装置。
［項目３７］
前記スキューは、前記端部が前記第１のレーンよりも遅れて前記第２のレーンに到達するという識別に基づいて検出される、項目３６に記載の装置。
［項目３８］
前記トレーニングシーケンスヘッダはスクランブル処理されずに送信され、前記トレーニングシーケンスの残りはスクランブル処理される、項目３６に記載の装置。
［項目３９］
前記トレーニングシーケンスの少なくともペイロードがスクランブル処理される、項目３４に記載の装置。
［項目４０］
前記ペイロードは、２３ビットのシードを有する２３ビットの擬似ランダムバイナリシーケンス（ＰＲＢＳ）を用いてスクランブル処理される、項目３９に記載の装置。
［項目４１］
物理層論理は、さらに、前記ＰＲＢＳの前記シードを特定する、項目４０に記載の装置。
［項目４２］
前記スキューは、少なくとも部分的に、前記ＰＲＢＳのスクランブル処理から検出される、項目４０に記載の装置。
［項目４３］
前記ＰＲＢＳは、前記スーパーシーケンスから検出される、項目４２に記載の装置。
［項目４４］
前記物理層論理は、さらに、前記レーン間スキューを修正する、項目３４に記載の装置。
［項目４５］
物理層論理、リンク層論理およびプロトコル層論理を有する層状スタックを備え、
前記物理層論理は、
２またはそれ以上の連続したシーケンスのインスタンスを備えるスーパーシーケンスを生成し、前記シーケンスは一連の複数のトレーニングシーケンスが後に続くＥＯＳを有し、
各トレーニングシーケンスの少なくとも一部は、それぞれのスクランブル値によってスクランブル処理される、装置。
［項目４６］
前記ＥＯＳは、ＥＩＥＯＳを有する、項目４５に記載の装置。
［項目４７］
前記スクランブル値は、擬似乱数値を有する、項目４５に記載の装置。
［項目４８］
前記擬似乱数値は、線形フィードバックシフトレジスタ（ＬＦＳＲ）によって生成される擬似ランダムバイナリシーケンス（ＰＲＢＳ）を有する、項目４７に記載の装置。
［項目４９］
前記ＬＦＳＲは、フィボナッチＬＦＳＲを有する、項目４８に記載の装置。
［項目５０］
前記トレーニングシーケンスは、ヘッダおよびペイロードを有し、
前記ペイロードは前記スクランブル処理された部分に含まれ、前記ヘッダはスクランブル処理されないままとされる、項目４８に記載の装置。
［項目５１］
前記ペイロードは、スクランブル処理同期フィールドを有する、項目５０に記載の装置。
［項目５２］
前記ＰＲＢＳのシードは、前記スクランブル処理同期フィールドから識別可能である、項目５１に記載の装置。
［項目５３］
前記シードは、前記スクランブル処理で使用される前記ＰＲＢＳの特定部分を示す、項目５２に記載の装置。
［項目５４］
前記スクランブル処理同期フィールドは、３バイトの前記ペイロードを備える、項目５１に記載の装置。
［項目５５］
前記ＰＲＢＳの全体が、前記スクランブル処理で用いられる、項目４８に記載の装置。
［項目５６］
前記ＰＲＢＳの全体未満が、前記スクランブル処理で用いられる、項目４８に記載の装置。
［項目５７］
前記スーパーシーケンスは、試験コンテクストで生成される、項目５６に記載の装置。
［項目５８］
前記ＥＯＳは、スクランブル処理されないままとされる、項目４５に記載の装置。
［項目５９］
トレーニングシーケンスのそれぞれが、それぞれトレーニングシーケンスヘッダを有し、前記トレーニングシーケンスヘッダは、スクランブル処理されず、かつ、ＤＣバランスされる、項目４５に記載の装置。
［項目６０］
物理層論理、リンク層論理およびプロトコル層論理を有する層状スタックを備え、
前記物理層論理は、
２またはそれ以上の連続したシーケンスのインスタンスを備えるスーパーシーケンスを受信し、前記シーケンスは一連の複数のトレーニングシーケンスが後に続くＥＯＳを有し、
各トレーニングシーケンスの少なくとも一部がスクランブル処理され、
前記スクランブル処理で使用される擬似乱数値の識別に基づいて前記複数のトレーニングシーケンスをデスクランブル処理する、装置。
［項目６１］
前記擬似乱数値は、線形フィードバックシフトレジスタ（ＬＦＳＲ）によって生成される擬似ランダムバイナリシーケンス（ＰＲＢＳ）を有する、項目６０に記載の装置。
［項目６２］
前記ＰＲＢＳは、前記一連の複数のトレーニングシーケンスの少なくとも１つにおけるヘッダのスクランブル処理同期フィールドから特定される、項目６１に記載の装置。
［項目６３］
前記ＰＲＢＳは、前記スクランブル処理同期フィールドで特定されたシードから特定される、項目６２に記載の装置。
［項目６４］
前記物理層論理は、前記シードをローカルなＬＦＳＲへ読み込み、かつ前記ＰＲＢＳと同期する、項目６３に記載の装置。
［項目６５］
前記トレーニングシーケンスヘッダがスクランブル処理されず、前記スクランブル処理同期フィールドは、前記トレーニングシーケンスのスクランブル処理されたペイロードに含まれ、前記物理層論理は前記トレーニングシーケンスヘッダの端部から前記スクランブル処理同期フィールドを特定する、項目６２に記載の装置。
［項目６６］
前記ＬＦＳＲは、２３ビットのフィボナッチＬＦＳＲを有する、項目６１に記載の装置。
［項目６７］
物理層論理、リンク層論理およびプロトコル層論理を有する層状スタックを備え、
前記物理層論理は、
第１のデバイスおよび第２のデバイスを接続するリンクのレーンの適応のためのサンプル信号を受信し、前記信号はスーパーシーケンスを有し、前記スーパーシーケンスの少なくとも一部は疑似ランダムシーケンスによってスクランブル処理され、
前記サンプル信号に基づいて少なくとも１つの適応タスクを実行する、装置。
［項目６８］
前記スーパーシーケンスは、ＥＯＳを有し、その後には複数の連続するトレーニングシーケンスが続く、項目６７に記載の装置。
［項目６９］
前記ＥＯＳは、ＥＩＥＯＳを有する、項目６８に記載の装置。
［項目７０］
前記トレーニングシーケンスのそれぞれは、トレーニングシーケンスヘッダおよびトレーニングシーケンスペイロードを有する、項目６９に記載の装置。
［項目７１］
各トレーニングシーケンスヘッダは、スクランブル処理されず、各トレーニングシーケンスペイロードはスクランブル処理される、項目７０に記載の装置。
［項目７２］
前記ＥＯＳは、スクランブル処理されないままとされる、項目７１に記載の装置。
［項目７３］
前記実質的にランダムな値は、擬似乱数値を有する、項目６８に記載の装置。
［項目７４］
前記擬似乱数値は、線形フィードバックシフトレジスタ（ＬＦＳＲ）によって生成される擬似ランダムバイナリシーケンス（ＰＲＢＳ）を有する、項目７３に記載の装置。
［項目７５］
前記ＬＦＳＲは、２３ビットのフィボナッチＬＦＳＲを有する、項目７４に記載の装置。
［項目７６］
前記少なくとも１つの適応タスクは、前記サンプル信号から前記レーンの品質を決定することを含む、項目７４に記載の装置。
［項目７７］
前記少なくとも１つの適応タスクは、さらに、前記レーンの前記品質を決定することに基づいて前記サンプル信号の送信機へフィードバックを提供することを含む、項目７６に記載の装置。
［項目７８］
前記少なくとも１つの適応タスクは、さらに、前記レーンの前記品質を決定することに基づいて前記レーンの複数の特性を修正することを含む、項目７７に記載の装置。
［項目７９］
物理層論理、リンク層論理およびプロトコル層論理を有する層状スタックを備え、
前記物理層論理は、
初期状態で複数のスーパーシーケンスを生成し、各スーパーシーケンスはＥＯＳを有するシーケンスを備え、その後には一連の複数のトレーニングシーケンスが続き、各トレーニングシーケンスはサフィックスを有し、
前記初期状態から送信リンク状態への遷移を示すデータシーケンスの開始（ＳＤＳ）を送信する、装置。
［項目８０］
各トレーニングシーケンスの少なくとも一部は、それぞれの擬似乱数値によってスクランブル処理される、項目７９に記載の装置。
［項目８１］
前記サフィックスは、前記擬似乱数値により、前記ＳＤＳのエイリアスを防止する、項目８０に記載の装置。
［項目８２］
前記ＳＤＳの前記値は、前記擬似乱数値には含まれない、項目８１に記載の装置。
［項目８３］
前記擬似乱数値は、線形フィードバックシフトレジスタ（ＬＦＳＲ）によって生成される擬似ランダムバイナリシーケンス（ＰＲＢＳ）を有する、項目８１に記載の装置。
［項目８４］
前記ＬＦＳＲは、２３ビットのフィボナッチＬＦＳＲを有する、項目８３に記載の装置。
［項目８５］
前記ＥＯＳは、ＥＩＥＯＳを有する、項目８０に記載の装置。
［項目８６］
前記ＥＩＥＯＳは、低周波数クロック信号をエミュレートする、項目８５に記載の装置。
［項目８７］
前記ＳＤＳは、前記低周波数クロック信号よりも高い周波数のクロック信号をエミュレートする、項目８６に記載の装置。
［項目８８］
前記ＳＤＳは、前記スーパーシーケンスに割り込むために送信される、項目８０に記載の装置。
［項目８９］
前記ＳＤＳは、前記複数のトレーニングシーケンスのうちの特定の１つの中で送信される、項目８８に記載の装置。
［項目９０］
前記ＳＤＳは、前記ＥＯＳの特定のインスタンスの中で送信される、項目８９に記載の装置。
［項目９１］
前記ＳＤＳは、決定論的な配列制御信号に基づいて送信される、項目８９に記載の装置。
［項目９２］
物理層論理、リンク層論理およびプロトコル層論理を有する層状スタックを備え、
前記物理層論理は、
初期状態で複数のスーパーシーケンスを受信し、各スーパーシーケンスはＥＯＳを有するシーケンスを備え、その後には一連の複数のトレーニングシーケンスが続き、各トレーニングシーケンスはサフィックスを有し、
前記初期状態から送信リンク状態への遷移を示すデータシーケンスの開始（ＳＤＳ）を受信する、装置。
［項目９３］
各トレーニングシーケンスの少なくとも一部は、それぞれの擬似乱数値によってスクランブル処理される、項目９２に記載の装置。
［項目９４］
前記サフィックスは、前記擬似乱数値によって、前記ＳＤＳのエイリアスを防止する、項目９３に記載の装置。
［項目９５］
前記ＳＤＳの前記値は、前記擬似乱数値には含まれない、項目９４に記載の装置。
［項目９６］
前記擬似乱数値は、線形フィードバックシフトレジスタ（ＬＦＳＲ）によって生成される擬似ランダムバイナリシーケンス（ＰＲＢＳ）を備える、項目９４に記載の装置。
［項目９７］
前記ＬＦＳＲは、２３ビットのフィボナッチＬＦＳＲを有する、項目９６に記載の装置。
［項目９８］
前記ＥＯＳは、ＥＩＥＯＳを有する、項目９３に記載の装置。
［項目９９］
前記ＥＩＥＯＳは、低周波数クロック信号をエミュレートする、項目９８に記載の装置。
［項目１００］
前記ＳＤＳは、前記低周波数クロック信号よりも高い周波数のクロック信号をエミュレートする、項目９９に記載の装置。
［項目１０１］
前記ＳＤＳは、前記スーパーシーケンスに割り込むために送信される、項目９３に記載の装置。
［項目１０２］
前記ＳＤＳは、前記複数のトレーニングシーケンスのうちの特定の１つの中で送信される、項目１０１に記載の装置。
［項目１０３］
前記ＳＤＳは、前記ＥＯＳの特定のインスタンスの中で送信される、項目１０２に記載の装置。
［項目１０４］
前記ＳＤＳは、決定論的な配列制御信号に基づいて送信される、項目１０２に記載の装置。
［項目１０５］
リンクに結合されるように構成される物理層（ＰＨＹ）を備え、前記リンクは第１の個数のレーンを有し、前記ＰＨＹは２３ビットの擬似乱数ビットシーケンス（ＰＲＢＳ）を生成するためのセルフシードなストレージ要素を有し、前記ＰＨＹは、前記２３ビットのＰＲＢＳに基づいて、スクランブル処理されたトレーニングシーケンスを送信する、装置。
【図１】
0006423040.tif 000004
【図２】
0006423040.tif 000005
【図３】
0006423040.tif 000006
【図４】
0006423040.tif 000007
【図５】
0006423040.tif 000008
【図６】
0006423040.tif 000009
【図７】
0006423040.tif 000010
【図８】
0006423040.tif 000011
【図９】
0006423040.tif 000012
【図１０】
0006423040.tif 000013
【図１１】
0006423040.tif 000014
【図１２】
0006423040.tif 000015
【図１３】
0006423040.tif 000016
【図１４】
0006423040.tif 000017
【図１５】
0006423040.tif 000018
【図１６】
0006423040.tif 000019