説明

情報処理装置

【課題】主記憶メモリの起動時のエラーを回避しつつ、低消費電力化を実現する。
【解決手段】情報処理装置は、プロセッサと、不揮発性の記憶部と、受信部と、判定部と、送信部と、を備える。受信部は、記憶部にアクセス可能か否かの問い合わせをプロセッサから受信する。判定部は、問い合わせを受信したときに、記憶部に対する電力の供給が開始されてから記憶部が起動するまでの起動時間に基づいて、記憶部がアクセス可能か否かを判定する。送信部は、判定部による判定結果をプロセッサに送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置に関する。
【背景技術】
【0002】
コンシューマ向けの電子機器のような組み込み機器では、消費電力を抑えるために、組み込み機器のプロセッサの処理が少ない時に、プロセッサの動作時の電圧を動的に下げる、または、動作周波数を下げるという技術が知られている。また、指定した時間内にアクセスが発生しないデバイスへの電源を遮断する技術も知られている。
【0003】
さらに、一定時間内にユーザからの入力(例えば、キーボードの入力など)が行われないときに、スリープと呼ばれる状態に移行して消費電力を下げるという方法が存在する。スリープ状態とは、プロセッサの動作周波数および供給電圧を低下させ、プロセッサを低消費電力モードに移行して消費電力を下げる状態である。この方法では、プロセッサの状態および揮発性メモリの情報は各デバイスに保存されていることから、ユーザからの入力があったときには、短時間で通常の状態に戻ることが可能である。
【0004】
スリープ状態とは異なり、プロセッサとメモリの情報を不揮発性の記憶装置(例えば、ハードディスク)に保存したのち、プロセッサとメモリの電源を遮断することで、スリープ状態よりもさらなる低消費電力な状態となる休止状態がある。休止状態にあるときに、例えばユーザが電源ボタンを押下したとする。この場合、組み込み機器は、ユーザが休止状態から通常状態への遷移を指示したと判断する。組み込み機器は、記憶装置に保存しておいたプロセッサの状態を読み出しプロセッサに書き戻し、さらに記憶装置からメモリ内の情報を書き戻して、休止状態の前の状態に復帰する。
【0005】
このようにユーザが利用していないときに、低消費電力化するための技術が考えられている。低消費電力化のためにスリープ状態または休止状態に遷移するのは、事前に設定された時間内にユーザから入力が行われなかったときである。
【0006】
一方、ユーザから入力が行われている最中であっても、数ミリ秒の時間単位では、プロセッサまたはデバイスが動作していない時間がある。例えば、人間がタイピングする時間は高々数十ミリ秒に1回程度である。このため、ユーザがキーボードを用いてタイピングしている場合、キーが押されるまでの時間はプロセッサが何も処理すべきタスクがない状態、すなわちアイドル状態になっていることがある。この数ミリ秒という時間単位で、プロセッサやメモリの電源を遮断することができれば、従来のように事前に設定された時間が経過するまで待つことなくプロセッサやメモリの電源を遮断することができることになるため、さらなる省電力化を実現することができる。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】David Meisner et al, “PowerNap: Eliminting Server Idle Power”,in ACM ASPLOS,2009
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、従来技術では、プロセッサが電源を投入されているとき、メモリにも電源が投入されているという仮定のもとにプロセッサやメモリの仕様が決められている。このため、プロセッサの電源が投入されているときに、メモリの電源が遮断され、プロセッサからアクセスする際にメモリにアクセスできないという状況は考慮されていない。
【0009】
従来のシステムでは、メモリの電源だけを落とすという状況は、想定されていないため、メモリの電源を落としてシステムの低消費電力化を行うためには、プロセッサ側はメモリの電源が落ちている可能性があるということを考慮してアクセスするとともに、メモリ側の状態を把握するための手段が必要となる。
【課題を解決するための手段】
【0010】
実施形態の情報処理装置は、プロセッサと、不揮発性の記憶部と、受信部と、判定部と、送信部と、を備える。受信部は、記憶部にアクセス可能か否かの問い合わせをプロセッサから受信する。判定部は、問い合わせを受信したときに、記憶部に対する電力の供給が開始されてから記憶部が起動するまでの起動時間に基づいて、記憶部がアクセス可能か否かを判定する。送信部は、判定部による判定結果をプロセッサに送信する。
【図面の簡単な説明】
【0011】
【図1】第1の実施形態にかかる情報処理装置のブロック図。
【図2】第1の実施形態における復帰処理のフローチャート。
【図3】第1の実施形態の変形例にかかる情報処理装置の示すブロック図。
【図4】第2の実施形態にかかる情報処理装置のブロック図。
【図5】第2の実施形態における復帰処理のフローチャート。
【図6】第2の実施形態の変形例にかかる情報処理装置のブロック図。
【図7】第3の実施形態にかかる情報処理装置のブロック図。
【図8】第3の実施形態における電源制御処理のフローチャート。
【図9】変形例にかかる復帰処理のフローチャート。
【発明を実施するための形態】
【0012】
以下に添付図面を参照して、この発明にかかる情報処理装置の好適な実施形態を詳細に説明する。
【0013】
(第1の実施形態)
第1の実施形態にかかる情報処理装置は、プロセッサと不揮発性のメモリとを接続するメモリバスの一部をメモリの状態を監視する状態監視部に接続する。プロセッサは、スリープ状態から復帰するときに、状態監視部にメモリの状態を問い合わせ、メモリにアクセス可能な状態となってからメモリにアクセスする。
【0014】
図1は、第1の実施形態にかかる情報処理装置100の構成の一例を示すブロック図である。図1に示すように、情報処理装置100は、プロセッサ110と、メモリ130と、状態監視部120と、を備えている。
【0015】
メモリ130は、プロセッサ110の主記憶メモリとして用いられる不揮発性の記憶部である。状態監視部120は、メモリ130の状態を判定し判定結果をプロセッサ110に送信する。
【0016】
プロセッサ110と状態監視部120とは、メモリバス全体のうち、状態監視用の一部のアドレスが割り当てられたバス51bで接続される。メモリ130とプロセッサ110とは、メモリバス全体のうちバス51b以外のバス51aで接続される。また、状態監視部120とメモリ130とは、バス51bに対応するアドレスが割り当てられたバス51cで接続される。なお、バス51aとバス51b、または、バス51aとバス51cが、1つのメモリバスに相当する。
【0017】
プロセッサ110は、メモリ111を備えている。メモリ111は、揮発性または不揮発性のメモリである。例えば、メモリ111は、キャッシュメモリ、または、サイズが小さいプログラムを保存するための記憶部などにより構成する。
【0018】
プロセッサ110は、オペレーティングシステムやアプリケーションソフトウェアを実行する。プロセッサ110は、主記憶メモリとしてメモリ130を用いる。また、プロセッサ110は、情報処理装置100内の各部に対する電源の制御も行う。例えば、プロセッサ110は、メモリ130に対して電力の供給(電源の投入)および電力の遮断(電源の遮断)の制御を行う。
【0019】
数ミリ秒の時間単位で生じるプロセッサ110のアイドル時間内で、プロセッサ110がメモリ130の電源の投入または遮断を行うためには、メモリ130に記憶された情報を別の記憶装置に移動する時間的な余裕はない。したがって、電源を遮断しても保持している情報が消去されない不揮発性のメモリが必須となる。このため、本実施形態では、メモリ130として不揮発性メモリを用いる。したがって、プロセッサ110がアイドル状態になったときに、メモリ130内の情報を退避することなく、すぐにメモリ130の電源を遮断することが可能となる。これにより、短時間でもメモリ130の電源を遮断することができ、情報処理装置100の消費電力を下げることができる。
【0020】
なお、図1では省略しているが、情報処理装置100は、通常のパーソナルコンピュータと同様に、キーボード、マウス、タッチパネル、および、ネットワークインタフェース(I/F)などのデータ入力部を備えてもよい。また、情報処理装置100は、データを表示するための液晶ディスプレイなどの表示部を備えていてもよい。
【0021】
次に、状態監視部120の詳細について説明する。状態監視部120は、受信部121と、判定部122と、送信部123とを備えている。受信部121は、メモリ130にアクセス可能か否かの問い合わせを、バス51bを介してプロセッサ110から受信する。そして、受信部121は、メモリ130にアクセス可能か否かの問い合わせを受信したことを判定部122に通知する。問い合わせには、プロセッサ110が、メモリ130の電源の供給を開始した時刻(電源投入時刻)が含まれる。なお、問い合わせとは別に電源投入時刻をプロセッサ110から状態監視部120に通知するように構成してもよい。
【0022】
判定部122は、問い合わせを受信したとき(受信部121からメモリ130にアクセス可能か否かの問い合わせを受信したとの通知を受信したとき)に、メモリ130がアクセス可能か否かを判定する。例えば、判定部122は、メモリ130に対する電力の供給が開始されてからメモリ130が起動するまでの時間(起動時間)を用いてメモリ130がアクセス可能か判定する。また、判定部122は、メモリ130の電力の供給が開始されてからの状態監視部120のクロック数を数える機能を備えてもよい。そして、受信部121がプロセッサ110からのメモリ130がアクセス可能であるかという問い合わせを受信したときに、判定部122が、クロック数からアクセスが可能であると判定してもよい。判定部122は、判定結果を送信部123に通知する。
【0023】
状態監視部120は、例えば、予めメモリ130の起動時間を入力し、内部の記憶部(図示せず)に記憶しておく。判定部122は、アクセス可能かの問い合わせを受信したときに、通知された電源投入時刻から起動時間に相当する時間が経過したか否かを判定する。判定部122は、電源投入時刻から起動時間に相当する時間が経過した場合に、メモリ130がアクセス可能であると判定する。なお、基準とする時刻は電源投入時刻に限られるものではない。例えば、問い合わせを受信した時刻を基準として判定してもよい。
【0024】
送信部123は、判定部122による判定結果、すなわち、メモリ130がアクセス可能か否かを表す情報を、バス51bを介してプロセッサ110に送信する。
【0025】
次に、主記憶メモリとして不揮発性のメモリ130を用いた情報処理装置100の低消費電力時の動作について説明する。
【0026】
図示しないキーボードまたはネットワークなどからのデータの入力待ちの状態となると、処理すべきプロセスが存在しなくなるため、プロセッサ110はアイドル状態へ遷移する。プロセッサ110がアイドル状態となることで、メモリ130へのアクセスも発生しないため、メモリ130の電源を遮断することが可能となる。
【0027】
そこで、プロセッサ110は、アイドル状態へ遷移する際に、メモリ130の電源制御に必要なプログラム(電源制御用プログラム)がメモリ111に保存されていることを確認する。電源制御用プログラムがメモリ111に保存されていない場合、当該電源制御用プログラムをメモリ130から読み出してプロセッサ110内のメモリ111に保存する。
【0028】
次に、プロセッサ110は、電源制御用プログラムを実行することにより、メモリ130の電源の制御を行い、メモリ130の電源を遮断する。このとき、メモリ130は不揮発性メモリであるため、電源を遮断されても保存している情報が消去されることはない。
【0029】
以上のように、メモリ130を不揮発性メモリとすることで、メモリ130内の情報を退避することなく、メモリ130の電源を素早く遮断することが可能となる。また、プロセッサ110からメモリ130へのアクセスが生じないときには、直ちにメモリ130の電源を遮断することで、情報処理装置100の消費電力を削減することが可能となる。このように、プロセッサの電源が投入されている状態からメモリの電源が遮断された場合であっても、プロセッサからメモリに正しくアクセスすることが可能となる。
【0030】
次に、メモリ130の電源が遮断されているときに、プロセッサ110にデータが入力された際の動作について説明する。図2は、第1の実施形態における復帰処理の全体の流れを示すフローチャートである。復帰処理とは、アイドル状態から通常状態へ遷移する処理を表す。
【0031】
プロセッサ110にデータが入力されると、プロセッサ110は、アイドル状態から通常状態へ遷移する(ステップS101)。プロセッサ110は、メモリ111に保存されている電源制御用プログラムに従って、メモリ130に電源を投入する。
【0032】
プロセッサが動作中に主記憶メモリの電源を投入する際に注意すべきことがある。従来技術では、プロセッサと主記憶メモリとを接続しているメモリバスには、プロセッサが主記憶メモリの状態を調べる手段は存在しない。従来の情報処理装置では、主記憶メモリの電源だけが遮断されることはなく、プロセッサが稼働しているときには常に主記憶メモリはアクセスが可能であるという前提条件が存在するためである。このため、プロセッサは主記憶メモリがアクセス可能な状態であることを知ることができない。また、この前提条件の下では、プロセッサが、主記憶メモリの準備が整う前に、処理すべきデータが入力された時点でメモリバスを通じて主記憶メモリへの読み出しまたは書き込み要求を送出する可能性がある。
【0033】
一方、主記憶メモリは、電源投入後、内部の回路が安定するまでのある一定時間は、外部からのアクセス要求には応答することができない。すなわち、主記憶メモリは、一定時間、読み出しまたは書き込み要求を受け取ることができない。
【0034】
このように、メモリ130の起動後の準備が整う前に、プロセッサ110からアクセスが発生した場合、メモリ130は正常に応答することができない。このため、例えばプロセッサ110は、メモリ130から正常にプログラムを読み出すことができず、正常に動作しないプログラムを実行しようとして、不正命令エラー状態となりうる。この結果、プロセッサ110は不正命令の処理に対応した割り込み処理を実行することになる。プロセッサ110がアイドル状態になりメモリ130の電源を遮断するたびに、不正命令エラーを処理するための割り込み処理を実行していては、無駄な電力を消費することになる。
【0035】
そこで、本実施形態では、メモリ130が電源投入後から起動するまでの時間を入力した状態監視部120を用いる。以下、図2に戻り説明を続ける。
【0036】
プロセッサ110は、アイドル状態から通常状態へ遷移すると、まずはメモリ130の状態を把握するために、状態監視部120に対してメモリ130の状態を問い合わせる(ステップS102)。状態監視部120の受信部121は、当該問い合わせを受信する。そして当該問い合わせを受信したことを判定部122に通知する。判定部122は、メモリ130が応答可能(アクセス可能)な状態であるか否かを判断する(ステップS103)。例えば、判定部122は、電源投入時刻からメモリ130の起動時間が経過したか否かを判定する。判定部122は、電源投入時刻から起動時間に相当する時間が経過した場合に、メモリ130がアクセス可能であると判定する。また、判定部122は、電源投入時刻から起動時間に相当する時間が経過する前であれば、メモリ130がアクセス可能でないと判定する。
【0037】
また、判定部122は、メモリ130の電力の供給が開始されてからの状態監視部のクロック数を数える機能を備えてもよい。そして、受信部121がプロセッサ110からのメモリ130がアクセス可能であるかという問い合わせを受信したときに、判定部122が、クロック数からアクセスが可能であると判定してもよい。
【0038】
メモリ130がアクセス可能な状態の場合(ステップS103:Yes)、送信部123は、メモリ130へのアクセスが可能であることをプロセッサ110に通知する(ステップS104)。メモリ130がアクセス可能な状態ではない場合(ステップS103:No)、送信部123は、メモリ130がアクセスできない状態であることプロセッサ110に通知する(ステップS105)。
【0039】
状態監視部120は、上記機能の他に以下のような機能を備えていてもよい。例えば、メモリ130は、起動時にインタフェース周りの設定が必要な場合がある。そこで、状態監視部120が、メモリ130の起動時の設定に必要なバスの制御を行い、メモリ130のインタフェースの設定を行うように構成してもよい。
【0040】
(変形例)
図1では、状態監視部120がプロセッサ110とメモリ130との間に接続されている。メモリ130に対するインタフェースの設定が不要であり、かつ、プロセッサ110にI2CまたはUART(Universal Asynchronous Receiver Transmitter)のような通信用インタフェースが備わっているならば、図3に示すように状態監視部120はプロセッサ110とメモリ130との間に接続されていなくてもよい。
【0041】
図3は、第1の実施形態の変形例にかかる情報処理装置100−1の構成の一例を示すブロック図である。図3に示すように、情報処理装置100−1は、プロセッサ110−1と、メモリ130と、状態監視部120−1と、を備えている。なお、図1と同様の機能を備える構成部は、同一の符号を付し説明を省略する。
【0042】
プロセッサ110−1は、状態監視部120−1とUARTなどのインタフェース52で接続される点が、図1のプロセッサ110と異なっている。同様に、状態監視部120−1は、プロセッサ110−1とインタフェース52で接続される点が、図1の状態監視部120と異なっている。なお、バス51は、図1のバス51aとバス51b、および、バス51aとバス51cを統合したバスに相当する。
【0043】
受信部121−1は、インタフェース52を介してプロセッサ110−1から問い合わせを受信する点が図1の受信部121と異なっている。送信部123−1は、インタフェース52を介してプロセッサ110−1に判定結果を送信する点が図1の送信部123と異なっている。すなわち、本変形例は、UARTなどを通じてプロセッサ110−1から電源投入時刻を受け取るとともに、プロセッサ110からのメモリ130の状態の問い合わせに答える構成となる。
【0044】
(第2の実施形態)
図4は、第2の実施形態にかかる情報処理装置200の構成の一例を示すブロック図である。図4に示すように、情報処理装置200は、プロセッサ210と、メモリ230と、状態監視部120と、電源制御部240と、を備えている。
【0045】
第2の実施形態では、プロセッサ210とメモリ230の機能、および、電源制御部240を追加したことが第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる情報処理装置100のブロック図である図1と同様であるので、同一符号を付し、ここでの説明は省略する。
【0046】
プロセッサ210およびメモリ230は、それぞれ信号線61および62により電源制御部240と接続される。
【0047】
第2の実施形態では、電源制御部240が、プロセッサ210およびメモリ230の電源を管理する。電源制御部240は、プロセッサ210と通信が可能なように信号線61で接続されている。電源制御部240は、プロセッサ210から信号線61を通じてプロセッサ210およびメモリ230の電源を遮断してもよいという指示を受けると、プロセッサ210、メモリ230、および、状態監視部120の電源を遮断するか、または、任意の電圧に降圧および昇圧することが可能な機能を備える。
【0048】
プロセッサ210は、データの入力待ち状態となると、プロセッサ210への供給電圧を下げる指示または電源遮断の指示、および、状態監視部120およびメモリ230の電源遮断の指示を電源制御部240に対して送出する。
【0049】
プロセッサ210は、電源制御部240に対してプロセッサ210の電源遮断またはプロセッサ210内の情報が保持されない省電力モード動作時の電圧となるように指示を出す場合、先にプロセッサ210内の情報をメモリ230へ退避させる必要がある。そのため、プロセッサ210の次の起動時に必要となる情報を先にメモリ230へ書き込んだ後、プロセッサ210の電源遮断の指示を電源制御部240に送る。プロセッサ210内の情報が保持される下限までプロセッサ210の電源電圧を下げる場合であれば、プロセッサ210内の情報を退避させる必要はない。この場合には、プロセッサ210はアイドル状態になると直ちに、プロセッサ210への供給電圧の降圧および状態監視部120、メモリ230の電源を遮断するように電源制御部240に対して指示を送出する。
【0050】
次に、ユーザからのキー入力やネットワークからのデータが到着すると、電源制御部240は、プロセッサ210、状態監視部120、および、メモリ230の電源電圧を昇圧する。電源制御部240は、事前に電源制御部240の管理下のデバイスの起動時間に関する情報を保持しておく。電源電圧の昇圧時には、電源制御部240は、保持した情報に基づいて起動に時間のかかるデバイスから順番に電源電圧を昇圧していく。
【0051】
また、プロセッサ210は、メモリ230のみ電源電圧を下げるという指示を出すこともある。この場合には、電源制御部240は、メモリ230の電源電圧のみ降圧し、プロセッサ210からメモリ230の電圧の昇圧の指示が来たときにメモリ230の電源電圧を昇圧する。このように、プロセッサ210が起動中にメモリ230の電源を遮断する際には、第1の実施形態で説明したような問題が生じる。このため、状態監視部120を用いて、メモリ230の電源投入時に不具合が起きないように構成する。
【0052】
次に、このように構成された第2の実施形態にかかる情報処理装置200による復帰処理について図5を用いて説明する。図5は、第2の実施形態における復帰処理の全体の流れを示すフローチャートである。
【0053】
プロセッサ210は、メモリ230の電圧の昇圧を、電源制御部240に対して指示する(ステップS201)。電源制御部240は、指示に応じてメモリ230の電源電圧を昇圧する(ステップS202)。この後、プロセッサ210は、状態監視部120にメモリ230の状態を問い合わせ、アクセス可能な場合にアクセスする(ステップS203〜ステップS206)。
【0054】
ステップS203からステップS206までの処理は、第1の実施形態にかかる情報処理装置100におけるステップS102からステップS105までと同様の処理なので、その説明を省略する。
【0055】
(変形例)
図4の状態監視部120はプロセッサ210とメモリ230との間に接続されているが、第1の実施形態の変形例(図3)と同様に、状態監視部120はプロセッサ210とメモリ230との間に接続されていなくてもよい。図6は、このように構成された第2の実施形態の変形例にかかる情報処理装置200−1の構成の一例を示すブロック図である。なお、図6の各構成部は、図3または図4の構成部と同様の機能を備えるため、詳細な説明を省略する。図6に示すように、本変形例は、UARTなどを通じてプロセッサ210−1から電源投入時刻を受け取るとともに、プロセッサ210−1からのメモリ230の状態の問い合わせに答える構成としている。
【0056】
(第3の実施形態)
図7は、第3の実施形態にかかる情報処理装置300の構成の一例を示すブロック図である。図7に示すように、情報処理装置300は、プロセッサ210と、メモリ230と、状態監視部120と、電源制御部340と、太陽電池351と、二次電池352と、を備えている。第3の実施形態は、第2の実施形態(図4)の構成に、さらに発電装置である太陽電池351および二次電池352を加えた構成である。
【0057】
このように、情報処理装置300は、太陽電池351を備え、太陽電池351が発電する電力と、二次電池352が蓄えている電力を用いて動作する。
【0058】
太陽電池351は、光エネルギーを電力に変換して出力する。二次電池352は、太陽電池351から出力された電力を蓄え、プロセッサ210およびメモリ230を含む情報処理装置300の各構成部に対して、蓄えた電力を供給する蓄電部として機能する。電源制御部340は、太陽電池351の発電量および二次電池352が蓄える電力量に応じて各構成部の電源を制御する機能をさらに備える点が、第2の実施形態の電源制御部240と異なっている。
【0059】
本実施形態で発電装置として用いる太陽電池351は、一般に発電量が不安定である。また、太陽電池351の発電量とプロセッサ210およびメモリ230が消費する消費電力の余剰分が、二次電池352の充電に回される。このため、ユーザの利用状況や太陽電池351の発電量に依存して二次電池352の持つ電力量は変化する。したがって、太陽電池351および二次電池352で駆動する場合、情報処理装置300の動作時に必要な電力が得られない可能性がある。
【0060】
このように電源が不安定であり、必要な電力が得られないときには、素早くプロセッサ210やメモリ230を低消費電力モードに遷移させる必要がある。また、情報処理装置300の状態を安全に中断させるために、最低限の電力となった時には再起動する際に必要な情報を退避させるという制御が必要となる。さらに、再び起動可能な電力となった時点で起動するように制御しなければならない。
【0061】
以上のような不安定な発電装置である太陽電池351を用いて、太陽電池351または二次電池352から必要な電力を得る情報処理装置300の動作について、以下に説明する。
【0062】
動作中に情報処理装置300が動作する電力が十分にあり、消費電力を削減するためにプロセッサ210がスリープ状態に遷移する場合について説明する。太陽電池351の発電量または二次電池352に蓄えられた電力が十分にある場合であっても、プロセッサ210がアイドル状態になった時にプロセッサ210およびメモリ230の電源を遮断する。
【0063】
ユーザからのキーボードの入力など、プロセッサ210が処理すべきデータが送られてくると、電源制御部340は、太陽電池351および二次電池352の電力を確認し、起動するために必要な電力がある場合には、プロセッサ210、メモリ230、および状態監視部120の電源電圧を昇圧して、これらのデバイスを起動する。
【0064】
情報処理装置300が動作するために必要な電力が得られない場合、すなわち、太陽電池351が発電している電力および二次電池352に蓄えられている電力が少なく、情報処理装置300を起動し続けていることができないと判断すると、電源制御部340は、プロセッサ210およびメモリ230の電源を遮断するための準備を始める。まず、最初に電源制御部340は、プロセッサ210に対して割り込みを通知する。プロセッサ210は、電源制御部340からの割り込みに応じてプロセッサ210の内部の状態をメモリ230へ退避させる。プロセッサ210内部の情報をメモリ230へ退避すると、プロセッサ210は、電源制御部340に対して信号線61を通じて内部情報を正常に退避できたことを通知する。これにより、プロセッサ210は安全に電源を遮断することが可能となる。
【0065】
電源制御部340は、プロセッサ210から電源を遮断するための準備ができたという通知を受け取ったのち、プロセッサ210、メモリ230、および状態監視部120の電源電圧を降圧する。これにより、情報処理装置300はスリープ状態となる。
【0066】
このスリープ状態のとき、ユーザからキー入力があったとする。以下、この場合の処理について図8を用いて説明する。図8は、第3の実施形態における電源制御処理の全体の流れを示すフローチャートである。
【0067】
太陽電池351または二次電池352の電力で電源制御部340が起動している場合には、電源制御部340は、ユーザからの入力をトリガーとして、二次電池352の電力が、プロセッサ210およびメモリ230を起動するのに十分な電力であるか確認する。例えば、電源制御部340は、二次電池352に蓄えられた電力量が、電力量の閾値より大きいか否かを判断する(ステップS301)。閾値は、例えばプロセッサ210、メモリ230、状態監視部120および電源制御部340が起動するために最小限必要な電力量として予め定めておく。
【0068】
二次電池352の電力量が閾値以下の場合(ステップS301:No)、ユーザからの入力を無視し、電源制御部340は、情報処理装置300の状態をスリープ状態に維持する(ステップS303)。二次電池352に情報処理装置300を起動するのに十分な電力が蓄えられた後、電源制御部340に情報処理装置300の起動イベントが送られた場合、すなわち、二次電池の電力量が閾値より大きい場合(ステップS301:Yes)、電源制御部340は、プロセッサ210、メモリ230、および状態監視部120を起動(電源電圧を昇圧)して(ステップS302)、スリープ状態から通常状態へ遷移する。
【0069】
電源制御部340は、太陽電池351の発電量が十分であっても、二次電池352の充電量が不十分である時には、情報処理装置300を起動しない。二次電池352の蓄えられた電力は安定した電力として利用することができるが、太陽電池351が発電した電力は不安定であり、起動中に発電量が不足する可能性があるためである。このため、電源制御部340は、起動する際に、二次電池352に蓄えられている電力を参照し、この電力が不足している場合には、太陽電池351により、起動するのに十分な電力が蓄えられるまで、プロセッサ210やメモリ230の電源電圧を昇圧しない。
【0070】
以上のように、不安定な太陽電池351を搭載している場合には、二次電池352に蓄えられた電力が一定の電力以下であれば、スリープ状態を続け、二次電池352に蓄えられた電力が一定の値以上にまで回復したときにプロセッサ210およびメモリ230を起動させる。このように、不安定な太陽電池351を備えている場合、電力が回復するまで起動させないように制御することで、電力が不足気味の場合であっても情報処理装置300を正常に動作させ続けることが可能となる。
【0071】
以上説明したとおり、第1から第3の実施形態によれば、不揮発性のメモリを主記憶メモリとして利用するため、電源遮断時に情報を退避する必要がない。このため、主記憶メモリへのアクセスが生じないときに直ちに主記憶メモリの電源を遮断することで消費電力をより削減することができる。また、電源遮断後に主記憶メモリを起動したときに、主記憶メモリがアクセス可能な状態か判定し、アクセス可能となったときに主記憶メモリにアクセスするように制御する。これにより、主記憶メモリから不正に情報を読み出してエラー状態となることを回避できる。
【0072】
(変形例)
上記の各実施形態では、メモリ130がアクセス可能な状態ではない場合、メモリ130がアクセスできない状態であることプロセッサ110に通知していた。これに対し、メモリ130がアクセス可能な状態となるまでプロセッサ110への通知を行わずに判定を繰り返すように構成してもよい。
【0073】
本変形例では、状態監視部120は、メモリ130の状態を判定し、メモリ130がアクセス可能であるときのみ、アクセスが可能であることをプロセッサ110に送信する。例えば、送信部123は、判定部122による判定結果が送信されたとき、すなわち、メモリ130がアクセス可能であるときのみ、バス51bを介して、メモリ130がアクセス可能であることをプロセッサ110に送信する。
【0074】
図9は、このように構成した変形例における復帰処理の全体の流れを示すフローチャートである。ステップS401およびステップS402は、図2のステップS101およびステップS102と同様であるため説明を省略する。
【0075】
本変形例では、判定部122は、メモリ130がアクセス可能な状態ではない場合と判断した場合(ステップS403:No)、アクセス可能な状態となるまで判定を繰り返す。メモリ130がアクセス可能な状態となった場合(ステップS403:Yes)、判定部122は、アクセス可能な状態となったことを示す判定結果を送信部123に通知する。判定結果の通知を受けた送信部123は、メモリ130へのアクセスが可能であることをプロセッサ110に通知する(ステップS404)。
【0076】
第1〜第3の実施形態にかかる情報処理装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。
【0077】
また、第1〜第3の実施形態にかかる情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1〜第3の実施形態にかかる情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0078】
また、第1〜第3の実施形態のプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0079】
第1〜第3の実施形態にかかる情報処理装置で実行されるプログラムは、上述した各部(状態監視部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
【0080】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0081】
51a、51b、51c バス
52 インタフェース
61、62 信号線
100、200、300 情報処理装置
110、210 プロセッサ
111 メモリ
120 状態監視部
121 受信部
122 判定部
123 送信部
130、230 メモリ
240、340 電源制御部
351 太陽電池
352 二次電池

【特許請求の範囲】
【請求項1】
プロセッサと、
不揮発性の記憶部と、
前記記憶部にアクセス可能か否かの問い合わせを前記プロセッサから受信する受信部と、
前記問い合わせを受信したときに、前記記憶部に対する電力の供給が開始されてから前記記憶部が起動するまでの起動時間に基づいて、前記記憶部がアクセス可能かを判定する判定部と、
前記判定部による判定結果を前記プロセッサに送信する送信部と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記判定部は、前記問い合わせを受信したときに、前記記憶部に対する電力の供給が開始されてから前記記憶部が起動するまでの起動時間に基づいて、前記記憶部がアクセス可能か否かを判定すること
を特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記受信部は、さらに、前記記憶部に対する電力の供給が開始された時刻を前記プロセッサから受信し、
前記判定部は、前記時刻から前記起動時間が経過した場合に、前記記憶部がアクセス可能であると判定すること、
を特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記記憶部に対する前記電力の供給を制御する電源制御部をさらに備え、
前記プロセッサは、前記電源制御部に対して前記記憶部に対する前記電力の供給の開始を指示した後、前記問い合わせを送信すること、
を特徴とする請求項1に記載の情報処理装置。
【請求項5】
前記記憶部に電力を供給する蓄電部をさらに備え、
前記電源制御部は、前記蓄電部の電力量が予め定められた閾値より大きい場合に、前記蓄電部から前記記憶部に電力を供給するように制御すること、
を特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記判定部は、前記記憶部の電力の供給が開始されてからの前記状態監視部のクロック数を数え、前記受信部がプロセッサからの前記記憶部がアクセス可能であるかという問い合わせを受信したときに、前記クロック数からアクセスが可能であると判定することを特徴とする請求項1に記載の情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate