(57)【特許請求の範囲】
【請求項１】
少なくとも１台のディスク装置から構成される論理ディスクを少なくとも１つ備えたディスク記憶システムに用いられ、前記ディスク記憶システムを利用する第１のホストコンピュータと接続して用いられる二重化コントローラ構成ディスク記憶システム向けコントローラであって、前記第１のホストコンピュータ以外の他の第２のホストコンピュータと接続して用いられる当該コントローラとは異なる他のコントローラと共に二重化コントローラを構成することが可能であり、前記第１のホストコンピュータからの入出力要求に応じて当該第１のホストコンピュータと前記論理ディスクとの間のデータ転送を制御する二重化コントローラ構成ディスク記憶システム向けコントローラにおいて、
前記第１のホストコンピュータからの入出力要求を受け付けて、当該要求の実行を制御するマイクロプロセッサと、
前記第１のホストコンピュータからの入出力要求に応じて入出力されるデータを一時格納するための、当該入出力要求の指定する論理アドレス領域に固有のメモリ領域が確保されるディスクキャッシュメモリと、
前記ディスクキャッシュメモリ上に確保されたメモリ領域へのデータ書き込み及び当該メモリ領域からのデータ読み出しを制御するディスクキャッシュ制御回路であって、前記二重化コントローラ構成ディスク記憶システム向けコントローラと共に前記２重化コントローラを構成する前記他のコントローラのディスクキャッシュ制御回路と専用バスを介して接続され、前記第１のホストコンピュータからの入出力要求の指定する論理アドレス領域に固有のメモリ領域を前記ディスクキャッシュメモリ上に確保するための当該メモリ領域を示す、前記マイクロプロセッサによって設定されるメモリ領域情報を保持する少なくとも１つの送信側メモリ領域情報保持手段と、前記他のコントローラのディスクキャッシュ制御回路によって前記専用バスを介して設定される、前記第２のホストコンピュータからの入出力要求の指定する論理アドレス領域に固有のメモリ領域を確保するためのメモリ領域情報を保持する少なくとも１つの受信側メモリ領域情報保持手段とを含むディスクキャッシュ制御回路とを具備し、
前記マイクロプロセッサは、前記第１のホストコンピュータからのライト指定の入出力要求を受け付けた場合、当該入出力要求の指定する論理ディスク領域に固有のメモリ領域を示すメモリ領域情報を前記ディスクキャッシュ制御回路の前記送信側メモリ領域情報保持手段に設定し、しかる後に当該メモリ領域情報の示すメモリ領域と少なくとも一部が共通のメモリ領域を示す前記受信側メモリ領域情報保持手段が前記ディスクキャッシュ制御回路内に存在するかを検索し、該当する前記受信側メモリ領域情報保持手段が存在しないならば、前記メモリ領域情報の示すメモリ領域は前記他のコントローラによって確保されていないとして当該メモリ領域を確保し、
前記ディスクキャッシュ制御回路は、前記マイクロプロセッサによる前記送信側メモリ領域情報保持手段へのメモリ領域情報の設定に応じて、当該メモリ領域情報を前記他のコントローラのディスクキャッシュ制御回路の受信側メモリ領域情報保持手段に前記専用バスを介して設定させ、前記ライト指定の入出力要求で指定されたデータを前記ディスクキャッシュ上の前記確保されたメモリ領域に書き込むと同時に、当該データを前記他のコントローラのディスクキャッシュ制御回路に前記専用バスを介して転送することで、当該データを前記他のコントローラのディスクキャッシュ制御回路により前記他のコントローラのディスクキャッシュ上の前記確保されたメモリ領域に対応するメモリ領域に書き込ませる
ことを特徴とする二重化コントローラ構成ディスク記憶システム向けコントローラ。
【請求項２】
前記ディスクキャッシュ制御回路は、前記送信側メモリ領域情報保持手段と組をなし、当該送信側メモリ領域情報保持手段の指定するメモリ領域のステータスを保持する送信側ステータス保持手段と、前記受信側メモリ領域情報保持手段と組をなし、当該受信側メモリ領域情報保持手段の指定するメモリ領域のステータスを保持する受信側ステータス保持手段とを更に含んでおり、前記ディスク制御回路は、前記送信側ステータス保持手段の示すステータスの更新時に、その更新後のステータスを前記他のコントローラのディスク制御回路に前記専用バスで転送することで当該他のコントローラのディスク制御回路に含まれている受信側ステータス保持手段の示すステータスを当該更新後のステータスに更新させることを特徴とする請求項１記載の二重化コントローラ構成ディスク記憶システム向けコントローラ。
【請求項３】
前記送信側ステータス保持手段には、当該送信側ステータス保持手段と組をなす前記送信側メモリ領域情報保持手段の指定するメモリ領域のステータスであって当該メモリ領域が確保されて当該メモリ領域が排他使用されていることを示す使用中ステータス及び当該メモリ領域の排他使用が完了したことを示す使用完了ステータスを含むステータスの１つが保持されることを特徴とする請求項２記載の二重化コントローラ構成ディスク記憶システム向けコントローラ。
【請求項４】
前記マイクロプロセッサは、
前記第１のホストコンピュータからのライト指定の入出力要求に応じて当該入出力要求の指定する論理ディスク領域に固有のメモリ領域を示すメモリ領域情報を前記ディスクキャッシュ制御回路内の前記送信側メモリ領域情報保持手段に設定した場合、
当該メモリ領域と少なくとも一部が共通のメモリ領域を示す前記受信側メモリ領域情報保持手段が前記ディスクキャッシュ制御回路内に存在しないならば直ちに、
存在するならば、当該受信側メモリ領域情報保持手段と組をなす前記受信側ステータス保持手段の示すステータスを参照して、当該ステータスが使用完了を示しているならば直ちに、そうでないならば当該ステータスが使用完了ステータスに切り替わるのを待って、
前記送信側メモリ領域情報保持手段と組をなす前記送信側ステータス保持手段の示すステータスを使用中を示すように更新する
ことを特徴とする請求項３記載の二重化コントローラ構成ディスク記憶システム向けコントローラ。
【請求項５】
前記マイクロプロセッサは、
前記他のコントローラに対する前記第２のホストコンピュータからの入出力要求に応じて当該他のコントローラ内のディスクキャッシュ制御回路により前記専用バスを介して前記受信側メモリ領域情報保持手段にメモリ領域情報が設定され、且つ当該前記受信側メモリ領域情報保持手段と組をなす前記受信側ステータス保持手段に使用中ステータスが設定されている状態で、前記第１のホストコンピュータからの入出力要求を受け付け、且つ当該受け付けた入出力要求の指定する論理ディスク領域に固有のメモリ領域の少なくとも一部が、前記使用中ステータスが設定されている前記受信側ステータス保持手段と組をなす前記受信側メモリ領域情報保持手段に設定されているメモリ領域情報の示す現在確保されて排他使用されているメモリ領域と共通している場合、
前記他のコントローラに対する前記第２のホストコンピュータからの入出力要求がライト要求であるならば、前記受け付けた入出力要求がライト要求またはリード要求のいずれであるかに無関係に、
前記他のコントローラに対する前記第２のホストコンピュータからの入出力要求がリード要求であるならば、前記受け付けた入出力要求がライト要求である場合だけ、
前記受信側ステータス保持手段に設定されているステータスが前記使用中ステータスから前記使用完了ステータスに切り替わるまで、前記受け付けた入出力要求の指定する論理ディスク領域に固有のメモリ領域を示すメモリ領域情報が設定されている前記送信側メモリ領域情報保持手段と組をなす前記送信側ステータス保持手段に設定されているステータスを前記使用中ステータスに切り替えるのを待つ
ことを特徴とする請求項４記載の二重化コントローラ構成ディスク記憶システム向けコントローラ。
【請求項６】
少なくとも１台のディスク装置から構成される少なくとも１つの論理ディスクと、
第１のホストコンピュータと接続して用いられ、当該第１のホストコンピュータからの入出力要求に応じて当該第１のホストコンピュータと前記論理ディスクとの間のデータ転送を制御する第１のコントローラと、
第２のホストコンピュータと接続して用いられ、当該第２のホストコンピュータからの入出力要求に応じて当該第２のホストコンピュータと前記論理ディスクとの間のデータ転送を制御する第２のコントローラであって、前記第１のコントローラと共に２重化コントローラを構成する第２のコントローラと、
前記第１及び第２のコントローラを接続する専用バスとを具備し、
前記第１及び第２のコントローラは、それぞれ、
前記第１及び第２のホストコンピュータからの入出力要求を受け付けて、当該要求の実行を制御するマイクロプロセッサと、
前記第１及び第２のホストコンピュータからの入出力要求に応じて入出力されるデータを一時格納するための、当該入出力要求の指定する論理アドレス領域に固有のメモリ領域が確保されるディスクキャッシュメモリと、
前記ディスクキャッシュメモリ上に確保されたメモリ領域へのデータ書き込み及び当該メモリ領域からのデータ読み出しを制御する前記専用バスによって相互接続されるディスクキャッシュ制御回路であって、前記第１及び第２のホストコンピュータからの入出力要求の指定する論理アドレス領域に固有のメモリ領域を前記ディスクキャッシュメモリ上に確保するための当該メモリ領域を示す、前記マイクロプロセッサによって設定されるメモリ領域情報を保持する少なくとも１つの送信側メモリ領域情報保持手段と、前記第２及び第１のコントローラのディスクキャッシュ制御回路によって前記専用バスを介して設定される、前記第２及び第１のホストコンピュータからの入出力要求の指定する論理アドレス領域に固有のメモリ領域を確保するためのメモリ領域情報を保持する少なくとも１つの受信側メモリ領域情報保持手段とを含むディスクキャッシュ制御回路とを有し、
前記第１及び第２のコントローラの前記マイクロプロセッサは、それぞれ、前記第１及び第２のホストコンピュータからのライト指定の入出力要求を受け付けた場合、当該入出力要求の指定する論理ディスク領域に固有のメモリ領域を示すメモリ領域情報を前記ディスクキャッシュ制御回路の前記送信側メモリ領域情報保持手段に設定し、しかる後に当該メモリ領域情報の示すメモリ領域と少なくとも一部が共通のメモリ領域を示す前記受信側メモリ領域情報保持手段が前記ディスクキャッシュ制御回路内に存在するかを検索し、該当する前記受信側メモリ領域情報保持手段が存在しないならば、前記メモリ領域情報の示すメモリ領域は前記第２及び第１のコントローラによって確保されていないとして当該メモリ領域を確保し、
前記第１及び第２のコントローラの前記ディスクキャッシュ制御回路は、前記マイクロプロセッサによる前記送信側メモリ領域情報保持手段へのメモリ領域情報の設定に応じて、当該メモリ領域情報を前記他のコントローラのディスクキャッシュ制御回路の受信側メモリ領域情報保持手段に前記専用バスを介して設定させ、前記ライト指定の入出力要求で指定されたデータを前記ディスクキャッシュ上の前記確保されたメモリ領域に書き込むと同時に、当該データを前記第２及び第１のコントローラのディスクキャッシュ制御回路に前記専用バスを介して転送することで、当該データを前記第２及び第１のコントローラのディスクキャッシュ制御回路により前記第２及び第１のコントローラのディスクキャッシュ上の前記確保されたメモリ領域に対応するメモリ領域に書き込ませる
ことを特徴とするディスク記憶システム。
【請求項７】
少なくとも１台のディスク装置から構成される少なくとも１つの論理ディスクと、第１のホストコンピュータと接続して用いられ、当該第１のホストコンピュータからの入出力要求に応じて当該第１のホストコンピュータと前記論理ディスクとの間のデータ転送を制御する第１のコントローラと、第２のホストコンピュータと接続して用いられ、当該第２のホストコンピュータからの入出力要求に応じて当該第２のホストコンピュータと前記論理ディスクとの間のデータ転送を制御する第２のコントローラであって、前記第１のコントローラと共に２重化コントローラを構成する第２のコントローラと、前記第１及び第２のコントローラを接続する専用バスとを備え、前記第１及び第１のコントローラは、それぞれ、前記第１及び第２のホストコンピュータからの入出力要求に応じて入出力されるデータを一時格納するための、当該入出力要求の指定する論理アドレス領域に固有のメモリ領域が確保されるディスクキャッシュメモリと、前記ディスクキャッシュメモリ上に確保されたメモリ領域へのデータ書き込み及び当該メモリ領域からのデータ読み出しを制御する前記専用バスによって相互接続されるディスクキャッシュ制御回路とを有するディスク記憶システムにおける入出力要求排他制御方法であって、
前記第１及び第２のコントローラのうちのいずれか一方のコントローラに前記第１及び第２のホストコンピュータのうち当該一方のコントローラに接続されたホストコンピュータからライト指定の入出力要求が与えられた場合、当該一方のコントローラにおいて、当該入出力要求の指定する論理アドレス領域に固有のメモリ領域を当該一方のコントローラの前記ディスクキャッシュメモリ上に確保するためのメモリ領域情報を当該一方のコントローラ内に設定するステップと、
前記一方のコントローラ内に設定されたメモリ領域情報を当該一方のコントローラによって前記第１及び第２のコントローラのうちの他方のコントローラに前記専用バスを介して当該他方のコントローラ内に設定させるステップと、
前記一方のコントローラによって前記メモリ領域情報を前記一方のコントローラ内に設定した後、当該メモリ領域情報の示す当該一方のコントローラの前記ディスクキャッシュ上のメモリ領域と少なくとも一部が共通のメモリ領域を示すメモリ領域情報が当該一方のコントローラ内に前記他方のコントローラによって既に設定されているかを判別するステップと、
前記共通のメモリ領域を示すメモリ領域情報が前記他方のコントローラによって設定されていない場合、前記一方のコントローラによって設定された前記メモリ領域情報の示す当該一方のコントローラの前記ディスクキャッシュ上のメモリ領域は前記他のコントローラによって確保されていないとして当該メモリ領域を確保して、前記ライト指定の入出力要求で指定されたデータを当該一方のコントローラの前記ディスクキャッシュ上の前記確保されたメモリ領域に書き込むと同時に、当該データを前記他のコントローラに前記専用バスを介して転送することで、当該データを前記他のコントローラの前記ディスクキャッシュ上の前記確保されたメモリ領域に対応するメモリ領域に書き込ませるステップと
を具備することを特徴とするディスク記憶システムにおける入出力要求排他制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理ディスクへのアクセスを制御する、二重化して用いられるコントローラに係り、特に、二重化されたコントローラ（に接続されたホストコンピュータ）間における同一論理ディスクの同一ディスク領域へのアクセスの排他制御、並びにディスクキャッシュデータの一致化制御に好適な、二重化コントローラ構成ディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システムに関する。
【０００２】
【従来の技術】
近年、１つまたは複数のディスク装置をホストコンピュータからみて１つの論理ディスクとして扱うことができるディスク記憶システムが開発されている。このシステムは、１つまたは複数の論理ディスクを備えている。この種のディスク記憶システムとして、例えば特開平９−１４６８４２号公報に記載されているような、論理ディスクへのアクセスを制御するコントローラが二重化されたディスク記憶システム（記憶サブシステム）が知られている。
【０００３】
二重化コントローラ構成を適用するディスク記憶システムは、各コントローラ毎に異なるホストコンピュータを接続可能なことから、複数のホストコンピュータからのディスクアクセスのためのＩＯ（入出力）要求（リード／ライト要求）を高速で処理することができる。この種のディスク記憶システムにおいて、各コントローラは、ホストコンピュータと論理ディスクとの間で転送されるデータを一時格納するキャッシュメモリ（以下、ディスクキャッシュと称する）を備えている。
【０００４】
ここで、ディスク記憶システム中の二重化コントローラが、第１及び第２のコントローラから構成されているものとする。また、第１及び第２のコントローラは、それぞれ第１及び第２のディスクキャッシュを備え、それぞれ第１及び第２のホストコンピュータと接続されているものとする。このようなディスク記憶システムにおいて、第１のコントローラは、第１のホストコンピュータからのライト要求の実行時には、当該ライト要求で指定されたデータを第１のディスクキャッシュに書き終えた段階で、要求元の第１のホストコンピュータに要求実行終了を通知する。第１のディスクキャッシュに書き込まれたデータは、適当なタイミングで、第１のコントローラにより上記ライト要求で指定された論理ディスクのディスク領域に書き込まれる、つまりライトバックされる。
【０００５】
さて、このライトバックが行われる前に、第２のホストコンピュータから第２のコントローラに、上記第１のホストコンピュータからのライト要求の場合とアクセス先が同一のライト要求、即ち同一論理ディスクの同一ディスク領域（同一論理ディスク領域）へのライト要求が与えられたものとする。もし、第２のコントローラが、そのまま第２のホストコンピュータからのライト要求を実行して、当該ライト要求で指定されたデータを第２のディスクキャッシュに書き込んだ場合、第１及び第２のディスクキャッシュ上で、同一論理ディスクの同一ディスク領域に対応するデータが異なってしまう。したがって、この状態で、第１のホストコンピュータから第１のコントローラに対して上記ディスク領域からのデータ読み出しを指示するリード要求が与えられた場合、第１のコントローラは、第２のホストコンピュータからのライト要求で指定された最新のデータとは異なるデータを、第１のディスクキャッシュから読み出して要求元の第１のホストコンピュータに転送することになる。
【０００６】
このため、上記ディスク記憶システムにおいて、ホストコンピュータからのライト要求に応じて、対応するコントローラが当該要求で指定されたデータをディスクキャッシュに書き込んだ際に、当該ディスクキャッシュと他のコントローラのディスクキャッシュとの間でデータが一致しなくなる不具合を解消するためには、各コントローラのディスクキャッシュ相互間でデータの一致化を図る一致化制御（ディスクキャッシュデータ一致化制御）と、その間は他のコントローラにおける同一論理ディスクの同一ディスク領域へのライト要求の実行を待たせる、いわゆる排他制御（ホストコンピュータからアクセスされる論理ディスク領域の排他制御）とが必要となる。
【０００７】
ここで、従来のディスク記憶システムにおけるディスクキャッシュデータ一致化制御とホストコンピュータからアクセスされる論理ディスク領域の排他制御とについて説明する。
【０００８】
まず、従来のディスク記憶システムでは、上記一致化制御と排他制御とに必要な情報を当該コントローラ間で授受するために、第１及び第２のコントローラにそれぞれ第１及び第２の通信制御部並びに第１及び第２のディスクキャッシュ制御回路を設けると共に、各通信制御部間を接続する第１の専用バスと各ディスクキャッシュ制御回路間を接続する第２の専用バスとを設けている。
【０００９】
このようなディスク記憶システムにおいて、例えば第１のホストコンピュータから第１のコントローラにＩＯ要求（リード／ライト要求）が与えられた場合、第１のコントローラは当該ＩＯ要求を解釈し、第２のコントローラとの通信制御部を介しての通信制御によりコントローラ間で当該ＩＯ要求で指定された論理ディスクのディスク領域（論理ディスク領域）の排他制御を行い、当該ディスク領域のアクセス権を獲得する。この排他制御の後、第１のコントローラは、上記ＩＯ要求で指定されたデータ転送を行うのに必要な第１のディスクキャッシュ上のメモリ領域を確保する。一方、第２のコントローラは、第１のコントローラによるＩＯ要求の実行により転送されるデータの写しを格納するためのメモリ領域を確保する。その後、第１のコントローラは、上記ＩＯ要求に従い、第１のディスクキャッシュを介してデータ転送を行う。
【００１０】
第１のディスクキャッシュに格納されたデータは、第１のディスクキャッシュ制御回路のデータ転送機能により、第２の専用バスを介して第２のコントローラに転送され、第２のディスクキャッシュに確保されたメモリ領域に第２のディスクキャッシュ制御回路により格納される。このディスクキャッシュ間のデータ転送により、コントローラ間でディスクキャッシュデータの一致化が行われる。
【００１１】
上記した従来のディスク記憶システムでは、第１及び第２のホストコンピュータからそれぞれ同一論理ディスクの同一ディスク領域（論理ディスク領域）に対するＩＯ要求が対応する第１及び第２のコントローラに与えられた場合、当該両コントローラによる通信制御にて、どちらか一方のコントローラのみが論理ディスク領域に対するアクセス権を獲得し、ＩＯ要求を実行する。ここでは、第１のコントローラがアクセス権を獲得してＩＯ要求を実行するものとする。第２のコントローラは、第１のコントローラのＩＯ処理が終了するまで第２のホストコンピュータからのＩＯ要求の実行を待たなければならない。
【００１２】
第１のホストコンピュータからのＩＯ要求で指定されたディスク領域に対するアクセス権を獲得した第１のコントローラは、当該ＩＯ要求を実行し、第１のディスクキャッシュ上に確保したメモリ領域に格納したデータを第２のコントローラに転送する。このデータは、先のコントローラ間の通信により第２のディスクキャッシュ上に確保されたメモリ領域に格納される。これにより、コントローラ間でディスクキャッシュデータの一致化が図られる。
【００１３】
第１のコントローラは、第１のホストコンピュータからのＩＯ要求で指定されたデータを全て第１のディスクキャッシュ上のメモリ領域に格納し終えると、当該第１のホストコンピュータにＩＯ要求実行終了を通知すると共に、第２のコントローラとの間の第１の専用バスを介しての通信により当該第２のコントローラにもＩＯ要求実行終了を通知する。すると待ち状態にある第２のコントローラは、一致化されている第２のディスクキャッシュのメモリ領域上のデータを使用して、第２のホストコンピュータからのＩＯ要求を続けて実行する。
【００１４】
【発明が解決しようとする課題】
上記したように、二重化コントローラ構成を適用する従来のディスク記憶システムでは、各コントローラに対応するホストコンピュータからそれぞれ同一論理ディスク領域に対するＩＯ要求が発行された場合、各コントローラでは、それぞれ対応するホストコンピュータと論理ディスク領域とのデータ転送を行うために必要なメモリ領域が自コントローラ内のディスクキャッシュ上に確保される。このディスクキャッシュ上のメモリ領域は、対応するホストコンピュータから同一論理ディスク領域をアクセスするために確保されたものであるだけでなく、ディスクキャッシュデータの一致化を行うためのメモリ領域として各コントローラ間での同期（整合性）が保障されたものである。これは、各コントローラ間の通信制御による同一論理ディスク領域へのアクセスに対する排他制御（ＩＯ排他制御）が行われた後にメモリ領域が確保されているためである。
【００１５】
このように二重化コントローラ構成を適用した従来のディスク記憶システムでは、コントローラ間の通信制御により同一論理ディスク領域へのアクセスに対する排他制御を行い、しかる後に各コントローラにおいてディスクキャッシュ上にメモリ領域を確保することにより、ディスクキャッシュデータの一致化を行うための、各コントローラ（に対応するホストコンピュータ）間での同期が保障されたメモリ領域とすることができる。
【００１６】
しかしながら、そのためにはコントローラ間の通信制御によるＩＯ排他制御が必要となり、ホストコンピュータからのＩＯ要求を高速に処理できないという問題がある。
【００１７】
さて、通信制御によるＩＯ排他制御を行った後、同一論理ディスク領域（同一論理ディスクの同一ディスク領域）をアクセスするために各コントローラのディスクキャッシュ上に確保されたメモリ領域は、同時に排他されたメモリ領域といえる。逆に、ディスクキャッシュ上にメモリ領域を確保した時点でアクセスを排他することができれば、同時に同一論理ディスク領域へのアクセスを排他することが可能となると考えられる。したがって、各コントローラのディスクキャッシュ上のメモリ領域を同時に確保して排他することができれば、通信制御によるＩＯ排他制御は不要なものとすることができると考えられる。
【００１８】
そこで本発明は上記事情を考慮してなされたものでその目的は、同一論理ディスクの同一ディスク領域へのアクセスに対する排他制御と、ディスクキャッシュ上のメモリ確保とを別々に行わずに、ディスクキャッシュ上のメモリ領域を確保したときに、同時に当該メモリ領域を排他的に使用して対応するディスク領域にアクセスする権利を得ることができ、これにより排他制御を円滑に行い、高速にＩＯ要求を処理することができる二重化コントローラ構成を適用するディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システムを提供することにある。
【００１９】
【課題を解決するための手段】
本発明の１つの観点によれば、少なくとも１台のディスク装置から構成される論理ディスクを少なくとも１つ備えた、二重化コントローラ構成を適用するディスク記憶システムに用いられ、ホストコンピュータからの入出力要求に応じて当該ホストコンピュータと対応する論理ディスクとの間のデータ転送を制御する二重化コントローラ構成ディスク記憶システム向けコントローラが提供される。このコントローラは、ホストコンピュータからの入出力要求を受け付けて、当該要求の実行を制御するマイクロプロセッサと、ホストコンピュータからの入出力要求に応じて入出力されるデータを一時格納するための、当該入出力要求の指定する論理アドレス領域に固有のメモリ領域が確保されるディスクキャッシュメモリと、このディスクキャッシュメモリ上に確保されたメモリ領域へのデータ書き込み及び当該メモリ領域からのデータ読み出しを制御するディスクキャッシュ制御回路とを備えている。このディスクキャッシュ制御回路は、ホストコンピュータからの入出力要求の指定する論理アドレス領域に固有のメモリ領域を確保するための当該メモリ領域を示すメモリ領域情報の設定が上記マイクロプロセッサから実行可能なように構成されており、この設定に応じて、ディスク記憶システム内の他のコントローラのディスクキャッシュ制御回路に当該メモリ領域情報を専用バスを介して設定する。ここで、上記ディスクキャッシュ制御回路に、以下の機能、即ちホストコンピュータからの入出力要求がライト要求の場合には、マイクロプロセッサから設定されたメモリ領域情報の示すメモリ領域が確保されたことをもって、当該入出力要求で指定されたデータを当該確保されたメモリ領域に書き込むと同時に、当該データを他のコントローラのディスクキャッシュ制御回路に上記専用バスを介して転送することで、当該データを上記他のコントローラのディスクキャッシュ制御回路により上記他のコントローラのディスクキャッシュ上に確保された対応するメモリ領域に書き込ませる機能を持たせるとよい。
【００２０】
このような構成のコントローラにおいては、ホストコンピュータからの入出力（ＩＯ）要求に応じて、当該入出力要求の指定する論理アドレス領域（論理ディスクのディスク領域）に固有のディスクキャッシュメモリ上のメモリ領域を示すメモリ領域情報を自コントローラ内のディスクキャッシュ制御回路に設定し、同時に当該メモリ領域情報を専用バスを介して他のコントローラのディスクキャッシュ制御回路に設定することにより、当該メモリ領域情報の示すメモリ領域を自コントローラ内のディスクキャッシュメモリ上に確保できた場合には、同時に他コントローラでも当該メモリ領域情報の示すメモリ領域を当該他コントローラ内のディスクキャッシュメモリ上に確保できる。これにより、ホストコンピュータからアクセスされる論理ディスク領域の排他制御が、通信制御等による特別の手順を必要とせずに自動的に行われることになる。つまり、各コントローラで当該コントローラ内のディスクキャッシュメモリ上の同一位置のメモリ領域を同時に確保できる構成とすることにより、各コントローラで同一論理ディスクの同一ディスク領域をアクセスするための排他制御を必要とせずに、高速なディスクキャッシュデータの一致化と入出力要求の処理をすることができる。
【００２１】
ここで、上記マイクロプロセッサに以下の機能、即ち他のコントローラに対するホストコンピュータからの入出力要求に応じて当該他のコントローラ内のディスクキャッシュ制御回路により上記専用バスを介して設定されたメモリ領域情報の示すメモリ領域が確保されている状態で、ホストコンピュータからの入出力要求を受け付け、且つ当該受け付けた入出力要求の指定する論理ディスク領域に固有のメモリ領域の少なくとも一部が上記確保されているメモリ領域と共通している場合に、上記他のコントローラに対するホストコンピュータからの入出力要求がライト要求であるならば、上記受け付けた入出力要求がライト要求またはリード要求のいずれであるかに無関係に、上記確保されているメモリ領域が開放されるまで、上記受け付けた入出力要求の指定する論理ディスク領域に固有のメモリ領域を確保するのを待つ機能（排他機能）と、上記他のコントローラに対するホストコンピュータからの入出力要求がリード要求であるならば、上記受け付けた入出力要求がライト要求である場合だけ、上記確保されているメモリ領域が開放されるまで、上記受け付けた入出力要求の指定する論理ディスク領域に固有のメモリ領域を確保するのを待つ機能、言い替えれば、受け付けた入出力要求がリード要求の場合のみ当該メモリ領域を確保できる（共有機能）を持たせるとよい。
【００２２】
このように、ディスクキャッシュメモリ上のメモリ領域の確保を、ホストコンピュータからの入出力要求の種類（リード／ライトの種類）によって制御し、その領域を他からリード／ライトできないようにする排他機能に加え、その領域のリードのみ可能とする共有機能を備えることにより、つまりホストコンピュータからの入出力要求の種類に応じてディスクキャッシュメモリ上のメモリ領域を排他／共有に分類し確保する機能によりホストコンピュータからアクセスされる論理ディスク領域の排他制御を行うことにより、各コントローラに要求される入出力処理を更に高速に実行することが可能となる。
【００２３】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
図１は本発明の一実施形態に係るディスク記憶システムを備えたコンピュータシステムの構成を示すブロック図である。
【００２４】
図１において、ディスク記憶システム１０は、少なくとも１つ、例えばｎ個（ｎは２以上の整数）の論理ディスク１１-1，１１-2，…１１-nと、各論理ディスク１１-1，１１-2，…１１-nと接続された、例えば２つのコントローラ１２-1，１２-2とから構成される。論理ディスク１１-i（ｉ＝１〜ｎ）は後述するホストコンピュータ２０-1，２０-2からは１つのディスク装置に見えるものであり、複数のディスク装置（例えばハードディスクドライブ）から構成されるディスクアレイである。なお、論理ディスク１１-iが１つのディスク装置から構成されるものであっても構わない。
【００２５】
コントローラ１２-1，１２-2は、それぞれディスク記憶システム１０を利用するホストコンピュータ２０-1，２０-2と接続されている。コントローラ１２-1，１２-2は、ホストコンピュータ２０-1，２０-2からのＩＯ（入出力）要求（リード／ライト要求）に応じて当該ホストコンピュータ２０-1，２０-2と論理ディスク１１-iとの間のデータ転送を制御する。つまりディスク記憶システム１０は、コントローラ１２-1，１２-2による二重化コントローラ構成を適用している。コントローラ１２-1，１２-2は、それぞれ、マイクロプロセッサ１２１-1，１２１-2と、ホスト入出力部１２２-1，１２２-2と、ディスク入出力部１２３-1，１２３-2と、ディスクキャッシュ（ディスクキャッシュメモリ）１２４-1，１２４-2と、ディスクキャッシュ制御回路１２５-1，１２５-2と、ＰＣＩバス（Peripheral Component Interconnect Bus）に代表される内部バス１２６-1，１２６-2とを備えている。この内部バス１２６-1，１２６-2には、マイクロプロセッサ１２１-1，１２１-2と、ホスト入出力部１２２-1，１２２-2と、ディスク入出力部１２３-1，１２３-2と、ディスクキャッシュ制御回路１２５-1，１２５-2とが接続されている。
【００２６】
マイクロプロセッサ１２１-1，１２１-2は、コントローラ１２-1，１２-2の中枢をなしており、ホストコンピュータ２０-1，２０-2からのＩＯ要求の実行をＲＯＭ（図示せず）等の不揮発性メモリに格納されている制御プログラムに従って制御する。特にマイクロプロセッサ１２１-1，１２１-2は、ホストコンピュータ２０-1，２０-2からのＩＯ要求を受けた場合に、当該ＩＯ要求で指定される論理ディスク１１-iのディスク領域（ここでは、説明の都合上、ホストコンピュータ２０-1，２０-2から見える論理的なディスク領域、つまり論理ディスク領域を指すものとする）に対応するメモリ領域がディスクキャッシュ１２４-1，１２４-2上に確保されていないならば、そのメモリ領域をディスクキャッシュ制御回路１２５-1，１２５-2を介してディスクキャッシュ１２４-1，１２４-2上に確保する制御を行い、このメモリ領域を確保できたことをもって対応するディスク領域に対するアクセス権を取得する。
【００２７】
ホスト入出力部１２２-1，１２２-2は、ディスク記憶システム１０を利用するホストコンピュータとコントローラ１２-1，１２-2との間の入出力インタフェースをなす。ここでは、ホスト入出力部１２２-1，１２２-2は、それぞれホストコンピュータ２０-1，２０-2との入出力インタフェースとして用いられている。
【００２８】
ディスク入出力部１２３-1，１２３-2は、論理ディスク１１-1〜１１-n（を構成する各ディスク装置）とコントローラ１２-1，１２-2との接続インタフェースをなす。
【００２９】
ディスクキャッシュ１２４-1，１２４-2は、ホストコンピュータ２０-1と論理ディスク１１-iとの間で転送されるデータを一時格納するのに用いられるメモリである。本実施形態において、ホストコンピュータ２０-1，２０-2からコントローラ１２-1，１２-2に与えられるＩＯ要求（入出力要求）は、論理アドレス（開始論理アドレス）とデータサイズの情報を含んでいる。データサイズは、基本のブロックサイズＢＳを最小単位として設定される。つまり、データサイズは、ブロックサイズＢＳの整数倍である。今、データサイズがブロックサイズＢＳのｍ倍（ｍは１以上の整数）であるとすると、論理アドレスは、論理アドレス空間上で連続するｍ個の論理ブロックの先頭ブロックの論理アドレスを示す。ディスクキャッシュ１２４-1，１２４-2の領域は、図２に示すように、ブロックサイズＢＳに一致するブロックＢを単位に管理される。したがって、ＩＯ要求で指定される論理ディスク１１-iのディスク領域に対応するメモリ領域には、当該ディスク領域のサイズがブロックサイズＢＳのｍ倍の場合であれば、ディスクキャッシュ１２４-1，１２４-2上の連続するｍ個のブロックが割り当てられる。ここで、論理アドレスにより指定される論理ブロックとディスクキャッシュ１２４-1，１２４-2上のブロックとは予め対応している。
【００３０】
ディスクキャッシュ制御回路１２５-1，１２５-2は、マイクロプロセッサ１２１-1，１２１-2により設定された、ディスクキャッシュ１２４-1，１２４-2上のメモリ領域へのアクセスを制御する。ディスクキャッシュ制御回路１２５-1，１２５-2間は専用バス１３により相互接続されている。
【００３１】
ディスクキャッシュ制御回路１２５-1，１２５-2は、図３に示すように、送信側のアドレスレジスタ３１、サイズレジスタ３２及びステータスレジスタ３３と、受信側のアドレスレジスタ３４、サイズレジスタ３５及びステータスレジスタ３６とを複数組備えている。アドレスレジスタ３１，３４には、ディスクキャッシュ１２４-1，１２４-2上に確保されるメモリ領域の開始アドレス（先頭ブロックのアドレス）が設定される。サイズレジスタ３２，３５には、ディスクキャッシュ１２４-1，１２４-2上に確保されるメモリ領域のサイズ、つまりブロック数が設定される。ステータスレジスタ３３，３６には、アドレスレジスタ３１，３４とサイズレジスタ３２，３５とで示されるディスクキャッシュ１２４-1，１２４-2上のメモリ領域のステータスが設定される。このステータスの種類には、対応するメモリ領域が、ライト要求で使用（排他使用、確保）されていることを示すライト使用中ステータス、リード要求で使用（確保）されていることを示すリード使用中ステータス、ライト要求での使用待ち状態にあることを示すライト使用待ちステータス、リード要求での使用待ち状態にあることを示すリード使用待ちステータス、ライト要求での使用完了を示すライト使用完了ステータス、リード要求での使用完了を示すリード使用完了ステータスが含まれている。ディスクキャッシュ制御回路１２５-1内の各アドレスレジスタ３１、サイズレジスタ３２及びステータスレジスタ３３の組は、それぞれディスクキャッシュ制御回路１２５-2内の各アドレスレジスタ３４、サイズレジスタ３５及びステータスレジスタ３６の組と対応している。
【００３２】
ディスクキャッシュ制御回路１２５-1，１２５-2内の各アドレスレジスタ３１及びサイズレジスタ３２には、ホストコンピュータ２０-1，２０-2からのＩＯ要求に応じて対応するメモリ領域を示す（メモリ領域情報としての）、それぞれアドレス及びサイズがマイクロプロセッサ１２１-1，１２１-2により設定される。一方、ディスクキャッシュ制御回路１２５-1，１２５-2内のアドレスレジスタ３４及びサイズレジスタ３５には、ディスクキャッシュ制御回路１２５-2，１２５-1内の対応するアドレスレジスタ３１及びサイズレジスタ３２の内容が、マイクロプロセッサ１２１-2，１２１-1による当該内容の設定時に、専用バス１３を介して設定される。
【００３３】
次に本実施形態の動作を、図４乃至図６を参照して説明する。なお、図４はホストコンピュータ２０-1，２０-2からディスク記憶システム１０に対してライト動作を指定するＩＯ要求（ホストＩＯ要求）４１-1，４１-2が与えられた場合の動作説明図、図５はディスクキャッシュ制御回路１２５-1内のアドレスレジスタ３１及びサイズレジスタ３２へのアドレス及びサイズの設定により、そのアドレス及びサイズが、専用バス１３を介してディスクキャッシュ制御回路１２５-2内のアドレスレジスタ３４及びサイズレジスタ３５に設定される様子を説明するための図、図６はライト動作を指定するＩＯライト要求を受け取った際のマイクロプロセッサ１２１-1，１２１-2の処理手順を説明するためのフローチャートである。
【００３４】
今、ホストコンピュータ２０-1，２０-2からディスク記憶システム１０内のコントローラ１２-1，１２-2に対して、論理ディスク１１-iのディスク領域４０へのライト動作を指定するホストＩＯ要求４１-1，４１-2が与えられたものとする。
【００３５】
コントローラ１２-1内のマイクロプロセッサ１２１-1は、ホストコンピュータ２０-1からのホストＩＯ要求４１-1を受け取ると、当該ホストＩＯ要求４１-1で指定されたアクセス対象とする論理ディスク１１-iのディスク領域（アクセス領域）４０に対応するディスクキャッシュ１２４-1上のメモリ領域を指定するアドレス及びサイズを、内部バス１２６-1を介して図５において矢印５１及び５２に示すように、ディスクキャッシュ制御回路１２５-1内の送信側アドレスレジスタ３１及びサイズレジスタ３２に設定する（ステップＳ１）。ここで、メモリ領域を指定するアドレスは、ホストＩＯ要求に含まれる論理アドレスから計算により一意に決定される。
【００３６】
ディスクキャッシュ制御回路１２５-1は、マイクロプロセッサ１２１-1により送信側アドレスレジスタ３１及びサイズレジスタ３２にアドレス及びデータが設定されると、その設定されたアドレス及びデータを、図５において矢印５３及び５４に示すように、専用バス１３を介してディスクキャッシュ制御回路１２５-2に転送し、上記送信側アドレスレジスタ３１及びサイズレジスタ３２に対応する受信側アドレスレジスタ３４及びサイズレジスタ３５に設定させる（ステップＳ１１）。つまり、送信側アドレスレジスタ３１及びサイズレジスタ３２にアドレス及びサイズが設定されると、これに同期して対応する受信側アドレスレジスタ３４及びサイズレジスタ３５にも同一のアドレス及びサイズが設定される。
【００３７】
同様の動作がコントローラ１２-2でも行われる。即ち、ホストＩＯ要求４１-2で指定された論理ディスク１１-iのディスク領域（論理ディスク領域）４０に対応するディスクキャッシュ１２４-2上のメモリ領域を指定するアドレス及びサイズが、ディスクキャッシュ制御回路１２５-2内の送信側アドレスレジスタ３１及びサイズレジスタ３２に設定される。同時に、この送信側アドレスレジスタ３１及びサイズレジスタ３２に設定されたアドレス及びサイズが、ディスクキャッシュ制御回路１２５-1内の対応する受信側アドレスレジスタ３４及びサイズレジスタ３５に専用バス１３を介して設定される。
【００３８】
マイクロプロセッサ１２１-1，１２１-2は、ディスクキャッシュ制御回路１２５-1，１２５-2内の送信側アドレスレジスタ３１及びサイズレジスタ３２にアドレス及びサイズを設定すると、当該レジスタ３１及び３２と組をなすステータスレジスタ３３に“ライト使用待ち”を示すステータスを設定する（ステップＳ２）。つまりマイクロプロセッサ１２１-1，１２１-2は、ホストコンピュータ２０-1，２０-2からのホストＩＯ要求４１-1，４１-2の指定するデータ転送に関し、送信側ステータスを“ライト使用待ち”に設定する。するとディスクキャッシュ制御回路１２５-1，１２５-2は、送信側ステータスレジスタ３３に設定されたステータスを、それぞれ、もう一方のディスクキャッシュ制御回路１２５-2，１２５-1に専用バス１３を介して転送し、上記送信側ステータスレジスタ３３に対応する受信側ステータスレジスタ３６に設定させる（ステップＳ１２）。つまり、送信側ステータスが“ライト使用待ち”に設定されると、これに同期して受信側ステータスも“ライト使用待ち”に自動設定される。
【００３９】
マイクロプロセッサ１２１-j（ｊ＝１，２）は、送信側ステータスを“ライト使用待ち”に設定するとステップＳ３に進む。マイクロプロセッサ１２１-jはステップＳ３において、ステップＳ１で設定したアドレス及びサイズ（からなるメモリ領域情報）で示されるのと同一のメモリ領域を指定する受信側アドレスレジスタ３４及びサイズレジスタ３５の対を検索する（ステップＳ３）。ここでは、複雑な表現を避けるために、便宜的に“ステップＳ１で設定したアドレス及びサイズで示されるのと同一のメモリ領域”と表現しているが、この“同一のメモリ領域”とは、（ディスクキャッシュ１２４-1，１２４-2上の位置が）完全に同一のメモリ領域の他に、一部領域（一部ブロック領域）が共通のメモリ領域も含むものとする。
【００４０】
もし、検索できなかったならば、マイクロプロセッサ１２１-jは、ステップＳ１で設定したアドレス及びサイズで示されるのと同一のメモリ領域を用いたデータ転送が、他のコントローラ側で実行されていないと判断する。つまりマイクロプロセッサ１２１-jは、ホストＩＯ要求４１-jの指定する論理ディスク１１-iのディスク領域と（少なくとも一部が）同一の論理ディスク１１-iのディスク領域へのライトを指定するホストＩＯ要求が、他のコントローラ側で実行されていないと判断する。この場合、マイクロプロセッサ１２１-jはホストＩＯ要求４１-jを実行するためにディスクキャッシュ制御回路１２５-jを起動して当該ホストＩＯ要求４１-jで指定されたデータ転送を行わせる（ステップＳ５）。これにより、ディスクキャッシュ制御回路１２５-jは、当該回路１２５-j内の対応する送信側ステータスレジスタ３３に設定されているステータスを“ライト使用待ち”から“ライト使用中”に切り替える。このことは、“ライト使用中”ステータスに切り替えられたステータスレジスタ３３と組をなす送信側アドレスレジスタ３１及びサイズレジスタ３２により指定されるメモリ領域が確保されたことを意味する。同時に、詳細を後述するように、“ライト使用中”ステータスに切り替えられた送信側ステータスレジスタ３３に対応する他のコントローラのディスクキャッシュ制御回路内の受信側ステータスレジスタ３６に設定されていたステータスも“ライト使用待ち”から“ライト使用中”に切り替えられる（ステップＳ１３）。このことは、“ライト使用中”ステータスに切り替えられたステータスレジスタ３６と組をなす受信側アドレスレジスタ３４及びサイズレジスタ３５により指定されるメモリ領域が確保されたことを意味する。
【００４１】
これに対し、ステップＳ３で目的の受信側アドレスレジスタ３４及びサイズレジスタ３５の対が検索できたならば、マイクロプロセッサ１２１-jは、当該アドレスレジスタ３４及びサイズレジスタ３５と組をなす受信側ステータスレジスタ３６に“ライト使用中”ステータスが設定されているか否かを判定する（ステップＳ６）。もし、受信側ステータスレジスタ３６に“ライト使用中”ステータスが設定されているならば、つまり受信側ステータスが“ライト使用中”ならば、マイクロプロセッサ１２１-jは当該受信側ステータスが“ライト使用完了”となるまで、ホストＩＯ要求４１-jの実行を待つ。
【００４２】
一方、受信側ステータスが“ライト使用中”でない場合には、マイクロプロセッサ１２１-jは受信側ステータスが“ライト使用待ち”であるか否か（ライト使用完了）であるかを判定する（ステップＳ７）。もし、受信側ステータスが“ライト使用待ち”でないならば、つまり“ライト使用完了”であるならば、マイクロプロセッサ１２１-jは上記ステップＳ５に進んでホストＩＯ要求４１-jを実行する。また、受信側ステータスが“ライト使用待ち”であるならば、マイクロプロセッサ１２１-jは、他コントローラが、ホストＩＯ要求４１-jの指定する論理ディスク１１-iのディスク領域と（少なくとも一部が）同一のディスク領域へのライトを指定するホストＩＯ要求の実行待ち状態にあると判断する。この場合、マイクロプロセッサ１２１-jは、自身の方が高優先度に設定されているか否かを判定し（ステップＳ８）、高優先度に設定されているならば、上記ステップＳ５に進んでホストＩＯ要求４１-jを実行する。これに対し、自身の方が低優先度であるならば、マイクロプロセッサ１２１-jは、受信側ステータスが“ライト使用完了”となるまで、ホストＩＯ要求４１-jの実行を待つ。
【００４３】
さて、ホストコンピュータ２０-1，２０-2からディスク記憶システム１０のコントローラ１２-1，１２-2に対して、論理ディスク１１-iのディスク領域４０へのライト動作を指定するホストＩＯ要求４１-1，４１-2が与えられた図４の例では、コントローラ１２-1，１２-2のマイクロプロセッサ１２１-1，１２１-2の両方で、それぞれディスクキャッシュ制御回路１２５-1，１２５-2内の送信側アドレスレジスタ３１及びサイズレジスタ３２に、論理ディスク１１-iのディスク領域４０に対応するディスクキャッシュ１２４-1，１２４-2上のメモリ領域４２-1，４２-2を指定する同一のアドレス及びサイズが設定される（ステップＳ１）。当然、メモリ領域４２-1，４２-2は、ディスクキャッシュ１２４-1，１２４-2上の位置が同一である。また、マイクロプロセッサ１２１-1，１２１-2の両方で、ディスクキャッシュ１２４-1，１２４-2上の位置が同一の上記メモリ領域４２-1，４２-2を指定する受信側アドレスレジスタ３４及びサイズレジスタ３５の対が検索される（ステップＳ３，Ｓ４）。このとき、アドレスレジスタ３４及びサイズレジスタ３５の対に対応するステータスレジスタ３６の示す受信側ステータスは、ディスクキャッシュ制御回路１２５-1，１２５-2のいずれにおいても、“ライト使用待ち”を示している。
【００４４】
ここで、コントローラ１２-1の方がコントローラ１２-2より予め高優先度に設定されているものとすると、コントローラ１２-1のマイクロプロセッサ１２１-1が先にステップＳ５に進んでホストＩＯ要求４１-1の実行を開始する。このときマイクロプロセッサ１２１-1によりディスクキャッシュ制御回路１２５-1が起動される。
【００４５】
すると、（ホストＩＯ要求４１-1の指定する）論理ディスク１１-iのディスク領域４０に対応するディスクキャッシュ１２４-1上のメモリ領域４２-1を指定する、当該回路１２５-1内の送信側アドレスレジスタ３１及びサイズレジスタ３２と組をなすステータスレジスタ３３の示すステータスが“ライト使用待ち”から“ライト使用中”に切り替えられる。これにより、ディスクキャッシュ１２４-1上にメモリ領域４２-1が確保され、ホストＩＯ要求４１-1の指定するデータ（ライトデータ）を当該メモリ領域４２-1にディスクキャッシュ制御回路１２５-1の制御によって書き込むことが可能となる。
【００４６】
このことは、ディスクキャッシュ１２４-1がライトバックキャッシュとして用いられる場合であれば、ディスクキャッシュ１２４-1上のメモリ領域４２-1に書き込まれたデータを、ホストＩＯ要求４１-1で指定された論理ディスク１１-i上のディスク領域４０に適当なタイミングで書き込むライトバックのためのディスクＩＯ要求４３-1を実行する権利（つまり論理ディスク１１-i上のディスク領域４０のアクセス権を）をコントローラ１２-1が獲得したのと等価である。また、ディスクキャッシュ１２４-1がライトスルーキャッシュとして用いられる場合であれば、ディスクキャッシュ１２４-1上のメモリ領域４２-1へのライトデータ書き込み時に、そのライトデータをホストＩＯ要求４１-1で指定された論理ディスク１１-i上のディスク領域４０に書き込む、ライトスルーのためのディスクＩＯ要求４３-1を実行する権利（論理ディスク１１-i上のディスク領域４０のアクセス権）をコントローラ１２-1が獲得したことになる。
【００４７】
さて、ディスクキャッシュ制御回路１２５-1内の送信側アドレスレジスタ３１及びサイズレジスタ３２と組をなすステータスレジスタ３３の示すステータスが“ライト使用待ち”から“ライト使用中”に切り替えられて、ディスクキャッシュ１２４-1上にメモリ領域４２-1が確保されると、ディスクキャッシュ制御回路１２５-1内の送信側ステータスレジスタ３３に対応するディスクキャッシュ制御回路１２５-2内の受信側ステータスレジスタ３６の示すステータスも“ライト使用待ち”から“ライト使用中”に切り替えられる。これにより、ディスクキャッシュ１２４-2上にメモリ領域４２-2が確保されたことになる。
【００４８】
一方、コントローラ１２-2のマイクロプロセッサ１２１-2は、ディスクキャッシュ制御回路１２５-2内の受信側ステータスレジスタ３６により“ライト使用完了”ステータスが示されまで、ホストコンピュータ２０-2からのホストＩＯ要求４１-2の実行の待ち状態となる。
【００４９】
このように本実施形態では、ホストＩＯ要求で指定された論理ディスク１１-i上のディスク領域に対応するディスクキャッシュ上のメモリ領域を確保したと同時に、当該ホストＩＯ要求で指定されたディスク領域にアクセスする権利を排他的に得ることができる。したがって、通信制御等によるＩＯ排他制御を不要とすることができ、ＩＯ排他制御の高速化が可能となる。この高速ＩＯ排他制御により、各ホストコンピュータ２０-1，２０-2からコントローラ１２-1，１２-2にそれぞれ与えられるＩＯ要求を（アクセスすべきディスク領域が異なるならば）複数同時に処理することが可能となり、ディスク記憶システム１０の性能向上に寄与できる。そのため本実施形態では、ディスクキャッシュ制御回路１２５-1，１２５-2内に、送信側のアドレスレジスタ３１、サイズレジスタ３２及びステータスレジスタ３３と受信側アドレスレジスタ３４、サイズレジスタ３５及びステータスレジスタ３６とを、それぞれ複数組備えている。
【００５０】
上述の状態で、ホストコンピュータ２０-1からのホストＩＯ要求４１-1が実行され、ホストコンピュータ２０-1からディスク記憶システム１０のコントローラ１２-1に転送されたデータが、ディスクキャッシュ１２４-1上に確保されたメモリ領域４２-1に、ディスクキャッシュ制御回路１２５-1の制御によって書き込まれる。また、このメモリ領域４２-1へのデータ書き込みと並行して、当該メモリ領域４２-1に書き込まれるデータがディスクキャッシュ制御回路１２５-1により専用バス１３を介してコントローラ１２-2のディスクキャッシュ制御回路１２５-2に転送され、ディスクキャッシュ１２４-2上に確保されたメモリ領域４２-2に書き込まれる。これにより、ディスクキャッシュ１２４-1及び１２４-2間のディスクキャッシュデータの一致化が図られる。
【００５１】
また、ディスクキャッシュ１２４-1上のメモリ領域４２-1に書き込まれたデータを、ホストコンピュータ２０-1からのホストＩＯ要求４１-1で指定された論理ディスク１１-i上のディスク領域４０に書き込むためのディスクＩＯ要求４３-1が実行される。このとき、コントローラ１２-2側では、論理ディスク１１-iのディスク領域４０に対応するディスクキャッシュ１２４-2上のメモリ領域４２-2が、ディスクキャッシュ１２４-1上でのメモリ領域４２-1の確保に同期して既に確保されているため、そのメモリ領域４２-2を必要とするホストＩＯ要求４１-2を実行することはできない。
【００５２】
やがて、コントローラ１２-1側でのホストＩＯ要求４１-1の処理（ステップＳ５）が終了すると、メモリ領域４２-1を指定するディスクキャッシュ制御回路１２５-1内の送信側アドレスレジスタ３１及びサイズレジスタ３２と対をなす送信側ステータスレジスタ３３の示すステータスが“ライト使用完了”に切り替えられる。同時に、ディスクキャッシュ制御回路１２５-1内の送信側ステータスレジスタ３３に対応するディスクキャッシュ制御回路１２５-2内の受信側ステータスレジスタ３６の示すステータスも“ライト使用完了”に切り替えられる（ステップＳ１４）。これにより、ホストＩＯ要求４１-1の実行のためにディスクキャッシュ１２４-1，１２４-2上に確保されたメモリ領域４２-1，４２-2は開放される。
【００５３】
ディスクキャッシュ制御回路１２５-2内の受信側ステータスレジスタ３６の示すステータスが“ライト使用完了”に切り替えられると、そのことがホストＩＯ要求４１-2の実行の待ち状態にあるコントローラ１２-2のマイクロプロセッサ１２１-2により検出される（ステップＳ６，Ｓ７）。するとマイクロプロセッサ１２１-2は、ディスクキャッシュ制御回路１２５-2を制御してホストＩＯ要求４１-2の実行のためにディスクキャッシュ１２４-1上にメモリ領域４２-2を確保する。これは、先のホストＩＯ要求４１-1の実行時から明らかなように、メモリ領域４２-2を指定するディスクキャッシュ制御回路１２５-2内の送信側アドレスレジスタ３１及びサイズレジスタ３２と組をなす送信側ステータスレジスタ３３に設定されているステータスを、“ライト使用待ち”から“ライト使用中”に切り替えることで実現される。この切り替えにより、送信側ステータスレジスタ３３に対応するディスクキャッシュ制御回路１２５-1内の受信側ステータスレジスタ３６に設定されているステータスも、“ライト使用待ち”から“ライト使用中”に切り替えられる。これにより、ディスクキャッシュ１２４-1上にメモリ領域４２-1が改めて確保される。
【００５４】
この状態で、ホストコンピュータ２０-2からのホストＩＯ要求４１-2が実行され、ホストコンピュータ２０-2からディスク記憶システム１０のコントローラ１２-2に転送されたデータが、ディスクキャッシュ１２４-2上に確保されたメモリ領域４２-2に、ディスクキャッシュ制御回路１２５-2の制御によって書き込まれる。また、メモリ領域４２-2へのデータ書き込みと並行して、当該メモリ領域４２-2に書き込まれるデータがディスクキャッシュ制御回路１２５-2により専用バス１３を介してコントローラ１２-1のディスクキャッシュ制御回路１２５-1に転送され、ディスクキャッシュ１２４-1上に確保されたメモリ領域４２-1に書き込まれる。これにより、ディスクキャッシュ１２４-2及び１２４-1間のディスクキャッシュデータの一致化が図られる。
【００５５】
また、ディスクキャッシュ１２４-2上のメモリ領域４２-2に書き込まれたデータを、ホストコンピュータ２０-2からのホストＩＯ要求４１-2で指定された論理ディスク１１-i上のディスク領域４０に書き込むためのディスクＩＯ要求４３-2が実行される。
【００５６】
以上、ホストコンピュータ２０-1，２０-2からの同一のディスク領域４０に対するホストＩＯ要求４１-1，４１-2がいずれもライト要求である場合における、ディスクキャッシュ１２４-1，１２４上のメモリ領域確保を中心に説明した。しかし、ＩＯ要求の種類の組み合わせによっては、上述の説明とは異なるメモリ領域確保が可能である。
【００５７】
即ち本実施形態では、ディスクキャッシュ１２４-1，１２４上のメモリ領域確保を、ホストコンピュータ２０-1，２０-2からのＩＯ要求の種類により、次の２種類で制御するようにしている。この２種類の制御機能を、（i）排他機能、（ii）共有機能と呼ぶ。この排他機能と共有機能とについて、ホストコンピュータ２０-1からのＩＯ要求に応じてディスクキャッシュ１２４-1，１２４-2上にメモリ領域が確保されている状態で、ホストコンピュータ２０-2から当該ＩＯ要求と同一ディスク領域へのアクセスを指定するＩＯ要求がディスク記憶システム１０のコントローラ１２-2に与えられた場合を例に、図７のフローチャートを参照して順に説明する。
【００５８】
（i）排他機能
今、ホストコンピュータ２０-1からディスク記憶システム１０のコントローラ１２-1へのライト要求に応じてディスクキャッシュ１２４-1，１２４-2上にメモリ領域が確保されているものとする。ここでは、ディスクキャッシュ制御回路１２５-1，１２５-2内のアドレスレジスタ３１，３４及びサイズレジスタ３２，３５に、上記メモリ領域を指定するアドレス及びサイズが設定され、ステータスレジスタ３３，３６には“ライト使用中”ステータスが設定されている。
【００５９】
この状態で、ホストコンピュータ２０-2からディスク記憶システム１０のコントローラ１２-2に対し、上記ライト要求と（少なくとも一部が）同一のディスク領域へのアクセスを指定するリードまたはライト要求が与えられたものとする。この場合（ステップＳ２１〜Ｓ２３）、コントローラ１２-2では排他機能が働き、ホストコンピュータ２０-2からのコントローラ１２-2への如何なるリード／ライト要求であっても、ホストコンピュータ２０-1からコントローラ１２-1へのライト要求によって確保されているメモリ領域と（少なくとも一部が）同一のメモリ領域をディスクキャッシュ１２４-2（及び１２４-1）上に確保することはできない（ステップＳ２４）。つまり、ホストコンピュータ２０-2からのコントローラ１２-2へのリードまたはライト要求の実行は、ホストコンピュータ２０-1からコントローラ１２-1へのライト要求によって確保されているメモリ領域が開放されるまで、即ち当該領域のステータスが“ライト使用中”から“ライト使用完了”に切り替えられるまで待たされる。
【００６０】
（ii）共有機能
今、ホストコンピュータ２０-1からディスク記憶システム１０のコントローラ１２-1へのリード要求に応じてディスクキャッシュ１２４-1，１２４-2上にメモリ領域が確保されているものとする。ここでは、ディスクキャッシュ制御回路１２５-1，１２５-2内のアドレスレジスタ３１，３４及びサイズレジスタ３２，３５に、上記メモリ領域を指定するアドレス及びサイズが設定され、ステータスレジスタ３３，３６には“リード使用中”ステータスが設定されている。但し、コントローラ１２-1へのリード要求に応じてディスクキャッシュ１２４-1，１２４-2上にメモリ領域が確保されている場合、ディスクキャッシュ１２４-2上のメモリ領域は実際には（当該領域からのデータ読み出しに）使用されない。
【００６１】
この状態で、ホストコンピュータ２０-2からディスク記憶システム１０のコントローラ１２-2に対し、上記リード要求と（少なくとも一部が）同一のディスク領域へのアクセスを指定するＩＯ要求が与えられたものとする。この場合（ステップＳ２１〜Ｓ２３）、コントローラ１２-2では共有機能が働き、ホストコンピュータ２０-2からのコントローラ１２-2へのＩＯ要求がリード要求であるならば（ステップＳ２５）、ホストコンピュータ２０-1からコントローラ１２-1へのリード要求によって確保されている（ステータスが“リード使用中”の）メモリ領域と（少なくとも一部が）同一のメモリ領域をディスクキャッシュ１２４-2（及び１２４-1）上に直ちに確保することができる（ステップＳ２６）。これに対し、ホストコンピュータ２０-2からのコントローラ１２-2へのＩＯ要求がライト要求であるならば（ステップＳ２５）、ホストコンピュータ２０-1からコントローラ１２-1へのリード要求によって確保されている（ステータスが“リード使用中”の）メモリ領域と（少なくとも一部が）同一のメモリ領域をディスクキャッシュ１２４-2（及び１２４-1）上に確保することはできない（ステップＳ２４）。つまり、ホストコンピュータ２０-2からのコントローラ１２-2へのライト要求の実行は、ホストコンピュータ２０-1からコントローラ１２-1へのリード要求によって確保されているメモリ領域が開放されるまで、即ち当該領域のステータスが“リード使用中”から“リード使用完了”に切り替えられるまで待たされる。
【００６２】
以上に述べた実施形態では、ディスク記憶システム１０の各コントローラ１２-1，１２-2には、それぞれ１台のホストコンピュータ２０-1，２０-2が接続されているものとした。しかし本発明は、各コントローラ１２-1，１２-2に、それぞれ複数のホストコンピュータが接続された構成であっても同様に適用可能である。但し、同一コントローラに接続された複数のホストコンピュータから（少なくとも一部が）同一のディスク領域へのアクセスを指定するＩＯ要求が与えられる可能性もあることから、この同一コントローラに接続された複数のホストコンピュータ間でもアクセスの排他を制御する必要がある。そのためには、ステップＳ３で送信側のアドレスレジスタ３１及びサイズレジスタ３２も検索の対象とすればよい。また、各ホストコンピュータがコントローラ１２-1及び１２-2のいずれに対してもＩＯ要求が与えられる接続構成を適用することも可能である。このような接続構成は、例えばディスク記憶システム１０のコントローラ１２-1，１２-2と各ホストコンピュータとをＬＡＮ等のネットワークで接続することで実現される。また、コントローラが多重化された構成であっても構わない。
【００６３】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【００６４】
【発明の効果】
以上詳述したように本発明によれば、ディスクキャッシュ上のメモリ領域の確保によって、同時に論理ディスクのアクセス領域を排他することができるため、通信制御等によるＩＯ排他制御を不要とすることができる。よって、排他制御を円滑に行って、ＩＯ要求を高速に処理できる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るディスク記憶システムを備えたコンピュータシステムの構成を示すブロック図。
【図２】図１中のディスクキャッシュ１２４-1，１２４-2の領域が、一定サイズのブロックＢを単位に管理されることを説明するための図。
【図３】図１中のディスクキャッシュ制御回路１２５-1，１２５-2に設けられたレジスタ群を示す図。
【図４】同実施形態において、ホストコンピュータ２０-1，２０-2からディスク記憶システム１０に対してライト動作を指定するＩＯ要求４１-1，４１-2が与えられた場合の動作説明図。
【図５】同実施形態において、ディスクキャッシュ制御回路１２５-1内のアドレスレジスタ３１及びサイズレジスタ３２へのアドレス及びサイズの設定により、そのアドレス及びサイズが、専用バス１３を介してディスクキャッシュ制御回路１２５-2内のアドレスレジスタ３４及びサイズレジスタ３５に設定される様子を説明するための図
【図６】同実施形態において、ライト動作を指定するＩＯライト要求を受け取った際のマイクロプロセッサ１２１-1，１２１-2の処理手順を説明するためのフローチャート。
【図７】ディスクキャッシュ１２４-1，１２４上のメモリ領域確保を、ホストコンピュータ２０-1，２０-2からのＩＯ要求の種類により制御する手順を説明するためのフローチャート。
【符号の説明】
１０…ディスク記憶システム
１１-1〜１１-n，１１-i…論理ディスク
１２-1，１２-2…コントローラ
１３…専用バス
２０-1，２０-2…ホストコンピュータ
３１…送信側アドレスレジスタ
３２…送信側サイズレジスタ
３３…送信側ステータスレジスタ
３４…受信側アドレスレジスタ
３５…受信側サイズレジスタ
３６…受信側ステータスレジスタ
４２-1，４２-2…メモリ領域
１２１-1，１２１-2…マイクロプロセッサ
１２４-1，１２４-2…ディスクキャッシュ
１２５-1，１２５-2…ディスクキャッシュ制御回路
【図１】
0003719976.tif 000002
【図２】
0003719976.tif 000003
【図３】
0003719976.tif 000004
【図４】
0003719976.tif 000005
【図５】
0003719976.tif 000006
【図６】
0003719976.tif 000007
【図７】
0003719976.tif 000008