(57)【要約】【課題】温度が高くなりすぎたりあるいは低くなりすぎたりする発振状態となって、半導体集積回路が誤動作、動作停止等することを防止する。【解決手段】実施形態によれば、半導体集積回路１は、回路部の温度又は動作速度に基づいて、温度が安定するように、回路部の制御パラメータを調整して、フィードバック制御を実行する制御部と、温度の時系列データである第１の履歴データと、制御パラメータの時系列データである第２の履歴データとを含む履歴データを格納する履歴レジスタ１７と、履歴データからフィードバック制御の有効性を判定する有効性判定部２４とを有する。【選択図】図２
2013004677.tif 000002
【特許請求の範囲】
【請求項１】
回路部の温度又は動作速度に基づいて、前記温度又は動作速度が安定するように、前記回路部の第１の制御パラメータを調整して、第１のフィードバック制御を実行する制御部と、
前記温度又は動作速度の時系列データである第１の履歴データと、前記第１の制御パラメータの時系列データである第２の履歴データとを含む履歴データを格納する履歴データレジスタと、
前記履歴データから前記第１のフィードバック制御の有効性を判定する有効性判定部と、
を有することを特徴とする半導体集積回路。
【請求項２】
前記制御部は、第２のパラメータを調整して、第２のフィードバック制御も実行可能であり、
前記制御部は、前記有効性判定部が前記第１のフィードバック制御が有効でないと判定されたときには、前記第１のフィードバック制御に代えて前記第２のフィードバック制御を実行することを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記有効性判定部は、前記第１のフィードバック制御が有効に機能していない状態を示すパターンデータと、前記履歴データとを比較することによって、前記第１のフィードバック制御の有効性を判定することを特徴とする請求項１又は２に記載の半導体集積回路。
【請求項４】
前記有効性判定部は、前記パターンデータと前記履歴データとの一致を判定し、前記パターンデータと前記履歴データが一致したときは、前記第１のフィードバック制御は有効でないと判定し、前記パターンデータと前記履歴データが一致しないときは、前記第１のフィードバック制御は有効であると判定することを特徴とする請求項３に記載の半導体集積回路。
【請求項５】
前記有効性判定部は、パターンマッチングにより前記パターンデータと前記履歴データとの一致を判定することを特徴とする請求項４に記載の半導体集積回路。
【請求項６】
前記第１の制御パラメータは、前記回路部の電源電圧、前記回路部の動作周波数、あるいは前記回路部に含まれる複数の回路ブロックの動作ブロック数であることを特徴とする請求項１から５のいずれか１つに記載の半導体集積回路。
【請求項７】
前記第１の制御パラメータは、前記回路部の電源電圧、前記回路部の動作周波数、及び前記回路部に含まれる複数の回路ブロックの動作ブロック数のうちの一のパラメータであり、
前記第２の制御パラメータは、前記回路部の電源電圧、前記回路部の動作周波数、及び前記動作ブロック数のうちの、前記一のパラメータ以外のパラメータであることを特徴とする請求項２に記載の半導体集積回路。
【請求項８】
さらに、前記半導体集積回路が搭載される半導体チップ上に設けられたヒータを有し、
前記制御部は、前記回路部の温度が所定の温度以下にならないように前記ヒータを制御することを特徴とする請求項１から７のいずれか１つに記載の半導体集積回路。
【請求項９】
前記半導体集積回路が搭載される半導体チップ上に設けられた温度センサを有し、
前記回路部の温度は、前記温度センサによって検出されることを特徴とする請求項１から８のいずれか１つに記載の半導体集積回路。
【請求項１０】
前記半導体集積回路が搭載される半導体チップ上に設けられた周波数カウンタを有し、
前記回路部の動作速度は、前記周波数カウンタによって検出されることを特徴とする請求項１から８のいずれか１つに記載の半導体集積回路。
【請求項１１】
半導体集積回路の温度又は動作速度に基づいて、前記温度又は動作速度が安定するように、前記半導体集積回路の第１の制御パラメータを調整して、第１のフィードバック制御を実行し、
前記温度又は動作速度の時系列データである第１の履歴データと、前記第１の制御パラメータの時系列データである第２の履歴データとを含む履歴データを履歴データレジスタに格納し、
前記履歴データから前記第１のフィードバック制御の有効性を判定することを特徴とする半導体集積回路の動作制御方法。
【請求項１２】
前記第１のフィードバック制御が有効でないと判定されたときには、前記第１のフィードバック制御から、前記温度又は動作速度に基づいて、第２のパラメータを調整して、前記第２のフィードバック制御を実行することを特徴とする請求項１１に記載の半導体集積回路の動作制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体集積回路及び半導体集積回路の動作制御方法に関する。
【背景技術】
【０００２】
従来より、各種装置に搭載される半導体集積回路の低消費電力化を実現するために、種々の方法が提案され、採用されている。例えば、動作モードに応じて電源電圧を制御するVID（Voltage ID）や、温度やプロセスに応じて回路を駆動する電圧を調整するDPTC（Dynamic Process & Temperature Compensation)がある。
【０００３】
例えば、種々の半導体集積回路の中には、半導体集積回路の温度の上昇あるいは低下に伴って回路の動作速度が高くなるあるいは低くなる特性を有するものがある。そのような半導体集積回路において、半導体集積回路の温度が上昇すると動作速度が速くなるため電源電圧VDDを下げ、逆に、半導体集積回路の温度が低下すると動作速度が遅くなるため電源電圧VDDを上げるようにフィードバック制御することによって、半導体集積回路の性能の維持しながら低消費電力を実現することができる。
【０００４】
しかし、このような半導体集積回路の温度パラメータを考慮したフィードバック制御系を採用したときに、半導体集積回路の温度が上昇すると電源電圧VDDを下げ、半導体集積回路の温度が低下すると電源電圧VDDを上げるという制御が繰り返される状態、所謂制御におけるループ状態、が発生する場合がある。
【０００５】
このようなループ状態の場合に、フィードバック制御系が半導体集積回路の温度が高くなりすぎたりあるいは低くなりすぎたりする発振状態となり、場合によっては半導体集積回路の温度が動作保証範囲を超えて、半導体集積回路が誤動作、動作停止等する、という問題がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０９−３０５２６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
そこで、実施形態は、半導体集積回路における温度等に基づくフィードバック制御系が発振状態となることを防止する半導体集積回路及び半導体集積回路の動作制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施形態によれば、制御部と、履歴データレジスタと、有効性判定部とを有する半導体集積回路が提供される。制御部は、回路部の温度又は動作速度に基づいて、前記温度又は動作速度が安定するように、前記回路部の第１の制御パラメータを調整して、第１のフィードバック制御を実行する。履歴データレジスタは、前記温度又は動作速度の時系列データである第１の履歴データと、前記第１の制御パラメータの時系列データである第２の履歴データとを含む履歴データを格納する。有効性判定部は、前記履歴データから前記第１のフィードバック制御の有効性を判定する。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係わる半導体集積回路の構成例を示す構成図である。
【図２】実施形態に係わる低消費電力制御プログラムCPの構成を示すブロック図である。
【図３】実施形態に係わる動作周波数レベルのテーブルの例を示す図である。
【図４】実施形態に係わる動作ブロック数の制御レベルのテーブルの例を示す図である。
【図５】実施形態に係わる履歴データの格納処理の流れを示すフローチャートである。
【図６】実施形態に係わる履歴レジスタ１７に格納される履歴データの例を示す図である。
【図７】実施形態に係わる低消費電力制御プログラムCPによる制御の例を説明するためのタイミングチャートである。
【図８】実施形態に係わる低消費電力制御プログラムCPの処理の流れの例を示すフローチャートである。
【図９】実施形態に係わる、電源電圧制御部２１によるフィードバック制御の有効性の判断に用いられるパターンデータの例を示す図である。
【図１０】実施形態に係わる、動作周波数制御部２２によるフィードバック制御の有効性の判断に用いられるパターンデータの例を示す図である。
【図１１】実施形態に係わる、動作ブロック制御部２３によるフィードバック制御の有効性の判断に用いられるパターンデータの例を示す図である。
【図１２】実施形態に係わる温度制御プログラムTPの処理の流れの例を示すフローチャートである。
【図１３】実施形態に係わる、ヒータ１６のフィードバック制御の有効性の判断に用いられるパターンデータの例を示す図である。
【図１４】実施形態に係わる、ヒータ１６のフィードバック制御の有効性の判断に用いられるパターンデータの他の例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して実施形態を説明する。  
図１は、本実施形態に係わる半導体集積回路の構成例を示す構成図である。半導体集積回路１は、半導体基板上に形成され、１つの半導体チップ（以下、単にチップという）として構成されている。半導体集積回路１には、電源IC２から電源電圧VDDが供給される。電源IC２は、半導体集積回路１を含むチップとは別のチップである。
【００１１】
図１は、半導体集積回路１が形成されるチップ上における各種回路の概略的な配置を示す配置図である。本実施形態の半導体集積回路１は、点線で示すように、大きく4つの機能領域FA1,FA2,FA3,FA4を有する。機能領域FA1は、中央処理装置（以下、CPUという）１１の領域であり、機能領域FA2は、所定の演算を行うロジック処理部１２の領域であり、機能領域FA3は、メモリ１３の領域であり、機能領域FA4は、入出力部（以下、I/O部という）１４の領域である。
【００１２】
電源IC２は、CPU１１からの電源電圧VDDを制御するためのUPあるいはDOWNの制御信号U/Dに応じて、半導体集積回路１へ供給する電源電圧VDDを変更する。ここでは、電源IC２は、UPの制御信号Uを受信すると、電源電圧VDDを一段上げ、DOWNの制御信号Dを受信すると、電源電圧VDDを一段下げる。電源電圧VDDは、所定の上下限値間の変更可能範囲内において、変更される。なお、CPU１１からの制御信号は、制御信号U/Dではなく、電圧レベルを示すレベル信号でもよい。
【００１３】
領域FA1のCPU１１は、外部から入力されたプログラムあるいは領域FA3のメモリ１３に記憶されているプログラムを、読み出して実行する回路部である。領域FA2のロジック処理部１２は、例えば、符号化及び復号化演算を行う複数のロジック部１２−１，１２−２，１２−３，１２−４を含んで構成される回路部である。領域FA3のメモリ１３は、プログラムあるいはデータを一時的及び非一時的に記憶するための回路部である。領域FA4のI/O部１４は、半導体集積回路１が、他の装置、チップ等との信号の送受信を行うための回路部である。
【００１４】
半導体集積回路１の性能は、温度に依存するため、半導体集積回路１の温度を所定の温度に維持するための制御が行われる。例えば、半導体集積回路１の温度が低下し過ぎると、半導体集積回路１の所定のパフォーマンスが得られない場合がある。そのため、メモリ１３の非一次的すなわち不揮発性の記憶領域１３ａには、半導体集積回路１の温度を所定の温度Tth以下にならないように維持するための温度制御プログラムTPが記憶されており、CPU１１によって読み出され実行される。さらに、メモリ１３は、後述する各種パターンデータを記憶するパターンデータ記憶部１３ｂを有する。
【００１５】
さらに、半導体集積回路１のチップ上には、半導体集積回路１の温度を検出するために、温度センサ１５が設けられている。温度検出器としての温度センサ１５は、例えばサーミスタである。チップ上の温度センサ１５の位置は、チップの熱解析シミュレーションにより決定される。温度センサ１５は、例えば、温度が最も高くなる位置、いわゆるホットスポットの位置あるいはその近傍、に配置される。図１においては、温度センサ１５は、チップの略中央で、やや左下のCPU１１寄りに配設されている。  
なお、サーミスタなどの温度センサ１５を用いないで、半導体集積回路１内の一のトランジスタの閾値電圧の変化を利用して、半導体集積回路１の温度を検出するようにしてもよい。
【００１６】
また、半導体集積回路１は、その温度が低くなると所定のパフォーマンスを発揮できないので、半導体集積回路１が所定の温度Tth以下にならないようにするためのヒータ１６が複数箇所に設けられている。ここでは、図１に示すように、４つのヒータ１６のそれぞれが、チップの角に配置されている。
【００１７】
さらに、半導体集積回路１は、履歴データを格納する履歴データレジスタ（以下、履歴レジスタという）１７を有する。後述するように、履歴レジスタ１７の履歴データは、半導体集積回路１の電源電圧制御、動作周波数制御、動作ブロック制御及びヒータ制御において利用される。履歴レジスタ１７の構成については、後述する。
【００１８】
また、半導体集積回路１は、半導体集積回路１の全体あるいは個々の回路へ供給されるクロック信号CLKの周波数Fを制御するための周波数制御部１８を含む。周波数制御部１８は、CPU１１からの周波数Fを制御するための制御信号FCに応じた周波数Fのクロック信号CLKで半導体集積回路１を駆動するように、半導体集積回路１内の各回路へ供給されるクロック信号CLKを変更する。
【００１９】
半導体集積回路１は、所定の機能を実現するための回路であり、CPU１１は、ロジック処理部１２、メモリ１３及びI/O部１４を用いながら、その所定の機能を実現するプログラムを実行すると共に、低消費電力のための低消費電力制御プログラムCPも実行する。低消費電力制御プログラムCPも、メモリ１３の不揮発性の記憶領域１３ａに記憶されている。CPU１１は、メモリ１３から低消費電力制御プログラムCPを読み出して実行する。  
上述した温度制御プログラムTP及び低消費電力制御プログラムCPは、通常、半導体集積回路１が起動されると、常時に実行される。
【００２０】
なお、ここでは、半導体集積回路１の温度を所定の温度Tth以下にならないようにするための制御及び低消費電力のための制御は、CPU１１が温度制御プログラムTP及び低消費電力制御プログラムCPを実行することによって行われるが、これらの制御は、ハードウエア回路あるいは専用のCPUによって実現してもよい。
【００２１】
図２は、低消費電力制御プログラムCPの構成を示すブロック図である。低消費電力制御プログラムCPは、半導体集積回路１の電源電圧制御部２１、動作周波数制御部２２及び動作ブロック制御部２３の各制御部と、有効性判定部２４を含む。  
電源電圧制御部２１は、電源IC２から半導体集積回路１へ供給される電源電圧VDDを制御するための処理プログラム部である。電源電圧制御は、半導体集積回路１の温度が安定するように、温度センサ１５の検出値すなわち検出温度Tdに基づいて、制御パラメータとしての電源電圧VDDを調整することによって行われる。半導体集積回路１が温度の上昇に伴い動作速度が速くなる特性を有する場合、電源電圧制御部２１は、検出温度Tdが上昇すると電源電圧VDDを下げるようにフィードバック制御し、検出温度Tdが低下すると半導体集積回路１の動作速度が遅くなるので、電源電圧制御部２１は、電源電圧VDDを上げるようにフィードバック制御する。なお、半導体集積回路１が温度の上昇に伴い動作速度が遅くなる特性を有する場合もあるが、本実施形態では、半導体集積回路１が温度の上昇に伴い動作速度が速くなる特性を有する場合で説明する。
【００２２】
動作周波数制御部２２は、半導体集積回路１の全体あるいは個々の回路の動作周波数F、すなわちクロック信号CLKの周波数Fを制御するための処理部である。動作周波数制御部２２は、半導体集積回路１の温度が安定するように、温度センサ１５の検出温度Tdに基づいて、制御パラメータとしての動作周波数Fを調整することによって行われる。動作周波数制御部２２は、検出温度Tdが上昇すると動作周波数Fを下げ、検出温度Tdが低下すると動作周波数Fを上げるようにフィードバック制御する。
【００２３】
図３は、動作周波数レベルのテーブルの例を示す図である。図３に示す動作周波数テーブル３１では、４つのレベル１、２、３、４は、それぞれ１１１MHz、２２２MHz、３３３MHz、４４４MHzに対応する。CPU１１は、検出温度Tdに応じて、動作周波数Fを制御するための制御信号FCを周波数制御部１８へ供給する。
【００２４】
動作ブロック制御部２３は、ロジック処理部１２における複数のロジック部１２−１，１２−２，１２−３，１２−４の動作を制御するための処理部である。動作ブロック制御部２３は、半導体集積回路１の温度が安定するように、温度センサ１５の検出値に基づいて、制御パラメータとしての動作ブロック数N（Nは整数であり、ここでは１〜４のいずれかの数）を調整することによって行われる。動作ブロック制御部２３は、温度が上昇すると動作させるロジック部の数、すなわち動作ブロック数Nを減らし、温度が低下すると動作させるロジック部の数を増やすようにフィードバック制御する。
【００２５】
図４は、動作ブロック数の制御レベルのテーブルの例を示す図である。図４に示す動作ブロック制御テーブル３２では、４つの動作レベル１、２、３、４毎に、ロジック処理部１２において動作させるブロックの情報が記憶されている。CPU１１は、温度センサ１５により検出された検出温度Tdに応じて、ブロック制御レベル２２の動作レベルを決定し、各ブロックの動作を制御するためのレベルを示す制御信号BCをロジック処理部１２へ供給する。各ブロックへの電源供給は、制御信号BCに応じて制御され、制御信号BCで指定された動作ブロックのみが電源の供給を受けて動作可能となる。
【００２６】
有効性判定部２４は、後述するように、履歴レジスタ１７に格納されている履歴データからフィードバック制御の有効性を判定する処理部である。有効性判定部２４の処理内容については後述する。
【００２７】
以上のように、半導体集積回路１は、所定の機能を実現するプログラムを実行可能な回路であり、CPU１１が、そのプログラムを実行しながら、低消費電力のための低消費電力制御プログラムCPを実行することによって、半導体集積回路１の低消費電力化を図っている。
【００２８】
さらに、半導体集積回路１の温度によっては、半導体集積回路１の所定のパフォーマンスが得られない場合がある。そこで、半導体集積回路１は、所定の機能を実現するプログラムを実行しながら、上述した温度制御プログラムTPを実行することによって、半導体集積回路１が所定のパフォーマンスを得られるように、検出温度Tdと所定の閾値温度Tthとを比較し、その比較結果に基づいて、ヒータ１６の駆動を制御する。
【００２９】
よって、半導体集積回路１は、所定の機能を実現するプログラムを実行しながら、低消費電力制御プログラムCP及び温度制御プログラムTPを実行して、半導体集積回路１の所定のパフォーマンスを維持しながら、低消費電力化を図っている。
【００３０】
低消費電力制御プログラムCP又は温度制御プログラムTPは、その一部に、履歴レジスタ１７への履歴データの記憶処理を含む。図５は、履歴データの格納処理の流れを示すフローチャートである。CPU１１は、図示しないカウンタにより時間を計時しており、所定の時間tpが経過したか否かを判定する（S1）。所定の時間tpは、例えば１０秒、である。所定の時間tpが経過しないとき（S1:NO）、処理は、何もしない。所定の時間tpが経過すると（S1:YES）、CPU１１は、履歴データを算出して求め、履歴レジスタ１７に記憶し（S2）、処理は、S1へ戻る。
【００３１】
従って、図５の処理によれば、CPU１１は、所定の時間tp毎に、履歴データを算出して、履歴レジスタ１７に記憶するので、履歴レジスタ１７には、所定の時間tp毎に算出されて格納された履歴データが記憶される。
【００３２】
ここで、履歴レジスタ１７の構成について説明する。図６は、履歴レジスタ１７に格納される履歴データの例を示す図である。履歴レジスタ１７には、温度、電源電圧、動作周波数、動作ブロック数の各履歴データが記憶される。履歴レジスタ１７は、所定の時間間隔tp毎の履歴データを、所定の量（例えば５分間分の量）だけ、記憶可能な記憶容量を有している。よって、履歴レジスタ１７に格納される履歴データは、温度等の時系列データである。
【００３３】
図６の履歴レジスタ１７では、時間t1は、直近の時間であり、履歴レジスタ１７には、時間t1に対応して直近の履歴データが記憶される。時間t2は、時間t1よりも１０秒前の時間であり、履歴レジスタ１７には、時間t2に対応して時間t1よりも１０秒前の履歴データが記憶され、時間t3は、時間t2よりも１０秒前の時間であり、履歴レジスタ１７には、時間t3に対応して時間t2よりも１０秒前の履歴データが記憶され、というように、履歴データが、履歴レジスタ１７に記憶される。
【００３４】
CPU１１は、低消費電力制御プログラムCPの実行中、温度の履歴データTemp1,Temp2、電源電圧の履歴データVd、動作周波数の履歴データFd、動作ブロック数の履歴データBd及びヒータ１６の動作を示す履歴データHdを含む履歴データを、履歴レジスタ１７に記憶する。
【００３５】
なお、CPU１１は、履歴レジスタ１７の記憶容量を超えた分の履歴データは廃棄し、最新の履歴データのみを保持するように、履歴データの記憶制御を行う。ここでは、履歴レジスタ１７には、直近の５分間の履歴データのみが記憶される。
【００３６】
温度の履歴データは、２種類ある。一つは、温度センサ１５により検出された検出温度Tdの上昇あるいは下降の傾向を示す傾向データTemp1であり、もう一つは、温度センサ１５の検出温度Tdが所定の閾値温度Tth以下であるか否かを示す閾値比較データTemp2である。
【００３７】
傾向データTemp1は、温度センサ１５により検出された検出温度Tdが、前回の（ここでは１０秒前の）検出温度を超えるか、同じか、あるいは未満かを示すデータである。CPU１１は、検出温度Tdが、前回の検出温度を超える場合は、「＋１」とし、前回の検出温度と同じである場合は、「０」とし、前回の検出温度未満で有る場合は、「−１」とする。
【００３８】
閾値比較データTemp2は、温度センサ１５により検出された検出温度Tdと所定の閾値温度Tth（例えば、１０℃）を比較し、検出温度Tdが所定の閾値温度Tth以下であるか否かを示すデータである。CPU１１は、閾値比較データTemp2を、検出温度Tdが所定の閾値温度Tth以下であると「０」とし、検出温度Tdが所定の閾値温度Tthを超えるときは「１」とする。
【００３９】
電源電圧の履歴データVdについては、CPU１１は、電源電圧制御部２１のフィードバック制御により、電源電圧VDDが上げられたときには「１」とし、電源電圧VDDが変更されないときには「０」とし、電源電圧VDDを下げられたときは「−１」とする。
【００４０】
動作周波数の履歴データFdについては、CPU１１は、動作周波数制御部２２のフィードバック制御により、クロック信号の周波数Fすなわち動作周波数Fが上げられたときには「１」とし、動作周波数Fが変更されないときには「０」とし、動作周波数Fが下げられたときは「−１」とする。
【００４１】
動作ブロック数の履歴データBdについては、CPU１１は、動作ブロック制御部２３のフィードバック制御により決定された動作ブロック数Nとする。例えば、動作ブロック数が４であるときには、履歴データBdは、「４」とされ、動作ブロック数が３であるときには、履歴データBdは、「３」とされる。  
ヒータ１６の動作を示す履歴データHdについては、CPU１１は、温度制御プログラムTPにより、ヒータ１６がオンのときには「１」とし、ヒータ１６がオフのときには「０」とする。
【００４２】
以上のように、履歴データの記憶処理（S2）において、これらの履歴データが算出され、履歴レジスタ１７に記憶される。よって、履歴レジスタ１７は、温度の履歴データと、各制御パラメータの履歴データとを含む履歴データを格納する履歴データレジスタである。
【００４３】
次に、低消費電力制御プログラムCPの処理について説明する。  
低消費電力制御プログラムCPが実行されると、CPU１１は、まず、電源電圧制御部２１により、温度センサ１５の検出温度Tdに基づいて、制御パラメータとしての電源電圧VDDを調整するフィードバック制御を行う。
【００４４】
電源電圧制御部２１によるフィードバック制御では、例えば、検出温度Tdの変化が所定量ΔT以上増加する変化があったときには、電源電圧VDDを１段下げ、検出温度Tdの変化が所定量ΔT以上減少する変化があったときには、電源電圧VDDを１段上げ、検出温度Tdの変化が所定量ΔT以上の変化がないときには、電源電圧VDDを維持するように、電源電圧VDDを制御する。
【００４５】
電源電圧のフィードバック制御により、半導体集積回路１の温度が安定してくると、低消費電力制御プログラムCPは、電源電圧制御部２１によるフィードバック制御を継続するが、半導体集積回路１の温度が安定しない場合には、動作周波数制御部２２によるフィードバック制御に移行する。
【００４６】
動作周波数制御部２２によるフィードバック制御により、半導体集積回路１の温度が安定してくると、低消費電力制御プログラムCPは、動作周波数制御部２２によるフィードバック制御を継続するが、半導体集積回路１の温度が安定しない場合には、動作ブロック制御部２３によるフィードバック制御に移行する。  
なお、各フィードバック制御においては、検出温度Tdの変化量に比例して、制御パラメータである電源電圧VDD等の制御量は変更される。
【００４７】
図７は、低消費電力制御プログラムCPによる制御の例を説明するためのタイミングチャートである。図７に示す例では、温度センサ１５の検出温度Tdの上昇により、傾向データTemp1は上昇する。傾向データTemp1に基づいて、時刻taにおいて、電源電圧制御部２１により電源電圧VDDが１段下げられ、その後も検出温度Tdの上昇が続き、半導体集積回路１の温度が安定しなかったため、時刻tbにおいて、制御は、電源電圧制御部２１から動作周波数制御部２２によるフィードバック制御へ移行している。その後、時刻tcにおいて、半導体集積回路１の温度が安定したことが示されている。図７では、動作周波数制御部２２によるフィードバック制御により導体集積回路１の温度が安定したので、制御は、動作ブロック制御部２３の動作ブロックフィードバック制御に移行していない。
【００４８】
なお、ここでは、例として、低消費電力制御プログラムCPは、電源電圧制御、動作周波数制御及び動作ブロック制御の順で、制御パラメータを変更して、半導体集積回路１の温度を制御しているが、制御パラメータの変更の順序、言い換えると優先度、は、この順序とは異なる順序でもよい。
【００４９】
図８は、低消費電力制御プログラムCPの処理の流れの例を示すフローチャートである。  
低消費電力制御プログラムCP では、CPU１１は、電源電圧制御部２１によるフィードバック制御を実行する（S11）。フィードバック制御では、上述したように、温度センサ１５の検出温度Tdに基づき、電源電圧VDDを上下あるいは維持する制御が行われる。検出温度Tdを入力として、検出温度Tdが安定するように、制御パラメータである電源電圧VDDを変更あるいは維持する制御が、実行される。通常、このフィードバック制御が有効に機能すれば、半導体集積回路１の温度は安定する。
【００５０】
しかし、検出温度Tdが上昇すると電源電圧VDDを下げ、検出温度Tdが低下すると電源電圧VDDを上げるという制御が繰り返される状態、所謂制御におけるループ状態、が発生して、半導体集積回路１の温度が上昇し続け、半導体集積回路１の温度が所定の温度補償範囲を超えてしまう場合が発生し得る。
【００５１】
そこで、この電源電圧制御部２１によるフィードバック制御中に、フィードバック制御が有効に機能しているか否かが判断される（S12）。S12の処理は、履歴レジスタ１７に格納されている履歴データからフィードバック制御の有効性を判定する有効性判定部２４において実行される。
【００５２】
この電源電圧制御部２１によるフィードバック制御の有効性の判定は、具体的には、電源電圧制御部２１によるフィードバック制御が有効に機能しない状態を示すパターンデータを、予めメモリ１３のパターンデータ記憶部１３ｂに記憶しておき、電源電圧制御部２１によるフィードバック制御中に、履歴レジスタ１７に格納されている履歴データとそのパターンデータとを比較することによって、行われる。さらに詳しくは、フィードバック制御の有効性の判定では、パターンマッチングによりパターンデータと履歴データとの一致を判定し、パターンデータと履歴データが一致したときは、フィードバック制御は有効でないと判定され、パターンデータと履歴データが一致しないときは、フィードバック制御は有効であると判定される。
【００５３】
図９は、電源電圧制御部２１によるフィードバック制御の有効性の判断に用いられるパターンデータの例を示す図である。そのフィードバック制御の有効性の判断に用いられるパターンデータVdPは、それぞれが時系列データである、複数の傾向データTemp1と複数の電源電圧の履歴データVdを含む。図９では、時間的に連続する４つの傾向データTemp1と、その傾向データTemp1に対応する、制御パラメータである４つの電源電圧の履歴データVdとからパターンデータVdPは構成されている。
【００５４】
３０秒前（t4）に得られた傾向データTemp1は、「１」であるので、半導体集積回路１の温度は、上昇していることを示し、対応する電源電圧履歴データVdは、「−１」であるので、電源電圧VDDが１段下げられたことを示している。また、２０秒前（t3）、１０秒前（t2）、及び直近（t1）の傾向データTemp1と電源電圧の履歴データVdも、同様であるので、データパターンVdPは、検出温度Tdの上昇に伴い、電源電圧VDDは連続して下げられてきたが、半導体集積回路１の温度は安定していないことを示す。言い換えると、図９に示すようなデータパターンVdPは、電源電圧制御部２１によるフィードバック制御が有効に機能していない状態を示すデータである。
【００５５】
よって、電源電圧制御部２１によるフィードバック制御を実行中に、パターンマッチングにより直近の履歴データがデータパターンVdPに一致するか否かを判定することによって、電源電圧制御部２１によるフィードバック制御が有効に機能していないか否かを判定することができる。
【００５６】
電源電圧制御部２１によるフィードバック制御が有効に機能している場合（S12:YES）、処理は、S11に戻り、電源電圧制御部２１によるフィードバック制御が有効に機能していない場合（S12:NO）、すなわち、電源電圧制御部２１によるフィードバック制御が有効でないと判定されたときには、処理は、動作周波数制御部２２によるフィードバック制御へ移行する（S13）。
【００５７】
動作周波数制御部２２によるフィードバック制御では、上述したように、温度センサ１５の検出温度Tdに基づき、動作周波数Fを上下あるいは維持する制御が行われる。検出温度Tdを入力として、検出温度Tdが安定するように、制御パラメータである動作周波数Fを変更あるいは維持する制御が、実行される。通常、動作周波数フィードバック制御が有効に機能すれば、半導体集積回路１の温度は安定するが、ここでも、所謂制御におけるループ状態、が発生して、半導体集積回路１の温度が上昇し続け、半導体集積回路１の温度が所定の温度補償範囲を超えてしまう場合が発生し得る。
【００５８】
そこで、動作周波数制御部２２によるフィードバック制御中に、動作周波数制御部２２によるフィードバック制御が有効に機能しているか否かが判断される（S14）。S14の処理は、履歴レジスタ１７に格納されている履歴データからフィードバック制御の有効性を判定する有効性判定部２４において実行される。
【００５９】
この動作周波数制御部２２によるフィードバック制御の有効性の判断も、上述した電源電圧制御部２１によるフィードバック制御の有効性の判断と同様に、具体的には、動作周波数制御部２２によるフィードバック制御が有効に機能しない状態を示すパターンデータを、予めメモリ１３のパターンデータ記憶部１３ｂに記憶しておき、動作周波数制御部２２によるフィードバック制御中に、パターンマッチングにより履歴レジスタ１７に格納されている履歴データが、そのパターンデータに一致するか否かを判定することによって、行われる。
【００６０】
図１０は、動作周波数制御部２２によるフィードバック制御の有効性の判断に用いられるパターンデータの例を示す図である。動作周波数制御部２２によるフィードバック制御の有効性の判断に用いられるパターンデータFdPは、それぞれが時系列データである、複数の傾向データTemp1と複数の動作周波数の履歴データFdを含む。図１０では、時間的に連続する４つの傾向データTemp1と、その傾向データTemp1に対応する、制御パラメータである４つの動作周波数の履歴データFdとからパターンデータFdPは構成されている。
【００６１】
図１０も、図９と同様に、３０秒前（t4）に得られた傾向データTemp1は、「１」であるので、半導体集積回路１の温度は、上昇していることを示し、対応する動作周波数の履歴データFdは、「−１」であるので、動作周波数Fを１段下げたことを示している。また、２０秒前（t3）、１０秒前（t2）、及び直近（t1）の傾向データTemp1と動作周波数Fの履歴データFdも、同様であるので、データパターンFdPは、検出温度Tdの上昇に伴い、動作周波数Fは連続して下げられてきたが、半導体集積回路１の温度は安定していないことを示す。言い換えると、図１０に示すようなデータパターンFdPは、動作周波数制御部２２によるフィードバック制御が有効に機能していない状態を示すデータである。
【００６２】
よって、動作周波数制御部２２によるフィードバック制御を実行中に、直近の履歴データがデータパターンFdPに一致するか否かを判定することによって、動作周波数制御部２２によるフィードバック制御が有効に機能していないか否かを判定することができる。
【００６３】
動作周波数制御部２２によるフィードバック制御が有効に機能している場合（S14:YES）、処理は、S13に戻り、動作周波数制御部２２によるフィードバック制御が有効に機能していない場合（S14:NO）、処理は、動作ブロック制御部２３による動作ブロックフィードバック制御へ移行する（S15）。
【００６４】
動作ブロック制御部２３によるフィードバック制御では、上述したように、温度センサ１５の検出温度Tdに基づき、動作ブロック数Nを上下あるいは維持する制御が行われる。検出温度Tdを入力として、検出温度Tdが安定するように、制御パラメータである動作ブロック数Nを変更あるいは維持する制御が、実行される。通常、動作ブロック制御部２３によるフィードバック制御が有効に機能すれば、半導体集積回路１の温度は安定するが、ここでも、所謂制御におけるループ状態、が発生して、半導体集積回路１の温度が上昇し続け、半導体集積回路１の温度が所定の温度補償範囲を超えてしまう場合が発生し得る。
【００６５】
そこで、動作ブロック制御部２３によるフィードバック制御中に、動作ブロック制御部２３によるフィードバック制御が有効に機能しているか否かが判断される（S16）。S16の処理は、履歴レジスタ１７に格納されている履歴データからフィードバック制御の有効性を判定する有効性判定部２４において実行される。
【００６６】
この動作ブロック制御部２３によるフィードバック制御の有効性の判断も、上述した電源電圧制御部２１によるフィードバック制御及び動作周波数制御部２２によるフィードバック制御の有効性の判断と同様に、具体的には、動作ブロック制御部２３によるフィードバック制御が有効に機能しないことを示すパターンデータを、予めメモリ１３のパターンデータ記憶部１３ｂに記憶しておき、動作ブロック制御部２３によるフィードバック制御中に、パターンマッチングにより履歴レジスタ１７に格納されている履歴データが、そのパターンデータに一致するか否かを判定することによって、行われる。
【００６７】
図１１は、動作ブロック制御部２３によるフィードバック制御の有効性の判断に用いられるパターンデータの例を示す図である。動作ブロック制御部２３によるフィードバック制御の有効性の判断に用いられるパターンデータBdPは、それぞれが時系列データである、複数の傾向データTemp1と複数の動作ブロック数の履歴データBdを含む。図１１では、時間的に連続する４つの傾向データTemp1と、その傾向データTemp1に対応する、制御パラメータである４つの動作ブロック数の履歴データBdとからパターンデータBdPは構成されている。
【００６８】
図１１も、図９と図１０と同様に、３０秒前（t4）に得られた傾向データTemp1は上昇していないことを示し、対応する動作ブロック数の履歴データBdは、「４」であることを示している。しかし、２０秒前（t3）に得られた傾向データTemp1は、「１」であるので、半導体集積回路１の温度は、上昇していることを示し、対応する動作ブロック数Nは、「３」であるので、動作ブロック数Nを１つ減少したことを示している。また、１０秒前（t2）、及び直近（t1）の傾向データTemp1と動作ブロック数Nも、２０秒前と同様の傾向を示している。パターンデータBdPは、検出温度Tdの上昇に伴い、動作ブロック数Nは連続して下げられてきたが、半導体集積回路１の温度は安定していないことを示す。言い換えると、図１１に示すようなパターンデータBdPは、動作ブロック制御部２３によるフィードバック制御が有効に機能していない状態を示すデータである。
【００６９】
よって、動作ブロック制御部２３によるフィードバック制御を実行中に、パターンマッチングにより直近の履歴データがパターンデータBdPに一致するか否かを判定することによって、動作ブロック制御部２３によるフィードバック制御が有効に機能していないか否かを判定することができる。
【００７０】
動作ブロック制御部２３によるフィードバック制御が有効に機能している場合（S16:YES）、処理は、S15に戻り、動作ブロック制御部２３によるフィードバック制御が有効に機能していない場合（S16:NO）、処理は、アラーム処理へ移行する（S17）。
【００７１】
アラーム処理は、ユーザへの警告表示等を含む。その警告表示等により、ユーザは、半導体集積回路１の温度が動作保証範囲を超えて、チップの誤動作、動作停止等が発生する場合があることを知ることができるので、実行中のプログラムを停止させる等の対応を取ることができる。
【００７２】
次に、温度制御プログラムTPの処理について説明する。図１２は、温度制御プログラムTPの処理の流れの例を示すフローチャートである。  
温度制御プログラムTP において、CPU１１は、温度センサ１５の出力から検出温度Tdを得（S21）、検出温度Tdが、所定の閾値Tth、例えば１０℃、以下であるか否かを判定する（S22）。検出温度Tdが所定の閾値Tth以下であるとき（S22:YES）、CPU１１は、ヒータ１６をオンにする（S23）。検出温度Tdが所定の閾値Tth以下でないとき（S22:NO）、CPU１１は、ヒータ１６をオフにする（S24）。
【００７３】
そして、通常、検出温度Tdに基づいて、ヒータ１６のオンとオフにより、フィードバック制御（S21〜S24）が行われることにより、半導体集積回路１の温度が所定の閾値Tth以下にならないように制御が行われるが、半導体集積回路１の動作直後、休止状態からの動作直後、あるいは他の原因により、半導体集積回路１の温度が下降し続け、半導体集積回路１のパフォーマンスを確保できない場合が発生し得る。
【００７４】
そこで、検出温度Tdに基づくヒータ１６のフィードバック制御中に、フィードバック制御が有効に機能しているか否かが判断される（S25）。
【００７５】
このヒータ１６のフィードバック制御の有効性の判断も、上述した各種フィードバック制御の有効性の判断と同様に、具体的には、ヒータ１６のフィードバック制御が有効に機能しないパターンデータを、予めメモリ１３のパターンデータ記憶部１３ｂに記憶しておき、検出温度Tdに基づくヒータ１６のフィードバック制御中に、履歴レジスタ１７に格納されている履歴データが、そのパターンデータに一致するか否かを判定することによって、行われる。
【００７６】
図１３は、ヒータ１６のフィードバック制御の有効性の判断に用いられるパターンデータの例を示す図である。ヒータ１６のフィードバック制御の有効性の判断に用いられるパターンデータHdP1は、それぞれが時系列データである、複数の傾向データTemp1と複数のヒータ１６の動作を示す履歴データHdを含む。図１３では、連続する４つの傾向データTemp1と、その傾向データTemp1に対応する、制御パラメータであるヒータ１６の履歴データHdとからデータパターンFdPは構成されている。履歴データHdは、ヒータ１６がオンのときは、「１」であり、ヒータ１６がオフのときは、「０」である。
【００７７】
図１３も、３０秒前（t4）に得られた傾向データTemp1は、「−１」であるので、半導体集積回路１の温度は、下降していることを示し、対応する履歴データHdは、「１」、すなわちヒータ１６をオンにしたことを示している。また、２０秒前（t3）、１０秒前（t2）、及び直近（t1）の傾向データTemp1と履歴データHdも、同様であるので、パターンデータHdP1は、検出温度Tdの下降に伴い、ヒータ１６を連続してオンにしてきたが、半導体集積回路１の温度は安定していないことを示す。言い換えると、図１３に示すようなパターンデータHdP1は、ヒータ１６のフィードバック制御が有効に機能していない状態を示すデータである。
【００７８】
図１４は、ヒータ１６のフィードバック制御の有効性の判断に用いられるパターンデータの他の例を示す図である。ヒータ１６のフィードバック制御の有効性の判断に用いられるデータパターンHdP2は、それぞれが時系列データである、複数の傾向データTemp3と複数のヒータ１６の履歴データHdを含む。傾向データTemp3は、検出温度Tdが、所定の閾値Tth、例えば１０℃、以下であるか否かを示し、「０」は、検出温度Tdが１０℃以下であることを示し、「１」は、検出温度Tdが１０℃を超えることを示している。
【００７９】
図１４では、連続する４つの傾向データTemp3と、その傾向データTemp1に対応する、制御パラメータであるヒータ１６の履歴データHdとからパターンデータFdP2は構成されている。
【００８０】
図１４も、３０秒前（t4）に得られた傾向データTemp3は、「０」であるので、半導体集積回路１の温度は、１０℃以下であることを示し、対応するデータデータHdは、「１」、すなわちヒータ１６をオンにしたことを示している。また、２０秒前（t3）、１０秒前（t2）、及び直近（t1）の傾向データTemp3とデータデータHdも、同様であるので、パターンデータHdP2は、検出温度Tdが所定の閾値Tth以下であって、ヒータ１６を連続してオンにしてきたが、半導体集積回路１の温度は所定の閾値Tthを上回っていないことを示す。言い換えると、図１４に示すようなパターンデータHdP2は、ヒータ１６のフィードバック制御が有効に機能していない状態を示すデータである。
【００８１】
よって、ヒータ１６のフィードバック制御を実行中に、直近の連続する履歴データがパターンデータHdP1あるいはHdP2に一致するか否かを判定することによって、ヒータ１６のフィードバック制御が有効に機能していないか否かを判定することができる。
【００８２】
ヒータ１６のフィードバック制御が有効に機能している場合（S25:YES）、処理は、S21に戻り、ヒータ１６のフィードバック制御が有効に機能していない場合（S25:NO）、処理は、アラーム処理へ移行する（S26）。S26のアラーム処理は、図８のアラーム処理のS17と同様である。
【００８３】
以上のように、制御プログラムCP及び温度制御プログラムTPにより、実行されているフィードバック制御が有効に機能していない場合を、所定の履歴データから判定し、別の制御パラメータによるフィードバック制御を行うようにした。その結果、上述した半導体集積回路によれば、半導体集積回路１の温度が高くなりすぎたりあるいは低くなりすぎたりする発振状態となって、半導体集積回路が誤動作、動作停止等することを防止することができる。
【００８４】
なお、履歴レジスタに格納される履歴データは、上述したように、前回値からの上下の傾向、段数等の代わりに、検出温度Td、電源電圧値、駆動周波数、駆動ブロック番号等のデータそのものでもよい。
【００８５】
さらになお、上述した実施形態では、温度センサによる温度を検出し、その検出温度に基づいて各フィードバック制御が行われているが、温度に代えて、所定の回路素子間のパスの遅延量等から回路部の動作速度を検出し、その検出した動作速度に基づいて、各フィードバック制御を行うようにしてもよい。これは、半導体集積回路は、温度が低下すると、いわゆるジャンクション温度が低下し、動作速度が変化するからである。
【００８６】
その場合、半導体集積回路の動作速度を計測するために、図１において、点線で示すように、温度センサ１５に代えて、周波数カウンタ１９を設け、動作周波数を検出することによって、回路部の動作速度を検出するようにしてもよい。
【００８７】
本発明の実施形態を説明したが、これらの実施形態は、例として例示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８８】
１  半導体集積回路、２  電源IC、１１  CPU、１２  ロジック処理部、１３  メモリ、１３ａ  不揮発性の記憶領域、１４  I/O部、１５  温度センサ、１６  ヒータ、１７  履歴レジスタ、１８  周波数制御部、１９  カウンタ、３１  動作周波数テーブル、３２  動作ブロック制御テーブル
【図１】
2013004677.tif 000003
【図２】
2013004677.tif 000004
【図３】
2013004677.tif 000005
【図４】
2013004677.tif 000006
【図５】
2013004677.tif 000007
【図６】
2013004677.tif 000008
【図７】
2013004677.tif 000009
【図８】
2013004677.tif 000010
【図９】
2013004677.tif 000011
【図１０】
2013004677.tif 000012
【図１１】
2013004677.tif 000013
【図１２】
2013004677.tif 000014
【図１３】
2013004677.tif 000015
【図１４】
2013004677.tif 000016