(57)【要約】【課題】  本発明は、アクセス制御方法、ディスク制御装置及び記憶装置に関し、キャッシュセグメントの競合があっても、アクセス範囲が競合していなければデータのアクセスを許可することでアクセスを並列に処理してアクセス性能を向上することを目的とする。【解決手段】  キャッシュセグメント単位に区切られたキャッシュメモリのアクセス制御方法において、アクセスコマンドがアクセスするキャッシュセグメントがアクセス中のキャッシュセグメントと競合しても、アクセス範囲の重なりがなければアクセスを許容するように構成する。【選択図】  図６
2006065402.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュセグメント単位に区切られたキャッシュメモリのアクセス制御方法であって、
アクセスコマンドがアクセスするキャッシュセグメントが、アクセス中のキャッシュセグメントと競合しても、アクセス範囲の重なりがなければアクセスを許容するアクセス許容ステップを含むことを特徴とする、アクセス制御方法。
【請求項２】
キャッシュセグメントを使う処理を示すステータスと、該処理の使用状態とを含むキャッシュセグメント管理情報を格納する格納ステップを更に含み、
該アクセス許容ステップは、該キャッシュセグメント管理情報に基づいてアクセスを許容することを特徴とする、請求項１記載のアクセス制御方法。
【請求項３】
該キャッシュセグメント管理情報は、該ステータス及び該処理の使用状態に加え、データの所在を示すアドレスと、データの有無を示すデータ有無情報と、アクセス範囲を示すアクセス範囲情報とを含むことを特徴とする、請求項２記載のアクセス制御方法。
【請求項４】
該格納ステップは、該キャッシュセグメント管理情報をキャッシュセグメント管理テーブルの形式で格納することを特徴とする、請求項２又は３記載のアクセス制御方法。
【請求項５】
該格納ステップは、該データ有無情報及び／又は該アクセス範囲情報をビットマップで格納することを特徴とする、請求項３記載のアクセス制御方法。
【請求項６】
実行した処理に対応するステータス及び実行した処理の使用状態を更新する更新ステップを更に含むことを特徴とする、請求項２又は３記載のアクセス制御方法。
【請求項７】
ジョブ管理テーブルに格納されたアクセス情報を元に、アクセス対象のデータが該キャッシュメモリ上に存在するか否かの検索を行う検索ステップと、
該アクセス対象のデータが該キャッシュメモリ上に存在しないと、ステージング処理により該アクセス対象のデータを格納装置からリードするステップとを更に含むことを特徴とする、請求項１記載のアクセス制御方法。
【請求項８】
ディスクに対する入出力を制御するディスク制御装置であって、
キャッシュセグメント単位に区切られたキャッシュメモリと、
アクセスコマンドがアクセスするキャッシュセグメントが、アクセス中のキャッシュセグメントと競合しても、アクセス範囲の重なりがなければアクセスを許容する制御手段とを備えたことを特徴とする、ディスク制御装置。
【請求項９】
該制御手段は、キャッシュセグメントを使う処理を示すステータスと、該処理の使用状態とを含むキャッシュセグメント管理情報を格納するキャッシュ制御部を有し、該キャッシュセグメント管理情報に基づいてアクセスを許容することを特徴とする、請求項８記載のディスク制御装置。
【請求項１０】
複数の記録媒体を有する格納装置と、
該記録媒体に対する入出力を制御する媒体制御装置とを備え、
該媒体制御装置は、キャッシュセグメント単位に区切られたキャッシュメモリと、アクセスコマンドがアクセスするキャッシュセグメントがアクセス中のキャッシュセグメントと競合してもアクセス範囲の重なりがなければアクセスを許容する制御手段とを備えたことを特徴とする、記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセス制御方法、ディスク制御装置及び記憶装置に係り、特に複数のキャッシュセグメントに区切られたキャッシュメモリのアクセス制御方法、そのようなアクセス制御方法でディスク装置を制御するディスク制御装置、及びそのようなアクセス制御方法を用いる記憶装置に関する。
【背景技術】
【０００２】
複数の磁気ディスクを備えたディスク装置を制御するディスク制御装置は、搭載するキャッシュメモリを大容量化することでアクセス性能（又は、アクセス速度）の向上を図っている。このようなディスク制御装置において、ホスト装置からのアクセスは、ディスク制御装置内のキャッシュメモリを経由して処理される。つまり、ホスト装置からのアクセスコマンドがリードコマンドの場合、キャッシュメモリ上のデータにヒットすれば、ディスク装置からの読み込み(ステージング)なしで、キャッシュメモリからホスト装置にデータが転送される。他方、ホスト装置からのアクセスコマンドがライトコマンドの場合、ホスト装置からのライトデータをキャッシュメモリに一時的に格納し、ライトコマンド終了後に非同期(バックグラウンド)でディスク装置へ書き出し(ライトバック)を行う。このように、ホスト装置からのアクセスコマンドがキャッシュメモリ上のデータにヒットした場合には、キャッシュメモリ上のデータを直ちにホスト装置に転送することでアクセス性能の向上を図っている。
【０００３】
ディスク制御装置内のキャッシュメモリは、ある単位のセグメント（以下、キャッシュセグメントと言う）に区切られて管理される。キャッシュセグメントは、例えば１６ｋＢ、６４ｋＢ等に設定される。ディスク制御装置内では、このキャッシュセグメント単位で割り当て(Allocate)及び削除(Purge)を行い、キャッシュメモリ上のデータを管理する。
【０００４】
例えば、キャッシュセグメントが６４ｋＢに設定されているディスク制御装置において、ホスト装置から８ｋＢのライトコマンドが発行されると、ディスク制御装置内ではキャッシュセグメント１個(６４ｋＢのキャッシュメモリ)を割り当て、ライトデータを受信する。このデータ受信の間は、他のライトコマンドとの衝突(アクセス競合)を避けるために、このキャッシュセグメントを「使用中」の状態にして排他がかけられる(以後、このような制御を「キャッシュセグメント排他」と言う)。
【０００５】
尚、データ転送量に対してキャッシュセグメントの容量を最適化するディスク制御装置は、特許文献１にて提案されている。又、ディスクにリードやライトを行う際の論理的な特徴を反映させた最適なセグメントサイズのセグメントにキャッシュ領域を設定してキャッシュメモリの使用効率を上げる方法は、特許文献２にて提案されている。
【特許文献１】特開平７−３１９７７１号公報
【特許文献２】特開２０００−２２７８６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
キャッシュセグメント排他は、アクセス範囲が小さい場合でもキャッシュセグメント単位で排他をかけてしまうので、アクセス性能に影響を与える場合がある。例えば、８ｋＢのデータを順次ライトするシーケンシャルライトアクセスの場合、最初の８ｋＢのデータのライト中に次のライトコマンドが受信されても、先のライトコマンドがキャッシュセグメントを使用中であるため、排他されてしまう。更に、次のライトコマンドも同様に待たされ、最悪の場合には８ｋＢのライトコマンドが７個分待たされた後に１つづつ順番に処理されていくことになる。
【０００７】
キャッシュセグメント単位は、小さくすればその分排他をかけられるキャッシュメモリ内の領域が小さくなり、キャッシュメモリの使用効率を向上すると共に、シーケンシャルアクセスの待ち合わせを減少させることができる。しかし、キャッシュセグメント単位が小さいと、その分キャッシュメモリ内の領域の管理が非常に複雑になり、アクセス性能を向上するのが難しくなってしまう。
【０００８】
他方、キャッシュセグメントを大きくすると、その分キャッシュメモリ内の領域の管理が簡単になり、アクセス性能をある程度は向上することができる。しかし、キャッシュセグメント単位が大きいと、その分キャッシュメモリの使用効率が低下すると共に、シーケンシャルアクセスの待ち合わせが増大してしまい、シーケンシャルアクセスの場合のアクセス性能が低下してしまう。このため、従来技術では、キャッシュメモリ内の領域の管理が非常に複雑にならない程度の大きさにキャッシュセグメントを設定している。
【０００９】
そこで、本発明は、キャッシュセグメントの競合があっても、アクセス範囲が競合していなければデータのアクセスを許可することで、アクセスを並列に処理してアクセス性能を向上可能なアクセス制御方法、ディスク制御装置及び記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題は、キャッシュセグメント単位に区切られたキャッシュメモリのアクセス制御方法であって、アクセスコマンドがアクセスするキャッシュセグメントが、アクセス中のキャッシュセグメントと競合しても、アクセス範囲の重なりがなければアクセスを許容するアクセス許容ステップを含むことを特徴とするアクセス制御方法によって達成できる。
【００１１】
上記の課題は、ディスクに対する入出力を制御するディスク制御装置であって、キャッシュセグメント単位に区切られたキャッシュメモリと、アクセスコマンドがアクセスするキャッシュセグメントが、アクセス中のキャッシュセグメントと競合しても、アクセス範囲の重なりがなければアクセスを許容する制御手段とを備えたことを特徴とするディスク制御装置によっても達成できる。
【００１２】
上記の課題は、複数の記録媒体を有する格納装置と、該記録媒体に対する入出力を制御する媒体制御装置とを備え、該媒体制御装置は、キャッシュセグメント単位に区切られたキャッシュメモリと、アクセスコマンドがアクセスするキャッシュセグメントがアクセス中のキャッシュセグメントと競合してもアクセス範囲の重なりがなければアクセスを許容する制御手段とを備えたことを特徴とする記憶装置によっても達成できる。
【発明の効果】
【００１３】
本発明によれば、キャッシュセグメントの競合があっても、アクセス範囲が競合していなければデータのアクセスが許可されるので、アクセスを並列に処理してアクセス性能を向上可能なアクセス制御方法、ディスク制御装置及び記憶装置を実現することができる。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明になるアクセス制御方法、ディスク制御装置及び記憶装置の各実施例を図面と共に説明する。
【実施例】
【００１５】
図１は、本発明になる記憶装置の一実施例の要部を示すブロック図である。記憶装置の本実施例では、本発明が磁気ディスク装置に適用されている。記憶装置の本実施例は、本発明になるアクセス制御方法の一実施例及び本発明になるディスク制御装置の一実施例を採用する。
【００１６】
図１に示すように、記憶装置は、ホスト装置１と、ディスク制御装置２と、ディスク装置３とを備える。尚、ホスト装置１は、記憶装置内ではなく、外部接続される構成であっても良い。
【００１７】
ホスト装置１は、周知の構成のサーバや汎用コンピュータにより構成されている。ディスク制御装置２は、チャネルアダプタ（ＣＡ）２１、セントラルモジュール（ＣＭ）２２、キャッシュメモリ２３及びデバイスアダプタ（ＤＡ）２４からなる。ＣＡ２１は、ホスト装置１からコマンド（又は、要求）を受け取ったり、ホスト装置１とディスク制御装置２との間のデータのやり取りを行う。ＣＭ２２は、ディスク制御装置２の入出力（Ｉ／Ｏ）処理を制御する。キャッシュメモリ２３は、後述するように例えば１６ｋＢ、６４ｋＢ等の所定のキャッシュセグメント単位で分割された構成を有する。ＤＡ２４は、ディスク制御装置２とディスク装置３内の複数のディスク３１との間のデータのやり取りを行う。
【００１８】
ＣＭ２２は、後述するジョブ管理テーブル２２４を有する入出力（Ｉ／Ｏ）制御部２２１、後述するキャッシュセグメント管理テーブル２２５を有するキャッシュ制御部２２２及びディスク制御部２２３からなる。Ｉ／Ｏ制御部２２１は、ホスト装置１からの入出力を管理し、フロントエンド（Front End）のＣＡ２１やバックエンド（Back End）のディスク制御部２２３やＤＡ２４に対する処理のスケジューリングを行うと共に、入出力（Ｉ／Ｏ）時間等の監視を行う。キャッシュ制御部２２２は、キャッシュメモリ２３を管理すると共に、入出力制御部２２１からの要求等の入出力（Ｉ／Ｏ）処理に対してキャッシュメモリ２３の割り当てを行い、キャッシュメモリ２３上のユーザデータを管理する。ディスク制御部２２３は、ディスク制御装置２の配下にあるディスク装置３を管理すると共に、ＤＡ２４に対するステージング処理やライトバック処理等のバックエンド処理（Back End Process）のスケジューリングを行う。
【００１９】
図２は、リード処理を説明するブロック図であり、図３は、ライト処理を説明するブロック図である。図２及び図３中、図１と同一部分には同一符号を付し、その説明は省略する。ホスト装置１からのアクセスは、ディスク制御装置２内のキャッシュメモリ２３を経由して処理される。
【００２０】
図２において、ホスト装置１からのアクセスコマンドがリードコマンドの場合、キャッシュメモリ２３上のデータにヒットすれば、ディスク装置３からの読み込み(ステージング)なしで、矢印Ｔ１で示すようにキャッシュメモリ２３からホスト装置１にデータが転送される。他方、ホスト装置１からのアクセスコマンドがリードコマンドの場合、キャッシュメモリ２３上のデータにヒットしなければ、矢印Ｔ２で示すようにディスク装置３からの読み込み(ステージング)を行ってから、矢印Ｔ１で示すようにキャッシュメモリ２３からホスト装置１にデータが転送される。
【００２１】
図３において、ホスト装置１からのアクセスコマンドがライトコマンドの場合、矢印Ｔ３で示すようにホスト装置１からのライトデータをキャッシュメモリ２３に一時的に格納し、ライトコマンド終了後に非同期(バックグラウンド)で矢印Ｔ４で示すようにディスク装置３へ書き出し(ライトバック処理)を行う。
【００２２】
このように、ホスト装置１からのアクセスコマンドがキャッシュメモリ２３上のデータにヒットした場合には、キャッシュメモリ２３上のデータを直ちにホスト装置１に転送することでアクセス性能の向上を図っている。
【００２３】
図４は、ジョブ管理テーブル２２４の構造を示す図である。ジョブ管理テーブル２２４は、ジョブ管理情報を格納する。ジョブ管理情報には、データの所在を示す論理ブロックアドレス（ＬＢＡ：Logical Block Address）及びアクセスサイズ、論理単位番号（ＬＵＮ：Logical Unit Number）及びコマンド（リード又はライトコマンド）、及びキャッシュセグメント、開始ＬＢＡオフセット及びアクセスサイズを含む。本実施例では、キャッシュセグメント、開始ＬＢＡオフセット及びアクセスサイズをジョブ管理情報に含めた点に特徴がある。キャッシュセグメントは、リード又はライトのＩ／Ｏ処理、又は、ステージング処理で使用されるキャッシュセグメントを示す。又、開始ＬＢＡオフセット及びアクセスサイズは、キャッシュセグメント内のアクセス範囲を示す。
【００２４】
図５は、キャッシュセグメント管理テーブル２２５の構造を示す図である。キャッシュセグメント管理テーブル２２５は、キャッシュセグメント管理情報を格納する。キャッシュセグメント管理情報には、ＬＢＡ、ＬＵＮ、キャッシュメモリアドレス、データ有無情報、アクセス範囲情報、リードステータス及びリード数、ライトステータス及びライト数、ステージングステータス及びステージング数、及びその他のステータス及び使用数を含む。本実施例では、データ有無情報及びアクセス範囲情報がビットマップ（Bit Map）で格納されている。又、アクセス範囲情報、リードステータス及びリード数、ライトステータス及びライト数、ステージングステータス及びステージング数、及びその他のステータス及び使用数をキャッシュセグメント管理情報に含めた点に特徴がある。アクセス範囲情報は、リード又はライトのＩ／Ｏ処理、又は、ステージング処理でアクセス範囲或いはアクセス部分がセットされるビットマップ情報である。リードステータスは、キャッシュセグメントをリードのＩ／Ｏ処理で使用する時にセットされるステータスであり、リード数は、リード実行中の数を示す。ライトステータスは、キャッシュセグメントをライトのＩ／Ｏ処理で使用する時にセットされるステータスであり、ライト数は、ライト実行中の数を示す。ステージングステータスは、キャッシュセグメントをステージング処理で使用する時にセットされるステータスであり、ステージング数は、ステージング実行中の数を示す。その他のステータスは、キャッシュセグメントを上記以外のその他の処理(例えば、ライトバック処理等)で使用する時にセットされるステータスであり、使用数は、その他の処理の使用数を示す。リードステータス、ライトステータス、ステージングステータス及びその他のステータスは、キャッシュセグメントがどのような処理で使われているかを示す一種のオペレーションフラグである。
【００２５】
上記の如く、ディスク制御装置２内のキャッシュメモリ２３は、例えば１６ｋＢ、６４ｋＢ等の所定のキャッシュセグメント単位で区切られ、個々のキャッシュセグメントは、キャッシュセグメント管理テーブル２２５に格納されたキャッシュセグメント管理情報に基づいて管理される。例えば、あるキャッシュセグメントが使用(アクセス)中の場合は、このキャッシュセグメントに該当するキャッシュセグメント管理テーブル２２５に使用中のステータスが格納され、更に、リード中であるかライト中であるかを示す情報も格納される。つまり、リードのＩ／Ｏ処理の場合、キャッシュセグメント管理テーブル２２５にリードステータスが格納されると共に、リード数に「１」を加算することでリードの使用状態が格納される。同様に、ライトのＩ／Ｏ処理の場合、キャッシュセグメント管理テーブル２２５にライトステータスが格納されると共に、ライト数に「１」を加算することでライトの使用状態が格納される。これにより、キャッシュセグメント内でアクセスが競合した場合は、上記ステータスをチェックして排他(キャッシュセグメント排他)を行える。リード又はライトのＩ／Ｏ処理中のキャッシュセグメントに対して後続のＩ／Ｏ処理が衝突した場合、ホスト装置１からのリード又はライトのＩ／Ｏアクセスで検索されたキャッシュセグメントが既に使用状態であれば、現在使用中のＩ／Ｏ処理が終了するまで後続のＩ／Ｏ処理はディスク制御装置２内で待ち合わせを行う。このように従来技術のようにキャッシュセグメント単位でキャッシュメモリ２３の使用状態を管理(排他)するのではなく、アクセス範囲毎に使用状態を管理(排他)することで、実際にアクセス範囲が競合する場合以外は、アクセスを並列に実行できるような制御を実現することができる。
【００２６】
図６は、本実施例の全体動作の概略を説明するフローチャートである。図６に示す処理は、図１に示すＣＭ２２により実行される。図６において、ステップＳ１は、ホスト装置１からのアクセスコマンド、即ち、リードコマンド又はライトコマンドをＣＡ２１を介して受信し、アクセスコマンドに関する情報をジョブ管理テーブル２２４に格納する。ステップＳ２は、キャッシュセグメントの検索処理を行う。
【００２７】
図７は、ステップＳ２が行うキャッシュセグメントの検索処理を説明するフローチャートである。図７において、ステップＳ２１は、アクセス位置からキャッシュセグメントバウンダリの位置情報を求め、ステップＳ２２は、例えばハッシュにより目的のキャッシュセグメントを検索する。これにより、アクセス範囲のデータを保持しているキャッシュセグメントを検索する。ステップＳ２３は、キャッシュデータがアクセス位置に存在するか否かを判定する。キャッシュミスでありステップＳ２３の判定結果がＮＯであると、ステップＳ２４は、周知の方法で新規のキャッシュセグメントを割り当てる。又、ステップＳ２５は、戻り値でキャッシュ動作が可能である旨を図１に示すステップＳ３へ返し、処理は終了する。
【００２８】
他方、キャッシュヒットでありステップＳ２３の判定結果がＹＥＳであると、ステップＳ２６は、キャッシュデータが使用中であるか否かを判定する。ステップＳ２６の判定結果がＮＯでありキャッシュヒットが可能であると、処理は上記ステップＳ２５へ進む。ステップＳ２６の判定結果がＹＥＳであると、ステップＳ２７は、ＬＢＡが示すアクセス位置情報と、アクセスサイズ（ＬＢＡサイズ）が示すキャッシュセグメントサイズに基づいて、キャッシュセグメント内のアクセス開始位置を求める。ステップＳ２８は、キャッシュセグメント管理テーブル２２５からアクセス範囲情報（ビットマップ）を取得し、ステップＳ２９は、アクセス開始位置からアクセスサイズ分のビットマップをチェックする。ステップＳ３０は、アクセス範囲が重なるか否かを判定する。つまり、目的のキャッシュセグメントが見つかった場合、今回のアクセス範囲とキャッシュセグメント管理テーブル２２５に格納されているアクセス範囲が重なっているか否かのチェックを行う。ステップＳ３０の判定結果がＮＯでありアクセスが可能であると、処理はステップＳ２５へ進む。他方、ステップＳ３０の判定結果がＹＥＳでありアクセスが不可能であると、ステップＳ３１は、戻り値でキャッシュ動作が不可能である旨を図１に示すステップＳ３へ返し、処理は終了する。
【００２９】
図６の説明に戻るに、ステップＳ３は、キャッシュ動作が可能であるか否かをステップＳ２におけるキャッシュセグメントの検索処理の結果に基づいて判定する。キャッシュ動作が不可能でありステップＳ３の判定結果がＮＯであると、ステップＳ４は、アクセスの衝突が発生したと判断し、現在処理中のアクセス処理が完了するまで後続のアクセスコマンドをキューイングすることで待ち合わせを行い、処理は終了する。
【００３０】
ステップＳ３の判定結果がＹＥＳであると、ステップＳ５は、アクセスコマンドがリードコマンドであるかライトコマンドであるかを判定する。アクセスコマンドがリードコマンドの場合は処理がステップＳ６へ進み、アクセスコマンドがライトコマンドの場合は処理が後述するステップＳ８へ進む。ステップＳ６は、キャッシュデータが伽ｓｈ巣メモリ２３に存在するか否かを判定し、判定結果がＹＥＳであると、処理は後述するステップＳ８へ進む。つまり、ホスト装置１からのアクセスコマンドに対し、先ずジョブ管理テーブル２２４でアクセス情報が保持され、次にジョブ管理テーブル２２４の情報を元に、アクセス対象のデータがキャッシュメモリ２３上に存在するか否かの検索を行う。ステップＳ６の判定結果がＮＯであると、ステップＳ７は、ディスク装置３のディスク３１からデータを読み込むステージング処理を行い、処理は後述するステップＳ８へ進む。
【００３１】
図８は、ステップＳ７が行うステージング処理を説明するフローチャートである。図８において、ステップＳ７１は、新規に割当てられたキャッシュメモリ２３のキャッシュセグメントを求め、ステップＳ７２は、再度データが存在しない部分を確認して存在しない部分のビットマップを作成する。ステップＳ７３は、キャッシュセグメント管理テーブル２２５にステージング範囲をビットマップでアクセス範囲情報にセットすると共に、データが存在しない部分をビットマップでデータ有無情報にセットする。ステップＳ７４は、ステージング処理を周知の方法で行い、ステップＳ７５は、キャッシュセグメント管理テーブル２２５のアクセス範囲情報、即ち、ステージング範囲をリセットする。ステップＳ７６は、ステージング数が「０」になったか否かを判定し、判定結果がＮＯであると、処理は終了する。ステップＳ７６の判定結果がＹＥＳであると、ステップＳ７７は、キャッシュセグメント管理テーブル２２５のステージングステータスをリセットし、処理は終了する。
【００３２】
図６の説明に戻るに、ステップＳ８は、キャッシュセグメント管理テーブル２２５にアクセス範囲情報をビットマップでセットすると共に、実行した処理（オペレーション）に対応するステータス（オペレーションフラグ）をセットし、対応する処理（オペレーション）の使用数（処理数）に「１」を加算する。ステップＳ９は、ホスト装置１及びディスク制御装置２内のキャッシュメモリ２３間でデータ転送を行い、ステップＳ１０は、キャッシュセグメントのアクセス終了処理を行う。
【００３３】
図９は、ステップＳ１０が行うアクセス終了処理を説明するフローチャートである。図９において、ステップＳ１０１は、キャッシュヒット動作していたキャッシュセグメントを求め、ステップＳ１０２は、今回アクセスしていた位置及びアクセス範囲情報からビットマップを作成する。ステップＳ１０３は、キャッシュセグメント管理テーブル２２５のアクセス範囲情報（ビットマップ）から今回のアクセス範囲をリセットする。ステップＳ１０４は、今回のアクセスがリードであるかライトであるかを判定し、リードであれば処理はステップＳ１０５へ進み、ライトであれば処理は後述するステップＳ１０８へ進む。
【００３４】
ステップＳ１０５は、キャッシュセグメント管理テーブル２２５のリード数から「１」を減算し、ステップＳ１０６は、リード数が「０」になったか否かを判定する。ステップＳ１０６の判定結果がＮＯであると、処理は終了する。又、ステップＳ１０６の判定結果がＹＥＳであると、ステップＳ１０７は、キャッシュセグメント管理テーブル２２５のリードステータスをリセットし、処理は終了する。
【００３５】
ステップＳ１０８は、キャッシュセグメント管理テーブル２２５のライト数から「１」を減算し、ステップＳ１０９は、ライト数が「０」になったか否かを判定する。ステップＳ１０９の判定結果がＮＯであると、処理は終了する。又、ステップＳ１０９の判定結果がＹＥＳであると、ステップＳ１１０は、キャッシュセグメント管理テーブル２２５のライトステータスをリセットし、処理は終了する。
【００３６】
図６の説明に戻るに、ステップＳ１１は、ジョブ管理テーブル２２４を開放して更新可能な状態とし、処理は終了する。
【００３７】
尚、ライトバック処理は、ある程度ライトデータをまとめてディスク装置３内のディスク３１にライトすることで、アクセス性能の向上が図れる。そこで、本実施例では、現在キャッシュメモリ２３にアクセス中の範囲でもライトバック処理を施すべきライトデータが存在する場合には、アクセス範囲が競合するがライトバック処理を行う。但し、ホスト装置１からのライトアクセス中は、そのアクセス範囲のデータをディスク３１へライトバック処理を行うとデータ保証ができないため、キャッシュセグメント管理テーブル２２５のライトステータスがライトアクセス中であることを示す場合には、ライトバック処理の対象としないようにする。
【００３８】
上記の如く、キャッシュセグメント管理テーブル２２５は、１つのキャッシュセグメントで保持可能なデータ量分のビットマップ情報でデータ有無情報及びアクセス範囲情報を格納するので、アクセス中の範囲がわかるようになっている。例えば、１つのキャッシュセグメントで６４ｋＢのデータを保持できる場合であれば、１ＬＢＡ（５１２ バイト）で1 ビットとして１２８ビット（１６バイト）のビットマップ情報をキャッシュセグメント管理テーブル２２５に格納する。又、キャッシュセグメント管理テーブル２２５は、キャッシュセグメントがどのような処理で使われているかを示すステータス（オペレーションフラグ）と、更に各処理（オペレーション）を行っている使用数（処理数）を格納する。このように、キャッシュセグメント管理テーブル２２５は、ホスト装置１からのアクセスコマンドに対して、ディスク制御装置２内で行われる処理（オペレーション）の内容(ステータスや使用数等)を管理するので、アクセスコマンドはキャッシュセグメント管理テーブル２２５を用いて適切にスケジューリング可能である。
【００３９】
又、ホスト装置１からのアクセスコマンドに関するアクセス情報(ＬＢＡ、アクセスサイズ、ＬＵＮ、リードコマンド又はライトコマンド、キャッシュセグメント、アクセス範囲（開始ＬＢＡオフセット、アクセスサイズ）)は、アクセスが完了するまでジョブ管理テーブル２２４で管理される。
【００４０】
従って、ホスト装置１からのアクセスコマンドが使用するキャッシュセグメントは、処理中のアクセスコマンドが使用しているキャッシュセグメントと競合していても、アクセス範囲の重なりがない限りはアクセスを許容する。
【００４１】
図１０は、シーケンシャルアクセスを説明する図である。図１０は、ホスト装置１からアクセスコマンドＡ１〜Ａ８がシーケンシャルに発生する場合を示す。このようなシーケンシャルアクセスの場合、従来技術のキャッシュセグメント排他ではアクセス性能に問題が発生する。
【００４２】
つまり、Ａ１〜Ａ８までのシーケンシャルアクセスは、従来技術では次のように処理される。アクセスＡ１は、キャッシュセグメント＃００を割り当てて処理される。キャッシュセグメント＃００は、アクセス範囲の８ｋＢを含むセグメント全体を使用状態として排他をかける。従って、後続のアクセスＡ２とＡ３は、アクセスＡ１が終了するまで待たされる。更に続くアクセスＡ４では、キャッシュセグメント＃０１を割り当てて処理される。キャッシュセグメント＃０１は、アクセス範囲の８ｋＢを含むセグメント全体を使用状態として排他をかける。従って、後続のアクセスＡ５〜Ａ８は、アクセスＡ４が終了するまで待たされる。
【００４３】
このように、シーケンシャルアクセスの場合、従来技術のキャッシュセグメント排他では処理される順番がまちまちになってしまう。
【００４４】
これに対し、上記実施例によれば、Ａ１〜Ａ８までのシーケンシャルアクセスは、次のように処理される。アクセスＡ１は、キャッシュセグメント＃００の範囲ｓｎを割り当てて処理される。キャッシュセグメント＃００は、アクセス範囲ｓｎの８ｋＢのみを使用状態として排他をかける。従って、後続のアクセスＡ２とＡ３は、アクセスＡ１が終了するまで待たされることなく、アクセス範囲ｓｎとは重ならないキャッシュセグメント＃００のアクセス範囲ｓｎ+１，ｓｎ+２を割り当てて処理される。更に続くアクセスＡ４では、キャッシュセグメント＃０１のアクセス範囲ｓ１を割り当てて処理される。キャッシュセグメント＃０１は、アクセス範囲ｓ１の８ｋＢのみを使用状態として排他をかける。従って、後続のアクセスＡ５〜Ａ８は、アクセスＡ４が終了するまで待たされることなく、アクセス範囲ｓ１とは重ならないキャッシュセグメント＃０１のアクセス範囲ｓ２〜ｓ５を割り当てて処理される。
【００４５】
このように、シーケンシャルアクセスの場合、本実施例のキャッシュセグメント排他では、アクセスが待たされたり処理される順番がまちまちになることもなく、Ａ１〜Ａ８の正しいシーケンスでアクセスが可能となる。
【００４６】
上記実施例では、アクセス範囲をビットマップ情報で管理しているが、アクセス範囲の管理はビットマップ情報を用いるものに限定されず、アクセス範囲がわかるビットマップ情報以外の情報を用いても、同様のアクセス範囲の管理を行うことができる。
【００４７】
又、ジョブ管理情報は、ジョブ管理テーブル２２４以外の形式で格納するようにしても良く、キャッシュセグメント管理情報も、キャッシュセグメント管理テーブル２２５以外の形式で格納するようにしても良い。
【００４８】
更に、本発明の適用は磁気ディスク装置に限定されるものではなく、ディスク装置は光ディスクや光磁気ディスクを用いるものであっても、更に、キャッシュ機能を必要とするディスク以外の形態の記録媒体を用いる格納装置であっても良い。
【００４９】
尚、本発明は、以下に付記する発明をも包含するものである。
（付記１）  キャッシュセグメント単位に区切られたキャッシュメモリのアクセス制御方法であって、
アクセスコマンドがアクセスするキャッシュセグメントが、アクセス中のキャッシュセグメントと競合しても、アクセス範囲の重なりがなければアクセスを許容するアクセス許容ステップを含むことを特徴とする、アクセス制御方法。
（付記２）  キャッシュセグメントを使う処理を示すステータスと、該処理の使用状態とを含むキャッシュセグメント管理情報を格納する格納ステップを更に含み、
該アクセス許容ステップは、該キャッシュセグメント管理情報に基づいてアクセスを許容することを特徴とする、付記１記載のアクセス制御方法。
（付記３）  該キャッシュセグメント管理情報は、該ステータス及び該処理の使用状態に加え、データの所在を示すアドレスと、データの有無を示すデータ有無情報と、アクセス範囲を示すアクセス範囲情報とを含むことを特徴とする、付記２記載のアクセス制御方法。
（付記４）  該格納ステップは、該キャッシュセグメント管理情報をキャッシュセグメント管理テーブルの形式で格納することを特徴とする、付記２又は３記載のアクセス制御方法。
（付記５）  該格納ステップは、該データ有無情報及び／又は該アクセス範囲情報をビットマップで格納することを特徴とする、付記３記載のアクセス制御方法。
（付記６）  実行した処理に対応するステータス及び実行した処理の使用状態を更新する更新ステップを更に含むことを特徴とする、付記２又は３記載のアクセス制御方法。
（付記７）  ジョブ管理テーブルに格納されたアクセス情報を元に、アクセス対象のデータが該キャッシュメモリ上に存在するか否かの検索を行う検索ステップと、
該アクセス対象のデータが該キャッシュメモリ上に存在しないと、ステージング処理により該アクセス対象のデータを格納装置からリードするステップとを更に含むことを特徴とする、付記１記載のアクセス制御方法。
（付記８）  該アクセスコマンドのアクセスが終了すると該キャッシュセグメント管理情報をリセットするステップを更に含むことを特徴とする、付記２又は３記載のアクセス制御方法。
（付記９）  ディスクに対する入出力を制御するディスク制御装置であって、
キャッシュセグメント単位に区切られたキャッシュメモリと、
アクセスコマンドがアクセスするキャッシュセグメントが、アクセス中のキャッシュセグメントと競合しても、アクセス範囲の重なりがなければアクセスを許容する制御手段とを備えたことを特徴とする、ディスク制御装置。
（付記１０）  該制御手段は、キャッシュセグメントを使う処理を示すステータスと、該処理の使用状態とを含むキャッシュセグメント管理情報を格納するキャッシュ制御部を有し、該キャッシュセグメント管理情報に基づいてアクセスを許容することを特徴とする、付記９記載のディスク制御装置。
（付記１１）  該キャッシュセグメント管理情報は、該ステータス及び該処理の使用状態に加え、データの所在を示すアドレスと、データの有無を示すデータ有無情報と、アクセス範囲を示すアクセス範囲情報とを含むことを特徴とする、付記１０記載のディスク制御装置。
（付記１２）  該キャッシュ制御部は、該キャッシュセグメント管理情報をキャッシュセグメント管理テーブルの形式で格納することを特徴とする、付記１０又は１１記載のディスク制御装置。
（付記１３）  該キャッシュ制御部は、該データ有無情報及び／又は該アクセス範囲情報をビットマップで格納することを特徴とする、付記１１記載のディスク制御装置。
（付記１４）  該制御手段は、実行した処理に対応するステータス及び実行した処理の使用状態を更新することを特徴とする、付記１０又は１１記載のディスク制御装置。
（付記１５）  該制御手段は、
ジョブ管理テーブルに格納されたアクセス情報を元に、アクセス対象のデータが該キャッシュメモリ上に存在するか否かの検索を行う入出力制御部と、
該アクセス対象のデータが該キャッシュメモリ上に存在しないと、ステージング処理により該アクセス対象のデータを該ディスクからリードするディスク制御部とを有することを特徴とする、付記９記載のディスク制御装置。
（付記１６）  該制御手段は、該アクセスコマンドのアクセスが終了すると該キャッシュセグメント管理情報をリセットすることを特徴とする、付記１０又は１１記載のディスク制御装置。
（付記１７）  複数の記録媒体を有する格納装置と、
該記録媒体に対する入出力を制御する媒体制御装置とを備え、
該媒体制御装置は、キャッシュセグメント単位に区切られたキャッシュメモリと、アクセスコマンドがアクセスするキャッシュセグメントがアクセス中のキャッシュセグメントと競合してもアクセス範囲の重なりがなければアクセスを許容する制御手段とを備えたことを特徴とする、記憶装置。
（付記１８）  該媒体制御装置の制御手段は、キャッシュセグメントを使う処理を示すステータスと、該処理の使用状態とを含むキャッシュセグメント管理情報を格納するキャッシュ制御部を有し、該キャッシュセグメント管理情報に基づいてアクセスを許容することを特徴とする、付記１７記載の記憶装置。
（付記１９）  該キャッシュセグメント管理情報は、該ステータス及び該処理の使用状態に加え、データの所在を示すアドレスと、データの有無を示すデータ有無情報と、アクセス範囲を示すアクセス範囲情報とを含むことを特徴とする、付記１８記載の記憶装置。
（付記２０）  該キャッシュ制御部は、該キャッシュセグメント管理情報をキャッシュセグメント管理テーブルの形式で格納することを特徴とする、付記１８又は１９記載の記憶装置。
（付記２１）  該キャッシュ制御部は、該データ有無情報及び／又は該アクセス範囲情報をビットマップで格納することを特徴とする、付記１９記載の記憶装置。
（付記２２）  該媒体制御装置の該制御手段は、実行した処理に対応するステータス及び実行した処理の使用状態を更新することを特徴とする、付記１８又は１９記載の記憶装置。
（付記２３）  該媒体制御装置の該制御手段は、
ジョブ管理テーブルに格納されたアクセス情報を元に、アクセス対象のデータが該キャッシュメモリ上に存在するか否かの検索を行う入出力制御部と、
該アクセス対象のデータが該キャッシュメモリ上に存在しないと、ステージング処理により該アクセス対象のデータを該ディスクからリードするディスク制御部とを有することを特徴とする、付記１７記載の記憶装置。
（付記２４）  該媒体制御装置の該制御手段は、該アクセスコマンドのアクセスが終了すると該キャッシュセグメント管理情報をリセットすることを特徴とする、付記１８又は１９記載の記憶装置。
【００５０】
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、種々の変形及び改良が可能であることは、言うまでもない。
【図面の簡単な説明】
【００５１】
【図１】本発明になる記憶装置の一実施例の要部を示すブロック図である。
【図２】リード処理を説明するブロック図である。
【図３】ライト処理を説明するブロック図である。
【図４】ジョブ管理テーブルの構造を示す図である。
【図５】キャッシュセグメント管理テーブルの構造を示す図である。
【図６】実施例の全体動作の概略を説明するフローチャートである。
【図７】キャッシュセグメントの検索処理を説明するフローチャートである。
【図８】ステージング処理を説明するフローチャートである。
【図９】アクセス終了処理を説明するフローチャートである。
【図１０】シーケンシャルアクセスを説明する図である。
【符号の説明】
【００５２】
１      ホスト装置
２      ディスク制御装置
３      ディスク装置
２２      セントラルモジュール
２３      キャッシュメモリ
２２１      Ｉ／Ｏ制御部
２２２      キャッシュ制御部
２２３      ディスク制御部
２２４      ジョブ管理テーブル
２２５      キャッシュセグメント管理テーブル
【図１】
2006065402.tif 000003
【図２】
2006065402.tif 000004
【図３】
2006065402.tif 000005
【図４】
2006065402.tif 000006
【図５】
2006065402.tif 000007
【図６】
2006065402.tif 000008
【図７】
2006065402.tif 000009
【図８】
2006065402.tif 000010
【図９】
2006065402.tif 000011
【図１０】
2006065402.tif 000012