JP2007128556A - Cpuの動作特性に応じてコンピュータの動作を制御する方法と装置 - Google Patents

Cpuの動作特性に応じてコンピュータの動作を制御する方法と装置 Download PDF

Info

Publication number
JP2007128556A
JP2007128556A JP2007027444A JP2007027444A JP2007128556A JP 2007128556 A JP2007128556 A JP 2007128556A JP 2007027444 A JP2007027444 A JP 2007027444A JP 2007027444 A JP2007027444 A JP 2007027444A JP 2007128556 A JP2007128556 A JP 2007128556A
Authority
JP
Japan
Prior art keywords
cpu
processor
bound state
interrupt
clock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007027444A
Other languages
English (en)
Inventor
Lavaughn F Watts
エフ.ワッツ ラボーフン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JP2007128556A publication Critical patent/JP2007128556A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

【課題】ポータブルコンピュータのCPUの動的動作特性を検出して活動レベルを予測し、電力節約や温度管理を動的に行う方法と装置を提供する。
【解決手段】CPUが第1クロック速度で動作中に(134)少なくとも1つの動的CPU動作特性を検出する(140)方法と回路を含む。この装置(130)は、少なくとも1つの検出されたCPUの動的動作特性が前記少なくとも1つの動的動作特性に関連する所定の設定点に対して所定の関係を確立する(140)ことにより、設定点割り込み条件が存在するかどうかを決定する(140)。設定点割り込み条件が存在する場合は、第1クロック速度に対してクロック速度を制御する(144)。設定点割り込み条件が存在しない場合は、割り込み条件を決定してクロック速度を制御する上記ステップを繰り返す。またこの方法と装置(130)はCPUが計算指向状態にあるかどうかを決定する(142)。
【選択図】図5

Description

この発明は実時間のコンピュータ中央処理装置(CPU)制御に関し、より詳しくは、中央処理装置(CPU)内の実時間活動レベルから生じるCPU温度や温度の変化や電力消費などの動的動作特性を検出し、これに基づいてCPUのクロック速度を調整する装置と方法に関する。
パーソナルコンピュータ産業の初期の発展段階では、移動可能なポータブルコンピュータは非常に人気があった。初期のポータブルコンピュータは大きな電源を用いており、実際は小型のデスクトップパーソナルコンピュータであった。しかし現在のポータブルコンピュータはデスクトップパーソナルコンピュータにくらべて小型で軽く、しかもユーザはデスクトップコンピュータと同じソフトウエアを用いることができる。
第1世代の「ポータブル」コンピュータは交流電力だけで動作した。より新しい次世代のパーソナルコンピュータは電池を使っているので真の意味でポータブルである。このように可搬性が向上したのは、ディスプレイ技術や、ディスクの記憶容量や、要素の重量および容積技術が発達したためである。
このような発達によってポータブルコンピュータの大きさは減少したが、動作上の限界はまだ存在する。たとえば、現在のポータブルコンピュータが用いるソフトウエアはデスクトップパーソナルコンピュータが用いるものと一般に同じである。したがって、電池で動作するポータブルコンピュータに特有の機能的限界や考慮すべき点があるにもかかわらず、ポータブルコンピュータはデスクトップコンピュータの機能をすべて備えなければならない。ポータブルコンピュータは一方ではデスクトップコンピュータと同じデータ流れ速度を持つが、他方では電力供給が短時間に限られ、またデスクトップコンピュータにくらべて熱放散能力が限られている。現在のポータブルコンピュータは用いるソフトウエアの異なるプラットフォームに対して特別の対応策を持たない。オペレーティングシステム(たとえばMS−DOS)や、基本入出力システム(BIOS)ソフトウエアや、第三者の応用ソフトウエアは、ポータブルコンピュータでもデスクトップコンピュータでも実質的に同じである。これは特に、CPUの異なる動的動作特性をソフトウエアシステムが処理する方法において当てはまる。
ソフトウエア技術者やプログラマがより高機能のソフトウエアシステムを開発するに従って、デスクトップコンピュータはシステム性能の実質的にすべての分野において性能を高めることができる。演算能力を高めたCPUの採用から始まってメモリ容量の増加やディスクドライブの高速高性能化まで、デスクトップコンピュータの動作能力に対する要求は急速に高まっている。ポータブルコンピュータのメーカーは、このような要求に何とかついてゆくしかない。
しかし現在まで、ポータブルコンピュータは交流電力でだけか、または大きくて重い電池で動作している。デスクトップコンピュータや新しいソフトウエアの性能要求に追従するため、ポータブルコンピュータの中には高価な要素を用いて必要電力を削減しているものがある。それでも、コンピュータ用の重い電池は長時間にわたって電力を供給することができない。つまり従来のポータブルコンピュータのユーザは、第三者の応用ソフトウエアシステムが期待する性能を出すためには、電源配線から得た交流電流を用いるか、電池で短時間だけ動作するかしかない。
電力を節約する、すなわち電池で長く動作できるポータブルコンピュータを設計するため、ユーザがコンピュータを使用していない間はポータブルコンピュータの電力消費を減らすようにしたポータブルコンピュータ電源方式もある。またある設計では、キーボードを用いていないときはコンピュータのディスプレイを消すことにより電力を節約する。このような方式はたしかに電力を節約するが、コンピュータの動作を妨げるので実用的でないか、またはコンピュータの中で最大の電力消費が起こったときに電力を節約することができない。これまでのポータブルコンピュータの電力節約方式は、意味のある仕事にユーザがコンピュータを使っているときは電力を節約することができない。
しかしポータブルコンピュータの電力供給方式の問題はこれだけではない。現在のポータブルコンピュータシステムには、CPUの動的動作特性に応えるような知的なシステムがない。CPUの動的動作特性は、CPU温度や、温度の変化や、電力消費などの広範囲の特性を含む。電池の電力の節約や最適な使用を管理する方法や装置は存在しない。CPUが複雑な命令を計算するときに、高速で動作する高密度の電子回路の温度を適切に監視して管理する方法や装置は存在しない。さらに、CPUを入出力回路から実際上切り離したときに、CPUの動的動作特性から望ましくない影響が起こらないようにする方法も装置も存在しない。起こり得る望ましくない状態または影響とは、CPUが過度に電力を消費することや、入出力機能を含まない大量の命令をCPUが実行するときに過大な温度に達することなどである。
CPU内の活動レベルを予測し、この予測を用いてCPUの動的動作特性を自動的に管理する装置と方法が必要である。
ユーザが自動的な活動レベルの予測を修正し、この修正した予測を用いてCPUの動的動作特性を自動的に管理することができる、フィードバックの方法と装置が必要である。
CPUの動的動作特性の管理に応じてクロック速度を実時間で減少させたり回復させたりしてCPUを休止の期間から完全な処理速度に戻し、しかもソフトウエアプログラムやユーザには透明であるような装置と方法がさらに必要である。
さらに、動的動作特性に基づいて、CPUの活動レベルに従ってCPUを休止させてよいまたは休止させなければならないかどうかを決定し、この決定に従ってハードウエアセレクタを起動するような装置と方法が必要である。CPUを休止させすなわち休眠させてよい場合は、ハードウエアセレクタは休眠クロックレベルの振動を与える。CPUを活動させなければならない場合は、ハードウエアセレクタは高速クロックレベルの振動を与える。
この発明は、CPUの活動状態だけでなく、オペレータと動作中の応用ソフトウエアプログラムの活動を調べる。この発明はこの活動を実時間でサンプリングし、CPUの性能レベルを調整して、電力節約や、コンピュータ電力および温度条件や、また他の任意の適当な所望の動的動作特性を管理する。これらの調整はCPUサイクル内で行うので、ユーザは性能や他のソフトウエアプログラムの動作が変わったことには気が付かない。
この発明の好ましい実施態様は検出したCPUの動的動作特性を制御する方法と装置を与えるもので、少なくとも1台のCPUの動的動作特性を検出するステップを含む。この方法と装置は、動作特性を検出するときにCPUのクロック速度を検出する。少なくとも1つの動的動作特性が前記少なくとも1つの動的動作特性に関連する所定の設定点に対して所定の関係を確立することにより設定点割り込み条件が存在することを決定することが、この発明の方法の次のステップである。設定点割り込み条件が存在する場合は、この方法と装置はCPUのクロック速度を制御して所定の設定点を調整するか、または別の方法でCPUの動的動作特性を管理する。他方、設定点割り込み条件が存在しない場合は、この方法と装置は上記の決定および制御のステップを繰り返し、CPUの動的動作特性を効果的に管理する。
したがってオペレーティングシステム/BIOSの第三者ソフトウエアのオペレータがコンピュータを使用していないときは、この発明は電力を節約するために、必要になるまでCPUを急速に止めるかまたは遅くして、動作特性をより低い状態に移行させる。必要になると、このシステムは性能が変わったことに気付かれずにCPU動作を急速に完全に回復する。「遅い」モードから完全な動作への切り替えを行うのにはユーザが要求する必要がなく、またコンピュータが「作動可能」状態に戻るのを待っているときにコンピュータの動作が遅れることはない。
この発明の技術的利点は、CPUの動作特性を予見すなわち予測できることである。この発明は、命令の数を数えてその種類を決定することにより、入出力がほとんどない計算指向モードにCPUが入るかどうかを決定するので、CPUの遅れやCPUへの入出力は起こらない。この予見により、関連する所定の設定点に1つ以上のCPUの動的動作特性が達するかどうかを、計算指向モード中に決定することができる。達するようであれば、この発明はクロック速度を調整したり、所定の設定点を修正したり、またはその他のCPU動作の変更を行うことにより、特定の所定の設定点に達して悪い結果が生じることがないようにする。
この発明のさらに別の技術的利点は、単一CPUコンピュータの場合だけでなく、多数のまたは並列のCPUコンピュータシステムの場合も、CPUの動的動作特性の変化に対応できることである。実際に、この発明により1組の並列CPUを構成して、CPUの動的動作特性に関して起こる割り込み条件に応じて1台以上のCPUを調整することにより、すべてのCPUの間で所望の平均クロック速度を維持することができる。
以下の説明は、この発明の電力節約に関する。しかしこの発明は電力節約または消費の他に、他のCPUの動的動作特性を制御する方法と装置をさらに含む。
任意のシステムのコンピュータ活動の期間を調べる場合、CPUおよび関連する要素には利用率がある。たとえばユーザがキーボードからデータを入力する場合は、キーを打つ間の時間はCPUサイクルに比べて非常に長い。この間にコンピュータは、報告書を印刷するなど多くのことを行うことができる。報告書を印刷している間でも、クロック/カレンダ表示の背景を更新するなど別の動作を行う時間がある。それでもなお、CPUが用いられていない空き時間がほとんど常にある。この発明はこの空き時間にCPUを止めまたは遅くして実時間の電力節約を行い、コンピュータの電池の寿命を延ばす方法を提供する。
この発明の好ましい実施態様では、MS−DOSだけでなく、OS/2、UNIX(登録商標)、Windows(登録商標)などのオペレーティングシステムやアップルコンピュータのオペレーティングシステムの下でのCPUの動的動作特性を制御するためには、ハードウエアとソフトウエアの組み合わせを必要とする。この実施態様は任意のシステムで動作するので、実現する際にはシステム毎にわずかな違いはあるものの、この発明の範囲はMS−DOSまたはその他の特定のオペレーティングシステムの下で動作するコンピュータシステムに限定されないことに注意していただきたい。
この発明の好ましい実施態様では、コンピュータシステムの要素を遅くしまたは停止させることにより電力消費を減らし、動作温度を下げ、またはその他の方法で動的動作特性を制御する。もちろん制御または変化の量はシステムによって異なってよい。したがってこの実施態様では、クロックを止めれば(しかし実際にはクロックを止められないCPUもある)クロックを遅くするだけより電力の消費を減らすことができる。
一般に、毎秒のCPU動作(すなわち命令)の数はCPUクロックにほぼ比例すると考えてよい。
命令/秒=命令/サイクル*サイクル/秒 (1)
簡単のために、同じ命令を繰り返し実行して毎秒の命令が一定であると仮定すると、上の関係は次のようになる。
=K* Clk (2)
ただし、Fは毎秒の命令数、Kはサイクル毎の命令の単位を持つ値、Clkは毎秒のサイクル数を表す。したがって大まかに言えば、実行速度はCPUクロックの周波数と共に増加する。
任意の瞬間にコンピュータが使う電力量もCPUクロックの周波数に、したがってCPUの実行速度に関係する。一般にこの関係は次の式で表される。
P=K+(K* Clk) (3)
ただし、Pは電力(ワット)、Kはワットの単位を持つ定数、Kはワット秒/サイクルの数を表す定数、Clkは毎秒のCPUクロックのサイクル、である。式(3)から、CPUクロック周波数が増加すると所定の時刻にCPUが消費する電力量も増加することが分かる。
所定の期間Tをn個の間隔に分けて、各間隔中の電力Pが一定になるようにすることができる。また全期間中にCPUが消費するエネルギーの量Eは次式で表される。
E=P(1)ΔT+P(2)ΔT+...+P(n)ΔT (4)
さらに、CPUクロックClkは「オン」か「オフ」の2つの状態だけと仮定する。ここで「オン」状態はCPUが動作する最大周波数でのCPUクロックの状態を表し、「オフ」状態は最小周波数でのクロックの状態を表す。この最小クロック速度は、自分のクロックを止めることができるCPUではゼロである。
CPUクロックが常に「オン」という条件では前式の各P(i)は等しく、全エネルギーは
E(max)=P(オン)*(ΔT+ΔT+...+ΔT
=P(オン)*T (5)
である。ただし、P(オン)はクロックが「オン」状態の時に消費する電力を表し、P(オフ)はクロックが「オフ」のときに消費する電力を表す。これは、CPUの動的動作特性を制御しない場合の、コンピュータの最大電力消費を表す。間隔1から4の一部でCPUクロックが「オフ」の場合は、各間隔は2つの電力レベルを含む。クロックが「オン」の時間間隔をすべて合計してT(オン)とし、「オフ」の間隔を合計してT(オフ)とすると、次式が得られる。
T=T(オン)+T(オフ) (6)
ところで、CPUが期間Tの間に使うエネルギーは次式のようになる。
E=〔P(オン)*T(オン)〕+〔P(オフ)*T(オフ)〕 (7)
これらの条件の下で、CPUが消費する全エネルギーは時間間隔T(オフ)を多くすることにより減少させることができる。したがってクロックが「オフ」状態にある期間を制御することにより、この実施態様はCPUが使うエネルギーの量を減らす。期間T中のT(オフ)の期間を多数の間隔に分けると、各間隔の幅がゼロに近付くに従ってエネルギー消費は最大値になることがこの実施態様から分かる。逆に、T(オフ)の間隔の幅を大きくするとエネルギー消費は減少する。
「オフ」の間隔とCPUが通常休止している期間とを一致させると、この実施態様は性能が低下したことをユーザに気付かれずに全エネルギー消費をE(最大)状態から減少させて、コンピュータシステムを動作させることができる。T(オフ)間隔とCPU休止期間とを一致させるために、この実施態様は、閉ループ、たとえば図1に示す閉ループ10、を用いてCPU活動レベルの幅T(オフ)間隔を決定する。図1ではCPU活動レベルをステップ12で決定する。このレベルが直前の決定より増加している場合は、判断14により流れ図はステップ16に進み、この発明はT(オフ)間隔を減少させる。ステップ16から流れはステップ12に進んで、CPU活動レベルを決定する。他方、CPU活動レベルが直前の決定より減少している場合は、この発明はステップ18に示すようにT(オフ)間隔を増加させ、流れはステップ12に進んで再びCPU活動レベルを決定する。このようにして、閉ループ10は絶えずT(オフ)間隔を調整して、CPU活動レベルを合わせる。
どのオペレーティングシステムにも2つの重要な論理の要点がある。すなわち、(1)オペレーティングシステム内のアイドルすなわち「何もしない」ループと(2)通常、応用ソフトウエアが必要とするサービスに利用できるオペレーティングシステム要求チャンネルである。これらの論理の要点と調和する論理を用いることにより、この実施態様は応用ソフトウエアが行うまたは将来行う予定の活動要求の種類を評価することができる。この種の情報を持っているので、この実施態様はフィードバックと制御を行ってCPUの動的動作特性を管理することができる。たとえば活動要求の種類が分かると、電力節約を開始し、スライス期間の決定を開始することができる。スライス期間は時間軸のT(オン)対T(オフ)の数を活動レベルによって計算したものである。
この実施態様では、CPUの活動レベルを決定するのに1つの仮定を行う。この実施態様が行う仮定は、サービスを必要とするソフトウエアプログラムは通常さらに別のサービスを必要とすることと、サービス要求の間の期間を用いて、コンピュータ上を走って電力などのCPUの動的動作特性を制御する任意の応用ソフトウエアの活動レベルを決定したり節約のためのスライス数を決めたりしてよいことである。
たとえば、電力節約スライス中に、すなわちT(オフ)中に、この実施態様がCPUに割り込みを行うと、CPUは割り込みソフトウエアに向かう前に割り込みを受けたルーチンの状態を保存する。電力節約ソフトウエアはこの節約スライス中に動作していたので、この実施態様は活動的な電力節約ループに制御を返す。前記活動的な電力節約ループはCPUクロックを監視するだけであって、電力節約モードから出る条件が存在することを決定してT(オフ)状態からT(オン)状態に出る。図1に関して上に説明したように、処理の流れは監視した活動レベルに従って次の電力節約状態の間隔を調整する。ある実現ではハードウエア論理によってT(オフ)からの自動的な出口を作り、電力節約ループから自動的に出て、T(オン)間隔中にCPU命令を実行する。
図2から図4は、この実施態様の活動的な電力モニタ機能を示す。動作を説明すると、CPUのリードオンリーメモリ(ROM)が記憶するプログラムから、またはランダムアクセスメモリ(RAM)内にプログラムを記憶する外部装置から、CPUは活動的な電力モニタ機能20をインストールする。CPUが活動的な電力モニタ機能20をロードすると、活動的な電力モニタ機能20の処理の流れは初期化ステップ22に進んで、システム割り込みの初期化や、ユーザ構成の設定や、システム/応用の特定の初期化のステップを行う。アイドルすなわち「何もしない」機能のためのハードウエアまたはソフトウエア割り込みが発生すると、アイドル分岐24を実行する。これについては図3aに詳細に示す。アイドルすなわち「何もしない」ループ(すなわち計画的な休止状態)に入るCPUはこの種類の割り込みを発生する。オペレーティングシステムや、入出力サービス要求や、応用プログラムや、内部オペレーティングシステム機能によって起こるソフトウエアまたはハードウエア割り込みが発生すると、流れ図の活動分岐26を実行する。これについては図4に詳細に示す。
プログラムはたとえばディスク入出力機能や、読み出しや、印刷や、ロードや、その他のサービスの要求であってよい。選択した分岐が何であっても、復帰ベクトル28は処理の流れを最終的にCPUのオペレーティングシステムに戻す。好ましい実施態様は、CPUが活動的な電力モニタ機能20をROM内のプログラムによりロードする場合は1度だけ、またCPUがモニタ機能20を外部の装置のRAMからロードする場合はパワーアップ中は毎回、初期化分岐(図2に詳細に示す)を実行する。活動的な電力モニタ機能20の初期化分岐22が完全にモニタ機能を行った後、処理の流れはCPU活動の種類に従ってアイドル分岐24か活動分岐26に分岐する。オペレーティングシステムが電力節約モードに入ると、CPU活動の種類に従ってアイドル分岐24か活動分岐26を選択する。すなわち、計画的な休止中の電力節約ではアイドル分岐24を選択し、CPU活動中の電力節約では活動分岐26を選択する。
さらに図2の初期化分岐22を詳細に見ると、すべてのシステム割り込みと変数を初期化した後、処理の流れはステップ30で、POWER_LEVELパラメータをDEFAULT_LEVELに等しく設定する。POWER_LEVELの入力をユーザが制御するオペレーティングシステムでは、ステップ32でプログラムはUSER_LEVELパラメータをすでに選択したかどうか調べる。USER_LEVELパラメータがゼロより小さいかまたはMAXIMUM_LEVELより大きい場合は、システムはDEFAULT_LEVELパラメータ値を用いる。そうでない場合は、初期化分岐22はステップ34に進んで、POWER_LEVELパラメータ値をUSER_LEVELパラメータに等しく設定する。
この発明のこの実施態様では、初期化分岐22はステップ36で変数IDLE_TICKをゼロに、変数ACTIVITY_TICKをゼロに設定する。MS/DOSを用いる場合は、IDLE_TICK変数は「何もしない」ループ内の割り込みの数である。ACTIVITY_TICK変数は、活動割り込みによる割り込みの数を表す。この割り込みの数はCPU活動レベルを決定する。チックのカウントは次の割り込みのデルタ時間ΔTを表す。IDLE_TICKは、ソフトウエア割り込みが起こってこの期間に上書きするのでなければ、チックの間の一定デルタ時間ΔTである。すなわち、ソフトウエア割り込みは割り込みの間のデルタ時間を再プログラムすることができる。
IDLE_TICK変数とACTIVITY_TICK変数をゼロに設定した後で、初期化分岐22は設定ステップ38に進み、ここで初期化分岐22はシステムに特有の詳細を用いて応用に特有の構成の微同調を行い、設定ステップ38で活動的な電力モニタ機能20を初期化する。次に初期化分岐22はステップ40で割り込み入出力にハードウエアへの命令を準備する。これは次の割り込みでそのハードウエアが制御を受け持ってよいことを示す。次に初期化分岐22は復帰ベクトル28を経て、オペレーティングシステムに、または活動的な電力モニタ20を呼んだ元の機能に出る。
図3aは、活動的な電力モニタ機能20のアイドル分岐24を詳細に示す。CPUの計画的な休止期間に応じて、活動的な電力モニタ機能20は、アイドル分岐24に入ることができるかどうか知るためにまず活動割り込みAが現在使用中かどうか決定する。判断42でパラメータBUSY_Aが再入フラグBUSY_FLAGの値に等しい場合は、現在CPUは使用中であって休眠にはできないことを意味する。したがって活動的な電力モニタ機能20はすぐ復帰Iステップ44に進んでルーチンから出る。復帰Iステップ44は、前のオペレーティングシステムのアイドルベクトル割り込みに戻って通常の処理を行うための間接ベクトルである。CPUは、活動的な電力モニタ機能20に入る前にこの間接ベクトルを記憶する。言い換えると、復帰Iステップ44によりすぐ前の連鎖ベクトルに割り込み復帰する。
判断42でBUSY_A割り込みフラグが使用中でないと決定した場合は、活動的な電力モニタ機能20はステップ46で、BUSY_IDLE割り込みフラグがBUSY_FLAGに等しいかどうか調べる。等しければ、活動的な電力モニタ機能はすでにアイドル分岐24にあることを示し、したがってCPU割り込みがあってはならない。BUSY_IがBUSY_FLAGに等しい場合は、アイドル分岐24の処理の流れはステップ44に進む。
しかしBUSY_A再入フラグもBUSY_I再入フラグもセットされていない場合は、再入保護のために、ステップ48でアイドル分岐24はBUSY_Iフラグをセットする。すなわちBUSY_IをBUSY_FLAGと同じ値にする。ステップ50で、IDLE_TICK変数を1だけ増やす。IDLE_TICK変数はあるT(オフ)間隔の前のT(オン)の数である。アイドル割り込みおよび設定割り込みの数とCPU活動レベルによりIDLE_TICKの値が決まる。IDLE_TICK変数を1だけ増やして事象を平滑化する。これにより、限界(critical)入出力活動は平滑化を制御することができる。
ステップ52で、活動的な電力モニタ機能20はIDLE_TICK変数が所定の一定値IDLE_MAXTICKSに等しいかどうか調べる。IDLE_MAXTICKSは初期化分岐22の設定ステップ38で初期化する定数の1つで、所定のCPUでは一定である。この実施態様では、一定のパラメータIDLE_MAXTICKSにより活動レベルの自己同調ができる。変数IDLE_TICKが定数IDLE_MAXTICKSに等しくない場合は、アイドル分岐24はステップ54でBUSY_Iフラグをクリアし、復帰I間接ベクトル44に進んで処理の流れから出る。しかしIDLE_TICK変数がIDLE_MAXTICKSに等しい場合は、ステップ56でIDLE_TICK変数をIDLE_START_TICKS定数(ゼロまたは非ゼロ)に等しくする。
一般に、特定のCPUがそのクロックを停止してしかも正しく機能することができる場合は、IDLE_START_TICKSはゼロである。そうでない場合は、IDLE_START_TICKSは所定のCPUに適した所定の値を取る。このステップは、活動的な電力モニタ機能20が残りの休眠機能を何度実行してよいかを指定することにより、この実施態様の自己同調の態様を決定する。IDLE_START_TICKSをIDLE_MAXTICKSから1を引いた値に等しく設定することにより、この実施態様は連続的なT(オフ)間隔を得る。判断58で、アイドル分岐24はPOWER_LEVELパラメータのレベルを調べる。POWER_LEVELパラメータがゼロの場合は、アイドル分岐24はステップ54でBUSY_Iフラグをクリアし、復帰I間接ベクトル44に進んで、制御をオペレーティングシステムに返す。したがって、オペレーティングシステムは活動的な電力モニタ機能20に入る前に行っていた仕事を続けてよい。
しかし、判断58でPOWER_LEVELパラメータの値がゼロでない場合は、アイドル分岐24は割り込みマスクがあるかどうか決定する。システム/応用ソフトウエアはINTERRUPT_MASK変数を設定して、活動的な電力モニタ機能20に割り込みを行ってよいかどうかを決定する。判断60で割り込みマスクがNOT_AVAILABLEと決定した場合は、アイドル分岐24はBUSY_I再入フラグをクリアして制御をオペレーティングシステムに返し、CPUは活動的な電力モニタ機能20に入る前に実行していた仕事を続ける。オペレーティングシステムも応用ソフトウエアも、割り込みマスクをNOT_AVAILABLE値すなわちフラグと同じ値に設定することにより、連続的なT(オン)状態を作るようにT(オン)間隔を設定することができる。
割り込みマスクがAVAILABLEの場合は、活動的な電力モニタ機能20は電力節約サブルーチン62に進み、ハードウエア状態が確立したT(オフ)の1期間中、電力節約サブルーチン62を十分に実行する。たとえば好ましい実施態様では、可能な最長間隔は恐らく18ミリ秒で、これは実時間クロックからの2つのチックすなわち割り込みの間の最長時間である。電力節約サブルーチン62の間は、CPUクロックは速度を落として休眠クロックレベルになる。
限界入出力動作によりT(オン)間隔が開始すると、アイドル分岐24の割り込みは引き続き別の限界入出力要求に対して作動可能である。CPUが限界入出力で使用中になると、利用可能なT(オフ)間隔は少なくなる。逆に限界入出力要求が減少してその間の時間間隔が増加すると、利用可能なT(オフ)間隔は多くなる。アイドル分岐24は、活動割り込みからのフィードバック(CPU活動レベルが低下するにつれてT(オフ)間隔を増やす)に基づく自己同調システムを与える。
図3bと関連する説明によって示すように、活動的な電力モニタ機能20が電力節約サブルーチン62を完了すると、ステップ54でBUSY_I再入フラグをクリアし、流れは復帰Iベクトル44を経て、活動的な電力モニタ機能20を要求した元のオペレーティングシステムに戻る。
図3bをより詳細に参照すると、流れ図80は電力節約サブルーチン62の説明である。活動的な電力モニタ機能20はステップ82で入出力ハードウエア高速クロックを決定する。電力節約サブルーチン62の次のステップ84で、CURRENT_CLOCK_RATEを適当な高速クロックに等しく設定して、多レベルの高速クロックを持つCPUにこの値を保存する。したがって、あるCPUが12MHzと6MHzの高速クロックを持つ場合は、活動的な電力モニタ機能20は、活動的な電力モニタ機能20が電力を減少させる前に、どちらの高速クロックでCPUを制御するかを決めなければならない。これによりCPUは、目覚めたときにCPUを適切な高速クロックで再設定することができる。ステップ84で、電力節約サブルーチンはSAVE_CLOCK_RATE変数を、ステップ82で決定したCURRENT_CLOCK_RATEの値に等しくする。CPUの高速クロックが1個だけの場合はSAVE_CLOCK_RATE84は使わない。次に活動的な電力モニタ機能20は休眠クロックステップ86に進み、パルスをハードウエアセレクタ(図7に示す)に送ってクロック周波数を下げまたは止めることにより、CPUクロックを休眠させる。入出力ポートハードウエア休眠クロックの振動は、CPUクロックの通常の振動よりはるかに低い。
この時点で2つの事象のどちらかが起こる。すなわちシステム/応用割り込みか、実時間クロック割り込みが起こる。システム/応用割り込み88が起こる場合は、活動的な電力モニタ機能20は割り込みルーチン90に進む。電力節約ルーチン62はこの割り込みをすぐ処理してステップ92で入出力割り込みを準備し、判断94に戻って、割り込みがあるかどうか決定する。この場合は割り込みがあったので、ステップ96でSAVE_CLOCK_RATEの値を用いて、どちらの高速クロックでCPUを戻すかを決定する。電力節約サブルーチン62の流れ図80は復帰ベクトル98で終了する。
しかし判断94でシステム/応用割り込みがないと決定した場合は、電力節約サブルーチン62は判断94で実時間クロック割り込みが起こるまで待ち続ける。実時間割り込みが起こると、電力節約サブルーチン62はCPUを、記憶したSAVE_CLOCK_RATEに再設定する。休眠クロック速度が停止クロック速度でなかった場合、すなわち休眠クロック速度がゼロでなかった場合は、制御は遅いクロックで進み、電力節約サブルーチン62は判断94とステップ88から92を通る割り込みループを実行する。他方、制御が休眠クロック速度ゼロで進む場合は、電力節約サブルーチン62は、判断94とステップ88から92を含む割り込みループを一度だけ実行した後CPUクロックをSAVE_CLOCK_RATE96に戻し、その後流れは復帰ベクトル98に進む。
次に図4において流れ図100は、システム/応用の活動要求がオペレーティングシステムサービス要求の割り込みによりトリガする、活動分岐26の処理の流れを示す。活動分岐26は再入保護から始まる。ステップ102で活動的な電力モニタ機能20は、BUSY_I変数がBUSY_FLAG値に等しく設定されているかどうかを決定する。等しい場合は、活動的な電力モニタ機能20システムは既にアイドル分岐24にあり、割り込みできないことを意味する。BUSY_IがBUSY_FLAG値に等しい場合は、処理の流れは復帰Iベクトル44に進んで、活動的な電力モニタ機能20から出る。復帰Iベクトル44は元の活動ベクトル割り込みに戻って通常の処理を行うための間接ベクトルである。復帰Iベクトル44は割り込みベクトルによりCPU動作を通常の位置に戻す。これは要求されたサービスをオペレーティングシステムが行った後に動作する。
BUSY_Iフラグ変数がBUSY_FLAG値に等しくない場合は、活動的な電力モニタ機能20がアイドル分岐24にアクセスしていないことを意味する。活動的な電力モニタ機能20は判断104で、BUSY_AフラグがBUSY_FLAG値に等しいかどうか決定する。等しければ、活動分岐26はこの時点で制御をコンピュータシステムに戻す。これは、すでに活動分岐26に入っているので割り込みできないことを意味する。BUSY_Aフラグがセットされていない場合は、すなわちBUSY_AがBUSY_FLAG値に等しくない場合は、活動的な電力モニタ機能20はステップ106でBUSY_AパラメータをBUSY_FLAG値に等しく設定し、実行中の割り込みを防ぐ。
判断108で、活動分岐26はPOWER_LEVELパラメータ値を決定する。POWER_LEVELパラメータ値がゼロの場合は、活動的な電力モニタ機能20はまずステップ110でBUSY_A再入フラグをクリアした後、活動分岐26から出る。しかしPOWER_LEVELパラメータ値がゼロでない場合は、活動分岐26は次に、入出力ハードウエアのCURRENT_CLOCK_RATEパラメータの値を決定する。図3bの電力節約サブルーチンのステップ84でそうであったように、所定のCPUに多レベルの高速クロックがある場合は、図4の活動分岐26はステップ112でCURRENT_CLOCK_RATEパラメータ値を用いる。多レベルでない場合は、CURRENT_CLOCK_RATEパラメータ値は常にCPUの高速クロックに等しい。ステップ112でCURRENT_CLOCK_RATEパラメータ値を決定した後、ステップ114でIDLE_TICKパラメータ値を一定のSTART_TICKSに等しく設定する。START_TICKS定数は、前に決定したCURRENT_CLOCK_RATEに設定する。活動的な現在の高速クロックがT(オフ)間隔を設定する。
活動分岐26の次のステップ判断116では、要求があったことを決定する。要求は、特定の種類の必要なサービスのためにコンピュータ上を走る応用ソフトウエアからの入力である。判断116で、活動分岐26は要求が限界入出力かどうか決定する。限界入出力は、T(オン)がT(オフ)より大きくなるまで絶えずT(オン)を長くする。要求が限界入出力の場合は、活動的な電力モニタ機能20はまずステップ110でBUSY_A再入フラグをクリアした後、活動分岐26から出る。
他方、要求が限界入出力でない場合は、活動分岐26はステップ118でACTIVITY_TICKパラメータを1だけ増やす。処理の流れは判断120に進み、ACTIVITY_TICKパラメータ値がACTIVITY_MAXTICKS一定値に等しいかどうか決定する。判断120のチェックにより限界入出力からの平滑化が可能になり、次のACTIVITY_TICKのT(オン)間隔中にシステムを別の限界入出力に備えさせる。ACTIVITY_TICKパラメータ値がACTIVITY_MAXTICKS一定値に等しくない場合は、活動分岐26の処理の流れはステップ110でBUSY_A再入フラグをクリアした後で、復帰Iベクトル44に進む。他方、ACTIVITY_TICKが一定値ACTIVITY_MAXTICKSに等しい場合は、ステップ122で、活動分岐26はACTIVITY_TICKパラメータを一定値LEVEL_MAXTICKSに設定する。活動分岐26はLEVEL_MAXTICKS値を、判断108で決定する特定の電力レベルに設定する。
判断124で、活動分岐26は割り込みマスクが存在するかどうか決定する。システム/応用ソフトウエアは割り込みマスクを設定する。割り込みマスクをNOT_AVAILABLEフラグ値に設定すると連続的なT(オン)状態を作る。これは、現在割り込みが利用できないことを意味する。この場合は、活動分岐26の処理の流れはステップ110に進み、BUSY_A再入フラグをクリアして、復帰Iベクトル44に進む。しかし割り込みマスクがAVAILABLEの場合は、活動分岐26は判断126で、判断116で識別した要求が遅いI/O_INTERRUPTだったかどうか決定する。遅いI/O_INTERRUPT要求は、入出力装置が「作動可能」になるまで遅れてよい。「作動可能にする」動作中に連続的なT(オフ)間隔が始まって電力の節約を続ける。
したがって、要求が遅いI/O_INTERRUPTでない場合は、活動分岐26の処理の流れはステップ110に進んでBUSY_A再入フラグをクリアし、続いて復帰Iベクトル44に進む。しかし要求が遅いI/O_INTERRUPTで、かつ入出力装置が「作動可能」になるまでにまだ時間がある場合は、活動分岐26は判断128で、入出力要求が完了したかどうか決定する。したがって本質的に、判断128は関連する入出力装置が作動可能かどうか決定する。入出力装置が作動可能でない場合は、活動的な電力モニタ機能20はT(オフ)を長くする。これによりCPUは、遅い入出力装置が作動可能になるまで待たされすなわち休眠させられて、電力を節約する時間がある。したがって活動分岐26は、図2cと関連する説明で詳細に示した電力節約サブルーチン62に入る。判断128で入出力要求が完了したと決定すると、処理の流れはステップ110に進んでBUSY_A再入フラグをクリアし、復帰Iベクトル44を経て、制御はオペレーティングシステムに戻る。
この発明のこの実施態様は活動的な電力監視を行うだけでなく、他のCPUの動的動作特性を管理する方法と装置も提供する。他の動的動作特性とは、たとえば望ましくない電磁周波数放射線の放出や、この発明に従って繰り返し調整してもCPUが所定の温度帯域内で動作を継続することができない、などである。詳しく言うと、図5に示すように、この実施態様は積極的に温度を管理する方法や、ユーザに透明で図3bの電力節約サブルーチン62と同様な方法で動作する、温度制御用の実時間フィードバックループを含む装置を提供する。
図5は、ステップ132から始まる温度管理サブルーチンの流れ図130を示す。温度管理サブルーチン132を実現するには、活動的な電力モニタ機能20を修正して、関連するCPUおよびコンピュータシステムにより電力消費だけでなく他のCPUの動的動作特性を監視できるよう、より一般的な活動的なモニタ機能にする。従って本質的に、活動的な電力モニタ機能20がアイドル分岐24と活動分岐26により電力節約サブルーチン62を呼ぶのと同様に、より一般的な活動的なモニタ機能は、温度管理サブルーチン132にCPUの温度制御動作を行わせるときは温度管理サブルーチン132を呼ぶ。しかし重要な差は、電力節約サブルーチン62を呼ぶのは活動レベルが低いときであるのに反して、この実施態様は、温度条件がCPUの温度限界に近付いたときまたは近づきそうなときに温度管理サブルーチン132を呼ぶ点である。
詳しく言うと、この実施態様の活動的なモニタ機能は、BUSY_AパラメータがBUSY_FLAG一定値に等しいときに、活動分岐26内で温度管理サブルーチン132を呼ぶ。それ以後の処理の流れは温度管理サブルーチン132に示すように進む。
図5をより詳細に参照すると、ステップ132は温度管理サブルーチンの最初のステップである。温度管理サブルーチン132はステップ134でCURRENT_CLOCK_RATEパラメータの値を決定する。次のステップ136で、CPUが多レベルの高速クロックを持つ場合は、CURRENT_CLOCK_RATEパラメータを適当な高速クロックに等しく設定し、この値を保存する。したがって、あるCPUが12MHzと6MHzの高速クロックを持つ場合は、活動的なモニタ機能はCPU内の過度の温度または温度変化条件に応じるために、活動的なモニタ機能がどの高速クロックでCPUを制御するかを決定しなければならない。これにより、CPUは目覚めたときに適当な高速で動作を再設定することができる。ステップ136で、温度管理サブルーチン132はステップ134で決定した値にSAVE_CLOCK_RATEパラメータ値を設定する。この実施態様では、CPUの高速クロックが1個だけの場合はSAVE_CLOCK_RATEステップ136を用いない方がよい。
温度管理サブルーチン132はステップ138に進み、CPUが処理する予定の命令の数を数える。この実施態様は、関連するコンピュータシステムのROMが記憶するルックアップテーブルを含んでよい。ルックアップテーブルは、入出力を要求する命令と入出力なしのCPU動作に関する命令とを区別する。
命令のリストを数えるステップ138の次に、判断140はTHERMAL_INTERRUPTパラメータ値が一定値THERMAL_SETPOINTに等しいかどうか決定する。これは温度割り込みの必要性を示す。温度割り込みは、温度条件が望ましくない場合にCPUの動作を止めるか変えるための割り込みである。THERMAL_INTERRUPTパラメータの値がTHERMAL_SETPOINTの値に等しくない場合は、温度管理サブルーチン132の処理の流れは計算指向サブルーチン142に進む。他方、THERMAL_INTERRUPTがTHERMAL_SETPOINTに等しい場合は処理の流れはステップ144に進み、ここでCPUクロックはより低い休眠クロック速度に移行する。処理の流れは休眠クロック速度ステップ144から判断146に進み、処理の流れが温度管理サブルーチン132から出るかどうか調べる。処理の流れが温度管理サブルーチン132から出ない場合は、処理の流れは判断140に戻り、引き続き温度割り込み条件が存在するかどうか調べる。
CPUが温度管理サブルーチン132から出る場合は、処理の流れは判断146から復帰ベクトル148に進む。処理の流れはここから前に説明した活動的なモニタ機能に戻る。これには種々の場合がある。たとえば、活動的なモニタ機能が図3aのアイドル分岐24に飛ぶなど。温度割り込み条件が存在する限り、温度管理サブルーチン132はステップ144のより遅い休眠クロック速度でCPUを動作させる。
温度管理サブルーチン132の処理の流れが計算指向サブルーチン142に向かう場合は、処理の流れは図6に示す計算指向サブルーチン流れ図150のようになる。計算指向サブルーチンはステップ142で始まり、処理の流れは判断152に進んで、CPUが計算指向状態にあるかどうか調べる。CPUが計算指向状態になければ、処理の流れは復帰ベクトル154に進む。復帰ベクトル154は、温度管理サブルーチン132の処理の流れをTHERMAL_INTERRUPT判断140に戻す(図5参照)。
CPUが計算指向状態にある場合は、計算指向サブルーチン142の処理の流れは判断156に進む。この発明が与える技術的な利点は、CPUの動作特性を予見すなわち予測できることである。命令の数を数えてその種類を決定することにより、この実施態様はCPUが計算指向動作モードにあって、入出力はほとんどないか、したがってCPUの減速もCPUへの入出力機能も起こらないかどうか決定する。CPUが計算指向状態にあるかどうかの決定は、命令のリストを数えるステップ138で数えた、CPUが実行する予定の命令の数から得られる。
この実施態様は、CPUが実行する予定の命令とコンピュータシステムがROMに保持しているルックアップテーブルの要素とを比較する比較器を備える。このルックアップテーブルは、命令の種類が入出力機能を含むものか、入出力機能を含まずにCPUの処理と計算動作だけに関するものかという特徴付けを行う。この実施態様は、入出力機能を含む断続した入出力命令を持たない、連続した計算命令の数についての所定のしきい値を与える。入出力機能を含まない命令の数が所定のしきい値数を超える場合は、この実施態様は、CPUが計算指向状態にあると判断する。
CPUが計算指向状態にあると計算指向サブルーチン142が決定すると、処理の流れは判断156に進み、CPUが計算指向状態中に温度割り込み条件を設定するかどうか調べる。この設定は、CPUが温度割り込みに達するのを防ぐために、または所望であれば、この温度割り込みを新しい温度割り込みレベルにするために行う。したがって計算指向サブルーチン142が判断156で、計算指向状態中にCPUが温度割り込みに達すると決定すると、処理の流れは判断158に進む。他方、計算指向状態中に温度割り込み条件が起こらない場合は、処理の流れは復帰ベクトル154に進んで、温度管理サブルーチン132内の処理を続ける。
たとえばCPUが計算指向状態中に温度割り込み設定点を必要とはするが、計算指向状態が十分長くないのでCPUに悪い影響を与えない場合は、この実施態様は一定値THERMAL_SETPOINTを調整することができる。言い換えると、通常の条件下で、CPUがこの温度に達しても安全の余裕があってCPUが温度による損傷を受けることがないように、温度割り込み条件を設定する。たとえばCPU温度が一定値THERMAL_SETPOINTに達する理由が分かる場合は、かなりの調整可能な安全余裕がある。計算指向CPUの外箱の温度の上昇速度に従って、CPUの温度は既知の予測可能な状態で上昇する。
計算指向状態でCPUが実行する命令の数と種類が分かると、これに基づいて計算指向サブルーチン142は、CPUはCPUの温度設定点THERMAL_SETPOINTに達するかまたは超えるが、そうなるのはほんの短い期間だけであると決定することができる。計算指向サブルーチン142が決定するこの短い期間ではCPUの損傷やその恐れはない。この状態に対処するために、計算指向サブルーチン142は判断158で現在のTHERMAL_SETPOINTの値を調整する必要があるかどうか調べる。現在のTHERMAL_SETPOINTの値を調整する必要がある場合は、処理の流れはステップ160に進んで、THERMAL_SETPOINTの値を調整する。ステップ160から、処理の流れは復帰ベクトル154に進む。他方、THERMAL_SETPOINTを現在の値に保つ場合は処理の流れは判断162に進み、THERMAL_INTERRUPTパラメータの値をTHERMAL_SETPOINTの一定値に設定するかどうか調べる。
THERMAL_INTERRUPTパラメータの値をTHERMAL_SETPOINTの一定値に設定する場合は処理の流れはステップ164に進み、計算指向サブルーチン142はTHERMAL_INTERRUPTパラメータの値をTHERMAL_SETPOINTの一定値に設定する。次に、処理の流れは復帰ベクトル154に進む。他方、THERMAL_INTERRUPTパラメータの値をTHERMAL_SETPOINTの値に設定しない場合は、処理の流れはそのまま復帰ベクトル154に進む。この後、処理の流れは復帰ベクトル148に進んで、温度管理サブルーチン132に戻る。
自己同調は連続フィードバックループの制御システムに固有のものである。この発明のソフトウエアはCPUの活動が低いとき、したがってこの発明の電力節約態様を起動してよいときを検出することができる。他方この実施態様は、CPUの活動が高くて温度管理を起動してよい時を決定する。電力節約モニタが起動すると、その間隔内でCPUクロック動作は最高速度に急速に復帰するのでコンピュータの性能は低下しない。同様に、温度設定点の条件がなくなって温度管理の必要がなくなると、CPU内のCPUクロック動作は最高速度に急速に復帰して、温度管理の影響はほとんど気付かれない。この最高速度のCPUクロック動作に急速に復帰させるため、この発明の好ましい実施態様はいくつかの関連するハードウエアを用いる。
次に図7は、活動的な電力節約および温度管理用の、この発明に用いる関連ハードウエアを表す簡単化した略図である。CPUがいつでも休眠できる状態にあると決定した場合は、活動的な電力モニタ機能20は入出力ポート(図示せず)に書き込んで休眠線にパルスを出す。休眠線のこのパルスの立ち上がり端で、フリップフロップのQは高に、Q−は低になる。これにより、ANDゲート202および204とORゲート206を含むAND/OR論理は、休眠クロック発振器208から休眠クロック線に出るパルスを選択して、CPUクロックに送って使用する。休眠クロック発振器208は、通常のCPU活動中に用いるCPUクロックより遅いクロックである。
フリップフロップ200のQから来る高信号は、休眠クロック発振器208から来るパルスとの論理積をANDゲート202でとり、またフリップフロップ200のQ−からの低信号との論理和をORゲート206でとり、さらに高速クロック発振器210から高速クロック線に出るパルスとの論理積をANDゲート204でとって、CPUクロックを作る。入出力ポートが休眠クロックを指定すると、CPUクロックは休眠クロック発振器208の値に等しくなる。他方、割り込みが起こると割り込み値はフリップフロップ200をクリアし、この割り込みにより、ANDゲート202および204とORゲート206を備えるAND/ORセレクタは高速クロック値を選択する。AND/ORセレクタは、CPUクロック値を高速クロック発振器210から来る値に戻す。したがってCPUの電力節約動作中にシステム内で割り込みを検出すると、CPU動作を最高クロック速度に回復してから割り込みを受けて処理する。
任意のシステムの各CPU以外の必要な関連ハードウエアは、用いるオペレーティングシステムや、CPUが止められるか、などによって異なってよいことに注意していただきたい。しかし、多くの使用可能なポータブルコンピュータシステム内でこの発明が活動的に電力を節約しまたは温度条件を管理するのに、この発明の範囲はシステムに特有の必要な変更によって制限されるものではない。例として、2つの実際の実施態様を図8と図9に示して以下に説明する。
現在、多くのVLSI設計ではCPU速度のクロック切り替えが可能である。ゼロクロックまたは遅いクロックから速いクロックに切り替える論理は、ユーザがキーボード命令により速度を変える論理と同じである。このような切り替え論理を活動的なモニタ機能の論理に追加することにより、割り込みを検出するとすぐ高速クロックに戻すことができる。この簡単な論理が、CPUに割り込みを行って割り込みを最高速度で処理できるようにするのに必要なハードウエア支援の鍵である。
MS−DOSの下で電力消費および温度を含むCPUの動的動作特性を管理する方法は、MS−DOSアイドルループトラップを用いて、「何もしない」ループにアクセスする。アイドルループは、アイドル状態すなわち低活動状態にある応用ソフトウエアおよびオペレーティングシステムの動作に特殊なアクセスを行うためのもので、システム内の任意の部分で活動レベルを決定するには慎重な調査が必要である。活動レベルを決定するには、割り込み21Hサービス要求からのフィードバックループを用いる。活動レベルの予測は割り込み21H要求から決定し、これから、この発明はCPUを「休眠させる」(すなわち、遅くするかまたは止める)ためのスライス期間を設定する。追加の機能により、ユーザは割り込み21Hの活動レベルに従ってスライスを変更することができる。
図8は、インテル80386などのシステム用の実際の休眠ハードウエアの実現の略図である。ちなみに、インテル80386CPUはクロックを止めることはできない。アドレス可能バス220およびアドレスバス222からデマルチプレクサ224にCPU入力を与える。デマルチプレクサ224の出力は、SLEEPCSを経てORゲート226および228の入力になる。ORゲート226および228の他の入力は、それぞれ入出力書き込み制御線と入出力読み出し制御線である。これらのゲートの出力は、NORゲート230の出力と共にDフリップフロップ232に入ってポートを復号する。「INTR」は入出力ポート(周辺装置)からNORゲート230に入る割り込み入力で、これにより論理ハードウエアは切り替わって高速クロックに戻る。次に、フリップフロップ232の出力はORゲート226からの出力と共に3状態バッファ234に入る。これにより、バッファ234はポート上にあるものを読み戻すことができる。読み出し/書き込み入出力ポート(周辺装置)は、上に述べたすべてのハードウエアを用いて電力節約「休眠」動作を選択する。出力「SLOW−」は図2から図4の「SLEEP」と同じもので、後で説明するフリップフロップ236に入力する。
休眠クロック発振器238の出力は、Dフリップフロップ240および242により2つの遅いクロックに分割される。図8に示す特定の実現では、16MHzの休眠クロック発振器238は4MHzと8MHzクロックに分割される。ジャンパーJ1により、どちらのクロックを「休眠クロック」にするか選択する。
この特定の実現では、高速クロック発振器244は32MHz発振器である。ただしこの特定の速度はこの発明では必要条件ではない。32MHzの発振器は抵抗器(この実現では33オーム)に直列であり、抵抗器は2個のコンデンサ(10pF)に直列である。この発振の出力をDフリップフロップ246および248のクロックに接続する。
Dフリップフロップ236、246、248は同期したフリップフロップである。Dフリップフロップ236および246は図2から図4の活動的な電力モニタ機能20の簡単化した休眠ハードウエアには示さなかったが、これらのフリップフロップにより、クロック切り替えはクロックの端だけで起こる。図8に示すように、図7のフリップフロップ200と同様に、CPUが休眠する(「FASTEN−」)か目覚めるか(「SLOWEN−」)かに従って、フリップフロップ248の出力はORゲート250かORゲート252を起動する。
ORゲート250および252とANDゲート254は、図7のAND/ORセレクタと機能的に同じものである。これらにより、「SLOWCLK」(遅いクロック、また休眠クロックとも言う)か高速クロック(入力線に32MHzと指定されている)かを選択する。この実現では、ジャンパーJ1に従って遅いクロックは4MHzか8MHzであり、高速クロックは32MHzである。ANDゲート254の出力(図のATUCLK信号)はCPUクロックの速度を設定する。これは、図7のCPUクロックと同じものである。
次に図9は、インテル80286などのシステムの、別の実際の休眠ハードウエア実現の略図を示す。ちなみに、インテル80286はクロックを止めることができる。速度の切り替えにはウエスタン・ディジタルFE3600VLSIを特殊な外部装置PAL256と共に用い、割り込みが来るとCPUを目覚めさせる割り込みゲートを制御する。この発明のソフトウエア電力節約態様により、割り込み受け付けが起こるのを監視する。これは割り込み後の次のP(i)ΔT間隔を起動する。
CPUへの割り込み要求があると、システムは通常の動作に戻る。CPUへの割り込み要求INTRQにより、PALはRESCPU線にWAKE_UP信号を出してFE3001に送り、FE3001はCPUとDMAクロックを使用可能にして、システムを通常の状態に戻す。これは、図7の「INTERRUPT−」と同じものである。状態機械の混乱を避けるために割り込み要求は同期をとっているので、割り込み信号INTDETはサイクルが活動化しているときだけ検出される。RESCPU信号の立ち上がり端によりFE3001は目を覚まし、システム全体を休眠モードから解放する。
386SXで実現する場合は、この実施態様のCPUの動的動作特性機能を実行する外部のハードウエアとソフトウエアループが異なるだけである。割り込みが起こると、ソフトウエアループは割り込みを実行する前に外部ハードウエアを高速クロックに切り替える。電力節約ソフトウエアに戻ると、活動的なモニタ機能は高速クロックサイクルを検出して、高速クロック動作用のハードウエアをリセットする。
OS/2で実現する場合は、優先度の低い背景動作で走るスレッド(THREAD)としてプログラムされた「何もしない」ループを用いる。スレッドを起動すると、割り込みが発生してCPUを元のクロック速度に戻すまでは、CPUは休眠すなわち低速度クロック動作になる。
この発明の好ましい実施態様では割り込みを用いてCPUを目覚めさせたが、システム内のまたはシステムに与えられる任意の周期的活動を用いても同じ機能を実現することができる。
この発明の電力節約態様と温度管理態様との違いは、温度管理態様ではCPUの温度を検出する必要があることである。これはサーミスタまたはその他の直接検出機構を用いて行い、温度の測定値を温度管理サブルーチン132に与える。サーミスタまたはその他の温度検出装置はこの技術でよく知られている。さらに、検出された動作特性は、特定の応用で関心のあるCPUの動的動作特性に従って、他の直接読み取り装置すなわちセンサにより得ることができる。
要約すると、この発明は検出されたCPUの動的動作特性を制御する方法を与えるもので、少なくとも1つのCPUの動的動作特性を検出するステップを含む。この発明は、少なくとも1つの動的動作特性を検出したときのCPUのクロック速度を検出する。この方法と装置は、少なくとも1つのCPUの動的動作特性が前記少なくとも1つのCPUの動的動作特性に関連する所定の設定点に対して所定の関係を確立することにより、設定点割り込み条件が存在することを決定する。割り込み条件が存在する場合は、この発明は、検出したクロック速度に対してクロック速度を制御するステップを含む。他方、設定点割り込み条件が存在しない場合は、この発明は、上記の決定および制御ステップを繰り返すためのステップと回路を含む。
この発明の別の優れた特徴は、電力消費や温度などの検出されたCPUの動的動作特性に従って単一のCPUを制御するだけでなく、所定のコンピュータシステムを支援する多数のCPUを制御できることである。たとえば二重CPUコンピュータシステムでは、この発明は検出されたCPUの動的動作特性の制御を調整して、コンピュータシステムの性能を全体的に所望のレベルに維持する。たとえば、両方のCPUに与えられた計算指向サブルーチン142の決定に従って、一方のCPUは計算指向モードにあり、二重CPUコンピュータの他方のCPUは計算指向ではなく、多くの入出力機能を含む命令を実行しているとする。計算指向CPUの外箱温度の上昇係数によって現在のクロック速度ではCPU温度が上昇することが分かると、この発明は計算指向CPUのクロックを減速させて、温度の設定点に達しないようにする。コンピュータシステムの性能を一定にする必要があるかどうかに従って、この発明は他のCPUのクロック速度を上げて、平均のまたは全体のクロック速度を一定に保ち、コンピュータシステムの性能レベルを均一にする。
この発明の多重CPU実施態様の一態様を例示する図10は、多重CPU開始ステップ282で始まる多重CPU流れ図280を示す。多重CPU開始ステップ282は、まず判断284で1個以上のCPUを制御する必要があるかどうか調べる。1個以上のCPUを制御する場合は、処理の流れは判断286に進む。そうでない場合は、処理の流れは復帰ベクトル288に進んで、CPUは多重CPUサブルーチン282を実行する前に行っていた動作に戻る。
判断286で、多重CPUサブルーチン282は多重CPUを調整して管理するかどうか調べる。調整しない場合は処理の流れは復帰ベクトル288に進む。調整する場合は処理の流れはステップ290に進む。ステップ290は、多重CPUのそれぞれの制御を導くベクトルの役目をする。検出されたCPUの動的動作特性により制御されるCPU毎に、処理の流れは活動的なモニタサブルーチン292に進む。活動的なモニタサブルーチン292は本質的に、活動的な電力モニタ機能20や、温度管理サブルーチン132のモニタ機能などの活動的なモニタ機能や、電力節約と温度管理を調整するモニタ機能や、1つ以上の検出されたCPUの動的動作特性に応じてCPUを制御する他のモニタ機能またはサブルーチンと同じである。
多重CPUサブルーチン282の処理の流れがCPU毎に進むと、判断294で、少なくとも1つの調整されたCPUに設定点割り込み条件があるかどうか調べる。このような設定点関連の割り込み条件がない場合は処理の流れは判断294に戻って、設定点関連の割り込み条件があるかどうかの調査を続ける。このような割り込み条件があると処理の流れは判断296に進んで、影響を受けないCPUのクロック速度を多重CPUサブルーチン282が制御または調整する希望または予定があるか調べる。影響を受けないCPUを調整しない場合は、判断296から処理の流れは復帰ベクトル288に進む。調整する場合は、処理の流れはステップ298に進み、影響を受けないCPUのクロック速度を調整して、コンピュータシステム全体のクロック速度を一定に保つかまたは所望の値を得る。
この発明の好ましい実施態様のいくつかの実現を示して説明したが、当業者は種々の修正や別の実施態様を考えることができる。したがって、この発明は特許請求の範囲によってだけ限定されるものである。
以上の説明に関してさらに以下の項を開示する。
(1) 検出されたCPUの動的動作特性を制御する方法であって、
(a) コンピュータ内の第1クロック速度で動作する、コンピュータ内の中央処理装置(CPU)の少なくとも1つの動的動作特性を検出し、
(b) 前記少なくとも1つの動的動作特性が前記少なくとも1つの動的動作特性に関連する所定の設定点に対して所定の関係を確立することにより、設定点割り込み条件が存在することを決定し、
(c) 前記設定点割り込み条件が存在する場合は、前記クロック速度を前記第1クロック速度に対して制御し、
(d) 前記設定点割り込み条件が存在しない場合は、ステップ(b)と(c)を繰り返す、
ステップを含む、検出されたCPUの動的動作特性を制御する方法。
(2) 検出されたCPUの動的動作特性を制御する前記方法はCPUの動的動作特性を管理する方法を含み、さらに、前記少なくとも1つの動的動作特性を検出する前記ステップは前記CPUの動作温度を検出するステップを含み、またさらに前記決定するステップは割り込み条件の存在を決定するステップを含み、前記動作温度は所定の温度設定点に対して所定の関係を確立する、第1項記載の検出されたCPUの動的動作特性を制御する方法。
(3) 前記少なくとも1つの動的動作特性を検出する前記ステップは前記CPUの動作温度を検出するステップを含み、またさらに前記決定するステップは前記CPUが計算指向状態にある期間中に前記動作温度が所定の温度設定点に近いことを決定するステップを含む、第1項記載の検出されたCPUの動的動作特性を制御する方法。
(4) 前記CPUが計算指向状態にあるかどうかを決定し、前記計算指向状態中に前記割り込み条件が存在するかどうかをさらに決定する、ステップをさらに含む、第1項記載の検出されたCPUの動的動作特性を制御する方法。
(5) (a)前記CPUが計算指向状態にあるかどうかを決定し、(b)前記計算指向状態中に前記少なくとも1つの動的動作特性に前記割り込み条件が存在するかどうかを決定し、(c)前記計算指向状態中に前記割り込み条件が存在する場合は前記割り込み条件を修正する、ステップをさらに含む、第1項記載の検出されたCPUの動的動作特性を制御する方法。
(6) 前記CPUの電力節約が可能かどうかを決定し、前記CPUの電力節約が可能な場合は、前記電力節約から生じる前記割り込み条件および制御信号の存在に従って前記クロック速度を前記保存されたクロック速度に対して制御する、ステップをさらに含む、第1項記載の検出されたCPUの動的動作特性を制御する方法。
(7) 前記CPUが計算指向状態にあるかどうかを決定し、前記計算指向状態中に前記CPUが実行する予定の計算指向命令の量を決定することにより前記計算指向状態の継続時間を決定する、ステップをさらに含む、第1項記載の検出されたCPUの動的動作特性を制御する方法。
(8) 前記CPUが計算指向状態にあるかどうかを決定し、前記計算指向状態中に前記CPUが実行する予定の計算指向命令の量を決定することにより前記計算指向状態の継続時間を決定し、さらに前記計算指向状態中に前記割り込み条件が存在する場合は前記割り込み条件を修正する、ステップをさらに含む、第1項記載の検出されたCPUの動的動作特性を制御する方法。
(9) 前記CPUが計算指向状態にあるかどうかを決定し、前記計算指向状態の継続時間を決定し、さらに前記クロック速度を前記保存されたクロック速度に対して修正して前記計算指向状態中に前記割り込み条件が存在しないようにする、ステップをさらに含む、第1項記載の検出されたCPUの動的動作特性を制御する方法。
(10) 前記CPUの前記少なくとも1つのCPUの動的動作特性を検出する前記ステップは、サーミスタ検出装置を用いて前記CPUの動作温度を検出するステップを含む、第1項記載の検出されたCPUの動的動作特性を制御する方法。
(11) 前記所定の関係と前記所定の設定点を前記コンピュータのメモリ位置内に記憶するステップをさらに含む、第1項記載の検出されたCPUの動的動作特性を制御する方法。
(12) 前記所定の関係と前記所定の設定点を前記コンピュータのレジスタを備えるメモリ位置内に記憶するステップをさらに含む、第1項記載の検出されたCPUの動的動作特性を制御する方法。
(13) 前記所定の関係と前記所定の設定点を前記コンピュータに関連し前記CPU以外の回路を備えるメモリ位置内に記憶するステップをさらに含む、第1項記載の検出されたCPUの動的動作特性を制御する方法。
(14) 第2項記載の方法であって、実時間電力節約を調整し前記CPU内の検出された動的動作特性を制御する方法をさらに含み、前記実時間電力節約法は前記検出されたCPU動的温度特性の前記制御法に関連して動作し、
(e) 前記CPUの電力節約が可能かどうかを決定し、
(f) 前記CPUの電力節約が可能な場合は、前記CPUの現在のクロック速度を決定し、
(g) 前記CPUに与えられている現在のクロック速度を減らすか止めるようハードウエアセレクタに示し、
(h) 電力節約割り込みが起こったかどうか決定し、
(i) 前記電力節約割り込みが起こらなかった場合はこのステップ(i)を繰り返し、前記電力節約割り込みが起こるまで前記CPUは前記電力節約モードに留まり、
(j) 前記電力節約割り込みが起こった場合は、前記決定された現在のクロック速度を前記CPUに回復するよう前記ハードウエアセレクタに示す、
ステップを含む、実時間電力節約を調整し前記CPU内の検出された動的動作特性を制御する方法。
(15) 前記CPUに与えられている現在のクロック速度を減らすか止めるようハードウエアセレクタに示す前記ステップ(g)は、
前記ハードウエアセレクタへの通信線を通して前記ハードウエアセレクタに電力節約のCPU命令をパルスで与え、
前記電力節約のCPU命令に基づいて前記ハードウエアセレクタにより電力節約クロックを選択し、
前記電力節約クロックから前記CPUにパルスを送って前記CPUを電力節約モードにする、
ステップをさらに含む、第14項記載の実時間電力節約を調整し前記CPU内の検出された動的動作特性を制御する方法。
(16) コンピュータ内の中央処理装置(CPU)の電力節約が可能かどうかを決定する前記ステップ(e)は、
前記CPUがすでに前記電力節約モードにあるかどうか調べ、
前記CPUがまだ前記電力節約モードにない場合は、前記CPUが前記電力節約モードになる前に前記CPUを目覚めさせる電力節約割り込みが使用可能かどうか決定し、
電力節約割り込みが使用可能な場合は、前記CPUが前記電力節約モードに入ることを妨げる、
ステップをさらに含む、第14項記載の実時間電力節約を調整し前記CPU内の検出された動的動作特性を制御する方法。
(17) コンピュータ内の中央処理装置(CPU)の電力節約が可能かどうかを決定する前記ステップ(e)は、
前記CPUが要求を受けたかどうかを調べ、
前記CPUが要求を受けた場合は、前記要求は限界入出力かどうかを決定し、
前記要求が限界入出力の場合は前記CPUが前記電力節約モードに入らないようにし、
前記要求が限界入出力でない場合は、前記CPUが前記電力節約モードに入る前に前記CPUを目覚めさせる電力節約割り込みが使用可能かどうか決定し、
前記CPUが前記電力節約モードに入らないようにし、
前記要求は前記入出力装置が作動可能になるまで遅れを持つ入出力からかどうかを決定し、
前記要求が遅れを持つ入出力からでない場合は前記CPUが前記電力節約モードに入らないようにする、
ステップをさらに含む、第14項記載の実時間電力節約を調整し前記CPU内の検出された動的動作特性を制御する方法。
(18) 複数のCPUの検出された動的動作特性を制御する方法であって、
(a) 計算システムの複数の中央処理装置(CPU)の少なくとも1つの動的動作特性を検出し、
(b) 各前記複数のCPUの第1クロック速度を検出し、
(c) 各前記複数のCPU毎に少なくとも1つの設定点割り込み条件が存在することを決定し、1つ以上の前記少なくとも1つの検出された動的動作特性は前記少なくとも1つの動的動作特性の対応する1つに関連する所定の設定点に対する所定の関係を確立し、
(d) 少なくとも1つの割り込み条件が存在する場合は、前記少なくとも1つの設定点割り込み条件に対応する前記複数のCPUの1つの前記第1クロック速度に対して少なくとも前記クロック速度を制御し、
(e) 前記複数のCPUのどれにも割り込み条件が存在しない場合はステップ(b)と(c)を繰り返す、
ステップを含む、複数のCPUの検出された動的動作特性を制御する方法。
(19) 前記割り込み条件に対応する前記CPU以外の少なくとも1つの前記複数のCPUを制御して、前記計算システムが前記複数のCPUの間でほぼ一定の平均クロック速度を保持するようにするステップをさらに含む、第18項記載の複数のCPUの検出された動的動作特性を制御する方法。
(20) 検出されたCPUの動的動作特性を制御する装置であって、
CPU活動検出器と、
CPUクロックと、
少なくとも第1パルスを第1速度で、また第2パルスを第2速度で与える少なくとも1個の発振器と、
前記第1パルスと前記第2パルスを選択的に制御し選択するハードウエアセレクタであって、前記ハードウエアセレクタはさらに前記第1パルスと前記第2パルスの前記選択された方を前記CPUクロックに送り、また少なくとも1つの検出されたCPUの動的動作特性が前記検出されたCPUの動的動作特性に関連する所定の設定点に対して所定の関係を確立することにより存在する、設定点割り込み条件に応じる、ハードウエアセレクタと、
検出されたCPUの活動を前記CPU活動検出器から受け、さらに前記ハードウエアセレクタに送るパルスを発生して前記ハードウエアセレクタがどのパルスを選択すべきかを指定する、CPU休眠管理装置と、
を備える、検出されたCPUの動的動作特性を制御する装置。
(21) 検出されたCPUの動的動作特性を制御する装置であって、
(a) コンピュータ内の第1クロック速度で動作する中央処理装置(CPU)の少なくとも1つの動的動作特性を検出する検出回路と、
(b) 前記少なくとも1つの動的動作特性が前記少なくとも1つの動的動作特性に関連する所定の設定点に対して所定の関係を確立することにより、設定点割り込み条件が存在することを決定する、前記CPU上で動作する設定点命令と、
(c) 前記設定点割り込み条件が存在する場合は、前記クロック速度を前記第1クロック速度に対して制御する制御命令と、
(d) 前記設定点割り込み条件が存在しない場合は、ステップ(b)と(c)を繰り返す繰り返し命令と、
を備える、検出されたCPUの動的動作特性を制御する装置。
(22) CPUの動的動作特性を管理する管理命令をさらに含み、また前記温度検出回路はさらに、前記CPUの動作温度を含む前記少なくとも1つの動的動作特性を検出する動的温度検出回路を備え、またさらに前記設定点命令は割り込み条件の存在を決定する命令をさらに含み、前記動作温度は所定の温度設定点に対して所定の関係を確立する、第21項記載の検出されたCPUの動的動作特性を制御する装置。
(23) 前記検出回路は前記CPUの動作温度を検出する回路をさらに備え、またさらに前記設定点命令は前記CPUが計算指向状態にある期間中に前記動作温度が所定の温度設定点に近いことを決定する命令をさらに含む、第21項記載の検出されたCPUの動的動作特性を制御する装置。
(24) 前記CPUが計算指向状態にあるかどうかを決定し、前記計算指向状態中に前記割り込み条件が存在するかどうかをさらに決定する、計算指向決定命令をさらに含む、第21項記載の検出されたCPUの動的動作特性を制御する装置。
(25) 前記CPUが計算指向状態にあるかどうかを決定する計算指向決定命令をさらに含み、前記設定点命令は前記計算指向状態中に前記少なくとも1つの動的動作特性に前記割り込み条件が存在するかどうかを決定する命令をさらに含み、前記計算指向状態中に前記割り込み条件が存在する場合は前記割り込み条件を修正する修正命令をさらに含む、第21項記載の検出されたCPUの動的動作特性を制御する装置。
(26) 前記CPUの電力節約が可能かどうかを決定し、前記CPUの電力節約が可能な場合は、前記電力節約から生じる前記割り込み条件の存在と制御信号に従って前記クロック速度を前記保存されたクロック速度に対して制御する、電力節約命令をさらに含む、第21項記載の検出されたCPUの動的動作特性を制御する装置。
(27) 前記CPUが計算指向状態にあるかどうかを決定し、前記計算指向状態中に前記CPUが実行する予定の計算指向命令の量を決定することにより前記計算指向状態の継続時間を決定する、計算指向決定命令をさらに含む、第21項記載の検出されたCPUの動的動作特性を制御する装置。
(28) 前記CPUが計算指向状態にあるかどうかを決定し、前記計算指向状態中に前記CPUが実行する予定の計算指向命令の量を決定することにより前記計算指向状態の継続時間を決定し、さらに前記計算指向状態中に前記割り込み条件が存在する場合は前記割り込み条件を修正する、計算指向決定命令をさらに含む、第21項記載の検出されたCPUの動的動作特性を制御する装置。
(29) 前記CPUが計算指向状態にあるかどうかを決定し、前記計算指向状態の継続時間を決定し、さらに前記クロック速度を前記保存されたクロック速度に対して修正して前記計算指向状態中に前記割り込み条件が存在しないようにする、計算指向決定命令をさらに含む、第21項記載の検出されたCPUの動的動作特性を制御する装置。
(30) 前記検出回路はサーミスタ検出装置を備える、第21項記載の検出されたCPUの動的動作特性を制御する装置。
(31) 前記所定の関係と前記所定の設定点を前記コンピュータのメモリ位置内に記憶するメモリ回路をさらに備える、第21項記載の検出されたCPUの動的動作特性を制御する装置。
(32) 検出されたCPUの動的動作特性を制御する方法と装置(130)であって、CPUが第1クロック速度で動作中に(134)少なくとも1つの動的CPU動作特性を検出する(140)方法と回路を含む。装置(130)は、少なくとも1つの検出されたCPUの動的動作特性が前記少なくとも1つの動的動作特性に関連する所定の設定点に対して所定の関係を確立する(140)ことにより、設定点割り込み条件が存在するかどうかを決定する(140)。設定点割り込み条件が存在する場合は、回路と命令は第1クロック速度に対してクロック速度を制御する(144)。設定点割り込み条件が存在しない場合は、回路と命令は割り込み条件を決定してクロック速度を制御する上記ステップを繰り返す。またこの方法と装置(130)はCPUが計算指向状態にあるかどうかを決定する(142)。この動作は、実時間の電力節約装置および方法(20)と共に、この発明の特に優れた機能である。
この発明の好ましい実施態様の自己同調状態を述べる流れ図。 この発明の実施態様で用いる活動的な電力節約モニタを説明する流れ図。 この発明の実施態様で用いる活動的な電力節約モニタを説明する流れ図。 この発明の実施態様で用いる活動的な電力節約モニタを説明する流れ図。 この発明が用いる温度管理法の簡単化した流れ図。 この発明が用いる計算指向決定ステップの流れ図。 この発明の実施態様が用いる、活動的な電力節約に関連するハードウエアを表す簡単化した略図。 この発明の一実施態様の休眠ハードウエアの略図。 この発明の別の実施態様の休眠ハードウエアの略図。 この発明の別の実施態様の多重CPUの動的動作特性の制御機能の流れ図。
符号の説明
130 CPUの動的動作特性の制御装置
134 現在のクロック速度の決定
140 設定点割り込み条件の存在の決定
142 CPUが計算指向状態にあることの決定
144 休眠クロック速度の制御

Claims (17)

  1. 検出されたプロセッサ動作特性を制御する方法であって、
    (a) 第1のクロック速度で動作するプロセッサの少なくとも1つの動的動作特性を検出し、
    (b) 前記少なくとも1つの動的動作特性に関連する所定の設定点に対して所定の関係を前記少なくとも1つの動的動作特性が確立することにより、設定点割り込み条件が存在することを決定し、
    (c) 前記設定点割り込み条件が存在する場合は、前記第1のクロック速度を変更し、
    (d) 前記設定点割り込み条件が存在しない場合は、前記プロセッサが計算束縛状態にあるかを決定する
    ステップを含む、方法。
  2. 請求項1に記載の方法において、前記プロセッサが計算束縛状態にある場合は、前記計算束縛状態中に前記割り込み条件が存在するかをさらに決定する、方法。
  3. 請求項1に記載の方法において、前記プロセッサが計算束縛状態にある場合は、前記少なくとも1つの動的動作特性が前記計算束縛状態中の前記割り込み条件内に存在するかを決定し、前記計算束縛状態中に前記割り込み条件が存在する場合は、前記割り込み条件を変更する、方法。
  4. 請求項1に記載の方法において、前記プロセッサが計算束縛状態にある場合は、前記計算束縛状態中に前記プロセッサが実行すべき計算束縛命令の量を決定することにより前記計算束縛状態の期間を決定する、方法。
  5. 請求項1に記載の方法において、前記プロセッサが計算束縛状態にある場合は、前記計算束縛状態中に前記プロセッサが実行すべき計算束縛命令の量を決定することにより前記計算束縛状態の期間を決定し、前記計算束縛状態中に前記割り込み条件が存在する場合は前記割り込み条件を変更する、方法。
  6. 請求項1に記載の方法において、前記プロセッサが計算束縛状態にある場合は、前記計算束縛状態の期間を決定し、さらに前記計算束縛状態中の前記割り込み条件の存在を避けるために前記第1のクロック速度を変更する、方法。
  7. 検出されたプロセッサ動作特性を制御する装置であって、
    (a) 第1のクロック速度で動作するプロセッサの少なくとも1つの動的動作特性を検出する検出回路と、
    (b) 前記少なくとも1つの動的動作特性に関連する所定の設定点に対して所定の関係を前記少なくとも1つの動的動作特性が確立することにより、設定点割り込み条件が存在することを決定するために前記プロセッサ上で動作する設定点命令と、
    (c) 前記設定点割り込み条件が存在する場合に、前記第1のクロック速度を変更するための制御命令と、
    (d) 前記プロセッサが計算束縛状態にある場合に、前記プロセッサが計算束縛状態にあるかを決定するための計算束縛決定命令と
    を含む、装置。
  8. 請求項7に記載の装置において、前記プロセッサが計算束縛状態にある場合に、前記計算束縛状態中に前記割り込み条件が存在するかを前記計算束縛決定命令がさらに決定する、装置。
  9. 請求項7に記載の装置において、前記設定点命令は、前記少なくとも1つの動的動作特性が前記計算束縛状態中の前記割り込み条件内に存在するかを決定する命令をさらに含み、前記計算束縛状態中に前記割り込み条件が存在する場合に前記割り込み条件を変更するための変更命令をさらに含む、装置。
  10. 請求項7に記載の装置において、前記プロセッサが計算束縛状態にある場合に、前記計算束縛状態中に前記プロセッサが実行すべき計算束縛命令の量を決定することにより前記計算束縛状態の期間を決定する、装置。
  11. 請求項7に記載の装置において、前記計算束縛決定命令は、前記計算束縛状態中に前記プロセッサが実行すべき計算束縛命令の量を決定することにより前記計算束縛状態の期間をさらに決定し、さらに、前記計算束縛状態中に前記割り込み条件が存在する場合に前記割り込み条件を変更する、装置。
  12. 請求項7に記載の装置において、前記プロセッサが計算束縛状態にある場合に、前記計算束縛決定命令は、前記計算束縛状態の期間をさらに決定し、さらに、前記計算束縛状態中の前記割り込み条件の存在を避けるために前記第1のクロック速度を変更する、装置。
  13. 請求項1〜6のいずれかに記載の方法において、前記プロセッサは中央処理ユニット(CPU)である、方法。
  14. 請求項7〜12のいずれかに記載の装置において、前記プロセッサは中央処理ユニット(CPU)である、装置。
  15. 請求項1〜6のいずれかに記載の方法において、前記プロセッサは計算装置内にある、方法。
  16. 請求項1〜6のいずれかに記載の方法において、前記ステップ(a)〜(d)は計算装置内で発生する、方法。
  17. 請求項7〜12のいずれかに記載の装置を含むシステム。
JP2007027444A 1996-01-17 2007-02-07 Cpuの動作特性に応じてコンピュータの動作を制御する方法と装置 Pending JP2007128556A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US1013696P 1996-01-17 1996-01-17

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP9006718A Division JPH09305569A (ja) 1996-01-17 1997-01-17 Cpuの動作特性に応じてコンピュータの動作を制御する方法と装置

Publications (1)

Publication Number Publication Date
JP2007128556A true JP2007128556A (ja) 2007-05-24

Family

ID=21744093

Family Applications (2)

Application Number Title Priority Date Filing Date
JP9006718A Pending JPH09305569A (ja) 1996-01-17 1997-01-17 Cpuの動作特性に応じてコンピュータの動作を制御する方法と装置
JP2007027444A Pending JP2007128556A (ja) 1996-01-17 2007-02-07 Cpuの動作特性に応じてコンピュータの動作を制御する方法と装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP9006718A Pending JPH09305569A (ja) 1996-01-17 1997-01-17 Cpuの動作特性に応じてコンピュータの動作を制御する方法と装置

Country Status (6)

Country Link
US (1) US5996084A (ja)
EP (1) EP0785498A3 (ja)
JP (2) JPH09305569A (ja)
KR (1) KR100468561B1 (ja)
CN (1) CN1192298C (ja)
TW (1) TW454117B (ja)

Families Citing this family (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5719800A (en) * 1995-06-30 1998-02-17 Intel Corporation Performance throttling to reduce IC power consumption
US6411156B1 (en) 1997-06-20 2002-06-25 Intel Corporation Employing transistor body bias in controlling chip parameters
JPH1139868A (ja) * 1997-07-18 1999-02-12 Matsushita Electric Ind Co Ltd 半導体集積回路システム、半導体集積回路、及び半導体集積回路システムの駆動方法
US6065122A (en) * 1998-03-13 2000-05-16 Compaq Computer Corporation Smart battery power management in a computer system
US6112164A (en) * 1998-03-31 2000-08-29 Compaq Computer Corporation Computer system thermal management
JP3573957B2 (ja) * 1998-05-20 2004-10-06 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ内のプロセッサの動作速度制御方法及びコンピュータ
US6172611B1 (en) * 1998-10-19 2001-01-09 Telcom Semiconductor, Inc. Independent hardware thermal sensing and monitoring
US6415388B1 (en) * 1998-10-30 2002-07-02 Intel Corporation Method and apparatus for power throttling in a microprocessor using a closed loop feedback system
US6298448B1 (en) * 1998-12-21 2001-10-02 Siemens Information And Communication Networks, Inc. Apparatus and method for automatic CPU speed control based on application-specific criteria
US6484265B2 (en) * 1998-12-30 2002-11-19 Intel Corporation Software control of transistor body bias in controlling chip parameters
US6182232B1 (en) * 1999-01-29 2001-01-30 Micron Electronics, Inc. Power and thermal management based on a power supply output
US6219795B1 (en) 1999-01-29 2001-04-17 Micron Electronics, Inc. Thermal management apparatus based on a power supply output
US6418535B1 (en) * 1999-04-28 2002-07-09 International Business Machines Corporation Bi-level power saver method for portable or laptop computer
US6624816B1 (en) * 1999-09-10 2003-09-23 Intel Corporation Method and apparatus for scalable image processing
US7050959B1 (en) * 1999-12-23 2006-05-23 Intel Corporation Dynamic thermal management for integrated circuits
US7100061B2 (en) 2000-01-18 2006-08-29 Transmeta Corporation Adaptive power control
US6574739B1 (en) * 2000-04-14 2003-06-03 Compal Electronics, Inc. Dynamic power saving by monitoring CPU utilization
US6968469B1 (en) 2000-06-16 2005-11-22 Transmeta Corporation System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored
US7006943B1 (en) * 2000-09-12 2006-02-28 Advanced Micro Devices, Inc. Method and apparatus for using an on-board temperature sensor on an integrated circuit
US6718474B1 (en) * 2000-09-21 2004-04-06 Stratus Technologies Bermuda Ltd. Methods and apparatus for clock management based on environmental conditions
US7263567B1 (en) * 2000-09-25 2007-08-28 Intel Corporation Method and apparatus for lowering the die temperature of a microprocessor and maintaining the temperature below the die burn out
US6910139B2 (en) * 2000-10-02 2005-06-21 Fujitsu Limited Software processing apparatus with a switching processing unit for displaying animation images in an environment operating base on type of power supply
US7260731B1 (en) 2000-10-23 2007-08-21 Transmeta Corporation Saving power when in or transitioning to a static mode of a processor
US6715089B2 (en) 2001-01-22 2004-03-30 Ati International Srl Reducing power consumption by estimating engine load and reducing engine clock speed
WO2003014902A1 (en) * 2001-08-10 2003-02-20 Shakti Systems, Inc. Distributed power supply architecture
US20030056123A1 (en) * 2001-09-19 2003-03-20 Hsieh Kuang Hsun Power management method for hand-held information processing apparatus
US7111178B2 (en) * 2001-09-28 2006-09-19 Intel Corporation Method and apparatus for adjusting the voltage and frequency to minimize power dissipation in a multiprocessor system
US7111179B1 (en) 2001-10-11 2006-09-19 In-Hand Electronics, Inc. Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
US20030074590A1 (en) * 2001-10-12 2003-04-17 Fogle Steven L. Computer system with improved entry into powersave and lock modes and method of use therefor
AU2002343624A1 (en) * 2001-11-05 2003-05-19 Shakti Systems, Inc. Monolithic battery charging device
WO2003041249A1 (en) * 2001-11-05 2003-05-15 Shakti Systems, Inc. Dc-dc converter with resonant gate drive
US6785831B2 (en) * 2001-12-06 2004-08-31 Matsushita Electric Industrial Co., Ltd. Power consumption management apparatus
US6957352B2 (en) * 2002-03-15 2005-10-18 Intel Corporation Processor temperature control interface
US7941675B2 (en) * 2002-12-31 2011-05-10 Burr James B Adaptive power control
US7336090B1 (en) 2002-04-16 2008-02-26 Transmeta Corporation Frequency specific closed loop feedback control of integrated circuits
US7180322B1 (en) 2002-04-16 2007-02-20 Transmeta Corporation Closed loop feedback control of integrated circuits
TWI262380B (en) * 2002-04-25 2006-09-21 Quanta Comp Inc Dynamic adjustment method for power consumption of computer system
US6685334B2 (en) 2002-04-30 2004-02-03 G-5 Electronics System and method of power management for a solar powered device
US6970698B2 (en) * 2002-07-23 2005-11-29 Sbc Technology Resources, Inc. System and method for updating data in remote devices
US7243243B2 (en) * 2002-08-29 2007-07-10 Intel Corporatio Apparatus and method for measuring and controlling power consumption of a computer system
TW575803B (en) * 2002-10-17 2004-02-11 Uniwill Comp Corp The method of managing portable computer power cord
US7886164B1 (en) 2002-11-14 2011-02-08 Nvidia Corporation Processor temperature adjustment system and method
US7882369B1 (en) 2002-11-14 2011-02-01 Nvidia Corporation Processor performance adjustment system and method
US7849332B1 (en) 2002-11-14 2010-12-07 Nvidia Corporation Processor voltage adjustment system and method
US7205758B1 (en) 2004-02-02 2007-04-17 Transmeta Corporation Systems and methods for adjusting threshold voltage
US7786756B1 (en) 2002-12-31 2010-08-31 Vjekoslav Svilan Method and system for latchup suppression
US7228242B2 (en) 2002-12-31 2007-06-05 Transmeta Corporation Adaptive power control based on pre package characterization of integrated circuits
US7949864B1 (en) 2002-12-31 2011-05-24 Vjekoslav Svilan Balanced adaptive body bias control
US7953990B2 (en) * 2002-12-31 2011-05-31 Stewart Thomas E Adaptive power control based on post package characterization of integrated circuits
US7642835B1 (en) 2003-11-12 2010-01-05 Robert Fu System for substrate potential regulation during power-up in integrated circuits
TW200416522A (en) 2003-02-25 2004-09-01 Asustek Comp Inc Portable computer carrying desktop computer processor and power management method thereof
US20040215912A1 (en) * 2003-04-24 2004-10-28 George Vergis Method and apparatus to establish, report and adjust system memory usage
KR101189346B1 (ko) 2003-05-07 2012-10-09 모사이드 테크놀로지스, 인코포레이티드 파워 아일랜드를 사용한 집적 회로의 파워 관리
JP4033066B2 (ja) * 2003-05-07 2008-01-16 ソニー株式会社 周波数制御装置、情報処理装置、周波数制御方法及びプログラム
KR100663408B1 (ko) * 2003-07-14 2007-01-02 엘지전자 주식회사 씨피유 속도 트랜지션 제어장치 및 방법
TWI220700B (en) * 2003-08-20 2004-09-01 Delta Electronics Inc Programmable logic controller with an auxiliary processing unit
US7141953B2 (en) * 2003-09-04 2006-11-28 Intel Corporation Methods and apparatus for optimal voltage and frequency control of thermally limited systems
US20050068831A1 (en) * 2003-09-30 2005-03-31 Johnson Brian P. Method and apparatus to employ a memory module information file
US7134029B2 (en) * 2003-11-06 2006-11-07 International Business Machines Corporation Computer-component power-consumption monitoring and control
US7240225B2 (en) * 2003-11-10 2007-07-03 Dell Products L.P. System and method for throttling power in one or more information handling systems
FR2862773B1 (fr) * 2003-11-25 2006-04-14 Giga Byte Tech Co Ltd Dispositif et procede pour ajuster automatiquement la frequence de fonctionnement de l'unite centrale d'un ordinateur
US7251302B2 (en) * 2003-12-05 2007-07-31 Dell Products L.P. Method, system and apparatus for quantifying the contribution of inter-symbol interference jitter on timing skew budget
US20050125797A1 (en) * 2003-12-09 2005-06-09 International Business Machines Corporation Resource management for a system-on-chip (SoC)
US7649402B1 (en) 2003-12-23 2010-01-19 Tien-Min Chen Feedback-controlled body-bias voltage source
US7129771B1 (en) 2003-12-23 2006-10-31 Transmeta Corporation Servo loop for well bias voltage source
US7692477B1 (en) 2003-12-23 2010-04-06 Tien-Min Chen Precise control component for a substrate potential regulation circuit
US7012461B1 (en) 2003-12-23 2006-03-14 Transmeta Corporation Stabilization component for a substrate potential regulation circuit
CN1332288C (zh) * 2004-01-09 2007-08-15 佛山市顺德区顺达电脑厂有限公司 电脑装置的中央处理器时脉速度实时调整方法
US7816742B1 (en) 2004-09-30 2010-10-19 Koniaris Kleanthes G Systems and methods for integrated circuits comprising multiple body biasing domains
US7859062B1 (en) * 2004-02-02 2010-12-28 Koniaris Kleanthes G Systems and methods for integrated circuits comprising multiple body biasing domains
US7529947B2 (en) * 2004-03-31 2009-05-05 Marvell International Ltd. Determining power consumption of an application
US7562233B1 (en) 2004-06-22 2009-07-14 Transmeta Corporation Adaptive control of operating and body bias voltages
US7774625B1 (en) 2004-06-22 2010-08-10 Eric Chien-Li Sheng Adaptive voltage control by accessing information stored within and specific to a microprocessor
US7347621B2 (en) 2004-07-16 2008-03-25 International Business Machines Corporation Method and system for real-time estimation and prediction of the thermal state of a microprocessor unit
US7711966B2 (en) * 2004-08-31 2010-05-04 Qualcomm Incorporated Dynamic clock frequency adjustment based on processor load
US7308571B2 (en) * 2004-10-06 2007-12-11 Intel Corporation Overriding processor configuration settings
US7603571B2 (en) * 2004-10-08 2009-10-13 Dell Products L.P. System and method for regulating the power consumption of a computer system
WO2006045806A2 (de) * 2004-10-25 2006-05-04 Robert Bosch Gmbh Verfahren und vorrichtung zur steuerung eines rechnersystems
WO2006045807A2 (de) * 2004-10-25 2006-05-04 Robert Bosch Gmbh Datenverarbeitungssystem mit variabler taktrate
US7386737B2 (en) * 2004-11-02 2008-06-10 Intel Corporation Method and apparatus to control temperature of processor
US7313711B2 (en) * 2004-12-03 2007-12-25 Agere Systems Inc. Adaptive power management in portable entertainment device
US7464277B2 (en) * 2005-01-28 2008-12-09 Dell Products, L.P. Microprocessor performance mode control utilizing sensed temperature as an indication of microprocessor utilization
US7739531B1 (en) 2005-03-04 2010-06-15 Nvidia Corporation Dynamic voltage scaling
JP4492394B2 (ja) * 2005-03-08 2010-06-30 株式会社デンソー マイクロコンピュータ
TW200638267A (en) * 2005-04-22 2006-11-01 Chi Mei Comm Systems Inc Method for adjusting CPU speed of an electronic appliance
US7464278B2 (en) * 2005-09-12 2008-12-09 Intel Corporation Combining power prediction and optimal control approaches for performance optimization in thermally limited designs
CN100349098C (zh) * 2005-11-28 2007-11-14 北京中星微电子有限公司 基于任务的动态调节cpu工作频率的方法及系统
CN100435109C (zh) * 2006-12-19 2008-11-19 威盛电子股份有限公司 数字式温度感测系统
US9134782B2 (en) 2007-05-07 2015-09-15 Nvidia Corporation Maintaining optimum voltage supply to match performance of an integrated circuit
US8725488B2 (en) * 2007-07-26 2014-05-13 Qualcomm Incorporated Method and apparatus for adaptive voltage scaling based on instruction usage
US7970566B2 (en) * 2007-11-27 2011-06-28 Microsoft Corporation Correlating power consumption with CPU activity
US8370663B2 (en) 2008-02-11 2013-02-05 Nvidia Corporation Power management with dynamic frequency adjustments
WO2009110884A1 (en) * 2008-03-03 2009-09-11 Hewlett-Packard Development Company, L.P. Software-based power-capping
US20090235108A1 (en) * 2008-03-11 2009-09-17 Gold Spencer M Automatic processor overclocking
US8525840B2 (en) * 2008-05-15 2013-09-03 Apple Inc. Thermal management of graphics processing units
US8037325B1 (en) 2008-12-09 2011-10-11 Google Inc. System and method for determining power consumption
US8190939B2 (en) * 2009-06-26 2012-05-29 Microsoft Corporation Reducing power consumption of computing devices by forecasting computing performance needs
TWI416313B (zh) * 2009-07-31 2013-11-21 Via Tech Inc 可省電之電腦系統及其省電方法、可省電之電源管理單元
WO2011022018A1 (en) * 2009-08-20 2011-02-24 Hewlett-Packard Development Company, L.P. Cooling device control
US9256265B2 (en) 2009-12-30 2016-02-09 Nvidia Corporation Method and system for artificially and dynamically limiting the framerate of a graphics processing unit
US9830889B2 (en) 2009-12-31 2017-11-28 Nvidia Corporation Methods and system for artifically and dynamically limiting the display resolution of an application
CN102129392B (zh) * 2010-01-18 2013-09-04 扬智科技股份有限公司 用来进行适应性频率调整的方法以及相关的电子装置
US8839006B2 (en) 2010-05-28 2014-09-16 Nvidia Corporation Power consumption reduction systems and methods
US8732495B2 (en) 2010-08-31 2014-05-20 Integrated Device Technology, Inc. Systems, apparatuses and methods for dynamic voltage and frequency control of components used in a computer system
US8984305B2 (en) * 2010-12-21 2015-03-17 Intel Corporation Method and apparatus to configure thermal design power in a microprocessor
TWI582565B (zh) * 2010-12-21 2017-05-11 英特爾股份有限公司 用以配置微處理器中之熱設計功率的方法和裝置
US9043457B2 (en) * 2012-10-25 2015-05-26 Qualcomm Incorporated Dynamic adjustment of an interrupt latency threshold and a resource supporting a processor in a portable computing device
US9529397B2 (en) 2013-03-01 2016-12-27 Qualcomm Incorporated Thermal management of an electronic device based on sensation model
CN104216812B (zh) * 2014-08-29 2017-04-05 杭州华为数字技术有限公司 一种性能监控单元多事件统计的方法和装置
KR102329473B1 (ko) 2014-11-24 2021-11-19 삼성전자주식회사 프로세서와 이를 포함하는 반도체 장치
KR102528692B1 (ko) * 2016-01-04 2023-05-08 한국전자통신연구원 중앙처리장치의 동적 주파수 조절 장치 및 그 방법
US11157329B2 (en) * 2019-07-26 2021-10-26 Intel Corporation Technology for managing per-core performance states
CN110955323A (zh) * 2019-11-27 2020-04-03 出门问问信息科技有限公司 一种智能手表设备
WO2021104267A1 (zh) 2019-11-27 2021-06-03 出门问问信息科技有限公司 一种数据传输方法、装置和智能手表设备
US11687116B2 (en) 2020-09-02 2023-06-27 International Business Machines Corporation Intelligent user equipment central processing unit core clock adjustment
KR20220102286A (ko) * 2021-01-13 2022-07-20 삼성전자주식회사 전자 장치 및 전자 장치에서 사용자 활동 기반 발열 제어 방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218704A (en) * 1989-10-30 1993-06-08 Texas Instruments Real-time power conservation for portable computers
JPH05297993A (ja) * 1992-04-16 1993-11-12 Dia Semikon Syst Kk マイクロプロセッサの駆動制御装置
ES2113498T3 (es) * 1992-12-28 1998-05-01 Advanced Micro Devices Inc Circuito de microprocesador con dos señales de temporizacion.
US5721837A (en) * 1993-10-28 1998-02-24 Elonex I.P. Holdings, Ltd. Micro-personal digital assistant including a temperature managed CPU
US5422832A (en) * 1993-12-22 1995-06-06 Advanced Micro Devices Variable thermal sensor
US5422806A (en) * 1994-03-15 1995-06-06 Acc Microelectronics Corporation Temperature control for a variable frequency CPU
US5535401A (en) * 1994-04-05 1996-07-09 International Business Machines Corporation Method and system of power and thermal management for a data processing system using object-oriented program design
US5798667A (en) * 1994-05-16 1998-08-25 At&T Global Information Solutions Company Method and apparatus for regulation of power dissipation
TW282525B (ja) * 1994-06-17 1996-08-01 Intel Corp
US5752011A (en) * 1994-06-20 1998-05-12 Thomas; C. Douglas Method and system for controlling a processor's clock frequency in accordance with the processor's temperature
US5490059A (en) * 1994-09-02 1996-02-06 Advanced Micro Devices, Inc. Heuristic clock speed optimizing mechanism and computer system employing the same
US5451892A (en) * 1994-10-03 1995-09-19 Advanced Micro Devices Clock control technique and system for a microprocessor including a thermal sensor
US5572719A (en) * 1994-11-22 1996-11-05 Advanced Micro Devices Clock control system for microprocessors including a delay sensing circuit
US5623647A (en) * 1995-03-07 1997-04-22 Intel Corporation Application specific clock throttling
US5713030A (en) * 1995-10-11 1998-01-27 Vlsi Technology, Inc. Thermal management device and method for a computer processor
US5630110A (en) * 1996-03-01 1997-05-13 Samsung Electronics Co., Ltd. Method and apparatus for enhancing performance of a processor
US5826083A (en) * 1996-06-20 1998-10-20 Intel Corporation CPU cycle consumption self-regulating method and apparatus
US5774704A (en) * 1996-07-29 1998-06-30 Silicon Graphics, Inc. Apparatus and method for dynamic central processing unit clock adjustment
US5832284A (en) * 1996-12-23 1998-11-03 International Business Machines Corporation Self regulating temperature/performance/voltage scheme for micros (X86)

Also Published As

Publication number Publication date
CN1168501A (zh) 1997-12-24
KR970059886A (ko) 1997-08-12
EP0785498A3 (en) 1999-01-07
KR100468561B1 (ko) 2005-06-21
CN1192298C (zh) 2005-03-09
JPH09305569A (ja) 1997-11-28
TW454117B (en) 2001-09-11
EP0785498A2 (en) 1997-07-23
US5996084A (en) 1999-11-30

Similar Documents

Publication Publication Date Title
JP2007128556A (ja) Cpuの動作特性に応じてコンピュータの動作を制御する方法と装置
US7389438B2 (en) Method for detecting temperature and activity associated with a processor and using the results for controlling power dissipation associated with a processor
US5218704A (en) Real-time power conservation for portable computers
US7076672B2 (en) Method and apparatus for performance effective power throttling
US6848054B1 (en) Real-time computer thermal management and power conservation
EP1416355B1 (en) Improvements in or relating to central processing units

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080108

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080408

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080411

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080508

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080513

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080609

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080612

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080909