(57)【要約】 【課題】デバイスの動作の途中で電源が喪失してしまうことを防止可能な制御装置、制御方法、プログラムおよび半導体装置を提供する。【解決手段】実施形態の制御装置は、デバイスの動作を制御する制御装置であって、見積部と出力部とを備える。見積部は、デバイスの動作を要求する動作要求により要求されるデバイスの動作が完了するまでに、デバイスと制御装置とを含むシステム全体で必要な第２電力量を見積もる。出力部は、動作要求を受け付けた時点での、システムに対して電力を供給する電源が供給可能な第１電力量が、第２電力量を上回る場合は、当該動作要求により要求されるデバイスの動作を開始させる制御命令を出力する。【選択図】図１
2013225297.tif 000002
【特許請求の範囲】
【請求項１】
デバイスの動作を制御する制御装置であって、
前記デバイスの動作を要求する動作要求により要求される前記デバイスの動作が完了するまでに、前記デバイスと前記制御装置とを含むシステム全体で必要な第２電力量を見積もる見積部と、
前記動作要求を受け付けた時点での、前記システムに対して電力を供給する電源が供給可能な第１電力量が、前記第２電力量を上回る場合は、当該動作要求により要求される前記デバイスの動作を開始させる制御命令を出力する出力部と、を備える、
制御装置。
【請求項２】
前記デバイスの動作の種類と、前記デバイスの動作に必要な第３電力量と、前記デバイスの動作を開始してから完了するまでの動作時間とを対応付けて記憶する第１記憶部をさらに備え、
前記見積部は、前記動作要求により要求される前記デバイスの動作に対応する前記第３電力量と前記動作時間とを前記第１記憶部から読み出し、その読み出した前記第３電力量と前記動作時間とを用いて、前記第２電力量を見積もる、
請求項１の制御装置。
【請求項３】
前記見積部は、前記デバイスの動作以外に必要な電力として予め設定された設定電力と前記動作時間との乗算により得られる第４電力量と、前記第３電力量との和を、前記第２電力量として見積もる、
請求項２の制御装置。
【請求項４】
前記デバイスの動作が開始された後の第１のタイミングで、前記見積部は、前記第１のタイミングから前記デバイスが動作を完了するまでに前記システム全体で必要な第５電力量を見積もり、
前記出力部は、前記第１のタイミングにおける前記第１電力量が前記第５電力量を下回る場合は、前記システムの消費電力を低減する制御を行う、
請求項１の制御装置。
【請求項５】
前記デバイスの動作が開始された後、当該デバイスを示す第１デバイスとは異なる第２デバイスの動作を要求する第２動作要求を受け付けた場合、前記見積部は、前記第２動作要求を受け付けた時点から前記第１デバイスおよび前記第２デバイスが動作を完了するまでに前記システム全体で必要な第６電力量を見積もり、
前記出力部は、前記第２動作要求を受け付けた時点での前記第１電力量が前記第６電力量を上回る場合は、前記第２デバイスの動作を開始させる第２制御命令を出力し、前記第２動作要求を受け付けた時点での前記第１電力量が前記第６電力量を下回る場合は、前記第２制御命令を出力しない、
請求項１の制御装置。
【請求項６】
前記動作要求を記憶可能な第２記憶部をさらに備え、
前記出力部は、前記第１電力量が前記第２電力量を下回る場合は、受け付けた前記動作要求により要求される前記デバイスの動作を開始させる前記制御命令を出力せずに、その受け付けた前記動作要求を前記第２記憶部に書き込む制御を行う、
請求項１の制御装置。
【請求項７】
前記動作要求が前記第１記憶部に書き込まれた後の第２のタイミングにおいて、前記見積部は、前記第２記憶部に記憶された前記動作要求により要求される前記デバイスの動作が完了するまでに前記システム全体で必要な前記第２電力量を見積もり、
前記出力部は、前記第２のタイミングにおける前記第１電力量が、前記第２のタイミングで前記見積部により見積もられた前記第２電力量を上回る場合は、前記第２記憶部に記憶された前記動作要求により要求される前記デバイスの動作を開始させる前記制御命令を出力する一方、前記第２のタイミングにおける前記第１電力量が、前記第２のタイミングで前記見積部により見積もられた前記第２電力量を下回る場合は、前記第２記憶部に記憶された前記動作要求により要求される前記デバイスの動作を開始させる前記制御命令を出力することはせず、当該動作要求を保留する制御を行う、
請求項６の制御装置。
【請求項８】
前記電源は、電気以外のエネルギーを電気エネルギーに変換するエネルギー変換部と、前記エネルギー変換部で変換された電気エネルギーを蓄える蓄電部とを有する、
請求項１の制御装置。
【請求項９】
デバイスの動作の開始を要求する動作要求により要求される前記デバイスの動作が完了するまでに、前記デバイスと、前記デバイスの動作を制御する制御装置とを含むシステム全体で必要な第２電力量を見積もる見積ステップと、
前記動作要求を受け付けた時点での、前記システムに対して電力を供給する電源が供給可能な第１電力量が、前記第２電力量を上回る場合は、当該動作要求により要求される前記デバイスの動作を開始させる制御命令を出力する出力ステップと、を含む、
制御方法。
【請求項１０】
デバイスの動作を制御する制御装置に、
前記デバイスの動作の開始を要求する動作要求により要求される前記デバイスの動作が完了するまでに、前記デバイスと前記制御装置とを含むシステム全体で必要な第２電力量を見積もる見積ステップと、
前記動作要求を受け付けた時点での、前記システムに対して電力を供給する電源が供給可能な第１電力量が、前記第２電力量を上回る場合は、当該動作要求により要求される前記デバイスの動作を開始させる制御命令を出力する出力ステップと、を実行させるためのプログラム。
【請求項１１】
デバイスの動作を制御する半導体装置であって、
前記デバイスの動作を要求する動作要求により要求される前記デバイスの動作が完了するまでに、前記デバイスと前記半導体装置とを含むシステム全体で必要な第２電力量を見積もる見積部と、
前記動作要求を受け付けた時点での、前記システムに対して電力を供給する電源が供給可能な第１電力量が、前記第２電力量を上回る場合は、当該動作要求により要求される前記デバイスの動作を開始させる制御命令を出力する出力部と、を備える、
半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、制御装置、制御方法、プログラムおよび半導体装置に関する。
【背景技術】
【０００２】
従来、自然エネルギーを電力に変換する発電装置で発電された電力を補助的に利用して動作するシステムが知られている。このようなシステムにおいて、タスク処理に必要な電力量が、発電装置で発電された電力を蓄える補助電源から供給可能である場合にのみ、そのタスク処理を動作させる技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２５９３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、タスク処理が完了するまでの間において、タスク処理に必要な電力以外にシステムで必要とされる電力（例えばメモリ等で消費される電力等）については一切考慮していないので、タスク処理の途中で電源が喪失してしまうおそれもある。
【０００５】
本発明が解決しようとする課題は、デバイスの動作の途中で電源が喪失してしまうことを防止可能な制御装置、制御方法、プログラムおよび半導体装置を提供することである。
【課題を解決するための手段】
【０００６】
実施形態の制御装置は、デバイスの動作を制御する制御装置であって、見積部と出力部とを備える。見積部は、デバイスの動作を要求する動作要求により要求されるデバイスの動作が完了するまでに、デバイスと制御装置とを含むシステム全体で必要な第２電力量を見積もる。出力部は、動作要求を受け付けた時点での、システムに対して電力を供給する電源が供給可能な第１電力量が、第２電力量を上回る場合は、当該動作要求により要求されるデバイスの動作を開始させる制御命令を出力する。
【０００７】
実施形態の制御方法は、見積ステップと制御ステップとを含む。見積ステップは、デバイスの動作を要求する動作要求により要求されるデバイスの動作が完了するまでに、デバイスと制御装置とを含むシステムで必要な第２電力量を見積もる。制御ステップは、動作要求を受け付けた時点での、システムに対して電力を供給する電源が供給可能な第１電力量が、第２電力量を上回る場合は、当該動作要求により要求されるデバイスの動作を開始させる制御命令を出力する。
【０００８】
実施形態のプログラムは、デバイスの動作を制御する制御装置に、見積ステップと制御ステップとを実行させるプログラムである。見積ステップは、デバイスの動作を要求する動作要求により要求されるデバイスの動作が完了するまでに、デバイスと制御装置とを含むシステム全体で必要な第２電力量を見積もる。制御ステップは、動作要求を受け付けた時点での、システムに対して電力を供給する電源が供給可能な第１電力量が、第２電力量を上回る場合は、当該動作要求により要求されるデバイスの動作を開始させる制御命令を出力する。
【０００９】
実施形態の半導体装置は、デバイスの動作を制御する半導体装置であって、見積部と出力部とを備える。見積部は、デバイスの動作を要求する動作要求により要求されるデバイスの動作が完了するまでに、デバイスと半導体装置とを含むシステム全体で必要な第２電力量を見積もる。出力部は、動作要求を受け付けた時点での、システムに対して電力を供給する電源が供給可能な第１電力量が、第２電力量を上回る場合は、当該動作要求により要求されるデバイスの動作を開始させる制御命令を出力する。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態のシステムの機能構成例を示すブロック図。
【図２】第１実施形態の第１記憶部に記憶されたデータの一例を示す図。
【図３】第１実施形態のデバイスアクセス制御部の動作例を示すフローチャート。
【図４】第１実施形態の判断処理の例を説明するための概念図。
【図５】第２実施形態のデバイスアクセス制御部の動作例を示すフローチャート。
【図６】第２実施形態の第２判断処理の例を説明するための概念図。
【図７】第３実施形態のデバイスアクセス制御部の動作例を示すフローチャート。
【図８】第４実施形態のシステムの機能構成例を示すブロック図。
【図９】第４実施形態のデバイスアクセス制御部の動作例を示すフローチャート。
【図１０】第４実施形態のデバイスアクセス制御部の動作例を示すフローチャート。
【図１１】変形例のデバイスアクセス制御部の動作例を示すフローチャート。
【図１２】変形例のシステムの構成例を示すブロック図。
【図１３】変形例のシステムの構成例を示すブロック図。
【図１４】変形例の第１電力量の経時的変化を模式的に示す図。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照しながら、本発明に係る制御装置、制御方法、プログラムおよび半導体装置の実施の形態を詳細に説明する。
【００１２】
（第１実施形態）
図１は、第１実施形態のシステム１００の機能構成例を示すブロック図である。図１に示すように、システム１００は、電源１０と、複数のデバイス２０と、ユーザープロセス３０と、デバイスアクセス制御部４０と、第１記憶部５０と、複数のデバイス２０と１対１に対応する複数のデバイスドライバ６０とを備える。なお、１つのデバイスドライバ６０が複数のデバイスと対応する構成であってもよい。
【００１３】
電源１０は、システム１００に対して供給する電力の供給源である。電源１０は、エネルギー変換部１１と、蓄電部１２とを有する。エネルギー変換部１１は、電源１０の外部から受け付けた電気以外のエネルギーを電気エネルギー（電力）に変換する。エネルギー変換部１１は、例えば太陽電池（太陽光パネル）や電磁波を受け付けて発電する無線などを含むがこれには限られない。また、蓄電部１２は、エネルギー変換部１１で変換された電気エネルギー（電力）を蓄える。蓄電部１２は、例えばバッテリやキャパシタなどで構成され得る。本実施形態では、蓄電部１２はキャパシタで構成される。
【００１４】
デバイス２０は、電源１０から電力を供給される装置であり、例えばＮＡＮＤ型フラッシュメモリ、ＤＶＤ（Digital  Versatile  Disk）ドライブなどのディスクドライブ、ＵＳＢメモリなどで構成され得る。デバイス２０は、システム１００に内蔵されるものであってもよいし、ＵＳＢメモリなどのようにシステム１００に接続（外付け）されるものであってもよい。
【００１５】
ユーザープロセス３０は、システム１００のＣＰＵが実行中のアプリケーションプログラムであり、デバイスアクセス制御部４０に対して各種の処理の実行を依頼する。例えばユーザープロセス３０は、デバイス２０の動作を要求する動作要求をデバイスアクセス制御部４０に送信する。
【００１６】
デバイスアクセス制御部４０は、ユーザープロセス３０から動作要求を受け付けた場合、所定の条件を満たせば、要求されたデバイスの動作を開始させる制御命令を、当該デバイスに対応するデバイスドライバ６０へ出力する。一方、所定の条件を満たさなければ、デバイスの動作を開始することはできない旨を示すエラー通知を、動作要求に対する応答としてユーザープロセス３０へ出力する。この詳細な内容については後述する。
【００１７】
図１に示すように、デバイスアクセス制御部４０は、検出部４１と見積部４２と出力部４３とを有する。検出部４１は、電源１０が供給可能な電力量を示す第１電力量を検出する。本実施形態では、検出部４１は、蓄電部１２に蓄えられた電力量を、第１電力量として検出するが、これに限らず、例えば直近のエネルギー変換部１１で変換された電気エネルギー量（電力量）の平均値を加味して第１電力量を検出することもできる。
【００１８】
見積部４２は、動作要求により要求されるデバイス２０の動作が完了するまでにシステム１００全体で必要な電力量を示す第２電力量を見積もる。より具体的には、以下のとおりである。ここでは、第１記憶部５０は、デバイス２０の動作の種類と、デバイス２０の動作に必要な電力量を示す第３電力量と、デバイス２０の動作を開始してから完了するまでの動作時間とを対応付けて記憶する。図２の例では、第１記憶部５０は、デバイス２０を識別するデバイス名と、動作の種別と、第３電力量と、動作時間とを対応付けて記憶する。図２の例では、一例として、ＮＡＮＤの読み出し動作（Read）およびＮＡＮＤの書き込み動作（Write）の各々に対応する第３電力量と動作時間とが例示されているが、これに限られるものではない。なお、図２のＮＡＮＤの情報には、ＮＡＮＤデバイスの1ページ分のデータの読み書きに必要な（単位動作に必要な）電力量と時間が記憶されているため、ＮＡＮＤデバイス動作の電力量と時間を求めるためには、動作要求の引数として渡される情報を元に、読み出しまたは書込みのデータ量を計算し、何ページ分に相当するかを求めることにより、実際の電力量が計算される。例えば、１ページが２Ｋバイトであるとし、デバイス読み出し要求の引数としてデータサイズが８Ｋバイトであれば、４ページ分の読み出しとなるため、電力量は４０ｎＷｓ、読み出し時間は１２０ｎｓと見積もればよい。図２の例では、デバイス２０の単位動作に必要な電力量を第３電力量とし、デバイス２０の単位動作に必要な時間を動作時間としているが、これに限らず、例えばデバイス２０の動作に必要な全体の電力量を第３電力量とし、デバイス２０の動作を開始してから完了するまでの全体の時間を動作時間とすることもできる。説明の便宜上、以下では、第１記憶部２０は、デバイスの動作の種類と、デバイス２０の動作に必要な全体の電力量を示す第３電力量と、デバイス２０の動作を開始してから完了するまでの全体の時間を示す動作時間とを対応付けて記憶しているものとする。
【００１９】
見積部４２は、動作要求により要求されるデバイスの動作に対応する第３電力量と動作時間とを第１記憶部５０から読み出し、その読み出した第３電力量と動作時間とを用いて、第２電力量を見積もる。より具体的には、見積部４２は、システム１００においてデバイス２０の動作以外に必要な電力として予め設定された設定電力と、第１記憶部５０から読み出した動作時間との乗算により得られる電力量を示す第４電力量と、第１記憶部５０から読み出した第３電力量との和から、第２電力量を見積もる。設定電力は、例えばＣＰＵ、メモリなどの電力や、待機状態におけるデバイス２０で消費される電力などを加味するとともにある程度の余裕を持たせた値に設定することができる。要するに、設定電力は、システム１００においてデバイス２０の動作以外に必要な電力として想定される電力であればよい。
【００２０】
再び図１に戻って説明を続ける。出力部４３は、ユーザープロセス３０から動作要求を受け付けた場合、第１電力量が第２電力量を上回れば、その受け付けた動作要求により要求されるデバイス２０の動作を開始させる制御命令を、当該デバイス２０に対応するデバイスドライバ６０へ出力する。本実施形態では、出力部４３は、第１電力量が第２電力量を上回れば、受け付けた動作要求をデバイスドライバ６０へ出力する。つまり、この例における制御命令は、受け付けた動作要求そのものであるが、これに限らず、制御命令の種類は任意である。そして、制御命令を受信したデバイスドライバ６０は、デバイス２０の動作を開始する制御を行う。本実施形態では、デバイスドライバ６０は、出力部４３からの動作要求を受信した場合、対応するデバイス２０の動作を開始する制御を行う。一方、第１電力量が第２電力量を下回る場合、出力部４３は、受け付けた動作要求により要求されるデバイス２０の動作を開始させる制御命令をデバイスドライバ６０へ出力することはせずに、その受け付けた動作要求に対する応答として、エラー通知をユーザープロセス３０へ出力する。
【００２１】
なお、出力部４３が出力する制御命令は、要求されたデバイス２０の動作を開始させるものであればよい。例えば出力部４３がデバイスドライバ６０の機能を有する構成とすることもでき、この場合、出力部４３は、要求されたデバイス２０の動作を開始させるための電気的信号を制御命令としてデバイス２０へ出力する。要するに、出力部４３は、動作要求を受け付けた時点での第１電力量が、第２電力量を上回る場合は、当該動作要求により要求されるデバイスの動作を開始させる制御命令を出力するものであればよい。
【００２２】
ここで、本実施形態のシステム１００のハードウェア部分には、前述の電源１０、デバイス２０の他、ＣＰＵ（Central  Processing  Unit）、ＲＯＭ、ＲＡＭなどを有するコンピュータ装置が含まれ、前述のユーザープロセス３０、検出部４１、見積部４２、出力部４３、および、デバイスドライバ６０の各々の機能は、ＣＰＵがＲＯＭなどに格納されたプログラムをＲＡＭ上に展開して実行することにより実現される。つまり、この例では、上述の検出部４１、見積部４２および出力部４３の各々の機能を実現可能なコンピュータ装置（システム１００に含まれるコンピュータ装置）が、本発明の「制御装置」に対応すると捉えることもできる。なお、これに限らず、例えば検出部４１、見積部４２、出力部４３、および、デバイスドライバ６０の機能のうちの少なくとも一部を個別の回路（ハードウェア）で実現することもできる。例えば検出部４１、見積部４２、出力部４３の各々がハードウェア回路で構成されてもよい。つまり、デバイスアクセス制御部４０がハードウェア回路で構成されてもよい。この場合は、ハードウェア回路で構成されたデバイスアクセス制御部（デバイスアクセス制御装置）４０が、本発明の「制御装置」に対応すると捉えることもできる。
【００２３】
次に、図３を参照しながら、デバイスアクセス制御部４０の動作例を説明する。図３は、デバイスアクセス制御部４０の動作例を示すフローチャートである。図３に示すように、ユーザープロセス３０からの動作要求を受け付けた場合（ステップＳ１の結果：ＹＥＳの場合）、デバイスアクセス制御部４０は判断処理を実行する（ステップＳ２）。以下、図４を参照しながら、判断処理の具体的な内容を説明する。図４は、判断処理を説明するための概念図である。
【００２４】
ユーザープロセス３０から動作要求を受け付けた場合（ステップＳ１の結果：ＹＥＳの場合）、出力部４３は、検出部４１に対して第１電力量の検出を依頼する。この依頼を受けた検出部４１は、その時点での蓄電部１２の蓄電量Ｅｃを第１電力量として検出し、その検出した第１電力量を出力部４３へ通知する。説明の便宜上、このとき出力部４３へ通知された第１電力量を「第１電力量Ｅｃ」と表記する。
【００２５】
また、出力部４３は、見積部４２に対して、受け付けた動作要求により要求されるデバイス２０の動作が開始してから完了するまでにシステム１００全体で必要な電力量を示す第２電力量の見積もりを要求する。この例では、出力部４３は、要求されたデバイス２０の動作を特定する情報（例えば動作要求そのものであってもよい）を渡して第２電力量の見積もりを依頼する。この依頼を受けた見積部４２は、動作要求により要求されるデバイス２０の動作に対応する第３電力量Ｅｄと動作時間Ｔｄとを第１記憶部５０から読み出す。そして、見積部４２は、予め設定された設定電力Ｐｍと、第１記憶部５０から読み出した動作時間Ｔｄとの乗算を行うことにより第４電力量（＝Ｐｍ×Ｔｄ）を求め、その求めた第４電力量と第３電力量Ｅｄとの和を第２電力量（＝Ｐｍ×Ｔｄ＋Ｅｄ）として見積もり、その見積もった第２電力量を出力部４３へ通知する。説明の便宜上、見積部４２から出力部４３へ通知された第２電力量を「第２電力量Ｅ２」と表記する。
【００２６】
出力部４３は、検出部４１から通知された第１電力量Ｅｃと、見積部４２から通知された第２電力量Ｅ２（＝Ｐｍ×Ｔｄ＋Ｅｄ）とを比較し、第１電力量Ｅｃが第２電力量Ｅ２を上回るか否かを判断する。以上が判断処理の内容である。
【００２７】
再び、図３に戻って説明を続ける。判断処理の結果、第１電力量Ｅｃが第２電力量Ｅ２を上回ると判断した場合（ステップＳ３の結果：ＹＥＳの場合）、出力部４３は、受け付けた動作要求をデバイスドライバ６０へ出力する（ステップＳ４）。一方、第１電力量Ｅｃが第２電力量Ｅ２を下回ると判断した場合（ステップＳ３の結果：ＮＯの場合）、出力部４３は、受け付けた動作要求をデバイスドライバ６０へ出力することはせずに、その受け付けた動作要求に対する応答として、エラー通知をユーザープロセス３０へ出力する（ステップＳ５）。
【００２８】
以上に説明したように、本実施形態では、ユーザープロセス３０からの動作要求を受け付けた場合、出力部４３は、その動作要求を受け付けた時点における第１電力量Ｅｃと、その動作要求により要求されるデバイス２０の動作が完了するまでにシステム１００全体で必要な第２電力量Ｅ２とを比較し、第１電力量Ｅｃが第２電力量Ｅ２を上回る場合は、デバイスの動作を開始させる制御命令（本実施形態では動作要求そのもの）を出力する一方、第１電力量Ｅｃが第２電力量Ｅ２を下回る場合は、デバイスの動作を開始させる制御命令を出力しないので、要求されたデバイスの動作の途中で電源が喪失してしまうことを確実に防止できる。
【００２９】
なお、前述の判断処理の結果、第１電力量Ｅｃと第２電力量Ｅ２とが等しいと判断した場合、出力部４３は、受け付けた動作要求をデバイスドライバ６０へ出力することもできるし、エラー通知をユーザープロセス３０へ出力することもできる。何れの構成を採用するかは、設計条件等に応じて任意に変更可能である。
【００３０】
（第２実施形態）
本実施形態では、デバイス２０の動作が開始された後の第１のタイミングで、その第１のタイミングからデバイス２０が動作を完了するまでにシステム１００全体で必要な電力量を示す第５電力量を見積もり、第１のタイミングでの第１電力量と第５電力量とを比較し、その比較結果に応じた制御を行う点で上述の第１実施形態と相違する。以下、具体的に説明する。なお、第１実施形態と重複する部分については、同一の符号を付して適宜に説明を省略する。
【００３１】
図５を参照しながら、デバイスアクセス制御部４０の動作例を説明する。図５は、デバイス２０の動作が開始された後におけるデバイスアクセス制御部４０の動作例を説明するためのフローチャートである。
【００３２】
図５に示すように、第１のタイミングに到達したと判断した場合（ステップＳ１１の結果：ＹＥＳの場合）、デバイスアクセス制御部４０は、第２判断処理を実行する。なお、第１のタイミングの設定方法は任意であり、例えば、タイマーによる計測時間が一定時間に到達するタイミングを第１のタイミングとして設定することもできるし、蓄電部１２の蓄電量が予め定められた閾値を下回った時点を第１のタイミングとして設定することもできるし、ユーザープロセス３０からの各種の要求がデバイスアクセス制御部４０に通知されるなど制御がＯＳに移った時点を第１のタイミングとして設定することもできる。デバイスアクセス制御部４０は、第１のタイミングに到達したか否かを検出する機能を有し、この例では、出力部４３が、第１のタイミングに到達したか否かを検出する機能を有しているが、これに限られるものではない。
【００３３】
続いて、図６を参照しながら、第２判断処理の具体的な内容を説明する。図６は、第２判断処理を説明するための概念図である。第１のタイミングに到達したと判断した場合（ステップＳ１１の結果：ＹＥＳの場合）、出力部４３は、検出部４１に対して第１電力量の検出を依頼する。この依頼を受けた検出部４１は、その時点での蓄電部１２の蓄電量Ｅｃ２を第１電力量として検出し、その検出した第１電力量を出力部４３へ通知する。説明の便宜上、このとき出力部４３へ通知された第１電力量を「第１電力量Ｅｃ２」と表記する。
【００３４】
また、出力部４３は、第１のタイミングからデバイス２０が動作を完了するまでにシステム１００全体で必要な第５電力量の見積もりを見積部４２へ依頼する。この例では、出力部４３は、ユーザープロセス３０からの動作要求を受け付けた時点から第１のタイミングまでの経過時間ｔを示す時間情報を見積部４２に渡して第５電力量の見積もりを依頼する。この依頼を受けた見積部４２は、現在実行中のデバイス２０の動作に対応する第３電力量および動作時間Ｔｄと、経過時間ｔとを用いて第５電力量を見積もる。より具体的には以下のとおりである。
【００３５】
本実施形態では、デバイス２０ごとに、そのデバイス２０の動作が完了するまでの残り時間と、そのデバイス２０の動作に必要な電力量との関係を示すテーブルが不図示のメモリに記憶されている。見積部４２は、第１記憶部５０から読み出した動作時間Ｔｄから経過時間ｔを差し引くことで、デバイス２０の動作が完了するまでの残り時間（Ｔｄ−ｔ）を求め、その求めた残り時間に対応する電力量を、当該デバイス２０に対応するテーブルから読み出す。この読み出した電力量が、第１のタイミングからデバイス２０の動作が完了するまでの間において、デバイス２０の動作に必要な残りの電力量Ｅｄｒとなる。なお、本実施形態では、デバイス２０の動作が完了するまでの残り時間と、デバイス２０の動作に必要な電力量との関係を示すテーブルが不図示のメモリに記憶されているが、これに限らず、例えばデバイス２０の動作が完了するまでの残り時間に対して、デバイス２０の動作に必要な残りの電力量Ｅｄｒを求めるための計算式がメモリに記憶される構成であってもよい。この構成においては、見積部４２は、メモリから読み出した計算式を用いて、デバイス２０の動作が完了するまでの残り時間（Ｔｄ−ｔ）に対応する電力量Ｅｄｒを求めることができる。
【００３６】
また、見積部４２は、デバイス２０の動作が完了するまでの残り時間（Ｔｄ−ｔ）と予め設定された設定電力Ｐｍとの乗算を行うことにより、第１のタイミングからデバイス２０の動作が完了するまでに、システム１００においてデバイス２０の動作以外に必要な電力量（＝Ｐｍ×（Ｔｄ−ｔ）＋Ｅｄｒ）を算出する。そして、見積部４２は、その算出した電力量と上述の電力量Ｅｄｒとの合計を、第５電力量として見積もり、その見積もった第５電力量を出力部４３へ通知する。説明の便宜上、見積部４２から出力部４３へ通知された第５電力量を「第５電力量Ｅ５」と表記する。
【００３７】
出力部４３は、検出部４１から通知された第１電力量Ｅｃ２と、見積部４２から通知された第５電力量Ｅ５（＝Ｐｍ×（Ｔｄ−ｔ）＋Ｅｄｒ）とを比較し、第１電力量Ｅｃ２が第５電力量Ｅ５を上回るか否かを判断する。以上が第２判断処理の内容である。
【００３８】
再び、図５に戻って説明を続ける。第２判断処理の結果、第１電力量Ｅｃ２が第５電力量Ｅ５を上回ると判断した場合（ステップＳ１３の結果：ＹＥＳの場合）、処理は終了する。つまり、デバイス２０の動作はそのまま継続する。一方、第１電力量Ｅｃ２が第５電力量Ｅ５を下回ると判断した場合（ステップＳ１３の結果：ＮＯの場合）、出力部４３は、動作中のデバイス２０の動作を継続しつつシステム１００の消費電力を低減する制御を行う（ステップＳ１４）。例えば出力部４３は、ＣＰＵの消費電力を抑える制御を行うこともできる。一例として、出力部４３は、ＤＶＦＳなどを利用してＣＰＵの処理速度を低下させることもできる。また、出力部４３は、ＣＰＵをアイドル状態（何も処理を実行しない状態）に移行させることもでき、所定期間にわたってアイドル状態が継続するように制御することもできる。さらに、出力部４３は、動作が要求されていないデバイス２０のうち、電力供給を停止可能なデバイス２０（例えば液晶のバックライト等）に対しては、電力の供給を停止する制御を行うこともできる。
【００３９】
以上に説明したように、本実施形態では、デバイス２０の動作が開始された後、前述の第１のタイミングに到達するたびに、その第１のタイミングにおける第１電力量Ｅｃ２と、その第１のタイミングからデバイス２０が動作を完了するまでにシステム１００全体で必要な第５電力量Ｅ５とを比較し、第１電力量Ｅｃ２が第５電力量Ｅ５を下回る場合は、動作中のデバイス２０の動作を継続しつつシステム１００の消費電力を低減する制御を行う。これにより、例えば動作中のデバイス２０の動作とは別の処理においてＣＰＵの計算量が突発的に増大し、そのデバイス２０の動作が完了するまでにシステム１００全体に必要な電力量が、動作要求を受け付けた時点で見積もった値を上回ってしまうような場合でも、そのデバイス２０の動作の途中で電源が喪失してしまうことを極力防止できる。
【００４０】
（第３実施形態）
本実施形態では、デバイス２０の動作が開始された後、そのデバイス２０（「第１デバイス」と呼ぶ）とは異なるデバイス２０（「第２デバイス２０」と呼ぶ）の動作を要求する動作要求（「第２動作要求」と呼ぶ）を受け付けた場合、第２動作要求を受け付けた時点から第１デバイス２０および第２デバイス２０が動作を完了するまでにシステム１００全体で必要な電力量を示す第６電力量を見積もり、第２動作要求を受け付けた時点での第１電力量と第６電力量とを比較し、その比較結果に応じた制御を行う点で上述の各実施形態と相違する。以下、具体的に説明する。なお、上述の各実施形態と重複する部分については、同一の符号を付して適宜に説明を省略する。
【００４１】
図７を参照しながら、第３実施形態のデバイスアクセス制御部４０の動作例を説明する。図７は、第１デバイス２０の動作が開始された後におけるデバイスアクセス制御部４０の動作例を説明するためのフローチャートである。図７に示すように、ユーザープロセス３０からの第２動作要求を受け付けた場合（ステップＳ２１の結果：ＹＥＳの場合）、デバイスアクセス制御部４０は第３判断処理を実行する（ステップＳ２）。以下、第３判断処理の具体的な内容を説明する。
【００４２】
ユーザープロセス３０から第２動作要求を受け付けた場合（ステップＳ２１の結果：ＹＥＳの場合）、出力部４３は、検出部４１に対して第１電力量の検出を依頼する。この依頼を受けた検出部４１は、その時点での蓄電部１２の蓄電量Ｅｃ３を第１電力量として検出し、その検出した第１電力量を出力部４３へ通知する。説明の便宜上、このとき出力部４３へ通知された第１電力量を「第１電力量Ｅｃ３」と表記する。
【００４３】
また、出力部４３は、見積部４２に対して、第２動作要求を受け付けた時点から第１デバイス２０および第２デバイス２０の各々が動作を完了するまでにシステム１００全体で必要な第６電力量の見積もりを依頼する。この例では、出力部４３は、第２動作要求により要求されたデバイス２０の動作を特定する情報（例えば第２動作要求そのものであってもよい）と、第１デバイス２０の動作を要求する動作要求を受け付けた時点から第２動作要求を受け付けた時点までの経過時間ｔ２を示す時間情報を見積部４２に渡して、第６電力量の見積もりを依頼する。この依頼を受けた見積部４２は、第１デバイス２０の動作に対応する第３電力量および動作時間Ｔｄと、経過時間ｔ２と、第２デバイス２０の動作に対応する第３電力量および動作時間Ｔｄとを用いて第６電力量を見積もる。より具体的には以下のとおりである。なお、以下では、第１デバイス２０の動作に対応する第３電力量をＥｄ１、第１デバイス２０の動作に対応する動作時間をＴｄ１、第２デバイス２０の動作に対応する第３電力量をＥｄ２、第２デバイス２０の動作に対応する動作時間をＴｄ２と表記する。
【００４４】
見積部４２は、第２実施形態と同様にして、第１デバイス２０の動作が完了するまでの残り時間（Ｔｄ１−ｔ２）を求め、その求めた残り時間に対応する電力量を、第１デバイス２０に対応するテーブルから読み出す。より具体的には、見積部４２は、第１デバイス２０の動作に対応する動作時間Ｔｄ１を第１記憶部５０から読み出し、その読み出した動作時間Ｔｄ１から経過時間ｔ２を差し引くことで、第１デバイス２０の動作が完了するまでの残り時間（Ｔｄ１−ｔ２）を求める。そして、見積部４２は、その求めた残り時間に対応する電力量を、第１デバイス２０に対応するテーブルから読み出す。この読み出した電力量が、第２動作要求を受け付けた時点から第１デバイス２０の動作が完了するまでの間において、第１デバイス２０の動作に必要な残りの電力量Ｅｄ１ｒとなる。
【００４５】
また、見積部４２は、第１実施形態と同様にして、第２デバイス２０の動作に対応する第３電力量Ｅｄ２と動作時間Ｔｄ２とを第１記憶部５０から読み出す。
【００４６】
さらに、本実施形態では、見積部４２は、第１デバイス２０の動作が完了するまでの残り時間（Ｔｄ１−ｔ２）と、第２デバイス２０の動作に対応する動作時間Ｔｄ２とを比較する。Ｔｄ１−ｔ２＞Ｔｄ２の場合、見積部４２は、第１デバイス２０の動作が完了するまでの残り時間（Ｔｄ１−ｔ２）と、予め設定された設定電力Ｐｍとの乗算を行うことにより、システム１００においてデバイス２０の動作以外に必要な電力量（＝Ｐｍ×（Ｔｄ１−ｔ２））を得る。そして、見積部４２は、以上のように求めた電力量（＝Ｐｍ×（Ｔｄ１−ｔ２））と、第１デバイス２０の動作に必要な残りの電力量Ｅｄ１ｒと、第２デバイス２０の動作に対応する第３電力量Ｅｄ２との合計（＝Ｐｍ×（Ｔｄ１−ｔ２）＋Ｅｄ１ｒ＋Ｅｄ２）を第６電力量として見積もる。
【００４７】
一方、Ｔｄ１−ｔ２＜Ｔｄ２の場合、見積部４２は、第２デバイス２０の動作に対応する動作時間Ｔｄ２と設定電力Ｐｍとの乗算を行うことにより、システム１００においてデバイス２０の動作以外に必要な電力量（＝Ｐｍ×Ｔｄ２）を得る。そして、見積部４２は、以上のように求めた電力量（＝Ｐｍ×Ｔｄ２）と、第１デバイス２０の動作に必要な残りの電力量Ｅｄ１ｒと、第２デバイス２０の動作に対応する第３電力量Ｅｄ２との合計（＝Ｐｍ×Ｔｄ２＋Ｅｄ１ｒ＋Ｅｄ２）を第６電力量として見積もる。
【００４８】
見積部４２は、以上のようにして見積もった第６電力量を出力部４３へ通知する。説明の便宜上、見積部４２から出力部４３へ通知された第６電力量を「第６電力量Ｅ６」と表記する。
【００４９】
出力部４３は、検出部４１から通知された第１電力量Ｅｃ３と、見積部４２から通知された第６電力量Ｅ６とを比較し、第１電力量Ｅｃ３が第６電力量Ｅ６を上回るか否かを判断する。以上が第３判断処理の内容である。
【００５０】
再び、図７に戻って説明を続ける。第３判断処理の結果、第１電力量Ｅｃ３が第６電力量Ｅ６を上回ると判断した場合（ステップＳ２３の結果：ＹＥＳの場合）、出力部４３は、第２デバイス２０の動作を開始させる制御命令（この例では、受け付けた第２動作要求そのもの）を、第２デバイス２０に対応するデバイスドライバ６０へ出力する（ステップＳ２４）。一方、第１電力量Ｅｃ３が第６電力量Ｅ６を下回ると判断した場合（ステップＳ２３の結果：ＮＯの場合）、出力部４３は、第２デバイス２０の動作を開始させる制御命令をデバイスドライバ６０へ出力することはせずに、第２動作要求に対する応答として、エラー通知をユーザープロセス３０へ出力する（ステップＳ２５）。
【００５１】
以上に説明したように、本実施形態では、第１デバイス２０の動作が開始された後、第２デバイス２０の動作を要求する第２動作要求を受け付けた場合、第２動作要求を受け付けた時点における第１電力量Ｅｃ３と、第２動作要求を受け付けた時点から第１デバイス２０および第２デバイス２０が動作を完了するまでにシステム１００全体で必要な第６電力量Ｅ６とを比較し、第１電力量Ｅｃ３が第６電力量Ｅ６を上回る場合は、第２デバイス２０の動作を開始させる第２制御命令（本実施形態では第２動作要求そのもの）を出力する一方、第１電力量Ｅｃ３が第６電力量Ｅ６を下回る場合は、第２デバイス２０に対応するデバイスドライバ６０に対して第２制御命令を出力しないので、デバイス２０の動作の途中で電源が喪失してしまうことを確実に防止できる。
【００５２】
（第４実施形態）
本実施形態では、デバイスアクセス制御部４０は、ユーザープロセス３０から受け付けた動作要求により要求されるデバイス２０の動作を開始させることができないと判断した場合（例えば第１電力量Ｅｃ＜第２電力量Ｅ２の場合）、その受け付けた動作要求を保留する制御を行う点で上述の各実施形態と相違する。以下、具体的に説明する。以下では、上述の第１実施形態との相違点を中心に説明し、第１実施形態と重複する部分については、同一の符号を付して適宜に説明を省略する。
【００５３】
図８は、第４実施形態のシステム２００の機能構成例を示すブロック図である。図８に示すように、システム２００は、ユーザープロセス３０からの動作要求を記憶可能な第２記憶部７０をさらに備える点で上述の第１実施形態と相違する。また、デバイスアクセス制御部４００の出力部４３０は、第１実施形態で説明した機能に加え、所定の場合において、ユーザープロセス３０から受け付けた動作要求を第２記憶部７０に書き込む制御を行う。
【００５４】
次に、図９を参照しながら、本実施形態のデバイスアクセス制御部４００の動作例を説明する。図９は、デバイスアクセス制御部４００の動作例を示すフローチャートである。
ステップＳ１〜ステップＳ３、ステップＳ５の内容は図３の例と同様なので詳細な説明は省略する。前述の判断処理の結果、第１電力量Ｅｃが第２電力量Ｅ２を下回ると判断した場合（ステップＳ３の結果：ＮＯの場合）、出力部４３０は、ユーザープロセス３０から受け付けた動作要求を第２記憶部７０に書き込む制御を行う（ステップＳ６）点が、上述の第１実施形態と相違する。
【００５５】
そして、ユーザープロセス３０からの動作要求が第２記憶部７０に書き込まれた後の第２のタイミングにおいて、デバイスアクセス制御部４００は、第２記憶部７０に書き込まれた動作要求により要求されるデバイス２０の動作が完了するまでにシステム２００全体で必要な第２電力量を見積もり、その第２のタイミングにおける第１電力量と第２電力量とを比較し、その比較結果に応じた制御を行う。以下、具体的に説明する。図１０は、ユーザープロセス３０からの動作要求が第２記憶部７０に書き込まれた後におけるデバイスアクセス制御部４００の動作例を説明するためのフローチャートである。
【００５６】
図１０に示すように、第２のタイミングに到達したと判断した場合（ステップＳ３１の結果：ＹＥＳの場合）、デバイスアクセス制御部４００は、判断処理を実行する（ステップＳ３２）。なお、第２のタイミングの設定方法は任意であり、例えば、タイマーによる計測時間が一定時間に到達するタイミングを第２のタイミングとして設定することもできるし、蓄電部１２の蓄電量が閾値を上回った時点を第２のタイミングとして設定することもできるし、割り込みなどのイベントを受け付けた時点を第２のタイミングとして設定することもできる。デバイスアクセス制御部４００は、第２のタイミングに到達したか否かを検出する機能を有し、この例では、出力部４３０が、第２のタイミングに到達したか否かを検出する機能を有しているが、これに限られるものではない。
【００５７】
ステップＳ３２の判断処理の内容は、基本的には第１実施形態の判断処理の内容と同様である。第２のタイミングに到達したと判断した場合（ステップＳ３１の結果：ＹＥＳの場合）、出力部４３０は、検出部４１に対して第１電力量の検出を依頼する。この依頼を受けた検出部４１は、その時点での蓄電部１２の蓄電量Ｅｃを第１電力量として検出し、その検出した第１電力量を出力部４３へ通知する。説明の便宜上、このとき出力部４３へ通知された第１電力量を「第１電力量Ｅｃ」と表記する。
【００５８】
また、出力部４３０は、見積部４２に対して、デバイス２０の動作が開始してから完了するまでにシステム２００全体で必要な電力を示す第２電力量の見積もりを要求する。この例では、出力部４３は、第２記憶部７０に記憶された動作要求により要求されるデバイス２０の動作を特定する情報（例えば動作要求そのものであってもよい）を渡して第２電力量の見積もりを依頼する。この依頼を受けた見積部４２は、第２記憶部７０に記憶された動作要求により要求されるデバイス２０の動作に対応する第３電力量Ｅｄと動作時間Ｔｄとを第１記憶部５０から読み出す。そして、見積部４２は、予め設定された設定電力Ｐｍと、第１記憶部５０から読み出した動作時間Ｔｄとの乗算を行うことにより第４電力量（＝Ｐｍ×Ｔｄ）を求め、その求めた第４電力量と第３電力量Ｅｄとの和を第２電力量（＝Ｐｍ×Ｔｄ＋Ｅｄ）として見積もり、その見積もった第２電力量を出力部４３へ通知する。説明の便宜上、見積部４２から出力部４３へ通知された第２電力量を「第２電力量Ｅ２」と表記する。
【００５９】
出力部４３は、検出部４１から通知された第１電力量Ｅｃと、見積部４２から通知された第２電力量Ｅ２（＝Ｐｍ×Ｔｄ＋Ｅｄ）とを比較し、第１電力量Ｅｃが第２電力量Ｅ２を上回るか否かを判断する。以上がステップＳ３３の判断処理の内容である。
【００６０】
再び、図１０に戻って説明を続ける。判断処理の結果、第１電力量Ｅｃが第２電力量Ｅ２を上回ると判断した場合（ステップＳ３３の結果：ＹＥＳの場合）、出力部４３０は、第２記憶部７０に記憶された動作要求をデバイスドライバ６０へ出力し（ステップＳ３４）、その動作要求を第２記憶部７０から削除する。一方、第１電力量Ｅｃが第２電力量Ｅ２を下回ると判断した場合（ステップＳ３３の結果：ＮＯの場合）、出力部４３０は、動作要求を保留する制御を行う（ステップＳ３５）。より具体的には、出力部４３０は、第２記憶部７０に記憶された動作要求をデバイスドライバ６０へ出力することはせずに、そのまま第２記憶部７０に保持する制御を行う。
【００６１】
以上に説明したように、本実施形態では、ユーザープロセス３０からの動作要求を受け付けた場合、出力部４３０は、その動作要求を受け付けた時点における第１電力量Ｅｃと、その動作要求により要求されるデバイス２０の動作が完了するまでにシステム２００全体で必要な第２電力量Ｅ２とを比較し、第１電力量Ｅｃが第２電力量Ｅ２を下回る場合は、エラー通知をユーザープロセス３０へ出力せずに、その受け付けた動作要求を第２記憶部７０に書き込む制御を行う。そして、その後の第２のタイミングにおいて、その第２のタイミングにおける第１電力量Ｅｃと、第２記憶部７０に書き込まれた動作要求により要求されるデバイス２０の動作が完了するまでにシステム２００全体で必要な第２電力量Ｅ２とを比較し、第１電力量Ｅｃが第２電力量Ｅ２を上回る場合は、第２記憶部７０に書き込まれた動作要求をデバイスドライバ６０へ出力する一方、第１電力量Ｅｃが第２電力量Ｅ２を下回る場合は、第２記憶部７０に書き込まれた動作要求をデバイスドライバ６０へ出力することはせずに保留する。つまり、ユーザープロセス３０からの動作要求により要求されるデバイス２０の動作を実行できる状態になるまで、その動作要求は保留されるので、ユーザープロセス３０が動作要求を出力する回数は１回で済むうえ、デバイス２０の動作の途中で電源が喪失してしまうことを確実に防止できる。
【００６２】
（第４実施形態の変形例）
前述の第２のタイミングにおいて、第２記憶部７０に書き込まれた動作要求により要求されたデバイス２０（説明の便宜上、「第２デバイス２０」と呼ぶ）の動作とは別のデバイス２０（説明の便宜上、「第１デバイス２０」と呼ぶ）の動作が行われていた場合、デバイスアクセス制御部４００は、第２タイミングから、第１デバイス２０および第２デバイス２０が動作を完了するまでにシステム２００全体で必要な電力量を見積もり、その見積もった電力量と第２のタイミングでの第１電力量とを比較し、その比較結果に応じた制御を行うこともできる。この例では、第２のタイミングは、第３実施形態における「第２動作要求を受け付けた時点」であると捉えることもできるので、第２のタイミングから、第１デバイス２０および第２デバイス２０が動作を完了するまでにシステム全体で必要な電力量は、第３実施形態の第６電力量に相当すると捉えることもできる。以下では、第２タイミングから、第１デバイス２０および第２デバイス２０が動作を完了するまでにシステム全体で必要な電力量を第６電力量と呼ぶ。
【００６３】
図１１は、ユーザープロセス３０からの動作要求が第２記憶部７０に書き込まれた後におけるデバイスアクセス制御部４００の動作例を説明するためのフローチャートである。
図１１に示すように、第２のタイミングに到達したと判断した場合（ステップＳ４１の結果：ＹＥＳの場合）、デバイスアクセス制御部４００は、第３判断処理を実行する（ステップＳ４２）。ステップＳ４２の第３判断処理の内容は、基本的には第３実施形態の第３判断処理の内容と同様である。
【００６４】
第２のタイミングに到達したと判断した場合（ステップＳ４１の結果：ＹＥＳの場合）、出力部４３０は、検出部４１に対して第１電力量の検出を依頼する。この依頼を受けた検出部４１は、その時点での蓄電部１２の蓄電量Ｅｃ３を第１電力量として検出し、その検出した第１電力量を出力部４３へ通知する。説明の便宜上、このとき出力部４３へ通知された第１電力量を「第１電力量Ｅｃ３」と表記する。
【００６５】
また、出力部４３０は、見積部４２に対して、第２のタイミングに到達した時点（第２動作要求を受け付けた時点と捉えることもできる）から第１デバイス２０および第２デバイス２０の各々が動作を完了するまでにシステム２００全体で必要な第６電力量の見積もりを依頼する。この例では、出力部４３０は、第２記憶部７０に記憶された動作要求により要求される第２デバイス２０の動作を特定する情報（例えば第２記憶部７０に記憶された動作要求そのものであってもよい）と、第１デバイス２０の動作を要求する動作要求を受け付けた時点から第２のタイミングまでの経過時間ｔ２を示す時間情報とを見積部４２に渡して、第６電力量の見積もりを依頼する。
【００６６】
出力部４３０からの依頼を受けた見積部４２は、第１デバイス２０の動作に対応する第３電力量および動作時間Ｔｄと、経過時間ｔ２と、第２デバイス２０の動作に対応する第３電力量および動作時間Ｔｄとを用いて第６電力量を見積もる。この内容は、上述の第３実施形態と同様であるので、詳細な説明は省略する。そして、見積部４２は、見積もった第６電力量を出力部４３へ通知する。説明の便宜上、見積部４２から出力部４３へ通知された第６電力量を「第６電力量Ｅ６」と表記する。
【００６７】
出力部４３０は、検出部４１から通知された第１電力量Ｅｃ３と、見積部４２から通知された第６電力量Ｅ６とを比較し、第１電力量Ｅｃ３が第６電力量Ｅ６を上回るか否かを判断する。以上が第３判断処理の内容である。
【００６８】
再び、図１１に戻って説明を続ける。第３判断処理の結果、第１電力量Ｅｃ３が第６電力量Ｅ６を上回ると判断した場合（ステップＳ４３の結果：ＹＥＳの場合）、出力部４３０は、第２記憶部７０に記憶された動作要求をデバイスドライバ６０へ出力し（ステップＳ４４）、その動作要求を第２記憶部７０から削除する。一方、第１電力量Ｅｃ３が第６電力量Ｅ６を下回ると判断した場合（ステップＳ４３の結果：ＮＯの場合）、出力部４３０は、動作要求を保留する制御を行う（ステップＳ４５）。より具体的には、出力部４３０は、第２記憶部７０に記憶された動作要求をデバイスドライバ６０へ出力することはせずに、そのまま記憶部７０に保持する制御を行う。
【００６９】
上述の各実施形態の適用場面の例を以下に記載する。電気以外のエネルギーを変換した電気エネルギーを補助的ではなく、それだけをメインにする場合、発電量よりシステムの消費量が大きくなると電源喪失してしまうおそれがあるため、喪失する前に安定して停止する必要がある。その際、デバイスの動作を伴わない、ＣＰＵとメモリだけで動作する計算などの処理タスクは、主記憶が不揮発メモリであれば、電源喪失前に状態を主記憶に保存する処理により、電源喪失する前に安定してシステムを停止することが可能である。しかし、例えばＮＡＮＤなどのデバイスへの書込み途中に電源を喪失すると、ＮＡＮＤ内の状態が破壊されてしまい、復帰できなくなる危険性がある。このような場合に上述の各実施形態にかかる発明は有効である。
【００７０】
以上、本発明の実施形態を説明したが、上述の各実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。また、上述の各実施形態および変形例は適宜に組み合わせることも可能である。
【００７１】
上述の第１実施形態では、デバイスアクセス制御部４０は、検出部４１を含んでいるが、これに限らず、例えばデバイスアクセス制御部４０が検出部４１を含まない形態であってもよい。例えば図１２に示すように、検出部４１は、電源１０に含まれる形態であってもよい。また、例えば、検出部４１は、電源１０やデバイスアクセス制御部４０とは別に（独立して）設けられる形態であってもよい。要するに、本発明に係る制御装置は、見積部と出力部とを備える形態であればよい。
【００７２】
また、上述のデバイスアクセス制御部４０は、少なくとも、上述の見積部４２および出力部４３の各々の機能を実現可能な半導体装置で構成されてもよい。ここでいう半導体装置には、例えば半導体集積回路（ＩＣチップ）やＦＰＧＡ（Field  Programmable  Gate  Array）やマイクロコントローラなどが含まれるが、これらに限られない。マイクロコントローラとは、少なくともＣＰＵコアやメモリを有する半導体チップをいう。要するに、本発明は、半導体装置に対しても適用可能であり、本発明に係る半導体装置は、見積部と出力部とを備える形態であればよい。
【００７３】
また、上述の第１実施形態では、検出部４１は、出力部４３からの依頼を契機として、第１電力量（蓄電部１２の蓄電量Ｅｃ）を検出しているが、これに限らず、例えば検出部４１は、常時、あるいは、所定の周期で、第１電力量の検出を行う形態であってもよい。この形態では、検出部４１は、出力部４３からの依頼を受け付けた場合、最新の検出結果を出力部４３へ通知する。
【００７４】
さらに、上述の第１実施形態では、電源１０は、エネルギー変換部１１と、蓄電部１２とを有しているが、これに限らず、例えば図１３に示すように、電源１０は、エネルギー変換部１１を含まずに、蓄電部１２のみで構成される形態であってもよい。図１３の例では、蓄電部１２は、蓄電部１２と着脱可能に構成されるエネルギー供給部１３から供給される電力を蓄えることができる。エネルギー供給部１３は、電力を供給する機能を有するものであればよく、例えば太陽電池で構成されてもよいし、無線電力伝送装置で構成されてもよいし、ＡＣ電源（商用電源）で構成されてもよく、これらに限られない。
【００７５】
図１３の例では、蓄電部１２をエネルギー供給部１３に接続することにより、蓄電部１２の充電が行われる。そして、充電が完了した場合は、蓄電部１２をエネルギー供給部１３から切り離し、蓄電部１２に蓄えられた電力の放電により、システム１００を駆動するという使用方法が想定されている。この場合、電源１０が供給可能な電力量（第１電力量）は、蓄電部１２から取り出すことができる電力量（Ｗｈ）である。この場合、蓄電部１２の放電に伴い、蓄電部１２の蓄電容量は単調減少することになるので、例えば図１４に示すように、デバイスが動作する時間の経過とともに、電源１０（蓄電部１２）が供給可能な電力量（第１電力量）は、単調減少していくことになる。なお、以上の例であっても、デバイスアクセス制御部４０が実行可能な判断処理の内容は、図４や図６等を用いて説明した上述の各実施形態における判断処理の内容と同様である。
【００７６】
また、上述の制御装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上述の制御装置で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上述の制御装置で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するようにしてもよい。
【符号の説明】
【００７７】
１０  電源
１１  エネルギー変換部
１２  蓄電部
２０  デバイス
３０  ユーザープロセス
４０  デバイスアクセス制御部
４１  検出部
４２  見積部
４３  出力部
５０  第１記憶部
６０  デバイスドライバ
１００  システム
２００  システム
４００  デバイスアクセス制御部
４３０  出力部
【図１】
2013225297.tif 000003
【図２】
2013225297.tif 000004
【図３】
2013225297.tif 000005
【図４】
2013225297.tif 000006
【図５】
2013225297.tif 000007
【図６】
2013225297.tif 000008
【図７】
2013225297.tif 000009
【図８】
2013225297.tif 000010
【図９】
2013225297.tif 000011
【図１０】
2013225297.tif 000012
【図１１】
2013225297.tif 000013
【図１２】
2013225297.tif 000014
【図１３】
2013225297.tif 000015
【図１４】
2013225297.tif 000016