(57)【要約】【課題】  スループットの高速化を実現する。【解決手段】  送信装置２では、送信モジュールごとに割り当てられた専用データ格納領域の指定情報を付与してデータの送信を行う。データ保証制御装置１では、受信制御手段１０はデータを受信すると、データとともに受信した専用データ格納領域の指定情報に基づいて、データ格納手段１２の指定された専用データ格納領域に受信したデータを格納するとともに受信したデータをチェック手段１１へ転送する。チェック手段１１は、入力するデータを用いて所定の保証制御コードを算出する演算を行い、所定の送信モジュールが送信したデータについての保証制御コード算出演算が終了したら、算出された保証制御コードと受信したデータに含まれる保証制御コードを照合し、受信したデータの検証を行う。【選択図】  図１
2005208902.tif 000002
【特許請求の範囲】
【請求項１】
保証制御コードを含む所定の単位のデータ送信を独立して処理する送信モジュールを有する送信装置と接続し、前記データを受信して検証を行うデータ保証制御装置において、
前記送信モジュールごとに割り当てた専用データ格納領域を有し、前記送信モジュールより受信した前記データを前記専用データ格納領域に一時格納するデータ格納手段と、
前記データとともに送信元の前記送信モジュールに対応する前記専用データ格納領域の指定情報を受信し、前記指定情報に基づいて受信した前記データを前記データ格納手段に格納するとともに前記データをチェック手段へ転送する受信制御手段と、
前記指定情報に応じて前記送信モジュールを判別し、前記送信モジュールごとに前記受信制御手段より入力する前記データを用いて所定の保証制御コードを算出し、算出された算出保証制御コードと前記データに含まれる前記保証制御コードを照合して前記データが保証できるかどうかをチェックするチェック手段と、
を具備することを特徴とするデータ保証制御装置。
【請求項２】
前記データ格納手段は、前記送信モジュールごとの前記専用データ格納手段が、前記保証制御コードを算出する所定の保証制御ごとに割り当てた保証制御領域に分割され、
前記受信制御手段は、前記指定情報として前記データに含まれる前記保証制御コードに応じた前記保証制御領域の指定を取得し、前記指定情報に基づいて送信元の前記送信モジュールの前記専用データ格納領域の前記保証制御領域に前記データを格納し、
前記チェック手段は、前記保証制御に応じた保証制御演算を行う１または複数の検証モジュールを具備し、前記指定情報に基づいて前記データに含まれる前記保証制御コードに応じた前記保証制御を判別し、対応する前記検証モジュールによって前記保証制御演算を行う、
ことを特徴とする請求項１記載のデータ保証制御装置。
【請求項３】
前記チェック手段は、前記送信モジュールごとに前記算出保証制御コードを一時格納する保証制御コード格納手段を具備し、
前記送信モジュールごとに、前記指定情報に基づいて規定される受信された前記データの格納アドレスが前回受信した前記データの格納アドレスと連続している場合には、前記保証制御コード格納手段に格納された前記算出保証制御コードを用いて保証制御演算を行い、前記格納アドレスが連続していない場合には、前記保証制御コード格納手段に格納された前記算出保証制御コードを初期化してから前記保証制御演算を行い、演算結果を前記保証制御コード格納手段に格納することを特徴とする請求項１記載のデータ保証制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ保証制御装置に関し、特に保証制御コードを含む所定の単位のデータ送信を独立して処理する送信モジュールを有する送信装置と接続し、データを受信して検証を行うデータ保証制御装置に関する。
【背景技術】
【０００２】
近年、ネットワークの進展等により、装置間で頻繁にデータが送受されるようになってきており、装置間で転送されるデータを保証するデータ保証制御の重要性が増している。
情報の蓄積、活用に欠かすことのできないストレージシステムでは、情報のリードやライト要求を行うホストコンピュータ（以下、ホストとする）とストレージシステムとの間において、データ保護のため、ホストがデータから生成した保証制御コードがデータとともに転送される。従来のストレージシステムにおけるデータライト動作を説明する。
【０００３】
図１２は、従来のストレージシステムのライト転送時のデータの流れを示している。ここでアダプタは、データ保証制御機能を有し、ホスト９１０とＰＣＩ（Peripheral Component Interconnect）バスを介して接続する。アダプタは、ホストインタフェース（以下、ホストＩＦとする）９０１と、ローカルＰＣＩ受信制御部９０３、メモリ９０４、データチェック部９０５およびリモートＰＣＩ送信制御部９０６を含むメモリコントローラ９０２を具備し、メモリコントローラ９０２は、ホストＩＦ９０１およびキャッシュ９０７等にＰＣＩバスを介して接続する。ここで、ホスト側ＰＣＩバスはローカルＰＣＩバス、ＰＣＩネットワーク側ＰＣＩバスはリモートＰＣＩバスとよばれる。なお、装置全体は、ＭＰＵ（Microprocessing Unit）により制御されている。
【０００４】
データライト動作が開始され、ホスト９１０からデータＡとデータＢの２種類のデータがアダプタに転送される。データＡとデータＢは、それぞれ２分割されａ１、ａ２と、ｂ１、ｂ２として転送される。また、転送データには、データとともに保証制御コードが含まれている。ホストＩＦ９０１では、取得したデータをバースト長ごとに分割してローカルＰＣＩバス転送部を通してメモリコントローラ９０２に転送する。ローカルＰＣＩバス転送部は、データ転送の効率を上げるため、一般的にそれぞれ別個に動作する複数の転送処理モジュールから構成されており、データＡとデータＢはそれぞれ別個の転送処理モジュールによって転送される。このため、ＰＣＩバス上では、データＡとデータＢの連続性が保たれない。ローカルＰＣＩ受信制御部９０３は、受信されたデータを順次メモリ９０４に格納する。データＡの格納終了後、ＭＰＵによってデータチェック部９０５が起動され（ステップＳ９１）、データチェックが実行される。データチェックでは、メモリ９０４に格納されたデータを読み出し、読み出したデータから保証制御コードを算出し、データに含まれる保証制御コードと照合して一致するかどうかを判定する。そして、データチェック結果がＭＰＵに通知され、ＭＰＵはデータチェックが正常に終了した場合は、リモートＰＣＩ送信制御部９０６を起動し、データＡのディスク装置へのキャッシュ転送を開始する（ステップＳ９２）。同様に、データＢの格納終了後、データチェック部９０５が起動され（ステップＳ９３）、データチェックが正常に終了すれば、データＢのキャッシュ転送が開始される（ステップＳ９４）。
【０００５】
このようなデータ転送システムでは、データ保証とともにデータ転送のスループットの向上が要望されており、スループット向上のための様々な手法が提案されている。その１つに、メモリへアクセスされるアドレスの連続性を監視し、連続しているか否かに応じて格納するデータを制御するデータ通信制御装置がある（たとえば、特許文献１参照。）。
【特許文献１】特開２０００−２２７８９６号公報（段落番号〔００１９〕〜〔００２９〕、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、従来のデータ保証制御装置では、一旦データをバッファリングしてからでないとチェック機構を動作させることができないという問題点があった。
上記の説明のように、従来のデータ保証制御装置では、ＰＣＩバス上のデータの連続性を保つことができないため、データをすべてメモリ９０４に格納するバッファリングを行ってからデータチェックを開始していた。具体的には、データＡのＰＣＩバス転送は、あるバースト転送長ごとに分割されて転送される。分割されたデータ転送は、他の転送モジュールによるデータＢの転送と並列に転送が実施されるため、データＡの転送の間にデータＢの転送が割り込まれる。このように、ＰＣＩバス上ではデータの連続性が保たれないのに対して、データ保証制御コードは連続したデータから生成する必要がある。従って、データ転送中にリアルタイムにデータチェックを行うことができない。このため、従来は、データを一旦メモリ９０４に格納し、格納が終了した後にデータチェック部９０５を起動してデータを読み出してチェックを行うＢｕｆｆｅｒ−ｔｏ−Ｂｕｆｆｅｒ―Ｏｐｅｒａｔｉｏｎを実施している。しかしながら、Ｂｕｆｆｅｒ−ｔｏ−Ｂｕｆｆｅｒ―Ｏｐｅｒａｔｉｏｎでは、メモリ９０４への書き込み時間に加えて、データチェックのためのデータ読み出し時間が余分にかかることになり、ホストからディスク装置への書き込みスループットが低下するという問題が生じる。
【０００７】
また、上記のアドレスの連続性を監視し、データ制御を行うデータ通信制御装置は、メモリへの書き込み処理の効率を上げることにより、スループットを高速化する手法であり、データチェック時の効率化を図るものはでない。
【０００８】
本発明はこのような点に鑑みてなされたものであり、データチェック時の処理の効率化を図ることによって、データ保証の信頼性を損なうことなく、データ保証制御装置のスループットの高速化を実現することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では上記課題を解決するために、図１に示すようなデータ保証制御装置が提供される。
本発明にかかるデータ保証制御装置１は、独立してデータの送信が可能な複数の送信モジュール（図１の例では、送信モジュール１（２０ａ）、送信モジュール２（２０ｂ）、送信モジュール３（２０ｃ）、送信モジュール４（２０ｄ））から構成される送信制御手段２０を有する送信装置２とインタフェースバスによって接続されている。送信制御手段２０の各送信モジュールのデータを格納するデータ保証制御装置１のデータ格納手段１２には、予め送信モジュールごとに専用の専用データ格納領域が割り当てられており、各送信モジュールは、保証制御コードを含むデータとともに、割り当てられた専用データ格納領域の指定情報を送信する。
【００１０】
データ保証制御装置１は、送信装置２の送信したデータの受信と検証を制御する受信制御手段１０、データのチェックを行うチェック手段１１、送信装置２の送信モジュールごとに割り当てた専用データ格納領域に受信データを一時格納するデータ格納手段１２を有する。受信制御手段１０は、独立してデータ受信が可能な複数の受信モジュール（図１の例では、受信モジュール１（１０ａ）、受信モジュール２（１０ｂ）、受信モジュール３（１０ｃ）、受信モジュール４（１０ｄ））を有する。各受信モジュールは、データとともに、送信モジュールごとの専用データ格納領域を示す指定情報を受信する。そして、指定情報に基づき、対応するデータ格納手段１２の専用データ格納領域に受信したデータを格納するとともに、受信したデータをチェック手段１１へ転送する。チェック手段１１は、指定情報に基づいて送信モジュールを判別し、受信制御手段１０の各受信モジュールより入力するデータを用いて所定の保証制御コードを送信モジュールごとに算出し、算出された保証制御コードと受信したデータに含まれる保証制御コードを照合し、一致しているかどうかを判別することによって、受信したデータの保証ができるかどうかを判定する。データ格納手段１２は、送信モジュールごとに所定の専用データ格納領域（図１の例では、専用データ格納領域１（１２ａ）、専用データ格納領域２（１２ｂ）、専用データ格納領域３（１２ｃ）、専用データ格納領域４（１２ｄ））が割り当てられている。
【００１１】
このようなデータ保証制御装置１によれば、受信制御手段１０の各受信モジュールは、データを受信すると、データとともに受信される専用データ格納領域の指定情報に基づいて、対応するデータ格納手段１２の専用データ格納領域に受信したデータを格納する。これとともに、受信したデータをチェック手段１１へ転送する。チェック手段１１は、指定情報に基づいて送信モジュールを判別し、入力するデータを用いて所定の保証制御コードを送信モジュールごとに算出し、算出された保証制御コードと受信したデータに含まれる保証制御コードを照合して受信したデータの検証を行う。
【００１２】
これにより、データの格納と同時に、保証制御コードを用いた検証を行うことができる。
【発明の効果】
【００１３】
本発明のデータ保証制御装置では、それぞれ独立に動作する送信モジュールから送信されるデータを格納する専用データ格納領域が送信モジュールごとに割り当てられる。各送信モジュールから送信される保証制御コードを含むデータを受信すると、専用データ格納領域の指定情報に基づき、指定された専用データ格納領域に受信したデータを格納するとともに、受信したデータのチェック処理を行う。チェック処理では、送信モジュールごとに保証制御コードを算出し、受信データに含まれる保証制御コードを照合してデータ保証の判定を行う。このとき、専用データ格納領域の指定情報に応じてデータの送信元の送信モジュールを特定できるので、データの受信が完了しない状態でも保証制御コードを演算することができる。このように本発明のデータ保証制御装置によれば、データを受信しながら保証制御コードを算出できるので、スループットを高める効果が得られるという利点がある。また、保証制御コードを用いた判定の方法は従来と同様であるので、データ保証の信頼性を損なうことがない。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、本発明の実施の形態に適用される発明の概念図である。
【００１５】
本発明にかかるデータ保証制御装置１は、図示しないインタフェースバスによって、送信装置２と接続されている。
送信装置２は、たとえば、ホストから転送されるフレーム単位やコマンド単位等、所定の処理単位のデータの送信を制御する送信モジュール１（２０ａ）、送信モジュール２（２０ｂ）、送信モジュール３（２０ｃ）および送信モジュール４（２０ｄ）を有する送信制御手段２０を具備する。送信制御手段２０の送信モジュール１（２０ａ）、送信モジュール２（２０ｂ）、送信モジュール３（２０ｃ）および送信モジュール４（２０ｄ）は、それぞれ独立して動作可能である。たとえば、ホストから２種類のデータ、データＡ、データＢが入力されると、送信モジュール１（２０ａ）がデータＡ、送信モジュール２（２０ｂ）がデータＢの送信処理を並列して実行する。また、データ保証制御装置１のデータ格納手段１２には、各送信モジュールに対応する専用データ格納領域が設けられており、各送信モジュールは、データ送信時、割り当てられた専用データ格納領域を指定する指定情報をデータとともに送信する。また、専用データ格納領域がさらに数種類の保証制御に応じた保証制御領域に分割されている場合、送信データに含まれる保証制御コードを算出する保証制御に合致した保証制御領域を指定する。
【００１６】
データ保証制御装置１は、受信を制御する受信制御手段１０、保証制御コードの照合によりデータをチェックするチェック手段１１、受信したデータを一時保存するデータ格納手段１２、データ格納手段１２の専用データ格納領域の割り付けを示したアドレステーブルを記憶するアドレステーブル記憶手段１３および受信したデータを次装置に転送するリモート送信制御部１４を有する。
【００１７】
受信制御手段１０は、独立してデータの受信処理が可能な受信モジュール１（１０ａ）、受信モジュール２（１０ｂ）、受信モジュール３（１０ｃ）および受信モジュール４（１０ｄ）を具備する。各受信モジュールは、インタフェースバス経由で入力されるデータおよび専用データ格納領域の指定情報を入力すると、指定情報に基づいて、対応するデータ格納手段１２の領域に受信データを格納するとともに、受信したデータをチェック手段１１に転送する。ここで、専用データ格納領域の指定情報は、たとえば、専用データ格納領域の先頭アドレスである。送信モジュールからデータが複数のデータブロックに分割され送信される場合、データブロックごとの専用データ格納領域の先頭アドレスが送信される。これにより、各受信モジュールは、受信データを指定された先頭アドレスから格納することができる。さらに、専用データ格納領域が数種類の保証制御によって分割されている場合、保証制御の種類がわかっている送信モジュール側で保証制御に対応する専用データ格納領域のアドレスを指定すれば、受信モジュール側のデータ格納処理が容易になる。また、指定情報として、たとえば、送信モジュールを識別する識別情報等が設定されてもよい。この場合、たとえば、アドレステーブル記憶手段１３に送信モジュールごとの専用データ格納領域を記憶しておき、これを参照して受信データの格納を行う。
【００１８】
チェック手段１１は、受信制御手段１０の各受信モジュールから入力される受信データを用いて所定の保証制御演算を行い、保証制御コード（以下、単に保証コードとする）を算出する。保証コードの具体例としては、ＣＲＣ（Cyclic Redundancy Check）、ＦＣＣ（Frame Check Code）、ＢＣＣ（Block Check Code）、データの和、データの排他的論理和等がある。チェック手段１１には、送信モジュールごとに演算途中の値を一時格納する保証コード格納手段が具備されており、各受信モジュールから入力されるデータを用いて算出された保証コードを一旦保証コード格納手段に格納する。データが分割されて転送される場合には、次の分割データを受信したら、保証コード格納手段に格納された保証コードに基づいて続きのデータを用いた演算を行う。これにより、連続したデータの保証コードを算出することができる。そして、チェック範囲となる全データに関する演算が完了したら、算出された保証コードと受信したデータに含まれる保証コードを照合し、一致しているかどうかを判定する。なお、データ保証制御装置１が複数の保証制御の処理を可能とする場合、チェック手段１１には保証制御に応じた保証コードを算出する保証制御演算を行う複数の検証モジュールが設けられる。
【００１９】
データ格納手段１２は、送信モジュールに対応して専用データ格納領域が設けられており、図の例では、送信モジュール１（２０ａ）用に専用データ格納領域１（１２ａ）、送信モジュール２（２０ｂ）用に専用データ格納領域２（１２ｂ）、送信モジュール３（２０ｃ）用に専用データ格納領域３（１２ｃ）および送信モジュール４（２０ｄ）用に専用データ格納領域４（１２ｄ）が割り当てられている。さらに、データ保証制御装置１が複数の保証制御の処理を行う場合には、各専用データ格納領域は保証制御ごとに分割される。図の例では、各専用データ格納領域は、適用される保証制御の保証コードごとに、コードＡ領域、コードＢ領域およびコードＣ領域に分割されている。
【００２０】
アドレステーブル記憶手段１３は、各送信モジュールおよび保証制御ごとに割り当てられたデータ格納手段１２の専用データ格納領域のアドレスを示すアドレステーブルを記憶する。受信制御手段１０の各受信モジュールから参照可能である。
【００２１】
リモート送信制御部１４は、データ保証制御装置１の受信したデータを次の装置へ送信する。チェック手段１１によるチェックで、データ格納手段１２に格納されたデータが保証されれば、そのデータをキャッシュなどの他装置に転送する。データが無効であると判定されれば、他装置への転送を行わない。
【００２２】
このような構成のデータ保証制御装置の動作について説明する。送信装置２の送信制御手段２０では、データ保証制御装置１に転送する各種データを送信モジュール１（２０ａ）、送信モジュール２（２０ｂ）、送信モジュール３（２０ｃ）および送信モジュール４（２０ｄ）が独立して送信処理を行う。このとき、各送信モジュールは、送信モジュールごとに規定されるデータ格納手段１２の専用データ格納領域を指定する指定情報をデータとともに送信する。インタフェースバスは共通であるため、それぞれの送信モジュールがデータを所定の転送長に分割して送信する場合、インタフェースバス上では、送信モジュールが送信するデータ間に他の送信モジュールの送信するデータが割り込まれる。
【００２３】
データ保証制御装置１では、受信制御手段１０の受信モジュール１（１０ａ）、受信モジュール２（１０ｂ）、受信モジュール３（１０ｃ）あるいは受信モジュール４（１０ｄ）のいずれかがデータを受信し、受信データとともに受信した指定情報に対応するデータ格納手段１２の専用データ格納領域に受信データを格納する。同時に、受信データをチェック手段１１に転送する。チェック手段１１に保証制御に応じた複数の検証モジュールが設けられている場合、受信したデータに含まれる保証コードに対応する保証制御演算を行う検証モジュールを起動する。起動する検証モジュールは、たとえば、アドレステーブル記憶手段１３のアドレステーブルを参照し、指定情報によって指定される専用データ格納領域のアドレスがどの保証コードを格納する領域であるかを判断することにより選択する。チェック手段１１は、入力された受信データを用いて保証コードを算出する。分割データの場合は、保証コード格納手段に途中算出値を格納し、全チェック範囲のデータの保証コードを算出する。そして、保証コードが算出されたら、算出された算出保証コードと受信データに含まれる保証コードを照合し、一致するかどうかを判定する。一致する場合は、データが保証されたと判定し、一致しない場合はデータ異常と判定する。リモート送信制御部１４では、チェック手段１１によってデータが保証された場合、該当する受信データを次装置へ転送する。データ異常と判定された場合には、次装置への転送を行わない。
【００２４】
上記の説明のように、本発明のデータ保証制御装置１では、送信モジュールおよび送信されるデータに含まれる保証コードの算出に適用される保証制御ごとに、データ格納手段１２に専用データ格納領域を割り当て、受信制御手段１０において受信したデータを専用データ格納領域に格納し、チェック手段１１において専用データ格納領域ごとの検証コードを算出することによって、専用データ格納領域ごとのデータの連続性を確保することができる。これにより、受信制御手段１０によるデータ格納手段１２へのデータ格納と、チェック手段１１による受信データのチェックを並列して実行できるようになる。この結果、すべてのデータ格納後にチェックを行うＢｕｆｆｅｒ−ｔｏ−Ｂｕｆｆｅｒ−Ｏｐｅｒａｔｉｏｎを省くことができ、転送のスループットを高速化できる。
【００２５】
以下、本発明の実施の形態を、ストレージシステムに適用した場合を例に図面を参照して詳細に説明する。
図２は、本発明が適用されるストレージシステムの概略構成図である。
【００２６】
本発明が適用されるストレージシステム１００は、データの書き込みおよび読み出しを要求するホスト２００ａおよびホスト２００ｂと、所定のインタフェースを介して接続する。
【００２７】
ストレージシステム１００は、情報を格納する複数のディスクモジュール１０１ａ、１０１ｂと、ホスト２００ａ、２００ｂとの通信を制御するチャンネルアダプタ（Channel Adapter；以下、ＣＡとする）１１０ａ、１１０ｂと、ストレージシステム全体の動作を制御するキャッシュコントローラ１２０ａ、１２０ｂ、１２０ｃ、１２０ｄと、ディスクモジュール１０１ａ、１０１ｂとの通信を制御するデバイスアダプタ（Device Adapter；以下、ＤＡとする）１３０ａ、１３０ｂを具備し、各部は高速データ転送バスとして一般的なＰＣＩバスネットワーク１４０を介して接続されている。
【００２８】
ホスト２００ａ、２００ｂとストレージシステム１００との間では、データ保護のため、ホスト２００ａ、２００ｂによってデータから保証コードが生成され、データとともに転送される。データを受け取ったストレージシステム１００では、ＣＡ１１０ａ、１１０ｂがデータから保証コードを生成し、転送された保証コードと同一であるかどうかを確認する。そして、正しくデータが受信できたことを確認した場合のみ、キャッシュコントローラ１２０ａ、１２０ｂ、１２０ｃ、１２０ｄの制御によってデータは、ＤＡ１３０ａ、１３０ｂを介してディスクモジュール１０１ａ、１０１ｂに書き込まれる。なお、保証コードは、チャンネルのフレームごとや、コマンドごと、またはＬＢＡ（Logical Block Address）単位ごとに生成される。
【００２９】
ホストおよびアダプタについて詳細に説明する。図３は、本発明の実施の形態のアダプタのハードウェア構成図である。
ここで、ホスト２００は、データから第１の保証制御方式による保証コードＡを算出する保証コードＡ生成部２０１と、第２の保証制御方式による保証コードＢを算出する保証コードＢ生成部２０２、およびデータ転送を実行するインタフェース２０３を具備し、データ転送時には、データごとに選択された保証制御に応じて保証コードＡ生成部２０１あるいは保証コードＢ生成部２０２を起動し、生成された保証コードをデータとともにアダプタ１１０に送信する。なお、ホスト２００とアダプタ１１０間は、高速伝送を可能とするファイバチャンネルやＯＣＬＩＮＫ等でパラレル接続されている。
【００３０】
アダプタ１１０は、ホスト２００からの伝送を解析してＰＣＩバス変換するホストＩＦ１１１、ホストＩＦ１１１経由で入力されるデータのチェックを行うメモリコントローラ１１２、受信したデータを一時保存するメモリ１１３および装置全体を制御するＭＰＵ１１４を具備する。ここで、ホストＩＦ１１１、メモリコントローラ１１２およびＭＰＵ１１４は、装置内部のローカルＰＣＩバス１１５によって接続している。さらに、メモリコントローラ１１２は、外部の装置、たとえば、図２のキャッシュコントローラ１２０ａ、１２０ｂ、１２０ｃ、１２０ｄ、あるいはＤＡ１３０ａ、１３０ｂとリモートＰＣＩバス１１６を介して接続している。また、メモリコントローラ１１２とメモリ１１３の間は、所定のメモリバス１１７により接続されている。
【００３１】
ホストＩＦ１１１は、データ送信を制御するローカルＰＣＩ送信制御部１１１１を有し、ホスト２００から受けたデータをバースト長ごとに分割してローカルＰＣＩバス１１５経由でメモリコントローラ１１２へ送信する。
【００３２】
メモリコントローラ１１２は、ローカルＰＣＩバス１１５を介してデータを受信するローカルＰＣＩ受信制御部１１２１、動作に必要な情報を一時保存するＲＡＭ１１２２、メモリ１１３へのリード／ライトを制御するメモリバス送信制御部１１２３、データをチェックするチェック部１１２４およびリモートＰＣＩバス１１６を介してデータを次装置へ転送するリモートＰＣＩバス送信制御部１１２５を具備する。ローカルＰＣＩ受信制御部１１２１は、受信制御手段であり、ローカルＰＣＩバス１１５経由で入力するデータのメモリ１１３への格納とチェック部１１２４への転送を処理する。ＲＡＭ１１２２は、メモリコントローラ１１２の動作時の状態などの情報を格納するメモリであり、アドレステーブルなどが記録されてもよい。メモリバス送信制御部１１２３は、メモリコントローラ１１２とメモリ１１３との間のメモリバス１１７を介したデータ送受信を制御する。チェック部１１２４は、ローカルＰＣＩバス受信制御部１１２１から入力するデータを用いて所定の保証制御演算を行う１または複数の検証モジュールを有し、データに含まれる保証コードに応じた保証制御演算を行い、算出された算出保証コードとデータに含まれる保証コードを照合する。リモートＰＣＩバス送信制御部１１２５は、チェック部１１２４によって保証されたデータをメモリ１１３から読み出し、リモートＰＣＩバス１１６を介して次装置へ転送する処理を行う。
【００３３】
ＭＰＵ１１４は、装置各部の状態を監視し、各部の起動を指示する等、装置全体を制御する。
メモリ１１３は、メモリコントローラ１１２に入力したデータを一時格納するデータ格納手段である。
【００３４】
メモリバス１１７は、メモリ１１３とメモリバス送信制御部１１２３を接続するバスである。
このようなハードウェア構成により、本発明の実施の形態の処理機能が実現される。
【００３５】
次に、本実施の形態の処理機能を実現する機能モジュールの構成について説明する。図４は、本発明の実施の形態のアダプタの機能モジュールの構成図である。図３と同じものには同じ番号を付し、説明は省略する。なお、機能モジュールは、プログラムモジュールまたはハードウェアモジュールにより構成されるが、どちらで実現するかは、システムに応じて適宜選択される。
【００３６】
ホストＩＦ１１１は、ローカルＰＣＩ送信制御部１１１１を有し、ローカルＰＣＩ送信制御部１１１１は、各々独立して送信処理を行う送信モジュールＭＳＴ１（１１１１ａ）、ＭＳＴ２（１１１１ｂ）、ＭＳＴ３（１１１１ｃ）およびＭＳＴ４（１１１１ｄ）から構成される。以下、これらをまとめて説明する場合は、マスタモジュール１１１１と表記する。
【００３７】
マスタモジュール１１１１は、ホスト２００から送信されるデータのパケット情報の解析部を有し、受信したデータパケットを所定のバースト長に分割し、データを格納するアドレスを指定するアドレス情報とともにデータを送信する。各マスタモジュール、ＭＳＴ１（１１１１ａ）、ＭＳＴ２（１１１１ｂ）、ＭＳＴ３（１１１１ｃ）およびＭＳＴ４（１１１１ｄ）には、メモリ１１３にそれぞれの専用データ格納領域が設けられている。また、この専用データ領域は、さらに、保証コードごとの保証制御領域が割り当てられている。
【００３８】
メモリコントローラ１１２は、ローカルＰＣＩ受信制御部１１２１、アドレステーブル記憶部１１２２、チェック部１１２４、リモートＰＣＩ送信制御部１１２５およびデータ格納メモリ１１３１を有する。
【００３９】
ローカルＰＣＩ受信制御部１１２１は、各々独立して受信処理を行う受信モジュールＴＧＴ１（１１２１ａ）、ＴＧＴ２（１１２１ｂ）、ＴＧＴ３（１１２１ｃ）およびＴＧＴ４（１１２１ｄ）を具備する。以下、これらをまとめて説明する場合は、ターゲットモジュール１１２１と表記する。
【００４０】
ターゲットモジュール１１２１は、マスタモジュール１１１１から送信されるデータと専用データ格納領域を示すアドレス情報とを受信し、アドレス情報に基づいて、指示されたデータ格納メモリ１１３１のアドレスに受信したデータを格納する。同時に、アドレス情報を用いて、アドレステーブル記憶部１１２２に記憶されたアドレステーブルを検索し、該当するアドレスに対応する保証制御を選択し、対応する保証制御演算を行うチェック回路１（１１２４ａ）、チェック回路２（１１２４ｂ）、チェック回路３（１１２４ｃ）、またはチェック回路４（１１２４ｄ）を起動する。
【００４１】
アドレステーブル記憶部１１２２は、メモリ１１３のマスタモジュールごとの専用データ格納領域および保証制御領域のアドレスを示したアドレステーブルを記憶している。
ここで、メモリ１１３の構造とアドレステーブルについて説明する。図５は、本発明の実施の形態のメモリの構造とアドレステーブルを示した図である。図の例では、システムでは、データ転送時にコードＡ、コードＢ、あるいはコードＣの３種類の保証コードを使用するとしている。
【００４２】
メモリ１１３は、まず、ホストＩＦに実装されるマスタモジュールごとに専用データ格納領域が割り当てられる。図の例では、マスタモジュールごとに、ＭＳＴ１専用領域３０１、ＭＳＴ２専用領域３０２、ＭＳＴ３専用領域３０３が割り当てられている。そして、それぞれの専用領域は、さらに、保証コードごとにコードＡ領域、コードＢ領域およびコードＣ領域に分割されている。図の例では、ＭＳＴ１専用領域３０１は、コードＡ領域３０１ａ、コードＢ領域３０１ｂ、コードＣ領域３０１ｃに分割されている。同様に、ＭＳＴ２専用領域３０２は、コードＡ領域３０２ａ、コードＢ領域３０２ｂ、コードＣ領域３０２ｃに分割され、ＭＳＴ３専用領域３０３は、コードＡ領域３０３ａ、コードＢ領域３０３ｂ、コードＣ領域３０３ｃに分割されている。
【００４３】
アドレステーブル４００は、それぞれのマスタモジュールに割り当てられた保証コードごとに専用のデータ格納領域のアドレスを示したテーブルである。図の例では、専用データ格納領域は、保証コードごとにまとめられており、コードＡのＡ１アドレスは、ＭＳＴ１専用領域３０１のコードＡ領域３０１ａの先頭アドレスを示す。同様に、コードＡのＡ２アドレスは、ＭＳＴ２専用領域３０２のコードＡ領域３０２ａの先頭アドレスを、コードＡのＡ３アドレスは、ＭＳＴ３専用領域３０３のコードＡ領域３０３ａの先頭アドレスを示す。コードＢおよびコードＣについても同様に、それぞれの専用データ格納領域の先頭アドレスを示す。
【００４４】
このように、マスタモジュールごとに専用データ格納領域を持つことにより、ローカルＰＣＩバス上のデータ転送におけるデータの連続性を保つことができなくても、メモリアドレスアクセスの連続性が保たれている。従って、ＰＣＩバス転送が連続していなくても、データを格納するメモリアドレスから保証コードを判定し、ローカルＰＣＩバス転送と同時にデータチェックを行うことが可能となる。
【００４５】
なお、専用データ格納領域の設定とアドレステーブルの作成は、システムの初期化シーケンスにおいて行われる。初期化シーケンスでは、たとえば、ホストＩＦがホストとメッセージ通信を行ない転送で使用する保証コードを取得し、マスタモジュールごとにデータアクセス可能なメモリ領域を割り当て、専用データ格納領域を設定する。さらに、ホストより獲得した使用する保証コードに合わせて専用データ格納領域を保証コードごとの保証制御領域に分割し、アドレステーブルを作成する。専用データ格納領域の割り当ては、ホストにも通知される。
【００４６】
具体例を用いて説明する。図６は、メモリ構造とアドレステーブルの一例を示した図である。図では、一般的なシステムの例として、データ格納メモリ１１３１は５２０ＭＢのメモリが使用され、マスタモジュールおよびターゲットモジュールはそれぞれ４つ設けられるとしている。マスタモジュールの数は、ホストＩＦチップに搭載されているマスタの数とチップの数で決まり、一般的なシステム構成では、ホストＩＦチップは２個、各チップにマスタモジュールが２つ実装されているケースが多い。また、ターゲットモジュールは、マスタモジュールの数分が実装される。そして、使用される保証制御は２種類とする。
【００４７】
まず、４つのマスタモジュールＭＳＴ１（１１１１ａ）、ＭＳＴ２（１１１１ｂ）、ＭＳＴ３（１１１１ｃ）およびＭＳＴ４（１１１１ｄ）の専用データ格納領域を決定する。ここでは、５２０ＭＢのデータ格納メモリ１１３１を４等分し、各１２０ＭＢの専用データ格納領域、ＭＳＴ１専用領域３０１１、ＭＳＴ２専用領域３０２１、ＭＳＴ３専用領域３０３１およびＭＳＴ４専用領域３０４１を設けている。次に、マスタモジュールごとの専用データ格納領域の保証制御領域を決定する。保証制御２種類のうち、よりデータ転送頻度の高い方（ここではコードＡ）に６４ＭＢ、低い方（ここではコードＢ）に３２ＭＢ、残り３２ＭＢをデータ保証を行わないデータ領域として割り付ける。これにより、ＭＳＴ１専用領域３０１１は、６４ＭＢのコードＡ領域３０１１ａ、３２ＭＢのコードＢ領域３０１１ｂおよび３２ＭＢの未チェック領域３０１１ｃに分割される。同様に、ＭＳＴ２専用領域３０２１は、６４ＭＢのコードＡ領域３０２１ａ、３２ＭＢのコードＢ領域３０２１ｂおよび３２ＭＢの未チェック領域３０２１ｃに分割される。以下、ＭＳＴ３専用領域３０３１およびＭＳＴ４専用領域３０４１も同様に分割されるので、説明は省略する。
【００４８】
たとえば、一般的なシステムで、ホストから一度のコマンドで転送されるデータの転送量の最大値が５１２ＫＢである場合、３２ＭＢのデータ格納領域であれば複数のコマンドデータをバッファリングしておくことが可能である。このように、一般的なシステム構成に本発明の実施の形態を適用することが可能である。
【００４９】
以上の説明の実施の形態におけるデータ保証制御動作について説明する。以下では、２種類のデータ、データＡとデータＢがホストから転送される場合について説明する。図７は、本発明の実施の形態のデータ保証制御動作の流れを示した図である。
【００５０】
［ステップＳ１］  ホスト２００から２種類のデータがホストＩＦ１１１に転送される。ホスト２００は、ストレージシステムに格納するデータを、ホストＩＦ１１１に送信する。このとき、データごとに予め決められた保証制御に応じた保証コード生成部が起動され、生成された保証コードが送信データに付加される。保証コードＡ生成部２０１によって算出された保証コードＡを含むデータＡ、同様に保証コードＢ生成部２０２によって算出された保証コードＢを含むデータをデータＢとする。データＡは、保証コードの種別（コードＡ）を示したコード種別５０１ａ、算出された保証コード（Ａ）を格納した保証コード５０２ａおよびデータ（データＡ）５０３ａから構成される。同様に、データＢも、コード種別（コードＢ）５０１ｂ、保証コード（Ｂ）５０２ｂおよびデータ（データＢ）５０３ｂから構成される。
【００５１】
［ステップＳ２］  ホストＩＦ制御部は、データＡとデータＢをホスト２００から受信すると、各データを２つのマスタモジュールでそれぞれ処理する。それぞれのマスタモジュールは、データをバースト長データに分割し、数回に分けて送信処理を行う。このとき、データに含まれるコード種別部の情報を参照し、格納先のメモリアドレスを算出し、分割データとともに送信する。図の例では、データＡを処理するマスタモジュールは、データＡを、保証コード（Ａ）５０２ａとデータ（Ａ−１）５０３ａ−１から成るバースト長データ（以下、データａ１とする）と、残りのデータ（Ａ−２）５０３ａ−２から成るバースト長データ（以下、データａ２とする）に分割し、順に送信する。このとき、指定情報には、このマスタモジュールの専用データ領域のコードＡ領域３０４ａが格納先アドレスとして設定される。同様に、データＢを処理するマスタモジュールは、データＢを、保証コード（Ｂ）５０２ｂとデータ（Ｂ−１）５０３ｂ−１から成るバースト長データ（以下、データｂ１とする）と、残りのデータ５０３ｂ−２（Ｂ−２）から成るバースト長データ(以下、データｂ２とする)に分割し、順に送信する。このとき、指定情報には、このマスタモジュールの専用データ領域のコードＢ領域３０５ｂが格納先アドレスとして設定される。マスタモジュールが独立して動作することから、ローカルＰＣＩバス１１５上では、データａ１、データｂ１、データａ２、データｂ２の順にデータが流れ、ターゲットモジュールは、この順にデータを受信する。
【００５２】
［ステップＳ３］  ターゲットモジュールは、バースト長データ、データａ１、データｂ１、データａ２、データｂ２を受信すると、指定されたデータ格納アドレスに基づいて受信データの保証コード種別を判定し、それぞれに対応するチェック回路へデータを転送する。チェック回路は、保証コードＡ用のチェック回路Ａ（６０１ａ）と保証コードＢ用のチェック回路Ｂ（６０１ｂ）が用意されており、チェック回路はそれぞれのチェック途中値を格納する保証コードレジスタ６０２ａ、６０２ｂを具備する。図の例では、データａ１およびデータａ２は、チェック回路Ａ（６０１ａ）に転送され、データｂ１およびデータｂ２は、チェック回路Ｂ（６０１ｂ）に転送される。チェック回路Ａ（６０１ａ）は、データａ１が入力されるとこのデータを用いて保証コードＡを算出する演算を行い、チェック途中値を保証コードレジスタ６０２ａに格納する。続く、データａ２受信時には、データａ１で生成されたチェック途中値を保証コードレジスタ６０２ａから読み出し、チェック途中値から保証コードＡを算出する演算を行い、算出値を保証コードレジスタ６０２ａに格納する。チェック回路Ｂ（６０１ａ）も同様の処理を行う。
【００５３】
［ステップＳ４］  ターゲットモジュールは、指定された格納アドレスに基づいて、ステップ３の受信したデータをチェック回路Ａ（６０１ａ）あるいはチェック回路Ｂ（６０１ｂ）に転送する処理とともに、受信データをメモリ１１３の該当する格納アドレスに書き込む。図の例では、データａ１およびデータａ２は、専用データ格納領域３０４ａ、データｂ１およびデータｂ２は、専用データ格納領域３０５ｂに格納される。
【００５４】
次に、データ保証制御処理の流れを、タイムチャートを用いて説明する。図８は、本発明の実施の形態のライト転送時のデータの流れを示している。図７と同じものには同じ番号を付し、説明は省略する。
【００５５】
ホスト２００からは、データＡとデータＢがホストＩＦ１１１に対して送信される。ホストＩＦ１１１では、それぞれのデータを処理するマスタモジュールが、送信処理を行う。データＡは、データａ１とデータａ２に分割され、順次送信される。同様に、データＢは、データｂ１とデータｂ２に分割され、順次送信される。それぞれのマスタモジュールは独立して動作しており、ローカルＰＣＩ受信制御部１１２１は、データａ１、データｂ１、データａ２、データｂ２の順にデータを受信する。ローカルＰＣＩ受信制御部１１２１は、データとともに受信した格納アドレスを指定する指定情報に基づき、各受信データの保証コード種別を判別し、該当するチェック回路にデータを転送するとともに、メモリ１１３の指定された格納アドレスに受信データを格納する。これにより、受信データの格納と同時に、チェック回路によるデータチェックが行われ、メモリ１１３へのデータの格納が終了するとともに、データチェックが完了する。
【００５６】
続いて、メモリ１１３へのデータ格納が終了したことを検出したＭＰＵが、データＡのキャッシュ転送指令（ステップＳ５）と、データＢのキャッシュ転送指令（ステップＳ６）を発行する。リモートＰＣＩ送信制御部１１２５は、キャッシュ転送指令に従って、データＡ（ａ１＋ａ２）とデータＢ（ｂ１＋ｂ２）を、キャッシュ１２０に転送する。
【００５７】
以上のように、本発明の実施の形態によれば、データ転送の連続性が保証できない複数のマスタモジュールを有するシステムにおいて、データを受信するごとに、リアルタイムでデータチェックを行うことが可能となり、システムのスループットを向上させることができる。
【００５８】
次に、本発明の実施の形態によって実行されるデータ保証制御処理の手順について説明する。図９は、本発明の実施の形態のデータ転送処理手順を示したフローチャートである。図９は、ホストＩＦにおける処理手順を示している。
【００５９】
ホストからアダプタに対してデータ転送リクエストが送信され、ホストＩＦによるデータの受信とメモリコントローラへのデータ転送処理が開始される。
［ステップＳ１１］  ホストＩＦがホストから送信されたデータ転送リクエストを受信する。
【００６０】
［ステップＳ１２］  送信処理を行うマスタモジュール専用の専有メモリ領域に空きがあるかどうかをチェックする。空きがない場合にはステップＳ１３へ処理を進め、空きがある場合にはステップＳ１４へ処理を進める。
【００６１】
［ステップＳ１３］  専有メモリ領域に空きがない場合、リトライあるいはウェイト応答をホストに返し、処理を終了する。
［ステップＳ１４］  専有メモリ領域に空きがある場合、ホストへ転送を許可するという応答を返し、ホストより転送されたデータを受信する。
【００６２】
［ステップＳ１５］  マスタモジュールは、ローカルＰＣＩバスが使用可能状態であれば、受信したデータをバースト長に分割し、ローカルＰＣＩバス経由で分割したデータを送信する。このとき、ホストより受信したデータに含まれる保証コードのコード種別を参照し、送信処理を実行するマスタモジュールの専用データ格納領域の対応する保証制御領域を指定するアドレス情報をデータとともに送信する。
【００６３】
［ステップＳ１６］  データ転送が終了したら、一旦転送を打ち切り、バスを開放する。これにより、他のマスタモジュールがバスを使用可能になる。
［ステップＳ１７］  全データの転送が終了したかどうかを判定する。転送終了であれば、処理を終了する。
【００６４】
［ステップＳ１８］  転送が終了していなければ、次のバースト長転送を開始し、ステップＳ１５からの処理を繰り返す。
以上の処理手順が実行されることにより、ホストから受信したデータは、バースト長に分割され、数回に分けて任意のマスタモジュールからメモリコントローラに対して送信される。このとき、データに含まれる保証制御コードに対応するデータ格納領域の指定情報がデータとともに送信される。
【００６５】
続いて、ホストＩＦよりバースト長データを受信したメモリコントローラの処理手順について説明する。図１０は、本発明の実施の形態の受信処理手順を示したフローチャートである。メモリコントローラは、ホストＩＦよりバースト長データを受信することにより処理を開始する。
【００６６】
［ステップＳ２１］  メモリコントローラは、データを受信すると、データに添付されたデータ格納領域の指定情報に基づいて保証コードの種別を判定する。データ格納領域は保証コードごとに分割されており、データ格納先のアドレス指定によって保証コードを判別することができる。保証コードがコードＡであればステップＳ２２へ、コードＢであればステップＳ２６へ、チェックなしであればステップＳ２８へ処理を進める。
【００６７】
［ステップＳ２２］  保証コードがコードＡと判定された場合、保証コードＡの保証制御演算を行うチェック回路を起動し、コードＡのチェック処理を開始する。
［ステップＳ２３］  受信したバースト長データをメモリの指定されたアドレスに格納するとともに、受信したデータを用いて保証コードＡを算出する。算出処理の詳細については後述する。
【００６８】
［ステップＳ２４］  保証コードの算出が終了したかどうかを判定する。終了していなければ処理を終了する。
［ステップＳ２５］  保証コードの算出が終了したら、算出された保証コードとデータ中の保証コードを照合し、データが保証できるかどうかの判定を行い、処理を終了する。
【００６９】
［ステップＳ２６］  保証コードがコードＢと判定された場合、保証コードＢの保証制御演算を行うチェック回路を起動し、コードＢのチェック処理を開始する。
［ステップＳ２７］  受信したバースト長データをメモリの指定されたアドレスに格納するとともに、受信したデータを用いて保証コードＢを算出し、処理をステップＳ２４へ進める。算出処理の詳細については後述する。
【００７０】
［ステップＳ２８］  保証コードのチェックを行わない場合、受信したバースト長データをメモリの指定されたアドレスに書き込んで格納し、処理を終了する。
以上の処理手順が実行されることにより、各ターゲットモジュールは、分割されたバースト長データを受信するごとに、データ格納領域の指定情報に従ってデータをメモリに書き込むとともに、格納アドレスに基づいて保証コード種別を判別し、受信データを用いて種別に応じた保証コードを算出する。
【００７１】
次に、保証コードの算出処理手順について説明する。図１１は、本発明の実施の形態の保証コードの算出処理手順を示したフローチャートである。
保証コードＡの算出処理手順も保証コードＢの算出処理手順も保証コードの演算式を除いて同じであるので、以下、まとめて説明する。図１０に示した受信処理手順において、保証コード算出処理において、チェック回路が起動されて処理が開始される。
【００７２】
［ステップＳ２３１］  指定情報によって指定された受信データを格納するアドレスが前回処理時（前回のバースト長データ受信時）に指定されたアドレスと連続しているかどうかを判定する。連続していなければ、ステップＳ２３３へ処理を進める。
【００７３】
［ステップＳ２３２］  データを格納するアドレスが連続している場合、分割された連続するデータが受信されたと判断し、前回のチェック回路起動時に算出されたチェック途中値からチェックを用いて受信したデータのチェックを行うとともに、受信データをメモリの指定されたアドレスに書き込んで、格納し、処理をステップＳ２３４へ進める。
【００７４】
［ステップＳ２３３］  データを格納するアドレスが連続していない場合、新たなデータが受信されたと判断し、チェック初期値を用いて受信したデータのチェックを行うとともに、受信データをメモリの指定されたアドレスに書き込んで格納し、処理をステップＳ２３４へ進める。
【００７５】
［ステップＳ２３４］  算出された保証コードをチェック途中値として、予め用意されたメモリに格納し、処理を終了する。なお、分割データが最終の場合には、最終の算出保証コードがメモリに格納される。
【００７６】
以上の処理手順が実行されることにより、分割されたデータを受信するごとに、このデータを用いて保証コードが算出され、チェック途中値として保存される。次のデータ受信時にこのチェック途中値を用いて保証コードを算出すれば、連続したデータのチェック値を算出することができる。たとえば、保証コードがデータの排他的論理和である場合、データ受信時に、前回受信したデータ、すなわち、連続する前のデータの排他的論理和がチェック途中値に格納されており、これを用いて演算を行うことにより、連続したデータの排他的論理和を算出することができる。
【００７７】
以上のように、本発明のデータ保証制御処理手順によれば、分割され、複数のマスタモジュールから独立して送信されるデータを受信するごとに、それぞれのデータの保証コードを算出することができる。このように、リアルタイムでデータチェックを行うことができることから、システムのスループットを高めることが可能となる。
【００７８】
なお、上記の処理機能を、コンピュータによって実現する場合、データ保証制御装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【００７９】
（付記１）  保証制御コードを含む所定の単位のデータ送信を独立して処理する送信モジュールを有する送信装置と接続し、前記データを受信して検証を行うデータ保証制御装置において、
前記送信モジュールごとに割り当てた専用データ格納領域を有し、前記送信モジュールより受信した前記データを前記専用データ格納領域に一時格納するデータ格納手段と、
前記データとともに送信元の前記送信モジュールに対応する前記専用データ格納領域の指定情報を受信し、前記指定情報に基づいて受信した前記データを前記データ格納手段に格納するとともに前記データをチェック手段へ転送する受信制御手段と、
前記指定情報に応じて前記送信モジュールを判別し、前記送信モジュールごとに前記受信制御手段より入力する前記データを用いて所定の保証制御コードを算出し、算出された算出保証制御コードと前記データに含まれる前記保証制御コードを照合して前記データが保証できるかどうかをチェックするチェック手段と、
を具備することを特徴とするデータ保証制御装置。
【００８０】
（付記２）  前記データ格納手段は、前記送信モジュールごとの前記専用データ格納手段が、前記保証制御コードを算出する所定の保証制御ごとに割り当てた保証制御領域に分割され、
前記受信制御手段は、前記指定情報として前記データに含まれる前記保証制御コードに応じた前記保証制御領域の指定を取得し、前記指定情報に基づいて送信元の前記送信モジュールの前記専用データ格納領域の前記保証制御領域に前記データを格納し、
前記チェック手段は、前記保証制御に応じた保証制御演算を行う１または複数の検証モジュールを具備し、前記指定情報に基づいて前記データに含まれる前記保証制御コードに応じた前記保証制御を判別し、対応する前記検証モジュールによって前記保証制御演算を行う、
ことを特徴とする付記１記載のデータ保証制御装置。
【００８１】
（付記３）  前記データ格納手段に割り付けられた前記送信モジュールごとの前記専用データ格納領域および前記保証制御領域を示すアドレステーブルを記憶するアドレステーブル記憶手段を具備し、
前記受信制御手段は、前記指定情報に基づいて前記アドレステーブルより対応する前記保証制御を検索し、検索された前記保証制御に対応する前記検証モジュールを起動させることを特徴とする付記２記載のデータ保証制御装置。
【００８２】
（付記４）  前記チェック手段は、前記送信モジュールごとに前記算出保証制御コードを一時格納する保証制御コード格納手段を具備し、
前記送信モジュールごとに、前記指定情報に基づいて規定される受信された前記データの格納アドレスが前回受信した前記データの格納アドレスと連続している場合には、前記保証制御コード格納手段に格納された前記算出保証制御コードを用いて保証制御演算を行い、前記格納アドレスが連続していない場合には、前記保証制御コード格納手段に格納された前記算出保証制御コードを初期化してから前記保証制御演算を行い、演算結果を前記保証制御コード格納手段に格納することを特徴とする付記１記載のデータ保証制御装置。
【００８３】
（付記５）  前記送信装置を接続するインタフェースバスは、ＰＣＩバスであることを特徴とする付記１記載のデータ保証制御装置。
（付記６）  前記データ保証制御装置は、ストレージシステムにおいてホストコンピュータとディスク装置とを接続するアダプタを構成し、前記ホストコンピュータとのインタフェース処理を行うホストインタフェースと前記ホストインタフェースとインタフェースバスによって接続され、前記ホストインタフェースの送信したデータを受信してデータ保証を行うメモリコントローラであり、前記ホストコンピュータから書き込み要求された前記データの保証制御を行うことを特徴とする付記１記載のデータ保証制御装置。
【００８４】
（付記７）  保証制御コードを含む所定の単位のデータ送信を独立して処理する送信モジュールを具備する送信装置と、前記送信装置とインタフェースバスによって接続される前記データを受信して検証を行うデータ保証制御装置とを有するデータ保証制御システムにおいて、
前記送信モジュールごとに割り当てられた専用データ格納領域を指定する指定情報を前記データに付与して送信する送信制御手段を具備する送信装置と、
前記送信モジュールごとに割り当てた前記専用データ格納領域を有し、前記送信モジュールより受信した前記データを前記専用データ格納領域に一時格納するデータ格納手段と、前記データとともに前記指定情報を受信し、前記指定情報に基づいて受信した前記データを前記データ格納手段に格納するとともに前記データをチェック手段へ転送する受信制御手段と、前記指定情報に応じて前記送信モジュールを判別し、前記送信モジュールごとに前記受信制御手段より入力する前記データを用いて所定の保証制御コードを算出し、算出された算出保証制御コードと前記データに含まれる前記保証制御コードを照合して前記データが保証できるかどうかをチェックするチェック手段と、を具備するデータ保証制御装置と、
を有することを特徴とするデータ保証制御システム。
【００８５】
（付記８）  保証制御コードを含んだデータを含む所定の単位のデータ送信を独立して処理する送信モジュールを有する送信装置と、前記送信装置とインタフェースバスによって接続される前記データを受信して検証を行うデータ保証制御装置との間で転送される前記データのデータ保証制御方法において、
前記送信装置が、送信制御手段で前記送信モジュールごとに割り当てられた専用データ格納領域を指定する指定情報を前記データに付与して送信し、
前記データ保証制御装置が、受信制御手段で前記データとともに前記指定情報を受信し、前記指定情報に基づいて受信した前記データをデータ格納手段に格納するとともに受信した前記データをチェック手段に転送し、前記チェック手段で前記指定情報に応じて前記送信モジュールを判別し、前記送信モジュールごとに前記受信制御手段より入力する前記データを用いて所定の保証制御コードを算出し、算出された算出保証制御コードと前記データに含まれる前記保証制御コードを照合して前記データが保証できるかどうか判定する、
ことを特徴とするデータ保証制御方法。
【図面の簡単な説明】
【００８６】
【図１】本発明の実施の形態に適用される発明の概念図である。
【図２】本発明が適用されるストレージシステムの概略構成図である。
【図３】本発明の実施の形態のアダプタのハードウェア構成図である。
【図４】本発明の実施の形態のアダプタの機能モジュールの構成図である。
【図５】本発明の実施の形態のメモリの構造とアドレステーブルを示した図である。
【図６】メモリ構造とアドレステーブルの一例を示した図である。
【図７】本発明の実施の形態のデータ保証制御動作の流れを示した図である。
【図８】本発明の実施の形態のライト転送時のデータの流れを示している。
【図９】本発明の実施の形態のデータ転送処理手順を示したフローチャートである。
【図１０】本発明の実施の形態の受信処理手順を示したフローチャートである。
【図１１】本発明の実施の形態の保証コードの算出処理手順を示したフローチャートである。
【図１２】従来のストレージシステムのライト転送時のデータの流れを示している。
【符号の説明】
【００８７】
１  データ保証制御装置
２  送信装置
１０  受信制御手段
１０ａ  受信モジュール１
１０ｂ  受信モジュール２
１０ｃ  受信モジュール３
１０ｄ  受信モジュール４
１１  チェック手段
１２  データ格納手段
１２ａ  専用データ格納領域１
１２ｂ  専用データ格納領域２
１２ｃ  専用データ格納領域３
１２ｄ  専用データ格納領域４
１３  アドレステーブル記憶手段
１４  リモート送信制御部
２０  送信制御手段
２０ａ  送信モジュール１
２０ｂ  送信モジュール２
２０ｃ  送信モジュール３
２０ｄ  送信モジュール４
【図１】
2005208902.tif 000003
【図２】
2005208902.tif 000004
【図３】
2005208902.tif 000005
【図４】
2005208902.tif 000006
【図５】
2005208902.tif 000007
【図６】
2005208902.tif 000008
【図７】
2005208902.tif 000009
【図８】
2005208902.tif 000010
【図９】
2005208902.tif 000011
【図１０】
2005208902.tif 000012
【図１１】
2005208902.tif 000013
【図１２】
2005208902.tif 000014