(57)【要約】      （修正有）【課題】複数の物理プロセッサ間のインターコネクトの能力を向上する。【解決手段】物理層ロジックは、物理リンクの１以上のデータレーン上でデータを受信し、物理リンクの別のレーン上で、有効なデータが１以上のデータレーン上で有効信号のアサートに続くことを特定する有効信号を受信し、物理リンクの別のレーン上で、１以上のデータレーン上のデータのタイプを特定するストリーム信号を受信する。【選択図】図７
2020201967.tif 000002
【特許請求の範囲】
【請求項１】
物理層インタフェースを備える装置であって、
前記物理層インタフェースは、
クロック信号をサポートするクロックレーンと、
１つ以上の制御信号をサポートする制御インタフェースであって、前記１つ以上の制御信号は、状態機械に従ってリンク状態において遷移させる制御信号を含む、制御インタフェースと、
データを伝送する複数のデータレーンと、
有効信号の伝送をサポートする有効信号レーンであって、前記データレーン上でのデータの伝送は、前記有効信号レーン上での前記有効信号の伝送にアラインされる、有効信号レーンと、
を備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピューティングシステムに関し、（限定ではないが）特に、ポイントツーポイントインターコネクトに関する。
【背景技術】
【０００２】
半導体処理及びロジック設計における進歩は、集積回路デバイス上に存在することができるロジックの量の増大を可能にしてきた。当然の結果として、コンピュータシステム構成は、システムにおける単一又は複数の集積回路から、個々の集積回路上に存在する複数のコア、複数のハードウェアスレッド及び複数の論理プロセッサ、並びにそのようなプロセッサ内に一体化された他のインタフェースへと展開した。プロセッサ又は集積回路は通常、単一の物理プロセッサダイを備え、ここで、プロセッサダイは任意の数のコア、ハードウェアスレッド、論理プロセッサ、インタフェース、メモリ、コントローラハブ等を含むことができる。
【０００３】
より小さなパッケージにより多くの処理能力を収める能力が高まった結果、より小型のコンピューティングデバイスの人気が高まっている。スマートフォン、タブレット、超薄型ノートブック及び他のユーザ機器が飛躍的に成長している。一方、これらのより小型のデバイスは、フォームファクタを超えるデータストレージ及び複雑な処理の双方についてサーバに頼る。したがって、高性能のコンピューティング市場（すなわち、サーバ空間）における需要も増大している。例えば、最近のサーバにおいて、通常、複数のコアを有する単一のプロセッサのみでなく、計算能力を増大させるための複数の物理プロセッサ（複数のソケットとも呼ばれる）も存在する。しかし、処理能力は、コンピューティングシステム内のデバイス数と共に増えるため、ソケットと他のデバイスとの間の通信がよりクリティカルになる。
【０００４】
実際、インターコネクトは、電気通信を主に処理していた、より従来的なマルチドロップバスから、高速通信を促進する本格的なインターコネクトアーキテクチャへと成長している。不都合なことに、未来のプロセッサへの需要として、既存のインターコネクトアーキテクチャの能力に対し、対応する需要を更に高いレートで消費することが課されている。
【図面の簡単な説明】
【０００５】
【図１】インターコネクトアーキテクチャを含むコンピューティングシステムの一実施形態を示す。
【図２】階層化スタックを含むインターコネクトアーキテクチャの一実施形態を示す。
【図３】インターコネクトアーキテクチャ内で生成又は受信されるリクエスト又はパケットの一実施形態を示す。
【図４】インターコネクトアーキテクチャのための送信機及び受信機の対の一実施形態を示す。
【図５】マルチチップパッケージの一実施形態を示す。
【図６】マルチチップパッケージリンク（ＭＣＰＬ）の単純化されたブロック図である。
【図７】例示的なＭＣＰＬにおける例示的なシグナリングの表現である。
【図８】例示的なＭＣＰＬにおけるデータレーンを示す単純化されたブロック図である。
【図９】ＭＣＰＬの一実施形態における例示的なクロストークキャンセル技法を示す単純化されたブロック図である。
【図１０】ＭＣＰＬの一実施形態における例示的なクロストークキャンセルコンポーネントを示す単純化された回路図である。
【図１１】ＭＣＰＬの単純化されたブロック図である。
【図１２】論理ＰＨＹインタフェース（ＬＰＩＦ）を用いて複数のプロトコルの上位層ロジックとインタフェースするＭＣＰＬの単純化されたブロック図である。
【図１３】リンクのリカバリに関連した例示的なＭＣＰＬにおける例示的なシグナリングの表現である。
【図１４Ａ】例示的なＭＣＰＬのレーン上でのデータの例示的なビットマッピングである。
【図１４Ｂ】例示的なＭＣＰＬのレーン上でのデータの例示的なビットマッピングである。
【図１４Ｃ】例示的なＭＣＰＬのレーン上でのデータの例示的なビットマッピングである。
【図１５】例示的なリンク状態機械の一部の図である。
【図１６】リンクの例示的なセンタリングに関連付けられたフローの図である。
【図１７】例示的なリンク状態機械の図である。
【図１８】低電力状態に入るためのシグナリングの図である。
【図１９】マルチコアプロセッサを備えるコンピューティングシステムのためのブロック図の一実施形態を示す。
【図２０】マルチコアプロセッサを備えるコンピューティングシステムのためのブロック図の別の実施形態を示す。
【図２１】プロセッサのためのブロック図の一実施形態を示す。
【図２２】プロセッサを備えるコンピューティングシステムのためのブロック図の別の実施形態を示す。
【図２３】複数のプロセッサを含むコンピューティングシステムのためのブロックの一実施形態を示す。
【図２４】システムオンチップ（ＳｏＣ）として実装される例示的なシステムを示す。
【発明を実施するための形態】
【０００６】
様々な図面における同様の参照番号及び符号は同様の要素を示す。
【０００７】
以下の説明において、本発明の完全な理解をもたらすために、特定のタイプのプロセッサ及びシステム構成、特定のハードウェア構造、特定のアーキテクチャ及びマイクロアーキテクチャの詳細、特定のレジスタ構成、特定の命令タイプ、特定のシステムコンポーネント、特定の測定値／高さ、特定のプロセッサパイプラインステージ及び動作の例等の多数の特定の詳細が示される。しかしながら、当業者には、これらの特定の詳細が、本発明を実施するのに用いられる必要がないことが明らかであろう。他の例では、特定の及び代替的なプロセッサアーキテクチャ、説明されるアルゴリズムのための特定の論理回路／コード、特定のファームウェアコード、特定のインターコネクト動作、特定の論理構成、特定の製造技法及び材料、特定のコンパイラ実装、コードでのアルゴリズムの特定の表現、特定のパワーダウン及びパワーゲーティング技法／ロジック、並びにコンピューティングシステムの他の特定の動作の詳細等の、よく知られたコンポーネント又は方法は、本発明を不要に曖昧にすることを回避するために、詳細に説明されていない。
【０００８】
以下の実施形態は、コンピューティングプラットフォーム又はマイクロプロセッサ等の特定の集積回路におけるエネルギー節減及びエネルギー効率を参照して説明される場合があるが、他の実施形態は、他のタイプの集積回路及び論理デバイスに適用可能である。本明細書において説明される実施形態の同様の技法及び教示は、より良好なエネルギー効率及びエネルギー節減から同様に利益を受けることができる他のタイプの回路又は半導体デバイスに適用することができる。例えば、開示される実施形態は、デスクトップコンピュータシステム又はＵｌｔｒａｂｏｏｋｓ（商標）に限定されない。また、ハンドヘルドデバイス、タブレット、他の薄型ノートブック、システムオンチップ（ＳＯＣ）デバイス及び埋込みアプリケーション等の他のデバイスにおいて用いられる場合もある。ハンドヘルドデバイスのいくつかの例は、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、携帯情報端末（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）及びハンドヘルドＰＣを含む。埋込みアプリケーションは通常、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、システムオンチップ、ネットワークコンピュータ（ＮｅｔＰＣ）、セットトップボックス、ネットワークハブ、広域ネットワーク（ＷＡＮ）スイッチ、又は以下で教示する機能及び動作を実行することができる任意の他のシステムを含む。更に、本明細書において記載される装置、方法及びシステムは、物理的なコンピューティングデバイスに限定されず、エネルギー節減及びエネルギー効率のためのソフトウェア最適化にも関係することができる。以下の説明において容易に明らかとなるように、本明細書に記載される方法、装置及びシステムの実施形態は（ハードウェア、ファームウェア、ソフトウェア又はそれらの組合せのいずれにおいて参照されていようと）、性能の懸案事項とバランスをとられた「環境に優しい技術（ｇｒｅｅｎ  ｔｅｃｈｎｏｌｏｇｙ）」に不可欠である。
【０００９】
コンピューティングシステムの進歩に伴い、コンピューティングシステム内のコンポーネントがより複雑になっている。結果として、最適なコンポーネント動作のための帯域幅要件が満たされることを確実にするために、コンポーネント間で結合し通信するためのインターコネクトアーキテクチャもますます複雑になっている。更に、様々な市場区分は、インターコネクトアーキテクチャの様々な態様が市場の需要に適合することを求める。例えば、サーバはより高い性能を要求する一方、モバイルエコシステムは、場合によっては、電力節減のために全体性能を犠牲にすることができる。しかし、電力節減を最大にしながら、可能な限り最高の性能を提供することがほとんどのファブリックの単一の目的である。以下において、本明細書において記載される本発明の態様から潜在的に利益を得る複数のインターコネクトが検討される。
【００１０】
１つのインターコネクトファブリックアーキテクチャは、周辺コンポーネントインターコネクト（ＰＣＩ）エクスプレス（ＰＣＩｅ）アーキテクチャを備える。ＰＣＩｅの主な目標は、複数の市場区分、すなわち、クライアント（デスクトップ及びモバイル）、サーバ（標準及び企業）、並びに埋込みデバイス及び通信デバイスにまたがって、様々なベンダからのコンポーネント及びデバイスがオープンアーキテクチャにおいて相互運用することを可能にすることである。ＰＣＩ  Ｅｘｐｒｅｓｓは、多岐にわたる未来の計算及び通信プラットフォームについて定義される高性能の汎用Ｉ／Ｏインターコネクトである。使用モデル、ロード−ストアアーキテクチャ及びソフトウェアインタフェース等のいくつかのＰＣＩ属性がその改訂を通じて維持されているのに対し、以前のパラレルバス実装は、高度にスケーリング可能で完全にシリアルのインタフェースに置き換えられている。ＰＣＩ  Ｅｘｐｒｅｓｓのより近時のバージョンは、ポイントツーポイントインターコネクト、スイッチベースの技術及びパケット化されたプロトコルにおける進歩を利用して、新たなレベルの性能及び特徴をもたらしている。電力管理、サービス品質（ＱｏＳ）、ホットプラグ／ホットスワップサポート、データ完全性、エラーハンドリングが、ＰＣＩ  Ｅｘｐｒｅｓｓによってサポートされる進化した数ある特徴のうちのいくつかである。
【００１１】
図１を参照すると、１組のコンポーネントをインターコネクトするポイントツーポイントリンクから構成されるファブリックの一実施形態が示されている。システム１００は、コントローラハブ１１５に結合されたプロセッサ１０５及びシステムメモリ１１０を備える。プロセッサ１０５は、マイクロプロセッサ、ホストプロセッサ、埋込みプロセッサ、コプロセッサ又は他のプロセッサ等の任意の処理要素を含む。プロセッサ１０５は、フロントサイドバス（ＦＳＢ）１０６を通じてコントローラハブ１１５に結合される。１つの実施形態では、ＦＳＢ１０６は以下で説明するようなシリアルポイントツーポイントインターコネクトである。別の実施形態では、リンク１０６は、異なるインターコネクト規格に準拠する、シリアルの、差動インターコネクトアーキテクチャを含む。
【００１２】
システムメモリ１１０は、ランダムアクセスメモリ（ＲＡＭ）、不揮発性（ＮＶ）メモリ、又はシステム１００内のデバイスによってアクセス可能な他のメモリ等の任意のメモリデバイスを含む。システムメモリ１１０は、メモリインタフェース１１６を通じてコントローラハブ１１５に結合される。メモリインタフェースの例は、ダブルデータレート（ＤＤＲ）メモリインタフェース、デュアルチャネルＤＤＲメモリインタフェース、及びダイナミックＲＡＭ（ＤＲＡＭ）メモリインタフェースを含む。
【００１３】
１つの実施形態では、コントローラハブ１１５は、周辺コンポーネントインターコネクトエクスプレス（ＰＣＩｅ又はＰＣＩＥ）相互接続階層におけるルートハブ、ルートコンプレックス、又はルートコントローラである。コントローラハブ１１５の例は、チップセット、メモリコントローラハブ（ＭＣＨ）、ノースブリッジ、インターコネクトコントローラハブ（ＩＣＨ）、サウスブリッジ及びルートコントローラ／ハブを含む。多くの場合、チップセットという用語は、２つの物理的に別個のコントローラハブ、すなわち、インターコネクトコントローラハブ（ＩＣＨ）に結合されたメモリコントローラハブ（ＭＣＨ）を指す。現行のシステムは、多くの場合、プロセッサ１０５に一体化されたＭＣＨを含む一方、コントローラ１１５は、以下で説明するのと同様の方式でＩ／Ｏデバイスと通信することに留意されたい。いくつかの実施形態では、ピアツーピアルーティングは、オプションでルートコンプレックス１１５を通じてサポートされる。
【００１４】
ここで、コントローラハブ１１５は、シリアルリンク１１９を通じてスイッチ／ブリッジ１２０に結合される。インタフェース／ポート１１７及び１２１とも呼ばれる場合がある入出力モジュール１１７及び１２１は、コントローラハブ１１５とスイッチ１２０との間で通信を提供するための階層化プロトコルスタックを含む／実装する。１つの実施形態では、複数のデバイスがスイッチに１２０結合されることが可能である。
【００１５】
スイッチ／ブリッジ１２０は、パケット／メッセージを、デバイス１２５からアップストリームに、すなわちルートコンプレックスに向かって階層を上がってコントローラハブ１１５へ、及びダウンストリームに、すなわち、ルートコントローラから離れるように階層を下がって、プロセッサ１０５又はシステムメモリ１１０からデバイス１２５へルーティングする。１つの実施形態において、スイッチ１２０は、複数の仮想ＰＣＩ間ブリッジデバイスの論理アセンブリと呼ばれる。デバイス１２５は、Ｉ／Ｏデバイス、ネットワークインタフェースコントローラ（ＮＩＣ）、アドインカード、オーディオプロセッサ、ネットワークプロセッサ、ハードドライブ、ストレージデバイス、ＣＤ／ＤＶＤ  ＲＯＭ、モニタ、プリンタ、マウス、キーボード、ルータ、ポータブルストレージデバイス、Ｆｉｒｅｗｉｒｅデバイス、ユニバーサルシリアルバス（ＵＳＢ）デバイス、スキャナ及び他の入出力デバイス等の電子システムに結合される任意の内部又は外部のデバイス又はコンポーネントを含む。ＰＣＩｅにおいて多くの場合、デバイス等の専門語はエンドポイントと呼ばれる。詳細に示されていないが、デバイス１２５は、レガシＰＣＩデバイス又は他のバージョンのＰＣＩデバイスをサポートするためのＰＣＩｅ対ＰＣＩ／ＰＣＩ−Ｘブリッジを含むことができる。ＰＣＩｅにおけるエンドポイントデバイスは、多くの場合に、レガシ、ＰＣＩｅ又はルートコンプレックスが一体化されたエンドポイントとして分類される。
【００１６】
グラフィックアクセラレータ１３０もシリアルリンク１３２を通じてコントローラハブ１１５に結合される。１つの実施形態では、グラフィックアクセラレータ１３０はＭＣＨに結合され、ＭＣＨはＩＣＨに結合される。そして、スイッチ１２０、及びこれに応じてＩ／Ｏデバイス１２５はＩＣＨに結合される。Ｉ／Ｏモジュール１３１及び１１８はまた、階層化プロトコルスタックを実施してグラフィックアクセラレータ１３０とコントローラハブ１１５との間で通信する。上記のＭＣＨの検討と同様に、グラフィックコントローラ又はグラフィックアクセラレータ１３０自体がプロセッサ１０５に一体化されてもよい。
【００１７】
図２を参照すると、階層化プロトコルスタックの一実施形態が示されている。階層化プロトコルスタック２００は、クイックパスインターコネクト（ＱＰＩ）スタックＰＣIｅスタック、次世代高性能コンピューティングインターコネクトスタック又は他の階層化スタック等の任意の形態の階層化通信スタックを含む。図１〜図４を参照してすぐ下で行う検討は、ＰＣＩｅスタックに関係しているが、同じ概念を他のインターコネクトスタックに適用してもよい。１つの実施形態では、プロトコルスタック２００は、トランザクション層２０５、リンク層２１０及び物理層２２０を含むＰＣＩｅプロトコルスタックである。図１のインタフェース１１７、１１８、１２１、１２２、１２６及び１３１等のインタフェースは、通信プロトコルスタック２００として表すことができる。通信プロトコルスタックとしての表現は、プロトコルスタックを実装する／含むモジュール又はインタフェースと呼ぶこともできる。
【００１８】
ＰＣＩ  Ｅｘｐｒｅｓｓは、パケットを用いてコンポーネント間で情報を通信する。パケットは、送信コンポーネントから受信コンポーネントに情報を搬送するように、トランザクション層２０５及びデータリンク層２１０において形成される。送信されたパケットが他の層を通じて流れるとき、これらのパケットは、これらの層においてパケットを処理するのに必要な追加情報を用いて拡張される。受信側において、逆のプロセスが行われ、パケットは、それらの物理層２２０表現からデータリンク層２１０表現に変換され、最終的に（トランザクション層パケットの場合）、受信デバイスのトランザクション層２０５によって処理することができる形態に変換される。
【００１９】
トランザクション層
１つの実施形態では、トランザクション層２０５は、デバイスの処理コアと、データリンク層２１０及び物理層２２０等のインターコネクトアーキテクチャとの間のインタフェースを提供する。これに関して、トランザクション層２０５の主な役割は、パケット（すなわち、トランザクション層パケット又はＴＬＰ）の組立て及び分解である。トランザクション層２０５は、通常、ＴＬＰのためのクレジットベースのフロー制御を管理する。ＰＣＩｅは分割トランザクション、すなわち、時間で分かれたリクエスト及び応答を用いたトランザクションを実施し、ターゲットデバイスが応答のためのデータを収集する間にリンクが他のトラフィックを搬送することを可能にする。
【００２０】
加えて、ＰＣＩｅはクレジットベースのフロー制御を利用する。この方式において、デバイスは、トランザクション層２０５内の受信バッファごとに初期クレジット量を公表する（ａｄｖｅｒｔｉｓｅ）。図１のコントローラハブ１１５等の、リンクの反対端の外部デバイスが、各ＴＬＰによって消費されるクレジット数をカウントする。トランザクションがクレジット限界を超えない場合、トランザクションを送信することができる。応答の受信時、クレジット量がリストアされる。クレジット方式の利点は、クレジット限界に達していないならば、クレジットの戻りのレイテンシが性能に影響を及ぼさないことである。
【００２１】
１つの実施形態では、４つのトランザクションアドレス空間が、構成アドレス空間、メモリアドレス空間、入出力アドレス空間及びメッセージアドレス区間を含む。メモリ空間トランザクションは、メモリによりマッピングされたロケーションに／からデータを転送するための読出しリクエスト及び書込みリクエストのうちの１以上を含む。１つの実施形態では、メモリ空間トランザクションは、２つの異なるアドレスフォーマット、例えば、３２ビットアドレス等の短いアドレスフォーマット、又は６４ビットアドレス等の長いアドレスフォーマットを用いることが可能である。構成空間トランザクションが、ＰＣＩｅデバイスの構成空間にアクセスするために用いられる。構成空間へのトランザクションは、読出しリクエスト及び書込みリクエストを含む。メッセージ空間トランザクション（又は、単にメッセージ）は、ＰＣＩｅエージェント間の帯域内通信をサポートするように定義される。
【００２２】
したがって、１つの実施形態では、トランザクション層２０５がパケットヘッダ／ペイロード２０６を組み立てる。現在のパケットヘッダ／ペイロードのためのフォーマットは、ＰＣＩｅ仕様ウェブサイトにおけるＰＣＩｅ仕様において得ることができる。
【００２３】
図３を簡単に参照すると、ＰＣＩｅトランザクション記述子の一実施形態が示されている。１つの実施形態において、トランザクション記述子３００は、トランザクション情報を搬送するためのメカニズムである。これに関して、トランザクション記述子３００は、システム内のトランザクションの識別をサポートする。他の潜在的な使用は、デフォルトのトランザクション順序及びトランザクションとチャネルとの関連付けの変更の追跡を含む。
【００２４】
トランザクション記述子３００は、グローバル識別子フィールド３０２と、属性フィールド３０４と、チャネル識別子フィールド３０６とを含む。示される例において、ローカルトランザクション識別子フィールド３０８と、ソース識別子フィールド３１０とを含むグローバル識別子フィールド３０２が示される。１つの実施形態において、グローバルトランザクション識別子３０２は全ての未処理のリクエストについて一意である。
【００２５】
１つの実施態様によれば、ローカルトランザクション識別子フィールド３０８は、リクエスト側エージェントによって生成されるフィールドであり、そのリクエスト側エージェントに対し完了を要求する全ての未処理のリクエストについて一意である。更に、この例では、ソース識別子３１０はＰＣＩｅ階層内のリクエスト元エージェントを一意に識別する。したがって、ソースＩＤ３１０と共に、ローカルトランザクション識別子３０８フィールドは、階層ドメイン内のトランザクションのグローバル識別を提供する。
【００２６】
属性フィールド３０４は、トランザクションの特性及び関係を指定する。これに関して、属性フィールド３０４は、トランザクションのデフォルトのハンドリングの変更を可能にする追加の情報を提供するのに潜在的に用いられる。１つの実施形態では、属性フィールド３０４は、優先度フィールド３１２と、予約済みフィールド３１４と、順序付けフィールド３１６と、非スヌープフィールド３１８とを含む。ここで、優先度サブフィールド３１２は、トランザクションに優先度を割り当てるようにイニシエータによって変更され得る。予約済み属性フィールド３１４は、未来のために、又はベンダが定義した使用のために予約済みのままにされる。優先度又はセキュリティ属性を用いた可能な使用モデルは、予約済み属性フィールドを用いて実施され得る。
【００２７】
この例では、順序付け属性フィールド３１６は、デフォルトの順序付け規則を変更することができる、順序付けタイプを伝達するオプション情報を供給するために用いられる。１つの実施態様によれば、順序付け属性「０」はデフォルトの順序付け規則が適用されることを示し、順序属性「１」は、緩和された順序付けを表す。緩和された順序付けでは、書込みは同じ方向の書込みをパスすることができ、読出し完了は同じ方向の書込みをパスすることができる。スヌープ属性フィールド３１８は、トランザクションがスヌープされているか否かを判断するのに利用される。示すように、チャネルＩＤフィールド３０６は、トランザクションが関連付けられているチャネルを識別する。
【００２８】
リンク層
データリンク層２１０とも呼ばれるリンク層２１０は、トランザクション層２０５と物理層２２０との間の中間ステージとしての役割を果たす。１つの実施形態では、データリンク層２１０の役割は、リンクとして２つのコンポーネント間でトランザクション層パケット（ＴＬＰ）を交換するための信頼性の高いメカニズムを提供することである。データリンク層２１０の一方の側は、トランザクション層２０５によって組み立てられたＴＬＰを受容し、パケットシーケンス識別子２１１、すなわち識別番号又はパケット番号を適用し、誤り検出コード、すなわちＣＲＣ２１２を計算し適用し、変更されたＴＬＰを、物理層を越えて外部デバイスに送信するために物理層２２０に提出する。
【００２９】
物理層
１つの実施形態では、物理層２２０は、パケットを外部デバイスに物理的に送信するための論理サブブロック２２１及び電気サブブロック２２２を備える。ここで、論理サブブロック２２１は、物理層２２１の「デジタル」機能を担当する。これに関して、論理サブブロックは、物理的サブブロック２２２による送信のために発信情報を準備する送信部と、受信した情報を識別及び準備し、その後リンク層２１０に渡す受信機部とを含む。
【００３０】
物理ブロック２２２は、送信機及び受信機を含む。送信機は、論理サブブロック２２１によってシンボルを供給され、送信機がこのシンボルをシリアル化し、外部デバイスに送信する。受信機は、外部デバイスからのシリアル化されたシンボルを供給され、受信した信号をビットストリームに変換する。ビットストリームはシリアル化解除され、論理サブブロック２２１に供給される。１つの実施形態では、８ｂ／１０ｂ送信コードが用いられる。ここで、１０ビットシンボルが送信／受信される。ここで、特殊なシンボルを用いて、パケットがフレーム２２３を用いてフレーム化される。加えて、１つの例では、受信機は着信シリアルストリームからリカバリされたシンボルクロックも提供する。
【００３１】
上記で示したように、トランザクション層２０５、リンク層２１０及び物理層２２０はＰＣＩｅプロトコルスタックの特殊な実施形態を参照して検討されているが、階層化プロトコルスタックはそのように限定されない。実際、任意の階層化プロトコルを含める／実装することができる。例として、階層化プロトコルとして表されるポート／インタフェースは、（１）パケットを組み立てる第１の層、すなわち、トランザクション層と、パケットを配列する第２の層、すなわちリンク層と、パケットを送信する第３の層、すなわち物理層とを含む。特殊な例として、共通標準インタフェース（ＣＳＩ：ｃｏｍｍｏｎ  ｓｔａｎｄａｒｄ  ｉｎｔｅｒｆａｃｅ）階層化プロトコルが利用される。
【００３２】
次に図４を参照すると、ＰＣＩｅシリアルポイントツーポイントファブリックの一実施形態が示されている。ＰＣＩｅシリアルポイントツーポイントリンクの一実施形態が示されているが、シリアルポイントツーポイントリンクはシリアルデータを送信するための任意の送信パスを含むので、シリアルポイントツーポイントリンクはそのように限定されない。示す実施形態では、基本ＰＣＩｅリンクは、２つの低電圧の差動駆動信号対、すなわち送信対４０６／４１１及び受信対４１２／４０７を含む。したがって、デバイス４０５は、データをデバイス４１０に送信するための送信ロジック４０６と、デバイス４１０からデータを受信するための受信ロジック４０７とを含む。換言すれば、２つの送信経路、すなわち、経路４１６及び４１７、並びに２つの受信経路、すなわち経路４１８及び４１９がＰＣＩｅリンクに含まれる。
【００３３】
送信パスは、伝送線、銅線、光回線、無線通信チャネル、赤外線通信リンク又は他の通信パス等の、データを伝送するための任意のパスを指す。デバイス４０５及びデバイス４１０等の２つのデバイス間の接続は、リンク４１５等のリンクと呼ばれる。リンクは、１つのレーンをサポートすることができ、各レーンは、１組の差動信号対（送信用の１対、受信用の１対）を表す。帯域幅をスケーリングするために、リンクはｘＮによって表される複数のレーンを集約することができ、ここで、Ｎは、１、２、４、８、１２、１６、３２、６４又はそれより広いもの等の任意のサポートされるリンク幅である。
【００３４】
差動対は、差動信号を伝送するための、線４１６及び４１７等の２つの伝送パスを指す。例として、線４１６が低電圧レベルから高電圧レベルに切り替わるとき、すなわち立ち上がりエッジのとき、線４１７は高い論理レベルから低い論理レベルに駆動し、すなわち立ち下がりエッジとなる。差動信号は、潜在的に、より良好なシグナルインテグリティ、すなわち相互結合、電圧オーバシュート／アンダーシュート、リンギング等のような、より良好な電気特性を実証する。これによって、より高速な送信周波数を可能にするより良好なタイミングウィンドウが可能になる。
【００３５】
図５は、例示的なマルチチップパッケージリンク（ＭＣＰＬ）５２０を用いて通信可能に接続される２つ以上のチップ又はダイ（例えば、５１０、５１５）を含む例示的なマルチチップパッケージ５０５を示す単純化されたブロック図５００である。図５は、例示的なＭＣＰＬ５２０を用いて相互接続された２つ（以上）のダイの例を示しているが、ＭＣＰＬの実施に関して本明細書において説明される原理及び特徴は、数ある潜在的な例の中でも、２つ以上のダイ（例えば、５１０、５１５）を接続すること、ダイ（又はチップ）をダイ上にない別のコンポーネントに接続すること、ダイをパッケージ（例えば５０５）上にない別のデバイス又はダイに接続すること、ダイをＢＧＡパッケージに接続すること、インタポーザ上パッチ（ＰＯＩＮＴ：Ｐａｔｃｈ  ｏｎ  Ｉｎｔｅｒｐｏｓｅｒ）の実装を含む、ダイ（例えば５１０）と他のコンポーネントとを接続する任意のインターコネクト又はリンクに適用することができることを理解されたい。
【００３６】
一般的に、マルチチップパッケージ（例えば、５０５）は、複数の集積回路（ＩＣ）、半導体ダイ又は他のディスクリートコンポーネント（例えば、５１０、５１５）が統一基板（例えば、シリコン又は他の半導体基板）上にパッケージ化され、これにより、組み合わされたコンポーネントを（例えば、より大型のＩＣであるかのように）単一のコンポーネントとして使用することを促進する、電子パッケージとすることができる。場合によっては、より大型のコンポーネント（例えば、ダイ５１０、５１５）は、それ自体が、システムオンチップ（ＳｏＣ）、マルチプロセッサチップ、又はデバイス上、例えば単一のダイ（例えば、５１０、５１５）上に複数のコンポーネント（例えば、５２５〜５３０及び５４０〜５４５）を含む他のコンポーネント等のＩＣシステムであり得る。マルチチップパッケージ５０５は、潜在的に複数のディスクリートコンポーネント及びシステムから複雑で様々なシステムを構築する柔軟性を提供することができる。例えば、数多くの例の中でも、ダイ５１０、５１５の各々は、２つの異なるエンティティによって製造されるか又は他の形で提供され、パッケージ５０５のシリコン基板が更に第３のエンティティによって提供されてもよい。更に、マルチチップパッケージ５０５内のダイ及び他のコンポーネントは、それ自体が、デバイス（例えば、それぞれ５１０、５１５）内でコンポーネント（例えば、５２５〜５３０及び５４０〜５４５）間の通信のためのインフラストラクチャを提供するインターコネクト又は他の通信ファブリック（例えば、５３５、５５０）を含むことができる。様々なコンポーネント及びインターコネクト（例えば、５３５、５５０）は、潜在的に複数の異なるプロトコルをサポート又は使用することができる。更に、ダイ（例えば、５１０、５１５）間の通信は、潜在的に、複数の異なるプロトコルを介したダイ上の様々なコンポーネント間のトランザクションを含むことができる。相互接続されることを求められるコンポーネント（及び所望のトランザクション）の特定の組合せに基づく、高度に特殊化され、高価で、パッケージ固有の解決策を用いる従来の解決策では、マルチチップパッケージ上のチップ（又はダイ）間で通信を提供するメカニズムを設計することは困難である可能性がある。
【００３７】
本明細書内で記載される例、システム、アルゴリズム、装置、ロジック及び特徴は、上記で特定した問題のうちの少なくともいくつかの対処することができる。これらの問題には、潜在的に、本明細書において明示的に言及されていない多くの他の問題を含む。例えば、いくつかの実施態様では、ホストデバイス（例えば、ＣＰＵ）又は他のデバイスを、ホストと同じパッケージ内に配置されたコンパニオンチップに接続するための高帯域幅、低電力、低レイテンシインタフェースを提供することができる。そのようなマルチチップパッケージリンク（ＭＣＰＬ）は、複数のパッケージオプション、複数のＩ／Ｏプロトコル、並びに信頼性、可用性及びサービス可能性（ＲＡＳ：Ｒｅａｌｉａｂｉｌｉｔｙ，  Ａｖａｉｌａｂｉｌｉｔｙ，  ａｎｄ  Ｓｅｒｖｉｃｅａｂｉｌｉｔｙ）機能をサポートすることができる。更に、物理層（ＰＨＹ）は電気層及び論理層を含むことができ、最大で約４５ｍｍ、場合によっては約４５ｍｍを超えるチャネル長を含む、より長いチャネル長をサポートすることができる。いくつかの実施態様では、例示的なＭＣＰＬが、８Ｇｂ／ｓ〜１０Ｇｂ／ｓを超えるデータレートを含む高いデータレートで動作することができる。
【００３８】
ＭＣＰＬの１つの例示的な実施態様では、ＰＨＹ電気層は、従来のマルチチャネルインターコネクト解決策（例えば、マルチチャネルＤＲＡＭ  Ｉ／Ｏ）に対し改善を行い、例えば、例として、数ある潜在的な例の中でも、調整された中間レール終端、低電力アクティブクロストークキャンセル、回路冗長性、ビットごとのデューティサイクル補正及びデスキュー、ラインコーディング及び送信機等化を含む、複数の特徴によってデータレート及びチャネル構成を拡張することができる。
【００３９】
ＭＣＰＬの１つの例示的な実施態様では、インターコネクトが電気層を越えて複数のプロトコルをルーティングすることも可能にしながら、（例えば、電気層特徴が）データレート及びチャネル構成を拡張することを更に支援することができる、ＰＨＹ論理層を実施することができる。そのような実施態様は、プロトコルにとらわれず、潜在的に任意の既存の又は未来のインターコネクトプロトコルと共に機能するように設計されたモジュール式共通物理層を提供し定義することができる。
【００４０】
図６を参照すると、マルチチップパッケージリンク（ＭＣＰＬ）の例示的な実施態様を含むシステムの少なくとも一部を表す単純化されたブロック図６００が示される。第１のデバイス６０５（例えば、１以上のサブコンポーネントを含む第１のダイ）を第２のデバイス６１０（例えば、１以上の他のサブコンポーネントを含む第２のダイ）と接続する物理的電気接続（例えば、レーンとして実装されるワイヤ）を用いてＭＣＰＬを実装することができる。図６００の高レベルの表現に示す特定の例では、（チャネル６１５、６２０における）全ての信号は単一指向性とすることができ、データ信号がアップストリーム及びダウンストリーム双方のデータ転送を有するためのレーンを提供することができる。図６のブロック図６００は、第１のコンポーネント６０５をアップストリームコンポーネントと呼び、第２のコンポーネント６１０をダウンストリームコンポーネントと呼び、データを送信する際に用いられるＭＣＰＬの物理レーンをダウンストリームチャネル６１５と呼び、（コンポーネント６１０から）データを受信するために用いられるレーンをアップストリームチャネル６２０と呼ぶが、デバイス６０５、６１０間のＭＣＰＬを、デバイス間でデータの送信及び受信の双方を行うために各デバイスによって用いることができることを理解されたい。
【００４１】
１つの例示的な実施態様では、ＭＣＰＬは、電気的ＭＣＰＬ  ＰＨＹ６２５ａ、６２５ｂ（又は、まとめて６２５）及び実行可能なロジックを実施するＭＣＰＬ論理ＰＨＹ６３０ａ、６３０ｂ（又は、まとめて６３０）を含む物理層（ＰＨＹ）を提供することができる。電気又は物理ＰＨＹ６２５は、データがデバイス６０５、６１０間で通信される際に介する物理接続を提供することができる。信号調整コンポーネント及びロジックは、リンクの高いデータレート及びチャネル構成機能を確立するために、物理ＰＨＹ６２５に関連して実施することができる。これは、いくつかの用途では、約４５ｍｍ以上の長さの高度にクラスタ化された物理接続を伴うことができる。論理ＰＨＹ６３０は、ＭＣＰＬを介した通信に用いられる潜在的に複数の様々なプロトコル間のクロッキング、（例えば、リンク層６３５ａ、６３５ｂの）リンク状態管理、及びプロトコル多重化を促進するためのロジックを含むことができる。
【００４２】
１つの例示的な実施態様では、物理ＰＨＹ６２５は、チャネル（例えば、６１５、６２０）ごとに１組のデータレーンを含むことができ、この１組のデータレーンを介して帯域内データを送信することができる。この特定の例では、アップストリームチャネル６１５及びダウンストリームチャネル６２０の各々に５０個のデータレーンが提供されるが、レイアウト及び電力の制約、所望の用途、デバイス制約等によって許容されるとおりに任意の他の数のレーンを用いることができる。各チャネルは、チャネル用のストローブ信号又はクロック信号のための１以上の専用レーンと、チャネル用の有効信号のための１以上の専用レーンと、ストリーム信号のための１以上の専用レーンと、リンク状態機械管理又はサイドバンド信号のための１以上の専用レーンとを更に含むことができる。物理ＰＨＹはサイドバンドリンク６４０を更に含むことができ、サイドバンドリンク６４０は、場合によっては、数ある例の中でも、デバイス６０５、６１０を接続するＭＣＰＬの状態遷移及び他の属性を調整するのに用いられる双方向低周波数制御信号リンクとすることができる。
【００４３】
上記で示したように、ＭＣＰＬの実施を用いて複数のプロトコルをサポートすることができる。実際に、各デバイス６０５、６１０に複数の独立したトランザクション層６５０ａ、６５０ｂを設けることができる。例えば、各デバイス６０５、６１０は、数ある中でも、ＰＣＩ、ＰＣＩｅ、ＱＰＩ、Ｉｎｔｅｌのダイ内インターコネクト（ＩＤＩ：Ｉｎ−Ｄｉｅ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）等の２つ以上のプロトコルをサポートし利用することができる。ＩＤＩは、コア、最終レベルキャッシュ（ＬＬＣ）、メモリ、グラフィック及びＩＯコントローラ間で通信するためにダイ上で用いられるコヒーレントなプロトコルである。イーサネット（登録商標）プロトコル、インフィニバンドプロトコル及び他のＰＣＩｅファブリックベースのプロトコルを含む他のプロトコルもサポートすることができる。論理ＰＨＹ及び物理ＰＨＹの組合せは、数ある例の中でも、１つのダイ上のＳｅｒＤｅｓＰＨＹ（ＰＣＩｅ、イーサネット（登録商標）、インフィニバンド又は他の高速ＳｅｒＤｅｓ）を、他のダイ上に実装されたその上位層に接続するダイ間インターコネクトとしても用いることができる。
【００４４】
論理ＰＨＹ６３０は、ＭＣＰＬにおけるこれらの複数のプロトコル間の多重化もサポートすることができる。例えば、専用ストリームレーンを用いて、チャネルのデータレーン上で実質的に同時に送信されるデータにいずれのプロトコルを適用するべきかを特定するエンコードされたストリーム信号をアサートすることができる。更に、論理ＰＨＹ６３０を用いて、様々なプロトコルがサポート又はリクエストすることができる様々なタイプのリンク状態遷移を交渉することができる。場合によっては、チャネルの専用ＬＳＭ＿ＳＢレーンを介して送信されたＬＳＭ＿ＳＢ信号を、サイドバンドリンク６４０と共に用いて、デバイス６０５、６１０間のリンク状態遷移を通信及び交渉することができる。更に、リンクトレーニング、誤り検出、スキュー検出、デスキュー、及び従来のインターコネクトの他の機能を、部分的に論理ＰＨＹ６３０を用いて交換又は統制することができる。例えば、各チャネル内の１以上の専用の有効信号レーンを介して送信される有効信号を用いて、数ある例の中でも、リンクアクティビティをシグナリングし、スキュー、リンクエラーを検出し、他の機能を実現することができる。図６の特定の例では、チャネルごとに複数の有効なレーンが提供される。例えば、チャネル内のデータレーンは、（物理的にかつ／又は論理的に）バンドル化又はクラスタ化することができ、有効なレーンをクラスタごとに提供することができる。更に、場合によっては、数ある例の中でも、チャネル内の複数のデータレーンクラスタ内のクラスタごとに専用ストローブ信号の提供も行う複数のストローブレーンを提供することができる。
【００４５】
上記で示したように、論理ＰＨＹ６３０を用いて、ＭＣＰＬによって接続されたデバイス間で送信されるリンク制御信号を交渉し、管理することができる。いくつかの実施態様では、論理ＰＨＹ６３０は、ＭＣＰＬを介して（すなわち、帯域内で）リンク層制御メッセージを送信するのに用いることができるリンク層パケット（ＬＬＰ）生成ロジック６６０を含むことができる。そのようなメッセージはチャネルのデータレーンを介して送信することができ、ストリームレーンは、データが、数ある例の中でも、リンク層制御データ等のリンク層間メッセージングであることを特定する。ＬＬＰモジュール６６０を用いて有効にされたリンク層メッセージは、デバイス６０５のリンク層６３５ａとデバイス６１０のリンク層６３５ｂとの間の他のリンク層特徴の中でも、リンク階層化態遷移、電力管理、ループバック、無効、再センタリング、スクランブル化の交渉及び実行に役立つことができる。
【００４６】
図７を参照すると、例ＭＣＰＬの特定のチャネル内の１組のレーン（例えば、６１５、６２０）を用いた例示的なシグナリングを表す図７００が示されている。図７の例では、チャネル内の合計５０個のデータレーンについて２５個のデータレーンの２つのクラスタが提供されている。レーンの一部分が示されているが、他のもの（例えば、ＤＡＴＡ［４−４６］及び第２のストローブ信号レーン（ＳＴＲＢ））は、特定の例を示す都合上、（例えば、冗長な信号として）省かれている。物理層がアクティブ状態（例えば、電源オフにされていないか又は低電力モード（例えば、Ｌ１状態）にある）とき、ストローブレーン（ＳＴＲＢ）に、同期クロック信号を提供することができる。いくつかの実施態様では、ストローブの立ち上がりエッジ及び立ち下がりエッジの双方でデータを送信することができる。各エッジ（又は半クロックサイクル）は、単位インターバル（ＵＩ）を画定することができる。したがって、この例では、ビット（例えば、７０５）を各レーン上で送信することができ、８ＵＩごとに１バイトが送信されることが可能になる。バイト期間７１０を８ＵＩとして、又はデータレーンのうちの単一のものにおいてバイトを送信する時間（例えば、ＤＡＴＡ［０−４９］）として定義することができる。
【００４７】
いくつかの実施態様では、１以上の専用有効信号チャネル（例えば、ＶＡＬＩＤ０、ＶＡＬＩＤ１）において送信される有効信号は、アサートされているとき（高）、受信デバイス又はシンクに、バイト期間７１０等の後続の期間中に、データレーン（例えば、ＤＡＴＡ［０−４９］）上でデータが送信デバイス又はソースから送信されていることを特定する、受信デバイスのための先導するインジケータとしての役割を果たすことができる。代替的に、有効信号が低であるとき、ソースはシンクに、シンクが後続の期間中、データレーン上でデータを送信しないことを示す。したがって、シンク論理ＰＨＹが、（例えばレーンＶＡＬＩＤ０及びＶＡＬＩＤ１において）有効信号がアサートされていないことを検出すると、シンクは、後続の期間中にデータレーン（例えば、ＤＡＴＡ［０−４９］）上で検出される任意のデータを無視することができる。例えば、ソースが実際にデータを一切送信していないときに、クロストークノイズ又は他のビットがデータレーンのうちの１以上に現れる場合がある。前の期間（例えば、前のバイト期間）中の低いか又はアサートされていない有効信号により、シンクは、後続の期間中にデータレーンが無視されることを決定することができる。
【００４８】
ＭＣＰＬのレーンの各々において送信されたデータは、ストローブ信号に厳密にアラインすることができる。バイト期間等の期間をストローブに基づいて定義することができ、これらの期間の各々が、定義されたウィンドウに対応することができる。このウィンドウにおいて、信号はデータレーン（例えば、ＤＡＴＡ［０−４９］）、有効なレーン（例えば、ＶＡＬＩＤ１、ＶＡＬＩＤ２）及びストリームレーン（例えば、ＳＴＲＥＡＭ）上で送信されることになる。したがって、これらの信号のアライメントにより、前の期間ウィンドウ内の有効信号が、後続の期間ウィンドウ内のデータに適用されること、及びストリーム信号が同じ期間ウィンドウ内のデータに適用されることの特定を可能にすることができる。ストリーム信号は、同じ期間ウィンドウ中に送信されるデータに適用されるプロトコルを特定するようにエンコードされるエンコード信号（例えば、バイト期間ウィンドウにつき１バイトのデータ）とすることができる。
【００４９】
説明のために、図７の特定の例において、バイト期間ウィンドウが定義される。データレーンＤＡＴＡ［０−４９］において任意のデータが投入される前に、期間ウィンドウｎ（７１５）において有効信号がアサートされる。後続の期間ウィンドウｎ＋１（７２０）において、データレーンのうちの少なくともいくつかにおいてデータが送信される。この場合、データはｎ＋１（７２０）中に５０個全てのデータレーン上で送信される。先行する期間ウィンドウｎ（７１５）の持続時間にわたって有効信号がアサートされたので、シンクデバイスは、期間ウィンドウｎ＋１（７２０）中にデータレーンＤＡＴＡ［０−４９］上で受信されるデータを有効にすることができる。更に、期間ウィンドウｎ（７１５）中の有効信号の先導する特性により、受信デバイスが着信データの準備をすることが可能になる。図７の例を継続すると、有効信号は、期間ウィンドウｎ＋１（７２０）の持続時間中、（ＶＡＬＩＤ１及びＶＡＬＩＤ２において）アサートされたままであり、シンクデバイスに、期間ウィンドウｎ＋２（７２５）中にデータレーンＤＡＴＡ［０−４９］を介してデータが送信されることを予期させる。有効信号が期間ウィンドウｎ＋２（７２５）中にアサートされたままである場合、シンクデバイスは、直後の期間ウィンドウｎ＋３（７３０）中に送信される更なるデータを受信（及び処理）することを更に予期することができる。一方、図７の例では、有効信号は、期間ウィンドウｎ＋２（７２５）の持続時間中にアサート解除され、シンクデバイスに、期間ウィンドウｎ＋３（７３０）中にデータが送信されないこと、及びデータレーンＤＡＴＡ［０−４９］上で検出される任意のビットが期間ウィンドウｎ＋３（７３０）中無視されるべきであることを示す。
【００５０】
上記で示すように、チャネルごとに複数の有効なレーン及びストローブレーンを維持することができる。これは、数ある利点の中でも、２つのデバイスを接続する比較的長い物理レーンのクラスタの中で回路の単純性及び同期を維持するのに役立つことができる。いくつかの実施態様では、１組のデータレーンは、データレーンのクラスタに分割することができる。例えば、図７の例において、データレーンＤＡＴＡ［０−４９］は、２５個のレーンの２つのクラスタに分割することができ、各クラスタは専用の有効レーン及びストローブレーンを有することができる。例えば、有効レーンＶＡＬＩＤ１はデータレーンＤＡＴＡ［０−２４］に関連付けることができ、有効レーンＶＡＬＩＤ２はデータレーンＤＡＴＡ［２５−４９］に関連付けることができる。クラスタごとの有効レーン及びストローブレーンの各「コピー」における信号は、同一とすることができる。
【００５１】
上記で紹介したように、ストリームレーンＳＴＲＥＡＭ上のデータを用いて、受信側の論理ＰＨＹに、データレーンＤＡＴＡ［０−４９］上で送信されている対応するデータにどのプロトコルを適用するかを示すことができる。図７の例では、データレーン上のデータのプロトコルを示すために、ストリーム信号が、データレーンＤＡＴＡ［０−４９］上のデータと同じ期間ウィンドウ中にＳＴＲＥＡＭ上で送信される。代替的な実施態様では、ストリーム信号は、数ある潜在的な変更形態の中でも、対応する有効信号を用いること等により、先行する期間ウィンドウ中に送信することができる。一方、図７の例を継続すると、期間ウィンドウｎ＋１（７２０）中に、データレーンＤＡＴＡ［０−４９］を介して期間ウィンドウｎ＋１（７２０）中に送信されるビットに適用するプロトコル（例えば、ＰＣＩｅ、ＰＣＩ、ＩＤＩ、ＱＰＩ等）を示すようにエンコードされたストリーム信号７３５が送信される。同様に、後続の期間ウィンドウｎ＋２（７２５）中に、データレーンＤＡＴＡ［０−４９］を介して期間ウィンドウｎ＋２（７２５）中に送信されるビットに適用するプロトコルを示す別のストリーム信号７４０を送信することができ、以下同様である。図７の例（ストリーム信号７３５、７４０の双方が同じエンコーディング、バイナリＦＦを有する）等のいくつかの場合、連続期間ウィンドウ（例えば、ｎ＋１（７２０）及びｎ＋２（７２５））は同じプロトコルに属することができる。一方、他の事例では、連続期間ウィンドウ（例えば、ｎ＋１（７２０）及びｎ＋２（７２５））におけるデータは、異なるプロトコルが適用される異なるトランザクションからのものとすることができ、これに応じて、ストリーム信号（例えば、７３５、７４０）を、数ある例の中でも、データレーン（例えば、ＤＡＴＡ［０−４９］）上の連続データバイトに適用する異なるプロトコルを特定するようにエンコードすることができる。
【００５２】
いくつかの実施態様では、ＭＣＰＬのための低電力状態又はアイドル状態を定義することができる。例えば、ＭＣＰＬにおけるいずれのデバイスもデータを送信していないとき、ＭＣＰＬの物理層（電気及び論理）は、アイドル状態又は低電力状態に進むことができる。例えば、図７の例では、期間ウィンドウｎ−２（７４５）において、ＭＣＰＬは静止状態又はアイドル状態にあり、ストローブは電力を節減するために無効にされている。ＭＣＰＬは、低電力モード又はアイドルモードから遷移し、期間ウィンドウｎ−１（例えば、７０５）においてストローブをウェイク状態にすることができる。ストローブは、（例えば、チャネルのレーンの各々及びシンクデバイスをウェイクさせ、同期させるのに役立つために）送信プリアンブルを完了させ、他の非ストローブレーンにおける任意の他のシグナリングの前にストローブ信号を開始することができる。上記で検討したように、この期間ウィンドウｎ−１（７０５）に続いて、期間ウィンドウｎ（７１５）において有効信号をアサートし、シンクに、データが後続の期間ウィンドウｎ＋１（７２０）において到来することを通知することができる。
【００５３】
ＭＣＰＬは、ＭＣＰＬチャネルの有効レーン、データレーン及び／又は他のレーンにおけるアイドル状態の検出に続いて、低電力状態又はアイドル状態（例えば、Ｌ１状態）に再度入ることができる。例えば、期間ウィンドウｎ＋３（７３０）において開始し、進行するシグナリングが検出されない場合がある。数ある例及び原理（本明細書において後に検討するものを含む）の中でも、ソースデバイス又はシンクデバイスのいずれかにおけるロジックが低電力状態に戻る遷移を開始することができ、これにより再び（例えば、期間ウィンドウｎ＋５（７５５）において）ストローブが電力節減モードにおいてアイドルに進むことになる。
【００５４】
物理ＰＨＹの電気特性は、数ある特徴の中でも、シングルエンドシグナリング、半レート進められたクロッキング、インターコネクトチャネルと、送信機（ソース）及び受信機（シンク）のオンチップトランスポート遅延とのマッチング、最適化された静電放電（ＥＳＤ：ｅｌｅｃｔｒｏｓｔａｔｉｃ  ｄｉｓｃｈａｒｇｅ）保護、パッドキャパシタンスのうちの１以上を含むことができる。更に、ＭＣＰＬは、従来のパッケージＩ／Ｏ解決策よりも高いデータレート（例えば、１６Ｇｂ／ｓに到達する）及びエネルギー効率特性を達成するように実装することができる。
【００５５】
図８は、例示的なＭＣＰＬの一部分を表す単純化されたブロック図８００の一部を示す。図８の図８００は、例示的なレーン８０５（例えば、データレーン、有効レーン又はストリームレーン）の表現と、クロック生成ロジック８１０とを含む。図８の例に示すように、いくつかの実施態様では、クロック生成ロジック８１０は、データレーン８０５等の例示的なＭＣＰＬの各レーンを実装する各ブロックに生成されたクロック信号を分配するためのクロックツリーとして実装することができる。更に、クロックリカバリ回路８１５を提供することができる。いくつかの実施態様では、少なくともいくつかの従来のインターコネクトＩ／Ｏアーキテクチャにおいて慣習的であるように、クロック信号が分散されるレーンごとに別個のクロックリカバリ回路を提供するのではなく、複数のレーンのクラスタに単一のクロックリカバリ回路を提供することができる。実際に、図６及び図７の例示的な構成に適用されるとき、別個のストローブレーン及び付随するクロックリカバリ回路は、２５個のデータレーンのクラスタごとに提供することができる。
【００５６】
図８の例を続けると、いくつかの実施態様では、少なくとも、データレーン、ストリームレーン及び有効レーンを、ゼロ（グラウンド）よりも高い調整電圧に中間レールで終端することができる。いくつかの実施態様では、中間レール電圧は、Ｖｃｃ／２に調整することができる。いくつかの実施態様では、レーンのクラスタごとに単一の電圧レギュレータ８２５を設けることができる。例えば、図６及び図７の例に適用するとき、数ある潜在的な例の中でも、２５個のデータレーンの第１のクラスタのために第１の電圧レギュレータを設けることができ、２５個のデータレーンの残りのクラスタのために第２の電圧レギュレータを設けることができる。場合によっては、例示的な電圧レギュレータ８２５は、数ある例の中でも、リニアレギュレータ、スイッチトキャパシタ回路として実施することができる。いくつかの実施態様では、リニアレギュレータには、数ある例の中でも、アナログフィードバックループ又はデジタルフィードバックループを設けることができる。
【００５７】
いくつかの実施態様では、例示的なＭＣＰＬのためにクロストークキャンセル回路部を設けることもできる。場合によっては、長いＭＣＰＬワイヤのコンパクトな性質により、レーン間にクロストーク干渉が生じる可能性がある。これらの問題及び他の問題に対処するようにクロストークキャンセルロジックを実装することができる。例えば、図９〜図１０に示す１つの例では、図９００及び１０００に示すもの等の例示的な低電力アクティブ回路を用いてクロストークを大幅に低減することができる。例えば、図９の例では、重み付き高域通過フィルタリングされた「アグレッサ（aggressor）」信号を「ビクティム（victim）」信号（すなわち、アグレッサからのクロストーク干渉を受ける信号）に加えることができる。各信号は、リンクにおける互いの信号からのクロストークのビクティムとみなすことができ、この信号がクロストーク干渉源である限り、それ自体が他の信号に対するアグレッサとなり得る。リンク上のクロストークの派生的性質に起因して、そのような信号が生成され、ビクティムレーンにおけるクロストークを、５０％よりも多く低減することができる。図９の例では、低域通過フィルタリングされたアグレッサ信号を、高域通過ＲＣフィルタ（例えばＣ及びＲ１を通じて実施される）を通じて生成することができる。高域通過ＲＣフィルタはフィルタリングされた信号を生成し、この信号は、加算回路９０５（例えば、ＲＸセンスアンプ）を用いて加えられる。
【００５８】
図９の例において説明したものに類似した実施態様は、ＭＣＰＬ等の用途のための特に好都合な解決策であり得る。なぜなら、図９の例において示され、説明された回路の例示的なトランジスタレベルの概略図を示す図１０の図に示すように、回路の実装を比較的低いオーバヘッドで実現することができるためである。図９及び図１０における表現は単純化された表現であり、実際の実施態様は、リンクのレーン間のクロストーク干渉のネットワークを収容するために、図９及び図１０に示す回路の複数のコピーを含むことを理解されたい。例として、数ある例の中でも、レーンの形状及びレイアウトに基づいて、レーン０からレーン１、レーン０からレーン２、レーン１からレーン０、レーン１からレーン２、レーン２からレーン０、レーン２からレーン１等の、図９及び図１０の例において説明したものに類似の３レーンリンク（例えば、レーン０〜２）回路を提供することができる。
【００５９】
例示的なＭＣＰＬの物理的なＰＨＹレベルにおいて追加の特徴を実施することができる。例えば、場合によっては、受信機オフセットは、重大なエラーを引き起こし、Ｉ／Ｏ電圧マージンを制限する可能性がある。回路冗長性を用いて受信機の感度を改善することができる。いくつかの実施態様では、ＭＣＰＬにおいて用いられるデータサンプラの標準偏差オフセットに対処するように回路冗長性を最適化することができる。例えば、３標準偏差オフセット指定に対し設計された例示的なデータサンプラを提供することができる。図６及び図７の例において、例えば、受信機ごとに（例えば、レーンごとに）２つのデータサンプラが用いられるとすると、５０レーンのＭＣＰＬのために１００個のサンプラが用いられることになる。この例では、受信機（ＲＸ）レーンのうちの１つが３標準偏差オフセット指定に失敗する確率は２４％である。オフセット上限を設定し、他のデータサンプラのうちの別のものがこの上限を超えていることがわかった場合に受信機において次のデータサンプラに移るためのチップ基準電圧発生器を提供することができる。一方、受信機あたり４つのデータサンプラ（すなわち、この例では２つの代わり）が用いられるとすると、受信機は、４つのうちの３つのサンプラが失敗した場合にしか失敗しない。図６及び図７の例におけるような５０レーンＭＣＰＬの場合、この追加の回路冗長性は、失敗率を２４％から０．０１％未満に劇的に低減させることができる。
【００６０】
更なる他の例では、非常に高いデータレートで、ビットごとのデューティサイクル補正（ＤＣＣ）及びデスキューを用いて、ベースラインのクラスタごとのＤＣＣ及びデスキューを拡張してリンクマージンを改善することができる。従来の解決策のように全ての場合に補正を行う代わりに、いくつかの実施態様では、Ｉ／Ｏレーンが失敗した場合に、外れ値を検知し補正する低電力デジタル実装を利用することができる。例えば、レーンのグローバルチューニングを行って、クラスタ内の問題レーンを特定することができる。次に、これらの問題レーンを、レーンごとのチューニングの対象にして、ＭＣＰＬによってサポートされる高いデータレートを達成することができる。
【００６１】
ＭＣＰＬのいくつかの例において、物理リンクの性能特性を向上させる追加の特徴もオプションで実施することができる。例えば、ラインコーディングを提供することができる。上記で説明したような中間レール終端は、ＤＣデータバス反転（ＤＢＩ）が省かれることを可能にすることができるが、ＡＣ  ＤＢＩを依然として用いて動的電力を低減することができる。数ある例示的な利点の中でも、より複雑なコーディングを用いて、最悪の事態である１及び０の差異をなくし、例えば、中間レールレギュレータの駆動要件を低減すると共に、Ｉ／Ｏ切換えノイズを制限することもできる。更に、オプションで送信機等化を実施することができる。例えば、非常に高いデータレートにおいて、挿入損失は、パッケージ内チャネルにとって大きい可能性がある。数ある中でも、２タップ重み送信機等化（例えば、初期起動シーケンス中に実行される）は、場合によっては、これらの問題のうちのいくつかを軽減するのに十分であり得る。
【００６２】
図１１を参照すると、例示的なＭＣＰＬの例示的な論理ＰＨＹを示す単純化されたブロック図１１００が示されている。物理ＰＨＹ１１０５は、論理ＰＨＹ１１１０と、ＭＣＰＬのリンク層をサポートする追加のロジックとを含むダイに接続することができる。ダイは、この例では、ＭＣＰＬにおいて複数の異なるプロトコルをサポートするロジックを更に含むことができる。例えば、図１１の例において、ＩＤＩロジック１１２０と共にＰＣＩｅロジック１１１５を提供することができ、それによって、３つ以上のプロトコル又はＰＣＩｅ及びＩＤＩ以外のプロトコルがＭＣＰＬを介してサポートされる例を含む、潜在的に数多くの他の例の中でも、ダイは、２つのダイを接続する同じＭＣＰＬを介してＰＣＩｅ又はＩＤＩを用いて通信することができる。ダイ間でサポートされる様々なプロトコルが様々なレベルのサービス及び特徴を提供することができる。
【００６３】
論理ＰＨＹ１１１０は、ダイの上位層ロジックのリクエスト（例えば、ＰＣＩｅ又はＩＤＩを介して受信される）に関連してリンク状態遷移を交渉するためのリンク状態機械管理ロジック１１２５を含むことができる。論理ＰＨＹ１１１０は、いくつかの実施態様において、リンク試験及びデバッグロジック（例えば、１１３０）を更に含むことができる。上記で示すように、例示的なＭＣＰＬは、ＭＣＰＬの、（数ある例示的な特徴の中でも）プロトコルにとらわれない、高性能で電力効率のよい特徴を促進するようにＭＣＰＬを介してダイ間で送信される制御信号をサポートすることができる。例えば、論理ＰＨＹ１１１０は、上記の例において説明したように、専用データレーンを介してデータを送受信することに関連して、有効信号、ストリーム信号及びＬＳＭサイドバンド信号の生成及び送信、並びに受信及び処理をサポートすることができる。
【００６４】
いくつかの実施態様では、多重化（例えば、１１３５）及び逆多重化（例えば、１１４０）ロジックを論理ＰＨＹ１１１０に含めるか、又は他の形で論理ＰＨＹ１１１０にアクセス可能にすることができる。例えば、多重化ロジック（例えば、１１３５）を用いて、ＭＣＰＬ上に送信されるデータ（例えば、パケット、メッセージ等として具現化される）を特定することができる。多重化ロジック１１３５は、データを統制するプロトコルを特定し、ストリーム信号を生成する。このストリーム信号は、プロトコルを特定するためにエンコードされる。例えば、１つの例示的な実施態様では、ストリーム信号は、２つの１６進数シンボルのバイト（例えば、ＩＤＩ：ＦＦｈ、ＰＣＩｅ：Ｆ０ｈ、ＬＬＰ：ＡＡｈ、サイドバンド：５５ｈ等）としてエンコードすることができ、特定されたプロトコルによって統制されるデータの同じウィンドウ（例えば、バイト期間ウィンドウ）中に送信することができる。同様に、逆多重化ロジック１１４０を用いて、着信ストリーム信号を解釈してストリーム信号をデコードし、データレーン上のストリーム信号により現在受信されているデータに適用するプロトコルを特定することができる。次に、逆多重化ロジック１１４０をプロトコル固有リンク層処理に適用（又は確保）し、対応するプロトコルロジック（例えば、ＰＣＩｅロジック１１１５又はＩＤＩロジック１１２０）によってデータを処理させることができる。
【００６５】
論理ＰＨＹ１１１０は、電力管理タスク、ループバック、ディセーブル、再センタリング、スクランブリング等を含む様々なリンク制御機能を処理するのに用いることができるリンク層パケットロジック１１５０を更に含むことができる。ＬＬＰロジック１１５０は、数ある機能の中でも、ＭＣＬＰを介したリンク層間メッセージを促進することができる。ＬＬＰシグナリングに対応するデータは、データレーンＬＬＰデータを特定するためにエンコードされる専用ストリーム信号レーン上で送信されるストリーム信号によって特定することもできる。多重化ロジック及び逆多重化ロジック（例えば、１１３５、１１４０）を用いて、ＬＬＰトラフィックに対応するストリーム信号を生成し解釈し、そのようなトラフィックが適切なダイロジック（例えば、ＬＬＰロジック１１５０）によって処理されるようにすることもできる。同様に、ＭＣＬＰのいくつかの実施態様は、数ある例の中でも、非同期及び／又は低周波数サイドバンドチャネル等の専用サイドバンド（例えば、サイドバンド１１５５及びサポートロジック）を含むことができる。
【００６６】
論理ＰＨＹロジック１１１０は、専用ＬＳＭサイドバンドレーンを介してリンク状態管理メッセージを生成及び受信（及び使用）することができるリンク状態機械管理ロジックを更に含むことができる。例えば、数ある潜在的な例の中でも、ＬＳＭサイドバンドレーンを用いてハンドシェイクを実行し、リンクトレーニング状態を進め、電力管理状態（例えば、Ｌ１状態）から出ることができる。数ある例の中でも、ＬＳＭサイドバンド信号は、リンクのデータ信号、有効信号及びストリーム信号にアラインされておらず、代わりにシグナリング状態遷移に対応するという点で非同期信号とすることができ、リンクによって接続された２つのダイ又はチップ間のリンク状態機械をアラインすることができる。数ある例示的な利点の中でも、いくつかの例において、専用ＬＳＭサイドバンドレーンを提供することによって、アナログフロントエンド（ＡＦＥ）の従来のスケルチ及び受信検出回路を排除することが可能になる。
【００６７】
図１２を参照すると、ＭＣＰＬを実施するのに用いられるロジックの別の表現を示す単純化されたブロック図１２００が示されている。例えば、論理ＰＨＹ１１１０には、定義された論理ＰＨＹインタフェース（ＬＰＩＦ）１２０５が設けられ、これを通じて、複数の異なるプロトコル（例えば、ＰＣＩｅ、ＩＤＩ、ＱＰＩ等）１２１０、１２１５、１２２０、１２２５及びシグナリングモード（例えば、サイドバンド）のうちの任意のものが例示的なＭＣＰＬの物理層とインタフェースすることができる。いくつかの実施態様では、論理ＰＨＹ１１１０と別個の層として、多重化及び調停ロジック１２３０を提供することもできる。１つの例では、このＭｕｘＡｒｂ層１２３０のいずれかの側のインタフェースとして、ＬＰＩＦ１２０５を提供することができる。論理ＰＨＹ１１１０は、別のインタフェースを通じて物理ＰＨＹ（例えばＭＣＰＬ  ＰＨＹのアナログフロントエンド（ＡＦＥ）１１０５）とインタフェースすることができる。
【００６８】
ＬＰＩＦは、上位層（例えば、１２１０、１２１５、１２２０、１２２５）からＰＨＹ（論理及び電気／アナログ）を抽出することができ、それによって、完全に異なるＰＨＹを、上位層に対しトランスペアレントなＬＰＩＦ下で実施することができる。このことは、数ある例の中でも、上位層が、基礎を成すシグナリング技術ＰＨＹが更新されるときに完全なままであることができるので、モジュール性及び設計の再利用を促進するのに役立つことができる。更に、ＬＰＩＦは、論理ＰＨＹの多重化／逆多重化、ＬＳＭ管理、エラー検出及び処理、並びに他の機能を可能にする複数の信号を定義することができる。例えば、表１は、例示的なＬＰＩＦのために定義することができる信号の少なくとも一部分を要約する。
【００６９】
【表１】
2020201967.tif 000003
【００７０】
表１に示すように、いくつかの実施態様では、ＡｌｉｇｎＲｅｑ／ＡｌｉｇｎＡｃｋハンドシェイクを通じてアライメントメカニズムを提供することができる。例えば、物理層がリカバリに入るとき、いくつかのプロトコルはパケットフレーミングを失う場合がある。パケットのアライメントを補正して、例えば、リンク層による正しいフレーミング識別を保証することができる。更に、図１３に示すように、物理層は、リカバリに入るときにＳｔａｌｌＲｅｑ信号をアサートすることができ、それによって、リンク層は、新たにアラインされたパケットを転送する準備ができたときにＳｔａｌｌ信号をアサートする。物理層ロジックは、Ｓｔａｌｌ及びＶａｌｉｄの双方をサンプリングして、パケットがアラインされているか否かを判断することができる。例えば、物理層は、Ｖａｌｉｄを用いてパケットアライメントを支援する他の代替的な実施態様を含む数ある潜在的な実施態様の中でも、Ｓｔａｌｌ及びＶａｌｉｄがサンプリングされてアサートされるまで、ｔｒｄｙを駆動してリンク層パケットをドレインし続けることができる。
【００７１】
ＭＣＰＬにおける信号について、様々な耐障害性を定義することができる。例えば、有効信号、ストリーム信号、ＬＳＭサイドバンド信号、低周波数サイドバンド信号、リンク層パケット信号及び他のタイプの信号について耐障害性を定義することができる。ＭＣＰＬの専用データレーンを介して送信されたパケット、メッセージ及び他のデータの耐障害性は、データを統制する特定のプロトコルに基づくことができる。いくつかの実施態様では、数ある潜在的な例の中でも、周期的冗長検査（ＣＲＣ）、リトライバッファ等のエラー検出及び処理メカニズムを提供することができる。例として、ＭＣＰＬを介して送信されるＰＣＩｅパケットの場合、ＰＣＩｅトランザクション層パケット（ＴＬＰ）のために３２ビットＣＲＣを利用することができ（（例えばリプレイメカニズムを通じて）送達が保証される）、ＰＣＩｅリンク層パケット（損失が多くなるように構築される場合がある（例えば、リプレイが適用されない））のために１６ビットＣＲＣを利用することができる。更に、ＰＣＩｅフレーミングトークンの場合、数ある例の中でも、トークン識別子について特定のハミング距離（例えば、ハミング距離４）を定義することができ、パリティ及び４ビットＣＲＣも利用することができる。他方で、ＩＤＩパケットの場合、１６ビットＣＲＣを利用することができる。
【００７２】
いくつかの実施態様では、（例えば、ビット及びシンボルロックを保証するのに役立つために）有効信号が低から高（すなわち、０から１）に遷移することを必要とすることを含む耐障害性をリンク層パケット（ＬＬＰ）について定義することができる。更に、ＭＣＰＬ上でＬＬＰデータにおける障害を判断する基として用いることができる数ある定義された特徴の中でも、１つの例では、特定の数の連続した同一のＬＬＰが送信されるように定義することができ、各リクエストに対する応答を予期することができ、リクエスト側は、応答タイムアウト後にリトライを行う。更なる例では、例えば、期間ウィンドウ全体にわたって有効信号又はシンボルを拡張することにより（例えば８つのＵＩについて有効信号を高に保持することによる）、有効信号のための耐障害性を提供することができる。更に、ストリーム信号におけるエラー又は障害は、数ある例の中でも、ストリーム信号のエンコード値のハミング距離を維持することによって防ぐことができる。
【００７３】
論理ＰＨＹの実施は、エラー検出、エラー報告、及びエラー処理ロジックを含むことができる。いくつかの実施態様では、例示的なＭＣＰＬの論理ＰＨＹは、数ある例の中でも、ＰＨＹ層デフレーミングエラー（例えば、有効レーン及びストリームレーン上）、サイドバンドエラー（例えば、ＬＳＭ状態遷移に関する）、ＬＬＰにおけるエラー（例えば、ＬＳＭ状態遷移に重要である）を検出するロジックを含むことができる。数ある例の中でも、いくらかのエラー検出／解決は、ＰＣＩｅ固有のエラーを検出するように適合されたＰＣＩｅロジック等の上位層ロジックに委譲することができる。
【００７４】
デフレーミングエラーの場合、いくつかの実施態様では、エラー処理ロジックを通じて１以上のメカニズムを提供することができる。デフレーミングエラーは、関与するプロトコルに基づいて処理することができる。例えば、いくつかの実施態様では、リンク層は、リトライをトリガするために、エラーを通知されることができる。デフレーミングは、論理ＰＨＹデフレーミングの再アライメントも生じさせることができる。更に、数ある技法の中でも、論理ＰＨＹの再センタリングも行うことができ、シンボル／ウィンドウロックを再取得することができる。いくつかの例では、センタリングは、ＰＨＹが、着信データを検出するために、受信機クロック位相を最適点まで動かすことを含むことができる。この文脈において、「最適」とは、ノイズ及びクロックジッタのための最大マージンを有する場所を指すことができる。再センタリングは、数ある例の中でも、例えば、ＰＨＹが低電力状態からウェイクアップするときに実行される、単純化されたセンタリング機能を含むことができる。
【００７５】
他のタイプのエラーは、他のエラー処理技法を含むことができる。例えば、サイドバンドにおいて検出されるエラーは、対応する状態（例えば、ＬＳＭ）のタイムアウトメカニズムを通じて捕捉され得る。エラーのログをとることができ、次にリンク状態機械をＲｅｓｅｔ（リセット）に遷移させることができる。ＬＳＭは、ソフトウェアから再始動コマンドが受信されるまでＲｅｓｅｔにとどまることができる。別の例では、リンク制御パケットエラー等のＬＬＰエラーは、ＬＬＰシーケンスに対する確認応答が受信されない場合にＬＬＰシーケンスを再始動することができるタイムアウトメカニズムを用いて処理することができる。
【００７６】
図１４Ａ〜図１４Ｃは、様々なタイプのデータについて例示的なＭＣＰＬのデータレーンにおける例示的なビットマッピングの表現を示している。例えば、例示的なＭＣＰＬは、５０個のデータレーンを含むことができる。図１４Ａは、８ＵＩのシンボル又はウィンドウ内でデータレーンを介して送信することができる、ＩＤＩ等の第１のプロトコルにおける例示的な１６バイトのスロットの第１のビットマッピングを示す。例えば、定義された８ＵＩウィンドウ内で、ヘッダスロットを含む３つの１６バイトスロットを送信することができる。この例では２バイトのデータが残り、これらの残っている２バイトをＣＲＣビット（例えば、レーンＤＡＴＡ［４８］及びＤＡＴＡ［４９］内）に利用することができる。
【００７７】
別の例では、図１４Ｂは、例示的なＭＣＰＬの５０個のデータレーンを介して送信されるＰＣＩｅパケットデータのための第２の例示的なビットマッピングを示す。図１４Ｂの例では、１６バイトのパケット（例えば、トランザクション層（ＴＬＰ）又はデータリンク層（ＤＬＬＰ）ＰＣＩｅパケット）を、ＭＣＰＬを介して送信することができる。８ＵＩウィンドウでは、３つのパケットを送信することができ、残りの２バイトの帯域幅がウィンドウ内で用いられないまま残る。これらのシンボルにフレーミングトークンを含めることができ、各パケットの開始及び終了を位置特定するのに用いることができる。ＰＣＩｅの１つの例では、図１４Ｂの例において利用されるフレーミングは、８ＧＴ／ｓにおいてＰＣＩｅのために実施されるトークン等と同じとすることができる。
【００７８】
図１４Ｃに示される更に別の例では、例示的なＭＣＰＬを介して送信されるリンク間パケット（例えば、ＬＬＰパケット）の例示的なビットマッピングが示されている。ＬＬＰはそれぞれ４バイトとすることができ、各ＬＬＰ（例えば、ＬＬＰ０、ＬＬＰ１、ＬＬＰ２等）は、例示的な実施態様における耐障害性及びエラー検出に従って連続して４回送信することができる。例えば、４つの連続した同一のＬＬＰの受信に失敗することは、エラーを示すことができる。更に、他のデータタイプに関して、進行中の時間ウィンドウ又はシンボルにおいてＶＡＬＩＤを受信するのに失敗することもエラーを示すことができる。場合によっては、ＬＬＰは固定のスロットを有することができる。更に、数ある例の中でも、この例では、バイト期間における未使用又は「スペア」ビットにより、結果として５０個のレーンのうちの２つ（例えば、ＤＡＴＡ［４８−４９］）にわたって論理０が送信されることになる。
【００７９】
図１５を参照すると、状態遷移間で利用されるサイドバンドハンドシェイキングと共に、単純化されたリンク状態機械遷移図１４００が示されている。例えば、Ｒｅｓｅｔ．Ｉｄｌｅ状態（例えば、この状態において、位相ロックループ（ＰＬＬ）ロック較正が行われる）が、サイドバンドハンドシェイクを通じてＲｅｓｅｔ．Ｃａｌ状態（例えば、この状態において、リンクが更に較正される）に遷移することができる。Ｒｅｓｅｔ．Ｃａｌは、サイドバンドハンドシェイクを通じて、Ｒｅｓｅｔ．ＣｌｏｃｋＤＣＣ状態（例えば、この状態において、デューティサイクル補正（ＤＣＣ）及び遅延ロックルーピング（ＤＬＬ）ロックを行うことができる）に遷移することができる。Ｒｅｓｅｔ．ＣｌｏｃｋＤＣＣからＲｅｓｅｔ．Ｑｕｉｅｔ状態（例えば、有効信号をアサート解除する）に遷移するための更なるハンドシェイクを行うことができる。ＭＣＰＬのレーン上のシグナリングのアライメントに役立つために、Ｃｅｎｔｅｒ．Ｐａｔｔｅｒｎ状態を通じてレーンをセンタリングすることができる。
【００８０】
いくつかの実施態様では、図１６の例に示すように、Ｃｅｎｔｅｒ．Ｐａｔｔｅｒｎ状態の間、送信機はトレーニングパターン又は他のデータを生成することができる。受信機は、例えば、位相補間器位置及びｖｒｅｆ位置を設定し、比較器を設定することによって、そのようなトレーニングパターンを受信するようにその受信機回路を調整することができる。受信機は、受信したパターンを予測パターンと比較し続け、結果をレジスタに記憶することができる。１組のパターンが完成した後、受信機は、ｖｒｅｆを同じに保ちながら位相補間器設定をインクリメントすることができる。テストパターン生成及び比較プロセスは継続することができ、新たな比較結果をレジスタに記憶することができ、プロシージャは全ての位相補間器値及び全てのｖｒｅｆ値を反復的にステップスルーする。パターン生成及び比較プロセスが全て完了すると、Ｃｅｎｔｅｒ．Ｑｕｉｅｔ状態に入ることができる。Ｃｅｎｔｅｒ．Ｐａｔｔｅｒｎ及びＣｅｎｔｅｒＱｕｉｅｔリンク状態を通じてレーンをセンタリングすることに続いて、サイドバンドハンドシェイク（例えば、リンクの専用ＬＳＭサイドバンドレーンを介するＬＳＭサイドバンド信号を用いる）を促進してＬｉｎｋ．Ｉｎｉｔ状態に遷移し、ＭＣＰＬを初期化し、ＭＣＰＬにおいてデータの送信を可能にすることができる。
【００８１】
一時的に図１５の検討に戻ると、上記で示したように、サイドバンドハンドシェイクを用いて、マルチチップパッケージにおけるダイ又はチップ間のリンク状態機械遷移を促進することができる。例えば、ＭＣＰＬのＬＳＭサイドバンドレーンにおける信号を用いて、ダイにわたる状態機械遷移を同期させることができる。例えば、状態（例えば、Ｒｅｓｅｔ．Ｉｄｌｅ）を出る条件が満たされたとき、これらの条件を満たした側が、自身のアウトバウンドＬＳＭ＿ＳＢレーンにおいて、ＬＳＭサイドバンド信号をアサートし、他の遠隔ダイが同じ条件に達し、そのダイのＬＳＭ＿ＳＢレーンにおいてＬＳＭサイドバンド信号をアサートするのを待機することができる。双方のＬＳＭ＿ＳＢ信号がアサートされたとき、各それぞれのダイのリンク状態機械が次の状態（例えば、Ｒｅｓｅｔ．Ｃａｌ状態）に遷移することができる。双方のＬＳＭ＿ＳＢ信号が状態を遷移する前にアサートされたままであるべき最小オーバラップ時間を定義することができる。更に、ＬＳＭ＿ＳＢがアサート解除された後、正確なターンアラウンド検出を可能にするための最小静止時間を定義することができる。いくつかの実施態様では、全てのリンク状態機械遷移はそのようなＬＳＭ＿ＳＢハンドシェイクを条件とし、そのようなＬＳＭ＿ＳＢハンドシェイクによって促進され得る。
【００８２】
図１７は、例示的なＭＣＰＬに含めることができる更なるリンク状態及びリンク状態遷移のうちの少なくともいくつかを示す、より詳細なリンク状態機械図１７００である。いくつかの実施態様では、例示的なリンク状態機械は、図１７に示す数ある状態及び状態遷移の中でも、「有向ループバック（Ｄｉｒｅｃｔｅｄ  Ｌｏｏｐｂａｃｋ）」遷移を含むことができ、この遷移は、ＭＣＰＬのレーンをデジタルループバックにするように提供することができる。例えば、ＭＣＰＬの受信機レーンは、クロックリカバリ回路の後に送信機レーンにループバックすることができる。場合によっては、「ＬＢ＿Ｒｅｃｅｎｔｅｒ」状態も提供することができる。この状態は、データシンボルをアラインするのに用いることができる。更に、図１５に示すように、ＭＣＰＬは、数ある潜在的な例の中でも、Ｌ１アイドル状態及びＬ２スリープ状態等の、アクティブＬ０状態及び低電力状態を含む複数のリンク状態をサポートすることができる。
【００８３】
図１８は、アクティブ状態（例えば、Ｌ０）及び低電力と、アイドル状態（例えば、Ｌ１）との間の遷移の例示的なフローを示す単純化されたブロック図１８００である。この特定の例では、第１のデバイス１８０５及び第２のデバイス１８１０はＭＣＰＬを用いて通信可能に結合される。アクティブ状態にある間、データはＭＣＰＬのレーン（例えば、ＤＡＴＡ、ＶＡＬＩＤ、ＳＴＲＥＡＭ等）を介して送信される。レーン（例えば、データレーンであり、ストリーム信号が、データがＬＬＰデータであることを示す）を介してリンク層パケット（ＬＬＰ）を通信し、リンク状態遷移を促進するのに役立てることができる。例えば、第１のデバイス１８０５と第２のデバイス１８１０との間でＬＬＰを送信して、Ｌ０からＬ１へのエントリを交渉することができる。例えば、ＭＣＰＬによってサポートされる上位層プロトコルは、Ｌ１（又は別の状態）へのエントリが望ましいことを通信することができ、この上位層プロトコルは、物理層にＬ１に入らせるために、ＬＬＰを、ＭＣＰＬを介して送信させ、リンク層ハンドシェイクを促進することができる。例えば、図１８は、第２の（アップストリーム）デバイス１８１０から第１の（ダウンストリーム）デバイス１８０５に送信される「Ｌ１に入る」リクエストＬＬＰを含む、送信されるＬＬＰの少なくとも一部分を示す。いくつかの実施態様及び上位レベルプロトコルでは、ダウンストリームポートはＬ１へのエントリを開始しない。数ある例の中でも、受信側の第１のデバイス１８０５は、応答時に「Ｌ１に変更」リクエストＬＬＰを送信することができ、第２のデバイス１８１０は、この応答を、「Ｌ１に変更」確認応答（ＡＣＫ）ＬＬＰを通じて確認応答することができる。ハンドシェイクの完了を検出すると、論理ＰＨＹは、サイドバンド信号が専用サイドバンドリンクにおいてアサートされるようにし、ＡＣＫが受信されたこと、及びデバイス（例えば、１８０５）が、Ｌ１へのエントリの準備ができており、これを予期していることを確認応答する。例えば、第１のデバイス１８０５は、第２のデバイス１８１０に送信されるサイドバンド信号１８１５をアサートし、リンク層ハンドシェイクにおける最終的なＡＣＫの受信を確認することができる。更に、第２のデバイス１８１０も、サイドバンド信号１８１５に応答してサイドバンド信号をアサートし、第１のデバイス１８０５に、第１のデバイスのサイドバンドＡＣＫ１８０５を通知することができる。リンク層制御及びサイドバンドハンドシェイクが完了すると、ＭＣＰＬ  ＰＨＹはＬ１状態に遷移することができ、これにより、デバイス１８０５、１８１０の１８２０、１８２５のそれぞれのＭＣＰＬストローブを含む、ＭＣＰＬの全てのレーンがアイドル電力節減モードに入る。例えば、ＭＣＰＬを介して他のデバイスに送信されるデータの検出に応答して、第１のデバイス１８０５及び第２のデバイス１８１０のうちの一方の上位レベル層ロジックがＬ０への再エントリをリクエストすると、Ｌ１を出ることができる。
【００８４】
上記で示したように、いくつかの実施態様では、ＭＣＰＬは、潜在的に複数の異なるプロトコルをサポートする２つのデバイス間の通信を促進することができ、ＭＣＰＬは、ＭＣＰＬのレーンを介する複数のプロトコルのうちの潜在的に任意の１つによる通信を促進することができる。一方、複数のプロトコルを促進することは、少なくともいくつかのリンク状態へのエントリ及び再エントリを複雑にする可能性がある。例えば、いくつかの従来のインターコネクトは、状態遷移におけるマスタの役割を仮定した単一の上位層を有するのに対し、複数の異なるプロトコルを有するＭＣＰＬの実装は、事実上複数のマスタを伴う。例として、図１８に示すように、ＭＣＰＬの実装により、２つのデバイス１８０５、１８１０間でＰＣＩｅ及びＩＤＩの各々をサポートすることができる。例えば、物理層をアイドル又は低電力状態にすることは、サポートされるプロトコル（例えば、ＰＣＩｅ及びＩＤＩの双方）の各々から最初に得られる許可を条件とすることができる。
【００８５】
場合によっては、Ｌ１（又は別の状態）へのエントリは、ＭＣＰＬの実施のためにサポートされる、複数のサポートされるプロトコルのうちの１つのみによってリクエストすることができる。他のプロトコルが（例えば、ＭＣＰＬにおける同様の条件（例えば、トラフィックがほとんど又は全くない）を特定することに基づいて）同様に同じ状態へのエントリをリクエストする可能性があるが、論理ＰＨＹは、実際に状態遷移を促進する前に、各上位層プロトコルから許可又は命令が受信されるまで待機することができる。論理ＰＨＹは、いずれの上位層プロトコルが状態変化をリクエストした（例えば、対応するハンドシェイクを実行した）かを追跡し、プロトコルの各々が、Ｌ０からＬ１への遷移、又は他のプロトコルの通信に影響若しくは干渉する別の遷移等の特定の状態変化をリクエストしたことを特定すると、状態遷移をトリガすることができる。いくつかの実施態様では、プロトコルは、システム内の他のプロトコルに対する自身の少なくとも部分的な依存性に関して認識していない可能性がある。更に、場合によっては、プロトコルは、リクエストされた状態遷移の確認又は拒否等の特定の状態に入るリクエストに対する応答を（例えば、ＰＨＹから）予期する場合がある。したがって、そのような場合、アイドルリンク状態へのエントリに関する他のサポートされるプロトコルからの許可を待機する間、論理ＰＨＹは、アイドル状態に入るリクエストに対する合成応答を生成し、要求側の上位層プロトコルに、（実際には、少なくとも、他のプロトコルもアイドル状態へのエントリをリクエストするまで、レーンが依然としてアクティブであるときに）特定の状態に入ったことを信じさせるように「騙す」ことができる。数ある潜在的な利点の中でも、これは、数ある例の中でも複数のプロトコル間での低電力状態へのエントリの調整を単純化することができる。
【００８６】
上記で記載した装置、方法及びシステムは、上述したように任意の電子デバイス又はシステムにおいて実施することができる。特定の例として、以下の図は、本明細書において説明されるような本発明を利用する例示的なシステムを提供する。以下のシステムは、より詳細に説明されているが、上記の検討から、複数の異なるインターコネクトが開示され、説明され、修正される。容易に明らかとなるように、上記で説明した利点は、これらのインターコネクト、ファブリック又はアーキテクチャのうちの任意のものに適用することができる。
【００８７】
図１９を参照すると、マルチコアプロセッサを含むコンピューティングシステムのためのブロック図の一実施形態が示されている。プロセッサ１９００は、マイクロプロセッサ、埋込みプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、ハンドヘルドプロセッサ、アプリケーションプロセッサ、コプロセッサ、システムオンチップ（ＳＯＣ）又はコードを実行する他のデバイス等の任意のプロセッサ又は処理デバイスを含む。１つの実施形態では、プロセッサ１９００は、少なくとも２つのコア、コア１９０１及び１９０２を含む。これは、非対称コア又は対称コア（示す実施形態）を含むことができる。一方、プロセッサ１９００は、対称又は非対称とすることができる任意の数の処理要素を含むことができる。
【００８８】
１つの実施形態では、処理要素は、ソフトウェアスレッドをサポートするハードウェア又はロジックを指す。ハードウェア処理要素の例は、スレッドユニット、スレッドスロット、スレッド、プロセスユニット、コンテキスト、コンテキストユニット、論理プロセッサ、ハードウェアスレッド、コア、及び／又は、実行状態若しくは構造的状態等のプロセッサの状態を保持することが可能な任意の他の要素を含む。換言すれば、１つの実施形態では、処理要素は、ソフトウェアスレッド、オペレーティングシステム、アプリケーション又は他のコード等のコードに独立して関連付けられることが可能な任意のハードウェアを指す。物理プロセッサ（又はプロセッサソケット）は通常、コア又はハードウェアスレッド等の潜在的に任意の数の他の処理要素を含む集積回路を指す。
【００８９】
コアは、多くの場合、独立した構造的状態を維持することが可能な集積回路上に位置するロジックを指す。独立して維持される各構造的状態は、少なくともいくつかの専用実行リソースに関連付けられる。コアと対照的に、ハードウェアスレッドは通常、独立した構造的状態を維持することが可能な集積回路上に位置する任意のロジックを指し、独立して維持される構造的状態は、実行リソースへのアクセスを共有する。見てわかるように、一定のリソースが共有され、他のリソースが構造的状態に専用であるとき、ハードウェアスレッド及びコアの用語間のラインは重複する。更に多くの場合に、コア及びハードウェアスレッドは、オペレーティングシステムによって、個々の論理プロセッサとみなされ、ここで、オペレーティングシステムは、各論理プロセッサにおいて動作を個々にスケジューリングすることが可能である。
【００９０】
図１９に示すように、物理プロセッサ１９００は、２つのコア、コア１９０１及び１９０２を含む。ここで、コア１９０１及び１９０２は、対称コア、すなわち、同じ構成、機能ユニット及び／又はロジックを有するコアとみなされる。別の実施形態では、コア１９０１はアウトオブオーダプロセッサコアを含むのに対し、コア１９０２はインオーダプロセッサコアを含む。一方、コア１９０１及び１９０２は、ネイティブコア、ソフトウェア管理コア、ネイティブ命令セットアーキテクチャ（ＩＳＡ：Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ａｒｃｈｉｔｅｃｕｔｕｒｅ）を実行するように適合されたコア、変換された命令セットアーキテクチャ（ＩＳＡ）を実行するように適合されたコア、共同設計されたコア、又は他の既知のコア等の任意のタイプのコアから個々に選択することができる。異種のコア環境（すなわち、非対称コア）において、バイナリ変換等の、ある形態の変換を利用して、一方又は双方のコアにおいてコードをスケジューリング又は実行することができる。また更に検討を進めて、コア１９０１に示す機能ユニットが以下で更に詳細に説明され、コア１９０２内のユニットは示される実施形態において同様に動作する。
【００９１】
示されるように、コア１９０１は、ハードウェアスレッドスロット１９０１ａ及び１９０１ｂと呼ばれる場合もある２つのハードウェアスレッド１９０１ａ及び１９０１ｂを含む。したがって、１つの実施形態において、オペレーティングシステム等のソフトウェアエンティティは、潜在的に、プロセッサ１９００を４つの別個のプロセッサ、すなわち、４つのソフトウェアスレッドを同時に実行することが可能な４つの論理プロセッサ又は処理要素とみなす。上記で示唆したように、第１のスレッドは、アーキテクチャ状態レジスタ１９０１ａに関連付けられ、第２のスレッドはアーキテクチャ状態レジスタ１９０１ｂに関連付けられ、第３のスレッドはアーキテクチャ状態レジスタ１９０２ａに関連付けることができ、第４のスレッドはアーキテクチャ状態レジスタ１９０２ｂに関連付けることができる。ここで、上記で説明したように、アーキテクチャ状態レジスタ（１９０１ａ、１９０１ｂ、１９０２ａ及び１９０２ｂ）の各々を、処理要素、スレッドスロット又はスレッドユニットと呼ぶことができる。示すように、アーキテクチャ状態レジスタ１９０１ａは、アーキテクチャ状態レジスタ１９０１ｂにおいて複製され、このため、個々のアーキテクチャ状態／コンテキストが、論理プロセッサ１９０１ａ及び論理プロセッサ１９０１ｂのために記憶されることが可能である。コア１９０１において、アロケータ及びリネーマブロック１９３０における命令ポインタ及びリネームロジック等の他のより小さなリソースも、スレッド１９０１ａ及び１９０１ｂのために複製することができる。リオーダ／リタイアメントユニット１９３５におけるリオーダバッファ、ＩＬＴＢ１９２０、ロード／記憶バッファ及びキュー等のいくつかのリソースを、分割を通じて共有することができる。汎用内部レジスタ、ページテーブルベースレジスタ、低レベルデータキャッシュ及びデータＴＬＢ１９１５、実行ユニット１９４０、及びアウトオブオーダユニット１９３５の部分等の他のリソースが潜在的に完全に共有される。
【００９２】
プロセッサ１９００は、多くの場合に他のリソースを含み、これらは完全に共有されるか、分割を通じて共有されるか、又は処理要素によって／に専用にすることができる。図１９において、プロセッサの例示的な論理ユニット／リソースを有する単なる例示的なプロセッサの一実施形態が示されている。プロセッサは、これらの機能ユニットのうちの任意のものを含むか又は省くことができ、示されていない任意の他の既知の機能ユニット、ロジック又はファームウェアを含むことができることに留意されたい。示されるように、コア１９０１は、単純化された、代表的なアウトオブオーダ（ＯＯＯ）プロセッサコアを含む。しかし、様々な実施形態においてインオーダプロセッサを利用することができる。ＯＯＯコアは、実行／取得されるブランチを予測するブランチターゲットバッファ１９２０を含み、命令のアドレス変換エントリを記憶する命令変換バッファ（Ｉ−ＴＬＢ）１９２０を含む。
【００９３】
コア１９０１は、フェッチされた要素をデコードするためにフェッチユニット１９２０に結合されたデコードモジュール１９２５を更に含む。フェッチロジックは、１つの実施形態では、それぞれスレッドスロット１９０１ａ、１９０１ｂに関連付けられた個々のシーケンサを含む。通常、コア１９０１は第１のＩＳＡに関連付けられている。第１のＩＳＡは、プロセッサ１９００上で実行可能な命令を定義／指定する。第１のＩＳＡの一部である機械コード命令は、多くの場合、実行される命令又は動作を参照／指定する命令の一部分（ｏｐｃｏｄｅと呼ばれる）を含む。デコードロジック１９２５は、これらの命令をｏｐｃｏｄｅから認識し、デコードされた命令を第１のＩＳＡによって定義されているように処理のためのパイプラインに通す回路部を含む。例えば、以下で更に詳細に検討するように、デコーダ１９２５は、１つの実施形態では、トランザクション命令等の特定の命令を認識するように設計又は適合されたロジックを含む。デコーダ１９２５による認識の結果として、アーキテクチャ又はコア１９０１は、適切な命令に関連付けられたタスクを実行する特定の予め定められた行動を行う。本明細書において説明されるタスク、ブロック、動作及び方法のうちの任意のものを、単一の又は複数の命令に応答して実行することができることに留意することが重要である。それらの命令のうちのいくつかは、新たな命令又は古い命令である場合がある。デコーダ１９２６は、１つの実施形態では、同じＩＳＡ（又はそのサブセット）を認識することに留意されたい。代替的に、異種のコア環境では、デコーダ１９２６は第２のＩＳＡ（第１のＩＳＡのサブセット又は別個のＩＳＡ）を認識する。
【００９４】
１つの例では、アロケータ又はリネーマブロック１９３０は、命令処理結果を記憶するレジスタファイル等のリソースを予約するためのアロケータを含む。一方、スレッド１９０１ａ及び１９０１ｂは、潜在的に、アウトオブオーダ実行が可能であり、この場合、アロケータ及びリネーマブロック１９３０も、命令結果を追跡するためのリオーダバッファ等の他のリソースを予約する。ユニット１９３０も、プロセッサ１９００の内部の他のレジスタに対するプログラム／命令基準レジスタをリネームするレジスタリネーマを含む。リオーダ／リタイアメントユニット１９３５は、アウトオブオーダ実行、及び後の、アウトオブオーダ実行された命令のインオーダリタイアメントをサポートするための、上述したリオーダバッファ、ロードバッファ及びストアバッファ等のコンポーネントを含む。
【００９５】
スケジューラ及び実行ユニットブロック１９４０は、１つの実施形態では、実行ユニット上で命令／動作をスケジューリングするスケジューラユニットを含む。例えば、浮動小数点命令が、利用可能な浮動小数点実行ユニットを有する実行ユニットのポート上でスケジューリングされる。実行ユニットに関連付けられたレジスタファイルも、情報命令処理結果を記憶するために含まれる。例示的な実行ユニットは、浮動小数点実行ユニットと、整数実行ユニットと、ジャンプ実行ユニットと、ロード実行ユニットと、ストア実行ユニットと、他の既知の実行ユニットとを含む。
【００９６】
低レベルデータキャッシュ及びデータ変換バッファ（Ｄ−ＴＬＢ）１９５０は実行ユニット１９４０に結合される。データキャッシュは、潜在的にメモリコヒーレンシ状態に保持されているデータオペランド等の最近使用／操作された要素を記憶するためのものである。Ｄ−ＴＬＢは、最近の仮想／リニア対物理アドレス変換を記憶するためのものである。特定の例として、プロセッサは、物理メモリを複数の仮想ページに分割するページテーブル構造を含むことができる。
【００９７】
ここで、コア１９０１及び１９０２は、オンチップインタフェース１９１０に関連付けられた第２のレベルのキャッシュ等のより高レベルの又は更に外側のキャッシュへのアクセスを共有する。より高レベル又は更に外側とは、キャッシュレベルが実行ユニットから増大するか又は離れることを指すことに留意されたい。１つの実施形態では、より高レベルのキャッシュは、第２の又は第３のレベルのデータキャッシュ等の、最終レベルデータキャッシュ、すなわち、プロセッサ１９００におけるメモリ階層における最後のキャッシュである。一方、より高いレベルのキャッシュはそれほど限定されていない。なぜなら、このキャッシュは命令キャッシュに関連付けられるか又は命令キャッシュを含むことができるためである。代わりに、トレースキャッシュ、すなわち命令キャッシュの一タイプをデコーダ１９２５が最近デコードされたトレースを記憶した後に結合することができる。ここで、命令は、潜在的にマクロ命令（すなわち、デコーダによって認識される一般的な命令）を指す。マクロ命令は、複数のマイクロ命令（マイクロ演算）にデコードすることができる。
【００９８】
示される構成では、プロセッサ１９００は、オンチップインタフェースモジュール１９１０も含む。従来から、以下でより詳細に説明されるメモリコントローラが、プロセッサ１９００の外部のコンピューティングシステムに含まれていた。このシナリオでは、オンチップインタフェース１９１０が、システムメモリ１９７５、チップセット（多くの場合、メモリ１９７５に接続するためのメモリコントローラハブ及び周辺デバイスに接続するためのＩ／Ｏコントローラハブを含む）、メモリコントローラハブ、ノースブリッジ又は他の集積回路等の、プロセッサ１９００の外部のデバイスと通信するためのものである。そしてこのシナリオでは、バス１９０５は、マルチドロップバス、ポイントツーポイントインターコネクト、シリアルインターコネクト、パラレルバス、コヒーレント（例えば、キャッシュコヒーレント）バス、階層化プロトコルアーキテクチャ、差動バス及びＧＴＬバス等の任意の既知のインターコネクトを含むことができる。
【００９９】
メモリ１９７５は、プロセッサ１９００に専用とすることもできるし、又はシステム内の他のデバイスと共有することもできる。メモリ１９７５のタイプの一般的な例は、ＤＲＡＭ、ＳＲＡＭ、不揮発性メモリ（ＮＶメモリ）及び他の既知のストレージデバイスを含む。デバイス１９８０は、グラフィックアクセラレータ、メモリコントローラハブに結合されたプロセッサ若しくはカード、Ｉ／Ｏコントローラハブに結合されたデータストレージ、無線送受信機、フラッシュデバイス、オーディオコントローラ、ネットワークコントローラ又は他の既知のデバイスを含むことができることに留意されたい。
【０１００】
一方、最近、より多くのロジック及びデバイスがＳＯＣ等の単一のダイ上に集積されているため、これらのデバイスの各々をプロセッサ１９００上に組み込むことができる。例えば、１つの実施形態では、メモリコントローラハブは、プロセッサ１９００と同じパッケージ及び／又はダイ上にある。ここで、コアの一部分（オンコア部分）１９１０は、メモリ１９７５又はグラフィックデバイス１９８０等の他のデバイスとインタフェースするための１以上のコントローラを含む。そのようなデバイスとインタフェースするためのインターコネクト及びコントローラを含む構成は、多くの場合、オンコア（又はアンコア構成）と呼ばれる。例として、オンチップインタフェース１９１０は、オンチップ通信のためのリングインターコネクト及びオフチップ通信のための高速シリアルポイントツーポイントリンク１９０５を含む。しかし、ＳＯＣ環境では、ネットワークインタフェース、コプロセッサ、メモリ１９７５、グラフィックプロセッサ１９８０及び任意の他の既知のコンピュータデバイス／インタフェース等の更に多くのデバイスを単一のダイ又は集積回路上に集積し、高い機能性及び低電力消費で小さなフォームファクタを提供することができる。
【０１０１】
１つの実施形態では、プロセッサ１９００は、コンパイラ、最適化及び／又は変換器コード１９７７を実行して、本明細書に記載される装置及び方法並びにそれらとのインタフェースをサポートするためのアプリケーションコード１９７６をコンパイル、変換及び／又は最適化することができる。コンパイラは、多くの場合、ソーステキスト／コードをターゲットテキスト／コードに変換するプログラム又は１組のプログラムを含む。通例、コンパイラを用いたプログラム／アプリケーションコードのコンパイルは、複数のフェーズ及びパスで行われ、高レベルプログラミング言語コードを低レベルの機械又はアセンブリ言語コードに変換する。しかし、単純なコンパイルのために依然としてシングルパスコンパイラが用いられる場合がある。コンパイラは、任意の既知のコンパイル技法を利用して、語彙解析、前処理、パース、意味解析、コード生成、コード変換及びコード最適化等の任意の既知のコンパイラ動作を実行することができる。
【０１０２】
より大型のコンパイラは、多くの場合、複数のフェーズを含むが、最も多くの場合、これらのフェーズは大まかな２つのフェーズ、すなわち、（１）フロントエンド、すなわち、通常、構文処理、意味処理及びいくつかの変換／最適化を行うことができるところと、（２）バックエンド、すなわち、解析、変換、最適化及びコード生成を行うところと、に含まれる。いくつかのコンパイラは、コンパイラのフロントエンドとバックエンドとの間の境界が曖昧であることを示す中間を指す。結果として、コンパイラの挿入、関連付け、生成又は他の動作の参照を、上述したフェーズ又はパスのうちの任意のもの、及びコンパイラの任意の他の既知のフェーズ又はパスにおいて行うことができる。説明のための例として、コンパイラは、コンパイルのフロントエンドフェーズにおける呼／動作の挿入等のコンパイルの１以上のフェーズにおける動作、呼、機能等を潜在的に挿入し、次に、変換フェーズ中に呼／動作をより低レベルのコードに変換する。動的コンパイル中、コンパイラコード又は動的最適化コードは、そのような動作／呼を挿入し、ランタイム中の実行のためにコードを最適化することができることに留意されたい。説明のための特定の例として、バイナリコード（既にコンパイルされたコード）は、ランタイム中に動的に最適化することができる。ここで、プログラムコードは、動的最適化コード、バイナリコード又はこれらの組合せを含むことができる。
【０１０３】
コンパイラと同様に、バイナリ変換器等の変換器は、コードを静的又は動的に変換してコードを最適化及び／又は変換する。したがって、コード、アプリケーションコード、プログラムコード又は他のソフトウェア環境の実行の参照は、（１）コンパイラプログラム、最適化コードオプティマイザ又は変換器を動的又は静的に実行して、プログラムコードをコンパイルするか、ソフトウェア構造を維持するか、他の動作を実行するか、コードを最適化するか若しくはコードを変換すること、（２）最適化／コンパイルされたアプリケーションコード等の動作／呼を含むメインプログラムコードを実行すること、（３）メインプログラムコードに関連付けられたライブラリ等の他のプログラムコードを実行して、ソフトウェア構造を維持するか、他のソフトウェア関連動作を実行するか若しくはコードを最適化すること、又は（４）それらの組合せ、を指すことができる。
【０１０４】
図２０を参照すると、マルチコアプロセッサの一実施形態のブロック図が示されている。図２０の実施形態に示すように、プロセッサ２０００は複数の領域を含む。特に、コアドメイン２０３０は、複数のコア２０３０Ａ〜２０３０Ｎを含み、グラフィックドメイン２０６０は、メディアエンジン２０６５及びシステムエージェントドメイン２０１０を有する１以上のグラフィックエンジンを含む。
【０１０５】
様々な実施形態では、システムエージェントドメイン２０１０は、所与のユニットにおいて生じるアクティブ性（又は非アクティブ性）を考慮して、ドメイン２０３０及び２０６０の個々のユニット（例えば、コア及び／又はグラフィックエンジン）が適切な電力モード／レベル（例えば、アクティブ、ターボ、スリープ、ハイバネート、ディープスリープ、又は他の進化型構成電力インタフェースのような状態）で動的に動作するように独立して制御可能であるように電力制御イベント及び電力管理を処理する。ドメイン２０３０及び２０６０の各々は、異なる電圧及び／又は電力で動作することができ、更に、ドメイン内の個々のユニットはそれぞれ、潜在的に独立した周波数及び電圧で動作する。３つのドメインのみを用いて示されているが本発明の範囲はこれに関して限定されず、他の実施形態では更なるドメインが存在してもよいことに留意されたい。
【０１０６】
示すように、各コア２０３０は、様々な実行ユニット及び追加の処理要素に加えて、低レベルキャッシュを更に含む。ここで、様々なコアが互いに結合され、最終レベルキャッシュ（ＬＬＣ）２０４０Ａ〜２０４０Ｎの複数のユニット又はスライスから形成される共有キャッシュメモリに結合される。これらのＬＬＣは、多くの場合、ストレージ及びキャッシュコントローラの機能を含み、コア間で共有され、潜在的にはグラフィックエンジン間でも共有される。
【０１０７】
示すように、リングインターコネクト２０５０は、コアを共に結合し、それぞれがコアとＬＬＣスライスとの間の結合部にある複数のリング係止部２０５２Ａ〜２０５２Ｎを介して、コアドメイン２０３０と、グラフィックドメイン２０６０と、システムエージェント回路部２０１０との間のインターコネクトを提供する。図２０に示すように、インターコネクト２０５０は、アドレス情報、データ情報、確認応答情報及びスヌープ／無効情報を含む様々な情報を搬送するのに用いられる。リングインターコネクトが示されているが、任意の既知のダイ上インターコネクト又はファブリックを利用することができる。説明のための例として、上記で検討したファブリックのうちのいくつか（例えば、別のダイ上インターコネクト、オンチップシステムファブリック（ＯＳＦ）、進化型マイクロコントローラバスアーキテクチャ（ＡＭＢＡ）インターコネクト、多次元メッシュファブリック又は他の既知のインターコネクトアーキテクチャ）を同様に利用することができる。
【０１０８】
更に示すように、システムエージェントドメイン２０１０は、関連付けられた表示の制御及びこの表示へのインタフェースを提供するための表示エンジン２０１２を含む。システムエージェントドメイン２０１０は、システムメモリ（例えば、複数のＤＩＭＭを実装されたＤＲＡＭ、メモリコヒーレンス動作を実行するコヒーレンスロジック２０２２）にインタフェースを提供する集積メモリコントローラ２０２０等の他のユニットを含むことができる。プロセッサと他の回路部との間のインターコネクトを可能にするための複数のインタフェースが存在することができる。例えば、１つの実施形態では、少なくとも１つの直接メディアインタフェース（ＤＭＩ）２０１６インタフェース及び１以上のＰＣＩｅ（商標）インタフェース２０１４が提供される。表示エンジン及びこれらのインタフェースは、通常、ＰＣＩｅ（商標）ブリッジ２０１８を介してメモリに結合する。また更に、更なるプロセッサ又は他の回路部等の他のエージェント間の通信を提供するために、１以上の他のインタフェースを提供することができる。
【０１０９】
ここで、図２１を参照すると、代表的なコアのブロック図、特に、図２０からのコア２０３０等のコアのバックエンドの論理ブロックが示されている。通常、図２１に示す構造は、フロントエンドユニット２１７０を有するアウトオブオーダプロセッサを含む。このフロントエンドユニット２１７０は、着信命令をフェッチし、様々な処理（例えば、キャッシュ、デコード、分岐予測等）を実行し、アウトオブオーダ（ＯＯＯ）エンジン２１８０に沿って命令／動作を渡すのに用いられる。ＯＯＯエンジン２１８０は、デコードされた命令に対し更なる処理を実行する。
【０１１０】
特に、図２１の実施形態において、アウトオブオーダエンジン２１８０は、フロントエンドユニット２１７０から、１以上のマイクロ命令又はμｏｐの形態をとることができる、デコードされた命令を受信し、これらを、レジスタ等の適切なリソースに割り当てる割当てユニット２１８２を含む。次に、命令は予約ステーション２１８４に提供され、予約ステーション２１８４は、リソースを予約し、これらのリソースを複数の実行ユニット２１８６Ａ〜２１８６Ｎのうちの１つにおける実行のためにスケジューリングする。例えば、数ある中でも、算術ロジックユニット（ＡＬＵ）、ロード及びストアユニット、ベクトル処理ユニット（ＶＰＵ）、浮動小数点実行ユニットを含む様々なタイプの実行ユニットが存在することができる。これらの異なる実行ユニットからの結果をリオーダバッファ（ＲＯＢ）２１８８に提供することができる。ＲＯＢ２１８８は、順序付けされていない結果を取得し、プログラム順序を補正するためにこれらの結果を返す。
【０１１１】
更に図２１を参照すると、フロントエンドユニット２１７０及びアウトオブオーダエンジン２１８０の双方がメモリ階層の異なるレベルに結合されることに留意されたい。特に示されるのは、命令レベルキャッシュ２１７２であり、そして、この命令レベルキャッシュは中間レベルキャッシュ２１７６に結合し、そして、この中間レベルキャッシュは、最終レベルキャッシュ２１９５に結合する。１つの実施形態では、最終レベルキャッシュ２１９５がオンチップ（アンコアと呼ばれる場合もある）ユニット２１９０において実施される。例として、ユニット２１９０は、図２０のシステムエージェント２０１０に類似している。上記で検討するように、アンコア２１９０は、システムメモリ２１９９と通信し、このシステムメモリ２１９９は、例示される実施形態では、ＥＤ  ＲＡＭを介して実施される。アウトオブオーダエンジン２１８０内の様々な実行ユニット２１８６が、第１のレベルのキャッシュ２１７４と通信し、この第１のレベルのキャッシュ２１７４が中間レベルキャッシュ２１７６とも通信することにも留意されたい。追加のコア２１３０Ｎ−２〜２１３０ＮがＬＬＣ２１９５に結合することができることにも留意されたい。図２１の実施形態ではこの高レベルに示されているが、様々な代替及び追加のコンポーネントが存在する場合があることを理解されたい。
【０１１２】
図２２を参照すると、命令を実行する実行ユニットを含むプロセッサを用いて形成された例示的なコンピュータシステムのブロック図が示されている。ここで、インターコネクトのうちの１以上が本発明の１つの実施形態による１以上の特徴を実施する。システム２２００は、本明細書において説明される実施形態におけるように、本発明に従ってデータを処理するアルゴリズムを実行するロジックを含む実行ユニットを用いるプロセッサ２２０２等のコンポーネントを備える。システム２２００はＰＥＮＴＩＵＭ（登録商標）  ＩＩＩ、ＰＥＮＴＩＵＭ（登録商標）４、Ｘｅｏｎ（商標）、Ｉｔａｎｉｕｍ、ＸＳｃａｌｅ（商標）及び／又はＳｔｒｏｎｇＡＲＭ（商標）マイクロプロセッサに基づく処理システムを表すが、他のシステム（他のマイクロプロセッサ、エンジニアリングワークステーション、セットトップボックス等を有するＰＣを含む）も用いることができる。１つの実施形態では、サンプルシステム２２００は、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎから入手可能なＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムのバージョンを実行するが、他のオペレーティングシステム（例えば、ＵＮＩＸ（登録商標）及びＬｉｎｕｘ（登録商標））、埋込みソフトウェア及び／又はグラフィカルユーザインタフェースも用いることができる。このため、本発明の実施形態は、ハードウェア回路部及びソフトウェアのいかなる特定の組合せにも限定されない。
【０１１３】
実施形態は、コンピュータシステムに限定されない。本発明の代替的な実施形態は、ハンドヘルドデバイス及び埋込みアプリケーション等の他のデバイスにおいて用いることができる。ハンドヘルドデバイスのいくつかの例は、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、携帯情報端末（ＰＤＡ）及びハンドヘルドＰＣを含む。埋込みアプリケーションは、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、システムオンチップ、ネットワークコンピュータ（ＮｅｔＰＣ）、セットトップボックス、ネットワークハブ、広域ネットワーク（ＷＡＮ）スイッチ、又は、少なくとも１つの実施形態に従って１つ若しくは複数の命令を実行することができる任意の他のシステムを含むことができる。
【０１１４】
この説明される実施形態では、プロセッサ２２０２は、少なくとも１つの命令を実行するアルゴリズムを実施する１以上の実行ユニット２２０８を含む。１つの実施形態は、単一のプロセッサデスクトップ又はサーバシステムの文脈で説明される場合があるが、代替的な実施形態をマルチプロセッサシステムに含めてもよい。システム２２００は「ハブ」システムアーキテクチャの一例である。コンピュータシステム２２００は、データ信号を処理するプロセッサ２２０２を含む。プロセッサ２２０２は、１つの説明のための例として、複合命令セットコンピュータ（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピューティング（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ：ｖｅｒｙ  ｌｏｎｇ  ｉｎｓｔｒｕｃｔｉｏｎ  ｗｏｒｄ）マイクロプロセッサ、命令セットの組合せを実施するプロセッサ、又は、例えばデジタル信号プロセッサ等の任意の他のプロセッサデバイスを含む。プロセッサ２２０２は、プロセッサ２２０２と、システム２２００内の他のコンポーネントとの間でデータ信号を送信するプロセッサバス２２１０に結合される。システム２２００の要素（例えば、グラフィックアクセラレータ２２１２、メモリコントローラハブ２２１６、メモリ２２２０、Ｉ／Ｏコントローラハブ２２２４、無線送受信機２２２６、フラッシュＢＩＯＳ２２２８、ネットワークコントローラ２２３４、オーディオコントローラ２２３６、シリアル拡張ポート２２３８、Ｉ／Ｏコントローラ２２４０等）が、当業者にはよく知られている従来の機能を実行する。
【０１１５】
１つの実施形態において、プロセッサ２２０２は、レベル１（Ｌ１）内部キャッシュメモリ２２０４を備える。アーキテクチャに応じて、プロセッサ２２０２は、単一の内部キャッシュ又は複数レベルの内部キャッシュを有することができる。他の実施形態は、特定の実施態様及び需要に応じて、内部キャッシュ及び外部キャッシュの双方の組合せを含む。レジスタファイル２２０６は、整数レジスタ、浮動小数点レジスタ、ベクトルレジスタ、バンクレジスタ、シャドウレジスタ、チェックポイントレジスタ、ステータスレジスタ及び命令ポインタレジスタを含む様々なレジスタに様々なタイプのデータを記憶するためのものである。
【０１１６】
整数演算及び浮動小数点演算を実行するためのロジックを含む実行ユニット２２０８もプロセッサ２２０２内に存在する。プロセッサ２２０２は、１つの実施形態では、マイクロコードを記憶するためのマイクロコード（μコード）ＲＯＭを含む。このマイクロコードは、実行されると、あるマイクロ命令のためのアルゴリズムを実行するか、又は複雑なシナリオに対処する。ここで、マイクロコードは、プロセッサ２２０２のためのロジックバグ／修正を処理するように潜在的に更新可能である。１つの実施形態について、実行ユニット２２０８は、パックされた命令セット２２０９を処理するためのロジックを含む。パック化された命令セット２２０９を、汎用プロセッサ２２０２の命令セット内に、命令を実行するための関連付けられた回路部と共に含めることによって、多くのマルチメディアアプリケーションによって用いられる演算が、汎用プロセッサ２２０２内のパックされたデータを用いることによって実行され得る。このため、パックされたデータに対し演算を実行するためにプロセッサデータバスの全幅を用いることによって、多くのマルチメディアアプリケーションが加速され、より効率的に実行される。これにより、潜在的には、１以上の演算を実行するために、より小さなデータユニットをプロセッサのデータバスにわたって一度に１つのデータ要素ずつ転送する必要がなくなる。
【０１１７】
実行ユニット２２０８の代替的な実施形態は、マイクロコントローラ、埋込みプロセッサ、グラフィックデバイス、ＤＳＰ及び他のタイプのロジック回路において用いることもできる。システム２２００はメモリ２２２０を含む。メモリ２２２０はダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイス、スタティックランダムアクセスメモリ（ＳＲＡＭ）デバイス、フラッシュメモリデバイス、又は他のメモリデバイスを含む。メモリ２２２０は、プロセッサ２２０２によって実行されるデータ信号によって表される命令及び／又はデータを記憶する。
【０１１８】
本発明の上述した特徴又は態様のうちの任意のものを、図２２に示す１以上のインターコネクトにおいて利用することができることに留意されたい。例えば、プロセッサ２２０２の内部ユニットを結合するための、示されていないダイ上インターコネクト（ＯＤＩ）は、上記で説明した本発明の１以上の態様を実施する。又は、本発明は、プロセッサバス２２１０（例えば、他の既知の高性能コンピューティングインターコネクト）、メモリ２２２０への高帯域幅メモリパス２２１８、グラフィックアクセラレータ２２１２へのポイントツーポイントリンク（例えば、周辺コンポーネントインターコネクトエクスプレス（ＰＣＩｅ）準拠ファブリック）、コントローラハブインターコネクト２２２２、Ｉ／Ｏ、又は他の示されるコンポーネントを結合するための他のインターコネクト（例えば、ＵＳＢ、ＰＣＩ、ＰＣＩｅ）に関連付けられる。そのようなコンポーネントのいくつかの例は、オーディオコントローラ２２３６、ファームウェアハブ（フラッシュＢＩＯＳ）２２２８、無線送受信機２２２６、データストレージ２２２４、ユーザ入力及びキーボードインタフェース２２４２を含むレガシＩ／Ｏコントローラ２２１０、ユニバーサルシリアルバス（ＵＳＢ）等のシリアル拡張ポート２２３８及びネットワークコントローラ２２３４を含む。データストレージデバイス２２２４は、ハードディスクドライブ、フロッピーディスクドライブ、ＣＤ−ＲＯＭデバイス、フラッシュメモリデバイス又は他のマスストレージデバイスを含むことができる。
【０１１９】
ここで、図２３を参照すると、本発明の一実施形態による第２のシステム２３００のブロック図が示されている。図２３に示すように、マルチプロセッサシステム２３００は、ポイントツーポイントインターコネクトシステムであり、ポイントツーポイントインターコネクト２３５０を介して結合された第１のプロセッサ２３７０及び第２のプロセッサ２３８０を含む。プロセッサ２３７０及び２３８０の各々は、プロセッサのあるバージョンとすることができる。１つの実施形態では、２３５２及び２３５４は、高性能アーキテクチャ等の、シリアルのポイントツーポイントコヒーレントインターコネクトファブリックの一部である。結果として、本発明はＱＰＩアーキテクチャ内で実施することができる。
【０１２０】
２つのみのプロセッサ２３７０、２３８０を用いて示されているが、本発明の範囲はそのように限定されていないことを理解されたい。他の実施形態では、所与のプロセッサ内に１以上の追加のプロセッサが存在し得る。
【０１２１】
集積メモリコントローラユニット２３７２を含むプロセッサ２３７０及び集積コントローラユニット２３８２を含むプロセッサ２３８０が示されている。プロセッサ２３７０は、バスコントローラユニットの一部として、ポイントツーポイント（Ｐ−Ｐ）インタフェース２３７６及び２３７８も含み、同様に、第２のプロセッサ２３８０はＰ−Ｐインタフェース２３８６及び２３８８を含む。プロセッサ２３７０、２３８０は、Ｐ−Ｐインタフェース回路２３７８、２３８８を用いてポイントツーポイント（Ｐ−Ｐ）インタフェース２３５０を介して情報を交換することができる。図２３に示すように、ＩＭＣ２３７２及び２３８２は、プロセッサを、それぞれのメモリ、すなわちメモリ２３３２及びメモリ２３３４に結合する。メモリ２３３２及びメモリ２３３４は、それぞれのプロセッサにローカルでアタッチされたメインメモリの一部分とすることができる。
【０１２２】
プロセッサ２３７０、２３８０はそれぞれ、ポイントツーポイントインタフェース回路２３７６、２３９４、２３８６、２３９８を用いて個々のＰ−Ｐインタフェース２３５２、２３５４を介してチップセット２３９０と情報を交換する。また、チップセット２３９０は、高性能グラフィックインターコネクト２３３９に沿ってインタフェース回路２３９２を介して高性能グラフィック回路２３３８と情報を交換する。
【０１２３】
共有キャッシュ（図示せず）を、プロセッサのいずれかの中に、又は双方のプロセッサの外側であるがＰ−Ｐインターコネクトを介してプロセッサと接続して含めることができ、それによって、プロセッサが低電力モードに入った場合に、いずれか又は双方のプロセッサのローカルキャッシュ情報を共有キャッシュに記憶することができる。
【０１２４】
チップセット２３９０は、インタフェース２３９６を介して第１のバス２３１６に結合することができる。１つの実施形態では、第１のバス２３１６は周辺コンポーネントインターコネクト（ＰＣＩ）バス、又はＰＣＩ  Ｅｘｐｒｅｓｓバス若しくは別の第３世代Ｉ／Ｏインターコネクトバス等のバスとすることができるが、本発明の範囲はそのように限定されていない。
【０１２５】
図２３に示すように、様々なＩ／Ｏデバイス２３１４が、第１のバス２３１６を第２のバス２３２０に結合するバスブリッジ２３１８と共に第１のバス２３１６に結合される。１つの実施形態では、第２のバス２３２０は、低ピンカウント（ＬＰＣ）バスを含む。１つの実施形態では、例えば、キーボード及び／又はマウス２３２２、通信デバイス２３２７、及び多くの場合に命令／コード及びデータ２３３０を含むディスクドライブ又は他のマスストレージデバイス等のストレージユニット２３２８を含む様々なデバイスが第２のバス２３２０に結合される。更に、第２のバス２３２０に結合されたオーディオＩ／Ｏ２３２４が示される。含まれるコンポーネント及びインターコネクトアーキテクチャが変動する他のアーキテクチャが可能であることに留意されたい。例えば、図２３のポイントツーポイントアーキテクチャの代わりに、システムは、マルチドロップバス又は他のそのようなアーキテクチャを実施することができる。
【０１２６】
次に図２４を参照すると、本発明によるシステムオンチップ（ＳＯＣ）設計の一実施形態が示される。説明のための特定の例として、ＳＯＣ２４００がユーザ機器（ＵＥ）に含まれる。１つの実施形態では、ＵＥは、ハンドヘルドフォン、スマートフォン、タブレット、超薄型ノートブック、ブロードバンドアダプター付きノートブック、又は任意の他の同様の通信デバイス等の、エンドユーザによって通信に用いられる任意のデバイスを指す。多くの場合、ＵＥは基地局又はノードに接続する。基地局又はノードは、潜在的に、ＧＳＭ（登録商標）ネットワークにおける移動局（ＭＳ）に性質が対応する。
【０１２７】
ここで、ＳＯＣ２４００は２つのコア、すなわち２４０６及び２４０７を含む。上記の検討と同様に、コア２４０６及び２４０７は、Ｉｎｔｅｌ（登録商標）アーキテクチャＣｏｒｅ（商標）ベースプロセッサ、Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ、Ｉｎｃ．（ＡＭＤ）プロセッサ、ＭＩＰＳベースのプロセッサ、ＡＲＭベースのプロセッサ設計又はそれらの顧客、及びそれらのライセンス又は利用者に適合することができる。コア２４０６及び２４０７は、システム２４００の他の部分と通信するためのバスインタフェースユニット２４０９及びＬ２キャッシュ２４１１に関連付けられたキャッシュコントロール２４０８に結合される。インターコネクト２４１０は、上記で検討したＩＯＳＦ、ＡＭＢＡ又は他のインターコネクト等のオンチップインターコネクトを含む。これらは潜在的に、本明細書において説明した１以上の態様を実施する。
【０１２８】
インタフェース２４１０は、加入者アイデンティティモジュール（ＳＩＭ）カードとインタフェースするためのＳＩＭ２３４０、ＳＯＣ２４００を初期化及びブートするためのコア２４０６及び２４０７によって実行されるブートコードを保持するブートＲＯＭ２４３５、外部メモリ（例えば、ＤＲＡＭ２４６０）とインタフェースするためのＳＤＲＡＭコントローラ２４４０、不揮発性メモリ（例えば、フラッシュ２４６５）とインタフェースするためのフラッシュコントローラ２４４５、周辺機器とインタフェースするための周辺制御２４５０（例えば、シリアル周辺インタフェース）、ビデオコーデック２４２０、及び入力（例えば、タッチ有効入力）を表示し受信するためのビデオインタフェース２４２５、グラフィック関連計算を実行するためのＧＰＵ２４１５等の、他のコンポーネントへの通信チャネルを提供する。これらのインタフェースの任意のものが、本明細書に記載の本発明の態様を組み込むことができる。
【０１２９】
更に、システムは、Ｂｌｕｅｔｏｏｔｈ（登録商標）モジュール２４７０、３Ｇモデム２４７５、ＧＰＳ２４８５及びＷｉＦｉ２４８５等の通信のための周辺機器を示す。上記で示したように、ＵＥは通信のための無線機を含むことに留意されたい。結果として、これらの周辺通信モジュールは全てが必要とされるわけではない。一方、ＵＥにおいて、外部通信のための何らかの形態の無線機が含まれる。
【０１３０】
本発明を、限られた数の実施形態に関して説明してきたが、当業者であれば、ここからの多数の変更及び変形を理解するであろう。添付の特許請求の範囲は、本発明の真の趣旨及び範囲内にある全ての変更及び変形をカバーすることが意図される。
【０１３１】
設計は、作成からシミュレーション、そして製造へと様々な段階を経ることができる。設計を表すデータは、複数の方式で設計を表すことができる。第１に、シミュレーションにおいて有用であるように、ハードウェアは、ハードウェア記述言語又は別の機能記述言語を用いて表すことができる。更に、ロジック及び／又はトランジスタゲートを有する回路レベルモデルを、設計プロセスのいくつかの段階で生成することができる。更に、ほとんどの設計は、いくつかの段階において、ハードウェアモデル内の様々なデバイスの物理的配置を表すデータレベルに到達する。従来の半導体製造技法が用いられる場合、ハードウェアモデルを表すデータは、集積回路を作製するのに用いられるマスクのための様々なマスク層における様々な特徴の存否を指定するデータとすることができる。設計の任意の表現において、データは任意の形態の機械可読媒体に記憶することができる。ディスク等のメモリ又は磁気若しくは光学ストレージは、そのような情報を送信するように変調されるか又は他の形で生成された光波又は電波を介して送信される情報を記憶するための機械可読媒体とすることができる。コード又は設計を示すか又は搬送する電気搬送波が送信されるとき、電気信号のコピー、バッファ又は再送が行われる限り、新たなコピーが作製される。このため、通信プロバイダ又はネットワークプロバイダは、有形機械可読媒体上に少なくとも一時的に、本発明の実施形態の技法を具現化する、搬送波にエンコードされた情報等を記憶することができる。
【０１３２】
本明細書において用いられるモジュールは、ハードウェア、ソフトウェア及び／又はファームウェアの任意の組合せを指す。例として、モジュールは、マイクロコントローラによって実行されるように適合されたコードを記憶する非一時的媒体に関連付けられたマイクロコントローラ等のハードウェアを含む。したがって、モジュールへの言及は、１つの実施形態では、非一時的媒体上で保持されるコードを認識及び／又は実行するように特に構成されたハードウェアを指す。更に、別の実施形態では、モジュールの使用は、マイクロコントローラによって、所定の動作を行うために実行されるように特に適合されたコードを含む非一時的媒体を指す。そして、推測することができるように、更に別の実施形態では、モジュールという用語は（この例では）、マイクロコントローラと非一時的媒体との組合せを指すことができる。多くの場合、別個であるものとして示されるモジュール境界は、共通して変動し、潜在的に重複する。例えば、第１のモジュール及び第２のモジュールは、いくらかの独立したハードウェア、ソフトウェア又はファームウェアを潜在的に保持しながら、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せを共有する場合がある。１つの実施形態では、ロジックという用語の使用は、トランジスタ、レジスタ、又はプログラム可能な論理デバイス等の他のハードウェアを含む。
【０１３３】
「〜ように構成される」というフレーズの使用は、１つの実施形態では、装置、ハードウェア、ロジック又は要素を、指定又は決定されたタスクを実行するように、配置、組立て、製造、販売のオファー、インポート及び／又は設計することを指す。この例では、動作していない装置又はその要素は、依然として、指定されたタスクを行うように設計、結合及び／又は相互接続された場合に、この指定されたタスクを行う「ように構成されている」。単なる説明のための例として、論理ゲートは、動作中に０又は１を提供することができる。しかし、クロックにイネーブル信号を提供する「ように構成された」論理ゲートは、１又は０を提供することができる全ての潜在的な論理ゲートを含むわけではない。代わりに、論理ゲートは、何らかの方式で、動作中、１又は０の出力がクロックをイネーブルするように結合されている。ここでも、「〜ように構成される」という用語は、動作を必要とするものではなく、代わりに、装置、ハードウェア及び／又は要素の潜在状態に焦点を当てることに留意されたい。潜在状態において、装置、ハードウェア及び／又は要素は、装置、ハードウェア及び／又は要素が動作しているときに特定のタスクを実行するように設計される。
【０１３４】
更に、「〜する」、「〜することができる」及び／又は「〜するように動作可能である」というフレーズの使用は、１つの実施形態では、装置、ロジック、ハードウェア及び／又は要素の使用を特定の方式で可能にするように設計された何らかの装置、ロジック、ハードウェア及び／又は要素を指す。上記と同様に、１つの実施形態では、「〜する」、「〜することができる」又は「〜するように動作可能である」の使用は、装置、ロジック、ハードウェア及び／又は要素の潜在的な状態を指し、ここで、装置、ロジック、ハードウェア及び／又は要素は、動作していないが、特定の方式で装置の使用を可能にするように設計されている。
【０１３５】
本明細書において用いられるとき、値は、数、状態、論理状態又はバイナリ論理状態の任意の既知の表現を含む。多くの場合、ロジックレベル、ロジック値又は論理値の使用も１及び０として言及され、これは単にバイナリロジック状態を表す。例えば、１は高ロジックレベルを指し、０は低ロジックレベルを指す。１つの実施形態では、トランジスタ又はフラッシュセル等のストレージセルは、単一の論理値又は複数の論理値を保持することを可能とすることができる。一方、コンピュータシステムにおける値の他の表現が用いられている。例えば、１０進数の１０は、バイナリ値１０１０及び１６進数の文字Ａとして表すこともできる。したがって、値は、コンピュータシステム内に保持されることが可能な情報の任意の表現を含む。
【０１３６】
更に、状態は、値又は値の一部分によって表すことができる。例として、論理１等の第１の値は、デフォルト状態又は初期状態を表すことができるのに対し、論理ゼロ等の第２の値は、非デフォルト状態を表すことができる。更に、リセット及びセットという用語は、１つの実施形態では、それぞれ、デフォルトの値又は状態及び更新された値又は状態を指す。例えば、デフォルト値は潜在的に高い論理値、すなわちリセットを含むのに対し、更新された値は潜在的に低い論理値、すなわちセットを含む。値の任意の組合せを利用して任意の数の状態を表すことができることに留意されたい。
【０１３７】
上記で示した方法、ハードウェア、ソフトウェア、ファームウェア又はコードの実施形態は、処理要素によって実行可能な、機械アクセス可能、機械可読、コンピュータアクセス可能、又はコンピュータ可読媒体上に記憶された命令又はコードにより実施することができる。非一時的機械アクセス可能／可読媒体は、コンピュータ又は電子システム等の機械によって読出し可能な形態で情報を提供（すなわち、記憶及び／又は送信）する任意のメカニズムを含む。例えば、非一時的機械アクセス可能媒体は、スタティックＲＡＭ（ＳＲＡＭ）又はダイナミックＲＡＭ（ＤＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）、ＲＯＭ、磁気又は光ストレージ媒体、フラッシュメモリデバイス、電気ストレージデバイス、光ストレージデバイス、音響ストレージデバイス、一時的（伝播）信号（例えば、搬送波、赤外線信号、デジタル信号）から受信した情報を保持するための他の形態のストレージデバイス等を含む。これらは、そこから情報を受信することができる非一時的媒体と区別される。
【０１３８】
本発明の実施形態を実行するためのロジックをプログラムするのに用いられる命令は、ＤＲＡＭ、キャッシュ、フラッシュメモリ又は他のストレージ等の、システムのメモリ内に記憶することができる。更に、命令は、ネットワークを介して、又は他のコンピュータ可読媒体によって分配することができる。このため、機械可読媒体は、機械（例えば、コンピュータ）によって読出し可能な形態の情報を記憶又は送信するための任意のメカニズムを含むことができ、任意のメカニズムは、限定ではないが、フロッピーディスケット、光ディスク、コンパクトディスク読出し専用メモリ（ＣＤ−ＲＯＭ）及び磁気−光ディスク、読出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラム可能読出し専用メモリ（ＥＰＲＯＭ）、電気的に消去可能なプログラム可能読出し専用メモリ（ＥＥＰＲＯＭ）、磁気又は光カード、フラッシュメモリ、又は、電気、光、音響若しくは他の形式の伝播信号（例えば、搬送波、赤外線信号、デジタル信号等）によりインターネットを介した情報の送信に使用される有形機械可読ストレージである。したがって、コンピュータ可読媒体は、機械（例えば、コンピュータ）によって読出し可能な形態で電子命令又は情報を記憶又は送信するのに適した任意のタイプの有形機械可読媒体を含む。
【０１３９】
以下の実施例は、本明細書による実施形態に関する。１以上の実施形態は、物理リンクの１以上のデータレーン上でデータを受信し、物理リンクの別のレーン上で、有効なデータが１以上のデータレーン上で有効信号のアサートに続くことを特定する有効信号を受信し、物理リンクの別のレーン上で、１以上のデータレーン上のデータのタイプを特定するストリーム信号を受信するための、装置、システム、機械可読ストレージ、機械可読媒体、ハードウェア及び／又はソフトウェアベースのロジック、並びに方法を提供することができる。
【０１４０】
少なくとも１つの例では、物理層ロジックは更に、物理リンクの別のレーンを介してリンク状態機械管理信号を送信する。
【０１４１】
少なくとも１つの例では、物理層ロジックは更に、サイドバンドリンクを介してサイドバンド信号を送信する。
【０１４２】
少なくとも１つの例では、タイプはデータに関連付けられたプロトコルを含み、プロトコルは、物理リンクを利用する複数のプロトコルのうちの１つである。
【０１４３】
少なくとも１つの例では、タイプはリンク層パケットデータを含む。
【０１４４】
少なくとも１つの例では、データは物理リンクのためのリンク状態遷移を促進する。
【０１４５】
少なくとも１つの例では、物理層ロジックは更に、ストリーム信号をデコードして、複数の異なるプロトコルのうちのいずれをデータに適用するかを特定する。
【０１４６】
少なくとも１つの例では、物理層ロジックは更に、ストリーム信号において特定された複数のプロトコルのうちの特定の１つに対応する上位層プロトコルロジックにデータを渡す。
【０１４７】
少なくとも１つの例では、装置は、物理層ロジックに加えて、複数のプロトコルの各々のリンク層ロジック及び他の上位層ロジックを含む。
【０１４８】
少なくとも１つの例では、複数のプロトコルは、周辺コンポーネントインターコネクト（ＰＣＩ）、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）、Ｉｎｔｅｌのダイ内インターコネクト（ＩＤＩ）及びクイックパスインターコネクト（ＱＰＩ）のうちの少なくとも２つを含む。
【０１４９】
少なくとも１つの例では、物理層ロジックは更に、複数のプロトコルの各々におけるエラーを判断する。
【０１５０】
少なくとも１つの例では、物理層ロジックは更に、有効信号及びストリーム信号のうちの１以上におけるエラーを判断する。
【０１５１】
少なくとも１つの例では、物理層ロジックは更に、データレーン上で送信されるデータのデータウィンドウを定義し、データウィンドウは有効信号に対応する。
【０１５２】
少なくとも１つの例では、データウィンドウはデータシンボルに対応し、有効信号は、データが送信されることになるウィンドウの直前のウィンドウにおいてアサートされる。
【０１５３】
少なくとも１つの例では、データは、有効信号がアサートされない先行するウィンドウの直後のウィンドウ内のデータレーンにおいて無視される。
【０１５４】
少なくとも１つの例では、ウィンドウはバイト期間に対応する。
【０１５５】
少なくとも１つの例では、有効信号、データ及びストリーム信号の各々が物理リンクのために定義されたデータウィンドウに従ってアラインされる。
【０１５６】
少なくとも１つの例では、ストリーム信号は同じウィンドウ中にデータとして送信される。
【０１５７】
少なくとも１つの例では、物理リンクは２つのデバイスをマルチチップパッケージにおいて接続する。
【０１５８】
少なくとも１つの例では、物理層ロジックは更に、物理リンクのレーンにおいて信号を再センタリングする。
【０１５９】
少なくとも１つの例では、レーンは有効信号に基づいて再センタリングされる。
【０１６０】
少なくとも１つの例では、第２のウィンドウ中のデータリンクの専用ストリーム信号レーン上でストリーム信号が受信され、ストリーム信号がデコードされ、ストリーム信号のデコードから、データに関連付けられたプロトコルが決定される。
【０１６１】
少なくとも１つの例では、データリンクは、複数の異なるプロトコルのデータを送信するように適合される。
【０１６２】
少なくとも１つの例では、データリンク上で送信されるデータが特定され、送信されるデータに対応する特定のウィンドウ中に、データリンクの発信有効信号レーン上で有効信号が送信され、特定のウィンドウの直後の別のウィンドウ中に専用発信データレーン上でデータが送信される。
【０１６３】
少なくとも１つの例では、複数のデータレーンは、専用リンク状態機械サイドバンドレーンを更に含む。
【０１６４】
少なくとも１つの例では、第１のデバイスはパッケージ内の第１のダイを含み、第２のデバイスはパッケージ内の第２のダイを含む。
【０１６５】
少なくとも１つの例では、第１のデバイスはオンパッケージデバイスを含み、第２のデバイスはオフパッケージデバイスを含む。
【０１６６】
１以上の実施形態は、データリンクの専用データレーン上で送信されるデータを特定し、データリンク上で送信されるデータに対応する特定のウィンドウ中にデータリンクの専用有効信号レーン上で有効信号を送信し、特定のウィンドウの直後の別のウィンドウ中にデータリンクの専用データレーン上でデータを送信し、データのタイプを特定するようにエンコードされたストリーム信号リンク上でストリーム信号を送信するための、装置、システム、機械可読ストレージ、機械可読媒体、ハードウェア及び／又はソフトウェアベースのロジック、並びに方法を提供することができる。
【０１６７】
少なくとも１つの例では、有効信号は、他のウィンドウ中のデータレーン上のデータが有効なデータであることを示す。
【０１６８】
少なくとも１つの例では、ストリーム信号リンクは専用ストリーム信号リンクを含む。
【０１６９】
少なくとも１つの例では、ストリーム信号は、特定のプロトコルがデータに関連付けられているか否かを特定するように適合される。
【０１７０】
少なくとも１つの例では、物理層ロジックは共通物理層に含まれ、複数のプロトコルがこの共通物理層を利用し、特定のプロトコルが複数のプロトコルに含まれる。
【０１７１】
少なくとも１つの例では、複数のプロトコルは、ＰＣＩ、ＰＣＩｅ、ＩＤＩ及びＱＰＩのうちの２つ以上を含む。
【０１７２】
少なくとも１つの例では、ストリーム信号は、データがリンク層パケットを含むか否かを特定するように更に適合される。
【０１７３】
少なくとも１つの例では、ストリーム信号は、データがサイドバンドデータであるか否かを特定するように更に適合される。
【０１７４】
少なくとも１つの例では、物理層ロジックは更に、データタイプを決定し、決定されたタイプを特定するストリーム信号をエンコードする。
【０１７５】
少なくとも１つの例では、物理層ロジックは更に、データリンクの専用ＬＳＭ＿ＳＢレーン上でリンク状態機械サイドバンド（ＬＳＭ＿ＳＢ）信号を送信する。
【０１７６】
少なくとも１つの例では、物理層ロジックは更に、データリンクと別個のサイドバンドリンク上でサイドバンド信号を送信する。
【０１７７】
少なくとも１つの例では、物理層ロジックは更に、データレーン上でリンク層データを送信し、リンク層データは、第１のリンク状態から第２のリンク状態にデータリンクを遷移させるのに用いられる。
【０１７８】
少なくとも１つの例では、第１のリンク状態はアクティブリンク状態を含み、第２のリンク状態は低電力リンク状態を含む。
【０１７９】
少なくとも１つの例では、物理層ロジックは更に、有効信号に対応する第１のデータウィンドウを特定し、第１のデータウィンドウの直後の第２のデータウィンドウ内のデータレーン上でデータを送信する。
【０１８０】
少なくとも１つの例では、有効信号をアサートしないことは、直後のウィンドウ内のデータレーン上のデータが無効であるとして無視されることを示す。
【０１８１】
少なくとも１つの例では、第１のデータウィンドウ及び第２のデータウィンドウの各々が、バイト期間に対応するように定義される。
【０１８２】
少なくとも１つの例では、有効信号、データ及びストリーム信号の各々が、物理リンクについて定義されたデータウィンドウに従ってアラインされる。
【０１８３】
少なくとも１つの例では、ストリーム信号は、データと同じウィンドウ中に送信される。
【０１８４】
少なくとも１つの例では、物理層ロジックは更に、有効信号及びストリーム信号の各々を生成する。
【０１８５】
少なくとも１つの例では、データリンクは、マルチチップパッケージ内の２つのデバイスを接続する。
【０１８６】
少なくとも１つの例では、データリンクは８Ｇｂ／ｓを超えるデータ速度をサポートする。
【０１８７】
１以上の実施形態は、複数のデータレーン、１以上の有効信号レーン、１以上のストリームレーンを含む複数のレーンを含むデータリンク上でシングルエンドシグナリングを提供し、複数のレーンによって用いるためのクロック信号を分配するための、装置、システム、機械可読ストレージ、機械可読媒体、ハードウェア及び／又はソフトウェアベースのロジック、並びに方法を提供することができる。ここで、複数のレーンの各々において送信される信号は、クロック信号にアラインされる。
【０１８８】
少なくとも１つの例では、データレーンの各々は、調整された電圧に中間レール終端される。
【０１８９】
少なくとも１つの例では、調整された電圧は、単一の電圧レギュレータによって複数のデータレーンの各々に提供される。
【０１９０】
少なくとも１つの例では、調整された電圧は、実質的にＶｃｃ／２に等しく、ここで、Ｖｃｃは供給電圧を含む。
【０１９１】
少なくとも１つの例では、物理層ロジックは、複数のデータレーンのうちの２つ以上の間のクロストークキャンセルを提供することを試みる。
【０１９２】
少なくとも１つの例では、クロストークキャンセルは、２つ以上のデータレーンのうちの第１のものにおける重み付き高域通過フィルタリングされたアグレッサ信号を、２つ以上のデータレーンのうちの第２のものの信号に加えることによって提供される。
【０１９３】
少なくとも１つの例では、物理層ロジックは、少なくとも部分的にレジスタ−キャパシタ（ＲＣ）低域通過フィルタを用いて重み付き高域通過フィルタリングされたアグレッサ信号を生成する。
【０１９４】
少なくとも１つの例では、物理層ロジックは、ビットごとのデューティサイクル補正を提供する。
【０１９５】
少なくとも１つの例では、物理層ロジックは、データレーンのうちの少なくとも特定の１つにおけるスキューを検出し、この特定のデータレーンをデスキューする。
【０１９６】
少なくとも１つの例では、物理層ロジックは更に、データレーンのうちの少なくとも１つにＡＣデータバス反転（ＤＢＩ）を適用する。
【０１９７】
少なくとも１つの例では、クロック信号は、半レート進められたクロック信号を含む。
【０１９８】
少なくとも１つの例では、物理層ロジックは更に、静電放電保護を提供する。
【０１９９】
少なくとも１つの例では、物理層ロジックは、少なくとも部分的にハードウェア回路を通じて実装される。
【０２００】
少なくとも１つの例では、有効信号は、有効信号レーン上で送信され、各有効信号は、有効なデータが複数のデータレーン上の有効信号のアサートに続くことを特定し、ストリーム信号は、ストリーム信号レーン上で送信され、各ストリーム信号は、１以上のデータレーン上のデータのタイプを特定する。
【０２０１】
少なくとも１つの例では、データリンクは、８Ｇｂ／ｓを超えるデータ速度をサポートする。
【０２０２】
１以上の実施形態は、複数のデータレーンを含む複数のレーン、１以上の有効信号レーン、１以上のストリームレーン、及び１以上のリンク状態機械サイドバンドレーンを含むデータリンク上でシングルエンドシグナリングを提供し、複数のレーンによって用いるためのクロック信号を分配するための、装置、システム、機械可読ストレージ、機械可読媒体、ハードウェア及び／又はソフトウェアベースのロジック、並びに方法を提供することができる。複数のレーンの各々において送信される信号はクロック信号とアラインされ、複数のデータレーンのうちの２つ以上の間でクロストークキャンセルを提供し、データリンクのためのビットごとのデューティサイクル補正を提供し、ここで、データレーンの各々は調整された電圧に中間レール終端される。
【０２０３】
少なくとも１つの例では、物理層ロジックは更に、データレーンのうちの少なくとも１つのスキューを検出し、特定のデータレーンをデスキューする。
【０２０４】
１以上の実施形態は、複数の階層化プロトコルの各々のそれぞれの上位層がアクティブリンク状態から低電力リンク状態へのデータリンクの遷移をリクエストしていることを特定し、複数の階層化プロトコルの各々の上位層が低電力リンク状態への遷移をリクエストしていることを特定することに基づいて、データリンクをアクティブリンク状態から低電力リンク状態に遷移させるための、装置、システム、機械可読ストレージ、機械可読媒体、ハードウェア及び／又はソフトウェアベースのロジック、並びに方法を提供することができる。複数の階層化プロトコルの各々は、データリンクを物理層として利用する。
【０２０５】
少なくとも１つの例では、物理層ロジックは更に、別のデバイスとのハンドシェイクに参加し、データリンクに、低電力リンク状態に遷移させる。
【０２０６】
少なくとも１つの例では、ハンドシェイクはリンク層ハンドシェイクを含む。
【０２０７】
少なくとも１つの例では、物理層ロジックは、データリンクがアクティブリンク状態である間、リンク層ハンドシェイクにおいてリンク層データを送信する。
【０２０８】
少なくとも１つの例では、物理層ロジックは、リンク層データと実質的に同時にストリーム信号を送信し、データリンクのデータ層上で送信されるデータがリンク層パケットを含むことを特定する。
【０２０９】
少なくとも１つの例では、ストリーム信号は、特定のウィンドウ中にデータリンクの専用ストリーム信号レーン上で送信され、リンク層データも特定のウィンドウ中に送信される。
【０２１０】
少なくとも１つの例では、物理層ロジックは、データリンクの専用有効信号レーン上で有効信号を送信し、有効信号は、特定のウィンドウの直前の別のウィンドウにおいて送信され、特定のウィンドウにおいて送信されるデータが有効であることを示す。
【０２１１】
少なくとも１つの例では、ハンドシェイクはサイドバンドリンクを介したハンドシェイク通信を含む。
【０２１２】
少なくとも１つの例では、ハンドシェイクは、リンク層ハンドシェイクと、サイドバンドリンクを通じたハンドシェイク通信とを含む。
【０２１３】
少なくとも１つの例では、サイドバンドリンクを介したハンドシェイク通信はリンク層ハンドシェイクを確認する。
【０２１４】
少なくとも１つの例では、物理層ロジックは更に、複数の階層化プロトコルのうちの第１の階層化プロトコルの上位層から、アクティブリンク状態から低電力リンク状態へのデータリンクの遷移のリクエストを特定する。
【０２１５】
少なくとも１つの例では、物理層ロジックは更に、複数の階層化プロトコル内の他のプロトコル各々からリクエストが受信されるまで、データリンクがアクティブリンク状態から低電力リンク状態に遷移するのを待機する。
【０２１６】
少なくとも１つの例では、物理層ロジックは、複数の階層化プロトコルの各々について、プロトコルがアクティブリンク状態から低電力リンク状態にデータリンクを遷移させることをリクエストしたか否かを追跡する。
【０２１７】
少なくとも１つの例では、物理層ロジックは更に、アクティブ状態から低電力リンク状態へのデータリンクの実際の遷移の前に、アクティブリンク状態から低電力リンク状態へのデータリンクの遷移を確認する、リクエストに対する応答を生成する。
【０２１８】
少なくとも１つの例では、アクティブリンク状態から低電力リンク状態へのデータリンクの遷移の承認が、複数の階層化プロトコルにおける他のプロトコルのうちの１以上から未処理となっている間、応答が送信される。
【０２１９】
少なくとも１つの例では、低電力リンク状態はアイドルリンク状態を含む。
【０２２０】
少なくとも１つの例では、複数の階層化プロトコルは、ＰＣＩ、ＰＣＩｅ、ＩＤＩ及びＱＰＩのうちの１以上を含む。
【０２２１】
データリンクを用いて第１のデバイスに通信可能に結合された、複数のレーン、第１のデバイス及び第２のデバイスを含むデータリンクを備えるシステムを提供することができ、第２のデバイスは、第１のプロトコルの上位層ロジックと、第２のプロトコルの上位層ロジックであって、複数のプロトコルスタックの各々が共通物理層を利用する、上位層ロジックと、共通物理層のための物理層ロジックであって、物理層ロジックは、データリンクを低電力リンク状態に遷移させる前に、第１のプロトコル及び第２のプロトコルを含むプロトコルの各々が、データリンクを利用して、アクティブリンク状態から低電力リンク状態にデータリンクを遷移させることを承認していることを判断する、物理層ロジックとを含む。
【０２２２】
少なくとも１つの例では、複数のレーンは、複数のデータレーンと、１以上の有効信号レーンと、１以上のストリームレーンとを含む。
【０２２３】
少なくとも１つの例では、有効信号は、有効信号レーン上で送信され、各有効信号は、有効なデータが複数のデータレーンにおける有効信号のアサートに続くことを特定し、ストリーム信号は、ストリーム信号レーン上で送信され、各ストリーム信号は、１以上のデータレーン上のデータのタイプを特定する。
【０２２４】
少なくとも１つの例では、データリンクを低電力リンク状態に遷移させることは、第１のデバイスと第２のデバイスとの間のハンドシェイクを含む。
【０２２５】
少なくとも１つの例では、ハンドシェイクはリンク層ハンドシェイク及びサイドバンドハンドシェイクを含む。
【０２２６】
少なくとも１つの例では、第１のデバイスはパッケージ内の第１のダイを含み、第２のデバイスは、パッケージ内の第２のダイを含む。
【０２２７】
少なくとも１つの例では、第１のデバイスはオンパッケージデバイスを含み、第２のデバイスはオフパッケージデバイスを含む。
【０２２８】
本明細書全体を通じて、「１つの実施形態」又は「一実施形態」とは、実施形態に関連して説明される特定の特徴、構造又は特性が本発明の少なくとも１つの実施形態に含まれることを意味する。このため、本明細書全体を通じた様々な箇所に登場する「１つの実施形態において」又は「一実施形態において」というフレーズは、必ずしも全てが同じ実施形態を指しているわけではない。更に、特定の特徴、構造又は特性は、１以上の実施形態において任意の適切な方式で組み合わせることができる。
【０２２９】
上記の明細書において、特定の例示的な実施形態を参照して詳細な説明が行われた。しかしながら、添付の特許請求の範囲において示すような本発明のより広い趣旨及び範囲から逸脱することなく、様々な変更及び変形を行うことができることが明らかであろう。したがって、明細書及び図面は、限定的意味ではなく例示的意味で考慮される。更に、実施形態及び他の例示的な言語の上記の使用は、必ずしも同じ実施形態又は同じ例を指すものではなく、潜在的に同じ実施形態のみでなく異なる実施形態及び別個の実施形態を指す場合もある。
【図１】
2020201967.tif 000004
【図２】
2020201967.tif 000005
【図３】
2020201967.tif 000006
【図４】
2020201967.tif 000007
【図５】
2020201967.tif 000008
【図６】
2020201967.tif 000009
【図７】
2020201967.tif 000010
【図８】
2020201967.tif 000011
【図９】
2020201967.tif 000012
【図１０】
2020201967.tif 000013
【図１１】
2020201967.tif 000014
【図１２】
2020201967.tif 000015
【図１３】
2020201967.tif 000016
【図１４Ａ】
2020201967.tif 000017
【図１４Ｂ】
2020201967.tif 000018
【図１４Ｃ】
2020201967.tif 000019
【図１５】
2020201967.tif 000020
【図１６】
2020201967.tif 000021
【図１７】
2020201967.tif 000022
【図１８】
2020201967.tif 000023
【図１９】
2020201967.tif 000024
【図２０】
2020201967.tif 000025
【図２１】
2020201967.tif 000026
【図２２】
2020201967.tif 000027
【図２３】
2020201967.tif 000028
【図２４】
2020201967.tif 000029
【外国語明細書】
2020201967000001.pdf