(57)【特許請求の範囲】
【請求項１】
複数のキャッシュメモリと、ホストコンピュータとのインタフェースを持つホストインタフェース部と、磁気ディスク装置とのインタフェースを持つディスクインタフェース部と、前記キャッシュメモリと、前記ホストインタフェース部又はディスクインタフェース部と前記複数のキャッシュメモリとの間を接続するためのパスを選択的に切り替えてパスを形成する接続部とを有するディスク制御装置において、
前記ホストインタフェース部又はディスクインタフェース部は、該パス上に、データをモニタしてその正当性をチェックするチェック手段を有し、
前記接続部は、前記ホストインタフェース部またはディスクインタフェース部から転送されるコマンドを解析するコマンド解析部と、該コマンド解析部におけるコマンドの解析結果に従って、前記ホストインタフェース部又はディスクインタフェース部と、前記複数のキャッシュメモリとの間を接続するためのパスを切り替えるセレクタと、を有し、
該コマンド解析部におけるコマンドの解析の結果、該コマンドがキャッシュ間コピーの場合、一方のキャッシュメモリからデータを読み出し、他方のキャッシュメモリへ該データを書き込むように、かつ前記ホストインタフェース部またはディスクインタフェース部が該データを受信するように該セレクタによってパスを切り替えて接続し、
一方の該キャッシュメモリから読み出されたデータを、該セレクタを介して他方の該キャッシュメモリへ転送すると共に、該コマンドを発行した前記ホストインタフェース部又はディスクインタフェース部の該チェック手段によって該データの正当性をチェックすることを特徴とするディスク制御装置。
【請求項２】
前記接続部は、該パス上に、該セレクタと前記複数のキャッシュメモリとの間にデータをモニタしてチェックするエラーチェック回路を有し、該キャッシュメモリから読み出されたデータのエラーチェックを行うことを特徴とする請求項１に記載のディスク制御装置
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はディスク制御装置に関し、特に複数のディスクキャッシュ部を有する装置におけるキャッシュ間のデータ転送方式に関する。
【０００２】
【従来の技術】
記憶装置の信頼性の向上のため、データを二重化し管理する手段が一般的である。ディスクインターフェースとホストインターフェースによりリード及びライトされるデータを一時的に格納するキャッシュメモリ部において、メモリ領域の全部または１部を２重化し、キャッシュメモリ部のデータの書き込み時に２重化した２つの領域に同じデータを書き込むことによりデータの信頼性を上げることが行われている。これが２重書き動作と呼ばれる。この様な複数のキャッシュメモリ部を持つディスク制御装置は障害時にキャッシュを復旧させる場合、ホストまたはディスクインタフェース部が介在して一方のキャッシュメモリからデータを読み出し他方のキャッシュメモリにデータを書き込みしなければならない。即ち、２重キャッシュの片側障害時の復旧時はデータのリード、ライトと転送のプロトコルを２段踏まなくてはならない。なお、このとき、データはインタフェース部を通るためデータそれ自体の正当性のチェックも同時に行なわれていた。
【０００３】
最近記憶装置のデータ容量増加に伴いディスクキャッシュメモリの容量の増大化の傾向がある。容量が大きければ、キャッシュ障害時の復旧時間もそれに伴い増大し、システムの性能に対して与える影響も大きくなる。まして、無停止保守の装置では、復旧時の負荷はできるだけ少なく止めたい。
【０００４】
２重書きについては以下のものがあるがいずれも本発明での観点は示していない。特開平８−３２０８４２号公報、これには、転送するデータにそのデータが任意のチャネル制御部で処理すべきデータであることを示す情報を付加し、主記憶装置から読み出したデータを任意のチャネル制御部に同時に転送することが記載されている。また、特開平９−１８５５５６号公報、これには、２つのメモリ部に対し書き込みは両方に対して行ない、読み込みはいずれか一方から行うことで常に同じデータを保留する２重化メモリシステムであって、プライマリメモリが単一データである場合、自分自身のデータ構造で修復をし、シャドウメモリに別のデータを保持することが可能なメモリ管理方式が記載されている。
【０００５】
【発明が解決しようとする課題】
キャッシュメモリにおいての２重書きによるデータの保証では、万が一２重化したキャッシュメモリ部のどちらかのデータが壊れた場合、あるいはメモリ部が故障した場合、保守により故障したメモリ部の復旧を行なった後、データの再度の書き込みを行なうことになる。ここでは正常なメモリ部からデータを読み出し、復旧したメモリ部へ書き込むといった動作が要求される。
【０００６】
もし、ディスクインタフェースやホストインタフェースを通さずキャッシュ間によりデータを転送する機能を持てば、前述したプロトコルは１つで済み転送時間の短縮が可能となる。しかしながら、この場合は新たな問題が生じる。
【０００７】
この動作を行う場合、データ自体はデータ転送元であるキャッシュメモリ部からコピー先であるキャッシュメモリ部に転送され、この過程でエラーチェック回路の配置によりデータビットの反転などのエラーチェックは行なわれる。しかし、書き込まれたデータの信頼性を確認するには、キャッシュ間のエラーチェック情報（ＥＣＣなど）のみでは十分ではない。例えば、ドライブに関する論理ラベル情報のチェックなど本当に書き込まれるべきデータが書き込まれたかというデータそれ自体の正当性のチェックはなされ得ない。このように２段階のプロトコルを踏んでいたときのチェックがなされなくなるという問題が生じる。このため、もう一度コピー先のキャッシュからデータを読み出してホストインタフェースあるいはドライブインタフェースのエラーチェック部を介して(どちらでも良い)確認しなければならない。
【０００８】
本発明は、複数のキャッシュメモリと、ホストコンピュータとのインタフェースを持つホストインタフェース部と、磁気ディスク装置とのインタフェースを持つディスクインタフェース部と、キャッシュメモリと、ホストインタフェース部又はディスクインタフェース部と複数のキャッシュメモリとの間を接続するためのパスを選択的に切り替えてパスを形成する接続部とを有するディスク制御装置において、
ホストインタフェース部又はディスクインタフェース部は、パス上に、データをモニタしてその正当性をチェックするチェック手段を有し、
接続部は、ホストインタフェース部またはディスクインタフェース部から転送されるコマンドを解析するコマンド解析部と、コマンド解析部におけるコマンドの解析結果に従って、ホストインタフェース部又はディスクインタフェース部と、複数のキャッシュメモリとの間を接続するためのパスを切り替えるセレクタと、を有し、
コマンド解析部におけるコマンドの解析の結果、コマンドがキャッシュ間コピーの場合、一方のキャッシュメモリからデータを読み出し、他方のキャッシュメモリへデータを書き込むように、かつホストインタフェース部またはディスクインタフェース部がデータを受信するようにセレクタによってパスを切り替えて接続し、一方のキャッシュメモリから読み出されたデータを、セレクタを介して他方のキャッシュメモリへ転送すると共に、コマンドを発行したホストインタフェース部又はディスクインタフェース部のチェック手段によってデータの正当性をチェックするようにしたものである。
また、本発明は好ましくは、接続部は、パス上に、セレクタと複数のキャッシュメモリとの間にデータをモニタしてチェックするエラーチェック回路を有し、キャッシュメモリから読み出されたデータのエラーチェックを行うようにしたものである。
【０００９】
【発明の実施の形態】
以下、本発明の実施例を図面を用いて説明する。
図１に本発明の実施例の構成であり、発明が適用される基本的な装置構成を示す。ディスク制御装置１は、ホストコンピュータ５０との２つのインターフェース部（ホストＩＦ部）１１と、磁気ディスク装置２０との２つのインターフェース部(ディスクＩＦ部）１２と、２つのセレクタ部１３と、２つのキャッシュメモリ部１４とアクセスパス０：１３５とアクセスパス１：１３６とを有する。
【００１０】
ここで、ホストＩＦ部、ディスクＩＦは２つずつあるが、一般化するため２つずつとしたものであり、１つずつでも良い。また、ホストＩＦ部、ディスクＩＦとキャッシュメモリ部とはセレクタで接続パスが作られているが、ここをバス方式の相互接続方式としても良い。セレクタまたはバスでのホストまたはディスクＩＦとキャッシュメモリ部との相互接続部を接続部と呼ぶ。
【００１１】
ホストＩＦ部１１は、ホストコンピュータ５０との２つのホストＩＦ１０２とホストコンピュータ５０に対する入出力を制御する２つのマイクロプロセッサ１０１と、キャッシュメモリ（ＣＭ）部１４へのアクセスを制御するアクセス制御部（ＣＭアクセス制御部）１０４とを有し、マイクロプロセッサ１０１の制御によりホストコンピュータ５０とキャッシュメモリ部１４のデータ転送を実行する。マイクロプロセッサ１０１及びホストＩＦ１０２は内部バス１０６によって接続され、ＣＭアクセス制御部１０４は２つのホストＩＦに接続されている。
【００１２】
ディスクＩＦ部１２は、磁気ディスク装置２０との２つのＩＦ（ドライブＩＦ)１０３と、磁気ディスク装置２０に対する入出力を制御する２つのマイクロプロセッサ１０１と、キャッシュメモリ部１４への１つのアクセス制御部（ＣＭアクセス制御部）１０４とを有し、マイクロプロセッサ１０１の制御により磁気ディスク装置２０とキャッシュメモリ部１４間のデータ転送を実行する。 マイクロプロセッサ１０１及びドライブＩＦ１０３は内部バス１０６によって接続され、ＣＭアクセス制御部１０４は、２つのドライブＩＦ１０３に接続されている。ディスクＩＦ部はＲＡＩＤ制御等の演算機能の実行も行なう。
【００１３】
キャッシュメモリ部１４は、ＣＭコントローラ１０７とメモリモジュール１０９を有し、磁気ディスク装置２０へ記録するデータを一時的に格納する。ＣＭアクセス制御部１０４には、２本のアクセスパス０：１３５を接続し、それらを２つの異なるセレクタ部１３にそれぞれ接続する。セレクタ部１３には、２本のアクセスパス１：１３６を接続し、それらを２つの異なるＣＭコントローラ１０７にそれぞれ接続する。したがって、ＣＭコントローラ１０７には、２つのセレクタ部から１本ずつ、計２本のアクセスパス１：１３６が接続される。 １つのＣＭアクセス制御部１０４から１つのＣＭコントローラ１０７へのアクセス経路は２つとなり、１つのアクセスパスまたはセレクタ部１３に障害が発生した場合でも、もう一つのアクセスルートによりキャッシュメモリ部１４へのアクセスは可能となるため、耐障害性を向上させることができる。
【００１４】
セレクタ部１３には、２つのホストＩＦ部１１と、２つのディスクＩＦ部１２から、それぞれ１本ずつ、計４本のアクセスパス０：１３５を接続する。またセレクタ部１３には、２つのキ ャッシュメモリ部１４へのアクセスパス１：１３６が１本ずつ、計２本接続される。
【００１５】
この時アクセスパス０：１３５とアクセスパス１：１３６の間に上記の様なパス数の関係がある為、セレクタ部１３では、ホストＩＦ部１１及びディスクＩＦ部１２からの４本のアクセスパス０：１３５からの要求のうち、キャッシュメモリ部１４へのアクセスパス１：１３６の数に相当する２つだけを選択して実行する機能を持つ。
【００１６】
本実施例では耐故障性の向上という観点からセレクタ部１３、キャッシュメモリ部１４は、それぞれ二重化されている。
【００１７】
図２は、ＣＭアクセス制御部１０４内の構成を示している。これは発明に関係する周辺構成をより詳細に説明するものである。ＣＭアクセス制御部１０４は、セレクタ３０２と、アドレス、コマンド、データを一時格納するパケットバッファ３０３と、セレクタ部１３に接続するアクセスパス０：１３５とのパスＩＦ３０１と、データのエラーチェック部３００’(図３、図４のエラーチェック回路とは違い単なるエラーのチェックだけでなく、データそのものの正当性などをチェックする)と、データ転送制御部３１０を有する。セレクタ３０２の２つのポートはデータ線２１０でホストＩＦ１０２あるいはドライブＩＦ１０３に接続される。また、セレクタ３０２の他の２つのポートはパスＩＦ３０１に接続され、パスＩＦ３０１はアクセスパス０：１３５でセレクタ部１３に接続される。データ転送部３１０は、制御線２：２１２でセレクタ部１３内の図３で示すデータ転送制御部３１５に接続される。データ転送制御部３１０は、アービタ３０８によりホストＩＦ１０２あるいはドライブＩＦ１０３からのアクセス要求のアービトレーションを行なう。ここでは２つのゲートのうち例えば先着順のようなアルゴリズムで一方を選ぶ、またはどちらのキャッシュが選択されているかを検出するなどしてそれに通信権を与える。データは矢印で示すように双方向性である。セレクタ３０２はアービタ３０８により通信権が与えられたデータ線に通信パスが形成されるようにゲートの一方を選んで通信路を切り替える動作を行なう。
【００１８】
図３は、後述する本発明の動作を実現するセレクタ部１３内の構成を示している。特徴とするところはセレクタに入るデータ線が枝分かれしていることである。即ち、キャッシュメモリ側から転送されてきたデータが他方のキャッシュメモリへ転送されるパスとインタフェースへ転送されるパスとが同時に存在しうることである。セレクタ部１３は、ホストＩＦ部１１ならびにディスクＩＦ部１２につながるアクセスパス０：１３５との計４つのパスＩＦ３０１と、ＣＭコントローラ１０７につながるアクセスパス１：１３６との２つのパスＩＦ３０１と、両者間を互いに接続するセレクタ３０６と、パケットバッファ３０３と、データのエラーチェック部３００とＣＭアクセス制御部１０４から送出されたアドレス及びコマンドを解析するアドレス/コマンド解析部３０５と、データ転送制御部３１５を有する。
【００１９】
データ転送制御部３１５は、制御線２：２１２でＣＭアクセス制御部１０４内のデータ転送部３１０に接続され、制御線３：２１３でＣＭコントローラ１０７内のデータ転送制御部３１５に接続される。またデータ転送制御部３１５は、ア−ビタ３０８によりアドレス/コマンド解析部３０５で解析した４本のアクセスパス０：１３５からのアクセス要求のアービトレーションを行い、セレクタ３０６の切り替えを行う。データ転送制御部３１５はセレクタ３０６と相俟って本発明の動作を実現するものであり、詳細を後述する。
【００２０】
パケットバッファ３０３は、アクセスパス０：１３５側のパスとアクセスパス１：１３６側のパスでデータ転送速度に差がある場合、速度差を吸収するために、転送するデータの一部または全部をバッファリングする。アドレス/コマンド解析部３０５は、アドレス及びコマンドを格納するバッファと、アドレス抽出部と、コマンド抽出部を有する。（図示はしていない）。アドレス/コマンド解析部３０５ではＣＭアクセス制御部１０４に接続される４本のアクセスパス０：１３５それぞれに１つずつ割り当てられたバッファに、アドレス、コマンドを格納する。アドレス抽出部及びコマンド抽出部では、アクセスするＣＭコントローラの種類を割り出し、データ転送制御部３１５内のアービタ３０８へ送出する。
【００２１】
図のセレクタ３０６はデータ転送制御部３１５の制御によりリード、ライト、キャッシュ間転送などを行なう。セレクタ３０６はバス構造にも置き換えられる。このとき、一方のキャッシュからバス上に載せられたデータは他方のキャッシュに転送されると共にインタフェース部にも転送されることを許す構成となっていることが必要である。
【００２２】
図４は、キャッシュメモリ部１４内の構成を示している。これは本発明の周辺部を示すものとしてキャッシュメモリ側の構成の詳細を示したものである。キャッシュメモリ部１４は、ＣＭコントローラ１０７とメモリモジュール１０９を有する。ＣＭコントローラ１０７は、セレクタ部１３につながるアクセスパス１；１３６との図３に示す２つのパスＩＦ３０１と、セレクタ３０４とデータを一時格納するパケットバッファ３０３と、データのエラーチェック部３００と、メモリモジュール１０９へのアクセスを制御するメモリ制御部３０７とＣＭアクセス制御部１０４から送出されたアドレス及びコマンドを解析するアドレス/コマンド解析部３０５とデータ転送部３１０を有する。データ転送制御部３１０は、アービタ３０８により、アドレス/コマンド解析部３０５で解析した２本のアクセスパス１：１３６からのアクセス要求のアービトレーションを行い、セレクタ３０４の切り替えを行う。
【００２３】
アドレス/コマンド解析部３０５は、バッファとアドレス抽出部とコマンド抽出部を有する。（図示はしていない。）アドレス/コマンド解析部３０５では、ＣＭコントローラ１０７に接続される２本のアクセスパス１：１２６それぞれに１つずつ割り当てられたバッファに、アドレス、コマンドを格納する。アドレス抽出部及びコマンド抽出部ではアクセスするメモリのアドレスとアクセスの種類を割り出し、メモリ制御部３０７へ送出する。また、２本のアクセスパス１：１３６からのアクセス要求をデータ転送制御部３１０内のアービタ３０８へ送出する。
【００２４】
次に、本発明に関係するキャッシュメモリ部１４へのアクセス手順について記述する。
【００２５】
（キャッシュライト動作）
キャッシュメモリ部１４へのアクセスする場合、マイクロプロセッサ１０１はホストＩＦ１０２あるいはドライブＩＦ１０３へ、キャッシュメモリ部１４へのアクセス開始を指示する。マイクロ処理装置１０１はプログラムの実行をするものであり、アクセスの要求を出し、以下の動作を起動する。アクセス開始の指示を受けた図１のホストＩＦ１０２あるいはドライブＩＦ１０３は、制御線１：２１１によりＣＭアクセス制御部１０４内の図２のデータ転送制御部３１０へアクセス開始を示す信号を送出し、それとともにデータ線２１０を通してアドレス、コマンド、データを送出する。ＣＭアクセス制御部１０４は、データ線２１０を通して送られてきたアドレス、コマンド、データをパケットバッファ３０３に格納する。データ転送制御部３１０はアービトレーションを行って１つのデータについてパスＩＦ３０１の使用権を決定し、図２のセレクタ３０２を切り替える。
【００２６】
図５は、キャッシュメモリ部１４へデータを書き込む場合の、ＣＭアクセス制御部１０４からＣＭコントローラ１０７へのアクセスの流れを示す。ＣＭアクセス制御部１０４内のデータ転送部３１０は、アービトレーションによってアクセスパス０：１３５の使用権が決定されると、制御線２：２１２によって図３のセレクタ部１３内のデータ転送制御部３１５へアクセス開始を示す信号(ＲＥＱ)を出す（ステップ５０１）。続いてアドレス及びコマンドを送出する（ステップ５０２)。
【００２７】
セレクタ部１３内のデータ転送制御部３１５は、ＣＭアクセス制御部１０４からＲＥＱ信号を受け取り、次にアクセスパス０：１３５を通して送られてくるアドレス及びコマンドを受信し、アドレス/コマンド解析部３０５で解析(デコード)したアクセス要求に基づいてアービトレーションを行う（ステップ５０３）。アービトレーションの結果、アクセスパス１：１３６への接続権を得たら、データ転送制御部３１５はセレクタ３０６を切り替える(ステップ５０４)。そして制御線２：２１２によりＣＭアクセス制御部１０４内のデータ転送制御部３１０へ、アクセスパス１：１３６への接続が得られたことを示す信号(ＡＣＫ)を返す(ステップ５０５）。
【００２８】
次にデータ転送制御部３１５は、図３図４の制御線３：２１３によってＣＭコントローラ１０７内のデータ転送制御部３１０へのアクセス開始を示す信号(ＲＥＱ)を出す（ステップ５０６)。続いてアドレスおよびコマンドを送出する（ステップ５０７)。ＣＭアクセス制御部１０４はＡＣＫ信号を受け取ると、パケットバッファ３０３からデータを読み出しセレクタ３０２、パスＩＦ３０１を介してアクセスパス０：１３５へ送出する。セレクタ部１３は、アクセスパス０：１３５を通して送られてきたデータを、パスＩＦ３０１及びセレクタ３０６を介してアクセスパス１：１３６へ送出する（ステップ５０９）。
【００２９】
ＣＭコントローラ１０７内のデータ転送制御部３１０は、制御線３：２１３によってＲＥＱ信号を受け取ると、次にアクセスパス１：１３６を通して送られてきたアドレス及びコマンドを受信し、アドレス/コマンド解析部３０５で解析したアクセス要求に基づいてアービトレーションを行い(ステップ５０８)、セレクタ３０４を切り替える。アクセスパス１：１３６を通して送られてくるデータは図４のパケットバッファ３０３に格納する。アービトレーションの結果、メモリモジュール１９へのアクセス権を得たら、メモリの制御情報をメモリ制御部３０７へ送出し、メモリアクセスのための前処理を行う（ステップ５１０)。次にパケットバッファ３０３からデータを読み出し、セレクタ３０４を介してメモリモジュール１０９へ書き込む(ステップ５１１）。
【００３０】
メモリモジュール１０９へのアクセスが終了すると、メモリアクセスの後処理を行い、データ転送制御部３１０においてアクセス結果（アクセス状況）を示すステータス情報(ＳＴＡＴＵＳ)(正常終了か、エラーか等)を生成する（ステップ５１２)。次にステータス情報をセレクタ部１３を介してＣＭアクセス部１０４へ送出する（ステップ５１３)。セレクタ部１３内のデータ転送制御部３１５はステータス情報(ＳＴＡＴＵＳ)を受け取ると、ＣＭコントローラ１０７へのＲＥＱ信号をオフする（ステップ５１４)。ＣＭアクセス制御部１０４内のデータ転送制御部３１０はＳＴＡＴＵＳをうけとるとセレクタ部１３へのＲＥＱ信号をオフにする（ステップ５１５)。セレクタ部１３内のデータ転送制御部３１５はＣＭアクセス制御部１０４からのＲＥＱ信号のオフを確認すると、ＣＭアクセス制御部１０４へのＡＣＫ信号をオフする（ステップ５１６)。ＣＭアクセス制御部１０４内のデータ転送制御部３１０はステータスを受け取ると、制御線１：２１１により、ホストＩＦ１０２あるいはドライブＩＦ１０３へキャッシュメモリ部１４へのアクセスの終了を報告する。
【００３１】
（キャッシュリード動作）
キャッシュリード動作については特に図示していない。基本的にはキャッシュライト動作のデータの流れる方向が逆になるだけである。
【００３２】
キャッシュメモリ部１４からデータを読み出す場合（リード動作）のＣＭアクセス制御部１０４からＣＭコントローラ１０７へのアクセスの流れはステップ５０１から５０８までと同じであり、ステップ５１２以降はデータの書き込みの場合（ライト動作）と同じである。ここでＣＭアクセス制御部１０４は、ステップ５０５でＡＣＫ信号を受けると、データの受信待ち状態に入る。
【００３３】
ステップ５０８でメモリアクセス権を得ると、ＣＭコントローラ１０７はメモリモジュール１０９からデータを読み出し、セレクタ３０４、パスＩＦ３０１を介してアクセスパス１：１３６にデータを送出する。  セレクタ部１３は、アクセスパス１：１３６を通してデータを受信すると、セレクタ３０２、データ線２１０を介してホストＩＦ１０２あるいはドライブＩＦ１０３へデータを送出する。
【００３４】
（キャッシュ２重ライト動作）
これは、本実施例で２重書きが出来ることを示したものである。図１において、２つのキャッシュメモリ部１４間で、メモリ領域の全部または１部を２重化し、キャッシュメモリ部１４へのデータの書き込み時に２重化した２つの領域に同じデータを書き込むことにより、データの信頼性を上げることが可能となる。
【００３５】
２重化した２つのキャッシュメモリ部１４へデータを書き込む場合の手順の概略はは以下のようになる。アクセス開始の指示を受けたホストＩＦ１０２あるいはドライブＩＦ１０３は、制御線１：２１１によりＣＭアクセス制御部１０４内のデータ転送制御部３１０へアクセス開始を示す信号を送出する。それとともにデータ線２１０を通して２つのアドレス、コマンドと１つのデータを送出する。ＣＭアクセス制御部１０４は、データ線２１０を通して送られてきた２つのアドレス、コマンドと１つのデータをパケットバッファ３０３に格納する。データ転送制御部３１０はアービトレーションを行ってパスＩＦ３０１の使用権を決定し、図２のセレクタ３０２を切り替える。どちらのデータ線が選択されてもパスＩＦ部には同一のデータが転送され、２重書きが可能となる。
【００３６】
図６は２重化した２つのキャッシュメモリ部１４へデータを書き込む場合（２重ライト動作）のＣＭアクセス制御部１０４から２つのＣＭコントローラａ,b,：１０７へのアクセスの流れを示している。図６は本実施例で２重書きが出来ることを示している。ＣＭアクセス制御部１０４内のデータ転送制御部３１０は、アービトレーションによってアクセスパス０：１３５の使用権が決定されると、制御線２：２１２によってセレクタ部１３内のデータ転送制御部３１５へアクセス開始を示す信号ＲＥＱを出す（ステップ７０１)。続いてアドレス及びコマンドを２つ連続して送出する(ステップ７０２)。
【００３７】
セレクタ部１３内のデータ転送制御部３１５はＣＭアクセス制御部１０４からＲＥＱ信号を受け取ると次にアクセスパス０：１３５を通して送られてくるアドレス及びコマンドを受信し、アドレス/コマンド解析部３０５で解析したアクセス要求に基づいてアービトレーションを行う(ステップ７０３)。アービトレーションの結果、ＣＭコントローラa、b：１０７への接続権が得られたことを示す信号ＡＣＫを返す(ステップ７０４）。そして制御線２：２１２により、ＣＭアクセス制御部１０４内のデータ転送制御部３１０へＣＭコントローラa、b：１０７への接続権が得られたことを示す信号ＡＣＫを返す(ステップ７０５)。次にデータ転送制御部３１５は制御線３:２１３によって２つのＣＭコントローラ１０７内のデータ転送制御部３１０へアクセス開始を示す信号ＲＥＱを出す（ステップ７０６a,７０６b)。続いて、ＣＭコントローラa、b：１−７へアドレス及びコマンドをそれぞれ送出する（ステップ７０７a,７０７b)。
【００３８】
ＣＭアクセス制御部１０４はＡＣＫ信号を受け取るとパケットバッファ３０３からデータを読み出し、セレクタ３０２、パスＩＦ３０１を介してアクセスパス０：１３５へ送出する(ステップ７０９)。セレクタ部１３はアクセスパス０：１３５を通して送られてきた１つのデータをパスＩＦ３０１及びセレクタ３０６を介して２つのアクセスパス１：１３６の両方へ送信する(ステップ７０９a、ステップ７０９b）。
【００３９】
ＣＭコントローラa、b：１０７内のデータ転送制御部３１５は制御線３：２１３によってＲＥＱ信号を受け取ると、次にアクセスパス1:１３６を通して送られてくるアドレス及びコマンドを受信し、アドレス/コマンド解析部３０５で解析したアクセス要求に基づいてアービトレーションを行い（ステップ７０８a、７０８b)、セレクタ３０４を切り替える。アクセスパス１：１３６を通して送られてくるデータはパケットバッファ３０３に格納する。アービトレーションの結果、メモリモジュール１０９へのアクセス権を得たらメモリ制御情報をメモリ制御部３０７へ送出し、メモリアクセスのための前処理を行う（ステップ７１０a、７１０b）。次に、パケットバッファ３０３からデータを読み出し、セレクタ３０４を介してメモリモジュール１０９へ書き込む（ステップ７１１a、７１１b）。
【００４０】
メモリモジュール１０９へのアクセスが終了すると、メモリアクセスの後処理を行い、データ転送制御部３１０においてステータス情報(ＳＴＡＴＵＳ)を生成する(ステップ７１２a、７１２b)。
【００４１】
次にステータスをセレクタ部１３を介してＣＭアクセス制御部１０４へ送出する（ステップ７１３a、７１３b)。セレクタ部１３内のデータ転送制御部３１５はＳＴＡＴＵＳを受け取るとＣＭコントローラa、b：１０７へのＲＥＱ信号をそれぞれオフする(ステップ７１４a,７１４b)。
【００４２】
またセレクタ部１３は、ＣＭコントローラa、b：１０７の両方からＳＴＡＴＵＳを受け取ったら、それらを続けてＣＭアクセス制御部へ送出する（ステップ７１３）。ＣＭアクセス制御部１０４内のデータ転送制御部３１０は２つのＳＴＡＴＵＳを受け取ったらセレクタ１３へのＲＥＱ信号をオフする（ステップ７１５)。セレクタ部１３内のデータ転送部３１５はＣＭアクセス制御部１０４からのＲＥＱ信号のオフを確認すると、ＣＭアクセス制御部１０４へのＡＣＫ信号をオフする（ステップ７１６）。ＣＭアクセス制御部１０４内のデータ転送制御部３１０はＳＴＡＴＵＳを受け取ると制御線１：２１１によりホストＩＦ１０２あるいはドライブＩＦ１０３へキャッシュメモリ部１４へのアクセスの終了を報告する。
【００４３】
（キャッシュ間コピー動作〜データモニタ方式）
本発明の特徴は、この動作にある。この処理は図３に示したセレクタを用い、図７に示したデータ転送制御部３１５のコマンド別のセレクタ切り替えのアルゴリズムで図３のセレクタの切り替えを行なうことで実現される。ディスク制御装置１では、キャッシュメモリ部１４を複数設けた場合、あるキャッシュメモリ１４から別のキャッシュメモリ部１４へデータをコピーする機能が必要となる場合がある。例えば、前述した２重ライトによるデータの保証であるが、万が一２重化したキャッシュメモリ部のどちらかのデータが壊れた場合、あるいはメモリ部が故障した場合、保守により復旧を行う場合にデータの再度の書き込みのため正常なメモリ部から、読み出し復旧したメモリ部へ書き込むといった動作が要求されることがある。
【００４４】
またこの動作を行う場合、データ自体はデータ元であるキャッシュメモリ部１４からコピー先であるキャッシュメモリ部１４であるが、書き込まれたデータの信頼性を確認するには、前述したようにキャッシュ間のエラーチェック情報のみでは十分でない。もう一度コピー先を読みだし、ホストＩＦあるいはドライブＩＦエラーチェック部を介して確認する動作が必要である。
【００４５】
そこで本発明はここで、キャッシュメモリにデータを転送するとともに、敢えて転送開始を指示するホストＩＦ部１０２またはドライブＩＦ部１０３へデータを転送することを考える。この動作はアクセスパス０：１３５に対しては前述したリードの動作と同様に見えることになりコピーと同時にリード動作を平行して行うことが可能である。
【００４６】
エラーチェックは図３、図４におけるエラーチェック部３００もチェックするが、エラーチェック部３００’ではデータフォーマットのチェックやデータ自体の正当性のチェックも加わっている。この動作によって、リード動作と同様に図２のデータ転送制御部３１０は、データをエラーチェック部３００’のチェックを同時に行うことも可能だし、またバッファにおいて特定のデータを抽出することも可能となる利点も加わる。
【００４７】
この機能は、以下に述べる手順で実現できる。アクセスの開始の指示を受けたホストＩＦ１０２またはドライブＩＦ１０３は、制御線１：２１１によりＣＭアクセス制御部１０４内のデータ転送制御部３１０へアクセスする開始を示す信号を送出する。それとともに、データ線２１０を通して２つのアドレスとコマンドを送出する。この２つのうち１つのアドレス及びコマンドは、コピー元のアドレスとリードコマンドで、もう一つのアドレス及びコマンドはコピー先のアドレスとライトコマンドである。ここではＣＭコントローラa：１０７をコピー元、ＣＭコントローラbをコピー先として説明する。
【００４８】
ＣＭアクセス制御部１０４は、データ２１０を通して送られてきた２つのアドレス、コマンドをパケットバッファ３０３に格納する。データ転送制御部３１０はアービトレーションを行いパスＩＦ３０１の使用権を決定し、セレクタ３０２を切り替える。この後の詳細な説明は図８を使って後述する。
【００４９】
図７は本発明のセレクタ１３のデータ転送制御部３１５の詳細を示したものである。ＣＭアクセス制御部からデータの転送の起動がかかるかどうかを調べる(ステップ７２０)。即ち、ＲＥＱ  ＯＮかどうかを見る。ＲＥＱが来ない場合は待ち状態となる。ＲＥＱが来ると転送されてくるアドレスとコマンドの解析を行なう（ステップ７２１）。アドレスは例えばキャッシュのアドレスであり、コマンドはリードか、ライトか、２重書きか、キャッシュ間コピーか等である。エラーがあるかどうかを調べ（ステップ７２２）、あればエラー処理して（ステップ７３５）終わる。エラーがなければデータ線の送信権のアービトレーションを行い、(ステップ７２３)、送信権を得てデータパスが出来ると(ステップ７２４)、セレクタ切り替え動作に移る（ステップ７２５）。
【００５０】
先のコマンド解析の結果コマンドが１重ライト命令であればセレクタ３０６をホストまたはディスクＩＦからのデータを送信するように、そしてキャッシュがそれを受信するよう切り替える（ステップ７２６）。１重リードの場合は逆にキャッシュ側を送信に、ホストまたはディスクＩＦを受信になるようセレクタを切り替える。２重ライト(２重書き)の場合はホストまたはディスクＩＦを送信となるよう、かつ２つのキャッシュが同時に受信となるようセレクタを切り替える（ステップ７２８）。
【００５１】
本発明の最も特徴となるキャッシュ間コピーの場合はキャッシュの一方が送信となり、他方のキャッシュ及びホストまたはディスクＩＦがともに受信となるようセレクタ３０６を切り替える（ステップ７２９）。またキャッシュ内コピーの場合セレクタ３０６はキャッシュを送信とし、ホストまたはディスクＩＦを受信に切り替える。キャッシュ内へのライトはＣＭコントローラ１０７内のセレクタの働きにより行なわれる。上述のキャッシュ間コピー及びキャッシュ内コピーのホストまたはディスクＩＦの受信はモニタの働きをする。その後、ＣＭアクセス制御部１０４にＡＣＫを送り、ＣＭコントローラ１０７にＲＥＱを送る(ステップ７３１)。そして、データの送受信を行ない、(ステップ７３２)、ＳＴＡＴＵＳ信号の送受信を行なう(ステップ７３３)。ＲＥＱ  ＯＦＦを出して一連の動作を終了し、もとの待ち状態へ戻る(ステップ７３４)。
【００５２】
図８は、２つのキャッシュメモリ部間でデータをコピーする場合のＣＭアクセス制御部１０４からＣＭコントローラa、b：１０７へのアクセスのフローを示している。ＣＭアクセス制御部１０４内のデータ転送制御部３１０は、アービトレーションによってアクセスパス０：１３５の使用権が決定されると、制御線２：２１２によりセレクタ部１３内のデータ転送制御部３１５へのアクセス開始を示す信号(ＲＥＱ)を送信する（ステップ８０１）。続いて２つのアドレス及びコマンドを連続して送出する（ステップ８０２）。
【００５３】
セレクタ部１３内のデータ転送制御部３１５は、ＣＭアクセス部１０４からＲＥＱ信号を受取ると次にアクセスパス０：１３５を通して送られてくるアドレス及びコマンドを受信し、アドレス/コマンド解析部３０５で解析したアクセス要求に基づいてアービトレーションを行う（ステップ８０３）。アービトレーションの結果、ＣＭコントローラa、b：１０７への２つのアクセスパス１：１３６への接続権利の両方を得たら、データ転送制御部３１５はセレクタ３０６を切り替える（ステップ８０４)とともに制御線２：２１２によりＣＭアクセス制御部１０４内のデータ転送制御部３１０へＣＭコントローラa、b：１０７の接続権が得られたことを示す信号(ＡＣＫ)を返信する（ステップ８０５）。
【００５４】
次にデータ転送制御部３１５は、制御線３：２１３によってＣＭコントローラa、b：１０７内のデータ転送制御部３１５に対するアクセス開始を示す信号(ＲＥＱ)を出す（ステップ８０６a,８０６b)。  続いてＣＭコントローラa、b：１０７にそれぞれアドレス及びコマンドを送出する（ステップ８０７a、８０７b)。ＣＭアクセス制御部１０４はＡＣＫ信号を受取ると、アクセスの終了を知らせるＳＴＡＴＵＳの受信待ち状態になる。
【００５５】
コピー元のＣＭコントローラa:１０７内のデータ転送制御部３１０は、制御線３：２１３によってＲＥＱ信号を受取ると、次はアクセスパス１：１３６を通して送られてくるアドレス及びコマンドを受信し、アドレス/コマンド解析部３０５で解析したアクセス要求に基づいてアービトレーションを行い(ステップ８０８)、図４のセレクタ３０４を切り替える。アービトレーションの結果、メモリモジュール１０９へのアクセス権を得たら、メモリの制御情報をメモリ制御部３０７へ送出し、メモリアクセスのための前処理を行う（スッテプ８０９）。次にメモリモジュール１０９からデータを読み出し(ステップ８１０)、セレクタ304を介しアクセスパス１：１３６へ送出する（ステップ８１１a）。
【００５６】
セレクタ部１３は、アクセスパス１：１３６を通してＣＭコントローラa：１０７から送られてきたデータをＣＭコントローラbに接続するアクセスパス１：１３６へ送出する（ステップ８１１b）。 またここでセレクタ部１３は同じように、アドレス及びコマンドを発行したホストＩＦ１０２あるいはドライブＩＦ１０３に対しても、それらの接続するアクセスパス０：１３５を介しＣＭコントローラa：１０７から送られてきたデータを送出する（ステップ８１１)。ここがデータのモニタに当たる。これにより転送開始を指示したホストＩＦ１０２あるいはドライブＩＦ１０３は前述したリード動作と同様にデータをモニタすることが出来る。そして、この間ホストＩＦ１０２あるいはドライブＩＦ１０３は空き時間が生じるのでその中にあるエラーチェック回路３００’を通し障害がないことを確認することが出来る(ステップ８３０)。ＣＭコントローラb：１０７内のデータ転送制御部３１０は、制御線３：２１３によってＲＥＱ信号を受取ると、次にアクセスパス１：１３６を通して送られてくるアドレス及びコマンドを受信し、アドレス/コマンド解析部３０５で解析し、その後でデータを受信開始するのを待って、メモリアクセスのアービトレーションにエントリーする（ステップ８１２)。アクセスパス１：１３６を通して送られてくるデータはパケットバッファ３０３に格納する。アービトレーションの結果、メモリモジュール１０９へのアクセス権を得たら、メモリの制御情報をメモリ制御部３０７へ送出し、メモリアクセスのための前処理を行う（ステップ８１３）。次にパケットバッファ３０３からデータを読み出し、セレクタ３０４を介してメモリモジュール１０９へ書き込む（ステップ８１４)。
【００５７】
ＣＭコントローラa、b：１０７はそれぞれＣＭモジュール１０９へのアクセスが終了すると、メモリアクセスの後処理を行い、データ転送制御部３１５においてアクセス状況をしめすステータス情報(ＳＴＡＴＵＳ)を生成する（ステップ８１５,８１８）。次にＳＴＡＴＵＳをセレクタ部１３へ送出する（ステップ８１６,８１９)。
セレクタ部１３内のデータ転送制御部３１５はＳＴＡＴＵＳを受取ると、ＣＭコントローラa、b：１０７へのＲＥＱ信号をそれぞれオフする（ステップ８１７,８２１）。またセレクタ部１３は２つのＣＭコントローラa、b：１０７の両方よりＳＴＡＴＵＳを受取ったらそれらを続けてＣＭアクセス制御部に対して送出する（ステップ８２０）。ＣＭアクセス制御部１０４内のデータ転送部３１０は２つのＳＴＡＴＵＳを受取ると、セレクタ部１３へのＲＥＱ信号をオフにする（ステップ８２２)。セレクタ部１３内のデータ転送制御部３１５はＣＭアクセス制御部１０４からのＲＥＱ信号がオフされるのを確認するとＣＭアクセス制御部１０４へのＡＣＫ信号をオフする（ステップ８２３）。ＣＭアクセス制御部１０４内のデータ転送制御部３１０はＳＴＡＴＵＳを受取ると、制御線１：２１１によりホストＩＦあるいはドライブＩＦ１０３へキャッシュメモリ部１４へのアクセスの終了を報告する。
【００５８】
以上のフローを実行するためにはエラーチェック回路３００をメモリモジュール１０９からセレクタ３０６までの間に最低１つと、ホストコンピュータ５０及び磁気ディスク装置２０に接続されるＣＭアクセス制御部ないにエラーチェック回路３００’を最低１つ設けておけば良い。
【００５９】
（キャッシュ内メモリ間コピー動作〜データモニタ方式）
ディスクアレイ制御装置１ではまた１つのキャッシュメモリ部１４内にあるアドレスから、別のアドレスへデータをコピーする機能も可能である。またこの機能においても前述のキャッシュ間コピー動作と同様にメモリからメモリへ読み出し、書き込むデータをアドレス及びコマンドを発行して転送の指示をしたホストＩＦ１０２あるいはドライブＩＦ１０３に対して送信し、それらはデータをモニタしている。すなわち図５で示したデータの書き込み（ライト動作）時の手順においてステップ５１１のメモリモジュール１０９へのライトアクセスの代わりにメモリモジュール１０９からデータを読み出してＣＭコントローラ１０７内のパケットバッファ３０３に格納し、続けてそのデータをメモリモジュール１０９へ書き込むと同時にアクセスパス１：１３６とセレクタ部１３を介し、アドレス及びコマンドの発行をしたホストＩＦ１０２あるいはドライブＩＦ１０３に対して送信することで実現する。
【００６０】
【発明の効果】
本発明によると、キャッシュ間のデータ転送のプロトコルを実行時、それとともに転送しているデータをモニタすることにより、データのチェックやデータ内情報の採取と転送処理を並行して行うという効率化と信頼性の向上の効果が得られる。
【図面の簡単な説明】
【図１】本発明の機能を持つディスク制御装置の構成を示す図。
【図２】本発明の機能を持つディスク制御装置内のＣＭアクセス制御部の構成を示す図。
【図３】本発明の機能を持つディスク制御装置内のセレクタ部の構成を示す図。
【図４】本発明の機能を持つディスク制御装置内のキャッシュメモリ部の構成を示す図。
【図５】キャッシュメモリ部への書き込み動作の手順を示す図。
【図６】２重化したキャッシュメモリ部への書き込み動作の手順を示す図。
【図７】データ転送制御部３１５の詳細図。
【図８】１つのキャッシュメモリ部から別のキャッシュメモリ部への書き込み動作の手順を示す図。
【符号の説明】
１：ディスク制御装置、１１：ホストＩＦ部、１２：ディスクＩＦ部、１３：セレクタ部、１４：キャッシュメモリ部、２０：磁気ディスク装置、５０：ホストコンピュータ、１０１：マイクロプロセッサ、１０２：ホストＩＦ、１０３：ドライブＩＦ、１０４：ＣＭアクセス制御部、１０７：ＣＭコントローラ、１０９：メモリモジュール、１３５：アクセスパス０、１３６：アクセスパス１
【図１】
0003686562.tif 000002
【図２】
0003686562.tif 000003
【図３】
0003686562.tif 000004
【図４】
0003686562.tif 000005
【図５】
0003686562.tif 000006
【図６】
0003686562.tif 000007
【図７】
0003686562.tif 000008
【図８】
0003686562.tif 000009