(57)【要約】  プロセッサーの消費電力の節減方法において、プロセッサーの複数の負荷値を時間周波数変換して、プロセッサーの特徴サンプリング周期を取得するステップと、前記特徴サンプリング周期に基づき、前記プロセッサーの電圧／周波数を調整するステップと、を含む。本発明の方法によれば、次の時間間隔におけるプロセッサーの負荷値を正確に予測することができるので、該負荷値に基づき、プロセッサーの次の時間間隔における電圧／周波数を調整することができる。【特許請求の範囲】
【請求項１】
プロセッサーの消費電力の節減方法において、
プロセッサーの複数の負荷値を時間周波数変換して、プロセッサーの特徴サンプリング周期を取得するステップと、
前記特徴サンプリング周期に基づき、前記プロセッサーの電圧／周波数を調整するステップと、
を含むことを特徴とする方法。
【請求項２】
前記時間周波数変換ステップにおいて、
プロセッサーの負荷を高密度サンプリングして、第１の数のプロセッサー負荷値を取得するステップと、
前記第１の数のプロセッサー負荷値をフーリエ変換して、ピーク幅に対応する周波数と、該周波数に対応する特徴サンプリング周期とを算出するステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記調整ステップにおいて、
現在の時間間隔において前記プロセッサーの負荷を前記特徴サンプリング周期で再びサンプリングして、第２の数のプロセッサー負荷値を取得するステップと、
前記第２の数のプロセッサー負荷値に基づき予測モデルを確立して、前記プロセッサーの次の時間間隔におけるプロセッサー負荷値を予測するステップと、
前記予測したプロセッサー負荷値に基づき、前記プロセッサーの電圧／周波数を調整するステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記予測モデルを確立するステップにおいて、
下記の線形モデルによりＭ個のプロセッサー負荷値に基づいて前記プロセッサーの次の時間間隔におけるプロセッサー負荷値を予測し、
2009521761.tif 000015
ただし、ｐは線形モデルの次数を表し、係数φｉはＹｕｌｅ−Ｗａｌｋｅｒ方程式により現在の時刻までのＭ個のプロセッサー負荷値から推定できることを特徴とする請求項３に記載の方法。
【請求項５】
前記予測したプロセッサー負荷値に基づいて前記プロセッサーの電圧／周波数を調整するステップにおいて、表索引の方法により前記予測したプロセッサー負荷値に基づいて前記プロセッサーの電圧／周波数を調整することを特徴とする請求項４に記載の方法。
【請求項６】
前記フーリエ変換ステップにおいて、前記特徴サンプリング周期を下記のように算出し、
τ＝（Ｔ＊Ｎ／２）／ｆτ
ただし、Ｔは高密度サンプリングのサンプリング周期を表し、Ｎは前記第１の数を表し、ｆτは前記ピーク幅に対応する周波数を表すことを特徴とする請求項５に記載の方法。
【請求項７】
前記調整ステップにおいて、
現在の時間間隔において前記プロセッサーの負荷を前記特徴サンプリング周期で再びサンプリングして、第２の数のプロセッサー負荷値を取得するステップと、
前記第２の数のプロセッサー負荷値に基づき予測モデルを確立して、前記プロセッサーの次の時間間隔におけるプロセッサー負荷値を予測するステップと、
前記予測したプロセッサー負荷値を補償因子で補償するステップと、
前記補償したプロセッサー負荷値に基づき、前記プロセッサーの電圧／周波数を調整するステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記補償因子の一定の時間での変化が所定の閾値よりも大きい場合、前記ステップを繰り返すステップをさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記補償因子は、加算型の補償因子λであり、前記加算型の補償因子を前記予測したプロセッサー負荷値に加算することによって、前記補償を行うことを特徴とする請求項８に記載の方法。
【請求項１０】
前記補償因子は乗算型の補償因子λであり、前記予測したプロセッサー負荷値を前記乗算型の補償因子で割ることによって、前記補償を行うことを特徴とする請求項８に記載の方法。
【請求項１１】
前記加算型の補償因子λを下記のように決め、
2009521761.tif 000016
ただし、ｅは統計して取得した過度調整率とユーザにより設定された過度調整率との偏差を表し、ＫＰ、ＫＩ、ＫＤは割合係数、積分係数、微分係数をそれぞれ表すことを特徴とする請求項９に記載の方法。
【請求項１２】
前記乗算型の補償因子λを下記のように決め、
2009521761.tif 000017
ただし、ｅは統計して取得した過度調整率とユーザにより設定された過度調整率との偏差を表し、ＫＰ、ＫＩ、ＫＤは割合係数、積分係数、微分係数をそれぞれ表すことを特徴とする請求項１０に記載の方法。
【請求項１３】
前記予測モデルを確立するステップにおいて、
下記の線形モデルによりＭ個のプロセッサー負荷値に基づき、前記プロセッサー負荷値を予測し、
2009521761.tif 000018
ただし、ｐは線形モデルの次数を表し、係数φｉはＹｕｌｅ−Ｗａｌｋｅｒ方程式により現在の時刻までのＭ個のプロセッサー負荷値から推定できることを特徴とする請求項７に記載の方法。
【請求項１４】
前記補償したプロセッサー負荷値に基づき、前記プロセッサーの電圧／周波数を調整するステップにおいて、
表索引の方法により前記予測したプロセッサー負荷値に基づき、前記プロセッサーの電圧／周波数を調整することを特徴とする請求項１３に記載の方法。
【請求項１５】
前記フーリエ変換ステップにおいて、前記特徴サンプリング周期を下記のように算出し、
τ＝（Ｔ＊Ｎ／２）／ｆτ
ただし、Ｔは高密度サンプリングのサンプリング周期を表し、Ｎは前記第１の数であり、ｆτは前記ピーク幅に対応する周波数であることを特徴とする請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサーの消費電力の節減に関し、具体的には、プロセッサーの電圧を保証して応用の要求を満足させるとともに、プロセッサーの消費電力を下げることができる、プロセッサーの消費電力の節減方法に関する。
【背景技術】
【０００２】
組み込み型の携帯用システムのようなバッテリ電源供給処理システムにおいて、通常、バッテリの寿命はシステムのチョークポイント（choke point）となる。一方、マルチメディア、特にビデオ再生は、例えばＰＭＰ、ＰＤＡのような携帯用デバイスに益々普及されている。したがって、バッテリ電源供給の処理システムの低消費電力の設計は、非常に重要なことである。さらに、従来の携帯用デバイスにおいて、組み込み型ＣＰＵの機能は、益々強大になり、通常、ソフトデコード操作を行うことができる。周知のように、ソフトデコードは、ＣＰＵ高密度処理の応用を必要とし、多くのバッテリエネルギーを消費することを必要とする。
【０００３】
ＣＰＵでビデオソフトデコードする場合には、通常、ＤＶＳ／ＤＦＳ（Dynamic Voltage/Frequency Scaling）と呼ばれる技術を用いて、低消費電力の設計を行う。ＤＶＳ技術において非常に重要なタスクは、適切なＣＰＵ負荷サンプリング周期を１つ選択し、適切なアルゴリズムによりＣＰＵ負荷を予測し、次の時間間隔にどのぐらいの電圧及び周波数を設定するかを決定することである。周知のように、該サンプリング周期の選択は、ＤＶＳの性能に大きな影響を与えている。これは、通常、ビデオストリームが１フレームずつのものであり、従来慣用の手法においてサンプリング間隔はフレーム率の逆数であると考えるからである。例えば、３０フレーム／秒のストリームについて、通常、該サンプリング間隔又は周期を３３ｍｓとすることが最適であると考えられる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、多くの研究を通じ、このようなサンプリング間隔によるＣＰＵ負荷データは規則性が悪くて良い予測結果を提供し難いので、電圧がプロセッサーの要求を満足させなかったり、プロセッサーの消費電力が過大になったりすることを発見した。
【０００５】
さらに、上記時間間隔に基づく低消費電力の設計において、プロセッサーの負荷はアプリケーションプログラムの変化に応じて変わるので、次の時間間隔をどのように正確に予測するのかはもう１つの重要な問題である。例えば、文献１（Xiaotao Liu, Prashant Shenoy and Weibo Gong, A Time Series-based Approach for Power Management in Mobile Processors and Disks, In Proceedings of the 14th ACM Workshop on Network and Operating System Support for Audio and Video (NOSSDAV)）には、時系列の方法によりプロセッサーの負荷値を予測する時系列による予測方法が提案されているが、該方法では動的な状況でプロセッサーの電力をどのように調整するのかを検討しておらず、即ち、プロセッサーの動作状況が変わる場合、プロセッサーの次の時間間隔における負荷値を正確に予測することができない。
【０００６】
本発明は、上記の問題点に鑑みてなされたものであり、プロセッサーの性能を保証して応用の要求を満足させるとともに、プロセッサーの消費電力を下げることができる、プロセッサーの消費電力の節減方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、プロセッサーの消費電力の節減方法において、プロセッサーの複数の負荷値を時間周波数変換して、プロセッサーの特徴サンプリング周期を取得するステップと、前記特徴サンプリング周期に基づき、前記プロセッサーの電圧／周波数を調整するステップと、を含む方法を提供する。
【０００８】
本発明の一実施例によれば、前記時間周波数変換ステップにおいて、プロセッサーの負荷を高密度サンプリングして、第１の数のプロセッサー負荷値を取得するステップと、前記第１の数のプロセッサー負荷値をフーリエ変換して、ピーク幅に対応する周波数と、該周波数に対応する特徴サンプリング周期とを算出するステップと、を含む。
【０００９】
本発明の一実施例によれば、前記調整ステップにおいて、現在の時間間隔において前記プロセッサーの負荷を前記特徴サンプリング周期で再びサンプリングして、第２の数のプロセッサー負荷値を取得するステップと、前記第２の数のプロセッサー負荷値に基づき予測モデルを確立して、前記プロセッサーの次の時間間隔におけるプロセッサー負荷値を予測するステップと、前記予測したプロセッサー負荷値に基づき、前記プロセッサーの電圧／周波数を調整するステップと、を含む。
【００１０】
本発明の一実施例によれば、前記予測モデルを確立するステップにおいて、下記の線形モデルによりＭ個のプロセッサー負荷値に基づいて前記プロセッサーの次の時間間隔におけるプロセッサー負荷値を予測し、
2009521761.tif 000002
ただし、ｐは線形モデルの次数を表し、係数φｉはＹｕｌｅ−Ｗａｌｋｅｒ方程式により現在の時刻までのＭ個のプロセッサー負荷値から推定できる。
【００１１】
本発明の一実施例によれば、前記予測したプロセッサー負荷値に基づいて前記プロセッサーの電圧／周波数を調整するステップにおいて、表索引の方法により前記予測したプロセッサー負荷値に基づいて前記プロセッサーの電圧／周波数を調整する。
【００１２】
本発明の一実施例によれば、前記フーリエ変換ステップにおいて、前記特徴サンプリング周期を下記のように算出し、
τ＝（Ｔ＊Ｎ／２）／ｆτ
ただし、Ｔは高密度サンプリングのサンプリング周期を表し、Ｎは前記第１の数を表し、ｆτは前記ピーク幅に対応する周波数を表す。
【００１３】
本発明の一実施例によれば、前記調整ステップにおいて、現在の時間間隔において前記プロセッサーの負荷を前記特徴サンプリング周期で再びサンプリングして、第２の数のプロセッサー負荷値を取得するステップと、前記第２の数のプロセッサー負荷値に基づき予測モデルを確立して、前記プロセッサーの次の時間間隔におけるプロセッサー負荷値を予測するステップと、前記予測したプロセッサー負荷値を補償因子で補償するステップと、前記補償したプロセッサー負荷値に基づき、前記プロセッサーの電圧／周波数を調整するステップと、を含む。
【００１４】
本発明の一実施例によれば、該方法は、前記補償因子の一定の時間での変化が所定の閾値よりも大きいと、前記ステップを繰り返すステップをさらに含む。
【００１５】
本発明の一実施例によれば、前記補償因子は、加算型の補償因子λであり、前記加算型の補償因子を前記予測したプロセッサー負荷値に加算することによって、前記補償を行う。
【００１６】
本発明の一実施例によれば、前記補償因子は、乗算型の補償因子λであり、前記予測したプロセッサー負荷値を前記乗算型の補償因子で割ることによって、前記補償を行う。
【００１７】
本発明の一実施例によれば、前記加算型の補償因子λを下記のように決め、
2009521761.tif 000003
ただし、ｅは統計して取得した過度調整率とユーザにより設定された過度調整率との偏差を表し、ＫＰ、ＫＩ、ＫＤは割合係数、積分係数、微分係数をそれぞれ表す。
【００１８】
本発明の一実施例によれば、前記乗算型の補償因子λを下記のように決め、
2009521761.tif 000004
ただし、ｅは統計して取得した過度調整率とユーザにより設定された過度調整率との偏差を表し、ＫＰ、ＫＩ、ＫＤは割合係数、積分係数、微分係数をそれぞれ表す。
【発明の効果】
【００１９】
本発明の方法によれば、次の時間間隔におけるプロセッサーの負荷値を正確に予測することができるので、該負荷値に基づき、プロセッサーの次の時間間隔における電圧／周波数を調整することができる。さらに、予測した負荷値を補償因子で補償することができるので、プロセッサーの動作状況が変わる場合、すぐに正確に調整して、アプリケーションプログラムの要求を満足させるとともに、プロセッサーの消費電力を下げることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施例について、図面を参照しながら詳細に説明する。
【００２１】
《第１の実施例》
図１に示すように、ステップＳ１１０において、先ず、ある高密度サンプリング間隔、例えばＴ＝１０ｍｓでＮ＝１２８個のＣＰＵ負荷値をサンプリングする。ステップＳ１２０において、サンプリングした１２８個のＣＰＵ負荷値をＦＦＴ変換して、前半の周期に対しピーク幅に対応する周波数ｆτを求める。
【００２２】
次に、ステップＳ１３０において、周波数ｆτに基づき、特徴サンプリング周期τ＝（Ｔ＊Ｎ／２）／ｆτを求める。
【００２３】
そして、ステップＳ１４０において、特徴サンプリング周期τに対応する周波数でＣＰＵ負荷をサンプリングして、一連のＣＰＵ負荷値、例えば６４個を取得する。ステップＳ１５０において、サンプリングして取得したＣＰＵ負荷値からＤＶＳモデリングすることによって、次の時間間隔におけるＣＰＵ負荷値を予測する。
【００２４】
具体的に、ＤＶＳモデルを確立する過程は下記のとおりである。多くの研究を通じて、上述特徴サンプリング間隔τでサンプリングしたＣＰＵ負荷値が、ＡＲＩＭＡ（autoregressive integrated moving average：自己回帰積分移動平均）のランダム過程に非常に良く適するものであることを発見した。
【００２５】
さらに、ＡＲＩＭＡ過程におけるＭＡ過程の分量が非常に少ないので、それを無視しても結果に大きな影響を与えないが、予測モデルの複雑度を大きく簡単化し、計算量を低減させることができる。ＤＶＳモデルは、主に、以前のＣＰＵ負荷に基づき、次の時間間隔のＣＰＵ負荷を予測ことによって、該当する電圧／周波数を設定する。
【００２６】
したがって、ＡＲＩ（autoregressive integrated：自己回帰積分）モデルに基づき、現在の時刻のＣＰＵ負荷の予測値を、線形モデルにより現在の時刻までのＭ個のＣＰＵ負荷値で容易に表すことができる。
【００２７】
2009521761.tif 000005
ただし、ｐはＡＲＩモデルの次数を表し、つまり、観測窓のサイズであり、係数φｉはＹｕｌｅ−Ｗａｌｋｅｒ方程式により、現在の時刻までのＣＰＵ負荷値から推定し取得されることができる。
2009521761.tif 000006
ただし、
2009521761.tif 000007
2009521761.tif 000008
ｋ＝０，１，２，３，・・・，ｐ
ｔ＝０，１，２，３，・・・，Ｍ
Ｍは、ｐより大きい自然数である。
【００２８】
したがって、上記のＤＶＳモデルに基づき、次の時間間隔におけるＣＰＵ負荷値を予測することができる。ＣＰＵの次のタイムスロットにおける負荷予測値
2009521761.tif 000009
を取得した後、ステップＳ１６０で簡単な表索引の方法により対応する周波数／電圧値を取得することができる。例えば、
2009521761.tif 000010
は、次の時間間隔においてＣＰＵ負荷が、ピーク周波数でＣＰＵが動作する時の０．３倍だけであることを表しているので、ＣＰＵメーカーが提供した電圧−周波数対照表から該当する電圧値を取得することができる。
【００２９】
《第２の実施例》
ＤＶＳは、ＣＰＵ電圧／周波数を下げる方法によりエネルギーを節減するので、不正確に予測したり、又は過度に低く調整したりすることによってＣＰＵの性能の不足を招来するため、アプリケーションプログラムを時間どおりに完了することができなくなる。例えば、ビデオ復号においては、ある時刻に完了すべき１フレームを時間どおりに復号できないので、再生効果に影響を与えることになる。
【００３０】
したがって、本発明の第２の実施例では、１つの過負荷制御メカニズムにより電圧過度調整の制御を行うことにより、システム性能に影響を与えることを回避している。図２は、本発明の第２の実施例によるプロセッサーの消費電力の節減方法を詳細に示すフローチャートである。
【００３１】
本発明の第２の実施例による方法のステップＳ１１０〜Ｓ１５０は、本発明の第１の実施例による方法のステップＳ２１０〜Ｓ２５０と同じであるので、ここでＳ２１０〜Ｓ２５０に対する説明を省略する。
【００３２】
ステップＳ２５５において、ＣＰＵ電圧に対する調整幅を制御するように、予測したＣＰＵ負荷を補償するための補償因子を定義している。そして、ステップＳ２６０において、補償因子が一定の時間中に激しく変わったかどうかを判断し、即ち、所定の閾値（例えば、１００％増加）を超えたかどうかを判断する。もし激しく変われば、ストリームの特性が変わって、該サンプリング周波数が適合しなくなり、該当するＤＶＳモデルも不正確になったということが分かる。この時、フローは、ステップＳ２１０に戻って、上記と同じ手順を繰り返す。許容可能な範囲で変わると、フローはステップＳ２４０に戻って、上記の手順を繰り返す。
【００３３】
具体的に、１つのＣＰＵ予測値
2009521761.tif 000011
を予測して取得した後、１つの補償因子λで補償して、最後の予測値とする。本発明の第２の実施例では、加算型及び乗算型の２種類の補償因子を定義しており、その後、最後のビデオ効果（過度調整率）が所定の範囲又はユーザの許容可能な範囲にあるように、補償因子を制御する。
【００３４】
下記のように、加算型の補償因子により予測したＣＰＵ負荷値を補償する。
2009521761.tif 000012
【００３５】
下記のように、乗算型の補償因子により予測したＣＰＵ負荷値を補償する。
2009521761.tif 000013
【００３６】
ただし、補償因子λの制御は、１つのＰＩＤコントローラに調整され、調整の方法は下記のとおりである。
2009521761.tif 000014
ただし、ｅは統計して取得した過度調整率とユーザにより設定された過度調整率との偏差を示し、ＫＰ、ＫＩ、ＫＤは割合係数、積分係数、微分係数をそれぞれ表す。これによれば、偏差ｅが比較的大きい場合、これに応じてλを大きくしたり又は小さくしたりすることで、過度調整率を設定範囲内で変動させる必要がある。ここで、過度調整率とは、ｎ個の時間間隔の中に、電圧を過度に低く設定することによってこの時間間隔内で実行完了の命令がランニング完了しないいくつかの間隔があるかを指すものである。
【００３７】
さらに、補償因子により、ビデオストリーム特性の変化を便利に検出することもできる。例えば、ビデオストリームが変わった場合、必ず一連の特性も変わるので、予測モデルは不正確になる。これによって、予測誤差は大きくなるので、補償因子は激しく大きくなったり（加算型）又は小さくなったり（乗算型）して、過度調整率があまり大きくならないように維持する。
【００３８】
このように、システム特性が変わると、１つの新規モデル又は新しいサンプリング周波数が必要であるということが分かる。したがって、フローはステップＳ２１０に戻って、上記と同じ手順を繰り返す。
【００３９】
以上述べたのは、本発明の具体的な実施の形態だけであり、本発明の保護範囲はこれに限定されるものではなく、当業者にとって、本発明に開示されている技術範囲内で容易に想到し得る変換又は置換は、いずれも本発明の範囲に含まれるべきである。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲を基準とすべきである。
【図面の簡単な説明】
【００４０】
【図１】本発明の第１の実施例によるプロセッサーの消費電力の節減方法を詳細に示すフローチャートである。
【図２】本発明の第２の実施例によるプロセッサーの消費電力の節減方法を詳細に示すフローチャートである。
【図１】
2009521761.tif 000019
【図２】
2009521761.tif 000020
【国際調査報告】
2009521761.tif 000021
2009521761.tif 000022
2009521761.tif 000023
2009521761.tif 000024
2009521761.tif 000025
2009521761.tif 000026