以下の記載では、本発明が十分に理解されることを目的として、プロセッサ及びシステム構成の具体的な種類、具体的なハードウェア構造、具体的なアーキテクチャ及びマイクロアーキテクチャの詳細、具体的なレジスタ構成、具体的な命令の種類、具体的なシステムコンポーネント、具体的な計測/高さ、具体的なプロセッサパイプラインのステージ、及び動作等の例を含む、数多くの具体的な詳細が説明される。しかしながら、当業者にとっては、本発明を実施するために、これらの具体的な詳細を採用することを必要としないことは明らかであろう。他の例では、周知のコンポーネント又は方法、例えば、具体的かつ代替え的なプロセッサアーキテクチャ、記載されたアルゴリズムのための具体的な論理回路/コード、具体的なファームウェアコード、具体的な相互接続動作、具体的なロジック構成、具体的な製造技術及び材料、具体的なコンパイラの実装、アルゴリズムのコードにおける具体的な表現、具体的な電源遮断及びゲーティング技術/ロジック、及びコンピュータシステムの他の具体的な動作の詳細は、本発明を不要に不明瞭にしないよう、詳述されていない。
以下の実施形態は、具体的な集積回路、例えばコンピュータのプラットフォーム又はマイクロプロセッサにおける省エネルギー及びエネルギーの効率化を参照して記載されうるが、他の実施形態は、他の種類の集積回路及びロジック機器に適用される。本明細書に記載される実施形態と同様の技術及び教示は、より良いエネルギー効率及び省エネルギーによる利益を享受しうる他のタイプの回路又は半導体機器に適用されうる。例えば、開示された実施形態は、デスクトップコンピュータシステム又はウルトラブック(商標)に限定されるものではなく、他の機器、例えば携帯型機器、タブレット端末、他の薄型ノートブックパソコン、チップ集積型システム(SOC)機器、及び埋め込みアプリケーションに用いてもよい。携帯型機器の例は、携帯電話、インターネットプロトコル機器、デジタルカメラ、携帯情報端末(PDA)、及び携帯型PCを含む。埋め込みアプリケーションは、典型的には、マイクロコントローラ、デジタル信号プロセッサ(DSP)、SOC、ネットワークコンピュータ(NetPC)、セットトップボックス、ネットワークハブ、広域ネットワーク(WAN)スイッチ、又は以下に教示される機能及び動作を実行することができるあらゆる他のシステムを含む。さらに、本明細書に記載される方法、装置、及びシステムは、物理的なコンピュータ機器に限定されるものではなく、省エネルギー及び効率化のためのソフトウェアの最適化に適用されてもよい。以下の記載から容易に明らかとなるように、本明細書に記載される方法、装置、及びシステムの実施形態は(ハードウェア、ファームウェア、ソフトウェア、又はこれらの組み合わせのいずれに関しても)、性能考察とバランスをとる「グリーンテクノロジ」の将来に不可欠である。
コンピュータシステムの進歩に伴い、コンピュータシステムのコンポーネントがより複雑化している。その結果、最適なコンポーネントの動作のための帯域の要件を満たすために、コンポーネント間で接続及び通信を行うための相互接続アーキテクチャも複雑化している。さらに、市場セグメントが異なると、市場のニーズに応えるために、相互接続アーキテクチャに求める態様が異なる。例えば、サーバが高い性能を要求する一方で、モバイルエコシステムは、時として、省電力のために全体的な性能を犠牲にすることが可能である。しかし、ほとんどのファブリックにとっては、省電力を最大化しつつ、できるだけ最高の性能を提供することが唯一の目的である。以下に説明される多数の相互接続は、本明細書に記載される発明の態様から利益を享受しうる。
図1を参照すると、マルチコアプロセッサを含むコンピュータシステムのブロック図の実施形態が示される。プロセッサ100は、マイクロプロセッサ、埋め込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、携帯型プロセッサ、アプリケーションプロセッサ、コプロセッサ、SOC、又はコードを実行する他の機器等の、あらゆるプロセッサ又は処理機器を含む。プロセッサ100は、一実施形態において、少なくとも2つのコア、すなわちコア101及び102を含み、これらのコアは、非対称型コア又は対称型コア(図示の実施形態)を含んでよい。ただし、プロセッサ100は、任意の数の処理要素を含んでよく、これらの処理要素は、対称型又は非対称型のいずれであってもよい。
一実施形態において、処理要素は、ソフトウェアのスレッドをサポートするハードウェア又はロジックをいう。ハードウェア処理要素の例は、スレッドユニット、スレッドスロット、スレッド、処理ユニット、コンテキスト、コンテキストユニット、論理プロセッサ、ハードウェアスレッド、コア、及び/又はプロセッサの状態、例えば実行状態又はアーキテクチャの状態を保持するためのあらゆる他の要素を含む。換言すると、処理要素は、一実施形態において、個別にコードと関連付けられるあらゆるハードウェア、例えば、ソフトウェアスレッド、オペレーティングシステム、アプリケーション、又は他のコードをいう。物理プロセッサ(又はプロセッサソケット)は、典型的には、コア又はハードウェアスレッド等の、任意の数の他の処理要素を含みうる集積回路をいう。
コアは、多くの場合、個別に維持されるアーキテクチャの状態の各々を、少なくともいくつかの専用の実行リソースと関連付けて、個別のアーキテクチャの状態を維持するための、集積回路のロジックをいう。コアと対照的に、ハードウェアスレッドは、典型的には、個別に維持されるアーキテクチャの状態が実行リソースへのアクセスを共有するように、個別のアーキテクチャの状態を維持するための、あらゆる集積回路のロジックをいう。つまり、あるリソースが共有され、他のリソースが専用のあるアーキテクチャの状態の専用である場合、ハードウェアスレッド及びコアの命名は重複する。しかし多くの場合、コアとハードウェアスレッドとは、オペレーティングシステムから見ると、各論理プロセッサにおける動作のスケジューリングを個別に行うことができるオペレーティングシステムの個別の論理プロセッサである。
物理プロセッサ100は、図1に示すように、2つのコア、すなわちコア101及び102を含む。ここで、コア101及び102は、対称型コア、すなわち、同じ構成、機能ユニット、及び/又はロジックを有するコアとする。他の実施形態において、コア101は、アウト・オブ・オーダー プロセッサコアを含み、コア102は、イン・オーダープロセッサコアを含む。しかしながら、コア101及び102は、あらゆる種類のコア、例えば、ネイティブコア、ソフトウェア管理型のコア、命令セットアーキテクチャ(ISA)を実行するように構成されたコア、翻訳されたISAを実行するように構成されたコア、協調設計されたコア、又は他の公知のコアから個別に選択されてもよい。ヘテロジーニアスコア環境(すなわち、非対称型コア)において、いくつかの翻訳の形式、例えばバイナリ翻訳は、1つ又は両方のコアに対するコードのスケジューリング又は実行に使用されてもよい。まだ説明は続けるが、コア102におけるユニットは図示される実施形態と同様に動作するため、コア101の中に示される実行ユニットについて、さらに詳細について後述する。
図示されるように、コア101は、2つのハードウェアスロット101a及び101bを含み、これらはハードウェアスレッドスロット101a及び101bと称されることもある。そのため、オペレーティングシステム等のソフトウェアエンティティは、一実施形態において、プロセッサ100を、4つの別個のプロセッサ、すなわち、4つのソフトウェアスレッドを同時に実行可能な4つの論理プロセッサ又は処理要素とみなすことができる。上述の説明で示唆したように、第1のスレッドは、アーキテクチャ状態レジスタ101aと関連付けられ、第2のスレッドは、アーキテクチャ状態レジスタ101bと関連付けられ、第3のスレッドは、アーキテクチャ状態レジスタ102aと関連付けられてもよく、第4のスレッドは、アーキテクチャ状態レジスタ102bと関連付けられてもよい。ここで、アーキテクチャ状態レジスタの各々(101a、101b、102a、及び102b)は、上述したように、処理要素、スレッドスロット、又はスレッドユニットと称されてもよい。図示されるように、アーキテクチャ状態レジスタ101aは、アーキテクチャ状態レジスタ101bにおいて複製されるため、個々のアーキテクチャ状態/コンテキストは、論理プロセッサ101a及び論理プロセッサ101bのために格納されることができる。コア101において、他のより小さいリソース、例えばアロケータ及びリネーマブロック130における命令ポインタ及びリネームロジックは、スレッド101a及び101bのために複製されてもよい。いくつかのリソース、例えばリオーダ/リタイアメントユニット135におけるリオーダバッファ、命令トランスレーションルックアサイドバッファ(I−TLB)120、ロード/格納バッファ、及びキューは、パーティションによって共有されてもよい。他のリソース、例えば汎用内部レジスタ、ページテーブルベースのレジスタ、低水準データキャッシュ及びデータトランスレーションルックアサイドバッファ(D−TLB)115、実行ユニット140、及びアウト・オブ・オーダーユニット135の一部は、完全に共有される可能性がある。
プロセッサ100は、多くの場合、完全に共有されうる、パーティションによって共有されうる、又は処理要素によって/に対して専用とされうる他のリソースを含む。図1において、図示されたプロセッサの論理ユニット/リソースを有する純粋に例示的なプロセッサの実施形態が示される。プロセッサは、これらの実行ユニットのいずれを含んでもよく、又は省略してもよく、また、図示されていないあらゆる他の公知の実行ユニット、ロジック、又はファームウェアを含んでもよいことに留意されたい。説明のとおり、コア101は、単純化された、代表的なアウト・オブ・オーダー(OOO)プロセッサコアを含む。しかしながら、異なる実施形態においては、イン・オーダープロセッサを用いることができる。OOOコアは、実行されるべき/とるべきブランチを予測するブランチターゲットバッファ120と、命令のためのアドレス翻訳エントリを格納するI−TLB120とを含む。
コア101は、フェッチされた要素を復号するために、フェッチユニット120と接続される復号モジュール125をさらに含む。フェッチロジックは、一実施形態において、スレッドスロット101a、101bと個別に関連付けられる個々のシーケンサを含む。通常、コア101は、プロセッサ100上で実行可能な命令を定義/規定する第1のISAと関連付けられる。多くの場合、第1のISAの一部であるマシンコード命令は、実行されるべき命令又は動作を参照/規定する命令の一部(命令コードという)を含む。復号ロジック125は、命令コードからこれらの命令を認識し、第1のISAによって定義されるように、パイプラインにおいて復号化された命令を伝える回路を含む。例えば、以下に詳述するように、デコーダ125は、一実施形態において、トランザクション命令等の具体的な命令を認識するように構成されたロジックを含む。デコーダ125による認識の結果、アーキテクチャ又はコア101は、適切な命令に関連付けられたタスクを実行するために、具体的な、予め定義された動作を行う。明細書に記載されるあらゆるタスク、ブロック、動作、及び方法は、新しい又は古い命令を含む1つ又は複数の命令に応じて実行されることに留意することが重要である。デコーダ126は、一実施形態において、同じISA(又はそのサブセット)を認識することに留意されたい。あるいは、ヘテロジーニアスコア環境において、デコーダ126は、第2のISA(第1のISA又は異なるISAのいずれかのサブセット)を認識する。
一例において、アロケータ及びリネーマブロック130は、命令の処理結果を記憶するレジスタファイル等のリソースを保持するためのアロケータを含む。しかしながら、スレッド101a及び101bは、アウト・オブ・オーダー実行を行う可能性があり、ここで、アロケータ及びリネーマブロック130は、命令結果を追跡するためのリオーダバッファ等の他のリソースも保持する。ユニット130は、プロセッサ100内部の他のレジスタに対してプログラム/命令参照レジスタの名前を変更するためのレジスタリネーマをさらに含んでもよい。リオーダ/リタイアメントユニット135は、アウト・オブ・オーダー実行、及びアウト・オブ・オーダーで実行された命令のイン・オーダーリタイアメントをサポートするために、上述したリオーダバッファ、ロードバッファ、及び格納バッファ等のコンポーネントを含む
スケジューラ及び実行ユニットブロック140は、一実施形態において、実行ユニットに対する命令/動作のスケジューリングを行うスケジューラユニットを含む。例えば、浮動小数点命令は、利用可能な浮動小数点実行ユニットを有する実行ユニットのポートにおいてスケジューリングされる。実行ユニットと関連付けられるレジスタファイルも、情報命令の処理結果を格納するために含まれる。例示的な実行ユニットは、浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、ロード実行ユニット、格納実行ユニット、及び他の公知の実行ユニットを含む。
低水準のデータキャッシュ及びデータトランスレーションバッファ(D−TLB)150は、実行ユニット140と接続される。データキャッシュは、メモリのコヒーレンシ状態に維持される可能性があるデータオペランド等の要素上で、最近用いられた/操作されたものを格納する。D−TLBは、最近の仮想的な/物理的なアドレス翻訳に線形なものを格納する。具体例として、プロセッサは、物理的なメモリを複数の仮想的なページに分割するページテーブル構造を含んでもよい。
ここで、コア101及び102は、より高水準の又は離隔(further−out)キャッシュ、例えば、オンチップインタフェース110と関連付けられる第2レベルのキャッシュへのアクセスを共有する。高水準又は離隔は、レベルが上昇した又は実行ユニットから遠ざかるキャッシュをいうことに留意されたい。一実施形態において、より高水準のキャッシュは、最終レベルのデータキャッシュ、すなわち、プロセッサ100上のメモリ階層における最終キャッシュであり、例えば、第2又は第3レベルのデータキャッシュである。しかしながら、より高水準のキャッシュはこれに限定されるものではなく、命令キャッシュと関連付けられ、又はこれを含んでもよい。命令キャッシュの一種である追跡キャッシュは、これに代えて、最近復号化されたトレースを格納するために、デコーダ125の後に接続されてもよい。ここで、命令とは、多数のマイクロ命令(マイクロ動作)への復号を行うマクロ命令(すなわち、デコーダによって認識された一般的な命令)をいう場合もある。
図示された構成において、プロセッサ100は、オンチップインタフェースモジュール110をさらに含む。従来、以下に詳述するメモリコントローラは、プロセッサ100外部のコンピュータシステムに含まれていた。この記載において、オンチップインタフェース110は、システムメモリ175、チップセット(多くは、メモリ175に接続するためのメモリコントローラハブ及び周辺機器に接続するためのI/Oコントローラハブを含む)、メモリコントローラハブ、ノースブリッジ、又は他の集積回路等の、プロセッサ100外部の機器と通信を行う。さらにこの記載において、バス105は、あらゆる公知の相互接続、例えば、マルチドロップバス、ポイントツーポイント相互接続、シリアル相互接続、パラレルバス、コヒーレント(例えば、キャッシュコヒーレント)バス、階層型プロトコルアーキテクチャ、差動バス、及びガンニング(Gunning)送受信機ロジック(GTL)バスを含んでもよい。
メモリ175は、プロセッサ100のみで用いられてもよく、システム内の他の機器と共有されてもよい。メモリ175の種類の一般的な例は、DRAM、SRAM、不揮発性メモリ(NVM)、及び他の公知の記憶機器を含む。機器180は、グラフィックアクセラレータ、メモリコントローラハブと接続されるプロセッサ又はカード、I/Oコントローラハブと接続されるデータストレージ、無線送受信機、フラッシュデバイス、音声コントローラ、ネットワークコントローラ、又は他の公知の機器を含んでもよいことに留意されたい。
しかしながら、近年は、より多くのロジック及び機器がSOC等の単一のダイ上に統合されているため、これらの機器の各々がプロセッサ100に組み込まれてもよい。例えば一実施形態において、メモリコントローラハブは、プロセッサ100を有する同じパッケージ及び/又はダイ上に設けられる。ここで、コアの一部(コア上の部分)110は、メモリ175又はグラフィック機器180等の他の機器とインタフェースをとる1つ又は複数のコントローラを含む。かかる機器とインタフェースをとるための相互接続及びコントローラを含む構成は、多くの場合、オンコア(又はアンコア構成)と称される。オンチップインタフェース110は、例として、オンチップ通信のためのリング相互接続と、オフチップ通信のための高速シリアルポイントツーポイントリンク105とを含む。ただし、SOC環境において、さらに多くの機器、例えばネットワークインタフェース、コプロセッサ、メモリ175、グラフィックプロセッサ180、及びあらゆる他の公知のコンピュータ機器/インタフェースが、機能性が高く電力消費の少ない小型のフォームファクタを提供するために、単一のダイ又は集積回路上に統合されてもよい。
一実施形態において、プロセッサ100は、アプリケーションコード176のコンパイル、翻訳、及び/又は最適化を行うことによって本明細書に記載される装置及び方法をサポートし、又はこれらとインタフェースをとるために、コンパイラ、最適化、及び/又はトランスレータコード177を実行してもよい。コンパイラは、多くの場合、ソーステキスト/コードをターゲットテキスト/コードに翻訳するプログラム又はプログラム群を含む。通常、コンパイラによるプログラム/アプリケーションコードのコンパイルは、高水準プログラミング言語のコードを低水準の機械語又はアセンブリ言語のコードに変換するために、複数のフェーズ及びパスで行われてもよい。ただし、単一パスのコンパイラは、単純なコンパイルに利用されてもよい。コンパイラは、あらゆる公知のコンパイル技術を利用し、あらゆる公知のコンパイラの動作、例えば、字句解析、前処理、構文解析、意味解析、コード生成、コード変換、及びコード最適化等を実行してもよい。
大きいコンパイラは、多くの場合、複数のフェーズを含むが、最も多くの場合、これらのフェーズは、2つの一般的なフェーズ:(1)一般的に、構文処理、意味処理、及びいくつかの変換/最適化が行われるフロントエンド、及び(2)一般的に、解析、変換、最適化、及びコード生成が行われるバックエンドに含まれる。コンパイラの中には、コンパイラのフロントエンドとバックエンドとの間の線引きを曖昧にする中間をいうものもある。結果的に、挿入、関連付け、生成、又はコンパイラの他の動作に対する参照は、上述のあらゆるフェーズ又はパスにおいて行われてもよく、コンパイラのあらゆる他の公知のフェーズ又はパスにおいて行われてもよい。説明のための例として、コンパイラは、コンパイルの1つ又は複数のフェーズに動作、呼、機能等を挿入する、例えば、コンパイルのフロントエンドフェーズに呼/動作を挿入し、その後、変換フェーズにおいて、より低水準のコードに呼/動作を変換する可能性がある。動的コンパイル時において、コンパイラコード又は動的最適化コードは、かかる動作/呼を挿入してもよく、ランタイム時に実行のためのコードを最適化してもよい。具体的な説明のための例として、バイナリコード(コンパイル済みのコード)は、ランタイム時に動的に最適化されてもよい。ここで、プログラムコードは、動的な最適化コード、バイナリコード、又はこれらの組み合わせを含んでもよい。
バイナリトランスレータ等のトランスレータは、コードを最適化及び/又は翻訳するために、静的又は動的にコードを翻訳してもよい。そのため、コード、アプリケーションコード、プログラムコード、又は他のソフトウェア環境の実行に対する参照は:(1)プログラムコードのコンパイル、ソフトウェア構造の維持、他の動作の実行、コードの最適化、又はコードの翻訳を行うための、コンパイラプログラム、最適化コードのオプティマイザ、又はトランスレータの動的又は静的な実行;(2)動作/呼を含むメインプログラムコード、例えば、最適化/コンパイルされたアプリケーションコードの実行;(3)ソフトウェア構造の維持、他のソフトウェアに関連する動作の実行、又はコードの最適化を行うための、他のプログラムコード、例えばメインプログラムコードと関連付けられるライブラリの実行;又は(4)これらの組み合わせを意味してもよい。
上述した装置、方法、及びシステムは、上述したように、あらゆる電子機器又はシステムにおいて、実装可能であることに留意されたい。具体的な例として、以下の図面は、本明細書に記載される発明を利用するための例示的なシステムを提示する。以下のシステムが詳述されるように、多数の異なる相互接続が、開示され、記載され、上述の説明から見直される。そして、容易にわかるように、上述した進歩は、これらの相互接続、ファブリック、又はアーキテクチャのいずれに対しても適用可能である。
一つの相互接続ファブリックアーキテクチャは、異なるベンダからのコンポーネントと機器との同時使用をオープンアーキテクチャにおいて実現し、クライアント(デスクトップ及びモバイル)、サーバ(標準及びエンタープライズ)、埋め込み機器及び通信機器といった複数の市場セグメントを結ぶための、周辺コンポーネント相互接続(Peripheral Component Interconnect;PCI)Express(PCIe)を含む。PCI Expressは、多岐にわたる 将来のコンピュータ技術及び通信プラットフォームのために定義された高性能で汎用的なI/O相互接続である。PCIのいくつかの属性、例えばその使用モデル、ロードストアアーキテクチャ、及びソフトウェアインタフェースは、改定を経ても維持される一方で、以前のパラレルバスの実装に取って代わって、拡張性の高い、完全なシリアルインタフェースが実装されている。PCI Expressのより最近のバージョンは、新たなレベルの性能及び特徴を実現するために、ポイントツーポイント相互接続、スイッチベースのテクノロジ、及びパケット化されたプロトコルにおいて、進化した技術を採用している。PCI Expressによってサポートされる特徴として、電力管理、サービス品質(Quality of Service;QoS)、ホットプラグ/ホットスワップのサポート、データ整合性、及び誤り処理が挙げられる。
一実施形態において、高性能相互接続(HPI)が提供される。HPIは、次世代のキャッシュコヒーレントな、リンクベースの相互接続である。一例として、HPIは、高性能コンピュータ技術のプラットフォーム、例えば、PCIeが、典型的にはアクセラレータ又はI/O機器を接続するために用いられるワークステーション又はサーバにおいて利用されてもよい。しかしながら、HPIはこれに限定されるものではない。これに代えて、HPIは、本明細書に記載されるあらゆるシステム又はプラットフォームにおいて利用可能である。さらに、展開される個々の概念は、PCIe等の他の相互接続に適用可能である。さらに、HPIは、PCIe等の他の相互接続と同じ市場で競争するために拡張されてもよい。複数の機器をサポートするために、一つの実装において、HPIは、ISAにとらわれない(すなわち、HPIが複数の異なる機器に実装可能である)ことを含む。他のシナリオにおいて、HPIは、プロセッサ又はアクセラレータのみならず、高性能I/O機器と接続するためにも利用されてよい。例えば、高性能PCIe機器は、適切な翻訳ブリッジを介してHPIに(すなわち、HPIからPCIeへ)接続されてもよい。さらに、HPIリンクは、プロセッサ等の多くのHPIベースの機器により、様々な方式(例えば、スター型、リング型、メッシュ型等)で利用されてもよい。
HPIアーキテクチャは、階層型プロトコルアーキテクチャの定義を含み、階層型プロトコルアーキテクチャを含む点においてPCIeと同様である。一実施形態において、HPIは、プロトコルレイヤ(コヒーレント、ノンコヒーレント、及び、選択的には、他のメモリベースのプロトコル)、ルーティングレイヤ、リンクレイヤ、及び物理レイヤを定義する。さらに、多くの他の相互接続アーキテクチャのように、HPIは、電力マネージャ、テスト容易化設計(DFT)及びデバッグ、誤り処理、レジスタ、セキュリティ等に関する強化を含む。
シリアル通信リンクにおいて、データは、ポイントツーポイント、例えば単一のストリームで、例えば1ビットずつ、例えば前方向又は逆方向へのいずれか一方向へ、又は、例えば前方向及び逆方向の双方向へ、連続的に送信又は伝送される。
シリアルデータリンクでは使用するケーブル(電線又はファイバ)数が少ないことにより、パラレルデータリンクと比較して、I/Oのピン数、物理的なフットプリント、及びコストが削減される。これを相殺するために、シリアルリンクは、一般的に、パラレルリンクよりもデータ伝送速度を高めている。このように、機器、コア、プロセッサ、チップ、コンピュータ、又はシステムにおける高速シリアルデータリンク又はデータバスは、柔軟性(拡張性)とレイテンシ(オーバヘッド)との間でバランスをとる必要がある。
特定のアプリケーションにおける様々なメトリクスの優先順位に応じて、シリアルデータリンク又はバスアーキテクチャの様々な実施形態は、クロックデータリカバリ(CDR)を取り扱うために規定されてもよい。シリアルデータリンク又はバスアーキテクチャの他の実施形態は、ユーザからの入力に応じたCDRを取り扱ってもよい。
高速及び低速データリンク又はバス200アーキテクチャを、図2Aに示す。この例は、複数、例えば4つのデータレーン201、202、203、204を有する単方向データリンク又はバス200を含む。送信されるべきデータがない場合、バス200は低速化し、スリープ210に入ってもよい。新たなデータの送信又は伝送230が行われる場合、バス200はスリープ状態を終了し、同期220を行う。このように、余計な時間及び電力が消費されるために、性能が低下する。さらに、同期信号が電磁妨害(EMI)の原因となりえるため、EMIを軽減するためにさらなる遮蔽が必要となる。
充填データリンク又はバス200アーキテクチャを、図2Bに示す。この例は、複数、例えば4つのデータレーン201、202、203、204を有する単方向データリンク又はバス200を含む。送信されるべきデータがない場合であっても、バスは、必要に応じて充填215を行う。論理的なアイドル状態にあるため、バスは無意味なデータシンボルを伝送する。しかしながら、バス200は、新たなデータの伝送230を行うべき場合はいつでも、非常に迅速に利用可能な状態となるため、時間及び電力の無駄が少ない。しかしながら、中間又は中断時間に充填215を行うことによってアクティブ状態を継続することは、電力を浪費し、非生産的な充填のための信号がEMIの原因となりうる。
非アクティブな期間における性能及び電力のベクトルは、図3Aに示すように、ハイブリッドレーン低速化(HLS)データリンク又はバス300アーキテクチャのための装置、方法、システムの実施形態を用いることによって、バランスをとることができる。この例は、複数、例えば4つのデータレーン301、302、303、304を有するデータリンク又はバス300を含む。データバス300は、単方向であってもよい。一つのデータレーンがマスタレーン301として機能するように、割り当てられ又は選択されてもよい。送信されるべきデータがない場合、所定の方向で、マスタレーンを除くすべてのレーンがシャットダウン又は低速化310される。マスタレーン301は、データ受信側をアクティブ状態に維持し、データソースとの同期を維持するように、充填315を行う。このように、新たなデータの伝送330を行うべき場合はいつでも、受信側は、依然としてマスタレーン301に固定されていることから、アクティブ状態になり、同期を行う必要がない。さらに、非マスタレーン302、303、304を、中間又は中断時間の間、完全にオフにする又は低速化310を行うことにより、電力消費が削減される。不要にシグナリングを行うデータレーンの数が減り、かつ、同期信号が不要であることから、EMIも最小化される。
EMI及び無線周波妨害(RFI)はいずれも、オフになっているレーンの数、又はレーンが非アクティブな時間のパーセンテージに比例して減少する。デューティサイクルは、合計「オン」/「オフ」時間に対する「オン」時間の比率である。例えば、4レーンのバス300が、ハイブリッドレーン低速化データリンク又はバス300アーキテクチャ(デューティサイクルの変更なし)を用いるとすれば、干渉は約6デシベル(dB)減少する。
ハイブリッドレーン低速化データリンク又はバス300アーキテクチャのために用いることができる基本的なクロックアーキテクチャの実施形態を、図3Bに示す。送信機340は、全ての非マスタレーン302、303、304のためのクロックリカバリをマスタレーン301に固定するために、第1のデータ伝送速度の位相同期回路(PLL)342を含む。遅延(D)フリップフロップは、非マスタレーンの各々に対して含まれてもよい。このように、信号は、1クロックパルスの期間(時間)だけ遅延した回路の出力において、出現することができる。
全てのレーンのクロックは、マスタレーン301がアクティブ状態である限り、維持される。受信機350は、クロックデータリカバリ(CDR)354のための、第2のデータ伝送速度のPLL352を含む。
クロック信号は、周期的な波形を有する信号である。信号は、低い状態及び高い状態の間で振動する。クロック生成器は、クロック信号、例えば、規定された周波数を有する50%デューティサイクルの方形波を生成してもよい。周波数は、時間に対する位相の導関数である。回路の異なる部分を同期するためのクロック信号を用いる回路は、クロックサイクルの立ち上がりエッジ及び/又は立ち下がりエッジにおいてアクティブ状態となることができる。
クロック基準は、低ノイズであること等の、高い品質を有する必要がある。クロストーク及び干渉も、ボードレベルで最小化される必要がある。
クロック信号は、正弦波を用いることもできる。正弦波クロックは、差動信号を用いてもよい。差動信号は、差動ペア等の2つのペア電線で送信される2つの補完信号を有する情報を伝送してもよい。EMIに対する抵抗は、外部干渉が両方の電線に影響する傾向があるため、改善される。所与の供給電圧に対して、差動シグナリングは、シングルエンド方式のシグナリングシステムの2倍のノイズ排除性を提供する。差動信号は、EMIに対する抵抗を改善するために、平衡線路(等しいインピーダンスを有する)で伝送されてもよい。
PLLは、入力された参照信号の位相に関連する位相を有する出力信号を生成する制御システムである。PLLは、可変周波数発振器及び位相検出器を有する電子回路を含む。回路は、入力信号の位相を出力発振器から抽出された信号の位相と比較し、2つの位相の整合を維持するように発振器の周波数を調整する。位相検出器からの信号は、フィードバックループにおいて発振器を制御するために用いられる。
PLLは、例えば集積回路を用いることによって、ハードウェアに実装されてもよい。PLLは、また、ソフトウェアに実装されてもよい。ソフトウェアでの実装は、フィードバックループのカスタマイズが容易であること等の利点を有する。
実施形態において、受信機は、1つ又は複数の非マスタレーン302、303、304の静的位相の整合を調整するために、1つ又は複数の遅延固定ループ(DLL)を含む。DLLは、内部電圧によって制御される水晶発振器を有する。本質的には、DLLは、デジタル回路のクロックパスに、ネガティブ遅延ゲートを配置する。DLLは、CDR等において、クロック信号の位相を変化させるために用いられてもよい。
他の実施形態において、受信機は、1つ又は複数の非マスタレーン302、303、304の静的位相の整合を調整するために、1つ又は複数の遅延ラインを含む。
さらに他の実施形態において、受信機は、1つ又は複数の非マスタレーン302、303、304の静的位相の整合を調整するために、1つ又は複数の位相補完器(PI)を含む。位相補完器により、 受信機は、そのサンプリングクロックの位相を、規定されたインクリメントで調整することができる。位相補完器は、入力クロックに対して粗く又は微小に位相がシフトされた出力クロックを生成してもよい。
実施形態において、位相補完器は、電圧によって制御されてもよい。電圧によって制御される位相補完器は、面積がより小さく、電力消費がより少ない。
他の実施形態において、位相補完器は、電流によって制御されてもよい。電流によって制御される位相補完器は、アナログ入力ではなくデジタル入力をとることから、より線形であり、かつ、より制御しやすい。
多くの遅延ゲートは、前から後ろへと接続されうる。遅延チェーンの入力は、ネガティブに遅延すべきクロックと接続されてもよい。マルチプレクサは、別個の効果を組み合わせるために、遅延チェーンの各ステージと接続されてもよい。要素の遅延は、実際の負荷が変化すると、変化しうる。制御回路は、ネガティブ遅延の効果をもたらすために、マルチプレクサのセレクタを更新してもよい。出力は、結果としてネガティブに遅延したクロック信号であってもよい。位相のシフトは、遅延チェーンゲートユニットに対して、及び/又はクロック周期に対して、規定されてもよい。
いくつかの実施形態において、ハイブリッドレーン低速化データリンク又はバス300アーキテクチャは、様々なプラットフォームに用いられてもよい。様々な実施形態において、ロジック、例えば I/Oロジック、インタフェースロジック、又は物理レイヤロジックは、レーン又はチャネルと接続し、又はインタフェースをとってもよい。
一つのかかるプラットフォームは、PCIeを含む。
他のかかるプラットフォームは、ビデオエレクトロニクススタンダーズアソシエーション(Video Electronics Standards Association;VESA)ディスプレイポート(DisplayPort)のデジタルディスプレイインタフェースを含む。
さらに他のかかるプラットフォームは、モバイルインダストリープロセッサインタフェース(Mobile Industry Processor Interface;MIPI)のD−PHY又はその後継、もしくはM−PHYを含む。D−PHYプラットフォームは、カメラ等のモバイル機器内部のコンポーネント間における通信相互接続に対する、柔軟、低コスト、低電力、高速のシリアルインタフェースのソリューションを提供する。M−PHY プラットフォームは、モバイルアプリケーションに対して、高帯域、低ピン数、非常に良好な電力効率のシリアルインタフェースを提供する。
物理レイヤ(PHY)は、コンピュータネットワーキングの開放型システム間相互接続(Open Systems Interconnection;OSI)モデルにおいて、最も下のレイヤ(プロトコルの合計7つのレイヤの中におけるレイヤ1)である。レイヤ1は、ネットワークの基本的なネットワーキングハードウェア伝送テクノロジからなる。PHYは、生ビットの伝送手段を定義するための(データリンクを確立及び維持するための)、レイヤ1の実装である。
ハイブリッドレーン低速化データリンク又はバスアーキテクチャを監視するために、オシロスコープでデータリンク又はバスを探索してもよい。ロジックアナライザも、ハイブリッドレーン低速化データリンク又はバスアーキテクチャを監視するために、データリンク又はバスの探索に用いられてもよい。
ハイブリッドレーン低速化方法の実施形態を、ブロック600に始まりブロック640で終わる図6に示す。マスタレーンは、ブロック620において、割り当てられ又は選択される。マスタレーンは、非アクティブ状態のデータがある場合、ブロック622に示すように、充填を行う。マスタレーンは、非アクティブ状態のデータがない場合、データを伝送又は送信する。マスタレーンは、ブロック624に示すように、クロックを維持する。非マスタレーンは、ブロック630において、割り当てられ又は選択される。非マスタレーンは、ブロック631に示すように、マスタレーンに固定される。非マスタレーンは、非アクティブ状態のデータがある場合には、ブロック634に示すように、低速化又はアイドル状態に入る。非マスタレーンは、非アクティブ状態のデータがない場合には、ブロック633に示すように、データを伝送又は送信する。非マスタレーンは、ブロック636に示すように、マスタレーンからクロックを修復する。
双対データリンク又はバス400のアーキテクチャの実施形態を、図4Aに示す。かかるデータリンク又はバス400は、伝送信号ペアでデータを伝送し、受信信号ペアで完了応答を受信する。データリンク又はバスのいずれか一端にある機器(又はエージェント)は、要求側又は完了側であってもよい。トランザクションタイプは、データリンク又はバス上において、異なる機会の異なる時間に、いずれかの方向に生成されてもよい。
双対データリンク又はバス400は、例えば2.5ギガビット毎秒(Gbps)のデータ伝送速度を有し、データロード(又は帯域)において非対称型であってもよい。図4Bに示すように、正方向チャネル、例えば第1のチャネル421は、例えば1.000マイクロ秒(usec)の期間にわたる大きいデータバースト(ペイロード)430を伝送してもよい。大きいデータバースト(ペイロード)430は、必要に応じて、充填キャラクタ415の小さいバーストによって分離される。
逆方向チャネル、例えば第2のチャネル422は、例えば0.050usecの期間にわたる小さいデータバースト、例えば、大半の場合は確認(ACK)435のパケットを伝送してもよい。
双対データリンク又はバス400は、第1の端部に第1の機器を有し、第2の端部に第2の機器を有する。第1の機器及び第2の機器は、双対データリンク又はバス400の反対側の端部に位置する。
実施形態において、データリンク又はバス400の第1の端部における第1の機器に対して、第1のチャネル421は、データ430を伝送するための正方向チャネルであってもよく、第2のチャネル422は、受信ACK435を受信するための逆方向チャネルであってもよい。
これに応じて、データリンク又はバス400の第2の端部における第2の機器に対して、第2のチャネル422は、ACK435を伝送するための正方向チャネルであってもよく、第1のチャネル421は、データ430を受信するための逆方向チャネルであってもよい。
非同期システムは、タイミング情報の交換又は共有を行わない。同期システムは、共通の又は共有のクロックから抽出可能なタイミング情報を用いることから、良好にマッチする。プレシオクロナスシステムは、正確にマッチしていない可能性のある異なる又は別個のクロックからの信号を用いる。実施形態において、ミスマッチは小さい可能性がある。他の実施形態において、ミスマッチは、長い時間にわたって一定のままである可能性がある。さらに他の実施形態において、ミスマッチは、経時的にドリフトする可能性がある。
実施形態において、同期処理は、プレシオクロナス入力/出力(I/O)又はインタフェースデータリンク又はバス400を、スリープ状態から非スリープ状態にするために用いられてもよい。受信機は、クロック419を修復するために、トレーニングビットストリームに固定される。しかしながら、バス400がACK等の小さいデータバースト435のみを伝送する場合には、トレーニング時間は、データ伝送時間よりも長い可能性がある。ACK等の、連続的なデータバースト間の隙間時間435がトレーニング時間よりも短い場合には、バス400は、ACK等の、連続的なデータバースト間の隙間時間435に、スリープ状態になることができない。
例えば6.000usecにわたる、逆方向チャネル422をスリープから非スリープにするためのトレーニング時間、すなわち同期時間が、例えば1.000usecにわたるACK等のデータの隙間時間よりも大きい場合には、逆方向チャネル422は、ACK435パケット間におけるACK等のデータの隙間時間で低速化(又はアイドル又はスリープ)することができない。かかる状況において、逆方向チャネル422は、有用なデータが送信されていない場合であってもアクティブ状態を維持するために、充填キャラクタ415の大きいバーストを伝送する。しかしながら、連続送信は、電力消費を増大させる。さらに、充填キャラクタが十分にランダム化されていない場合には、EMIが問題となる可能性がある。
データリンク又はバスのトレーニングは、データリンク又はバスの構成パラメータを確立するために2つの機器(エージェント)によって実行されうるプロトコルを含む。オーダされたデータセットは、送信されてもよく、繰り返されてもよい。各エージェントは、他サイドからのデータセットを認識した後、物理レイヤリンクのネゴシエーションに進む。ネゴシエーションの成功は、他のデータセットを有する両方のエージェントによって確認される。さらなる情報が、交換される。機器のステータスは、定期的に更新される。
いくつかの実施形態において、プレシオクロナスデータは、クロックリカバリを行うことなく受信されてもよい。非固定(NL)のデータリンク又はバス500のアーキテクチャを有する装置、方法、システムの実施形態が、図5A、図5B、および図5Cに示される。非固定バス500のアーキテクチャは、データラッチ517を入力データストリームに同期するための高速クロックを用いることなく、データの送受信に用いられる。
複数の冗長ビットは、データリンクのロバスト性を、大きい(百万分の一又はppmにおいて計測される)クロックオフセットにまで高めるために、用いられてもよい。様々な実施形態において、冗長性は、3ビット、4ビット、5ビット、又はさらに大きいビットを含む。
実施形態において、3倍の冗長ビットが用いられてもよい。そこで、逆方向チャネルACK535は、冗長性により、3倍の期間502を有する。受信機は、非固定の入力ビットストリームをサンプリングするために、同期されずに受信した高速クロック515を用いる。受信機は、正しいロジック状態を判断するために、3:1のボーティング518(共時性なし)を用いてもよい。このように、クロック505及びデータ502の整合が、クロックエッジがデータエッジと一致する「最悪のケース」であっても、元のデータを正しく修復することができる。SYNC(長い場合がある)は、受信機がACK535に固定する必要がないため、用いられない。結果的に、逆方向チャネル522は、例えば1.000usecの長いインターバルにわたって、低速化510を行うことができる。例えば、逆方向チャネル522は、時間の80%超にわたって低速化510を行うことができ、このように電力消費及びEMIがいずれも削減される。
例えばポイントツーポイントの非固定データの送信(例えば第2の機器による)及び受信(例えば第1の機器による)方法の実施形態を、ブロック700に始まりブロック760で終わる図7に示す。確認(ACK)等のデータは、ブロック710に示すように、(例えば第2の機器から)複数、例えば3倍の冗長ビットとともに(例えば第1の機器に)伝送又は送信されてもよい。データは、3倍の冗長ビットにより、3倍の期間を有してもよい。
データは、ブロック715に示すように、(例えば第1の機器により、第2の又は逆方向チャネルにおいて)複数、例えば3倍の冗長ビットとともに(例えば第2の機器から)受信されてもよい。データ値は、ブロック720に示すように、(例えば第1の機器によって)サンプリングされてもよい。3:1等のボーティングは、ブロック730に示すように、(例えば第1の機器によって)実行されてもよい。正しいロジック状態は、ブロック740に示すように、(例えば第1の機器によって)判断されてもよい。第1の機器(の第2の又は逆方向チャネル)は、受信すべきデータがない場合には、ブロック750に示すように、低速化又はアイドルとなってもよい。
EMI及びRFIはいずれも、レーンが非アクティブ状態である時間のパーセンテージに比例して減少する。デューティサイクルは、合計(オン及びオフ)時間に対するオン時間の比率である。例えば、1レーンバスが、20%デューティサイクル(すなわち、時間の80%で低速化され、又はオフになっている)の非固定バス500のアーキテクチャの実施形態を用いる場合、干渉は、(100%デューティサイクルに対して)約7dB減少する。
いくつかの実施形態において、非固定データリンク又はバス500のアーキテクチャは、非アクティブ状態となりうる各方向において、1つ又は複数のレーン又はチャネルを有するデータリンク又はバスを含むプラットフォームに対して用いられてもよい。様々な実施形態において、ロジック、例えばI/Oロジック、インタフェースロジック、又は物理レイヤロジックは、レーン又はチャネルと接続され、又はインタフェースをとってもよい。
一つのかかるプラットフォームは、PCIeを含む。
他のかかるプラットフォームは、汎用シリアルバス(USB)を含む。USBは、通信及び電力供給の両方のために、パーソナルコンピュータ及びコンピュータ周辺機器の間の接続を標準化するために設計された。
さらに他のかかるプラットフォームは、モバイルインダストリープロセッサインタフェース(Mobile Industry Processor Interface;MIPI)のM−PHYを含む。M−PHYプラットフォームは、モバイルアプリケーションに対して、高帯域、低ピン数、非常に良好な電力効率のシリアルインタフェースを提供する。
物理レイヤ(PHY)は、コンピュータネットワーキングの開放型システム間相互接続(Open Systems Interconnection;OSI)モデルにおいて、最も下のレイヤ(プロトコルの合計7つのレイヤの中におけるレイヤ1)である。レイヤ1は、ネットワークの基本的なネットワーキングハードウェア伝送テクノロジからなる。PHYは、生ビットの伝送手段を定義するための(データリンクを確立及び維持するための)、レイヤ1の実装である。
非固定データリンク又はバスアーキテクチャを監視するために、オシロスコープでデータリンク又はバスを探索してもよい。ロジックアナライザも、非固定データリンク又はバスアーキテクチャを監視するために、データリンク又はバスの探索に用いられてもよい。
多くの実施形態が上述されたが、当業者は、これらの実施形態から、数多くの変更例及び変形例を認識するであろう。添付された特許請求の範囲は、かかる全ての変更例及び変形例を網羅するものである。
設計は、創造からシミュレーション、製造へと、様々なステージを通過する。設計を表現するデータは、数々の態様で設計を表現してもよい。第1に、シミュレーションにおいて有用であるように、ハードウェア記述言語又は他の機能的な記述言語を用いて、ハードウェアを表現してもよい。さらに、ロジック及び/又はトランジスタゲートを有する回路レベルのモデルは、設計工程におけるいくつかのステージで生成されてもよい。さらに、大半の設計は、いくつかのステージにおいて、ハードウェアモデルにおける様々な機器の物理的な配置を表現するデータのレベルに到達する。従来の半導体製造技術を用いるケースにおいて、ハードウェアモデルを表現するデータは、集積回路の生成に用いられるマスクに対して、異なるマスクレイヤ上の様々な特徴の有無を規定するデータであってもよい。設計のあらゆる表現において、データは、あらゆる形式の機械読み取り式媒体に格納されてもよい。メモリもしくはディスク等の磁気的又は光学的記憶装置は、かかる情報を伝送するために変調され、又は他の方法で生成された光波又は電波を介して伝送された情報を格納する機械読み取り式媒体であってもよい。コード又は設計を示す又は搬送する電気的な搬送波が伝送される場合、電気信号のコピー、バッファリング、又は再伝送が実行される範囲で、新たなコピーが生成される。このように、通信プロバイダ又はネットワークプロバイダは、例えば、本発明の実施形態を具現化する技術が搬送波に暗号化された情報等の物を、少なくとも一時的に、有体の機械読み取り式媒体に格納してもよい。
本明細書で用いられるモジュールは、ハードウェア、ソフトウェア及び/又はファームウェアのあらゆる組み合わせをいう。例として、モジュールは、マイクロコントローラによって実行されるコードを格納するために、非一時的な媒体と関連付けられるマイクロコントローラ等のハードウェアを含む。そのため、モジュールへの参照は、一実施形態において、非一時的な媒体に維持されるべきコードを認識及び/又は実行するように特に構成されるハードウェアをいう。さらに、他の実施形態において、モジュールの使用は、所定の動作を実行するために、マイクロコントローラによって実行されるように特に構成されるコードを含む、非一時的な媒体をいう。そして、推測されるように、さらに他の実施形態において、(この例における)タームモジュールは、マイクロコントローラ及び非一時的な媒体の組み合わせを意味してもよい。多くの場合、別個のものとして説明されるモジュールの境界は、一般的に変化し、かつ、重複する可能性がある。例えば、第1の及び第2のモジュールは、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせを共有してもよいが、個別のハードウェア、ソフトウェア、又はファームウェアを保持する可能性もある。一実施形態において、タームロジックの使用は、ハードウェア、例えばトランジスタ、レジスタ、又はプログラム可能なロジック機器等の他のハードウェアを含む。
「に対して」又は「するように構成され」という用語の使用は、一実施形態において、設計された又は決定されたタスクを実行する装置、ハードウェア、ロジック、又は要素の準備、組み立て、製造、販売の申し出、輸入及び/又は設計をいう。この例において、動作していない装置又はその要素も、指定されたタスクを実行するために設計され、接続され、及び/又は相互接続される場合には、指定されたタスクを実行「するように構成され」る。純粋に説明のための例として、ロジックゲートは、動作時は、0又は1を提供してもよい。しかし、クロックを実現する信号を提供「するように構成され」るロジックゲートは、1又は0を提供しうるあらゆる潜在的なロジックゲートを含まない。その代わり、ロジックゲートは、動作時に1又は0の出力がクロックを実現するいくつかの態様で接続されるものである。用語「するように構成され」の使用は、動作を必要としない代わりに、装置、ハードウェア、及び/又は要素の潜在的な状態を焦点としており、ここで、潜在的な状態において、装置、ハードウェア、及び/又は要素は、装置、ハードウェア、及び/又は要素が動作する場合には特定のタスクを実行するように設計されていることに再度留意されたい。
さらに、「が可能な」及び又は「操作可能な」という用語の使用は、一実施形態において、装置、ロジック、ハードウェア、及び/又は要素の規定された態様での使用を可能にする方法で設計されたいくつかの装置、ロジック、ハードウェア、及び/又は要素をいう。上述したように、に対して、が可能な、又は操作可能なという用語の使用は、一実施形態において、装置、ロジック、ハードウェア、及び/又は要素の潜在的な状態をいい、ここで、装置、ロジック、ハードウェア、及び/又は要素は動作していないが、装置の規定された態様での使用を可能にする方法で設計されていることに留意されたい。
本明細書で用いられる値は、数、状態、ロジック状態、又はバイナリロジック状態の、あらゆる公知の表現を含む。多くの場合、ロジックレベル、ロジック値、又は論理値の使用は、バイナリロジック状態を単純に表現する1及び0とも称される。例えば、1は、高ロジックレベルをいい、0は、低ロジックレベルをいう。一実施形態において、記憶装置セル、例えばトランジスタ又はフラッシュセルは、単一の論理値又は複数の論理値を維持することができる。しかしながら、コンピュータシステムにおいては、値の他の表現が用いられてきた。例えば、10進法の数10は、バイナリ値1010及び16進数の文字Aとしても表現可能である。そのため、値は、コンピュータシステムにおいて維持可能な情報のあらゆる表現を含む。
さらに、状態は、値又は値の一部で表現可能である。例として、第1の値、例えば、論理値の1は、デフォルト又は初期状態を表現してもよく、第2の値、例えば論理値の0は、ノンデフォルト状態を表現してもよい。さらに、用語リセット及びセットは、一実施形態において、それぞれ、デフォルト及び更新された値又は状態をいう。例えば、デフォルト値は、高論理値、すなわちリセットを含む可能性があるが、更新された値は、低論理値、すなわちセットを含む可能性がある。値のあらゆる組み合わせは、任意の数の状態を表現するために用いられてもよいことに留意されたい。
上述した方法、ハードウェア、ソフトウェア、ファームウェア、又はコードの実施形態は、機械によりアクセス可能な、機械により読み取り可能な、コンピュータによりアクセス可能な、又はコンピュータにより読み取り可能な、処理要素によって実行可能である媒体に格納された命令又はコードを介して実装されてもよい。非一時的な機械によりアクセス可能な/読み取り可能な媒体は、コンピュータ又は電子システム等の機械により読み取り可能な形式で情報を提供する(すなわち、格納及び/又は伝送する)あらゆるメカニズムを含む。例えば、非一時的な機械によりアクセス可能な媒体は、静的RAM(SRAM)又は動的RAM(DRAM)等のランダムアクセスメモリ(RAM);ROM;磁気又は光学記憶媒体;フラッシュメモリデバイス;電気記憶機器;光学記憶機器;音声記憶機器;一過性の(伝搬)信号(例えば、搬送波、赤外線信号、デジタル信号)から受信した情報を維持する他の形式の記憶機器;等、そこから情報を受信することができる非一時的な媒体から区別可能な媒体を含む。
プログラムロジックが本発明の実施形態を実行するために用いられる命令は、システムのメモリ、例えばDRAM、キャッシュ、フラッシュメモリ、又は他の記憶装置に格納されてもよい。さらに、命令は、ネットワークを介して、又は他のコンピュータにより読み取り可能な媒体によって分配可能である。このように、機械により読み取り可能な媒体は、機械(例えば、コンピュータ)により読み取り可能な形式で情報を格納又は伝送するあらゆるメカニズムを含むが、これに限定されるものではなく、フロッピー(登録商標)ディスク、光学ディスク、コンパクトディスク、読み出し専用メモリ(CD−ROMs)、及び光磁気ディスク、読み出し専用メモリ(ROMs)、ランダムアクセスメモリ(RAM)、消去可能かつプログラム可能な読み出し専用メモリ(EPROM)、電気的に消去可能かつプログラム可能な読み出し専用メモリ(EEPROM)、磁気又は光学カード、フラッシュメモリ、又は電気、光、音声又は他の形式の伝搬信号(例えば、搬送波、赤外線信号、デジタル信号等)を介したインターネットによる情報の伝送に用いられる有体の、機械により読み取り可能な記憶装置であってもよい。従って、コンピュータにより読み取り可能な媒体は、電子命令又は情報の機械(例えば、コンピュータ)により読み取り可能な形式での格納又は伝送に適したあらゆるタイプの有体の機械により読み取り可能な媒体を含む。
本明細書を通じて、「一実施形態」又は「実施形態」への言及は、実施形態と関連して記載された特定の特徴、構造、又は性質が、少なくとも本発明の一実施形態に含まれることを意味する。このように、本明細書を通じて様々な場所に登場する「一実施形態において」又は「実施形態において」という用語は、必ずしも全て同じ実施形態に言及するものではない。さらに、特定の特徴、構造、又は特性は、1つ又は複数の実施形態において、あらゆる適切な態様で組み合わせ可能である。
前述した明細書において、具体的かつ例示的な実施形態を参照して、詳細な説明がなされた。しかしながら、この説明に対する様々な変形及び変更が、添付された特許請求の範囲において上述した本発明の広範な精神及び範囲を逸脱することなく加えられる可能性があることは明白である。従って、明細書及び図は、限定的な意味ではなく説明的な意味でとらえられるべきである。さらに、前述した実施形態の用途及び他の例示的な文言は、必ずしも同じ実施形態又は同じ例に言及するものではなく、異なる実施形態に言及している可能性があり、潜在的に 同じ実施形態に言及している可能性もある。
以下の実施例は、さらなる実施形態に関する。実施例の詳細は、1つ又は複数の実施形態のいかなる部分においても使用可能である。例えば、本明細書に記載される装置又はシステムの全ての選択的な特徴は、本明細書に記載される方法又は処理に対しても実装可能である。
実施例1は、データ受信側をアクティブ状態に維持し、かつ、データソースと同期するマスタレーンと、マスタレーンに固定され、アイドル時間において完全にオフにされる第1の非マスタレーンと、を含む複数のレーンを備えるリンクと;リンクとのインタフェースをとるインタフェースロジックと、を備える装置である。
実施例2は、マスタレーンに固定され、アイドル時間において完全にオフにされる他の非マスタレーンをさらに有する実施例1に記載の装置である。
実施例3は、マスタレーンは、単方向である、実施例1に記載の装置である。
実施例4は、第1の非マスタレーンは、単方向である、実施例1に記載の装置である。
実施例5は、第1の非マスタレーンは、アクティブ状態となり同期する必要がない、実施例1に記載の装置である。
実施例6は、各非マスタレーンに対するDフリップフロップをさらに有する実施例2に記載の装置である。
実施例7は、1つ又は複数の非マスタレーンのために静的位相の整合を調整する1つ又は複数の遅延固定ループをさらに有する実施例2に記載の装置である。
実施例8は、1つ又は複数の非マスタレーンのために静的位相の整合を調整する1つ又は複数の遅延ラインをさらに有する実施例2に記載の装置である。
実施例9は、1つ又は複数の非マスタレーンのために静的位相の整合を調整する1つ又は複数の位相補完器をさらに有する実施例2に記載の装置である。
実施例10は、データ受信側をアクティブ状態に維持し、かつ、データソースと同期をとるマスタレーンと、マスタレーンに固定され、アイドル時間において完全にオフにされる第1の非マスタレーンと、を含む複数のレーンを備えるリンクと;リンクとインタフェースをとる物理レイヤロジックと、を備える装置である。
実施例11は、マスタレーンに固定され、アイドル時間において完全にオフにされる他の非マスタレーンをさらに有する実施例10に記載の装置である。
実施例12は、マスタレーンは、単方向である、実施例10に記載の装置である。
実施例13は、第1の非マスタレーンは、単方向である、実施例10に記載の装置である。
実施例14は、第1の非マスタレーンは、アクティブ状態となり同期する必要がない、実施例10に記載の装置である。
実施例15は、各非マスタレーンに対するDフリップフロップをさらに有する実施例11に記載の装置である。
実施例16は、1つ又は複数の非マスタレーンのために静的位相の整合を調整する1つ又は複数の遅延固定ループをさらに有する実施例11に記載の装置である。
実施例17は、1つ又は複数の非マスタレーンのために静的位相の整合を調整する1つ又は複数の遅延ラインをさらに有する実施例11に記載の装置である。
実施例18は、1つ又は複数の非マスタレーンのために静的位相の整合を調整する1つ又は複数の位相補完器をさらに有する実施例11に記載の装置である。
実施例19は、データ受信側をアクティブ状態に維持し、かつ、データソースと同期をとるマスタレーンと、マスタレーンに固定され、アイドル時間において完全にオフにされる第1の非マスタレーンと、を含む複数のレーンを備えるリンクを備える装置と;リンクとインタフェースをとる物理レイヤロジックと、を備えるコンピュータシステムである。
実施例20は、アイドル時間において完全にオフにされ、アクティブ状態となり同期する必要がない、他の非マスタレーンをさらに有する実施例19に記載のコンピュータシステムである。
実施例21は、マスタレーンは、単方向である、実施例19に記載のコンピュータシステムである。
実施例22は、各非マスタレーンに対するDフリップフロップをさらに有する実施例20に記載のコンピュータシステムである。
実施例23は、1つ又は複数の非マスタレーンのために静的位相の整合を調整する1つ又は複数の遅延固定ループをさらに有する実施例20に記載のコンピュータシステムである。
実施例24は、1つ又は複数の非マスタレーンのために静的位相の整合を調整する1つ又は複数の遅延ラインをさらに有する実施例20に記載のコンピュータシステムである。
実施例25は、1つ又は複数の非マスタレーンのために静的位相の整合を調整する1つ又は複数の位相補完器をさらに有する実施例20に記載のコンピュータシステムである。
実施例26は、マスタレーン及び1つ又は複数の非マスタレーンを含む、リンクの複数のレーンとインタフェースをとることと、非アクティブ状態の期間において、非マスタレーンを低速化することと、非アクティブ状態の期間において、マスタレーンのアクティブなデータ同期を維持することと、非マスタレーンで伝送されるべきデータを示すためのアクティブ状態インジケータに応じて、マスタレーンのデータ同期に基づいて非マスタレーンのデータ同期を実行することなく、非マスタレーンをアクティブ状態にすることと、を備える方法である。
実施例27は、各非マスタレーンの遅延をDフリップフロップで調整することをさらに備える実施例26に記載の方法である。
実施例28は、1つ又は複数の非マスタレーンのために、1つ又は複数の遅延固定ループで静的位相の整合を調整することをさらに備える実施例26に記載の方法である。
実施例29は、1つ又は複数の非マスタレーンのために、1つ又は複数の遅延ラインで静的位相の整合を調整することをさらに備える実施例26に記載の方法である。
実施例30は、1つ又は複数の非マスタレーンのために、1つ又は複数の位相補完器で静的位相の整合を調整することをさらに備える実施例26に記載の方法である。