(57)【要約】【課題】  コントローラを二台搭載した記憶制御システムよりも処理能力の高い記憶制御システムを提供する。【解決手段】  記憶制御システム（１２０）は、第一記憶装置（２４Ａ）に第一アクセス経路（２２Ａ）を介して接続された第一コントローラ（５Ａ）と、第二記憶装置（２４Ｃ）に第二アクセス経路（２２Ｅ）を介して接続された第二コントローラ（２４Ｂ）と、第一記憶装置に第三アクセス経路（２２Ｂ）を介して接続された第三コントローラ（２４Ｃ）と、第二記憶装置に第四アクセス経路（２２Ｆ）を介して接続された第四コントローラ（２４Ｄ）とを備える。例えば、第一コントローラは、ホスト装置から受信したアクセス命令に従うアクセス先が第二記憶装置である場合には、アクセス依頼を第二コントローラに出力する。第二コントローラは、そのアクセス依頼に従って、第二のアクセス経路を介して第二記憶装置へアクセスする。【選択図】図１
2006318152.tif 000002
【特許請求の範囲】
【請求項１】
一以上の第一記憶装置に第一アクセス経路を介して接続された第一コントローラと、
一以上の第二記憶装置に第二アクセス経路を介して接続された第二コントローラと、
前記一以上の第一記憶装置に第三アクセス経路を介して接続された第三コントローラと、
前記一以上の第二記憶装置に第四アクセス経路を介して接続された第四コントローラと
を備え、
前記第一コントローラが、前記第二コントローラと、アクセス命令を送信するホスト装置とに接続されており、前記ホスト装置から前記アクセス命令を受信し、前記アクセス命令に従うアクセス先が第二記憶装置である場合には、前記第二記憶装置にアクセスすることの依頼であるアクセス依頼を前記第二コントローラに出力し、
前記第二コントローラは、前記第一コントローラからのアクセス依頼に応答して、前記アクセス依頼に従って、前記第二のアクセス経路を介して前記第二記憶装置へアクセスし、
前記第三コントローラが、前記第四コントローラと、前記ホスト装置とに接続されており、前記ホスト装置から前記アクセス命令を受信し、前記アクセス命令に従うアクセス先が第二記憶装置である場合には、前記第二記憶装置にアクセスすることの依頼であるアクセス依頼を前記第四コントローラに出力し、
前記第四コントローラは、前記第三コントローラからのアクセス依頼に応答して、前記アクセス依頼に従って、前記第四のアクセス経路を介して前記第二記憶装置へアクセスする、
記憶制御システム。
【請求項２】
前記第一コントローラは、前記第二コントローラと前記第四コントローラの両方に接続されており、前記アクセス命令に従うアクセス先が第二記憶装置である場合には、前記第二コントローラと前記第四コントローラのうちの負荷の小さい方を選択し、選択したコントローラに、前記アクセス依頼を出力する、
請求項１記載の記憶制御システム。
【請求項３】
前記第二のコントローラ及び前記第四のコントローラは、それぞれ、データを記憶することができるメモリを備え、自分が受信したアクセス命令のうちの未処理のアクセス命令の数を前記メモリに蓄積し、
前記第一コントローラは、前記メモリに蓄積されている前記数が少ない方のコントローラを選択する、
請求項２記載の記憶制御システム。
【請求項４】
前記第一コントローラは、各コントローラ毎のアクセス可能な記憶装置に関する情報を記憶し、前記情報を参照することにより、前記アクセス命令に従うアクセス先が、前記第一記憶装置と前記第二記憶装置とのどちらであるかを判断する、
請求項１記載の記憶制御システム。
【請求項５】
前記第一乃至第四のコントローラの各々は、データを記憶することができるメモリと、前記メモリに記憶されたデータをデータ転送パスを介して別のメモリに転送することを制御する転送制御部とを備え、
各メモリは、前記第一のコントローラがアクセス可能な第一記憶装置に関する情報である第一のアクセス制御情報を記憶する第一のメモリ領域と、前記第二のコントローラがアクセス可能な第二記憶装置に関する情報である第二のアクセス制御情報を記憶する第二のメモリ領域と、前記第三のコントローラがアクセス可能な第一記憶装置に関する情報である第三のアクセス制御情報を記憶する第三のメモリ領域と、前記第四のコントローラがアクセス可能な第二記憶装置に関する情報である第四のアクセス制御情報を記憶する第四のメモリ領域とを有し、
前記第一乃至第四のコントローラの各々は、自分に対応したメモリ領域に、自分がアクセス可能な記憶装置に関する情報である前記アクセス制御情報を書き込み、
各転送制御部は、自分を備えるコントローラに対応したメモリ領域にアクセス制御情報が書き込まれた場合には、そのアクセス制御情報を、そのメモリ領域に対応した、別のメモリにおけるメモリ領域にも、前記データ転送パスを介して書き込む、
請求項４記載の記憶制御システム。
【請求項６】
前記第一のコントローラは、データを記憶することができる第一のメモリと、データの転送を制御する第一の転送制御部とを備え、
前記第二のコントローラは、データを記憶することができる第二のメモリと、データの転送を制御し、データ転送パスを介して前記第一転送制御部に接続された第二の転送制御部とを備え、
前記第一のコントローラ又は前記第二のコントローラは、自分が備えるメモリにデータを書き込み、且つ、そのデータを、前記第一の転送制御部と前記第二の転送制御部とにより、前記データ転送パスを介して自分が備えない別のメモリにも書き込む、
請求項１記載の記憶制御システム。
【請求項７】
前記第一アクセス制御部と前記一以上の第一記憶装置との間には、第一のスイッチ装置が備えられ、
前記第二アクセス制御部と前記一以上の第二記憶装置との間には、前記第一のスイッチ装置に別のデータ転送パスを介して接続された第二のスイッチ装置が備えられ、
前記第二のコントローラは、前記第二スイッチ装置を制御し、前記第一のスイッチ装置及び前記第一のアクセス経路を介して前記第一記憶装置にアクセスする、
請求項６記載の記憶制御システム。
【請求項８】
前記第二のコントローラは、前記ホスト装置に接続されており、前記一以上の第二記憶装置にアクセスすることができなくなったことを検出し、それを検出した場合に、前記ホスト装置から第一記憶装置にアクセスすることのアクセス命令を受信したならば、前記第二スイッチ装置を制御し、前記第一のスイッチ装置及び前記第一のアクセス経路を介して前記第一記憶装置にアクセスする、
請求項７記載の記憶制御システム。
【請求項９】
一以上の第一記憶装置に第一ファイバチャネルループを介して接続された第一コントローラと、
一以上の第二記憶装置に第二ファイバチャネルループを介して接続された第二コントローラと、
前記一以上の第一記憶装置に第三ファイバチャネルループを介して接続された第三コントローラと、
前記一以上の第二記憶装置に第四ファイバチャネルループを介して接続された第四コントローラと
を備え、
前記第一コントローラが、前記第二コントローラ及び前記第四コントローラと、アクセス命令を送信するホスト装置とに接続されており、各コントローラがどの記憶装置にアクセス可能かに関する情報であるアクセス制御情報を記憶しており、前記ホスト装置から前記アクセス命令を受信し、前記アクセス制御情報を参照することにより、前記アクセス命令に従うアクセス先が第二記憶装置である場合には、前記第二記憶装置にアクセス可能なコントローラが前記第二コントローラ及び前記第四コントローラであることを判別し、前記判別された第二コントローラと第四コントローラのうち、負荷の小さい方を選択し、選択したコントローラに、前記第二記憶装置にアクセスすることの依頼であるアクセス依頼を出力し、
前記アクセス依頼を受信した前記第二コントローラ又は前記第四コントローラは、前記第一コントローラからのアクセス依頼に応答して、前記アクセス依頼に従って、前記第二のファイバチャネルループ又は前記第四のファイバチャネルループを介して前記第二記憶装置へアクセスする、
記憶制御システム。
【請求項１０】
一以上の第一記憶装置に第一アクセス経路を介して接続された第一コントローラが、アクセス命令を送信するホスト装置から前記アクセス命令を受信するステップと、
前記第一コントローラが、前記アクセス命令に従うアクセス先が第二記憶装置である場合には、前記第二記憶装置にアクセスすることの依頼であるアクセス依頼を、一以上の第二記憶装置に第二アクセス経路を介して接続された第二コントローラに出力するステップと、
前記第二コントローラが、前記第一コントローラからのアクセス依頼に応答して、前記アクセス依頼に従って、前記第二のアクセス経路を介して前記第二記憶装置へアクセスするステップと、
前記一以上の第一記憶装置に第三アクセス経路を介して接続された第三コントローラが、前記ホスト装置から前記アクセス命令を受信するステップと、
前記第三コントローラが、前記アクセス命令に従うアクセス先が第二記憶装置である場合には、前記一以上の第二記憶装置に第四アクセス経路を介して接続された第四コントローラに前記アクセス依頼を出力するステップと、
前記第四コントローラは、前記第三コントローラからのアクセス依頼に応答して、前記アクセス依頼に従って、前記第四のアクセス経路を介して前記第二記憶装置へアクセスするステップと
を有する記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の記憶装置へのアクセスを制御するための技術に関する。
【背景技術】
【０００２】
複数のディスクドライブを備えた記憶制御システムとして、例えば、特開２００３−１５０３１８号公報に開示の記憶制御システムが知られている。その記憶制御システムでは、複数のディスク装置へのアクセスを制御するディスクアレイコントローラが二台搭載されている。
【０００３】
【特許文献１】特開２００３−１５０３１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述した技術によれば、記憶制御システムに二台のコントローラが搭載されているが、その記憶制御システムよりも処理能力の高い記憶制御システムの登場がユーザに望まれていると考えられる。
【０００５】
従って、本発明の目的は、二台のコントローラを用いた記憶制御システム及び方法よりも処理能力の高い記憶制御システム及び方法を提供することにある。
【０００６】
本発明の他の目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【０００７】
本発明の第一の側面に従う記憶制御システムは、一以上の第一記憶装置に第一アクセス経路を介して接続された第一コントローラと、一以上の第二記憶装置に第二アクセス経路を介して接続された第二コントローラと、前記一以上の第一記憶装置に第三アクセス経路を介して接続された第三コントローラと、前記一以上の第二記憶装置に第四アクセス経路を介して接続された第四コントローラとを備える。
【０００８】
前記第一コントローラが、前記第二コントローラと、アクセス命令を送信するホスト装置とに接続されており、前記ホスト装置から前記アクセス命令を受信し、前記アクセス命令に従うアクセス先が第二記憶装置である場合には、前記第二記憶装置にアクセスすることの依頼であるアクセス依頼を前記第二コントローラに出力する。前記第二コントローラは、前記第一コントローラからのアクセス依頼に応答して、前記アクセス依頼に従って、前記第二のアクセス経路を介して前記第二記憶装置へアクセスする。なお、ここで、例えば、第一コントローラが第一のメモリを備え、第二コントローラが第二のメモリを備え、第一メモリと第二メモリとの間にメモリ間パスが形成されている場合、第一コントローラが、ホスト装置から書き込み対象のデータを受信し、受信したデータを第一のメモリに書き、且つ、そのデータを、メモリ間パスを介して第二のメモリに書くことができる。その場合、第二のコントローラは、第二のメモリに書き込まれたデータを取得し、そのデータを、第二のアクセス経路を介して第二記憶装置に書き込むことができる。
【０００９】
前記第三コントローラが、前記第四コントローラと、前記ホスト装置とに接続されており、前記ホスト装置から前記アクセス命令を受信し、前記アクセス命令に従うアクセス先が第二記憶装置である場合には、前記第二記憶装置にアクセスすることの依頼であるアクセス依頼を前記第四コントローラに出力する。前記第四コントローラは、前記第三コントローラからのアクセス依頼に応答して、前記アクセス依頼に従って、前記第四のアクセス経路を介して前記第二記憶装置へアクセスする。
【００１０】
この記憶制御システムの第一の実施態様では、前記第一コントローラは、前記第二コントローラと前記第四コントローラの両方に接続されており、前記アクセス命令に従うアクセス先が第二記憶装置である場合には、前記第二コントローラと前記第四コントローラのうちの負荷の小さい方を選択し、選択したコントローラに、前記アクセス依頼を出力する。
【００１１】
この記憶制御システムの第二の実施態様では、前記第一の実施態様において、前記第二のコントローラ及び前記第四のコントローラは、それぞれ、データを記憶することができるメモリを備え、自分が受信したアクセス命令のうちの未処理のアクセス命令の数を前記メモリに蓄積することができる。この場合、前記第一コントローラは、前記メモリに蓄積されている前記数が少ない方のコントローラを選択することができる。
【００１２】
この記憶制御システムの第三の実施態様では、前記第一コントローラは、各コントローラ毎のアクセス可能な記憶装置に関する情報を記憶し、前記情報を参照することにより、前記アクセス命令に従うアクセス先が、前記第一記憶装置と前記第二記憶装置とのどちらであるかを判断することができる。
【００１３】
この記憶制御システムの第四の実施態様では、前記第三の実施態様において、前記第一乃至第四のコントローラの各々は、データを記憶することができるメモリと、前記メモリに記憶されたデータをデータ転送パスを介して別のメモリに転送することを制御する転送制御部とを備える。各メモリは、前記第一のコントローラがアクセス可能な第一記憶装置に関する情報である第一のアクセス制御情報を記憶する第一のメモリ領域と、前記第二のコントローラがアクセス可能な第二記憶装置に関する情報である第二のアクセス制御情報を記憶する第二のメモリ領域と、前記第三のコントローラがアクセス可能な第一記憶装置に関する情報である第三のアクセス制御情報を記憶する第三のメモリ領域と、前記第四のコントローラがアクセス可能な第二記憶装置に関する情報である第四のアクセス制御情報を記憶する第四のメモリ領域とを有する。前記第一乃至第四のコントローラの各々は、自分に対応したメモリ領域に、自分がアクセス可能な記憶装置に関する情報である前記アクセス制御情報を書き込む。各転送制御部は、自分を備えるコントローラに対応したメモリ領域にアクセス制御情報が書き込まれた場合には、そのアクセス制御情報を、そのメモリ領域に対応した、別のメモリにおけるメモリ領域にも、前記データ転送パスを介して書き込む。
【００１４】
この記憶制御システムの第五の実施態様では、前記第一のコントローラは、データを記憶することができる第一のメモリと、データの転送を制御する第一の転送制御部とを備える。前記第二のコントローラは、データを記憶することができる第二のメモリと、データの転送を制御し、データ転送パスを介して前記第一転送制御部に接続された第二の転送制御部とを備える。前記第一のコントローラ又は前記第二のコントローラは、自分が備えるメモリにデータを書き込み、且つ、そのデータを、前記第一の転送制御部と前記第二の転送制御部とにより、前記データ転送パスを介して自分が備えない別のメモリにも書き込む。
【００１５】
具体的には、例えば、前記第一のコントローラは、前記アクセス命令がリード命令の場合、前記第二のコントローラにデータのリードを依頼する。前記第二のコントローラは、前記依頼に応答して、第二記憶装置から前記第二アクセス経路を介してデータを読み出し、前記読み出したデータを、前記第二メモリに書き込み、且つ、前記第二転送制御部及び前記第一転送制御部を制御して、前記第二メモリに書き込んだデータを前記データ転送パスを介して前記第一メモリに書き込む。前記第一のコントローラは、前記第一メモリに書き込まれたデータを前記ホスト装置に送信する。
【００１６】
また、例えば、前記第一のコントローラは、前記アクセス命令がライト命令の場合、ホスト装置からデータを受信して前記第一メモリに書き込み、且つ、前記第二転送制御部及び前記第一転送制御部を制御して、前記第一メモリに書き込んだデータを前記データ転送パスを介して前記第二メモリに書き込む。前記第二のコントローラは、前記第二メモリに書き込まれたデータを前記第二記憶装置に書き込む。
【００１７】
第一のコントローラは、第一メモリにメモリ領域を確保し、確保したメモリ領域にデータを書き込むことができる。第一のコントローラは、確保したメモリ領域を、所定のタイミング、例えば、アクセス命令がリード命令の場合は、第一メモリに書き込まれたデータをホスト装置に送信したときに開放することができ、また、アクセス命令がライト命令の場合は、データを第二記憶装置に書き込んだことの通知を第二のコントローラから受信したときに開放することができる。
【００１８】
この第五の実施態様では、前記第一のコントローラの構成を前記第三のコントローラに適用し、前記第二のコントローラの構成を前記第四のコントローラに適用することができる。
【００１９】
この記憶制御システムの第六の実施態様では、前記第五の実施態様において、前記第一アクセス制御部と前記一以上の第一記憶装置との間には、第一のスイッチ装置が備えられ、前記第二アクセス制御部と前記一以上の第二記憶装置との間には、前記第一のスイッチ装置に別のデータ転送パスを介して接続された第二のスイッチ装置が備えられる。この場合、前記第二のコントローラは、前記第二スイッチ装置を制御し、前記第一のスイッチ装置及び前記第一のアクセス経路を介して前記第一記憶装置にアクセスすることができる。
【００２０】
この記憶制御システムの第七の実施態様では、前記第六の実施態様において、前記第二のコントローラは、前記ホスト装置に接続されており、前記一以上の第二記憶装置にアクセスすることができなくなったことを検出し、それを検出した場合に、前記ホスト装置から第一記憶装置にアクセスすることのアクセス命令を受信したならば、前記第二スイッチ装置を制御し、前記第一のスイッチ装置及び前記第一のアクセス経路を介して前記第一記憶装置にアクセスすることができる。
【００２１】
本発明の第二の側面に従う記憶制御システムは、一以上の第一記憶装置に第一ファイバチャネルループを介して接続された第一コントローラと、一以上の第二記憶装置に第二ファイバチャネルループを介して接続された第二コントローラと、前記一以上の第一記憶装置に第三ファイバチャネルループを介して接続された第三コントローラと、前記一以上の第二記憶装置に第四ファイバチャネルループを介して接続された第四コントローラとを備える。
【００２２】
前記第一コントローラが、前記第二コントローラ及び前記第四コントローラと、アクセス命令を送信するホスト装置とに接続されている。また、前記第一コントローラが、各コントローラがどの記憶装置にアクセス可能かに関する情報であるアクセス制御情報を記憶している。また、前記第一コントローラが、前記ホスト装置から前記アクセス命令を受信し、前記アクセス制御情報を参照することにより、前記アクセス命令に従うアクセス先が第二記憶装置である場合には、前記第二記憶装置にアクセス可能なコントローラが前記第二コントローラ及び前記第四コントローラであることを判別することができる。また、前記第一コントローラが、前記判別された第二コントローラと第四コントローラのうち、負荷の小さい方を選択し、選択したコントローラに、前記第二記憶装置にアクセスすることの依頼であるアクセス依頼を出力することができる。
【００２３】
前記アクセス依頼を受信した前記第二コントローラ又は前記第四コントローラは、前記第一コントローラからのアクセス依頼に応答して、前記アクセス依頼に従って、前記第二のファイバチャネルループ又は前記第四のファイバチャネルループを介して前記第二記憶装置へアクセスすることができる。
【００２４】
本発明の第三の側面に従う記憶制御方法は、以下の（Ａ）乃至（Ｆ）のステップを有する。
（Ａ）一以上の第一記憶装置に第一アクセス経路を介して接続された第一コントローラが、アクセス命令を送信するホスト装置から前記アクセス命令を受信する。
（Ｂ）前記第一コントローラが、前記アクセス命令に従うアクセス先が第二記憶装置である場合には、前記第二記憶装置にアクセスすることの依頼であるアクセス依頼を、一以上の第二記憶装置に第二アクセス経路を介して接続された第二コントローラに出力する。
（Ｃ）前記第二コントローラが、前記第一コントローラからのアクセス依頼に応答して、前記アクセス依頼に従って、前記第二のアクセス経路を介して前記第二記憶装置へアクセスする。
（Ｄ）前記一以上の第一記憶装置に第三アクセス経路を介して接続された第三コントローラが、前記ホスト装置から前記アクセス命令を受信する。
（Ｅ）前記第三コントローラが、前記アクセス命令に従うアクセス先が第二記憶装置である場合には、前記一以上の第二記憶装置に第四アクセス経路を介して接続された第四コントローラに前記アクセス依頼を出力する。
（Ｆ）前記第四コントローラは、前記第三コントローラからのアクセス依頼に応答して、前記アクセス依頼に従って、前記第四のアクセス経路を介して前記第二記憶装置へアクセスする。
【発明の効果】
【００２５】
本発明によれば、二台のコントローラを用いた記憶制御システム及び方法よりも処理能力の高い記憶制御システム及び方法を提供することができる。
【発明を実施するための最良の形態】
【００２６】
以下、図面を参照して、本発明の一実施形態について説明する。
【００２７】
図１は、本発明の一実施形態に係る記憶制御システムの構成を示す。なお、以下の説明では、同種の要素が複数個存在する場合には、各要素を、親番号と枝符号との組み合わせで指すこともあるし、親番号だけで指すこともある。親番号だけで指す場合には、複数の同種の要素のうちの少なくとも一つの要素を指すものとする。
【００２８】
本実施形態に係る記憶制御システム１００は、例えば、複数の記憶装置がアレイ状に配列されたＲＡＩＤ（Redundant Arrays of Inexpensive Disks）システムである。記憶制御システム１００には、多重化されたコントローラ（以下、「ＣＴＬ」と略記する場合あり）５Ａ、５Ｂ、５Ｃ及び５Ｄと、複数（例えば２つ）の記憶装置グループ筐体２１Ａ及び２１Ｂとが備えられる。各記憶装置グループ筐体２１には、複数の記憶装置２４が備えられる。記憶装置２４としては、例えば、ハードディスク、ＤＶＤ（Digital Versatile Disk）等の光ディスク、磁気テープ記録媒体、或いは半導体メモリを採用することができる。
【００２９】
各コントローラ５は、所定のプロトコルに従うアクセス経路、例えば、ＦＣ−ＡＬ（Fiber Channel Arbitration Loop、以下、ファイバチャネルループと言う）２２を介して、所定の記憶装置２４にアクセス可能に接続され、その記憶装置２４へのアクセスを制御する。各記憶装置２４へのアクセス経路は、二重化されている。
【００３０】
具体的には、例えば、コントローラ５Ａは、ファイバチャネルループ２２Ａを介して一以上の記憶装置２４Ａにアクセスすることが可能になっており、且つ、ファイバチャネルループ２２Ｃを介して一以上の記憶装置２４Ｂにアクセスすることが可能になっている。コントローラ５Ａは、Ｉ／Ｏ要求（入出力要求、例えば、データの書き込み要求又はデータの読み出し要求）を送信するホスト装置１ＡからＩ／Ｏ要求を受信した場合、受信したＩ／Ｏ要求に従うアクセス先が記憶装置２４Ａ又は２４Ｂであれば、ファイバチャネルループ２２Ａ又は２２Ｃを介して記憶装置２４Ａ又は２４Ｂにアクセスすることができる。なお、コントローラ５Ａは、Ｉ／Ｏ要求を、通信ネットワーク（例えば、ＳＡＮ（Storage Area Network））又は専用線等を介して受信することができる（これは、他のホスト装置及びコントローラについても同様である）。また、記憶装置２４Ａ及び２４Ｂは、同一の記憶装置グループ筐体２１Ａに収納することができる。
【００３１】
また、例えば、コントローラ５Ｂは、ファイバチャネルループ２２Ｅを介して一以上の記憶装置２４Ｃにアクセスすることが可能になっており、且つ、ファイバチャネルループ２２Ｇを介して一以上の記憶装置２４Ｄにアクセスすることが可能になっている。コントローラ５Ｂは、ホスト装置１ＢからＩ／Ｏ要求を受信した場合、受信したＩ／Ｏ要求に従うアクセス先が記憶装置２４Ｃ又は２４Ｄであれば、ファイバチャネルループ２２Ｅ又は２２Ｇを介して記憶装置２４Ｃ又は２４Ｄにアクセスすることができる。なお、記憶装置２４Ｃ及び２４Ｄは、別の同一の記憶装置グループ筐体２１Ｂに収納することができる。記憶装置グループ筐体２１Ａと２１Ｂとは、互いに接続されておらず、別々に存在する。
【００３２】
また、例えば、コントローラ５Ｃは、ファイバチャネルループ２２Ｂを介して一以上の記憶装置２４Ａにアクセスすることが可能になっており、且つ、ファイバチャネルループ２２Ｄを介して一以上の記憶装置２４Ｂにアクセスすることが可能になっている。コントローラ５Ｂは、ホスト装置１ＣからＩ／Ｏ要求を受信した場合、受信したＩ／Ｏ要求に従うアクセス先が記憶装置２４Ａ又は２４Ｂであれば、ファイバチャネルループ２２Ｂ又は２２Ｄを介して記憶装置２４Ａ又は２４Ｂにアクセスすることができる。
【００３３】
また、例えば、コントローラ５Ｄは、ファイバチャネルループ２２Ｆを介して一以上の記憶装置２４Ｃにアクセスすることが可能になっており、且つ、ファイバチャネルループ２２Ｈを介して一以上の記憶装置２４Ｄにアクセスすることが可能になっている。コントローラ５Ｄは、ホスト装置１ＤからＩ／Ｏ要求を受信した場合、受信したＩ／Ｏ要求に従うアクセス先が記憶装置２４Ｃ又は２４Ｄであれば、ファイバチャネルループ２２Ｆ又は２２Ｈを介して記憶装置２４Ｃ又は２４Ｄにアクセスすることができる。
【００３４】
以上が、記憶制御システム１００の構成の概要である。なお、一台のホスト装置１に複数のコントローラ５が接続されても良いし、或いは、一つのコントローラ５に、複数台のホスト装置１が接続されても良い。
【００３５】
以下、この記憶制御システム１００の構成についてより詳細に説明する。
【００３６】
コントローラ５Ａ、５Ｂ、５Ｃ及び５Ｄは、特徴が同じなので、コントローラ５Ａを代表的に例に採り説明し、適宜、他のコントローラ５Ｂ、５Ｃ又は５Ｄの構成についても説明する。コントローラ５Ａには、プロトコルチップ３Ａと、キャッシュメモリ（以下、「ＣＭ」と略記する場合有り）１１Ａと、ディスク制御部１３Ａと、転送制御部７Ａとが備えられる。
【００３７】
プロトコルチップ３Ａは、記憶制御システム１００のホスト装置（例えばパーソナルコンピュータ或いはサーバマシン）１Ａとの間で行われる通信のプロトコルを制御する。
【００３８】
ＣＭ１１Ａは、ホスト装置１Ａと記憶制御システム１００との間でやり取りされるデータを一時的に記憶する。また、ＣＭ１１Ａは、各ＣＴＬ５用の後述するアクセステーブルを記憶することもできる。ＣＭ１１Ａの構成については、後に詳述する。
【００３９】
ディスク制御部１３Ａは、後述のＭＰ（マイクロプロセッサ）５０からの制御の下、ファイバチャネルループ２２Ａ又は２２Ｃを介して、記憶装置２４Ａ又は２４Ｂにアクセスする。
【００４０】
転送制御部７Ａは、ホスト装置１Ａから受信した書き込み対象のデータ（以下、ライトデータ）の転送の制御や、記憶装置２４から読み出されたデータ（以下、リードデータ）の転送の制御などを行うものである。転送制御部７Ａは、例えば、ＣＴＬ検出信号線（図示せず）と、キャッシュ間パス５２Ａとを介して、ＣＴＬ５Ａがファイバチャネルループ２２Ａ及び２２Ｃを介してアクセスすることのできない記憶装置２４Ｃ、２４Ｄに接続されている別のＣＴＬ５Ｂの転送制御部７Ｂに接続されている。また、転送制御部７Ａは、別のキャッシュ間パス５２Ｂを介して、上記と同様にアクセスすることのできない記憶装置２４Ｃ、２４Ｄに接続されているまた別のＣＴＬ５Ｄの転送制御部７Ｄに接続されている。この構成の下、転送制御部７Ａは、ＣＴＬ検出信号線を介して、ＣＴＬ５Ｂが装着されたこと或いは取り外されたことを検出したり、ＣＴＬ５Ｂの状態（例えば、障害が発生したか否か）を監視したりすることができる（これは、転送制御部７Ｂについても同様である）。また、転送制御部７Ａは、キャッシュ間パス５２Ａ又は５２Ｂを介して、所定の指示（例えば、キャッシュ領域の確保の指示、データの書き込み指示、データの読み出し指示）を、転送制御部７Ｂ又は７Ｄに送信することができる。また、転送制御部７Ａは、ＣＭ１１Ａに書かれたデータを、キャッシュ間パス５２Ａ又は５２Ｂを介して、転送制御部７Ｂ又は７Ｄに転送することにより、そのデータがＣＭ１１Ｂ又は１１Ｄに書き込まれるようにすることができる。また、転送制御部７Ａは、転送制御部７Ｂ又は７Ｄから受信したデータをＣＭ１１Ａに書き込み、ＣＭ１１に書き込んだデータを、ファイバチャネルループ２２Ａ又は２２Ｃを介して記憶装置２４Ａ又は２４Ｂに書き込むことを、ディスク制御部１３Ａに依頼することができる。
【００４１】
転送制御部７Ａは、例えば、転送ＬＳＩ（Large-Scale Integration）５１と、ＭＰ（Micro Processor）５０とを備える。転送ＬＳＩ５１は、ライトデータ及びリードデータ等のデータを転送するＬＳＩである。転送ＬＳＩ５１は、転送制御部７Ｂにおける転送ＬＳＩ（図示せず）とキャッシュ間パス５２Ａを介して接続され、且つ、転送制御部７Ｄにおける転送ＬＳＩ（図示せず）とキャッシュ間パス５２Ｂを介して接続される。ＭＰ５０は、ＣＴＬ５Ａの動作を制御することができる。例えば、ＭＰ５０は、転送ＬＳＩ５１を制御して、キャッシュ間パス５２を介して、所定の指示を送信又は受信したり、ＣＭ１１Ａに書かれたデータをキャッシュ間パス５２Ａ又は５２Ｂを介して転送制御部７Ｂ又は７Ｄに送信したりする。なお、キャッシュ間パス５２Ａ又は５２Ｂを介したデータの転送は、ＤＭＡ（Direct Memory Access）により行われても良い。
【００４２】
各ファイバチャネルループ２２において、各ディスク制御部１３Ａと、各記憶装置２４との間には、ＰＢＣ１２が存在する。記憶装置２４Ａ、２４Ｂに接続されたファイバチャネルループ２２におけるＰＢＣ１２は、別の記憶装置２４Ｃ、２４Ｄに接続された別のファイバチャネルループ２２におけるＰＢＣ２２に、ＰＢＣ間割り込みパス５４を介して接続されている。また、各記憶装置２４に接続されたファイバチャネルループ２２におけるＰＢＣ１２は、それと同一の記憶装置２４に接続された別のファイバチャネルループ２２におけるＰＢＣ２２に、ＰＢＣ間交替パス５６を介して接続されている。
【００４３】
各ＰＢＣ１２は、そのＰＢＣを備えるファイバチャネルループ２２に接続されたＣＴＬ５の転送制御部７に、ＰＢＣ制御ラインを介して接続されている。例えば、ファイバチャネルループ２２Ａ上に存在するＰＢＣ１２Ａ１は、ＰＢＣ制御ライン２３を介して、転送制御部７Ａ（例えばそのうちの転送ＬＳＩ５１）に接続されている。転送制御部７Ａは、ＰＢＣ制御ライン２３を介してＰＢＣ１２Ａ１に制御信号を送信することにより、ファイバチャネルループ２２Ａを流れるデータをＣＴＬ５Ａ側又は記憶装置２４Ａ側に通過させることと、ファイバチャネルループ２２Ａを流れるデータをＰＢＣ間割込みパス５４Ａ及びＰＢＣ１２Ｂ２を介して別のファイバチャネルループ２２Ｅに流すことと、ファイバチャネルループ２２Ａを流れるデータをＰＢＣ間交替パス５６Ａ及びＰＢＣ１２Ｃ１を介して別のファイバチャネルループ２２Ｂに流すこととを制御することができる。
【００４４】
図２は、各ＣＴＬに備えられる各ＣＭの構成例を示す。
【００４５】
ＣＭ１１Ａ、１１Ｂ、１１Ｃ及び１１Ｄの構成は特徴的には同じなので、ＣＭ１１Ａを代表的に例に採り説明する。ＣＭ１１Ａは、ＣＴＬ５Ａ用アクセステーブル記憶領域１１Ａ１と、ＣＴＬ５Ｃ用アクセステーブル記憶領域１１Ａ２と、ＣＴＬ５Ｂ用アクセステーブル記憶領域１１Ａ３と、ＣＴＬ５Ｄ用アクセステーブル記憶領域１１Ａ４と、制御情報記憶領域１１Ａ５と、自分専用記憶領域１１Ａ６と、ペア用記憶領域１１Ａ７と、全ＣＴＬ用記憶領域１１Ａ８とを備える。
【００４６】
記憶領域１１Ａ１、１１Ａ２、１１Ａ３及び１１Ａ４に記憶されるアクセステーブルは、特徴的には同じなので、１１Ａ１を代表的に例に採り説明する。ＣＴＬ５Ａ用アクセステーブル記憶領域１１Ａ１は、ＣＴＬ５Ａがアクセス可能な記憶装置２４がどれであるかに関する情報が書かれたアクセステーブルが記憶される領域である。アクセステーブルには、例えば、図２に例示するように、ＣＴＬ５Ａがアクセス可能な記憶装置の番号（記憶装置＃）と、その記憶装置を備える筐体２１の番号（ＥＮＣ＃）との組み合わせが一又は複数個記録される。転送制御部７Ａは、ファイバチャネルの規則に基づいて、筐体番号及び記憶装置番号のセットを自動で登録することができる。
【００４７】
制御情報記憶領域１１Ａ５は、転送制御部７Ａに参照される制御情報が記憶される領域である。制御情報には、例えば、ＬＤＥＶ番号と筐体番号−記憶装置番号との変換テーブルが含まれても良い。ここで、ＬＤＥＶとは、一又は複数の記憶装置２４上に設けられる論理的な記憶デバイスのことである。ＬＤＥＶ番号とは、そのＬＤＥＶを特定するための番号である。ホスト装置１は、例えば、データの書き込み先又は読み出し元となるＬＤＥＶのＬＤＥＶ番号を含んだＩ／Ｏ要求を送信することができる。この場合、転送制御部７Ａは、Ｉ／Ｏ要求に含まれているＬＤＥＶ番号を用いて上記変換テーブルを参照することにより、ＬＤＥＶ番号に対応した筐体番号及び記憶装置番号を特定することができる。更に、転送制御部７Ａは、特定された筐体番号及び記憶装置番号を用いて、記憶領域１１Ａ１乃至Ａ４にそれぞれ記憶されたアクセステーブルを参照することにより、その筐体番号及び記憶装置番号から特定される記憶装置２４にアクセス可能なＣＴＬ５がどれであるかも特定することができる。
【００４８】
自分専用記憶領域１１Ａ６は、ＣＴＬ５Ａのみが使用するデータが記憶される領域である。例えば、転送制御部７Ａは、ホスト装置１ＡからのＩ／Ｏ要求に従うアクセス先が記憶装置２４Ａ又は２４Ｂであると判断した場合には、自分専用記憶領域１１Ａ６にキャッシュ領域を確保し、そのキャッシュ領域にライトデータ又はリードデータを格納する。換言すれば、転送制御部７Ａは、自分専用記憶領域１１Ａ６に格納したデータを、キャッシュ間パス５２Ａ、５２Ｂを介して他のＣＴＬ５Ｂ、５Ｄに転送しない。
【００４９】
ペア用記憶領域１１Ａ７は、ＣＴＬ５Ａ及びそれとペアを形成するＣＴＬとの間で共有されるデータが記憶される領域である。例えば、転送制御部７Ａは、ホスト装置１ＡからのＩ／Ｏ要求に従うアクセス先が記憶装置２４Ｃ又は２４Ｄであると判断した場合には、ペア用記憶領域１１Ａ７にキャッシュ領域を確保し、且つ、キャッシュ間パス５２を介してＣＴＬ５Ｂ又は５Ｄにキャッシュ領域の確保を指示する。そして、転送制御部７Ａは、ペア用記憶領域１１Ａ７のキャッシュ領域にライトデータを書き込み、且つ、そのライトデータを、キャッシュ間パス５２Ａ又は５２Ｂを介してＣＴＬ５Ｂ又は５Ｄに送信する。これにより、そのライトデータが、ＣＭ１１ＡとＣＭ１１Ｂ又は１１Ｄとの両方に書かれる。なお、逆に、転送制御部７Ａが、キャッシュ領域の確保の指示をＣＴＬ５Ｂ又は５Ｄから受けた場合には、ペア用記憶領域１１Ａ７にキャッシュ領域を確保し、ＣＴＬ５Ｂ又は５Ｄから受信したデータを、その確保したキャッシュ領域に格納することができる。
【００５０】
全ＣＴＬ用記憶領域１１Ａ８は、全てのＣＴＬ５Ａ乃至５Ｄに共有されるデータが記憶される領域である。この記憶領域１１Ａ８に記憶されたデータは、例えば、キャッシュ間パス５２Ａ及び５２Ｂを介してＣＭ１１Ｂの全ＣＴＬ用記憶領域１１Ｂ８及びＣＭ１１Ｄの全ＣＴＬ用記憶領域１１Ｄ８に書かれる。また、記憶領域１１Ｄ８に書かれたデータは、転送制御部７Ｄによって、キャッシュ間パス５２Ｄを介してＣＴＬ５Ｃに転送され、ＣＭ１１Ｃの全ＣＴＬ用エリア１１Ｃ８に書かれる。
【００５１】
この実施形態では、各ＣＴＬ５用のアクセステーブルを、以下の流れにより、全てのＣＭ１１Ａ乃至１１Ｄに書き込むことができる。ＣＴＬ５Ａ用のアクセステーブルを代表的に例に採って説明すれば、ＣＴＬ５Ａ用のアクセステーブルが記憶領域１１Ａ１に書かれた場合、そのアクセステーブルが、キャッシュ間パス５２Ａを介してＣＭ１１Ｂの記憶領域１１Ｂ１に書かれ、次に、キャッシュ間パス５２Ｃを介してＣＭ１１Ｃの記憶領域１１Ｃ１に書かれ、最後に、キャッシュ間パス５２Ｄを介してＣＭ１１Ｄの記憶領域１１Ｄ１に書かれる。この一連の流れは、ＣＴＬ５Ａ用のアクセステーブルに限らず、図２に点線矢印で示すように、他のＣＴＬ用のアクセステーブルについても適用することができる。また、この一連の流れは、どの領域にデータが書かれた場合にはどのキャッシュ間パス５２を介してどのＣＭ１１のどの領域に書かれるかを予め設定しておくことで、実現することができる。この設定は、ハードウェアの構成により行うことが可能であり、ゆえに、各ＣＴＬ用のアクセステーブルが全てのＣＭ１１Ａ乃至１１Ｄに格納される処理は、完全なハードウェア処理により行うことができる。なお、上記の設定は、各転送制御部７のＭＰ５０に読み込まれるマイクロプログラムが有していても良く、その場合には、各ＭＰ５０のマイクロプログラムにより上記の処理が実現されてもよい。
【００５２】
以上が、記憶制御システム１００の構成についての説明である。この記憶制御システム１００では、例えば、以下に説明するような処理が行われる。
【００５３】
図３は、ＣＴＬ５Ａが、ライト命令であるＩ／Ｏ要求を受信した場合に行われる処理流れの一例を示す。
【００５４】
ＣＴＬ５Ａがホスト装置１ＡからＩ／Ｏ要求を受信した場合、プロトコルチップ３Ａが、転送制御部７Ａにキャッシュ領域の確保を命じ、転送制御部７Ａは、未処理のＩ／Ｏ要求の数（以下、未処理Ｉ／Ｏ要求数）を更新する（ステップＳ１）。未処理Ｉ／Ｏ要求数は、ＣＭ１１Ａに記憶させることができる。具体的には、例えば、ＣＭ１１Ａの自分専用記憶領域１１Ａ６又は全ＣＴＬ用記憶領域１１Ａ８に記憶させることができる。全ＣＴＬ用記憶領域１１Ａ８に未処理Ｉ／Ｏ要求数が記憶された場合には、その未処理Ｉ／Ｏ要求数は、他の全てのＣＭ１１Ｂ乃至１１Ｄに書き込まれる。他のＣＴＬ５Ｂ乃至５Ｄは、ＣＴＬ５Ａに未処理Ｉ／Ｏ要求数を問い合わせることにより、或いは、自分のＣＭ１１の全ＣＴＬ用記憶領域に書かれたＣＴＬ５Ａの未処理Ｉ／Ｏ要求数を参照することにより、ＣＴＬ５Ａで未処理のＩ／Ｏ要求が幾つであるかを特定することができる。
【００５５】
転送制御部７Ａは、ライト命令に含まれている情報（例えばＬＤＥＶ番号）や各ＣＴＬ用のアクセステーブルを参照することにより、ライトデータの書き込み先となる記憶装置を特定し、その特定された記憶装置にはどのＣＴＬがアクセス可能であるかを判別する（Ｓ２）。
【００５６】
Ｓ２の判断の結果、ＣＴＬ５Ａがアクセス可能であることが判別された場合には（Ｓ２でＹＥＳ）、転送制御部７Ａは、ＣＭ１１Ａ（例えば自分専用記憶領域１１Ａ６）にキャッシュ領域を確保し（Ｓ３）、キャッシュ領域の確保の完了を、プロトコルチップ３Ａに通知する。
【００５７】
プロトコルチップ３Ａは、キャッシュ領域の確保の完了通知を受けたならば（Ｓ７でＹＥＳ）、ホスト装置１Ａにライトデータを要求する（Ｓ８）。それに応答して、ホスト装置１Ａからライトデータが送られてきた場合（Ｓ９でＹＥＳ）、転送制御部７Ａが、そのライトデータを、Ｓ３で確保したキャッシュ領域に格納する。
【００５８】
その後、ライトデータの格納処理が行われる（Ｓ１０でＹＥＳ及びＳ１１）。例えば、転送制御部７Ａは、ディスク制御部１３Ａに、Ｓ２で特定された記憶装置（ライトデータの書き込み先となる記憶装置）にデータを書き込むことを命令する。ディスク制御部１３Ａは、その命令に応答して、Ｓ３で確保されたキャッシュ領域からライトデータを読み出し、そのライトデータを、ファイバチャネルループ２２Ａ又は２２Ｃを介して、Ｓ２で特定された記憶装置２４Ａ又は２４Ｂに書き込み、それが終了した後、格納の完了を転送制御部７Ａに通知する。
【００５９】
転送制御部７Ａは、その通知に応答して、Ｓ３で確保されたキャッシュ領域を開放する（Ｓ１６）。
【００６０】
Ｓ２の判断の結果、ＣＴＬ５Ｂ及び５Ｄがアクセス可能であることが判別された場合には（Ｓ２でＮＯ）、転送制御部７Ａは、転送先選択処理を実行する（Ｓ４）。このＳ４では、例えば、転送制御部７Ａは、ＣＴＬ５Ｂ及び５Ｄに関する状態（例えば、ファイバチャネルループ２２Ｅ乃至２２Ｆのトラフィック状態）を把握し、把握された状態に基づいて、ＣＴＬ５Ｂと５Ｄのどちらを転送先とするかを選択する。より具体的な例としては、例えば、転送制御部７Ａは、ＣＴＬ５Ｂ及び５Ｄに未処理Ｉ／Ｏ数を問い合わせる等の方法により、ＣＴＬ５ＢのＣＭ１１Ｂに書かれているＣＴＬ５Ｂの未処理Ｉ／Ｏ数と、ＣＴＬ５ＤのＣＭ１１Ｄに書かれているＣＴＬ５Ｄの未処理Ｉ／Ｏ数とを特定し、特定された二つの未処理Ｉ／Ｏ数を比較し、未処理Ｉ／Ｏ数が少ない方のＣＴＬを転送先として選択する。ここでは、ＣＴＬ５Ｂが転送先として選択されたとする。
【００６１】
転送制御部７Ａは、ＣＭ１１Ａ（例えばペア用記憶領域１１Ａ７）にキャッシュ領域を確保し、且つ、キャッシュ間パス５２Ａを介して、転送制御部７Ｂにキャッシュ領域の確保を命令する（Ｓ５）。転送制御部７Ｂは、その命令に応答して、ＣＭ１１Ｂ（例えばペア用記憶領域１１Ｂ７）にキャッシュ領域を確保し、且つ、キャッシュ間パス５２Ａを介して、キャッシュ領域の確保の完了を転送制御部７Ａに通知する（Ｓ６）。
【００６２】
Ｓ６の後、Ｓ７乃至Ｓ９の処理が行われる。その後、Ｓ２でＮＯの場合には（Ｓ１０でＮＯ）、転送制御部７Ａは、Ｓ３で確保されたキャッシュ領域からライトデータを読み出し、読み出したライトデータをＣＴＬ５Ｂに転送する（Ｓ１２）。これにより、そのライトデータは、Ｓ６で確保された、ＣＭ１１Ｂ上のキャッシュ領域に格納される。なお、このＳ１２では、転送制御部７Ａが、Ｓ２で特定された記憶装置がどれであるか（例えば、筐体番号及び記憶装置番号のセット）を転送制御部７Ｂに通知しても良い。
【００６３】
その後、ライトデータの格納処理が行われる（Ｓ１３）。例えば、転送制御部７Ｂは、ディスク制御部１３Ｂに、Ｓ２で特定された記憶装置（ライトデータの書き込み先となる記憶装置）にデータのライトを命令する。ディスク制御部１３Ａは、その命令に応答して、Ｓ６で確保されたキャッシュ領域からライトデータを読み出し、そのライトデータを、ファイバチャネルループ２２Ｂ又は２２Ｄを介して、Ｓ２で特定された記憶装置２４Ｃ又は２４Ｄに書き込み、それが終了した後、格納の完了を転送制御部７Ｂに通知する。転送制御部７Ｂは、その通知に応答して、ＣＭ１１Ｂ上で確保されているキャッシュ領域を開放し、且つ、格納の完了を、キャッシュ間パス５２Ａを介して転送制御部７Ａに通知する。
【００６４】
転送制御部７Ａは、転送制御部７Ｂから格納の完了通知を受けた場合には（Ｓ１５でＹＥＳ）、上述したＳ１６を実行する。
【００６５】
図４は、ＣＴＬ５Ａが、リード命令であるＩ／Ｏ要求を受信した場合に行われる処理流れの一例を示す。
【００６６】
ＣＴＬ５Ａがホスト装置１ＡからＩ／Ｏ要求を受信した場合、プロトコルチップ３Ａが、転送制御部７Ａにキャッシュ領域の確保を命じ、転送制御部７Ａは、ＣＭ１１Ａ上の未処理Ｉ／Ｏ要求数を更新する（Ｓ２１）。
【００６７】
転送制御部７Ａは、リード命令に含まれている情報（例えばＬＤＥＶ番号）や各ＣＴＬ用のアクセステーブルを参照することにより、データの読み込み元となる記憶装置を特定し、その特定された記憶装置にはどのＣＴＬがアクセス可能であるかを判別する（Ｓ２２）。
【００６８】
Ｓ２２の判断の結果、ＣＴＬ５Ａがアクセス可能であることが判別された場合には（Ｓ２２でＹＥＳ）、転送制御部７Ａは、ＣＭ１１Ａ（例えば自分専用記憶領域１１Ａ６）にキャッシュ領域を確保する（Ｓ２３）。
【００６９】
その後、データの読み出し処理が行われる（Ｓ３１）。例えば、転送制御部７Ａは、ディスク制御部１３Ａに、Ｓ２２で特定された記憶装置からデータを読み出すことを命令する。ディスク制御部１３Ａは、その命令に応答して、その特定された記憶装置からデータを読み出し、読み出したリードデータを、Ｓ２３で確保されたキャッシュ領域に格納する。
【００７０】
転送制御部７Ａは、そのキャッシュ領域内のリードデータをホスト装置１Ａに送信することをプロトコルチップ３Ａに命じる。プロトコルチップ３Ａは、キャッシュ領域からリードデータを取得し、そのリードデータをホスト装置１Ａに送信し（Ｓ３２）、送信完了を転送制御部７Ａに通知する。
【００７１】
転送制御部７Ａは、プロトコルチップ３Ａからの送信完了に応答して、ＣＭ１１Ａ上で確保されたキャッシュ領域を開放する（Ｓ３３）。
【００７２】
Ｓ２２の判断の結果、ＣＴＬ５Ｂ及び５Ｄがアクセス可能であることが判別された場合には（Ｓ２２でＮＯ）、転送制御部７Ａは、Ｓ４と同様の方法で、転送先選択処理を実行する（Ｓ２４）。ここでは、ＣＴＬ５Ｂが転送先として選択されたとする。
【００７３】
転送制御部７Ａは、ＣＭ１１Ａ（例えばペア用記憶領域１１Ａ７）にキャッシュ領域を確保し、且つ、キャッシュ間パス５２Ａを介して、転送制御部７Ｂにキャッシュ領域の確保を命令する（Ｓ２５）。
【００７４】
転送制御部７Ｂは、その命令に応答して、ＣＭ１１Ｂ（例えばペア用記憶領域１１Ｂ７）にキャッシュ領域を確保し、且つ、キャッシュ間パス５２Ａを介して、キャッシュ領域の確保の完了を転送制御部７Ａに通知する（Ｓ２６）。
【００７５】
Ｓ２６に応答して、転送制御部７Ａは、データのリード命令をキャッシュ間パス５２Ａを介して転送制御部７Ｂに送信する（Ｓ２７）。なお、このＳ２７では、転送制御部７Ａが、Ｓ２２で特定された記憶装置がどれであるか（例えば、筐体番号及び記憶装置番号のセット）を転送制御部７Ｂに通知しても良い。
【００７６】
そのリード命令に応答して、データの読み出し処理が行われる（Ｓ２８）。例えば、転送制御部７Ｂは、ディスク制御部１３Ｂに、Ｓ２２で特定された記憶装置からデータを読み出すことを命令する。ディスク制御部１３Ｂは、その命令に応答して、その特定された記憶装置からデータを読み出し、読み出したリードデータを、Ｓ２６で確保されたキャッシュ領域に格納する。
【００７７】
転送制御部７Ｂは、キャッシュ領域に格納されたリードデータをキャッシュ間パス５２Ａを介して転送制御部７Ａに転送する（Ｓ２９）。これにより、リードデータが、ＣＭ１１Ａ上で確保されているキャッシュ領域に書かれる。Ｓ２９の後、転送制御部７Ｂは、Ｓ２６で確保したキャッシュ領域を開放する（Ｓ３０）。
【００７８】
Ｓ２９の後、上述したＳ３２及びＳ３３の処理が行われる。
【００７９】
以上、上述した実施形態によれば、一つのファイバチャネルループ２２を複数のＣＴＬ５で共有することなく、四台のＣＴＬ５Ａ乃至５Ｄの各々が、自分に接続されたファイバチャネルループ２２を介して記憶装置にアクセスすることができる。
【００８０】
また、上述した実施形態によれば、記憶装置グループ２１の増設或いは取り外しの作業が行われた場合、その作業による悪影響を抑えることができる。具体的には、例えば、図５Ａに例示するように、二台のＣＴＬ５に対して一つの記憶装置グループ筐体２１が接続されている場合に、その記憶装置グループ筐体２１に対して別の記憶装置グループ筐体２１が連結されたならば、パス０及びパス１がダウンする。しかし、本実施形態に係る記憶制御システム１００によれば、図５Ｂに例示するように、記憶装置グループ筐体２１Ａに別の筐体２１Ａが連結されても、記憶装置グループ筐体２１Ｂ内に存在する記憶装置のパス０及びパス１はダウンしない。このため、ＣＴＬ５Ｂ及び５Ｄは、記憶装置グループ筐体２１Ａの増設或いは取り外しに影響なく、記憶装置グループ筐体２１Ｂ内の記憶装置にアクセスすることができる。
【００８１】
ところで、この実施形態は、以下のような変形例が考えられる。
【００８２】
図６に示すように、ＣＴＬ５は、所定のタイミングで、キャッシュ間パス５２、ＰＢＣ間割り込みパス５４及びＰＢＣ間交替パス５６のうちのどれを使用して記憶装置にアクセスするかのアクセス方法の判断処理を実行する（Ｓ５０）。所定のタイミングとしては、例えば、上述したＳ２又はＳ２２の処理のとき、或いは、自分に接続されているファイバチャネルループ２２を介して記憶装置にアクセスするときを、採用することができる。以下、ＣＴＬ５Ａを代表的に例に採り説明する。
【００８３】
ＣＴＬ５Ａは、ＣＴＬ５Ｂのファイバチャネルループ２２Ｅ又は２２Ｇを使用することを判断した場合、キャッシュ間パス５２Ａの使用率（換言すれば混雑具合）が所定値（例えばＣＭ１１Ａの制御情報記憶領域１１Ａ５に記憶されている）よりも低いことを検出したならば、或いは、少なくとも一つの記憶装置２４Ａ又は２４Ｂが接続されていることを検出したならば、キャッシュ間パス５２Ａを介してＣＴＬ５Ｂにデータを転送することを決定する（Ｓ５１Ａ）。
【００８４】
また、ＣＴＬ５Ａは、記憶装置２４Ｃにアクセスすることが特定された場合に、以下の（１）乃至（３）の少なくとも一つ、
（１）キャッシュ間パス５２Ａの使用率（換言すれば混雑具合）が所定値よりも高い、或いは、キャッシュ間パス５２Ａに障害が発生した、
（２）ＣＴＬ５Ａに記憶装置２４Ａ及び２４Ｂのいずれも接続されていない、
（３）ファイバチャネルループ２２Ｅの使用率が所定値よりも低い、
を検出したならば、ＰＢＣ１２Ａ１を制御し、ＰＢＣ間割り込みパス５４Ａを介して、記憶装置２４Ｃにアクセスすることを決定する（Ｓ５１Ｂ）。この場合、キャッシュ間パス５２Ａを介してＣＴＬ５Ｂに命令を出す必要が無いので、転送制御部７ＡのＭＰ５０の負荷を抑えることが可能である。
【００８５】
また、ＣＴＬ５Ａは、記憶装置２４Ａにアクセスすることが特定された場合に、以下の（Ａ）乃至（Ｄ）の少なくとも一つ、
（Ａ）ファイバチャネルループ２２Ａの使用率が所定値よりも高い、
（Ｂ）ファイバチャネルループ２２Ｂの使用率が所定値よりも低い、
（Ｃ）ファイバチャネルループ２２Ａの使用率よりもファイバチャネルループ２２Ｂの使用率の方が低い、
（Ｄ）ファイバチャネルループ２２Ａに障害が発生しているが、ファイバチャネルループ２２Ｂには障害が発生していない、
を検出したならば、ＰＢＣ１２Ａ１を制御し、ＰＢＣ間交替パス５６Ａを介して、記憶装置２４Ａにアクセスすることを決定する（Ｓ５１Ｃ）。
【００８６】
以上の５１Ａ乃至５１Ｃの処理は、他のＣＴＬにも適用することができる。
【００８７】
以上、本発明の好適な実施形態及び実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態及び変形例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、ＣＴＬの台数が四台の場合を例に採って説明したが、ＣＴＬの台数は四台以上（例えば、２Ｎ台以上（Ｎ≧３））の場合にも適用することができる。また、複数のＣＴＬ５や複数のファイバチャネルループの接続構成は、図１に例示した構成に限らない。すなわち、キャッシュ間パス５２、ＰＢＣ間割り込みパス５４及びＰＢＣ間交替パス５６を、より多く又はより少なく用いることができる。
【図面の簡単な説明】
【００８８】
【図１】図１は、本発明の一実施形態に係る記憶制御システムの構成を示す。
【図２】図２は、各ＣＴＬに備えられる各ＣＭの構成例を示す。
【図３】図３は、ＣＴＬ５Ａが、ライト命令であるＩ／Ｏ要求を受信した場合に行われる処理流れの一例を示す。
【図４】図４は、ＣＴＬ５Ａが、リード命令であるＩ／Ｏ要求を受信した場合に行われる処理流れの一例を示す。
【図５】図５Ａは、ＣＴＬが二台の場合に、記憶装置グループ筐体を増設する場合に生じ得る影響の説明図である。図５Ｂは、本実施形態に係る記憶制御システムに、記憶装置グループ筐体を増設する場合に生じ得る影響の説明図である。
【図６】図６は、本発明の一実施形態の変形例の説明図である。
【符号の説明】
【００８９】
１Ａ，１Ｂ，１Ｃ，１Ｄ…ホスト装置  ５Ａ，５Ｂ，５Ｃ，５Ｄ…コントローラ  ７Ａ，７Ｂ，７Ｃ，７Ｄ…転送制御部  １１Ａ，１１Ｂ，１１Ｃ，１１Ｄ…キャッシュメモリ（ＣＭ）  １２Ａ１，１２Ａ２，１２Ｂ１，１２Ｂ２，１２Ｃ１，１２Ｃ２，１２Ｄ１，１２Ｄ２…ＰＢＣ（ポート・バイパス・サーキット）  １３Ａ，１３Ｂ，１３Ｃ，１３Ｄ…ディスク制御部  ２１Ａ，２１Ｂ…記憶装置グループ筐体  ２２Ａ，２２Ｂ，２２Ｃ，２２Ｄ，２２E，２２F，２２G，２２H…ファイバチャネルループ  ２４Ａ，２４Ｂ，２４Ｃ，２４Ｄ…記憶装置  ５０…マイクロプロセッサ（ＭＰ）  ５１…転送ＬＳＩ  ５２Ａ，５２Ｂ，５２Ｃ，５２Ｄ…キャッシュ間パス  ５４Ａ，５４Ｂ，５４Ｃ，５４Ｄ…ＰＢＣ間割込みパス  ５６Ａ，５６Ｂ…ＰＢＣ間交替パス
【図１】
2006318152.tif 000003
【図２】
2006318152.tif 000004
【図３】
2006318152.tif 000005
【図４】
2006318152.tif 000006
【図５】
2006318152.tif 000007
【図６】
2006318152.tif 000008