(57)【特許請求の範囲】
【請求項１】
中央処理装置と接続される複数のホスト側プロセッサと前記中央処理装置からのデータを格納する複数の記憶装置とを有する記憶装置システムの制御方法であって、
ここで、前記複数のホスト側プロセッサが複数のローカルメモリを、一つのホスト側プロセッサが一つのローカルメモリを有する形で、有し、
また、前記複数の記憶装置は複数のグループに分けられており、更に、前記複数のグループのそれぞれが、キャッシュメモリと、当該キャッシュメモリに記憶されているデータの有無に関する管理情報を格納する共有メモリと、および、当該グループに属する記憶装置と当該グループに割り当てられた前記キャッシュメモリとの間のデータ転送を制御する少なくとも１つ以上の記憶装置側プロセッサとを有しており、
前記複数のホスト側プロセッサのそれぞれが、当該ホスト側プロセッサが有する前記ローカルメモリに、前記複数の記憶装置の各々と前記複数の記憶装置側プロセッサとの対応関係を記憶し、
前記ホスト側プロセッサが、前記中央処理装置からアクセス要求を受けると、前記アクセス要求で指定されるアクセス対象の記憶装置と対応する記憶装置側プロセッサを、前記アクセス要求を受けたホスト側プロセッサが有する前記ローカルメモリ内の前記対応関係を参照して決定し、
前記アクセス要求を受けたホスト側プロセッサが、前記決定した記憶装置側プロセッサが属する前記グループに含まれる前記キャッシュメモリと前記アクセス要求を出した前記中央処理装置との間でデータ転送を実行することを特徴とする記憶装置システムの制御方法。
【請求項２】
請求項１記載の記憶装置システムの制御方法であって、
前記アクセス要求がリード要求である場合、
前記リード要求を受けたホスト側プロセッサは、前記決定した前記記憶装置側プロセッサへ、記憶装置アドレス、データ位置、リード範囲と共にリード要求を発行し、
前記リード要求を受けた前記記憶装置側プロセッサは、前記共有メモリの管理情報をアクセスして、リード対象データがキャッシュ上に存在するか否かを判定し、
前記リード対象データがキャッシュ上に存在する場合、前記記憶装置側プロセッサは、前記リード対象データのキャッシュアドレスと有効データ長とを前記リード要求を発行した前記ホスト側プロセッサに対して通知し、
前記通知を受けた前記ホスト側プロセッサは、通知された前記キャッシュアドレスからリード対象データを読み出して、前記中央処理装置にデータ転送を行なうことを特徴とする記憶装置システムの制御方法。
【請求項３】
請求項１記載の記憶装置システムの制御方法であって、
前記アクセス要求がリード要求である場合、
前記リード要求を受けたホスト側プロセッサは、前記決定した前記記憶装置側プロセッサへ、記憶装置アドレス、データ位置、リード範囲と共にリード要求を発行し、
前記リード要求を受けた前記記憶装置側プロセッサは、前記共有メモリの管理情報をアクセスして、リード対象データがキャッシュ上に存在するか否かを判定し、
前記リード対象データがキャッシュ上に存在しない場合、前記記憶装置側プロセッサは、リードミスを前記リード要求を発行した前記ホスト側プロセッサへ通知するとともに、当該記憶装置側プロセッサが属するグループの記憶装置に対してリード要求を発行し、
前記リードミスの通知を受けた前記ホスト側プロセッサは、前記記憶装置側プロセッサおよび前記中央処理装置との接続を切り離し、記憶装置からキャッシュへデータが転送され前記リードミスを通知した記憶装置側プロセッサから再接続要求が発行されたことに応じて、前記中央処理装置と再接続処理を実行し、更に、前記再接続要求を発行した前記記憶装置側プロセッサに対して再接続完了を報告し、
前記再接続完了の報告を受けた記憶装置側プロセッサは、前記データが格納されたキャッシュアドレスおよび有効データ長を前記再接続完了を報告した前記ホスト側プロセッサに通知し、
前記キャッシュアドレスおよび有効データ長を受けた前記ホスト側プロセッサは、前記キャッシュアドレスからデータを読み出して、前記中央処理装置にデータ転送を行なうことを特徴とする記憶装置システムの制御方法。
【請求項４】
請求項１記載の記憶装置システムの制御方法であって、
前記アクセス要求がライト要求である場合、
前記ライト要求を受領した前記ホスト側プロセッサは、前記決定した前記記憶装置側プロセッサに対して、記憶装置アドレス、データ位置、ライト範囲とともにライト要求を発行し、
前記ライト要求を受領した前記記憶装置側プロセッサは、ライトデータを格納するためのキャッシュ領域を確保し、データを格納すべきキャッシュアドレスを前記ホスト側プロセッサへ通知し、
前記キャッシュアドレスを受けた前記ホスト側プロセッサは、通知された前記キャッシュアドレスに前記中央処理装置から転送されたライトデータを格納し、前記記憶装置側プロセッサに対して、前記ライトデータを格納しているキャッシュアドレスならびにデータ長を送信し、
前記キャッシュアドレスならびに前記データ長を受けた前記記憶装置側プロセッサは、前記キャッシュに格納された前記ライトデータを、当該記憶装置側プロセッサが属するグループに含まれる前記記憶装置に書き込むことを特徴とする記憶装置システムの制御方法。
【発明の詳細な説明】
技術分野
本発明は、中央処理装置と記憶装置との間のデータ転送に介在する制御装置の制御方法に関する。
背景技術
従来の制御装置は、記憶装置のデータを一時的に格納するキャッシュメモリと、キャッシュメモリと中央処理装置との間のデータ転送を実行するホスト側プロセッサと、キャッシュメモリと記憶装置との間のデータ転送を実行する記憶装置側プロセッサと、キャッシュメモリの管理情報を格納する共有メモリから構成される。そして、ホスト側プロセッサと記憶装置側プロセッサの双方が、共有メモリにアクセス可能となっている。
上記の構成では、制御装置内の各プロセッサは、キャッシュメモリ上のデータおよび管理情報を共有している。このため、各プロセッサは、キャッシュメモリを介していずれの記憶装置のデータにもアクセス可能である。また、ホスト側及び記憶装置側の各プロセッサは、独立して動作可能である。つまり、ホスト側プロセッサによるキャッシュメモリへのヒット処理と、記憶装置側プロセッサによる記憶装置へのライト処理は、並列に実行可能である。
従来のように、制御装置に一つの共有メモリ及びキャッシュメモリを搭載する構成では、各プロセッサからのアクセスが共有メモリに集中する。このため、共有メモリへのアクセス制御がボトルネックとなるという問題がある。
本発明の目的は、共有メモリおよびキャッシュメモリへのアクセスネックを解消する記憶制御装置およびその制御方法を提供することにある。
発明の開示
キャッシュメモリは記憶装置上のデータを一時的に保存しておくためのものであり、基本的には記憶装置対応に存在すれば良い。また、共有メモリに格納されたキャッシュ管理情報も同様に、記憶装置対応に存在すれば良い。以上の考えに基づいて、上記目的を達成するために本発明では、各記憶装置毎に、この記憶装置にアクセス可能な１つ以上の記憶装置側プロセッサを一つのグループとして割り当て、キャッシュメモリおよび共有メモリをそれぞれのグループに割り当て、グループ内の各記憶装置側プロセッサが、このグループに割り当てられたキャッシュ管理情報を管理する。これにより、複数のキャッシュメモリおよび複数の共有メモリを同時に動作させることが可能となり、ボトルネックを解消することができる。ただし、このグループ分けは、複数の記憶装置に対するグループ分けであっても良い。
本発明における制御装置では、ホスト側プロセッサは、中央処理装置からアクセス要求のあったデータが格納された記憶装置に基づいて、その記憶装置にアクセス可能なグループ内の記憶装置側プロセッサを特定する。また、特定された記憶装置側プロセッサは、ホスト側プロセッサからのアクセス要求に対して、このグループに割り当てられた共有メモリにアクセスして、目的とするデータがキャッシュ上に存在するかどうかを判定し、キャッシュにデータが存在すれば、データを格納しているキャッシュアドレスをホスト側プロセッサに通知する。この結果、ホスト側プロセッサは、通知されたキャッシュアドレスに対してアクセスする。
以上の処理により、各グループに割り当てられた１つの共有メモリへアクセスするのは、この共有メモリが割り当てられた１つのグループに属する記憶装置側プロセッサのみである。このため、１つの共有メモリに対するアクセス回数を削減できる。この結果、共有メモリに対するアクセスの競合を抑えることが出来る。また、システム内では複数の共有メモリおよび複数のキャッシュメモリを保持しているので、システム全体での共有メモリおよびキャッシュメモリへのアクセス性能を向上させることができる。
【図面の簡単な説明】
第１図は、本発明を適用した計算機システムの構成例を示す図である。
第２図は、記憶装置の構成を示す図である。
第３図は、キャッシュメモリの管理情報および管理方法を示す図である。
第４図は、リードヒット処理の処理概要を示す図である。
第５図は、中央処理装置からリード処理要求を受領したホスト側プロセッサの処理のフローチャートである。
第６図は、記憶装置側プロセッサから再接続要求を受領したホスト側プロセッサの処理のフローチャートである。
第７図は、リード処理における記憶装置側プロセッサの処理のフローチャートである。
第８図は、ライト処理におけるホスト側プロセッサの処理のフローチャートである。
第９図は、ライト処理における記憶装置側プロセッサの処理のフローチャートである。
発明を実施するための最良の形態
以下、図面を用いて本発明を実施するための最良の形態を説明する。
第１図に示すように、計算機システムは、中央処理装置１００、制御装置１８０、記憶装置１７０から構成される。制御装置１８０は、キャッシュメモリ１４０と中央処理装置１００間のデータ転送を制御する一つ以上のホスト側プロセッサ１１１と、記憶装置１７０とキャッシュメモリ１４０間のデータ転送を制御する一つ以上の記憶装置側プロセッサ１５２から構成されている。
また、同一の記憶装置１７０にアクセス可能な全ての記憶装置側プロセッサ１５２を同一のプロセッサグループ１９０としており、各グループ毎に、一つの共有メモリ１６０とキャッシュメモリ１４０を設ける。各グループ１９０内の記憶装置側プロセッサ１５２は、共有メモリアクセスパス１６５を介して共有メモリ１６０へアクセス可能である。各記憶装置側プロセッサ１５２は、記憶装置アクセスパス１７５を介して記憶装置１７０へアクセスする。記憶装置アクセスパス１７５は、一本のパス上に複数の記憶装置１７０が芋蔓状に接続されていているものとする。また、説明を簡単にするために、各記憶装置側プロセッサ１５２からは、一本の記憶装置アクセスパス１７５しか表記していないが、一つの記憶装置側プロセッサ１５２には、複数の記憶装置アクセスパス１７５が接続されていてもかまわない。
次に、第２図を用いて記憶装置１７０について説明する。本発明では記憶装置１７０は、回転する記憶媒体を備えた磁気記憶装置であるとする。記憶装置１７０は、複数の記憶媒体４００、記憶媒体４００毎に存在し、記憶媒体４００と記憶装置インタフェース４４０間のデータ転送を行う複数のヘッド４２０、ヘッド４２０と記憶装置外部とのデータ転送を実行する記憶装置インタフェース４４０から構成される。
ヘッド４２０は上から昇順に番号がつけられている。複数の記憶媒体４００から同時にデータをリード、ライトすることはできない。つまり、アクティブになるヘッド４２０は高々一つである。目的のデータをアクセスするために記憶媒体上をヘッド４２０を移動させることをシークと呼び、シークが完了した後に、目的データがヘッド４２０の下を通過するまで待つことをサーチと呼ぶ。ヘッド４２０が一回転する間にアクセス可能な記憶媒体４００上の領域をトラック４１０と呼ぶ。また、記憶媒体４００が一回転する間に、全ヘッド４２０下を通過する領域（トラック４１０の集まり）をシリンダ４３０と呼び、記憶媒体４００の外側から内側に向かって、昇順に番号が付けられている。シリンダ番号とヘッド番号の組みによって、トラック４１０を特定する。さらに、記憶媒体４００のデータ格納領域は５１２バイトの小領域に分かれていて、これをセクタと呼ぶ。セクタには、トラック４１０内で一意に番号が付けられていて、トラック４１０の先頭から昇順に、トラック４１０内で一意に番号が付けられている。
次に、第３図を用いてキャッシュメモリ１４０の管理方法を説明する。キャッシュメモリ１４０は、各グループ１９０毎に分割されているが、論理的には連続したアドレス空間として見えるものとする。つまり、あるキャッシュアドレスが定まれば、それはどのグループ１９０に属するどの領域かを特定できるものとする。この実現のためには、例えばキャッシュアドレス上にグループ１９０の番号を埋め込んでおき、データ転送を実行するハードウエアでそれを認識すれば良い。
キャッシュメモリ１４０は、セグメント５３０と呼ばれる例えば１６ＫＢ（システムにより固定の大きさ）の領域に分割されていて、１セグメントにつき、１個のセグメント管理テーブル５２０が共用メモリ１６０上に存在する。セグメント管理テーブル５２０は、当該セグメント５３０のキャッシュアドレス５２２、ダーティデータを示すビットマップ５２３、クリーンデータを示すビットマップ５２４、他セグメント管理テーブルへのポインタ５２１が格納されている。ここで、ダーティデータとは、キャッシュ１４０上は更新されているが、まだ記憶装置１７０に未反映のライトデータ、クリーンデータとは、キャッシュ１４０上に存在する記憶装置１７０の内容と一致したデータを表す。さらに、セグンメント５３０を例えば５１２バイト毎に区切り、この領域に１ビットを対応させたビットマップを作成しておく。そして、もし対応する領域にダーティデータあるいはクリーンデータが存在するなら、ダーティビットマップ５２３あるいはクリーンビットマップ５２４の対応するビットを１にする。以上のようにより細かくデータ領域を管理するために、ダーティビットマップ５２３およびクリーンビットマップ５２４を使用する。
記憶装置１７０上の連続した領域、あるいは近傍の領域に対応してキャッシュ領域を割り当てる場合、複数のセグメント５３０をまとめて管理したほうが都合がよい。本発明では、１トラック４１０分に対応するキャッシュ領域を、スロット管理テーブル５１０によって管理する。ここで、スロット管理テーブル５１０は、記憶装置番号５１２、トラック番号５１３、最初のセグメント管理ブロックへのポインタ５１５、ロック情報５１４を格納している。記憶装置番号５１２およびトラック番号５１３によって、どの記憶装置のどのトラック４１０のデータを格納しているのかを特定でき、さらにポインタ５１５をたどり、セグメント管理ブロック５２０を参照することによって、そのトラック４１０のどのセクタを格納しているのか、またそのセクタがダーティかどうかを特定できる。また、ロック情報５１４は、当該スロットを排他的に処理する場合に用いる。
ここで、ある記憶装置１７０のあるトラック４１０上のあるデータにアクセス要求があった場合に、どのようにキャッシュ管理が行われるか一例を示す。まず、アクセス要求として、リード・ライト種別、論理記憶装置番号、トラック番号、目的データの先頭のセクタ、長さ（セクタ数）が与えられる。まず、記憶装置番号とトラック番号を元に、目的のスロット管理ブロック５１０が存在するかどうかを調べる。この手法の一つとして、例えばハッシュがあげられる。すなわち、記憶装置番号とトラック番号をハッシュ関数に与えると、対応するハッシュテーブル５００のエントリを出力し、このエントリにスロット管理テーブル５１０のアドレスが格納されている。もしこれがヌル（アドレスなし）であれば、ミスである。ヌルでなければこのポインタをたどって、記憶装置番号５１２とトラック番号５１３が探しているものと一致しているかどうか調べる。一致してなければ、スロット管理ブロック５１０へのポインタをたどり、記憶装置番号５１２とトラック番号５１３の比較を繰り返す。このようにして、目的とするスロット管理ブロック５１０が存在するかどうかを探す。
もしスロット管理ブロック５１０が共有メモリ１６０上に存在すれば、続いてアクセス対象となっているセクタ範囲が存在するかどうかを調べる。そのためには、まず目的のデータの先頭セクタ番号とセクタ数から、先頭セグメント番号と先頭のビット位置、および最終セグメントと最終のビット位置を計算する。例えば、６０番のセクタを先頭に、１２個のセクタを読み出す場合では、第２セグメントのビット２９から、第３セグメントのビット９が算出される。これを元にして、このビット範囲のデータが存在するかどうかを、クリーンビットマップ５２４あるいはダーティビットマップ５２３を調べて判定する。もし目的の範囲全てに渡ってデータが存在すればヒット、もし一部分でも存在しなければミスということになる。ヒットの場合には、そのままアクセスを続行すれば良い。ミスの場合は、スロット管理テーブル５１０が存在しない場合と、スロット管理テーブル５１０は存在するが、セグメント管理テーブル５２０の一部あるいは全部が存在しない場合、セグメント管理テーブル５２０も全て存在するが、データがキャッシュ１４０上に存在しない場合がある。データがキャッシュ１４０上に存在しない場合には、データを記憶装置１７０からキャッシュ１４０へ読み込んでくれば良い。セグメント管理テーブル５２０が存在しない場合には、新しいセグメント管理テーブル５２０を必要数割り当て、スロット管理テーブル５１０に接続する。この際、ダーティビットマップ５２３とクリーンビットマップ５２４は初期化しておく。スロット管理テーブル５１０が存在しない場合には、スロット管理テーブル５１０一つと、セグメント管理テーブル５２０を必要数分割り当て、対応するハッシュテーブル５００のエントリにスロット管理テーブル５１０のアドレスを格納する。この際、論理記憶装置番号５１２とトラック番号５１３を更新しておく。
目的のスロットがヒットであると判明した時点、あるいはミスであることが判明し、スロット管理テーブル５１０を新規に割り当てた時点で、スロットロックを確保する。もし、すでにスロットロック済みであった場合、当該スロットのロックが解放されるまで待つことになる。キャッシュ操作が完了し、もはや当該スロットが不要となると、スロットロックを解放する。この場合にも、ヒットミス判定時と同様に、論理記憶装置番号、トラック番号から目的のスロットをサーチする。あるいはヒットミス判定時に当該スロットのアドレスを記憶しておき、解放時はそのアドレスからスロット管理テーブル５１０を求める方法でもよい。目的とするスロット管理テーブル５１０を求めると、スロットロックを解除して、スロット解放処理が完了する。
以下、中央処理装置１００からのアクセス要求に対する処理方法について説明する。中央処理装置１００と制御装置１８０間のデータアクセスプロトコルは、汎用機で使用されるＣＫＤプロトコル、ワークステーション等で使用されるＳＣＳＩプロトコルなどがあるが、本実施例ではＣＫＤプロトコルを前提として説明する。
ＣＫＤプロトコルで使用されるコマンドのうち、本発明に関連するものは、アクセス有効範囲やキャッシュアクセスモードなどを示すＤＸ（Define Extent）コマンド、アクセス位置やアクセスするレコード数を示すＬＯＣ（Locate）コマンド、リードを行うＲＤＤ（Read Data）コマンド、ライトを行うＷＲＤ（Write Data）コマンドなどがある。あるレコードをアクセスする場合には、ＤＸ，ＬＯＣ，ＲＤＤなど、複数のコマンドが連続して実行される。これをコマンドチェインと呼ぶ。また、ＤＸ，ＬＯＣ，ＲＤＤ...とコマンド発行することにより、複数の連続したレコードをアクセスすることもできる。ＤＸコマンドでは、レコードを逐次的に読み出すかどうかを指定するモードがある。ＬＯＣコマンドによって転送される位置づけ情報は、シリンダ番号、ヘッド番号、セクタ番号、レコード番号が指定される。また、記憶装置番号は中央処理装置がコマンドを発行するために、制御装置との接続を確立する際に指定される。
まず、第４図を用いて処理全体の概要を説明する。
第４図は、リードヒット処理の概略図を示す。ホスト側プロセッサ１１１が、中央処理装置１００からのリード要求を受領すると、リード対象となった記憶装置１７０にアクセス可能な記憶装置側プロセッサ１５２を以下の方法で選択し、リードメッセージを送信する。
各プロセッサは、そのローカルメモリ上に記憶装置アクセス表６００を保持している。各エントリは、各該記憶装置１７０にアクセス可能な記憶装置側プロセッサ番号と状態の組から構成され、この例では各記憶装置１７０に高々２つの記憶装置側プロセッサ１５２がアクセス可能な構成となっている。状態は正常あるいは閉塞のいずれかであり、閉塞状態の時は、当該プロセッサ１５２から記憶装置１７０へのアクセスはできない。この表は、システム構築時に共有メモリ１６０に作成されて、各プロセッサはそのコピーをローカルメモリ上に保持する。障害により記憶装置側プロセッサ１５２と記憶装置間アクセスパス１７５が閉塞した場合や、保守により一時的にアクセス不能にする場合は、本記憶装置アクセス表６００の対応するエントリの状態を閉塞とする。
ホスト側プロセッサ１１１は、記憶装置アクセス表６００の、アクセス対象である記憶装置番号に対応するエントリを見て、当該記憶装置１７０にアクセス可能な記憶装置側プロセッサ１５２を求め、任意の記憶装置側プロセッサに対して、処理要求のメッセージを発行する。メッセージは、アクセス種別、記憶装置番号、シリンダ番号、ヘッド番号、セクタ番号、セクタ数から成る。ここで、アクセス種別からセクタ番号までは中央処理装置から指定される。セクタ数は、LOCコマンドで指定されたレコード数とレコード長から算出する。例えば、１セクタ５１２バイトで、４キロバイトのレコードを３個読み出す場合には、４０９６×３÷５１２＝２４セクタとなる。
ホスト側プロセッサ１１１からのリード要求に対して、記憶装置側プロセッサ１５２は共有メモリをアクセスしてヒットミス判定を実行し、当該データを格納しているキャッシュ領域のアドレス、およびキャッシュ１４０上の有効データ長をホスト側プロセッサ１１１へ返す。これを受けて、ホスト側プロセッサ１１１は当該アドレスからデータを読み出して、中央処理装置１００へデータ転送を行う。以上の処理が完了すると、中央処理装置１００へ正常終了を報告するとともに、記憶装置側プロセッサ１５２へアクセス完了を報告し、処理を終了する。これを受けて記憶装置側プロセッサ１５２は、確保していたキャッシュ領域を解放する。
以上、中央処理装置１００からのリード要求に対する処理方式の概要を説明した。以下、リードおよびライト処理の詳細を処理フロー図を用いて説明する。
まず、リード処理方式について、第５図から第７図を用いて説明する。
第５図はホスト側プロセッサ１１１の処理を示す。ステップ７００で中央処理装置１００からリード処理要求を受領すると、ステップ７２０において、上述した方法で、記憶装置側プロセッサ１５２を選択し、リード処理要求を発行する。ステップ７３０で、記憶装置側プロセッサ１５２からの応答を待つ。
第７図のステップ９００において、記憶装置側プロセッサ１５２がホスト側プロセッサ１１１からの処理要求を受領すると、ステップ９１０でヒットミス判定を行う。その結果、ヒットであることがわかると、ステップ９２０でメッセージを発行したホスト側プロセッサ１１１に対して、以下の報告する。
（１）ヒットミス判定結果：ヒット。
（２）セグメントアドレスリスト：データを格納しているセグメントアドレスのリスト。
（３）セグメント内オフセット：データを格納している先頭セクタの先頭セグメント内オフセット。
ここで、セグメントアドレスはセグメント管理テーブル５２０に格納されている。また、セグメント内オフセットは、セグメント管理テーブル５２０のダーティビットマップ５２３あるいはクリーンビットマップ５２４における、目的データを格納した先頭セクタに対応するビット位置を返す。
ホスト側プロセッサ１１１がヒットであることを認識すると、前記セグメントアドレスリストおよびセグメント内オフセットから、目的のデータを格納したキャッシュアドレスがわかるので、ステップ７４０で中央処理装置１００に対してデータを転送する。その後、ステップ７５０で記憶装置側プロセッサ１５２に対して、アクセス完了を報告し、処理を完了する。この時送信されるメッセージは、記憶装置番号、シリンダ番号、ヘッド番号、ダーティ有無情報、先頭ダーティセグメント、セグメント内オフセット、ダーティセクタ数から構成される。ここで、ダーティ有無情報はダーティなしが格納され、先頭ダーティセグメント、セグメント内オフセット、ダーティセクタ数は無効値が格納されている。第７図のステップ９３０で、記憶装置側プロセッサ１５２が、ホスト側プロセッサ１１１から、アクセス完了報告を受領すると、現在確保中のスロットのロックを解放して、処理を終了する。
もし、キャッシュミスしていた場合には、記憶装置側プロセッサ１５２は、第７図のステップ９１０のヒットミス判定処理において、新規にスロット管理テーブル５１０ならびにセグメント管理テーブル５２０を割り当る。続いてステップ９５０でホスト側プロセッサ１１１に対してヒットミス判定結果（ミス）を報告した後、ステップ９６０で、データを格納した記憶装置１７０に対してリード要求を発行し、リード完了まで待つ。
ホスト側プロセッサ１１１は、第５図のステップ７３５において、リードミスであることを認識すると、いったん処理を中断し、中央処理装置１００との接続を切り離す（ステップ７７０）。
記憶装置１７０からキャッシュメモリ１４０へのデータ転送が完了すると、記憶装置側プロセッサ１５２は、第７図のステップ９７０において、当該記憶装置１７０からの読み出しを待っているホスト側プロセッサ１５２に対して、再接続要求を発行する。
第６図のステップ８００において、ホスト側プロセッサ１１１が記憶装置側プロセッサ１５２からの再接続要求を検出すると、ステップ８１０において、ホスト側プロセッサ１１１と中央処理装置１００間で再接続処理を実行する。これを完了すると、ステップ８３０で、記憶装置側プロセッサ１５２に対して再接続完了を報告する。
これを受けて、記憶装置側プロセッサ１５２は、第７図のステップ９９０で、要求データを格納したセグメントアドレスリスト、セグメント内オフセットを送信する。以降の処理はリードヒットの処理と同様なので省略する。
もしヒットミス判定の結果がライトミスだった場合は、ホスト側プロセッサ１１１からの要求が、ミス時リード要か不要かによって、対応が異なる。もし、ミス時リード要であった場合には、前記リードミス時と同様に、記憶装置１７０からキャッシュ１４０へデータを格納する。ホスト側プロセッサ１１１ではこの間、中央処理装置１００との接続を切り離しており、再開処理にてライト処理を実行する。ここでのライト処理はヒット時のライト処理と同様である。ミス時リード不要であれば、記憶装置側プロセッサ１５２およびホスト側プロセッサ１１１共、ライトヒット処理と同様の処理を行う。
次に、ライト処理方法について、第８図、第９図を用いて説明する。
第８図のステップ１０００において、ホスト側プロセッサ１１１が中央処理装置１００からライト処理要求を受領すると、ステップ１０２０で、第４図で説明した方法で記憶装置側プロセッサ１５２を選択して、ライト処理要求を発行し、ステップ１０３０で記憶装置側プロセッサ１５２からの応答を待つ。
記憶装置側プロセッサ１５２では、第９図のステップ１１１０でヒットミス判定を実行する。ここで、もしミスであれば、ヒットミス判定処理で、スロット管理テーブル５１０およびセグメント管理テーブル５２０を必要分割り当てる。続いてステップ１１２０で、セグメントアドレスリスト、セグメント内オフセットをホスト側プロセッサへ転送した後、ステップ１１３０でホスト側プロセッサ１１１からのスロット解放要求を待つ。
ホスト側プロセッサ１１１では、第８図のステップ１０４０で、記憶装置側プロセッサ１５２から、ヒットミス判定結果、およびキャッシュアドレスを受け取ると、当該キャッシュ領域に、中央処理装置１００から転送されたデータを格納する。データ転送が完了すると、ステップ１０５０において、ホスト側プロセッサ１１１は記憶装置側プロセッサ１５２に対して、アクセス完了を送信する。この時送信されるメッセージは、記憶装置番号、シリンダ番号、ヘッド番号、ダーティ有無情報、先頭ダーティセグメント、セグメント内オフセット、ダーティセクタ長から構成される。ここで、ダーティ有無情報はダーティありが格納され、先頭ダーティセグメントおよびセグメント内オフセットには、先頭のダーティセクタを保持したセグメントアドレスおよびそのセグメント内のセクタオフセット、ダーティセグメント数には中央処理装置１００からライトされたセグメントの個数が格納される。
アクセス完了報告を受領した記憶装置側プロセッサ１５２は、第９図のステップ１１４０で、前述の方法で目的とするスロット管理テーブル５１０を取得すると、先頭ダーティセグメントに対応するセグメント管理テーブル５２０のダーティビットマップ５２３の、セグメント内オフセットに対応するビットから、ダーティセグメント数分のビットを１にする（ステップ１１４０）。この際、ダーティセクタ数によっては複数セグメントにわたってダーティビットマップ５２３を１にする場合もありうる。この場合には次セグメントポインタをたどって、ダーティビットマップを順次１にしていく。この処理を完了すると、当該スロットロックを解除し、ホスト側プロセッサ１１１に完了報告を行った後、記憶装置１７０に対してライト要求を発行し、データを書き込む。
産業上の利用可能性
以上のように、本発明にかかる記憶制御装置およびその制御方法は、複数の記憶装置側プロセッサと共有メモリとキャッシュメモリによりグループを構成し、グループ内だけで共有メモリへのアクセスを許可することによって、制御を簡単化して共有メモリアクセスネックを低減し、かつ共有メモリおよびキャッシュメモリを各グループ毎に分散して持つことによって、記憶制御装置全体のスループットを向上することができる記憶制御装置およびその制御方法を構築するのに適している。
【図１】
0003918077.tif 000002
【図２】
0003918077.tif 000003
【図３】
0003918077.tif 000004
【図４】
0003918077.tif 000005
【図５】
0003918077.tif 000006
【図６】
0003918077.tif 000007
【図７】
0003918077.tif 000008
【図８】
0003918077.tif 000009
【図９】
0003918077.tif 000010