(57)【特許請求の範囲】
【請求項１】
ディスクと、
該ディスクに記録されているデータの一部の写しが記録される１次キャッシュと、
ＳＳＤにより構成され、前記ディスクに記録されているデータの一部の写しが記録される２次キャッシュと、
前記１次キャッシュ上に空き領域を生成するために破棄対象として選択したブロックの１次キャッシュ上での読み込み回数が閾値を超えているとき、前記ブロックを前記２次キャッシュに記録し、読み込み要求時、読み込み対象データが前記１次キャッシュ上に存在する場合は、前記１次キャッシュ上の読み込み対象データを要求元に返却し、読み込み対象データが前記１次キャッシュ上に存在せず、前記２次キャッシュ上に存在する場合は、前記２次キャッシュ上に存在する前記読み込み対象データを含んだブロックを前記１次キャッシュに書き込んだ後、前記１次キャッシュ上の読み込み対象データを要求元に返却する制御手段とを備えたことを特徴とするディスク装置。
【請求項２】
請求項１記載のディスク装置において、
前記制御手段は、書き込み要求時、書き込み対象データが前記１次キャッシュ上に存在する場合は、前記１次キャッシュに書き込み対象データを書き込み、書き込み対象データが前記１次キャッシュ上に存在せず、前記２次キャッシュ上に存在する場合は、前記２次キャッシュ上に存在する前記書き込み対象データを含んだブロックを前記１次キャッシュに書き込んだ後、前記１次キャッシュに書き込み対象データを書き込み、書き込み対象データが前記１次キャッシュ上及び前記２次キャッシュ上に存在しない場合は、前記１次キャッシュ上の空き領域に書き込み対象データを書き込むことを特徴とするディスク装置。
【請求項３】
請求項１または２記載のディスク装置において、
前記制御手段は、前記ブロックに対する読み込み回数が前記閾値未満である場合は、前記ブロック中の有効データを前記ディスクに書き戻すことを特徴とするディスク装置。
【請求項４】
請求項１または２記載のディスク装置において、
前記制御手段は、前記ブロックに対する読み込み回数が前記閾値未満である場合は、前記ブロックに対して書き込みが行われているか否かを判定し、書き込みが行われている場合は、前記ブロック中の有効データを前記ディスクに書き戻し、書き込みが行われていない場合は、前記ブロックを破棄することを特徴とするディスク装置。
【請求項５】
請求項１または２記載のディスク装置において、
定期的に、書き込みが行われているブロック中の有効データを前記ディスクに書き戻す書き戻し手段を備え、
前記制御手段は、前記ブロックに対する読み込み回数が前記閾値未満である場合は、前記書き戻し手段によって前記ブロックの有効データが前記ディスクに書き戻されていれば、前記ブロックを破棄し、書き戻されていなければ、前記ブロック中の有効データを前記ディスクに書き戻すことを特徴とするディスク装置。
【請求項６】
請求項１乃至５の何れか１項に記載のディスク装置において、
前記ディスクは、アレイ構成を有することを特徴とするディスク装置。
【請求項７】
ディスクと、該ディスクに記録されているデータの一部の写しが記録される１次キャッシュと、ＳＳＤにより構成され、前記ディスクに記録されているデータの一部の写しが記録される２次キャッシュとを備えたディスク装置における２次キャッシュ利用方法であって、
制御手段が、前記１次キャッシュ上に空き領域を生成するために破棄対象として選択したブロックの１次キャッシュ上での読み込み回数が閾値を超えているとき、前記ブロックを前記２次キャッシュに記録し、読み込み要求時、読み込み対象データが前記１次キャッシュ上に存在する場合は、前記１次キャッシュ上の読み込み対象データを要求元に返却し、読み込み対象データが前記１次キャッシュ上に存在せず、前記２次キャッシュ上に存在する場合は、前記２次キャッシュ上に存在する前記読み込み対象データを含んだブロックを前記１次キャッシュに書き込んだ後、前記１次キャッシュ上の読み込み対象データを要求元に返却することを特徴とする２次キャッシュ利用方法。
【請求項８】
ディスクと、該ディスクに記録されているデータの一部の写しが記録される１次キャッシュと、ＳＳＤにより構成され、前記ディスクに記録されているデータの一部の写しが記録される２次キャッシュとを備えたディスク装置に実装されているＣＰＵを、
前記１次キャッシュ上に空き領域を生成するために破棄対象として選択したブロックの１次キャッシュ上での読み込み回数が閾値を超えているとき、前記ブロックを前記２次キャッシュに記録し、読み込み要求時、読み込み対象データが前記１次キャッシュ上に存在する場合は、前記１次キャッシュ上の読み込み対象データを要求元に返却し、読み込み対象データが前記１次キャッシュ上に存在せず、前記２次キャッシュ上に存在する場合は、前記２次キャッシュ上に存在する前記読み込み対象データを含んだブロックを前記１次キャッシュに書き込んだ後、前記１次キャッシュ上の読み込み対象データを要求元に返却する制御手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリを備えたディスク装置に関する。
【背景技術】
【０００２】
磁気ディスク装置、光ディスク装置、データアレイ装置などのディスク装置は、一般にシステムパフォーマンス等の観点からキャッシュメモリを備えている。キャッシュメモリは、典型的には、ＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性メモリから構成されており、ディスク装置の稼働中にアクセスされたデータをキャッシュメモリに格納しておくことにより、次にアクセス要求があったとき、要求されたデータがキャッシュメモリ上に存在すれば、低速なディスクをアクセスせずに、高速なキャッシュメモリ上のデータを利用することができるので、アクセス要求に対する応答性能を向上させることができる。
【０００３】
また、キャッシュメモリを備えたディスク装置において、応答性能を更に向上させるため、ＨＤＤ（Hard Disk Drive）の一部をＳＳＤ（Solid State Drive）に置き換えるようにしたものも知られている（例えば、特許文献１参照）。ＳＳＤは、記憶素子として不揮発性のフラッシュメモリを使用したディスクドライブである。ＳＳＤは、ＨＤＤに比較して高速にデータを読み書きすることができるが、ブロックに対する消去、書き込み回数に制限がある。このため、特許文献１では、記憶領域の内の頻繁に書き換えが行われる部分（Writeブロック）のデータは、ＨＤＤ側に記録し、書き換えが余り行われず、読み出される機会が多い部分（Readブロック）のデータは、ＳＳＤに記録することにより、応答性能を向上させつつ、ＳＳＤの寿命を延ばすようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１６３６４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した特許文献１に記載されている技術によれば、応答性能を向上させつつ、ＳＳＤの寿命を延ばすことができる。しかし、特許文献１に記載されている技術は、記憶領域が、頻繁に書き換えが行われるWriteブロックと、書き換えが余り行われず、読み出される機会が多いReadブロックとに分けられるものにしか適用できないという問題がある。
【０００６】
ところで、応答性能を向上させる技術として、キャッシュメモリを１次キャッシュ、２次キャッシュというように階層化する技術が知られている。この技術を利用すれば、記憶領域がWriteブロックとReadブロックに分けられないディスク装置においても応答性能を向上させることができる。ここで、２次キャッシュは、その容量が多いほど、応答性能を高くすることができるので、大容量化が可能なＳＳＤを２次キャッシュとして利用することが考えられる。
【０００７】
しかし、ＳＳＤは、ブロックに対する消去、書き込み回数に制限があるため、ＳＳＤを２次キャッシュとして利用した場合には、次のような問題が発生する。１次キャッシュのキャッシュページ（キャッシュライン）が全て利用されている状態で、更に、１次キャッシュ上に存在しないブロックに対するアクセス要求が発生すると、通常、１次キャッシュからブロックが１つ追い出され、２次キャッシュに書き込まれる。従って、ＳＳＤを２次キャッシュとして利用した場合は、１次キャッシュから追い出されたブロックの書き込み処理によって２次キャッシュの寿命が短くなるという問題がある。
【０００８】
[発明の目的]
そこで、本発明の目的は、ＳＳＤを２次キャッシュとして利用した場合に、２次キャッシュの寿命が短くなるという課題を解決したディスク装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明に係る第１のディスク装置は、
ディスクと、
該ディスクに記録されているデータの一部の写しが記録される１次キャッシュと、
ＳＳＤにより構成され、前記ディスクに記録されているデータの一部の写しが記録される２次キャッシュと、
前記１次キャッシュ上に空き領域を生成するために破棄対象として選択したブロックの１次キャッシュ上での読み込み回数が閾値を超えているとき、前記ブロックを前記２次キャッシュに記録し、読み込み要求時、読み込み対象データが前記１次キャッシュ上に存在する場合は、前記１次キャッシュ上の読み込み対象データを要求元に返却し、読み込み対象データが前記１次キャッシュ上に存在せず、前記２次キャッシュ上に存在する場合は、前記２次キャッシュ上に存在する前記読み込み対象データを含んだブロックを前記１次キャッシュに書き込んだ後、前記１次キャッシュ上の読み込み対象データを要求元に返却する制御手段とを備える。
【００１０】
本発明に係る２次キャッシュ利用方法は、
ディスクと、該ディスクに記録されているデータの一部の写しが記録される１次キャッシュと、ＳＳＤにより構成され、前記ディスクに記録されているデータの一部の写しが記録される２次キャッシュとを備えたディスク装置における２次キャッシュ利用方法であって、
制御手段が、前記１次キャッシュ上に空き領域を生成するために破棄対象として選択したブロックの１次キャッシュ上での読み込み回数が閾値を超えているとき、前記ブロックを前記２次キャッシュに記録し、読み込み要求時、読み込み対象データが前記１次キャッシュ上に存在する場合は、前記１次キャッシュ上の読み込み対象データを要求元に返却し、読み込み対象データが前記１次キャッシュ上に存在せず、前記２次キャッシュ上に存在する場合は、前記２次キャッシュ上に存在する前記読み込み対象データを含んだブロックを前記１次キャッシュに書き込んだ後、前記１次キャッシュ上の読み込み対象データを要求元に返却する。
【００１１】
本発明に係るプログラムは、
ディスクと、該ディスクに記録されているデータの一部の写しが記録される１次キャッシュと、ＳＳＤにより構成され、前記ディスクに記録されているデータの一部の写しが記録される２次キャッシュとを備えたディスク装置に実装されているＣＰＵを、
前記１次キャッシュ上に空き領域を生成するために破棄対象として選択したブロックの１次キャッシュ上での読み込み回数が閾値を超えているとき、前記ブロックを前記２次キャッシュに記録し、読み込み要求時、読み込み対象データが前記１次キャッシュ上に存在する場合は、前記１次キャッシュ上の読み込み対象データを要求元に返却し、読み込み対象データが前記１次キャッシュ上に存在せず、前記２次キャッシュ上に存在する場合は、前記２次キャッシュ上に存在する前記読み込み対象データを含んだブロックを前記１次キャッシュに書き込んだ後、前記１次キャッシュ上の読み込み対象データを要求元に返却する制御手段として機能させる。
【発明の効果】
【００１２】
本発明によれば、ＳＳＤを２次キャッシュとして利用した場合に、２次キャッシュの寿命が短くなるという課題を解決することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態の構成例を示すブロック図である。
【図２】キャッシュメモリ４の内容例を示す図である。
【図３】本発明の実施の形態の処理例（主に読み込み要求時）を示すフローチャートである。
【図４】本発明の実施の形態の処理例（主に書き込み要求時）を示すフローチャートである。
【図５】本発明の実施の形態の処理例（キャッシュメモリからのブロック破棄時）の処理例を示すフローチャートである。
【図６】対応表６０の内容例を示す図である。
【図７】管理情報リスト部４３の具体例を示す図である。
【図８】実施の形態の変形例を示すブロック図である。
【発明を実施するための形態】
【００１４】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１５】
[本発明の実施の形態]
図１を参照すると、本発明の一実施の形態としてのディスクアレイ装置１が示されている。図１において、ディスクアレイ装置１は、コントローラ２と、ディスク部６とを備えている。
【００１６】
ディスク部６は、ＲＡＩＤ（Redundant
Arrays of Inexpensive Disks）によって管理される複数台のＨＤＤ７と、２次キャッシュとして利用されるＳＳＤ８とを備えている。２次キャッシュとして利用されるＳＳＤ８には、ＨＤＤ７に記録されているデータの一部の写しが記録される。なお、図１では、ＳＳＤ８の台数を１台としたが、複数台であっても構わない。
【００１７】
コントローラ２は、ホスト制御部３と、１次キャッシュとして利用されるキャッシュメモリ４と、ディスク制御部５とを備えている。
【００１８】
図２を参照すると、キャッシュメモリ４は、キャッシュページ部４１と、ディスクアレイ制御情報部４２と、管理情報リスト部４３とを備えている。
【００１９】
キャッシュページ部４１は、所定サイズの複数のキャッシュページ（キャッシュライン）４１１から構成され、各キャッシュページ４１１には、ＨＤＤ７に記録されているデータの一部の写しが記録されている。また、各キャッシュページ４１１には、それぞれ異なるキャッシュページ番号が割り当てられている。
【００２０】
ディスクアレイ制御情報部４２には、ディスク制御部５がディスクアレイを制御するために必要になるディスクアレイ制御情報（例えば、ＲＡＩＤ構成を示す情報など）が記録される。
【００２１】
管理情報リスト部４３には、キャッシュページ４１１に割り当てられているキャッシュページ番号（単に、ページ番号と記す場合もある）４３１に関連付けて、そのキャッシュページに格納されているブロック上のデータがホスト制御部３によって読み込まれた回数（読み込み回数）４３２と、そのキャッシュページの読み込み回数が予め定められている規定回数を超えているか否かを表すＳＳＤフラグ４３３と、そのキャッシュページがアクセスされた順番が、アクセス順が最も新しいキャッシュページから数えて何番目であるかを表すアクセス順４３４と、そのキャッシュページに格納されているデータの中に、ＨＤＤ７或いはＳＳＤ８上の対応するデータと内容が異なっているものが存在するか否かを示す変更フラグ４３５とが記録されている。なお、本実施の形態では、ＳＳＤフラグ４３３は、読み込み回数が規定回数以下の場合には無効（“０”）、規定回数を超える場合には有効（“１”）となる。
【００２２】
ホスト制御部３は、コンピュータなどのホスト装置９からのアクセス要求を処理するものであり、制御手段３１と、管理情報リスト更新手段３２とを備えている。
【００２３】
制御手段３１は、ホスト装置９からのアクセス要求を受け付け、その種類（書き込み要求なのか、読み込み要求なのか）や、要求されているデータがキャッシュメモリ４上に存在するか否かや、ブロックの置き換えが必要な否かなどを判定し、判定結果に応じた処理を行う。その際、必要に応じて管理情報リスト更新手段３２を利用したり、ディスク制御部５に対して処理要求を出力する。
【００２４】
管理情報リスト更新手段３２は、制御手段３１から読み込み回数をインクリメントするキャッシュページ番号が通知されると、管理情報リスト部４３に記録されている読み込み回数４３２の内、上記キャッシュページ番号に関連付けて記録されている読み込み回数をインクリメントし、インクリメント後の読み込み回数が予め定められている規定回数を超えている場合には、ＳＳＤフラグ４３３を“１”とする。
【００２５】
ディスク制御部５は、ホスト制御部３からの指示に従って、ディスク部６内のＨＤＤ７や、ＳＳＤ８に対してデータの読み書きを行うものであり、制御手段５１と転送手段５２とを備えている。
【００２６】
制御手段５１は、ホスト制御部３からの要求を処理する。その際、必要に応じて転送手段５２を利用する。
【００２７】
転送手段５２は、制御手段５１からの指示に従って、ＨＤＤ７或いはＳＳＤ８上のブロックをキャッシュページ４１１に書き込んだり、キャッシュページ４１１に格納されているブロックをＨＤＤ７あるいはＳＳＤ８に書き込む。
【００２８】
なお、コントローラ２は、ＣＰＵ（中央処理装置）によって実現可能であり、ＣＰＵによって実現する場合は、ＣＰＵをホスト制御部３およびディスク制御部５として機能させるためのプログラムを記録したディスクなどの記録媒体を用意し、ＣＰＵに上記プログラムを読み取らせる。ＣＰＵは、読み取ったプログラムに従って自身の動作を制御することにより、自ＣＰＵ上にホスト制御部３およびディスク制御部５を実現する。
【００２９】
次に、本実施の形態の動作について詳細に説明する。
【００３０】
図３を参照すると、ホスト装置９からアクセス要求があると、ホスト制御部３内の制御手段３１は、アクセス要求の種類が書き込み要求なのか、読み込み要求なのかを判定する（ステップＳ３０１）。
【００３１】
読み込み要求であった場合には、要求されたデータがキャッシュメモリ４上に存在するか否かを判定する（ステップＳ３０２）。この判定は、例えば、図６に示すように、キャッシュページ番号と、そのキャッシュページに格納されているブロックを構成する複数のデータそれぞれのアドレスと、各アドレスのデータが有効であるか否かを示すアドレス有効ビットと、そのキャッシュページが有効であるか否かを示すページ有効ビットとが対応付けて記録されている対応表６０を利用して行う。つまり、制御手段３１は、対応表６０を検索し、ページ有効ビットが有効（“１”）になっているキャッシュページのページ番号に関連付けて、読み込み要求中のリードアドレスと同一のアドレスであって、アドレス有効ビットが有効（“１”）になっているアドレスが記録されているか否かを調べることにより、要求されたデータがキャッシュメモリ４上に存在するか否かを判定する。
【００３２】
また、ステップＳ３０２では、制御手段３１は、ページ有効ビットが有効になっているキャッシュページのページ番号に関連付けて、読み込み要求中のリードアドレスと同一アドレスであるが、対応するアドレス有効ビットが無効（“０”）になっているアドレスが記録されている場合は、合成フラグを有効にすると共に、上記リードアドレスが関連付けて記録されているキャッシュページ番号を保持する。例えば、対応表６０が図６に示すものであり、読み込み要求中のリードアドレスが「0ｘ00000001」である場合には、ページ有効ビットが有効になっているキャッシュページ番号「０」に関連付けて上記リードアドレス「0ｘ00000001」が登録されているが、対応するアドレス有効ビットが無効（“０”）になっているので、制御手段３１は、合成フラグを有効（“１”）にすると共に、キャッシュページ番号「０」を保持する。
【００３３】
そして、読み込み要求されたデータがキャッシュメモリ４上に存在する場合（ステップＳ３０２がＹＥＳ）には、制御手段３１は、管理情報リスト更新手段３２に対して、要求データが格納されているキャッシュページのページ番号を通知し、そのキャッシュページの読み込み回数をインクリメントすることを指示する。これにより、管理情報リスト更新手段３２は、管理情報リスト部４３に記録されている読み込み回数４３２の内、制御手段３１から通知されたキャッシュページの読み込み回数をインクリメントする（ステップＳ３０３）。また、ステップＳ３０３では、管理情報リスト部４３に記録されているアクセス順４３４の内、制御手段３１から通知されたキャッシュページのアクセス順を、最新アクセスを示すものに変更し、他のキャッシュページのアクセス順を、順序を保って繰り下げる処理も行う。
【００３４】
その後、管理情報リスト更新手段３２は、インクリメント後の読み込み回数と予め定められている規定回数とを比較し、読み込み回数が規定回数を超えているか否かを判定する（ステップＳ３０４）。
【００３５】
そして、読み込み回数が規定回数以下である場合は、制御手段３１に対して処理終了を通知し、読み込み回数が規定回数を超えている場合は、制御手段３１から通知されているキャッシュページのＳＳＤフラグ４３３を有効化した後（ステップＳ３０５）、制御手段３１に対して処理終了を通知する。この通知を受けると、制御手段３１は、後述するホスト装置への応答処理を行う（ステップＳ３１４）。
【００３６】
一方、ステップＳ３０２において、読み込み要求されたデータがキャッシュメモリ４上に存在しないと判定した場合は、制御手段３１は、合成フラグが有効（“１”）になっているか否かを判定する（ステップＳ３０６）。
【００３７】
そして、無効になっている場合（ステップＳ３０６がＮＯ）は、読み込み要求されているデータのアドレスをディスク制御部５に渡し、上記データを含むブロックをキャッシュメモリ４に格納することを指示する。これにより、ディスク制御部５内の制御手段５１は、上記データを含むブロックが、２次キャッシュとして利用しているＳＳＤ８上に存在しているか否かを判定する（ステップＳ３０７）。この判定は、ＳＳＤ８上のキャッシュページのページ番号と、そのキャッシュページに記録されているブロックのブロック番号と、そのキャッシュページが有効であるか否かを示す有効ビットとが対応付けて記録されているＳＳＤ対応表（図示せず）を利用して行う。つまり、読み込み要求されたデータを含むブロックのブロック番号がＳＳＤ対応表に記録され、且つ、対応する有効ビットが有効になっている場合、ＳＳＤ８上に存在すると判定する。
【００３８】
そして、ＳＳＤ８上に存在する場合には、制御手段５１は、転送手段５２を利用して、要求データを含んでいるブロックをＳＳＤ８から読み込んで、キャッシュメモリ４上の空いているキャッシュページに書き込み、更に、対応表６０を更新する（ステップＳ３０８，Ｓ３０９）。対応表６０の更新処理では、ブロックを書き込んだキャッシュページのページ番号に対応するページ有効ビットおよびアドレス有効ビットを有効にすると共に、上記ページ番号に関連付けて上記ブロック中の各データのアドレスを記録する。その後、制御手段５１は、ホスト制御部３に対してブロックを書き込んだキャッシュページのページ番号を通知する。これにより、ホスト制御部３内の制御手段３１は、管理情報リスト部４３に記録されているアクセス順に対する更新処理を行い（ステップＳ３１０）、その後、ホスト装置に対する応答処理を行う（ステップＳ３１４）。これに対して、ＳＳＤ８上に存在しない場合（ステップＳ３０７がＮＯ）は、ＨＤＤ７から要求データを含んでいるブロックを読み込んでキャッシュメモリ４に格納すると共に、対応表６０を更新し（ステップＳ３１１，Ｓ３０９）、その後、前述したステップＳ３１０の処理を行う。
【００３９】
これに対して、ステップＳ３０６で合成フラグが有効になっていると判定した場合は、制御手段３１は、ディスク制御部５に対して、読み込み要求されているデータのアドレスと、ステップＳ３０２で保持しておいたキャッシュページ番号と通知し、ＨＤＤ上の上記データを含むブロックの内容と、上記キャッシュページ番号のキャッシュページの内容とを合成することを指示する。これにより、ディスク制御部５内の制御手段５１は、ＨＤＤ７から該当するブロックを読み込むと共に、上記キャッシュページ番号のキャッシュページの内容を読み込む。そして、ＨＤＤ７から読み込んだデータの内の、対応表６０中のアドレス有効ビットが有効になっているアドレスのデータを、キャッシュページから読み込んだ対応するデータで置き換える（ステップＳ３１２）。例えば、ブロック中の先頭アドレスに対するアドレス有効ビットが有効になっている場合は、制御手段５１は、ＨＤＤ７から読み込んだブロック中の先頭データを、該当するキャッシュページから読み込んだブロック中の先頭データで置き換える。その後、制御手段５１は、合成したブロックを、キャッシュメモリ４上の上記キャッシュページに格納し、更に、対応表６０に記録されている、上記キャッシュページに関するアドレス有効ビットを全て有効化する（ステップＳ３１３）。その後、制御手段５１は、ホスト制御部３に対してブロックを書き込んだキャッシュページのページ番号を通知する。これにより、ホスト制御部３内の制御手段３１は、前述したステップＳ３１０の処理を行う。
【００４０】
また、ステップＳ３０１において、ホスト装置９からのアクセス要求が、書き込み要求であると判定した場合は、制御手段３１は、図４のフローチャートに示すように、書き込み要求されたデータを含むブロックに関するキャッシュページ（該当キャッシュページ）がキャッシュメモリ４上に存在するか否かを判定する（ステップＳ４１）。この判定は、対応表６０を検索し、ページ有効ビットが有効になっており、且つ、書き込み要求中のライトアドレスと同一のアドレスが関連付けて記録されているキャッシュページ番号が存在するか否かを判定することにより行う。
【００４１】
そして、該当キャッシュページが存在すると判定した場合は、そのキャッシュページ内の該当位置にデータを書き込むと共に、データを書き込んだアドレスに対応するアドレス有効ビットを有効化する（ステップＳ４２）。その後、制御手段３１は、書き込み要求データが格納されているキャッシュページのページ番号を管理情報リスト更新手段３２に渡し、そのページ番号に対応する変更フラグを有効化することを指示する。これにより、管理情報リスト更新手段３２は、管理情報リスト部４３に記録されている変更フラグ４３５の内、制御手段３１から指示されたキャッシュページの更新フラグを有効化し、更に、アクセス順４３４に対して前述した更新処理を行う（ステップＳ４６）。その後、制御手段３１は、ホスト装置への応答処理を行う（ステップＳ３１４）。
【００４２】
これに対して、該当キャッシュページがキャッシュメモリ４上に存在しないと判定した場合は、制御手段３１は、書き込み要求されているデータのアドレスをディスク制御部５に渡し、上記データを含むブロックをキャッシュメモリ４に格納することを指示する。これにより、ディスク制御部５内の制御手段５１は、上記データを含んでいるブロックがＳＳＤ８上に存在するか否かを判定する（ステップＳ４３）。
【００４３】
そして、ＳＳＤ８上に存在すると判定した場合は、制御手段５１は転送手段５２を利用してＳＳＤ８から該当するブロックを読み込み、キャッシュメモリ４上の空いているキャッシュページに書き込む（ステップＳ４４）。その後、制御手段５１は、ホスト制御部３に対してブロックを書き込んだキャッシュページのページ番号を通知する。これにより、ホスト制御部３内の制御手段３１は、上記キャッシュページの該当位置に書き込み要求されているデータを書き込み、更に、対応表６０の更新処理を行う（ステップＳ４５）。その後、前述したステップＳ４６の処理を行う。
【００４４】
これに対して、ＳＳＤ８上に存在しないと判定した場合は、制御手段５１は、その旨をホスト制御部３に通知する。これにより、ホスト制御部３内の制御手段３１は、キャッシュメモリ４上の空いているキャッシュページに書き込み要求されているデータを書き込むと共に、対応表６０の更新処理を行う（ステップＳ４７）。ステップＳ４５或いはステップＳ４７の処理が終了すると、制御手段３１は、前述したステップＳ４６と同様の処理を行い、その後、ホスト装置に対する応答処理を実行する（ステップＳ３１４）。
【００４５】
ステップＳ３１４のホスト装置への応答処理では、ホスト装置９からのアクセス要求が読み込み要求であった場合は、キャッシュメモリ４上に存在する読み込み対象データを要求元のホスト装置９へ返却し、その後、読み込み処理完了をホスト装置９へ送信する。これに対して、ホスト装置９からのアクセス要求が書き込み要求であった場合は、ホスト制御部３は、書き込み処理完了をホスト装置９へ送信する。
【００４６】
ところで、図３，図４のフローチャートでは説明を省略したが、キャッシュメモリ４上の全てのキャッシュページが使用されている状態（空きのキャッシュページが存在しない状態）で、さらにホスト装置９からキャッシュメモリ４上に存在しないブロックに対するアクセス要求が送られてきた場合には、キャッシュメモリ４上の何れかのキャッシュページに格納されているブロックを１つ、キャッシュメモリ４から破棄し（追い出し）、キャッシュメモリ４上に空きのキャッシュページを作成する破棄処理を行うことが必要になる。このような破棄処理は、キャッシュメモリ４上の全てのキャッシュページが使用されている状態で、ステップＳ３０２の判定結果がＮＯとなった場合、および、ステップＳ４１の判定結果がＮＯとなった場合に行われる。そして、破棄処理が完了すると、ステップＳ３０６或いはステップＳ４３の処理が行われる。以下、図５のフローチャートを参照して廃棄処理について説明する。
【００４７】
図５を参照すると、ホスト制御部３の制御手段３１は、先ず、破棄するブロックが格納されているキャッシュページ（破棄対象キャッシュページ）のページ番号を求める（ステップＳ５１）。具体的には、制御手段３１は、管理情報リスト部４３に記録されている各キャッシュページのアクセス順４３４に基づいて、最も遠い過去に参照されたブロックを格納しているキャッシュページのページ番号を求め、それを破棄対象キャッシュページのページ番号とする。即ち、本実施の形態では、ＬＲＵ（Least Recently Used）方式によって、破棄対象キャッシュページを決定している。しかし、破棄対象キャッシュページの決定方法は、これに限られるものではなく、参照された頻度が最も少ないブロックを格納しているキャッシュページを破棄対象キャッシュページとするＬＦＵ（Least Frequently Used）方式など、他の方法を採用するようにしてもよい。
【００４８】
その後、制御手段３１は、破棄対象キャッシュページのページ番号に関連付けて記録されているＳＳＤフラグ４３３が有効になっているか否かを判定する（ステップＳ５２）。
【００４９】
そして、有効になっている場合は、ディスク制御部５に対して、破棄対象キャッシュページに格納されているブロックを、ＳＳＤ８に書き込むことを指示する。これにより、ディスク制御部５内の制御手段５１は、転送手段５２を利用して、キャッシュメモリ４の破棄対象キャッシュページに格納されているブロックをＳＳＤに書き込む（ステップＳ５３）。つまり、ＳＳＤ対応表に上記ブロックのブロック番号が記録されている場合には、そのブロック番号に対応付けて記録されているキャッシュページ番号のキャッシュページ（ＳＳＤ８上のキャッシュページ）に上記ブロックを書き込む。また、ＳＳＤ対応表に上記ブロック番号が記録されていない場合には、空いているキャッシュページのページ番号に対応付けて上記ブロック番号を記録すると共に、その有効ビットを有効にする。その後、ホスト制御部３の制御手段３１は、前述した対応表６０の、上記破棄対象キャッシュページのページ有効ビット、アドレス有効ビットを無効化するなどすることにより、破棄対象キャッシュページに格納されているブロックを破棄する（ステップＳ５４）。更に、制御手段３１は、管理情報リスト更新手段３２を利用して、破棄対象キャッシュページのページ番号に対応付けて記録されている読み込み回数４３２、ＳＳＤフラグ４３３、アクセス順４３４、変更フラグ４３５をクリアする（ステップＳ５５）。
【００５０】
これに対して、破棄対象キャッシュページについてのＳＳＤフラグ４３３が無効になっている場合（ステップＳ５２がＮＯ）は、制御手段３１は、破棄対象キャッシュページについての変更フラグ４３５が有効になっているか否かを判定する（ステップＳ５６）。
【００５１】
そして、変更フラグ４３５が有効になっている場合は、キャッシュメモリ４上のブロックの内容と、ＨＤＤ７上の対応するブロックの内容とが異なっているので、制御手段３１はディスク制御部５に対して、破棄対象キャッシュページに格納されているデータの内、対応表６０のアドレス有効ビットが有効になっているデータをＨＤＤ7に書き戻すことを指示する。これにより、ディスク制御部５内の制御手段５１は、転送手段５２を利用して、破棄対象キャッシュページに格納されている該当データをＨＤＤ７に書き戻す（ステップＳ５７）。また、ステップＳ５７では、ＳＳＤ対応表上に上記データを含むブロックのブロック番号が登録されている場合は、そのブロック番号に対応付けて記録されている有効ビットを無効にする。その後、制御手段３１は、前述したステップＳ５４，Ｓ５５の処理を行う。
【００５２】
これに対して変更フラグ４３５が無効になっている場合は、破棄対象キャッシュページに格納されているブロックの内容と、ＨＤＤ７上の対応するブロックの内容とは一致しているので、制御手段３１は、直ちに前述したステップＳ５４，Ｓ５５の処理を行う。
【００５３】
なお、上述した処理に加え、次のような処理を行うようにしてもよい。ディスク制御部５内の制御手段５１は、定期的に管理情報リスト部４３の変更フラグ４３５を参照する。そして、変更フラグ４３５が有効になっているキャッシュページについては、転送手段５２を利用して、上記キャッシュページに格納されているデータの内の、アドレス有効ビットが有効になっているデータをＨＤＤ７に書き戻し、その後、該当する変更フラグ４３５を無効化する。更に、ＳＳＤ対応表に上記データを含むブロックのブロック番号が記録されている場合は、そのブロック番号に対応付けて記録されている有効ビットを無効化する。このような処理を行うことにより、前述した図４のステップＳ５７の処理が行われる回数を減らすことができるので、ホスト装置９からのアクセス要求に対する応答性能を更に高いものにすることができる。
【００５４】
次に、具体例を挙げて本実施の形態の動作について説明する。
【００５５】
今、管理情報リスト部４３の内容が図７に示すものであるとする。なお、この例では、ＳＳＤフラグを有効化する規定回数（図３のステップＳ３０４における規定回数）を「８０回」としている。
【００５６】
このような状態において、図５のステップＳ５１において、破棄対象キャッシュページのページ番号として「０ページ」が求められたとする。「０ページ」は、読み込み回数が「３０回」であり、規定回数以下であるので、「０ページ」のＳＳＤフラグ４３３は、“０”となっている。また、この例では、「０ページ」の変更フラグ４３５は、“０”となっている。従って、ステップＳ５２，Ｓ５６の判定結果が共にＮＯとなり、廃棄対象キャッシュページに格納されているブロックを破棄する処理（ステップＳ５４）、および、ページ番号「０ページ」に関連付けて記録されている読み込み回数４３２などをクリアする処理が行われる（ステップＳ５５）。すなわち、ホスト装置９からの読み込み回数が少ないページ番号「０」のキャッシュページに格納されているブロックを破棄する場合には、ＳＳＤ８に対する書き込み処理は行われない。
【００５７】
また、図５のステップＳ５１において、破棄対象キャッシュページのページ番号として「１ページ」が求められたとすると、次のような処理が行われる。「１ページ」は、読み込み回数が「１００回」であり、規定回数を超えているので、「０ページ」のＳＳＤフラグは、“１”になっている。従って、ステップＳ５２の判定結果がＹＥＳとなり、ページ番号「１」のキャッシュページに格納されていたブロックは、ＳＳＤ８に書き込まれる（ステップＳ４３）。
【００５８】
以上の動作により、キャッシュメモリ４から破棄するブロックのうち、キャッシュメモリ４からの読み込み回数が多いブロックのみをＳＳＤ８に保存することができる。これにより、ＳＳＤ８への書き込み回数を削減することができ、ＳＳＤ８の寿命を延ばすことができる。
【００５９】
なお、上述した説明では、２次キャッシュとして使用するＳＳＤ８をディスク部６内に配置するようにしたが、図８に示すように、ＳＳＤ８をコントローラ２内に配置するようにしてもよい。
【００６０】
[実施の形態の効果]
本実施の形態によれば、ＳＳＤを２次キャッシュとして利用した場合に、２次キャッシュの寿命が短くなるという課題を解決することができる。その理由は、１次キャッシュからブロックを破棄する際、上記ブロックに対する読み込み回数が閾値を超えるか否かを判定し、閾値を超える場合に限り、上記ブロックをＳＳＤに記録するようにしているからである。
【００６１】
また、本実施の形態では、転送時間がかかるＨＤＤからキャッシュメモリへの転送処理は、ホスト装置から読み込み要求があり、且つ要求されたデータがＳＳＤに存在しない場合だけであるので、キャッシュメモリからブロックを破棄する際、ホスト装置から再度アクセスされる可能性が高い、読み込み回数が多いブロックだけをＳＳＤに記録するようにするだけでも、応答性能を十分に高いものにすることができる。
【符号の説明】
【００６２】
１      ディスクアレイ装置
２      コントローラ
３      ホスト制御部
４      キャッシュメモリ
５      ディスク制御部
６      ディスク部
７      ＨＤＤ
８      ＳＳＤ
９      ホスト装置
３１    制御手段
３２    管理情報リスト更新手段
４１    キャッシュページ部
４２    ディスクアレイ制御情報部
４３    管理情報リスト部
５１    制御手段
５２    転送手段
６０    対応表
【図１】
0005434738.tif 000002
【図２】
0005434738.tif 000003
【図３】
0005434738.tif 000004
【図４】
0005434738.tif 000005
【図５】
0005434738.tif 000006
【図６】
0005434738.tif 000007
【図７】
0005434738.tif 000008
【図８】
0005434738.tif 000009