(57)【要約】      （修正有）【課題】プロセッサ・ベース・システムで回路にパワー・マネジメント装置を提供する。【解決手段】装置には、プロセッサ・ベース・システムを処理する命令シーケンスを格納するためのメモリと、メモリに結合されたプロセッサとが含まれる。格納された命令シーケンスは、プロセッサに（ａ）回路のシステム・アクセス時間を決定させ、（ｂ）システム・アクセス時間が第１の所定の値より短いかどうかを判定させ、短い場合は、回路がアクティブである間の回路のアクセス可能期間を増やす。【選択図】図３
2013117981.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ・ベース・システムの回路用のパワー・マネジメント装置であって、
プロセッサ・ベース・システムを処理するのに使用する命令シーケンスを格納するためのメモリと、
メモリに結合されたプロセッサとを含み、格納された命令シーケンスが、プロセッサに（ａ）回路のシステム・アクセス時間を決定させ、（ｂ）システム・アクセス時間が第１の所定の値より短いかどうかを判定させ、短い場合は、回路がアクティブである間の回路のアクセシビリティ期間を増やすパワー・マネジメント装置。
【請求項２】
格納された命令シーケンスがさらにプロセッサに、（ｃ）システム・アクセス時間が第２の所定の値より長いかどうかを判定させ、長い場合は、回路のアクセシビリティ期間を減らす、請求項１に記載の装置。
【請求項３】
格納された命令シーケンスがさらにプロセッサに、（ｄ）システム・アクセス時間が第１の所定の値と第２の所定の値の間にあるかどうかを判定させ、間にある場合は、回路のアクセシビリティ期間を変更するべきではないことを示すフラグを設定する、請求項１に記載の装置。
【請求項４】
（ａ）が、
（ａ．１）回路のシステム・アクセス時間を判定するために回路を監視することと、
（ａ．２）回路のシステム・アクセス時間をプロセッサに提供することを含む、請求項１に記載の装置。
【請求項５】
（ｂ）が、
（ｂ．１）システム・アクセス時間が第１の所定の値よりも短いかどうかを判定することと、
（ｂ．２）短い場合は、所定の割合で回路のアクセシビリティ期間を増やすことを含む、請求項１に記載の装置。
【請求項６】
（ｃ）が、
（ｃ．１）システム・アクセス時間が、第２の所定の値よりも長いかどうかを判定することと、
（ｃ．２）長い場合は、所定の割合で回路のアクセシビリティ期間を減らすことを含む、請求項２に記載の装置。
【請求項７】
プロセッサ・ベース・システムの回路用のパワー・マネジメント装置であって、
プロセッサ・ベース・システムを処理するのに使用する命令シーケンスを格納するためのメモリと、
メモリに結合されたプロセッサとを含み、格納された命令シーケンスが、プロセッサに
（ａ）回路のシステム・アクセス時間を決定させ、
（ｂ）システム・アクセス時間が第１の所定の値より長いかどうかを判定させ、長い場合は、回路がアクティブである間の回路のアクセシビリティ期間を減らすパワー・マネジメント装置。
【請求項８】
格納された命令シーケンスがさらにプロセッサに、（ｃ）システム・アクセス時間が第２の所定の値より短いかどうかを判定させ、短い場合は、回路のアクセシビリティ期間を増やす、請求項７に記載の装置。
【請求項９】
（ｂ）が、
（ｂ．１）システム・アクセス時間が第１の所定の値よりも長いかどうかを判定することと、
（ｂ．２）長い場合は、所定の割合で回路のアクセシビリティ期間を減らすことを含む、請求項７に記載の装置。
【請求項１０】
（ｃ）が、
（ｃ．１）システム・アクセス時間が、第２の所定の値よりも短いかどうかを判定することと、
（ｃ．２）短い場合は、所定の割合で回路のアクセシビリティ期間を増やすことを含む、請求項８に記載の装置。
【請求項１１】
プロセッサ・ベース・システムの回路用のパワー・マネジメント装置であって、
プロセッサ・ベース・システムを処理するのに使用する命令シーケンスを格納するためのメモリと、
メモリに結合されたプロセッサとを含み、
格納された命令シーケンスが、プロセッサに
（ａ）回路のアクセシビリティ期間が第１の所定の値より長いかどうかを判定させ、長い場合は、回路への電源を終了させて、
（ｂ）回路が所定の時間間隔内にアクセスされているかどうかを判定させ、その時間間隔内にアクセスされている場合は回路を動作するパワー・マネジメント装置。
【請求項１２】
さらに命令シーケンスがプロセッサに、（ｃ）第１の所定の値を第２の所定の値だけ増加させる、請求項１１に記載の装置。
【請求項１３】
プロセッサ・ベース・システムの回路用のパワー・マネジメント装置であって、
プロセッサ・ベース・システムを処理するのに使用する命令シーケンスを格納するためのメモリと、
メモリに結合されたプロセッサとを含み、格納された命令シーケンスが、プロセッサに
（ａ）回路の動作モードを決定させ、
（ｂ）回路の動作モードに基づいて第１の所定のレベルで回路を動作させるパワー・マネジメント装置。
【請求項１４】
格納された命令シーケンスがさらにプロセッサに、（ｃ）所定の期間内に、回路に結合された入／出力デバイスからの所定の活動レベルが存在するかどうかを判定させ、存在する場合は、活動レベルに基づいて第２の所定のレベルで回路を動作させ、そうでない場合は、第３の所定のレベルで回路を動作させる、請求項１３に記載の装置。
【請求項１５】
プロセッサ・ベース・システムで回路にパワー・マネジメントを提供するための方法であって、
回路のシステム・アクセス時間を決定することと、
システム・アクセス時間が第１の所定の値よりも短いかどうかを判定し、短い場合は、回路がアクティブである間の回路のアクセシビリティ期間を増やすことを含む方法。
【請求項１６】
システム・アクセス時間が第２の所定の値よりも長いかどうかを判定し、長い場合は、回路のアクセシビリティ期間を減らすことをさらに含む、請求項１５に記載の方法。
【請求項１７】
システム・アクセス時間が第１の所定の値と第２の所定の値の間に有るかどうかを判定し、間にある場合は、回路のアクセシビリティ期間を変更すべきでないことを示すフラグを設定することをさらに含む、請求項１６に記載の方法。
【請求項１８】
（ａ）が、
（ａ．１）回路のシステム・アクセス時間を判定するために回路を監視することと、
（ａ．２）回路のシステム・アクセス時間をプロセッサに提供することを含む、請求項１５に記載の方法。
【請求項１９】
（ｂ）が、
（ｂ．１）システム・アクセス時間が第１の所定の値よりも短いかどうかを判定することと、
（ｂ．２）短い場合は、所定の割合で回路のアクセシビリティ期間を増やすことを含む、請求項１５に記載の方法。
【請求項２０】
（ｃ）が、
（ｃ．１）システム・アクセス時間が、第２の所定の値よりも長いかどうかを判定することと、
（ｃ．２）長い場合は、所定の割合で回路のアクセシビリティ期間を減らすことを含む、請求項１６に記載の方法。
【請求項２１】
プロセッサ・ベース・システムで回路にパワー・マネジメントを提供するための方法であって、
（ａ）回路のシステム・アクセス時間を決定することと、
（ｂ）システム・アクセス時間が第１の所定の値よりも長いかどうかを判定し、長い場合は、回路がアクティブである間の回路のアクセシビリティ期間を減らすことを含む方法。
【請求項２２】
（ｃ）システム・アクセス時間が第２の所定の値よりも短いかどうかを判定し、短い場合は、回路のアクセシビリティ期間を増やすことをさらに含む、請求項２１に記載の方法。
【請求項２３】
（ｂ）が、
（ｂ．１）システム・アクセス時間が第１の所定の値よりも長いかどうかを判定することと、
（ｂ．２）長い場合は、所定の割合で回路のアクセシビリティ期間を減らすことを含む、請求項２１に記載の方法。
【請求項２４】
（ｃ）が、
（ｃ．１）システム・アクセス時間が、第２の所定の値よりも短いかどうかを判定することと、
（ｃ．２）短い場合は、所定の割合で回路のアクセシビリティ期間を増やすことを含む、請求項２２に記載の方法。
【請求項２５】
プロセッサ・ベース・システムで回路にパワー・マネージメントを提供するための方法であって、
（ａ）回路のアクセシビリティ期間が第１の所定の値より長いかどうかを判定し、長い場合は、回路への電源を終了させることと、
（ｂ）回路が所定の時間間隔内にアクセスされているかどうかを判定させ、時間間隔内にアクセスされている場合は回路を起動することを含む方法。
【請求項２６】
（ｃ）第１の所定の値を第２の所定の値だけ増加させることをさらに含む、請求項２５に記載の方法。
【請求項２７】
プロセッサ・ベース・システムで回路にパワー・マネージメントを提供するための方法であって、
（ａ）回路の動作モードを決定させることと、
（ｂ）回路の動作モードに基づいて第１の所定のレベルで回路を動作させることを含む方法。
【請求項２８】
（ｃ）所定の期間内に、回路に結合された入／出力デバイスからの所定の活動レベルが存在するかどうかを判定し、存在する場合は、活動レベルに基づいて第２の所定のレベルで回路を動作させ、そうでない場合は、第３の所定のレベルで回路を動作させることをさらに含む、請求項２７に記載の方法。
【請求項２９】
コンピュータ読取り可能装置であって、
プロセッサによって実行された場合、前記プロセッサに、
（ａ）回路のシステム・アクセス時間を決定させ、
（ｂ）システム・アクセス時間が第１の所定の値より短いかどうかを判定させて、短い場合は、回路がアクティブである間の回路のアクセシビリティ期間を増やす、命令シーケンスを格納するコンピュータ読取り可能媒体を含むコンピュータ読取り可能装置。
【請求項３０】
命令シーケンスがさらにプロセッサに、システム・アクセス時間が第２の所定の値より長いかどうかを判定させ、長い場合は回路のアクセシビリティ期間を減らす、請求項２９に記載のコンピュータ読取り可能媒体。
【請求項３１】
命令シーケンスがさらにプロセッサに、システム・アクセス時間が第１の所定の値と第２の所定の値の間にあるかどうかを判定させ、間にある場合は、回路のアクセシビリティ期間を変更するべきではないことを示すフラグを設定する、請求項３０に記載のコンピュータ読取り可能媒体。
【請求項３２】
（ａ）が、
（ａ．１）回路のシステム・アクセス時間を判定するために回路を監視することと、
（ａ．２）回路のシステム・アクセス時間をプロセッサに提供することを含む、請求項２８に記載のコンピュータ読取り可能媒体。
【請求項３３】
（ｂ）が、
（ｂ．１）システム・アクセス時間が第１の所定の値よりも短いかどうかを判定することと、
（ｂ．２）短い場合は、所定の割合で回路のアクセシビリティ期間を増やすことを含む、請求項２９に記載のコンピュータ読取り可能媒体。
【請求項３４】
（ｃ）が、
（ｃ．１）システム・アクセス時間が、第２の所定の値よりも長いかどうかを判定することと、
（ｃ．２）長い場合は、所定の割合で回路のアクセシビリティ期間を減らすことを含む、請求項３０に記載のコンピュータ読取り可能媒体。
【請求項３５】
コンピュータ読取り可能装置であって、
プロセッサによって実行された場合、前記プロセッサに、
（ａ）回路のシステム・アクセス時間を決定させ、
（ｂ）システム・アクセス時間が第１の所定の値より長いかどうかを判定させて、長い場合は、回路がアクティブである間の回路のアクセシビリティ期間を減らす、命令シーケンスを格納するコンピュータ読取り可能媒体を含む、コンピュータ読取り可能装置。
【請求項３６】
格納された命令シーケンスがさらにプロセッサに、（ｃ）システム・アクセス時間が第２の所定の値より短いかどうかを判定させ、短い場合は、回路のアクセシビリティ期間を増やす、請求項３５に記載のコンピュータ読取り可能装置。
【請求項３７】
（ｂ）が、
（ｂ．１）システム・アクセス時間が第１の所定の値よりも長いかどうかを判定することと、
（ｂ．２）長い場合は、所定の割合で回路のアクセシビリティ期間を減らすことを含む、請求項３６に記載のコンピュータ読取り可能装置。
【請求項３８】
（ｃ）が、
（ｃ．１）システム・アクセス時間が、第２の所定の値よりも短いかどうかを判定することと、
（ｃ．２）短い場合は、所定の割合で回路のアクセシビリティ期間を増やすことを含む、請求項３７に記載のコンピュータ読取り可能装置。
【請求項３９】
コンピュータ読取り可能装置であって、
プロセッサによって実行された場合、前記プロセッサに、
（ａ）回路のシステム・アクセシビリティ期間が、第１の所定の値よりも長いかどうかを判定させ、長い場合は、回路の電源に回路のシステム・アクセス時間を終了させて、
（ｂ）回路が所定の時間間隔内にアクセスされているかどうかを判定させ、時間間隔内にアクセスされている場合は回路を起動する、命令シーケンスを格納するコンピュータ読取り可能媒体を含む、コンピュータ読取り可能装置。
【請求項４０】
命令シーケンスがさらにプロセッサに、（ｃ）第１の所定の値を第２の所定の値だけ増加させる、請求項３９に記載のコンピュータ読取り可能装置。
【請求項４１】
コンピュータ読取り可能装置であって、
プロセッサによって実行された場合、前記プロセッサに、
（ａ）回路の動作モードを決定させ、
（ｂ）回路の動作モードに基づいて第１の所定のレベルで回路を動作させる、命令シーケンスを格納するコンピュータ読取り可能媒体を含む、コンピュータ読取り可能装置。
【請求項４２】
格納された命令シーケンスがさらにプロセッサに、（ｃ）所定の期間内に、回路に結合された入／出力デバイスからの所定の活動レベルが存在するかどうかを判定させ、存在する場合は、活動レベルに基づいて第２の所定のレベルで回路を動作させ、そうでない場合は、第３の所定のレベルで回路を動作させる、請求項４１に記載のコンピュータ読取り可能装置。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の背景）
１．発明の分野
本発明は、一般にプロセッサ・ベース・システムに関し、より具体的には、プロセッサ・ベース・システムにインテリジェント・パワー・マネジメントを提供するための装置および方法に関する。
【背景技術】
【０００２】
２．関連技術の説明
パワー・マネジメントとは、システムの電力を節約し、消費電力を削減するために、プロセッサ・ベース・システムで実施される。典型的にパワー・マネジメントは、ある期間無使用または無活動状態であることを検出すると、システム内にある１つまたは複数の回路の電源を切断することで実施される。この無使用または無活動期間が典型的には「タイムアウト」期間と呼ばれ、通常は固定されている。ユーザは典型的には、特定アプリケーションのセットアップ・モードに入り、そのアプリケーションのタイムアウト値を選択または入力しなければならない。タイムアウト値の選択は、バッテリの推定寿命に対する、ユーザのシステム性能に関する知覚にも基づいているため、最適化することができない。
【０００３】
したがって、プロセッサ・ベース・システムでいくつかのアプリケーションにパワー・マネジメントを提供するための装置および方法に関する技術では、システム性能を最適化しながらシステムの省電力を容易にする必要がある。
【発明の概要】
【０００４】
（発明の概要）
本発明は、プロセッサ・ベース・システムで回路にパワー・マネジメント装置を提供するための装置および方法である。装置には、プロセッサ・ベース・システムを処理する命令シーケンスを格納するためのメモリと、メモリに結合されたプロセッサとが含まれる。格納された命令シーケンスは、プロセッサに（ａ）回路のシステム・アクセス時間を決定させ、（ｂ）システム・アクセス時間が第１の所定の値より短いかどうかを判定させ、短い場合は、回路がアクティブである間の回路のアクセシビリティ期間を増やすものである。様々な実施形態について説明する。
【図面の簡単な説明】
【０００５】
【図１】デバイスの電力状態プロファイルの一実施形態を示す図である。
【図２】本発明の装置および方法が使用される例示的プロセッサ・システムを示すシステム構成図である。
【図３】本発明の装置および方法を利用するオペレーティング・システムのアーキテクチャを示す、全機能構成図である。
【図４】本発明のインテリジェント・パワー・マネジメント（ＩＰＭ）技法を実施する、全般的なプロセスの一実施形態を示すトップレベルの流れ図である。
【図５Ａ】本発明のＩＰＭプロセスの一実施形態を示す流れ図である。
【図５Ｂ】本発明のＩＰＭプロセスの一実施形態を示す流れ図である。
【図５Ｃ】本発明のＩＰＭプロセスの一実施形態を示す流れ図である。
【図６】本発明のＩＰＭプロセスの第２の実施形態を示す流れ図である。
【図７】本発明のＩＰＭプロセスの第３の実施形態を示す流れ図である。
【図８】本発明のＩＰＭプロセスの第４の実施形態を示す流れ図である。
【発明を実施するための形態】
【０００６】
（好ましい発明の詳細な説明）
動作原理
本発明は、デバイスに対するシステム・レベルの要求に基づいてデバイスの電源をオフにするまでの時間間隔を変更するための、装置および方法である。図１は、デバイスの電力状態プロファイルの一実施形態を示す図である。図に示すように、デバイスは使用中期間から無活動期間、電源オフ期間へと移行し、次いで使用中期間に戻る。
【０００７】
図１では、以下の参照表示が使用される。
Ｔは、デバイスの電源がオフになる時間から、再度アクセスされるまでの時間間隔を表す。
Ｔ［ｔ０］は、デバイスの電源がオフになるまでの無活動タイムアウト期間を表し、この値は、本発明のインテリジェント・パワー・マネジメント・スキームの結果に応じて変化する。
Ｔ［ｄｅｌｔａ］は、デバイスがオフになっている間の合計時間を表し、デバイスの無活動期間が終了してからシステムがデバイスにアクセスする時間までの間に発生する。
Ｔ［ｄｅｌｔａ＿ｉｎｃ］は、パワー・マネジメントされた各デバイスに対応する格納済みの時間間隔を表し、デバイスのタイムアウト期間Ｔ［ｔ０］を増やすべきかどうかを決定するのに使用される。一実施形態では、Ｔ［ｄｅｌｔａ＿ｉｎｃ］は１／３｛Ｔ［ｄｅｌｔａ］｝にほぼ等しい。
Ｔ［ｄｅｌｔａ＿ｄｅｃ｝は、パワー・マネジメントされた各デバイスに対応する格納済みの時間間隔を表し、デバイスのタイムアウト期間Ｔ［ｔ０］を減らすべきかどうかを決定するのに使用される。一実施形態では、Ｔ［ｄｅｌｔａ＿ｄｅｃ］はＴ［ｄｅｌｔａ］＋１／３｛Ｔ［ｄｅｌｔａ］｝にほぼ等しい。
【０００８】
以下のセクションで使用される他の参照表示には、初期の無活動タイムアウト値であるＴ［ｉｔ０］と、「タイムアウト」変更の現在のモードを示すフラグＤＩＲと、タイムアウト値Ｔ［ｔ０］に対する増加量または減少量を制御するのに使用される整数ＩＮＤＥＸとが含まれる。
【０００９】
一般に、本発明のインテリジェント・パワー・マネジメント技法は、パワー・マネジメントされたデバイスのシステム・アクセスが発生するのが早すぎるか遅すぎるか、あるいはシステム・アクセスが所定のタイムアウト無活動値に関してほぼ正確であるかどうかを判定する。タイムアウト無活動値は、パワー・マネジメントされたデバイスが無活動である、所定の時間間隔に対応する。タイムアウト無活動期間の終わりに達すると、パワー・マネジメントされたデバイスの電源がオフになる。
【００１０】
システム・アクセスが第１の所定のタイムアウト値よりも早く発生すると、デバイスのタイムアウト無活動期間Ｔ［ｔ０］が増やされる。システム・アクセスが第２の所定のタイムアウト値よりも遅く発生すると、Ｔ［ｔ０］が減らされる。タイムアウト無活動値に関して許容範囲内にアクセスが発生すると、すなわちＴ［ｔ０］が第１の所定の値と第２の所定の値との間に発生すると、変更は実施されない。一実施形態では、Ｔ［ｔ０］の所定数の増加または減少を加速または減速させるために、Ｔ［ｔ０］を所定の割合で増加または減少させることができる。
【００１１】
さらに、Ｔ［ｔ０］が制限なく永続的に増加してシステムの応答性を悪化させることがないように、境界条件がセットアップされる。Ｔ［ｔ０］が無制限の増加の対象とならないように、最高限界値Ｔ［ｔｏ＿ｍａｘ］が課されるが、ここでＴ［ｔｏ＿ｍａｘ］＝Ｋ*Ｔ［ｔｏ＿ｍａｘ］である。一実施形態では、Ｋ＝１６である。代替実施形態では、Ｋはユーザが選択した任意の数にすることができる。
【００１２】
実施
本実施形態について、プロセッサ・システム１０を参照しながら説明する。図２は、本発明のプロセスを実施する例示的プロセッサ・システム１０を示す図である。プロセッサ・システム１０は、ＣＰＵ  １２およびメモリ・モジュール１４を含む。メモリ・モジュール１４は、ランダム・アクセス・メモリ（ＲＡＭ）１４ａおよび読取り専用メモリ（ＲＯＭ）１４ｂを含む。一実施形態では、メモリ・モジュール１４がメイン・メモリまたはダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）も含む。ＣＰＵ  １２およびメモリ・モジュール１４は、システム・バス１６に結合される。プロセッサ・システム１０は、Ｉ／Ｏバス２０に沿って結合された様々なＩ／Ｏおよび周辺モジュール（ＭＩＳＣ  Ｉ／Ｏ  ＃１、＃２、．．．＃Ｎ）を含むことも可能であり、このＩ／Ｏバスがバス・ブリッジ２２を介してシステム・バス２０に結合される。周辺モジュールの例には、コンソール、プリンタ、およびマウスが含まれる。
【００１３】
本発明について、プロセッシング・システム１０にインストールされたオペレーティング・システムも参照しながら説明する。図３は、本発明の装置および方法を利用するプロセッシング・システム１０のアーキテクチャを示す、全機能構成図である。プロセッシング・システム１０は、ユーザ・アプリケーション４０をサポートするオペレーティング・システム３０、基本入出力システム（「ＢＩＯＳ」）５０、およびシステム・ハードウェア６０を備える。ユーザ・アプリケーション４０は、インテリジェント・パワー・マネジメント（ＩＰＭ）アプリケーション４２およびクライアント・アプリケーション４４を含む。ＢＩＯＳ  ５０は、コンソール（キーボードおよびディスプレイ）、汎用プリンタ、補助デバイス（シリアル・ポート）、コンピュータのクロック、およびブート・ディスク・デバイスなど、ハードウェア・デバイス用のドライバまたはソフトウェア・インターフェースの集合体である。ＢＩＯＳ  ５０は、一般に、プログラム可能読取り専用メモリ（ＰＲＯＭ）に組み込まれる。オペレーティング・システムは、一般に、オペレーティング・システムのブート後、実行中にはＢＩＯＳ  ５０を使用しない。オペレーティング・システム３０内のカーネル・レベル・ドライバは、システム・ハードウェア６０と直接インターフェースすることができる。
【００１４】
オペレーティング・システム３０は、ＩＰＭアプリケーション４２とインターフェースするアプリケーション・プログラム・インターフェース（ＡＰＩ）７０と、ＩＰＭアプリケーション４２からの要求に基づいてオペレーティング・システム３０にインストールされる資源を割り振る、コンフィグレーション・マネージャ７４とを含む。さらにオペレーティング・システム３０は、（クライアント・アプリケーション４４の場合のように直接、またはＡＰＩ  ７０およびコンフィグレーション・マネージャ７２を介して）ユーザ・アプリケーション４０とインターフェースするクラス・ドライバ７４、およびＩ／Ｏマネージャ７６を含む。Ｉ／Ｏマネージャ７６は（クラス・ドライバ７４を介してなされた）Ｉ／Ｏ要求を、カーネル７８内に配置された様々なドライバ・ルーチンへの適切に並べられた呼出しに変換する。具体的に言えば、Ｉ／Ｏマネージャ４２は、Ｉ／Ｏ要求を受け取ると、カーネル７８内に配置されたドライバ内にあるいくつかのディスパッチ・ルーチンの１つを呼び出すために、その要求の機能コードを使用する。カーネル７８は、ソフトウェア割込みによってアクセスされる、システム機能と呼ばれるハードウェア非依存型機能を提供する。カーネル７８によって提供される機能には、ファイルおよびディレクトリの管理、メモリ管理、キャラクタ・デバイス入出力、ならびに時間およびデータのサポートなどが含まれる。一実施形態では、オペレーティング・システムはＷｉｎｄｏｗｓ  ＮＴ（登録商標）オペレーティング・システムである。代替実施形態では、オペレーティング・システム３０には、ＳｏｌａｒｉｓまたはＡＩＸオペレーティング・システム、あるいは要求時ページングされた仮想メモリ・サブシステム(demand-paged  virtual  memory  subsystems)に基づいた他のオペレーティング・システムが含まれる。
【００１５】
本発明は、カーネル７４内に配置された１つまたは複数のフィルタ・デバイス・ドライバ８０を使用することによって、ＭＩＳＣ  Ｉ／Ｏ  ＃１、．．．、ＭＩＳＣ  Ｉ／Ｏ  ＃Ｎ（図２）などのＩ／ＯデバイスのＩ／Ｏ活動を監視する、ＩＰＭアプリケーション４２を提供する。フィルタ・デバイス・ドライバ８０によって提供される情報に基づいて、ＩＰＭアプリケーション４２は、システム１０にインストールされたパワー・マネジメントされたデバイスにとって、および／または、本発明の知識ベースの技法を使用するシステム１０にとって、最も好適な電力状態を識別する。次いでシステム・ハードウェア６０の電力状態を、効率良く制御および管理することができる。一実施形態では、ＩＰＭアプリケーション４２が、カーネル７８内に配置された物理デバイス・ドライバ８２への必要なポインタを提供するコンフィグレーション・マネージャ７２を使用して、システム・ハードウェアの電力状態を制御する。物理デバイス・ドライバ８２は、システム・ハードウェア６０を直接制御するか、またはＢＩＯＳ  ５０のＢＩＯＳインターフェース５２ならびに物理メモリおよびＩ／Ｏ回路５４を介してシステム・ハードウェア６０とインターフェースするかの、どちらでも可能である。
【００１６】
好ましい一実施形態では、ＩＰＭアプリケーション４２およびフィルタ・デバイス・ドライバ７８は、Ｃ言語で作成されたソース・コードを含む。ＩＰＭアプリケーション４２およびフィルタ・デバイス・ドライバ７８の機能を実施する際に、他のアセンブリ言語が利用できることを理解されよう。ＢＩＯＳのデータおよびアドレスは、典型的には物理メモリ５０内（典型的にはＲＡＭ  １４ａ内、図１を参照）に配置され、物理デバイス・ドライバ８２によってアクセスされる。
【００１７】
図４は、本発明のＩＰＭ技法を実施する全般的なプロセスの一実施形態を示す、トップレベルの流れ図である。一実施形態では、ＩＰＭ環境の初期化後、システム・プロセスが所定の間隔で、たとえば１０秒ごとに実行するように構成される。この間隔は、パワー・マネジメントされたデバイスの監視および制御の細分性と、ＩＰＭプロセスの電力消費を最小限にすることとの間のトレードオフ(trade-off)として確立されたものである。所定の間隔は、システム要件およびユーザ基本設定に応じて増減することができる。
【００１８】
（一般にプロセス・ブロック１０６〜１０８で表される）ＩＰＭプロセスを実施する本発明のシステム・プロセス１００は、開始状態からプロセス・ブロック１０２へ進み、ここでＩＰＭ環境が初期設定される。具体的に言えば、システム・プロセス１００の使用に必要なタイマまたは変数などの様々な回路が初期設定される。次いでプロセス１００はプロセス・ブロック１０４に進み、ここでフィルタ・デバイス・ドライバ８０（図３を参照）からのＩ／Ｏアクセスが読み取られる。次いでＩ／Ｏアクセスは、プロセス・ブロック１０６に示されるように、１つまたは複数のパワー・マネジメントされたデバイスの電力状態を識別し制御するために、プロセス１００によって適用される。その後プロセス１００は、プロセス・ブロック１０８に示されるように、パワー・マネジメントされたデバイスおよび／またはシステム１０を制御するための、１つまたは複数の電力状態要求を出力する。一実施形態では、このような要求はコンフィグレーション・マネージャ７２（図３）によって処理される。
【００１９】
次いでプロセス１００は判断ブロック１１０に進み、ここでシステムが依然としてアクティブであるかどうかを判定する。アクティブでない場合、プロセス１００は終了する（プロセス・ブロック１１２）。そうでなければ、ＩＰＭプロセス１００は所定の時間間隔の間中断される。一実施形態では、ＩＰＭプロセス１００は１０秒間中断される。具体的に言えば、タイマが所定の時間間隔に設定される。プロセス１００は、判断ブロック１１８に示されるように、所定の期間が経過したかどうかを判定する。経過していない場合、プロセス１００はタイマ・イベントの監視を続行する。そうでなければ、プロセス・ブロック１２０に進み、オペレーティング・システムはＩＰＭプロセスを実行状態に配置して、プロセス・ブロック１０４に戻る。
【００２０】
図５は、本発明のＩＰＭプロセスの一実施形態を示す流れ図である。一実施形態では、図５のＩＰＭプロセスは、ハード・ディスク・ドライブ、ＣＤ  ＲＯＭ、およびモデムなどＩ／Ｏデバイスのデバイス管理用に実施することができる。ＩＰＭプロセス２００は開始状態から始まり、プロセス・ブロック２０２へ進んで、マネジメントされたデバイスのシステム・アクセス時間Ｔが第１の所定の値Ｔ（Ｉｎｃ）よりも短いかどうかを判定する。短い場合、プロセス２００は判断ブロック２０４に進み、タイムアウト無活動変更の現在のモードを示すフラグであるＤＩＲ  ＦＬＡＧが、Ｔ［ｔ０］を増やさなければならないことを示すように設定されているかどうかを判定する。そのように設定されていない場合、プロセスはプロセス・ブロック２０６に進み、ＤＩＲ  ＦＬＡＧは、マネジメントされたデバイスのタイムアウト無活動期間であるＴ［ｔ０］を増やさなければならないことを示す、ＩＮＣに設定される。さらに、Ｔ［ｔ０］の変化率ＩＮＤＥＸが１に設定される。次いでプロセス２００が終了する。
【００２１】
プロセス・ブロック２０４で、プロセス２００が、タイムアウト無活動変更の現在のモードを示すフラグであるＤＩＲ  ＦＬＡＧが、Ｔ［ｔ０］を増やさなければならないことを示すように設定されていると判定した場合、プロセスは判断ブロック２０８に進み、Ｔ［ｔ０］の増加する割合が最大値であるかどうかを判定する。最大値でない場合、プロセス２００はシステム・プロセス１００の流れに戻る。そうでなければ、プロセスはブロック２１０に進み、ＩＮＤＥＸ＝Ａ*ＩＮＤＥＸを設定することで、Ｔ［ｔ０］の変化率ＩＮＤＥＸを増加させる。ここでＡは所定の数であり、一実施形態ではＡ＝２である。次いでプロセスはプロセス・ブロック２１２に進み、ＩＮＤＥＸ＝ＩＮＤＥＸ*Ｔ［ｉｔｏ］を設定することで、タイムアウト無活動期間Ｔ［ｔ０］が増加されるが、ここでＴ［ｉｔｏ］は初期のタイムアウト無活動値である。次いでプロセス２００はメイン・プロセス１００の流れに戻る。
【００２２】
判断ブロック２０２で、プロセスが、システム・アクセス時間Ｔが第１の所定の値Ｔ（Ｉｎｃ）よりも短くないと判定した場合、プロセス２００は図５Ｂのプロセス・ブロック２１４に進み、システム・アクセス時間が第２の所定の期間Ｔ（Ｄｅｃ）より長いかどうかを判定する。長い場合、プロセスは判断ブロック２１６に進み、ＤＩＲ  ＦＬＡＧが、Ｔ［ｔ０］を減らさなければならないことを示すように設定されているかどうかを判定する。そのように設定されている場合、プロセスはプロセス・ブロック２１８に進み、Ｔ［ｔ０］を減らさなければならないことを示すように、ＤＩＲ  ＦＬＡＧを設定する。一実施形態では、ＤＩＲ  ＦＬＡＧは、Ｔ［ｔ０］を増やさなければならないことを示す、値「２」に設定される。次いでプロセス２００は、メイン・プロセス１００の流れに戻る。判断ブロック２１６でプロセスが、ＤＩＲ  ＦＬＡＧがＴ［ｔｏ｝を減らさなければならないことを示すように設定されていると判定した場合、判断ブロック２２０に進み、Ｔ［ｔｏ｝が初期タイムアウト無活動値であるＴ［ｉｔｏ］に等しいかどうかを照会する。等しい場合、プロセス２００はメイン・プロセス１００の流れに戻る。そうでない場合は、プロセス・ブロック２２４に進み、ＩＮＤＥＸ＝Ｂ*ＩＮＤＥＸを設定することで変化率ＩＮＤＥＸを増やす。ここでＢは定数であり、一実施形態では、Ｂ＝２である。次いでプロセス２００はプロセス・ブロック２２６に進み、Ｔ［ｔ０］＝Ｔ［ｔ０］−（ＩＮＤＥＸ*Ｔ［ｉｔｏ］）を設定することで、タイムアウト無活動期間Ｔ［ｔ０］を減らす。次いでプロセス２００はメイン・プロセス１００の流れに戻る。
【００２３】
判断ブロック２１４で、プロセス２００が、Ｔが第２の所定の値Ｔ（Ｄｅｃ）よりも大きくないと判定した場合、プロセス２００は図５Ｃの判断ブロック２２８に進み、Ｔが許容範囲内であるかどうかを照会する。一実施形態では、プロセスはＴ（Ｉｎｃ）＜Ｔ＜（Ｄｅｃ）であるかどうかを照会する。その範囲内であれば、プロセスはプロセス・ブロック２３０に進み、ＤＩＲ  ＦＬＡＧが、Ｔ［ｔ０］を変更するべきではないことを示すように設定されているかどうかを判定する。この判定においてそのように設定されていない場合、プロセス２００はプロセス・ブロック２３２に進み、ＤＩＲ  ＦＬＡＧを、Ｔ［ｔ０］を変更するべきではないと設定する。一実施形態では、ＤＩＲ  ＦＬＡＧが、Ｔ［ｔ０］を変更するべきではないことを示す値「０」に設定される。次いでプロセス２００は、メイン・プロセス１００の流れに戻る。判断ブロック２３０で、プロセス２００が、ＤＩＲ  ＦＬＡＧがＴ［ｔ０］を減らすべきであることを示すように設定されていると判定した場合、メイン・プロセス１００の流れに戻る。さらに、判断ブロック２２８で、プロセスが、Ｔが所定の許容範囲内にない、すなわち、ＴがＴ（Ｉｎｃ）よりも大きくなく、Ｔ（Ｄｅｃ）よりも小さくないと判定した場合、プロセスはメイン・プロセス１００の流れに戻る。
【００２４】
図６は、本発明のＩＰＭプロセスの第２の実施形態を示す流れ図である。一実施形態では、ＩＰＭプロセス３００を、ビデオ回路などの表示デバイスのマネジメント用に実施することができる。ＩＰＭプロセス３００は開始状態から始まって判断ブロック３０２に進み、ここでプロセス３００は、デバイスのタイムアウト無活動期間Ｔ［ｔ０］が、所定の無活動期間Ｔ［ｉｎａｃｔｉｖｅ＿ｔｉｍｅ］よりも長いかどうかを判定する。一実施形態では、Ｔ［ｉｎａｃｔｉｖｅ＿ｔｉｍｅ］は、キーボードまたはマウスなどのポインティング・デバイスなど、Ｉ／Ｏデバイスの無活動期間である。他の実施形態では、Ｔ［ｉｎａｃｔｉｖｅ＿ｔｉｍｅ］が１０秒である。長い場合、プロセス３００はプロセス・ブロック３０４に進み、デバイスの電源をオフにする。次いでプロセス３００はプロセス・ブロック３０６に進み、１５秒などの所定の時間内で動作する、デバイスの対話タイマを開始する。次いでプロセス３００は、判断ブロック３１０に示されるように、マネジメントされたデバイスが、デバイス対話タイマ期間中にアクセスされたかどうかを照会する。アクセスされた場合、プロセス３００はプロセス・ブロック３１２に進み、マネジメントされたデバイスを活動化する。プロセス３００はＴ［ｉｎａｃｔｉｖｅ＿ｔｉｍｅ］＝Ｃ*Ｔ［ｉｎａｃｔｉｖｅ＿ｔｉｍｅ］の設定にも進むが、ここでＣは所定の数である。一実施形態では、Ｃ＝４である。次いでプロセス３００は、メイン・プロセス１００の流れに戻る。判断ブロック３１０で、プロセスが、デバイス対話タイマ期間中にデバイスがアクセスされなかったと判定した場合、プロセス３００はプロセス・ブロック３１６に進み、対話タイマがリセットされる。次いでプロセスは、判断ブロック３０２に戻る。判断ブロック３０２で、プロセス３００が、Ｔ［ｔ０］がＴ［ｉｎａｃｔｉｖｅ＿ｔｉｍｅ］よりも大きくないと判定した場合、プロセス３００はメイン・プロセス１００の流れに戻る。
【００２５】
図７は、本発明のＩＰＭプロセスの第３の実施形態を示す流れ図である。一実施形態では、ＩＰＭプロセス４００を、処理ユニットまたはＣＰＵなどの処理回路に使用することができる。プロセス４００は開始状態から始まり、プロセス・ブロック４０２に進んで、マネジメントされたデバイスのプロファイルＩＤを読み取る。プロファイルＩＤは、マネジメントされたデバイスの動作モードを提供する。次いでプロセス４００は判断ブロック４０４に進み、デバイスのプロファイルＩＤが、デバイスがワード・プロセッシングまたはプレゼンテーションサービスを提供していることを示しているかどうかを照会する。提供している場合、プロセスはデバイス・クロックを最小に設定するが、これはマネジメントされたデバイスの最高動作速度の、わずか何分の一である。一例では、「最小」とは、マネジメントされたデバイスの最高動作速度の２５％である。次いでプロセス４００は、メイン・プロセス１００の流れに戻る。
【００２６】
判断ブロック４０４で、プロセスが、マネジメントされたデバイスのプロファイルＩＤが、ワード・プロセッシングでもプレゼンテーションサービスでもないと判定した場合、判断ブロック４０８に進み、デバイスのプロファイルＩＤがスプレッドシート・サービスの提供に関連しているかどうかを判定する。関連している場合、プロセス４００はプロセス・ブロック４１に示すようにデバイス・クロックを最大に設定するが、これはマネジメントされたデバイスの最高動作速度の所定の割合である。一実施形態では、「最大」とは、マネジメントされたデバイスの最高動作速度の１００％である。次いでプロセス４００は、メイン・プロセス１００の流れに戻る。
【００２７】
判断ブロック４０８でプロセス４００が、プロファイルＩＤが、デバイスがスプレッドシート・サービスを提供していることを示さないと判断した場合、判断ブロック４１２に進み、所定の期間内にキーボード、マウス、またはディスク・ドライブなどのＩ／Ｏデバイスから何らかの活動があるかどうかを判定する。一実施形態では、所定の期間は１分である。活動がない場合、プロセス４００はプロセス・ブロック４１４に進み、デバイス・クロックを最小に設定する。プロセスはメイン・プロセスの流れに戻る。判断ブロック４１２でプロセス４００が、所定の期間内にＩ／Ｏデバイスからの活動があると判定した場合、プロセス４００はプロセス・ブロック４１６に進み、デバイス・クロックをｄｅｖｉｃｅ＿ｃｌｏｃｋ＝Ｄ*ｄｅｖｉｃｅ＿ｃｌｏｃｋに設定するが、ここでＤは所定の数である。次いでプロセス４００はメイン・プロセス１００の流れに戻る。
【００２８】
図８は、本発明のＩＰＭプロセスの第４の実施形態を示す流れ図である。一実施形態では、ＩＰＭプロセス５００は、フロッピー（登録商標）・ディスクなどのＩ／Ｏデバイスの管理を実施することができる。プロセス５００は開始状態から始まり、プロセス・ブロック５０２に進んで、Ｔ［ｔ０］が４秒などの所定の量よりも長いかどうかを判定する。長い場合、デバイスの電源はオフになる。次いでプロセス５００は、メイン・プロセス１００の流れに戻る。Ｔ［ｔ０］が所定の量よりも短い場合、プロセス５００はメイン・プロセス１００の流れに直接戻る。
【００２９】
本発明は、プロセッサ・ベース・システムにおいて、いくつかのアプリケーションにパワー・マネジメントを提供するための装置および方法を提供するものであり、システム性能を最適化しながらシステムの省電力を容易にする。
【００３０】
以上本発明について、一定の好ましい実施形態に関して述べてきたが、当分野の通常の技術者であれば、他の実施形態も本発明の範囲内にあることが明らかであろう。たとえば、前述のプロセス１００、２００、３００、４００、および５００は例示的なものであって、限定的なものではない。さらに、ＩＰＭプロセス２００、３００、４００、および５００は、別々に実施しても組み合わせて実施してもよい。したがって、本発明の範囲は、特許請求の範囲によってのみ定義するように意図されている。
【符号の説明】
【００３１】
１０：プロセッサ・システム
１２：ＣＰＵ
１４：メモリ・モジュール
１６：システム・バス
２０：Ｉ／Ｏバス
【図１】
2013117981.tif 000003
【図２】
2013117981.tif 000004
【図３】
2013117981.tif 000005
【図４】
2013117981.tif 000006
【図５Ａ】
2013117981.tif 000007
【図５Ｂ】
2013117981.tif 000008
【図５Ｃ】
2013117981.tif 000009
【図６】
2013117981.tif 000010
【図７】
2013117981.tif 000011
【図８】
2013117981.tif 000012
【手続補正書】
【提出日】平成25年1月31日(2013.1.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサ・ベース・システムの回路用のパワー・マネジメント装置であって、
プロセッサ・ベース・システムを処理するのに使用する命令シーケンスを格納するためのメモリと、
当該メモリに結合されたプロセッサとを含み、
前記格納された命令シーケンスが、
前記プロセッサを使用するアプリケーション・プログラムとは別に当該プロセッサに
（ａ）前記回路の前記アプリケーション・プログラムのタイプに対応する動作モードを決定させ、
（ｂ）前記動作モードに応答して、第１の所定の速度で前記回路を動作させ、前記第１の所定の速度より速い第２の所定の速度で前記回路を動作させるパワー・マネジメント装置。
【請求項２】
前記格納された命令シーケンスがさらに前記プロセッサに、（ｃ）所定の期間内に、前記回路に結合された入／出力デバイスからの所定の活動レベルが存在するかどうかを判定させ、存在する場合は、第３の所定の速度で前記回路を動作させ、そうでない場合は、前記第１の所定の速度で前記回路を動作させる、請求項１に記載のパワー・マネジメント装置。
【請求項３】
前記第３の所定の速度が、前記第１、第２の所定の速度の間の速度である、請求項２に記載のパワー・マネジメント装置。
【請求項４】
前記アプリケーション・プログラムのタイプが、前記回路が当該アプリケーション・プログラムに提供するサービスに対応する、請求項１に記載のパワー・マネジメント装置。
【請求項５】
前記回路が提供するサービスのタイプは、ワードプロセッシング・サービス、プレゼンテーション・サービス、及びスプレッドシート・サービスの中から選択される、請求項４に記載のパワー・マネジメント装置。
【請求項６】
前記回路の動作モードが、前記サービスのタイプを示す、請求項１に記載のパワー・マネジメント装置。
【請求項７】
前記回路が提供するサービスのタイプは、ワードプロセッシング・サービス、プレゼンテーション・サービス、及びスプレッドシート・サービスの中から選択される、請求項６に記載のパワー・マネジメント装置。
【請求項８】
プロセッサ・ベース・システムの回路用のパワー・マネジメント方法であって、
（ａ）回路を使用するアプリケーション・プログラムとは別に実行される命令シーケンスを当該回路が用い、当該回路の前記アプリケーション・プログラムのタイプに対応する動作モードを決定し、
（ｂ）前記動作モードに応答して、第１の所定の速度で前記回路を動作させ、前記第１の所定の速度より速い第２の所定の速度で前記回路を動作させるパワー・マネジメント方法。
【請求項９】
（ｃ）所定の期間内に、前記回路に結合された入／出力デバイスからの所定の活動レベルが存在するかどうかを判定させ、存在する場合は、第３の所定の速度で前記回路を動作させ、そうでない場合は、前記第１の所定の速度で前記回路を動作させる、請求項８に記載のパワー・マネジメント方法。
【請求項１０】
プロセッサ・ベース・システムの回路用の命令シーケンスを含むプログラムであって、
（ａ）前記回路を使用するアプリケーション・プログラムとは別に実行される命令シーケンスを当該回路が用い、当該回路の前記アプリケーション・プログラムのタイプに対応する動作モードを決定する手順と、
（ｂ）前記動作モードに応答して、第１の所定の速度で前記回路を動作させ、前記第１の所定の速度より速い第２の所定の速度で前記回路を動作させる手順とを、
前記回路に実行させるプログラム。
【請求項１１】
（ｃ）所定の期間内に、前記回路に結合された入／出力デバイスからの所定の活動レベルが存在するかどうかを判定させ、存在する場合は、基づいて第３の所定の速度で前記回路を動作させ、そうでない場合は、前記第１の所定の速度で前記回路を動作させる手順を、さらに前記回路に実行させる、請求項１０に記載のプログラム。
【請求項１２】
前記アプリケーション・プログラムのタイプが、前記回路が当該アプリケーション・プログラムに提供するサービスに対応する、請求項１１に記載のプログラム。
【請求項１３】
前記回路が提供するサービスのタイプは、ワードプロセッシング・サービス、プレゼンテーション・サービス、及びスプレッドシート・サービスの中から選択される、請求項１２に記載のプログラム。
【請求項１４】
請求項１０乃至１３のいずれか１項に記載のプログラムを格納する、プロセッサ・ベース・システムの回路により読取り可能な記憶媒体。
【外国語明細書】
2013117981000001.pdf