(57)【特許請求の範囲】
【請求項１】
１以上の仮想チャネルに関連付けられた情報を各々が記憶するための複数のハードウェアバッファと、
リンクを介して結合された第１のデバイス及び第２のデバイスによって共通でサポートされる仮想チャネルの最大数に対応する識別子を決定し、前記識別子に基づいて制御値を得るための構成ロジックと、
前記制御値に基づいて前記複数のハードウェアバッファのうちの対応するものに動作電圧を供給するためのゲートロジックであって、前記仮想チャネルの最大数が、前記複数のハードウェアバッファ未満であるとき、前記複数のハードウェアバッファのうちの少なくとも１つに前記動作電圧を供給することを防ぐ、ゲートロジックと、
を備える、装置。
【請求項２】
前記構成ロジックは、前記第１のデバイスに関連付けられた第１の仮想チャネルカウント及び前記第２のデバイスに関連付けられた第２の仮想チャネルカウントに基づいて前記仮想チャネルの最大数を決定する、請求項１に記載の装置。
【請求項３】
前記構成ロジックは、前記第１のデバイスの構成ストレージの仮想チャネルカウントフィールドから前記第１の仮想チャネルカウントを得て、前記第２のデバイスの構成ストレージの仮想チャネルカウントフィールドから前記第２の仮想チャネルカウントを得る、請求項２に記載の装置。
【請求項４】
前記ゲートロジックは、複数の論理回路を含み、前記複数の論理回路は各々が、１ビットの制御値及び前記動作電圧を受信し、前記ビットの値に基づいて前記複数のハードウェアバッファのうちの１つに前記動作電圧を供給する、請求項１に記載の装置。
【請求項５】
識別子を制御値に各々が関連付ける複数のエントリを有するマッピングテーブルを含む不揮発性ストレージを更に備える、請求項１に記載の装置。
【請求項６】
前記構成ロジックは、前記識別子を用いてアクセスされる前記マッピングテーブルのエントリから前記制御値を得る、請求項５に記載の装置。
【請求項７】
前記制御値は、前記複数のハードウェアバッファのうちの１つに各々が関連付けられた複数のビットを含み、第１の状態の前記ビットの各々は、前記関連付けられたハードウェアバッファが有効にされることを示し、第２の状態のビットの各々は、前記関連付けられたハードウェアバッファが無効にされることを示す、請求項６に記載の装置。
【請求項８】
前記第１のデバイスは、前記第１のデバイスによってサポートされる前記仮想チャネルの最大数のカウントを記憶するための構成ストレージを備え、前記構成ストレージは、前記マッピングテーブルの１以上のエントリのコピーを更に記憶する、請求項５に記載の装置。
【請求項９】
前記不揮発性ストレージは、前記第１のデバイスと別個のコンポーネントであり、第２のリンクを介して前記第１のデバイスに結合される、請求項８に記載の装置。
【請求項１０】
リンクを介して結合された第１のエンドポイント及び第２のエンドポイントによってサポート可能な仮想チャネルの共通の数を決定することと、
前記仮想チャネルの共通の数を用いてストレージにアクセスし、前記仮想チャネルの共通の数に対応する制御設定を得ることと、
前記制御設定に基づいて、前記第１のエンドポイントの選択された第１のハードウェアバッファ及び前記第２のエンドポイントの選択された第２のハードウェアバッファに動作電圧を供給することと、
を含む方法。
【請求項１１】
前記動作電圧を供給することは、前記選択された第１のハードウェアバッファ及び前記選択された第２のハードウェアバッファに前記動作電圧を供給し、選択されていない第１のハードウェアバッファ及び選択されていない第２のハードウェアバッファに前記動作電圧を供給しないことを含む、請求項１０に記載の方法。
【請求項１２】
前記選択された第１のハードウェアバッファ及び前記選択された第２のハードウェアバッファを用いて前記第１のエンドポイントと前記第２のエンドポイントとの間でデータを通信することを更に含む、請求項１０に記載の方法。
【請求項１３】
前記リンクの構成中、前記仮想チャネルの共通の数を用いて前記ストレージにアクセスすることを更に含み、前記ストレージは、前記第１のエンドポイント及び前記第２のエンドポイントと別個であり、仮想チャネルの共通の数及び制御設定を各々が記憶する複数のエントリを含む、請求項１０に記載の方法。
【請求項１４】
前記リンクの再構成に応答して、
前記第１のエンドポイント及び前記第２のエンドポイントによってサポート可能な仮想チャネルの第２の共通の数を決定することと、
前記仮想チャネルの第２の共通の数を用いて前記ストレージにアクセスし、第２の制御設定を得ることと、
前記第２の制御設定に基づいて、前記第１のハードウェアバッファのうちの、前記選択された第１のハードウェアバッファと異なるもの、及び前記第２のハードウェアバッファのうちの、前記選択された第２のハードウェアバッファと異なるものに前記動作電圧を供給することと、
を更に含む、請求項１３に記載の方法。
【請求項１５】
装置を、前記装置と第２のデバイスとの間に結合されるリンクにインタフェースするための第１のリンクインタフェースであって、対応するトラフィッククラスのデータを各々が通信する複数の独立した回路を含む第１のリンクインタフェースと、
前記複数の独立した回路の数に対応するサポート可能な最大値を記憶するための第１の構成ストレージと、
前記第１の構成ストレージに記憶された前記サポート可能な最大値及び前記第２のデバイスの第２の構成ストレージに記憶されたサポート可能な最大値のうちの最小値に対応するリンク最大値を決定し、前記リンク最大値の異なる表現を得るための構成ロジックと、
前記リンク最大値が前記複数の独立した回路の数未満であるとき、前記複数の独立した回路の第１の組を有効にし、前記異なる表現に応答して前記複数の独立した回路の第２の組を無効にするための制御回路と、
を備える、装置であって、
前記第１の構成ストレージに記憶される前記サポート可能な最大数は、前記装置のための仮想チャネルカウント値に更に対応する、装置。
【請求項１６】
前記装置に結合された不揮発性ストレージを更に備え、前記不揮発性ストレージは、リンク最大値を前記リンク最大値の異なる表現に各々が関連付ける複数のエントリを有するマッピングテーブルを含み、前記マッピングテーブルは、前記構成ロジックによって決定された前記リンク最大値を用いてアクセスされる、請求項１５に記載の装置。
【請求項１７】
前記異なる表現は、前記複数の独立した回路のうちの１つに各々が関連付けられた複数のビットを含み、第１の状態の前記ビットの各々は、前記関連付けられた独立した回路が有効にされることを示し、第２の状態のビットの各々は、前記関連付けられた独立した回路が無効にされることを示す、請求項１６に記載の装置。
【請求項１８】
前記制御回路は、複数の論理回路を備え、前記複数の論理回路は各々が、前記異なる表現の前記複数のビットのうちの１ビット及び電圧レギュレータからの動作電圧を受信し、前記ビットの値に基づいて前記複数の独立した回路のうちの１つに前記動作電圧を供給する、請求項１７に記載の装置。
【請求項１９】
前記複数の独立した回路は各々が、仮想チャネルに関連付けられたハードウェアバッファを備える、請求項１５に記載の装置。
【請求項２０】
１以上の仮想チャネルに関連付けられた情報を各々が記憶する第１の複数のハードウェアバッファを有する第１のリンクインタフェースを備える第１のデバイスと、
リンクを介して前記第１のデバイスに結合される第２のデバイスと、
を備え、前記第２のデバイスは、
１以上の前記仮想チャネルに関連付けられた情報を各々が記憶する第２の複数のハードウェアバッファを有する第２のリンクインタフェースであって、前記第１の複数のハードウェアバッファよりも多くの前記第２の複数のハードウェアバッファが存在する、第２のリンクインタフェースと、
前記複数の第１のハードウェアバッファの数に対応する、前記第１のデバイス及び前記第２のデバイスによって共通してサポートされる仮想チャネルの最大数を決定し、前記最大数に基づいて制御値を得るコントローラと、
前記制御値に応答して、全てよりも少ない前記複数の第２のハードウェアバッファを有効にするためのゲートロジックと、
を備える、システムであって、
前記第１のデバイスは、第１の最大仮想チャネルカウントを含む第１の構成ストレージを備え、前記第２のデバイスは、第２の最大仮想チャネルカウントを含む第２の構成ストレージを備える、システム。
【請求項２１】
前記コントローラは、前記第１の最大仮想チャネルカウント及び前記第２の最大仮想チャネルカウントを用いて、共通にサポートされる仮想チャネルの前記最大数を決定する、請求項２０に記載のシステム。
【請求項２２】
共通にサポートされる仮想チャネルの最大数を各々が関連付ける複数のエントリを有するマッピングテーブルを含む不揮発性ストレージを更に備える、請求項２０に記載のシステム。
【請求項２３】
前記コントローラは、前記決定された共通してサポートされる仮想チャネルの最大数を用いてアクセスされる前記マッピングテーブルのエントリから前記制御値を得る、請求項２２に記載のシステム。
【請求項２４】
前記制御値は、前記第２の複数のハードウェアバッファのうちの１つに各々が関連付けられた複数のビットを含み、第１の状態の前記ビットの各々が、前記関連付けられた第２のハードウェアバッファが有効にされることを示し、第２の状態の前記ビットの各々が、前記関連付けられた第２のハードウェアバッファが無効にされることを示す、請求項２３に記載のシステム。
【請求項２５】
前記ゲートロジックは、複数の論理回路を含み、前記複数の論理回路は各々が、前記制御値のビット及び動作電圧を受信し、前記ビットの値に基づいて前記複数の第２のハードウェアバッファのうちの１つに前記動作電圧を供給する、請求項２４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピューティングシステムに関し、（限定ではないが）特に、そのようなシステムにおけるリンクインタフェース（link  interface）の電力管理に関する。
【図面の簡単な説明】
【０００２】
【図１】マルチコアプロセッサを含むコンピューティングシステムのためのブロック図の一実施形態である。
【図２】１組のコンポーネントを相互接続するポイントツーポイントリンクで構成されるファブリックの一実施形態である。
【図３】階層化プロトコルスタックの一実施形態である。
【図４】ＰＣＩｅトランザクション記述子の一実施形態である。
【図５】ＰＣＩｅシリアルポイントツーポイントファブリックの一実施形態である。
【図６】一実施形態によるＳｏＣ設計のブロック図である。
【図７】本発明の一実施形態によるシステムのブロック図である。
【図８】本発明の一実施形態による構成方法の流れ図である。
【図９Ａ】一実施形態による構成ストレージのブロック図である。
【図９Ｂ】一実施形態による電圧制御回路の一部分のブロック図である。
【図１０】一実施形態によるシステムの一部分のブロック図である。
【０００３】
以下の説明において、本発明の完全な理解をもたらすために、特定のタイプのプロセッサ及びシステム構成、特定のハードウェア構造、特定のアーキテクチャ及びマイクロアーキテクチャの詳細、特定のレジスタ構成、特定の命令タイプ、特定のシステムコンポーネント、特定の測定値／高さ、特定のプロセッサパイプラインステージ及び動作の例等の多数の特定の詳細が示される。しかしながら、当業者には、これらの特定の詳細が、本発明を実施するのに用いられる必要がないことが明らかであろう。他の例では、特定の及び代替的なプロセッサアーキテクチャ、説明されるアルゴリズムのための特定の論理回路／コード、特定のファームウェアコード、特定のインターコネクト動作、特定の論理構成、特定の製造技法及び材料、特定のコンパイラ実装、コードでのアルゴリズムの特定の表現、特定のパワーダウン及びパワーゲーティング技法／ロジック、並びにコンピューティングシステムの他の特定の動作の詳細等の、よく知られたコンポーネント又は方法は、本発明を不要に曖昧にすることを回避するために、詳細に説明されていない。
【０００４】
以下の実施形態は、コンピューティングプラットフォーム又はマイクロプロセッサ等の特定の集積回路におけるエネルギー節減（energy  conservation）及びエネルギー効率(energy  efficiency)を参照して説明される場合があるが、他の実施形態は、他のタイプの集積回路及び論理デバイスに適用可能である。本明細書において説明される実施形態の同様の技法及び教示は、より良好なエネルギー効率及びエネルギー節減から同様に利益を受けることができる他のタイプの回路又は半導体デバイスに適用することができる。例えば、開示される実施形態は、デスクトップコンピュータシステム又はＵｌｔｒａｂｏｏｋ（商標）に限定されない。また、ハンドヘルドデバイス、タブレット、他の薄型ノートブック、システムオンチップ（ＳＯＣ）デバイス及び埋込みアプリケーション等の他のデバイスにおいて用いられる場合もある。ハンドヘルドデバイスのいくつかの例は、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、携帯情報端末（ＰＤＡ）及びハンドヘルドＰＣを含む。埋込みアプリケーションは通常、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、システムオンチップ、ネットワークコンピュータ（ＮｅｔＰＣ）、セットトップボックス、ネットワークハブ、広域ネットワーク（ＷＡＮ）スイッチ、又は以下で教示する機能及び動作を実行することができる任意の他のシステムを含む。更に、本明細書において記載される装置、方法及びシステムは、物理的なコンピューティングデバイスに限定されず、エネルギー節減及びエネルギー効率のためのソフトウェア最適化にも関係することができる。以下の説明において容易に明らかとなるように、本明細書に記載される方法、装置及びシステムの実施形態は（ハードウェア、ファームウェア、ソフトウェア又はそれらの組合せのいずれにおいて参照されていようと）、性能の懸案事項とバランスをとられた「グリーンテクノロジー（green  technology）」に不可欠である。
【０００５】
コンピューティングシステムの進歩に伴い、コンピューティングシステム内のコンポーネントがより複雑になっている。結果として、最適なコンポーネント動作のための帯域幅要件が満たされることを確実にするために、コンポーネント間で結合し通信するためのインターコネクトアーキテクチャもますます複雑になっている。更に、様々な市場区分は、インターコネクトアーキテクチャの様々な態様が市場の需要に適合することを求める。例えば、サーバはより高い性能を要求する一方、モバイルエコシステムは、場合によっては、電力節減のために全体性能を犠牲にすることができる。しかし、電力節減を最大にしながら、可能な限り最高の性能を提供することがほとんどのファブリックの単一の目的である。以下において、本明細書において記載される本発明の態様から潜在的に利益を得る複数のインターコネクト（interconnect）が検討される。
【０００６】
図１を参照すると、マルチコアプロセッサを含むコンピューティングシステムのためのブロック図の一実施形態が示されている。プロセッサ１００は、マイクロプロセッサ、埋込みプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、ハンドヘルドプロセッサ、アプリケーションプロセッサ、コプロセッサ、システムオンチップ（ＳＯＣ）又はコードを実行する他のデバイス等の任意のプロセッサ又は処理デバイスを含む。１つの実施形態では、プロセッサ１００は、少なくとも２つのコア、コア１０１及び１０２を含む。これは、非対称コア又は対称コア（示す実施形態）を含むことができる。一方、プロセッサ１００は、対称又は非対称とすることができる任意の数の処理要素を含むことができる。
【０００７】
１つの実施形態では、処理要素は、ソフトウェアスレッドをサポートするハードウェア又はロジックを指す。ハードウェア処理要素の例は、スレッドユニット、スレッドスロット、スレッド、プロセスユニット、コンテキスト、コンテキストユニット、論理プロセッサ、ハードウェアスレッド、コア、及び／又は、実行状態若しくは構造的状態等のプロセッサの状態を保持することが可能な任意の他の要素を含む。換言すれば、１つの実施形態では、処理要素は、ソフトウェアスレッド、オペレーティングシステム、アプリケーション又は他のコード等のコードに独立して関連付けられることが可能な任意のハードウェアを指す。物理プロセッサ（又はプロセッサソケット）は通常、コア又はハードウェアスレッド等の潜在的に任意の数の他の処理要素を含む集積回路を指す。
【０００８】
コアは、多くの場合、独立した構造的状態を維持することが可能な集積回路上に位置するロジックを指す。独立して維持される各構造的状態は、少なくともいくつかの専用実行リソースに関連付けられる。コアと対照的に、ハードウェアスレッドは通常、独立した構造的状態を維持することが可能な集積回路上に位置する任意のロジックを指し、独立して維持される構造的状態は、実行リソースへのアクセスを共有する。見てわかるように、一定のリソースが共有され、他のリソースが構造的状態に専用であるとき、ハードウェアスレッド及びコアの用語間の境界線は重複する。更に多くの場合に、コア及びハードウェアスレッドは、オペレーティングシステムによって、個々の論理プロセッサとみなされ、ここで、オペレーティングシステムは、各論理プロセッサにおいて動作を個々にスケジューリングすることが可能である。
【０００９】
図１に示すように、物理プロセッサ１００は、２つのコア、コア１０１及び１０２を含む。ここで、コア１０１及び１０２は、対称コア、すなわち、同じ構成、機能ユニット及び／又はロジックを有するコアとみなされる。別の実施形態では、コア１０１はアウトオブオーダプロセッサコアを含むのに対し、コア１０２はインオーダプロセッサコアを含む。一方、コア１０１及び１０２は、ネイティブコア、ソフトウェア管理コア、ネイティブ命令セットアーキテクチャ（ＩＳＡ：Instruction  Set  Architecture）を実行するように適合されたコア、変換された命令セットアーキテクチャ（ＩＳＡ）を実行するように適合されたコア、共同設計されたコア、又は他の既知のコア等の任意のタイプのコアから個々に選択することができる。異種のコア環境（すなわち、非対称コア）において、バイナリ変換等の、ある形態の変換を利用して、一方又は双方のコアにおいてコードをスケジューリング又は実行することができる。また更に検討を進めて、コア１０１に示す機能ユニットが以下で更に詳細に説明され、コア１０２内のユニットは示される実施形態において同様に動作する。
【００１０】
示されるように、コア１０１は、ハードウェアスレッドスロット１０１ａ及び１０１ｂと呼ばれる場合もある２つのハードウェアスレッド１０１ａ及び１０１ｂを含む。したがって、１つの実施形態において、オペレーティングシステム等のソフトウェアエンティティは、潜在的に、プロセッサ１００を４つの別個のプロセッサ、すなわち、４つのソフトウェアスレッドを同時に実行することが可能な４つの論理プロセッサ又は処理要素とみなす。上記で示唆したように、第１のスレッドは、アーキテクチャ状態レジスタ１０１ａに関連付けられ、第２のスレッドはアーキテクチャ状態レジスタ１０１ｂに関連付けられ、第３のスレッドはアーキテクチャ状態レジスタ１０２ａに関連付けることができ、第４のスレッドはアーキテクチャ状態レジスタ１０２ｂに関連付けることができる。ここで、上記で説明したように、アーキテクチャ状態レジスタ（１０１ａ、１０１ｂ、１０２ａ及び１０２ｂ）の各々を、処理要素、スレッドスロット又はスレッドユニットと呼ぶことができる。示すように、アーキテクチャ状態レジスタ１０１ａは、アーキテクチャ状態レジスタ１０１ｂにおいて複製され、このため、個々のアーキテクチャ状態／コンテキストが、論理プロセッサ１０１ａ及び論理プロセッサ１０１ｂのために記憶されることが可能である。コア１０１において、アロケータ及びリネーマブロック１３０における命令ポインタ及びリネームロジック等の他のより小さなリソースも、スレッド１０１ａ及び１０１ｂのために複製することができる。リオーダ／リタイアメントユニット１３５におけるリオーダバッファ、ＩＬＴＢ１２０、ロード／記憶バッファ及びキュー等のいくつかのリソースを、分割を通じて共有することができる。汎用内部レジスタ、ページテーブルベースレジスタ、低レベルデータキャッシュ及びデータＴＬＢ１１５、実行ユニット１４０、及びアウトオブオーダユニット１３５の部分等の他のリソースが潜在的に完全に共有される。
【００１１】
プロセッサ１００は、多くの場合に他のリソースを含み、これらは完全に共有されるか、分割を通じて共有されるか、又は処理要素によって／に専用にすることができる。図１において、プロセッサの例示的な論理ユニット／リソースを有する単なる例示的なプロセッサの一実施形態が示されている。プロセッサは、これらの機能ユニットのうちの任意のものを含むか又は省くことができ、示されていない任意の他の既知の機能ユニット、ロジック又はファームウェアを含むことができることに留意されたい。示されるように、コア１０１は、単純化された、代表的なアウトオブオーダ（ＯＯＯ）プロセッサコアを含む。しかし、様々な実施形態においてインオーダプロセッサを利用することができる。ＯＯＯコアは、実行／取得されるブランチを予測するブランチターゲットバッファ１２０を含み、命令のアドレス変換エントリを記憶する命令変換バッファ（Ｉ−ＴＬＢ）１２０を含む。
【００１２】
コア１０１は、フェッチされた要素をデコードするためにフェッチユニット１２０に結合されたデコードモジュール１２５を更に含む。フェッチロジックは、１つの実施形態では、それぞれスレッドスロット１０１ａ、１０１ｂに関連付けられた個々のシーケンサを含む。通常、コア１０１は第１のＩＳＡに関連付けられている。第１のＩＳＡは、プロセッサ１００上で実行可能な命令を定義／指定する。第１のＩＳＡの一部であるマシンコード命令は、多くの場合、実行される命令又は動作を参照／指定する命令の一部分（ｏｐｃｏｄｅと呼ばれる）を含む。デコードロジック１２５は、これらの命令をｏｐｃｏｄｅから認識し、デコードされた命令を第１のＩＳＡによって定義されているように処理のためのパイプラインに通す回路部を含む。例えば、以下で更に詳細に検討するように、デコーダ１２５は、１つの実施形態では、トランザクション命令等の特定の命令を認識するように設計又は適合されたロジックを含む。デコーダ１２５による認識の結果として、アーキテクチャ又はコア１０１は、適切な命令に関連付けられたタスクを実行する特定の予め定められた行動を行う。本明細書において説明されるタスク、ブロック、動作及び方法のうちの任意のものを、単一の又は複数の命令に応答して実行することができることに留意することが重要である。それらの命令のうちのいくつかは、新たな命令又は古い命令である場合がある。デコーダ１２６は、１つの実施形態では、同じＩＳＡ（又はそのサブセット）を認識することに留意されたい。代替的に、異種のコア環境では、デコーダ１２６は第２のＩＳＡ（第１のＩＳＡのサブセット又は別個のＩＳＡ）を認識する。
【００１３】
１つの例では、アロケータ又はリネーマブロック１３０は、命令処理結果を記憶するレジスタファイル等のリソースを予約するためのアロケータを含む。一方、スレッド１０１ａ及び１０１ｂは、潜在的に、アウトオブオーダ実行が可能であり、この場合、アロケータ及びリネーマブロック１３０も、命令結果を追跡するためのリオーダバッファ等の他のリソースを予約する。ユニット１３０も、プロセッサ１００の内部の他のレジスタに対するプログラム／命令基準レジスタをリネームするレジスタリネーマを含むことができる。リオーダ／リタイアメントユニット１３５は、アウトオブオーダ実行、及び後の、アウトオブオーダ実行された命令のインオーダリタイアメントをサポートするための、上述したリオーダバッファ、ロードバッファ及びストアバッファ等のコンポーネントを含む。
【００１４】
スケジューラ及び実行ユニットブロック１４０は、１つの実施形態では、実行ユニット上で命令／動作をスケジューリングするスケジューラユニットを含む。例えば、浮動小数点命令が、利用可能な浮動小数点実行ユニットを有する実行ユニットのポート上でスケジューリングされる。実行ユニットに関連付けられたレジスタファイルも、情報命令処理結果を記憶するために含まれる。例示的な実行ユニットは、浮動小数点実行ユニットと、整数実行ユニットと、ジャンプ実行ユニットと、ロード実行ユニットと、ストア実行ユニットと、他の既知の実行ユニットとを含む。
【００１５】
低レベルデータキャッシュ及びデータ変換バッファ（Ｄ−ＴＬＢ）１５０は実行ユニット１４０に結合される。データキャッシュは、潜在的にメモリコヒーレンシ状態に保持されているデータオペランド等の最近使用／操作された要素を記憶するためのものである。Ｄ−ＴＬＢは、最近の仮想／リニア対物理アドレス変換を記憶するためのものである。特定の例として、プロセッサは、物理メモリを複数の仮想ページに分割するページテーブル構造を含むことができる。
【００１６】
ここで、コア１０１及び１０２は、オンチップインタフェース１１０に関連付けられた第２のレベルのキャッシュ等のより高レベルの又は更に外側のキャッシュへのアクセスを共有する。より高レベル又は更に外側とは、キャッシュレベルが実行ユニットから増大するか又は離れることを指すことに留意されたい。１つの実施形態では、より高レベルのキャッシュは、第２の又は第３のレベルのデータキャッシュ等の、最終レベルデータキャッシュ、すなわち、プロセッサ１００におけるメモリ階層における最後のキャッシュである。一方、より高いレベルのキャッシュはそれほど限定されていない。なぜなら、このキャッシュは命令キャッシュに関連付けられるか又は命令キャッシュを含むことができるためである。代わりに、トレースキャッシュ、すなわち命令キャッシュの一タイプをデコーダ１２５が最近デコードされたトレースを記憶した後に結合することができる。ここで、命令は、潜在的にマクロ命令（すなわち、デコーダによって認識される一般的な命令）を指す。マクロ命令は、複数のマイクロ命令（マイクロ演算）にデコードすることができる。
【００１７】
示される構成では、プロセッサ１００は、オンチップインタフェースモジュール１１０も含む。従来から、以下でより詳細に説明されるメモリコントローラが、プロセッサ１００の外部のコンピューティングシステムに含まれていた。このシナリオでは、オンチップインタフェース１１０が、システムメモリ１７５、チップセット（多くの場合、メモリ１７５に接続するためのメモリコントローラハブ及び周辺デバイスに接続するためのＩ／Ｏコントローラハブを含む）、メモリコントローラハブ、ノースブリッジ又は他の集積回路等の、プロセッサ１００の外部のデバイスと通信するためのものである。そしてこのシナリオでは、バス１０５は、マルチドロップバス、ポイントツーポイントインターコネクト、シリアルインターコネクト、パラレルバス、コヒーレント（例えば、キャッシュコヒーレント）バス、階層化プロトコルアーキテクチャ、差動バス及びＧＴＬバス等の任意の既知のインターコネクトを含むことができる。
【００１８】
メモリ１７５は、プロセッサ１００に専用とすることもできるし、又はシステム内の他のデバイスと共有することもできる。メモリ１７５のタイプの一般的な例は、ＤＲＡＭ、ＳＲＡＭ、不揮発性メモリ（ＮＶメモリ）及び他の既知のストレージデバイスを含む。デバイス１８０は、グラフィックアクセラレータ、メモリコントローラハブに結合されたプロセッサ若しくはカード、Ｉ／Ｏコントローラハブに結合されたデータストレージ、無線送受信機、フラッシュデバイス、オーディオコントローラ、ネットワークコントローラ又は他の既知のデバイスを含むことができることに留意されたい。
【００１９】
一方、最近、より多くのロジック及びデバイスがＳＯＣ等の単一のダイ上に集積されているため、これらのデバイスの各々をプロセッサ１００上に組み込むことができる。例えば、１つの実施形態では、メモリコントローラハブは、プロセッサ１００と同じパッケージ及び／又はダイ上にある。ここで、コアの一部分（オンコア部分）１１０は、メモリ１７５又はグラフィックデバイス１８０等の他のデバイスとインタフェースするための１以上のコントローラを含む。そのようなデバイスとインタフェースするためのインターコネクト及びコントローラを含む構成は、多くの場合、オンコア（又はアンコア構成）と呼ばれる。例として、オンチップインタフェース１１０は、オンチップ通信のためのリングインターコネクト及びオフチップ通信のための高速シリアルポイントツーポイントリンク１０５を含む。しかし、ＳＯＣ環境では、ネットワークインタフェース、コプロセッサ、メモリ１７５、グラフィックプロセッサ１８０及び任意の他の既知のコンピュータデバイス／インタフェース等の更に多くのデバイスを単一のダイ又は集積回路上に集積し、高い機能性及び低電力消費で小さなフォームファクタを提供することができる。
【００２０】
１つの実施形態では、プロセッサ１００は、コンパイラ、最適化及び／又は変換器コード１７７を実行して、本明細書に記載される装置及び方法並びにそれらとのインタフェースをサポートするためのアプリケーションコード１７６をコンパイル、変換及び／又は最適化することができる。コンパイラは、多くの場合、ソーステキスト／コードをターゲットテキスト／コードに変換するプログラム又は１組のプログラムを含む。通例、コンパイラを用いたプログラム／アプリケーションコードのコンパイルは、複数のフェーズ及びパスで行われ、高レベルプログラミング言語コードを低レベルのマシン又はアセンブリ言語コードに変換する。しかし、単純なコンパイルのために依然としてシングルパスコンパイラが用いられる場合がある。コンパイラは、任意の既知のコンパイル技法を利用して、語彙解析、前処理、パース、意味解析、コード生成、コード変換及びコード最適化等の任意の既知のコンパイラ動作を実行することができる。
【００２１】
より大型のコンパイラは、多くの場合、複数のフェーズを含むが、最も多くの場合、これらのフェーズは大まかな２つのフェーズ、すなわち、（１）フロントエンド、すなわち、通常、構文処理、意味処理及びいくつかの変換／最適化を行うことができるところと、（２）バックエンド、すなわち、解析、変換、最適化及びコード生成を行うところと、に含まれる。いくつかのコンパイラは、コンパイラのフロントエンドとバックエンドとの間の境界が曖昧であることを示す中間を指す。結果として、コンパイラの挿入、関連付け、生成又は他の動作の参照を、上述したフェーズ又はパスのうちの任意のもの、及びコンパイラの任意の他の既知のフェーズ又はパスにおいて行うことができる。説明のための例として、コンパイラは、コンパイルのフロントエンドフェーズにおけるコール／オペレーション（call/operation）の挿入等、コンパイルの１以上のフェーズにおける動作、コール、機能等を潜在的に挿入し、次に、変換フェーズ中にコール／オペレーションをより低レベルのコードに変換する。動的コンパイル中、コンパイラコード又は動的最適化コードは、そのようなオペレーション／コールを挿入し、ランタイム中の実行のためにコードを最適化することができることに留意されたい。説明のための特定の例として、バイナリコード（既にコンパイルされたコード）は、ランタイム中に動的に最適化することができる。ここで、プログラムコードは、動的最適化コード、バイナリコード又はこれらの組合せを含むことができる。
【００２２】
コンパイラと同様に、バイナリ変換器等の変換器は、コードを静的又は動的に変換してコードを最適化及び／又は変換する。したがって、コード、アプリケーションコード、プログラムコード又は他のソフトウェア環境の実行の参照は、（１）コンパイラプログラム、最適化コードオプティマイザ又は変換器を動的又は静的に実行して、プログラムコードをコンパイルするか、ソフトウェア構造を維持するか、他の動作を実行するか、コードを最適化するか若しくはコードを変換すること、（２）最適化／コンパイルされたアプリケーションコード等のオペレーション／コールを含むメインプログラムコードを実行すること、（３）メインプログラムコードに関連付けられたライブラリ等の他のプログラムコードを実行して、ソフトウェア構造を維持するか、他のソフトウェア関連動作を実行するか若しくはコードを最適化すること、又は（４）それらの組合せ、を指すことができる。
【００２３】
１つのインターコネクトファブリックアーキテクチャは、ＰＣＩｅアーキテクチャを備える。ＰＣＩｅの主な目標は、複数の市場区分、すなわち、クライアント（デスクトップ及びモバイル）、サーバ（標準及び企業）、並びに埋込みデバイス及び通信デバイスにまたがって、様々なベンダからのコンポーネント及びデバイスがオープンアーキテクチャにおいて相互運用することを可能にすることである。ＰＣＩ  Ｅｘｐｒｅｓｓは、多岐にわたる未来の計算及び通信プラットフォームについて定義される高性能の汎用Ｉ／Ｏインターコネクトである。使用モデル、ロード−ストアアーキテクチャ及びソフトウェアインタフェース等のいくつかのＰＣＩ属性がその改訂を通じて維持されているのに対し、以前のパラレルバス実装は、高度にスケーリング可能で完全にシリアルのインタフェースに置き換えられている。ＰＣＩ  Ｅｘｐｒｅｓｓのより近時のバージョンは、ポイントツーポイントインターコネクト、スイッチベースの技術及びパケット化されたプロトコルにおける進歩を利用して、新たなレベルの性能及び特徴をもたらしている。電力管理、サービス品質（ＱｏＳ）、ホットプラグ／ホットスワップサポート、データ完全性、エラーハンドリングが、ＰＣＩ  Ｅｘｐｒｅｓｓによってサポートされる進化した数ある特徴のうちのいくつかである。
【００２４】
図２を参照すると、１組のコンポーネントをインターコネクトするポイントツーポイントリンクから構成されるファブリックの一実施形態が示されている。システム２００は、コントローラハブ２１５に結合されたプロセッサ２０５及びシステムメモリ２１０を備える。プロセッサ２０５は、マイクロプロセッサ、ホストプロセッサ、埋込みプロセッサ、コプロセッサ又は他のプロセッサ等の任意の処理要素を含む。プロセッサ２０５は、フロントサイドバス（ＦＳＢ）２０６を通じてコントローラハブ２１５に結合される。１つの実施形態では、ＦＳＢ２０６は以下で説明するようなシリアルポイントツーポイントインターコネクトである。別の実施形態では、リンク２０６は、異なるインターコネクト規格に準拠する、シリアルの、異なるインターコネクトアーキテクチャを含む。
【００２５】
システムメモリ２１０は、ランダムアクセスメモリ（ＲＡＭ）、不揮発性（ＮＶ）メモリ、又はシステム２００内のデバイスによってアクセス可能な他のメモリ等の任意のメモリデバイスを含む。システムメモリ２１０は、メモリインタフェース２１６を通じてコントローラハブ２１５に結合される。メモリインタフェースの例は、ダブルデータレート（ＤＤＲ）メモリインタフェース、デュアルチャネルＤＤＲメモリインタフェース、及びダイナミックＲＡＭ（ＤＲＡＭ）メモリインタフェースを含む。
【００２６】
１つの実施形態では、コントローラハブ２１５は、周辺コンポーネントインターコネクトエクスプレス（ＰＣＩｅ又はＰＣＩＥ）相互接続階層におけるルートハブ、ルートコンプレックス、又はルートコントローラである。コントローラハブ２１５の例は、チップセット、メモリコントローラハブ（ＭＣＨ）、ノースブリッジ、インターコネクトコントローラハブ（ＩＣＨ）、サウスブリッジ及びルートコントローラ／ハブを含む。多くの場合、チップセットという用語は、２つの物理的に別個のコントローラハブ、すなわち、インターコネクトコントローラハブ（ＩＣＨ）に結合されたメモリコントローラハブ（ＭＣＨ）を指す。現行のシステムは、多くの場合、プロセッサ２０５に一体化されたＭＣＨを含む一方、コントローラ２１５は、以下で説明するのと同様の方式でＩ／Ｏデバイスと通信することに留意されたい。いくつかの実施形態では、ピアツーピアルーティングは、オプションでルートコンプレックス２１５を通じてサポートされる。
【００２７】
ここで、コントローラハブ２１５は、シリアルリンク２１９を通じてスイッチ／ブリッジ２２０に結合される。インタフェース／ポート２１７及び２２１とも呼ばれる場合がある入出力モジュール２１７及び２２１は、コントローラハブ２１５とスイッチ２２０との間で通信を提供するための階層化プロトコルスタックを含む／実装する。１つの実施形態では、複数のデバイスがスイッチに２２０結合されることが可能である。
【００２８】
スイッチ／ブリッジ２２０は、パケット／メッセージを、デバイス２２５からアップストリームに、すなわちルートコンプレックスに向かって階層を上がってコントローラハブ２１５へ、及びダウンストリームに、すなわち、ルートコントローラから離れるように階層を下がって、プロセッサ２０５又はシステムメモリ２１０からデバイス２２５へルーティングする。１つの実施形態において、スイッチ２２０は、複数の仮想ＰＣＩ間ブリッジデバイスの論理アセンブリと呼ばれる。デバイス２２５は、Ｉ／Ｏデバイス、ネットワークインタフェースコントローラ（ＮＩＣ）、アドインカード、オーディオプロセッサ、ネットワークプロセッサ、ハードドライブ、ストレージデバイス、ＣＤ／ＤＶＤ  ＲＯＭ、モニタ、プリンタ、マウス、キーボード、ルータ、ポータブルストレージデバイス、Ｆｉｒｅｗｉｒｅデバイス、ユニバーサルシリアルバス（ＵＳＢ）デバイス、スキャナ及び他の入出力デバイス等の電子システムに結合される任意の内部又は外部のデバイス又はコンポーネントを含む。ＰＣＩｅにおいて多くの場合、デバイス等の専門語はエンドポイントと呼ばれる。詳細に示されていないが、デバイス２２５は、レガシＰＣＩデバイス又は他のバージョンのＰＣＩデバイスをサポートするためのＰＣＩｅ対ＰＣＩ／ＰＣＩ−Ｘブリッジを含むことができる。ＰＣＩｅにおけるエンドポイントデバイスは、多くの場合に、レガシ、ＰＣＩｅ又はルートコンプレックスが一体化されたエンドポイントとして分類される。
【００２９】
グラフィックアクセラレータ２３０もシリアルリンク２３２を通じてコントローラハブ２１５に結合される。１つの実施形態では、グラフィックアクセラレータ２３０はＭＣＨに結合され、ＭＣＨはＩＣＨに結合される。そして、スイッチ２２０、及びこれに応じてＩ／Ｏデバイス２２５はＩＣＨに結合される。Ｉ／Ｏモジュール２３１及び２１８はまた、階層化プロトコルスタックを実装してグラフィックアクセラレータ２３０とコントローラハブ２１５との間で通信する。上記のＭＣＨの検討と同様に、グラフィックコントローラ又はグラフィックアクセラレータ２３０自体がプロセッサ２０５に一体化されてもよい。
【００３０】
図３を参照すると、階層化プロトコルスタックの一実施形態が示されている。階層化プロトコルスタック３００は、クイックパスインターコネクト（ＱＰＩ）スタック、ＰＣＩｅスタック、次世代高性能コンピューティングインターコネクトスタック又は他の階層化スタック等の任意の形態の階層化通信スタックを含む。図２〜図５を参照してすぐ下で行う検討は、ＰＣＩｅスタックに関係しているが、同じ概念を他のインターコネクトスタックに適用してもよい。１つの実施形態では、プロトコルスタック３００は、トランザクション層３０５、リンク層３１０及び物理層３２０を含むＰＣＩｅプロトコルスタックである。インタフェースは、通信プロトコルスタック３００として表すことができる。通信プロトコルスタックとしての表現は、プロトコルスタックを実装する／含むモジュール又はインタフェースと呼ぶこともできる。
【００３１】
ＰＣＩ  Ｅｘｐｒｅｓｓは、パケットを用いてコンポーネント間で情報を通信する。パケットは、送信コンポーネントから受信コンポーネントに情報を搬送するように、トランザクション層３０５及びデータリンク層３１０において形成される。送信されたパケットが他の層を通じて流れるとき、これらのパケットは、これらの層においてパケットを処理するのに必要な追加情報を用いて拡張される。受信側において、逆のプロセスが行われ、パケットは、それらの物理層３２０表現からデータリンク層３１０表現に変換され、最終的に（トランザクション層パケットの場合）、受信デバイスのトランザクション層３０５によって処理することができる形態に変換される。
【００３２】
１つの実施形態では、トランザクション層３０５は、デバイスの処理コアと、データリンク層３１０及び物理層３２０等のインターコネクトアーキテクチャとの間のインタフェースを提供する。これに関して、トランザクション層３０５の主な役割は、パケット（すなわち、トランザクション層パケット又はＴＬＰ）の組立て及び分解である。トランザクション層３０５は、通常、ＴＬＰのためのクレジットベースのフロー制御を管理する。ＰＣＩｅは分割トランザクション、すなわち、時間で分かれたリクエスト及び応答を用いたトランザクションを実施し、ターゲットデバイスが応答のためのデータを収集する間にリンクが他のトラフィックを搬送することを可能にする。
【００３３】
加えて、ＰＣＩｅはクレジットベースのフロー制御を利用する。この方式において、デバイスは、トランザクション層３０５内の受信バッファごとに初期クレジット量を公表する（advertise）。コントローラハブ等の、リンクの反対端の外部デバイスが、各ＴＬＰによって消費されるクレジット数をカウントする。トランザクションがクレジット限界を超えない場合、トランザクションを送信することができる。応答の受信時、クレジット量がリストアされる。クレジット方式の利点は、クレジット限界に達していないならば、クレジットの戻りのレイテンシが性能に影響を及ぼさないことである。
【００３４】
１つの実施形態では、４つのトランザクションアドレス空間が、構成アドレス空間、メモリアドレス空間、入出力アドレス空間及びメッセージアドレス区間を含む。メモリ空間トランザクションは、メモリによりマッピングされたロケーションに／からデータを転送するための読出しリクエスト及び書込みリクエストのうちの１以上を含む。１つの実施形態では、メモリ空間トランザクションは、２つの異なるアドレスフォーマット、例えば、３２ビットアドレス等の短いアドレスフォーマット、又は６４ビットアドレス等の長いアドレスフォーマットを用いることが可能である。構成空間トランザクションが、ＰＣＩｅデバイスの構成空間にアクセスするために用いられる。構成空間へのトランザクションは、読出しリクエスト及び書込みリクエストを含む。メッセージ空間トランザクション（又は、単にメッセージ）は、ＰＣＩｅエージェント間の帯域内通信をサポートするように定義される。
【００３５】
したがって、１つの実施形態では、トランザクション層８０５がパケットヘッダ／ペイロード８０６を組み立てる。現在のパケットヘッダ／ペイロードのためのフォーマットは、ＰＣＩｅ仕様ウェブサイトにおけるＰＣＩｅ仕様において得ることができる。
【００３６】
図４を簡単に参照すると、ＰＣＩｅトランザクション記述子の一実施形態が示されている。１つの実施形態において、トランザクション記述子（transaction  descriptor）４００は、トランザクション情報を搬送するためのメカニズムである。これに関して、トランザクション記述子４００は、システム内のトランザクションの識別をサポートする。他の潜在的な使用は、デフォルトのトランザクション順序及びトランザクションとチャネルとの関連付けの変更の追跡を含む。
【００３７】
トランザクション記述子４００は、グローバル識別子フィールド（global  identifier  field）４０２と、属性フィールド（attributes  field）４０４と、チャネル識別子フィールド（channel  identifier  field）４０６とを含む。示される例において、ローカルトランザクション識別子フィールド（local  transaction  identifier  field）４０８と、ソース識別子フィールド（source  identifier  field）４１０とを含むグローバル識別子フィールド４０２が示される。１つの実施形態において、グローバルトランザクション識別子４０２は全ての未処理のリクエストについて一意である。
【００３８】
１つの実施態様によれば、ローカルトランザクション識別子フィールド４０８は、リクエスト側エージェントによって生成されるフィールドであり、そのリクエスト側エージェントに対し完了を要求する全ての未処理のリクエストについて一意である。更に、この例では、ソース識別子４１０はＰＣＩｅ階層内のリクエスト元エージェントを一意に識別する。したがって、ソースＩＤ４１０と共に、ローカルトランザクション識別子４０８フィールドは、階層ドメイン内のトランザクションのグローバル識別を提供する。
【００３９】
属性フィールド４０４は、トランザクションの特性及び関係を指定する。これに関して、属性フィールド４０４は、トランザクションのデフォルトのハンドリングの変更を可能にする追加の情報を提供するのに潜在的に用いられる。１つの実施形態では、属性フィールド４０４は、優先度フィールド（priority  field）４１２と、予約済みフィールド（reserved  field）４１４と、順序付けフィールド（ordering  field）４１６と、非スヌープフィールド（no-snoop  field）４１８とを含む。ここで、優先度サブフィールド４１２は、トランザクションに優先度を割り当てるようにイニシエータによって変更され得る。予約済み属性フィールド４１４は、未来のために、又はベンダが定義した使用のために予約済みのままにされる。優先度又はセキュリティ属性を用いた可能な使用モデルは、予約済み属性フィールドを用いて実施され得る。
【００４０】
この例では、順序付け属性フィールド４１６は、デフォルトの順序付け規則を変更することができる、順序付けタイプを伝達するオプション情報を供給するために用いられる。１つの実施態様によれば、順序付け属性「０」はデフォルトの順序付け規則が適用されることを示し、順序属性「１」は、緩和された順序付けを表す。緩和された順序付けでは、書込みは同じ方向の書込みをパスすることができ、読出し完了は同じ方向の書込みをパスすることができる。スヌープ属性フィールド４１８は、トランザクションがスヌープされているか否かを判断するのに利用される。示すように、チャネルＩＤフィールド４０６は、トランザクションが関連付けられているチャネルを識別する。
【００４１】
データリンク層３１０とも呼ばれるリンク層３１０は、トランザクション層３０５と物理層３２０との間の中間ステージとしての役割を果たす。１つの実施形態では、データリンク層３１０の役割は、リンクとして２つのコンポーネント間でトランザクション層パケット（ＴＬＰ）を交換するための信頼性の高いメカニズムを提供することである。データリンク層３１０の一方の側は、トランザクション層３０５によって組み立てられたＴＬＰを受容し、パケットシーケンス識別子３１１、すなわち識別番号又はパケット番号を適用し、誤り検出コード、すなわちＣＲＣ３１２を計算し適用し、変更されたＴＬＰを、物理層を越えて外部デバイスに送信するために物理層３２０に提出する。
【００４２】
１つの実施形態では、物理層３２０は、パケットを外部デバイスに物理的に送信するための論理サブブロック３２１及び電気サブブロック３２２を備える。ここで、論理サブブロック３２１は、物理層３２１の「デジタル」機能を担当する。これに関して、論理サブブロックは、物理的サブブロック３２２による送信のために発信情報を準備する送信部と、受信した情報を識別及び準備し、その後リンク層３１０に渡す受信機部とを含む。
【００４３】
物理ブロック３２２は、送信機及び受信機を含む。送信機は、論理サブブロック３２１によってシンボルを供給され、送信機がこのシンボルをシリアル化し、外部デバイスに送信する。受信機は、外部デバイスからのシリアル化されたシンボルを供給され、受信した信号をビットストリームに変換する。ビットストリームはシリアル化解除され、論理サブブロック３２１に供給される。１つの実施形態では、８ｂ／１０ｂ送信コードが用いられる。ここで、１０ビットシンボルが送信／受信される。ここで、特殊なシンボルを用いて、パケットがフレーム３２３を用いてフレーム化される。加えて、１つの例では、受信機は着信シリアルストリームからリカバリされたシンボルクロックも提供する。
【００４４】
上記で示したように、トランザクション層３０５、リンク層３１０及び物理層３２０はＰＣＩｅプロトコルスタックの特殊な実施形態を参照して検討されているが、階層化プロトコルスタックはそのように限定されない。実際、任意の階層化プロトコルを含める／実装することができる。例として、階層化プロトコルとして表されるポート／インタフェースは、（１）パケットを組み立てる第１の層、すなわち、トランザクション層と、パケットを配列する第２の層、すなわちリンク層と、パケットを送信する第３の層、すなわち物理層とを含む。特殊な例として、ＱＰＩ階層化プロトコルが利用される。
【００４５】
次に図５を参照すると、ＰＣＩｅシリアルポイントツーポイントファブリックの一実施形態が示されている。ＰＣＩｅシリアルポイントツーポイントリンクの一実施形態が示されているが、シリアルポイントツーポイントリンクはシリアルデータを送信するための任意の送信パスを含むので、シリアルポイントツーポイントリンクはそのように限定されない。示す実施形態では、基本ＰＣＩｅリンクは、２つの低電圧の差動駆動信号対、すなわち送信対５０６／５１１及び受信対５１２／５０７を含む。したがって、デバイス５０５は、データをデバイス５１０に送信するための送信ロジック５０６と、デバイス５１０からデータを受信するための受信ロジック５０７とを含む。換言すれば、２つの送信経路、すなわち、経路５１６及び５１７、並びに２つの受信経路、すなわち経路５１８及び５１５がＰＣＩｅリンクに含まれる。
【００４６】
送信パスは、伝送線、銅線、光回線、無線通信チャネル、赤外線通信リンク又は他の通信パス等の、データを伝送するための任意のパスを指す。デバイス５０５及びデバイス５１０等の２つのデバイス間の接続は、リンク４１５等のリンクと呼ばれる。リンクは、１つのレーンをサポートすることができ、各レーンは、１組の差動信号対（送信用の１対、受信用の１対）を表す。帯域幅をスケーリングするために、リンクはｘＮによって表される複数のレーンを集約することができ、ここで、Ｎは、１、２、４、８、１２、１６、３２、６４又はそれより広いもの等の任意のサポートされるリンク幅である。
【００４７】
差動対は、差動信号を伝送するための、線５１６及び５１７等の２つの伝送パスを指す。例として、線５１６が低電圧レベルから高電圧レベルに切り替わるとき、すなわち立ち上がりエッジのとき、線５１７は高い論理レベルから低い論理レベルに駆動し、すなわち立ち下がりエッジとなる。差動信号は、潜在的に、より良好なシグナルインテグリティ、すなわち、相互結合、電圧オーバシュート／アンダーシュート、リンギング等のような、より良好な電気特性を実証する。これによって、より高速な送信周波数を可能にするより良好なタイミングウィンドウが可能になる。
【００４８】
次に図６を参照すると、本発明によるＳｏＣ設計の一実施形態が示される。説明のための特定の例として、ＳｏＣ２０００がユーザ機器（ＵＥ）に含まれる。１つの実施形態では、ＵＥは、ハンドヘルドフォン、スマートフォン、タブレット、超薄型ノートブック、ブロードバンドアダプター付きノートブック、又は任意の他の同様の通信デバイス等の、エンドユーザによって通信に用いられる任意のデバイスを指す。多くの場合、ＵＥは基地局又はノードに接続する。基地局又はノードは、潜在的に、ＧＳＭ（登録商標）ネットワークにおける移動局（ＭＳ）に性質が対応する。
【００４９】
ここで、ＳｏＣ２０００は２つのコア、すなわち２００６及び２００７を含む。上記の検討と同様に、コア２００６及び２００７は、Ｉｎｔｅｌ（登録商標）アーキテクチャＣｏｒｅ（商標）ベースプロセッサ、Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ、Ｉｎｃ．（ＡＭＤ）プロセッサ、ＭＩＰＳベースのプロセッサ、ＡＲＭベースのプロセッサ設計等、命令セットアーキテクチャ、又はそれらの顧客、及びそれらのライセンス又は利用者に適合することができる。コア２００６及び２００７は、システム２０００の他の部分と通信するためのバスインタフェースユニット２００９及びＬ２キャッシュ２０１１に関連付けられたキャッシュコントロール２００８に結合される。インターコネクト２０１０は、上記で検討したＩＯＳＦ、ＡＭＢＡ又は他のインターコネクト等のオンチップインターコネクトを含む。これらは潜在的に、本明細書において説明した１以上の態様を実施する。
【００５０】
インターコネクト２０１０は、加入者アイデンティティモジュール（ＳＩＭ）カードとインタフェースするためのＳＩＭ２０３０、ＳＯＣ２０００を初期化及びブートするためのコア２００６及び２００７によって実行されるブートコードを保持するブートＲＯＭ２０３５、外部メモリ（例えば、ＤＲＡＭ２０６０）とインタフェースするためのＳＤＲＡＭコントローラ２０４０、不揮発性メモリ（例えば、フラッシュ２０６５）とインタフェースするためのフラッシュコントローラ２０４５、周辺機器とインタフェースするための周辺制御２０５０（例えば、シリアル周辺インタフェース）、ビデオコーデック２０２０、及び入力（例えば、タッチ有効入力）を表示し受信するためのビデオインタフェース２０２５、グラフィック関連計算を実行するためのＧＰＵ２０１５等の、他のコンポーネントへの通信チャネルを提供する。これらのインタフェースの任意のものが、本明細書に記載の本発明の態様を組み込むことができる。
【００５１】
更に、システムは、Ｂｌｕｅｔｏｏｔｈ（登録商標）モジュール２０７０、３Ｇモデム２０７５、ＧＰＳ２０８５及びＷｉＦｉ２０８５等の通信のための周辺機器を示す。システムには電力制御装置２０５５も含まれる。上記で示したように、ＵＥは通信のための無線機を含むことに留意されたい。結果として、これらの周辺通信モジュールは全てが必要とされるわけではない。一方、ＵＥにおいて、外部通信のための何らかの形態の無線機が含まれる。
【００５２】
様々な実施形態において、所与のインターコネクトによって結合される１以上のデバイスの回路部の少なくとも一部は、デバイスの構成によってそのような回路部が用いられないと判断されるとき、電力制御（例えば、パワーゲーティング）され得る。本明細書において説明される実施形態の一例として、インターコネクトを介する通信を提供する１以上の仮想チャネル（virtual  channel）に関連付けられた回路部は、システムの構成によって、そのような仮想チャネルが通信に用いられないと判断されるとき、（例えば、そのような回路部に動作電圧を供給しないことによって）電源が切られた状態に入れられ得る。当然ながら、実施形態はこの例に限定されず、本明細書に記載される技法は、他の回路部の電力制御に等しく適用される。
【００５３】
図７は、本発明の一実施形態によるシステムのブロック図である。図７に示すように、システム７００は、スイッチ７２０に結合された様々なデバイスを有するＰＣＩｅ（商標）システムの実施態様である。デバイスの各々は、対応するリンク（それぞれ、リンク１〜４）によってスイッチ７２０に結合する。一実施形態において、リンクの各々が、異なる特性及び動作パラメータを有することができることに留意されたい。
【００５４】
例として、デバイス７３０、７４０及び７５０は、異なるタイプの周辺デバイスとすることができる。１つのそのような例として、デバイス７３０はグラフィックアクセラレータデバイスとすることができ、デバイス７４０はストレージデバイスとすることができ、デバイス７５０は別のタイプのポータブルデバイス、例えば、キャプチャデバイスとすることができる。スイッチ７２０は、別のリンク（リンク４）によってルートコンプレックス７１０に更に結合する。１つの例として、ルートコンプレックス７１０は、マルチコアプロセッサ等の、システムの主要なデータプロセッサとすることができる。当然ながら、コンプレックスの他の例が可能である。
【００５５】
特に、スイッチ７２０とデバイス７３０との間の接続を参照すると、異なるデバイスに様々な数の仮想チャネルが提供されることに留意されたい。示されるように、スイッチ７２０は、この例では８つの仮想チャネルを含み、各々が、リンクインタフェース７２５における対応するハードウェアバッファを有する。代わりに、デバイス７３０は、４つの仮想チャネルのみを含み、このため、４つのハードウェアバッファのみを含むリンクインタフェース７３５を有する。これらのデバイスは全く異なる数の仮想チャネル及びバッファを有するので、スイッチ７２０のリンクインタフェース７２５内のバッファのうちの少なくともいくつかは用いられない。したがって、本発明の一実施形態を用いて、ハードウェアにおいてこれらのバッファを無効にすることができ、それによってこれらのバッファの電力消費が回避される。図７の実施形態ではこの特定の実施態様で示されているが、多くの変形が可能であることを理解されたい。
【００５６】
ここで図８を参照すると、本発明の一実施形態による構成方法の流れ図が示されている。特定の実施形態では、方法８００は、リンクを介して共に結合されたデバイスの構成ロジックによるデバイス初期化中に実行され得る。更に、本方法は、デバイス、又はリンクを介してデバイスに結合されたハードウェアに対する何らかの変更が存在するときはいつでも動的に実行され得る。例えば、新たなデバイスがエンドポイントに結合される場合、リンクは再トレーニングし、構成ロジックはこれに応じてある決められた値を再度割り当てることになる。図８を参照すると、方法８００は、構成ストレージの拡張されたＶＣカウントフィールドを読み出すことによって開始する。ローカルデバイス又はローカルエンドポイント、及びリモートデバイス又はリモートエンドポイントの双方は、これらの２つのデバイスを結合するリンクの遠位端に位置する（ブロック８１０及びブロック８２０）。１つの実施形態において、この拡張されたＶＣカウントフィールドは、対応するデバイスのストレージ内、例えば、ＰＣＩｅ（商標）構成空間内に記憶することができる。論考の目的で、ローカルデバイス（エンドポイント１）が図７のスイッチ７２０に対応し、遠隔デバイス（エンドポイント２）が図７のデバイス７３０に対応すると仮定する。
【００５７】
上述した表現（スイッチ７２０に８個の仮想チャネル及びバッファが存在し、デバイス７３０に４個の仮想チャネル及びバッファが存在する）では、スイッチデバイス７２０から拡張されたＶＣカウントフィールドのために返される値は８であり、デバイス７３０から返される値は４である。より詳細には、このカウントフィールドが３ビットフィールドである一実施形態では、０の値はサポートされる単一の仮想チャネル（例えば、ＶＣ０）に対応し、この３ビットバイナリ値の値１〜７は、サポートされる更なる数のＶＣに対応する。このため、この実施形態では、スイッチ７２０のための拡張されるＶＣカウントフィールドは、１１１ｂの値を有し、デバイス７３０のための拡張されるＶＣカウントフィールドは０１１ｂのカウントを有する。当然ながら、他の表現が可能である。
【００５８】
更に図８を参照すると、次の制御がひし形８３０に移り、ひし形８３０において、ローカルデバイスのためのＶＣカウントが、リモートデバイスのためのＶＣカウントよりも大きいか否かを判断することができる。大きい場合、制御はブロック８３５に移り、ブロック８３５において、リンク最大ＶＣ値を、リモートデバイスからの拡張されたＶＣカウントフィールドに設定することができる。このリンク最大ＶＣ値又はＶＣ  ＩＤ値が、接続されたエンドポイントの拡張されたＶＣカウントフィールドの最小値に対応することに留意されたい。したがって、この例では、このリンク最大ＶＣ値は０１１ｂの値に設定される。
【００５９】
一方、これが当てはまらない場合、制御は代わりに、ひし形８３０からひし形８４０に移り、ひし形８４０において、ローカルデバイスのためのＶＣカウントがリモートデバイスのためのＶＣカウントに等しいか否かを判断することができる。等しい場合、制御はブロック８４５に移り、ブロック８４５において、リンク最大ＶＣ値を、ローカルデバイスからの拡張されたＶＣカウントフィールドに設定することができる。そうでない場合、制御はひし形８５０に移り、ひし形８５０において、ローカルデバイスのためのＶＣカウントが、リモートデバイスのためのＶＣカウント未満であるか否かが判断される。未満である場合、制御はブロック８５５に移り、ブロック８５５において、リンク最大ＶＣ値を、ローカルデバイスからの拡張されたＶＣカウントフィールドに設定することができる。
【００６０】
ブロック８３５、８４５及び８５５のうちの１つにおいて設定されるリンク最大ＶＣにかかわらず、制御は次にブロック８６０に移り、ブロック８６０において、これらのリンク最大ＶＣ値を有するテーブルストレージ等の構成ストレージにアクセスすることができる。より詳細には、このテーブルにアクセスすることによって、選択されたリンク最大ＶＣ値の別の表現を得ることができる。図９Ａに関して更に示されるように、テーブルは、最大リンクＶＣ値の３ビット表現及び同じ値の対応する８ビット表現を各々が提供する複数のエントリを含むことができる。そして、このため、制御はブロック８７０に移り、ブロック８７０において、アクセスされたエントリの個々のビットを得ることができる。ここで、各ビットは利用可能な数の仮想チャネルのうちの１つに対応し、対応するハードウェアバッファの有効にされた状態を表す。すなわち、一例において、論理１値は、アクティブバッファを示し、これに応じて、対応する有効にされた状態を示し、論理０値は、非アクティブバッファを示し、これに応じて、対応する無効にされた状態を表す。当然ながら他の表現が可能である。
【００６１】
ここで、図９Ａを参照すると、一実施形態による構成ストレージのブロック図が示されている。図９Ａに示すように、ストレージ９００は、システム内、例えば、別個の不揮発性ストレージ内の所望のロケーションに存在することができる。或いは、構成ストレージ９００内の情報のコピーが、例えば、システムの各々のデバイスの構成空間に存在することができる。また更なる実施形態は、この情報を、外部レジスタ又は読出し専用メモリ等の更に別のロケーションに記憶することができる。示されるように、ストレージ９００は、複数のエントリ９１００〜９１０ｎを含む。各エントリは、第１のフィールド９２０及び第２のフィールド９３０を含む。第１のフィールド９２０は最大リンクＶＣ値に対応することができ、このため、ストレージ９００の選択されたエントリにアクセスするためのアドレス指定可能な手段として用いられる。そして、第２のフィールド９３０は、最大リンクＶＣ値の対応する８ビット表現を提供する。一実施形態では、ＶＣ  ＩＤからマッピングされた８ビット値は、各ビットがそのエンドポイントの仮想チャネルバッファ又はエンドポイントの他のレーンマッピングに対応するようにすることができ、例えば、ビット０はＶＣ０にマッピングし、ビット１はＶＣ１にマッピングし、最終的にビット７はＶＣ７にマッピングする。この実施形態では、バイナリ１は「電源オン」状態を示すのに対し、０は「電源オフ」を示す。一実施形態では、次に、これらの状態を、各バッファの電圧制御回路まで駆動し、バッファへの動作電圧の供給を（又は代替的に、動作電圧の供給を行わないように）制御する。
【００６２】
次に図９Ｂを参照すると、テーブルから得られた選択されたエントリ９１０ｘ、及びデバイスの対応するハードウェアバッファへの動作電圧の供給を制御するためのこのエントリの使用が示されている。より詳細には、図９Ｂは、１組のＡＮＤゲート９５００〜９５０ｎを示す。これらの論理ゲートの各々は、選択されたエントリからの対応するビット、及び例えばオフチップ電圧レギュレータから取得された対応する動作電圧を受信するように構成される。当然ながら、動作電圧は、代わりにオンチップ又はオフチップのいずれかの他のロケーションから受信されてもよい。所与のビットが論理高値であるとき、ＡＮＤゲートはアクティブであり、このため、動作電圧は、対応するハードウェアバッファに提供される。そうでない場合、ＡＮＤゲートは動作電圧をバッファに渡さず、バッファが通常動作中、無効にされ、このため電力消費を低減する。図９Ｂの実施形態ではこの高レベルで示されているが、変形が可能であることを理解されたい。
【００６３】
ここで図１０を参照すると、一実施形態によるシステムの一部のブロック図が示されている。図１０に示すように、システム１０００は、様々なコンポーネントを含むことができる。ここで論考の目的で、単に２つのコンポーネント、すなわち、リンク１００５を介して別の回路（図示せず）に結合される任意のタイプの集積回路とすることができるデバイス１０１０と、リンク１０９０を介して結合される不揮発性ストレージ１０８０とが示される。示す実施形態では、リンク１００５は、送信方向及び受信方向において単方向のシリアルリンクを有するＰＣＩｅ（商標）リンクとすることができる。
【００６４】
デバイス１０１０は、ルートコンプレックス、スイッチ、周辺デバイス等を含む任意のタイプのデバイスとすることができる。説明を容易にするために、デバイス１０１０の一部のみが示される。より詳細には、１組の受信バッファ１０２５０〜１０２５ｎが提供される。これらのハードウェアバッファはそれぞれ、所与の仮想チャネルＶＣ０〜ＶＣｎに対応することができる。更に、１組の送信バッファ１０２００〜１０２０ｎも提供される。ここでもまた、各バッファは特定の仮想チャネルに関連付けられている。様々なトラフィッククラス（ＴＣ）を、所与のＶＣ及び対応するハードウェアバッファを通じてルーティングされるように割り当てることができることに留意されたい。本発明の一実施形態を用いて、これらの仮想チャネルハードウェアバッファのうちの有効にされたもののみが、ゲートウェイロジック１０６０を介して動作電圧を与えられ、そして、構成ロジック１０５０から制御情報を受信する。これらの詳細は以下で更に論考される。
【００６５】
更にデバイス１０１０を参照すると、バッファ１０２０及び１０２５は、物理層の他の回路部と通信することができる（説明を容易にするために図１０には示されていない）。ここから、通信は、リンクロジック１０３０により進行し、様々なリンク層処理を行うことができる。その後、通信は、トランザクションレイヤ処理を実行することができるトランザクションロジック１０３５により進行することができる。したがって、通信は、コアロジック１０４０により行うことができ、コアロジック１０４０は、デバイス１０１０の主要論理回路部とすることができる。例えば、マルチコアプロセッサとの関連で、コアロジック１０４０は、１以上のプロセッサコア又は他の処理ユニットとすることができる。デバイス１０１０がグラフィックアクセラレータデバイスである別の例として、コアロジック１０４０は、グラフィック処理ユニットとすることができる。
【００６６】
図１０には、システム１０００が電源オンにされるとき、デバイス１０１０がリセットされるとき、又は動作中に他の動的変化が生じるときに、構成動作を実行するのに用いられるハードウェア、ソフトウェア及び／又はファームウェア（又はそれらの組合せ）とすることができる構成ロジック１０５０も示されている。一実施形態では、構成ロジック１０５０は、本明細書において説明される電力管理制御を実行するロジックを含むことができる。このため、図１０に示す実施形態では、構成ロジック１０５０は、上記で論考された方法８００等の方法を実行するように構成することができる電力管理ロジック１０５５を含む。
【００６７】
このために、構成ロジック１０５０は、構成ストレージ１０７０と通信することができる。様々な実施形態において、構成ストレージ１０７０は、ＰＣＩｅ（商標）構成ストレージ空間を含むデバイス１０１０の不揮発性ストレージとすることができる。ここで記憶される様々な構成情報の中には、本明細書において説明されるような拡張されたＶＣカウントフィールド１０７５がある。当然ながら、更なる構成情報もストレージ１０７０内に記憶されることを理解されたい。
【００６８】
特定の実施形態では、３ビット最大ＶＣカウント値を対応する８ビット値に関連付けるマッピングテーブルを提供することができる。当然ながら、可能な仮想チャネルの量に応じて、ハードウェアバッファ、又は制御される他の回路部、コーディングされるビット数、及び個々のビット表現は変動する場合がある。示す実施形態では、別個の不揮発性ストレージ１０８０は、マッピングテーブル１０８５を含むことができる。このため、マッピングテーブル１０８５は、最大ＶＣカウント値をレーンマッピングに関連付けることができる。換言すれば、サポートされる仮想チャネルの最大数の数の表示は、動作電圧が、対応する仮想チャネルに各々が関連付けられた１以上のハードウェアバッファに提供されるか否かを制御するのに用いることができるイネーブルインジケータの対応する組にマッピングすることができる。この実施形態では、有効にされた仮想チャネルに基づくハードウェアバッファの制御として論考されたが、当然ながら、デバイス内の追加のハードウェアを同様に制御することができることを理解されたい。例として、レーンごと又は仮想チャネル単位で制御することができる追加のハードウェアは、グラフィックカード、ＵＳＢ−ｔｏ−ＰＣＩｅ（商標）若しくはＳＡＴＡ−ｔｏ−ＰＣＩｅ（商標）カード等のドーターカード、又は他のそのようなデバイスを含むことができる。
【００６９】
このため、実施形態は、ＶＣハードウェアバッファ等の使用されていないハードウェアが、構成制御下で、例えば構成ロジックによって電源を切られることを可能にする。このようにして、システム電力は、実際に用いられているハードウェアのみが電源オンにされるように低減することができる。
【００７０】
以下の例は、更なる実施形態に関係する。
【００７１】
一例において、装置は、１以上の仮想チャネルに関連付けられた情報を各々が記憶するための複数のハードウェアバッファと、リンクを介して結合された第１のデバイス及び第２のデバイスによって共通でサポートされる仮想チャネルの最大数に対応する識別子を決定し、この識別子に基づいて制御値を得るための構成ロジックと、制御値に基づいて複数のハードウェアバッファのうちの対応するものに動作電圧を供給するためのゲートロジックとを備える。
【００７２】
一実施形態では、ゲートロジックは、仮想チャネルの最大数が、複数のハードウェアバッファ未満であるとき、複数のハードウェアバッファのうちの少なくとも１つに動作電圧を供給することを防ぐように構成することができる。
【００７３】
一例では、構成ロジックは、第１のデバイスに関連付けられた第１の仮想チャネルカウント及び第２のデバイスに関連付けられた第２の仮想チャネルカウントに基づいて仮想チャネルの最大数を決定する。
【００７４】
一例では、構成ロジックは、第１のデバイスの構成ストレージの仮想チャネルカウントフィールドから第１の仮想チャネルカウントを得て、第２のデバイスの構成ストレージの仮想チャネルカウントフィールドから第２の仮想チャネルカウントを得る。
【００７５】
一例では、ゲートロジックは、複数の論理回路を含み、複数の論理回路は各々が、１ビットの制御値及び動作電圧を受信し、ビットの値に基づいて複数のハードウェアバッファのうちの１つに動作電圧を供給する。
【００７６】
一例では、不揮発性ストレージは、識別子を制御値に各々が関連付ける複数のエントリを有するマッピングテーブルを含み、装置に結合され得る。一実施形態では、構成ロジックは、識別子を用いてアクセスされるマッピングテーブルのエントリから制御値を得る。制御値は、複数のハードウェアバッファのうちの１つに各々が関連付けられた複数のビットを含むことができ、第１の状態のビットの各々は、関連付けられたハードウェアバッファが有効にされることを示し、第２の状態のビットの各々は、関連付けられたハードウェアバッファが無効にされることを示す。
【００７７】
一例では、第１のデバイスは、第１のデバイスによってサポートされる仮想チャネルの最大数のカウントを記憶し、マッピングテーブルの１以上のエントリのコピーを更に記憶するための構成ストレージを備える。一実施形態では、不揮発性ストレージは、第１のデバイスと別個のコンポーネントであり、第２のリンクを介して第１のデバイスに結合される。
【００７８】
上記のデバイスは様々な手段を用いて実施することができることに留意されたい。
【００７９】
一例では、プロセッサは、ユーザ機器タッチ対応デバイスに組み込まれたシステムオンチップ（ＳｏＣ）を備える。
【００８０】
別の例では、システムはディスプレイ及びメモリを備え、上記の例のうちの１以上のデバイスを備える。
【００８１】
別の例では、方法が、リンクを介して結合された第１のエンドポイント及び第２のエンドポイントによってサポート可能な仮想チャネルの共通の数を決定することと、仮想チャネルの共通の数を用いてストレージにアクセスし、仮想チャネルの共通の数に対応する制御設定を得ることと、制御設定に基づいて、第１のエンドポイントの選択された第１のハードウェアバッファ及び第２のエンドポイントの選択された第２のハードウェアバッファに動作電圧を供給することとを含む。
【００８２】
一例では、動作電圧を供給することは、選択された第１のハードウェアバッファ及び選択された第２のハードウェアバッファに動作電圧を供給し、選択されていない第１のハードウェアバッファ及び選択されていない第２のハードウェアバッファに動作電圧を供給しないことを含む。
【００８３】
一例では、本方法は、選択された第１のハードウェアバッファ及び選択された第２のハードウェアバッファを用いて第１のエンドポイントと第２のエンドポイントとの間でデータを通信することを更に含む。
【００８４】
一例では、本方法は、リンクの構成中、仮想チャネルの共通の数を用いてストレージにアクセスすることを更に含み、ストレージは、第１のエンドポイント及び第２のエンドポイントと別個であり、仮想チャネルの共通の数及び制御設定を各々が記憶する複数のエントリを含む。
【００８５】
一例では、本方法は、リンクの再構成に応答して、第１のエンドポイント及び第２のエンドポイントによってサポート可能な仮想チャネルの第２の共通の数を決定することと、仮想チャネルの第２の共通の数を用いてストレージにアクセスし、第２の制御設定を得ることと、第２の制御設定に基づいて、第１のハードウェアバッファのうちの、選択された第１のハードウェアバッファと異なるもの、及び第２のハードウェアバッファのうちの、選択された第２のハードウェアバッファと異なるものに動作電圧を供給することとを更に含む。
【００８６】
別の例では、命令を含むコンピュータ可読媒体が、上記の例のうちの任意のものの方法を実行する。
【００８７】
別の例では、装置が、上記の例のうちの任意のものの方法を実行する手段を備える。
【００８８】
更に別の例では、装置が、この装置を、この装置と第２のデバイスとの間に結合されるリンクにインタフェースするための第１のリンクインタフェースであって、対応するトラフィッククラスのデータを各々が通信する複数の独立した回路を含む第１のリンクインタフェースと、複数の独立した回路の数に対応するサポート可能な最大値を記憶するための第１の構成ストレージと、第１の構成ストレージに記憶されたサポート可能な最大値及び第２のデバイスの第２の構成ストレージに記憶されたサポート可能な最大値のうちの最小値に対応するリンク最大値を決定し、リンク最大値の異なる表現を得るための構成ロジックと、リンク最大値が複数の独立した回路の数未満であるとき、複数の独立した回路の第１の組を有効にし、異なる表現に応答して複数の独立した回路の第２の組を無効にするための制御回路とを備える。
【００８９】
一例では、第１の構成ストレージに記憶されるサポート可能な最大値は、装置のための仮想チャネルカウント値に更に対応する。
【００９０】
一例では、装置に結合された不揮発性ストレージは、リンク最大値をリンク最大値の異なる表現に各々が関連付ける複数のエントリを有するマッピングテーブルを含む。マッピングテーブルには、構成ロジックによって決定されたリンク最大値を用いてアクセスすることができる。
【００９１】
一例では、異なる表現は、複数の独立した回路のうちの１つに各々が関連付けられた複数のビットを含み、第１の状態のビットの各々は、関連付けられた独立した回路が有効にされることを示し、第２の状態のビットの各々は、関連付けられた独立した回路が無効にされることを示す。
【００９２】
一例では、制御回路は、複数の論理回路を備え、複数の論理回路は各々が、異なる表現の複数のビットのうちの１ビット及び電圧レギュレータからの動作電圧を受信し、ビットの値に基づいて複数のハードウェアバッファのうちの１つに動作電圧を供給する。
【００９３】
一例では、複数の独立した回路は各々が、仮想チャネルに関連付けられたハードウェアバッファを備える。
【００９４】
また更なる例では、システムが、１以上の仮想チャネルに関連付けられた情報を各々が記憶する第１の複数のハードウェアバッファを有する第１のリンクインタフェースを備える第１のデバイスと、リンクを介して第１のデバイスに結合される第２のデバイスとを備える。一実施形態では、第２のデバイスは、１以上の仮想チャネルに関連付けられた情報を各々が記憶する第２の複数のハードウェアバッファを有する第２のリンクインタフェースであって、第１の複数のハードウェアバッファよりも多くの第２の複数のハードウェアバッファが存在する、第２のリンクインタフェースと、複数の第１のハードウェアバッファの数に対応する、第１のデバイス及び第２のデバイスによって共通してサポートされる仮想チャネルの最大数を決定し、最大数に基づいて制御値を得るコントローラと、制御値に応答して、全てよりも少ない複数の第２のハードウェアバッファを有効にするためのゲートロジックとを備える。
【００９５】
一例では、第１のデバイスは、第１の最大仮想チャネルカウントを含む第１の構成ストレージを備え、第２のデバイスは、第２の最大仮想チャネルカウントを含む第２の構成ストレージを備える。
【００９６】
一例では、コントローラは、第１の最大仮想チャネルカウント及び第２の最大仮想チャネルカウントを用いて、共通にサポートされる仮想チャネルの最大数を決定する。
【００９７】
一例では、不揮発性ストレージは、共通にサポートされる仮想チャネルの最大数を各々が関連付ける複数のエントリを有するマッピングテーブルを含む。
【００９８】
一例では、コントローラは、決定された共通してサポートされる仮想チャネルの最大数を用いてアクセスされるマッピングテーブルのエントリから制御値を得ることができる。一実施形態では、制御値は、第２の複数のハードウェアバッファのうちの１つに各々が関連付けられた複数のビットを含み、第１の状態のビットの各々が、関連付けられた第２のハードウェアバッファが有効にされることを示し、第２の状態のビットの各々が、関連付けられた第２のハードウェアバッファが無効にされることを示す。
【００９９】
一例では、ゲートロジックは、複数の論理回路を含み、複数の論理回路は各々が、制御値のビット及び動作電圧を受信し、ビットの値に基づいて複数の第２のハードウェアバッファのうちの１つに動作電圧を供給する。
【０１００】
上記の例の様々な組合せが可能であることを理解されたい。
【０１０１】
実施形態は、多くの異なるタイプのシステムにおいて用いることができる。例えば、１つの実施形態では、通信デバイスは、本明細書において記載した様々な方法及び技法を実行するように構成することができる。当然ながら、本発明の範囲は通信デバイスに限定されず、代わりに、他の実施形態は、命令を処理するための他のタイプの装置、又は、コンピューティングデバイス上で実行されることに応答して、デバイスに、本明細書において記載した方法及び技法のうちの１以上を実行させる命令を含む１以上のマシン可読媒体を対象とすることができる。
【０１０２】
実施形態は、コードで実施することができ、命令を実行するようにシステムをプログラムするのに用いることができる命令を記憶した非一時的ストレージ媒体に記憶することができる。ストレージ媒体は、限定ではないが、フロッピーディスク、光ディスク、ソリッドステートドライブ（ＳＳＤ）、コンパクトディスク読出し専用メモリ（ＣＤ−ＲＯＭ）、書き換え可能コンパクトディスク（ＣＤ−ＲＷ）及び磁気−光ディスク、読出し専用メモリ（ＲＯＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、消去可能プログラム可能読出し専用メモリ（ＥＰＲＯＭ）、フラッシュメモリ、電気的に消去可能なプログラム可能読出し専用メモリ（ＥＥＰＲＯＭ）等の半導体デバイス、磁気若しくは光カード、又は電子命令を記憶するのに適した任意の他のタイプの媒体を含むことができる。
【０１０３】
本発明を、限られた数の実施形態に関して説明してきたが、当業者であれば、ここからの多数の変更及び変形を理解するであろう。添付の特許請求の範囲は、本発明の真の趣旨及び範囲内にある全ての変更及び変形をカバーすることが意図される。
【図１】
0006321194.tif 000002
【図２】
0006321194.tif 000003
【図３】
0006321194.tif 000004
【図４】
0006321194.tif 000005
【図５】
0006321194.tif 000006
【図６】
0006321194.tif 000007
【図７】
0006321194.tif 000008
【図８】
0006321194.tif 000009
【図９Ａ】
0006321194.tif 000010
【図９Ｂ】
0006321194.tif 000011
【図１０】
0006321194.tif 000012