(57)【特許請求の範囲】
【請求項１】
ホストコンピュータとの間でコマンドを用いた信号処理を行う信号処理方法において、
前記コマンドを処理するコマンド処理手段が、前記ホストコンピュータから送信された前記コマンドに応答するコマンドレスポンスを生成するステップと、前記ホストコンピュータから所定の第２のコマンドを受信すると、前記コマンドレスポンスを前記ホストコンピュータに送信した際の送信完了を示す送信確認通知の受信の有無に関わらず前記コマンドの処理を行うステップと、
前記コマンドレスポンスの前記ホストコンピュータへの送信処理が完了すると、前記ホストコンピュータと前記コマンド処理手段とを中継するインタフェースが、前記送信確認通知を前記コマンド処理手段に送るステップと、
前記コマンド処理手段が、前記送信確認通知を受け取った場合、前記送信確認通知に含まれるステータス情報に基づいて前記コマンドレスポンスが正常に行われたか否かを判断するステップと、
を有することを特徴とする信号処理方法。
【請求項２】
前記コマンド処理手段は、前記コマンドレスポンスが正常に行われていないと判断した場合、前記ホストコンピュータとの接続を切断するステップと、前記ホストコンピュータから受信した未処理の前記コマンドを廃棄するステップとを有することを特徴とする請求項１記載の信号処理方法。
【請求項３】
前記コマンド処理手段は、前記送信確認通知を受信する前に、前記コマンドの処理が終了した場合、前記送信確認通知を待機することを特徴とする請求項１記載の信号処理方法。
【請求項４】
ホストコンピュータとの間でコマンドを用いた信号処理を行う信号処理プログラムにおいて、
コンピュータを、
前記ホストコンピュータから送信された前記コマンドに応答するコマンドレスポンスを生成し、前記ホストコンピュータから所定の第２のコマンドを受信すると、前記コマンドレスポンスを前記ホストコンピュータに送信した際の送信完了を示す送信確認通知の受信の有無に関わらず前記コマンドの処理を行い、前記送信確認通知を受け取った場合、前記送信確認通知に含まれるステータス情報に基づいて前記コマンドレスポンスが正常に行われたか否かを判断するコマンド処理手段、
前記ホストコンピュータと前記コマンド処理手段とを中継し、前記コマンドレスポンスの前記ホストコンピュータへの送信処理が完了すると、前記送信確認通知を前記コマンド処理手段に送るインタフェース、
として機能させることを特徴とする信号処理プログラム。
【請求項５】
ホストコンピュータとの間でコマンドを用いた信号処理を行う信号処理装置において、
前記ホストコンピュータから送信された前記コマンドに応答するコマンドレスポンスを生成し、前記ホストコンピュータから所定の第２のコマンドを受信すると、前記コマンドレスポンスを前記ホストコンピュータに送信した際の送信完了を示す送信確認通知に関わらず前記コマンドの処理を行い、前記送信確認通知を受け取った場合、前記送信確認通知に含まれるステータス情報に基づいて前記コマンドレスポンスが正常に行われたか否かを判断するコマンド処理手段と、
前記ホストコンピュータと前記コマンド処理手段とを中継し、前記コマンドレスポンスの前記ホストコンピュータへの送信処理が完了すると、前記送信確認通知を前記コマンド処理手段に送るインタフェースと、
を有することを特徴とする信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は信号処理方法、信号処理プログラムおよび信号処理装置に関し、特に、ホストコンピュータとの間でコマンドを用いた信号処理を行う信号処理方法、信号処理プログラムおよび信号処理装置に関する。
【背景技術】
【０００２】
一般的に、ＨＯＳＴコンピュータとディスクアレイ間の通信において、データを相手に送信し、送信相手が送達確認を応答送信することで送達確認をする方法（コマンドレスポンス）が行われている（例えば、特許文献１参照）。
【０００３】
図１４は、ＨＯＳＴコンピュータとディスクアレイとの構成の一例を示す図である。
ＨＯＳＴコンピュータ４００は、ディスクアレイ５００に所定のデータ処理を実行させるコマンドを送信する。
【０００４】
ディスクアレイ５００は、ＣＡ５１０とディスク処理部５２０とディスク５３０とを有している。
ＣＡ５１０は、信号処理部５１１とＣＡＦＩＲＭ５１２とを有している。
【０００５】
信号処理部５１１は、ＨＯＳＴコンピュータ４００とＣＡＦＩＲＭ５１２との間のコマンドおよびデータのやりとりを制御する。
ＣＡＦＩＲＭ５１２は、ＣＡ５１０の全体的な動作を制御するものであり、ドライバ５１２ａとスレッド５１２ｂとを有している。
【０００６】
ドライバ５１２ａは、信号処理部５１１の駆動用ドライバである。
スレッド５１２ｂは、ディスク処理部５２０との間でＨＯＳＴコンピュータ４００から受信したコマンド処理を実行する。
【０００７】
ディスク処理部５２０は、コマンド処理内容がデータ読み取り要求であれば、ディスクにアクセスしてそのデータを取り出す。また、コマンド処理内容がデータ書込要求であれば、ディスクにアクセスしてそのデータを書き込む。
【０００８】
次に、従来の信号処理について説明する。
図１５は、従来の信号処理を示す図である。
まず、ＨＯＳＴコンピュータ４００が、ＣＭＤ（コマンド）受信通知を送信する（ステップＳ８１）。
【０００９】
信号処理部５１１は、ＣＭＤ受信通知を受信するとドライバ５１２ａに対して割り込みをかける（ステップＳ８２）。
ドライバ５１２ａは、割り込みを受けるとＣＭＤ受信通知をスレッド５１２ｂに送る（ステップＳ８３）。
【００１０】
スレッド５１２ｂは、ＣＭＤ受信通知を受け取ると、ＣＭＲ（コマンドレスポンス）送信依頼をドライバ５１２ａに返す（ステップＳ８４）。
ドライバ５１２ａは、受け取ったＣＭＲ送信依頼を信号処理部５１１に送る（ステップＳ８５）。
【００１１】
信号処理部５１１は、受け取ったＣＭＲ送信依頼をＨＯＳＴコンピュータ４００に送信する（ステップＳ８６）。そして、信号処理部５１１は、ドライバ５１２ａに対して割り込みをかける（ステップＳ８７）。
【００１２】
ドライバ５１２ａは、割り込みを受けると、送信ＳＴＳ（ステータス通知）をスレッド５１２ｂに送る（ステップＳ８８）。
スレッド５１２ｂは、送信ＳＴＳを受け取ると、ディスク処理部５２０に対してＭＳＧ（メッセージ）を送る（ステップＳ８９）。
【００１３】
ディスク処理部５２０がＭＳＧを受け取ると、スレッド５１２ｂにＭＳＧを返す（ステップＳ９０）。
これにより、スレッド５１２ｂとディスク処理部５２０との間でコマンド処理の実行を開始し、コマンド処理の実行が終了すると、スレッド５１２ｂは、ＳＴＳ送信依頼をドライバ５１２ａに送る（ステップＳ９１）。
【００１４】
ドライバ５１２ａは、受け取ったＳＴＳ送信依頼を、信号処理部５１１に送る（ステップＳ９２）。
信号処理部５１１は、受け取ったＳＴＳ送信依頼を、ＨＯＳＴコンピュータ４００に送る（ステップＳ９３）。
【００１５】
以上で処理が終了する。
【特許文献１】特開２００５−１７４０９７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
図１５の処理では、ＣＭＲの送信が完了しないと以降の送信に必要な情報が得られないため、スレッド５１２ｂが送信完了の待ち合わせを行っている（ステップＳ８４〜ステップＳ８８）。
【００１７】
しかしながら、一般的にＨＯＳＴコンピュータ４００のＩ／Ｏ処理時間は、待ち合わせ時間に対して相対的に短く、この待ち合わせ時間によるＩ／Ｏ処理の遅延に対する影響が大きいという問題がある。
【００１８】
本発明はこのような点に鑑みてなされたものであり、Ｉ／Ｏ処理の高速化を図ることを目的とする。
【課題を解決するための手段】
【００１９】
本発明では上記問題を解決するために、図１に示す信号処理方法が提供される。本発明に係る信号処理方法は、ホストコンピュータ１との間でコマンドを用いた信号処理を行う方法である。
【００２０】
この信号処理方法は、以下のステップを有する。
コマンドを処理するコマンド処理手段２が、ホストコンピュータ１から送信されたコマンドに応答するコマンドレスポンスを生成する（ステップＳ１０１）。
【００２１】
送信確認通知に関わらずコマンドの処理を行い、送信確認通知の受け取りを待機する（ステップＳ１０２）。
ホストコンピュータ１とコマンド処理手段２とを中継するインタフェース３が、コマンドレスポンスをホストコンピュータ１に送信した際の送信完了を示す送信確認通知をコマンド処理手段２に送る（ステップＳ１０３）。
【００２２】
コマンド処理手段２が、送信確認通知を受け取った場合、コマンドレスポンスが正常に行われたか否かを判断する（ステップＳ１０４）。
このような信号処理方法によれば、コマンド処理手段２により、ホストコンピュータ１から送信されたコマンドに応答するコマンドレスポンスが生成される。そして、送信確認通知に関わらずコマンドの処理が行われ、送信確認通知の受け取りが待機される。インタフェース３により、コマンドレスポンスをホストコンピュータ１に送信した際の送信完了を示す送信確認通知がコマンド処理手段２に送られる。その後、コマンド処理手段２により送信確認通知が受信された場合、コマンドレスポンスが正常に行われたか否かが判断される。
【発明の効果】
【００２３】
本発明によれば、送信確認通知に関わらずコマンドの処理を実行するようにしたので、Ｉ／Ｏ処理の高速化を図ることができる。また、コマンドの処理の実行開始後に送信確認通知の受け取りを待機し、送信確認通知を受け取った場合、コマンドレスポンスが正常に行われたか否かを判断するようにしたので、その正否に応じた処理を行うことができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
【００２５】
図１は、実施の形態に適用される発明を示す概要図である。図１に示すような信号処理方法が提供される。この信号処理方法は、主としてコンピュータとホストコンピュータとの間で行う信号処理に適用されるものであり、以下の処理を、コンピュータを用いて実行する。
【００２６】
コンピュータは、ホストコンピュータ１から送信されるコマンドを処理するコマンド処理手段２と、ホストコンピュータ１とコマンド処理手段２とを中継するインタフェース３とを有している。以下、図１に示す処理を説明する。
【００２７】
コマンド処理手段２が、ホストコンピュータ１から送信されたコマンドに応答するコマンドレスポンスを生成する（ステップＳ１０１）。
送信確認通知に関わらずコマンドの処理を行い、送信確認通知の受け取りを待機する（ステップＳ１０２）。
【００２８】
インタフェース３が、コマンドレスポンスをホストコンピュータ１に送信した際の送信完了を示す送信確認通知をコマンド処理手段２に送る（ステップＳ１０３）。
コマンド処理手段２が、送信確認通知を受け取った場合、コマンドレスポンスが正常に行われたか否かを判断する（ステップＳ１０４）。
【００２９】
このような信号処理方法によれば、コマンド処理手段２により、ホストコンピュータ１から送信されたコマンドに応答するコマンドレスポンスが生成される。そして、送信確認通知に関わらずコマンドの処理が行われ、送信確認通知の受け取りが待機される。インタフェース３により、コマンドレスポンスをホストコンピュータ１に送信した際の送信完了を示す送信確認通知がコマンド処理手段２に送られる。その後、コマンド処理手段２により送信確認通知が受信された場合、コマンドレスポンスが正常に行われたか否かが判断される。
【００３０】
以下、本発明の実施の形態を具体的に説明する。
図２は、実施の形態の信号処理システムを示すブロック図である。
信号処理システム３００は、複数のＲＡＩＤ制御装置１００とＨＯＳＴ（ホスト）コンピュータ２００とがネットワーク１０を介して接続されている。
【００３１】
ＨＯＳＴコンピュータ２００は、種々のコマンドを使用して各ＲＡＩＤ制御装置１００との間で、ＩＵ（information unit）送信を行うことによりデータの入出力処理（Ｉ／Ｏ処理）を行う。具体的には、ＨＯＳＴコンピュータ２００は使用するＲＡＩＤ制御装置１００を特定する。そして、特定したＲＡＩＤ制御装置１００内に存在する複数のＤＩＳＫ（後述）のうち、使用するＤＩＳＫおよび、そのＤＩＳＫに対する処理内容（リード処理であるかライト処理であるか）に関する指示を送信する。その後、実際にデータの入出力処理を行うためのリードコマンドまたはライトコマンドを送信する。このＩ／Ｏ処理については後に詳述する。
【００３２】
図３は、信号処理システムのハードウェア構成例を示す図である。
ＨＯＳＴコンピュータ２００は、ＣＨ（Channel）２１０を有している。
ＣＨ２１０は、ＲＡＩＤ制御装置１００に対して所定の処理を実行させるコマンドの送受信部を構成しており、コマンドを送信した後に、そのコマンドに対する応答であるＣＭＲの受信を待機する。そしてＣＭＲを受信すると、ＨＯＳＴコンピュータ２００側から送信したコマンドが正しく受領された（伝わった）と判断する。
【００３３】
ＲＡＩＤ制御装置１００は、ＣＡ（Channel Adapter）１１０とＣＭ（central module）１２０と、複数（本実施の形態では３つ）のＤＩＳＫ１３０、１４０、１５０とを有している。
【００３４】
ＣＡ１１０は、ＨＯＳＴコンピュータ２００との接続を制御する。
ＣＭ１２０は、Ｃａｃｈｅ１２１を有しており、コマンド処理内容がデータ書込（ライト）要求であれば、ＤＩＳＫにアクセスしてそのデータを書き込む。また、コマンド処理内容がデータ読み取り（リード）要求であれば、選択したＤＩＳＫにアクセスしてそのデータを取り出す。
【００３５】
ＤＩＳＫ１３０、１４０、１５０は、ディスクアレイを構成しており、それぞれＨＯＳＴコンピュータ２００から書き込まれるデータを記憶する記憶領域を備えている。
次に、ＣＡ１１０のハードウェア構成について説明する。
【００３６】
図４は、ＣＡのハードウェア構成例を示す図である。
ＣＡ１１０は、ＳＦＰ１０１とＩＳＰチップ（プロトコル制御チップ）１０２と、制御チップ（chip）１０３、１０６と、ＣＰＵ(Central Processing Unit)１０４とメモリ１０５とバッファ１０７とを有している。
【００３７】
ＳＦＰ１０１は、トランシーバモジュールを構成しており、ＣＨ２１０からのコマンドを受信すると、そのコマンドをＩＳＰチップ１０２に渡す。また、ＩＳＰチップ１０２からのコマンドを受け取ると、ＣＨ２１０に送信する。
【００３８】
ＩＳＰチップ１０２は、ＣＰＵ１０２ａを有している。ＩＳＰチップ１０２を動作させるプログラムはＣＰＵ１０２ａ上で動作する。このＩＳＰチップ１０２は、ＳＦＰ１０１からコマンドを受けとると制御チップ１０３に割り込み信号を送る。また、制御チップ１０３からＣＭＲ送信依頼を受け取ると、そのＣＭＲ送信依頼をＳＦＰ１０１に送るとともに、制御チップ１０３にＣＭＲ送信完了割り込みを返す。
【００３９】
制御チップ１０３は、ＩＳＰチップ１０２とＣＰＵ１０４と制御チップ１０６とを電気的に接続するための制御用チップである。
ＣＰＵ１０４は、主として後述するＦＩＲＭを動作させるために設けられている。
【００４０】
メモリ１０５には、ＣＰＵ１０４に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムが格納される。また、メモリ１０５には、ＣＰＵ１０４による処理に必要なＦＩＲＭが格納される。ＦＩＲＭには、必要な実行文が記載されており、ＨＯＳＴコンピュータ２００およびＣＭ１２０との通信手順やそれに伴う処理手順が記載されている。また、ＦＩＲＭには、ＩＳＰチップ１０２を動作させる実行文、制御チップ１０３および制御チップ１０６を動作させる実行文等が記載されている。
【００４１】
制御チップ１０６は、ＩＳＰチップ１０２とバッファ１０７との間やＣＡ１１０とＣＭ１２０との間の通信およびデータ転送を制御する。
バッファ１０７には、ＩＳＰチップ１０２を介してＨＯＳＴコンピュータ２００から受信したコマンドおよびデータ（ＳＢ２Ｈ、ＤＩＢ等）が格納される。また、バッファ１０７にはＨＯＳＴコンピュータ２００に送信されるデータも格納され、ＩＳＰチップ１０２を介してＨＯＳＴコンピュータ２００に転送される。さらに、ＣＭ１２０に送るデータおよびＣＭ１２０から受け取ったデータも格納される。
【００４２】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
図５は、ＨＯＳＴコンピュータのハードウェア構成例を示す図である。
【００４３】
ＨＯＳＴコンピュータ２００は、ＣＰＵ２０１によって装置全体が制御されている。ＣＰＵ２０１には、バス２０７を介してＲＡＭ（Random Access Memory）２０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）２０３、グラフィック処理装置２０４、入力インタフェース２０５、および通信インタフェース２０６が接続されている。
【００４４】
ＲＡＭ２０２には、ＣＰＵ２０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２０２には、ＣＰＵ２０１による処理に必要な各種データが格納される。ＨＤＤ２０３には、ＯＳやアプリケーションプログラムが格納される。また、ＨＤＤ２０３内には、プログラムファイルが格納される。
【００４５】
グラフィック処理装置２０４には、モニタ１１が接続されている。グラフィック処理装置２０４は、ＣＰＵ２０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース２０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース２０５は、キーボード１２やマウス１３から送られてくる信号を、バス２０７を介してＣＰＵ２０１に送信する。
【００４６】
通信インタフェース２０６は、ネットワーク１０に接続されている。通信インタフェース２０６は、ネットワーク１０を介して、各ＲＡＩＤ制御装置１００および他のコンピュータとの間でデータの送受信を行う。
【００４７】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
次に、ＨＯＳＴコンピュータ２００とＲＡＩＤ制御装置１００とのＩ／Ｏ処理について詳しく説明する。
【００４８】
図６は、Ｉ／Ｏ処理を示すシーケンス図である。
まず、ＨＯＳＴコンピュータ２００が、ＣＨ２１０を介してアクセス先のＤＩＳＫおよびＤＩＳＫの処理範囲を示すＤＸコマンドと、実行させるオペレーション、すなわちリード操作かライト操作かを指示するＬＲコマンドとをＲＡＩＤ制御装置１００に対して送信する（ステップＳ１）。
【００４９】
ＲＡＩＤ制御装置１００のＣＡ１１０が、ＤＸコマンドおよびＬＲコマンドを受信すると、Ｉ／Ｏ可能か否かを問い合わせるＭＳＧ−１０信号をＣＭ１２０に対して出力する（ステップＳ２）。
【００５０】
ＣＭ１２０は、ＭＳＧ−１０信号を受け取ると、Ｉ／Ｏ可能であることを示すＭＳＧ−６０信号をＣＡ１１０に返す（ステップＳ３）。
これにより、ＣＡ１１０は、ＤＸコマンドに対するＣＭＲを送信する（ステップＳ４）。
【００５１】
ＨＯＳＴコンピュータ２００は、ＤＸコマンドおよびＬＲコマンドの送信後、ＤＩＳＫ上にフォーマット（枠）を形作り、作ったフォーマット中のデータを更新させるＷＣＫＤ信号をＣＡ１１０に送信する（ステップＳ５）。
【００５２】
ＣＡ１１０は、ＷＣＫＤ信号を受信すると、書き込み処理に必要なＣａｃｈｅ割り当てを依頼するＭＳＧ−２０信号をＣＭ１２０に対して出力する（ステップＳ６）。
ＣＭ１２０は、ＭＳＧ−２０信号を受け取ると、Ｃａｃｈｅを割り当て、割り当て完了応答を示すＭＳＧ−６６をＣＡ１１０に返す（ステップＳ７）。
【００５３】
その後、ＣＡ１１０が、ＨＯＳＴコンピュータ２００から送信されてきたデータを書き込む（ステップＳ８）。
書き込み処理の終了後に、ＣＡ１１０が、正常に終了したか異常に終了したかを示すＳＴＳ（送信ステータス）をＨＯＳＴコンピュータ２００に対して送信する（ステップＳ９）。
【００５４】
以上でＩ／Ｏ処理を終了する。
このようなハードウェア構成の信号処理システム３００において実施の形態の信号処理を行うために、各ＲＡＩＤ制御装置１００のＣＡ１１０内には、以下のような機能が設けられる。
【００５５】
図７は、ＣＡの機能を示すブロック図である。
ＣＡ１１０は、インタフェース部１１１とＦＩＲＭ１１２と格納部１１３とを有している。
【００５６】
インタフェース部１１１はＳＦＰ１０１とＩＳＰチップ１０２で構成され、ＦＩＲＭ１１２の指示により、ＦＩＲＭ１１２とＨＯＳＴコンピュータ２００とのコマンドおよびデータのやりとりを中継する。すなわち、ＦＩＲＭ１１２から受け取ったコマンドおよびデータをＨＯＳＴコンピュータ２００に送信する。また、ＨＯＳＴコンピュータ２００から受けとったコマンドおよびデータをＦＩＲＭ１１２に送る。
【００５７】
ＦＩＲＭ１１２は、インタフェース駆動部１１２ａとスレッド（Ｔｈｒｅａｄ）１１２ｂとを有している。
インタフェース駆動部１１２ａは、スレッド１１２ｂの指示によりインタフェース部１１１を駆動する（動作させる）。
【００５８】
スレッド１１２ｂは、ＣＡ１１０全体を管理する管理部としての機能を備えている。このスレッド１１２ｂは、ＨＯＳＴインタフェースレイヤ１１２１とＨＯＳＴコマンドレイヤ１１２２とを有している。
【００５９】
ＨＯＳＴインタフェースレイヤ１１２１は、インタフェース駆動部１１２ａを経由し、ＨＯＳＴコンピュータ２００とのインタフェースに関わる処理を行う。具体的には、ＨＯＳＴコンピュータ２００から受信したデータをＨＯＳＴコマンドレイヤ１１２２に送る。また、ＨＯＳＴコマンドレイヤ１１２２から受け取ったデータをＨＯＳＴコンピュータ２００へ送信する。
【００６０】
ＨＯＳＴコマンドレイヤ１１２２は、受け取ったコマンドに対する処理を行う。また、ＨＯＳＴコマンドレイヤ１１２２は、ＣＨ２１０が発行したコマンド列に対し、先頭コマンドの処理を開始したことを通知する場合にＣＭＲをＣＨ２１０に対して通知すべく、そのＣＭＲをＨＯＳＴインタフェースレイヤ１１２１に送る。
【００６１】
格納部１１３は、ＨＯＳＴコンピュータ２００が発行したコマンドを格納する。また、格納部１１３には、後述するＣＡ情報テーブルが格納されている。
次に、Ｉ／Ｏ処理の一形態を構成する第１の信号処理について説明する。
【００６２】
図８は、第１の信号処理を示すシーケンス図である。なお、図８では、ＨＯＳＴインタフェースレイヤ１１２１を「ＨＯＳＴ  ＩＬ」、ＨＯＳＴコマンドレイヤ１１２２を「ＨＯＳＴ  ＣＬ」と表記している。
【００６３】
まず、ＨＯＳＴコンピュータ２００が、ＣＨ２１０を介してＣＭＤ（図６のＤＸコマンドに相当）を送信する（ステップＳ１１）。
インタフェース部１１１が、ＣＭＤを受信すると、インタフェース駆動部１１２ａに対して割り込みをかける（ステップＳ１２）。
【００６４】
インタフェース駆動部１１２ａが割り込みを受けると、ＣＭＤ受信通知をＨＯＳＴインタフェースレイヤ１１２１に渡す（ステップＳ１３）。
ＨＯＳＴインタフェースレイヤ１１２１は、受け取ったＣＭＤ受信通知をＨＯＳＴコマンドレイヤ１１２２に渡す（ステップＳ１４）。
【００６５】
次に、ＨＯＳＴコマンドレイヤ１１２２が、ＭＳＧ信号（図６のＭＳＧ−１０に相当）をＣＭ１２０に送る（ステップＳ１５）。そして、ＣＭ１２０が、ＭＳＧ信号（図６のＭＳＧ−６０に相当）をＨＯＳＴコマンドレイヤ１１２２に返す（ステップＳ１６）。
【００６６】
次に、ＨＯＳＴコマンドレイヤ１１２２が、ＣＭＲ送信依頼をＨＯＳＴインタフェースレイヤ１１２１に送る（ステップＳ１７）。
次に、ＨＯＳＴインタフェースレイヤ１１２１が、ＣＭＲ送信依頼をインタフェース駆動部１１２ａに送る（ステップＳ１８）。
【００６７】
その後、図８では図示していないが、ＨＯＳＴコマンドレイヤ１１２２が、図６に示したＷＣＫＤ信号を受けとると、コマンド処理を行う。すなわち、本実施の形態では、ＨＯＳＴコンピュータ２００（ＣＨ２１０）からの送信ＳＴＳを待たずにコマンド処理を行う。具体的にはＨＯＳＴコマンドレイヤ１１２２が、ＭＳＧ信号（図６のＭＳＧ−２０に相当）をＣＭ１２０に送る（ステップＳ１９）。そして、ＣＭ１２０が、ＭＳＧ信号（図６のＭＳＧ−６６に相当）をＨＯＳＴコマンドレイヤ１１２２に返す（ステップＳ２０）。これにより、予め格納部１１３に格納されているコマンドの処理が実行され、データの送受信が行われる（ステップＳ２１）。
【００６８】
一方、インタフェース駆動部１１２ａは、ＣＭＲ送信依頼を受け取ると、インタフェース部１１１に対してＣＭＲ信号を送る（ステップＳ２２）。
インタフェース部１１１は、ＣＨ２１０にＣＭＲを送信する（ステップＳ２３）。また、インタフェース部１１１は、ＣＭＲの送信完了を契機（トリガ）にしてＣＭＲ送信完了割り込みをインタフェース駆動部１１２ａに送る（ステップＳ２４）。
【００６９】
インタフェース駆動部１１２ａは、ＣＭＲ送信完了割り込みを受けると送信ＳＴＳをＨＯＳＴインタフェースレイヤ１１２１に送る（ステップＳ２５）。
その後、コマンド処理が終了すると、ＨＯＳＴコマンドレイヤ１１２２が、ＳＴＳ送信依頼をＨＯＳＴインタフェースレイヤ１１２１に送る（ステップＳ２６）。
【００７０】
次に、ＨＯＳＴインタフェースレイヤ１１２１が、受け取った送信ＳＴＳが正常な（ＣＭＲ送信が正常に完了した）ものか否かを判断し（ステップＳ２７）、正常なものである場合、インタフェース駆動部１１２ａにＳＴＳ送信依頼を送る（ステップＳ２８）。
【００７１】
次に、インタフェース駆動部１１２ａがインタフェース部１１１にＳＴＳ送信依頼を送る（ステップＳ２９）。
次に、インタフェース部１１１がＣＨ２１０にＳＴＳを送信する（ステップＳ３０）。
【００７２】
以上で信号処理を終了する。
次に、第１の信号処理を行う際のＨＯＳＴインタフェースレイヤ１１２１の処理について詳しく説明する。
【００７３】
図９は、第１の信号処理を行う際のＨＯＳＴインタフェースレイヤの処理を示すフローチャートである。
まず、フラグの設定を行う（ステップＳ３１）。具体的には、ＣＭＲ送信処理中フラグをＯＮにし、ＣＭＲ送信完了フラグをＯＦＦにする。
【００７４】
次に、ＣＭＲ送信処理中か否かを判断する（ステップＳ３２）。
ＣＭＲ送信処理中ではない場合（ステップＳ３２のＮｏ）、呼び元であるＨＯＳＴコマンドレイヤ１１２２に正常復帰する（ステップＳ３３）。その後、処理を終了する。
【００７５】
一方、ＣＭＲ送信処理中の場合（ステップＳ３２のＹｅｓ）、送信ＳＴＳを受け取ったか否かを判断する（ステップＳ３４）。
送信ＳＴＳを受け取っていない場合（ステップＳ３４のＮｏ）、送信ＳＴＳの受け取りを待機する。
【００７６】
一方、送信ＳＴＳを受け取った場合（ステップＳ３４のＹｅｓ）、ＣＭＲ送信中フラグをＯＦＦにする（ステップＳ３５）。
次に、受け取った送信ＳＴＳが正常なものか否かを判断する（ステップＳ３６）。
【００７７】
ＳＴＳが正常ではない場合（ステップＳ３６のＮｏ）、エラー情報をセットし（ステップＳ３７）、呼び元であるＨＯＳＴコマンドレイヤ１１２２にエラー復帰する（ステップＳ３８）。その後、処理を終了する。
【００７８】
一方、受け取ったＳＴＳが正常の場合（ステップＳ３６のＹｅｓ）、ＣＭＲ送信完了フラグをＯＮにする（ステップＳ３９）。
次に、ＨＯＳＴコンピュータ２００側からのコマンド処理中断指示であるリセットＩＵを受信済みか否かを判断する（ステップＳ４０）。
【００７９】
リセットＩＵを受信済みではない場合（ステップＳ４０のＮｏ）、ステップＳ３３に移行し、呼び元であるＨＯＳＴコマンドレイヤ１１２２に正常復帰する（ステップＳ３３）。その後、処理を終了する。
【００８０】
リセットＩＵを受信済みの場合（ステップＳ４０のＹｅｓ）、ＨＯＳＴコンピュータ２００側から受信した未処理のコマンド（ＳＢ２Ｈ、ＤＩＢ）を廃棄（解放）する（ステップＳ４１）。
【００８１】
その後、呼び元であるＨＯＳＴコマンドレイヤ１１２２にリセットＩＵを受信したことを通知し、その後復帰する（ステップＳ４２）。以上で処理が終了する。
このように、リセットＩＵを受信した場合においてもＣＭＲ送信完了を待ち合わせて処理を行うことで対応する。
【００８２】
ところで、図８および図９に示す処理によれば、エラー復帰を行う場合に、リカバリ処理が必要となる。
従来は、Ｉ／Ｏ処理中に異常状態を検出した場合、ＣＡ１１０からＣＨ２１０に対しＡＢＴＳ信号を送信することにより、Ｉ／Ｏ処理の中断を行うことができる。しかし、本実施の形態ではコマンド処理開始時点（図８のステップＳ２１開始時点）では、ＣＡ１１０とＣＨ２１０との間でコネクションが確立していない状態であるため、ＡＢＴＳ信号を送信することができない。このため、本実施の形態では、図９のステップＳ３６での送信ＳＴＳが正常ではない場合（ＣＭＲ送信が正常に完了していない場合）、インタフェース駆動部１１２ａがＣＡ内部テーブルの状態を変化させるための内部処理であるＬＩＮＫエラーリカバリ（ＡＢＴＳ無し）を実行する。これにより、ＣＡ内部テーブルの更新を行い、従来のＣＭＲ送信失敗時と同様の状態にすることができる。
【００８３】
また、ＨＯＳＴコンピュータ２００がＣＭＲ送信依頼を受信した後には、ＣＡ１１０とＣＨ２１０との間でのコネクションが確立するため、ＡＢＴＳ信号による中断を実行することができる。
【００８４】
図１０は、ＣＡ内部テーブルを示す図である。
ＣＡ内部テーブル１１３ａには、ＩＸＳＴＳ（Ｉｎｂｏｕｎｄ  ｅｘｃｈａｎｇｅ  ｓｔａｔｕｓ）とＯＸＳＴＳ（Ｏｕｔｂｏｕｎｄ  ｅｘｃｈａｎｇｅ  ｓｔａｔｕｓ）の欄とが設けられている。なお、ＣＨ２１０からＣＡ１１０への方向をＩｎｂｏｕｎｄ、ＣＡ１１０からＣＨ２１０への方向をＯｕｔｂｏｕｎｄとしている。
【００８５】
ＩＸＳＴＳの欄およびＯＸＳＴＳの欄には、ＣＨ２１０とＣＡ１１０との接続（通信可能）状態を示すｏｐｅｎｅｄまたはＣＨ２１０とＣＡ１１０との非接続（通信不能）状態を示すｃｌｏｓｅｄがインタフェース駆動部１１２ａにより、それぞれ設定される。
【００８６】
また、ｅｘｃｈａｎｇｅは、ＣＨ２１０とＣＡ１１０とのＩＵのやりとりにおける送受信単位を意味する。例えば、図６のＩ／Ｏ処理のステップＳ１〜ステップＳ５が１つのｅｘｃｈａｎｇｅを構成している。
【００８７】
図１１は、ＣＡ内部テーブルの状態の遷移を示す図である。
ＩＵは、送受信フラグであるＦＩＲＳＴおよびＬＡＳＴを有している。
ＩＵ送信の際、ＦＩＲＳＴ＝１の場合、それが最初の送信であることを示し、ＬＡＳＴ＝１の場合、それが最後の通信であることを示している。また、ＦＩＲＳＴ＝０およびＬＡＳＴ＝０の場合、これら以外の送信であることを示している。
【００８８】
図１１に示すように、ＣＨ２１０およびＣＡ１１０はそれぞれ先頭のＩＵにおいてＦＩＲＳＴ＝１とすることで送受信を開始し、それぞれ最後のＩＵをＬＡＳＴ＝１とすることでＩＵの送受信を完了する。
【００８９】
インタフェース駆動部１１２ａは、ＣＡ内部テーブル１１３ａのＩＸＳＴＳおよびＯＸＳＴＳを適宜ｏｐｅｎｅｄ状態からｃｌｏｓｅｄ状態に遷移させ、当該Ｉ／Ｏで使用中のバッファ等の資源を解放するまでの処理を行う。
【００９０】
図１２は、ＣＭＲ送信失敗時のリカバリ処理を示すシーケンス図である。
まず、図９のステップＳ３６でＣＭＲ送信失敗であることが分かると、インタフェース駆動部１１２ａがＣＡ情報テーブルを更新し、ＯＸＳＴＳをｃｌｏｓｅｄに遷移させる（ステップＳ７１）。
【００９１】
次に、インタフェース駆動部１１２ａがスレッド１１２ｂに送信異常を通知する（ステップＳ７２）。
スレッド１１２ｂは、インタフェース駆動部１１２ａへ上位との接続を遮断するためのＡＢＴＳ送信を依頼する（ステップＳ７３）。
【００９２】
インタフェース駆動部１１２ａは、ＯＸＳＴＳがｃｌｏｓｅｄの為、実際にはＡＢＴＳを発行できないため、ＡＢＴＳを発行しない。ＣＡ情報テーブルのＩＸＳＴＳをｃｌｏｓｅｄに遷移させる（ステップＳ７４）。
【００９３】
インタフェース駆動部１１２ａは、スレッド１１２ｂへＡＢＴＳ処理完了を通知する（ステップＳ７５）。
スレッド１１２ｂは、ＣＡ内部エラーリカバリが完了したのでインタフェース駆動部１１２ａへＩ／Ｏ処理完了依頼を行う（ステップＳ７６）。
【００９４】
インタフェース駆動部１１２ａは、ＩＸＳＴＳとＯＸＳＴＳとがそれぞれにｃｌｏｓｅｄであることを確認後、格納部１１３内の、その処理に係る未処理のコマンドやデータを廃棄する（ステップＳ７７）。以上でリカバリ処理を終了する。
【００９５】
なお、このリカバリ処理は、ＣＭＲ送信失敗以外の処理、例えばＣＭ１２０とのやりとりの際に生じた異常の際にも使用することができる。
また、ＣＭＲ送信失敗とＣＭＲ送信失敗以外の異常とが併発した場合には、まず、リカバリ処理を実行し、その後、ＡＢＴＳ処理を行う。
【００９６】
次に、コマンド処理後に、インタフェース駆動部１１２ａがＣＭＲ送信完了割り込みを受け取った場合の信号処理（第２の信号処理）について説明する。
図１３は、第２の信号処理を示すシーケンス図である。
【００９７】
以下、第２の信号処理について、前述した第１の信号処理との相違点を中心に説明し、同様の事項については、その説明を省略する。
ステップＳ５１〜ステップＳ６３：第１の信号処理のステップＳ１１〜ステップＳ２３と同様の処理を行う。
【００９８】
コマンド処理が終了すると、ＨＯＳＴコマンドレイヤ１１２２は、ＨＯＳＴインタフェースレイヤ１１２１にＳＴＳ送信依頼を送る（ステップＳ６４）。
その後、ＨＯＳＴインタフェースレイヤ１１２１が送信ＳＴＳを待機する（ステップＳ６５）。
【００９９】
そして、インタフェース部１１１が、ＣＭＲ送信依頼の送信完了を契機にしてＣＭＲ送信完了割り込みをインタフェース駆動部１１２ａに送り（ステップＳ６６）、インタフェース駆動部１１２ａが、送信ＳＴＳをＨＯＳＴインタフェースレイヤ１１２１に送る（ステップＳ６７）。
【０１００】
ステップＳ６８〜ステップＳ７１：第１の信号処理のステップＳ２７〜ステップＳ３０と同様の処理を行う。
以上で、第２の信号処理を終了する。
【０１０１】
以上述べたように、本実施の形態の信号処理システム３００によれば、ＨＯＳＴコマンドレイヤ１１２２が、ＤＸコマンドに対するＣＭＲ送信依頼を送った後にＷＣＫＤ信号を受け取った場合、送信ＳＴＳを待たずに（送信ＳＴＳに関わらず）ＣＭ１２０との間でコマンドの処理を実行するようにしたので、Ｉ／Ｏ処理に必要な時間を低減させることができ、Ｉ／Ｏ処理の高速化を図ることができる。
【０１０２】
また、ＨＯＳＴインタフェースレイヤ１１２１が、ＣＭＲ送信が正常に完了したか否かを判断し、正常に完了した場合、インタフェース駆動部１１２ａにＳＴＳ送信依頼を送るようにしたので、ＨＯＳＴコンピュータ２００側もＲＡＩＤ制御装置１００の状態を確実に把握することができる。
【０１０３】
また、ＨＯＳＴインタフェースレイヤ１１２１が、ＣＭＲ送信が正常に完了したか否かを判断し、失敗した場合には、ＨＯＳＴコンピュータ２００との接続を切断し、未処理のコマンドを廃棄するようにしたので、従来のＣＭＲ送信失敗時と同様のリカバリを行うことができる。
【０１０４】
また、ＨＯＳＴコンピュータ２００からのリセット信号を受信した場合にも、ＣＭＲ送信完了を待ち合わせて処理を行うことで従来のＩ／Ｏ送信と同様の処理を行うことができる。
【０１０５】
以上、本発明の信号処理方法、信号処理プログラムおよび信号処理装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０１０６】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ＲＡＩＤ制御装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクとしては、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。光磁気記録媒体としては、例えば、ＭＯ（Magneto-Optical disk）等が挙げられる。
【０１０７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１０８】
信号処理プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１０９】
（付記１）  ホストコンピュータとの間でコマンドを用いた信号処理を行う信号処理方法において、
前記コマンドを処理するコマンド処理手段が、前記ホストコンピュータから送信された前記コマンドに応答するコマンドレスポンスを生成するステップと、
送信確認通知に関わらず前記コマンドの処理を行い、前記送信確認通知の受け取りを待機するステップと、
前記ホストコンピュータと前記コマンド処理手段とを中継するインタフェースが、前記コマンドレスポンスを前記ホストコンピュータに送信した際の送信完了を示す前記送信確認通知を前記コマンド処理手段に送るステップと、
前記コマンド処理手段が、前記送信確認通知を受け取った場合、前記コマンドレスポンスが正常に行われたか否かを判断するステップと、
を有することを特徴とする信号処理方法。
【０１１０】
（付記２）  前記コマンド処理手段は、前記コマンドレスポンスが正常に受信されていないと判断した場合、前記ホストコンピュータとの接続を切断するステップと、前記ホストコンピュータから受信した未処理の前記コマンドを廃棄するステップとを有することを特徴とする付記１記載の信号処理方法。
【０１１１】
（付記３）  前記コマンド処理手段は、前記送信確認通知を受信する前に、前記コマンドの処理が終了した場合、前記送信確認通知を待機することを特徴とする付記１記載の信号処理方法。
【０１１２】
（付記４）  前記コマンド処理手段は、前記コマンドの処理の実行中に前記ホストコンピュータからのコマンド送信を停止させるリセット信号を受信した場合、前記送信確認通知を待機し、前記送信確認通知を受信したとき、前記ホストコンピュータから受信した未処理の前記コマンドを廃棄するステップを有することを特徴とする付記１記載の信号処理方法。
【０１１３】
（付記５）  ホストコンピュータとの間でコマンドを用いた信号処理を行う信号処理プログラムにおいて、
コンピュータを、
前記ホストコンピュータから送信された前記コマンドに応答するコマンドレスポンスを生成し、送信確認通知に関わらず前記コマンドの処理を行い、前記送信確認通知の受け取りを待機し、前記送信確認通知を受け取った場合、前記コマンドレスポンスが正常に行われたか否かを判断するコマンド処理手段、
前記ホストコンピュータと前記コマンド処理手段とを中継し、前記コマンドレスポンスを前記ホストコンピュータに送信した際の送信完了を示す前記送信確認通知を前記コマンド処理手段に送るインタフェース、
として機能させることを特徴とする信号処理プログラム。
【０１１４】
（付記６）  ホストコンピュータとの間でコマンドを用いた信号処理を行う信号処理装置において、
前記ホストコンピュータから送信された前記コマンドに応答するコマンドレスポンスを生成し、送信確認通知に関わらず前記コマンドの処理を行い、前記送信確認通知の受け取りを待機し、前記送信確認通知を受け取った場合、前記コマンドレスポンスが正常に行われたか否かを判断するコマンド処理手段と、
前記ホストコンピュータと前記コマンド処理手段とを中継し、前記コマンドレスポンスを前記ホストコンピュータに送信した際の送信完了を示す前記送信確認通知を前記コマンド処理手段に送るインタフェースと、
を有することを特徴とする信号処理装置。
【図面の簡単な説明】
【０１１５】
【図１】実施の形態に適用される発明を示す概要図である。
【図２】実施の形態の信号処理システムを示すブロック図である。
【図３】信号処理システムのハードウェア構成例を示す図である。
【図４】ＣＡのハードウェア構成例を示す図である。
【図５】ＨＯＳＴコンピュータのハードウェア構成例を示す図である。
【図６】Ｉ／Ｏ処理を示すシーケンス図である。
【図７】ＣＡの機能を示すブロック図である。
【図８】第１の信号処理を示すシーケンス図である。
【図９】第１の信号処理を行う際のＨＯＳＴインタフェースレイヤの処理を示すフローチャートである。
【図１０】ＣＡ内部テーブルを示す図である。
【図１１】ＣＡ内部テーブルの状態の遷移を示す図である。
【図１２】ＣＭＲ送信失敗時のリカバリ処理を示すシーケンス図である。
【図１３】第２の信号処理を示すシーケンス図である。
【図１４】ＨＯＳＴコンピュータとディスクアレイとの構成の一例を示す図である。
【図１５】従来の信号処理を示す図である。
【符号の説明】
【０１１６】
１  ホストコンピュータ
２  コマンド処理手段
３  インタフェース
１００  ＲＡＩＤ制御装置
１０１  ＳＦＰ
１０２  ＩＳＰチップ
１０３、１０６  制御チップ
１０４  ＣＰＵ
１０５  メモリ
１０７  バッファ
１１０  ＣＡ
１１１  インタフェース部
１１２ａ  インタフェース駆動部
１１２ｂ  スレッド
１１３  格納部
１２０  ＣＭ
１３０、１４０、１５０  ＤＩＳＫ
２００  ＨＯＳＴコンピュータ
２１０  ＣＨ
３００  信号処理システム
１１２１  ＨＯＳＴインタフェースレイヤ
１１２２  ＨＯＳＴコマンドレイヤ
【図１】
0004791265.tif 000002
【図２】
0004791265.tif 000003
【図３】
0004791265.tif 000004
【図４】
0004791265.tif 000005
【図５】
0004791265.tif 000006
【図６】
0004791265.tif 000007
【図７】
0004791265.tif 000008
【図８】
0004791265.tif 000009
【図９】
0004791265.tif 000010
【図１０】
0004791265.tif 000011
【図１１】
0004791265.tif 000012
【図１２】
0004791265.tif 000013
【図１３】
0004791265.tif 000014
【図１４】
0004791265.tif 000015
【図１５】
0004791265.tif 000016