(57)【要約】【解決手段】一実施形態においては、本発明は、アクセラレータから割込みを受け取り、割込みに応答してレジューム信号を小さなコアに対して直接的に送信し、大きなコアの実行状態のサブセットを第１の小さなコアに提供し、小さなコアが割込みと関連する要求を処理することができるかどうかを判断し、判断結果が肯定的である場合、要求に対応する動作を小さなコアにおいて実行し、さもなければ、大きなコアの実行状態及びレジューム信号を大きなコアに対して提供する方法を含む。その他の実施形態も記述及び特許請求されている。【選択図】図１
2014528115.tif 000002
【特許請求の範囲】
【請求項１】
命令を実行する第１コアと、
前記第１コアとはヘテロジニアスであり、前記第１コアよりも小さい、命令を実行する第２コアと、
前記第１コア及び前記第２コアが低電力状態にある際に、前記第１コアではなく、前記第２コアを割込みに応答してウェイクアップさせるロジックと
を備える装置。
【請求項２】
前記ロジックは常に、前記第１コアではなく、前記第２コアを前記割込みに応答してウェイクアップさせる、請求項１に記載の装置。
【請求項３】
前記ロジックは、前記割込みに応答して、前記第１コアの実行状態のサブセットを前記第２コアに提供する、請求項１または２に記載の装置。
【請求項４】
前記第２コアは、前記第２コアが前記割込みを処理することができるかどうかを判断し、前記判断の結果が否定的な場合、ウェイクアップ信号を前記第１コアへ送信させる、請求項３に記載の装置。
【請求項５】
前記第２コアが前記割込みを処理することができないという前記判断に応答して、前記ロジックは、前記第２コアから前記第１コアの前記実行状態の前記サブセットを取得し、前記実行状態の前記サブセットを、一時的記憶領域内に保存されている前記第１コアの前記実行状態の残りの部分とマージする、請求項４に記載の装置。
【請求項６】
前記装置は、マルチコアプロセッサを備え、
前記マルチコアプロセッサは、
前記第１コア及び前記第２コアと、
電力制御ユニット（ＰＣＵ）と
を有し、
前記ＰＣＵは、前記ロジックを含み、
前記ロジックは、
ウェイクアップロジックと、
状態転送ロジックと、
未定義処理ロジックと、
割込み履歴記憶領域と
を含む、請求項１から５のいずれか１項に記載の装置。
【請求項７】
前記ロジックに結合されたアクセラレータを更に備え、前記アクセラレータは、タスクを実行し、前記タスクの完了に応じて前記割込みを前記ロジックへ送信する、請求項１から６のいずれか１項に記載の装置。
【請求項８】
前記第２コアは、前記割込みがデータ移動動作に対する要求を有する際に、前記割込みを処理する、請求項７に記載の装置。
【請求項９】
前記第２コアは、前記割込みがベクトル演算に対する要求を有する際に、前記第１コアが前記割込みを処理できるようにするために、ウェイクアップ信号を第１コアへ送信させる、請求項７または８に記載の装置。
【請求項１０】
前記ロジックは、前記第２コアから未定義命令障害を受け取り、前記第２コアが前記ベクトル演算を処理することができないと判断し、前記第２コアから実行状態を取得し、前記実行状態を、一時的な記憶領域内に保存されている前記第１コアの実行状態のうち少なくとも一部分とマージし、マージされた前記実行状態を前記第１コアへ送信させる、請求項９に記載の装置。
【請求項１１】
前記ロジックは、複数の割込みを分析し、前記複数の割込みのうち過半数が前記第１コアによって処理されることを要する場合、前記ロジックは、前記割込みに応答して前記第２コアをウェイクアップさせず、その代わりに、前記第１コアをウェイクアップさせる、請求項１から１０のいずれか１項に記載の装置。
【請求項１２】
第１の小さなコアと、第１の大きなコアと、アクセラレータとを含むプロセッサのロジック内の前記アクセラレータから、前記第１の小さなコア及び前記第１の大きなコアが低電力状態にある際に、割込みを受け取る段階と、
前記割込みに応答して、レジューム信号を前記第１の小さなコアに対して直接的に送信し、前記第１の大きなコアの実行状態のサブセットを前記第１の小さなコアに対して提供する段階と、
前記第１の小さなコアが前記割込みと関連する要求を処理することができるかどうかを判断し、前記判断の結果が肯定的である場合、前記要求に対応する動作を前記第１の小さなコアで実行する段階と
を備える方法。
【請求項１３】
前記第１の小さなコアが前記要求を処理することができない場合、前記第１の小さなコアから前記実行状態の前記サブセットを取得し、前記実行状態の前記サブセットを前記第１の大きなコアの保存されている実行状態とマージし、ウェイクアップ信号及びマージされた前記実行状態を前記第１の大きなコアに対して送信する段階を更に備える、請求項１２に記載の方法。
【請求項１４】
その後に、前記要求に対応する前記動作を前記第１の大きなコアで実行する段階を更に備える、請求項１３に記載の方法。
【請求項１５】
前記割込みを前記第１の小さなコアと前記第１の大きなコアとのうちどちらに割り当てるべきかを示すヒントと共に前記割込みを受け取る段階を更に備える、請求項１２から１４のいずれか１項に記載の方法。
【請求項１６】
前記割込みのタイプに基づいて表のエントリにアクセスし、前記エントリに基づいて、前記レジューム信号を前記第１の小さなコアと前記第１の大きなコアとのうちどちらに直接的に送信するのかを判断する段階を更に備える、請求項１２から１５のいずれか１項に記載の方法。
【請求項１７】
マルチコアプロセッサと、
前記マルチコアプロセッサに結合されたダイナミックランダムアクセスメモリ（ＤＲＡＭ）と
を備え、
前記マルチコアプロセッサは、
第１の複数のコアと、
前記第１の複数のコアよりも低い熱設計電力を有する第２の複数のコアと、
アクセラレータと、
電力制御ユニット（ＰＣＵ）と
を有し、
前記ＰＣＵは、前記第１の複数のコア及び前記第２の複数のコアが低電力状態にある際に、前記アクセラレータから割込みを受け取り、前記割込みに応答して、レジューム信号を前記第２の複数のコアのうち第１のコアに対して直接的に送信し、前記第１の複数のコアのうち第１のコアの実行状態のサブセットを前記第２の複数のコアのうち前記第１のコアに提供する、システム。
【請求項１８】
前記第１の複数のコアは、前記第２の複数のコアとはヘテロジニアスの設計を有する、請求項１７に記載のシステム。
【請求項１９】
前記第２の複数のコアは、オペレーティングシステム（ＯＳ）に対してトランスペアレントである、請求項１７または１８に記載のシステム。
【請求項２０】
前記ＰＣＵは、前記割込みを使用して表のエントリにアクセスし、前記第１の複数のコア又は前記第２の複数のコアの第１のコアに前記レジューム信号を送るか否かを決定し、前記ＰＣＵは、前記エントリが、前記第２の複数のコアのうち１つが前記割込みと同一のタイプの以前の割込みに応答して未定義障害に遭遇したことを示す場合、前記レジューム信号を前記第１の複数のコアの前記第１のコアに対して送信する請求項１７から１９のいずれか１項に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
通常、プロセッサは、可能な際には、例えば、ＡＣＰＩ（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）規格（例えば、２００６年１０月１０日付けで公開された改訂版３．０ｂ）に従って省電力化スリープモードを使用する。電圧及び周波数スケーリング（ＤＶＦＳ又はＡＣＰＩ稼働状態（Ｐ状態））に加え、これらの所謂Ｃ状態コア低電力状態（ＡＣＰＩのＣ状態）は、コアがアイドル状態にあるか又は十分に利用されていない際には、電力を節約することができる。但し、マルチコアプロセッサ環境においても、コアは、しばしば、相対的に単純な動作を実行するべく効率的なスリープ状態からウェイクアップさせられ、次いで、スリープ状態に戻る。低電力状態からの離脱と低電力状態への復帰のためにレイテンシーと電力消費の両方における損失が存在していることから、この動作は、電力効率に対して悪影響を及ぼす可能性がある。いくつかのタイプのプロセッサにおいては、有用な働きが実現されることなしに、状態遷移の際に電力が消費される場合があり、電力効率に不利益をもたらす。
【発明の概要】
【０００２】
低電力状態からの離脱の際に処理を要する動作の例には、キーボード入力、タイマ割込み、ネットワーク割込みなどが含まれる。これらの動作を電力に配慮した方式で処理するために、現在のオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ：ＯＳ）は、大量のデータを一度に処理することにより、或いは、定期的なタイマ割込みではなく散発的なプログラム済みの割込みのみが存在するティックレスＯＳに移行することにより、プログラムの動作を変更している。別の方式は、タイマ合体（ｔｉｍｅｒ  ｃｏａｌｅｓｃｉｎｇ）を使用するというものであり、この場合、複数の割込みが、グループ化され、同時に処理される。但し、プログラムの動作の変更に加え、これらの選択肢は、いずれも、複雑さを増大させ、依然として、電力の観点で非効率的な動作をもたらす可能性がある。更には、いくつかのタイプのソフトウェア（例えば、メディア再生）は、完了を要する作業の量とは無関係に、頻繁な定期的ウェイクアップを要求することにより、ハードウェアの電力効率性メカニズムを弱めようとする場合がある。したがって、ティックレス／タイマ合体方式は、深いＣ状態からの不必要なウェイクアップを低減することにより、それなりの電力を節約することはできるが、ＯＳに対する侵襲的な変更を必要としており、このような変更は、オペレーティングシステムの新バージョンが配布される時点まで実装されないことから、演算エコシステムに伝播するために長時間を要する場合がある。
【図面の簡単な説明】
【０００３】
【図１】本発明の一実施形態によるプロセッサのブロック図である。
【図２】本発明の別の実施形態によるプロセッサのブロック図である。
【図３】本発明の一実施形態によるコアの間におけるレジュームフロー選択肢のフロー図である。
【図４】本発明の一実施形態による方法のフロー図である。
【図５】本発明の一実施形態による実行状態を転送するための方法のフロー図である。
【図６】本発明の更に別の実施形態によるプロセッサのブロック図である。
【図７】本発明の更に別の実施形態によるプロセッサのブロック図である。
【図８】本発明の更に別の実施形態によるプロセッサのブロック図である。
【図９】本発明の一実施形態によるタイミング図である。
【図１０】本発明の一実施形態による省電力化のグラフィカルな図である。
【図１１】本発明の一実施形態によるシステムのブロック図である。
【発明を実施するための形態】
【０００４】
様々な実施形態においては、ヘテロジニアスプロセッサ環境において平均電力消費を低減することができる。このヘテロジニアス環境は、システム及び電力の効率性を理由として組み合わせられた大きな高速のコアと相対的に小さくて相対的に電力効率に優れたコアとを含んでもよい。更には、実施形態は、プロセッサ上において稼働するオペレーティングシステム（ＯＳ）に対してトランスペアレントな方式により、この電力制御を提供してもよい。但し、本発明の範囲は、ヘテロジニアス環境に限定されるものではなく、平均電力を低減するべく（例えば、可能な限り多くの数のコアをマルチプロセッサ環境においてスリープ状態に維持するべく）、（ＯＳトランスペアレントであるが必ずしもハードウェア的にヘテロジニアスではない観点における）同種環境において使用することもできる。実施形態は、コアが頻繁にスリープ状態となるタブレットコンピュータに基づいた又はＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−Ｃｈｉｐ）アーキテクチャなどのハードウェア的に加速された環境において特に適していよう。
【０００５】
一般に、実施形態は、大きなコアではなく小さなコアに対してすべてのウェイクアップ信号を割り当てることにより、電力制御を提供してもよい。この結果、システムが９５％のアイドル状態にある際に、２倍を遥かに上回るだけ、平均電力を低減することができる。後述するように、多くの実施形態においては、この相対的に小さなコアは、ＯＳから隔離することができる。即ち、この相対的に小さなコアの存在は、ＯＳには未知であり、したがって、このコアは、ＯＳからは、不可視状態にある。したがって、実施形態は、ＯＳ及びプロセッサ上において稼働しているアプリケーションに対してトランスペアレントな方式により、プロセッサハードウェアを介して電力効率の優れたプロセッサの動作を提供することができる。
【０００６】
まず、図１を参照すれば、本発明の一実施形態によるプロセッサのブロック図が示されている。図１において観察されるように、プロセッサ１００は、いくつかの大きなコア、小さなコア、及びアクセラレータを有するヘテロジニアスプロセッサであってもよい。本明細書においては、マルチコアプロセッサの環境において記述されているが、実施形態は、このように限定されるものではなく、実装形態においては、ＳｏＣ又はその他の半導体に基づいた処理装置内に存在してもよいことを理解されたい。アクセラレータは、プロセッサ・コアが電源投入されているかどうかとは無関係に、入力作業のキューに基づいて作業を実行することができることに留意されたい。図１の実施形態においては、プロセッサ１００は、複数の大きなコアを含む。図示の特定の実施形態においては、このような２つのコア１１０ａ及び１１０ｂ（総体として大きなコア１１０）が示されているが、２つを上回る数のこのような大きなコアを設けてもよいことを理解されたい。様々な実装形態においては、これらの大きなコアは、相対的に複雑なパイプライン型アーキテクチャを有すると共にＣＩＳＣ（Ｃｏｍｐｌｅｘ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｉｎｇ）アーキテクチャに従って動作するアウトオブオーダ―プロセッサであってもよい。
【０００７】
更には、プロセッサ１００は、複数の小さなコア１２０ａ〜１２０ｎ（総体として小さなコア１２０）を更に含む。図１の実施形態には、このような８つのコアが示されているが、本発明の範囲は、この態様に限定されるものではないことを理解されたい。様々な実施形態においては、小さなコア１２０は、例えば、ＣＩＳＣ又はＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｉｎｇ）アーキテクチャに従って命令を実行するための電力効率に優れたインオーダープロセッサであってもよい。いくつかの実装形態においては、これらのコアのうち２以上のコアは、例えば、いくつかの大きなコアが省電力化状態にある場合、関係する処理を実行するべく、直列で互いに結合してもよく、次いで、１つ又は複数の相対的に小さなコアは、さもなければ大きなコアをウェイクアップさせることになる作業を実行するべく、起動状態となってもよい。多くの実施形態においては、小さなコア１２０は、ＯＳに対してトランスペアレントであってもよいが、その他の実施形態においては、小さなコア及び大きなコアは、ＯＳに認識される状態にあってもよく、複数の構成選択肢が利用可能な状態にある。一般的に、様々な実施形態においては、大きなコアと小さなコアとの間における任意のコア混合体を使用することができる。例えば、大きなコアごとに単一の小さなコアを設けることが可能であり、或いは、その他の実施形態においては、単一の小さなコアを複数の大きなコアと関連付けてもよい。
【０００８】
本明細書において使用されている「大きなコア」という用語は、相対的に複雑性の低い設計を有することになる共に相応して相対的に小さな量のチップ面積を消費することになる「小さなコア」との比較において、相対的に複雑な設計を有すると共に相対的に大きなチップ面積を消費することになるプロセッサ・コアであってもよい。更には、小さなコアは、大きなコアよりも小さな熱設計電力（Ｔｈｅｒｍａｌ  Ｄｅｓｉｇｎ  Ｐｏｗｅｒ：ＴＤＰ）を有することになることから、大きなコアよりも、電力効率に優れている。但し、小さなコアは、大きなコアとの比較において、その処理能力が制限される場合があることを理解されたい。例えば、これらの小さなコアは、大きなコアで可能であるすべての動作を処理できない場合がある。更には、相対的に小さなコアは、命令処理の効率性が低くなる可能性もある。即ち、命令は、小さなコアよりも大きなコアで相対的に迅速に実行されることになろう。
【０００９】
更に観察されるように、大きなコア１１０及び小さなコア１２０は、いずれも、相互接続部１３０に結合してもよい。この相互接続構造の様々な実装形態を様々な実施形態において実現することができる。例えば、いくつかの実施形態においては、相互接続構造は、ＦＳＢ（Ｆｒｏｎｔ  Ｓｉｄｅ  Ｂｕｓ）アーキテクチャ又はインテル社（登録商標）のＱＰＩ（Ｑｕｉｃｋ  Ｐａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）プロトコルによるものであってもよい。その他の実施形態においては、相互接続構造は、所与のシステムファブリックによるものであってもよい。
【００１０】
又、図１を更に参照すれば、複数のアクセラレータ１４０ａ〜１４０ｃを相互接続部１３０に結合してもよい。本発明の範囲は、この観点において限定されるものではないが、アクセラレータは、オーディオ及び／又はビデオプロセッサ、暗号プロセッサ、固定機能ユニットなどのようなメディアプロセッサを含んでもよい。これらのアクセラレータは、コアを設計した同一の設計者によって設計されてもよく、或いは、プロセッサに内蔵されている独立系サードパーティの知的財産（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）ブロックであってもよい。一般に、これらのアクセラレータ内においては、専用の処理タスクを、処理能力又は電力消費の観点において、大きなコア又は小さなコア上において実行可能なものよりも効率的に実行できる。図１の実施形態には、この特定の実装形態を有するものとして示されているが、本発明の範囲は、この観点において限定されるものではないことを理解されたい。例えば、２つのタイプのコアのみを、即ち、大きなコアと小さなコアのみを、有する代わりに、その他の実施形態は、少なくとも、大きなコア、中間のコア、及び小さなコアを含むコアの複数の階層を有してもよく、中間のコアは、小さなコアよりも大きいが大きなコアよりも小さいチップ面積と、大きなコアの電力消費と小さなコアの電力消費との間の対応する電力消費とを有する。更にその他の実施形態においては、小さなコアは、例えば、大きなコアのロジック及び構造のサブセットとして、大きなコアに埋め込むことができる。
【００１１】
更には、図１の実施形態においては、複数の大きなコアと、複数の小さなコアとを含むものとして示されているが、モバイルプロセッサ又はＳｏＣなどの特定の実装形態の場合、単一の大きなコアと単一の小さなコアのみを設けることもできる。次に図２を具体的に参照すれば、本発明の別の実施形態によるプロセッサのブロック図が示されており、この場合、プロセッサ１００'は、相互接続部１３０及びアクセラレータ１４０ａ〜１４０ｃと共に、単一の大きなコア１１０と、単一の小さなコア１２０とを含む。前述のように、この実装形態は、モバイルアプリケーションに適していよう。
【００１２】
通常の大きなコアにおける例示用の電力数値として、電力消費は、約６０００ミリワット（ｍＷ）のレベルであってもよく、中間コアの場合、電力消費は、約５００ｍＷのレベルであってもよく、非常に小さなコアの場合、電力消費は、約１５ｍＷのレベルであってもよい。大きなコアのウェイクアップを回避する一実装形態においては、大きな電力に伴う利益が実現されることになろう。
【００１３】
実施形態によれば、相対的に大きくて電力効率に劣るコアは、さもなければ可能であるものよりも、低電力スリープ状態において相対的に長く留まることができる。割込み及びその他のコアのウェイクアップイベントを、大きなコアの代わりに、小さなコアに対して割り当てることにより、小さなコアは、相対的に長く稼働することになり、相対的に頻繁にウェイクアップすることになるが、これは、依然として、データ移動などの取るに足らないタスクを実行するために大きなコアをウェイクアップさせるよりも電力効率に優れている。いくつかの動作について後述するように、例えば、小さなコアがベクトル演算（例えば、ＡＶＸ演算）、複雑なアドレス指定モード、又は浮動小数点（Ｆｌｏａｔｉｎｇ  Ｐｏｉｎｔ：ＦＰ）演算をサポートしていないことがあることから、稼働するように大きなコアを電源投入してもよいことに留意されたい。このようなケースにおいては、ウェイクアップ信号は、小さなコアから大きなコアに再ルーティングすることができよう。
【００１４】
例えば、ハードウェア加速型の１０８０ｐのビデオ再生をプロセッサ上において実行している間には、コアＣ６状態への及びコアＣ６状態からの１０００回超の遷移と、１２００回近い割込みとが一秒ごとに発生する。これらのウェイクアップイベントの一部分を本発明の一実施形態を使用して相対的に小さなコアに割り当て直せば、大きな電力節約を実現することができる。
【００１５】
図３は、本発明の一実施形態によるコアの間におけるレジュームフロー選択肢を要約したものである。図３において観察されるように、ソフトウェアドメイン２１０と、ハードウェアドメイン２２０とが存在している。一般に、ソフトウェアドメイン２１０は、例えば、ＡＣＰＩ実装形態によれば、電力管理との関連においてＯＳの動作に対応している。一般に、ＯＳは、そのスケジューリングメカニズムに応じた到来するタスクに関するその知識に基づいて、低電力モードに入るようにプロセッサに要求するべく複数のＣ状態のうち１つを選択することができる。例えば、ＯＳは、要求されている特定の低電力状態を含むＭＷＡＩＴ呼出しを発行することができる。
【００１６】
一般に、Ｃ０は、命令が実行される通常の動作状態に対応しており、状態Ｃ１〜Ｃ３は、ＯＳの更に低電力の状態であり、これらのそれぞれは、異なる省電力化レベルと、Ｃ０状態に戻るための対応する異なるレイテンシーのレベルとを有する。観察されるように、プロセッサの予想作業負荷に応じて、ＯＳは、例えば、ＯＳのＣ０などの非アイドル状態を、或いは、例えば、ＯＳのＣ状態Ｃ１〜Ｃ３などの複数のアイドル状態のうち１つを、選択してもよい。これらのアイドル状態のそれぞれは、プロセッサハードウェアの制御下にある対応するハードウェア低電力状態に対してマッピングすることができる。したがって、プロセッサハードウェアは、所与のＯＳのＣ状態を、ＯＳによって指示されるものよりも大きな省電力化を提供し得る対応するハードウェアＣ状態に対してマッピングすることができる。一般に、相対的に軽度のＣ状態（例えば、Ｃ１）は、相対的に深いＣ状態（例えば、Ｃ３）よりも、電力の節約レベルは低いが、小さなレジューム時間を有する。様々な実施形態においては、ハードウェアドメイン２２０と、プロセッサＣ状態へのＯＳのＣ状態のマッピングと、は、プロセッサの電力制御ユニット（Ｐｏｗｅｒ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ：ＰＣＵ）によって実行することが可能であるが、本発明の範囲は、この観点において限定されるものではない。このマッピングは、ＯＳに基づいた電力管理要求の先行する履歴に基づいたものであってもよい。又、この決定は、システム全体の状態や構成情報などに基づいたものであってもよい。
【００１７】
更には、ＰＣＵ又はその他のプロセッサロジックは、すべてのウェイクアップイベントを利用可能な最小のコア（様々な実施形態においては、ＯＳ不可視コアであってもよい）に割り当てるように構成してもよい。図３において観察されるように、所与のハードウェアに基づいたアイドル状態からの離脱の際に、状態がこの最小のコアに転送されるように、制御が、利用可能な最小のコアに対して直接的にレジュームされる。これとは対照的に、従来のハードウェア／ソフトウェアレジュームにおいては、制御は、大きなコアに対してのみ戻される。一般に、ＯＳは、予想アイドル時間に基づいてＣ状態を選択し、アーキテクチャがハードウェアＣ状態に対してマッピングしたレイテンシー要件をレジュームする。したがって、図３の実施形態において観察されるように、すべてのレジューム信号（割込みなど）は、利用可能な最小のコアにルーティングされ、このコアが、自身がレジューム動作を処理することができるのか、或いは、その代わりに、継続するために更に大きなコアに対してウェイクアップ信号を送信する必要があるかを判断する。実施形態は、計測された実験的な効率に基づいて相対的に低いレジュームレイテンシーを有するハードウェアＣ状態をハードウェアが自動的に選択する既存のＰ状態又はＣ状態の自己デモーション（ａｕｔｏ−ｄｅｍｏｔｉｏｎ）を妨げないことに留意されたい。ＰＣＵ又は別のプログラム可能なエンティティが、到来するウェイクアップイベントを調査し、それらをルーティングするべき（大きな又は小さな）コアを判断することも可能であることに留意されたい。
【００１８】
上述のように、いくつかの実装形態においては、小さなコア自体は、ＯＳ及びアプリケーションソフトウェアから隠蔽することができる。例えば、小さなコア−大きなコアのペアを抽象化すると共にアプリケーションソフトウェアから隠蔽することができる。低電力状態においては、アクセラレータ（ビデオ復号化アクセラレータなど）が復号化タスクなどの所与のタスクを実行している間に、すべてのコアは、スリープ状態にあってもよい。アクセラレータは、データを使い果たした際に、小さなコアからのものであってもよい追加データを要求するべくウェイクアップ信号を放出し、この小さなコアが、ウェイクアップし、大きなコアをウェイクアップさせることなしに、この単純なデータ移動動作を実現することができると判断し、これにより、電力が節約される。タイマ割込みが到来し、小さなコアが、ウェイクアップし、代わりに、（２５６ビットＡＶＸ命令のような）複雑なベクトル演算が命令ストリーム内に存在していることを検出した場合、複雑な命令（並びに、このストリーム内のその他の命令）を処理してレイテンシーを低減できるようにするべく、大きなコアをウェイクアップさせてもよい。一代替実装形態においては、ＰＣＵ又はＰＣＵ近傍の別のアンコアの場所に、又はグローバル相互接続部上のハードウェアロジックの別個のセクションとして、又は小さなコアの内部制御ロジックの付加物として、配置することができるグローバルなハードウェア観察メカニズムにより、小さなコアがＡＶＸ命令に遭遇したことを検出することが可能であり、小さなコアのシャットダウンを生成しうる未定義命令障害を生成してもよく、大きなコアをウェイクアップさせた後に大きなコアに対して命令ストリームを割り当て直してもよい。この動作は、命令に留まらず、構成又は機能にまで拡張してもよいことに留意されたい。小さなコアは、例えば、大きなコア上にのみ存在している構成空間に対する書込みに遭遇した場合、大きなコアのウェイクアップを要求してもよい。
【００１９】
次に図４を参照すれば、本発明の一実施形態による方法のフロー図が示されている。図４の方法は、所与の実装形態に応じて、様々なエージェントによって実行してもよいことに留意されたい。例えば、いくつかの実施形態においては、方法３００は、プロセッサのシステムエージェント又はアンコア部分内に位置してもよい電源制御ユニットなどのプロセッサ内のシステムエージェント回路により、部分的に実装してもよい。その他の実施形態においては、方法３００は、例えば、相互接続構造に結合されたアクセラレータから割込みを受け取り、選択された場所に対して割込みを転送することができる相互接続構造内の電力制御ロジックなどの相互接続ロジックによって部分的に実装されてもよい。
【００２０】
図４において観察されるように、方法３００は、大きなコアと小さなコアの両方をスリープ状態にすることにより、開始してもよい（ブロック３１０）。即ち、有効な動作がコアで実行されていないものと仮定されている。したがって、これらのコアを選択された低電力状態にして電力消費を低減することができる。コアは、有効でなくてもよいが、１つ又は複数のアクセラレータなどのプロセッサ又はＳｏＣ内のその他のエージェントは、タスクを実行中であってもよい。ブロック３２０において、このようなアクセラレータから割込みを受け取ってもよい。この割込みは、アクセラレータがタスクを完了した際に、エラーに遭遇した際に、又はアクセラレータが更なるデータを必要としている際に、或いは、その他の処理を所与のコアなどの別のコンポーネントによって実行する必要がある際に、送信してもよい。次いで、制御がブロック３３０に伝達され、ここで、ロジックにより、レジューム信号を小さなコアに対して直接的に送信することができる。即ち、ロジックは、大きなコアと小さなコアの両方が低電力状態にある際には、レジューム信号を小さなコアに対して（又は、システム実装形態に応じて、そのような複数の小さなコアのうち選択されたものに対して）常に送信するようにプログラムしてもよい。要求された動作を小さなコアが処理することができる割込みの多くの例においては、割込みを直接的に且つ常に小さなコアに対して送信することにより、大きなコアによる相対的に大きな電力消費を回避することができる。必要に応じて処理能力及び電力を均衡させるべく、特定の割込みソースが常に１つのコア又は別のコアにルーティングされるように、特定のタイプのフィルタリング又はキャッシングメカニズムをブロック３３０に追加してもよいことに留意されたい。
【００２１】
更に図４を参照すれば、次いで、制御がダイアモンド３４０に伝達され、ここで、小さなコアが割込みと関連する要求を処理することができるかどうかを判断することができる。本発明の範囲は、この観点において限定されるものではなく、いくつかの実施形態においては、この判断は、小さなコアがウェイクアップされた後に、小さなコア自体内において実行してもよい。或いは、図４の方法を実行するロジックにより、この判断を実行することもできる（この場合、レジューム信号を小さなコアに対して送信する前に、この分析を実行することができる）。
【００２２】
一例として、小さなコアは、小さなコアの処理能力要件及び／又は命令セットアーキテクチャ（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ：ＩＳＡ）の能力に基づいて、要求された動作を自身が処理することができるかどうかを判断してもよい。小さなコアがＩＳＡサポートを有していないために、要求された動作を小さなコアが処理することができない場合、小さなコアのフロントエンドロジックは、受け取った命令ストリームを解析することが可能であり、ストリーム内の少なくとも１つの命令が小さなコアによってサポートされていないと判断することができる。この結果、小さなコアは、未定義命令障害を発行してもよい。この未定義障害は、ＰＣＵ（又は、別のエンティティ）に対して送信してもよく、ＰＣＵは、この障害及び小さなコアの状態を分析することにより、未定義障害が、小さなコアが命令を処理するためのハードウェアサポートを有していないことの結果であるのか、或いは、その代わりに、それが真の未定義障害であるのかを判断することができる。後者の場合、更なる処理のために、未定義障害をＯＳに転送してもよい。障害が、小さなコアが命令を処理するための適切なハードウェアサポートを有していないことに起因している場合、ＰＣＵは、要求された１つ又は複数の命令を処理するべく、この小さなコアに転送された実行状態を対応する大きなコアに転送させることができる。
【００２３】
その他の実施形態においては、小さなコアと大きなコアとの間における実行状態の転送は、小さなコアが、過大な時間にわたって、又は過剰に低い処理能力レベルによって、稼働していると判断された際に、実行してもよい。即ち、小さなコアが、要求されたタスクを実行するべく、数千個又は数百万個ものプロセッササイクルにわたって稼働していると仮定しよう。大きなコアで提供されるより適切な実行に起因し、状態を大きなコアに転送して大きなコアが相対的に迅速にタスクを完了できるようにすることにより、より大きな電力の低減を実行することができる。
【００２４】
更に図４を参照すれば、要求された動作を小さなコアで処理することができると判断された場合、ブロック３５０に進んで制御が行われ、ここでその動作は、そのように、小さなコアにおいて実行される。例えば、要求された動作がデータ移動動作であると仮定すると、小さなコアが要求された処理を実行することが可能であり、その他のタスクが小さなコアについて保留中ではない場合、小さなコアを再度低電力状態にすることができる。
【００２５】
この代わりに、ダイアモンド３４０において、例えば、動作が、小さなコアが処理するように構成されてはいない相対的に複雑な動作である場合などのように、小さなコアが要求された動作を処理することができないと判断された場合、制御は、代わりに、ブロック３６０に伝達される。ここで、ウェイクアップ信号を、例えば、小さなコアから大きなコアに対して直接的に送信し、大きなコアを電源投入させることができる。相応して、制御は、ブロック３７０に伝達され、ここで、要求された動作を大きなコアで実行することができる。図４の実施形態においては、この特定の動作の組を有するものとして記述されているが、本発明の範囲は、この観点において限定されるものではないことを理解されたい。
【００２６】
したがって、様々な実施形態においては、大きなコアをウェイクアップさせることなしに、ハードウェア割込み及びその他のウェイクアップ信号を小さなコアに対して直接的にルーティングできるようにするためのメカニズムを提供してもよい。様々な実装形態においては、小さなコア自体又は管理エージェントは、大きなコアをウェイクアップさせることなしに、ウェイクアップ信号及び処理を完了させることができるかどうかを判断することができることに留意されたい。代表的なケースにおいては、小さなコアは、大きなコアよりも格段に電力効率が優れている場合があり、この結果、大きなコアがサポートしている命令のサブセットしかサポートしていない場合がある。したがって、低電力状態からのウェイクアップの際に実行するべき多くの動作を相対的に単純であって相対的に電力効率に優れたコアに再配置することにより、（処理能力又は電力効率性の理由から、様々なサイズの多くのコアがシステム内に含まれている）ヘテロジニアス環境において、相対的に大きくて相対的に強力なコアのウェイクアップを回避することができる。
【００２７】
次に図５を参照すれば、本発明の一実施形態による実行状態を転送する方法のフロー図が示されている。図５に示されているように、方法３８０は、一実施形態においては、ＰＣＵのロジックによって実行してもよい。このロジックは、大きなコアを低電力状態にするための要求に応答してトリガしてもよい。このような要求に応答して、方法３８０は、ブロック３８２において開始してもよく、ここで、大きなコアの実行状態を一時的記憶領域内に保存することができる。この一時的記憶領域は、コアと関連付けられた専用の状態保存エリアであってもよく、或いは、このエリアは、ラストレベルキャッシュ（Ｌａｓｔ  Ｌｅｖｅｌ  Ｃａｃｈｅ：ＬＬＣ）などの共用キャッシュ内に存在してもよいことに留意されたい。本発明の範囲は、この観点において限定されるものではないが、実行状態は、汎用レジスタ、状態及び構成レジスタ、実行フラグなどを含むことができる。更には、この時点において、大きなコアを低電力状態にできるようにするための更なる動作を実行することができる。このような動作には、内部キャッシュ及びその他の状態の掃出しと、所与のコアのシャットダウンのためのシグナリングとが含まれる。
【００２８】
更に図５を参照すれば、次いで、小さなコアがレジュームしているかどうかことを判断することができる（ダイアモンド３８４）。このレジュームは、例えば、プロセッサのアクセラレータから到来する割込みに応答して受信されるレジューム信号の結果として実行してもよい。小さなコアのレジュームの一部として、制御がブロック３８６に伝達され、ここで、大きなコアの状態の少なくとも一部分を一時的記憶領域から抽出することができる。更に詳しくは、この抽出される部分は、小さなコアによって使用される大きなコアの実行状態の部分であってもよい。例として、この状態部分は、主レジスタの内容物、特定の実行フラグなどの様々なフラグ、機械状態レジスタなどを含んでもよい。但し、対応する実行ユニットを小さなコア内において有していない大きなコア内に存在している１つ又は複数の実行ユニットと関連する状態などの特定の状態は、抽出しなくてもよい。次いで、状態のこの抽出された部分を小さなコアに対して送信することが可能であり（ブロック３８８）、これにより、小さなコアは、所与の割込みに応答して適切な何らかの動作を有効にすることが可能となる。図５の実施形態においては、この特定の実装形態を有するものとして示されているが、本発明の範囲は、この観点において限定されるものではないことを理解されたい。
【００２９】
次に図６を参照すれば、本発明の一実施形態によるプロセッサのブロック図が示されている。図６に示されているように、プロセッサ４００は、ＯＳに認識されるようにすることができる第１の複数のコア４１０１〜４１０ｎと、ＯＳにとってはトランスペアレントである第２の複数のコア４１０ａ〜４１０ｘとを含むマルチコアプロセッサであってもよい。
【００３０】
観察されるように、様々なコアは、相互接続部４１５を介して、様々なコンポーネントを含むシステムエージェント又はアンコア４２０に結合してもよい。観察されるように、アンコア４２０は、共用キャッシュ４３０を含んでもよく、これは、ラストレベルキャッシュであってもよい。更には、アンコアは、統合型メモリコントローラ４４０と、様々なインタフェース４５０ａ〜４５０ｎと、電力制御ユニット４５０と、ＡＰＩＣ（Ａｄｖａｎｃｅｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ  Ｃｏｎｔｒｏｌｌｅｒ）４６５とを含んでもよい。
【００３１】
ＰＣＵ４５０は、本発明の一実施形態による電力効率に優れた動作を可能にするための様々なロジックを含んでもよい。観察されるように、ＰＣＵ４５０は、上述のように、ウェイクアップを実行することができるウェイクアップロジック４５２を含むことができる。したがって、ロジック４５２は、小さなコアを最初にウェイクアップさせるように構成することができる。但し、このロジックは、特定の状況においては、このような小さなコアの直接的なウェイクアップを実行しないように、動的に構成することもできる。例えば、システムは、例えば、システムが電池によって稼働するモバイルシステムである際には、省電力化動作のために動的に構成することができる。このような状況においては、ロジックは、小さなコアを常にウェイクアップさせるように構成することができる。この代わりに、システムが、壁面電源に接続されたサーバーシステム、デスクトップシステム、又はラップトップシステムである場合、実施形態は、省電力よりもレイテンシー及び処理能力を選択するためのユーザーに基づいた選択を提供してもよい。したがって、ウェイクアップロジック４５２は、このような例においては、割込みに応答して、小さなコアではなく、大きなコアをウェイクアップするように構成することができる。多数の小さなコアのウェイクアップが結果的に大きなコアへの再割り当てをもたらしていると判断された際には、大きなコアの類似のウェイクアップを実行することができる。
【００３２】
電力効率の優れた動作を更に可能にするために、ＰＣＵ４５０は、大きなコアと小さなコアとの間における実行状態の転送を実行することができる状態転送ロジック４５４を更に含んでもよい。上述のように、このロジックを使用し、低電力状態の間に一時的記憶領域に保存されている大きなコアの実行状態を取得してもよく、その状態の少なくとも一部分を抽出し、小さなコアのウェイクアップの際に小さなコアに対して提供してもよい。
【００３３】
更には、ＰＣＵ４５０は、割込み履歴記憶領域４５６を含んでもよい。このような記憶領域は、システム動作の際に発生した割込みと、割込みが小さなコアによって正常に処理されたかどうかとをそれぞれが識別する複数のエントリを含んでもよい。次いで、この履歴に基づいて、所与の割込みを受け取った際に、この記憶領域の対応するエントリにアクセスし、同一タイプの以前の割込みが小さなコアによって正常に処理されているかどうかを判断することができる。判断結果が肯定的である場合、ＰＣＵは、到来する新しい割込みを同一の小さなコアに割り当てることができる。この代わりに、この履歴に基づいて、このタイプの割込みが小さなコアによって正常に処理されてはいない（或いは、不満足な低い処理能力を伴って処理されている）と判断された場合、代わりに、割込みを大きなコアに対して送信することができる。
【００３４】
更に図６を参照すれば、ＰＣＵ４５０は、未定義処理ロジック４５８を更に含んでもよい。このようなロジックは、小さなコアによって発行された未定義障害を受け取ってもよい。このロジックに基づいて、小さなコア内の情報にアクセスすることができる。次いで、未定義障害が、小さなコア内におけるその命令のサポートの欠如の結果であるのか、或いは、別の理由によるものであるのかを判断することができる。この判断に応答して、ロジックは、小さなコアの状態を（一時的記憶領域内に保存されている）大きなコアの実行状態の残りの部分とマージさせ、その後に、割込みの処理のために大きなコアに対して送信させることが可能であり、或いは、未定義障害を更なる処理のためにＯＳに対して送信することもできる。小さなコアが割込みを処理することができないと判断された際には、小さなコアに提供された実行状態の部分を小さなコアから取得し、一時的記憶場所に保存し、したがって、小さなコアを電源切断することができる。次いで、このマージされた状態を、大きなコアの残りの実行状態と共に、大きなコアに対して提供し、小さなコアが処理することができなかった割込みを大きなコアが処理できるようにすることができる。又、小さなコアによるこのような処理の誤りに応答し、割込み履歴記憶領域４５６内のエントリを書き込むこともできることに留意されたい。図６の実施形態においては、この特定のロジックを有するものとして示されているが、本発明の範囲は、この観点において限定されるものではないことを理解されたい。例えば、ＰＣＵ４５０の様々なロジックは、その他の実施形態においては、単一のロジックブロック内において実装することができる。
【００３５】
ＡＰＩＣ４６５は、例えば、アクセラレータから発行された様々な割込みを受け取ってもよく、割込みを、適宜、所与の１つ又は複数のコアに対して割り当ててもよい。いくつかの実施形態においては、ＯＳから隠蔽された状態において小さなコアを維持するために、ＡＰＩＣ４６５は、それぞれが自身と関連付けられたＡＰＩＣ識別子を含んでもよい到来する割込みを、大きなコアと関連付けられたＡＰＩＣのＩＤから、小さなコアと関連付けられたＡＰＩＣのＩＤに、動的に再マッピングしてもよい。
【００３６】
図６を更に参照すれば、プロセッサ４００は、例えば、メモリバスを介して、システムメモリ４６０と通信してもよい。更には、インタフェース４５０により、周辺装置、大容量記憶装置などの様々なチップ外のコンポーネントに対して接続を実施することができる。図６の実施形態においては、この特定の実装形態を有するものとして示されているが、本発明の範囲は、この観点において限定されるものではない。
【００３７】
大きな及び小さなコアの様々な結合又は統合を可能にするための様々なアーキテクチャが可能であることに留意されたい。例として、これらの異なるコアの間の結合の程度は、ダイの面積、電力、処理能力、及び応答性に関係する様々な技術的最適化パラメータによって左右される可能性がある。
【００３８】
次に図７を参照すれば、本発明の別の実施形態によるプロセッサのブロック図が示されている。図７に示されているように、プロセッサ５００は、大きなコア５１０と、小さなコア５２０とを含む真のヘテロジニアスプロセッサであってもよい。観察されるように、それぞれのプロセッサは、その独自のプライベートなキャッシュメモリ階層と、即ち、レベル１及びレベル２キャッシュメモリの両方を含んでもよいキャッシュメモリ５１５及び５２５と、関連付けてもよい。そして、コアは、リング相互接続部５３０を介して１つに結合してもよい。又、複数のアクセラレータ５４０ａ及び５４０ｂと、ＬＬＣ、即ち、共用キャッシュであってもよいＬ３キャッシュ５５０も、リング相互接続部に結合されている。この実装形態においては、２つのコアの間における実行状態は、リング相互接続部５３０を介して転送してもよい。上述のように、大きなコア５００の実行状態は、所与の低電力状態への遷移の前に、キャッシュ５５０内に保存することができる。次いで、小さなコア５２０のウェイクアップの際に、この実行状態の少なくともサブセットを小さなコアに提供することにより、そのウェイクアップをトリガした動作の実行のためにコアを準備完了状態とすることができる。したがって、図７の実施形態においては、コアは、このリング相互接続部を介して緩やかに結合されている。図示の容易性を目的として、単一の大きなコアと、単一の小さなコアとを有するものとして示されているが、本発明の範囲は、この観点において限定されるものではないことを理解されたい。図７のものなどの実装形態を使用することにより、交換を要する任意の状態又は通信をリングアーキテクチャ（バス又はファブリックアーキテクチャであってもよい）を介して処理することができる。或いは、その他の実施形態においては、この通信は、２つのコアの間の専用バス（図７には、図示されていない）を介したものであってもよい。
【００３９】
次に図８を参照すれば、本発明の更に別の実施形態によるプロセッサのブロック図が示されている。図８に示されているように、プロセッサ５００'は、大きなコアと小さなコアとが緊密に結合又は統合されているハイブリッドヘテロジニアスプロセッサであってもよい。具体的には、図８において観察されるように、大きなコア５１０及び小さなコア５２０は、共用キャッシュメモリ５１８を共用してもよく、この共用キャッシュメモリ５１８は、様々な実施形態において、レベル１及びレベル２キャッシュの両方を含んでもよい。したがって、実行状態は、コアの一方から他方に、このキャッシュメモリを介して転送することが可能であり、これにより、リング相互接続部５３０を介した通信のレイテンシーが回避される。この構成は、データ移動オーバーヘッドが低減され、コア間の通信が相対的に高速となり、相対的に小さな電力を可能とするが、柔軟ではない場合もあることに留意されたい。
【００４０】
図７及び図８は、２つの可能な実装形態を示すものに過ぎない（限られた数のコアを示すものに過ぎない）ことに留意されたい。コアの異なる構成、２つの方式の組合せ、２つを超える数のタイプのコアなどを含む更なる実装形態の変形が可能である。又、図８の一変形においては、２つのコアが、実行ユニット、命令ポインタ、又はレジスタファイルのようないくつかのコンポーネントを共用することもできる。
【００４１】
上述のように、実施形態は、オペレーティングシステムにとって完全にトランスペアレントであると共に不可視状態にすることが可能であり、したがって、ソフトウェアの変更が不要であり、Ｃ状態からのレジューム時間の増大を最小限のものにすることができる。その他の実施形態においては、小さなコアの存在及び利用可能性をＯＳに認識可能にし、これにより、ＯＳが割込みを小さなコアと大きなコアとのうちどちらに提供するのかを判断できるようにすることができる。更には、実施形態は、大きな及び小さなコアをＯＳに認識されるようにするための、或いは、小さなコアが認識されるになるかどうかを構成するための、メカニズムをＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）などのシステムソフトウェアにおいて提供してもよい。実施形態は、Ｃ状態からの見かけのレジューム時間を増大させる場合があるが、これは、現在のプラットフォームのレジュームレイテンシーが様々であることから、受け入れ可能であり、現時点においては、コアの状態が回復されている時間においては、有用な作業は実行されていない。小さな及び大きなコアがどれだけ異なっているのかの比率は、小さな相違から、大きなマイクロアーキテクチャ構造の相違まで、様々であってよい。様々な実施形態によれば、ヘテロジニアスコアの間の最も主要な弁別要素は、ダイ面積と、コアによって消費される電力とであってもよい。
【００４２】
いくつかの実装形態においては、大きなコアがレジュームの際に大部分の時間にわたってウェイクアップしていることが検出された場合、少なくとも規定の期間にわたって処理能力を保持するべく、小さなコアの最初のウェイクアップをバイパスしてもよく、大きなコアを直接的にウェイクアップさせることができるように、制御メカニズムを提供してもよい。いくつかの実施形態においては、アプリケーション及びシステムの電力及び処理能力要件に応じて、すべての割込み及びその他のウェイクアップ信号を小さな又は大きなコアに対して普遍的に割り当て直すためのメカニズムを、システム及びユーザーレベルソフトウェアの両方であるソフトウェアに認識されるようにできることに留意されたい。このような一例として、ユーザーレベルの命令を提供し、特定されたコアに対するウェイクアップ動作の割り当てを実行してもよい。このような命令は、ＭＷＡＩＴのような命令の変形であってもよい。
【００４３】
いくつかの実施形態においては、アクセラレータは、要求された動作が小さなコアで効率的に処理することができるような相対的に単純な動作であることを通知するためのヒントを割込みと共にＰＣＵ又はその他の管理エージェントへ送信することができる。ＰＣＵは、このアクセラレータによって提供されるヒントを使用し、到来する割込みを処理のために小さなコアに自動的に割り当ててもよい。
【００４４】
次に図９を参照すれば、本発明の一実施形態による大きなコア７１０及び小さなコア７２０内において実行される動作を示すタイミング図が示されている。観察されるように、装置割込みが小さなコア７２０に対して直接的に提供されることを許容し、小さなコアが割込みを処理することができるかどうかを小さなコアで判断することにより、大きなコア７１０のスリープ持続期間を相対的に長くすることができる。判断の結果が肯定的である場合、大きなコア７１０は、スリープ状態に留まることが可能であり、割込みを小さなコア７２０上において処理することができる。
【００４５】
次に図１０を参照すれば、本発明の一実施形態による省電力化のグラフィカルな図が示されている。図１０に示されているように、アクティブなＣ０状態から、例えば、Ｃ６状態などの深い低電力状態への遷移を伴う従来のシステムにおいては、大きなコアのコア電力消費は、例えば、Ｃ０状態への各遷移の際の５００ｍＷなどの相対的に高いレベルから、Ｃ６状態におけるゼロ電力消費レベルまで（中間の図）、変化することができる。この代わりに、本発明の一実施形態においては（下部の図）、Ｃ０状態へのウェイクアップを、大きなコアから小さなコアに割り当てることが可能であり、この結果、小さなコアは、５００ｍＷの電力消費レベルではなく、例えば、図１０の実施形態の１０ｍＷなどの格段に低い電力レベルにおいて、Ｃ０状態を処理することができる。
【００４６】
実施形態は、多くの異なるシステムタイプにおいて実装してもよい。次に図１１を参照すれば、本発明の一実施形態によるシステムのブロック図が示されている。図１１に示されているように、マルチプロセッサシステム６００は、ポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続部６５０を介して結合された第１プロセッサ６７０及び第２プロセッサ６８０を含む。図１１に示されているように、プロセッサ６７０及び６８０のそれぞれは、第１及び第２プロセッサ・コア（即ち、プロセッサ・コア６７４ａ及び６７４ｂ並びにプロセッサ・コア６８４ａ及び６８４ｂ）を含むマルチコアプロセッサであってもよいが、潜在的には、更に多くのコアがプロセッサ内に存在してもよい。更に詳しくは、プロセッサのそれぞれは、本明細書において記述されているように、少なくとも大きなコアが低電力状態にある際にウェイクアップを利用可能な最小のコアに対して割り当てるためのロジックに加えて、大きなコア、小さなコア（並びに、場合によっては中間サイズのコア）、アクセラレータなどの混合体を含むことができる。
【００４７】
図１１を依然として参照すれば、第１プロセッサ６７０は、メモリコントローラハブ（Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ  Ｈｕｂ：ＭＣＨ）６７２と、ポイントツーポイント（Ｐｏｉｎｔ−ｔｏ−Ｐｏｉｎｔ：Ｐ−Ｐ）インタフェース６７６及び６７８とを更に含む。同様に、第２プロセッサ６８０も、ＭＣＨ６８２と、Ｐ−Ｐインタフェース６８６及び６８８とを含む。図１１に示されているように、ＭＣＨ６７２及び６８２は、プロセッサを個々のメモリに、即ち、メモリ６３２及びメモリ６３４に、結合しており、これらのメモリは、個々のプロセッサにローカルに装着されたシステムメモリ（例えば、ＤＲＡＭ）の一部分であってもよい。第１プロセッサ６７０及び第２プロセッサ６８０は、それぞれ、Ｐ−Ｐ相互接続部６７６及び６８６を介してチップセット６９０に結合してもよい。図１１に示されているように、チップセット６９０は、Ｐ−Ｐインタフェース６９４及び６９８を含む。
【００４８】
更には、チップセット６９０は、Ｐ−Ｐ相互接続部６３９によってチップセット６９０を高処理能力グラフィクスエンジン６３８と結合するためのインタフェース６９２を含む。そして、チップセット６９０は、インタフェース６９６を介して第１バス６１６に結合してもよい。図１１に示されているように、第１バス６１６を第２バス６２０に結合するバスブリッジ６１８と共に、様々な入出力（Ｉ／Ｏ）装置６１４を第１バス６１６に対して結合してもよい。一実施形態においては、例えば、キーボード／マウス６２２、通信装置６２６、及びデータ記憶ユニット６２８を含む様々な装置を第２バス６２０に結合してもよく、データ記憶ユニット６２８は、ディスクドライブやその他の大容量記憶装置などであり、これは、コード６３０を含んでもよい。更には、オーディオ入出力６２４を第２バス６２０に結合してもよい。実施形態は、スマートセルラー電話機、タブレットコンピュータ、ノートブックなどのようなモバイル装置を含むその他のタイプのシステムに内蔵することができる。
【００４９】
実施形態は、コードで実装してもよく、命令を実行するようにシステムをプログラムするべく用いられ得る命令を保存した非一時的記憶媒体に保存してもよい。記憶媒体は、限定を伴うことなしに、フロッピー（登録商標）ディスク、光ディスク、半導体ドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ：ＳＳＤ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＷ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  ＲｅＷｒｉｔａｂｌｅ）、及び光磁気ディスクなどの任意のタイプのディスク、読出し専用メモリ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ：ＲＯＭ）、ダイナミックランダムアクセスメモリ（Ｄｙｎａｍｉｃ  Ｒａｎｃｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ＤＲＡＭ）などのランダムアクセスメモリ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ＲＡＭ）、スタティックランダムアクセスメモリ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ＳＲＡＭ）、消去可能プログラム可能型読出し専用メモリ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ：ＥＰＲＯＭ）、フラッシュメモリ、電気的消去可能プログラム可能型読出し専用メモリ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ：ＥＥＰＲＯＭ）などの半導体装置、磁気又は光カード、或いは、電子的命令を保存するのに適した任意のその他のタイプの媒体を含んでもよい。
【００５０】
以上、限られた数の実施形態との関係において本発明について説明したが、当業者であれば、これらの実施形態から多数の変更及び変形を理解するであろう。添付の請求項は、本発明の真の精神及び範囲に含まれるそのようなすべての変更及び変形を含むものと解釈されたい。
【図１】
2014528115.tif 000003
【図２】
2014528115.tif 000004
【図３】
2014528115.tif 000005
【図４】
2014528115.tif 000006
【図５】
2014528115.tif 000007
【図６】
2014528115.tif 000008
【図７】
2014528115.tif 000009
【図８】
2014528115.tif 000010
【図９】
2014528115.tif 000011
【図１０】
2014528115.tif 000012
【図１１】
2014528115.tif 000013
【国際調査報告】
2014528115.tif 000014
2014528115.tif 000015