(57)【要約】【課題】効果的に電力消費を低減する方法及び装置を提供すること。【解決手段】本発明の一態様は、複数のプロセッサのそれぞれから、要求される電力消費状態の電力管理リクエストを受信するステップと、要求される電力消費状態に基づきデータをキャッシュするため、低電力消費状態の電力管理リクエストをコントローラに送信するステップと、前記複数のプロセッサのそれぞれに前記低電力消費状態に入るよう指示するステップと、アクティブ電力消費状態に戻るため、インタラプトを受信するステップと、前記キャッシュされたデータをメモリにフラッシュするため、電力管理リクエストを前記コントローラに送信するステップと、前記複数のプロセッサのそれぞれに前記アクティブ電力消費状態に入るよう指示するステップとを有する方法に関する。【選択図】図２
2011014135.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサのそれぞれから、要求される電力消費状態の電力管理リクエストを受信するステップと、
要求される電力消費状態に基づきデータをキャッシュするため、低電力消費状態の電力管理リクエストをコントローラに送信するステップと、
前記複数のプロセッサのそれぞれに前記低電力消費状態に入るよう指示するステップと、
アクティブ電力消費状態に戻るため、インタラプトを受信するステップと、
前記キャッシュされたデータをメモリにフラッシュするため、電力管理リクエストを前記コントローラに送信するステップと、
前記複数のプロセッサのそれぞれに前記アクティブ電力消費状態に入るよう指示するステップと、
を有する方法。
【請求項２】
前記複数のプロセッサのそれぞれの電力消費状態を決定するステップをさらに有し、
各プロセッサは、デフォルト電力消費状態を有する、請求項１記載の方法。
【請求項３】
前記複数のプロセッサのそれぞれに前記低電力消費状態に入るよう指示するステップは、
前記コントローラがデータをキャッシュすることを可能にした後、前記コントローラから電力管理レスポンスを受信するステップと、
前記低電力消費状態に入るため、電力管理リクエストを前記複数のプロセッサのそれぞれに送信するステップと、
を有する、請求項１記載の方法。
【請求項４】
前記複数のプロセッサのそれぞれに前記アクティブ電力消費状態に入るよう指示するステップは、
前記キャッシュのデータがメモリにフラッシュされた後、前記コントローラからレスポンスを受信するステップと、
前記アクティブ電力消費状態に入るため、電力管理リクエストを前記複数のプロセッサのそれぞれに送信するステップと、
を有する、請求項１記載の方法。
【請求項５】
前記電力管理リクエストを受信するステップは、ポイント・ツー・ポイントインタコネクトを介し電力管理リクエストを受信する、請求項１記載の方法。
【請求項６】
前記低電力消費状態の電力管理リクエストをコントローラに送信するステップは、DMI通信を介し低電力消費状態の電力管理リクエストを送信する、請求項１記載の方法。
【請求項７】
前記複数のプロセッサのそれぞれから、要求される電力消費状態の電力管理リクエストを受信するステップは、
第１プロセッサから第１電力消費状態を受信するステップと、
第２プロセッサから第２電力消費状態を受信するステップと、
を有し、
前記要求される電力消費状態に基づきデータをキャッシュするため、低電力消費状態の電力管理リクエストをコントローラに送信するステップは、
前記第１電力消費状態が前記第２電力消費状態より小さい場合、前記低電力消費状態として前記第２電力消費状態を前記コントローラに送信するステップと、
前記第１電力消費状態が前記第２電力消費状態より大きい場合、前記低電力消費状態として前記第１電力消費状態を前記コントローラに送信するステップと、
を有する、請求項１記載の方法。
【請求項８】
前記電力消費状態は、ACPI(Advanced  Configuration  and  Power  Interface)仕様により規定される状態である、請求項１記載の方法。
【請求項９】
低電力消費状態に入るよう構成される第１プロセッサを有する装置であって、
前記第１プロセッサは、前記低電力消費状態の電力管理リクエストを受信し、前記第１プロセッサに前記低電力消費状態に入るよう指示し、アクティブ電力消費状態に戻るためのインタラプトを受信し、前記第１プロセッサに前記アクティブ電力消費状態に入るよう指示するよう構成されるIIO（Integrated  Input/Output）を有する装置。
【請求項１０】
ポイント・ツー・ポイントインタコネクトを介し前記第１プロセッサに接続されるIIOを有する第２プロセッサをさらに有し、
前記第２プロセッサは、前記低電力消費状態の電力管理リクエストを送信する、請求項９記載の装置。
【請求項１１】
ポイント・ツー・ポイントインタコネクトを介し前記第１プロセッサに接続されるIIOを有する第２プロセッサと、
ポイント・ツー・ポイントインタコネクトを介し前記第１プロセッサに接続されるIIOを有する第３プロセッサと
をさらに有する、請求項９記載の装置。
【請求項１２】
DMI通信を介し前記第１プロセッサに接続されるコントローラをさらに有する、請求項９記載の装置。
【請求項１３】
前記第１プロセッサに接続され、データを格納するよう構成されるメモリをさらに有する、請求項９記載の装置。
【請求項１４】
前記コントローラに接続される外部デバイスをさらに有する、請求項１２記載の装置。
【請求項１５】
複数のプロセッサを有するシステムであって、
前記複数のプロセッサからの１つのプロセッサは、前記複数のプロセッサのそれぞれが低電力消費状態を要求したか判断するよう構成されるプロセッサ通信モジュールと、前記低電力消費状態の電力管理リクエストを送信し、インタラプトを受信するとアクティブ電力消費状態の電力管理リクエストを送信するコントローラ通信モジュールと、前記複数のプロセッサの１以上と接続されるヒートシンクとを有するIIO（Integrated  Input/Output）を有するシステム。
【請求項１６】
前記プロセッサ通信モジュールはさらに、前記複数のプロセッサのそれぞれに低電力消費状態に入るよう指示するよう構成される、請求項１５記載のシステム。
【請求項１７】
前記プロセッサ通信モジュールはさらに、前記複数のプロセッサのそれぞれにアクティブ電力消費状態に戻るよう指示するよう構成される、請求項１５記載のシステム。
【請求項１８】
前記低電力消費状態の電力管理リクエストを受信し、データをキャッシュに格納し、前記アクティブ電力消費状態の電力管理リクエストを受信し、前記データを前記キャッシュからリリースするよう構成されるコントローラをさらに有する、請求項１５記載のシステム。
【請求項１９】
前記複数のプロセッサは、２つのプロセッサを有する、請求項１５記載のシステム。
【請求項２０】
前記複数のプロセッサは、４つのプロセッサを有する、請求項１５記載のシステム。
【請求項２１】
複数のプロセッサのそれぞれから、低電力消費状態の電力管理リクエストを受信し、
データのキャッシュを開始するため、前記低電力消費状態の電力管理リクエストをコントローラに送信し、
前記低電力消費状態に入る、
ようシステムに実行させる命令を含むマシーン可読媒体を有する物。
【請求項２２】
アクティブ電力消費状態に戻るためのインタラプトを受信し、
キャッシュされたデータをメモリにフラッシュするため、電力管理リクエストを前記コントローラに送信し、
前記アクティブ電力消費状態に入る、
ようシステムにさらに実行させる命令を有する物。
【請求項２３】
前記複数のプロセッサのそれぞれの電力消費状態を判断するようシステムにさらに実行させる命令を有し、
各プロセッサは、デフォルト電力消費状態を有する、請求項２１記載の物。
【請求項２４】
前記低電力消費状態に入るようシステムに実行させる命令は、
前記コントローラがデータをキャッシュするのを可能にした後、前記コントローラから電力管理レスポンスを受信し、
前記低電力消費状態に入るため、電力管理リクエストを前記複数のプロセッサのそれぞれに送信する、
ようシステムに実行させる、請求項２１記載の物。
【請求項２５】
前記アクティブ電力消費状態に入るようシステムに実行させる命令は、
前記キャッシュのデータがメモリにフラッシュされた後、前記コントローラからレスポンスを受信し、
前記低電力消費状態に入るため、電力管理リクエストを前記複数のプロセッサのそれぞれに送信する、
ようシステムに実行させる、請求項２１記載の物。
【請求項２６】
前記低電力消費状態は、ACPI（Advanced  Configuration  and  Power  Interface）仕様により規定される状態C3である、請求項２１記載の物。
【請求項２７】
前記複数のプロセッサのそれぞれから、低電力消費状態の電力管理リクエストを受信するようシステムに実行させる命令は、
ポイント・ツー・ポイントインタコネクトを介しプロセッサから電力管理リクエストを受信するようシステムに実行させる、請求項２１記載の物。
【請求項２８】
前記データのキャッシュを開始するため、前記低電力消費状態の電力管理リクエストをコントローラに送信するようシステムに実行させる命令は、
DMI通信を介し電力管理リクエストをコントローラに送信するようシステムに実行させる、請求項２１記載の物。
【請求項２９】
前記複数のプロセッサのそれぞれから、低電力消費状態の電力管理リクエストを受信するようシステムに実行させる命令は、
第１プロセッサから第１電力消費状態を受信し、
第２プロセッサから第２電力消費状態を受信するようシステムに実行させ、
前記データのキャッシュを開始するため、前記低電力消費状態の電力管理リクエストをコントローラに送信するようシステムに実行させる命令は、
前記第１電力消費状態が前記第２電力消費状態より小さい場合、前記低電力消費状態として前記第２電力消費状態を前記コントローラに送信し、
前記第１電力消費状態が前記第２電力消費状態より大きい場合、前記低電力消費状態として前記第１電力消費状態を前記コントローラに送信するようシステムに実行させる、請求項２１記載の物。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電力消費を低減する方法及び装置に関する。
【背景技術】
【０００２】
デバイスはしばしば電力消費を最小化することを試みる。これらのデバイスのプロセッサはしばしば、エネルギーを節約するため低電力消費状態に入る。低電力消費状態は、デバイスが消費する電力を低減し、ある期間の間中断しないことを可能にする。しかしながら、USB（Universal  Serial  Bus）カードやネットワークインタフェースカードなどの外部デバイスは、新たなデータがメモリに配置されるごとに、プロセッサをウェイクアップすることによって、デバイスを妨害してきた。この結果、装着された外部デバイスを有したデバイスは、外部デバイスが定期的にメモリにアクセスすることによって最適化されなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の課題は、上記問題点に鑑み、効果的に電力消費を低減する方法及び装置を提供することである。
【課題を解決するための手段】
【０００４】
上記課題を解決するため、本発明の一態様は、複数のプロセッサのそれぞれから、要求される電力消費状態の電力管理リクエストを受信するステップと、要求される電力消費状態に基づきデータをキャッシュするため、低電力消費状態の電力管理リクエストをコントローラに送信するステップと、前記複数のプロセッサのそれぞれに前記低電力消費状態に入るよう指示するステップと、アクティブ電力消費状態に戻るため、インタラプトを受信するステップと、前記キャッシュされたデータをメモリにフラッシュするため、電力管理リクエストを前記コントローラに送信するステップと、前記複数のプロセッサのそれぞれに前記アクティブ電力消費状態に入るよう指示するステップとを有する方法に関する。
【発明の効果】
【０００５】
本発明によると、効果的に電力消費を低減する方法及び装置を提供することができる。
【図面の簡単な説明】
【０００６】
【図１】図１は、装置の一実施例を示す。
【図２】図２は、一例となるロジックフローの一実施例を示す。
【図３】図３は、一実施例による低電力消費を要求するための一例となる通信図を示す。
【図４】図４は、一実施例によるアクティブ電力消費状態に戻るための一例となる通信図を示す。
【図５】図５は、一例となるシステムの一実施例を示す。
【発明を実施するための形態】
【０００７】
以下、図面に基づいて本発明の実施の形態を説明する。
【０００８】
各実施例は、一般に電力消費を最小化するために技術に関する。一実施例では、たとえば、装置は、各自がIIO（Integrated  Input/Output）を備えた複数のプロセッサ、コントローラ及びメモリを有する。付属されたIIOを備えた各プロセッサは、デフォルト電力消費モードを有する。第１プロセッサにかかる第１IIOは、その他のプロセッサ及びコントローラと通信する。第１IIOが各プロセッサから低電力消費状態に入るためのリクエストを受信すると、低電力消費状態に対する電力管理リクエストがコントローラに送信される。コントローラは、外部デバイスからの入力データを、当該データがプロセッサを介しメモリに送信されないように、キャッシュし始める。この結果、プロセッサは入力データをメモリに送信するためアクティブ電力消費状態に入らないため、電力消費は低減する。各プロセッサは、プロセッサの１つがインタラプトを受信するまで低電力消費状態にとどまる。インタラプトが受信されると、第１IIOがデータをキャッシュからメモリに不ラッシュするため、メッセージをコントローラに送信する。データがメモリに送信されると、プロセッサはそれらのアクティブ電力消費状態に戻る。このように、インタラプトがプロセッサをアクティブ電力消費状態に戻すまで、プロセッサは低電力消費状態を維持し、メモリは外部デバイスによる影響を受けない。他の実施例が説明及び請求される。
【０００９】
各種実施例は、１以上の要素を有する。ある要素は特定の処理を実行するよう構成される何れかの構成を有する。各要素は、所与の設計パラメータセットまたはパフォーマンス制約セットに対して所望されるようなハードウェア、ソフトウェア又はこれらの何れかの組み合わせとして実現されてもよい。例えば、特定のトポロジーの限定数の要素を備えた実施例が説明されるが、当該実施例は所与の実現形態に対して所望されるような他のトポロジーにおいてより多くの又はより少数の要素を含むものであってもよい。“一実施例”又は“ある実施例”という表現は、当該実施例に関連して説明された特定の機能、構成又は特徴が少なくとも１つの実施例に含まれることを意味することに留意することが重要である。明細書の各所における“一実施例では”という表現の出現は、必ずしもすべてが同一の実施例を参照しているとは限らない。
【００１０】
図１は、電力消費を低減する一例となる装置を示す。図１は、装置１００のブロック図を示す。一実施例では、装置１００は、プロセッシングシステム、コンピュータ、コンピュータシステム、コンピュータサブシステム、アプライアンス、ネットワークアプリケーション、ワークステーション、ターミナル、サーバ、パーソナルコンピュータ（PC）、デスクトップコンピュータ、ラップトップコンピュータ、ウルトララップトップコンピュータ、ノートブックコンピュータ、携帯コンピュータ、PDA(Personal  Digital  Assistant)、電話、携帯電話、セルラ電話、ハンドセット、スマートフォン、ページャ、ワンウェイページャ、ツーウェイページャ、デジタルカメラ、デジタルビデオレコーダ、デジタルビデオプレーヤー、デジタルオーディオレコーダ、デジタルオーディオプレーヤー、セットトップボックス（STB）、メディアサーバなどを含むものであってもよい。しかしながら、各実施例はこの具体例に限定されるものでない。
【００１１】
図１に示されるように、装置１００は、IIO１０３を備えた第１プロセッサ１０１、IIO１０４を備えた第２プロセッサ１０２、メモリ１０５及びコントローラ１０６などの複数の要素を含む。しかしながら、当該実施例はこの図に示される要素に限定されるものでない。図１は限定数の要素により示されるが、装置１００が所与の実現形態について所望されるようなより多数の要素を有してもよい。
【００１２】
各種実施例では、装置１００は複数のプロセッサ１０１，１０２を有する。本実施例はデュアルプロセッサシステムであるが、他の実施例はマイクロプロセッサシステムを有してもよい。しかしながら、これらの実施例はこの具体例に限定されるものでない。プロセッサ１０１，１０２は、CPU（Central  Processing  Unit）、CISC(Complex  Instruction  Set  Computer)マイクロプロセッサ、RISC(Reduced  Instruction  Set  Computing)マイクロプロセッサ、VLIW(Very  Long  Instruction  Word)マイクロプロセッサ、命令セットの組み合わせを実現するプロセッサ又は他のプロセッサデバイスなどの何れかのプロセッサ又はロジックデバイスを用いて実現されてもよい。一実施例では、例えば、プロセッサ１０１，１０２は、カリフォルニア州サンタクララのインテルコーポレイションにより製造されるプロセッサなどの汎用プロセッサとして実現されてもよい。プロセッサ１０１，１０２はまた、コントローラ、マイクロコントローラ、埋め込みプロセッサ、デジタル信号プロセッサ（DSP）、ネットワークプロセッサ、メディアプロセッサ、I/O（Input/Output）プロセッサ、MAC(Media  Access  Control)プロセッサ、ラジオベースバンドプロセッサ、FPGA(Field  Programmable  Gate  Array)、PLD(Programmable  Logic  Device)などの専用プロセッサを含むものであってもよい。各実施例は、これに限定されるものでない。
【００１３】
各プロセッサ１０１，１０２は、まとめて“低電力プロセッサモード”と呼ばれる１以上の電力セービング又は電力消費状態を含む各種動作モード又は状態で動作する。例えば、プロセッサ１０１，１０２は、ACPI(Advanced  Configuration  and  Power  Interface)仕様により規定されるような電力消費状態を用いて動作するものであってもよい。動作状態の具体例として、限定することなく、２００６年１０月１０日付けの“ADVANCED  CONFIGURATION  AND  POWER  INTERFACE  SPECIFICATION，Revision  ３．０ｂ及びその改訂版、それに後続するもの及び変形などのACPI仕様により規定されるパフォーマンス状態があげられる。ACPI仕様は、コンピュータオペレーションシステムがコンピュータシステムのプロセッサ及び周辺デバイスにより消費される電力量を制御することを可能にする電力管理システムを規定する。ACPI仕様によると、一例となるパフォーマンス状態はグローバル状態（G0-G3など）、デバイス状態（D0-D3など）及びプロセッサ状態（C0-C7など）を有してもよい。
【００１４】
ACPI仕様は、電力セービングモードC0-Cxを規定する。ここで、Cx状態はプロセッサの電力消費状態のため利用される。一実施例では、電力消費状態は、Cx状態を参照して決定される。第１Cx状態はC0状態を含む。C0状態は、プロセッサがフル動作状態であり、アクティブ電力消費状態であるときである。C0状態はデフォルト状態である。一実施例では、C3状態は低電力消費状態である。C4状態は、C３状態より低い電力消費状態である。最も低い電力消費状態はC7状態である。一実施例では、Cｘ状態の個数が増加するに従って、電力消費は減少する。他の電力セービングモードは、所与の実現形態について所望されるプロセッサ１０１，１０２について実現されてもよい。
【００１５】
一実施例では、第１プロセッサ１０１は、プロセッサ間のメッセージの送信を可能にするバスを介し第２プロセッサ１０２と通信する。一実施例では、第１プロセッサは、限定されることなくQPI（Quick  Path  Interconnect）などのインターコネクトを介し第２プロセッサと通信する。インターコネクトは、あるプロセッサとネットワークの他の１以上のプロセッサ、１以上のIOハブ又はルーティングハブとを接続するのに利用される。インターコネクトは、すべてのコンポーネントがネットワークを介し他のコンポーネントにアクセスすることを可能にする。インターコネクトはQPIとして説明されるが、他の適切なポイント・ツー・ポイントインターコネクトが利用されてもよい。各実施例は、これに限定されるものでない。
【００１６】
一実施例では、各プロセッサ１０１，１０２は、IIO１０３，１０４を有する。第１IIO１０３は、第１プロセッサ１０１と関連付けされる。第２IIO１０４は、第２プロセッサ１０２と関連付けされる。IIO１０３，１０４は、プロセッサ１０１，１０２が装置１００の他の要素と情報を通信することを可能にする。
【００１７】
各種実施例では、装置１００はメモリ１０５を有する。メモリ１０５はプロセッサ１０１，１０２と接続される。一実施例では、プロセッサにより実現されるメモリプロトコルは、メモリとプロセッサとが通信するため利用される。例えば、メモリとプロセッサとは、DDR３プロトコルにより通信する。メモリとプロセッサとは所与の実現形態について所望される他のプロトコルを介し通信してもよいことが理解される。各実施例は、これに限定されるものでない。
【００１８】
メモリ１０５は、揮発性及び不揮発性メモリの双方を含むデータを格納可能な何れかのマシーン可読又はコンピュータ可読媒体を用いて実現されてもよい。例えば、メモリ１０５は、RAM（Random  Access  Memory）、DRAM（Dynamic  RAM）、DDRAM（Double-Data-Rate  DRAM）、シンクロナスDRAM（SDRAM）、スタティックRAM(SRAM)又は情報を格納するのに適した他の何れかのタイプのメディアを含むものであってもよい。メモリ１０５の一部又はすべてはプロセッサ１０１，１０２と同じ集積回路上に含まれてもよく、又はメモリ１０５の一部又はすべてはプロセッサ１０１，１０２の集積回路の外部のハードディスクドライブなどの集積回路又は他のメディアに配置されてもよいことに留意することが有用である。各実施例は、この具体例に限定されるものでない。
【００１９】
各種実施例では、装置１００は、プロセッサ１０１に接続されるコントローラ１０６を有する。コントローラ１０６は、１以上の相互接続を介し各種外部デバイスと情報をやりとりする。コントローラ１０６は、低速の周辺バス及びデバイスと接続するのに使用されるサウスブリッジであってもよい。コントローラ１０６の具体例として、PCH(Platform  Controller  Hub)があげられる。しかしながら、各実施例はこの具体例に限定されるものでない。装置はコントローラを使用するとして説明されるが、他の適切な通信モジュールが利用されてもよい。各実施例は、これに限定されるものでない。
【００２０】
コントローラ１０５は、IIOとコントローラとの間のDMI（Direct  Media  Interface）又は他の適切な通信リンクを介しIIO１０３と通信する。DMIは、プロセッサとコントローラとの間のポイント・ツー・ポイント通信を可能にする。
【００２１】
各種実施例では、外部デバイス（図１に図示せず）は、コントローラ１０６を介し装置１００に接続される。外部デバイスは、装置１００のメモリ１０５に追加的なデータを供給する。外部デバイスの具体例として、USB(Universal  Serial  Bus)カード、PCI(Peripheral  Component  Interconnect)バス、リアルタイムクロック、又はNIC(Network  Interface  Card)があげられる。しかしながら、各実施例はこの具体例に限定されるものでない。
【００２２】
全体動作として、装置１００において、第１プロセッサ１０１に係る第１IIO１０３は、プロセッサ１０１，１０２とコントローラ１０６と通信する。第１IIO１０３が各プロセッサ１０１，１０２から低電力消費状態リクエストを受信すると、低電力消費状態のための電力管理リクエストがコントローラ１０６に送信される。コントローラに送信される電力管理リクエストの電力状態は、２つのプロセッサ１０１，１０２から受信される低電力消費状態リクエストの電力状態より高いものであってもよい。コントローラ１０６は、外部デバイスからの入力データのキャッシュを開始する。データをキャッシュすることによって、データはメモリ１０５に即座に送信される必要がなくなり、プロセッサ１０１，１０２は、これらが低電力状態に入ることをコントローラ１０６が許可すると、低電力消費状態にとどまる。プロセッサ１０１，１０２の１つがインタラプトを受信するまで、プロセッサ１０１，１０２は低電力消費状態にとどまる。インタラプトが受信されると、第１IIO１０３は、メモリ１０５にキャッシュされたデータをフラッシュするため、電力管理リクエストをコントローラ１０６に送信する。データがメモリ１０５により受信されると、プロセッサ１０１，１０２は、各自のアクティブ電力消費状態に戻る。他の実施例が説明及び請求される。
【００２３】
装置１００の動作が、図２及び関連する実施例を参照してさらに説明される。ここに与えられる図２は特定のプログラミングロジックを含むが、プログラミングロジックは単にここに記載される一般的な機能がどのようにして実現可能かの具体例を提供することが理解できる。さらに、与えられたプログラミングロジックは、特段の指摘がない場合、その順序により実行される必要はない。
【００２４】
図２は、一実施例によるプロセッサの電力消費状態を低減するためのプログラミングロジック２００を示す。ロジックフロー２００は、ここに記載される１以上の実施例により実行される処理を表す。ロジックフロー２００に示されるように、第１プロセッサに係る第１IIOは、ブロック２０５において、複数のプロセッサの各プロセッサの電力消費状態を決定する。一実施例では、第１プロセッサに係る第１IIOは、コントローラに接続されるプロセッサであってもよい。IIOを備える他のプロセッサは、第１プロセッサと関連する第１IIOと通信する。しかしながら、一実施例では、第１IIOのみがコントローラと直接通信する。この結果、コントローラは単一のIIOのみから情報を受信する。
【００２５】
各プロセッサは、ACPI仕様により規定されるような電力消費状態を用いて動作する。一実施例では、電力消費状態は、パッケージCx状態を参照して決定される。C0状態では、プロセッサはアクティブ電力消費状態においてフル動作する。C0状態はデフォルト状態であってもよい。
【００２６】
一実施例では、第１IIOは、１以上のプロセッサから低電力消費状態のリクエストを受信する。低電力消費状態をリクエストしたプロセッサは、その他すべてのプロセッサにC状態リクエストを配信する。一実施例では、第１IIOは、ブロック２１０において、各プロセッサがリクエストされた電力消費状態リクエストについて電力管理リクエストを送信したか判断する。
【００２７】
例えば、プロセッサの１つは、C3状態などの電力消費状態をリクエストする。プロセッサは、他のすべてのプロセッサとIIOにC３状態リクエストを配信する。しかしながら、第１IIOは、すべてのプロセッサが電力消費状態をリクエストするまで、電力管理リクエストをコントローラに送信することはできない。すべてのプロセッサが電力消費状態をリクエストすると、第１IIOは、ブロック２１５において、低電力消費状態のための電力管理リクエストをコントローラに送信する。
【００２８】
一実施例では、第１プロセッサによりリクエストされる低電力消費状態は、第２プロセッサにより送信されるリクエストされた電力消費状態に等しいものでなくてもよい。例えば、第１プロセッサはC3状態をリクエストし、第２プロセッサはC6状態などのより低い電力消費状態をリクエストするようにしてもよい。プロセッサが異なるC状態をリクエストした場合、第１IIOは、より高い電力消費状態により電力管理リクエストをコントローラに送信する。上記具体例を参照して、第１プロセッサがC３状態をリクエストし、第２プロセッサがC６状態をリクエストする場合、第１IIOはC３状態の電力管理リクエストを送信する。
【００２９】
一実施例では、プロセッサが異なるC状態をリクエストした場合、第１IIOは、より高い電力消費のより小さな番号のCx状態により電力管理リクエストをコントローラに送信する。一実施例では、プロセッサが異なるC状態をリクエストした場合、第１IIOは、電力消費状態の平均により電力管理リクエストをコントローラに送信する。
【００３０】
第１IIOは、ブロック２２０において、コントローラがデータのキャッシュを開始すると、コントローラから電力管理レスポンスを受信する。一実施例では、外部デバイスは、プロセッサに送信されるデータをコントローラに提供し、プロセッサは、データをメモリに提供する。一実施例では、プロセッサは低電力消費状態をリクエストする。コントローラがプロセッサにデータを送信し続ける場合、プロセッサは、低電力消費状態にとどまることはできない。データをコントローラにキャッシュすることによって、コントローラは、低電力消費状態にプロセッサがとどまることを可能にするデータを保持する。
【００３１】
IIOにより電力管理レスポンスが受信された後、第１IIOは、ブロック２２５において、複数のプロセッサが低電力消費状態に入るよう指示する。一実施例では、IIOは、コントローラがデータをキャッシュすることを可能にした後、コントローラから電力管理レスポンスを受信する。IIOは、低電力消費状態に入るため、電力管理リクエストを各プロセッサに送信する。低電力消費状態に入るためのリクエストを発信することによって、低電力消費状態に入る。
【００３２】
図３は、一実施例による低電力消費をリクエストするIIOを備えたデュアルプロセッサの一例となる通信図を示す。図３は限定数のプロセッサを有するよう示されるが、デバイスは所与の実現形態について所望されるようなより多数のプロセッサを有してもよいことが理解される。図３はC3状態の電力管理リクエストにより示されるが、異なるCx状態が所与の実現形態について所望されるようにリクエストされてもよい。図３は第１プロセッサが電力管理リクエストを送信することにより示されるが、異なるプロセッサが所与の実現形態について所望されるような電力管理リクエストを送信するようにしてもよいことが理解される。各実施例は、これに限定されるものでない。
【００３３】
一実施例では、第１プロセッサは、ブロック３０１において、C３状態に対する電力管理リクエストを第１IIOに送信する。ブロック３０２において、第１IIOは当該リクエストのアクノリッジメントを送信し、ブロック３０３において、第１プロセッサはC３状態の電力管理リクエストを第２プロセッサに配信する。第２プロセッサは、ブロック３０４において、第１プロセッサにアクノリッジメントを送信する。ブロック３０５において、第１プロセッサは、C３状態の電力管理リクエストを第２IIOに送信し、ブロック３０６において、第２IIOは、リクエストのアクノリッジメントを送信する。しかしながら、第１IIOは、第２プロセッサが低電力消費状態をリクエストするまで、低電力消費状態に入るための電力管理リクエストをコントローラに送信しない。
【００３４】
一実施例では、ブロック３０７において、第２プロセッサは、C３状態の電力管理リクエストを第２IIOに送信する。ブロック３０８において、第２IIOは、当該リクエストのアクノリッジメントを返す。ブロック３０９において、第２プロセッサは、C３状態の電力管理リクエストを第１プロセッサに送信する。ブロック３１０において、第１プロセッサは、アクノリッジメントを第２プロセッサに送信する。
【００３５】
第２プロセッサからの電力管理リクエストは、ブロック３１１において、第１プロセッサがC３状態の第２リクエストを第１IIOに再送することをトリガーする。ブロック３１２において、第１IIOは、第１プロセッサがC３状態に入ることを可能にするよう、アクノリッジメントを第１プロセッサに送信する。ブロック３１３において、第２プロセッサは、C３状態の電力管理リクエストを第１IIOに送信する。第１プロセッサと第２プロセッサの双方がC３状態の電力管理リクエストを送信したため、ブロック３１４において、第１IIOは、C３状態の電力管理リクエストをコントローラに送信する。ブロック３１５において、コントローラは、レスポンスを第１IIOに送信し、ブロック３１６において、外部デバイスから受信したデータのキャッシュを開始する。ブロック３１７において、第１IIOは、ブロック３１３における以前のリクエストのアクノリッジメントを第２プロセッサに送信する。
【００３６】
同時に、ブロック３１２においてトリガーイベントに応答して、アクノリッジメントが第１IIOから第１プロセッサに受信された後、ブロック３１８において、第１プロセッサは、C３状態の電力管理リクエストを第２プロセッサに送信する。ブロック３１９において、第２プロセッサは当該リクエストをアクノリッジする。ブロック３２０において、第１プロセッサは、C３状態の電力管理リクエストを、第２プロセッサがアクノリッジする（ブロック３２１）第２IIOに送信する。このアクノリッジメント３２１が第１プロセッサにより受信された後、第１プロセッサは、ブロック３２２において、低電力消費のC３状態を開始するためのリクエストを第１IIOに送信し、ブロック３２３において、第２プロセッサにおいて低電力消費のC3状態を開始するためのリクエストを送信する。一実施例では、第１プロセッサは、第１IIOからアクノリッジメントを受信した後、C３状態の電力消費リクエストを発信する。第２プロセッサは、ブロック３２４において、当該リクエストのアクノリッジメントを送信し、第１プロセッサは、低電力消費のC３状態に入る。
【００３７】
一方、第２プロセッサは、アクノリッジメントを受信した後（３１７）、ブロック３２５において、低電力消費のC3状態を開始するためのリクエストを第２IIOに送信する。第２IIOは、ブロック３２６において、低電力消費状態に入る準備ができていない場合、非アクノリッジメントレスポンスを送信する。第２プロセッサは、ブロック３２７において、低電力消費のC3状態を開始するためのさらなるリクエストを第２IIOに送信する。第２IIOは、ブロック３２８において、低電力消費状態に入る準備ができると、当該リクエストのアクノリッジメントを送信し、第２プロセッサは、低電力消費のC3状態に入る。
【００３８】
第１プロセッサが低電力消費のC3状態を開始するためのリクエストを第１IIOに送信すると（３２２）、第１IIOは、ブロック３２９において、非アクノリッジメントレスポンスを送信する。第１IIOは、活動時間が経過し、プロセッサがアクティブ電力消費状態に戻るためのインタラプトを受信するまで、ブロック３３０において、非アクノリッジメントレスポンスを第１プロセッサのリクエスト（３２２）に非アクノリッジメントレスポンスを送信し続ける。
【００３９】
図２を参照するに、デバイスは、ブロック２３０においてインタラプトを受信するまで、低電力消費状態にとどまる。低電力消費状態からのイグジットをトリガーするためのインタラプト又は他の適切なメソッドが受信される。一実施例では、インタラプトは、プロセッサがアクティブ電力消費状態に戻るためのリクエストである。一実施例では、インタラプトは、ある期間後に受信される。
【００４０】
プロセッサがインタラプトを受信すると、当該プロセッサは、アクティブ状態電力消費リクエストを他のすべてのプロセッサとIIOに配信する。第１IIOがインタラプトを受信すると、電力管理リクエストがコントローラに送信され、ブロック２３５において、１以上のプロセッサがアクティブ電力消費状態を再開する。電力管理リクエストを受信した後、コントローラは、キャッシュのデータをメモリにフラッシュする。キャッシュのデータは、プロセッサがアクティブ電力消費状態に戻る前にメモリにフラッシュされる。プロセッサがアクティブ電力消費状態を再開する前にメモリにキャッシュのデータを提供することによって、データコンシスタンシが確保される。一実施例では、１つのプロセッサしかアクティブ電力消費状態に戻っていなくても、コントローラは、プロセッサがアクティブ電力消費状態に入る前に、キャッシュからのデータをメモリにフラッシュする。
【００４１】
キャッシュのデータがフラッシュされた後、コントローラは電力管理レスポンスを送信する。第１IIOは、ブロック２４０において、コントローラから電力管理レスポンスを受信する。第１IIOは、ブロック２４５において、複数のプロセッサにアクティブ電力消費状態に入るよう指示する。プロセッサにアクティブ電力消費状態に入るよう指示する前に、コントローラからのレスポンスが、キャッシュのデータのメモリへのフラッシュ後に受信される。電力管理リクエストは、アクティブ電力消費状態に入るため、各プロセッサに送信される。
【００４２】
図４は、一実施例によるアクティブ状態に戻るIIOを備えたデュアルプロセッサの一例となる通信図を示す。一実施例では、プロセッサはインタラプトを受信する。一実施例では、インタラプトを受信したプロセッサは、他のすべてのプロセッサとIIOとにインタラプトを配信する。一実施例では、第２プロセッサはインタラプトを受信する。第２プロセッサは、ブロック４０１において、アクティブ電力消費のC0状態に戻るための電力管理リクエストを第２IIOに送信する。第２IIOは、ブロック４０２において、アクノリッジメントを第２プロセッサに送信する。第２プロセッサは、ブロック４０３において、アクノリッジメントを第２プロセッサに送信する。第２プロセッサは、ブロック４０３において、C0状態への電力管理リクエストを第１プロセッサに送信する。第１プロセッサは、ブロック４０４において、第１プロセッサが低電力消費のC3状態にとどまることを示すアクノリッジメントにより応答する。第２プロセッサは、ブロック４０５において、アクティブ電力消費のC0状態に戻るための電力管理リクエストを第１IIOに送信する。
【００４３】
さらに、第１プロセッサのアクノリッジメント４０４に応答して、第１プロセッサは、ブロック４０６において、低電力消費状態C3にとどまるためのリクエストを第１IIOに送信する。第１IIOは、ブロック４０７において、C3状態に関するアクノリッジメントを送信する。第１プロセッサは、ブロック４０８において、低電力消費状態C3にとどまるための電力管理リクエストを第２プロセッサに送信する。第２プロセッサは、ブロック４０９において、アクティブ電力消費状態C0のアクノリッジメントにより応答する。
【００４４】
同時に、第２プロセッサが、ブロック４０５において、アクティブ電力消費のC0状態の電力管理リクエストを第１IIOに送信した後、第１IIOは、ブロック４１１において、アクティブ電力消費のC0状態に戻るための電力管理リクエストをコントローラに送信する。コントローラは、ブロック４１２，４１３，４１４において、キャッシュからのデータをメモリにフラッシュする。キャッシュのすべてのデータがメモリにフラッシュされた後、コントローラは、ブロック４１５において、電力管理レスポンスを第１IIOに送信する。第１IIOは、ブロック４１６において、アクティブ電力管理のC0状態に対する第２プロセッサの電力管理リクエスト４０５に対するアクノリッジメントを送信する。アクノリッジメントが送信された後（４１６）、プロセッサは、メモリのデータにアクセスすることができる。このアクノリッジメントは、第２プロセッサにアクティブ電力消費のC0状態に戻らせる。一実施例では、低電力消費状態C3にとどまるための第１プロセッサから第２IIOに送信されるリクエスト（４１０）は、ブロック４１７において、アクノリッジメントを送信してもよい。第１プロセッサは、アクティブ電力消費のC0状態に戻る。プロセッサの１つがウェイクアップすると、その他のプロセッサもまた、すべてのプロセッサがキャッシュに対してスヌープを実行し、メモリコントローラにアクセスするよう求められるため、ウェイクアップする。一実施例では、プロセッサはウェイクアップするが、プロセッサ内のコアはウェイクアップする必要はない。
【００４５】
図５は、システムの一実施例を示す。図５はシステム５００を示す。システム５００は、装置１００やロジックフロー２００など、ここに記載される１以上の実施例により用いるのに適したシステム又はアーキテクチャであってもよい。
【００４６】
各種実施例では、システム５００は、無線システム、有線システム又は双方の組み合わせとして実現されてもよい。無線システムとして実現されるとき、システム５００は、１以上のアンテナ、送信機、受信機、送受信機、アンプ、フィルタ、制御ロジックなど、無線共有メディアを介し通信するのに適したコンポーネントとインタフェースとを有するものであってもよい。無線共有メディアの一例は、RFスペクトルなどの無線スペクトルの一部を含むものであってもよい。有線システムとして実現されるとき、システム５００は、入出力（I/O）アダプタ、I/Oアダプタと対応する有線通信メディアとを接続する物理コネクタ、ネットワークインタフェースカード（NIC）、ディスクコントローラ、ビデオコントローラ、オーディオコントローラなど、有線通信メディアを介し通信するのに適したコンポーネントとインタフェースとを有するものであってもよい。有線通信メディアの具体例として、ワイヤ、ケーブル、メタルリード、PCB(Printed  Circuit  Board)、バックプレーン、スイッチファブリック、半導体物質、ツイストペアワイヤ、同軸ケーブル、光ファイバなどがあげられる。
【００４７】
各種実施例では、システム５００は複数のプロセッサ５０１，５０２を有し、これら複数のプロセッサからの１つのプロセッサ５０１はIIO５０３を有する。IIO５０３は、プロセッサ通信モジュール５０４とコントローラ通信モジュール５０５とを有する。一実施例では、１以上のプロセッサがヒートシンクに接続される。
【００４８】
一実施例では、プロセッサ通信モジュール５０４は、各プロセッサが低電力消費状態をリクエストしたか判断するよう構成される。一実施例では、プロセッサ通信モジュール５０４は、各プロセッサに低電力消費状態に入るよう指示するよう構成される。一実施例では、プロセッサ通信モジュール５０４は、各プロセッサにアクティブ電力消費状態に戻るよう指示するよう構成される。
【００４９】
コントローラ通信モジュール５０５は、低電力消費状態に対する電力管理リクエストを送信するよう構成される。コントローラ通信モジュール５０５は、低電力消費状態に対する電力管理レスポンスを受信するよう構成される。一実施例では、コントローラ通信モジュール５０５は、アクティブ電力消費状態に対する電力管理リクエストを送信するよう構成される。一実施例では、コントローラ通信モジュール５０５は、アクティブ電力消費状態に対する電力管理レスポンスを受信するよう構成される。
【００５０】
システムは、情報を通信するための１以上の論理又は物理チャネルを確立する。この情報は、メディア情報と制御情報とを含むものであってもよい。メディア情報は、ユーザ用コンテンツをあらわすデータを意味する。コンテンツの具体例として、例えば、会話からのデータ、テレビ会議、ストリーミングビデオ、電子メール（email）メッセージ、ボイスメールメッセージ、英数字シンボル、グラフィックス、画像、ビデオ、テキストなどであってもよい。会話からのデータは、例えば、発話情報、サイレンス期間、バックグラウンドノイズ、コンフォートノイズ、トーンなどがあげられる。制御情報は、自動システム用のコマンド、命令又は制御ワードを表すデータを意味する。例えば、制御情報は、システムを介しメディア情報をルーティングし、又はノードに所定の方法によりメディア情報を処理するよう指示するのに利用されてもよい。
【００５１】
全体処理について、システム５００では、IIO５０３のプロセッサ通信モジュール５０４は、各プロセッサ５０１，５０２から低電力消費状態リクエストを受信する。IIO５０３のコントローラ通信モジュール５０５は、低電力消費状態の電力管理リクエストを送信する。IIO５０３のプロセッサ通信モジュール５０４は、インタラプトを受信する。コントローラ通信モジュール５０５は、電力管理リクエストを送信する。電力管理リクエストに対するレスポンスがプロセッサ５０１，５０２により受信されると、プロセッサ５０１，５０２は、各自のアクティブ電力消費状態に戻る。他の実施例が説明及び請求される。
【００５２】
各実施例の完全な理解を提供するため、多数の具体的詳細が提供された。しかしながら、各実施例はこれら具体的詳細なしに実現可能であることは当業者に理解されるであろう。他の例では、実施例を不明瞭にしないように、周知の処理、コンポーネント及び回路は詳細には説明されていない。ここに開示される具体的な構成及び機能の詳細は、典型例であり、実施例の範囲を必ずしも限定するものでないことは理解されうる。
【００５３】
各種実施例は、ハードウェア要素、ソフトウェア要素又は双方の組み合わせを用いて実現されてもよい。ハードウェア要素の具体例として、プロセッサ、マイクロプロセッサ、回路、回路要素（トランジスタ、レジスタ、キャパシタ、インダクタなど）、集積回路、ASIC(Application  Specific  Integrated  Circuit)、PLD（Programmable  Logic  Device）、DSP（Digital  Signal  Processor）、FPGA（Field  Programmable  Gate  Array）、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどがあげられる。ソフトウェアの具体例として、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシーンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、ファンクション、メソッド、プロシージャ、ソフトウェアインタフェース、API(Application  Program  Interface)、命令セット、計算コード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル又はこれらの何れかの組み合わせなどがあげられる。実施例がハードウェア要素及び／又はソフトウェア要素を用いて実現されるかの判断は、所望の計算レート、電力レベル、熱耐性、処理リサイクルバジェット、入力データレート、出力データレート、メモリリソース、データバススピード、他の設計又はパフォーマンス制約などの任意数のファクタに従って変化する。
【００５４】
一部の実施例は、“接続される”及び“結合される”という表現とその派生語を用いて説明される。これらの用語は、互いに同義語として意図されるものでない。例えば、一部の実施例は、２以上の要素が互いに直接的な物理的又は電気的接触状態にあることを示すために“接続される”及び／又は“結合される”という用語を用いて説明される。しかしながら、“接続される”という用語はまた、２以上の要素が互いに直接的な接触状態にないが、依然として互いに協調又は相互作用することを意味するかもしれない。
【００５５】
一部の実施例は、例えば、マシーンによる実行時に、マシーンに各実施例による方法及び／又は処理を実行させる命令又は命令セットを格納するマシーン可読媒体又は物を用いて実現されてもよい。このようなマシーンは、例えば、何れか適切な処理プラットフォーム、計算プラットフォーム、計算装置、処理装置、計算システム、処理システム、コンピュータ、プロセッサなどがあり、ハードウェア及び／又はソフトウェアの何れか適切な組み合わせを用いて実現可能である。マシーン可読媒体又は物は、例えば、何れか適切なタイプのメモリユニット、メモリデバイス、メモリ物、記憶媒体、ストレージデバイス、ストレージ物、格納媒体及び／又は格納ユニット、メモリ、着脱可能又は着脱不可なメディアなどを含む。命令は、何れか適切なハイレベル、ローレベル、オブジェクト指向、ビジュアル、コンパイル及び／又はインタプリットプログラミング言語を用いて実現されるソースコード、コンパイルコード、インタプリットコード、実行可能コード、スタティックコード、ダイナミックコード、暗号化コードなどの何れか適切なタイプのコードを含む。
【００５６】
特段の断りがない場合、“処理”、“計算”、“算出”、“判断”などの用語は、計算システムのレジスタ及び／又はメモリ内の物理量（電子など）として表現されるデータを、計算システムのメモリ、レジスタ又は他の同様の情報ストレージ、送信装置又は表示装置内の物理量として同様に表現される他のデータに変換及び／又は操作するコンピュータ、計算システム又は同様の電子計算装置のアクション及び／又は処理を表す。各実施例は、これに限定されるものでない。
【００５７】
ここに記載される方法は記載された順序により又は何れか特定の順序により実行される必要はないことに留意すべきである。さらに、ここに特定される方法に関して説明される各種動作は逐次的又は並列的に実行可能である。
【００５８】
ここでは特定の実施例が説明及び図示されたが、同一の目的を達成するため計算される何れかの構成が図示される特定の実施例に置換可能であることが理解されるべきである。この開示は、上記記載は例示的になされたものであり、限定するものでないことが理解されるべきである。上記実施例の組み合わせとここでは具体的には示されない他の実施例とが、上記説明を参照すると当業者に明らかになるであろう。このため、各種実施例の範囲は、上記組み合わせ、構成及び方法が使用される他の何れかの用途を含む。
【００５９】
開示の概要は、読者が技術的な開示の性質を迅速に確認するのを可能にする概要を求める３７C.F.R.セクション１．７２（ｂ）に準拠するよう与えられる。それは請求項の範囲又は意義を解釈又は限定するのに利用されるものでないことが主張される。さらに、上述した詳細な説明では、開示の簡略化のため、各種特徴が１つの実施例に組み合わされることが理解されうる。この開示の方法は、請求された実施例が各請求項に明示的に記載されるより多くの特徴を要求する意図を反映するものとして解釈されるべきでない。むしろ、以下の請求項が反映するように、発明の主題は開示された１つの実施例のすべての特徴より少なくてもよい。従って、以下の請求項は、各請求項が個別の好適な実施例として主張する詳細な説明に含まれる。添付された請求項では、“含まれる”という用語は、“有する”という用語と同義的に使用される。さらに、“第１”、“第２”、“第３”などの用語は単なるラベルとして用いられ、それらの目的に対する数値的な要求を課すものでない。
【００６０】
主題は構造的特徴及び／又は方法ステップに特有の用語により説明されたが、添付した請求項に規定される主題は上述した具体的特徴又はステップに必ずしも限定されないことが理解されるべきである。むしろ、これらの具体的特徴及びステップは、請求項を実現する実現形態として開示される。
【００６１】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６２】
１００  装置
１０１，１０２，５０１，５０２  プロセッサ
１０３，１０４，５０３  IIO
１０５  メモリ
１０６  コントローラ
５００  システム
５０４  プロセッサ通信モジュール
５０５  コントローラ通信モジュール
【図１】
2011014135.tif 000003
【図２】
2011014135.tif 000004
【図３】
2011014135.tif 000005
【図４】
2011014135.tif 000006
【図５】
2011014135.tif 000007