(57)【要約】【課題】  キャッシュに常駐させるアクセス単位を判定する。【解決手段】  本発明の情報制御装置は、ホストと記憶装置との間におけるデータのアクセスにおいてデータを保存するキャッシュと、ホストが所定のアドレス範囲におけるデータに対してアクセスした第１のアクセス回数が第１の閾値より多いアドレス範囲を特定し、特定したアドレス範囲に含まれるデータのアクセス単位において、アクセス単位がアクセスされた第２のアクセス回数が第２の閾値を超え、かつ、アクセス周期の変動が第３の閾値未満であるアクセス単位を判定する判定手段と、判定されたアクセス単位に対応するデータをキャッシュに常駐させるキャッシュ制御手段とを含む。【選択図】      図１
2018088212.tif 000002
【特許請求の範囲】
【請求項１】
ホストと記憶装置との間におけるデータのアクセスにおいて前記データを保存するキャッシュと、
前記ホストが所定のアドレス範囲における前記データに対してアクセスした第１のアクセス回数が第１の閾値より多い前記アドレス範囲を特定し、特定した前記アドレス範囲に含まれる前記データのアクセス単位において、前記アクセス単位がアクセスされた第２のアクセス回数が第２の閾値を超え、かつ、アクセス周期の変動が第３の閾値未満である前記アクセス単位を判定する判定手段と、
判定された前記アクセス単位に対応する前記データを前記キャッシュに常駐させるキャッシュ制御手段と
を含む情報制御装置。
【請求項２】
前記判定手段が
複数の前記アクセス単位を判定する場合、前記アクセス単位におけるアドレスの連続範囲が第４の閾値未満である前記アクセス単位を判定する
請求項１に記載の情報制御装置。
【請求項３】
前記記憶装置を制御する記憶装置制御手段と、
前記ホストから前記データに対するアクセスを制御し、前記第１のアクセス回数、前記アクセス周期、及び前記第２のアクセス回数を計測するホスト制御手段と
をさらに含み、
前記キャッシュ制御手段が、
前記記憶装置制御手段及び前記ホスト制御手段と、前記キャッシュとにおける前記データのアクセスを制御する
請求項１又は２に記載の情報制御装置。
【請求項４】
前記アクセス周期が第５の閾値を超えることを監視する監視手段をさらに含み、
前記キャッシュ制御手段が、
前記アクセス周期が前記第５の閾値を超えた前記アクセス単位に対応する前記データの前記キャッシュへの常駐をやめる
請求項１ないし３のいずれか１項に記載の情報制御装置。
【請求項５】
前記アクセス単位が、前記ホストからのアクセスの最小単位である
請求項１ないし４のいずれか１項に記載の情報制御装置。
【請求項６】
前記判定手段が、
前記ホストからのアクセスの論理的なブロック毎に前記アクセス単位を判定する
請求項１ないし５のいずれか１項に記載の情報制御装置。
【請求項７】
ホストと記憶装置との間におけるデータのアクセスにおいて前記データを保存するキャッシュを含む情報制御装置が、
前記ホストが所定のアドレス範囲における前記データに対してアクセスした第１のアクセス回数が第１の閾値より多い前記アドレス範囲を特定し、
特定した前記アドレス範囲に含まれる前記データのアクセス単位において、前記アクセス単位がアクセスされた第２のアクセス回数が第２の閾値を超え、かつ、アクセス周期の変動が第３の閾値未満である前記アクセス単位を判定し、
判定された前記アクセス単位に対応する前記データを前記キャッシュに常駐させる
情報制御方法。
【請求項８】
ホストと記憶装置との間におけるデータのアクセスにおいて前記データを保存するキャッシュを含むコンピュータに、
前記ホストが所定のアドレス範囲における前記データに対してアクセスした第１のアクセス回数が第１の閾値より多い前記アドレス範囲を特定する処理と、
特定した前記アドレス範囲に含まれる前記データのアクセス単位において、前記アクセス単位がアクセスされた第２のアクセス回数が第２の閾値を超え、かつ、アクセス周期の変動が第３の閾値未満である前記アクセス単位を判定する処理と、
判定された前記アクセス単位に対応する前記データを前記キャッシュに常駐させる処理と
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの制御に関し、特に、データの保存を制御する情報制御装置、情報制御方法、及び、プログラムに関する。
【背景技術】
【０００２】
ディスクアレイ装置は、物理的にデータを保存する記憶装置（例えば、磁気ディスク装置）と、ホストからのアクセス及び記憶装置におけるデータの読み書きを制御する制御装置とを含む。
【０００３】
そして、ディスクアレイ装置は、制御装置に制御された記憶装置におけるデータの領域を、論理ディスク（Ｌｏｇｉｃａｌ  Ｄｉｓｋ：ＬＤ）として、ホストに提供する。
【０００４】
ホストは、ディスクアレイ装置へのアクセスのインタフェースとして、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ又はｉＳＣＳＩ（ｉｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）などのインタフェースを用いる。
【０００５】
ディスクアレイ装置は、データのアクセス性能を高めるために、キャッシュを用いる（例えば、特許文献１を参照）。そのため、ホストからＬＤへのデータアクセスは、ディスクアレイ装置が有するキャッシュに保存されているデータ又は物理的なディスク装置に保存されているデータへのアクセスとのどちらかなる。
【０００６】
ＬＤは、論理ブロック（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ：ＬＢ）に区切られている。各ＬＢには、論理ブロックアドレス（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ：ＬＢＡ）が割り振られている。ホストは、ＬＢＡを指定して、リード及びライトなどのデータをアクセスするコマンドをディスクアレイ装置に発行する（例えば、特許文献２及び３を参照）。このように、ＬＢＡは、ホストからのアクセス単位の一例である。
【０００７】
このようなホストとディスクアレイ装置とを含むシステムには、ＬＤへのアクセスの正常性を確認するために、クリティカルな入力及び出力（クリティカルＩ／Ｏ（Ｉｎｐｕｔ  ａｎｄ  Ｏｕｔｐｕｔ））を定期的に発行するシステムが存在する。
【０００８】
クリティカルＩ／Ｏの一例として、ハートビートがある。ハートビートでは、ネットワークに接続された装置が、外部の装置に、正常に稼働していることを知らせるための信号を送信する。例えば、ＶＭｗａｒｅ（登録商標）のストレージ（ＬＤに相当）におけるハートビートは、３秒間隔で発行されることが知られている（非特許文献１を参照）。
【０００９】
なお、クリティカルＩ／Ｏは、通常のデータのアクセスのためのＩ／Ｏ（以下、「通常Ｉ／Ｏ」と呼ぶ）のコマンド（例えば、ＳＣＳＩのリードコマンド）と同様のコマンドを用いて、通常Ｉ／Ｏと区別することなく発行される。つまり、ＬＤには、クリティカルＩ／Ｏと通常Ｉ／Ｏとが、区別なく発行される。
【００１０】
ＬＤに対する通常Ｉ／Ｏの負荷が高まった場合、キャッシュにおけるリソースの競合、又は、物理的なディスク装置へのアクセスのシリアライズ化が発生する。その結果、ディスクアレイ装置において、クリティカルＩ／Ｏの応答が遅れてしまう場合が想定される。
【００１１】
一般的に、クリティカルＩ／Ｏの応答が遅れた場合、システムは、システムの障害などのためにクリティカルＩ／Ｏが途切れたと認識する。そして、クリティカルＩ／Ｏが途切れたと認識した場合、システムは、そのクリティカルＩ／Ｏに対応したパスを閉塞する。パスの閉塞は、システムに重大な影響を与える。つまり、通常Ｉ／Ｏの負荷がかなり高くなった場合、システムにおいて、障害が発生していない状態でも、パスの閉塞が発生する場合が想定される。
【００１２】
そこで、このような状況を発生させないための技術が提案されている（例えば、特許文献４を参照）。特許文献４に記載の発明は、事前のシステムの検証を基に、クリティカルＩ／Ｏ（具体的には、システムに影響を及ぼすＩ／Ｏであり、かつ、要求応答時間の短いＩ／Ｏ）を特定する。そして、特許文献４に記載の発明は、特定されたクリティカルＩ／Ｏをディスクアレイ装置に登録する。ディスクアレイ装置は、登録されたクリティカルＩ／Ｏのデータをキャッシュに常駐する。このように、特許文献４に記載の発明は、登録されたクリティカルＩ／Ｏをキャッシュに常駐して、クリティカルＩ／Ｏの応答性能を確保する。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開平１１−１９１０３７号公報
【特許文献２】特開２０１０−２１１６８１号公報
【特許文献３】特開２０１０−００９４４２号公報
【特許文献４】特開２００６−２２１４５１号公報
【非特許文献】
【００１４】
【非特許文献１】VMware Knowledge Base，“ＥＳＸ／ＥＳｉでホストの接続性が低下する(2076981)”，［online］、June 22, 2016，VMware, Inc.，［２０１６年  ９月  ８日検索］、インターネット（https://kb.vmware.com/selfservice/search.do?cmd=displayKC&docType=kc&docTypeID=DT_KB_1_1&externalId=2076981）
【発明の概要】
【発明が解決しようとする課題】
【００１５】
一般的に、システムの利用者がシステムにおけるＩ／Ｏに関する情報を収集及び解析してクリティカルＩ／Ｏを特定する場合、利用者は、情報の収集及び解析などに大きな工数を必要とする。
【００１６】
また、クリティカルＩ／Ｏを特定するためには、利用者は、アクセスの単位であるＬＢＡへのアクセスの情報を収集及び解析する必要がある。しかし、ディスクアレイ装置において、ＬＢＡの数は膨大である。そのため、利用者は、クリティカルＩ／Ｏを特定するため、膨大なメモリ量を用意することが必要となる。つまり、一般的に、利用者がクリティカルＩ／Ｏのようなキャッシュに常駐させるＩ／Ｏを特定する場合、長い作業時間及び大容量のメモリが、必要となる。つまり、一般的なシステムは、キャッシュに常駐させるＩ／Ｏを特定する場合、利用者における多くの工数及び大容量のメモリが必要となる問題点があった。
【００１７】
特許文献４は、クリティカルＩ／Ｏを特定する方法とし、外部の装置がディスクアレイ装置のＩ／Ｏの統計情報を解析することを開示している。しかし、特許文献４は、具体的な統計情報の収集方法及び統計情報の解析方法については開示していない。つまり、特許文献４に記載の発明は、上記の問題点を解決する方法を開示していない。
【００１８】
特許文献１ないし３、及び非特許文献１にも、上記問題点を解決する方法は、開示されていない。
【００１９】
このように、特許文献１ないし４、及び非特許文献１は、クリティカルＩ／Ｏのようなキャッシュに常駐させるアクセス単位を判定するために、利用者における多くの工数及び大容量のメモリを必要とするという問題点があった。
【００２０】
本発明の目的は、上記問題点を解決し、キャッシュに常駐させるアクセス単位の判定において、利用者の工数及びメモリの容量を削減する情報制御装置、情報制御方法、及び、プログラムを提供することにある。
【課題を解決するための手段】
【００２１】
本発明の一形態における情報制御装置は、ホストと記憶装置との間におけるデータのアクセスにおいてデータを保存するキャッシュと、ホストが所定のアドレス範囲におけるデータに対してアクセスした第１のアクセス回数が第１の閾値より多いアドレス範囲を特定し、特定したアドレス範囲に含まれるデータのアクセス単位において、アクセス単位がアクセスされた第２のアクセス回数が第２の閾値を超え、かつ、アクセス周期の変動が第３の閾値未満であるアクセス単位を判定する判定手段と、判定されたアクセス単位に対応するデータをキャッシュに常駐させるキャッシュ制御手段とを含む。
【００２２】
本発明の一形態における情報制御方法は、ホストと記憶装置との間におけるデータのアクセスにおいてデータを保存するキャッシュを含む情報制御装置が、ホストが所定のアドレス範囲におけるデータに対してアクセスした第１のアクセス回数が第１の閾値より多いアドレス範囲を特定し、特定したアドレス範囲に含まれるデータのアクセス単位において、アクセス単位がアクセスされた第２のアクセス回数が第２の閾値を超え、かつ、アクセス周期の変動が第３の閾値未満であるアクセス単位を判定し、判定されたアクセス単位に対応するデータをキャッシュに常駐させる。
【００２３】
本発明の一形態におけるプログラムは、ホストと記憶装置との間におけるデータのアクセスにおいてデータを保存するキャッシュを含むコンピュータに、ホストが所定のアドレス範囲におけるデータに対してアクセスした第１のアクセス回数が第１の閾値より多いアドレス範囲を特定する処理と、特定したアドレス範囲に含まれるデータのアクセス単位において、アクセス単位がアクセスされた第２のアクセス回数が第２の閾値を超え、かつ、アクセス周期の変動が第３の閾値未満であるアクセス単位を判定する処理と、判定されたアクセス単位に対応するデータをキャッシュに常駐させる処理とを実行させる。
【発明の効果】
【００２４】
本発明に基づけば、キャッシュに常駐させるアクセス単位の判定において、利用者の工数及びメモリの容量を削減するとの効果を奏することができる。
【図面の簡単な説明】
【００２５】
【図１】図１は、本発明における第１の実施形態に係る情報制御装置の構成の一例を示すブロック図である。
【図２】図２は、第１の実施形態に係るホスト制御部が作成した統計情報の一例を示す図である。
【図３】図３は、アクセス単位の一例であるＬＢＡの周期が一定であるか否かの判定結果を示す図である。
【図４】図４は、アクセス単位の一例であるＬＢＡの周期情報を示す図である。
【図５】図５は、常駐させるアクセス単位であるＬＢＡを示す図である。
【図６】図６は、リードにおけるキャッシュヒットとキャッシュミスとを模式的に示す図である。
【図７】図７は、第１の実施形態に係る情報制御装置における判定動作の一例を示すフローチャートである。
【図８】図８は、第１の実施形態に係る情報制御装置における周期情報に関する動作の一例を示すフローチャートである。
【図９】図９は、第１の実施形態の構成の概要を示すブロック図である。
【図１０】図１０は、第１の実施形態のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００２６】
次に、図面を参照して、本発明における実施形態について説明する。各図面は、本発明の実施形態を説明するためのものである。ただし、本発明は、各図面の記載に限定されるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を省略する場合がある。また、以下の説明に用いる図面において、本発明の説明に関係しない部分の構成については、記載を省略し、図示しない場合もある。
【００２７】
本発明における各実施形態に係る情報制御装置は、ホスト及び記憶装置に接続されている。接続されるホスト及び記憶装置は、限定されない。例えば、ホストは、直接的に接続されているサーバーなど一般的な情報処理装置でもよく、インターネットなどの通信網を介して接続される装置でもよい。また、例えば、記憶装置は、磁気ディスク装置、半導体ディスク装置、又は、光磁気ディスク装置でもよい。さらに、各実施形態に係る情報制御装置に接続されるホスト及び記憶装置の数は、限定されない。
【００２８】
また、情報制御装置とホストとの間の接続、及び、情報制御装置と記憶装置との間の接続に用いられるプロトコルは、限定されない。例えば、接続に用いられるプロトコルは、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ、又は、ｉＳＣＳＩでもよい。
【００２９】
以下の説明では、一例として、サーバーのようなホストに接続され、複数の磁気ディスク装置を制御する情報制御装置を用いて説明する。例えば、情報制御装置は、ディスクアレイコントローラである。ただし、情報制御装置は、ディスクアレイコントローラに限定されない。
【００３０】
＜第１の実施形態＞
図面を参照して、本発明における第１の実施形態に係る情報制御装置１００について説明する。
【００３１】
［構成の説明］
まず、図面を参照して本発明における第１の実施形態に係る情報制御装置１００の構成について説明する。
【００３２】
図１は、第１の実施形態に係る情報制御装置１００の構成の一例を示すブロック図である。情報制御装置１００は、ホスト制御部１１０と、記憶部１２０と、判定部１３０と、キャッシュ制御部１４０と、監視部１５０と、記憶装置制御部１６０と、キャッシュ１７０とを含む。
【００３３】
ホスト制御部１１０は、ホストからコマンドを受信し、受信したコマンドを解析し、コマンドにおけるデータの転送を制御する。より詳細には、ホスト制御部１１０は、キャッシュ制御部１４０と連携して、ホストからのデータをキャッシュ１７０に転送し、キャッシュ１７０のデータをホストに送信する。
【００３４】
ホスト制御部１１０は、ホストに転送するデータがキャッシュ１７０に保存されていない場合、キャッシュ制御部１４０及び記憶装置制御部１６０を介して、記憶装置からキャッシュ１７０にデータを取り出す。
【００３５】
さらに、ホスト制御部１１０は、ホストからコマンドを受信したとき、又は、ホストにコマンドの応答を返却するときに、コマンドに関連する統計情報を更新する。
【００３６】
記憶部１２０は、上記の統計情報を保存する。この情報は、判定部１３０における判定に用いられる。さらに、記憶部１２０は、判定部１３０の判定結果を記憶する。
【００３７】
記憶装置制御部１６０は、キャッシュ制御部１４０と連携して、キャッシュ１７０に保存されているデータを記憶装置に保存し、記憶装置からデータを取り出してキャッシュ１７０に保存する。
【００３８】
キャッシュ１７０は、キャッシュ制御部１４０に制御され、データを記憶する。
【００３９】
キャッシュ制御部１４０は、キャッシュ１７０を制御する。より詳細には、キャッシュ制御部１４０は、ホスト制御部１１０及び記憶装置制御部１６０と連携して、キャッシュ１７０に保存されるデータを制御する。
【００４０】
キャッシュ制御部１４０におけるデータの制御に関連する動作について詳細に説明する。
【００４１】
ホストからライトコマンドを受けた場合、高速に応答するため、ホスト制御部１１０は、キャッシュ１７０に、データを保存し、ホストに応答を返却する。この場合、キャッシュ１７０の保存されたデータは、記憶装置に未書き込みデータとなる。つまり、ホスト制御部１１０は、ホストからライトコマンドを受けた場合、応答性能を向上するため、記憶装置にデータを書き込まずに、キャッシュ１７０に保存してホストに応答を返却する。
【００４２】
具体的には、各構成は、次のように動作する。
【００４３】
ホスト制御部１１０は、ライトコマンドを受けると、キャッシュ制御部１４０に、データの書き込みであること、及び、データのアドレスを通知する。なお、この説明でのアドレスは、コマンドにおけるアドレスである。例えば、アドレスは、開始アドレスとデータの長さの組合せ、又は、開始アドレスと終了アドレスとの組合せである。
【００４４】
キャッシュ制御部１４０は、キャッシュ１７０が通知されたアドレスのデータを保持しているか否かを確認する。
【００４５】
キャッシュ１７０がデータを保持している場合、キャッシュ制御部１４０は、ホスト制御部１１０にキャッシュ１７０におけるデータの領域を通知する。
【００４６】
キャッシュ１７０がデータを保持していない場合、キャッシュ制御部１４０は、キャッシュ１７０にデータを保存する領域を確保し、ホスト制御部１１０に確保した領域を通知する。
【００４７】
ホスト制御部１１０は、通知された領域に、ライトコマンドのデータを書き込み、ホストに書き込み終了の応答を返却する。
【００４８】
そして、記憶装置制御部１６０が、所定の周期的なタイミング、又は、所定の条件を満足した時に、キャッシュ１７０に書き込まれたデータを、記憶装置に書き込む。
【００４９】
ホストからリードコマンドを受けた場合、ホスト制御部１１０は、キャッシュ１７０に保存されているデータを、ホストに送信する。
【００５０】
具体的には、各構成は、次のように動作する。
【００５１】
ホスト制御部１１０は、リードコマンドを受けると、キャッシュ制御部１４０に、データの読み出しであること、及び、データのアドレスを通知する。
【００５２】
キャッシュ制御部１４０は、キャッシュ１７０が通知されたアドレスのデータを保持しているか否かを確認する。
【００５３】
キャッシュ１７０がデータを保持している場合、キャッシュ制御部１４０は、ホスト制御部１１０にキャッシュ１７０におけるデータの領域を通知する。ホスト制御部１１０は、通知された領域のデータをホストに送信する。この場合、記憶装置からの読み出し動作は、不要となる。つまり、リードコマンドにおいてキャッシュ１７０に有効なデータが存在する場合、情報制御装置１００は、記憶装置からデータを読み出すことなく、ホストに応答できる。
【００５４】
キャッシュ１７０がデータを保持していない場合、キャッシュ制御部１４０は、キャッシュ１７０にデータを保持する領域を確保し、記憶装置制御部１６０に確保した領域とデータのアドレスとを通知する。記憶装置制御部１６０は、記憶装置からデータを読み出し、通知された領域にデータを保存し、キャッシュ制御部１４０に読み出し完了を通知する。キャッシュ制御部１４０は、記憶装置からの読み出しが完了すると、ホスト制御部１１０にデータの領域を通知する。ホスト制御部１１０は、通知された領域のデータをホストに送信する。つまり、リードコマンドにおいてキャッシュ１７０に有効なデータが存在しない場合、情報制御装置１００は、記憶装置からデータを読み出して、ホストに応答する。
【００５５】
本実施形態において、キャッシュ制御部１４０は、後ほど詳細に説明するように、キャッシュ１７０において、所定の条件を満たすデータを常駐させる。それ以外のデータについては、キャッシュ制御部１４０は、情報制御装置１００が適用されるシステムに合わせてキャッシュ１７０を制御する。例えば、キャッシュ制御部１４０は、Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ（ＬＲＵ）アルゴリズムを用いて、データの入れ替えてもよい。以下、データを常駐させる領域を、「常駐領域」と呼び、その他の領域を「汎用領域」と呼ぶ。このように、キャッシュ制御部１４０は、データを入れ替える領域（汎用領域）及びデータを常駐する領域（常駐領域）を用いて、キャッシュ１７０を制御する。
【００５６】
一般的に、ホストと情報制御装置１００との間でのデータの転送速度は、キャッシュ１７０と記憶装置との間のデータの転送速度より速い。そこで、情報制御装置１００は、応答性能を向上させるため、データをキャッシュ１７０に保存しておくことが望ましい。しかし、情報制御装置１００がホストからキャッシュ１７０の容量より多くのデータの要求を受けた場合、キャッシュ１７０は、要求されたデータを保持できない。少なくとも一部のデータは、キャッシュ１７０から押し出される。以下、キャッシュ１７０から押し出されるなどキャッシュ１７０に保存されていないデータの状態を、「キャッシュミス」と呼ぶ。これに対し、キャッシュ１７０の保存されているデータの状態を、「キャッシュヒット」と呼ぶ。
【００５７】
例えば、大量のデータの書き込みの要求を受けた場合、キャッシュ１７０に保存できない書き込みデータが発生する。キャッシュ１７０に保存できない書き込みデータは、キャッシュ１７０に保存された書き込みデータが記憶装置に書き込まれ、キャッシュ１７０に空きができるまで、ホストから情報制御装置１００への転送を待たされる。そのため、これらの要求は、応答が遅くなる。また、記憶装置に書き込まれたデータは、キャッシュミスの状態になる。
【００５８】
あるいは、情報制御装置１００が大量のリードの要求を受けた場合、データの容量が、キャッシュ１７０を超えると、読み出されたデータの少なくとも一部の領域が新しいデータに割り振られる。つまり、少なくとも一部のデータは、キャッシュミスの状態となる。
【００５９】
図６は、リードにおけるキャッシュヒットとキャッシュミスとを模式的に示す図である。
【００６０】
図６に示されているように、汎用領域の保存されたデータは、キャッシュヒットの状態とキャッシュミスの状態とで、データの読み出し経路が異なる。キャッシュヒットした場合、データは、キャッシュ１７０から読み出される。この場合、読み出し時間は、短い。一方、キャッシュミスの場合、データは、記憶装置から読み出される。この場合、読み出し時間が長くなる。
【００６１】
これに対し、常駐領域に保存されたデータは、他のデータの読み出し及び書き込みなどに影響されずに、キャッシュ１７０に保存される。つまり、常駐領域に保存されるデータは、常に、キャッシュヒットの状態となる。そのため、常駐領域に保存されたデータ（常駐データ）は、常に、読み出し時間が短い。
【００６２】
なお、キャッシュ制御部１４０は、キャッシュ１７０における常駐領域の位置及び大きさを、固定してもよく、動的に変更してもよい。
【００６３】
図１を参照した説明に戻る。
【００６４】
判定部１３０は、データのアクセスに関する統計情報を基に、キャッシュ１７０に常駐させるアクセス単位を判定する。アクセス単位とは、ホストがアクセスする最小単位である。例えば、ホストが、論理ブロックアドレス（ＬＢＡ）を用いてアクセスする場合、アクセス単位はＬＢＡである。以下、アクセス単位の一例として、適宜、ＬＢＡを用いて説明する。ただし、アクセス単位は、ＬＢＡに限定されない。
【００６５】
判定部１３０は、所定の条件を満足するアクセス単位を、常駐させるアクセス単位と判定する。以下、図面を参照して、判定部１３０における判定の動作の一例を説明する。
【００６６】
以下で説明する動作の前提は、次のとおりである。ただし、以下の前提は、第１の実施形態を限定するものではない。
（１）ホストから記憶装置へのアクセス単位は、ＬＢＡとする。
（２）ＬＢＡは、連続したアドレスに配置されている。
（３）ＬＢＡのアドレスの範囲は、０００００ｈからＦＦＦＦＦｈまでとする（「ｈ」は１６進数を示す）。
（４）ＬＢＡのアドレスは、所定の範囲（以下、「アドレス範囲」と呼ぶ）に分割されている。
（５）ホスト制御部１１０は、コマンドのデータのアクセスに関連する統計情報として、コマンドごとに、ホストから指示されたデータのアドレスが含まれるアドレス範囲のアクセス回数を更新する。
【００６７】
図２は、第１の実施形態に係るホスト制御部１１０が作成した統計情報の一例を示す図である。図２において、アドレス範囲の欄における値の範囲が、上記のアドレス範囲を示す。ホスト制御部１１０は、ホストからアクセスされたデータのアドレスに対応するアドレス範囲のカウンタの回数を更新する。
【００６８】
ホストからのアクセスの状態は、時間とともに変化する。そのため、判定部１３０は、複数の時間における回数を用いて判定する方が、キャッシュ１７０に常駐させる必要があるとの判定の精度を向上できる。そこで、図２に示されている統計情報は、第１のカウンタ、第２のカウンタ、及び、第３のカウンタの三つの時間範囲における回数を保持している。例えば、第３のカウンタは、１分前から現時点までの回数である。第２のカウンタは、２分前から１分前までの回数である。第１のカウンタは、３分前から２分前までの回数である。この場合、ホスト制御部１１０は、分を測定単位としてホストからのアクセスの回数を計測し、統計情報を更新している。
【００６９】
ただし、判定部１３０が判定に用いる時間範囲の数は、上記に限定されない。判定部１３０は、１つの時間範囲、２つの時間範囲、又は、４つ以上の時間範囲を用いてもよい。
【００７０】
そして、判定部１３０は、ホスト制御部１１０が更新した統計情報を基に、詳細な解析を実施するアドレス範囲を特定する。
【００７１】
図２に示されている情報において、判定部１３０は、詳細に解析するアドレス範囲として、全てのカウンタで１以上となっているアドレス範囲を特定する。つまり、判定部１３０は、一度でもカウンタが０となっているアドレス範囲を詳細な解析が不要なアドレス範囲と特定する。図２の解析要／不要の欄は、判定部１３０が特定した結果を示す。
【００７２】
このように、判定部１３０は、詳細に解析するアドレス範囲として、アドレス範囲におけるアクセスの回数（第１のアクセス回数）が所定の閾値（第１の閾値）を超えたアドレス範囲を特定する。なお、上記のとおり、「第１のアクセス回数」及び「第１の閾値」は、それぞれ、１つでもよく、複数でもよい。
【００７３】
なお、判定部１３０は、アドレス範囲を特定し、特定したアドレス範囲を分割して、さらにホスト制御部１１０に統計情報を更新させてもよい。つまり、情報制御装置１００は、複数の粒度を用いてアドレス範囲を特定してもよい。例えば、判定部１３０は、ホスト制御部１１０に、全体のアドレス範囲を４分割したアドレス範囲における統計情報を更新する動作を指示する。次に、判定部１３０が、４分割したアドレス範囲の中から特定されたアドレス範囲をさらに４分割して、ホスト制御部１１０に統計情報を更新する動作を指示してもよい。
【００７４】
詳細な解析の負荷を軽減するためには、アドレス範囲は、詳細に分割された方がよい。しかし、全てのアドレス範囲を詳細に分割した場合、アドレス範囲の数が多くなる。そのため、統計情報の保存に必要となる記憶容量が多くなる。しかし、情報制御装置１００は、上記のようなアドレス範囲の絞り込み動作を基に、統計情報として必要となる記憶領域の容量を削減しながら、絞り込んだアドレス範囲を特定できる。アドレス範囲の絞り込みは、その範囲に含まれるアクセス単位の数を削減する。つまり、この動作は、次に説明する詳細な解析に必要となる負荷及び記憶容量の削減にもつながる。
【００７５】
次に、判定部１３０は、特定したアドレス範囲における詳細な解析のために、ホスト制御部１１０に、特定したアドレス範囲に含まれるアクセス単位のアクセスの状態の計測を指示する。ここで、アクセスの状態とは、次の３つを含む。
（１）アクセスの回数
（２）アクセス間隔の平均。以下、アクセス間隔の平均を「周期」と呼ぶ。つまり、周期は、アクセスの平均間隔である。
（３）周期の変動が所定の閾値未満であること。以下、周期の変動が所定の閾値未満であることを「一定周期」と呼ぶ。「一定周期」に幅を持たせるのは、実際のアクセス時間が、他のアクセスなどのシステムの動作に影響を受けて変動するためである。
【００７６】
図４は、アクセス単位の一例であるＬＢＡの周期情報を示す図である。図４において、左端の欄が、アクセスがあったＬＢＡを示す。なお、ＬＢＡは、単独のアドレスに限られず、複数のアドレスを含んでもよい。左から２番目の欄が、前回のアクセスの時間（図４における単位はｍｓ）である。右から２番目の欄が、周期（図４における単位はｍｓ）である。右端の欄が、ＬＢＡに対する今までのアクセスの回数である。
【００７７】
最初にアクセスされた場合（ＬＢＡがない場合）、ホスト制御部１１０は、ＬＢＡに対応した領域を確保し、ＬＢＡの欄にアクセスされたＬＢＡを、回数の欄に「１」を、前回のアクセス時間の欄に今回のアクセスの時間を設定する。例えば、図４の３番目のＬＢＡ（９０２０ｈ）は、３５８１２０ｍｓに初めてアクセスされて保存されたＬＢＡである。
【００７８】
２回目以降のアクセスにおいて、ホスト制御部１１０は、前回のアクセス時間と今回のアクセスの時間とを基にアクセス間隔を算出する。
【００７９】
そして、２回目のアクセスの場合（保存されている回数が１の場合）、ホスト制御部１１０は、周期として、算出したアクセス間隔を保存する。そして、ホスト制御部１１０は、回数の欄に「２」を、前回のアクセス時間の欄に今回のアクセスの時間を設定する。例えば、図４の１番目のＬＢＡ（ＢＡ００ｈ）は、２回目のアクセスとして、３５８０００ｍｓにアクセスされたＬＢＡである。
【００８０】
３回目以降のアクセスの場合（保存されている回数が２以上の場合）、ホスト制御部１１０は、保存されている周期と、アクセス間隔との差を算出する。この差が、所定の閾値（第３の閾値）未満の場合、アクセス周期は、一定と判定される。そこで、ホスト制御部１１０は、上記の差が所定の閾値（第３の閾値）未満か否かを判定する。つまり、ホスト制御部１１０は、周期が一定か否かを判定する。なお、この差は、周期の変動に相当する。
【００８１】
周期が一定の場合、ホスト制御部１１０は、算出したアクセス間隔と保存されている周期とを基に、新たな周期を算出し、算出した周期を用いて保存されている周期を更新する。新たな周期は、次の式を基に算出される。
新たな周期＝（周期×回数＋算出されたアクセス間隔）／（回数＋１）
そして、ホスト制御部１１０は、回数の欄の値を一つ増やし、前回のアクセス時間の欄に今回のアクセスの時間を設定する。例えば、図４の２番目のＬＢＡ（ＡＡ２８ｈ）は、１９回目のアクセスとして、３５７００ｍｓにアクセスされたＬＢＡである。
【００８２】
周期が一定でない場合、そのアクセス単位は、詳細な計測の対象外となる。そこで、ホスト制御部１１０は、そのアクセス単位を対象外に設定する。例えば、ホスト制御部１１０は、そのアクセス単位に対応するデータに、一定周期でないとの値を設定する。
【００８３】
図３は、アクセス単位の一例であるＬＢＡの周期が一定であるか否かの判定結果を示す図である。図３において、各枠が各ＬＢＡの判定結果に対応する。「０」は、一定周期であることを示す。「１」は、一定周期でないことを示す。なお、ここでの判定結果は、「一定」又は「一定でない」の二値となる。そこで、ホスト制御部１１０は、図３に示されている判定結果のデータとして、ビットを用いてよい。この場合、情報制御装置１００は、判定結果を保存する容量を削減できる。ただし、判定結果のデータは、ビットに限定されない。判定結果のデータとしては、具体的な実装に合わせて、バイトなどが用いられてもよい。
【００８４】
例えば、判定部１３０は、アドレス範囲に含まれるアクセス単位（今の場合、ＬＢＡ）に対応した領域を確保し、初期値として全て領域の値を「０」する。そして、ホスト制御部１１０は、上記のとおりＬＢＡのアクセス周期を判定し、一定周期でないＬＢＡの値を「１」に更新する。
【００８５】
なお、ホスト制御部１１０は、一定周期でないと判定したアクセス単位（今の場合、ＬＢＡ）について、上記の周期情報の動作を省略してもよい。これは、ホスト制御部１１０の動作の負荷の軽減と、周期情報を保存する記憶領域の削減のためである。そこで、ホスト制御部１１０は、図４を用いて説明した周期情報の動作の前に図３に示されている情報を用いて対象外であるか否かを判定し、対象外の場合に周期情報の動作を省略してもよい。
【００８６】
判定部１３０は、ホスト制御部１１０に指示してから所定の時間の経過後に、常駐させるアクセス単位として、アクセス単位の周期が所定の条件を満たすアクセス単位を判定する。つまり、判定部１３０は、特定されたアクセス範囲に含まれるデータのアクセス単位において、所定の条件を満たすアクセス単位をキャッシュ１７０に常駐させるアクセス単位と判定する。
【００８７】
所定の条件の一例は、次のとおりである。
（条件１）アクセス周期が一定である：具体的には、アクセス単位におけるアクセス周期の変動が所定の閾値（第３の閾値）未満である。
（条件２）アクセスが高頻度である：具体的には、アクセス単位がアクセスされた回数（第２のアクセス回数）が所定の閾値（第２の閾値）を超えている。
つまり、判定部１３０は、判定結果として、一定周期で高頻度となっているアクセス単位を判定する。
【００８８】
ただし、判定部１３０は、複数のアクセス単位をまとめて判定してもよい。また、所定の条件は、上記の条件に限定されない。判定部１３０は、さらに、判定に条件を追加してもよい。追加する条件は、限定されない。
【００８９】
例えば、判定部１３０は、次のような条件を追加してもよい。
（条件３）アクセスされるアドレスの連続範囲が狭い：具体的には、上記の２つの条件を満たすアクセス単位におけるアドレスが連続する範囲が、所定の閾値（第４の閾値）未満である。
【００９０】
例えば、第４の閾値を「４」とする。図３においてアドレス８０００ｈから８００１ｈのＬＢＡ範囲は、アドレスを２つ含む。つまり、アドレスの連続は、「２」となる。そのため、判定部１３０は、アドレス８０００ｈから８００１ｈを、上記の条件を満たすアクセス単位と判定する。
【００９１】
条件３を用いる場合、判定部１３０は、判定結果として、一定周期で高頻度となっているアクセス単位の中で、アドレスの連続範囲が狭いアクセス単位を判定する。これは、クリティカルＩ／Ｏなどの優先度が高いアクセスは、通常、所定の狭い範囲のアドレスへのアクセスとなっているためである。
【００９２】
なお、判定部１３０は、アクセス単位を狭い範囲に限定せず、アクセス単位を所定の範囲毎に分割して、キャッシュ１７０に常駐させるアクセス単位としてもよい。
【００９３】
図５は、常駐させるアクセス単位の一例であるＬＢＡを示す図である。図５において、ＬＢＡと前回のアクセス時間と周期とは、図４のデータと同じである。
【００９４】
なお、図５は、論理ディスク（ＬＤ）の番号（ＬＤＮ：Ｌｏｇｉｃａｌ  Ｄｉｓｋ  Ｎｕｍｂｅｒ）を含む。これは、図５が、常駐するアクセス単位をＬＤ毎に保存する場合の例のためである。
【００９５】
各ＬＤは、保存しているデータの管理に用いられる管理情報を保持している。ホストからのデータへのアクセスにおいて、情報制御装置１００は、管理情報を用いる。つまり、管理情報は、ホストからのアクセスのたびに参照される情報である。つまり、管理情報は、キャッシュ１７０に常駐した方がよい情報の一例である。
【００９６】
あるいは、クリティカルＩ／Ｏの一例であるハートビートは、ＬＤ毎に実行される。つまり、常駐した方がよいＩ／Ｏは、ＬＤ毎に発生する場合が多い。
【００９７】
そこで、図５は、ＬＤ毎にアクセス単位であるＬＢＡを保持する場合の例とした。つまり、判定部１３０は、ホストからアクセスされるデータの論理的なブロック毎に、アクセス単位を判定してもよい。
【００９８】
ただし、本実施形態は、上記に限定されない。例えば、情報制御装置１００は、一覧とて、常駐させるアクセス単位を保持してもよい。
【００９９】
図１を参照した説明に戻る。
【０１００】
判定部１３０は、判定結果である常駐させるアクセス単位を、記憶部１２０に保存する。
【０１０１】
ホスト制御部１１０は、判定部１３０が判定した常駐させるアクセス単位を、キャッシュ制御部１４０に通知する。
【０１０２】
ただし、キャッシュ制御部１４０への常駐の通知は、ホスト制御部１１０に限定されない。例えば、判定部１３０が、判定結果を基に、キャッシュ制御部１４０に通知してもよい。
【０１０３】
キャッシュ制御部１４０は、通知されたアクセス単位（例えば、ＬＢＡ）をキャッシュ１７０に常駐させる。つまり、キャッシュ制御部１４０は、判定されたアクセス単位に対応するデータを常駐領域に常駐させる。常駐したアクセス単位に対して発行されたコマンドは、必ず、キャッシュ１７０に対するアクセスとなる。また、このアクセス単位に対応するデータは、キャッシュ１７０から吐き出されない。つまり、ここで常駐したアクセス単位のデータへのアクセスは、ホストに対して高速に応答することができる。
【０１０４】
なお、情報制御装置１００は、定期的に、上記の動作を繰り返す。これは、クリティカルＩ／Ｏなどは、時間とともに変化する可能性があるためである。
【０１０５】
監視部１５０は、常駐されているアクセス単位の変化を監視する。そして、監視部１５０は、常駐を解除するアクセス単位がある場合、そのアクセス単位をキャッシュ制御部１４０に通知する。キャッシュ制御部１４０は、この通知を基に、そのアクセス単位の常駐をやめる。
【０１０６】
監視部１５０は、常駐が解除するアクセス単位を判定する判定手法を、制限されない。例えば、監視部１５０は、アクセス単位の周期が所定の閾値（第５の閾値）を超えたアクセス単位、つまり、アクセスの頻度が低くなったアクセス単位を、常駐を解除するアクセス単位と判定する。
【０１０７】
なお、常駐を解除するアクセス単位をキャッシュ制御部１４０に通知の主体は、監視部１５０に限定されない。例えば、ホスト制御部１１０又は判定部１３０が、解除をキャッシュ制御部１４０に通知してもよい。
【０１０８】
［動作の説明］
次に、図面を参照して、情報制御装置１００の動作について説明する。
【０１０９】
（判定動作）
図７は、第１の実施形態に係る情報制御装置１００における判定動作の一例を示すフローチャートである。
【０１１０】
まず、判定部１３０は、記憶部１２０に、ホスト制御部１１０が統計情報を保存する領域を確保する。なお、記憶部１２０は、固定的に統計情報を保持する領域を備えていてもよい。
【０１１１】
ホスト制御部１１０は、アドレス範囲におけるアクセスを計測する（ステップＳ１１０）。つまり、ホスト制御部１１０は、アクセス範囲に対応した統計情報を計測する。
【０１１２】
判定部１３０は、所定の時間の経過後又は所定の周期で、統計情報において所定の条件を満たすアクセス範囲がある否かを判定する（ステップＳ１２０）。例えば、判定部１３０は、アクセス範囲に対するアクセスの回数（第１のアクセス回数）が所定の閾値（第１の閾値）を超えているアクセス範囲があるか否かを判定する。例えば、図２に示すデータの場合、判定部１３０は、全てのアクセスの回数が１以上のアクセス範囲として、５行目のデータであるアドレス範囲「８０００ｈ〜ＦＦＦＦｈ」を判定する。
【０１１３】
条件を満たすアクセス範囲がない場合（ステップＳ１２０でＮｏ）、情報制御装置１００は、動作を終了する。なお、情報制御装置１００が動作を繰り返す場合、情報制御装置１００は、ステップＳ１１０に戻る。
【０１１４】
所定の条件を満たすアクセス範囲がある場合（ステップＳ１２０でＹｅｓ）、判定部１３０は、ホスト制御部１１０に対して、そのアクセス範囲におけるアクセス単位における計測を指示する。ホスト制御部１１０は、指示に従って、アクセス単位におけるアクセスを計測する（ステップＳ１３０）。
【０１１５】
なお、判定部１３０は、アクセス範囲を分割して、ステップＳ１１０に戻ってもよい。つまり、判定部１３０は、ホスト制御部１１０に分割したアクセス範囲に対する統計情報を取得させてもよい。例えば、判定部１３０は、アドレス範囲「８００００ｈ〜ＦＦＦＦＦｈ」を、４分割して、ホスト制御部１１０に計測を指示してもよい。４分割の例は、「８００００ｈ〜９ＦＦＦＦｈ」、「Ａ００００ｈ〜ＢＦＦＦＦｈ」、「Ｃ００００ｈ〜ＤＦＦＦＦｈ」及び「Ｅ００００ｈ〜ＦＦＦＦＦｈ」とのアドレス範囲への分割である。
【０１１６】
そして、所定の時間後、判定部１３０は、所定の条件を満たすアクセス単位があるか否かを判定する。
【０１１７】
詳細には、まず、判定部１３０は、アクセス周期が一定（アクセス周期の変動が所定の閾値（第３の閾値）未満）となっているアクセス単位があるか否かを判定する。つまり、判定部１３０は、一定周期か否かを判定する（ステップＳ１４０）。
【０１１８】
一定周期でない場合（ステップＳ１４０でＮｏ）、情報制御装置１００は、処理を終了する。なお、情報制御装置１００が動作を繰り返す場合、情報制御装置１００は、ステップＳ１１０に戻る。
【０１１９】
一定周期の場合（ステップＳ１４０でＹｅｓ）、判定部１３０は、アクセス単位へのアクセスの回数（第２のアクセス回数）が、所定の閾値（第２の閾値）より多いか否かを判定する。つまり、判定部１３０は、高頻度であるか否かを判定する（ステップＳ１５０）。
【０１２０】
高頻度でない場合（ステップＳ１５０でＮｏ）、情報制御装置１００は、処理を終了する。なお、情報制御装置１００が動作を繰り返す場合、情報制御装置１００は、ステップＳ１１０に戻る。
【０１２１】
高頻度の場合（ステップＳ１５０でＹｅｓ）、判定部１３０は、一定周期で高頻度のアクセス単位が連続する範囲が、所定の閾値（第４の閾値）より狭い範囲となっているか否かを判定する。つまり、判定部１３０は、アクセス単位におけるアクセスが狭いか否かを判定する（ステップＳ１６０）。
【０１２２】
このように、判定部１３０は、一定周期、高アクセス頻度、かつ、狭い範囲のアクセス単位であるか否か判定する。
【０１２３】
例えば、上記の第４の閾値を「３」とする。図３において、「８００２ｈ」は対象外のため、「８０００ｈから８００１ｈ」のアドレスの連続範囲は、「２」となる。そのため、「８０００ｈから８００１ｈ」は、狭い範囲である。なお、単独のアクセス単位は、狭い範囲の一例である。
【０１２４】
連続範囲が狭くない場合（ステップＳ１６０でＮｏ）、情報制御装置１００は、処理を終了する。なお、情報制御装置１００が動作を繰り返す場合、情報制御装置１００は、ステップＳ１１０に戻る。
【０１２５】
連続範囲が狭い場合（ステップＳ１６０でＹｅｓ）、判定部１３０は、そのアクセス単位を常駐させるアクセス単位と判定する（ステップＳ１７０）。
【０１２６】
例えば、図４の２行目のデータ（ＡＡ２８ｈ）は、周期が一定かつ高頻度であるとする。そして、単独のＬＢＡは、上記のとおり、狭い範囲である。そこで、判定部１３０は、図４の２行目のＬＢＡ（ＡＡ２８ｈ）を常駐させると判定する。
【０１２７】
なお、判定部１３０は、周期が一定の判定（ステップＳ１４０）及び高頻度の判定（ステップＳ１５０）の判定の順番を入れ替えてもよい。また、判定部１３０は、範囲の判定（ステップＳ１６０）を省略してもよい。
【０１２８】
判定部１３０は、判定結果を記憶部１２０に保存する。
【０１２９】
ホスト制御部１１０は、記憶部１２０に記憶された情報を基に、キャッシュ制御部１４０に常駐させるアクセス単位を通知する。ただし、判定部１３０が、キャッシュ制御部１４０に常駐させるアクセス単位を通知してもよい。
【０１３０】
（周期の動作）
図８は、第１の実施形態に係る情報制御装置１００における周期情報に関する動作の一例を示すフローチャートである。
【０１３１】
まず、ホスト制御部１１０は、ホストからアクセスがあったアクセス単位に対し、図３に示すようなアクセス単位（図３ではＬＢＡ）の判定結果を基に、アクセス単位が計測対象か否かを判定する（Ｓ２００）。
【０１３２】
対象外の場合（ステップＳ２００でＮｏ）、ホスト制御部１１０は、処理を終了する。例えば、ホスト制御部１１０は、図３の「８００３ｈ」を対象外と判定する。
【０１３３】
対象の場合（ステップＳ２００でＹｅｓ）、ホスト制御部１１０は、そのアクセス単位が計測開始済みか否かを判定する（ステップＳ２１０）。つまり、ホスト制御部１１０は、最初にアクセスされた場合か否かを判定する。言い換えると、ホスト制御部１１０は、アクセスされたアクセス単位が、周期情報に含まれるが否かを判定する。
【０１３４】
開始済みでない場合（ステップＳ２１０でＮｏ）、ホスト制御部１１０は、周期情報にアクセス単位の計測を開始するためのデータを設定する。つまり、ホスト制御部１１０は、アクセス単位の計測を開始する（ステップＳ２２０）。具体的には、ホスト制御部１１０は、アクセス単位に対応した領域を確保し、アクセス単位のアドレスと、回数の「１」と、今回のアクセスの時間を設定する。例えば、ホスト制御部１１０は、図４の３行目のデータのように、ＬＢＡに対応した領域を確保し、ＬＢＡの欄にアクセスされたＬＢＡを、回数の欄に「１」を、前回のアクセス時間の欄に今回のアクセスの時間を設定する。そして、ホスト制御部１１０は、処理を終了する。
【０１３５】
開始済みの場合（ステップＳ２１０でＹｅｓ）、ホスト制御部１１０は、周期が有効か否かを判定する（ステップＳ２３０）。つまり、ホスト制御部１１０は、２回目のアクセスか否かを判定する。具体的には、ホスト制御部１１０は、周期情報の周期にデータが登録されているか否かを判定する。例えば、ホスト制御部１１０は、図４の３行目のデータを、周期が有効でないと判定する。あるいは、例えば、ホスト制御部１１０は、図４の１行目のデータを、周期が有効であると判定する。
【０１３６】
周期が有効でない場合（ステップＳ２３０でＮｏ）、ホスト制御部１１０は、周期情報に計測結果を保存する（ステップＳ２４０）。詳細には、ホスト制御部１１０は、前回のアクセスの時間と今回のアクセスされた時間と差（アクセス間隔）を算出し、算出したアクセス間隔を周期として保存する。そして、ホスト制御部１１０は、回数を「２」に更新し、今回のアクセス時間を保存する。例えば、ホスト制御部１１０は、図４の１行目のデータを保存する。そして、ホスト制御部１１０は、処理を終了する。
【０１３７】
周期が有効の場合（ステップＳ２３０でＹｅｓ）、ホスト制御部１１０は、前回のアクセス時間と今回のアクセス時間とを基にアクセス間隔を算出する。算出したアクセス間隔と、保存されている周期との差が、周期の変動である。そして、ホスト制御部１１０は、周期の変動が小さいか否か（所定の閾値（第３の閾値）未満であるか否か）を判定する（ステップＳ２５０）。
【０１３８】
変動が小さくない場合（ステップＳ２５０でＮｏ）、ホスト制御部１１０は、そのアクセス単位を監視の対象外に設定する（ステップＳ２６０）。例えば、ホスト制御部１１０は、図３に示されているＬＢＡ判定結果の値を「１」に変更する。そして、ホスト制御部１１０は、処理を終了する。なお、ホスト制御部１１０は、対象外となったアクセス単位に対応する周期情報を削除してもよい。
【０１３９】
変動が小さい場合（ステップＳ２５０でＹｅｓ）、ホスト制御部１１０は、算出したアクセス間隔を用いて、保存されている周期を修正する。具体的には、ホスト制御部１１０は、既に説明した次の式を用いる。
新しい周期＝（周期×回数＋算出されたアクセス間隔）／（回数＋１）
そして、ホスト制御部１１０は、周期情報を更新する（ステップＳ２７０）。詳細には、ホスト制御部１１０は、回数の欄の値を一つ増やし、上記の算出した周期と今回のアクセス時間とを保存する。そして、ホスト制御部１１０は、処理を終了する。
【０１４０】
［効果の説明］
次に、第１の実施形態に係る情報制御装置１００の効果について説明する。
【０１４１】
このように、本実施形態は、キャッシュ１７０に常駐させるアクセス単位を判定において、利用者の工数及びメモリの容量を削減するとの効果を得ることができる。
【０１４２】
その理由は、次のとおりである。
【０１４３】
キャッシュ１７０が、ホストと記憶装置との間におけるデータのアクセスにおいてデータを保存する。
【０１４４】
判定部１３０が、ホストが所定のアドレス範囲におけるデータに対してアクセスした第１のアクセス回数が第１の閾値より多いアドレス範囲を特定する。そして、判定部１３０が、特定したアドレス範囲に含まれるデータのアクセス単位において、アクセス単位がアクセスされた第２のアクセス回数が第２の閾値を超え、かつ、アクセス周期の変動が第３の閾値未満であるアクセス単位を判定する。
【０１４５】
キャッシュ制御部１４０が、判定されたアクセス単位に対応するデータをキャッシュ１７０に常駐させる。
【０１４６】
このように、情報制御装置１００は、利用者の工数を必要としないでキャッシュ１７０に常駐させるアクセス単位を判定する。さらに、情報制御装置１００は、上記のように特定されたアドレス範囲におけるアクセス単位の情報を用いるため、全てのアクセス単位より少ない数のアクセス単位に対応したメモリを用いてキャッシュ１７０に常駐させるアクセス単位を判定する。つまり、情報制御装置１００は、キャッシュ１７０に常駐させるアクセス単位を判定において、利用者の工数及びメモリの容量を削減することができる。
【０１４７】
より詳細には、本実施形態は、以下の効果を奏することができる。
【０１４８】
第１の効果は、情報制御装置１００が、膨大なメモリを使用せずにキャッシュ１７０に常駐させるアクセス単位を、自動的に、判定するとの効果である。
【０１４９】
その理由は、次のとおりである。判定部１３０が、まず、統計情報として、ホスト制御部１１０に対してアクセス範囲におけるアクセスの回数を測定させる。そして、判定部１３０が、ホスト制御部１１０に対して、所定の条件を満たすアクセス範囲におけるアクセス単位のアクセスを測定させる。このように、情報制御装置１００は、判定に、全てのアクセス単位に対応したメモリではなく、一部のアクセス単位に対応したメモリを用いればよいためである。
【０１５０】
さらに、判定部１３０は、利用者における作業を必要としない。つまり、判定部１３０が、自動的に判定するためである。
【０１５１】
第２の効果は、システムの停止などで、クリティカルＩ／Ｏが発行されなくなったような状態に対応できるとの効果である。
【０１５２】
その理由は、次にとおりである。監視部１５０が、常駐させる必要がなくなったアクセス単位を判定する。そして、キャッシュ制御部１４０が、監視部１５０の判定結果を基に不要なアクセス単位に対応するキャッシュ１７０の領域を解放するためである。
【０１５３】
第３の効果は、クリティカルＩ／Ｏなどの応答性を早め、システムを安定させるとの効果である。
【０１５４】
その理由は、次のとおりである。判定部１３０が、クリティカルＩ／Ｏに対応するアクセス単位などキャッシュ１７０に常駐させるアクセス単位を、複数の条件を用いて、適切に判定する。そして、キャッシュ制御部１４０が、判定されたアクセス単位をキャッシュ１７０に常駐させるためである。
【０１５５】
さらに、判定部１３０が、判定したアクセス単位の中で、アクセス単位のアドレスの連続範囲が第４の閾値未満であるアクセス単位を判定してもよい。この場合、情報制御装置１００は、クリティカルＩ／Ｏに対応したアクセス単位の判定の精度を向上できる。その理由は、クリティカルＩ／Ｏは、一般的に、狭いアドレス範囲へのアクセスとなっているためである。
【０１５６】
［第１の実施形態の概要］
以上の説明した情報制御装置１００は、次のように構成される。
【０１５７】
例えば、情報制御装置１００の各構成部は、ハードウェア回路で構成されてもよい。
【０１５８】
また、情報制御装置１００において、各構成部は、ネットワークを介して接続した複数の装置を用いて、構成されてもよい。あるいは、各構成は、直接的に情報を送信及び受信してもよい。
【０１５９】
図９は、第１の実施形態の構成の概要を示すブロック図である。
【０１６０】
情報制御装置１０１は、判定部１３０と、キャッシュ制御部１４０と、キャッシュ１７０を含む。キャッシュ制御部１４０及びキャッシュ１７０は、図示しないホスト制御部１１０に相当する構成、及び、図示しない記憶装置制御部１６０に相当する構成と接続されている。判定部１３０は、図示しないホスト制御部１１０に相当する構成、及び、図示しない記憶部１２０に相当する装置と接続されている。
【０１６１】
このように構成された情報制御装置１０１は、情報制御装置１００と同様に、キャッシュ１７０に常駐させるアクセス単位を判定において、利用者の工数及びメモリの容量を削減するとの効果を得ることができる。
【０１６２】
その理由は、情報制御装置１０１の各構成が、情報制御装置１００の構成と同様に動作するためである。
【０１６３】
すなわち、キャッシュ１７０が、ホストと記憶装置との間におけるデータのアクセスにおいてデータを保存する。
【０１６４】
判定部１３０が、ホストが所定のアドレス範囲におけるデータに対してアクセスした第１のアクセス回数が第１の閾値より多いアドレス範囲を特定する。そして、判定部１３０が、特定したアドレス範囲に含まれるデータのアクセス単位において、アクセス単位がアクセスされた第２のアクセス回数が第２の閾値を超え、かつ、アクセス周期の変動が第３の閾値未満であるアクセス単位を判定する。
【０１６５】
キャッシュ制御部１４０が、判定されたアクセス単位に対応するデータをキャッシュ１７０に常駐させる。
【０１６６】
なお、情報制御装置１０１は、本発明の実施形態における最小構成である。
【０１６７】
［ハードウェアの構成例］
また、情報制御装置１００を用いて、情報制御装置１００及び情報制御装置１０１におけるハードウェアの構成について説明する。情報制御装置１００において、複数の構成部は、１つのハードウェアで構成されてもよい。
【０１６８】
また、情報制御装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）とを含むコンピュータ装置として実現されてもよい。情報制御装置１００は、さらに、入出力回路（ＩＯＣ：Ｉｎｐｕｔ  ａｎｄ  Ｏｕｔｐｕｔ  ｃｉｒｃｕｉｔ）を含むコンピュータ装置として実現されてもよい。あるいは、情報制御装置１００は、さらに、ネットワークインターフェース回路（ＮＩＣ：Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃｉｒｃｕｉｔ）を含むコンピュータ装置として実現されてもよい。
【０１６９】
図１０は、第１の実施形態のハードウェア構成の一例を示すブロック図である。
【０１７０】
情報制御装置６００は、ＣＰＵ６１０と、ＲＯＭ６２０と、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０と、ＮＩＣ６９０とを含み、コンピュータ装置を構成している。
【０１７１】
ＣＰＵ６１０は、ＲＯＭ６２０からプログラムを読み込む。そして、ＣＰＵ６１０は、読み込んだプログラムに基づいて、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０と、ＮＩＣ６９０とを制御する。そして、ＣＰＵ６１０を含むコンピュータは、これらの構成を制御し、図１に示す、ホスト制御部１１０と、判定部１３０と、キャッシュ制御部１４０と、監視部１５０と、記憶装置制御部１６０と、キャッシュ１７０としての各機能を実現する。
【０１７２】
ＣＰＵ６１０は、各機能を実現する際に、ＲＡＭ６３０又は内部記憶装置６４０を、プログラムの一時記録媒体として使用してもよい。
【０１７３】
また、ＣＰＵ６１０は、コンピュータで読み取り可能にプログラムを記憶した記録媒体７００が含むプログラムを、図示しない記録媒体読み取り装置を用いて読み込んでもよい。あるいは、ＣＰＵ６１０は、ＮＩＣ６９０を介して、ホスト又は図示しない外部の装置からプログラムを受け取り、ＲＡＭ６３０又は内部記憶装置６４０に保存して、保存したプログラムを基に動作してもよい。
【０１７４】
ＲＯＭ６２０は、ＣＰＵ６１０が実行するプログラム及び固定的なデータを記憶する。ＲＯＭ６２０は、例えば、Ｐ−ＲＯＭ（Ｐｒｇｒａｍｍａｂｌｅ−ＲＯＭ）又はフラッシュＲＯＭである。
【０１７５】
ＲＡＭ６３０は、ＣＰＵ６１０が実行するプログラム及びデータを一時的に記憶する。ＲＡＭ６３０は、例えば、Ｄ−ＲＡＭ（Ｄｙｎａｍｉｃ−ＲＡＭ）である。
【０１７６】
内部記憶装置６４０は、情報制御装置６００が長期的に保存するデータ及びプログラムを記憶する。内部記憶装置６４０は、記憶部１２０として動作する。また、内部記憶装置６４０は、ＣＰＵ６１０の一時記憶装置として動作してもよい。内部記憶装置６４０は、例えば、ハードディスク装置、光磁気ディスク装置、又は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である。
【０１７７】
ここで、ＲＯＭ６２０と内部記憶装置６４０は、不揮発性（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）の記録媒体である。一方、ＲＡＭ６３０は、揮発性（ｔｒａｎｓｉｔｏｒｙ）の記録媒体である。そして、ＣＰＵ６１０は、ＲＯＭ６２０、内部記憶装置６４０、又は、ＲＡＭ６３０に記憶されているプログラムを基に動作可能である。つまり、ＣＰＵ６１０は、不揮発性記録媒体又は揮発性記録媒体を用いて動作可能である。
【０１７８】
ＩＯＣ６５０は、ＣＰＵ６１０と、入力機器６６０及び表示機器６７０とのデータを仲介する。ＩＯＣ６５０は、例えば、ＩＯインターフェースカード又はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）カードである。さらに、ＩＯＣ６５０は、ＵＳＢのような有線に限らず、無線を用いてもよい。
【０１７９】
入力機器６６０は、情報制御装置６００の操作者からの入力指示を受け取る機器である。入力機器６６０は、例えば、キーボード、マウス又はタッチパネルである。
【０１８０】
表示機器６７０は、情報制御装置６００の操作者に情報を表示する機器である。表示機器６７０は、例えば、液晶ディスプレイである。
【０１８１】
ＮＩＣ６８０は、ネットワークを介した記憶装置とのデータのやり取りを中継する。ＮＩＣ６９０は、ネットワークを介したホストとのデータのやり取りを中継する。ＮＩＣ６８０及びＮＩＣ６９０は、例えば、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌカード又はＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）カードである。さらに、ＮＩＣ６８０及びＮＩＣ６９０は、有線に限らず、無線を用いてもよい。
【０１８２】
このように構成された情報制御装置６００は、情報制御装置１００と同様の効果を得ることができる。
【０１８３】
その理由は、情報制御装置６００のＣＰＵ６１０が、プログラムに基づいて情報制御装置１００と同様の機能を実現できるためである。
【０１８４】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１８５】
１００    情報制御装置
１０１    情報制御装置
１１０    ホスト制御部
１２０    記憶部
１３０    判定部
１４０    キャッシュ制御部
１５０    監視部
１６０    記憶装置制御部
１７０    キャッシュ
６００    情報制御装置
６１０    ＣＰＵ
６２０    ＲＯＭ
６３０    ＲＡＭ
６４０    内部記憶装置
６５０    ＩＯＣ
６６０    入力機器
６７０    表示機器
６８０    ＮＩＣ
６９０    ＮＩＣ
７００    記録媒体
【図１】
2018088212.tif 000003
【図２】
2018088212.tif 000004
【図３】
2018088212.tif 000005
【図４】
2018088212.tif 000006
【図５】
2018088212.tif 000007
【図６】
2018088212.tif 000008
【図７】
2018088212.tif 000009
【図８】
2018088212.tif 000010
【図９】
2018088212.tif 000011
【図１０】
2018088212.tif 000012