"半導体集積回路と、前記半導体集積回路の動作電圧周波数を動的に制御する制御部と、ファームウェアを格納している記憶部と、前記制御部の目標値となる前記半導体集積回路の目標動作電圧周波数を前記記憶部の前記ファームウェアに従って算出し、当該算出した目標動作電圧周波数を前記制御部に与える演算部とを有し、前記ファームウェアは、前記半導体集積回路の処理内容を決定づける属性パラメータの入力で処理単位のサイクル数を概算するサイクル数概算関数を備えるサイクル数概算ルーチンと、前記サイクル数概算ルーチンの実行によって得られた前記サイクル数に基づいて、前記目標動作電圧周波数を算出する動作電圧周波数算出ルーチンとを有する半導体装置。前記サイクル数概算関数は、前記属性パラメータを含むN個の属性パラメータを備え、前記N個の属性パラメータの内、i=1,2,,N個目の属性パラメータをparamiと表し、前記サイクル数概算関数をCyclecalと表すとき、次式で表される請求項1に記載の半導体装置。ただし、Lは、1以上の正の整数であって、次数を表す。C0は定数項を表す。C1,1およびC2,iはそれぞれ係数を表す。前記次数Lは、L=2である請求項2に記載の半導体装置。前記ファームウェアは、前記半導体集積回路のエラーを検出する検出処理を行い、前記検出処理で前記エラーを検出した場合には、前記サイクル数概算関数の前記定数項を調整することで前記サイクル数を補正するサイクル数補正ルーチンを更に有する請求項1から3のいずれか一に記載の半導体装置。請求項1から4のいずれか一に記載の半導体装置の制御方法であって、前記演算部が前記サイクル数概算ルーチンを実行するステップと、前記演算部が前記動作電圧算出ルーチンを実行するステップとを有する半導体装置の制御方法。請求項1から4のいずれか一に記載の半導体装置の設計支援方法であって、前記サイクル数と前記属性パラメータとの対応関係を示すデータベースを作製するステップと、前記データベースを用いて前記サイクル数概算関数を作製するステップとを有する半導体装置の設計支援方法。しかしながら、特許文献1の技術は、サイクル数の算出にビットストリームを用いるため、組み込みシステムのアーキテクチャに依存しやすい。そのため、特許文献1の技術では、組み込みシステムのアーキテクチャに左右されずに、DVFSの実行に必要なサイクル数を容易に取得することができるとは言い難い。以下、[発明を実施するための形態]で使用される符号を括弧内に付記し、[課題を解決するための手段]を説明する。この符号は、[特許請求の範囲]の記載と[発明を実施するための形態]の記載との対応関係を明らかにするために付加されたものである。この符号は、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に使用してはならない。本発明の半導体装置1は、半導体集積回路6と、前記半導体集積回路の動作電圧周波数を動的に制御する制御部5と、ファームウェア21を格納している記憶部2と、前記制御部の目標値となる前記半導体集積回路の目標動作電圧周波数を前記記憶部の前記ファームウェアに従って算出し、当該算出した目標動作電圧周波数を前記制御部に与える演算部4とを有する。前記ファームウェアは、前記半導体集積回路の処理内容を決定づける属性パラメータの入力で処理単位のサイクル数Cycleを概算するサイクル数概算関数CycleCalを備えるサイクル数概算ルーチン211と、前記サイクル数概算ルーチンの実行によって得られた前記サイクル数に基づいて、前記目標動作電圧周波数を算出する動作電圧周波数算出ルーチン213とを有する。本発明の半導体装置の制御方法は、前記演算部4が前記サイクル数概算ルーチン211を実行するステップS11と、前記演算部が前記動作電圧算出ルーチンS13を実行するステップとを有する。本発明の半導体装置の設計支援方法は、前記サイクル数と前記属性パラメータとの対応関係を示すデータベース121を作製するステップS22と、前記データベースを用いて前記サイクル数概算関数を作製するステップS23とを有する。組み込みシステムのアーキテクチャに左右されることなく、DVFSの実行に必要なサイクル数を容易に取得することができる。以下、本発明の実施の形態を図面に関連づけて説明する。1.マイクロコンピュータの構成例図1は、実施の形態に係るマイクロコンピュータ1の構成例を示すブロック図である。マイクロコンピュータ1は、組み込みシステムのメインコントローラーとしての役割を持つ。マイクロコンピュータ1は、以下の構成をとる。マイクロコンピュータ1は、ROM2と、RAM3と、CPU4と、制御コア5と、ユーザ回路6と、I/Oポート7とを有する。ROM2は、ファームウェアFW21を格納している。CPU4は、演算部とも呼ばれる。マイクロコンピュータ1は、ファームウェア21の制御に従って、DVFSを実行する。DVFSの実行により、ユーザ回路6の動作電圧および動作周波数動作電圧周波数が動的に制御される。ROM2は、不揮発性の記憶装置であって、例えば、フラッシュメモリである。ROM2をマイクロコンピュータ1の外部に設けることができる。ファームウェア21は、マイクロコンピュータ1のハードウェアを制御するためのプログラムである。ここで言う、ハードウェアとは、ROM2と、RAM3と、CPU4と、制御コア5と、ユーザ回路6と、I/Oポート7とを指す。ファームウェア21のプログラムには、DVFSを実行するための複数のルーチンがプログラム言語で記述されている。RAM3は、揮発性の記憶装置であって、例えば、DRAMDynamicRandomAccessMemoryである。RAM3は、CPU4の演算処理の過程で発生したデータを一時的に展開するためのワークエリアである。CPU4は、中央演算処理装置である。CPU4は、ファームウェア21をROM2から読み出し、読み出したファームウェア21をRAM3に展開する。CPU4は、ファームウェア21に従って、目標動作電圧および目標動作周波数目標動作電圧周波数をそれぞれ算出する。目標動作電圧周波数は、制御コア5の目標値となるユーザ回路6の動作電圧周波数を指す。そして、CPU4は、それぞれ算出した目標動作電圧周波数を制御コア5に与える。制御コア5は、例えば、DC/DC変換器およびPLL回路位相同期回路で構成されている。DC/DC変換器は、ユーザ回路6の動作電圧を可変する。PLL回路は、ユーザ回路6の動作周波数を可変する。制御コア5は、ユーザ回路6の現在の動作電圧がCPU4から与えられた目標動作電圧となるように、現在の動作電圧を制御する。これと共に、制御コア5は、ユーザ回路6の現在の動作周波数がCPU4から与えられた目標動作周波数となるように、現在の動作周波数を制御する。ユーザ回路6は、例えば、ASICApplicationSpecificIntegratedCircuitなどの半導体集積回路である。本実施の形態では、ユーザ回路6は、入力画像データDINに種々の画像処理を施す。画像処理後、ユーザ回路6は、出力画像データDOUTをマイクロコンピュータ1の外部に出力する。ユーザ回路6の構成および処理内容は、一例であって、特に限定されるものではない。処理内容は、例えば、音声データの処理に関するものでもよい。I/Oポート7は、マイクロコンピュータ1と、その外部との間でデータの送受信を行う。本実施の形態では、I/Oポート7は、入力画像データDINをマイクロコンピュータ1の外部から入力する。また、I/Oポート7は、出力画像データDOUTをマイクロコンピュータ1の外部に出力する。なお、マイクロコンピュータ1の内部で処理される画像データは、デジタルデータである。画像データは、ビットストリームであるか否かを問わない。2.組み込みシステムの構成例図1に示すマイクロコンピュータ1は、電子機器、携帯電話機、自動車など、電子制御を必要とする種々の機器に搭載可能である。その一例について説明する。図2は、図1に示すマイクロコンピュータ1を搭載した組み込みシステムAの構成例を示すブロック図である。組み込みシステムAは、図1に示すマイクロコンピュータ1に加え、記憶装置8と、周辺機器9とを有する。この他、組み込みシステムAが複数の操作キーなどを備えていてもよい。組み込みシステムAは、マイクロコンピュータ1がオペレーティングシステム81に従って周辺機器9を制御するシステムである。組み込みシステムAの各構成要素は、同一の基板上または筐体内にあってもよいし、それぞれが異なる基板上または筐体内にあってもよい。記憶装置8は、RAMなどの記憶装置でもよいし、ハードディスクでもよい。記憶装置8は、オペレーティングシステムOS81を格納している。オペレーティングシステム81は、組み込みシステムAのハードウェアと、組み込みシステムで使用されるアプリケーションソフトウェアとを統合的に管理する。ここで言う、ハードウェアとは、マイクロコンピュータ1、記憶装置8および周辺機器9を指す。アプリケーションソフトウェアは、例えば、画像処理のソフトウェアである。周辺機器9は、マイクロコンピュータ1の制御対象である。周辺機器9は、例えば、表示装置、データ処理装置、駆動装置などの機器である。表示装置は、例えば、制御パネルや液晶ディスプレイを含む。データ処理装置は、例えば、プロセッサやDSPDigitalSignalProcessingで構成されている。駆動装置は、例えば、モータを含む。ここで、組み込みシステムAの動作例を挙げる。以下、周辺機器9が表示装置であると仮定する。また、アプリケーションソフトウェアが画像処理のソフトウェアであると仮定する。この場合、オペレーティングシステム81上でアプリケーションソフトウェアが実行されると、マイクロコンピュータ1は、オペレーティングシステム81の指示に従って、画像データDINに画像処理を施す。この画像処理は、例えば、拡大/縮小処理やコピーである。そして、マイクロコンピュータ1は、画像処理を施した画像データDOUTを周辺機器9に表示させる。3.DVFS図3は、実施の形態に係るDVFSの説明図である。オペレーティングシステム81でアプリケーションソフトウェアが実行される場合、オペレーティングシステム81は、タスクを作成する。タスクは、オペレーティングシステム81の処理単位である。例えば、オペレーティングシステム81は、拡大/縮小という画像処理で1つのタスクを作成する。そのタスクは、複数の命令で構成される。図3A-Cにそれぞれ示す例では、タスクは、例えば、3つの命令A-Cで構成されている。本実施の形態では、マイクロコンピュータ1は、複数の命令を逐次FIFO:FirstInFirstOut方式で処理する。逐次方式の代りに、先行制御方式、パイプライン方式またはその他の方式を用いることができる。なお、処理単位は、例えば、プロセスであってもよい。図3Aに示すように、命令A-Cの実行は、デッドラインtD=tD1までに完了されている必要がある。なお、デッドラインは、制限時間とも呼ばれる。デッドラインは、タスク、即ち、命令A-Cの全てが完了されるべき時間の限界を示す。当然ながら、タスクに応じて、同じ命令A-Cであっても、デッドラインtDが異なる。例えば、マイクロコンピュータ1にさほど高速な処理が要求されていない場合、命令A-Cは、相対的にゆっくりと実行される。例えば、図3Bに示すデッドラインtD=tD2は、図3Aに示すデッドラインtD=tD1よりも遅く設定されている。ここで、図3Aに示す命令A-Cの実行に要した処理時間がΔT=ΔT1であったとする。この場合、ユーザ回路6が命令A-CをデッドラインtD2までに同じ処理時間ΔT=ΔT1で実行すると、図3Bに示すように、スラックタイムtSが発生する。スラックタイムは、余裕時間とも呼ばれる。スラックタイムは、あるタスクにおいて、最後に実行される命令の完了からデッドラインtDまでの期間である。DVFSでは、スラックタイムtSが発生した場合、以下の処理が行われる。制御コア5は、スラックタイムtSが0になるように、現在の動作電圧周波数を更に下げる。図3Cに示すように、ユーザ回路6は、処理時間ΔT=ΔT1よりも遅い処理時間ΔT=ΔT2で命令A-Cを実行する。以下、スラックタイムtSの発生を前提として、本実施の形態を説明する。DVFSを実行するためには、スラックタイムtSを求める必要がある。スラックタイムtSは、デッドラインtDから現在の処理時間ΔTを減算することで求められる。したがって、スラックタイムtSを求めるためには、デッドラインtDおよび現在の処理時間ΔTが分かればよい。現在の処理時間ΔTは、現在のサイクル数を現在の動作周波数DVFS実行前の動作周波数で除算することで求められる。ここで、処理時間は、あるタスクにおいて、始めの命令の実行開始から最後の命令の実行終了までの期間である。サイクル数は、タスクの開始から終了までに要するクロック数である。サイクル数は、後述の属性パラメータに大きく左右される。そのため、サイクル数を直接算出することは容易ではない。それは、組み込みシステムAを搭載すべき機器の種類型番、メーカなどや仕様ごとに、処理内容だけではなく、アーキテクチャも異なるためである。そこで、ファームウェア21は、アーキテクチャに依存することなく、サイクル数を概算することができる関数サイクル数概算関数CycleCalを備えている。ここで、属性パラメータは、ユーザ回路6の処理内容を決定づけるものである。本実施の形態では、複数の属性パラメータがある。ユーザ回路6の処理内容が画像処理である場合、複数の属性パラメータには、例えば、入力画像のサイズ、出力画像のサイズ、演算精度、処理モード拡大/縮小処理など、ディジタルフィルタ係数がある。4.ファームウェアの構成例図4は、図1に示すファームウェア21の構成例を示す機能ブロック図である。ファームウェア21は、サイクル数概算ルーチン211と、スケジューラ212と、動作電圧周波数算出ルーチン213と、サイクル数補正ルーチン214とを有する。図4には、ハードウェアHWとして、制御コア5およびユーザ回路6が示されている。CPU4がファームウェア21を実行することにより、ファームウェア21が持つ各構成要素の機能が実現される。サイクル数概算ルーチン211は、サイクル数概算関数CycleCalを備えている。サイクル数概算関数CycleCalは、例えば、ファームウェア21のライブラリに登録されていてもよい。サイクル数概算ルーチン211は、サイクル数概算関数CycleCalにN個の属性パラメータParam1、Param2、、ParamNを入力して、サイクル数Cycleを概算する。なお、属性パラメータは、1個であってもよい。N個の属性パラメータParam1-ParamNは、CPU4によって、入力画像データDINから抽出されたものである。サイクル数概算ルーチン211は、概算したサイクル数Cycleを動作電圧周波数算出ルーチン213に出力する。サイクル数概算関数CycleCalは、サイクル数CycleがパラメータのL次式Lは次数を表し、1以上の整数で近似できると予想される場合、1式で示される。ここで、Paramiは、N個の属性パラメータParam1-ParamNの内、i=1,2,,N番目の属性パラメータを表す。C0は、予め決められている定数項であって、N個の属性パラメータParam1-ParamNの影響を受けない独立変数である。CLiは、ParamLiの係数であり、CL1iは、ParamL1iの係数であり、C1iは、Paramiの係数である。なお、1式は、パラメータを一般化して表したものである。処理のアルゴリズムに応じて、適宜、1式の次数Lを設定することができる。たとえば、実際のDVFSを適用する半導体装置の処理内容が、画像処理におけるモザイク処理であると言った場合がある。モザイク処理は、例えば、2次元縦Vと横Hの2次元の画像範囲の色素を平均化する処理である。この場合、処理サイクル数は、パラメータがV,Hの2つで表される。そのため、処理サイクル数を2次式で見積もることが可能である。このように、処理のアルゴリズムから、処理サイクルがパラメータの2次式であることが推定される場合、1式において、次数LをL=2とすることができる。後述の2式に示すサイクル数概算関数CycleCalは、N個の属性パラメータParam1-ParamNを備え、属性パラメータParamiの2次式で近似的に示したものである。多くの場合、1式をL=2として近似した2式に示す演算を行うことで、タスクに対応したサイクル数Cycleを概算することができる。なお、ファームウェアあるいはシステムにおいて、後にユーザが次数Lを好適に変更できるように、サイクル数概算関数CycleCalを式1により構成しておくことができる。この場合、ユーザによって設定された次数Lに対応して、ファームウェアあるいはシステムを再構成できるようにしておけばよい。また、次数Lの上限を予め決めた上で、システムが計算を開始した後、寄与度の低いパラメータが減るように、次数Lの最適化を行うこともできる。1式と同様に、2式において、Paramiは、N個の属性パラメータParam1-ParamNの内、i=1,2,,N番目の属性パラメータを表す。C0は、予め決められている定数項であって、N個の属性パラメータParam1-ParamNの影響を受けない独立変数である。C2iは、Param2iの係数である。C1iは、Paramiの係数である。以下、パラメータ数がN=3個で、1式をL=2次式で計算する場合の具体例について説明する。Param1:入力画像サイズParam2:出力画像サイズParam3:演算精度ビット数なお、入力画像は、ユーザ回路6が処理すべき入力画像データDINのものである。出力画像は、ユーザ回路6によって処理された出力画像データDOUTのものである。演算精度は、ユーザ回路6のものである。図5は、サイクル数CycleとN個の属性パラメータParam1-ParamNとの関係を示す図である。図5では、N個の属性パラメータParam1-ParamNの内、N=3個の属性パラメータParam1-Param3が示されている。サイクル数Cycleは、サイクル数概算関数CycleCalにそれぞれ入力するN個の属性パラメータParam1-ParamNによって一義的に決定される。図5の番号1に示すように、Param14、Param24およびParam332の場合、サイクル数概算関数CycleCalによって概算されるサイクル数は、Cycle80である。番号1に示す処理内容は、32ビットの演算精度で4バイトの入力画像に画像処理例えば、画像のコピーを施して4バイトの出力画像を生成することを表している。サイクル数概算関数CycleCalは、マイクロコンピュータ1の設計段階で作製される。本実施の形態では、予めユーザ回路6の処理内容が画像処理であると想定した上で、ファームウェア21が作製されている。マイクロコンピュータ1の設計段階でサイクル数概算関数CycleCalが作製されているので、組み込みシステムAのアーキテクチャに依存することなく、サイクル数を概算することができる。スケジューラ212は、タスクのデッドラインTDを算出する。デッドラインTDは、タスクに応じて決まる。スケジューラ212は、算出したデッドラインTDを動作電圧周波数算出ルーチン213に出力する。動作電圧周波数算出ルーチン213は、動作電圧周波数制御関数VoltageCntlを備える。動作電圧周波数算出ルーチン213は、サイクル数概算ルーチン211によって得られたサイクル数Cycleと、スケジューラ212によって得られたデッドラインTDとを動作電圧周波数制御関数VoltageCntlにそれぞれ代入することで、制御コア5の目標値となるユーザ回路6の目標動作電圧周波数をそれぞれ算出する。以下、動作電圧周波数制御関数VoltageCntlについて説明する。図6は、実施の形態に係る動作電圧周波数制御関数VoltageCntlの一例を示すプログラムリストであるサイクル数Cycleの入力先ず、動作電圧周波数算出ルーチン213は、2行目に示すように、サイクル数概算ルーチン211からサイクル数Cycleを入力する呼出す。現在の動作周波数Frequencyの算出次いで、動作電圧周波数算出ルーチン213は、3行目に示すように、現在の動作周波数Frequencyを算出する。動作周波数Frequency自体は、動作電圧VoltageCntlと比例の関係があるFrequency∝Voltage。現在の動作周波数Frequencyは、定数Constantに現在の動作電圧Voltageを乗じた値Constant×Voltageに等しい。定数Constantは、マイクロコンピュータ1のハードウェア構成例えばユーザ回路6などで一義的に決定される。スラックタイムslacktimeの算出次いで、動作電圧周波数算出ルーチン213は、4行目に示すように、スラックタイムslacktimetSに対応を算出する。上述したように、スラックタイムslacktimeは、スケジューラ212によって算出されたデッドラインDeadlinetD2に対応から現在の処理時間ΔTΔT1に対応を減算することで求められる図3参照。現在の処理時間ΔTは、先に算出されたサイクル数Cycleを現在の動作周波数Frequencyで除算した値である。即ち、スラックタイムslacktimeは、4行目に示す関係式Deadline-Cycle/Frequencyで表される。目標動作周波数Frequencyの算出次いで、動作電圧周波数算出ルーチン213は、5行目に示すように、制御コア5の目標値となる目標動作周波数Frequencyを算出する。スラックタイムslacktimeが0であるためには、現在の処理時間ΔTΔT1に対応とスラックタイムslacktimetSに対応との合計が、目標とする処理時間ΔTΔT2に対応になればよい図3参照。即ち、目標とする処理時間ΔTは、ΔTΔTslacktimeで表される。また、処理時間ΔT自体は、上述したように、ΔTCycle/Frequencyで表される。このことから、目標動作周波数Frequencyは、5行目に示す関係式Cycle×Frequency/で表される。なお、記号アスタリスクは、目標動作電圧を動作電圧と区別するための便宜上の記号である。目標動作周波数についてもこれと同様である。目標動作電圧Voltageの算出次いで、動作電圧周波数算出ルーチン213は、6行目に示すように、制御コア5の目標値となる目標動作電圧Voltageを算出する。目標動作電圧Voltageは、関係式Frequency/Constantで表される。上述したように、サイクル数概算ルーチン211は、サイクル数Cycleを正確に算出するのではなく、概算している。そのため、概算されたサイクル数Cycleが実際のサイクル数よりも大きい場合、処理時間ΔTがデッドラインtDを超える恐れがある。このことは、ユーザ回路6でエラーを引き起こす。そこで、サイクル数補正ルーチン214は、処理時間ΔTがデッドラインtDを超えるというエラーを防止すべく、サイクル数概算ルーチン211によって得られるサイクル数Cycleを補正する。その詳細は、以下の通りである。サイクル数補正ルーチン214は、サイクル数概算ルーチン211、スケジューラ212および動作電圧周波数算出ルーチン213の実行後に実行される。先ず、サイクル数補正ルーチン214は、上述のエラーを検出する検出処理を行う。サイクル数補正ルーチン214は、検出処理でエラーを検出した場合、サイクル数概算関数CycleCalの定数項C0が現在の値よりも大きくなるように、定数項C0を調整する。上述したように、定数項C0は、係数C2i、C1iとは異なり、N個の属性パラメータParam1-ParamNの影響を受けない独立変数である。そこで、定数項C0を増加させることにより、N個の属性パラメータParam1-ParamNに影響を与えることなく、サイクル数Cycleを大きく見積もることができる。サイクル数Cycleが補正されると、当然ながら、サイクル数Cycleを用いて算出される目標動作電圧周波数も補正される。その結果、エラーの発生を防止することができる。なお、サイクル数補正ルーチン214は、エラーを検出しなかった場合、定数項C0を調整しない。エラーを検出する代りにエラー率を検出することもできる。エラー率は、単位時間に発生したエラーの個数で表される。この場合、サイクル数補正ルーチン214は、エラー率が規定値を超えた場合に、定数項C0を上述のように調整する。規定値は、ユーザ回路6の動作に支障がある程度のエラー率であればよい。5.半導体装置の制御方法図7は、実施の形態に係る半導体装置1の制御方法を示すフローチャートである。ステップS11:CPU4は、サイクル数概算ルーチン211を実行する。その際に、サイクル数概算ルーチン211は、タスクのサイクル数Cycleを概算する。ステップS12:CPU4は、スケジューラ212を実行する。その際に、スケジューラ212は、デッドラインDeadlineを算出する。なお、ステップS12の実行後にステップS11を実行することもできる。ステップS13:CPU4は、動作電圧周波数算出ルーチン213を実行する。その際に、動作電圧周波数算出ルーチン213は、サイクル数Cycleと、デッドラインTDとを動作電圧制御関数VoltageCntlにそれぞれ代入することで、制御コア5の目標値となるユーザ回路6の目標動作電圧周波数をそれぞれ算出する。ステップS14:制御コア5は、ユーザ回路6の現在の動作電圧周波数が動作電圧周波数算出ルーチン213によって算出された目標動作電圧周波数となるように、ユーザ回路6の動作電圧周波数を制御する。ステップS15:CPU4は、サイクル数補正ルーチン214を実行する。その際に、サイクル数補正ルーチン214は、エラーを検出した場合、サイクル数概算関数CycleCalの定数項C0を調整する。一方、サイクル数補正ルーチン214は、エラーを検出しなかった場合、サイクル数概算関数CycleCalの定数項C0を調整しない。以上述べたように、CPU4は、サイクル数概算ルーチン211、スケジューラ212動作電圧周波数算出ルーチン213をそれぞれ実行することで、ユーザ回路6の現在の動作電圧周波数が属性パラメータに基づいて動的に制御される。その結果、マイクロコンピュータ1全体の消費電力が削減される。その上、CPU4は、サイクル数補正ルーチン214を実行する。そのため、処理時間ΔTがデッドラインtDを超えるというエラーを防止することができる。6.設計支援装置サイクル数概算関数CycleCalは、マイクロコンピュータ1の設計段階で、設計支援装置によって作製される。以下、設計支援装置について説明する。図8は、実施の形態に係る設計支援装置100の概略構成図である。設計支援装置100は、ハードウェアHWモデル111を格納している記憶装置110と、RAM120と、入力装置130と、CPU140と、表示装置150とを有する。設計支援装置100は、ハードウェアモデル111を用いてシミュレーションを行うことにより、サイクル数概算関数CycleCalを作製する。ハードウェアモデル111は、マイクロコンピュータ1のハードウェアを、例えば、高級言語を用いてRTLRegisterTransferLevelでモデル化したデータである。記憶装置110は、例えば、ハードディスクである。記憶装置110は、ハードウェアモデル111に加え、シミュレーションソフトウェア112を格納している。シミュレーションソフトウェア112は、RTLでのマイクロコンピュータ1の設計およびRTLでのシミュレーションを行うためのソフトウェアである。シミュレーションソフトウェア112は、高級言語でのソースファイルの作成、コンパイル、デバッグといった一連の作業環境をGUIGraphicalUserInterfaceで提供している。RAM120は、揮発性の記憶装置であって、例えば、DRAMDynamicRandomAccessMemoryである。RAM120は、CPU140のワークスペースである。RAM120は、シミュレーションの過程で作製されたデータベース121を格納する。入力装置130は、例えば、キーボードおよびマウスを備える。入力装置130は、使用者の操作を受け付け、その操作内容に対応した信号をCPU140に出力する。CPU140は、中央演算処理装置である。CPU140は、サイクル数概算関数CycleCalの作製に関する種々の処理を行う。また、CPU140は、シミュレーションソフトウェア112上でハードウェアモデル111を用いたシミュレーションを実行する。表示装置150は、例えば、液晶ディスプレイである。表示装置150は、シミュレーションソフトウェア112の実行に伴う操作画面やシミュレーション結果などを表示する。7.半導体装置の設計支援方法図9は、図8に示す設計支援装置100を用いた半導体装置の設計支援方法の一例を示すフローチャートである。ステップS21:本実施の形態では、予め、使用者がシミュレーションソフトウェア112上でハードウェアモデル111を作製しているものとする。この段階では、ハードウェアモデル111は、後述の計測ルーチンを含んでいない。使用者は、入力装置130を用いて、計測ルーチンをハードウェアモデル111に追記する。計測ルーチンは、あるタスクにおけるサイクル数CycleおよびデッドラインDeadlineをそれぞれ計測するルーチンである。図10は、実施の形態に係る計測ルーチンの一例を示すプログラムリストである。図10には、サイクル数Cycleの計測に関する部分が示されている。タスクの状態には、以下の3つの状態がある。stateIDLE:タスクがアイドルスタンバイ中である。stateDOING:タスクが動作中である。stateEND:タスクが完了した。計測ルーチンの概要を以下に示す。3行目に示すように、タスクの状態がstateIDLEの場合、サイクル数がCycle0にセットされる。6行目に示すように、タスクの状態がstateDOINGの場合、クロックclockの立ち上がりで11行目、変数iがインクリメントされる12行目。8行目に示すように、タスクの状態がstateENDの場合、現段階での変数iの値がサイクル数Cycleにセットされる10行目。この場合、変数iのインクリメントは行われない9行目。ステップS22:CPU140は、シミュレーションソフトウェア112を実行することで、データベース121を作製する。シミュレーションの際に、CPU140は、ステップS21で計測ルーチンを追記したハードウェアモデル111を用いる。なお、このシミュレーションは、予めユーザ回路6の処理内容が画像処理であると想定した上で行われる。データベース121は、図11に示すように、サイクル数CycleとN個の属性パラメータParam1-ParamNとの対応関係を示すデータである。CPU140は、作製したデータベース121をRAM120に格納する。無論、データベース121をRAM120の代りに記憶装置110に格納することもできる。ステップS23:CPU140は、作製したデータベース121を用いて、サイクル数概算関数CycleCalを作製する。ステップS24:使用者は、入力装置130を用いて、作製されたサイクル数概算関数CycleCalをファームウェア21のサイクル数概算ルーチン211に実装する。その際に、使用者は、入力装置130を用いて、サイクル数概算関数CycleCalをファームウェア21に直接記述する。ステップS24では、以下の方法を用いることもできる。使用者は、高位検証を行うツールにサイクル数概算関数CycleCalを登録しておく。使用者は、そのツールを用いて、サイクル数概算関数CycleCalをサイクル数概算ルーチン211に自動合成する。8.ステップS22の詳細図12は、図9に示すステップS22の詳細なフローチャートである。ステップS221:シミュレーションにあたって、CPU140は、N個の属性パラメータParam1-ParamNの各々に想定範囲内で値を割り振る。ここで、N=3の場合を例に挙げる。この場合、3個の属性パラメータの各々は、例えば、Param11入力画像サイズ、Param21出力画像サイズ、Param332演算精度である。なお、想定範囲とは、ユーザ回路6の処理内容例えば、画像処理で取り得る値の範囲を予め想定したものである。属性パラメータParam1が入力画像サイズである場合、その想定範囲は、例えば、1バイトから1ギガバイトに設定される。ステップS222:CPU140は、ステップS221で値をそれぞれ割り振ったN個の属性パラメータParam1-ParamNを用いて、サイクル数Cycleを算出する。その際に、CPU140は、ステップS21で計測ルーチンを追記したハードウェアモデル111を用いる。そして、CPU140は、データベース121を作製するため、N個の属性パラメータParam1-ParamNと共に、算出したサイクル数CycleをRAM120に格納する。ステップS223:ステップS221およびS222の各処理は、M回繰り返される。この繰り返しを試行と呼ぶ。試行回数がM回に達していない場合NO、CPU140は、ステップS221の処理を再び実行する。この場合、CPU140は、例えば、先のステップS221でN個の属性パラメータの各々に割り振った値よりも大きな値または小さな値を、N個の属性パラメータParam1-ParamNの各々に割り振る。N個の属性パラメータの各増加分刻み幅は、例えば、N個の属性パラメータの各々に対応する想定範囲を試行回数Mで除した値である。試行回数Mは、できるだけ多いことが望ましい。一方、試行回数がM回に達した場合YES、CPU140は、ステップS221およびS222の各処理、即ち、シミュレーションを終了する。図11に示すデータベース121では、M回の試行の内、j回目の試行でそれぞれ得られたN個の属性パラメータParam1-ParamNが、Param1j-ParamNjとそれぞれ表記されている。また、j回目の試行で得られたサイクル数CycleがCyclejと表記されている。以後、これらの表記を適宜用いる。以上述べたように、CPU140は、N個の属性パラメータParam1-ParamNの各々を想定範囲内で連続的にM回試行して、M個のサイクル数Cycleを算出する。この算出には、ハードウェアモデル111が用いられる。CPU140は、これらの算出結果を基に、データベース121を作製する。9.ステップS23の詳細図13は、図9に示すステップS23の詳細なフローチャートである。ステップS23では、1式に示すように、サイクル数概算関数CycleCalが属性パラメータParamijの2次式で近似的に表される場合を例に挙げる。上述のステップS223におけるM回の試行の内、j回目の試行で得られたサイクル数Cyclejは、3式で表される。ここで、εエプシロンjは、実際のサイクル数とj回目の試行で得られたサイクル数Cyclejとの誤差である。誤差εjは、両者の大小関係によって、正または負の値をとる。なお、C2iは、属性パラメータParam2ijの係数である。C1iは、属性パラメータParamijの係数である。設計支援装置100は、最小2乗法を用いたシミュレーションを実行することにより、定数項C0、係数C21-C2N、C11-C1Nをそれぞれ決定する。ステップS231:CPU140は、全ての属性パラメータおよび全てのサイクル数をRAM120に格納されているデータベース121から読み出す。ステップS232:CPU140は、全ての属性パラメータおよび全てのサイクル数を3式に示す算出式にそれぞれ代入する。この代入により、4式に示す関係式が得られる。ステップS233:CPU84は、誤差ε1-εMの各々の2乗値の総和Sを算出する。2乗値の総和Sは、5式で表される。定数項C0、係数C21-C2N、C11-C1Nの算出方法は、2つある。算出方法A:1つ目の算出方法Aについて説明する。CPU140は、2乗値の総和Sが最小となるように、定数項C0、係数C21-C2N、C11-C1Nを最小2乗法によりそれぞれ決定する。そのため、算出方法Aは、上述のエラーの防止よりも組み込みシステムAの低消費電力化を優先する場合に有効である。なお、ステップS233で決定された定数項C0、係数C21-C2N、C11-C1Nが、それぞれ2式に示すサイクル数概算関数CycleCalの定数項C0、係数C21-C2N、C11-C1Nとなる。算出方法B:2つ目の算出方法Bについて説明する。先ず、CPU140は、誤差ε1-εMの中から最も絶対値の大きい誤差εmaxを抽出する。これは、実際のサイクル数と最も誤差の大きいサイクル数Cyclejを抽出することを意味する。そして、CPU140は、その抽出した誤差εmaxが最小となるように、定数項C0、係数C21-C2N、C11-C1Nを最小2乗法によりそれぞれ決定する。そのため、算出方法Bは、算出方法Aとは逆に、エラーの防止を最優先させたい場合に有効である。本実施の形態では、一例として、算出方法Aが採用されている。2つの算出方法A、Bのいずれを採用するかは、マイクロコンピュータ1の仕様または組み込みシステムAの仕様に応じて決定される。ステップS234:サイクル数概算関数CycleCalは、N個の属性パラメータParam1-ParamNを持つ。その中のある属性パラメータParamkの係数C1kまたはC2kが他の属性パラメータの係数よりも無視できる程度に小さい場合がある。この場合、属性パラメータParamkは、サイクル数Cycleへの影響が極めて小さいと言える。そこで、上述の場合には、属性パラメータParamkを無視することにより、属性パラメータの数を減らす処理が行われる。属性パラメータParamkをサイクル数概算関数CycleCalに組み込まないことで、マイクロコンピュータ1がサイクル数Cycleの概算に要する処理を低減することができる。具体的には、CPU140は、係数C21-C2N、C11-C1Nの中から最小の値を持つ最小係数Cminを抽出する。そして、CPU140は、最小係数Cminを他の係数と比較する。最小係数Cminが他の係数よりも十分に小さい、例えば、最小係数Cminが他の係数の1/100程度の場合YES、CPU140は、最小係数Cminを持つ属性パラメータを0にセットする。そして、CPU84は、ステップS231を再び実行する。一方、最小係数Cminが他の係数よりも十分に小さいという場合がないNO、CPU140は、処理を終了する。本実施の形態によれば、サイクル数概算関数CycleCalによって、サイクル数が概算される。サイクル数は、ビットストリームなどのデータそのものではなく、ユーザ回路6の処理内容を決定づけるN個の属性パラメータParamiで決まる。ユーザ回路6の動作電圧周波数が属性パラメータParamiに基づいて動的に制御されることで、マイクロコンピュータ1全体の消費電力が削減される。その上、サイクル数概算関数CycleCalは、予めユーザ回路6の処理内容に合わせて作製されている。そのため、組み込みシステムAはおろか、マイクロコンピュータ1自体のアーキテクチャに左右されることなく、タスクのサイクル数を得ることができる。組み込みシステムAの設計者は、そのアーキテクチャを熟知していなくても、サイクル数概算関数CycleCalを作製することができる。[第1の変形例]図14は、第1の変形例に係るマイクロコンピュータ1aの構成例を示すブロック図である。本変形例では、サイクル数概算ルーチン211および動作電圧周波数算出ルーチン213が、それぞれサイクル数概算部211aおよび動作電圧周波数算出部213aとしてマイクロコンピュータ1aに搭載されている。サイクル数概算部211aおよび動作電圧周波数算出部213aは、それぞれサイクル数概算ルーチン211および動作電圧周波数算出ルーチン213と同等の機能を持つハードウェアで構成されている。設計者は、例えば、RTLの設計段階で、サイクル数概算ルーチン211および動作電圧周波数算出ルーチン213がそれぞれ持つ機能をマイクロコンピュータ1aのハードウェアに組み込めばよい。本変形例のように、サイクル数概算ルーチン211および動作電圧周波数算出ルーチン213をハードウェアとして構成しても、実施の形態と同等の効果を得ることができる。[第2の変形例]図13に示すステップS233では、2つの算出方法AおよびBを説明した。基本的に、算出方法Aによって求まる各係数は、算出方法Bによって求まる各係数と若干異なる。これは、算出方法の違いに起因する。本変形例では、サイクル数概算ルーチン211が、算出方法AおよびBによってそれぞれ得られた2種類のサイクル数概算関数CycleCalAおよびCycleCalBを備えている。サイクル数概算ルーチン211は、マイクロコンピュータ1の処理内容に動的に対応して、使用するサイクル数概算関数をCycleCalAまたはCycleCalBに切り替える。また、サイクル数補正ルーチン214は、動作電圧voltageの誤差を補正する際に、サイクル数概算関数CycleCalBの係数C0を調整する。本変形例では、サイクル数概算ルーチン211が2種類のサイクル数概算関数CycleCalAおよびCycleCalBを備えているため、より正確なサイクル数を得ることができる。第1および第2の変形例を実施の形態と自由に組み合わせることができる。"