(57)【要約】【目的】ブロセッサの動作クロック周波数を、ＣＰＵの負荷、例えばＣＰＵ使用率に応じて変更することに関して、変更後のＣＰＵ性能に対してＣＰＵの負荷がより整合するように動作クロック周波数を選択することを実現する。【構成】動作クロック周波数とＣＰＵ負荷との対応を記憶する動作クロックテーブルは、動作クロック周波数毎に複数の区分があり、各区分は閾値により区分される。各閾値はその動作クロックに対応した値を有する。【選択図】            図５
2006268246.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサの負荷に応じてプロセッサ用の動作クロックの周波数を変化させるクロック周波数制御装置であって、
プロセッサの負荷を検出する負荷検出部と、
プロセッサの負荷と動作クロック周波数とを対応付けた動作クロックテーブルと、
検出された負荷に応じた動作クロック周波数を、上記動作クロックテーブルを参照して取得する手段とを有し、
上記動作クロックテーブルは、動作クロック周波数毎に複数の区分を有し、各区分の閾値は動作クロック周波数に対応していることを特徴とするクロック周波数制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ用の動作クロック信号の周波数を制御するクロック周波数制御装置に関する。
【背景技術】
【０００２】
コンピュータなどの電子機器においてプロセッサの省電力を行う方法として、プロセッサの動作クロック信号の周波数を低下させることによりプロセッサの消費電力を抑える方法がある。この方法ではプロセッサの負荷、例えばプロセッサ使用率などを判定し、その負荷量の大きさにより動作クロック周波数を変更する。
【０００３】
例えば、外部クロック周波数をｆＭＨｚとすると、２ｆＭＨｚ、３ｆＭＨｚ、４ｆＭＨｚ、５ｆＭＨｚの周波数を持った動作クロック信号をプログラムにより設定可能である。これによりプロセッサはｆ〜５ｆの５段階の性能（５種類の動作クロック周波数）に対応する5種類のレベルを有し、選択されたレベルで規定される周波数の動作クロック信号で動作する。
【０００４】
さて、負荷に応じて動作クロック周波数を変更する方法として、特許文献１には次の方法が提案されている。すなわち、CPUの単位時間当たりの平均情報処理負荷を求め、このCPU負荷により、動作クロックテーブル（このテーブルは情報処理負荷の度合いとCPU動作クロックとが対応付けられて記憶されている）を参照することにより、その負荷に応じた動作クロックを取得してCPUの動作クロックの周波数を変更制御するものである。
【特許文献１】特開２００３−２５６０６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の方法では、以下のような問題がある。すなわち、かかる動作クロックテーブルにおいては、ＣＰＵ負荷と動作クロック周波数が１対１に対応付けられているために、求めた負荷に応じて動作クロック周波数を取得して変更したとしても、新動作クロック周波数とＣＰＵ負荷とが適切な関係にならない場合がある。
【０００６】
特許文献１の実施例に説明されている具体的な数値を例にとって説明する。いま動作クロック周波数が１０でＣＰＵが動作しており、あるタイミングのＣＰＵ負荷が３０と仮定すると、動作クロックテーブルからは８０の動作クロック周波数が取得され、ＣＰＵは８０の動作クロック周波数で動作することとなる。すなわち、ＣＰＵの能力は向上したこととなる。ここで１０の動作クロック時の負荷と、８０の動作クロック時の負荷の絶対量が変化しないとすると、８０の動作クロック周波数で動作するＣＰＵにとってその負荷は小さいものとなる。
【０００７】
この結果、次の動作クロック周波数の変更チエックタイミングでは再び低い動作クロック周波数への変更作業が強いられることとなり、ＣＰＵは変更作業を頻繁に行うこととなる。
【課題を解決するための手段】
【０００８】
本発明は上記のような課題を解決するために、プロセッサの負荷と動作クロック周波数とを１対１に対応付けるのではなく、一つの動作クロック周波数に対して複数の区分を設定し、各区分の閾値をその動作クロック周波数に対応付けた、動作クロックテーブルとした。
【０００９】
すなわち、ＣＰＵ負荷だけを勘案して新しい動作クロック周波数を決定するのではなく、ＣＰＵ負荷と、その時点での動作クロック周波数とから新しい動作クロック周波数を取得するようにした。
【発明の効果】
【００１０】
本発明によればＣＰＵ負荷の絶対量が同じと仮定しても、ＣＰＵ負荷は変更された新しい動作クロック周波数に対してより適切なものとなり、したがって、動作クロック周波数の変更動作が頻繁に行われることが無い。
【発明を実施するための最良の形態】
【００１１】
以下に図面を使用して、具体的に説明するが、本発明はこれらの実施例に限定されるものではない。
＜パーソナルコンピュータの全体構成＞
図１は情報処理装置、例えばパーソナルコンピュータを全体構成を機能ブロックで示しており、ＣＰＵ１０、外部メモリ２０および表示装置３０よりなる。
【００１２】
ＣＰＵ１０は、制御を行う表示装置制御部１１、ＣＰＵ周波数切替部１２、レベルレジスタ１３およびタイマ１４を有している。
【００１３】
表示装置制御部１１は、垂直同期信号Ｖｓ、水平同期信号Ｈｓ、有効信号ＯＥ、クロック信号ＣＬＫおよびラインデータ信号ＬＤを介して表示制御装置３０の表示をコントロールする。また、表示装置制御部１１は垂直ブランク期間検出部１１ａを有し、この検出部１１ａは、垂直同期信号ＶＳの立ち上がりに同期して、すなわち、垂直ブランキング期間の開始を検出してＣＰＵ周波数記憶部２６を作動する。
【００１４】
レベルレジスタ１３は、現在のＣＰＵの動作クロック周波数に対応するレベルを記憶するものであり、この記憶されたレベルは制御部２５によって参照され、また、ＣＰＵ周波数切替部１２によって更新される。
【００１５】
タイマ１４は、セットされた時間を計数するものであり、動作クロック周波数の変更是非の動作開始を制御する。このタイマ１４は制御部２５から割込み時間がセットされ、その時間が経過すると、ＯＳアイドルハンドラ２２及び制御部２５に対して動作クロック周波数の変更有無のための作業開始を指示する。
【００１６】
一方、外部メモリ２０は、オペレーティングシステム（ＯＳ）２１、ＯＳアイドルハンドラ２２、ＣＰＵ使用率取得部２３、動作クロックテーブル２４、省電力制御部２５およびＣＰＵ周波数記憶部２６とを有している。
【００１７】
ＯＳアイドルハンドラ２２はＯＳ２１の動作を監視し、ＯＳが動作している時間、動作をしていない時間をチエックし、タイマ１４からの指示に応答して、その情報をＣＰＵ使用率取得部２３に送出する。この取得部２３は、ハンドラ２２からの情報、すなわち、ＯＳの動作時間及び非動作時間から、ＣＰＵ使用率を演算する。すなわち、ある一定時間に対するＯＳの累計動作時間の割合を演算し、それをＣＰＵ使用率、換言するとプロセッサの負荷として省電力制御部２５に送出する。
【００１８】
動作クロックテーブル２４は、ＣＰＵ負荷率と動作クロック周波数とを対応付けて記憶しており、そのデータ構成は図２を使用して後述する。
【００１９】
省電力制御部２５はタイマ１４からのタイムアップ信号、すなわち、チエック動作開始信号を受けて、動作クロック周波数の変更有無の動作を開始する。ＣＰＵ使用率取得部２３からＣＰＵ使用率を獲得する機能、動作クロックテーブル２４を参照する機能及びＣＰＵ周波数記憶部２６へ動作クロック周波数の区分を送出する機能を有する。更に、かかる制御部２５は、ＣＰＵ使用率と動作クロックテーブル２４から、適切な動作クロック周波数を判定する機能も有している。
【００２０】
ＣＰＵ周波数記憶部２６は、制御部２５から送出される動作クロック周波数に対応した区分を記憶し、垂直ブランク期間検出部１１ａからの指示により、この区分をＣＰＵ周波数切替部１２に送出するものである。
＜動作クロックテーブルのデータ構造＞
図２は動作クロックテーブル２４のダータ構造を示す。レベル１〜５は動作クロック周波数のレベルを示すものであり、例えば、レベル１は１０４ＭＨｚ、レベル２は２０８ＭＨｚ、レベル３は３１２ＭＨｚ、レベル４は４１６ＭＨｚ、そしてレベル５は５２０ＭＨｚを表している。すなわち、ＣＰＵは５種類の異なった周波数を有する動作クロック信号で作動可能であり、したがって、５つのレベルの性能あるいは能力を有することとなる。
【００２１】
レベル１〜５はそれぞれ複数の区分を有し、各区分は閾値により区分されている。すなわち、レベル１は閾値９１、レベル２は閾値４６及び９１、レベル３は閾値３１と６１及び９１、レベル４は２３と４６と６８及び９１、レベル５は１９と３７と５５と７３及び１００とにより区分されている。
＜クロック周波数変更動作の流れ＞
次に、図を使用して動作クロック周波数の変更の流れを説明する。
【００２２】
図３において制御部２５は、タイマ割込み時間Ｐｎをタイマ１４にセットし（Ｓ３１）、タイマの割込み、すなわち、タイマ１４が時間Ｐｎを計数するのを待つ（Ｓ３２）。タイマ１４が割込みを送出すると、制御部２５はレベルレジスタ１３からレベルを読み出す（Ｓ３３）と同時に、ＣＰＵ使用率取得部２３からＣＰＵ使用率、すなわち、ＣＰＵの負荷情報を取得する（Ｓ３４）。
【００２３】
次に、動作クロックテーブル２４を参照するが、その参照先はレジスタ１３から読み出したレベル内に限定され、そのレベルに対応する最初の区分から順番に参照される。すなわち、一つめの区分におけるＴＬ１を参照し（Ｓ３５）、閾値が存在するか否かを判断する（３６Ｓ）。閾値がテーブルに存在しない場合には次の区分を参照し（Ｓ３７）、区分が４となる迄（Ｓ３８）、閾値の有無を判断する。
【００２４】
一方、閾値が存在する場合には、その閾値とＣＰＵ使用率取得部２３から取得したＣＰＵ使用率との大小を比較し（Ｓ３９）、ＣＰＵ使用率＞閾値の場合には、次の区分を参照する（Ｓ３７）。Ｓ３９での比較の結果、ＣＰＵ使用率＜閾値の場合には、その閾値に対応する区分を選択し、それを記憶部２６に対してセットし（Ｓ４０）、更にタイマ１４に対して割込み時間Ｐｎをセットする（Ｓ４１）。
【００２５】
一方、ステップＳ３８において閾値が４を超えた場合には、図４のように、ＣＰＵ使用率と閾値ＴＬｓｔａｙとの大小が判別され（Ｓ４２）、ＣＰＵ使用率＜閾値の場合には区分Ｓｔａｙが選択され、タイマ１４に対して割込み時間Ｐｎをセットして（Ｓ４３）終了する。したがって、記憶部２６へは区分がセットされることが無い。
【００２６】
ステップ４２において、ＣＰＵ使用率＞閾値の場合には、その閾値に対応する区分が選択され、その区分が記憶部２６に対してセットされ（Ｓ４４）、タイマに対して割込み時間Ｐｓがセットされる（Ｓ４５）。ここでセットされる時間Ｐｓはステップ４１あるいはＳ４３にてセットされる割込み時間Ｐｎよりも小であり、これはＣＰＵ使用率が最大値１００であり、閾値ＴＬｓｔａｙよりも大きいことは検知できるが、どれだけ超過しているのかは知ることかできない。そのために、動作クロック周波数を１段階アップしたとしても、ＣＰＵの性能とＣＰＵ負荷がマッチングしていない可能性かあるので、Ｐｎより短い割込み時間Ｐｓとすることにより、次回のチエック開始までの時間を短縮するためである。
【００２７】
一例として、以下に具体的な数値を挙げて動作を説明する。前提として現在のＣＰＵのレベルが「４」、すなわち、４１６ＭＨｚで動作しており、ＣＰＵ使用率が「４５」と仮定する。
【００２８】
タイマ１４がセットされた割込み時間の計数が終了すると、割込み信号が制御部２５とハンドラ２２に送出される。制御部２５はレベルレジスタ１３の内容をチエックし、「４」であることを認識する。一方、ＣＰＵ使用率取得部２３はハンドラ２２からの情報に基づいてＣＰＵ使用率が計算され、この場合には上記のように「４５」と仮定する。
【００２９】
省電力制御部２５はレベルレジスタ１３から得られた「４」及びＣＰＵ使用率「４５」から動作クロックテーブル２４を参照する。すなわち、テーブルのレベル４の最初区分に閾値が存在するかどうかをステップ３６で判断し、閾値である「２３」が存在するので、その閾値「２３」とＣＰＵ使用率である「４５」との大小の比較がステップＳ３９にて行われる。このケースでは、閾値＜ＣＰＵ使用率となるので、ステップＳ３７で次の区分の閾値が存在するか否かがステップＳ３６で判断され、閾値「４６」が存在するので、再度ステップＳ３９において、閾値とＣＰＵ使用率との大小の比較が行われる。この場合、閾値「４６」＞ＣＰＵ使用率「４５」となるので、閾値４６で区分された第２区分が選択され、そのレベル２が記憶部２６にセットされるとともに、タイマ１４は割込み時間Ｐｎがセットされる。
【００３０】
図５は動作クロック周波数の遷移を表したものであり、上記の実施例のように、現在の動作クロック周波数のレベルが「４」で、ＣＰＵ使用率が「４５」の場合には、レベル４における第２の区分が選択されることを表している。
【００３１】
＜表示装置の制御と動作クロック変更との関係＞
図６は表示装置制御部１１と表示部３０との間で授受され各種の信号を示すもので、垂直同期信号Ｖｓ、水平同期信号Ｈｓ、有効信号ＯＥ、クロック信号ＣＬおよびラインデータ信号ＬＤを表している。
【００３２】
第７図は表示装置の制御と動作クロック周波数の切り替えの流れを示す。表示装置制御部１１の垂直ブランク同期検出部１１ａにて垂直同期信号Ｖｓの立ち上がりが検出されると動作クロック周波数の切替要求の有無が判定される。これは、記憶部２６に区分が存在するのか否かによって判断される。区分が記憶されていない場合には、何もすることなく、次の垂直同期信号の立ち上がりまで待機する（Ｓ４６）。
【００３３】
一方、記憶部２６に区分が記憶されている場合には、その区分に応じた動作クロック周波数にクロック切替を行い（Ｓ４８）、レベルレジスタ１３を更新し（Ｓ４９）、記憶部２６の区分を消去して（Ｓ５０）、クロック切替の動作が終了する。
【００３４】
動作クロック周波数の切り替えを表示装置３０における垂直同期信号Ｖｓの立ち上がりに同期して行うことにより、クロック周波数の変更によって生じる可能性が高い、表示画面のチラツキや乱れを防止することができる。
【００３５】
なお、ＯＳアイドルハンドラ２２に換えて、点線で示すように、ＣＰＵクロックカウンタ１５及び命令実行回数カウンタ１６からの情報により、ＣＰＵ使用率取得部２７からＣＰＵ使用率を得るように構成を変更しても良い。
【産業上の利用可能性】
【００３６】
以上説明したように本発明によれば、ＣＰＵ負荷と、その時点での動作クロック周波数とから新しい動作クロック周波数を選択するようにしたので、新しい動作クロック周波数、すなわち、新しいＣＰＵ性能と負荷とがより一層整合することとなる。
【図面の簡単な説明】
【００３７】
【図１】パーソナルコンピュータの機能ブロックを示す。
【図２】動作クロックテーブル２４のダータ構造を示す。
【図３】動作クロック周波数の変更の流れを示すフローチャート。
【図４】動作クロック周波数の変更の流れを示すフローチャート。
【図５】動作クロック周波数の遷移を示す。
【図６】表示装置制御部と表示部との間で授受され各種の信号を示す。
【図７】表示装置の制御と動作クロック周波数の切り替えの流れ示すフローチャート。
【符号の説明】
【００３８】
１０：ＣＰＵ
２０：外部メモリ
３０：表示装置
１１：表示装置制御部
１２：ＣＰＵ周波数切替部
２３：ＣＰＵ使用率取得部
２４：動作クロックテーブル
２５：省電力制御部
【図１】
2006268246.tif 000003
【図２】
2006268246.tif 000004
【図３】
2006268246.tif 000005
【図４】
2006268246.tif 000006
【図５】
2006268246.tif 000007
【図６】
2006268246.tif 000008
【図７】
2006268246.tif 000009