(57)【特許請求の範囲】
【請求項１】
複数のプロセッサコアを有する制御回路と、
前記制御回路からの制御を受けて、上位装置に対してデータストレージサービスを提供する被制御ユニットと、
前記制御回路を前記被制御ユニットに接続するスイッチ回路と、
を備え、
前記被制御ユニットには第１のアドレス空間が適用され、
前記制御回路には前記第１のアドレス空間とは異なる第２のアドレス空間が適用され、
前記第２のアドレス空間が、前記複数のプロセッサコアのそれぞれから前記スイッチ回路に対して発行されるアクセスに割り振られており、
前記スイッチ回路は、前記第２のアドレス空間に属するアドレスに基づいて、前記アクセスを発行したプロセッサコアを判定し、前記プロセッサコアからのアクセスに含まれるアドレスを前記第１のアドレス空間のアドレスに変換し、
前記被制御ユニットは、前記上位装置に対する第１のインターフェースと、記憶デバイスに対する第２のインターフェースと、前記第１と第２のインターフェースとの間でデータを一時記憶するキャッシュメモリと、を備え、
前記第１のインターフェースと、前記第２のインターフェースと、前記キャッシュメモリのそれぞれの記憶領域に、前記第１のアドレス空間として、共通な論理アドレスが適用され、
前記制御回路と前記スイッチ回路とはPCI-Expressによって接続されている、ストレージサブシステム。
【請求項２】
前記第２のアドレス空間に属するアドレスが、前記複数のプロセッサコアそれぞれのアクセスに対して、互いに重複しないように割り振られている、請求項１記載のストレージサブシステム。
【請求項３】
前記スイッチ回路は、前記第２のアドレス空間に属するアドレスを前記第１のアドレス空間に変換する変換テーブルを備え、前記プロセッサコアから発行される前記アクセスのアドレス範囲に属する複数の領域のそれぞれに異なる変換テーブルが適用され、前記変換テーブルの設定値を、前記プロセッサコアから発行されるアクセスのアドレスに適用して、当該アクセスのアドレスを前記第１のアドレス空間のアドレスに変換する、請求項１又は２記載のストレージサブシステム。
【請求項４】
前記スイッチ回路は、前記プロセッサコアが発行したアクセスのアドレスの全部または一部に前記設定値を加算して前記第１のアドレス空間に属するアドレスを求め、このアドレスにしたがって、前記アクセスを目的とする前記被制御ユニットに転送する、請求項３記載のストレージサブシステム。
【請求項５】
前記設定値は、前記プロセッサコアがアクセスしたい前記被制御ユニットに適用された前記第１のアドレス空間に属するアドレスからなる、請求項３又は４記載のストレージサブシステム。
【請求項６】
前記プロセッサコアは、アクセスしたい前記被制御ユニットのアドレス空間に自身が発行するアクセスのアドレスが変換されるように、前記変換テーブルの設定値を変更する、請求項３乃至５の何れか１項記載のストレージサブシステム。
【請求項７】
前記プロセッサコアは、アクセスしたい前記被制御ユニットのアドレス空間に変換されるように、前記変換テーブルを複数のものの中から選択し、選択した変換テーブルに対応するアドレスを用いてアクセスを前記スイッチ回路に発行し、当該スイッチ回路は選択された変換テーブルの設定値に前記アクセスのアドレスを適用する、請求項３乃至６の何れか１項記載のストレージサブシステム。
【請求項８】
前記プロセッサコアが、前記設定値を持った変換テーブルがないことを判定すると、複数の変換テーブルの中から前記スイッチ回路が変換に使用した履歴が古い一つの変換テーブルを選択して、当該変換テーブルの設定値を変更する、請求項３乃至７の何れか１項記載のストレージサブシステム。
【請求項９】
前記スイッチ回路は、前記プロセッサコアからのアクセスが不当であるか否かを検出し、不当なアクセスを前記被制御ユニットに転送しない、請求項１乃至８の何れか１項記載のストレージサブシステム。
【請求項１０】
前記スイッチ回路は、不当なアクセスを発行したプロセッサコアを記録するレジスタを備え、当該レジスタに登録されたプロセッサコアからのアクセスを前記被制御ユニットに転送しない、請求項９記載のストレージサブシステム。
【請求項１１】
前記スイッチ回路は、前記プロセッサコアから発行されたアクセスに所定累計回数の不当があったことを判定し、
前記スイッチ回路から前記判定結果を受けた前記制御回路は、当該不当であったアクセスを発行したプロセッサコアを閉塞し、
閉塞されたプロセッサコアを有する前記制御回路に代わって複数ある制御回路の中から他の制御回路がコマンド処理を行う、請求項９又は１０記載のストレージサブシステム。
【請求項１２】
複数のプロセッサコアを有する制御回路と、
前記制御回路からの制御を受けて、上位装置に対してデータストレージサービスを提供する被制御ユニットと、
前記制御回路を前記被制御ユニットに接続するスイッチ回路と、
を備えるストレージサブシステムであって、
前記被制御ユニットは、
前記上位装置に対する第１のインターフェースと、
記憶デバイスに対する第２のインターフェースと、
前記第１と第２のインターフェースとの間でデータを一時記憶するキャッシュメモリと、を備え、
前記被制御ユニットには第１のアドレス空間が適用され、
前記制御回路には前記第１のアドレス空間とは異なる第２のアドレス空間が適用され、
前記第２のアドレス空間が、前記複数のプロセッサコアのそれぞれから前記スイッチ回路に対して発行されるアクセスに割り振られており、
前記スイッチ回路は、前記第２のアドレス空間に属するアドレスに基づいて、前記アクセスを発行したプロセッサコアを判定し、前記プロセッサコアからのアクセスに含まれるアドレスを前記第１のアドレス空間のアドレスに変換に変換し、
前記プロセッサコアからの第１アクセスが、前記第１のインターフェースのプロトコル制御部に、前記上位装置からのデータを転送するためのパラメータを設定し、
前記プロセッサコアからの第２のアクセスが、前記プロトコル制御部を起動して前記上位装置から前記パラメータに基づいてデータを転送し、
さらに、前記スイッチ回路が、前記プロセッサコアからのアクセスが不当であるか否かを検出し、不当なアクセスを前記被制御ユニットに転送しないように構成され、不当なアクセスを発行したプロセッサコアを記録するレジスタを備え、前記第１のアクセスが不当であると判定すると、当該第１のアクセスを発行したプロセッサコアを前記レジスタに記録し、当該レジスタの記録内容を参照して、前記第２のアクセスを前記被制御ユニットに転送しないストレージサブシステム。
【請求項１３】
複数のプロセッサコアを有する制御回路と、
前記制御回路からの制御を受けて、上位装置に対してデータストレージサービスを提供する被制御ユニットと、
前記制御回路を前記被制御ユニットに接続するスイッチ回路と、
を備え、
前記被制御ユニットには第１のアドレス空間が適用され、
前記制御回路には前記第１のアドレス空間とは異なる第２のアドレス空間が適用され、
前記第２のアドレス空間が、前記複数のプロセッサコアのそれぞれから前記スイッチ回路に対して発行されるアクセスに割り振られており、
前記被制御ユニットは、前記上位装置に対する第１のインターフェースと、記憶デバイスに対する第２のインターフェースと、前記第１と第２のインターフェースとの間でデータを一時記憶するキャッシュメモリと、を備え、
前記第１のインターフェースと、前記第２のインターフェースと、前記キャッシュメモリのそれぞれの記憶領域に、前記第１のアドレス空間として、共通な論理アドレスが適用され、
前記制御回路と前記スイッチ回路とはPCI-Expressによって接続されている、
ストレージサブシステムの制御方法であって、
前記スイッチ回路は、前記第２のアドレス空間に属するアドレスに基づいて、前記アクセスを発行したプロセッサコアを判定し、前記プロセッサコアからのアクセスに含まれるアドレスを前記第１のアドレス空間のアドレスに変換する、ストレージサブシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージサブシステム及びストレージサブシステムの制御方法に関するものである。
【背景技術】
【０００２】
ストレージサブシステムは、ホスト装置に対してデータストレージサービスを提供する装置である。ホスト装置がストレージサブシステムに接続されることにより、ストレージシステムが構築される。ストレージサブシステムは、記憶デバイスとしての複数のハードディスクドライブからなるディスクアレイ装置と、ホスト装置とディスクアレイ装置との間でのデータの入出力を制御するコントローラと、を備えている。
【０００３】
コントローラは、ストレージサブシステム全体を制御するためのプロセッサと、ホスト装置に対するホストインターフェースと、ディスクアレイ装置に対するディスクインターフェースとを備え、さらに、ユーザデータをキャッシイングするためのキャッシュメモリが両方のインターフェースの間に配置されている。
【０００４】
この種のストレージサブシステムとして、例えば、特開２００９−９２００号公報に記載のものが存在する。このストレージサブシステムは、複数のプロセッサを有する制御部がスイッチＬＳＩによって、ホストインターフェース、ディスクインターフェース、そして、キャッシュメモリに接続された構造を有している。
【０００５】
このストレージシステムは、制御部内のいずれかのコンポーネントに障害が発生した場合に、制御部の入出力パスを遮断し、遮断された状態において障害が発生したコンポーネントを特定し、これを無効化する。そして、障害が発生したコンポーネントを無効化した後、正常なコンポーネントのみで、目的の処理を行うことができるか判断し、それが可能であると判断した場合に、入出力パスの遮断を解除（開放）して、再起動後動作を再開する。
【０００６】
また、特開２００７−２０７００７号公報には、ディスクドライブと、ストレージコントローラと、を備えるストレージシステムであって、ストレージコントローラは、ホスト計算機に接続される一つ以上のインターフェースと、インターフェースに接続される複数のプロセッサと、を備え、プロセッサは、一つ以上の論理アクセスポートをホスト計算機に提供し、インターフェースは、論理アクセスポート宛てのアクセス要求を処理するプロセッサを示すルーティング情報を記憶し、アクセス要求をホスト計算機から受信すると、受信されたアクセス要求から宛先を抽出し、ルーティング情報及び抽出された宛先に基づいて、受信されたアクセス要求を処理するプロセッサを特定し、受信されたアクセス要求を、前記特定されたプロセッサに転送することが記載されている。
【０００７】
さらに、米国特許公報７４２１５３２号公報には、スイッチＬＳＩによるアドレス変換でマルチレート構造を実現する方法が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−９２００号公報
【特許文献２】特開２００７−２０７００７号公報
【特許文献３】米国特許公報７４２１５３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
大規模なストレージシステムでは、サブシステムの制御能力を向上させるために、マルチコアプロセッサが使用されるようになっている。既述の特開２００９−９２００号公報にも、プロセッサが複数のプロセッサコアを有することが記載されている。
【００１０】
スイッチＬＳＩはプロセッサコアからアクセスを受けると、アクセス先アドレスに基づいて、アクセスを、ホストインターフェース、ディスクインターフェース、又はキャッシュメモリにルーティングする。そして、スイッチＬＳＩは、プロセッサコアから不当なアクセスを受けると、障害の発生をプロセッサコアに通知する。この通知を受けたプロセッサコアは、通常のストレージ制御処理に優先させて障害対応処理プログラムを実行する。
【００１１】
ところで、従来のストレージサブシステムは、複数あるプロセッサコアを互いに判別することができないため、ある特定のプロセッサコアからスイッチＬＳＩが不当アクセスを受信した場合、スイッチＬＳＩは障害の発生を全てのプロセッサコアに通知する。
【００１２】
これでは、正常なプロセッサコアまでも、障害対応処理に追われるために、その間、ストレージサブシステムは、Ｉ／Ｏ処理を行うことができない。それでは、ストレージサブシステムは、ホスト装置に対して、Ｉ／Ｏ処理の信頼性を維持することができなくなる。
【００１３】
本発明は、このような課題を解決するために、プロセッサにマルチコア方式を適用して、プロセッサコアからスイッチ回路に不当なアクセスがあった場合でも、ホスト装置に対してＩ／Ｏ処理の信頼性を維持することができるストレージサブシステム、およびその制御方法を提供することを目的とするものである。
【課題を解決するための手段】
【００１４】
この目的を解決するために、本発明は、ストレージサブシステムにおいて、ホストインターフェースなど、プロセッサがアクセスする複数の被制御ユニットに対して共通に適用される第１の論理アドレス空間とは異なる第２論理アドレス空間をマルチコアプロセッサに適用する、ことを特徴とする。
【００１５】
ストレージサブシステムは、各プロセッサコアに対して、共通アドレスとは異なる、第２の論理アドレスを、融通性を持って適用する。たとえば、各プロセッサコアに対して、それぞれ異なるアドレスを適用する。プロセッサコアはこのアドレスでスイッチＬＳＩにアクセスする。スイッチ回路は、プロセッサコアからのアクセスに含まれる論理アドレスを判別し、アクセス元であるプロセッサコアを特定することができる。
【００１６】
スイッチ回路は、プロセッサコアのアクセスに含まれる独自なアドレスを共通アドレスに変換する。この変換は変換テーブルを用いて行われる。複数のプロセッサコアはそれぞれ異なる論理アドレスを使用するために、変換テーブルも各プロセッサコアに対してそれぞれ異なるものとなる。変換方法の一例は、プロセッサコアのアクセスに含まるアドレスに変換テーブルに含まる設定値を加えて、プロセッサコアのアクセスが共有アドレスに到達できるようにすることである。複数のプロセッサコアを有するプロセッサは、目的とする特定の共有アドレスにアクセスできるように、特定のプロセッサコアを選択してアクセスを発信する。
【発明の効果】
【００１７】
本発明によれば、プロセッサにマルチコア方式を適用して、プロセッサコアからスイッチ回路に不当なアクセスがあった場合でも、上位装置に対してＩ／Ｏ処理の信頼性を維持することができるストレージサブシステム及びその制御方法を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】ストレージシステムの実施形態を示したハードウエアブロック図である。
【図２】制御部のマルチコアプロセッサのハードウエアブロック図である。
【図３】制御部のローカルメモリ部の詳細な構成を示すブロック図である。
【図４】スイッチＬＳＩの詳細構成を示すブロック図である。
【図５】ホストＩ／Ｆ部の構造を示すブロック図である。
【図６】一時メモリのブロック図である。
【図７】ディスクＩ／Ｆ部のブロック図である。
【図８】一時メモリのブロック図である。
【図９】キャッシュメモリ部の構造を示すブロック図である。
【図１０】変換テーブルの例を示す表である。
【図１１】アドレス変換処理の原理を示すブロック図である。
【図１２】制御部のアクセス発行動作を示すフローチャートである。
【図１３】スイッチＬＳＩのアドレス変換部の動作フローチャートである。
【図１４】スイッチＬＳＩのアパケットを送信したプロセッサコアを特定するためのフローチャートである。
【図１５】不当アクセスチェック部が、制御部から受信したパケットが不当アクセスであるか否かをチェックする動作を示すフローチャートである。
【図１６】不当アクセスプロセッサコア記憶レジスタの動作フローチャートある。
【図１７】転送可否判定部の動作フローチャートである。
【図１８】スイッチＬＳＩを経由した、複数のコンポーネント間のアクセスの代表例を纏めた表である。
【図１９】制御部の障害処理を説明するフローチャートである。
【図２０】制御部を交換するための処理を説明するフローチャートである。
【図２１】ストレージサブシステムの保守画面の一例である。
【図２２】その他の例である。
【図２３Ａ】保守画面のさらに他の例である。
【図２３Ｂ】ストレージサブシステムの閉塞情報を表す保守画面の例である。
【図２３Ｃ】その他の例である。
【図２４】プロセッサコアに障害が発生した際でのストレージサブシステムの動作を示すシーケンスフローチャートである。
【発明を実施するための形態】
【００１９】
次に本発明の実施形態について説明する。図１は、ストレージシステムの実施形態を示したハードウエアブロック図である。ストレージシステムは、ストレージサブシステム１０と、これに接続するホスト装置１２（１２Ａ，１２Ｂ）とを備えている。ストレージサブシステム１０は、ネットワーク１４（１４Ａ，１４Ｂ）を介してホスト装置１２に接続されている。
【００２０】
ストレージサブシステム１０は、制御部１６（１６Ａ，１６Ｂ）と、制御部によって、データストレージのための動作が制御されるホストインターフェース（ホストＩ／Ｆ）などの被制御ユニット群と、両者を接続するスイッチ部１８（１８Ａ，１８Ｂ）とを備えている。スイッチ部１８はスイッチＬＳＩを備えている。
【００２１】
被制御ユニット群は、ホスト装置１２Ａと接続するホストＩ／Ｆ部２０Ａと、ホスト装置１２Ｂと接続するホストＩ／Ｆ部２０Ｂと、キャッシュメモリ部２２（２２Ａ，２２Ｂ）と、ディスクＩ／Ｆ部２４（２４Ａ，２４Ｂ）と、からなる。被制御ユニット群のそれぞれ及びスイッチ部１８は、内部ネットワーク２６によって互いに接続されている。
【００２２】
制御部１６Ａ及び１６Ｂは、それぞれ、マルチコア構造からなるプロセッサ２８と、ローカルメモリ部３０と、チップセット３２とを備えている。制御部１６は、被制御ユニット群を制御することによって、ストレージサブシステム１０の全体の動作を決定している。制御の中心は各制御部のマルチコアプロセッサ２８である。マルチコアプロセッサの処理は、複数のプロセッサコアによって行われる並列処理である。
【００２３】
ローカルメモリ部３０は、キャッシュメモリ部２２に格納されたユーザデータに関連付けられた制御データ、及びシステム構成情報などその他の情報を格納している。制御データは、ストレージサブシステム１０がホスト装置１２に対して提供するストレージサービスの遂行に必要な管理情報を含んでいる。
【００２４】
図２は制御部１６のマルチコアプロセッサ２８のブロック図である。マルチコアプロセッサは、４つのプロセッサコア（＃１−４）を備えている。各プロセッサコアは、その内部にＬ１キャッシュを備え、その外部には二つのプロセッサコアによって共有されるＬ２キャッシュ２１３が存在する。
【００２５】
なお、各プロセッサコア２１１は、スイッチＬＳＩからの障害通知を登録するレジスタを備えている。レジスタを参照して、障害通知を認識したプロセッサコアは、障害処理プログラムを呼び出して、これを実行して障害復帰処理を実行する。あるいは、プロセッサコアを閉塞する処理を行う。
【００２６】
マルチコアプロセッサ２８とチップセット３２とは、フロントサイドバス（ＦＳＢ）３４で接続されている。チップセット３２とローカルメモリ部３０とはデータ信号線３６によって接続されている。チップセット３２は、マルチコアプロセッサ２８、スイッチ部１８、ローカルメモリ部３０を互いに接続するためのブリッジとして機能する。
【００２７】
制御部１６Ａのチップセット３２とスイッチ部１８（１８Ａ，１８Ｂ）とは、PCI-Express３８Ａによって接続され、制御部１６Ｂのチップセット３２とスイッチ部１８（１８Ａ，１８Ｂ）とは、PCI-Express３８Ｂによって接続されている。
【００２８】
スイッチＬＳＩは、制御部の各プロセッサコア（図２）と、ホストＩ／Ｆ部２０、キャッシュメモリ部２２、又はディスクＩ／Ｆ部２４との接続をスイッチングする集積回路である。ホストＩ／Ｆ部２０は、ホスト１２からのライト又はリードコマンドを制御部１６に振り分け、又は、制御部１６からの要求を受けてホスト１２とキャッシュメモリ部２２間のデータ転送を実現する。
【００２９】
キャッシュメモリ部２２は、ユーザデータや、各制御部１６が共有する制御データを一時記憶する。ディスクＩ／Ｆ部２４は制御部１６からの要求を受けてディスクアレイ部４０とキャッシュメモリ部２２間のデータ転送や、パリティ演算を実行する。なお、記憶デバイスにはハードディスクドライブに限らず、フラッシュメモリ駆動装置などの半導体メモリ装置も該当する。
【００３０】
図３は、ローカルメモリ部３０の詳細な構成を示すブロック図である。制御データ記憶領域３００Ａは、ストレージサブシステム１０に割り当てられた論理ボリューム（ＬＤＥＶ）の制御データを記憶する領域で、例えば、キャッシュデータの在り無しと、ユーザデータが格納されているキャッシュメモリ部２２のアドレス、キャッシュデータのＬＲＵ情報（アクセス履歴）、キャッシュデータがクリーンデータかダーティデータかの区別に関する情報を格納するものである。
【００３１】
領域３００Ｂは、ストレージサブシステム内の被制御ユニットの構成情報を格納し、領域３００Ｃは、ホストＩ／Ｆ部からのコマンドを格納する。コマンドに対する処理を実行する権利を持つプロセッサコアは、格納されているコマンドを順番に処理する。領域３００Ｄは、スイッチＬＳＩのアドレス変換テーブルや、変換テーブルの使用履歴の情報を格納する。
【００３２】
図４はスイッチＬＳＩの詳細構成を示すブロック図である。スイッチＬＳＩは、図示する各要素を備えている。パケット受信部（回路）５０は、制御部１６から被制御ユニットに対して宛てられたPCI-Expressパケットを受信する。パケット送信部５２は、被制御ユニットから制御部（回路）１６にPCI-Expressパケットを送信する。
【００３３】
パケット受信部５０はパケットをアドレス変換部（回路）５４、アクセス元プロセッサコア判定部（回路）５６、不当アクセスチェック部５８（回路）に出力する。アドレス変換部５４は、パケットに含まれる、プロセッサコアが指定した論理アドレスを被制御ユニットに共通に適用された実アドレスに変換する変換テーブルを備える。
【００３４】
アクセス元プロセッサコア判定部５６は、プロセッサコアが指定した論理アドレスからアクセス元プロセッサコアを判定する。不当アクセスチェック部５８は、プロセッサコアからのアクセスが、判定プログラムにしたがって、正当なものであるか、不当なものであるかをチェックする。
【００３５】
アドレス変換部５４の変換結果と、アクセス元プロセッサコア判定部５６の判定結果と、不当アクセスチェック部５８のチェック結果は、転送可否判定部６０に送られる。また、アクセス元プロセッサコア判定部５６の判定結果と、不当アクセスチェック部５８のチェック結果は、不当アクセスプロセッサコア記憶レジスタ６２に送られている。不当アクセスプロセッサコア記憶レジスタ６２の情報は、転送可否判定部６０（回路）に送られる。
【００３６】
不当アクセスプロセッサコア記憶レジスタ６２は、不当アクセスを実施したプロセッサコア番号を記憶する。転送可否判定部６０は、不当アクセスチェック部５８の判定結果と、不当アクセス記憶レジスタ６２の内容から、パケットの転送可否を判定する。
【００３７】
転送可否判定部６０から転送が許可されたパケットがパケットルーティング部６４に送出される。パケットルーティング部（回路）６４はルーティングテーブル６６にしたがって、転送可否判定部６０から送られたパケットの変換後の送信先アドレスに基き、パケットのデータを目的の被制御ユニットに、内部ネットワークパケット送信部６８を介してデリバリーする。内部ネットワークパケット送信部６８は、内部ネットワーク２６に接続している。
【００３８】
また、パケットルーティング部６４は、内部ネットワークパケット受信部７０（回路）から受信したパケットを制御部１６のプロセッサコア２８にルーティングする機能も備えている。パケットルーティング部６４は、データを転送する際に、所定のプロトコル変換を行う。
【００３９】
図５は、ホストＩ／Ｆ部２０の構造を示すブロック図である。ホストＩ／Ｆ部は、プロトコル制御部５００と、ルーティング部５０４と、一時メモリ５０２とを備えている。プロトコル制御部５００はネットワーク１４を介して上位装置１２に接続される。ルーティング部５０４は内部ネットワーク２６に接続している。
【００４０】
プロトコル制御部５００は、ホスト装置１２とストレージシステム１０との間でやりとりされるデータのプロトコル変換を行う。すなわち、プロトコル制御部は、ネットワーク１４上を伝送されてきた、ホスト装置からの外部データとしてのＩ／Ｏ要求を、ストレージシステム内で処理するための内部データに変換し、また、Ｉ／Ｏ要求に対してホスト装置に送信すべき内部データをネットワーク１４上に伝送するために適した外部データに変換する。
【００４１】
ルーティング部５０４は、メモリコントローラ５０６、ＤＭＡ５１０、担当制御部振り分け部５０８を備えている。一時メモリ５０２はキャッシュメモリ部とプロトコル制御部５００との間で転送されるユーザデータを一時的に記憶する。
【００４２】
メモリコントローラ５０６は、一時メモリを制御する。ＤＭＡ５１０は、キャッシュメモリ部２２と一時メモリ５０２間のデータ転送を実行する。担当制御部振り分け部５０８は、ホスト装置から送られたライト/リードコマンドの処理を担当する制御部を、ルーティングテーブルに基づいて決定し、決定された制御部のローカルメモリ部３０にコマンドを送信する。
【００４３】
図６は、一時メモリ５０２のブロック図である。一時メモリは、ユーザデータ格納領域５０２Ａ、ルーティングテーブル設定領域５０２Ｂ、ＤＭＡパラメータ設定領域５０２Ｃ、プロトコル制御部転送パラメータ設定領域５０２Ｄを備えている。
【００４４】
ルーティングテーブルは、担当制御部振り分け部５０８が、コマンドの送信先を識別するためのルーティング情報を備えたものである。ルーティングテーブルは、ホストS_ID（Source ID：フレーム送信側のN_Portアドレス識別子である。）と、ＬＵＮ（Logical Unit Number）を有している。
【００４５】
ディスクアレイ装置４０を構成するディスクは、論理的に分割され、分割した区画をそれぞれ異なるＲＡＩＤレベルに設定することができる。この区画がＲＡＩＤグループである。このＲＡＩＤグループをさらに論理的に分割したＳＣＳＩのアクセス単位である領域をＬＵ（Logical Unit）であり、その領域は、各々、ＬＵＮを持つ。
【００４６】
“担当制御部”には、ホストS_IDとＬＵＮとから特定される論理記憶領域に対するコマンドを処理すべき制御部の識別子が登録される。“フェイルオーバ制御部”には、担当制御部が障害状態になった際に、コマンド処理を引き継ぐ他の制御部の識別子が登録されている。“フェイルオーバ制御有効フラグ”には、フェイルオーバ制御部がコマンド処理を担当するか否かの情報が登録されている。
【００４７】
ＤＭＡパラメータ設定領域５０２Ｃは、ＤＭＡ５１０が一時メモリ５０２からデータを転送するために必要パラメータ（アドレス・転送長・ライト又はリードコマンドなど）を備える。プロトコル制御部転送パラメータ設定領域５０２Ｄは、プトロコル制御部５００がホスト装置１２と一時メモリ５０２との間でユーザデータの転送を行うためのパラメータを備える。プロセッサコアがプロトコル制御部５００にパラメータを設定することで、プロトコル制御部がこのパラメータをリードしてユーザデータの転送を行う。
【００４８】
図７はディスクＩ／Ｆ部２４のブロック図である。ディスクＩ／Ｆ部２４は、ディスク制御部７００と、一時メモリ７０２と、プロトコル制御部７０４とを備えている。ディスク制御部７００は内部ネットワーク２６に接続している。ディスク制御部７００はプロトコル制御部７０４を介してディスクアレイ部４０に接続している。
【００４９】
プロトコル制御部７０４は、ディスクアレイ部４０との間のデータのプロトコル変換を行う。一時メモリ７０２は、キャッシュメモリ部２２とプロトコル制御部７０４との間で転送されるユーザデータを一時記憶する。メモリコントローラ７１０は、一時メモリ７０２を制御する。ＤＭＡ７０６はキャッシュメモリ部２２と一時メモリ７０２間のデータの転送を行う。パリティ演算部７０８は、ディスクアレイ部４０に格納されるデータに対してＲＡＩＤ５やＲＡＩＤ６などのパリティ演算を行う。
【００５０】
ステータスルーティング部７１２は、プロトコル制御部７０４から送信されて来るステータス情報に含まれる情報から担当制御部１６を判定し、担当制御部のローカルメモリ３０に、ステータス情報を転送する。
【００５１】
図８は、一時メモリ７０２のブロック図である。一時メモリはユーザデータ格納領域７０２Ａと、ＤＭＡパラメータ設定領域７０２Ｂと、パリティ演算パラメータ設定領域７０２Ｃと、プロトコル制御部転送パラメータ設定領域７０２Ｄと、を備えている。
【００５２】
パリティ演算パラメータ設定領域７０２Ｃは、パリティ演算パラメータのキュー構造から構成され、各キューのパリティ演算パラメータは、パリティ演算に必要な情報であって、各種コマンド（ライト/リードなど）、各種演算モード（ＲＡＩＤ５/６のパリティ種別）、新・旧データの格納されている領域のアドレス、新・旧パリティの格納先アドレス、データが転送されるキャッシュメモリ部のアドレス、転送長などである。
【００５３】
プロトコル制御部転送パラメータ設定領域７０２Ｄは、プロロコル制御パラメータのキュー構造から構成されている。各キューは、各種コマンド（リード/ライトなど）、ＨＤＤのアドレス、一時メモリ７０２のアドレス、転送長から構成されている。
【００５４】
図９はキャッシュメモリ部２２の構造を示すブロック図である。キャッシュメモリ部は、メモリコントローラ９００と、キャッシュメモリ領域９０２とを備えている。メモリコントローラ９００は、ストレージサブシステム１０の他のユニットからアクセス要求を受け入れて、キャッシュメモリ９０２の適切な領域にアクセスするための制御を行う。
【００５５】
キャッシュメモリ領域９０２は、ユーザデータ格納領域９０２Ａ、構成情報９０２Ｂ、制御部間共有制御情報９０２Ｃ、制御データバックアップ領域９０２Ｄを備えている。
【００５６】
制御データバックアップ領域９０２Ｄとは、ある制御部１６に障害が発生した際に、別の制御部が、障害が発生した制御部の担当する処理を受け継ぐために必要な領域である。ここには、ローカルメモリ部３０の制御情報のバックアップデータが格納されている。制御データバックアップ領域は、論理ボリューム毎に対する制御データ９０２Ｅを記憶している。
【００５７】
制御部間共有制御情報９０２Ｃとは、複数の制御部に共有される制御情報のことである。これには、複数の制御部が共同で行うストレージサービスに必要な情報を含む。
【００５８】
次に、スイッチＬＳＩのアドレス変換部５４（図４）が行うアドレス変換について説明する。図１１はアドレス変換処理の原理を示すブロック図である。アドレス変換処理は、制御部のアドレス空間１１００に属するアドレスを、変換手段１１０２が、ストレージサブシステムの実アドレス空間１１０４に属するアドレスに変換することである。
【００５９】
ホストＩ／Ｆ部２０、キャッシュメモリ２２、ディスクＩ／Ｆ部２４など、制御部からの制御を受ける被制御ユニットには、共通して、実アドレス空間が適用されている。これに対して、制御部には、実アドレス空間とは異なるように、例えば、PCI-Expressの規格に沿って、仮想的に設定されたアドレス空間が適用されている。
【００６０】
例えば、ホストＩ／Ｆ部のアドレスは、
0×0000000_00000000〜0×1FFFFFFF_FFFFFFFF  の範囲である。同様に、ディスクＩ／Ｆ部のアドレス、キャッシュメモリ部のアドレス、他の被制御ユニット部のアドレスは図１１に示す通りである。このようにユニット毎に実アドレスが割り当てられている。
【００６１】
これに対して、制御部については、プロセッコア毎に仮想アドレスが割り当てられている。例えば、0×3_00000000〜0×5_FFFFFFFFのアドレスがプロセッサコア♯１に割り当てられている。プロセッサコアがパケットをスイッチＬＳＩ１８に出力する場合には、この範囲内でアドレスを選択してパケット搭載する。その他のプロセッサコアに割り当てられているアドレスは図１１に記載したとおりである。
【００６２】
アドレス変換部５４が実現する変換処理１１０２は、変換テーブルによって、制御部の仮想アドレスを実アドレスに変換する。変換テーブルは、プロセッサコア毎に割り当ててあり、かつ、プロセッサコアの仮想アドレス毎に割り当てられている。たとえば、プロセッサコア♯１について、0×3_00000000〜0×3_1FFFFFFFのアドレス範囲には、変換テーブル１が割り当てられ、
【００６３】
0×3_20000000〜0×3_3FFFFFFFのアドレス範囲には、変換テーブル２が割り当てられている。以後、制御部のアドレス範囲の均等分について、変換テーブル３以降が割り当てられている。複数のプロセッサコアはそれぞれ異なる論理アドレスを使用するために、変換テーブルも各プロセッサコアに対してそれぞれ異なるものとなる。変換テーブルの何が異なるかというと、仮想アドレスから実アドレスへ変換する際に使用される設定値が異なる。
【００６４】
アドレス変換部５４は、制御部からパケットを受信すると、パケットに含まれるアドレスを判定し、対応する変換テーブルの設定値をこのアドレスに対して適用して実アドレスを求め、パケットのアドレスを実アドレスに変更する。
【００６５】
制御部は、実アドレス空間内の目的の実アドレスにアクセスしようとする際、変換後に実アドレスになるように、変換テーブルと特定の仮想アドレスとを決定し、この特定のアドレスが割り当てられたプロセッサコアから、パケットに特定の仮想アドレスを加えて、このパケットをスイッチＬＳＩに出力する。
【００６６】
既述のとおり、変換テーブルは、制御部の仮想アドレスに対応して存在し、仮想アドレスを実アドレスに変換するための設定値を備えている。図１０は、変換テーブルの例を示す表である。この例では、変換テーブルに実アドレスの特定値が設定されている。例えば、テーブル１は、プロセッサコア♯１用であり、これには、ホストＩ／Ｆ部のアドレスの一部
（0×1000000_400000000）が設定されている。また、テーブル２は、テーブル１と同様に、プロセッサコア♯１用であって、これには、ホストＩ／Ｆ部のアドレスの他の一部（0×2000000_400000000）が設定されている。さらに、テーブル３もプロセッサコア♯１用であって、これには、キャッシュメモリ部のアドレスの一部（0×4000040_800000000）が設定されている。この表は、ローカルメモリ部３０に、アドレス変換部変換テーブル情報（図３）として、登録されている。
【００６７】
次に、アドレス変換の処理を、フローチャートを利用して説明する。図１２は、制御部１６の動作である。ホストＩ／Ｆ部１２から、コマンドをリードした担当制御部の複数のプロセッサコアのうち、最初にコマンドを受信したプロセッサコアは、ローカルメモリ部３０のアドレス変換部変換テーブル情報（図３）を参照し、アクセスしたい実アドレス空間に割り当てられた、変換テーブルがあるか否かをチェックする（１２００）。例えば、ライトコマンドを処理するプロセッサコアがプロセッサコア♯1であるとし、アクセス先がホストＩ／Ｆ部２０の実アドレス0×1000000_40000000〜0×1000000_5FFFFFFFである場合、プロセッサコア♯１は、テーブル１（図１０）の存在を判定して、ステップ１２００を肯定する。
【００６８】
次いでプロセッサコア♯１は、テーブル１に割り当てられている仮想アドレス範囲から最適な仮想アドレスを選択して、この最適仮想アドレスを用いて、スイッチＬＳＩにアクセスする（１２０４）。
【００６９】
プロセッサコアがアクセスしたい実アドレスは一意に決まっている。そして、テーブルの設定値には基底アドレスを設定する。例えば、アクセスしたい実アドレスが0×201235_6789abcdの場合、0×2012345_60000000を変換テーブルに設定する。さらに、例えば、テーブルにこの値が設定された場合、仮想アドレスは、0×3_0789abcdとなる。
【００７０】
一方、ステップ１２００において、プロセッサコア♯１が、アクセスしたい実アドレス空間に割り当てられたテーブルが存在しないと判定した場合には、例えば、プロセッサコア＃１にはディスクＩ／Ｆ部２４の実アドレスに割り当てられた変換テーブルが存在しない場合、プロセッサコア＃１は、ステップ１２０２に移行し、自プロセッサコア用に割り当てられた変換テーブルの中で重要性が低いテーブルを選定し、このテーブルの設置値をディスクＩ／Ｆ部のメモリ領域の所定の実アドレスに書き換える。例えば、プロセッサコアは、スイッチＬＳＩのアドレス変換部５４からのアクセス履歴がもっとも最古のテーブルを、このテーブルがどの実アドレスを設定値として有するかは関係なく、選定する。プロセッサコアは、変換テーブルへのアクセス履歴を、ローカルメモリ部３０のアドレス変換部変換テーブル情報格納領域（３００Ｄ）に記録する。その後、プロセッサコア＃１は、選択した変換テーブルに割り当てられた仮想アドレスを用いてスイッチＬＳＩにアクセスする。
【００７１】
図１３は、スイッチＬＳＩのアドレス変換部５４の動作フローチャートである。アドレス変換部５４が、制御部から受信した仮想パケットのアドレスをデコードする（１３００）。そして、デコードしたアドレスに割り当てられた変換テーブルを選択する（１３０２）。
【００７２】
次に、アドレス変換部は選択した変換テーブルに基づいてアドレス変換を行う。例えば、制御部から送信されたパケットの下位アドレス（例えば、0×3_1FFFFFFFの“0×1FFFFFFF”）を選択した変換テーブルの設定値に加算する（１３０４）。変換テーブルの設定値にはパケットが送信されるべき実アドレス空間の一部のアドレスが設定されているために、この設定値にデコードされたアドレスを加算することによって、スイッチＬＳＩはパケットを目的の実アドレスに送信することができる。次いで、アドレス変換部５４は、アドレス変換したパケットを転送可否判定部６０に送信する（１３０６）。
【００７３】
スイッチＬＳＩのアクセス元プロセッサコア判定部５８は、パケットを送信したプロセッサコアを特定する。図１４はそのフローチャートである。判定部がパケットを受信すると、パケットのアドレスをデコードする（１４００）。図１１に示す様に、制御部の仮想アドレスは、複数のプロセッサコアに対して、重ならない様に割り当てられているために、判定部は、デコードしたアドレスからパケットを送信したプロセッサコアを判定することができる（１４０２）。
【００７４】
割り当て情報は、スイッチＬＳＩに存在する。仮に、ローカルメモリ部にあるとすると、プロセッサコアがスイッチＬＳＩのアクセスの毎にローカルメモリを参照しなければならなくなるからである。
【００７５】
さらに、判定部５６は、判定されたプロセッサコアの識別情報をスイッチＬＳＩの転送可否判定部６０と、不当アクセスプロセッサコアレジスタ６２に通知する（１４０４）。このように、スイッチＬＳＩは、制御部の複数のプロセッサコアの中からパケットを送信したプロセッサコアを判定することができる。
【００７６】
なお、制御部が異なっても、複数の制御部には同じ仮想アドレス空間が適用されるが、アクセス元プロセッサコア判定部５６は、制御部との間のパスの違いから制御部を区別することができる。したがって、判定部５６は、複数の制御部に渡って、複数のプロセッサコアのそれぞれをパケットのアドレスの違いから区別することができる。
【００７７】
不当アクセスチェック部５８は、制御部から受信したパケットが不当アクセスであるか否かをチェックする。その動作フローチャートを図１５に基づいて説明する。判定部６０は、パケットの保障コードをチェックする（１５００）。保障コードとは、アドレスやデータを保障するためのコード（ＬＲＣなど）であり、プログラムによって生成される。
【００７８】
次いで、不当アクセスチェック部５８は、アドレス変換部５４で変換された実アドレスを受信し、アドレスが所定範囲に属しているか否かをチェックする（１５０２）。さらに、チェック部５８はパケットの転送長をチェックする（１５０４）。以後、チェック部５８は他のパラメータに基づいて不当アクセスの有無を判定してもよい。チェック部５８が少なくとも一つのパラメータの異常を検出すると、アクセスが不当であると判定する。不当アクセスチェック部５８は、転送可否判定部６０と不当アクセスプロセッサコア記憶レジスタ６２にアクセスが正当であるか不当であるかの判定結果を通知する（１５０６）。
【００７９】
図１６は、不当アクセスプロセッサコア記憶レジスタ６２の動作フローチャートある。記憶レジスタは、不当アクセスチェック部５８からの通知内容が不当アクセスであるか否かを判定する（１６００）。不当アクセスでない場合には、処理を終了する。一方、不当アクセスを判定すると、アクセス元プロセッサコア判定部５６からの判定結果を参照して、不当アクセス元となったプロセッサコアに対応するレジスタ領域に、不当アクセスの検出を示すフラグを設定記憶する（１６０２）。
【００８０】
図１７は、転送可否判定部６０の動作フローチャートである。判定部６０は、不当アクセスチェック部５８からの判定結果を受けて、不当アクセスの有無を判定する（１７００）。不当アクセスを判定すると、パケットの転送を不可と判定し、パケットを破棄するとともに、アクセス元プロセッサコアにパケットを破棄したことを通知する（１７０２）。
【００８１】
判定部がステップ１７００を否定判定すると、不当アクセスプロセッサコア記憶レジスタを参照して、アクセス元プロセッサコアに不当アクセスを示すフラグが設定されているか否かをチェックする（１７０４）。不当アクセスを示すフラグの設定を判定すると、アクセスが不当でなくても、ステップ１７０２に移行して、パケットを破棄する。
【００８２】
スイッチＬＳＩが不当アクセスを発行したプロセッサコアをレジスタ６２に登録し、このプロセッサコアからの以後のアクセスが正常であっても、転送可否判定部６０がこのアクセスを遮断するのは、次の理由による。
【００８３】
例えば、特定のプロセッサコアが、ホストＩ／Ｆ部２０の一時メモリ５０２に転送パラメータを設定し、次のアクセスで、プロトコル制御部５００を起動して、この転送パラメータをリードしてリードしたパラメータでデータをホストＩ／Ｆ部からホスト装置１２に転送することがある。
【００８４】
この間、転送パラメータをホストＩ／Ｆ部２０の一時メモリ５０２に設定するアクセスが、不当であると判定された後、続く、アクセスをスイッチＬＳＩが許容すると、古い転送パラメータにしたがってデータがホスト装置から転送されてしまう。そこで、スイッチＬＳＩは、不当と判定されたアクセスに続くアクセスを通過させないようにしている。このことは、後述の図２４にも示されている。
【００８５】
さらに、図１７に戻り説明を続けると、ステップ１７０４が否定判定されたアクセス（パケット）を、正常パケットとして、パケットルーティング部に送信する（１７０６）。
【００８６】
なお、図１８は、スイッチＬＳＩを経由した、複数のコンポーネント間のアクセスの代表例を示したものである。ここには、既述のとおり、制御部（プロセッサコア）から被制御ユニットへのアクセスの具体例が示されている。
【００８７】
図１９は、制御部の障害処理を示すフローチャートである。制御部に属する、スイッチＬＳＩから障害通知を受けたプロセッサコアが図１９のフローチャートを実行する。
【００８８】
スイッチＬＳＩに障害が発生すると、障害情報がスイッチＬＳＩに設定され、プロセッサコアは障害通知をスイッチＬＳＩから受ける（１９００）。この通知によって、フローチャートをスタートする。
【００８９】
次いで、プロセッサコアがスイッチＬＳＩの障害情報をリードする（１９０２）。障害情報には、既述の不当アクセスプロセッサコア記憶レジスタの格納情報の他に、スイッチ自体の障害情報も含まれている。
【００９０】
次いで、プロセッサコアは、スイッチＬＳＩの障害情報の内容を判定する（１９０４）。障害情報がスイッチＬＳＩの故障であると判定すると、スイッチＬＳＩを閉塞の処理を行う（１９０６）。続いて、プロセッサコアは、ストレージサブシステムの保守装置の保守画面にエラー内容の表示（スイッチＬＳＩの故障の種別、位置などの表示）、スイッチＬＳＩの閉塞状況及びスイッチＬＳＩを交換すべきことを促す旨を表示する（１９０８）。
【００９１】
ステップ１９０４において、スイッチＬＩＳの障害情報がスイッチＬＩＳの故障ではないと判定されると、プロセッサコアは、不当アクセスプロセッサコア記憶レジスタ６２の情報を参照して、レジスタの情報が自分に対するものであるか否かをチェックする（１９１０）。
【００９２】
プロセッサコアが、障害情報が自プロセッサに対するものではないと判定すると、設定された、スイッチＬＳＩの障害情報をクリアする（１９２４）。そして、プロセッサコアは、閉塞部位はないと判定して、フローチャートを終了する。
【００９３】
一方、ステップ１９１０において、自プロセッサの不当アクセスが記憶されていると判定すると、自プロセッサコアの不当アクセスの発生回数は累計で３回以上かを判定する（１９１２）。不当アクセスプロセッサコア記憶レジスタ６２には不当アクセス発生の累計カウンタがプロセッサコア毎に存在する。自プロセッサコアの不当アクセスの発生回数が累計で３回未満のときは、閉塞部位はないと判定して一連の処理を終了する（１９２４）。
【００９４】
一方、自プロセッサコアの不当アクセスの発生回数が３回以上である場合には、このプロセッサコアは閉塞され、このプロセッサコアを有する制御部は交換されるものであるために、先ず、ステップ１９２４と同様に、スイッチＬＳＩの障害情報（不当アクセスプロセッサコア記憶レジスタ）をクリアする。
【００９５】
さらに、プロセッサコアは、ホストＩ／Ｆ部の一時メモリ内ルーティングテーブル中の自制御部（自プロセッサコア属する制御部）の一部をフェイルオーバ制御部に変更する（１９１６）。
【００９６】
すなわち、図６の符号５０２Ｂで示されるルーティングテーブルにおいて、自制御部の全てを規定の制御部にフェイルオーバすると、フェイルオーバされた制御部のプロセッサコアに負荷が集中する。そこで、プロセッサコアの負荷を均等にするために、ルーティングテーブルの複数ある自制御部の一部について、自制御部を他制御部にフェイルオーバする。
【００９７】
この場合、自制御部はそのまま一部の論理ボリュームに対するライト/リード処理を継続する。この場合は、後に説明するように、不当アクセスを発行したプロセッサコアは閉塞されるので、閉塞されない他のプロセッサコアが自制御部として行う各種処理を継続する。ルーティングテーブルにおいて、どの程度自制御部をフェイルオーバするかは、自制御部・他制御部の正常なプロセッサコア（複数）の負荷が均等になるようにという観点から決定される。
【００９８】
次いで、プロセッサコアは、保守画面にエラー内容とプロセッサの閉塞状況及び自制御部の交換指示を表示する（１９１８）。さらに、プロセッサコアは、自制御部のローカルメモリ部３０に存在する構成情報を更新して、自プロセッサコアを無効にし（１９２０）、さらに自プロセッサコアを閉塞する（１９２２）。
【００９９】
なお、ステップ１９１４において、不当アクセスプロセッサ記憶レジスタ６２の情報をクリアするが、少なくとも不当アクセス判定直後のアクセスは転送可否判定部によって遮断される。図２４にこのことが説明されている。
【０１００】
図２０は制御部を交換するための処理を説明するフローチャートである。保守端末への保守員からの入力により、制御部を交換するための処理が開始される（２０００）。
【０１０１】
次に、保守員からの入力によって交換処理プログラムをスタートさせたプロセッサコアは、ホストＩ／Ｆ部２０の一時メモリ５０２内のルーティングテーブル中の交換対象となる制御部の全てを決められた制御部に切り替える（２００２）。
【０１０２】
次いで、プロセッサコアは、キャッシュメモリ部にある構成情報を更新して交換対象制御部を無効にする（２００４）。次いで、交換対象となった制御部を閉塞する（２００６）。さらに、保守画面に交換対象制御部と交換の指示を表示し、保守員による制御部の交換が終了（２００８）した後、交換対象制御部に属するプロセッサコアについて、不当アクセス制御記憶レジスタに障害フラグが残ったままになっている場合には、これをクリアする（２０１０）。なお、ローカルメモリ部の構成情報は、プロセッサコアによって定期的にキャッシュメモリからリードした情報を反映させたものである。
【０１０３】
さらに、プログラムは構成情報を更新して、交換した制御部をフェイルオーバ制御部として有効にする（２０１２）。さらに、ホストＩ／Ｆ部の一時メモリ内のルーティングテーブルにおいて、他の制御部にフェイルオーバされることなく残ったままになっている交換対象制御部についても規定の制御部に変更して一連の動作を終了する（２０１４）。
【０１０４】
図２１は保守画面の一例である。論理デバイス番号ごとに、論理デバイスに対するライト/リード処理を行う担当制御部が示されている。図２２は、保守画面の他の例である。スイッチＬＳＩによって不当アクセスが通知されたプロセッサコアについて、プロセッサコアが閉塞されたこと（図１９のステップ１９２２）が保守員に明示される。この保守情報は、図１９のステップ１９２０において更新された構成情報に基づいている。図２３Ａは保守画面のさらに他の例である。保守員に障害が発生したプロセッサコア＃２を有する制御部Ｂ（図２２）を交換することの要請が通知される（図１９のステップ１９１８）。図２３Ｂ及び図２３Ｃはストレージサブシステムの閉塞情報であり、制御部Ｂが閉塞されたことが示されている。
【０１０５】
図２４は、プロセッサコアに障害が発生した際でのストレージサブシステムの動作を示すシーケンスフローチャートである。ホストＩ／Ｆ部２０（図１）がホスト装置１２からライトコマンド（Ｓ１Ａ）を受信すると、担当振り分け制御部５０８（図５）は、ライトコマンドの処理を担当する制御部を決定し（Ｓ１）、担当制御部にコマンドを送信する（Ｓ２）。
【０１０６】
担当制御部では、最初にコマンドを受信したプロセッサコアがライトコマンドの処理を担当する（Ｓ３）。担当プロセッサコア（♯２）は、ローカルメモリ部３０（図１）にアクセスして制御データをリードし（Ｓ４）、ヒットミスの有無を判定する。さらに、担当プロセッサコアは、ローカルメモリにアクセスして制御データをリードし（Ｓ５）、データがクリーンデータであるか否かを判定する。次いで、担当プロセッサコアはローカルメモリの制御情報を更新する（Ｓ６）。
【０１０７】
担当プロセッサコアはキャッシュメモリ部２２の制御データバックアップ情報を更新する（Ｓ７）。さらに、担当プロセッサコアは、ホストＩ／Ｆ部の一時メモリ５０２（図５）にプロトコル制御部５００の転送パラメータ（プロトコル制御部がホスト装置にデータを転送することを要求するために必要なもの）を設定するためのアクセス（Ｓ８）と、プロトコル制御部にデータ転送を開始させる要求のためのアクセス（Ｓ９）をスイッチＬＳＩ１８（図１）に送信する。
【０１０８】
スイッチＬＳＩは、Ｓ８のアクセスが不当アクセスであることを検出し、アクセスＳ８のアドレスから担当プロセッサコア＃２を判定・特定する（Ｓ９Ａ）。スイッチＬＳＩは、不当アクセス（Ｓ８）に続いて、キュー処理に伴い担当プロセッサから発行された、プロトコル制御部を起動するアクセス（Ｓ９）を破棄し（Ｓ９Ａ）、担当プロセッサコア＃２に障害通知を割り込み処理にて実行する（Ｓ１０）。
【０１０９】
担当プロセッサコアは、スイッチＬＳＩの不当アクセスプロセッサコア記憶レジスタをリードし（Ｓ１１）、自プロセッサの障害を判定し（Ｓ１２）、さらに自プロセッサコアを閉塞することを判定する（Ｓ１３）。そして、担当プロセッサコアは、不当アクセスプロセッサコア障害レジスタの障害フラグをクリアする（Ｓ１４）。さらに、担当プロセッサコアはキャッシュメモリ上の構成情報を更新する（Ｓ１５）。続いて、担当プロセッサコアは保守画面に自プロセッサコアを閉塞すること表示し、制御部の交換を保守員に促す（Ｓ１７）。そして、自プロセッサコアを閉塞する（Ｓ１７）。
【０１１０】
一方、ホスト装置は、既述の工程の間、ライトコマンドに対する応答がストレージサブシステムから帰ってこないために、ライトコマンドの発行をリトライする（Ｓ１８Ａ）。Ｓ１８からＳ２３までの動作は、既述のＳ１からＳ７までと同様である。この動作は、プロセッサコア＃２が閉塞されているために、稼働状態にあるプロセッサコア＃１によって実行される。
【０１１１】
担当プロセッサコア＃１による、パラメータ設定のためのアクセス（Ｓ２４：Ｓ８に対応）は不当アクセスではないことにより、このアクセスは、ホストＩ／Ｆ部のプロトコル制御部５００までスイッチＬＳＩによって転送される。プロトコル制御部を起動するためのアクセス（Ｓ２５：Ｓ９に対応）もスイッチＬＳＩによって遮断されることなくプロトコル制御部まで転送される。
【０１１２】
プロトコル制御部５００は一時メモリ５０２から転送パラメータをリード（Ｓ２６）し、ホスト装置１４にユーザデータの転送要求を送信する（Ｓ２７）。プロトコル制御部はユーザデータ受信して一時メモリに格納する（Ｓ２８）。次いで、プロトコル制御部は担当プロセッサコアに転送完了を通知する（Ｓ２９）。この通知を受けた担当プロセッサコアは、一時メモリ５０２に転送パラメータ（一時メモリからキャッシュメモリ部２２にユーザデータを転送するために必要なもの）を設定し、ＤＭＡ５１０を起動するためのアクセスをホストＩ／Ｆ部に送信する（Ｓ３０）。
【０１１３】
ＤＭＡは、一時メモリ５０２から転送パラメータをリードし（Ｓ３１）、ユーザデータをキャッシュメモリ部にライトする（Ｓ３２）。キャッシュメモリ部はユーザデータを格納し、ホストＩ／Ｆ部にステータスを返信する（Ｓ３３）。ＤＭＡ５０４は、転送終了ステータスを担当プロセッサコア宛に送信する（Ｓ３４）。担当プロセッサコアはプロトコル制御部に終了ステータスを通知し（Ｓ３５）、ローカルメモリ３０上のＬＲＵ制御情報を更新する（Ｓ３７）。転送終了ステータスを受けたプロトコル制御部はホスト装置に終了ステータスを送信する（Ｓ３６）。
【０１１４】
既述の実施形態では、変換テーブルの設定値として、プロセッサコアからのアクセスの到達目標点としての実アドレスとしたが、これに限らず、所定の関数を用いて、スイッチＬＳＩが仮想アドレスを実アドレスに変換するようにしてもよい。
【産業上の利用可能性】
【０１１５】
本発明は、マルチプロセッサコアに構成をストレージ制御部に適用したストレージサブシステムにおいて、障害が発生したプロセッサコアを特定し、他のプロセッサコアの処理に影響を与えることなく、データストレージサービスを遂行させるという用途に適用できる。
【符号の説明】
【０１１６】
１０  ストレージサブシステム
１２  ホスト装置
１６（１６Ａ，１６Ｂ）  ストレージ制御部
１８  スイッチ回路
２０（２０Ａ，２０Ｂ）  ホストＩ／Ｆ回路
２２（２０Ａ，２０Ｂ）  キャッシュメモリ
２４（２４Ａ，２４Ｂ）  ディスクＩ／Ｆ回路  
２８  マルチコアプロセッサ
【図１】
0005318223.tif 000002
【図２】
0005318223.tif 000003
【図３】
0005318223.tif 000004
【図４】
0005318223.tif 000005
【図５】
0005318223.tif 000006
【図６】
0005318223.tif 000007
【図７】
0005318223.tif 000008
【図８】
0005318223.tif 000009
【図９】
0005318223.tif 000010
【図１０】
0005318223.tif 000011
【図１１】
0005318223.tif 000012
【図１２】
0005318223.tif 000013
【図１３】
0005318223.tif 000014
【図１４】
0005318223.tif 000015
【図１５】
0005318223.tif 000016
【図１６】
0005318223.tif 000017
【図１７】
0005318223.tif 000018
【図１８】
0005318223.tif 000019
【図１９】
0005318223.tif 000020
【図２０】
0005318223.tif 000021
【図２１】
0005318223.tif 000022
【図２２】
0005318223.tif 000023
【図２３Ａ】
0005318223.tif 000024
【図２３Ｂ】
0005318223.tif 000025
【図２３Ｃ】
0005318223.tif 000026
【図２４】
0005318223.tif 000027