(58)【調査した分野】(Int.Cl.,DB名)
前記第1の待機状態レベルは、前記複数のタスクの各々について規定された前記待機状態時に必要なハードウエア回路についての情報に基づいて、決定される請求項1に記載の半導体装置。
前記複数のタスクの各々についての、前記許可できる復帰時間の情報及び前記許可できる待機状態レベルの情報を含む第1のテーブルを格納した第2の記憶部をさらに備え、
前記CPUは、
前記許可できる待機状態レベルの情報と前記許可できる復帰時間の情報を第1のテーブルから取得し、前記許可できる待機状態レベルのうち最も浅いレベルである第1の待機状態レベルに対応する復帰時間を前記第1の復帰時間とし、前記許可できる復帰時間の中で最短の許可できる復帰時間を前記第1の許可できる復帰時間として、前記比較を行う請求項1から3のいずれか1つに記載の半導体装置。
複数のタスクを実行可能なCPUと、前記CPUの制御の下、複数のハードウエア回路の各々の動作を制御して前記複数のハードウエア回路の消費電力を制御する電力制御回路と、を有し、動作状態と複数の待機状態レベルの待機状態とを取ることができる半導体装置の消費電力を制御する電力制御方法であって、
前記CPUが、
前記待機状態に遷移する直前に実行していた1以上のタスクについて設定された許可できる待機状態レベルから選択された最も浅いレベルである第1の待機状態レベルに対応する第1の復帰時間と、前記実行していた1以上のタスクについて設定された許可できる復帰時間から選択された最短の第1の許可できる復帰時間との比較を行い、
前記第1の復帰時間が前記第1の許可できる復帰時間以下と判定された場合、前記待機状態の待機状態レベルを前記第1の待機状態レベルとし、前記第1の復帰時間が前記第1の許可できる復帰時間よりも長いと判定された場合、前記待機状態の待機状態レベルを、前記第1の復帰時間よりも短い復帰時間を有する第2の待機状態レベルになるように変更して、前記電力制御回路を制御する、
電力制御方法。
複数のタスクを実行可能なCPUと、前記CPUの制御の下、複数のハードウエア回路の各々の動作を制御して前記複数のハードウエア回路の消費電力を制御する電力制御回路と、を有し、動作状態と複数の待機状態レベルの待機状態とを取ることができる半導体装置の消費電力を制御する電力制御方法を実行するプログラムであって、
前記待機状態に遷移する直前に実行していた1以上のタスクについて設定された許可できる待機状態レベルから選択された最も浅いレベルである第1の待機状態レベルに対応する第1の復帰時間と、前記実行していた1以上のタスクについて設定された許可できる復帰時間から選択された最短の第1の許可できる復帰時間との比較を行う機能と、
前記第1の復帰時間が前記第1の許可できる復帰時間以下と判定された場合、前記待機状態の待機状態レベルを前記第1の待機状態レベルとし、前記第1の復帰時間が前記第1の許可できる復帰時間よりも長いと判定された場合、前記待機状態の待機状態レベルを、前記第1の復帰時間よりも短い復帰時間を有する第2の待機状態レベルになるように変更して、前記電力制御回路を制御する機能と、
を前記CPUに実現させるためのプログラム。
前記第1の待機状態レベルは、前記複数のタスクの各々について規定された前記待機状態時に必要なハードウエア回路についての情報に基づいて、決定される請求項8に記載のプログラム。
【背景技術】
【0002】
従来より、情報処理装置に搭載される半導体装置において、省電力のために電力管理方法が採用されている。電力管理では、1又は2以上のハードウエア回路(以下、ハードウエアという)を含む半導体装置の動作状態を待機状態へ遷移させることにより、電力消費を低減させる電力制御が行われる。
【0003】
一般に、半導体装置の動作状態は、中央処理装置(以下、CPUという)においてソフトウエアプログラム(以下、プログラムという)が実行されている状態をいい、待機状態は、CPU等のハードウエアの動作が停止し、割り込み信号を待つ状態をいう。CPUにおいてプログラムの実行中に、例えば割り込み信号の入力待ちになると、半導体装置は待機状態に遷移する。そして、割り込み信号が発生すると、動作を停止していたハードウエアが起床され、半導体装置は、待機状態から動作状態へ遷移する。
待機状態にあるときに割り込み信号が発生して、半導体装置が待機状態から動作状態への遷移に要する時間が、復帰時間である。
【0004】
近年は、複数の待機状態を有し、待機状態の種類に応じて、停止させるハードウエアの数を異ならせて、より省電力を実現する電力管理手法も提案されている。そのような電力管理方法の場合、待機状態の中には、停止するハードウエアの数が少ない待機状態すなわち浅い待機状態もあれば、停止するハードウエアの数が多い待機状態すなわち深い待機状態もある。一般に、上述した復帰時間は、浅い待機状態から動作状態への復帰時間よりも深い待機状態から動作状態への復帰時間の方が長い。
【0005】
また、CPUにおいて実行されるプログラム中には複数の処理(以下、タスクという)があり、複数のタスクは、互いに処理内容が異なる。そのため、複数のタスクは、遷移可能な待機状態の深度及び許容できる復帰時間の長さにおいて、互いに異なっている。復帰時間が許容できないほど長い場合、そのタスクは、割り込み信号に対応した処理を実行できない。
【0006】
省電力のためには、可能な限り消費電力の低いすなわち深い待機状態に遷移した方が好ましいが、上述したように、深い待機状態ほど、待機状態から動作状態への復帰時間が長くなるという関係がある。
【0007】
そのため、複数のタスクが実行される場合、システムの破綻を生じないように、すなわち、再開されたタスクの実行時にハードウエアが確実に動作できるように、遷移する待機状態は、復帰時間の短い、安全な深度の待機状態に設定される。
【0008】
しかし、プログラムの動き等によって、実行中のタスクが増えたり減少したりする場合、実行中のタスクによっては、遷移する待機状態の復帰時間が長くてもよい場合がある。そのような場合であっても、遷移する待機状態は、設定された復帰時間の短い待機状態となる。そのため、実行中のタスクによっては、システムの破綻が生じないにも拘わらず、遷移する待機状態は、より深い待機状態にされないという問題がある。
【0009】
また、割り込み信号の種類と待機状態の深度を関連付けることも考えられるが、待機状態時に停止しているハードウエアが異なると復帰時間が長くなったりする場合があるため、割り込み信号の種類に応じて復帰時間を定めると、システムの破綻が生じる虞がある。
【発明を実施するための形態】
【0014】
以下、図面を参照して実施形態を説明する。
(構成)
図1は、本実施形態に係わる半導体装置のブロック図である。
【0015】
半導体装置1は、CPU11、ROM12、RAM13、割り込み制御回路14と、センサ15、アンテナ16及びハードウエア(H/W)制御回路17を有している。CPU11、ROM12、RAM13、割り込み制御回路14と、センサ15、アンテナ16及びハードウエア制御回路17は、バス18を介して互いに接続されている。
【0016】
半導体装置1は、例えば、スマートフォン、パーソナルコンピュータ、各種モバイル機器などの情報処理装置に搭載され、所望の機能の実現に応じたプログラムを実行する。
【0017】
CPU11は、ROM12に記憶されている複数のタスクを読み出して、RAM13へ展開して実行することにより、所定の機能のための処理を実行する。すなわち、CPU11は、複数のタスクを実行可能である。タスクは、例えば、センサの出力に応じた処理、通信処理等である。CPU11は、バス18を介して、CPU11以外の他のハードウエア回路(以下、単にハードウエアともいう)とのデータの送受信を行う。よって、情報処理装置に搭載された半導体装置1が動作状態にあるとき、実現される機能に応じて、CPU11において実行されるタスクは変化する。
【0018】
ROM12には、上述した複数のタスクだけでなく、後述する電力制御プログラム及び後述する各種情報を格納したテーブルの情報も記憶されている。
割り込み制御回路14は、外部等からの割り込み信号を受信する回路である。
【0019】
センサ15は、加速度を検知するためのセンサ及びそのための回路であり、複数のセンサを有していてもよい。
アンテナ16は、無線通信用のアンテナであり、例えばWiFi通信のためのアンテナ及びそのための回路である。
【0020】
CPU11は、センサ15の検知データを取得したり、アンテナ13との間でデータの送受信を行うことができる。
電力制御回路としてのハードウエア制御回路17は、半導体装置1内のハードウエア制御回路17以外のハードウエアの起動及び停止をさせるための制御を行う回路である。ハードウエア制御回路17は、CPU11からのコマンド信号に基づいてハードウエアの起動及び停止を行う。
【0021】
具体的には、CPU11は、バス18を介して電力制御コマンド信号をハードウエア制御回路17へ送信する。ハードウエア制御回路17は、バス18を介して、受信した電力制御コマンド信号に応じた電力制御信号を、電力制御を行うハードウエアへ供給する。各ハードウエアは、受信した電力制御信号に応じて、起動及び停止する。
【0022】
図1の場合、電力制御の対象となるハードウエアは、半導体装置1内の、割り込み制御回路14以外のハードウエアである。ここでは、CPU11、ROM12、RAM13、センサ15、及びアンテナ16が、電力制御の対象となるハードウエアである。
【0023】
ハードウエアの起動及び停止は、各ハードウエアへの電源の供給と停止を制御するパワーゲーティング、各ハードウエアへのクロック信号の供給と停止を制御するクロックゲーティング、等により行われる。パワーゲーティング等のための電力制御信号が、ハードウエア制御回路17から各ハードウエアへ供給される。すなわち、ハードウエア制御回路17は、複数のハードウエア回路の各々の動作を、パワーゲーティング、クロックゲーティングなどにより制御して複数のハードウエア回路の消費電力を制御する電力制御回路を構成する。
【0024】
図1に示す半導体装置1は、スマートフォンなどの情報処理装置に搭載されて、ユーザにより指定された機能に対応する各種タスクを実行するが、タスクの実行中に割り込み信号の入力待ちになると、半導体装置1は、電力管理機能により、省電力のための待機状態に遷移し、待機状態に遷移後、割り込み制御回路14からの割り込み信号を受信すると、待機状態から動作状態に遷移する。待機状態には、複数の待機状態レベルがあり、半導体装置1は、動作状態と複数の待機状態レベルの待機状態とを取ることができる装置である。
【0025】
半導体装置1の電力管理は、CPU11がROM12に格納された電力制御プログラムを読み出して実行することにより行われる。
はじめに、その電力制御プログラムPMPが実行されるときに用いられる各種テーブルについて説明する。CPU11は、待機状態遷移情報テーブルTBL1とタスク遷移情報テーブルTBL2をROM12から読み出してRAM13に展開する。
【0026】
なお、本実施の形態では、待機状態遷移情報テーブルTBL1とタスク遷移情報テーブルTBL2は、ROM12に格納されているが、半導体装置1の外部装置に格納しておき、通信により、CPU11が、待機状態遷移情報テーブルTBL1とタスク遷移情報テーブルTBL2の情報を取得するようにしてもよい。
【0027】
図2は、待機状態遷移情報テーブルの例を示す図である。
待機状態遷移情報テーブルTBL1は、待機状態と復帰時間の情報を格納する。なお、待機状態遷移情報テーブルTBL1における、待機状態毎の、停止するハードウエアに応じた復帰時間の情報は、待機状態毎の停止するハードウエアの情報(後述する待機状態別停止ハードウエアテーブルTBL11)を参照して、CPU11により決定される。すなわち、待機状態レベルに対応する復帰時間は、各待機状態レベルにおける、停止するハードウエア回路の情報に基づいて決定される。
【0028】
待機状態A,B,C,Dの中では、待機状態Aの深度が待機状態B,C,Dの深度よりも浅く、待機状態Dの深度が待機状態A,B,Cの深度よりも深い。アルファベットは、待機状態の深度のレベルすなわち待機状態レベルを示し、待機状態遷移情報テーブルTBL1の上から下に向かって(アルファベット順に)待機状態の深度は深くなっている。
上述したように待機状態遷移情報テーブルTBL1における復帰時間は、待機状態別停止ハードウエアテーブルTBL11に基づいて決定される。
【0029】
図3は、待機状態毎の、停止するハードウエアの情報を記憶する待機状態別停止ハードウエアテーブルの例を示す図である。
図3に示す待機状態別停止ハードウエアテーブルTBL11は、ROM12に格納される。CPU11は、待機状態別停止ハードウエアテーブルTBL11をROM12から読み出してRAM13に展開する。待機状態別停止ハードウエアテーブルTBL11には、待機状態毎に、停止するハードウエアの情報が格納されている。
【0030】
停止するハードウエアには、CPU11が含まれ、さらにCPU11以外のROM12,RAM13,センサ15、アンテナ16等のハードウエアも含まれる。
図3におけるハードウエア(H/W)1,2,3,4,・・・は、CPU11以外のROM12等のハードウエアである。
図3では、停止するハードウエアを○で示し、停止しないハードウエアを×で示している。
【0031】
停止するハードウエアとして、CPU11とその他のハードウエアが、待機状態別停止ハードウエアテーブルTBL11に設定される。
図3の場合、待機状態Aでは、CPU11は停止するが、ハードウエア1、2,3は、停止しないことを示しており、待機状態Bでは、CPU11とハードウエア1は停止するが、ハードウエア2,3は、停止しないことを示しており、待機状態Cでは、CPU11とハードウエア1、2は停止するが、ハードウエア3は、停止しないことを示しており、待機状態Dでは、CPU11とハードウエア1、2、3は停止することを示している。
【0032】
待機状態毎の復帰時間は、停止される1又は2以上のハードウエアの仕様等に応じて、予め定まる。すなわち、停止された1又は2以上のハードウエアが起床されて、起床された1又は2以上のハードウエアが正常動作状態になるまでの時間に基づいて決定される。
【0033】
よって、CPU11は、ROM12に記録された
図3に示す待機状態別停止ハードウエアテーブルTBL11を参照して、待機状態毎の、復帰時間を決定あるいは算出する。すなわち、半導体装置1は、複数の待機状態レベルの各々についての、停止するハードウエア回路の情報を記憶した待機状態別停止ハードウエアテーブルTBL11を有し、待機状態に遷移する直前に実行していたタスクの待機状態レベルに対応する復帰時間は、その待機状態レベルに基づいて、待機状態別停止ハードウエアテーブルTBL11を参照して、決定される。
【0034】
なお、CPU11は、ROM12に
図3に示す待機状態別停止ハードウエアテーブルTBL11を格納しなくても、待機状態に応じた決定された復帰時間が予め設定された、
図2に示すような待機状態遷移情報テーブルTBL1だけをROM12に格納するようにしてもよい。
【0035】
さらになお、待機状態別停止ハードウエアテーブルTBL11を、外部のサーバ等から通信により、CPU11が取得するようにしてもよい。
図4は、タスク遷移情報テーブルの例を示す図である。
【0036】
タスク遷移情報テーブルTBL2は、電力制御プログラムPMPの制御対象となるタスクの遷移情報を格納する。
タスク遷移情報テーブルTBL2には、CPU11において実行可能な全ての又は一部のタスクの遷移情報が格納される。タスク遷移情報テーブルTBL2には、電力制御プログラムPMPの制御対象となる1又は2以上のタスクの遷移情報が格納される。
【0037】
タスク遷移情報テーブルTBL2は、タスク、許可できる待機状態と、許可できる復帰時間の情報を格納する。なお、タスク遷移情報テーブルTBL2における、タスク毎の、許可できる待機状態の情報は、タスク毎の待機状態時に必要なハードウエアの情報(後述するタスク別必要ハードウエアテーブルTBL21)を参照して、CPU11により決定される。
【0038】
タスク毎に、待機状態時に必要なハードウエアは、予め決まっている。例えば、あるタスクは、待機状態時には、アンテナ16だけは動作していなければならないとすれば、アンテナ16は、そのタスクの待機状態時に動作していなければならないハードウエア、すなわち待機状態時に必要なハードウエアである。
【0039】
従って、CPU11は、タスク毎の待機状態時に必要なハードウエアの情報に基づいて、許可できる待機状態を決定することができる。すなわち、半導体装置1は、複数のタスクの各々についての、許可できる復帰時間の情報を格納した記憶部としてのタスク遷移情報テーブルTBL2を有し、待機状態に遷移する直前に実行していたタスクの待機状態レベルは、複数のタスクの各々について規定された待機状態時に必要なハードウエア回路についての情報に基づいて、決定される。
【0040】
また、許可できる復帰時間も、タスク毎に、当該タスクの処理内容に応じて予め決まっている。例えば、あるタスクは、割り込み信号を受信してから所定の時間以内に、所定の処理を実行しなければならないとすれば、許可できるすなわち許容できる復帰時間は、必然的に決定される。
【0041】
図4の場合、タスク1は、許可できる待機状態は待機状態Cであり、許可できる復帰時間が5msecであることを示しており、タスク2は、許可できる待機状態は待機状態Cであり、許可できる復帰時間が3msecであることを示しており、タスク3は、許可できる待機状態は待機状態Dであり、許可できる復帰時間が7msecであることを示しており、タスク4は、許可できる待機状態は待機状態Cであり、許可できる復帰時間が10msecであることを示している。
【0042】
例えば、タスク2に関しては、所定の仕様から、許可できる復帰時間は3msecであることが設定される。すなわち、タスク2の処理についての仕様から、半導体装置1が待機状態から復帰状態に戻るのに3msec以内でなければならないので、タスク2についての許可できる復帰時間は、3msecと設定される。
【0043】
このようにして、各タスクについて、許可できる待機状態すなわち待機状態の深度と、許可できる復帰時間とが、タスク遷移情報テーブルTBL2に格納あるいは決定されて設定される。
【0044】
上述したように、CPU11は、タスク遷移情報テーブルTBL2におけるタスク毎の許可できる待機状態を、待機状態時に必要なハードウエアの情報を参照して決定する。待機状態時に必要なハードウエアの情報は、タスク別必要ハードウエアテーブルに格納されている。
【0045】
図5は、タスク毎の、待機状態時に動作していることが必要なハードウエアの情報を記憶するタスク別必要ハードウエアテーブルの例を示す図である。
図5に示すタスク別必要ハードウエアテーブルTBL21は、ROM12に格納される。CPU11は、タスク別必要ハードウエアテーブルTBL21をROM12から読み出してRAM13に展開する。
【0046】
図5に示すタスク別必要ハードウエアテーブルTBL21は、タスクと、待機状態時に動作していることが必要なハードウエアとの情報を格納する。そして、タスク別必要ハードウエアテーブルTBL21には、タスク毎に、待機状態時に動作していることが必要なハードウエアの情報が格納されている。
図5では、待機状態時に動作していることが必要なハードウエアを○で示し、待機状態時に動作していることが必要でないハードウエアを×で示している。
【0047】
図5の場合、タスク1と2は、待機状態時に動作していることが必要なハードウエアはハードウエア3であり、タスク3は、待機状態時に動作していることが必要なハードウエアはCPU11とハードウエア1、2及び3ではないことを示しており、タスク4は、待機状態時に動作していることが必要なハードウエアはハードウエア3であることを示している。
【0048】
CPU11は、
図5に示すタスク別必要ハードウエアテーブルTBL21に基づいて、各タスクについて、待機状態時に動作していることが必要なハードウエアが停止しない待機状態を、
図3に示す待機状態別停止ハードウエアテーブルTBL11を参照して、決定する。CPU11は、各タスクについて決定した待機状態を、
図4における、各タスクについての、許可できる待機状態として、タスク遷移情報テーブルTBL2に設定する。このとき、
図4中の許可できる待機状態は、各タスクにおいて、
図3中の待機状態のうち
図5のタスク別必要ハードウエアテーブルTBL21の要件を満たすものが複数ある場合、復帰時間が最長のものとなるように待機状態遷移情報テーブルTBL1を参照して、設定される。
従って、CPU11は、ROM12に記録された
図5に示すタスク別必要ハードウエアテーブルTBL21を参照して、許可できる待機状態を決定あるいは算出する。
【0049】
以上のように、ここでは、半導体装置1は、複数のタスクの各々について規定された、待機状態時に動作していることが必要なハードウエア回路についての情報を格納した記憶部であるタスク別必要ハードウエアテーブルTBL21を有し、後述するように、タスク別必要ハードウエアテーブルTBL21に記憶された、待機状態時に動作していることが必要なハードウエア回路についての情報に基づいて、実行していたタスクの待機状態レベルが決定される。
【0050】
なお、CPU11は、ROM12に
図5に示すタスク別必要ハードウエアテーブルTBL21を格納しないで、タスク毎の許可できる待機状態が予め設定された、
図4に示すようなタスク遷移情報テーブルTBL2だけをROM12に格納するようにしてもよい。
【0051】
さらになお、タスク別必要ハードウエアテーブルTBL21を、外部のサーバ等から通信により、CPU11が取得するようにしてもよい。このようにすれば、タスクの処理内容の変更に容易に対応可能となる。
(作用)
上述した半導体装置1が、電力制御プログラムPMPにより、動作状態から待機状態に遷移するときの動作について説明する。
【0052】
図6は、半導体装置1のCPU11において複数のタスクが実行中に、割り込み信号の入力待ちとなって、ハードウエアが待機状態に遷移するときの電力制御プログラムPMPの処理のフローチャートである。
【0053】
CPU11は、半導体装置1のハードウエアが動作状態から待機状態に遷移するときに
図6の電力制御プログラムPMPを実行する。電力制御プログラムPMPは、ROM12から読み出されて実行される。
【0054】
はじめに、CPU11は、それまで実行していたタスクについてのタスク情報を、タスク遷移情報テーブルTBL2から取得する(S1)。
CPU11は各種タスクを実行可能であり、実行中のタスクの種類及び数は、リアルタイムで変化している。待機状態になる直前まで、例えば、タスク1、2、3、4が実行中であったときは、CPU11は、タスク遷移情報テーブルTBL2からタスク1、2、3、4についてのタスク遷移情報を、取得する。
【0055】
すなわち、タスク遷移情報テーブルTBL2は、複数のタスクの各々についての、許可できる待機状態の情報を含む。そして、S1の処理は、待機状態に遷移する直前に実行していた1以上のタスクについての許可できる待機状態の待機状態レベルと、実行していたタスクについて設定された許可できる復帰時間の情報を、タスク遷移情報テーブルTBL2から取得するタスク情報取得部を構成する。
【0056】
CPU11は、取得したタスク情報から、許可できる最も浅い深度の待機状態の情報と、最短の許可できる復帰時間の情報を取得する(S2)。
例えば、
図4の場合、タスク1〜4の中で、許可できる最も浅い深度の待機状態の情報として待機状態Cの情報が選択されて取得され、さらに、最も短い許可できる復帰時間である3msecの情報が選択されて取得される。
【0057】
次に、CPU11は、待機状態遷移情報テーブルTBL1を参照して、S2で選択されて取得された待機状態についての、起床に掛かる復帰時間の情報を取得する(S3)。
例えば、
図4の場合、S2で選択されて取得された、許可できる待機状態がCであるとき、待機状態遷移情報テーブルTBL1における待機状態Cについての復帰時間である8msecの情報が取得される。
【0058】
すなわち、半導体装置1は、複数の待機状態レベルの各々についての復帰時間を記憶した待機状態遷移情報テーブルTBL1を有する。待機状態に遷移する直前に実行していたタスクの許可できる待機状態の待機状態レベルに対応する復帰時間は、その待機状態レベルに基づいて、待機状態遷移情報テーブルTBL1を参照して、決定される。
【0059】
次に、CPU11は、S3で取得された、ハードウエアの起床に掛かる復帰時間が、S2で取得された、許可できる復帰時間未満かを判定する(S4)。
例えば、
図2と
図4の場合、S3で取得された復帰時間が8msecで、S2で取得された、許可できる復帰時間は3msecであるので、S3で取得された復帰時間は、S2で取得された、許可できる復帰時間未満ではないので(S4:NO)、処理は、S5へ移行する。
【0060】
すなわち、S4でNOの場合は、実行していた複数のタスク中において最短の許可できる復帰時間について設定されている待機状態(上記の場合は待機状態C)では、その最短の許可できる復帰時間(3msec)内で、半導体装置1が待機状態から動作状態に遷移しても、復帰して実行を再開したタスクが正常に動作をしない虞がある。
【0061】
S4でNOの場合は、CPU11は、遷移する待機状態を、より復帰時間が短いものすなわちより浅い待機状態に変更する(S5)。
例えば、
図4の場合、待機状態Cの次に深度の浅い待機状態Bが、遷移する待機状態として仮に選択される。
【0062】
S5の後、処理は、S3に戻り、CPU11は、S5で変更されて選択された待機状態の情報から、待機状態遷移情報テーブルTBL1を参照して、待機状態から動作状態へ復帰するために掛かる復帰時間の情報を取得する(S3)。S5で選択された待機状態はBであるので、
図2より、待機状態Bについての復帰時間である2msecの情報が取得される。
【0063】
次に、CPU11は、S3で取得された復帰時間が、S2で取得された、許可できる復帰時間未満かを判定する(S4)。上記の例の場合、S3で取得された復帰時間が2msecで、S2で取得された、許可できる復帰時間が3msecであるので、復帰時間は許可できる復帰時間未満となる(S4:YES)。
【0064】
CPU11は、半導体装置1内の1又は2以上のハードウエアを、S2あるいはS5で選択された待機状態へ遷移する(S6)。
S2で選択された待機状態は、各タスクの許可できる待機状態の中で最短の復帰時間の待機状態であり、S5で変更されて選択される待機状態は、より復帰時間が短い待機状態である。
【0065】
S6では、CPU11は、S2あるいはS5で選択された待機状態にするための電力制御コマンドをハードウエア制御回路17へ送信する。
よって、CPU11は、待機状態に遷移する直前に実行していた1以上のタスクについて設定された許可できる待機状態レベルから選択された最も浅いレベルである待機状態レベルに対応する復帰時間(上記の例では8msec)と、実行していた1以上のタスクについて設定された許可できる復帰時間から選択された最短の許可できる復帰時間(上記の例では3msec)との比較を行う。S4では、実行していたタスクについての許可できる復帰時間の中で最短の復帰時間を用いて、その比較を行う。
【0066】
そして、CPU11は、S4において、実行していたタスクの許可できる待機状態の待機状態レベルに対応する復帰時間(上記の例では8msec)が、実行していたタスクについて設定された許可できる復帰時間(上記の例では3msec)よりも長いと判定された場合、待機状態の待機状態レベルを、実行していたタスクの許可できる待機状態の待機状態レベルに対応する復帰時間よりも短い復帰時間(上記の例では2msec)を有する待機状態レベルになるように変更して、ハードウエア制御回路17を制御する。
【0067】
その結果、半導体装置1内のハードウエアは、S2あるいはS5で選択された待機状態に遷移する(S6)。
半導体装置1が待機状態になった後、割り込み信号が発生すると、割り込み制御回路14によりその割り込みが検出されて、半導体装置1は動作状態に遷移する。
【0068】
以上のように、上述した実施の形態によれば、実行中のタスクに応じて、可能な限り深い待機状態になるように電力制御を行う半導体装置及び電力制御方法を提供することができる。
【0069】
なお、複数の動作モードを有する半導体装置においては、動作モード毎に、上述した電力制御が実行されるようにしてもよい。
半導体装置1には、複数の動作モードを有して、指定された複数の動作モードで実行可能な半導体装置があり、そのような半導体装置では、各動作モードにおいて、実行されるタスクが異なる。
【0070】
そのような半導体装置の場合、動作モード毎に上述した電力制御が実行されるようにすれば、動作モード毎に、実行されるタスクが異なっても、各動作モードにおいて、実行中のタスクに応じて、可能な限り深い待機状態になるように電力制御を行うことができる。
【0071】
次に変形例について説明する。
(変形例1)
上述した実施の形態では、
図2に示す待機状態遷移情報テーブルTBL1と
図3に示す待機状態別停止ハードウエアテーブルTBL11とは別個のテーブルであるが、待機状態遷移情報テーブルTBL1と待機状態別停止ハードウエアテーブルTBL11を一つにしてもよい。
【0072】
図7は、待機状態遷移情報テーブルTBL1と待機状態別停止ハードウエアテーブルTBL11を一つにした待機状態遷移情報テーブルTBL12の例を示す図である。待機状態遷移情報テーブルTBL12はROM12に登録される。
【0073】
図7のような待機状態遷移情報テーブルTBL12においても、待機状態毎の復帰時間は、停止するハードウエアの情報から決定するようにしてもよい。
(変形例2)
上述した実施の形態及び変形例1では、
図4に示すタスク遷移情報テーブルTBL2と
図5に示すタスク別必要ハードウエアテーブルTBL21とは別個のテーブルであるが、タスク遷移情報テーブルTBL2とタスク別必要ハードウエアテーブルTBL21を一つにしてもよい。
【0074】
図8は、タスク遷移情報テーブルTBL2とタスク別必要ハードウエアテーブルTBL21を一つにしたタスク遷移情報テーブルTBL22の例を示す図である。タスク遷移情報テーブルTBL22はROM12に登録される。
【0075】
図8のようなタスク遷移情報テーブルTBL22においても、タスク毎の許可できる待機状態は、
図5に示す待機状態時に動作していることが必要なハードウエアの情報と、
図3に示す待機状態別停止ハードウエアテーブルTBL11又は
図7に示す待機状態遷移情報テーブルTBL12と、から復帰時間が最長となる待機状態レベルを有する待機状態となるように決定するようにしてもよい。
(変形例3)
上述した実施の形態及び変形例1及び2のタスク遷移情報テーブルでは、タスク毎に、1つの許可できる待機状態と、1つの許可できる復帰時間が設定されるが、タスクの実行状態に応じて、複数の許可できる待機状態と、複数の許可できる復帰時間が設定されるようにしてもよい。例えば通信処理において、開始時は高速な通信に対応できるように短い復帰時間、浅い待機状態しか許可できないが、後に通信間隔が長くなり、長い復帰時間、深い待機状態が許可できるようになる。
【0076】
図9は、本変形例3に関わるタスク遷移情報テーブルTBL23の例を示す図である。
図9の場合、タスク2については、許可できる待機状態としてCとDの2つが設定され、許可できる復帰時間は、3msecと10msecの2つが設定されている。
さらに、設定された2つのいずれが使用されるかは、タスク遷移情報テーブルTBL23に設けられたフラグの状態によって、決定される。
【0077】
図9の場合、フラグは「1」と「0」のいずれかを取り得、そのフラグの値に応じて、そのタスクについての許可できる待機状態と許可できる復帰時間が指定される。例えば、フラグが「0」のときは、タスク2については、許可できる待機状態はCに、許可できる復帰時間は3msecに設定され、フラグが「1」のときは、タスク2については、許可できる待機状態はDに、許可できる復帰時間は10msecに設定される。
【0078】
なお、
図9では、複数のタスクの中の1つのタスクについてフラグが設定されているが、1以上のタスクに対して、許可できる待機状態と許可できる復帰時間をそれぞれ2つ設定してもよい。
さらになお、ここでは、フラグは、2つの状態を取り得るが、3つ以上の状態を取り得る情報でもよく、その場合は、フラグにより、3つ以上の許可できる待機状態と3つ以上の許可できる復帰時間の情報から、1つの許可できる待機状態と1つの許可できる復帰時間が指定可能となる。
【0079】
すなわち、タスク遷移情報テーブルTBL23は、複数のタスクの少なくとも1つについて、許可できる待機状態と許可できる復帰時間との情報を、複数記憶し、S1の処理において、複数の許可できる待機状態と許可できる復帰時間の情報から、フラグによって指定された許可できる待機状態と許可できる復帰時間が取得される。
このようにすれば、タスクの実行状態に応じて、許可できる待機状態と、許可できる復帰時間を変更することができる。
【0080】
以上のように、上述した実施の形態及び各変形例によれば、実行中のタスクに応じて、可能な限り深い待機状態になるように電力制御を行う半導体装置及び電力制御方法を提供することができる。
【0081】
なお、以上説明した動作を実行するプログラムは、コンピュータプログラム製品として、フレキシブルディスク、CD−ROM等の可搬媒体や、ハードディスク等の記憶媒体の非一時的なコンピュータ読み出し可能な媒体に、その全体あるいは一部が記録され、あるいは記憶されている。そのプログラムがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。あるいは、そのプログラムの全体あるいは一部を通信ネットワークを介して流通させ、または提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロードして半導体装置に記憶させたり、あるいは記録媒体から半導体装置に記憶させることで、容易に本実施の形態の半導体装置及び電力制御方法を実現することができる。
【0082】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として例示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。