JP7318423B2 - 通信制御装置、通信制御方法及び通信制御プログラム - Google Patents

通信制御装置、通信制御方法及び通信制御プログラム Download PDF

Info

Publication number
JP7318423B2
JP7318423B2 JP2019158366A JP2019158366A JP7318423B2 JP 7318423 B2 JP7318423 B2 JP 7318423B2 JP 2019158366 A JP2019158366 A JP 2019158366A JP 2019158366 A JP2019158366 A JP 2019158366A JP 7318423 B2 JP7318423 B2 JP 7318423B2
Authority
JP
Japan
Prior art keywords
command
instruction
communication control
host
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019158366A
Other languages
English (en)
Other versions
JP2021039396A (ja
Inventor
新 小出
征典 長沼
晶太郎 中山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019158366A priority Critical patent/JP7318423B2/ja
Priority to US16/996,966 priority patent/US11449328B2/en
Publication of JP2021039396A publication Critical patent/JP2021039396A/ja
Application granted granted Critical
Publication of JP7318423B2 publication Critical patent/JP7318423B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、通信制御装置、通信制御方法及び通信制御プログラムに関する。
情報処理装置の中には応答時間の厳格な遵守が要求されるものもある。特に、メインフレームなどにおいては、出力された命令に対して所定の時間内に応答を返すことが厳格に規定されている場合が多い。
ここで、ホストとなる情報処理装置とそのホストから命令を受けて処理を行うI/O(Input/Output)デバイスとが、例えば2000kmといった離れた拠点間に配置される場合がある。遠隔地に配置されたホストとI/Oデバイスとを広域ネットワークなどを介して接続する場合、ホストがI/Oデバイスへ命令を出力した場合にその応答がホストへ返ってくるまでの遅延が大きくなることが考えられる。このような環境において、応答時間への要求を確実に守るために、離れた拠点間に配置されたホストとI/Oデバイスとの間に、遅延を加味した処理を行い、ホストとI/Oデバイスとの間の通信を安定化させる通信制御装置が配置されることがある。このような通信制御装置には、命令を受信して直ぐにホストへ応答を返し、非同期でI/Oデバイスに対する命令の送信及び応答の受信を行う装置が存在する。
このような通信制御装置を有するシステム構成には、例えば、ホスト側に通信制御を行うホスト側通信制御装置が搭載され、広域ネットワークを超えた場所にI/Oデバイスに接続されるI/Oデバイス側通信制御装置が配置されるものある。この場合、ホスト側通信制御装置は、ホストの通信を行うチャネルの1つとして動作する。ホストは、ホスト側通信制御装置を、自装置に搭載された搭載I/Oデバイスとして認識する。
ホストにホスト側通信制御装置が搭載される構成の場合、ホストに電源が投入された際のホストの初期化が実行されると、ホスト側通信制御装置を含むホストに搭載された各デバイスに対してもリセットが実行され起動が実行される。この電源投入時のホストの初期化は、パワーオンリセットと呼ばれる場合がある。この際、ホストは、リセットされた各搭載I/Oデバイスの自動組み込みを実行する。ただし、ホストが組み込みを行おうとする搭載I/Oデバイスが接続されていない場合や電源断で利用不可能な場合、非稼働(Not Operational)といった応答がホストに返される。さらに、ホスト側通信制御装置の場合、拠点間のネットワークが不通の場合に非稼働の応答が返される。
ホストのパワーオンリセットにより、ホスト側通信制御装置が起動すると、ホスト側通信制御装置は、初期化処理によりネットワークの接続を開始する。この際、ホストとI/Oデバイスとのネットワークの接続完了までには数秒の時間がかかる場合がある。一方、ホストからのI/O命令は、早いとパワーオンリセット後数百ミリ秒後に発行される。ネットワーク接続処理中のホスト側通信制御装置にホストからI/O命令が発行された場合、ホスト側通信制御装置は、ネットワーク未開通を理由として非稼働の応答を返す。その結果、初期化中のため一時的にネットワークが不通であり異常状態はないにもかかわらず、ホストは搭載されたホスト側通信制御装置の使用が困難であると判定する。その場合、ホストは、ホスト側通信制御装置を使用した処理を実行しなくなるという問題がある。
この問題に対処するための技術として、ホストから送信されたI/O命令に対してビジーを擬似応答として返しホストに応答を待たせる従来技術がある。また、擬似応答の従来技術として、キーボードに代わって擬似応答をコンピュータに返す従来技術がある。また他にも、I/O命令の処理方法として、I/Oデバイスが処理実行中などの場合に、I/O命令を起動待ち行列で管理する従来技術がある。
特開2014-215724号公報 特開2001-265491号公報 特開平4-211857号公報
しかしながら、擬似応答を行う場合、I/O命令は応答後に破棄されるため、I/O命令の種類によっては擬似応答後にホストが要求の出し直しを行わない場合がある。例えば、以前の命令を取り消すキャンセルなどのI/O命令の場合、待たせるための応答が存在しないため、ホストは要求の出し直しを行わない。このように擬似応答されたI/O命令が残らないと、初期化完了後に擬似応答が行われたI/O命令を実行することが困難になってしまう。また、初期化中に複数のI/O命令を受信した場合、疑似応答した後のI/O命令の破棄などによりI/O命令発行元が指示した順序が守られなくなるおそれがある。例えば、キャンセル命令は、破棄されているのに、キャンセル対象のI/O命令が実行されるなどのおそれがある。また、順序の維持や出し直しの不実行などに対処するために、初期化完了後に実行するI/O命令の内容や順番などをホスト側通信制御装置で管理することが考えられる。しかし、大量に発行されるI/O命令をホスト側通信制御装置で保持することになり、メモリ領域の制約上実現が困難である。
開示の技術は、上記に鑑みてなされたものであって、初期化完了後にI/O命令を適切に処理する通信制御装置、通信制御方法及び通信制御プログラムを提供することを目的とする。
本願の開示する通信制御装置、通信制御方法及び通信制御プログラムの一つの態様において、通信制御部は、I/Oデバイスとの間のネットワーク接続を確立して通信を行ってI/O(Input Output)命令を送信する。格納部は、処理順にI/O命令を格納する。格納処理部は、前記通信制御部による前記ネットワーク接続の確立中に新たなI/O命命令を取得し、前記格納部に格納済みのI/O命令及び前記新たなI/O命令の種類及び前後関係を基に、前記格納部に格納済みのI/O命令の更新及び前記新たなI/O命令の前記格納部への格納を行う。応答部は、前記新たなI/O命令が処理実行指示の命令であれば、予め決められた擬似応答を命令送信元に返し、前記新たなI/O命令が前記通信制御部から前記I/Oデバイスに送信されたI/O命令の前記I/Oデバイスに対する破棄の命令又は前記I/Oデバイスの初期化の命令であれば、完了応答を前記命令送信元に返す。処理制御部は、前記ネットワーク接続の確立完了後、前記格納部に格納済みのI/O命令を前記処理順に前記通信制御部に送信させる。
1つの側面では、本発明は、初期化完了後にI/O命令を適切に処理することができる。
図1は、ホスト及びI/Oデバイスが離れた拠点に配置された情報システムのシステム構成図である。 図2は、実施例に係るホスト側通信制御装置のブロック図である。 図3は、ネットワーク状態管理テーブルの一例を表す図である。 図4は、I/O命令キューに対する更新処理を説明するための図である。 図5は、I/O命令受信時の状態に応じたホスト側通信制御装置の処理を示す図である。 図6は、パワーオンリセットによるホスト側通信制御装置の初期化のシーケンス図である。 図7は、初期化処理における論理パスの状態を表す状態遷移図である。 図8は、実施例に係るホスト側通信制御装置の動作のフローチャートである。 図9は、実施例に係るホスト側通信制御装置の初期化処理のフローチャートである。 図10は、I/O命令処理部が実行する命令待機処理のフローチャートである。 図11は、I/O命令キューの更新処理のフローチャートである。 図12は、ホスト側通信制御装置のハードウェア構成図である。
以下に、本願の開示する通信制御装置、通信制御方法及び通信制御プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する通信制御装置、通信制御方法及び通信制御プログラムが限定されるものではない。
図1は、ホスト及びI/Oデバイスが離れた拠点に配置された情報システムのシステム構成図である。本実施例に係る情報システムは、図1に示すように、ホスト1、広域ネットワーク2、I/Oデバイス側通信制御装置3及びI/Oデバイス4を有する。
I/Oデバイス4は、ホスト1との間でデータの送受信を行う対象となる装置である。I/Oデバイス4は、例えば、プリンタ装置、テープ記憶装置、及び、キーボードや表示装置などのコンソールである。I/Oデバイス4は、1つのホスト1に対して1つでもよいし複数存在してもよい。
ホスト1は、例えばメインフレームである。ホスト1は、I/Oプロセッサ10及びホスト側通信制御装置100が搭載される。ホスト1は、他にも、CPU(Central Processing Unit)、メモリ及びハードディスクなどを有するが図1では省略した。ホスト1は、電源が投入されると初期化が実行される。この電源投入時の初期化をパワーオンリセットと呼ぶ。
I/Oプロセッサ10は、I/Oデバイス4に対するI/O命令の生成及びホスト側通信制御装置100への送信を行う。また、I/Oプロセッサ10は、送信したI/O命令のI/Oデバイス4からの応答をホスト側通信制御装置100から受信する。このように、実際には、ホスト側通信制御装置100とホスト1本体とのI/O命令の送受信はI/Oプロセッサ10が行うが、以下の説明では、ホスト1がホスト側通信制御装置100とI/O命令の送受信を行うように説明する場合がある。
ホスト1から送出されるI/O命令には、コマンド系のI/O命令及びキャンセル系のI/O命令が存在する。コマンド系のI/O命令は、I/Oデバイス4を操作するための命令である。コマンド系のI/O命令には、記憶装置に対するデータの読み出し命令及び書き込み命令が含まれる。さらに、コマンド系のI/O命令には、テープ巻き戻し操作やコンソール画面消去操作なども含まれる。
キャンセル系のI/O命令には、キャンセル、クリア及びリセットといった3つの種類のI/O命令が存在する。キャンセルは、既に送出したコマンド系のI/O命令を破棄させる命令である。クリア及びリセットは、I/Oデバイス4を初期化させる命令である。キャンセル系のI/O命令には、ホスト1に処理完了を待たせるための応答が存在しない。そのため、例えば、キャンセル系のI/O命令の応答としてビジーを通知する擬似応答をホスト1が受信しても、ホスト1は、ビジーを無視してキャンセル系のI/O命令の再送は行わない。
ホスト側通信制御装置100は、I/Oデバイス側通信制御装置3との間で広域ネットワーク2を介したネットワーク接続を確立する。そして、ホスト側通信制御装置100は、ホスト1から送信されたI/O命令を受信し、確立したネットワーク接続を用いてI/Oデバイス側通信制御装置3へ発行する。また、ホスト側通信制御装置100は、I/Oデバイス4から送出された応答をI/Oデバイス側通信制御装置3との間で確立したネットワーク接続を用いて受信し、ホスト1へ転送する。さらに、ホスト側通信制御装置100は、I/Oデバイス側通信制御装置3と協働して、I/O命令の送受信における遅延を加味した処理を実行する。例えば、ホスト側通信制御装置100は、送信するデータの圧縮などを実行する。
また、ホスト側通信制御装置100は、ホスト1のパワーオンリセット時に、起動されて初期化が実行される。初期化実行時には、ホスト側通信制御装置100は、ネットワーク接続の確立を実行する。ホスト側通信制御装置100は、パワーオンリセットによるネットワーク接続の確立時にI/O命令をホストから受信した場合、受信したI/O命令を保持及び管理する命令待機処理を実行する。その後、初期化完了後に、ホスト側通信制御装置100は、確立したネットワーク接続を用いて保持するI/O命令をI/Oデバイス側通信制御装置3へ送信する。このホスト側通信制御装置100による命令待機処理については後で詳細に説明する。
広域ネットワーク2は、社内LAN(Local Area Network)などである。広域ネットワーク2は、例えば、2000km程度の離れた拠点を結ぶネットワークである。
I/Oデバイス側通信制御装置3は、I/Oデバイス4と広域ネットワーク2とを接続する。I/Oデバイス側通信制御装置3は、ホスト側通信制御装置100から発行されたI/O命令を広域ネットワーク2上の確立されたネットワーク接続を用いて受信する。そして、I/Oデバイス側通信制御装置3は、受信したI/O命令をI/Oデバイス4へ送信する。また、I/Oデバイス側通信制御装置3は、ホスト側通信制御装置100と協働して、I/O命令の送受信における遅延を加味した処理を実行する。
図2は、実施例に係るホスト側通信制御装置のブロック図である。図2では、広域ネットワーク2を省略して、ホスト側通信制御装置100とI/Oデバイス側通信制御装置3との間の接続を表すように図示した。図2に示すように、ホスト側通信制御装置100は、I/O命令処理部101、通信制御部102、ネットワーク処理部103及びネットワーク状態記憶部104を有する。
通信制御部102は、I/Oデバイス側通信制御装置3との間のネットワークの制御を行う。例えば、通信制御部102は、ホスト側通信制御装置100の起動時にネットワーク処理部103からネットワーク確立の指示を受ける。そして、通信制御部102は、I/Oデバイス側通信制御装置3との間でのネットワーク接続を確立する処理を実行する。具体的には、通信制御部102は、I/Oデバイス側通信制御装置3との間でTCPセッション接続を行う。次に、通信制御部102は、システムリセット要求(SYSTEMRESET_REQ)の送信、システムリセット応答(SYSTEMRESET_RESP)の受信、論理パスステータス変更要求(LPATH_STSCHG_REQ)送信をI/Oデバイス側通信制御装置3との間で行う。これにより、論理パスが確立する。その後、通信制御部102は、ネットワークの確立完了の通知をネットワーク処理部103へ出力する。
また、通信制御部102は、初期化処理が所定時間以上経過した場合、タイムアウトの通知をネットワーク処理部103から受ける。この場合、通信制御部102は、ネットワーク接続の確立を中止する。
また、通信制御部102は、I/O命令処理部101から入力されたI/O命令をI/Oデバイス側通信制御装置3へ向けて送信し、I/Oデバイス4に対してI/O命令を発行する。また、通信制御部102は、I/Oデバイス4から送出された応答をI/Oデバイス側通信制御装置3から受信する。そして、通信制御部102は、受信した応答をI/O命令処理部101へ出力する。
さらに、通信制御部102は、初期化完了後にI/Oデバイス側通信制御装置3との間で通信を行っている間に、論理パスが切断された場合、論理パスのパスIDとともに切断の通知をネットワーク状態更新部131へ出力する。
ネットワーク状態記憶部104は、I/Oデバイス側通信制御装置3との間のネットワーク状態が登録されたネットワーク状態管理テーブル201を有する。図3は、ネットワーク状態管理テーブルの一例を表す図である。ネットワーク状態管理テーブル201は、図3に示すように、タイマ情報、初期コネクション監視フラグ、監視中のスレッドID、監視中のパスID及び論理パスの状態が登録される。
ここで、ホスト側通信制御装置100とI/Oデバイス側通信制御装置3との間のネットワークについて説明する。ここでは、複数のI/Oデバイス4がホスト1に接続される場合で説明する。ホスト側通信制御装置100とI/Oデバイス側通信制御装置3との間には、論理パスが構築される。論理パスは1つでもよいし複数でもよい。論理パスには、異なるI/Oデバイス4とホスト側通信制御装置100とを接続する接続経路が複数含まれる。また、全ての論理パスに対して、ネットワーク接続のタイムアウトを監視するための1つのタイマが設けられる。
ネットワーク状態管理テーブル201は、論理パス毎に生成される。タイマ情報は、タイマの計測時間に基づくネットワーク接続のタイムアウトの情報である。初期コネクション監視フラグは、パワーオンリセットによる初期化実行時の命令待機処理におけるI/O命令の監視である初期コネクション監視を行っているか否かを表す情報である。例えば、初期コネクション監視フラグが「0」であれば初期コネクション監視が未実行であることを表し、初期コネクション監視フラグが「1」であれば初期コネクション監視が実行中であることを表す。また、監視中のスレッドIDは、初期コネクション監視において送受信するI/O命令が監視対象とされている各I/Oデバイス4に割り振られた識別情報であるスレッドIDを示す情報である。監視中パスIDは、初期コネクション監視において監視対象であるI/O命令が送受信される論理パスに割り当てられた識別情報であるパスIDを示す情報である。論理パスの状態は、論理パスが確立されているか否かを表す情報である。論理パスの状態が「0」であれば論理パスの状態が未確立であることを表し、論理パスの状態が「1」であれば論理パスが確立されていることを表す。
I/O命令処理部101は、命令処理部111、命令判定部112、I/O命令キュー113、コマンド系命令処理部114及びキャンセル系命令処理部115を有する。I/O命令処理部101は、通常運用モードと命令待機処理モードという2つの動作モードを有する。命令待機処理モードは、ホスト側通信制御装置100の初期化中の動作モードである。また、通常運用モードは、初期化中以外の状態での動作モードである。
命令判定部112は、I/Oプロセッサ10からI/O命令の入力を受ける。次に、命令判定部112は、ネットワーク状態記憶部104に格納されたネットワーク状態管理テーブル201を確認して通常運用モードであるいか命令待機処理モードであるかを判定する。命令判定部112は、ネットワーク状態管理テーブル201における初期コネクション監視フラグにより命令待機処理モードであるか否かの判定を行うことができる。通常運用モードであれば、命令判定部112は、取得したI/O命令を命令処理部111へ出力する。
一方、命令待機処理モードである場合、命令判定部112は、I/O命令キュー113にI/O命令が格納済みであるか否かを確認する。I/O命令キュー113にI/O命令が格納されていない場合、命令判定部112は、取得したI/O命令をI/O命令キュー113に格納する。さらに、命令判定部112は、I/O命令キュー113に格納したI/O命令がコマンド系か否かを判定する。I/O命令がコマンド系の場合、命令判定部112は、擬似応答の送信をコマンド系命令処理部114に指示する。これに対して、I/O命令がキャンセル系の場合、命令判定部112は、完了応答の送信をキャンセル系命令処理部115に指示する。
これに対して、I/O命令キュー113にI/O命令が格納済みの場合、命令判定部112は、受信したI/O命令がコマンド系であるかキャンセル系であるかを判定する。受信したI/O命令がコマンド系の場合、命令判定部112は、受信したI/O命令をコマンド系命令処理部114へ出力する。これに対して、受信したI/O命令がキャンセル系の場合、命令判定部112は、受信したI/O命令をキャンセル系命令処理部115へ出力する。
命令処理部111は、通常運用モードにおいてI/O命令の入力を命令判定部112から受ける。そして、命令処理部111は、ネットワーク状態記憶部104に格納されたネットワーク状態管理テーブル201を確認して論理パスが確立済みか否かを判定する。論理パスが確立済みの場合、命令処理部111は、取得したI/O命令を通信制御部102へ出力する。その後、命令処理部111は、出力したI/O命令に対する応答の入力を通信制御部102から受ける。そして、命令処理部111は、取得した応答がコマンド系のI/O命令に対する応答の場合、応答をI/Oプロセッサ10へ送信する。これに対して、論理パスが未確立の場合、命令処理部111は、非稼働(Not Operational)をI/Oプロセッサ10へ通知する。
また、命令処理部111は、ネットワーク状態記憶部104に格納されたネットワーク状態管理テーブル201を用いて、パワーオンリセットによるホスト側通信制御装置100の初期化が完了して命令待機処理モードから通常運用モードへ遷移したことを把握する。この場合、命令処理部111は、I/O命令キュー113に格納されたI/O命令を格納されたタイミングの古いものから順に取得して通信制御部102へ出力する。その後、命令処理部111は、I/O命令キュー113から読み出して出力したI/O命令の応答を通信制御部102から受ける。そして、命令処理部111は、取得した応答がコマンド系のI/O命令に対する応答の場合、応答をI/Oプロセッサ10へ送信する。この命令処理部111が、「処理制御部」の一例にあたる。
I/O命令キュー113は、FIFO(Fast In Fast Out)のキューである。I/O命令キュー113は、入力されたI/O命令を格納順に並ぶ格納済みのI/O命令の最後尾に配置する。また、I/O命令キュー113は、格納されたI/O命令の1つを削除し、そのI/O命令が存在した領域を詰めて順番にI/O命令を並べることが可能である。このI/O命令キュー113が、「格納部」の一例にあたる。
コマンド系命令処理部114は、命令待機処理モードにおいてコマンド系のI/O命令を処理する。コマンド系命令処理部114は、命令更新格納部141及び擬似応答実行部142を有する。
命令更新格納部141は、命令待機処理モードにおいて、I/O命令キュー113にI/O命令が格納済みの場合、命令判定部112から入力されたコマンド系のI/O命令を取得する。次に、命令更新格納部141は、I/O命令キュー113に格納済みのI/O命令の種類を確認する。
I/O命令キュー113に格納済みのI/O命令がキャンセル系の場合、命令更新格納部141は、新たに受信したコマンド系のI/O命令をI/O命令キュー113へ出力して格納させる。これに対して、I/O命令キュー113に格納済みのI/O命令がコマンド系の場合、そのコマンド系のI/O命令をI/O命令キュー113に破棄させる。そして、命令更新格納部141は、新たに受信したコマンド系のI/O命令をI/O命令キュー113へ出力して格納させる。このように、命令更新格納部141は、I/O命令の受信順から決まる前後関係にしたがって、I/O命令キュー113に格納済みのI/O命令の更新にあたる破棄及び受信したI/O命令の格納を行う。この命令更新格納部141が、「格納処理部」の一例にあたる。
擬似応答実行部142は、命令待機処理モードにおいて、I/O命令キュー113に格納済みのI/O命令が存在しない場合、擬似応答の送信の指示を命令判定部112から受ける。そして、擬似応答実行部142は、ビジーを表す擬似応答を生成する。その後、擬似応答実行部142は、生成したビジーを表す擬似応答をI/Oプロセッサ10へ送信する。
また、擬似応答実行部142は、命令待機処理モードにおいて、コマンド系命令処理部114がコマンド系のI/O命令の入力を命令判定部112から受けた場合、ビジーを表す擬似応答を生成する。その後、擬似応答実行部142は、生成したビジーを表す擬似応答をI/Oプロセッサ10へ送信する。この擬似応答実行部142が、「応答部」の一例にあたる。
キャンセル系命令処理部115は、命令待機処理モードにおいてキャンセル系のI/O命令を処理する。キャンセル系命令処理部115は、命令更新格納部151及び完了応答実行部152を有する。
命令更新格納部151は、命令待機処理モードにおいて、I/O命令キュー113にI/O命令が格納済みの場合、命令判定部112から入力されたキャンセル系のI/O命令を取得する。次に、命令更新格納部151は、I/O命令キュー113に格納済みのI/O命令の種類を確認する。
I/O命令キュー113に格納済みのI/O命令がコマンド系の場合、命令更新格納部151は、格納済みのI/O命令を残しつつ、新たに受信したコマンド系のI/O命令をI/O命令キュー113へ出力して格納させる。これに対して、I/O命令キュー113に格納済みのI/O命令がキャンセル系の場合、命令更新格納部151は、新たに受信したI/O命令と格納済みのI/O命令とのキャンセル系としての種別を確認する。
新たに受信したI/O命令とキャンセル系としての種別が同じ格納済みのI/O命令が存在する場合、命令更新格納部151は、その同種のキャンセル系のI/O命令をI/O命令キュー113に破棄させる。そして、命令更新格納部141は、新たに受信したキャンセル系のI/O命令をI/O命令キュー113へ出力して格納させる。この場合、破棄されたキャンセル系のI/O命令は、格納順に一列に並んだI/O命令の途中である場合があるが、その場合は、命令更新格納部151は、I/O命令キュー113に該当するキャンセル系のI/O命令を破棄させた後に、格納順に一列に並んだI/O命令の順番を詰めさせる。
これに対して、新たに受信したI/O命令とキャンセル系としての種別が同じ格納済みのI/O命令が存在しない場合、命令更新格納部151は、格納済みのI/O命令を維持しつつ、新たに受信したキャンセル系のI/O命令をI/O命令キュー113へ出力して格納させる。このように、命令更新格納部151は、I/O命令の受信順から決まる前後関係にしたがって、I/O命令キュー113に格納済みのI/O命令の更新にあたる破棄及び受信したI/O命令の格納を行う。この命令更新格納部151が、「格納処理部」の一例にあたる。
完了応答実行部152は、命令待機処理モードにおいて、I/O命令キュー113に格納済みのI/O命令が存在しない場合、完了応答の送信の指示を命令判定部112から受ける。そして、完了応答実行部152は、完了応答を生成する。その後、擬似応答実行部142は、生成した完了応答をI/Oプロセッサ10へ送信する。
また、完了応答実行部152は、命令待機処理モードにおいて、キャンセル系命令処理部115がキャンセル系のI/O命令の入力を命令判定部112から受けた場合、完了応答を生成する。その後、擬似応答実行部142は、生成した完了応答をI/Oプロセッサ10へ送信する。この完了応答実行部152が、「応答部」の一例にあたる。
このように、ホスト側通信制御装置100の初期化中にキャンセル系のI/O命令が発行された場合、同種の重複を除いてI/O命令キュー113に保存される。同種のI/O命令であれば、最も後に発行されたキャンセル系のI/O命令を実行することで、それ以前の同種のキャンセル系のI/O命令の実行した場合と同じ状態となる。したがって、ホスト1から再送されないキャンセル系のI/O命令を初期化中に受信した場合でも、ホスト側通信制御装置100は、取りこぼし無く確実にそのキャンセル系のI/O命令を実行することができる。
図4は、I/O命令キューに対する更新処理を説明するための図である。ここで、図4を参照して、I/O命令キュー113に対するI/O命令の種別及び順序に応じた更新処理をまとめて説明する。
格納済みのI/O命令がコマンド系で、新たに受信したI/O命令がコマンド系の場合、I/O命令キュー113に格納済みのコマンド系のI/O命令が破棄される。そして、新たに受信したコマンド系のI/O命令がI/O命令キュー113に格納される。
また、格納済みのI/O命令がコマンド系で、新たに受信したI/O命令がキャンセル系の場合、I/O命令キュー113に格納済みのコマンド系のI/O命令が破棄される。そして、新たに受信したキャンセル系のI/O命令がI/O命令キュー113に格納される。
また、格納済みのI/O命令がキャンセル系で、新たに受信したI/O命令がコマンド系の場合、I/O命令キュー113に格納済みのキャンセル系のI/O命令は残される。そして、新たに受信したコマンド系のI/O命令がI/O命令キュー113に格納される。
また、格納済みのI/O命令がキャンセル系で、新たに受信したI/O命令と同種のキャンセル系のI/O命令が存在する場合、I/O命令キュー113に格納済みの同種のキャンセル系のI/O命令は破棄される。そして、新たに受信したキャンセル系のI/O命令がI/O命令キュー113に格納される。
また、格納済みのI/O命令がキャンセル系で、新たに受信したI/O命令と同種のキャンセル系のI/O命令が存在しない場合、I/O命令キュー113に格納済みのキャンセル系のI/O命令は残される。そして、新たに受信したキャンセル系のI/O命令がI/O命令キュー113に格納される。
以上のことから、次のことが分かる。ここでは、I/O命令キュー113に格納された順番の早い方を前、遅い方を後ろとして説明する。同種のI/O命令はI/O命令キュー113には格納されない。コマンド系のI/O命令は最大1つが格納される。また、コマンド系のI/O命令は、キャンセル系のI/O命令の後には存在可能であるが、キャンセル系のI/O命令の前には存在しない。キャンセル系のI/O命令は、異種であれば最大3つ格納される。すなわち、I/O命令キュー113では、キャンセル系の3種類のI/O命令が格納され、その後ろにコマンド系のI/O命令が格納された状態が、最大4つのI/O命令が格納された状態である。
図5は、I/O命令受信時の状態に応じたホスト側通信制御装置の処理を示す図である。ここで、図5を参照してI/O命令受信時の状態に応じたホスト側通信制御装置100の動作をまとめて説明する。
ネットワーク状態管理テーブル201における初期コネクションフラグが「0」であり論理バスの状態が「0」である場合、ホスト側通信制御装置100の初期化が完了しており論理バスが未確立の状態である。この場合、ホスト側通信制御装置100は、非稼働の通知をI/Oプロセッサ10へ返す。ホスト1は、ネットワーク異常と判定する。I/Oデバイス側通信制御装置3の状態は、I/Oデバイス4が利用困難な状態である。
ネットワーク状態管理テーブル201における初期コネクションフラグが「0」であり論理バスの状態が「1」である場合、ホスト側通信制御装置100の初期化が完了しており論理バスが確立済みの状態である。この場合、ホスト側通信制御装置100は、I/Oプロセッサ10から送信されたI/O命令を実行する。I/Oデバイス側通信制御装置3の状態は、I/Oデバイス4が利用可能な状態である。
ネットワーク状態管理テーブル201における初期コネクションフラグが「1」であり論理バスの状態が「0」である場合、ホスト側通信制御装置100の初期化中であり論理バスが未確立の状態である。この場合、ホスト側通信制御装置100は、命令待機処理を実行する。ホスト1は、擬似応答もしくは完了応答を受信する。I/Oデバイス側通信制御装置3の状態は、ホスト側通信制御装置100と接続処理を実行中の状態である。
ネットワーク状態管理テーブル201における初期コネクションフラグが「1」であり論理バスの状態が「1」である場合、ホスト側通信制御装置100の初期化中であり且つ論理バスが確立された状態を指し、このような状態は存在しえない。
図2に戻って説明を続ける。ネットワーク処理部103は、I/Oデバイス側通信制御装置3との間のネットワークの状態を管理し、I/Oデバイス4の使用状態を管理する。ネットワーク処理部103は、ネットワーク状態更新部131、初期化処理部132及びタイマ監視部133を有する。
初期化処理部132は、ホスト1のパワーオンリセットによるホスト側通信制御装置100の起動時に、初期化処理を開始する。そして、初期化処理部132は、通信制御部102に、ネットワークの確立を依頼する。この際、初期化処理部132は、ネットワークを確立する対象のI/Oデバイス4のスレッドID及び確立する論理パスのパスIDを決定する。さらに、初期化処理部132は、ネットワークを確立する対象のI/Oデバイス4のスレッドID及び確立する論理パスのパスIDとともに、ネットワーク状態更新部131に初期化処理の開始を通知する。また、初期化処理部132は、初期化処理の開始をタイマ監視部133に通知する。
その後、ネットワークの確立が完了すると、初期化処理部132は、ネットワーク確立完了の通知を通信制御部102から受ける。そして、初期化処理部132は、初期化処理の完了をネットワーク状態更新部131へ通知する。また、初期化処理部132は、初期化処理の終了をタイマ監視部133に通知する。
また、初期化処理部132は、初期化処理が所定時間を超えた場合、タイマ監視部133からタイムアウトの通知を受ける。この場合、初期化処理部132は、タイムアウトを通信制御部102及びネットワーク状態更新部131に通知する。
タイマ監視部133は、初期化処理の開始の通知を初期化処理部132から受けると、自己が有するタイマを起動し、初期化処理の経過時間の計測を開始する。そして、タイマ監視部133は、予め決められた所定時間経過前に、初期化処理部132から初期化完了の通知を受けると、経過時間の計測を中止する。一方、初期化処理の経過時間が所定時間を超えた場合、タイマ監視部133は、初期化処理のタイムアウトを初期化処理部132に通知する。
ネットワーク状態更新部131は、ネットワーク状態記憶部104に格納されたネットワーク状態管理テーブル201を管理する。ネットワーク状態更新部131は、ネットワークを確立する対象のI/Oデバイス4のスレッドID及び確立する論理パスのパスIDを取得する。そして、ネットワーク状態更新部131は、論理パス毎にネットワーク状態管理テーブル201を生成しネットワーク状態記憶部104に格納させる。次に、ネットワーク状態更新部131は、生成した各ネットワーク状態管理テーブル201に、論理パスのパスID及びその論理パスを用いるI/Oデバイス4のスレッドIDを登録する。さらに、ネットワーク状態更新部131は、各ネットワーク状態管理テーブル201のタイマ情報を初期化処理中とする。また、ネットワーク状態更新部131は、各ネットワーク状態管理テーブル201の初期コネクション監視フラグを監視中を表す「1」に設定する。また、ネットワーク状態更新部131は、各ネットワーク状態管理テーブル201のパスの状態を、未確立を表す「0」に設定する。
その後、初期化処理部132から初期化完了の通知を受けると、ネットワーク状態更新部131は、各ネットワーク状態管理テーブル201のタイマ情報に完了を表す情報を登録する。また、ネットワーク状態更新部131は、各ネットワーク状態管理テーブル201の初期コネクション監視フラグを監視中を表す「0」に設定する。また、ネットワーク状態更新部131は、各ネットワーク状態管理テーブル201のパスの状態を、確立を表す「1」に設定する。
また、初期化処理部132からタイムアウトの通知を受けると、ネットワーク状態更新部131は、各ネットワーク状態管理テーブル201のタイマ情報にタイムアウトを表す情報を登録する。
また、ネットワーク状態更新部131は、初期化完了後の通常の通信を実行中に論理パスが切断されると、切断の通知を論理パスのパスIDとともに通信制御部102から受ける。この場合、ネットワーク状態更新部131は、通知されたパスIDが登録されたネットワーク状態管理テーブル201のパスの状態を、未確立を表す「0」に変更する。
次に、図6を参照して、パワーオンリセットによるホスト側通信制御装置100の初期化の全体的な流れを説明する。図6は、パワーオンリセットによるホスト側通信制御装置の初期化のシーケンス図である。
ホスト1に対して電源投入時にパワーオンリセットが実行される(ステップS1)。
ホスト1のパワーオンリセットが実行されると、ホスト側通信制御装置100は、ファームウェアの初期化を開始する(ステップS2)。
ホスト側通信制御装置100の初期化が開始されると、ホスト側通信制御装置100及びI/Oデバイス側通信制御装置3により、それらの間のTCPセッションの接続が開始される(ステップS3)。
ここでは、ホスト側通信制御装置100の初期化開始後に、ホスト1からコマンド系のI/O命令が発行される(ステップS4)。ホスト側通信制御装置100は、I/O命令を受信して、ビジーを通知する擬似応答をホスト1へ返す(ステップS5)。この場合は、I/O命令キュー113に格納済みのI/O命令が存在しないため、ホスト側通信制御装置100は、I/O命令キュー113の並び替えを行わずに、受信したI/O命令をI/O命令キュー113に格納する。
その後、ホスト側通信制御装置100とI/Oデバイス側通信制御装置3との間のTCPセッションの接続が完了する(ステップS6)。TCPセッションの接続が完了した時点では、ホスト側通信制御装置100の初期化は未完了である。
次に、ホスト側通信制御装置100は、システムリセット要求(SYSTEMRESET_REQ)をI/Oデバイス側通信制御装置3へ送信する(ステップS7)。I/Oデバイス側通信制御装置3は、システムリセット要求を受信する。
ここでは、この間にホスト1からコマンド系のI/O命令が発行される(ステップS8)。初期化は完了していないので、ホスト側通信制御装置100は受信したI/O命令とI/O命令キュー113に格納済みのI/O命令の種類及び受信順にしたがってI/O命令の並び替え及び格納を行う(ステップS9)。この場合、ホスト側通信制御装置100は、先にI/O命令キュー113に格納されたコマンド系のI/O命令を破棄して、新たに受信したコマンド系のI/O命令をI/O命令キュー113に格納する。
その後、ホスト側通信制御装置100は、ビジーを通知する擬似応答をホスト1へ返す(ステップS10)。
I/Oデバイス側通信制御装置3は、システムリセット要求に対するシステムリセット応答(SYSTEMRESET_RESP)をホスト側通信制御装置100へ送信する(ステップS11)。その後、論理パスの確立が完了すると、I/Oデバイス側通信制御装置3は、ネットワーク状態の確立を表す論理パスステータス変更応答(LPATH_STSCHG_REP)をホスト側通信制御装置100へ送信する(ステップS12)。ホスト側通信制御装置100は、論理パスステータス変更応答を受信することでネットワークの確立を確認して初期化処理を終了する。
初期化完了後、ホスト側通信制御装置100は、I/O命令キュー113に格納されたI/O命令を格納順にI/Oデバイス側通信制御装置3へ送信して、I/O命令キュー113に格納された各I/O命令をI/Oデバイス4に発行する(ステップS13)。
その後、I/Oデバイス側通信制御装置3は、I/O命令に対する応答をI/Oデバイス4から取得する。ここでは、I/O命令キュー113に格納されていたコマンド系のI/O命令の応答にデータが含まれる場合で説明する。I/Oデバイス側通信制御装置3は、I/Oデバイス4から受信したデータを含む応答をホスト側通信制御装置100へ送信する(ステップS14)。
ホスト側通信制御装置100は、I/O命令キュー113に格納されていたI/O命令の応答を受信すると、ビジー解除通知をホスト1に送信する(ステップS15)。
その後、ホスト側通信制御装置100は、I/Oデバイス側通信制御装置3から受信したデータを含む応答をホスト1へ送信する(ステップS16)。
ここで、図6における処理P1に含まれる処理がホスト側通信制御装置100の初期化で行われる処理である。この処理P1を実行する間、ホスト側通信制御装置100は、命令待機処理モードで動作して、タイマで初期化開始からの経過時間を監視する。そして、この処理P1の実行時間が所定時間を超えると、ホスト側通信制御装置100は、初期化処理がタイムアウトしたと判定する。また、処理P1のうち処理P2に含まれる処理が論理パスを確立するための処理である。この処理P2によりホスト側通信制御装置100とI/Oデバイス側通信制御装置3との間に論理パスが確立し、ホスト1によるI/Oデバイス4の使用が可能となる。
図7は、初期化処理における論理パスの状態を表す状態遷移図である。図7を参照して、ホスト側通信制御装置100による初期化処理における論理パスの状態の遷移を説明する。
初期化開始前は、ホスト側通信制御装置100とI/Oデバイス側通信制御装置3との間の論理パスは繋がっておらず、切断状態#00である(ステップS101)。
その後、初期化が開始されると、TCPセッションの接続が完了する(ステップS102)。TCPセッションの接続が完了したが論理パスは未接続の状態であるので、この場合、論理パスの状態は、切断状態#01である(ステップS103)。
その後、ホスト側通信制御装置100はシステムリセット要求をI/Oデバイス側通信制御装置3へ送信する(ステップS104)。これにより、論理パスの状態は、切断状態#02へ遷移する(ステップS105)。ただし、切断状態#01で初期化処理のタイムアウトが発生すると、論理パスの状態はステップS110へ遷移する。
論理パスが切断状態#02で、ホスト側通信制御装置100は、システムリセット応答を受信する(ステップS106)。さらに、ホスト側通信制御装置100は、論理パス状態変更応答を受信する。これにより、論理パスの状態は、接続状態に遷移する(ステップS107)。ただし、切断状態#02で初期化処理のタイムアウトが発生すると、論理パスの状態はステップS110へ遷移する。
論理パスが接続状態で、ネットワーク障害が発生すると、論理パスの状態はステップS110へ遷移する。
また、論理パスが接続状態で、ホスト側通信制御装置100は、管理者からセッション切断指示を受信すると切断処理を開始する(ステップS108)。これにより、論理パスの状態は、切断処理実行状態に遷移する(ステップS109)。その後、論理パスの状態はステップS110へ遷移する。
論理パスの各状態で、ホスト側通信制御装置100とI/Oデバイス側通信制御装置3との間のTCPセッションが切断される(ステップS110)。そして、論理パスの状態は、ステップS101に戻る。
ここで説明したように、図7に示す切断状態#00から接続状態に論理パスの状態が遷移すると、ホスト側通信制御装置100とI/Oデバイス側通信制御装置3との間に論理パスが確立する。これにより、ホスト側通信制御装置100の初期化が完了し、ホスト1によるI/Oデバイス4の使用が可能となる。
次に、図8を参照して、本実施例に係るホスト側通信制御装置100の動作の全体の流れを説明する。図8は、実施例に係るホスト側通信制御装置の動作のフローチャートである。
ホスト1に電源が投入され、パワーオンリセットが実行される(ステップS201)。
ホスト1のパワーオンリセットにより、ホスト1に搭載されたホスト側通信制御装置100は、自装置の初期化を実行する(ステップS202)。これにより、ホスト側通信制御装置100とI/Oデバイス側通信制御装置3との間にネットワーク接続が確立する。
その後、ホスト側通信制御装置100は、確立したネットワーク接続を用いてI/Oデバイス側通信制御装置3との間でI/O命令及び応答の送受信を行う通常動作を実行する(ステップS203)。
次に、図9を参照して、本実施例に係るホスト側通信制御装置100の初期化処理の流れを説明する。図9は、実施例に係るホスト側通信制御装置の初期化処理のフローチャートである。この図9のフローチャートで示した処理は、図8におけるステップS202で実行される処理の一例にあたる。
ホスト1のパワーオンリセットが実行されると、初期化処理部132は、ホスト側通信制御装置100の初期化を開始する。そして、初期化処理部132は、ネットワークの確立を通信制御部102に指示する。また、初期化処理部132は、初期化の開始をネットワーク状態更新部131及びタイマ監視部133に通知する。タイマ監視部133は、初期化のタイムアウトを監視するための自己が有するタイマをスタートさせる(ステップS301)。
通信制御部102は、初期化処理部132からの指示を受けて、ネットワークの確立を開始する(ステップS302)。
その後、命令判定部112は、I/O命令をホスト1から受信したか否かを判定する(ステップS303)。I/O命令を受信していない場合(ステップS303:否定)、命令判定部112は、ネットワーク状態管理テーブル201を用いて論理パスが確立されネットワーク接続が完了したか否かを判定する(ステップS304)。ネットワーク接続が完了していない場合(ステップS304:否定)、命令判定部112は、ステップS303へ戻る。
これに対して、ネットワーク接続が完了した場合(ステップS304:肯定)、初期化処理はステップS309へ進む。
一方、I/O命令を受信した場合(ステップS303:肯定)、命令判定部112及び命令処理部111は、ネットワーク状態管理テーブル201を用いて初期化処理が完了したか否かを判定する(ステップS305)。
初期化処理が完了していない場合(ステップS305:否定)、命令判定部112は、コマンド系命令処理部114及びキャンセル系命令処理部115とともに命令待機処理を実行する(ステップS306)。
これに対して、初期化処理が完了した場合(ステップS305:肯定)、命令処理部111は、I/O命令キュー113に順番に格納されたI/O命令の先頭から順にI/O命令をI/O命令キュー113から読み出し、通信制御部102を介してI/Oデバイス4へ発行する(ステップS307)。
命令処理部111は、通信制御部102を介してI/Oデバイス4からの応答を受信する。そして、命令処理部111は、I/Oデバイス4からの応答をホスト1へ送信する(ステップS308)。
命令判定部112は、I/O命令を受信せずにネットワーク接続が完了した場合又はI/O命令キュー113に格納したI/O命令の応答をI/Oデバイス4から受信した場合に初期化処理を終了する(ステップS309)。そして、I/O命令処理部101は、通常動作モードへ遷移する。
次に、図10を参照して、I/O命令処理部101が実行する命令待機処理の流れについて説明する。図10は、I/O命令処理部が実行する命令待機処理のフローチャートである。図10のフローチャートで示した処理は、図9におけるステップS306で実行される処理の一例にあたる。
命令判定部112は、ホスト1から新たに受信したI/O命令を取得する(ステップS401)。
次に、命令判定部112は、I/O命令キュー113に格納済みのI/O命令を取得する(ステップS402)。
命令判定部112は、受信したI/O命令がコマンド系か否かを判定する。そして、コマンド系命令処理部114の命令更新格納部141又はキャンセル系命令処理部115の場合、命令更新格納部151は、I/O命令キュー113の更新処理を実行する(ステップS403)。
その後、受信したI/O命令がコマンド系であれば、コマンド系命令処理部114の擬似応答実行部142が、擬似応答を生成する。また、受信したI/O命令がキャンセル系であれば、キャンセル系命令処理部115の完了応答実行部152が、完了応答を生成する(ステップS404)。
その後、受信したI/O命令がコマンド系であれば、コマンド系命令処理部114の擬似応答実行部142が、生成した擬似応答をホスト1へ返す。また、受信したI/O命令がキャンセル系であれば、キャンセル系命令処理部115の完了応答実行部152が、生成した完了応答をホスト1へ返す(ステップS405)。
次に、図11を参照して、I/O命令キュー113の更新処理の流れについて説明する。図11は、I/O命令キューの更新処理のフローチャートである。図11のフローチャートで示した処理は、図10におけるステップS403で実行される処理の一例にあたる。
命令判定部112は、I/O命令がI/O命令キュー113に格納済みか否かを判定する(ステップS501)。
I/O命令がI/O命令キュー113に存在しない場合(ステップS501:否定)、命令判定部112は、受信したI/O命令をI/O命令キュー113に保存する(ステップS502)。
一方、I/O命令がI/O命令キュー113に格納済みの場合(ステップS501:肯定)、命令判定部112は、受信したI/O命令がコマンド系か否かを判定する(ステップS503)。
受信したI/O命令がコマンド系の場合(ステップS503:肯定)、命令判定部112は、コマンド系命令処理部114に受信したI/O命令を出力する。コマンド系命令処理部114は、受信したI/O命令の入力を受ける。そして、命令更新格納部141は、I/O命令キュー113に格納済みのI/O命令にコマンド系が存在するか否かを判定する(ステップS504)。格納済みのI/O命令にコマンド系が存在しない場合(ステップS504:否定)、命令更新格納部141は、ステップS506へ進む。
これに対して、I/O命令キュー113に格納済みのI/O命令にコマンド系が存在する場合(ステップS504:肯定)、命令更新格納部141は、I/O命令キュー113に格納済みのコマンド系のI/O命令を破棄する(ステップS505)。
そして、命令更新格納部141は、受信したI/O命令をI/O命令キュー113の最後尾に格納する。
一方、受信したI/O命令がキャンセル系の場合(ステップS503:否定)、命令判定部112は、キャンセル系命令処理部115に受信したI/O命令を出力する。キャンセル系命令処理部115は、受信したI/O命令の入力を受ける。そして、命令更新格納部151は、I/O命令キュー113に格納済みのI/O命令にコマンド系が存在するか否かを判定する(ステップS507)。格納済みのI/O命令にコマンド系が存在しない場合(ステップS507:否定)、命令更新格納部151は、ステップS509へ進む。
これに対して、I/O命令キュー113に格納済みのI/O命令にコマンド系が存在する場合(ステップS507:肯定)、命令更新格納部151は、I/O命令キュー113に格納済みのコマンド系のI/O命令を破棄する(ステップS508)。
次に、命令更新格納部151は、受信したI/O命令と同種のキャンセル系のI/O命令がI/O命令キュー113に格納済みのI/O命令に存在するか否かを判定する(ステップ509)。格納済みのI/O命令と同種のキャンセル系のI/O命令が存在しない場合(ステップS509:否定)、命令更新格納部151は、ステップS511へ進む。
これに対して、格納済みのI/O命令と同種のキャンセル系のI/O命令が存在する場合(ステップS509:肯定)、命令更新格納部151は、受信したI/O命令と同種の格納済みのキャンセル系のI/O命令を破棄する(ステップS510)。
その後、命令更新格納部151は、受信したI/O命令をI/O命令キュー113の最後尾に格納する(ステップS511)。
(ハードウェア構成)
図12は、ホスト側通信制御装置のハードウェア構成図である。図12に示すように、ホスト側通信制御装置100は、例えば、CPU91、メモリ92及びネットワークインタフェース93を有する。CPU91、メモリ92及びネットワークインタフェース93は、バス94で接続される。
バス94は、ホスト1のI/Oプロセッサ10から延びるバスに接続される。ネットワークインタフェース93は、広域ネットワーク2を介してI/Oデバイス側通信制御装置3に接続するためのインタフェースである。
メモリ92は、図2に例示したI/O命令キュー113及びネットワーク状態記憶部104の機能を実現する。また、メモリ92は、図2に例示した、I/O命令処理部101、通信制御部102ネットワーク処理部103の機能を実現するプログラムを含む各種プログラムを格納する。
CPU91は、メモリ92に格納された各種プログラムを読みだしてメモリ92上に展開して実行することで、図2に例示した、I/O命令処理部101、通信制御部102ネットワーク処理部103の機能を実現する。
以上に説明したように、本実施例に係るホスト側通信制御装置は、ホストのパワーオンリセット時の自装置の初期化中に、受信したI/O命令及びキューに格納済みのI/O命令の種別及び受信順から、I/O命令の配置を決定してFIFOキューを更新する。その後、初期化が完了すると、ホスト側通信制御装置は、キューに格納されたI/O命令を並び順に取得して、I/Oデバイスへ発行する。例えば、ホスト側通信制御装置は、初期化中の一時的なネットワークの不通によりI/Oデバイスが使用できない状態で、キャンセル系のI/O命令などのホストから再送されない可能性のあるI/O命令を受信する場合がある。そのような場合にも、ホスト側通信制御装置は、再送されない可能性のある命令を記憶し、ネットワーク接続後にI/Oデバイスに発行することができる。これにより、命令の不実行を抑制することが可能である。
また、I/O命令の種別及び受信順で決定される前後関係からキューにおけるI/O命令の配置を決定することで、ホストから指示された処理順を守ってI/O命令を実行することができる。このように、本実施例に係るホスト側通信制御装置は、初期化完了後に初期化中に受信したI/O命令を適切に処理することができる。さらに、キューに格納されるI/O命令の数を抑えることができ、ホスト側通信制御デバイスのメモリ領域を小さく抑えることができる。
1 ホスト
2 広域ネットワーク
3 I/Oデバイス側通信制御装置
4 I/Oデバイス
10 I/Oプロセッサ
100 ホスト側通信制御装置
101 I/O命令処理部
102 通信制御部
103 ネットワーク処理部
104 ネットワーク状態記憶部
111 命令処理部
112 命令判定部
113 I/O命令キュー
114 コマンド系命令処理部
115 キャンセル系命令処理部
131 ネットワーク状態更新部
132 初期化処理部
133 タイマ監視部
141 命令更新格納部
142 擬似応答実行部
151 命令更新格納部
152 完了応答実行部

Claims (5)

  1. I/O(Input Output)デバイスとの間のネットワーク接続を確立して通信を行ってI/O命令を送信する通信制御部と、
    処理順にI/O命令を格納する格納部と、
    前記通信制御部による前記ネットワーク接続の確立中に新たなI/O命令を取得し、前記格納部に格納済みのI/O命令及び前記新たなI/O命令の種類及び前後関係を基に、前記格納部に格納済みのI/O命令の更新及び前記新たなI/O命令の前記格納部への格納を行う格納処理部と、
    前記新たなI/O命令が前記I/Oデバイスに対するI/O処理実行の命令であれば、予め決められた擬似応答を命令送信元に返し、前記新たなI/O命令が前記通信制御部から前記I/Oデバイスに送信されたI/O命令の前記I/Oデバイスに対する破棄の命令又は前記I/Oデバイスに対して前記I/Oデバイスの初期化を指示する命令であれば、完了応答を前記命令送信元に返す応答部と、
    前記ネットワーク接続の確立完了後、前記格納部に格納済みのI/O命令を前記処理順に前記通信制御部に送信させる処理制御部と
    を備えたことを特徴とする通信制御装置。
  2. 前記格納処理部は、前記格納部に格納済みのI/O命令及び前記新たなI/O命令の種類及び前後関係を基に、前記格納部に格納済みのI/O命令のいずれかを削除するか否かを決定し、前記削除を決定した前記格納部に格納済みのI/O命令を前記格納部から削除し、前記格納部に格納済みのI/O命令の後に処理されるI/O命令として前記新たなI/O命令を前記格納部に格納することを特徴とする請求項1に記載の通信制御装置。
  3. 前記格納処理部は、前記新たなI/O命令が前記通信制御部から前記I/Oデバイスに送信されたI/O命令の前記I/Oデバイスに対する破棄の命令又は前記I/Oデバイスに対して前記I/Oデバイスの初期化を指示する命令のいずれかの場合、前記格納部に格納済みのI/O命令のうち前記新たなI/O命令と同じ種類のI/O命令を削除して、前記新たなI/O命令の前記格納部への格納を行うことを特徴とする請求項1又は2に記載の通信制御装置。
  4. I/O命令の送信に使用するI/Oデバイスとの間のネットワーク接続の確立を開始し、
    前記ネットワーク接続の確立中に新たなI/O命令を取得し、
    記憶装置に処理順に格納された記憶装置に格納済みのI/O命令及び前記新たなI/O命令の種類及び前後関係を基に、前記記憶装置に格納済みのI/O命令の更新及び前記新たなI/O命令の前記記憶装置への格納を行い、
    前記新たなI/O命令がI/Oデバイスに対するI/O処理実行の命令であれば、予め決められた擬似応答を命令送信元に返し、前記新たなI/O命令が前記I/Oデバイスに送信されたI/O命令の前記I/Oデバイスに対する破棄の命令又は前記I/Oデバイスに対して前記I/Oデバイスの初期化を指示する命令であれば、完了応答を前記命令送信元に返し、
    前記ネットワーク接続の確立完了後、前記記憶装置に格納済みのI/O命令を前記処理順に送信する
    ことを特徴とする通信制御方法。
  5. コンピュータに
    I/O命令の送信に使用するI/Oデバイスとの間のネットワーク接続の確立を開始させ、
    前記ネットワーク接続の確立中に新たなI/O命令を取得させ、
    記憶装置に処理順に格納された記憶装置に格納済みのI/O命令及び前記新たなI/O命令の種類及び前後関係を基に、前記記憶装置に格納済みのI/O命令の更新及び前記新たなI/O命令の前記記憶装置への格納を行わせ、
    前記新たなI/O命令がI/Oデバイスに対するI/O処理実行の命令であれば、予め決められた擬似応答を命令送信元に返し、前記新たなI/O命令が前記I/Oデバイスに送信されたI/O命令の前記I/Oデバイスに対する破棄の命令又は前記I/Oデバイスに対して前記I/Oデバイスの初期化を指示する命令であれば、完了応答を前記命令送信元に返し、
    前記ネットワーク接続の確立完了後、前記記憶装置に格納済みのI/O命令を前記処理順に送信させる
    ことを特徴とする通信制御プログラム。
JP2019158366A 2019-08-30 2019-08-30 通信制御装置、通信制御方法及び通信制御プログラム Active JP7318423B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019158366A JP7318423B2 (ja) 2019-08-30 2019-08-30 通信制御装置、通信制御方法及び通信制御プログラム
US16/996,966 US11449328B2 (en) 2019-08-30 2020-08-19 Communication control device, communication control method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019158366A JP7318423B2 (ja) 2019-08-30 2019-08-30 通信制御装置、通信制御方法及び通信制御プログラム

Publications (2)

Publication Number Publication Date
JP2021039396A JP2021039396A (ja) 2021-03-11
JP7318423B2 true JP7318423B2 (ja) 2023-08-01

Family

ID=74682296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019158366A Active JP7318423B2 (ja) 2019-08-30 2019-08-30 通信制御装置、通信制御方法及び通信制御プログラム

Country Status (2)

Country Link
US (1) US11449328B2 (ja)
JP (1) JP7318423B2 (ja)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000207234A (ja) 1999-01-08 2000-07-28 Mitsubishi Electric Corp 通信システム
JP2001290607A (ja) 2000-04-06 2001-10-19 Matsushita Electric Ind Co Ltd デバイスドライバのコマンドキューイング制御方法及びコンピュータシステム
JP2003008615A (ja) 2001-06-27 2003-01-10 Nec Eng Ltd パケットヘッダ変換機能を有する通信制御装置
WO2006114822A1 (ja) 2005-04-01 2006-11-02 Fujitsu Limited Dmaコントローラ、ノード、データ転送制御方法、及びプログラム
JP2007019767A (ja) 2005-07-06 2007-01-25 Uniden Corp Ip電話機
JP2008072521A (ja) 2006-09-14 2008-03-27 Fujitsu Ltd 通信装置、通信方法及び通信プログラム
JP2012134645A (ja) 2010-12-20 2012-07-12 Fujitsu Ltd 中継装置および通信方法
JP2018206105A (ja) 2017-06-06 2018-12-27 日本電気株式会社 通信制御方法、プログラムおよび装置
JP2019016056A (ja) 2017-07-04 2019-01-31 富士通株式会社 送受信システム、送受信システムの制御方法、送信装置、及び受信装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07104833B2 (ja) 1990-03-09 1995-11-13 富士通株式会社 マルチプロセッサシステム
KR950008837B1 (ko) 1990-03-09 1995-08-08 후지쓰 가부시끼가이샤 멀티 프로세서 시스템용 제어시스템
US5859973A (en) * 1996-08-21 1999-01-12 International Business Machines Corporation Methods, system and computer program products for delayed message generation and encoding in an intermittently connected data communication system
JP2001265491A (ja) 2000-03-16 2001-09-28 Katsuyuki Yumoto コンピュータ用疑似キーボード装置
US20050198379A1 (en) * 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7346762B2 (en) * 2006-01-06 2008-03-18 Apple Inc. Replacing instruction and corresponding instructions in a queue according to rules when shared data buffer is accessed
US8006003B2 (en) * 2008-02-29 2011-08-23 International Business Machines Corporation Apparatus, system, and method for enqueue prioritization
JP6207213B2 (ja) 2013-04-23 2017-10-04 キヤノン株式会社 情報処理装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000207234A (ja) 1999-01-08 2000-07-28 Mitsubishi Electric Corp 通信システム
JP2001290607A (ja) 2000-04-06 2001-10-19 Matsushita Electric Ind Co Ltd デバイスドライバのコマンドキューイング制御方法及びコンピュータシステム
JP2003008615A (ja) 2001-06-27 2003-01-10 Nec Eng Ltd パケットヘッダ変換機能を有する通信制御装置
WO2006114822A1 (ja) 2005-04-01 2006-11-02 Fujitsu Limited Dmaコントローラ、ノード、データ転送制御方法、及びプログラム
JP2007019767A (ja) 2005-07-06 2007-01-25 Uniden Corp Ip電話機
JP2008072521A (ja) 2006-09-14 2008-03-27 Fujitsu Ltd 通信装置、通信方法及び通信プログラム
JP2012134645A (ja) 2010-12-20 2012-07-12 Fujitsu Ltd 中継装置および通信方法
JP2018206105A (ja) 2017-06-06 2018-12-27 日本電気株式会社 通信制御方法、プログラムおよび装置
JP2019016056A (ja) 2017-07-04 2019-01-31 富士通株式会社 送受信システム、送受信システムの制御方法、送信装置、及び受信装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
堀田 倫英,Linux&FreeBSDデバイスドライバ作成術 基礎編,Software Design,日本,株式会社技術評論社,1999年04月18日,第102号,p. 41-43

Also Published As

Publication number Publication date
US20210064358A1 (en) 2021-03-04
US11449328B2 (en) 2022-09-20
JP2021039396A (ja) 2021-03-11

Similar Documents

Publication Publication Date Title
US7434094B2 (en) Remote copy processing method, program, and system
JP2006217283A (ja) データ転送方法、データ転送プログラム、情報処理端末装置及び情報システム
JP5731334B2 (ja) インシデント・プールの管理方法、システムおよびコンピュータ・プログラム
JP4805116B2 (ja) 情報処理システム、情報処理システムの制御方法、サービス利用装置及びサービス提供装置
US6976072B2 (en) Method and apparatus for managing job queues
US20040049553A1 (en) Information processing system having data migration device
EP3176980A1 (en) Unified server communication method, baseboard management controller and server
US8867063B2 (en) Information processing device, method and record medium for implementing status monitor
US10013367B2 (en) I/O processing system including dynamic missing interrupt and input/output detection
JP2008112447A (ja) ホストの入力/出力(i/o)活動を変更し、i/o活動が向けられるストレージ・ドライブが要求された情報にアクセスすることを可能にする方法、システム及び製品
JP4408590B2 (ja) 印刷システム及び印刷制御装置及び方法
JP2006060509A (ja) 中継装置および中継装置の再起動方法並びに中継装置用ソフトウェアプログラム
JP7318423B2 (ja) 通信制御装置、通信制御方法及び通信制御プログラム
JP2010092336A (ja) ストレージシステム及び通信方法
US20110231726A1 (en) Repeater and method
JP3583357B2 (ja) ディレクトリサーバでの端末機動作判断装置及びその方法
JP6221972B2 (ja) ファームウェアの更新システムおよび更新制御方法
US10491544B2 (en) Consistency control of a logical path passing through a relay device
US20070094369A1 (en) Methods and devices for disconnecting external storage devices from a network-attached storage device
JP4432520B2 (ja) 通信制御装置
JPWO2007099587A1 (ja) コンピュータシステム及びコンピュータシステム構成方法
CN110286861B (zh) 信息处理装置、设备管理装置、记录介质
TW201820137A (zh) 具有重啟功能的裝置
US20130007318A1 (en) Methods and structure for selective propagation of sas broadcast(change) primitives
JP3982468B2 (ja) ネットワークスキャニングシステム、ネットワークスキャナ及びネットワークスキャニングユニット

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230529

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230703

R150 Certificate of patent or registration of utility model

Ref document number: 7318423

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150