JP2015130035A - 半導体装置および制御方法 - Google Patents

半導体装置および制御方法 Download PDF

Info

Publication number
JP2015130035A
JP2015130035A JP2014000912A JP2014000912A JP2015130035A JP 2015130035 A JP2015130035 A JP 2015130035A JP 2014000912 A JP2014000912 A JP 2014000912A JP 2014000912 A JP2014000912 A JP 2014000912A JP 2015130035 A JP2015130035 A JP 2015130035A
Authority
JP
Japan
Prior art keywords
temperature
frequency
power
clock frequency
control
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
JP2014000912A
Other languages
English (en)
Inventor
幸仁 川邊
Yukihito Kawabe
幸仁 川邊
充治 原
Mitsuharu Hara
充治 原
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014000912A priority Critical patent/JP2015130035A/ja
Priority to US14/573,813 priority patent/US9590639B2/en
Publication of JP2015130035A publication Critical patent/JP2015130035A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05FSYSTEMS FOR REGULATING ELECTRIC OR MAGNETIC VARIABLES
    • G05F1/00Automatic systems in which deviations of an electric quantity from one or more predetermined values are detected at the output of the system and fed back to a device within the system to restore the detected quantity to its predetermined value or values, i.e. retroactive systems
    • G05F1/10Regulating voltage or current
    • G05F1/46Regulating voltage or current wherein the variable actually regulated by the final control device is dc
    • G05F1/462Regulating voltage or current wherein the variable actually regulated by the final control device is dc as a function of the requirements of the load, e.g. delay, temperature, specific voltage/current characteristic
    • G05F1/463Sources providing an output which depends on temperature
    • 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
    • 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/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/3243Power saving in microcontroller unit
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L1/00Stabilisation of generator output against variations of physical values, e.g. power supply
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L1/00Stabilisation of generator output against variations of physical values, e.g. power supply
    • H03L1/02Stabilisation of generator output against variations of physical values, e.g. power supply against variations of temperature only
    • H03L1/022Stabilisation of generator output against variations of physical values, e.g. power supply against variations of temperature only by indirect stabilisation, i.e. by generating an electrical correction signal which is a function of the temperature
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Electromagnetism (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)

Abstract

【課題】負荷に応じてクロック周波数(および電源電圧)を制御する半導体装置で、チップ温度が上限温度を超えない範囲で、無駄なパフォーマンス低下を抑制する制御の実現。【解決手段】クロックに応じて動作する回路部と、回路部の温度を検出する温度センサと、温度センサで検出された温度が所定値を超えた場合に、回路部の消費電力の時間差分に基づいてクロックの周波数を制御する制御部13,21,22と、を有する半導体装置。【選択図】図4

Description

本発明は、半導体装置およびその制御方法に関する。
マイクロプロセッサの性能向上にともない消費電力は年々上昇する傾向にあり、電力供給能力の上限やチップ温度上限のために、プロセッサ等の半導体装置を仕様上実行可能とされている最大負荷で動作させることができないという問題が表面化してきている。以下、半導体装置として、プロセッサ(CPU)を例とした場合を説明する。
プロセッサは、消費電力上限や温度上限を超えないように動作することが求められ、もしこれらの制約を超えた場合には、信号遅延などにより誤動作が発生する場合がある。そこで、プロセッサが通常動作時に消費電力上限や温度上限を超える可能性がある状況において、これら制約を超えないように負荷を調整することが行われる。負荷を調整する方法として、DFS(Dynamic Frequency Scaling)や、DVFS(Dynamic Voltage and Frequency Scaling)といった手法が知られている。DFSは、クロック周波数を動的に変更することで負荷を変化させる手法である。DVFSは、クロック周波数を下げることで生じるタイミング余裕の分だけ動作電圧を下げることで消費電力をさらに下げる手法である。
上記の手法を行う場合、負荷の上限を超えない範囲でなるべく高いクロック周波数で動作させることが、プロセッサの性能(パフォーマンス)の観点からは望ましい。負荷の上限を超えない範囲でなるべく高いクロック周波数で動作させる制御方法として、上限値の下に制御の閾値を設け、負荷がこの閾値を超えた時にクロック周波数や電源電圧を下げるという制御を開始する方法が一般的に行われる。これにより、クロック周波数または電源電圧が下がり、それに応じて負荷が下がる。プロセッサ(LSI)の温度が動作制約となる場合には、制御用の温度閾値を設け、プロセッサの温度が温度閾値を超えた時にクロック周波数を下げるという処理になる。ただし、温度が温度閾値を超えた時にクロック周波数を下げた場合も、実際にクロック周波数が下がるまでには遅延があり、その間温度は上昇を続ける。
この制御において、温度閾値を下げるとプロセッサのパフォーマンスが定常的に下がることになるため、なるべく温度閾値は上限温度に近い値であることが望ましい。しかし、温度閾値が上限温度に近すぎるとプロセッサの温度が温度閾値を超えてからクロック周波数が下がるまでの間に温度が上限温度を超えてしまう場合があり得る。そのため、温度閾値を、周波数制御にかかる遅延時間における温度上昇分以上低くする必要がある。
上記の温度制御で想定される最大の温度上昇が発生するのは、負荷変動により消費電力がステップ的に最大値に変化する場合である。この場合、温度閾値を超えた時に、クロック周波数を、最大の消費電力でも温度が上限温度を下回るようなクロック周波数に下げる必要がある。
温度閾値を超えた時の電力が最大消費電力より小さい場合はクロック周波数を上記のように下げる必要はない。しかし、検出した温度のみに基づいて周波数制御を行う場合、温度閾値超えした時点で最終的にどこまで温度が上昇するかを判別することが困難なため、負荷変動が最大の場合でも温度が上限を超えないように常に上記の周波数まで下げることになる。そのため、このような制御は、プロセッサのパフォーマンス低下につながる。
この対策として、温度閾値を2点設けて温度がそれぞれの閾値を超えた時間差を測定するなどして間接的に温度変化を予測することはできるが、その場合実質的に閾値温度の低下や制御遅延の増大になり、定常的なプロセッサのパフォーマンスが低下してしまう。
逆に負荷が軽くなり温度に余裕が生じた場合に周波数を上げるために、上記と同様に周波数制御用の閾値を設けてその閾値を下回ったらクロック周波数を上げるという制御が考えられる。しかし、この場合も閾値を下回った時点でどこまで温度が下がるのかを温度のみで判定することが困難である。具体的には、クロック周波数を上げすぎて逆に温度上限を超えてしまう場合が起き得る。これを防止するためは、少しずつクロック周波数を上げていくことになる。しかし、このような制御では、適正なクロック周波数になるまでに時間がかかり、その間プロセッサのパフォーマンスが、無駄に低下した状態となる。
このような無駄なパフォーマンス低下を防ぐために温度の代わりに消費電力をモニタして消費電力の値に応じてクロック周波数を切り替えるという構成が考えられるが、以下のような問題がある。
(1)動作制約である温度制約をシステムの定格の熱抵抗値を用いて電力値に置き換えて制御を行うため、直接温度で制御するのと比較して実際の熱抵抗との差だけ変換誤差マージンが発生する。マージンを考慮する分、精密な制御が難しくなる。
(2)電力制御では上限温度に対応する上限電力を予め設定することになり、周囲温度が変わって温度余裕が変化しても、それに上限電力が追従できないため周囲温度の変化に伴う電力余裕の変化に追従できない。
以上の通り、消費電力に基づく制御は、様々な制御マージンよる定常パフォーマンスの低下につながる。また、温度モニタおよび電力モニタなどで観測したその時の温度および消費電力の両方を用いて制御することも考えられるが、制御が複雑になるという問題がある。
特開2004−310785号公報 特開2012−221301号公報 特開2003−140782号公報
以上説明したように、電力供給能力には余裕があるがチップの動作保障温度条件が厳しく、チップのジャンクション温度の上限制約が、最大許容負荷を決定するような動作条件のマイクロプロセッサのような半導体装置がある。このような半導体装置において、チップ温度が上限温度を超えないように、クロック周波数、さらに必要に応じて電源電圧を制御し、パフォーマンス低下を低く抑えることが望まれている。
実施形態によれば、負荷に応じてクロック周波数(必要であれば電源電圧)を制御する半導体装置で、チップ温度が上限温度を超えない範囲で、無駄なパフォーマンス低下を抑制する制御が実現される。
発明の第1の観点によれば、半導体装置は、クロックに応じて動作する回路部と、回路部の温度を検出する温度センサと、温度センサで検出された温度が所定値を超えた場合に、回路部の消費電力の時間差分に基づいてクロックの周波数を制御する制御部と、を有する。
発明の第2の観点の制御方法は、クロックに応じて動作する回路部を有する半導体装置のクロック周波数の制御方法であって、回路部の温度を検出し、回路部の消費電力をモニタし、モニタした前記消費電力の時間差分を算出し、検出した温度が所定上限を上回った際に、消費電力の時間差分に基づいて前記クロック周波数を変更する。
実施形態によれば、負荷に応じてクロック周波数(必要であれば電源電圧)を制御する半導体装置で、チップ温度が上限温度を超えない範囲で最大のクロック周波数になるように制御され、無駄なパフォーマンス低下を抑制する。
図1は、DVFS制御を行う一般的な半導体装置(プロセッサ:CPU)の構成例を示す図である。 図2は、電力増加によって温度が上昇して閾値を超える際の電力および温度の時間経過に応じた変化例を表した図である。 図3は、温度閾値超えした時にクロック周波数を、最悪でも温度が上限値を下回るようなクロック周波数まで下げる問題点を説明する図である。 図4は、DVFS制御を行う実施形態の半導体装置(チップ、ここではプロセッサ:CPU)の構成を示す図である。 図5は、電力モニタの処理を行う回路例を示す図である。 図6は、同じ温度で異なるステップ状の電力変動量による温度の時間変化の例を示す図である。 図7は、異なる温度でステップ状の同じ電力変動量による温度の時間変化の例を示す図である。 図8は、電力の時系列サンプルの指数移動平均およびその時間差分を説明する図であり、(A)は電力がステップ変化した場合の指数移動平均およびその時間差分の変化を、(B)は時系列データの指数重みづけを示す。 図9は、指数移動平均の時間差分を生成する回路の概略構成を示す図である。 図10は、指数移動平均の時間差分に対応する温度変化速度および温度変動量の例を示すテーブルである。 図11は、電圧・周波数制御部の制御手順を示すフローチャートである。 図12は、図11の制御方法を実行した場合の温度変化の例を示す図である。 図13は、さらに別の温度閾値を設けた場合の電圧・周波数制御部13の制御手順を示すフローチャートである。 図14は、図13の制御方法を実行した場合の温度変化の例を示す図である。 図15は、最終的に調整されるPLLのクロック周波数を導出するための表の例を示す図である。 図16は、電力値の差分ΔP/Pを計算する回路例を示す図である。 図17は、クロック周波数を下げる側の制御に用いる周波数変換テーブルを示す。 図18は、クロック周波数を上げる側の制御に用いるテーブルを示す。 図19は、急激に周波数を低下させるテーブルの例を示す。 図20は、対象プロセッサがパワーゲーティングを行う場合の電力モニタの構成を示す図である。 図21は、負荷の低い周波数領域はソフトウェア制御を行い、負荷の高い周波数領域はハードウェア制御を行う場合の、周波数コードと、周波数制御方式の種別(ハードウェアとソフトウェア)と、クロック周波数と、を対応づけたテーブルの例を示す。 図22は、温度が温度閾値を超えて上昇し、クロック周波数を下げる場合の実施形態の制御の効果を説明する図であり、(A)温度のみで制御する場合の温度変化を、(B)が実施形態の制御の場合の温度変化を示す。 図23は、温度が温度閾値を超えて低下し、クロック周波数を上げる場合の実施形態の制御の効果を説明する図であり、(A)温度のみで制御する場合の温度変化を、(B)が実施形態の制御の場合の温度変化を示す。 図24は、実施形態の制御方法を適用したマルチコアプロセッサの第1構成例を示す図である。 図25は、実施形態の制御方法を適用したマルチコアプロセッサの第2構成例を示す図である。 図26は、実施形態の制御方法を適用したマルチコアプロセッサの第3構成例を示す図である。
実施形態を説明する前に、チップ温度が限界温度を超えない範囲内で、半導体装置が高い処理性能を達成するようにクロック周波数、および必要に応じて電源電圧を調整する一般的な周波数・電圧制御技術について説明する。以下の説明では、半導体装置として、プロセッサ(CPU)を例とした場合について説明する。
前述のように、プロセッサが通常動作時に消費電力上限や温度上限を超える可能性がある状況においてこれら制約を超えないように負荷を調整する方法として、クロック周波数を動的に変更するDFSや、電源電圧も下げることでDVFSが知られている。以下、主としてクロック周波数の動的変更について説明するが、電源電圧についても同様に制御される。
温度の上限を超えない範囲でなるべく高いクロック周波数でプロセッサを動作させるように制御する方法として、上限値の下に制御の閾値を設け、温度がこの閾値を超えた時にクロック周波数や電源電圧を下げるという制御を開始する制御方法が知られている。クロック周波数や電源電圧の下げを指令しても、実際に負荷が下がるまで遅延があり、その間にも温度は増加する。そこで、温度が上限値より低い閾値を超えるとクロック周波数(および電源電圧)を下げて負荷の減少を開始すると、遅延があっても温度が上限値に達するまでの間にクロック周波数(および電源電圧)が下がり、負荷が減少する。
図1は、DVFS制御を行う一般的な半導体装置(プロセッサ:CPU)の構成例を示す図である。
CPU10は、内部クロックを生成するPLL回路11と、内部電源(図示せず)の発生する電圧を制御する電源制御部12と、電圧・周波数制御部13と、を有する。温度モニタがチップ内(オンチップ)またはチップ外(オフチップ)に設けられており、チップ(CPU)の温度を検出し、検出した温度が温度閾値より高いか比較し、比較結果が電圧・周波数制御部13に供給される。電圧・周波数制御部13は、検出した温度が温度閾値より高いという比較結果を受けると、PLL11の生成するクロックの周波数を下げ、電源制御部12に電源電圧を低下させる指令を出力する。
温度閾値を低くすると、CPUのパフォーマンスが定常的に下がることになるため、なるべく閾値温度は上限温度に近い値にすることが望ましい。しかし、閾値温度が上限温度に近すぎると温度が閾値を超えてから周波数(および電源電圧)が下がるまでの間に温度が上限温度を超えてしまうため、周波数制御(および電源電圧)に要する遅延における温度上昇分の余裕をみて温度閾値を設定する。
図2は、電力増加によって温度が上昇して閾値を超える際の電力および温度の時間経過に応じた変化例を表した図である。図2では、太い実線が消費電力を、太い破線が温度を、細い実線が温度の上限値および温度閾値を示す。
温度制御の最悪の場合(ワーストケース)は、図2に示すように、負荷変動により電力がステップ的に最悪値Pmaxに変化するケースである。この場合、クロック周波数をワーストの消費電力でも温度が上限値を下回るようなクロック周波数(Fminとする)に下げる必要がある。そのため、温度が温度閾値を超えると、クロック周波数をFminに下げる指令を出すが、実際にクロック周波数が低下して負荷が減少し、実際に温度が低下するまでの制御遅延がある。そのために、温度は、温度閾値を超えた後も上昇する。そのため、周波数制御(および電源電圧)に要する遅延における温度上昇(Xで示す)分の余裕をみて温度閾値を設定する。
上記のケースで、温度が閾値超えした時の電力がPmaxより小さい(ワーストケースでない)場合、クロック周波数をFminまで下げる必要はない。しかし、温度に基づいて周波数制御を行う場合、温度閾値超えした時点で最終的にどこまで温度が上昇するかを判別することが困難なため、負荷変動が最悪の場合でも温度が上限を超えないように常にFminまでクロック周波数を下げることになる。
そこで、温度閾値を2点設けて温度がそれぞれの閾値を超えた時間差を測定するなどして間接的に温度変化を予測することはできるが、その場合実質的に閾値温度の低下や制御遅延の増大になり定常的な性能が低下してしまうという問題がある。
逆に、負荷が軽くなり温度に余裕が生じた場合にクロック周波数を上げるために、クロック周波数を下げる制御と同様に、クロック周波数制御用の下側の温度閾値を設けてその下側の温度閾値を下回ったらクロック周波数を上げるという制御が考えられる。しかし、この場合も下側の温度閾値を下回った時点で、どこまで温度が下がるのかを温度のみで判定することが困難である。そのため、クロック周波数を上げすぎて逆に温度の上限値を超えてしまうのを防止するために、少しずつ周波数を上げていくことになり、適正なクロック周波数になるまでに時間がかかりその間無駄にパフォーマンスが低い状態となる。
図3は、上記の温度閾値超えした時にクロック周波数をFminまで下げる問題点を説明する図である。図3では、太い実線が消費電力を、太い破線が温度を、細い実線が温度の上限値を、細い破線がクロック周波数のdown閾値およびup閾値を、示す。
図3に示すように、電力が大きく上昇すると、温度は温度閾値を超え、それに応じてクロック周波数をFmaxからFminに変化させるので、温度は上限値近くまで上昇した後に低下に転じ、温度が温度閾値を下回る。そこで、クロック周波数をFminからFmaxに変化させるが、電力上昇が小さくても、温度は温度閾値を超えるためクロック周波数をFmaxからFminに変化させる。この場合、温度は、少し上昇した後、低下を開始する。クロック周波数のFminへの低下により電力は大幅に低下するため、温度は比較的低い温度からさらに低下する。そこで、クロック周波数を増加させ消費電力が段階的に増加するが、温度が温度閾値近くまで上昇するのに長い時間を要することになる。この間、プロセッサは、本来得られるパフォーマンスに比べて低いパフォーマンスで動作することになり、プロセッサのパフォーマンス低下につながる。
このような無駄なパフォーマンス低下を防ぐために、温度の代わりに消費電力をモニタして消費電力の値に応じてクロック周波数を切り替えるという構成も考えられるが、前述のような問題がある。そのため、様々な制御マージンなどによる定常性能の低下につながる。また、温度制御を行い温度が閾値を超えた時に電力モニタなどで観測したその時点の消費電力を用いて制御することも考えられるが、それだけでは問題を解決できず、良好な制御が行えない。
以下に説明する実施形態では、上記の温度による周波数制御において、負荷増加や負荷減少により温度が制御閾値(温度閾値)をまたいだ時の周波数制御で生じる無駄なパフォーマンス低下を抑え、温度制御における過渡的なパフォーマンスを向上する。
図4は、DVFS制御を行う実施形態の半導体装置(チップ、ここではプロセッサ:CPU)の構成を示す図である。
実施形態のCPU10は、PLL回路11と、電源制御部12と、電圧・周波数制御部13と、電力モニタ21と、電力変動情報生成部22と、を有する。PLL回路11は、内部クロックを生成し、図1の一般的なCPUのPLLと同じものである。電源制御部12は、内部電源(図示せず)の発生する電圧を制御し、図1の一般的なCPUの電源制御部と同じものである。実施形態でも、温度モニタがチップ内(オンチップ)またはチップ外(オフチップ)に設けられており、チップ(CPU)の温度を検出し、検出した温度が温度閾値より高いか比較し、比較結果が電圧・周波数制御部13に供給される。電力モニタ21は、チップ各部の主要な動作情報のカウント値から動的電力値を概算するアクティビティカウンタベースのモジュールである。電力変動情報生成部22は、電力モニタ21から定期的に動的電力値を収集し、その時間変動の情報を元に周波数制御に使用する電力変動情報を生成して電圧・周波数制御部13に送る。電圧・周波数制御部13は、閾値比較結果(温度情報)を入力とし、温度が閾値を跨いだ時点の電力変動情報に基づいて最適な周波数を求め、それに基づいてPLL11および電源制御部12を制御し、クロックの周波数および電源電圧を制御する。
実施形態の半導体装置(CPU)10は、マイクロプロセッサで電力供給能力には余裕があるがチップの動作保障温度条件が厳しくチップのジャンクション温度の上限制約がプロセッサの最大許容負荷を決定するような動作条件のマイクロプロセッサである。このようなプロセッサにおいて、チップ温度が温度閾値を超えないようにクロック周波数を下げる場合やチップ温度が規定温度以上に下がった時にクロック周波数を上げる場合などの周波数制御における性能低下を低く抑えプロセッサの性能を向上する。
図5は、電力モニタ21の処理を行う回路例を示す図である。
電力モニタ21は、複数(ここではN個)のレジスタ21A−21Nと、複数の乗算器22A−22Nと、加算器23と、を有する。電力モニタ21は、チップ各部の消費電力と相関の高い信号の動作率情報A−Nを取得し、乗算器22A−22Nにより、動作率情報A−Nにレジスタ21A−21Nに記憶された適当な重み付係数を乗じ、さらに加算器23で総和を取る。この総和は、チップの動的電力値にほぼ対応する。
次に、電力変動情報生成部22の生成する電力変動情報について説明する。周囲温度の変動によって温度閾値や上限値に対応する電力値は変化するため、電力値自身は周波数調整には利用できない。そこで、閾値を超える直前の短期間の電力変動を示す情報を生成して電力変動情報として利用する。
図6および図7は、ステップ状の電力変動による温度の時間変化の例を示す図であり、図6は同じ温度で異なる電力変動量が発生した場合を示し、図7は異なる温度で同じ電力変動量が発生した場合を示す。
図6では、温度は、同じ温度から電力変動量a)−c)に応じて上昇する。温度の上昇途中で負荷(クロック周波数)を下げると、実線のように温度が低下する。もし、温度の上昇途中で負荷(クロック周波数)を下げないと、破線のように温度が上昇する。これは図7でも同じである。変化前の温度が同じであるということは、消費電力は同じであったと考えられ、クロック周波数は、電力変動量が大きいほど増加量が大きく、電力変動量が小さいほど増加量が小さいと考えられる。温度が温度閾値を超えると、いずれの場合もクロック周波数を減少させるが、温度が高いほどクロック周波数(消費電力)の減少量を大きく、温度が低いほどクロック周波数(消費電力)の減少量を小さくすれば、近い温度に低下する。したがって、図6の場合は、時系列で、ある期間の電力サンプル間の電力変動量を電力変動情報として出力すれば良いように見える。
しかし、図7に示すように、電力変動開始時の温度が異なる場合は、電力変動幅が同じでも閾値を超えてからの温度変動が異なるため、同じ周波数調整量を指示したのでは、低温で開始した場合に無駄に温度が低下することになる。そのため、閾値を超えてからの温度変動に応じた周波数調整量を指示することが望ましい。具体的には、閾値を超えてからの温度変動が大きく、高い温度まで上昇した場合には、クロック周波数(消費電力)の減少量を大きく、閾値を超えてからの温度変動が小さく、低い温度まで上昇した場合には、クロック周波数(消費電力)の減少量を小さくする。したがって、単なるある固定期間の電力変動量では電力変動情報として不十分である。そこで、実施形態では、電力変動情報(周波数調整量)として、電力の時間差分、具体的には電力の時系列サンプルの指数移動平均の時間差分(隣接サンプルの差分)情報を利用する。
図8は、電力の時系列サンプルの指数移動平均およびその時間差分を説明する図であり、(A)は電力がステップ変化した場合の指数移動平均およびその時間差分の変化を、(B)は時系列データの指数重みづけを示す。
指数移動平均は移動平均の一種で、図8の(B)に示すように、過去の一定期間の電力サンプルに時系列に沿ってα1、α2、α3…のような指数的な重みを付けて平均を取ったものである。例えば、図8の(A)で示すように、P_startからP_endにステップ変化した電力値に対して指数移動平均を取ると、電力変化の一次遅れの特性を持つ((P_end-P_start)(1-e^(-t/τ)))というカーブが得られる。ここで、τは指数重みの基数で決まる時定数である。この式で温度閾値を超えた時の時間微分(つまり温度変化速度)を算出して整理すると(P_end-P_th)/τとなり、閾値温度に対応する電力P_thと変化後の定常電力P_endの差分ΔPに比例した値になる。つまりこの電力変動値ΔPと現在の消費電力Pおよび現状の周波数fを用いると消費電力をP_thに近づけるための現状の周波数fからの周波数調整量をΔf=-fΔP/Pとして求めることができる。
この式はP_start<P_endとP_start>P_endのどちらの場合でも成立するため、温度が上限側温度閾値を上回った場合と下限側温度閾値を下回った場合のどちらの制御にも用いることができる。
指数移動平均E(t)を漸化式で表すとある定数α(0<α<1)と消費電力P(t)を用いて次のように表せる。
E(t)=(1-α)P(t)Δt+αE(t-1)
ここで、αは指数移動平均の指数重みの基数となる。
この式は、内部の熱容量と放熱部への熱抵抗を持った系で電力P(t)を与えた時の温度を表す漸化式でもあるため、指数移動平均と言う処理で消費電力の時系列の情報から温度情報を概算していると考えられる。このため、ステップ応答でない電力変化についても温度変化に近い変動を示す指針となり、温度閾値におけるその微分値は温度が閾値超えした時点での温度変化速度とみなすことができる。
図9は、指数移動平均の時間差分を生成する回路の概略構成を示す図である。
この回路は、指数移動平均値E(t)に係数αを乗じる乗算器31と、電力値P(t)に係数1−αを乗じる乗算器32と、2つの乗算器出力の加算器33と、E(t)を保持するレジスタ34と、加算器33とレジスタ34の出力差を算出する減算器35と、を有する。この回路では、乗算器32は、定期的に更新される電力値P(t)を入力とし、その電力を(1-α)倍(0<α<1)し、乗算器31は、その時点での指数移動平均値E(t)をα倍し、2つの乗算器31および32の出力を加算器33で加算する。αは指数移動平均の時定数を決めるパラメータである。本実施形態では、LSI10およびLSIとパッケージの間の熱伝導性材料などで決まる熱時定数と近い特性になるようにαを決めることによりチップ内の温度の急峻な変化に対応した特性を得ることができる。αや1-αを理想値にもっとも近い1/2のべき乗等に合わせることにより乗算回路31および32を簡単化できる。
図10は、指数移動平均の時間差分に対応する温度変化速度および温度変動量の例を示すテーブルである。
図10において、ΔP(t)/Δtは、図9の指数移動平均の差分回路の出力値の上位3ビットの値である。例えば、温度が閾値を超えた時点で得られた電力変動情報が5だった場合、その時の温度変化速度が0.141(℃/ms)付近の値であり、閾値に対応する電力から実際電力の差が約26Wであることを示す。指数移動平均を表現するビット数が有限であるため、電力が一定時間固定になると指数移動平均値はいずれ収束して差分値はゼロになる。差分値0が入力された場合には既定の微小変動幅で調整し続けることになる。
広い時間領域で有効な値を出力するためには指数移動平均を格納するレジスタのビット数を増やした上でαを調整して時定数を増やすといった対策が必要となる。測定したい遅延の範囲を複数の領域に分割してその領域ごとに指数移動平均取るといった方法でも対処することができる。
次に、電圧・周波数制御部13での制御方法について説明する。電圧・周波数制御部13は、温度センサと温度閾値との比較結果を常時観測し、以下に説明するような調整を温度が温度閾値を超える毎に実行する。前述のように、この制御方法は、周波数を上げる場合にも下げる場合にも使用できる。そのため、例えば温度を下げるための温度閾値T_downと温度を上げるための閾値T_upの2つの閾値を用意し、温度がT_downを超えた時と温度がT_upを下回った時に、以下の制御方法を用いて周波数調整を行う。T_downとT_upは同じ値であっても構わない。
図11は、電圧・周波数制御部13の上記の制御手順を示すフローチャートである。
ステップS10では、検出した温度TjがT_downより大きいかを判定し、大きければステップS11に進み、小さければステップS20に進む。
ステップS20では、検出した温度TjiがT_upより小さいかを判定し、小さければステップS21に進み、大きければステップS30に進む。
ステップS30では、規定の時間経過するまで待機し、その後ステップS10に戻る。
ステップS11では、電力変動情報Pを読み取る。
ステップS12では、電力変動情報Pに基づいてクロック周波数・電源電圧を制御する。
ステップS13では、規定の時間経過するまで待機し、その後ステップS14に進む。
ステップS14では、新たに検出した温度TjがT_down以下であるか判定し、以下であればステップS10に戻り、大きければステップS15に進む。
ステップS15では、一定時間温度閾値T_downを上回り続けているか判定し、一定時間温度閾値を上回り続けていればステップS16に進み、一定時間は温度閾値を上回り続けていなければステップS13に戻る。
ステップS16では、強制的にクロック周波数を大幅に低減してステップS10に戻る。これにより、負荷(消費電力)が大幅に削減され、温度が下がるように制御されるが、実際には時間遅延を持っているので、実際に温度が低下するまで、ステップS10からS16を繰り返すことになる。
ステップS21では、電力変動情報Pを読み取る。
ステップS22では、電力変動情報Pに基づいてクロック周波数・電源電圧を制御する。
ステップS23では、規定の時間経過するまで待機し、その後ステップS24に進む。
ステップS24では、新たに検出した温度TjがT_up以上であるか判定し、以上であればステップS10に戻り、小さければステップS25に進む。
ステップS25では、一定時間温度閾値T_upを下回り続けているか判定し、一定時間温度閾値を下回り続けていればステップS26に進み、一定時間は温度閾値を上回り続けていなければステップS23に戻る。
ステップS26では、1段階クロック周波数を上げてステップS10に戻る。これにより、負荷(消費電力)が1段階増加し、温度が上昇するように制御されるが、実際には時間遅延を持っているので、実際に温度が上昇するまで、ステップS10、S20からS26を繰り返すことになる。
図12は、図11の制御方法を実行した場合の温度変化の例を示す図である。
図12に示すように、温度が温度閾値T_downを超えて上昇すると、ステップS16のクロック周波数の大幅な低減が行われるため、ある遅延時間後から温度が低下を開始する。また、温度が温度閾値T_upを超えて低下すると、ステップS26のクロック周波数の1段階の増加が繰り返し行われるため、ある遅延時間後から温度が上昇を開始する。
なお、温度閾値T_downとT_upが同じ値の場合には、その温度閾値を中心に温度が上げ下げを繰り返すという処理になる。
なお、図11の制御方法では、想定外の大きな電力が消費された場合やクロック周波数制御中にさらに大きな負荷変動が発生した場合に、温度の上限値を超えて誤動作が発生する可能性がある。そこで、温度閾値T_downとT_upに加えて、温度の上限値とT_downとの間にもう一段閾値を設け(仮にT_down2と呼ぶ)、温度が閾値T_down2を超えた場合は、高速な負荷低減を行い負荷(消費電力)を更に下げるといった2段階の電力制御が考えられる。高速な負荷低減は、クロックパルスの間引きや同時命令発行数の強制削減といった論理動作を用いる方法と、想定される最大の負荷でも対処可能な安全な十分低い周波数(通常は最低動作周波数)までクロック周波数を下げる方法があり、これらを併用する。
図13は、さらに温度閾値T_down2を設けた場合の電圧・周波数制御部13の制御手順を示すフローチャートである。
図13の制御方法は、ステップS0、S40およびS41を設けたことが図11の制御方法と異なる。
ステップS0は、ステップS10の前に行われ、検出した温度TjがT_down2より大きいかを判定し、大きければステップS40に進み、小さければステップS10に進む。ステップS10以降は、ステップS41を設けた以外図11と同じである。
ステップS40では、上記の論理動作を用いる方法と、安全な周波数にクロック周波数を下げる方法と、を強制的に行う。これにより負荷(消費電力)は、急激に低下し、温度も低下する。ステップS40の後はステップS0に戻る。
ステップS41は、ステップS13とS14の間で行われ、検出した温度TjがT_down2より大きいかを判定し、大きければステップS40に進み、小さければステップS14に進む。
図14は、図13の制御方法を実行した場合の温度変化の例を示す図である。
図14に示すように、温度が温度閾値T_downを超えて上昇すると、図12の場合のように、クロック周波数の大幅な低減が行われ、温度が低下を開始する。さらに、温度が温度閾値T_downを超えて、さらにT_down2を超えて上昇した場合には、急激に負荷(消費電力)を下げ、これに応じて温度が急激に低下する。
図15は、最終的に調整されるPLL11のクロック周波数を導出するためのテーブルの例を示す図である。
最終的に調整されるPLL11のクロック周波数は、新周波数=f+Δf=f(1-ΔP/P)で求める。そのため、例えば、図15の(A)および(B)に示すような周波数導出テーブルおよび周波数・電圧導出テーブルを用意して周波数を求める。図15の(A)は、周波数制御対象プロセッサのクロックが取りうる周波数およびそれに対応する内部使用上のコードの対応を表すとする。また、図15の(B)は、プロセッサが電源制御部12を介して電源電圧も制御する場合に使用するテーブルで、上記のコードに対応して周波数・電圧が対応づけられている。
図16は、上の式のΔP/Pを計算する回路例を示す図である。
図16の回路は、図9の回路に、減算器35の出力とP(t)との比ΔP/Pを計算する除算器36を追加したものである。ここでは、除算器36の出力は、説明の都合上、演算値の大きさに応じた-6,-5, …. 5,6の数値で表されているとする。
図17は、クロック周波数を下げる側の制御に用いる周波数変換テーブルを示す。
図18は、クロック周波数を上げる側の制御に用いるテーブルを示す。
例えば、ある時点で、クロック周波数が4(コード値)の状態で負荷が上昇して温度がT_downを超えて上昇したとする。この時のΔP/Pの値が2だった場合、電圧・周波数制御部13は図17のテーブルをから新しい周波数を求める。図17のテーブルのΔP/P=2、周波数コード=4の場所の値が1なので電圧・周波数制御部13は周波数を1に下げる。また、クロック周波数が2(コード値)の状態で負荷が下がり温度がT_upを下回ったとする。この時のΔP/Pの値が-4だった場合、電圧・周波数制御部13は図18のテーブルから新しい周波数を求める。図18のテーブルのΔP/P=-2,周波数コード=4の場所の値が7なので電圧・周波数制御部は周波数を7に上げる。
前述のように、温度が温度閾値T_down2を超えて上昇した場合や、過剰に負荷が上がった場合には、通常用いるより低い周波数にし、急激に負荷を低減することが望ましい。
図19は、そのような急激に周波数を低下させるテーブルの例を示す。
図19のテーブルは、図18のテーブルに比べて周波数コードの値が小さい。使用方法は、図18と同じなので、説明は省略する。
半導体装置では、半導体装置内を複数のブロックに分割し、ブロックごとに電源電圧の供給を制御し、ブロックごとにリーク電力を低減するパワーゲーティングが行われる。リーク電力は温度変化の後で変化するため、対象プロセッサがパワーゲーティングを行わない場合は、リーク電力を考慮する必要はない。そのため、電力モニタ21は、図5のようにアクティビティカウンタで取得したチップの主要信号の動作率に適当な係数値をかけて加算して求める一般的な動的電力モニタで形成してもよい。しかし、対象プロセッサがパワーゲーティングを行い、一部のブロックへの電力供給を遮断できる場合はそのブロックのリーク電力が温度に依存せずに急激に変化することになる。その場合には、図5のような電力モニタでは電力を正確に検出できない。
図20は、対象プロセッサがパワーゲーティングを行う場合の電力モニタ21の構成を示す図である。
図20に示すように、電力モニタ21は、図5の構成に加えて、セレクタ24A−24Nと、加算器25と、加算器26と、を有する。セレクタ24A−24Nは、対応するブロックへの電源供給が行われる時にはゼロを選択し、対応するブロックへの電源供給が行われない時には各ブロックのリーク電力の見積もりを選択する。ブロックへの電源供給が行われる時には動作率情報によりブロックの消費電力のみが加算される。また、ブロックへの電源供給が行われない時には動作率情報はゼロになるが、リーク電力があるので、その分はセレクタによりリーク電力の見積もりを選択することにより考慮される。このように、図20の電力モニタ21は、パワーゲーティング対象となるモジュールのリーク電力の変動も加味した電力をモニタにする。
以上説明した実施形態の半導体装置(プロセッサ)の周波数制御方式は、ソフトウェアによる周波数制御と共に使用される場合がある。例えばソフトウェアが何らかのモードレジスタに動作モード情報を書き込むことでソフトウェアモードによる制御とハードウェア制御が切り替わることが考えられる。
図21は、負荷の低い周波数領域はソフトウェア制御を行い、負荷の高い周波数領域はハードウェア制御を行う場合の、周波数コードと、周波数制御方式の種別(ハードウェアとソフトウェア)と、クロック周波数と、を対応づけたテーブルの例を示す。
図21の使用方法は、図18および図19と同じなので、説明は省略する。
また、ソフトウェア制御で、モード0に設定したら自動的にハードウェア制御に切り替わるといった運用も考えられる。このようにソフトウェア制御と切替・連携する場合には、ソフトウェア制御のモードの時にはハードウェアによる制御の仕組みを無効化する機能を持たせる。ただし、ソフトウェア制御の場合でも温度上限を超えると誤動作するという状況は変わらないため、前述の強制負荷低減用の閾値を有効にし、温度上限を超える前に強制的に負荷が下がるようにしておくといった対策を取ることが望ましい。
以上説明したように、動作保障温度条件が最大許容負荷を決定するような動作条件の半導体装置で、温度上限と制御閾値の間のマージンを周波数制御遅延での最大温度変化程度にすることが行われる。実施形態によれば、このような場合にも、制御閾値超え時の無駄な周波数低下を抑え、パフォーマンスを向上することが可能となる。
図22は、温度が温度閾値を超えて上昇し、クロック周波数を下げる場合の実施形態の制御の効果を説明する図であり、(A)温度のみで制御する場合の温度変化を、(B)が実施形態の制御の場合の温度変化を示す。
クロック周波数が最高3GHz、最低1.3GHzで、その間のクロック周波数に調整可能なプロセッサがあり、このプロセッサで一番消費電力が大きい処理を実行した場合には周波数を1.3GHzまで落とさないと温度が動作上限値を超えてしまうと仮定する。ここで、クロック周波数を1.3GHzまで下げないと温度が上限を超える消費電力が大きい負荷a、2.0GHzまで下げないと温度が上限を超える中程度の負荷b、2.6GHzまで下げれば温度が上限を超えない小さい負荷cの3つの負荷の処理を実行する場合を考える。
まず、温度のみで周波数を制御する場合、図22の(A)に示すように、a、b、cのいずれの負荷でも温度閾値を超えた時点で、最悪ケースの負荷上昇でも温度が上限を超えないように一律に1.3GHzまで下げてしまう。この下げすぎたクロック周波数は、この後で例えば周波数を上げる側の閾値を別途設けて制御することなどにより徐々に適正な周波数に戻っていく。
これに対し、実施形態では、図22の(B)に示すように、温度が温度閾値を超えた時点での電力変動量に応じてなるべく無駄な周波数低下がないように周波数を調整するため、負荷bでは2.0GHz付近に調整され、負荷cでは2.6GHz付近に調整される。このように実施形態では、過渡的な無駄なパフォーマンス低下を大きく抑制する。
図23は、温度が温度閾値を超えて低下し、クロック周波数を上げる場合の実施形態の制御の効果を説明する図であり、(A)温度のみで制御する場合の温度変化を、(B)が実施形態の制御の場合の温度変化を示す。
温度のみで周波数を制御する場合、図23の(A)に示すように、負荷が軽くなり温度が温度閾値を下回った時に、最終的に温度がどこまで下がるかわからないため、逆側に振りすぎて温度上限を超えることがないように少しずつ段階的に周波数を上げていく。
これに対して、実施形態では、図23の(B)に示すように、温度が温度閾値を下回った時点で温度の下げ幅に応じてクロック周波数が上昇する。そのため、より高速に温度閾値付近まで温度が上昇することになり、温度閾値より大きく温度が下がる時間、言い換えれば無駄にパフォーマンスが低下する時間を短くすることができる。
上記の効果は、いずれも過渡性能の向上ではあるが、負荷変動が頻繁に起こるプログラムではこのような過渡的な性能向上が定常的な性能向上に繋がる。
以上説明した実施形態の半導体装置は、図4に示すように、チップに1個のプロセッサ(CPU)を搭載したマイクロプロセッサであったが、近年、複数のコアプロセッサを登載したマルチコアプロセッサが広く使用されている。実施形態の制御方法は、マルチコアプロセッサにも適用可能であるが、適用する構成には複数の変形例があり得る。以下、変形例のいくつかを説明する。
図24は、実施形態の制御方法を適用したマルチコアプロセッサの第1構成例を示す図である。
第1構成例のマルチコアプロセッサは、それぞれ電力モニタおよび温度センサを有する複数のコアプロセッサ51A−51Mを有し、複数のコアプロセッサ51A−51Mは、PLL64から供給される共通のクロックで動作する。従って、複数のコアプロセッサ51A−51Mは、同期して動作する。
第1構成例のマルチコアプロセッサは、さらに、温度違反検知部52A−52Mと、電力変動周波数指示生成部53A−53Mと、チップ電力集計&電力変動情報生成部61と、ワースト周波数選択部62と、DVFS制御部63と、PLL64と、を有する。温度違反検知部と電力変動周波数指示生成部の組が、各コアプロセッサに対応して実施形態の制御方法を行い、各コアプロセッサ用のクロック周波数および電源電圧制御信号を生成する。
第1構成例のマルチコアプロセッサでは、各コアプロセッサ用のクロック周波数および電源電圧制御信号を勘案してチップ全体の制御を行う。PLL64から共通に供給するクロック周波数は、電力変動周波数指示生成部53A−53Mが生成したクロック周波数の最悪(ワースト:最小周波数)のクロック周波数に合わせる。そのため、ワースト周波数選択部62は、複数の電力変動周波数指示生成部53A−53Mが出力するクロック周波数から最悪のクロック周波数を選択する。
第1構成例では、さらに、チップ全体の消費電力および電力変動を考慮して、ワースト周波数選択部62における最悪のクロック周波数の選択を変更する。例えば、全体の消費電力が大きい場合には、複数の電力変動周波数指示生成部53A−53Mが出力するクロック周波数の最悪のクロック周波数よりさらに低い最低クロック周波数を選択する。また、1つの電力変動周波数指示生成部の指示するクロック周波数が低く、最悪のクロック周波数としてそれが選択されるが、他のコアプロセッサの温度および消費電力が低い場合には、熱拡散の関係で少しクロック周波数を高くできる場合があり得る。このような場合には、ワースト周波数選択部62は、最悪のクロック周波数より1段階大きいクロック周波数を選択する。
DVFS制御部63は、ワースト周波数選択部62の選択したクロック周波数を出力するように、PLL64を制御する。
図25は、実施形態の制御方法を適用したマルチコアプロセッサの第2構成例を示す図である。
第2構成例のマルチコアプロセッサは、複数のPLL71A−71Mと、それぞれ電力モニタおよび温度センサを有する複数のコアプロセッサ51A−51Mと、温度違反検知部52A−52Mと、電力変動検知周波数指示生成部53A−53Mと、を有する。複数のPLL71A−71Mは、共通に供給されるクロック信号を調整して、複数のコアプロセッサ51A−51Mに供給する個別のクロックを生成する。従って、複数のコアプロセッサ51A−51Mは、同期して動作することはできず、割り当てられた処理を独立して実行し、処理が完了すると完了情報をマスタプロセッサ(複数のコアプロセッサの1つ)に送る。
第2構成例のマルチコアプロセッサでは、温度違反検知部52A−52Mと電力変動周波数指示生成部53A−53Mのそれぞれの組が、実施形態と同様に対応するPLLのクロック周波数を、対応するコアプロセッサの温度および電力変動に応じて制御する。
図26は、実施形態の制御方法を適用したマルチコアプロセッサの第3構成例を示す図であり、(A)が回路構成を示すブロック図で、(B)がコアプロセッサに供給されるクロックの例を示す。
第3構成例のマルチコアプロセッサは、ANDゲート81A−81Mと、電力モニタおよび温度センサを有するコアプロセッサ51A−51Mと、温度違反検知部52A−52Mと、電力変動検知サイクル間引き指示生成部53A−53Mと、を有する。
第2構成例では、複数のPLL71A−71Mが共通に供給されるクロック信号を調整して、複数のコアプロセッサ51A−51Mに供給する個別のクロックを生成した。しかし、PLLは回路構成が複雑であり、複数のPLLを設けると回路規模が大きくなる。そこで、第3構成例では、ANDゲート81A−81Mが、電力変動検知サイクル間引き指示生成部53A−53Mからの周波数指示にしたがって、クロック信号のパルスを間引くことにより、実質的にクロック周波数を調整する。
なお、第1から第3構成例においても、クロック周波数だけでなく、電源電圧も合わせて制御することが可能である。
以上、実施形態および構成例を説明したが、制御は、クロック周波数についてのみ行うことも、クロック周波数および電源電圧の両方について行ってもよい。
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
10 プロセッサ(CPU)
11 PLL
12 電源制御部
13 電源・周波数制御部
21 電力モニタ
22 電力変動情報生成部
7 電源制御回路(PMU: Power Management Unit)
8 PLL

Claims (6)

  1. クロックに応じて動作する回路部と、
    前記回路部の温度を検出する温度センサと、
    前記温度センサで検出された温度が所定値を超えた場合に、前記回路部の消費電力の時間差分に基づいて前記クロックの周波数を制御する制御部と、を有する半導体装置。
  2. 前記制御部は、取得した電力値から、現時点までの前記電力値の変動および現時点までの経過時間に基づいて電力の指数移動平均を算出し、算出した前記指数移動平均の時間差分に基づいて前記クロックの周波数を制御する請求項1に記載の半導体装置。
  3. 前記制御部は、前記クロック周波数と共に電源電圧を制御し、前記温度センサで検出した温度が所定上限を上回った際に、前記指数移動平均の時間差分に基づいて前記クロック周波数および電源電圧を変更する請求項1または2に記載の半導体装置。
  4. 前記半導体装置の消費電力が最大消費電力になっても温度限界を超えない範囲で最大になるように所定上限が設定される請求項1から3のいずれか1項に記載の半導体装置。
  5. 前記制御部は、前記温度センサで検出した温度が所定下限を下回った際に、前記電力変動情報に基づいて前記クロック周波数を変更する請求項1から4のいずれか1項に記載の半導体装置。
  6. クロックに応じて動作する回路部を有する半導体装置のクロック周波数の制御方法であって、
    前記回路部の温度を検出し、
    前記回路部の消費電力をモニタし、
    モニタした前記消費電力の時間差分を算出し、
    検出した温度が所定上限を上回った際に、前記消費電力の時間差分に基づいて前記クロック周波数を変更する制御方法。
JP2014000912A 2014-01-07 2014-01-07 半導体装置および制御方法 Pending JP2015130035A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014000912A JP2015130035A (ja) 2014-01-07 2014-01-07 半導体装置および制御方法
US14/573,813 US9590639B2 (en) 2014-01-07 2014-12-17 Semiconductor device and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014000912A JP2015130035A (ja) 2014-01-07 2014-01-07 半導体装置および制御方法

Publications (1)

Publication Number Publication Date
JP2015130035A true JP2015130035A (ja) 2015-07-16

Family

ID=53495976

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014000912A Pending JP2015130035A (ja) 2014-01-07 2014-01-07 半導体装置および制御方法

Country Status (2)

Country Link
US (1) US9590639B2 (ja)
JP (1) JP2015130035A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017117070A (ja) * 2015-12-22 2017-06-29 Necプラットフォームズ株式会社 制御回路および制御方法
JP2017199221A (ja) * 2016-04-28 2017-11-02 日立オートモティブシステムズ株式会社 電子制御装置
JP2017208449A (ja) * 2016-05-18 2017-11-24 キヤノン株式会社 半導体集積回路および電子機器
CN108279715A (zh) * 2017-01-05 2018-07-13 新唐科技股份有限公司 调节电子装置从电源供应器提取电流的设备、系统和方法
JP2019012377A (ja) * 2017-06-30 2019-01-24 ルネサスエレクトロニクス株式会社 半導体装置および半導体装置の制御方法
JP2022535357A (ja) * 2019-05-29 2022-08-08 芯原微電子(上海)股▲ふん▼有限公司 ピーク消費電力を制御する方法及びシステム

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582012B2 (en) 2014-04-08 2017-02-28 Qualcomm Incorporated Energy efficiency aware thermal management in a multi-processor system on a chip
CN106407143B (zh) * 2015-07-29 2020-07-31 南京中兴新软件有限责任公司 控制移动终端中cpu的热插拔操作的方法和装置
KR102599653B1 (ko) * 2015-11-20 2023-11-08 삼성전자주식회사 냉각 알고리즘을 수행하는 집적 회로와 이를 포함하는 모바일 장치
US10281964B2 (en) * 2016-01-29 2019-05-07 Advanced Micro Devices, Inc. Determining thermal time constants of processing systems
CN107153592B (zh) * 2016-03-02 2020-06-23 神讯电脑(昆山)有限公司 电子装置及其功率管理方法
TWI684854B (zh) * 2018-09-07 2020-02-11 華碩電腦股份有限公司 用於中央處理器之溫度控制系統及其溫度控制方法
JP7055084B2 (ja) * 2018-09-20 2022-04-15 ルネサスエレクトロニクス株式会社 半導体装置及び半導体装置の制御方法
CN111106827B (zh) * 2019-12-09 2022-05-31 中山大学 数字芯片片内电源波动的检测方法、系统和存储介质
EP3857371A1 (en) 2019-12-19 2021-08-04 Google LLC Resource management unit for capturing operating system configuration states and memory management
WO2021126216A1 (en) 2019-12-19 2021-06-24 Google Llc Resource management unit for capturing operating system configuration states and offloading tasks
CN116113932A (zh) * 2020-08-21 2023-05-12 华为技术有限公司 一种频率控制方法及装置
CN112416055A (zh) * 2020-11-20 2021-02-26 海光信息技术股份有限公司 多核cpu的时钟管理方法、装置、电子设备及存储介质
US11709529B2 (en) * 2021-10-12 2023-07-25 Hewlett Packard Enterprise Development Lp Variable enhanced processor performance
US11874717B2 (en) * 2022-02-09 2024-01-16 Microsoft Technology Licensing, Llc PSU control based on PSU temperature

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002529806A (ja) * 1998-10-30 2002-09-10 インテル・コーポレーション 閉ループ・フィードバック・システムを使用したマイクロプロセッサにおけるパワー・スロットリングのための装置および方法
JP2007233782A (ja) * 2006-03-02 2007-09-13 Lenovo Singapore Pte Ltd 発熱量の制御方法およびコンピュータ
JP2008225590A (ja) * 2007-03-09 2008-09-25 Sony Corp 電子機器、供給電力制御方法及びプログラム
JP2012168656A (ja) * 2011-02-10 2012-09-06 Panasonic Corp 電力制御装置および電力制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003140782A (ja) 2001-10-31 2003-05-16 Hitachi Ltd 消費電力参照機能を持つコンピュータシステムおよびその制御方法
JP3811166B2 (ja) 2004-05-31 2006-08-16 株式会社東芝 電子機器
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
JP5296136B2 (ja) 2011-04-11 2013-09-25 株式会社ソニー・コンピュータエンタテインメント 電子機器、その制御方法、及び半導体集積回路
EP2698684B1 (en) 2011-04-11 2020-02-19 Sony Interactive Entertainment Inc. Semiconductor integrated circuit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002529806A (ja) * 1998-10-30 2002-09-10 インテル・コーポレーション 閉ループ・フィードバック・システムを使用したマイクロプロセッサにおけるパワー・スロットリングのための装置および方法
JP2007233782A (ja) * 2006-03-02 2007-09-13 Lenovo Singapore Pte Ltd 発熱量の制御方法およびコンピュータ
JP2008225590A (ja) * 2007-03-09 2008-09-25 Sony Corp 電子機器、供給電力制御方法及びプログラム
JP2012168656A (ja) * 2011-02-10 2012-09-06 Panasonic Corp 電力制御装置および電力制御方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017117070A (ja) * 2015-12-22 2017-06-29 Necプラットフォームズ株式会社 制御回路および制御方法
JP2017199221A (ja) * 2016-04-28 2017-11-02 日立オートモティブシステムズ株式会社 電子制御装置
JP2017208449A (ja) * 2016-05-18 2017-11-24 キヤノン株式会社 半導体集積回路および電子機器
CN108279715A (zh) * 2017-01-05 2018-07-13 新唐科技股份有限公司 调节电子装置从电源供应器提取电流的设备、系统和方法
JP2018139099A (ja) * 2017-01-05 2018-09-06 新唐科技股▲ふん▼有限公司 電子装置が外部電源から引き出された電力を調節する装置、システム、方法およびコンピュータプログラム製品
JP2019012377A (ja) * 2017-06-30 2019-01-24 ルネサスエレクトロニクス株式会社 半導体装置および半導体装置の制御方法
JP2022535357A (ja) * 2019-05-29 2022-08-08 芯原微電子(上海)股▲ふん▼有限公司 ピーク消費電力を制御する方法及びシステム
JP7304972B2 (ja) 2019-05-29 2023-07-07 芯原微電子(上海)股▲ふん▼有限公司 ピーク消費電力を制御する方法及びシステム

Also Published As

Publication number Publication date
US20150194969A1 (en) 2015-07-09
US9590639B2 (en) 2017-03-07

Similar Documents

Publication Publication Date Title
JP2015130035A (ja) 半導体装置および制御方法
US8442697B2 (en) Method and apparatus for on-demand power management
KR101814264B1 (ko) 최적 전력 레벨들을 예측하기 위해 열 저항 값들을 사용하는 휴대용 컴퓨팅 디바이스에서의 열 관리를 위한 시스템 및 방법
US8612781B2 (en) Method and apparatus for application of power density multipliers optimally in a multicore system
US9032223B2 (en) Techniques to manage operational parameters for a processor
KR101443800B1 (ko) 반도체 장치의 예측적인 동적 열 관리
KR101534450B1 (ko) 누설 전류 측정으로부터 열 관리 폴리시를 결정하는 시스템 및 방법
US7917772B1 (en) Dynamic chip control
JP2009522688A (ja) 独立周波数及び/又は電圧で集積回路の構成要素を動作させるシステムならびに方法
EP3129854A1 (en) Energy efficiency aware thermal management in a multi-processor system on a chip
US20130173946A1 (en) Controlling power consumption through multiple power limits over multiple time intervals
US9753516B2 (en) Method, apparatus, and system for energy efficiency and energy conservation by mitigating performance variations between integrated circuit devices
JP2018005569A (ja) 半導体装置及び半導体装置の制御方法
CN108292161B (zh) 具有工作负载适配的热传感器最大温度的集成电路热节流
TWI829104B (zh) 一種用於自適應調整熱上限的系統及方法
US9268393B2 (en) Enforcing a power consumption duty cycle in a processor
WO2023101663A1 (en) Method and apparatus of power control based on block activities
TWI483098B (zh) 電腦系統及其功率分享方法
JP2005092867A (ja) 回路を制御するための方法および装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170609

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170801