JP4897796B2 - アイドル要素予測回路およびアンチスラッシングロジック - Google Patents

アイドル要素予測回路およびアンチスラッシングロジック Download PDF

Info

Publication number
JP4897796B2
JP4897796B2 JP2008511264A JP2008511264A JP4897796B2 JP 4897796 B2 JP4897796 B2 JP 4897796B2 JP 2008511264 A JP2008511264 A JP 2008511264A JP 2008511264 A JP2008511264 A JP 2008511264A JP 4897796 B2 JP4897796 B2 JP 4897796B2
Authority
JP
Japan
Prior art keywords
threshold
functional unit
call
time
last
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.)
Active
Application number
JP2008511264A
Other languages
English (en)
Other versions
JP2008541274A (ja
Inventor
ドックサー、ケネス・アラン
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2008541274A publication Critical patent/JP2008541274A/ja
Application granted granted Critical
Publication of JP4897796B2 publication Critical patent/JP4897796B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)
  • Facsimiles In General (AREA)

Description

処理機能がフルな処理能力よりも少ない能力を必要とするとき、本教示は、減少した電力消費とともに複雑な処理ロジックを効率的に提供する技術およびプロセッサアーキテクチャに関する。
背景
多くのデバイスは、プログラム命令にしたがってデータ処理機能を実行するために複雑な配列のロジックをともなう、マイクロプロセッサおよびデジタル信号プロセッサのような、組み込まれたプロセッサを利用する。例えば、バッテリ電力供給を有するポータブルデバイス中のこれらのプロセッサの多くのアプリケーションは、電力消費の注意深い制御を保証して、通常、バッテリ電力供給において充電の寿命を延ばす。プロセッサの多くの機能またはアプリケーションは、プロセッサデバイスのフルな処理能力を必要としないか、または非常に限られた時間に対してのみフルな処理能力を必要とする。しかしながら、絶えずフルに電力が供給されているとしても、使用されないロジックが、電力を不必要に消費している。
相補型金属酸化膜半導体(CMOS)ロジックゲートは、回路がアクティブにスイッチするときにダイナミックな電力を消費するだけであるので、相補型金属酸化膜半導体(CMOS)ロジックゲートは通常、アイドル要素により消費される電力を最小化することに大変すぐれている。しかしながら、相補型金属酸化膜半導体(CMOS)ロジックゲートはまた、それらの電力消費に対して、スタティックまたはリーク構成部品を有している。一般に、ダイナミック構成部品は主としてスタティック構成部品より重要である。しかしながら、より新しいディープサブミクロン技術において、スタティック構成部品は、消費電力全体に対して著しい量の一因となり始めている。効率的な電力であるために、最新のデバイスは、損失されるスタティック電力の量をアクティブに制限する必要があるかもしれない。
電力低減を成し遂げるために、セル電話機のようなバッテリ駆動の組み込み型アプリケーションに対して、ロジックの使用されない部分の電源を切り、それによりリーク電力損失を取り除く試みが実行されている。試みのいくつかは、ソフトウェア制御に依拠して、使用されないロジック構成部品の電源を切る。この目的のために、プログラム中の命令は、あるプロセッサ要素を必要とするときにそれらの電源を入れ、必要でないときに電源を切る。これは省電力化を結果として生じるが、ソフトウェアに関して付加的なオーバーヘッドを課して、さまざまなプロセッサ機能をアクティブに制御することをプログラマに要求する。
所定の長さの時間後に、自動システムを使用して、使用されない構成部品をシャットダウンしてもよい。しかしながら、ロジック要素の時間ベースの電源切断に、潜在的に問題がある場合、問題が生じる。構成部品を起動すること、または電源を投入することは、付加的な電力消費を結果として生じ得る。いくつかのケースにおいて、ある短い時間の間要素を単に維持することよりも、要素に電源を投入することの方が多くかかる。また、構成部品に電源を再投入するのに時間がかかる。構成部品を再始動する際に起きる遅延または待ち時間は、プロセッサの機能停止を結果として生じるかもしれず、それは性能を低下させる。
それ故に、短い時間後に電源投入するだけのために、繰り返し構成部品の電源を確実に切らないことが望まれる。繰り返される電源切断と電源投入は、“スラッシング”と呼ばれる。効果的に、電力消費を減少させ、さらに必要以上のスラッシングを回避するために、プロセッサの要素に対して電力を選択的に制御する技術に対する必要性が存在する。
概要
1つの観点において、本開示の教示は、プログラム可能なプロセッサの電力消費を減少させる方法に関する。プログラム可能なプロセッサの機能ユニットのうちの1つの演算に対する最終呼び出し以降の時間を監視することを方法は含む。ユニットの、前の最終シャットダウン以降の時間も監視される。最終呼び出し以降の時間が現在のしきい値を超えるとき、1つの機能ユニットにより消費される電力を減少させるために、この方法は1つの機能ユニットをシャットダウンする。1つの機能ユニットの演算に対する後の呼び出しに応答して、ユニットは再起動される。方法はまた、しきい値を調整することを含む。1つの機能ユニットを再起動する時に、シャットダウン以降の時間が設定値よりも短い場合、方法は、現在のしきい値を新しいより高いしきい値に増加させる。
例えば、設定値は、しきい値として使用される現在の間隔値に等しくてもよい。シャットダウンから次の呼び出しまでの時間が短い、例えば、古いしきい値より短い場合、しいき値における増加は、将来のスラッシングを減少させるのに役立つ。前の最終呼び出し以降の間隔に応答して、通常、時間しきい値における減少として、しきい値をインクリメント的に調整してもよい。インクリメント的な減少は、電力節約を最適化するのに役立つ。
本教示の他の観点は、電力制御および/またはしきい値調整による電力制御を使用するプロセッサに関する。
1つの機能ユニットを選択的に起動およびシャットダウンするために、電力制御は、機能ユニットのうちの1つに結合された回路を含んでいてもよい。制御は時間を監視する手段を含む。詳細に述べると、時間は、1つの機能ユニットの演算に対する前の最終呼び出し以降と、ユニットの前の最終シャットダウン以降との両方で監視される。機能ユニットの演算に対する最終呼び出し以降の時間がしきい値の現在の値を超える場合、制御手段は1つの機能ユニットをシャットダウンする。1つの機能ユニットに対する呼び出しが、設定値よりも小さい前の最終シャットダウン以降の時間中に発生する場合、制御手段はまた、しきい値の現在の値に対してしきい値を増加させるように機能する。
本教示のプロセッサの観点は、1つの機能ユニットを選択的に起動およびシャットダウンするために、命令にしたがってデータを処理する機能ユニットおよびそれらのユニットのうちの1つに結合された回路を含んでいてもよい。命令の処理中に、電力制御装置は、1つの機能ユニットの演算に対する呼び出しを監視して、回路を制御してユニットをシャットダウンする。調整可能なしきい値に等しい、呼び出しの前の最終のもの以降の時間間隔のそれぞれの経過の際に、制御装置は1つの機能ユニットをシャットダウンする。シャットダウンの後に続く1つの機能ユニットの演算に対するそれぞれの新しい呼び出しに応答して、制御装置はまた機能ユニットを再起動する。しきい値を調整する手段も提供される。
開示した例は、特定の機能要素(例えば、除算器、または乗算器あるいはこれらに類似するもの)の使用を監視し、特定の機能要素が指定した期間の間使用されていないとき、ユニットの電源を切る制御ロジックを含む。ユニット演算に対する呼び出しがあるたびに、タイムスタンプが記憶される。ロジックはカウンタ(ローカルまたは中央)を使用して、設定期間が要素を使用することなく経過する時を決定する。ロジックはまた、各シャットダウンに対するタイムスタンプを記憶し、ロジックがどのくらいの早さで再起動されるかを監視して電力制御がスラッシングを生じさせるかどうかを決定する。このようなスラッシングの決定の際に、ユニットがそのしきい期間を自動的に調整し、スラッシングを最小化する。同様に、非常に控えめであることをロジックが決定するとき、ロジックはしきい値をインクリメント的に下げる。プログラマが電源切断ロジックを無効にして、ロジックを常に電源投入、または常に電源切断のどちらかの状態にできるようにするために、モードビットが存在する。
それ故に、例示的な技術により、特定の機能ユニットの活動のタイミングに基づいて、ハードウェアがリークベースの電力消費をダイナミックに減少させることができるようになる。電力を減少させるための努力が、度を超えたリサイクリングによる過度の電力消費またはプロセッサの機能停止を生じさせないことを反スラッシングロジックが保証する。しかしながら、スラッシングがないとき、インクリメント的な調整は、電力節約を最適化するのに役立つ。
付加的な利益および新しい特徴は、後に続く記述中の一部分において示され、後に続く添付図面の考察と同時に当業者に明らかになり、あるいは例の提供または動作により理解されるかもしれない。添付した特許請求の範囲において特に示した方法、手段および組み合わせの実施または使用により、本教示の利益を実現または達成してもよい。
詳細な説明
後に続く詳細な説明において、関連した教示の完全な理解を提供するために、例により多数の特定の詳細を示す。しかしながら、そのような詳細説明なしで本教示を実施できることが当業者に明らかだろう。他の例において、本教示の不必要に不明瞭な観点を避けるために、詳細説明なしに、比較的に高いレベルで、よく知られている方法、手続き、構成部品および回路を記述している。
特定の機能ユニット(例えば、除算器、または乗算器あるいはこれらに類似するもの)の演算に対して監視される呼び出しに基づいて、以下に記述したプロセッサのアーキテクチャおよび処理のフローのさまざまな例は、そのユニットの動作を制御し、例えば、ある期間ユニットが使用されていない(例えば、新しい呼び出しがない)とき、機能ユニットの電源を切断する。しかしながら、期間またはしきい時間の設定は、要素の使用に基づいて調整される。制御される要素があまり使用されないとき、さらに電力消費を改善するために、しきい値の調整は徐々にしきい値を減少させることができる。スラッシングを防ぐために、シャットダウンの後に続く短い期間中に、例えば、現在のしきい値設定よりも短い期間中に命令がユニットを再び呼び出す場合、プロセッサはしきい値を調整して、その後の中断前のアイドル期間を増加させる。
添付図面に図示し、以下で論ずる例に対して今後詳細に言及する。ここで論ずる電力制御原理は、さまざまな異なるプロセッサアーキテクチャに適合させることができる。しかしながら、理解を容易にするために、例として、パイプライン処理されたプロセッサを考慮することが役に立つかもしれない。図1は、パイプライン処理されたプロセッサ10の単純化したブロック図である。プロセッサ10は、例えば、移動電話局またはバッテリ電力を利用する他のポータブル電子デバイス中の低電力アプリケーションに向けられている。そのようなアプリケーションにおいて、マルチメディア処理のための単一命令多重データ(SIMD)プロセッサのような、主プロセッサまたは数値演算コプロセッサにこの技術は適用できる。
論述を容易にするために、パイプライン10の例は、単一パイプラインを本質的に実現する、スケーラ設計である。しかしながら、ここで論ずる処理はまた、多数のパイプラインを実現するスーパースケーラ設計および他のアーキテクチャに適用できることを当業者は理解するだろう。また、パイプラインの深さ(例えば、ステージの数)は実例に過ぎない。実際のパイプラインは、例におけるパイプライン10よりも少ないステージまたは多いステージを有していてもよい。
単純化したパイプライン10は、パイプライン処理ステージの5つの大きなカテゴリ:フェッチ11、デコード13、読み出し15、実行17および書き戻し19を含む。図中の矢印はロジカルデータのフローを表し、必ずしも物理的な接続ではない。これらのステージのいくつかは、関連性した機能の一部を実行する多数のステージに分解されてもよく、またはパイプラインは付加的な機能を提供する付加的なステージを含んでもよいことを当業者は認識するだろう。図1中に別に示していないが、状態機械または関連したロジック機能を実現するこれに類似するもの、ならびに、次のステージまたは他のプロセッサリソースに命令および/または何らかの処理結果を渡す、関係付けられたレジスタをパイプライン10の各ステージは通常含む。
例示的なパイプライン10において、最初のステージは命令フェッチステージ11である。フェッチステージ11は、後のステージにより処理するための命令を取得する。フェッチステージ11は、(示していない)メモリの階層から命令を取得し、命令の階層は通常、命令またはレベル1(L1)キャッシュ、レベル2(L2)キャッシュおよび主メモリを含む。フェッチステージ11は、各命令をデコードステージ13に供給する。命令デコードステージ13のロジックは、受け取った命令バイトをデコードして、結果をパイプラインの次のステージに供給する。
ステージの次の大きなカテゴリは、データアクセスまたは読み出しを提供する。読み出しステージ15のロジックは、(示していない)汎用目的レジスタすなわち“GPR”ファイルにおける指定されたレジスタ中のオペランドデータにアクセスする。各命令およびその必要とされるオペランドデータは、実行機能を提供する1つ以上のステージ17に渡される。実行ステージ17は本質的に、検索されたオペランドデータに各命令の特定の機能を実行して結果を生成する。実行機能を提供するステージ17は、例えば算術ロジックユニット(ALU)を実現してもよい。実行ステージ17は各命令の実行の結果を書き戻しステージ19に供給する。ステージ19は、結果をレジスタまたはメモリに書き戻す。
プロセッサ10の要素は、それらがスイッチしていないときでさえ電力供給を受ける。例えば、バッテリ電力源を使用する多くのアプリケーションにおいて、電力源の寿命は限られている。プロセッサ10のいくつかの要素は、絶え間なく使用されているわけではない。例における実行ステージ17中のいくつかの機能ユニットは、相当な期間必要とされないかもしれない。電力消費を減らすために、必要でないとき、それぞれのそのような機能ユニットをシャットダウンすることができる。論述の目的のため、電力制御の主題である機能ユニットは除算器21であるが、実行ステージ17のまたはプロセッサ10における他の場所の、乗算器あるいは任意のさまざまな他の機能要素またはリソースに同様の制御を適用できることを当業者は認識するだろう。
例は電力制御23を含み、電力制御23は特定の機能ユニット(例えば、除算器21)の呼び出しおよび動作を監視する。ユニットがレジスタ25中の調整可能なしきい値により規定される期間に対して呼び出されていないとき、制御23はユニットの電源を切る。除算器21の使用に対する呼び出しがなく設定期間が経過するとき、すなわち要素21の不活動の期間がしきい値25に合致するまたは超えるときを電力制御23が決定する。さらに後で論ずるように、どのくらいの速さで機能ユニット、このケースにおいては除算器21が、各電源切断後に再度電源投入されるかについても電力制御23は監視して、電力制御がスラッシングを生じさせるかどうかを決定する。このようなスラッシングの決定の際に、電力制御23がそのしきい期間を上方に自動的に調整し、スラッシングを最適化する。同様に、非常に控えめであることを電力制御23が決定するとき、電力制御23はしきい値25を下げる。プログラマが電源切断ロジックを無効にして、ユニットを常に電源投入、または常に電源切断のどちらかの状態にできるようにするために、モードビットが存在する。
任意のさまざまな知られている方法で電力制御23からの選択信号に応答して、制御される機能ユニット、すなわち図1の例における除算器21のアクティブ状態を制御できる。一般的な論述の目的のために、図1は、除算器21の演算に必要とされる信号(S)、および電力制御23からの電力制御信号に応答して、信号を除算器に選択的に結合させる一般的なゲート回路27を示す。図1中の27において一般的に示す回路は、制御23からの適切な選択信号に応答して適切なタイプの信号を機能ユニットに供給するように構成されるロジックゲート、スイッチ、それらの組み合わせ、または他の任意の回路であってもよい。信号Sをユニット21に供給することにより、ユニットが起動され、または電源が投入されるのに対し、信号Sを遮断することまたは停止することにより、ユニット21がシャットダウンされる。
例えば、ゲート27の動作が、使用に対する呼び出しにしたがって電源を入れたり切ったりするように、除算器21に対して電力供給を制御するゲーティングにより、除算器21を選択的にイネーブルおよびディスエーブルとすることができる。そのような実施において、信号Sは電力供給端子または電圧のうちの1つを表す。電力制御23が除算器21をディスエーブルするとき、制御23はゲート27をトリガして、除算器21の回路に関して電力端子Sのうちの1つに対する接続(例えば、供給または接地)を遮断する。遮断により、その機能ユニットの回路中のダイナミックな電力消費およびリークが削除される。
図1の例は、使用に対する呼び出しに基づいて制御される、単一の機能ユニットである除算器21を示す。相当な電力供給を受けるが、かなりの期間不活動であるかもしれない多数の要素に対して、所定のプロセッサがいくつかの類似の制御を含むことができることを当業者は認識するだろう。
図2は、レジスタ25中の調整可能なしきい値に基づいて、除算器21の起動を制御するための電力制御23の実施の機能ブロック図である。この例において、電力制御23は、クロック信号に応答するカウンタ31を含む。システムクロックあるいはプロセッサ10中で、またはプロセッサ10に対して発生する別のクロック信号をカウンタ31は利用してもよい。いくつかの機能ユニットの間でカウンタ31を共有でき、またはカウンタ31を問題の機能ユニットに専用のものとすることができる。カウントは、機能ユニットに対して妥当な時間を単位にしている。それはサイクルから秒まで(またはそれを超えた)の範囲に渡ることができる。電力制御23はまた、2つのタイムスタンプ(TS)レジスタ33および35を含む。起動されるとき、レジスタ33または35は、現在の時間に関連した尺度または値を表す、カウンタ31からの現在のカウントを記憶する。
機能ユニット(我々の例における除算器21)が、パイプライン処理されたプロセッサ10を通じて流れる命令により呼び出されるたびに、レジスタ33が起動され、カウンタ31からの現在の時間カウント値を記憶する。ユニットが再度呼び出されるまで、レジスタ33はそのカウントを保持する。このようにして、レジスタ33中の値TS(LC)は、除算器21の演算に対する最終の(最も最近の)呼び出しに対するタイムスタンプを表す。
機能ユニット(我々の例における除算器21)の電源が切られるたびに、レジスタ35が起動され、カウンタ31からの現在の時間カウントを記憶する。ユニットの電源が再度切られるまで、レジスタはそのカウントを保持する。このようにして、レジスタ33中の値TS(LPD)は、除算器21の最終の電源切断(最も最近の動作停止)に対するタイムスタンプを表す。
カウンタ31はまた、実行時間に関連したカウントを2つの減算回路37および39に供給する。減算回路37が動作するとき、減算回路37はまた、レジスタ33から最終呼び出しタイムスタンプ値TS(LC)を受け取る。(現在の時間に関連した)カウンタと記憶されたカウント値TS(LC)との間の差Icは、除算器21に対する、前の最終呼び出し以降のインターディレイ間隔を表す。比較器41は、最終呼び出し以降のインターディレイ間隔Icと、調整可能なしきい値25の現在の値とを比較する。このようにして、カウンタ値はレジスタ33中のデータから減算され、25において登録されているような現在のしきい値と比較される。代わりに、カウンタ31の現在の値からレジスタ33中の古いタイムスタンプとしきい値25とを減算することにより、これを実施することができ、どちらのケースにおいても、ゼロまたは負の結果は、除算器21に対する最終呼び出し以降に、しきい値に等しい期間が経過したことを意味する。
cがしきい値25の現在の値に到達する(すなわち、合致または超える)場合、制御ロジック45はゲート27をディスエーブルして、除算器21を遮断する。制御ロジックが除算器35を動作停止するとき、制御ロジックはまた、最終の電源切断タイムスタンプ値TS(LPD)として、カウンタ31からの新しいカウントをレジスタ35に記憶させる。除算器21に対する後の呼び出しに応答して、制御ロジックは除算器21の電源を投入する。
第2の減算回路39はレジスタ35から最終の電源切断タイムスタンプ値TS(LPD)を受け取る。(現在の時間に関連した)カウンタ31中の値と記憶されたカウント値TS(LPD)との間の差Ipは、除算器21が最後に電源切断された以降のインターディレイ間隔を表す。比較器43は、最終の電源切断以降の間隔Ipと、この例においては調整可能なしきい値25の現在の値である、設定値とを比較して、結果を制御ロジック45に供給する。制御ロジック45は、しきい値25を調整するためにその内部アルゴリズム中でこの比較結果を使用して、スラッシングを回避する。代わりに、カウンタ31の現在の値からレジスタ35中の古い時間スタンプとしきい値25とを減算することにより、この比較を実施することができ、いずれのケースにおいても、正の結果は、最終の電源切断以降に、しきい値よりも短い期間が経過したことを意味する。しきい値25を調整するための処理の一部として、除算器が呼出され、または電源投入されるとき、減算回路37および比較器41がトリガされる。
使用に基づいたシャットダウンのために、使用される期間を調整する制御ロジック45により実現されるアルゴリズムは、電力消費を最適化して、さらにスラッシングを最小化することに向けられている。例えば、制御23が最終の時間以降に、除算器21をシャットダウンする前に十分長く待たなかった場合、特定の機能ユニットに関して次の電力サイクルに対する不活動の期間の尺度として使用されるしきい値をロジック45は延ばす。しかしながら、例えば、インターコールディレイがしきい値よりも長いような機能をアルゴリズムが呼出すたびに、アルゴリズムはまた、少し(微調整)しきい値を減少させる。
さらに電力消費を減少させるために、しきい値を下方へ微調整するのに関わるかもしれない動作を最初に考慮する。
最小のシャットダウンしきい値は、最小しきい値レジスタ47に、ハードワイヤードされるかまたはソフトウェアによりロードされる。レジスタ47中の最初のしきい値(すなわち、Th0)は、レジスタ25から読み出される最小値である。通常、最小のしきい値は、遮断による省電力化(リーク)が電源投入コストに等しくなるような値に設定されるが、最小のしきい値はこの値より低く設定されてもよい。制御される機能ユニットの始動を待つ命令フロー中で誘発される遅延(例えば、機能停止、フラッシュおよび再フェッチ)のコストを考慮すると、最小のしきい値をより大きく設定することもできる。
機能ユニット(例えば、除算器21)が呼び出される、または電源を切られるとき、カウンタ31中の現在の値中の値が、タイムスタンプとして適切なレジスタ33または35中に取り込まれる。また、機能ユニットが呼び出される、またはユニットが再度電源投入されるとき、カウンタ31の現在の値は適切なレジスタ中のデータから減算されて、例えば、上で論じた減算回路および比較器を使用して、現在のしきい値と比較される。代わりに、現在のカウンタ値からそれぞれのタイムスタンプおよびしきい値を減算することにより、これを実施することができ、負の値は、最終のイベントからしきい間隔経過するよりも前にイベントが発生したことを意味する。
本質的に、電力制御ユニット23が機能ユニットに対する新しい呼び出しを検出するたびに、電力制御は、レジスタ25中のしきい値を調整するために2つのアルゴリズムを実行する。一方のアルゴリズムは、小さい調整、すなわち微調整を行って、制御23により電力節約を最適化する。他方のアルゴリズムは、スラッシングを最小化するためにより大きい調整を行う。
微調整のために、ユニットの機能に対して、例えば、ユニット21による除算に対して呼び出しがあるたびに、呼び出しに対するタイムスタンプ(カウンタ出力)を比較することにより、最終呼び出し以降どのくらいの時間が経っているかが決定される。呼び出し間のインターディレイに対する、この値Icは、古いしきい値Thnから減算され、本質的に、2の相当乗により除算されるように、差(Δ)は一定の値、例えば3位置だけ右にシフトされる。この結果は古いしきい値Thnから減算されて、新しいしきい値Thn+1を生成する。しきい値を調整するためのこのような公式の例は次のようになるだろう:
Figure 0004897796
このような計算に基づいて、制御ロジック45はレジスタ25中のしきい値を調整する。呼び出し間の間隔に応答したこの処理は、しきい値の段階的な調整をひき起こす。非常に大きいインターディレイIcはしきい値において大きな変化を生じさせ得るので、1つの読み出しがしきい値に必要以上に影響を及ぼすことができないように、差(Δ)を最大値(例えば、前のしきい値Thn)に飽和できる。このようにして、例えば、新しいしきい値を
Figure 0004897796
の範囲内に常に保持することができる。Icの非常に大きい値は、省電力化のためになるので、このようなケースにおいてThn/2xだけしきい値を(増加するよりはむしろ)実際に減少することができ、この例の目的のために、Icの非常に大きい値をThn2xより大きいものとして規定することができる。さらに、しきい値の減少の限度として、最小のしきい値を使用できる。
機能ユニットがオンであり、別の呼び出しが受け取られるとき、最終呼び出し以降の時間が現在のしきい値Thnを経過していないことを、最初の例として仮定する。この例において、制御ロジック45は機能ユニット21を電源オンの状態に保持している。ユニットに対する新しい呼び出しが受け取られるとき、インターディレイIcは現在のしきい値Thnより小さい。ThnとIcとの間の差は正のΔ値になるだろう。それ故に、新しいしきい値Thn+1は、(2xにより除算される)x位置だけシフトされるΔの量だけ、古いしきい値Thnより減少する、または小さいだろう。別の言い方をすると、電力制御は十分に積極的にされておらず、それで電力制御は、将来ユニットを早く遮断(電力を節約)しようとして、しきい値をインクリメント的に減少させる。
最終呼び出し以降の時間が現在のしきい値を経過して、制御ロジック45が機能ユニットの電源を切っていることを、第2の例として仮定する。ユニットが次に呼出されるとき、インターディレイIcは現在のしきい値Thnより大きい。スラッシングがない場合、IpはThnより大きいかまたは等しく、それでIcは現在のしきい値Thnの少なくとも2倍である。差は負のΔ値になるだろう。それ故に、公式(1)中の新しいしきい値Thn+1は、(2xにより除算される)x位置だけシフトされるΔの量だけ、古いしきい値Thnより増加するか、または大きいだろう。しかしながら、インターディレイIcが特に大きい場合、Thn+1からThn(1−1/2x)へ、例における新しいしきい値を電力制御は減少させるだろう。
制御ロジック45はまた、レジスタ25中のしきい値を調整して、スラッシングを最小化する。電源切断後、非常に早く機能ユニットの演算に対して新しい呼び出しが来る場合、スラッシングが発生し、そのため、例えば、電源切断により節約されるよりも多い電力を電源投入が消費し、および/または電源投入による遅延のために付加される機能停止が、性能に著しく影響を与える。問題のユニットの機能は電源が切られている場合、ユニットの機能が再度呼び出され、再度電源投入されるとき、ユニットの機能を使用可能にする時間が、電源切断タイムスタンプTS(LPD)と比較される。
図2の例において、制御ロジック45が、除算器21の演算に対する新しい呼び出しに応答して、除算器21の電源投入をするとき、ロジックは、カウンタ31中のカウント値と、レジスタ35中のタイムスタンプおよびレジスタ25中のしきい値の結合との比較を読み出す。便宜上、同一のしきい値がここで使用されるが、この調整アルゴリズムにおいて、異なる設定時間値を使用できる。最終の電源切断以降の測定時間間隔が非常に小さい(例えば、電源切断と電源投入との間の遅延の期間がしきい値より小さいかまたは等しい)場合、スラッシングに対する将来の可能性を減少させるように向けられる方法で、しきい値が調整される。この調整は将来の使用のためにしきい値を増加させて、例えば、古いしきい値の2倍にする。こうして、アンチスラッシング構成部品は、しきい値に関して多くの直接の効果を有するのに対し、微調整構成部品はいっそう薄い効果を有する。
不活動に基づいてプロセッサの機能要素の起動と動作停止とを制御する処理と、不活動の時間しきい値を調整する処理は、さまざまな方法で実現されてもよい。しかしながら、上で概説した動作にしたがって、処理のロジカルフローの例を考慮することは役に立つかもしれない。図3は、電力制御23により実現することができるプロセスフローの例を図示するフローチャートである。
除算器21が(S1において)すでに電力供給されているとき、除算器21の演算に対する前の最終呼び出し以降のインターコールディレイIcがステップS2において計算される。レジスタ33と減算回路37とを使用して、例えば、ステップS2は、Ic=Count−TS(LC)を計算する。ステップS3は、(比較器41におけるような)現在のしきい値Thnに対する比較を伴う。最終呼び出し以降の不活動ディレイIcが現在のしきい値Thnに合致しないまたは超えないことを制御論理45が決定する場合、ステップS3における処理は、ステップS4に流れる。
ステップS4において、制御ロジック45は、除算器21の演算に対する呼び出しをチェックする。呼び出しがない場合、ステップS4における処理は、ステップS5に流れる。ステップS5において、カウンタはインクリメントされ、処理はステップS2に戻り、最終呼び出し以降のインターディレイに対する値を更新してS3において現在のしきい値に対してその遅延を再度チェックする。
論述目的のために、電力制御が除算器21の演算に対する呼び出しを検出するまで、ステップS2からS5を通るループが継続することを、今仮定する。それ故に、ステップS4において、制御ロジック45は除算器21に対する呼び出しを検出して、プロセスはステップS4からステップS6に流れる。ステップS6において、図4のフローチャートに関して、後に論ずるように、制御ロジックはしきい値を調整するルーチンを実現する。注意すべきことは、ユニットは電源切断がされていないので、例におけるこの時点で、調整は将来の使用のためにインクリメント的にしきい値を減少させる。しきい値の調整後、制御23が除算器21に対する呼び出しを受け取る、または検出するサイクルにおいて、レジスタ33中のタイムスタンプTS(LC)をカウンタ31中の現在の値に更新(ステップS7)することを処理は伴う。ステップS5は、再度カウンタをインクリメントし、処理はステップS2に戻り、除算器21の機能に対する最終呼び出し以降のインターディレイIcに基づいて、解析を再開する。
しきい値の現在の値Thnに等しいまたはこれより大きい、除算器21の機能に対する最終呼び出し以降のインターディレイIcの期間の満了前に、除算器21の機能に対する新しい呼出しを制御ロジック45が受け取る限り、ステップS2からS7を通るループは継続するだろう。しかしながら、最終呼び出し以降の遅延が現在のしきい値に到達することを今仮定する。それ故に、ステップS3において、制御ロジック45は
Figure 0004897796
を検出し、それはステップS3からS8に流れる処理を生じさせる。ステップS8において、例えば、以前に論じたように除算器21に対して電源を切ることにより、制御ロジック45は除算器21をディスエーブルする。制御ロジック45は次に、(S9において)レジスタ35を起動して、除算器21の最終の電源切断に対する新しいタイムスタンプ値TS(LPD)として現在のカウント値を取り込む。
ステップS10において、制御ロジックが除算器21の機能に対する新しい呼び出しを受け取っているか、または検出しているかどうかを知るために制御ロジックが調べる。除算器21の機能に対する新しい呼び出しを受け取っていない、または検出していない場合、処理はステップS11に流れ、そこでカウンタはインクリメントされ、処理は再度ステップS10に流れる。制御ロジック45が除算器21の機能に対する新しい呼び出しを検出するまで、ステップS10とS11は繰り返す。新しい呼び出しが検出されるまで、除算器21はディスエーブルされたままであり、その結果電力を消費しない。
しかしながら、制御ロジック45が除算器21の機能に対する新しい呼び出しを検出するとき、処理はS10からS12へ流れる。S12において、制御ロジック45は、機能ユニット、すなわち我々の例における除算器21の電源を投入する手続きを開始する。処理は次にしきい値を調整するステップS6に流れ、呼び出し間の時間の長さに依存して、しきい値を微調整するか、またはスラッシングを回避するためにしきい値を増加させる。ステップS7において、ロジック45は、最も最終の呼び出しに対するタイムスタンプTS(LC)にカウンタ31中の現在の値を設定する。処理は次にステップS5を通じてステップS2に再度流れて、以前に論じた処理を再開する。
図3および先の段落中のそれらについての記述により示すように、機能ユニットの演算に対する呼び出しがあるたびに、制御ロジック45は、ステップS6における手続きを開始してしきい値を調整する。上で概説した原理にしたがってしきい値を調整するS6における処理を、さまざまな方法で実現してもよい。しかしながら、図4のフローチャートに関して、上で概説した動作にしたがって処理のロジカルフローの例を考慮することは役に立つかもしれない。
ステップS61において、除算器21の最終の電源切断以降の間隔Ipが計算される。レジスタ35および減算回路39を使用して、例えば、ステップS61は、Ip=Count−TS(LPD)を計算する。ステップS62において、この調整動作が除算器21の電源投入の後に続いたものであるかどうかをロジック45が決定する。電源投入の後に続いたものである場合、処理はS62からS63に流れる。(例えば、比較器43におけるような)スラッシングを測定するために使用される設定値に対する、例えば、古いしきい値Thnに対する比較をステップS63は伴う。最終の電源切断以降の間隔Ipが古いしきい値Thnより小さいことを制御ロジック45が決定する場合、スラッシングの問題があり、そのためステップS63における処理は、ステップS64に流れる。
ステップS64において、しきい値は増加されて、スラッシングを減少させる。S64におけるこの調整は、例えば、古いしきい値の2倍に等しい、増加したしきい値(Thn+1=2(Thn))を生成できる。それ故に、スラッシング条件を検出すると、電源切断のしきい値を2倍にして、将来のサイクルにおける除算器の早めの電源切断を防ぐことができる。
ステップS62に戻ると、機能ユニットが新しい呼び出しに応答して、電源投入されなかった(前の最終呼び出し以降のしきい間隔が経過していなかった)場合、処理はS65に流れるだろう。新しい呼び出しに応答して、電源投入があるが、最終の電源切断以降の間隔Ipが古いしきい値より大きいまたは等しかった場合、処理はまたS65に到達する。(前の最終呼び出しが、前の最終の電源切断より前に起こっていたので)前の最終呼び出し以降の期間もしきい値より大きく、機能ユニットは、図3のプロセスフローを通るこのパス上のステップS12において電源投入されたことを、これは意味する。どちらのケースにおいても、スラッシングの問題はないが、しきい値を微調整して、電力節約を最適化する必要があるかもしれない。
注意したように、Icの非常に大きい値は、省電力化のためになる。この例において、Icの非常に大きい値は、Thn2xより大きいとして規定され、ステップS65において、ロジックはその規定値に対してインターディレイをチェックする。インターディレイIcがThn2xより大きい場合、処理はステップS66に流れ、そこでしきい値はThn/2xだけ減少される(古い2進値がx位置、例えば、1、2、3またはより大きい位置だけ左にシフトされる)。次に、処理はステップS67に流れて、最小のしきい値に対して、減少したしきい値をチェックする。計算された新しいしきい値Thn+1が最小のしきい値Thminより小さい場合、ステップS68が新しいしきい値に最小値を設定するように機能する。計算された新しいしきい値Thn+1が最小のしきい値Thminより小さくない場合、ステップS66において計算された値に新しいしきい値を設定することにより、処理は調整ルーチンS6を抜ける。
ステップS65の考慮に戻る。そこでは、インターディレイ間隔Icが相対的に大きいかどうかが決定される。インターディレイ間隔Icが相対的に大きくない場合、処理はステップS69に流れる。そこで、除算器ユニット21の演算に対する呼び出し間のインターディレイのための現在の値Icが、古いしきい値Thnから減算され、本質的に、2の相等乗により除算されるように、差は、一定の値、例えば3位置(x=3)だけ右にシフトされる。この結果は古いしきい値Thnから減算されて、新しいしきい値Thn+1を生成する。上で論じたように、しきい値を調整するこの公式の例は次のようになるだろう:
Figure 0004897796
非常に大きいインターディレイIcはしきい値において大きな変化を生じさせるので、1つの読み出しがしきい値に必要以上に影響を及すことができないように、しきい値とインターディレイとの差(Δ)を最大値(例えば、前のしきい値Thn)に飽和できる。このようにして、例えば、限定ステップS70およびS71により表されるように、新しいしきい値を
Figure 0004897796
の範囲内に常に保持することができる。
ステップS66は、新しいしきい値と、古いしきい値の2倍とを比較する。ステップS64において計算される新しいしきい値が古いしきい値の2倍より大きい場合、処理はステップS64に流れて、古いしきい値の2倍を新しいしきい値に設定する。ステップS65において計算される新しいしきい値が古いしきい値の2倍より小さいかまたは等しい(超えない)場合、処理はステップS67に流れて、最小のしきい値に対して、微調整されたしきい値をチェックする。計算された新しいしきい値Thn+1が最小のしきい値Thminより小さい場合、ステップS68が新しいしきい値に最小値を設定するように機能する。計算された新しいしきい値Thn+1が最小のしきい値Thminより小さくない場合、ステップS69ないしS70において計算された値に新しいしきい値を設定することにより、処理は調整ルーチンS6を抜ける。
図3の処理フローおよび図4の調整ルーチンは、一例として与えられたに過ぎない。他のルーチンおよび/または他のアルゴリズムを使用して、必要以上のスラッシングを回避しながら電力節約のための本教示を実現できることを、当業者は認識するだろう。
最良のモードおよび/または他の例であると考慮されるものを記述してきたが、それらについてさまざまな修正を実施してもよく、さまざまな形態および例においてここで開示した主な事項を実現してもよく、多数のアプリケーション中でその教示を適用してもよく、それらのいくつかをここで記述したに過ぎないことが理解される。本教示の真の範囲内に入るすべての応用、修正および変形を主張することが特許請求の範囲により意図される。
単なる一例として、限定目的ではなく、本概念にしたがって、描かれている図は1つ以上の実施を描写する。図において、同様の参照数字は、同一または類似の要素を参照する。
図1は、プロセッサの機能ユニットの調整可能な制御を伴う、パイプライン処理されたプロセッサの単純化したブロック図である。 図2は、調整可能な時間しきい値に基づいた、除算器の起動を制御するための、電力制御の例の機能ブロック図である。 図3は、ユニットの活動および調整可能な時間しきい値に関するタイミングに基づいた、プロセッサの機能ユニットを起動および動作停止する処理の簡単な例のフローチャートである。 図4は、しきい値を調整して、スラッシングを制御しながら電力節約を最適化するために使用されてもよい処理の例のフローチャートである。

Claims (16)

  1. プログラム可能なプロセッサの電力消費を減少させる方法において、
    前記プログラム可能なプロセッサの複数の機能ユニットのうちの1つの演算に対する最終呼び出し以降の時間を監視することと、
    前記1つの機能ユニットの前の最終シャットダウン以降の時間を監視することと、
    前記最終呼び出し以降の時間が現在のしきい値を超える前に、前記1つの機能ユニットの演算に対する後の呼び出しがあった場合に、前記最終呼び出しと、前記1つの機能ユニットの演算に対する後の呼び出しとの間の時間の関数として、前記現在のしきい値を調整して電力低減を最適化することと、
    前記最終呼び出し以降の時間が現在のしきい値を超えるとき、前記1つの機能ユニットをシャットダウンして、前記1つの機能ユニットにより消費される電力を減少させることと、
    前記1つの機能ユニットのシャットダウン後の、前記1つの機能ユニットの演算に対する後の呼び出しに応答して、前記1つの機能ユニットを再起動することと、
    前記1つの機能ユニットを再起動する時に、前記シャットダウン以降の時間が設定値より短い場合前記現在のしきい値を新しいより高いしきい値に増加させ、さもなければ、前記最終呼び出しと、前記1つの機能ユニットのシャットダウン後の、前記1つの機能ユニットの演算に対する後の呼び出しとの間の時間の関数として、前記現在のしきい値を調整して電力低減を最適化することとを含む方法。
  2. 前記設定値は、前記しきい値の現在の値に等しい請求項1記載の方法。
  3. 前記新しいより高いしきい値は、前記現在のしきい値の2倍である請求項1記載の方法。
  4. 前記現在のしきい値を調整して電力低減を最適化することは、
    前記現在のしきい値から前記最終呼び出し以降の時間を減算して、差を取得することと、
    1つ以上のビット位置だけ前記差をシフトさせることと、
    前記現在のしきい値から前記シフトされた差を減算して、調整されたしきい値を取得することと
    を含むステップを実行することにより、前記調整されたしきい値を計算することを含む請求項記載の方法。
  5. 前記調整されたしきい値の計算は、前記差を前記現在のしきい値を超えないものまでに飽和させることと、前記調整されたしきい値を設定された最小しきい値を超えないものまでに限定することとをさらに含む請求項記載の方法。
  6. 前記機能ユニットは、演算機能の実行のためのロジック要素を備える請求項1記載の方法。
  7. 前記演算機能は、乗算または除算機能を含む請求項記載の方法。
  8. プログラム可能なプロセッサの電力消費を減少させる方法において、
    前記プログラム可能なプロセッサの複数の機能ユニットのうちの1つの演算に対する呼び出しを監視することと、
    前記呼び出しのうちの先行する最終のものに続く時間がしきい値の現在の値に到達する前に、前記呼び出しのうちの後続するものがそれぞれ発生した場合に、前記呼び出しのうちの先行する最終のものと、前記呼び出しのうちの後続するものとの間の時間の関数として、前記しきい値の現在の値を調整して電力低減を最適化することと、
    前記呼び出しのうちの後続するものの前に、前記呼び出しのうちの先行する最終のものに続く時間が前記しきい値の現在の値に到達したとのそれぞれの検出に応答して、前記1つの機能ユニットをシャットダウンすることと、
    前記1つの機能ユニットのそれぞれのシャットダウンに続く前記1つの機能ユニットの演算に対する呼び出しに応答して、前記1つの機能ユニットを起動することと、
    前記1つの機能ユニットのそれぞれのシャットダウンと前記1つの機能ユニットのそれぞれのその後の起動との間の時間を監視することと、
    前記1つの機能ユニットのシャットダウンと前記1つの機能ユニットのその後の起動との間の時間が設定期間より短いことが発生した場合に前記しきい値を新しい現在の値に増加させ、さもなければ、前記呼び出しのうちの先行する最終のものと、前記1つの機能ユニットのそれぞれのシャットダウンに続く前記1つの機能ユニットの演算に対する呼び出しとの時間の関数として、前記しきい値の現在の値を調整して電力低減を最適化することとを含む方法。
  9. 前記設定期間は、前記しきい値の現在の値に等しい請求項記載の方法。
  10. 複数の機能ユニットを備えるプログラム可能なプロセッサのための電力制御システムにおいて、
    前記電力制御システムは、
    前記機能ユニットのうちの1つに結合されて、前記1つの機能ユニットを選択的に起動およびシャットダウンするように構成されている回路と、
    前記1つの機能ユニットの演算に対する、前の最終呼び出し以降の時間と前記1つの機能ユニットの前の最終シャットダウン以降の時間とを監視する手段と、
    前記前の最終呼び出し以降の時間が現在のしきい値を超える前に、前記1つの機能ユニットの演算に対する、それぞれの後の呼び出しがあった場合に、前記最終呼び出しと、前記1つの機能ユニットの演算に対する呼び出しとの間の時間の関数として、前記現在のしきい値を調整して電力低減を最適化し、
    前記回路を制御して、前記1つの機能ユニットの演算に対する、前の最終呼び出し以降の時間がしきい値の現在の値を超えることがそれぞれ発生する際に前記1つの機能ユニットをシャットダウンし、
    前記1つの機能ユニットに対する呼び出しが、設定値よりも短い、前記前の最終シャットダウン以降の時間中に発生する場合に、その現在の値に対して前記しきい値を増加させ、さもなければ、前記前の最終呼び出しと、前記前の最終シャットダウン以降の時間中に発生した、前記1つの機能ユニットに対する呼び出しとの間の時間の関数として、前記現在のしきい値を調整して電力低減を最適化する、
    手段とを具備する電力制御システム。
  11. 前記設定値は、前記しきい値の現在の値に等しい請求項10記載の電力制御システム。
  12. 前記しきい値を増加させることは、前記しきい値の現在の値の2倍に等しい新しいしきい値を設定することを含む請求項11記載の電力制御システム。
  13. プログラム可能なプロセッサにおいて、
    命令にしたがってデータを処理するように構成されている複数の機能ユニットと、
    前記機能ユニットのうちの1つに結合されて、前記1つの機能ユニットを選択的に起動およびシャットダウンするように構成されている回路と、
    前記命令の処理中に、前記1つの機能ユニットの演算に対する呼び出しを監視するように構成され、前記回路を制御して、前記呼び出しのうちの前の最終のもの以降の時間が、調整可能なしきい値に等しいことがそれぞれ発生する際に前記1つの機能ユニットをシャットダウンし、シャットダウンの後に続く前記1つの機能ユニットの演算に対するそれぞれの新しい呼び出しに応答して、前記1つの機能ユニットを再起動するように構成されている電力制御装置と、
    記しきい値を調整する手段とを具備し、
    前記調整する手段は、
    前記呼び出しのうちの前の最終のもの以降の時間が、前記しきい値に到達する前に、前記1つの機能ユニットの演算に対するそれぞれの新しい呼び出しが発生した場合に、前記呼び出しのうちの前の最終のものと、前記1つの機能ユニットの演算に対する新しい呼び出しとの間の時間の関数として、前記しきい値を調整して電力低減を最適化するように構成されており、
    前記1つの機能ユニットのシャットダウンと、前記シャットダウンの後に続く前記1つの機能ユニットの演算に対する新しい呼び出しとの間の時間が設定値より短い場合に前記しきい値を増加させるように構成され、さもなければ、前記呼び出しのうちの前の最終のものと、前記シャットダウンの後に続く前記1つの機能ユニットの演算に対する新しい呼び出しとの間の時間の関数として、前記しきい値を調整して電力を最適化するように構成されているプログラム可能なプロセッサ。
  14. 前記しきい値を調整して電力を最適化すること、前記しきい値の減少を制御することを含む請求項13記載のプログラム可能なプロセッサ。
  15. 前記機能ユニットは、パイプラインの複数の処理ステージを形成し、前記ステージは実行ステージを含み、前記1つの機能ユニットは、前記実行ステージの要素を備える請求項13記載のプロセッサ。
  16. 前記実行ステージの要素は、除算器または乗算器を有する請求項15記載のプロセッサ。
JP2008511264A 2005-05-10 2006-05-08 アイドル要素予測回路およびアンチスラッシングロジック Active JP4897796B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/126,442 2005-05-10
US11/126,442 US7386747B2 (en) 2005-05-10 2005-05-10 Method and system for reducing power consumption of a programmable processor
PCT/US2006/017880 WO2006122102A2 (en) 2005-05-10 2006-05-08 Idle-element prediction circuitry and anti-thrashing logic

Publications (2)

Publication Number Publication Date
JP2008541274A JP2008541274A (ja) 2008-11-20
JP4897796B2 true JP4897796B2 (ja) 2012-03-14

Family

ID=37397229

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008511264A Active JP4897796B2 (ja) 2005-05-10 2006-05-08 アイドル要素予測回路およびアンチスラッシングロジック

Country Status (10)

Country Link
US (1) US7386747B2 (ja)
EP (2) EP2930590B1 (ja)
JP (1) JP4897796B2 (ja)
KR (1) KR100922090B1 (ja)
CN (1) CN101288039B (ja)
ES (1) ES2547377T3 (ja)
IL (1) IL187136A0 (ja)
MX (1) MX2007014111A (ja)
TW (1) TWI318748B (ja)
WO (1) WO2006122102A2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7724979B2 (en) * 2004-11-02 2010-05-25 Broadcom Corporation Video preprocessing temporal and spatial filter
US8266464B2 (en) * 2006-10-24 2012-09-11 Texas Instruments Incorporated Power controller, a method of operating the power controller and a semiconductor memory system employing the same
US7895456B2 (en) * 2006-11-12 2011-02-22 Microsemi Corp. - Analog Mixed Signal Group Ltd Reduced guard band for power over Ethernet
US7685409B2 (en) 2007-02-21 2010-03-23 Qualcomm Incorporated On-demand multi-thread multimedia processor
US7865753B2 (en) * 2007-03-28 2011-01-04 Intel Corporation Resource power controller to return a resource to an up state based on an estimate of a size of a gap in data traffic
US20080307240A1 (en) * 2007-06-08 2008-12-11 Texas Instruments Incorporated Power management electronic circuits, systems, and methods and processes of manufacture
JP2008312048A (ja) * 2007-06-15 2008-12-25 Ripplex Inc 情報端末の認証方法
US7903493B2 (en) * 2008-04-25 2011-03-08 International Business Machines Corporation Design structure for estimating and/or predicting power cycle length, method of estimating and/or predicting power cycle length and circuit thereof
KR100936765B1 (ko) 2008-06-02 2010-01-15 엘지전자 주식회사 동적 전력관리 프로세서의 소음저감장치 및 방법
US8607075B2 (en) * 2008-12-31 2013-12-10 Intel Corporation Idle duration reporting for power management
US8190939B2 (en) * 2009-06-26 2012-05-29 Microsoft Corporation Reducing power consumption of computing devices by forecasting computing performance needs
US8219834B2 (en) * 2009-08-12 2012-07-10 International Business Machines Corporation Predictive power gating with optional guard mechanism
US8219833B2 (en) * 2009-08-12 2012-07-10 International Business Machines Corporation Two-level guarded predictive power gating
US8504855B2 (en) 2010-01-11 2013-08-06 Qualcomm Incorporated Domain specific language, compiler and JIT for dynamic power management
US9235251B2 (en) * 2010-01-11 2016-01-12 Qualcomm Incorporated Dynamic low power mode implementation for computing devices
US8527994B2 (en) 2011-02-10 2013-09-03 International Business Machines Corporation Guarded, multi-metric resource control for safe and efficient microprocessor management
KR101770736B1 (ko) 2011-03-17 2017-09-06 삼성전자주식회사 응용프로그램의 질의 스케쥴링을 이용한 시스템의 소모전력 절감 방법 및 그 방법을 이용하여 소모전력을 절감하는 휴대단말기
US20150234449A1 (en) * 2014-02-14 2015-08-20 Qualcomm Incorporated Fast power gating of vector processors
US10042416B2 (en) * 2015-07-20 2018-08-07 Sandisk Technologies Llc Memory system and method for adaptive auto-sleep and background operations
US10102131B2 (en) * 2015-09-30 2018-10-16 Apple Inc. Proactive power management for data storage devices to reduce access latency
US20170139716A1 (en) * 2015-11-18 2017-05-18 Arm Limited Handling stalling event for multiple thread pipeline, and triggering action based on information access delay
US10635335B2 (en) 2017-03-21 2020-04-28 Western Digital Technologies, Inc. Storage system and method for efficient pipeline gap utilization for background operations
US11269764B2 (en) 2017-03-21 2022-03-08 Western Digital Technologies, Inc. Storage system and method for adaptive scheduling of background operations
US11188456B2 (en) 2017-03-21 2021-11-30 Western Digital Technologies Inc. Storage system and method for predictive block allocation for efficient garbage collection
CN106849041B (zh) * 2017-03-27 2018-12-18 上海华力微电子有限公司 一种浪涌电流控制模块及其方法
US10705843B2 (en) 2017-12-21 2020-07-07 International Business Machines Corporation Method and system for detection of thread stall
US11934493B2 (en) * 2021-06-17 2024-03-19 EMC IP Holding Company LLC Anti-piracy protection service-based software license management system to prevent usage of unlicensed software after the trial period

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887383A (ja) * 1994-06-15 1996-04-02 Matsushita Electric Ind Co Ltd ディスクを有するコンピュータの節電方法
JPH08149542A (ja) * 1994-11-24 1996-06-07 Nec Corp 無線選択呼出受信機
JPH096465A (ja) * 1995-06-22 1997-01-10 Internatl Business Mach Corp <Ibm> 情報処理装置及びその制御方法
JP2001243113A (ja) * 2000-02-28 2001-09-07 Matsushita Electric Ind Co Ltd 記憶装置
JP2002529807A (ja) * 1998-11-04 2002-09-10 フィーニックス テクノロジーズ リミテッド インテリジェント・パワー・マネジメントを提供するための方法および装置
JP2003091430A (ja) * 2001-09-18 2003-03-28 Mitsubishi Electric Corp 故障個所解析装置及びその方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5775335A (en) * 1980-10-27 1982-05-11 Hitachi Ltd Data processor
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
JPH08272495A (ja) * 1995-03-31 1996-10-18 Mitsubishi Electric Corp 電力制御装置及び電力制御方法
US5781783A (en) * 1996-06-28 1998-07-14 Intel Corporation Method and apparatus for dynamically adjusting the power consumption of a circuit block within an integrated circuit
US6345362B1 (en) * 1999-04-06 2002-02-05 International Business Machines Corporation Managing Vt for reduced power using a status table
GB9925289D0 (en) * 1999-10-27 1999-12-29 Ibm Method and means for adjusting the timing of user-activity-dependent changes of operational state of an apparatus
US6625740B1 (en) * 2000-01-13 2003-09-23 Cirrus Logic, Inc. Dynamically activating and deactivating selected circuit blocks of a data processing integrated circuit during execution of instructions according to power code bits appended to selected instructions
US6845445B2 (en) 2000-05-12 2005-01-18 Pts Corporation Methods and apparatus for power control in a scalable array of processor elements
US6625737B1 (en) * 2000-09-20 2003-09-23 Mips Technologies Inc. System for prediction and control of power consumption in digital system
US6965763B2 (en) * 2002-02-11 2005-11-15 Motorola, Inc. Event coordination in an electronic device to reduce current drain
US7093141B2 (en) * 2002-12-18 2006-08-15 International Business Machines Corporation Power aware adaptive polling
US6885974B2 (en) * 2003-01-31 2005-04-26 Microsoft Corporation Dynamic power control apparatus, systems and methods
US20060123422A1 (en) * 2004-12-02 2006-06-08 International Business Machines Corporation Processor packing in an SMP server to conserve energy

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887383A (ja) * 1994-06-15 1996-04-02 Matsushita Electric Ind Co Ltd ディスクを有するコンピュータの節電方法
JPH08149542A (ja) * 1994-11-24 1996-06-07 Nec Corp 無線選択呼出受信機
JPH096465A (ja) * 1995-06-22 1997-01-10 Internatl Business Mach Corp <Ibm> 情報処理装置及びその制御方法
JP2002529807A (ja) * 1998-11-04 2002-09-10 フィーニックス テクノロジーズ リミテッド インテリジェント・パワー・マネジメントを提供するための方法および装置
JP2001243113A (ja) * 2000-02-28 2001-09-07 Matsushita Electric Ind Co Ltd 記憶装置
JP2003091430A (ja) * 2001-09-18 2003-03-28 Mitsubishi Electric Corp 故障個所解析装置及びその方法

Also Published As

Publication number Publication date
WO2006122102A2 (en) 2006-11-16
EP1889140A2 (en) 2008-02-20
WO2006122102A3 (en) 2007-12-21
EP2930590B1 (en) 2017-12-06
CN101288039A (zh) 2008-10-15
US20060259791A1 (en) 2006-11-16
EP2930590A1 (en) 2015-10-14
US7386747B2 (en) 2008-06-10
CN101288039B (zh) 2011-06-08
KR100922090B1 (ko) 2009-10-16
EP1889140B1 (en) 2015-06-17
EP1889140A4 (en) 2011-05-25
KR20080011692A (ko) 2008-02-05
MX2007014111A (es) 2008-02-05
TW200710726A (en) 2007-03-16
IL187136A0 (en) 2008-02-09
ES2547377T3 (es) 2015-10-05
TWI318748B (en) 2009-12-21
JP2008541274A (ja) 2008-11-20

Similar Documents

Publication Publication Date Title
JP4897796B2 (ja) アイドル要素予測回路およびアンチスラッシングロジック
US9703351B2 (en) Method and apparatus for power control
US7979725B2 (en) Computer power conservation apparatus and method that controls speculative execution by adjusting branch confidence threshold based on processor load
JP3845642B2 (ja) ユニット電力調整機構を備えた集積回路装置
US5878264A (en) Power sequence controller with wakeup logic for enabling a wakeup interrupt handler procedure
JP5074389B2 (ja) Simd並列処理の自動選択を備えたマイクロプロセッサ
JP5312478B2 (ja) データ・プロセッサのパフォーマンス予測
US9176875B2 (en) Power gating a portion of a cache memory
US8020014B2 (en) Method for power reduction and a device having power reduction capabilities
WO2009047664A1 (en) Non-recursive adaptive filter for predicting the mean processing performance of a complex system´s processing core
US20020140467A1 (en) System and method utilizing on-chip voltage controlled frequency modulation to manage power consumption
JP2007128556A (ja) Cpuの動作特性に応じてコンピュータの動作を制御する方法と装置
US20110078477A1 (en) Power management method for electronic device
Kondo et al. Design and evaluation of fine-grained power-gating for embedded microprocessors
US20030084353A1 (en) System and method for predictive power ramping
KR20040101344A (ko) 마이크로프로세서, 인스트럭션 시퀀스 발생 방법 및 이를구현한 프로그램 디바이스
US20230359260A1 (en) Signalling power level threshold event to processing circuitry

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100525

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100825

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100901

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100927

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110817

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110825

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111122

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111222

R150 Certificate of patent or registration of utility model

Ref document number: 4897796

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150106

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250