(57)【要約】【課題】迅速なレスポンス時間を可能にするデバイス間の通信を可能にすることである。【解決手段】本発明の一態様は、デバイスが低電力状態にあると判断し、前記低電力状態からアクティブ状態への前記デバイスの遷移を開始し、前記低電力状態から前記アクティブ状態への前記デバイスの遷移に対応する前記デバイスの能力を特定し、前記能力に少なくとも部分的に基づき前記低電力状態から前記アクティブ状態への前記デバイスの遷移を完了させるリカバリロジックを有する装置であって、前記低電力状態から前記アクティブ状態への遷移について固定的な最小リカバリ時間が規定され、前記遷移は、前記固定的な最小リカバリ時間の経過前に完了される装置に関する。【選択図】図１
2014182801.tif 000002
【特許請求の範囲】
【請求項１】
デバイスが低電力状態にあると判断し、
前記低電力状態からアクティブ状態への前記デバイスの遷移を開始し、
前記低電力状態から前記アクティブ状態への前記デバイスの遷移に対応する前記デバイスの能力を特定し、
前記能力に少なくとも部分的に基づき前記低電力状態から前記アクティブ状態への前記デバイスの遷移を完了させるリカバリロジックを有する装置であって、
前記低電力状態から前記アクティブ状態への遷移について固定的な最小リカバリ時間が規定され、
前記遷移は、前記固定的な最小リカバリ時間の経過前に完了される装置。
【請求項２】
前記能力は、インタラプト能力を有し、
前記リカバリロジックはさらに、前記デバイスからインタラプトを受信し、
前記インタラプトは、前記デバイスが前記遷移を完了する準備ができているという通知である、請求項１記載の装置。
【請求項３】
前記リカバリロジックはさらに、前記インタラプトについて前記デバイスをモニタリングする、請求項２記載の装置。
【請求項４】
前記リカバリロジックは、前記インタラプトが前記規定されたリカバリ時間前に受信されなかった場合、前記デバイスについて規定されたリカバリ時間に従って前記遷移を完了させる、請求項３記載の装置。
【請求項５】
前記規定されたリカバリ時間は、前記固定的な最小リカバリ時間を含む、請求項４記載の装置。
【請求項６】
前記規定されたリカバリ時間は、前記デバイスに固有の通知されたリカバリ時間を有する、請求項４記載の装置。
【請求項７】
前記能力は、前記デバイスについて通知されたリカバリ時間を有し、
前記通知されたリカバリ時間は、前記固定的な最小リカバリ時間より短い、請求項１記載の装置。
【請求項８】
前記リカバリロジックはさらに、前記固定的な最小リカバリ時間の代わりに、前記低電力状態から前記アクティブ状態への前記デバイスの遷移に対して、前記通知されたリカバリ時間を適用する、請求項７記載の装置。
【請求項９】
前記リカバリロジックはさらに、前記低電力状態から前記アクティブ状態への他のデバイスの遷移において、前記他のデバイスに対して前記固定的な最小リカバリ時間を適用する、請求項８記載の装置。
【請求項１０】
前記デバイスは、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）に準拠したデバイスを含む、請求項１記載の装置。
【請求項１１】
前記低電力状態はＤ３状態を含み、前記アクティブ状態はＤ０状態を含む、請求項１０記載の装置。
【請求項１２】
前記低電力状態から前記アクティブ状態への前記デバイスの遷移の完了は、前記デバイスにコンフィギュレーションアクセスリクエストを送信することを含む、請求項１記載の装置。
【請求項１３】
前記デバイスは、ルートポート、ダウンストリームポート又はＲＣＩＥ（Ｒｏｏｔ  Ｃｏｍｐｌｅｘ  Ｉｎｔｅｇｒａｔｅｄ  Ｅｎｄｐｏｉｎｔ）の少なくとも１つを含む、請求項１記載の装置。
【請求項１４】
少なくとも１つのデバイスの電力管理能力を規定する電力管理能力構造を格納する機械可読メモリと、
前記電力管理能力構造から前記デバイスの特定の能力を特定し、前記特定の能力に少なくとも部分的に基づき、低電力状態からアクティブ状態への前記デバイスの遷移を完了させる電力管理コントローラと、
を有する装置であって、
前記遷移は、前記低電力状態から前記アクティブ状態への遷移について規定された固定的な最小リカバリ時間の経過前に完了される装置。
【請求項１５】
前記電力管理能力構造は、前記デバイスについて他のリカバリ時間が通知されているか前記デバイスについて規定する、請求項１４記載の装置。
【請求項１６】
前記電力管理能力構造は、前記固定的な最小リカバリ時間より短い前記デバイスの他のリカバリ時間を規定する、請求項１５記載の装置。
【請求項１７】
前記電力管理コントローラは、前記低電力状態から前記アクティブ状態への前記デバイスの遷移を完了させるため、前記他のリカバリ時間を適用する、請求項１６記載の装置。
【請求項１８】
前記電力管理コントローラは、他のリカバリ時間が通知されていない場合、前記固定的な最小リカバリ時間を適用する、請求項１５記載の装置。
【請求項１９】
前記電力管理能力構造は、前記デバイスによりインタラプトがサポートされているか前記デバイスについて規定し、
前記電力管理コントローラは、前記デバイスからの前記インタラプトの受信に基づき、前記低電力状態から前記アクティブ状態への前記デバイスの遷移を完了させる、請求項１４記載の装置。
【請求項２０】
前記電力管理コントローラは、前記デバイスが前記インタラプトをサポートしていることを前記電力管理能力構造が示す場合、前記デバイスを前記インタラプトについてモニタリングする、請求項１９記載の装置。
【請求項２１】
デバイスが低電力状態にあると判断するステップと、
前記低電力状態からアクティブ状態への前記デバイスの遷移を開始するステップであって、前記低電力状態から前記アクティブ状態への遷移について固定的な最小リカバリ時間が規定される、開始するステップと、
前記低電力状態から前記アクティブ状態への前記デバイスの遷移に対応する前記デバイスの能力を特定するステップと、
前記能力に少なくとも部分的に基づき、前記低電力状態から前記アクティブ状態への前記デバイスの遷移を完了するステップであって、前記遷移は前記固定的な最小リカバリ時間の経過前に完了される、完了するステップと、
を有する方法。
【請求項２２】
前記能力は、インタラプト能力を含み、
前記リカバリロジックはさらに、前記デバイスからインタラプトを受信し、
前記インタラプトは、前記デバイスが前記遷移を完了する準備ができているという通知である、請求項２１記載の方法。
【請求項２３】
前記能力は、前記デバイスについて通知されたリカバリ時間を含み、
前記通知されたリカバリ時間は、前記固定的な最小リカバリ時間より短い、請求項２１記載の方法。
【請求項２４】
前記低電力状態から前記アクティブ状態への前記デバイスの遷移を開始するステップは、前記デバイスに電力を提供することを含む、請求項２１記載の方法。
【請求項２５】
デバイスと、
前記デバイスに通信接続される電力管理コントローラと、
を有するシステムであって、
前記電力管理コントローラは、
前記デバイスが低電力状態にあると判断し、
前記低電力状態からアクティブ状態への前記デバイスの遷移を開始し、
前記低電力状態から前記アクティブ状態への前記デバイスの遷移に対応する前記デバイスの能力を特定し、
前記能力に少なくとも部分的に基づき、前記低電力状態から前記アクティブ状態への前記デバイスの遷移を完了し、
前記低電力状態から前記アクティブ状態への遷移について固定的な最小リカバリ時間が規定され、
前記遷移は、前記固定的な最小リカバリ時間の経過前に完了されるシステム。
【請求項２６】
前記デバイスは、ルートポートを含む、請求項２５記載のシステム。
【請求項２７】
前記デバイスは、ＲＣＩＥ（Ｒｏｏｔ  Ｃｏｍｐｌｅｘ  Ｉｎｔｅｇｒａｔｅｄ  Ｅｎｄｐｏｉｎｔ）を含む、請求項２５記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、計算システムに関し、特に（限定することなく）ルートポート及びルートポートが搭載されたエンドポイント（ＲＰＩＥ）に関する。
【背景技術】
【０００２】
ユーザの日常生活において電子装置がより複雑になり、ユビキタスなものになるに従って、それらに対してより多様な要求が求められる。これらの要求の多くを充足するため、多くの電子装置は、ＣＰＵ、通信デバイス、グラフィックアクセラレータなどの多数の異なるデバイスを有することになる。多くの状況では、これらのデバイスの間の通信量が多くなる可能性がある。さらに、多くのユーザは装置のパフォーマンスに関して高い期待を有している。ユーザは、自分の装置により処理が実行されることを待機するのにあまり寛容でなくなりつつある。さらに、多くの装置は、かなりの量のデバイス間通信に伴うより複雑かつ負担の大きなタスクを実行している。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従って、本発明の１つの課題は、迅速なレスポンス時間を可能にするデバイス間の通信を可能にすることである。
【課題を解決するための手段】
【０００４】
上記課題を解決するため、本発明の一態様は、デバイスが低電力状態にあると判断し、前記低電力状態からアクティブ状態への前記デバイスの遷移を開始し、前記低電力状態から前記アクティブ状態への前記デバイスの遷移に対応する前記デバイスの能力を特定し、前記能力に少なくとも部分的に基づき前記低電力状態から前記アクティブ状態への前記デバイスの遷移を完了させるリカバリロジックを有する装置であって、前記低電力状態から前記アクティブ状態への遷移について固定的な最小リカバリ時間が規定され、前記遷移は、前記固定的な最小リカバリ時間の経過前に完了される装置に関する。
【発明の効果】
【０００５】
本発明によると、迅速なレスポンス時間を可能にするデバイス間の通信を可能にすることができる。
【図面の簡単な説明】
【０００６】
【図１】図１は、少なくとも１つの実施例によるマルチコアプロセッサを有する計算システムのブロック図の一実施例を示す。
【図２】図２は、少なくとも１つの実施例によるインターコネクトアーキテクチャを有する計算システムの一実施例を示す。
【図３】図３は、少なくとも１つの実施例によるレイヤ化スタックを有するインターコネクトアーキテクチャの一実施例を示す。
【図４】図４は、少なくとも１つの実施例によるインターコネクトアーキテクチャ内で生成又は受信されるリクエスト又はパケットの一実施例を示す。
【図５】図５は、少なくとも１つの実施例によるインターコネクトアーキテクチャの送信機及び受信機のペアの一実施例を示す。
【図６】図６は、一例となる電力管理状態遷移図を示す。
【図７】図７は、少なくとも１つの実施例によるフロー図である。
【図８】図８は、少なくとも１つの実施例によるフロー図である。
【図９】図９は、少なくとも１つの実施例によるフロー図である。
【図１０】図１０は、計算システムのブロック図の他の実施例を示す。
【発明を実施するための形態】
【０００７】
以下、図面に基づいて本発明の実施の形態を説明する。
【０００８】
以下の説明では、特定のタイプのプロセッサ及びシステムコンフィギュレーション、特定のハードウェア構造、特定のアーキテクチャ及びマイクロアーキテクチャの詳細、特定のレジスタコンフィギュレーション、特定の命令タイプ、特定のシステムコンポーネント、特定の測定／高さ、特定のプロセッサパイプラインステージ及び処理などの多数の具体的詳細が、本発明の完全な理解を提供するため与えられる。しかしながら、これらの具体的な詳細が本発明を実現するのに利用される必要がないことは明らかであろう。他の例では、特定の他のプロセッサアーキテクチャ、説明されたアルゴリズムのための特定の論理回路／コード、特定のファームウェアコード、特定のインターコネクト処理、特定のロジックコンフィギュレーション、特定の製造技術及び物質、特定のコンパイラ実装、特定のコードによるアルゴリズムの表現、特定の電力ダウン及びゲート化技術／ロジック及びコンピュータシステムの他の特定の処理の詳細などの周知のコンポーネント又は方法は、本発明を不要に不明瞭にすることを回避するため詳細には説明されない。
【０００９】
以下の実施例は計算プラットフォーム又はマイクロプロセッサなどにおけるルートポート及びルートポートが搭載されたエンドポイントのレジューム時間の向上を参照して説明されるが、他の実施例は、他のタイプの集積回路及びロジックデバイスに適用可能である。ここに説明される実施例の同様の技術及び教示は、レジューム時間の向上を享受する他のタイプの回路又は半導体デバイスに適用されてもよい。例えば、開示される実施例は、デスクトップコンピュータシステム又はＵｌｔｒａｂｏｏｋｓＴＭに限定されるものでなく、携帯デバイス、タブレット、他のシンノートブック、ＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）デバイス及び埋め込みアプリケーションなどの他のデバイスにおいて利用されてもよい。携帯デバイスのいくつかの具体例は、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）及び携帯ＰＣを含む。埋め込みアプリケーションは、典型的には、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、ＳＯＣ、ネットワークコンピュータ（ＮｅｔＰＣ）、セットトップボックス、ネットワークはぶ、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）スイッチ、又は後述される機能及び処理を実行可能な他の何れかのシステムを含む。さらに、ここに説明される装置、方法及びシステムは、物理的な計算デバイスに限定されず、レジューム時間を向上させるためのソフトウェア最適化に関するものであってもよい。
【００１０】
図１は、少なくとも１つの実施例によるルートポート及びルートポートを搭載したエンドポイント（ＲＰＩＥ）のレジューム時間の向上に関連するコンポーネントを示すブロック図である。図１の具体例は、ルートポート及びルートポートを搭載したエンドポイントのレジューム時間の向上に関連するコンポーネントの単なる一例であり、請求項の範囲を限定するものでない。例えば、コンポーネントに帰属する処理は可変的であり、コンポーネントの個数も可変的であり、コンポーネントの合成も可変的である。例えば、いくつかの実施例では、図１の具体例の１つのコンポーネントに帰属可能な処理は、１以上の他のコンポーネントに配分されてもよい。
【００１１】
プロセッサ１００は、マイクロプロセッサ、埋め込みプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、携帯プロセッサ、アプリケーションプロセッサ、コプロセッサ、ＳＯＣ又はコードを実行する他のデバイスなどの何れかのプロセッサ又は処理デバイスを含む。一実施例では、プロセッサ１００は、非シンメトリックコア又はシンメトリックコア（図示された実施例）を含むものであってもよい少なくとも２つのコア１０１，１２０を有する。しかしながら、プロセッサ１００は、シンメトリック又は非シンメトリックな何れかの個数の処理要素を含むものであってもよい。
【００１２】
一実施例では、処理要素は、ソフトウェアスレッドをサポートするハードウェア又はロジックを表す。ハードウェア処理要素の具体例として、スレッドユニット、スレッドスロット、スレッド、プロセスユニット、コンテクスト、コンテクストユニット、論理プロセッサ、ハードウェアスレッド、コア及び／又は実行状態又はアーキテクチャ状態などのプロセッサの状態を保持可能な他の何れかの要素があげられる。すなわち、一実施例では、処理要素は、ソフトウェアスレッド、オペレーティングシステム、アプリケーション又は他のコードなどのコードに独立に関連付け可能な何れかのハードウェアを表す。物理プロセッサ（又はプロセッサソケット）は、典型的には、コア又はハードウェアスレッドなどの何れかの個数の他の処理要素を含むものであってもよい集積回路を表す。
【００１３】
コアは、しばしば独立したアーキテクチャ状態を維持可能な集積回路に配置されるロジックを表し、独立して維持される各アーキテクチャ状態は、少なくともいくつかの専用の実行リソースに関連付けされる。コアと対照的に、ハードウェアスレッドは、典型的には、独立したアーキテクチャ状態を維持可能な集積回路に配置された何れかのロジックを表し、独立に維持されたアーキテクチャ状態は、実行リソースへのアクセスを共有する。理解できるように、特定のリソースが共有され、他のものがアーキテクチャ状態に専用とされるとき、ハードウェアスレッドとコアとの用語の間には重複がある。また、コアとハードウェアスレッドとはしばしば、オペレーティングシステムが各論理プロセッサ上の処理を個別にスケジューリング可能である場合、個々の論理プロセッサとしてオペレーティングシステムによりみなされる。
【００１４】
図１に示されるように、物理プロセッサ１００は、２つのコア１０１，１０２を有する。ここで、コア１０１，１０２は、シンメトリックコア、すなわち、同一のコンフィギュレーション、機能ユニット及び／又はロジックを備えたコアとみなされる。他の実施例では、コア１０１はアウトオブオーダプロセッサコアを有し、コア１０２はインオーダプロセッサコアを有する。しかしながら、コア１０１，１０２は、ネイティブコード、ソフトウェアにより管理されたコア、ネイティブＩＳＡ（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ）を実行するよう構成されるコア、変換されたＩＳＡを実行するよう構成されたコア、一緒に設計されたコア又は他の既知のコアなどの何れかのタイプのコアから個別に選択されてもよい。ヘテロジーニアスコア環境（すなわち、非シンメトリックコア）では、バイナリ変換などのある変換形態が、一方又は双方のコア上のコアをスケジューリング又は実行するのに利用されてもよい。さらなる説明のため、コア１０１に示される機能ユニットは、以下においてさらに詳細に説明され、コア１０２のユニットは、図示された実施例において同様に動作する。
【００１５】
図示されるように、コア１０１は、ハードウェアスレッドスロット１０１ａ，１０１ｂとして参照されてもよい２つのハードウェアスレッド１０１ａ，１０１ｂを有する。従って、一実施例では、オペレーティングシステムなどのソフトウェアエンティティは、４つの別個のプロセッサ、すなわち、４つのソフトウェアスレッドを同時に実行可能な４つの論理プロセッサ又は処理要素としてプロセッサ１００をみなすことが可能である。上述されるように、第１スレッドはアーキテクチャ状態レジスタ１０１ａに関連付けされ、第２スレッドはアーキテクチャ状態レジスタ１０１ｂに関連付けされ、第３スレッドはアーキテクチャ状態レジスタ１０２ａに関連付けされ、第４スレッドはアーキテクチャ状態レジスタ１０２ｂに関連付けされてもよい。ここで、各アーキテクチャ状態レジスタ（１０１ａ，１０１ｂ，１０２ａ，１０２ｂ）は、上述されるように、処理要素、スレッドスロット又はスレッドユニットとして参照されてもよい。図示されるように、アーキテクチャ状態レジスタ１０１ａは、アーキテクチャ状態レジスタ１０１ｂにおいて複製され、個々のアーキテクチャ状態／コンテクストは、論理プロセッサ１０１ａ，１０１ｂのための格納可能である。コア１０１では、アロケータリネーマブロック１０３の命令ポインタ及び梨ネーミングロジックなどの他のより小さなリソースがまた、スレッド１０１ａ，１０１ｂのために複製されてもよい。リオーダ／リタイアメントユニット１３５におけるリオーダバッファ、ブランチターゲットバッファ（ＢＴＢ）及び命令変換バッファ（Ｉ−ＴＬＢ）１２０、ロード／ストアバッファ及びキューなどのいくつかのリソースは、パーティション処理を介し共有されてもよい。汎用内部レジスタ、ページテーブルベースレジスタ、低レベルデータキャッシュ及びデータＴＬＢ１５０、実行ユニット１４０及びアウトオブオーダユニット１３５の一部などの他のリソースは、完全に共有される可能性がある。
【００１６】
プロセッサ１００はしばしば、完全に共有される、パーティション化を介し共有される、又は処理要素に専用であってもよい他のリソースを含む。図１において、プロセッサの例示的な論理ユニット／リソースを備えた一例となるプロセッサの実施例が示される。プロセッサは、これらの機能ユニットの何れかを含む又は省略すると共に、他の何れか既知の図示されない機能ユニット、ロジック又はファームウェアを含むものであってもよいことに留意されたい。図示されるように、コア１０１は、簡単化された典型的なアウトオブオーダ（ＯＯＯ）プロセッサコアを有する。しかしながら、インオーダプロセッサは、異なる実施例において利用されてもよい。ＯＯＯコアは、実行／選択されるブランチを予測するＢＴＢ及びＩ−ＴＬＢ１２０と、命令のためアドレス変換エントリを格納するためのＢＴＢ及びＩ−ＴＬＢ１２０とを含む。
【００１７】
コア１０１はさらに、ＢＴＢ及びＩ−ＴＬＢ１２０に接続され、フェッチされた要素を復号化する復号化モジュール１２５を有する。一実施例では、フェッチロジックは、スレッドスロット１０１ａ，１０１ｂに関連付けされる個々のシーケンサを含む。通常、コア１０１は、プロセッサ１００上で実行可能な命令を規定／指定する第１ＩＳＡに関連付けされる。しばしば、第１ＩＳＡの一部であるマシーンコード命令は、実行される命令又は処理を参照／指定する命令の一部（オペコードと呼ばれる）を含む。復号化ロジック１２５は、オペコードから命令を認識し、第１ＩＳＡにより規定されるような処理のためのパイプラインにより復号化された命令をわたす回路を含む。例えば、以下においてより詳細に説明されるように、一実施例では、デコーダ１２５は、トランザクション命令などの特定の命令を認識するよう設計又は構成されるロジックを含む。デコーダ１２５による認識の結果として、アーキテクチャ又はコア１０１は、適切な命令に関連付けされたタスクを実行するため特定の所定のアクションを選択する。ここで説明されたタスク、ブロック、処理及び方法の何れかが、単一の命令、又は一部が新たな又は古い命令であってもよい複数の命令に応答して実行されてもよいことに留意することが重要である。一実施例では、デコーダ１２５は同一のＩＳＡ（又はそれのサブセット）を認識することに留意されたい。あるいは、ヘテロジーニアスコア環境では、デコーダ１２５は第２ＩＳＡ（第１ＩＳＡのサブセット又は異なるＩＳＡ）を認識する。
【００１８】
一例では、リネーマ／アロケータブロック１３０は、命令処理結果を格納するためのレジスタファイルなど、リソースを確保するためのアロケータを含む。しかしながら、スレッド１０１ａ，１０１ｂは、アウトオブオーダ実行が可能であり、アロケータリネーマブロック１３０はまた、命令結果をトラックするためのリオーダバッファなどの他のリソースを確保する。ユニット１３０はまた、プログラム／命令リファレンスレジスタをプロセッサ１００の内部の他のレジスタにリネーミングするためのレジスタリネーマを有してもよい。リオーダ／リタイアメントユニット１３５は、アウトオブオーダ命令と、以降のアウトオブオーダに実行された命令のインオーダリタイアメントとをサポートするため、上述したリオーダバッファ、ロードバッファ及びストアバッファなどのコンポーネントを含む。
【００１９】
一実施例では、スケジューラ実行ユニットブロック１４０は、実行ユニット上の命令／処理をスケジューリングするためのスケジューラユニットを有する。例えば、浮動小数点命令は、利用可能な浮動小数点実行ユニットを有する実行ユニットのポート上でスケジューリングされる。実行ユニットに関連するレジスタファイルはまた、情報命令処理結果を格納するため含まれる。一例となる実行ユニットは、浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、ロード実行ユニット、ストア実行ユニット及び他の既知の実行ユニットを含む。
【００２０】
下位レベルデータキャッシュ及びデータ変換バッファ（Ｄ−ＴＬＢ）１５０は、実行ユニット１４０に接続される。データキャッシュは、メモリコヒーレンシ状態において保持されるデータオペランドなどの最近利用された／動作した要素を格納するものである。Ｄ−ＴＬＢは、最近のバーチャル／リニアから物理アドレスへの変換を格納するものである。具体例として、プロセッサは、物理メモリを複数のバーチャルページに分割するためのページテーブル構造を有してもよい。
【００２１】
ここで、コア１０１，１０２は、オンチップインタフェース１１０に関連付けされた第２レベルキャッシュなどの上位レベル又はさらなるアウトキャッシュへのアクセスを共有する。上位レベル又はさらなるアウトは実行ユニットから増加又は離れるキャッシュレベルを表すことに留意されたい。一実施例では、上位レベルキャッシュは、第２又は第３レベルデータキャッシュなどのラストレベルデータキャッシュ、すなわち、プロセッサ１００上のメモリ階層における最後のキャッシュである。しかしながら、上位レベルキャッシュはこれに限定されず、命令キャッシュに関連付け又は含むものであってもよい。あるタイプの命令キャッシュであるトレースキャッシュが、直近に復号化されたトレースを格納するため、デコーダ１２５の後に接続されてもよい。ここで、命令はマイクロ命令（すなわち、デコーダにより認識される汎用命令）を表し、複数のマイクロ命令（マイクロ処理）に復号化されてもよい。
【００２２】
図示されたコンフィギュレーションでは、プロセッサ１００はまた、オンチップインタフェースモジュール１１０を有する。従来、以下でより詳細に説明されるメモリコントローラは、プロセッサ１００の外部の計算システムに含まれていた。このシナリオでは、オンチップインタフェースモジュール１１０は、システムメモリ１７５、チップセット（しばしばメモリ１７５に接続するためのメモリコントローラハブと、周辺デバイスに接続するためのＩ／Ｏコントローラハブとを含む）、メモリコントローラハブ、ノースブリッジ又は他の集積回路など、プロセッサ１００の外部のデバイスと通信するためのものである。このシナリオでは、バス１０５は、マルチドロップバス、ポイント・ツー・ポイントインターコネクト、シリアルインターコネクト、パラレルバス、コヒーレント（キャッシュコヒーレントなど）バス、レイヤ化プロトコルアーキテクチャ、異なるバス及びＧＴＬバスなどの何れか既知のインターコネクトを有してもよい。
【００２３】
メモリ１７５は、プロセッサ１００に専用とされてもよいし、又はシステムの他のデバイスと共有されてもよい。一般的なタイプのメモリ１７５は、ＤＲＡＭ、ＳＲＡＭ、不揮発性メモリ（ＮＶメモリ）及び他の既知の記憶デバイスを含む。デバイス１８０は、グラフィックアクセラレータ、メモリコントローラハブに接続されるプロセッサ若しくはカード、Ｉ／Ｏコントローラハブに接続されるデータストレージ、無線送受信機、フラッシュデバイス、オーディオコントローラ、ネットワークコントローラ又は他の既知のデバイスを含むものであってもよい。
【００２４】
しかしながら、最近、より多くのロジック及びデバイスがＳＯＣなどの単一のダイに統合されるに従って、これらのデバイスのそれぞれはプロセッサ１００上に搭載される可能性がある。例えば、一実施例では、メモリコントローラハブは、プロセッサ１００と同一パッケージ及び／又はダイ上にある。ここで、コア１１０の一部（オンコア部分）は、メモリ１７５やデバイス１８０などの他のデバイスとインタフェースをとるための１以上のコントローラを有する。当該デバイスとインタフェースをとるためのインターコネクト及びコントローラを含むコンフィギュレーションは、しばしばオンコア（又はアンコアコンフィギュレーション）と呼ばれる。一例として、オンチップインタフェース１１０は、オンチップ通信のためのリングインターコネクトと、オフチップ通信のための高速シリアルポイント・ツー・ポイントリンク１０５とを有する。さらに、ＳＯＣ環境では、ネットワークインタフェース、コプロセッサ、メモリ１７５、デバイス１８０及び他の何れか既知のコンピュータデバイス／インタフェースなどのさらに多くのデバイスが、高機能及び低電力消費をスモールフォームファクタに提供するため、単一のダイ又は集積回路上に搭載されてもよい。
【００２５】
一実施例では、プロセッサ１００は、ここに開示される装置及び方法をサポートするため、又はそれらとインタフェースをとるため、アプリケーションコード１７６をコンパイル、変換及び／又は最適化するコンパイラ、最適化及び／又は変換コード１７７を実行可能である。コンパイラはしばしば、ソーステキスト／コードをターゲットテキスト／コードに変換するためのプログラム又はプログラムセットを含む。通常、コンパイラによるプログラム／アプリケーションコードのコンパイルは、ハイレベルプログラミング言語コードを低レベルマシーン又はアセンブリ言語コードに変換するため複数のフェーズ及びパスにおいて実行される。さらに、単一パスコンパイラが、シンプルなコンパイルのため依然として利用されてもよい。コンパイラは、何れか既知のコンパイル技術を利用し、レキシカル解析、前処理、パーシング、意味解析、コード生成、コード変換及びコード最適化などの何れか既知のコンパイラ処理を実行してもよい。
【００２６】
より大きなコンパイラはしばしば複数のフェーズを有するが、最も頻繁には、これらのフェーズは２つの一般的なフェーズ、（１）フロントエンド、すなわち、一般に構文処理、意味処理及び変換／最適化が行われるところ、（２）バックエンド、すなわち、一般に解析、変換、最適化及びコード生成が行われるところに含まれる。一部のコンパイラは、コンパイラのフロントエンドとバックエンドとの間の描写を曖昧に示すミドルを表す。この結果、コンパイラの挿入、関連付け、生成又は他の処理の参照は、上述されたフェーズ又はパスの何れかと共に、コンパイラの他の何れか既知のフェーズ又はパスにおいて実行されてもよい。例示的な具体例として、コンパイラは、コンパイルのフロントエンドフェーズにおけるコール／処理の挿入と、その後の変換フェーズにおけるコール／処理の下位レベルコードへの変換などのコンパイルの１以上のフェーズにおける処理、コール、ファンクションなどを挿入する。動的なコンパイル中、コンパイラコード又は動的最適化コードは、当該処理／コールを挿入すると共に、ランタイム中に実行用のコードを最適化してもよいことに留意されたい。特定の例示的な具体例として、バイナリコード（すでにコンパイルされたコード）は、ランタイム中に動的に最適化されてもよい。ここで、プログラムコードは、動的な最適化コード、バイナリコード又はこれらの組み合わせを含むものであってもよい。
【００２７】
コンパイラと同様に、バイナリトランスレータなどのトランスレータは、コードを最適化及び／又は変換するため、静的又は動的にコードを変換する。従って、コード、アプリケーションコード、プログラムコード又は他のソフトウェア環境の実行の表現は、（１）プログラムコードをコンパイルし、ソフトウェア構造を維持し、他の処理を実行し、コードを最適化し、又はコードを変換するための最適化装置又はトランスレータのコンパイラプログラム及び最適化コードの動的又は静的な実行、（２）最適化／コンパイルされたアプリケーションコードなどの処理／コールを含むメインプログラムコードの実行、（３）ソフトウェア構造を維持し、他のソフトウェア関連処理を実行し、又はコードを最適化するためメインプログラムコードに関連するライブラリなどの他のプログラムコードの実行、又は（４）これらの組み合わせを表すものであってもよい。
【００２８】
いくつかの実現形態では、電力管理コントローラ１６０がまた設けられ、ハードウェア及びソフトウェアにより実現可能である。システム及び当該システムに接続されるデバイスは、他の（中間など）状態及び状況のうちフル電力、低電力及び無電力状態を含む複数の電力状態をサポート可能である。電力管理コントローラ１６０は、他の機能のうちシステムの電力消費を最小化するのを支援し、システムの熱制限を管理し、システムのバッテリ寿命を最大化するため、機能を提供してタスクを実行することが可能である。電力管理は、他の具体例のうちシステムスピード、ノイズ、バッテリ寿命及びＡＣ電力消費を含むシステムの他の機能及び特性を管理することを含むことが可能である。
【００２９】
オンチップインタフェースは、レジューム時間モジュール１０４を有することが可能である。レジューム時間モジュール１０４は、プロセッサ１８２及びメモリ１８４を有することが可能である。オンチップインタフェース１１０及びデバイス１８０は、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）に準拠した又は他の接続を介し通信してもよい。ＰＣＩ及びＰＣＩｅなどのいくつかのインターコネクトプロトコルでは、アーキテクチャ機構が、デバイスのエントリをフル電力状態に遅延させるため設けることができる（例えば、特定の電力管理ポリシー及び能力に関して）。例えば、デバイスのオペレーティングシステムの電力管理ロジックなどのソフトウェアは、少なくとも部分的にエントリを制御し、各種電力状態にイグジットする。いくつかの具体例では、プラットフォームポリシーは、例えば、電力状態の初期化に関して、デバイスにコンフィギュレーションリクエストをソフトウェアが発行することを許可する前に最小限のリカバリ時間（遅延）を提供することができる。例えば、アイドル電力の利用を向上させるため、電力管理ポリシー及び機能は、インターコネクトを介し接続された外部デバイスと共に、個別のアタッチされたデバイス、Ｒｏｏｔ  Ｐｏｒｔ（ＲＰ）及びＲｏｏｔ  Ｃｏｍｐｌｅｘ  Ｉｎｔｅｇｒａｔｅｄ  Ｅｎｄ  Ｐｏｉｎｔ（ＲＣＩＥ）を含むデバイスを、当該デバイスへの電力が取り除くことが可能であるか、当該デバイスが低電力状態により動作可能であるか、又は当該デバイスが補助電力下で動作可能である電力管理状態に配置することを試みることが可能である。これらの電力状態から再開すると、ソフトウェアは、コンフィギュレーションリクエストを発行するまで指定された時間（１０ｍｓ、１００ｍｓなど）待機する。これは、レジューム時間に対して有意な影響を有する可能性がある。しかしながら、このような規定された最小リカバリ時間は、ある状況及びデバイスにおいて効果的であるが、他の状況及びデバイスにおいては所望されない可能性がある。
【００３０】
いくつかの実現形態では、オンチップインタフェースは、レジューム時間モジュール１０４を含むことができる。レジューム時間モジュール１０４は、プロセッサ１８２とメモリ１８４とを有することができる。レジューム時間モジュール１０４は、ルートポート、ＤＰ（Ｄｅｓｉｇｎａｔｅｄ  Ｐｏｒｔ）又はＲＣＩＥなどの内部デバイスが電力状態遷移後（例えば、初期的な電力オン、Ｄ３からＤ０への移行など）に第１コンフィギュレーション（ソフトウェアなどに関して）の準備がどの程度すぐにできるか示すデバイス固有のリカバリ時間を通知することを可能にするよう構成可能である。一実施例では、レジューム時間モジュール１０４はさらに、内部デバイスがエンドを所定のリカバリ時間に強制するため、又はソフトウェアによりコンフィギュレーションタスクが実行されるのを開始するため、電力状態遷移を完了又は完了する準備ができると、インタラプトをトリガするためのインタラプト機構（能力記述、インタラプトを可能にするための制御機構など）を有することが可能である。
【００３１】
いくつかの実現形態では、デバイス固有のレジューム時間能力は、１以上の能力レジスタにおいて規定でき、ソフトウェアベースツールを含む１以上の電力管理ツールによりアクセス可能である。一例では、デバイスの数え上げ中（例えば、外部又は内部デバイスを含む１以上のデバイス１８０など）、レジューム時間モジュール１０４は、デバイスのレジューム時間能力にアクセスし、以降の利用のためそれをメモリ１８４に格納してもよい。レジューム時間モジュール１０４はまた、デバイスのインタラプト能力を読み、内部デバイスがコンフィギュレーションアクセスの準備がでくると、インタラプトのトリガ及び認識を可能にするため、ポーリング機構の代わりにインタラプト機構を実装してもよい。例えば、あるポイントでは、内部デバイスは低電力状態に遷移可能である。一実施例では、レジューム時間モジュール１０４は、内部デバイスが低電力状態からフル電力状態に遷移することを決定できる。さらに、レジューム時間モジュール１０４は、メモリ１８４からデバイス１８０のレジューム時間通知値を抽出し、対応する能力構成により内部デバイスにより通知されたメモリ１８４における期間の待機後に第１コンフィギュレーションリクエストを発行してもよい。
【００３２】
他の実施例では、レジューム時間モジュール１０４は、それがデバイス１８０の制御を有するサブシステムに電力を印加することを決定できる。デバイス１８０が低電力状態からイグジットしたときにインタラプトを送信するよう構成される場合、レジューム時間モジュール１０４は、第１コンフィギュレーションアクセスの準備ができていることを通知するインタラプトがデバイス１８０から受信されることを待機してもよい。双方のケースにおいて、レジューム時間モジュールは、第１コンフィギュレーションアクセスによってデバイスにアクセスする前、１００ｍｓの固定的な設定された待機時間を取り除くことができる。レジューム時間モジュール１０４はまた、電力管理制御状態レジスタ（ＰＭＣＳＲ）への書き込み後、第１コンフィギュレーションアクセスによりデバイスにアクセスする前に、ソフトウェアのための固定的な設定された待機時間を取り除くようにしてもよい。後方互換性を維持するため、設定されたリカバリ時間（レガシー１００ｍｓ又は１０ｍｓ（ＰＭＣＳＲライト後のアクセスのため）遅延など）はレジューム時間モジュール１０４により延長されるべきでなく、カスタムレジューム時間能力を利用しないデバイスについてデフォルトとしてサポートできる。上述されるように、オンチップインタフェース１１０及びデバイス１８０は、ＰＣＩｅ、ＭＩＰＩ、ＱＰＩ又は他のプロトコルに準拠したインターコネクトリンクなどのリンク接続を介し通信してもよい。
【００３３】
ＰＣＩｅの主要な目標は、異なるベンダからのデバイス及びコンポーネントが、クライアント（デスクトップ及びモバイル）、サーバ（標準及び企業）及び埋め込み通信デバイスの複数のマーケットセグメントに及ぶオープンアーキテクチャにおいて連携することを可能にすることである。ＰＣＩｅは、広範な将来的な計算及び通信プラットフォームに対して規定されるハイパフォーマンスな汎用的なＩ／Ｏインターコネクトである。それの利用モデル、ロードストアアーキテクチャ及びソフトウェアインタフェースなどのいくつかのＰＣＩ属性がそれの改訂を介し維持される一方、以前のパラレルバス実装はスケーラビリティの高い完全にシリアルなインタフェースと置換された。ＰＣＩｅのより最近のバージョンは、新たなレベルのパフォーマンス及び機能を提供するため、ポイント・ツー・ポイントインターコネクト、スイッチベース技術及びパケット化プロトコルにおける進歩を利用する。電力管理、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）、ホットプラグ／ホットスワップサポート、データインテグリティ及びエラーハンドリングは、ＰＣＩｅによりサポートされる先進的な機能の一部である。
【００３４】
図２を参照して、コンポーネントセットを相互接続するポイント・ツー・ポイントリンクから構成されるファブリックの実施例が示される。システム２００は、コントローラハブ２１５に接続されるシステムメモリ２１０とプロセッサ２０５とを有する。プロセッサ２０５は、マイクロプロセッサ、ホストプロセッサ、埋め込みプロセッサ、コプロセッサ又は他のプロセッサなどの何れかの処理要素を含む。プロセッサ２０５は、フロントサイドバス（ＦＳＢ）２０６を介しコントローラハブ２１５に接続される。一実施例では、ＦＳＢ２０６は、後述されるようなシリアルポイント・ツー・ポイントインターコネクトである。他の実施例では、リンク２０６は、異なるインターコネクト規格に準拠するシリアルな差動インターコネクトアーキテクチャを有する。
【００３５】
システムメモリ２１０は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、不揮発性（ＮＶ）メモリ又はシステム２００のデバイスによりアクセス可能な他のメモリなどの何れかのメモリデバイスを含む。システムメモリ２１０は、メモリインタフェース２１６を介しコントローラハブ２１５に接続される。メモリインタフェースの具体例は、ＤＤＲ（Ｄｏｕｂｌｅ−Ｄａｔａ  Ｒａｔｅ）メモリインタフェース、デュアルチャネルＤＤＲメモリインタフェース及びＤＲＡＭメモリインタフェースを含む。
【００３６】
一実施例では、コントローラハブ２１５は、ＰＣＩｅインターコネクション階層におけるルートハブ、ルートコンプレックス又はルートコントローラである。コントローラハブ２１５の具体例は、チップセット、メモリコントローラハブ（ＭＣＨ）、ノースブリッジ、インターコネクトコントローラハブ（ＩＣＨ）、サウスブリッジ及びルートコントローラ／ハブを含む。しばしば、チップセットという用語は、２つの物理的に分離したコントローラハブ、すなわち、インターコネクトコントローラハブ（ＩＣＨ）に接続されたメモリコントローラハブ（ＭＣＨ）を表す。現在のシステムはしばしばプロセッサ２０５により統合されたＭＣＨを有し、コントローラ２１５は後述されるような同様の方法によりＩ／Ｏデバイスと通信するためのものであることに留意されたい。いくつかの実施例では、ピア・ツー・ピアルーティングは、任意的には、ルートコンプレックス２１５を介しサポートされる。
【００３７】
ここで、コントローラハブ２１５は、シリアルリンク２１９を介しスイッチ／ブリッジ２２０に接続される。インタフェース／ポート２１７，２２１として参照されてもよい入力／出力モジュール２１７，２２１は、コントローラハブ２１５とスイッチ２２０との間の通信を提供するため、レイヤ化プロトコルスタックを有する／実装する。一実施例では、複数のデバイスが、スイッチ２２０に接続可能である。
【００３８】
スイッチ／ブリッジ２２０は、デバイス２２５からコントローラハブ２１５に上流に、すなわち、ルートコンプレックスまで階層を上方に、及びプロセッサ２０５又はシステムメモリ２１０からデバイス２２５に下流に、すなわち、ルートコントローラから階層を下方にパッケージ／メッセージをルーティングする。一実施例では、スイッチ２２０は、複数のバーチャルＰＣＩ−ｔｏ−ＰＣＩブリッジデバイスの論理アセンブリとして参照される。デバイス２２５は、Ｉ／Ｏデバイス、ネットワークインタフェースコントローラ（ＮＩＣ）、アドインカード、オーディオプロセッサ、ネットワークプロセッサ、ハードドライブ、ストレージデバイス、ＣＤ／ＤＶＤ  ＲＯＭ、モニタ、プリンタ、マウス、キーボード、ルータ、ポータブルストレージデバイス、ファイアワイヤデバイス、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）デバイス、スキャナ及び他の入出力デバイスなどの電子システムに接続される内部又は外部デバイス又はコンポーネントを含む。しばしばＰＣＩｅにおいて、、デバイスなどの用語はエンドポイントして参照される。具体的に図示しないが、デバイス２２５は、レガシー又は他のバージョンのＰＣＩデバイスをサポートするためのＰＣＩｅからＰＣＩ／ＰＣＩ−Ｘへのブリッジを有してもよい。ＰＣＩｅのエンドポイントデバイスは、しばしばレガシー、ＰＣＩｅ又はルートコンプレックスが搭載されたエンドポイントとして分類される。
【００３９】
グラフィックアクセラレータ２３０がまた、シリアルリンク２３２を介しコントローラハブ２１５に接続される。一実施例では、グラフィックアクセラレータ２３０は、ＩＣＨに接続されるＭＣＨに接続される。スイッチ２２０及びＩ／Ｏデバイス２２５は、その後にＩＣＨに接続される。Ｉ／Ｏモジュール２３１，２１８はまた、グラフィックアクセラレータ２３０とコントローラハブ２１５との間で通信するため、レイヤ化プロトコルスタックを実装する。上述したＭＣＨと同様に、グラフィックコントローラ又はグラフィックアクセラレータ２３０自体は、プロセッサ２０５に統合されてもよい。さらに、いくつかの実現形態では、１以上の内部デバイス（２１１、２１２、２１３など）が、例えば、チップセット、コントローラハブ、ルートコンプレックスなどに備えることが可能である。例えば、ＲＣＩＥ（Ｒｏｏｔ  Ｃｏｍｐｌｅｘ  Ｉｎｔｅｇｒａｔｅｄ  Ｅｎｄｐｏｉｎｔ）、ダウンストリームポート若しくはルートポート（２１７など）、内部ＰＣＩデバイス及び他の内部デバイスを備えることができる。ここに説明される機能は、外部デバイスと共に内部デバイスに適用可能である。
【００４０】
図３を参照して、レイヤ化プロトコルスタックの実施例が示される。レイヤ化プロトコルスタック３００は、クイックパスインターコネクト（ＱＰＩ）スタック、ＰＣＩｅスタック、次世代ハイパフォーマンス計算インターコネクトスタック又は他のレイヤ化スタックなどのレイヤ化通信スタックの何れかの形態を含む。図２〜５を参照して以降の説明はＰＣＩｅスタックに関するものであるが、同じコンセプトが他のインターコネクトスタックに適用されてもよい。一実施例では、プロトコルスタック３００は、トランザクションレイヤ３０５、リンクレイヤ３１０及び物理レイヤ３２０を含むＰＣＩｅプロトコルスタックである。図２のインタフェース２１７、２１８、２２１、２２２、２２６及び２３１などのインタフェースは、通信プロトコルスタック３００として表されてもよい。通信プロトコルスタックとしての表現はまた、プロトコルスタックを実装／内蔵するモジュール又はインタフェースとして参照されてもよい。
【００４１】
ＰＣＩｅは、コンポーネント間で情報を通信するためパケットを利用する。パケットは、送信元コンポーネントから受信先コンポーネントに情報を搬送するため、トランザクションレイヤ３０５及びデータリンクレイヤ３１０において構成される。送信されたパケットはその他のレイヤを通過するとき、これらのレイヤにおいてパケットを処理するのに必要な追加的情報により拡張される。受信サイドでは、逆の処理が行われ、パケットはその物理レイヤ３２０の表現からデータリンクレイヤ３１０の表現に変換され、最終的には（トランザクションレイヤパケットのため）受信先デバイスのトランザクションレイヤ３０５により処理可能な形式に変換される。
【００４２】
トランザクションレイヤ
一実施例では、トランザクションレイヤ３０５は、データリンクレイヤ３１０及び物理レイヤ３２０などのインターコネクトアーキテクチャとデバイスの処理コアとの間のインタフェースを提供する。これに関して、トランザクションレイヤ３０５の主要な役割は、パケットのアセンブリ及びデアセンブリである（すなわち、トランザクションレイヤパケット又はＴＬＰ）。トランザクションレイヤ３０５は、典型的には、ＴＬＰのためのクレジットベースフロー制御を管理する。ＰＣＩｅは、ターゲットデバイスがレスポンスのためのデータを収集しながら、リンクが他のトラフィックを搬送することを可能にするため、分離されたトランザクション、すなわち、時間により分離されたリクエスト及びレスポンスによるトランザクションを実現する。
【００４３】
さらに、ＰＣＩｅは、クレジットベースフロー制御を利用する。このスキームでは、デバイスは、トランザクションレイヤ３０５における各受信バッファの初期的なクレジット量を通知する。図２のコントローラハブ１１５などのリンクの反対のエンドの外部デバイスは、各ＴＬＰにより消費されるクレジット数をカウントする。トランザクションがクレジットリミットを超過しない場合、当該トランザクションは送信されてもよい。レスポンスを受信すると、クレジット量が復元される。クレジットスキームの効果は、クレジットリミットに直面しない場合、クレジットリターンの遅延がパフォーマンスに影響を与えないことである。
【００４４】
一実施例では、４つのトランザクションアドレススペースは、コンフィギュレーションアドレススペース、メモリアドレススペース、入出力アドレススペース及びメッセージアドレススペースを含む。メモリスペーストランザクションは、メモリにマッピングされた位置との間でデータを伝送するため、リードリクエスト及びライトリクエストの１以上を含む。一実施例では、メモリスペーストランザクションは、３２ビットアドレスなどのショートアドレスフォーマット又は６４ビットアドレスなどのロングアドレスフォーマットなどの２つの異なるアドレスフォーマットを利用することができる。コンフィギュレーションスペーストランザクションは、ＰＣＩｅデバイスのコンフィギュレーションスペースにアクセスするのに利用される。コンフィギュレーションスペースに対するトランザクションは、リードリクエストとライトリクエストとを含む。メッセージスペーストランザクション（又は単にメッセージ）は、ＰＣＩｅエージェントの間のインバンド通信をサポートするため規定される。従って、一実施例では、トランザクションレイヤ３０５は、パケットヘッダ／ペイロード３０６を構成する。現在のパケットヘッダ／ペイロードのためのフォーマットは、ＰＣＩｅ規格のウェブサイトにおけるＰＣＩｅ規格において見つけられる。
【００４５】
図４を参照して、ＰＣＩｅトランザクション記述子の実施例が示される。一実施例では、トランザクション記述子４００は、トランザクション情報を搬送するための機構である。これに関して、トランザクション記述子４００は、システムにおけるトランザクションの特定をサポートする。他の可能性のある利用は、デフォルトトランザクションオーダリングの修正とトランザクションとチャネルとの関連付けをトラッキングすることを含む。
【００４６】
トランザクション記述子４００は、グローバル識別子フィールド４０２、属性フィールド４０４及びチャネル識別子フィールド４０６を含む。図示された例では、グローバル識別子フィールド４０２は、ローカルトランザクション識別子フィールド４０８及びソース識別子フィールド４１０を含むように示される。一実施例では、グローバルトランザクション識別子４０２は、すべての発行済みリクエストに対して一意的である。
【００４７】
一実現形態によると、ローカルトランザクション識別子フィールド４０８は、要求元のエージェントにより生成されるフィールドであり、それは、当該要求元のエージェントに対して完了を要求する全ての発行済みのリクエストに対して一意的である。さらに、本例では、ソース識別子４１０は、ＰＣＩｅ階層内で要求元のエージェントを一意的に特定する。従って、ソースＩＤ４１０と共に、ローカルトランザクション識別子４０８のフィールドは、階層ドメイン内のトランザクションのグローバルな特定を提供する。
【００４８】
属性フィールド４０４は、トランザクションの特性及び関係を指定する。これに関して、属性フィールド４０４は、トランザクションのデフォルト処理の変更を可能にする追加的な情報を提供するため利用可能である。一実施例では、属性フィールド４０４は、プライオリティフィールド４１２、リザーブフィールド４１４、オーダリングフィールド４１６及び非スヌープフィールド４１８を有する。ここで、プライオリティサブフィールド４１２は、トランザクションにプライオリティを割り当てるのに発信元により変更されてもよい。リザーブ属性フィールド４１４は、以降における又はベンダにより規定された利用のため確保される。プライオリティ又はセキュリティ属性を利用した可能な利用モデルは、リザーブ属性フィールドを用いて実現されてもよい。
【００４９】
本例では、オーダリング属性フィールド４１６は、デフォルトオーダリングルールを変更可能なオーダリングのタイプを伝える任意的情報を供給するのに利用される。一実現形態によると、“０”のオーダリング属性は、デフォルトオーダリングルールが適用されることを示し、“１”のオーダリング属性は、ライトが同一方向にライトをパスし、リード完了が同一方向にライトをパスすることが可能な緩和されたオーダリングを示す。スヌープ属性フィールド４１８は、トランザクションがスヌープされるか判断するのに利用される。図示されるように、チャネルＩＤフィールド４０６は、トランザクションが関連付けされるチャネルを特定する。
【００５０】
リンクレイヤ
データリンクレイヤ３１０とも呼ばれるリンクレイヤ３１０は、トランザクションレイヤ３０５と物理レイヤ３２０との間の中間ステージとして機能する。一実施例では、データリンクレイヤ３１０の役割は、２つのコンポーネントの間でトランザクションレイヤパケット（ＴＬＰ）を交換するための信頼できる機構を提供する。データリンクレイヤ３１０の一方のサイドは、トランザクションレイヤ３０５により構成されたＴＬＰを受理し、パケットシーケンス識別子３１１、すなわち、識別番号又はパケット番号を適用し、誤り検出コード、すなわち、ＣＲＣ３１２を計算及び適用し、物理レイヤを介し外部デバイスに送信するため変更されたＴＬＰを物理レイヤ３２０に送信する。
【００５１】
物理レイヤ
一実施例では、物理レイヤ３２０は、外部デバイスにパケットを物理的に送信するため、論理サブブロック３２１及び電子サブブロック３２２を有する。ここで、論理サブブロック３２１は、物理レイヤ３２１の“デジタル”機能のためのものである。これに関して、論理サブブロックは、物理サブブロック３２２による送信用の出力情報を準備するための送信セクションと、リンクレイヤ３１０に渡す前に受信した情報を特定及び準備するための受信セクションとを有する。
【００５２】
物理ブロック３２２は、送信機及び受信機を有する。送信機には論理サブブロック３２１によりシンボルが供給され、送信機は、シリアル化して外部デバイスに送信する。受信機には、外部デバイスからシリアル化されたシンボルが供給され、受信信号をビットストリームに変換する。ビットストリームは、シリアル化解除され、論理サブブロック３２１に供給される。一実施例では、１０ビットシンボルが送受信される場合、８ｂ／１０ｂ送信コードが利用される。ここで、特別なシンボルは、フレーム３２３によりパケットをフレーム化するのに利用される。さらに、一例では、受信機はまた、入力されたシリアルストリームから復元されたシンボルクロックを提供する。
【００５３】
上述されるように、トランザクションレイヤ３０５、リンクレイヤ３１０及び物理レイヤ３２０がＰＣＩｅプロトコルスタックの特定の実施例を参照して説明されるが、レイヤ化プロトコルスタックはこれに限定されるものでない。実際、何れかのレイヤ化プロトコルが包含／実装されてもよい。一例として、レイヤ化プロトコルとして表されるポート／インタフェースは、（１）パケットを構成するための第１レイヤ、すなわち、トランザクションレイヤ、パケットをシーケンス化するための第２レイヤ、すなわち、リンクレイヤ、及びパケットを送信するための第３レイヤ、すなわち、物理レイヤを含む。具体例として、ＣＳＩ（Ｃｏｍｍｏｎ  Ｓｔａｎｄａｒｄ  Ｉｎｔｅｒｆａｃｅ）レイヤ化プロトコルが利用される。
【００５４】
次に図５を参照して、ＰＣＩｅシリアルポイント・ツー・ポイントファブリックの実施例が説明される。ＰＣＩｅシリアルポイント・ツー・ポイントリンクの実施例が示されるが、シリアルポイント・ツー・ポイントリンクはこれに限定されず、シリアルデータを送信する何れかの送信パスを含む。図示された実施例では、ベーシックＰＣＩｅリンクは、２つの低電圧差動駆動される信号ペア、すなわち、送信ペア５０６／５１１と受信ペア５１２／５０７とを有する。従って、デバイス５０５は、データをデバイス５１０に送信するための送信ロジック５０６と、データをデバイス５１０から受信するための受信ロジック５０７とを有する。すなわち、２つの送信パス、すなわち、パス５１６，５１７と、２つの受信パス、すなわち、パス５１８，５１９とがＰＣＩｅリンクに含まれる。
【００５５】
送信パスは、送信ライン、銅線、光ライン、無線通信チャネル、赤外線通信リンク又は他の通信パスなどのデータを送信するための何れかのパスを表す。デバイス５０５，５１０などの２つのデバイスの間の接続は、リンク４１５などのリンクとして参照される。リンクは１つのレーンをサポートし、各レーンは差動信号パスのセットを表す（送信用の１つのパスと受信用の１つのパス）。帯域幅をスケーリングするため、リンクはｘＮにより示される複数のレーンを集約するものであってもよく、Ｎは、１，２，４，８，１２，１６，３２，６４又はさらに広い何れかのサポートされたリンク幅である。
【００５６】
差動ペアは、差動信号を送信するためのライン４１６，４１７などの２つの送信パスを表す。一例として、ライン４１６が低電圧レベルから高電圧レベルに、すなわち、ライジングエッジに切り替わるとき、ライン４１７は、高い論理レベルから低い論理レベルに、すなわち、フォーリングエッジに駆動する。差動信号は、より良好な信号インテグリティ、すなわち、クロスカップリング、電圧オーバシュート／アンダーシュート、リンギングなどのより良好な電気特性を示しうる。これは、より良好なタイミングウィンドウを可能にし、より高速な送信周波数を可能にする。
【００５７】
上述されるように、ＰＣＩｅなどの各種プラットフォームは、複数の電力管理状態をサポート可能である。図６は、一例となる電力管理状態（６０５，６１０，６１５，６２０，６２５，６３０など）とこれらの状態間の遷移とを示す一例となる状態遷移図６００を示す。図６の例では、４つの主要な電力状態がサポートされる。例えば、Ｄ０状態（６０５，６２０など）は１つの極限において最大電力又はアクティブ状態とすることが可能であり、Ｄ３状態（６１０，６１５など）は電力“オフ”状態を提供する。状態Ｄ１（６２５など）及びＤ２（６３０など）は、例えば、デバイスのスリープ又はライトスリープ状態などを表す中間的な電力状態を提供することができる。一例では、Ｖｃｃがデバイスを完全に電力オフするため取り除かれるＤ３コールド状態（６１５など）と区別するため、Ｖｃｃがデバイスに依然として印加されるＤ３ホット状態（６１０など）が提供可能である。
【００５８】
図６に示されるように、各種状態（６０５，６１０，６１５，６２０，６２５，６３０など）間の遷移が規定可能である。例えば、一実現形態では、状態Ｄ３のホットのデバイスは、例えば、Ｄ０状態コマンドを対応する電力管理制御状態レジスタに書き込むことなどによって、電力アップに応答してまずデバイスをＤ０非初期化６２０の状態にすることによってＤ０に戻すことができる。他の例では、デバイス状態Ｄ３コールドにおいて、ファンクションはＤ３コールドからＤ０に戻すことができる（Ｄ３コールドからの唯一の正当な状態遷移）。いくつかの具体例では、例えば、それの対応するコンフィギュレーションスペースを含むファンクションのフル又はパーシャル再初期化を実行するため、電力管理状態遷移に関してソフトウェアが呼び出し可能である。さらに、上述されたように、最小リカバリ時間要求が、いくつかの例において（システムソフトウェアにより実施されるなど）、ファンクションがＤ３からＤ０にプログラムされたときと、ファンクションがアクセス（コンフィギュレーションアクセスを含む）されたときとの間で規定できる。これは、自らをリセットし、電力オン状態に移行させるための当該ファンクションの時間を許容することができる。しかしながら、上述されたように、このようなデフォルト最小リカバリ時間は、不要な遅延を特定のデバイスのレジューム時間に導入する可能性がある。従って、いくつかの実現形態では、レジューム時間能力は、デバイスが代わりに設定された最小リカバリ時間より（短い又は長い）デバイス固有のリカバリ時間を通知することを可能にするため設けることができる。さらに、デバイスが他の可能な具体例のうち設定された（又はいくつかの実現形態では、デバイスにより通知された）最小リカバリ時間を決定する前に、コンフィギュレーションアクセスをトリガするためのインタラプトを開始することを可能にするため備えることができる。
【００５９】
図７に戻って、簡単化されたフロー図７００が示される。オペレーティングシステムの電力管理ツールなどのソフトウェアコントローラは、チップセットの内部デバイス又はＳＯＣなどの特定のデバイスがフル電力に遷移し、デバイス電力オンし（７１０）、低電力状態又は無電力状態からアクティブ状態に遷移することを開始する準備をすることができる（例えば、デバイスを用いて実行される特定のファンクションなどに関して）。ポーリング（７１０など）は、対応する電力管理レジスタ、拡張された能力構造又は他の構造若しくはレジスタにおいてデバイスに対して規定される能力に基づき行うことができる。例えば、コントローラは、デバイスのレジューム時間を特定し（例えば、設定された時間又は通知された時間遅延など）、レジューム時間が経過したことを特定すると、電力状態遷移の完了をトリガするため（７２５）、コンフィギュレーションライトを発信することが可能である。あるいは、デバイスは、能力構造又はレジスタなどにおいて規定されるインタラプト能力を有することが可能であり、コントローラは、当該能力を特定し、デバイスがアクティブ状態に入り、コンフィギュレーションアクセスを受信する準備ができたことを示すデバイスからのインタラプト７２０を待機することが可能である。
【００６０】
図８に戻って、ＲＣＩＥ、ルートポート、ダウンストリームポート又は他のデバイスなどのデバイスが１以上のレジューム時間能力をサポートしているか判断するためのデバイスエニュミレーション処理８０５が、いくつかの実現形態において実行可能である。図８の具体例では、エニュミレーション（ｅｎｕｍｅｒａｔｉｏｎ）処理は、デバイスに対応する能力構造を準備し（８１０）、カスタマイズされたレジューム又はリカバリ時間が通知及びサポートされているか判断する（８１５）ことが可能である。エニュミレーション処理８０５は、いくつかの例では、デバイスのリカバリを迅速化することを支援するため、デバイスのインタラプト能力がまた規定されているか判断できる。レジューム時間がサポートされていると判断された場合（８２０など）、（能力構造に指定されるなど）デバイスに固有の通知されたリカバリ値が特定できる（８２５）。その後、通知されたリカバリ値は、デバイスの電力状態遷移に関連してコンフィギュレーションアクセスを開始する際に、ソフトウェアコントローラによって従われる。あるいは、特別なレジューム時間がデバイスによりサポートされていないと判断された場合（８３０など）、ソフトウェアコントローラは、アーキテクチャを介し規定された標準的な最小リカバリ時間（１０ｍｓ、１００ｍｓなどの固定的な最小リカバリ時間など）を含む設定されたプロトコルにデフォルトのものとすることができる。
【００６１】
図９は、少なくとも１つの実施例による処理セット９００を示すフロー図である。図１のレジューム時間モジュール１０４などの装置又はその一部が、処理セット９００を利用してもよい。当該装置は、図９の処理を実行するための手段を有してもよい。一実施例では、装置は、プロセッサにより実行されると、当該装置に処理セット９００を実行させるよう構成されたコンピュータコードを有する図１のメモリ１８４及び／又はメモリ１７５などのメモリを有することによって変換される。
【００６２】
ブロック９０５において、デバイスは、低電力状態にあると決定できる（対応するレジスタなどから）。低電力状態からアクティブ状態へのデバイスの遷移は、例えば、少なくとも部分的にソフトウェアに基づくコントローラなどによって、ブロック９１０において開始できる。固定的な最小リカバリ時間は、インターコネクトプロトコルによる設定されたリカバリ時間などのシステム内の低電力状態からアクティブ状態への遷移のついて規定できる。デバイスの能力は、ブロック９１５においてデバイスの電力管理に対応して特定できる。当該能力は、デバイスについてサポートされるインタラプト機構と、固定的な最小リカバリ時間の代わりにデバイスにおいて適用されるべき通知された他のリカバリ時間とを含むことができる。いくつかのケースでは、双方の能力がデバイスについて有効とすることができる。デバイスのアクティブ状態への遷移は、ブロック９２０において、例えば、特定された能力に対応するトリガにより開始されるデバイスのコンフィギュレーションを介し完了させることができる。例えば、通知されたリカバリ時間が適用可能であるか、又は可能な具体例及び実現形態のうち固定的な最小リカバリ時間の経過前に、デバイスのアクティブ状態への遷移の完了をトリガするため受信可能である。
【００６３】
上述された原理は、各種インターコネクトプラットフォームを含む何れか様々な異なるアーキテクチャに適用可能である。さらに、上記原理は、他の例のうちマルチプロセッササーバ、パーソナルコンピュータ、モバイル計算装置（スマートフォン、タブレットなど）を含む様々な異なるデバイスにおいて適用可能である。一例として、図１０に戻って、ＳＯＣ設計の実施例が示される。特定の例示的な具体例として、ＳＯＣ１０００はユーザ装置（ＵＥ）を有するコンピュータに含めることができる。一実施例では、ＵＥは、携帯電話、スマートフォン、タブレット、ウルトラシンノートブック、ブロードバンドアダプタを備えたノートブック又は他の何れか同様の通信デバイスなど、エンドユーザにより通信するのに利用される何れかのデバイスを表す。しばしば、ＵＥは、ＧＳＭ（登録商標）ネットワークの移動局（ＭＳ）に本来的に対応する基地局又はノードに接続する。
【００６４】
ここで、ＳＯＣ１０００は、２つのコア１００６，１００７を有する。上記説明と同様に、コア１００６，１００７は、Ｉｎｔｅｌ（登録商標）Ａｒｃｈｉｔｅｃｔｕｒｅ  ＣｏｒｅＴＭベースプロセッサ、Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅ，Ｉｎｃ．（ＡＭＤ）プロセッサ、ＭＩＰＳベースプロセッサ、ＡＲＭベースプロセッサ又はこれらのカスタマと共に、それらのライセンス又はアドプタなどのＩｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅに準拠してもよい。コア１００６，１００７は、システム１０００の他のパーツと通信するため、バスインタフェースユニット１００９及びＬ２キャッシュ１０１２に関連付けされるキャッシュコントロール１００８に接続される。インターコネクト１０１０は、説明される発明の１以上の態様を実現可能な上述されたＩＯＳＦ、ＡＭＢＡ又は他のインターコネクトなどのオンチップインターコネクトを含む。
【００６５】
インタフェース１０１０は、ＳＯＣ１０００を初期化及びブートするためコア１００６，１００７により実行されるブートコードを保持するためのＳＩＭカードのブートＲＯＭ１０３５とインタフェースをとるＳＩＭ（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）１０３０、外部メモリ（ＤＲＡＭ１０６０など）とインタフェースをとるためのＳＤＲＡＭコントローラ１０４０、不揮発メモリ（フラッシュ１０６５など）とインタフェースをとるためのフラッシュコントローラ１０４５、周辺装置とインタフェースをとるための周辺コントロール１０５０（ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）など）、入力を表示及び受信するためのビデオコーデック１０２０及びビデオインタフェース１０２５（タッチ対応入力など）、グラフィック関連計算を実行するＧＰＵ１０１５などの他のコンポーネントとの通信チャネルを提供する。これらのインタフェースの何れもここに説明された本発明の態様を含むものであってもよい。
【００６６】
さらに、システムは、ブルートゥースモジュール１０７０、３Ｇモデム１０７５、ＧＰＳ１０８５及びＷｉＦｉ１０８５などの通信用の周辺装置を示す。上述されるように、ＵＥは、通信用のラジオを有することに留意されたい。この結果、これらの周辺通信モジュールの全てが必要であるとは限らない。しかしながら、ＵＥのある形態では、外部通信用のラジオが含まれる。
【００６７】
上述された装置、方法及びシステムは、上述されるような何れかの電子デバイス又はシステムにより実現されてもよいことに留意されたい。具体例として、以下の図面はここに説明される本発明を利用するための一例となるシステムを提供する。以下のシステムがより詳細に説明されるとき、上記説明から複数の異なるインターコネクトが開示、説明及び再訪される。また、容易に明らかなように、上述された進歩はこれらのインターコネクト、ファブリック又はアーキテクチャの何れかに適用されてもよい。
【００６８】
本発明が限定数の実施例に関して説明されたが、当業者は、そこから多数の変更及び変形を理解するであろう。添付した請求項は本発明の真の趣旨及び範囲内に属するものとしてこれら全ての変更及び変形をカバーすることが意図される。
【００６９】
設計は、作成からシミュレーションを経て製造までの各種段階を経る。設計を表すデータは、複数の方法により当該設計を表すものであってもよい。まず、シミュレーションにおいて有用であるように、ハードウェアは、ハードウェア記述言語又は他の機能記述言語を用いて表現されてもよい。さらに、ロジック及び／又はトランジスタゲートを備えた回路レベルモデルが、設計プロセスのいくつかの段階において生成されてもよい。さらに、ある段階における大部分の設計は、ハードウェアモデルにおける各種デバイスの物理的配置を表すデータのレベルに到達する。従来の半導体製造技術が利用される場合、ハードウェアモデルを表すデータは、集積回路を生成するため利用されるマスクのための異なるマスクレイヤ上の各種機能の有無を指定するデータであってもよい。当該設計の何れかの表現において、データは機械可読媒体の何れかの形式により格納されてもよい。メモリ又はディスクなどの磁気若しくは光ストレージは、情報を伝送するため変調又は生成される光波又は電波を介し伝送される情報を格納するための機械可読媒体であってもよい。コード又は設計を示す又は搬送する電気的な搬送波が送信されるとき、電気信号のコピー、バッファリング又は再送が実行される程度まで、新たなコピーが生成される。従って、通信プロバイダ又はネットワークプロバイダは、本発明の実施例の技術を実現する搬送波に符号化された情報などの少なくとも一時的な有形な機械可読媒体を有する物に格納されてもよい。
【００７０】
ここで用いられるモジュールは、ハードウェア、ソフトウェア及び／又はファームウェアの何れかの組み合わせを表す。一例として、モジュールは、マイクロコントローラにより実行されるよう構成されるコードを格納するための非一時的媒体に関連付けされるマイクロコントローラなどのハードウェアを含む。従って、一実施例では、モジュールという参照は、非一時的媒体に保持されるコードを認識及び／又は実行するよう特に構成されるハードウェアを表す。さらに、他の実施例では、モジュールの使用は、所定の処理を実行するためマイクロコントローラにより実行されるよう特に構成されるコードを含む非一時的媒体を表す。推察できるように、さらなる他の実施例では、モジュールという用語（本例では）は、マイクロコントローラと非一時的媒体との組み合わせを表す。しばしば、一般に分離するよう示されるモジュールの境界は、可変的であり、重複する可能性がある。例えば、第１及び第２モジュールは、いくつかの独立したハードウェア、ソフトウェア又はファームウェアを維持しながら、ハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせを共有してもよい。一実施例では、ロジックという用語の使用は、トランジスタ、レジスタ又はプログラマブルロジックデバイスなどの他のハードウェアを含む。
【００７１】
一実施例では、“〜するため”又は“〜するよう構成される”という用語の使用は、指定された又は決定されたタスクを実行するための装置、ハードウェア、ロジック又は要素を構成、組み立て、製造、販売の申し出、輸入及び／又は設計することを表す。本例では、動作していない装置又はその要素は、それが指定されたタスクを実行するよう設計、接続及び／又は相互接続される場合、指定されたタスクを実行するよう依然として“構成される”。純粋に例示的な具体例として、論理ゲートは、動作中に０又は１を提供する。クロックにイネーブル信号を提供するよう構成される論理ゲートは、１又は０を提供するすべての論理ゲートを含むものでない。代わり、論理ゲートは、動作中に１又は０の出力がクロックをイネーブルにするという方法により接続されるものである。再び、“〜するよう構成される”という用語の使用は処理を要求しないが、代わりに装置、ハードウェア及び／又は要素の潜在的な状態に着目し、潜在的な状態では、装置、ハードウェア及び／又は要素は、当該装置、ハードウェア及び／又は要素が動作しているとき、特定のタスクを実行するよう設計される。
【００７２】
さらに、一実施例では、“〜できる”及び／又は“〜するよう動作可能である”という用語の使用は、指定された方法により装置、ロジック、ハードウェア及び／又は要素の使用を可能にするように設計された装置、ロジック、ハードウェア及び／又は要素を表す。上述されるように、一実施例では、“〜できる”又は“〜するよう動作可能である”の使用は、装置、ロジック、ハードウェア及び／又は要素が動作していないが、指定された方法により装置の使用を可能にするように設計される装置、ロジック、ハードウェア及び／又は要素の潜在的な状態を表す。
【００７３】
ここで使用される値とは、数、状態、論理状態又はバイナリ論理状態の何れか既知の表現を含む。しばしば、論理レベル又は論理値の使用はまた、１及び０として参照され、単にバイナリ論理状態を表す。例えば、１は高論理レベルを表し、０は低論理レベルを表す。一実施例では、トランジスタやフラッシュセルなどのストレージセルは、単一の論理値又は複数の論理値を保持することが可能であってもよい。しかしながら、コンピュータシステムにおける他の値の表現が使用された。例えば、１０進数の１０はまた、１０１０のバイナリ値及び１６進文字Ａとして表現されてもよい。従って、値はコンピュータシステムに保持可能な情報の何れかの表現を含む。
【００７４】
さらに、状態は値又は値の一部により表現されてもよい。一例として、論理１などの第１の値はデフォルト又は初期状態を表し、論理０などの第２の値は非デフォルト状態を表してもよい。さらに、一実施例では、リセット及び設定という用語はそれぞれ、デフォルト及び更新値又は状態を表す。例えば、デフォルト値は、高論理値、すなわち、リセットを含み、更新値は、低論理値、すなわち、設定を含む。何れかの値の組み合わせは任意数の状態を表すのに利用されてもよいことに留意されたい。
【００７５】
上述された方法、ハードウェア、ソフトウェア、ファームウェア又はコードの実施例は、処理要素により実行可能な機械アクセス可能、機械可読、コンピュータアクセス可能又はコンピュータ可読媒体に格納される命令又はコードを介し実現されてもよい。非一時的機械アクセス可能／可読媒体は、コンピュータ又は電子システムなどの機械により可読な形態による情報を提供（すなわち、格納及び／又は送信）する何れかの機構を含む。例えば、非一時的機械アクセス可能媒体は、スタティックＲＡＭ（ＳＲＡＭ）又はダイナミックＲＡＭ（ＤＲＡＭ）などのＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ、磁気若しくは光記憶媒体、フラッシュメモリデバイス、電子ストレージデバイス、光ストレージデバイス、音響ストレージデバイス、そこから情報を受信する非一時的媒体と区別されるべき一時的（伝搬）信号（搬送波、赤外線信号、デジタル信号など）から受信される情報を保持する他の形態のストレージデバイスを含む。
【００７６】
本発明の実施例を実行するようロジックをプログラムするのに利用される命令は、ＤＲＡＭ、キャッシュ、フラッシュメモリ又は他のストレージなどのシステムのメモリ内に格納されてもよい。さらに、命令はネットワークを介し又は他のコンピュータ可読媒体により配布可能である。従って、機械可読媒体は、機械（コンピュータなど）により可読な形態により情報を格納又は送信するための何れかの機構を含むが、フロッピー（登録商標）ディスケット、光ディスク、ＣＤ、ＣＤ−ＲＯＭ、光磁気ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気若しくは光カード、フラッシュメモリ、又は電気、光、音響若しくは他の形態の伝搬信号（搬送波、赤外線信号、デジタル信号など）を介しインターネットによる情報の伝送に利用される有形な機械可読ストレージに限定されるものでない。従って、コンピュータ可読媒体は、機械（コンピュータなど）により可読な形態により電子命令又は情報を格納又は送信するのに適した何れかのタイプの有形な機械可読媒体を含む。
【００７７】
以下の具体例は、本明細書による実施例に関する。１以上の実施例は、デバイスが低電力状態にあることを決定し、低電力状態からアクティブ状態への遷移について固定的な最小のリカバリ時間が規定される場合、低電力状態からアクティブ状態へのデバイスの遷移を開始し、低電力状態からアクティブ状態へのデバイスの遷移に対応するデバイスの能力を特定し、遷移が固定的な最小のリカバリ時間の経過前に完了されるべきである場合、当該能力に少なくとも部分的に基づき低電力状態からアクティブ状態へのデバイスの遷移を完了させるための装置、システム、機械可読ストレージ、機械可読媒体及び方法を提供するものであってもよい。
【００７８】
少なくとも一例では、当該能力はインタラプト能力を含み、インタラプトは、デバイスが遷移を完了させる準備ができているという通知である場合、デバイスから受信されるべきである。デバイスは、インタラプトについてモニタリング可能である。
【００７９】
１以上の具体例はさらに、インタラプトが規定されたリカバリ時間前に受信されない場合、デバイスについて規定されたリカバリ時間に従って完了されるべきであることを提供することができる。
【００８０】
少なくとも一例では、規定されたリカバリ時間は、固定的な最小リカバリ時間を含む。規定されたリカバリ時間は、デバイスに固有の通知されたリカバリ時間を含むことが可能である。
【００８１】
少なくとも一例では、当該能力は、デバイスに対して通知されたリカバリ時間を含み、通知されたリカバリ時間は、固定的な最小リカバリ時間より短い。
【００８２】
少なくとも一例では、通知されたリカバリ時間は、固定的な最小リカバリ時間の代わりに、低電力状態からアクティブ状態へのデバイスの遷移に適用可能である。
【００８３】
少なくとも一例では、固定的な最小リカバリ時間は、低電力状態からアクティブ状態への他のデバイスの遷移において当該他のデバイスに適用可能である。
【００８４】
少なくとも一例では、デバイスは、ＰＣＩｅに準拠したデバイスを含む。低電力状態はＤ３状態を含み、アクティブ状態はＤ０状態を含む。
【００８５】
少なくとも一例では、低電力状態からアクティブ状態へのデバイスの遷移の完了は、デバイスにコンフィギュレーションアクセスリクエストを送信することを含む。
【００８６】
少なくとも一例では、デバイスは、ルートポート、ダウンストリームポート又はルートコンプレックスインテグレーテッドエンドポイント（ＲＣＩＥ）の少なくとも１つを含む。
【００８７】
１以上の具体例はさらに、少なくとも１つのデバイスの電力管理能力を規定する電力管理能力構造を格納する機械可読媒体と、電力管理能力構造からデバイスの特定の能力を特定し、低電力状態からアクティブ状態への遷移に対して規定された固定的な最小リカバリ時間の経過前に遷移が完了されるべきである場合、特定の能力に少なくとも部分的に基づき低電力状態からアクティブ状態へのデバイスの遷移を完了させる電力管理コントローラとを提供することが可能である。
【００８８】
少なくとも一例では、電力管理能力構造は、デバイスについて他のリカバリ時間が通知されているか規定する。
【００８９】
少なくとも一例では、電力管理能力構造は、固定的な最小リカバリ時間より短いデバイスの他のリカバリ時間を規定する。
【００９０】
少なくとも一例では、電力管理能力構造は、デバイスによってインタラプトがサポートされているか規定し、低電力状態からアクティブ状態へのデバイスの遷移が、デバイスからのインタラプトの受信に基づき完了される。
【００９１】
少なくとも一例では、デバイスは、電力管理能力構造がデバイスがインタラプトをサポートしていることを示す場合、インタラプトについてモニタリングされる。
【００９２】
少なくとも一例では、低電力状態からアクティブ状態へのデバイスの遷移の開始は、デバイスに電力を提供することを含む。
【００９３】
本明細書を通じて“一実施例”又は“実施例”の参照は、当該実施例に関して説明された特定の機能、構造又は特性が本発明の少なくとも１つの実施例に含まれることを意味する。従って、本明細書を通じて各所における“一実施例では”又は“実施例では”という表現の出現は、必ずしも全てが同一の実施例を参照しているとは限らない。さらに、特定の特徴、構造又は特性は、１以上の実施例において何れか適切な方法により組み合わされてもよい。
【００９４】
本明細書において、特定の実施例を参照して詳細な説明が与えられた。しかしながら、添付した請求項に提供される本発明の広範な趣旨及び範囲から逸脱することなく、各種変更及び改良が可能であることは明らかであろう。明細書及び図面は、限定的なものでなく例示的なものであるとみなされるべきである。さらに、実施例及び他の一例となる言語の使用は、同一の実施例又は具体例を必ずしも参照するものでなく、同一の実施例と共に異なる実施例を参照してもよい。
【００９５】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００９６】
１００  プロセッサ
１０１，１０２  コア
１１０  オンチップインタフェース
１２０  ＢＴＢ  Ｉ−ＴＬＢ
１２５  復号化モジュール
１３０  アロケータリネーマユニット
１３５  リオーダ／リタイアメントユニット
１４０  スケジューラ実行ユニット
【図１】
2014182801.tif 000003
【図２】
2014182801.tif 000004
【図３】
2014182801.tif 000005
【図４】
2014182801.tif 000006
【図５】
2014182801.tif 000007
【図６】
2014182801.tif 000008
【図７】
2014182801.tif 000009
【図８】
2014182801.tif 000010
【図９】
2014182801.tif 000011
【図１０】
2014182801.tif 000012