(57)【要約】【課題】動作中に電力量が不足することを防止可能な情報処理装置を提供する。【解決手段】情報処理装置は、不揮発性の記憶部と、蓄電部と、電源制御部と、を備える。蓄電部は、主記憶部に電力を供給するための手段である。電源制御部は、主記憶部に対する電力の供給を制御する。また、電源制御部は、蓄電部の電力量が予め定められた閾値以上にまで回復したときに、蓄電部から主記憶部に電力を供給するように制御する。【選択図】図１
2015092382.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、
前記主記憶部および前記プロセッサに対する電力の供給を制御する電源制御部と、を備え、
前記電源制御部は、前記蓄電部の電力量が予め定められた閾値以上にまで回復するまでは前記主記憶部と前記プロセッサは起動させず、前記蓄電部の電力量が予め定められた閾値以上にまで回復したときに、前記蓄電部から前記主記憶部および前記プロセッサに電力を供給するように制御し、
前記プロセッサは、前記蓄電部から電力が供給されると起動する、
情報処理装置。
【請求項２】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、
前記主記憶部および前記プロセッサに対する電力の供給を制御する電源制御部と、を備え、
前記電源制御部は、データ入力があった場合、前記蓄電部の電力量が予め定められた閾値以上にまで回復するまでは前記主記憶部と前記プロセッサは起動させず、前記蓄電部の電力量が予め定められた閾値以上にまで回復していれば、前記蓄電部から前記主記憶部および前記プロセッサに電力を供給するように制御し、
前記プロセッサは、前記蓄電部から電力が供給されると起動する、
情報処理装置。
【請求項３】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、
前記主記憶部および前記プロセッサに対する電力の供給を制御する電源制御部と、を備え、
前記電源制御部は、ユーザからの入力があった場合、前記蓄電部の電力量が予め定められた閾値以上にまで回復するまでは前記主記憶部と前記プロセッサは起動させず、前記蓄電部の電力量が予め定められた閾値以上にまで回復していれば、前記蓄電部から前記主記憶部および前記プロセッサに電力を供給するように制御し、
前記プロセッサは、前記蓄電部から電力が供給されると起動する、
情報処理装置。
【請求項４】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、
前記主記憶部および前記プロセッサに対する電力の供給を制御する電源制御部と、を備え、
前記電源制御部は、前記プロセッサが処理すべきデータの入力があった場合、前記蓄電部の電力量が予め定められた閾値以上にまで回復するまでは前記主記憶部と前記プロセッサは起動させず、前記蓄電部の電力量が予め定められた閾値以上にまで回復していれば、前記蓄電部から前記主記憶部および前記プロセッサに電力を供給するように制御し、
前記プロセッサは、前記蓄電部から電力が供給されると起動する、
情報処理装置。
【請求項５】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
前記主記憶部および前記プロセッサに電力を供給するための蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、
前記主記憶部および前記プロセッサに対する電力の供給を制御する電源制御部と、を備え、
前記電源制御部は、前記蓄電部の電力量が予め定められた閾値以上にまで回復するまでは前記主記憶部および前記プロセッサの電源電圧を昇圧せず、前記蓄電部の電力量が予め定められた閾値以上にまで回復したときに、前記主記憶部および前記プロセッサの電源電圧を昇圧させ、
前記プロセッサは、前記蓄電部から電力が供給されると起動する、
情報処理装置。
【請求項６】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
前記主記憶部および前記プロセッサに電力を供給するための蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、を備え、
前記蓄電部の電力量が予め定められた閾値以上にまで回復しないときはスリープ状態を維持し、前記蓄電部の電力量が予め定められた閾値以上にまで回復したときに、前記主記憶部および前記プロセッサの電源電圧を昇圧させて、スリープ状態から通常状態にする情報処理装置。
【請求項７】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
前記主記憶部および前記プロセッサに電力を供給するための蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、を備え、
前記蓄電部の電力量が予め定められた閾値以上にまで回復しないときはスリープ状態を維持し、前記蓄電部の電力量が予め定められた閾値以上にまで回復したときに、前記主記憶部および前記プロセッサの電源電圧を昇圧させて、スリープ状態から復帰する情報処理装置。
【請求項８】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
前記主記憶部および前記プロセッサに電力を供給するための蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、を備え、
前記蓄電部の電力量が予め定められた閾値以上にまで回復しないときはスリープ状態を維持し、前記蓄電部の電力量が予め定められた閾値以上にまで回復したときに、前記主記憶部および前記プロセッサに電力を供給してスリープ状態から通常状態にする情報処理装置。
【請求項９】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
前記主記憶部および前記プロセッサに電力を供給するための蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、を備え、
前記蓄電部の電力量が予め定められた閾値以上にまで回復しないときはスリープ状態を維持し、前記蓄電部の電力量が予め定められた閾値以上にまで回復したときに、前記主記憶部および前記プロセッサに電力を供給してスリープ状態から復帰する情報処理装置。
【請求項１０】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、
前記主記憶部および前記プロセッサに対する電力の供給を制御する電源制御部と、を備え、
前記電源制御部は、前記蓄電部の電力量が予め定められた閾値以上にまで回復したときに、起動していない前記主記憶部および前記プロセッサに前記蓄電部から電力を供給するように制御し、
前記プロセッサは、前記蓄電部から電力が供給されると起動する、
情報処理装置。
【請求項１１】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、
前記主記憶部および前記プロセッサに対する電力の供給を制御する電源制御部と、を備え、
前記電源制御部は、データ入力があった場合、前記蓄電部の電力量が予め定められた閾値以上にまで回復していれば、起動していない前記主記憶部および前記プロセッサに前記蓄電部から電力を供給するように制御し、
前記プロセッサは、前記蓄電部から電力が供給されると起動する、
情報処理装置。
【請求項１２】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、
前記主記憶部および前記プロセッサに対する電力の供給を制御する電源制御部と、を備え、
前記電源制御部は、ユーザからの入力があった場合、前記蓄電部の電力量が予め定められた閾値以上にまで回復していれば、起動していない前記主記憶部および前記プロセッサに前記蓄電部から電力を供給し、
前記プロセッサは、前記蓄電部から電力が供給されると起動する、
制御する情報処理装置。
【請求項１３】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、
前記主記憶部に対する電力の供給を制御する電源制御部と、を備え、
前記電源制御部は、前記プロセッサが処理すべきデータの入力があった場合、前記蓄電部の電力量が予め定められた閾値以上にまで回復していれば、起動していない前記主記憶部および前記プロセッサに前記蓄電部から電力を供給するように制御し、
前記プロセッサは、前記蓄電部から電力が供給されると起動する、
情報処理装置。
【請求項１４】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
前記主記憶部および前記プロセッサに電力を供給するための蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、
前記主記憶部および前記プロセッサに対する電力の供給を制御する電源制御部と、を備え、
前記電源制御部は、前記蓄電部の電力量が予め定められた閾値以上にまで回復したときに、起動していない前記主記憶部および前記プロセッサの電源電圧を昇圧させ、
前記プロセッサは、前記蓄電部から電力が供給されると起動する、
情報処理装置。
【請求項１５】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
前記主記憶部および前記プロセッサに電力を供給するための蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、を備え、
前記蓄電部の電力量が予め定められた閾値以上にまで回復したときに、起動していない前記主記憶部および前記プロセッサの電源電圧を昇圧させて、スリープ状態から通常状態にする情報処理装置。
【請求項１６】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
前記主記憶部および前記プロセッサに電力を供給するための蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、を備え、
前記蓄電部の電力量が予め定められた閾値以上にまで回復したときに、起動していない前記主記憶部および前記プロセッサの電源電圧を昇圧させて、スリープ状態から復帰する情報処理装置。
【請求項１７】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
前記主記憶部および前記プロセッサに電力を供給するための蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、を備え、
前記蓄電部の電力量が予め定められた閾値以上にまで回復したときに、起動していない前記主記憶部および前記プロセッサに電力を供給してスリープ状態から通常状態にする情報処理装置。
【請求項１８】
プロセッサと、
前記プロセッサの起動時に必要となる情報を記憶する不揮発性の主記憶部と、
前記主記憶部および前記プロセッサに電力を供給するための蓄電部と、
発電した電力を前記蓄電部に供給する発電部と、を備え、
前記蓄電部の電力量が予め定められた閾値以上にまで回復したときに、起動していない前記主記憶部および前記プロセッサに電力を供給してスリープ状態から復帰する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置に関する。
【背景技術】
【０００２】
コンシューマ向けの電子機器のような組み込み機器では、消費電力を抑えるために、組み込み機器のプロセッサの処理が少ない時に、プロセッサの動作時の電圧を動的に下げる、または、動作周波数を下げるという技術が知られている。また、指定した時間内にアクセスが発生しないデバイスへの電源を遮断する技術も知られている。
【０００３】
さらに、一定時間内にユーザからの入力（例えば、キーボードの入力など）が行われないときに、スリープと呼ばれる状態に移行して消費電力を下げるという方法が存在する。スリープ状態とは、プロセッサの動作周波数および供給電圧を低下させ、プロセッサを低消費電力モードに移行して消費電力を下げる状態である。この方法では、プロセッサの状態および揮発性メモリの情報は各デバイスに保存されていることから、ユーザからの入力があったときには、短時間で通常の状態に戻ることが可能である。
【０００４】
スリープ状態とは異なり、プロセッサとメモリの情報を不揮発性の記憶装置（例えば、ハードディスク）に保存したのち、プロセッサとメモリの電源を遮断することで、スリープ状態よりもさらなる低消費電力な状態となる休止状態がある。休止状態にあるときに、例えばユーザが電源ボタンを押下したとする。この場合、組み込み機器は、ユーザが休止状態から通常状態への遷移を指示したと判断する。組み込み機器は、記憶装置に保存しておいたプロセッサの状態を読み出しプロセッサに書き戻し、さらに記憶装置からメモリ内の情報を書き戻して、休止状態の前の状態に復帰する。
【０００５】
このようにユーザが利用していないときに、低消費電力化するための技術が考えられている。低消費電力化のためにスリープ状態または休止状態に遷移するのは、事前に設定された時間内にユーザから入力が行われなかったときである。
【０００６】
一方、ユーザから入力が行われている最中であっても、数ミリ秒の時間単位では、プロセッサまたはデバイスが動作していない時間がある。例えば、人間がタイピングする時間は高々数十ミリ秒に１回程度である。このため、ユーザがキーボードを用いてタイピングしている場合、キーが押されるまでの時間はプロセッサが何も処理すべきタスクがない状態、すなわちアイドル状態になっていることがある。この数ミリ秒という時間単位で、プロセッサやメモリの電源を遮断することができれば、従来のように事前に設定された時間が経過するまで待つことなくプロセッサやメモリの電源を遮断することができることになるため、さらなる省電力化を実現することができる。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】David  Meisner  et  al，  “PowerNap:  Eliminting  Server  Idle  Power”，in  ACM  ASPLOS，2009
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来技術では、プロセッサが電源を投入されているとき、メモリにも電源が投入されているという仮定のもとにプロセッサやメモリの仕様が決められている。このため、プロセッサの電源が投入されているときに、メモリの電源が遮断され、プロセッサからアクセスする際にメモリにアクセスできないという状況は考慮されていない。
【０００９】
従来のシステムでは、メモリの電源だけを落とすという状況は、想定されていないため、メモリの電源を落としてシステムの低消費電力化を行うためには、プロセッサ側はメモリの電源が落ちている可能性があるということを考慮してアクセスするとともに、メモリ側の状態を把握するための手段が必要となる。
【課題を解決するための手段】
【００１０】
実施形態の情報処理装置は、不揮発性の記憶部と、蓄電部と、電源制御部と、を備える。蓄電部は、主記憶部に電力を供給するための手段である。電源制御部は、主記憶部に対する電力の供給を制御する。また、電源制御部は、蓄電部の電力量が予め定められた閾値以上にまで回復したときに、蓄電部から主記憶部に電力を供給するように制御する。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態にかかる情報処理装置のブロック図。
【図２】第１の実施形態における復帰処理のフローチャート。
【図３】第１の実施形態の変形例にかかる情報処理装置の示すブロック図。
【図４】第２の実施形態にかかる情報処理装置のブロック図。
【図５】第２の実施形態における復帰処理のフローチャート。
【図６】第２の実施形態の変形例にかかる情報処理装置のブロック図。
【図７】第３の実施形態にかかる情報処理装置のブロック図。
【図８】第３の実施形態における電源制御処理のフローチャート。
【図９】変形例にかかる復帰処理のフローチャート。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、この発明にかかる情報処理装置の好適な実施形態を詳細に説明する。
【００１３】
（第１の実施形態）
第１の実施形態にかかる情報処理装置は、プロセッサと不揮発性のメモリとを接続するメモリバスの一部をメモリの状態を監視する状態監視部に接続する。プロセッサは、スリープ状態から復帰するときに、状態監視部にメモリの状態を問い合わせ、メモリにアクセス可能な状態となってからメモリにアクセスする。
【００１４】
図１は、第１の実施形態にかかる情報処理装置１００の構成の一例を示すブロック図である。図１に示すように、情報処理装置１００は、プロセッサ１１０と、メモリ１３０と、状態監視部１２０と、を備えている。
【００１５】
メモリ１３０は、プロセッサ１１０の主記憶メモリとして用いられる不揮発性の記憶部である。状態監視部１２０は、メモリ１３０の状態を判定し判定結果をプロセッサ１１０に送信する。
【００１６】
プロセッサ１１０と状態監視部１２０とは、メモリバス全体のうち、状態監視用の一部のアドレスが割り当てられたバス５１ｂで接続される。メモリ１３０とプロセッサ１１０とは、メモリバス全体のうちバス５１ｂ以外のバス５１ａで接続される。また、状態監視部１２０とメモリ１３０とは、バス５１ｂに対応するアドレスが割り当てられたバス５１ｃで接続される。なお、バス５１ａとバス５１ｂ、または、バス５１ａとバス５１ｃが、１つのメモリバスに相当する。
【００１７】
プロセッサ１１０は、メモリ１１１を備えている。メモリ１１１は、揮発性または不揮発性のメモリである。例えば、メモリ１１１は、キャッシュメモリ、または、サイズが小さいプログラムを保存するための記憶部などにより構成する。
【００１８】
プロセッサ１１０は、オペレーティングシステムやアプリケーションソフトウェアを実行する。プロセッサ１１０は、主記憶メモリとしてメモリ１３０を用いる。また、プロセッサ１１０は、情報処理装置１００内の各部に対する電源の制御も行う。例えば、プロセッサ１１０は、メモリ１３０に対して電力の供給（電源の投入）および電力の遮断（電源の遮断）の制御を行う。
【００１９】
数ミリ秒の時間単位で生じるプロセッサ１１０のアイドル時間内で、プロセッサ１１０がメモリ１３０の電源の投入または遮断を行うためには、メモリ１３０に記憶された情報を別の記憶装置に移動する時間的な余裕はない。したがって、電源を遮断しても保持している情報が消去されない不揮発性のメモリが必須となる。このため、本実施形態では、メモリ１３０として不揮発性メモリを用いる。したがって、プロセッサ１１０がアイドル状態になったときに、メモリ１３０内の情報を退避することなく、すぐにメモリ１３０の電源を遮断することが可能となる。これにより、短時間でもメモリ１３０の電源を遮断することができ、情報処理装置１００の消費電力を下げることができる。
【００２０】
なお、図１では省略しているが、情報処理装置１００は、通常のパーソナルコンピュータと同様に、キーボード、マウス、タッチパネル、および、ネットワークインタフェース（Ｉ／Ｆ）などのデータ入力部を備えてもよい。また、情報処理装置１００は、データを表示するための液晶ディスプレイなどの表示部を備えていてもよい。
【００２１】
次に、状態監視部１２０の詳細について説明する。状態監視部１２０は、受信部１２１と、判定部１２２と、送信部１２３とを備えている。受信部１２１は、メモリ１３０にアクセス可能か否かの問い合わせを、バス５１ｂを介してプロセッサ１１０から受信する。そして、受信部１２１は、メモリ１３０にアクセス可能か否かの問い合わせを受信したことを判定部１２２に通知する。問い合わせには、プロセッサ１１０が、メモリ１３０の電源の供給を開始した時刻（電源投入時刻）が含まれる。なお、問い合わせとは別に電源投入時刻をプロセッサ１１０から状態監視部１２０に通知するように構成してもよい。
【００２２】
判定部１２２は、問い合わせを受信したとき（受信部１２１からメモリ１３０にアクセス可能か否かの問い合わせを受信したとの通知を受信したとき）に、メモリ１３０がアクセス可能か否かを判定する。例えば、判定部１２２は、メモリ１３０に対する電力の供給が開始されてからメモリ１３０が起動するまでの時間（起動時間）を用いてメモリ１３０がアクセス可能か判定する。また、判定部１２２は、メモリ１３０の電力の供給が開始されてからの状態監視部１２０のクロック数を数える機能を備えてもよい。そして、受信部１２１がプロセッサ１１０からのメモリ１３０がアクセス可能であるかという問い合わせを受信したときに、判定部１２２が、クロック数からアクセスが可能であると判定してもよい。判定部１２２は、判定結果を送信部１２３に通知する。
【００２３】
状態監視部１２０は、例えば、予めメモリ１３０の起動時間を入力し、内部の記憶部（図示せず）に記憶しておく。判定部１２２は、アクセス可能かの問い合わせを受信したときに、通知された電源投入時刻から起動時間に相当する時間が経過したか否かを判定する。判定部１２２は、電源投入時刻から起動時間に相当する時間が経過した場合に、メモリ１３０がアクセス可能であると判定する。なお、基準とする時刻は電源投入時刻に限られるものではない。例えば、問い合わせを受信した時刻を基準として判定してもよい。
【００２４】
送信部１２３は、判定部１２２による判定結果、すなわち、メモリ１３０がアクセス可能か否かを表す情報を、バス５１ｂを介してプロセッサ１１０に送信する。
【００２５】
次に、主記憶メモリとして不揮発性のメモリ１３０を用いた情報処理装置１００の低消費電力時の動作について説明する。
【００２６】
図示しないキーボードまたはネットワークなどからのデータの入力待ちの状態となると、処理すべきプロセスが存在しなくなるため、プロセッサ１１０はアイドル状態へ遷移する。プロセッサ１１０がアイドル状態となることで、メモリ１３０へのアクセスも発生しないため、メモリ１３０の電源を遮断することが可能となる。
【００２７】
そこで、プロセッサ１１０は、アイドル状態へ遷移する際に、メモリ１３０の電源制御に必要なプログラム（電源制御用プログラム）がメモリ１１１に保存されていることを確認する。電源制御用プログラムがメモリ１１１に保存されていない場合、当該電源制御用プログラムをメモリ１３０から読み出してプロセッサ１１０内のメモリ１１１に保存する。
【００２８】
次に、プロセッサ１１０は、電源制御用プログラムを実行することにより、メモリ１３０の電源の制御を行い、メモリ１３０の電源を遮断する。このとき、メモリ１３０は不揮発性メモリであるため、電源を遮断されても保存している情報が消去されることはない。
【００２９】
以上のように、メモリ１３０を不揮発性メモリとすることで、メモリ１３０内の情報を退避することなく、メモリ１３０の電源を素早く遮断することが可能となる。また、プロセッサ１１０からメモリ１３０へのアクセスが生じないときには、直ちにメモリ１３０の電源を遮断することで、情報処理装置１００の消費電力を削減することが可能となる。このように、プロセッサの電源が投入されている状態からメモリの電源が遮断された場合であっても、プロセッサからメモリに正しくアクセスすることが可能となる。
【００３０】
次に、メモリ１３０の電源が遮断されているときに、プロセッサ１１０にデータが入力された際の動作について説明する。図２は、第１の実施形態における復帰処理の全体の流れを示すフローチャートである。復帰処理とは、アイドル状態から通常状態へ遷移する処理を表す。
【００３１】
プロセッサ１１０にデータが入力されると、プロセッサ１１０は、アイドル状態から通常状態へ遷移する（ステップＳ１０１）。プロセッサ１１０は、メモリ１１１に保存されている電源制御用プログラムに従って、メモリ１３０に電源を投入する。
【００３２】
プロセッサが動作中に主記憶メモリの電源を投入する際に注意すべきことがある。従来技術では、プロセッサと主記憶メモリとを接続しているメモリバスには、プロセッサが主記憶メモリの状態を調べる手段は存在しない。従来の情報処理装置では、主記憶メモリの電源だけが遮断されることはなく、プロセッサが稼働しているときには常に主記憶メモリはアクセスが可能であるという前提条件が存在するためである。このため、プロセッサは主記憶メモリがアクセス可能な状態であることを知ることができない。また、この前提条件の下では、プロセッサが、主記憶メモリの準備が整う前に、処理すべきデータが入力された時点でメモリバスを通じて主記憶メモリへの読み出しまたは書き込み要求を送出する可能性がある。
【００３３】
一方、主記憶メモリは、電源投入後、内部の回路が安定するまでのある一定時間は、外部からのアクセス要求には応答することができない。すなわち、主記憶メモリは、一定時間、読み出しまたは書き込み要求を受け取ることができない。
【００３４】
このように、メモリ１３０の起動後の準備が整う前に、プロセッサ１１０からアクセスが発生した場合、メモリ１３０は正常に応答することができない。このため、例えばプロセッサ１１０は、メモリ１３０から正常にプログラムを読み出すことができず、正常に動作しないプログラムを実行しようとして、不正命令エラー状態となりうる。この結果、プロセッサ１１０は不正命令の処理に対応した割り込み処理を実行することになる。プロセッサ１１０がアイドル状態になりメモリ１３０の電源を遮断するたびに、不正命令エラーを処理するための割り込み処理を実行していては、無駄な電力を消費することになる。
【００３５】
そこで、本実施形態では、メモリ１３０が電源投入後から起動するまでの時間を入力した状態監視部１２０を用いる。以下、図２に戻り説明を続ける。
【００３６】
プロセッサ１１０は、アイドル状態から通常状態へ遷移すると、まずはメモリ１３０の状態を把握するために、状態監視部１２０に対してメモリ１３０の状態を問い合わせる（ステップＳ１０２）。状態監視部１２０の受信部１２１は、当該問い合わせを受信する。そして当該問い合わせを受信したことを判定部１２２に通知する。判定部１２２は、メモリ１３０が応答可能（アクセス可能）な状態であるか否かを判断する（ステップＳ１０３）。例えば、判定部１２２は、電源投入時刻からメモリ１３０の起動時間が経過したか否かを判定する。判定部１２２は、電源投入時刻から起動時間に相当する時間が経過した場合に、メモリ１３０がアクセス可能であると判定する。また、判定部１２２は、電源投入時刻から起動時間に相当する時間が経過する前であれば、メモリ１３０がアクセス可能でないと判定する。
【００３７】
また、判定部１２２は、メモリ１３０の電力の供給が開始されてからの状態監視部のクロック数を数える機能を備えてもよい。そして、受信部１２１がプロセッサ１１０からのメモリ１３０がアクセス可能であるかという問い合わせを受信したときに、判定部１２２が、クロック数からアクセスが可能であると判定してもよい。
【００３８】
メモリ１３０がアクセス可能な状態の場合（ステップＳ１０３：Ｙｅｓ）、送信部１２３は、メモリ１３０へのアクセスが可能であることをプロセッサ１１０に通知する（ステップＳ１０４）。メモリ１３０がアクセス可能な状態ではない場合（ステップＳ１０３：Ｎｏ）、送信部１２３は、メモリ１３０がアクセスできない状態であることプロセッサ１１０に通知する（ステップＳ１０５）。
【００３９】
状態監視部１２０は、上記機能の他に以下のような機能を備えていてもよい。例えば、メモリ１３０は、起動時にインタフェース周りの設定が必要な場合がある。そこで、状態監視部１２０が、メモリ１３０の起動時の設定に必要なバスの制御を行い、メモリ１３０のインタフェースの設定を行うように構成してもよい。
【００４０】
（変形例）
図１では、状態監視部１２０がプロセッサ１１０とメモリ１３０との間に接続されている。メモリ１３０に対するインタフェースの設定が不要であり、かつ、プロセッサ１１０にＩ２ＣまたはＵＡＲＴ（Universal  Asynchronous  Receiver  Transmitter）のような通信用インタフェースが備わっているならば、図３に示すように状態監視部１２０はプロセッサ１１０とメモリ１３０との間に接続されていなくてもよい。
【００４１】
図３は、第１の実施形態の変形例にかかる情報処理装置１００−１の構成の一例を示すブロック図である。図３に示すように、情報処理装置１００−１は、プロセッサ１１０−１と、メモリ１３０と、状態監視部１２０−１と、を備えている。なお、図１と同様の機能を備える構成部は、同一の符号を付し説明を省略する。
【００４２】
プロセッサ１１０−１は、状態監視部１２０−１とＵＡＲＴなどのインタフェース５２で接続される点が、図１のプロセッサ１１０と異なっている。同様に、状態監視部１２０−１は、プロセッサ１１０−１とインタフェース５２で接続される点が、図１の状態監視部１２０と異なっている。なお、バス５１は、図１のバス５１ａとバス５１ｂ、および、バス５１ａとバス５１ｃを統合したバスに相当する。
【００４３】
受信部１２１−１は、インタフェース５２を介してプロセッサ１１０−１から問い合わせを受信する点が図１の受信部１２１と異なっている。送信部１２３−１は、インタフェース５２を介してプロセッサ１１０−１に判定結果を送信する点が図１の送信部１２３と異なっている。すなわち、本変形例は、ＵＡＲＴなどを通じてプロセッサ１１０−１から電源投入時刻を受け取るとともに、プロセッサ１１０からのメモリ１３０の状態の問い合わせに答える構成となる。
【００４４】
（第２の実施形態）
図４は、第２の実施形態にかかる情報処理装置２００の構成の一例を示すブロック図である。図４に示すように、情報処理装置２００は、プロセッサ２１０と、メモリ２３０と、状態監視部１２０と、電源制御部２４０と、を備えている。
【００４５】
第２の実施形態では、プロセッサ２１０とメモリ２３０の機能、および、電源制御部２４０を追加したことが第１の実施形態と異なっている。その他の構成および機能は、第１の実施形態にかかる情報処理装置１００のブロック図である図１と同様であるので、同一符号を付し、ここでの説明は省略する。
【００４６】
プロセッサ２１０およびメモリ２３０は、それぞれ信号線６１および６２により電源制御部２４０と接続される。
【００４７】
第２の実施形態では、電源制御部２４０が、プロセッサ２１０およびメモリ２３０の電源を管理する。電源制御部２４０は、プロセッサ２１０と通信が可能なように信号線６１で接続されている。電源制御部２４０は、プロセッサ２１０から信号線６１を通じてプロセッサ２１０およびメモリ２３０の電源を遮断してもよいという指示を受けると、プロセッサ２１０、メモリ２３０、および、状態監視部１２０の電源を遮断するか、または、任意の電圧に降圧および昇圧することが可能な機能を備える。
【００４８】
プロセッサ２１０は、データの入力待ち状態となると、プロセッサ２１０への供給電圧を下げる指示または電源遮断の指示、および、状態監視部１２０およびメモリ２３０の電源遮断の指示を電源制御部２４０に対して送出する。
【００４９】
プロセッサ２１０は、電源制御部２４０に対してプロセッサ２１０の電源遮断またはプロセッサ２１０内の情報が保持されない省電力モード動作時の電圧となるように指示を出す場合、先にプロセッサ２１０内の情報をメモリ２３０へ退避させる必要がある。そのため、プロセッサ２１０の次の起動時に必要となる情報を先にメモリ２３０へ書き込んだ後、プロセッサ２１０の電源遮断の指示を電源制御部２４０に送る。プロセッサ２１０内の情報が保持される下限までプロセッサ２１０の電源電圧を下げる場合であれば、プロセッサ２１０内の情報を退避させる必要はない。この場合には、プロセッサ２１０はアイドル状態になると直ちに、プロセッサ２１０への供給電圧の降圧および状態監視部１２０、メモリ２３０の電源を遮断するように電源制御部２４０に対して指示を送出する。
【００５０】
次に、ユーザからのキー入力やネットワークからのデータが到着すると、電源制御部２４０は、プロセッサ２１０、状態監視部１２０、および、メモリ２３０の電源電圧を昇圧する。電源制御部２４０は、事前に電源制御部２４０の管理下のデバイスの起動時間に関する情報を保持しておく。電源電圧の昇圧時には、電源制御部２４０は、保持した情報に基づいて起動に時間のかかるデバイスから順番に電源電圧を昇圧していく。
【００５１】
また、プロセッサ２１０は、メモリ２３０のみ電源電圧を下げるという指示を出すこともある。この場合には、電源制御部２４０は、メモリ２３０の電源電圧のみ降圧し、プロセッサ２１０からメモリ２３０の電圧の昇圧の指示が来たときにメモリ２３０の電源電圧を昇圧する。このように、プロセッサ２１０が起動中にメモリ２３０の電源を遮断する際には、第１の実施形態で説明したような問題が生じる。このため、状態監視部１２０を用いて、メモリ２３０の電源投入時に不具合が起きないように構成する。
【００５２】
次に、このように構成された第２の実施形態にかかる情報処理装置２００による復帰処理について図５を用いて説明する。図５は、第２の実施形態における復帰処理の全体の流れを示すフローチャートである。
【００５３】
プロセッサ２１０は、メモリ２３０の電圧の昇圧を、電源制御部２４０に対して指示する（ステップＳ２０１）。電源制御部２４０は、指示に応じてメモリ２３０の電源電圧を昇圧する（ステップＳ２０２）。この後、プロセッサ２１０は、状態監視部１２０にメモリ２３０の状態を問い合わせ、アクセス可能な場合にアクセスする（ステップＳ２０３〜ステップＳ２０６）。
【００５４】
ステップＳ２０３からステップＳ２０６までの処理は、第１の実施形態にかかる情報処理装置１００におけるステップＳ１０２からステップＳ１０５までと同様の処理なので、その説明を省略する。
【００５５】
（変形例）
図４の状態監視部１２０はプロセッサ２１０とメモリ２３０との間に接続されているが、第１の実施形態の変形例（図３）と同様に、状態監視部１２０はプロセッサ２１０とメモリ２３０との間に接続されていなくてもよい。図６は、このように構成された第２の実施形態の変形例にかかる情報処理装置２００−１の構成の一例を示すブロック図である。なお、図６の各構成部は、図３または図４の構成部と同様の機能を備えるため、詳細な説明を省略する。図６に示すように、本変形例は、ＵＡＲＴなどを通じてプロセッサ２１０−１から電源投入時刻を受け取るとともに、プロセッサ２１０−１からのメモリ２３０の状態の問い合わせに答える構成としている。
【００５６】
（第３の実施形態）
図７は、第３の実施形態にかかる情報処理装置３００の構成の一例を示すブロック図である。図７に示すように、情報処理装置３００は、プロセッサ２１０と、メモリ２３０と、状態監視部１２０と、電源制御部３４０と、太陽電池３５１と、二次電池３５２と、を備えている。第３の実施形態は、第２の実施形態（図４）の構成に、さらに発電装置である太陽電池３５１および二次電池３５２を加えた構成である。
【００５７】
このように、情報処理装置３００は、太陽電池３５１を備え、太陽電池３５１が発電する電力と、二次電池３５２が蓄えている電力を用いて動作する。
【００５８】
太陽電池３５１は、光エネルギーを電力に変換して出力する。二次電池３５２は、太陽電池３５１から出力された電力を蓄え、プロセッサ２１０およびメモリ２３０を含む情報処理装置３００の各構成部に対して、蓄えた電力を供給する蓄電部として機能する。電源制御部３４０は、太陽電池３５１の発電量および二次電池３５２が蓄える電力量に応じて各構成部の電源を制御する機能をさらに備える点が、第２の実施形態の電源制御部２４０と異なっている。
【００５９】
本実施形態で発電装置として用いる太陽電池３５１は、一般に発電量が不安定である。また、太陽電池３５１の発電量とプロセッサ２１０およびメモリ２３０が消費する消費電力の余剰分が、二次電池３５２の充電に回される。このため、ユーザの利用状況や太陽電池３５１の発電量に依存して二次電池３５２の持つ電力量は変化する。したがって、太陽電池３５１および二次電池３５２で駆動する場合、情報処理装置３００の動作時に必要な電力が得られない可能性がある。
【００６０】
このように電源が不安定であり、必要な電力が得られないときには、素早くプロセッサ２１０やメモリ２３０を低消費電力モードに遷移させる必要がある。また、情報処理装置３００の状態を安全に中断させるために、最低限の電力となった時には再起動する際に必要な情報を退避させるという制御が必要となる。さらに、再び起動可能な電力となった時点で起動するように制御しなければならない。
【００６１】
以上のような不安定な発電装置である太陽電池３５１を用いて、太陽電池３５１または二次電池３５２から必要な電力を得る情報処理装置３００の動作について、以下に説明する。
【００６２】
動作中に情報処理装置３００が動作する電力が十分にあり、消費電力を削減するためにプロセッサ２１０がスリープ状態に遷移する場合について説明する。太陽電池３５１の発電量または二次電池３５２に蓄えられた電力が十分にある場合であっても、プロセッサ２１０がアイドル状態になった時にプロセッサ２１０およびメモリ２３０の電源を遮断する。
【００６３】
ユーザからのキーボードの入力など、プロセッサ２１０が処理すべきデータが送られてくると、電源制御部３４０は、太陽電池３５１および二次電池３５２の電力を確認し、起動するために必要な電力がある場合には、プロセッサ２１０、メモリ２３０、および状態監視部１２０の電源電圧を昇圧して、これらのデバイスを起動する。
【００６４】
情報処理装置３００が動作するために必要な電力が得られない場合、すなわち、太陽電池３５１が発電している電力および二次電池３５２に蓄えられている電力が少なく、情報処理装置３００を起動し続けていることができないと判断すると、電源制御部３４０は、プロセッサ２１０およびメモリ２３０の電源を遮断するための準備を始める。まず、最初に電源制御部３４０は、プロセッサ２１０に対して割り込みを通知する。プロセッサ２１０は、電源制御部３４０からの割り込みに応じてプロセッサ２１０の内部の状態をメモリ２３０へ退避させる。プロセッサ２１０内部の情報をメモリ２３０へ退避すると、プロセッサ２１０は、電源制御部３４０に対して信号線６１を通じて内部情報を正常に退避できたことを通知する。これにより、プロセッサ２１０は安全に電源を遮断することが可能となる。
【００６５】
電源制御部３４０は、プロセッサ２１０から電源を遮断するための準備ができたという通知を受け取ったのち、プロセッサ２１０、メモリ２３０、および状態監視部１２０の電源電圧を降圧する。これにより、情報処理装置３００はスリープ状態となる。
【００６６】
このスリープ状態のとき、ユーザからキー入力があったとする。以下、この場合の処理について図８を用いて説明する。図８は、第３の実施形態における電源制御処理の全体の流れを示すフローチャートである。
【００６７】
太陽電池３５１または二次電池３５２の電力で電源制御部３４０が起動している場合には、電源制御部３４０は、ユーザからの入力をトリガーとして、二次電池３５２の電力が、プロセッサ２１０およびメモリ２３０を起動するのに十分な電力であるか確認する。例えば、電源制御部３４０は、二次電池３５２に蓄えられた電力量が、電力量の閾値より大きいか否かを判断する（ステップＳ３０１）。閾値は、例えばプロセッサ２１０、メモリ２３０、状態監視部１２０および電源制御部３４０が起動するために最小限必要な電力量として予め定めておく。
【００６８】
二次電池３５２の電力量が閾値以下の場合（ステップＳ３０１：Ｎｏ）、ユーザからの入力を無視し、電源制御部３４０は、情報処理装置３００の状態をスリープ状態に維持する（ステップＳ３０３）。二次電池３５２に情報処理装置３００を起動するのに十分な電力が蓄えられた後、電源制御部３４０に情報処理装置３００の起動イベントが送られた場合、すなわち、二次電池の電力量が閾値より大きい場合（ステップＳ３０１：Ｙｅｓ）、電源制御部３４０は、プロセッサ２１０、メモリ２３０、および状態監視部１２０を起動（電源電圧を昇圧）して（ステップＳ３０２）、スリープ状態から通常状態へ遷移する。
【００６９】
電源制御部３４０は、太陽電池３５１の発電量が十分であっても、二次電池３５２の充電量が不十分である時には、情報処理装置３００を起動しない。二次電池３５２の蓄えられた電力は安定した電力として利用することができるが、太陽電池３５１が発電した電力は不安定であり、起動中に発電量が不足する可能性があるためである。このため、電源制御部３４０は、起動する際に、二次電池３５２に蓄えられている電力を参照し、この電力が不足している場合には、太陽電池３５１により、起動するのに十分な電力が蓄えられるまで、プロセッサ２１０やメモリ２３０の電源電圧を昇圧しない。
【００７０】
以上のように、不安定な太陽電池３５１を搭載している場合には、二次電池３５２に蓄えられた電力が一定の電力以下であれば、スリープ状態を続け、二次電池３５２に蓄えられた電力が一定の値以上にまで回復したときにプロセッサ２１０およびメモリ２３０を起動させる。このように、不安定な太陽電池３５１を備えている場合、電力が回復するまで起動させないように制御することで、電力が不足気味の場合であっても情報処理装置３００を正常に動作させ続けることが可能となる。
【００７１】
以上説明したとおり、第１から第３の実施形態によれば、不揮発性のメモリを主記憶メモリとして利用するため、電源遮断時に情報を退避する必要がない。このため、主記憶メモリへのアクセスが生じないときに直ちに主記憶メモリの電源を遮断することで消費電力をより削減することができる。また、電源遮断後に主記憶メモリを起動したときに、主記憶メモリがアクセス可能な状態か判定し、アクセス可能となったときに主記憶メモリにアクセスするように制御する。これにより、主記憶メモリから不正に情報を読み出してエラー状態となることを回避できる。
【００７２】
（変形例）
上記の各実施形態では、メモリ１３０がアクセス可能な状態ではない場合、メモリ１３０がアクセスできない状態であることプロセッサ１１０に通知していた。これに対し、メモリ１３０がアクセス可能な状態となるまでプロセッサ１１０への通知を行わずに判定を繰り返すように構成してもよい。
【００７３】
本変形例では、状態監視部１２０は、メモリ１３０の状態を判定し、メモリ１３０がアクセス可能であるときのみ、アクセスが可能であることをプロセッサ１１０に送信する。例えば、送信部１２３は、判定部１２２による判定結果が送信されたとき、すなわち、メモリ１３０がアクセス可能であるときのみ、バス５１ｂを介して、メモリ１３０がアクセス可能であることをプロセッサ１１０に送信する。
【００７４】
図９は、このように構成した変形例における復帰処理の全体の流れを示すフローチャートである。ステップＳ４０１およびステップＳ４０２は、図２のステップＳ１０１およびステップＳ１０２と同様であるため説明を省略する。
【００７５】
本変形例では、判定部１２２は、メモリ１３０がアクセス可能な状態ではない場合と判断した場合（ステップＳ４０３：Ｎｏ）、アクセス可能な状態となるまで判定を繰り返す。メモリ１３０がアクセス可能な状態となった場合（ステップＳ４０３：Ｙｅｓ）、判定部１２２は、アクセス可能な状態となったことを示す判定結果を送信部１２３に通知する。判定結果の通知を受けた送信部１２３は、メモリ１３０へのアクセスが可能であることをプロセッサ１１０に通知する（ステップＳ４０４）。
【００７６】
第１〜第３の実施形態にかかる情報処理装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。
【００７７】
また、第１〜第３の実施形態にかかる情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第１〜第３の実施形態にかかる情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００７８】
また、第１〜第３の実施形態のプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【００７９】
第１〜第３の実施形態にかかる情報処理装置で実行されるプログラムは、上述した各部（状態監視部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
【００８０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８１】
５１ａ、５１ｂ、５１ｃ  バス
５２  インタフェース
６１、６２  信号線
１００、２００、３００  情報処理装置
１１０、２１０  プロセッサ
１１１  メモリ
１２０  状態監視部
１２１  受信部
１２２  判定部
１２３  送信部
１３０、２３０  メモリ
２４０、３４０  電源制御部
３５１  太陽電池
３５２  二次電池
【図１】
2015092382.tif 000003
【図２】
2015092382.tif 000004
【図３】
2015092382.tif 000005
【図４】
2015092382.tif 000006
【図５】
2015092382.tif 000007
【図６】
2015092382.tif 000008
【図７】
2015092382.tif 000009
【図８】
2015092382.tif 000010
【図９】
2015092382.tif 000011