(57)【要約】【課題】ストレージシステムの性能の劣化を抑える或いはそれの性能を向上する。【解決手段】メモリ１５と、メモリにアクセスする複数のアクセス部１１と、複数のアクセス部からのメモリへのアクセスを制御するメモリアダプタ１３と、各アクセス部とメモリアダプタとを通信可能に接続するレスポンス型パス（Ｒパス）２とスループット型パス（Ｔパス）３とが備えられる。Ｒパスは、同一時間内に転送できる情報量がＴパスよりも少ないが、情報が送信されてからそれの応答を受けるまでの時間長がＴパスよりも短い。Ｔパスは、情報が送信されてからそれの応答を受けるまでの時間長がＲパスよりも長いが、同一時間内に転送できる情報量がＲパスよりも多い。メモリアダプタは、Ｔパスを介したメモリへのアクセスよりもＲパスを介したメモリへのアクセスを優先的に許可する。【選択図】図１
2007109141.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
前記メモリにアクセスする複数のアクセス部と、
前記複数のアクセス部からの前記メモリへのアクセスを制御するメモリインタフェース装置と、
各アクセス部と前記メモリインタフェース装置とを通信可能に接続する複数種類のパスと
を備え、
前記複数種類のパスには、レスポンス型パスとスループット型パスとが含まれており、
前記レスポンス型パスは、同一時間内に転送できる情報量が前記スループット型パスよりも少ないが、情報が送信されてからそれの応答を受けるまでの時間長が前記スループット型パスよりも短いパスであり、
前記スループット型パスは、情報が送信されてからそれの応答を受けるまでの時間長が前記レスポンス型パスよりも長いが、同一時間内に転送できる情報量が前記レスポンス型パスよりも多いパスであり、
前記メモリインタフェース装置は、前記スループット型パスを介した前記メモリへのアクセスよりも、前記レスポンス型パスを介した前記メモリへのアクセスを優先的に許可する、
ストレージシステム。
【請求項２】
前記メモリインタフェース装置は、所定の比率で、前記レスポンス型パスを介したアクセスを優先的に許可する、
請求項１記載のストレージシステム。
【請求項３】
前記メモリインタフェース装置は、前記レスポンス型パスを介したアクセスを優先的に許可する回数が所定回数になる都度に、前記レスポンス型パスを介したアクセスを優先的に許可することなく、前記スループット型パスを介したアクセスを許可する、
請求項２記載のストレージシステム。
【請求項４】
前記メモリインタフェース装置が、前記レスポンス型パス及び前記スループット型パスのうちの少なくとも一方を介した通信のパターンの統計を算出し、算出された統計に対応した比率を求め、前記求められた比率を、前記所定の比率とする、
請求項２記載のストレージシステム。
【請求項５】
前記メモリインタフェース装置は、前記レスポンス型パス及び前記スループット型パスのうちの少なくとも一方を介して情報を受信した場合、前記受信した情報の種別、サイズ及び受信時刻のうちの少なくとも一つを判断し、その判断結果に応じて、情報の種別毎の受信回数、情報のサイズ範囲毎の受信回数、及び情報の受信頻度のうちの少なくとも一つを更新し、情報の種別毎の受信回数、情報のサイズ範囲毎の受信回数、及び情報の受信頻度のうちの少なくとも一つに基づいて、前記統計を算出する、
請求項４記載のストレージシステム。
【請求項６】
前記複数のアクセス部と前記メモリインタフェース装置との間において、前記レスポンス型パス上には、スイッチが存在しないか、或いは、前記スループット型パス上に存在するスイッチの数よりも少ない数のスイッチが存在する、
請求項１記載のストレージシステム。
【請求項７】
前記スループット型パスの数よりも前記レスポンス型パスの数の方が多くなっている、
請求項１記載のストレージシステム。
【請求項８】
前記ストレージシステムは、それの外部に存在する装置である外部装置と通信可能に接続されており、
キャッシュメモリと、
前記キャッシュメモリへのアクセスを制御するキャッシュメモリアダプタと
ディスク型記憶装置と、
前記外部装置と通信可能に接続されているチャネルアダプタと、
前記ディスク型記憶装置に通信可能に接続されているディスクアダプタと
を備え、
前記チャネルアダプタ及び前記ディスクアダプタは、
他のチャネルアダプタ又はディスクアダプタに対するコマンド又は応答を、前記レスポンス型パスを介して前記キャッシュメモリアダプタに送信することにより、前記キャッシュメモリに書く、及び／又は、前記キャッシュメモリに書かれた自分宛のコマンド又は応答を、前記キャッシュメモリアダプタから前記レスポンス型パスを介して受信し、
前記データを、前記スループット型パスを介して前記キャッシュメモリアダプタに送信することにより、前記キャッシュメモリ書き、及び／又は、前記データを、前記キャッシュメモリに書かれたデータを、前記キャッシュメモリアダプタから前記レスポンス型パスを介して受信し、
前記複数のアクセス部の各々は、前記チャネルアダプタ又は前記ディスクアダプタであり、
前記メモリは、前記キャッシュメモリであり、
前記メモリインタフェース装置は、前記キャッシュメモリアダプタである、
請求項１記載のストレージシステム。
【請求項９】
前記ストレージシステムは、それの外部に存在する装置である外部装置と通信可能に接続されており、
キャッシュメモリと、
ディスク型記憶装置と、
前記外部装置からデータを受信して前記キャッシュメモリに書込む、及び／又は、前記キャッシュメモリからデータを取得して前記外部装置に送信することができるチャネルアダプタと、
前記キャッシュメモリに書かれたデータを取得して前記ディスク型記憶装置に書込む、及び／又は、前記ディスク型記憶装置からデータを取得して前記キャッシュメモリに書込むことができるディスクアダプタと
を備え、
前記チャネルアダプタ及び前記ディスクアダプタは、マイクロプロセッサと、ローカルメモリと、前記複数種類のパスに接続されるパスインタフェース装置とを備えており、
前記複数のアクセス部の各々は、前記マイクロプロセッサであり、
前記メモリは、前記マイクロプロセッサにとって他のチャネルアダプタ又はディスクアダプタに搭載されている前記ローカルメモリであり、
前記メモリインタフェース装置は、前記マイクロプロセッサにとって他のチャネルアダプタ又はディスクアダプタに搭載されている前記パスインタフェース装置である、
請求項１記載のストレージシステム。
【請求項１０】
前記ストレージシステムは、ディスク型記憶装置を備えており、
前記複数のアクセス部の各々は、
前記ディスク型記憶装置に書かれるデータが情報に含まれているか否か、及び／又は、前記情報のサイズが所定値以上か否かを判断し、
前記判断の結果、前記ディスク型記憶装置に書かれるデータが情報に含まれている場合、及び／又は、前記情報のサイズが所定値以上である場合、前記情報を、前記スループット型パスを介して前記メモリインタフェース装置に送信し、
前記判断の結果、前記ディスク型記憶装置に書かれるデータが含まれていない場合、及び／又は、前記情報のサイズが所定値未満である場合、前記情報を、前記レスポンス型パスを介して前記メモリインタフェース装置に送信する、
請求項１記載のストレージシステム。
【請求項１１】
前記ストレージシステムは、ディスク型記憶装置を備えており、
前記メモリインタフェース装置は、
前記ディスク型記憶装置に記憶されていたデータが情報に含まれているか否か、及び／又は、前記情報のサイズが所定値以上か否かを判断し、
前記判断の結果、前記ディスク型記憶装置に記憶されていたデータが情報に含まれている場合、及び／又は、前記情報のサイズが所定値以上である場合、前記情報を、前記スループット型パスを介して少なくとも一つのアクセス部に送信し、
前記判断の結果、前記ディスク型記憶装置に記憶されていたデータが含まれていない場合、及び／又は、前記情報のサイズが所定値未満である場合、前記情報を、前記レスポンス型パスを介して少なくとも一つのアクセス部に送信する、
請求項１記載のストレージシステム。
【請求項１２】
前記メモリの同一の範囲に、前記レスポンス型パスを介して受信した情報と、前記スループット型パスを介して受信した情報とが混在するか、或いは、コマンド又は応答と、ディスク型記憶装置に記憶されるデータとが混在する、
請求項１記載のストレージシステム。
【請求項１３】
前記メモリには、第一の記憶域と第二の記憶域とが用意されており、
前記第一の記憶域には、前記レスポンス型パスを介して受信した情報、或いは、コマンド又は応答が記憶され、
前記第二に記憶域には、前記スループット型パスを介して受信した情報、或いは、ディスク型記憶装置に記憶されるデータが記憶され、
前記第一の記憶域と前記第二の記憶域のサイズがそれぞれ固定又は可変になっている、
請求項１記載のストレージシステム。
【請求項１４】
前記メモリには、第一の記憶域と第二の記憶域とが用意されており、
前記第一の記憶域には、前記レスポンス型パスを介して受信した情報、或いは、コマンド又は応答が記憶され、
前記第二の記憶域には、前記スループット型パスを介して受信した情報、或いは、ディスク型記憶装置に記憶されるデータが記憶され、
前記第一の記憶域と前記第二の記憶域のサイズが、前記求められた比率に応じたサイズに動的に変更される、
請求項４記載のストレージシステム。
【請求項１５】
前記メモリには、第一の記憶域と、第二の記憶域と、第三の記憶域とが用意されており、
前記第一の記憶域には、前記レスポンス型パスを介して受信した情報、或いは、コマンド又は応答が記憶され、
前記第二に記憶域には、前記スループット型パスを介して受信した情報、或いは、ディスク型記憶装置に記憶されるデータが記憶され、
前記第一の記憶域及び／又は前記第二の記憶域に、前記第三の記憶域の全部又は一部が動的に割り当てられたり、前記第三の記憶域の全部又は一部が前記第一の記憶域及び／又は前記第二の記憶域から動的に解放されたりする、
請求項１記載のストレージシステム。
【請求項１６】
前記メモリインタフェース装置に、複数のメモリが接続されており、
前記メモリインタフェース装置は、各アクセス部から指定されたアクセス先に基づいて、前記複数のメモリの中からメモリを選択し、選択したメモリにアクセスする、
請求項１記載のストレージシステム。
【請求項１７】
外部に存在する装置である外部装置と通信可能に接続することができるストレージシステムにおいて、
キャッシュメモリと、
前記キャッシュメモリへのアクセスを制御するキャッシュメモリアダプタと
ディスク型記憶装置と、
前記外部装置と通信可能に接続されているチャネルアダプタと、
前記ディスク型記憶装置に通信可能に接続されているディスクアダプタと、
前記チャネルアダプタ及び前記ディスクアダプタと前記キャッシュメモリアダプタとを通信可能に接続する複数種類のパスと
を備え、
前記複数種類のパスには、レスポンス型パスとスループット型パスとが含まれており、
前記レスポンス型パスは、同一時間内に転送できる情報量が前記スループット型パスよりも少ないが、情報が送信されてからそれの応答を受けるまでの時間長が前記スループット型パスよりも短いパスであり、
前記スループット型パスは、情報が送信されてからそれの応答を受けるまでの時間長が前記レスポンス型パスよりも長いが、同一時間内に転送できる情報量が前記レスポンス型パスよりも多いパスであり、
前記チャネルアダプタ及び前記ディスクアダプタは、
他のチャネルアダプタ又はディスクアダプタに対するコマンド又は応答を、前記レスポンス型パスを介して前記キャッシュメモリアダプタに送信することにより、前記キャッシュメモリに書く、及び／又は、前記キャッシュメモリに書かれた自分宛のコマンド又は応答を、前記キャッシュメモリアダプタから前記レスポンス型パスを介して受信し、
前記データを、前記スループット型パスを介して前記キャッシュメモリアダプタに送信することにより、前記キャッシュメモリ書き、及び／又は、前記データを、前記キャッシュメモリに書かれたデータを、前記キャッシュメモリアダプタから前記レスポンス型パスを介して受信し、
前記キャッシュメモリアダプタは、所定の比率で、前記スループット型パスを介した前記メモリへのアクセスよりも、前記レスポンス型パスを介した前記メモリへのアクセスを優先的に許可する、
ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶制御技術に関わり、特に、メモリへのアクセス技術に関する。
【背景技術】
【０００２】
例えば、特開２０００−２５０７１３号に開示のディスクアレイ装置が知られている。このディスクアレイ装置は、ホストコンピュータに対するインタフェース部を含むチャネルインタフェース部と、ディスク装置に対するインタフェース部を含むディスクインタフェース部と、ディスク装置に格納するデータを一時的に格納するキャッシュメモリ部と、チャネルインタフェース部及びディスクインタフェース部とキャッシュメモリ部とを接続するアクセスパスと、アクセスパスのデータ転送速度を変更する手段とを備える。
【０００３】
【特許文献１】特開２０００−２５０７１３号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ディスクアレイ装置に代表されるストレージシステムには、ホスト装置に対するインタフェースとなるホストインタフェース装置（以下、ホストＩ／Ｆ）や、ディスク型の記憶デバイス（以下、ディスク装置）に対するインタフェースとなるディスクインタフェース装置（以下、ディスクＩ／Ｆ）や、ディスク装置に格納されるデータを一時的に記憶するためのキャッシュメモリ（以下、ＣＭ）の他に、各Ｉ／Ｆで共有することができる共有メモリ（以下、ＳＭ）が備えられる場合がある。
【０００５】
ＳＭは、例えば、各Ｉ／Ｆに搭載されているマイクロプロセッサ（以下、ＭＰ）と、他のＩ／Ｆに搭載されているＭＰとの間でのコマンドの授受に利用される。具体的には、例えば、或るＩ／Ｆ上の第一のＭＰが、他のＩ／Ｆ上の第二のＭＰ宛のコマンドをＳＭに書き、第二のＭＰが、ＳＭからそのコマンドを読む。
【０００６】
また、ＳＭは、例えば、ＣＭを管理するための情報や、ストレージシステムの構成に関する情報を記憶する。ＳＭに格納されている情報は、各Ｉ／Ｆに適宜参照される。
【０００７】
ところで、ストレージシステムのコストを削減したいとの要求がある。そのための方法として、物理的に分かれているＳＭとＣＭとを、一つにすることが考えられる。しかし、そうすると、ストレージシステムの性能の劣化が懸念される。
【０００８】
また、ＳＭとＣＭとを一つにする場合に限らず、ストレージシステムの性能の劣化を抑えたい、或いはその性能を向上したいという要求があると考えられる。
【０００９】
従って、本発明の目的は、ストレージシステムのコストを削減することにある。
【００１０】
本発明の別の目的は、ストレージシステムの性能の劣化を抑える或いはそれの性能を向上することにある。
【００１１】
本発明の他の目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本発明に従うストレージシステムは、メモリと、前記メモリにアクセスする複数のアクセス部と、前記複数のアクセス部からの前記メモリへのアクセスを制御するメモリインタフェース装置と、各アクセス部と前記メモリインタフェース装置とを通信可能に接続する複数種類のパスとを備える。前記複数種類のパスには、レスポンス型パスとスループット型パスとが含まれている。前記レスポンス型パスは、同一時間内に転送できる情報量が前記スループット型パスよりも少ないが、情報が送信されてからそれの応答を受けるまでの時間長が前記スループット型パスよりも短いパスである。前記スループット型パスは、情報が送信されてからそれの応答を受けるまでの時間長が前記レスポンス型パスよりも長いが、同一時間内に転送できる情報量が前記レスポンス型パスよりも多いパスである。前記メモリインタフェース装置は、前記スループット型パスを介した前記メモリへのアクセスよりも、前記レスポンス型パスを介した前記メモリへのアクセスを優先的に許可する。
【００１３】
本発明の第一の態様では、前記メモリインタフェース装置は、所定の比率で、前記レスポンス型パスを介したアクセスを優先的に許可することができる。具体的には、例えば、前記メモリインタフェース装置は、前記レスポンス型パスを介したアクセスを優先的に許可する回数が所定回数になる都度に、前記レスポンス型パスを介したアクセスを優先的に許可することなく、前記スループット型パスを介したアクセスを許可することができる。
【００１４】
また、この第一態様において、前記メモリインタフェース装置が、前記レスポンス型パス及び前記スループット型パスのうちの少なくとも一方を介した通信のパターンの統計を算出し、算出された統計に対応した比率を求め、前記求められた比率を、前記所定の比率とすることができる。具体的には、例えば、前記メモリインタフェース装置は、前記レスポンス型パス及び前記スループット型パスのうちの少なくとも一方を介して情報を受信した場合、前記受信した情報の種別、サイズ及び受信時刻のうちの少なくとも一つを判断し、その判断結果に応じて、情報の種別毎の受信回数、情報のサイズ範囲毎の受信回数、及び情報の受信頻度のうちの少なくとも一つを更新し、情報の種別毎の受信回数、情報のサイズ範囲毎の受信回数、及び情報の受信頻度のうちの少なくとも一つに基づいて、前記統計を算出することができる。
【００１５】
なお、この場合において、前記メモリには、第一の記憶域と第二の記憶域とが用意されていてもよい。前記第一の記憶域には、前記レスポンス型パスを介して受信した情報、或いは、コマンド又は応答が記憶されてもよい。前記第二に記憶域には、前記スループット型パスを介して受信した情報、或いは、ディスク型記憶装置に記憶されるデータが記憶されてもよい。前記第一の記憶域と前記第二の記憶域のサイズが、前記求められた比率に応じたサイズに動的に変更されてもよい。
【００１６】
本発明の第二の態様では、前記複数のアクセス部と前記メモリインタフェース装置との間において、前記レスポンス型パス上には、スイッチが存在しないか、或いは、前記スループット型パス上に存在するスイッチの数よりも少ない数のスイッチが存在してもよい。
【００１７】
本発明の第三の態様では、前記スループット型パスの数よりも前記レスポンス型パスの数の方が多くなっていてもよい。
【００１８】
本発明の第四の態様では、前記ストレージシステムは、それの外部に存在する装置である外部装置と通信可能に接続されていてもよい。前記ストレージシステムは、キャッシュメモリと、前記キャッシュメモリへのアクセスを制御するキャッシュメモリアダプタと、ディスク型記憶装置と、前記外部装置と通信可能に接続されているチャネルアダプタと、前記ディスク型記憶装置に通信可能に接続されているディスクアダプタとを備えることができる。前記チャネルアダプタ及び前記ディスクアダプタは、他のチャネルアダプタ又はディスクアダプタに対するコマンド又は応答を、前記レスポンス型パスを介して前記キャッシュメモリアダプタに送信することにより、前記キャッシュメモリに書く、及び／又は、前記キャッシュメモリに書かれた自分宛のコマンド又は応答を、前記キャッシュメモリアダプタから前記レスポンス型パスを介して受信することができる。また、前記チャネルアダプタ及び前記ディスクアダプタは、前記データを、前記スループット型パスを介して前記キャッシュメモリアダプタに送信することにより、前記キャッシュメモリ書く、及び／又は、前記データを、前記キャッシュメモリに書かれたデータを、前記キャッシュメモリアダプタから前記レスポンス型パスを介して受信することができる。前記複数のアクセス部の各々は、前記チャネルアダプタ又は前記ディスクアダプタとすることができる。前記メモリは、前記キャッシュメモリであるとすることができる。前記メモリインタフェース装置は、前記キャッシュメモリアダプタであるとすることができる。
【００１９】
本発明の第五の態様では、前記ストレージシステムは、それの外部に存在する装置である外部装置と通信可能に接続されていてもよい。前記ストレージシステムは、キャッシュメモリと、ディスク型記憶装置と、前記外部装置からデータを受信して前記キャッシュメモリに書込む、及び／又は、前記キャッシュメモリからデータを取得して前記外部装置に送信することができるチャネルアダプタと、前記キャッシュメモリに書かれたデータを取得して前記ディスク型記憶装置に書込む、及び／又は、前記ディスク型記憶装置からデータを取得して前記キャッシュメモリに書込むことができるディスクアダプタとを備えることができる。前記チャネルアダプタ及び前記ディスクアダプタは、マイクロプロセッサと、ローカルメモリと、前記複数種類のパスに接続されるパスインタフェース装置とを備えることができる。前記複数のアクセス部の各々は、前記マイクロプロセッサとすることができる。前記メモリは、前記マイクロプロセッサにとって他のチャネルアダプタ又はディスクアダプタに搭載されている前記ローカルメモリとすることができる。前記メモリインタフェース装置は、前記マイクロプロセッサにとって他のチャネルアダプタ又はディスクアダプタに搭載されている前記パスインタフェース装置であるとすることができる。
【００２０】
本発明の第六の態様では、前記ストレージシステムは、ディスク型記憶装置を備えることができる。前記複数のアクセス部の各々は、前記ディスク型記憶装置に書かれるデータが情報に含まれているか否か、及び／又は、前記情報のサイズが所定値以上か否かを判断することができる。また、前記複数のアクセス部の各々は、前記判断の結果、前記ディスク型記憶装置に書かれるデータが情報に含まれている場合、及び／又は、前記情報のサイズが所定値以上である場合、前記情報を、前記スループット型パスを介して前記メモリインタフェース装置に送信することができる。また、前記複数のアクセス部の各々は、前記判断の結果、前記ディスク型記憶装置に書かれるデータが含まれていない場合、及び／又は、前記情報のサイズが所定値未満である場合、前記情報を、前記レスポンス型パスを介して前記メモリインタフェース装置に送信することができる。
【００２１】
本発明の第七の態様では、前記ストレージシステムは、ディスク型記憶装置を備えることができる。前記メモリインタフェース装置は、前記ディスク型記憶装置に記憶されていたデータが情報に含まれているか否か、及び／又は、前記情報のサイズが所定値以上か否かを判断することができる。また、前記メモリインタフェース装置は、前記判断の結果、前記ディスク型記憶装置に記憶されていたデータが情報に含まれている場合、及び／又は、前記情報のサイズが所定値以上である場合、前記情報を、前記スループット型パスを介して少なくとも一つのアクセス部に送信することができる。また、前記メモリインタフェース装置は、前記判断の結果、前記ディスク型記憶装置に記憶されていたデータが含まれていない場合、及び／又は、前記情報のサイズが所定値未満である場合、前記情報を、前記レスポンス型パスを介して少なくとも一つのアクセス部に送信することができる。
【００２２】
本発明の第八の態様では、前記メモリの同一の範囲に、前記レスポンス型パスを介して受信した情報と、前記スループット型パスを介して受信した情報とが混在するか、或いは、コマンド又は応答と、ディスク型記憶装置に記憶されるデータとが混在しても良い。
【００２３】
本発明の第九の態様では、前記メモリには、第一の記憶域と第二の記憶域とが用意されてもよい。前記第一の記憶域には、前記レスポンス型パスを介して受信した情報、或いは、コマンド又は応答が記憶されてもよい。前記第二に記憶域には、前記スループット型パスを介して受信した情報、或いは、ディスク型記憶装置に記憶されるデータが記憶されてもよい。前記第一の記憶域と前記第二の記憶域のサイズがそれぞれ固定又は可変になっていてもよい。
【００２４】
本発明の第十の態様では、前記メモリには、第一の記憶域と、第二の記憶域と、第三の記憶域とが用意されてもよい。前記第一の記憶域には、前記レスポンス型パスを介して受信した情報、或いは、コマンド又は応答が記憶されてもよい。前記第二に記憶域には、前記スループット型パスを介して受信した情報、或いは、ディスク型記憶装置に記憶されるデータが記憶されてもよい。前記第一の記憶域及び／又は前記第二の記憶域に、前記第三の記憶域の全部又は一部が動的に割り当てられたり、前記第三の記憶域の全部又は一部が前記第一の記憶域及び／又は前記第二の記憶域から動的に解放されたりしてもよい。
【００２５】
本発明の第十一の態様では、前記メモリインタフェース装置に、複数のメモリが接続されてもよい。前記メモリインタフェース装置は、各アクセス部から指定されたアクセス先に基づいて、前記複数のメモリの中からメモリを選択し、選択したメモリにアクセスすることができる。
【００２６】
本発明に従うストレージシステムによって行われる各処理は、各手段によって実行することができる。
【発明の効果】
【００２７】
本発明によれば、ストレージシステムの性能の劣化を抑える或いはそれの性能を向上することができる。
【発明を実施するための最良の形態】
【００２８】
以下、図面を参照して、本発明の一実施形態を説明する。
【００２９】
図１は、本発明の一実施形態の概要を示す。
【００３０】
メモリ１５と、メモリ１５にアクセスする複数のアクセス部１１、１１、…とが備えられる。また、メモリ１５と各アクセス部１１との間に、複数のアクセス部１１、１１、…からのメモリ１５に対するアクセスを制御するメモリアダプタ１３が備えられる。
【００３１】
各アクセス部１１は、例えば、プロセッサと、後述のＲパス２のインタフェース装置（以下、インタフェース装置を「Ｉ／Ｆ」と略記する）と、後述のＴパス３のＩ／Ｆとを含んだ装置とすることができる。具体的には、例えば、プロセッサは、後述のチャネルアダプタ（以下、ＣＨＡ）或いはディスクアダプタ（以下、ＤＫＡ）に搭載されているＭＰとすることができる。また、Ｒパス２のＩ／ＦとＴパス３のＩ／Ｆを含んだ装置として、後述のパスＩ／Ｆとすることができる。
【００３２】
また、メモリ１５は、例えば、後述のキャッシュメモリ（以下、ＣＭ）又はローカルメモリ（以下、ＬＭ）とすることができる。メモリ１５がＣＭであるとした場合、そのＣＭは、上述したような共有メモリ（以下、ＳＭ）としても利用可能なメモリとすることができる。これにより、上述のＳＭは不要となり、故に、ストレージシステムのコストを削減することができる。なお、この実施形態では、便宜上、ＳＭをＣＭに集約することでＳＭを不要としているが、別の言い方として、ＣＭをＳＭに集約することでＣＭを不要とすることもできる。要するに、物理的に分かれている二種類のメモリを一種類にすることができる、ということである。
【００３３】
この実施形態には、種々の着目すべき点がある。
【００３４】
例えば、着目すべき第一の点は、各アクセス部１１とメモリ１５の間、少なくとも、各アクセス部１１とメモリアダプタ１３の間に、レスポンス重視型のパス（以下、Ｒパス）２と、スループット重視型のパス（以下、Ｔパス）３とが用意される点にある。
【００３５】
Ｒパス２は、情報（例えば、リードコマンド或いはライトコマンド等のコマンド）を送信してからその応答が返送されてくるまでの時間長が短いパスとすることができる。換言すれば、Ｒパス２は、情報量が少なく素早い応答が求められる情報の通信に適したパスとすることができる。以下、Ｒパス２を介してやり取りされる情報又はアクセスを、便宜上、「Ｒ情報」又は「Ｒアクセス」と言う場合がある。
【００３６】
Ｔパス３は、大量の情報をやり取りできるパス（例えば、データの転送が一旦受付けられるとバースト転送により大量にデータをやり取りできるパス）とすることができる。換言すれば、Ｔパス３は、ディスク型の記憶デバイス（以下、ディスク装置）に書かれたりディスク装置から読まれたりするデータの通信に適したパスとすることができる。Ｔパス３は、例えば、PCI-Expressである。以下、Ｔパス３を介してやり取りされる情報又はアクセスを、便宜上、「Ｔ情報」又は「Ｔアクセス」と言う場合がある。
【００３７】
また、例えば、着目すべき第二の点は、メモリアダプタ１３が、Ｔパス３を介したメモリ１５へのアクセス（つまりＴアクセス）よりもＲパス２を介したメモリ１５へのアクセス（つまりＲアクセス）を優先させるアービタ１４を備える点にある。このアービタ１４は、例えば、ＲアクセスとＴアクセスとを実質的に同時に受けた場合には、Ｒアクセスを優先的に許可することができる。その後、アービタ１４は、例えば、上記受けたＴアクセスを許可する前に、新たにＲアクセスを受けた場合には、その新たに受けたＲアクセスを優先的に許可することができる。アービタ１４は、例えば、Ｒアクセスを優先的に許可した回数をカウントし、その回数が所定回数に達したならば、その後、仮に、ＲアクセスとＴアクセスとを実質的に同時に受けたとしても、或いは、受信済みのＴアクセスを許可する前に新たにＲアクセスを受けたとしても、Ｔアクセスを許可することができる。
【００３８】
以下、本実施形態についてのより具体的な幾つかの実施例を説明する。
【実施例１】
【００３９】
図２は、本発明の第一実施例に係るストレージシステムの構成例を示す。
【００４０】
ストレージシステム１００は、例えばRAID（Redundant Array of Independent Disks）のようなディスクアレイ装置である。ストレージシステム１００は、例えば、ストレージシステム１００が行う処理を制御する制御部１０１と、RAIDグループ２１０と、サービスプロセッサ（ＳＶＰ）２８１とを備える。制御部１０１は、例えば、一又は複数のＤＫＡ１２０と、一又は複数のＣＨＡ１１０と、ＣＭ１３０と、ＣＭアダプタ（以下、ＣＭＡ）２７０とを備える。
【００４１】
RAIDグループ２１０は、複数のディスク装置１５０を含んでおり、例えば、RAID１やRAID５等のRAIDに基づく冗長記憶を提供する。各ディスク装置１５０は、例えば、ハードディスクドライブであるが、他種の装置（例えば、DVD（Digital Versatile Diskドライブ）であってもよい。各ディスク装置１５０には、ホスト装置１８０からのコマンドに従って読まれたり書かれたりするデータが記憶される。
【００４２】
各ＤＫＡ１２０は、各ディスク装置１５０との間のデータ授受を制御するものである。各ＣＨＡ１１０は、通信ネットワーク（例えばＳＡＮ（Storage Area Network）或いはＬＡＮ）１９０を介して、ホスト装置１８０から情報（例えばコマンドやデータ）を受信する。ＤＫＡ１２０とＣＨＡ１１０は、実質的に同じハードウェア構成を採用することができるので、ＣＨＡ１１０のハードウェア構成を代表的に例に採り説明する。
【００４３】
ＣＨＡ１１０は、ＭＰ１１２と、ＬＭ１１１と、パスＩ／Ｆ１１４とを備える。ＬＭ１１１は、ＣＨＡ１１０やＤＫＡ１２０に搭載されるメモリであり、種々の情報（例えばデータやコンピュータプログラム）を記憶することができる。ＭＰ１１２は、例えば、ＬＭ１１１に格納されている制御プログラム１１３を読み込んで実行することで、ＣＭ１３０へのアクセスの制御などの種々の制御を実行することができる。パスＩ／Ｆ１１４は、Ｒパス２に接続されるＲパスＩ／Ｆ（図示せず）と、Ｔパス３に接続されるＴパスＩ／Ｆ（図示せず）とを備える。ＭＰ１１２は、パスＩ／Ｆ１１４を介し、Ｒパス２及びＴパス３を通じ、更に、ＣＭＡ２７０を介して、ＣＭ１３０にアクセスすることができる。Ｒパス及びＴパス３のうちのどちらのパスを介してアクセスするかの選択は、ＭＰ１１２及びパスＩ／Ｆ１１４のうちのいずれかによって行うことができる。例えば、パスＩ／Ｆ１１４から出力される情報が、コマンドである、或いは、ディスク装置１５０に書かれるデータであるが所定値より小さいサイズのデータである場合には、Ｒパス２が選択されても良い。また、例えば、パスＩ／Ｆ１１４から出力される情報が、ディスク装置１５０に書かれるデータである、或いは、所定値以上のサイズのデータである場合には、Ｔパス３が選択されても良い。
【００４４】
ＣＭ１３０は、例えば、揮発性または不揮発性の半導体メモリから構成することができる。このＣＭ１３０は、上述したＳＭが集約されたものとすることができる。すなわち、ＣＭ１３０は、ディスク装置１５０とホスト装置１８０との間で授受されるデータを一時的に記憶することの他に、各ＭＰ１１２間でやり取りされるコマンドや、ストレージシステム１００の制御に使用する制御情報（例えば、ストレージシステム１００の構成に関する情報）を記憶することができる。
【００４５】
ＣＭＡ２７０は、ＣＭ１３０へのアクセスを制御するＬＳＩ（Large Scale Integration）とすることができる。ＣＭＡ２７０と各ＣＨＡ１１０及び各ＤＫＡ１２０とは、少なくも一本のＲパス２と、少なくとも一本のＴパス３とにより接続されている。
【００４６】
ＳＶＰ（Service Processor）２８１は、例えば、少なくとも一つのＣＨＡ１１０（或いはＤＫＡ１２０）と通信可能に接続されている。ＳＶＰ２８１は、例えば、パーソナルコンピュータ等の計算機である。ＳＶＰ２８１は、少なくとも一つのＣＨＡ１１０に対し、或いはそれを介して、種々の設定を行うことができる。
【００４７】
次に、ストレージシステム１００が行う処理の一例について説明する。
【００４８】
例えば、ＣＨＡ１１０が、ホスト装置１８０から、ライトコマンド（以下、ホストライトコマンド）及びデータを受信したとする。この場合、ＭＰ１１２及びパスＩ／Ｆ１１４の少なくとも一方が、そのホストライトコマンドに従う、ＤＫＡ１２０のＭＰに対するライトコマンド（以下、ＭＰライトコマンド）を、Ｒパス２を介してＣＭＡ２７０に送信することができる。また、ＭＰ１１２及びパスＩ／Ｆ１１４の少なくとも一方が、受信したデータを、Ｔパス３を介してＣＭＡ２７０に送信することができる。ＣＭＡ２７０は、Ｒパス２を介して受信したＭＰライトコマンドや、Ｔパス３を介して受信したデータを、ＣＭ１３０に書くことができる。ＣＭＡ２７０は、ＣＭ１３０に書かれたＭＰライトコマンドを取得し、そのＭＰライトコマンドを、そのコマンドの宛先ＭＰを搭載したＤＫＡ１２０に、Ｒパス２を介して送信することができる。また、ＣＭＡ２７０は、ＣＭ１３０に書かれたデータを取得し、そのデータを、その宛先ＭＰを搭載したＤＫＡ１２０に、Ｔパス３を介して送信することができる。上記宛先ＭＰは、ＣＭＡ２７０から、Ｒパス２を介してＭＰライトコマンドを受信し、且つ、Ｔパス３を介してデータを受信することができる。宛先ＭＰは、受信したＭＰライトコマンドに従い、受信したデータをディスク装置１５０に書くことができる。また、宛先ＭＰは、ＭＰライトコマンドの応答を、Ｒパス２を介してＣＭＡ２７０に返す。ＣＭＡ２７０は、Ｒパス２を介して受信した応答をＣＭ１３０に書いたり、その応答を、ＣＭ１３０から取得して、ＭＰライトコマンドの送信元に、Ｒパス２を介して出力したりすることができる。
【００４９】
また、例えば、ＣＨＡ１１０が、ホスト装置１８０から、リードコマンド（以下、ホストリードコマンド）を受信したとする。この場合、ＭＰ１１２及びパスＩ／Ｆ１１４の少なくとも一方が、そのホストリードコマンドに従う、ＤＫＡ１２０のＭＰに対するリードコマンド（以下、ＭＰリードコマンド）を、Ｒパス２を介してＣＭＡ２７０に送信することができる。ＣＭＡ２７０は、Ｒパス２を介して受信したＭＰリードコマンドを、ＣＭ１３０に書くことができる。ＣＭＡ２７０は、ＣＭ１３０に書かれたＭＰリードコマンドを取得し、そのＭＰリードコマンドを、そのコマンドの宛先ＭＰを搭載したＤＫＡ１２０に、Ｒパス２を介して送信することができる。そのＭＰリードコマンドに対する応答を、上記のＭＰライトコマンドに対する応答と同様に、例えば、Ｒパス２、ＣＭＡ２７０及びＣＭ１３０を介して、ＭＰリードコマンドの送信元に返すことができる。宛先ＭＰは、ＭＰリードコマンドに従って、ディスク装置１５０からデータを取得し、取得したデータを、Ｔパス３を介してＣＭＡ２７０に送信することができる。ＣＭＡ２７０は、受信したデータをＣＭ１３０に書いたり、そのデータを、ＣＭ１３０から取得して、ＭＰリードコマンドの送信元に、Ｔパス３を介して送信したりすることができる。ＭＰリードコマンドの送信元であるＣＨＡ１１０は、Ｔパス３を介して受信したデータを、ホストリードコマンドの送信元のホスト装置１８０に、送信することができる。
【００５０】
以上が、本実施例におけるストレージシステム１００の概要である。なお、Ｒパス２及びＴパス３でのそれぞれの通信プロトコルについては、以下のプロトコルが好ましいと考えられる。
【００５１】
すなわち、Ｒパス２を介した通信のプロトコルとしては、少なくともＴパス３での頭出し時間長よりも頭出し時間長が短くて済むものが好ましい。具体的には、例えば、Ｒパス２の通信プロトコルとしては、オーバヘッドが小さく単発のランダムアクセスに優れたプロトコルが好ましい。より具体的な一例を図１３Ｂに示す。すなわち、Ｒパス２では、情報の転送長が短く（例えば４或いは８バイト）、スループットは低いが、ＭＰ１１２は、マッピングされたＣＭ１３０上のアドレスに対してアクセスすることができるようになっている（例えば、ＬＭ１１１に、ＣＭ１３０のアドレスマップが記憶されており、ＭＰ１１２は、そのアドレスマップを基に、ＣＭ１３０にアクセスすることができる）。故に、頭だし時間長が短くて済む（換言すれば、レスポンスを早くすることができる）。
【００５２】
一方、Ｔパス３を介した通信のプロトコルとしては、頭出し時間長がＲパス２のそれよりも長くとも、データ転送に優れたものが好ましい。具体的には、例えば、Ｔパス３の通信プロトコルとしては、オーバヘッドが大きくても、バーストアクセスに優れたプロトコルが好ましい。より具体的な一例を図１４に示す。例えば、ＭＰ１１２は、ＬＭ１１１に、パラメータおよびデータを書き（ステップＳ１００）、パスＩ／Ｆ１１４に、転送の要求を出すことができる。パスＩ／Ｆ１１４は、その要求に応答して、ＬＭ１１１からパラメータ及びデータを読み（Ｓ３００）、読んだパラメータを基に、ＣＭ１３０にデータを転送することができる（Ｓ４００）。以上のように、ＬＭ１１１にパラメータ及びデータを設定し、パスＩ／Ｆに起動をかける手順が必要なため、頭だし時間長は長いが、バースト転送（例えば、最大８キロバイトのバースト転送）を行うことができるので、スループットは高い。
【００５３】
さて、次に、ＣＭＡ２７０について、詳細に説明する。
【００５４】
図３は、ＣＭＡ２７０の構成例を示す。
【００５５】
ＣＭＡ２７０は、純粋なハードウェア回路（例えばＡＳＩＣ）とすることもできるし、マイクロコンピュータとハードウェア回路との組み合わせとすることもできる。ＣＭＡ２７０は、ＲパスＩ／Ｆ２１Ｒと、ＴパスＩ／Ｆ２１Ｔと、セレクタ３１と、メインアービタ３０と、メモリコントローラ３２とを備える。
【００５６】
ＲパスＩ／Ｆ２１Ｒが、リクエストライン２４及び応答ライン２５を介して、メインアービタ３０に通信可能に接続されており、且つ、Ｒパスライン２９を介して、メモリコントローラ３２に通信可能に接続されている。同様に、ＴパスＩ／Ｆ２１Ｔが、リクエストライン２２及び応答ライン２３を介して、メインアービタ３０に通信可能に接続されており、且つ、Ｔパスライン２８を介して、メモリコントローラ３２に通信可能に接続されている。各ライン２２、２３、２４、２５、２８及び２９を介したやり取りについては、ＣＭＡ２７０で行われる処理の説明の際に説明する。
【００５７】
ＲパスＩ／Ｆ２１Ｒは、複数のＲパス２に接続されている。ＲパスＩ／Ｆ２１Ｒは、Ｒパスバッファ３５Ｒと、Ｒパスアービタ３７Ｒとを備える。Ｒパスバッファ３５Ｒは、各Ｒパス２を介して受信したＲ情報（例えばコマンド又は応答）や、ＣＭ１３０からメモリコントローラ３２を介して受信したＲ情報を一時的に記憶できるバッファである。Ｒパスアービタ３７Ｒは、複数のＲパス２、２、…のうちのどのＲパス２からのＲ情報を受けてＲパスバッファ３５Ｒに書くかを制御することができるアービタである。
【００５８】
ＴパスＩ／Ｆ２１Ｔは、複数のＴパス３に接続されている。ＴパスＩ／Ｆ２１Ｔは、Ｔパスバッファ３５Ｒと、Ｔパスアービタ３７Ｔとを備える。Ｔパスバッファ３５Ｔは、各Ｔパス３を介して受信した情報（つまりＴ情報）や、ＣＭ１３０からメモリコントローラ３２を介して受信したＴ情報を一時的に記憶できるバッファである。Ｔパスアービタ３７Ｔは、複数のＴパス３、３、…のうちのどのＴパス３からのＴ情報を受けてＴパスバッファ３５Ｔに書くかを制御することができるアービタである。
【００５９】
セレクタ３１は、メインアービタ３０から入力された信号に従って、Ｒ情報Ｔ情報とのうちのどちらをメモリコントローラ３２に出力するかを選択することができる。
【００６０】
メインアービタ３０は、ＲアクセスとＴアクセスとのうちのどちらを許可するか（例えば、Ｒ情報とＴ情報のうちのどちらがメモリコントローラ３２に出力されることを許可するか）を選択し、選択結果に応じた信号をセレクタ３１に出力することができる。具体的には、例えば、メインアービタ３０は、例えば、図４Ａに示すように、シーケンサ４１と、カウンタ４３を備えている。カウンタ４３は、レジスタ４４を備えている。レジスタ４４には、後述するカウントフル閾値が記憶されている。シーケンサ４１及びカウンタ４３によって行われる処理についても、ＣＭＡ２７０で行われる処理の説明の際に説明する。
【００６１】
メモリコントローラ３２は、セレクタ３１で選択された情報を受信してＣＭ１３０に書いたり、ＣＭ１３０から情報を取得し、取得した情報を、Ｒパスライン２９又はＴパスライン２８を介して出力したりすることができる。
【００６２】
以下、ＣＭＡ２７０で行われる処理の流れの一例を説明する。
【００６３】
例えば、ＴパスＩ／Ｆ２１Ｔが一以上のＴパス３からＴ情報を受信した場合、Ｔパスアービタ３７Ｔが、どのＴパス３からＴ情報を受信するかを選択し、選択したＴパス３からＴ情報を受けてＴパスバッファ３５Ｔに書く。ＴパスＩ／Ｆ２１Ｔは、Ｔ情報がＴパスバッファ３５Ｔに格納されていれば、リクエストライン２２を介して、Ｔアクセスの許可の要求（以下、Ｔ−ＲＥＱ）を、メインアービタ３０に出す。ＴパスＩ／Ｆ２１Ｔは、そのＴ−ＲＥＱに対して、Ｔアクセスの許可（以下、Ｔ−ＧＮＴ）を、応答ライン２３を介して受信するまで、Ｔ−ＲＥＱを出し続ける（例えば、リクエストライン２２における信号レベルをHighレベルのままにする）。一方、ＴパスＩ／Ｆ２１Ｔは、Ｔ−ＧＮＴを受けた場合には、Ｔ−ＲＥＱを解除し（例えば、リクエストライン２２における信号レベルをHighレベルからLowレベルにし）、Ｔパスバッファ３５Ｔ内のＴ情報（例えば、Ｔパスバッファ３５Ｔのうち最も過去に受けた情報）を、ライン２６を介して、セレクタ３１に出力する。ＴパスＩ／Ｆ２１Ｔは、Ｔパスバッファ３５Ｔに存在する各Ｔ情報毎に、Ｔ−ＲＥＱの発行、Ｔ−ＧＮＴの受信、及びＴ情報の出力を繰り返す。
【００６４】
ＲパスＩ／Ｆ２１Ｒも、ＴパスＩ／Ｆ２１Ｔと同様の処理を行うことができる。すなわち、例えば、ＲパスＩ／Ｆ２１Ｒが一以上のＲパス２からＲ情報を受信した場合、Ｒパスアービタ３７Ｒが、どのＲパス２からＲ情報を受信するかを選択し、選択したＲパス２からＲ情報を受けてＲパスバッファ３５Ｒに書く。ＲパスＩ／Ｆ２１Ｒは、Ｒ情報がＲパスバッファ３５Ｒに格納されていれば、リクエストライン２４を介して、Ｒアクセスの許可の要求（以下、Ｒ−ＲＥＱ）を、メインアービタ３０に出す。ＲパスＩ／Ｆ２１Ｒは、そのＲ−ＲＥＱに対して、Ｒアクセスの許可（以下、Ｒ−ＧＮＴ）を、応答ライン２５を介して受信するまで、Ｒ−ＲＥＱを出し続ける。一方、ＲパスＩ／Ｆ２１Ｒは、Ｒ−ＧＮＴを受けた場合には、Ｒ−ＲＥＱを解除し、Ｒパスバッファ３５Ｒ内のＲ情報を、ライン２６を介して、セレクタ３１に出力する。ＲパスＩ／Ｆ２１Ｒは、Ｒパスバッファ３５Ｒに存在する各Ｒ情報毎に、Ｒ−ＲＥＱの発行、Ｒ−ＧＮＲの受信、及びＲ情報の出力を繰り返す。
【００６５】
メインアービタ３０のシーケンサ４１は、図４Ｂに例示するように、Ｒ−ＲＥＱもＴ−ＲＥＱも受けていない場合には、アイドル状態（待ち状態）になっている。
【００６６】
シーケンサ４１は、アイドル状態において、Ｒ−ＲＥＱを受けた場合、カウントフルになっていなければ（カウンタ４３によるカウント値がレジスタ４４におけるカウントフル閾値に達していなければ）、Ｒ−ＧＮＴ状態に遷移し、Ｒ−ＧＮＴを出力し、Ｒアクセスを許可することに応じた信号をセレクタ３１に出力すると共に、カウントアップをカウンタ４３に命じる。カウンタ４３は、その命令に応答して、カウント値を更新する（例えば、カウント１増やす）。その後、シーケンサ４１の状態は、Ｒ−ＧＮＴ状態から再びアイドル状態に遷移する。シーケンサ４１は、先にＴ−ＲＥＱを受けても、それを受けて所定時間内にＲ−ＲＥＱを受けた場合には、Ｒ−ＧＮＴ状態に遷移することができる。
【００６７】
シーケンサ４１は、アイドル状態において、Ｔ−ＲＥＱを受けた場合、カウントフルになっていれば（カウンタ４３によるカウント値がレジスタ４４におけるカウントフル閾値に達していれば）、又は、所定時間内にＲ−ＲＥＱを受けなければ、Ｔ−ＧＮＴ状態に遷移し、Ｔ−ＧＮＴを出力し、Ｔアクセスを許可することに応じた信号をセレクタ３１に出力する。カウントフルになっているが故にＴ−ＧＮＴ状態に遷移した場合、シーケンサ４１は、カウンタ４３に、カウント値をリセットさせることができる。その後、シーケンサ４１の状態は、Ｔ−ＧＮＴ状態から再びアイドル状態に遷移する。
【００６８】
再び図３を参照する。ＴパスＩ／Ｆ２１Ｔは、Ｔ−ＧＮＴを受信した場合、Ｔパスバッファ３５Ｔ内のＴ情報をセレクタ３１に出力することができる。同様に、ＲパスＩ／Ｆ２１Ｒは、Ｒ−ＧＮＴを受信した場合、Ｒパスバッファ３５Ｒ内のＲ情報をセレクタ３１に出力することができる。
【００６９】
セレクタ３１は、メインアービタ３０から受信した信号に従って、ＴパスＩ／Ｆ２１Ｔから受信したＴ情報、或いは、ＲパスＩ／Ｆ２１Ｒから受信したＲ情報を、メモリコントローラ３２に出力することができる。
【００７０】
メモリコントローラ３２は、Ｒ情報又はＴ情報を受信し、受信した情報をＣＭ１３０に書くことができる。また、メモリコントローラ３２は、受信したＲ情報又はＴ情報が、ＣＭ１３０からのリード要求を表してれば、その要求に従い、ＣＭ１３０から情報を取得し、取得した情報を、Ｒパスライン２９を介してＲパスＩ／Ｆ２１Ｒに出力する、又は、Ｔパスライン２８を介してＴパスＩ／Ｆ２１Ｔに出力することができる。
【００７１】
以上が、第一実施例についての説明である。
【００７２】
なお、この第一実施例では、各ＣＨＡ１１０及び各ＤＫＡ１２０とＣＭＡ２７０との間には、直接、Ｒパス２及びＴパス３が張られるが、接続形態はそれに限らない。例えば、図５Ａに例示するように、レスポンス速度を重視するＲパス２には、スイッチが存在しないが、各Ｔパス３には、スイッチ（例えばＬＳＩ）５１が存在しても良い。また、例えば、図５Ｂに例示するように、Ｒパス２にも、スイッチ５３が存在しても良い。その際、レスポンス速度を重視する観点から、Ｔパス３に存在するスイッチの数よりも、Ｒパス２に存在するスイッチの数が少ない方が好ましいと考えられる。
【００７３】
また、この第一実施例では、カウントフル閾値は、固定値でも良いが、手動により更新することができる値であっても良い。具体的には、例えば、図６に例示するように、ユーザが、ＳＶＰ２８１に、所望のカウントフル閾値（例えば、Ｒアクセスの優先比率）を入力することができる。ＳＶＰ２８１が、入力されたカウントフル閾値を、所定のＩ／Ｆ（例えばＬＡＮ  Ｉ／Ｆ１１７）を介してＣＨＡ１１０に入力することができる。ＣＨＡ１１０が、入力されたカウントフル閾値をレジスタ４４に書き込むことをＣＭＡ２７０に命じることにより、カウントフル閾値を更新することができる。
【００７４】
以上、上述した第一実施例によれば、各ＣＨＡ１１０及び各ＤＫＡ１２０とＣＭ１３０との間に、Ｒパス２とＴパス３とが張られる。各ＣＨＡ１１０及び各ＤＫＡ１２０は、コマンド或いは応答等の、レスポンスの速度が重視される類の情報については、Ｒパス２を介して送受信することができ、一方、データ等の、スループットが重視される類の情報についは、Ｔパス３を介して送受信することができる。これにより、ストレージシステム１００のスループットの低減を抑えつつ、ＳＭを不要としコストの削減を図ることができる。
【００７５】
また、上述した第一実施例によれば、メインアービタ３０のシーケンサ４１は、ＲアクセスをＴアクセスよりも優先して許可することができる。すなわち、シーケンサ４１は、Ｔ−ＲＥＱを先に受けても、それから所定時間内にＲ−ＲＥＱを受け、且つ、カウントフルでない場合には、Ｔ−ＧＮＴよりも先にＲ−ＧＮＴを先に出力することができる。また、Ｒ−ＧＮＴを出力した後、所定時間内にＲ−ＲＥＱを受けた場合には、シーケンサ４１は、カウントフルでない限り、Ｔ−ＧＮＴではなくＲ−ＧＮＴを出力することができる。しかし、シーケンサ４１は、カウントフルになった場合において、Ｔ−ＲＥＱを受けたならば、それから所定時間内にＲ−ＲＥＱを受けようとも、Ｔ−ＧＮＴを出す。カウントフル閾値をどのような値にするかで、ストレージシステム１００のパフォーマンスを、制御することができる。例えば、この第一実施例において、カウントフル閾値として「１０」が設定されれば、Ｒアクセスが１０回優先して許可されたら、Ｔアクセスが１回許可される。
【実施例２】
【００７６】
以下、本発明の一実施形態の第二実施例について説明する。なお、以下、第一実施例との相違点を主に説明し、第一実施例との共通点については説明を簡略或いは省略する。
【００７７】
図７は、本発明の第二実施例におけるＣＭＡ８７０の構成例を示す。
【００７８】
この第二実施例では、Ｒパス２の数が、Ｔパス３の数よりも多くなっている。
【００７９】
また、例えば、Ｒパスアービタ３７Ｒ及びＴパスアービタ３７Ｔが、タイマ７８から入力される時刻を基に、情報をバッファ３５Ｒ又は３５Ｔに書き込むときの時刻を、その情報と対応付けてバッファ３５Ｒ又は３５Ｔに設定することができる。
【００８０】
ＲパスＩ／Ｆ６１Ｒに、Ｒ判定回路３６Ｒが備えられ、ＴパスＩ／Ｆ６１Ｔに、Ｔ判定回路３６Ｔが備えられる。Ｒ判定回路３６Ｒは、Ｒパスバッファ３５Ｒに書かれたＲ情報のパターンとそのときの時刻（例えばそのＲ情報に対応付けられた時刻）とを判定し、判定結果に応じた処理を実行することができる。同様に、Ｔ判定回路３６Ｔは、Ｔパスバッファ３５Ｔに書かれたＴ情報のパターンとそのときの時刻とを判定し、判定結果に応じた処理を実行することができる。Ｒ判定回路３６ＲもＴ判定回路３６Ｔも、純粋なハードウェア回路で実現することができる。
【００８１】
また、ＣＭＡ８７０には、通信パターン統計回路６０が備えられる。通信パターン統計回路６０は、ＣＭＡ８７０を介した通信のパターンの統計を求めるために利用される回路であり、例えば、カウンタ群とすることができる。通信のパターンの統計とは、例えば、どのような種類のどのようなサイズの情報をどのような比率で送受信するかや、どのような頻度で送受信するかである。情報の種類としては、例えば、リードコマンド、或いはライトコマンドなどのコマンド種類とすることができる。頻度としては、単位時間当たりに送受信された回数とすることができる。
【００８２】
図８Ａは、通信パターン統計回路７０の構成例を示す。
【００８３】
通信パターン統計回路７０には、Ｔパス用のカウンタ群７１と、Ｒパス用のカウンタ群７２とがある。各カウンタ群７１、７２は、同様の構成になっているので、Ｔパス用のカウンタ群７１を代表的に例に採り説明する。Ｔパス用のカウンタ群７１は、ライト用のサブカウンタ群７１Ｗと、リード用のサブカウンタ群７１Ｒと、頻度用のサブカウンタ群７１Ｆとを有する。ライト用のサブカウンタ群７１Ｗ及びリード用のサブカウンタ群７１Ｒは、複数種類の情報サイズ範囲にそれぞれ対応した複数のカウンタから構成されている。頻度用サブカウンタ群７１Ｆは、複数の時期（例えば２４時間における複数の時期）にそれぞれ対応した複数のカウンタから構成されている。各カウンタによってカウント値がどのように更新されるかについては、ＣＭＡ８７０で行われる処理の一例の説明の際に説明する。
【００８４】
この通信パターン統計回路７０の各カウンタの各カウント値から、種々の通信パターンの統計を求めることができる。例えば、Ｔパス用のカウンタ群７１のライト用サブカウンタ群７１Ｗにおける全てのカウント値を参照すれば、ＣＭ１３０に書かれた情報サイズの統計を求めることができる。また、例えば、Ｔパス用のサブカウンタ群７１の全てのカウント値と、Ｒパス用のサブカウンタ群７２の全てのカウント値とを比較すれば、ライトコマンドとリードコマンドの受信比率を求めることもできる。
【００８５】
なお、通信パターン統計回路７０の構成例はこれに限られない。例えば、ライト用のサブカウンタ群及びリード用のサブカウンタ群の各々に、頻度用のサブカウンタ群が用意されても良い。その場合、書込みの頻度や読み出しの頻度を別々に求めることができる。
【００８６】
この第二実施例では、メインアービタ６０内のカウンタのレジスタに、カウントフル閾値の他に、統計／閾値テーブルも記憶される。
【００８７】
図８Ｂは、統計／閾値テーブルの構成例を示す。
【００８８】
統計／閾値テーブル９１には、複数の通信パターン統計にそれぞれ対応付けられた複数のカウントフル閾値が記憶されている。通信パターン統計は、上述した複数のカウンタによる複数のカウント値に基づいて求められる通信パターンの統計（例えば、ライトコマンドとリードコマンドの受信回数や受信頻度のそれぞれの比率など）である。
【００８９】
以下、この第二実施例で行われる種々の処理について説明する。
【００９０】
図９Ａは、ＣＨＡ或いはＤＫＡのＭＰが行うことのできる処理の流れの一例を示す。
【００９１】
ＭＰ８１２は、情報を出力する場合、出力対象となる情報にデータ（例えば、ホスト装置１８０からディスク装置１５０に書かれるデータ）が含まれるか否か、或いは、その情報のサイズが所定値以上か否かを判断する（ステップＳ１）。
【００９２】
Ｓ１の判断の結果、情報にデータが含まれている、或いは、情報のサイズが所定値以上である場合には、ＭＰ８１２は、Ｔパス３に情報を出力することができる（Ｓ２）。一方、Ｓ１の判断の結果、情報にデータが含まれていない、或いは、情報のサイズが所定値未満である場合には、ＭＰ８１２は、Ｒパス２に情報を出力することができる（Ｓ３）。
【００９３】
以上のように、この第二実施例では、ＭＰ８１２は、情報を出力する場合に、Ｒパス２とＴパス３のどちらにその情報を出力することが好ましいかを判断し、好ましいと判断された方のパスに、その情報を出力することができる。これにより、ストレージシステム１００のパフォーマンスの向上が期待できる。すなわち、例えば、ＭＰ８１２は、リードコマンド及びライトコマンドを出す際に、一律に、Ｔパス３に出力するのではなく、ホスト装置１８０からのデータが存在するライトコマンドの場合には、Ｔパス３を使用し、そのようなデータの存在しないリードコマンドの場合には、Ｒパス２を使用することができる。
【００９４】
図９Ｂは、ＣＭＡ８７０上のメモリコントローラ８２が行うことのできる処理の流れの一例を示す。
【００９５】
メモリコントローラ８２は、ＣＭ１３０から取得された情報をＲパスＩ／Ｆ６１Ｒ又はＴパスＩ／Ｆ６１Ｔに出力する場合、出力対象となる情報にデータ（例えば、ディスク装置１５０から読まれたデータ）が含まれているか否か、或いは、その情報のサイズが所定値以上か否かを判断する（Ｓ１１）。
【００９６】
Ｓ１１の判断の結果、情報にデータが含まれている、或いは、情報のサイズが所定値以上である場合にはメモリコントローラ８２は、Ｔパスライン２８に情報を出力することができる（Ｓ１２）。一方、Ｓ１１の判断の結果、情報にデータが含まれていない、或いは、情報のサイズが所定値未満である場合には、メモリコントローラ８２は、Ｒパスライン２９に情報を出力することができる（Ｓ１３）。
【００９７】
以上のように、この第二実施例では、メモリコントローラ８２は、情報を出力する場合に、Ｒパスライン２９とＴパスライン２８のどちらにその情報を出力することが好ましいかを判断し、好ましいと判断された方のパスに、その情報を出力することができる。これにより、ストレージシステム１００のパフォーマンスの向上が期待できる。
【００９８】
図１０Ａは、Ｔ判定回路３６Ｔが行うことのできる処理の流れの一例を示す（なお、Ｒ判定回路３６Ｒも、図１０Ａに示す処理の流れを実行することができる）。図１０Ｂは、通信パターン統計回路７０が行う処理の流れの一例を示す。
【００９９】
Ｔ判定回路３６Ｔは、Ｔパスバッファ３５Ｔ内の情報を参照する（Ｓ２１）。そして、Ｔ判定回路３６Ｔは、参照した情報のパターン（例えば、ライトコマンドであるかリードコマンドであるか、情報のサイズはどのぐらいか）と、参照した情報が書かれた時刻とを判定し、通信パターン統計回路７０における、判定結果に応じたカウンタに、ライン６８を介して、カウンタ値の更新を命じる（Ｓ２２）。それにより、その判定結果に応じたカウンタのカウント値が更新される（Ｓ３１及びＳ３２）。具体的には、例えば、Ｔパス用のカウンタ群７１において、ライト用又はリード用のサブカウンタ群７２又は７３における、判定された情報サイズが属する範囲に対応したカウンタのカウント値と、頻度用のサブカウンタ群７４における、判定された時刻が属する時期に対応したカウンタのカウント値が、それぞれ更新される。
【０１００】
Ｔ判定回路３６Ｔは、Ｔパスバッファ３５Ｔに未参照の情報が存在する限り（Ｓ２３でＹＥＳ）、Ｓ２１及びＳ２２の処理を繰り返すことができる。
【０１０１】
図１０Ｃは、メインアービタ６０が行うことのできる処理の流れの一例を示す。
【０１０２】
メインアービタ６０は、通信パターン統計回路７０から各カウント値を取得する（Ｓ４１）。このＳ４１は、例えば、ホスト装置１８０又はＳＶＰ２８１から所定のコマンドを受けたときに実行することもできるし、定期的に又は不定期的に実行することもできる。
【０１０３】
メインアービタ６０は、取得された各カウント値を基に通信パターン統計を算出し、算出された通信パターン統計に対応したカウントフル閾値を、統計／閾値テーブル９１から選択する（Ｓ４２）。そして、メインアービタ６０は、選択されたカウントフル閾値を、現在のカウントフル閾値として、メインアービタ６０におけるカウンタのレジスタに設定する（Ｓ４３）。
【０１０４】
以上の第二実施例によれば、ストレージシステムにおいて、適宜、通信パターン統計が算出され、カウントフル閾値が、その通信パターン統計に対応したカウントフル閾値に自動的に更新される。これにより、通信パターン統計が変化したら、カウントフル閾値の設定値が、自動的にそれに対応したカウントフル閾値に変わるので、ストレージシステム１００のパフォーマンスがより向上することが期待できる。
【０１０５】
以上が、第二実施例についての説明である。なお、この第二実施例（及び／又は他の実施例）において、ＣＭ１３０は、以下のように使用することができる。すなわち、図１１Ａに例示するように、同一の範囲に、Ｒ情報（又は、コマンド或いは応答）とＴ情報（又はデータ）とが混在しても良い。また、例えば、図１１Ｂに例示するように、Ｒ情報（又はコマンド或いは応答）の記憶域１３０Ａと、Ｔ情報（例えばデータ）の記憶域１３０Ｂとが区分けされていて、それらの記憶域１３０Ａ、１３０Ｂの境界が、固定であっても良い。また、例えば、図１１Ｃに例示するように、その境界が、可変であっても良い（例えば、更新後のカウントフル閾値に応じた位置に動的に変更されても良い）。また、例えば、図１１Ｄに示すように、Ｒ情報（又はコマンド或いは応答）の記憶域１３０Ａと、Ｔ情報（例えばデータ）の記憶域１３０Ｂとの他に、どちらにも属しない自由な記憶域１３０Ｃが用意されても良い。この場合、自由な記憶域１３０Ｃは、いわゆるプール領域として、記憶域１３０Ａ、１３０Ｂの空き状況などに応じて、動的に、記憶域１３０Ａ、１３０Ｂに割り当てられたり、記憶域１３０Ａ、１３０Ｂから解放されたりしても良い。
【実施例３】
【０１０６】
図１２は、本発明の一実施形態の第三実施例に係るＣＨＡ７１０及びＣＭＡ４７０の構成例を示す。
【０１０７】
ＣＭＡ４７０には、複数のＣＭ１３０、１３０、…が接続されている。これに伴い、ＣＭＡ４７０には、複数のＣＭ１３０、１３０、…にそれぞれ対応した複数のメモリコントローラ３２、３２、…が備えられている。ＲパスＩ／Ｆ３２１Ｒ及びＴパスＩ／Ｆ３２１Ｔは、どのＣＭ１３０にアクセスするためにはどのメモリコントローラ３２にアクセスするべきかを表した図示しないテーブルを記憶している。
【０１０８】
ＣＨＡ７１０のＬＭ７１１には、アドレスマップ３３３が記憶されている。アドレスマップ３３３は、各ＣＭ１３０と各ＣＭ１３０のアドレスとが登録されている。ＭＰ１１２は、そのアドレスマップ３３３を参照することで、所望のＣＭ１３０の所望のアドレスにアクセスすることができる。具体的には、例えば、ＭＰ１１２は、所望のＣＭ１３０及びアドレスの指定を、情報と共に、ＲパスＩ／Ｆ３２１Ｒ或いはＴパスＩ／Ｆ３２１Ｔに送信する。この場合、ＲパスＩ／Ｆ３２１Ｒ或いはＴパスＩ／Ｆ３２１Ｔが、指定されたＣＭ１３０に対応するメモリコントローラ３２を特定し、特定したメモリコントローラ３２に、受信した情報を出力する。
【０１０９】
以上のように、複数のＣＭ１３０、１３０、…が搭載されたストレージシステムを実現することも可能である。なお、ＭＰ１１２からのＣＭ１３０へのアクセス方法は、上記の例に限らず、他の方法を採用することもできる。具体的には、例えば、ＲパスＩ／Ｆ３２１Ｒ又はＴパスＩ／Ｆ３２１Ｔは、ＣＭ１３０の指定を受けず、メモリアドレスのみの指定を受けても良い。この場合、ＲパスＩ／Ｆ３２１Ｒ又はＴパスＩ／Ｆ３２１Ｔは、そのメモリアドレスから、宛先となるＣＭ１３０及びそれのアドレスを特定し、特定された宛先ＣＭ１３０に対応したメモリコントローラ３２に、情報を出力しても良い。
【実施例４】
【０１１０】
図１３Ａは、本発明の一実施形態の第四実施例における各ＣＨＡ５１０又はＤＫＡ５２０と他のＣＨＡ５１０又はＤＫＡ５２０との接続の一例を示す。
【０１１１】
この図に示すように、各ＣＨＡ５１０又はＤＫＡ５２０と他のＣＨＡ５１０又はＤＫＡ５２０とも、Ｒパス２及びＴパス３で接続されても良い。その際、各ＣＨＡ５１０又はＤＫＡ５２０と他のＣＨＡ５１０又はＤＫＡ５２０とは、それぞれ、スイッチ４５１、４５３を介して接続されても良いし、Ｒパス２及びＴパス３の少なくとも一方においてスイッチを介することなく接続されても良い。
【０１１２】
この第四実施例では、ＭＰ５１２は、他のＣＨＡ５１０又はＤＫＡ５２０のＬＭ５１１にアクセスする場合、送信する情報に応じて、Ｒパス２とＴパス３のどちらにその情報を出力するかを選択し、選択したパスに、その情報を出力することができる。例えば、ＭＰ５１２は、第二実施例と同様に、その情報にデータが含まれている、或いは、その情報のサイズが所定値以上である場合には、Ｔパス３に情報を出力し、一方、その情報にデータが含まれていない、或いは、その情報のサイズが所定値未満である場合には、Ｒパス２に情報を出力することができる。
【０１１３】
この第四実施例によれば、各ＭＰ５１２が他のＣＨＡ５１０又はＤＫＡ５２０のＬＭ５１１にアクセスすることの性能の向上が期待できる。
【０１１４】
以上、本発明の好適な実施形態及び幾つかの実施例を説明したが、本発明は、それらの実施形態及び実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１１５】
例えば、少なくとも一つの実施例において、ＲパスＩ／ＦやＴパスＩ／Ｆが受信する情報には、宛先や送信元を示す情報要素が含まれていても良い。この場合、ＲパスＩ／ＦやＴパスＩ／Ｆは、その情報要素から、どのＲパス２或るいはどのＴパス３から情報を出力すれば良いかを判断することができる。
【０１１６】
また、カウントフル閾値は、所定の単位毎に設定することもできる。所定の単位としては、例えば、ユーザＩＤ、ディスク装置１５０上に設定される論理ボリュームのＩＤなどを採用することができる。この場合、例えば、ＣＭＡ２７０は、情報の送信元のユーザＩＤ、或いは、情報の送信先の論理ボリュームのＩＤに応じたカウントフル閾値に従って、Ｒアクセスの優先的な許可を実行することができる。
【０１１７】
また、第二実施例において、統計／閾値テーブル９１を参照する方法に代えて、メインアービタ６０が、算出された通信パターン統計に対応するカウントフル閾値を所定のアルゴリズムで計算して求めても良い。
【０１１８】
また、カウントフル閾値は、ホスト装置１８０から更新されても良い。
【０１１９】
また、例えば、各ＭＰ１１２が、ＬＭ１１１に記憶されているアドレスマップに基づいて、ＣＭ１３０に対するアクセス先を振り分けても良い。具体的には、例えば、ＭＰ１１２は、Ｔ情報を送信する場合には、第一のアドレス範囲に属するアドレスを指定してＴ情報を送信し、一方、Ｒ情報を送信する場合には、第一のアドレス範囲とは別の第二のアドレス範囲に属するアドレスを指定してＲ情報を送信しても良い。
【図面の簡単な説明】
【０１２０】
【図１】図１は、本発明の一実施形態の概要を示す。
【図２】図２は、本発明の第一実施例に係るストレージシステムの構成例を示す。
【図３】図３は、ＣＭＡ２７０の構成例を示す。
【図４】図４Ａは、メインアービタ３０の構成例を示す。図４Ｂは、シーケンサ４１の状態遷移の一例を示す。
【図５】図５Ａは、各ＣＨＡ１１０及び各ＤＫＡ１２０とＣＭＡ２７０との接続形態の第一の変形例を示す。図５Ｂは、各ＣＨＡ１１０及び各ＤＫＡ１２０とＣＭＡ２７０との接続形態の第二の変形例を示す。
【図６】図６は、ＳＶＰ２８１を用いてカウントフル閾値を更新することを説明するための図である。
【図７】図７は、本発明の第二実施例におけるＣＭＡ８７０の構成例を示す。
【図８】図８Ａは、通信パターン統計回路７０の構成例を示す。図８Ｂは、統計／閾値テーブルの構成例を示す。
【図９】図９Ａは、ＣＨＡ或いはＤＫＡのＭＰが行うことのできる処理の流れの一例を示す。図９Ｂは、ＣＭＡ８７０上のメモリコントローラ８２が行うことのできる処理の流れの一例を示す。
【図１０】図１０Ａは、Ｔ判定回路３６Ｔが行うことのできる処理の流れの一例を示す。図１０Ｂは、通信パターン統計回路７０が行う処理の流れの一例を示す。図１０Ｃは、メインアービタ６０が行うことのできる処理の流れの一例を示す。
【図１１】図１１Ａは、ＣＭ１３０の第一の使用例を示す。図１１Ｂは、ＣＭ１３０の第二の使用例を示す。図１１Ｃは、ＣＭ１３０の第三の使用例を示す。図１１Ｄは、ＣＭ１３０の第四の使用例を示す。
【図１２】図１２は、本発明の一実施形態の第三実施例に係るＣＨＡ７１０及びＣＭＡ４７０の構成例を示す。
【図１３】図１３Ａは、本発明の一実施形態の第四実施例における各ＣＨＡ５１０又はＤＫＡ５２０と他のＣＨＡ５１０又はＤＫＡ５２０との接続の一例を示す。図１３Ｂは、本発明の第一実施例におけるＲパス２の通信プロトコルの一例の説明図。
【図１４】図１４は、本発明の第一実施例におけるＴパス３での通信プロトコルの一例の説明図。
【符号の説明】
【０１２１】
２…レスポンス重視型パス（Ｒパス）  ３…スループット重視型パス（Ｔパス）  １１…アクセス部  １３…メモリアダプタ  １４…アービタ  １５…メモリ  １００…ストレージシステム  １１０…チャネルアダプタ（ＣＨＡ）  １２０…ディスクアダプタ（ＤＫＡ）  １３０…キャッシュメモリ（ＣＭ）  ２７０…キャッシュメモリアダプタ（ＣＭＡ）
【図１】
2007109141.tif 000003
【図２】
2007109141.tif 000004
【図３】
2007109141.tif 000005
【図４】
2007109141.tif 000006
【図５】
2007109141.tif 000007
【図６】
2007109141.tif 000008
【図７】
2007109141.tif 000009
【図８】
2007109141.tif 000010
【図９】
2007109141.tif 000011
【図１０】
2007109141.tif 000012
【図１１】
2007109141.tif 000013
【図１２】
2007109141.tif 000014
【図１３】
2007109141.tif 000015
【図１４】
2007109141.tif 000016