(57)【要約】　　　（修正有）【課題】既存の集積回路を用いて障害検出回路を構成し、低価格、高信頼度の記憶制御装置を提供する。【解決手段】記憶装置の入出力データを記憶しておくためのキャッシュメモリと、ホストコンピュータとキャッシュメモリとの間のデータ転送を制御する第１の集積回路と、キャッシュメモリを制御する第２の集積回路と、キャッシュメモリと記憶装置との間のデータ転送を制御する第３の集積回路と、を有し、第１又は第３の集積回路は、データセットを生成し、第２の集積回路は、前記データセットに基づいて制御信号を生成し、その制御信号に基づいてキャッシュメモリを制御する記憶制御装置の制御方法であって、第２の集積回路は、制御信号の内容を検証するための情報を第１又は第３の集積回路に送信し、第１又は第３の集積回路は、第２の集積回路から受信した前記情報に基づいて、第２の集積回路にて生成された制御信号の内容を検証する。【選択図】　　　図１
2004054514.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置の入出力データを記憶しておくためのキャッシュメモリと、ホストコンピュータと前記キャッシュメモリとの間のデータ転送を制御する第１の集積回路と、前記キャッシュメモリを制御する第２の集積回路と、前記キャッシュメモリと前記記憶装置との間のデータ転送を制御する第３の集積回路と、を有し、
前記第１又は第３の集積回路は、前記第２の集積回路が前記キャッシュメモリに対する制御信号を生成するためのデータセットを生成し、
前記第２の集積回路は、前記第１又は第３の集積回路にて生成された前記データセットに基づいて前記制御信号を生成し、その生成した前記制御信号に基づいて前記キャッシュメモリを制御する記憶制御装置の制御方法であって、
前記第２の集積回路は、前記生成した制御信号の内容を検証するための情報を前記第１又は第３の集積回路に送信し、
前記第１又は第３の集積回路は、前記第２の集積回路から受信した前記情報に基づいて、前記第２の集積回路にて生成された前記制御信号の内容を検証することを特徴とする記憶制御装置の制御方法。
【請求項２】
前記第１又は第３の集積回路は、前記生成したデータセットに基づいて、前記第２の集積回路にて生成する前記制御信号の内容を検証するための第１の検証コードを生成し、
前記第２の集積回路は、前記生成した制御信号に基づいて、その内容を検証するための第２の検証コードを生成し、
前記第２の集積回路は、前記生成した第２の検証コードを前記第１又は第３の集積回路に送信し、
前記第１又は第３の集積回路は、前記第２の集積回路から受信した前記第２の検証コードと、前記第１の検証コードとに基づいて、前記第２の集積回路にて生成された制御信号の内容を検証することを特徴とする請求項１に記載の記憶制御装置の制御方法。
【請求項３】
前記第１又は第３の集積回路は、前記生成したデータセットに基づいて、前記第２の集積回路にて生成する前記制御信号の内容を検証するための第１の検証コードを生成し、
前記第２の集積回路は、前記生成した制御信号を前記第１の集積回路に送信し、
前記第１又は第３の集積回路は、前記第２の集積回路から受信した前記制御信号に基づいて、その内容を検証するための第２の検証コードを生成し、
前記第１又は第３の集積回路は、前記生成した第２の検証コードと前記第１の検証コードとに基づいて、前記第２の集積回路にて生成された制御信号の内容を検証することを特徴とする請求項１に記載の記憶制御装置の制御方法。
【請求項４】
前記記憶制御装置は、複数の前記第１又は第３の集積回路と、一又は複数の前記第２の集積回路と、を有し、
複数の前記第１又は第３の集積回路と一又は複数の前記第２の集積回路との間には、前記第１又は第３の集積回路と前記第２の集積回路との組み合わせを変更する第４の集積回路を有することを特徴とする請求項１に記載の記憶制御装置の制御方法。
【請求項５】
記憶装置の入出力データを記憶しておくためのキャッシュメモリと、ホストコンピュータと前記キャッシュメモリとの間のデータ転送を制御する第１の集積回路と、前記キャッシュメモリを制御する第２の集積回路と、前記キャッシュメモリと前記記憶装置との間のデータ転送を制御する第３の集積回路と、を有し、
前記第１又は第３の集積回路は、前記第２の集積回路が前記キャッシュメモリに対する制御信号を生成するためのデータセットを生成し、
前記第２の集積回路は、前記第１又は第３の集積回路にて生成された前記データセットに基づいて前記制御信号を生成し、その生成した前記制御信号に基づいて前記キャッシュメモリを制御する記憶制御装置であって、
前記第２の集積回路は、前記生成した制御信号の内容を検証するための情報を前記第１又は第３の集積回路に送信する手段と、
前記第１又は第３の集積回路は、前記第２の集積回路から受信した前記情報に基づいて、前記第２の集積回路にて生成された前記制御信号の内容を検証する手段と、
を有することを特徴とする記憶制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶制御装置の制御方法及び記憶制御装置に関する。
【０００２】
【従来の技術】
ＩＴ技術の進展やブロードバンド時代への対応など、ディスクアレイ装置などの記憶制御装置をとりまく環境は急速に変化している。このような環境下において、低価格かつ高信頼性な記憶制御装置に対するニーズが年々高まってきている。
【０００３】
ここで、コンピュータシステムの信頼性を向上させる技術として、例えば、特開平６−３３１７０６号公報や特開平９−１８１５９０号公報には、同一内容の論理演算を行う等価な２個のＬＳＩを用いて障害検出を行う技術が開示されている。
【０００４】
【発明が解決しようとする課題】
しかしながら、例えば、上記公報に開示された技術では、障害検出対象となるＬＳＩに対し、そのＬＳＩと等価なＬＳＩを冗長に備える必要があり、システム構築にかかるコストが増大するという問題がある。また、このような冗長構成をとることによって、システムが複雑化し、故障率の増大を招く恐れもある。従って、低価格かつ高信頼性が求められる記憶制御装置に対し、上記公報に開示された技術を適用することは問題が多い。
本発明は、記憶制御装置の制御方法及び記憶制御装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
前記課題を解決するための主たる本発明は、記憶装置の入出力データを記憶しておくためのキャッシュメモリと、ホストコンピュータと前記キャッシュメモリとの間のデータ転送を制御する第１の集積回路と、前記キャッシュメモリを制御する第２の集積回路と、前記キャッシュメモリと前記記憶装置との間のデータ転送を制御する第３の集積回路と、を有し、前記第１又は第３の集積回路は、前記第２の集積回路が前記キャッシュメモリに対する制御信号を生成するためのデータセットを生成し、前記第２の集積回路は、前記第１又は第３の集積回路にて生成された前記データセットに基づいて前記制御信号を生成し、その生成した前記制御信号に基づいて前記キャッシュメモリを制御する記憶制御装置の制御方法であって、前記第２の集積回路は、前記生成した制御信号の内容を検証するための情報を前記第１又は第３の集積回路に送信し、前記第１又は第３の集積回路は、前記第２の集積回路から受信した前記情報に基づいて、前記第２の集積回路にて生成された前記制御信号の内容を検証することである。
【０００６】
このように、本発明に係る記憶制御装置は、第１乃至第３の集積回路という既存の集積回路を用いて障害検出を行うため、低価格かつ高信頼性な記憶制御装置を提供することができる。
本発明の他の特徴については、添付図面及び本明細書の記載により明らかにする。
【０００７】
【発明の実施の形態】
＝＝＝開示の概要＝＝＝
以下の開示により、少なくとも次のことが明らかにされる。
記憶装置の入出力データを記憶しておくためのキャッシュメモリと、ホストコンピュータと前記キャッシュメモリとの間のデータ転送を制御する第１の集積回路と、前記キャッシュメモリを制御する第２の集積回路と、前記キャッシュメモリと前記記憶装置との間のデータ転送を制御する第３の集積回路と、を有し、前記第１又は第３の集積回路は、前記第２の集積回路が前記キャッシュメモリに対する制御信号を生成するためのデータセットを生成し、前記第２の集積回路は、前記第１又は第３の集積回路にて生成された前記データセットに基づいて前記制御信号を生成し、その生成した前記制御信号に基づいて前記キャッシュメモリを制御する記憶制御装置の制御方法であって、前記第２の集積回路は、前記生成した制御信号の内容を検証するための情報を前記第１又は第３の集積回路に送信し、前記第１又は第３の集積回路は、前記第２の集積回路から受信した前記情報に基づいて、前記第２の集積回路にて生成された前記制御信号の内容を検証することを特徴とする記憶制御装置の制御方法。
【０００８】
前述した中で、「第１の集積回路」は、記憶制御装置において既存のデータ転送制御部Ａに実装された第１のＬＳＩであり、「第２の集積回路」は、記憶制御装置において既存のキャッシュメモリ制御部に実装された第２のＬＳＩであり、「第３の集積回路」は、記憶制御装置において既存のデータ転送制御部Ｂに実装された第３のＬＳＩのことである。「制御信号」は、例えば、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ　ＤＲＡＭ）をキャッシュメモリとして用いた場合には、ＲＡＳ（Ｒｏｗ　Ａｄｄｒｅｓｓ　Ｓｔｒｏｂｅ）、ＣＡＳ（Ｃｏｌｕｍｎ　Ａｄｄｒｅｓｓ　Ｓｔｒｏｂｅ）、ＷＥ（Ｗｒｉｔｅ　Ｅｎａｂｌｅ）などとなる。また、このような場合、「データセット」は、リード／ライト開始アドレス（番地）、リード／ライト時におけるデータの転送長（Ｂｙｔｅ）、リード／ライトなどのアクセス形式を特定する転送モード（リード／ライト）などによって構成されるデータ集合となる。なお、ＳＤＲＡＭ以外の半導体記憶装置をキャッシュメモリとして用いた場合には、「制御信号」及び「データセット」は、その半導体記憶装置の仕様に基づく制御信号やデータセットとなる。
【０００９】
このように、本発明に係る記憶制御装置は、第１乃至第３の集積回路という既存の集積回路を用いて障害検出を行うため、低価格かつ高信頼性な記憶制御装置を提供することができる。
【００１０】
本発明の第２の態様において、好ましくは、前記第１又は第３の集積回路は、前記生成したデータセットに基づいて、前記第２の集積回路にて生成する前記制御信号の内容を検証するための第１の検証コードを生成し、前記第２の集積回路は、前記生成した制御信号に基づいて、その内容を検証するための第２の検証コードを生成し、前記第２の集積回路は、前記生成した第２の検証コードを前記第１又は第３の集積回路に送信し、前記第１又は第３の集積回路は、前記第２の集積回路から受信した前記第２の検証コードと、前記第１の検証コードとに基づいて、前記第２の集積回路にて生成された制御信号の内容を検証する。
【００１１】
前述した中で、「第１の検証コード」は、ＣＲＣ（Ｃｙｃｌｉｃ　Ｒｅｄｕｎｄａｎｃｙ　Ｃｈｅｃｋ）やチェックサム（Ｃｈｅｃｋ　Ｓｕｍ）などに用いられる符号の生成手順によって、「データセット」に基づいて生成されるコードとしてもよい。なお、「第１の検証コード」は、「第２の検証コード」の比較対象となるコードであり、以下では、この「第１の検証コード」のことを「比較対象コード」と称している。「第２の検証コード」は、「第１の検証コード」と同様にＣＲＣやチェックサムなどに用いられる符号の生成手順によって、「制御信号」に基づいて生成されるコードとしてもよい。以下では、「第２の検証コード」のことを「制御信号チェックコード」と称している。
【００１２】
ここで、「第１の検証コード」や「第２の検証コード」を生成する手段や、また「第１の検証コード」と「第２の検証コード」に基づいて第２の集積回路にて生成された制御信号を検証する手段は、組み合わせ回路や順序回路などの比較的単純な論理回路によって実現することができる。このようにして、記憶制御装置における既存の集積回路に対して、比較的単純な仕様変更を実施することによって、低価格かつ高信頼性な記憶制御装置を提供できることになる。
【００１３】
本発明の第３の態様において、好ましくは、前記第１又は第３の集積回路は、前記生成したデータセットに基づいて、前記第２の集積回路にて生成する前記制御信号の内容を検証するための第１の検証コードを生成し、前記第２の集積回路は、前記生成した制御信号を前記第１の集積回路に送信し、前記第１又は第３の集積回路は、前記第２の集積回路から受信した前記制御信号に基づいて、その内容を検証するための第２の検証コードを生成し、前記第１又は第３の集積回路は、前記生成した第２の検証コードと前記第１の検証コードとに基づいて、前記第２の集積回路にて生成された制御信号の内容を検証する。
【００１４】
前述した本発明の第２の態様との相違点は、「第２の検証コード」を第１又は第３の集積回路において生成することである。本発明の第２の態様と同様、記憶制御装置における既存の集積回路に対して、比較的単純な仕様変更を実施することによって、低価格かつ高信頼性な記憶制御装置を提供できることになる。
【００１５】
本発明の第４の態様において、好ましくは、前記記憶制御装置は、複数の前記第１又は第３の集積回路と、一又は複数の前記第２の集積回路と、を有し、複数の前記第１又は第３の集積回路と一又は複数の前記第２の集積回路との間に、前記第１又は第３の集積回路と前記第２の集積回路との組み合わせを変更する第４の集積回路を有する。
【００１６】
前述した中で、「第４の集積回路」は、記憶制御装置が、データ転送制御部Ａ又はＢを複数有し、また、キャッシュメモリ制御部を一又は複数有するような構成となる場合に、データ転送制御部Ａ又はＢとキャッシュメモリ制御部との間に備えられる、パススイッチ制御部に実装された第４のＬＳＩである。
【００１７】
記憶制御装置が、データ転送制御部Ａ又はＢを複数有し、また、キャッシュメモリ制御部を一又は複数有するような構成において、「第４の集積回路」を有効に利用することによって、前述した第１乃至第３の集積回路という既存の集積回路を用いて障害検出を実現できるので、低価格かつ高信頼性な記憶制御装置を提供することができる。
【００１８】
＝＝＝第１実施形態＝＝＝
＜システム構成＞
本発明に係る第１実施形態としての記憶制御装置を含めたストレージシステムの構成を、図１を用いて概略的に説明する。
【００１９】
ストレージシステムは、メインフレームやオープン系システムにおけるＰＣサーバなどのホストコンピュータ２００と、記憶制御装置１００と、ディスクアレイを構成する多数の記憶デバイス（例えば、磁気ディスク装置）を備える記憶装置３００と、ストレージシステム全体の運用状況などを監視する管理端末４００と、によって構成される。なお、ホストコンピュータ２００は、ＬＡＮやＷＡＮなどの通信ネットワークや、さらにはＳＣＳＩやファイバーチャネルなどのインタフェース（いずれも不図示）を介して、記憶制御装置１００に接続されている。
【００２０】
記憶制御装置１００は、記憶装置３００の入出力データを記憶しておくキャッシュメモリ１２１及びそのキャッシュメモリ１２１へのリード／ライトなどのアクセスを制御するＬＳＩ１２０（以下、第２のＬＳＩと称す）を有するキャッシュメモリ制御部１２２と、ホストコンピュータ２００とキャッシュメモリ制御部１２２との間のデータ転送を制御するデータ転送制御部１１２（以下、データ転送制御部Ａと称す）と、キャッシュメモリ制御部１２２と記憶装置との間のデータ転送を制御するデータ転送制御部１３２（以下、データ転送制御部Ｂと称す）と、を有する。また、データ転送制御部Ａは、マイクロプロセッサ１１１と、マイクロプロセッサ１１１からのデータ転送開始の指示により、第２のＬＳＩ１２０がキャッシュメモリ１２１に対しての制御信号を生成するためのデータセットを生成するＬＳＩ１１０（以下、第１のＬＳＩと称す）を有す。データ転送制御部Ｂは、データ転送制御部Ａと同様にマイクロプロセッサ１３１と、マイクロプロセッサ１３１からのデータ転送開始の指示により、第２のＬＳＩ１２０がキャッシュメモリ１２１に対しての制御信号を生成するためのデータセットを生成するＬＳＩ１３０（以下、第３のＬＳＩと称す）を有す。
【００２１】
なお、第２のＬＳＩ１２０において生成される制御信号は、例えば、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ　ＤＲＡＭ）をキャッシュメモリ１２１として用いる場合には、ＲＡＳ（Ｒｏｗ　Ａｄｄｒｅｓｓ　Ｓｔｒｏｂｅ）、ＣＡＳ（Ｃｏｌｕｍｎ　Ａｄｄｒｅｓｓ　Ｓｔｒｏｂｅ）、ＷＥ（Ｗｒｉｔｅ　Ｅｎａｂｌｅ）などとなる。また、この場合、第１のＬＳＩ１１０又は第３のＬＳＩ１３０において生成されるデータセットは、リード／ライト開始アドレス（番地）、リード／ライト時におけるデータの転送長（Ｂｙｔｅ）、リード／ライトなどのアクセス形式を特定する転送モード（リード／ライト）などによって構成されるデータ集合となる。
【００２２】
なお、本発明に係る第１実施形態としての記憶制御装置１００は、基本的には従来の記憶制御装置と同様な構成となる。ここで、図２に示すように、本発明に係る第１実施形態としての記憶制御装置１００は、第１乃至第３のＬＳＩ１１０、１２０、１３０という既存のＬＳＩを用いて障害検出を行う仕組みを備える。
【００２３】
以下では、障害検出の仕組みを備えた、第１のＬＳＩ１１０又は第３のＬＳＩ１３０と、第２のＬＳＩ１２０それぞれの機能について説明する。
【００２４】
＜第１又は第３のＬＳＩ＞
本発明に係る第１実施形態としての第１のＬＳＩ１１０及び第３のＬＳＩ１３０について、図３を用いて説明する。なお、第３のＬＳＩ１３０は、第１のＬＳＩと同様なブロック構成となるので、以下では説明を省略する。
【００２５】
第１のＬＳＩ１１０のハードウェア構成は、マイクロプロセッサ１１１の間のインタフェース回路１１０１（マイクロプロセッサＩ／Ｆ回路）と、キャッシュメモリ１２１へのリード／ライトデータを一時的に格納するバッファ１１０２と、前述したデータセットを生成する回路（データセット生成回路１１０３）と、後述するパススイッチ制御部１４１との間のインタフェース回路１１０４（パススイッチＩ／Ｆ回路）と、を有する他に、本発明に係る第１実施形態として特徴的な動作を行う制御信号チェックコード検証部１１０５を有する。
【００２６】
制御信号チェックコード検証部１１０５は、比較対象コード生成回路１１０６と、ステータス保持回路１１０７と、制御信号チェックコード抽出回路１１０８と、比較回路１１０８と、を有する。比較対象コード生成回路１１０６は、データセット生成回路１１０３において生成したデータセットをもとに、第２のＬＳＩ１２０において生成する後述の制御信号チェックコードに対して、その比較対象とするコード（以下、比較対象コードと称す）を生成する。ステータス保持回路１１０７は、第２のＬＳＩ１２０から受信するステータス情報を保持する。制御信号チェックコード抽出回路１１０８は、ステータス保持回路１１０７に保持されてあるステータス情報から制御信号チェックコードを抽出する。比較回路１１０８は、比較対象コード生成回路１１０６において生成された比較対象コードと、制御信号チェックコード抽出回路１１０８において抽出された制御信号チェックコードと、を比較し、その比較結果を示すデータを、マイクロプロセッサＩ／Ｆ回路１１０１を介してマイクロプロセッサ１１１に送信する。なお、比較回路１１０８は、例えば、図５に示すように、ＸＯＲ回路とＯＲ回路を組み合わせた単純な構成によって実現されるが、その他、いかなる実施形態としてもよい。
【００２７】
ところで、前述したデータセット及びステータス情報などは、パケット形式にて、第１のＬＳＩ１１０と第２のＬＳＩ１２０の間などにおいて転送される。ここで、本発明の第１実施形態において使用するパケットとしては、図６に示すコマンド・パケット６００、図７に示すデータ・パケット７００、図８に示すステータス・パケット８００がある。以下では、それぞれのパケットの具体的な内容を説明する。
【００２８】
まず、コマンド・パケット６００は、図６に示すように、前述したようなアクセス開始アドレス、データ転送長、データ転送モード（以下、これらのデータ集合をデータ転送パラメータと称す）や、本パケットがコマンド・パケット６００であることを示すコマンド・パケット識別子、ＣＲＣ（Ｃｙｃｌｉｃ　Ｒｅｄｕｎｄａｎｃｙ　Ｃｈｅｃｋ）などによって生成され、受信先にて本パケットが破壊されていなことを判定する際に用いられるパケット保護コード、本パケットを送信する第１のＬＳＩ１１０に付与された識別ＩＤ（以下、送信元ＩＤと称す）などによって構成される。なお、送信元ＩＤは、第２のＬＳＩ１２０が、ステータス・パケット８００を第１のＬＳＩ１１０に送信する際に参照されることになる。
【００２９】
データ・パケット７００は、図７に示すように、本パケットがデータ・パケット７００であることを示すデータ・パケット識別子、リード／ライトデータ、パケット保護コード（コマンド・パケット６００のパケット保護コードに相当する）によって構成される。
【００３０】
ステータス・パケット８００は、図８に示すように、本パケットがステータス・パケット８００であることを示すステータス・パケット識別子、パケット保護コード（コマンド・パケット６００のパケット保護コードに相当する）の他、障害が検出されたＬＳＩを特定するためのコード（以下、障害ＬＳＩコードと称す）、障害内容の詳細を示すコード（以下、障害内容コードと称す）、制御信号チェックコード、送信元ＩＤ、応答先ＩＤ、によって構成される。
【００３１】
なお、障害ＬＳＩ／内容コードの対象となる障害には、例えば、第２のＬＳＩ１２０や後述する第４のＬＳＩ１８０が、前述のコマンド・パケット６００やデータ・パケット７００を受信した際に、それらパケットに含まれるパケット保護コードに基づいて検出されるものとなる。
【００３２】
制御信号チェックコードは、第２のＬＳＩ１２０において、後述する制御信号チェックコード生成回路１２０５によって生成され、また、後述するステータス生成回路１２０６によって本パケットの構成に含められることになる。
【００３３】
送信元ＩＤは、本パケットに対応するコマンド・パケット６００に含まれる送信元ＩＤに対応する。応答先ＩＤは、本パケットを送信してきた、第２のＬＳＩ１２０に付与された識別ＩＤである。第１のＬＳＩ１１０は、この応答先ＩＤをもとに、本パケットが目的とする第２のＬＳＩ１２０から送信されたかどうかを判定することになる。
【００３４】
＜第２のＬＳＩ＞
本発明に係る第１実施形態としての第２のＬＳＩ１２０について、図４を用いて説明する。第２のＬＳＩ１２０のハードウェア構成は、後述のパススイッチ制御部１４１との間のインタフェース回路１２０１（パススイッチＩ／Ｆ回路）と、キャッシュメモリ１２１へのリード／ライトデータを一時的に格納するバッファ１２０３と、第１のＬＳＩ１１０から受信したデータセットを解析し、その解析の結果、指定されるシーケンスに基づいて制御信号の生成を行う制御回路１２０４と、キャッシュメモリ１２１との間のインタフェース回路（キャッシュメモリＩ／Ｆ回路）と、を有する他に、本発明に係る第１実施形態として、特徴的な動作を行う制御信号チェックコード生成回路１２０５及びステータス生成回路１２０６を有する。
【００３５】
制御信号チェックコード生成回路１２０５は、制御回路１２０４において生成された制御信号をもとに、その内容をチェックするためのコード（以下、制御信号チェックコードと称す）を生成する。なお、制御信号チェックコードには、例えば、巡回冗長検査（ＣＲＣ：　Ｃｙｃｌｉｃ　Ｒｅｄｕｎｄａｎｃｙ　Ｃｈｅｃｋ）、水平冗長　（ＬＲＣ：　Ｌｏｎｇｉｔｕｄｉｎａｌ　Ｒｅｄｕｎｄａｎｃｙ　Ｃｈｅｃｋ）、チェックサム（Ｃｈｅｃｋ　Ｓｕｍ）などの誤り検出方式によって生成する符号を用いることができる。
【００３６】
なお、図９には、制御信号チェックコード生成回路１２０５のハードウェア構成の一実施例と、図１０には、制御信号チェックコード生成回路１２０５が、１２のマシン・サイクルにて生成される制御信号をもとに、制御信号チェックコードを生成する場合のタイミングチャートが示されている。図９に示すように、制御信号チェックコード生成回路１２０５は、組み合わせ回路とフリップ・フロップ回路とを組み合わせた単純な構成によって、容易に実現することができる。
【００３７】
ステータス生成回路１２０６は、制御信号チェックコード生成回路１２０５にて生成された制御信号チェックコードと、前述したステータス・パケット８００を構成するその他の情報をもとに、ステータス・パケット８００を生成する。
【００３８】
＜障害検出方法＞
つぎに、図１１のフローチャートを用いて、本発明に係る第１実施形態として、記憶制御装置１００の障害検出方法について説明する。以下では、第１のＬＳＩ１１０と第２のＬＳＩ１２０との組み合わせにおいて、第１のＬＳＩ１１０が、第２のＬＳＩ１２０にて生成された、ライト処理に関する制御信号の検証を行う。なお、第３のＬＳＩ１３０と第２のＬＳＩ１２０との組み合わせにおいて行われる障害検出方法について、以下では説明を省略する。
【００３９】
まず、第１のＬＳＩ１１０は、マイクロプロセッサ１１１からライト処理開始コマンドをマイクロプロセッサＩ／Ｆ回路１１０１を介して受信すると（Ｓ１１０１）、データセット生成回路１１０３においてデータセットを生成し（Ｓ１１０２）、その生成したデータセットを前述したコマンド・パケット６００形式に変換した後、第２のＬＳＩ１２０に送信する（Ｓ１１０３）。また、比較対象コード生成回路１１０６では、データセット生成回路１１０３において生成されたデータセット対し、そのデータセットに含まれるデータ転送パラメータをもとに、比較対象コードを生成し（Ｓ１１０４）、レジスタ等に一時的に記憶する。
【００４０】
引き続いて、第１のＬＳＩ１１０は、マイクロプロセッサ１１１からマイクロプロセッサＩ／Ｆ回路１１０１を介してライトデータを受信すると、そのライトデータをライトデータバッファ１１０２に一時的に格納する。また、第１のＬＳＩ１１０は、ライトデータバッファ１１０２に格納されたライトデータを、前述したデータ・パケット７００形式に変換した後、第２のＬＳＩ１２０に送信する（Ｓ１１０５）。
【００４１】
その一方、第２のＬＳＩ１２０は、第１のＬＳＩ１１０から送信されたコマンド・パケット６００を受信すると（Ｓ１１０６）、その受信したコマンド・パケット６００に対し、それに含まれるパケット保護コードをもとに正常／異常の判定を行い、その判定結果が異常であった場合には、誤り訂正などの指定された処理を行う。また、以上の判定結果が正常であった場合には、第２のＬＳＩ１２０は、制御回路１２０４において、コマンド・パケット６００の解析を行い、その解析の結果、指定されたシーケンスに基づいて制御信号を生成する（Ｓ１１０７）。なお、このように制御信号を生成する過程で、制御信号の中間データとなる制御遷移信号と、それに対して付与されるパリティ・ビットなどの検査データをもとに、その制御遷移信号の内容をチェックするようにしてもよい。
【００４２】
つぎに、第２のＬＳＩ１２０は、第１のＬＳＩ１１０から送信されたデータ・パケット７００を受信すると（Ｓ１１０８）、その受信したデータ・パケット７００に対し、それに含まれるパケット保護コードをもとにパケットの正常／異常の判定を行い、その判定結果が異常であった場合には、誤り訂正などの指定された処理を行う。また、前記判定結果が正常であった場合には、第２のＬＳＩ１２０は、データ・パケット７００をライトデータバッファ１２０３に格納した後、その格納されたデータ・パケット７００からライトデータを抽出する。第２のＬＳＩ１２０の制御回路１２０４は、この抽出したライトデータ及び前記生成した制御信号をもとに、キャッシュメモリ１２１に対してのライト処理を行う（Ｓ１１０９）。
【００４３】
また、第２のＬＳＩ１２０は、制御信号チェックコード生成回路１２０５において、前記生成した制御信号をもとに、制御信号チェックコードを生成する（Ｓ１１１０）。第２のＬＳＩ１２０は、キャッシュメモリ１２１に対してのライト処理が終了後、ステータス生成回路１２０６において、制御信号チェックコード、各パケット判定時の障害情報などに基づいて生成される障害ＬＳＩ／内容コードなどによって、ステータス・パケット８００を生成する（Ｓ１１１１）。また、第２のＬＳＩ１２０は、生成したステータス・パケット８００を、第１のＬＳＩ１１０に送信する（Ｓ１１１２）。
【００４４】
第１のＬＳＩ１１０は、第２のＬＳＩ１２０から送信されたステータス・パケット８００を受信すると（Ｓ１１１３）、その受信したステータス・パケット８００に対し、そのパケット含まれるパケット保護コードをもとにパケットの正常／異常の判定を行い、その判定結果が異常であった場合には、誤り訂正などの指定された処理を行う。また、前記判定結果が正常であった場合には、第１のＬＳＩ１１０は、ステータス・パケット８００に含まれる障害ＬＳＩ／内容コードを参照し（Ｓ１１１４）、障害が発生していることを検知した場合には、本ライト処理が異常終了した旨を示すデータ（障害ＬＳＩ／内容コード等を含む）を、マイクロプロセッサＩ／Ｆ回路１１０１を介してマイクロプロセッサ１１１に送信する（Ｓ１１１９）。この際、マイクロプロセッサ１１１は、自身が送信するデータセット処理の結果を格納するレジスタ（以下、終了結果レジスタと称す）に対し、異常終了を示すデータ（例えば、正常終了ならば「０」、異常終了ならば「１」となる）をセットする。
【００４５】
また、第１のＬＳＩ１１０は、ステータス・パケット８００に含まれる障害ＬＳＩ／内容コードを参照し、障害の発生を検知しなかった場合には、制御信号チェックコード抽出回路１１０８において、ステータス・パケット８００から制御信号チェックコードを抽出する（Ｓ１１１５）。そして、比較回路１１０８において、生成した比較対象コードと抽出した制御信号チェックコードとを比較し（Ｓ１１１６〜Ｓ１１１７）、その比較の結果を示すデータ（以下、比較結果データと称す。比較結果データは、例えば、制御信号チェックコードと比較対象コードが一致すれば「０」、不一致ならば「１」となる）を、マイクロプロセッサＩ／Ｆ回路１１０１を介してマイクロプロセッサ１１１に送信する（Ｓ１１１８、Ｓ１１１９）。なお、マイクロプロセッサ１１１は、第１のＬＳＩ１１０から送信された比較結果データをもとに、前述した終了結果レジスタの値をセットする。なお、この後の工程として、記憶制御装置１００が、マイクロプロセッサ１１１の終了結果レジスタにセットされた値を管理端末４００に送信するようにしてもよい。この場合、管理端末４００を操作する管理者は、記憶制御装置１００から受信したデータに基づいて、ライト処理が正常に終了したかどうかを監視することになる。
【００４６】
このようにして、記憶制御装置１００は、第１のＬＳＩ１１０又は第３のＬＳＩ１３０と第２のＬＳＩ１２０との組み合わせにおいて、ライト処理に関する制御信号についての障害検出を行う。また、ライト処理以外のリード処理や消去処理などに関する制御信号についても、前述したライト処理の場合と同様な工程によって、それらの障害検出を行うことが可能である。
【００４７】
ところで、上記第１実施形態では、第２のＬＳＩ１２０において、制御信号チェックコードを生成するようにしたが、例えば、第１のＬＳＩ１１０又は第３のＬＳＩ１３０において、制御信号チェックコードを生成することも可能である。この場合、第１のＬＳＩ１１０又は第３のＬＳＩ１３０は、制御信号チェックコード生成回路１２０５を有し、また、第１のＬＳＩ１１０又は第３のＬＳＩ１３０は、制御信号チェックコードを含んだステータス・パケット８００ではなく、制御信号を第２のＬＳＩ１２０から受信するような構成をとる。
【００４８】
このようにして、本発明に係る第１実施形態としての記憶制御装置１００は、第１乃至第３のＬＳＩ１１０、１２０、１３０という既存のＬＳＩを用いて障害検出を行うために、低価格かつ高信頼性な記憶制御装置を提供することができる。
【００４９】
＝＝＝その他の実施形態＝＝＝
また、上記第１実施形態では、記憶制御装置１００がデータ転送制御部Ａ、Ｂをそれぞれ一つずつ有していたが、本発明に係る第２実施形態として、例えば、図１２に示すように、記憶制御装置１００が、データ転送制御部Ａ、Ｂをそれぞれ複数有し、また、複数のデータ転送制御部Ａ、Ｂとキャッシュメモリ制御部１２２との間に、パススイッチ制御部１４１を有する構成としてもよい。また、図１２には示していないが、キャッシュメモリ制御部１２２を複数有する構成としてもよい。
【００５０】
パススイッチ制御部１４１は、パススイッチ制御ＬＳＩ１３０（以下、第４のＬＳＩと称す）を有し、このＬＳＩ１３０によって、複数のデータ転送制御部Ａからの第１のバス１４２とキャッシュメモリ制御部１２２からの第２のバス１４３との接続や、複数のデータ転送制御部Ｂからの第３のバス１４４とキャッシュメモリ制御部１２２からの第２のバス１４３との接続を切り替える制御を行う。この場合、第１のＬＳＩ１１０及び第２のＬＳＩ１２０はそれぞれ、図３及び図４に示すように、パススイッチ制御部１４１とのインタフェース回路１１０４、１２０１（パススイッチＩ／Ｆ回路）を有する。
【００５１】
図１３は、本発明に係る第２実施形態として、第１のＬＳＩ１１０又は第３のＬＳＩ１３０と第２のＬＳＩ１２０との間におけるパケット転送の工程を説明するフローチャートである。以下では、第１のＬＳＩ１１０と第２のＬＳＩ１２０との間におけるパケット転送について、第４のＬＳＩ１４０の動作を中心に説明する。なお、第３のＬＳＩ１３０と第２のＬＳＩ１２０との間におけるパケット転送については、以下では説明を省略する。
【００５２】
まず、第１のＬＳＩ１１０は、前述したコマンド・パケット６００を生成すると（Ｓ１１０２）、そのコマンド・パケット６００を第４のＬＳＩ１４０に送信する（Ｓ１３０１）。第４のＬＳＩ１４０は、第１のＬＳＩ１１０からコマンド・パケット６００を受信すると（Ｓ１３０２）、それに含まれるパケット保護コードをもとにパケットの正常／異常の判定を行い、その判定結果が異常の場合には、誤り訂正などの指定された処理を行う。
【００５３】
つぎに、第４のＬＳＩ１４０は、第１のＬＳＩ１１０から受信したコマンド・パケット６００に含まれるアクセス開始アドレスなどの情報をもとに、予め記憶してある、キャッシュメモリ１２１のアドレス空間と第２のＬＳＩ１４０に付与された識別ＩＤの対応づけを参照し、受信したコマンド・パケット６００の送信先となる第２のＬＳＩ１２０の識別ＩＤを取得する（Ｓ１３０３）。そして、第４のＬＳＩ１４０は、取得した識別ＩＤが指定する第２のＬＳＩ１２０への第２のバス１４３を選択するとともに（Ｓ１３０４）、受信したコマンド・パケット６００をその第２のＬＳＩ１２０に送信する（Ｓ１３０５）。
【００５４】
第２のＬＳＩ１２０は、第４のＬＳＩ１４０からコマンド・パケット６００を受信すると（Ｓ１３０６）、受信したコマンド・パケット６００の正常／異常の判定や、キャッシュメモリ１２１への当該処理を実施するとともに（Ｓ１１０７〜Ｓ１１０８）、制御信号チェックコードを生成する（Ｓ１１１０）。なお、ライト処理の場合は、引き続いて、第１のＬＳＩ１１０から、前述したコマンド・パケット６００と同様な工程にてライトデータを含むデータ・パケット７００の転送が行われる。
【００５５】
また、第２のＬＳＩ１２０は、キャッシュメモリ１２１への当該処理が終了後、ステータス生成回路１２０６にて、受信したコマンド・パケット６００から抽出した送信元ＩＤや自身に付与された識別ＩＤ（応答先ＩＤ）などを含めたステータス・パケット８００を生成し（Ｓ１３０７）、そのステータス・パケット８００を第４のＬＳＩ１４０に送信する（Ｓ１３０８）。
【００５６】
第４のＬＳＩ１４０は、第２のＬＳＩ１２０からステータス・パケット８００を受信すると（Ｓ１３０９）、受信したステータス・パケット８００の正常／異常の判定を行い、その判定結果が異常であった場合には、誤り訂正などの指定された処理を行う。また、前記判定結果が正常であった場合には、第４のＬＳＩ１４０は、受信したステータス・パケット８００に含まれる送信元ＩＤが付与された第１のＬＳＩ１１０に対し、そのステータス・パケット８００を送信する（Ｓ１３１０）。
【００５７】
また、第１のＬＳＩ１１０は、第４のＬＳＩ１４０からステータス・パケット８００を受信すると、受信したステータス・パケット８００の正常／異常の判定を行うとともに、受信したステータス・パケット８００に含まれる送信元ＩＤや応答先ＩＤの内容をチェックし、第４のＬＳＩ１４０を介在させたパケット転送が正常に行われたかどうかをチェックする（Ｓ１３１１）。
【００５８】
このように、本発明に係る第２実施形態としての記憶制御装置１００は、データ転送制御部Ａ又はＢを複数有し、また、キャッシュメモリ制御部１２２を一又は複数有するような構成において、第４のＬＳＩ１４０を有効に利用することによって、前述した第１乃至第３のＬＳＩ１１０、１２０、１３０という既存のＬＳＩを用いて障害検出を実現できるので、低価格かつ高信頼性な記憶制御装置を提供することができる。
【００５９】
【発明の効果】
本発明によれば、低価格かつ高信頼性な記憶制御装置の制御方法及び記憶制御装置を提供することが可能である。
【図面の簡単な説明】
【図１】本発明の一実施形態としての記憶制御装置を含むストレージシステムの概略構成図である。
【図２】本発明の一実施形態としての記憶制御装置の概略的な機能ブロック図である。
【図３】本発明の一実施形態としての第１又は第３のＬＳＩの機能ブロック図である。
【図４】本発明の一実施形態としての第２のＬＳＩの機能ブロック図である。
【図５】本発明の一実施形態としての比較回路の機能ブロック図である。
【図６】本発明の一実施形態としてのコマンド・パケットの構成図である。
【図７】本発明の一実施形態としてのデータ・パケットの構成図である。
【図８】本発明の一実施形態としてのステータス・パケットの構成図である。
【図９】本発明の一実施形態としての制御信号チェックコード生成回路のブロック図である。
【図１０】本発明の一実施形態としての制御信号チェックコードを生成する工程を説明するタイミングチャートである。
【図１１】本発明の一実施形態としての記憶制御装置の障害検出の工程を説明するフローチャートである。
【図１２】本発明の一実施形態としての記憶制御装置を含むストレージシステムの概略構成図である。
【図１３】本発明の一実施形態としての記憶制御装置のパケット転送の工程を説明するフローチャートである。
【符号の説明】
１００　記憶制御装置
１１０　第１のＬＳＩ
１１０１　マイクロプロセッサＩ／Ｆ回路
１１０２　リード／ライトデータバッファ
１１０３　データセット生成回路
１１０４　パススイッチＩ／Ｆ回路
１１０５　制御信号チェックコード検証部
１１０６　比較対象コード生成回路
１１０７　ステータス保持回路
１１０８　制御信号チェックコード抽出回路
１１０９　比較回路
１１１　マイクロプロセッサ
１１２　データ転送制御部Ａ
１２０　第２のＬＳＩ
１２０１　パススイッチＩ／Ｆ回路
１２０２　キャッシュメモリＩ／Ｆ回路
１２０３　リード／ライトデータバッファ
１２０４　制御回路
１２０５　制御信号チェックコード生成回路
１２０６　ステータス生成回路
１２１　キャッシュメモリ
１２２　キャッシュメモリ制御部
１３０　第３のＬＳＩ
１３１　マイクロプロセッサ
１３２　データ転送制御部Ｂ
１４０　第４のＬＳＩ
１４１　パススイッチ制御部
１４２　第１のバス
１４３　第２のバス
１４４　第３のバス
２００　ホストコンピュータ
３００　記憶装置
４００　管理端末
６００　コマンド・パケット
７００　データ・パケット
８００　ステータス・パケット
【図１】
2004054514.tif 000003
【図２】
2004054514.tif 000004
【図３】
2004054514.tif 000005
【図４】
2004054514.tif 000006
【図５】
2004054514.tif 000007
【図６】
2004054514.tif 000008
【図７】
2004054514.tif 000009
【図８】
2004054514.tif 000010
【図９】
2004054514.tif 000011
【図１０】
2004054514.tif 000012
【図１１】
2004054514.tif 000013
【図１２】
2004054514.tif 000014
【図１３】
2004054514.tif 000015