(57)【要約】【課題】ディスクアレイ制御装置内の内部インタフェースの負荷を軽減し、ホストコンピュータからのキャッシュメモリおよびディスク装置へのアクセス性能を向上することのできるディスクアレイ制御装置を提供する。【解決手段】ホストコンピュータからの書き込みデータのパターン、およびキャッシュメモリ部とディスク装置からの読み出しデータのパターンを識別するデータパターン識別論理部３０と、データパターン識別論理部３０により識別されたデータパターンに基づいてコマンド化するコマンド生成部３１と、コマンドを解析し、元のデータパターンを生成するコマンド解析部３２とを備えた。【選択図】        図１
2004318717.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータに接続されるチャネルインタフェース部と、ディスク装置に接続されるディスクインタフェース部と、前記ディスク装置に対して読み出し又は書き込みされるデータを一時的に格納するキャッシュメモリ部と、前記チャネルインタフェース部と前記キャッシュメモリ部を接続する第１の相互結合網と、前記ディスクインタフェース部と前記キャッシュメモリ部を接続する第２の相互結合網とを有するディスクアレイ制御装置において、
前記ホストコンピュータからの書き込みデータのパターン、および前記キャッシュメモリ部と前記ディスク装置からの読み出しデータのパターンを識別するデータパターン識別論理手段と、
前記データパターン識別論理手段により識別されたデータパターンに基づいてコマンド化するコマンド生成手段と、
前記コマンドを解析し、元のデータパターンを生成するコマンド解析手段とを備えたことを特徴とするディスクアレイ制御装置。
【請求項２】
請求項１記載のディスクアレイ制御装置において、
前記データパターン識別論理手段は、前記第１の相互結合網を使用する書き込みデータおよび読み出しデータのパターンを識別し、
前記コマンド生成手段は、前記第１の相互結合網を使用する書き込みデータおよび読み出しデータの一部又は全部を、前記データパターン識別論理手段により識別されたデータパターンに基づいてコマンド化することを特徴とするディスクアレイ制御装置。
【請求項３】
請求項１記載のディスクアレイ制御装置において、
前記データパターン識別論理手段は、前記第２の相互結合網を使用する書き込みデータおよび読み出しデータのパターンを識別し、
前記コマンド生成手段は、前記第２の相互結合網を使用する書き込みデータおよび読み出しデータの一部又は全部を、前記データパターン識別論理手段により識別されたデータパターンに基づいてコマンド化することを特徴とするディスクアレイ制御装置。
【請求項４】
請求項１記載のディスクアレイ制御装置において、
前記データパターン識別論理手段は、前記キャッシュメモリ部に対する書き込みデータのパターンを識別し、
前記コマンド生成手段は、前記キャッシュメモリ部に書き込まれるデータの一部又は全部を、前記データパターン識別論理手段により識別されたデータパターンに基づいてコマンド化することを特徴とするディスクアレイ制御装置。
【請求項５】
請求項１記載のディスクアレイ制御装置において、
前記データパターン識別論理手段によるデータパターンの識別、前記コマンド生成手段によるコマンド化およびコマンド解析手段による前記コマンドの解析の使用有無を選択する手段を備えたことを特徴とするディスクアレイ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディスクアレイ制御装置に関し、特に、内部インタフェースの高速化に適用して有効な技術に関する。
【０００２】
【従来の技術】
インタネット等のネットワークの普及や企業で扱う情報量の増加に伴い、ストレージに対する要求が益々多様化している。ディスクシステムの容量も増加し、ディスクシステムに接続される外部ネットワークも高速で大容量のデータ転送をサポートしている。
【０００３】
ディスクシステムの内部についても高速インタフェースによるデータ転送をサポートしているが、パッケージ、コネクタ、ＬＳＩのピン数制限により、ディスクシステムに接続される外部ネットワークに比べ、線が細いためレイテンシが長くなる。
【０００４】
そこで、従来、ディスクアレイ制御装置内の内部インタフェースの高速化技術として、ホストからの複数のコマンドが１つの連続領域へのアクセスを要求するコマンドであるとき、これらの複数のコマンドをグループ化して１つのコマンドとして処理することにより、内部インタフェースの負荷を削減すると共に処理の高速化を図るものがあった（例えば、特許文献１参照）。また、データ転送経路にバッファを設け、レイテンシの増加を隠すなどの対策を行う技術もあった。
【０００５】
【特許文献１】
特開平５−２８９８１８号公報
【０００６】
【発明が解決しようとする課題】
ディスクアレイ制御装置の処理として、ホストコンピュータからの書き込みリクエストに対しては、ホストコンピュータから送られた書き込みデータをチャネルインタフェース部で受け取り、該データをディスクアレイ制御装置内の内部インタフェースを経由してデータ転送を行い、キャッシュメモリおよびディスク装置に書き込む。このとき、書き込みデータ量が大きい場合は、内部インタフェースの負荷は大きくなり、レイテンシは長くなってしまう。
【０００７】
また、ホストコンピュータからの読み出しリクエストに対しては、ホストコンピュータからの送られた情報により該当データをディスクアレイ制御装置内のキャッシュメモリおよびディスク装置から読み出し、ディスクアレイ制御装置内の内部インタフェースを経由してデータ転送を行い、ホストコンピュータに読み出しデータを送出する。このとき、読み出しデータ量が大きい場合は、内部インタフェースの負荷は大きくなり、レイテンシは長くなってしまう。
【０００８】
また、ホストコンピュータとディスクアレイ制御装置を接続する外部ネットワークの性能が内部インタフェースに比べ高速大容量の場合、ホストコンピュータからのリクエストを待たせないためには、ディスクアレイ制御装置内に大容量のバッファを備える必要があり、コストの面などで問題となっていた。
【０００９】
また、内部インタフェースを共有している他処理への影響を抑える方法として、従来では、データ転送を分ける方式が用いられていた。これは、たとえば、４キロバイトのデータを転送する場合、２５６バイト単位にデータを分割し、間に他処理のデータのために内部インタフェースを空ける方法である。
【００１０】
しかしながら、レイテンシを短くするためには、内部インタフェースの高速化や内部インタフェースの本数増加等を行わなければならないが、外部ネットワークに比べ高速化が難しいことや、インタフェースを増やすことによるパッケージやＬＳＩのコネクタおよびピン数確保の制約があり、レイテンシを短くするのは困難であった。
【００１１】
また、前記特許文献１に記載のものでは、複数のコマンドが１つの連続領域へのアクセスを要求するコマンドであるときに、これらの複数のコマンドをグループ化して処理することによりコマンド量を減少させるだけなので、連続領域へのアクセスではないとコマンド量を減らすことはできず、また、コマンドにより扱われる書き込みおよび読み出しのデータ量が大きい場合には内部インタフェースの負担が大きくなってしまうという問題点があった。
【００１２】
そこで、本発明の目的は、ディスクアレイ制御装置内の内部インタフェースの負荷を軽減し、ホストコンピュータからのキャッシュメモリおよびディスク装置へのアクセス性能を向上することのできるディスクアレイ制御装置を提供することにある。
【００１３】
【課題を解決するための手段】
本発明によるディスクアレイ制御装置は、ホストコンピュータに接続されるチャネルインタフェース部と、ディスク装置に接続されるディスクインタフェース部と、ディスク装置に対して読み出し又は書き込みされるデータを一時的に格納するキャッシュメモリ部と、チャネルインタフェース部とキャッシュメモリ部を接続する第１の相互結合網と、ディスクインタフェース部とキャッシュメモリ部を接続する第２の相互結合網とを有するディスクアレイ制御装置において、ホストコンピュータからの書き込みデータのパターン、およびキャッシュメモリ部とディスク装置からの読み出しデータのパターンを識別するデータパターン識別論理手段と、データパターン識別論理手段により識別されたデータパターンに基づいてコマンド化するコマンド生成手段と、コマンドを解析し、元のデータパターンを生成するコマンド解析手段とを備えたものである。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には同一の符号を付し、その繰り返しの説明は省略する。
【００１５】
（実施の形態１）
図１は本発明の実施の形態１におけるディスクアレイ制御装置の構成を示す構成図である。
【００１６】
図１において、ディスクアレイ制御装置２は、多数の磁気ディスク装置から構成されるディスク装置４に接続され、外部ネットワーク２を介して接続されるホストコンピュータ１からの指示により、ディスク装置４を制御するものであり、ディスクアレイ制御装置２およびディスク装置４でディスクアレイ装置を構成している。
【００１７】
また、ディスクアレイ制御装置２は、ホストコンピュータ１との間を外部ネットワーク３で接続し、データ転送を行うチャネルインタフェース部１０、ディスク装置４とのデータ転送のためのディスクインタフェース部６０、ディスク装置４に対してリード／ライトされるデータを一時的に格納するキャッシュメモリ５０を備えるキャッシュメモリ部４０、チャネルインタフェース部１０およびディスクインタフェース部６０とキャッシュメモリ部４０とのデータ転送に関する制御およびディスク装置４の管理情報を格納する共有メモリ部２０から構成されている。
【００１８】
チャネルインタフェース部１０およびディスクインタフェース部６０と共有メモリ部２０は、各々第１の相互結合網および第２の相互結合網である相互結合網７０で接続され、また、チャネルインタフェース部１０およびディスクインタフェース部６０とキャッシュメモリ部４０は、各々相互結合網８０で接続されている。
【００１９】
また、チャネルインタフェース部１０は、ホストコンピュータ１との間でデータ転送を行うホストデータ送受信部３４、データパターン識別論理手段であるデータパターン識別論理部３０、コマンド生成手段であるコマンド生成部３１、コマンド解析手段であるコマンド解析部３２、チャネルインタフェース部１０を制御するためのプロセッサ３３から構成されている。
【００２０】
チャネルインタフェース部１０のデータパターン識別論理部３０、コマンド生成部３１、コマンド解析部３２により、ホストコンピュータ１からの書き込みリクエストに伴うキャッシュメモリ部４０への書き込みデータ内の特殊コマンド化可能なデータの有無の識別および特殊コマンド化、また、ホストコンピュータ１からの読み出しリクエスト処理におけるキャッシュメモリ部４０からの読み出しデータが特殊コマンド化されていた場合のホストコンピュータ１への送出データ生成が行われている。
【００２１】
また、キャッシュメモリ部４０は、キャッシュメモリ５０、チャネルインタフェース部１０とキャッシュメモリ５０との間に設けられた、データパターン識別論理部３０、コマンド生成部３１、コマンド解析部３２、ディスクインタフェース部６０とキャッシュメモリ５０との間に設けられたデータパターン識別論理部３０、コマンド生成部３１、コマンド解析部３２から構成されている。
【００２２】
キャッシュメモリ部４０のチャネルインタフェース部１０とキャッシュメモリ５０との間に設けられた、データパターン識別論理部３０、コマンド生成部３１、コマンド解析部３２により、ホストコンピュータ１からの書き込みリクエストに伴うチャネルインタフェース部１０からの書き込みデータが特殊コマンド化されていた場合のキャッシュメモリ５０への書き込みデータ生成およびキャッシュメモリ５０からの読み出しデータ内の特殊コマンド化可能なデータの有無の識別および特殊コマンド化が行われている。
【００２３】
キャッシュメモリ部４０のディスクインタフェース部６０とキャッシュメモリ５０との間に設けられたデータパターン識別論理部３０、コマンド生成部３１、コマンド解析部３２により、キャッシュメモリ５０からの読み出しデータ内の特殊コマンド化可能なデータの有無の識別および特殊コマンド化、また、ディスクインタフェース部６０からキャッシュメモリ部４０への送出データが特殊コマンド化されていた場合のデータ生成が行われている。
【００２４】
また、ディスクインタフェース部６０は、ディスク装置４との間でデータ転送を行うディスクデータ送受信部３５、データパターン識別論理部３０、コマンド生成部３１、コマンド解析部３２、ディスクインタフェース部６０を制御するためのプロセッサ３３から構成されている。
【００２５】
ディスクインタフェース部６０のデータパターン識別論理部３０、コマンド生成部３１、コマンド解析部３２により、キャッシュメモリ部４０への送出データ内の特殊コマンド化可能なデータの有無の識別および特殊コマンド化、また、キャッシュメモリ部４０からの送出データが特殊コマンド化されていた場合のディスク装置４への送出データ生成が行われている。
【００２６】
また、チャネルインタフェース部１０のプロセッサ３３およびディスクインタフェース部６０のプロセッサ３３はサービスプロセッサ接続網９０を介してサービスプロセッサ１００に接続されている。
【００２７】
次に、この実施の形態の動作について説明する。
【００２８】
図２は実施の形態１によるホストコンピュータからのリクエストの処理の動作を示すフローチャート、図３は実施の形態１によるキャッシュメモリからの読み出し処理の動作を示すフローチャート、図４は実施の形態１によるキャッシュメモリからディスク装置への書き戻し処理の動作を示すフローチャートである。
【００２９】
まず、ホストコンピュータ１からのリクエストの処理の動作は、ホストコンピュータ１からリクエストがチャネルインタフェース部１０に到着すると（Ｓ１００）、コマンド解析部３２でコマンド／アドレスの解析を行う（Ｓ１０１）。
【００３０】
そして、Ｓ１０１でのコマンド解析により書き込みリクエストか読み出しリクエストかを判断する（Ｓ１０２）。
【００３１】
そして、Ｓ１０２で読み出しリクエストと判断されると、コマンド／アドレスをキャッシュメモリ部４０に送出し（Ｓ１０６）、Ｓ１０２で書き込みリクエストと判断されると、データパターン識別論理部３０にて特定パターンの有無を識別する（Ｓ１０３）。
【００３２】
そして、Ｓ１０３で特定パターンが無いと識別されると、コマンド／アドレス／書き込みデータをキャッシュメモリ部４０に送出し（Ｓ１０６）、Ｓ１０３で特定パターンが有ると識別されると、その特定パターンに対して特殊コマンド化が必要か否かを判断する（Ｓ１０４）。
【００３３】
そして、Ｓ１０４で特殊コマンド化が必要ないと判断されると、コマンド／アドレス／書き込みデータをキャッシュメモリ部４０に送出し（Ｓ１０６）、Ｓ１０４で特殊コマンド化が必要と判断されると、コマンド生成部３１でデータを特殊コマンド化して（Ｓ１０５）、コマンド／アドレス／書き込みデータ／特殊コマンドをキャッシュメモリ部４０に送出する（Ｓ１０６）。
【００３４】
Ｓ１０５で全てのデータを特殊コマンド化できる場合、Ｓ１０６での書き込みデータの送出を行う必要は無い。また、Ｓ１０５で一部のデータのみ特殊コマンド化した場合は、残りの書き込みデータは送出する必要がある。
【００３５】
特殊コマンド化することにより、チャネルインタフェース部１０とキャッシュメモリ部４０に跨る相互結合網８０を大容量のデータ転送により占有することなく、相互結合網８０の負荷を軽減すると共に、書き込み処理の性能を向上することとなる。ここまでがチャネルインタフェース部１０内の処理である。
【００３６】
続いてキャッシュメモリ部４０内の処理に移り、チャネルインタフェース部１０からリクエストがキャッシュメモリ部４０に到着すると（Ｓ１０７）、コマンド解析部３２でコマンド／アドレスの解析を行う（Ｓ１０８）。
【００３７】
そして、Ｓ１０８でのコマンド解析により書き込みリクエストか読み出しリクエストを判断する（Ｓ１０９）。
【００３８】
そして、Ｓ１０９で読み出しリクエストと判断されると、キャッシュメモリ５０からデータ読み出しを行い（Ｓ１１３）、Ｓ１０９で書き込みリクエストと判断されると、特殊コマンド有無を判断する（Ｓ１１０）。
【００３９】
そして、Ｓ１１０で特殊コマンドが無いと判断されると、キャッシュメモリ５０にデータを書き込み（Ｓ１１２）、Ｓ１１０で特殊コマンドが有ると判断されると、コマンド解析部３２により特殊コマンドを解析し、特殊コマンドからホストコンピュータ１から送出された元のデータパターンにデータを戻して書き込みデータを生成し（Ｓ１１１）、キャッシュメモリ５０にデータを書き込む（Ｓ１１２）。
【００４０】
ここでは、特殊コマンドを判別して書き込みデータを生成し、ホストコンピュータ１からの送出データと同じデータパターンにした後、キャッシュメモリ５０に書き込んでいるが、特殊コマンドをそのままキャッシュメモリ５０に書き込んで、キャッシュメモリ使用容量の削減を図ることも可能である。
【００４１】
次に、キャッシュメモリ５０からの読み出し処理の動作は、キャッシュメモリ５０からデータを読み出し（Ｓ１２０）、データパターン識別論理部３０にて特定パターンの有無を識別する（Ｓ１２１）。
【００４２】
そして、Ｓ１２１で特定パターンが無いと識別されると、コマンド／アドレス／読み出しデータをチャネルインタフェース部１０に送出し（Ｓ１２４）、Ｓ１２１で特定パターンが有ると識別されると、その特定パターンに対して特殊コマンド化が必要か否かを判断する（Ｓ１２２）。
【００４３】
そして、Ｓ１２２で特殊コマンド化が必要ないと判断されると、コマンド／アドレス／読み出しデータをチャネルインタフェース部１０に送出し（Ｓ１２４）、Ｓ１２２で特殊コマンド化が必要と判断されると、コマンド生成部３１でデータを特殊コマンド化して（Ｓ１２３）、コマンド／アドレス／読み出しデータ／特殊コマンドをチャネルインタフェース部１０に送出する（Ｓ１２４）。
【００４４】
Ｓ１２３で全てのデータを特殊コマンド化できる場合、Ｓ１２４での読み出しデータの送出を行う必要は無い。また、Ｓ１２３で一部のデータのみ特殊コマンド化した場合は、残りの読み出しデータは送出する必要がある。
【００４５】
特殊コマンド化することにより、チャネルインタフェース部１０とキャッシュメモリ部４０に跨る相互結合網８０を大容量のデータ転送により占有することなく、相互結合網８０の負荷を軽減すると共に、読み出し処理の性能を向上することとなる。ここまでがキャッシュメモリ部４０内の処理である。
【００４６】
続いて、チャネルインタフェース部１０内の処理に移り、キャッシュメモリ部４０から読み出しデータがチャネルインタフェース部１０に到着すると（Ｓ１２５）、コマンド解析部３２でコマンド／アドレスの解析を行う（Ｓ１２６）。
【００４７】
そして、特殊コマンド有無を判断し（Ｓ１２７）、Ｓ１２７で特殊コマンドが無いと判断されると、ホストコンピュータ１へデータを送出し（Ｓ１２９）、Ｓ１２７で特殊コマンドが有ると判断されると、コマンド解析部３２により特殊コマンドを解析し、特殊コマンドからキャッシュメモリ５０から読み出した元のデータパターンにデータを戻して送出データを生成し（Ｓ１２８）、ホストコンピュータ１へデータを送出する（Ｓ１２９）。
【００４８】
次に、キャッシュメモリ５０からディスク装置４への書き戻し処理の動作は、キャッシュメモリ５０からデータを読み出し（Ｓ１３０）、データパターン識別論理部３０にて特定パターンの有無を識別する（Ｓ１３１）。
【００４９】
そして、Ｓ１３１で特定パターンが無いと識別されると、コマンド／アドレス／書き戻しデータをディスクインタフェース部６０に送出し（Ｓ１３４）、Ｓ１３１で特定パターンが有ると識別されると、その特定パターンに対して特殊コマンド化が必要か否かを判断する（Ｓ１３２）。
【００５０】
そして、Ｓ１３２で特殊コマンド化が必要ないと判断されると、コマンド／アドレス／書き戻しデータをディスクインタフェース部６０に送出し（Ｓ１３４）、Ｓ１３２で特殊コマンド化が必要と判断されると、コマンド生成部３１でデータを特殊コマンド化して（Ｓ１３３）、コマンド／アドレス／書き戻しデータ／特殊コマンドをディスクインタフェース部６０に送出する（Ｓ１３４）。
【００５１】
Ｓ１３３で全てのデータを特殊コマンド化できる場合、Ｓ１３４での書き戻しデータの送出を行う必要は無い。また、Ｓ１３３で一部のデータのみ特殊コマンド化した場合は、残りの書き戻しデータは送出する必要がある。
【００５２】
特殊コマンド化することにより、ディスクインタフェース部６０とキャッシュメモリ部４０に跨る相互結合網８０を大容量のデータ転送により占有することなく、相互結合網８０の負荷を軽減すると共に、書き戻し処理の性能を向上することとなる。ここまでがキャッシュメモリ部４０内の処理である。
【００５３】
続いて、ディスクインタフェース部６０内の処理に移り、キャッシュメモリ部４０から書き戻しデータがディスクインタフェース部６０に到着すると（Ｓ１３５）、コマンド解析部３２でコマンド／アドレスの解析を行う（Ｓ１３６）。
【００５４】
そして、特殊コマンド有無を判断し（Ｓ１３７）、Ｓ１３７で特殊コマンドが無いと判断されると、ディスク装置４へデータを送出し（Ｓ１３９）、Ｓ１３７で特殊コマンドが有ると判断されると、コマンド解析部３２により特殊コマンドを解析し、特殊コマンドからキャッシュメモリ５０から読み出した元のデータパターンにデータを戻して送出データを生成し（Ｓ１３８）、ディスク装置４へデータを送出する（Ｓ１３９）。
【００５５】
ここでは、特殊コマンドを判別して送出データを生成し、キャッシュメモリ５０からの読み出しデータと同じデータパターンにした後、ディスク装置４にデータを送出しているが、特殊コマンドをそのままディスク装置４に送出することも可能である。
【００５６】
また、ディスク装置４からのデータの読み出し時も同様に、ディスクインタフェース部６０とキャッシュメモリ部４０との間で特殊コマンドを用いたデータの送出が行われている。
【００５７】
次に、この実施の形態におけるデータの特殊コマンド化について説明する。
【００５８】
図５は実施の形態１における書き込みデータの一例を示す図、図６は実施の形態１におけるデータ処理のタイミングチャートを示す図であり、図６の処理Ａは、本発明を用いない場合の処理であり、処理Ｂは本発明を使用した例であり、処理Ｃは本発明を使用した別の例を示している。
【００５９】
また、図６は、図５に示したデータのキャッシュメモリ５０への書き込み処理を行った場合のチャネルインタフェース部１０とキャッシュメモリ部４０に跨る相互結合網８０の占有時間に着目したタイミングチャートを示しており、相互結合網８０は、１クロック間で８バイトのデータ転送が可能なスペックとしている。
【００６０】
図６において、タイミングチャート内のＣは、コマンド／アドレス転送フェーズであり、Ｄはデータ転送フェーズを示し、Ｂはブランチフェーズで、処理Ｂおよび処理Ｃにて処理を分ける際に間にブランチフェーズを設けているが無くても構わない。また、図６の‘０’はＡＬＬ‘０’のデータを送出しているデータフェーズである。
【００６１】
ここでは、ホストコンピュータ１から４キロバイトの書き込み要求があった場合について考える。
【００６２】
図５に示すように、ホストコンピュータ１からの書き込みデータのデータパターンは、５１２バイトの通常のデータと３３２８バイトのＡＬＬ‘０’データと２５６バイトの通常データが連続した４キロバイトの書き込みデータとなっている。
【００６３】
まず、図６の処理Ａにおいては、コマンド／アドレスの処理を除いた書き込みデータ部の処理における相互結合網８０の占有時間は、３３２８バイトのＡＬＬ‘０’データを特別なデータとして扱っていないため、単純に４キロバイトのデータ転送を８バイト／クロックで送出するので、合計５１２クロック要している。
【００６４】
また、図６の処理Ｂは、前半の５１２バイトは通常処理、３３２８バイトのＡＬＬ‘０’データを１つの特殊コマンド（例えば、３３２８バイト‘０’ライトコマンド）とし、後半の２５６バイトを再び通常処理として扱っている。
【００６５】
この処理では、前半の５１２バイトの処理に６４クロック、３３２８バイトのＡＬＬ‘０’データの処理を特殊コマンド化したことにより４クロック、後半の２５６バイトを３２クロックの合計１００クロックで処理している。
【００６６】
また、図６の処理Ｃは前半の５１２バイトは通常処理、３３２８バイトのＡＬＬ‘０’データを２５６バイトのＡＬＬ‘０’データが１３回連続していると扱い、１３回の特殊コマンド（例えば、２５６バイト‘０’ライトコマンド）を送出し、後半の２５６バイトを再び通常処理として扱っている。
【００６７】
この処理では、前半の５１２バイトの処理に６４クロック、３３２８バイトのＡＬＬ‘０’データの処理を１３回の特殊コマンド化したことにより２８クロック、後半の２５６バイトを３２クロックの合計１２４クロックで処理している。
【００６８】
図６に示すように、処理Ｂ、処理Ｃともに、処理Ａに比べ大幅に相互結合網８０の占有時間を短縮しており、また、キャッシュメモリ５０への書き込み処理時間の短縮にもなっている。
【００６９】
また、処理Ｃにより２５６バイト毎に区切った理由は、データパターンを判別する場合、データ長が短いほど判別にかかる時間は短く論理規模も少なくなるからであり、同様に、判別するデータパターンが少ないほど、判別にかかる時間は短く論理規模も少なくなる。また、特殊コマンド化するデータパターンが少ないほど、特殊コマンドの数が減り、対応する論理規模も少なくなるからである。
【００７０】
したがって、図６の処理Ｃでは、処理Ｂに比べて処理クロックは多くなっているが、データの種類や処理内容によっては、全体的な処理時間を短縮することが可能となる。
【００７１】
また、図６の処理Ｃでは２５６バイト毎に区切っているが、２５６バイトでなくても良く、データ長の選択としては、論理規模や、過去の履歴等でＡＬＬ‘０’やＡＬＬ‘１’となる可能性が多い長さや、性能のインパクト、キャッシュメモリのライン長、キャッシュメモリとの転送単位、ディスク装置との転送単位より最適なデータ長を選択する。
【００７２】
また、データ長を任意に変更可能にすることやユーザに選択可能にすることも可能である。
【００７３】
次に、この実施の形態でのデータパターン識別論理部３０の詳細について説明する。
【００７４】
図７は実施の形態１におけるデータパターン識別論理部の構成を示すブロック図であり、図６の処理Ｂと処理Ｃの処理を行うデータパターン識別論理部３０の構成を示している。
【００７５】
図７において、データパターン識別論理部３０は、ＡＬＬ‘０’データパターン識別論理部１０１およびＡＬＬ‘１’データパターン識別論理部１０２を持ち、データ内のＡＬＬ‘０’データパターンおよびデータ内のＡＬＬ‘１’データパターンを識別している。
【００７６】
そして、図６の処理Ｂの処理を行うデータパターン識別論理部３０のＡＬＬ‘０’データパターン識別論理部１０１内には、データ長識別論理部１０３を持ち、内部に８バイト‘０’判定論理部１０４、１６バイト‘０’判定論理部１０５と８バイト単位に判定論理部を持ち、最大４キロバイト‘０’判定論理部１０６まで存在する。また、図６の処理Ｂの処理を行うデータパターン識別論理部３０のＡＬＬ‘１’データパターン識別論理部１０２内には、データ長識別論理部１０３を持ち、内部に８バイト‘１’判定論理部１０７、１６バイト‘１’判定論理部１０８と８バイト単位に判定論理部を持ち、最大４キロバイト‘１’判定論理部１０９まで存在する。
【００７７】
このように、図６の処理Ｂの処理を行うデータパターン識別論理部３０では、８バイト単位に‘０’または‘１’の判定処理部を持ち、判定論理部は多いが、任意のデータ長に対応することが可能であり、性能面では有利となる。
【００７８】
また、図６の処理Ｃの処理を行うデータパターン識別論理部３０のＡＬＬ‘０’データパターン識別論理部１０１内には、データ長識別論理部１０３を持ち、内部に２５６バイト‘０’判定論理部１１０を持っている。また、図６の処理Ｃの処理を行うデータパターン識別論理部３０のＡＬＬ‘１’データパターン識別論理部１０２内には、データ長識別論理部１０３を持ち、内部に２５６バイト‘１’判定論理部１１１を持っている。
【００７９】
このように、図６の処理Ｃの処理を行うデータパターン識別論理部３０では、２５６バイト単位の、‘０’または‘１’の判定処理部を持ち、処理Ｃは、処理Ｂに比べ、判定論理部が少なく論理規模を小さくできる。
【００８０】
この実施の形態では、データパターン識別論理部３０内の各判定処理部での判定結果に基づいて、チャネルインタフェース部１０、キャッシュメモリ部４０、ディスクインタフェース部６０内のコマンド生成部３１により、特殊コマンドが生成され、この特殊コマンドのみで、データパターン識別論理部３０内の各判定処理部で判定された‘０’または‘１’のデータの処理ができるようになっている。
【００８１】
また、この実施の形態では、特殊コマンドは、通常ディスクアレイ制御装置内の各部の動作を制御するコマンドと同様なものとしているので、圧縮されたデータを伸張するような回路やプログラムなどを使うことなく、特殊コマンドを通常のコマンド解析と同様の処理により、書き込みデータや送出データを生成することが可能となる。
【００８２】
なお、この実施の形態では、各データに対して特定パターンを識別して特殊コマンド化する例で説明をしたが、コマンドやデータなどに、チェックコードが付加されていても、同様に処理する事が可能である。
【００８３】
ここで、チェックコードの概要について説明する。
【００８４】
ＲＡＩＤシステムなどのディスクアレイ装置では、要求される信頼性にこたえるべく、システム内には、さまざまなチェックコードが設けられている。
【００８５】
例えば、共有メモリ部２０やキャッシュメモリ部４０などのメモリ部については、２重化すると共に、ＥＣＣを付加することにより、１ビットエラーについては、ハードによる自動訂正を可能とし、２ビットエラー、１素子エラーについても検出可能としている。
【００８６】
各リソースを結ぶ、例えば、相互結合網８０などのパスについても、２重化すると共に、パリティを持っており、このパリティについても、同一クロックで送出されるデータに付加するパリティと次サイクル以降に送出するデータも含めたパリティを持っている。
【００８７】
データ部に付加されるパリティは、ＲＡＩＤシステムなどのディスクアレイ装置の入り口部分で付加し、メモリ／ディスク書込みまで同じパリティを持ち回りする。アドレス部／コマンド部にもパリティが付加されるが、これは、パスの前部にて付加される。
【００８８】
この実施の形態では、このようなチェックコードが付加された状態であっても、チェックコードの付加状況に関わらず、特殊コマンド化による処理を行うことが可能である。
【００８９】
（実施の形態２）
この実施の形態は、実施の形態１において、キャッシュメモリ部４０の構成をキャッシュメモリ５０のみの構成とし、キャッシュメモリ部４０内において、特殊コマンドの処理を行わないようにしたものである。
【００９０】
図８は本発明の実施の形態２におけるディスクアレイ制御装置の構成を示す構成図である。
【００９１】
図において、キャッシュメモリ部４０はキャッシュメモリ５０のみから構成されており、実施の形態１におけるキャッシュメモリ部４０の構成から、データパターン識別論理部３０、コマンド生成部３１、コマンド解析部３２を除いた構成になっている。他の構成は実施の形態１と同様である。
【００９２】
この実施の形態では、キャッシュメモリ部４０内にデータパターン識別論理３０、コマンド生成部３１、コマンド解析部３２を持たないことにより、相互結合網８０の負荷軽減のために特定データパターンを特殊コマンド化した場合に、キャッシュメモリ部４０内で、該特殊コマンドを元のデータパターンに戻した後、キャッシュメモリ５０に書き込む処理が必要なくなり、特殊コマンドのまま、キャッシュメモリ５０に書き込むことになる。
【００９３】
そして、キャッシュメモリ５０に格納されているデータを使用するホストコンピュータ１からの読み出しリクエストは、必ずチャネルインタフェース部１０を経由するため、チャネルインタフェース部１０内にデータパターン識別論理３０、コマンド生成部３１、コマンド解析部３２があり、キャッシュメモリ部４０から特殊コマンドを送られてきたとしても、元のデータパターンに戻すことが可能である。
【００９４】
また、キャッシュメモリ部４０からディスク装置４への書き戻しの際も、必ずディスクインタフェース部６０を経由し、ディスクインタフェース部６０内のデータパターン識別論理３０、コマンド生成部３１、コマンド解析部３２にて特殊コマンドを元のデータパターンに変換可能であるため、キャッシュメモリ５０に特殊コマンドを書き込む処理は、ディスクアレイ制御装置２内で閉じており、ホストコンピュータ１などの外部ネットワークにつながるリソースは、キャッシュメモリに特殊コマンドが書き込まれていることを意識する必要が無く、ディスクアレイ制御装置の外部リソースに影響を与えないで処理可能である。
【００９５】
この実施の形態のメリットとしては、キャッシュメモリ部４０のアクセス性能向上、キャッシュメモリ部４０内の論理規模削減、処理簡単化、キャッシュメモリ５０の使用容量削減等がある。
【００９６】
次に、この実施の形態の動作について説明する。
【００９７】
図９は実施の形態２によるホストコンピュータからのリクエストの処理の動作を示すフローチャート、図１０は実施の形態２によるキャッシュメモリからの読み出し処理の動作を示すフローチャート、図１１は実施の形態２によるキャッシュメモリからディスク装置への書き戻し処理の動作を示すフローチャートである。
【００９８】
まず、ホストコンピュータ１からのリクエストの処理の動作は、ホストコンピュータ１からリクエストがチャネルインタフェース部１０に到着すると（Ｓ１４０）、コマンド解析部３２でコマンド／アドレスの解析を行う（Ｓ１４１）。
【００９９】
そして、Ｓ１４１でのコマンド解析により書き込みリクエストか読み出しリクエストかを判断する（Ｓ１４２）。
【０１００】
そして、Ｓ１４２で読み出しリクエストと判断されると、コマンド／アドレスをキャッシュメモリ部４０に送出し（Ｓ１４６）、Ｓ１４２で書き込みリクエストと判断されると、データパターン識別論理部３０にて特定パターンの有無を識別する（Ｓ１４３）。
【０１０１】
そして、Ｓ１４３で特定パターンが無いと識別されると、コマンド／アドレス／書き込みデータをキャッシュメモリ部４０に送出し（Ｓ１４６）、Ｓ１４３で特定パターンが有ると識別されると、その特定パターンに対して特殊コマンド化が必要か否かを判断する（Ｓ１４４）。
【０１０２】
そして、Ｓ１４４で特殊コマンド化が必要ないと判断されると、コマンド／アドレス／書き込みデータをキャッシュメモリ部４０に送出し（Ｓ１４６）、Ｓ１４４で特殊コマンド化が必要と判断されると、コマンド生成部３１でデータを特殊コマンド化して（Ｓ１４５）、コマンド／アドレス／書き込みデータ／特殊コマンドをキャッシュメモリ部４０に送出する（Ｓ１４６）。
【０１０３】
Ｓ１４５で全てのデータを特殊コマンド化できる場合、Ｓ１４６での書き込みデータの送出を行う必要は無い。また、Ｓ１４５で一部のデータのみ特殊コマンド化した場合は、残りの書き込みデータは送出する必要がある。
【０１０４】
特殊コマンド化することにより、チャネルインタフェース部１０とキャッシュメモリ部４０に跨る相互結合網８０を大容量のデータ転送により占有することなく、相互結合網８０の負荷を軽減すると共に、書き込み処理の性能を向上することとなる。ここまでがチャネルインタフェース部１０内の処理である。
【０１０５】
続いてキャッシュメモリ部４０内の処理に移り、チャネルインタフェース部１０からリクエストがキャッシュメモリ部４０に到着すると（Ｓ１４７）、コマンド解析部３２でコマンド／アドレスの解析を行う（Ｓ１４８）。
【０１０６】
そして、Ｓ１４８でのコマンド解析により書き込みリクエストか読み出しリクエストを判断する（Ｓ１４９）。
【０１０７】
そして、Ｓ１４９で読み出しリクエストと判断されると、キャッシュメモリ５０からデータ読み出しを行い（Ｓ１５１）、Ｓ１４９で書き込みリクエストと判断されると、特殊コマンド有無にかかわらずキャッシュメモリ５０にデータおよび特殊コマンドを書き込む（Ｓ１５０）。
【０１０８】
次に、キャッシュメモリ５０からの読み出し処理の動作は、キャッシュメモリ５０からデータおよび特殊コマンドを読み出し（Ｓ１６０）、コマンド／アドレス／データ／特殊コマンドをチャネルインタフェース部１０に送出する（Ｓ１６１）。
【０１０９】
キャッシュメモリ５０に書き込まれた特殊コマンドを送出することにより、チャネルインタフェース部１０とキャッシュメモリ部４０に跨る相互結合網８０を大容量のデータ転送により占有することなく、相互結合網８０の負荷を軽減すると共に、読み出し処理の性能を向上することとなる。ここまでがキャッシュメモリ部４０内の処理である。
【０１１０】
続いて、チャネルインタフェース部１０内の処理に移り、キャッシュメモリ部４０から読み出しデータがチャネルインタフェース部１０に到着すると（Ｓ１６２）、コマンド解析部３２でコマンド／アドレスの解析を行う（Ｓ１６３）。
【０１１１】
そして、特殊コマンド有無を判断し（Ｓ１６４）、Ｓ１６４で特殊コマンドが無いと判断されると、ホストコンピュータ１へデータを送出し（Ｓ１６６）、Ｓ１６４で特殊コマンドが有ると判断されると、コマンド解析部３２により特殊コマンドを解析し、特殊コマンドから元のデータパターンにデータを戻して送出データを生成し（Ｓ１６５）、ホストコンピュータ１へデータを送出する（Ｓ１６６）。
【０１１２】
次に、キャッシュメモリ５０からディスク装置４への書き戻し処理の動作は、キャッシュメモリ５０からデータおよび特殊コマンドを読み出し（Ｓ１７０）、コマンド／アドレス／書き戻しデータ／特殊コマンドをディスクインタフェース部６０に送出する（Ｓ１７１）。
【０１１３】
キャッシュメモリ５０に書き込まれた特殊コマンドを送出することにより、ディスクインタフェース部６０とキャッシュメモリ部４０に跨る相互結合網８０を大容量のデータ転送により占有することなく、相互結合網８０の負荷を軽減すると共に、書き戻し処理の性能を向上することとなる。ここまでがキャッシュメモリ部４０内の処理である。
【０１１４】
続いて、ディスクインタフェース部６０内の処理に移り、キャッシュメモリ部４０から書き戻しデータがディスクインタフェース部６０に到着すると（Ｓ１７２）、コマンド解析部３２でコマンド／アドレスの解析を行う（Ｓ１７３）。
【０１１５】
そして、特殊コマンド有無を判断し（Ｓ１７４）、Ｓ１７４で特殊コマンドが無いと判断されると、ディスク装置４へデータを送出し（Ｓ１７６）、Ｓ１７４で特殊コマンドが有ると判断されると、コマンド解析部３２により特殊コマンドを解析し、特殊コマンドから元のデータパターンにデータを戻して送出データを生成し（Ｓ１７５）、ディスク装置４へデータを送出する（Ｓ１７６）。
【０１１６】
この実施の形態では、特殊コマンドを判別して送出データを生成し、ディスク装置４にデータを送出しているが、特殊コマンドをそのままディスク装置４に送出することも可能である。
【０１１７】
また、ディスク装置４からのデータの読み出し時も同様に、ディスクインタフェース部６０とキャッシュメモリ部４０との間で特殊コマンドを用いたデータの送出が行われている。
【０１１８】
次に、この実施の形態でのキャッシュメモリ５０の構成について説明する。
【０１１９】
図１２は実施の形態２におけるキャッシュメモリ５０の構成の一例を示す図、図１３は実施の形態２におけるキャッシュメモリ５０の構成の他の例を示す図である。この実施の形態では、キャッシュメモリ５０のラインサイズを２５６バイトとしている。
【０１２０】
まず、図１２に示す構成では、図５に示したデータパターンをキャッシュメモリ５０に書き込む場合、まず、５１２バイトのデータがホストコンピュータ１から送られたデータパターンのまま書き込まれ、続いて３３２８バイトのＡＬＬ‘０’データが、１３個の２５６バイトのＡＬＬ‘０’のデータと認識され、１３個の特殊コマンドが書き込まれている。
【０１２１】
同様に後半の２５６バイトのデータがホストコンピュータ１から送られたデータパターンのまま書き込まれている。
【０１２２】
図１２に示すように、キャッシュメモリ５０のラインに対応して識別ビット５１を持ち、このビットにより特殊コマンドが該ライン内に存在するか否かを識別可能となっている。
【０１２３】
例えば、識別ビットが‘１’であれば、該ライン内に特殊コマンドが存在していることを示し、識別ビットが‘０’であれば、該ライン内には特殊コマンドは存在していないことを示す。なお、識別ビット５１は、キャッシュメモリ５０内に存在する必要は無く、他の管理領域などに格納されていてもよい。
【０１２４】
また、特殊コマンドの情報として、パターン情報５２をもち、ＡＬＬ‘０’パターンかＡＬＬ‘１’パターン化を識別可能としている。
【０１２５】
例えば、パターン情報５２が‘００’であれば、ＡＬＬ‘０’パターンを示し、パターン情報５２が‘１１’であれば、ＡＬＬ‘１’パターンを示す。続いて順序情報５３を持ち、該ラインが特殊コマンド化されたデータ長の何番目かを示している。続いてデータ長情報５４が格納されている。これは、特殊コマンド化されたデータ長を示している。
【０１２６】
また、図１３に示すように、３３２８バイトのＡＬＬ‘０’データを一つの特殊コマンドで示すことにより、キャッシュメモリ５０の使用容量削減、処理短縮を図るようにしてもよい。但し、この場合は、キャッシュメモリ５０使用容量を削減するためには、キャッシュメモリ５０の再アドレスづけの処理が必要となる。
【０１２７】
したがって、本実施の形態のディスクアレイ制御装置によれば、データを圧縮するのではなく、データを特殊コマンド化するので、データの全てを圧縮および伸張する回路やプログラムなどが必要なく、また、書き込みおよび読み出しのデータ量が大きい場合においても内部インタフェースの負担を軽減するとが可能である。
【０１２８】
【発明の効果】
以上のように、本発明によれば、データパターン識別論理手段により、ホストコンピュータからの書き込みデータのパターン、およびキャッシュメモリ部とディスク装置からの読み出しデータのパターンを識別し、コマンド生成手段により、データパターン識別論理手段により識別されたデータパターンに基づいてコマンド化し、コマンド解析手段により、コマンドを解析し、元のデータパターンを生成するようにしたので、内部インタフェースの負荷を軽減すると共に、アクセス性能も向上することが可能である。また、キャッシュメモリ部に、コマンドを書き込むことにより更なる性能向上を図ることも可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態１におけるディスクアレイ制御装置の構成を示す構成図である。
【図２】本発明の実施の形態１によるホストコンピュータからのリクエストの処理の動作を示すフローチャートである。
【図３】本発明の実施の形態１によるキャッシュメモリからの読み出し処理の動作を示すフローチャートである。
【図４】本発明の実施の形態１によるキャッシュメモリからディスク装置への書き戻し処理の動作を示すフローチャートである。
【図５】本発明の実施の形態１における書き込みデータの一例を示す図である。
【図６】本発明の実施の形態１におけるデータ処理のタイミングチャートを示す図である。
【図７】本発明の実施の形態１におけるデータパターン識別論理部の構成を示すブロック図である。
【図８】本発明の実施の形態２におけるディスクアレイ制御装置の構成を示す構成図である。
【図９】本発明の実施の形態２によるホストコンピュータからのリクエストの処理の動作を示すフローチャートである。
【図１０】本発明の実施の形態２によるキャッシュメモリからの読み出し処理の動作を示すフローチャートである。
【図１１】本発明の実施の形態２によるキャッシュメモリからディスク装置への書き戻し処理の動作を示すフローチャートである。
【図１２】本発明の実施の形態２におけるキャッシュメモリ５０の構成の一例を示す図である。
【図１３】本発明の実施の形態２におけるキャッシュメモリ５０の構成の他の例を示す図である。
【符号の説明】
１…ホストコンピュータ、２…ディスクアレイ制御装置、３…外部ネットワーク、４…ディスク装置、１０…チャネルインタフェース部、２０…共有メモリ部、３０…データパターン識別論理部（データパターン識別論理手段）、３１…コマンド生成部（コマンド生成手段）、３２…コマンド解析部（コマンド解析手段）、３３…プロセッサ、３４…ホストデータ送受信部、４０…キャッシュメモリ部、５０…キャッシュメモリ、６０…ディスクインタフェース部、７０…相互結合網（第１の相互結合網、第２の相互結合網）、８０…相互結合網、５１…識別ビット、５２…パターン情報、５３…順序情報、５４…データ長情報、９０…サービスプロセッサ接続網、１００…サービスプロセッサ、１０１…ＡＬＬ‘０’データパターン識別論理部、１０２…ＡＬＬ‘１’データパターン識別論理部、１０３…データ長識別論理部、１０４…８バイト‘０’判定論理部、１０５…１６バイト‘０’判定論理部、１０６…４キロバイト‘０’判定論理部、１０７…８バイト‘１’判定論理部、１０８…１６バイト‘１’判定論理部、１０９…４キロバイト‘１’判定論理部、１１０…２５６バイト‘０’判定論理部、１１１…２５６バイト‘１’判定論理部。
【図１】
2004318717.tif 000003
【図２】
2004318717.tif 000004
【図３】
2004318717.tif 000005
【図４】
2004318717.tif 000006
【図５】
2004318717.tif 000007
【図６】
2004318717.tif 000008
【図７】
2004318717.tif 000009
【図８】
2004318717.tif 000010
【図９】
2004318717.tif 000011
【図１０】
2004318717.tif 000012
【図１１】
2004318717.tif 000013
【図１２】
2004318717.tif 000014
【図１３】
2004318717.tif 000015