(57)【特許請求の範囲】
【請求項１】
所定数のデータブロックからなるストライプ単位で書き込みおよび読み出しが行なわれる記憶装置に適用されるデータ管理システムにおいて、
前記ストライプそれぞれの有効ブロック数および無効ブロック数の少なくとも一方を保持するストライプ管理テーブルと、
前記ストライプへのデータの格納および前記ストライプ上のデータの無効化に応じて、前記ストライプ管理テーブルに保持されたそのストライプの有効ブロック数または無効ブロック数の値を更新するテーブル更新手段と、
前記ストライプ管理テーブルが保持する有効ブロック数および無効ブロック数の少なくとも一方に基づき、詰め替え処理の対象とするストライプを選択して、ｍ個のストライプに点在する有効データブロックをｎ（ｍ＞ｎ）個のストライプに詰め替える詰め替え手段と、
を具備し、
前記詰め替え手段は、前記記憶装置にデータを書き込むための書き込みバッファをストライプの一つとみなして選択対象とすることを特徴とするデータ管理システム。
【請求項２】
前記詰め替え手段は、予め定められた時間を越えて書き込み要求が発生しないときに、前記書き込みバッファをストライプの一つとみなして選択対象とすることを特徴とする請求項１記載のデータ管理システム。
【請求項３】
前記書き込みバッファが複数設けられ、前記詰め替え手段によりいずれかの書き込みバッファが詰め替え処理の対象となっている間、書き込みデータをその他の書き込みバッファに蓄積するバッファ制御手段をさらに具備することを特徴とする請求項１または２記載のデータ管理システム。
【請求項４】
所定数のデータブロックからなるストライプ単位で書き込みおよび読み出しが行なわれる記憶装置に適用されるデータ管理システムにおいて、
前記ストライプそれぞれの有効ブロック数および無効ブロック数の少なくとも一方を保持するストライプ管理テーブルと、
前記ストライプへのデータの格納および前記ストライプ上のデータの無効化に応じて、前記ストライプ管理テーブルに保持されたそのストライプの有効ブロック数または無効ブロック数の値を更新するテーブル更新手段と、
前記ストライプ管理テーブルが保持する有効ブロック数および無効ブロック数の少なくとも一方に基づき、詰め替え処理の対象とするストライプを選択して、ｍ個のストライプに点在する有効データブロックをｎ（ｍ＞ｎ）個のストライプに詰め替える詰め替え手段と、
を具備し、
前記詰め替え手段は、前記記憶装置からデータを読み出すための読み出しバッファをストライプの一つとみなして選択対象とすることを特徴とするデータ管理システム。
【請求項５】
前記詰め替え手段は、予め定められた時間を越えて読み出し要求が発生しないときに、前記読み出しバッファをストライプの一つとみなして選択対象とすることを特徴とする請求項４記載のデータ管理システム。
【請求項６】
前記読み出しバッファが複数設けられ、前記詰め替え手段によりいずれかの読み出しバッファが詰め替え処理の対象となっている間、読み出しデータを含むストライプをその他の読み出しバッファに格納するバッファ制御手段をさらに具備することを特徴とする請求項４または５記載のデータ管理システム。
【請求項７】
所定数のデータブロックからなるストライプ単位で書き込みおよび読み出しが行なわれる記憶装置に適用されるデータ管理方法において、
前記ストライプそれぞれの有効ブロック数および無効ブロック数の少なくとも一方を保持するステップと、
前記ストライプへのデータの格納および前記ストライプ上のデータの無効化に応じて、前記保持されたそのストライプの有効ブロック数または無効ブロック数の値を更新するステップと、
前記保持された有効ブロック数および無効ブロック数の少なくとも一方に基づき、詰め替え処理の対象とするストライプを選択して、ｍ個のストライプに点在する有効データブロックをｎ（ｍ＞ｎ）個のストライプに詰め替える詰め替えステップと、
を具備し、
前記詰め替えステップは、前記記憶装置にデータを書き込むための書き込みバッファをストライプの一つとみなして選択対象とすることを特徴とするデータ管理方法。
【請求項８】
所定数のデータブロックからなるストライプ単位で書き込みおよび読み出しが行なわれる記憶装置に適用されるデータ管理方法において、
前記ストライプそれぞれの有効ブロック数および無効ブロック数の少なくとも一方を保持するステップと、
前記ストライプへのデータの格納および前記ストライプ上のデータの無効化に応じて、前記保持されたそのストライプの有効ブロック数または無効ブロック数の値を更新するステップと、
前記保持された有効ブロック数および無効ブロック数の少なくとも一方に基づき、詰め替え処理の対象とするストライプを選択して、ｍ個のストライプに点在する有効データブロックをｎ（ｍ＞ｎ）個のストライプに詰め替える詰め替えステップと、
を具備し、
前記詰め替えステップは、前記記憶装置からデータを読み出すための読み出しバッファをストライプの一つとみなして選択対象とすることを特徴とするデータ管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、所定数のデータブロックからなるストライプ単位で書き込みおよび読み出しが行なわれる記憶装置に適用して好適なデータ管理システムおよびデータ管理方法に係り、特にたとえばｍ個のストライプに点在する有効データブロックをｎ（ｍ＞ｎ）個のストライプに詰め替える処理を効率的に実行するデータ管理システムおよびデータ管理方法に関する。
【０００２】
【従来の技術】
近年、コンピュータの普及は目覚ましく、大量のデータがコンピュータによって処理されている。これらのデータは、記憶装置に格納されるが、この記憶装置では、データを効率良く格納するために、所定数のデータブロックからなるストライプ単位で書き込みおよび読み出しが行なわれる。
【０００３】
ところで、コンピュータによってデータ処理が実行されると、当然にデータの更新が発生するが、このデータ更新に伴なって、同一ストライプ上に有効なデータブロックと無効なデータブロックとが混在するようになる。そして、記憶装置では、効率的にデータを格納するために、たとえばｍ個のストライプに点在する有効データブロックをｎ（ｍ＞ｎ）個のストライプに詰め替える詰め替え処理が必要となる。
【０００４】
【発明が解決しようとする課題】
このように、所定数のデータブロックからなるストライプ単位で書き込みおよび読み出しが行なわれる記憶装置は、ｍ個のストライプに点在する有効データブロックをｎ（ｍ＞ｎ）個のストライプに詰め替える詰め替え処理を行なうことによって、効率的なデータの格納が確保されている。
【０００５】
しかしながら、この詰め替え処理においては、詰替え処理の対象とするストライプを選択するときに、ストライプ中の有効ブロックおよび無効ブロックの有無とそれらの数とが必要となる。従来では、このストライプ中の有効ブロックおよび無効ブロックの有無を得るために、たとえば磁気ディスク上のストライプに実際にアクセスしていた。その結果、この磁気ディスクへのアクセスによって、ホストシステムの入出力リクエスト処理が妨げられる場合があった。
【０００６】
この発明はこのような実情に鑑みてなされたものであり、たとえばｍ個のストライプに点在する有効データブロックをｎ（ｍ＞ｎ）個のストライプに詰め替える処理を効率的に実行するデータ管理システムおよびデータ管理方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
前述した目的を達成するために、この発明のデータ管理システムは、所定数のデータブロックからなるストライプ単位で書き込みおよび読み出しが行なわれる記憶装置に適用されるデータ管理システムにおいて、前記ストライプそれぞれの有効ブロック数および無効ブロック数の少なくとも一方を保持するストライプ管理テーブルと、前記ストライプへのデータの格納および前記ストライプ上のデータの無効化に応じて、前記ストライプ管理テーブルに保持されたそのストライプの有効ブロック数または無効ブロック数の値を更新するテーブル更新手段と、前記ストライプ管理テーブルが保持する有効ブロック数および無効ブロック数の少なくとも一方に基づき、詰め替え処理の対象とするストライプを選択して、ｍ個のストライプに点在する有効データブロックをｎ（ｍ＞ｎ）個のストライプに詰め替える詰め替え手段と、を具備し、前記詰め替え手段は、前記記憶装置にデータを書き込むための書き込みバッファをストライプの一つとみなして選択対象とすることを特徴とする。
【０００８】
また、この発明は、所定数のデータブロックからなるストライプ単位で書き込みおよび読み出しが行なわれる記憶装置に適用されるデータ管理システムにおいて、前記ストライプそれぞれの有効ブロック数および無効ブロック数の少なくとも一方を保持するストライプ管理テーブルと、前記ストライプへのデータの格納および前記ストライプ上のデータの無効化に応じて、前記ストライプ管理テーブルに保持されたそのストライプの有効ブロック数または無効ブロック数の値を更新するテーブル更新手段と、前記ストライプ管理テーブルが保持する有効ブロック数および無効ブロック数の少なくとも一方に基づき、詰め替え処理の対象とするストライプを選択して、ｍ個のストライプに点在する有効データブロックをｎ（ｍ＞ｎ）個のストライプに詰め替える詰め替え手段と、を具備し、前記詰め替え手段は、前記記憶装置からデータを読み出すための読み出しバッファをストライプの一つとみなして選択対象とすることを特徴とする。
【０００９】
【発明の実施の形態】
以下、図面を参照してこの発明の実施の形態を説明する。
図１は、この発明の実施形態に係る記憶装置の概略構成を示す図である。図１に示すように、この実施形態の記憶装置１０は、ストライプ管理テーブル１１、論理アドレス変換テーブル１２、制御部１３、書き込みバッファ１４、読み出しバッファ１５、詰め替えバッファ１６、ディスクコントローラ１７および磁気ディスク装置１８を備えている。
【００１０】
この記憶装置１０は、所定数のデータブロックからなるストライプ単位で書き込みおよび読み出しが行なわれるものであり、また、このストライプの磁気ディスク装置１８への書き込みおよび磁気ディスク装置１８からの読み出しは、各磁気ディスク装置１８が接続されているディスクコントローラ１７によって実行制御されている。
【００１１】
図２には、論理アドレス変換テーブル１２の形式が示されている。この論理アドレス変換テーブル１２は、論理アドレスに対応するデータブロックが格納されているストライプの番号と、ストライプ内での位置を示すブロック番号とを保持する。また、論理アドレス変換テーブル１２は、論理アドレスに対応するブロックが最後に更新された時刻をタイムスタンプとして保持する。なお、このタイムスタンプは、論理ブロック単位ではなく、後述のストライプ管理テーブル１１内にストライプ単位の情報として保存されるものであってもよい。
【００１２】
また、図３には、ストライプ管理テーブル１１の形式が示されている。このストライプ管理テーブル１１は、ストライプ中に格納されている有効データブロック数と、ストライプが位置する磁気ディスク装置１８が接続されているディスクコントローラ１７の番号と、排他制御のためのロックフラグとを記録する。この有効ブロック数が０である場合、該当ストライプが空きストライプであることを意味する。また、有効ブロック数が負数である場合は、該当ストライプがこの記憶装置上に存在しないことを意味する。そして、このストライプ管理テーブル１１を設けた点が、この発明の特徴とするところである。
【００１３】
次に、この実施形態のストライプデータ構造について説明する。図４には、この実施形態のストライプのデータ構造が示されている。ストライプ上には、複数のデータブロックと、タグ情報とが収められている。このタグ情報は、ストライプ上にある各データブロックと論理アドレスとの対応情報およびタイムスタンプを格納しており、１ブロックサイズの領域を占める。また、タイムスタンプは、このストライプが更新された時刻を示す情報である。この値と、他のストライプのタイムスタンプおよび論理アドレス変換テーブルに格納されているタイムスタンプとを比較することにより、ストライプに収められているデータブロックの有効・無効を判断する。
【００１４】
ここで、この記憶装置１０における書き込み処理の概要を書き込みバッファ１４の機能とともに説明する。
書き込みバッファ１４は、１ストライプと同じ容量をもつ。制御部１３は、ホストシステム２０から受け取った書き込みデータを、ブロックサイズ単位で分割し、一旦書き込みバッファ１４に蓄積する。また、制御部１３は、この書き込みバッファ１４への蓄積時に、ブロックの論理アドレスと、書き込みバッファ１４上の位置（＝ストライプ上での位置）とをタグ情報に記録する。そして、書き込みバッファ１４に蓄積されたデータブロックの数がストライプ当たりのブロック数−１になったときに、制御部１３は、タグ情報を付加した書き込みバッファ１４の内容を磁気ディスク１８上の空きストライプに一括して書き込む。
【００１５】
制御部１３は、書き込みバッファ１４の空きストライプへの書き込み時に、ストライプ管理テーブル１１上の有効ブロック数の更新処理を行なう。これは、
（１）書き込みを行なったストライプの有効ブロック数の更新。
（２）旧データブロックを収めるストライプの有効ブロック数の更新。
の２つの処理からなる。
【００１６】
旧データブロックを収めるストライプの有効ブロック数の更新は次の手順で行なう。
まず、書き込みバッファ１４に蓄積された各ブロックの論理アドレスをキーにして論理アドレス変換テーブル１２を参照し、その論理アドレスの旧データが収められているストライプを特定する。次に、そのストライプをキーにしてストライプ変換テーブル１１を参照し、有効ブロック数の値を１減じる。この処理を書き込みバッファ１４上のすべてのデータブロックについて行なう。図５には、このストライプ管理テーブル１１上の有効ブロック数の更新処理の手順が示されている。
【００１７】
次に、この記憶装置１０における読み出し処理の概要を読み出しバッファ１５の機能とともに説明する。
この読み出し処理は、与えられたホストＩＯリクエストの論理アドレスをキーにして論理アドレス変換テーブル１２を参照し、読み出し対象ブロックが格納されているストライプと、ストライプ内の位置とを調べる。そして、そのストライプを磁気ディスク装置１８から読み出して、読み出しバッファ１５に格納した後、その読み出しバッファ１５中の該当ブロックのデータを読み出して、データとしてホストシステム２０に返す。
【００１８】
以下に、詰替え処理の手順を説明する。この詰替え処理は、「詰替え処理の対象となるストライプの選択」、「ストライプ内の有効ブロックの再配置」および「空きストライプへの書き込み」の３つの処理からなる。そして、この３つの処理のいずれもが、ストライプに無効ブロックの有無を検査する処理を要する。
【００１９】
まず、従来におけるストライプ中の無効ブロックを探索する手順を示す。
従来では、まず、ストライプ中のタグ情報を参照し、ストライプ内の各ブロックの論理アドレスとタイムスタンプ値とを取得する。次に、タグ情報から得た各ブロックに対応する論理アドレスをキーにして、論理アドレス変換テーブル１２を参照し、該当ブロックが最後に更新された際のタイムスタンプを取得する。そして、このタイムスタンプ値と、ストライプ中のタグ情報のタイムスタンプ値とを比較し、値が同じである場合には、このブロックの情報が有効であると判定する。反対に、タグ情報のスタンプ値の方が古い値である場合は、すでにこの論理アドレスに対応するブロックが無効であると判定する。
【００２０】
このように、従来では、ストライプ中の無効ブロックを探索するために、ストライプ中のタグ情報にアクセスする必要があった。すなわち、これは、ストライプの読み出し処理を行なう必要があることを意味する。したがって、場合によっては、ホストＩＯリクエストの処理の妨げとなっていた。
【００２１】
次に、この実施形態における無効ブロックおよび有効ブロックの探索手順を示す。
この実施形態の記憶装置１０は、ストライプの有効ブロックを保持するストライプ管理テーブル１１を備えている。したがって、ストライプ中の無効ブロックの有無を調べるには、該当ストライプ番号でストライプ管理テーブル１１を参照し、有効ブロック数をストライプ当たりのブロック数と比較すればよい。なぜならば、有効ブロック数がストライプ当たりのブロック数より小さい場合には、該当ストライプに無効ブロックが存在することを意味するからである。
【００２２】
このように、あるストライプのブロックに無効データがあるか否かを調べるための磁気ディスクアクセスを行なう必要がないので、ホストＩＯリクエストの処理を妨げることはない。
【００２３】
次に、詰替え対象となるストライプの選択方法の一例を示す。ここで示す例は単純な方法の一例であり、その他の選択方法を用いることにより、さらに効率的な詰替え対象となるストライプの組み合わせを得ることが可能である。なお、以後の説明ではストライプ当たりのブロック数をＬと表す。したがって、この実施形態では、ストライプに格納可能なデータブロックの数はＬ−１となる。
（１）詰替え対象となるストライプの選択（ｍ  ＴＯ  １）
まず、詰替え処理対象となるストライプの１つとして、任意の１つのストライプを選択する。そして、このストライプ番号を詰替え対象リストに登録する。ここでは、ストライプ管理テーブル１１を探索し、空きストライプ以外であって最も無効ブロックが多いストライプ（有効ブロック数が最も小さい＞０）ものを選択する。
【００２４】
次に、詰替え対象リストに登録したストライプの有効ブロック数の合計（以下Σと表記）との合計がＬ−１に最も近くなる有効ブロックをもつストライプを検索する。ただし、この検索においては、空きストライプおよびすべてのブロックが有効ブロックであるストライプは除外する。そして、検索により得られたストライプを詰替え対象リストに登録する。また、Σ＜Ｌ−１となる場合には、まだ詰替え後のストライプに空きブロックがあることを意味するので、同様の手順を繰り返す。
【００２５】
このΣ＝Ｌ−１となる組み合わせが得られた場合、詰替え処理により、詰替え対象ストライプ中の有効ブロックを１つのストライプ中に再配置できることを意味する。そして、この対象リストのストライプについて詰替え処理を行なう。
【００２６】
このような手順で、Σ＝Ｌ−１となる組み合わせが得られなかった場合、詰替え処理の対象となるストライプからは、１つのストライプを作成することができない。この場合は、ｍ個のストライプからｎ個（ｍ＞ｎ＞１）のストライプを作成する手順を行なう。
（２）詰替え対象となるストライプの選択（ｍ  ＴＯ  ｎ）
ｍ個のストライプからｎ個（ｍ＞ｎ＞１）のストライプを作成する手順では、前述した手順において、Σ＝（Ｌ−１）×ｎ数倍となるまで検索を繰り返すようにする。
（再配置処理手順）
まず、前述の処理で選択した詰替え対象の各ストライプを、詰め替えバッファ１６に読み出す。次に、この読み込んだ各ストライプの１つを選択し、これを再配置ストライプ用書き込みバッファとする。また、再配置後のストライプ数がｎ個になる場合は、ｎ個のストライプの詰替えバッファ１６を再配置ストライプ用書き込みバッファとする。そして、この再配置ストライプ用書き込みバッファ中の無効ブロックに、その他の詰め替え対象ストライプ中の有効ブロックを順次上書き複写する。
【００２７】
有効ブロックを無効ブロックへ上書き複写する際に、再配置ストライプ用書き込みバッファのタグ情報内の論理アドレス情報を更新する。また、移動したブロックについて、論理アドレス変換テーブル１２のストライプ番号、ブロック番号およびタイムスタンプを更新する。そして、すべての有効ブロックを移動した後に、再配置ストライプ用書き込みバッファのタグ情報のタイムスタンプを最も新しい値で更新する。
（ｍ個のストライプからｎ個のストライプへの書き込み）
前述の処理で再配置を行なった再配置ストライプ用ストライプ書き込みバッファを磁気ディスク装置１８に書き戻す。この書き戻し時の処理は、通常のホストＩＯリクエスト処理において、書き込みバッファ１４が埋まった場合の処理と同じである。すなわち、空きストライプを選択し、再配置ストライプ用書き込みバッファの内容を、この空きストライプに書き込む。書き戻し時には、ストライプ管理テーブル１１の書き込みを行なった空きストライプおよび旧データブロックを収めている各ストライプの有効ブロック数の更新を行なう。
【００２８】
空きストライプの選択では、ストライプ管理テーブル１１を検索し、空きストライプの中から書き戻す先のストライプを選択する。なお、ｎ個のストライプに再配置を行った場合、書き戻す先の複数の空きストライプを互いに異なるディスクコントローラ１７下に属するものになるように選択する。これにより、ストライプに対する書き込み処理を並行して行なうことが可能となる。
【００２９】
ここで、空きストライプに書き戻すのは、書き戻し動作中に、何らかの障害が発生した場合でも、元のストライプ情報から復元可能とするためである。したがって、障害発生時に書き戻しデータと書き戻しの完了とを保証する手段がある場合には、空きストライプでなく、詰替え処理対象ストライプでもよい。
【００３０】
ところで、ここまでに述べた詰め替え処理は、磁気ディスク装置１８上に存在するストライプの読み出しを実際に行なって、詰ま替え処理を行なうというものである。したがって、この処理には、最低でも２回の磁気ディスク装置１８上のストライプ読み出し処理と、１回以上の磁気ディスク装置１８への書き込み処理とを伴なう。このような磁気ディスクアクセスを伴なう処理は、ホストＩＯリクエストを待たせるような状態を発生させる虞れがある。
【００３１】
以下に、この問題を改善した方法として、記憶装置１０の各種バッファ（書き込みバッファ１４、読み出しバッファ１５）上に存在する有効データブロックを詰め替え処理の対象とする方法について示す。ここでは、詰め替え処理の対象ストライプの１つを読み出しバッファ１５に格納されているストライプデータとする場合について説明する。
【００３２】
この場合、前述の詰め替え対象となるストライプの組み合わせ選択手順における「任意のストライプ」を「読み出しバッファ１５」として詰め替え対象リストに登録する。以降は同様に、詰め替え対象リストに登録したストライプ中の有効ブロックの数（Σ）がストライプのデータブロック数Ｌ−１となるような有効ブロックをもつストライプを選択する。そして、この選択した（読み出しバッファを除く）ストライプを詰め替えバッファ１６に読み出す。
【００３３】
次に、詰め替えバッファ１６中のストライプデータから有効ブロックを探索し、有効ブロックを読み出しバッファ１５上の無効ブロック上に再配置する。再配置時の手順および処理は前述の通りである。そして、すべての再配置処理が完了した後、読み出しバッファ１５上のタイムスタンプの値を最新の値で更新し、読み出しバッファ１４のデータを空きストライプに書き込み、ストライプ管理テーブル１１の有効ブロック数を更新する。
【００３４】
ただし、この詰め替え処理による磁気ディスク装置１８上のストライプ更新の前に、書き込みバッファ１４の内容が磁気ディスク装置１８に書かれることがあってはならない。なぜならば、書き込みバッファ１４上にあるタグ情報のタイムスタンプの値が、詰め替え処理によって更新された読み出しバッファ１５上のタグ情報のタイムスタンプ値より古いことを意味する値であった場合に、ホストＩＯリクエストの書き込みデータは、古い情報とみなされて喪失することになるからである。これを防止する方法は、詰め替え処理が完了するまで、書き込みバッファ１４の磁気ディスク装置１８への書き込み処理を保留する、または、予め書き込みバッファ１４の方のタイムスタンプを進めるようにすることである。
【００３５】
なお、詰め替え処理の対象ストライプの１つを書き込みバッファ１４に格納されているストライプデータとする場合も、この読み出しバッファ１５の場合と同様に、ホストＩＯリクエストによって更新される情報が、詰め替え処理の有効データの移動に伴なって喪失しないようにする必要がある。
【００３６】
ところで、このような詰め替え処理を行なうと、各バッファがビジー状態となり、ホストＩＯリクエストの妨げとなる虞れがある。この対策としては、
（１）書き込みバッファ１４または読み出しバッファ１５を詰め替え処理の対象とする場合は、一定時間ホストＩＯリクエストが発生していない場合とする。
（２）複数のバッファを設けて、バッファを対象とする詰め替え処理を行なっている場合は別のバッファを利用する。
などが考えられる。
【００３７】
また、各種バッファ利用した場合を含めて、すべてのストライプを複数のストライプを読み出して詰め替え処理を行なう場合は、詰め替え処理の対象となるストライプそれぞれが、互いに異なるディスクコントローラ１７下に存在するように選択することが好ましい。これにより、詰め替え対象の各ストライプを並列に読み出すことができ、ストライプの詰め替え処理に要する時間を大幅に低減することが可能となる。このようなストライプの選択は、前述のストライプ選択手順において、ストライプの選択条件として「詰め替え対象リストに登録されているストライプが属するディスクコントローラ１７と異なるディスクコントローラ１７に属しているもの」という条件を加えることにより実現できる。そして、各ストライプがどのディスクコントローラ１７に属しているかは、ストライプ管理テーブル１１のコントローラ番号を参照することでわかる。
【００３８】
このように、この実施形態の記憶装置１０によれば、詰め替え処理によって発生する磁気ディスクアクセスの回数を大幅に削減させ、また磁気ディスクアクセス時における時間を大幅に短縮することが可能となる。
なお、このデータ管理の手法は、ホストシステム２０側で制御されるものであっても構わない。
【００３９】
【発明の効果】
以上詳述したように、この発明によれは、磁気ディスク装置上のストライプ内の有効ブロックおよび無効ブロックの有無、ならびにそれらの数を磁気ディスクのアクセスを伴なうことなく調べることができるようになるため、ストライプの詰め替え処理によってホストシステムからの入出力リクエスト処理による磁気ディスクアクセスを妨げることはない。
【００４０】
また、読み出しバッファおよび書き込みバッファを詰め替え対象となるストライプデータの１つとすることで、詰め替え処理のためのみに行なう磁気ディスクアクセスの発生を抑えることが可能となる。
【００４１】
さらに、詰め替え処理に伴なう磁気ディスクアクセスを行なう場合においても、互いに異なるディスクコントローラに属するストライプに振り分けることによって、並列にアクセスすることを可能とする。
【図面の簡単な説明】
【図１】この発明の実施形態に係る記憶装置の概略構成を示す図。
【図２】同実施形態の論理アドレス変換テーブルの形式を示す図。
【図３】同実施形態のストライプ管理テーブルの形式を示す図。
【図４】同実施形態のストライプのデータ構造を示す図。
【図５】同実施形態のストライプ管理テーブル上の有効ブロック数の更新処理の手順を示すフローチャート。
【符号の説明】
１０…記憶装置、１１…ストライプ管理テーブル、１２…論理アドレス変換テーブル、１３…制御部、１４…書き込みバッファ、１５…読み出しバッファ、１６…詰め替えバッファ、１７…ディスクコントローラ、１８…磁気ディスク装置、２０…ホストシステム。
【図１】
0004131579.tif 000002
【図２】
0004131579.tif 000003
【図３】
0004131579.tif 000004
【図４】
0004131579.tif 000005
【図５】
0004131579.tif 000006