(57)【要約】【課題】  従来のデータ種別によるキャッシュメモリの制御方法では、予め使用領域の上限サイズを決めておく必要がある。そのため、例えば、ある種別のデータが使用する使用領域が上限値に達している場合には別の種別のデータが使用する使用領域に空きが存在する場合でもキャッシュメモリを使用できず、キャッシュメモリの利用効率が低下する。一方、使用領域の上限値を撤廃すると保持していた領域内のデータが他のデータに置き換えられて消失する。【解決手段】  複数の計算機に接続されたストレージ装置の制御装置におけるディスクキャッシュメモリ内にそれぞれの計算機に対応した最低保証値の大きさの格納領域を設定し、それぞれの計算機に対応した優先度に応じてそれぞれの計算機に格納領域を割り当てる。【選択図】  図２３
2005339299.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機に接続されたストレージ装置の制御装置において、
前記ストレージ装置のディスクキャッシュメモリ内にそれぞれの計算機に対応した最低保証値の大きさの格納領域を設定し、
それぞれの前記計算機に対応した優先度に応じて、前記最低保証値の大きさの格納領域以外の格納領域内に、それぞれの計算機に対応して格納領域を割り当てることを特徴とするストレージ装置のキャッシュ制御方法。
【請求項２】
前記計算機に対応したそれぞれの前記格納領域は、それぞれが一定の記憶領域を有する少なくとも一つのキャッシュスロットを割り当てられた順にリンクしたリンク構造で構成することを特徴とする請求項１記載のストレージ装置のキャッシュ制御方法。
【請求項３】
当該計算機よりも優先度が高い他の計算機に対応した格納領域を拡張する場合、当該計算機の前記最低保証値に相当する大きさの格納領域を、前記他の計算機へ割り当てることを抑止することを特徴とする請求項１記載のストレージ装置のキャッシュ制御方法。
【請求項４】
前記ディスクキャッシュメモリ内に空き領域がない時に、当該計算機から新たな格納領域を要求された場合、前記当該計算機よりも優先度の低い他の計算機の格納領域の一部と交換することを特徴とする請求項１記載のストレージ装置のキャッシュ制御方法。
【請求項５】
前記優先度の高い計算機と格納領域を交換する際は、前記優先度が低い計算機が保持する古いデータが格納されている領域の順に交換することを特徴とする請求項４記載のストレージ装置のキャッシュ制御方法。
【請求項６】
前記複数の計算機のそれぞれに対応した前記優先度及び前記最低保証値を予めスケジューリングし、時間帯に応じて前記優先度及び前記最低保証値を可変することを特徴とする請求項１記載のストレージ装置のキャッシュ制御方法。
【請求項７】
当該計算機に対応したデータ量が前記最低保証値に満たない場合でも、前記最低保証値の大きさの格納領域を確保することを特徴とする請求項１記載のストレージ装置のキャッシュ制御方法。
【請求項８】
前記複数の計算機のうちのいくつかの前記優先度が同じ場合、同じ優先度を有する前記いくつかの計算機は前記キャッシュメモリの格納域を共有することを特徴とする請求項１記載のストレージ装置のキャッシュ制御方法。
【請求項９】
前記優先度と前記最低保証値は、前記ストレージ装置に接続された制御端末を介して設定されることを特徴とする請求項１記載のストレージ装置のキャッシュ制御方法。
【請求項１０】
前記スケジューリングのための情報は、前記ストレージ装置に接続された制御端末を介して設定されることを特徴とする請求項６記載のストレージ装置のキャッシュ制御方法。
【請求項１１】
前記スケジューリングの際に、各時間帯で、それぞれの前記計算機に対応した前記最低保証値の合計がキャッシュスロットの総数以下となるように制御されることを特徴とする請求項６記載のストレージ装置のキャッシュ制御方法。
【請求項１２】
前記計算機からの入出力の要求に対応したデータと前記データが格納されているキャッシュスロットとの対応関係を保持することを特徴とする請求項２記載のストレージ装置のキャッシュ制御方法。
【請求項１３】
前記計算機からの入出力の要求に対応した優先度が、前記要求に対応したデータが格納されているキャッシュスロットの優先度よりも高い場合、前記キャッシュスロットを、前記入出力に対応したリンク構造に付け替えることを特徴とする請求項２記載のストレージ装置のキャッシュ制御方法。
【請求項１４】
前記計算機からの入出力の要求に対応したデータがキャッシュスロットにない場合、前記計算機に割り当てられていないキャッシュスロット、又は他のリンク構造から取り出したキャッシュスロットのいずれかを、前記入出力の要求に対応するリンク構造の最後尾に追加することを特徴とする請求項２記載のストレージ装置のキャッシュ制御方法。
【請求項１５】
前記他のリンク構造を選択する際に、キャッシュスロットの使用量が前記最低保証値を超えており、かつ、前記優先度が最低のリンク構造を選択することを特徴とする請求項１４記載のストレージ装置のキャッシュ制御方法。
【請求項１６】
前記優先度、前記最低保証値、及び前記優先度と前記最低保証値との設定日時を定義したスケジュール定義の少なくとも一つを含むキャッシュメモリ量の制御情報を、前記ストレージ装置に接続された制御端末、あるいは前記複数の計算機のうちのいずれかから設定することを特徴とする請求項１記載のストレージ装置のキャッシュ制御方法。
【請求項１７】
前記スケジューリングの際に、各時間帯で、いくつかの前記計算機に対応した前記優先度が同じになった場合、それぞれの前記計算機に対応したリンク構造を同じにすることを特徴とする請求項６記載のストレージ装置のキャッシュ制御方法。
【請求項１８】
複数の計算機に接続されたストレージ装置の制御装置は、
前記ストレージ装置のディスクキャッシュメモリ内にそれぞれの計算機に対応した最低保証値の大きさの格納領域を設定する制御端末と、
それぞれの前記計算機に対応した優先度に応じて、前記最低保証値の大きさの格納領域以外の格納領域内に、それぞれの計算機に格納領域を割り当てる処理装置とを有することを特徴とするストレージ装置の制御装置。
【請求項１９】
複数の計算機に接続されたストレージ装置のキャッシュ制御方法を実行するためのプログラムを格納した、計算機で読み取り可能な記憶媒体であって、前記方法は、
前記ストレージ装置のディスクキャッシュメモリ内にそれぞれの計算機に対応した最低保証値の大きさの格納領域を設定し、
それぞれの前記計算機に対応した優先度に応じて、前記最低保証値の大きさの格納領域以外の格納領域内に、それぞれの計算機に格納領域を割り当てることを特徴とする記憶媒体。
【請求項２０】
複数の計算機に接続されたストレージ装置の制御装置において、
前記ストレージ装置にキャッシュメモリの格納領域は、それぞれが一定の記憶領域を有する複数のキャッシュスロットで構成し、
前記計算機に対応したそれぞれの格納領域は、前記キャッシュスロットを割り当てられた順にリンクしたリンク構造で構成し、
それぞれの前記計算機に対応して、最低限確保すべきキャッシュスロットの個数を定めた最低保証値を設定し、
それぞれの前記計算機に対応して、前記格納領域を割り当てるための優先度を設定し、
前記優先度に応じて、前記最低保証値で定められた個数以外の少なくとも一つのキャッシュスロットに、それぞれの計算機に格納領域を割り当てることを特徴とするストレージ装置のキャッシュ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージ装置のキャッシュ制御技術に関する。
【背景技術】
【０００２】
ストレージ装置では、内部にキャッシュメモリを設けることで、同一データに対する２度目以降のアクセスはキャッシュメモリから読み込むことで高速アクセスを可能としている。
【０００３】
ところが、キャッシュメモリの容量は、ディスク装置の容量と比べ少ないため、すべてのデータをキャッシュメモリに配置することは困難である。そこで、キャッシュメモリ上に配置するデータを選択する必要がある。
【０００４】
特開２００３−３３０７９２号公報記載の従来技術では、キャッシュメモリに格納する高使用頻度のデータと低使用頻度のデータとを区別してキャッシュメモリの使用領域を区分し、各使用領域に上限サイズを設けることで、高使用頻度のデータが低使用頻度のデータに追い出されるのを防止してキャッシュヒット率を高めている。（特許文献１参照）
【特許文献１】特開２００３−３３０７９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、従来技術に示される使用頻度に基づくデータ種別によるキャッシュメモリの制御方法では、予め使用領域の上限サイズを決めておく必要がある。そのため、例えば、ある種別のデータが使用する使用領域が上限値に達している場合には、別の種別のデータが使用する使用領域に空きが存在する場合でも、キャッシュメモリを使用することができず、キャッシュメモリの利用効率が悪いという問題がある。一方、この空き領域を有効利用するために使用領域の上限値を撤廃すると空き領域はなくなるが、他の計算機によってほとんどの領域が占有され、新たな領域を確保できなくなったり、保持していた領域内のデータが他のデータに置き換えられるという問題がある。特に、ほぼ同時期に複数の計算機からストレージ装置に対して入出力の要求が発生し、しかも、これら複数の入出力要求に処理上の区別がついていない場合に上記の問題が発生し易くなる。
【０００６】
本発明の目的は、空き領域を有効に利用できるストレージ装置のキャッシュ制御方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明では、複数の計算機に接続されたストレージ装置の制御装置におけるディスクキャッシュメモリ内にそれぞれの計算機に対応して確保すべき最低限の格納領域の大きさを所定の大きさの領域の個数で表した最低保証値の大きさの格納領域を設定し、それぞれの計算機に対応してキャッシュメモリ内の格納領域確保の優先順位を定めた優先度に応じて、前記最低保証値の大きさの格納領域以外の格納領域内に、それぞれの計算機に格納領域を割り当てる。また、本発明では、複数の計算機のそれぞれに対応した優先度及び最低保証値を予めスケジューリングし、時間帯に応じて優先度及び最低保証値を可変する。
【発明の効果】
【０００８】
本発明によれば、他の計算機によってキャッシュメモリ内の格納領域の大部分が占有されても、当該計算機に対して最低保証値の大きさの格納領域が確保される。また、計算機に対応した優先度に応じて空き領域から格納領域を割り当てるので、利用形態に応じたキャッシュメモリの有効利用が図られる。
【発明を実施するための最良の形態】
【０００９】
本発明の実施例を説明する。図１は本発明の一実施例である、ストレージ装置およびストレージ装置に接続されているホスト計算機（以下、ホスト）のシステム構成を示した図である。
【００１０】
本実施例のシステムは少なくとも１つのホスト１１０、ストレージ装置１２０、制御端末１９０、記憶装置１９１を有する。
【００１１】
ホスト１１０は、ポート１１３を介してストレージ装置１２０に接続される。ポート１１３のストレージ装置１２０への接続は、図示するような結線に限らず、ＳＡＮ(Storage Area Network)等による接続でもよい。
【００１２】
ホスト１１０は、アプリケーション１１１とオペレーティングシステム１１２を格納した主記憶装置（以下、メモリ）とこれらプログラムを実行するＣＰＵ（処理装置）とからなる一般的な計算機である。
【００１３】
アプリケーション１１１は、オペレーティングシステム１１２へ入出力を要求することが可能である。
【００１４】
オペレーティングシステム１１２はアプリケーション１１１より入出力要求を受け付け、必要に応じて論理ボリューム１７１に対する命令を生成し、入出力命令を起動する。
【００１５】
ストレージ装置１２０はディスク制御装置１３０とディスク装置１７０とを有する。ディスク制御装置１３０とディスク装置１７０は結線によって接続されている。
【００１６】
ディスク制御装置１３０は、ポート１３１、制御プログラム１３２、キャッシュメモリ１３３、内部タイマ１３４、ポート１３５を有し、制御プログラム１３２を格納した主記憶装置（以下、メモリ）及びこのプログラムを実行するＣＰＵ（処理装置）を有する。ポート１３１、キャッシュメモリ１３３、内部タイマ１３４、ポート１３５、メモリ及びＣＰＵは内部バスによって相互に接続されている。制御プログラム１３２はディスク制御装置１３０内のメモリにあっても良いし、またはディスク装置制御装置１３０に入出力パス１３１を介して接続するホスト１１０内にあっても良い。本実施例ではディスク制御装置１３０内のメモリに制御プログラム１３２を有する例を示す。
【００１７】
ポート１３１のホスト１１０への接続は、図示するような結線に限らず、ＳＡＮ等による接続でもよい。
【００１８】
制御プログラム１３２は入出力受付処理１４０、制御情報更新処理１４１、制御情報１４２、キャッシュ制御処理１４３、キャッシュ制御情報１４４、スケジュール定義情報１４５、スケジュール実施処理１４６を有し、ホスト１１０や制御端末１９０から送られる入出力を制御する。
【００１９】
キャッシュメモリ１３３は、複数のキャッシュスロット１５０を有する。キャッシュスロット１５０はキャッシュメモリ１３３を等分した領域で構成した格納領域の単位である。また、キャッシュスロット１５０として、物理的には分散して配置されている領域の断片を集めて論理的な格納領域の単位を構成してもよい。
【００２０】
内部タイマ１３４はディスク制御装置１３２が保持している時計である。
【００２１】
ポート１３５は制御端末１９０との接続部位である。
【００２２】
制御端末１９０は、ネットワークインタフェイス１９２、オペレーティングシステム１９３と管理プログラム（アプリケーションの一つ）１９４を格納した主記憶装置（以下、メモリ）、及びこれらプログラムを実行するＣＰＵ（処理装置）とからなる一般的な計算機である。ホスト１１０と異なり、制御端末１９０はストレージ装置１２０の制御を目的とする計算機である。
【００２３】
制御端末１９０はネットワークインタフェイス１９２を介してストレージ装置１２０に接続されている。制御端末１９０のストレージ装置１２０への接続は、図示するような結線に限らず、ＳＡＮ等による接続でもよい。管理プログラム１９４は、オペレーティングシステム１９３、ネットワークインタフェイス１９２を介して制御プログラム１３２へ入出力を要求することが可能である。
【００２４】
制御端末１９０には記憶装置１９１が接続されている。記憶装置１９１は制御端末１９０の演算結果を格納可能な媒体であればどんなものでも構わない。管理プログラム１９４からの入出力要求から制御情報１４２の内容を取り出して定義ファイル１９７として記憶装置１９１へ保存可能である。
【００２５】
ディスク駆動装置１７０は、少なくとも１つの論理ボリューム１７１を有する。論理ボリューム１７１には、アプリケーション１１１からの入出力要求によって読み出し・書き出し可能なデータ１７２が格納されている。また、アプリケーション１１１からの入出力要求から制御情報１４２の内容を取り出して定義ファイル１７３として論理ボリューム１７１へ保存可能である。
【００２６】
図２３は、本発明の概要を示す。２つのホスト（ＣＰＵ）１１０に接続されているディスク制御装置１３０に設けられているキャッシュメモリ１３３のデータ格納領域は、それぞれが一定の大きさを持つ複数のキャッシュスロットによって構成されており、各ホスト１１０には予めキャッシュメモリ内の格納領域確保の優先順位を定めた優先度が割り当てられており、各ホスト１１０にはキャッシュメモリ１３３への入出力に応じてキャッシュスロットの個数が割り当てられる。また、各ホスト１１０には、予め、確保すべき最低限の格納領域の大きさをキャッシュスロットの個数で表した最低保証値が割り当てられており、優先度の高い他のホストが格納領域の大きさ（キャッシュスロットの数）を拡張しても、当該ホストには最低保証値の個数のキャッシュスロットの割り当てが確保されており、当該ホストがアクセスするデータがキャッシュメモリ１３３から排除されないようにしている。
【００２７】
また、本発明では、キャッシュメモリ１３３内のデータ格納領域を一定の大きさを持つキャッシュスロットの単位で管理しているので、各ホストに対応するデータ格納領域の分布は、キャッシュメモリ１３３への入出力に伴なって、キャッシュスロットの単位で変化し、最低保証値の範囲にある複数のキャッシュスロットの分布も、キャッシュスロットの単位で変化する。即ち、複数のキャッシュスロットがどのように分布していても最低保証値の個数のキャッシュスロットは常に確保され、あるいは最低限確保され、例えば、初期段階のように、データ量が少ない場合でも最低保証値の個数のキャッシュスロットは確保される。即ち、本発明では、最低保証値の個数のキャッシュスロットを格納領域として実際に割り当てるのではなく、最低限確保されるべきキャッシュスロットの個数である最低保証値のみが設定され、この個数が確保されるように制御される。
【００２８】
また、同一ストレージ装置に複数のホストが接続されている環境では、特定ホストの入出力を優先するような制御が有効になることがある。例えば、バッチ業務とオンライン業務を異なるホストが遂行し、各々のホストが同一ストレージ装置を共用しているシステム構成では、オンライン業務のホストの入出力を優先すれば、オンライン業務は遅延せずに済む。本発明では、優先する経路（計算機）からのデータをキャッシュメモリ内に多く配置するようにキャッシュスロットの制御を行うことにより経路毎の入出力要求の処理時間を差別化できる。また、キャッシュメモリ量の制御情報（優先度、最低保証値、スケジュール定義）を外部からの指示により参照・更新することで、運用形態等に応じてキャッシュメモリ量を柔軟に制御できる。例えば、キャッシュメモリ量の制御情報（後述する優先度、最低保証値、スケジュール定義）を、制御端末１９０、あるいは複数のホスト１１０のうちのいずれかから設定することもできる。
【００２９】
図２はキャッシュ制御情報１４４の詳細図である。
【００３０】
キャッシュ制御情報１４４は経路定義情報２１０、キャッシュスロット管理情報２１１、待ち行列管理情報２１２を有する。
【００３１】
図３は経路定義情報２１０の詳細図である。
【００３２】
経路定義情報２１０は、複数の経路定義エントリ３１０を有する。経路定義エントリ３１０には１つの入出力経路状態が設定される。経路定義エントリ３１０は、経路識別子３２０、優先度３２１、キャッシュスロット最低保証値３２２を有する。本実施例では、ホスト１１０とディスク制御装置１３０との経路は、各ホストにつき１つづつであるため、経路識別子３２０はホスト１１０を区別するための識別子の意味もある。本実施例では、説明を簡単にするために、経路とホストは一対一に対応する。
【００３３】
経路定義情報２１０は、ホスト１１０上のアプリケーション１１１または制御端末１９０上の管理プログラム１９４からの入出力要求により参照・更新が可能である。
【００３４】
経路識別子３２０はキャッシュメモリのデータ格納領域を構成するキャッシュスロットの待ち行列を識別する情報である。ここで、キャッシュスロットの待ち行列は、キャッシュスロットが割り当てられた順にリンクされたリンク構造である。待ち行列には各ホストの識別のほかに無効キャッシュスロット（有効なデータが格納されていないキャッシュスロットで、新たな領域確保の対象となるもの）を管理するものが必要であるため、待ち行列数は入出力を要求したホスト数＋１だけ存在する。
【００３５】
入出力を要求したホストを識別する情報は、例えば、パスグループ識別子、ホスト識別子などを指すが、ホストを一意に識別できる情報であれば何でもよい。
【００３６】
優先度３２１は異なるホスト間でキャッシュスロット１５０を使用する優先順位であり、全てのホストでユニークな値であっても良いし、同一の優先度を有する複数のホストがあっても良い。ホスト間の優先度は運用状況に応じて外部からの指示により可変であるが、無効キャッシュスロットを管理する経路識別子の優先度３２１は固定値で、全優先度中最低とする。優先度を設けることで優先度が高いホストからの入出力よって使用中のキャッシュスロット１５０の内容は優先度が低いホストによって排除されにくくなる。また、無効キャッシュスロットを管理する経路識別子の優先度３２１は最低とすることで、無効キャッシュスロットを可能な限り少なくし、キャッシュメモリを有効に利用することを可能にする。
【００３７】
キャッシュスロット最低保証値３２２は、待ち行列が保持することができるキャッシュスロット識別子の最低個数である。ホスト毎のキャッシュスロット最低保証値３２２は運用状況に応じて外部からの指示により可変である。しかし、無効キャッシュスロットを管理する経路識別子のキャッシュスロット最低保証値３２２は、固定で最低保証されるスロット数はない。
【００３８】
ホスト毎にキャッシュスロット最低保証値３２２を設定することでホストが利用可能な必要最低限のキャッシュメモリ容量を確保している。また、無効キャッシュスロットの最低保証されるスロット数をなくすことで無効キャッシュスロットを可能な限り少なくし、キャッシュメモリを有効に利用することを可能にする。
【００３９】
図４はキャッシュスロット管理情報２１１の詳細図である。
【００４０】
キャッシュスロット管理情報２１１は各キャッシュスロット１５０の状態を保持している。キャッシュスロット管理情報２１１は、複数のキャッシュスロット管理エントリ４１０を有する。キャッシュスロット管理エントリ４１０には、１つのキャッシュスロット１５０の状態が設定されている。キャッシュスロット管理エントリ４１０は、キャッシュスロット識別子４２０、経路識別子４２１を有する。キャッシュスロット識別子４２０は、キャッシュスロット１５０を一意に識別するための情報である。経路識別子４２１は、キャッシュスロット１５０を使用している入出力要求元ホスト、または無効キャッシュスロットを示す情報であり、経路識別子３２０と同一情報である。データ格納位置情報４２２は、キャッシュスロット識別子４２０で示されるキャッシュスロットに格納されているデータ１７２の格納位置を示す情報である。例えば、論理アドレス、セクタ番号、クラスタ番号など論理ボリュームの格納位置を一意に表すものなら何でもよい。
【００４１】
図５は待ち行列管理情報２１２の詳細図である。
【００４２】
待ち行列管理情報２１２は複数の待ち行列エントリ５１０を有する。１つの待ち行列エントリ５１０は、入出力要求元ホスト毎に使用するキャッシュスロットの待ち行列、または、無効キャッシュスロットを管理する待ち行列が設定される。経路識別子５２０は、入出力要求元ホスト、または無効キャッシュスロットを管理する待ち行列を識別する情報である。当該キャッシュスロットが入出力要求元ホストに割り当てられていれば経路識別子５２０には経路識別子３２０と同一情報が格納され、無効キャッシュスロットであればどの経路識別子情報とも一致しない情報が格納される。待ち行列ヘッダ５２１は、１つの待ち行列の情報を示し、複数のキャッシュスロット識別子４２０を有する場合とキャッシュスロット識別子４２０を保持しない場合（無効キャッシュスロットの場合）とがある。キャッシュスロット使用量５２２は、待ち行列が有するキャッシュスロット数を示す情報である。
【００４３】
１つの待ち行列が複数のキャッシュスロット識別子４２０を有する場合、待ち行列ヘッダ５２１には、待ち行列を構成する複数のキャッシュスロットからなるリンク構造を示す情報が格納されている。即ち、複数のキャッシュスロット識別子４２０相互の、待ち行列における接続関係を示す情報が格納されている。この接続関係では、キャッシュスロットが割り当てられた順にキャッシュスロット識別子４２０がリンクされている。従って、待ち行列の先頭に位置するキャッシュスロットほどデータは古く、最後尾に位置するキャッシュスロットほどデータは新しい。図５に示すように、待ち行列ヘッダ５２１には、当該キャッシュスロットの前及び後に接続されているキャッシュスロットのキャッシュスロット識別子４２０が順次格納されている。図５に示す接続関係の情報は、後述する図１３の待ち行列Ｂに対応するリンク構造を示したものである。なお、先頭のキャッシュスロットの前スロットには「−」が格納され、最後尾のキャッシュスロットの後スロットには「−」が格納される。
【００４４】
図６はスケジュール定義情報１４５の詳細を示した図である。
【００４５】
スケジュール定義情報１４５は、経路定義のスケジューリングを設定するための複数のスケジュール定義エントリ６１０を有する。スケジュール定義エントリ６１０は、日付６２０、時刻６２１、新規経路定義情報６２２を有する。スケジュール実施処理１４６は内部タイマ１３４を監視し、日時が、設定した日付６２０、時刻６２１になると既存の経路定義情報２１０を新規経路定義情報６２２に書き換える。
【００４６】
スケジュール定義情報１４５は、スケジュール実施処理１４６が参照する情報である。
【００４７】
スケジュール実施処理１４６は、内部タイマ１３４を監視し、スケジュール定義情報１４５に登録されている時刻になるとキャッシュ制御情報１４４を更新する。特定の時刻でキャッシュ制御情報１４４を更新することでホスト１１０からのアクセス制御を柔軟に行うことができる。
【００４８】
次に、図１のシステムにおける入出力について説明する。
【００４９】
本発明における入出力要求の対象は２種類あり、論理ボリューム１７１と制御情報１４２である。論理ボリューム１７１を対象とする入出力は、論理ボリューム内のデータへ読み書きを行う入出力である。一方、本発明における制御情報を外部から操作する手段として制御情報１４２への入出力がある。
【００５０】
図７は論理ボリューム１７１への入出力の流れを示した図である。
【００５１】
ホスト１１０上で動作するアプリケーション１１１からの入出力要求は、オペレーティングシステム１１２、ポート１１３を経由してストレージ装置１２０へ転送される。
【００５２】
ストレージ装置１２０へ到着した入出力要求は、ポート１３１で受け付けられ制御プログラム１３２へ転送される。
【００５３】
入出力受付処理１４０はポート１３１より入出力要求を受け付ける。その後、入出力要求を判別して振り分ける。入出力要求の対象が論理ボリューム１７１ならば入出力要求をキャッシュ制御処理１４３へ転送する。入出力要求の対象が制御情報１４２ならば制御情報更新処理１４１へ転送する。
【００５４】
キャッシュ制御処理１４３はキャッシュメモリ１３３を制御するプログラムで、キャッシュ制御情報１４３およびキャッシュメモリ１３３を参照・更新し、必要に応じて論理ボリューム１７１にアクセスして入出力要求を実行する。
【００５５】
入出力要求の実行が完了後は受け付けとは逆の順序でアプリケーション１１１に入出力完了を報告する。
【００５６】
制御情報１４２への入出力要求の処理の流れを図８に示す。
【００５７】
情報制御１４２への入出力要求は、ホスト１１０または制御端末１９０上で動作しているアプリケーション１１１または管理プログラム１９４によって実行される。アプリケーション１１１が制御情報１４２へ入出力要求を出力した場合、論理ボリューム１７１への入出力と同様、オペレーティングシステム１１２、ポート１１３、ポート１３１を介して入出力受付処理１４０へ転送される。入出力受付処理１４０では入出力要求を判別して、情報制御１４２への入出力の場合は制御情報更新処理１４１へ振り分ける。制御情報更新処理１４１では、キャッシュ制御情報１４４内の経路定義情報２１０、またはスケジュール定義情報１４５内の日付６２０、時刻６２１、新規経路定義情報６２２を参照・更新する。
【００５８】
制御情報１４２を更新後の処理は、入出力受付とは逆の順序でアプリケーション１１１に入出力完了を報告する。
【００５９】
管理プログラム１９４が制御情報１４２へ入出力要求を出力した場合、入出力要求はオペレーティングシステム１９３、ネットワークインタフェイス１９２、ポート１３５を介して制御情報更新処理１４１へ転送される。その後の動作はアプリケーション１１１が要求する入出力の動作と同様である。制御端末１９０上で動作する管理プログラム１９４が経路定義情報２１０、スケジュール定義情報１４５を参照・更新することにより、ホスト１１０の稼動状態に依存しない運用が可能となる。
【００６０】
なお、アプリケーション１１１、管理プログラム１９４が経路定義情報２１０、スケジュール定義情報１４５より取得した情報は論理ボリューム１７１、または記憶装置１９１への入出力を実行することで定義ファイルとして保存可能である。アプリケーション１１１、管理プログラム１９４は定義ファイル１７３、定義ファイル１９７を元に制御情報１４２への入出力が可能である。定義ファイル１７３、定義ファイル１９７を複写、あるいは他の計算機から参照可能にすることで様々な計算機より制御情報の更新が可能となる。
【００６１】
図９は論理ボリューム１７１に対する入出力要求を受け付けた時におけるキャッシュ制御処理１４３の動作を示したフローチャートである。
【００６２】
キャッシュ制御処理１４３は、ボリュームに対する入出力要求を受け付けた後、最初の命令を取り出し（ステップ９００）、その命令の種別を判別する（ステップ９０１、ステップ９０２）。その命令が読み込み命令または書き込み命令ならば、キャッシュ制御情報の更新処理を実行する（ステップ９０３、ステップ９０４）。キャッシュ制御情報更新処理は読み込み命令および書き込み命令で動作が異なるが詳細は後述する。その後、データの読み出し又は書き込みの命令を実行し（ステップ９０５）、ステップ９０１からステップ９０５の動作を最後の命令まで繰り返す（ステップ９０６、ステップ９０７）。最後に、ホストへ入出力完了を報告する（ステップ９０８）。
【００６３】
図１０は、図９に示した読み込み命令用キャッシュ制御情報の更新処理９０３のフローチャートである。
【００６４】
入出力要求により指定されたデータ１７２がキャッシュメモリ１３３上に存在するかを判定するため、キャッシュスロット管理情報２１１のうち、入出力要求で指定されたデータ１７２が格納されているキャッシュスロット識別子４２０を検索する（ステップ１０００）。検索の際に必要な、データ１７２とデータが格納されているキャッシュスロットのキャッシュスロット識別子４２０との対応関係を示す情報は、図４に示したキャッシュスロット管理情報２１１に格納されている。
【００６５】
キャッシュスロット管理情報２１１中のキャッシュスロット識別子４２０で示されるキャッシュメモリ１３３上のデータがデータ１７２と一致する場合に、データ１７２がキャッシュメモリ１３３上に存在するものと判断する（ステップ１００１）。
【００６６】
次に、入出力要求に付加された入出力経路情報と経路定義情報２１０中の経路識別子３２０が一致する経路定義エントリ３１０を検索し、検索した経路定義エントリ３１０内の優先度３２１がステップ１０００で検索したキャッシュスロットの優先度３２１より高いか判定する（ステップ１００２）。入出力経路の優先度がステップ１０００で検索したキャッシュスロットの優先度３２１より高い場合、ステップ１０００で探索したキャッシュスロット識別子のキャッシュスロットを待ち行列から取り出し、入出力経路に対応する待ち行列の最後尾へ登録し（ステップ１００３）、キャッシュスロット管理情報２１１の経路識別子４２１を入出力要求のものに更新する（ステップ１００４）。
【００６７】
ステップ１００２で、検索した経路定義エントリ３１０内の優先度３２１がステップ１０００で検索したキャッシュスロットの優先度３２１より高くないと判定された場合、なにもせず、キャッシュメモリ１３３上に存在するデータ１７２に対応する優先度３２１は、検索した経路定義エントリ３１０内の優先度３２１となる。
【００６８】
入出力要求で指定されたデータ１７２がキャッシュメモリ１３３上に存在しない場合、すなわち、キャッシュスロット識別子４２０で示されるキャッシュメモリ１３３上のデータがデータ１７２と一致しない場合にはキャッシュスロット選択処理を実行する（ステップ１００６）。キャッシュスロット選択処理では、無効キャッシュスロットまたはキャッシュメモリの内容を論理ボリュームへ退避するキャッシュスロットを選択し、待ち行列から新たに読み出すキャッシュスロット識別子を取り出す処理を行う。ステップ１００６で選択したキャッシュスロットを、入出力経路識別子と一致する待ち行列の最後尾へ登録し（ステップ１００７）、キャッシュスロット管理情報２２１の経路識別子４２１を入出力経路のものに更新する（ステップ１００８）。
【００６９】
図１１は、図１０に示したキャッシュスロット選択処理１００６の動作を示すフローチャートである。
【００７０】
待ち行列管理情報２１２中の待ち行列エントリ５１０内で、経路識別子５２０により決定される待ち行列ヘッダ５２１に登録されている待ち行列のキャッシュスロット使用量５２２と、経路定義情報２１０中の経路定義エントリ３１０内で当該経路識別子３２０により決定されるキャッシュスロット最低保証値３２２とを比較した結果、キャッシュスロット使用量５２２がキャッシュスロット最低保証値３２２を越えている入出力経路のうち優先度３２１が最も低いものを経路定義情報２１０より探索する（ステップ１１００、ステップ１１０１）。キャッシュスロット使用量５２２がキャッシュスロット最低保証値３２２を越えている入出力経路が見つかった場合、ステップ１１００で探索した待ち行列よりＬＲＵ(Least Recently Used)方式でキャッシュスロット識別子を取り出す（ステップ１１０２）。見つからなかった場合、キャッシュスロット識別子が登録されている待ち行列のうち、最も優先度が低いものよりＬＲＵ方式でキャッシュスロット識別子を取り出す（ステップ１１０３）。
【００７１】
以上の処理で取り出したキャッシュスロットが無効キャッシュスロットでなければキャッシュメモリ上のデータを論理ボリューム１７１へ書き込み（ステップ１１０４）、当該キャッシュスロットを以降の処理で使用するキャッシュスロットとする。
【００７２】
図１２は、図９に示した書き込み処理９０４の動作を示すフローチャートである。書き込み処理では、入出力要求で指定されるデータをキャッシュへ書き込むために、キャッシュスロットに書き込まれている内容を退避するための上記キャッシュスロット選択処理を行う（ステップ１２００）。ステップ１２００で選択したキャッシュスロット１５０の待ち行列よりキャッシュスロット識別子を取り出し、入出力経路に対応する待ち行列の最後尾へ挿入する（ステップ１２０１）。さらに、経路識別子３２０を入出力経路情報に更新し（ステップ１２０２）、当該キャッシュスロットが当該入出力経路で使用されていることを表示する。
【００７３】
図１３〜図１８を用いて本発明における論理ボリュームへの入出力の実施例を説明する。
【００７４】
図１３は経路定義情報２１０（図１３のＡ））と待ち行列管理情報２１２（図１３のＢ））の実施例を示した図である。
【００７５】
実施例でディスク装置は、ホストＡ、ホストＢが接続されている。経路識別子１３００は、それぞれ「ホストＡ」、「ホストＢ」である。経路識別子１３００が「無効」となっている経路定義エントリは、いずれの経路にも属していない無効キャッシュスロットを管理している（以下、無効エントリと呼ぶ）。実施例での優先度１３０１は、数値が低いほど優先度が高いものとする。また、無効エントリの優先度１３０１は全優先度中で最低となり、無効エントリのキャッシュスロット最低保証値１３０２は０である。
【００７６】
キャッシュスロット使用量１３０５は、待ち行列の状態によって決まる。ホストＡ、ホストＢ、無効エントリの待ち行列ヘッダ１３０４は、それぞれ待ち行列Ａ、待ち行列Ｂ、待ち行列Ｃである。それぞれの待ち行列は、図１３のＣ）に示すようなキャッシュスロット識別子を有する。待ち行列１３１０は、キャッシュスロット識別子「１」、「２」を有する。待ち行列１３１１は、キャッシュスロット識別子「３」、「４」、「５」、「６」を有する。待ち行列１３１２は、無効エントリのキャッシュスロット識別子を管理している。待ち行列１３１０は、キャッシュスロット識別子「０」を有する。
【００７７】
図２４に、各待ち行列に割り当てられたキャッシュスロットの数とキャッシュスロット最低保証値３２２との関係を示す。各待ち行列では、キャッシュスロットが順次リンクされており、先頭のキャッシュスロットは古く、新しいキャッシュスロットは最後尾にリンクされる。
【００７８】
また、図１３、２４に示すようなキャッシュスロットのリンク構造は、図５の待ち行列エントリ５１０に示すように、当該キャッシュスロットの前及び後にリンクされているキャッシュスロットのキャッシュスロット識別子を追加しても実現できる。
【００７９】
図１４はキャッシュスロット管理情報２１１の実施例を示した図である。
【００８０】
キャッシュメモリ１３３は等分に分割され、各々「０」〜「６」までのキャッシュスロット識別子を有し、各キャッシュスロット識別子によりキャッシュメモリ１３３上のデータアドレスが一意に決定されるものとする。本実施例では、データ格納位置情報１４０２として論理ボリューム識別子と論理アドレスを用いる。
【００８１】
例えば、キャッシュメモリ１３３上のデータアドレスが小さい順に、各々「０」〜「６」までのキャッシュスロット識別子を有するキャッシュスロットが格納されているものとする。キャッシュスロット識別子「０」が示すキャッシュメモリ１３３上のデータアドレスは、いずれの経路も使用していないアドレスであり、経路識別子は「無効」となっている。以下同様に、キャッシュスロット識別子「１」、「２」は経路識別子「ホストＡ」が使用しているキャッシュメモリ上のデータアドレスを示し、キャッシュスロット識別子「３」、「４」、「５」、「６」は経路識別子「ホストＢ」が使用しているキャッシュメモリ上のデータアドレスを示している。
【００８２】
また、論理アドレスについても同様、キャッシュスロット識別子「０」は「無効」、キャッシュスロット識別子「１」〜「６」はそれぞれ「ＡＤＲ１」〜「ＡＤＲ６」とする。論理ボリューム識別子は、キャッシュスロット識別子「０」が「無効」で、その他はすべて「ＶＯＬ０」とする。
【００８３】
図１５は論理ボリュームを対象とする入出力要求の実施例を示す図である。
【００８４】
図１５のＡ）に示す入出力１５００は、論理ボリューム識別子１５０１、経路識別子１５０２、命令１５０３、パラメタ１５０４を有する。論理ボリューム識別子１５０１は入出力対象装置を一意に識別する情報、命令１５０３は読み込み／書き込み／制御等の命令種別であり、パラメタ１５０４は命令１５０３で使用する情報であり、入出力対象となる論理アドレスや磁気ヘッド位置付け等の制御情報である。入出力対象装置の種類によっては、その他の情報も有することもある。
【００８５】
図１５のＢ）に示す入出力１５１０は経路識別子「ホストＢ」のホストが要求したもので、論理ボリューム識別子「ＶＯＬ０」上の論理アドレス「ＡＤＤＲ５」を読み込むものである。図１５のＣ）に示す入出力１５２０は、経路識別子「ホストＡ」のホストが要求したもので、論理ボリューム識別子「ＶＯＬ０」の論理アドレス「ＡＤＤＲ７」を読み込むものである。図１５のＤ）に示す入出力１５３０は、経路識別子「ホストＡ」が要求したのもで、論理ボリューム識別子「ＶＯＬ０」の論理アドレス「ＡＤＤＲ８」にデータ「ＸＹＺ」を書き込むものである。
【００８６】
図１６は、図１５のＢ）に示した入出力１５１０（読み込み、キャッシュ上にデータあり）を実行した時のキャッシュ制御処理１４３の動作フローである。まず、磁気ヘッド位置付け命令を取り出し（ステップ１６００）、パラメタで指定された位置に磁気ヘッド位置付けを実行する（ステップ１６０１）。次に、後続の命令（読み込み命令）を取り出し（ステップ１６０２）、読み込み処理を実行するが（ステップ１６０３）、本ケースではキャッシュ上にデータがあるので実際の媒体からのデータの読み込みは行わず、以降の処理でキャッシュ上からデータを読み出す。
【００８７】
まず、目的のデータを保持するキャッシュを得るために、図１０のステップ１０００で述べた、図４に示したキャッシュスロット管理情報２１１に保持されている、データとキャッシュスロット識別子との対応関係を示すデータ格納位置情報４２２を探索し（ステップ１６０４）、読み込み対象の論理アドレス「ＡＤＤＲ５」を有するキャッシュスロットを取得する。ここでは、キャッシュスロット識別子「５」のキャッシュスロットを得られたものとする。そこで、キャッシュスロット識別子「５」のキャッシュスロットの内容をホストＢへ転送する（ステップ１６０５）。最後に、ホストＢへ入出力完了を報告する（ステップ１６０６）。
【００８８】
図１７は、図１５のＣ）に示した入出力１５２０（読み込み、キャッシュ上にデータなし）を実行した時のキャッシュ制御処理１４３の動作フローである。ステップ１７００〜ステップ１７０２は図１６に示した入出力１５１０（読み込み、キャッシュ上にデータあり）の場合と同一であるが、ステップ１７０３で目的のデータがキャッシュ上に存在しないため、以降の処理を行う。
【００８９】
まず、データを退避するキャッシュを得るためにキャッシュスロット探索処理を行う（ステップ１７０４）。この処理ではいずれの経路にも属していない無効キャッシュスロットであるキャッシュスロット識別子「０」のキャッシュスロットが選択される。待ち行列Ｃよりキャッシュスロット識別子「０」のキャッシュスロットを取り出し、経路識別子「ホストＡ」が使用するキャッシュスロットの待ち行列Ａの最後尾へ挿入する（ステップ１７０４）。さらに、ボリューム識別子「ＶＯＬ０」、論理アドレス「ＡＤＤＲ７」から読み込んだデータをキャッシュスロット識別子「０」のキャッシュスロットへ転送し（ステップ１７０５）、キャッシュスロット識別子「０」のキャッシュスロットの内容をホストへ転送する（ステップ１７０６）。その後、経路識別子「ホストＡ」の使用するキャッシュスロット使用量を更新し（ステップ１７０７）、論理ボリューム識別子、論理アドレス、経路識別子をそれぞれ、「ＶＯＬ０」、「ＡＤＤＲ８」、「ホストＡ」に更新する（ステップ１７０８）。最後に、ホストＡへ入出力の完了を報告する（ステップ１７０９）。
【００９０】
図１８は、図１５のＤ）に示した入出力１５３０（書き込み）を実行したときにおけるキャッシュ制御処理１４３の動作フローである。ステップ１８００〜ステップ１８０２は図１６に示した入出力１５１０と同一である。本ケースでも読み込みと同様、待ち行列や経路識別子を更新する。更新する手順は以下のとおりである。
【００９１】
まず、データを退避するキャッシュを得るためにキャッシュスロット探索処理を行う（ステップ１８０３）。この処理ではいずれの経路にも属していない無効キャッシュスロットであるキャッシュスロット識別子「０」のキャッシュスロットが選択される。待ち行列Ｃよりキャッシュスロット識別子「０」のキャッシュスロットを取り出し、経路識別子「ホストＡ」が使用するキャッシュスロットの待ち行列Ａへ挿入し（ステップ１８０４）、経路識別子「ホストＡ」の使用するキャッシュスロット使用量を更新する（ステップ１８０５）。
【００９２】
さらに、論理ボリューム識別子、論理アドレス、経路識別子をそれぞれ、「ＶＯＬ０」、「ＡＤＤＲ８」、「ホストＡ」に更新し（ステップ１８０６）、データ「ＸＹＺ」をキャッシュスロット識別子「０」のキャッシュスロットで位置付けられるキャッシュメモリへ転送する（ステップ１８０７）。最後に、ホストＡへ入出力の完了を報告する（ステップ１８０８）。
【００９３】
以上のようにキャッシュスロットを制御することで、入出力経路ごとにキャッシュメモリの使用量を制御することが可能となる。
【００９４】
本発明における制御情報１４２への入出力の実施例を説明する。制御情報１４２への入出力では、キャッシュ制御情報１４４およびスケジュール定義情報１４５内の、優先度の変更、キャッシュスロット最低保証値の変更、経路定義エントリの追加・削除、およびスケジュール定義の変更が可能である。図１９に制御情報１４２への入出力の実施例を示す。
【００９５】
図１９のＡ）に示す優先度を変更する入出力は、命令種別１９００、経路識別子１９０１、優先度１９０２を有する。実施例では、経路識別子が「ホストＡ」である経路定義エントリ３１０の優先度を「１」に変更する入出力を示す。アプリケーションが本入出力を要求すると、制御情報更新処理１４１は経路定義情報２１０を探索し、経路識別子が「ホストＡ」である経路定義エントリが存在すれば優先度を更新する。存在しなければ入出力エラーとする。
【００９６】
図１９のＢ）に示すキャッシュスロット最低保証値を変更する入出力は、命令種別１９１０、経路識別子１９１１、キャッシュスロット最低保証値１９１２を有する。実施例では、経路識別子が「ホストＡ」である経路定義エントリのキャッシュスロット最低保証値を「２」に変更する入出力を示す。アプリケーションがこのような入出力を要求すると、制御情報更新処理１４１は経路定義情報２１０を探索し、経路識別子が「ホストＡ」である経路定義エントリが存在すれば、当該経路定義エントリ内のキャッシュスロット最低保証値を更新する。存在しなければ入出力エラーとする。
【００９７】
図１９のＣ）に示す経路定義エントリを追加する入出力は、命令種別１９２０、経路識別子１９２１、優先度１９２２、キャッシュスロット最低保証値１９２３を有する。実施例では、経路識別子が「ホストＡ」、キャッシュスロット最低保証値が「２」である経路定義エントリを追加する入出力を示す。アプリケーションがこのような入出力を要求すると、制御情報更新処理１４１は、経路定義情報２１０を探索し、経路識別子が「ホストＡ」である経路定義エントリが存在しなければ、当該経路定義エントリを追加する。存在すれば入出力エラーとする。
【００９８】
図１９のＤ）に示す経路定義エントリを削除する入出力は、命令種別１９３０、経路識別子１９３１を有する。実施例では、経路識別子が「ホストＡ」である経路定義エントリを削除する入出力を示す。アプリケーションがこのような入出力を要求すると、制御情報更新処理１４１は経路定義情報２１０を探索し、経路識別子が「ホストＡ」である経路定義エントリが存在すれば、当該経路定義エントリを削除する。存在しなければ入出力エラーとする。
【００９９】
以上により、ホストまたは制御端末上のアプリケーションより制御情報を設定することが可能となる。制御端末１９０上のアプリケーション１９４より設定を行うことで、ホストの稼動状態に依存しない運用が可能となる。
【０１００】
ここまでの制御方法では、入出力経路ごとに待ち行列を用意していたが、複数ホストで同一の優先度を設定することで、ストレージ装置に接続される多数のホストのうち、いくつかの特定のホストだけ優先的にキャッシュメモリを利用することが可能となる。
【０１０１】
図２０は経路定義情報２１０の実施例を示す図である。
【０１０２】
図２０のＡ）は、ディスク装置にはホストＡ、ホストＢ、ホストＣが接続されていることを示す。ここでは、ホストＢ、ホストＣの優先度２００１が同数となっている。このような場合、同一優先度のアクセスの衝突を回避するため、ホストＢ、ホストＣの待ち行列を共有する。待ち行列を共有してキャッシュスロットの制御を可能にするためには、待ち行列を共有するすべての経路のキャッシュスロット最低保証値２００２、図２０のＢ）に示す待ち行列エントリのキャッシュスロット使用量２００４、待ち行列ヘッダ２００５を同じ値にする。つまり、ホストＢ、ホストＣのキャッシュスロット最低保証値２００２、キャッシュスロット使用量２００３、待ち行列ヘッダ２００４を同じ値になるように制御する。  
図２１はスケジュールの動作を示す図である。
【０１０３】
スケジュールでは、出力経路毎に使用可能なキャッシュメモリ量を決められた時刻に変更する。スケジュールの動作は以下の手順である。
【０１０４】
予め、ホストや制御端末よりスケジュール定義情報１４５を設定しておく。図２２はスケジュール情報の実施例である。日付２２０１は、月日を直接指定、「平日」、「休日」、曜日、月を指定することが可能である。時刻２２０１は、変更する時刻を指定する。経路識別子２２０２、優先度２２０３、キャッシュスロット最低保証値２２０４には、変更後の値を指定する。実施例のスケジュール情報では４つのスケジュール定義エントリを登録し、ホストＡ、ホストＢが使用可能なキャッシュメモリ量を制御している。
【０１０５】
スケジュール定義に基づいて、所定の時刻に、各ホストの優先度２２０３やキャッシュスロット最低保証値２２０４が新たな値に切り替わると、その時刻以降は、新たに設定された優先度や最低保証値に基づいた格納領域の割り当て制御が行われるが、各ホストに対応した格納領域の分布は値の切り替え前の状態から次第に変化し、新たに設定された優先度や最低保証値に基づいた格納領域の分布になっていく。
【０１０６】
例えば、無効キャッシュスロットを既に使い切った場合であって、図２２に示すように、平日の８時から２０時の間では、優先度の高いホストＡが、優先度の低いホストＢよりも多くの格納領域を確保している。しかし、２２時以降では、ホストＢの方がホストＡよりも優先度が高くなるため、ホストＡが確保している格納領域は次第にホストＢの格納領域に変わっていく。その際、ホストＡが確保している格納領域の一部分のデータはキャッシュメモリからディスク装置に書き出され、その後、ホストＢの格納領域となる。一方、ホストＡの最低保証値は、２０時を境に「３」から「５」に増えるため、最低限保証されるキャッシュスロットの数は増え、ホストＢの最低保証値は「４」から「２」に減るため、最低限保証されるキャッシュスロットの数は減る。
【０１０７】
上記のスケジューリングの定義の際は、各時間帯で、各経路識別子の最低保証値の合計がキャッシュスロットの総数以下となるように制御される。また、上記のスケジューリングの定義の際は、各時間帯で、いくつかの経路識別子の優先度が同じくなった場合、これらの経路識別子に対応する待ち行列が同じになるように制御される。
【０１０８】
スケジュール実施処理１４６は、内部タイマ１３４、スケジュール定義情報１４５を監視し、スケジュール定義情報１４５に設定されている時刻になると、経路定義情報２１０の内容を更新する。上記処理により、特定の時刻にキャッシュ管理に必要な情報を変更可能にし、より柔軟にディスク装置の運用が可能となる。
【０１０９】
図１３のＡ）に示した経路定義情報や図２２に示したスケジュール定義情報を、制御端末１９０の表示装置（図示せず）に表示し、優先度、最低保証値及びスケジュール定義を、キーボードなどの入力装置（図示せず）を介してユーザ（管理者）が対話的に設定や変更することもできる。
【０１１０】
以上に述べた実施例では、それぞれのキャッシュスロットの大きさは一定としたが、ホスト１１０でのアプリケーション１１１の処理形態に応じて、それぞれのキャッシュスロットの大きさを変えることもできる。例えば、通常のランダムアクセスの他に、シーケンシャルアクセスが多用される画像処理などのように大量のデータを処理するホストに対しては、通常よりも大きな単位でキャッシュスロットを割り当てたほうが、キャッシュスロットの割り当て処理の負荷が軽減される。また、通常よりも大きな単位でキャッシュスロットを割り当てる際に、キャッシュスロットの大きさを通常の大きさの２倍、４倍などの単位にすると、キャッシュスロットの個数管理と使用量の管理が容易になる。
【０１１１】
以上に述べた本発明のディスク装置のキャッシュ制御方法を実行するためのプログラムを計算機で読み取り可能な記憶媒体に格納し、このプログラムをメモリに読み込んで実行することもできる。
【図面の簡単な説明】
【０１１２】
【図１】ディスク装置およびディスク装置に接続されているホストのシステム構成を示した図である。
【図２】キャッシュ制御情報１４４の詳細図である。
【図３】経路定義情報２１０の詳細図である。
【図４】スロット管理情報２１１の詳細図である。
【図５】待ち行列管理情報２１２の詳細図である。
【図６】スケジュール定義情報１４５の詳細図である。
【図７】論理ボリュームへの入出力の流れを示した図である。
【図８】制御情報１４２への入出力の流れを示した図である。
【図９】論理ボリューム１７１に対する入出力要求を受け付けた時におけるキャッシュ制御部１４３の動作を示した図である。
【図１０】読み込み命令実行時のキャッシュ制御情報を更新する処理動作のフローチャートである。
【図１１】スロット選択処理の動作を示すフローチャートである。
【図１２】書き込み命令実行時のキャッシュ制御情報を更新する処理動作のフローチャートである。
【図１３】経路情報と待ち行列情報の実施例を示した図である。
【図１４】スロット管理情報２１１の実施例を示した図である。
【図１５】論理ボリュームを対象とする入出力の実施例を示す図である。
【図１６】入出力１５１０（読み込み、キャッシュ上にデータあり）を実行したときにおけるキャッシュ制御処理１４３の動作フローである。
【図１７】入出力１５２０（読み込み、キャッシュ上にデータなし）を実行したときにおけるキャッシュ制御処理１４３の動作フローである。
【図１８】入出力１５３０（書き込み）を実行したときにおけるキャッシュ制御処理１４３の動作フローである。
【図１９】経路情報への入出力の実施例を示す図である。
【図２０】経路情報の実施例を示す図である。
【図２１】スケジュールの動作を示す図である。
【図２２】スケジュール情報の実施例である。
【図２３】本発明の概要を示す。
【図２４】待ち行列における、割り当てられた格納領域の構成を示す。
【符号の説明】
【０１１３】
１１０：ホスト、１１１：アプリケーション、１１２：オペレーティングシステム、１１３：ポート、１２０：ストレージ装置、１３０：ディスク制御装置、１３１：ポート、１３２：制御プログラム、１３３：キャッシュメモリ、１３４：内部タイマ、１３５：ポート、１４０：入出力受付処理、１４１：制御情報更新処理、１４２：制御情報、１４３：キャッシュ制御処理、１４４：キャッシュ制御情報、１４５：スケジュール定義情報、１４６：スケジュール実施処理、１５０：キャッシュスロット、１７０：ディスク装置、１７１：論理ボリューム、１７２：データ、１７３：定義ファイル、１９０：制御端末、１９１：記憶装置、１９２：ネットワークインタフェイス、１９３：オペレーティングシステム、１９４：管理プログラム、１９６：バス、１９７：定義ファイル、２１０：経路定義情報、２１１：キャッシュスロット管理情報、２１２：待ち行列管理情報
【図１】
2005339299.tif 000003
【図２】
2005339299.tif 000004
【図３】
2005339299.tif 000005
【図４】
2005339299.tif 000006
【図５】
2005339299.tif 000007
【図６】
2005339299.tif 000008
【図７】
2005339299.tif 000009
【図８】
2005339299.tif 000010
【図９】
2005339299.tif 000011
【図１０】
2005339299.tif 000012
【図１１】
2005339299.tif 000013
【図１２】
2005339299.tif 000014
【図１３】
2005339299.tif 000015
【図１４】
2005339299.tif 000016
【図１５】
2005339299.tif 000017
【図１６】
2005339299.tif 000018
【図１７】
2005339299.tif 000019
【図１８】
2005339299.tif 000020
【図１９】
2005339299.tif 000021
【図２０】
2005339299.tif 000022
【図２１】
2005339299.tif 000023
【図２２】
2005339299.tif 000024
【図２３】
2005339299.tif 000025
【図２４】
2005339299.tif 000026