(57)【要約】【課題】  ホストとＤＫＣとが通信接続されたデータ処理システムで、条件分岐を含んだ複数のチャネルコマンドワード（ＣＣＷ）を一括して処理し、装置間でのＣＣＷ転送を含む処理の負荷を軽減して処理性能向上を実現する。【解決手段】  ホスト１０１は、ＩＰ１１１がＣＣＷ４０１を発行し、ＣＨ１１３が、ＣＣＷ４０１やＣＣＷチェイン４０２を、エンコードプログラム１１５によりエンコード処理して、ＤＫＣ１０２との条件分岐の制御の記述を含んだ形式のコード４０３を作成し、ＤＫＣ１０２のＰＯＲＴ１２１に送信する。ＰＯＲＴ１２１は、コード４０３をデコードプログラム１２６によりデコード処理し、ＣＰ１２３が、デコードにより取得される各コマンドを順に処理し、処理終了状態を示すリターンコードを返す。ホスト１０１はリターンコードを受信して処理終了状態を認識する。【選択図】  図１
2006277583.tif 000002
【特許請求の範囲】
【請求項１】
コマンドを発行する第１のデータ処理装置と、前記コマンドに対応したコマンド処理を行う第２のデータ処理装置とがチャネルで通信接続されるデータ処理システムであって、
前記第１のデータ処理装置は、
チャネルコマンドワードを発行する演算処理部と、
処理に係わるデータまたは情報を格納する記憶装置部と、
前記第２のデータ処理装置との前記コマンドの転送を含む通信を制御する入出力チャネル部とを有し、
前記第２のデータ処理装置は、
前記コマンド処理を行う制御プロセッサ部と、
処理に係わるデータまたは情報を格納するメモリ部と、
前記第１のデータ処理装置との前記コマンドの転送を含む通信を制御する入出力ポート部とを有し、
前記第１のデータ処理装置は、複数のチャネルコマンドワードを、エンコード処理して、それによりコマンドとそのパラメータを含む、前記第２のデータ処理装置側の状態や処理結果に応じた条件分岐の制御の記述を含んだ形式のコードを作成し、
前記入出力チャネル部は、前記入出力ポート部との間で前記コードを送信し、
前記入出力ポート部は、前記入出力チャネル部との間で前記コードを受信し、
前記第２のデータ処理装置は、前記コードをデコード処理し、
前記制御プロセッサ部は、前記デコード処理により取得される各コマンドを、前記条件分岐の制御の記述に従って順に処理して、その処理結果を示すステータス情報を返し、
前記入出力ポート部は、前記入出力チャネル部との間で前記ステータス情報を応答として送信することを特徴とするデータ処理システム。
【請求項２】
請求項１記載のデータ処理システムにおいて、
前記第１のデータ処理装置は、前記エンコード処理で、前記コードに、前記条件分岐に応じた処理の終了の状態や位置に応じたリターンコードの記述を含め、
前記第２のデータ処理装置は、前記コードの処理の結果、前記条件分岐に応じた処理の終了の状態や位置に応じたリターンコードを含んだステータス情報を、前記第２のデータ処理装置へ送信し、
前記第１のデータ処理装置は、前記リターンコードから前記処理の終了の状態や位置を認識することを特徴とするデータ処理システム。
【請求項３】
請求項２記載のデータ処理システムであって、
前記第１のデータ処理装置は、前記ステータス情報に含まれるリターンコードを前記演算処理部で動作する前記チャネルコマンドワードの発行元のプログラムに対して報告し、
前記演算処理部は、前記リターンコードが処理の正常終了を示す場合は、次に発行するチャネルコマンドワードを決定し、前記リターンコードが処理の異常終了を示す場合は、その終了位置に対応したチャネルコマンドワードのリカバリ処理を実行することを特徴とするデータ処理システム。
【請求項４】
請求項１記載のデータ処理システムであって、
前記演算処理部は、プログラムの実行により、前記条件分岐を含む複数のチャネルコマンドワードから成るチャネルコマンドワードチェインを生成し、
前記第１のデータ処理装置は、前記チャネルコマンドワードチェインを元に前記エンコード処理して前記コードを作成し、作成したコードを前記第２のデータ処理装置とのチャネルにおいて転送することを特徴とするデータ処理システム。
【請求項５】
請求項１記載のデータ処理システムにおいて、
前記演算処理部は、複数のチャネルコマンドワードを生成して前記記憶装置部に格納し、
前記入出力チャネル部は、前記複数のチャネルコマンドワードを元にエンコード処理して、それによりコマンドとそのパラメータを含む、前記条件分岐の制御の記述を含んだ形式のコードを作成し、前記入出力ポート部との間で、前記作成したコードを、前記複数のチャネルコマンドコマンドの一括処理のためのコマンドのフレームとして送信することを特徴とするデータ処理システム。
【請求項６】
請求項１記載のデータ処理システムにおいて、
前記演算処理部は、複数のチャネルコマンドワードを生成し、前記複数のチャネルコマンドワードを元にエンコード処理して、それによりコマンドとそのパラメータを含む、前記条件分岐の制御の記述を含んだ形式のコードを作成することを特徴とするデータ処理システム。
【請求項７】
請求項１記載のデータ処理システムにおいて、
前記入出力ポート部は、前記コードを受信して前記制御プロセッサ部に転送し、
前記制御プロセッサ部は、前記コードをデコード処理し、それにより取得される各コマンドとそのパラメータを前記条件分岐の制御の記述に従って順に処理し、その処理結果を示すステータス情報を返すことを特徴とするデータ処理システム。
【請求項８】
コマンドを発行する第１のデータ処理装置と、前記コマンドに対応したコマンド処理を行う第２のデータ処理装置とがチャネルのパスで通信接続されるデータ処理システムであって、
前記第１のデータ処理装置は、
プログラムの実行、前記コマンドの発行、及び入出力データの処理などを行う演算処理部と、
プログラム、コマンド、及び入出力データなどのデータまたは情報を格納する記憶装置部と、
前記第２のデータ処理装置との前記コマンドの転送を含む通信を制御する入出力チャネル部とを有し、
前記第２のデータ処理装置は、
前記入出力データに関する記憶制御及び前記コマンド処理などを行う制御プロセッサ部と、
プログラム、コマンド、及び入出力データなどのデータまたは情報を格納するメモリ部と、
前記第１のデータ処理装置との前記コマンドの転送を含む通信を制御する入出力ポート部とを有し、
前記演算処理部は、プログラムの実行により複数のチャネルコマンドワードを生成し、
前記入出力チャネル部は、前記複数のチャネルコマンドワードを元に、エンコード処理して、それによりコマンドとそのパラメータを含む、前記第２のデータ処理装置側の状態や処理結果に応じた条件分岐の制御の記述と、処理終了状態や位置に応じたリターンコードの記述とを含んだ形式のコードを作成し、前記入出力ポート部との間で前記コードをフレームとして送信し、
前記入出力ポート部は、前記フレームを受信して前記コードを取り出してデコード処理し、
前記制御プロセッサ部は、前記デコード処理により取得される各コマンドとそのパラメータを、前記条件分岐の制御の記述に従って順に処理し、処理の終了に応じて前記リターンコードを返し、
前記入出力ポート部は、前記コードの処理の結果、前記リターンコードを含むステータス情報を応答として前記入出力チャネル部へ送信し、
前記第１のデータ処理装置は、前記ステータス情報に含まれる前記リターンコードから前記処理の終了の状態や位置を認識することを特徴とするデータ処理システム。
【請求項９】
第１のデータ処理装置と第２のデータ処理装置との間でコマンドを処理するデータ処理方法であって、
前記第１のデータ処理装置が、前記第２のデータ処理装置に対して条件分岐を含む処理動作を実行させるための複数のコマンドワードを、エンコード処理して、それによりコマンドとそのパラメータによる、第２のデータ処理装置側の状態や処理結果に応じた条件分岐の制御の記述と、処理終了状態や位置に応じたリターンコードの記述とを含む形式のコードを作成するステップと、
第１のデータ処理装置が、前記作成したコードを前記第２のデータ処理装置に送信するステップと、
前記第２のデータ処理装置が、前記第１のデータ処理装置から前記コードを受信するステップと、
前記第２のデータ処理装置が、前記コードをデコード処理して、それにより取得される各コマンドとそのパラメータを前記条件分岐の制御の記述に従って順に実行するステップと、
前記第２のデータ処理装置が、前記コードの処理の結果、前記条件分岐に応じた処理の終了の状態や位置を示すリターンコードを含むステータス情報を応答として第１のデータ処理装置に送信するステップと、
前記第１のデータ処理装置が、前記第２のデータ処理装置から前記ステータス情報を受信して前記処理の終了の状態や位置を認識するステップとを有することを特徴とするデータ処理方法。
【請求項１０】
第１のデータ処理装置と第２のデータ処理装置との間でコマンドを処理させるためのプログラムであって、
前記第１のデータ処理装置が、前記第２のデータ処理装置に対して条件分岐を含む処理動作を実行させるための複数のコマンドワードを元に、コマンドとそのパラメータによる、前記第２のデータ処理装置側の状態や処理結果に応じた条件分岐の制御の記述と、処理終了状態や位置に応じたリターンコードの記述とを含んだ形式のコードにエンコードする処理と、
前記第２のデータ処理装置が、前記コードを、前記条件分岐の制御の記述と、前記リターンコードの記述とを含む、前記コマンドとそのパラメータにデコードして順に実行し、前記条件分岐に応じた処理の終了の状態や位置を示すリターンコードを返す処理と、
前記第１のデータ処理装置が、前記第２のデータ処理装置からの前記ステータス情報に含まれるリターンコードにより、前記処理の終了の状態や位置を認識する処理とを行わせることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置間でコマンド処理を実行するデータ処理システムに関し、特に、ディスクアレイ装置（ストレージ装置ともいう）におけるディスク制御装置（ＤＫＣと略称する）等の記憶制御装置と、それに対するホストコンピュータ（単にホストとも称する）との間でコマンドや関連するデータ等を処理するための技術に関する。
【背景技術】
【０００２】
従来、ホストとディスクアレイ装置とを通信のためのチャネルで接続したデータ処理システムにおいて、ホストがＤＫＣに対してＣＣＷ（チャネルコマンドワード）を発行・送信して、ＤＫＣでコマンド処理を実行させることが行われる。特に、ホスト−ＤＫＣ間で処理動作や仕事を行わせるために、ホストがＤＫＣに対して、ＣＣＷチェインを発行・送信して連続的に処理することがよく行われる。ＣＣＷチェインとしては、例えばＨＤＤ（ハードディスクドライブ）等の記憶装置に対してデータ書き込み制御する場合のもの等、各種が存在する。
【０００３】
図８に示すような従来のデータ処理システムの構成例において、ホスト９０１は、複数のＣＣＷ８０１をＣＣＷチェイン８０２として発行して、それらをディスクアレイ装置９００のＤＫＣ９０２に送信し、ＤＫＣ９０２にＣＣＷチェイン８０４やＣＣＷ８０５を処理させる。例えば図９に示すようなＣＣＷチェイン８０２を発行することにより１つの処理動作や仕事を実行させる。ホスト９０１−ＤＫＣ９０２間でＣＣＷチェイン８０２の処理を行う際、ホスト９０１は、ＩＰ１１１が、ＭＳ１１２にＣＣＷチェイン８０２を生成する。ＣＨ１１３は、ＤＫＣ９０２のＰＯＲＴ１２１に対し、ＣＣＷチェイン８０２を、ＣＣＷ８０１のフレーム８０３として送信する。ＤＫＣ９０２は、ＰＯＲＴ１２１でＣＣＷ８０１のフレーム８０３を受信し、ＣＣＷチェイン８０４が取得される。ＣＰ１２３が、ＣＣＷチェイン８０４を構成している各ＣＣＷ８０５を順に処理する。ＰＯＲＴ１２１からＣＨ１１３に対し、ＣＣＷ８０５の処理結果の応答ステータスを送信する。
【０００４】
ホスト９０１が発行したＣＣＷ８０１及びＣＣＷチェイン８０２には、例えばサーチ条件が含まれるものがある。前記サーチ条件は、ＤＫＣ９０２側で実行するサーチ処理の条件の情報である。その場合、ＤＫＣ９０２でＣＣＷ８０５の処理において前記サーチ条件に応じたサーチ処理が行われ、そのサーチ処理の結果が、応答ステータスとしてホスト９０１に返される。前記サーチ処理は、例えば、ＤＫＣ９０２のメモリ領域の値がサーチ条件の値と一致か不一致かを調べる処理である。ホスト９０１は、前記条件を含むＣＣＷ８０１に対するＤＫＣ９０２での状態や処理結果に応じたＤＫＣ９０２からの応答ステータスによって、次に発行するＣＣＷ８０１を判断している。
【０００５】
特許文献１には、ＣＰＵとＤＫＣの間の通信におけるオーバーヘッドを削減する技術として、複数のＣＣＷを一括処理するための技術、及び、一括処理におけるＣＣＷの異常終了の場合でも単独処理の場合と同様にリカバリ処理するための技術について記載されている。
【特許文献１】特開２００１−１２５８６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前記背景技術のように複数のＣＣＷを発行することは、各ＣＣＷやそのパラメータにヘッダ部などの情報を付加するため、結果として、ホスト−ＤＫＣ間のチャネルにオーバーヘッドをかけることになり、パス上のトラフィックが大きくなってしまう。またＣＣＷごとにステータス情報の交換も生じるため、更にトラフィックが大きくなってしまう。
【０００７】
このため、前記チャネルのオーバーヘッドやパスのトラフィックを軽減する方法として、前記特許文献１記載の技術のように、複数のＣＣＷを一括してすなわちＣＣＷチェインとして転送・処理する方法がある。しかしこの方法はＣＣＷを順に実行させる方法であって、ジャンプ命令等の条件分岐を含む複数のＣＣＷでは、ＤＫＣからの応答に応じてＣＣＷの実行シーケンスが変化するため、チャネルのパスにおいて複数のＣＣＷを一括で転送することはできない。また、前記条件分岐を含む複数のＣＣＷをＤＫＣに処理させる場合、プログラムにおける処理終了位置の判定が難しく、ホストは、ＣＣＷチェインの各ＣＣＷ単位で処理が正常に行われたかどうかを知ることができない。
【０００８】
本発明は以上のような問題に鑑みてなされたものであり、その目的は、ホスト等のコマンドを発行する第１のデータ処理装置と、ＤＫＣ等のコマンド処理を実行する第２のデータ処理装置とが通信接続されたデータ処理システムにおいて、第１と第２のデータ処理装置とで、条件分岐を含んだ複数のコマンドワード（ＣＷ）のまとまりを一括して処理することで、第１と第２のデータ処理装置間でのＣＷ転送を含む処理の負荷を軽減して処理性能向上を実現できる技術を提供することにある。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。前記目的を達成するために、本発明のデータ処理システムは、ホスト等の、コマンド（ＣＣＷ等）を発行する第１のデータ処理装置と、記憶制御装置（ＤＫＣ等）の、コマンド処理を実行する第２のデータ処理装置とが通信接続されたシステムであって、以下に示す技術的手段を備えることを特徴とする。前記ディスクアレイ装置は、記憶装置と、記憶装置に対するデータの記憶を制御するディスク制御装置（ＤＫＣ）とを備えＲＡＩＤ制御可能な装置であり、ＤＫＣがホストからのコマンドや要求に応じて記憶ボリュームに対してデータ入出力処理する。
【００１０】
（１）  本発明のデータ処理システムは、第１と第２のデータ処理装置の間での通信処理を介して、第１のデータ処理装置が、第２のデータ処理装置での状態や処理結果に応じた条件分岐を含んだ一連の処理動作や仕事を行わせるために、複数のコマンドワード（ＣＷ）のまとまりをエンコード処理して前記条件分岐の制御の記述を含んだコードを作成して、当該コードをまとめて第２のデータ処理装置に送信して処理させることにより、複数のＣＷを一括処理する。第１のデータ処理装置は、条件分岐を含まず複数のＣＷを順に実行させるＣＷチェインによる処理の場合と、条件分岐を含む複数のＣＷによる処理の場合とについて、本コードによる一括処理を行うことができる。一括処理の実行の際、第１のデータ処理装置はエンコードプログラムの実行によりエンコード処理を、第２のデータ処理装置は、デコードプログラムの実行により前記エンコード処理に対応したデコード処理をそれぞれ行う。
【００１１】
本システムで、第１のデータ処理装置は、プログラムの実行、前記コマンドの発行、及び記憶ボリュームに対する入出力データの処理などを行う演算処理部と、プログラム、前記コマンド、前記入出力データ、制御情報などの、第１のデータ処理装置での処理に係わる各種のデータまたは情報を格納する記憶装置部と、前記第２のデータ処理装置との前記コマンドの転送を含む通信を制御する入出力チャネル部とを有する。
【００１２】
第２のデータ処理装置は、前記入出力データに関する記憶制御及び前記コマンドに対応したコマンド処理などを行う制御プロセッサ部と、プログラム、前記コマンド、前記入出力データ、制御情報などの、第２のデータ処理装置での処理に係わる各種のデータまたは情報を格納するメモリ部と、第１のデータ処理装置との前記コマンドの転送を含む通信を制御する入出力ポート部とを有する。
【００１３】
第１のデータ処理装置で、例えば、前記演算処理部が複数のチャネルコマンドワードを生成し、前記入出力チャネル部が、前記複数のチャネルコマンドワードをエンコード処理して、それによりコマンドとそのパラメータ及びその他入出力データ等を含む、第２のデータ処理装置側の状態や処理結果に応じた条件分岐の制御の記述を含んだ形式のコードを作成する。エンコードにより作成されたコード部分を作成済みのコード部分の後に繋げることで１つのデータ列のコードを作成する。
【００１４】
前記入出力チャネル部は、前記入出力ポート部との間で、前記作成されたコードをフレームとして送信する。入出力チャネル部は、前記コードを、例えば一括処理のためのコマンドのフレームのパラメータにセットして転送処理する。前記入出力ポート部は、前記コードを含んだフレームを受信して前記コードを取り出す。
【００１５】
第２のデータ処理装置では、例えば、前記入出力ポート部が、前記コードをデコード処理して前記制御プロセッサ部に渡す。前記制御プロセッサ部は、前記デコード処理により取得される各コマンドとそのパラメータ等を、前記条件分岐の制御の記述に従って順に処理し、その処理結果を示すステータス情報を返す。前記入出力ポート部は、前記ステータス情報を応答として入出力チャネル部に送信する。前記入出力ポート部は、前記応答のステータス情報を受信して、前記演算処理部等に報告する。
【００１６】
前記第１のデータ処理装置のエンコード処理では、条件分岐を含む複数のＣＷの一括処理の際における前記条件分岐の制御の記述として、元の条件分岐に対応したジャンプ命令等のＣＷを、例えば、他のＣＷ処理結果のステータスに応じた条件分岐のためのＣＷと、その分岐先となるアドレスやラベルとを含むコード部分にエンコード処理する。前記コードにおける他のＣＷ処理結果のステータスに応じた条件分岐のためのＣＷは、例えば、直前の条件判定処理のためのＣＷの処理結果のステータスに応じた他のＣＷ部分へのジャンプ命令等である。第２のデータ処理装置では、コードの記述に従って、前記他のＣＷ処理結果のステータスに応じて、前記ジャンプ命令等の条件分岐のためのＣＷを実行することで処理を分岐するか、または前記条件分岐のためのＣＷをスキップして次のＣＷの実行へ移るかする。
【００１７】
（２）  また本発明のデータ処理システムは、前記（１）において更に以下を特徴とする。第１のデータ処理装置は、前記エンコード処理で、前記コードに、前記条件分岐に応じた処理の終了の状態や位置に応じたリターンコードの記述を含める。それにより、第２のデータ処理装置は、前記コードの処理の結果、前記条件分岐に応じた処理の終了の状態や位置に応じたリターンコードを含んだステータス情報を、第１のデータ処理装置へ送信する。第１のデータ処理装置は、前記ステータス情報に含まれるリターンコードから、前記処理の終了の状態や位置を認識する。
【００１８】
更に、第１のデータ処理装置は、前記リターンコードの受領に基づき、次に実行する処理を決定する。例えば、リターンコードが処理の正常終了を示す場合は、次に発行するコマンドワードを決定し、リターンコードが処理の異常終了を示す場合は、その終了位置に対応したコマンドワードのリカバリ処理を実行する。
【００１９】
（３）  また、前記データ処理システムに対応したデータ処理方法及びその処理を行わせるプログラムにおいて以下を特徴とする。第１のデータ処理装置は、複数のＣＷを元にエンコード処理して前記条件分岐の制御の記述を含んだ形式の１つのコードを作成する処理と、作成したコードを第２のデータ処理装置に対して送信する処理とを行う。次に、第２のデータ処理装置は、第１のデータ処理装置から前記コードを受信する処理と、前記コードをデコード処理してそれにより取得される各ＣＷを前記条件分岐の制御の記述に従ってＣＷ処理する処理と、当該処理の終了状態や位置に応じたステータス情報を応答として第１のデータ処理装置へ送信する処理とを行う。次に、第１のデータ処理装置は、第２のデータ処理装置から前記コードの処理結果を示すステータス情報を応答として受信し、処理の終了状態や位置を認識する処理を行う。
【発明の効果】
【００２０】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。本発明によれば、ホスト等のコマンドを発行する第１のデータ処理装置と、ＤＫＣ等のコマンド処理を実行する第２のデータ処理装置とが通信接続されたデータ処理システムにおいて、第１と第２のデータ処理装置とで、条件分岐を含んだ複数のコマンドワード（ＣＷ）のまとまりを一括して処理することで、第１と第２のデータ処理装置間でのＣＷ転送を含む処理の負荷を軽減して処理性能向上を実現できる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
【００２２】
＜概要＞
本発明の実施の形態では、メインフレーム系ホストとディスクアレイ装置とが通信接続されるデータ処理システムにおいて、条件分岐を含む複数のＣＣＷをコードにより一括処理する機能を備える。ホストが、複数のＣＣＷを、条件に応じた処理分岐の制御をＣＷにより記述した形式のコードへエンコード処理する。これにより、従来ホスト側で行っていた、ＤＫＣ側からの応答に応じた複数のコマンドの進行制御を、コードの記述によりＤＫＣ側で代行させる仕組みとした。
ホストは、複数のＣＣＷあるいはＣＣＷチェインをＤＫＣに処理させるに当たり、複数のＣＣＷをエンコード処理して所定形式のコードを作成し、作成したコードをＤＫＣに対し１つのフレームとして転送する。ＤＫＣは、受信したフレームに含まれるコードをデコード処理してＣＣＷ処理を順に実行する。ホストは、前記エンコード処理において、特に、ＤＫＣ側の状態や処理結果などに応じた条件分岐を含む処理を実行させる際に、条件分岐の制御をＣＣＷによって記述した形式でコードを作成する。ＤＫＣは、前記デコード処理において、デコードされたＣＣＷにおける前記条件分岐の制御の記述に従って、条件判定処理等を行い、ＤＫＣでの状態や処理結果に応じて処理を分岐して各ＣＣＷ処理を実行する。そして、条件分岐に応じた処理終了の状態や位置に応じたステータス情報をホストへ返す。
【００２３】
以下、本実施の形態の特徴をわかりやすく示すため、まず、本実施の形態と比較される従来のデータ処理システム及びデータ処理方法について、図８〜１０を参照して説明する。
【００２４】
＜従来構成＞
図８は、従来のデータ処理システムの構成例及びデータ処理方法を示す。また図９は、従来システム例におけるＣＣＷチェインの例を示す表である。また図１０は、従来システム例におけるホスト−ＤＫＣ間でのＣＣＷチェインの処理を示すシーケンス図である。一例として、メインフレーム系のホスト９０１と、ディスクアレイ装置９００とを通信接続した、メインフレーム系のデータ処理システムを示す。
【００２５】
図８で、本システムは、ホスト９０１とディスクアレイ装置９００を有する。ホスト９０１は、ＤＫＣ９０２と、パス１０４により接続される。ディスクアレイ装置９００は、ＤＫＣ９０２とＤＫＵ（ディスクユニット）１０３がパス１０５により接続された構成である。ＤＫＵ１０３は、ＨＤＤ等の複数のディスク装置（ＤＫ）１３１を有する。
【００２６】
本システムで、ホスト９０１は、複数のＣＣＷ８０１を発行して、それらのまとまりであるＣＣＷチェイン８０２により、ディスクアレイ装置９００で処理動作や仕事を行わせる。ホスト９０１は、ＤＫＣ９０２で連続的に実行させるＣＣＷチェイン８０２を、ホスト９０１−ＤＫＣ９０２間のチャネルのパス１０４を通じてＤＫＣ９０２に転送して各ＣＣＷ８０５を順に処理させる。
【００２７】
ホスト９０１は、演算処理部（ＩＰ）１１１、主記憶装置部（ＭＳ）１１２、入出力チャネル部（ＣＨ）１１３、システムコントローラ（ＳＣ）１１４を有する。ホスト９０１は、ＤＫＣ９０２に対してＣＣＷ８０１を発行・送信することにより、ディスクアレイ装置９００の有する記憶ボリュームに対するデータ入出力やその制御等の各種データ処理を行う。ホスト９０１は、ＤＫＣ９０２とのチャネルのパス１０４を通じて、ＤＫＣ９０２に対しRead/Writeコマンド等によりアクセスし、記憶ボリュームに対してデータを読み書きする。また特に、ホスト９０１は、複数のＣＣＷ８０１から成るＣＣＷチェイン８０２を管理して、各ＣＣＷ８０１の処理の進行を制御する機能を備える。ホスト９０１は、プログラムやハードウェア論理の実行によりデータ処理を制御し、複数のＣＣＷ８０１の発行、ＤＫＣ９０１に対するＣＣＷ８０１やＣＣＷチェイン８０２の送信、応答ステータスの受信、及び、ＣＣＷチェイン８０２の進行制御などを行う。
【００２８】
ＤＫＣ９０２は、入出力ポート部（ＰＯＲＴ）１２１、キャッシュメモリ部（ＣＭ）１２２、制御プロセッサ部（ＣＰ）１２３、データ転送制御部（ＤＴＣ）１２４、共有メモリ部（ＳＭ）１２５を有する。ＤＫＣ９０２は、ＤＫＵ１０３の記憶ボリュームに対するデータ入出力等の記憶制御の機能を備え、また特に各ＣＣＷに対応したコマンド処理の機能を備える。ＤＫＣ９０２は、ホスト９０１からのコマンド等に応じて、ＤＫＵ１０３の記憶ボリュームに対するデータ読み書き等を実行する。
【００２９】
従来、ＣＣＷチェイン８０２の処理を例えば以下のように行っていた。ホスト９０１は、ＩＰ１１１が、ＭＳ１１２の領域に、例えば図９に示すようなＣＣＷチェイン８０２を生成する。ＣＨ１１３は、ＤＫＣ９０２のＰＯＲＴ１２１との間のチャネルのパス１０４において、ＣＣＷチェイン８０２を各ＣＣＷ８０１のフレーム８０３の状態で連続的に転送する。ＤＫＣ９０２は、ＰＯＲＴ１２１で受信したＣＣＷ８０１のフレーム８０３からＣＣＷチェイン８０４（前記ＣＣＷチェイン８０２に対応する）を取得し、ＣＣＷチェイン８０４における各ＣＣＷ８０５（前記ＣＣＷ８０１に対応する）を、ＣＰ１２３で順にコマンド処理する。これら手順により、ＣＣＷチェイン８０２に対応した処理動作や仕事が実現される。
【００３０】
なお、ＤＫＣ９０２において、ＰＯＲＴ１２１で受信したＣＣＷチェイン８０４等のデータや情報などをＣＭ１２２やＳＭ１２５等の領域に一旦格納し、格納されたデータや情報をＰＯＲＴ１２１やＣＰ１２３が取り出して処理するようにもできる。
【００３１】
上記ＣＣＷチェイン８０２の処理において、ホスト９０１が発行したＣＣＷ８０１には、例えばＤＫＣ９０２側でのサーチ条件が含まれるものがある。前記サーチ条件を含んだＣＣＷ８０１の発行により、ＤＫＣ９０２で前記サーチ条件に応じたサーチ処理を行わせる。そして、そのサーチ処理の結果がＤＫＣ９０２からホスト９０１へ応答ステータスとして返される。前記サーチ処理は、例えばＤＫＣ９０２のメモリ領域の値を条件の値と比較して一致か不一致かを調べる処理である。ホスト９０１は、前記サーチ条件を含むＣＣＷ８０１に対するＤＫＣ９０２からの応答ステータスによって、次に発行するＣＣＷ８０１等を判断し、判断に従って次のＣＣＷ８０１を発行する。ホスト９０１は、ＣＣＷ８０１の応答ステータスに応じて、ＤＫＣ９０２に実行させる処理を分岐させることになる。
【００３２】
＜従来のＣＣＷチェイン＞
ＣＣＷチェイン８０２は、連続的にコマンド処理を実行させるための、複数の関連したＣＣＷ８０１のまとまりであり、各ＣＣＷ８０１の実行順に意味がある。ディスクアレイ装置９００で１つの処理動作や仕事を行わせるために、ホスト９０１から一連のＣＣＷ８０１をＣＣＷチェイン８０２として発行してＤＫＣ９０２で各ＣＣＷ８０５を連続的に処理させることがよく行われる。ＣＣＷ８０１は、ホスト９０１とＤＫＣ９０２との間のチャネルで授受され、特にホスト９０１からＤＫＣ９０２に対して発行するＣＷである。ＣＣＷチェイン８０４としては、例えば、データ入出力のための制御系コマンドとして、ディスク装置１３１に対する書き込み制御させる場合のＣＣＷチェイン等がある。前記特許文献１には、ＣＣＷチェインの例が記載されている。
【００３３】
図９に示す表で、番号（＃）２０１、アドレス２０２、コマンドコード２０３、チェイン（フラグ）２０４、パラメータ２０５、コマンド２０６の各項目を有する。表の右側は、処理の分岐及び終了の様子を示す。一番左の列の番号２０１は、各ＣＣＷ８０１及び制御ステップの識別のために便宜的に付けた番号であり、実際の転送処理等の際には必要無い。本例で、番号＃１〜＃１１で示す各ＣＣＷ８０１から、条件分岐を含んだ１つのＣＣＷチェイン８０２が成る。アドレス２０２は、コマンド（ＣＣＷ）を格納しているアドレスである。コマンドコード２０３は、コマンドの識別のためのコードである。チェイン２０４は、当該コマンドの次のコマンドへのチェインの有無を示すフラグである。パラメータ２０５は、コマンドのパラメータである。コマンド２０６は、対応するコマンド名である。
【００３４】
本例で、ホスト９０１内に有するＣＣＷチェイン８０２において、＃１で、アドレスＸ００に、コマンドコード「８Ｂ」の「ＴＥＳＴ  ＭＥＭ」コマンドが格納されており、そのパラメータは「1001 0000 0002 0000 01」（１６進数表記）で、チェイン有りである。また、＃２において、アドレスＸ０８に、コマンドコード「０８」の「Ｔｉｃ」コマンドが格納されており、そのパラメータは「0000 0040」で、チェイン有りである。また、＃９において、アドレスＸ４０に、コマンドコード「８３」の「ＡＬＷ  ＣＲＳ」コマンドが格納されており、そのパラメータは「５２」で、チェイン無しである。
【００３５】
本例におけるＣＣＷチェイン８０２の処理形式は以下である。ホスト９０１は、ＤＫＣ９０２との間でＣＣＷチェイン８０２を実行するに当たり、基本的に番号の先頭から順にＣＣＷ８０１を発行する。＃８のＣＣＷ「プログラムエンド」の実行によって、当該ＣＣＷチェインを終了する。条件分岐が含まれないＣＣＷチェイン８０２の場合は、番号順に実行させればよいため、ホスト９０１は、これらＣＣＷチェイン８０２をパス１０４において各ＣＣＷのフレーム８０３として連続的にＤＫＣ９０２へ転送処理することができる。しかし、図９に示すＣＣＷチェイン８０２には条件分岐が含まれており、一部のコマンドで、ホスト９０１は、ＤＫＣ９０２からの応答ステータス等に応じて、分岐先として次に実行させるＣＣＷを決める。
【００３６】
本例では、＃１等に示す「ＴＥＳＴ  ＭＥＭ」コマンドについては、条件の記述をパラメータに含み、ＤＫＣ９０２での条件判定処理を行わせ、その結果のステータスを応答として返させるものである。また、本例では、＃２等に示す「Ｔｉｃ」コマンドについては、プログラムアドレスのジャンプ命令であり、ＤＫＣ９０２側には当該コマンドは送信されない。ホスト９０１は、「Ｔｉｃ」コマンドにおいて、直前の「ＴＥＳＴ  ＭＥＭ」コマンドにおけるＤＫＣ９０２での条件判定処理結果を示す応答ステータスに応じて、「Ｔｉｃ」コマンドのパラメータで指定されるジャンプ先のアドレスへ制御を移行するようにプログラムカウンタを更新する。または、前記応答ステータスに応じて、当該コマンドの実行を無効（スキップ）して、次のステップのＣＣＷに移る。
【００３７】
このように、ホスト９０１は、ＩＰ１１１やＣＨ１１３でＣＣＷチェイン８０２を構成する複数のＣＣＷ８０１の発行・転送・実行などについて進行制御する。ＤＫＣ９０２は、ＣＰ１２３等で各ＣＣＷについてのコマンド処理を実行する。
【００３８】
図１０で、ホスト９０１−ＤＫＣ９０２間の処理シーケンス例を示す。（ａ）は、ＣＣＷチェイン８０２の処理で「Ｔｉｃ」コマンドによるジャンプが発生しなかった場合の例を示す。（ｂ）は、ＣＣＷチェイン８０２の処理で「Ｔｉｃ」コマンドによるジャンプが発生した場合の例を示す。
【００３９】
図１０（ａ）で、ホスト９０１は、ステップＳ１で、＃１のＣＣＷ（「ＴＥＳＴ  ＭＥＭ」コマンド）をＤＫＣ９０２へ発行・送信する。＃１で送信されるＣＣＷのフレーム８０３では、コマンドコード「８Ｂ」及びパラメータ「1001 0000 0002 0000 01」を含んでいる。ＤＫＣ９０２は、＃１のＣＣＷを受信して、そのパラメータにセットされている条件に応じたサーチ処理等の条件判定処理を実行する。そして、その処理結果のステータスを応答としてホスト９０１へ送信する。Ｓ２では、判定処理結果として例えばサーチ条件不一致となったことにより、応答ステータスとして、条件不一致ステータスをホスト９０１へ送信している場合を示す。
【００４０】
ホスト９０１は、＃１のＣＣＷの送信後、条件不一致ステータスの受領に応じて、プログラムアドレスを＃１から２ステップ進めることにより次の＃２のＣＣＷ（「Ｔｉｃ」コマンド）を無効すなわちスキップして次のステップ（＃３）へ進め、Ｓ３で、条件の値を＃１とは変えた＃３のＣＣＷをＤＫＣ９０２へ発行・送信する。これに対し、同様に、ＤＫＣ９０２から条件不一致ステータスが返された場合を示す。これにより、Ｓ４で、次の＃４のＣＣＷを無効にし、Ｓ５で、条件の値を変えた＃５のＣＣＷを発行・送信する。これに対して、Ｓ６で、ＤＫＣ９０２での判定処理結果として例えばサーチ条件一致となったことにより、応答として条件一致ステータスが返された場合を示す。ホスト９０１は、条件一致ステータスの受領に応じて、次の＃６のＣＣＷ（「Ｔｉｃ」コマンド）を無効にして、Ｓ７で、＃７のＣＣＷ（「Ｔ＆Ｓ」コマンド）を発行・送信する。そして、これに対しＤＫＣ９０２で正常にＣＣＷ処理されたことにより、Ｓ８で、正常ステータスがホスト９０１へ返された場合、ホスト９０１は、次の＃８のＣＣＷである「プログラムエンド」により、次にチェインせずに一連のＣＣＷチェイン８０２の処理を終了する。
【００４１】
図１０（ｂ）で、ステップＳ１，Ｓ２，Ｓ３は（ａ）と同様である。Ｓ４で、ＤＫＣ９０２は、＃３のＣＣＷのパラメータにセットされている条件に応じた条件判定処理を行った結果、例えば条件一致ステータスをホスト９０１へ送信している場合を示す。
【００４２】
ホスト９０１は、＃３のＣＣＷの送信後、条件一致ステータスの受領に応じて、プログラムアドレスを＃３から１ステップ進めることにより次の＃４のＣＣＷ（「Ｔｉｃ」コマンド）を有効にして実行する。＃４の「Ｔｉｃ」コマンドのパラメータで指定されるジャンプ先が、＃１０のＣＣＷ（「ＡＬＷ  ＣＲＳ」コマンド）のアドレスである。これにより、ホスト９０２は、処理の分岐先となる＃１０のアドレスへジャンプして制御を移行し、Ｓ５で、＃１０のＣＣＷ（「ＡＬＷ  ＣＲＳ」コマンド）をＤＫＣ９０２へ発行・送信する。そして、ＤＫＣ９０２での＃１０のＣＣＷ処理を実行させ、これによりＣＣＷチェイン８０２の処理を終了する。
【００４３】
本構成例では、前記「Ｔｉｃ」コマンドを含む場合のように、ＤＫＣ９０２側の状態や処理結果に応じた処理の分岐を含んだＣＣＷチェイン８０２や複数のＣＣＷ８０１を実行させたい場合に、ＤＫＣ９０２からの応答ステータスに応じてホスト９０１でのＣＣＷチェイン８０２におけるＣＣＷの進行のシーケンスが変化する。そのため、ホスト９０１は、パス１０４においてＣＣＷチェイン８０２を一括してＤＫＣ９０２に転送することはできない。すなわち、ＤＫＣ９０２からの応答ステータスの受信を待つ時間が必要となるなど、ホスト９０１−ＤＫＣ９０２間でインターロックによる時間的同期処理が必要であるため、処理性能を向上できない。
【００４４】
＜データ処理システム＞
図１は、本発明の実施の形態におけるデータ処理システムの構成を示すブロック図である。本構成は、前記図８で示す構成と、ハードウェア構成については同様である。本システムは、メインフレーム系のホスト１０１とディスクアレイ装置１００とを通信接続したメインフレーム系のデータ処理システムを示す。本システムは、ホスト１０１とディスクアレイ装置１００を有する。ホスト１０１は、ＤＫＣ１０２と、パス１０４により接続される。ディスクアレイ装置１００は、ＤＫＣ１０２とＤＫＵ（ディスクユニット）１０３がパス１０５により接続された構成である。ＤＫＵ１０３は、ＨＤＤ等の複数のディスク装置（ＤＫ）１３１を含む。ＤＫＣ１０２は、ＤＫ１３１のグループに対してＲＡＩＤ制御を行うことができる。
【００４５】
ホスト１０１では、ＯＳなどのプログラムが稼動しており、ＤＫＣ１０２に対してコマンドをＣＣＷとして発行・送信してコマンド処理を行わせ、ディスクアレイ装置１００の有する記憶ボリュームに対するデータ入出力やその制御等の各種データ処理を行う。ホスト１０１は、ＤＫＣ１０２とのチャネルのパス１０４を通じて、ＤＫＣ１０２に対しRead/Writeコマンド等によりアクセスし、記憶ボリュームに対してデータを読み書きすることができる。ＤＫＵ１０３内のＤＫ１３１上に、データを格納するための記憶ボリュームあるいはデバイスが確保され、ＩＤ（識別子）で管理される。
【００４６】
ホスト１０１は、特に、複数のＣＣＷ４０１から成るＣＣＷチェイン４０２を管理して、各ＣＣＷ４０１の処理の進行を制御する機能を備える。ホスト１０１は、プログラムやハードウェア論理の実行によりデータ処理を制御し、複数のＣＣＷ４０１の発行、ＤＫＣ１０１に対するＣＣＷ４０１やＣＣＷチェイン４０２の送信、応答ステータスの受信、及び、ＣＣＷチェイン４０２の進行制御などを行う。本実施の形態では、上記ＣＣＷ４０１やＣＣＷチェイン４０２についての進行制御は、コード４０３へのエンコード処理という形で実現される。ホスト１０１は、エンコードプログラム１１５の実行によりエンコード処理を行い、それと対応して、ＤＫＣ１０２は、デコードプログラム１２６の実行によりデコード処理を行う。
【００４７】
ホスト１０１とＤＫＣ１０２との間のパス１０４において、所定のＩ/Ｆでの通信が行われる。Ｉ/Ｆは、例えばＦＩＣＯＮ（Fibre Connection）（登録商標）やＥＳＣＯＮ（Enterprise System Connection）（登録商標）等のメインフレーム系のプロトコルが用いられる。チャネルのパス１０４は、通信ケーブル等の配線や、コネクタなどの必要な電気部品から構成されている。ホスト１０１側の通信Ｉ/Ｆのポートをチャネルと称している。ＤＫＣ１０２側のＰＯＲＴ１２１では、ホスト１０１側のチャネルに対応した入出力処理機能を備えている。ホスト１０１−ＤＫＣ１０２間で、直接接続やネットワーク接続などの形態において、データや制御情報の転送のためのパスとなるチャネルが確保される。
【００４８】
＜ホストコンピュータ＞
図１において、ホスト１０１は、演算処理部（ＩＰ）１１１、主記憶装置部（ＭＳ）１１２、入出力チャネル部（ＣＨ）１１３、システムコントローラ（ＳＣ）１１４を有する。
【００４９】
ＩＰ１１１は、ホスト１０１のＯＳやアプリケーション等のプログラムを実行し、ＣＣＷ４０１やＣＣＷチェイン４０２を発行し、ＭＳ１１２等のメモリの領域に格納する。
【００５０】
ＭＳ１１２は、プログラムや、入出力データや、ＣＣＷ４０１等のコマンドや、作成されたコード４０３等の各種のデータや情報を記憶する。これらデータや情報は、ＣＨ１１３内のメモリ等に格納されてもよい。
【００５１】
ＣＨ１１３は、外部のディスクアレイ装置１００等に対する入出力チャネル（ポートともいう）における通信処理を行う。ＣＨ１１３は、ホストバスアダプタ（ＨＢＡ）等ともいう。ＣＨ１１３は、ＤＫＣ１０２のＰＯＲＴ１２１との間のパス１０４上でＣＣＷをフレーム等の形式で送信する処理やその応答のフレームを受信する処理を行う。ＣＨ１１３は、特に、複数のＣＣＷ４０５を含んだコード４０３を、ＣＣＷ一括処理のためのフレーム４０４として、ＰＯＲＴ１２１へ転送する処理、及び、ＰＯＲＴ１２１からその応答のフレームを受信する処理などを行う。ＣＨ１１３では、エンコードプログラム１１５の実行により、特徴的な処理であるエンコード処理を行う。ＣＨ１１３は、ＭＳ１１２等に格納されている複数のＣＣＷ４０１を対象として、エンコードプログラム１１５の実行によりエンコード処理を実行し、コード４０３を作成する。
【００５２】
ＳＣ１１４は、ホスト１０１のシステム及び各部間のデータ転送を制御する。
【００５３】
＜ディスク制御装置＞
図１において、ＤＫＣ１０２は、入出力ポート部（ＰＯＲＴ）１２１、キャッシュメモリ部（ＣＭ）１２２、制御プロセッサ部（ＣＰ）１２３、データ転送制御部（ＤＴＣ）１２４、共有メモリ部（ＳＭ）１２５、デコードプログラム１２６を有する。ＤＫＣ１０２は、ＤＫＵ１０３の記憶ボリュームに対するデータ入出力やＲＡＩＤ制御などの記憶制御の機能を備え、また特に各ＣＣＷに対応したコマンド処理の機能を備える。ＤＫＣ１０２は、ホスト１０１からのコマンド等に応じて、ＤＫＵ１０３の記憶ボリュームに対するデータ読み書き等を実行する。コマンド処理の機能は、ホスト１０１でエンコード処理により付加されるＣＣＷ４０５に対応した処理を含む。
【００５４】
ＰＯＲＴ１２１は、外部のホスト１０１等に対する入出力ポートにおける通信処理を行う。ＰＯＲＴ１２１は、ＣＨ１１３とのパス１０４上でＣＣＷ等をフレーム等の形式で受信する処理やその応答のフレームを送信する処理を行う。またＰＯＲＴ１２１は、特に、ＣＣＷ一括処理のためのフレーム４０４を受信する処理及びその応答のフレームを送信する処理、デコードプログラム１２６の実行によるコード４０３のデコード処理などを行う。
【００５５】
ＣＭ１２２は、ＤＫＣ１０２でデータをキャッシュするためのメモリである。ＳＭ１２５は、ＤＫＣ１０２で制御情報や管理情報などを格納するためのメモリである。ＤＫＣ１０２は、ＰＯＲＴ１２１やＣＰ１２３がＤＴＣ１２４を介してＣＭ１２２やＳＭ１２５に対し適宜データや情報を格納しながらデータ処理を行う。
【００５６】
ＣＰ１２３は、ＤＫＣ１０２における、ＣＣＷ処理を含むデータ処理及び制御を実行する。ＣＰ１２３の処理及び制御は、記憶制御機能に対応する。ＣＰ１２３は、少なくともマイクロプロセッサ等を有し、デコード処理により取得される各ＣＣＷ４０５に対応したコマンド処理を実行する。
【００５７】
ＤＴＣ１２４は、ＤＫＣ１０２の各部間でのデータ転送を制御し、例えば例えばデータ転送を切り替え制御するスイッチ等の接続網やＤＭＡデータ転送処理を行うＤＭＡ制御回路などで構成される。
【００５８】
また、ＰＯＲＴ１２１は、外部の装置に対するチャネルＩ/Ｆ処理を行うチャネル制御部（ＣＨＡ）として構成されてもよい。また、ＣＰ１２３は、例えば、ＣＨＡ、ディスクＩ/Ｆ処理を行うディスク制御部（ＤＫＡ）等の各機能処理部の相互接続により構成されてもよい。ＣＨＡは、複数のポートにより外部の１つ以上の装置との通信を制御する。ＤＫＡは、パス１０５を介してＤＫＵ１０３内のＤＫ１３１に対するデータ入出力を制御する。
【００５９】
ＤＫＣ１０は、例えば前記ＣＨＡ等の機能処理部に対応した複数の制御パッケージの相互接続により構成することもできる。ディスクアレイ装置１００は、その他、ＤＫＣ１０２に対して保守・管理処理用のプロセッサを備えたＳＶＰ（管理装置）１９６が接続される。オペレータは、ＳＶＰ１９６を操作することにより、ＳＶＰ１９６の処理によるディスクアレイ装置１００の保守・管理に係わる各種処理の実行が可能である。ＳＶＰ１９６の処理では、例えばディスクアレイ装置１００の構成情報や障害情報などの管理を行い、ＤＫＣ１０２の各部で実行させるプログラムのインストールや、記憶ボリューム構成の設定なども可能である。
【００６０】
＜ディスクアレイ装置ハードウェア＞
図２は、ディスクアレイ装置１００の全体のハードウェア外観構成を示す斜視図である。ディスクアレイ装置１００は、例えば基本筐体と増設筐体とから構成できる。図２は、基本筐体の前面右斜め上から筐体を透過して見たものであり、筐体内各部の配置を示している。基本筐体は、最小構成単位であり、ＤＫＣ１０２などが担う記憶制御機能と、ＤＫ１３１などが担う記憶機能との両方を備える。増設筐体は、オプション単位であり、記憶機能を備える。各筐体間が通信ケーブルで通信可能に接続される。
【００６１】
基本筐体には、下から、複数のバッテリ１９１、複数のＡＣボックス１９２、複数のＡＣ−ＤＣ電源１９３、ＤＫＣボックス１９４、複数のファン１９５、ＳＶＰ１９６、パネル１９７、ＤＫＵボックス１９８、複数のファン１９９等が配備されている。
【００６２】
バッテリ１９１は、ＡＣ−ＤＣ電源１９３に対して接続され、停電時のバックアップ電源として機能する。ＡＣボックス１９２は、入力ＡＣ電源を接続する部分であり、ＡＣ−ＤＣ電源１９３と接続される。ＡＣ−ＤＣ電源１９３は、入力ＡＣ電源についてＡＣ−ＤＣ変換を行い、ＤＫＣ１０２等の各部位に対してＤＣ電源を供給する。
【００６３】
ＤＫＣボックス１９４は、ＤＫＣ１０２を構成する制御パッケージを装着可能な複数のスロット等の構造を有する。制御パッケージは、各スロットでそれぞれ挿抜可能に接続され、制御パッケージ単位で交換可能となっている。制御パッケージは、ホストＩ/Ｆ等の各機能処理部を実装したボードを中心に含んで、キャニスタ等の電気的・機械的構造を加えて一体的にモジュール化されたものである。
【００６４】
ＳＶＰ１９６は、例えばノート型ＰＣの形態を有し、通常時には筐体内に収容され必要時に前面に取り出され使用される。パネル１９７は、ディスクアレイ装置１００の基本操作のためのスイッチや、各種情報表示を行う表示器などが配置されている。筐体内に設けられた複数のファン１９５，１９９は、筐体内の部位に対して送風することにより空冷する。ＤＫＵボックス１９８には、ＤＫＵ３００を構成する複数のＤＫ１３１等の記憶装置が、それぞれ挿抜可能に接続される。
【００６５】
＜データ処理方法＞
本実施の形態のデータ処理システムにおけるデータ処理方法として、ＣＣＷチェイン４０２の処理形式の概要は以下である。図１中にも各部間でのデータの流れを示している。本システムで、ホスト１０１は、複数のＣＣＷ４０１を発行して、それらのまとまりであるＣＣＷチェイン４０２により、ディスクアレイ装置１００で処理動作や仕事を行わせる。ホスト１０１は、ＤＫＣ１０２で連続的に実行させるＣＣＷチェイン４０２を、ホスト１０１−ＤＫＣ１０２間のチャネルを通じてＤＫＣ１０２に対しまとめて転送してＤＫＣ１０２で各ＣＣＷ４０１を順に処理させることができる。その際、ホスト１０１は、ＤＫＣ１０２で連続的にコマンド処理を実行させるために、複数のＣＣＷ４０１を、１つのデータ列となるコード４０３にエンコード処理して、コード４０３のフレーム４０４をチャネルで一括転送することができる。そして、ＤＫＣ１０２でコード４０３をデコード処理して実行させることにより、前記複数のＣＣＷ４０１を一括処理させる。
【００６６】
ホスト１０１は、ＭＳ１１２の領域に、ＣＣＷチェイン４０２を生成する。ＣＣＷチェイン４０２として、例えば前記図９に示すような、ＤＫＣ１０１側での状態や処理結果に応じた条件分岐を含む内容のＣＣＷチェイン８０２が生成される。ＣＣＷチェイン８０２において、一部のＣＣＷ８０１に、例えばＤＫＣ１０２側でのサーチ条件の記述が含まれる。前記条件分岐を含むＣＣＷチェイン８０２を実行したい場合、ホスト１０１は、エンコード処理により、コード４０３の形式で処理する。
【００６７】
ＣＣＷチェイン４０２が条件分岐を含まないものである場合は、例えば、従来の処理のように、ＣＨ１１３が、ＤＫＣ１０２のＰＯＲＴ１２１との間のチャネルのパス１０４において、そのＣＣＷチェインを各ＣＣＷのフレーム８０３の状態で連続的に転送して処理させることができる。
【００６８】
ホスト１０１は、ＤＫＣ１０２側の状態や処理結果に応じた条件分岐の処理を含むＣＣＷチェイン８０２を実行する際に、複数のＣＣＷ４０１をもとに、前記エンコード処理により、前記条件分岐の制御の記述をＣＣＷ４０５の形で含む形式の１つのコード４０３を作成する。そして、ホスト１０１は、作成したコード４０３を、チャネルのパス１０４で一括処理用のコマンドのフレーム４０４としてＤＫＣ１０２へ送信する。
【００６９】
そして、ＤＫＣ１０２は、ホスト１０１から受信したフレーム４０４から取り出したコード４０３を先頭から順にデコード処理して、デコードにより取得される各ＣＣＷ４０５についてＣＣＷ処理を実行してゆく。ホスト１０１は、ＤＫＣ１０２でのＣＣＷ処理の進行をホスト１０１側から制御するために、前記エンコード処理により作成されるコード４０３中に、元のＣＣＷ４０１とは異なるＣＣＷ４０５も用いる。これにより、コード４０３中に含まれたＣＣＷチェインは、元のＣＣＷチェイン４０２とは異なるチェインとなっている。
【００７０】
ＤＫＣ１０２は、コード４０３の処理中、特に前記条件分岐の制御の記述が含まれていた場合は、その記述に従ってＣＣＷ処理を分岐させる。例えばＤＫＣ１０２は、デコードされたコマンドのパラメータ等における条件の記述に従って条件判定処理などを実行し、処理結果に従って、分岐先となるコマンドを実行して行く。そして、ＤＫＣ１０２は、記述に従って所定のＣＣＷ４０５で処理を終了する。そして、ＤＫＣ１０２は、記述に従って、処理終了時の状態や終了位置に応じたステータス情報を、応答としてホスト１０１へ返す。前記ステータス情報は、例えばコード４０３中に含まれるＣＣＷのパラメータで記述される。ホスト１０１は、ＤＫＣ１０２から応答のステータス情報を受信し、これにより、１つのコード４０３に対応した複数のＣＣＷ４０１についての処理の終了を認識する。
【００７１】
ホスト１０１は、例えば、前記処理の終了の認識に基づき、次に発行するＣＣＷ等を決定する。また例えば、ホスト１０１は、複数のＣＣＷ４０１の一括処理における応答ステータスにおいて、処理を正常に終了できなかったことを示す異常（エラー）ステータスをＤＫＣ１０２から受領した場合は、その応答ステータスのリターンコード（ＲＣ）で示される処理終了状態や位置に応じたエラー処理や終了位置のＣＣＷについてのリカバリ処理などを実行する。
【００７２】
本例では、ＣＣＷチェイン４０２の処理の詳細は、以下のような流れとなる。ホスト１０１は、プログラムを実行しているＩＰ１１１が、ＣＣＷ４０１やＣＣＷチェイン４０２を発行し、ＭＳ１１２等の領域に格納する。例として図９に示すＣＣＷチェイン８０２が発行される。ＣＨ１１３は、ＣＣＷチェイン８０２を、エンコードプログラム１１５の実行によりエンコード処理して、１つのコード４０３を作成する。ＣＨ１１３は、作成したコード４０３を、チャネルプログラムの実行により、ＤＫＣ１０２のＰＯＲＴ１２１との間のチャネルのパス１０４において、一括処理用コマンドのフレーム４０４の状態でＰＯＲＴ１２１に対して送信する。ＤＫＣ１０２のＰＯＲＴ１２１は、受信したフレーム４０４からコード４０３を取り出し、ＤＴＣ１２４を介してＣＰ１２３へ送る。ＤＫＣ１０２は、ＣＰ１２３で、コード４０３をデコードプログラム１２６の実行によりデコード処理して、デコードにより取得される各ＣＣＷ４０５に対応した処理を、条件分岐の制御の記述に従って実行する。ＤＫＣ１０２は、ＣＣＷチェイン８０２に対応したコード４０３の処理を終了すると、その結果を示すＲＣを含んだ応答ステータスを、ＰＯＲＴ１２１からＣＨ１１３へ送信する。ホスト１０１は、ＣＨ１１３で受信した応答ステータスに含まれるＲＣを参照し、ＣＣＷチェイン８０２の処理の結果を認識する。ホスト１０１は、応答ステータスにより処理終了状態を認識してＩＰ１１１に報告する。ホスト１０１は、ＲＣによりエラー発生箇所を特定して次の処理をどうするか等を決定できる。
【００７３】
このように、ホスト１０１は、ＩＰ１１１やＣＨ１１３でＣＣＷチェイン４０２を構成する複数のＣＣＷ４０１の発行・転送・実行などについて制御しながら、条件分岐の制御の記述を含む形式でコード４０３を作成してＤＫＣ１０２に転送して一括処理させる。
【００７４】
＜コード及びＣＣＷの形式＞
図３は、本システムにおけるコード４０３の作成例を示す。この表で、左の列から、番号３０１、バイト（アドレス）３０２、コード３０３、ラベル３０４、コマンド（ＣＣＷ）３０５の項目を有する。本例ではホスト１０１でのエンコード処理により作成されたデータ列をコード４０３と称している。表の右側の矢印は、各コマンド処理の実行順や分岐や終了の様子を示す。なおＣＣＷとコマンドを同義で用いている。
【００７５】
一番左の列の番号３０１は、各行のＣＣＷを識別するために便宜的に付けた番号で、ＣＣＷ及び処理・制御の１ステップに対応しており、転送等の際のコード４０３中には必要無い。本例では、当該コード４０３の作成の元となる複数のＣＣＷ４０１から、番号＃１〜＃１４で示す各ＣＣＷから成る１つの一括処理単位となるデータが構成される。アドレス３０２は、メモリ領域におけるＣＣＷを格納しているアドレスを示す。括弧中の「ｘ〜」は、当該アドレスの１６進数表記である。コード３０３は、元となるＣＣＷ４０１からエンコード処理により作成された、コマンドコードやパラメータ等を含んだデータ列である。コード３０３の項目の部分が繋がることで１つのコード４０３となる。ラベル３０４は、例えば、分岐先を識別する名称である。コマンド３０５は、当該行のＣＣＷ及びコード３０３に対応するコマンド（ＣＣＷ）名称である。また表中でわかりやすくするために区切り（スペース）を入れているが、実際のコード４０３中には必要無い。
【００７６】
本例で、＃１，５，９は、「ＴＥＳＴ  ＭＥＭ」コマンドに対応する。＃１１は、「Ｔ＆Ｓ」コマンドに対応する。＃２，６，１０は、「Ｇｏ  Ｎｅｘｔ」コマンドに対応する。＃３，７，１３は、「ＡＬＷ  ＣＲＳ」コマンドに対応する。＃４，８，１２，１４は、「Ｒｅｔｕｒｎ」コマンドに対応する。また、＃５のラベルが「Ｎｅｘｔ１」であり、これは＃２の「Ｇｏ  Ｎｅｘｔ１」コマンドのジャンプ先となる。同様に、＃９の「Ｎｅｘｔ２」が＃６のジャンプ先であり、＃１３の「Ｎｅｘｔ３」が＃１０のジャンプ先である。
【００７７】
本実施の形態で一例として用いた各ＣＣＷ４０１，４０５の内容とそれに対応する処理は以下である。図３で、まず、「ＴＥＳＴ  ＭＥＭ」（テストメモリ）コマンドは、コマンドコードが「８Ｂ」、コマンドコードに続くサブコードが「１０」であり、その機能は、ＤＫＣ１０２内のメモリ領域と、当該コマンドのパラメータとを比較して、条件に一致するかをテストするものである。パラメータは、判定処理のための条件となる値などである。ＤＫＣ１０２では、このテストの結果が前記条件の一致か不一致かに応じて、条件分岐の制御の記述に従って、次に実行するコード部分及びＣＣＷが決定される。
【００７８】
「ＴＥＳＴ  ＭＥＭ」コマンドで、例えば、ＤＫＣ１０２は、コマンドのパラメータの値「0100 0000 0200 0001」とＤＫＣ１０２内の所定メモリ領域の値とを比較するサーチ処理を行い、それらが一致する場合はサーチ条件一致ステータス、一致しない場合はサーチ条件不一致ステータスを返す。
【００７９】
「Ｔ＆Ｓ」（テストアンドセット）コマンドは、コマンドコードが「８Ｂ」、サブコードが「１１」である。当該コマンドの機能は、前記「ＴＥＳＴ  ＭＥＭ」コマンドと同様にＤＫＣ１０２内のメモリ領域とパラメータとを比較して条件に一致するかをテストし、更に条件が一致の場合に前記ＤＫＣ１０２のメモリ領域にそのパラメータの値を書き込むものである。
【００８０】
「Ｒｅｔｕｒｎ」（リターン）コマンドは、コマンドコードが「８３」、サブコードが「０２」である。当該コマンドの機能は、パラメータの値が「００」の場合は正常終了し、パラメータの値が「００」以外の場合は、処理終了状態を示すＲＣにそのパラメータの値を付加してホスト１０１に応答ステータスとして報告させるものである。
【００８１】
「Ｇｏ  Ｎｅｘｔ」（ゴーネクスト）コマンドは、コマンドコードが「８３」、サブコードが「０８」であり、その機能は、直前のＴＥＳＴ系コマンド（前記「ＴＥＳＴ  ＭＥＭ」や「Ｔ＆Ｓ」コマンド）の処理結果に応じて処理の分岐を行わせるジャンプ命令である。条件分岐の制御は、例えば、前記直前のコマンドにおける条件の成立時すなわち前記条件一致ステータス等の時に、当該コマンドの次のステップのアドレスに移り、前記条件の不成立時すなわち前記条件不一致ステータス等の時に、当該コマンドのパラメータで指定されるアドレスにジャンプするものである。  エンコードプログラム１１５は、「Ｔｉｃ」コマンドについてのエンコードで、ＤＫＣ１０２側の状態や処理結果に応じた条件分岐の制御が記述されたコード部分となるように、「Ｇｏ  Ｎｅｘｔ」コマンドに変換する。
【００８２】
「ＡＬＷ  ＣＲＳ」コマンドは、コマンドコードが「８３」、サブコードが「５２」であり、その機能は、ＤＫＣ１０２の内部状態変更を行うものである。
【００８３】
図３で、本例に示すコード４０３の内容を説明する。＃１のＣＣＷで、メモリ領域のアドレス「４」に、コマンドコード「８Ｂ」及びサブコード「１０」の「ＴＥＳＴ  ＭＥＭ」コマンドのコード部分（３０３）が格納されている。そのコード３０３は「8B10 0100 0000 0200 0001」（１６進数表記）であり、「８Ｂ」で１バイト、当該コード３０３全体で１０バイトのサイズである。当該コマンドのパラメータ「0100 0000 0200 0001」は、テストにおける条件となる値である。
【００８４】
＃２で、アドレス「１４」に、コマンドコード「８３」及びサブコード「０８」の「Ｇｏ  Ｎｅｘｔ１」コマンドのコード部分が格納されている。当該コード３０３は「8308 0017」であり、サイズは４バイトである。また当該コマンドのパラメータは「0017」であり、ジャンプ先となるラベル「Ｎｅｘｔ１」に対応したアドレス（１６進数表記）を示す。当該コマンドで、直前の＃１のコマンドからの応答ステータスで条件一致ステータス時には、ジャンプ先となるラベル「Ｎｅｘｔ１」へジャンプし、不一致ステータス時には、次の＃３のアドレスへ移る。
【００８５】
＃３で、アドレス「１８」に、コマンドコード「８３」及びサブコード「５２」のコマンド「ＡＬＷ  ＣＲＳ」のコード部分が格納されている。当該コマンドのパラメータは無しで、コード３０３は「8352」であり、サイズは２バイトである。
【００８６】
＃４で、アドレス「２０」に、コマンドコード「８３」及びサブコード「０２」の「Ｒｅｔｕｒｎ（８）」コマンドのコード部分が格納されている。当該コマンドのパラメータは「０８」で、コード３０３は「8302 08」であり、サイズは３バイトである。パラメータ「０８」はリターンコード（ＲＣ）となる値「０８」（１０進数表記）を示す。当該コマンドの実行により、ＤＫＣ１０２は、ホスト１０１へＲＣ「０８」を含む応答ステータスを返し、ＤＫＣ１０２側の処理を終了する。
【００８７】
次に、＃５において、アドレス「２３（ｘ００１７）」に、前記＃１と同様に、「ＴＥＳＴ  ＭＥＭ」コマンドのコード部分が格納されている。当該コマンドのラベル３０４は「Ｎｅｘｔ１」である。当該コマンドは、前記＃１のコマンドのパラメータとは別の値でテストを行うためのものである。以下＃５〜８において、前記＃１〜４と同様に、各ＣＣＷのコード部分が格納される。＃６で、アドレス「３３」に、「Ｇｏ  Ｎｅｘｔ２」コマンドのコード部分が格納される。当該コマンドのパラメータは「002A」であり、ジャンプ先となるラベル「Ｎｅｘｔ２」に対応したアドレスを示す。＃７で、アドレス「３７」に、「ＡＬＷ  ＣＲＳ」コマンドのコード部分が格納される。＃８で、アドレス「３９」に、「Ｒｅｔｕｒｎ（１６）」コマンドのコード部分が格納される。当該コマンドのパラメータは「１０」であり、ＲＣ「１６」を示す。
【００８８】
次に、＃９において、アドレス「４２（ｘ００２Ａ）」に、同様に、「ＴＥＳＴ  ＭＥＭ」コマンドのコード部分が格納されている。当該コマンドのラベル３０４は「Ｎｅｘｔ２」である。当該コマンドは、前記＃１，５のコマンドのパラメータとは別の値でテストするためのものである。次に＃１０において、アドレス「５２」に、「Ｇｏ  Ｎｅｘｔ３」コマンドのコード部分が格納されている。当該コマンドのパラメータは「００４３」であり、ジャンプ先となるラベル「Ｎｅｘｔ３」に対応したアドレスを示す。
【００８９】
次に＃１１において、アドレス「５６」に、コマンドコード「８Ｂ」及びサブコード「１１」の「Ｔ＆Ｓ」コマンドのコード部分が格納されている。当該コマンドのパラメータは「ffnn nnnn nnnn」であり、ＤＫＣ１０２のメモリ領域へのセット対象となる値を表わす。当該コマンドのコード３０３は「8B11 ffnn nnnn nnnn」であり、サイズは８バイトである。
【００９０】
次に＃１２において、アドレス「６４」に、「Ｒｅｔｕｒｎ（００）」コマンドのコード部分が格納されている。当該コマンドのパラメータは「００」であり、ＲＣ「００」を示す。当該コマンドの実行により、ＤＫＣ１０２は、ホスト１０１へ、ＲＣ「００」を含む正常ステータスを返して終了する。
【００９１】
次に＃１３において、アドレス「６７（ｘ００４３）」に、「ＡＬＷ  ＣＲＳ」コマンドのコード部分が格納されている。当該コマンドのラベル３０４は「Ｎｅｘｔ３」である。当該コマンドのコード３０３は「8352」である。
【００９２】
次に＃１４において、アドレス「６９」に、「Ｒｅｔｕｒｎ（２４）」コマンドのコード部分が格納されている。当該コマンドのパラメータは「１８」であり、ＲＣ「２４」を示す。
【００９３】
＜コマンドのフレーム＞
図４は、ＣＣＷの一括処理のために用意した新しいコマンドのフレーム４０４の形式を示す。本コマンドは、複数のＣＣＷ４０１の転送及び一括処理に当たって、そのデータ（コード４０３）を１つのフレームで転送するために用いる。コード４０３は、本一括処理用のコマンドのパラメータとなる。本コマンドは、条件分岐を含まない複数のＣＣＷ４０１の一括転送のケースと、条件分岐を含む複数のＣＣＷ４０１の一括処理のケースとのいずれにも使用可能である。
【００９４】
本コマンドのフレーム４０４において、当該コマンドを示すコマンドコード５０１、チェイン有無を示すフラグであるチェイン５０２、コマンドのパラメータ（内容データ）５０３の領域を有する。フレーム４０４において、コマンドコード５０１は例えば「Ｅ７」である。チェイン５０２は、例えば「無し」とセットされる。パラメータ５０３は、例えば前記エンコード処理で作成したコード４０３が内容データとしてセットされる。
【００９５】
ホスト１０１は、一括処理の実行の際、一括処理の対象となるＣＣＷ４０１を元に、ＣＨ１１３におけるエンコード処理でコード４０３を作成する。ＣＨ１１３は、作成したコード４０３をコマンドコード「Ｅ７」のフレーム４０４のパラメータ５０３として、チェイン５０２及び転送元／転送先アドレス等の情報を付加してフレーム４０４を作成し、ＰＯＲＴ１２１に対して送信する。
【００９６】
＜データ処理シーケンス＞
図５は、ホスト１０１とＤＫＣ１０２の間でＣＣＷ４０１の一括処理を行う場合のデータ処理のシーケンスを示す。ステップＳ１で、ホスト１０１のＣＨ１１３は、一括処理のために作成したコマンドのフレーム４０４を、ＤＫＣ１０２のＰＯＲＴ１２１へ送信する。ＤＫＣ１０２は、ＰＯＲＴ１２１でフレーム４０４を受信し、コード４０３を取り出す。そして、ＰＯＲＴ１２１でコード４０３のコード部分を順にデコード処理して、デコードにより取得される各ＣＣＷ４０５を判断して、例えばＤＴＣ１２４を介してＣＰ１２３に送る。そしてＣＰ１２３で各ＣＣＷ４０５についてのＣＣＷ処理を実行する。そして、Ｓ２またはＳ３で、ＣＰ１２３でのＣＣＷ処理結果に応じて、処理の正常終了／異常終了ケースに応じたステータス情報や、条件分岐に応じた処理終了ケースに応じたＲＣを含むステータス情報を、ＰＯＲＴ１２１から応答ステータスとしてＣＨ１１３へ送信する。Ｓ２は、正常終了ケースの場合にＲＣ「００」を含む正常ステータスが返された場合、Ｓ３は、異常終了ケースの場合に終了状態や位置に応じたＲＣを含む異常ステータスが返された場合である。ホスト１０１は、ＤＫＣ１０２からの応答ステータスを受信して、処理終了状態や位置を認識でき、それに応じて次の処理を決定できる。
【００９７】
コード４０３の処理形式の詳細は以下である。以下、コード４０３における各番号３０１の行のコード部分をコマンド行と称する。コード４０３の処理の形式として、デコードプログラム１２６の処理により基本的に番号順にコマンド行を実行させ、「Ｇｏ  Ｎｅｘｔ」コマンドでは、直前の「ＴＥＳＴ  ＭＥＭ」コマンドでの処理結果のステータスに応じて、一致ステータスの場合には次のコマンド行のアドレスに移り、また、不一致ステータスの場合には当該コマンド行のパラメータで示されるジャンプ先のアドレスへとジャンプする。処理を分岐しながら、いずれかの「Ｒｅｔｕｒｎ」コマンドの実行によりコード４０３の処理を終了して指定のＲＣを返す。
【００９８】
ＤＫＣ１０２は、＃１のコマンド行を実行後、＃２のコマンド行の実行において、＃１のコマンド行の処理結果のステータスが、一致ステータスの場合、＃２によりジャンプせずに次の＃３のコマンド行に移る。不一致ステータスの場合、＃２の実行に従って、指定のアドレス（ラベル「Ｎｅｘｔ１」）へとジャンプする。前記＃２で一致ステータスの場合、ＤＫＣ１０２は、＃３，４のコマンド行を順に実行し、ＲＣ「０８」をホスト１０１へ返して終了する。前記＃２で不一致ステータスの場合、ＤＫＣ１０２は、＃５〜＃８で同様に処理する。＃５で一致ステータスの場合は、＃８でＲＣ「１６」をホスト１０１へ返して終了する。
【００９９】
ＤＫＣ１０２は、＃９のコマンド行の実行後、＃１０のコマンド行の実行において、＃９の処理結果のステータスが、一致ステータスの場合、＃１０によりジャンプせずに次の＃１１のコマンド行に移る。不一致ステータスの場合、＃１０の実行に従って、指定のアドレス（ラベル「Ｎｅｘｔ１」）へとジャンプする。前記＃１０で一致ステータスの場合、ＤＫＣ１０２は、＃１１，１２のコマンド行を順に実行して、ＲＣ「００」をホスト１０１へ返して終了する。前記＃９で不一致ステータスの場合、ＤＫＣ１０２は、＃１３，＃１４のコマンド行を順に実行してＲＣ「２４」をホスト１０１へ返して終了する。
【０１００】
＜ホスト処理＞
次に、本システムにおける各処理のフローを説明する。図６は、ホスト１０１でＣＨ１１３がエンコード処理を行う場合の処理を示すフロー図である。また、図７は、ＤＫＣ１０２でＰＯＲＴ１２１がデコード処理を行う場合の処理を示すフロー図である。特に、図９に示すＣＣＷチェイン８０２から図３に示すコード４０３を作成して一括処理する場合を説明する。なお説明中におけるオフセットとは、プログラムによるコード４０３の処理中における制御ステップの位置を示す。
【０１０１】
ホスト１０１において、前提の状態として、ＩＰ１１１が、ＣＣＷチェイン４０２等の複数のＣＣＷ４０１を生成してＭＳ１１２に格納している。ＣＨ１１３では、チャネルプログラムの実行により、通常のチャネル入出力制御処理と共に、複数のＣＣＷ４０１の一括処理に係わるエンコード処理などを行う。ＣＨ１１３は、エンコードプログラム１１５を実行して、複数のＣＣＷ４０１のエンコード処理を行う。チャネルプログラムは、実行対象コマンドを示すコマンドワード、チェイン等を示すフラグ情報、転送対象を示す転送カウント、メモリにおけるデータやパラメータの位置を示すアドレス等を管理する。
【０１０２】
ステップＳ１で、ＣＨ１１３のチャネルプログラムが、ＭＳ１１２から、コマンド（ＣＣＷ４０１）、フラグ、転送カウント等のデータや情報を１つずつ取り込む。次に、Ｓ２で、チャネルプログラムは、プログラムカウンタを更新する。次に、Ｓ３で、チャネルプログラムは、取り込んだコマンドが「Ｔｉｃ」コマンド等の条件分岐系のコマンドかどうか判断する。
【０１０３】
前記Ｓ３で「Ｔｉｃ」コマンドでない場合（Ｓ３−ＮＯ）、Ｓ４で、チャネルプログラムは、コマンドをチャネルプログラム管理領域に格納する。次に、Ｓ５で、チャネルプログラムは、ＤＫＣ１０２側への転送のためのデータバッファに、コマンドのコマンドコードを格納する。次に、Ｓ６で、チャネルプログラムは、コマンドコードに続けて、それに対応するデータやパラメータをＭＳ１１２から取り込み、前記データバッファに格納する。これによりコマンドとパラメータ等がコード部分にエンコードされたことになる。次に、Ｓ７で、チャネルプログラムは、１つのコマンドについてのエンコードを終えたので、オフセット更新し、Ｓ１２へ移る。
【０１０４】
前記Ｓ３で「Ｔｉｃ」コマンドである場合（Ｓ３−ＹＥＳ）、Ｓ８〜Ｓ１０で図３の＃２〜４のような各コマンドにエンコードすることになる。まず、Ｓ８で、チャネルプログラムは、チャネルプログラム管理領域に、「Ｇｏ  Ｎｅｘｔ」コマンドを、オフセットに９バイトを加えたアドレスをパラメータとしてセットして、格納する。「Ｔｉｃ」コマンドをエンコードして作成されるコマンドの総サイズが本例では９バイトになるので、当該コマンドのパラメータ（ジャンプ先アドレス）が「オフセット＋９」となる。次に、Ｓ９で、チャネルプログラムは、「ＡＬＷ  ＣＲＳ」コマンドを、チャネルプログラム管理領域に格納する。次に、Ｓ１０で、チャネルプログラムは、「Ｒｅｔｕｒｎ」コマンドとそのＲＣを設定する。次に、Ｓ１１で、チャネルプログラムは、「Ｔｉｃ」コマンドについてのエンコードを終えたので、オフセット更新し、Ｓ１２へ移る。
【０１０５】
Ｓ１２で、チャネルプログラムは、エンコード処理したコマンドに関するチェインの有無の判定を行う。次のコマンドへのチェインが有る場合、Ｓ１に戻り次のコマンドについて同様の処理を繰り返す。次のコマンドへのチェインが無い場合、コード部分の繋がりからなるコード４０３が作成されたので、このコード４０３についてのフレーム送信処理へ移行する。ＣＨ１１３は、コード４０３にヘッダ情報等を付与して、一括処理用のコマンドのフレーム４０４を作成し、従来のフレーム転送処理制御に従って、フレーム４０４をＰＯＲＴ１２１との間で転送処理する。
【０１０６】
エンコードプログラム１１５の処理では、最初（＃１）のＣＣＷである「ＴＥＳＴ  ＭＥＭ」コマンドについて、コマンドコード「８Ｂ」とパラメータ（「10010000……」）とをまとめて、図３の＃１に示す１つのコード部分(コード３０３)にする。「ＴＥＳＴ  ＭＥＭ」コマンドでは、ＤＫＣ１０２で行わせる処理の条件のパラメータをセットする。次のＣＣＷについて、同様にコード部分にまとめるようにエンコード処理し、作成されたコード部分をエンコード済みのコード部分の後ろに加える。
【０１０７】
エンコードプログラム１１５の処理では、ＣＣＷにおいて、ＤＫＣ１０２の状態や処理結果に応じた条件分岐のためのジャンプ命令である「Ｔｉｃ」コマンドについては、「Ｇｏ  Ｎｅｘｔ」コマンドを含むコード部分にエンコードする。エンコードプログラム１１５の処理で、ＤＫＣ１０２での条件の一致や不一致の各場合に応じて異なるアドレスを実行させる条件分岐の制御となるように、「Ｇｏ  Ｎｅｘｔ」コマンド、そのジャンプ先のアドレス、及び各分岐先のＣＣＷ等をコード４０３中のコード部分として作成する。前記条件不一致の場合に実行させるアドレスがコード４０３全体のどの位置になるかを、前記条件一致の場合に実行させるＣＣＷを考慮して計算し、「Ｇｏ  Ｎｅｘｔ」コマンドでのジャンプ先となるアドレスのバイト数をパラメータとして付加する。
【０１０８】
本実施の形態では、条件を含んだ「ＴＥＳＴ  ＭＥＭ」コマンドの後に、このコマンドでのＤＫＣ１０２の状態や処理結果に応じて条件不一致となる場合に実行させる「Ｇｏ  Ｎｅｘｔ」コマンドを記述し、その次に、条件一致となる場合に実行させる、他方の分岐先となるコマンド（「ＡＬＷ  ＣＲＳ」等）を記述する。
【０１０９】
また、エンコードプログラム１１５の処理では、チェイン無しの状態で終わるＣＣＷについて、コード４０３全体に対応した処理における終了状態や位置が認識できるように、「Ｒｅｔｕｒｎ」コマンドとそのリターンコード（ＲＣ）とのコード部分を付加する。
【０１１０】
ホスト１０１は、ＤＫＣ１０２から受信した応答ステータスに含まれるＲＣから、ＤＫ１０２側におけるコマンド処理での終了状態や位置を認識できる。ホスト１０１は、受領したＲＣから、ＭＳ１１２内に格納している、コード４０３の作成の元となったＣＣＷ４０１やＣＣＷチェイン４０２におけるどのアドレスで処理が終了したかを判断する。ホスト１０１は、処理終了位置のアドレスに従って何らかの処理動作、例えばＣＣＷの異常終了時における終了状態に対応したエラー処理や、該当ＣＣＷについてのリカバリ処理や、正常終了時における次の処理などを決定して実行可能となる。
【０１１１】
＜ＤＫＣ処理＞
図７において、ＰＯＲＴ１２１では、ＣＣＷ４０１のフレームの受信や複数のＣＣＷ４０１の一括処理に係わる処理を行う。ＰＯＲＴ１２１では、デコードプログラム１２６の実行によりデコード処理を行う。またＣＰ１２３では、制御プログラムの実行により各ＣＣＷ４０５についてのコマンド処理を実行する。デコード処理で基本的にはコード４０３の先頭から順にコード部分をデコードして各ＣＣＷ（コマンドコード及びパラメータ等）を取得し、ＣＰ１２３で対応するＣＣＷ処理を実行する。ＤＫＣ１０２は、コード部分のＣＣＷ４０５に「Ｇｏ  Ｎｅｘｔ」コマンド等により条件分岐の制御が記述されていた場合には、分岐先となるステップへ制御を移動して実行し、分岐に応じた処理の終了における「Ｒｅｔｒｕｎ」コマンドの実行によって、１つのコード４０３の処理を終了する。
【０１１２】
Ｓ２１で、ＰＯＲＴ１２１は、フレーム４０４を格納した受信バッファからコード４０３を取得する。次に、Ｓ２２で、ＰＯＲＴ１２１は、オフセットカウンタをクリアする。次に、Ｓ２３で、ＰＯＲＴ１２１は、オフセットカウンタの示すオフセット位置に従って、コード４０３のコード部分を順にデコード処理してゆくことにより、コード部分に対応したＣＣＷ（コマンド）４０５を取得する。
【０１１３】
次に、Ｓ２４で、ＰＯＲＴ１２１は、取得したＣＣＷ４０５のコマンドコードを解析する。解析の結果、当該ＣＣＷ４０５がWriteコマンドの場合はＳ２５へ、「ＴＥＳＴ」系コマンドの場合はＳ２８へ、ＤＫ１３１への書き込み処理制御等の制御系コマンドの場合はＳ３２へ、「Ｔｉｃ」に対応した「Ｇｏ  Ｎｅｘｔ」コマンドの場合はＳ３５へ、それぞれ移る。
【０１１４】
前記Writeコマンドの場合、Ｓ２５で、ＰＯＲＴ１２１は、書き込み対象となるデータをＣＭ１２２に転送する。次に、Ｓ２６で、ＣＰ１２３により従来のWriteコマンド処理を実行する。次に、Ｓ２７でオフセット更新し、Ｓ３９へ移る。Readコマンドの場合も同様の処理である。
【０１１５】
前記「ＴＥＳＴ」系コマンドの場合、Ｓ２８で、ＰＯＲＴ１２１は、当該コマンドのパラメータをＣＰ１２３側へ転送する。次に、Ｓ２９で、ＣＰ１２３は、従来の「ＴＥＳＴ」系コマンド処理を実行する。ＣＰ１２３は、当該コマンドにパラメータでセットされている条件に従って判定処理を行う。例えば、「ＴＥＳＴ  ＭＥＭ」コマンド処理において、条件の値とメモリ領域の値とを比較して一致か不一致かを判断する。次に、Ｓ３０で、ＣＰ１２３は、「ＴＥＳＴ」系コマンド処理による判定結果をメモリに格納する。次に、Ｓ３１でオフセット更新し、Ｓ３９へ移る。
【０１１６】
前記制御系コマンドの場合、Ｓ３２で、ＰＯＲＴ１２１は、当該コマンドのパラメータをＣＰ１２３側に転送する。次に、Ｓ３３で、ＣＰ１２３により従来の制御系コマンド処理を実行する。次に、Ｓ３４でオフセット更新し、Ｓ３９へ移る。前記特許文献１には制御系コマンドの例が記載されている。
【０１１７】
前記「Ｇｏ  Ｎｅｘｔ」コマンドの場合、Ｓ３５で、ＰＯＲＴ１２１は、当該コマンドのパラメータをＣＰ１２３側に転送する。次に、Ｓ３６で、ＣＰ１２３は、前記「ＴＥＳＴ」系コマンド処理での判定結果（Ｓ３０）を参照して、条件一致か不一致かを判断する。条件一致の場合、Ｓ３７で１ステップ先へ進むようにオフセット更新して、Ｓ３９へ移る。条件不一致の場合、Ｓ３８で、当該コマンドのパラメータ中のアドレス（すなわちジャンプ先）へと進むようにオフセットを更新し、Ｓ３９へ移る。
【０１１８】
Ｓ３９では、ＣＰ１２３によるＣＣＷ処理の結果に基づき、ＰＯＲＴ１２１は、ＣＣＷ処理の終了状態を確認する。ＣＣＷ処理で正常終了か異常終了か、及びＲＣ等を確認する。次に、Ｓ４０で、ＰＯＲＴ１２１は、送信バッファに、前記ＣＣＷ処理の終了状態に応じて、ＤＳＢ（デバイスステータスバイト）を含むステータス情報を格納する。次に、Ｓ４１で、ＰＯＲＴ１２１は、前記ステータス情報を確認して、ステータス情報としてＲＣが無い場合は、Ｓ２３へ戻りオフセットカウンタの示す位置に従って、同様にコード４０５についてのデコード及びＣＣＷ処理を続ける。ステータス情報としてＲＣが有る場合は、Ｓ４２へ移り、ＰＯＲＴ１２１は、ＲＣを含むステータス情報をセットしたフレームを作成して、ホスト１０１のＣＨ１１３へステータス応答として送信して終了する。
【０１１９】
＜効果及びその他の実施の形態＞
以上説明したように、本実施の形態では、ホスト１０１側で、コマンド進行制御として、あらかじめ条件分岐の制御を組み込んだコード４０３を作成するので、ＤＫＣ１０２側でのコマンド進行制御としては、コード４０３のコード部分を順にデコード処理して実行してゆくだけでよい。
【０１２０】
従って、ホスト１０１−ＤＫＣ１０２間で、前記ＤＫＣ１０２側の状態や処理結果に応じた条件分岐を含む複数のＣＣＷによる処理を行わせる際に一括処理でき、チャネルにおけるオーバーヘッドを軽減してパスのトラフィックを少なくでき、処理性能を向上できる。また、ホスト１０１−ＤＫＣ１０２間で、ホスト１０１がＤＫＣ１０２からの応答ステータスを待つといった、インターロックによる時間的同期処理が必要無いため、処理性能が向上できる。また、従来では、ＣＣＷチェインの処理終了位置の判定が、ＣＣＷカウンタ等の手段によるので難しかったが、本実施の形態では、ホスト１０１及びＤＫＣ１０２でＲＣにより処理終了状態や位置を明確に認識でき次の処理への移行も速やかにできる。
【０１２１】
その他の実施の形態として、ＤＫＣ１０２において、ＰＯＲＴ１２１で受信したＣＣＷ４０５等のデータや情報などをＣＭ１２２やＳＭ１２５等の領域に一旦格納し、格納されたデータや情報をＰＯＲＴ１２１やＣＰ１２３が取り出して処理するようにもできる。また、ホスト１０１において、ＩＰ１１１がエンコードプログラム１１５を実行してエンコード処理を行うようにもできる。また、本例では一旦生成済みのＣＣＷ４０１やＣＣＷチェイン４０２を元にエンコード処理してコード４０３を作成する場合を説明したが、ＩＰ１１１等が所望の処理に対応して直接にコード４０３を作成するようにもできる。また、ＤＫＣ１０２において、ＰＯＲＴ１２１がデコードプログラム１２６を実行してデコード処理及びコマンド処理を実行するようにもできる。
【０１２２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【０１２３】
本発明は、メインフレーム系のデータ処理システムなど、データ処理装置間で複数のコマンドで１つの処理動作や仕事を実行させるデータ処理システムに対して利用可能である。
【図面の簡単な説明】
【０１２４】
【図１】本発明の一実施の形態であるデータ処理システムの全体の構成及びデータ処理方法を示すブロック図である。
【図２】本発明の一実施の形態であるディスクアレイ装置の全体のハードウェア外観構成を示す斜視図である。
【図３】本発明の一実施の形態であるデータ処理システムにおけるコードの作成例を示す表である。
【図４】本発明の一実施の形態であるデータ処理システムにおける、ＣＣＷの一括処理のために用意した新しいコマンドのフレームの形式を示す説明図である。
【図５】本発明の一実施の形態であるデータ処理システムにおける、ホストとＤＫＣの間でＣＣＷの一括処理を行う場合のデータ処理のシーケンス図である。
【図６】本発明の一実施の形態であるデータ処理システムにおける、ホストでＣＨがエンコード処理を行う場合の処理を示すフロー図である。
【図７】本発明の一実施の形態であるデータ処理システムにおける、ＤＫＣでＰＯＲＴがデコード処理を行う場合の処理を示すフロー図である。
【図８】本実施の形態との比較のために、従来のデータ処理システムの構成例及びデータ処理方法を示すブロック図である。
【図９】従来のデータ処理システムの構成例におけるＣＣＷチェインの例を示す表である。
【図１０】(ａ)，(ｂ)は、従来のデータ処理システムの構成例におけるホスト−ＤＫＣ間でのＣＣＷチェインの処理を示すシーケンス図である。
【符号の説明】
【０１２５】
１００…ディスクアレイ装置、１０１…ホストコンピュータ（ホスト）、１０２…ディスク制御装置（ＤＫＣ）、１０３…ＤＫＵ（ディスクユニット）、１０４…パス、１０５…パス、１１１…演算処理部（ＩＰ）、１１２…主記憶装置部（ＭＳ）、１１３…入出力チャネル部（ＣＨ）、１１４…システムコントローラ部（ＳＣ）、１１５…エンコードプログラム、１２１…入出力ポート部（ＰＯＲＴ）、１２２…キャッシュメモリ部（ＣＭ）、１２３…制御プロセッサ部（ＣＰ）、１２４…データ転送制御部（ＤＴＣ）、１２５…共有メモリ部（ＳＭ）、１２６…デコードプログラム、１３１…ディスク装置（ＤＫ）、１９１…バッテリ、１９２…ＡＣボックス、１９３…ＡＣ−ＤＣ電源、１９４…ＤＫＣボックス、１９５，１９９…ファン、１９６…ＳＶＰ、１９７…パネル、１９８…ＤＫＵボックス、４０１，４０５…ＣＣＷ、４０２…ＣＣＷチェイン、４０３…コード、４０４…フレーム、８０１，８０５…ＣＣＷ、８０２，８０４…ＣＣＷチェイン、８０３…フレーム、９００…ディスクアレイ装置、９０１…ホスト、９０２…ＤＫＣ。
【図１】
2006277583.tif 000003
【図２】
2006277583.tif 000004
【図３】
2006277583.tif 000005
【図４】
2006277583.tif 000006
【図５】
2006277583.tif 000007
【図６】
2006277583.tif 000008
【図７】
2006277583.tif 000009
【図８】
2006277583.tif 000010
【図９】
2006277583.tif 000011
【図１０】
2006277583.tif 000012