(57)【要約】【課題】  レベルの異なる複数のＲＡＩＤ装置へのデータのライトバックを、一部のＲＡＩＤ装置に偏ることなく実行する。【解決手段】  ＲＡＩＤ制御装置１内のキャッシュメモリ２に格納されているデータの複数のＲＡＩＤ装置３へのライトバックをＬＲＵ法によって行う手段４と、手段４によって実行されているライトバックの数が少ない装置３を選択して、選択した装置３に対してデータのライトバックを行う手段５とを備える。【選択図】図１
2005293205.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶装置を制御する記憶制御装置において、
該記憶制御装置内のキャッシュメモリに格納されているデータの前記複数の記憶装置へのライトバックをＬＲＵ法によって行うＬＲＵライトバック手段と、
該ＬＲＵライトバック手段によって実行されているライトバックの数が少ない記憶装置を選択して、該選択した記憶装置に対するデータのライトバックを行うライトバックスケジュール処理手段とを備えることを特徴とする記憶制御装置。
【請求項２】
前記記憶制御装置において、
前記複数の記憶装置を、該記憶装置が実行しているライトバックの数によって複数のグループに分割した結果を記憶するライトバックグループ管理手段をさらに備え、
前記ライトバックスケジュール処理手段が、ライトバックグループ管理手段の記憶内容に従ってライトバックの数が少ないグループ内の記憶装置を選択することを特徴とする請求項１記載の記憶制御装置。
【請求項３】
前記記憶制御装置において、
前記複数の記憶装置毎に実行されているライトバックの数を記憶する記憶装置管理手段をさらに備え、
前記ライトバックスケジュール処理手段が、該記憶装置管理手段の記憶内容に従ってライトバックの数が少ない記憶装置を選択することを特徴とする請求項１記載の記憶制御装置。
【請求項４】
前記記憶制御装置において、
該記憶制御装置内のキャッシュメモリの容量を分割して、前記複数の記憶装置に割当てるキャッシュメモリ割当手段と、
該割当てられた容量の内で該キャッシュメモリにデータが格納されていない未使用領域の容量を記憶装置毎に記憶する記憶装置管理手段とをさらに備え、
前記ライトバックスケジュール処理手段が、該記憶装置管理手段の記憶内容に従って該未使用領域の少ない記憶装置を選択することを特徴とする請求項１記載の記憶制御装置。
【請求項５】
前記記憶制御装置において、
前記記憶装置に割当てられたキャッシュメモリの容量の内部に格納されているデータのキューを記憶装置毎に管理するキャッシュメモリ管理手段をさらに備え、
前記ライトバックスケジュール処理手段が、選択した記憶装置のキューにおけるＬＲＵ位置のデータのライトバックを行うことを特徴とする請求項４記載の記憶制御装置。
【請求項６】
自装置内のキャッシュメモリに格納されているデータの複数の外部の記憶装置へのライトバックをＬＲＵ法によって行うＬＲＵライトバック手段と、
該ＬＲＵライトバック手段によって実行されているライトバックの数が少ない記憶装置を選択し、該選択した記憶装置に対するデータのライトバックを行うライトバックスケジュール処理手段とを備える記憶制御装置と、
該記憶制御装置によって制御される複数の記憶装置とによって構成されることを特徴とするデータ記憶システム。
【請求項７】
前記記憶装置が複数のディスクを備えるＲＡＩＤ装置であり、
前記記憶制御装置が該複数のＲＡＩＤ装置を制御するＲＡＩＤ制御装置であることを特徴とする請求項６記載のデータ記憶システム。
【請求項８】
複数の記憶装置を制御する記憶制御方法において、
キャッシュメモリに格納されているデータの前記複数の記憶装置側へのライトバックをＬＲＵ法によって実行し、
該ＬＲＵ法によって実行されているライトバックの数が少ない記憶装置を選択して、該選択した記憶装置に対するデータのライトバックを実行することを特徴とする記憶制御方法。
【請求項９】
複数の記憶装置を制御する計算機によって使用されるプログラムであって、
キャッシュメモリに格納されているデータの前記複数の記憶装置側へのライトバックをＬＲＵ法によって実行する手順と、
該ＬＲＵ法によって実行されているライトバックの数が少ない記憶装置を選択して、該選択した記憶装置に対するデータのライトバックを実行する手順とを計算機に実行させるためのプログラム。
【請求項１０】
複数の記憶装置を制御する計算機によって使用される記憶媒体であって、
キャッシュメモリに格納されているデータの前記複数の記憶装置側へのライトバックをＬＲＵ法によって実行するステップと、
該ＬＲＵ法によって実行されているライトバックの数が少ない記憶装置を選択して、該選択した記憶装置に対するデータのライトバックを実行するステップとを計算機に実行させるプログラムを格納した計算機読出し可能可搬型記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ記憶方式に係り、さらに詳しくはディスクアレイを用いた磁気ディスクシステムに対応して、ホストコンピュータからの指示によってデータのリード／ライトが行われるキャッシュメモリを備えた磁気ディスク制御装置に関する。
【背景技術】
【０００２】
近年、データ記録の不揮発性、大容量性などの特徴を持つ磁気ディスク装置、光ディスク装置などのディスク装置がコンピュータの外部記憶装置として広く用いられている。このような磁気ディスク装置等においてデータの内容を二重化したり、パリティデータなどの冗長な情報を付け加えて記録したりするためのディスク装置としてＲＡＩＤ（リダンダント・アレイ・オブ・インエクスペンシブ・ディスク）装置が用いられている。
【０００３】
このようなＲＡＩＤ装置と、例えばホストコンピュータとの間でのデータの転送を制御するＲＡＩＤ制御装置は大容量のキャッシュメモリを搭載し、そのキャッシュメモリに一時データを保持することによってデータ転送の性能向上を図っている。またこのような制御装置の配下には、扱うべきデータ量の増大に伴って膨大な数の多種多量なＲＡＩＤ装置、すなわちＲＡＩＤ０からＲＡＩＤ５までのレベルのＲＡＩＤ装置が多数接続されて使用される。
【０００４】
図１４はこのようなＲＡＩＤ制御装置におけるキャッシュデータ管理方式の従来例の説明図である。同図においてＲＡＩＤ制御装置のキャッシュメモリ内のデータは、ホストコンピュータによる使用頻度の最も高いＭＲＵの位置のデータから、最も使用頻度の低いＬＲＵの位置のデータまで、例えばリンクを用いて並べられ、ホストコンピュータからのアクセスがあった場合にはキャッシュヒットしたものとして、最も使用頻度の高いデータとしてＭＲＵの位置に接続される。
【０００５】
図１４においてホストコンピュータからキャッシュメモリに書き込まれたデータに対してはライトバック、すなわち非同期でのディスク装置への書き出しが行われる。このＲＡＩＤ装置（ディスク）へのデータのライトバックは、データ記憶システムとしての全体的な性能を考慮して、ＬＲＵ法によってアクセス頻度の低いデータ、すなわちＬＲＵの位置のデータから実行される。
【０００６】
しかしキャッシュメモリからＲＡＩＤ装置（ディスク）への書き出し性能は、ＲＡＩＤタイプ（レベル）によって異なる。すなわちデータを複数のディスク装置に分散して書き込むＲＡＩＤ０＋１、ＲＡＩＤ５では複数のディスクが並列に動作するためにスループット性能が高く、逆に２台のディスク装置にそれぞれ同じ内容のデータを書き込むＲＡＩＤ１ではディスクの性能以上の能力が出せないため、スループット性能が低くなることになる。
【０００７】
このようにライトバック性能が異なる複数のＲＡＩＤ装置に書き込むべきデータを１つのキャッシュメモリを介するデータ転送という形式で管理する場合、ライトバック性能が悪いＲＡＩＤ１の装置へのライトデータがキャッシュメモリ上で滞留しやすくなる。キャッシュメモリがそのような滞留データで埋め尽くされてしまうと、それ以降はＲＡＩＤ１のディスク装置へのライトバック性能に引きずられ、スループット性能が良いＲＡＩＤ０＋１、ＲＡＩＤ５に対するアクセスにおいても性能低下が起こるという問題点があった。
【０００８】
このようなＲＡＩＤデータ記憶システムに関する従来技術として次のような文献がある。
【特許文献１】特開平１１−２８８３８７号公報  「ディスクキャッシュ装置」
【特許文献２】特開２００３−１９６０３２号公報  「ストレージ装置のライトキャッシュ制御方法及びストレージ装置」
【０００９】
特許文献１では、ディスクキャッシュ機能の最適化を図るために、例えばＲＡＩＤ５の動作でもディスクリードを必要とせずにパリティを計算できるＲＡＩＤ３的なアクセスを可能とするように、キャッシュブロック上に有効データを準備しておくディスクキャッシュ装置が開示されている。
【００１０】
特許文献２には、ライトバックキャッシュ方式のストレージ装置において、ホスト装置から指定される書込み対象のアドレスが連続していない場合でも、シーケンシャルなデータの書き出しをもれなく実行することができるライトキャッシュ制御方法を用いてスループットを改善する技術が開示されている。
【００１１】
しかしながらこのような従来技術においても、ＲＡＩＤ装置として各種のレベルの装置が混在する場合に、ライトバック性能が悪いＲＡＩＤ装置の性能に引きずられてデータ記憶システムとしての全体的性能が低下するという問題点を解決することができない。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明の課題は、上述の問題点に鑑み、レベルが異なる複数のＲＡＩＤ装置がＲＡＩＤ制御装置の配下に存在する場合にも、できるだけ多くのＲＡＩＤ装置へのライトバックをスケジュール可能とすることによって、データ記憶システムとしての全体的な性能を向上させることである。
【課題を解決するための手段】
【００１３】
図１は本発明の記憶制御装置、例えばＲＡＩＤ制御装置の原理構成ブロック図である。同図において記憶制御装置１はキャッシュメモリ２を備え、複数の記憶装置３、例えばＲＡＩＤ装置を制御するものであり、基本的構成要素としてＬＲＵライトバック手段４とライトバックスケジュール処理手段５とを少なくとも備える。
【００１４】
ＬＲＵライトバック手段４は、記憶制御装置１の内部のキャッシュメモリ２に格納されているデータの複数の記憶装置３側へのライトバックを、ＬＲＵ法（アルゴリズム）によって行うものであり、ライトバックスケジュール処理手段５はＬＲＵライトバック手段４によって実行されているライトバックの数が少ない記憶装置３を選択して、選択した記憶装置３に対するデータのライトバックを行うものである。
【００１５】
発明の実施の形態においては記憶制御装置１が、複数の記憶装置３をその記憶装置３が実行しているライトバックの数によって複数のグループに分割した結果を記憶するライトバックグループ管理手段、例えばライトバックグループ管理テーブルをさらに備え、ライトバックスケジュール処理手段５がライトバックグループ管理手段の記憶内容に従ってライトバックの数が少ないグループ内の記憶装置３を選択することもできる。
【００１６】
また実施の形態においては、複数の記憶装置３毎に実行されているライトバックの数を記憶する記憶装置管理手段、例えばＲＡＩＤ装置毎の管理テーブルをさらに備え、ライトバックスケジュール処理手段５が記憶装置管理手段の記憶内容にしたがってライトバックの数が少ない記憶装置３を選択することもできる。
【００１７】
さらに実施の形態においては、記憶制御装置内のキャッシュメモリの容量を分割して、複数の記憶装置３に割当てるキャッシュメモリ割当手段と、割当てられた容量の内でキャッシュメモリにデータが格納されていない未使用領域の容量を記憶装置毎に記憶する記憶装置管理手段、例えばＲＡＩＤ装置毎の管理テーブルとをさらに備え、ライトバックスケジュール処理手段５が記憶装置管理手段の記憶内容にしたがって未使用領域の少ない記憶装置３を選択することもできる。
【００１８】
この場合、記憶装置３に割当てられたキャッシュメモリの容量の内部に格納されているデータのキューを記憶装置３毎に管理するキャッシュメモリ管理手段、例えばキャッシュメモリ管理テーブルをさらに備え、ライトバックスケジュール処理手段５が選択した記憶装置３に対応するキューにおけるＬＲＵの位置のデータのライトバックを行うこともできる。
【００１９】
また発明の実施の形態においては、前述の記憶装置３が複数のディスクを備えるＲＡＩＤ装置であり、記憶制御装置１が複数のＲＡＩＤ装置を制御するＲＡＩＤ制御装置であることもできる。
【００２０】
次に本発明のデータ記憶システムは、自装置内のキャッシュメモリに格納されているデータの複数の記憶装置側へのライトバックＬＲＵ法によって行うＬＲＵライトバック手段と、ＬＲＵライトバック手段によって実行されているライトバックの数が少ない記憶装置を選択し、選択した記憶装置に対するデータのライトバックを行うライトバックスケジュール処理手段とを備える記憶制御装置と、その記憶制御装置によって制御される複数の記憶装置とによって構成される。
【００２１】
本発明の記憶制御方法におていは、記憶制御装置内のキャッシュメモリに格納されているデータの複数の記憶装置側へのライトバックをＬＲＵ法によって実行し、ＬＲＵ法によって実行されているライトバックの数が少ない記憶装置を選択して、選択した記憶装置に対するデータのライトバックを実行する方法が用いられる。
【００２２】
またこの方法を計算機によって実行するためのプログラム、およびそのプログラムを格納した計算機読出し可能可搬型記憶媒体が用いられる。
以上のように本発明によれば、まず記憶制御装置、たとえばＲＡＩＤ制御装置内のキャッシュメモリを複数の記憶装置、例えばＲＡＩＤ装置に対応して分割して割当てることによって、キャッシュメモリの内部がスループット性能の悪い記憶装置に掃き出すべきデータで埋め尽くされることが防止される。
【００２３】
またこのＲＡＩＤ装置毎に割当てられたキャッシュメモリ容量の内で未使用のメモリ容量を管理し、未使用領域が少ないＲＡＩＤ装置に対するライトバックを実行することによって、キャッシュメモリの空き容量を確保することができる。
【００２４】
さらにＲＡＩＤ装置毎にライトバックの実行数を管理するとともに、ライトバックの実行数によってＲＡＩＤ装置をグループ化することによって、ライトバック実行数の少ないＲＡＩＤ装置の検索が容易となり、多くのＲＡＩＤ装置に対してライトバックをスケジュールすることが可能となる。
【発明の効果】
【００２５】
本発明によれば、ＲＡＩＤ制御装置の配下にＲＡＩＤタイプ（レベル）の異なる複数のＲＡＩＤ装置が存在する場合にも、ライトバック性能が悪いＲＡＩＤ装置による性能低下を防止し、データ記憶システムとしての全体性能を向上させることが可能となり、ＲＡＩＤ記憶装置システムにおける性能向上に寄与するところが大きい。
【発明を実施するための最良の形態】
【００２６】
図２は本発明のＲＡＩＤ制御装置が用いられるデータ記憶システム全体構成ブロック図である。同図においてシステムはＲＡＩＤ制御装置１０、ホストコンピュータ（サーバ）１１、および複数のＲＡＩＤ装置１２によって構成されている。
【００２７】
ＲＡＩＤ制御装置１０は、ホストコンピュータ１１側との間のデータ転送を制御するためのチャネルアダプタ１３、ＲＡＩＤ装置１２との間でデータ転送を制御するデバイスアダプタ１４、およびＲＡＩＤ制御装置１０の全体を制御する中央制御部１５を備えている。
【００２８】
中央制御部１５は、ホストコンピュータ１１とＲＡＩＤ装置１２との間で転送が行われるデータを一時的に保持するキャッシュメモリ１６、各種の制御情報を格納するテーブルとしてのキャッシュメモリ管理テーブル１７、ＲＡＩＤ装置毎の管理テーブル１８、およびライトバックグループ管理テーブル１９を備えている。ここでキャッシュメモリ１６は、例えば２ＧＢの搭載容量を持つものとする。
【００２９】
図２においてＲＡＩＤ装置１２は、ＲＬＵ（レイド・ロジカル・ユニット）＃００からＲＬＵ＃０５までの６台があるものとし、このうちＲＬＵ＃０４、およびＲＬＵ＃０５のレベルはＲＡＩＤ１である。ＲＬＵ＃００とＲＬＵ＃０１とのレベルはＲＡＩＤ５であり、ＲＬＵ＃００はデータ格納用のディスク４台とバリティ格納用の１台のディスクを備え、ＲＬＵ＃０１はデータ格納用の１５台、バリティ格納用の１台のディスクを備えるものとする。ＲＬＵ＃０２、およびＲＬＵ＃０３のレベルはＲＡＩＤ０＋１であり、ＲＬＵ＃０２はデータ格納用の４台、ミラー用の４台のディスクを備え、ＲＬＵ＃０３はデータ格納用の８台とミラー用の８台のディスクを備えるものとする。
【００３０】
本実施形態においては、まずＲＡＩＤ制御装置１０の内部のキャッシュメモリ１６をＲＡＩＤ装置１２のスループット性能に対応して分割し、分割結果を各ＲＡＩＤ装置１２に割り付けることによって、キャッシュメモリ１６がスループット性能の悪いＲＡＩＤ装置にライトバックすべきデータで埋め尽くされることを防止するものとする。図３はこのキャッシュメモリ分割割付処理のフローチャートである。同図において装置の電源がオンされ、装置立上げ処理の開始に伴ってキャッシュメモリ分割処理が初期化処理の１つとして実行される。
【００３１】
図３のステップＳ１においてＲＡＩＤ制御装置１０のキャッシュメモリ容量、ここでは２ＧＢが獲得され、それがキャッシュメモリ管理テーブル１７に設定され、ステップＳ２でＲＡＩＤ制御装置１０内の構成情報が読み込まれ、ステップＳ３でその構成情報からＲＡＩＤ制御装置１０の配下の複数のＲＡＩＤ装置１２に関する情報が獲得される。そしてその情報に対応して複数のＲＡＩＤ装置１２に対してそれぞれステップＳ４からステップＳ９の処理が実行される。
【００３２】
まずステップＳ４で処理を行うべきＲＡＩＤ装置１２に関する情報が存在するか否かが判定され、存在する場合にはステップＳ５でＲＡＩＤタイプ（レベル）とディスクの数が獲得され、ステップＳ６でＲＡＩＤのタイプがＲＡＩＤ５であるか否かが判定され、５である場合にはステップＳ７で割当てるべきキャッシュ容量が６４ＭＢ×ディスク数として計算され、ＲＡＩＤ５でない場合には、ステップＳ８で１２８ＭＢ×ディスク数としてキャッシュ容量が計算された後に、ステップＳ９でそのＲＡＩＤ装置毎の管理テーブル１８に求められたキャッシュ容量が設定されて、ステップＳ４以降の処理が繰り返される。全てのＲＡＩＤ装置１２に対する処理が終了した時点でキャッシュメモリ分割処理を終了する。
【００３３】
図４はキャッシュメモリ使用時処理のフローチャートである。同図は、例えば図２のＲＡＩＤ制御装置１０の内部のキャッシュメモリ１６に、ホストコンピュータ１１側からデータが格納される場合の制御情報（テーブル）を利用した処理のフローチャートである。
【００３４】
図４において処理が開始されると、まずステップＳ１１で図２のキャッシュメモリ管理テーブル１７からキャッシュメモリ１６内の未使用のキャッシュメモリ容量が獲得され、ステップＳ１２で未使用のキャッシュメモリ、すなわちデータを格納できるキャッシュメモリの容量があるか否かが判定され、ない場合には直ちに処理を終了する。
【００３５】
未使用のキャッシュメモリがある場合には、ステップＳ１３でＲＡＩＤ装置毎の管理テーブル１８から未使用のキャッシュメモリ容量が獲得される。この処理では、図３においてそれぞれのＲＡＩＤ装置１２に対して設定されたキャッシュ容量、例えばアドレスによって指定されるキャッシュ容量に対応して、データを格納すべきアドレスに対応するＲＡＩＤ装置毎の管理テーブル１８から未使用のキャッシュメモリ容量が獲得されるが、次のステップＳ１４でそのアドレスに対応するＲＡＩＤ装置毎の管理テーブル１８において未使用のキャッシュメモリがあるか否かが判定され、未使用のキャッシュメモリがない、すなわちそのアドレスにデータが格納できない場合にも直ちに処理を終了する。
【００３６】
ステップＳ１４で未使用のキャッシュメモリがある場合には、ステップＳ１５でその未使用のキャッシュメモリに、例えばデータが格納されるとともにそのキャッシュメモリを使用中状態とする処理が行われ、ステップＳ１６でキャッシュメモリ管理テーブル１７の未使用キャッシュメモリ容量から使用中状態とされた容量が減算され、ステップＳ１７でＲＡＩＤ装置毎の管理テーブル１８に格納されている未使用キャッシュメモリ容量、すなわちそのＲＡＩＤ装置１２に割当てられたキャッシュメモリ容量の中で使用されていないキャッシュメモリ容量から使用中状態とされた容量が減算されて処理を終了する。なおＲＡＩＤ装置毎の管理テーブルの具体的な内容についてはさらに図６で後述する。
【００３７】
図５はキャッシュメモリ解放時のフローチャートである。この処理は、例えばキャッシュメモリからデータが削除される場合に実行される処理であり、まずステップＳ２１で解放されるキャッシュメモリのアドレスが獲得され、ステップＳ２２でこのキャッシュメモリが未使用状態とされ、例えばキャッシュメモリ管理テーブル１７に格納されている未使用キュー（リンク）にそのアドレスのキャッシュメモリが接続されて解放が行われ、ステップＳ２３でキャッシュメモリ管理テーブル１７の未使用キャッシュメモリ容量に解放された容量が加算され、ステップＳ２４でＲＡＩＤ装置毎の管理テーブル１８内の同じく未使用キャッシュメモリ容量に解放された容量が加算されて処理を終了する。
【００３８】
図６は図２のＲＡＩＤ装置毎の管理テーブル１８とライトバックグループ管理テーブル１９の格納内容の具体例の説明図である。ＲＡＩＤ装置毎の管理テーブル１８は、ＲＬＵ（ＲＡＩＤ  ロジカル・ユニット）管理テーブルとも呼ばれ、各ＲＡＩＤ装置１２、ここではＲＬＵ＃００からＲＬＵ＃４０９５までの全部で４０９６台のＲＡＩＤ装置１２に割当てられたキャッシュメモリのページ数、割当てられたページの中で未使用のページ数としてのページレフト、およびライトバックの実行数がそれぞれのＲＡＩＤ装置１２に対して格納されている。
【００３９】
ライトバックグループ管理テーブル１９は、ライトバックの実行数が同じくらいのＲＡＩＤ装置をグループ化して管理するものであり、ここではグループＡはキャッシュメモリが未使用でライトバックが不必要なＲＡＩＤ装置群、グループＢはキャッシュメモリが使用され、ライトバックの実行数が０のＲＡＩＤ装置群、グループＣはキャッシュメモリが使用され、ライトバックの実行数が１から５までのＲＡＩＤ装置群、グループＤはキャッシュメモリが使用され、ライトバックの実行数が６以上のＲＡＩＤ装置群であり、図６では各グループからリンクによって接続される形式でＲＡＩＤ装置毎の管理テーブル１８が管理される。ここではグループＢ、すなわちＲＬＵ＃０２とＲＬＵ＃４０９５においてライトバックの実行数が少なく、また未使用ページ容量が少ないことからライトバックが必要であることが容易に判定される。
【００４０】
図７は本実施形態におけるライトバック実行処理のフローチャートである。本実施形態では、前述のようにまず通常のＬＲＵ法によるライトバックスケジュールによってライトバックの実行処理が行われた後に、ライトバックの実行数の少ないＲＡＩＤ装置がチェックされ、ＲＡＩＤ装置単位にさらにライトバックスケジュールが実行されるが、図７のライトバック実行処理は、通常のＬＲＵ法によるライトバックにおいても、またＲＡＩＤ装置単位のライトバックにおいても同様に用いられるものである。
【００４１】
図７において処理が開始されると、まずステップＳ３１でライトバック対象のキャッシュデータが獲得され、ステップＳ３２で図２のデバイスアダプタ１４に対してライトバックデータのキャッシュアドレスが通知され、ステップＳ３３でそのデータのライトバックが指示される。そしてステップＳ３４でライトバックすべきキャッシュデータに対応するＲＬＵの番号からＲＡＩＤ装置毎の管理テーブル１８が求められ、ステップＳ３５でそのテーブルのライトバック実行数に１が加算され、ステップＳ３６で加算された実行数に対応してライトバックグループ管理テーブル１９におけるグループが求められる。
【００４２】
続いてステップＳ３７でライトバック実行数に１を加算した結果、ＲＡＩＤ装置１２が現在のグループと同一グループに留まっているか否かが判定され、同一グループである場合には直ちに処理を終了し、グループの変更を行うべき場合には、ステップＳ３８で現在のグループからそのＲＡＩＤ装置毎の管理テーブル１８が切断され、ステップＳ３９でその管理テーブル１８が新しいグループに接続されて処理を終了する。
【００４３】
図８は、図２のデバイスアダプタ１４からライトバックの実行処理が完了したことを示す通知を受信した後に行われるライトバック完了処理のフローチャートである。実際にはキャッシュメモリ１６からＲＡＩＤ装置１２へのデータのライトバックにはかなりの時間を要するため、図７においてデバイスアダプタ１４にデータのライトバックが指示されてから、図８のライトバック完了処理が開始されるまでには、かなりの時間が必要となる。
【００４４】
図８のステップＳ４１でライトバック対象のキャッシュデータが獲得され、ステップＳ４２でそのライトバックデータがＲＡＩＤ装置毎のキャッシュデータのキューから切断される。このＲＡＩＤ装置毎のキャッシュデータのキューは図９に示される。
【００４５】
図９においてＭＲＵの位置、すなわち最も使用頻度の高いデータからＬＲＵの位置、すなわち最も使用頻度の低いデータまでのそれぞれのデータに対してＲＡＩＤ装置毎のキュー（リンク）が張られている。同図において実線の矢印は、ＲＡＩＤ１のＲＡＩＤ装置のデータのリンク、一点鎖線は、ＲＡＩＤ５の装置のデータのリンク、点線はＲＡＩＤ０＋１の装置のデータのリンク（それぞれ双方向）を示し、上向きの矢印は、キューの先頭側のキャッシュデータを示し、その矢印をプリビアスポインタと呼び、下の矢印は末尾側のキャッシュデータを示し、その矢印をネクストポインタと呼ぶことにする。なお、図２では各タイプのＲＡＩＤ装置が２台ずつ存在するため、それぞれの装置に対応して、例えば実線のキュー（リンク）は２本張られることになる。
【００４６】
図８のステップＳ４２でライトバックデータがキューから切断された後に、ステップＳ４３でライトバックが行われたキャッシュデータに対応するＲＬＵ番号からＲＡＩＤ装置毎の管理テーブル１８が求められ、ステップＳ４４でその管理テーブル１８内のライトバック実行数がデクリメントされ、ステップＳ４４でデクリメントされた結果のライトバック実行数からライトバックグループ管理テーブル１９におけるグループが図７のステップＳ３６と同様に求められ、その後ステップＳ４６からＳ４８で図７のステップＳ３７からＳ３９と同様の処理が実行されて処理を終了する。
【００４７】
図１０、および図１１は、このＲＡＩＤ装置毎のキューの管理処理のフローチャートであり、図１０はキュー接続処理のフローチャート、図１１はキュー切断処理のフローチャートである。図１０のキュー接続処理が開始されると、まずステップＳ５１でキューのＭＲＵポインタが獲得され、ステップＳ５２でこのポインタが存在したか否かが判定され、存在している場合にはキャッシュデータがあることになり、ステップＳ５３でＭＲＵポインタの示すキャッシュデータの前に今回新たなキャッシュデータを接続するためにプリビアスポインタを新たなキャッシュデータのアドレスにセットし、ステップＳ５４で現在のＭＲＵポインタの示すキャッシュデータを今回接続すべきキャッシュデータの後にするために、ネクストポインタとして現在のＭＲＵポインタが示すキャッシュデータのアドレスをセットし、ステップＳ５５でＭＲＵポインタとして今回接続すべきキャッシュデータのアドレスをセットして処理を終了する。
【００４８】
ステップＳ５２でＭＲＵポインタが存在しないと判定された時には、キャッシュデータが存在していないことになり、ステップＳ５６で今回接続すべきキャッシュデータの前後にキャッシュデータがない状態を示すためにネクストポインタ、プリビアスポインタそれぞれにＮＵＬＬ（終端）をセットし、ステップＳ５７でＭＲＵ、ＬＲＵポインタのそれぞれに今回接続すべきキャッシュデータのアドレスをセットして処理を終了する。
【００４９】
図１１はＲＡＩＤキューからのデータの切断処理のフローチャートである。同図において処理が開始されると、ステップＳ６１で今回切断すべきキャッシュデータの前後のキャッシュデータがリンクによって接続され、ステップＳ６２でＭＲＵポインタが獲得され、ステップＳ６３でＭＲＵポインタが指すキャッシュデータが今回切断すべきキャッシュデータであるか否かが判定され、そのキャッシュデータである場合にはＭＲＵポインタが今回切断すべきキャッシュデータの後のキャッシュデータを指すように修正された後に、切断すべきキャッシュデータでない場合には直ちに、ステップＳ６５でＬＲＵポインタが指すキャッシュデータが切断すべきキャッシュデータであるか否かが判定され、そうである場合にはステップＳ６６でＬＲＵポインタが今回切断すべきキャッシュデータの前のキャッシュデータを指すように更新された後に、切断すべきキャッシュデータでない場合には直ちに処理を終了する。
【００５０】
図１２は本実施形態におけるライトバックスケジュール処理の詳細フローチャートである。同図においてまずステップＳ７１からステップＳ７３で、通常のＬＲＵ法によるライトバックスケジュール処理が実行される。この処理ではまずステップＳ７１でＬＲＵキュー、すなわち図１４の形式のキューの最後尾から最も使用頻度の低いデータが検索され、ステップＳ７２でそのデータがライトバック対象のデータとして獲得され、ステップＳ７３でそのデータに対するライトバック実行処理が行われる。この処理は図７で説明したものである。
【００５１】
続いてステップＳ７４からステップＳ７８でＲＡＩＤ装置単位のライトバックスケジュール処理が実行される。まずステップＳ７４でライトバック数の少ないグループが選択され、ステップＳ７５でライトバック数がＲＡＩＤ装置毎にチェックされ、ライトバック数が少ないＲＡＩＤ装置がない場合には直ちに処理を終了する。ライトバック数が少ないＲＡＩＤ装置がある場合にはステップＳ７６で空きキャッシュメモリ、すなわち図２のＲＡＩＤ制御装置のキャッシュメモリ１６の中でライトバック数が少ないＲＡＩＤ装置１２に割当てられている領域の内で空き領域があるか否かが判定され、空き領域がある場合にはライトバックをそれ以上行う必要がないものとして処理を終了する。
【００５２】
空きキャッシュメモリがない場合には、ステップＳ７７で該当するＲＡＩＤ装置にライトすべきデータがＲＡＩＤデータキューの最後尾から検索され、ステップＳ７８でそのデータがライトバック対象のデータとして獲得され、ステップＳ７９でライトバック実行処理が行われて処理を終了する。
【００５３】
以上において本発明のＲＡＩＤ制御装置および制御方法についてその詳細を説明したが、このＲＡＩＤ制御装置は当然一般的なコンピュータシステムを基本として構成することが可能である。図１３はそのようなコンピュータシステム、すなわちハードウェア環境の構成ブロック図である。
【００５４】
図１３においてコンピュータシステムは中央処理装置（ＣＰＵ）２０、リードオンメモリ（ＲＯＭ）２１、ランダムアクセスメモリ（ＲＡＭ）２２、通信インタフェース２３、記憶装置２４、入出力装置２５、可搬型記憶媒体の読取り装置２６、およびこれらの全てが接続されたバス２７によって構成されている。
【００５５】
記憶装置２４としてはハードディスク、磁気ディスクなど様々な形式の記憶装置を使用することができ、このような記憶装置２４、またはＲＯＭ２１に図３〜図５、図７、図８、図１０〜図１２などのフローチャートに示されたプログラムや、本発明の特許請求の範囲の請求項９のプログラムなどが格納され、そのようなプログラムがＣＰＵ２０によって実行されることにより、本実施形態における複数のＲＡＩＤ装置へのキャッシュメモリの割当て、ライトバック実行数によるＲＡＩＤ装置のグループ化などが可能となる。
【００５６】
このようなプログラムは、プログラム提供者２８からネットワーク２９、および通信インタフェース２３を介して、例えば記憶装置２４に格納されることも、また市販され、流通している可搬型記憶媒体３０に格納され、読取り装置２６にセットされて、ＣＰＵ２０によって実行されることも可能である。可搬型記憶媒体３０としてはＣＤ−ＲＯＭ、フレキシブルディスク、光ディスク、光磁気ディスク、ＤＶＤなど様々な形式の記憶媒体を使用することができ、このような記憶媒体に格納されたプログラムが読取り装置２６によって読取られることにより、本実施形態におけるすべてのＲＡＩＤ装置に対するまんべんのないライトバックのスケジュールが可能となる。
【００５７】
（付記１）
複数の記憶装置を制御する記憶制御装置において、
該記憶制御装置内のキャッシュメモリに格納されているデータの前記複数の記憶装置へのライトバックをＬＲＵ法によって行うＬＲＵライトバック手段と、
該ＬＲＵライトバック手段によって実行されているライトバックの数が少ない記憶装置を選択して、該選択した記憶装置に対するデータのライトバックを行うライトバックスケジュール処理手段とを備えることを特徴とする記憶制御装置。
【００５８】
（付記２）
前記記憶制御装置において、
前記複数の記憶装置を、該記憶装置が実行しているライトバックの数によって複数のグループに分割した結果を記憶するライトバックグループ管理手段をさらに備え、
前記ライトバックスケジュール処理手段が、ライトバックグループ管理手段の記憶内容に従ってライトバックの数が少ないグループ内の記憶装置を選択することを特徴とする付記１記載の記憶制御装置。
【００５９】
（付記３）
前記記憶制御装置において、
前記複数の記憶装置毎に実行されているライトバックの数を記憶する記憶装置管理手段をさらに備え、
前記ライトバックスケジュール処理手段が、該記憶装置管理手段の記憶内容に従ってライトバックの数が少ない記憶装置を選択することを特徴とする付記１記載の記憶制御装置。
【００６０】
（付記４）
前記記憶制御装置において、
該記憶制御装置内のキャッシュメモリの容量を分割して、前記複数の記憶装置に割当てるキャッシュメモリ割当手段と、
該割当てられた容量の内で該キャッシュメモリにデータが格納されていない未使用領域の容量を記憶装置毎に記憶する記憶装置管理手段とをさらに備え、
前記ライトバックスケジュール処理手段が、該記憶装置管理手段の記憶内容に従って該未使用領域の少ない記憶装置を選択することを特徴とする付記１記載の記憶制御装置。
【００６１】
（付記５）
前記記憶制御装置において、
前記記憶装置に割当てられたキャッシュメモリの容量の内部に格納されているデータのキューを記憶装置毎に管理するキャッシュメモリ管理手段をさらに備え、
前記ライトバックスケジュール処理手段が、選択した記憶装置のキューにおけるＬＲＵ位置のデータのライトバックを行うことを特徴とする付記４記載の記憶制御装置。
【００６２】
（付記６）
自装置内のキャッシュメモリに格納されているデータの複数の外部の記憶装置へのライトバックをＬＲＵ法によって行うＬＲＵライトバック手段と、
該ＬＲＵライトバック手段によって実行されているライトバックの数が少ない記憶装置を選択し、該選択した記憶装置に対するデータのライトバックを行うライトバックスケジュール処理手段とを備える記憶制御装置と、
該記憶制御装置によって制御される複数の記憶装置とによって構成されることを特徴とするデータ記憶システム。
【００６３】
（付記７）
前記記憶装置が複数のディスクを備えるＲＡＩＤ装置であり、
前記記憶制御装置が該複数のＲＡＩＤ装置を制御するＲＡＩＤ制御装置であることを特徴とする付記６記載のデータ記憶システム。
【００６４】
（付記８）
前記記憶制御装置が、前記複数の記憶装置を、該記憶装置が実行しているライトバックの数によって複数のグループに分割した結果を記憶するライトバックグループ管理手段をさらに備え、
前記ライトバックスケジュール処理手段が、ライトバックグループ管理手段の記憶内容に従ってライトバックの数が少ないグループ内の記憶装置を選択することを特徴とする付記６記載のデータ記憶システム。
【００６５】
（付記９）
前記記憶制御装置が、前記複数の記憶装置毎に実行されているライトバックの数を記憶する記憶装置管理手段をさらに備え、
前記ライトバックスケジュール処理手段が、該記憶装置管理手段の記憶内容に従ってライトバックの数が少ない記憶装置を選択することを特徴とする付記６記載のデータ記憶システム。
【００６６】
（付記１０）
前記記憶制御装置が、該記憶制御装置内のキャッシュメモリの容量を分割して、前記複数の記憶装置に割当てるキャッシュメモリ割当手段と、
該割当てられた容量の内で該キャッシュメモリにデータが格納されていない未使用領域の容量を記憶装置毎に記憶する記憶装置管理手段とをさらに備え、
前記ライトバックスケジュール処理手段が、該記憶装置管理手段の記憶内容に従って該未使用領域の少ない記憶装置を選択することを特徴とする付記６記載のデータ記憶システム。
【００６７】
（付記１１）
前記記憶制御装置が、前記記憶装置に割当てられたキャッシュメモリの容量の内部に格納されているデータのキューを記憶装置毎に管理するキャッシュメモリ管理手段をさらに備え、
前記ライトバックスケジュール処理手段が、選択した記憶装置のキューにおけるＬＲＵ位置のデータのライトバックを行うことを特徴とする付記１０記載のデータ記憶システム。
【００６８】
（付記１２）
複数の記憶装置を制御する記憶制御方法において、
キャッシュメモリに格納されているデータの前記複数の記憶装置側へのライトバックをＬＲＵ法によって実行し、
該ＬＲＵ法によって実行されているライトバックの数が少ない記憶装置を選択して、該選択した記憶装置に対するデータのライトバックを実行することを特徴とする記憶制御方法。
【００６９】
（付記１３）
前記記憶制御方法において、
前記複数の記憶装置を、該記憶装置が実行しているライトバックの数によって複数のグループに分割し、
前記記憶装置の選択において、該記憶内容に従ってライトバックの数が少ないグループ内の記憶装置を選択することを特徴とする付記１２記載の記憶制御方法。
【００７０】
（付記１４）
前記記憶制御方法において、
前記複数の記憶装置毎に実行されているライトバックの数を記憶し、
前記記憶装置の選択において、該記憶内容に従ってライトバックの数が少ない記憶装置を選択することを特徴とする付記１２記載の記憶制御方法。
【００７１】
（付記１５）
前記記憶制御方法において、
前記記憶制御装置内のキャッシュメモリの容量を分割して、前記複数の記憶装置に割当て、
該割当てられた容量の内で該キャッシュメモリにデータが格納されていない未使用領域の容量を記憶装置毎に記憶し、
前記記憶装置の選択において、該記憶の内容に従って該未使用領域の少ない記憶装置を選択することを特徴とする付記１２記載の記憶制御方法。
【００７２】
（付記１６）
前記記憶制御方法において、
前記記憶装置に割当てられたキャッシュメモリの容量の内部に格納されているデータのキューを記憶装置毎に管理し、
前記選択した記憶装置のキューにおけるＬＲＵ位置のデータのライトバックを行うことを特徴とする付記１５記載の記憶制御方法。
【００７３】
（付記１７）
複数の記憶装置を制御する計算機によって使用されるプログラムであって、
キャッシュメモリに格納されているデータの前記複数の記憶装置側へのライトバックをＬＲＵ法によって実行する手順と、
該ＬＲＵ法によって実行されているライトバックの数が少ない記憶装置を選択して、該選択した記憶装置に対するデータのライトバックを実行する手順とを計算機に実行させるためのプログラム。
【００７４】
（付記１８）
前記記憶装置の選択において、
前記複数の記憶装置を、該記憶装置が実行しているライトバックの数によって複数のグループに分割した結果を記憶するメモリの記憶内容に従ってライトバックの数が少ないグループ内の記憶装置を選択することを特徴とする付記１７記載のプログラム。
【００７５】
（付記１９）
前記記憶装置の選択において、
前記複数の記憶装置毎に実行されているライトバックの数を記憶するメモリの記憶内容に従ってライトバックの数が少ない記憶装置を選択することを特徴とする付記１７記載のプログラム。
【００７６】
（付記２０）
前記記憶装置の選択において、
前記記憶制御装置内のキャッシュメモリの容量が分割され、前記複数の記憶装置に割当てられた容量の内で該キャッシュメモリにデータが格納されていない未使用領域の容量を記憶装置毎に記憶するメモリの記憶内容に従って該未使用領域の少ない記憶装置を選択することを特徴とする付記１７記載のプログラム。
【００７７】
（付記２１）
前記記憶装置に割当てられたキャッシュメモリの容量の内部に格納されているデータのキューが記憶装置毎に管理され、
前記選択した記憶装置のキューにおけるＬＲＵ位置のデータのライトバックを行うことを特徴とする付記２０記載のプログラム。
【００７８】
（付記２２）
複数の記憶装置を制御する計算機によって使用される記憶媒体であって、
キャッシュメモリに格納されているデータの前記複数の記憶装置側へのライトバックをＬＲＵ法によって実行するステップと、
該ＬＲＵ法によって実行されているライトバックの数が少ない記憶装置を選択して、該選択した記憶装置に対するデータのライトバックを実行するステップとを計算機に実行させるプログラムを格納した計算機読出し可能可搬型記憶媒体。
【００７９】
（付記２３）
前記記憶装置の選択において、
前記複数の記憶装置を、該記憶装置が実行しているライトバックの数によって複数のグループに分割した結果を記憶するメモリの記憶内容に従ってライトバックの数が少ないグループ内の記憶装置を選択することを特徴とする付記２２記載の計算機読出し可能可搬型記憶媒体。
【００８０】
（付記２４）
前記記憶装置の選択において、
前記複数の記憶装置毎に実行されているライトバックの数を記憶するメモリの記憶内容に従ってライトバックの数が少ない記憶装置を選択することを特徴とする付記２２記載の計算機読出し可能可搬型記憶媒体。
【００８１】
（付記２５）
前記記憶装置の選択において、
前記記憶制御装置内のキャッシュメモリの容量が分割され、前記複数の記憶装置に割当てられた容量の内で該キャッシュメモリにデータが格納されていない未使用領域の容量を記憶装置毎に記憶するメモリの記憶内容に従って該未使用領域の少ない記憶装置を選択することを特徴とする付記２２記載の計算機読出し可能可搬型記憶媒体。
【００８２】
（付記２６）
前記記憶装置に割当てられたキャッシュメモリの容量の内部に格納されているデータのキューが記憶装置毎に管理され、
前記選択した記憶装置のキューにおけるＬＲＵ位置のデータのライトバックを行うことを特徴とする付記２５記載の計算機読出し可能可搬型記憶媒体。
【図面の簡単な説明】
【００８３】
【図１】本発明の記憶制御装置の原理構成ブロック図である。
【図２】本実施形態におけるＲＡＩＤデータ記憶システムの全体構成ブロック図である。
【図３】キャッシュメモリ分割処理のフローチャートである。
【図４】キャッシュメモリ使用時処理のフローチャートである。
【図５】キャッシュメモリ解放時処理のフローチャートである。
【図６】ＲＡＩＤ装置のグループ化の説明図である。
【図７】ライトバック実行処理のフローチャートである。
【図８】ライトバック完了処理のフローチャートである。
【図９】キャッシュデータのキュー（リンク）の説明図である。
【図１０】ＲＡＩＤキューへの接続処理のフローチャートである。
【図１１】ＲＡＩＤキューからの切断処理のフローチャートである。
【図１２】ライトバック処理の全体フローチャートである。
【図１３】本発明を実現するためのプログラムのコンピュータへのローディングを説明する図である。
【図１４】ＬＲＵ法によるキャッシュデータ管理の従来例の説明図である。
【符号の説明】
【００８４】
１      記憶制御装置
２      キャッシュメモリ
３      記憶装置
４      ＬＲＵライトバック手段
５      ライトバックスケジュール処理手段
１０      ＲＡＩＤ制御装置
１１      ホストコンピュータ（サーバ）
１２      ＲＡＩＤ装置
１３      チャネルアダプタ
１４      デバイスアダプタ
１５      中央制御部
１６      キャッシュメモリ
１７      キャッシュメモリ管理テーブル
１８      ＲＡＩＤ装置毎の管理テーブル
１９      ライトバックグループ管理テーブル
２０      ＣＰＵ
２１      リード・オンリ・メモリ（ＲＯＭ）
２２      ランダム・アクセス・メモリ（ＲＡＭ）
２３      通信インタフェース
２４      記憶装置
２５  入出力装置
２６  読取装置
２７  バス
２８  プログラム提供者
２９  ネットワーク
３０  可搬型記憶媒体
【図１】
2005293205.tif 000003
【図２】
2005293205.tif 000004
【図３】
2005293205.tif 000005
【図４】
2005293205.tif 000006
【図５】
2005293205.tif 000007
【図６】
2005293205.tif 000008
【図７】
2005293205.tif 000009
【図８】
2005293205.tif 000010
【図９】
2005293205.tif 000011
【図１０】
2005293205.tif 000012
【図１１】
2005293205.tif 000013
【図１２】
2005293205.tif 000014
【図１３】
2005293205.tif 000015
【図１４】
2005293205.tif 000016