(57)【要約】【課題】情報処理装置における状態遷移をユーザに意識させずに実現する。【解決手段】実施形態の状態制御装置は、プロセッサと、少なくともプロセッサに電力を供給する電力供給手段と、電力供給手段の余剰電力を蓄積し、電力供給手段が供給する電力が不足する場合に、蓄積した電力を少なくともプロセッサに供給する蓄電部と、蓄電部が蓄積する電力量を検出する電力量検出手段と、を備える情報処理装置の状態遷移を制御する。この状態制御装置は、情報処理装置が第１状態のときに蓄電部が蓄積する電力量が第１電力量まで低下すると、情報処理装置を第１状態から該第１状態よりもプロセッサの消費電力が小さい第２状態に遷移させ、情報処理装置が第２状態のときに蓄電部が蓄積する電力量が第１電力量よりも大きい第２電力量まで増加すると、情報処理装置を第２状態から第１状態に遷移させる。【選択図】図２
2013218672.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
少なくとも前記プロセッサに電力を供給する電力供給部と、
前記電力供給部の余剰電力を蓄積し、前記電力供給部が供給する電力が不足する場合に、蓄積した電力を少なくとも前記プロセッサに供給する蓄電部と、を備える情報処理装置の状態遷移を制御する状態制御装置であって、
前記情報処理装置が第１状態のときに前記蓄電部が蓄積する電力量が第１電力量まで低下すると、前記情報処理装置を前記第１状態から該第１状態よりも前記プロセッサの消費電力が小さい第２状態に遷移させ、前記情報処理装置が前記第２状態のときに前記蓄電部が蓄積する電力量が前記第１電力量よりも大きい第２電力量まで増加すると、前記情報処理装置を前記第２状態から前記第１状態に遷移させることを特徴とする状態制御装置。
【請求項２】
プロセッサと、
少なくとも前記プロセッサに電力を供給する電力供給部と、
前記電力供給部の余剰電力を蓄積し、前記電力供給部が供給する電力が不足する場合に、蓄積した電力を少なくとも前記プロセッサに供給する蓄電部と、
情報処理装置が第１状態のときに前記蓄電部が蓄積する電力量が第１電力量まで低下すると、前記情報処理装置を前記第１状態から該第１状態よりも前記プロセッサの消費電力が小さい第２状態に遷移させ、前記情報処理装置が前記第２状態のときに前記蓄電部が蓄積する電力量が前記第１電力量よりも大きい第２電力量まで増加すると、前記情報処理装置を前記第２状態から前記第１状態に遷移させる状態制御部と、を備えることを特徴とする情報処理装置。
【請求項３】
前記第１電力量は、少なくとも、前記情報処理装置を前記第１状態から前記第２状態に遷移させるのに必要な電力量を超える電力量であり、
前記第２電力量は、少なくとも、前記情報処理装置を前記第２状態から前記第１状態に遷移させるのに必要な電力量と、前記情報処理装置を前記第１状態から前記第２状態に遷移させるのに必要な電力量と、の和を超える電力量であることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
メインメモリをさらに備え、
前記状態制御部は、前記情報処理装置を前記第１状態から前記第２状態に遷移させる際に、前記プロセッサの動作状態を回復させるのに必要なデータを前記メインメモリに書き込み、前記情報処理装置を前記第２状態から前記第１状態に遷移させる際に、前記メインメモリから前記データを読み出して前記プロセッサの動作状態を回復させることを特徴とする請求項２に記載の情報処理装置。
【請求項５】
メインメモリと、
データの入出力を行う入出力装置と、をさらに備え、
前記状態制御部は、前記情報処理装置を前記第１状態から前記第２状態に遷移させる際に、前記入出力装置の動作状態を回復させるのに必要なデータを前記メインメモリに書き込み、前記情報処理装置を前記第２状態から前記第１状態に遷移させる際に、前記メインメモリから前記データを読み出して前記入出力装置の動作状態を回復させることを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記メインメモリは揮発性のメモリであり、
前記第１電力量は、少なくとも、前記情報処理装置を前記第１状態から前記第２状態に遷移させるのに必要な電力量と、前記メインメモリに一定時間電力を供給するのに必要な電力量と、の和を超える電力量であり、
前記第２電力量は、少なくとも、前記情報処理装置を前記第２状態から前記第１状態に遷移させるのに必要な電力量と、前記情報処理装置を前記第１状態から前記第２状態に遷移させるのに必要な電力量と、前記メインメモリに一定時間電力を供給するのに必要な電力量と、の和を超える電力量であることを特徴とする請求項４または５に記載の情報処理装置。
【請求項７】
不揮発性の２次ストレージをさらに備え、
前記状態制御部は、前記情報処理装置が前記第２状態のときに前記蓄電部が蓄積する電力量が前記第１電力量よりも小さい第３電力量まで低下すると、前記メインメモリのデータを前記２次ストレージに退避させることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記メインメモリは不揮発のメモリであることを特徴とする請求項４または５に記載の情報処理装置。
【請求項９】
データの入出力を行う入出力装置をさらに備え、
前記プロセッサは、前記入出力装置の入出力動作を開始させる際に、前記入出力装置の入出力動作を完了するのに十分な電力量が前記蓄電部に蓄積されていれば前記入出力装置の入出力動作を開始させ、十分な電力量が前記蓄電部に蓄積されていなければ前記入出力装置の入出力動作を待機させることを特徴とする請求項２に記載の情報処理装置。
【請求項１０】
データの入力を行う入力装置をさらに備え、
前記状態制御部は、前記情報処理装置が前記第２状態のときに前記蓄電部が蓄積する電力量が前記第２電力量まで増加し、且つ、前記入力装置から入力データの発生を検知したときに、前記情報処理装置を前記第２状態から前記第１状態に遷移させることを特徴とする請求項２に記載の情報処理装置。
【請求項１１】
プロセッサと、
少なくとも前記プロセッサに電力を供給する電力供給部と、
前記電力供給部の余剰電力を蓄積し、前記電力供給部が供給する電力が不足する場合に、蓄積した電力を少なくとも前記プロセッサに供給する蓄電部と、を備える情報処理装置に、
前記情報処理装置が第１状態のときに前記蓄電部が蓄積する電力量が第１電力量まで低下すると、前記情報処理装置を前記第１状態から該第１状態よりも前記プロセッサの消費電力が小さい第２状態に遷移させ、前記情報処理装置が前記第２状態のときに前記蓄電部が蓄積する電力量が前記第１電力量よりも大きい第２電力量まで増加すると、前記情報処理装置を前記第２状態から前記第１状態に遷移させる機能を実現させるためのプログラム。
【請求項１２】
プロセッサを有する半導体装置であって、
前記プロセッサは、蓄電部が蓄積する電力が供給され、
前記蓄電部は、電力を供給する電力供給部の電力を蓄積し、
前記蓄電部が蓄積する電力量が第１電力量まで低下すると、前記プロセッサを停止させ、
前記蓄電部が蓄積する電力量が前記第１電力量よりも大きい第２電力量まで増加すると、前記プロセッサを再開させることを特徴とする半導体装置。
【請求項１３】
プロセッサを有する半導体装置であって、
前記半導体装置は、蓄電部が蓄積する電力が供給され、
前記蓄電部は、電力を供給する電力供給部の電力を蓄積し、
前記蓄電部が蓄積する電力量が第１電力量まで低下すると、前記プロセッサを停止させ、
前記蓄電部が蓄積する電力量が前記第１電力量よりも大きい第２電力量まで増加すると、前記プロセッサを再開させることを特徴とする半導体装置。
【請求項１４】
プロセッサを有する半導体装置であって、
前記プロセッサは、蓄電部が蓄積する電力が供給され、
前記蓄電部は、電力を供給する電力供給部の電力を蓄積し、
前記蓄電部が蓄積する電力量が第１電力量まで低下すると、前記半導体装置の消費電力を小さくさせ、
前記蓄電部が蓄積する電力量が前記第１電力量よりも大きい第２電力量まで増加すると、前記半導体装置の消費電力を大きくさせることを特徴とする半導体装置。
【請求項１５】
プロセッサを有する半導体装置であって、
前記プロセッサは、蓄電部が蓄積する電力が供給され、
前記蓄電部は、電力を供給する電力供給部の電力を蓄積し、
前記蓄電部が蓄積する電力量が第１電力量まで低下すると、前記プロセッサの消費電力を小さくさせ、
前記蓄電部が蓄積する電力量が前記第１電力量よりも大きい第２電力量まで増加すると、前記プロセッサの消費電力を大きくさせることを特徴とする半導体装置。
【請求項１６】
情報処理する半導体装置であって、
前記半導体装置は、蓄電部が蓄積する電力が供給され、
前記蓄電部は、電力を供給する電力供給部の電力を蓄積し、
前記蓄電部が蓄積する電力量が第１電力量まで低下すると、前記半導体装置の消費電力を小さくさせ、
前記蓄電部が蓄積する電力量が前記第１電力量よりも大きい第２電力量まで増加すると、前記半導体装置の消費電力を大きくさせることを特徴とする半導体装置。
【請求項１７】
プロセッサを制御する半導体装置であって、
前記プロセッサは、蓄電部が蓄積する電力が供給され、
前記蓄電部は、電力を供給する電力供給部の電力を蓄積し、
前記蓄電部が蓄積する電力量が第１電力量まで低下すると、前記プロセッサを停止させ、
前記蓄電部が蓄積する電力量が前記第１電力量よりも大きい第２電力量まで増加すると、前記プロセッサを再開させることを特徴とする半導体装置。
【請求項１８】
プロセッサを制御する半導体装置であって、
前記プロセッサを有するＳｏＣは、蓄電部が蓄積する電力が供給され、
前記蓄電部は、電力を供給する電力供給部の電力を蓄積し、
前記蓄電部が蓄積する電力量が第１電力量まで低下すると、前記プロセッサを停止させ、
前記蓄電部が蓄積する電力量が前記第１電力量よりも大きい第２電力量まで増加すると、前記プロセッサを再開させることを特徴とする半導体装置。
【請求項１９】
プロセッサを有するＳｏＣに接続される半導体装置であって、
前記ＳｏＣは、蓄電部が蓄積する電力が供給され、
前記蓄電部は、電力を供給する電力供給部の電力を蓄積し、
前記蓄電部が蓄積する電力量が第１電力量まで低下すると、前記ＳｏＣの消費電力を小さくさせ、
前記蓄電部が蓄積する電力量が前記第１電力量よりも大きい第２電力量まで増加すると、前記ＳｏＣの消費電力を大きくさせることを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、状態制御装置、情報処理装置、プログラム、および半導体装置に関する。
【背景技術】
【０００２】
タブレット端末などの携帯型の情報処理装置や、センサノードなどの小型の情報処理装置では、限られた電力を効率よく利用して動作させることが望まれる。そのための方法として、使っていない部分の電力供給を停止して電力消費を抑える方法が知られている。また、キャパシタやバッテリなどの蓄電部を持つ情報処理装置では、蓄電部が蓄積している電力量が少なくなってきたらサスペンド状態に入って、プロセッサや入出力装置の動作状態を保持したまま動作を停止する方法もある。サスペンドした情報処理装置は、外部電源などによりキャパシタやバッテリを充電した後、ユーザが電源スイッチなどを押して実行再開を指示すると、プロセッサや入出力装置の動作状態をサスペンド直前の状態に回復して動作を再開する。このような情報処理装置の状態遷移は、ユーザに意識させることなく行うことが望しい。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３１４２１９号公報
【特許文献２】特許第２９８０５９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、情報処理装置における状態遷移をユーザに意識させずに実現する状態制御装置、情報処理装置、プログラム、および半導体装置を提供することである。
【課題を解決するための手段】
【０００５】
実施形態の状態制御装置は、プロセッサと、少なくとも前記プロセッサに電力を供給する電力供給部と、前記電力供給部の余剰電力を蓄積し、前記電力供給部が供給する電力が不足する場合に、蓄積した電力を少なくとも前記プロセッサに供給する蓄電部と、を備える情報処理装置の状態遷移を制御する。この状態制御装置は、前記情報処理装置が第１状態のときに前記蓄電部が蓄積する電力量が第１電力量まで低下すると、前記情報処理装置を前記第１状態から該第１状態よりも前記プロセッサの消費電力が小さい第２状態に遷移させ、前記情報処理装置が前記第２状態のときに前記蓄電部が蓄積する電力量が前記第１電力量よりも大きい第２電力量まで増加すると、前記情報処理装置を前記第２状態から前記第１状態に遷移させる。
【図面の簡単な説明】
【０００６】
【図１】実施形態の情報処理装置の外観図。
【図２】実施形態の情報処理装置の構成例を示すブロック図。
【図３】実施形態の情報処理装置の状態遷移を説明する図。
【図４】蓄電部が蓄積する電力量と情報処理装置の状態遷移との関係を説明する図。
【図５】状態制御装置による処理を示すフローチャート。
【図６】停止指示を受けたときのプロセッサの動作を示すフローチャート。
【図７】リセット処理後のプロセッサの動作を示すフローチャート。
【図８】蓄電部が蓄積する電力量と情報処理装置の状態遷移との関係を説明する図。
【図９】状態制御装置による処理を示すフローチャート。
【図１０】状態制御装置による処理を示すフローチャート。
【図１１】状態制御装置による処理を示すフローチャート。
【図１２】第１変形例の情報処理装置のハードウェア構成例を示すブロック図。
【図１３】半導体装置による処理を示すフローチャート。
【図１４】第２変形例の情報処理装置のハードウェア構成例を示すブロック図。
【図１５】半導体装置による処理を示すフローチャート。
【図１６】第３変形例の情報処理装置のハードウェア構成例を示すブロック図。
【図１７】半導体装置による処理を示すフローチャート。
【図１８】第４変形例の情報処理装置のハードウェア構成例を示すブロック図。
【図１９】第２半導体装置による処理を示すフローチャート。
【図２０】第５変形例の情報処理装置のハードウェア構成例を示すブロック図。
【図２１】第２半導体装置による処理を示すフローチャート。
【発明を実施するための形態】
【０００７】
（第１実施形態）
図１は、本実施形態の情報処理装置１の外観を示す図である。この情報処理装置１は、太陽電池駆動のタブレット端末として構成されている。情報処理装置１は、端末表面に表示部２ａを備える。表示部２ａには、たとえば、低消費電力の反射型液晶ディスプレイ、あるいは電子ペーパーなどが用いられる。また、情報処理装置１は、端末表面の表示部２ａ以外の部分に太陽電池３を備える。また、情報処理装置１は、表示部２ａの表面にタッチパネル２ｂを備える。さらに、情報処理装置１は、端末表面の表示部２ａと重ならない位置にキーボード４を備える。キーボード４は、太陽電池３の表面に透明なタッチパネル２ｂを重ねることで実現してもよい。また、透明な素材または遮光性の部分の少ない素材を用いた機械式のキーボード４として実現してもよい。
【０００８】
図２は、本実施形態の情報処理装置１のハードウェア構成例を示すブロック図である。情報処理装置１は、主なハードウェア構成として、電力供給部となる太陽電池３と、余剰電力を蓄積する蓄電部５と、情報処理装置１全体の電力供給を管理する電源管理部６と、プロセッサ７と、メインメモリ８と、２次ストレージ９と、表示部２ａと、タッチパネル２ｂと、キーボード４と、通信インタフェース（通信Ｉ／Ｆ）１０と、蓄電部５が蓄積する電力量を検出する検出部１１と、情報処理装置１の状態遷移を制御する状態制御装置１２と、を備えている。プロセッサ７、メインメモリ８、表示部２ａ、通信Ｉ／Ｆ１０、および２次ストレージ９は、それぞれバス１３に接続されている。
【０００９】
情報処理装置１は、太陽電池３が発電した電力で動作する。しかし、太陽電池３が発電する電力だけでは、アクティブ状態の情報処理装置１全体のピークの消費電力をまかなえない。このため、ウェイト状態や停止状態の間に太陽電池３で発電した余剰電力を蓄電部５に蓄積しておく。そして、アクティブ状態のときは、蓄電部５が蓄積している電力と太陽電池３が発電した電力とをあわせて電源管理部６で必要な電圧に調整して、情報処理装置１の各部に供給する。このような電源制御は、ピークアシストあるいはピークシフトと呼ばれる。
【００１０】
蓄電部５には、電気２重層キャパシタやリチウムイオンキャパシタなどの大容量キャパシタ、あるいは、リチウムイオン電池などのバッテリを、単独で、または組み合わせて用いることができる。例えば、太陽電池３で発電した電力をまず電気２重層キャパシタに蓄積し、蓄積した電力をさらにリチウムイオン電池に充電するような組み合わせが可能である。
【００１１】
プロセッサ７は、アプリケーションプログラムやオペレーティングシステムを実行して情報処理装置１の全体を制御する。本実施形態の情報処理装置１は、例えばＬｉｎｕｘ（登録商標）などのオペレーティングシステムを搭載している。
【００１２】
メインメモリ８は、プロセッサ７がワークエリアとして利用する主記憶部である。メインメモリ８には、たとえば、高速に読み書きできるＭＲＡＭ（Magnetoresistive  Random  Access  Memory）などの不揮発メモリを用いることができる。ＭＲＡＭ以外に、たとえば、ＰＣＭ（Phase  Change  Memory、ＰＲＡＭやＰＣＲＡＭと呼ばれることもある）やＲｅＲＡＭ（Resistance  Random  Access  Memory）などの不揮発メモリをメインメモリ８として用いてもよい。また、蓄電部５でバックアップした揮発性のメモリ、たとえば、ＳＲＡＭ（Static  Random  Access  Memory）やＤＲＡＭ（Dynamic  Random  Access  Memory）などをメインメモリ８として用いることもできる。
【００１３】
２次ストレージ９は、情報処理装置１が必要とするデータやプログラムを記憶する、不揮発メモリを用いた補助記憶部である。２次ストレージ９には、例えば、フラッシュメモリを用いることができる。また、２次ストレージ９としてＳＤカードやＳＳＤを用いることもできる。
【００１４】
情報処理装置１は、入出力装置として、表示部２ａやタッチパネル２ｂ、キーボード４、通信Ｉ／Ｆ１０を備える。通信Ｉ／Ｆ１０は、例えば無線ＬＡＮ（Local  Area  Network）などによる通信を行うためのインタフェースである。図２の構成例では、キーボード４とタッチパネル２ｂは状態制御装置１２に接続されており、キーボード４やタッチパネル２ｂからの入力データは状態制御装置１２が受け取ってプロセッサ７に受け渡すようになっている。ただし、キーボード４とタッチパネル２ｂをプロセッサ７に直接あるいはバス１３を介して接続し、状態制御装置１２を介さずに入力データを受け取れるようにしても構わない。上記２次ストレージ９は、プロセッサ７およびメインメモリ８との関係において、入出力装置の１つと捉えることもできる。以下、情報処理装置１の入出力装置と表記する場合は、表示部２ａ、タッチパネル２ｂ、キーボード４、通信Ｉ／Ｆ１０のほか、２次ストレージ９も含むものとする。
【００１５】
蓄電部５が蓄積する電力量を検出する検出部１１は、様々な方式で実現することができる。たとえば、蓄電部５として電気二重層キャパシタやリチウムイオンキャパシタなどのキャパシタを用いる場合は、その出力電圧を計測することで蓄積している電力量を知ることができるので、ＡＤコンバータを検出部１１として用いることができる。また、状態制御装置１２をＡＤコンバータ内蔵の低消費電力マイコンで実現する場合は、蓄電部５（キャパシタ）の出力電圧をＡＤコンバータで読み込んで、その値から蓄電部５（キャパシタ）に蓄積されている電力量を計算することができる。つまり、検出部１１の機能を状態制御装置１２に持たせることができる。また、蓄電部５としてリチウムイオン電池などのバッテリを用いる場合は、その充放電量をクーロンカウンタで計測することで蓄積している電力量を知ることができるので、クーロンカウンタを検出部１１として用いることができる。
【００１６】
状態制御装置１２は、検出部１１を介して蓄電部５が蓄積する電力量を監視し、蓄電部５が蓄積する電力量に応じて、稼働状態（第１状態）と停止状態（第２状態）との間の情報処理装置１の状態遷移を制御する。状態制御装置１２は、たとえば、低消費電力のマイコンを用いてファームウェアとして実現することでき、また、専用のハードウェアとして実現することもできる。さらに、状態制御装置１２の一部あるいはすべての機能を、情報処理装置１内のプロセッサ７が実行するソフトウェアとして実現することもできる。
【００１７】
図３は、情報処理装置１の状態遷移の一例を示す図である。情報処理装置１は、通常、プロセッサ７が処理を実行しているアクティブ状態と、ユーザからの入力待ちや２次ストレージ９からの読み出し完了待ちなど、入出力装置からの割込みを待っているウェイト状態とを繰り返している。情報処理装置１が稼働状態であるとは、アクティブ状態とウェイト状態とを繰り返している状態である。一般に、ウェイト状態における情報処理装置１の消費電力はアクティブ状態よりも小さい。プロセッサ７あるいは情報処理装置１の構成によっては、ウェイト状態に相当する複数の状態を持つ場合もある。たとえば、プロセッサ７内の最小限の必要なレジスタの値を保存して使っていない部分の電力を落とすのは同じだが、キャッシュメモリの電源を入れたままデータを保持する第１のウェイト状態と、キャッシュメモリの電源を落としてデータを保存しないディープスリープと呼ばれる第２のウェイト状態を持つプロセッサも多い。
【００１８】
停止状態は、停止直前のプロセッサ７や入出力装置の動作状態を回復させるのに必要な情報を不揮発なメインメモリ８（あるいは２次ストレージ９）に記録して、動作を停止している状態である。この状態では、情報処理装置１への電力供給を完全に停止することができる。プロセッサ７や入出力装置の内部のレジスタなどは揮発性であるので、電力供給が停止すると情報が失われるが、電力供給再開後にプロセッサ７や入出力装置の動作状態を回復させるために必要な情報を不揮発のメインメモリ８（あるいは２次ストレージ９）に記録しているので、その情報をもとに停止状態になる前のプロセッサ７や入出力装置の動作状態を回復して動作を再開することができる。なお、停止状態であってもプロセッサ７に対して微小な電力を供給し続ける場合もある。ただし、停止状態は、稼働状態との関係において、稼働状態よりもプロセッサ７の消費電力が小さい状態と定義することができる。
【００１９】
状態制御装置１２は、以上のような稼働状態と停止状態との間の情報処理装置１の状態遷移を制御する。具体的には、情報処理装置１を停止状態から稼働状態に遷移させるのに必要な電力量Ｐｏｎと、情報処理装置１を稼働状態から停止状態に遷移させるのに必要な電力量Ｐｏｆｆとに基づいて、第１電力量Ｐ１と、第２電力量Ｐ２と、が定められる。第１電力量Ｐ１は、少なくともＰｏｆｆを超える電力量である。第２電力量Ｐ２は、少なくともＰｏｎ＋Ｐｏｆｆを超える電力量であり、第１電力量Ｐ１よりも大きい値である。状態制御装置１２は、情報処理装置１が稼働状態のときも停止状態のときも、検出部１１を介して蓄電部５が蓄積する電力量を監視する。そして、情報処理装置１が稼働状態のときに蓄電部５が蓄積する電力量が第１電力量Ｐ１まで低下すると、状態制御装置１２は、情報処理装置１を稼働状態から停止状態に遷移させる。また、情報処理装置１が停止状態のときに蓄電部５が蓄積する電力量が第２電力量Ｐ２まで増加すると、状態制御装置１２は、情報処理装置１を停止状態から稼働状態に遷移させる。
【００２０】
図４は、蓄電部５が蓄積する電力量と情報処理装置１の状態遷移との関係を説明する図である。グラフの縦軸は蓄電部５が蓄積している電力量、横軸は時間経過を示している。
【００２１】
図４に示す例では、Ｔ０の時点では、蓄電部５には電力が蓄積されておらず、情報処理装置１は停止状態にある。その後、太陽電池３で発電した電力を蓄電部５に蓄積してゆき、蓄電部５が蓄積する電力量が第２電力量Ｐ２まで増加すると（図中のＴ１）、状態制御装置１２は、情報処理装置１を停止状態から稼働状態に遷移させる。その後、情報処理装置１は、太陽電池３で発電した電力と蓄電部５が蓄積する電力とを使って稼働を続けるが、処理の負荷が大きくなったり太陽電池３の発電量が落ちてきたりすると、蓄電部５が蓄積している電力量が減っていく。そして、蓄電部５が蓄積する電力量が第１電力量Ｐ１まで低下すると（図中のＴ２）、状態制御装置１２は、情報処理装置１を稼働状態から停止状態に遷移させる。その後、太陽電池３で発電した電力を蓄電部５に蓄積してゆき、蓄電部５が蓄積する電力量が再び第２電力量Ｐ２まで増加すると（図中のＴ３）、状態制御装置１２は、情報処理装置１を停止状態から稼働状態に遷移させる。
【００２２】
図５は、図４に示したような状態遷移を実現させるための状態制御装置１２による処理を示すフローチャートである。状態制御装置１２は、情報処理装置１全体への電力供給を管理する電源管理部６を制御する必要がある。このため、状態制御装置１２の動作に必要な電力は、電源管理部６を介さずに蓄電部５から直接供給される。動作に必要な電力が蓄電部５から供給されると、状態制御装置１２は起動し、図５のフローチャートで示す処理を開始する。なお、状態制御装置１２に電力が供給されている間、状態制御装置１２は、図５のフローチャートで示す処理を、例えば百ミリ秒単位の短い周期で繰り返し実行する。
【００２３】
まず、状態制御装置１２は、検出部１１を介して蓄電部５が蓄積する電力量を取得する（ステップＳ１０１）。そして、状態制御装置１２は、ステップＳ１０１で取得した電力量と情報処理装置１の現在の状態に応じて、情報処理装置１の状態遷移を制御する。すなわち、状態制御装置１２は、情報処理装置１が稼働状態か停止状態かを判定し（ステップＳ１０２）、情報処理装置１が稼働状態であれば（ステップＳ１０２：Ｙｅｓ）、ステップＳ１０１で取得した電力量、すなわち蓄電部５が蓄積する電力量が第１電力量Ｐ１以下であるか否かを判定する（ステップＳ１０３）。そして、蓄電部５が蓄積する電力量が第１電力量Ｐ１以下であれば（ステップＳ１０３：Ｙｅｓ）、情報処理装置１を稼働状態から停止状態に遷移させて（ステップＳ１０４）リターンする。一方、蓄電部５が蓄積する電力量が第１電力量Ｐ１を超えていれば（ステップＳ１０３：Ｎｏ）、情報処理装置１の状態を遷移させることなくリターンする。
【００２４】
また、情報処理装置１が停止状態であれば（ステップＳ１０２：Ｎｏ）、状態制御装置１２は、ステップＳ１０１で取得した電力量、すなわち蓄電部５が蓄積する電力量が第２電力量Ｐ２以上であるか否かを判定する（ステップＳ１０５）。そして、蓄電部５が蓄積する電力量が第２電力量Ｐ２以上であれば（ステップＳ１０５：Ｙｅｓ）、情報処理装置１を停止状態から稼働状態に遷移させて（ステップＳ１０６）リターンする。一方、蓄電部５が蓄積する電力量が第２電力量Ｐ２未満であれば（ステップＳ１０５：Ｎｏ）、情報処理装置１の状態を遷移させることなくリターンする。なお、ここでのリターンとは、次の周期のステップＳ１０１の処理に戻ることをいう。
【００２５】
状態制御装置１２が情報処理装置１を稼働状態から停止状態に遷移させる処理は、たとえば、状態制御装置１２がプロセッサ７に対して停止状態への遷移を指示する割込みを発生させ、その割込みを受けたプロセッサ７が図６に示す動作を行うことで実現できる。図６は、停止指示を受けたときのプロセッサ７の動作を示すフローチャートである。
【００２６】
プロセッサ７は、状態制御装置１２から停止状態への遷移を指示する割込みを受けると、まず、現在動作中の入出力装置があればその入出力装置の動作状態を回復させるために必要な情報を不揮発のメインメモリ８に記録する（ステップＳ２０１）。ここで、動作状態を回復させるために必要な情報とは、後で情報処理装置１が停止状態から稼働状態に戻ったときに、停止状態となる際に中断した処理を再開するために必要な情報をいう。たとえば、２次ストレージ９からのデータの読み出し中であれば、読み出しているデータのアドレスとデータ長の情報をメインメモリ８に記録しておけば、後で情報処理装置１が停止状態から稼動状態に戻ったときに再度同じ読み出し処理を実行することができる。同様に、２次ストレージ９へのデータの書き込み中であれば、書き込みたいデータと書き込み先のアドレスの情報をメインメモリ８に記録しておけば、後で情報処理装置１が停止状態から稼動状態に戻ったときに再度同じ書き込み処理を実行することができる。また、表示部２ａへのデータの書き込み中であれば、書き込みたいデータと書き込み先の情報を、メインメモリ８に記録しておけばよい。
【００２７】
なお、第１電力量Ｐ１が上述したＰｏｆｆよりも十分に大きな値に設定されている場合、つまり、上述したＰｏｆｆよりも十分に大きな電力量が蓄電部５に蓄積されている状態で、プロセッサ７が状態制御装置１２から停止状態への遷移を指示する割込みを受ける構成とした場合には、ステップＳ２０１の処理は行わずに、現在動作中の入出力装置の入出力動作が完了するまで待つようにしてもよい。
【００２８】
また、入出力装置の入出力動作を開始させる際に、プロセッサ７が状態制御装置１２に対して蓄電部５が蓄積している電力量の確認を要求し、入出力装置の入出力動作を完了させるのに必要な電力量（見込み値）が蓄電部５に蓄積されているのを確認してから、入出力装置の入出力動作を開始させるようにしてもよい。つまり、入出力装置が入出力動作を開始するタイミングで蓄電部５が蓄積している電力量が入出力装置の入出力動作を完了させるのに十分であれば入出力装置の入出力動作を開始させ、蓄電部５が蓄積している電力量が十分でなければ入出力装置の入出力動作を待機させる。このような制御を行えば、情報処理装置１が稼働状態から停止状態に遷移する際に動作中の入出力装置をなくすことができる。
【００２９】
次に、プロセッサ７は、プロセッサ７自身の動作状態を回復させるために必要な情報をメインメモリ８に記録する（ステップＳ２０２）。つまり、プロセッサ７の動作状態は内部のレジスタによって決まるので、必要なレジスタの値を不揮発なメインメモリ８上の領域に記録しておく。
【００３０】
また、情報処理装置１が停止状態に遷移して電源供給が停止されるとキャッシュメモリのデータが失われるため、プロセッサ７は、キャッシュメモリをフラッシュして（ステップＳ２０３）、キャッシュメモリ中のダーティなデータが失われないようにメインメモリ８に書き込む。
【００３１】
その後、情報処理装置１を稼働状態から停止状態に遷移させる（ステップＳ２０４）。情報処理装置１を停止状態へと遷移させる方式は、プロセッサ７が電源管理部６に指示して、情報処理装置１の各部への電力供給を停止させるようにしてもよいし、状態制御装置１２が電源管理部６に指示して、情報処理装置１の各部への電力供給を停止させるようにしてもよい。
【００３２】
状態制御装置１２が情報処理装置１を停止状態から稼働状態に遷移させる処理は、たとえば、状態制御装置１２が電源管理部６にＩ２ＣやＧＰＩＯなどの信号線を介してシステムを起動させる指示を出し、それを受けた電源管理部６が情報処理装置１の各部の電源投入とリセット処理を行うようにすることで実現できる。図７は、リセット処理後のプロセッサ７の動作を示すフローチャートである。
【００３３】
リセット処理後のプロセッサ７は、まず、停止状態から稼働状態への遷移かを判定する（ステップＳ３０１）。この判定は、たとえば、プロセッサ７が図６の動作フローに従って情報処理装置１を稼動状態から停止状態に遷移させる際に、不揮発のメインメモリ８の特定の領域に特定の値を書き込み、ステップＳ３０１においてそのメインメモリ８の特定の領域に特定の値が書かれているかどうかを判定することで実現できる。
【００３４】
ステップＳ３０１で停止状態から稼働状態への遷移ではない、つまり、電源ボタンの押下などによる通常の起動であると判断した場合（ステップＳ３０１：Ｎｏ）、プロセッサ７は、通常の初期化処理を実行する（ステップＳ３０２）。ここで、通常の初期化処理とは、たとえば、オペレーティングシステムの立ち上げ処理である。
【００３５】
一方、停止状態から稼働状態への遷移であると判定した場合には（ステップＳ３０１：Ｙｅｓ）、プロセッサ７は、プロセッサ７自身の動作状態を回復させるために必要な情報をメインメモリ８から読み出し、その情報を用いてプロセッサ７自身の動作状態を回復させる（ステップＳ３０３）。この処理は、メインメモリ８上に記録しておいたレジスタの値を読み出して戻すことで実現できる。
【００３６】
次に、プロセッサ７は、稼働状態から停止状態に遷移する際に中断した入出力装置の動作状態を回復させるために必要な情報をメインメモリ８から読み出し、その情報を用いて入出力装置の動作状態を回復させる（ステップＳ３０４）。たとえば、２次ストレージ９からのデータの読み出しの場合には、記録しておいた２次ストレージ９上のアドレスから、記録しておいたデータ長のデータを読み出す処理を、入出力装置に再実行させる。
【００３７】
情報処理装置１を停止状態から稼動状態に遷移させるのに必要な電力量Ｐｏｎは、プロセッサ７が図７のステップＳ３０１、ステップＳ３０３、およびステップＳ３０４の処理を実行する間の情報処理装置１全体の消費電力量であると定義することができる。また、情報処理装置１を稼動状態から停止状態に遷移させるのに必要な電力量Ｐｏｆｆは、プロセッサ７が図６のステップＳ２０１〜ステップＳ２０４の処理を実行する間の情報処理装置１全体の消費電力量であると定義することができる。もちろん、これらの消費電力量にはばらつきがあるので、システムで想定される最大の消費電力量に基づいてＰｏｎやＰｏｆｆの値を定めておく。そして、情報処理装置１を稼働状態から停止状態へと遷移させる閾値となる第１電力量Ｐ１には、少なくともＰｏｆｆを超える電力量を設定する。また、情報処理装置１を停止状態から稼働状態へと遷移させる閾値となる第２電力量Ｐ２には、少なくともＰｏｎ＋Ｐｏｆｆを超える電力量を設定する。
【００３８】
以上のように、本実施形態の情報処理装置１は、太陽電池３で発電した電力の不足を、蓄電部５が蓄積する電力で補うピークアシスト型の情報処理装置１である。そして、この情報処理装置１は、蓄電部５が蓄積する電力量を状態制御装置１２が監視し、稼働状態のときに蓄電部５が蓄積する電力量が第１電力量Ｐ１まで低下すると、状態制御装置１２が情報処理装置１を稼働状態から停止状態に遷移させ、停止状態のときに蓄電部５が蓄積する電力量が第２電力量Ｐ２まで増加すると、状態制御装置１２が情報処理装置１を停止状態から稼働状態に遷移させるようにしている。
【００３９】
したがって、この情報処理装置１によれば、たとえば、当該情報処理装置１を鞄や引き出しにしまっている間に、太陽電池３の発電が途絶えることで蓄電部５が蓄積する電力量が不足する状況になったら停止状態になり、その後、当該情報処理装置１を明るいところに出して太陽電池３が十分な電力を発電し、蓄電部５が蓄積する電力量が増加したら稼働状態に戻るといった動作を、ユーザに意識させずに実現することができる。また、この情報処理装置１によれば、プロセッサ７による処理の負荷が太陽電池３の発電能力を超えそうなときに、ユーザに気づかれないように短い時間間隔で停止状態と稼動状態とを繰り返して、ユーザには処理を継続しているように見せることもできる。このように、本実施形態の情報処理装置１は、使用環境に応じた適切な状態遷移を、ユーザに意識させずに実現することができる。
【００４０】
太陽電池による発電、熱や振動などによる環境発電（エネルギ・ハーベスト）、無線給電、手回しハンドルなどによる人力発電、ＵＳＢなどの有線による電力供給などを用いて情報処理装置を動作させる場合、十分な電力を安定的に供給し続けることが難しいため、電力のピークアシストが必要になる。つまり、この種の情報処理装置では、アクティブ状態（プロセッサが処理を実行している状態）の消費電力が、供給される電力量よりも大きくなることがあるため、ウェイト状態（プロセッサが入出力装置からの割込みを待っている状態）や停止状態（電源供給を停止して情報処理装置全体の動作を止めている状態）の間に余剰電力をキャパシタやバッテリなどの蓄電部に蓄積しておき、その電力を稼動状態のときに使用する。
【００４１】
このようなピークアシスト型の情報処理装置においては、供給される電力が不足したとき、あるいは電力供給が停止したときに、プロセッサや入出力装置の動作状態を保持したまま停止状態に入り、その後、稼働状態（アクティブ状態とウェイト状態を繰り返している状態）で動作するのに必要な電力が蓄電部に蓄積されたら稼働状態に戻って動作を再開するといった動作を、ユーザに意識させることなく行えるようにすることが望まれる。
【００４２】
たとえば、太陽電池駆動のタブレット端末では、鞄や引き出しにしまっている間に蓄積部に蓄積している電力がなくなりそうになったら停止状態になり、明るいところに出したら稼働状態に戻る動作を、ユーザに意識させずに実現することが求められる。また、処理の負荷が太陽電池の発電能力を超えそうなときに、ユーザに気づかれないように短い時間間隔で停止状態と稼動状態を繰り返して、ユーザには処理を継続しているように見せることが求められる。
【００４３】
このような情報処理装置の動作は、従来のように、使っていない部分への電力供給を停止するだけでは実現できない。また、蓄積部が蓄積している電力量が不足してきたら情報処理装置をサスペンドさせるだけでは実現できない。
【００４４】
これに対して情報処理装置１は、蓄電部５が蓄積する電力量を状態制御装置１２が監視し、稼働状態のときに蓄電部５が蓄積する電力量が第１電力量Ｐ１まで低下すると、状態制御装置１２が情報処理装置１を稼働状態から停止状態に遷移させ、停止状態のときに蓄電部５が蓄積する電力量が第２電力量Ｐ２まで増加すると、状態制御装置１２が情報処理装置１を停止状態から稼働状態に遷移させるようにしているので、使用環境に応じた適切な状態遷移を、ユーザに意識させずに実現することができる。
【００４５】
（第２実施形態）
次に、第２実施形態の情報処理装置について説明する。第２実施形態の情報処理装置は、メインメモリ８にＭＲＡＭのような不揮発メモリではなく、ＤＲＡＭなどの揮発性のメモリを用いた例である。情報処理装置の基本的な構成は第１実施形態と同様であるため、以下では、第１実施形態と共通の構成要素には同一の符号を付して重複した説明を省略し、本実施形態の特徴部分についてのみ説明する。なお、第１実施形態と区別するため、本実施形態の情報処理装置、メインメモリ、電源管理部、および状態制御装置を、それぞれ情報処理装置１’、メインメモリ８’、電源管理部６’、および状態制御装置１２’と表記する。また、本実施形態の説明では、情報処理装置１’を稼働状態から停止状態へと遷移させる閾値となる第１電力量を第１電力量Ｐ１’、情報処理装置１’を停止状態から稼働状態へと遷移させる閾値となる第２電力量を第２電力量Ｐ２’と表記する。
【００４６】
本実施形態の情報処理装置１’は、メインメモリ８’に揮発性のメモリを用いているため、停止状態で情報処理装置１’全体の電力供給を停止すると、メインメモリ８’のデータも消えてしまう。そこで、停止状態でもメインメモリ８’への電力供給は続けられる電源管理部６’を用い、状態制御装置１２’は、情報処理装置１’が停止状態となった後も一定時間はメインメモリ８’へ電力供給を続けられるだけの電力量を蓄電部５に残した状態で、情報処理装置１’を稼働状態から停止状態に遷移させるように制御する。
【００４７】
具体的には、メインメモリ８’に記憶したデータを一定時間保持するのに必要な電力量Ｐｓａｖｅを予め求めておく。そして、上述したＰｏｎと、Ｐｏｆｆと、Ｐｓａｖｅとに基づいて、情報処理装置１’を稼働状態から停止状態へと遷移させる閾値となる第１電力量Ｐ１’を、少なくともＰｏｆｆ＋Ｐｓａｖｅを超える電力量に定める。また、情報処理装置１’を停止状態から稼働状態へと遷移させる閾値となる第２電力量Ｐ２’を、少なくともＰｏｎ＋Ｐｏｆｆ＋Ｐｓａｖｅを超える電力量に定める。
【００４８】
状態制御装置１２’は、第１実施形態の状態制御装置１２と同様に、情報処理装置１’が稼働状態のときも停止状態のときも、検出部１１を介して蓄電部５が蓄積する電力量を監視する。そして、状態制御装置１２’は、情報処理装置１’が稼働状態のときに蓄電部５が蓄積する電力量が第１電力量Ｐ１’まで低下すると、情報処理装置１’を稼働状態から停止状態に遷移させる。また、状態制御装置１２’は、情報処理装置１’が停止状態のときに蓄電部５が蓄積する電力量が第２電力量Ｐ２’まで増加すると、情報処理装置１’を停止状態から稼働状態に遷移させる。
【００４９】
本実施形態の情報処理装置１’は、状態制御装置１２’が以上のように稼働状態と停止状態との間の状態遷移を制御することで、第１実施形態の情報処理装置１と同様に、使用環境に応じた適切な状態遷移を、ユーザに意識させずに実現することができる。また、本実施形態の情報処理装置１’では、メインメモリ８’に不揮発性のメモリを用いなくても、一定時間の間はプロセッサ７や入出力装置の動作状態を保持することができるので、比較的安価な揮発性のメモリを用いてメインメモリ８’を構成することができ、部品コストを低減することができる。
【００５０】
（第３実施形態）
次に、第３実施形態の情報処理装置について説明する。第２実施形態の情報処理装置１’では、太陽電池３による発電が一定時間以上途絶えて蓄電部５が蓄積する電力量がゼロになると、揮発性のメインメモリ８’に対する電力供給が途絶えて、プロセッサ７や入出力装置の動作状態を保持し続けることができない。そこで、本実施形態の情報処理装置では、蓄電部５が蓄積する電力量がゼロになる前に、揮発性のメインメモリ８’のデータを不揮発性の２次ストレージ９に退避させる。情報処理装置の基本的な構成は第１実施形態や第２実施形態と同様であるため、以下では、第１実施形態や第２実施形態と共通の構成要素には同一の符号を付して重複した説明を省略し、本実施形態の特徴部分についてのみ説明する。なお、第１実施形態や第２実施形態と区別するため、本実施形態の情報処理装置および状態制御装置を、それぞれ情報処理装置１’’および状態制御装置１２’’と表記する。
【００５１】
本実施形態では、第１電力量Ｐ１’および第２電力量Ｐ２’のほかに、第３電力量Ｐ３および第４電力量Ｐ４が定められる。第３電力量Ｐ３は、少なくとも揮発性のメインメモリ８’のデータを２次ストレージ９に退避させるために必要な電力量を超える電力量であり、第１電力量Ｐ１’よりも小さい値である。また、第４電力量Ｐ４は、少なくとも２次ストレージ９に退避したメインメモリ８’のデータをメインメモリ８’に回復させるために必要な電力量を超える電力量であり、第２電力量Ｐ２’よりも小さい値である。
【００５２】
状態制御装置１２’’は、第２実施形態の状態制御装置１２’と同様に、情報処理装置１’’が稼働状態のときも停止状態のときも、検出部１１を介して蓄電部５が蓄積する電力量を監視する。そして、情報処理装置１’’が稼働状態のときに蓄電部５が蓄積する電力量が第１電力量Ｐ１’まで低下すると、状態制御装置１２は、情報処理装置１’’を稼働状態から停止状態に遷移させる。その後、太陽電池３が発電していない状態でメインメモリ８’への電力供給が継続されることで蓄電部５が蓄積する電力量がさらに減少し、蓄電部５が蓄積する電力量が第３電力量Ｐ３まで低下すると、状態制御装置１２’’は、メインメモリ８’のデータを２次ストレージ９に退避させる。
【００５３】
また、情報処理装置１’’が停止状態のときに太陽電池３の発電により得られる電力が蓄電部５に蓄積されることで、蓄電部５が蓄積する電力量が第４電力量Ｐ４まで増加すると、状態制御装置１２’’は、２次ストレージ９に退避させていたメインメモリ８’のデータをメインメモリ８’に回復させる。その後、さらに太陽電池３の発電により蓄電部５が蓄積する電力量が第２電力量Ｐ２’まで増加すると、状態制御装置１２’’は、情報処理装置１’’を停止状態から稼働状態に遷移させる。
【００５４】
図８は、蓄電部５が蓄積する電力量と情報処理装置１’’の状態遷移との関係を説明する図である。グラフの縦軸は蓄電部５が蓄積している電力量、横軸は時間経過を示している。
【００５５】
図８に示す例では、Ｔ０の時点では、蓄電部５に十分な電力が蓄積されており、情報処理装置１’’は稼働状態にある。情報処理装置１’’は、太陽電池３で発電した電力と蓄電部５が蓄積する電力とを使って稼働を続けるが、プロセッサ７の処理負荷が増大したり太陽電池３の発電量が低下したりすると蓄電部５が蓄積する電力量が減っていく。そして、蓄電部５が蓄積する電力量が第１電力量Ｐ１’まで低下すると（図中のＴ１１）、状態制御装置１２’’は、情報処理装置１’’を稼働状態から停止状態に遷移させる。その後、メインメモリ８’は蓄電部５が蓄積する電力によってデータのバックアップがなされるが、蓄電部５が蓄積する電力量が第３電力量Ｐ３まで低下すると（図中のＴ１２）、状態制御装置１２’’は、メインメモリ８’のデータを２次ストレージ９に退避させる。これ以降は、メインメモリ８’への電力供給が途絶えても、プロセッサ７や入出力装置の動作状態を回復させるために必要な情報は２次ストレージ９に記録されているので、プロセッサ７や入出力装置の動作状態は保持される。
【００５６】
その後、太陽電池３で発電した電力を蓄電部５に蓄積してゆき、蓄電部５が蓄積する電力量が第４電力量Ｐ４まで増加すると（図中のＴ１３）、状態制御装置１２’’は、２次ストレージ９に退避していたメインメモリ８’のデータをメインメモリ８’に回復させる。そして、さらにその後、蓄電部５が蓄積する電力量が第２電力量Ｐ２’まで増加すると（図中のＴ１４）、状態制御装置１２は、情報処理装置１’’を停止状態から稼働状態に遷移させる。
【００５７】
図９は、図８に示したような状態遷移を実現させるための状態制御装置１２’’による処理を示すフローチャートである。状態制御装置１２’’は、動作に必要な電力が蓄電部５から供給されると起動し、図９のフローチャートで示す処理を開始する。なお、状態制御装置１２’’に電力が供給されている間、状態制御装置１２’’は、図９のフローチャートで示す処理を、例えば百ミリ秒単位の短い周期で繰り返し実行する。
【００５８】
まず、状態制御装置１２’’は、検出部１１を介して蓄電部５が蓄積する電力量を取得する（ステップＳ４０１）。次に、状態制御装置１２’’は、情報処理装置１’’が稼働状態か停止状態かを判定し（ステップＳ４０２）、情報処理装置１’’が稼働状態であれば（ステップＳ４０２：Ｙｅｓ）、ステップＳ４０１で取得した電力量、すなわち蓄電部５が蓄積する電力量が第１電力量Ｐ１’以下であるか否かを判定する（ステップＳ４０３）。そして、蓄電部５が蓄積する電力量が第１電力量Ｐ１’以下であれば（ステップＳ４０３：Ｙｅｓ）、情報処理装置１’’を稼働状態から停止状態に遷移させて（ステップＳ４０４）リターンする。一方、蓄電部５が蓄積する電力量が第１電力量Ｐ１’を超えていれば（ステップＳ４０３：Ｎｏ）、情報処理装置１’’の状態を遷移させることなくリターンする。
【００５９】
また、情報処理装置１’’が停止状態であれば（ステップＳ４０２：Ｎｏ）、状態制御装置１２’’は、蓄電部５が蓄積する電力量が第２電力量Ｐ２’以上であるか否かを判定する（ステップＳ４０５）。そして、蓄電部５が蓄積する電力量が第２電力量Ｐ２’以上であれば（ステップＳ４０５：Ｙｅｓ）、情報処理装置１’’を停止状態から稼働状態に遷移させて（ステップＳ４０６）リターンする。一方、蓄電部５が蓄積する電力量が第２電力量Ｐ２未満であれば（ステップＳ４０５：Ｎｏ）、状態制御装置１２’’は、メインメモリ８’のデータを２次ストレージ９に退避させているかどうかを表すデータ退避フラグＦの状態を確認する（ステップＳ４０７）。データ退避フラグＦは、２次ストレージ９などの不揮発メモリの所定の領域に書き込まれる１ビットデータであり、「１」がセットされているときに、メインメモリ８’のデータが２次ストレージ９に退避されている状態を示す。なお、状態制御装置１２’’内に不揮発メモリを内蔵させ、その不揮発メモリの所定の領域に書き込まれる１ビットデータをデータ退避フラグＦとして用いてもよい。
【００６０】
状態制御装置１２’’は、ステップＳ４０７においてデータ退避フラグＦが「１」にセットされていないと判定した場合（ステップＳ４０７：Ｎｏ）、蓄電部５が蓄積する電力量が第３電力量Ｐ３以下であるか否かを判定する（ステップＳ４０８）。そして、蓄電部５が蓄積する電力量が第３電力量Ｐ３を超えている場合は（ステップＳ４０８：Ｎｏ）、メインメモリ８’のデータを２次ストレージ９に退避させ（ステップＳ４０９）、データ退避フラグＦを「１」にセットして（ステップＳ４１０）リターンする。一方、ステップＳ４０８において蓄電部５が蓄積する電力量が第３電力量Ｐ３以下であると判定した場合は（ステップＳ４０８：Ｙｅｓ）、ステップＳ４０９およびステップＳ４１０の処理を行うことなく、そのままリターンする。
【００６１】
また、情報処理装置１’’が停止状態であり、且つ、データ退避フラグＦが「１」にセットされていると判定した場合は（ステップＳ４０７：Ｙｅｓ）、状態制御装置１２’’は、蓄電部５が蓄積する電力量が第４電力量Ｐ４以上であるか否かを判定する（ステップＳ４１１）。そして、蓄電部５が蓄積する電力量が第４電力量Ｐ４未満であれば（ステップＳ４１１：Ｎｏ）、情報処理装置１’’の状態を遷移させることなくリターンする。一方、蓄電部５が蓄積する電力量が第４電力量Ｐ４以上であれば（ステップＳ４１１：Ｙｅｓ）、２次ストレージ９に退避させたメインメモリ８’のデータをメインメモリ８’に回復させ（ステップＳ４１２）、データ退避フラグＦを「０」にリセットして（ステップＳ４１３）リターンする。なお、ここでのリターンとは、次の周期のステップＳ４０１の処理に戻ることをいう。
【００６２】
なお、上記の説明は、蓄電部５が蓄積する電力量が第３電力量Ｐ３以下になる前にメインメモリ８’のデータを２次ストレージ９に退避させる例であるが、蓄電部５が蓄積する電力量が第３電力量Ｐ３以下になった後に、メインメモリ８’のデータを２次ストレージ９に退避させるようにしてもよい。
【００６３】
図１０は、蓄電部５が蓄積する電力量が第３電力量Ｐ３以下になった後に、メインメモリ８’のデータを２次ストレージ９に退避させるようにした場合の状態制御装置１２’’による処理を示すフローチャートである。図１０に示すフローチャートにおいて、図９との違いは、ステップＳ４０８の判定結果に応じた分岐である。すなわち、図１０に示す例では、状態制御装置１２’’は、ステップＳ４０７においてデータ退避フラグＦが「１」にセットされていないと判定した場合（ステップＳ４０７：Ｎｏ）、蓄電部５が蓄積する電力量が第３電力量Ｐ３以下であるか否かを判定する（ステップＳ４０８）。そして、蓄電部５が蓄積する電力量が第３電力量Ｐ３以下であると判定した場合は（ステップＳ４０８：Ｙｅｓ）、メインメモリ８’のデータを２次ストレージ９に退避させ（ステップＳ４０９）、データ退避フラグＦを「１」にセットして（ステップＳ４１０）リターンする。一方、ステップＳ４０８において蓄電部５が蓄積する電力量が第３電力量Ｐ３を超えている場合は（ステップＳ４０８：Ｎｏ）、ステップＳ４０９およびステップＳ４１０の処理を行うことなく、そのままリターンする。なお、ここでのリターンとは、次の周期のステップＳ４０１の処理に戻ることをいう。
【００６４】
また、状態制御装置１２’’は、図９あるいは図１０のフローチャートで示す処理に代えて、図１１のフローチャートで示す処理を行ってもよい。この図１１のフローチャートで示す処理は、状態制御装置１２’’に電力が供給されている間、状態制御装置１２’’によって例えば百ミリ秒単位の短い周期で繰り返し実行される。
【００６５】
状態制御装置１２’’は、まず、検出部１１を介して蓄電部５が蓄積している電力量を取得する（ステップＳ５０１）。次に、状態制御装置１２’’は、情報処理装置１’’が停止状態であり、かつ、蓄電部５が蓄積している電力量が第２電力量Ｐ２’以上であるか否かを判定する（ステップＳ５０２）。そして、情報処理装置１’’が停止状態であり、かつ、蓄電部５が蓄積している電力量が第２電力量Ｐ２’以上であれば（ステップＳ５０２：Ｙｅｓ）、状態制御装置１２’’は、情報処理装置１’’を停止状態から稼働状態に遷移させて（ステップＳ５０３）リターンする。なお、ここでのリターンとは、次の周期のステップＳ５０１の処理に戻ることをいう。
【００６６】
一方、情報処理装置が停止状態でない、あるいは、蓄電部５が蓄積している電力量が第２電力量Ｐ２’以上でない場合は（ステップＳ５０２：Ｎｏ）、状態制御装置１２’’は、情報処理装置１’’が稼働状態であり、かつ、蓄電部５が蓄積している電力量が第１電力量Ｐ１’以下であるか否かを判定する（ステップＳ５０４）。そして、情報処理装置１’’が稼働状態であり、かつ、蓄電部５が蓄積している電力量が第１電力量Ｐ１’以下であれば（ステップＳ５０４：Ｙｅｓ）、状態制御装置１２’’は、情報処理装置１’’を稼働状態から停止状態に遷移させて（ステップＳ５０５）リターンする。
【００６７】
一方、蓄電部５が蓄積している電力量が第１電力量Ｐ１’以下でない場合は（ステップＳ５０４：Ｎｏ）、状態制御装置１２’’は、情報処理装置１’’が停止状態であり、かつ、蓄電部５が蓄積している電力量が第３電力量Ｐ３以下であるか否かを判定する（ステップＳ５０６）。そして、情報処理装置１’’が停止状態であり、かつ、蓄電部５が蓄積している電力量が第３電力量Ｐ３以下であれば（ステップＳ５０６：Ｙｅｓ）、状態制御装置１２’’は、メインメモリ８’のデータがまだ２次ストレージ９に退避されていない状態であれば、メインメモリ８’のデータを２次ストレージ９に退避させて（ステップＳ５０７）リターンする。
【００６８】
一方、蓄電部５が蓄積している電力量が第３電力量Ｐ３以下でない場合は（ステップＳ５０６：Ｎｏ）、状態制御装置１２’’は、情報処理装置１’’が停止状態であり、かつ、蓄電部５が蓄積している電力量が第４電力量Ｐ４以下であるか否かを判定する（ステップＳ５０８）。そして、情報処理装置１’’が停止状態であり、かつ、蓄電部５が蓄積している電力量が第４電力量Ｐ４以上であれば（ステップＳ５０８：Ｙｅｓ）、状態制御装置１２’’は、メインメモリ８’のデータを２次ストレージ９からまだ回復させていない状態であれば、メインメモリ８’のデータを２次ストレージ９から回復させて（ステップＳ５０９）、ステップＳ５０１に戻る。一方、蓄電部５が蓄積している電力量が第４電力量Ｐ４以上でない場合は（ステップＳ５０９：Ｎｏ）、そのままリターンする。
【００６９】
本実施形態の情報処理装置１’’は、状態制御装置１２’’が以上のように稼働状態と停止状態との間の状態遷移を制御することで、第１実施形態の情報処理装置１や第２実施形態の情報処理装置１’と同様に、使用環境に応じた適切な状態遷移を、ユーザに意識させずに実現することができる。また、本実施形態の情報処理装置１’’では、第２実施形態の情報処理装置１’と同様に、比較的安価な揮発性のメモリを用いてメインメモリ８’を構成することができ、部品コストを低減することができる。さらに、本実施形態の情報処理装置１’’では、停止状態において太陽電池３による発電が長時間途絶えたとしてもプロセッサ７や入出力装置の動作状態を保持し続けることができ、稼働状態に遷移したときには、プロセッサ７や入出力装置の動作状態を回復させることができる。
【００７０】
なお、本実施形態の情報処理装置１’’では、蓄電部５が蓄積する電力量が第４電力量Ｐ４まで増加した時点で２次ストレージ９に退避させたメインメモリ８’のデータをメインメモリ８’に回復させるようにしている。しかし、蓄電部５が蓄積する電力量が第４電力量Ｐ４まで増加した時点ではメインメモリ８’のデータを２次ストレージ９に退避させたままとし、蓄電部５が蓄積する電力量が第２電力量Ｐ２’まで増加した段階で、状態制御装置１２’’が、２次ストレージ９に退避させたメインメモリ８’のデータをメインメモリ８’に回復させるとともに、情報処理装置１’’を停止状態から稼働状態に遷移させるようにしてもよい。
【００７１】
（第４実施形態）
次に、第４実施形態の情報処理装置について説明する。第４実施形態の情報処理装置は、停止状態のときに蓄電部５が蓄積する電力量が第２電力量Ｐ２（または第２電力量Ｐ２’）まで増加してもすぐには稼働状態に遷移せず、キーボード４やタッチパネル２ｂ、通信Ｉ／Ｆ１０などから入力データが発生したときに、停止状態から稼働状態に遷移するようにした例である。情報処理装置の基本的な構成は第１実施形態乃至第３実施形態と同様であるため、以下では、第１実施形態乃至第３実施形態と共通の構成要素には同一の符号を付して重複した説明を省略し、本実施形態の特徴部分についてのみ説明する。なお、第１実施形態乃至第３実施形態と区別するため、本実施形態の情報処理装置および状態制御装置を、それぞれ情報処理装置１’’’および状態制御装置１２’’’と表記する。
【００７２】
上記の第１実施形態乃至第３実施形態においては、情報処理装置１（１’，１’’）が停止状態のときに蓄電部５が蓄積する電力量が第２電力量Ｐ２（Ｐ２’）まで増加すると、状態制御装置１２（１２’，１２’’）が、情報処理装置１（１’，１’’）を停止状態から稼働状態に遷移させる。しかし、停止状態から稼働状態に遷移した情報処理装置１（１’，１’’）は、すぐにプロセッサ７が処理を実行するアクティブ状態とはならず、入出力装置からの割込みを待っているウェイト状態に入ることが多い。
【００７３】
そこで、本実施形態では、情報処理装置１’’’が停止状態のときに蓄電部５が蓄積する電力量が第２電力量Ｐ２（Ｐ２’）まで増加しても、状態制御装置１２’’’は、情報処理装置１’’’をすぐに停止状態から稼働状態に遷移させず、キーボード４やタッチパネル２ｂ、通信Ｉ／Ｆ１０などから情報処理装置１’’’に対する入力データが発生したことを検知したときに、情報処理装置１’’’を停止状態から稼働状態に遷移させるようにしている。これにより、プロセッサ７の処理が必要になるまでは停止状態を維持して無駄な電力消費を抑え、プロセッサ７の処理が必要となるときに停止状態からすぐにアクティブ状態に入ってプロセッサ７の処理を実行させることができる。状態制御装置１２’’’がキーボード４やタッチパネル２ｂからの入力データを受け取ってプロセッサ７に受け渡す図２のような構成を用いると、この機能は容易に実現することができる。
【００７４】
本実施形態の情報処理装置１’’’は、状態制御装置１２’’’が以上のように稼働状態と停止状態との間の状態遷移を制御することで、第１実施形態乃至第３実施形態の情報処理装置１（１’，１’’）と同様に、使用環境に応じた適切な状態遷移を、ユーザに意識させずに実現することができる。また、本実施形態の情報処理装置１’’’では、停止状態のときに蓄電部５が蓄積する電力量が第２電力量Ｐ２（Ｐ２’）まで増加してもすぐには稼働状態に遷移せず、入力データが発生してプロセッサ７の処理が必要になった段階で稼働状態（アクティブ状態）に遷移するので、無駄な電力消費を抑制することができる。
【００７５】
以上、具体的な例を挙げながら詳細に説明したように、実施形態の情報処理装置によれば、使用環境に応じた適切な状態遷移を、ユーザに意識させずに実現することができる。
【００７６】
なお、実施形態の情報処理装置が備える状態制御装置の機能は、例えば、低消費電力のマイコンに組み込むファームウェア、あるいは、プロセッサが実行するソフトウェアなどのプログラムとして実現することができる。このとき、実施形態の情報処理装置は、上記のプログラムをあらかじめインストールすることで実現してもよいし、ＣＤ−ＲＯＭなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムを情報処理装置に適宜インストールすることで実現してもよい。
【００７７】
状態制御装置の機能を実現するプログラムは、情報処理装置のマイコンあるいは上記プロセッサによって適宜読み出されて実行される。これにより、情報処理装置に状態制御装置の機能が実現される。
【００７８】
なお、上述した実施形態では、情報処理装置１の状態制御装置１２が、蓄電部５に蓄積された電力量に応じて情報処理装置１の状態遷移を制御している。しかし、プロセッサ７を有する半導体装置（ＳｏＣ：Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）が、蓄電部５に蓄積された電力量に応じてプロセッサ７を停止させたり再開させたりすることによっても、上述した実施形態と同等の効果を得ることができる。また、プロセッサ７を有する半導体装置（ＳｏＣ）が、蓄電部５に蓄積された電力量に応じてプロセッサ７やＳｏＣの消費電力を制御することによっても、上述した実施形態と同等の効果を得ることができる。また、プロセッサ７を制御する半導体装置（チップ）が、蓄電部５に蓄積された電力量に応じてプロセッサ７を停止させたり再開させたりすることによっても、上述した実施形態と同等の効果を得ることができる。さらに、プロセッサ７を有するＳｏＣに接続される半導体装置（チップ）が、蓄電部５に蓄積された電力量に応じてプロセッサ７やＳｏＣの消費電力を制御することによっても、上述した実施形態と同等の効果を得ることができる。以下、これらの例を変形例として説明する。
【００７９】
（第１変形例）
図１２は、第１変形例の情報処理装置１Ａのハードウェア構成例を示すブロック図である。なお、第１変形例の情報処理装置１Ａにおいて、上述した情報処理装置１と共通の構成要素については、同一の符号を付している。図１２に示すように、第１変形例の情報処理装置１Ａは、プロセッサ７を有するＳｏＣとして構成された半導体装置２０Ａを備える。プロセッサ７または半導体装置２０Ａは、蓄電部５が蓄積する電力が供給される。蓄電部５は、電力を供給する電力供給部３０の電力を蓄積する。電力供給部３０には、例えば上述した太陽電池３などを用いることができる。なお、半導体装置２０Ａは、プロセッサ７の他にも、たとえばメインメモリ８などを有する構成であってもよい。
【００８０】
半導体装置２０Ａは、プロセッサ７が動作中に蓄電部５が蓄積する電力量が第１電力量Ｐ１まで低下すると、プロセッサ７の動作を停止させ、プロセッサ７の動作を停止させた後、蓄電部５が蓄積する電力量が第１電力量Ｐ１よりも大きい第２電力量Ｐ２まで増加すると、プロセッサ７の動作を再開させる。プロセッサ７は、図３に示した情報処理装置１の状態遷移と同様に、稼働状態と停止状態との間で状態遷移する。プロセッサ７が動作中であるとは、プロセッサ７が稼働状態であることに相当する。プロセッサ７の動作を停止させるとは、プロセッサ７を稼働状態から停止状態に遷移させることに相当し、プロセッサ７の動作を再開させるとは、プロセッサ７を停止状態から稼働状態に遷移させることに相当する。
【００８１】
図１３は、半導体装置２０Ａによる処理を示すフローチャートである。半導体装置２０Ａは、図１３のフローチャートで示す処理を、例えば百ミリ秒単位の短い周期で繰り返し実行して、プロセッサ７の停止と再開を制御する。
【００８２】
まず、半導体装置２０Ａは、検出部１１を介して蓄電部５が蓄積する電力量を取得する（ステップＳ６０１）。次に、半導体装置２０Ａは、プロセッサ７が動作しているか否かを判定し（ステップＳ６０２）、プロセッサ７が動作していれば（ステップＳ６０２：Ｙｅｓ）、ステップＳ６０１で取得した電力量、すなわち蓄電部５が蓄積する電力量が第１電力量Ｐ１以下であるか否かを判定する（ステップＳ６０３）。そして、蓄電部５が蓄積する電力量が第１電力量Ｐ１以下であれば（ステップＳ６０３：Ｙｅｓ）、プロセッサ７を停止させて（ステップＳ６０４）、ステップＳ６０１に戻る。一方、蓄電部５が蓄積する電力量が第１電力量Ｐ１を超えていれば（ステップＳ６０３：Ｎｏ）、プロセッサ７を動作させたままステップＳ６０１に戻る。
【００８３】
また、プロセッサ７が停止している場合は（ステップＳ６０２：Ｎｏ）、半導体装置２０Ａは、ステップＳ６０１で取得した電力量、すなわち蓄電部５が蓄積する電力量が第２電力量Ｐ２以上であるか否かを判定する（ステップＳ６０５）。そして、蓄電部５が蓄積する電力量が第２電力量Ｐ２以上であれば（ステップＳ６０５：Ｙｅｓ）、プロセッサ７の動作を再開させて（ステップＳ６０６）、ステップＳ６０１に戻る。一方、蓄電部５が蓄積する電力量が第２電力量Ｐ２未満であれば（ステップＳ６０５：Ｎｏ）、プロセッサ７を停止させたままステップＳ６０１に戻る。
【００８４】
以上のように、第１変形例の情報処理装置１Ａでは、プロセッサ７を有する半導体装置２０Ａが、蓄電部５が蓄積する電力量に応じてプロセッサ７の停止と再開を制御するので、使用環境に応じた適切な状態遷移を、ユーザに意識させずに実現することができる。
【００８５】
（第２変形例）
図１４は、第２変形例の情報処理装置１Ｂのハードウェア構成例を示すブロック図である。なお、第２変形例の情報処理装置１Ｂにおいて、上述した情報処理装置１と共通の構成要素については、同一の符号を付している。図１４に示すように、第２変形例の情報処理装置１Ｂは、第１変形例の半導体装置２０Ａに代えて、半導体装置２０Ｂを備える。半導体装置２０Ｂは、第１変形例の半導体装置２０Ａと同様に、プロセッサ７を有するＳｏＣとして構成されている。プロセッサ７または半導体装置２０Ｂは、蓄電部５が蓄積する電力が供給される。蓄電部５は、電力を供給する電力供給部３０の電力を蓄積する。電力供給部３０には、例えば上述した太陽電池３などを用いることができる。なお、半導体装置２０Ｂは、プロセッサ７の他にも、たとえばメインメモリ８などを有する構成であってもよい。
【００８６】
半導体装置２０Ｂは、蓄電部５が蓄積する電力量が第１電力量Ｐ１まで低下すると、半導体装置２０Ｂ自身の消費電力を小さくさせ、蓄電部５が蓄積する電力量が第１電力量Ｐ１よりも大きい第２電力量Ｐ２まで増加すると、半導体装置２０Ｂ自身の消費電力を大きくさせる。ここで、半導体装置２０Ｂの消費電力を小さくさせるとは、プロセッサ７を稼働状態から停止状態に遷移させることに相当する。例えば、プログラムを実行しているプロセッサ７を停止させることで、半導体装置２０Ｂの消費電力が小さくなる。また、半導体装置２０Ｂの消費電力を大きくさせるとは、プロセッサ７を停止状態から稼働状態に遷移させることに相当する。例えば、プロセッサ７にプログラムの実行を再開させることで、半導体装置２０Ｂの消費電力が大きくなる。
【００８７】
図１５は、半導体装置２０Ｂによる処理を示すフローチャートである。半導体装置２０Ｂは、図１５のフローチャートで示す処理を、例えば百ミリ秒単位の短い周期で繰り返し実行して、半導体装置２０Ｂ自身の消費電力を制御する。
【００８８】
まず、半導体装置２０Ｂは、検出部１１を介して蓄電部５が蓄積する電力量を取得する（ステップＳ７０１）。次に、半導体装置２０Ｂは、自身の消費電力が所定の閾値以上であるか否かを判定し（ステップＳ７０２）、自身の消費電力が閾値以上であれば（ステップＳ７０２：Ｙｅｓ）、ステップＳ７０１で取得した電力量、すなわち蓄電部５が蓄積する電力量が第１電力量Ｐ１以下であるか否かを判定する（ステップＳ７０３）。そして、蓄電部５が蓄積する電力量が第１電力量Ｐ１以下であれば（ステップＳ７０３：Ｙｅｓ）、自身の消費電力を小さくして（ステップＳ７０４）、ステップＳ７０１に戻る。一方、蓄電部５が蓄積する電力量が第１電力量Ｐ１を超えていれば（ステップＳ７０３：Ｎｏ）、自身の消費電力を小さくすることなくステップＳ７０１に戻る。
【００８９】
また、半導体装置２０Ｂ自身の消費電力が閾値未満の場合は（ステップＳ７０２：Ｎｏ）、半導体装置２０Ｂは、ステップＳ７０１で取得した電力量、すなわち蓄電部５が蓄積する電力量が第２電力量Ｐ２以上であるか否かを判定する（ステップＳ７０５）。そして、蓄電部５が蓄積する電力量が第２電力量Ｐ２以上であれば（ステップＳ７０５：Ｙｅｓ）、自身の消費電力を大きくして（ステップＳ７０６）、ステップＳ７０１に戻る。一方、蓄電部５が蓄積する電力量が第２電力量Ｐ２未満であれば（ステップＳ７０５：Ｎｏ）、自身の消費電力を大きくすることなくステップＳ７０１に戻る。
【００９０】
以上のように、第２変形例の情報処理装置１Ｂでは、プロセッサ７を有する半導体装置２０Ｂが、蓄電部５が蓄積する電力量に応じて自身の消費電力を制御するので、使用環境に応じた適切な状態遷移を、ユーザに意識させずに実現することができる。
【００９１】
（第３変形例）
図１６は、第３変形例の情報処理装置１Ｃのハードウェア構成例を示すブロック図である。なお、第３変形例の情報処理装置１Ｃにおいて、上述した情報処理装置１と共通の構成要素については、同一の符号を付している。図１６に示すように、第３変形例の情報処理装置１Ｃは、第１変形例の半導体装置２０Ａに代えて、半導体装置２０Ｃを備える。半導体装置２０Ｃは、第１変形例の半導体装置２０Ａと同様に、プロセッサ７を有するＳｏＣとして構成されている。プロセッサ７は、蓄電部５が蓄積する電力が供給される。蓄電部５は、電力を供給する電力供給部３０の電力を蓄積する。電力供給部３０には、例えば上述した太陽電池３などを用いることができる。なお、半導体装置２０Ｃは、プロセッサ７の他にも、たとえばメインメモリ８などを有する構成であってもよい。
【００９２】
半導体装置２０Ｃは、蓄電部５が蓄積する電力量が第１電力量Ｐ１まで低下すると、プロセッサ７の消費電力を小さくさせ、蓄電部５が蓄積する電力量が第１電力量Ｐ１よりも大きい第２電力量Ｐ２まで増加すると、プロセッサ７の消費電力を大きくさせる。ここで、プロセッサ７の消費電力を小さくさせるとは、プロセッサ７を稼働状態から停止状態に遷移させることに相当する。例えば、プログラムを実行しているプロセッサ７を停止させることで、プロセッサ７の消費電力が小さくなる。また、プロセッサ７の消費電力を大きくさせるとは、プロセッサ７を停止状態から稼働状態に遷移させることに相当する。例えば、プロセッサ７にプログラムの実行を再開させることで、プロセッサ７の消費電力が大きくなる。
【００９３】
図１７は、半導体装置２０Ｃによる処理を示すフローチャートである。半導体装置２０Ｃは、図１７のフローチャートで示す処理を、例えば百ミリ秒単位の短い周期で繰り返し実行して、プロセッサ７の消費電力を制御する。
【００９４】
まず、半導体装置２０Ｃは、検出部１１を介して蓄電部５が蓄積する電力量を取得する（ステップＳ８０１）。次に、半導体装置２０Ｃは、プロセッサ７の消費電力が所定の閾値以上であるか否かを判定し（ステップＳ８０２）、プロセッサ７の消費電力が閾値以上であれば（ステップＳ８０２：Ｙｅｓ）、ステップＳ８０１で取得した電力量、すなわち蓄電部５が蓄積する電力量が第１電力量Ｐ１以下であるか否かを判定する（ステップＳ８０３）。そして、蓄電部５が蓄積する電力量が第１電力量Ｐ１以下であれば（ステップＳ８０３：Ｙｅｓ）、プロセッサ７の消費電力を小さくして（ステップＳ８０４）、ステップＳ８０１に戻る。一方、蓄電部５が蓄積する電力量が第１電力量Ｐ１を超えていれば（ステップＳ８０３：Ｎｏ）、プロセッサ７の消費電力を小さくすることなくステップＳ８０１に戻る。
【００９５】
また、プロセッサ７の消費電力が閾値未満の場合は（ステップＳ８０２：Ｎｏ）、半導体装置２０Ｃは、ステップＳ８０１で取得した電力量、すなわち蓄電部５が蓄積する電力量が第２電力量Ｐ２以上であるか否かを判定する（ステップＳ８０５）。そして、蓄電部５が蓄積する電力量が第２電力量Ｐ２以上であれば（ステップＳ８０５：Ｙｅｓ）、プロセッサ７の消費電力を大きくして（ステップＳ８０６）、ステップＳ８０１に戻る。一方、蓄電部５が蓄積する電力量が第２電力量Ｐ２未満であれば（ステップＳ８０５：Ｎｏ）、プロセッサ７の消費電力を大きくすることなくステップＳ８０１に戻る。
【００９６】
以上のように、第３変形例の情報処理装置１Ｃでは、プロセッサ７を有する半導体装置２０Ｃが、蓄電部５が蓄積する電力量に応じてプロセッサ７の消費電力を制御するので、使用環境に応じた適切な状態遷移を、ユーザに意識させずに実現することができる。
【００９７】
（第４変形例）
図１８は、第４変形例の情報処理装置１Ｄのハードウェア構成例を示すブロック図である。なお、第４変形例の情報処理装置１Ｄにおいて、上述した情報処理装置１と共通の構成要素については、同一の符号を付している。図１８に示すように、第４変形例の情報処理装置１Ｄは、プロセッサ７を有するＳｏＣとして構成された第１半導体装置２１Ｄと、プロセッサ７を制御する第２半導体装置２２Ｄと、を備える。プロセッサ７または第１半導体装置２０Ｄは、蓄電部５が蓄積する電力が供給される。蓄電部５は、電力を供給する電力供給部３０の電力を蓄積する。電力供給部３０には、例えば上述した太陽電池３などを用いることができる。なお、第１半導体装置２１Ｄは、プロセッサ７の他にも、たとえばメインメモリ８などを有する構成であってもよい。
【００９８】
第２半導体装置２２Ｄは、プロセッサ７が動作中に蓄電部５が蓄積する電力量が第１電力量Ｐ１まで低下すると、プロセッサ７の動作を停止させ、プロセッサ７の動作を停止させた後、蓄電部５が蓄積する電力量が第１電力量Ｐ１よりも大きい第２電力量Ｐ２まで増加すると、プロセッサ７の動作を再開させる。
【００９９】
図１９は、第２半導体装置２２Ｄによる処理を示すフローチャートである。第２半導体装置２２Ｄは、図１９のフローチャートで示す処理を、例えば百ミリ秒単位の短い周期で繰り返し実行して、プロセッサ７の停止と再開を制御する。
【０１００】
まず、第２半導体装置２２Ｄは、検出部１１を介して蓄電部５が蓄積する電力量を取得する（ステップＳ９０１）。次に、第２半導体装置２２Ｄは、プロセッサ７が動作しているか否かを判定し（ステップＳ９０２）、プロセッサ７が動作していれば（ステップＳ９０２：Ｙｅｓ）、ステップＳ９０１で取得した電力量、すなわち蓄電部５が蓄積する電力量が第１電力量Ｐ１以下であるか否かを判定する（ステップＳ９０３）。そして、蓄電部５が蓄積する電力量が第１電力量Ｐ１以下であれば（ステップＳ９０３：Ｙｅｓ）、プロセッサ７を停止させて（ステップＳ９０４）、ステップＳ９０１に戻る。一方、蓄電部５が蓄積する電力量が第１電力量Ｐ１を超えていれば（ステップＳ９０３：Ｎｏ）、プロセッサ７を動作させたままステップＳ９０１に戻る。
【０１０１】
また、プロセッサ７が停止している場合は（ステップＳ９０２：Ｎｏ）、第２半導体装置２２Ｄは、ステップＳ９０１で取得した電力量、すなわち蓄電部５が蓄積する電力量が第２電力量Ｐ２以上であるか否かを判定する（ステップＳ９０５）。そして、蓄電部５が蓄積する電力量が第２電力量Ｐ２以上であれば（ステップＳ９０５：Ｙｅｓ）、プロセッサ７の動作を再開させて（ステップＳ９０６）、ステップＳ９０１に戻る。一方、蓄電部５が蓄積する電力量が第２電力量Ｐ２未満であれば（ステップＳ９０５：Ｎｏ）、プロセッサ７を停止させたままステップＳ９０１に戻る。
【０１０２】
以上のように、第４変形例の情報処理装置１Ｄでは、第２半導体装置２２Ｄが、蓄電部５が蓄積する電力量に応じてプロセッサ７の停止と再開を制御するので、使用環境に応じた適切な状態遷移を、ユーザに意識させずに実現することができる。
【０１０３】
（第５変形例）
図２０は、第５変形例の情報処理装置１Ｅのハードウェア構成例を示すブロック図である。なお、第５変形例の情報処理装置１Ｅにおいて、上述した情報処理装置１と共通の構成要素については、同一の符号を付している。図２０に示すように、第５変形例の情報処理装置１Ｅは、プロセッサ７を有するＳｏＣとして構成された第１半導体装置２１Ｅと、第１半導体装置２１Ｅに接続される第２半導体装置２２Ｅと、を備える。第１半導体装置２１Ｅは、蓄電部５が蓄積する電力が供給される。蓄電部５は、電力を供給する電力供給部３０の電力を蓄積する。電力供給部３０には、例えば上述した太陽電池３などを用いることができる。なお、第１半導体装置２１Ｅは、プロセッサ７の他にも、たとえばメインメモリ８などを有する構成であってもよい。
【０１０４】
第２半導体装置２２Ｅは、蓄電部５が蓄積する電力量が第１電力量Ｐ１まで低下すると、第１半導体装置２１Ｅの消費電力を小さくさせ、蓄電部５が蓄積する電力量が第１電力量Ｐ１よりも大きい第２電力量Ｐ２まで増加すると、第１半導体装置２１Ｅの消費電力を大きくさせる。ここで、第１半導体装置２１Ｅの消費電力を小さくさせるとは、プロセッサ７を稼働状態から停止状態に遷移させることに相当する。例えば、プログラムを実行しているプロセッサ７を停止させることで、第１半導体装置２１Ｅの消費電力が小さくなる。また、第１半導体装置２１Ｅの消費電力を大きくさせるとは、プロセッサ７を停止状態から稼働状態に遷移させることに相当する。例えば、プロセッサ７にプログラムの実行を再開させることで、第１半導体装置２１Ｅの消費電力が大きくなる。
【０１０５】
図２１は、第２半導体装置２２Ｅによる処理を示すフローチャートである。第２半導体装置２２Ｅは、図２１のフローチャートで示す処理を、例えば百ミリ秒単位の短い周期で繰り返し実行して、第１半導体装置２１Ｅの消費電力を制御する。
【０１０６】
まず、第２半導体装置２２Ｅは、検出部１１を介して蓄電部５が蓄積する電力量を取得する（ステップＳ１００１）。次に、第２半導体装置２２Ｅは、第１半導体装置２１Ｅの消費電力が所定の閾値以上であるか否かを判定し（ステップＳ１００２）、第１半導体装置２１Ｅの消費電力が閾値以上であれば（ステップＳ１００２：Ｙｅｓ）、ステップＳ１００１で取得した電力量、すなわち蓄電部５が蓄積する電力量が第１電力量Ｐ１以下であるか否かを判定する（ステップＳ１００３）。そして、蓄電部５が蓄積する電力量が第１電力量Ｐ１以下であれば（ステップＳ１００３：Ｙｅｓ）、第１半導体装置２１Ｅの消費電力を小さくして（ステップＳ１００４）、ステップＳ１００１に戻る。一方、蓄電部５が蓄積する電力量が第１電力量Ｐ１を超えていれば（ステップＳ１００３：Ｎｏ）、第１半導体装置２１Ｅの消費電力を小さくすることなくステップＳ１００１に戻る。
【０１０７】
また、第１半導体装置２１Ｅの消費電力が閾値未満の場合は（ステップＳ１００２：Ｎｏ）、第２半導体装置２２Ｅは、ステップＳ１００１で取得した電力量、すなわち蓄電部５が蓄積する電力量が第２電力量Ｐ２以上であるか否かを判定する（ステップＳ１００５）。そして、蓄電部５が蓄積する電力量が第２電力量Ｐ２以上であれば（ステップＳ１００５：Ｙｅｓ）、第１半導体装置２１Ｅの消費電力を大きくして（ステップＳ１００６）、ステップＳ１００１に戻る。一方、蓄電部５が蓄積する電力量が第２電力量Ｐ２未満であれば（ステップＳ１００５：Ｎｏ）、第１半導体装置２１Ｅの消費電力を大きくすることなくステップＳ１００１に戻る。
【０１０８】
以上のように、第５変形例の情報処理装置１Ｅでは、プロセッサ７を有する第１半導体装置２１Ｅに接続された第２半導体装置２２Ｅが、蓄電部５が蓄積する電力量に応じて第１半導体装置２１Ｅの消費電力を制御するので、使用環境に応じた適切な状態遷移を、ユーザに意識させずに実現することができる。
【０１０９】
以上、第１変形例〜第５変形例を上述した第１実施形態の変形例として説明したが、これら第１変形例〜第５変形例は、上述した第１実施形態〜第５実施形態のいずれの実施形態にも適用することができる。
【０１１０】
以上、本発明の実施形態やその変形例を説明したが、ここで説明した実施形態やその変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態やその変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１１】
１  情報処理装置
２ａ  表示部
２ｂ  タッチパネル
３  太陽電池
４  キーボード
５  蓄電部
６  電源管理部
７  プロセッサ
８  メインメモリ
９  ２次ストレージ
１０  通信Ｉ／Ｆ
１１  検出部
１２  状態制御装置
２０Ａ，２０Ｂ，２０Ｃ  半導体装置
２１Ｄ，２１Ｅ  第１半導体装置
２２Ｄ，２２Ｅ  第２半導体装置
【図１】
2013218672.tif 000003
【図２】
2013218672.tif 000004
【図３】
2013218672.tif 000005
【図４】
2013218672.tif 000006
【図５】
2013218672.tif 000007
【図６】
2013218672.tif 000008
【図７】
2013218672.tif 000009
【図８】
2013218672.tif 000010
【図９】
2013218672.tif 000011
【図１０】
2013218672.tif 000012
【図１１】
2013218672.tif 000013
【図１２】
2013218672.tif 000014
【図１３】
2013218672.tif 000015
【図１４】
2013218672.tif 000016
【図１５】
2013218672.tif 000017
【図１６】
2013218672.tif 000018
【図１７】
2013218672.tif 000019
【図１８】
2013218672.tif 000020
【図１９】
2013218672.tif 000021
【図２０】
2013218672.tif 000022
【図２１】
2013218672.tif 000023