(57)【特許請求の範囲】
【請求項１】
複数の命令が連続的に実行されるジョブを実行するプロセッサと、
上記プロセッサの動作モードを制御する制御部とを有し、
上記プロセッサが上記ジョブの実行を開始するにあたって、上記制御部は上記プロセッサの動作モードを第１モードに設定し、
上記プロセッサが上記ジョブの実行を開始した後、所定の時間経過後に、上記制御部は上記プロセッサの動作モードを第２モードに設定し、
上記第２モードにおいて上記プロセッサは、上記第１モードにおいて可能な動作速度よりも高速動作可能であり、
上記制御部は、上記プロセッサの動作モードを制御する制御回路と、上記所定の時間についての情報を記憶する第１のレジスタとを備え、
電源投入時またはシステムリセット時に、上記所定の時間についての情報が外部の記憶装置から上記第１のレジスタに転送される半導体装置。
【請求項２】
請求項１において、
上記プロセッサは、ポインタがアイドルアドレスを指すことによって上記ジョブの実行を終了し、
上記制御部は上記アイドルアドレスを記憶する第２のレジスタと、上記第２のレジスタに記憶されたアイドルアドレスと上記ポインタとを比較する比較器とを有し、
電源投入時またはシステムリセット時に、上記アイドルアドレスが外部の記憶装置から上記第２のレジスタに転送され、
上記制御回路は、上記比較器が上記第２のレジスタに記憶されたアイドルアドレスと上記ポインタとが不一致であることを示す出力を受けて、上記プロセッサが上記ジョブの実行を開始したことを判定する半導体装置。
【請求項３】
請求項１において、
上記プロセッサにクロック信号を供給するクロック信号供給回路を備え、
上記プロセッサは上記プロセッサへの上記クロック信号の供給を制御する制御信号を出力し、
上記制御回路は、上記プロセッサが上記プロセッサへの上記クロック信号の供給を開始させる制御信号を出力したのに応じて、上記プロセッサが上記ジョブの実行を開始したことを判定する半導体装置。
【請求項４】
複数の命令が連続的に実行されるジョブを実行するプロセッサを含む半導体装置の動作モード制御方法であって、
電源投入もしくはシステムリセット時に上記半導体装置のレジスタに時間情報を格納し、
第１の動作モードで上記ジョブの実行を開始し、
上記ジョブの実行の開始後、上記時間情報により指示された時間経過後に上記第１の動作モードから上記第２のモードに変更する半導体装置の動作モード制御方法。
【請求項５】
請求項４において、
上記時間情報は、外部の不揮発メモリまたは上記半導体装置の内蔵する不揮発メモリから上記半導体装置に転送される半導体装置の動作モード制御方法。
【請求項６】
請求項４において、
上記プロセッサは第１のアプリケーションの処理に対応する第１のジョブと、第２のアプリケーションの処理に対応する第２のジョブとを実行し、
上記電源投入もしくは上記システムリセット時に上記半導体装置のレジスタに上記第１のジョブについての第１の時間情報を格納し、
上記電源投入もしくは上記システムリセット時に上記半導体装置のレジスタに上記第２のジョブについての第１の時間情報を格納し、
上記プロセッサが上記第１のジョブを実行時には、上記第１のジョブの実行の開始後、上記第１の時間情報により指示された時間経過後に上記第１の動作モードから上記第２の動作モードに変更し、
上記プロセッサが上記第２のジョブを実行時には、上記第２のジョブの実行の開始後、上記第２の時間情報により指示された時間経過後に上記第１の動作モードから上記第２の動作モードに変更する半導体装置の動作モード制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプロセッサとその制御方法に関する。
【０００２】
【従来の技術】
近年、マイクロプロセッサの高速化は著しく、約１年で２倍の高速化が達成されている。一方で、高速化に伴う消費電力の増大の問題が顕在化してきた。特に、マイクロプロセッサを携帯機器システムに用いる場合において、消費電力の増大は電池寿命を短くする。携帯機器システムは電池寿命を延ばすことを最優先させるため、プロセッサが実行できる最大の周波数よりも周波数を落として動作させることによって、その消費電力を削減させる。しかしながら、この方式ではプロセッサは高度な情報処理が実行できない。
【０００３】
このような問題に対し、プロセッサが実行する負荷が小さいときには電源電圧と周波数とを下げてその消費電力を低減し、負荷が大きいときには電源電圧と周波数とを上げてその性能向上を図る方式がすでに提案されている。
【０００４】
このような方式の従来例としては２０００アイイーイーイー、インターナショナル、ソリッド、ステート、サーキット、コンファランス、ダイジェスト、オブ、テクニカル、ペーパーズ(2000, IEEE International Solid-State Circuits, Digest of Technical Papers)292頁から293頁に示されている。この従来例では、プロセッサで実行するアプリケーションの要求する締め切りに合わせて周波数と電源電圧を制御する。必要な周波数を割り出すためにオペレーティングシステム（以後ＯＳという）を用い、その必要な周波数を実行できる電源電圧を発生させるための回路と電源等からなるシステムを提案している。
【０００５】
【発明が解決しようとする課題】
上記従来例では、最適な周波数を割り出すためにＯＳを用いているため、以下の問題が生じる。
（１）ＯＳはこの制御を行うために最適な周波数を割り出すための計算が必要となる。ＯＳ自身はマイクロプロセッサが走らせるため、マイクロプロセッサに制御のためのオーバーヘッドが生じ、その消費電力が増大する。
（２）この制御方式では、マイクロプロセッサとＯＳの両方の協調動作が必要であるため、両者が同じ電源周波数制御システムに対応していないと動作できない。しかしながら、実際には世の中にはすでにさまざまなＯＳとさまざまなマイクロプロセッサが存在しており、実際にさまざまな機器に使用されている。現実にこれらのＯＳとマイクロプロセッサにこの制御方式を広く適用するには、規格化等の問題が生じることが予想される。
【０００６】
そこで、本発明はＯＳに依存することなく、汎用性の高い周波数制御方式を実現し、マイクロプロセッサの低電力化と高性能化を両立させる。
【０００７】
【課題を解決するための手段】
このため、本発明は、以下の手段を用いる。
【０００８】
複数の命令が連続的に実行されるジョブを実行するプロセッサと、プロセッサの動作モードを制御する制御部とを有する半導体装置であって、プロセッサがジョブの実行を開始するにあたって、制御部はプロセッサの動作モードを第１モードに設定し、プロセッサがジョブの実行を開始した後、所定の時間経過後に、制御部は上記プロセッサの動作モードを第２モードに設定する。ここで、第２モードにおいてプロセッサは、第１モードにおいて可能な動作速度よりも高速動作可能とする。具体的には、第１モードよりも第２モードの動作周波数を高くする、第１モードよりも第２モードの動作周波数を高くするとともに電源電圧を高くする、第１モードよりも第２モードの動作周波数を高くするともに基板バイアスの絶対値を小さくする。
【０００９】
また、制御部は、プロセッサのポインタのアドレスや、クロック供給回路に出力する制御信号の状態によりプロセッサの状態を検知して、プロセッサ上で動作するＯＳとは無関係に動作モードを制御可能にする。
【００１０】
さらに、第１モードから第２モードに変更するべき所定の時間についての情報を外部のＲＯＭや内蔵の不揮発性メモリに格納し、電源投入時またはシステムリセット時に制御部のレジスタに転送することにより、上記所定の時間をプロセッサが処理すべきアプリケーションに適した時間に設定することができる。
【００１１】
【発明の実施の形態】
以下、本発明を実施例に基づき説明する。
【００１２】
図１は本発明の第１の実施例である電源電圧及び周波数の双方を制御する例を示す波形図である。この例では、プロセッサはジョブ１、ジョブ３、ジョブ３を実行する。ここでジョブとはプロセッサで実行される実質的に連続した命令列である。
【００１３】
ジョブ１は時刻ｔ０に実行を開始される。このとき、プロセッサは低い動作周波数fLと低い電源電圧VLで実行を開始する。その後、ある一定の時間ｔａが経過した時刻ｔ１でプロセッサは時間ｔａの経過を検知して電源電圧と周波数を変化させる。時刻ｔ１以降では、プロセッサは高い動作周波数fHと高い電源電圧VHでジョブ１を実行する。最後に時刻ｔ２でジョブ１の実行が終了する。同様に、ジョブ２は時刻ｔ３で周波数fLと電源電圧VLでスタートし、時間ｔａが経過した時刻ｔ４から、プロセッサは周波数fHと電源電圧VHでジョブ２を実行する。ジョブ２は時刻ｔ５で終了する。次に、ジョブ３が時刻ｔ６でスタートする。ジョブ３は周波数fLと電源電圧VLでスタートするが比較的短いジョブであり、時間ｔａを経過しないで終了してしまう。すなわち、ジョブ３は周波数と電源電圧を周波数fHと電源電圧VHに変更する制御がなされることなく、時刻ｔ６で終了する。
【００１４】
本例における消費電力が図１に示されている。ＣＭＯＳ回路の電力をＰとすると、その値は周波数と電圧の２乗の積に比例する、すなわちＰ∝ｆ＊Ｖ２で表されることがよく知られている。
【００１５】
一例として、VH＝２VL、fH＝２fLなる関係が成り立つとする。
【００１６】
この場合、動作周波数fL、電源電圧VLで動作する場合の消費電力P1は、P1∝fL＊VL２となり、動作周波数fH、電源電圧VHで動作する場合の消費電力P2は、P2∝fH＊VH２＝２fL＊(２VL)２＝８Ｐ１となる。このように、Ｐ１はＰ２の１／８の電力である。電源電圧を下げずに単に周波数のみを下げる方式では電力は周波数に比例した分しか下がらない（この例では１／２）ので、電源と周波数を同時に制御する方式は効果的である。この電源電圧と周波数とを制御する制御方式は、消費電力Ｐ１の時間が長いほど平均的な消費電力を下げることができる。ここで、電力Ｐ１のモードを低電力モード、電力Ｐ２のモードを高速モードと定義する。
【００１７】
本制御方式では、あらかじめ決められた時間taを設定して、低電力動作と高速動作とを切り分ける。ジョブを実行し始めたときには低電力モードになっている。比較的負荷の軽いジョブは低電力モード下で短時間に実行を完了してしまうので、小さい消費電力で実行が完了する。一方、負荷の重いジョブの場合は低電力モードの期間（時間ta）ではジョブが終了しない。ここで、一定の時間taに達すると自動的に高速モードに移行する。これにより、負荷が重い場合には高速の周波数で動作させることができるので、プロセッサの最高性能を利用することができる。また、ジョブを連続してとぎれなく実行させる場合も考えられるが、このような場合はそもそもプロセッサの能力を最大に使おうとする場合であって、高速モードが維持されたままでよい。
【００１８】
時間taの情報は半導体集積回路内のレジスタ等に蓄えておけばよい。集積回路内のハードウエアは時間taの経過を監視して、低電力モードから高速モードに自動的に移行させることができる。したがって、簡便な方法により、マイクロプロセッサの低電力化と高性能化を両立させることができる。図２にかかるハードウエアの構成例を示す。
【００１９】
半導体集積回路２０は、ソフトウエアを実行するためのプロセッサ（ＣＰＵ）２５と、プロセッサの動作モードを制御するための制御部２６、クロック供給回路（クロック供給回路をＰＬＬで代表させ、以下、ＰＬＬと表記する）２３、電源回路２４を有している。さらに、制御部２６は、時間taの情報を保持するtaレジスタ２１と、ＰＬＬ２３及び電源回路２４を制御する制御回路２２とを有している。制御回路２２はジョブの実行状態を監視し、ジョブが開始された場合にはＰＬＬ２３と電源回路２４を制御してプロセッサの動作周波数ｆをfL、電源電圧ＶｄｄをVLにする。さらに、制御回路２２は、taレジスタ２１に保持された時間taとジョブの実行時間とを比較し、ジョブの実行時間がtaに達するとＰＬＬ２３と電源回路２４を制御して周波数と電源電圧をそれぞれfHとVHにする。また、ジョブが終了したら周波数と電源電圧をfLとVLにもどす。
【００２０】
なお、電源回路２４は必ずしも半導体集積回路内になくてもよく、出力電圧を制御できることの可能な電源素子を用いてもよい。図３にハードウエアの別の構成例を示す。この例では、システムのハードウエア構成をより詳細に示している。１は半導体集積回路装置、２は電源回路、３はブートＲＯＭである。
【００２１】
システムの制御方式は図２に示した例と同様である。この例では、電源回路２が半導体集積回路装置１とは別の回路に存在することが特徴である。半導体集積回路装置１の制御回路４は電源回路２に制御信号を送り、電源回路２が発生する電源電圧Ｖｄｄを制御する。また、この例では、ブートＲＯＭ３と半導体集積回路装置１が接続されており、ブートＲＯＭ３はシステムを立ち上げたときに必要な情報を半導体集積回路装置１に取り込む働きをしている。ブートＲＯＭ３に時間taの情報を記憶しておき、システムの電源投入時またはシステムリセット時にレジスタ５に入力すればいい。なお、時間taの情報としては、時間情報でもよく、クロック数でもよい。前者の場合はタイマー６で計測し、後者の場合は図示しないカウンタで計測すればよい。このように構成することにより、その後ＯＳを半導体集積回路装置１のメモリ等にインストールする場合でもＯＳに依存しないで、本発明の動作を実行することができる。
【００２２】
ここで、ブートＲＯＭは一般的にはEEPROM等の不揮発メモリが使われる場合が多いが、不揮発な記憶媒体であればなんでもよく、フラッシュメモリ、電池バックアップのＲＡＭ、フロッピィディスク、ハードディスク等でも、システム立ち上げ時に自動的に内容が読み込まれるようになっていればよい。また、図３の例ではブートＲＯＭは半導体集積回路装置１の外部にあるが、半導体集積回路装置１上に形成されたフラッシュメモリのような不揮発メモリや電池でバックアップされたＲＡＭに同じ機能をもたせてもよい。
【００２３】
図４は本発明の別の動作波形を示した図である。
【００２４】
本発明では、ジョブ単位で電源と周波数の制御を行っている。ここで、マイクロプロセッサがＯＳの実行も行う場合には、ジョブの内容には、アプリケーションを実行するタスクとその前後に実行されるＯＳの実行とが含まれる。すなわち、図４にジョブ１に関して図示するように、ジョブ１では、プロセッサはまずＯＳを実行し、次にＯＳの命令によりアプリケーションのタスクが実行される。アプリケーションのタスクが終了すると、制御がＯＳに戻されるので、ＯＳが実行される。この後、実行すべきジョブがない場合にはＯＳの働きにより、プロセッサはアイドル状態になる。アイドル状態とはプロセッサのポインタが特定のメモリの番地をアクセスしつづけている状態である。ここから復帰するには割り込みが必要である。
【００２５】
図５は、図４に示した動作波形をＯＳの働きなしに実現するシステムのハードウエア構成を示した図である。
【００２６】
図５のハードウエア構成では、図３のハードウエア構成に加えて半導体集積回路装置の中にアイドルレジスタ９と比較器１０が新たに挿入されている。
【００２７】
本実施例の動作は以下のようである。システム立ち上げ時にブートＲＯＭ３からアイドルレジスタ９とプロセッサ８とにアイドルアドレスが読み込まれる。また、taレジスタ５には時間taの値が読み込まれる。プロセッサ８は、時刻t0にまず、ジョブ１の実行を開始する。このとき、プロセッサ８は、低い動作周波数fLと低い電源電圧VLでジョブ１を実行する。ジョブ１にはＯＳの実行、タスク１の実行、さらにＯＳの実行が含まれる。ただし、ハードウエアはそれらを区別することはできない。ジョブ１の開始後、制御回路４はタイマー６によりジョブの経過時間を測定しはじめる。一定の時間taが経過した時刻t1で制御回路４は電源電圧Ｖｄｄとクロック周波数ｆとを変化させ、プロセッサ８は高い動作周波数fHと高い電源電圧VHでジョブ１を実行する。最後に時刻t2でジョブ１の実行が終了すると、ＯＳはアイドル状態を指定してアイドル状態に入る。このとき、ＯＳはあらかじめブートＲＯＭ３から入力されたアイドルアドレスにポインタをセットすることによって、アイドル状態になる。したがって、制御回路４はアイドルレジスタに格納されたアドレスとポインタが指定するアドレスとが一致したことを判定することにより、アイドル状態に入ったことを認識する。一致判定を受けて、制御回路４は周波数ｆと電源電圧Ｖｄｄを周波数fLと電源電圧VLにそれぞれ落とし、半導体集積回路装置は電力削減モードに入る。次のジョブ（ジョブ２）が開始されるときには、ポインタがアイドル状態とは異なるアドレスを指すのでこれを比較回路１０で検知し、制御回路４はジョブの実行時間を測定し始める。ジョブ２終了、ジョブ３の開始と終了も同様な方法で判定することが可能である。
【００２８】
このように構成することで、ＯＳに依存せずにアイドル状態を認識して、本発明の低電力動作を実行することが可能になる。
【００２９】
図６は本発明のさらに別の動作波形を示した図である。この例はジョブが終了した後にスリープ状態に入る場合を示したものである。スリープ状態はプロセッサ８がＰＬＬを停止して割り込み待ち状態に入ることである。スリープ状態はクロックが止まっているのでその間に消費電力を消費せず、図の電力のグラフで示すように、アイドル状態を利用するよりも全体の電力を低減することが可能になる。
【００３０】
図７は、図６に示した動作波形をＯＳの働きなしに実現するシステムのハードウエア構成を示した図である。
【００３１】
図７のハードウエア構成は、図５のハードウエア構成とほぼ同様であるが、プロセッサ８が発生するＰＬＬ７のon/off信号を制御回路にも入力される。この信号により、スリープ状態であるかどうかを認識することが可能である。したがって、制御回路４はＰＬＬ７がオンになったときにジョブが開始されたと認識し、一定の時間taが経過した時点で、電源電圧と周波数を増加させるように電源回路２とＰＬＬ７を制御することができる。なお、スリープ状態において、低消費電力化の効果は少なくなるが通常状態への復帰を速くできるように、ＰＬＬ７を停止させることなく待機時にクロックの供給のみを止めるようにしてもよい。その制御信号を用いて同様の構成とすることが可能であり、これは以下に示す例でも同様である。
【００３２】
図８は、半導体集積回路装置の各回路の動作の性質を鑑みて、本発明の波形をより詳細に示した図である。図８に示すように、１つのジョブはＰＬＬのセットリング時間、ＯＳの実行、低周波数fLでのタスクの実行、低周波数fLでのタスク実行中の電源電圧の変更、高周波数fHでのタスクの実行、ＯＳの実行からなっている。
【００３３】
プロセッサがスリープの時には電源電圧はVLでかつＰＬＬは停止している。割り込みにより、この状態から抜け出そうとするときには、まずＰＬＬを動作させようとする。図７のハードウエアではＰＬＬの制御信号を制御回路が受け取るので、割り込みが発生した時からカウンタによりジョブの実行時間を測定し始める。しかしＰＬＬは通常いきなり動作が安定するわけではなく、通常数１０マイクロセカンドほどのセットリング時間を必要とする。セットリング時間の間に周波数はfLにセットされる。セットリング時間経過後、まずＯＳがfLで実行される。その後、ＯＳによって発行されたタスクが実行される。当初タスクは周波数fLで実行されるが、一定の時間taが経過してもジョブが続いている場合には、制御回路４からの信号により、まず電源電圧をVLからVHに移行させる。電源電圧がVHに移行して安定したら次に動作周波数をfLからfHに移行させる。このようにすれば、プロセッサが、低い電源電圧VLを供給される一方で高い周波数fHで駆動されることによって生じる誤動作を防止することが可能になる。タスクが終了すると、ＯＳが周波数fHのまま動作し、ＯＳの指令によりスリープ状態に移行する。
【００３４】
このように電源電圧と周波数とを制御することにより、半導体集積回路装置内の各回路の特性に応じて、本発明を誤動作なしに実行することが可能になる。
【００３５】
図９は本発明のさらに別の動作波形を示した図である。周波数がfL,fM,fHの３種類、電源電圧がそれぞれの周波数に対応してVL,VM,VHの３種類になったときの波形図である。このように、本発明の方式は、電源と周波数がそれぞれ２種類には限定されない。この場合、あらかじめ周波数fL、電源電圧VLで動作する期間であるtaと、周波数fL及びfM、電源電圧VL及びVMで動作する期間であるtbの２種類の時間を設定しておく。本波形図に示すように、ジョブ１は時間t0において周波数fLと電源電圧VLで開始される。その後時間taを経過してもジョブ１が終了しないので、周波数fMと電源電圧VMに変えて動作を続け、その周波数と電源電圧で動作を終了する。次のジョブ２は時間t3において、ジョブ１と同様、周波数fLと電源電圧VLで開始する。その後時間taを経過してもジョブが終了しないので、周波数fMと電源電圧VMに変えて動作を続ける。あらかじめ決めておいた時間tbを経過しても終了しないので、周波数fHと電源電圧VHで実行を続け、ジョブ２を終了する。このように、電源電圧と周波数の種類を増やし、きめ細かな制御が可能である。また、電源電圧を２種類、周波数を３種類、というように電源電圧と周波数が１対１に対応している必要もない。ただし、図８に関連して述べたように、供給されている電源電圧で可能な動作速度以上に高速な周波数を供給することのないようにモード（電源電圧と周波数との組み合わせ）を設定する必要はある。
【００３６】
図１０は本発明を特定のアプリケーションの実行に用いた場合の動作波形を示した図であり、本発明の効果を具体的に説明するための実施例である。
【００３７】
近年、携帯電話等の携帯機器においては、動画像のデコード、エンコードが行われるようになってきた。動画像のデコード、エンコードをマイクロプロセッサで行う場合の特徴としては、そのジョブが周期的に行われることと、ほとんどのジョブは軽いジョブなのに対し、たまに非常に大きな計算量を必要とするジョブが存在することである。
【００３８】
たとえば、３０フレーム／秒のＭＰＥＧデータのデコードの場合、そのジョブの実行の周期は３３ｍｓになる。ＭＰＥＧのデータ圧縮方式において、第一フレームは画面全体が圧縮された情報になっているのでこれをデコードするにはかなりの計算量を要する。一方、第二フレーム以降、しばらくの間はフレーム画像間に連続性が存在し、前のフレームとの差分だけを計算すればいいので、計算量は比較的少ない。本実施例ではこの様子を図示している。
【００３９】
第一フレームをジョブ１で処理する。最初、周波数fL、電源電圧VLで処理が開始されるが、ジョブ１は計算量が大きいので、時間taが経過すると周波数fH、電源電圧VHに変更して処理を継続し、処理を終了する。ここで、周波数fLは周波数fHの１／２とし、時間taを周期Ｔ（３３ｍｓ）の１／２である１７．５ｍｓとする。時間taまでの周波数はfH／２、時間ta〜時間Ｔの周波数はfHとなるので、周期Ｔでの平均の周波数は３fH／４となる。したがって、本方式によれば、周波数fHがマイクロプロセッサの達成しうる最大の周波数と仮定すると、平均してその７５％の周波数で動作したのと同じになる。
【００４０】
一方、第二フレーム、第三フレーム、第四フレームの計算をそれぞれジョブ２、ジョブ３、ジョブ４とすると、それぞれの計算量は少ないので、それぞれ時間ta以内に計算を終えることができる。したがって、第二フレーム以降の計算は周波数fLと電源電圧VLを維持できる。この間の電力は最大電力の１／８（１２．５％）に押さえることができる。このように、本発明によれば低電力モード時の電力は、最大時の１２．５％に押さえながら、マイクロプロセッサが最大に発揮しうる性能の７５％を達成することが可能である。
【００４１】
図１１はマルチタスクＯＳを使って複数のアプリケーションが同時にＣＰＵ上を走る場合の動作波形を示したものである。
【００４２】
マルチタスクＯＳの場合は、アプリケーションはそれぞれジョブに分割されて、プロセッサにより実行される。各ジョブの計算量はアプリケーションの性質によるところが大きい。たとえば、アプリケーションがそれぞれ圧縮された動画像のデコード、圧縮された音声のデコードであった場合、動画像のデコードの方がより大きな計算量を必要とするので分解されたジョブの長さが長くなることが予想される。一方で、動画像のデコードはジョブ毎のばらつきの幅が大きい。このような場合、動画像のアプリケーションには周波数と電源電圧を変えるまでの設定時間を比較的長くしておけば、設定時間に達する前にたいていのジョブは終了して低電力化に貢献できる。
【００４３】
図１１の例では、ジョブ１とジョブ３はアプリケーションＡに対するジョブであり、ジョブ２とジョブ４はアプリケーションＢに対するジョブである。この時、アプリケーションＡのジョブ１に対してはより短い設定時間tAを適用し、アプリケーションＢのジョブに対しては、より長い設定時間tBを適用する。このように、マルチタスクの場合にはアプリケーションの性質に応じた設計時間を設定することにより、効果的に低消費電力化することができる。この場合には、taレジスタ（図２、図３、図５、図７）には設定時間tAの情報と設定時間tBの情報がそれぞれ必要になる。
【００４４】
図１２は本発明の第２の実施例として電源電圧を一定として、周波数と同時に基板バイアスを制御した場合の波形図である。
【００４５】
図１２に示す例では、ジョブの開始時にはプロセッサに対して低い周波数fLと深い基板バイアスを供給する。その後、時間taが経過した後は、高い周波数fHと浅い基板バイアスを供給する。深い基板バイアスとしては、プロセッサを構成するＮＭＯＳトランジスタの基板またはウェルにVbbNＶ、ＰＭＯＳトランジスタの基板またはウェルにVbbPＶを印加する。浅い基板バイアスとしては、深い基板バイアスとして印加した基板電位の絶対値よりも小さい絶対値の基板電位を印加する。例えば、ＮＭＯＳトランジスタの基板またはウェルには０Ｖ、ＰＭＯＳトランジスタの基板またはウェルに電源電位（Ｖｄｄ）を印加する。
【００４６】
深い基板バイアスを印加した場合には、しきい値電圧が上昇して動作周波数が下がるがリーク電流が減るので電力が低減される。一方、浅い基板バイアスを印加した場合はしきい値電圧が下がって動作周波数が上昇するがリーク電流が増えて電力が増加する。この動作速度と消費電力との関係は周波数と電源電圧のとを制御した場合と同様である。したがって、図１２の制御例によってもＯＳに依存せずに汎用性の高い周波数制御方式を実現し、マイクロプロセッサの低電力化と高性能化を両立させることが可能になる。
【００４７】
なお、この第２の実施例についても図２、図３、図５、図７に示したようなハードウェア構成により実現可能である。すなわち、電源回路に代えて基板バイアス発生回路を設け、図１２に示すような基板バイアスを発生させるようにすればよい。
【００４８】
さらに、第１の実施例として電源電圧と周波数を制御する例を示したが、周波数のみの制御も可能である。低消費電力の効果は第１の実施例に比べて小さくなるが、簡易に構成ができる。この場合には、図２、図３、図５、図７に示したようなハードウェア構成から電源回路への制御を除いた形で実現することができる。
【００４９】
【発明の効果】
本発明によれば、ＯＳに依存せずに汎用性の高い周波数制御方式を実現し、マイクロプロセッサの低電力化と高性能化を両立させることが可能になる。
【図面の簡単な説明】
【図１】本発明の第１の実施例である電源−周波数制御の例を示す波形図である。
【図２】本発明を実施するためのハードウエアの構成例を示す図である。
【図３】本発明を実施するためのハードウエアの別の構成例を示す図である。
【図４】本発明の第１の実施例である電源−周波数制御の別の例を示す波形図である。
【図５】本発明を実施するためのハードウエアの別の構成例を示す図である。
【図６】本発明の第１の実施例である電源−周波数制御の別の例を示す波形図である。
【図７】本発明を実施するためのハードウエアの別の構成例を示す図である。
【図８】本発明の第１の実施例である電源−周波数制御の波形図を詳細に示した図である。
【図９】本発明の第１の実施例である電源−周波数制御の別の例を示す波形図である。
【図１０】本発明を特定のアプリケーションの実行に用いた場合の波形図である。
【図１１】マルチタスクＯＳにより複数のアプリケーションが同時にＣＰＵ上を走る場合の波形図である。
【図１２】本発明の第２の実施例である基板バイアス−周波数制御の例を示す波形図である。
【符号の説明】
１：半導体集積回路装置、２：電源回路、３：ブートＲＯＭ、４：制御回路、５：レジスタ、６：タイマー、７：クロック供給回路、８：プロセッサ、９：アイドルレジスタ、１０：比較器、１１：制御部。
【図１】
0004139579.tif 000002
【図２】
0004139579.tif 000003
【図３】
0004139579.tif 000004
【図４】
0004139579.tif 000005
【図５】
0004139579.tif 000006
【図６】
0004139579.tif 000007
【図７】
0004139579.tif 000008
【図８】
0004139579.tif 000009
【図９】
0004139579.tif 000010
【図１０】
0004139579.tif 000011
【図１１】
0004139579.tif 000012
【図１２】
0004139579.tif 000013