JP2018005569A - 半導体装置及び半導体装置の制御方法 - Google Patents
半導体装置及び半導体装置の制御方法 Download PDFInfo
- Publication number
- JP2018005569A JP2018005569A JP2016131906A JP2016131906A JP2018005569A JP 2018005569 A JP2018005569 A JP 2018005569A JP 2016131906 A JP2016131906 A JP 2016131906A JP 2016131906 A JP2016131906 A JP 2016131906A JP 2018005569 A JP2018005569 A JP 2018005569A
- Authority
- JP
- Japan
- Prior art keywords
- temperature
- frequency
- unit
- semiconductor device
- power
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
- H03K3/03—Astable circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
- G11C7/222—Clock generating, synchronizing or distributing circuits within memory device
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/01—Details
- H03K3/011—Modifications of generator to compensate for variations in physical values, e.g. voltage, temperature
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
- H03K3/03—Astable circuits
- H03K3/0315—Ring oscillators
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
Abstract
【課題】負荷に応じてクロック周波数を制御する半導体装置で、半導体装置の温度が上限温度を超えない範囲で、動作周波数の低下を抑制する制御を実現する。【解決手段】半導体装置1は、クロックを発振する発振部20と、発振部20が発振したクロックに応じて動作する回路部5と、回路部5の温度を検出する温度検出部7と、回路部5の消費電力を監視電力値として取得する電力検出部6とを有する。半導体装置1は、温度検出部7が検出した温度が温度閾値を超えた場合、回路部5の温度が温度閾値よりも高い温度に収束する目標電力に監視電力値が一致するように発振部20のクロックの周波数を制御する周波数制御部10を更に有する。【選択図】図6
Description
本発明は、半導体装置及び半導体装置の制御方法に関する。
プロセッサ等の半導体装置の性能向上にともない、半導体装置の消費電力は年々上昇する傾向にあり、電力供給能力の上限やチップ温度上限のために、半導体装置を仕様上実行可能とされている最大負荷で動作させることができないという問題が表面化してきている。以下、半導体装置として、CPU(Central Processing Unit)やMPU〈Micro Processing Unit〉等のプロセッサを例とした場合を説明する。
プロセッサは、消費電力上限や温度上限を超えないように動作することが求められ、もしこれらの制約を超えた場合には、クリティカルパスにおけるディレイやスキューの増大などにより誤動作が発生する場合がある。そこで、プロセッサが通常動作時に消費電力上限や温度上限を超える可能性がある状況において、これら制約を超えないように負荷を調整することが行われる。負荷を調整する方法として、DFS(Dynamic Frequency Scaling)や、DVFS(Dynamic Voltage and Frequency Scaling) 等の手法が知られている。DFSは、クロック周波数を動的に変更することで負荷を変化させる手法である。DVFSは、クロック周波数を下げることで生じるタイミング余裕の分だけ動作電圧を下げることで消費電力をさらに下げる手法である。
上記の手法を行う場合、負荷の上限を超えない範囲でなるべく高いクロック周波数で動作させることが、プロセッサの性能(パフォーマンス)の観点からは望ましい。負荷の上限を超えない範囲でなるべく高いクロック周波数で動作させる制御方法として、上限値の下に負荷に対する閾値を設け、負荷がこの閾値を超えた時にクロック周波数や電源電圧を低下させるという制御を開始する方法が一般的に行われる。これにより、クロック周波数または電源電圧が下がり、それに応じて負荷が下がる。プロセッサの温度が動作制約となる場合には、制御用の温度閾値を設け、プロセッサの温度が温度閾値を超えた時にクロック周波数を下げるという処理になる。ただし、温度が温度閾値を超えた時にクロック周波数を下げた場合も、実際にクロック周波数が下がるまでには遅延があり、その間温度は上昇を続ける。
この制御において、温度閾値を下げるとプロセッサのパフォーマンスが定常的に下がることになるため、なるべく温度閾値は上限温度に近い値であることが望ましい。しかし、温度閾値が上限温度に近すぎるとプロセッサの温度が温度閾値を超えてからクロック周波数が下がるまでの間に温度が上限温度を超えてしまう場合があり得る。そのため、温度閾値は、周波数制御にかかる遅延時間における温度上昇分以上低くなる。
上記の温度制御で想定される最大の温度上昇が発生するのは、負荷変動により消費電力がステップ的に最大値に変化する場合である。この場合、温度閾値を超えた時に、クロック周波数は、最大の消費電力でも温度が上限温度を下回るようなクロック周波数に低下させられる。
温度閾値を超えた時の消費電力が最大消費電力より小さい場合は、クロック周波数は、上記のように制御されない。しかし、検出した温度のみに基づいて周波数制御を行う場合、温度閾値超えした時点で最終的にどこまで温度が上昇するかを判別することが困難なため、負荷変動が最大の場合でも温度が上限を超えないように常に上記の周波数まで下げることになる。そのため、このような制御は、プロセッサのパフォーマンス低下につながる。
この対策として、温度閾値を2点以上設けて温度がそれぞれの閾値を超えた時間差を測定するなどして間接的に温度変化を予測することが知られている。50℃以下の第1の温度状態、急激な温度変化の検出に伴う第2の温度状態、80℃以上の第3の温度状態及び100℃以上の第4の温度状態の4つの温度状態のそれぞれに応じて、半導体装置の動作を制限することが知られている(例えば、特許文献1を参照)。この例では、半導体装置は、第1の温度状態から第4の温度状態に徐々に、制限する動作を増やすことができる。しかしながら、この例では、半導体装置は、処理量の増加に応じた温度変化に基づかずに、動作を制限するため、マージンの増大に伴う実質的な温度閾値が低下することに加えて、制御遅延が増大して、半導体装置のパフォーマンスが低下するおそれがある。
そこで、温度センサで検出された温度が所定値を超えた場合に、回路部の消費電力の時間差分に基づいてクロックの周波数を制御する半導体装置が知られている(例えば、特許文献2を参照)。この半導体装置では、一定時間温度閾値を上回り続けているときに、強制的にクロック周波数を大幅に低減して、消費電力を大幅に削減することで、半導体装置の温度を低下するように制御する。
しかしながら、センサで検出された温度が所定値を超えた場合に強制的にクロック周波数を大幅に低減する場合、周波数の低下に伴って、半導体装置のパフォーマンスが無駄に低下するおそれがある。
実施形態によれば、負荷に応じてクロック周波数を制御する半導体装置で、半導体装置の温度が上限温度を超えない範囲で、動作周波数の低下を抑制する制御が実現される。
発明の第1の観点によれば、半導体装置は、クロックを発振する発振部と、発振部が発振したクロックに応じて動作する回路部と、回路部の温度を検出する温度検出部と、回路部の消費電力を監視電力値として取得する電力検出部とを有する。半導体装置は、温度検出部が検出した温度が温度閾値を超えた場合、回路部の温度が温度閾値よりも高い温度に収束する目標電力に監視電力値が一致するように発振部のクロックの周波数を制御する周波数制御部を更に有する。
実施形態によれば、負荷に応じてクロック周波数を制御する半導体装置で、半導体装置の温度が上限温度を超えない範囲で最大のクロック周波数になるように制御され、動作周波数の低下を抑制する。
実施形態を説明する前に、実施形態に係る半導体装置に関連する半導体装置について説明する。なお、本発明の技術的範囲はそれらの実施の形態に限定されない。
(関連する半導体装置の構成及び機能)
図1は、実施形態に係る半導体装置に関連する半導体装置のブロック図である。
図1は、実施形態に係る半導体装置に関連する半導体装置のブロック図である。
半導体装置900は、温度センサ901と、AD(Analog to Digital)コンバータ902と、比較回路903と、電力モニタ904と、指数移動平均フィルタ905と、周波数演算部906と、周波数決定部907とを有する。半導体装置900は、周波数設定表910から周波数を取得可能なPLL(Phase Locked Loop)制御部908と、PLL909と、PLL909からクロックが入力される回路部911を更に有する。
温度センサ901は、回路部911の温度を検出し、検出温度Tjを示す温度信号をADコンバータ902に出力する。ADコンバータ902は、温度センサ901から入力された温度信号をアナログ信号からデジタル信号に変換する。比較回路903は、ADコンバータ902においてデジタル信号に変換された温度信号に対応する検出温度Tjと、温度閾値Tthとを比較する。温度閾値Tthは、不図示のオペレータにより設定可能な値であり、回路部911の動作が変化して回路部911の消費電力が最大電力量に達した場合でも、半導体装置900の温度上限値を超えない温度である。比較回路903は、温度信号に対応する検出温度Tjが温度閾値Tthより高いときに信号値「1」を示す比較結果信号を周波数決定部907に出力し、温度信号に対応する検出温度Tjが温度閾値Tth以下のときに信号値「0」を示す比較結果信号を周波数決定部907に出力する。温度センサ901と周波数決定部907との間にはADコンバータ902等の種々の素子が介在するため、温度センサ901が回路部911の温度を検出してから比較結果信号が周波数決定部907に入力されるまで、所定の遅延時間が掛かる。
電力モニタ904は、複数のレジスタと、複数の乗算器と、加算器とを有する。電力モニタ904は、チップ各部の消費電力と相関の高い信号の動作率情報を取得し、乗算器により、動作率情報にレジスタに記憶された適当な重み付係数を乗じ、さらに加算器で総和を取る。この総和は、チップの動的電力値にほぼ対応する。電力モニタ904は、演算した監視電力値Pmonを示す監視電力値信号を指数移動平均フィルタ905及び周波数演算部906に出力する。
指数移動平均フィルタ905は、移動平均の一種である指数移動平均を演算して、演算した指数移動平均電力値Pexpを示す指数移動平均信号を周波数演算部906に出力する。後に詳細に説明するように、指数移動平均フィルタ905では、時定数τが半導体装置900の熱時定数に対応するように規定されることにより、指数移動平均電力値Pexpは、監視電力値Pexpの変化に応じた回路部911の温度の変化に対応する電力である。指数移動平均フィルタ905は、指数移動平均電力値Pexpを示す指数移動平均電力信号を、温度センサ901が検出温度Tjを検出してから周波数決定部907に比較結果信号が入力されるまでの時間に対応する時間だけ遅延させて出力する。指数移動平均フィルタ905が指数移動平均電力信号を遅延して出力することで、指数移動平均信号に対応する指数移動平均電力値Pexpは、回路部911の温度の変化と同期して変化することができる。
周波数演算部906は、電力モニタ904から入力される監視電力値Pmon、指数移動平均フィルタ905から入力される指数移動平均電力値Pexp、及び周波数決定部907から入力される現在の周波数Freqから変更周波数Freqnewを演算する。変更周波数Freqnewは、
で示される。
周波数決定部907は、比較回路903から入力される比較結果信号に対応する信号値に基づいて、PLL制御部908にPLL909の周波数を変更することを示す周波数変更指示信号を出力する。PLL制御部908は、周波数決定部907から周波数変更指示信号が入力されると、周波数設定表910を使用して、周波数変更指示信号に対応する要求に基づいて、PLL909の周波数を変更する。PLL909は、PLL制御部908の制御に基づいて周波数を変更する。
(関連する半導体装置の動作)
図2は、周波数決定部907による周波数制御処理のフローチャートである。
図2は、周波数決定部907による周波数制御処理のフローチャートである。
まず、周波数決定部907は、温度センサ901が検出した検出温度Tjが温度閾値Tthより高いか否かを判定する(S101)。具体的には、周波数決定部907は、比較回路903から入力される比較結果信号に対応する信号値が「0」又は「1」の何れかであるかを判定する。周波数決定部907は、検出温度Tjが温度閾値Tthより高いと判定する(S101−YES)と、PLL909の発振周波数を、現在の周波数Freqから変更周波数Freqnewに変更する指示を示す周波数変更指示信号をPLL制御部908に出力する(S102)。
周波数決定部907は、所定の第1待機時間が経過したと判定した(S103)後に、温度センサ901が検出した検出温度Tjが温度閾値Tth以下であるかを判定する(S104)。検出温度Tjが温度閾値Tth以下であると判定される(S104−YES)と、処理はS101に戻る。周波数決定部907は、検出温度Tjが温度閾値Tthより高いと判定する(S104−NO)と、温度センサ901が検出した検出温度Tjが所定の時間に亘って温度閾値Tthを上回り続けているか否かを判定する(S105)。検出温度Tjが所定の時間に亘って温度閾値Tthを上回り続けていないと判定される(S105−NO)と、処理は、S103に戻る。周波数決定部907は、検出温度Tjが所定の時間に亘って温度閾値Tthを上回り続けていると判定する(S105−YES)と、PLL909の発振周波数を強制的に大幅に低減する指示を示す周波数変更指示信号をPLL制御部908に出力する(S106)。そして、処理はS101に戻る。
周波数決定部907は、検出温度Tjが温度閾値Tth以下であると判定する(S101−NO)と、PLL909の発振周波数が最大周波数であるか否かを判定する(S107)。周波数決定部907は、PLL909の発振周波数が最大周波数でないと判定する(S107−NO)と、PLL909の発振周波数を一段階上げる指示を示す周波数変更指示信号をPLL制御制御部908に出力する(S108)。そして、周波数決定部907が所定の第2待機時間が経過したと判定した(S109)後に、処理はS101に戻る。
図3は、監視電力値Pmonの変化に応じて周波数決定部907がS101〜S102の処理を実行したときのタイミングチャートを示す図である。図3において、(a)は監視電力値Pexpのタイミングチャートを示し、(b)は検出温度Tjのタイミングチャートを示し、(c)は比較結果信号のタイミングチャートを示す。また、(d)は指数移動平均電力値Pexpのタイミングチャートを示し、(e)はPLL909の発振周波数のタイミングチャートを示す。
まず、回路部911の動作の変化に伴って、矢印Aで示される時点で電力モニタ904によって監視される回路部911の消費電力が監視電力値Pmon1から監視電力値Pmon2に増加する。回路部911の消費電力が監視電力値Pmon1から監視電力値Pmon2に増加するに従って、検出温度Tjは、半導体装置900の熱時定数τに応じた変化量で、検出温度Tj1から徐々に増加して矢印Bで示す時点で温度閾値Tthに達する。
周波数決定部907は、検出温度Tj1から徐々に増加して矢印Bで示す時点で温度閾値Tthに達してから、ADコンバータ902等の種々の素子の介在に起因する所定の遅延時間Tdが経過した矢印Cで示す時点で、信号値「1」を示す比較結果信号が入力される。
周波数決定部907は、信号値「1」を示す比較結果信号が入力されることに応じて、PLL909の発振周波数を、現在の周波数Freqから変更周波数Freqnewに変更することを示す変更要求信号を出力する。ここで、変更周波数Freqnewは、増加した後の回路部911の消費電力値Pmon2、比較結果信号に対応する信号値が「0」から「1」に変化したときの指数移動平均電力値Pexp、及びPLL909の現在の発振周波数Freqから周波数演算部906によって演算される。なお、指数移動平均電力値Pexpは、温度センサ901が検出温度Tjを検出してから周波数決定部907に比較結果信号が入力されるまでの時間に亘って遅延されて出力されるため、回路部911の温度の変化に対応する電力になる。
そして、矢印Dで示す時点において、PLL909の発振周波数が周波数Freqから変更周波数Freqnewに変更されることで、電力モニタ904によって監視される回路部911の消費電力が監視電力値Pmon2から監視電力値Pmon3に減少する。また、回路部911の消費電力が監視電力値Pmon2から監視電力値Pmon3に減少することに応じて、矢印Eに示すように、検出温度Tjは徐々に減少し、矢印Fで示す時点において、温度閾値Tthまで減少する。そして、周波数決定部907は、検出温度Tjが温度閾値Tthまで減少してから所定の遅延時間Tdが経過した矢印Gで示す時点で、信号値「0」を示す比較結果信号が入力される。
(関連する半導体装置の作用効果)
半導体装置900は、回路部911の温度が温度閾値Tthに達したときの回路部911の温度の変化に対応する指数移動平均電力値Pexpを回路部911の温度が温度閾値Tthで安定する電力とみなして、PLL909の動作周波数を制御する。すなわち、半導体装置900は、PLL909の動作周波数を、回路部911の消費電力値Pmonと指数移動平均電力値Pexpとの比率に応じて減少させることで、回路部911の消費電力値Pmonを回路部911の温度が温度閾値Tthで安定する電力で安定させることができる。
半導体装置900は、回路部911の温度が温度閾値Tthに達したときの回路部911の温度の変化に対応する指数移動平均電力値Pexpを回路部911の温度が温度閾値Tthで安定する電力とみなして、PLL909の動作周波数を制御する。すなわち、半導体装置900は、PLL909の動作周波数を、回路部911の消費電力値Pmonと指数移動平均電力値Pexpとの比率に応じて減少させることで、回路部911の消費電力値Pmonを回路部911の温度が温度閾値Tthで安定する電力で安定させることができる。
また、半導体装置900は、電力から推定された温度ではなく温度センサ901が実測した回路部911の温度に基づいてPLL909の動作周波数を制御するため、周辺温度の仮定及び冷却系を考慮した電力温度変換等の誤差マージンは、考慮されない。半導体装置900は、電力から推定された温度を使用することに起因する種々の誤差マージンを考慮されないので、高い精度の制御が可能である。
また、半導体装置900は、指数移動平均フィルタ905の時定数τが半導体装置900の熱時定数に対応するように規定されるため、指数移動平均フィルタ905が演算した指数移動平均電力値Pexpは、検出温度Tjに対応する。半導体装置900は、検出温度Tjに対応する指数移動平均電力値Pexpを目標電力とすることで、回路部911の温度が温度閾値に一致するように調整することができる。
(関連する半導体装置の課題)
しかしながら、半導体装置900は、温度センサ901が検出した検出温度Tjを使用するため、検出温度Tjが温度閾値Tthまで減少してから所定の遅延時間Tdが経過するまで、PLL909の動作周波数は、制御されない。温度センサ901が検出温度Tjを検出してからPLL909の動作周波数が変更されるまでの遅延時間Tdの間も、回路部911の温度は上昇するため、温度閾値Tthは、遅延時間Tdにおける温度上昇に対応する温度だけ低く設定される。
しかしながら、半導体装置900は、温度センサ901が検出した検出温度Tjを使用するため、検出温度Tjが温度閾値Tthまで減少してから所定の遅延時間Tdが経過するまで、PLL909の動作周波数は、制御されない。温度センサ901が検出温度Tjを検出してからPLL909の動作周波数が変更されるまでの遅延時間Tdの間も、回路部911の温度は上昇するため、温度閾値Tthは、遅延時間Tdにおける温度上昇に対応する温度だけ低く設定される。
遅延時間Tdは、例えば、温度センサ901が半導体装置900の外部に配置されるオフチップ構成の場合、温度センサ901の素子遅延と、温度センサ901と半導体装置900との間の配線遅延等によっては数ミリ秒以上の遅延になるおそれがある。一方、電力モニタ904が監視電力値を演算する演算時間は、遅延時間Tdと比較すると非常に小さく数百μs未満程度である。
(実施形態に係る半導体装置の構成及び機能)
図4は、実施形態に係る半導体装置を含む電子装置のブロック図である。
図4は、実施形態に係る半導体装置を含む電子装置のブロック図である。
電子装置100は、半導体装置1と、システムコントローラ2と、外部メモリ3と、ADC(Analog to Digital Converter)4とを有する。半導体装置1は、回路部5と、電力モニタ6と、温度センサ7と第1インタフェース部8a及び第2インタフェース部8bと、レジスタ設定制御部9aと、温度情報取得制御部9bと、周波数制御部10と、PLL20とを有する。
半導体装置1は、一例ではプロセッサ(CPU)であり、消費電力上限及び温度上限を超えないように動作することが求められる。システムコントローラ2は、半導体装置1を含む電子装置100に搭載される種々の装置を制御する上位制御装置である。システムコントローラ2は、半導体装置1に、温度閾値Tth、重み係数w、及びオフセット電力値Poffsetのそれぞれを示す温度閾値信号、重み係数信号及びオフセット電力信号を出力する。温度閾値Tthは、不図示のオペレータにより設定可能な値であり、回路部5の動作が変化して回路部5の消費電力が最大電力量に達した場合でも、半導体装置1の温度上限値を超えない温度である。重み係数wは周波数制御部10が演算に使用する重み係数であり、オフセット電力値Poffsetは周波数制御部10が演算に使用される定数である。外部メモリ3は、半導体装置1の外部に配置されるRAM(Random Access Memory)やROM(Read Only Memory)等の記憶装置である。ADコンバータ4は、温度センサ7から入力された温度信号をアナログ信号からデジタル信号に変換し、半導体装置1に出力する。回路部5は、複数の演算コア5aと、共有キャッシュ5bとメモリコントローラ5cとを有する。複数の演算コア5aのそれぞれは、共有キャッシュ5bに記憶されるコンピュータプログラム及びデータに基づいて所定の処理を実行する。共有キャッシュ5bは、複数の演算コア5aのそれぞれがアクセス可能な記領域である。メモリコントローラ5cは、外部メモリ3に記憶される種々の情報を共有キャッシュ5bに記憶する。
図5は、電力モニタ6の内部回路例を示す図である。
電力モニタ6は、複数(ここではN個)のモニタレジスタ61A−61Nと、複数のモニタ乗算器62A−62Nと、モニタ加算器63とを有し、回路部5の消費電力を監視電力値Pmonとして取得する。電力モニタ6は、複数の演算コア5a、共有キャッシュ5b及びメモリコントローラ5cの消費電力と相関の高い信号の動作率情報A−Nを取得する。電力モニタ6は、モニタ乗算器62A−62Nにより、動作率情報A−Nにモニタレジスタ61A−61Nに記憶された適当な重み付係数を乗じ、さらにモニタ加算器63で総和を取る。この総和は、回路部5の動的電力値にほぼ対応する。電力モニタ6は、演算した監視電力値Pmonを示す監視電力値信号を周波数制御部10に出力する。
温度センサ7は、オンチップ型の温度センサであり、一例では、バンドギャップ型温度センサである。温度センサ7は、回路部5の温度を検出し、検出した温度を示す温度信号をADコンバータ4に出力する。
第1インタフェース部8a及び第2インタフェース部8bのそれぞれは、半導体装置1の外部と、半導体装置1の内部回路とを接続するI/Oセルである。第1インタフェース部8aは、システムコントローラ2から入力される温度閾値信号、重み係数信号及びオフセット電力信号をレジスタ設定制御部9aに出力する。第2インタフェース部8bは、ADコンバータ4から入力される温度信号を温度情報取得制御部9bに出力する。
レジスタ設定制御部9aは、システムコントローラ2から入力される温度閾値信号、重み係数信号及びオフセット電力信号のそれぞれに対応する温度閾値Tth、重み係数w、及びオフセット電力値Poffsetのそれぞれを周波数制御部10のレジスタに書き込む。温度情報取得制御部9bは、ADコンバータ4から入力される温度信号Tjを周波数制御部10に出力する。
図6は、周波数制御部10の内部回路ブロック図である。
周波数制御部10は、温度閾値レジスタ11と、比較回路12と、オフセット電力レジスタ13と、指数移動平均フィルタ14と、第1周波数演算部15と、第2周波数演算部16と、周波数決定部17とを有する。周波数制御部10は、PLL制御部18と、周波数設定表19とを更に有する。
温度閾値レジスタ11は、システムコントローラ2からレジスタ設定制御部9aを介して入力される温度閾値Tthを記憶し、記憶した温度閾値Tthを比較回路12に出力する。温度閾値Tthは、温度の変化速度が最大速度で温度閾値Tthを越えた場合でも、半導体装置1が動作保証上限温度を超えない値に設定される。具体的には、温度閾値Tthは、動作保証上限温度Tlimit、第1温度上昇速度ΔT1、制御マージンに相当する温度であるマージン温度Tmarginから、
Tth=Tlimit-ΔT1-Tmargin
として求められる。動作保証上限温度Tlimitは、タイミング設計時の温度条件等により決定される。第1温度上昇速度ΔT1は、想定される最大の電力変動及び変化速度で電力増加時に、回路部5の温度がこの閾値を超えてから温度センサ7の出力変化に応じて周波数が下がるまでの制御時間D1の間に回路部5の温度が温度閾値Tthより上昇する温度である。
Tth=Tlimit-ΔT1-Tmargin
として求められる。動作保証上限温度Tlimitは、タイミング設計時の温度条件等により決定される。第1温度上昇速度ΔT1は、想定される最大の電力変動及び変化速度で電力増加時に、回路部5の温度がこの閾値を超えてから温度センサ7の出力変化に応じて周波数が下がるまでの制御時間D1の間に回路部5の温度が温度閾値Tthより上昇する温度である。
比較回路12は、温度センサ7が検出した検出温度Tjと温度閾値Tthとを比較する。比較回路12は、温度信号に対応する検出温度Tjが温度閾値Tthより高いときに信号値「1」を示す比較結果信号Tcmpを第2周波数演算部16及び周波数決定部17に出力する。また、比較回路12は、温度信号に対応する検出温度Tjが温度閾値Tth以下のときに信号値「0」を示す比較結果信号Tcmpを第2周波数演算部16及び周波数決定部17に出力する。
オフセット電力レジスタ13は、システムコントローラ2からレジスタ設定制御部9aを介して入力されるオフセット電力値Poffsetを記憶し、記憶したオフセット電力値Poffsetを第1周波数演算部15及び第2周波数演算部16に出力する。
指数移動平均フィルタ14は、重み係数レジスタ141を有し、移動平均の一種である指数移動平均を演算して、演算した指数移動平均電力値Pexpを示す指数移動平均信号を第1周波数演算部15及び第2周波数演算部16に出力する。
図7は、指数移動平均フィルタ14の内部回路ブロック図である。
指数移動平均フィルタ14は、重み係数レジスタ141に加えて、フィルタ減算器142と、第2フィルタ乗算器143と、フィルタ加算器144とを有する。指数移動平均フィルタ14は、移動平均電力レジスタ145と、レジスタ更新タイマ146と、フィルタ遅延回路147とを有する。指数移動平均フィルタ14は、監視電力値Pmonに基づいて、温度センサ7で検出された温度が温度閾値Tthに一致したときの温度に対応するベース電力値Pbaseを推定する電力推定部として機能する。
フィルタ減算器142、第2フィルタ乗算器143及びフィルタ加算器144は先の指数移動平均電力値Pexp(t-Δt)、現在の監視電力値Pmon(t)及び重み係数wから現在の指数移動平均電力値Pexp(t)を演算する。指数移動平均電力値Pexp(t)は、
で示される。移動平均電力レジスタ145は、演算された指数移動平均電力値Pexpを記憶する。レジスタ更新タイマ146は、時間Δt毎に、移動平均電力レジスタ145にクロック信号を出力し、移動平均電力レジスタ145に記憶される指数移動平均電力値Pexpを更新する。フィルタ遅延回路147は、直列接続されたフリップフロップを含み、指数移動平均電力値Pexpを、温度センサ7が検出温度Tjを検出してから周波数決定部17に比較結果信号Tcmpが入力されるまでの時間に対応する時間だけ遅延させて出力する。
重み係数wは、指数移動平均電力値Pexpを回路部5の温度の変化と同期して変化するように決定される。外気温度Taが一定のとき、半導体装置1の現在の温度T(t)は、
で示される。ここで、Δtは時間変化を示し、αは半導体装置1の熱容量C及び熱抵抗θから(α=Δt/(Cθ))で示される。指数移動平均電力値Pexp(t)と、温度T(t)とは、(Pexp(t)= T(t)/θ)の関係を有するので、指数移動平均電力値Pexpを所定の値に制御することにより、回路部5の温度T(t)を所望の温度に制御することができる。
第1周波数演算部15は、電力モニタ6から入力される監視電力値Pmon、指数移動平均フィルタ14から入力される指数移動平均電力値Pexp、オフセット電力レジスタ13から入力されるオフセット電力値Poffset及び現在の周波数Freqから第1周波数Freq1を演算する。第1周波数Freq1は、
で示される。
第2周波数演算部16は、ベース電力レジスタ160を有し、第2周波数Freq2を演算する。ベース電力レジスタ160は、比較結果信号Tcmpの信号値が「1」に対応するときに、指数移動平均フィルタ14から入力される指数移動平均電力値Pexpをベース電力値Pbaseとして記憶する。第2周波数Freq2は、電力モニタ6から入力される監視電力値Pmon、ベース電力レジスタ160に記憶される指数移動平均電力値Pbase、オフセット電力レジスタから入力されるオフセット電力値Poffset及び現在の周波数Freqから
で示される。
図8(a)は第1周波数演算部15の内部回路ブロック図であり、図8(b)は第2周波数演算部16の内部回路ブロック図である。
第1周波数演算部15は、第1演算加算器151と、第1演算乗算器152と、第1演算減算器153とを有する。第1演算加算器151は、指数移動平均電力値Pexpとオフセット電力値Poffsetとを加算する。第1演算乗算器152は、第1演算加算器151の出力と現在の周波数Freqとを乗算する。第1演算減算器153は、第1演算乗算器152の出力から監視電力値Pmonを減算して第1周波数Freq1を出力する。
第2周波数演算部16は、ベース電力レジスタ160と、第2演算加算器161と、第2演算乗算器162と、第2演算減算器163とを有する。ベース電力レジスタ160は、比較結果信号Tcmpの信号値が「1」に対応するときに、指数移動平均フィルタ14から入力される指数移動平均電力値Pexpをベース電力値Pbaseとして記憶する。第2演算加算器161は、ベース電力値Pbaseとオフセット電力値Poffsetとを加算する。第2演算乗算器162は、第2演算加算器161の出力と現在の周波数Freqとを乗算する。第2演算減算器163は、第2演算乗算器162の出力から監視電力値Pmonを減算して第2周波数Freq2を出力する。
オフセット電力値Poffsetは、温度センサ7が検出した検出温度Tjに基づく制御から電力モニタ6が演算した監視電力値Pmonに基づく制御に切り替えたことによる制御遅延の削減による閾値マージンの削減量である。オフセット電力値Poffsetは、第1温度上昇速度ΔT1、第2温度上昇速度ΔT2、半導体装置1の熱抵抗θc及び制御マージンに相当する電力であるマージン電力Pmarginに対して、
Poffset=(ΔT1-ΔT2)/θc-Pmargin
として求められる。第1温度上昇速度ΔT1は、想定される最大の電力変動及び変化速度で電力増加時に、回路部5の温度がこの閾値を超えてから温度センサ7の出力変化に応じて周波数が下がるまでの制御時間D1の間に半導体装置1の温度が温度閾値Tthより上昇する温度である。第2温度上昇速度ΔT2は、電力が増加してから電力モニタ6の出力に応じて周波数が下がるまでにかかる時間D2の間に、想定される最大・最速の変動で電力が増加した時の半導体装置1の温度の上昇最大値である。半導体装置1の熱抵抗θcは、数ms〜数十ms程度の高速な温度変化に寄与する熱抵抗成分であり、一例では半導体装置1のチップの熱抵抗であり、他の例ではチップ-パッケージ間の熱伝導材料(TIM)の熱抵抗を含めた熱抵抗である。
Poffset=(ΔT1-ΔT2)/θc-Pmargin
として求められる。第1温度上昇速度ΔT1は、想定される最大の電力変動及び変化速度で電力増加時に、回路部5の温度がこの閾値を超えてから温度センサ7の出力変化に応じて周波数が下がるまでの制御時間D1の間に半導体装置1の温度が温度閾値Tthより上昇する温度である。第2温度上昇速度ΔT2は、電力が増加してから電力モニタ6の出力に応じて周波数が下がるまでにかかる時間D2の間に、想定される最大・最速の変動で電力が増加した時の半導体装置1の温度の上昇最大値である。半導体装置1の熱抵抗θcは、数ms〜数十ms程度の高速な温度変化に寄与する熱抵抗成分であり、一例では半導体装置1のチップの熱抵抗であり、他の例ではチップ-パッケージ間の熱伝導材料(TIM)の熱抵抗を含めた熱抵抗である。
図9は、周波数決定部17の内部構成の一例を示す図である。
周波数決定部17は、制御レジスタ170と、第1変換部171と、第2変換部172と、ステートマシン173と、待機時間タイマ174と、アドレスレジスタ175と、アドレスインクリメント部176と、制御選択部177とを有する。周波数決定部17は、温度センサ7で検出された温度が温度閾値Tthを超えた場合に、温度閾値Tthよりも高い温度に、回路部5の温度が収束する目標電力に回路部5の消費電力が一致するようにクロックの周波数を決定する。すなわち、周波数決定部17は、温度センサ7で検出された温度が温度閾値Tthを超えた場合に、監視電力値Pmonが目標電力に一致するように、PLL20から出力されるクロックの周波数を決定する。すなわち、チップ温度が閾値を超えた時にPbase<Pmon<Pmon+Poffsetが成立し、かつ、周波数が上限に達していない場合に、温度センサ出力が1になったとき、PmonをPbase+Poffsetに合わせるように周波数が調整され、周波数が高くなる。そして、目標電力は、ベース電力とオフセット電力とを加算した電力値であり、Pbase +(ΔT1-ΔT2)/θc-Pmarginと等しくなる。
制御レジスタ170は、PLL20の最低周波数、並びに周波数設定表19に記憶されるアドレスの最大値及び周波数調整幅を記憶する。第1変換部171は、第1周波数Freq1並びに制御レジスタ170に記憶される最低周波数及び周波数調整幅から第1周波数Freq1を超えない範囲で最も近い周波数設定値のアドレスを、
(第1周波数Freq1−最低周波数)/(周波数調整幅)
から演算し、演算したアドレスを出力する。なお、制御レジスタ170は、演算したアドレスがアドレスの最大値を超える場合は、アドレスの最大値を出力する。第2変換部172は、第2周波数Freq2並びに制御レジスタ170に記憶される最低周波数及び周波数調整幅から第2周波数Freq2を超えない範囲で最も近い周波数設定値のアドレスを、
(第2周波数Freq2−最低周波数)/(周波数調整幅)
から演算し、演算したアドレスを出力する。なお、制御レジスタ170は、演算したアドレスがアドレスの最大値を超える場合は、アドレスの最大値を出力する。
(第1周波数Freq1−最低周波数)/(周波数調整幅)
から演算し、演算したアドレスを出力する。なお、制御レジスタ170は、演算したアドレスがアドレスの最大値を超える場合は、アドレスの最大値を出力する。第2変換部172は、第2周波数Freq2並びに制御レジスタ170に記憶される最低周波数及び周波数調整幅から第2周波数Freq2を超えない範囲で最も近い周波数設定値のアドレスを、
(第2周波数Freq2−最低周波数)/(周波数調整幅)
から演算し、演算したアドレスを出力する。なお、制御レジスタ170は、演算したアドレスがアドレスの最大値を超える場合は、アドレスの最大値を出力する。
図10(a)はステートマシン173の内部構成を示す図であり、図10(b)はステートマシン173の状態遷移の説明を示す図である。
ステートマシン173は、制御タイマから通知信号が入力されることに応じて状態遷移する。ステートマシン173は、状態遷移に応じて、状態遷移後の遷移番号を示す遷移番号信号を制御選択部177に出力すると共に、周波数の変更要求を示す周波数変更要求信号を待機時間タイマ174及びPLL制御部18に出力する。
遷移番号1は、温度センサ7が検出した検出温度Tjが温度閾値Tth以下の状態から一定時間経過した後に、検出温度Tjが温度閾値Tth以下になったときの遷移を示す。遷移番号1では、ステートマシン173は、現在の周波数Freqを一段階上げる。なお、現在の周波数FreqがPLL20の調整可能な最大値である場合、ステートマシン173は、現在の周波数Freqを変更しない。
遷移番号2は、検出温度Tjが温度閾値Tth以下の状態で、検出温度Tjが温度閾値Tthより高くなったときの遷移を示す。遷移番号2では、ステートマシン173は、第1周波数Freq1より低い一番高い周波数設定値に周波数を変更する。
遷移番号3は、検出温度Tjが温度閾値Tthより高い状態から一定時間経過した後に、検出温度Tjが温度閾値Tthより高くなったときの遷移を示す。遷移番号3では、ステートマシン173は、第2周波数Freq2より低い一番高い周波数設定値に周波数を変更する。
遷移番号4は、遷移番号3による遷移の後に、検出温度Tjが温度閾値Tthより依然として高いときの遷移を示す。遷移番号4では、遷移番号3と同様に、ステートマシン173は、第2周波数Freq2より低い一番高い周波数設定値に周波数を変更する。
遷移番号5は、遷移番号2による遷移の後に、検出温度Tjが温度閾値Tth以下になったときの遷移を示す。遷移番号5では、ステートマシン173は、現在の周波数Freqを一段階上げる。なお、現在の周波数FreqがPLL20の調整可能な最大値である場合、ステートマシン173は、現在の周波数Freqを変更しない。
遷移番号6は、遷移番号3又は4による遷移の後に、検出温度Tjが温度閾値Tth以下になったときの遷移を示す。遷移番号6では、ステートマシン173は、現在の周波数Freqを一段階上げる。なお、現在の周波数FreqがPLL20の調整可能な最大値である場合、ステートマシン173は、現在の周波数Freqを変更しない。
待機時間タイマ174は、周波数変更要求信号がステートマシン173から入力されてからの経過時間をカウントする。待機時間タイマ174は、周波数変更要求信号がステートマシン173から入力されてから所定の待機時間が経過したときに、通知信号をステートマシン173に出力する。
アドレスレジスタ175は、現在の周波数Freqに対応するアドレスを記憶する。アドレスインクリメント部176は、アドレスレジスタ175に記憶されるアドレスがアドレスの最大値でないときに、アドレスレジスタ175に記憶されるアドレスをインクリメントして出力する。アドレスインクリメント部176は、アドレスレジスタ175に記憶されるアドレスがアドレスの最大値であるときに、アドレスレジスタ175に記憶されるアドレスを出力する。
制御選択部177は、ステートマシン173から入力される遷移番号信号に対応する遷移番号に応じて選択されるアドレスである周波数指示値を示す周波数指示信号を出力する。制御選択部177は、遷移番号信号に対応する遷移番号が1、5及び6のときにアドレスインクリメント部176から入力されるアドレスを示す周波数指示信号を出力する。制御選択部177は、遷移番号信号に対応する遷移番号が2のときに第1変換部171から入力されるアドレスを示す周波数指示信号を出力する。制御選択部177は、遷移番号信号に対応する遷移番号が3及び4のときに第1変換部171から入力されるアドレスを示す周波数指示信号を出力する。
PLL制御部18は、周波数決定部17から入力される周波数指示信号及び周波数変更要求信号に応じて、周波数設定表19を参照してPLL20の周波数を設定する。表1は周波数設定表19の一例を示す表である。
周波数設定表19は、アドレスと、PLL周波数設定と、設定周波数とを記憶する。周波数設定表19は、
(周波数)=(最低周波数)+(アドレス)×(周波数調整幅)
となるように、アドレスと設定周波数とを記憶する。ここで、表1に示すように、最低周波数は2000MHzであり、周波数調整幅は50MHzである。
(周波数)=(最低周波数)+(アドレス)×(周波数調整幅)
となるように、アドレスと設定周波数とを記憶する。ここで、表1に示すように、最低周波数は2000MHzであり、周波数調整幅は50MHzである。
PLL20は、PLL制御部18の制御に応じた周波数で発振してクロック信号を生成し、生成したクロック信号を回路部5に出力する。
(実施形態に係る半導体装置の動作)
図11は、半導体装置1における周波数制御処理のフローチャートである。
図11は、半導体装置1における周波数制御処理のフローチャートである。
まず、システムコントローラ2は、レジスタ設定制御部9aを介して温度閾値Tth、オフセット電力値Poffset及び重み係数wを周波数制御部10のレジスタに設定する(S201)。具体的には、温度閾値Tthは温度閾値レジスタ11に記憶され、オフセット電力値Poffsetはオフセット電力レジスタ13に記憶され、重み係数wは重み係数レジスタ141に記憶される。次いで、周波数決定部17は、比較回路12から入力される比較結果信号Tcmpに対応する信号値が「1」であるか否かを判定する(S202)。比較回路12が出力する比較結果信号Tcmpに対応する信号値が「1」であるとき、ベース電力レジスタ160は、指数移動平均フィルタ14から入力される指数移動平均電力値Pexpをベース電力値Pbaseとして記憶する(S203)。また、第1周波数演算部15は、式(4)に従って第1周波数Freq1を演算する(S204)。また、周波数決定部17は、比較回路12が出力する比較結果信号Tcmpに対応する信号値が「1」であると判定する(S202−YES)と、PLL20の発振周波数を第1周波数Freq1に変更する指示を示す周波数変更指示信号をPLL制御部18に出力する(S205)。周波数決定部17は、所定の待機時間が経過したと判定した(S206)後に、比較回路12から入力される比較結果信号Tcmpに対応する信号値が「0」であるか否かを判定する(S207)。
第2周波数演算部16は、式(5)に従って第2周波数Freq2を演算する(S208)。周波数決定部17は、比較回路12が出力する比較結果信号Tcmpに対応する信号値が「1」であると判定する(S207−NO)と、PLL20の発振周波数を第2周波数Freq2に変更する指示を示す周波数変更指示信号をPLL制御部18に出力する(S209)。周波数決定部17は、所定の第1待機時間が経過したと判定した(S210)後に、比較回路12から入力される比較結果信号Tcmpに対応する信号値が「0」であるか否かを判定する(S207)。以降、比較回路12が出力する比較結果信号Tcmpに対応する信号値が「0」であると判定される(S208−YES)まで、S207〜S210の処理が繰り返される。比較回路12が出力する比較結果信号Tcmpに対応する信号値が「0」であると判定される(S208−YES)と、処理はS202に戻る。
周波数決定部17は、S202において、比較回路12が出力する比較結果信号Tcmpに対応する信号値が「0」であると判定する(S202−NO)と、現在の周波数が最大周波数であるか否かを判定する(S211)。周波数決定部17は、現在の周波数が最大周波数でないと判定する(S211−NO)と、現在の周波数に対応するアドレスをインクリメントして周波数を一段階上げる(S212)。次いで、周波数決定部17によって比較回路12が出力する比較結果信号Tcmpに対応する信号値が「1」であると判定される(S213−YES)と、処理はS203に進む。一方、一定時間が経過する(S214)までに、周波数決定部17によって比較回路12が出力する比較結果信号Tcmpに対応する信号値が「1」であると判定されない(S213−NO)と、処理はS202に戻る。
図12は、監視電力値Pmonの変化に応じて周波数制御部10がS202〜S210の処理を実行したときのタイミングチャートを示す図である。図12において、(a)は監視電力値Pexp及び指数移動平均電力値Pexpのタイミングチャートを示し、(b)は検出温度Tjのタイミングチャートを示し、(c)は比較結果信号のタイミングチャートを示す。また、(d)はPLL20の発振周波数のタイミングチャートを示す。
まず、回路部5の動作の変化に伴って、矢印Aで示される時点で電力モニタ6によって監視される回路部5の消費電力が監視電力値Pmon1から監視電力値Pmon2に増加する。回路部5の消費電力が監視電力値Pmon1から監視電力値Pmon2に増加するに従って、検出温度Tjは、半導体装置1の熱時定数τに応じた変化量で、検出温度Tj1から徐々に増加して矢印Bで示す時点で温度閾値Tthに達する。
周波数制御部10は、検出温度Tj1から徐々に増加して矢印Bで示す時点で温度閾値Tthに達してから、ADコンバータ4等の種々の素子が介在することに起因する所定の遅延時間Tdが経過した矢印Cで示す時点で、信号値「1」を示す比較結果信号が入力される。信号値「1」を示す比較結果信号が入力されることに応じて、ベース電力レジスタ160は、比較結果信号Tcmpの信号値が「1」に対応するときに、指数移動平均フィルタ14から入力される指数移動平均電力値Pexpをベース電力値Pbaseとして記憶する。
周波数制御部10は、信号値「1」を示す比較結果信号が入力されることに応じて、PLL20の発振周波数を、現在の周波数Freqから第1周波数Freq1に変更することを示す周波数指示信号を出力する。ここで、第1周波数Freq1は、回路部5の消費電力値Pmon2、比較結果信号に対応する信号値が「0」から「1」に変化したときの指数移動平均電力値Pexp、オフセット電力値Poffset及びPLL20の現在の発振周波数Freqから周波数制御部10によって演算される。なお、指数移動平均電力値Pexpは、温度センサ7が検出温度Tjを検出してから周波数制御部10に比較結果信号が入力されるまでの時間に対応する時間だけフィルタ遅延回路147によって遅延されて出力されるため、回路部5の温度の変化に対応する電力になる。
次いで、矢印Dで示す時点において、PLL20の発振周波数が周波数Freqから第1周波数Freq1に変更されることで、電力モニタ6によって監視される回路部5の消費電力が監視電力値Pmon2から監視電力値Pmon3に減少する。監視電力値Pmon3は、ベース電力値Pbaseとオフセット電力値Poffsetを加算した値である。
次いで、回路部5の動作の変化に伴って、矢印Eで示される時点で電力モニタ6によって監視される回路部5の消費電力が監視電力値Pmon3から監視電力値Pmon4に増加する。周波数制御部10は、比較結果信号Tcmpに対応する信号値が「1」であると判定して、PLL20の発振周波数を第2周波数Freq2に変更する指示を示す周波数変更指示信号をPLL制御部18に出力する。次いで、矢印Fで示される時点で、PLL20の周波数は、第2周波数Freq2に変更されて、回路部5の消費電力が監視電力値Pmon5に減少する。監視電力値Pmon5は、監視電力値Pmon3と同様に、ベース電力値Pbaseとオフセット電力値Poffsetを加算した値である。
次いで、回路部5の動作の変化に伴って、矢印Gで示される時点で電力モニタ6によって監視される回路部5の消費電力が監視電力値Pmon5から監視電力値Pmon6に減少する。周波数制御部10は、比較結果信号Tcmpに対応する信号値が「1」であると判定して、PLL20の発振周波数を第2周波数Freq2に変更する指示を示す周波数変更指示信号をPLL制御部18に出力する。次いで、矢印Hで示される時点で、PLL20の周波数は、第2周波数Freq2に変更されて、回路部5の消費電力が監視電力値Pmon7に減少する。監視電力値Pmon7は、監視電力値Pmon3及びPmon5と同様に、ベース電力値Pbaseとオフセット電力値Poffsetを加算した値である。
次いで、回路部5の動作の変化に伴って、矢印Iで示される時点で電力モニタ6によって監視される回路部5の消費電力が監視電力値Pmon7から監視電力値Pmon8に増加する。周波数制御部10は、比較結果信号Tcmpに対応する信号値が「1」であると判定して、PLL20の発振周波数を第2周波数Freq2に変更する指示を示す周波数変更指示信号をPLL制御部18に出力する。次いで、矢印Jで示される時点で、PLL20の周波数は、第2周波数Freq2に変更されて、回路部5の消費電力が監視電力値Pmon9に減少する。監視電力値Pmon98は、監視電力値Pmon3、Pmon5及びPmon7と同様に、ベース電力値Pbaseとオフセット電力値Poffsetを加算した値である。
以降、周波数制御部10は、比較結果信号Tcmpに対応する信号値が「0」であると判定まで、回路部5の消費電力をベース電力値Pbaseとオフセット電力値Poffsetを加算した値に維持するようにPLL20の周波数を制御する。
(実施形態に係る半導体装置の作用効果)
半導体装置1は、回路部5の温度が温度閾値Tthに達したときの回路部5の温度の変化に対応する指数移動平均電力値Pexpにオフセット電力値Poffsetを加算した値を目標電力値として、PLL20の動作周波数を制御する。半導体装置1は、指数移動平均電力値Pexpにオフセット電力値Poffsetを加算した値を目標電力値とすることで、指数移動平均電力値Pexpを目標電力とする半導体装置900よりも高い動作周波数でPLLを制御することができる。半導体装置1は、半導体装置900よりも高い動作周波数でPLLを制御することができるので、半導体装置の動作周波数が無駄に低下することを防止できる。
半導体装置1は、回路部5の温度が温度閾値Tthに達したときの回路部5の温度の変化に対応する指数移動平均電力値Pexpにオフセット電力値Poffsetを加算した値を目標電力値として、PLL20の動作周波数を制御する。半導体装置1は、指数移動平均電力値Pexpにオフセット電力値Poffsetを加算した値を目標電力値とすることで、指数移動平均電力値Pexpを目標電力とする半導体装置900よりも高い動作周波数でPLLを制御することができる。半導体装置1は、半導体装置900よりも高い動作周波数でPLLを制御することができるので、半導体装置の動作周波数が無駄に低下することを防止できる。
例えば、図13(a)に示すように、半導体装置の温度上限値が97℃であり、検出温度Tjに基づいてPLL20の周波数が制御されるまでの時間が4msであり、監視電力値Pmonに基づいてPLL20の周波数が制御されるまでの時間が1msであるとする。また、検出温度Tj及び監視電力値Pmon基づく制御遅延を考慮したときのベース電力値Pbase及びオフセット電力値Poffsetがそれぞれ90W及び10Wであるとする。
例えば4.5GHzで消費電力が120Wとなるように半導体装置が制御された場合、半導体装置900では、回路部の温度が温度閾値Tthを超えたときにベース電力値Pbaseに対応する90Wに合わせるようにPLLの周波数は3.375GHZに調整される。一方、半導体装置1では、回路部の温度が温度閾値Tthを超えたときにベース電力値Pbaseとオフセット電力値Poffsetを加算した値に対応する100Wに合わせるようにPLLの周波数は3.75GHZに調整される。したがって、この例では、半導体装置1は、半導体装置900に対して、約11%(=(3.75−3.375)/3.375)の性能改善が実現される。
(実施形態に係る半導体装置の変形例)
半導体装置1では、周波数制御部10は、第1周波数演算部15と第2周波数演算部16とを有するが、第1周波数演算部15及び第2周波数演算部16は、ベース電力レジスタ160以外は同一の構成要素を有し且つ同時に動作することはない。したがって、実施形態に係る半導体装置では、第1周波数演算部15及び第2周波数演算部16の演算器部分を共通化して、指数移動平均電力値Pexpとベース電力値Pbaseとを選択回路で選択する構成にしてもよい。この場合、選択回路の選択信号は比較結果信号Tcmpを1サイクル遅らせた信号が使用される。
半導体装置1では、周波数制御部10は、第1周波数演算部15と第2周波数演算部16とを有するが、第1周波数演算部15及び第2周波数演算部16は、ベース電力レジスタ160以外は同一の構成要素を有し且つ同時に動作することはない。したがって、実施形態に係る半導体装置では、第1周波数演算部15及び第2周波数演算部16の演算器部分を共通化して、指数移動平均電力値Pexpとベース電力値Pbaseとを選択回路で選択する構成にしてもよい。この場合、選択回路の選択信号は比較結果信号Tcmpを1サイクル遅らせた信号が使用される。
1 半導体装置
5 回路部
6 電力モニタ(電力検出部)
7 温度センサ(温度検出部)
10 周波数制御部
12 比較回路
14 指数移動平均フィルタ(電力推定部)
15 第1周波数演算部
16 第2周波数演算部
17 周波数決定部
20 PLL(発振部)
5 回路部
6 電力モニタ(電力検出部)
7 温度センサ(温度検出部)
10 周波数制御部
12 比較回路
14 指数移動平均フィルタ(電力推定部)
15 第1周波数演算部
16 第2周波数演算部
17 周波数決定部
20 PLL(発振部)
Claims (4)
- クロックを発振する発振部と、
前記発振部が発振したクロックに応じて動作する回路部と、
前記回路部の温度を検出する温度検出部と、
前記回路部の消費電力を監視電力値として取得する電力検出部と、
前記温度検出部が検出した温度が温度閾値を超えた場合、前記回路部の温度が前記温度閾値よりも高い温度に収束する目標電力に前記監視電力値が一致するように前記発振部のクロックの周波数を制御する周波数制御部と、
を有する半導体装置。 - 周波数制御部は、
前記監視電力値に基づいて、前記温度検出部で検出された温度が前記温度閾値に一致したときの温度に対応するベース電力値を推定する電力推定部と、
前記目標電力が前記ベース電力値以上であり且つ前記温度検出部で検出された温度が温度閾値を超えたときの前記監視電力値以下になるように、前記クロックの周波数を決定する周波数決定部と、
を有する、請求項1に記載の半導体装置。 - 周波数制御部は、前記ベース電力値を記憶するベース電力レジスタを更に有する、請求項2に記載の半導体装置。
- クロックを発振する発振部と、前記発振部が発振したクロックに応じて動作する回路部を有する半導体装置の制御方法において、
前記半導体装置が有する温度検出部が、前記回路部の温度を検出し、
前記半導体装置が有する電力検出部が、前記回路部の消費電力を監視電力値として取得し、
前記半導体装置が有する周波数制御部が、前記温度検出部により検出された温度が温度閾値を超えた場合、前記回路部の温度が前記温度閾値よりも高い温度に収束する目標電力に前記監視電力値が一致するように、前記発振部のクロックの周波数を制御する半導体装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016131906A JP2018005569A (ja) | 2016-07-01 | 2016-07-01 | 半導体装置及び半導体装置の制御方法 |
US15/631,465 US20180005687A1 (en) | 2016-07-01 | 2017-06-23 | Semiconductor device and method of controlling semiconductor device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016131906A JP2018005569A (ja) | 2016-07-01 | 2016-07-01 | 半導体装置及び半導体装置の制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018005569A true JP2018005569A (ja) | 2018-01-11 |
Family
ID=60807146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016131906A Pending JP2018005569A (ja) | 2016-07-01 | 2016-07-01 | 半導体装置及び半導体装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20180005687A1 (ja) |
JP (1) | JP2018005569A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347206A (zh) * | 2018-04-02 | 2019-10-18 | 丰田自动车株式会社 | 车载装置、车载装置的时钟设定方法及存储有程序的存储介质 |
JP2020013859A (ja) * | 2018-07-17 | 2020-01-23 | キヤノン株式会社 | 集積回路装置 |
JP2022535357A (ja) * | 2019-05-29 | 2022-08-08 | 芯原微電子(上海)股▲ふん▼有限公司 | ピーク消費電力を制御する方法及びシステム |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10936004B2 (en) * | 2017-09-28 | 2021-03-02 | Microchip Technology Incorporated | Temperature compensated clock frequency monitor |
JP7070339B2 (ja) * | 2018-10-31 | 2022-05-18 | オムロン株式会社 | 温度閾値決定装置、温度異常判定システム、温度閾値決定方法、およびプログラム |
KR20220059243A (ko) * | 2020-11-02 | 2022-05-10 | 삼성전자주식회사 | 전력 측정에 기초한 온도 검출 및 열 관리를 위한 방법 및 장치 |
US11989005B2 (en) * | 2021-04-15 | 2024-05-21 | Mediatek Inc. | Adaptive thermal ceiling control system |
-
2016
- 2016-07-01 JP JP2016131906A patent/JP2018005569A/ja active Pending
-
2017
- 2017-06-23 US US15/631,465 patent/US20180005687A1/en not_active Abandoned
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347206A (zh) * | 2018-04-02 | 2019-10-18 | 丰田自动车株式会社 | 车载装置、车载装置的时钟设定方法及存储有程序的存储介质 |
US10741238B2 (en) | 2018-04-02 | 2020-08-11 | Toyota Jidosha Kabushiki Kaisha | On-vehicle device, clock setting method for on-vehicle device, and computer-readable non-transitory storage medium having program stored therein |
CN110347206B (zh) * | 2018-04-02 | 2023-09-22 | 丰田自动车株式会社 | 车载装置、车载装置的时钟设定方法及存储有程序的存储介质 |
JP2020013859A (ja) * | 2018-07-17 | 2020-01-23 | キヤノン株式会社 | 集積回路装置 |
JP7199860B2 (ja) | 2018-07-17 | 2023-01-06 | キヤノン株式会社 | 集積回路装置 |
JP2022535357A (ja) * | 2019-05-29 | 2022-08-08 | 芯原微電子(上海)股▲ふん▼有限公司 | ピーク消費電力を制御する方法及びシステム |
JP7304972B2 (ja) | 2019-05-29 | 2023-07-07 | 芯原微電子(上海)股▲ふん▼有限公司 | ピーク消費電力を制御する方法及びシステム |
Also Published As
Publication number | Publication date |
---|---|
US20180005687A1 (en) | 2018-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2018005569A (ja) | 半導体装置及び半導体装置の制御方法 | |
US9590639B2 (en) | Semiconductor device and control method | |
US9465423B2 (en) | System and method for thermal management in a portable computing device using thermal resistance values to predict optimum power levels | |
KR102665003B1 (ko) | 사용자에 대한 근접도에 기초한 웨어러블 컴퓨팅 디바이스의 열 관리를 위한 시스템 및 방법 | |
US7774627B2 (en) | Microprocessor capable of dynamically increasing its performance in response to varying operating temperature | |
KR101443800B1 (ko) | 반도체 장치의 예측적인 동적 열 관리 | |
EP1965285B1 (en) | Microprocessor capable of dynamically reducing its power consumption in response to varying operating temperatue | |
US8909961B2 (en) | Method and apparatus for adjusting power consumption level of an integrated circuit | |
US8768666B2 (en) | Method and system for controlling thermal load distribution in a portable computing device | |
US20080036613A1 (en) | Microprocessor with improved thermal monitoring and protection mechanism | |
KR20140002072A (ko) | 휴대용 컴퓨팅 디바이스에서의 열 로드 관리 | |
US9383804B2 (en) | Method and system for reducing thermal load by forced power collapse | |
JP2009522688A (ja) | 独立周波数及び/又は電圧で集積回路の構成要素を動作させるシステムならびに方法 | |
JP2007233782A (ja) | 発熱量の制御方法およびコンピュータ | |
US7770042B2 (en) | Microprocessor with improved performance during P-state transitions | |
US20150148981A1 (en) | System and method for multi-correlative learning thermal management of a system on a chip in a portable computing device | |
EP3139244B1 (en) | Power-control devices | |
EP3278193B1 (en) | Thermal management in a computing device based on workload detection | |
JP2014052969A (ja) | クロック周波数制御装置、半導体装置 | |
KR100954916B1 (ko) | 재료-기반 기준 모델을 이용한 전압 스케일링 | |
JP7479919B2 (ja) | 情報処理装置 | |
JP2017049972A (ja) | 電子システム及び関連するクロック管理方法 | |
EP1965286B1 (en) | Microprocessor with improved thermal monitoring and protection mechanism |