(57)【要約】    【課題】作業用のバッファ領域を確保することなく旧データ、旧パリティ、新パリティの格納領域を確実に確保してライトバック処理待ちを解消する。    【解決手段】  ＲＡＩＤ制御部３８は複数のディスク装置を含む物理デバイス２２についてＲＡＩＤ５の冗長構成をとる。キャッシュ制御部４２はディスク装置のストライプに一致するページ単位にデータを処理する。キャッシュ領域配置部４４は、上位装置からライト要求を受けた際に、キャッシュメモリ上に、ストライプ領域と同一サイズとなる複数のページ領域を備えたキャッシュ領域４８を配置する。ライトバック処理部４６は、物理デバイス２２のデータより新しいキャッシュメモリ上の新データを記憶デバイスに書き戻す際に、キャッシュストライプ領域内の空き領域を使用して新パリティデータを生成した後に、新データ及び新パリティを対応する記憶デバイスに書き込む。    【選択図】      図１
2006244122.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリ上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御部と、
複数の記憶デバイス上のデータをそれぞれ前記ページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のストリップ領域をまとめてストライプ領域単位として管理し、前記ストライプ領域に含まれる１つを除く複数のストリップ領域のデータからパリティを生成して残り１つのストリップ領域に格納し、且つアドレス毎に前記パリティを格納する記憶デバイスを変化させるＲＡＩＤ５の冗長構成をとるＲＡＩＤ制御部と、
上位装置からライト要求を受けた際に、前記キャッシュメモリ上に、前記ストライプ領域と同一サイズとなる複数のページ領域で構成したキャッシュ領域を配置するキャッシュ領域配置部と、
前記記憶デバイスのデータより新しい前記キャッシュメモリ上の新データを前記記憶デバイスに書き戻す際に、前記キャッシュ領域内の空き領域を使用して新パリティデータを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理部と、
を備えたことを特徴とする記憶装置。
【請求項２】
請求項１記載の記憶装置に於いて、前記ライトバック処理部は、前記キャッシュ領域を構成する複数のページ領域の１つに新データが存在する場合、空きページ領域をワーク領域に使用して、前記新データに対応する記憶デバイスから旧データ及び旧パリティを読出した後に、前記新データ、旧データ及び旧パリティから新パリティを生成し、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とする記憶装置。
【請求項３】
請求項１記載の記憶装置に於いて、前記ライトバック処理部は、前記キャッシュ領域を構成する複数のページ領域のパリティ対応領域を除く全てのページ領域に新データが存在する場合、空きページ領域をワーク領域に使用して前記複数の新データから新パリティを生成し、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とする記憶装置。
【請求項４】
記憶装置の制御方法に於いて、
キャッシュメモリ上のデータをページ領域単位に管理して前記上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御ステップと、
複数の記憶デバイス上のデータをそれぞれ前記ページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のストリップ領域をまとめてストライプ領域単位に管理し、前記ストライプ領域に含まれる１つを除く複数のストリップ領域のデータからパリティを生成して残り１つのストリップ領域に格納し、且つアドレス毎に前記パリティを格納する記憶デバイスを変化させるＲＡＩＤ５の冗長構成をとるＲＡＩＤ制御ステップと、
上位装置からライト要求を受けた際に、前記キャッシュメモリ上に、前記ストライプ領域と同一サイズとなる複数のページ領域で構成したキャッシュ領域を配置するキャッシュ領域配置ステップと、
前記記憶デバイスのデータより新しい前記キャッシュメモリ上の新データを前記記憶デバイスに書き戻す際に、前記キャッシュ領域内の空き領域を使用して新パリティデータを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理ステップと、
を備えたことを特徴とする記憶装置の制御方法。
【請求項５】
記憶装置のコンピュータに、
キャッシュメモリ上のデータをページ領域単位に管理して前記上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御ステップと、
複数の記憶デバイス上のデータをそれぞれ前記ページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のストリップ領域をまとめてストライプ領域単位に管理し、前記ストライプ領域に含まれる１つを除く複数のストリップ領域のデータからパリティを生成して残り１つのストリップ領域に格納し、且つアドレス毎に前記パリティを格納する記憶デバイスを変化させるＲＡＩＤ５の冗長構成をとるＲＡＩＤ制御ステップと、
上位装置からライト要求を受けた際に、前記キャッシュメモリ上に、前記ストライプ領域と同一サイズとなる複数のページ領域で構成したキャッシュ領域を配置するキャッシュ領域配置ステップと、
前記記憶デバイスのデータより新しい前記キャッシュメモリ上の新データを前記記憶デバイスに書き戻す際に、前記キャッシュ領域内の空き領域を使用して新パリティデータを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理ステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置の記憶デバイスに対する入出力要求をキャッシュメモリを介して処理する記憶装置、その制御方法及びプログラムに関し、特にキャッシュメモリ上で更新された最新のデータを記憶デバイスにライトバックする記憶装置、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来、ホストからの入出力要求を処理するＲＡＩＤ装置にあっては、図１８のように、ＲＡＩＤ装置１００にキャッシュメモリ１０２を設け、キャッシュメモリ１０２上でホストからのディスク装置１０４−１〜１０４−４に対する入出力要求を処理するようにしている。
【０００３】
このようなＲＡＩＤ装置１００のキャッシュデータはページ単位に管理されており、図１９のように、キャッシュページ１０６は例えば６６，５６０バイトを１ページとして管理している。
【０００４】
キャッシュページ１０６はホストのアクセス単位となる複数のブロック単位のユーザデータで構成され、１ブロックのユーザデータは５１２バイトであり、５１２バイト毎に８バイトのブロックチェックコード（ＢＣＣ）が付加され、この５２０バイトのブロックを１２８ブロック単位で１ページとして管理し、このため１ページは５２０×１２８=６６，５６０バイトとなる。
【０００５】
またキャッシュページ１０６を管理するためにキャッシュバンドルエレメントＣＢＥと呼ばれるキャッシュ管理テーブルを用意する。キャッシュ管理テーブルには１ページごとに対応する管理レコードが存在し、管理レコードは論理ユニット番号ＬＵＮ、論理ブロックアドレスＬＢＡ、１ブロックを１ビットで対応したダーティデータをダーティデータビットマップ等を保持している。このキャッシュ管理テーブルの１ページはＲＡＩＤグループを構成する各ディスク装置のストリップ領域のサイズと同一サイズとしている。
【０００６】
ここでＲＡＩＤ装置１００の冗長構成としてＲＡＩＤ５を使用する場合、キャッシュメモリ１０２上にキャッシュデータを格納するキャッシュ領域１０８を設けると共に、キャッシュ領域１０８とは別にライトバック処理の際に新パリティ生成用の作業用域として旧データや旧パリティを格納するデータバッファ領域１１０や新パリティを格納するパリティバッファ領域１１２を設けている。
【０００７】
ライトバック処理は、例えばキャッシュ領域１０８に１ページデータとして存在する新データ（Ｄ２）ｎｅｗについてディスク装置１０４−２に対するライトバック要求が発生した場合、キャッシュメモリ１０２上にデータバッファ領域１１０とパリティバッファ領域１１２を確保してからライトバック処理を進める。ここで、新データ（Ｄ２）はディスク装置の１台に書き込むことから、このライトバック処理をスモールライトという。
【０００８】
スモールライトは、ディスク装置１０４−２から旧データ（Ｄ２）ｏｌｄを読み出してデータバッファ領域１１０に格納すると共にディスク装置１０４−４から旧パリティ（Ｐ）ｏｌｄを読み出して同じくデータバッファ領域１１０に格納する。続いて新データ（Ｄ２）ｎｅｗ、旧データ（Ｄ２）ｏｌｄ及び旧パリティ（Ｐ）ｏｌｄの排他論理和（ＸＯＲ）１１６を計算して新パリティ（Ｐ）ｎｅｗを求めてパリティバッファ領域１１２に格納する。最後に、新データ（Ｄ２）ｎｅｗと新パリティ（Ｐ）ｎｅｗをぞれぞれディスク装置１０４−２，１０４−４に書込んで処理を終了する。
【０００９】
また新データがディスク装置１０４−１〜１０４−３のストリップに対応して全て存在する場合のライトバックはバンドワイドライトといわれ、バンドワイドライトでは、ディスク装置１０４−１〜１０４−３のストリップ領域に対応した全データの排他論理和として新パリティを計算し、ディスク装置１０４−１〜１０４−４に書込んで処理を終了する。
【特許文献１】特開平０５−３０３５２８号公報
【特許文献２】特開平０８−１１５１６９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、このような従来のキャッシュ制御処理にあっては、データバッファ領域やパリティバッファ領域はキャッシュ領域と比較して十分なサイズを確保されているわけではないため、ライトバック要求時にデータバッファ領域やパリティバッファ領域の枯渇が発生した場合、これら領域が空くまで処理が待たされ、ライトバック処理が非常に多くの時間がかかっている。
【００１１】
本発明は、ライトバック時に作業用のバッファ領域を確保することなく旧データ、旧パリティ、新パリティの格納領域を確実に確保してライトバック処理待ちを解消する記憶装置、その制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
図１は本発明の原理説明図である。本発明は記憶装置を提供する。本発明の記憶装置は、
キャッシュメモリ２８上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御部４２と、
複数の記憶デバイス上のデータをそれぞれページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のストリップ領域をまとめてストライプ領域単位に管理し、ストライプ領域に含まれる１つを除く複数のストリップ領域のデータからパリティを生成して残り１つのストリップ領域に格納し、且つアドレス毎にパリティを格納する記憶デバイスを変化させるＲＡＩＤ５の冗長構成をとるＲＡＩＤ制御部３８と、
上位装置からライト要求を受けた際に、キャッシュメモリ２８上に、ストライプ領域と同一サイズとなる複数のページ領域で構成したキャッシュ領域４８を配置するキャッシュ領域配置部４４と、
記憶デバイスのデータより新しいキャッシュメモリ２８上の新データを記憶デバイスに書き戻す際に、キャッシュ領域４８内の空き領域を使用して新パリティデータを生成した後に、新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理部４６と、
を備えたことを特徴とする。
【００１３】
ここで、ライトバック処理部は、キャッシュ領域を構成する複数のページ領域の１つに新データが存在する場合、空きページ領域をワーク領域に使用して、新データに対応する記憶デバイスから旧データ及び旧パリティを読出した後に、新データ、旧データ及び旧パリティから新パリティを生成し、新データ及び新パリティを対応する記憶デバイスに書き込む。
【００１４】
ライトバック処理部は、キャッシュ領域を構成する複数のページ領域のパリティ対応領域を除く全てのページ領域に新データが存在する場合、空きページ領域をワーク領域に使用して複数の新データから新パリティを生成し、新データ及び新パリティを対応する記憶デバイスに書き込む。
【００１５】
ライトバック処理部は、キャッシュ領域を構成する複数のページ領域のパリティ対応領域を除く全てのページ領域に新データが存在すると共にページ領域の新データの一部に空きが存在する場合、ページ領域内の空き部分に対応する記憶デバイスから旧データを読み出して格納した後に、空きページ領域をワーク領域に使用して複数の新データから新パリティを生成し、新データ及び新パリティを対応する記憶デバイスに書き込む。キャッシュ領域配置部はライトバック処理部による書込み終了で対応するキャッシュ領域を開放する。
【００１６】
本発明は、記憶装置の制御方法を提供する。本発明による記憶装置の制御方法は、
キャッシュメモリ上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御ステップと、
複数の記憶デバイス上のデータをそれぞれページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のストリップ領域をまとめてストライプ領域単位に管理し、ストライプ領域に含まれる１つを除く複数のストリップ領域のデータからパリティを生成して残り１つのストリップ領域に格納し、且つアドレス毎にパリティを格納する記憶デバイスを変化させるＲＡＩＤ５の冗長構成をとるＲＡＩＤ制御ステップと、
上位装置からライト要求を受けた際に、キャッシュメモリ上に、ストライプ領域と同一サイズとなる複数のページ領域で構成したキャッシュ領域を配置するキャッシュ領域配置ステップと、
記憶デバイスのデータより新しいキャッシュメモリ上の新データを記憶デバイスに書き戻す際に、キャッシュス領域内の空き領域を使用して新パリティデータを生成した後に、新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理ステップと、
を備える。
【００１７】
本発明は、記憶装置のコンピュータにより実行されるプログラムを提供する。本発明のプログラムは、記憶装置のコンピュータに、
キャッシュメモリ上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御ステップと、
複数の記憶デバイス上のデータをそれぞれページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のストリップ領域をまとめてストライプ領域単位に管理し、ストライプ領域に含まれる１つを除く複数のストリップ領域のデータからパリティを生成して残り１つのストリップ領域に格納し、且つアドレス毎にパリティを格納する記憶デバイスを変化させるＲＡＩＤ５の冗長構成をとるＲＡＩＤ制御ステップと、
上位装置からライト要求を受けた際に、キャッシュメモリ上に、ストライプ領域と同一サイズとなる複数のページ領域で構成されたキャッシュ領域を配置するキャッシュ領域配置ステップと、
記憶デバイスのデータより新しいキャッシュメモリ上の新データを記憶デバイスに書き戻す際に、キャッシュス領域内の空き領域を使用して新パリティデータを生成した後に、新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理ステップと、
を実行させることを特徴とする。
【００１８】
なお、本発明における記憶装置の制御方法及びプログラムの詳細は、本発明の記憶装置の場合と基本的に同じになる。
【発明の効果】
【００１９】
本発明によれば、ＲＡＩＤ５については、ホストからライト要求時に、複数のディスク装置のストリップ領域を１つにまとめた１ストライプ分のキャッシュ領域をキャッシュメモリ上に配置して確保し、このキャッシュ領域をユーザデータと同様に管理する。これによってライトバック時には、新データ以外の配置済みの空きページ領域を作業領域に使用して旧データや旧パリティ、更には新パリティを格納し、これによってライトバック時にキャッシュ領域とは別の作業用のバッファ領域を改めて確保する必要がなくなり、バッファ領域の枯渇によって発生するライトバック処理時間の遅延を解消することができる。
【発明を実施するための最良の形態】
【００２０】
図２は本発明が適用されるＲＡＩＤ装置のハードウェア構成のブロック図であり、大型の装置構成を例にとっている。図２において、ＲＡＩＤ装置１０に対してはフレーム系ホスト１２とＵＮＩＸ（Ｒ）／ＩＡサーバ系のホスト１４が設けられている。
【００２１】
ＲＡＩＤ装置１０内には、ＣＰＵ１５を備えたチャネルアダプタ１６−１，１６−２、制御モジュール１８−１〜１８−ｎ、バックグラウンドルータ２０−１，２０−２、記憶デバイスとして機能するＲＡＩＤ５の冗長構成をとるハードディスクドライブなどのディスク装置２２−１〜２２−４、更にフロントルータ３２−１，３２−２を設けている。
【００２２】
ＲＡＩＤ装置１０は最大構成で制御モジュールを８台実装することができる。チャネルアダプタ１６−１，１６−２はＣＰＵ１５を備え、フレームワーク系のホスト１２を制御モジュール１８−１に接続している。またチャネルアダプタ２６−１，２６−２は、ＵＮＩＸ（Ｒ）／ＩＡサーバ系のホスト１４を制御モジュール１８−１に接続している。
【００２３】
チャネルアダプタ１６−１，１６−２及びチャネルアダプタ２６−１，２６−２は、制御モジュール１８−１に設けた通信部２５からフロントルータ３２−１，３２−２を介して、他の制御モジュール１８−２（図示せず）〜１８−ｎに接続される。
【００２４】
制御モジュール１８−１〜１８−ｎには、制御モジュール１８−１に代表して示すように、ＣＰＵ２４、通信部２５、キャッシュメモリ２８及びデバイスインタフェース３０−１，３０−２が設けられている。
【００２５】
ＣＰＵ２４には、ホスト１２またはホスト１４からのライトコマンドまたはリードコマンドに対する入出力要求をキャッシュメモリ２８上で処理して応答する入出力処理機能に加え、キャッシュメモリ２８の制御と管理、更にキャッシュメモリ２８からバックグラウンドルータ２０−１，２０−２を介して、ディスク装置２２−１〜２２−４に対するキャッシュデータのライトバック、及びディスク装置２２−１〜２２−４からのディスクデータのステージングなどをプログラム制御により行っている。
【００２６】
フロントルータ３２−１，３２−２は、制御モジュール１８−１に対し他の制御モジュール１８−２（図示せず）〜１８−ｎを接続し、制御の多重化を図っている。またバックグラウンドルータ２０−１，２０−２に対しては制御モジュール１８−１〜１８−ｎがそれぞれ接続され、制御モジュール側のＣＰＵ２４によるＲＡＩＤ制御によるデータ入出力処理を行っている。
【００２７】
図３は本発明が適用されるＲＡＩＤ装置の他のハードウェア構成のブロック図であり、図２の大型装置に対し規模の小さな小型あるいは中型装置とした場合を例にとっている。図３において、ＲＡＩＤ装置１０は、ＣＰＵ１５を備えたチャネルアダプタ１６、２重構成の制御モジュール１８−１，１８−２及び、少なくともＲＡＩＤ５の冗長構成をとるディスク装置２２−１〜２２−４を備えている。
【００２８】
制御モジュール１８−１，１８−２には、制御モジュール１８−１に代表して示すように、ＣＰＵ２４、通信部２５、キャッシュメモリ２８及びデバイスインタフェース３０−１，３０−２が設けられている。またＵＮＩＸ（Ｒ）／ＩＡサーバ系のホスト１４は、チャネルアダプタ２６により制御モジュール１８−１に接続される。
【００２９】
この小型及び中型に対応した図３のＲＡＩＤ装置１０は、図２のＲＡＩＤ装置１０からバックグラウンドルータ２０−１，２０−２及びフロントルータ３２−１，３２−２を除いた規模の小さな構成であり、それ以外の構成は基本的に図２と同じである。
【００３０】
図４は本発明によるＲＡＩＤ装置の機能構成のブロック図である。図４において、ＲＡＩＤ装置１０の機能は、制御モジュール１８に設けているＣＰＵ２４のプログラム制御により実現され、制御モジュール１８内に示すように、リソース処理部３４、キャッシュ処理部３６、ＲＡＩＤ制御部３８及びコピー処理部４０を構築している。
【００３１】
キャッシュ処理部３６には、キャッシュ制御部４２、キャッシュ領域配置部４４、キャッシュ管理テーブル４５、ライトバック処理部４６、更にキャッシュメモリ２８が設けられている。
【００３２】
キャッシュメモリ２８には、ホスト１２またはホスト１４からのライト要求を受けた際に配置されてデータを書き込むキャッシュ領域４８、キャッシュ領域４８のキャッシュデータを物理デバイス２２で示すＲＡＩＤ構成のディスク装置に対し書き込むライトバック処理の際に配置されるデータバッファ領域５０及びパリティバッファ領域５２が設けられる。
【００３３】
キャッシュ制御部４２はキャッシュメモリ２８上のデータをページ領域単位に管理し、ホスト１２またはホスト１４の複数のディスク装置でＲＡＩＤグループを構成した物理デバイス２２に対する入出力要求を処理する。
【００３４】
即ちキャッシュ制御部４２は、図５に示すように、キャッシュページ５５としてホスト側のアクセス単位である５１２バイトのユーザデータと８バイトのＢＣＣで構成される５２０バイトのブロックデータを１２８ブロック備えた６６，５６０バイトで１ページを構成している。
【００３５】
このようなキャッシュメモリ２８上のキャッシュページ５５は、キャッシュ管理テーブル４５にページごとに記録されて管理されており、キャッシュ管理テーブル４５におけるデコードは、論理ユニット番号（ＬＵＮ）、論理ブロックアドレス（ＬＢＡ）、ブロックが新データであることを示すことをビットで表わしたダーティデータビットマップ（１２８ビット）などで構成されている。
【００３６】
再び図４を参照するに、ＲＡＩＤ制御部３８は複数のディスク装置でＲＡＩＤグループを構成する物理デバイス２２に対し、本発明にあってはＲＡＩＤ５の冗長構成によるＲＡＩＤ制御を行う。
【００３７】
即ちＲＡＩＤ制御部３８は、図５のディスク装置２２−１〜２２−４に示すように、ディスク装置２２−１〜２２−４上のデータを、それぞれキャッシュメモリ２８におけるキャッシュページ５５と同一サイズのストリップ領域５４−１，５４−２，５４−３，５４−４として管理すると共に、同一アドレスを持つ複数のストリップ領域５４−１〜５４−４をまとめて、ストライプ領域５６として管理している。
【００３８】
ＲＡＩＤ５の冗長構成の場合、例えばストライプ領域５６を例にとると、ディスク装置２２−１〜２２−３のストリップ領域５４−１〜５４−３にはデータＤ１，Ｄ２，Ｄ３が格納され、残りのディスク装置２２−４のストリップ領域５４−４にはパリティＰが格納されている。ＲＡＩＤ５の冗長構成の場合、ストライプ領域５６のアドレスが異なるごとにパリティＰを格納するディスクの位置が変化する。
【００３９】
再び図４を参照するに、キャッシュ処理部３６に設けたキャッシュ領域配置部４４は、ホスト１２または１４からのライト要求を受けた際に、キャッシュメモリ２８上に図５に示したディスク装置２２−１〜２２−４におけるストライプ領域５６と同一サイズとなる複数のページ領域、この例では４ページのページ領域で構成したキャッシュ領域４８を配置する。
【００４０】
更にライトバック処理部４６は、ディスク装置のデータより新しいキャッシュメモリ２８上のキャッシュ領域４８における新データをディスク装置に書き戻す際に、ストライプ領域と同一サイズの配置を行ったキャッシュ領域４８における空きページ領域を使用して新パリティを生成した後に、新データ及び新パリティを対応するディスク装置に書き込む。
【００４１】
このように本発明にあっては、ホスト１２または１４からライト要求を受けた際に、パリティを含めて１ストライプ分のキャッシュメモリ領域を同時にアロケーション（配置）してユーザデータと同様の管理を行う。例えば図５のように、ディスク装置２２−１〜２２−４が４台あって、ＲＡＩＤグループにおけるストリップ領域５４−１〜５４−４が４つある場合、ホストからのライト要求に対し４ストリップ領域で構成される１ストライプ領域分のキャッシュ領域、即ち４ページ分のキャッシュ領域を同時にアロケーションし、パリティ用空きページを除く残り３ページ分のキャッシュ領域の一部もしくは全ページにライト要求データを書き込んで、ユーザデータと同様の管理を行う。
【００４２】
図６は本発明におけるキャッシュライト処理のフローチャートである。図６において、キャッシュライト処理は、ホストからのライト要求に対し、ステップＳ１でライトコマンドを解析し、ステップＳ２でＲＡＩＤ５か否かチェックする。ＲＡＩＤ５であった場合には本発明による処理がステップＳ３から行われる。
【００４３】
ステップＳ３にあっては、ライト要求データの範囲をディスク装置のストリップ単位に丸めたキャッシュページ数を決定する。即ち、ライト要求データが１ページ未満であれば、キャッシュページ数を１とする。またライト要求データのサイズが１．５ページであれば、これを丸めてキャッシュページは２ページとする。
【００４４】
次にステップＳ４でパリティ用の空きページを含むストライプ単位に丸めたキャッシュ領域をアロケーションする。図５のように、ストライプ領域５６が４つのストリップ領域５４−１〜５４−４、即ちキャッシュページ５５を４つ合わせた４ページで構成されている場合には、ステップＳ３で決定されたキャッシュページ数が３以下であれば、１ストライプ分のキャッシュ領域をアロケーションし、例えば４ページであった場合には２ストライプ分のキャッシュ領域をアロケーションする。
【００４５】
続いてステップＳ５で、パリティ用空きページを除いてアロケーションしたキャッシュ領域の先頭ページから要求データをページ単位に書き込む。もちろん、要求データが１ページ未満の場合には先頭ページの先頭位置から格納し、この場合には先頭ページの後ろ側は空き領域となる。
【００４６】
一方、ステップＳ２でＲＡＩＤ５以外のＲＡＩＤ、例えばＲＡＩＤ３やＲＡＩＤ４を判別した場合には、ステップＳ６に進み、ライト要求データに必要なキャッシュページを決定した後、ステップＳ７で決定したキャッシュページをキャッシュ領域にアロケーションし、ステップＳ８で要求データをページ単位に書き込む。即ち、ＲＡＩＤ５以外のライト要求に対してはページ単位のキャッシュ管理を行っている。
【００４７】
図７はＲＡＩＤ５を対象に１ページ未満サイズのライト要求データに対するキャッシュ配置の説明図である。
【００４８】
図７（Ａ）はライト要求データであり、キャッシュ１ページの容量である６６，５６０バイト未満のサイズを持っている。この場合には図７（Ｂ）のように、ライト要求データを丸めてページ数として１ページを決定する。
【００４９】
次に図７（Ｃ）のように、決定したページ数である１ページにつき、ＲＡＩＤ５グループを構成する複数のディスク装置における１ストライプ分、即ち４ページ分のキャッシュ領域をアロケーションする。このアロケーションされたキャッシュ領域６０は、第１ページ６２−１、第２ページ６２−２、第３ページ６２−３及び第４ページ６２−４から構成される。
【００５０】
続いてライト要求データ５８を先頭の第１ページ６２−１に対するキャッシュ書込みを図７（Ｄ）のように行う。このキャッシュ書込み状態において、先頭の第１ページ６２−１は前半にライト要求データ５８が格納され、後半は空き領域となっている。また第２ページ６２−２、第３ページ６２−３はデータ用の空きページであり、最後の第４ページ６２−４はパリティ用の空きページとなっている。もちろん、ストライプのアドレスが異なるとパリティ用空きページの位置は他のページ位置に変化する。
【００５１】
図８は１ページサイズのライト要求データのキャッシュ配置処理の説明図である。図８（Ａ）のライト要求データ６４はキャッシュの１ページに相当する６６，５６０バイトであり、このため図８（Ｂ）のように、ページ数として１ページを決定する。続いて図８（Ｃ）のように、決定したページ数である１ページに対応して１ストライプ分の４ページで構成されるキャッシュ領域６０をアロケーションする。このアロケーション後に、キャッシュ領域６０に対し、図８（Ｄ）のように１ページ分のライト要求データ６４を第１ページ６２−１に格納する。
【００５２】
図９は３ページサイズのライト要求データのキャッシュ配置の説明図である。図９（Ａ）はライト要求データ６６であり、３ページ分のサイズを持っている。このため図９（Ｂ）の決定ページ数として第１ページ、第２ページ、第３ページの３ページが決定される。
【００５３】
続いて図９（Ｃ）で、決定ページ数である３ページに基づき１ストライプ分のキャッシュ領域６０をアロケーションする。アロケーション後に、図９（Ｄ）のように３ページ分のサイズを持つライト要求データ６６をページ分割して、第１ページ６２−１、第２ページ６２−２、第３ページ６２−３に順番に格納する。この場合、空きページは最後の第４ページ６４−４のパリティ用空きページのみとなる。
【００５４】
図１０は４ページサイズのライト要求データのキャッシュ配置の説明図である。図１０（Ａ）は４ページのサイズを持つライト要求データであり、これについて図１０（Ｂ）のようにページ数として４ページが決定される。次に図１０（Ｃ）のように、決定ページ数である４ページのデータにつきパリティページを１ページ追加することを考慮し、２ストライプ分の第１ページ６２−１〜第８ページ６２−８の８ページ分を２つに分けたキャッシュ領域６０をアロケーションする。
【００５５】
このアロケーション後に、図１０（Ｄ）のように、ライト要求データ６８の先頭から３ページ分を最初のストライプ領域の先頭から３ページとなる第１ページ６２−１〜第３ページ６２−３に格納し、第４ページ目６４−４はパリティ用の空きページとする。また４ページ目となるライト要求データについては、別のストライプの第１ページ６２−５に格納する。
【００５６】
この場合、残り３ページである第２ページ６２−６、第３ページ６２−７、第４ページ６４−８は、それぞれデータ用空きページ、パリティ用空きページとなるが、先頭のストライプのパリティ空きページが第４ページ６２−４であったものが、次のストライプについては第３ページ６２−７がパリティ用空きページとなって、パリティの位置がストライプ領域のアドレスごとに変化している。
【００５７】
このようにホスト１２または１４からのライト要求に基づき、図４においてキャッシュメモリ２８にストライプ領域単位に確保されたキャッシュ領域４８に格納されたデータ、即ち物理デバイス２２側のＲＡＩＤグループのディスク装置に格納されているデータより新しいデータであるダーティデータ即ち新データは、キャッシュ制御部４２における例えばＬＲＵ制御などに基づき、物理デバイス２２を構成しているＲＡＩＤグループの複数のディスク装置に対し書き込まれるライトバック処理を受けることになる。
【００５８】
図１１は本発明におけるスモールライトのライトバック処理の説明図である。スモールライトとは、１ストライプ分のキャッシュ領域６０を構成する複数ページの一部に新データが存在する場合である。図１１において、ＲＡＩＤ装置１０のキャッシュメモリ２８には、ライト要求でアロケーションされたキャッシュ領域６０が配置されており、キャッシュ領域６０は第１ページ６２−１、第２ページ６２−２、第３ページ６２−３及び第４ページ６２−４で構成される１ストライプ分の領域となっている。
【００５９】
このようなキャッシュ領域６０には、ライトバック処理を開始する際に、例えば第２ページ６２−２にのみ新データ（Ｄ２）ｎｅｗが存在しており、それ以外の第１ページ６２−１、第３ページ６２−３及び第４ページ６２−４は空きページ領域になっていたとする。
【００６０】
第２ページ６２−２のみに存在する新データ（Ｄ２）ｎｅｗをＲＡＩＤ５グループ７０にライトバックする際には、空きページ領域である第１ページ６２−１、第３ページ６２−３及び第４ページ６２−４をワーク領域として使用する。このため、ライトバック処理の際に、従来のようにキャッシュメモリ２８にデータバッファ領域やパリティバッファ領域を改めてアロケーションする必要はない。
【００６１】
第２ページ６２−２の新データ（Ｄ２）ｎｅｗをライトバックする際には、まず対応するディスク装置２２−２の旧データ（Ｄ２）ｏｌｄを読み出して第１ページ６２−１に格納する。また、ディスク装置２２−４から旧パリティ（Ｐ）ｏｌｄを読み出して第３ページ６２−３に格納する。
【００６２】
次にキャッシュ領域６０上に確保された旧データ（Ｄ２）ｏｌｄ、新データ（Ｄ２）ｎｅｗ及び旧パリティ（Ｐ）ｏｌｄにつき、演算部７２により排他論理和（ＸＯＲ）を演算して新パリティ（Ｐ）ｎｅｗを求め、空きページ領域である第４ページ６２−４に格納する。その後、新データ（Ｄ２）ｎｅｗと新パリティ（Ｐ）ｎｅｗを、ＲＡＩＤ５グループ７０における対応するディスク装置２２−２及び２２−４に格納する。
【００６３】
図１２は本発明におけるバンドワイドライトのライトバック処理の説明図である。バンドワイドライトのライトバック処理は、図１０のＲＡＩＤ装置に設けたキャッシュメモリ２８に示すように、ホストからのライト要求でアロケーションされたキャッシュ領域６０におけるパリティページである例えば第４ページ６２−４を除く他のページの全てに新データが存在している場合である。
【００６４】
即ち、第１ページ６２−２には新データ（Ｄ１）ｎｅｗが存在し、第２ページ６２−２には新データ（Ｄ２）ｎｅｗが存在し、更に第３ページ６２−３には新データ（Ｄ３）ｎｅｗが存在している。このような場合にはＲＡＩＤ５グループ７０からの読出しは不要であり、ライトバックの対象となったキャッシュ領域６０のパリティページを除くページ、即ち第１ページ６２−１、第２ページ６２−２及び第３ページ６２−３に存在する新データ（Ｄ１）ｎｅｗ、（Ｄ２）ｎｅｗ、（Ｄ３）ｎｅｗを対象に、演算部７２で排他論理和（ＸＯＲ）を算出して新パリティ（Ｐ）ｎｅｗを求め、空きページとなっている第４ページ６２−４に格納する。
【００６５】
その後、キャッシュ領域６０の新データ（Ｄ１）ｎｅｗ、（Ｄ２）ｎｅｗ、（Ｄ３）ｎｅｗ及び新パリティ（Ｐ）ｎｅｗを、ＲＡＩＤ５グループ７０を構成するディスク装置２２−１〜２２−４のそれぞれに書き込む。
【００６６】
図１３は本発明におけるリードバンドワイドライトのライトバック処理の説明図である。このリードバンドワイドライトのライトバック処理は、図１３のＲＡＩＤ装置１０のキャッシュメモリ２８にアロケーションしたキャッシュ領域６０の第１ページ６２−１に示すように、新データ（Ｄ１２）ｎｅｗが一部に存在し、空き領域７４を持っている場合である。
【００６７】
この場合には、対応するディスク装置２２−１からデータを読み出して旧データ（Ｄ１１）ｏｌｄとして格納した後、第１ページ６２−１、第２ページ６２−２、第３ページ６２−３の全てのデータについて演算部７２で排他論理和を計算し、新パリティ（Ｐ）ｎｅｗを求めて、空きページとなっている第４ページ６２−４に格納する。
【００６８】
その後、第１ページ６２−１の旧データ（Ｄ１１）ｏｌｄと新データ（Ｄ１２）ｎｅｗを合わせた１ページ分のデータを、対応するディスク装置２２−１に書き込み、第２ページ６２−２、第３ページ６２−３、更に第４ページ６２−４について、新データ（Ｄ２）ｎｅｗ、新データ（Ｄ３）ｎｅｗ及び新パリティ（Ｐ）ｎｅｗを、対応するディスク装置２２−２，２２−３，２２−４のそれぞれに書き込む。
【００６９】
このように図１１のスモールライト、図１２のバンドワイドライト、更に図１３のリードバンドワイドライトのいずれのライトバック処理にあっても、ライトバック対象となったキャッシュ領域６０の空きページを利用して、旧データのディスク装置からの読出し、計算された新パリティの格納ができるため、ライトバック処理の際にキャッシュメモリ２８上にデータバッファ領域やパリティバッファ領域を確保する必要がなく、従来のライトバック処理の際にキャッシュメモリの空き領域が枯渇して、データバッファ領域やパリティバッファ領域が確保できずに、ライトバック処理に非常に多くの時間が掛かる問題を確実に解消することができる。
【００７０】
図１４は本発明によるＲＡＩＤ５のライトバック処理のフローチャートである。このライトバック処理は、ステップＳ１で対象キャッシュ領域の新データの状態を解析し、ステップＳ２で新データは１ページのみに存在するか否かチェックする。１ページのみ即ち１ページ以内の場合には、ステップＳ４でスモールライトのライトバック処理を実行する。
【００７１】
ステップＳ３で新データが複数ページに存在することが判別された場合には、ステップＳ３に進み、複数ページに存在する新データにページ内の空きがあるか否かチェックする。空きがなければ、ステップＳ５でバンドワイドライトのライトバック処理を実行する。
【００７２】
ページ内に空きがあった場合にはステップＳ６に進み、リードバンドワイドライトのライトバック処理を実行する。ステップＳ４，ステップＳ５またはステップＳ６によるライトバック処理が完了すると、ステップＳ７で対象となったキャッシュ領域を開放する。
【００７３】
図１５は図１４ステップＳ４のスモールライトのフローチャートである。スモールライトにあっては、ステップＳ１で新データに対応した旧データをディスク装置から読み出して空きページに格納し、次にステップＳ２で新データに対応したパリティをディスク装置から読み出して空きページに格納する。次にステップＳ３で新データ、旧データ及び旧パリティの排他論理和により新パリティを計算して空きページに格納する。最後にステップＳ４で新データと新パリティを対応するディスク装置に書き込む。
【００７４】
図１６は図１４のステップＳ５のバンドワイドライトのフローチャートである。バンドワイドライトにあっては、ステップＳ１で複数の新データの排他論理和により新パリティを計算して空きパリティ用のページに格納する。そしてステップＳ２で新データ及び新パリティを対応するディスク装置に書き込む。
【００７５】
図１７は図１４のステップＳ６のリードバンドワイドライトのフローチャートである。リードバンドワイドライトは、ステップＳ１で新データの存在するページ内の空き部分にディスク装置からデータを読み出して格納した後、ステップＳ２で複数の新データの排他論理和により新パリティを計算して空きパリティ用のページに格納し、最終的にステップＳ３で新データ及び新パリティを対応するディスク装置に書き込む。
【００７６】
また本発明はＲＡＩＤ装置のＣＰＵ２４で実行されるプログラムを提供するものであり、図６，図１４，図１５，図１６のフローチャートに従った手順でプログラムを実現することができる。
【００７７】
なお本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【００７８】
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
（付記）
（付記１）
キャッシュメモリ上のデータをページ領域単位に管理して上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御部と、
複数の記憶デバイス上のデータをそれぞれ前記ページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のストリップ領域をまとめてストライプ領域単位として管理し、前記ストライプ領域に含まれる１つを除く複数のストリップ領域のデータからパリティを生成して残り１つのストリップ領域に格納し、且つアドレス毎に前記パリティを格納する記憶デバイスを変化させるＲＡＩＤ５の冗長構成をとるＲＡＩＤ制御部と、
上位装置からライト要求を受けた際に、前記キャッシュメモリ上に、前記ストライプ領域と同一サイズとなる複数のページ領域で構成したキャッシュ領域を配置するキャッシュ領域配置部と、
前記記憶デバイスのデータより新しい前記キャッシュメモリ上の新データを前記記憶デバイスに書き戻す際に、前記キャッシュ領域内の空き領域を使用して新パリティデータを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理部と、
を備えたことを特徴とする記憶装置。（１）
【００７９】
（付記２）
付記１記載の記憶装置に於いて、前記ライトバック処理部は、前記キャッシュ領域を構成する複数のページ領域の１つに新データが存在する場合、空きページ領域をワーク領域に使用して、前記新データに対応する記憶デバイスから旧データ及び旧パリティを読出した後に、前記新データ、旧データ及び旧パリティから新パリティを生成し、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とする記憶装置。（２）
【００８０】
（付記３）
付記１記載の記憶装置に於いて、前記ライトバック処理部は、前記キャッシュ領域を構成する複数のページ領域のパリティ対応領域を除く全てのページ領域に新データが存在する場合、空きページ領域をワーク領域に使用して前記複数の新データから新パリティを生成し、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とする記憶装置。（３）
【００８１】
（付記４）
付記１記載の記憶装置に於いて、前記ライトバック処理部は、前記キャッシュ領域を構成する複数のページ領域のパリティ対応領域を除く全てのページ領域に新データが存在すると共に前記ページ領域の新データの一部に空きが存在する場合、前記ページ領域内の空き部分に対応する記憶デバイスから旧データを読み出して格納した後に、空きページ領域をワーク領域に使用して前記複数の新データから新パリティを生成し、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とする記憶装置。
【００８２】
（付記５）
付記１記載の記憶装置に於いて、前記キャッシュ領域配置部は、前記ライトバック処理部による書込み終了で対応するキャッシュ領域を開放することを特徴とする記憶装置。
【００８３】
（付記６）
記憶装置の制御方法に於いて、
キャッシュメモリ上のデータをページ領域単位に管理して前記上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御ステップと、
複数の記憶デバイス上のデータをそれぞれ前記ページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のストリップ領域をまとめてストライプ領域単位に管理し、前記ストライプ領域に含まれる１つを除く複数のストリップ領域のデータからパリティを生成して残り１つのストリップ領域に格納し、且つアドレス毎に前記パリティを格納する記憶デバイスを変化させるＲＡＩＤ５の冗長構成をとるＲＡＩＤ制御ステップと、
上位装置からライト要求を受けた際に、前記キャッシュメモリ上に、前記ストライプ領域と同一サイズとなる複数のページ領域で構成したキャッシュ領域を配置するキャッシュ領域配置ステップと、
前記記憶デバイスのデータより新しい前記キャッシュメモリ上の新データを前記記憶デバイスに書き戻す際に、前記キャッシュ領域内の空き領域を使用して新パリティデータを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理ステップと、
を備えたことを特徴とする記憶装置の制御方法。（４）
【００８４】
（付記７）
付記６記載の記憶装置の制御方法に於いて、前記ライトバック処理ステップは、前記キャッシュ領域を構成する複数のページ領域の１つに新データが存在する場合、空きページ領域をワーク領域に使用して、前記新データに対応する記憶デバイスから旧データ及び旧パリティを読出した後に、前記新データ、旧データ及び旧パリティから新パリティを生成し、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とする記憶装置の制御方法。
【００８５】
（付記８）
付記６記載の記憶装置の制御方法に於いて、前記ライトバック処理ステップは、前記キャッシュ領域を構成する複数のページ領域のパリティ対応領域を除く全てのページ領域に新データが存在する場合、空きページ領域をワーク領域に使用して前記複数の新データから新パリティを生成し、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とする記憶装置の制御方法。
【００８６】
（付記９）
付記６記載の記憶装置の制御方法に於いて、前記ライトバック処理ステップは、前記キャッシュ領域を構成する複数のページ領域のパリティ対応領域を除く全てのページ領域に新データが存在すると共に前記ページ領域の新データの一部に空きが存在する場合、前記ページ領域内の空きステップ分に対応する記憶デバイスから旧データを読み出して格納した後に、空きページ領域をワーク領域に使用して前記複数の新データから新パリティを生成し、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とする記憶装置の制御方法。
【００８７】
（付記１０）
付記６記載の記憶装置の制御方法に於いて、前記キャッシュ領域配置ステップは、前記ライトバック処理ステップによる書込み終了で対応するキャッシュ領域を開放することを特徴とする記憶装置の制御方法。
【００８８】
（付記１１）
記憶装置のコンピュータに、
キャッシュメモリ上のデータをページ領域単位に管理して前記上位装置からの記憶デバイスに対する入出力要求を処理するキャッシュ制御ステップと、
複数の記憶デバイス上のデータをそれぞれ前記ページ領域と同一サイズのストリップ領域単位に管理すると共に、同一アドレスをもつ複数のストリップ領域をまとめてストライプ領域単位に管理し、前記ストライプ領域に含まれる１つを除く複数のストリップ領域のデータからパリティを生成して残り１つのストリップ領域に格納し、且つアドレス毎に前記パリティを格納する記憶デバイスを変化させるＲＡＩＤ５の冗長構成をとるＲＡＩＤ制御ステップと、
上位装置からライト要求を受けた際に、前記キャッシュメモリ上に、前記ストライプ領域と同一サイズとなる複数のページ領域で構成したキャッシュ領域を配置するキャッシュ領域配置ステップと、
前記記憶デバイスのデータより新しい前記キャッシュメモリ上の新データを前記記憶デバイスに書き戻す際に、前記キャッシュ領域内の空き領域を使用して新パリティデータを生成した後に、前記新データ及び新パリティを対応する記憶デバイスに書き込むライトバック処理ステップと、
を実行させることを特徴とするプログラム。（５）
【００８９】
（付記１２）
付記１１記載のプログラムに於いて、前記ライトバック処理ステップは、前記キャッシュ領域を構成する複数のページ領域の１つに新データが存在する場合、空きページ領域をワーク領域に使用して、前記新データに対応する記憶デバイスから旧データ及び旧パリティを読出した後に、前記新データ、旧データ及び旧パリティから新パリティを生成し、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とするプログラム。
【００９０】
（付記１３）
付記１１記載のプログラムに於いて、前記ライトバック処理ステップは、前記キャッシュ領域を構成する複数のページ領域のパリティ対応領域を除く全てのページ領域に新データが存在する場合、空きページ領域をワーク領域に使用して前記複数の新データから新パリティを生成し、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とするプログラム。
【００９１】
（付記１４）
付記１１記載のプログラムに於いて、前記ライトバック処理ステップは、前記キャッシュ領域を構成する複数のページ領域のパリティ対応領域を除く全てのページ領域に新データが存在すると共に前記ページ領域の新データの一部に空きが存在する場合、前記ページ領域内の空きステップ分に対応する記憶デバイスから旧データを読み出して格納した後に、空きページ領域をワーク領域に使用して前記複数の新データから新パリティを生成し、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とするプログラム。
【００９２】
（付記１５）
付記１１記載のプログラムに於いて、前記キャッシュ領域配置ステップは、前記ライトバック処理ステップによる書込み終了で対応するキャッシュ領域を開放することを特徴とするプログラム。
【図面の簡単な説明】
【００９３】
【図１】本発明の原理説明図
【図２】本発明が適用されるＲＡＩＤ装置のハードウェア構成のブロック図
【図３】本発明が適用されるＲＡＩＤ装置の他のハードウェア構成のブロック図
【図４】本発明によるＲＡＩＤ装置の機能構成のブロック図
【図５】キャッシュページとディスク装置のストリップ領域及びストライプ領域の説明図
【図６】本発明におけるキャッシュライト処理のフローチャート
【図７】１ページ未満サイズのライト要求データのキャッシュ配置の説明図
【図８】１ページサイズのライト要求データのキャッシュ配置の説明図
【図９】３ページサイズのライト要求データのキャッシュ配置の説明図
【図１０】４ページのライト要求データのキャッシュ配置の説明図
【図１１】本発明におけるスモールライトのライトバック処理の説明図
【図１２】本発明におけるバンドワイドライトのライトバック処理の説明図
【図１３】本発明におけるリードワイドライトのライトバック処理の説明図
【図１４】本発明におけるＲＡＩＤ５ライトバック処理のフローチャート
【図１５】本発明におけるスモールライトのライトバック処理のフローチャート
【図１６】本発明におけるバンドワイドライトのライトバック処理のフローチャート
【図１７】本発明におけるリードバンドワイドライトのライトバック処理のフローチャート
【図１８】従来装置におけるキャッシュページの説明図
【図１９】従来のライトバック処理の説明図
【符号の説明】
【００９４】
１０：ＲＡＩＤ装置
１２：ホスト（メインフレーム系）
１４：ホスト（ＵＮＩＸ（Ｒ）／ＩＡサーバ系）
１５，２４：ＣＰＵ
１６−１，１６−２，２６，２６−１，２６−２：チャネルアダプタ
１８，１８−１〜１８−ｎ：制御モジュール
２０−１，２０−２：バックグラウンドルータ
２２：物理デバイス
２２−１〜２２−４：ディスク装置
２５：通信部
２８：キャッシュメモリ
３０−１〜３０−８：デバイスインタフェース
３２−１〜３２−４：フロントルータ
３４：リソース処理部
３６：キャッシュ処理部
３８：ＲＡＩＤ制御部
４０：コピー処理部
４２：キャッシュ制御部
４４：キャッシュ領域配置部
４５：キャッシュ管理テーブル
４６：ライトバック処理部
４８，６０：キャッシュ領域
５０：データバッファ領域
５２：パリティバッファ領域
５４−１〜５４−４：ストリップ領域
５５：キャッシュページ
５６：ストライプ領域
５８，６４，６６，６８：ライト要求データ
７０：ＲＡＩＤ５グループ
７２：演算部
７４：空き領域
【図１】
2006244122.tif 000003
【図２】
2006244122.tif 000004
【図３】
2006244122.tif 000005
【図４】
2006244122.tif 000006
【図５】
2006244122.tif 000007
【図６】
2006244122.tif 000008
【図７】
2006244122.tif 000009
【図８】
2006244122.tif 000010
【図９】
2006244122.tif 000011
【図１０】
2006244122.tif 000012
【図１１】
2006244122.tif 000013
【図１２】
2006244122.tif 000014
【図１３】
2006244122.tif 000015
【図１４】
2006244122.tif 000016
【図１５】
2006244122.tif 000017
【図１６】
2006244122.tif 000018
【図１７】
2006244122.tif 000019
【図１８】
2006244122.tif 000020
【図１９】
2006244122.tif 000021
【手続補正書】
【提出日】平成17年6月13日(2005.6.13)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
続いて図９（Ｃ）で、決定ページ数である３ページに基づき１ストライプ分のキャッシュ領域６０をアロケーションする。アロケーション後に、図９（Ｄ）のように３ページ分のサイズを持つライト要求データ６６をページ分割して、第１ページ６２−１、第２ページ６２−２、第３ページ６２−３に順番に格納する。この場合、空きページは最後の第４ページ６２−４のパリティ用空きページのみとなる。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００５５
【補正方法】変更
【補正の内容】
【００５５】
このアロケーション後に、図１０（Ｄ）のように、ライト要求データ６８の先頭から３ページ分を最初のストライプ領域の先頭から３ページとなる第１ページ６２−１〜第３ページ６２−３に格納し、第４ページ目６２−４はパリティ用の空きページとする。また４ページ目となるライト要求データについては、別のストライプの第１ページ６２−５に格納する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００５６
【補正方法】変更
【補正の内容】
【００５６】
この場合、残り３ページである第２ページ６２−６、第３ページ６２−７、第４ページ６２−８は、それぞれデータ用空きページ、パリティ用空きページとなるが、先頭のストライプのパリティ空きページが第４ページ６２−４であったものが、次のストライプについては第３ページ６２−７がパリティ用空きページとなって、パリティの位置がストライプ領域のアドレスごとに変化している。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
図１２は本発明におけるバンドワイドライトのライトバック処理の説明図である。バンドワイドライトのライトバック処理は、図１２のＲＡＩＤ装置に設けたキャッシュメモリ２８に示すように、ホストからのライト要求でアロケーションされたキャッシュ領域６０におけるパリティページである例えば第４ページ６２−４を除く他のページの全てに新データが存在している場合である。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
即ち、第１ページ６２−１には新データ（Ｄ１）ｎｅｗが存在し、第２ページ６２−２には新データ（Ｄ２）ｎｅｗが存在し、更に第３ページ６２−３には新データ（Ｄ３）ｎｅｗが存在している。このような場合にはＲＡＩＤ５グループ７０からの読出しは不要であり、ライトバックの対象となったキャッシュ領域６０のパリティページを除くページ、即ち第１ページ６２−１、第２ページ６２−２及び第３ページ６２−３に存在する新データ（Ｄ１）ｎｅｗ、（Ｄ２）ｎｅｗ、（Ｄ３）ｎｅｗを対象に、演算部７２で排他論理和（ＸＯＲ）を算出して新パリティ（Ｐ）ｎｅｗを求め、空きページとなっている第４ページ６２−４に格納する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００７１
【補正方法】変更
【補正の内容】
【００７１】
ステップＳ２で新データが複数ページに存在することが判別された場合には、ステップＳ３に進み、複数ページに存在する新データにページ内の空きがあるか否かチェックする。空きがなければ、ステップＳ５でバンドワイドライトのライトバック処理を実行する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００８６
【補正方法】変更
【補正の内容】
【００８６】
（付記９）
付記６記載の記憶装置の制御方法に於いて、前記ライトバック処理ステップは、前記キャッシュ領域を構成する複数のページ領域のパリティ対応領域を除く全てのページ領域に新データが存在すると共に前記ページ領域の新データの一部に空きが存在する場合、前記ページ領域内の空き部分に対応する記憶デバイスから旧データを読み出して格納した後に、空きページ領域をワーク領域に使用して前記複数の新データから新パリティを生成し、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とする記憶装置の制御方法。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００９１
【補正方法】変更
【補正の内容】
【００９１】
（付記１４）
付記１１記載のプログラムに於いて、前記ライトバック処理ステップは、前記キャッシュ領域を構成する複数のページ領域のパリティ対応領域を除く全てのページ領域に新データが存在すると共に前記ページ領域の新データの一部に空きが存在する場合、前記ページ領域内の空き部分に対応する記憶デバイスから旧データを読み出して格納した後に、空きページ領域をワーク領域に使用して前記複数の新データから新パリティを生成し、前記新データ及び新パリティを対応する記憶デバイスに書き込むことを特徴とするプログラム。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００９３
【補正方法】変更
【補正の内容】
【００９３】
【図１】本発明の原理説明図
【図２】本発明が適用されるＲＡＩＤ装置のハードウェア構成のブロック図
【図３】本発明が適用されるＲＡＩＤ装置の他のハードウェア構成のブロック図
【図４】本発明によるＲＡＩＤ装置の機能構成のブロック図
【図５】キャッシュページとディスク装置のストリップ領域及びストライプ領域の説明図
【図６】本発明におけるキャッシュライト処理のフローチャート
【図７】１ページ未満サイズのライト要求データのキャッシュ配置の説明図
【図８】１ページサイズのライト要求データのキャッシュ配置の説明図
【図９】３ページサイズのライト要求データのキャッシュ配置の説明図
【図１０】４ページのライト要求データのキャッシュ配置の説明図
【図１１】本発明におけるスモールライトのライトバック処理の説明図
【図１２】本発明におけるバンドワイドライトのライトバック処理の説明図
【図１３】本発明におけるリードワイドライトのライトバック処理の説明図
【図１４】本発明におけるＲＡＩＤ５ライトバック処理のフローチャート
【図１５】本発明におけるスモールライトのライトバック処理のフローチャート
【図１６】本発明におけるバンドワイドライトのライトバック処理のフローチャート
【図１７】本発明におけるリードバンドワイドライトのライトバック処理のフローチャート
【図１８】従来のライトバック処理の説明図
【図１９】従来装置におけるキャッシュページの説明図