JP5902702B2 - イニシエータ装置、ターゲット装置、通信システム、タイムアウト検出方法、およびタイムアウト検出プログラム - Google Patents

イニシエータ装置、ターゲット装置、通信システム、タイムアウト検出方法、およびタイムアウト検出プログラム Download PDF

Info

Publication number
JP5902702B2
JP5902702B2 JP2013536343A JP2013536343A JP5902702B2 JP 5902702 B2 JP5902702 B2 JP 5902702B2 JP 2013536343 A JP2013536343 A JP 2013536343A JP 2013536343 A JP2013536343 A JP 2013536343A JP 5902702 B2 JP5902702 B2 JP 5902702B2
Authority
JP
Japan
Prior art keywords
access
timeout
access request
target device
storage
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
JP2013536343A
Other languages
English (en)
Other versions
JPWO2013124918A1 (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2013536343A priority Critical patent/JP5902702B2/ja
Publication of JPWO2013124918A1 publication Critical patent/JPWO2013124918A1/ja
Application granted granted Critical
Publication of JP5902702B2 publication Critical patent/JP5902702B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/067Generation of reports using time frame reporting
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • H04L1/1883Time-out mechanisms using multiple timers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals

Description

本発明は、連続して発生する複数のアクセス要求に対して、各アクセス要求のタイムアウト検出を行うイニシエータ装置、ターゲット装置、通信システム、タイムアウト検出方法、およびタイムアウト検出プログラムに関する。
従来の通信システムでは、イニシエータ装置が、無線区間を介して、ターゲット装置に接続されたストレージに対してアクセスを行うことがある。さらに、このような通信システムには、イニシエータ装置が、最初にアクセス要求を送信した後、それに対するアクセス応答を受信する前に、連続して複数のアクセス要求を発行するものがある。これにより、通信システムは、無線通信のレイテンシに起因する性能の低下を避けることができる。
複数のアクセス要求が連続して発行される場合のタイムアウト検出処理は、通常アクセス要求毎に管理される複数のタイマを用いて処理される。そこで、そのような複数のタイマ管理の煩雑さを回避し、複数のアクセス要求に関するタイムアウト検出処理を1つのタイマで実現する従来技術が、特許文献1および特許文献2に開示されている。特許文献1および特許文献2に開示の従来技術は、タイムアウトを検出する際の基準値として用いるタイムアウト時間を、同時に実行しているアクセス要求数に応じて算出している。
特開2009−223702号公報 特開2000−099413号公報
しかしながら、上記通信システムにおいて、ストレージが、アクセス要求を1つずつしか処理できない場合には、従来技術を適用すると、以下の課題がある。なお、上記ストレージには、例えば、SDカードやUSBマスストレージ(Mass Storage)などのブリッジメディア(Bridge Media)がある。
以下では、例えば、イニシエータ装置が、ストレージに対して第1のアクセス要求と第2のアクセス要求を連続して発行し、ストレージが、第1のアクセス要求、第2のアクセス要求の順に実行する場合について説明する。この場合、イニシエータ装置は、第1のアクセス要求を発行してから第1のアクセス応答を受信するまでの時間に、第1のアクセス要求がストレージで実行される時間を加えることにより、タイムアウト時間を算出する。一方で、イニシエータ装置は、第2のアクセス応答に対して、第1のアクセス要求がストレージで実行される時間と、第2のアクセス要求がストレージで実行される時間とを加えることにより、タイムアウト時間を算出する。
すなわち、後続のアクセス要求についてのタイムアウト時間には、先行するアクセス要求の実行時間が累積される。よって、連続して発行された複数のアクセス要求のうちストレージでの実行順位が後になるアクセス要求ほど、累積される時間が多くなり、タイムアウト時間の算出が困難になる。すなわち、アクセス要求の発行数に応じてタイムアウト時間を検出する技術は、タイムアウト時間の算出が複雑になる、という課題がある。
本発明の目的は、同時に1つのアクセス要求のみを処理するストレージに対し、無線通信を介してリモートアクセスを行うためのアクセス要求の発行数に依存せず、1つのタイマで容易にタイムアウト検出を行うことである。
本発明のイニシエータ装置は、同時に1つのアクセス要求のみを処理するストレージが接続されたターゲット装置と無線通信を行うことで、前記ストレージにアクセスするイニシエータ装置であって、前記ターゲット装置へ1つ以上のアクセス要求を送信し、当該アクセス要求に対するアクセス応答を前記ターゲット装置から受信するアクセス要求処理部と、前記アクセス要求の全てが完了するまでの間、前記アクセス要求処理部が前記アクセス要求の送信または前記アクセス応答の受信のいずれかを行う度に、計時動作をリセットして再開し、前記計時動作が規定のタイムアウト時間を超えた場合に、タイムアウトを検出するタイムアウト検出部と、を備える。
本発明の通信システムは、イニシエータ装置が、同時に1つのアクセス要求のみを処理するストレージが接続されたターゲット装置と無線通信を行うことで、前記ストレージにアクセスする通信システムであって、前記イニシエータ装置は、前記ターゲット装置へ1つ以上のアクセス要求を送信し、当該アクセス要求に対するアクセス応答を前記ターゲット装置から受信するイニシエータ側アクセス要求処理部と、前記アクセス要求の全てが完了するまでの間、前記アクセス要求処理部が前記アクセス要求の送信または前記アクセス応答の受信のいずれかを行う度に、計時動作をリセットして再開し、前記計時動作が規定のタイムアウト時間を超えた場合に、タイムアウトを検出するタイムアウト検出部と、を備え、前記ターゲット装置は、前記イニシエータ装置から受信したアクセス要求を基に、前記ストレージとの間でローカルアクセスを行うストレージインターフェース部と、前記ローカルアクセスの結果を基に、前記イニシエータ装置に対してアクセス応答またはアクセス要求を送信するターゲット側アクセス要求処理部と、を備える。
本発明のタイムアウト検出方法は、同時に1つのアクセス要求のみを処理するストレージが接続されたターゲット装置と無線通信を行うことで、前記ストレージにアクセスするイニシエータ装置が行うタイムアウト検出方法であって、前記ターゲット装置へ1つ以上のアクセス要求を送信し、当該アクセス要求に対するアクセス応答を前記ターゲット装置から受信するステップと、前記アクセス要求の全てが完了するまでの間、前記アクセス要求の送信または前記アクセス応答の受信のいずれかが行われる度に、計時動作をリセットして再開し、前記計時動作が規定のタイムアウト時間を超えた場合に、タイムアウトを検出するステップと、を備える。
本発明のタイムアウト検出プログラムは、同時に1つのアクセス要求のみを処理するストレージが接続されたターゲット装置と無線区間を介して通信を行うことで、前記ストレージにアクセスするイニシエータ装置のコンピュータに実行させるタイムアウト検出プログラムであって、前記ターゲット装置へ1つ以上のアクセス要求を送信し、当該アクセス要求に対するアクセス応答を前記ターゲット装置から受信する処理と、前記アクセス要求の全てが完了するまでの間、前記アクセス要求の送信または前記アクセス応答の受信のいずれかが行われる度に、計時動作をリセットして再開し、前記計時動作が規定のタイムアウト時間を超えた場合に、タイムアウトを検出する処理と、を実行させる。
本発明は、同時に1つのアクセス要求のみを処理するストレージに対し、無線通信を介してリモートアクセスを行うためのアクセス要求の発行数に依存せず、1つのタイマで容易にタイムアウト検出を行うことができる。
本発明の第1の実施形態に係る通信システムの全体構成を例示するブロック図 本発明の第1の実施形態に係るパケットフォーマットの概略を例示する図 本発明の第1の実施形態に係るパケットフォーマットの詳細を例示する図 本発明の第1の実施形態に係るイニシエータ装置の動作を例示するフローチャート 本発明の第1の実施形態に係るターゲット装置の動作を例示するフローチャート 本発明の第1の実施形態に係るタイムアウト検出手段の動作を例示するフローチャート 本発明の第1の実施形態に係る通信システムにおいて正常に動作する場合の動作シーケンスを例示する図 本発明の第1の実施形態に係る通信システムにおいて無線通信区間のパケットロスでタイムアウトする場合の動作シーケンスを例示する図 本発明の第1の実施形態に係る通信システムにおいてストレージへのローカルアクセスのパケットロスでタイムアウトする場合の動作シーケンスを例示する図 本発明の第1の実施形態に係る通信システムにおいてデータ転送を行うときに正常に動作する場合の動作シーケンスを例示する図 本発明の第1の実施形態に係る通信システムにおいてデータ転送中にタイムアウトする場合の動作シーケンスを例示する図 本発明の第2の実施形態に係る通信システムの全体構成を例示するブロック図 本発明の第2の実施形態に係るタイムアウト検出手段の動作を例示するフローチャート 本発明の第2の実施形態に係る通信システムにおいて状態確認要求が無線区間でパケットロスする場合の動作シーケンスを例示する図 本発明の第2の実施形態に係る通信システムにおいてコマンドを含むアクセス要求のパケットロスが発生した場合の動作シーケンスを例示する図
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(第1の実施の形態)
まず、第1の実施の形態について説明する。
図1は、本実施の形態に係る通信システムの構成例を示す。本実施の形態に係る通信システムは、イニシエータ装置100、ターゲット装置110、ストレージ120を備える。ストレージ120は、同時に1つのアクセス要求のみを処理するものであり、例えば、SDカードやUSBマスストレージなどのブリッジメディアが挙げられる。ストレージ120は、ターゲット装置110に接続される。イニシエータ装置100は、無線区間を介してターゲット装置110と通信を行い、ストレージ120へアクセスすることができる。なお、イニシエータ装置100が、リモートにあるストレージ120へアクセスすることは、「リモートアクセス」という。また、リモートアクセスに関し、送信側から受信側への要求は、「アクセス要求」といい、アクセス要求に対する受信側から送信側への応答は「アクセス応答」という。
<イニシエータ装置100の構成>
図1において、本実施の形態に係るイニシエータ装置100は、無線区間を介して、ターゲット装置110に接続されるストレージ120へアクセスする装置である。
図1に示すように、イニシエータ装置100は、無線通信部101、アクセス要求処理部102、タイムアウト検出部103を有する。
無線通信部101は、アクセス要求処理部102から転送されてきたアクセス要求またはアクセス応答を、無線区間を介して、ターゲット装置110へ送信する。また、無線通信部101は、無線区間を介してターゲット装置110から受信したアクセス要求またはアクセス応答を、アクセス要求処理部102へ転送する。
無線通信部101は、例えば、IEEE802.11系規格、あるいはWiGig(Wireless Gigabit)規格に基づく無線通信のMAC層である。なお、WiGigとは、1Gbpsを越える有線PAN用途の置換えを想定した、60GHz帯域のミリ波を利用する無線通信規格である。なお、無線通信部101が適用する無線通信規格は、無線LANおよびWiGigに限定されるものではない。
アクセス要求処理部102は、ターゲット装置110へ送信するためのアクセス要求を生成し、無線通信部101を介してターゲット装置110へ送信する。その後、アクセス要求処理部102は、上記アクセス要求に対してターゲット装置110から送信されたアクセス応答を、無線通信部101を介して受信する。
また、アクセス要求処理部102は、ターゲット装置110から無線通信部101を介してアクセス要求を受信する。その後、アクセス要求処理部102は、受信したアクセス要求により要求された処理が正常に終了した場合、その旨を示すアクセス応答を生成する。そして、アクセス要求処理部102は、生成したアクセス応答を、無線通信部101を介してターゲット装置110へ送信する。
タイムアウト検出部103は、アクセス要求処理部102にて、アクセス要求の送信、アクセス応答の受信、アクセス要求の受信、あるいは、アクセス応答の送信のいずれか(以下、適宜「送受信」という)があるかを監視する。監視の結果、最初の送受信があると、タイムアウト検出部103は、計時動作を開始する。
タイムアウト検出部103は、計時中、規定のタイムアウト時間内にアクセス要求またはアクセス応答の送受信がない場合、タイムアウトを検出する。一方、計時中、規定のタイムアウト時間内にアクセス要求またはアクセス応答の送受信があった場合、未完了のリモートアクセスがあるか否かを判断する。本実施の形態では、タイムアウト検出部103は、規定のタイムアウト時間を1つだけ用いる。このため、タイムアウト時間は、ターゲット装置110およびストレージ120における全てのアクセス要求について、最大処理時間より十分大きな値とする必要がある。また、上記タイムアウト時間は、無線通信部101での再送処理時間についても考慮し、さらに大きな値を想定する必要がある。
タイムアウト検出部103は、未完了のリモートアクセスがあると判断した場合、タイマをリセットし、計時動作を再開する。一方、未完了のリモートアクセスがないと判断した場合、タイムアウト検出部103は、タイマを停止して計時動作を終了する。
以上、イニシエータ装置100は、規定のタイムアウト時間内に、アクセス要求の送信、アクセス要求の受信、アクセス応答の送信、またはアクセス応答の受信、のいずれかがある度に、タイマをリセットして計時動作を再開することができる。
<ターゲット装置110の構成>
次に、ターゲット装置110の構成について説明する。
図1において、本実施の形態に係るターゲット装置110は、イニシエータ装置100とストレージ120とを中継する装置である。
図1に示すように、ターゲット装置110は、無線通信部111、アクセス要求処理部112、ストレージインターフェース部113を有する。
無線通信部111は、アクセス要求処理部112から転送されてきたアクセス要求またはアクセス応答を、無線区間を介して、イニシエータ装置100へ送信する。また、無線通信部111は、無線区間を介してイニシエータ装置100から受信したアクセス要求またはアクセス応答を、アクセス要求処理部112へ転送する。なお、無線通信部111は、イニシエータ装置100と無線通信を行うにあたり、イニシエータ装置100の無線通信部101と同じ無線通信規格を用いる。
アクセス要求処理部112は、イニシエータ装置100から受信したアクセス要求からコマンドやデータを抽出し、ストレージインターフェース部113を介してストレージ120へ転送する。ここで、ストレージ120は同時に1つのコマンドしか処理できないため、アクセス要求処理部112は、抽出した複数のコマンドやデータを、逐次的にストレージ120に発行する。
また、アクセス要求処理部112は、ストレージ120からレスポンスやデータを受け取り、それらを基にアクセス応答またはアクセス要求を生成し、無線通信部111を介してイニシエータ装置100へ送信する。
ストレージインターフェース部113は、アクセス要求処理部112から転送されてきたコマンドあるいはデータを、ローカルアクセス区間を介して、ストレージ120へ送信する。また、ストレージインターフェース部113は、ローカルアクセス区間を介して、ストレージ120からレスポンスあるいはデータを受信する。ローカルアクセス区間の通信規格は、例えば、ストレージ120がSDカードであればSDバスプロトコル、ストレージ120がUSBマスストレージであればUSBバスプロトコルが適用できる。
このようなターゲット装置110は、イニシエータ装置100とは無線区間を介して通信を行い、ストレージ120とはローカルアクセス区間を介して通信を行うことで、イニシエータ装置100とストレージ120との通信を中継できる。これにより、イニシエータ装置100は、ストレージ120へのリモートアクセスを実現することができる。
イニシエータ装置100およびターゲット装置110は、例えば、それぞれ、CPU(Central Processing Unit)、制御プログラムを格納したROM(Read Only Memory)などの記録媒体、およびRAM(Random Access Memory)などの作業用メモリを有する。この場合、上記した各構成部の機能は、CPUが制御プログラムを実行することにより実現される。
なお、イニシエータ装置100およびターゲット装置110の各機能部は、例えば、集積回路により構成してもよい。イニシエータ装置100およびターゲット装置110の各機能部は、個別に1チップ化してもよいし、複数で1チップ化してもよい。集積回路は、集積度の違いにより、LSI(Large Scale Integration)、IC(Integrated Circuit)、システムLSI、スーパーLSI、またはウルトラLSI等とすることができる。また、集積回路は、専用回路または汎用プロセッサにより実現するものであってもよい。また、集積回路は、その製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、または、内部の回路セルの接続や設定を再構成可能なコンフィギュラブル・プロセッサとしてもよい。さらに、イニシエータ装置100およびターゲット装置110の各機能部は、半導体技術の進歩または派生する別技術に応じて、LSIに置き換わる他の集積回路化の技術(例えばバイオ技術)により集積化されたもので実現してもよい。
また、図示はしていないが、本実施の形態に係るイニシエータ装置100およびターゲット装置110は、ユーザが動作を選択して実行するための、ユーザインタフェースをそれぞれ有してもよい。例えば、本実施の形態に係るイニシエータ装置100およびターゲット装置110は、ユーザインタフェースとして、入力キー、ディスプレイ、マイクロフォン、スピーカ、カメラ、および、バイブレータなどの機能をそれぞれ有してもよい。また、イニシエータ装置100およびターゲット装置110は、プログラム格納、あるいは、実行のためのメモリなどの機能をそれぞれ有してもよい。
<パケットのフォーマット>
次に、アクセス要求およびアクセス応答のパケットフォーマットの例について、図2を用いて説明する。
パケットは、ヘッダ200とペイロード201を含む。ヘッダ200は、ペイロードタイプ(PTYP)210、デバイスID(DID)211、コマンドID(CID)212、シーケンス番号(SEQ)213、パケット長(PLEN)214を含む。
ペイロードタイプ210は、ペイロード201の内容を特定可能な情報である。デバイスID211は、宛先のストレージを特定可能な情報である。コマンドID212は、ストレージにアクセスするためのコマンドを含むパケットと、それに対応付けられたパケットを識別するための情報である。シーケンス番号213は、同一のコマンドIDを付加されたパケットを識別するため、イニシエータ装置100とターゲット装置110のそれぞれからの発行時にインクリメントして付加する情報である。パケット長214は、ヘッダ200を含むパケット全体長を示す情報である。
ペイロードタイプ210は、例えば、コマンド(CMD)、レスポンス(RES)、データフラグメント(DATA)、データアクノリッジ(DACK)、インタラプト(INT)、チェックステータス(CST)が挙げられる。これらのうち、コマンド(CMD)、レスポンス(RES)、データフラグメント(DATA)は、イニシエータ装置100とターゲット装置110との間でストレージインターフェース部113を介して転送される。また、コマンド(CMD)、レスポンス(RES)、データフラグメント(DATA)は、ターゲット装置110とストレージ120との間でストレージインターフェース部113を介して転送される。また、同一方向に連続的に発行することになるパケットのペイロードタイプ210は、1つのペイロードに統合することができる。具体的には、例えば、1つのペイロードに統合するのは、コマンド+データフラグメント(CMD+DATA)、レスポンス+データフラグメント(RES+DATA)、レスポンス+データアクノリッジ(RES+DACK)等である。
上述したペイロードタイプ210の各例について、図3を参照して説明する。
コマンド(CMD)300は、イニシエータ装置100からターゲット装置110にアクセス要求として転送する、ターゲット装置110に接続されたストレージ120へのアクセスを発生させるものである。コマンド(CMD)300は、コマンドタイプ(CTYP)301およびコマンドアーギュメント(CARG)302を備える。コマンドタイプ(CTYP)301は、初期化、ステータス確認、データの読出し、書込み、消去などを含むコマンドの種別を示す。コマンドアーギュメント(CARG)302は、データの読出しや書込みの対象となるアドレスやデータの転送サイズなど、コマンド(CMD)300の引数を含む。
レスポンス(RES)310は、コマンド(CMD)300に対してストレージ120が返信し、それをターゲット装置110からイニシエータ装置100にアクセス応答として転送するものである。レスポンス(RES)には、コマンド(CMD)300の成否やストレージ120の状態を示すステータスレジスタの値を含む。
データフラグメント(DATA)320は、コマンド(CMD)300で指定された読出しデータまたは書込みデータを無線通信に適したサイズに分割する。そして、データフラグメント(DATA)320は、分割した読出しデータまたは書込みデータをイニシエータ装置100とターゲット装置110との間でアクセス要求として転送する。
データアクノリッジ(DACK)330は、データフラグメント(DATA)320の受信処理の進捗を示すため、アクセス応答としてデータフラグメント(DATA)320の送信側に返信するものである。データアクノリッジ(DACK)330は、受信処理が完了したデータフラグメント(DATA)320のシーケンス番号(SEQ)213を含む。
インタラプト(INT)340は、ターゲット装置110の非同期のイベントをアクセス要求としてイニシエータ装置100に通知するためのものであり、非同期で通知するイベントの種別や割り込み要因を含む。
チェックステータス(CST)380は、イニシエータ装置100がアクセス要求としてターゲット装置110に送信する。そして、それを受信したターゲット装置110は、アクセス応答としてイニシエータ装置100に返信することで、ターゲット装置110の状態を確認することができる。ターゲット装置110からイニシエータ装置100に返信するチェックステータス(CST)380には、ターゲット装置110がストレージ120へのアクセスを実行中か否か、を含む。イニシエータ装置100は、ターゲット装置110からのチェックステータス(CST)380の返信を受けることで、ターゲット装置110の状態だけでなく、無線通信が正しく動作していることを確認できる。
コマンド+データフラグメント(CMD+DATA)350は、データの書込みを指示するコマンド(CMD)300と書込みのデータフラグメント(DATA)320を束ねて、一つのパケットとしたものである。
レスポンス+データフラグメント(RES+DATA)360は、データの読出しを指示するコマンドに対するレスポンス(RES)310と読出しのデータフラグメント(DATA)320を束ねて、一つのパケットとしたものである。
レスポンス+データアクノリッジ(RES+DACK)370は、データの書込みを指示するコマンドに対するレスポンス(RES)310と書込みのデータフラグメントに対するデータアクノリッジ(DACK)330を束ねて、一つのパケットとしたものである。
このように、イニシエータ装置100とターゲット装置110との間で転送するアクセス要求およびアクセス応答は、図3に示すいずれかのペイロードを含む。なお、レスポンス+データフラグメント(RES+DATA)360は、アクセス応答とアクセス要求の両方を兼ね備える。
<イニシエータ装置100の動作例1>
次に、イニシエータ装置100の動作例1として、アクセス要求処理について説明する。
図4は、イニシエータ装置100が行うアクセス要求処理の一例を示すフローチャートである。
イニシエータ装置100は、1つ以上のアクセス要求について、アクセス要求処理を行う(S410−1、S410−2、・・・、S410−N)。以下では、例としてステップS410−1のアクセス要求処理について説明する。
ステップS411において、アクセス要求処理部102は、ストレージ120へのリモートアクセスを発生させるためのコマンドパケットを、アクセス要求として、無線通信部101を介してターゲット装置110に送信する。ここでいうコマンドパケットは、例えば、図3のコマンド(CMD)300を含むパケットであり、コマンド(CMD)300がデータ転送を伴う書込みを示す場合は、コマンド+データフラグメント(CMD+DATA)であってもよい。
ステップS412において、アクセス要求処理部102は、ストレージ120からのレスポンスパケットを、アクセス応答として、ターゲット装置110から無線通信部101を介して受信する。ここでいうレスポンスパケットは、例えば、図3のレスポンス(RES)310を含むパケットである。なお、レスポンスパケットは、ステップS411において、送信したコマンド(CMD)300がデータ転送を伴う読出しを示す場合、レスポンス+データフラグメント(RES+DATA)であってもよい。
ステップS413において、アクセス要求処理部102は、コマンドパケットのコマンドタイプがデータ転送を伴う、読出しであるか、または、書込みであるかを判定する。
上記判定の結果、アクセス要求処理部102は、ステップS411においてアクセス要求として送信したコマンドパケットの実行を完了する。なお、判定の結果とは、コマンドタイプがデータ転送を伴う読出しでも書込みでもない場合、または、データ転送を伴う読出しあるいは書込みがコマンドで指定された転送サイズに達して完了した場合(S413:無し又は完了)である。
上記判定の結果、コマンドタイプがデータ転送を伴う読出しである場合(S413:受信)、アクセス要求処理部102は、ステップS414へ進む。
ステップS414において、アクセス要求処理部102は、無線通信部101を介してターゲット装置110からの1つ以上のアクセス要求を受信する。ここでいうアクセス要求は、例えば、ストレージ120からの読出しデータからなるデータフラグメント(DATA)320を含むデータパケットである。
ステップS415において、アクセス要求処理部102は、無線通信部101を介してターゲット装置110にアクセス応答を送信する。ここでいうアクセス応答は、例えば、データアクノリッジ(DACK)330を含むデータアクノリッジパケットである。ここで、アクセス要求処理部102は、データフラグメントを含む複数のアクセス要求を連続的に受信した場合、最後のアクセス要求だけに対して、上記データアクノリッジパケットをアクセス応答として返信すればよい。
このようなステップS414とステップS415におけるデータ読出しは、ステップS413において完了と判断されるまで繰り返し実行されることになる。
上記判定の結果、コマンドタイプがデータ転送を伴う書込みである場合(S413:送信)、アクセス要求処理部102は、ステップS411へ進む。
ステップS411において、アクセス要求処理部102は、無線通信部101を介してターゲット装置110への1つ以上のアクセス要求を送信する。ここでいうアクセス要求は、例えば、ストレージ120への書込みデータからなるデータフラグメント(DATA)320を含むデータパケットである。
ステップS412において、アクセス要求処理部102は、無線通信部101を介してターゲット装置110からのアクセス応答を受信する。ここでいうアクセス応答は、例えば、データアクノリッジ(DACK)330を含むデータアクノリッジパケットである。ここで、アクセス要求処理部102は、データフラグメントを含む複数のアクセス要求を連続的に送信した場合、最後のアクセス要求に対するアクセス応答を受信する。これにより、アクセス要求処理部102は、それ以前に送信したアクセス要求が正しく処理されたことを確認することができる。
このようなステップS411とステップS412におけるデータ書込みが、ステップS413において完了と判断されるまで繰り返し実行されることになる。
上記のように、アクセス要求処理部102は、それぞれコマンドIDが異なる複数のアクセス要求だけでなく、同一のコマンドIDに対応付けられた複数のアクセス要求も連続的に送信することができる。
<ターゲット装置110の動作例>
ターゲット装置110の動作例として、アクセス要求処理について説明する。
図5は、ターゲット装置110が行うアクセス要求処理の一例を示すフローチャートである。
ターゲット装置110は、イニシエータ装置100と同様に、1つ以上のアクセス要求について、アクセス要求処理を行う(S510−1、S510−2、・・・、S510−N)。以下では、例としてステップS510−1のアクセス要求処理について説明する。
ターゲット装置110におけるアクセス要求処理S510−1は、上述したイニシエータ装置100におけるアクセス要求処理S410−1に対応しているため、ステップ毎の詳細な説明は省略する。アクセス要求処理S510−1は、アクセス要求処理S410−1にて送信されたアクセス要求を受信し、それに対するアクセス応答を送信することになる。このため、アクセス要求処理S510−1は、アクセス要求処理S410−1における各ステップと比べて、それぞれ送信と受信が逆になっている点が異なる。
<イニシエータ装置100の動作例2>
次に、イニシエータ装置100の動作例2として、タイムアウト検出処理について説明する。
図6は、イニシエータ装置100が行うタイムアウト検出処理の一例を示すフローチャートである。
ステップS600において、タイムアウト検出部103は、アクセス要求処理部102が最初のアクセス要求の送信を行うことを待機する。ここでいう最初のアクセス要求とは、例えば、イニシエータ装置100からターゲット装置110へ送信される、リモートアクセスを開始するためのコマンドパケットである。
ステップS610において、タイムアウト検出部103は、最初のアクセス要求の送信が行われると、タイマをリセットして計時動作を開始する。なお、アクセス要求処理部102は、最初のコマンドパケットの送信に続いて、それぞれコマンドID(CID)212の異なるコマンドパケットをアクセス要求として連続的に送信することができる。これにより、アクセス要求処理部102は、1つ以上のアクセス要求処理(S410−1、S410−2、…、S410−N)を開始することになる。
ステップS620において、タイムアウト検出部103は、アクセス要求処理部102における1つ以上のアクセス要求処理(S410−1、S410−2、…、S410−N)におけるアクセス要求またはアクセス応答の送受信を監視する。そして、タイマにより計時している時間(以下、「計時時間」という)が予め規定されたタイムアウト時間に達する前に、アクセス要求またはアクセス応答の送受信があるか否か、を判定する。この判定は、「タイムアウト判定」という。
計時時間がタイムアウト時間に至る前に、アクセス要求処理部102にてアクセス要求またはアクセス応答の送受信があった場合(S620:送受信有)、タイムアウト検出部103は、S630に進む。
一方、計時時間がタイムアウト時間に至っても、アクセス要求処理部102にてアクセス要求またはアクセス応答の送受信がなかった場合(S620:送受信無)、タイムアウト検出部103は、タイムアウトを検出し、S640に進む。
ステップS630において、タイムアウト検出部103は、アクセス要求処理部102による1つ以上のアクセス要求処理(S410−1、S410−2、…、S410−N)の進捗を基に、未完了のリモートアクセスがあるか否かを判断する。
未完了のリモートアクセスが無いと判断した場合(S630:NO)、タイムアウト検出部103は、タイムアウトを検出せずに、S640へ進む。
未完了のリモートアクセスが有ると判断した場合(S630:YES)、タイムアウト検出部103は、S610へ進み、タイマをリセットし、計時動作を再開する。
ステップS640において、タイムアウト検出部103は、タイマを停止し、計時動作を終了する。
このような動作により、イニシエータ装置100は、規定のタイムアウト時間内に、アクセス要求の送信、アクセス応答の受信、アクセス要求の受信、アクセス応答の送信のいずれかがある度に、タイマをリセットして計時動作を再開する。これにより、イニシエータ装置100は、アクセス要求を1つずつ処理するストレージ120に対して複数のアクセス要求を連続して発行する場合に、アクセス要求毎のタイムアウト時間を算出する必要がない。すなわち、イニシエータ装置100は、アクセス要求の発行数やストレージ120での実行状態に依存することなく、規定のタイムアウト時間を1つ用いて容易にタイムアウト検出を行うことができる。
<通信システムの動作>
以下、イニシエータ装置100およびターゲット装置110の全体(以下「通信システム」という)の動作の各例を、図7〜図11を用いて説明する。
まず、図7を参照して、イニシエータ装置100から発行されるアクセス要求が、データ転送を伴うコマンドを含まない場合の動作例について説明する。ここで、イニシエータ装置100とターゲット装置110との間で送受信されるアクセス要求またはアクセス応答(700から705)は、ヘッダ200とペイロード201からなる。図中のヘッダ内には、パケットタイプ(PTYP)210、コマンドID(CID)212、シーケンス番号(SEQ)213の順に記載している。すなわち、パケット700に記載されたCMD,0,0は、パケットタイプがコマンドであり、コマンドIDが0、シーケンス番号が0であることを示す。また、ペイロードについては、コマンドID=0のコマンドをコマンド0またはCMD0とし、それに対するレスポンスをレスポンス0またはRES0とする。なお、図7では、タイムアウトが検出されない例とする。図中のT1〜T6は、イニシエータ装置100側で計時される時間軸上の時点を示している。
イニシエータ装置100は、ターゲット装置110に接続されたストレージ120へのリモートアクセスを開始するため、T1からT3までの間、コマンド(CMD)を含むアクセス要求を連続的に3つ発行する。これにより、イニシエータ装置100は、3つのリモートアクセスを開始する。それらリモートアクセスは、コマンドのコマンドID(CID)212で識別される。例として、イニシエータ装置100は、T1のときにアクセス要求700、T2のときにアクセス要求701、T3のときにアクセス要求702を発行する。なお、これらアクセス要求に含まれるコマンドの全ては、データ転送を伴わないコマンドとする。ここで、無線通信部101が、アクセス要求処理部102から受け渡された3つのアクセス要求700、701、703をまとめて送信する場合、T1からT3は同時刻となる。
また、ストレージ120は、同時に1つのコマンドしか処理できないものとする。よって、ターゲット装置110は、イニシエータ装置100から受信した各アクセス要求から抽出した複数のコマンドを、逐次的にストレージに発行する必要がある。
図7に示す706は、各アクセス要求に含まれる各コマンドにより開始されるリモートアクセスの実行状態を示す。図7の例では、最初に、アクセス要求700が含むコマンド0により開始されるリモートアクセス0がT1から実行状態となる。このとき、T2、T3で開始されるリモートアクセス1、2は、それぞれ実行待機状態となる。
まず、リモートアクセス0が実行されるT1からT4の間について説明する。
イニシエータ装置100は、T1からT3の間、ターゲット装置110に対し、3つのアクセス要求700、701、702を連続的に送信し、それぞれリモートアクセス0、1、2を開始する。このとき、イニシエータ装置100は、最初のアクセス要求700の送信時(T1)に、タイマによる計時を開始する。そして、以降、アクセス要求701、702の送信時(T2、T3)には、それぞれ未完了のリモートアクセスが存在すると判断し、タイマをリセットして、計時を再開する。ここで、それらアクセス要求700、701、702は、それぞれリモートアクセス0、1、2においてイニシエータ装置100が最初に送信するパケットであるため、いずれもシーケンス番号として0が付加される。
ターゲット装置110は、最初に受信したアクセス要求700からヘッダを除去し、コマンド0を抽出する。そして、ターゲット装置110は、ストレージ120へのローカルアクセスを開始するため、抽出したコマンド0をストレージ120に発行する。
ストレージ120は、コマンド0を受け取ると、ターゲット装置110との間のコマンド0の実行を開始する。
その後、ストレージ120は、コマンド0の実行結果を含むレスポンス0(RES0)をターゲット装置110に発行する。
ターゲット装置110は、受け取ったレスポンス0を含むアクセス応答703を生成し、アクセス応答703をイニシエータ装置100に返信する。
T4のとき、イニシエータ装置100は、規定のタイムアウト時間内で、ターゲット装置110からアクセス応答703を受信する。このとき、イニシエータ装置100は、未完了のリモートアクセスが存在すると判断し、タイマをリセットして、計時を再開する。
このように、リモートアクセス0が実行されるT1〜T4の期間、イニシエータ装置100は、T1にて計時を開始した後、T2、T3、T4のそれぞれにてタイマをリセットし、計時を再開する。
次に、リモートアクセス1が実行されるT4からT5の間について説明する。
ターゲット装置110は、アクセス応答703の返信後、次のリモートアクセス1を実行状態に移すため、受信済みのアクセス要求701に含まれるコマンド1をストレージ120に発行する。
ストレージ120は、コマンド1を受け取ると、ターゲット装置110との間のコマンド1の実行を開始する。その後、ストレージ120は、コマンド1の実行結果を含むレスポンス1をターゲット装置110に発行する。
ターゲット装置110は、受け取ったレスポンス1を含むアクセス応答704を生成し、アクセス応答704をイニシエータ装置100に返信する。
T5のとき、イニシエータ装置100は、規定のタイムアウト時間内で、ターゲット装置110からアクセス応答704を受信する。このとき、イニシエータ装置100は、未完了のリモートアクセスが存在すると判断し、タイマをリセットして、計時を再開する。
このように、リモートアクセス1が実行されるT4〜T5の期間、イニシエータ装置100は、T4から再開された計時を継続し、T5ではタイマをリセットし、計時を再開する。
次に、リモートアクセス2が実行されるT5からT6の間について説明する。
ターゲット装置110は、アクセス応答704の返信後、次のリモートアクセス2を実行状態に移すため、受信済みのアクセス要求702に含まれるコマンド2をストレージ120に発行する。
ストレージ120は、コマンド2を受け取ると、ターゲット装置110との間のコマンド2の実行を開始する。その後、ストレージ120は、コマンド2の実行結果を含むレスポンス2をターゲット装置110に発行する。
ターゲット装置110は、受け取ったレスポンス2を含むアクセス応答705を生成し、アクセス応答705をイニシエータ装置100に返信する。
T6のとき、イニシエータ装置100は、規定のタイムアウト時間内で、ターゲット装置110からアクセス応答705を受信する。このとき、イニシエータ装置100は、未完了のリモートアクセスが存在しない、すなわち、全てのリモートアクセスが完了したと判断し、タイマを停止する。
このように、リモートアクセス2が実行されるT5〜T6の期間、イニシエータ装置100は、T5から再開された計時を継続し、T6でタイマを停止し、計時を終了する。
このような動作により、イニシエータ装置100は、規定のタイムアウト時間内に、アクセス要求の送信、アクセス応答の受信、アクセス要求の受信、アクセス応答の送信のいずれかがある度に、タイマをリセットして計時動作を再開する。これにより、イニシエータ装置100は、アクセス要求を1つずつ処理するストレージ120に対し、無線通信を介して1以上のアクセス要求を発行する場合に、アクセス要求の発行数を考慮してタイムアウト時間を算出する必要がない。すなわち、イニシエータ装置100は、アクセス要求の発行数やストレージ120での実行状態に依存することなく、規定のタイムアウト時間を1つ用いて(換言すれば、1つのタイマを用いて)容易にタイムアウト検出を行うことができる。
次に、図8を参照して、図7の例においてイニシエータ装置100とターゲット装置110の間でパケットロスが生じたときの動作例を説明する。図8は、例として、イニシエータ装置100がアクセス応答704をパケットロスにより受信できなかった場合を示している。
イニシエータ装置100は、アクセス応答704を受信しないので、T4で再開した計時を、T5を経ても継続する。一方、ターゲット装置110は、レスポンス1を受け取ったことで、コマンド2をストレージ120へ発行する。これにより、ストレージ120は、リモートアクセス2の実行を開始する。
ここで、規定のタイムアウト時間が、リモートアクセス1とリモートアクセス2の実行時間の最大値の和よりも大きい値であるとする。この場合、イニシエータ装置100は、T6においてアクセス応答705を受信しても、タイムアウトを検出しない。また、T6のとき、イニシエータ装置100は、アクセス応答704を未受信であるため、実際には完了しているリモートアクセス1を未完了であると判断し、タイマをリセットして計時を再開する。
その後、イニシエータ装置100は、T6からタイムアウト時間707が経過したT7のとき、タイムアウトを検出する。
なお、図8の例では、ターゲット装置110が、アクセス応答704のパケットロスを検出してその再送を行い、イニシエータ装置100が、T5からT7の間にアクセス応答704を受信すれば、タイムアウトは発生しない。
このように、イニシエータ装置100は、コマンドIDに依存することなく、アクセス要求の送信およびアクセス応答の受信のタイミングでタイマのリセットを行う。よって、タイマリセットの制御が簡易であるだけでなく、ターゲット装置110が行う再送によってアクセス応答の受信順が変わってしまった場合でも、イニシエータ装置100はタイムアウトを正しく検出できる。
次に、図9を参照して、図7の例においてターゲット装置110とストレージ120との間でパケットロスが生じたときの動作例を説明する。図9は、例として、ターゲット装置110がレスポンス1をパケットロスにより受け取れず、その結果として、イニシエータ装置100が図7に示すアクセス応答704を受信できなかった場合を示している。
イニシエータ装置100は、アクセス応答704を受信しないので、T4で再開した計時を継続する。その後、イニシエータ装置100は、T4からタイムアウト時間707が経過したT5のとき、タイムアウトを検出する。
なお、図9に示す動作は、複数発行されるアクセス要求がデータ転送を伴うコマンドを含んでいる場合も、同様に行われる。
このように、イニシエータ装置100は、ターゲット装置110とストレージ120の間の区間でパケットロスが生じた場合、タイムアウトを正しく検出できる。
次に、図10を参照して、イニシエータ装置100から発行されるアクセス要求が、データ転送を伴うコマンドを含む場合の動作例について説明する。なお、図10では、タイムアウトが検出されない例とする。
まず、リモートアクセス0が実行されるT1からT4の間について説明する。
イニシエータ装置100は、T1からT3の間、ターゲット装置110に対し、3つのアクセス要求710、711、712を連続的に発行し、それぞれリモートアクセス0、1、2を開始する。このとき、イニシエータ装置100は、最初のアクセス要求710の送信時(T1)に、タイマによる計時を開始する。そして、以降、アクセス要求711、712の送信時(T2、T3)には、それぞれ未完了のリモートアクセスが存在すると判断し、タイマをリセットして、計時を再開する。
アクセス要求710は、ペイロードとしてコマンド0およびデータ0を含む。コマンド0は、ストレージ120へデータの書込みを指示するためのライトコマンドであり、図中の(W)は、書込みを意味する。また、データ0は、ストレージ120へ書き込まれるデータであり、図中の[0]は、シーケンス番号=0を意味する。また、アクセス要求711は、ペイロードとしてコマンド1を含む。コマンド1は、ストレージ120からのデータの読出しを指示するためのリードコマンドであり、図中の(R)は、読出しを意味する。そして、アクセス要求712は、コマンド0の転送サイズで指定された残りの書込みデータを含み、イニシエータ装置100から送信する2つ目のパケットであるため、シーケンス番号=1が付加される。
ターゲット装置110は、最初に受信したアクセス要求710からヘッダを除去し、コマンド0を抽出する。そして、ターゲット装置110は、ストレージ120へのローカルアクセスを開始するため、抽出したコマンド0をストレージ120に発行する。
ストレージ120は、コマンド0に対するレスポンス0をターゲット装置110へ発行し、コマンド0で指定された書込みが開始可能であることを通知する。
ターゲット装置110は、受信したアクセス要求710、712のそれぞれについてヘッダを除去し、シーケンス番号0と1のデータ0をそれぞれ抽出してから、ストレージ120に転送する。ここで、それら2つのデータ0は、コマンド0で指定された書込みデータを、無線通信に適したサイズに分割したデータフラグメントであるため、組み立て直された上でストレージ120に転送される。
ストレージ120は、転送されてきた2つのデータ0の書込みを開始し、書込み中はビジー状態となる。
ターゲット装置110は、ストレージ120への2つのデータ0の転送を完了すると、アクセス応答713を生成する。アクセス応答713は、コマンド0に対するレスポンス0と、データ0に対するデータアクノリッジ(DACK)0とを含む。ここで、データアクノリッジ0には、シーケンス番号1までのデータ0を正しくストレージ120に受け渡したことを示すため、ペイロードに1が含まれる。そして、ターゲット装置110は、生成したアクセス応答713をイニシエータ装置100へ返信する。
T4のとき、イニシエータ装置100は、規定のタイムアウト時間内で、ターゲット装置110からアクセス応答713を受信する。これにより、イニシエータ装置100は、コマンド0とそれに伴う全てのデータ0の送信完了を確認し、リモートアクセス0を完了する。また、このとき、イニシエータ装置100は、未完了のリモートアクセスが存在すると判断し、タイマをリセットして、計時を再開する。
このように、リモートアクセス0が実行されるT1〜T4の期間、イニシエータ装置100は、T1にて計時を開始した後、T2、T3、T4のそれぞれにてタイマをリセットし、計時を再開する。
次に、リモートアクセス1が実行されるT4からT7の間について説明する。
ターゲット装置110は、アクセス応答713の返信後、次のリモートアクセス1を実行状態に移す。このため、ターゲット装置110は、ストレージ120のビジー状態が解除されたことを検知してから、受信済みのアクセス要求711に含まれるコマンド1をストレージ120に発行する。コマンド1により開始されるリモートアクセス1は、ストレージ120からのデータの読出しである。
ストレージ120は、コマンド1を受け取ると、リモートアクセス1の実行を開始する。そして、ストレージ120は、ターゲット装置110に対し、コマンド1に対するレスポンス1を発行する。また、ストレージ120は、ターゲット装置110に対し、データ1を送出する。データ1は、コマンド1で指定されたストレージ120からの読出しデータである。
ターゲット装置110は、レスポンス1とデータ1を受信すると、それらを束ねたレスポンス+データ(RES+DATA)を含むアクセス要求714を生成し、イニシエータ装置100へ返信する。ここで、ターゲット装置110は、アクセス要求714がリモートアクセス1における最初の送信パケットであるため、シーケンス番号として0を付加する。
T5のとき、イニシエータ装置100は、規定のタイムアウト時間内で、ターゲット装置110からアクセス要求714を受信する。このとき、イニシエータ装置100は、未完了のリモートアクセスが存在すると判断し、タイマをリセットして、計時を再開する。
ターゲット装置110は、コマンド1の転送サイズで指定された残りの読出しデータを含むアクセス要求715を生成し、シーケンス番号として1を付加してイニシエータ装置100へ送信する。
T6のとき、イニシエータ装置100は、規定のタイムアウト時間内で、ターゲット装置110からアクセス要求715を受信する。このとき、イニシエータ装置100は、未完了のリモートアクセスが存在すると判断し、タイマをリセットして、計時を再開する。
T7のとき、イニシエータ装置100は、コマンド1の転送サイズで指定された読出しデータの末尾を含むアクセス要求715の受信処理が正常に終了する。受信処理が正常に終了すると、イニシエータ装置100は、そのアクセス要求715のシーケンス番号である1を示すデータアクノリッジを含むアクセス応答716を生成し、ターゲット装置110に返信する。このとき、イニシエータ装置100は、未完了のリモートアクセスが存在しない、すなわち、全てのリモートアクセスが完了したと判断し、タイマを停止する。
このように、リモートアクセス1が実行されるT4〜T7の期間、イニシエータ装置100は、T4から再開された計時を継続し、T7でタイマを停止し、計時を終了する。
このような動作により、イニシエータ装置100は、規定のタイムアウト時間内に、アクセス要求の送信、アクセス応答の受信、アクセス要求の受信、アクセス応答の送信のいずれかがある度に、タイマをリセットして計時動作を再開する。これにより、イニシエータ装置100は、アクセス要求を1つずつ処理するストレージ120に対し、無線通信を介して1つ以上のアクセス要求を発行する場合に、アクセス要求の発行数に応じたタイムアウト時間を算出する必要がない。すなわち、イニシエータ装置100は、アクセス要求の発行数あるいはストレージ120での実行状態に依存することなく、規定のタイムアウト時間を1つ用いて容易にタイムアウト検出を行うことができる。
次に、図11を参照して、図10の例においてイニシエータ装置100とターゲット装置110の間でパケットロスが生じたときの動作例を説明する。図11は、例として、イニシエータ装置100がアクセス要求714をパケットロスにより受信できなかった場合を示している。
イニシエータ装置100は、アクセス応答704を受信しないので、T4で再開した計時を、T5を経ても継続する。その後、T6のとき、イニシエータ装置100は、アクセス要求715を受信する。一般的に、無線通信部101は、受信パケットをアクセス要求処理部102に受け渡す際に、対向するターゲット装置110からの送信順を保証する。このため、無線通信部101は、アクセス要求714が正しく再送されるまで、次のアクセス要求715をアクセス要求処理部102に受け渡さない。このため、T4で再開した計時は、T6においても継続される。
その後、イニシエータ装置100は、T4からタイムアウト時間707が経過したT7のとき、タイムアウトを検出する。
なお、イニシエータ装置100が、T5からT7の間に再送されたアクセス要求714を受信して、正常に処理が終了すれば、タイムアウトは検出されない。
以上説明したように、本実施の形態のイニシエータ装置100は、コマンドIDに依存することなく、アクセス要求の送信およびアクセス応答の受信のタイミングでタイマのリセットを行う。よって、本実施の形態では、タイマリセットの制御が簡易であるだけでなく、ターゲット装置110が行う再送によってアクセス応答の受信順が変わってしまった場合でも、イニシエータ装置100はタイムアウトを正しく検出できる。
(第2の実施の形態)
次に、第2の実施の形態について説明する。第1の実施の形態においては、規定のタイムアウト時間を1つだけ用いる構成であったが、例えば消去コマンドのように、その消去サイズによっては数十秒以上を要するアクセス要求もある。このため、タイムアウト時間をそれ以上に設定する必要があり、本来短時間で完了するアクセス要求についても、タイムアウト検出に長時間を要する課題がある。そこで、本実施の形態は、規定のタイムアウト時間を用いずにタイムアウトの検出を行う点が、第1の実施の形態と異なる。
図12は、本実施の形態に係る通信システムの構成例を示す。図12において、図1と同じ構成については同一の符号を付している。第2の実施の形態では、ターゲット装置110にタイムアウト検出部115およびタイムアウト通知部116を加えた点が第1の実施の形態と異なる。これにより、ターゲット装置110は、ストレージ120とのローカルアクセスのタイムアウトを監視することができる。
<イニシエータ装置100の構成>
無線通信部101、アクセス要求処理部102、およびタイムアウト検出部103の各機能については、第1の実施の形態で説明したので説明を省略する。なお、アクセス要求処理部102およびタイムアウト検出部103の、第1の実施の形態で説明した以外の機能については、図13を用いて説明する。
<ターゲット装置110の構成>
無線通信部111、アクセス要求処理部112、およびストレージインターフェース部113の各機能については、第1の実施の形態で説明したので説明を省略する。本実施形態のターゲット装置110は、上記各部に加えて、タイムアウト検出部115およびタイムアウト通知部116を有する。
タイムアウト検出部115は、ストレージインターフェース部113がストレージ120との間で行う入出力、すなわちローカルアクセスを監視する。そして、タイムアウト検出部115は、ストレージインターフェース部113が、コマンドを出力してからそのコマンドに対するレスポンスを入力するまでの時間を計時する。計時時間が規定のタイムアウト時間を越えた場合、タイムアウト検出部115は、タイムアウトを検出する。計時時間が規定のタイムアウト時間を越えなかった場合、タイマの動作を停止し、次の入出力を監視する。なお、タイムアウト検出部115が用いるタイムアウト時間は、ストレージ120の特性に応じて予め定められた値でもよいし、コマンドの種類に応じて設定される値であってもよい。
なお、タイムアウト検出部115は、イニシエータ装置100のタイムアウト検出部103と同じように動作してもよい。すなわち、タイムアウト検出部115は、ストレージインターフェース部113からコマンドやデータが出力される度に、タイマをリセットし、計時動作を開始または再開する。あるいは、タイムアウト検出部115は、ストレージインターフェース部113にレスポンスやデータが入力される度に、タイマをリセットし、計時動作を開始または再開する。そして、タイムアウト検出部115は、ストレージインターフェース部113での入出力を検出しないまま、計時時間が規定のタイムアウト時間を越えた場合、タイムアウトを検出する。
タイムアウト検出部115は、タイムアウトを検出した場合、その旨をタイムアウト通知部116へ通知する。
タイムアウト通知部116は、タイムアウト検出部115からタイムアウトが検出された旨の通知を受けると、タイムアウト通知を生成する。このタイムアウト通知は、ストレージ120へのローカルアクセスがタイムアウトしたことを示すものであり、図3のインタラプト(INT)340を含むアクセス要求である。そして、タイムアウト通知部116は、生成したタイムアウト通知を、無線通信部111を介してイニシエータ装置100へ送信する。イニシエータ装置100は、タイムアウト通知を受信すると、自装置でタイムアウトを検出した場合と同様に処理を行う。
このように、イニシエータ装置100は、ターゲット装置110とストレージ120間のローカルアクセスにおいて発生したタイムアウトを即座に検出することができ、早期にタイムアウトを検出できる。
<イニシエータ装置100の動作例>
次に、イニシエータ装置100の動作例として、タイムアウト検出処理について説明する。
図13は、イニシエータ装置100が行うタイムアウト検出処理の一例を示すフローチャートである。なお、図13において、図6と同じステップについては、同一の符号を付し、ここでの説明は省略する。よって、以下では、ステップS601およびステップS621〜626についてそれぞれ説明する。
ステップS601において、タイムアウト検出部103は、ステップS621〜626までのタイムアウト判定に備えて、状態確認要求の実行回数をカウントする状態確認カウンタを0に初期化する。
ステップS621において、タイムアウト検出部103は、予め規定された状態確認時間内で、アクセス要求処理部102におけるアクセス要求またはアクセス応答の送受信が行われるまで待機する。状態確認時間は、イニシエータ装置100のアクセス要求処理部102がターゲット装置110への状態確認要求を送信してから、状態確認応答を受けるまでの時間を考慮して決定される。このため、状態確認時間は、ターゲット装置110とストレージ120との間のローカルアクセス時間を考慮する必要がないため、第1の実施の形態で説明したタイムアウト時間と比べて十分短い時間が用いられる。
ここで、アクセス要求処理部102にてタイムアウト通知および状態確認応答の受信を除く、通常のアクセス要求またはアクセス応答の送受信があった場合(S621:送受信有)、タイムアウト検出部103は、S630に進む。なお、このアクセス要求またはアクセス応答によってリモートアクセスが進展するため、ステップS630においてYESの判定となった場合、ステップS601にて状態確認カウンタを初期化し、タイムアウト判定を再開する。
ここで、アクセス要求処理部102にてタイムアウト通知の受信があった場合(S621:タイムアウト通知受信)、タイムアウト検出部103は、タイムアウトを検出し、S640に進む。
ここで、アクセス要求処理部102にて状態確認応答の受信があった場合(S621:状態確認応答受信)、タイムアウト検出部103は、ステップS622に進む。
ここで、アクセス要求部102にて上記のような送受信が無いまま状態確認時間が経過した場合(S621:状態確認時間経過)、タイムアウト検出部103は、ステップS623にて状態確認カウンタを増分した後、ステップS624に進む。
ステップS622において、タイムアウト検出部103は、状態確認応答のペイロードであるチェックステータス(CST)380を確認する。そして、タイムアウト検出部103は、ターゲット装置110とストレージ120との間のアクセスが実行中を示しているか否か、を判定する。
上記判定の結果、アクセス実行中を示さない場合(S622:NO)、タイムアウト検出部103は、ステップS623にて状態確認カウンタを増分した後、ステップS624に進む。
上記判定の結果、アクセス実行中を示す場合(S622:YES)、タイムアウト検出部103は、ステップS623における状態確認カウンタの増分をスキップし、ステップS624に進む。
ステップS624において、タイムアウト検出部103は、状態確認カウンタが、予め設定された規定値に達しているか否か、を判定する。
上記判定の結果、状態確認カウンタが規定値に達している場合(S624:YES)、タイムアウト検出部103は、タイムアウトを検出し、ステップS640に進む。
上記判定の結果、状態確認カウンタが規定値に達していない場合(S624:NO)、タイムアウト検出部103は、ステップS625にて、アクセス要求処理部102に状態確認要求の送信を指示する。そして、アクセス要求処理部102にて状態確認要求が送信されると、ステップS610にてタイマをリセットし、以降の処理を繰り返す。
以上、本実施の形態のタイムアウト判定は、状態確認時間内で、ターゲット装置110からタイムアウト通知の受信、または、状態確認要求の実行回数を示す状態確認カウンタが規定値に達した時に、タイムアウトを検出する。ここで、イニシエータ装置100は、上述の消去コマンドのような長時間を要するコマンドを発行した場合、タイムアウトを検出することは無い。その理由は、ステップS621にて受信する状態確認応答が、ターゲット装置110とストレージ120との間のローカルアクセスが実行中であることを示す限り、状態確認カウンタを増分しないためである。一方、イニシエータ装置100は、ターゲット装置110との間の無線通信状態が悪化して、状態確認応答を正しく受信できなくなると、状態確認カウンタが増分され、最終的にタイムアウトを検出することになる。また、イニシエータ装置100は、タイムアウト通知の受信により、ターゲット装置110とストレージ120との間のローカルアクセスにおけるタイムアウトを検知することができるため、早期にタイムアウト検出できる可能性がある。
<通信システムの動作>
以下、本実施の形態の通信システムの動作の各例を、図14を用いて説明する。
まず、図14を参照して、状態確認要求が無線区間でパケットロスする場合の動作例について説明する。図中のT1〜T8は、ターゲット装置110側で計時される時間軸上の時点を示している。なお、図14において、T1〜T5は、図8で説明した動作と同じである。よって、イニシエータ装置100は、T4以降、レスポンス1の受信を待ち受けている状態である。なお、図14においては、アクセス要求701に含むコマンド1が、上述の消去コマンドのように長時間を要するコマンドであることが図8と異なる。ストレージ120は、消去コマンドであるコマンド1を受信して、それに対するレスポンス1を返信すると、内部メモリの消去動作を完了するまでの長時間ビジー状態となる。
T6のとき、イニシエータ装置100は、図13のステップS621にて送受信待ち状態のまま、計時時間が状態確認時間810を経過したと判断する。そして、イニシエータ装置100は、ステップS623にて状態確認カウンタの増分後、ステップS624にて状態確認カウンタが規定値未満と判断する。そして、イニシエータ装置100は、ステップS625での状態確認指示に基づき、ターゲット装置110へ状態確認要求800を送信する。このとき、イニシエータ装置100は、ステップS610にてタイマをリセットして計時を再開する。
ここで、T5以降、無線区間の通信品質が低いままであるとすると、イニシエータ装置100は、状態確認時間810が経過する度に、状態確認カウンタを増分させながら状態確認要求の送信を繰り返す。
T7のとき、イニシエータ装置100は、状態確認時間810が経過し、増分後の状態確認カウンタが(規定値−1)となって、状態確認要求を送信する。
T8のとき、イニシエータ装置100は、状態確認時間810が経過し、増分後の状態確認カウンタが規定値と等しくなるため、タイムアウトを検出する。
なお、T6以降、無線区間の通信品質が改善し、イニシエータ装置100が、全ての状態確認要求800、801に対する状態確認応答を正しく受信できた場合、ステップS622での判定に基づき、状態確認カウンタは増分しない。それら状態確認応答には、アクセス実行中を示すチェックステータス(CST)380が含まれるためである。このため、イニシエータ装置100は、ステップS624にて状態確認カウンタが規定値に達することでタイムアウトを検出することは無い。しかし、例えばストレージ120が異常状態になるなど、ターゲット装置110においてタイムアウトが検出された場合、イニシエータ装置100は、ターゲット装置110からのタイムアウト通知の受信によりタイムアウトを検出できる。
次に、図15を参照して、コマンドを含むアクセス要求のパケットロスが発生した場合の動作例について説明する。なお、図15において、T1〜T4は、図8で説明した動作と同様であり、イニシエータ装置100がT2で送信するアクセス要求701がパケットロスすることが異なる。このため、イニシエータ装置100は、T4以降、レスポンス1の受信を待ち受けている状態である。
T5のとき、イニシエータ装置100は、図13のステップS621にて送受信待ち状態のまま、計時時間が状態確認時間810を経過したと判断する。そして、イニシエータ装置100は、ステップS623にて状態確認カウンタの増分後、ステップS624にて状態確認カウンタが規定値未満と判断する。そして、イニシエータ装置100は、ステップS625での状態確認指示に基づき、ターゲット装置110へ状態確認要求800を送信する。このとき、イニシエータ装置100は、ステップS610にてタイマをリセットして計時を再開し、再びステップS621の送受信待ち状態となる。
そして、T6のとき、イニシエータ装置100は、ターゲット装置110から、チェックステータス(CST)380として、アクセス行中ではないことを示す0が設定された状態確認応答802を受信する。このため、ステップS622にてアクセス実行中では無いと判定され、状態確認カウンタは増分される。
T7のとき、イニシエータ装置100は、状態確認時間810が経過し、増分後の状態確認カウンタが(規定値−1)となって、状態確認要求を送信する。そして、T8において、ターゲット装置110からの状態確認応答803を受信し、増分後の状態確認カウンタが規定値と等しくなるため、タイムアウトを検出する。
以上、本実施の形態について説明したが、上記説明は一例であり、種々の変形が可能である。また、上記実施の形態では、本発明をハードウェアで構成する場合を例にとって説明したが、本発明はハードウェアとの連係においてソフトウェアでも実現することも可能である。
以上、本開示のイニシエータ装置は、同時に1つのアクセス要求のみを処理するストレージが接続されたターゲット装置と無線通信を行うことで、前記ストレージにアクセスするイニシエータ装置であって、前記ターゲット装置へ1つ以上のアクセス要求を送信し、当該アクセス要求に対するアクセス応答を前記ターゲット装置から受信するアクセス要求処理部と、前記アクセス要求の全てが完了するまでの間、前記アクセス要求処理部が前記アクセス要求の送信または前記アクセス応答の受信のいずれかを行う度に、計時動作をリセットして再開し、前記計時動作が規定のタイムアウト時間を超えた場合に、タイムアウトを検出するタイムアウト検出部と、を備える。
また、本開示のイニシエータ装置は、前記アクセス要求処理部が、前記ターゲット装置からアクセス要求を受信し、当該アクセス要求に対するアクセス応答を前記ターゲット装置へ送信し、前記タイムアウト検出部が、前記アクセス要求の全てが完了するまでの間、前記アクセス要求処理部が前記アクセス要求の受信または前記アクセス応答の送信のいずれかを行う度に、計時動作をリセットして再開する。
また、本開示のイニシエータ装置は、前記アクセス要求が、コマンドおよびデータフラグメントの少なくとも一方を含むパケットであり、前記アクセス応答が、レスポンスおよびデータアクノリッジの少なくとも一方を含むパケットである。
また、本開示のイニシエータ装置は、前記タイムアウト検出部が、前記ターゲット装置と前記ストレージの間のアクセスがタイムアウトしたことを示すタイムアウト通知を前記アクセス要求処理部が受信したときに、タイムアウトを検出する。
また、本開示のイニシエータ装置は、前記アクセス要求処理部が、前記計時動作が前記タイムアウト時間よりも短い規定の状態確認時間を超えた場合に、前記ターゲット装置に対して状態確認要求を送信し、当該状態確認要求に対する状態確認応答を前記ターゲット装置から受信し、前記タイムアウト検出部が、前記アクセス要求処理部が前記状態確認要求の送信および前記状態確認応答の受信のいずれかを行う度に、前記計時動作をリセットして再開する。
また、本開示のイニシエータ装置は、前記タイムアウト検出部が、前記状態確認要求の実行回数を示す状態確認カウンタを管理し、当該状態確認カウンタが規定値に達した場合に、タイムアウトを検出する。
また、本開示のイニシエータ装置は、前記状態確認応答が、前記ターゲット装置と前記ストレージとの間のアクセスが実行中かどうかを示すフラグを含み、前記タイムアウト検出部が、前記アクセス要求処理部において、アクセス実行中では無いことを示す前記フラグが設定された前記状態確認応答を受信すると、前記状態確認カウンタを増分しない。
また、本開示の通信システムは、イニシエータ装置が、同時に1つのアクセス要求のみを処理するストレージが接続されたターゲット装置と無線通信を行うことで、前記ストレージにアクセスする通信システムであって、前記イニシエータ装置は、前記ターゲット装置へ1つ以上のアクセス要求を送信し、当該アクセス要求に対するアクセス応答を前記ターゲット装置から受信するイニシエータ側アクセス要求処理部と、前記アクセス要求の全てが完了するまでの間、前記アクセス要求処理部が前記アクセス要求の送信または前記アクセス応答の受信のいずれかを行う度に、計時動作をリセットして再開し、前記計時動作が規定のタイムアウト時間を超えた場合に、タイムアウトを検出するタイムアウト検出部と、を備え、前記ターゲット装置は、前記イニシエータ装置から受信したアクセス要求を基に、前記ストレージとの間でローカルアクセスを行うストレージインターフェース部と、前記ローカルアクセスの結果を基に、前記イニシエータ装置に対してアクセス応答またはアクセス要求を送信するターゲット側アクセス要求処理部と、を備える。
また、本開示のタイムアウト検出方法は、同時に1つのアクセス要求のみを処理するストレージが接続されたターゲット装置と無線通信を行うことで、前記ストレージにアクセスするイニシエータ装置が行うタイムアウト検出方法であって、前記ターゲット装置へ1つ以上のアクセス要求を送信し、当該アクセス要求に対するアクセス応答を前記ターゲット装置から受信するステップと、前記アクセス要求の全てが完了するまでの間、前記アクセス要求の送信または前記アクセス応答の受信のいずれかが行われる度に、計時動作をリセットして再開し、前記計時動作が規定のタイムアウト時間を超えた場合に、タイムアウトを検出するステップと、を備える。
また、本開示のタイムアウト検出プログラムは、同時に1つのアクセス要求のみを処理するストレージが接続されたターゲット装置と無線区間を介して通信を行うことで、前記ストレージにアクセスするイニシエータ装置のコンピュータに実行させるタイムアウト検出プログラムであって、前記ターゲット装置へ1つ以上のアクセス要求を送信し、当該アクセス要求に対するアクセス応答を前記ターゲット装置から受信する処理と、前記アクセス要求の全てが完了するまでの間、前記アクセス要求の送信または前記アクセス応答の受信のいずれかが行われる度に、計時動作をリセットして再開し、前記計時動作が規定のタイムアウト時間を超えた場合に、タイムアウトを検出する処理と、を実行させる。
2012年2月20日出願の特願2012−034159の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。
本発明は、アクセス要求を1つずつ処理するストレージに対して複数のアクセス要求を連続して発行し、各アクセス要求についてタイムアウトの有無を監視する通信装置、通信方法、および通信制御プログラムとして有用である。本発明は、例えば、携帯電話機やタブレットなどの携帯機器、および、パーソナルコンピュータに適用することができる。
100 イニシエータ装置
101 無線通信部
102 アクセス要求処理部
103 タイムアウト検出部
110 ターゲット装置
111 無線通信部
112 アクセス要求処理部
113 ストレージインターフェース
115 タイムアウト通知部
116 タイムアウト検出部
120 ストレージ

Claims (7)

  1. 同時に1つのアクセス要求のみを処理するストレージが接続されたターゲット装置と無線通信を行うことで、前記ストレージにアクセスするイニシエータ装置であって、
    前記ターゲット装置へ1つ以上のアクセス要求を送信し、当該アクセス要求に対するアクセス応答を前記ターゲット装置から受信するアクセス要求処理部と、
    前記アクセス要求の全てが完了するまでの間、前記アクセス要求処理部が前記アクセス要求の送信または前記アクセス応答の受信のいずれかを行う度に、計時動作をリセットして再開し、前記計時動作が規定のタイムアウト時間を超えた場合に、タイムアウトを検出するタイムアウト検出部と、
    を備え、
    前記タイムアウト検出部は、
    前記ターゲット装置と前記ストレージの間のアクセスがタイムアウトしたことを示すタイムアウト通知を前記アクセス要求処理部が受信したときに、タイムアウトを検出する、
    イニシエータ装置。
  2. 同時に1つのアクセス要求のみを処理するストレージが接続されたターゲット装置と無線通信を行うことで、前記ストレージにアクセスするイニシエータ装置であって、
    前記ターゲット装置へ1つ以上のアクセス要求を送信し、当該アクセス要求に対するアクセス応答を前記ターゲット装置から受信するアクセス要求処理部と、
    前記アクセス要求の全てが完了するまでの間、前記アクセス要求処理部が前記アクセス要求の送信または前記アクセス応答の受信のいずれかを行う度に、計時動作をリセットして再開し、前記計時動作が規定のタイムアウト時間を超えた場合に、タイムアウトを検出するタイムアウト検出部と、
    を備え、
    前記アクセス要求処理部は、
    前記計時動作が前記タイムアウト時間よりも短い規定の状態確認時間を超えた場合に、前記ターゲット装置に対して状態確認要求を送信し、当該状態確認要求に対する状態確認応答を前記ターゲット装置から受信し、
    前記タイムアウト検出部は、
    前記アクセス要求処理部が前記状態確認要求の送信および前記状態確認応答の受信のいずれかを行う度に、前記計時動作をリセットして再開する、
    イニシエータ装置。
  3. 前記タイムアウト検出部は、
    前記状態確認要求の実行回数を示す状態確認カウンタを管理し、当該状態確認カウンタが規定値に達した場合に、タイムアウトを検出する、
    請求項2記載のイニシエータ装置。
  4. 前記状態確認応答は、前記ターゲット装置と前記ストレージとの間のアクセスが実行中かどうかを示すフラグを含み、
    前記タイムアウト検出部は、
    前記アクセス要求処理部において、アクセス実行中では無いことを示す前記フラグが設定された前記状態確認応答を受信すると、前記状態確認カウンタを増分しない、
    請求項3記載のイニシエータ装置。
  5. イニシエータ装置が、同時に1つのアクセス要求のみを処理するストレージが接続されたターゲット装置と無線通信を行うことで、前記ストレージにアクセスする通信システムであって、
    前記イニシエータ装置は、
    前記ターゲット装置へ1つ以上のアクセス要求を送信し、当該アクセス要求に対するアクセス応答を前記ターゲット装置から受信するイニシエータ側アクセス要求処理部と、
    前記アクセス要求の全てが完了するまでの間、前記アクセス要求処理部が前記アクセス要求の送信または前記アクセス応答の受信のいずれかを行う度に、計時動作をリセットして再開し、前記計時動作が規定のタイムアウト時間を超えた場合に、タイムアウトを検出するタイムアウト検出部と、を備え、
    前記タイムアウト検出部は、
    前記ターゲット装置と前記ストレージの間のアクセスがタイムアウトしたことを示すタイムアウト通知を前記アクセス要求処理部が受信したときに、タイムアウトを検出し、
    前記ターゲット装置は、
    前記イニシエータ装置から受信したアクセス要求を基に、前記ストレージとの間でローカルアクセスを行うストレージインターフェース部と、
    前記ローカルアクセスの結果を基に、前記イニシエータ装置に対してアクセス応答またはアクセス要求を送信するターゲット側アクセス要求処理部と、
    を備える通信システム。
  6. 同時に1つのアクセス要求のみを処理するストレージが接続されたターゲット装置と無線通信を行うことで、前記ストレージにアクセスするイニシエータ装置が行うタイムアウト検出方法であって、
    前記ターゲット装置へ1つ以上のアクセス要求を送信し、当該アクセス要求に対するアクセス応答を前記ターゲット装置から受信するステップと、
    前記アクセス要求の全てが完了するまでの間、前記アクセス要求の送信または前記アクセス応答の受信のいずれかが行われる度に、計時動作をリセットして再開し、前記計時動作が規定のタイムアウト時間を超えた場合に、タイムアウトを検出するステップと、
    を備え、
    前記タイムアウトを検出するステップでは、
    前記ターゲット装置と前記ストレージの間のアクセスがタイムアウトしたことを示すタイムアウト通知を前記イニシエータ装置が受信したときに、タイムアウトを検出する、
    タイムアウト検出方法。
  7. 同時に1つのアクセス要求のみを処理するストレージが接続されたターゲット装置と無線区間を介して通信を行うことで、前記ストレージにアクセスするイニシエータ装置のコンピュータに実行させるタイムアウト検出プログラムであって、
    前記ターゲット装置へ1つ以上のアクセス要求を送信し、当該アクセス要求に対するアクセス応答を前記ターゲット装置から受信する処理と、
    前記アクセス要求の全てが完了するまでの間、前記アクセス要求の送信または前記アクセス応答の受信のいずれかが行われる度に、計時動作をリセットして再開し、前記計時動作が規定のタイムアウト時間を超えた場合に、タイムアウトを検出する処理と、
    をコンピュータに実行させ、
    前記タイムアウトを検出する処理では、
    前記ターゲット装置と前記ストレージの間のアクセスがタイムアウトしたことを示すタイムアウト通知を前記イニシエータ装置が受信したときに、タイムアウトを検出する処理をコンピュータに実行させる、
    タイムアウト検出プログラム。
JP2013536343A 2012-02-20 2012-10-02 イニシエータ装置、ターゲット装置、通信システム、タイムアウト検出方法、およびタイムアウト検出プログラム Active JP5902702B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013536343A JP5902702B2 (ja) 2012-02-20 2012-10-02 イニシエータ装置、ターゲット装置、通信システム、タイムアウト検出方法、およびタイムアウト検出プログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2012034159 2012-02-20
JP2012034159 2012-02-20
PCT/JP2012/006310 WO2013124918A1 (ja) 2012-02-20 2012-10-02 イニシエータ装置、ターゲット装置、通信システム、タイムアウト検出方法、およびタイムアウト検出プログラム
JP2013536343A JP5902702B2 (ja) 2012-02-20 2012-10-02 イニシエータ装置、ターゲット装置、通信システム、タイムアウト検出方法、およびタイムアウト検出プログラム

Publications (2)

Publication Number Publication Date
JPWO2013124918A1 JPWO2013124918A1 (ja) 2015-05-21
JP5902702B2 true JP5902702B2 (ja) 2016-04-13

Family

ID=49005143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013536343A Active JP5902702B2 (ja) 2012-02-20 2012-10-02 イニシエータ装置、ターゲット装置、通信システム、タイムアウト検出方法、およびタイムアウト検出プログラム

Country Status (5)

Country Link
US (1) US9832086B2 (ja)
EP (1) EP2819022B1 (ja)
JP (1) JP5902702B2 (ja)
CN (1) CN103477331B (ja)
WO (1) WO2013124918A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015170203A (ja) * 2014-03-07 2015-09-28 富士通株式会社 検証方法、検証プログラムおよび検証装置
CN103916828B (zh) * 2014-03-19 2017-08-04 华为终端有限公司 处理彩信的方法及装置
US10530676B2 (en) * 2016-03-18 2020-01-07 Westinghouse Air Brake Technologies Corporation Distributed power remote communication status system and method
US11265284B2 (en) * 2016-03-18 2022-03-01 Westinghouse Air Brake Technologies Corporation Communication status system and method
US10479382B2 (en) 2017-04-07 2019-11-19 Westinghouse Air Brake Technologies Corporation System, method, and apparatus for determining a communication status of locomotives in a distributed power system
US20220137620A1 (en) * 2016-03-18 2022-05-05 Transportation Ip Holdings, Llc Communication status system and method
US10691519B2 (en) * 2016-09-15 2020-06-23 International Business Machines Corporation Hang detection and recovery
CN107704489B (zh) * 2017-08-21 2021-04-13 北京小米移动软件有限公司 读写超时的处理方法、装置及计算机可读存储介质
CN113032307A (zh) * 2021-03-26 2021-06-25 山东英信计算机技术有限公司 一种集成器件访问请求处理方法及相关组件
CN113542057B (zh) * 2021-06-23 2022-11-01 浙江中控技术股份有限公司 基于冗余设备的通信故障检测方法、设备和系统
CN116909799B (zh) * 2023-09-13 2023-12-26 飞腾信息技术有限公司 数据访问方法和片上系统
CN117521570B (zh) * 2024-01-05 2024-04-02 北京凯芯微科技有限公司 总线的超时检测电路、方法、芯片及电子设备

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774479A (en) * 1995-03-30 1998-06-30 Motorola, Inc. Method and system for remote procedure call via an unreliable communication channel using multiple retransmission timers
JPH10307737A (ja) * 1997-05-06 1998-11-17 Saitama Nippon Denki Kk Cpuの暴走検出装置及び方法
JP2000099413A (ja) 1998-09-18 2000-04-07 Fujitsu Ltd リモート転送装置および方法
US7725587B1 (en) * 2000-08-24 2010-05-25 Aol Llc Deep packet scan hacker identification
US6807428B2 (en) 2001-08-16 2004-10-19 Qualcomm, Incorporated Method and apparatus for time-based reception of transmissions in a wireless communication system
WO2003041341A1 (fr) * 2001-11-05 2003-05-15 Matsushita Electric Industrial Co., Ltd. Serveur et terminal destines a un systeme de transmission video
JP2004054542A (ja) * 2002-07-19 2004-02-19 Nec Corp 情報処理装置
GB0410150D0 (en) * 2004-05-07 2004-06-09 Ibm Methods,apparatus and computer programs for recovery from failures in a computing environment
JP4144882B2 (ja) * 2004-05-14 2008-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、情報システム、プロキシ処理方法、及びプログラムと記録媒体
JP4474215B2 (ja) * 2004-06-29 2010-06-02 パナソニック株式会社 無線基地局装置、無線制御システム、および動作制御方法
US20060095596A1 (en) * 2004-11-03 2006-05-04 Yung Lin C Solution for consumer electronics control
US7848227B2 (en) * 2005-01-26 2010-12-07 Cisco Technology, Inc. Retransmit timeout suppression in large scale networks
JP2006227962A (ja) * 2005-02-18 2006-08-31 Fuji Electric Systems Co Ltd アプリケーションタスク監視システムおよび方法
CN101142837B (zh) * 2005-03-24 2011-04-06 松下电器产业株式会社 通信管理装置、通信控制装置和无线通信系统
US7620398B2 (en) * 2005-08-30 2009-11-17 Motorola, Inc. Method and apparatus for simultaneously communicating on a voice channel and broadcast channel
US7467247B2 (en) * 2005-10-31 2008-12-16 Hewlett-Packard Development Company, L.P. Timeouts on accessing a shared resource
US7375484B2 (en) * 2006-07-13 2008-05-20 Wayne-Dalton Corp. System and method for unattended control of an access barrier
US9727490B2 (en) * 2008-02-25 2017-08-08 Clevx, Llc Self-locking mass storage system and method of operation thereof
JP5146032B2 (ja) 2008-03-17 2013-02-20 富士通株式会社 入出力制御方法、制御装置及びプログラム
KR100939722B1 (ko) * 2008-08-11 2010-02-01 엘지전자 주식회사 데이터 전송 방법 및 이를 위한 사용자 기기
DE112009002119T5 (de) * 2008-10-15 2011-07-07 Mitsubishi Electric Corp. Informationsspeichereinrichtung
CN101841889B (zh) * 2009-03-19 2014-11-05 中兴通讯股份有限公司 随机接入信息的获取方法及用户设备
CN101778470A (zh) * 2010-01-05 2010-07-14 华为终端有限公司 一种终端设备的应用方法和装置
US9185725B2 (en) * 2011-12-15 2015-11-10 Nokia Technologies Oy Request-response procedure for wireless network

Also Published As

Publication number Publication date
EP2819022A4 (en) 2015-04-22
JPWO2013124918A1 (ja) 2015-05-21
CN103477331A (zh) 2013-12-25
US20140078926A1 (en) 2014-03-20
WO2013124918A1 (ja) 2013-08-29
EP2819022B1 (en) 2019-08-28
CN103477331B (zh) 2017-02-08
EP2819022A1 (en) 2014-12-31
US9832086B2 (en) 2017-11-28

Similar Documents

Publication Publication Date Title
JP5902702B2 (ja) イニシエータ装置、ターゲット装置、通信システム、タイムアウト検出方法、およびタイムアウト検出プログラム
JP5834182B2 (ja) データ転送制御装置及びデータ転送制御方法
US8051222B2 (en) Concatenating secure digital input output (SDIO) interface
WO2011130974A1 (zh) 文件下载方法及系统
JP2009282599A (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにコンピュータ・プログラム
JP2005332250A (ja) データ処理装置およびフロー制御方法
EP2157723B1 (en) Data retransmission method and system
US9201623B2 (en) Control device and image forming apparatus with two controllers
TWI483117B (zh) 用於執行命令之裝置、主機控制器及用於執行命令之系統
CN103650401A (zh) 一种移动终端内部通信方法
US8842547B2 (en) Communication control apparatus and control method
CN109800202B (zh) 一种基于pcie的数据传输系统、方法及装置
Guo et al. A novel GPP-based Software-Defined Radio architecture
EP2726992B1 (en) Network control model driver
JP4567586B2 (ja) 処理装置
US20140347986A1 (en) Wireless communication device, wireless communication method, and wireless communication control program
JP2014168144A (ja) 通信方法及びスイッチングハブ
JPH08123770A (ja) データ通信制御装置
JP2010262663A (ja) メモリインタフェース装置、メモリインタフェース方法、およびモデム装置
CN109597576B (zh) 提高ncq命令响应速度的方法、装置、可读存储介质及系统
US20230305987A1 (en) Communication control apparatus and communication method
TWI484347B (zh) 資料傳輸方法以及通用串列匯流排主機控制器
JP5586442B2 (ja) 通信装置、通信装置のデータ転送方法および通信プログラム
CN115567080A (zh) 一种基于usart的通信方法、系统及设备
CN113711192A (zh) 信息处理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160212

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: 20160308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160310

R151 Written notification of patent or utility model registration

Ref document number: 5902702

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250