"回路部の温度又は動作速度に基づいて、前記温度又は動作速度が安定するように、前記回路部の第1の制御パラメータを調整して、第1のフィードバック制御を実行する制御部と、前記温度又は動作速度の時系列データである第1の履歴データと、前記第1の制御パラメータの時系列データである第2の履歴データとを含む履歴データを格納する履歴データレジスタと、前記履歴データから前記第1のフィードバック制御の有効性を判定する有効性判定部と、を有することを特徴とする半導体集積回路。前記制御部は、第2のパラメータを調整して、第2のフィードバック制御も実行可能であり、前記制御部は、前記有効性判定部が前記第1のフィードバック制御が有効でないと判定されたときには、前記第1のフィードバック制御に代えて前記第2のフィードバック制御を実行することを特徴とする請求項1に記載の半導体集積回路。前記有効性判定部は、前記第1のフィードバック制御が有効に機能していない状態を示すパターンデータと、前記履歴データとを比較することによって、前記第1のフィードバック制御の有効性を判定することを特徴とする請求項1又は2に記載の半導体集積回路。前記有効性判定部は、前記パターンデータと前記履歴データとの一致を判定し、前記パターンデータと前記履歴データが一致したときは、前記第1のフィードバック制御は有効でないと判定し、前記パターンデータと前記履歴データが一致しないときは、前記第1のフィードバック制御は有効であると判定することを特徴とする請求項3に記載の半導体集積回路。前記有効性判定部は、パターンマッチングにより前記パターンデータと前記履歴データとの一致を判定することを特徴とする請求項4に記載の半導体集積回路。前記第1の制御パラメータは、前記回路部の電源電圧、前記回路部の動作周波数、あるいは前記回路部に含まれる複数の回路ブロックの動作ブロック数であることを特徴とする請求項1から5のいずれか1つに記載の半導体集積回路。前記第1の制御パラメータは、前記回路部の電源電圧、前記回路部の動作周波数、及び前記回路部に含まれる複数の回路ブロックの動作ブロック数のうちの一のパラメータであり、前記第2の制御パラメータは、前記回路部の電源電圧、前記回路部の動作周波数、及び前記動作ブロック数のうちの、前記一のパラメータ以外のパラメータであることを特徴とする請求項2に記載の半導体集積回路。さらに、前記半導体集積回路が搭載される半導体チップ上に設けられたヒータを有し、前記制御部は、前記回路部の温度が所定の温度以下にならないように前記ヒータを制御することを特徴とする請求項1から7のいずれか1つに記載の半導体集積回路。前記半導体集積回路が搭載される半導体チップ上に設けられた温度センサを有し、前記回路部の温度は、前記温度センサによって検出されることを特徴とする請求項1から8のいずれか1つに記載の半導体集積回路。前記半導体集積回路が搭載される半導体チップ上に設けられた周波数カウンタを有し、前記回路部の動作速度は、前記周波数カウンタによって検出されることを特徴とする請求項1から8のいずれか1つに記載の半導体集積回路。半導体集積回路の温度又は動作速度に基づいて、前記温度又は動作速度が安定するように、前記半導体集積回路の第1の制御パラメータを調整して、第1のフィードバック制御を実行し、前記温度又は動作速度の時系列データである第1の履歴データと、前記第1の制御パラメータの時系列データである第2の履歴データとを含む履歴データを履歴データレジスタに格納し、前記履歴データから前記第1のフィードバック制御の有効性を判定することを特徴とする半導体集積回路の動作制御方法。前記第1のフィードバック制御が有効でないと判定されたときには、前記第1のフィードバック制御から、前記温度又は動作速度に基づいて、第2のパラメータを調整して、前記第2のフィードバック制御を実行することを特徴とする請求項11に記載の半導体集積回路の動作制御方法。そこで、実施形態は、半導体集積回路における温度等に基づくフィードバック制御系が発振状態となることを防止する半導体集積回路及び半導体集積回路の動作制御方法を提供することを目的とする。実施形態によれば、制御部と、履歴データレジスタと、有効性判定部とを有する半導体集積回路が提供される。制御部は、回路部の温度又は動作速度に基づいて、前記温度又は動作速度が安定するように、前記回路部の第1の制御パラメータを調整して、第1のフィードバック制御を実行する。履歴データレジスタは、前記温度又は動作速度の時系列データである第1の履歴データと、前記第1の制御パラメータの時系列データである第2の履歴データとを含む履歴データを格納する。有効性判定部は、前記履歴データから前記第1のフィードバック制御の有効性を判定する。以下、図面を参照して実施形態を説明する。図1は、本実施形態に係わる半導体集積回路の構成例を示す構成図である。半導体集積回路1は、半導体基板上に形成され、1つの半導体チップ以下、単にチップというとして構成されている。半導体集積回路1には、電源IC2から電源電圧VDDが供給される。電源IC2は、半導体集積回路1を含むチップとは別のチップである。図1は、半導体集積回路1が形成されるチップ上における各種回路の概略的な配置を示す配置図である。本実施形態の半導体集積回路1は、点線で示すように、大きく4つの機能領域FA1FA2FA3FA4を有する。機能領域FA1は、中央処理装置以下、CPUという11の領域であり、機能領域FA2は、所定の演算を行うロジック処理部12の領域であり、機能領域FA3は、メモリ13の領域であり、機能領域FA4は、入出力部以下、IO部という14の領域である。電源IC2は、CPU11からの電源電圧VDDを制御するためのUPあるいはDOWNの制御信号UDに応じて、半導体集積回路1へ供給する電源電圧VDDを変更する。ここでは、電源IC2は、UPの制御信号Uを受信すると、電源電圧VDDを一段上げ、DOWNの制御信号Dを受信すると、電源電圧VDDを一段下げる。電源電圧VDDは、所定の上下限値間の変更可能範囲内において、変更される。なお、CPU11からの制御信号は、制御信号UDではなく、電圧レベルを示すレベル信号でもよい。領域FA1のCPU11は、外部から入力されたプログラムあるいは領域FA3のメモリ13に記憶されているプログラムを、読み出して実行する回路部である。領域FA2のロジック処理部12は、例えば、符号化及び復号化演算を行う複数のロジック部12-1,12-2,12-3,12-4を含んで構成される回路部である。領域FA3のメモリ13は、プログラムあるいはデータを一時的及び非一時的に記憶するための回路部である。領域FA4のIO部14は、半導体集積回路1が、他の装置、チップ等との信号の送受信を行うための回路部である。半導体集積回路1の性能は、温度に依存するため、半導体集積回路1の温度を所定の温度に維持するための制御が行われる。例えば、半導体集積回路1の温度が低下し過ぎると、半導体集積回路1の所定のパフォーマンスが得られない場合がある。そのため、メモリ13の非一次的すなわち不揮発性の記憶領域13aには、半導体集積回路1の温度を所定の温度Tth以下にならないように維持するための温度制御プログラムTPが記憶されており、CPU11によって読み出され実行される。さらに、メモリ13は、後述する各種パターンデータを記憶するパターンデータ記憶部13bを有する。さらに、半導体集積回路1のチップ上には、半導体集積回路1の温度を検出するために、温度センサ15が設けられている。温度検出器としての温度センサ15は、例えばサーミスタである。チップ上の温度センサ15の位置は、チップの熱解析シミュレーションにより決定される。温度センサ15は、例えば、温度が最も高くなる位置、いわゆるホットスポットの位置あるいはその近傍、に配置される。図1においては、温度センサ15は、チップの略中央で、やや左下のCPU11寄りに配設されている。なお、サーミスタなどの温度センサ15を用いないで、半導体集積回路1内の一のトランジスタの閾値電圧の変化を利用して、半導体集積回路1の温度を検出するようにしてもよい。また、半導体集積回路1は、その温度が低くなると所定のパフォーマンスを発揮できないので、半導体集積回路1が所定の温度Tth以下にならないようにするためのヒータ16が複数箇所に設けられている。ここでは、図1に示すように、4つのヒータ16のそれぞれが、チップの角に配置されている。さらに、半導体集積回路1は、履歴データを格納する履歴データレジスタ以下、履歴レジスタという17を有する。後述するように、履歴レジスタ17の履歴データは、半導体集積回路1の電源電圧制御、動作周波数制御、動作ブロック制御及びヒータ制御において利用される。履歴レジスタ17の構成については、後述する。また、半導体集積回路1は、半導体集積回路1の全体あるいは個々の回路へ供給されるクロック信号CLKの周波数Fを制御するための周波数制御部18を含む。周波数制御部18は、CPU11からの周波数Fを制御するための制御信号FCに応じた周波数Fのクロック信号CLKで半導体集積回路1を駆動するように、半導体集積回路1内の各回路へ供給されるクロック信号CLKを変更する。半導体集積回路1は、所定の機能を実現するための回路であり、CPU11は、ロジック処理部12、メモリ13及びIO部14を用いながら、その所定の機能を実現するプログラムを実行すると共に、低消費電力のための低消費電力制御プログラムCPも実行する。低消費電力制御プログラムCPも、メモリ13の不揮発性の記憶領域13aに記憶されている。CPU11は、メモリ13から低消費電力制御プログラムCPを読み出して実行する。上述した温度制御プログラムTP及び低消費電力制御プログラムCPは、通常、半導体集積回路1が起動されると、常時に実行される。なお、ここでは、半導体集積回路1の温度を所定の温度Tth以下にならないようにするための制御及び低消費電力のための制御は、CPU11が温度制御プログラムTP及び低消費電力制御プログラムCPを実行することによって行われるが、これらの制御は、ハードウエア回路あるいは専用のCPUによって実現してもよい。図2は、低消費電力制御プログラムCPの構成を示すブロック図である。低消費電力制御プログラムCPは、半導体集積回路1の電源電圧制御部21、動作周波数制御部22及び動作ブロック制御部23の各制御部と、有効性判定部24を含む。電源電圧制御部21は、電源IC2から半導体集積回路1へ供給される電源電圧VDDを制御するための処理プログラム部である。電源電圧制御は、半導体集積回路1の温度が安定するように、温度センサ15の検出値すなわち検出温度Tdに基づいて、制御パラメータとしての電源電圧VDDを調整することによって行われる。半導体集積回路1が温度の上昇に伴い動作速度が速くなる特性を有する場合、電源電圧制御部21は、検出温度Tdが上昇すると電源電圧VDDを下げるようにフィードバック制御し、検出温度Tdが低下すると半導体集積回路1の動作速度が遅くなるので、電源電圧制御部21は、電源電圧VDDを上げるようにフィードバック制御する。なお、半導体集積回路1が温度の上昇に伴い動作速度が遅くなる特性を有する場合もあるが、本実施形態では、半導体集積回路1が温度の上昇に伴い動作速度が速くなる特性を有する場合で説明する。動作周波数制御部22は、半導体集積回路1の全体あるいは個々の回路の動作周波数F、すなわちクロック信号CLKの周波数Fを制御するための処理部である。動作周波数制御部22は、半導体集積回路1の温度が安定するように、温度センサ15の検出温度Tdに基づいて、制御パラメータとしての動作周波数Fを調整することによって行われる。動作周波数制御部22は、検出温度Tdが上昇すると動作周波数Fを下げ、検出温度Tdが低下すると動作周波数Fを上げるようにフィードバック制御する。図3は、動作周波数レベルのテーブルの例を示す図である。図3に示す動作周波数テーブル31では、4つのレベル1、2、3、4は、それぞれ111MHz、222MHz、333MHz、444MHzに対応する。CPU11は、検出温度Tdに応じて、動作周波数Fを制御するための制御信号FCを周波数制御部18へ供給する。動作ブロック制御部23は、ロジック処理部12における複数のロジック部12-1,12-2,12-3,12-4の動作を制御するための処理部である。動作ブロック制御部23は、半導体集積回路1の温度が安定するように、温度センサ15の検出値に基づいて、制御パラメータとしての動作ブロック数NNは整数であり、ここでは1~4のいずれかの数を調整することによって行われる。動作ブロック制御部23は、温度が上昇すると動作させるロジック部の数、すなわち動作ブロック数Nを減らし、温度が低下すると動作させるロジック部の数を増やすようにフィードバック制御する。図4は、動作ブロック数の制御レベルのテーブルの例を示す図である。図4に示す動作ブロック制御テーブル32では、4つの動作レベル1、2、3、4毎に、ロジック処理部12において動作させるブロックの情報が記憶されている。CPU11は、温度センサ15により検出された検出温度Tdに応じて、ブロック制御レベル22の動作レベルを決定し、各ブロックの動作を制御するためのレベルを示す制御信号BCをロジック処理部12へ供給する。各ブロックへの電源供給は、制御信号BCに応じて制御され、制御信号BCで指定された動作ブロックのみが電源の供給を受けて動作可能となる。有効性判定部24は、後述するように、履歴レジスタ17に格納されている履歴データからフィードバック制御の有効性を判定する処理部である。有効性判定部24の処理内容については後述する。以上のように、半導体集積回路1は、所定の機能を実現するプログラムを実行可能な回路であり、CPU11が、そのプログラムを実行しながら、低消費電力のための低消費電力制御プログラムCPを実行することによって、半導体集積回路1の低消費電力化を図っている。さらに、半導体集積回路1の温度によっては、半導体集積回路1の所定のパフォーマンスが得られない場合がある。そこで、半導体集積回路1は、所定の機能を実現するプログラムを実行しながら、上述した温度制御プログラムTPを実行することによって、半導体集積回路1が所定のパフォーマンスを得られるように、検出温度Tdと所定の閾値温度Tthとを比較し、その比較結果に基づいて、ヒータ16の駆動を制御する。よって、半導体集積回路1は、所定の機能を実現するプログラムを実行しながら、低消費電力制御プログラムCP及び温度制御プログラムTPを実行して、半導体集積回路1の所定のパフォーマンスを維持しながら、低消費電力化を図っている。低消費電力制御プログラムCP又は温度制御プログラムTPは、その一部に、履歴レジスタ17への履歴データの記憶処理を含む。図5は、履歴データの格納処理の流れを示すフローチャートである。CPU11は、図示しないカウンタにより時間を計時しており、所定の時間tpが経過したか否かを判定するS1。所定の時間tpは、例えば10秒、である。所定の時間tpが経過しないときS1NO、処理は、何もしない。所定の時間tpが経過するとS1YES、CPU11は、履歴データを算出して求め、履歴レジスタ17に記憶しS2、処理は、S1へ戻る。従って、図5の処理によれば、CPU11は、所定の時間tp毎に、履歴データを算出して、履歴レジスタ17に記憶するので、履歴レジスタ17には、所定の時間tp毎に算出されて格納された履歴データが記憶される。ここで、履歴レジスタ17の構成について説明する。図6は、履歴レジスタ17に格納される履歴データの例を示す図である。履歴レジスタ17には、温度、電源電圧、動作周波数、動作ブロック数の各履歴データが記憶される。履歴レジスタ17は、所定の時間間隔tp毎の履歴データを、所定の量例えば5分間分の量だけ、記憶可能な記憶容量を有している。よって、履歴レジスタ17に格納される履歴データは、温度等の時系列データである。図6の履歴レジスタ17では、時間t1は、直近の時間であり、履歴レジスタ17には、時間t1に対応して直近の履歴データが記憶される。時間t2は、時間t1よりも10秒前の時間であり、履歴レジスタ17には、時間t2に対応して時間t1よりも10秒前の履歴データが記憶され、時間t3は、時間t2よりも10秒前の時間であり、履歴レジスタ17には、時間t3に対応して時間t2よりも10秒前の履歴データが記憶され、というように、履歴データが、履歴レジスタ17に記憶される。CPU11は、低消費電力制御プログラムCPの実行中、温度の履歴データTemp1Temp2、電源電圧の履歴データVd、動作周波数の履歴データFd、動作ブロック数の履歴データBd及びヒータ16の動作を示す履歴データHdを含む履歴データを、履歴レジスタ17に記憶する。なお、CPU11は、履歴レジスタ17の記憶容量を超えた分の履歴データは廃棄し、最新の履歴データのみを保持するように、履歴データの記憶制御を行う。ここでは、履歴レジスタ17には、直近の5分間の履歴データのみが記憶される。温度の履歴データは、2種類ある。一つは、温度センサ15により検出された検出温度Tdの上昇あるいは下降の傾向を示す傾向データTemp1であり、もう一つは、温度センサ15の検出温度Tdが所定の閾値温度Tth以下であるか否かを示す閾値比較データTemp2である。傾向データTemp1は、温度センサ15により検出された検出温度Tdが、前回のここでは10秒前の検出温度を超えるか、同じか、あるいは未満かを示すデータである。CPU11は、検出温度Tdが、前回の検出温度を超える場合は、1とし、前回の検出温度と同じである場合は、0とし、前回の検出温度未満で有る場合は、-1とする。閾値比較データTemp2は、温度センサ15により検出された検出温度Tdと所定の閾値温度Tth例えば、10°Cを比較し、検出温度Tdが所定の閾値温度Tth以下であるか否かを示すデータである。CPU11は、閾値比較データTemp2を、検出温度Tdが所定の閾値温度Tth以下であると0とし、検出温度Tdが所定の閾値温度Tthを超えるときは1とする。電源電圧の履歴データVdについては、CPU11は、電源電圧制御部21のフィードバック制御により、電源電圧VDDが上げられたときには1とし、電源電圧VDDが変更されないときには0とし、電源電圧VDDを下げられたときは-1とする。動作周波数の履歴データFdについては、CPU11は、動作周波数制御部22のフィードバック制御により、クロック信号の周波数Fすなわち動作周波数Fが上げられたときには1とし、動作周波数Fが変更されないときには0とし、動作周波数Fが下げられたときは-1とする。動作ブロック数の履歴データBdについては、CPU11は、動作ブロック制御部23のフィードバック制御により決定された動作ブロック数Nとする。例えば、動作ブロック数が4であるときには、履歴データBdは、4とされ、動作ブロック数が3であるときには、履歴データBdは、3とされる。ヒータ16の動作を示す履歴データHdについては、CPU11は、温度制御プログラムTPにより、ヒータ16がオンのときには1とし、ヒータ16がオフのときには0とする。以上のように、履歴データの記憶処理S2において、これらの履歴データが算出され、履歴レジスタ17に記憶される。よって、履歴レジスタ17は、温度の履歴データと、各制御パラメータの履歴データとを含む履歴データを格納する履歴データレジスタである。次に、低消費電力制御プログラムCPの処理について説明する。低消費電力制御プログラムCPが実行されると、CPU11は、まず、電源電圧制御部21により、温度センサ15の検出温度Tdに基づいて、制御パラメータとしての電源電圧VDDを調整するフィードバック制御を行う。電源電圧制御部21によるフィードバック制御では、例えば、検出温度Tdの変化が所定量ΔT以上増加する変化があったときには、電源電圧VDDを1段下げ、検出温度Tdの変化が所定量ΔT以上減少する変化があったときには、電源電圧VDDを1段上げ、検出温度Tdの変化が所定量ΔT以上の変化がないときには、電源電圧VDDを維持するように、電源電圧VDDを制御する。電源電圧のフィードバック制御により、半導体集積回路1の温度が安定してくると、低消費電力制御プログラムCPは、電源電圧制御部21によるフィードバック制御を継続するが、半導体集積回路1の温度が安定しない場合には、動作周波数制御部22によるフィードバック制御に移行する。動作周波数制御部22によるフィードバック制御により、半導体集積回路1の温度が安定してくると、低消費電力制御プログラムCPは、動作周波数制御部22によるフィードバック制御を継続するが、半導体集積回路1の温度が安定しない場合には、動作ブロック制御部23によるフィードバック制御に移行する。なお、各フィードバック制御においては、検出温度Tdの変化量に比例して、制御パラメータである電源電圧VDD等の制御量は変更される。図7は、低消費電力制御プログラムCPによる制御の例を説明するためのタイミングチャートである。図7に示す例では、温度センサ15の検出温度Tdの上昇により、傾向データTemp1は上昇する。傾向データTemp1に基づいて、時刻taにおいて、電源電圧制御部21により電源電圧VDDが1段下げられ、その後も検出温度Tdの上昇が続き、半導体集積回路1の温度が安定しなかったため、時刻tbにおいて、制御は、電源電圧制御部21から動作周波数制御部22によるフィードバック制御へ移行している。その後、時刻tcにおいて、半導体集積回路1の温度が安定したことが示されている。図7では、動作周波数制御部22によるフィードバック制御により導体集積回路1の温度が安定したので、制御は、動作ブロック制御部23の動作ブロックフィードバック制御に移行していない。なお、ここでは、例として、低消費電力制御プログラムCPは、電源電圧制御、動作周波数制御及び動作ブロック制御の順で、制御パラメータを変更して、半導体集積回路1の温度を制御しているが、制御パラメータの変更の順序、言い換えると優先度、は、この順序とは異なる順序でもよい。図8は、低消費電力制御プログラムCPの処理の流れの例を示すフローチャートである。低消費電力制御プログラムCPでは、CPU11は、電源電圧制御部21によるフィードバック制御を実行するS11。フィードバック制御では、上述したように、温度センサ15の検出温度Tdに基づき、電源電圧VDDを上下あるいは維持する制御が行われる。検出温度Tdを入力として、検出温度Tdが安定するように、制御パラメータである電源電圧VDDを変更あるいは維持する制御が、実行される。通常、このフィードバック制御が有効に機能すれば、半導体集積回路1の温度は安定する。しかし、検出温度Tdが上昇すると電源電圧VDDを下げ、検出温度Tdが低下すると電源電圧VDDを上げるという制御が繰り返される状態、所謂制御におけるループ状態、が発生して、半導体集積回路1の温度が上昇し続け、半導体集積回路1の温度が所定の温度補償範囲を超えてしまう場合が発生し得る。そこで、この電源電圧制御部21によるフィードバック制御中に、フィードバック制御が有効に機能しているか否かが判断されるS12。S12の処理は、履歴レジスタ17に格納されている履歴データからフィードバック制御の有効性を判定する有効性判定部24において実行される。この電源電圧制御部21によるフィードバック制御の有効性の判定は、具体的には、電源電圧制御部21によるフィードバック制御が有効に機能しない状態を示すパターンデータを、予めメモリ13のパターンデータ記憶部13bに記憶しておき、電源電圧制御部21によるフィードバック制御中に、履歴レジスタ17に格納されている履歴データとそのパターンデータとを比較することによって、行われる。さらに詳しくは、フィードバック制御の有効性の判定では、パターンマッチングによりパターンデータと履歴データとの一致を判定し、パターンデータと履歴データが一致したときは、フィードバック制御は有効でないと判定され、パターンデータと履歴データが一致しないときは、フィードバック制御は有効であると判定される。図9は、電源電圧制御部21によるフィードバック制御の有効性の判断に用いられるパターンデータの例を示す図である。そのフィードバック制御の有効性の判断に用いられるパターンデータVdPは、それぞれが時系列データである、複数の傾向データTemp1と複数の電源電圧の履歴データVdを含む。図9では、時間的に連続する4つの傾向データTemp1と、その傾向データTemp1に対応する、制御パラメータである4つの電源電圧の履歴データVdとからパターンデータVdPは構成されている。30秒前t4に得られた傾向データTemp1は、1であるので、半導体集積回路1の温度は、上昇していることを示し、対応する電源電圧履歴データVdは、-1であるので、電源電圧VDDが1段下げられたことを示している。また、20秒前t3、10秒前t2、及び直近t1の傾向データTemp1と電源電圧の履歴データVdも、同様であるので、データパターンVdPは、検出温度Tdの上昇に伴い、電源電圧VDDは連続して下げられてきたが、半導体集積回路1の温度は安定していないことを示す。言い換えると、図9に示すようなデータパターンVdPは、電源電圧制御部21によるフィードバック制御が有効に機能していない状態を示すデータである。よって、電源電圧制御部21によるフィードバック制御を実行中に、パターンマッチングにより直近の履歴データがデータパターンVdPに一致するか否かを判定することによって、電源電圧制御部21によるフィードバック制御が有効に機能していないか否かを判定することができる。電源電圧制御部21によるフィードバック制御が有効に機能している場合S12YES、処理は、S11に戻り、電源電圧制御部21によるフィードバック制御が有効に機能していない場合S12NO、すなわち、電源電圧制御部21によるフィードバック制御が有効でないと判定されたときには、処理は、動作周波数制御部22によるフィードバック制御へ移行するS13。動作周波数制御部22によるフィードバック制御では、上述したように、温度センサ15の検出温度Tdに基づき、動作周波数Fを上下あるいは維持する制御が行われる。検出温度Tdを入力として、検出温度Tdが安定するように、制御パラメータである動作周波数Fを変更あるいは維持する制御が、実行される。通常、動作周波数フィードバック制御が有効に機能すれば、半導体集積回路1の温度は安定するが、ここでも、所謂制御におけるループ状態、が発生して、半導体集積回路1の温度が上昇し続け、半導体集積回路1の温度が所定の温度補償範囲を超えてしまう場合が発生し得る。そこで、動作周波数制御部22によるフィードバック制御中に、動作周波数制御部22によるフィードバック制御が有効に機能しているか否かが判断されるS14。S14の処理は、履歴レジスタ17に格納されている履歴データからフィードバック制御の有効性を判定する有効性判定部24において実行される。この動作周波数制御部22によるフィードバック制御の有効性の判断も、上述した電源電圧制御部21によるフィードバック制御の有効性の判断と同様に、具体的には、動作周波数制御部22によるフィードバック制御が有効に機能しない状態を示すパターンデータを、予めメモリ13のパターンデータ記憶部13bに記憶しておき、動作周波数制御部22によるフィードバック制御中に、パターンマッチングにより履歴レジスタ17に格納されている履歴データが、そのパターンデータに一致するか否かを判定することによって、行われる。図10は、動作周波数制御部22によるフィードバック制御の有効性の判断に用いられるパターンデータの例を示す図である。動作周波数制御部22によるフィードバック制御の有効性の判断に用いられるパターンデータFdPは、それぞれが時系列データである、複数の傾向データTemp1と複数の動作周波数の履歴データFdを含む。図10では、時間的に連続する4つの傾向データTemp1と、その傾向データTemp1に対応する、制御パラメータである4つの動作周波数の履歴データFdとからパターンデータFdPは構成されている。図10も、図9と同様に、30秒前t4に得られた傾向データTemp1は、1であるので、半導体集積回路1の温度は、上昇していることを示し、対応する動作周波数の履歴データFdは、-1であるので、動作周波数Fを1段下げたことを示している。また、20秒前t3、10秒前t2、及び直近t1の傾向データTemp1と動作周波数Fの履歴データFdも、同様であるので、データパターンFdPは、検出温度Tdの上昇に伴い、動作周波数Fは連続して下げられてきたが、半導体集積回路1の温度は安定していないことを示す。言い換えると、図10に示すようなデータパターンFdPは、動作周波数制御部22によるフィードバック制御が有効に機能していない状態を示すデータである。よって、動作周波数制御部22によるフィードバック制御を実行中に、直近の履歴データがデータパターンFdPに一致するか否かを判定することによって、動作周波数制御部22によるフィードバック制御が有効に機能していないか否かを判定することができる。動作周波数制御部22によるフィードバック制御が有効に機能している場合S14YES、処理は、S13に戻り、動作周波数制御部22によるフィードバック制御が有効に機能していない場合S14NO、処理は、動作ブロック制御部23による動作ブロックフィードバック制御へ移行するS15。動作ブロック制御部23によるフィードバック制御では、上述したように、温度センサ15の検出温度Tdに基づき、動作ブロック数Nを上下あるいは維持する制御が行われる。検出温度Tdを入力として、検出温度Tdが安定するように、制御パラメータである動作ブロック数Nを変更あるいは維持する制御が、実行される。通常、動作ブロック制御部23によるフィードバック制御が有効に機能すれば、半導体集積回路1の温度は安定するが、ここでも、所謂制御におけるループ状態、が発生して、半導体集積回路1の温度が上昇し続け、半導体集積回路1の温度が所定の温度補償範囲を超えてしまう場合が発生し得る。そこで、動作ブロック制御部23によるフィードバック制御中に、動作ブロック制御部23によるフィードバック制御が有効に機能しているか否かが判断されるS16。S16の処理は、履歴レジスタ17に格納されている履歴データからフィードバック制御の有効性を判定する有効性判定部24において実行される。この動作ブロック制御部23によるフィードバック制御の有効性の判断も、上述した電源電圧制御部21によるフィードバック制御及び動作周波数制御部22によるフィードバック制御の有効性の判断と同様に、具体的には、動作ブロック制御部23によるフィードバック制御が有効に機能しないことを示すパターンデータを、予めメモリ13のパターンデータ記憶部13bに記憶しておき、動作ブロック制御部23によるフィードバック制御中に、パターンマッチングにより履歴レジスタ17に格納されている履歴データが、そのパターンデータに一致するか否かを判定することによって、行われる。図11は、動作ブロック制御部23によるフィードバック制御の有効性の判断に用いられるパターンデータの例を示す図である。動作ブロック制御部23によるフィードバック制御の有効性の判断に用いられるパターンデータBdPは、それぞれが時系列データである、複数の傾向データTemp1と複数の動作ブロック数の履歴データBdを含む。図11では、時間的に連続する4つの傾向データTemp1と、その傾向データTemp1に対応する、制御パラメータである4つの動作ブロック数の履歴データBdとからパターンデータBdPは構成されている。図11も、図9と図10と同様に、30秒前t4に得られた傾向データTemp1は上昇していないことを示し、対応する動作ブロック数の履歴データBdは、4であることを示している。しかし、20秒前t3に得られた傾向データTemp1は、1であるので、半導体集積回路1の温度は、上昇していることを示し、対応する動作ブロック数Nは、3であるので、動作ブロック数Nを1つ減少したことを示している。また、10秒前t2、及び直近t1の傾向データTemp1と動作ブロック数Nも、20秒前と同様の傾向を示している。パターンデータBdPは、検出温度Tdの上昇に伴い、動作ブロック数Nは連続して下げられてきたが、半導体集積回路1の温度は安定していないことを示す。言い換えると、図11に示すようなパターンデータBdPは、動作ブロック制御部23によるフィードバック制御が有効に機能していない状態を示すデータである。よって、動作ブロック制御部23によるフィードバック制御を実行中に、パターンマッチングにより直近の履歴データがパターンデータBdPに一致するか否かを判定することによって、動作ブロック制御部23によるフィードバック制御が有効に機能していないか否かを判定することができる。動作ブロック制御部23によるフィードバック制御が有効に機能している場合S16YES、処理は、S15に戻り、動作ブロック制御部23によるフィードバック制御が有効に機能していない場合S16NO、処理は、アラーム処理へ移行するS17。アラーム処理は、ユーザへの警告表示等を含む。その警告表示等により、ユーザは、半導体集積回路1の温度が動作保証範囲を超えて、チップの誤動作、動作停止等が発生する場合があることを知ることができるので、実行中のプログラムを停止させる等の対応を取ることができる。次に、温度制御プログラムTPの処理について説明する。図12は、温度制御プログラムTPの処理の流れの例を示すフローチャートである。温度制御プログラムTPにおいて、CPU11は、温度センサ15の出力から検出温度Tdを得S21、検出温度Tdが、所定の閾値Tth、例えば10°C、以下であるか否かを判定するS22。検出温度Tdが所定の閾値Tth以下であるときS22YES、CPU11は、ヒータ16をオンにするS23。検出温度Tdが所定の閾値Tth以下でないときS22NO、CPU11は、ヒータ16をオフにするS24。そして、通常、検出温度Tdに基づいて、ヒータ16のオンとオフにより、フィードバック制御S21~S24が行われることにより、半導体集積回路1の温度が所定の閾値Tth以下にならないように制御が行われるが、半導体集積回路1の動作直後、休止状態からの動作直後、あるいは他の原因により、半導体集積回路1の温度が下降し続け、半導体集積回路1のパフォーマンスを確保できない場合が発生し得る。そこで、検出温度Tdに基づくヒータ16のフィードバック制御中に、フィードバック制御が有効に機能しているか否かが判断されるS25。このヒータ16のフィードバック制御の有効性の判断も、上述した各種フィードバック制御の有効性の判断と同様に、具体的には、ヒータ16のフィードバック制御が有効に機能しないパターンデータを、予めメモリ13のパターンデータ記憶部13bに記憶しておき、検出温度Tdに基づくヒータ16のフィードバック制御中に、履歴レジスタ17に格納されている履歴データが、そのパターンデータに一致するか否かを判定することによって、行われる。図13は、ヒータ16のフィードバック制御の有効性の判断に用いられるパターンデータの例を示す図である。ヒータ16のフィードバック制御の有効性の判断に用いられるパターンデータHdP1は、それぞれが時系列データである、複数の傾向データTemp1と複数のヒータ16の動作を示す履歴データHdを含む。図13では、連続する4つの傾向データTemp1と、その傾向データTemp1に対応する、制御パラメータであるヒータ16の履歴データHdとからデータパターンFdPは構成されている。履歴データHdは、ヒータ16がオンのときは、1であり、ヒータ16がオフのときは、0である。図13も、30秒前t4に得られた傾向データTemp1は、-1であるので、半導体集積回路1の温度は、下降していることを示し、対応する履歴データHdは、1、すなわちヒータ16をオンにしたことを示している。また、20秒前t3、10秒前t2、及び直近t1の傾向データTemp1と履歴データHdも、同様であるので、パターンデータHdP1は、検出温度Tdの下降に伴い、ヒータ16を連続してオンにしてきたが、半導体集積回路1の温度は安定していないことを示す。言い換えると、図13に示すようなパターンデータHdP1は、ヒータ16のフィードバック制御が有効に機能していない状態を示すデータである。図14は、ヒータ16のフィードバック制御の有効性の判断に用いられるパターンデータの他の例を示す図である。ヒータ16のフィードバック制御の有効性の判断に用いられるデータパターンHdP2は、それぞれが時系列データである、複数の傾向データTemp3と複数のヒータ16の履歴データHdを含む。傾向データTemp3は、検出温度Tdが、所定の閾値Tth、例えば10°C、以下であるか否かを示し、0は、検出温度Tdが10°C以下であることを示し、1は、検出温度Tdが10°Cを超えることを示している。図14では、連続する4つの傾向データTemp3と、その傾向データTemp1に対応する、制御パラメータであるヒータ16の履歴データHdとからパターンデータFdP2は構成されている。図14も、30秒前t4に得られた傾向データTemp3は、0であるので、半導体集積回路1の温度は、10°C以下であることを示し、対応するデータデータHdは、1、すなわちヒータ16をオンにしたことを示している。また、20秒前t3、10秒前t2、及び直近t1の傾向データTemp3とデータデータHdも、同様であるので、パターンデータHdP2は、検出温度Tdが所定の閾値Tth以下であって、ヒータ16を連続してオンにしてきたが、半導体集積回路1の温度は所定の閾値Tthを上回っていないことを示す。言い換えると、図14に示すようなパターンデータHdP2は、ヒータ16のフィードバック制御が有効に機能していない状態を示すデータである。よって、ヒータ16のフィードバック制御を実行中に、直近の連続する履歴データがパターンデータHdP1あるいはHdP2に一致するか否かを判定することによって、ヒータ16のフィードバック制御が有効に機能していないか否かを判定することができる。ヒータ16のフィードバック制御が有効に機能している場合S25YES、処理は、S21に戻り、ヒータ16のフィードバック制御が有効に機能していない場合S25NO、処理は、アラーム処理へ移行するS26。S26のアラーム処理は、図8のアラーム処理のS17と同様である。以上のように、制御プログラムCP及び温度制御プログラムTPにより、実行されているフィードバック制御が有効に機能していない場合を、所定の履歴データから判定し、別の制御パラメータによるフィードバック制御を行うようにした。その結果、上述した半導体集積回路によれば、半導体集積回路1の温度が高くなりすぎたりあるいは低くなりすぎたりする発振状態となって、半導体集積回路が誤動作、動作停止等することを防止することができる。なお、履歴レジスタに格納される履歴データは、上述したように、前回値からの上下の傾向、段数等の代わりに、検出温度Td、電源電圧値、駆動周波数、駆動ブロック番号等のデータそのものでもよい。さらになお、上述した実施形態では、温度センサによる温度を検出し、その検出温度に基づいて各フィードバック制御が行われているが、温度に代えて、所定の回路素子間のパスの遅延量等から回路部の動作速度を検出し、その検出した動作速度に基づいて、各フィードバック制御を行うようにしてもよい。これは、半導体集積回路は、温度が低下すると、いわゆるジャンクション温度が低下し、動作速度が変化するからである。その場合、半導体集積回路の動作速度を計測するために、図1において、点線で示すように、温度センサ15に代えて、周波数カウンタ19を設け、動作周波数を検出することによって、回路部の動作速度を検出するようにしてもよい。本発明の実施形態を説明したが、これらの実施形態は、例として例示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。"