(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
(第1の実施形態)
本発明の第1の実施形態について説明する。
【0016】
まず、本発明の第1の実施形態の構成について説明する。
図1は、本発明の第1の実施形態における、構成を示すブロック図である。
【0017】
図1を参照すると、情報処理装置1は、ディスク管理部2と電力管理部3とを備えている。
【0018】
ディスク管理部2は、データの読込み要求又は書込み要求の入出力負荷を取得する。例えば、ディスク管理部2は、情報処理装置1に対する外部のコンピュータからのデータの読込み要求や書込み要求の回数を入出力負荷として取得する。
【0019】
そして、ディスク管理部2は、入出力負荷に関する負荷情報を電力管理部3に通知する。負荷情報とは、例えば入出力負荷である。
【0020】
また、ディスク管理部2は、現在のバッテリの蓄電量に応じてキャッシュ容量を制御する。
【0021】
電力管理部3は、ディスク管理部2から取得した負荷情報に基づき、バッテリの蓄電量を制御する。
【0022】
例えば、電力管理部3は、負荷情報に基づき高負荷と判断した場合、バッテリの蓄電量が多くなるように制御する。
【0023】
なお、ディスク管理部2及び電力管理部3はマイクロプロセッサやハードウェアプロセッサなどによって構成される。
【0024】
次に、本発明の第1の実施形態における動作について説明する。
図2は、本発明の第1の実施形態における、動作を示すフローチャートである。
【0025】
まず、ディスク管理部2は、データの読込み要求又は書込み要求の入出力負荷を取得する。そして、ディスク管理部2は電力管理部3に入出力負荷に関する負荷情報を通知する。
【0026】
電力管理部3は、ディスク管理部2から通知を受けることにより負荷情報を取得する(ステップS1001)。電力管理部3は取得した負荷情報に基づき、バッテリの蓄電量が所定値になるように蓄電量を制御する(ステップS1002)。詳細には、電力管理部3は、負荷情報に応じて必要となるキャッシュ容量がディスク管理部2によって設定されるようにバッテリの蓄電量を制御する。
【0027】
ディスク管理部2は、電力管理部3から現在のバッテリの蓄電量を取得する(ステップS1003)。例えば、ディスク管理部2は、電力管理部3から通知を受けることにより、バッテリの蓄電量を取得する。
【0028】
ディスク管理部2は、現在のバッテリの蓄電量に応じて、キャッシュ容量を制御する(ステップS1004)。
【0029】
ディスク管理部2は、現在のバッテリの蓄電量が所定値以上か否かを判断する(ステップS1005)。例えば、負荷情報によって決定されたバッテリの蓄電量よりも多い場合、所定値以上と判断する(ステップS1005:YES)。
【0030】
一方、ディスク管理部2は、現在のバッテリの蓄電量が所定値以下と判断した場合は(ステップS1005:NO)、一定時間の後に再度蓄電量を取得するようステップS1003に戻る。
【0031】
以上により、本発明の第1の実施形態における動作が終了する。
【0032】
本発明の第1の実施形態は、入出力負荷が大きい場合にも、処理性能低下防ぐことができることにある。その理由は、電力管理部3が、入出力に関する負荷情報に基づき、バッテリの蓄電量を制御することで、入出力負荷に応じたキャッシュ容量を割り当てるためである。
【0033】
また、現在のバッテリの蓄電量に合わせてキャッシュ容量を制御するため、キャッシュ上のデータは、安全に保護される。
【0034】
なお、本動作では、負荷情報に基づいて、事前に高負荷となる時間や必要なバッテリの蓄電量を予測し、当該予測に基づいてバッテリの蓄電量を制御する場合により有用である。なぜなら、予測によってバッテリの蓄電量を制御する場合、過去の入出力負荷に関する負荷情報に基づき値を決定するため、逐次負荷情報を参照する必要はないからである。
【0035】
ディスク管理部2は、現在のバッテリの蓄電量が所定値以下と判断した場合、ステップS1003に戻る例を示したが、これに限られない。ステップS1001に戻り、ディスク管理部2は、再度負荷情報を取得し、当該負荷情報に基づき、バッテリを制御してもよい。
【0036】
この場合、現在の負荷情報に合わせてバッテリの蓄電量を制御するような場合により有用である。なぜなら、変動する現在の負荷情報に合わせてバッテリの蓄電量を制御することができるためである。
【0037】
この場合、現在のバッテリの蓄電量に合わせてキャッシュ容量を制御するため、キャッシュ上のデータをより安全に保護することができる。 また、ステップS1003で取得したバッテリの蓄電量が所定値以下と判断した場合、ステップS1004に進まず、一定時間の後に再度蓄電量を取得するようステップS1003に戻り、バッテリの蓄電量が所定値以上となるまで待機してもよい。
【0038】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。まず、本発明の第2の実施形態の構成について説明する。
図3は、本発明の第2の実施形態における、構成を示すブロック図である。
【0039】
図3を参照すると、情報処理装置1は、ディスク管理部2、電力管理部3、記憶装置4を備える。情報処理装置1は、例えば外部のコンピュータと接続されたストレージ装置である。
【0040】
ディスク管理部2は、ホストインターフェイス21、ディスクインターフェイス22、ディスク制御部23、負荷情報取得部24、予測部25、情報記憶部26、キャッシュ制御部27、キャッシュメモリ28、不揮発性メモリ29を備える。
【0041】
ホストインターフェイス21は、外部のコンピュータと接続され、コンピュータとの入出力を行う。また、ホストインターフェイス21は、外部のコンピュータから書込み要求や読込み要求を取得する。
【0042】
ディスクインターフェイス22は、記憶装置4と接続され、記憶装置4とのデータの入出力を行う。
【0043】
ディスク制御部23は、ホストインターフェイス21、ディスクインターフェイス22、及びキャッシュメモリ28におけるデータの入出力を制御する。
【0044】
負荷情報取得部24は、ホストインターフェイス21が取得した入出力要求に基づいて入出力負荷に関する負荷情報281を後述の情報記憶部26に記憶する。
【0045】
図4は、本発明の第2の実施形態における負荷情報281の一例を示す図である。
【0046】
負荷情報281は、例えば所定期間における入出力負荷を示す情報である。負荷情報281は、時間2811と、書込み要求回数2812と、読込み要求回数2813を含んで構成される。
【0047】
書込み要求回数2812は、時間2811における書込み要求の回数を示している。読込み要求回数2813は、時間2811における読込み要求の回数を示している。
【0048】
すなわち、
図4は10時から10時35分における書込み要求及び読込み要求の回数を示している。
図4において、書込み要求回数2812は、10時10分に最も多く、読込み要求回数2813は、10時35分に最も多いことを示している。
【0049】
なお、負荷情報281は、入出力負荷を測定可能な情報であれば上記に限られない。例えば、書込み要求回数2812又は読込み要求回数2813のどちらか一方でもよいし、レスポンスタイム、ビジー率、入出力要求に用いられたデータ量やデータ長でもよい。
【0050】
予測部25は、負荷情報281を取得し、各時間帯における負荷を予測する。また、予測部25は、高負荷となる時間帯を予測する。
【0051】
例えば、予測部25は、所定期間の負荷情報281から、書込み要求回数2812又は読込み要求回数2813の値が連続して所定値以上となる時間帯を高負荷となる時間帯として予測する。
【0052】
例えば、予測部25は、所定期間の負荷情報281から書込み要求回数2812又は読込み要求回数2813の値の統計情報に基づいて高負荷となる時間帯を予測する。
また、予測部25は、対応関係情報282を用いて、高負荷となる時間帯において必要なキャッシュ容量及び必要蓄電量を決定し、電力制御部31に通知する。
【0053】
情報記憶部26は、例えば不揮発性メモリであり、上述の負荷情報281に加え、キャッシュ管理情報282及び対応関係情報283を記憶している。
【0054】
図5は、本発明の第2の実施形態におけるキャッシュ管理情報282の一例を示す図である。
【0055】
キャッシュ管理情報282は、キャッシュメモリ28に格納されたデータを管理するために用いる情報である。キャッシュ管理情報282は、配置情報2821、状態2822、アクセス頻度2823を含んで構成される。
【0056】
配置情報2821は、キャッシュメモリ28におけるデータの配置位置を示す情報である。
【0057】
状態2822は、対応する配置情報2821にあるデータの状態を示す情報である。記憶装置4へ書込みが必要な状態である場合、「Dirty」となり、記憶装置4に記憶されたデータと同一である場合「Clean」となる。
【0058】
アクセス頻度2823は、所定期間にアクセスされた回数を示す情報である。
【0059】
すなわち、
図5において、配置情報2821が1003のデータは、「Clean」なデータであり、所定期間において10回のアクセスがあったことを示している。
【0060】
図6は、本発明の第2の実施形態における対応関係情報283の一例を示す図である。
【0061】
対応関係情報283は、データの読込み要求や書込み要求の入出力負荷に関する負荷情報281において、必要とされるキャッシュ容量2832と、当該キャッシュ容量2832を動作させるために必要な必要蓄電量2833の対応関係を示している。対応関係情報283は、負荷2831、キャッシュ容量2832、必要蓄電量2833を含んで構成される。
【0062】
負荷2831は、例えば、負荷情報281における書込み要求回数2812と読込み要求回数2813の総数を示している。
【0063】
キャッシュ容量2832は、対応する負荷2831の状態において、処理性能が低下しないキャッシュ容量の割合を示している。
【0064】
必要蓄電量2833は、対応するキャッシュ容量2832を動作させるために必要な蓄電量の割合を示している。
【0065】
例えば、負荷2831が7000回である場合、必要なキャッシュ容量は全体のキャッシュ容量の70%であり、70%のキャッシュ容量を不揮発性メモリ29に動作させるために必要な蓄電量は70%であることを示している。
【0066】
なお、キャッシュ管理情報282の状態2822を参照し、「Dirty」のデータと「Clen」のデータの割合に必要蓄電量2833を変更してもよい。
【0067】
なぜなら、バッテリ32の蓄電量は主に記憶装置4に書き込むために用いられるためである。よって、「Dirty」のデータが少ない場合、記憶装置4に書き込むデータが少なくなり、必要蓄電量2833を少なくすることが可能となる。
【0068】
さらに、キャッシュメモリ28のデータを外部のコンピュータに通知した後、処理の空き時間に記憶装置4に書き込むようなライトバックの制御を行っている場合は、負荷2831内の書込み要求回数2812と読込み要求回数2813の割合によって必要蓄電量2833を変更することも可能である。なぜなら書込み要求に用いたデータの場合、記憶装置4へ書込みが必要な状態である「Dirty」となり、読込み要求に用いたデータの場合、記憶装置4に記憶されたデータと同一であることを示す状態である「Clean」となるためである。
【0069】
キャッシュ制御部27は、書込み要求及び読込み要求に用いるデータをキャッシュメモリ28に記憶すると共に、キャッシュ管理情報282を更新する。
【0070】
また、キャッシュ制御部27は、後述する電力制御部31からバッテリ32の蓄電量を取得し、当該蓄電量に応じて、キャッシュ容量を制御する。
【0071】
例えば、電力制御部31から取得した蓄電量が50%であった場合、キャッシュ制御部27は、対応関係情報283を参照し、50%の必要蓄電量2833に対応するキャッシュ容量2832である60%にキャッシュ容量を制御する。
【0072】
キャッシュメモリ28は、入出力に用いたデータを一時的にキャッシュとして格納する揮発性メモリである。キャッシュメモリ28はキャッシュ制御部27によって制御される。キャッシュメモリ28に記憶されたデータはキャッシュ管理情報282で管理されている。
【0073】
不揮発性メモリ29は、停電時や電源装置33の故障時等、電源装置33からの電力供給に異常が発生した場合、キャッシュメモリ28のデータを一時的に保持する。不揮発性メモリ29は、一般的に記憶装置4よりも動作が速く、消費電力の低いものが用いられる。
【0074】
電力管理部3は、電力制御部31、バッテリ32及び電源装置33を含む。
【0075】
電力制御部31は、情報処理装置1に電力供給を行うバッテリ32及び電源装置33と接続されており、情報処理装置1への電力制御を行う。電力制御部31は、電源装置33からの電力供給に異常が発生した場合、バッテリ32に切り替える。また、電力制御部31は、バッテリ32の蓄電量をキャッシュ制御部27へ通知する。
【0076】
さらに、電力制御部31は、負荷情報281に基づき、バッテリ32の蓄電量を制御する。例えば、電力制御部31は、予測部25が負荷情報281に基づき高負荷となると予測した時間帯にバッテリ32の蓄電量が所定値以上になるように制御する。
【0077】
例えば、電力制御部31は、予測部25が負荷情報281に基づき決定した蓄電量以上になるようにバッテリ32の蓄電量を制御する。
【0078】
バッテリ32は、電源装置33からの電力供給に異常が発生した場合、情報処理装置1に電力供給を行う。電源装置33からの電力供給に異常が発生した場合、バッテリ32の供給電力によりキャッシュメモリ28を動作させる。
【0079】
電源装置33は、交流電源を直流に変換して情報処理装置1及びバッテリ32に電力供給を行う。
【0080】
記憶装置4は、データを保持する記憶装置であり、例えばハードディスク(磁気ディスク)装置、光記憶装置、光磁気記憶装置、SSD(Solid State Drive)などによって構成される。
【0081】
図7は、本発明の第2の実施形態における、ディスク管理部2のハードウェア構成の一例を示すブロック図である。
【0082】
ディスク管理部2は、CPU(Central Processing Unit)61、メモリ62、補助記憶装置63を含み、各構成要素は、互いにバス67によって接続される。
【0083】
CPU61は、ディスク管理部2を制御するプログラムを実行する中央演算処理装置である。CPU61は、補助記憶装置63に格納されたプログラムに基づいて所定の処理を実行して、ディスク管理部2の動作を制御する。例えば、CPU61は、補助記憶装置63に格納されたプログラムに基づいて、ディスク制御部23、負荷情報取得部24、予測部25、キャッシュ制御部27の機能を実現する。
【0084】
メモリ62は、プログラムが展開される主記憶装置である。
【0085】
補助記憶装置63は、ディスク管理部2の動作を制御するプログラムを格納する。
【0086】
本実施形態では、CPU61は、補助記憶装置63に格納されたプログラムを読み出して実行するものとして説明したが、当該プログラムをCDROM(Compact Disc Read Only Memory)等の記憶媒体に格納してCPU61に提供することも可能である。
【0087】
なお、本発明の第2の実施形態における、電力管理部3のハードウェア構成については、ディスク管理部2と同様に構成すればよいため、詳細な説明は省略する。電力制御部31の機能は、上述のディスク制御部23、負荷情報取得部24、予測部25、キャッシュ制御部27と同様に、CPU61が補助記憶装置63に格納されたプログラムに基づいて所定の処理を実行することにより実現することができる。
【0088】
次に、本発明の第2の実施形態における動作について説明する。
【0089】
図8は、本発明の第2実施形態における、充電動作を示すフローチャートである。
【0090】
事前に負荷情報取得部24は、読込み要求及び書込み要求の入出力負荷に関する負荷情報281を情報記憶部26に蓄積しておく。
【0091】
予測部25は、情報記憶部26から負荷情報281を取得し(ステップS2001)、時間帯ごとに負荷を予測することにより、高負荷となる時間帯を予測する(ステップS2002)。
【0092】
例えば、予測部25は、所定期間の負荷情報281から、書込み要求回数2812又は読込み要求回数2813の値が連続して所定値以上となる時間帯を高負荷となる時間帯と予測する。
【0093】
図4を参照すると、10時5分から10時15分までの間、書込み要求回数2812と読込み要求回数2813の和が5000回以上になっているため、この時間を高負荷となる時間帯と予測する。
【0094】
例えば、予測部25は、所定期間の負荷情報281から書込み要求回数2812又は読込み要求回数2813の値の統計情報に基づいて予測する。
【0095】
次に、予測部25は、高負荷となる時間帯において必要なキャッシュ容量及び必要蓄電量を決定する(ステップS2003)。
【0096】
例えば、予測部25は、対応関係情報283から、高負荷となる時間帯における負荷2831と対応するキャッシュ容量2832及び必要蓄電量2833を、当該キャッシュ容量2832及び必要蓄電量2833として決定する。そして予測部25は、決定した必要電力量2833を電力制御部31に通知する。
【0097】
例えば、
図4において、高負荷となる時間帯における最大の負荷2831は、10時10分であり、読込み要求回数2821と、書込み要求回数2813の和は7500回となっている。よって、予測部25は、
図6を参照し、7500回に対応するキャッシュ容量2832である80%にキャッシュ容量を決定する。同様に予測部25は、必要蓄電量2833を80%として決定する。
【0098】
電力制御部31は、決定した必要蓄電量2833となるようにバッテリ32の蓄電量を制御する(ステップS2004)。
【0099】
電力制御部31は、現在のバッテリ32の蓄電量を取得する(ステップS2005)。
【0100】
現在のバッテリ32の蓄電量と予測部25が決定した必要蓄電量2833を比較し、現在のバッテリ32の蓄電量が必要蓄電量2833よりも少ない場合(ステップS2006:YES)、一定時間の後に再度蓄電量を取得するようステップS2005に戻る。
予測部25が決定した必要蓄電量2833より多い場合(ステップS2006:NO)、終了する。
【0101】
以上により、本発明の第2の実施形態における充電動作が完了する。
【0102】
なお、ステップS2004におけるバッテリ32の蓄電量の制御方法は、現在のバッテリ32の蓄電量が必要蓄電量2833を下回った場合、電力制御部31がバッテリ32を充電するようにしてもよい。
【0103】
また、電力制御部31は、高負荷となる時間帯に必要蓄電量2833となるようなタイミングで充電を開始してもよい。電力制御部31は、高負荷となる時間帯の所定時間前にバッテリ32の蓄電量を取得し、バッテリ32の蓄電量が所定値を下回った場合、高負荷となる時間帯にバッテリ32の蓄電量が所定値以上になるように充電するようにしてもよい。
【0104】
さらに、本実施形態では、高負荷の時に必要な必要蓄電量2833となるように、電力制御部31がバッテリ32を充電するように制御する例を示したが、これに限られない。
【0105】
例えば、時間帯ごとに必要蓄電量2833を求め、予測した時間帯の所定時間前にバッテリ32の蓄電量を取得し、バッテリ32の蓄電量が必要蓄電量2833を下回っていた場合に充電するようにしてもよい。
【0106】
図9は、本発明の第2実施形態における、キャッシュ容量の制御動作を示すフローチャートである。
【0107】
電力制御部31は、現在のバッテリ32の蓄電量を取得する(ステップS3001)。
【0108】
電力制御部31は、ステップS3001で取得した現在のバッテリ32の蓄電量をキャッシュ制御部27に通知する(ステップS3002)。
【0109】
キャッシュ制御部27は、電力制御部31から通知されたバッテリ32の蓄電量に基づき、キャッシュ容量を制御する。
【0110】
まず、キャッシュ制御部27は、電力制御部31から通知されたバッテリ32の蓄電量に基づき、キャッシュ容量を決定する(ステップS3003)。キャッシュ制御部27は、対応関係情報283を参照し、電力制御部31から通知された蓄電量に対応する必要蓄電量2833のキャッシュ容量2832に決定する。例えば、電力制御部31から通知された蓄電量が60%であった場合、制御するキャッシュ容量を60%に決定する。
【0111】
次に、キャッシュ制御部27はキャッシュ管理情報282を参照し、現在のキャッシュの容量とステップS3003で決定したキャッシュ容量を比較し、現在のキャッシュの容量が決定したキャッシュ容量より小さい場合(ステップS3004:NO)、キャッシュ制御部27は、ステップS3003で決定したキャッシュ容量となるように制御する(ステップS3006)。すなわち、キャッシュ制御部27は、現在のキャッシュ容量よりも大きくするように制御する。そして、本動作を終了する。
【0112】
現在のキャッシュの容量とステップS3003で決定したキャッシュ容量を比較し、現在のキャッシュの容量が決定したキャッシュ容量より大きい場合(ステップS3004:YES)キャッシュメモリ28上のデータの一部を記憶装置4に書き込む(ステップS3005)。
【0113】
このとき、記憶装置4に書き込むデータは、キャッシュ制御部27がキャッシュ管理情報282を参照することにより決定する。例えば、アクセス頻度2823が少ないものを記憶装置4に書き込む、状態2822が「Dirty」のデータを優先して記憶装置4に書き込むなど、記憶装置4に書き込むデータの優先順位は適宜設定することが可能である。
【0114】
そして、必要に応じてキャッシュメモリ28上のデータを最適な位置に再配置する。例えば連続した領域を使用可能なようにデータを再配置する。
【0115】
キャッシュ制御部27は記憶装置4に書き込んだデータをキャッシュメモリ28上から削除し、ステップS3003で決定したキャッシュ容量に制御する(ステップS3006)。すなわち、キャッシュ制御部27は、現在のキャッシュ容量を小さくするように制御する。
【0116】
以上により、本発明の第2の実施形態におけるキャッシュ制御動作が完了する。
【0117】
図10は、本発明の第2の実施形態におけるデータ退避動作を示すフローチャートである。
【0118】
電力制御部31は、電源装置33の異常を検知すると、電力制御部31は、キャッシュ制御部27に電源異常を通知する(ステップS4001)。電源装置33の異常とは、例えば、電源装置33の故障や、停電等により電源装置33からの電力供給が断たれた場合である。
【0119】
電力制御部31は、情報処理装置1への電力供給をバッテリ32に切り替える(ステップS4002)。
【0120】
キャッシュ制御部27は、電力異常の通知を受信すると、キャッシュメモリ28のデータを不揮発性メモリ29に書き込む(ステップS4003)。
【0121】
そして、キャッシュメモリ28上の全てのデータが不揮発性メモリ29に書き込まれると、データ退避処理を終了する。
【0122】
なお、本実施形態では、キャッシュメモリ28上のデータを全て不揮発性メモリ29に書き込む例を示したが、キャッシュ管理情報282における状態2822が「Dirty」となっているデータのみを不揮発性メモリ29に書き込むようにしてもよい。
【0123】
この場合、すべてのデータを不揮発性メモリ29に書き込む場合に比べ、退避処理に要する電力を削減することが可能である。
【0124】
以上により、本発明の第2の実施形態における動作が完了する。
【0125】
なお、本実施形態では、キャッシュ制御部27がキャッシュメモリ28上のデータを不揮発性メモリ29に書き込む例を示したが、キャッシュメモリ28上のデータを直接記憶装置4に書き込む構成とすることも可能である。
【0126】
その場合、不揮発性メモリ29が不要となり、部品数を削減することができる。
【0127】
本発明の第2の実施形態は、入出力負荷が大きい場合にも、処理性能の低下防ぐことができることにある。その理由は、電力制御部31が、高負荷となる時間に必要な蓄電量となるように、バッテリ32を充電するためである。これにより、入出力負荷が大きい場合にもバッテリ32の適切な蓄電量が確保され、キャッシュ容量の縮小を抑えることができる。
【0128】
本発明の第2の実施形態は、情報処理装置1の処理性能を大幅に低下させることなく、キャッシュメモリ28上のデータを保護することができることにある。その理由は、キャッシュ制御部27がバッテリ32の蓄電量に応じてキャッシュ容量を制御するためである。
【0129】
本発明の第2の実施形態は、特殊なハードウェアを追加することなく、キャッシュメモリ28上のデータを保護することできることにある。その理由は、キャッシュ制御部27が、キャッシュメモリ28上のデータを、キャッシュ管理情報282を用いて管理及び制御を行っているため、ソフトウェアにより制御できるためである。
(第3の実施形態)
本発明の第3の実施形態の構成について説明する。
図11は、本発明の第3の実施形態における、構成を示すブロック図である。
【0130】
図11を参照すると、情報処理装置1は、負荷情報取得部24と、キャッシュ制御部27とを備えている。
【0131】
負荷情報取得部24は、データの読込み要求又は書込み要求の少なくとも一方の入出力負荷に関する負荷情報を取得する。例えば、負荷情報取得部24は、情報処理装置1に対する外部のコンピュータからのデータの読込み要求や書込み要求の回数を入出力負荷として取得する。
【0132】
キャッシュ制御部27は、負荷情報取得部24から負荷情報を取得する。そして、キャッシュ制御部27は、負荷情報に応じて、キャッシュ容量を制御する。
【0133】
例えば、キャッシュ制御部27は、負荷情報に基づき高負荷と判断した場合キャッシュ容量が大きくするように制御する。
【0134】
なお、負荷情報取得部24及びキャッシュ制御部27はマイクロプロセッサやハードウェアプロセッサなどによって構成される。
【0135】
次に、本発明の第3の実施形態における動作について説明する。
図12は、本発明の第3の実施形態における、動作を示すフローチャートである。
【0136】
まず、負荷情報取得部24は、データの読込み要求又は書込み要求の入出力負荷を取得し、キャッシュ制御部27は、負荷情報取得部24から負荷情報を取得する(ステップS5001)。
【0137】
キャッシュ制御部27は、負荷情報に応じてキャッシュ容量を制御する(ステップS5002)。例えば、負荷情報から負荷が高いと予測された場合、キャッシュ容量を大きくするように制御する。
【0138】
以上により、本発明の第3の実施形態における動作が終了する。
【0139】
本発明の第3の実施形態は、入出力負荷が大きい場合にも、処理性能低下防ぐことができることにある。その理由は、キャッシュ制御部27が、入出力に関する負荷情報に基づき、キャッシュ容量を制御することためである。これによって、データを保護しつつ、入出力負荷に応じたキャッシュ容量を割り当てることができる。
(第4の実施形態)
次に、本発明の第4の実施形態について説明する。
【0140】
図13は、本発明の第4の実施形態における、構成を示すブロック図である。本実施形態における情報処理装置1は、負荷情報取得部24と、キャッシュ制御部27の動作が異なる点で第3の実施形態と異なる。
【0141】
そこで、第3の実施形態と重複する構成及び内容に関しては説明を省略する。
【0142】
負荷情報取得部24は、ホストインターフェイス21が取得した入出力要求に基づいて入出力負荷に関する負荷情報281を取得し、キャッシュ制御部27へ通知する。
【0143】
キャッシュ制御部27は、電力制御部31からバッテリ32の蓄電量を取得する。
【0144】
キャッシュ制御部27は、負荷情報281から、現在の負荷が所定値以下であると判断した場合、バッテリ32の蓄電量に基づき、キャッシュ容量を制御する。また、キャッシュ制御部27は、負荷情報281から、現在の負荷が所定値以上であると判断した場合、負荷情報281に基づき、キャッシュ容量を制御する。
【0145】
なお、本発明の第4の実施形態における、負荷情報取得部24及びキャッシュ制御部27のハードウェア構成については、第2の実施形態と同様に構成すればよいため、説明は省略する。
【0146】
次に、本発明の第4の実施形態における動作について説明する。
図14は、本発明の第4の実施形態における、動作を示すフローチャートである。
【0147】
図14は、本発明の第4実施形態における、キャッシュ容量の制御動作を示すフローチャートである。ステップS6001〜ステップS6003が追加されている点で第3の実施形態と相違する。その他のステップに関しては同様のため説明は省略する。
【0148】
ステップS3002において、キャッシュ制御部27は電力制御部31から現在のバッテリ32の蓄電量を取得した後、負荷情報取得部24は、現在の負荷情報281を取得する(ステップS6001)。
【0149】
キャッシュ制御部27は、負荷情報281から、現在の負荷が所定値以上であると判断した場合(ステップS6002)、負荷に基づいてキャッシュ容量を決定する(ステップS6003)。
【0150】
例えば、負荷情報281を参照し、書込み要求回数2812と読込み要求回数2813の総数が5000回以上である場合、キャッシュ制御部27は、負荷2831に基づいてキャッシュ容量を決定する。
【0151】
例えば、
図4における10時5分における書込み要求回数2812と読込み要求回数2813の総数は、7100回である。
図6の対応関係情報283を参照すると、対応する負荷2831のキャッシュ容量は80%であることがわかる。そこで、キャッシュ制御部27はバッテリ32の蓄電量に関係なく、キャッシュ容量を80%に制御すると決定する。
【0152】
そしてステップS3004に進む。その後ステップS3004からステップS3006の動作に関しては第2の実施形態と同様である。
【0153】
以上により、本発明の第4の実施形態における動作が完了する。
【0154】
なお、本動作においてキャッシュ制御部27は、バッテリ32の蓄電量に関係なく、キャッシュ容量を決定したが、バッテリ32の蓄電量を考慮して、キャッシュ容量を決定してもよい。
【0155】
例えば、キャッシュ制御部27は、ステップS3002において取得したバッテリ32の蓄電量に対応するキャッシュ容量を決定する。そして、負荷が大きい場合、キャッシュ制御部27は、バッテリ32の蓄電量によって決定されたキャッシュ容量に対して、所定量増加させるようにしてもよい。
【0156】
本発明の第4の実施形態は、入出力負荷が大きい場合にも、処理性能の低下防ぐことができることにある。その理由は、キャッシュ制御部27が、負荷が所定値以上である場合、負荷に応じたキャッシュ容量に制御するためである。これにより、入出力負荷が大きい場合に、キャッシュ容量の縮小を抑えることができる。
【0157】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。