(57)【要約】分離式電源管理状態を提供する新規な方法および装置。本発明は、電源管理状態についてのオペレーティングシステムの関与範囲をホストリソースのハードウェアの実際の状態についてのオペレーティングシステムの関与範囲から切り離すものである。すなわち、ホストオペレーティングシステム（２００）が「オフ」であってもホストコンピュータ（１００）のリソース（２３０）は作動し機能し続けることができ、かつホストシステムおよびユーザーにとっては電力の節約になるものである。
2005527906.tif 000002
【特許請求の範囲】
【請求項１】
ホストオペレーティングシステム（ＯＳ）を有するホストコンピュータの複数のホストリソースの電源状態を管理する方法であって、
ホストオペレーティングシステムから命令を受信して前記ホストリソースの少なくとも一つに対して第一の電源状態を設定するステップと、
少なくとも一つの電源状態抽象化装置を参照して、前記ホストリソースの前記少なくとも一つに対して前記第一の電源状態を第二の電源状態に変換するステップと
を含み、
前期第一の電源状態と第二の電源状態は異なるものである、方法。
【請求項２】
更に、前記ホストオペレーティングシステムからの命令に反して、前記ホストリソースの前記少なくとも一つが前記第二の電源状態に設定されるようにするステップを含む請求項１に記載の方法。
【請求項３】
前記第一の電源状態がＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＳ４である場合には、前記第二の電源状態は前記ＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＳ１である、請求項１に記載の方法。
【請求項４】
前記第一の電源状態がＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＳ３である場合には、前記第二の電源状態は前記ＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＳ１である、請求項１に記載の方法。
【請求項５】
前記第一の電源状態がＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＣ４である場合には、前記第二の電源状態は前記ＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＣ２である、請求項１に記載の方法。
【請求項６】
前記第一の電源状態がＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＣ３である場合には、前記第二の電源状態は前記ＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＣ２である、請求項１に記載の方法。
【請求項７】
前記設定されるようにするステップは、前記ホストリソースの前記少なくとも一つが前記第二の電源状態に設定されるようにするものであり、その場合、前記第二の電源状態は、前記ホストオペレーティングシステムからの命令に部分的にのみ反するものである、請求項２に記載の方法。
【請求項８】
前記ホストリソースの前記少なくとも一つが記憶装置である、請求項１に記載の方法。
【請求項９】
前記記憶装置はディスクドライブである、請求項８に記載の方法。
【請求項１０】
前記記憶装置はランダムアクセスメモリ（ＲＡＭ）である、請求項８に記載の方法。
【請求項１１】
前記ホストリソースの前記少なくとも一つは、コンパクトディスク（ＣＤ）プレーヤーである、請求項１に記載の方法。
【請求項１２】
前記ホストリソースの前記少なくとも一つは、デジタルビデオディスク（ＤＶＤ）プレーヤーである、請求項１に記載の方法。
【請求項１３】
前記少なくとも一つの電源状態抽象化装置は、レジスタである、請求項１に記載の方法。
【請求項１４】
ホストオペレーティングシステム（ＯＳ）（２２０）を有するホストコンピュータの複数のホストリソースの電源状態を管理する装置であって、
ホストオペレーティングシステムから命令を受信して前記ホストリソースの少なくとも一つに対して第一の電源状態（１４０）を設定する手段（１５０）と、
少なくとも一つの電源状態抽象化装置と、
前記少なくとも一つの電源状態抽象化装置（１４０）を参照して、前記複数のホストリソースの前記少なくとも一つに対して前記第一の電源状態を第二の電源状態に変換する手段（１４０）と
を備え、
前期第一の電源状態と第二の電源状態は異なるものである、装置。
【請求項１５】
更に、前記ホストオペレーティングシステムからの命令に反して、前記ホストリソースの前記少なくとも一つが前記第二の電源状態に設定されるようにする手段（１４０）を備える、請求項１４に記載の装置。
【請求項１６】
前記第一の電源状態がＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＳ４である場合には、前記第二の電源状態は前記ＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＳ１である、請求項１４に記載の装置。
【請求項１７】
前記第一の電源状態がＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＳ３である場合には、前記第二の電源状態は前記ＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＳ１である、請求項１４に記載の装置。
【請求項１８】
前記第一の電源状態がＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＣ４である場合には、前記第二の電源状態は前記ＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＣ２である、請求項１４に記載の装置。
【請求項１９】
前記第一の電源状態がＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＣ３である場合には、前記第二の電源状態は前記ＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＣ２である、請求項１４に記載の装置。
【請求項２０】
前記第二の電源状態は、前記ホストオペレーティングシステムからの命令に部分的にのみ反するものである、請求項１５に記載の装置。
【請求項２１】
前記ホストリソースの前記少なくとも一つが記憶装置である、請求項１４に記載の装置。
【請求項２２】
前記記憶装置はディスクドライブである、請求項２１に記載の装置。
【請求項２３】
前記記憶装置はランダムアクセスメモリ（ＲＡＭ）である、請求項２１に記載の装置。
【請求項２４】
前記ホストリソースの前記少なくとも一つは、コンパクトディスク（ＣＤ）プレーヤーである、請求項１４に記載の装置。
【請求項２５】
前記ホストリソースの前記少なくとも一つは、デジタルビデオディスク（ＤＶＤ）プレーヤーである、請求項１４に記載の装置。
【請求項２６】
前記少なくとも一つの電源状態抽象化装置は、レジスタである、請求項１４に記載の装置。
【請求項２７】
ホストオペレーティングシステム（ＯＳ）（２２０）を有するホストコンピュータの複数のホストリソースの電源状態を管理する装置であって、
少なくとも一つの電源状態抽象化装置（１４０）と、
ホストオペレーティングシステムから命令を受信して、前記ホストリソースの少なくとも一つに対して第一の電源状態を設定し前記少なくとも一つの電源状態抽象化装置を参照して、前記ホストリソースの前記少なくとも一つに対して前記第一の電源状態を第二の電源状態に変換するＢＩＯＳ（１５０）と
を備え、
前期第一の電源状態と第二の電源状態は異なるものである、装置。
【請求項２８】
前記ＢＩＯＳは、前記ホストオペレーティングシステムからの命令に反して、前記ホストリソースの前記少なくとも一つが前記第二の電源状態に設定されるようにする、請求項２７に記載の装置。
【請求項２９】
前記第一の電源状態がＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＳ４である場合には、前記第二の電源状態は前記ＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＳ１である、請求項２７に記載の装置。
【請求項３０】
前記第一の電源状態がＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＳ３である場合には、前記第二の電源状態は前記ＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＳ１である、請求項２７に記載の装置。
【請求項３１】
前記第一の電源状態がＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＣ４である場合には、前記第二の電源状態は前記ＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＣ２である、請求項２７に記載の装置。
【請求項３２】
前記第一の電源状態がＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＣ３である場合には、前記第二の電源状態は前記ＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＣ２である、請求項２７に記載の装置。
【請求項３３】
前記第二の電源状態は、前記ホストオペレーティングシステムからの命令に部分的にのみ反するものである、請求項２８に記載の装置。
【請求項３４】
前記ホストリソースの前記少なくとも一つが記憶装置である、請求項２７に記載の装置。
【請求項３５】
前記記憶装置はディスクドライブである、請求項３４に記載の装置。
【請求項３６】
前記記憶装置はランダムアクセスメモリ（ＲＡＭ）である、請求項３４に記載の装置。
【請求項３７】
前記ホストリソースの前記少なくとも一つは、コンパクトディスク（ＣＤ）プレーヤーである、請求項２７に記載の装置。
【請求項３８】
前記ホストリソースの前記少なくとも一つは、デジタルビデオディスク（ＤＶＤ）プレーヤーである、請求項２７に記載の装置。
【請求項３９】
前記少なくとも一つの電源状態抽象化装置は、レジスタである、請求項２７に記載の装置。
【請求項４０】
複数の命令またはコントロールビットが記憶されたコンピュータ可読媒体であって、その複数の命令は、プロセッサまたはハードウェア装置に収容された制御ビットによって実行される場合には、そのプロセッサまたはハードウェア装置に、
ホストオペレーティングシステム（２２０）から命令を受信して前記ホストリソースの少なくとも一つに対して第一の電源状態を設定するステップと、
少なくとも一つの電源状態抽象化装置（１４０）を参照して、前記複数のホストリソースの前記少なくとも一つに対して前記第一の電源状態を第二の電源状態に変換するステップと
を実行させる命令を含み、前期第一の電源状態と第二の電源状態は異なるものである、コンピュータ可読媒体。
【請求項４１】
更に、前記ホストオペレーティングシステムからの命令に反して、前記ホストリソースの前記少なくとも一つが前記第二の電源状態に設定されるようにするステップを含む、請求項４０に記載のコンピュータ可読媒体。
【請求項４２】
前記第一の電源状態がＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＳ４である場合には、前記第二の電源状態は前記ＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＳ１である、請求項４０に記載のコンピュータ可読媒体。
【請求項４３】
前記第一の電源状態がＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＳ３である場合には、前記第二の電源状態は前記ＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＳ１である、請求項４０に記載のコンピュータ可読媒体。
【請求項４４】
前記第一の電源状態がＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＣ４である場合には、前記第二の電源状態は前記ＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＣ２である、請求項４０に記載のコンピュータ可読媒体。
【請求項４５】
前記第一の電源状態がＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＣ３である場合には、前記第二の電源状態は前記ＡＣＰＩ（拡張構成および電源インタフェース）の仕様に従うＣ２である、請求項４０に記載のコンピュータ可読媒体。
【請求項４６】
前記設定されるようにするステップは、前記ホストリソースの前記少なくとも一つが前記第二の電源状態に設定されるようにするものであり、その場合、前記第二の電源状態は、前記ホストオペレーティングシステムからの命令に部分的にのみ反するものである、請求項４０に記載のコンピュータ可読媒体。
【請求項４７】
前記ホストリソースの前記少なくとも一つが記憶装置である、請求項４０に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分離式電源管理状態を提供する新規なシステムに関する。より具体的には、本発明は、コンピュータシステムやネットワーク等のシステムに、オペレーティングシステム（ＯＳ）がスリープモードまたはスリープ状態にあるときでもホストシステムのリソースが作動しつづけられるようにするひとつ以上の代替電源管理状態を提供する。
【開示内容の背景】
【０００２】
現在、コンピュータシステムやネットワークは、電源管理機能を実行できる設計となっている。コンピュータシステムやネットワークが企業や家庭の場に急増し続けている中で、こうしたコンピュータシステムやネットワークの多くがアイドル状態にある、すなわちユーザーや他の装置からの命令を待っていることが多いということがわかっている。エネルギーの消費を抑えるために電源管理機能が備えられ、ユーザーが時間等のパラメータを定義すると、コンピュータシステムは、エネルギーを節約するために電源管理状態やスリープモードに入る。
【０００３】
この問題への取り組みとして、ＯＳＰＭ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ−ｄｉｒｅｃｔｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ）を可能にする業界標準インタフェースを確立するため、ＡＣＰＩ（拡張構成および電源インタフェース）の仕様が開発された。ＡＣＰＩの目的のひとつは、コンピュータのオペレーティングシステムにおける電源管理を一元化し、それによって電源管理状態にある安価なハードウェアでも非常に複雑な電源管理ポリシーをサポートできるようにすることである。
【０００４】
ＯＳにおける集中的な電源管理にはいくつかの利点があるものの、ネットワーク環境にコンピューティングデバイスが急速に広がりつつあるなかでは、特にリアルタイムの応答が重んじられる場合には、不都合も生じている。例えば、家庭にあるコンピュータがコンピュータ、例えば複数のビデオおよび／またはストリームを格納したホストコンピュータやＤＶＤドライブを有するホストコンピュータのそれぞれのリソースを共有できる形でネットワーク化できるような場合である。格納されているビデオおよび／またはストリーム、あるいはＤＶＤドライブにアクセスするには、リモートコンピュータはホストコンピュータのＯＳに要求を送信しなければならない。運悪く、ホストコンピュータが「オン」になってからしばらく時間が経過していると、ＯＳ電源管理の機能が働いてシステムを省電力状態に移行させてしまっている可能性がある。リモートコンピュータの要求に応じるには、ホストコンピュータは作動状態に復旧もしくは復帰しなければならず、それにはかなりの時間が必要な場合もある。
【０００５】
従って、コンピュータシステムやネットワーク等のシステムに、オペレーティングシステム（ＯＳ）がスリープモードまたはスリープ状態にあるときでもホストシステムのリソースが作動しつづけられるようにするひとつ以上の代替電源管理状態を提供する新規な分離式電源管理アプローチが必要とされている。
【発明の概要】
【０００６】
本発明は、分離式電源管理状態を提供する新規な方法および装置である。より具体的には、本発明は、電源管理状態についてのオペレーティングシステムの関与範囲をホストリソースのハードウェアの実際の状態についてのオペレーティングシステムの関与範囲から切り離すものである。すなわち、ホストオペレーティングシステムが「オフ」であってもホストコンピュータのリソースは作動し機能し続けることができ、かつホストシステムおよびユーザーにとっては電力の節約になるというものである。
【０００７】
オペレーティングシステムの機能は一般に、ユーザーをさまざまな用途のホストリソースに接続することである。しかしながら、ホストリソースが、オペレーティングシステムの関与なしにユーザーやその他の外部クライアント（ネットワークを介した操作等）に応じられる場合がある（例えばＣＤやＤＶＤの再生等）。
【０００８】
本発明の一実施形態では、分離式電源管理は、状態が保存／復元される場合にＯＳの干渉なしにＢＩＯＳを呼び出すことができるようにすることによって、電源管理（ＰＭ）状態に移行する際および電源管理状態から抜け出す際に、ＢＩＯＳを介して実行される。このアプローチの下では、システムが一時的に「オフ」状態にあっても、ホストコンピュータの周辺機器の状態管理と制御がリアルタイムに実現できる。オペレーティングシステムが起動またはある状態に復旧するのを待たなければならないというのでは、リアルタイムの応答が必要な用途には役に立たない。
【０００９】
さらに、新しい電源供給技術と新しいＣＰＵの電圧／周波数の技術によって、コンピューティングシステムのシステムファンは、こうした簡単な作業をごくたまにしか行わないときには作動させる必要がない場合もある。また、システムが自らを危険にさらさぬよう、標準的なハードウェア監視方法を採用することもできる。この新規なアプローチが提供するのは、見かけ上システムが「オフ」になった状態とそれに伴う電力の節約であり、同時にホストコンピュータのリソースを作動可能な状態に維持することによるホストコンピュータの有用性の拡大である。この新規な方法は他にも種々多様な用途に応用できるものであり、上記のネットワーク環境は説明のために示した例に過ぎない。
【００１０】
本発明の教示するところは、図面と以下の詳細な説明によって用意に理解されよう。
【００１１】
また、理解を容易にするため、可能な場合には各図に共通な同一要素は同じ符号で表されている。
【詳細説明】
【００１２】
図１は、本発明の分離式電源管理状態を提供するシステム１００のブロック図である。特に、図１は、汎用コンピュータを用いて実施した本発明のシステム１００を示している。コンピュータシステム１００は、プロセッサ（ＣＰＵ）１１０、ランダムアクセスメモリ（ＲＡＭ）および／または読み出し専用メモリ（ＲＯＭ）等のメモリ１２０、複数の電源状態制御レジスタ１４０、種々の入出力装置１３０（例えば、テープドライブ、フロッピードライブ、ハードディスクドライブ、コンパクトディスク（ＣＤ）ドライブ、デジタルビデオディスク（ＤＶＤ）ドライブ等を含むが、これらに限定されない記憶装置）、受信機、送信機、スピーカー、ディスプレイ、マイク等の音声信号入力装置、キーボード、キーパッド、マウス、Ａ／Ｄコンバータ等）および、基本入出力システム（ＢＩＯＳ）１５０を備えている。
【００１３】
簡単に述べるならば、電源状態制御レジスタ１４０に記憶されているデータや命令は、コンピュータシステム１００に分離式電源管理を提供するために用いられる。電源状態制御レジスタ１４０は、通信チャンネルを介してＣＰＵ１１０に接続されるひとつ以上の物理的デバイス（レジスタ等）として実施されることは理解されよう。あるいは、電源状態制御レジスタ１４０は、一例としてはひとつ以上のソフトウェアプリケーション（またはソフトウェアと例えば特定用途向けＩＣ（ＡＳＩＣ）を用いたハードウェアとの組み合わせでもよい）であり、その場合ソフトウェアは記憶媒体（磁気または光学的ドライブまたはディスケット等）から読み込まれてコンピュータのメモリ１２０内のＣＰＵによって実行される。または、電源状態制御レジスタ１４０は、制御ビットを有するフィールドプログラマブルゲートアレイ（ＦＰＧＡ）であってもよい。従って、本発明の電源状態制御レジスタ１４０（それに関連する方法とデータ構造を含む）は、ＲＡＭメモリ、磁気あるいは光学的ドライブまたはディスケット等のコンピュータ可読媒体に格納できる。
【００１４】
より具体的には、電源状態制御レジスタ１４０は、本発明のＯＳ制御標準レジスタ１４０ａ（例えば標準ＡＣＰＩレジスタ）と電源状態抽象化レジスタ１４０ｂを備えている。すなわち、ＯＳ制御標準レジスタ１４０ａは、電源管理用のイベントモデルを形成するＡＣＰＩ状態／イネーブルレジスタである。それに対し、電源状態抽象化レジスタ１４０ｂは、本発明においては標準レジスタに記憶された状態を他のシステムまたは装置が定義する状態へと抽象化するのに用いられる。
【００１５】
ＢＩＯＳ１５０は、コンピュータがディスクからのアクセスプログラムなしで実行できることを判断する内蔵ソフトウェアとして理解される。パーソナルコンピュータでは、ＢＩＯＳはキーボード等の入出力装置、ディスプレイ画面、ディスクドライブ、シリアル通信、その他多数の機能を制御するのに必要なコードを全て含んでいる。ＢＩＯＳは、通常はＲＯＭチップ（例えばＲＯＭ  ＢＩＯＳとして知られている）としてコンピュータ内に備えられている。これにより、ＢＩＯＳは常に使用可能で、ディスクの不具合によって損傷を受けることがない。また、コンピュータが起動することを可能にする。しかし、本発明では、ＢＩＯＳ１５０は、電源状態制御レジスタ１４０と協働して以下に詳細に説明する分離式電源管理アプローチを提供する。
【００１６】
また、ホストシステム１００は、ネットワーク内に備えられている。従って、ホストシステム１００は、パス１０５上の外部のクライアントからそのリソースへのアクセス要求を受信することがある。
【００１７】
図２は、分離式電源管理状態を提供するコンピュータシステム１００のソフトウェアコンポーネントとハードウェアコンポーネントの関係を示すブロック図である。通常、ソフトウェアプリケーション２１０は、ホストオペレーティングシステム２２０を介してホストリソースと通信する。電源管理機能が求められる場合には、ホストＯＳ２２０は、電源状態制御レジスタ１４０と通信してシステムが電源管理状態へと移行するよう導く。電源状態制御レジスタ１４０は、ＢＩＯＳ１５０と協働してホストリソース、例えばディスクドライブ、ＣＤドライブ、ＤＶＤドライブ等のハードウェア装置をある特定の電源管理状態に移行させる。しかし、ＡＣＰＩ完全対応システムとは異なり、電源状態制御レジスタ１４０は、ＢＩＯＳ１５０と協働してホストＯＳ１４０の要求には選択的に従うに過ぎない。場合によっては、ハードウェア装置はＯＳが導く電源管理状態には移行されず、作動状態のままとされる。しかし、ホストＯＳにはこの不履行は通知されず、実際には、ハードウェア装置の作動状態は、ホストＯＳには秘密にされる。
【００１８】
より具体的には、コンピュータシステム（より正確には、そのオペレーティングシステム）は、ある形式の電源管理ポリシーで、例えばＡＣＰＩまたは他の電源管理規格に従って実現されることが多い。こうした電源管理規格の目的は、コンピュータのオペレーティングシステムにおける電源管理を一元化し、それによって電源管理状態にある安価なハードウェアでも非常に複雑な電源管理ポリシーをサポートできるようにすることである。例えば、ＡＣＰＩは複数のグローバル状態（Ｇｘ状態、すなわち、ＧＯ：稼働、Ｇ１：スリーピング、Ｇ２：ソフトオフ、Ｇ３：メカニカルオフ）、複数のスリーピング状態（Ｓｘ状態）および複数のプロセッサの電源状態（Ｃｘ状態）を規定している。端的に言えば、グローバル状態はシステム全体に適用されるもので、ユーザー可視であり、スリーピング状態は、グローバル状態Ｇ１の中の状態の種類である。Ｓｘ状態は、ＡＣＰＩにおいては次のように定義されている。
【００１９】
スリーピング状態Ｓ１（スタンバイ）：スリーピング状態Ｓ１は、復帰待ち時間が短いスリーピング状態である。この状態では、システムコンテキスト（ＣＰＵやチップセット）は失われず、ハードウェアは全システムコンテキストを維持する。
【００２０】
スリーピング状態Ｓ２：スリーピング状態Ｓ２は、復帰待ち時間が短いスリーピング状態である。この状態はスリーピング状態Ｓ１と類似しているが、ＣＰＵおよびシステムのキャッシュコンテキストは失われる（ＯＳはキャッシュおよびＣＰＵのコンテキストを維持する責任を負う）。復帰イベント後のプロセッサのリセットベクトルから制御が開始される。
【００２１】
スリーピング状態Ｓ３（ＲＡＭへのサスペンド）：スリーピング状態Ｓ３は、復帰待ち時間が短いスリーピング状態で、システムメモリを除く全てのシステムコンテキストが失われる。この状態では、ＣＰＵ、キャッシュ、およびチップセットのコンテキストは失われる。ハードウェアはメモリコンテキスト維持し、ＣＰＵおよびＬ２構成設定のコンテキストの一部を復元する。復帰イベント後のプロセッサのリセットベクトルから制御が開始される。
【００２２】
スリーピング状態Ｓ４（ディスクへのサスペンド）：スリーピング状態Ｓ４は、ＡＣＰＩにサポートされた消費電力が最も小さく、復帰待ち時間がもっとも長いスリーピング状態である。消費電力を最小に抑えるため、ハードウェアプラットフォームが全装置の電源をオフにしたものとみなされる。プラットフォームコンテキストは維持される。
【００２３】
ソフトオフ状態Ｓ５：Ｓ５の状態はＳ４の状態と類似しているが、ＯＳはコンテキストを全く保存しない。システムは「ソフト」オフ状態になり、復帰するには完全に起動させる必要がある。ソフトウェアは異なる状態値を用いてＳ５とＳ４の状態を区別し、ＢＩＯＳにおける保存されたメモリイメージからの復帰であるかどうかを識別するための初期起動動作を可能にする。
【００２４】
プロセッサの電源状態は、グローバル稼動状態Ｇ０におけるプロセッサの電力消費および温度管理状態である。簡単に言えば、ＡＣＰＩにおいてはＣｘ状態は以下のように定義されている。
【００２５】
プロセッサの電源状態Ｃ０：この状態にあるとき、プロセッサは命令を実行している。
【００２６】
プロセッサの電源状態Ｃ１：このプロセッサの電源状態は、待ち時間が最も短い。この状態のハードウェア待ち時間は、オペレーティングソフトウェアがこれを用いるかどうか決める際に待ち時間を考慮しない程度に短くなければならない。プロセッサを非実行電源状態にすること以外、ソフトウェア可視効果はない。
【００２７】
プロセッサの電源状態Ｃ２：Ｃ２状態は、Ｃ１状態より電力節約効果が高い。この状態にとっての最長のハードウェア待ち時間は、ＡＣＰＩのシステムファームウェアを介して与えられ、オペレーティングソフトウェアはこの情報を、Ｃ２状態に代えてＣ１状態を用いる時期を判断するのに用いる。プロセッサを非実行電源状態にすること以外、ソフトウェア可視効果はない。
【００２８】
プロセッサの電源状態Ｃ３：Ｃ３状態は、Ｃ１およびＣ２状態より電力節約効果が高い。この状態にとっての最長のハードウェア待ち時間は、ＡＣＰＩのシステムファームウェアを介して提供され、オペレーティングソフトウェアはこの情報を、Ｃ３状態に代えてＣ２状態を用いる時期を判断するのに用いる。Ｃ３状態にあるとき、プロセッサのキャッシュは状態を維持するが、スヌープは無視する。オペレーティングソフトウェアは、キャッシュが一貫性を確実に維持することに責任を負う。
【００２９】
Ｇｘ、Ｓｘ、Ｃｘ状態の定義は、ＡＣＰＩ規格に詳細に定められており、参照により本開示に含まれる。
【００３０】
ＡＣＰＩにおいて定義されているように、スリーピング状態が異なれば省電力の程度が異なり、それに伴ってシステムを復帰させる際の待ち時間も異なる。例えば、システムを復帰させるのに必要な時間は、１分以上（例えば最も節電できるＳ５の状態）のこともあれば、数秒（例えば最も節電効果の低いＳ１状態）のこともある。さらに重要なのは、システムがスリープ状態にあるときには、そのリソースにアクセスするにはまずコンピュータシステムを復帰させなければならない、すなわち、コンピュータシステム１００のＯＳと通信しなければならないということである。従って、省電力という要求と、省電力によってもたらされる待ち時間というペナルティを受けずにホストコンピュータのリソースにアクセスするという要求とのあいだには、大きな隔たりがある。
【００３１】
この隔たりを埋めるために、本発明は分離式電源管理アプローチを提供する。そこでは、ホストコンピュータのオペレーティングシステムは、その省電力ポリシーが実施されているものと錯覚させられるのである。本発明のもうひとつの観点は、ＯＳＰＭ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ−Ｄｉｒｅｃｔｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ）を推進するためのＡＣＰＩの仕様とは正反対に、ハードウェアの状態をホストオペレーティングシステムには意図的に秘密にすることである。すなわち、ホストオペレーティングシステムがＡＣＰＩ規格に定義されているようにシステムをあらかじめ決められたあるスリーピング状態へと導こうとすると、システムはその要求を本発明の電源状態制御レジスタ１４０に記憶された命令に従って変換する。オペレーティングシステムの電源管理要求は、場合によっては実行されるが、場合よっては部分的にまたは完全に無視される。オペレーティングシステムの電源管理要求がどのように変換されるかは、以下表１を参照して説明する。
【００３２】
2005527906.tif 000003
【００３３】
本発明の一実施形態においては、８つの電源状態制御レジスタ１４０が配置されている。この８つの３２ビット電源状態制御レジスタは、システムの各電源状態がどのように実行されるかを制御する。ＢＩＯＳ１５０は、必要に応じてこれらを変更できるが、最低限これらのレジスタを、コンピュータシステムがメカニカルパワーオフの状態からオンにされるたびにセットアップする。表１では、これら８つのレジスタを（ＭＣＰ＿ＡＣＰｌ＿ｘｘ＿ＣＴＬ）と表している。各電源状態制御レジスタに対し、表１では、オペレーティングシステムが要求する状態（例えばプロセッサの電源状態Ｃｘやスリーピング状態Ｓｘ）、状態の説明、本発明によって実施される実際の状態を示している。
【００３４】
Ｃ０やＣ１等のプロセッサの電源状態やＳ２等のスリーピング状態等、表１に示されていない状態もある。こうした状態では、省電力作用が働かないためである。実際、当業者であればわかることだが、本発明では８つの電源状態制御レジスタを配置しているが、ある特定の態様を実施するための要件を満たすのに必要な電源管理状態の数はいくつであっても構わないし、それに対処するために電源状態制御レジスタをいくつ配置しても構わない。
【００３５】
表１の第１段目は、オペレーティングシステムが、クロックは停止され、キャッシュはスヌープ可能のままであるＣ２の状態を要求する場合である。このＯＳの要求に対し、本発明は要求に従いプロセッサの電源状態をＣ２に設定する。
【００３６】
表１の第２段目は、オペレーティングシステムが、ＣＰＵはスリープモードになりキャッシュはスヌープ不可になるＣ３の状態を要求する場合である。このＯＳの要求に対し、本発明は要求に従わず、プロセッサの電源状態をＣ２に設定する。
【００３７】
表１の第３段目は、オペレーティングシステムが、ＣＰＵが電圧／周波数の変更を要求する可能性があるＣ４の状態またはＶＩＤ／ＦＩＤを要求する場合である。このＯＳの要求に対し、本発明は要求に従わず、プロセッサの電源状態をＣ２に設定する。または、本発明は部分的に要求に従い、プロセッサの電源状態をＣ２に設定するが、電圧／周波数を変更させるようにしてもよい。
【００３８】
表１の第４段目は、オペレーティングシステムが、システムがスタンバイとなるＳ１の状態を要求する場合である。このＯＳの要求に対し、本発明は要求に従い、スリーピング状態をＳ１に設定する。
【００３９】
表１の第５段目は、オペレーティングシステムが、システムがＳＴＲ（ＲＡＭへのサスペンド）状態に入る、すなわち、ＣＰＵはその状態を全てＲＡＭメモリに保存するＳ３の状態を要求する場合である。このＯＳの要求に対し、本発明は要求に従わず、スリーピング状態をＳ１に設定する。
【００４０】
表１の第６段目は、オペレーティングシステムが、システムがＳＴＤ（ディスクへのサスペンド）状態に入る、すなわち、ＣＰＵはその状態を全てディスク保存するＳ３の状態を要求する場合である。このＯＳの要求に対し、本発明は要求に従わず、スリーピング状態をＳ１に設定する。
【００４１】
表１の第７段目は、オペレーティングシステムが、システムがソフトオフ状態に入るＳ５の状態を要求する場合である。このＯＳの要求に対し、本発明は要求に従い、スリーピング状態をＳ５に設定する。
【００４２】
表１の第８段目は、オペレーティングシステムが要求する状態がシステム固有の状態の場合である。８番目のレジスタは、システム固有の状態を扱う、または状態の拡張を可能にする追加のまたはオプションのレジスタである。
【００４３】
こうした電源状態制御レジスタ１４０は、実際には電源遮断用状態機械を駆動する。すなわち、各状態用のレジスタに基づかない状態機械が、各レジスタに記憶された命令に従って、何をすべきか決定する。３２ビットの各レジスタに記憶されている情報を以下表２に示す。
【００４４】
2005527906.tif 000004
【００４５】
各電源状態制御レジスタの第３１ビットは予約されている。この特定のビットは、後に特定の目的に応じて使用される。
【００４６】
第３０〜２８ビットは、システム管理アクションフィールド（ＳＭＡＦ）を定義する。このフィールドは、オプションで現在行われている作業について、ＣＰＵに通知するのに用いられる。
【００４７】
第２７ビットは、ＰＭＥ＿ＷＡＫフィールドを定義する。このフィールドは、システムが電源管理イベント（ＰＭＥ）イベントまたはＰＭＥの入力で復帰するかどうかを定義するのに用いられる。ＰＭＥは、Ｓｘ状態において、システムを復帰させなければならないという信号を伝えるのに用いられる。一実施形態においては、ＰＭＥ＿ＷＡＫフィールドは、Ｓｘ状態に対しては１に、Ｃｘ状態に対しては０に設定される。
【００４８】
第２６ビットは、ＳＭＩ＿ＷＡＫフィールドを定義する。このフィールドは、システムがシステム管理割り込み（ＳＭＩ）イベントで復帰するかどうかを定義するのに用いられる。ＳＭＩは、ＳＭＭルーチンに制御を渡し、ＯＳから制御を受け取ることが望ましい場合に用いられる。このフィールドはＡＣＰＩ規格に定義されていない代替機能のためにＣＰＵを復帰させるのに用いられる。例えば、ＳＭＩ＃復帰イベントをＰＭＥの代用として用いてもよい。
【００４９】
第２５ビットは、ＩＲＱ＿ＷＡＫフィールドを定義する。このフィールドは、システムが割り込みイベントで復帰するかどうかを定義するのに用いられる。すなわち、このフィールドは、ＡＣＰＩ規格に定義されていない代替機能のためにＣＰＵを復帰させるのに用いられる。例えば、ＣＰＵを割り込みで復帰させる場合等である。
【００５０】
第２４ビットは、ＡＲＢ＿ＲＥＱ＿ＷＡＫフィールドを定義する。このフィールドは、システムがＢｕｓ  Ｍａｓｔｅｒ  Ｒｅｑｕｅｓｔイベントで復帰するかどうかを定義するのに用いられる。Ｂｕｓ  Ｍａｓｔｅｒ  Ｒｅｑｕｅｓｔイベントは、ＣＰＵではないバスマスターのいずれかがバスを使用する必要がある場合である。ＡＣＰＩ規格では、キャッシュがシステムメモリにフラッシュされていない場合にこれをＣ３で用いる。これによりＣＰＵが復帰し、そのキャッシュはスヌープ可能になる。すなわち、このフィールドは、ＡＣＰＩ規格に定義されていない代替機能のためにＣＰＵを復帰させるのに用いられる。
【００５１】
第２３〜２２ビットは、レジュームディレイ（ＲＳＭ＿ＤＬＹ）フィールドを定義する。このフィールドは、ＣＰＵが復帰するのが早すぎないよう、ＣＰＵが復帰するまでに経過すべき時間の長さを定義するのに使用される。このフィールドは、省電力操作を実施したことによる作用、例えば、電源を急激に入切すると電力供給装置がロックするようなことに対処するのに用いることができる。
【００５２】
第２１〜１９ビットは、電力供給レールを制御するＳＬＰ＿Ｓ５＿ＤＬＹフィールドを定義する。特に、このフィールドは、ＰＣＩリセット（ＰＣＩ＿ＲＳＴ＃）の起動からＳＬＰ＿Ｓ５＃の起動までの遅れを制御する。この場合、ＳＬＰ＿Ｓ５＃は、通常はメインメモリ電源をオフにするために採用されている。
【００５３】
第１８〜１６ビットは、電力供給レールを制御するＳＬＰ＿Ｓ３＿ＤＬＹフィールドを定義する。特に、このフィールドは、ＰＣＩリセット（ＰＣＩ＿ＲＳＴ＃）の起動からＳＬＰ＿Ｓ３＃の起動までの遅れを制御する。この場合、ＳＬＰ＿Ｓ３＃は、通常はメイン電源供給レールをオフにする、すなわち、ＣＰＵへの電力をオフにするために採用されている。
【００５４】
第１５〜１３ビットは、電力供給レールを制御するＰＣＩＲＳＴ＿ＤＬＹフィールドを定義する。特に、このフィールドは、ＳＬＰ＿Ｓ３＃の起動からＰＣＩリセット（ＰＣＩ＿ＲＳＴ＃）の起動までの遅れを制御する。この場合、ＰＣＩ＿ＲＳＴ＃は、システム論理を全てリセットするために採用されている。すなわち、このフィールドは、システムをリセットすべきかどうかを定義する。
【００５５】
第１２〜１０ビットは、電力供給レールを制御するＳＬＰ＿Ｓ１＿ＤＬＹフィールドを定義する。特に、このフィールドは、ＬＤＴ＿ＳＴＰ＃の起動からＳＬＰ＿Ｓ１＃の起動までの遅れを制御する。この場合、ＳＬＰ＿Ｓ１＃は、通常はマザーボードが休眠中かどうかを示すＬＥＤに電力を供給するために採用されている。ＬＤＴ＿ＳＴＰ＃は、ＣＰＵバスを切断すべきかどうかを命令するピンである。ＬＤＴは、Ｈｙｐｅｒ  Ｔｒａｎｓｐｏｒｔ  Ｂｕｓとしても知られている。これは、ＡＭＤが設計したポイントツーポイントバスである。ＬＤＴ＿ＳＴＰ＃ピンは、このバスプロトコルを「停止」させる。
【００５６】
第９ビットは、ＣＰＵ  ＳＬＰ＃の起動を制御するＣＰＵＳＬＰ＿ＥＮフィールドを定義する。注目すべきは、ＡＣＰＩは、２つのビットフィールド、すなわちＳｌｅｅｐ  Ｅｎａｂｌｅ（ＳＬＰ＿ＥＮ）とＳｌｅｅｐ  Ｔｙｐｅ（ＳＬＰ＿ＴＹＰｘ）を介して制御されるスリーピング／復帰論理を定義している点である。望ましいスリープ状態のタイプは、ＳＬＰ＿ＴＹＰｘフィールドにプログラムされ、ＳＬＰ＿ＥＮがアサートされるとすぐにハードウェアはシステムを定義されたスリーピング状態に順序付ける。
【００５７】
第８〜６ビットは、Ｓｔｏｐ  Ｇｒａｎｔ  Ｓｐｅｃｉａｌサイクル（ＳＴＰＣＬＫ＃のアサートに対するＣＰＵの応答）の起動からＬＤＴ＿ＳＴＰ＃の起動までの遅れを制御するＬＤＴＳＴＰ＿ＤＬＹフィールドを定義する。ＬＤＴ＿ＳＴＰ＃は、ＬＤＴ  Ｂｕｓを切断するのに用いられる。
【００５８】
第５〜３ビットは、電源管理命令からＳＴＰＣＬＫ＃の起動までの遅れを制御するＳＴＰＣＬＫ＿ＤＬＹフィールドを定義する。この場合、ＳＴＰＣＬＫ＃は、ＣＰＵをＳｔｏｐ  Ｇｒａｎｔ状態にするのに用いられる。
【００５９】
第２ビットは、アービタが使用不能であっても装置が非同期アクセスを実現するためにシステムメモリにアクセスできるようにするのに用いられるアービタオーバーライド（ＡＲＢ＿ＯＶＲ）フィールドを定義する。特に、ＡＣＰＩ規格に従う標準ＰＭ２＿ＣＮＴ＿ＢＬＫレジスタブロックは、アービタ無効化機能用のシングルビットを含んでいる。すなわち、後者のビットは前者のビットを無効にするために用いられる。
【００６０】
第１ビットはシステム管理割り込み（ＳＭＩ）有効化フィールドを定義する。このフィールドはＳＭＩ＃が発生されるかどうかを判断する。
【００６１】
第０ビットは、ステートイネーブル（ＳＴ−ＥＮ）フィールドを定義する。このビットは、いずれにせよ作動されるＳＭＩビットを除く、このレジスタ内の残りのビットが実行されるように設定されなければならない。
【００６２】
表２において各電源状態制御レジスタ１４０用に定義されたフィールドは、特定の実施形態における例にすぎない。当業者には、こうしたフィールドは、部分的に（すなわち上記フィールドの一部のみを実施する）、上記とは異なる順序で、異なるサイズで、あるいは上記とは異なるパラメータを用いて実施されうることは理解されよう。
【００６３】
さらに、各電源状態制御レジスタ１４０における上記フィールドの多くは（種々のパラメータを含む）、ＡＣＰＩ対応のシステムに配置されていることを前提に実施される。しかし、当業者には、本発明は他の電源管理規格に適合するシステムにも配置できるように変更できることは理解されよう。
【００６４】
また、本発明は、上記のように状態抽象化レジスタを用いて実施されているが、これに限られるものではない。すなわち、すなわち、抽象化は固定論理に記憶することもできるし、必要なときにＲＯＭから読み出すこともできる。本発明の主たるアプローチは、標準レジスタを別のシステムまたは装置が定義した状態へと抽象化することである。
【００６５】
本発明の利点の一つは、電源状態制御レジスタ１４０は、例えばＡＣＰＩのような特定の電源管理規格に従っているとホストＯＳが推定するシステムに設置可能であるという点である。こうしたことで、本発明を用いて代替電源管理スキームを実施でき、その際にホストＯＳを変更する必要がない。これは、重要な利点である。なぜなら、コンピューティングシステムの製造業者は、非互換性の問題を考慮することなく標準のオペレーティングシステムを使用したまま代替電源管理スキームを要求することもできるからである。
【００６６】
表３ａは、プロセッサの電源状態（Ｃｘ）およびスリーピング状態（Ｓｘ）に合致した電源状態制御レジスタの各ビットに対する標準的な設定を示している。換言すれば、これらの設定はＡＣＰＩに対応している。
【００６７】
2005527906.tif 000005
【００６８】
一方、表３ｂは、プロセッサの電源状態（Ｃｘ）およびスリーピング状態（Ｓｘ）に合致した電源状態制御レジスタの各ビットに対する修正された設定を示している。換言すれば、これらの修正された設定は、表１に示した実際に実施される状態を生じることになる。
【００６９】
2005527906.tif 000006
【００７０】
最後に、表４および表５は、遅れ表の例である。本発明では複数の遅れ値を有する起動遅れの表４とＰＣＩ＿ＲＳＴ起動遅れの表５を示しているが、用途によっては他の遅れ値を導入することもできる。
【００７１】
2005527906.tif 000007
【００７２】
2005527906.tif 000008
【００７３】
本発明の教示を含む種々の実施形態を示し説明したが、当業者であれば本発明の教示を含む更なる実施形態を用意に考案できるであろう。請求項において、方法のクレームの要素は特定の順序で記載されているが、たとえ請求項の要素が数字順またはアルファベット順に列挙されていても、本発明を実施する順序を意味するものではない。
【図面の簡単な説明】
【００７４】
【図１】本発明の分離式電源管理状態を提供するシステムのブロック図である。
【図２】分離式電源管理状態を提供するコンピュータシステムのソフトウェアコンポーネントとハードウェアコンポーネントの関係を示すブロック図である。
【図１】
2005527906.tif 000009
【図２】
2005527906.tif 000010
【国際調査報告】
2005527906.tif 000011