補助記憶部と、前記補助記憶部に記憶するデータを一時記憶するキャッシュ領域を含む不揮発性の主記憶部と、蓄電部と、データを前記キャッシュ領域に書き込む第1書込部と、前記蓄電部の電力量が予め定められた第1閾値より大きい場合に、前記キャッシュ領域に書き込まれた前記データを前記補助記憶部に書き込む第2書込部と、を備えることを特徴とする情報処理装置。前記第2書込部は、前記電力量が前記第1閾値より大きく、かつ、前記キャッシュ領域に書き込まれてから一定時間経過した前記データを前記補助記憶部に書き込むこと、を特徴とする請求項1に記載の情報処理装置。前記第1書込部は、予め定められたサイズの記憶領域であるブロックを単位として前記データを前記キャッシュ領域に書込み、前記第2書込部は、さらに、前記キャッシュ領域でデータが書き込まれていない前記ブロックの個数が予め定められた第2閾値より小さい場合に、前記キャッシュ領域に書き込まれた前記データを前記補助記憶部に書き込むこと、を特徴とする請求項1に記載の情報処理装置。前記蓄電部に電力を供給する供給部をさらに備えること、を特徴とする請求項1に記載の情報処理装置。補助記憶部と、前記補助記憶部に記憶するデータを一時記憶するキャッシュ領域を含む不揮発性の主記憶部と、蓄電部と、を備えるコンピュータを、データを前記キャッシュ領域に書き込む第1書込部と、前記蓄電部の電力量が予め定められた第1閾値より大きい場合に、前記キャッシュ領域に書き込まれた前記データを前記補助記憶部に書き込む第2書込部、として機能させるためのプログラム。しかしながら、2次ストレージへの書き込みはディスクキャッシュへの書き込みに比べて多くの電力を消費する。このため、バッテリ等の限られた電力で動作する情報処理装置では、可能な限り2次ストレージへの書き込み頻度を下げて消費電力を下げることが望ましい。実施形態の情報処理装置は、補助記憶部と、主記憶部と、蓄電部と、第1書込部と、第2書込部と、を備える。主記憶部は、補助記憶部に記憶するデータを一時記憶するキャッシュ領域を含む不揮発性の記憶部である。第1書込部は、データをキャッシュ領域に書き込む。第2書込部は、蓄電部の電力量が予め定められた第1閾値より大きい場合に、キャッシュ領域に書き込まれたデータを補助記憶部に書き込む。以下に添付図面を参照して、この発明にかかる情報処理装置の好適な実施形態を詳細に説明する。図1は、本実施形態の情報処理装置100の外観を示す図である。図1は、タブレット型の情報処理装置100の例を示している。情報処理装置100は、端末表面に低消費電力の反射型液晶ディスプレイまたは電子ペーパーなどの表示部102aを備える。また、情報処理装置100は、端末表面の表示部102a以外の部分に太陽電池101を備えている。また、情報処理装置100は、表示部102aの表面にはポインティングデバイスとして機能するタッチパネル102bを備える。さらに、情報処理装置100は、端末表面の表示部102aと重ならない部分にキーボード103を備える。キーボード103は太陽電池101の表面に透明なタッチパネル102bを重ねることで実現しても良い。また、透明な素材または遮光性の部分の少ない素材を用いた機械式のキーボード103として実現しても良い。図2は、本実施形態の情報処理装置100のハードウェア構成例を示すブロック図である。情報処理装置100は、主なハードウェア構成として、太陽電池101と、表示部102aと、タッチパネル102bと、キーボード103と、CPU110と、通信インタフェース通信I/F111と、不揮発メモリ121と、2次ストレージ122と、電源制御部130と、蓄電部131と、を備えている。情報処理装置100は、太陽電池101で発電した電力で動作する。しかし、太陽電池101で発電する電力だけでは動作時何らかの処理を実行している時の情報処理装置100全体のピークの消費電力をまかなえない。このため、アイドル時ユーザからの応答待ちの時間や、情報処理装置100を使用していない時間などに太陽電池101で発電した余剰電力を蓄電部131に充電しておく。そして、動作時には、電源制御部130が、蓄電部131からの電力を情報処理装置100の各部に供給するように制御する。このような電源制御はピークシフトとも呼ばれる。このように、太陽電池101は、蓄電部131を含む情報処理装置100の各部に電力を供給する供給部として機能する。蓄電部131は、リチウムイオン電池などのバッテリ、または電気2重層キャパシタなどを、単独で、または組み合わせて実現できる。例えば、太陽電池101で発電した電力をまず電気2重層キャパシタに蓄積し、蓄積した電力をさらにリチウムイオン電池に充電するように組み合わせる。CPU110は、アプリケーションプログラムやオペレーティングシステムを実行して全体を制御する。不揮発メモリ121は、メインメモリとして用いる不揮発性の記憶素子で構成される記憶部主記憶部である。例えば、不揮発メモリ121は、高速に読み書きできるMRAMMagneticRandomAccessMemoryで実現する。MRAM以外に、PCMPhaseChangeMemory、PRAMやPCRAMと呼ばれることもあるやReRAMResistanceRandomAccessMemoryを不揮発メモリ121として用いることもできる。2次ストレージ122は、情報処理装置100が必要とするデータやプログラムを記憶する記憶部補助記憶部である。例えば、2次ストレージ122は、フラッシュメモリのチップを搭載した記憶部により実現できる。2次ストレージ122としてSDカードやSSDを用いることもできる。2次ストレージ122を備えず、2次ストレージ122に記憶すべきすべてのデータやプログラムを格納できる容量の不揮発メモリ121のみを備える構成では、コストの増大等の問題が生じる。したがって、本実施形態では、主記憶部不揮発メモリ121と補助記憶部2次ストレージ122とを備え、補助記憶部のデータをキャッシュするディスクキャッシュを主記憶部に備える構成とする。また、本実施形態では、主記憶部としてDRAMDynamicRandomAccessMemoryなどの揮発性の記憶素子ではなく、不揮発性の記憶素子を用いる。したがって、仮に障害が発生したとしても2次ストレージ122に書き込むべきデータが失われることはない。しかし、上述のように主記憶部にディスクキャッシュを備える構成とするため、ディスクキャッシュのデータを2次ストレージ122に書き込む処理フラッシュ処理が必要となる。情報処理装置100は、入出力装置として、電子ペーパーまたは低消費電力液晶ディスプレイなどの表示部102a、表示部102aの表面に重ねて実装する透明のタッチパネル102b、キーボード103、および、通信I/F111を備える。キーボード103を省略して、表示部102aに仮想キーボードを表示し、それをタッチパネル102bで押さえるように実装しても良い。なお、タッチパネル102bおよびキーボード103以外の入出力インタフェースを備える、または、接続可能とするように構成してもよい。通信I/F111は、例えば無線LANLocalAreaNetworkなどによる通信を行うためのインタフェースである。通信のプロトコルは無線LANに限られず、有線LAN、Bluetooth、ZigBee、赤外線通信、可視光通信、光回線網、電話回線網、およびインターネットなどのあらゆるプロトコルを利用できる。電源制御部130は、蓄電部131に蓄積している電力量を管理し、CPU110などの外部の構成部が蓄電部131に蓄積している電力量を知るための機能を備える。CPU110が蓄電部131に蓄積している電力量を知る機能は、例えば、蓄電部131に蓄積している電力量が予め決められた規定量より少なくなった時点、または多くなった時点で、電源制御部130がCPU110に対して割り込みで伝えるように構成することで実現できる。また、別の実現方法としては、CPU110からのコマンドを受け取ると電源制御部130が現在の電力量をCPU110に送り返すように実装することもできる。図3は、本実施形態の情報処理装置100の機能構成例を示すブロック図である。図3では、図2に示したハードウェア構成を省略している。情報処理装置100は、表示制御部151と、通信制御部152と、入出力制御部153と、記憶制御部160と、を備えている。これらの各部表示制御部151と、通信制御部152と、入出力制御部153と、記憶制御部160の機能は、例えば、オペレーティングシステムが備える機能として実現できる。なお、これらの各部のうち少なくとも1つをハードウェア回路により実現してもよい。表示制御部151は、表示部102aに対する情報の表示処理を制御する。通信制御部152は、通信I/F111を介した外部装置図示せずとの間の通信処理を制御する。入出力制御部153は、タッチパネル102bおよびキーボード103を用いたデータの入出力処理を制御する。記憶制御部160は、不揮発メモリ121および2次ストレージ122に対するデータのアクセスを制御する。例えば、記憶制御部160は、不揮発メモリ121内にディスクキャッシュ用のキャッシュ領域以下、ディスクキャッシュというを確保し、2次ストレージ122から読み書きするデータを当該ディスクキャッシュに一時記憶する。そして、記憶制御部160は、所定の条件が満たされたときに、ディスクキャッシュに一時記憶したデータを2次ストレージ122に書き戻す。記憶制御部160は、第1書込部161と、第2書込部162と、対応管理部163と、を備えている。第1書込部161は、アプリケーションプログラムなどからアクセスが要求された2次ストレージ122内のデータをディスクキャッシュに書き込む。第2書込部162は、ディスクキャッシュのデータを2次ストレージ122に書き込むために定められる所定の条件が満たされたときに、当該データを2次ストレージ122に書き込む。例えば、第2書込部162は、蓄電部131の電力量が予め定められた閾値第1閾値より大きい場合に、アプリケーションプログラムからの書き込み要求によってディスクキャッシュに書き込まれたデータを2次ストレージ122に書き込む。対応管理部163は、ディスクキャッシュと2次ストレージ122内の記憶領域との間の対応を管理する。例えば、一般的なオペレーティングシステムが備えるファイルシステムと呼ぶソフトウェアモジュールにより対応管理部163を実現できる。一般に、オペレーティングシステムは、2次ストレージ122を一定のサイズのブロックに分割して管理する。1つのブロックのサイズは代表的には4キロバイトの大きさである。同様に、対応管理部163は、2次ストレージ122の全記憶領域を4キロバイトのブロックに区切り、各ブロックに順に番号ブロック番号を付与する。そして、対応管理部163は、ブロック番号をブロックのアドレスとして扱う。対応管理部163は、データを指定するファイル名と、そのファイル名のデータが実際に記憶されている2次ストレージ122の中のブロック番号1つまたは複数の対応を管理する。具体的には、Linux登録商標やUnix登録商標で広く用いられているファイルシステムではiノードと呼ぶデータ構造を使ってこの対応を管理している。また、Windows登録商標で広く用いられているファイルシステムではFATと呼ぶデータ構造を使ってこの対応を管理している。ファイルシステムは、2次ストレージ122中の各ブロックが使用中か未使用かも管理する。このように、本実施形態の情報処理装置100は、Linux登録商標等のオペレーティングシステムを搭載する。オペレーティングシステムは、ディスクキャッシュを使って2次ストレージ122に記憶するデータを管理する。次に、図4を用いて、アプリケーションプログラムが2次ストレージ122をアクセスする際のオペレーティングシステム図3の各部の動作を説明する。図4は、2次ストレージ122にアクセスするときの動作を説明するための図である。図4に示す2次ストレージ122中の長方形がそれぞれ1つのブロックに相当し、ブロックそれぞれに付与した番号がブロックのアドレスに相当する。情報処理装置100では、記憶制御部160は、ディスクキャッシュの領域を不揮発メモリ121上に確保する。記憶制御部160は、ディスクキャッシュも2次ストレージ122の管理単位と同じブロックサイズに切り分けて管理する。対応管理部163は、ディスクキャッシュの各ブロックが使用中か未使用か、使用中なら2次ストレージ122のいずれのブロックに対応したデータを記憶しているか、使用中のブロックがダーティか否かを管理する。使用中のブロックがダーティとは、ディスクキャッシュ内のブロックに書き込まれたデータが、まだ対応する2次ストレージ122のブロックに書き込まれていない状態をいう。図4に示すディスクキャッシュ中の長方形がそれぞれ1つのブロックに相当する。数字が記載されたブロックは使用中であり、数字は対応する2次ストレージ122中のブロックのアドレスである。網掛けされたブロックは使用中でダーティなブロックを示す。数字が書かれていないブロックは未使用であることを示す。アプリケーションプログラムが2次ストレージ122に記憶しているデータを読み出す際の処理の手順以下の1~4を、図4を用いて説明する。1アプリケーションプログラムは、記憶制御部160に対してOpenオープンシステムコールを発行して、読み出すデータを記憶しているファイル名を指定する。2記憶制御部160は、指定されたファイル名から、そのデータを記憶している2次ストレージ122中のブロック1つまたは複数のアドレスを得る。3アプリケーションプログラムは、Readリードシステムコールを発行してデータを読み出すことを記憶制御部160に指示する。4記憶制御部160は、読み出すべきデータを記憶している2次ストレージ122中のブロックのデータがディスクキャッシュ中に存在するか否かを調べる。ディスクキャッシュ中に存在すれば、記憶制御部160は、そのデータをアプリケーションプログラムに返す図4のR2。ディスクキャッシュ中に存在しなければ、記憶制御部160第1書込部161は、2次ストレージ122からデータを読み出してディスクキャッシュ中の未使用ブロックに書き込む図4のR1とともに、そのデータをアプリケーションプログラムに返す図4のR2。次に、アプリケーションプログラムが2次ストレージ122にデータを書き込む際の処理の手順以下の1~5を、図4を用いて説明する。1アプリケーションプログラムは、記憶制御部160に対してOpenオープンシステムコールを発行して、データを書き込むファイル名を指定する。2アプリケーションプログラムは、Writeライトシステムコールを発行して書き込むデータを記憶制御部160に伝える。3新しいファイルに書き込む場合は、以下の4のように書込みの処理を行う。既に存在するファイルに上書きする場合は以下の5のように書き込みの処理を行う。既に存在するファイルへの上書きの場合でも、既に2次ストレージ122が割り当てられている範囲を超えてファイルを大きくする場合は、新しく増えるブロックに関しては以下の4の手順で書き込みの処理を行う。4新しいファイルに書き込む場合は、第1書込部161は、ディスクキャッシュ中の未使用ブロックを必要な個数確保してアプリケーションプログラムから渡されたデータを書き込む図4のW1。対応管理部163は、データを書き込んだブロックを使用中として管理する。さらに、対応管理部163は、そのデータを書き込むために必要な個数の2次ストレージ122中の未使用ブロックを確保し、対応するディスクキャッシュ中のブロックと対応付けて管理する。5既に存在するファイルに上書きする場合は、対応管理部163は、指定されたファイル名から、そのデータを記憶している2次ストレージ122中のブロック1つまたは複数のアドレスを得る。2次ストレージ122中のブロックに対応するディスクキャッシュのブロックが既に使用中として存在する場合は、第1書込部161は、そのブロックにデータを書き込む図4のW1。また、対応管理部163は、そのブロックをダーティとして管理する。2次ストレージ122中のブロックに対応するディスクキャッシュのブロックがまだ存在しない場合には、対応管理部163は、ディスクキャッシュ中の未使用のブロックを割り当てる。そして、第1書込部161は、割り当てられたブロックにデータを書き込む図4のW1。また、対応管理部163は、データを書き込んだブロックを使用中かつダーティとするとともに対応する2次ストレージ122のブロックと対応付けて管理する。ディスクキャッシュ中のダーティな使用中のブロック、すなわちアプリケーションプログラムが書き込んだデータを記憶しているブロックで、そのデータがまだ対応する2次ストレージ122中のブロックに書き込まれていないブロックは、所定のタイミングで第2書込部162が2次ストレージ122への書き込みを実行する図4のW2。この処理はフラッシュ処理と呼ばれる。例えばLinux登録商標の場合には、フラッシュ処理はpdflushと呼ぶデーモンプログラムにより実行される。フラッシュ処理によってディスクキャッシュから2次ストレージ122へのデータの書き込みが行われるのは、Linux登録商標など従来の多くのオペレーティングシステムでは、主に次の2つの場合である。1アプリケーションプログラムが書き込んだデータを記憶するディスクキャッシュ中の使用中でダーティなブロックで、書き込まれてから長い時間そのデータを2次ストレージ122へ書き込んでいないブロックが存在する場合:この場合、第2書込部162は、そのブロックのデータを対応する2次ストレージ122に書き込む。そして対応管理部163は、そのブロックを使用中だがダーティでない状態にする。なお、ディスクキャッシュ中で使用中かつダーティであったブロックを未使用でなく使用中かつダーティでないブロックにする理由は、後にアプリケーションプログラムがそのデータを読み出す場合にディスクキャッシュ中のデータを読めるようにするためである。ディスクキャッシュ中で使用中だがダーティでないブロックは、必要に応じて未使用ブロックとして扱うことができる。2ディスクキャッシュ中に使用中でダーティなブロックが多くなり、未使用のブロックや使用中だがダーティでないブロックが少なくなった場合:この場合、第2書込部162は、使用中でダーティなブロックのデータを対応する2次ストレージ122に書き込む。そして対応管理部163は、そのブロックを使用中だがダーティでない状態、または未使用状態にする。このようなフラッシュ処理は、図5に示すような手順で実行される。図5は、フラッシュ処理の一例を示すフローチャートである。まず、記憶制御部160が、ディスクキャッシュ中に使用中でダーティな状態になってから予め決められた一定時間例えば数十秒以上経過しているブロックが存在するか否かを判断するステップS101。存在する場合ステップS101:Yes、第2書込部162が、対応する2次ストレージ122のブロックにデータを書き出すステップS102。対応管理部163は、当該ブロックを使用中だがダーティではない状態にして管理する。一定時間以上経過しているブロックが存在しない場合ステップS101:No、記憶制御部160は、さらに、ディスクキャッシュ中の未使用ブロックが不足しているか否かを判断するステップS103。例えば、記憶制御部160は、ディスクキャッシュ中の未使用ブロックの個数が予め決められた閾値第2閾値以上であるか否かを判断し、個数が閾値より小さい場合に不足していると判断する。不足していない場合はステップS103:No、ステップS101に戻り処理を繰り返す。不足している場合はステップS103:Yes、第2書込部162は、ディスクキャッシュ中で使用中かつダーティであるブロックを選択し、選択したブロックのデータを対応する2次ストレージ122に書き込むステップS104。対応管理部163は、データを書き込んだブロックを使用中だがダーティでない状態にする。なお、未使用ブロックが不足しているか否かを判断する際は、使用中でもダーティでないブロックはいつでも未使用ブロックにできるので、未使用ブロックとして数えて良い。本実施形態の情報処理装置100は、さらに図6に示すように、蓄電部131の電力量に応じてフラッシュ処理を実行するか否かを切り替える。図6は、本実施形態のフラッシュ処理の全体の流れを示すフローチャートである。図6のフラッシュ処理は、図5と比較して、蓄電部131の電力量を考慮するステップS202が追加される点が相違する。その他のステップS201、ステップS203~ステップS205は、それぞれ図5のステップS101、ステップS102~ステップS104と同様であるため詳細な説明を省略する。すなわち、ディスクキャッシュ中に使用中でダーティな状態になってから予め決められた一定時間例えば数十秒以上経過しているブロックが存在するか否か調べられるステップS201。そのようなブロックが存在すればステップS201:Yes、記憶制御部160は、蓄電部131の電力量に余裕があるか否かを判断するステップS202。記憶制御部160は、上述のように、例えば電源制御部130からの割り込み、または、現在の電力量を要求するコマンドに対する応答から、蓄電部131の現在の電力量を取得する。そして、記憶制御部160は、例えば、蓄電部131の電力量が予め決められた閾値第1閾値より大きい場合に、電力量に余裕があると判断するステップS202:Yes。この場合、第2書込部162が、対応する2次ストレージ122のブロックにデータを書き出すステップS203。また、対応管理部163が、ディスクキャッシュ中の使用中でダーティなブロックを、使用中だがダーティではない状態にして管理する。電力量に余裕がない場合ステップS202:No、2次ストレージ122への書き込みを実行せずに、ステップS101に戻って処理を繰り返す。これにより、消費電力を削減できる。なお、蓄電部131の電力量を判断する処理ステップS202は、図6のタイミングで実行する必要はない。例えば、図6のステップS201とステップS202の順序を入れ替えても良い。また、ステップS204の判断がYesの場合、さらにステップS202と同様に蓄電部131の電力量を判断する処理を行い、電力に余裕がある場合にのみステップS205の処理を行っても良い。情報処理装置100は、不揮発メモリ121にディスクキャッシュの領域を確保しているため、障害発生時にもディスクキャッシュ中の使用中かつダーティなブロックのデータは失われない。そのため、オペレーティングシステムのブート時に、前回は正常な手順でシャットダウンされたのか、または、障害で電源が遮断されたのかを判断して、障害で電源が遮断された場合にはディスクキャッシュ中で使用中かつダーティなブロックすなわち、アプリケーションプログラムによってディスクキャッシュに書き込まれたが、まだ対応する2次ストレージ122には書き込まれていないブロックを検出して、そのブロックのデータを2次ストレージ122に書き込むようにするのが望ましい。この機能は、例えば以下の手順により実現できる。まず、正常にシャットダウンされたか否かを判断する領域を例えば不揮発メモリ121上に設ける。その領域には、ブート時に第1の値例えば0を書き込み、正常シャットダウン時に第2の値例えば1を書き込むようにする。記憶制御部160は、ブート時に第1の値0を書き込む前に、この領域に書き込まれている値を読み出す。記憶制御部160は、その値が第2の値1でなければ、正常にシャットダウンされていないと判断する。本実施形態は、上記のようなオペレーティングシステムのファイルシステムなどによるデータ管理のみでなく、データベース管理システムにおける2次ストレージ122に記憶したデータベースとメインメモリ上のデータベースキャッシュの管理にも適用できる。また、仮想記憶を実現するためのスワップ用の2次ストレージ122とメインメモリに確保したページキャッシュの管理に対しても適用できる。特に最近のLinux登録商標やUnix登録商標などのオペレーティングシステムでは、ディスクキャッシュと仮想記憶のためのページキャッシュが統合されている場合がある。このように統合されたキャッシュに対して本実施形態を適用すると、ディスクキャッシュにもスワップにも本実施形態の効果を得られる。これまでに示した実施例では、太陽電池101を供給部として用いているが、供給部は太陽電池101に限るものではない。太陽電池101以外に、ワイヤレス給電を用いて電力を外部から供給する方法や、振動や熱などから電力を得る方法を用いても良い。特に発電または供給できる電力が一定しない場合には、本実施形態は効果がある。本実施形態により、2次ストレージ122へデータを書き込む頻度を低減できるので、2次ストレージ122への書き込みで消費する電力を削減することができる。また、蓄電部131に蓄積している電力が少ない時に、フラッシュ処理で消費する電力を削減できるので、削減した電力をユーザとの対話処理など優先度の高い処理に使うことができる。本実施形態にかかる情報処理装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROMCompactDiskReadOnlyMemory、フレキシブルディスクFD、CD-RCompactDiskRecordable、DVDDigitalVersatileDisk等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。また、本実施形態にかかる情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態のプログラムを、ROM等に予め組み込んで提供するように構成してもよい。本実施形態にかかる情報処理装置で実行されるプログラムは、上述した各部表示制御部151、通信制御部152、入出力制御部153、記憶制御部160を含むモジュール構成となっており、実際のハードウェアとしてはCPU110が2次ストレージ122などの記憶媒体からプログラムを読み出して実行することにより上記各部が主記憶部不揮発メモリ121上にロードされ、上述した各部が主記憶部上に生成されるようになっている。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。