(57)【要約】【課題】発熱性デバイスの発熱を抑制しつつ、パフォーマンスの低下を小さく抑える。【解決手段】最大消費電力値の変更が可能なプロセッサを内蔵した発熱性デバイスに対して、プロセッサの消費電力値および温度値を定期的に計測し、測定された複数個の消費電力値の集合を代表する値が所定の閾値を超え、かつ温度値が所定の閾値を超えたときに当該プロセッサの発熱量の高い状態が一定時間にわたって続いたことを検出し、当該プロセッサの最大消費電力値を低減する。【選択図】図３
2007233782.tif 000002
【特許請求の範囲】
【請求項１】
最大消費電力値の変更が可能なプロセッサを搭載するコンピュータが前記プロセッサの発熱量を制御する方法であって、
前記プロセッサを動作させるステップと、
前記プロセッサの消費電力値を定期的に計測するステップと、
前記プロセッサの温度値を計測するステップと、
複数個の前記消費電力値の集合を代表する値が所定の閾値を超え、かつ前記温度値が所定の閾値を超えたときに前記プロセッサの最大消費電力値を低減するステップとを有する発熱量の制御方法。
【請求項２】
複数の最大動作周波数のいずれかで動作可能なプロセッサを搭載するコンピュータが前記プロセッサの発熱量を制御する方法であって、
前記プロセッサを第１の最大動作周波数で動作させるステップと、
前記プロセッサの消費電力の単位時間毎の代表値を測定し当該代表値の移動平均値を連続的に計算するステップと、
前記プロセッサの温度値を計測するステップと、
前記プロセッサの周波数制御設定電力値と周波数制御設定温度値とを提供するステップと、
前記移動平均値が連続して所定の回数だけ前記周波数制御設定電力値を超え、かつ前記温度値が前記周波数制御設定温度値を超えたときに前記プロセッサの最大動作周波数を第１の最大動作周波数より低い第２の最大動作周波数に低減するステップとを有する発熱量の制御方法。
【請求項３】
前記単位時間毎の代表値が前記プロセッサに入力される電流値を所定の回数だけサンプリングした値の平均値である請求項２記載の発熱量の制御方法。
【請求項４】
前記プロセッサの最大動作周波数を第２の最大動作周波数に低減するときの前記プロセッサの温度値を第１の温度値として記憶するステップと、
前記プロセッサの最大動作周波数を第２の最大動作周波数に低減した後に前記プロセッサの温度値と前記第１の温度値とを比較するステップと、
前記プロセッサの温度値が前記第１の温度値より高いと判断したときに前記プロセッサの最大動作周波数を第２の最大動作周波数より低い第３の最大動作周波数に低減するステップとを有する請求項２記載の発熱量の制御方法。
【請求項５】
複数の最大動作周波数のいずれかで動作可能な他のプロセッサを動作させるステップと、
前記プロセッサの最大動作周波数を限界まで低減した後に前記他のプロセッサの最大動作周波数を低減するステップとを有する請求項２記載の発熱量の制御方法。
【請求項６】
前記温度値が前記周波数制御設定温度値より低い所定の温度値を超えたときに前記単位時間を短くするステップを有する請求項２記載の発熱量の制御方法。
【請求項７】
前記プロセッサの周波数制御解除電力値を提供するステップと、
前記移動平均値が連続して所定の回数だけ前記周波数制御解除電力値を下回ったときに前記プロセッサを最も高い最大動作周波数で動作させるステップとを有する請求項２記載の発熱量の制御方法。
【請求項８】
複数の最大動作周波数のいずれかで動作可能なプロセッサと、
前記プロセッサの最大動作周波数を変更する周波数制御部と、
前記プロセッサの温度を測定する温度センサと、
周波数制御設定電力値と周波数制御設定温度値とを記憶したサーマル・アクション・テーブルを備え、前記プロセッサの消費電力の単位時間毎の代表値を測定して当該代表値の移動平均値を連続的に計算し、前記移動平均値が連続して所定の回数だけ前記周波数制御設定電力値を超え、かつ前記温度値が前記周波数制御設定温度値を超えたときに前記プロセッサの最大動作周波数を低減する制御部とを有するコンピュータ。
【請求項９】
前記プロセッサがビデオ・チップである請求項８記載のコンピュータ。
【請求項１０】
前記温度センサは前記プロセッサのダイに一体として組み込まれている請求項８記載のコンピュータ。
【請求項１１】
前記コンピュータの筐体を冷却する冷却ファンを有し、前記制御部は前記冷却ファンの動作を前記温度センサの温度値に基づいて前記プロセッサの最大動作周波数から独立して制御する請求項８記載のコンピュータ。
【請求項１２】
情報の処理状態に応じて消費電力が変動し最大消費電力の設定が可能な電子部品と、
前記電子部品の温度を測定する温度センサと、
消費電力制御設定電力値と消費電力制御設定温度値とを記憶したサーマル・アクション・テーブルを備え、前記電子部品の消費電力の単位時間毎の代表値を測定して当該代表値の移動平均値を連続的に計算し、前記移動平均値が連続して所定の回数だけ前記消費電力制御設定電力値を超え、かつ前記温度値が前記消費電力制御設定温度値を超えたときに前記電子部品の最大消費電力を低減する制御部とを有するコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ内部の発熱量を制御する技術に関し、さらに詳細にはプロセッサの発熱を抑制しつつパフォーマンスの低下を抑える技術に関する。
【背景技術】
【０００２】
パーソナル・コンピュータ（以下ＰＣという）は、筐体の内部にＣＰＵ、ビデオ・カードなどの多くのデバイスを搭載している。それぞれのデバイスは、動作を続けるうちに発熱し、温度が上昇する。主要なデバイスの中には、発熱量が多く、温度が上昇しすぎると動作に支障を起こすものや、最悪の場合焼損するものがある（以下、このようなデバイスを総称して発熱性デバイスという）。このため、ＣＰＵやビデオ・チップなどのようにプロセッサを内蔵した集積回路である発熱性デバイスは、温度センサがダイに一体化して組み込まれていることが普通である。そしてＰＣは、それらの発熱性デバイスに内蔵された温度センサで計測された温度に基づいて、当該デバイスの温度が上昇しすぎないように熱管理を行っている。温度の上昇を抑えるための熱管理は、大きく分けて２通りの制御がある。一つは、冷却ファンなどのように熱を筐体外部に排出する機構の制御である。もう一つは、発熱性デバイスのパフォーマンスを低下させ、発熱量を低減させる制御である。
【０００３】
中でも、ＰＣのＣＰＵのパフォーマンスを制御する技術として、SpeedStep（登録商標）と呼ばれる技術が知られている。SpeedStepは米国インテル社が開発した、ＣＰＵの動作時の電圧および動作周波数を切り替える技術である。現在のＰＣで一般的に使われている拡張版SpeedStepでは、数段階〜十数段階の電圧および動作周波数のセットが用意されており、ＣＰＵの負荷に応じてその電圧および動作周波数を変化させることができる（以下、拡張版SpeedStepを含めた意味でSpeedStepという）。その際に許可される最大の動作周波数を外部から指定することにより、実際のＣＰＵの動作周波数を低減することが可能である。また、動作周波数の低減に応じて電圧も低減される。ＣＰＵの電圧および動作周波数を低減すれば、ＣＰＵの消費電力および発熱量も低減される。最も低い最大動作周波数は、最も高い最大動作周波数のおよそ半分程度となる。以下、プロセッサの動作時の最大動作周波数を当該プロセッサで可能な最も高い動作周波数よりも低く設定することを、クリップという。
【０００４】
また、ＰＣの電源を制御する規格としてＡＣＰＩ（Advanced Configuration and Power Interface）が知られている。この規格は、ＯＳがＢＩＯＳと連携してＰＣを構成する各部品の消費電力を管理するための統一された方式として米国インテル社、米国マイクロソフト社および株式会社東芝が中心になって策定したものであり、電源のオン／オフ、サスペンド／レジューム、ファンの制御など、各部品の消費電力の制御にまつわる様々な機能および動作をＯＳが中心となって細かく設定・管理できるものである。２０００年に公表されたバージョン２．０から、ＡＣＰＩはSpeedStepによるクリップの動作に正式に対応している。
【０００５】
なお、ＣＰＵの電圧および動作周波数を制御する技術として、たとえば以下のような文献がある。特許文献１は米国インテル社による特許出願であり、ＣＰＵの温度または消費電力に基づいて当該ＣＰＵの電圧および動作周波数を制御する技術を開示する。特許文献２はＣＰＵに供給される電力を常時測定し、測定された電力に基づいて当該ＣＰＵの電圧および動作周波数を制御する技術を開示する。特許文献３は、ＣＰＵを一時的に高パフォーマンスの動作モードに切り替え、その後低パフォーマンスの動作モードに切り替えることにより、放電電力の小さいバッテリを用いたＰＣであっても高いパフォーマンスを得る技術を開示する。
【特許文献１】特表２００２−５２９８０６号公報
【特許文献２】特開２００４−１３３６４６号公報
【特許文献３】特開２００５−１８２５２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ノート・ブック型ＰＣ（以下ノートＰＣという）は、筐体の寸法が小さくなればなるほど筐体内部の空間が小さくなるため、冷却ファンなどによって筐体外部へ排出できる熱量がデスクトップ型ＰＣと比べて厳しく制限される。そのため、筐体の排熱能力に応じて、内部に搭載できる発熱性デバイスを選択する必要がある。排熱能力の定格値が２０Ｗである筐体に、ＣＰＵが発生する最大熱量を示す指標値であるＴＤＰ（Thermal Design Power）が２０Ｗを超えるＣＰＵを搭載することは通常できない。特にノートＰＣでは、このように筐体の排熱能力とＣＰＵのＴＤＰが接近した状態になりやすい。
【０００７】
中でもサブノート型などと呼ばれる超小型筐体を有するノートＰＣは特に排熱能力が低いため、ＴＤＰの小さい低消費電力型、または超低消費電力型と呼ばれるＣＰＵを搭載することが多い。しかし、低消費電力型ＣＰＵは通常型ＣＰＵと比べて高価であり、かつ性能が低く制限されている。たとえば、ノートＰＣ向けのＣＰＵとして代表的な製品の一つである米国インテル社のＰｅｎｔｉｕｍ（登録商標）  Ｍプロセッサでは、通常型の動作周波数が最高２．２６ＧＨｚであるのに対し、低消費電力型では最高１．６ＧＨｚ、超低消費電力型では最高１．３ＧＨｚである。つまり、筐体の寸法が小さくなればなるほど性能は低下し、逆にコストは上昇することになる。
【０００８】
しかしながら、ＣＰＵから発生する熱量は、当該ＣＰＵの負荷の大きさと継続時間に大きく依存する。そのため、ＴＤＰが３０ＷとされているＣＰＵであっても、実際には常に３０Ｗの熱量が発生しているのではない。当該ＣＰＵに最大の負荷がかかっているときには約３０Ｗの発熱が観測される一方で、低負荷時には発熱量は１Ｗ以下になる。一般的なオフィスや家庭におけるＰＣの使用状況では、ＣＰＵに高負荷がかかるのは一時的であることが多く、長時間にわたって高負荷がかかり続けることは少ない。従って、前述のSpeedStepによって発熱性デバイスをクリップして発熱を抑制することができれば、排熱能力の低い筐体に当該排熱能力を超えるＴＤＰを持った発熱性デバイスを搭載することも可能になる。その際、当該デバイスに内蔵されている温度センサを利用すれば、動作中のデバイスの温度を容易に測定できる。
【０００９】
しかし、その際に問題となる点は、発熱性デバイスをクリップしてから温度が低下するまでの間に若干のタイムラグがあるということである。従来の方法では、当該デバイスに内蔵された温度センサによって測定された温度値が特定の閾値を超えた場合に同デバイスをクリップすることによって発熱を抑制する。この際、クリップしてから温度値が下降し始めるまでに若干時間がかかる。このため、実際にノートＰＣの動作に悪影響が及ぼされる温度を超えないようにするためには、クリップするか否かを判断する閾値をそれよりも低い温度に設定する必要がある。これによって、従来の方法では同デバイスのパフォーマンスが必要以上に低下させられていた。
【００１０】
また、従来の方法では温度の測定におけるデバイス間の影響が考慮されていない。たとえばＣＰＵが高い負荷がかかっていて発熱量が高い状態が続いていても、ビデオ・チップにかかっている負荷が低く、発熱量が低いという状態もある。しかし、小型の筐体だと特にＣＰＵとビデオ・チップとが近接して配置されていることが多いため、ＣＰＵの発熱量が高ければ、当該ＣＰＵから発生した熱でビデオ・チップの温度も上昇する。しかもビデオ・チップに内蔵された温度センサで測定された温度だけでは、この温度上昇が当該ビデオ・チップ自体の動作に伴う発熱によるものであるか、それともＣＰＵなど周囲からの熱の影響によるものであるかを区別できない。このため、実際にはビデオ・チップの発熱を抑制する必要がないにもかかわらず、従来の方法ではビデオ・チップのパフォーマンスを低下させていた。
【００１１】
さらに、従来の方法ではＰＣ周辺の環境温度の影響も考慮されない。筐体の排熱能力の定格値は、２５℃〜２８℃の環境温度で動作することを前提にして設計される。たとえば環境温度がそれらの温度よりも高い場合、発熱性デバイスからの発熱量が少なくても、当該デバイスの温度がクリップするか否かを判断する閾値に到達することがある。その場合も、実際には当該デバイスの発熱を抑制する必要がないにもかかわらず、従来の方法では当該デバイスのパフォーマンスを低下させていた。
【００１２】
そこで本発明の目的は、ＰＣの発熱性デバイスの発熱を抑制しつつ、パフォーマンスの低下を小さく抑えることが可能になる、発熱性デバイスの発熱量の制御方法およびコンピュータを提供することにある。
【課題を解決するための手段】
【００１３】
本発明に係る発熱量の制御方法は、最大消費電力値の変更が可能なプロセッサを内蔵した集積回路である発熱性デバイスを搭載するコンピュータが、当該プロセッサの発熱量を制御する。この制御方法では、当該プロセッサを動作させながら、同プロセッサの消費電力値および温度値を定期的に計測し、測定された複数個の消費電力値の集合を代表する値が所定の閾値を超え、かつ温度値が所定の閾値を超えたときに当該プロセッサの最大消費電力値を低減する。ここでいう消費電力値の集合を代表する値とは、たとえばある時間の範囲において連続した複数個の消費電力値の平均値、最大値、中央値などである。このような代表値を使用して判断することにより、単に消費電力値の変動によって判断する場合と比べて、負荷の変動などに伴うノイズを排除して当該プロセッサの最大消費電力値の低減をより適切に行うことができる。
【００１４】
発熱性デバイスの発熱量の高い状態が短時間で終われば、発生した熱はそのまま冷却ファンなどによって筐体外へ排熱されるので、当該発熱性デバイスの温度上昇への影響は小さい。発熱性デバイスの温度上昇に影響するのは、発熱量の高い状態が一定時間にわたって続いた場合である。一方、プロセッサの消費電力値は、当該発熱性デバイスからの発熱量と密接な関連性があり、しかも当該デバイスの温度と発熱量との間の関係に比べてタイムラグが小さい。このため、定期的に計測された複数個の消費電力値の集合を代表する値が所定の閾値を超えたということは、当該プロセッサの発熱量の高い状態が一定時間にわたって続いたことを意味する。この状態が検出された時に当該プロセッサの最大消費電力値を低減すれば、より適切なタイミングで発熱量を低減し、当該デバイスの温度上昇を抑制することができる。さらに、消費電力値および温度値を併用することにより、当該デバイス自身の発熱を適切に検出できるので、周辺のデバイスおよび環境温度の影響を受けにくくなる。
【００１５】
この際、当該プロセッサの最大消費電力値を低減するには、同プロセッサをクリップして最大動作周波数を抑制することが有効である。また、測定された複数個の消費電力の単位時間毎の代表値から移動平均を取れば、この移動平均が連続して所定の回数だけ閾値を超えた場合に、当該プロセッサの発熱量の高い状態が一定時間にわたって続いたことをより適切に検出できる。そこで使用される消費電力の単位時間毎の代表値は、測定することが容易である電流値を所定の回数だけサンプリングした値の平均値を使用して算出することが望ましい。
【００１６】
プロセッサには、前述のように数段階〜十数段階の最大動作周波数が用意されている。そのため、当該プロセッサをクリップして最大動作周波数を１段階下げることによって温度上昇を抑制できればそのままの状態で動作を継続させればよいが、もし最大動作周波数を１段階下げても当該プロセッサの温度が上昇し続けるなら、温度が上昇しなくなるまでさらに最大動作周波数を低減することが可能である。１つのプロセッサが既に最も低い最大動作周波数に到達していて、そこからさらに最大動作周波数を低減することが不可能である場合は、別のプロセッサをクリップするとよい。たとえば、ＣＰＵの最大動作周波数をさらに低減することが不可能である場合は、ビデオ・チップをクリップして発熱を抑制することができる。
【００１７】
以上で述べたようなプロセッサの消費電力値および温度値の計測は、当該プロセッサの温度が低い場合は計測を行う単位時間を長く設定し、当該プロセッサの温度の上昇が始まって計測された温度値が所定の値を超えた場合に単位時間を短く設定することができる。もちろん、計測を行う単位時間を短く設定するときの温度値は、当該プロセッサをクリップするときの温度値よりも低い。
【００１８】
また、測定された消費電力の移動平均が連続して所定の回数だけ所定の値を下回った場合は、当該プロセッサの発熱量の大きい状態が解消されたと判断できるので、当該プロセッサのクリップ状態を全て解除し、当該プロセッサの動作時の最大動作周波数を当該プロセッサで可能な最も高い動作周波数に戻すことができる。このことも、パフォーマンスの低下を小さく抑えることにつながる。
【００１９】
以上で述べたような特徴は、コンピュータ内部の発熱量を制御する方法としてだけでなく、そのような制御方法を実行することが可能なコンピュータとしても提供される。プロセッサの動作時の最大動作周波数を制御するための閾値である周波数制御設定電力値および周波数制御設定温度値は、コンピュータ内部にサーマル・アクション・テーブルとして記憶される。この制御の対象となる発熱性デバイスは、ＣＰＵ、ビデオ・チップなどがあるが、必ずしもそれらに限定されない。また、それらの発熱性デバイスの温度の測定には、集積回路の製造時にダイに一体化して組み込まれた温度センサを利用すれば、より適切に温度を測定でき、しかも当該デバイスの外から温度センサを付加する必要がない。さらに、当該コンピュータには冷却ファンが搭載されているが、冷却ファンの回転速度とプロセッサの最大動作周波数は各々別個に制御することができる。
【発明の効果】
【００２０】
本発明により、ＰＣの発熱性デバイスの発熱を抑制しつつ、パフォーマンスの低下を小さく抑えることが可能になる、発熱性デバイスの発熱量の制御方法およびコンピュータを提供することができた。
【発明を実施するための最良の形態】
【００２１】
図１は、本発明の実施の形態にかかるノートＰＣ１０の外形図で、図２はそのシステム構成を示す概略ブロック図である。ノートＰＣ１０は、外形が表面にキーボードを搭載し内部に多くのデバイスを収納した筐体１３と、液晶ディスプレイ（ＬＣＤ）１１とで構成されている。筐体１３の内部には、図２に示す各種のデバイスが搭載されている。ＣＰＵ１５は、ノートＰＣ１０の中枢機能を担う演算処理装置で、ＯＳ、ＢＩＯＳ、デバイス・ドライバ、あるいはアプリケーション・プログラムなどを実行する。ＣＰＵ１５は、システム・バスとしてのＦＳＢ(Front Side Bus)１７、ＣＰＵ１５と周辺機器との間の通信を行うためのＰＣＩ(Peripheral Component Interconnect)バス１９、ＩＳＡバスに代わるインタフェースであるＬＰＣ(Low Pin Count)バス２０という３段階のバスを介して各デバイスに接続されて信号の送受を行っている。また、ＣＰＵ１５を監視する温度センサ５３ａが、埋め込み型としてＣＰＵ１５のダイの中に形成されている。温度センサ５３ａから出力される信号は、後述のエンベデッド・コントローラ４７のＡ／Ｄ入力に接続されている。
【００２２】
ＦＳＢ１７とＰＣＩバス１９は、メモリ/ＰＣＩチップと呼ばれるＣＰＵブリッジ２１によって連絡されている。ＣＰＵブリッジ２１は、メイン・メモリ２３へのアクセス動作を制御するためのメモリ・コントローラ機能や、ＦＳＢ１７とＰＣＩバス１９との間のデータ転送速度の差を吸収するためのデータ・バッファ機能などを含んだ構成となっている。メイン・メモリ２３は、ＣＰＵ１５が実行するプログラムの読み込み領域、処理データを書き込む作業領域として利用される書き込み可能メモリである。ビデオ・チップ２５は、ＣＰＵ１５からの描画命令を受けて描画すべきイメージを生成しＶＲＡＭ（図示せず）に書き込むとともに、ＶＲＡＭから読み出してディスプレイ１１に描画データとして送る。また、ＣＰＵ１５と同様に、ビデオ・チップ２５を監視する温度センサ５３ｂが、埋め込み型としてビデオ・チップ２５のダイの中に形成されている。温度センサ５３ｂから出力される信号も、やはり後述のエンベデッド・コントローラ４７のＡ／Ｄ入力に接続されている。
【００２３】
ＰＣＩバス１９には、Ｉ／Ｏブリッジ２７、ＣａｒｄＢｕｓコントローラ２９、ｍｉｎｉＰＣＩスロット３５、Ｅｔｈｅｒｎｅｔ（登録商標）コントローラ３９がそれぞれ接続されている。ＣａｒｄＢｕｓコントローラ２９は、ＰＣＩバス１９とＰＣカード３３とのデータ転送を制御するコントローラである。ＣａｒｄＢｕｓコントローラ２９にはＣａｒｄＢｕｓスロット３１が接続され、ＣａｒｄＢｕｓスロット３１には、ＰＣカード３３が装着される。ｍｉｎｉＰＣＩスロット３５には、例えばワイヤレスＬＡＮモジュールが内蔵されたｍｉｎｉＰＣＩカード３７が装着される。Ｅｔｈｅｒｎｅｔコントローラ３９は、ノートＰＣ１０をＬＡＮに接続するためのコントローラである。
【００２４】
Ｉ／Ｏブリッジ２７は、ＰＣＩバス１９とＬＰＣバス２０とのブリッジ機能を備えている。また、Ｉ／Ｏブリッジ２７は、ＩＤＥ(Integrated Device Electronics)インタフェース機能を備えており、ハード・ディスク・ドライブ(ＨＤＤ)４３および光学ドライブ４５（ＣＤドライブ，ＤＶＤドライブ等）が接続される。また、Ｉ／Ｏブリッジ２７にはＵＳＢコネクタ４１が接続されている。ＬＰＣバス２０には、エンベデッド・コントローラ４７、ＢＩＯＳフラッシュＲＯＭ５７、Ｉ／Ｏコントローラ５９が接続されている。Ｉ／Ｏコントローラ５９にはＩ／Ｏコネクタ６０が接続されている。
【００２５】
エンベデッド・コントローラ４７は、ＣＰＵ、ＲＯＭ、ＲＡＭなどで構成されたマイクロ・コンピュータであり、さらに複数チャネルのＡ／Ｄ入力端子、Ｄ／Ａ出力端子、およびデジタル入出力端子を備えている。エンベデッド・コントローラ４７には、それらの入出力端子を介して、冷却ファン４９、温度センサ５３ａ〜５３ｃおよび電源装置５５が接続されている。温度センサ５３は、各デバイスの温度を監視するために主要なデバイスごとに設けられ、外付け型として監視対象となるデバイス近辺に配置されるか、または埋め込み型として当該デバイスのダイの中に形成される。ＣＰＵ１５を監視する温度センサ５３ａ、およびビデオ・チップ２５を監視する温度センサ５３ｂは、前述のように埋め込み型である。それら以外のデバイスおよび筐体内部を監視する温度センサ５３ｃは、温度の監視の対象となる各々のデバイスの近辺に配置されている。
【００２６】
エンベデッド・コントローラ４７は、温度センサ５３ａ〜５３ｃが検出した温度値に基づいて冷却ファン４９および電源装置５５を各々別個に制御することが可能である。冷却ファン４９は、エンベデッド・コントローラ４７から送られた制御信号に基づいてオン／オフおよび回転数を制御され、筐体１３に外気を取り入れ内部の熱を排熱することでノートＰＣ１０を強制空冷で冷却する。エンベデッド・コントローラ４７による冷却ファン４９の制御は、後で述べるＣＰＵ１５およびビデオ・チップ２５の動作周波数および電圧の制御とは全く別個に行われる。また電源装置５５は、ＡＣアダプタ（図示せず）、電池（図示せず）、ＤＣ−ＤＣコンバータ、およびレギュレータを含む。ＤＣ−ＤＣコンバータ、およびレギュレータについては後述する。
【００２７】
図３は、本発明の実施の形態にかかるノートＰＣ１０の中で、発熱量の制御の対象となる発熱性デバイスであるＣＰＵ１５およびビデオ・チップ２５の動作周波数および電圧の切り替えを実現するデバイスの構成について示すブロック図である。ＤＣ−ＤＣコンバータ６１は、ＡＣアダプタもしくは電池（いずれも図示せず）から供給された電力を、所定の電圧の直流に変換してノートＰＣ１０内の各デバイスに供給する。ＤＣ−ＤＣコンバータ６１からＣＰＵ１５に供給される電力は、レギュレータ６３ａによってパルス幅変調が行われ、動作周波数および電圧が決定されてＣＰＵ１５に供給される。同様に、ＤＣ−ＤＣコンバータ６１からビデオ・チップ２５に供給される電力は、レギュレータ６３ｂによってパルス幅変調が行われ、動作周波数および電圧が決定されてビデオ・チップ２５に供給される。ちなみに、パルス幅変調によって動作周波数および電圧を決定する技術は、たとえば特開２００３−８８１１０号公報などによって既に公知である。
【００２８】
エンベデッド・コントローラ４７は、レギュレータ６３ａが決定するＣＰＵ１５の動作周波数および電圧に対して最大動作周波数を指定する制御信号を送ることによって、ＣＰＵ１５をクリップすることが可能である。またエンベデッド・コントローラ４７は、レギュレータ６３ｂが決定するビデオ・チップ２５の動作周波数および電圧に対して最大動作周波数を指定する制御信号を送ることによって、ビデオ・チップ２５をクリップすることも可能である。
【００２９】
そして、レギュレータ６３ａとＣＰＵ１５との間、およびレギュレータ６３ｂとのビデオ・チップ２５との間には各々、センス抵抗６５ａおよび６５ｂが接続されている。各々のセンス抵抗６５ａおよび６５ｂの両端の電圧は、エンベデッド・コントローラ４７のＡ／Ｄ入力端子に入力され、これによってエンベデッド・コントローラ４７はＣＰＵ１５およびビデオ・チップ２５へ供給される電流値を各々独立して測定可能である。電圧はレギュレータ６３ａおよび６３ｂによって決定された一定の値であることから、電流値を測定できればＣＰＵ１５およびビデオ・チップ２５で消費されている電力をリアルタイムに把握することが可能である。さらに、前述したＣＰＵ１５を監視する温度センサ５３ａ、およびビデオ・チップ２５を監視する温度センサ５３ｂから出力される電圧も、エンベデッド・コントローラ４７のＡ／Ｄ入力端子に入力され、これによってエンベデッド・コントローラ４７はＣＰＵ１５およびビデオ・チップ２５の温度を各々独立して測定可能である。
【００３０】
以上で示すノートＰＣ１０を構成する各々のデバイス、および当該ノートＰＣで動作するＯＳ（オペレーティング・システム）およびＢＩＯＳ（Basic Input/Output System）はＡＣＰＩおよびSpeedStepに対応している。ＯＳはＨＤＤ４３から読み出され、またＢＩＯＳはＢＩＯＳフラッシュＲＯＭ５７から読み出され、各々ＣＰＵ１５で動作する。ＢＩＯＳには、後述のプログラムにおいて使用される閾値を記憶するサーマル・アクション・テーブルが含まれる。一方エンベデッド・コントローラ４７では、ＣＰＵ１５およびビデオ・チップ２５の各々について温度と消費電力を測定するファームウェアが動作する。エンベデッド・コントローラ４７が測定したＣＰＵ１５およびビデオ・チップ２５の温度と消費電力について、後述するような計算および判定がＢＩＯＳで行われ、その判定結果に基づいてＢＩＯＳはＯＳに対してＣＰＵ１５およびビデオ・チップ２５をクリップするよう要求する。ＯＳは、ＢＩＯＳからの要求に基づいて、ＡＣＰＩの標準的なメソッドに基づいてエンベデッド・コントローラ４７を介してＣＰＵ１５およびビデオ・チップ２５をクリップする。
【００３１】
即ち、ＡＣＰＩおよびSpeedStepに対応したハードウェア、ＯＳおよびＢＩＯＳを備えたＰＣであれば、ＢＩＯＳおよびエンベデッド・コントローラ４７のファームウェアを一部変更し、かつＣＰＵ１５およびビデオ・チップ２５の各々について図３で述べたセンス抵抗６５のような消費電力を測定する手段を付加するだけで、低コストで本発明を実施することが可能である。なお、ＯＳとＢＩＯＳとエンベデッド・コントローラとでの動作の分担は当業者が任意に選択できる事項であり、上で述べた実施の形態は一例に過ぎない。たとえば、エンベデッド・コントローラのみで測定、計算および判定を行うような実施の形態もありうる。
【００３２】
ちなみに、図２および３は本実施の形態を説明するために、主要なハードウェアの構成および接続関係を簡素化して記載したに過ぎないものである。ノートＰＣ１０を構成するためには、これら以外にも多くのデバイスが使われるが、それらは当業者には周知であるので詳しく言及しない。もちろん、図２および３で記載した複数のブロックを１個の集積回路としたり、逆に１個のブロックを複数の集積回路に分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
【００３３】
図４は、ＢＩＯＳで実行される発熱量の制御に関わるプログラムをフローチャートで書き表したものである。このプログラムはノートＰＣ１０が動作を開始するとすぐに起動され（ブロック１０１）、４〜５秒前後の周期で実行される。エンベデッド・コントローラ４７は、ＣＰＵ１５の温度をＣＰＵ１５に内蔵された温度センサ５３ａによって測定する（ブロック１０３）。さらにエンベデッド・コントローラ４７は、センス抵抗６５ａの両端の電圧を通じて、ＣＰＵ１５の消費電力を測定する（ブロック１０５）。ここで現在のＣＰＵ１５の温度が閾値Ｔ１を上回っているかどうかを判断する（ブロック１０７）。もしＣＰＵ１５の温度が閾値Ｔ１を上回っていれば、図５で述べるThermal Caution Modeのプログラムを起動して（ブロック１０９）終了する（ブロック１１１）。ブロック１０５でＣＰＵ１５の温度が閾値Ｔ１を上回っていなければ、以後同じ周期で当該プログラムが実行され続ける。
【００３４】
図５は、ＢＩＯＳで実行される発熱量の制御に関わるThermal Caution Modeのプログラムをフローチャートで書き表したものである。このプログラムは図４のプログラムと比べて早い１秒前後の周期で実行される（ブロック２０１）。ＣＰＵ１５の温度（ブロック２０３）および消費電力の測定（ブロック２０５）については図４のプログラムと同じである。ただし、測定された消費電力からｘ秒移動平均が算出される。そこから、まず消費電力のｘ秒移動平均がｙ１回連続でＺ１を下回っているかどうかを判断する（ブロック２０７）。Ｚ１は、低い消費電力であるかどうかを判断するための閾値である。ここで判断されるのは、ＣＰＵ１５が一定時間以上消費電力の低い状態が続いているかどうかである。一定時間以上消費電力の低い状態が続けば、発熱量は小さく、温度が上昇することはないので、ＣＰＵ１５およびビデオ・チップ２５の後で述べるクリップ・モードを解除し（ブロック２０９）、Thermal Caution Modeのプログラムを終了し（ブロック２１０）、図４のプログラムに戻る（ブロック２４９）。
【００３５】
ここで、ＣＰＵ１５がクリップされている状態、つまり最大動作周波数が当該ＣＰＵが動作可能な最も高い周波数より低い値に設定されている状態をクリップ・モードという。クリップ・モードを解除するとは、最大動作周波数を当該ＣＰＵが動作可能な最も高い周波数に戻すことを意味する。そして、当該ＣＰＵで数段階〜十数段階の最大動作周波数が用意されている中で、最大動作周波数を現在の値から１段階下の値に設定することを１段階クリップ増加するといい、最大動作周波数を現在の値から１段階上の値に設定することを１段階クリップ解除するという。
【００３６】
ブロック２０７でＣＰＵ１５が一定時間以上消費電力の低い状態が続いていないと判断された場合、ＣＰＵ１５が現在クリップ・モードであるかどうかを判断する（ブロック２１１）。現在クリップ・モードでなければ、ＣＰＵ１５をクリップ・モードにする必要があるかどうかを判断する。判断する条件は、当該ＣＰＵの温度が閾値Ｔ２を上回り（ブロック２１３）、かつ消費電力のｘ秒移動平均がｙ２回連続でＺ２を上回っている（ブロック２１５）ことである。ここでＴ２＞Ｔ１、Ｚ２＞Ｚ１である。温度および消費電力の条件が両方満たされた場合は、消費電力が高く発熱量が大きい状態が一定時間以上続いて、ＣＰＵ１５の温度が上昇する条件が満たされたことになるので、ＣＰＵ１５をクリップ・モードにし（ブロック２１７）、１段階クリップ増加する（ブロック２２３）。その際、現在の温度を変数Ｔ３として記憶し（ブロック２２５）、同じ周期で当該プログラムを実行し続ける。温度および消費電力の条件のうち片方、もしくは両方満たされていない場合は、ＣＰＵ１５をクリップ・モードにする必要がないと判断し、同じ周期で当該プログラムを実行し続ける。
【００３７】
ブロック２１１でＣＰＵ１５が現在クリップ・モードであると判断された場合、前周期の当該ＣＰＵの温度Ｔ３と比べて、現在の当該ＣＰＵの温度が上昇しているか（ブロック２２７）、または下降しているか（ブロック２２９）を判断する。温度が下降していれば、当該ＣＰＵまたはビデオ・チップ２５を１段階クリップ解除し（ブロック２３１）、現在の温度を変数Ｔ３として記憶し（ブロック２２５）、同じ周期で当該プログラムを実行し続ける。温度が上昇していれば、まず当該ＣＰＵで１段階クリップ増加することが可能であるかどうかを判断し（ブロック２１９）、可能であれば１段階クリップ増加し（ブロック２２３）、現在の温度を変数Ｔ３として記憶し（ブロック２２５）、同じ周期で当該プログラムを実行し続ける。なお、変数Ｔ３として記憶された現在の温度は、次の周期で使用される。この処理により、ＣＰＵ１５で１段階クリップ増加しただけでは当該ＣＰＵの温度を下降させるには不十分である場合に、当該ＣＰＵの温度が下降するまでクリップ増加を繰り返すことができる。
【００３８】
ブロック２１９で、ＣＰＵ１５の現在の最大動作周波数が当該ＣＰＵで可能な値の中で最低の値になっていて、これ以上クリップ増加することが不可能であると判断された場合、ビデオ・チップ２５に対して１段階クリップ増加することが可能であるかどうかを判断する（ブロック２４１）。当該ビデオ・チップで１段階クリップ増加することが可能と判断されれば１段階クリップ増加し（ブロック２４３）、現在の温度を変数Ｔ３として記憶し（ブロック２４５）、同じ周期で当該プログラムを実行し続ける。なお、以上のフローチャートの中で設定されたパラメータ、たとえば温度および消費電力を測定する間隔、移動平均の秒数、時間および消費電力の閾値などは、当業者が実験もしくは経験に基づいて任意の値を設定することが可能である。
【００３９】
前述のように、ＣＰＵ１５とビデオ・チップ２５とでは別個に消費電力の測定が可能であるため、温度が上昇する条件が満たされているかどうかを当該ＣＰＵと当該ビデオ・チップとで各々別個に判断でき、クリップ増加および解除の処理も各々別個に行える。ただ実際には、ＣＰＵ１５の消費電力が高くビデオ・チップ２５の消費電力が低い状態は多く見られるのに対して、ビデオ・チップ２５の消費電力が高くＣＰＵ１５の消費電力が低い状態が見られることは少ない。そこで本実施の形態では、ＣＰＵ１５の温度が上昇したらまずＣＰＵ１５を優先してクリップ・モードにし、ＣＰＵ１５のクリップだけで温度上昇を抑制できない場合にビデオ・チップ２５をクリップ・モードにする。ブロック２０９でＣＰＵ１５のクリップ・モードが解除されるときには、同時にビデオ・チップ２５のクリップ・モードも解除される。
【００４０】
ブロック２４１で、ビデオ・チップ２５についても現在の最大動作周波数が当該ビデオ・チップで可能な値の中で最低の値になっていて、これ以上クリップ増加することが不可能であるにもかかわらずＣＰＵ１５の温度の上昇が止まらないと判断された場合、当該デバイスもしくは冷却ファン４９などに何らかの異常が発生した可能性があるので、異常処理を行って（ブロック２４７）プログラムを終了する（ブロック２４９）。異常処理は、ノートＰＣ１０のディスプレイ１１に警報を表示し、公知の技術であるスロットリングによってＣＰＵの最大動作周波数を最大値の３分の１程度に抑制したり、当該ノートＰＣで現在動作しているＯＳおよびアプリケーション・ソフトのデータを保存し、その後で当該ノートＰＣの電源をシャット・ダウンしたりするなどのような処理である。
【００４１】
図６は、最大動作周波数１．６０ＧＨｚのＣＰＵを搭載したノートＰＣで、最大動作周波数を１．６０ＧＨｚに固定し、発熱量について制御を行わずにベンチマークを実行したときの、ＣＰＵおよびビデオ・チップの温度および消費電力の変化を示すグラフである。このベンチマークは、一般的なオフィスでのＰＣの使用を想定した処理をＰＣで実行し、ＰＣのパフォーマンスを点数化することができるプログラムである。
【００４２】
図６のグラフによると、ＣＰＵの温度３０１およびビデオ・チップの温度３０３がいずれも摂氏６２度前後まで上昇し、これらの温度はほぼ同じタイミングで上昇および下降している。しかし、その一方でＣＰＵの消費電力３０５の値は大きく、かつ激しく変動しているのに対して、ビデオ・チップの消費電力３０７の値は小さく、かつ少ししか変動していないことがわかる。つまり、ビデオ・チップの温度上昇は主にＣＰＵの発熱の影響によるものであり、ビデオ・チップ自体の発熱は小さいということがわかる。また、ＣＰＵの消費電力が高い状態がある程度以上続いているタイミング３１１ａ〜３１１ｄとＣＰＵの温度が上昇するタイミング３１３ａ〜３１３ｄとを比較すると、３１１ａの状態から少し遅れて３１３ａの状態になっている。３１１ｂ〜３１１ｄと３１３ｂ〜３１３ｄとの比較についても同様である。一方、ＣＰＵの消費電力が高い状態が離散的にしか発生しない状態になると、それから少し遅れてＣＰＵの温度が下降している。以後ここでは、ＣＰＵおよびビデオ・チップの温度を摂氏５５度前後に抑えることを目標とする。
【００４３】
図７および８は、図６と同じノートＰＣで、従来技術によってＣＰＵのクリップを行った結果を示す図である。図７は、従来技術によってＣＰＵをクリップする際に使用したプログラムをフローチャートで書き表したものである。図５で書き表した本実施の形態でThermal Caution Modeにある際にＢＩＯＳで実行されるプログラムと比べて、次のような相違点がある。従来技術ではＣＰＵおよびビデオ・チップの消費電力の測定がないため、消費電力を利用して判断することも当然ない。また、ＣＰＵのクリップ・モードには最大動作周波数の最高値と最低値の２段階しか無い。さらに、ビデオ・チップをクリップ・モードにすることもない。スタートしたらＣＰＵの温度を測定し（ブロック２０１’〜２０３’）、測定された温度が温度Ｔ１を下回れば（ブロック２０７’）クリップ・モードを解除して（ブロック２０９’）Thermal Caution Modeを終了し（ブロック２１０’，２４９’）、温度Ｔ２を超えたら（ブロック２１３’）ＣＰＵをクリップ・モード（最大動作周波数の最低値）とする（ブロック２１７’）。つまり、ここでは消費電力を利用せず、温度だけによってＣＰＵをクリップする動作について判断している。ここではＴ２＝摂氏５５度とする。なお、Thermal Caution Modeではないときに動作するプログラムは、図４と同一である。
【００４４】
図８は、図６と同じノートＰＣに図７に示す従来技術による発熱量の制御を適用し、図６と同じベンチマークを実行した際のＣＰＵおよびビデオ・チップの温度および消費電力の変化、およびＣＰＵの最大動作周波数の変化を示すグラフである。図８（Ａ）に示した温度および消費電力の変化によると、ＣＰＵの温度４０１およびビデオ・チップの温度４０３を摂氏５５度前後に抑える目標は達成されている。また、ＣＰＵの消費電力４０５は、図６に示した消費電力３０５と比べて、変動が抑えられている。ちなみにビデオ・チップの消費電力４０７の変動が少ない点は、図６に示した消費電力３０７と同様である。しかし、図８（Ｂ）に示したＣＰＵの最大動作周波数の変化４０９によると、最大動作周波数の最高値である１．６０ＧＨｚで動作している時間は少なく、その下の最大動作周波数である１．３３ＧＨｚ以下で動作している時間が多い。
【００４５】
図９は、図６と同じノートＰＣに図５に示す本実施の形態によるＣＰＵの発熱量の制御を適用し、図６と同じベンチマークを実行した際のＣＰＵおよびビデオ・チップの温度および消費電力の変化、およびＣＰＵの最大動作周波数の変化を示すグラフである。Thermal Caution Modeにおいて、ＣＰＵおよびビデオ・チップの温度および消費電力を１秒間隔で測定する。温度が摂氏５５度を超え、かつＣＰＵの消費電力の２秒移動平均が平均３回連続で８Ｗを超えたとき点で当該ＣＰＵはクリッブ・モードでの動作を開始する。つまり図５においてＴ２＝摂氏５５度、ｘ＝２秒、ｙ２＝３回（６秒）、Ｚ２＝８Ｗとなる。図９（Ａ）に示した温度および消費電力の変化によると、ＣＰＵの温度５０１およびビデオ・チップの温度５０３を摂氏５５度前後に抑える目標はほぼ達成されている。また、ＣＰＵの消費電力５０５およびビデオ・チップの消費電力５０７についても、図８（Ａ）に示した傾向と類似している。しかし、図９（Ｂ）に示したＣＰＵの最大動作周波数の変化５０９によると、最大動作周波数の最高値である１．６０ＧＨｚで動作している時間が図８（Ｂ）に示した従来技術の場合と比べて長くなっている。一方で、最大動作周波数が１．３３ＧＨｚ以下で動作している時間は図８（Ｂ）と比べて短くなっている。
【００４６】
図１０は、最大動作周波数について制御を行わない場合（図６）と、従来技術の温度のみによって最大動作周波数について制御を行う場合（図８）と、本実施の形態の場合（図９）との各々について、前述のベンチマークの実行によって得られたパフォーマンスの比較を示す表である。同図では、２次元描画（２Ｄ）、３次元描画（３Ｄ）、およびウェブ・ブラウジング（Ｗｅｂ）の各々に対するスコア、それらを総合したスコア（総合）、各々の最大動作周波数でＣＰＵが動作した時間（％）、およびＣＰＵの温度について示されている。もちろん、実行速度が早いほど高いスコアになる。図１０で（Ａ）として示した最大動作周波数について制御を行わない場合（図６）は、ＣＰＵの最大動作周波数は最高値の１．６０ＧＨｚに固定されているので、当然のことではあるがスコアは高い。しかし、前述の通りＣＰＵおよびビデオ・チップの温度の上昇は抑制されない。
【００４７】
一方、図１０で（Ｂ）として示した従来技術の温度のみによってＣＰＵの最大動作周波数の制御を行った場合（図８）と、（Ｃ）として示した本実施の形態によるＣＰＵの最大動作周波数の制御を行った場合（図９）とを比較すると、前述の通りＣＰＵおよびビデオ・チップの温度を当該筐体に搭載可能な温度の目安となる摂氏５５度前後に抑える目標はどちらも達成されている。しかし、温度のみによってＣＰＵをクリップする動作についての判断を行う従来技術と比べて、温度および消費電力によってＣＰＵをクリップする動作についての判断を行う本実施の形態は、明らかにスコアが向上したことが確認できる。特に２次元描画処理能力を表す２Ｄで５ポイント、３次元描画処理能力を表す３Ｄで７ポイント、それぞれスコアが向上している。また、ＣＰＵが最大動作周波数の最高値である１．６０ＧＨｚで動作した時間が５％長くなったことが確認できる。以上のことから、本発明は従来技術と比べて、明らかに発熱性デバイスのパフォーマンスの低下を抑制する効果が優れていることがわかる。
【００４８】
以上で述べたように、本発明はＰＣ内部の発熱性デバイスについてパフォーマンスの低下を抑制しつつ温度の上昇を抑制する効果が優れているので、特に排熱能力の小さい筐体にＴＤＰの高いＣＰＵおよびビデオ・チップを搭載し、低価格でかつ高パフォーマンスなノートＰＣを提供することに対して有用である。もちろんノートＰＣだけでなく、省スペース型筐体を持つデスクトップ型ＰＣ、タブレット型ＰＣ、ＰＤＡなどに対しても本発明は有用である。また、ＰＣを構成する各種デバイスの改良に伴い、将来ＣＰＵおよびビデオ・チップの他にも発熱量を制御する必要のあるデバイスが出現することが予想されるが、そのようなデバイスに対しても本発明の制御方法が適用可能であることは言うまでもない。
【００４９】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることは言うまでもないことである。
【産業上の利用可能性】
【００５０】
プロセッサを内蔵した発熱性デバイスを搭載した電子機器に対して利用可能である。
【図面の簡単な説明】
【００５１】
【図１】ノートＰＣの外形図である。
【図２】ノートＰＣの概略ブロック図である。
【図３】ＣＰＵおよびビデオ・チップの動作周波数および電圧の切り替えを実現するデバイスの構成について示すブロック図である。
【図４】発熱量の制御に関わるプログラムのフローチャートである。
【図５】発熱量の制御に関わる「Thermal Caution Mode」のプログラムのフローチャートである。
【図６】発熱量の制御を行わないときの、ＣＰＵおよびビデオ・チップの温度および消費電力の変化を示すグラフである。
【図７】従来技術の発熱量の制御に関わるプログラムのフローチャートである。
【図８】従来技術の発熱量の制御を行ったときの、ＣＰＵおよびビデオ・チップの温度および消費電力の変化を示すグラフである。
【図９】本発明の発熱量の制御を行ったときの、ＣＰＵおよびビデオ・チップの温度および消費電力の変化を示すグラフである。
【図１０】以上に示した各々の場合についてパフォーマンスの比較を示す表である。
【符号の説明】
【００５２】
１０  ノートＰＣ
１３  筐体
１５  ＣＰＵ
２５  ビデオ・チップ
４３  ハード・ディスク・ドライブ(ＨＤＤ)
４７  エンベデッド・コントローラ
５３ａ，５３ｂ  温度センサ
５７  ＢＩＯＳフラッシュＲＯＭ
６１  ＤＣ−ＤＣコンバータ
６３ａ，６３ｂ  レギュレータ
６５ａ，６５ｂ  センス抵抗
【図１】
2007233782.tif 000003
【図２】
2007233782.tif 000004
【図３】
2007233782.tif 000005
【図４】
2007233782.tif 000006
【図５】
2007233782.tif 000007
【図６】
2007233782.tif 000008
【図７】
2007233782.tif 000009
【図８】
2007233782.tif 000010
【図９】
2007233782.tif 000011
【図１０】
2007233782.tif 000012