(57)【要約】【課題】ネットワークを介して接続される延長装置をホストとＩ／Ｏ装置との間に配置した送受信システムにて、コマンド処理のタイミングの同期が取れるようにする。【解決手段】  ホストに接続するホスト側延長装置とＩ／Ｏ装置に接続するＩ／Ｏ側延長装置とをネットワークを介して接続し、ホスト側延長装置の擬似応答制御部が、ホストからの複数のコマンドをＩ／Ｏ側に送信する場合、最初のコマンドに対するホストへの擬似応答を行い、ホスト側延長装置のプリフェッチ制御部が、ホストへの応答なしで複数のコマンドを取得しＩ／Ｏ側延長装置に一括転送し、Ｉ／Ｏ側延長装置のＩ／Ｏ通信制御部が、受信したコマンドをＩ／Ｏ装置に発行し、Ｉ／Ｏ側延長装置の擬似対ＯＳ制御部が、ホスト側延長装置から一括転送された複数のコマンドのすべてのコマンドの処理が完了したときに処理完了をホスト側延長装置に通知する。【選択図】図１
2019016056.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に接続する送信装置と入出力装置に接続する受信装置とがネットワークを介して接続される送受信システムにおいて、
前記送信装置は、
前記入出力装置に対して発行する前記情報処理装置からの複数のコマンドを送信する場合、該複数のコマンドの内の最初のコマンドに対する前記情報処理装置への応答を行う応答部と、
前記情報処理装置への応答なしで前記情報処理装置から複数のコマンドを取得し前記受信装置に一括転送する転送部とを有し、
前記受信装置は、
前記送信装置から転送されたコマンドを前記入出力装置に発行する制御部と、
前記送信装置から複数のコマンドが一括転送された場合、該複数のコマンドのすべてのコマンドの処理が完了したときに処理完了を前記送信装置に通知する通知部とを有することを特徴とする送受信システム。
【請求項２】
前記通知部は、前記送信装置から複数のコマンドが一括転送された場合、該複数のコマンドの処理途中で前記入出力装置で異常が発生したときに、異常が発生したコマンドのステータス情報を前記送信装置に通知することを特徴とする請求項１記載の送受信システム。
【請求項３】
前記送信装置は、前記受信装置に転送する複数のコマンドを内部メモリに記憶し、
前記内部メモリに記憶した複数のコマンドと前記情報処理装置から再び取得した複数のコマンドとを比較し、一致する場合に前記入出力装置からのデータを前記情報処理装置に出力することを特徴とする請求項１又は２記載の送受信システム。
【請求項４】
前記制御部は、前記入出力装置から異常が発生した通知を受けたことに応答して、異常に係る情報を取得するコマンドを前記入出力装置に発行することを特徴とする請求項１〜３の何れか１項に記載の送受信システム。
【請求項５】
情報処理装置に接続する送信装置と入出力装置に接続する受信装置とがネットワークを介して接続される送受信システムの制御方法において、
前記送信装置が有する応答部が、前記入出力装置に対して発行する前記情報処理装置からの複数のコマンドを送信する場合、該複数のコマンドの内の最初のコマンドに対する前記情報処理装置への応答を行い、
前記送信装置が有する転送部が、前記情報処理装置への応答なしで前記情報処理装置から複数のコマンドを取得し前記受信装置に一括転送し、
前記受信装置の制御部が、前記送信装置から転送されたコマンドを前記入出力装置に発行し、
前記受信装置の通知部が、前記送信装置から複数のコマンドが一括転送された場合、該複数のコマンドのすべてのコマンドの処理が完了したときに処理完了を前記送信装置に通知することを特徴とする送受信システムの制御方法。
【請求項６】
情報処理装置に接続され、入出力装置に接続する受信装置にネットワークを介して接続する送信装置において、
前記入出力装置に対して発行する前記情報処理装置からの複数のコマンドを送信する場合、該複数のコマンドの内の最初のコマンドに対する前記情報処理装置への応答を行う応答部と、
前記情報処理装置への応答なしで前記情報処理装置から複数のコマンドを取得し前記受信装置に一括転送する転送部とを有することを特徴とする送信装置。
【請求項７】
情報処理装置に接続する送信装置にネットワークを介して接続され、入出力装置に接続する受信装置において、
前記入出力装置に対して発行する前記情報処理装置からのコマンドを前記送信装置から受信し、前記入出力装置に発行する制御部と、
前記送信装置から複数のコマンドが一括転送された場合、該複数のコマンドのすべてのコマンドの処理が完了したときに処理完了を前記送信装置に通知する通知部とを有することを特徴とする受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送受信システム、送受信システムの制御方法、送信装置、及び受信装置に関する。
【背景技術】
【０００２】
サーバ等のホスト（情報処理装置）とＩ／Ｏ装置（入出力装置）は、電気ケーブルを使用するＢＭＣ（Block Multiplexer Channel）接続では１００ｍ程度、光ファイバーケーブルを使用するＯＣＬＩＮＫ（Optical Channel LINK）接続では数ｋｍ以内の距離に設置する必要がある。それに対して、延長装置を用いてホスト（情報処理装置）とＩ／Ｏ装置（入出力装置）との間の通信路を延長することで、遠距離拠点間での運用を可能にするシステムがある（例えば、特許文献１〜３参照）。
【０００３】
図１８は、延長装置を用いて通信路を延長したシステムの例を示す図である。図１８に示すシステムにおいて、ホスト（情報処理装置）１８０１とＩ／Ｏ装置（入出力装置）１８０２との間にチャネル延長装置１８０３、１８０４がそれぞれ配置され、チャネル延長装置１８０３、１８０４は、広域イーサネット（登録商標）等のネットワーク１８０５を介してそれぞれ接続される。ホスト１８０１とホスト側チャネル延長装置１８０３、及びＩ／Ｏ装置１８０２とＩ／Ｏ側チャネル延長装置１８０４は、距離制限があるＢＭＣ接続やＯＣＬＩＮＫ接続で接続されるが、チャネル延長装置１８０３、１８０４間を距離制限のない広域イーサネット等のネットワーク１８０５で接続することで遠距離拠点間での運用を可能にしている。
【０００４】
ホスト側チャネル延長装置１８０３は、ホスト１８０１に対し擬似のＩ／Ｏ装置として動作し、Ｉ／Ｏ側チャネル延長装置１８０４は、Ｉ／Ｏ装置１８０２に対し擬似のホストとして動作する。例えば、ホスト側チャネル延長装置１８０３は、Ｉ／Ｏ装置１８０２に対するホスト１８０１からのコマンドに対してホスト１８０１に擬似応答し、ホスト１８０１からのコマンド群をＩ／Ｏ側チャネル延長装置１８０４に転送する。Ｉ／Ｏ側チャネル延長装置１８０４は、ホスト側チャネル延長装置１８０３から転送されたコマンド群をＩ／Ｏ装置１８０４に発行し、Ｉ／Ｏ装置１８０４での実行後、Ｉ／Ｏ装置１８０４からの最終ステータスを、ホスト側チャネル延長装置１８０３を介してホスト１８０１に報告する。このようにして回線往復回数を削減し、回線遅延による性能低下を回避している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平３−１８９７５２号公報
【特許文献２】特開昭６３−２９１１５１号公報
【特許文献３】特開平１０−９１５６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
図１８に示したシステムにおいて、複数のコマンドを一括転送して処理する場合、ホスト１８０１とＩ／Ｏ装置１８０２が延長装置１８０３、１８０４及びネットワーク１８０５で通信を分断されることで、コマンド処理のタイミングの同期が取れない。そのため、例えば、異常発生時のリカバリ処理については、ホスト１８０１で動作するソフトウェア及び延長装置１８０３、１８０４で連携して異常解析を行って異常箇所を特定し、リカバリ処理を行っている。１つの側面では、本発明の目的は、ネットワークを介して接続される延長装置をホスト（情報処理装置）とＩ／Ｏ装置（入出力装置）との間に配置したシステムにて、コマンド処理のタイミングの同期が取れるようにすることにある。
【課題を解決するための手段】
【０００７】
送受信システムの一態様は、情報処理装置に接続する送信装置と入出力装置に接続する受信装置とがネットワークを介して接続される。送信装置は、入出力装置に対して発行する情報処理装置からの複数のコマンドを送信する場合、該複数のコマンドの内の最初のコマンドに対する情報処理装置への応答を行う応答部と、情報処理装置への応答なしで情報処理装置から複数のコマンドを取得し受信装置に一括転送する転送部とを有する。受信装置は、送信装置から転送されたコマンドを入出力装置に発行する制御部と、送信装置から複数のコマンドが一括転送された場合、該複数のコマンドのすべてのコマンドの処理が完了したときに処理完了を送信装置に通知する通知部とを有する。
【発明の効果】
【０００８】
発明の一態様においては、情報処理装置に接続する送信装置と入出力装置に接続する受信装置とがネットワークを介して接続される送受信システムにて、コマンド処理のタイミングの同期を取ることが可能となる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の実施形態における送受信システムの構成例を示す図である。
【図２】図２は、本実施形態における送受信システムの動作例を示すフローチャートである。
【図３】図３は、本実施形態における送受信システムの動作シーケンスの例を示す図である。
【図４】図４は、初期起動擬似応答処理の例を示すフローチャートである。
【図５】図５は、初期起動擬似応答処理の処理シーケンスの例を示す図である。
【図６】図６は、コマンドのプリフェッチ制御を説明する図である。
【図７】図７は、プリフェッチ制御決定処理の例を示すフローチャートである。
【図８】図８は、プリフェッチ制御処理の例を示すフローチャートである。
【図９】図９は、プリフェッチ制御処理の例を示すフローチャートである。
【図１０】図１０は、プリフェッチ制御処理の例を示すフローチャートである。
【図１１】図１１は、ＷＲＩＴＥプリフェッチ処理の例を示すフローチャートである。
【図１２】図１２は、コマンド種別混在時のプリフェッチ制御を説明する図である。
【図１３】図１３は、ＲＥＡＤプリフェッチ処理の例を示すフローチャートである。
【図１４】図１４は、ＲＥＡＤプリフェッチ処理の処理シーケンスの例を示す図である。
【図１５】図１５は、代行センス制御処理の例を示すフローチャートである。
【図１６】図１６は、代行センス制御処理の処理シーケンスの例を示す図である。
【図１７】図１７は、本実施形態における送受信システムの動作例を示す図である。
【図１８】図１８は、ホストとＩ／Ｏ装置との間に延長装置を配置したシステムを示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態を図面に基づいて説明する。
【００１１】
本発明の実施形態における送受信システムは、サーバ等のホスト（情報処理装置）をホスト側延長装置に接続し、Ｉ／Ｏ装置（入出力装置）をＩ／Ｏ側延長装置に接続し、ホスト側延長装置とＩ／Ｏ側延長装置とを広域イーサネット等のネットワークで接続したリモートチャネル方式のシステムである。そして、ホスト（情報処理装置）とＩ／Ｏ装置（入出力装置）が延長装置及びネットワークで通信を分断されることによるコマンド処理のタイミングの違いを吸収するため、延長装置にコマンド同期のための処理を組み込み、ホスト上で動作するソフトウェアに依存せず、正常な通信、及びリカバリ処理を行えるようにする。
【００１２】
ホスト上で動作するソフトウェアとＩ／Ｏ装置との間でコマンド同期をとるために、ソフトウェアが要求するコマンドとデータの保全、ユーザのデータの保証、及びリカバリ処理の一般化を行う。以下の条件＜１＞、＜２＞、＜３＞を満たすようにすることで実現可能である。
【００１３】
＜１＞ソフトウェアには初期コマンド応答に対する制限時間があるため、ソフトウェアのコマンド初期起動に対して応答監視タイマ期間内に応答を返して、応答タイムアウトを防止する。
＜２＞ソフトウェアとＩ／Ｏ装置とのコマンド処理の正当性を保証し、かつ、ソフトウェアとＩ／Ｏ装置との間で異常時の異常発生箇所の同期を保証するため、ソフトウェアから受信したコマンド群を、擬似応答（代理応答）せずにそのままＩ／Ｏ装置に伝える。
＜３＞ソフトウェアとＩ／Ｏ装置との間に延長装置を挿入することでユーザデータのデータ化けが発生することはあってはならないため、ソフトウェアからのライトデータ、Ｉ／Ｏ装置からのリードデータを保証する。
【００１４】
これらの条件を満たすために本実施形態における送受信システムでは、以下の機能を実装する。
・初期起動擬似応答機能（条件＜１＞）
ソフトウェアのコマンド初期起動の応答監視タイマ期間内に応答を返すため、初期起動擬似応答機能により、ソフトウェアからのコマンド初期起動に対して、ホスト側延長装置がソフトウェアに擬似的に応答を返すことで応答監視タイマの制限時間内に応答する。
・一括データ転送機能（条件＜２＞）
ホスト側延長装置とＩ／Ｏ側延長装置との間の通信に一括データ転送機能を実装することで応答待ちを減らしホスト側とＩ／Ｏ側のコマンド処理の同期通信を実現する。ホスト側延長装置が、ソフトウェアからの複数のコマンドをプリフェッチし、各々のコマンドに係るソフトウェアに対する擬似応答を行わずにＩ／Ｏ側延長装置に一括転送する。一括データ転送機能は、例えば、ＦＣ（Fibre Channel）−ＳＢ（Single Byte）−２規格に準拠した通信の高速転送機能（プリフェッチ機能）を利用することで実現可能である。
・データ化け防止機能（条件＜３＞）
データ化け防止機能を実装して、一括データ転送機能により転送したコマンド群に応じた処理でのデータ保全性を担保する。
【００１５】
図１は、本実施形態における送受信システムの構成例を示す図である。本実施形態における送受信システムは、サーバ等のホスト１０がホスト側延長装置２０に接続され、Ｉ／Ｏ装置４０がＩ／Ｏ側延長装置に接続される。また、ホスト側延長装置２０とＩ／Ｏ側延長装置３０とが広域イーサネット等のネットワーク５０を介して接続される。
【００１６】
情報処理装置としてのホスト１０は、メモリユニット（ＭＳＵ）１１及び入出力制御部（ＩＯＰ）１２を有する。なお、図１においては図示していないが、ホスト１０は、ソフトウェアを実行するＣＰＵ（Central Processing Unit）等の他の機能部も有している。ＭＳＵ１１には、ホスト１０上で動作するソフトウェアからのＩ／Ｏ装置４０の入出力操作等を指示するＣＣＷ（channel command word）コマンド１３が格納される。ＩＯＰ１２は、ホスト１０上で動作するソフトウェアとホスト側延長装置２０との間でコマンドやデータ等の入出力を制御する。
【００１７】
送信装置としてのホスト側延長装置（送信側チャネル延長装置）２０は、対ＯＳ制御部２１及びネットワーク制御部２２を有する。対ＯＳ制御部２１は、擬似応答制御部２３及びプリフェッチ制御部２４を有し、ホスト１０上で動作するソフトウェアに対しての処理を制御する。擬似応答制御部２３は応答部の一例であり、プリフェッチ制御部２４は転送部の一例である。
【００１８】
擬似応答制御部２３は、ソフトウェアからのコマンドに対する擬似応答を制御する。擬似応答制御部２３は、例えば一括データ転送機能によりコマンド群の転送を行う際に、ソフトウェアの応答タイムアウトを防止するため、ソフトウェアのコマンド初期起動に対する応答をソフトウェアに返す。擬似応答制御部２３は、ソフトウェアのコマンド初期起動の応答監視タイマ期間内に、コマンド初期起動に対する応答を返す。
【００１９】
プリフェッチ制御部２４は、一括データ転送機能によるコマンド群の一括転送を制御する。プリフェッチ制御部２４は、ＭＳＵ１１から複数のコマンドをプリフェッチし、コマンド毎の擬似応答を行わずに、プリフェッチしたコマンド群を一括転送する。プリフェッチ制御部２４は、例えば、ＦＣ−ＳＢ−２規格に準拠した通信の高速転送機能（プリフェッチ機能）を利用してコマンド群の一括転送を行う。また、プリフェッチ制御部２４は、一括データ転送機能により転送したコマンド群に応じたリード処理におけるリードデータ化け防止機能に係る処理を行う。
【００２０】
ネットワーク制御部２２は、本実施形態における一括データ転送制御を含む制御ロジックをＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）のフレームに乗せて制御するため、ネットワーク５０におけるＴＣＰのセッション管理等のネットワーク通信を制御する。ネットワーク制御部２２は、ネットワーク制御処理部２５を有する。ネットワーク制御処理部２５は、一括データ転送機能を実現するためのホスト側延長装置２０とＩ／Ｏ側延長装置３０との間の通信プロトコルをＴＣＰセッション上でやり取りするための制御を行う。
【００２１】
受信装置としてのＩ／Ｏ側延長装置（受信側チャネル延長装置）３０は、ネットワーク制御部３１、擬似対ＯＳ制御部３２、及びＩ／Ｏ通信制御部３３を有する。擬似対ＯＳ制御部３２は通知部の一例であり、Ｉ／Ｏ通信制御部３３は制御部の一例である。ネットワーク制御部３１は、ネットワーク制御部２２と同様に、ネットワーク５０におけるネットワーク通信を制御する。ネットワーク制御部３１は、ネットワーク制御処理部３４を有する。ネットワーク制御処理部３４は、ネットワーク制御処理部２５と同様に、一括データ転送機能を実現するためのホスト側延長装置２０とＩ／Ｏ側延長装置３０との間の通信プロトコルをＴＣＰセッション上でやり取りするための制御を行う。
【００２２】
擬似対ＯＳ制御部３２は、Ｉ／Ｏ側延長装置３０において一括データ転送制御に係る動作を行う。また、擬似対ＯＳ制御部３２は、擬似的な対ＯＳ制御部として動作し、ホスト側延長装置２０からネットワーク５０を介して受信したコマンド群をＩ／Ｏ通信制御部３３に転送する。Ｉ／Ｏ通信制御部３３は、Ｉ／Ｏ装置４０との通信を行い、擬似対ＯＳ制御部３２から転送されたコマンドをＩ／Ｏ装置４０に発行したり、Ｉ／Ｏ装置４０から得られるステータスを擬似対ＯＳ制御部３２に通知したりする。
【００２３】
また、本実施形態においては、ホスト１０のＩＯＰ１２とホスト側延長装置２０の対ＯＳ制御部２１との間にキュー（ＣＨＳＱ、ＣＨＲＱ）５１、５２が設けられ、ホスト側延長装置２０の対ＯＳ制御部２１とネットワーク制御部２２との間にキュー（ＴＸＱＣ、ＲＸＱＣ）５３、５４が設けられる。また、Ｉ／Ｏ側延長装置３０のネットワーク制御部３１と擬似対ＯＳ制御部３２との間にキュー（ＴＸＱＳ、ＲＸＱＳ）５６、５７が設けられる。このようにキュー５１〜５６を設けることで、各機能部間のコンテキストを切り離し、互いに非同期に動作させることで全体制御を効率化することができる。なお、キュー５１、５３、５５が、ＩＯＰ１２側からＩ／Ｏ装置４０側への送信方向に設けられるキューであり、キュー５２、５４、５６が、Ｉ／Ｏ装置４０側からＩＯＰ１２側への受信方向に設けられるキューである。
【００２４】
図２は、本実施形態における送受信システムの動作例を示すフローチャートである。図２には、一括データ転送機能によりコマンド群を転送して処理を行う場合のホスト側延長装置２０及びＩ／Ｏ側延長装置３０の動作を示している。まず、ステップＳ２０１にて、ホスト側延長装置２０は、ＩＯＰ１２からコマンド群を受信するまで待機する。ＩＯＰ１２からコマンド群を受信すると、次のステップＳ２０２にて、ホスト側延長装置２０は、受信したコマンド群の内の最初のコマンドのみをＩ／Ｏ側延長装置３０へ送信する。続いて、ステップＳ２０３にて、ホスト側延長装置２０は、最初のコマンドに対する応答（擬似応答）をＩＯＰ１２に返す。この応答（擬似応答）によりホスト１０上で動作するソフトウェアは、応答監視タイマをクリアし、Ｉ／Ｏ側延長装置３０からのコマンド再開依頼待ちとなる。
【００２５】
ステップＳ２０２においてホスト側延長装置２０から送信された最初のコマンドをＩ／Ｏ側延長装置３０が受信すると（Ｓ２０４）、ステップＳ２０５にて、Ｉ／Ｏ側延長装置３０は、受信した最初のコマンドをＩ／Ｏ装置４０へ発行する。最初のコマンドに対するＩ／Ｏ装置４０からの応答をＩ／Ｏ側延長装置３０が受けると、ステップＳ２０６にて、Ｉ／Ｏ側延長装置３０は、最初のコマンドに対する応答をホスト側延長装置２０へ送信する。
【００２６】
ステップＳ２０６においてＩ／Ｏ側延長装置３０から送信された最初のコマンドの応答をホスト側延長装置２０が受信すると（Ｓ２０７）、ステップＳ２０８にて、ホスト側延長装置２０は、ＩＯＰ１２を経由してソフトウェアに対してコマンド再開依頼を送信する。次に、ステップＳ２０９にて、ホスト側延長装置２０は、プリフェッチ動作を行いＩＯＰ１２からコマンド群を受信したか否かを判断する。
【００２７】
そして、コマンド群を受信していないとホスト側延長装置２０が判断した場合、ステップＳ２１０へ進み、ホスト側延長装置２０はエラー通知を行う。一方、コマンド群を受信したとホスト側延長装置２０が判断した場合、ステップＳ２１１へ進み、ホスト側延長装置２０は一括データ転送を実行し、ＩＯＰ１２から受信したコマンド群を一括データ転送機能によりＩ／Ｏ側延長装置３０へ送信する。
【００２８】
ホスト側延長装置２０から送信された二番目以降のコマンドをＩ／Ｏ側延長装置３０が受信すると（Ｓ２１２）、ステップＳ２１３にて、Ｉ／Ｏ側延長装置３０は、受信したコマンド群をＩ／Ｏ装置４０へ順次発行する。ステップＳ２１３において発行したコマンド群に対するＩ／Ｏ装置４０からの応答をＩ／Ｏ側延長装置３０が受けると、ステップＳ２１４にて、Ｉ／Ｏ側延長装置３０は、全コマンド群の処理の完了をホスト側延長装置２０へ送信する。
【００２９】
次に、ステップＳ２１５にて、ホスト側延長装置２０は、Ｉ／Ｏ側延長装置３０からのコマンド完了（処理完了）を受信したか否かを判断する。その結果、一括データ転送機能によりコマンド群をＩ／Ｏ側延長装置３０へ送信してから所定の時間が経過するまでＩ／Ｏ側延長装置３０からのコマンド完了を受信していないとホスト側延長装置２０が判断した場合、ステップＳ２１７へ進み、ホスト側延長装置２０はエラー通知を行う。
【００３０】
一方、一括データ転送機能によりコマンド群をＩ／Ｏ側延長装置３０へ送信してから所定の時間が経過する前にＩ／Ｏ側延長装置３０からのコマンド完了を受信したとホスト側延長装置２０が判断した場合、ステップＳ２１６にて、ホスト側延長装置２０は、リードデータにデータ化けがないか判断する。なお、ステップＳ２１６の処理は、コマンド群に応じた処理がリード処理である場合に実行し、リード処理以外である場合には処理を行わずに動作を終了する。
【００３１】
ステップＳ２１６での判断の結果、リードデータにデータ化けがあるとホスト側延長装置２０が判断した場合、ステップＳ２１７へ進み、ホスト側延長装置２０はエラー通知を行う。一方、リードデータにデータ化けがないとホスト側延長装置２０が判断した場合には動作を終了する。
【００３２】
図３は、本実施形態における送受信システムの動作シーケンスの例を示す図である。図３には、一括データ転送機能によりコマンド群を転送して処理を行う場合の動作シーケンスを示している。ホスト上で動作するソフトウェアからＩＯＳにコマンド群が送られ（３０１）、ＩＯＳによりＭＳＵ／ＩＯＰにコマンド群を含むデータが準備された（３０２）後、起動が指示される（３０３）。ここで、ＩＯＳは、ホスト上で動作するソフトウェアとＩ／Ｏ装置に対しＣＣＷ制御するソフトウェアである。また、コマンド群は、例えばＩ／Ｏ装置に対するライト操作であれば、最初のコマンド及び複数のライトコマンド（例えばｎ回のライト処理であればｎ個のライトコマンド）である。
【００３３】
起動の指示を受けると、ＭＳＵ／ＩＯＰは、コマンド群をホスト側延長装置へ送信する（コマンド起動）（３０４）。ホスト側延長装置は、コマンド群の内の最初のコマンドをＩ／Ｏ側延長装置へ送信し（３０５）、Ｉ／Ｏ側延長装置は、受信した最初のコマンドをＩ／Ｏ装置へ発行する（３０６）。また、ホスト側延長装置は、最初のコマンドをＩ／Ｏ側延長装置へ送信した後、ＭＳＵ／ＩＯＰを経由してソフトウェアへ応答（ＢＳＹ応答）を返す（３０７、３０８）。この応答によりソフトウェアは、応答監視タイマをクリアする。
【００３４】
Ｉ／Ｏ側延長装置は、最初のコマンドに対する応答をＩ／Ｏ装置から受けると（３０９）、最初のコマンドの応答をホスト側延長装置へ通知する（３１０）。ホスト側延長装置は、最初のコマンドの応答が通知されると、コマンド再開依頼（ＢＳＹ  ｔｏ  Ｆｒｅｅ応答）を送信する（３１１）。ホスト側延長装置から送信されたコマンド再開依頼は、ＭＳＵ／ＩＯＰを経由してソフトウェアに対して送信される。
【００３５】
その後、ホスト側延長装置は、プリフェッチ制御を開始してＭＳＵ／ＩＯＰから一括転送するコマンド群を取得する（３１２）。そして、ホスト側延長装置は、取得したコマンド群をＩ／Ｏ側延長装置へ一括転送し（３１３）、Ｉ／Ｏ側延長装置は、受信したコマンド群のコマンドをＩ／Ｏ装置へ順次発行する（３１４）。このとき、ホスト側延長装置は、ＭＳＵ／ＩＯＰから取得したコマンド群の各々のコマンドに対する擬似応答は行わずに、取得したコマンド群をそのままＩ／Ｏ側延長装置へ転送し、ＭＳＵ／ＩＯＰへはコマンド群に対する初期応答のみを返す（３１５）。
【００３６】
一括転送されたコマンド群に応じたすべての処理が完了すると、Ｉ／Ｏ装置からＩ／Ｏ側延長装置へ終了ステータスが通知され（３１６）、Ｉ／Ｏ側延長装置は、終了ステータスをホスト側延長装置へ通知する（３１７）。ホスト側延長装置は、Ｉ／Ｏ側からの終了ステータスが通知されると、処理完了通知（ＯＰＴＥＲＭ）を送信する（３１８）。ホスト側延長装置から送信された処理完了通知（ＯＰＴＥＲＭ）は、ＭＳＵ／ＩＯＰを経由してＩ／Ｏ完了通知としてソフトウェアに対して送信され、コマンド群に応じた処理が完了する。
【００３７】
ここで、一括転送されたコマンド群に応じたすべての処理がＩ／Ｏ装置で完了した場合には、Ｉ／Ｏ装置から終了ステータスが通知されるが、一括転送されたコマンド群に応じた処理の途中で異常等のイベントが発生した場合にはＩ／Ｏ装置からイベントが発生したコマンドのステータス情報としてステータス（異常等）が通知される。
【００３８】
このように本実施形態では、ホスト側延長装置は、プリフェッチ制御により取得した一括転送するコマンド群の各々のコマンドに対する擬似応答を行わずに、コマンド群をそのままＩ／Ｏ側延長装置へ転送する。そして、コマンド群に応じたすべての処理がＩ／Ｏ装置で完了した場合には、終了ステータスがＩ／Ｏ側からホスト側へ通知され、コマンド群に応じた処理の途中で異常等のイベントがＩ／Ｏ装置で発生した場合には、イベントが発生したコマンドのステータス情報としてステータス（異常等）がＩ／Ｏ側からホスト側へ通知される。
【００３９】
したがって、本実施形態によれば、複数のコマンドを一括転送して連続して処理を行うことができるとともに、複数のコマンドを一括転送してＩ／Ｏ処理を行う場合にホストとＩ／Ｏ装置との間でコマンド処理のタイミングの同期を取ることが可能となる。コマンド処理のタイミングの同期を取れることで、例えば、アプリケーションソフトで装置の動作を意識したリカバリ処理が不要となり、これまで使用条件が厳しかったアプリケーションの条件緩和が可能となり、システムの利便性を向上させることができる。
【００４０】
次に、本実施形態における初期起動擬似応答機能、一括データ転送機能、及びデータ化け防止機能について説明する。
＜初期起動擬似応答機能＞
本実施形態における初期起動擬似応答機能について説明する。本実施形態における初期起動擬似応答機能は、ホスト側延長装置２０が有する対ＯＳ制御部２１の擬似応答制御部２３及びＩＯ側延長装置３０が有する擬似対ＯＳ制御部３２により実現される。
【００４１】
図４は、本実施形態における初期起動擬似応答処理の例を示すフローチャートである。初期起動擬似応答処理では、ステップＳ４０１にて、ホスト側延長装置２０が、ＩＯＰ１２からのＣＣＷコマンド群の内の先頭（最初）のＣＣＷコマンドをＩ／Ｏ側延長装置３０へ送信する。次に、ステップＳ４０２にて、ホスト側延長装置２０が、初期起動応答（ＢＳＹ応答）をＩＯＰ１２に返す。この応答によりホスト１０上で動作するソフトウェアは、応答監視タイマをクリアする。
【００４２】
ステップＳ４０３にて、Ｉ／Ｏ側延長装置３０が、ホスト側延長装置２０から受信した先頭のＣＣＷコマンドに応じたＩ／Ｏ処理（コマンド処理）の実行をＩ／Ｏ装置４０に指示し、Ｉ／Ｏ装置４０がＩ／Ｏ処理（コマンド処理）を実行する。そして、ステップＳ４０４にて、Ｉ／Ｏ側延長装置３０が、Ｉ／Ｏ装置４０からＩ／Ｏ処理（コマンド処理）に係る初期ステータスを受信し、受信した初期ステータスをホスト側延長装置２０へ送信する。
【００４３】
Ｉ／Ｏ側延長装置３０から送信された初期ステータスをホスト側延長装置２０が受信すると、ステップＳ４０５にて、ホスト側延長装置２０が、ＩＯＰ１２を経由してソフトウェアに対してコマンド再開依頼（ＢＳＹ  ｔｏ  Ｆｒｅｅ応答）を送信する。そして、ホスト側延長装置２０は、図７に示すプリフェッチ制御決定フローへ進む（Ｓ４０６）。
【００４４】
図５は、初期起動擬似応答処理の処理シーケンスの例を示す図である。
ホスト上で動作するソフトウェアからＩＯＳにＣＣＷコマンド群が送られ（５０１）、ＩＯＳによりＭＳＵ／ＩＯＰにＣＣＷコマンド群を含むデータが準備された（５０２）後、起動が指示される（５０３）。起動の指示を受けると、ＭＳＵ／ＩＯＰは、ＣＣＷコマンド群をホスト側延長装置へ送信する（コマンド起動）（５０４）。
【００４５】
ホスト側延長装置は、先頭のＣＣＷコマンドをＩ／Ｏ側延長装置へ送信し（５０５）、Ｉ／Ｏ側延長装置は、受信したＣＣＷコマンドをＩ／Ｏ装置へ発行する。また、ホスト側延長装置は、先頭のＣＣＷコマンドをＩ／Ｏ側延長装置へ送信すると、ＭＳＵ／ＩＯＰを経由してソフトウェアへ応答（ＢＳＹ応答）を返す（５０７）。この応答によりソフトウェアは、応答監視タイマをクリアする。
【００４６】
Ｉ／Ｏ側延長装置は、先頭のＣＣＷコマンドに対する応答（初期ステータス）をＩ／Ｏ装置から受信すると（５０８）、受信した応答（初期ステータス）をホスト側延長装置へ通知する（５０９）。ホスト側延長装置は、Ｉ／Ｏ装置からの初期ステータスを受信すると、コマンド再開依頼（ＢＳＹ  ｔｏ  Ｆｒｅｅ応答）を送信する（５１０）。そして、ホスト側延長装置から送信されたコマンド再開依頼に対する応答として、ホスト側延長装置はコマンド再開が指示される（５１１）。
【００４７】
＜一括データ転送機能及びデータ化け防止機能＞
次に、本実施形態における一括データ転送機能及びデータ化け防止機能について説明する。本実施形態における一括データ転送機能は、ホスト側延長装置２０が有する対ＯＳ制御部２１のプリフェッチ制御部２４及びＩＯ側延長装置３０が有する擬似対ＯＳ制御部３２により実現される。また、本実施形態におけるデータ化け防止機能は、ホスト側延長装置２０が有する対ＯＳ制御部２１のプリフェッチ制御部２４により実現される。
【００４８】
本実施形態におけるホスト側延長装置２０は、例えば図６に示すようにプリフェッチ制御を行う。ホスト側延長装置２０は、コマンド種別がＷＲＩＴＥ（ライト）系である場合、Ｉ／Ｏ装置の種別にかかわらずＣＣＷコマンドのプリフェッチを行う。ホスト側延長装置２０は、コマンド種別がＲＥＡＤ（リード）系である場合、Ｉ／Ｏ装置の種別がテープ装置でありかつＲＥＡＤ（リード）コマンドであればＣＣＷコマンドのプリフェッチを行い、それ以外はプリフェッチを行わずにＣＣＷコマンドを１つずつフェッチする。
【００４９】
また、ホスト側延長装置２０は、コマンド種別がＳＥＮＳＥ（センス）系である場合、Ｉ／Ｏ装置の種別がプリンタ装置でありかつＳＩＢ（SenseIntermediateBuffer）コマンドであればＣＣＷコマンドのプリフェッチを行い、それ以外はプリフェッチを行わずにＣＣＷコマンドを１つずつフェッチする。ここで、ＳＩＢコマンドに係るプリフェッチ制御では、後述するデータ化け防止機能は動作しない。
【００５０】
ホスト側延長装置２０は、コマンド種別がＮＯＰである場合、Ｉ／Ｏ装置の種別にかかわらずＣＣＷコマンドのプリフェッチを行う。ただし、そのＮＯＰコマンドが最終ＣＣＷコマンドである場合、ＮＯＰ同期処理を行う。ここで、ＮＯＰ同期処理は、最終ＣＣＷコマンドであるＮＯＰコマンドまでをプリフェッチして１つ前のＣＣＷコマンドまでを起動し、起動したＣＣＷコマンドのＩ／Ｏ処理がすべて終了したのち、そのＮＯＰコマンドの位置から再フェッチを行う処理である。
【００５１】
ホスト側延長装置２０は、図６に示したようなプリフェッチ制御に従って、チェインが続く間はＣＣＷコマンドをプリフェッチし、プリフェッチしたＣＣＷコマンド群をＩ／Ｏ装置側へ一括転送する。これにより、同一ＣＣＷコマンドを連続で送信し、ソフトウェアと延長装置とＩ／Ｏ装置との間でコマンドの同期を取りつつ、システム全体のデータ転送性能を担保することが可能となる。
【００５２】
図７は、図６に示したプリフェッチ制御を実現するためのプリフェッチ制御決定処理の例を示すフローチャートである。プリフェッチ制御決定処理を開始すると、ステップＳ７０１にて、ホスト側延長装置２０は、ＣＣＷコマンドによる入出力操作の対象であるＩ／Ｏ装置の種別を判定する。入出力操作を指示するＩ／Ｏ装置がテープ装置であるとホスト側延長装置２０が判定した場合、ステップＳ７０２へ進み、ホスト側延長装置２０は、図８に示すテープ装置のプリフェッチ制御処理を実行する。
【００５３】
また、入出力操作を指示するＩ／Ｏ装置がプリンタ装置であるとホスト側延長装置２０が判定した場合、ステップＳ７０３へ進み、ホスト側延長装置２０は、図９に示すプリンタ装置のプリフェッチ制御処理を実行する。また、入出力操作を指示するＩ／Ｏ装置がコンソール装置であるとホスト側延長装置２０が判定した場合、ステップＳ７０４へ進み、ホスト側延長装置２０は、図１０に示すコンソール装置のプリフェッチ制御処理を実行する。
【００５４】
図８は、図７に示したステップＳ７０２において実行する、テープ装置のプリフェッチ制御処理の例を示すフローチャートである。テープ装置のプリフェッチ制御処理を開始すると、ステップＳ８０１にて、ホスト側延長装置２０は、ＣＣＷコマンドの種別を判定する。ＣＣＷコマンドがＷＲＩＴＥ系のコマンドであると判定した場合、ステップＳ８０２へ進み、ホスト側延長装置２０は、図１１に示すＷＲＩＴＥプリフェッチ処理を実行する。
【００５５】
ＣＣＷコマンドがＲＥＡＤ系のコマンド（ただしＲＥＡＤコマンドのみ）であると判定した場合、ステップＳ８０３へ進み、ホスト側延長装置２０は、図１３に示すＲＥＡＤ先行制御によるプリフェッチ処理を実行する。また、ＣＣＷコマンドがＳＥＮＳＥ系又はＲＥＡＤ  ＢＡＣＫＷＡＲＤ系のコマンドであると判定した場合、ステップＳ８０４にて、ホスト側延長装置２０は、１つのＣＣＷコマンドをフェッチして、Ｉ／Ｏ側延長装置３０へ送信する。ＣＣＷコマンドがＮＯＰコマンドであると判定した場合、ステップＳ８０５にて、ホスト側延長装置２０は、ＮＯＰ同期制御を実行する。
【００５６】
図９は、図７に示したステップＳ７０３において実行する、プリンタ装置のプリフェッチ制御処理の例を示すフローチャートである。プリンタ装置のプリフェッチ制御処理を開始すると、ステップＳ９０１にて、ホスト側延長装置２０は、ＣＣＷコマンドの種別を判定する。ＣＣＷコマンドがＷＲＩＴＥ系のコマンドであると判定した場合、ステップＳ９０２へ進み、ホスト側延長装置２０は、図１１に示すＷＲＩＴＥプリフェッチ処理を実行する。
【００５７】
ＣＣＷコマンドがＲＥＡＤ系のコマンドであると判定した場合、ステップＳ９０３にて、ホスト側延長装置２０は、１つのＣＣＷコマンドをフェッチして、Ｉ／Ｏ側延長装置３０へ送信する。また、ＣＣＷコマンドがＳＥＮＳＥ系又はＲＥＡＤ  ＢＡＣＫＷＡＲＤ系のコマンドであると判定した場合、ステップＳ９０４にて、ホスト側延長装置２０は、ＳＩＢコマンドであればプリフェッチを行い、それ以外は１つのＣＣＷコマンドをフェッチして、Ｉ／Ｏ側延長装置３０へ送信する。ＣＣＷコマンドがＮＯＰコマンドであると判定した場合、ステップＳ９０５にて、ホスト側延長装置２０は、ＮＯＰ同期制御を実行する。
【００５８】
図１０は、図７に示したステップＳ７０４において実行する、コンソール装置のプリフェッチ制御処理の例を示すフローチャートである。コンソール装置のプリフェッチ制御処理を開始すると、ステップＳ１００１にて、ホスト側延長装置２０は、ＣＣＷコマンドの種別を判定する。ＣＣＷコマンドがＷＲＩＴＥ系のコマンドであると判定した場合、ステップＳ１００２へ進み、ホスト側延長装置２０は、図１１に示すＷＲＩＴＥプリフェッチ処理を実行する。
【００５９】
ＣＣＷコマンドがＲＥＡＤ系、ＳＥＮＳＥ系、又はＲＥＡＤ  ＢＡＣＫＷＡＲＤ系のコマンドのコマンドであると判定した場合、ステップＳ１００３にて、ホスト側延長装置２０は、１つのＣＣＷコマンドをフェッチして、Ｉ／Ｏ側延長装置３０へ送信する。また、ＣＣＷコマンドがＮＯＰコマンドであると判定した場合、ステップＳ１００４にて、ホスト側延長装置２０は、ＮＯＰ同期制御を実行する。
【００６０】
図１１は、ＷＲＩＴＥプリフェッチ処理の例を示すフローチャートである。図１１に示すＷＲＩＴＥプリフェッチ処理は、図８に示したステップＳ８０２、図９に示したステップＳ９０２、及び図１０に示したステップＳ１００２において実行される。
【００６１】
ＷＲＩＴＥプリフェッチ処理を開始すると、ステップＳ１１０１にて、ホスト側延長装置２０は、ＩＯＰ１２を介してＭＣＵ１１からプリフェッチしたＣＣＷコマンド群を内部メモリに記憶する。次に、ステップＳ１１０２にて、ホスト側延長装置２０は、ＣＣＷコマンドの種別を判定し、コマンド種別が混在している場合には図１２に示すコマンド種別混在時のプリフェッチ制御に従って制御を行う。
【００６２】
図１２には、前（先行）のＣＣＷコマンドの種別と後（後続）のＣＣＷコマンドの種別とが異なるコマンド種別混在時のプリフェッチ制御の例を示している。図１２において、「継続」はプリフェッチ動作を継続する（あるいは開始する）ことを示しており、「中断」はプリフェッチ動作を中断し前のＣＣＷコマンドで同期することを示している。ここで、同一コマンドチェイン中においてプリフェッチ動作を中断した状況において、その後ＣＣＷコマンドが「継続」の条件を満たした場合、プリフェッチ動作を再開する。
【００６３】
なお、図１２において、「なし」はプリフェッチ動作が元からなく、同期処理を継続することを示している。また、後のＮＯＰコマンドが最終ＣＣＷコマンドである場合、ＮＯＰ同期処理に従う。また、ＣＣＷコマンドが、ＲＥＡＤ系：テープ装置かつＲＥＡＤ→ＮＯＰ→ＷＲＩＴＥ系と続いた場合、ＷＲＩＴＥ系のフェッチのタイミングでプリフェッチを中断する。
【００６４】
ステップＳ１１０２での処理の結果、コマンド種別に問題がないと判断した場合、ステップＳ１１０３にて、ホスト側延長装置２０は、ＩＯＰ１２を介してＭＣＵ１１からプリフェッチしたすべてのＣＣＷコマンド群をＩ／Ｏ側延長装置３０へ送信する。次に、ステップＳ１１０４にて、Ｉ／Ｏ側延長装置３０は、ホスト側延長装置２０から受信したＣＣＷコマンド群に応じたＩ／Ｏ処理（コマンド処理）の実行をＩ／Ｏ装置４０に指示し、Ｉ／Ｏ装置４０がＩ／Ｏ処理（コマンド処理）を実行する。
【００６５】
そして、ステップＳ１１０５にて、Ｉ／Ｏ側延長装置３０は、Ｉ／Ｏ装置４０からＩ／Ｏ処理（コマンド処理）に係るステータスを受信し、受信したステータスをホスト側延長装置２０へ送信する。続く、ステップＳ１１０６にて、ホスト側延長装置２０は、Ｉ／Ｏ側延長装置３０からのＩ／Ｏ完了通知をＩＯＰ２０を介してソフトウェアに対して送信する。
【００６６】
なお、ステップＳ１１０２での処理の結果、コマンド種別に問題がある、すなわちプリフェッチ動作を中断すると判断した場合、ステップＳ１１０７にて、ホスト側延長装置２０は、プリフェッチ動作を中断する。そして、プリフェッチ動作を中断する前までのＣＣＷコマンド完了を待ち、次のＣＣＷコマンド起動を待つ。
【００６７】
図１３は、図８に示したステップＳ８０３において実行する、ＲＥＡＤ先行制御によるプリフェッチ処理の例を示すフローチャートである。ＲＥＡＤ先行制御によるプリフェッチ処理を開始すると、ステップＳ１３０１にて、ホスト側延長装置２０は、ＩＯＰ１２を介してＭＣＵ１１からプリフェッチしたＣＣＷコマンド群を内部メモリに記憶する。次に、ステップＳ１３０２にて、ホスト側延長装置２０は、ＣＣＷコマンドの種別を判定し、コマンド種別が混在している場合には図１２に示したコマンド種別混在時のプリフェッチ制御に従って制御を行う。
【００６８】
ステップＳ１３０２での処理の結果、コマンド種別に問題がないと判断した場合、ステップＳ１３０３にて、ホスト側延長装置２０は、ＩＯＰ１２を介してＭＣＵ１１からプリフェッチしたＣＣＷコマンド群をＩ／Ｏ側延長装置３０へ送信する。次に、ステップＳ１３０４にて、Ｉ／Ｏ側延長装置３０は、ホスト側延長装置２０から受信したＣＣＷコマンド群に応じたＩ／Ｏ処理（コマンド処理）の実行をＩ／Ｏ装置４０に指示し、Ｉ／Ｏ装置４０がＩ／Ｏ処理（コマンド処理）を実行する。
【００６９】
そして、ステップＳ１３０５にて、Ｉ／Ｏ側延長装置３０は、Ｉ／Ｏ装置４０からＲＥＡＤ（リード）データを受信し、受信したＲＥＡＤデータをホスト側延長装置２０へ送信する。続いて、ステップＳ１３０６にて、ホスト側延長装置２０は、Ｉ／Ｏ側延長装置３０からのＲＥＡＤデータを内部バッファに保存する。次に、ステップＳ１３０７にて、ホスト側延長装置２０は、ＩＯＰ１２を介してＭＣＵ１１から１つずつＣＣＷコマンドをフェッチし直して、記憶していたプリフェッチしたＣＣＷコマンド群と比較する。このとき、ホスト側延長装置２０は、ＣＣＷコマンドのすべての要素について一致するか否かの比較を行う。
【００７０】
次に、ステップＳ１３０８にて、ホスト側延長装置２０は、記憶していたプリフェッチしたＣＣＷコマンドと、フェッチし直したＣＣＷコマンドとがすべて一致したか否かを判定する。ＣＣＷコマンドがすべて一致したと判定した場合、ステップＳ１３０９にて、ホスト側延長装置２０は、内部バッファに保存していたＲＥＡＤデータを出力してホスト内部のバッファにストアしＩ／Ｏ完了通知（ＲＥＡＤ完了通知）をＩＯＰ２０を介してソフトウェアに対して送信する。一方、一致しないＣＣＷコマンドがあったと判定した場合、ステップＳ１３１０にて、ホスト側延長装置２０は、想定外事象としてプログラムチェックをソフトウェア側に報告し、内部バッファに保存していたＲＥＡＤデータを廃棄する。
【００７１】
なお、ステップＳ１３０２での処理の結果、コマンド種別に問題がある、すなわちプリフェッチ動作を中断すると判断した場合、ステップＳ１３１１にて、ホスト側延長装置２０は、プリフェッチ動作を中断する。そして、プリフェッチ動作を中断する前までのＣＣＷコマンド完了を待ち、次のＣＣＷコマンド起動を待つ。
【００７２】
図１４は、ＲＥＡＤ先行制御によるプリフェッチ処理の処理シーケンスの例を示す図である。ホスト上で動作するソフトウェアからＩＯＳにコマンド群が送られ（１４０１）、ＩＯＳによりＭＳＵ／ＩＯＰにコマンド群を含むデータが準備された（１４０２）後、起動が指示される（１４０３）。起動の指示を受けると、ＭＳＵ／ＩＯＰは、コマンド群をホスト側延長装置へ送信する（コマンド起動）（１４０４）。
【００７３】
ホスト側延長装置は、先頭のＣＣＷコマンドをＩ／Ｏ側延長装置へ送信し（１４０５）、Ｉ／Ｏ側延長装置は、受信したＣＣＷコマンドをＩ／Ｏ装置へ発行する（１４０６）。また、ホスト側延長装置は、先頭のＣＣＷコマンドをＩ／Ｏ側延長装置へ送信すると、ＭＳＵ／ＩＯＰを経由してソフトウェアへ応答（ＢＳＹ応答）を返す（１４０７、１４０８）。この応答によりソフトウェアは、応答監視タイマをクリアする。
【００７４】
Ｉ／Ｏ側延長装置は、先頭のＣＣＷコマンドに対する応答をＩ／Ｏ装置から受けると（１４０９）、先頭のＣＣＷコマンドの応答をホスト側延長装置へ通知する（１４１０）。ホスト側延長装置は、先頭のＣＣＷコマンドの応答が通知されると、コマンド再開依頼（ＢＳＹ  ｔｏ  Ｆｒｅｅ応答）を送信する（１４１１）。ホスト側延長装置から送信されたコマンド再開依頼は、ＭＳＵ／ＩＯＰを経由してソフトウェアに対して送信される。
【００７５】
その後、ホスト側延長装置は、プリフェッチ制御を開始してＭＳＵ／ＩＯＰから一括転送するＣＣＷコマンド群をプリフェッチする（１４１２）。そして、ホスト側延長装置は、プリフェッチしたＣＣＷコマンド群を、内部メモリ（ＣＣＷ記憶域）に記憶する（１４１３）とともにＩ／Ｏ側延長装置へ一括転送する（１４１４）。
【００７６】
Ｉ／Ｏ側延長装置は、受信したＣＣＷコマンド群のコマンド（ＲＥＡＤコマンド）をＩ／Ｏ装置へ順次発行する（１４１５−１〜１４１５−Ｎ）。Ｉ／Ｏ装置がコマンド（ＲＥＡＤコマンド）に応じたＩ／Ｏ処理（ＲＥＡＤ処理）を実行しＲＥＡＤデータがＩ／Ｏ装置からＩ／Ｏ側延長装置へ出力されると（１４１６−１〜１４１６−Ｎ）、Ｉ／Ｏ側延長装置は、ＲＥＡＤデータをホスト側延長装置へ送信する（１４１７−１〜１４１７−Ｎ）。ホスト側延長装置は、受信したＲＥＡＤデータを内部バッファに保存する（１４１８）。
【００７７】
そして、ホスト側延長装置は、Ｉ／Ｏ側延長装置からのＲＥＡＤデータの受信を契機に、１つずつＣＣＷコマンドをフェッチし直して、内部メモリ（ＣＣＷ記憶域）に記憶していたＣＣＷコマンド（プリフェッチしたＣＣＷコマンド）と比較する。比較の結果、フェッチし直したＣＣＷコマンドと内部メモリに記憶していたＣＣＷコマンドが一致した場合、ホスト側延長装置は、内部バッファに保存していたＲＥＡＤデータを出力しホストのバッファにストアする（１４１９、１４２０）。また、比較の結果、フェッチし直したＣＣＷコマンドと内部メモリに記憶していたＣＣＷコマンドが一致しない場合、ホスト側延長装置は、内部バッファに保存していたＲＥＡＤデータを廃棄し、プログラムチェックをソフトウェア側に報告する（１４２１、１４２２）。
【００７８】
このようにしてプリフェッチしてＩＯ側延長装置に出力したＣＣＷコマンド（ＲＥＡＤコマンド）と、ＩＯ側延長装置からデータを受信した後に１つずつフェッチし直したＣＣＷコマンド（ＲＥＡＤコマンド）とを比較し、一致した場合にＩＯ側延長装置から受信したデータをホストに出力する。これにより、プリフェッチ後に書き換えられるなどＣＣＷコマンドが動的に書き換わるようなケースがあっても、正当なデータだけを取得することが可能になり、データを保護することができる。
【００７９】
ここで、本実施形態における送受信システムが有するセンス機能について説明する。センス機能は、Ｉ／Ｏ装置で発生した装置側の故障や異常等の情報をホスト上で動作するソフトウェア側へ通知する機能である。Ｉ／Ｏ装置から故障や異常等の情報を取得するためのＳＥＮＳＥ（センス）コマンドは、プロトコルの制約上、ホスト側延長装置での擬似応答によるタイムアウト防止策を適用できない。そこで、本実施形態では、Ｉ／Ｏ側延長装置が代行してＳＥＮＳＥコマンドを発行してＩ／Ｏ装置から故障や異常等の情報を示すＳＥＮＳＥ（センス）データを取得してホスト側に通知する。
【００８０】
図１５は、代行センス制御処理の例を示すフローチャートである。ステップＳ１５０１においてＩ／Ｏ側延長装置３０がＩ／Ｏ装置４０からＵＣＫ（ユニットチェック）ステータス通知を受信すると、ステップＳ１５０２にて、Ｉ／Ｏ側延長装置３０は、そのＩ／Ｏ装置４０へＳＥＮＳＥコマンドを発行する。そして、Ｉ／Ｏ側延長装置３０は、発行したＳＥＮＳＥコマンドに対する応答としてＩ／Ｏ装置４０からのＳＥＮＳＥデータを受信すると、受信したＳＥＮＳＥデータを内部バッファに保存する。次に、ステップＳ１５０３にて、Ｉ／Ｏ側延長装置３０は、受信したＳＥＮＳＥデータをＵＣＫステータスとともにホスト側延長装置２０へ送信する。
【００８１】
Ｉ／Ｏ側延長装置３０からＵＣＫステータス及びＳＥＮＳＥデータを受信したホスト側延長装置２０は、ステップＳ１５０４にて、ＵＣＫステータスをＩＯＰ１２に対してＩ／Ｏ完了として送信する。続いて、ステップＳ１５０５にて、ホスト側延長装置２０は、ＩＯＰ１２からＳＥＮＳＥコマンドを受信すると、ＳＥＮＳＥデータをＩＯＰ１２に送信し、処理を終了する。
【００８２】
図１６は、代行センス制御処理の処理シーケンスの例を示す図である。ホスト側からのコマンドに応じて、Ｉ／Ｏ側延長装置が例えばＷＲＩＴＥコマンドをＩ／Ｏ装置に発行し（１６０１）、その処理においてＩ／Ｏ装置で故障や異常等が発生すると、Ｉ／Ｏ装置が、ＵＣＫステータス通知をＩ／Ｏ側延長装置に送信する（１６０２）。Ｉ／Ｏ側延長装置は、Ｉ／Ｏ装置からＵＣＫステータス通知を受けると、そのＩ／Ｏ装置４０へＳＥＮＳＥコマンドを発行する（１６０４）。
【００８３】
Ｉ／Ｏ装置は、発行されたＳＥＮＳＥコマンドに対するＳＥＮＳＥデータをＩ／Ｏ側延長装置に返し（１６０４）、Ｉ／Ｏ側延長装置は、ＷＲＩＴＥコマンドの終了ステータス（ＵＣＫステータス）及びＳＥＮＳＥデータをホスト側延長装置に送信する（１６０５）。ホスト側延長装置は、Ｉ／Ｏ側延長装置からの終了ステータス（ＵＣＫステータス）及びＳＥＮＳＥデータを受信するとＭＳＵ／ＩＯＰへコマンド終了を通知し（１６０６）、ＭＳＵ／ＩＯＰは、ＵＣＫステータスが発生したコマンドをＩＯＳに通知する（１６０７）。
【００８４】
通知を受けたＩＯＳによりＭＳＵ／ＩＯＰにＳＥＮＳＥコマンドに係るデータが準備された（１６０８）後、起動が指示される（１６０９）。起動の指示を受けると、ＭＳＵ／ＩＯＰは、ＳＥＮＳＥコマンドをホスト側延長装置へ送信する（コマンド起動）（１６１０）。それに対して、ホスト側延長装置は、保持しているＳＥＮＳＥデータをＭＳＵ／ＩＯＰへ送信する（１６１１）。その後、ホスト側延長装置は、ＭＳＵ／ＩＯＰにコマンド終了を通知し（１６１２）、ＭＳＵ／ＩＯＰはホスト上のソフトウェアにＩ／Ｏ完了を通知する（１６１３）。
【００８５】
このように本実施形態では、Ｉ／Ｏ装置で故障や異常等が発生した場合、例えば図１７の１７０１に示すようにＩ／Ｏ側延長装置が代行してＳＥＮＳＥコマンドを発行しＳＥＮＳＥデータを取得することが可能となる。また、本実施形態におけるプリフェッチ制御によるコマンド処理（Ｉ／Ｏ処理）では、ソフトウェア、延長装置、Ｉ／Ｏ装置の間で同期が取れているので、Ｉ／Ｏ装置で故障や異常等が発生したコマンドのステータスでリカバリ要求することができ、ソフトウェアの種類に依存しないリカバリ処理を実現することが可能となる。
【００８６】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本実施形態に関し、さらに以下の付記を開示する。
【００８７】
（付記１）
情報処理装置に接続する送信装置と入出力装置に接続する受信装置とがネットワークを介して接続される送受信システムにおいて、
前記送信装置は、
前記入出力装置に対して発行する前記情報処理装置からの複数のコマンドを送信する場合、該複数のコマンドの内の最初のコマンドに対する前記情報処理装置への応答を行う応答部と、
前記情報処理装置への応答なしで前記情報処理装置から複数のコマンドを取得し前記受信装置に一括転送する転送部とを有し、
前記受信装置は、
前記送信装置から転送されたコマンドを前記入出力装置に発行する制御部と、
前記送信装置から複数のコマンドが一括転送された場合、該複数のコマンドのすべてのコマンドの処理が完了したときに処理完了を前記送信装置に通知する通知部とを有することを特徴とする送受信システム。
（付記２）
前記通知部は、前記送信装置から複数のコマンドが一括転送された場合、該複数のコマンドの処理途中で前記入出力装置で異常が発生したときに、異常が発生したコマンドのステータス情報を前記送信装置に通知することを特徴とする付記１記載の送受信システム。
（付記３）
前記送信装置は、前記受信装置に転送する複数のコマンドを内部メモリに記憶し、
前記内部メモリに記憶した複数のコマンドと前記情報処理装置から再び取得した複数のコマンドとを比較し、一致する場合に前記入出力装置からのデータを前記情報処理装置に出力することを特徴とする付記１又は２記載の送受信システム。
（付記４）
前記制御部は、前記入出力装置から異常が発生した通知を受けたことに応答して、異常に係る情報を取得するコマンドを前記入出力装置に発行することを特徴とする付記１〜３の何れか１項に記載の送受信システム。
（付記５）
前記転送部は、前記受信装置に複数のコマンドを転送する場合、該複数のコマンドの内の最初のコマンドに対する前記受信装置からの応答を前記送信装置が受信した後、該複数のコマンドの転送を再開することを特徴とする付記１〜４の何れか１項に記載の送受信システム。
（付記６）
ＦＣ−ＳＢ−２規格に準拠した転送方式で複数のコマンドの一括転送を行うことを特徴とする付記１〜５の何れか１項に記載の送受信システム。
（付記７）
情報処理装置に接続する送信装置と入出力装置に接続する受信装置とがネットワークを介して接続される送受信システムの制御方法において、
前記送信装置が有する応答部が、前記入出力装置に対して発行する前記情報処理装置からの複数のコマンドを送信する場合、該複数のコマンドの内の最初のコマンドに対する前記情報処理装置への応答を行い、
前記送信装置が有する転送部が、前記情報処理装置への応答なしで前記情報処理装置から複数のコマンドを取得し前記受信装置に一括転送し、
前記受信装置の制御部が、前記送信装置から転送されたコマンドを前記入出力装置に発行し、
前記受信装置の通知部が、前記送信装置から複数のコマンドが一括転送された場合、該複数のコマンドのすべてのコマンドの処理が完了したときに処理完了を前記送信装置に通知することを特徴とする送受信システムの制御方法。
（付記８）
情報処理装置に接続され、入出力装置に接続する受信装置にネットワークを介して接続する送信装置において、
前記入出力装置に対して発行する前記情報処理装置からの複数のコマンドを送信する場合、該複数のコマンドの内の最初のコマンドに対する前記情報処理装置への応答を行う応答部と、
前記情報処理装置への応答なしで前記情報処理装置から複数のコマンドを取得し前記受信装置に一括転送する転送部とを有することを特徴とする送信装置。
（付記９）
情報処理装置に接続する送信装置にネットワークを介して接続され、入出力装置に接続する受信装置において、
前記入出力装置に対して発行する前記情報処理装置からのコマンドを前記送信装置から受信し、前記入出力装置に発行する制御部と、
前記送信装置から複数のコマンドが一括転送された場合、該複数のコマンドのすべてのコマンドの処理が完了したときに処理完了を前記送信装置に通知する通知部とを有することを特徴とする受信装置。
【符号の説明】
【００８８】
１０  ホスト（情報処理装置）
１１  メモリユニット（ＭＳＵ）
１２  入出力制御部（ＩＯＰ）
２０  ホスト側延長装置
２１  対ＯＳ制御部
２２  ネットワーク制御部
２３  擬似応答制御部
２４  プリフェッチ制御部
２５  ネットワーク制御処理部
３０  Ｉ／Ｏ側延長装置
３１  ネットワーク制御部
３２  擬似対ＯＳ制御部
３３  Ｉ／Ｏ通信制御部
３４  ネットワーク制御処理部
４０  Ｉ／Ｏ装置
５０  ネットワーク
【図１】
2019016056.tif 000003
【図２】
2019016056.tif 000004
【図３】
2019016056.tif 000005
【図４】
2019016056.tif 000006
【図５】
2019016056.tif 000007
【図６】
2019016056.tif 000008
【図７】
2019016056.tif 000009
【図８】
2019016056.tif 000010
【図９】
2019016056.tif 000011
【図１０】
2019016056.tif 000012
【図１１】
2019016056.tif 000013
【図１２】
2019016056.tif 000014
【図１３】
2019016056.tif 000015
【図１４】
2019016056.tif 000016
【図１５】
2019016056.tif 000017
【図１６】
2019016056.tif 000018
【図１７】
2019016056.tif 000019
【図１８】
2019016056.tif 000020