(57)【特許請求の範囲】
【請求項１】
バッテリ及び電源装置を有し、
データの読込み要求又は書込み要求の少なくとも一方の入出力負荷に関する負荷情報に基づいて、前記バッテリの蓄電量を制御し、
前記電源装置に異常が発生した場合に、前記バッテリに切り替えて電力を供給する
電力管理部と、
前記蓄電量に応じてキャッシュメモリにおけるキャッシュ容量を制御し、
電力の供給が前記バッテリに切り替わると前記キャッシュメモリのデータを不揮発性メモリに書き込む
ディスク管理部と、
を備える情報処理装置。
【請求項２】
前記電力管理部は、前記負荷情報において必要とされるキャッシュ容量に応じて決定された蓄電量となるように制御する
請求項１に記載の情報処理装置。
【請求項３】
前記電力管理部は、前記負荷情報が高負荷となる時間帯に必要とされる蓄電量となるように制御する
請求項１又は２に記載の情報処理装置。
【請求項４】
所定期間の前記負荷情報を取得し、当該負荷情報から高負荷となる時間帯を予測する予測部と、
をさらに備え、
前記電力管理部は、前記高負荷となる時間帯の所定時間前に前記蓄電量を取得し、
当該蓄電量が所定値以下であった場合、前記高負荷となる時間帯に所定値以上になるように蓄電する
請求項３に記載の情報処理装置。
【請求項５】
前記ディスク管理部は、前記蓄電量によって前記キャッシュ容量を不揮発性メモリに書き込み可能なキャッシュ容量となるように制御する
請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
バッテリ及び電源装置を有し、
データの読込み要求又は書込み要求の少なくとも一方の入出力負荷に関する負荷情報に基づいて、前記バッテリの蓄電量を制御するステップと、
前記電源装置に異常が発生した場合に、前記バッテリに切り替えて電力を供給するステップと、
前記蓄電量に応じてキャッシュメモリにおけるキャッシュ容量を制御するステップと、
電力の供給が前記バッテリに切り替わると前記キャッシュメモリのデータを不揮発性メモリに書き込むステップと
を備える情報処理装置のキャッシュ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びキャッシュ制御方法に関する。
【背景技術】
【０００２】
電源装置からの電力供給に異常が発生した場合にキャッシュ上のデータを保護する方法として、バッテリや無停電電源装置の供給電力を用いてキャッシュ上のデータを不揮発性のディスクに書き込む方法がある。
【０００３】
例えば、特許文献１は、無停電電源装置でバックアップ可能な時間内でデータ移送等の処理を終了するようにディスクキャッシュメモリの格納データ容量を変更することを開示している。
【０００４】
また、特許文献２は、すべてのダーティデータをバックアップディスクへ書き込む時間が保障されるように、バッテリ残量に依存してダーティデータの許容量を変化させることを開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７―１４６８２２号公報
【特許文献２】特開２００６−３１３４０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１及び２は入出力負荷（頻度や回数やデータ量）を考慮していないため、電力供給量が少ない場合に入出力に関する負荷が大きくなると処理性能低下が生じる。
【０００７】
すなわち、特許文献１及び２は、バッテリや無停電電源装置の電力供給可能量でバックアップ可能なようにキャッシュメモリの容量を変更している。そのため、電力供給可能量が少ない場合、入出力負荷が大きい場合であっても、キャッシュメモリの容量が少なくなってしまい、キャッシュの書き換えが多発して性能低下が生じる。
【０００８】
本発明の目的は、入出力負荷が大きい場合に、処理性能低下が生じるという課題を解決する情報処理装置及びキャッシュ制御方法を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の情報処理装置は、データの読込み要求又は書込み要求の少なくとも一方の入出力負荷に関する負荷情報に基づいて、バッテリの蓄電量を制御する電力管理部と、前記蓄電量に応じてキャッシュ容量を制御するディスク管理部と、を備える。
【００１０】
本発明の情報処理装置は、データの読込み要求又は書込み要求の少なくとも一方の入出力負荷に関する負荷情報を取得する負荷情報取得部と、バッテリの蓄電量及び前記負荷情報に応じて、キャッシュ容量を制御するキャッシュ制御部と、を備える。
【００１１】
本発明のキャッシュ制御方法は、データの読込み要求又は書込み要求の少なくとも一方の入出力負荷に関する負荷情報に基づいて、バッテリの蓄電量を制御するステップと、前記蓄電量に応じてキャッシュ容量を制御するステップと、を備える。
【００１２】
本発明のキャッシュ制御方法は、バッテリの蓄電量を取得するステップと、データの読込み要求又は書込み要求の少なくとも一方の入出力負荷に関する負荷情報を取得するステップと、前記蓄電量及び前記負荷情報に応じて、キャッシュ容量を制御するステップ、を備える。
【発明の効果】
【００１３】
本発明の効果は、入出力負荷が大きい場合であっても、処理性能低下防ぐことができることにある。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態における、構成を示すブロック図である。
【図２】本発明の第１の実施形態における、動作を示すフローチャートである。
【図３】本発明の第２の実施形態における、構成を示すブロック図である。
【図４】本発明の第２の実施形態における、負荷情報２８１の一例を示す図である。
【図５】本発明の第２の実施形態における、キャッシュ管理情報２８２の一例を示す図である。
【図６】本発明の第２の実施形態における、対応関係情報２８３の一例を示す図である。
【図７】本発明の第２の実施形態における、ディスク管理部２のハードウェア構成の一例を示すブロック図である。
【図８】本発明の第２の実施形態における、充電動作を示すフローチャートである。
【図９】本発明の第２の実施形態における、キャッシュ容量の制御動作を示すフローチャートである。
【図１０】本発明の第２の実施形態におけるデータ退避動作を示すフローチャートである。
【図１１】本発明の第３の実施形態における、構成を示すブロック図である。
【図１２】本発明の第３の実施形態における、動作を示すフローチャートである。
【図１３】本発明の第４の実施形態における、構成を示すブロック図である。
【図１４】本発明の第４の実施形態における、キャッシュ容量の制御動作を示すフローチャートである。
【発明を実施するための形態】
【００１５】
（第１の実施形態）
本発明の第１の実施形態について説明する。
【００１６】
まず、本発明の第１の実施形態の構成について説明する。図１は、本発明の第１の実施形態における、構成を示すブロック図である。
【００１７】
図１を参照すると、情報処理装置１は、ディスク管理部２と電力管理部３とを備えている。
【００１８】
ディスク管理部２は、データの読込み要求又は書込み要求の入出力負荷を取得する。例えば、ディスク管理部２は、情報処理装置１に対する外部のコンピュータからのデータの読込み要求や書込み要求の回数を入出力負荷として取得する。
【００１９】
そして、ディスク管理部２は、入出力負荷に関する負荷情報を電力管理部３に通知する。負荷情報とは、例えば入出力負荷である。
【００２０】
また、ディスク管理部２は、現在のバッテリの蓄電量に応じてキャッシュ容量を制御する。
【００２１】
電力管理部３は、ディスク管理部２から取得した負荷情報に基づき、バッテリの蓄電量を制御する。
【００２２】
例えば、電力管理部３は、負荷情報に基づき高負荷と判断した場合、バッテリの蓄電量が多くなるように制御する。
【００２３】
なお、ディスク管理部２及び電力管理部３はマイクロプロセッサやハードウェアプロセッサなどによって構成される。
【００２４】
次に、本発明の第１の実施形態における動作について説明する。図２は、本発明の第１の実施形態における、動作を示すフローチャートである。
【００２５】
まず、ディスク管理部２は、データの読込み要求又は書込み要求の入出力負荷を取得する。そして、ディスク管理部２は電力管理部３に入出力負荷に関する負荷情報を通知する。
【００２６】
電力管理部３は、ディスク管理部２から通知を受けることにより負荷情報を取得する（ステップＳ１００１）。電力管理部３は取得した負荷情報に基づき、バッテリの蓄電量が所定値になるように蓄電量を制御する（ステップＳ１００２）。詳細には、電力管理部３は、負荷情報に応じて必要となるキャッシュ容量がディスク管理部２によって設定されるようにバッテリの蓄電量を制御する。
【００２７】
ディスク管理部２は、電力管理部３から現在のバッテリの蓄電量を取得する（ステップＳ１００３）。例えば、ディスク管理部２は、電力管理部３から通知を受けることにより、バッテリの蓄電量を取得する。
【００２８】
ディスク管理部２は、現在のバッテリの蓄電量に応じて、キャッシュ容量を制御する（ステップＳ１００４）。
【００２９】
ディスク管理部２は、現在のバッテリの蓄電量が所定値以上か否かを判断する（ステップＳ１００５）。例えば、負荷情報によって決定されたバッテリの蓄電量よりも多い場合、所定値以上と判断する（ステップＳ１００５：ＹＥＳ）。
【００３０】
一方、ディスク管理部２は、現在のバッテリの蓄電量が所定値以下と判断した場合は（ステップＳ１００５：ＮＯ）、一定時間の後に再度蓄電量を取得するようステップＳ１００３に戻る。
【００３１】
以上により、本発明の第１の実施形態における動作が終了する。
【００３２】
本発明の第１の実施形態は、入出力負荷が大きい場合にも、処理性能低下防ぐことができることにある。その理由は、電力管理部３が、入出力に関する負荷情報に基づき、バッテリの蓄電量を制御することで、入出力負荷に応じたキャッシュ容量を割り当てるためである。
【００３３】
また、現在のバッテリの蓄電量に合わせてキャッシュ容量を制御するため、キャッシュ上のデータは、安全に保護される。
【００３４】
なお、本動作では、負荷情報に基づいて、事前に高負荷となる時間や必要なバッテリの蓄電量を予測し、当該予測に基づいてバッテリの蓄電量を制御する場合により有用である。なぜなら、予測によってバッテリの蓄電量を制御する場合、過去の入出力負荷に関する負荷情報に基づき値を決定するため、逐次負荷情報を参照する必要はないからである。
【００３５】
ディスク管理部２は、現在のバッテリの蓄電量が所定値以下と判断した場合、ステップＳ１００３に戻る例を示したが、これに限られない。ステップＳ１００１に戻り、ディスク管理部２は、再度負荷情報を取得し、当該負荷情報に基づき、バッテリを制御してもよい。
【００３６】
この場合、現在の負荷情報に合わせてバッテリの蓄電量を制御するような場合により有用である。なぜなら、変動する現在の負荷情報に合わせてバッテリの蓄電量を制御することができるためである。
【００３７】
この場合、現在のバッテリの蓄電量に合わせてキャッシュ容量を制御するため、キャッシュ上のデータをより安全に保護することができる。  また、ステップＳ１００３で取得したバッテリの蓄電量が所定値以下と判断した場合、ステップＳ１００４に進まず、一定時間の後に再度蓄電量を取得するようステップＳ１００３に戻り、バッテリの蓄電量が所定値以上となるまで待機してもよい。
【００３８】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。まず、本発明の第２の実施形態の構成について説明する。図３は、本発明の第２の実施形態における、構成を示すブロック図である。
【００３９】
図３を参照すると、情報処理装置１は、ディスク管理部２、電力管理部３、記憶装置４を備える。情報処理装置１は、例えば外部のコンピュータと接続されたストレージ装置である。
【００４０】
ディスク管理部２は、ホストインターフェイス２１、ディスクインターフェイス２２、ディスク制御部２３、負荷情報取得部２４、予測部２５、情報記憶部２６、キャッシュ制御部２７、キャッシュメモリ２８、不揮発性メモリ２９を備える。
【００４１】
ホストインターフェイス２１は、外部のコンピュータと接続され、コンピュータとの入出力を行う。また、ホストインターフェイス２１は、外部のコンピュータから書込み要求や読込み要求を取得する。
【００４２】
ディスクインターフェイス２２は、記憶装置４と接続され、記憶装置４とのデータの入出力を行う。
【００４３】
ディスク制御部２３は、ホストインターフェイス２１、ディスクインターフェイス２２、及びキャッシュメモリ２８におけるデータの入出力を制御する。
【００４４】
負荷情報取得部２４は、ホストインターフェイス２１が取得した入出力要求に基づいて入出力負荷に関する負荷情報２８１を後述の情報記憶部２６に記憶する。
【００４５】
図４は、本発明の第２の実施形態における負荷情報２８１の一例を示す図である。
【００４６】
負荷情報２８１は、例えば所定期間における入出力負荷を示す情報である。負荷情報２８１は、時間２８１１と、書込み要求回数２８１２と、読込み要求回数２８１３を含んで構成される。
【００４７】
書込み要求回数２８１２は、時間２８１１における書込み要求の回数を示している。読込み要求回数２８１３は、時間２８１１における読込み要求の回数を示している。
【００４８】
すなわち、図４は１０時から１０時３５分における書込み要求及び読込み要求の回数を示している。図４において、書込み要求回数２８１２は、１０時１０分に最も多く、読込み要求回数２８１３は、１０時３５分に最も多いことを示している。
【００４９】
なお、負荷情報２８１は、入出力負荷を測定可能な情報であれば上記に限られない。例えば、書込み要求回数２８１２又は読込み要求回数２８１３のどちらか一方でもよいし、レスポンスタイム、ビジー率、入出力要求に用いられたデータ量やデータ長でもよい。
【００５０】
予測部２５は、負荷情報２８１を取得し、各時間帯における負荷を予測する。また、予測部２５は、高負荷となる時間帯を予測する。
【００５１】
例えば、予測部２５は、所定期間の負荷情報２８１から、書込み要求回数２８１２又は読込み要求回数２８１３の値が連続して所定値以上となる時間帯を高負荷となる時間帯として予測する。
【００５２】
例えば、予測部２５は、所定期間の負荷情報２８１から書込み要求回数２８１２又は読込み要求回数２８１３の値の統計情報に基づいて高負荷となる時間帯を予測する。
また、予測部２５は、対応関係情報２８２を用いて、高負荷となる時間帯において必要なキャッシュ容量及び必要蓄電量を決定し、電力制御部３１に通知する。
【００５３】
情報記憶部２６は、例えば不揮発性メモリであり、上述の負荷情報２８１に加え、キャッシュ管理情報２８２及び対応関係情報２８３を記憶している。
【００５４】
図５は、本発明の第２の実施形態におけるキャッシュ管理情報２８２の一例を示す図である。
【００５５】
キャッシュ管理情報２８２は、キャッシュメモリ２８に格納されたデータを管理するために用いる情報である。キャッシュ管理情報２８２は、配置情報２８２１、状態２８２２、アクセス頻度２８２３を含んで構成される。
【００５６】
配置情報２８２１は、キャッシュメモリ２８におけるデータの配置位置を示す情報である。
【００５７】
状態２８２２は、対応する配置情報２８２１にあるデータの状態を示す情報である。記憶装置４へ書込みが必要な状態である場合、「Ｄｉｒｔｙ」となり、記憶装置４に記憶されたデータと同一である場合「Ｃｌｅａｎ」となる。
【００５８】
アクセス頻度２８２３は、所定期間にアクセスされた回数を示す情報である。
【００５９】
すなわち、図５において、配置情報２８２１が１００３のデータは、「Ｃｌｅａｎ」なデータであり、所定期間において１０回のアクセスがあったことを示している。
【００６０】
図６は、本発明の第２の実施形態における対応関係情報２８３の一例を示す図である。
【００６１】
対応関係情報２８３は、データの読込み要求や書込み要求の入出力負荷に関する負荷情報２８１において、必要とされるキャッシュ容量２８３２と、当該キャッシュ容量２８３２を動作させるために必要な必要蓄電量２８３３の対応関係を示している。対応関係情報２８３は、負荷２８３１、キャッシュ容量２８３２、必要蓄電量２８３３を含んで構成される。
【００６２】
負荷２８３１は、例えば、負荷情報２８１における書込み要求回数２８１２と読込み要求回数２８１３の総数を示している。
【００６３】
キャッシュ容量２８３２は、対応する負荷２８３１の状態において、処理性能が低下しないキャッシュ容量の割合を示している。
【００６４】
必要蓄電量２８３３は、対応するキャッシュ容量２８３２を動作させるために必要な蓄電量の割合を示している。
【００６５】
例えば、負荷２８３１が７０００回である場合、必要なキャッシュ容量は全体のキャッシュ容量の７０％であり、７０％のキャッシュ容量を不揮発性メモリ２９に動作させるために必要な蓄電量は７０％であることを示している。
【００６６】
なお、キャッシュ管理情報２８２の状態２８２２を参照し、「Ｄｉｒｔｙ」のデータと「Ｃｌｅｎ」のデータの割合に必要蓄電量２８３３を変更してもよい。
【００６７】
なぜなら、バッテリ３２の蓄電量は主に記憶装置４に書き込むために用いられるためである。よって、「Ｄｉｒｔｙ」のデータが少ない場合、記憶装置４に書き込むデータが少なくなり、必要蓄電量２８３３を少なくすることが可能となる。
【００６８】
さらに、キャッシュメモリ２８のデータを外部のコンピュータに通知した後、処理の空き時間に記憶装置４に書き込むようなライトバックの制御を行っている場合は、負荷２８３１内の書込み要求回数２８１２と読込み要求回数２８１３の割合によって必要蓄電量２８３３を変更することも可能である。なぜなら書込み要求に用いたデータの場合、記憶装置４へ書込みが必要な状態である「Ｄｉｒｔｙ」となり、読込み要求に用いたデータの場合、記憶装置４に記憶されたデータと同一であることを示す状態である「Ｃｌｅａｎ」となるためである。
【００６９】
キャッシュ制御部２７は、書込み要求及び読込み要求に用いるデータをキャッシュメモリ２８に記憶すると共に、キャッシュ管理情報２８２を更新する。
【００７０】
また、キャッシュ制御部２７は、後述する電力制御部３１からバッテリ３２の蓄電量を取得し、当該蓄電量に応じて、キャッシュ容量を制御する。
【００７１】
例えば、電力制御部３１から取得した蓄電量が５０％であった場合、キャッシュ制御部２７は、対応関係情報２８３を参照し、５０％の必要蓄電量２８３３に対応するキャッシュ容量２８３２である６０％にキャッシュ容量を制御する。
【００７２】
キャッシュメモリ２８は、入出力に用いたデータを一時的にキャッシュとして格納する揮発性メモリである。キャッシュメモリ２８はキャッシュ制御部２７によって制御される。キャッシュメモリ２８に記憶されたデータはキャッシュ管理情報２８２で管理されている。
【００７３】
不揮発性メモリ２９は、停電時や電源装置３３の故障時等、電源装置３３からの電力供給に異常が発生した場合、キャッシュメモリ２８のデータを一時的に保持する。不揮発性メモリ２９は、一般的に記憶装置４よりも動作が速く、消費電力の低いものが用いられる。
【００７４】
電力管理部３は、電力制御部３１、バッテリ３２及び電源装置３３を含む。
【００７５】
電力制御部３１は、情報処理装置１に電力供給を行うバッテリ３２及び電源装置３３と接続されており、情報処理装置１への電力制御を行う。電力制御部３１は、電源装置３３からの電力供給に異常が発生した場合、バッテリ３２に切り替える。また、電力制御部３１は、バッテリ３２の蓄電量をキャッシュ制御部２７へ通知する。
【００７６】
さらに、電力制御部３１は、負荷情報２８１に基づき、バッテリ３２の蓄電量を制御する。例えば、電力制御部３１は、予測部２５が負荷情報２８１に基づき高負荷となると予測した時間帯にバッテリ３２の蓄電量が所定値以上になるように制御する。
【００７７】
例えば、電力制御部３１は、予測部２５が負荷情報２８１に基づき決定した蓄電量以上になるようにバッテリ３２の蓄電量を制御する。
【００７８】
バッテリ３２は、電源装置３３からの電力供給に異常が発生した場合、情報処理装置１に電力供給を行う。電源装置３３からの電力供給に異常が発生した場合、バッテリ３２の供給電力によりキャッシュメモリ２８を動作させる。
【００７９】
電源装置３３は、交流電源を直流に変換して情報処理装置１及びバッテリ３２に電力供給を行う。
【００８０】
記憶装置４は、データを保持する記憶装置であり、例えばハードディスク（磁気ディスク）装置、光記憶装置、光磁気記憶装置、ＳＳＤ（Ｓｏｌｉｄ Ｓｔａｔｅ Ｄｒｉｖｅ）などによって構成される。
【００８１】
図７は、本発明の第２の実施形態における、ディスク管理部２のハードウェア構成の一例を示すブロック図である。
【００８２】
ディスク管理部２は、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）６１、メモリ６２、補助記憶装置６３を含み、各構成要素は、互いにバス６７によって接続される。
【００８３】
ＣＰＵ６１は、ディスク管理部２を制御するプログラムを実行する中央演算処理装置である。ＣＰＵ６１は、補助記憶装置６３に格納されたプログラムに基づいて所定の処理を実行して、ディスク管理部２の動作を制御する。例えば、ＣＰＵ６１は、補助記憶装置６３に格納されたプログラムに基づいて、ディスク制御部２３、負荷情報取得部２４、予測部２５、キャッシュ制御部２７の機能を実現する。
【００８４】
メモリ６２は、プログラムが展開される主記憶装置である。
【００８５】
補助記憶装置６３は、ディスク管理部２の動作を制御するプログラムを格納する。
【００８６】
本実施形態では、ＣＰＵ６１は、補助記憶装置６３に格納されたプログラムを読み出して実行するものとして説明したが、当該プログラムをＣＤＲＯＭ（Ｃｏｍｐａｃｔ Ｄｉｓｃ Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）等の記憶媒体に格納してＣＰＵ６１に提供することも可能である。
【００８７】
なお、本発明の第２の実施形態における、電力管理部３のハードウェア構成については、ディスク管理部２と同様に構成すればよいため、詳細な説明は省略する。電力制御部３１の機能は、上述のディスク制御部２３、負荷情報取得部２４、予測部２５、キャッシュ制御部２７と同様に、ＣＰＵ６１が補助記憶装置６３に格納されたプログラムに基づいて所定の処理を実行することにより実現することができる。
【００８８】
次に、本発明の第２の実施形態における動作について説明する。
【００８９】
図８は、本発明の第２実施形態における、充電動作を示すフローチャートである。
【００９０】
事前に負荷情報取得部２４は、読込み要求及び書込み要求の入出力負荷に関する負荷情報２８１を情報記憶部２６に蓄積しておく。
【００９１】
予測部２５は、情報記憶部２６から負荷情報２８１を取得し（ステップＳ２００１）、時間帯ごとに負荷を予測することにより、高負荷となる時間帯を予測する（ステップＳ２００２）。
【００９２】
例えば、予測部２５は、所定期間の負荷情報２８１から、書込み要求回数２８１２又は読込み要求回数２８１３の値が連続して所定値以上となる時間帯を高負荷となる時間帯と予測する。
【００９３】
図４を参照すると、１０時５分から１０時１５分までの間、書込み要求回数２８１２と読込み要求回数２８１３の和が５０００回以上になっているため、この時間を高負荷となる時間帯と予測する。
【００９４】
例えば、予測部２５は、所定期間の負荷情報２８１から書込み要求回数２８１２又は読込み要求回数２８１３の値の統計情報に基づいて予測する。
【００９５】
次に、予測部２５は、高負荷となる時間帯において必要なキャッシュ容量及び必要蓄電量を決定する（ステップＳ２００３）。
【００９６】
例えば、予測部２５は、対応関係情報２８３から、高負荷となる時間帯における負荷２８３１と対応するキャッシュ容量２８３２及び必要蓄電量２８３３を、当該キャッシュ容量２８３２及び必要蓄電量２８３３として決定する。そして予測部２５は、決定した必要電力量２８３３を電力制御部３１に通知する。
【００９７】
例えば、図４において、高負荷となる時間帯における最大の負荷２８３１は、１０時１０分であり、読込み要求回数２８２１と、書込み要求回数２８１３の和は７５００回となっている。よって、予測部２５は、図６を参照し、７５００回に対応するキャッシュ容量２８３２である８０％にキャッシュ容量を決定する。同様に予測部２５は、必要蓄電量２８３３を８０％として決定する。
【００９８】
電力制御部３１は、決定した必要蓄電量２８３３となるようにバッテリ３２の蓄電量を制御する（ステップＳ２００４）。
【００９９】
電力制御部３１は、現在のバッテリ３２の蓄電量を取得する（ステップＳ２００５）。
【０１００】
現在のバッテリ３２の蓄電量と予測部２５が決定した必要蓄電量２８３３を比較し、現在のバッテリ３２の蓄電量が必要蓄電量２８３３よりも少ない場合（ステップＳ２００６：ＹＥＳ）、一定時間の後に再度蓄電量を取得するようステップＳ２００５に戻る。
予測部２５が決定した必要蓄電量２８３３より多い場合（ステップＳ２００６：ＮＯ）、終了する。
【０１０１】
以上により、本発明の第２の実施形態における充電動作が完了する。
【０１０２】
なお、ステップＳ２００４におけるバッテリ３２の蓄電量の制御方法は、現在のバッテリ３２の蓄電量が必要蓄電量２８３３を下回った場合、電力制御部３１がバッテリ３２を充電するようにしてもよい。
【０１０３】
また、電力制御部３１は、高負荷となる時間帯に必要蓄電量２８３３となるようなタイミングで充電を開始してもよい。電力制御部３１は、高負荷となる時間帯の所定時間前にバッテリ３２の蓄電量を取得し、バッテリ３２の蓄電量が所定値を下回った場合、高負荷となる時間帯にバッテリ３２の蓄電量が所定値以上になるように充電するようにしてもよい。
【０１０４】
さらに、本実施形態では、高負荷の時に必要な必要蓄電量２８３３となるように、電力制御部３１がバッテリ３２を充電するように制御する例を示したが、これに限られない。
【０１０５】
例えば、時間帯ごとに必要蓄電量２８３３を求め、予測した時間帯の所定時間前にバッテリ３２の蓄電量を取得し、バッテリ３２の蓄電量が必要蓄電量２８３３を下回っていた場合に充電するようにしてもよい。
【０１０６】
図９は、本発明の第２実施形態における、キャッシュ容量の制御動作を示すフローチャートである。
【０１０７】
電力制御部３１は、現在のバッテリ３２の蓄電量を取得する（ステップＳ３００１）。
【０１０８】
電力制御部３１は、ステップＳ３００１で取得した現在のバッテリ３２の蓄電量をキャッシュ制御部２７に通知する（ステップＳ３００２）。
【０１０９】
キャッシュ制御部２７は、電力制御部３１から通知されたバッテリ３２の蓄電量に基づき、キャッシュ容量を制御する。
【０１１０】
まず、キャッシュ制御部２７は、電力制御部３１から通知されたバッテリ３２の蓄電量に基づき、キャッシュ容量を決定する（ステップＳ３００３）。キャッシュ制御部２７は、対応関係情報２８３を参照し、電力制御部３１から通知された蓄電量に対応する必要蓄電量２８３３のキャッシュ容量２８３２に決定する。例えば、電力制御部３１から通知された蓄電量が６０％であった場合、制御するキャッシュ容量を６０％に決定する。
【０１１１】
次に、キャッシュ制御部２７はキャッシュ管理情報２８２を参照し、現在のキャッシュの容量とステップＳ３００３で決定したキャッシュ容量を比較し、現在のキャッシュの容量が決定したキャッシュ容量より小さい場合（ステップＳ３００４：ＮＯ）、キャッシュ制御部２７は、ステップＳ３００３で決定したキャッシュ容量となるように制御する（ステップＳ３００６）。すなわち、キャッシュ制御部２７は、現在のキャッシュ容量よりも大きくするように制御する。そして、本動作を終了する。
【０１１２】
現在のキャッシュの容量とステップＳ３００３で決定したキャッシュ容量を比較し、現在のキャッシュの容量が決定したキャッシュ容量より大きい場合（ステップＳ３００４：ＹＥＳ）キャッシュメモリ２８上のデータの一部を記憶装置４に書き込む（ステップＳ３００５）。
【０１１３】
このとき、記憶装置４に書き込むデータは、キャッシュ制御部２７がキャッシュ管理情報２８２を参照することにより決定する。例えば、アクセス頻度２８２３が少ないものを記憶装置４に書き込む、状態２８２２が「Ｄｉｒｔｙ」のデータを優先して記憶装置４に書き込むなど、記憶装置４に書き込むデータの優先順位は適宜設定することが可能である。
【０１１４】
そして、必要に応じてキャッシュメモリ２８上のデータを最適な位置に再配置する。例えば連続した領域を使用可能なようにデータを再配置する。
【０１１５】
キャッシュ制御部２７は記憶装置４に書き込んだデータをキャッシュメモリ２８上から削除し、ステップＳ３００３で決定したキャッシュ容量に制御する（ステップＳ３００６）。すなわち、キャッシュ制御部２７は、現在のキャッシュ容量を小さくするように制御する。
【０１１６】
以上により、本発明の第２の実施形態におけるキャッシュ制御動作が完了する。
【０１１７】
図１０は、本発明の第２の実施形態におけるデータ退避動作を示すフローチャートである。
【０１１８】
電力制御部３１は、電源装置３３の異常を検知すると、電力制御部３１は、キャッシュ制御部２７に電源異常を通知する（ステップＳ４００１）。電源装置３３の異常とは、例えば、電源装置３３の故障や、停電等により電源装置３３からの電力供給が断たれた場合である。
【０１１９】
電力制御部３１は、情報処理装置１への電力供給をバッテリ３２に切り替える（ステップＳ４００２）。
【０１２０】
キャッシュ制御部２７は、電力異常の通知を受信すると、キャッシュメモリ２８のデータを不揮発性メモリ２９に書き込む（ステップＳ４００３）。
【０１２１】
そして、キャッシュメモリ２８上の全てのデータが不揮発性メモリ２９に書き込まれると、データ退避処理を終了する。
【０１２２】
なお、本実施形態では、キャッシュメモリ２８上のデータを全て不揮発性メモリ２９に書き込む例を示したが、キャッシュ管理情報２８２における状態２８２２が「Ｄｉｒｔｙ」となっているデータのみを不揮発性メモリ２９に書き込むようにしてもよい。
【０１２３】
この場合、すべてのデータを不揮発性メモリ２９に書き込む場合に比べ、退避処理に要する電力を削減することが可能である。
【０１２４】
以上により、本発明の第２の実施形態における動作が完了する。
【０１２５】
なお、本実施形態では、キャッシュ制御部２７がキャッシュメモリ２８上のデータを不揮発性メモリ２９に書き込む例を示したが、キャッシュメモリ２８上のデータを直接記憶装置４に書き込む構成とすることも可能である。
【０１２６】
その場合、不揮発性メモリ２９が不要となり、部品数を削減することができる。
【０１２７】
本発明の第２の実施形態は、入出力負荷が大きい場合にも、処理性能の低下防ぐことができることにある。その理由は、電力制御部３１が、高負荷となる時間に必要な蓄電量となるように、バッテリ３２を充電するためである。これにより、入出力負荷が大きい場合にもバッテリ３２の適切な蓄電量が確保され、キャッシュ容量の縮小を抑えることができる。
【０１２８】
本発明の第２の実施形態は、情報処理装置１の処理性能を大幅に低下させることなく、キャッシュメモリ２８上のデータを保護することができることにある。その理由は、キャッシュ制御部２７がバッテリ３２の蓄電量に応じてキャッシュ容量を制御するためである。
【０１２９】
本発明の第２の実施形態は、特殊なハードウェアを追加することなく、キャッシュメモリ２８上のデータを保護することできることにある。その理由は、キャッシュ制御部２７が、キャッシュメモリ２８上のデータを、キャッシュ管理情報２８２を用いて管理及び制御を行っているため、ソフトウェアにより制御できるためである。
（第３の実施形態）
本発明の第３の実施形態の構成について説明する。図１１は、本発明の第３の実施形態における、構成を示すブロック図である。
【０１３０】
図１１を参照すると、情報処理装置１は、負荷情報取得部２４と、キャッシュ制御部２７とを備えている。
【０１３１】
負荷情報取得部２４は、データの読込み要求又は書込み要求の少なくとも一方の入出力負荷に関する負荷情報を取得する。例えば、負荷情報取得部２４は、情報処理装置１に対する外部のコンピュータからのデータの読込み要求や書込み要求の回数を入出力負荷として取得する。
【０１３２】
キャッシュ制御部２７は、負荷情報取得部２４から負荷情報を取得する。そして、キャッシュ制御部２７は、負荷情報に応じて、キャッシュ容量を制御する。
【０１３３】
例えば、キャッシュ制御部２７は、負荷情報に基づき高負荷と判断した場合キャッシュ容量が大きくするように制御する。
【０１３４】
なお、負荷情報取得部２４及びキャッシュ制御部２７はマイクロプロセッサやハードウェアプロセッサなどによって構成される。
【０１３５】
次に、本発明の第３の実施形態における動作について説明する。図１２は、本発明の第３の実施形態における、動作を示すフローチャートである。
【０１３６】
まず、負荷情報取得部２４は、データの読込み要求又は書込み要求の入出力負荷を取得し、キャッシュ制御部２７は、負荷情報取得部２４から負荷情報を取得する（ステップＳ５００１）。
【０１３７】
キャッシュ制御部２７は、負荷情報に応じてキャッシュ容量を制御する（ステップＳ５００２）。例えば、負荷情報から負荷が高いと予測された場合、キャッシュ容量を大きくするように制御する。
【０１３８】
以上により、本発明の第３の実施形態における動作が終了する。
【０１３９】
本発明の第３の実施形態は、入出力負荷が大きい場合にも、処理性能低下防ぐことができることにある。その理由は、キャッシュ制御部２７が、入出力に関する負荷情報に基づき、キャッシュ容量を制御することためである。これによって、データを保護しつつ、入出力負荷に応じたキャッシュ容量を割り当てることができる。
（第４の実施形態）
次に、本発明の第４の実施形態について説明する。
【０１４０】
図１３は、本発明の第４の実施形態における、構成を示すブロック図である。本実施形態における情報処理装置１は、負荷情報取得部２４と、キャッシュ制御部２７の動作が異なる点で第３の実施形態と異なる。
【０１４１】
そこで、第３の実施形態と重複する構成及び内容に関しては説明を省略する。
【０１４２】
負荷情報取得部２４は、ホストインターフェイス２１が取得した入出力要求に基づいて入出力負荷に関する負荷情報２８１を取得し、キャッシュ制御部２７へ通知する。
【０１４３】
キャッシュ制御部２７は、電力制御部３１からバッテリ３２の蓄電量を取得する。
【０１４４】
キャッシュ制御部２７は、負荷情報２８１から、現在の負荷が所定値以下であると判断した場合、バッテリ３２の蓄電量に基づき、キャッシュ容量を制御する。また、キャッシュ制御部２７は、負荷情報２８１から、現在の負荷が所定値以上であると判断した場合、負荷情報２８１に基づき、キャッシュ容量を制御する。
【０１４５】
なお、本発明の第４の実施形態における、負荷情報取得部２４及びキャッシュ制御部２７のハードウェア構成については、第２の実施形態と同様に構成すればよいため、説明は省略する。
【０１４６】
次に、本発明の第４の実施形態における動作について説明する。図１４は、本発明の第４の実施形態における、動作を示すフローチャートである。
【０１４７】
図１４は、本発明の第４実施形態における、キャッシュ容量の制御動作を示すフローチャートである。ステップＳ６００１〜ステップＳ６００３が追加されている点で第３の実施形態と相違する。その他のステップに関しては同様のため説明は省略する。
【０１４８】
ステップＳ３００２において、キャッシュ制御部２７は電力制御部３１から現在のバッテリ３２の蓄電量を取得した後、負荷情報取得部２４は、現在の負荷情報２８１を取得する（ステップＳ６００１）。
【０１４９】
キャッシュ制御部２７は、負荷情報２８１から、現在の負荷が所定値以上であると判断した場合（ステップＳ６００２）、負荷に基づいてキャッシュ容量を決定する（ステップＳ６００３）。
【０１５０】
例えば、負荷情報２８１を参照し、書込み要求回数２８１２と読込み要求回数２８１３の総数が５０００回以上である場合、キャッシュ制御部２７は、負荷２８３１に基づいてキャッシュ容量を決定する。
【０１５１】
例えば、図４における１０時５分における書込み要求回数２８１２と読込み要求回数２８１３の総数は、７１００回である。図６の対応関係情報２８３を参照すると、対応する負荷２８３１のキャッシュ容量は８０％であることがわかる。そこで、キャッシュ制御部２７はバッテリ３２の蓄電量に関係なく、キャッシュ容量を８０％に制御すると決定する。
【０１５２】
そしてステップＳ３００４に進む。その後ステップＳ３００４からステップＳ３００６の動作に関しては第２の実施形態と同様である。
【０１５３】
以上により、本発明の第４の実施形態における動作が完了する。
【０１５４】
なお、本動作においてキャッシュ制御部２７は、バッテリ３２の蓄電量に関係なく、キャッシュ容量を決定したが、バッテリ３２の蓄電量を考慮して、キャッシュ容量を決定してもよい。
【０１５５】
例えば、キャッシュ制御部２７は、ステップＳ３００２において取得したバッテリ３２の蓄電量に対応するキャッシュ容量を決定する。そして、負荷が大きい場合、キャッシュ制御部２７は、バッテリ３２の蓄電量によって決定されたキャッシュ容量に対して、所定量増加させるようにしてもよい。
【０１５６】
本発明の第４の実施形態は、入出力負荷が大きい場合にも、処理性能の低下防ぐことができることにある。その理由は、キャッシュ制御部２７が、負荷が所定値以上である場合、負荷に応じたキャッシュ容量に制御するためである。これにより、入出力負荷が大きい場合に、キャッシュ容量の縮小を抑えることができる。
【０１５７】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１５８】
１    情報処理装置
２    ディスク管理部
２１    ホストインターフェイス
２２    ディスクインターフェイス
２３    ディスク制御部
２４    負荷情報取得部
２５    予測部
２６    情報記憶部
２７    キャッシュ制御部
２８    キャッシュメモリ
２８１    負荷情報
２８１１    時間
２８１２    書込み要求回数
２８１３    読込み要求回数
２８２    キャッシュ管理情報
２８２１    配置情報
２８２２    状態
２８２３  アクセス頻度
２８３    対応関係情報
２８３１    負荷
２８３２    キャッシュ容量
２８３３    必要蓄電量
２９    不揮発性メモリ
３    電力管理部
３１    電力制御部
３２    バッテリ
３３    電源装置
４    記憶装置
６１    ＣＰＵ
６２    メモリ
６３    補助記憶装置
６７    バス
【図１】
0006805525.tif 000002
【図２】
0006805525.tif 000003
【図３】
0006805525.tif 000004
【図４】
0006805525.tif 000005
【図５】
0006805525.tif 000006
【図６】
0006805525.tif 000007
【図７】
0006805525.tif 000008
【図８】
0006805525.tif 000009
【図９】
0006805525.tif 000010
【図１０】
0006805525.tif 000011
【図１１】
0006805525.tif 000012
【図１２】
0006805525.tif 000013
【図１３】
0006805525.tif 000014
【図１４】
0006805525.tif 000015