(57)【要約】【課題】ストレージ装置の性能を向上させる。【解決手段】記憶装置４０に対する書込要求に係る書込アドレスのキャッシュメモリ３１におけるキャッシュヒット状況に基づいて、前記書込要求に基づく書込処理の動作モードをライトバックモード及びライトスルーモードのいずれかに決定する決定部３３２と、決定した動作モードに従って、前記キャッシュメモリ３１を介して、前記書込要求に基づく書込処理を行なう書込処理部３３３と、をそなえる。【選択図】図２
2018106573.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に対する書込要求に係る書込アドレスのキャッシュメモリにおけるキャッシュヒット状況に基づいて、前記書込要求に基づく書込処理の動作モードをライトバックモード及びライトスルーモードのいずれかに決定する決定部と、
決定した動作モードに従って、前記キャッシュメモリを介して、前記書込要求に基づく書込処理を行なう書込処理部と、をそなえる
ことを特徴とする、ストレージ制御装置。
【請求項２】
前記決定部は、前記書込要求についてキャッシュヒットの場合、当該書込要求に基づく書込処理の動作モードをライトバックモードに決定する、
ことを特徴とする、請求項１記載のストレージ制御装置。
【請求項３】
前記決定部は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求が存在しない場合、当該書込要求に基づく書込処理の動作モードをライトスルーモードに決定する、
ことを特徴とする、請求項１又は請求項２記載のストレージ制御装置。
【請求項４】
前記決定部は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求の数が所定数未満である場合、当該書込要求に基づく書込処理の動作モードをライトスルーモードに決定する、
ことを特徴とする、請求項１〜３のいずれか１項記載のストレージ制御装置。
【請求項５】
前記決定部は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求の数が所定数以上である場合、当該書込要求に基づく書込処理の動作モードをライトバックモードに決定する、
ことを特徴とする、請求項１〜４のいずれか１項記載のストレージ制御装置。
【請求項６】
前記書込要求についてキャッシュミスの場合であって、当該書込要求がキャッシュ獲得待ちとなる場合、前記決定部が決定した動作モードを示す情報を当該書込要求に関する制御情報に設定し、前記制御情報をキャッシュ獲得待ちのキューに登録する登録部、をそなえる、
ことを特徴とする、請求項４又は請求項５記載のストレージ制御装置。
【請求項７】
前記書込要求についてキャッシュミスの場合であって、当該書込要求がキャッシュ獲得待ちとなる場合、前記キャッシュメモリから前記記憶装置へのデータの書出処理を行ない、キャッシュ獲得待ちの前記キューから制御情報を取り出す書出処理部、をそなえ、
前記書込処理部は、取り出された制御情報に設定された動作モードに従って、当該制御情報が示す書込要求に基づく書込処理を行なう、
ことを特徴とする、請求項６記載のストレージ制御装置。
【請求項８】
コンピュータに、
記憶装置に対する書込要求に係る書込アドレスのキャッシュメモリにおけるキャッシュヒット状況に基づいて、前記書込要求に基づく書込処理の動作モードをライトバックモード及びライトスルーモードのいずれかに決定し、
決定した動作モードに従って、前記キャッシュメモリを介して、前記書込要求に基づく書込処理を実行する、
処理を実行させることを特徴とする、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置及び制御プログラムに関する。
【背景技術】
【０００２】
記憶装置としてＳＳＤ（Solid State Drive）等のフラッシュメモリを用いた、ＡＦＡ（All Flash Array）と呼ばれるストレージ装置が知られている。ＡＦＡでは、ＨＤＤ（Hard Disk Drive）とは異なるＳＳＤの特徴を考慮した制御を行なうことで、アクセス等の性能向上を図ることができる。
【０００３】
ところで、ストレージ装置では、記憶装置へのアクセスを制御する制御装置と記憶装置との間の性能差を埋めるために、制御装置にＤＲＡＭ（Dynamic Random Access Memory）等を用いたキャッシュメモリが設けられることがある。なお、ストレージ装置が複数の制御装置をそなえる場合、キャッシュメモリは各制御装置に設けられてよい。
【０００４】
キャッシュメモリを利用する動作モードとしては、ＷｒｉｔｅＢａｃｋモード（以下、「ＷＢモード」と表記する場合がある）やＷｒｉｔｅＴｈｒｏｕｇｈモード（以下、「ＷＴモード」と表記する場合がある）が知られている。なお、「ＷｒｉｔｅＢａｃｋ」は、「ＡｆｔｅｒＷｒｉｔｅ」或いは「ＷｒｉｔｅＡｆｔｅｒ」と称されてもよい。
【０００５】
ＷＢモードは、制御装置がホスト装置からのＷｒｉｔｅ  Ｉ／Ｏ（Input / Output）に応じてキャッシュメモリにデータを書き込み、制御装置間でキャッシュデータの二重化が完了した時点で、ホスト装置にＷｒｉｔｅ  Ｉ／Ｏの応答を返す動作モードである。ＷＢモードでは、記憶装置にはデータが存在せずにキャッシュメモリ上に当該データが存在する状況が発生するため、制御装置間でキャッシュデータの二重化処理を行なうことで、キャッシュデータの冗長性を保持する。
【０００６】
ＷＴモードは、Ｗｒｉｔｅ  Ｉ／Ｏに応じて制御装置がキャッシュメモリを介して記憶装置（例えば、ＡＦＡではＳＳＤ）にデータを書き込んだ時点でホスト装置に応答を返す動作モードである。ＷＴモードでは、Ｉ／Ｏに係る処理の延長で記憶装置にデータが書き込まれるため、キャッシュデータの冗長性を保持する必要が無く、制御装置間での二重化処理は不要である。
【０００７】
ＷＴモードでは、ホスト装置にＩ／Ｏに係るステータスを応答するまでの間にディスクアクセスを伴うため、ＷＢモードと比較してレスポンスが低下しやすい。このため、ストレージ装置は、例えば、基本的にはＷＢモードで運用し、バッテリ等の電源異常等が発生した場合に動作モードをＷＢモードからＷＴモードに切り替えて運用する場合がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２０１３−５１０３６０号公報
【特許文献２】特開２００６−２７７２０５号公報
【特許文献３】特表２０１３−５２８８４３号公報
【特許文献４】特開２００６−９２１２０号公報
【特許文献５】特表２００７−５２８０７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ＷＢモードでは、制御装置のプロセッサ、例えばＣＰＵ（Central Processing Unit）は、キャッシュデータの二重化処理を行なう。ＡＦＡのようなストレージ装置では、キャッシュメモリから記憶装置にデータを書き出す（デステージする）場合の書込性能がＨＤＤよりも高いため、プロセッサの処理負荷によっては、プロセッサの処理性能がボトルネックになる場合がある。
【００１０】
例えば、キャッシュミスが発生する場合にはキャッシュの獲得待ちが発生する。プロセッサの処理負荷が高い場合、ＷＢモードでは、二重化処理のオーバヘッド分のプロセッサ資源がさらに割かれてしまう。このように、プロセッサの処理負荷の増加に伴い、高性能な記憶装置を搭載するストレージ装置の性能が十分に発揮されないことがある。
【００１１】
１つの側面では、本発明は、ストレージ装置の性能を向上させることを目的の１つとする。
【００１２】
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【００１３】
１つの側面では、ストレージ制御装置は、決定部と、書込処理部と、をそなえてよい。前記決定部は、記憶装置に対する書込要求に係る書込アドレスのキャッシュメモリにおけるキャッシュヒット状況に基づいて、前記書込要求に基づく書込処理の動作モードをライトバックモード及びライトスルーモードのいずれかに決定してよい。前記書込処理部は、決定した動作モードに従って、前記キャッシュメモリを介して、前記書込要求に基づく書込処理を行なってよい。
【発明の効果】
【００１４】
１つの側面では、ストレージ装置の性能を向上させることができる。
【図面の簡単な説明】
【００１５】
【図１】一実施形態に係るストレージシステムの構成例を示すブロック図である。
【図２】ストレージ装置の機能構成例を示すブロック図である。
【図３】空きキャッシュページ管理情報及びキャッシュ獲得待ちキューの一例を示す図である。
【図４】空きキャッシュページ管理情報及びキャッシュ獲得待ちキューの一例を示す図である。
【図５】キャッシュ制御情報の一例を示す図である。
【図６】Ｉ／Ｏ制御情報の一例を示す図である。
【図７】ストレージ装置の性能モデルとキャッシュモードとの性能面における関係の一例を示す図である。
【図８】Ｗｒｉｔｅ  Ｉ／Ｏの処理範囲が複数のキャッシュページに亘る場合の動作モード判定部の処理の一例を示す図である。
【図９】ＣＭによるＷｒｉｔｅ  Ｉ／Ｏの受信処理の動作例を示すフローチャートである。
【図１０】ＣＭによる書出処理の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１７】
〔１〕一実施形態
〔１−１〕ストレージシステムの構成例
図１に示すように、一実施形態に係るストレージシステム１は、例示的に、ストレージ装２及びホスト装置５をそなえてよい。なお、ストレージシステム１は、複数のストレージ装置２をそなえてスケールアウト型のストレージシステムを構成してもよい。また、ストレージ装置２には、複数のホスト装置５が接続されてもよい。
【００１８】
ホスト装置５は、ストレージ装置２に対して、Ｒｅａｄ／Ｗｒｉｔｅ等のＩ／Ｏを行なう上位装置の一例である。なお、以下の説明で、「Ｉ／Ｏ」とは、アクセス先のアドレス情報（例えば論理アドレス）、及び、書込対象のデータ（書込アクセスの場合）を少なくとも含むアクセス要求であるものとする。一例として、ホスト装置５は、５１２Ｂ又は４ＫＢ等のサイズの１以上の論理アドレス（例えばＬＢＡ；Logical Block Address）を指定したＩ／Ｏを発行してよい。
【００１９】
ホスト装置５としては、サーバ、ＰＣ（Personal Computer）、タブレット、又は、ＰＤＡ（Personal Digital Assistant）等のコンピュータが挙げられる。なお、ホスト装置５は、図示しないネットワークを介してストレージ装置２に接続されてもよい。ネットワークには、ＳＡＮ（Storage Area Network）が含まれてもよく、また、ＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）等のイントラネット、或いはインターネット等が含まれてもよい。
【００２０】
ストレージ装置２は、ホスト装置５に対して記憶領域を提供する装置であり、非限定的な一例として、ＡＦＡが挙げられる。ストレージ装置２は、例示的に、１以上（図１では２つ）のＣＭ（Controller Module）３、及び、１以上（図１では１つ）のＤＥ（Drive Enclosure）４をそなえてよい。
【００２１】
ＣＭ３は、ホスト装置５から複数の記憶装置４０に対するアクセスを制御するストレージ制御装置（コントローラ）又は情報処理装置（コンピュータ）の一例である。
【００２２】
図１に例示するように、ＣＭ３は、他のＣＭ３との間で冗長化（例えば二重化）されてよい。なお、ストレージ装置２が複数のＣＭ３をそなえる場合、これらのＣＭ３は、例えばＣＥ（Controller Enclosure）等の筐体に収容されてもよい。
【００２３】
ＤＥ４は、複数の記憶装置４０をそなえ、ＣＭ３からの要求に応じて記憶装置４０に対するデータ等の書き込み又は読み出し等の種々のアクセスを行なってよい。ＤＥ４では、ＣＭ３による制御の下、これらの記憶装置４０を用いて１以上のストレージグループを構築してもよい。ストレージグループとしては、例えば、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）グループが挙げられる。なお、図１の例では、ストレージ装置２内に１つのＤＥ４が示されているが、ストレージ装置２は、例えば、カスケード状に接続（縦列接続）した複数のＤＥ４をそなえてもよい。
【００２４】
記憶装置４０は、種々のデータやプログラム等を格納するハードウェアの一例である。記憶装置４０としては、例えばＳＳＤ等の半導体ドライブ装置（「フラッシュメモリ」と称されてもよい）等の各種記憶装置が挙げられる。なお、記憶装置４０として、ＳＳＤ以外の記憶装置、例えば、ＨＤＤ等の磁気ディスク装置が用いられてもよい。上述のように、ストレージ装置２としてはＡＦＡが挙げられるが、ＨＤＤの性能を活かせるシーケンシャルアクセスが多い運用等の所定の条件下では、高性能なＨＤＤ（例えば１５０００ｒｐｍ（revolution per minute）前後又はそれ以上等の高回転数のＨＤＤ）が採用されてもよい。以下、記憶装置４０を「記憶デバイス」又は単に「デバイス」と表記する場合がある。
【００２５】
次に、図１を参照して、ＣＭ３のハードウェア構成例について説明する。図１に示すように、ＣＭ３は、例示的に、プロセッサ３ａ、メモリ３ｂ、記憶部３ｃ、ホストＩＦ（Interface）３ｄ−１、ＣＭ間ＩＦ３ｄ−２、デバイスＩＦ３ｄ−３、入出力部３ｅ、及び読取部３ｆをそなえてよい。
【００２６】
プロセッサ３ａは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ３ａは、各ブロック３ｂ〜３ｆとバス３ｉで相互に通信可能に接続されてよい。プロセッサ３ａとしては、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤ（例えばＦＰＧＡ）等の集積回路（ＩＣ）が用いられてもよい。なお、ＣＰＵはCentral Processing Unitの略称であり、ＭＰＵはMicro Processing Unitの略称であり、ＤＳＰはDigital Signal Processorの略称である。また、ＡＳＩＣはApplication Specific Integrated Circuitの略称であり、ＰＬＤはProgrammable Logic Deviceの略称であり、ＦＰＧＡはField Programmable Gate Arrayの略称である。
【００２７】
メモリ３ｂは、種々のデータやプログラムを格納するハードウェアの一例である。メモリ３ｂとしては、例えばＲＡＭ等の揮発性メモリが挙げられる。
【００２８】
記憶部３ｃは、種々のデータやプログラム等を格納するハードウェアの一例である。例えば、記憶部３ｃは、ＣＭ３の２次記憶装置として使用されてよく、ファームウェアプログラム及び各種データが格納されてよい。記憶部３ｃとしては、例えば、ＨＤＤ等の磁気ディスク装置、ＳＳＤ等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、ＳＣＭ（Storage Class Memory）、ＲＯＭ（Read Only Memory）等が挙げられる。記憶部３ｃは、ＣＭ３の各種機能の全部若しくは一部を実現するプログラム３ｇを格納してもよい。
【００２９】
ホストＩＦ３ｄ−１、ＣＭ間ＩＦ３ｄ−２、及びデバイスＩＦ３ｄ−３は、それぞれ、ホスト装置５、他のＣＭ３、及びデバイス（例えばＤＥ４内の記憶装置４０）との間の接続及び通信の制御等を行なう通信インタフェースの一例である。なお、ＣＭ３は、作業者の作業端末との間の接続及び通信の制御等を行なう通信インタフェースをそなえてもよく、当該通信インタフェースを用いて、図示しないネットワークからプログラム３ｇをダウンロードしてもよい。
【００３０】
入出力部３ｅは、例えば、マウス、キーボード、タッチパネル、操作ボタン等の入力装置、並びに、ディスプレイやプリンタ等の出力装置の少なくとも一方を含んでよい。
【００３１】
読取部３ｆは、記録媒体３ｈに記録されたデータやプログラムを読み出しプロセッサ３ａに出力するリーダの一例である。読取部３ｆは、記録媒体３ｈを接続又は挿入可能な接続端子又は装置を含んでもよい。読取部３ｆとしては、例えばＵＳＢ（Universal Serial Bus）等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、ＳＤカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体３ｈにはプログラム３ｇが格納されてもよい。
【００３２】
記録媒体３ｈとしては、例示的に、磁気／光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気／光ディスクとしては、例示的に、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク、ＨＶＤ（Holographic Versatile Disc）等が挙げられる。フラッシュメモリとしては、例示的に、ＵＳＢメモリやＳＤカード等の半導体メモリが挙げられる。なお、ＣＤとしては、例示的に、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ等が挙げられる。また、ＤＶＤとしては、例示的に、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等が挙げられる。
【００３３】
上述したＣＭ３のハードウェア構成は例示である。従って、ＣＭ３内でのハードウェアの増減（例えば任意のブロックの追加や削除）、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
【００３４】
〔１−２〕ＣＭ３の機能構成例
図２は、ＣＭ３の機能構成例の一例を示す図である。図２に示すように、ＣＭ３は、例示的に、キャッシュメモリ３１、メモリ部３２、キャッシュ制御部３３、及びデバイス制御部３４をそなえてよい。なお、キャッシュ制御部３３及びデバイス制御部３４の各機能は、例えば、図１に示すプロセッサ３ａが記憶部３ｃに格納されたプログラム３ｇをメモリ３ｂに展開して実行することにより実現されてよい。
【００３５】
キャッシュメモリ３１は、プロセッサ３ａ（図１参照）と、記憶装置４０との間で転送されるデータ等を記憶する。メモリ部３２は、ＣＭ３の処理に係る種々の情報を記憶してよい。キャッシュメモリ３１及びメモリ部３２は、それぞれ、例えば、図１に示すメモリ３ｂの互いに重複しない記憶領域により実現されてよい。
【００３６】
以下、図３〜図６を参照して、メモリ部３２が記憶する情報について説明する。なお、図３〜図６の説明では、メモリ部３２が記憶する各種の情報（例えば符号３２１〜３２４）を説明に適したリンクやテーブルの形式で例示する。しかしながら、これらの情報はリンクやテーブルの形式に限定されるものではなく、例えば配列、ＤＢ、ビットマップ等の種々の形式又は態様で管理されてよい。
【００３７】
図３に例示するように、空きキャッシュページ管理情報３２１は、キャッシュメモリ３１のキャッシュ資源をキャッシュページ単位で管理する情報の一例である。キャッシュページは、例えば、６５ＫＢ（キロバイト）を１単位として管理されてよい。なお、この例では、６５ＫＢのうち、６４ＫＢは実際のデータであり、１ＫＢはデータのチェックコード等の付加情報であってよい。
【００３８】
空きキャッシュページ管理情報３２１は、空き（未使用）のキャッシュページに対応するキャッシュ制御情報３２２を相互にリンクさせて管理してよい。図３に例示するように、空き（未使用）のキャッシュページがある場合、換言すれば、キャッシュの獲得待ちがない状態では、空きキャッシュページ管理情報３２１には１以上のキャッシュ制御情報３２２が繋がった状態で保持される。
【００３９】
キャッシュ制御情報３２２は、キャッシュ制御用の情報であり、一例として、キャッシュメモリ３１における複数のキャッシュページのそれぞれに対応付けられるＣＢＥ（Cache Bundled Element）と呼ばれる情報要素であってよい。以下、キャッシュ制御情報３２２がＣＢＥであると仮定して説明する。なお、キャッシュ制御情報３２２は、ＣＭ３の起動後等の所定のタイミングで、キャッシュメモリ３１のキャッシュページごとに生成されてよい。
【００４０】
図５に例示するように、キャッシュ制御情報３２２は、「page addr」、「volume no」、「lba」、「nextCBE」、「previousCBE」、及び「writemode」の情報を含んでよい。「page addr」は、当該キャッシュ制御情報３２２が対応付けられた（割り当てられた）キャッシュページのアドレスを示す情報である。「volume no」には、ホスト装置５からＩ／Ｏで要求されたアクセス対象のボリューム（例えば論理ボリューム）のボリューム番号が設定されてよい。「lba」には、ホスト装置５からＩ／Ｏで要求されたアクセス対象のボリュームの論理アドレス（例えばＬＢＡ）の情報が設定されてよい。「volume no」及び「lba」は、当該キャッシュ制御情報３２２のキャッシュページにデータが書き込まれている場合に設定されてよい。
【００４１】
「nextCBE」及び「previousCBE」は、空きキャッシュページ管理情報３２１の各種リンクを構成するためのメンバである。「nextCBE」は後ろに繋がっているＣＢＥを格納してよく、「previousCBE」は前に繋がっているＣＢＥを格納してよい。「前に／後ろに繋がっているＣＢＥを格納する」とは、例えば、当該ＣＢＥを特定するための情報、一例として、ＣＢＥのエントリを示すポインタやＩＤ（Identifier）等の情報を格納することを意味してよい。「writemode」にはＷＢモード／ＷＴモードのいずれかが設定されてよく、これにより、当該キャッシュ制御情報３２２に対応するキャッシュページがＷＢモードで動作しているかＷＴモードで動作しているかを表している。
【００４２】
なお、図４に例示するように、未使用のキャッシュ制御情報３２２がない場合、換言すれば、キャッシュ獲得待ちが発生している状態では、空きキャッシュページ管理情報３２１にはキャッシュ制御情報３２２が存在しなくてよい。
【００４３】
上記の例では、空きのキャッシュページに対応するキャッシュ制御情報３２２が空きキャッシュページ管理情報３２１に設定される場合を説明したが、論理アドレスに割当済のキャッシュ制御情報３２２についても、メモリ部３２に格納されてよい。例えば、論理アドレスに割当中のキャッシュ制御情報３２２は、ＬＲＵ（Least Recently Used）等のキャッシュ置換アルゴリズムの制御用リンク（図示省略）に用いられてもよい。例えば、ＬＲＵのリンクでは、キャッシュページへのアクセスに応じて、対応するキャッシュ制御情報３２２がデステージされ難い位置（順序）となるように「nextCBE」及び「previousCBE」が動的に書き換えられてよい。
【００４４】
図４に例示するように、キャッシュ獲得待ちキュー３２３は、Ｗｒｉｔｅ用のキャッシュページが枯渇している場合、キャッシュページの空きができるまでＷｒｉｔｅ  Ｉ／Ｏの待ち合わせをするための待ちキューである。換言すれば、キャッシュ獲得待ちキュー３２３は、キャッシュメモリ３１のキャッシュ資源の獲得待ちのＩ／Ｏを管理する情報の一例である。以下、キャッシュ獲得待ちキュー３２３を単に「待ちキュー３２３」と表記する場合がある。
【００４５】
待ちキュー３２３は、キャッシュ獲得待ちのＩ／Ｏに対応するＩ／Ｏ制御情報３２４を相互にリンクさせて管理してよい。図４に例示するように、空き（未使用）のキャッシュページがない場合、換言すれば、キャッシュの獲得待ちがある状態では、待ちキュー３２３には１以上のＩ／Ｏ制御情報３２４が繋がった状態で保持される。
【００４６】
Ｉ／Ｏ制御情報３２４は、Ｉ／Ｏ制御用の情報であり、例えば、Ｉ／Ｏに係る種々の情報が設定されてよい。なお、Ｉ／Ｏ制御情報３２４は、ＣＭ３がＩ／Ｏを受け付けたときに獲得（例えばエントリが生成）され、当該Ｉ／Ｏについて処理が完了したときに解放（例えば当該エントリが削除）されてよい。
【００４７】
図６に例示するように、Ｉ／Ｏ制御情報３２４は、「nextWait」、「previousWait」、「volume no」、「lba」、「mode」、及び「writemode」の情報を含んでよい。「nextWait」及び「previousWait」は、待ちキュー３２３を構成するためのメンバである。「nextWait」は後ろに繋がっているＩ／Ｏ制御情報３２４を格納してよく、「previousWait」は前に繋がっているＩ／Ｏ制御情報３２４を格納してよい。「前に／後ろに繋がっているＩ／Ｏ制御情報３２４を格納する」とは、例えば、当該Ｉ／Ｏ制御情報３２４を特定するための情報、一例として、Ｉ／Ｏ制御情報３２４のエントリを示すポインタやＩＤ等の情報を格納することを意味してよい。
【００４８】
「volume no」には、ホスト装置５からＩ／Ｏで要求されたアクセス対象のボリューム（例えば論理ボリューム）のボリューム番号が設定されてよい。「lba」には、ホスト装置５からＩ／Ｏで要求されたアクセス対象のボリュームのＬＢＡの情報が設定されてよい。「mode」には、ホスト装置５からＩ／Ｏで要求されたコマンドの情報が設定されてよい。「writemode」にはＷＢモード／ＷＴモードのいずれかが設定されてよい。
【００４９】
なお、図３に例示するように、未使用のキャッシュ制御情報３２２がある場合、換言すれば、キャッシュ獲得待ちが発生していない状態では、待ちキュー３２３にはＩ／Ｏ制御情報３２４が存在しなくてよい。
【００５０】
以上のように、ＣＭ３は、図３に例示するように、空きキャッシュページ管理情報３２１にキャッシュ制御情報３２２が存在する場合、又は、待ちキュー３２３にＩ／Ｏ制御情報３２４が存在しない場合、キャッシュ獲得待ちがないと判定してよい。
【００５１】
また、ＣＭ３は、図４に例示するように、空きキャッシュページ管理情報３２１にキャッシュ制御情報３２２が存在しない場合、又は、待ちキュー３２３にＩ／Ｏ制御情報３２４が存在する場合、キャッシュ獲得待ちがあると判定してよい。このとき、ＣＭ３は、待ちキュー３２３に存在する（繋がっている）Ｉ／Ｏ制御情報３２４の数を、キャッシュ獲得待ちのＩ／Ｏ数と判定してよい。
【００５２】
図２の説明に戻り、キャッシュ制御部３３は、ホスト装置５からのＩ／Ｏについて、キャッシュメモリ３１に対する種々の制御を行なう。
【００５３】
例えば、キャッシュ制御部３３は、Ｉ／Ｏの受け付け、キャッシュヒット／ミスの判定、キャッシュメモリ３１へのアクセス、メモリ部３２が記憶する情報の更新、動作モード（以下、「キャッシュモード」と表記する場合がある）の判定等の制御を行なってよい。また、キャッシュ制御部３３は、デバイス制御部３４と協働して、キャッシュメモリ３１から記憶装置４０へのキャッシュデータの書出処理を制御してよい。
【００５４】
「書出処理」は、「デステージ」或いは「デステージング」と称されてもよい。なお、Ｉ／Ｏの受け付け、キャッシュヒット／ミスの判定、書出処理は、既知の種々の手法により行なうことが可能であり、その詳細な説明は省略する。
【００５５】
キャッシュ制御部３３は、例示的に、情報管理部３３１、動作モード判定部３３２、及びアクセス部３３３をそなえてよい。
【００５６】
情報管理部３３１は、Ｉ／Ｏの受け付け、キャッシュメモリ３１へのアクセス、動作モードの判定、キャッシュデータの書出処理等に応じて、図３〜図６を参照して説明した空きキャッシュページ管理情報３２１及び待ちキュー３２３の更新を行なう。
【００５７】
動作モード判定部３３２は、Ｗｒｉｔｅ  Ｉ／Ｏの対象となるデータのキャッシュヒット／ミスの状況に応じて、Ｉ／Ｏ単位で、当該データに係るキャッシュメモリ３１に対する動作モードを判定する。
【００５８】
アクセス部３３３は、動作モード判定部３３２が判定した動作モードに従って、Ｗｒｉｔｅ  Ｉ／Ｏに基づく書込処理を行なう。
【００５９】
ここで、図７を参照して、ストレージ装置２の性能モデルとキャッシュモードとの性能面における関係について説明する。なお、「性能モデル」とは、或るタイミングにおけるストレージ装置２のキャッシュヒット／ミスの傾向を表す指標を意味する。各性能モデルにおいて、「Cache Hitモデル」はキャッシュヒットの傾向が強いことを示す。「Cache Missモデル  SSDネック」はキャッシュミスの傾向が強くＳＳＤがボトルネックになっていることを示す。「Cache Missモデル  CPUネック」はキャッシュミスの傾向が強くＣＰＵ３ａがボトルネックになっていることを示す。
【００６０】
図７に例示するように、キャッシュヒットモデルでは、ＷＢモードの方がＷＴモードよりも高速に処理が可能である。
【００６１】
一方、キャッシュミスモデルのＳＳＤネックでは、ＷＢモード及びＷＴモードは同等の性能となる。なお、この場合、キャッシュミスに伴いＣＰＵ３ａの処理負荷が増加するため、性能モデルはＣＰＵネックに遷移しやすい。
【００６２】
キャッシュミスモデルのＣＰＵネックでは、キャッシュの二重化処理が通常よりも遅くなるため、ストレージ装置２の性能を十分に発揮できない場合がある。特に、従来の手法では、性能モデルによらず、キャッシュモードとして基本的にＷＢモードで動作するため、ＨＤＤよりも高速なＳＳＤを用いて処理を行なうＡＦＡのようなストレージ装置２では、ストレージ装置２の最大性能を引き出せない可能性がある。
【００６３】
以上のことから、ストレージ装置２の最大性能を考えた場合、キャッシュメモリ３１の二重化を行なうＷＢモードよりもＷＴモードを使用した方が、無駄な処理が無い分、最大性能を引き出すことが可能なケースがある。
【００６４】
そこで、一実施形態に係る動作モード判定部３３２は、性能モデルによってキャッシュモードを動的に切り替えることで、ストレージ装置２における最大性能を向上させる。
【００６５】
例えば、動作モード判定部３３２は、以下の判定条件に従って、動作モードを判定してよい。
【００６６】
（ａ）キャッシュヒットの場合。
動作モード判定部３３２は、キャッシュヒットしたキャッシュ制御情報３２２に既に設定されている動作モードを選択してよい。
【００６７】
なお、Ｗｒｉｔｅ  Ｉ／Ｏで指定された論理アドレスの範囲によっては、キャッシュページの境界を跨ぐ可能性がある。図８に例示するように、Ｗｒｉｔｅ  Ｉ／Ｏの処理範囲が複数のキャッシュページに亘る場合であって、ＷＢモードで動作しているキャッシュページが存在する場合、動作モード判定部３３２は、全てのキャッシュページについてＷＢモードを選択してよい。キャッシュページの動作モードの判定は、例えばキャッシュ制御情報３２２の「writemode」を参照すればよい。
【００６８】
これにより、１つのＷｒｉｔｅ  Ｉ／Ｏに係るデータのうち、一部分は記憶装置４０及びキャッシュメモリ３１に存在するが（ＷＴモード）、残りの部分はキャッシュメモリ３１に存在する（ＷＢモード）といった状況になるのを回避できる。なお、他の手法として、ＷＢモードのキャッシュページについては書き出し（デステージ）を行ないキャッシュページと記憶装置４０の対象領域との間でデータの整合を取った上で、Ｗｒｉｔｅ  Ｉ／Ｏに係る全キャッシュページをＷＴモードに切り替えてもよい。
【００６９】
（ｂ）キャッシュミスの場合。
キャッシュミスの場合、キャッシュ制御部３３は、Ｗｒｉｔｅ  Ｉ／Ｏのために新規にキャッシュページの獲得を試みる。このとき、動作モード判定部３３２は、空きキャッシュページ管理情報３２１又は待ちキュー３２３を参照し、キャッシュ獲得待ちの状況に応じて、以下のように動作モードを判定してよい。
【００７０】
（ｂ−１）キャッシュ獲得待ちが発生していない場合。
動作モード判定部３３２は、動作モードとしてＷＴモードを選択する。なお、Ｗｒｉｔｅ  Ｉ／Ｏのために獲得したキャッシュページにＷＢモードのキャッシュページが存在する場合、動作モード判定部３３２は、ＷＢモードを選択してよい。或いは、ＷＢモードのキャッシュページについては書き出し（デステージ）を行ない、その後、ＷＴモードに切り替えてもよい。図８を用いて説明したように、Ｗｒｉｔｅ  Ｉ／Ｏの処理範囲が複数のキャッシュページに亘る場合も同様である。
【００７１】
（ｂ−２）キャッシュ獲得待ちが発生している場合。
動作モード判定部３３２は、待ちキュー３２３を参照し、待ちキュー３２３に接続されたＩ／Ｏ制御情報３２４の数をカウントすることで、キャッシュ獲得待ちのＩ／Ｏ数を取得してよい。そして、動作モード判定部３３２は、キャッシュ獲得待ちのＩ／Ｏ数に応じて、以下のように動作モードを判定してよい。
【００７２】
（ｂ−２−１）キャッシュ獲得待ちのＩ／Ｏ数が規定数未満の場合。
ＳＳＤ等の記憶装置４０の処理能力にある程度の余裕がある状態である。換言すれば、プロセッサ３ａがボトルネックとなり、記憶装置４０の処理性能を活かせていない可能性がある。この場合、動作モード判定部３３２は、動作モードとしてＷＴモードを選択してよい。
【００７３】
（ｂ−２−２）キャッシュ獲得待ちのＩ／Ｏ数が規定数以上の場合。
ＳＳＤ等の記憶装置４０への書き出しが滞留している状態である。換言すれば、記憶装置４０がボトルネックとなり、プロセッサ３ａにはある程度の余裕がある状態である。この場合、動作モード判定部３３２は、動作モードとしてＷＢモードを選択してよい。
【００７４】
なお、上記（ｂ−２−１）又は（ｂ−２−２）の場合、既にキャッシュ獲得待ちが発生しているため、情報管理部３３１は、Ｉ／Ｏの受信に応じて確保したＩ／Ｏ制御情報３２４に対して、動作モード判定部３３２が選択したキャッシュモードを設定してよい。そして、情報管理部３３１は、当該Ｉ／Ｏ制御情報３２４を待ちキュー３２３に登録してよい。
【００７５】
キャッシュ制御部３３は、Ｉ／Ｏ制御情報３２４が待ちキュー３２３に登録されると、デバイス制御部３４と協働して、キャッシュデータの記憶装置４０への書出処理（ステージング）を実施してよい。アクセス部３３３は、書出処理（ステージング）によってキャッシュメモリ３１に空きができ、当該Ｉ／Ｏ制御情報３２４が待ちキュー３２３からデキューされる際に、Ｉ／Ｏ制御情報３２４に設定されたキャッシュモードを参照してよい。
【００７６】
このように、Ｗｒｉｔｅ  Ｉ／Ｏが待ちキュー３２３に登録される場合に、当該Ｉ／Ｏの動作モードを示す情報がＩ／Ｏ制御情報３２４に設定され、Ｉ／Ｏ制御情報３２４が待ちキュー３２３に登録される。これにより、アクセス部３３３は、Ｉ／Ｏごとに、当該Ｉ／ＯについてＷＢモード及びＷＴモードのいずれの動作モードで書込処理を行なうことができる。
【００７７】
図２の説明に戻り、デバイス制御部３４は、キャッシュ制御部３３と協働して、デバイス、例えばＤＥ４の記憶装置４０に対するアクセスを制御する。一例として、デバイス制御部３４は、キャッシュメモリ３１から記憶装置４０へのデータの書出処理、及び、記憶装置４０からキャッシュメモリ３１へのデータの読出処理を制御してよい。「読出処理」は、「ステージ」或いは「ステージング」と称されてもよい。
【００７８】
以上のように、情報管理部３３１は、書込要求に関する制御情報を待ちキュー３２３に登録する登録部の一例である。登録部としての情報管理部３３１は、書込要求についてキャッシュミスの場合であって、当該書込要求がキャッシュ獲得待ちとなる場合に、決定した動作モードを示す情報を制御情報に設定してよい。
【００７９】
また、動作モード判定部３３２は、書込要求に係る書込アドレスのキャッシュメモリ３１におけるキャッシュヒット状況に基づいて、当該書込要求に基づく書込処理の動作モードをＷＢモード及びＷＴモードのいずれかに決定する決定部の一例である。
【００８０】
さらに、アクセス部３３３は、決定した動作モードに従って、キャッシュメモリ３１を介して、当該書込要求に基づく書込処理を行なう書込処理部の一例である。
【００８１】
また、キャッシュ制御部３３及びデバイス制御部３４は、書込要求についてキャッシュミスの場合であって、当該書込要求がキャッシュ獲得待ちとなる場合、キャッシュメモリ３１から記憶装置４０へのデータの書出処理を行なう書出処理部の一例である。なお、書出処理部としてのキャッシュ制御部３３及びデバイス制御部３４は、待ちキュー３２３から制御情報を取り出してよい。また、書込処理部としてのアクセス部３３３は、取り出された制御情報に設定された動作モードに従って、当該制御情報が示す書込要求に基づく書込処理を行なってよい。
【００８２】
一実施形態に係るＣＭ３によれば、キャッシュヒット状況に応じて、ＣＭ３或いはストレージ装置２単位ではなくＩ／Ｏ単位で、ＷＢモード及びＷＴモードのいずれかのキャッシュモードを動的に決定することができる。従って、ＣＰＵ３ａの処理負荷を軽減させるように動作モードをＩ／Ｏ単位でＷＴモードに切り替えることができ、ＳＳＤ等の記憶装置４０の性能を活かせるため、ストレージ装置２の性能を向上させることができる。
【００８３】
〔１−３〕動作例
次に、図９及び図１０を参照して、一実施形態に係るストレージシステム１においてＷｒｉｔｅ  Ｉ／Ｏを受信する場合に着目した場合の動作例を説明する。
【００８４】
〔１−３−１〕Ｗｒｉｔｅ  Ｉ／Ｏ受信処理
はじめに、図９を参照して、ＣＭ３によるＷｒｉｔｅ  Ｉ／Ｏの受信処理の動作例を説明する。
【００８５】
キャッシュ制御部３３は、ホスト装置５からのＷｒｉｔｅ  Ｉ／Ｏの受信を待ち受ける（ステップＳ１、ステップＳ１でＮｏ）。Ｗｒｉｔｅ  Ｉ／Ｏを受信すると（ステップＳ１でＹｅｓ）、情報管理部３３１はＩ／Ｏ制御情報３２４を獲得する（ステップＳ２）。なお、Ｉ／Ｏ制御情報３２４の獲得は、初回に限り実施されてもよい。
【００８６】
キャッシュ制御部３３は、Ｗｒｉｔｅ  Ｉ／Ｏについてキャッシュヒット／ミスを判定する（ステップＳ３）。キャッシュヒットの場合（ステップＳ４、ステップＳ４でＹｅｓ）、動作モード判定部３３２は、ヒットしたキャッシュページに対応するキャッシュ制御情報３２２を参照して、動作モードがＷＢモードか否かを判定する（ステップＳ５）。
【００８７】
動作モードがＷＢモードの場合（ステップＳ５でＹｅｓ）、動作モード判定部３３２は、ＷＢモードで動作を行なうと判定する。そして、アクセス部３３３は、ＷＢモードでＷｒｉｔｅ  Ｉ／Ｏを処理し（ステップＳ６）、処理がステップＳ１に移行する。
【００８８】
一方、動作モードがＷＢモードではない場合（ステップＳ５でＮｏ）、動作モード判定部３３２は、Ｗｒｉｔｅ  Ｉ／Ｏで指定された処理範囲にＷＢモードで動作するキャッシュ制御情報３２２が存在するか否かを判定する（ステップＳ７）。
【００８９】
処理範囲にＷＢモードで動作するキャッシュ制御情報３２２が存在する場合（ステップＳ７でＹｅｓ）、処理がステップＳ６に移行し、アクセス部３３３は、ＷＢモードでＷｒｉｔｅ  Ｉ／Ｏを処理する。
【００９０】
一方、処理範囲にＷＢモードで動作するキャッシュ制御情報３２２が存在しない場合（ステップＳ７でＮｏ）、動作モード判定部３３２は、ＷＴモードで動作を行なうと判定する。そして、アクセス部３３３は、ＷＴモードでＷｒｉｔｅ  Ｉ／Ｏを処理し（ステップＳ８）、処理がステップＳ１に移行する。
【００９１】
ステップＳ４において、キャッシュミスの場合（ステップＳ４でＮｏ）、動作モード判定部３３２は、空きキャッシュページ管理情報３２１又は待ちキュー３２３を参照して、キャッシュ獲得待ちが発生しているか否かを判定する（ステップＳ９）。キャッシュ獲得待ちが発生していない場合（ステップＳ９でＮｏ）、処理がステップＳ７に移行する。
【００９２】
一方、キャッシュ獲得待ちが発生している場合（ステップＳ９でＹｅｓ）、動作モード判定部３３２は、待ちキュー３２３に接続されたＩ／Ｏ制御情報３２４の数に基づき、キャッシュ獲得待ちが規定数以上発生しているか否かを判定する（ステップＳ１０）。
【００９３】
キャッシュ獲得待ちが規定数未満の場合（ステップＳ１０でＮｏ）、動作モード判定部３３２は、ステップＳ２で獲得したＩ／Ｏ制御情報３２４にＷＴモードで動作することを設定し、当該Ｉ／Ｏ制御情報３２４を待ちキュー３２３に登録する（ステップＳ１１）。
【００９４】
そして、キャッシュ制御部３３は、書出処理を起動し（ステップＳ１２）、デバイス制御部３４と協働して、書出処理を実施する（ステップＳ１３）。書出処理が完了すると、処理がステップＳ１に移行する。
【００９５】
一方、キャッシュ獲得待ちが規定数以上の場合（ステップＳ１０でＹｅｓ）、動作モード判定部３３２は、Ｉ／Ｏ制御情報３２４にＷＢモードで動作することを設定し、当該Ｉ／Ｏ制御情報３２４を待ちキュー３２３に登録する（ステップＳ１４）。そして、処理がステップＳ１２に移行する。
【００９６】
〔１−３−２〕書出処理
次に、図１０を参照して、ＣＭ３による書出処理の動作例について説明する。なお、書出処理（デステージ）は、Ｉ／Ｏの受付とは非同期に（例えば所定周期で）実施されてよく、また、図９のステップＳ１２において起動されたときに実施されてよい。
【００９７】
キャッシュ制御部３３は、書出対象のキャッシュデータを決定する（ステップＳ２１）。書出対象は、例えばキャッシュ置換アルゴリズム等の既知の手法に従って決定されてよい。
【００９８】
デバイス制御部３４は、キャッシュ制御部３３が決定したキャッシュデータをキャッシュメモリ３１から読み出して記憶装置４０に書き込む（ステップＳ２２）。
【００９９】
記憶装置４０への書き込みが完了すると（ステップＳ２３）、キャッシュ制御部３３は、キャッシュメモリ３１の書き込みが完了したキャッシュページを解放する（ステップＳ２４）。
【０１００】
そして、キャッシュ制御部３３は、キャッシュ獲得待ちになっているＷｒｉｔｅ  Ｉ／Ｏをデキューし（ステップＳ２５）、書出処理が終了する。なお、Ｗｒｉｔｅ  Ｉ／Ｏがデキューされると、アクセス部３３３は、当該Ｗｒｉｔｅ  Ｉ／ＯのＩ／Ｏ制御情報３２４を参照して動作モードを判定（識別）し、判定した動作モードで当該Ｗｒｉｔｅ  Ｉ／Ｏを処理してよい。
【０１０１】
〔２〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【０１０２】
例えば、ＣＭ３において、キャッシュ制御部３３及びデバイス制御部３４の機能は、併合してもよく、それぞれ分割してもよい。また、キャッシュ制御部３３において、情報管理部３３１、動作モード判定部３３２、及びアクセス部３３３の機能は、任意の組み合わせで併合してもよく、それぞれ分割してもよい。
【０１０３】
〔３〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【０１０４】
（付記１）
記憶装置に対する書込要求に係る書込アドレスのキャッシュメモリにおけるキャッシュヒット状況に基づいて、前記書込要求に基づく書込処理の動作モードをライトバックモード及びライトスルーモードのいずれかに決定する決定部と、
決定した動作モードに従って、前記キャッシュメモリを介して、前記書込要求に基づく書込処理を行なう書込処理部と、をそなえる
ことを特徴とする、ストレージ制御装置。
【０１０５】
（付記２）
前記決定部は、前記書込要求についてキャッシュヒットの場合、当該書込要求に基づく書込処理の動作モードをライトバックモードに決定する、
ことを特徴とする、付記１記載のストレージ制御装置。
【０１０６】
（付記３）
前記決定部は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求が存在しない場合、当該書込要求に基づく書込処理の動作モードをライトスルーモードに決定する、
ことを特徴とする、付記１又は付記２記載のストレージ制御装置。
【０１０７】
（付記４）
前記決定部は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求の数が所定数未満である場合、当該書込要求に基づく書込処理の動作モードをライトスルーモードに決定する、
ことを特徴とする、付記１〜３のいずれか１項記載のストレージ制御装置。
【０１０８】
（付記５）
前記決定部は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求の数が所定数以上である場合、当該書込要求に基づく書込処理の動作モードをライトバックモードに決定する、
ことを特徴とする、付記１〜４のいずれか１項記載のストレージ制御装置。
【０１０９】
（付記６）
前記書込要求についてキャッシュミスの場合であって、当該書込要求がキャッシュ獲得待ちとなる場合、前記決定部が決定した動作モードを示す情報を当該書込要求に関する制御情報に設定し、前記制御情報をキャッシュ獲得待ちのキューに登録する登録部、をそなえる、
ことを特徴とする、付記４又は付記５記載のストレージ制御装置。
【０１１０】
（付記７）
前記書込要求についてキャッシュミスの場合であって、当該書込要求がキャッシュ獲得待ちとなる場合、前記キャッシュメモリから前記記憶装置へのデータの書出処理を行ない、キャッシュ獲得待ちの前記キューから制御情報を取り出す書出処理部、をそなえ、
前記書込処理部は、取り出された制御情報に設定された動作モードに従って、当該制御情報が示す書込要求に基づく書込処理を行なう、
ことを特徴とする、付記６記載のストレージ制御装置。
【０１１１】
（付記８）
コンピュータに、
記憶装置に対する書込要求に係る書込アドレスのキャッシュメモリにおけるキャッシュヒット状況に基づいて、前記書込要求に基づく書込処理の動作モードをライトバックモード及びライトスルーモードのいずれかに決定し、
決定した動作モードに従って、前記キャッシュメモリを介して、前記書込要求に基づく書込処理を実行する、
処理を実行させることを特徴とする、制御プログラム。
【０１１２】
（付記９）
前記決定は、前記書込要求についてキャッシュヒットの場合、当該書込要求に基づく書込処理の動作モードをライトバックモードに決定する、
ことを特徴とする、付記８記載の制御プログラム。
【０１１３】
（付記１０）
前記決定は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求が存在しない場合、当該書込要求に基づく書込処理の動作モードをライトスルーモードに決定する、
ことを特徴とする、付記８又は付記９記載の制御プログラム。
【０１１４】
（付記１１）
前記決定は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求の数が所定数未満である場合、当該書込要求に基づく書込処理の動作モードをライトスルーモードに決定する、
ことを特徴とする、付記８〜１０のいずれか１項記載の制御プログラム。
【０１１５】
（付記１２）
前記決定は、前記書込要求についてキャッシュミスの場合であって、キャッシュ獲得待ちの書込要求の数が所定数以上である場合、当該書込要求に基づく書込処理の動作モードをライトバックモードに決定する、
ことを特徴とする、付記８〜１１のいずれか１項記載の制御プログラム。
【０１１６】
（付記１３）
前記コンピュータに、
前記書込要求についてキャッシュミスの場合であって、当該書込要求がキャッシュ獲得待ちとなる場合、決定した動作モードを示す情報を当該書込要求に関する制御情報に設定し、
前記制御情報をキャッシュ獲得待ちのキューに登録する、
処理を実行させることを特徴とする、付記１１又は付記１２記載の制御プログラム。
【０１１７】
（付記１４）
前記コンピュータに、
前記書込要求についてキャッシュミスの場合であって、当該書込要求がキャッシュ獲得待ちとなる場合、前記キャッシュメモリから前記記憶装置へのデータの書出処理を行ない、
キャッシュ獲得待ちの前記キューから制御情報を取り出す、
処理を実行させ、
前記書込処理の実行は、取り出された制御情報に設定された動作モードに従って、当該制御情報が示す書込要求に基づく書込処理を行なう、
ことを特徴とする、付記１３記載の制御プログラム。
【符号の説明】
【０１１８】
１    ストレージシステム
２    ストレージ装置
３    ＣＭ
３１    キャッシュメモリ
３２    メモリ部
３２１    空きキャッシュページ管理情報
３２２    キャッシュ制御情報
３２３    キャッシュ獲得待ちキュー
３２４    Ｉ／Ｏ制御情報
３３    キャッシュ制御部
３３１    情報管理部
３３２    動作モード判定部
３３３    アクセス部
３４    デバイス制御部
４    ＤＥ
４０    記憶装置
５    ホスト装置
【図１】
2018106573.tif 000003
【図２】
2018106573.tif 000004
【図３】
2018106573.tif 000005
【図４】
2018106573.tif 000006
【図５】
2018106573.tif 000007
【図６】
2018106573.tif 000008
【図７】
2018106573.tif 000009
【図８】
2018106573.tif 000010
【図９】
2018106573.tif 000011
【図１０】
2018106573.tif 000012