(57)【要約】      （修正有）【課題】高性能な、キャッシュコヒーレントな、リンクベースの相互接続を提供する。【解決手段】バスのクロックを修復する方法、装置、及びシステムは：マスタレーンを割り当てること、マスタレーンを固定すること、データの非アクティブ状態時にマスタレーンを充填すること、データの非アクティブ状態時に非マスタレーンをアイドルにすること、マスタレーンのクロックを維持すること、マスタレーンから非マスタレーンのクロックを修復すること、を備える。同期されないクロックでシリアルデータの送受信を行う方法、装置、及びシステムは：ビットストリームで複数の冗長ビットを有するデータを伝送すること、ビットストリームでデータを受信すること、ビットストリームでデータ値をサンプリングすること、ビットストリームでデータ値に対するボーティングを用いること、ボーティングからのデータに対して正しいロジック状態を判断すること、を備える。【選択図】図６
2014206971.tif 000002
【特許請求の範囲】
【請求項１】
データ受信側をアクティブ状態に維持し、かつ、データソースと同期するマスタレーンと、
前記マスタレーンに固定され、アイドル時間において完全にオフにされる第１の非マスタレーンと、を含む複数のレーンを備えるリンクと、
前記リンクとのインタフェースをとるインタフェースロジックと
を備える装置。
【請求項２】
前記マスタレーンに固定され、前記アイドル時間において完全にオフにされる他の非マスタレーンをさらに有する請求項１に記載の装置。
【請求項３】
前記マスタレーンは、単方向である、請求項１または２に記載の装置。
【請求項４】
前記第１の非マスタレーンは、単方向である、請求項１から３のいずれか１項に記載の装置。
【請求項５】
前記第１の非マスタレーンは、アクティブ状態となり同期する必要がない、請求項１から４のいずれか１項に記載の装置。
【請求項６】
各非マスタレーンに対するＤフリップフロップをさらに有する請求項２に記載の装置。
【請求項７】
１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の遅延固定ループをさらに有する請求項２に記載の装置。
【請求項８】
１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の遅延ラインをさらに有する請求項２に記載の装置。
【請求項９】
１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の位相補完器をさらに有する請求項２に記載の装置。
【請求項１０】
データ受信側をアクティブ状態に維持し、かつ、データソースと同期をとるマスタレーンと、
前記マスタレーンに固定され、アイドル時間において完全にオフにされる第１の非マスタレーンと、を含む複数のレーンを備えるリンクと；
前記リンクとインタフェースをとる物理レイヤロジックと、を備える装置。
【請求項１１】
前記マスタレーンに固定され、前記アイドル時間において完全にオフにされる他の非マスタレーンをさらに有する請求項１０に記載の装置。
【請求項１２】
前記マスタレーンは、単方向である、請求項１０または１１に記載の装置。
【請求項１３】
前記第１の非マスタレーンは、単方向である、請求項１０から１２のいずれか１項に記載の装置。
【請求項１４】
前記第１の非マスタレーンは、アクティブ状態となり同期する必要がない、請求項１０から１３のいずれか１項に記載の装置。
【請求項１５】
各非マスタレーンに対するＤフリップフロップをさらに有する請求項１１に記載の装置。
【請求項１６】
１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の遅延固定ループをさらに有する請求項１１に記載の装置。
【請求項１７】
１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の遅延ラインをさらに有する請求項１１に記載の装置。
【請求項１８】
１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の位相補完器をさらに有する請求項１１に記載の装置。
【請求項１９】
データ受信側をアクティブ状態に維持し、かつ、データソースと同期をとるマスタレーンと、
前記マスタレーンに固定され、アイドル時間において完全にオフにされる第１の非マスタレーンと、を含む複数のレーンを備えるリンクを備える装置と；
前記リンクとインタフェースをとる物理レイヤロジックと、を備えるコンピュータシステム。
【請求項２０】
前記アイドル時間において完全にオフにされ、アクティブ状態となり同期する必要がない、他の非マスタレーンをさらに有する請求項１９に記載のコンピュータシステム。
【請求項２１】
前記マスタレーンは、単方向である、請求項１９または２０に記載のコンピュータシステム。
【請求項２２】
各非マスタレーンに対するＤフリップフロップをさらに有する請求項２０に記載のコンピュータシステム。
【請求項２３】
１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の遅延固定ループをさらに有する請求項２０に記載のコンピュータシステム。
【請求項２４】
１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の遅延ラインをさらに有する請求項２０に記載のコンピュータシステム。
【請求項２５】
１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の位相補完器をさらに有する請求項２０に記載のコンピュータシステム。
【請求項２６】
マスタレーン及び１つ又は複数の非マスタレーンを含む、リンクの複数のレーンとインタフェースをとることと、
非アクティブ状態の期間において、前記１つ又は複数の非マスタレーンを低速化することと、
前記非アクティブ状態の期間において、前記マスタレーンのアクティブなデータ同期を維持することと、
前記１つ又は複数の非マスタレーンで伝送されるべきデータを示すためのアクティブ状態インジケータに応じて、前記マスタレーンのデータ同期に基づいて前記１つ又は複数の非マスタレーンのデータ同期を実行することなく、前記１つ又は複数の非マスタレーンをアクティブ状態にすることと、を備える方法。
【請求項２７】
各非マスタレーンの遅延をＤフリップフロップで調整することをさらに備える請求項２６に記載の方法。
【請求項２８】
１つ又は複数の非マスタレーンのために、１つ又は複数の遅延固定ループで静的位相の整合を調整することをさらに備える請求項２６に記載の方法。
【請求項２９】
１つ又は複数の非マスタレーンのために、１つ又は複数の遅延ラインで静的位相の整合を調整することをさらに備える請求項２６に記載の方法。
【請求項３０】
１つ又は複数の非マスタレーンのために、１つ又は複数の位相補完器で静的位相の整合を調整することをさらに備える請求項２６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータシステムに関し、特に（ただし限定的ではないが）相互接続に関する。
【図面の簡単な説明】
【０００２】
【図１】図１は、マルチコアプロセッサを含むコンピュータシステムの実施形態を示す。
【図２Ａ】図２Ａは、複数のレーンを有する単方向データバスの実施形態を示す。
【図２Ｂ】図２Ｂは、複数のレーンを有する単方向データバスの実施形態を示す。
【図３Ａ】図３Ａは、ハイブリッドレーン低速化バスの実施形態を示す。
【図３Ｂ】図３Ｂは、ハイブリッドレーン低速化バスの実施形態を示す。
【図４Ａ】図４Ａは、双対データリンクの実施形態を示す。
【図４Ｂ】図４Ｂは、双対データリンクの実施形態を示す。
【図５Ａ】図５Ａは、複数の冗長ビットを有し、ボーティングでサンプリングを行う非固定バスの実施形態を示す。
【図５Ｂ】図５Ｂは、複数の冗長ビットを有し、ボーティングでサンプリングを行う非固定バスの実施形態を示す。
【図５Ｃ】図５Ｃは、複数の冗長ビットを有し、ボーティングでサンプリングを行う非固定バスの実施形態を示す。
【図６】図６は、マスタレーンからクロックを修復するためのハイブリッドレーン低速化方法の実施形態を示す。
【図７】図７は、複数の冗長ビットを用い、ボーティングでサンプリングを行い、正しいロジック状態を判断する非固定バスの方法の実施形態を示す。
【発明を実施するための形態】
【０００３】
以下の記載では、本発明が十分に理解されることを目的として、プロセッサ及びシステム構成の具体的な種類、具体的なハードウェア構造、具体的なアーキテクチャ及びマイクロアーキテクチャの詳細、具体的なレジスタ構成、具体的な命令の種類、具体的なシステムコンポーネント、具体的な計測／高さ、具体的なプロセッサパイプラインのステージ、及び動作等の例を含む、数多くの具体的な詳細が説明される。しかしながら、当業者にとっては、本発明を実施するために、これらの具体的な詳細を採用することを必要としないことは明らかであろう。他の例では、周知のコンポーネント又は方法、例えば、具体的かつ代替え的なプロセッサアーキテクチャ、記載されたアルゴリズムのための具体的な論理回路／コード、具体的なファームウェアコード、具体的な相互接続動作、具体的なロジック構成、具体的な製造技術及び材料、具体的なコンパイラの実装、アルゴリズムのコードにおける具体的な表現、具体的な電源遮断及びゲーティング技術／ロジック、及びコンピュータシステムの他の具体的な動作の詳細は、本発明を不要に不明瞭にしないよう、詳述されていない。
【０００４】
以下の実施形態は、具体的な集積回路、例えばコンピュータのプラットフォーム又はマイクロプロセッサにおける省エネルギー及びエネルギーの効率化を参照して記載されうるが、他の実施形態は、他の種類の集積回路及びロジック機器に適用される。本明細書に記載される実施形態と同様の技術及び教示は、より良いエネルギー効率及び省エネルギーによる利益を享受しうる他のタイプの回路又は半導体機器に適用されうる。例えば、開示された実施形態は、デスクトップコンピュータシステム又はウルトラブック（商標）に限定されるものではなく、他の機器、例えば携帯型機器、タブレット端末、他の薄型ノートブックパソコン、チップ集積型システム（ＳＯＣ）機器、及び埋め込みアプリケーションに用いてもよい。携帯型機器の例は、携帯電話、インターネットプロトコル機器、デジタルカメラ、携帯情報端末（ＰＤＡ）、及び携帯型ＰＣを含む。埋め込みアプリケーションは、典型的には、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、ＳＯＣ、ネットワークコンピュータ（ＮｅｔＰＣ）、セットトップボックス、ネットワークハブ、広域ネットワーク（ＷＡＮ）スイッチ、又は以下に教示される機能及び動作を実行することができるあらゆる他のシステムを含む。さらに、本明細書に記載される方法、装置、及びシステムは、物理的なコンピュータ機器に限定されるものではなく、省エネルギー及び効率化のためのソフトウェアの最適化に適用されてもよい。以下の記載から容易に明らかとなるように、本明細書に記載される方法、装置、及びシステムの実施形態は（ハードウェア、ファームウェア、ソフトウェア、又はこれらの組み合わせのいずれに関しても）、性能考察とバランスをとる「グリーンテクノロジ」の将来に不可欠である。
【０００５】
コンピュータシステムの進歩に伴い、コンピュータシステムのコンポーネントがより複雑化している。その結果、最適なコンポーネントの動作のための帯域の要件を満たすために、コンポーネント間で接続及び通信を行うための相互接続アーキテクチャも複雑化している。さらに、市場セグメントが異なると、市場のニーズに応えるために、相互接続アーキテクチャに求める態様が異なる。例えば、サーバが高い性能を要求する一方で、モバイルエコシステムは、時として、省電力のために全体的な性能を犠牲にすることが可能である。しかし、ほとんどのファブリックにとっては、省電力を最大化しつつ、できるだけ最高の性能を提供することが唯一の目的である。以下に説明される多数の相互接続は、本明細書に記載される発明の態様から利益を享受しうる。
【０００６】
図１を参照すると、マルチコアプロセッサを含むコンピュータシステムのブロック図の実施形態が示される。プロセッサ１００は、マイクロプロセッサ、埋め込みプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、携帯型プロセッサ、アプリケーションプロセッサ、コプロセッサ、ＳＯＣ、又はコードを実行する他の機器等の、あらゆるプロセッサ又は処理機器を含む。プロセッサ１００は、一実施形態において、少なくとも２つのコア、すなわちコア１０１及び１０２を含み、これらのコアは、非対称型コア又は対称型コア（図示の実施形態）を含んでよい。ただし、プロセッサ１００は、任意の数の処理要素を含んでよく、これらの処理要素は、対称型又は非対称型のいずれであってもよい。
【０００７】
一実施形態において、処理要素は、ソフトウェアのスレッドをサポートするハードウェア又はロジックをいう。ハードウェア処理要素の例は、スレッドユニット、スレッドスロット、スレッド、処理ユニット、コンテキスト、コンテキストユニット、論理プロセッサ、ハードウェアスレッド、コア、及び／又はプロセッサの状態、例えば実行状態又はアーキテクチャの状態を保持するためのあらゆる他の要素を含む。換言すると、処理要素は、一実施形態において、個別にコードと関連付けられるあらゆるハードウェア、例えば、ソフトウェアスレッド、オペレーティングシステム、アプリケーション、又は他のコードをいう。物理プロセッサ（又はプロセッサソケット）は、典型的には、コア又はハードウェアスレッド等の、任意の数の他の処理要素を含みうる集積回路をいう。
【０００８】
コアは、多くの場合、個別に維持されるアーキテクチャの状態の各々を、少なくともいくつかの専用の実行リソースと関連付けて、個別のアーキテクチャの状態を維持するための、集積回路のロジックをいう。コアと対照的に、ハードウェアスレッドは、典型的には、個別に維持されるアーキテクチャの状態が実行リソースへのアクセスを共有するように、個別のアーキテクチャの状態を維持するための、あらゆる集積回路のロジックをいう。つまり、あるリソースが共有され、他のリソースが専用のあるアーキテクチャの状態の専用である場合、ハードウェアスレッド及びコアの命名は重複する。しかし多くの場合、コアとハードウェアスレッドとは、オペレーティングシステムから見ると、各論理プロセッサにおける動作のスケジューリングを個別に行うことができるオペレーティングシステムの個別の論理プロセッサである。
【０００９】
物理プロセッサ１００は、図１に示すように、２つのコア、すなわちコア１０１及び１０２を含む。ここで、コア１０１及び１０２は、対称型コア、すなわち、同じ構成、機能ユニット、及び／又はロジックを有するコアとする。他の実施形態において、コア１０１は、アウト・オブ・オーダー プロセッサコアを含み、コア１０２は、イン・オーダープロセッサコアを含む。しかしながら、コア１０１及び１０２は、あらゆる種類のコア、例えば、ネイティブコア、ソフトウェア管理型のコア、命令セットアーキテクチャ（ＩＳＡ）を実行するように構成されたコア、翻訳されたＩＳＡを実行するように構成されたコア、協調設計されたコア、又は他の公知のコアから個別に選択されてもよい。ヘテロジーニアスコア環境（すなわち、非対称型コア）において、いくつかの翻訳の形式、例えばバイナリ翻訳は、１つ又は両方のコアに対するコードのスケジューリング又は実行に使用されてもよい。まだ説明は続けるが、コア１０２におけるユニットは図示される実施形態と同様に動作するため、コア１０１の中に示される実行ユニットについて、さらに詳細について後述する。
【００１０】
図示されるように、コア１０１は、２つのハードウェアスロット１０１ａ及び１０１ｂを含み、これらはハードウェアスレッドスロット１０１ａ及び１０１ｂと称されることもある。そのため、オペレーティングシステム等のソフトウェアエンティティは、一実施形態において、プロセッサ１００を、４つの別個のプロセッサ、すなわち、４つのソフトウェアスレッドを同時に実行可能な４つの論理プロセッサ又は処理要素とみなすことができる。上述の説明で示唆したように、第１のスレッドは、アーキテクチャ状態レジスタ１０１ａと関連付けられ、第２のスレッドは、アーキテクチャ状態レジスタ１０１ｂと関連付けられ、第３のスレッドは、アーキテクチャ状態レジスタ１０２ａと関連付けられてもよく、第４のスレッドは、アーキテクチャ状態レジスタ１０２ｂと関連付けられてもよい。ここで、アーキテクチャ状態レジスタの各々（１０１ａ、１０１ｂ、１０２ａ、及び１０２ｂ）は、上述したように、処理要素、スレッドスロット、又はスレッドユニットと称されてもよい。図示されるように、アーキテクチャ状態レジスタ１０１ａは、アーキテクチャ状態レジスタ１０１ｂにおいて複製されるため、個々のアーキテクチャ状態／コンテキストは、論理プロセッサ１０１ａ及び論理プロセッサ１０１ｂのために格納されることができる。コア１０１において、他のより小さいリソース、例えばアロケータ及びリネーマブロック１３０における命令ポインタ及びリネームロジックは、スレッド１０１ａ及び１０１ｂのために複製されてもよい。いくつかのリソース、例えばリオーダ／リタイアメントユニット１３５におけるリオーダバッファ、命令トランスレーションルックアサイドバッファ（Ｉ−ＴＬＢ）１２０、ロード／格納バッファ、及びキューは、パーティションによって共有されてもよい。他のリソース、例えば汎用内部レジスタ、ページテーブルベースのレジスタ、低水準データキャッシュ及びデータトランスレーションルックアサイドバッファ（Ｄ−ＴＬＢ）１１５、実行ユニット１４０、及びアウト・オブ・オーダーユニット１３５の一部は、完全に共有される可能性がある。
【００１１】
プロセッサ１００は、多くの場合、完全に共有されうる、パーティションによって共有されうる、又は処理要素によって／に対して専用とされうる他のリソースを含む。図１において、図示されたプロセッサの論理ユニット／リソースを有する純粋に例示的なプロセッサの実施形態が示される。プロセッサは、これらの実行ユニットのいずれを含んでもよく、又は省略してもよく、また、図示されていないあらゆる他の公知の実行ユニット、ロジック、又はファームウェアを含んでもよいことに留意されたい。説明のとおり、コア１０１は、単純化された、代表的なアウト・オブ・オーダー（ＯＯＯ）プロセッサコアを含む。しかしながら、異なる実施形態においては、イン・オーダープロセッサを用いることができる。ＯＯＯコアは、実行されるべき／とるべきブランチを予測するブランチターゲットバッファ１２０と、命令のためのアドレス翻訳エントリを格納するＩ−ＴＬＢ１２０とを含む。
【００１２】
コア１０１は、フェッチされた要素を復号するために、フェッチユニット１２０と接続される復号モジュール１２５をさらに含む。フェッチロジックは、一実施形態において、スレッドスロット１０１ａ、１０１ｂと個別に関連付けられる個々のシーケンサを含む。通常、コア１０１は、プロセッサ１００上で実行可能な命令を定義／規定する第１のＩＳＡと関連付けられる。多くの場合、第１のＩＳＡの一部であるマシンコード命令は、実行されるべき命令又は動作を参照／規定する命令の一部（命令コードという）を含む。復号ロジック１２５は、命令コードからこれらの命令を認識し、第１のＩＳＡによって定義されるように、パイプラインにおいて復号化された命令を伝える回路を含む。例えば、以下に詳述するように、デコーダ１２５は、一実施形態において、トランザクション命令等の具体的な命令を認識するように構成されたロジックを含む。デコーダ１２５による認識の結果、アーキテクチャ又はコア１０１は、適切な命令に関連付けられたタスクを実行するために、具体的な、予め定義された動作を行う。明細書に記載されるあらゆるタスク、ブロック、動作、及び方法は、新しい又は古い命令を含む１つ又は複数の命令に応じて実行されることに留意することが重要である。デコーダ１２６は、一実施形態において、同じＩＳＡ（又はそのサブセット）を認識することに留意されたい。あるいは、ヘテロジーニアスコア環境において、デコーダ１２６は、第２のＩＳＡ（第１のＩＳＡ又は異なるＩＳＡのいずれかのサブセット）を認識する。
【００１３】
一例において、アロケータ及びリネーマブロック１３０は、命令の処理結果を記憶するレジスタファイル等のリソースを保持するためのアロケータを含む。しかしながら、スレッド１０１ａ及び１０１ｂは、アウト・オブ・オーダー実行を行う可能性があり、ここで、アロケータ及びリネーマブロック１３０は、命令結果を追跡するためのリオーダバッファ等の他のリソースも保持する。ユニット１３０は、プロセッサ１００内部の他のレジスタに対してプログラム／命令参照レジスタの名前を変更するためのレジスタリネーマをさらに含んでもよい。リオーダ／リタイアメントユニット１３５は、アウト・オブ・オーダー実行、及びアウト・オブ・オーダーで実行された命令のイン・オーダーリタイアメントをサポートするために、上述したリオーダバッファ、ロードバッファ、及び格納バッファ等のコンポーネントを含む
【００１４】
スケジューラ及び実行ユニットブロック１４０は、一実施形態において、実行ユニットに対する命令／動作のスケジューリングを行うスケジューラユニットを含む。例えば、浮動小数点命令は、利用可能な浮動小数点実行ユニットを有する実行ユニットのポートにおいてスケジューリングされる。実行ユニットと関連付けられるレジスタファイルも、情報命令の処理結果を格納するために含まれる。例示的な実行ユニットは、浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、ロード実行ユニット、格納実行ユニット、及び他の公知の実行ユニットを含む。
【００１５】
低水準のデータキャッシュ及びデータトランスレーションバッファ（Ｄ−ＴＬＢ）１５０は、実行ユニット１４０と接続される。データキャッシュは、メモリのコヒーレンシ状態に維持される可能性があるデータオペランド等の要素上で、最近用いられた／操作されたものを格納する。Ｄ−ＴＬＢは、最近の仮想的な／物理的なアドレス翻訳に線形なものを格納する。具体例として、プロセッサは、物理的なメモリを複数の仮想的なページに分割するページテーブル構造を含んでもよい。
【００１６】
ここで、コア１０１及び１０２は、より高水準の又は離隔（ｆｕｒｔｈｅｒ−ｏｕｔ）キャッシュ、例えば、オンチップインタフェース１１０と関連付けられる第２レベルのキャッシュへのアクセスを共有する。高水準又は離隔は、レベルが上昇した又は実行ユニットから遠ざかるキャッシュをいうことに留意されたい。一実施形態において、より高水準のキャッシュは、最終レベルのデータキャッシュ、すなわち、プロセッサ１００上のメモリ階層における最終キャッシュであり、例えば、第２又は第３レベルのデータキャッシュである。しかしながら、より高水準のキャッシュはこれに限定されるものではなく、命令キャッシュと関連付けられ、又はこれを含んでもよい。命令キャッシュの一種である追跡キャッシュは、これに代えて、最近復号化されたトレースを格納するために、デコーダ１２５の後に接続されてもよい。ここで、命令とは、多数のマイクロ命令（マイクロ動作）への復号を行うマクロ命令（すなわち、デコーダによって認識された一般的な命令）をいう場合もある。
【００１７】
図示された構成において、プロセッサ１００は、オンチップインタフェースモジュール１１０をさらに含む。従来、以下に詳述するメモリコントローラは、プロセッサ１００外部のコンピュータシステムに含まれていた。この記載において、オンチップインタフェース１１０は、システムメモリ１７５、チップセット（多くは、メモリ１７５に接続するためのメモリコントローラハブ及び周辺機器に接続するためのＩ／Ｏコントローラハブを含む）、メモリコントローラハブ、ノースブリッジ、又は他の集積回路等の、プロセッサ１００外部の機器と通信を行う。さらにこの記載において、バス１０５は、あらゆる公知の相互接続、例えば、マルチドロップバス、ポイントツーポイント相互接続、シリアル相互接続、パラレルバス、コヒーレント（例えば、キャッシュコヒーレント）バス、階層型プロトコルアーキテクチャ、差動バス、及びガンニング（Ｇｕｎｎｉｎｇ）送受信機ロジック（ＧＴＬ）バスを含んでもよい。
【００１８】
メモリ１７５は、プロセッサ１００のみで用いられてもよく、システム内の他の機器と共有されてもよい。メモリ１７５の種類の一般的な例は、ＤＲＡＭ、ＳＲＡＭ、不揮発性メモリ（ＮＶＭ）、及び他の公知の記憶機器を含む。機器１８０は、グラフィックアクセラレータ、メモリコントローラハブと接続されるプロセッサ又はカード、Ｉ／Ｏコントローラハブと接続されるデータストレージ、無線送受信機、フラッシュデバイス、音声コントローラ、ネットワークコントローラ、又は他の公知の機器を含んでもよいことに留意されたい。
【００１９】
しかしながら、近年は、より多くのロジック及び機器がＳＯＣ等の単一のダイ上に統合されているため、これらの機器の各々がプロセッサ１００に組み込まれてもよい。例えば一実施形態において、メモリコントローラハブは、プロセッサ１００を有する同じパッケージ及び／又はダイ上に設けられる。ここで、コアの一部（コア上の部分）１１０は、メモリ１７５又はグラフィック機器１８０等の他の機器とインタフェースをとる１つ又は複数のコントローラを含む。かかる機器とインタフェースをとるための相互接続及びコントローラを含む構成は、多くの場合、オンコア（又はアンコア構成）と称される。オンチップインタフェース１１０は、例として、オンチップ通信のためのリング相互接続と、オフチップ通信のための高速シリアルポイントツーポイントリンク１０５とを含む。ただし、ＳＯＣ環境において、さらに多くの機器、例えばネットワークインタフェース、コプロセッサ、メモリ１７５、グラフィックプロセッサ１８０、及びあらゆる他の公知のコンピュータ機器／インタフェースが、機能性が高く電力消費の少ない小型のフォームファクタを提供するために、単一のダイ又は集積回路上に統合されてもよい。
【００２０】
一実施形態において、プロセッサ１００は、アプリケーションコード１７６のコンパイル、翻訳、及び／又は最適化を行うことによって本明細書に記載される装置及び方法をサポートし、又はこれらとインタフェースをとるために、コンパイラ、最適化、及び／又はトランスレータコード１７７を実行してもよい。コンパイラは、多くの場合、ソーステキスト／コードをターゲットテキスト／コードに翻訳するプログラム又はプログラム群を含む。通常、コンパイラによるプログラム／アプリケーションコードのコンパイルは、高水準プログラミング言語のコードを低水準の機械語又はアセンブリ言語のコードに変換するために、複数のフェーズ及びパスで行われてもよい。ただし、単一パスのコンパイラは、単純なコンパイルに利用されてもよい。コンパイラは、あらゆる公知のコンパイル技術を利用し、あらゆる公知のコンパイラの動作、例えば、字句解析、前処理、構文解析、意味解析、コード生成、コード変換、及びコード最適化等を実行してもよい。
【００２１】
大きいコンパイラは、多くの場合、複数のフェーズを含むが、最も多くの場合、これらのフェーズは、２つの一般的なフェーズ：（１）一般的に、構文処理、意味処理、及びいくつかの変換／最適化が行われるフロントエンド、及び（２）一般的に、解析、変換、最適化、及びコード生成が行われるバックエンドに含まれる。コンパイラの中には、コンパイラのフロントエンドとバックエンドとの間の線引きを曖昧にする中間をいうものもある。結果的に、挿入、関連付け、生成、又はコンパイラの他の動作に対する参照は、上述のあらゆるフェーズ又はパスにおいて行われてもよく、コンパイラのあらゆる他の公知のフェーズ又はパスにおいて行われてもよい。説明のための例として、コンパイラは、コンパイルの１つ又は複数のフェーズに動作、呼、機能等を挿入する、例えば、コンパイルのフロントエンドフェーズに呼／動作を挿入し、その後、変換フェーズにおいて、より低水準のコードに呼／動作を変換する可能性がある。動的コンパイル時において、コンパイラコード又は動的最適化コードは、かかる動作／呼を挿入してもよく、ランタイム時に実行のためのコードを最適化してもよい。具体的な説明のための例として、バイナリコード（コンパイル済みのコード）は、ランタイム時に動的に最適化されてもよい。ここで、プログラムコードは、動的な最適化コード、バイナリコード、又はこれらの組み合わせを含んでもよい。
【００２２】
バイナリトランスレータ等のトランスレータは、コードを最適化及び／又は翻訳するために、静的又は動的にコードを翻訳してもよい。そのため、コード、アプリケーションコード、プログラムコード、又は他のソフトウェア環境の実行に対する参照は：（１）プログラムコードのコンパイル、ソフトウェア構造の維持、他の動作の実行、コードの最適化、又はコードの翻訳を行うための、コンパイラプログラム、最適化コードのオプティマイザ、又はトランスレータの動的又は静的な実行；（２）動作／呼を含むメインプログラムコード、例えば、最適化／コンパイルされたアプリケーションコードの実行；（３）ソフトウェア構造の維持、他のソフトウェアに関連する動作の実行、又はコードの最適化を行うための、他のプログラムコード、例えばメインプログラムコードと関連付けられるライブラリの実行；又は（４）これらの組み合わせを意味してもよい。
【００２３】
上述した装置、方法、及びシステムは、上述したように、あらゆる電子機器又はシステムにおいて、実装可能であることに留意されたい。具体的な例として、以下の図面は、本明細書に記載される発明を利用するための例示的なシステムを提示する。以下のシステムが詳述されるように、多数の異なる相互接続が、開示され、記載され、上述の説明から見直される。そして、容易にわかるように、上述した進歩は、これらの相互接続、ファブリック、又はアーキテクチャのいずれに対しても適用可能である。
【００２４】
一つの相互接続ファブリックアーキテクチャは、異なるベンダからのコンポーネントと機器との同時使用をオープンアーキテクチャにおいて実現し、クライアント（デスクトップ及びモバイル）、サーバ（標準及びエンタープライズ）、埋め込み機器及び通信機器といった複数の市場セグメントを結ぶための、周辺コンポーネント相互接続（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ；ＰＣＩ）Ｅｘｐｒｅｓｓ（ＰＣＩｅ）を含む。ＰＣＩ  Ｅｘｐｒｅｓｓは、多岐にわたる 将来のコンピュータ技術及び通信プラットフォームのために定義された高性能で汎用的なＩ／Ｏ相互接続である。ＰＣＩのいくつかの属性、例えばその使用モデル、ロードストアアーキテクチャ、及びソフトウェアインタフェースは、改定を経ても維持される一方で、以前のパラレルバスの実装に取って代わって、拡張性の高い、完全なシリアルインタフェースが実装されている。ＰＣＩ  Ｅｘｐｒｅｓｓのより最近のバージョンは、新たなレベルの性能及び特徴を実現するために、ポイントツーポイント相互接続、スイッチベースのテクノロジ、及びパケット化されたプロトコルにおいて、進化した技術を採用している。ＰＣＩ  Ｅｘｐｒｅｓｓによってサポートされる特徴として、電力管理、サービス品質（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ；ＱｏＳ）、ホットプラグ／ホットスワップのサポート、データ整合性、及び誤り処理が挙げられる。
【００２５】
一実施形態において、高性能相互接続（ＨＰＩ）が提供される。ＨＰＩは、次世代のキャッシュコヒーレントな、リンクベースの相互接続である。一例として、ＨＰＩは、高性能コンピュータ技術のプラットフォーム、例えば、ＰＣＩｅが、典型的にはアクセラレータ又はＩ／Ｏ機器を接続するために用いられるワークステーション又はサーバにおいて利用されてもよい。しかしながら、ＨＰＩはこれに限定されるものではない。これに代えて、ＨＰＩは、本明細書に記載されるあらゆるシステム又はプラットフォームにおいて利用可能である。さらに、展開される個々の概念は、ＰＣＩｅ等の他の相互接続に適用可能である。さらに、ＨＰＩは、ＰＣＩｅ等の他の相互接続と同じ市場で競争するために拡張されてもよい。複数の機器をサポートするために、一つの実装において、ＨＰＩは、ＩＳＡにとらわれない（すなわち、ＨＰＩが複数の異なる機器に実装可能である）ことを含む。他のシナリオにおいて、ＨＰＩは、プロセッサ又はアクセラレータのみならず、高性能Ｉ／Ｏ機器と接続するためにも利用されてよい。例えば、高性能ＰＣＩｅ機器は、適切な翻訳ブリッジを介してＨＰＩに（すなわち、ＨＰＩからＰＣＩｅへ）接続されてもよい。さらに、ＨＰＩリンクは、プロセッサ等の多くのＨＰＩベースの機器により、様々な方式（例えば、スター型、リング型、メッシュ型等）で利用されてもよい。
【００２６】
ＨＰＩアーキテクチャは、階層型プロトコルアーキテクチャの定義を含み、階層型プロトコルアーキテクチャを含む点においてＰＣＩｅと同様である。一実施形態において、ＨＰＩは、プロトコルレイヤ（コヒーレント、ノンコヒーレント、及び、選択的には、他のメモリベースのプロトコル）、ルーティングレイヤ、リンクレイヤ、及び物理レイヤを定義する。さらに、多くの他の相互接続アーキテクチャのように、ＨＰＩは、電力マネージャ、テスト容易化設計（ＤＦＴ）及びデバッグ、誤り処理、レジスタ、セキュリティ等に関する強化を含む。
【００２７】
シリアル通信リンクにおいて、データは、ポイントツーポイント、例えば単一のストリームで、例えば１ビットずつ、例えば前方向又は逆方向へのいずれか一方向へ、又は、例えば前方向及び逆方向の双方向へ、連続的に送信又は伝送される。
【００２８】
シリアルデータリンクでは使用するケーブル（電線又はファイバ）数が少ないことにより、パラレルデータリンクと比較して、Ｉ／Ｏのピン数、物理的なフットプリント、及びコストが削減される。これを相殺するために、シリアルリンクは、一般的に、パラレルリンクよりもデータ伝送速度を高めている。このように、機器、コア、プロセッサ、チップ、コンピュータ、又はシステムにおける高速シリアルデータリンク又はデータバスは、柔軟性（拡張性）とレイテンシ（オーバヘッド）との間でバランスをとる必要がある。
【００２９】
特定のアプリケーションにおける様々なメトリクスの優先順位に応じて、シリアルデータリンク又はバスアーキテクチャの様々な実施形態は、クロックデータリカバリ（ＣＤＲ）を取り扱うために規定されてもよい。シリアルデータリンク又はバスアーキテクチャの他の実施形態は、ユーザからの入力に応じたＣＤＲを取り扱ってもよい。
【００３０】
高速及び低速データリンク又はバス２００アーキテクチャを、図２Ａに示す。この例は、複数、例えば４つのデータレーン２０１、２０２、２０３、２０４を有する単方向データリンク又はバス２００を含む。送信されるべきデータがない場合、バス２００は低速化し、スリープ２１０に入ってもよい。新たなデータの送信又は伝送２３０が行われる場合、バス２００はスリープ状態を終了し、同期２２０を行う。このように、余計な時間及び電力が消費されるために、性能が低下する。さらに、同期信号が電磁妨害（ＥＭＩ）の原因となりえるため、ＥＭＩを軽減するためにさらなる遮蔽が必要となる。
【００３１】
充填データリンク又はバス２００アーキテクチャを、図２Ｂに示す。この例は、複数、例えば４つのデータレーン２０１、２０２、２０３、２０４を有する単方向データリンク又はバス２００を含む。送信されるべきデータがない場合であっても、バスは、必要に応じて充填２１５を行う。論理的なアイドル状態にあるため、バスは無意味なデータシンボルを伝送する。しかしながら、バス２００は、新たなデータの伝送２３０を行うべき場合はいつでも、非常に迅速に利用可能な状態となるため、時間及び電力の無駄が少ない。しかしながら、中間又は中断時間に充填２１５を行うことによってアクティブ状態を継続することは、電力を浪費し、非生産的な充填のための信号がＥＭＩの原因となりうる。
【００３２】
非アクティブな期間における性能及び電力のベクトルは、図３Ａに示すように、ハイブリッドレーン低速化（ＨＬＳ）データリンク又はバス３００アーキテクチャのための装置、方法、システムの実施形態を用いることによって、バランスをとることができる。この例は、複数、例えば４つのデータレーン３０１、３０２、３０３、３０４を有するデータリンク又はバス３００を含む。データバス３００は、単方向であってもよい。一つのデータレーンがマスタレーン３０１として機能するように、割り当てられ又は選択されてもよい。送信されるべきデータがない場合、所定の方向で、マスタレーンを除くすべてのレーンがシャットダウン又は低速化３１０される。マスタレーン３０１は、データ受信側をアクティブ状態に維持し、データソースとの同期を維持するように、充填３１５を行う。このように、新たなデータの伝送３３０を行うべき場合はいつでも、受信側は、依然としてマスタレーン３０１に固定されていることから、アクティブ状態になり、同期を行う必要がない。さらに、非マスタレーン３０２、３０３、３０４を、中間又は中断時間の間、完全にオフにする又は低速化３１０を行うことにより、電力消費が削減される。不要にシグナリングを行うデータレーンの数が減り、かつ、同期信号が不要であることから、ＥＭＩも最小化される。
【００３３】
ＥＭＩ及び無線周波妨害（ＲＦＩ）はいずれも、オフになっているレーンの数、又はレーンが非アクティブな時間のパーセンテージに比例して減少する。デューティサイクルは、合計「オン」／「オフ」時間に対する「オン」時間の比率である。例えば、４レーンのバス３００が、ハイブリッドレーン低速化データリンク又はバス３００アーキテクチャ（デューティサイクルの変更なし）を用いるとすれば、干渉は約６デシベル（ｄＢ）減少する。
【００３４】
ハイブリッドレーン低速化データリンク又はバス３００アーキテクチャのために用いることができる基本的なクロックアーキテクチャの実施形態を、図３Ｂに示す。送信機３４０は、全ての非マスタレーン３０２、３０３、３０４のためのクロックリカバリをマスタレーン３０１に固定するために、第１のデータ伝送速度の位相同期回路（ＰＬＬ）３４２を含む。遅延（Ｄ）フリップフロップは、非マスタレーンの各々に対して含まれてもよい。このように、信号は、１クロックパルスの期間（時間）だけ遅延した回路の出力において、出現することができる。
【００３５】
全てのレーンのクロックは、マスタレーン３０１がアクティブ状態である限り、維持される。受信機３５０は、クロックデータリカバリ（ＣＤＲ）３５４のための、第２のデータ伝送速度のＰＬＬ３５２を含む。
【００３６】
クロック信号は、周期的な波形を有する信号である。信号は、低い状態及び高い状態の間で振動する。クロック生成器は、クロック信号、例えば、規定された周波数を有する５０％デューティサイクルの方形波を生成してもよい。周波数は、時間に対する位相の導関数である。回路の異なる部分を同期するためのクロック信号を用いる回路は、クロックサイクルの立ち上がりエッジ及び／又は立ち下がりエッジにおいてアクティブ状態となることができる。
【００３７】
クロック基準は、低ノイズであること等の、高い品質を有する必要がある。クロストーク及び干渉も、ボードレベルで最小化される必要がある。
【００３８】
クロック信号は、正弦波を用いることもできる。正弦波クロックは、差動信号を用いてもよい。差動信号は、差動ペア等の２つのペア電線で送信される２つの補完信号を有する情報を伝送してもよい。ＥＭＩに対する抵抗は、外部干渉が両方の電線に影響する傾向があるため、改善される。所与の供給電圧に対して、差動シグナリングは、シングルエンド方式のシグナリングシステムの２倍のノイズ排除性を提供する。差動信号は、ＥＭＩに対する抵抗を改善するために、平衡線路（等しいインピーダンスを有する）で伝送されてもよい。
【００３９】
ＰＬＬは、入力された参照信号の位相に関連する位相を有する出力信号を生成する制御システムである。ＰＬＬは、可変周波数発振器及び位相検出器を有する電子回路を含む。回路は、入力信号の位相を出力発振器から抽出された信号の位相と比較し、２つの位相の整合を維持するように発振器の周波数を調整する。位相検出器からの信号は、フィードバックループにおいて発振器を制御するために用いられる。
【００４０】
ＰＬＬは、例えば集積回路を用いることによって、ハードウェアに実装されてもよい。ＰＬＬは、また、ソフトウェアに実装されてもよい。ソフトウェアでの実装は、フィードバックループのカスタマイズが容易であること等の利点を有する。
【００４１】
実施形態において、受信機は、１つ又は複数の非マスタレーン３０２、３０３、３０４の静的位相の整合を調整するために、１つ又は複数の遅延固定ループ（ＤＬＬ）を含む。ＤＬＬは、内部電圧によって制御される水晶発振器を有する。本質的には、ＤＬＬは、デジタル回路のクロックパスに、ネガティブ遅延ゲートを配置する。ＤＬＬは、ＣＤＲ等において、クロック信号の位相を変化させるために用いられてもよい。
【００４２】
他の実施形態において、受信機は、１つ又は複数の非マスタレーン３０２、３０３、３０４の静的位相の整合を調整するために、１つ又は複数の遅延ラインを含む。
【００４３】
さらに他の実施形態において、受信機は、１つ又は複数の非マスタレーン３０２、３０３、３０４の静的位相の整合を調整するために、１つ又は複数の位相補完器（ＰＩ）を含む。位相補完器により、 受信機は、そのサンプリングクロックの位相を、規定されたインクリメントで調整することができる。位相補完器は、入力クロックに対して粗く又は微小に位相がシフトされた出力クロックを生成してもよい。
【００４４】
実施形態において、位相補完器は、電圧によって制御されてもよい。電圧によって制御される位相補完器は、面積がより小さく、電力消費がより少ない。
【００４５】
他の実施形態において、位相補完器は、電流によって制御されてもよい。電流によって制御される位相補完器は、アナログ入力ではなくデジタル入力をとることから、より線形であり、かつ、より制御しやすい。
【００４６】
多くの遅延ゲートは、前から後ろへと接続されうる。遅延チェーンの入力は、ネガティブに遅延すべきクロックと接続されてもよい。マルチプレクサは、別個の効果を組み合わせるために、遅延チェーンの各ステージと接続されてもよい。要素の遅延は、実際の負荷が変化すると、変化しうる。制御回路は、ネガティブ遅延の効果をもたらすために、マルチプレクサのセレクタを更新してもよい。出力は、結果としてネガティブに遅延したクロック信号であってもよい。位相のシフトは、遅延チェーンゲートユニットに対して、及び／又はクロック周期に対して、規定されてもよい。
【００４７】
いくつかの実施形態において、ハイブリッドレーン低速化データリンク又はバス３００アーキテクチャは、様々なプラットフォームに用いられてもよい。様々な実施形態において、ロジック、例えば Ｉ／Ｏロジック、インタフェースロジック、又は物理レイヤロジックは、レーン又はチャネルと接続し、又はインタフェースをとってもよい。
【００４８】
一つのかかるプラットフォームは、ＰＣＩｅを含む。
【００４９】
他のかかるプラットフォームは、ビデオエレクトロニクススタンダーズアソシエーション（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ；ＶＥＳＡ）ディスプレイポート（ＤｉｓｐｌａｙＰｏｒｔ）のデジタルディスプレイインタフェースを含む。
【００５０】
さらに他のかかるプラットフォームは、モバイルインダストリープロセッサインタフェース（Ｍｏｂｉｌｅ  Ｉｎｄｕｓｔｒｙ  Ｐｒｏｃｅｓｓｏｒ  Ｉｎｔｅｒｆａｃｅ；ＭＩＰＩ）のＤ−ＰＨＹ又はその後継、もしくはＭ−ＰＨＹを含む。Ｄ−ＰＨＹプラットフォームは、カメラ等のモバイル機器内部のコンポーネント間における通信相互接続に対する、柔軟、低コスト、低電力、高速のシリアルインタフェースのソリューションを提供する。Ｍ−ＰＨＹ プラットフォームは、モバイルアプリケーションに対して、高帯域、低ピン数、非常に良好な電力効率のシリアルインタフェースを提供する。
【００５１】
物理レイヤ（ＰＨＹ）は、コンピュータネットワーキングの開放型システム間相互接続（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ；ＯＳＩ）モデルにおいて、最も下のレイヤ（プロトコルの合計７つのレイヤの中におけるレイヤ１）である。レイヤ１は、ネットワークの基本的なネットワーキングハードウェア伝送テクノロジからなる。ＰＨＹは、生ビットの伝送手段を定義するための（データリンクを確立及び維持するための）、レイヤ１の実装である。
【００５２】
ハイブリッドレーン低速化データリンク又はバスアーキテクチャを監視するために、オシロスコープでデータリンク又はバスを探索してもよい。ロジックアナライザも、ハイブリッドレーン低速化データリンク又はバスアーキテクチャを監視するために、データリンク又はバスの探索に用いられてもよい。
【００５３】
ハイブリッドレーン低速化方法の実施形態を、ブロック６００に始まりブロック６４０で終わる図６に示す。マスタレーンは、ブロック６２０において、割り当てられ又は選択される。マスタレーンは、非アクティブ状態のデータがある場合、ブロック６２２に示すように、充填を行う。マスタレーンは、非アクティブ状態のデータがない場合、データを伝送又は送信する。マスタレーンは、ブロック６２４に示すように、クロックを維持する。非マスタレーンは、ブロック６３０において、割り当てられ又は選択される。非マスタレーンは、ブロック６３１に示すように、マスタレーンに固定される。非マスタレーンは、非アクティブ状態のデータがある場合には、ブロック６３４に示すように、低速化又はアイドル状態に入る。非マスタレーンは、非アクティブ状態のデータがない場合には、ブロック６３３に示すように、データを伝送又は送信する。非マスタレーンは、ブロック６３６に示すように、マスタレーンからクロックを修復する。
【００５４】
双対データリンク又はバス４００のアーキテクチャの実施形態を、図４Ａに示す。かかるデータリンク又はバス４００は、伝送信号ペアでデータを伝送し、受信信号ペアで完了応答を受信する。データリンク又はバスのいずれか一端にある機器（又はエージェント）は、要求側又は完了側であってもよい。トランザクションタイプは、データリンク又はバス上において、異なる機会の異なる時間に、いずれかの方向に生成されてもよい。
【００５５】
双対データリンク又はバス４００は、例えば２.５ギガビット毎秒（Ｇｂｐｓ）のデータ伝送速度を有し、データロード（又は帯域）において非対称型であってもよい。図４Ｂに示すように、正方向チャネル、例えば第１のチャネル４２１は、例えば１．０００マイクロ秒（ｕｓｅｃ）の期間にわたる大きいデータバースト（ペイロード）４３０を伝送してもよい。大きいデータバースト（ペイロード）４３０は、必要に応じて、充填キャラクタ４１５の小さいバーストによって分離される。
【００５６】
逆方向チャネル、例えば第２のチャネル４２２は、例えば０．０５０ｕｓｅｃの期間にわたる小さいデータバースト、例えば、大半の場合は確認（ＡＣＫ）４３５のパケットを伝送してもよい。
【００５７】
双対データリンク又はバス４００は、第１の端部に第１の機器を有し、第２の端部に第２の機器を有する。第１の機器及び第２の機器は、双対データリンク又はバス４００の反対側の端部に位置する。
【００５８】
実施形態において、データリンク又はバス４００の第１の端部における第１の機器に対して、第１のチャネル４２１は、データ４３０を伝送するための正方向チャネルであってもよく、第２のチャネル４２２は、受信ＡＣＫ４３５を受信するための逆方向チャネルであってもよい。
【００５９】
これに応じて、データリンク又はバス４００の第２の端部における第２の機器に対して、第２のチャネル４２２は、ＡＣＫ４３５を伝送するための正方向チャネルであってもよく、第１のチャネル４２１は、データ４３０を受信するための逆方向チャネルであってもよい。
【００６０】
非同期システムは、タイミング情報の交換又は共有を行わない。同期システムは、共通の又は共有のクロックから抽出可能なタイミング情報を用いることから、良好にマッチする。プレシオクロナスシステムは、正確にマッチしていない可能性のある異なる又は別個のクロックからの信号を用いる。実施形態において、ミスマッチは小さい可能性がある。他の実施形態において、ミスマッチは、長い時間にわたって一定のままである可能性がある。さらに他の実施形態において、ミスマッチは、経時的にドリフトする可能性がある。
【００６１】
実施形態において、同期処理は、プレシオクロナス入力／出力（Ｉ／Ｏ）又はインタフェースデータリンク又はバス４００を、スリープ状態から非スリープ状態にするために用いられてもよい。受信機は、クロック４１９を修復するために、トレーニングビットストリームに固定される。しかしながら、バス４００がＡＣＫ等の小さいデータバースト４３５のみを伝送する場合には、トレーニング時間は、データ伝送時間よりも長い可能性がある。ＡＣＫ等の、連続的なデータバースト間の隙間時間４３５がトレーニング時間よりも短い場合には、バス４００は、ＡＣＫ等の、連続的なデータバースト間の隙間時間４３５に、スリープ状態になることができない。
【００６２】
例えば６．０００ｕｓｅｃにわたる、逆方向チャネル４２２をスリープから非スリープにするためのトレーニング時間、すなわち同期時間が、例えば１．０００ｕｓｅｃにわたるＡＣＫ等のデータの隙間時間よりも大きい場合には、逆方向チャネル４２２は、ＡＣＫ４３５パケット間におけるＡＣＫ等のデータの隙間時間で低速化（又はアイドル又はスリープ）することができない。かかる状況において、逆方向チャネル４２２は、有用なデータが送信されていない場合であってもアクティブ状態を維持するために、充填キャラクタ４１５の大きいバーストを伝送する。しかしながら、連続送信は、電力消費を増大させる。さらに、充填キャラクタが十分にランダム化されていない場合には、ＥＭＩが問題となる可能性がある。
【００６３】
データリンク又はバスのトレーニングは、データリンク又はバスの構成パラメータを確立するために２つの機器（エージェント）によって実行されうるプロトコルを含む。オーダされたデータセットは、送信されてもよく、繰り返されてもよい。各エージェントは、他サイドからのデータセットを認識した後、物理レイヤリンクのネゴシエーションに進む。ネゴシエーションの成功は、他のデータセットを有する両方のエージェントによって確認される。さらなる情報が、交換される。機器のステータスは、定期的に更新される。
【００６４】
いくつかの実施形態において、プレシオクロナスデータは、クロックリカバリを行うことなく受信されてもよい。非固定（ＮＬ）のデータリンク又はバス５００のアーキテクチャを有する装置、方法、システムの実施形態が、図５Ａ、図５Ｂ、および図５Ｃに示される。非固定バス５００のアーキテクチャは、データラッチ５１７を入力データストリームに同期するための高速クロックを用いることなく、データの送受信に用いられる。
【００６５】
複数の冗長ビットは、データリンクのロバスト性を、大きい（百万分の一又はｐｐｍにおいて計測される）クロックオフセットにまで高めるために、用いられてもよい。様々な実施形態において、冗長性は、３ビット、４ビット、５ビット、又はさらに大きいビットを含む。
【００６６】
実施形態において、３倍の冗長ビットが用いられてもよい。そこで、逆方向チャネルＡＣＫ５３５は、冗長性により、３倍の期間５０２を有する。受信機は、非固定の入力ビットストリームをサンプリングするために、同期されずに受信した高速クロック５１５を用いる。受信機は、正しいロジック状態を判断するために、３：１のボーティング５１８（共時性なし）を用いてもよい。このように、クロック５０５及びデータ５０２の整合が、クロックエッジがデータエッジと一致する「最悪のケース」であっても、元のデータを正しく修復することができる。ＳＹＮＣ（長い場合がある）は、受信機がＡＣＫ５３５に固定する必要がないため、用いられない。結果的に、逆方向チャネル５２２は、例えば１．０００ｕｓｅｃの長いインターバルにわたって、低速化５１０を行うことができる。例えば、逆方向チャネル５２２は、時間の８０％超にわたって低速化５１０を行うことができ、このように電力消費及びＥＭＩがいずれも削減される。
【００６７】
例えばポイントツーポイントの非固定データの送信（例えば第２の機器による）及び受信（例えば第１の機器による）方法の実施形態を、ブロック７００に始まりブロック７６０で終わる図７に示す。確認（ＡＣＫ）等のデータは、ブロック７１０に示すように、（例えば第２の機器から）複数、例えば３倍の冗長ビットとともに（例えば第１の機器に）伝送又は送信されてもよい。データは、３倍の冗長ビットにより、３倍の期間を有してもよい。
【００６８】
データは、ブロック７１５に示すように、（例えば第１の機器により、第２の又は逆方向チャネルにおいて）複数、例えば３倍の冗長ビットとともに（例えば第２の機器から）受信されてもよい。データ値は、ブロック７２０に示すように、（例えば第１の機器によって）サンプリングされてもよい。３：１等のボーティングは、ブロック７３０に示すように、（例えば第１の機器によって）実行されてもよい。正しいロジック状態は、ブロック７４０に示すように、（例えば第１の機器によって）判断されてもよい。第１の機器（の第２の又は逆方向チャネル）は、受信すべきデータがない場合には、ブロック７５０に示すように、低速化又はアイドルとなってもよい。
【００６９】
ＥＭＩ及びＲＦＩはいずれも、レーンが非アクティブ状態である時間のパーセンテージに比例して減少する。デューティサイクルは、合計（オン及びオフ）時間に対するオン時間の比率である。例えば、１レーンバスが、２０％デューティサイクル（すなわち、時間の８０％で低速化され、又はオフになっている）の非固定バス５００のアーキテクチャの実施形態を用いる場合、干渉は、（１００％デューティサイクルに対して）約７ｄＢ減少する。
【００７０】
いくつかの実施形態において、非固定データリンク又はバス５００のアーキテクチャは、非アクティブ状態となりうる各方向において、１つ又は複数のレーン又はチャネルを有するデータリンク又はバスを含むプラットフォームに対して用いられてもよい。様々な実施形態において、ロジック、例えばＩ／Ｏロジック、インタフェースロジック、又は物理レイヤロジックは、レーン又はチャネルと接続され、又はインタフェースをとってもよい。
【００７１】
一つのかかるプラットフォームは、ＰＣＩｅを含む。
【００７２】
他のかかるプラットフォームは、汎用シリアルバス（ＵＳＢ）を含む。ＵＳＢは、通信及び電力供給の両方のために、パーソナルコンピュータ及びコンピュータ周辺機器の間の接続を標準化するために設計された。
【００７３】
さらに他のかかるプラットフォームは、モバイルインダストリープロセッサインタフェース（Ｍｏｂｉｌｅ  Ｉｎｄｕｓｔｒｙ  Ｐｒｏｃｅｓｓｏｒ  Ｉｎｔｅｒｆａｃｅ；ＭＩＰＩ）のＭ−ＰＨＹを含む。Ｍ−ＰＨＹプラットフォームは、モバイルアプリケーションに対して、高帯域、低ピン数、非常に良好な電力効率のシリアルインタフェースを提供する。
【００７４】
物理レイヤ（ＰＨＹ）は、コンピュータネットワーキングの開放型システム間相互接続（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ；ＯＳＩ）モデルにおいて、最も下のレイヤ（プロトコルの合計７つのレイヤの中におけるレイヤ１）である。レイヤ１は、ネットワークの基本的なネットワーキングハードウェア伝送テクノロジからなる。ＰＨＹは、生ビットの伝送手段を定義するための（データリンクを確立及び維持するための）、レイヤ１の実装である。
【００７５】
非固定データリンク又はバスアーキテクチャを監視するために、オシロスコープでデータリンク又はバスを探索してもよい。ロジックアナライザも、非固定データリンク又はバスアーキテクチャを監視するために、データリンク又はバスの探索に用いられてもよい。
【００７６】
多くの実施形態が上述されたが、当業者は、これらの実施形態から、数多くの変更例及び変形例を認識するであろう。添付された特許請求の範囲は、かかる全ての変更例及び変形例を網羅するものである。
【００７７】
設計は、創造からシミュレーション、製造へと、様々なステージを通過する。設計を表現するデータは、数々の態様で設計を表現してもよい。第１に、シミュレーションにおいて有用であるように、ハードウェア記述言語又は他の機能的な記述言語を用いて、ハードウェアを表現してもよい。さらに、ロジック及び／又はトランジスタゲートを有する回路レベルのモデルは、設計工程におけるいくつかのステージで生成されてもよい。さらに、大半の設計は、いくつかのステージにおいて、ハードウェアモデルにおける様々な機器の物理的な配置を表現するデータのレベルに到達する。従来の半導体製造技術を用いるケースにおいて、ハードウェアモデルを表現するデータは、集積回路の生成に用いられるマスクに対して、異なるマスクレイヤ上の様々な特徴の有無を規定するデータであってもよい。設計のあらゆる表現において、データは、あらゆる形式の機械読み取り式媒体に格納されてもよい。メモリもしくはディスク等の磁気的又は光学的記憶装置は、かかる情報を伝送するために変調され、又は他の方法で生成された光波又は電波を介して伝送された情報を格納する機械読み取り式媒体であってもよい。コード又は設計を示す又は搬送する電気的な搬送波が伝送される場合、電気信号のコピー、バッファリング、又は再伝送が実行される範囲で、新たなコピーが生成される。このように、通信プロバイダ又はネットワークプロバイダは、例えば、本発明の実施形態を具現化する技術が搬送波に暗号化された情報等の物を、少なくとも一時的に、有体の機械読み取り式媒体に格納してもよい。
【００７８】
本明細書で用いられるモジュールは、ハードウェア、ソフトウェア及び／又はファームウェアのあらゆる組み合わせをいう。例として、モジュールは、マイクロコントローラによって実行されるコードを格納するために、非一時的な媒体と関連付けられるマイクロコントローラ等のハードウェアを含む。そのため、モジュールへの参照は、一実施形態において、非一時的な媒体に維持されるべきコードを認識及び／又は実行するように特に構成されるハードウェアをいう。さらに、他の実施形態において、モジュールの使用は、所定の動作を実行するために、マイクロコントローラによって実行されるように特に構成されるコードを含む、非一時的な媒体をいう。そして、推測されるように、さらに他の実施形態において、（この例における）タームモジュールは、マイクロコントローラ及び非一時的な媒体の組み合わせを意味してもよい。多くの場合、別個のものとして説明されるモジュールの境界は、一般的に変化し、かつ、重複する可能性がある。例えば、第１の及び第２のモジュールは、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせを共有してもよいが、個別のハードウェア、ソフトウェア、又はファームウェアを保持する可能性もある。一実施形態において、タームロジックの使用は、ハードウェア、例えばトランジスタ、レジスタ、又はプログラム可能なロジック機器等の他のハードウェアを含む。
【００７９】
「に対して」又は「するように構成され」という用語の使用は、一実施形態において、設計された又は決定されたタスクを実行する装置、ハードウェア、ロジック、又は要素の準備、組み立て、製造、販売の申し出、輸入及び／又は設計をいう。この例において、動作していない装置又はその要素も、指定されたタスクを実行するために設計され、接続され、及び／又は相互接続される場合には、指定されたタスクを実行「するように構成され」る。純粋に説明のための例として、ロジックゲートは、動作時は、０又は１を提供してもよい。しかし、クロックを実現する信号を提供「するように構成され」るロジックゲートは、１又は０を提供しうるあらゆる潜在的なロジックゲートを含まない。その代わり、ロジックゲートは、動作時に１又は０の出力がクロックを実現するいくつかの態様で接続されるものである。用語「するように構成され」の使用は、動作を必要としない代わりに、装置、ハードウェア、及び／又は要素の潜在的な状態を焦点としており、ここで、潜在的な状態において、装置、ハードウェア、及び／又は要素は、装置、ハードウェア、及び／又は要素が動作する場合には特定のタスクを実行するように設計されていることに再度留意されたい。
【００８０】
さらに、「が可能な」及び又は「操作可能な」という用語の使用は、一実施形態において、装置、ロジック、ハードウェア、及び／又は要素の規定された態様での使用を可能にする方法で設計されたいくつかの装置、ロジック、ハードウェア、及び／又は要素をいう。上述したように、に対して、が可能な、又は操作可能なという用語の使用は、一実施形態において、装置、ロジック、ハードウェア、及び／又は要素の潜在的な状態をいい、ここで、装置、ロジック、ハードウェア、及び／又は要素は動作していないが、装置の規定された態様での使用を可能にする方法で設計されていることに留意されたい。
【００８１】
本明細書で用いられる値は、数、状態、ロジック状態、又はバイナリロジック状態の、あらゆる公知の表現を含む。多くの場合、ロジックレベル、ロジック値、又は論理値の使用は、バイナリロジック状態を単純に表現する１及び０とも称される。例えば、１は、高ロジックレベルをいい、０は、低ロジックレベルをいう。一実施形態において、記憶装置セル、例えばトランジスタ又はフラッシュセルは、単一の論理値又は複数の論理値を維持することができる。しかしながら、コンピュータシステムにおいては、値の他の表現が用いられてきた。例えば、１０進法の数１０は、バイナリ値１０１０及び１６進数の文字Ａとしても表現可能である。そのため、値は、コンピュータシステムにおいて維持可能な情報のあらゆる表現を含む。
【００８２】
さらに、状態は、値又は値の一部で表現可能である。例として、第１の値、例えば、論理値の１は、デフォルト又は初期状態を表現してもよく、第２の値、例えば論理値の０は、ノンデフォルト状態を表現してもよい。さらに、用語リセット及びセットは、一実施形態において、それぞれ、デフォルト及び更新された値又は状態をいう。例えば、デフォルト値は、高論理値、すなわちリセットを含む可能性があるが、更新された値は、低論理値、すなわちセットを含む可能性がある。値のあらゆる組み合わせは、任意の数の状態を表現するために用いられてもよいことに留意されたい。
【００８３】
上述した方法、ハードウェア、ソフトウェア、ファームウェア、又はコードの実施形態は、機械によりアクセス可能な、機械により読み取り可能な、コンピュータによりアクセス可能な、又はコンピュータにより読み取り可能な、処理要素によって実行可能である媒体に格納された命令又はコードを介して実装されてもよい。非一時的な機械によりアクセス可能な／読み取り可能な媒体は、コンピュータ又は電子システム等の機械により読み取り可能な形式で情報を提供する（すなわち、格納及び／又は伝送する）あらゆるメカニズムを含む。例えば、非一時的な機械によりアクセス可能な媒体は、静的ＲＡＭ（ＳＲＡＭ）又は動的ＲＡＭ（ＤＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）；ＲＯＭ；磁気又は光学記憶媒体；フラッシュメモリデバイス；電気記憶機器；光学記憶機器；音声記憶機器；一過性の（伝搬）信号（例えば、搬送波、赤外線信号、デジタル信号）から受信した情報を維持する他の形式の記憶機器；等、そこから情報を受信することができる非一時的な媒体から区別可能な媒体を含む。
【００８４】
プログラムロジックが本発明の実施形態を実行するために用いられる命令は、システムのメモリ、例えばＤＲＡＭ、キャッシュ、フラッシュメモリ、又は他の記憶装置に格納されてもよい。さらに、命令は、ネットワークを介して、又は他のコンピュータにより読み取り可能な媒体によって分配可能である。このように、機械により読み取り可能な媒体は、機械（例えば、コンピュータ）により読み取り可能な形式で情報を格納又は伝送するあらゆるメカニズムを含むが、これに限定されるものではなく、フロッピー（登録商標）ディスク、光学ディスク、コンパクトディスク、読み出し専用メモリ（ＣＤ−ＲＯＭｓ）、及び光磁気ディスク、読み出し専用メモリ（ＲＯＭｓ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能かつプログラム可能な読み出し専用メモリ（ＥＰＲＯＭ）、電気的に消去可能かつプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）、磁気又は光学カード、フラッシュメモリ、又は電気、光、音声又は他の形式の伝搬信号（例えば、搬送波、赤外線信号、デジタル信号等）を介したインターネットによる情報の伝送に用いられる有体の、機械により読み取り可能な記憶装置であってもよい。従って、コンピュータにより読み取り可能な媒体は、電子命令又は情報の機械（例えば、コンピュータ）により読み取り可能な形式での格納又は伝送に適したあらゆるタイプの有体の機械により読み取り可能な媒体を含む。
【００８５】
本明細書を通じて、「一実施形態」又は「実施形態」への言及は、実施形態と関連して記載された特定の特徴、構造、又は性質が、少なくとも本発明の一実施形態に含まれることを意味する。このように、本明細書を通じて様々な場所に登場する「一実施形態において」又は「実施形態において」という用語は、必ずしも全て同じ実施形態に言及するものではない。さらに、特定の特徴、構造、又は特性は、１つ又は複数の実施形態において、あらゆる適切な態様で組み合わせ可能である。
【００８６】
前述した明細書において、具体的かつ例示的な実施形態を参照して、詳細な説明がなされた。しかしながら、この説明に対する様々な変形及び変更が、添付された特許請求の範囲において上述した本発明の広範な精神及び範囲を逸脱することなく加えられる可能性があることは明白である。従って、明細書及び図は、限定的な意味ではなく説明的な意味でとらえられるべきである。さらに、前述した実施形態の用途及び他の例示的な文言は、必ずしも同じ実施形態又は同じ例に言及するものではなく、異なる実施形態に言及している可能性があり、潜在的に 同じ実施形態に言及している可能性もある。
【００８７】
以下の実施例は、さらなる実施形態に関する。実施例の詳細は、１つ又は複数の実施形態のいかなる部分においても使用可能である。例えば、本明細書に記載される装置又はシステムの全ての選択的な特徴は、本明細書に記載される方法又は処理に対しても実装可能である。
【００８８】
実施例１は、データ受信側をアクティブ状態に維持し、かつ、データソースと同期するマスタレーンと、マスタレーンに固定され、アイドル時間において完全にオフにされる第１の非マスタレーンと、を含む複数のレーンを備えるリンクと；リンクとのインタフェースをとるインタフェースロジックと、を備える装置である。
【００８９】
実施例２は、マスタレーンに固定され、アイドル時間において完全にオフにされる他の非マスタレーンをさらに有する実施例１に記載の装置である。
【００９０】
実施例３は、マスタレーンは、単方向である、実施例１に記載の装置である。
【００９１】
実施例４は、第１の非マスタレーンは、単方向である、実施例１に記載の装置である。
【００９２】
実施例５は、第１の非マスタレーンは、アクティブ状態となり同期する必要がない、実施例１に記載の装置である。
【００９３】
実施例６は、各非マスタレーンに対するＤフリップフロップをさらに有する実施例２に記載の装置である。
【００９４】
実施例７は、１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の遅延固定ループをさらに有する実施例２に記載の装置である。
【００９５】
実施例８は、１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の遅延ラインをさらに有する実施例２に記載の装置である。
【００９６】
実施例９は、１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の位相補完器をさらに有する実施例２に記載の装置である。
【００９７】
実施例１０は、データ受信側をアクティブ状態に維持し、かつ、データソースと同期をとるマスタレーンと、マスタレーンに固定され、アイドル時間において完全にオフにされる第１の非マスタレーンと、を含む複数のレーンを備えるリンクと；リンクとインタフェースをとる物理レイヤロジックと、を備える装置である。
【００９８】
実施例１１は、マスタレーンに固定され、アイドル時間において完全にオフにされる他の非マスタレーンをさらに有する実施例１０に記載の装置である。
【００９９】
実施例１２は、マスタレーンは、単方向である、実施例１０に記載の装置である。
【０１００】
実施例１３は、第１の非マスタレーンは、単方向である、実施例１０に記載の装置である。
【０１０１】
実施例１４は、第１の非マスタレーンは、アクティブ状態となり同期する必要がない、実施例１０に記載の装置である。
【０１０２】
実施例１５は、各非マスタレーンに対するＤフリップフロップをさらに有する実施例１１に記載の装置である。
【０１０３】
実施例１６は、１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の遅延固定ループをさらに有する実施例１１に記載の装置である。
【０１０４】
実施例１７は、１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の遅延ラインをさらに有する実施例１１に記載の装置である。
【０１０５】
実施例１８は、１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の位相補完器をさらに有する実施例１１に記載の装置である。
【０１０６】
実施例１９は、データ受信側をアクティブ状態に維持し、かつ、データソースと同期をとるマスタレーンと、マスタレーンに固定され、アイドル時間において完全にオフにされる第１の非マスタレーンと、を含む複数のレーンを備えるリンクを備える装置と；リンクとインタフェースをとる物理レイヤロジックと、を備えるコンピュータシステムである。
【０１０７】
実施例２０は、アイドル時間において完全にオフにされ、アクティブ状態となり同期する必要がない、他の非マスタレーンをさらに有する実施例１９に記載のコンピュータシステムである。
【０１０８】
実施例２１は、マスタレーンは、単方向である、実施例１９に記載のコンピュータシステムである。
【０１０９】
実施例２２は、各非マスタレーンに対するＤフリップフロップをさらに有する実施例２０に記載のコンピュータシステムである。
【０１１０】
実施例２３は、１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の遅延固定ループをさらに有する実施例２０に記載のコンピュータシステムである。
【０１１１】
実施例２４は、１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の遅延ラインをさらに有する実施例２０に記載のコンピュータシステムである。
【０１１２】
実施例２５は、１つ又は複数の非マスタレーンのために静的位相の整合を調整する１つ又は複数の位相補完器をさらに有する実施例２０に記載のコンピュータシステムである。
【０１１３】
実施例２６は、マスタレーン及び１つ又は複数の非マスタレーンを含む、リンクの複数のレーンとインタフェースをとることと、非アクティブ状態の期間において、非マスタレーンを低速化することと、非アクティブ状態の期間において、マスタレーンのアクティブなデータ同期を維持することと、非マスタレーンで伝送されるべきデータを示すためのアクティブ状態インジケータに応じて、マスタレーンのデータ同期に基づいて非マスタレーンのデータ同期を実行することなく、非マスタレーンをアクティブ状態にすることと、を備える方法である。
【０１１４】
実施例２７は、各非マスタレーンの遅延をＤフリップフロップで調整することをさらに備える実施例２６に記載の方法である。
【０１１５】
実施例２８は、１つ又は複数の非マスタレーンのために、１つ又は複数の遅延固定ループで静的位相の整合を調整することをさらに備える実施例２６に記載の方法である。
【０１１６】
実施例２９は、１つ又は複数の非マスタレーンのために、１つ又は複数の遅延ラインで静的位相の整合を調整することをさらに備える実施例２６に記載の方法である。
【０１１７】
実施例３０は、１つ又は複数の非マスタレーンのために、１つ又は複数の位相補完器で静的位相の整合を調整することをさらに備える実施例２６に記載の方法である。
【図１】
2014206971.tif 000003
【図２Ａ】
2014206971.tif 000004
【図２Ｂ】
2014206971.tif 000005
【図３Ａ】
2014206971.tif 000006
【図３Ｂ】
2014206971.tif 000007
【図４Ａ】
2014206971.tif 000008
【図４Ｂ】
2014206971.tif 000009
【図５Ａ】
2014206971.tif 000010
【図５Ｂ】
2014206971.tif 000011
【図５Ｃ】
2014206971.tif 000012
【図６】
2014206971.tif 000013
【図７】
2014206971.tif 000014
【外国語明細書】
2014206971000001.pdf