【手続補正書】
【提出日】平成20年6月11日(2008.6.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ホストコンピュータとディスクドライブとの間のデータ転送を制御するディスク制御装置であって、
チャネルメモリを有するチャネル部と、
キャッシュメモリを有するキャッシュ部と、を備え、
前記チャネルメモリと前記キャッシュメモリとの間で、パケットによってデータが転送され、
前記パケットが転送される際に、前記転送されるパケットのヘッダ情報の整合性を検証することによって当該転送の許否を決定する制御部を備えることを特徴とするディスク制御装置。
【請求項２】
前記ディスク制御装置は、さらに、前記チャネル部及び前記キャッシュ部を接続し、内部ネットワークを形成するスイッチ部を備え、
前記スイッチ部は、前記内部ネットワークを介して、前記チャネルメモリと前記キャッシュメモリとの間でパケットを転送し、
前記スイッチ部は、前記制御部を備えることによって、前記パケットを転送する際に、前記転送されるパケットのヘッダ情報の整合性を検証することを特徴とする請求項１に記載のディスク制御装置。
【請求項３】
前記チャネル部及び前記キャッシュ部の少なくとも一つは、前記制御部を備えることによって、前記パケットを転送する際に、前記転送されるパケットのヘッダ情報の整合性を検証することを特徴とする請求項１に記載のディスク制御装置。
【請求項４】
前記ディスク制御装置は、さらに、他のディスク制御装置と接続するスイッチ部を備え、
前記スイッチ部は、前記他のディスク制御装置との間で前記パケットを転送し、
前記スイッチ部は、前記制御部を備えることによって、前記パケットを前記ディスク制御装置間で転送する際に、前記転送されるパケットのヘッダ情報の整合性を検証することを特徴とする請求項１に記載のディスク制御装置。
【請求項５】
前記チャネル部及び前記制御部の少なくとも一つは、前記パケット転送を起動するＤＭＡコントローラを備え、
前記制御部は、前記ディスク制御装置間でパケットが転送される際に、前記転送先ディスク制御装置に備わるＤＭＡコントローラによって転送が起動された場合に当該転送を許可し、前記転送元ディスク制御装置に備わるＤＭＡコントローラによって転送が起動された場合に当該転送を許可しないことを特徴とする請求項４記載のディスク制御装置。
【請求項６】
前記チャネル部及び前記制御部の少なくとも一つは、前記パケット転送を起動するためのＤＭＡコントローラを備えることを特徴とする請求項１に記載のディスク制御装置。
【請求項７】
前記各メモリの記憶領域は、前記ホストコンピュータから送信されたデータが格納されるデータ領域と、前記ディスク制御装置内の動作を制御するためのデータが格納される制御領域と、に分割され、
前記制御部は、前記パケットを転送する際に、前記転送されるパケットのヘッダ情報に基づいて、前記転送元のメモリの領域と前記転送先のメモリの領域との整合性を検証することを特徴とする請求項１に記載のディスク制御装置。
【請求項８】
前記ディスク制御装置は、さらに、前記データの転送を制御するプロセッサを備え、
前記データ領域及び前記制御領域は、さらに、前記ホストコンピュータとの接続ポートによって使用される領域及び当該パケットの転送を制御するプロセッサによって使用される領域に分割されており、
前記制御部は、前記パケットを転送する際に、前記転送されるパケットのヘッダ情報に基づいて、前記転送元のメモリの領域と前記転送先のメモリの領域との整合性を検証することを特徴とする請求項７に記載のディスク制御装置。
【請求項９】
前記制御部は、
前記パケットの転送元アドレス及び転送先アドレスに基づいて、前記パケットの転送元のメモリの領域の属性及び前記転送先のメモリの領域の属性を特定し、
前記パケットの転送コマンドと前記特定された領域の属性に基づいて、当該転送の許否を決定することを特徴とする請求項１に記載のディスク制御装置。
【請求項１０】
前記制御部は、前記転送元の領域の属性と前記転送先の領域の属性とが一致する場合に、前記転送を許可することを特徴とする請求項９に記載のディスク制御装置。
【請求項１１】
前記ディスク制御装置は、前記転送元の領域の属性と、前記転送先の領域の属性と、前記パケット転送の転送コマンドとの関係によって、転送の許否を定めた転送条件を保持し、
前記制御部は、前記転送条件を参照して、前記参照された転送条件によって許可されている場合には、転送を許可することを特徴とする請求項９に記載のディスク制御装置。
【請求項１２】
ホストコンピュータとディスクドライブとの間のデータ転送を制御するディスク制御装置におけるデータ転送制御方法であって、
前記ディスク制御装置は、チャネルメモリを有するチャネル部と、キャッシュメモリを有するキャッシュ部と、を備え、
前記データ転送制御方法は、
前記チャネルメモリと前記キャッシュメモリとの間で、パケットによってデータを転送する際に、前記転送されるパケットのヘッダ情報の整合性を検証することによって当該転送の許否を決定し、
前記転送が許可されると決定された場合に、パケットを転送することを特徴とするデータ転送制御方法。
【請求項１３】
前記ディスク制御装置は、さらに、他のディスク制御装置と接続されており、
前記データ転送制御方法は、前記ディスク制御装置間でパケットを転送する際に、前記転送されるパケットのヘッダ情報の整合性を検証することを特徴とする請求項１２に記載のデータ転送制御方法。
【請求項１４】
前記チャネル部及び前記プロセッサ部の少なくとも一つは、前記パケット転送を起動するＤＭＡコントローラを備え、
前記データ転送制御方法は、前記ディスク制御装置間でパケットを転送する際に、前記転送先ディスク制御装置に備わるＤＭＡコントローラによって転送が起動された場合に当該転送を許可し、前記転送元ディスク制御装置に備わるＤＭＡコントローラによって転送が起動された場合に当該転送を許可しないことを特徴とする請求項１３記載のデータ転送制御方法。
【請求項１５】
前記各メモリの記憶領域は、前記ホストコンピュータから送信されたデータが格納されるデータ領域と、前記ディスク制御装置内の動作を制御するためのデータが格納される制御領域と、に分割されており、
前記データ転送制御方法は、前記パケットを転送する際に、前記転送されるパケットのヘッダ情報に基づいて、前記転送元のメモリの領域と前記転送先のメモリの領域との整合性を検証することを特徴とする請求項１２に記載のデータ転送制御方法。
【請求項１６】
前記ディスク制御装置は、さらに、前記データの転送を制御するプロセッサを備え、
前記データ領域及び前記制御領域は、さらに、前記ホストコンピュータとの接続ポートによって使用される領域及び当該パケットの転送を制御するプロセッサによって使用される領域に分割されており、
前記データ転送制御方法は、前記パケットを転送する際に、前記転送されるパケットのヘッダ情報に基づいて、前記転送元のメモリの領域と前記転送先のメモリの領域との整合性を検証することを特徴とする請求項１５に記載のデータ転送制御方法。
【請求項１７】
前記パケットの転送元アドレス及び転送先アドレスに基づいて、前記パケットの転送元のメモリの領域の属性及び前記転送先のメモリの領域の属性を特定し、
前記パケットの転送コマンドと前記特定された領域の属性に基づいて、当該転送の許否を決定することを特徴とする請求項１２に記載のデータ転送制御方法。
【請求項１８】
前記転送元の領域の属性と前記転送先の領域の属性とが一致する場合に、前記転送を許可することを特徴とする請求項１７に記載のデータ転送制御方法。
【請求項１９】
前記ディスク制御装置は、前記転送元の領域の属性と、前記転送先の領域の属性と、前記パケット転送の転送コマンドとの関係によって、転送の許否を定めた転送条件を保持し、
前記データ転送制御方法は、前記転送条件を参照して、前記参照された転送条件によって許可されている場合には、転送を許可することを特徴とする請求項１７に記載のデータ転送制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
ディスク制御装置クラスタ１０内には、フロントエンド部１００、バックエンド部２００、プロセッサ部３００及びキャッシュ部４００を接続する内部ネットワークが、スイッチ５１０によって構成される。内部ネットワークによって、これらの構成、及び、各部に備わるメモリがスイッチ５１０を介して接続される。内部ネットワークにおいてメモリ空間を一意に特定するために、各部のメモリアドレス空間が内部ネットワークアドレス空間にマッピングされる。図２は、マッピングされたメモリのアドレスを示す。複数のチャネルメモリ１２０、プロセッサメモリ３２０、キャッシュメモリ４２０に、内部ネットワークの一意のアドレスが割り当てられる。従って、内部ネットワークのアドレスを指定することによって、その対象が属するクラスタ内で、他の構成部分を含めて一意にメモリ領域を指定することが可能となる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】
プロセッサ（ＭＰ）３３０からフロントエンド部１００に対してＤＭＡ転送を起動すると（１６０１）、キャッシュ部４００に対してコピーコマンドを送信することによって、データ転送を開始するように制御がされる（１６０２、１６０３）。なお、図示は省略するが、ＤＭＡ転送の起動（１４０１）の前に、ＤＭＡ転送に必要とされるＤＭＡ転送用パラメータがプロセッサメモリ３２０上に作成され、作成されたパラメータがプロセッサメモリ３２０からチャネルメモリ１２０に転送される（図１４の１２０１、１２０２参照）。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
キャッシュメモリ（ＣＭ１）がコピーコマンドを受信すると、ＣＭ１とＣＭ２の間で、スイッチ（ＳＷ）５１０を介して、メモリ間のデータ転送が開始される（１６０４）。この際、メモリ転送の経路上にあるスイッチ５１０において、前述と同様に、パケットヘッダ６０１を解析し、転送コマンド（キャッシュ間ＣＯＰＹ）と、転送元メモリアドレス（ＣＭ１）の領域属性と、転送先メモリアドレス（ＣＭ２）の領域属性を取得する。そして、スイッチアクセス制御機構５５０は、転送コマンド、転送元アドレス及び転送先アドレスが正しい組み合わせか否かを判定して、転送１６０６を実行するか否かを決定する（１６０５）。すなわち、転送元アドレスがキャッシュ間ＣＯＰＹコマンドによるデータ転送が許可されている領域に含まれるか、及び、転送先アドレスがキャッシュ間ＣＯＰＹコマンドによるデータ転送が許可されている領域に含まれるか否かを判定する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
図６は、第１の実施の形態のスイッチアクセス制御機構５５０の構成を示す。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
スイッチアクセス制御機構５５０は、アドレスを解析するアドレスデコード回路７００（ＡＤＤＲＥＳＳＤＥＣＯＤＥ）、メモリのアドレスと領域の属性との関係を保持するアドレス領域テーブル７１０（ＲＥＧＩＯＮＴＡＢＬＥ）、コマンドを解析するコマンドデコード回路７２０（ＣＭＤＤＥＣＯＤＥ）、及び、コマンド及びアドレスの整合性を検証する整合性チェック回路７３０（ＣＯＮＳＩＳＴＥＮＣＹ ＣＨＥＣＫ）を備える。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
なお、本実施の形態では、スイッチアクセス制御機構５５０は、ハードウェアで実装されるが、プロセッサで実行されるソフトウェアで実装されてもよい。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００４６
【補正方法】変更
【補正の内容】
【００４６】
図８は、第１の実施の形態のスイッチアクセス制御機構５５０の動作のフローチャートである。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
スイッチアクセス制御機構５５０は、コマンドデコード回路７２０によって転送コマンドをデコードし、アドレスデコード回路７００によって転送元アドレス及び転送先アドレスをデコードする。そして、転送元アドレス及び転送先アドレスで指定される各領域の属性を特定する（８１０）。その後、整合性チェック回路７３０によって、転送元領域の属性と転送先領域の属性が一致するか否かを判定する（８２０）。両領域の属性が一致しない場合はエラーとする。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】変更
【補正の内容】
【００５０】
以上説明したように、第１の実施の形態のディスク制御装置によると、アクセス制御機構によって、内部ネットワークを介してパケットが転送される際に、パケットヘッダ情報の整合性を検証し、整合性の確認されたパケットのみを転送することによって、不適切な転送を防止することが可能となり、ディスク制御装置を高信頼化することができる。特に、スイッチ５１０にスイッチアクセス制御機構５５０を設けることによって、パケットヘッダ情報の整合性をスイッチ部で検証することができる。すなわち、アクセス制御をスイッチ部のみで実行することから、集中的にメモリ間のデータ転送を検証することができ、ディスク制御装置のコストを低減することができる。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００５６
【補正方法】変更
【補正の内容】
【００５６】
図１０は、第２の実施の形態においてチャネルメモリ（ＨＭ）から二つキャッシュメモリ（ＣＭ１、ＣＭ２）に、メモリ間でデータを転送する場合の、キャッシュメモリアクセス制御機構４５０によるデータ転送保護のシーケンス図である。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００５７
【補正方法】変更
【補正の内容】
【００５７】
プロセッサ（ＭＰ）３３０からフロントエンド部１００に対してＤＭＡ転送を起動すると（１５０１）、チャネルメモリ（ＨＭ）１２０からスイッチ（ＳＷ）５１０を介して、二つのキャッシュメモリ（ＣＭ１、ＣＭ２）に対してパケットが転送される（１５０２）。なお、図示は省略するが、ＤＭＡ転送の起動（１５０１）の前に、ＤＭＡ転送に必要とされるＤＭＡ転送用パラメータがプロセッサメモリ３２０上に作成され、作成されたパラメータがプロセッサメモリ３２０からチャネルメモリ１２０に転送される（図１４の１２０１、１２０２参照）。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００６５
【補正方法】変更
【補正の内容】
【００６５】
プロセッサ（ＭＰ）３３０からフロントエンド部１００に対してＤＭＡ転送を起動すると（１７０１）、キャッシュ部４００に対してコピーコマンドを送信することによって、データ転送を開始するように制御がなされる（１７０２、１７０３）。なお、図示は省略するが、ＤＭＡ転送の起動（１７０１）の前に、ＤＭＡ転送に必要とされるＤＭＡ転送用パラメータがプロセッサメモリ３２０上に作成され、作成されたパラメータがプロセッサメモリ３２０からチャネルメモリ１２０に転送される（図１４の１２０１、１２０２参照）。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００６６
【補正方法】変更
【補正の内容】
【００６６】
キャッシュメモリ（ＣＭ１）がコピーコマンドを受信すると、ＣＭ１とＣＭ２の間で、スイッチ（ＳＷ）５１０を介して、メモリ間のデータ転送が開始される（１７０３）。この際、宛先キャッシュメモリ（ＣＭ２）のキャッシュメモリアクセス制御機構４５０において、前述と同様に、パケットヘッダ６０１を解析し、転送コマンド（キャッシュ間ＣＯＰＹ）と、転送元メモリアドレス（ＣＭ１）の領域属性と、転送先メモリアドレス（ＣＭ２）の領域属性を取得する。そして、スイッチアクセス制御機構５５０は、転送コマンド、転送元アドレス及び転送先アドレスが正しい組み合わせか否かを判定して、転送１６６０を実行するか否かを決定する（１７０４、１７０５）。すなわち、転送元アドレスがキャッシュ間ＣＯＰＹコマンドによるデータ転送が許可されている領域に含まれるか、及び、転送先アドレスがキャッシュ間ＣＯＰＹコマンドによるデータ転送が許可されている領域に含まれるか否かを判定する。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００７０
【補正方法】変更
【補正の内容】
【００７０】
また、前述した第１の実施の形態と第２の実施の形態とを混在させて実装することも可能である。すなわち、スイッチ部５００がスイッチアクセス制御機構５５０を備え、キャッシュ部４００がキャッシュメモリアクセス制御機構４５０を備え、フロントエンド部１００がチャネルメモリアクセス制御機構１５０を備え、バックエンド部２００がチャネルメモリアクセス制御機構２５０を備え、プロセッサ部３００がプロセッサメモリアクセス制御機構３５０を備える。なお、各メモリアクセス制御機構は一つ又は複数備えればよい。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００７４
【補正方法】変更
【補正の内容】
【００７４】
ディスク制御装置クラスタ１０は、ホストコンピュータ（ＨＯＳＴ）３０と接続されたフロントエンド部（ＦＥＰＫ）１００と、ディスクドライブ装置２０と接続されたバックエンド部（ＢＥ ＰＫ）２００と、プロセッサ部（ＭＰＰＫ）３００と、キャッシュ部（ＣＭ ＰＫ）４００と、スイッチ部（ＳＷＰＫ）５００と、を備える。ディスク制御装置クラスタ１０、１１の間は、お互いのスイッチ部５００によって接続されている。スイッチ部５００は、スイッチアクセス制御機構５５０を備える。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００８０
【補正方法】変更
【補正の内容】
【００８０】
従って、プロセッサメモリ３２０からチャネルメモリ１２０に対するパラメータの転送（１２０２）と、チャネルメモリ１２０からキャッシュメモリ４２０に対するデータの転送（１２０５）と、の二つのＤＭＡ転送が実行される。いずれのデータ転送においても、スイッチ５１０のスイッチアクセス制御機構５５０によって、当該データ転送の妥当性が検証されるため（１２０３、１２０６）、データ転送時にメモリに格納されたデータを保護することができる。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００８２
【補正方法】変更
【補正の内容】
【００８２】
まず、クラスタ１のプロセッサ（ＭＰ１）３３０は、データのＤＭＡ転送を起動するために、クラスタ２のプロセッサ（ＭＰ２）３３１に対して、クラスタ１のキャッシュメモリ（ＣＭ１）４２１からのＲＥＡＤ転送をするように要求する。このため、プロセッサ３３０は、プロセッサメモリ３２１上に制御情報を作成し、プロセッサメモリ用ＤＭＡコントローラ３１５を起動する（１３０１）。そして、プロセッサメモリ用ＤＭＡコントローラ３１５は、プロセッサメモリ（ＬＭ１）３２１に格納された制御情報を、スイッチ（ＳＷ１）５１０及びスイッチ（ＳＷ２）５１１を介して、プロセッサメモリ（ＬＭ２）３２３に転送する（１３０２、１３０３、１３０４）。さらに、プロセッサ（ＭＰ１）３３０は、プロセッサ間通知によって、転送された制御情報を処理するように、プロセッサ（ＭＰ２）３３１に依頼する。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００８５
【補正方法】変更
【補正の内容】
【００８５】
いずれのデータ転送においても、スイッチ５１０、５１１のスイッチアクセス制御機構５５０、５５１によって、当該データ転送の妥当性が検証されるため（１３１１、１３１２、１３１３）、データ転送時にメモリに格納されたデータを保護することができる。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】０１０６
【補正方法】変更
【補正の内容】
【０１０６】
１０、１１ ディスク制御装置クラスタ
２０ ディスクドライブ
３０ ホストコンピュータ
１００、１０１ フロントエンド部（ＦＥ ＰＫ）
１１０、１１１ ハブ（ＬＲ）
１１５、１１６ ＤＭＡコントローラ
１２０ チャネルメモリ（ＨＭ）
１３０、１３１ プロトコル制御チップ（ＰＣＶ）
１４０ ホストコンピュータ接続ポート
１５０ チャンネルメモリアクセス制御機構
２００ バックエンド・パッケージ（ＢＥ ＰＫ）
２１０ ハブ（ＬＲ）
２２０ チャネルメモリ（ＨＭ）
２３０ プロトコル制御チップ（ＰＣＶ）
２４０ ディスクドライブ接続ポート
２５０ チャンネルメモリアクセス制御機構
３００、３０１ プロセッサ部（ＭＰ ＰＫ）
３１０、３１１ メモリコントローラ（ＭＣ）
３１５、３１６ ＤＭＡコントローラ
３２０ プロセッサメモリ（ＬＭ）
３３０、３３１ マイクロプロセッサ（ＭＰ）
３５０ プロセッサメモリアクセス制御機構
４００、４０１ キャッシュメモリ部（ＣＭ ＰＫ）
４１０、４１１ キャッシュメモリコントローラ（ＣＭＣ）
４２０ キャッシュメモリ（ＣＭ）
４５０ キャッシュメモリアクセス制御機構
５００、５０１ スイッチ部（ＳＷ ＰＫ）
５１０、５１１ スイッチ（ＳＷ）
５４０ クラスタ間接続ポート
５５０、５５１ スイッチアクセス制御機構
７００ アドレスデコード回路（ＡＤＤＲＥＳＳ ＤＥＣＯＤＥ）
７１０ アドレス領域テーブル（ＲＥＧＩＯＮ ＴＡＢＬＥ）
７２０ コマンドデコード回路（ＣＭＤ ＤＥＣＯＤＥ）
７３０ 整合性チェック回路（ＣＯＮＳＩＳＴＥＮＣＹ ＣＨＥＣＫ）