(57)【特許請求の範囲】
【請求項１】
パリティグループに含まれる各々データを有する一以上のデータレコードと、前記一以上のデータレコードと同じパリティグループに含まれ、該一以上のデータレコードのデータを復元するために用いられる冗長データを有する、パリティレコードとが格納される、複数のディスク装置と、
キャッシュメモリを有する制御装置とを有し、
前記パリティグループに含まれる一以上のデータレコード及びパリティレコードは、各々異なるディスク装置に格納されており、
前記制御装置は、
該制御装置に接続される処理装置から、データレコードのデータとして前記複数のディスク装置のいずれかに格納されるライトデータを受信し、
前記ライトデータを前記キャッシュメモリに格納し、
ライト処理が終了した旨を前記処理装置に報告し、
ライト処理が終了した旨を報告した後に、前記ライトデータを前記複数のディスク装置のいずれかに格納し、
前記制御装置は更に、前記ライト処理が終了した旨を報告するタイミングとは非同期に、前記ライトデータに対応するデータレコードの旧データが、前記キャッシュメモリに格納されているかを確認し、
前記旧データが、前記キャッシュメモリに格納されていない場合に、該旧データをディスク装置から前記キャッシュメモリにロードすることを特徴とする記憶装置システム。
【請求項２】
パリティグループに含まれる各々データを有する一以上のデータレコードと、前記一以上のデータレコードと同じパリティグループに含まれ、該一以上のデータレコードのデータを復元するために用いられる冗長データを有する、パリティレコードとが格納される、複数のディスク装置と、
キャッシュメモリを有する制御装置とを有し、
前記パリティグループに含まれる一以上のデータレコード及びパリティレコードは、各々異なるディスク装置に格納されており、
前記制御装置は、
該制御装置に接続される処理装置から、データレコードのデータとして前記複数のディスク装置のいずれかに格納されるライトデータを受信し、
前記ライトデータを前記キャッシュメモリに格納し、
ライト処理が終了した旨を前記処理装置に報告し、
ライト処理が終了した旨を報告した後に、前記ライトデータを前記複数のディスク装置のいずれかに格納し、
前記制御装置は更に、
前記ライト処理が終了した旨を報告するタイミングとは非同期に、前記ライトデータに対応するデータレコードと同じパリティグループに含まれるパリティレコードの冗長データを更新するために必要なデータが、前記キャッシュメモリに格納されているか否かを判断し、
前記必要なデータのうち、前記キャッシュメモリに格納されていないデータをディスク装置から前記キャッシュメモリにロードすることを特徴とする記憶装置システム。
【請求項３】
請求項２記載の記憶装置システムにおいて、
前記冗長データを更新するために必要なデータは、前記ライトデータに対応するデータレコードの旧データと、該データレコードと同じパリティグループに含まれるパリティレコードの旧冗長データであることを特徴とする記憶装置システム。
【請求項４】
請求項２記載の記憶装置システムにおいて、
前記冗長データを更新するために必要なデータは、前記ライトデータに対応するデータレコードと同じパリティグループに含まれる他のデータレコードのデータであることを特徴とする記憶装置システム。
【請求項５】
パリティグループに含まれる各々データを有する一以上のデータレコードと、前記一以上のデータレコードと同じパリティグループに含まれ、該一以上のデータレコードのデータを復元するために用いられる冗長データを有する、パリティレコードとが格納される、複数のディスク装置と、
キャッシュメモリを有する制御装置とを有し、
前記パリティグループに含まれる一以上のデータレコード及びパリティレコードは、各々異なるディスク装置に格納されており、
前記制御装置は、
該制御装置に接続される処理装置から、データレコードのデータとして前記複数のディスク装置のいずれかに格納されるライトデータを受信し、
前記ライトデータを前記キャッシュメモリに格納し、
ライト処理が終了した旨を前記処理装置に報告し、
ライト処理が終了した旨を報告した後に、前記ライトデータを前記複数のディスク装置のいずれかに格納し、
前記制御装置は更に、
前記ライトデータを前記複数のディスク装置のいずれかに格納する処理とは非同期に、前記ライトデータが格納されるデータレコードと同じパリティグループに含まれるパリティレコードの冗長データを生成することを特徴とする記憶装置システム。
【請求項６】
パリティグループに含まれる各々データを有する一以上のデータレコードと、前記一以上のデータレコードと同じパリティグループに含まれ、該一以上のデータレコードのデータを復元するために用いられる冗長データを有する、パリティレコードとが格納される、複数のディスク装置と、
キャッシュメモリを有する制御装置とを有し、
前記パリティグループに含まれる一以上のデータレコード及びパリティレコードは、各々異なるディスク装置に格納されており、
前記制御装置は、
該制御装置に接続される処理装置から、データレコードのデータとして前記複数のディスク装置のいずれかに格納されるライトデータを受信し、
前記ライトデータを前記キャッシュメモリに格納し、
ライト処理が終了した旨を前記処理装置に報告し、
ライト処理が終了した旨を報告した後に、前記ライトデータを前記複数のディスク装置のいずれかに格納し、
前記制御装置は更に、ライト処理が終了した旨を報告するタイミングとは非同期に、前記ライトデータが格納されるデータレコードと同じパリティグループに含まれるパリティレコードの冗長データを生成し、
前記冗長データを生成する処理とは非同期に、生成された冗長データを前記複数のディスク装置のいずれかに格納することを特徴とする記憶装置システム。
【請求項７】
データを有するデータレコードと冗長データを有するパリティレコードとが格納される複数のディスク装置と、
キャッシュメモリと、
前記複数のディスク装置と接続される制御装置とを有し、
一以上のデータレコードと一以上のパリティレコードはパリティグループを構成し、
前記パリティグループに含まれるレコードは、各々異なるディスク装置に格納されており、
前記制御装置は、
該制御装置に接続される処理装置から、データレコードのデータとして前記複数のディスク装置のいずれかに格納されるライトデータを受信し、
受信した前記ライトデータを前記キャッシュメモリに格納した後、前記処理装置にライト処理の終了報告を送信し、
前記終了報告の送信とは非同期に、前記ライトデータを前記複数のディスク装置のいずれかに格納し、
前記ライトデータを前記複数のディスク装置のいずれかに格納する処理とは非同期に、前記ライトデータに対応するデータレコードと同じパリティグループに属するパリティレコードの冗長データを前記複数のディスク装置のいずれかに格納することを特徴とする記憶装置システム。
【請求項８】
データを有するデータレコードと冗長データを有するパリティレコードとが格納される複数のディスク装置と、
キャッシュメモリと、
前記複数のディスク装置と接続される制御装置とを有し、
一以上のデータレコードと一以上のパリティレコードはパリティグループを構成し、
前記パリティグループに含まれるレコードは、各々異なるディスク装置に格納されており、
前記制御装置は、
該制御装置に接続される処理装置から、データレコードのデータとして前記複数のディスク装置のいずれかに格納されるライトデータを受信し、
受信した前記ライトデータを前記キャッシュメモリに格納し、更に、前記ライトデータを前記複数のディスク装置のいずれかに格納した後に、前記処理装置にライト処理の終了報告を送信し、
前記ライトデータを前記複数のディスク装置のいずれかに格納する処理とは非同期に、前記ライトデータに対応するデータレコードと同じパリティグループに属するパリティレコードの冗長データを前記複数のディスク装置のいずれかに格納することを特徴とする記憶装置システム。
【請求項９】
データを有する一以上のデータレコードを格納する一以上の第一のディスク装置と、
前記一以上のデータレコードのデータを回復するために用いられる冗長データを有する一以上のパリティレコードが格納される一以上の第二のディスク装置と、
キャッシュメモリと、
制御部とを有する記憶装置システムであって、
前記制御部は、
前記記憶装置システムに接続される処理装置から、ライトデータを有するライト要求を受信し、
前記ライトデータを前記キャッシュメモリに書込み、
前記処理装置にライト処理が終了した旨を示す終了報告を送信し、
前記終了報告の送信後に、
前記冗長データの更新値を生成するために必要なデータが、前記キャッシュメモリに格納されているか否かを判断し、
前記判断結果に基づいて、前記冗長データの更新値を生成するために必要なデータを第一のディスク装置若しくは第二のディスク装置から、前記キャッシュメモリにロードし、前記一以上の第二のディスク装置に格納される冗長データの更新値を生成することを特徴とする記憶装置システム。
【請求項１０】
請求項９記載の記憶装置システムにおいて、
前記冗長データの更新値を生成するために必要なデータは、前記一以上のデータレコードのデータのうち、前記ライトデータによって更新されるデータ以外のデータであることを特徴とする記憶装置システム。
【請求項１１】
請求項９記載の記憶装置システムにおいて、
前記冗長データの更新値を生成するために必要なデータは、更新前の冗長データと、前記一以上のデータレコードのデータのうち、前記ライトデータによって更新されるデータであることを特徴とする記憶装置システム。
【請求項１２】
データを有する一以上のデータレコードを格納する一以上の第一のディスク装置と、
前記一以上のデータレコードのデータを回復するために用いられる冗長データを有する一以上のパリティレコードが格納される一以上の第二のディスク装置と、
キャッシュメモリを有する制御装置とを有する記憶装置システムであって、
前記制御装置は、
前記記憶装置システムに接続される処理装置から、第一のディスク装置のいずれかに格納されるライトデータを受信し、
前記ライトデータを前記キャッシュメモリに書込み、
前記処理装置にライト処理が終了した旨の終了報告を送信し、
前記終了報告の送信後に、前記ライトデータによって更新されるデータレコードが有する旧データが、前記キャッシュメモリに格納されているか否かを判断し、
該旧データが前記キャッシュメモリに格納されていない場合には、第一のディスク装置のいずれかから、該旧データを前記キャッシュメモリにロードすることを特徴とする記憶装置システム。
【請求項１３】
データを格納する一以上のデータレコードと、前記一以上のデータレコード各々のデータを回復するために用いられる冗長データを格納する一以上のパリティレコードとが格納される、複数のディスク装置と、
キャッシュメモリと、
前記複数のディスク装置及び前記キャッシュメモリに対するデータ若しくは冗長データの入出力を制御する制御部とを有する記憶装置システムであって、
前記制御部は、
前記記憶装置システムに接続される処理装置から、ライトデータを有するライト要求を受信し、
前記ライトデータを前記キャッシュメモリに書込み、
前記処理装置にライト処理が終了した旨を示す終了報告を送信し、
前記終了報告の送信後に、前記冗長データの更新値を前記一以上のパリティレコードが格納されているディスク装置に格納し、
ここで、前記制御部は、前記ライトデータを前記複数のディスク装置のいずれかに格納した後に、前記冗長データの更新値を生成することを特徴とする記憶装置システム。
【請求項１４】
データを有する一以上のデータレコードを格納する一以上の第一のディスク装置と、
前記一以上のデータレコードのデータを回復するために用いられる冗長データを有する一以上のパリティレコードが格納される一以上の第二のディスク装置と、
キャッシュメモリを有する制御装置とを有する記憶装置システムであって、
前記制御装置は、
前記記憶装置システムに接続される処理装置から、第一のディスク装置のいずれかに格納されるライトデータを受信し、
前記ライトデータを前記キャッシュメモリに格納した後、前記処理装置にライト処理が終了した旨を伝えるための終了報告を送信し、
前記終了報告の送信後、前記ライトデータを前記第一のディスク装置のいずれかに格納し、
前記ライトデータを前記第一のディスク装置のいずれかに格納した後、前記一以上の第二のディスク装置に冗長データの更新値を格納することを特徴とする記憶装置システム。
【請求項１５】
データを有する一以上のデータレコードを格納する一以上の第一のディスク装置と、
前記一以上のデータレコードのデータを回復するために用いられる冗長データを有する一以上のパリティレコードが格納される一以上の第二のディスク装置と、
キャッシュメモリを有する制御装置とを有する記憶装置システムであって、
前記制御装置は、
前記記憶装置システムに接続される処理装置から、第一のディスク装置のいずれかに格納されるライトデータを受信し、
前記ライトデータを前記キャッシュメモリに格納し、更に、前記ライトデータを前記第一のディスク装置のいずれかに格納した後に、前記処理装置にライト処理が終了した旨を伝えるための終了報告を送信し、
前記ライトデータを前記第一のディスク装置のいずれかに格納した後、前記一以上の第二のディスク装置に冗長データの更新値を格納することを特徴とする記憶装置システム。
【請求項１６】
データを有する一以上のデータレコードを格納する一以上の第一のディスク装置と、
前記一以上のデータレコードのデータを回復するために用いられる冗長データを有する一以上のパリティレコードが格納される一以上の第二のディスク装置と、
キャッシュメモリを有する制御装置とを有する記憶装置システムであって、
前記制御装置は、
前記記憶装置システムに接続される処理装置から、第一のディスク装置のいずれかに格納されるライトデータを受信し、
前記ライトデータによって更新される旧データが前記キャッシュメモリに格納されていない場合に、該旧データを第一のディスク装置のいずれかから前記キャッシュメモリにロードし、
前記旧データを前記キャッシュメモリにロードした後に、前記ライトデータを第一のディスク装置のいずれかに格納し、
前記ライトデータを第一のディスク装置のいずれかに格納した後に前記処理装置にライト処理の終了報告を送信することを特徴とする記憶装置システム。
【請求項１７】
処理装置に接続され、該処理装置から受信したデータを格納する記憶装置システムであって、
データを有する一以上のデータレコードを格納する一以上の第一のディスク装置と、
前記一以上のデータレコードのデータを回復するために用いられる冗長データを有する一以上のパリティレコードが格納される一以上の第二のディスク装置と、
キャッシュメモリと、
前記処理装置から受信した、前記第一のディスク装置のいずれかに格納されるライトデータを前記キャッシュメモリに格納する第一の手段と、
前記処理装置にライト処理の終了報告を送信する送信手段と、
データ若しくは冗長データを、第一のディスク装置若しくは第二のディスク装置に格納する第二の手段とを有し、
前記送信手段は、前記第一の手段がライトデータを前記キャッシュメモリに格納した後に終了報告を送信し、
前記第二の手段は、前記送信手段が前記終了報告を送信した後に、前記ライトデータを第一のディスク装置のいずれかに格納し、前記一以上の第二のディスク装置に格納される冗長データを生成し、生成された冗長データを前記一以上の第二のディスク装置に格納し、
ここで、前記第二の手段は、前記送信手段が前記終了報告を送信した後に冗長データを生成するために必要なデータが前記キャッシュメモリに格納されているか否か判断し、判断結果に基づいて、冗長データを生成するために必要なデータを第一のディスク装置若しくは第二のディスク装置から前記キャッシュメモリにロードすることを特徴とする記憶装置システム。
【請求項１８】
処理装置に接続され、該処理装置から受信したデータを格納する記憶装置システムであって、
データを有する一以上のデータレコードを格納する一以上の第一のディスク装置と、
前記一以上のデータレコードのデータを回復するために用いられる冗長データを有する一以上のパリティレコードが格納される一以上の第二のディスク装置と、
キャッシュメモリと、
前記処理装置から受信した、前記第一のディスク装置のいずれかに格納されるライトデータを前記キャッシュメモリに格納する第一の手段と、
前記処理装置にライト処理の終了報告を送信する送信手段と、
データ若しくは冗長データを、第一のディスク装置若しくは第二のディスク装置に格納する第二の手段とを有し、
前記送信手段は、前記第一の手段がライトデータを前記キャッシュメモリに格納した後に終了報告を送信し、
前記第二の手段は、前記送信手段が前記終了報告を送信した後に、前記ライトデータを第一のディスク装置のいずれかに格納し、前記一以上の第二のディスク装置に格納される冗長データを生成し、生成された冗長データを前記一以上の第二のディスク装置に格納し、
ここで、前記第二の手段は、前記ライトデータを第一のディスク装置のいずれかに格納した後に、前記冗長データを生成することを特徴とする記憶装置システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ディスクアレイ向きのキャッシュメモリ付き制御装置の制御方法、および、ディスクアレイとキャッシュメモリ付き制御装置により構成される記憶装置サブシステムに関する。
【０００２】
【従来の技術】
発明に最も近い公知例として、以下に示すＰａｔｔｅｒｓｏｎの論文が知られている。
【０００３】
エ−．シ−．エム．シグモッド コンファレンス プロシ−ディング，1988年，6月,ペ−ジ１０９−１１６（D.Patterson,et al:A Case for Redundant Arrays of Inexpensive Disks(RAID),ACM SIGMOD conference proceeding,Chicago,IL,June1-3,1988,pp.109-116）
Ｐａｔｔｅｒｓｏｎの論文は、ディスクアレイ上のデ−タ配置に関する技術を開示したものである
ディスクアレイは、物理的には複数の小容量のディスク装置を、処理装置には１台のディスク装置に見せかけ、高性能化／高信頼化を図るための機構である。
Ｐａｔｔｅｒｓｏｎの論文では、いくつかのデ−タ配置方法が提案されているが、代表的な１つのデ−タ配置方法に次のような配置方法がある。
【０００４】
この配置方法は、処理装置とのリ−ド／ライト単位であるレコ−ドは、そのままの形でディスク装置上に配置であり以下、レコ−ド単位配置と呼ぶ。（Ｐａｔｔｅｒｓｏｎの論文で提案されているデ−タ配置方法の中には、１つのレコ−ドを分割して、複数のディスク装置に配置するという配置方法も提案されている。）レコ−ド単位配置の特長は、ディスクアレイを構成するそれぞれのディスク装置ごとにリ−ド／ライト処理が実行可能な点である。（レコ−ドを複数のディスク装置に分割すると、レコ−ドをリ−ド／ライトのために複数のディスク装置を専有する必要がある。）したがって、レコ−ド単位配置方法をとると、ディスクアレイ内で実行できるリ−ド／ライト処理の多重度を向上させることが可能となり、性能向上を実現できる。
【０００５】
一方、ディスクアレイの高信頼化は、パリティデ−タと呼ばれる冗長デ−タをディスク装置に格納することにより実現する。レコ−ド単位配置においては、一定数の異なったディスク装置上の１つずつのレコ−ドから、１レコ−ドに相当するデ−タ量のパリティデ−タを作成し、１つのレコ−ドとして、ディスク装置上に格納する。これをパリティレコ−ドと呼ぶ。一方、パリテイレコ−ドとそれを生成したレコ−ドの集合をパリティグル−プと呼ぶ。さらに、パリティレコ−ド以外の処理装置から直接リ−ド／ライトされるレコ−ドをデ−タレコ−ドとよぶ。通常、同一パリティグル−プの各レコ−ドはそれぞれ別のディスク装置に格納される。また、パリティグル−プ内のパリティレコ−ドの数は特に１つには限定されない。
【０００６】
パリティレコ−ドの内容は、パリティレコ−ドを生成したデ−タレコ−ドのうちのどの１つのレコ−ドに障害が発生しても、パリティレコ−ドとそれ以外のレコ−ドの内容から障害レコ−ドの内容が復元可能となるような内容である。したがって、あるパリティグル−プが格納されているディスク装置の集合のうちのどのディスク装置に障害が発生した場合にも、デ−タの回復が可能となる。通常、パリティグル−プ内のパリティレコ−ドの数がｎ個であれば、ｎ台までのディスク装置に障害が発生してもそのパリティグル−プのデ−タは回復可能である。
【０００７】
以上のレコ−ド単位配置をとった場合、ライト処理の性能が、従来のディスク装置の性能に比較して劣化するという問題が発生する。これは、ライト処理が発生したデ−タレコ−ドの内容が変更されると、パリティレコ−ドの更新も必要となるためである。しかも、パリティレコ−ドの更新値を決定するためには、ライト処理が発生したデ−タレコ−ドの更新値以外に以下の値の集合を得る前処理の実行が必要となる。
【０００８】
（１）ライト処理が発生したレコ−ドの更新前の値、パリテイレコ−ドの更新前の値。
【０００９】
（２）ライト処理が発生したレコ−ドが属するパリティグル−プ内の他のすべてのパリティレコ−ド以外のレコ−ドの値
通常、（１）に示した値を得る方が、オ−バヘッドが小さいため、ライト処理が発生した場合、（１）に示した値を得る方法がとられる。（１）に示した値を得るためには、パリティグル−プ内のパリティレコ−ドが１つでも、ディスク装置に２回のアクセスが必要となる。さらに、ライト処理が発生したレコ−ドの更新値、パリティレコ−ドの更新値を書き込むため、２回のディスク装置へのアクセスが必要となり、合わせて４回のディスクアクセスが必要となる。従来ディスクの場合、単純に、ライト処理が発生したレコ−ドの更新値をディスク装置に書き込むだけである。したがって、レコ−ド単位のディスクアレイでは、ライト要求に対するデイスクアクセス回数が４倍に増加することになる。
【００１０】
レコ−ド単位配置をとったディスクアレイにおいては、特に、ライト処理を高速化する技術は開示さていない。しかし、ディスクアレイではなく、一般のディスク装置のライト処理の高速化に関しては、ディスクキャッシュを利用した以下のような技術が開示されている。
【００１１】
特開昭５５−１５７０５３では、ディスクキャッシュを有する制御装置において、ライトアフタ処理を利用してライト要求を高速化に関する技術が開示されている。
【００１２】
具体的には、制御装置は、処理装置から受け付けたライトデ−タをキャッシュ内に書き込んだ段階で、ライト処理を完了させる。処理装置から受け付け、キャッシュ内に格納したデ−タのディスク装置への書き込みは、後から、制御装置のライトアフタ処理によって実行される。
【００１３】
特開昭５９−１３５５６３では、高信頼性を保証しながらライト処理を高速化する制御装置に関する技術が開示されている。
【００１４】
特開昭５９−１３５５６３では、制御装置内にキャッシュメモリ以外に不揮発性メモリを有し、処理装置から受け取ったライトデ−タをキャッシュメモリと不揮発性メモリに格納する。ディスク装置へのライトデ−タの書き込みは、制御装置が、ライトアフタ処理によって実行する。これにより、ライトアフタ処理の高信頼化を図る。
【００１５】
一方、特開昭６０−１１４９４７では、２重書きディスク装置を制御するディスクキャッシュを有する制御装置に関する技術が開示されている。
【００１６】
特開昭６０−１１４９４７では、制御装置は、処理装置から受け取ったライト要求に対し、一方のディスク装置とキャッシュメモリに、処理装置から受け取ったライトデ−タを書き込む。もう一方のディスク装置には、制御装置が、処理装置からのリ−ド／ライト要求とは非同期に、キャッシュメモリに格納したライトデ−タを後から書き込む。制御装置が、処理装置からのリ−ド／ライト要求とは非同期に、キャッシュメモリに格納したライトデ−タをディスク装置に後から書き込む動作をライトアフタ処理と呼ぶ。
【００１７】
特開平２−３７４１８では、２重書きディスク装置をディスクキャッシュを利用した高性能化に関する技術が開示されている。
【００１８】
特開平２−３７４１８でも、制御装置内にキャッシュメモリ以外に不揮発性メモリを有し、処理装置から受け取ったライトデ−タをキャッシュメモリと不揮発性メモリに格納する。２つのディスク装置へのライトデ−タの書き込みは、制御装置が、ライトアフタ処理によって実行する。
【００１９】
特願平１−１７１８１２では、ディスクキャッシュを有し、ライトアフタ処理を実行する制御装置において、ライトアフタ処理を効率よく実行することを目的としたディスクキャッシュ内のライトアフタデ−タの管理デ−タ構造についての技術が開示されている。
【００２０】
【発明が解決しようとする課題】
従来、レコ−ド単位配置のディスクアレイではなく、一般のディスク装置向けのディスクキャッシュ（以下、単にキャッシュと略す。）を利用したライトアフタ処理に関して開示されている技術は、いずれも、処理装置から受け付けキャッシュに格納したライトデ−タをディスク装置に書き込むという単純な技術であった。しかし、レコ−ド単位配置のディスクアレイに対するライト処理が、従来のディスク装置に比較して、処理オ−バヘッドが大きくなるのは、すでに、述べたように、パリティレコ−ドの更新値を作成しなければならないためである。したがって、パリティレコ−ドの更新値をどのように作成するかが、レコ−ド単位配置のディスクアレイのライト処理の高速化の鍵となる。これに対し、一般のディスク装置では、パリティレコ−ドの更新値の必要性はまったくなかったため、このような配慮はなかった。
【００２１】
本発明の目的は、パリティレコ−ドの更新値の作成を効率化することにより、レコ−ド単位配置のディスクアレイのライト処理の高性能化を実現する点にある。基本的には、本発明でも特開昭６０−１１４９４７、特開昭５５−１５７０５３などの従来技術と同様に、制御装置は、キャッシュを利用したライトアフタ処理を用いる。しかし、すでに述べたように、本発明で解決すべき課題は、従来技術では開示されていない、パリティレコ−ドの更新値の作成を効率化にある。ここでは、パリティレコ−ドの更新値の作成を効率化という課題を、以下に示す課題１から課題３までの３つの課題にブレイクダウンする。以下、その具体内容を示す。
【００２２】
課題１…パリティレコ−ドの更新値の作成のために用いる情報の選択方式。すなわち、どのような情報を用いて、パリティレコ−ドの更新値を作成するかということである。
【００２３】
パリティレコ−ドの更新値を得るためには、以下の（１）内に示した値のセット、あるいは、（２）内に示した値のセットいずれかが必要となる。
【００２４】
（１）ライト処理が発生したレコ−ドの更新前の値、パリテイレコ−ドの更新前の値。
【００２５】
（２）ライト処理が発生したレコ−ドが属するパリティグル−プ内の他のすべてのパリティレコ−ド以外のレコ−ドの値
キャッシュがない場合、（２）に示したデ−タにより、パリティレコ−ドの更新値を作成する場合、パリティグル−プ内のライト対象デ−タレコ−ド以外のすべてのデ−タレコ−ドを読み出す必要があり、処理量が大きくなってしまう。このため、パリティレコ−ドの更新値を得るためには、ライト処理が発生したレコ−ドの更新前の値、パリテイレコ−ドの更新前の値を使用するのが通常の方法であると考えられる。
【００２６】
しかし、キャッシュを利用する場合には、キャッシュ内にライト対象レコ−ドとパリティレコ−ドが存在する可能性がある点に着目すべきである。したがって、この特徴を活かすとさらに高速化が可能になる。
【００２７】
課題２…パリティレコ−ド更新値の作成に関連した処理の非同期化。パリティレコ−ド更新値の作成に関連した処理を、処理装置から見て、非同期化することにより、パリティレコ−ド更新値の作成に関連した処理を処理装置から見た応答時間に含ませないようにし、応答時間の短縮を図る。
【００２８】
課題３…パリティレコ−ドの更新値の作成契機。すなわち、どの契機で、パリティレコ−ドの更新値を作成するかということである。キャッシュを利用した場合、パリティレコ−ドの更新値の作成のために用いる情報のキャッシュ内の存在状況により、制御装置が、実行すべきデ−タ転送が異なってくる。したがって、以上の状況に応じて、パリティレコ−ドの更新後の値の作成契機を最適化する必要がある。
【００２９】
【課題を解決するための手段】
以下、本発明が、以上述べてきた課題をいかに解決するかについて述べる。
【００３０】
まず、課題１、すなわち、パリティレコ−ドの更新値を得るために用いる情報の選択方式について述べる。
【００３１】
パリティグル−プヒット／ミス判定機能１…本機能では、パリティレコ−ドの更新値を得るために、ライト対象として指定されたデ−タレコ−ドの更新前の値とパリティレコ−ドの更新前の値を用いる。したがって、処理装置からライト対象として指定されたデ−タレコ−ドとパリティレコ−ドがキャッシュ内に存在している（以下、ヒットしていると呼ぶ。）か、存在しない（以下、ミスしていると呼ぶ）かどうかを判別する。この時、これらのレコ−ドのうちミスしているレコ−ドをキャッシュにロ−ドすることを決定する。
【００３２】
パリティグル−プヒット／ミス判定機能２…本機能では、パリティレコ−ドの更新値を得るために、ライト対象として指定されたデ−タレコ−ドが属するパリティグル−プ内の他のデ−タレコ−ドを用いる。したがって、処理装置からライト対象として指定されたデ−タレコ−ドが属するパリティグル−プ内の他のデ−タレコ−ドがキャッシュ内にヒットしているか、ミスしているかどうかを判別する。この時、これらのレコ−ドのうちミスしているレコ−ドをキャッシュにロ−ドすることを決定する。
【００３３】
パリティグル−プヒット／ミス判定機能３…本機能では、パリティレコ−ドの更新値を得るために用いる情報として、ライト対象として指定されたデ−タレコ−ドの更新前の値とパリティレコ−ドの更新前の値のキャッシュ内の存在状況と、ライト対象として指定されたデ−タレコ−ドが属するパリティグル−プ内の他のデ−タレコ−ドキャッシュ内の存在状況とを比較して、性能的に有利な方の情報を用いる。
【００３４】
したがって、パリティグル−プヒット／ミス判定機能３は、処理装置からライト対象として指定されたデ−タレコ−ドが属するパリティグル−プ内のレコ−ド（デ−タレコ−ド、パリティレコ−ドを含む。）がキャッシュ内にヒットしているか、ミスしているどうかを判別する。
【００３５】
この結果、パリティグル−プヒット／ミス判定機能１、パリティグル−プヒット／ミス判定機能２うち、性能的に有利な方を選択し、制御を移す。例えば、ライト対象として指定されたデ−タレコ−ドのパリティグル−プ内の他のすべてのデ−タレコ−ドがキャッシュに存在し、パリティレコ−ドが存在しない場合、パリティグル−プヒット／ミス判定機能２を選択した方が効率的である。一方、ライト対象として指定されたデ−タレコ−ドとパリティレコ−ドが、キャッシュに存在すれば、パリティグル−プヒット／ミス判定機能１を選択した方が、効果的である。
【００３６】
次に、課題２に対応した非同期処理化について説明する。非同期処理化すべき処理は、処理装置から受け取ったライト要求に伴って実行する処理によって異なる。すなわち、パリティレコ−ドの更新値を作成するために、ライト対象として指定されたデ−タレコ−ドとパリティレコ−ドを利用するのか（パリティグル−プヒット／ミス判定機能１を利用するのか）、ライト対象として指定されたデ−タレコ−ドのパリティグル−プ内の他のデ−タレコ−ドを利用するのか（パリティグル−プヒット／ミス判定機能２を利用するのか）によって実行すべき非同期処理が異なってくる。
【００３７】
さらに、特開昭６０−１１４９４７のように、ライト対象として指定されたデ−タレコ−ドをディスク装置上で更新する処理を非同期化しない場合もある。一方、特開昭５５−１５７０５３、特開昭５９−１３５５６３のように、ライト対象として指定されたデ−タレコ−ドの更新値をキャッシュ（および、不揮発性メモリ）に書き込んだ段階で完了させ、ディスク装置への書き込みは非同期化する場合もある。
【００３８】
本発明では、以下の４種類の非同期化機能を設ける。
【００３９】
非同期化機能１…本機能は、パリティレコ−ドの更新値を作成するために、ライト対象として指定されたデ−タレコ−ドとパリティレコ−ドをキャッシュにロ−ドする場合に、使用する。したがって、本機能は、パリティグル−プヒット／ミス判定機能１と組み合わせて、用いられる。さらに、本機能は、ライト対象として指定されたデ−タレコ−ドをディスク装置上で更新する処理を、処理装置からのライト要求と同期化して実行する場合に用いられる。
【００４０】
この場合、ライト対象として指定されたデ−タレコ−ドがキャッシュになかった時、ライト対象として指定されたデ−タレコ−ドをディスク装置上で更新する処理を実行する前に、前記のデ−タレコ−ドの更新前の値をキャッシュにロ−ドする処理を実行せざるを得ない。したがって、デ−タレコ−ドの更新前の値をキャッシュにロ−ドする処理は、処理装置からのライト要求と同期化して実行することになる。以上より、この場合、非同期化可能な処理は、以下の（１）と（２）に示した処理となる。
【００４１】
（１）パリティレコ−ドがキャッシュに存在しない場合のロ−ド処理
（２）パリティレコ−ドの更新値のディスク装置への書き込み処理
非同期化機能２…本機能も、パリティレコ−ドの更新値を作成するために、ライト対象として指定されたデ−タレコ−ドとパリティレコ−ドをキャッシュにロ−ドする場合に、使用する。したがって、本機能も、パリティグル−プヒット／ミス判定機能１と組み合わせて、用いられる。ただし、本機能は、ライト対象として指定されたデ−タレコ−ドをディスク装置上で更新する処理を、処理装置からのライト要求とは非同期に実行する場合に用いられる。
【００４２】
この場合、ライト対象として指定されたデ−タレコ−ドをディスク装置上で更新する処理を非同期化できるので、以下の（１）から（４）までに示したすべての処理を非同期化できる。
【００４３】
（１）ライト対象として指定されたデ−タレコ−ドが、キャッシュにない場合、上記デ−タレコ−ドのロ−ド処理
（２）ライト対象として指定されたデ−タレコ−ドの更新値のディスク装置への書き込み処理
（３）パリティレコ−ドがキャッシュに存在しない場合のロ−ド処理
（４）パリティレコ−ドの更新値のディスク装置への書き込み処理
非同期化機能３…本機能は、パリティレコ−ドの更新値を作成するために、ライト対象として指定されたデ−タレコ−ドのパリティグル−プ内の他のデ−タレコ−ドをキャッシュにロ−ドする場合に、使用する。したがって、本機能は、パリティグル−プヒット／ミス判定機能２と組み合わせて、用いられる。さらに、本機能は、ライト対象として指定されたデ−タレコ−ドをディスク装置上で更新する処理を処理装置からのライト要求とは同期化して実行する場合に用いられる。  ライト対象として指定されたデ−タレコ−ドのパリティグル−プ内の他のデ−タレコ−ドは、ライト対象として指定されたデ−タレコ−ドをディスク装置に書き込んだ後でも、得ることができる。したがって、以下の（１）から（３）までに示したのすべての処理を非同期化することができる。
【００４４】
（１）キャッシュに存在しないライト対象として指定されたデ−タレコ−ドのパリティグル−プ内の他のデ−タレコ−ドのキャッシュへのロ−ド処理
（２）パリティレコ−ドがキャッシュに存在しない場合のロ−ド処理
（３）パリティレコ−ドの更新値のディスク装置への書き込み処理
非同期化機能４…本機能も、パリティレコ−ドの更新値を作成するために、ライト対象として指定されたデ−タレコ−ドのパリティグル−プ内の他のデ−タレコ−ドをキャッシュにロ−ドする場合に、使用する。したがって、本機能も、パリティグル−プヒット／ミス判定機能２と組み合わせて、用いられる。ただし、本機能は、ライト対象として指定されたデ−タレコ−ドをディスク装置上で更新する処理を処理装置からのライト要求と非同期化する場合に用いられる。
【００４５】
この場合、ライト対象として指定されたデ−タレコ−ドをディスク装置上で更新する処理を非同期化できるので、（１）から（４）までに示したすべての処理を非同期化できる。
【００４６】
（１）キャッシュに存在しないライト対象として指定されたデ−タレコ−ドのパリティグル−プ内の他のデ−タレコ−ドのキャッシュへのロ−ド処理
（２）ライト対象として指定されたデ−タレコ−ドの更新値のディスク装置への書き込み処理
（３）パリティレコ−ドがキャッシュに存在しない場合のロ−ド処理
（４）パリティレコ−ドの更新値のディスク装置への書き込み処理
次に、課題３の解決、すなわち、パリティレコ−ドの更新後の値の作成契機について説明する。
【００４７】
パリティレコ−ドの更新後の値の作成契機は、４種類の契機が考えられる。それぞれの作成契機に対応したそれぞれの機能について説明する。
【００４８】
パリティ作成機能１…まず、第１に考えられるパリティレコ−ドの更新後の値の作成契機は、処理装置から指定されたデ−タレコ−ドに対する更新値を、制御装置が処理装置との間で転送する契機である。この場合、パリティレコ−ドの更新値を作成するために必要なレコ−ドはすべてキャッシュに格納しておく必要がある。すなわち、次の（１）、（２）に示したいずれかの情報である。
【００４９】
（１）ライト対象として指定されたデ−タレコ−ド（この場合、処理装置から指定されたデ−タレコ−ドに対する更新値をキャッシュの別領域に格納する。）とパリティレコ−ド
（２）ライト対象として指定されたデ−タレコ−ドのパリティグル−プ内の他のすべてのデ−タレコ−ド
パリティ作成機能２…次に考えられるパリティレコ−ドの更新後の値の作成契機は、処理装置から指定されたデ−タレコ−ドに対する更新値以外に、パリティレコ−ドの更新値を得るために必要な情報（パリティ作成機能１で説明した（１）あるいは（２）の情報）をキャッシュにロ−ドする契機である。本パリティ作成契機においては、処理装置から受け付けたデ−タレコ−ドに対する更新値は、すでに、キャッシュに格納されていることになる。
【００５０】
パリティ作成機能３…第３番目に考えられるパリティレコ−ドの更新後の値の作成契機は、キャッシュ内に格納したパリティレコ−ドの更新値を得るために必要な情報から、パリティレコ−ドの更新値を作成しながらディスク装置に作成値を書き込むという契機である。
【００５１】
パリティ作成機能４…最後に考えられるパリティレコ−ドの更新後の値の作成契機は、パリティレコ−ドの更新値の作成を、制御装置のデ−タ転送処理とは非同期に行うという方法である。すなわち、制御装置は、パリティレコ−ドの更新値を作成するのに必要なすべての情報をキャッシュに格納した後、パリティレコ−ドの更新値を作成する処理を、デ−タ転送処理とは、非同期に実行する。
【００５２】
【作用】
以下、本発明の作用について述べる。
【００５３】
本発明においては、課題１、課題２、および、課題３を解決するために設ける機能についてそれぞれ、いくつかの代替案をあげた。したがって、本発明における作用は、課題１、課題２、および、課題３をそれぞれ解決する機能の組合せにより、表現される。
【００５４】
まず、課題１のパリティレコ−ドの更新値を作成する情報の選択機能として、パリティ情報ヒット／ミス判定機能１、課題２の非同期化の機能として非同期化機能１を組み合わせた第１の組合せの作用について説明する。
【００５５】
制御装置が、処理装置からライト要求を受け取ると、パリティ情報ヒット／ミス判定機能１により、ライト対象として指定されたデ−タレコ−ドとパリティレコ−ドの更新前の値がキャッシュ上に格納されているかどうかを調べる。
【００５６】
まず、双方のレコ−ドがキャッシュに格納されている場合について説明する。非同期化機能１を用いた場合には、処理装置から指定されたデ−タレコ−ドの更新値のディスク装置上への書き込みは、処理装置からのライト要求に同期して実行する。したがって、制御装置は、処理装置から指定されたデ−タレコ−ドの更新値のディスク装置上への書き込みを実行する。この時、制御装置は、処理装置から受け取ったデ−タレコ−ドの更新値をキャッシュに書き込む。処理装置から受け取ったライト要求は、この段階で完了させることができるため、以上の手順により、ライト処理の高速化が図れる。
【００５７】
パリティレコ−ドの更新値の作成する機能としてパリティ作成機能１を用いる場合には、処理装置から受け取ったデ−タレコ−ドの更新値をキャッシュに書き込む契機で、キャッシュ内のデ−タレコ−ドとパリティレコ−ドの更新前の値と処理装置から受け取ったデ−タレコ−ドの更新値により、パリティレコ−ドの更新値を作成する。
【００５８】
一方、パリティレコ−ドの更新値の作成する機能としてパリティ作成機能４を用いる場合には、処理装置から受け取ったデ−タレコ−ドの更新値をキャッシュに書き込んだ後で、パリティレコ−ドの更新値を作成する。
【００５９】
パリティレコ−ドの更新値のディスク装置への書き込みは、非同期化機能１により、制御装置が処理装置からのリ−ド／ライト要求とは非同期に実行する。一方、パリティ作成機能３を用いる場合、キャッシュ内のデ−タレコ−ドとパリティレコ−ドの更新前の値とデ−タレコ−ドの更新値により、パリティレコ−ド更新値を作成しつつディスク装置に作成値を書き込む。
【００６０】
次に、デ−タレコ−ドの更新前の値がキャッシュに存在せず、パリティレコ−ドの更新前の値が、キャッシュに存在する場合について述べる。
【００６１】
この場合、まず、制御装置は、処理装置からデ−タレコ−ドの更新値を受け取る前に、デ−タレコ−ドの更新前の値をキャッシュにロ−ドする。それ以降の作用は、デ−タレコ−ドとパリティレコ−ドの更新前の値がキャッシュ上に格納されている場合と同様である。
【００６２】
この場合、デ−タレコ−ドの更新前の値をキャッシュにロ−ドする処理は、処理装置からのライト要求の応答時間内に含まれる。しかし、パリティレコ−ドの書き込み時間などは、ライト要求の応答時間内に含まれないため、従来に比べ高速なライト処理の高速化が図れる。
【００６３】
次に、デ−タレコ−ドの更新前の値がキャッシュに存在し、パリティレコ−ドの更新前の値が、キャッシュに存在しない場合について述べる。
【００６４】
この場合、制御装置は、処理装置から受け取ったデ−タレコ−ドの更新値を、ディスク装置とキャッシュに書き込む。この場合も処理装置から受け取ったライト要求は、この段階で、完了させることができるため、ライト処理の高速化が図れる。
【００６５】
パリティレコ−ドの更新前の値のキャッシュへのロ−ド処理とパリティレコ−ドの更新値のディスク装置への書き込みは、非同期化機能１により、制御装置が、非同期に実行する。パリティレコ−ドの更新値の作成は、パリティ作成機能２を用いる場合、パリティレコ−ドの更新前の値をキャッシュへロードするロ−ド処理実行時に行うことになる。
【００６６】
一方、パリティ作成機能４を用いる場合には、パリティレコ−ドの更新前の値をキャッシュへのロードするロ−ド処理が終了した後で、パリティレコ−ドの更新値を作成する。
【００６７】
パリティ作成機能３を用いる場合、キャッシュ内のデ−タレコ−ドとパリティレコ−ドの更新前の値とデ−タレコ−ドの更新値により、パリティレコ−ド更新値を作成しつつディスク装置に作成値を書き込む。
【００６８】
最後に、デ−タレコ−ドの更新前の値とパリティレコ−ドの更新前の値がキャッシュに存在しない場合について述べる。この場合、まず、非同期化機能１により、まず、デ−タレコ−ドの更新前の値をキャッシュにロ−ドする。これ以降の処理は、デ−タレコ−ドの更新前の値がキャッシュに存在し、パリティレコ−ドの更新前の値が、キャッシュに存在しない場合と同様である。この場合も、デ−タレコ−ドの更新前の値をキャッシュにロ−ドする処理は、処理装置からのライト要求の応答時間内に含まれる。しかし、パリティレコ−ドの書き込み時間などは、ライト要求の応答時間内に含まれないため、従来に比べ高速なライト処理の高速化が図れる。
【００６９】
第２の組合せとして、課題１のパリティレコ−ドの更新値を作成する情報の選択機能として、パリティ情報ヒット／ミス判定機能１、課題２の非同期化の機能として非同期化機能２を組み合わせた場合の作用について説明する。
【００７０】
制御装置が、処理装置からライト要求を受け取ると、パリティヒット／ミス判定機能１により、ライト対象として指定されたデ−タレコ−ドとパリティレコ−ドの更新前の値がキャッシュ上に格納されているかどうかを調べるのは第１の組合せの場合と同様である。
【００７１】
まず、双方のレコ−ドがキャッシュに格納されている場合について説明する。非同期化機能２を用いた場合には、処理装置から指定されたデ−タレコ−ドの更新値のディスク装置上への書き込みは、処理装置からのライト要求とは非同期に実行する。したがって、制御装置は、処理装置から指定されたデ−タレコ−ドの更新値をキャッシュに書き込む。
【００７２】
パリティレコ−ドの更新値の作成するパリティ作成機能１を用いた場合、処理装置から受け取ったデ−タレコ−ドの更新値をキャッシュに書き込む契機で、キャッシュ内のデ−タレコ−ドとパリティレコ−ドの更新前の値と処理装置から受け取ったデ−タレコ−ドの更新値により、パリティレコ−ドの更新値を作成する。  一方、パリティレコ−ドの更新値の作成する機能としてパリティ作成機能４を用いる場合には、処理装置から受け取ったデ−タレコ−ドの更新値をキャッシュに書き込んだ後で、パリティレコ−ドの更新値を作成する。
【００７３】
パリティレコ−ドの更新値のディスク装置への書き込みは、非同期化機能２により、制御装置が非同期に実行する。一方、パリティ作成機能３を用いる場合、キャッシュ内のデ−タレコ−ドとパリティレコ−ドの更新前の値とデ−タレコ−ドの更新値により、パリティレコ−ド更新値を作成しつつディスク装置に作成値を書き込む。同様に、デ−タレコ−ドの更新値の書き込みも、非同期化機能２により、制御装置が非同期に実行する。
【００７４】
次に、デ−タレコ−ドとパリティレコ−ドの更新前の値の中にキャッシュ上に格納されていないものがある場合について説明する。
【００７５】
制御装置は、非同期化機能２にしたがって、キャッシュにないこれらの情報を非同期にロ−ドする。パリティ作成機能２を用いる場合、パリティレコ−ドの更新値の作成契機は、キャッシュになかったこれらの情報の中の最後の情報を、キャッシュにロ−ドする契機となる。また、パリティ作成機能３を用いる場合は、パリティレコ−ド更新値を作成しつつディスク装置に作成値を書き込む。一方、パリティ作成機能４を用いる場合には、パリティレコ−ドの更新前の値をキャッシュへロードするロ−ド処理が終了した後で、パリティレコ−ドの更新値を作成する。
【００７６】
第２の組合せにおいては、常に、処理装置から受け取ったライト要求は、制御装置が、処理装置から指定されたデ−タレコ−ドの更新値をキャッシュに書き込んだ段階で、完了させることができる。以上により、ライト処理の高速化が図れる。
【００７７】
次に、第３の組合せとして、課題１のパリティレコ−ドの更新値を作成する情報の選択機能として、パリティ情報ヒット／ミス判定機能２、課題２の非同期化の機能として非同期化機能３を組み合わせた場合の作用について説明する。
【００７８】
制御装置が、処理装置からライト要求を受け取ると、パリティ情報ヒット／ミス判定機能２により、ライト対象として指定されたデ−タレコ−ドのパリティグル−プ内の他のデ−タレコ−ドがキャッシュ上に格納されているかどうかを調べる。
【００７９】
まず、これらの情報がすべて格納されている場合について述べる。この場合には、パリティ情報ヒット／ミス判定機能１、非同期化機能１を第１の組合せの作用と類似しているため説明を省略する。
【００８０】
次に、これらの情報のうちキャッシュに格納されていない情報がある場合の作用について述べる。
【００８１】
制御装置は、非同期化機能３を用いて、非同期化機能１を用いた時と同様、処理装置から指定されたデ−タレコ−ドの更新値を、キャッシュとディスク装置にの書き込む。さらに、制御装置は、非同期化機能３にしたがって、キャッシュにないパリティグル−プ内の他のデ−タレコ−ドを非同期にロ−ドする。
【００８２】
パリティレコ−ドの更新値の作成については、第２の組合せにおいて、パリティレコ−ドの更新値を作成するために用いる情報がキャッシュにない場合の作用と類似しているため、説明を省略する。
【００８３】
第３の組合せにおいては、常に、処理装置から受け取ったライト要求は、制御装置が、処理装置から指定されたデ−タレコ−ドの更新値をキャッシュとディスク装置に書き込んだ段階で、完了させることができる。以上により、ライト処理の高速化が図れる。
【００８４】
次に、第４の組合せとして、課題１のパリティレコ−ドの更新値を作成する情報の選択機能として、パリティ情報ヒット／ミス判定機能２、課題２の非同期化の機能として非同期化機能４を組み合わせた場合の作用について説明する。
【００８５】
制御装置が、処理装置からライト要求を受け取ると、パリティ情報ヒット／ミス判定機能２により、ライト対象として指定されたデ−タレコ−ドのパリティグル−プ内の他のデ−タレコ−ドがキャッシュ上に格納されているかどうかを調べるのは、第３の組合せと同様である。
【００８６】
この後のデ−タレコ−ドの更新値、パリティレコ−ドの更新値のディスク装置への書き込みは、第２の組合せの作用と類似しているため説明を省略する。
【００８７】
第４の組合せにおいても、第２の組合せと同様、常に、処理装置から受け取ったライト要求は、制御装置が、処理装置から指定されたデ−タレコ−ドの更新値をキャッシュとディスク装置に書き込んだ段階で、完了させることができる。以上により、ライト処理の高速化が図れる。
【００８８】
第５の組合せとして、パリティ情報ヒット／ミス判定機能３を用いた場合の作用について述べる。
【００８９】
制御装置が、処理装置からライト要求を受け取ると、パリティ情報ヒット／ミス判定機能３により、ライト対象として指定されたデ−タレコ−ドとパリティレコ−ドの更新前の値、および、パリティグル−プ内の他のデ−タレコ−ドがキャッシュ上に格納されているかどうかを調べる。そして、下記の（１）、（２）のどちらのレコ−ドのセットを用いて、パリティレコ−ドの更新値を作成したら性能的に有利かを判断し、性能的に有利な方のレコ−ドのセットを用いることを決定する。
【００９０】
（１）ライト対象として指定されたデ−タレコ−ドとパリティレコ−ドの更新前の値
（２）パリティグル−プ内の他のデ−タレコ−ド
（１）のレコ−ドのセットを用いることを決定し、パリティ情報ヒット／ミス判定機能１と非同期化機能１を用いた場合には、第１の組合せで説明した作用と同様の作用となる。また、パリティ情報ヒット／ミス判定機能１と非同期化機能２を用いた場合には、第２の組合せで説明した作用と同様の作用となる。
【００９１】
（２）のレコ−ドのセットを用いることを決定し、パリティ情報ヒット／ミス判定機能２と非同期化機能３を用いた場合には、第３の組合せで説明した作用と同様の作用となる。また、パリティ情報ヒット／ミス判定機能２と非同期化機能４を用いた場合には、第４の組合せで説明した作用と同様の作用となる。
【００９２】
パリティ情報ヒット／ミス判定機能３により、キャッシュ内の各レコ−ドの存在状況により、性能的に有利なレコ−ドのセットにより、パリティレコ−ドの更新値を作成することができる。
【００９３】
【００９４】
【実施例】
以下、本発明の実施例を説明する。本発明は、レコ−ド単位配置を行ったディスクアレイに対し、ディスクキャッシュを用いたライト動作に関する。したがって、以下の実施例では、ライト動作に関する記述のみを行う。
【００９５】
まず、各実施例に共通する内容について説明する。図１３は、本発明の対象となる計算機システムの構成である。計算機システムは、処理装置１３００、制御装置１３０５、１台以上のディスク装置１３０４により構成する。処理装置１３００は、ＣＰＵ１３０１、主記憶１３０２、チャネル１３０３により構成される場合があってもよい。制御装置１３０５は、キャッシュメモリ１３０８、ディレクトリ１３０９を含む。キャッシュメモリ（以下、単にキャッシュと略す。）１３０８は、ディスク装置１３０４の中のアクセス頻度の高いデ−タをロ−ドしておく。ディレクトリ１３０９には、キャッシュ１３０８の管理情報を格納する。制御装置１３０５は、処理装置１３００からのリ−ド／ライト要求にしたがって、処理装置１３００とディスク装置１３０４、あるいは、キャッシュ１３０８との転送を行う。さらに、制御装置１３０５は、処理装置１３００からのリ−ド／ライト要求とは、非同期に、ディスク装置２０５とキャッシュ１３０８との間で、リ−ド／ライト動作を実行する。ただし、図１７に示したように、制御装置内に２つ以上のディレクタ１３０７を含み、それぞれのディレクタ１３０７が処理装置１３００からリ−ド／ライト要求を受け付け、リ−ド／ライト動作を実行するような構成でも本発明は有効である。
【００９６】
図１４は、本発明の対象となる別の計算機システムの構成である。図１３に示した構成との差異は、制御装置１３０５が、さらに、不揮発性メモリ１４００と不揮発性メモリ管理情報１４０１を含む点である。不揮発性メモリ１４００は、不揮発の媒体であり、キャッシュ１３０８と同様に、ディスク装置１３０４の中のアクセス頻度の高いデ−タをロ−ドしておく。不揮発性メモリ管理情報１４０１も不揮発の媒体であり、不揮発性メモリ１４００の管理情報を格納する。
【００９７】
図１３、および、図１４に示した計算機システムにおいては、制御装置１３０５は、処理装置１３００から受け付けたライト要求に対する動作として、２つの動作のいずれかを選択できる。
【００９８】
まず、第１の動作を説明する。第１の方法は、ライトスル−動作１３１０と呼ばれる。制御装置１３０５は、ライトスル−動作１３１０を実行する場合、処理装置１３００から受け取ったライトデ−タ１３１１を、ディスク装置２０５に書き込む。ただし、制御装置１３０５は、キャッシュ１３０８内にもそのライトデ−タ１３１２を書き込む。図１４においては、ライトスル−動作１３１０は記載していないが、本構成においても、制御装置１３０５は、ライトスル−動作１３１０を実行できる。
【００９９】
次に、第２の方法を示す。第２の方法は、高速ライト１３１１と呼ばれる。制御装置１３０５は、高速ライト１３１１を実行する場合、処理装置１３００から受け取ったライトデ−タ１３１２をキャッシュ２０８に書き込んだ段階で、ライト処理を完了させる。この場合、ディスク装置１３０４にアクセスすることなく、ライト要求を完了させることができるため、高速な処理が実現することができる。キャッシュ１３０８に書き込んだライトデ−タ１３１２は、制御装置１３０５が、空いた時間を利用して、処理装置１３００からの要求とは、非同期に、ディスク装置１３０４に書き込む。以上のライト処理を、ライトアフタ処理１３１３と呼ぶ。
【０１００】
図１４の計算機システムにおいては、さらに、制御装置１３０５は、高信頼／高速ライト１４０２を実行できる。高速ライト１３１１との相違は、ライトデ−タ１３１２を不揮発性メモリ１４００にも書き込む点である。これにより、制御装置１３０５が、ライトアフタ処理１３１３を実行する前に、キャッシュ１３０８がダウンしても、ライトデ−タ１３１１の保障を行うことができる。
【０１０１】
次に、図１５と図１６を用いて、本発明の対象となるレコ−ド単位配置を行ったディスクアレイのデ−タの記録形式について説明する。
【０１０２】
図１５に示すように、ディスク装置１３０４において、リ−ド／ライトされる単位は、レコ−ド１５０２と呼ばれる。本発明においては、ディスク装置１３０４上には、レコ−ド１５０２は２種類存在し、デ−タレコ−ド１５００とパリティレコ−ド１５０１が格納される。デ−タレコ−ド１５００は、処理装置１３００がリ−ド／ライトするデ−タを格納したレコ−ドである。（すなわち、デ−タレコ−ド１５００が通常のレコ−ド１５０２ということになる。）一方、パリティレコ−ド１５０１は、ディスク装置１３０４に障害が発生した時、その回復処理に用いるレコ−ドである。
【０１０３】
図１６は、レコ−ド単位配置を行ったディスクアレイにおけるパリティグル−プ１６００の構成である。ディスク装置ａ１６０１からディスク装置ｄ１６０４までのｍ個のディスク装置１３０４上に、それぞれ対応するデ−タレコ−ド１５０１が格納されている。これらのｍ個のデ−タレコ−ド１５０１から、ｎ個のパリティレコ−ド１５０１が作成され、それぞれ対応するディスク装置ｅ１６０５からディスク装置ｆ１６０６に格納される。以上、図１６では、ｍ個のデ−タレコ−ド１５００とｎ個のパリティレコ−ド１５０１から、パリティグル−プ１６００が構成されている。一般に、ｎ個のパリティレコ−ド１５０１を含むパリティグル−プ１６００においては、そのパリティグル−プ１６００内のレコ−ド１５０２が格納されているｍ＋ｎ個ディスク装置のうち、ｎ台のディスク装置１３０４が故障しても、パリティグル−プ１６００内のすべてのレコ−ド１５０２の内容を回復することができる。
【０１０４】
図１６のパリティグル−プ１６００においては、ディスク装置ａ１６０１からディスク装置ｄ１６０４にデ−タレコ−ド１５００が、ディスク装置ｅ１６０５からディスク装置ｆ１６０６に格納されている。ただし、ディスク装置ａ１６０１からディスク装置ｄ１６０４までのディスク装置１３０４上に格納するすべてのレコ−ド１５０２を、デ−タレコ−ド１５００とする必要はない。同様に、ディスク装置ｅ１６０５からディスク装置ｆ１６０６までのディスク装置１３０４上のすべてのレコ−ド１５０２が、パリティレコ−ド１５００というわけではない。
【０１０５】
また、図１６においては、パリティグル−プ１６００が、ディスク装置ａ１６０１からディスク装置ｆ上に作成されているが、パリティグル−プ１６００が作成されるディスク装置１３０４の集合は、各パリティグル−プ１６００が異なったディスク装置１３０４上に存在してもよい。例えば、別のパリティグル−プ１６００がディスク装置ｂ１６０２からディスク装置ｇ１６０７に作成されてもよい。同様に、パリティグル−プ１６００を構成するレコ−ド１５０２の数もｍ＋ｎ個には限定されない。
【０１０６】
ただし、以下の実施例においては、簡略化のため、パリティグル−プ１６００の構成を、図１６に示したように、ｍ個のデ−タレコ−ド１５００とｎ個のパリティレコ−ド１５０１からなる構成とする。
【０１０７】
図１８は、キャッシュ１３０８の構成である。キャッシュ１３０８は、セグメント１８００により構成される。セグメント１８００は、ディスク装置１３０４上の１つのレコ−ド１５０２を格納する。
【０１０８】
図１９は、セグメント１８００の構成である。セグメント１８００は、ポインタ１９００とデ−タ領域１９０１により構成される。ポインタ１９００は、セグメント１８００が空いている時、他の空いたセグメント１８００とリンクするため用いる。デ−タ領域１９０１は、レコ−ド１５０２を格納する領域である。
【０１０９】
図２０は、ディレクトリ１３０９の構成である。レコ−ド票２０００は、レコ−ド１５０２がキャッシュ２０８上に格納されているか否かを確かめるため用いる。
【０１１０】
ＰＧ（Ｐａｒｉｔｙ  Ｇｒｏｕｐ）管理情報２００１は、キャッシュ１３０８に格納されたパリティグル−プ１６００内のレコ−ド１５０２を管理するための情報である。
【０１１１】
空きセグメントキュ−管理ポインタ２００２、空きＰＧ管理情報ポインタ２００３は、それぞれ空いた状態にあるセグメント１８００とＰＧ管理情報２００１を管理するポインタである。
【０１１２】
ディスク装置占有情報２００４は、ディスク装置１３０４対応にもつ情報であり、対応するディスク装置１３０４が占有状態にあること、すなわち、動作中であることを示す。
【０１１３】
ディスク装置待ち情報２００５も、ディスク装置１３０４対応にもつ情報であり、対応するディスク装置１３０４に対する処理装置１３００からのリ−ド／ライト要求が待ち状態にあることを示す。
【０１１４】
図２１は、レコ−ド票２０００の構成である。レコ−ド票２０００は、各ディスク装置１３０４上のレコ−ド１５０２対応にエントリをもつ。エントリは、ディスク装置１３０４の番号順、同一ディスク装置１３０４はレコ−ド１５０２の番号順に並べられる。エントリの内容は、当該レコ−ドに対応するパリティグル−プ１６００に属するレコ−ド１５０２がキャッシュ１３０８上にまったく格納されていない場合、ｎｕｌｌ値をとる。一方、当該レコ−ドに対応するパリティグル−プ１６００に属するレコ−ド１５０２がキャッシュ１３０８上に格納されている場合、対応するＰＧ管理情報２００１を指す。
【０１１５】
図２２は、ＰＧ管理情報２００１の構成である。
【０１１６】
空きポインタ２２０６は、当該ＰＧ管理情報２２０２が、空いている時、他の空いたＰＧ管理情報２２０２とリンクするため用いる。
【０１１７】
更新前セグメントポインタ２２００は、対応するレコ−ド１５０２の更新前の内容が格納されているセグメント１８００を表す。一方、更新後セグメントポインタ２２０１は、対応するレコ−ド１５０２の更新後の内容が格納されているセグメント１８００を表す。更新前セグメントポインタ２２００、更新後セグメントポインタ２２０１の双方が、ｎｕｌｌ値の場合、当該レコ−ド１５０２はキャッシュ１３０８に格納されていないことになる。
【０１１８】
ライトアフタビット２２０２は、対応するレコ−ド１５０２のライトアフタ処理１３１３を実行すべきことを示す情報である。
【０１１９】
ロ−ド要求ビット２２０３は、対応するレコ−ド１５０２をキャッシュ１３０８にロ−ドすべきことを示す情報である。
【０１２０】
更新前セグメントポインタ２２００、更新後セグメントポインタ２２０１、ライトアフタビット２２０２、ロ−ド要求ビット２２０３は、レコ−ド１５０２に対応に存在するため、ＰＧ管理情報２００１内には、それぞれｍ＋ｎ個存在する。（本実施例では、パリティグル−プ１６００は、ｍ＋ｎ個のレコ−ド１５０２で構成されることを前提としているため。）
ロック情報２２０４は、当該ＰＧ管理情報２００１に対応するパリティグル−プ１６００に対応するレコ−ド１５０２を操作中であることを示す。レコ−ド単位配置を行ったディスクアレイにおいて、ライト動作は、デ−タレコ−ド１５０１だけでなく、すべてのパリティレコ−ド１５０１を更新する。したがって、同一パリティグル−プ１６００内のライト動作は、ロック情報２２０４に従って、順次実行する（シリアライズする）必要がある。
【０１２１】
ロック待ち情報２２０５は、ライト動作を順次実行することを保証するため、待ち状態に入った処理装置１３００からのリ−ド／ライト要求が待ち状態にあることを示す。
【０１２２】
パリティ作成ビット２２０６は、当該ＰＧ管理情報２００１内に、パリティレコ−ド１５０１の更新値を作成するのに必要なレコ−ド１５０２が、キャッシュ１３０８に格納されたことを意味する。
【０１２３】
図２３は、空きセグメントキュ−２３００の構成を表す。先頭の空いた状態にあるセグメント１８００は、空きセグメントキュ−管理ポインタ２００２がポイントする。以降、それぞれのセグメント１８００内のポインタ１９００によってポイントされる。
【０１２４】
図２４は、空きＰＧ管理情報キュ−２４００の構成を表す。先頭の空いた状態にあるＰＧ管理情報２００１は、空きＰＧ管理情報ポインタ２００３がポイントする。以降、それぞれのＰＧ管理情報２００１内の空きポインタ２２０６によってポイントされる。
【０１２５】
図２５は、不揮発性メモリ１４００の構成である。不揮発性メモリ１４００は、不揮発性セグメント２５００により構成される。不揮発性セグメント２５００の構成は、セグメント１８００と同様の構成であるため、説明を省略する。
【０１２６】
また、不揮発性メモリ管理情報１４０１の構成は、ディレクトリ１３０９と同様であるため説明を省略する。
【０１２７】
すでに述べたように、本発明の目的は、パリティレコ−ド１５０１の更新値の作成を効率化することにより、レコ−ド単位配置のディスクアレイのライト処理の高性能化を実現する点にある。ここでは、パリティレコ−ドの更新値の作成を効率化という課題を、３つの課題にブレイクダウンする。以下、その概要を示す。  課題１…パリティレコ−ド１５０１の更新値の作成のために用いる情報の選択方式。すなわち、どのような情報を用いて、パリティレコ−ド１５０１の更新値を作成するかということである。
【０１２８】
課題２…パリティレコ−ド更新値の作成に関連した処理の非同期化。パリティレコ−ド更新値の作成に関連した処理を、処理装置から見て、非同期化することにより、パリティレコ−ド更新値の作成に関連した処理を処理装置から見た応答時間に含ませないようにする。
【０１２９】
課題３…パリティレコ−ドの更新値の作成契機。すなわち、どの契機で、パリティレコ−ドの更新値を作成するかということである。
【０１３０】
以下、本発明が、以上述べてきた課題をいかに解決するかを簡単に説明する。まず、課題１、すなわち、パリティレコ−ドの更新値を得るために用いる情報の選択方式について述べる。
【０１３１】
パリティグル−プヒット／ミス判定処理ａ６５００…本処理の概要を図６５を用いて説明する。
【０１３２】
パリティグル−プヒット／ミス判定処理ａ６５００は、パリティレコ−ド１５０１の更新値を得るために、ライト対象として指定されたデ−タレコ−ド１５００の更新前の値とパリティレコ−ド１５０１の更新前の値を用いる。したがって、処理装置１３００からライト対象として指定されたデ−タレコ−ドのヒット／ミス状態（キャッシュ１３０８内の存在状況）６５０１とパリティレコ−ド１５０１のヒット／ミス状態６５０２を、ディレクトリ１３０９を参照して判断する（６５０３）。この時、これらのレコ−ドのうちミスしているレコ−ドをキャッシュにロ−ドすることを決定する（６５０４）。
【０１３３】
パリティグル−プヒット／ミス判定処理ｂ６６００…本処理の概要を図６６を用いて説明する。
【０１３４】
パリティグル−プヒット／ミス判定処理ｂ６６００は、パリティレコ−ド１５０１の更新値を得るために、ライト対象として指定されたデ−タレコ−ドが属するパリティグル−プ１６００内の他のデ−タレコ−ド１５００を用いる。したがって、処理装置１３００からライト対象として指定されたデ−タレコ−ド１５００が属するパリティグル−プ内の他のデ−タレコ−ドのヒット／ミス状態６６０１を、ディレクトリ１３０９を参照して判断する（６６０２）。この時、これらのレコ−ドのうちミスしているレコ−ドをキャッシュにロ−ドすることを決定する。（６６０３）
パリティグル−プヒット／ミス判定処理ｃ６７００…本処理の概要を図６７を用いて説明する。
【０１３５】
パリティグル−プヒット／ミス判定処理ｃ６７００は、ライト対象として指定されたデ−タレコ−ド１５００の更新前の値のヒット／ミス状態６５０１とパリティレコ−ドの更新前の値のヒット／ミス状態６５０２と、パリティグル−プ内の他のデ−タレコ−ドのヒット／ミス状態６６０１を判別する。
【０１３６】
この結果、パリティグル−プヒット／ミス判定処理ａ６５００、パリティグル−プヒット／ミス判定処理ｂ６６００のうち、性能的に有利な方を選択し、制御を移す。例えば、ライト対象として指定されたデ−タレコ−ド１５００のパリティグル−プ１６００内の他のすべてのデ−タレコ−ド１５００がキャッシュに存在し、パリティレコ−ド１５０１が存在しない場合、パリティグル−プヒット／ミス判定処理ｂ６６００を選択した方が効率的である。
【０１３７】
次に、課題２に対応した非同期処理化について説明する。本発明では、以下の４種類の非同期処理を設ける。
【０１３８】
非同期処理ａ６８００…本処理の概要を図６８に示す。
【０１３９】
非同期処理ａ６８００は、更新後パリティレコ−ド１０８（パリティレコ−ドの更新後の値）を作成するために、更新前デ−タレコ−ド１０５（デ−タレコ−ドの更新前の値）と更新前パリティレコ−ド１０７（パリティレコ−ドの更新前の値６８０３）を用いる場合に、実行される。したがって、本処理は、パリティグル−プヒット／ミス判定処理ａ６５００と組み合わせて、用いられる。さらに、本処理は、更新後デ−タレコ−ド１０６（ライト対象として指定されたデ−タレコ−ド１５００の更新値）をディスク装置１３０４上で更新する処理を、処理装置１３００からのライト要求と同期化して実行する場合に用いられる。
【０１４０】
この場合、更新前デ−タレコ−ド１０５がキャッシュ１３０８になかった場合、更新前デ−タレコ−ド１０５をキャッシュ１３０８にロ−ドする処理は、処理装置１３００からのライト要求と同期化して実行せざるを得ない（６８０４）。以上より、この場合、非同期化可能な処理は、以下の（１）と（２）に示した処理となる。
【０１４１】
（１）更新前パリティレコ−ド１０７がキャッシュ１３０８に存在しない場合のロ−ド処理（６８０５）
（２）更新後パリティレコ−ド１０８のディスク装置１３０４への書き込み処理（６８０５）
非同期処理ｂ６９００…本処理の概要を図６９に示す。
【０１４２】
非同期処理ｂ６９００も、更新後パリティレコ−ド１０８を作成するために、更新前デ−タレコ−ド１０５と更新前パリティレコ−ド１０７を用いる場合に、実行される。したがって、本処理も、パリティグル−プヒット／ミス判定処理ａと組み合わせて、用いられる。ただし、本処理は、更新後デ−タレコ−ド１０６をディスク装置１３０４上で更新する処理を、処理装置１３００からのライト要求と同期化して実行する場合に用いられる。
【０１４３】
したがって、以下の（１）から（４）までに示したすべての処理を非同期化できる。
【０１４４】
（１）更新前デ−タレコ−ド１０５が、キャッシュ１３０８にない場合のロ−ド処理（６８０５）
（２）更新後デ−タレコ−ド１０６ディスク装置１３０４への書き込み処理（６８０５）
（３）更新前パリティレコ−ド１０７がキャッシュ１３０８に存在しない場合のロ−ド処理（６８０５）
（４）更新後パリティレコ−ド１０８のディスク装置１３０４への書き込み処理（６８０５）
非同期処理ｃ７０００…本処理の概要を図７０に示す。
【０１４５】
非同期処理ｃ７０００は、更新後パリティレコ−ド１０８を作成するために、グル−プ内他デ−タレコ−ド７０２（ライト対象として指定されたデ−タレコ−ド１５００のパリティグル−プ１６００内の他のデ−タレコ−ド１５００）を用いる場合に使用する。したがって、本処理は、パリティグル−プヒット／ミス判定機能２と組み合わせて、用いられる。さらに、非同期処理ｃ７０００は、更新後デ−タレコ−ド１０６を、ディスク装置１３０４上で更新する処理を処理装置１３００からのライト要求と同期化して実行する場合に用いられる。
【０１４６】
グル−プ内他デ−タレコ−ド７０２は、更新後デ−タレコ−ド１０６を、ディスク装置１３０４上に書き込んだ後でも、得ることができる。したがって、以下の（１）から（３）までに示したのすべての処理を非同期化することができる。
（１）キャッシュ１３０８に存在しないグル−プ内他デ−タレコ−ド７０２をキャッシュ１３０８へロ−ドする処理（６８０５）
（２）更新前パリティレコ−ド１０７がキャッシュ１３０８に存在しない場合のロ−ド処理（６８０５）
（３）更新後パリティレコ−ド１０８のディスク装置１３０４への書き込み処理（６８０５）
非同期化処理ｄ７１００……本処理の概要を図７１に示す。
【０１４７】
非同期処理ｄ７１００は、更新後パリティレコ−ド１０８を作成するために、グル−プ内他デ−タレコ−ド７０２をキャッシュ１３０８にロ−ドする場合に、使用する。したがって、本機能は、パリティグル−プヒット／ミス判定機能２と組み合わせて、用いられる。さらに、更新後デ−タレコ−ド１０８を、ディスク装置１３０４上で更新する処理を処理装置１３００からのライト要求と非同期に実行する場合に用いられる。
【０１４８】
この場合、更新後デ−タレコ−ド１０６を、ディスク装置１３０４上で更新する処理を非同期化するため、（１）から（４）までに示したすべての処理を非同期化できる。
【０１４９】
（１）キャッシュ１３０８に存在しないグル−プ内他デ−タレコ−ド７０２をキャッシュ１３０８へロ−ドする処理（６８０５）
（２）更新後デ−タレコ−ド１０６ディスク装置１３０４への書き込み処理（６８０５）
（３）更新前パリティレコ−ド１０７がキャッシュ１３０８に存在しない場合のロ−ド処理（６８０５）
（４）更新後パリティレコ−ド１０８のディスク装置１３０４への書き込み処理（６８０５）
次に、課題３の解決、すなわち、更新後パリティレコ−ド１０８の作成契機について説明する。
【０１５０】
更新後パリティレコ−ド１０８の作成契機は、３種類の契機が考えられる。それぞれの作成契機について説明する。
【０１５１】
パリティ作成契機ａ…まず、第１に考えられる更新後パリティレコ−ド１０８の作成契機は、図７２に示すように、処理装置１３００から指定された更新後デ−タレコ−ド１０６を、制御装置１３０５が処理装置１３００との間で転送する（７２０２）契機である。この場合、更新後パリティレコ−ドを作成するために必要な情報７２０１は、すべてキャッシュに格納されていなければならない。また、図７２に示すように、更新後パリティレコ−ド１０８の作成そのものは、パリティ作成装置７２００が実行する。
【０１５２】
パリティ作成契機ｂ…次に考えられる更新後パリティレコ−ド１０８の作成契機は、図７３に示すように、更新後パリティレコ−ドを作成するために必要な情報７２０１の中の最後の情報を、キャッシュ１３０８にロ−ドする（７３００）契機である。本パリティ作成契機においては、処理装置から指定されたデ−タレコ−ドに対する更新値は、すでに、キャッシュに格納されていることになる。
【０１５３】
パリティ作成契機ｃ…第３に考えられる更新後パリティレコ−ド１０８の作成契機は、図７４に示すように、更新後パリティレコ−ドを作成するために必要な情報７２０１から、パリティレコ−ドの更新値を作成しながらディスク装置に作成値を書き込むという契機である。（７４００）
パリティ作成契機ｄ…最後の考え方は、図８６に示すように、更新後パリティレコ−ド１０８を作成する契機を、制御装置１３０５のデ−タ転送処理とは、非同期に行うというものである。
【０１５４】
まず、本発明の概要を図１を用いて、説明する。
【０１５５】
制御装置１３０５は、処理装置１３００からライト要求を受け取ると、ヒット／ミス判定部ｈ１７００を用い、ディレクトリ１３０９を参照して、パリティレコ−ド１５０１の更新値（更新後パリティレコ−ド１０８）を作成するのに必要な情報がキャッシュ１３０８に存在するかをチェックする。（１７０５）
この場合、ライト要求と同期して、パリティレコ−ド１５０１の更新値を作成するのに必要な情報を用意しなければならない場合、制御装置１３０５は、まず、同期レコ−ドロ−ド部ｂ１７０２により、必要な情報をキャッシュ１３０８にロ−ドする。（１７０７）
次に、制御装置１３０５は、同期デ−タライト部ｍ１７０１を用いて、処理装置１３００から、デ−タレコ−ド１５０１に対するライトデ−タ１３１２を受け取る。この場合、ライト要求に対しては、ライトスル−処理１３１０、高速ライト処理１３１１、高信頼／高速ライト処理１４０２のどの処理を適用してもよい。この時、キャッシュ１３０８内にパリティレコ−ド１５０１の更新値を作成するのに必要な情報が揃っていれば、パリティレコ−ド１５０１の更新値の作成を行ってよい。（１７０６）
一方、パリティレコ−ド１５０１の更新値の作成を、パリティ作成部ｃ１７１０によって、処理装置１３００からのライト要求を完了させた後、実行してもよい。（１７１１）
パリティレコ−ド１５０１の更新値を作成するのに必要な情報を、処理装置１３００からのライト要求とは、非同期に用意してよい場合、制御装置１３０５は、非同期レコ−ドロ−ド部ｅ１７０３により、必要な情報をキャッシュ１３０８にロ−ドする。当該ロ−ド処理により、キャッシュ１３０８内にパリティレコ−ド１５０１の更新値を作成するのに必要な情報が揃う契機で、パリティレコ−ド１５０１の作成を行ってよい。（１７０８）
この場合も、パリティレコ−ド１５０１の更新値の作成を、パリティ作成部ｃ１７１０によって、キャッシュ１３０８内にパリティレコ−ド１５０１の更新値を作成するのに必要な情報をロ−ドする処理が完了した後、実行してもよい。（１７１１）
制御装置１３０５は、非同期レコ−ドライト部ｄ１７０４を用いて、パリティレコ−ド１５０１の更新値、高速ライト処理１３１１、高信頼／高速ライト処理１４０２を適用した場合のデ−タレコ−ド１５００のライトアフタ処理１３１３を実行する。この時、パリティレコ−ド１５０１の更新値を作成するのに必要な情報から、パリティレコ−ド１５０１の更新値を作成しながら、この値をディスク装置１３０４に書き込んでもよい。（１７０９）
本発明では、５つの実施例を説明する。以下、各実施例の内容について説明する。図１３、図１４、および、図１７に示した制御装置１３０５には、パリティレコ−ド１５０１を作成する装置を特に明示しなかったが、以下の実施例では、制御装置１３０５はパリティレコ−ドの更新値を作成する装置を含む。また、図８７には、図６５から図７４までに示した各課題を解決するための機構と、以下説明する各実施例との関係をまとめた。
【０１５６】
まず、第１の実施例について説明する。第１の実施例は、図８７に示したように、パリティグル−プヒット／ミス判定処理ａ６５００と非同期処理ａ６８００、を組み合わせた内容である。パリティ作成契機に関しては、すべてのパリティ作成契機、すなわち、パリティ作成契機ａ、パリティ作成契機ｂ、パリティ作成契機ｃ、パリティ作成契機ｄが関係する。
【０１５７】
したがって、第１の実施例の特長は以下のようである。
【０１５８】
（１）パリティレコ−ド１５０１の更新値（更新後パリティレコ−ド１０８）を作成するため、パリティグル−プヒット／ミス判定処理ａ６５００を用いる。具体的に用いる情報は、処理装置１３００からライト対象として指定されたデ−タレコ−ド１５００の更新前の値（更新前デ−タレコ−ド１０５）、処理装置１３００から受け取り、デ−タレコ−ド１５００に対し書き込むデ−タ（更新後デ−タレコ−ド１０６）とパリティレコ−ド１５０１の更新前の値（更新前パリティレコ−ド１０７）である。
【０１５９】
（２）また、パリティレコ−ド１５０１の更新値（更新後パリティレコ−ド１０８）を作成に伴う処理の非同期化処理については、非同期処理ａ６８００を用いる。すなわち、更新後デ−タレコ−ド１０６をディスク装置１３０４に書き込む処理を非同期化しない。すなわち、ライトスル−動作１３１０を実行する。
【０１６０】
（３）第１の実施例においては、パリティ作成契機に関して、パリティ作成契機ａ、パリティ作成契機ｂ、パリティ作成契機ｃ、パリティ作成契機ｄをすべての作成契機が組み合わされる。
【０１６１】
以下、第１の実施例の概要を、図６２、図２を用いて説明する。
【０１６２】
図６２は、第１の実施例において、ライト対象とするデ−タレコ−ド１５００が属するパリティグル−プ１６００内のすべての更新前パリティレコ−ド１０７が、キャッシュ１３０８に存在する場合の制御装置１３０５の動作を示したものである。すなわち、図６２は、第１の実施例において、パリティ作成契機として、図７２に示したパリティ作成契機ａが用いられた場合の、制御装置１３０５の動作を示したものである。
【０１６３】
この場合、更新後パリティレコ−ド１０８の作成契機は、更新後デ−タレコ−ド１０６を、ディスク装置１３０４に書き込む契機、すなわち、パリティ作成契機ａとなる。具体的には、制御装置１３０５が、同期デ−タライト部ａ１０１を用いて実行する。（１０９）更新後パリティレコ−ド１０８そのものの作成は、パリティ作成装置ａ１０４が実行する。
【０１６４】
更新後パリティレコ−ド１０８を作成する際には、更新前デ−タレコ−ド１０５が必要であるため、キャッシュ１３０８に格納されていない場合、更新後デ−タレコ−ド１０６を、ディスク装置１３０４に書き込む前に、制御装置１３０５は、同期デ−タロ−ド部ａ１０２を用いて、キャッシュ１３０８にロ−ドする。（１１０）
更新後パリティレコ−ド１０８は、非同期レコ−ドライト部ａ１０３を用いて、処理装置１３００のリ−ド／ライト要求とは、非同期に、ディスク装置１３０４に書き込む。（１１１）本実施例では、非同期レコ−ドライト部ａ１０３は、パリティレコ−ド１５０１を書き込むが、他の実施例においては、デ−タレコ−ド１５００を書き込む場合もある。
【０１６５】
図２は、第１の実施例において、ライト対象とするデ−タレコ−ド１５００が属するパリティグル−プ１６００内の更新前パリティレコ−ド１０７の中に、キャッシュ１３０８に存在しないものがある場合の制御装置１３０５の動作を示したものである。すなわち、図２は、第１の実施例において、パリティ作成契機として、図７３に示したパリティ作成契機ｂが用いられた場合の、制御装置１３０５の動作を示したものである。
【０１６６】
制御装置１３０５は、非同期レコ−ドロ−ド部ａ２０１を用いて、処理装置１３００からのリ−ド／ライト要求とは非同期に、キャッシュ１３０８に存在しない更新前パリティレコ−ド１０７をキャッシュ１３０８にロ−ドする。この場合、更新後パリティレコ−ド１０８の作成契機は、キャッシュ１３０８に存在しない最後の更新前パリティレコ−ド１０７をキャッシュ１３０８にロ−ドした時、すなわち、パリティ作成契機ｂとなる。（２０３）
本実施例では、非同期レコ−ドロ−ド部ａ２０１は、パリティレコ−ド１５０１をロ−ドするが、他の実施例においては、デ−タレコ−ド１５００をロ−ドする場合もある。
【０１６７】
更新後デ−タレコ−ド１０６は、図６２に示したように、制御装置１３０５が、同期デ−タライト部ｂ２００を用いて、ディスク装置１３０４へ書き込むが、この契機には、更新後パリティレコ−ド１０８は作成しない。（２０２）
同期デ−タロ−ド部ａ１０２と非同期レコ−ドライト部ａ１０３の動作は図６２の動作と同様であるため、説明を省略する。
【０１６８】
次に、図６２と図２に示した各処理部の詳細について説明する。
【０１６９】
まず、ヒット／ミス判定部ａ１００の動作を説明する。
【０１７０】
図２６、および、図２７は、ヒット／ミス判定部ａ１００の処理フロ−である。ヒット／ミス判定部ａ１００は、３つの実行開始点をもつ。
【０１７１】
第１の開始点は、図２６に示された開始点（ａ）であり、処理装置１３００からのライト要求を受け取った時、実行開始される開始点である。第２の開始点は、図２６に示された開始点（ｂ）であり、同期デ−タロ−ド部ａ１０２の処理が完了した時、実行開始される開始点である。第３の開始点は、図２７に示した待ち状態が開放された時の開始点である。まず、図２６の処理フロ−を説明を行う。
【０１７２】
まず、制御装置１３０５は、ライト対象となるディスク装置１３０４が空いているかを、ディスク装置占有情報２００４を見て判断する。ディスク装置が空いた状態にないとステップ２６１３へジャンプする。
【０１７３】
ディスク装置が空いた状態にあると、制御装置１３０５は、ステップ２６０１で、ディスク装置占有情報２００４を設定し、ライト対象となる更新前デ−タレコ−ド１０５のＰＧ管理情報２００１を見出す。ＰＧ管理情報２００１がなければ、空きＰＧ管理情報キュ−２４００を探索し、新たなＰＧ管理情報２００１を割り当てる。
【０１７４】
ステップ２６０２では、ロック情報２２０４を参照し、ライト処理の開始が可能かをチェックする。可能であれば、ステップ２６０３で、ロック情報を設定する。そうなければ、ステップ２６１１へジャンプする。
【０１７５】
ステップ２６０４では、制御装置１３０５は、一度処理装置１３００との接続を切り離す。
【０１７６】
ステップ２６０５では、制御装置１３０５は、更新前デ−タレコ−ド１０５がキャッシュに存在するかをチェックする。存在しない場合、ステップ２６０６で、同期デ−タロ−ド部ａ１０２をコ−ルし、一度処理を終了する。
【０１７７】
存在する場合、ステップ２６０７では、パリティグル−プ１６００内の更新前パリティレコ−ド１０７の中に、キャッシュ１３０８に存在しないものがあるかをチェックする。すべて存在すれば、ステップ２６１０へジャンプする。
【０１７８】
存在しないものがあれば、ステップ２６０８で、その更新前パリティレコ−ド１０７に対応するロ−ド要求ビット２２０４をオンにする。次に、ステップ２６０９では、制御装置１３０５は、同期デ−タライト部ｂ１０２を起動する。この後処理を終了する。
【０１７９】
ステップ２６１０では、制御装置１３０５は、同期デ−タライト部ａ１０１を起動する。この後処理を終了する。
【０１８０】
ステップ２６１１では、制御装置１３０５は、ロック待ち状情報２２０５をセットし、ディスク装置占有情報２００３をリセットする。そして、ステップ２６１２で、制御装置１３０５は、処理装置１３００との接続関係を一度切り、受け付けたライト要求を待ち状態にする。
【０１８１】
そして、ステップ２６１３で、制御装置１３０５は、ディスク待ち状情報２００４をセットする。この後、ステップ２６１２にジャンプする。
【０１８２】
同期ロ−ド転送部ａ１０２からの完了報告を受けると、図２６開始（ｂ）の処理から実行に入る。図２６の開始（ｂ）においては、制御装置１３０５は、ステップ２６０７から実行を開始する。ステップ２６０７以降の処理はすでに説明したため、以下の説明を省略する。
【０１８３】
図２７は、制御装置１３０５の待ち状態が開放された時、実行される処理フロ−である。ステップ２７００では、制御装置１３０５は、処理装置１３００と接続する。ステップ２７０１では、制御装置１３０５は、処理装置１３００に、ライト要求を再発行するように要求する。
【０１８４】
図２８、および、図２９は、同期デ−タロ−ド部ａ１０２の処理フロ−である。図２９は、ヒットミス判定部ａ１００からコ−ルされた時に実行される処理フロ−である。図２９は、ディスク装置１３０４の位置付け処理が完了した時に実行される処理フロ−である。
【０１８５】
まず、図２８の処理を説明する。
【０１８６】
ステップ２８００では、制御装置１３０５は、空きセグメントキュ−２４００等を探索し、セグメント１８００を確保し、更新前セグメントポインタ２２００に設定する。
【０１８７】
ステップ２８０１では、制御装置１３０５は、ディスク装置１３０４に対する位置付け要求を発行する。この後、処理を終了する。
【０１８８】
図２９は、ディスク装置１３０４の位置付け処理が完了した時に実行される。
ステップ２９００は、ディスク装置１３０４上のデ−タレコ−ド１５００を、更新前セグメントポインタ２２００で示されたセグメント１８００を、更新前デ−タレコ−ド１０５としてロ−ドする。
【０１８９】
ステップ２９０１では、制御装置１３０５は、ヒットミス判定部ａ１００の図２６図の開始点ｂに制御を移す。
【０１９０】
図３０、および、図３１は、同期デ−タライト部ａ１０１の処理フロ−である。図３０は、同期ロ−ド部ａ１０１が、ヒットミス判定部ａ１００からコ−ルされた時に実行される処理フロ−である。図３１は、ディスク装置１３０４の位置付け処理が完了した時に実行される処理フロ−である。
【０１９１】
まず、図３０の処理を説明する。
【０１９２】
ステップ３０００では、制御装置１３０５は、更新後デ−タレコ−ド１０６を格納するためのセグメント１８００が、確保されていない場合、次の処理を実行する。すなわち、空きセグメントキュ−２４００等を探索し、セグメント１８００を確保し、更新後セグメントポインタ２２００に設定する。
【０１９３】
ステップ３００１では、すべての更新後パリティレコ−ド１０８を格納するためのセグメント１８００が確保されていなければ、以下の処理を実行する。すなわち、空きセグメントキュ−２４００等を探索し、セグメント１８００を確保し、パリティレコ−ド１５０１用の更新後セグメントポインタ２２００に設定する。
【０１９４】
ステップ３００２では、制御装置１３０５は、ディスク装置１３０４に対する位置付け要求を発行する。この後、処理を終了する。
【０１９５】
図３１は、ディスク装置１３０４の位置付け処理が完了した時に実行される。
ステップ３１００では、制御装置１３０５は、処理装置１３００と再接続を行う。ステップ３１０１では、制御装置１３０５は、処理装置１３００から受け取ったデ−タをディスク装置１３０４を書き込むと同時に、さらに、以下の動作を実行する。
【０１９６】
（１）処理装置１３００から受け取ったデ−タを、更新後デ−タレコ−ド１０５として、更新後セグメントポインタ２２０１で示されたセグメント３０００に格納する。
【０１９７】
（２）更新前デ−タレコ−ド１０５、処理装置１３００から受け取ったデ−タとすべての更新前パリティレコ−ド１０７より、すべての更新後パリティレコ−ド１０８を作成し、対応する更新後セグメントポインタ２２０１で示されたセグメント１８００に格納する。
【０１９８】
ステップ３１０２では、制御装置１３０５では、ライト対象となったデ−タレコ−ド１５０１に対応する更新後デ−タレコ−ド１０６、および、すべての更新後パリティレコ−ド１０８を、それぞれ、更新前デ−タレコ−ド１０５、更新前パリティレコ−ド１０７に切り換える。具体的には、それまで対応する更新前セグメントポインタ２２００が示していたセグメント１８００を開放し、それまで対応する更新後セグメントポインタ２２０１が示していたセグメント１８００を、更新前セグメントポインタ２２００が示すようにする。そして、対応する更新後セグメントポインタ２２０１にはヌル値を設定する。
【０１９９】
さらに、制御装置１３０５は、ステップ３１０３で、すべてのパリティレコ−ド１５０１に対応するライトアフタビット２２０２を設定する。
【０２００】
この後、ステップ３１０４で、ロック情報２２０４、ディスク装置占有情報２００４をリセットする。ステップ３１０５で、制御装置１３０５は、処理装置１３００は、完了を報告する。
【０２０１】
図３２、および、図３３は、同期デ−タライト部ｂ２００の処理フロ−である。図３２は、同期デ−タライト部ｂ２００が、ヒットミス判定部ａ１００からコ−ルされた時に実行される処理フロ−である。図３３は、ディスク装置１３０４の位置付け処理が完了した時に実行される処理フロ−である。
【０２０２】
まず、図３２の処理を説明する。
【０２０３】
ステップ３２００では、制御装置１３０５は、更新後デ−タレコ−ド１０７を格納するためのセグメント１８００が、確保されていない場合、次の処理を実行する。すなわち、空きセグメントキュ−２４００等を探索し、セグメント１８００を確保し、更新後セグメントポインタ２２００に設定する。
【０２０４】
ステップ３２０１では、制御装置１３０５は、ディスク装置１３０４に対する位置付け要求を発行する。この後、処理を終了する。
【０２０５】
図３３は、ディスク装置１３０４の位置付け処理が完了した時に実行される。
ステップ３３００では、制御装置１３０５は、処理装置１３００と再接続を行う。ステップ３３０１では、制御装置１３０５は、処理装置１３００から受け取ったデ−タをディスク装置１３０４を書き込むと同時に、さらに、以下の動作を実行する。すなわち、処理装置１３００から受け取ったデ−タを、更新後デ−タレコ−ド１０５として、更新後セグメントポインタ２２０１で示されたセグメント１８００に格納する。
【０２０６】
処理装置１３００からあるデ−タレコ−ド１５００に対し、ライト要求を受け付けた時、キャッシュ１３０８内に、更新後デ−タレコ−ド１０５と更新前デ−タレコ−ド１０６の双方が格納されている場合がある。これを、図６３と図６４に示す。すなわち、この前にそのデ−タレコ−ドにライト要求、すなわち、前回ライト要求６３００を受け付けたとき、更新前パリティレコ−ド１０７の中にキャッシュ１３０８にロ−ドされていないもの（パリティレコ−ドａ６３０１）があったとする。この場合、前回ライト要求６３００で受け付けたライトデ−タを更新後デ−タレコ−ドａ６３０３として、キャッシュ１３０８に格納する。更新前デ−タレコ−ドａ６３０２は、さらに以前のライト要求で受け付けたライトデ−タに相当する。この場合、更新後デ−タレコ−ドａ６３０３（デ−タ内容Ｂ）を反映したパリティレコ−ド１５０１の更新値を作成していないため、ディスク装置１３０４上パリティレコ−ドａ６３０１のデ−タ内容Ｃは、明らかに、更新前デ−タレコ−ドａ６３０２（デ−タ内容Ａ）の内容から作成されていることになる。
【０２０７】
図６４は、以上のような状況で、更新前パリティレコ−ド１０７をロ−ド処理を行おうとした所、その処理の開始する前に、同じデ−タレコ−ド１５００にライト要求、すなわち、今回のライト要求６４００を受け付けた場合である。この時、今回のライト要求６４００で受け付けたデ−タを反映したパリティレコ−ド１５０１の更新値を作成するためには、更新前デ−タレコ−ドａ６３０２（デ−タ内容Ａ）を作成した時のデ−タレコ−ド１５００の値、すなわち、パリティレコ−ド１５０１の値を作成した時に用いたデ−タレコ−ド１５００の値、すなわち、更新前デ−タレコ−ドａ６３０２（デ−タ内容Ａ）が必要となる。したがって、図６４に示すように、更新前デ−タレコ−ドａ６３０２をキャッシュ１３０９内にそれまでどおり保持し、今回のライト要求６４００で受け付けたライトデ−タを、更新後デ−タレコ−ドｂ６４０１（デ−タ内容Ｄ）をキャッシュ１３０８に格納する。
【０２０８】
以上より、ステップ３３０１では、更新前デ−タレコ−ド１０７の方をキャッシュ１３０８に保持して、それまで更新後デ−タレコ−ド１０８を格納していたセグメント１８００（更新前デ−タレコ−ドａ６３０２に相当）更新後ポインタ２２０１で示したセグメント１８００に受け付けたライトデ−タ（更新後デ−タレコ−ドｂ６４０１に相当）を格納する。
【０２０９】
ステップ３３０２では、キャッシュ１３０８にロ−ドされていない更新前パリティレコ−ド１０７に対応するロ−ド要求ビット２２０３をオンにする。
【０２１０】
ステップ３３０３では、ロック情報２２０４、ディスク装置占有情報２００４をリセットする。
【０２１１】
この後、ステップ３３０４で、制御装置１３０５は、処理装置１３００に、完了を報告する。
【０２１２】
図３４、および、図３５は非同期レコ−ドロ−ド部ａ２０１の処理フロ−である。図３４は、制御装置１３０５の空いた時間を利用して実行される処理である。図３５は、ディスク装置１３０４からの位置付け処理が完了した時に実行される処理フロ−である。
【０２１３】
ステップ３４００で、制御装置１３０５は、デイスク装置占有情報２００４を参照して、空いた状態にあるディスク装置１３０４を見出す。
【０２１４】
ステップ３４０１では、制御装置１３０５は、見出したディスク装置１３０４の中で、ロ−ド要求ビット２２０３がオンのレコ−ド１５０２をもち、かつ、ロック情報２２０４がオフのＰＧ管理情報２００１を見出す。そして、制御装置１３０５はロック情報２２０４をオンにする。
【０２１５】
次に、制御装置１３０５は、見出したレコ−ド１５０２のロ−ド処理を行うことを決定し、ステップ３４０２で、セグメント１８００を確保し、ロ−ドするパリティレコ−ド１５０１に対応する更新前セグメントポインタ２２００に設定する。
【０２１６】
ステップ３４０３では、ディスク装置１３０４に位置付け要求を発行する。
【０２１７】
図３５では、制御装置１３０５は、まず、このレコ−ド１５０２のロ−ド処理によって、ＰＧ管理情報２００１内のロ−ド要求ビット２２０３がすべてオフになるかをチェックする。
【０２１８】
そうであれば、ステップ３５０２へジャンプする。そうでなければ、制御装置１３０５は、ステップ３５０１で、レコ−ド１５０２を更新前パリティレコ−ド１０７として、対応する更新前セグメントポインタ２２００が示すセグメント１８００にロ−ドし、ステップ３５０７にジャンプする。  当該ロ−ド処理により、ＰＧ管理情報２００１内のロ−ド要求ビット２２０３がすべてオフになる場合、この契機で、すべてのパリティレコ−ド１５０１の更新後パリティレコ−ド１０８を作成する。ステップ３５０２では、制御装置１３０５は、このためのセグメント１８００を確保し、各パリティレコ−ド１５０１に対応する更新後セグメントポインタ２２０１にポインタを設定する。
【０２１９】
ステップ３５０３では、制御装置１３０５は、当該パリティグル−プ１６００のデ−タレコ−ド１５００の中で、更新値をパリティグレコ−ド１５０１に反映していないすべてのデ−タレコ−ド１５００を探す。具体的には、更新前デ−タレコ−ド１０５と更新後デ−タレコ−ド１０６の内容をペアでキャッシュ内に保有しているデ−タレコ−ド、すなわち、更新前セグメントポインタ２２００と更新後セグメントポインタ２２０１がともにヌル値でないペアを探す。さらに、すべての更新前パリティレコ−ド１０７を探す。（したがって、当該ロ−ド処理が、デ−タレコ−ド１５００、パリティレコ−ド１５００、いずれのロ−ド処理であれ、当該ロ−ド処理でロ−ドされるレコ−ド１５００はパリティレコ−ド１５０１の作成に使用されることになる。）
ステップ３５０４では、当該レコ−ド１５０１を、対応する更新前セグメントポインタ２２００が示すセグメント１８００にロ−ドしながら、以下の操作を実行する。すなわち、パリティ作成装置ａ１０９により、ステップ３５０３で、見出した更新前デ−タレコ−ド１０５と更新後デ−タレコ−ド１０６とすべての更新前パリティレコ−ド１０７より、すべてのパリティレコ−ド１５０１の更新後パリティレコ−ド１０８を作成する。作成した更新後パリティレコ−ド１０８は、対応する更新後セグメントポインタ２２０１が示すセグメント１８００に格納する。
【０２２０】
ステップ３５０５では、制御装置１３０５は、ライト対象となったデ−タレコ−ド１５０１に対応する更新後デ−タレコ−ド１０６、および、すべての更新後パリティレコ−ド１０８を、それぞれ、更新前デ−タレコ−ド１０５、更新前パリティレコ−ド１０７に切り換える。具体的な処理内容は、ステップ３１０２で説明したため、ここでは省略する。
【０２２１】
さらに、制御装置１３０５は、ステップ３５０６で、すべてのパリティレコ−ド１５０１に対応するライトアフタビット２２０２を設定する。
【０２２２】
最後に、ステップ３５０７で、当該パリティレコ−ド１５０１に対応するロ−ド要求ビット２２０３をオフにする。さらに、ロック情報２２０４、ディスク装置占有情報２００４をリセットする。
【０２２３】
最後に、ステップ３５０８で、ディスク装置待ち情報２００５、ロック待ち情報２２０５をリセットし、待ち状態になっている処理装置からのリ−ド／ライト要求を解放する。この後、処理を終了する。
【０２２４】
図３６と図３７は、非同期レコ−ドライト部ａ１０４の処理フロ−である。図３６は、制御装置１３０５の空いた時間を利用して実行される処理である。図３７は、ディスク装置１３０４からの位置付け処理が完了した時に実行される処理フロ−である。
【０２２５】
ステップ３６００で、制御装置１３０５は、デイスク装置占有情報２００４を参照して、空いた状態にあるディスク装置１３０４を見出す。
【０２２６】
ステップ３６０１では、制御装置１３０５は、見出したディスク装置１３０４の中で、ライトアフタビット２２０２がオンで、ロ−ド要求ビット２２０２がオフのレコ−ド１５０２をもち、かつ、ロック情報２２０４がオフのＰＧ管理情報２００１を見出す。そして、制御装置１３０５は、ロック情報２２０４をオンにする。
【０２２７】
制御装置１３０５は、ステップ３６０２で、見出したレコ−ド１５０２のライトアフタ処理を行うことを決定し、ディスク装置１３０４に位置付け要求を発行する。
【０２２８】
図３７では、制御装置１３０５は、ステップ３７００で、当該レコ−ド１５０２に対応する更新前セグメントポインタ２２００と更新後セグメントポインタ２２０１を参照する。双方のポインタがヌル値でない場合、更新後セグメントポインタ２２０１が示すセグメント１８００内のデ−タをディスク装置１３０４に書き込む。更新後セグメントポインタ２２０１がヌル値の場合、更新前セグメントポインタ２２００が示すセグメント１８００内のデ−タをディスク装置１３０４に書き込む。（更新前セグメントポインタ２２００と更新後セグメントポインタ２２０１ともにヌル値でない場合、最近受け付けた更新後セグメントポインタ２２０１が示すセグメント１８００内のデ−タをディスク装置１３０４を書き込む。）
ステップ３７０１では、対応するライトアフタビット２２０２をオフする。さらに、ロック情報２２０４、ディスク装置占有情報２００４をリセットする。
【０２２９】
最後に、ステップ３７０２で、ディスク装置待ち情報２００５、ロック待ち情報２２０５をリセットし、待ち状態になっている処理装置からのリ−ド／ライト要求を解放する。この後、処理を終了する。
【０２３０】
図３は、第１の実施例の別の実現方法である。図１、図２で示した内容との相違は、更新後パリティレコ−ド１０８を作成する契機が、更新後パリティレコ−ド１０８そのものをディスク装置１３０４に書き込む契機であるという点である。すなわち、図３は、第１の実施例において、パリティ作成契機として、図７４に示したパリティ作成契機ａが用いられた場合の、制御装置１３０５の動作を示したものである。
【０２３１】
図３に示すように、非同期レコ−ドライト部ｂ３０３により、更新前デ−タレコ−ド１０５、更新後デ−タレコ−ド１０６、更新前パリティレコ−ド１０７から、パリティ作成装置ａ１０４から更新後デ−タレコ−ド１０７を作成しながら、これをディスク装置１３０４に書き込む。
【０２３２】
したがって、図３に示したように、同期デ−タライト部ｃ３０１と非同期レコ−ドロ−ド部ｂ３０２には、更新後パリティレコ−ド１０８を作成する機能はない。
【０２３３】
以下、詳細な動作を説明する。
【０２３４】
図３８は、ヒットミス判定部ｂ３００の処理フロ−図である。ヒット／ミス判定部ｂ３００は、３つの実行開始点をもつ。
【０２３５】
第１の開始点は、図３８に示された開始点ａであり、処理装置１３００からのライト要求を受け取った時、実行される開始点である。第２の開始点は、図３８に示された開始点ｂであり、同期デ−タロ−ド部ａ１０２の処理が完了した時、実行される開始点である。ただし、第３の開始点は、待ち状態が開放された時の開始点であり、図２７に示したヒットミス判定部ａ１００の処理フロ−と同様となる。図２７は、すでに説明したため、ここでは、説明を省略する。以下、図３８の説明を行う。図３８に示したヒットミス判定ｂ３００の処理フロ−は、ヒットミス判定部ａ１００の図２６の処理フロ−に相当する。したがって、図２６との相違について説明する。図３８の中で、図２６と同様のステップ番号の処理は、図２６の処理と同様である。
【０２３６】
更新前デ−タレコ−ド１０５がキャッシュ１３０８に格納された後、ヒットミス判定部ｂ３００においては、必ず、ステップ３８００で、同期デ−タライト部ｃ３０１を起動する処理を実行される。以上の処理以外は、図３８の処理フロ−は、図２６の処理フロ−に含まれることになる。
【０２３７】
図３９は、同期デ−タライト部ｃ３０１が、ディスク装置１３０４の位置付け処理が完了した時に実行される処理フロ−である。ヒットミス判定部ｂ３００からコ−ルされた時に実行される処理フロ−は、図３２に示した処理フロ−であるため、ここでの説明を省略する。以下、図３９の説明を行う。図３９に示した同期デ−タライト部ｃ３０１の処理フロ−は、同期デ−タライト部ｂ２００の図３３の処理フロ−に相当する。したがって、図３３との相違について説明する。図３９の中で、図３３と同様のステップ番号の処理は、図３３の処理と同様である。  ステップ３９００で、制御装置１３０５は、すべての更新前パリティレコ−ド１０７が、キャッシュ１３０８内に格納されているかをチェックする。そうでなければ、ステップ３３０１へジャンプする。そうであれば、ステップ３９０１で、制御装置１３０５は、すべての更新前パリティレコ−ド１０７に対応するライトアフタビット２２０２をオンにする。この後、ステップ３３０２へジャンプする。これ以外の図３９の処理は、図３３に含まれるため、説明を省略する。
【０２３８】
図４０は、非同期レコ−ドロ−ド部ｂ３０２が、ディスク装置１３０４の位置付け処理が完了した時に実行される処理フロ−である。制御装置１３０５の空いた時間を利用して実行する処理処理フロ−は、図３４に示した処理フロ−であるため、ここでの説明を省略する。以下、図４０の説明を行う。図４０に示した非同期レコ−ドロ−ド部ｂ３０２の処理フロ−は、非同期レコ−ドロ−ド部ａ１０３の図３５の処理フロ−に相当する。図４０の処理フロ−は、図３５に示した処理フロ−に含まれる。これは、図４０では、更新後パリティレコ−ド１０８を作成する処理を含まない点以外は、図３５の処理と同様であるためである。図４０の内の各ステップの処理はすでに説明したため、ここでの説明は省略する。
【０２３９】
図４１と図４２は、非同期レコ−ドライト部ｂ３０２の処理フロ−である。図４１は、制御装置１３０５の空いた時間を利用して実行する処理処理フロ−である。図４２は、ディスク装置１３０４の位置付け処理が完了した時に実行される処理フロ−である。以下、図４１の説明を行う。図４１は、図３６に対応する処理フロ−である。したがって、図３６との相違について説明する。図４１の中で、図３６と同様のステップ番号の処理は、図３６の処理と同様である。
【０２４０】
ステップ４１００では、ライトするレコ−ド１５０２が、デ−タレコ−ド１５０１かパリティレコ−ド１５０１であるかどうかを判断する。
【０２４１】
ライトするレコ−ドが、パリティレコ−ド１５０１の場合、ステップ４１０１で、制御装置１３０５は、更新後パリティレコ−ド１０８を格納するためのセグメント１８００を確保する。そして、対応する更新後セグメントポインタ２２０１にそのポインタを設定する。これ以外の点は、図４１の処理フロ−は、図３６の処理フロ−と同様である。
【０２４２】
図４２は、図３７に対応する処理フロ−である。したがって、図３７との相違について説明する。図４２の中で、図３７と同様のステップ番号の処理は、図３７の処理と同様である。以下、図４２の説明を行う。
【０２４３】
図４２においては、まず、制御装置１３０５は、以下の処理を実行する。
【０２４４】
まず、ステップ４２００で、ライトするレコ−ド１５０２が、デ−タレコ−ド１５０１かパリティレコ−ド１５０１であるかどうかを判断する。
【０２４５】
デ−タレコ−ド１５００の場合、ステップ４２０１で、ステップ３７００で示した処理を実行する。
【０２４６】
パリティレコ−ド１５０１の場合、以下の処理を実行する。すなわち、まず、ステップ４２０１において、更新後デ−タレコ−ド１０６、更新前パリティレコ−ド１０７から、パリティ作成装置ａ１０４から更新後デ−タレコ−ド１０７を作成しながら、これをディスク装置１３０４に書き込む。さらに、この値を対応する更新後セグメントポインタ２２０１が示すセグメント１８００に格納する。ステップ４２０２では、すべてのライトアフタビット２２０１がオフであるかをチェックする。そうなければ、処理を終了する。
【０２４７】
そうであれば、ステップ４２０３で、制御装置１３０５は、ライト対象となったデ−タレコ−ド１５０１に対応する更新後デ−タレコ−ド１０６、および、すべての更新後パリティレコ−ド１０８を、それぞれ、更新前デ−タレコ−ド１０５、更新前パリティレコ−ド１０７に切り換える。具体的な処理内容は、ステップ３１０２で説明したため、ここでは省略する。これ以外の点は、図４２の処理フロ−は、図３７の処理フロ−と同様である。
【０２４８】
図７５は、第１の実施例の別の実現方法である。図７６の特徴は、更新後パリティレコ−ド１０８を作成する契機が、制御装置１３０５のデ−タ転送処理とは、非同期化している点である。すなわち、図７５は、第１の実施例において、パリティ作成契機として、図８６に示したパリティ作成契機ｄが用いられた場合の、制御装置１３０５の動作を示したものである。
【０２４９】
図７５に示すように、制御装置１３０５は、パリティ作成部ａ７５０１を用いて、更新前デ−タレコ−ド１０５、更新後デ−タレコ−ド１０６、更新前パリティレコ−ド１０７から、更新後デ−タレコ−ド１０８を作成する。（７５０４）以下、詳細な動作を説明する。ただし、ヒット／ミス判定部ｊ７５００以外の各処理部の説明はすでに行っているため、説明を省略する。
【０２５０】
図７９は、図７５のヒットミス判定部ｊ７５００の処理フロ−図である。ヒット／ミス判定部ｊ７５００は、３つの実行開始点をもつ。
【０２５１】
第１の開始点は、図７９に示された開始点ａであり、処理装置１３００からのライト要求を受け取った時、実行される開始点である。第２の開始点は、図７９に示された開始点ｂであり、同期デ−タロ−ド部ａ１０２の処理が完了した時、実行される開始点である。ただし、第３の開始点は、待ち状態が開放された時の開始点であり、図２７に示したヒットミス判定部ａ１００の処理フロ−と同様となる。図２７は、すでに説明したため、ここでは、説明を省略する。以下、図７９の説明を行う。図７９に示したヒットミス判定ｂ３００の処理フロ−は、ヒットミス判定部ａ１００の図２６の処理フロ−に相当する。したがって、図２６との相違について説明する。図７９の中で、図２６と同様のステップ番号の処理は、図２６の処理と同様である。
【０２５２】
図７９の処理フロ−では、制御装置１３０５は、ステップ２６０７で、更新前パリティレコ−ド１０７の中にキャッシュ１３０８に存在しないものがあるかを、チェックする。すべて存在する場合、ステップ７９００で、パリティ作成ビット２２０６をオンにする。この後、ステップ２６０９へジャンプする。以上の処理以外は、図７９の処理フロ−は、図２６の処理フロ−に含まれることになる。
図８３は、図７６の非同期レコ−ドロ−ド部ｆ７５０２が、ディスク装置１３０４の位置付け処理が完了した時に実行される処理フロ−である。制御装置１３０５の空いた時間を利用して実行する処理処理フロ−は、図３４に示した処理フロ−そのものであるため、ここでの説明を省略する。以下、図８３の説明を行う。図８３に示した非同期レコ−ドロ−ド部ｆ７５０２の処理フロ−は、非同期レコ−ドロ−ド部ａ１０３の図３５の処理フロ−に相当する。したがって、図３５との相違について説明する。図８３の中で、図３５と同様のステップ番号の処理は、図３５の処理と同様である。
【０２５３】
図８３の処理フロ−では、制御装置１３０５は、ステップ７９００で、当該ロ−ド処理で、ロ−ド要求ビット２２００３がすべてオフになる場合、パリティ作成ビット２２０６をオンにする。以上の処理以外は、図７９の処理フロ−は、図２６の処理フロ−に含まれることになる。
【０２５４】
図８４は、図７５のパリティ作成部ａ７５０１の処理フロ−である。
【０２５５】
ステップ８４００で、制御装置１３０５は、デイスク装置占有情報２００４を参照して、空いた状態にあるディスク装置１３０４を見出す。
【０２５６】
ステップ８４０１では、制御装置１３０５は、見出したディスク装置１３０４の中で、パリティ作成ビット２２０６がオンで、かつ、ロック情報２２０４がオフのＰＧ管理情報２００１を見出す。そして、制御装置１３０５はロック情報２２０４をオンにする。
【０２５７】
ステップ８４０３では、制御装置１３０５は、更新前デ−タレコ−ド１０５、更新後デ−タレコ−ド、更新前パリティレコ−ド１０７より、更新後パリティレコ−ド１０８を作成する。詳細は、図３５のステップ３５０４等を参照されたい。
【０２５８】
ステップ８４０４では、制御装置１３０５は、ライト対象となったデ−タレコ−ド１５０１に対応する更新後デ−タレコ−ド１０６、および、すべての更新後パリティレコ−ド１０８を、それぞれ、更新前デ−タレコ−ド１０５、更新前パリティレコ−ド１０７に切り換える。具体的な処理内容は、ステップ３１０２で説明したため、ここでは省略する。
【０２５９】
さらに、ステップ８４０５で、制御装置１３０５は、すべてのパリティレコ−ド１５０１に対応するライトアフタビット２２０２を設定する。さらに、パリティ作成ビット２２０６、ロック情報２２０４、ディスク装置占有情報２００４をリセットする。
【０２６０】
最後に、ステップ８４０６で、制御装置１３０５は、ロック待ち情報２２０５、ディスク装置待ち情報２００５を参照して、待ち状態になっている処理装置１３００からのリ−ドライト要求の待ちを解放する。
【０２６１】
次に、第２の実施例について説明する。第２の実施例は、図８７に示したように、パリティグル−プヒット／ミス判定処理ａ６５００、非同期処理ｂ６９０００を組み合わせた実施例である。ただし、パリティ作成契機に関しては、パリティ作成契機ａ、パリティ作成契機ｂ、パリティ作成契機ｃ、パリティ作成契機ｄが関係する。
【０２６２】
第２の実施例の特長を説明する。
【０２６３】
（１）パリティレコ−ド１５０１の更新値（更新後パリティレコ−ド１０８）を作成するため、パリティグル−プヒット／ミス判定処理ａ６５００を用いる。具体的に用いる情報は、ライト対象として指定されたデ−タレコ−ド１５００の更新前後の値（更新前デ−タレコ−ド１０５／更新後デ−タレコ−ド１０６）とパリティレコ−ド１５０１の更新前の値（更新前パリティレコ−ド１０７）である。（２）また、パリティレコ−ド１５０１の更新値（更新後パリティレコ−ド１０８）を作成に伴う処理の非同期化処理については、非同期処理ｂ６９００を用いる。すなわち、処理装置１３００から受け付けたライト要求に対して、制御装置１３０５に対して、高速ライト処理１３１３、あるいは、高信頼／高速ライト処理１４０２を適用する。
【０２６４】
（３）第２の実施例においても、パリティ作成契機に関しては、パリティ作成契機ａ、パリティ作成契機ｂ、パリティ作成契機ｃ、パリティ作成契機ｄをすべての作成契機が組み合わされる。
【０２６５】
図４は、第２の実施例において、ライト対象とするデ−タレコ−ド１５００の更新前デ−タレコ−ド１０５、および、対応するパリティグル−プ１６００内のすべての更新前パリティレコ−ド１０７が、キャッシュ１３０８に存在する場合の制御装置１３０５の動作を示したものである。すなわち、図４は、第２の実施例において、パリティ作成契機として、図７２に示したパリティ作成契機ａが用いられた場合の、制御装置１３０５の動作を示したものである。
【０２６６】
この場合、更新後パリティレコ−ド１０８の更新値の作成は、更新後デ−タレコ−ド１０６を、キャッシュ１３０８（および、不揮発性メモリ１４００）に書き込む際に、制御装置１３０５が、同期デ−タライト部ｄ４０１を用いて実行する。図４には示していないが、高信頼／高速ライト処理１４０２を適用する場合には、同期デ−タライト部ｄ４０１は、処理装置１３００から受け取ったデ−タを不揮発性メモリ１４００に書き込む機能も有することになる。（４０２）
更新後デ−タレコ−ド１０６、および、更新後パリティレコ−ド１０８は、非同期レコ−ドライト部ａ１０３を用いて、処理装置１３００のリ−ド／ライト要求とは非同期に、ディスク装置１３０５に書き込む。（１１１）
図５は、第２の実施例において、ライト対象とするデ−タレコ−ド１５００の更新前デ−タレコ−ド１０５、および、対応するパリティグル−プ１６００内のすべての更新前パリティレコ−ド１０７の中に、キャッシュ１３０８に存在しないものがある場合の制御装置１３０５の動作を示したものである。すなわち、図５は、第２の実施例において、パリティ作成契機として、図７３に示したパリティ作成契機ｂが用いられた場合の、制御装置１３０５の動作を示したものである。  この場合、制御装置１３０５が、同期レコ−ドロ−ド部ａ２０１を用いて、処理装置１３００からのリ−ド／ライト要求とは非同期に、キャッシュ１３０８に存在しない更新前デ−タレコ−ド１０５、あるいは、更新前パリティレコ−ド１０７にキャッシュ１３０８にロ−ドする。キャッシュ１３０８に存在しない更新前デ−タレコ−ド１０５、更新前パリティレコ−ド１０７の集合の中で、最後にキャッシュ１３０８に転送を行う契機で、すべてのパリティレコ−ド１５０２に関し、更新後パリティレコ−ド１０８を作成する。（２０３）
更新後デ−タレコ−ド１０６は、図５に示したように、同期デ−タライト部ｅ５００を用いて、ディスク装置１３０５へ書き込むが、この契機には、更新後パリティレコ−ド１０８は作成しない。（５０１）
非同期レコ−ドライト部ａ１０３の動作は図４の動作と同様であるため、説明を省略する。
【０２６７】
次に、図４と図５に示した各処理部の詳細について説明する。
【０２６８】
まず、ヒット／ミス判定部ｃ４００の動作を説明する。
【０２６９】
図４３は、ヒット／ミス判定部ｃ４００の処理フロ−である。図４３は、処理装置１３００からのライト要求を受け取った時、実行される処理フロ−である。一方、ヒット／ミス判定部ｃ４００の待ち状態が開放された時に実行開始される処理は、図２７に示した処理フロ−となる。図２７は、すでに説明したため、ここでは、説明を省略する。以下、図４３の説明を行う。図４３に示したヒット／ミス判定部ｃ４００の処理フロ−は、ヒット／ミス判定部ａ１００の第２６図の処理フロ−に相当する。したがって、図２６との相違について説明する。図４３の中で、図２６と同様のステップ番号の処理は、図２６の処理と同様である。
【０２７０】
ステップ４３０２で、更新前デ−タレコ−ド１０５、および、対応するパリティグル−プ１６００内のすべての更新前パリティレコ−ド１０７が、キャッシュ１３０８に存在するかをチェックした後、存在する場合、制御装置１３０５は、ステップ４３００で、同期デ−タライト部ｄ４０１をコ−ルし、処理を終了する。  存在しない場合、制御装置１３０５は、ステップ４３０１で、同期デ−タライト部ｅ５００をコ−ルし、処理を終了する。以上の処理以外は、図４３の処理フロ−は、図２６の処理フロ−に含まれるため、説明は省略する。
【０２７１】
図４４は、同期デ−タライト部ｄ４０１の処理フロ−である。図４４は、同期デ−タライト部ｄ４０１が、ヒット／ミス判定部ｃ４００からコ−ルされた時に実行される処理フロ−である。図４４に示した同期デ−タライト部ｄ３０１の処理フロ−は、同期デ−タライト部ａ１０１の図３０と図３１の処理フロ−に相当する。したがって、図３０と図３１との相違について説明する。図４４の中で、図３０と図３１と同様のステップ番号の処理は、図３０と図３１の処理と同様である。
【０２７２】
まず、制御装置１３０５は、ステップ４４００で、更新後デ−タレコ−ド１０６を格納するためのセグメント１８００、（不揮発性メモリ１４００にも格納する場合、不揮発性セグメント２５００も確保する。）
次に、ステップ４４０１で、制御装置１３０５は、すべての更新後パリティレコ−ド１０８を格納するためのセグメント１８００を確保する。（不揮発性メモリ１４００にも格納する場合、不揮発性セグメント２５００も確保する。）
ステップ４４０２では、制御装置１３０５は、以下の処理を実行する。
【０２７３】
（１）処理装置１３００から受け取ったデ−タを、更新後デ−タレコ−ド１０６として、更新後セグメントポインタ２２０１で示されたセグメント１８００に格納する。（不揮発性メモリ１４００にも格納する場合、不揮発性セグメント２５００にも格納する。）
（２）更新前デ−タレコ−ド１０５、処理装置１３００から受け取ったデ−タとすべての更新前パリティレコ−ド１０７より、すべての更新後パリティレコ−ド１０８を作成し、対応する更新後セグメントポインタ２２０１で示されたセグメント１８００に格納する。（不揮発性メモリ１４００にも格納する場合、不揮発性セグメント２５００格納する。）
さらに、ステップ４４０３では、制御装置１３０５は、その時、ライト要求を受け付けたデ−タレコ−ド１５００とすべてのパリティレコ−ド１５０１に対応するライトアフタビット２２０２を設定する。
【０２７４】
以上の処理以外は、図４４の処理は、図３０と図３１の処理に含まれるため説明を省略する。
【０２７５】
図４５は、同期デ−タライト部ｅ５００の処理フロ−である。図４５は、同期デ−タライト部ｂ２００が、ヒット／ミス判定部ａ１００からコ−ルされた時に実行される処理フロ−である。図４５に示した同期デ−タライト部ｅ５００の処理フロ−は、同期デ−タライト部ｂ２００の図３２と図３３の処理フロ−に相当する。したがって、図３２と図３３との相違について説明する。図４５の中で、図３２と図３３と同様のステップ番号の処理は、図３２と図３３の処理と同様である。
【０２７６】
以下、図４５の処理を説明する。
【０２７７】
まず、制御装置１３０５は、ステップ４５００で、更新後デ−タレコ−ド１０６を格納するためのセグメント１８００、（不揮発性メモリ１４００にも格納する場合、不揮発性セグメント２５００も確保する。）
ステップ４５０１では、制御装置１３０５は、処理装置１３００から受け取ったデ−タを、更新後セグメントポインタ２２０１で示されたセグメント１８００に格納する。（不揮発性メモリ１４００にも格納する場合、不揮発性セグメント２５００にも格納する。）さらに、対応するライトアフタビット２２０２をオンにする。更新前セグメントポインタ２２００で示されたセグメント１８００内のデ−タを保持する理由は、第１の実施例と同様である。理由については、ステップ３３０１で説明したため、省略する。
【０２７８】
ステップ４５０２では、制御装置１３０５は、ライト要求を受け付けたデ−タレコ−ド１５００に対応するライトアフタビット２２０２をオンにする。さらに、ライト要求を受け付けたデ−タレコ−ド１５００の更新前デ−タレコ−ド１０６がキャッシュに存在しない場合、対応するロ−ド要求ビットをセットする。
【０２７９】
以上の処理以外は、図４５の処理は、図３２と図３３の処理に含まれるため説明を省略する。
【０２８０】
非同期レコ−ドロ−ド部ａ２０１、非同期レコ−ドライト部ａ１０３の処理フロ−は、第１の実施例で説明したため、ここでは、説明を省略する。
【０２８１】
図６は、第２の実施例の別の実現方法である。図４、図５で示した内容との相違は、更新後パリティレコ−ド１０８を作成する契機が、更新後パリティレコ−ド１０８そのものをディスク装置１３０４に書き込む契機であるという点である。すなわち、図６は、第２の実施例において、パリティ作成契機として、図７４に示したパリティ作成契機ｃが用いられた場合の、制御装置１３０５の動作を示したものである。
【０２８２】
第１の実施例で図３に示した動作と同様、図６の動作でも、制御装置１３０５は、非同期レコ−ドライト部ｂ３０３により更新後パリティレコ−ド１０８の作成処理を行う。（６０２）
以下、詳細な動作を説明する。
【０２８３】
図４６は、ヒット／ミス判定部ｄ６００の処理フロ−である。図４６は、処理装置１３００からのライト要求を受け取った時、実行される処理フロ−である。一方、ヒット／ミス判定部ｄ６００の待ち状態が開放された時に実行開始される処理は、図２７に示した処理フロ−となる。図２７は、すでに説明したため、ここでは、説明を省略する。以下、図４６の説明を行う。図４６に示したヒット／ミス判定部ｄ６００の処理フロ−は、ヒット／ミス判定部ｃ４００の図４８の処理フロ−に相当する。したがって、図４６との相違について説明する。図４６の中で、図４６と同様のステップ番号の処理は、図２６の処理と同様である。
【０２８４】
ステップ４６００で、制御装置１３０５は、処理装置１３００から、ライト対象となるデ−タレコ−ド１５００に対するデ−タを受け取るために、無条件に、同期デ−タライト部ｆ６０１をコ−ルする。以上の処理以外は、図４６の処理フロ−は、図４３の処理フロ−に含まれる。
【０２８５】
図４７は、同期デ−タライト部ｆ６０１の処理フロ−である。本処理フロ−は、ヒット／ミス判定部ｄ６００からコ−ルされた時に実行される処理フロ−である。図４７に示した同期デ−タライト部ｆ６０１の処理フロ−は、同期デ−タライト部ｅ５００の図４５の処理フロ−に類似している。したがって、図４５との相違について説明する。図４７の中で、図４５と同じステップ番号の処理は、図４５の処理と同じである。
【０２８６】
ステップ４７００で、制御装置１３０５は、すべての更新前パリティレコ−ド１０７が、キャッシュ１３０８内に格納されているかをチェックする。そうでなければ、ステップ３３０１へジャンプする。そうであれば、ステップ４７０１で、制御装置１３０５は、すべての更新前パリティレコ−ド１０７に対応するライトアフタビット２２０２をオンにする。この後、ステップ３３０２へジャンプする。これ以外の図４７の処理は、図４５に含まれるため、説明を省略する。
【０２８７】
図７６は、第２の実施例の別の実現方法である。図７６の特徴は、更新後パリティレコ−ド１０８を作成する契機が、制御装置１３０５のデ−タ転送処理とは、非同期化している点である。すなわち、図７６は、第２の実施例において、パリティ作成契機として、図８６に示したパリティ作成契機ｄが用いられた場合の、制御装置１３０５の動作を示したものである。
【０２８８】
図７６に示すように、制御装置１３０５は、パリティ作成部ａ７５０１を用いて、更新前デ−タレコ−ド１０５、更新後デ−タレコ−ド１０６、更新前パリティレコ−ド１０７から、更新後デ−タレコ−ド１０８を作成する。（７５０４）以下、詳細な動作を説明する。ただし、ヒット／ミス判定部ｋ７６００以外の各処理部の説明はすでに行っているため、説明を省略する。
【０２８９】
図８０は、ヒット／ミス判定部ｋ８０００の処理フロ−図である。ヒット／ミス判定部ｂ３００は、２つの実行開始点をもつ。
【０２９０】
第１の開始点は、図８０に示された開始点であり、処理装置１３００からのライト要求を受け取った時、実行開始される開始点である。第２の開始点は、待ち状態が開放された時の開始点であり、ヒット／ミス判定部ａ１００の処理フロ−と同様であるため、図２７に示した処理フロ−となる。図２７は、すでに説明したため、ここでは、説明を省略する。以下、図８０の説明を行う。図８０に示したヒット／ミス判定ｋ８０００の処理フロ−は、ヒット／ミス判定部ａ１００の図４３の処理フロ−に相当する。したがって、図４３との相違について説明する。図８０の中で、図４３と同様のステップ番号の処理は、図４３の処理と同様である。
【０２９１】
図８０の処理フロ−では、制御装置１３０５は、ステップ４３０２で、更新前デ−タレコ−ド１０５、更新前パリティレコ−ド１０７の中にキャッシュ１３０８に存在しないものがあるかを、チェックする。すべて存在する場合、ステップ７９００で、パリティ作成ビット２２０６をオンにする。この後、ステップ４３０１へジャンプする。以上の処理以外は、図８０の処理フロ−は、図４３の処理フロ−に含まれることになる。
【０２９２】
次に、第３の実施例について説明する。第３の実施例は、図８７に示したように、第３の実施例は、パリティグル−プヒット／ミス判定処理ｂ６６００、非同期処理ｃ７０００の組合せである。ただし、パリティ作成契機に関しては、パリティ作成契機ａ、パリティ作成契機ｂ、パリティ作成契機ｃ、パリティ作成契機ｄが関係する。
【０２９３】
第３の実施例の特長を説明する。
【０２９４】
（１）パリティレコ−ド１５０１の更新値（更新後パリティレコ−ド１０８）を作成するため、パリティグル−プヒット／ミス判定処理ｂ６６００を用いる。具体的に用いる情報は、ライト対象として指定されたデ−タレコ−ド１５００の更新後の値と同一パリティグル−プ１６００内の他のすべてのデ−タレコ−ド１５００の値（グル−プ内他デ−タレコ−ド７０２）である。
【０２９５】
（２）また、パリティレコ−ド１５０１の更新値（更新後パリティレコ−ド１０８）を作成に伴う処理の非同期化処理については、非同期処理ｃ７０００を用いる。すなわち、更新後デ−タレコ−ド１０６をディスク装置１３０５に書き込む処理を非同期化しない。すなわち、ライトスル−処理１３１２を実行する。
【０２９６】
（３）第３の実施例においても、パリティ作成契機に関しては、パリティ作成契機ａ、パリティ作成契機ｂ、パリティ作成契機ｃ、パリティ作成契機ｄをすべての作成契機が組み合わされる。
【０２９７】
図７は、第３の実施例において、ライト対象とするデ−タレコ−ド１５００が属するパリティグル−プ１６００内のすべてのグル−プ内他デ−タレコ−ド７０２の中に、キャッシュ１３０８に存在しないものがない場合の制御装置１３０５の動作を示したものである。すなわち、図７は、第３の実施例において、パリティ作成契機として、図７２に示したパリティ作成契機ａが用いられた場合の、制御装置１３０５の動作を示したものである。
【０２９８】
この場合、更新後パリティレコ−ド１０８の更新値の作成は、更新後デ−タレコ−ド１０６を、ディスク装置１３０５に書き込む際に制御装置１３０５が、同期デ−タライト部ｇ７０１を用いて作成する。（７０４）ただし、パリティレコ−ド１５０１の更新値は、パリティ作成装置ｂ７０３を用いて実行する。
【０２９９】
更新後パリティレコ−ド１０８は、制御装置１３０５が、非同期レコ−ドライト部ａ１０３を用いて、処理装置１３００のリ−ド／ライト要求とは、非同期にディスク装置１３０５に書き込む。（１１１）
図８は、第３の実施例において、ライト対象とするデ−タレコ−ド１５００が属するパリティグル−プ１６００内のすべてのグル−プ内他デ−タレコ−ド７０２の中に、キャッシュ１３０８に存在しないものがある場合の制御装置１３０５の動作を示したものである。すなわち、図８は、第３の実施例において、パリティ作成契機として、図７３に示したパリティ作成契機ｂが用いられた場合の、制御装置１３０５の動作を示したものである。
【０３００】
この場合、制御装置１３０５が、非同期レコ−ドロ−ド部ｃ８０１を用いて、処理装置１３００からのリ−ド／ライト要求とは非同期に、キャッシュ１３０８に存在しないグル−プ内他デ−タレコ−ド７０２にキャッシュ１３０８にロ−ドする。（８０３）キャッシュ１３０８に存在しない最後のグル−プ内他デ−タレコ−ド７０２をキャッシュ１３０８にロ−ドした時、すべてのパリティレコ−ド１５０２に関し、更新後パリティレコ−ド１０８を作成する。
【０３０１】
更新後デ−タレコ−ド１０６は、第１図に示したように、同期デ−タライト部ｈ８００が、ディスク装置１３０５へ書き込むが、この契機には、更新後パリティレコ−ド１０８は作成しない。（８０２）
非同期レコ−ドライト部ａ１０３の動作は図７の動作と同様であるため、説明を省略する。
【０３０２】
次に、図７と図８に示した各処理部の詳細について説明する。
【０３０３】
まず、ヒット／ミス判定部ｅ７００の動作を説明する。
【０３０４】
図４８は、ヒット／ミス判定部ｅ７００の処理フロ−である。図４８は、処理装置１３００からのライト要求を受け取った時、実行される処理フロ−である。一方、ヒット／ミス判定部ｅ７００の待ち状態が開放された時に実行開始される処理は、図２７に示した処理フロ−となる。図２７は、すでに説明したため、ここでは、説明を省略する。以下、図４８の説明を行う。図４８に示したヒット／ミス判定部ｅ７００の処理フロ−は、ヒット／ミス判定部ｅ７００の図２６の処理フロ−に類似している。したがって、図２６との相違について説明する。図４８の中で、図２６と同様のステップ番号の処理は、図２６の処理と同様である。ステップ４８００では、制御装置１３０５は、ライト対象となるデ−タレコ−ド１５００が属するパリティグル−プ１６００内のすべてのグル−プ内他デ−タレコ−ド７０２の中に、キャッシュ１３０８に存在しないものがあるかどうかををチェックする。存在する場合、制御装置１３０５は、ステップ４８０１で、同期デ−タライト部ｇ７０１をコ−ルし、処理を終了する。
【０３０５】
存在しないものがある場合、制御装置１３０５は、ステップ４８０２で、同期デ−タライト部ｇ８００をコ−ルし、処理を終了する。以上の処理以外は、図４８の処理フロ−は、図２６の処理フロ−に含まれるため、説明は省略する。
【０３０６】
図４９は、同期デ−タライト部ｇ７０１が、ディスク装置１３０５の位置付け処理が完了した時に実行される処理フロ−である。ヒット／ミス判定部ｅ７００からコ−ルされた時に実行される処理フロ−は、図３０に示した処理フロ−であるため、ここでの説明を省略する。以下、図４９の説明を行う。図４９に示した同期デ−タライト部ｇ７０１の処理フロ−は、同期デ−タライト部ａ１０１の図３１の処理フロ−に類似している。したがって、図３１との相違について説明する。図４９の中で、図３１と同様のステップ番号の処理は、図３１の処理と同様である。
【０３０７】
ステップ４９００で、制御装置１３０５は、処理装置１３００から受け取ったデ−タをディスク装置１３０５を書き込むと同時に、さらに、以下の動作を実行する。
【０３０８】
（１）処理装置１３００から受け取ったデ−タを、更新後デ−タレコ−ド１０５として、更新後セグメントポインタ２２０１で示されたセグメント１８００に格納する。
【０３０９】
（２）処理装置１３００から受け取った更新後デ−タレコ−ド１０５とそれ以外のグル−プ内他デ−タレコ−ド７０２より、すべての更新後パリティレコ−ド１０８を作成し、対応する更新後セグメントポインタ２２０１で示されたセグメント１８００に格納する。
【０３１０】
ステップ４９０１では、制御装置１３０５は、ライト対象となったデ−タレコ−ド１５００、および、すべてのパリティレコ−ド１５０１に対応する更新後セグメントポインタ２２０１が示していたセグメント１８００を、更新前セグメントポインタ２２００が示すようにする。そして、対応する更新後セグメントポインタ２２０１にはヌル値を設定する。すなわち、更新後デ−タレコ−ド１０６、更新後パリティレコ−ド１０８を、更新前デ−タレコ−ド１０５と更新前パリティレコ−ド１０７に切り換える。以上の処理以外は、図４９の処理フロ−は、図３１の処理フロ−に含まれるため、説明は省略する。
【０３１１】
図５０は、同期デ−タライト部ｈ８００の処理フロ−である。ディスク装置１３０５の位置付け処理が完了した時に実行される処理フロ−である。ヒット／ミス判定部ｅ７００からコ−ルされた時に実行される処理フロ−は、図３２に示した処理フロ−であるため、ここでの説明を省略する。図５０に示した同期デ−タライト部ｈ８００の処理フロ−は、同期デ−タライト部ｂ２００の図３３の処理フロ−に類似している。したがって、図３３との相違について説明する。図５０の中で、図３３と同じステップ番号の処理は、図３３の処理と同じである。以下、図５０の処理を説明する。
【０３１２】
ステップ５０００では、制御装置１３０５は、キャッシュ１３０８に格納されていないデ−タレコ−ド１５００に対応するロ−ド要求ビット２２０３をオンにする。（ライト対象となったデ−タレコ−ド１５００に対応するロ−ド要求ビット２２０３がオンの場合、これをオフする。）
以上の処理以外は、図５０の処理は、図３３の処理に含まれるため説明を省略する。
【０３１３】
図５１は、非同期レコ−ドロ−ド部ｃ８０１が、ディスク装置１３０４からの位置付け処理が完了した時に実行される処理フロ−である。制御装置１３０５の空いた時間を利用して実行される処理フロ−は、図３４に示した処理フロ−であるため、ここでは説明を省略する。図５１は、同期レコ−ドロ−ド部ｃ２０１の図３５の処理フロ−に類似している。したがって、図３５との相違について説明する。図５１の中で、図３５と同じステップ番号の処理は、図３５の処理と同じである。以下、図５１の処理を説明する。
【０３１４】
ステップ３５００で、当該ロ−ド処理により、ＰＧ管理情報２００１内のロ−ド要求ビット２２０３がすべてオフになる場合、この契機で、すべてのパリティレコ−ド１５０１の更新後パリティレコ−ド１０８を作成するため、以下の処理を実行する。。
【０３１５】
ステップ５１００では、制御装置１３０５は、当該パリティグル−プ１６００のロ−ド処理対象とするデ−タレコ−ド１５００以外のすべてのデ−タレコ−ド１５００に対応するセグメント１８００を探す。この場合、更新後デ−タレコ−ド１０８と更新前デ−タレコ−ド１０７の両方が存在する場合は、更新後デ−タレコ−ド１０８を選択する。どちらか一方しか存在しない場合、存在しているものを選択する。
【０３１６】
ステップ５１０１では、ロ−ドしてきた当該デ−タ１５０１を更新前セグメントポインタ２２００が示すセグメント１８００にロ−ドしながら、以下の操作を実行する。すなわち、パリティ作成装置ｂ７０３により、ステップ５１００で、見出したデ−タレコ−ド１５００とロ−ド中のデ−タレコ−ド１５００より、すべてのパリティレコ−ド１５０１の更新後パリティレコ−ド１０８を作成する。作成した更新後パリティレコ−ド１０８は、対応する更新後セグメントポインタ２２０１が示すセグメント１８００に格納する。
【０３１７】
ステップ５１０２では、制御装置１３０５は、ライト対象となったデ−タレコ−ド１５００、および、すべてのパリティレコ−ド１５０１に対応する更新後セグメントポインタ２２０１が示していたセグメント１８００を、更新前セグメントポインタ２２００が示すようにする。そして、対応する更新後セグメントポインタ２２０１にはヌル値を設定する。すなわち、更新後デ−タレコ−ド１０６、更新後パリティレコ−ド１０８を、更新前デ−タレコ−ド１０５と更新前パリティレコ−ド１０７に切り換える。
【０３１８】
以上の処理以外は、図５１の処理は、図３５の処理に含まれるため説明を省略する。
【０３１９】
非同期レコ−ドライト部ａ１０３は、すでに説明済みであるため、説明を省略する。
【０３２０】
図９は、第３の実施例のもう１つの実現方法である。図７、図８で示した内容との相違は、更新後パリティレコ−ド１０８を作成する契機が、更新後パリティレコ−ド１０８そのものをディスク装置１３０４に書き込む契機であるという点である。（９０６）すなわち、図９は、第３の実施例において、パリティ作成契機として、図７４に示したパリティ作成契機ｃが用いられた場合の、制御装置１３０５の動作を示したものである。
【０３２１】
第１の実施例で図３に示した動作と同様に、図９の動作でも、制御装置１３０８は、非同期レコ−ドライト部ｃ９０３を用いて、更新後パリティレコ−ド１０８の作成処理を行いながら、これをディスク装置１３０４に書き込む。
【０３２２】
したがって、同期デ−タライト部ｉ９０１、非同期レコ−ドロ−ド部ｄ９０２には、更新後パリティレコ−ド１０８を作成する機能はない。
【０３２３】
以下、詳細な動作を説明する。
【０３２４】
図５２は、ヒット／ミス判定部ｆ９００の処理フロ−である。図５２は、処理装置１３００からのライト要求を受け取った時、実行される処理フロ−である。一方、ヒット／ミス判定部ｆ９００の待ち状態が開放された時に実行開始される処理は、図２７に示した処理フロ−となる。図２７は、すでに説明したため、ここでは、説明を省略する。以下、図５２の説明を行う。図５２に示したヒットミス判定部ｆ９００の処理フロ−は、ヒットミス判定部ｂ３００の図３８の処理フロ−に類似している。したがって、第３８図との相違について説明する。図５２の中で、図３８と同様のステップ番号の処理は、図３８の処理と同様である。
【０３２５】
ステップ５２００で、制御装置１３０５は、処理装置１３００から、ライト対象となるデ−タレコ−ド１５００に対するデ−タを受け取るために、無条件に、同期デ−タライト部ｉ９０１をコ−ルする。以上の処理以外は、図５２の処理フロ−は、第３８図の処理フロ−に含まれるため、説明を省略する。
【０３２６】
図５３は、同期デ−タライト部ｉ９０１が、ディスク装置１３０５の位置付け処理が完了した時に実行される処理フロ−である。ヒット／ミス判定部ｂ３００からコ−ルされた時に実行される処理フロ−は、図３２に示した処理フロ−であるため、ここでの説明を省略する。以下、図５３の説明を行う。図５３に示した同期デ−タライト部ｉ９０１の処理フロ−は、同期デ−タライト部ｈ８０１の図５０の処理フロ−に類似している。したがって、図５０との相違について説明する。図５０の中で、図５０と同様のステップ番号の処理は、図５０の処理と同様である。
【０３２７】
ステップ５３００では、制御装置１３０５は、グル−プ内他デ−タレコ−ド７０２（他のデ−タレコ−ド１５００）が、キャッシュ１３０８内に格納されているかをチェックする。そうでない場合、ステップ５０００へジャンプする。そうあれれば、ステップ５３０１で、制御装置１３０５は、すべての更新前パリティレコ−ド１０７に対応するライトアフタビット２２０２をオンにする。この後、ステップ３３０２へジャンプする。これ以外の図５３の処理は、図５０に含まれるため、説明を省略する。
【０３２８】
図５４は、非同期レコ−ドロ−ド部ｄ９０２が、ディスク装置１３０５の位置付け処理が完了した時に実行される処理フロ−である。制御装置１３０５の空いた時間を利用して実行する処理フロ−は、図３４に示した処理フロ−であるため、ここでの説明を省略する。以下、図５４の説明を行う。図５４に示した非同期レコ−ドロ−ド部ｄ９０２の処理フロ−は、非同期レコ−ドロ−ド部ｃ８０１の第５１図の処理フロ−に類似している。図５４の処理フロ−は、図５１に示した処理フロ−に含まれる。これは、図５４では、更新後パリティレコ−ド１０８を作成する処理を含まない点以外は、図５１の処理と同様であるためである。図５１の内の各ステップの処理はすでに説明したため、ここでの説明は省略する。
【０３２９】
図５５は、非同期レコ−ドライト部ｃ９０３の処理フロ−である。制御装置１３０５の空いた時間を利用して実行される処理フロ−は、図４１に示した処理フロ−であるため、ここでは説明を省略する。図５５は、非同期レコ−ドライト部ｂ３０２の図４２の処理フロ−に類似している。したがって、図４２との相違について説明する。図５５の中で、図４２と同じステップ番号の処理は、図４２の処理と同じである。以下、図５５の処理を説明する。
【０３３０】
ステップ５５００では、制御装置１３０５は、以下の処理を実行する。すなわち、キャッシュ内のパリティグル−プ１６００内のすべてのデ−タレコ−ド１５００から、パリティ作成装置ｂ７０３を用いて更新後デ−タレコ−ド１０７を作成しながら、これをディスク装置１３０４に書き込む。（キャッシュ１３０８内のデ−タレコ−ド１５００の具体的な選択方法については、ステップ５１００で説明したとおりである。）さらに、この値を更新後セグメントポインタ２２０１が示すセグメント１８００に格納する。
【０３３１】
すべてのライトアフタビット２２０２がオフになった場合には、ステップ５５０１で、制御装置１３０５は、ライト対象となったデ−タレコ−ド１５００、および、すべてのパリティレコ−ド１５０１に対応する更新後セグメントポインタ２２０１が示していたセグメント１８００を、更新前セグメントポインタ２２００が示すようにする。そして、対応する更新後セグメントポインタ２２０１にはヌル値を設定する。
【０３３２】
以上の点以外は、図５５の処理フロ−は図４２の処理フロ−と同様である。
【０３３３】
図７７は、第３の実施例の別の実現方法である。図７７の特徴は、更新後パリティレコ−ド１０８を作成する契機が、制御装置１３０５のデ−タ転送処理とは、非同期化している点である。すなわち、図７７は、第３の実施例において、パリティ作成契機として、図８６に示したパリティ作成契機ｄが用いられた場合の、制御装置１３０５の動作を示したものである。
【０３３４】
図７７に示すように、制御装置１３０５は、パリティ作成部ｂ７７０１により、更新後デ−タレコ−ド１０６とグル−プ内他デ−タレコ−ド７０２から、パリティ作成装置ｂ７０３を用いて更新後デ−タレコ−ド１０８を作成する。（７７０２）
以下、詳細な動作を説明する。ただし、ヒット／ミス判定部ｌ７７００、パリティ作成部ｂ７７０１以外の各処理部の説明はすでに行っているため、説明を省略する。
【０３３５】
図８１は、ヒット／ミス判定部ｌ８１００の処理フロ−図である。ヒット／ミス判定部ｌ８１００は、２つの実行開始点をもつ。
【０３３６】
第１の開始点は、図８１に示された開始点であり、処理装置１３００からのライト要求を受け取った時、実行開始される開始点である。第２の開始点は、待ち状態が開放された時の開始点であり、ヒット／ミス判定部ａ１００の処理フロ−と同様であるため、図２７に示した処理フロ−となる。図２７は、すでに説明したため、ここでは、説明を省略する。以下、図８１の説明を行う。図８１に示したヒット／ミス判定ｌ８１００の処理フロ−は、ヒット／ミス判定部ａ１００の図４８の処理フロ−に相当する。したがって、図４８との相違について説明する。図８１の中で、図４８と同様のステップ番号の処理は、図４８の処理と同様である。
【０３３７】
図８１の処理フロ−では、制御装置１３０５は、ステップ４８００、パリティグル−プ１６００内の他のデ−タレコ−ド１５００の中に存在しないものがあるかを、チェックする。すべて存在する場合、ステップ７９００で、パリティ作成ビット２２０６をオンにする。この後、ステップ４８０２へジャンプする。以上の処理以外は、図８１の処理フロ−は、図４８の処理フロ−に含まれることになる。
【０３３８】
図８５は、パリティ作成部ｂ７７０１の処理フロ−図である。図８５に示したパリティ作成部ｂ７７０１の処理フロ−は、パリティ作成部ａ７５０１の図８４の処理フロ−に相当する。したがって、図８４との相違について説明する。図８５の中で、図８４と同様のステップ番号の処理は、図８４の処理と同様である。ステップ８５００では、制御装置１３０５は、更新後デ−タレコ−ド１０６とグル−プ内他デ−タレコ−ド７０２から、更新後デ−タレコ−ド１０８を作成する。更新後パリティレコ−ド１０８を作成する。詳細は、ステップ３５０４等を参照されたい。以上の処理以外は、図８５の処理フロ−は、図８４の処理フロ−に含まれることになる。
【０３３９】
次に、第４の実施例について説明する。第４の実施例は、図８７に示したように、パリティグル−プヒット／ミス判定処理ｂ６６００、非同期処理ｄ７１００の組合せである。ただし、パリティ作成契機に関しては、パリティ作成契機ａ、パリティ作成契機ｂ、パリティ作成契機ｃ、パリティ作成契機ｄが関係する。
【０３４０】
まず、第４の実施例の特長を説明する。
【０３４１】
（１）パリティレコ−ド１５０１の更新値（更新後パリティレコ−ド１０８）を作成するため、パリティグル−プヒット／ミス判定処理ｂ６６００を用いる。具体的に用いる情報は、ライト対象として指定されたデ−タレコ−ド１５００の更新後の値と同一パリティグル−プ１６００内の他のすべてのデ−タレコ−ド１５００の値（グル−プ内他デ−タレコ−ド７０２）である。
【０３４２】
（２）また、パリティレコ−ド１５０１の更新値（更新後パリティレコ−ド１０８）を作成に伴う処理の非同期化処理については、非同期処理ｄ７１００を用いる。すなわち、高速ライト処理１３１３、あるいは、高信頼／高速ライト処理１４０２を実行する。
【０３４３】
（３）第４の実施例においても、パリティ作成契機に関しては、パリティ作成契機ａ、パリティ作成契機ｂ、パリティ作成契機ｃ、パリティ作成契機ｄをすべての作成契機が組み合わされる。
【０３４４】
図１０は、第４の実施例において、ライト対象とするデ−タレコ−ド１５００が属するパリティグル−プ１６００内のすべてのグル−プ内他デ−タレコ−ド７０２が、キャッシュ１３０８に、存在する場合の制御装置１３０５の動作を示したものである。すなわち、図１０は、第４の実施例において、パリティ作成契機として、図７２に示したパリティ作成契機ａが用いられた場合の、制御装置１３０５の動作を示したものである。
【０３４５】
この場合、更新後パリティレコ−ド１０８の更新値の作成は、更新後デ−タレコ−ド１０６を、キャッシュ１３０８（および、不揮発性メモリ１４００）に書き込む際に、制御装置１３０５が、同期デ−タライト部ｊ１００１を用いて実行する。（１００２）この際、パリティ作成装置ｂ７０３を使用する。
【０３４６】
更新後デ−タレコ−ド１０６、および、更新後パリティレコ−ド１０８は、制御装置１３０５が、非同期レコ−ドライト部ａ１０３を用いて、処理装置１３００のリ−ド／ライト要求とは非同期に、ディスク装置１３０５に書き込む。（１１１）
図１１は、第４の実施例において、ライト対象とするデ−タレコ−ド１５００が属するパリティグル−プ１６００内のすべてのグル−プ内他デ−タレコ−ド７０２の中に、キャッシュ１３０８に存在しないものがある場合の制御装置１３０５の動作を示したものである。すなわち、図１１は、第４の実施例において、パリティ作成契機として、図７３に示したパリティ作成契機ａが用いられた場合の、制御装置１３０５の動作を示したものである。
【０３４７】
この場合、制御装置１３０５が、非同期レコ−ドロ−ド部ｃ９０１を用いて、処理装置１３００からのリ−ド／ライト要求とは非同期に、キャッシュ１３０８に存在しない更新前デ−タレコ−ド１０７にキャッシュ１３０８にロ−ドする。キャッシュ１３０８に存在しない最後の更新前パリティレコ−ド１０７をキャッシュ１３０８にロ−ドした時、すべてのパリティレコ−ド１５０２に関し、更新後パリティレコ−ド１０８を作成する。（８０４）
更新後デ−タレコ−ド１０６は、図１１に示したように、同期デ−タライト部ｋ１１００により、キャッシュ１３０８（不揮発性メモリ１４００に書き込む場合もある。）へ書き込むが、この契機には、更新後パリティレコ−ド１０８は作成しない。（１１１）
非同期レコ−ドライト部ａ３０２の動作は図１０の動作と同様であるため、説明を省略する。
【０３４８】
次に、図１０と図１１に示した各処理部の詳細について説明する。
【０３４９】
まず、ヒット／ミス判定部ｇ１０００の動作を説明する。
【０３５０】
図５６は、ヒット／ミス判定部ｇ１０００の処理フロ−である。図５６は、処理装置１３００からのライト要求を受け取った時、実行される処理フロ−である。一方、ヒット／ミス判定部ｇ１０００の待ち状態が開放された時に実行開始される処理は、図２７に示した処理フロ−となる。図２７は、すでに説明したため、ここでは、説明を省略する。以下、図５６の説明を行う。図５６に示したヒット／ミス判定部ｇ１０００の処理フロ−は、ヒット／ミス判定部ｅ７００の図４８の処理フロ−に類似している。したがって、図４８との相違について説明する。図５６の中で、図４８と同様のステップ番号の処理は、図４８の処理と同様である。
【０３５１】
ステップ５６００では、ライト対象となるデ−タレコ−ド１５００が属するパリティグル−プ１６００内のすべてのグル−プ内他デ−タレコ−ド７０２の中に、キャッシュ１３０８に存在する場合、制御装置１３０５は、ステップ５６００で、同期デ−タライト部ｊ１００１をコ−ルし、処理を終了する。
【０３５２】
存在しない場合、制御装置１３０５は、ステップ５６０１で、同期デ−タライト部ｋ１１００をコ−ルし、処理を終了する。以上の処理以外は、図５６の処理フロ−は、図４８の処理フロ−に含まれるため、説明は省略する。
【０３５３】
図５７は、同期デ−タライト部ｊ１００１の処理フロ−である。図５７は、同期デ−タライト部ｊ１００１が、ヒット／ミス判定部ｇ１０００からコ−ルされた時に実行される処理フロ−である。図５７に示した同期デ−タライト部ｊ１００１の処理フロ−は、図４４の同期デ−タライト部ｄ４０１の処理フロ−に類似している。したがって、図４４との相違について説明する。図５７の中で、図４４と同様のステップ番号の処理は、図４４の処理と同様である。
【０３５４】
ステップ５７００で、制御装置１３０５は、処理装置１３００から受け取ったデ−タを、更新後デ−タレコ−ド１０５として、更新後セグメントポインタ２２０１で示されたセグメント１８００に格納する。（不揮発性メモリ１４００に格納する場合、不揮発性セグメント２５００にも転送する。）さらに、以下の処理を実行する。
【０３５５】
処理装置１３００から受け取った更新後デ−タレコ−ド１０５とそれ以外のグル−プ内他デ−タレコ−ド７０２より、すべての更新後パリティレコ−ド１０８を作成し、対応する更新後セグメントポインタ２２０１で示されたセグメント１８００に格納する。
【０３５６】
ステップ５７０１では、制御装置１３０５は、ライト対象となったデ−タレコ−ド１５００、および、すべてのパリティレコ−ド１５０１に対応する更新後セグメントポインタ２２０１が示していたセグメント１８００を、更新前セグメントポインタ２２００が示すようにする。そして、対応する更新後セグメントポインタ２２０１にはヌル値を設定する。
【０３５７】
以上の処理以外は、図５７の処理は、図４４の処理に含まれるため説明を省略する。
【０３５８】
図５８は、同期デ−タライト部ｋ１１００の処理フロ−である。図５８は、同期デ−タライト部ｂ２００が、ヒット／ミス判定部ｇ１０００からコ−ルされた時に実行される処理フロ−である。図５８に示した同期デ−タライト部ｋ１１００の処理フロ−は、同期デ−タライト部ｅ５００の図４５の処理フロ−に相当する。したがって、図４５との相違について説明する。図４５の中で、図４５と同様のステップ番号の処理は、図４５の処理と同様である。
【０３５９】
以下、図５８の処理を説明する。
【０３６０】
ステップ５８００では、制御装置１３０５は、キャッシュ１３０８に格納されていないデ−タレコ−ド１５００に対応するロ−ド要求ビット２２０３をオンにする。（この場合、ライト対象となったデ−タレコ−ド１５００に対応するロ−ド要求ビット２２０３がオンの場合、オフする。）
以上の処理以外は、図５８の処理は、図４５の処理に含まれるため説明を省略する。
【０３６１】
非同期レコ−ドロ−ド部ｃ２０１、非同期レコ−ドライト部ａ１０３の処理フロ−は、すでに説明したため、ここでは、説明を省略する。
【０３６２】
図１２は、第４の実施例の別の実現方法である。図１０、図１１で示した内容との相違は、更新後パリティレコ−ド１０８を作成する契機が、更新後パリティレコ−ド１０８そのものをディスク装置１３０４に書き込む契機であるという点である。すなわち、図１２は、第４の実施例において、パリティ作成契機として、図７３に示したパリティ作成契機ａが用いられた場合の、制御装置１３０５の動作を示したものである。
【０３６３】
第１の実施例で第３図に示した動作と同様、制御装置１３０５は、図１２の動作でも、非同期レコ−ドライト部ｂ３０３により更新後パリティレコ−ド１０８の作成しながら、これをディスク装置１３０４に書き込む。（１２０３）
以下、詳細な動作を説明する。
【０３６４】
図５９は、ヒット／ミス判定部ｈ１２００の処理フロ−である。図５９は、処理装置１３００からのライト要求を受け取った時、実行される処理フロ−である。一方、ヒット／ミス判定部ｈ１２００の待ち状態が開放された時に実行開始される処理は、図２７に示した処理フロ−となる。図２７は、すでに説明したため、ここでは、説明を省略する。以下、図５９の説明を行う。図５９に示したヒット／ミス判定部ｈ１２００の処理フロ−は、ヒット／ミス判定部ｆ９００の図５２の処理フロ−に相当する。したがって、図５２との相違について説明する。図５９の中で、図５２と同様のステップ番号の処理は、図５２の処理と同様である。
【０３６５】
ステップ５９００で、制御装置１３０５は、処理装置１３００から、ライト対象となるデ−タレコ−ド１５００に対するデ−タを受け取るために、無条件に、同期デ−タライト部ｌ１２０１をコ−ルする。以上の処理以外は、図５９の処理フロ−は、図５２の処理フロ−に含まれるため、説明を省略する。
【０３６６】
図６０は、同期デ−タライト部ｌ１２０１の処理フロ−である。本処理フロ−は、ヒット／ミス判定部ｈ１２００からコ−ルされた時に実行される処理フロ−である。図６０に示した同期デ−タライト部ｌ２０１の処理フロ−は、同期デ−タライト部ｋ１１００の図５８の処理フロ−に類似している。したがって、図５８との相違について説明する。図６０の中で、図５８と同じステップ番号の処理は、図５８の処理と同じである。
【０３６７】
ステップ６０００では、制御装置１３０５は、すべてのグル−プ内他デ−タレコ−ド７０２が、キャッシュ１３０８内に格納されているかをチェックする。そうでない場合、ステップ５８００へジャンプする。そうあれば、ステップ６００１で、制御装置１３０５は、すべての更新前パリティレコ−ド１０７に対応するライトアフタビット２２０２をオンにする。この後、ステップ３３０２へジャンプする。これ以外の図６０の処理は、図５８に含まれるため、説明を省略する。非同期レコ−ドロ−ド部ｄ９０２、非同期レコ−ドライト部ｃ９０３の処理についてはすでに説明を行ったため、説明を省略する。
【０３６８】
図７８は、第４の実施例の別の実現方法である。図７８の特徴は、更新後パリティレコ−ド１０８を作成する契機が、制御装置１３０５のデ−タ転送処理とは、非同期化している点である。すなわち、図７８は、第４の実施例において、パリティ作成契機として、図８６に示したパリティ作成契機ｄが用いられた場合の、制御装置１３０５の動作を示したものである。
【０３６９】
図７８に示すように、制御装置１３０５は、パリティ作成部ｂ７７０１により、更新後デ−タレコ−ド１０６とグル−プ内他デ−タレコ−ド７０２から、パリティ作成装置ｂ７０３を用いて更新後デ−タレコ−ド１０８を作成する。（７７０２）
以下、詳細な動作を説明する。ただし、ヒット／ミス判定部ｍ７８００以外の各処理部の説明はすでに行っているため、説明を省略する。
【０３７０】
図８２は、ヒット／ミス判定部ｍ８２００の処理フロ−図である。ヒット／ミス判定部ｍ８２００は、２つの実行開始点をもつ。
【０３７１】
第１の開始点は、図８２に示された開始点であり、処理装置１３００からのライト要求を受け取った時、実行開始される開始点である。第２の開始点は、待ち状態が開放された時の開始点であり、ヒット／ミス判定部ａ１００の処理フロ−と同様であるため、図２７に示した処理フロ−となる。図２７は、すでに説明したため、ここでは、説明を省略する。以下、図８２の説明を行う。図８２に示したヒット／ミス判定ｌ８１００の処理フロ−は、ヒット／ミス判定部ａ１００の図５６の処理フロ−に相当する。したがって、図５６との相違について説明する。図８２の中で、図５６と同様のステップ番号の処理は、図５６の処理と同様である。
【０３７２】
図８１の処理フロ−では、制御装置１３０５は、ステップ４８００、パリティグル−プ１６００内の他のデ−タレコ−ド１５００の中に存在しないものがあるかを、チェックする。すべて存在する場合、ステップ７９００で、パリティ作成ビット２２０６をオンにする。この後、ステップ５６０２へジャンプする。以上の処理以外は、図８２の処理フロ−は、図５６の処理フロ−に含まれることになる。
【０３７３】
最後に、第５の実施例について説明する。第５の実施例は、パリティグル−プヒット／ミス判定機能ｃ６７００を用いた実施例である。ただし、第５の実施例は、図８７に示すように、パリティレコ−ドヒット／ミス判定機能ａ６５００、パリティレコ−ドヒット／ミス判定機能ｂ６６００、非同期処理ａ６８００、非同期処理ｂ６９００、非同期処理ｃ７０００、非同期処理ｄ７１００、パリティ作成契機ａ、パリティ作成契機ｂ、パリティ作成契機ｃ、パリティ作成契機ｄも関係する。以下、詳細に説明する。
【０３７４】
パリティレコ−ド１５０１の更新値を作成するための情報は、すでに述べたように以下の２種類ある。
【０３７５】
（１）デ−タレコ−ド１５００の更新前の値と更新後の値、および、パリティレコ−ド１５０１の更新前の値。
【０３７６】
（２）デ−タレコ−ド１５００の更新後の値と同一パリティグル−プ１６００他のすべてのデ−タレコ−ド１５０１の値。
【０３７７】
第５の実施例の特長は、以上のレコ−ド１５０２のキャッシュ１３０８の格納状況により、（１）、（２）のどちらのレコ−ド１５０２の集合を用いてパリティレコ−ド１５０１の更新値を作成するかを、制御装置１３０５が選択する点である。
【０３７８】
図６１は、第５の実施例における制御装置１３０５の動作を、処理フロ−で表したものである。
【０３７９】
制御装置１３０５は、処理装置１３００からライト要求を受け取ると、ステップ６１００で、更新前パリティレコ−ド１０７とライト対象となるデ−タレコ−ド１５０１の更新前デ−タレコ−ド１０５の中で、キャッシュ１３０８にない数をチェックする。
【０３８０】
制御装置１３０８は、ステップ６１０１で、ライト対象となるデ−タレコ−ド１５０１と同一パリティグル−プのグル−プ内他デ−タレコ−ド７０２（他のデ−タレコ−ド１５０１）の中で、キャッシュ１３０８に存在しないものの数をチェックする。（この場合、更新前セグメント２２００も更新後セグメント２２０１のいずれもヌル値であるデ−タレコ−ド１５００の数である。）
ステップ６１０２では、制御装置１３０５は、ステップ６１００でチェックした数、ステップ６１０１でチェックした数のうち、どちらが小さいかをチェックする。この場合小さい方を選んだ方がロ−ドすべきレコ−ド１５０２の数が小さいため、オ−バヘッドが少ない。したがって、ステップ６１００でチェックした数の方が小さい場合、ライト対象となるデ−タレコ−ド１５００の更新前の値、パリティレコ−ド１５０１の更新前の値から、パリティレコ−ド１５０１の更新値を作成するため、ステップ６１０３へジァンプする。ステップ６１０３へのジャンプは、パリティグル−プヒット／ミス判定処理ａ６６００の実行に入ることを意味する。
【０３８１】
一方、そうでない場合、他のすべてのデ−タレコ−ド１５０１の値からパリティレコ−ド１５０１の更新値を作成するため、ステップ６１０６へジァンプする。ステップ６１０６へのジャンプは、パリティグル−プヒット／ミス判定処理ｂ６７００の実行に入ることを意味する。
【０３８２】
ステップ６１０３では、デ−タレコ−ド１５０１のディスク装置への書き込みを同期化するかを判断する。同期化する場合、非同期処理ａ６８００を選択したことになる。ステップ６１０４では、ヒット／ミス判定部ａ１００をコ−ルする。ヒット／ミス判定部ａ１００をコ−ルしたことは、パリティ作成契機としては、パリティ作成契機ａ、パリティ作成契機ｂを選択したことになる。この場合、パリティ作成契機ｃを選択するのであれば、代わりにヒット／ミス判定部ｂ３００をコ−ルしてもよい。また、パリティ作成契機ｄを選択するのであれば、代わりにヒット／ミス判定部ｊ７９００をコ−ルしてもよい。
【０３８３】
非同期化する場合、非同期処理ｂ６９００を選択したことになる。ステップ６１０５では、ヒット／ミス判定部ｃ４００をコ−ルする。ヒット／ミス判定部ｃ４００をコ−ルしたことは、パリティ作成契機としては、パリティ作成契機ａ、パリティ作成契機ｂを選択したことになる。この場合、パリティ作成契機ｃを選択するのであれば、代わりにヒット／ミス判定部ｄ６００をコ−ルしてもよい。また、パリティ作成契機ｄを選択するのであれば、代わりにヒット／ミス判定部ｋ８０００をコ−ルしてもよい。
【０３８４】
ステップ６１０６では、デ−タレコ−ド１５０１のディスク装置への書き込みを同期化するかを判断する。同期化する場合、非同期処理ｃ７０００を選択したことになる。ステップ６１０７では、ヒット／ミス判定部ｅ７００をコ−ルする。ヒット／ミス判定部ｅ７００をコ−ルしたことは、パリティ作成契機としては、パリティ作成契機ａ、パリティ作成契機ｂを選択したことになる。この場合、パリティ作成契機ｃを選択するのであれば、代わりにヒット／ミス判定部ｆ９００をコ−ルしてもよい。また、パリティ作成契機ｄを選択するのであれば、代わりにヒット／ミス判定部ｌ８１００をコ−ルしてもよい。
【０３８５】
非同期化する場合、非同期処理ｄ７１００を選択したことになる。ステップ６１０５では、ヒット／ミス判定部ｇ１０００をコ−ルする。ヒット／ミス判定部ｃ４００をコ−ルしたことは、パリティ作成契機としては、パリティ作成契機ａ、パリティ作成契機ｂを選択したことになる。この場合、パリティ作成契機ｃを選択するのであれば、代わりにヒット／ミス判定部ｈ１２００をコ−ルしてもよい。また、パリティ作成契機ｄを選択するのであれば、代わりにヒット／ミス判定部ｍ８１００をコ−ルしてもよい。
【０３８６】
【発明の効果】
本発明は、レコ−ド単位配置のディスクアレイ（Ｐａｔｔｅｒｓｏｎの論文におけるレベル４、レベル５のディスクアレイ）において、処理装置から発行されたライト要求に対する処理の高速化に関する。具体的には、制御装置内のディスクキャッシュを利用して、（１）パリティレコ−ドの更新値を作成するために必要な情報を獲得する処理時間の短縮、（２）ライト要求に伴って発生する処理を可能な限り非同期化することにる処理装置から見た応答時間の短縮を実現する。
【図面の簡単な説明】
【図１】本発明の概要を表す。
【図２】本発明の第１の実施例において、処理装置からライト要求を受け取った時、パリティレコ−ドの更新値を作成するために必要なデ−タがキャッシュに格納されていない場合の制御装置の動作の概要を表す。
【図３】本発明の第１の実施例において、パリティレコ−ドの更新値の作成しながら、更新値をディスク装置に書き込む場合の制御装置の動作の概要を表す。
【図４】本発明の第２の実施例において、処理装置からライト要求を受け取った時、パリティレコ−ドの更新値を作成するために必要なデ−タがキャッシュに格納されている場合の制御装置の動作の概要を表す。
【図５】本発明の第２の実施例において、処理装置からライト要求を受け取った時、パリティレコ−ドの更新値を作成するために必要なデ−タがキャッシュに格納されていない場合の制御装置の動作の概要を表す。
【図６】本発明の第２の実施例において、パリティレコ−ドの更新値の作成しながら、更新値をディスク装置に書き込む場合の制御装置の動作の概要を表す。
【図７】本発明の第３の実施例において、処理装置からライト要求を受け取った時、パリティレコ−ドの更新値を作成するために必要なデ−タがキャッシュに格納されている場合の制御装置の動作の概要を表す。
【図８】本発明の第３の実施例において、処理装置からライト要求を受け取った時、パリティレコ−ドの更新値を作成するために必要なデ−タがキャッシュに格納されていない場合の制御装置の動作の概要を表す。
【図９】本発明の第３の実施例において、パリティレコ−ドの更新値の作成しながら、更新値をディスク装置に書き込む場合の制御装置の動作の概要を表す。
【図１０】本発明の第４の実施例において、処理装置からライト要求を受け取った時、パリティレコ−ドの更新値を作成するために必要なデ−タがキャッシュに格納されている場合の制御装置の動作の概要を表す。
【図１１】本発明の第４の実施例において、処理装置からライト要求を受け取った時、パリティレコ−ドの更新値を作成するために必要なデ−タがキャッシュに格納されていない場合の制御装置の動作の概要を表す。
【図１２】本発明の第４の実施例において、パリティレコ−ドの更新値の作成しながら、更新値をディスク装置に書き込む場合の制御装置の動作の概要を表す。
【図１３】本発明の対象となる計算機システムの構成を表す。
【図１４】本発明の対象となるもう１つの計算機システムの構成を表す。
【図１５】ディスク装置上に存在するレコ−ドの種類を表す。
【図１６】パリティグル−プを構成するレコ−ドを表す。
【図１７】本発明の対象となる第３の計算機システムの構成を表す。
【図１８】キャッシュの構成を表す。
【図１９】セグメントの構成を表す。
【図２０】ディレクトリの構成を表す。
【図２１】トラック票の構成を表す。
【図２２】パリティグル−プ（ＰＧ）管理情報の構成を表す。
【図２３】空きセグメントキュ−の構造を表す。
【図２４】空きＰＧ管理情報キュ−の構成を表す。
【図２５】不揮発メモリの構成を表す。
【図２６】ヒット／ミス判定部ａの処理フロ−を表す。
【図２７】待ち状態が開放された時のヒット／ミス判定部ａの処理フロ−を表す。
【図２８】同期デ−タロ−ド部ａの処理フロ−を表す。
【図２９】ディスク装置の位置付け処理が完了した時の、同期デ−タロ−ド部ａの処理フロ−を表す。
【図３０】同期デ−タライト部ａの処理フロ−を表す。
【図３１】ディスク装置の位置付け処理が完了した時の、同期デ−タライト部ａの処理フロ−を表す。
【図３２】同期デ−タライト部ａの処理フロ−を表す。
【図３３】ディスク装置の位置付け処理が完了した時の、同期デ−タライト部ａの処理フロ−を表す。
【図３４】非同期レコ−ドロ−ド部ａの処理フロ−を表す。
【図３５】ディスク装置の位置付け処理が完了した時の、非同期レコ−ドロ−ド部ａの処理フロ−を表す。
【図３６】非同期レコ−ドライト部ａの処理フロ−を表す。
【図３７】ディスク装置の位置付け処理が完了した時の、非同期レコ−ドライト部ａの処理フロ−を表す。
【図３８】ヒット／ミス判定部ｂの処理フロ−を表す。
【図３９】同期デ−タライト部ｃの処理フロ−を表す。
【図４０】非同期レコ−ドロ−ド部ｂの処理フロ−を表す。
【図４１】非同期レコ−ドライト部ｂの処理フロ−を表す。
【図４２】ディスク装置の位置付け処理が完了した時の、非同期レコ−ドライト部ｂの処理フロ−を表す。
【図４３】ヒット／ミス判定部ｃの処理フロ−を表す。
【図４４】同期デ−タライト部ｄの処理フロ−を表す。
【図４５】同期デ−タライト部ｅの処理フロ−を表す。
【図４６】ヒット／ミス判定部ｄの処理フロ−を表す。
【図４７】同期デ−タライト部ｆの処理フロ−を表す。
【図４８】ヒット／ミス判定部ｅの処理フロ−を表す。
【図４９】同期デ−タライト部ｇの処理フロ−を表す。
【図５０】同期デ−タライト部ｈの処理フロ−を表す。
【図５１】非同期レコ−ドロ−ド部ｃの処理フロ−を表す。
【図５２】ヒット／ミス判定部ｆの処理フロ−を表す。
【図５３】同期デ−タライト部ｉの処理フロ−を表す。
【図５４】非同期レコ−ドロ−ド部ｄの処理フロ−を表す。
【図５５】非同期レコ−ドライト部ｃの処理フロ−を表す。
【図５６】ヒット／ミス判定部ｇの処理フロ−を表す。
【図５７】同期デ−タライト部ｊの処理フロ−を表す。
【図５８】同期デ−タライト部ｋの処理フロ−を表す。
【図５９】ヒット／ミス判定部ｄの処理フロ−を表す。
【図６０】同期デ−タライト部ｋの処理フロ−を表す。
【図６１】第５の実施例における制御装置の動作に関する処理フロ−を表す。
【図６２】本発明の第１の実施例において、処理装置からライト要求を受け取った時、パリティレコ−ドの更新値を作成するために必要なデ−タがキャッシュに格納されている場合の制御装置の動作の概要を表す。
【図６３】その前のライト要求で必要となったパリティレコ−ドのロ−ド処理が完了しない場合、同じデ−タレコ−ドにライト要求を受け付けた時のキャッシュの状態を表す。
【図６４】その前のライト要求で必要となったパリティレコ−ドのロ−ド処理が完了しない場合、同じデ−タレコ−ドにライト要求を受け付けた後のキャッシュの状態を表す。
【図６５】パリティグル−プヒット／ミ判定処理ａの概要を表す。
【図６６】パリティグル−プヒット／ミ判定処理ｂの概要を表す。
【図６７】パリティグル−プヒット／ミ判定処理ｃの概要を表す。
【図６８】非同期処理ａの概要を表す。
【図６９】非同期処理ｂの概要を表す。
【図７０】非同期処理ｃの概要を表す。
【図７１】非同期処理ｄの概要を表す。
【図７２】パリティ作成契機ａの概要を表す。
【図７３】パリティ作成契機ｂの概要を表す。
【図７４】パリティ作成契機ｃの概要を表す。
【図７５】本発明の第１の実施例において、パリティレコ−ドの更新値の作成を制御装置のデ−タ転送とは、非同期に実行する場合の制御装置の動作の概要を表す。
【図７６】本発明の第２の実施例において、パリティレコ−ドの更新値の作成を制御装置のデ−タ転送とは、非同期に実行する場合の制御装置の動作の概要を表す。
【図７７】本発明の第３の実施例において、パリティレコ−ドの更新値の作成を制御装置のデ−タ転送とは、非同期に実行する場合の制御装置の動作の概要を表す。
【図７８】本発明の第４の実施例において、パリティレコ−ドの更新値の作成を制御装置のデ−タ転送とは、非同期に実行する場合の制御装置の動作の概要を表す。
【図７９】ヒット／ミス判定部ｊの処理フロ−を表す。
【図８０】ヒット／ミス判定部ｋの処理フロ−を表す。
【図８１】ヒット／ミス判定部ｌの処理フロ−を表す。
【図８２】ヒット／ミス判定部ｍの処理フロ−を表す。
【図８３】非同期レコ−ドロ−ド部ｆの処理フロ−を表す。
【図８４】パリティ作成部ａの処理フロ−を表す。
【図８５】パリティ作成部ａの処理フロ−を表す。
【図８６】パリティ作成契機ｄの概要を表す。
【図８７】本発明の課題を解決する機構と、各実施例との関係を表す。
【符号の説明】
１００…ヒット／ミス判定部ａ、１０１…同期デ−タライト部ａ、１０２…同期デ−タロ−ド部ａ、１０３…同期レコ−ドライト部ａ、１０５…更新前デ−タレコ−ド、１０６…更新後デ−タレコ−ド、１０７…更新前パリティレコ−ド、１０８…更新後パリティレコ−ド、２００…同期デ−タライト部ｂ、２０１…非同期レコ−ドライト部ａ、３００…ヒット／ミス判定部ｂ、３０１…同期デ−タライト部ｃ、３０２…非同期レコ−ドロ−ド部ｂ、３０３…同期レコ−ドライト部ｂ、４００…ヒット／ミス判定部ｃ、４０１…同期デ−タライト部ｄ、５００…同期デ−タライト部ｅ、６００…ヒット／ミス判定部ｄ、６０１…同期デ−タライト部ｆ、７００…ヒット／ミス判定部ｅ、７０１…同期デ−タライト部ｉ、７０２…グル−プ内デ−タレコ−ド、８００…同期デ−タライト部ｈ、８０１…非同期レコ−ド部ｃ、９００…ヒット／ミス判定部ｆ、９０１…同期デ−タライト部ｉ、９０２…非同期レコ−ド部ｄ、９０３…同期レコ−ドライト部ｃ、１０００…ヒット／ミス判定部ｇ、１００１…同期デ−タライト部ｊ、１１００…同期デ−タライト部ｋ、１２００…ヒット／ミス判定部ｈ、１２０１…同期デ−タライト部ｌ、１７００…ヒット／ミス判定部ｉ、１７０１…同期デ−タライト部ｍ、１７０２…同期レコ−ドロ−ド部ｂ、１７０３…非同期レコ−ドライト部ｅ、１７０４…同期レコ−ドライト部ｄ
【図１】
0003849648.tif 000002
【図２】
0003849648.tif 000003
【図３】
0003849648.tif 000004
【図４】
0003849648.tif 000005
【図５】
0003849648.tif 000006
【図６】
0003849648.tif 000007
【図７】
0003849648.tif 000008
【図８】
0003849648.tif 000009
【図９】
0003849648.tif 000010
【図１０】
0003849648.tif 000011
【図１１】
0003849648.tif 000012
【図１２】
0003849648.tif 000013
【図１３】
0003849648.tif 000014
【図１４】
0003849648.tif 000015
【図１５】
0003849648.tif 000016
【図１６】
0003849648.tif 000017
【図１７】
0003849648.tif 000018
【図１８】
0003849648.tif 000019
【図１９】
0003849648.tif 000020
【図２０】
0003849648.tif 000021
【図２１】
0003849648.tif 000022
【図２２】
0003849648.tif 000023
【図２３】
0003849648.tif 000024
【図２４】
0003849648.tif 000025
【図２５】
0003849648.tif 000026
【図２６】
0003849648.tif 000027
【図２７】
0003849648.tif 000028
【図２８】
0003849648.tif 000029
【図２９】
0003849648.tif 000030
【図３０】
0003849648.tif 000031
【図３１】
0003849648.tif 000032
【図３２】
0003849648.tif 000033
【図３３】
0003849648.tif 000034
【図３４】
0003849648.tif 000035
【図３５】
0003849648.tif 000036
【図３６】
0003849648.tif 000037
【図３７】
0003849648.tif 000038
【図３８】
0003849648.tif 000039
【図３９】
0003849648.tif 000040
【図４０】
0003849648.tif 000041
【図４１】
0003849648.tif 000042
【図４２】
0003849648.tif 000043
【図４３】
0003849648.tif 000044
【図４４】
0003849648.tif 000045
【図４５】
0003849648.tif 000046
【図４６】
0003849648.tif 000047
【図４７】
0003849648.tif 000048
【図４８】
0003849648.tif 000049
【図４９】
0003849648.tif 000050
【図５０】
0003849648.tif 000051
【図５１】
0003849648.tif 000052
【図５２】
0003849648.tif 000053
【図５３】
0003849648.tif 000054
【図５４】
0003849648.tif 000055
【図５５】
0003849648.tif 000056
【図５６】
0003849648.tif 000057
【図５７】
0003849648.tif 000058
【図５８】
0003849648.tif 000059
【図５９】
0003849648.tif 000060
【図６０】
0003849648.tif 000061
【図６１】
0003849648.tif 000062
【図６２】
0003849648.tif 000063
【図６３】
0003849648.tif 000064
【図６４】
0003849648.tif 000065
【図６５】
0003849648.tif 000066
【図６６】
0003849648.tif 000067
【図６７】
0003849648.tif 000068
【図６８】
0003849648.tif 000069
【図６９】
0003849648.tif 000070
【図７０】
0003849648.tif 000071
【図７１】
0003849648.tif 000072
【図７２】
0003849648.tif 000073
【図７３】
0003849648.tif 000074
【図７４】
0003849648.tif 000075
【図７５】
0003849648.tif 000076
【図７６】
0003849648.tif 000077
【図７７】
0003849648.tif 000078
【図７８】
0003849648.tif 000079
【図７９】
0003849648.tif 000080
【図８０】
0003849648.tif 000081
【図８１】
0003849648.tif 000082
【図８２】
0003849648.tif 000083
【図８３】
0003849648.tif 000084
【図８４】
0003849648.tif 000085
【図８５】
0003849648.tif 000086
【図８６】
0003849648.tif 000087
【図８７】
0003849648.tif 000088