JP2006120115A - 情報機器及びその制御方法 - Google Patents

情報機器及びその制御方法 Download PDF

Info

Publication number
JP2006120115A
JP2006120115A JP2005086045A JP2005086045A JP2006120115A JP 2006120115 A JP2006120115 A JP 2006120115A JP 2005086045 A JP2005086045 A JP 2005086045A JP 2005086045 A JP2005086045 A JP 2005086045A JP 2006120115 A JP2006120115 A JP 2006120115A
Authority
JP
Japan
Prior art keywords
data
host
communication
interrupt
reply
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.)
Pending
Application number
JP2005086045A
Other languages
English (en)
Inventor
Kenji Yoshida
田 健 二 吉
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005086045A priority Critical patent/JP2006120115A/ja
Publication of JP2006120115A publication Critical patent/JP2006120115A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

【課題】 高い優先順位の割り込み処理を通信処理よりも優先して実行させつつ、通信処理におけるコネクションが切断されないようにした情報機器及びその制御方法を提供する。
【解決手段】 情報機器は、ホストと通信を行う通信部であって、通常モードでは、正常にデータを受信できた場合には正常にデータを受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できなかった旨の返信をホストに行うとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できなかった旨の返信をホストに行う、通信手段と、前記通信手段が行っている前記ホストとの通信よりも優先順位の高い割り込み処理を受け付ける、割り込み処理受付手段と、前記割り込み処理受付手段が、前記割り込み処理を受け付けた場合には、前記通信手段を前記通常モードから前記割り込みモードに変更する、第1モード変更手段と、を備える。
【選択図】 図1

Description

本発明は、情報機器及びその制御方法に関し、特に、外部から接続されたホストとのデータ通信において応答確認を行いながら通信を行う情報機器及びその制御方法に関する。
近年、デジタルビデオカメラやデジタルスチルカメラなどに代表されるマルチメディアを扱う機器が、急速に普及してきている。このため、コンピュータとストレージ機能(情報蓄積記録機能)を持った情報機器(特にポータブルな機器)との間において、通常のデータファイルに限らず、ビデオデータや画像データ、音楽データなどのいわゆるマルチメディアファイルのデータのやり取りが頻繁に行われるようになっている。また、インターネットの普及により、WEB経由で、マルチメディアファイルのダウンロードも頻繁に行われるようになっている。
マルチメディアファイル(特に画像データ)の容量は、ファイルフォーマットや圧縮率、収録時間などの要素によって変動があるものの、一般的には大容量である。このマルチメディアファイルの転送には、有線通信においては、IEEE1394やユニバーサル・シリアル・バス(以下、USBという)などの高速シリアルインターフェースが使われることが多くなっている。また、無線通信においては、BluetoothやIEEE802.11a/b/gなどの無線LANインターフェースが使われることが多くなっている。これは、WEB経由でTCPプロトコルを使った通信でも同様である。
しかしながら、コンピュータと情報機器との間において、USBインターフェース等による通信やインターネットによる通信などで、大量のデータの送受信が行われると、連続的にデータアクセスをするため、マルチタスクでない処理環境においては、この処理が終わるまで待たされることがあった。すなわち、ユーザによる情報機器の操作や、情報機器内の処理が、データ通信の完了まで待たされることがあった。この場合、一旦、外部機器であるコンピュータとの通信を理論上、切断しないと、この情報機器内の処理に移行できなかった。
また、Windows(登録商標)やMacOSのようなマルチタスクOSの処理環境においても、ごく短い時間に複数のプログラムの処理を少しずつ進めて、ユーザにはあたかも複数のプログラムが同時に動いているように見えるようにしている。しかし、複数のプログラムで大量のデータ通信を行った場合、その処理量が大量になり、その間にデータ送受信を伴わないハードディスクアクセス処理を要求した場合、マルチタスク処理環境でも、ユーザが待たされることがあった。
これは、マルチタスクのプロセス制御において、ある処理を優先して実行させた場合、それよりも優先順位が下位の処理は、継続して処理を実行することができないためである。また、データ通信を行う処理の優先順位が低いと、タイムアウト等によりデータ通信のコネクションが切断されてしまうためである。
そこで本発明は、前記課題に鑑みてなされたものであり、高い優先順位の割り込み処理を通信処理よりも優先して実行させつつ、通信処理におけるコネクションが切断されないようにした情報機器及びその制御方法を提供することを目的とする。
上記課題を解決するため、本発明に係る情報機器は、
ホストと通信を行う通信部であって、通常モードでは、正常にデータを受信できた場合には正常にデータを受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できなかった旨の返信をホストに行うとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できなかった旨の返信をホストに行う、通信手段と、
前記通信手段が行っている前記ホストとの通信よりも優先順位の高い割り込み処理を受け付ける、割り込み処理受付手段と、
前記割り込み処理受付手段が、前記割り込み処理を受け付けた場合には、前記通信手段を前記通常モードから前記割り込みモードに変更する、第1モード変更手段と、
を備えることを特徴とする。
この場合、前記通信部は、
前記通常モードでは、当該情報機器のデータを前記ホストに送信する要求を受信した際に、前記データを前記ホストに送信できる場合にはそのデータを前記ホストに送信し、前記データを送信できない場合には送信できない旨の返信を前記ホストに送信するとともに、
前記割り込みモードでは、前記データを前記ホストに送信できる場合でも、所定の割合で、前記データを送信できない旨の返信を前記ホストに送信する、
ようにしてもよい。
この場合、前記割り込み処理受付手段が受け付けた前記割り込み処理が終了した場合には、前記通信手段を前記割り込みモードから前記通常モードに変更する、第2モード変更手段をさらに備えるようにしてもよい。
また、前記割り込みモードにおける前記所定の割合は100%であるようにしてもよい。
また、前記データを正常に受信できなかった旨の返信は、ネガティブアクノーレッジであるようにしてもよい。同様に、前記データを送信できない旨の返信は、ネガティブアクノーレッジであるようにしてもよい。
また、前記割り込みモードにおいて、ホストとの通信でタイムアウトが発生した場合には、前記割り込みモードにおける前記所定の割合を少なくする、割合調整部を、さらに備えるようにしてもよい。
或いは、前記割り込みモードにおいて、ホストとの通信でタイムアウトが発生した場合には、タイムアウトが発生するまでの時間に基づいて、前記割り込みモードにおける前記所定の割合を決定する、割合決定部を、さらに備えるようにしてもよい。
また、前記割り込みモードでは、前記通信部は、前記データを正常に受信できなかった旨の返信の代わりに、所定の割合で、次回のデータを所定時間送信しないように要求する旨の返信をホストに行うようにしてもよい。
また、当該情報機器から前記ホストに対して、自主的にデータの送信を停止させる要求を送信することができない通信の規格仕様であってもよい。
また、前記割り込み処理は、ユーザ操作により指示された処理であってもよい。
本発明に係る情報機器の制御方法は、
ホストと通信を行う情報機器の制御方法であって、
前記ホストとの通信の際には、通常モードでは、正常にデータを受信できた場合には正常にデータを受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できなかった旨の返信をホストに行うとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できなかった旨の返信をホストに行い、
前記ホストとの通信よりも優先順位の高い割り込み処理を受け付けた場合には、前記ホストとの通信を、前記通常モードから前記割り込みモードに変更する、
ことを特徴とする。
本発明に係るプログラムは、
ホストと通信を行う情報機器を制御するためのプログラムであって、
前記ホストとの通信の際には、通常モードでは、正常にデータを受信できた場合には正常にデータを受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できなかった旨の返信をホストに行うとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できなかった旨の返信をホストに行い、
前記ホストとの通信よりも優先順位の高い割り込み処理を受け付けた場合には、前記ホストとの通信を、前記通常モードから前記割り込みモードに変更する、
ように情報機器を制御することを特徴とする。
本発明に係る情報機器は、
ホストと通信を行う通信手段であって、通常モードでは、正常にデータを受信できた場合にはデータを正常に受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できた旨の返信を行わないとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できた旨の返信を行わない、通信手段と、
前記通信手段が行っている前記ホストとの通信よりも優先順位の高い割り込み処理を受け付ける、割り込み処理受付手段と、
前記割り込み処理受付手段が、前記割り込み処理を受け付けた場合には、前記通信手段を前記通常モードから前記割り込みモードに変更する、モード変更手段と、
を備えることを特徴とする。
本発明に係る情報機器の制御方法は、
ホストと通信を行う情報機器の制御方法であって、
前記ホストとの通信の際には、通常モードでは、正常にデータを受信できた場合にはデータを正常に受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できた旨の返信を行わず、且つ、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できた旨の返信を行わず、
前記ホストとの通信よりも優先順位の高い割り込み処理を受け付けた場合には、前記ホストとの通信を、前記通常モードから前記割り込みモードに変更する、
ことを特徴とする。
本発明に係るプログラムは、
ホストと通信を行う情報機器を制御するためのプログラムであって、
前記ホストとの通信の際には、通常モードでは、正常にデータを受信できた場合にはデータを正常に受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できた旨の返信を行わず、且つ、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できた旨の返信を行わず、
前記ホストとの通信よりも優先順位の高い割り込み処理を受け付けた場合には、前記ホストとの通信を、前記通常モードから前記割り込みモードに変更する、
ように情報機器を制御することを特徴とする。
〔第1実施形態〕
まず、第1実施形態に係る情報処理システムの概要を説明する。本実施形態においては、ホストであるコンピュータと、ハードディスクドライブなどを搭載した情報機器との間は、USBインターフェースで接続されている。USBインターフェースで規定されている規格仕様では、実際のデータのやり取りは、ハードディスクドライブなどを搭載する情報機器が属するマスストレージクラスのデバイスにおけるバルク転送で行われる。
バルク転送では、情報機器がデータを正常に受け取れなかった場合には、ハンドシェークパケットとして「NAK」(ネガティブアクノーレッジ)を情報機器からコンピュータに送信する。この「NAK」を受信したコンピュータでは、データが正常に受け取れたことを意味する「ACK」(アクノーレッジ)を情報機器から受信するまで、或いは、要求したデータを情報機器から受信するまで、何度もデータの送信を再試行する仕様になっている。
本実施形態ではこの仕様を応用して、データが正常に受け取れた場合でも、コンピュータに「NAK」を所定の割合(0%を超えて100%以下の所定の割合)で返信し続けることにより、コンピュータと情報機器との間の接続を切断することなく通信を一旦待機させ、その間に情報機器側では、他の処理を実行できるようにしている。一方、コンピュータは「ACK」を受信するまで、或いは、要求したデータを受信するまで、同じデータを情報機器に送信し続ける。したがって、情報機器側で他の処理が終了し、「NAK」を所定の割合で返信する処理が終了すれば、通常通りのデータ通信に戻るのである。より詳しい実施形態を、以下に説明する。
図1は、本実施形態に係る情報処理システムの構成を説明するブロック図である。この図1に示すように、本実施形態における情報処理システムは、ホストとしてコンピュータ10を備えており、情報機器としてストレージデバイス20を備えている。これらコンピュータ10とストレージデバイス20との間は、USBインターフェースにより接続されている。
すなわち、コンピュータ10にはタイプAの接続ポート12が設けられており、ストレージデバイス20にはタイプBの接続ポート22が設けられている。これらコンピュータ10の接続ポート12とストレージデバイス20の接続ポート22との間を、USBケーブル30が接続している。
さらに、ストレージデバイス20は、USBデバイスコントローラ40と、ハードディスクドライブ42と、ATAブリッジコントローラ44と、CPU46と、フラッシュROM48とを備えて構成されている。USBデバイスコントローラ40と接続ポート22との間はデータバスにより接続されている。USBデバイスコントローラ40とハードディスクドライブ42との間、USBデバイスコントローラ40とATAブリッジコントローラ44との間も、データバスにより接続されている。ATAブリッジコントローラ44とCPU46との間も、データバスにより接続されており、フラッシュROM48とCPU46との間も、データバスにより接続さている。
USBデバイスコントローラ40は、USBインターフェースに基づいて、コンピュータ10とストレージデバイス20との間のデータやり取りを制御する。USBデバイスコントローラ40とハードディスクドライブ42とATAブリッジコントローラ44との間は、ATA規格に基づいてデータのやり取りがされている。ATAブリッジコントローラ44は、ATA規格に基づいて受信したデータをCPU46用のデータ規格に変換し、CPU46に送信するとともに、CPU46からのデータをATA規格に基づくデータに変換して、USBデバイスコントローラ40やハードディスクドライブ42に送信する。
ここで、USBインターフェースにおいては、デバイスクラスというものが定義されている。通常、USBインターフェースにおいて、ストレージデバイス20のような記録装置を扱う場合、マスストレージクラスというクラスを使用する。マスストレージクラスには、フレキシブルディスクドライブ、ハードディスクドライブ、光ディスクドライブなどのディスクドライブが包含されている。また、USBインターフェースにおいては、データ転送のタイプとして、コントロール転送、アイソクロナス転送、インタラプト転送、バルク転送の4種類が用意されている。
ハードディスクドライブなどの記録装置が属するマスストレージクラスのデバイスにおいては、実際のデータのやり取りは、バルク転送により行われる。バルク転送は、ファイルをプリンタに送信したり、ディスクの読み書きをしたりするような、非周期的な転送のうち、遅延が問題にならない大量のデータを、高い信頼性で転送する場合に用いられる。このバルク転送では、アイソクロナス転送やインタラプト転送によりバスが使用されている間は、処理を待つ必要があり、バスが空いた場合に転送が行われる。このため、データの転送速度は保証されていない。その代わり、バスが空いている時間をすべて使用することができるため、バスが空いていると非常に速い速度でデータ転送できるという利点がある。また、このバルク転送では、ホスト側がデバイス側(本実施形態では、ストレージデバイス20側)から「NAK」を受け取ると、「ACK」を受け取るまで何度もデータ転送を再試行するようになっている。
USBのバルク転送におけるトランザクションは、図2に示すようになっている。この図2から分かるように、バルク転送は、トークンパケットと、データパケットと、ハンドシェークパケットという3種類のパケットから構成されている。また、トランザクションとしては、INトランザクションと、OUTトランザクションとがある。INトランザクションは、デバイス内のデータをホストへ送信するトランザクションである。OUTトランザクションは、ホストから送信されたデータをデバイスが受信するトランザクションである。
INトランザクションの場合は、ホストからのINトークンパケットに対して、デバイスがデータを送信できる場合はデータを送信し、送信できない場合は「NAK」を返信する。すなわち、「NAK」は返すデータが無い、または送信できる状態にないことを意味している。サポートしていないリクエストを要求された場合やエンドポイントが閉じている場合等には、「STALL」(ストール)を返信する。
OUTトランザクションの場合は、ホストからのOUTトークンパケットに続いてデータが送信されてくるので、このデータをデバイス側が受信できたかどうかを「ACK」、「NAK」、「NYET」(ノットイエット)、「STALL」で返信する。「ACK」はデバイスがデータを正常に受信した場合に返信する。「NAK」はデバイスがデータを正常に受信できなかった場合に返信する。すなわち、「NAK」はデバイス側がビジーであることを意味している。「NYET」は今回送信されたデータは正常に受信したが、次の送信はしばらく待ってからにして欲しい場合に返信する。つまり、「NYET」を返信すれば、ホスト側に所定時間はデータを送信しないように要求したこととになる。「STALL」はサポートしていないリクエストであった場合やエンドポイントが閉じている場合等に返信する。
バルク転送では、OUTトランザクションにおいて、ホスト側がデバイス側から「NAK」を受け取った場合、ホスト側はデバイス側から「ACK」を受け取るまで、データ転送を再試行する。また、INトランザクションにおいて、ホスト側がデバイス側から「NAK」を受け取った場合、ホスト側はデバイス側から要求したデータを受け取るまで、INトークンパケットを再送信する。
本実施形態においては、USBのこの規格仕様を利用して、ホスト側とデバイス側のバルク転送によるデータ通信において、優先順位の高い割り込み処理が発生した場合、デバイス側からホスト側に「NAK」を返信するようにする。すなわち、INトランザクションの場合、デバイス側は、ホスト側からのINトークンパケットに対して、データを送信する代わりに、「NAK」を返す。OUTトランザクションの場合、デバイス側は、ホスト側からのOUTトークンパケットに続いて、データを受信するが、正常にデータを受け取れた場合でも「NAK」を返信する。このような処理をしている間に、ストレージデバイス20は、優先順位の高い割り込み処理を実行する。
そして、割り込み処理が終了した場合、ホスト側から再送信されてくるデータに対して、デバイス側は「ACK」を返信することにより、正常なデータ転送が再開される。
この処理を図3及び図4を用いて詳細に説明する。図3は、本実施形態に係るユーザ操作割り込み処理の内容を説明するフローチャートを示す図である。この図3に示すユーザ操作割り込み処理は、フラッシュROM48に格納されているユーザ操作割り込みプログラムをCPU46が読み込んで実行することにより、実現される処理である。また、このユーザ操作割り込み処理は、定常的に実行されている処理である。図4は、本実施形態に係るストレージデバイス20における操作ボタン側のレイアウトを示す図である。
図4に示すように、ストレージデバイス20には、表示画面50が設けられている。この表示画面50の右側には、ユーザが指で操作する、メニューボタンB10と、OKボタンB12と、キャンセルボタンB14とが設けられている。また、その上にも、ユーザが指で操作する、上側移動ボタンB20と、左側移動ボタンB22と、右側移動ボタンB24と、下側移動ボタンB26とが、設けられている。
まず、図3に示すように、デバイス側であるストレージデバイス20は、ユーザからの割り込み操作がなされたかどうかを判断する(ステップS10)。本実施形態では、図4のボタンB10〜B26をユーザが操作して、何らかの処理をストレージデバイス20に指示した場合に、ユーザからの割り込み操作がなされたと判断する。例えば、サムネール画面を表示画面50に表示させるための操作をした場合などが、想定される。
次に、ストレージデバイス20は、コンピュータ10とストレージデバイス20との間でデータ転送中であるかどうかを判断する(ステップS12)。すなわち、コンピュータ10からストレージデバイス20にデータを送信してる最中であるか、或いは、ストレージデバイス20からコンピュータ10にデータを送信している最中であるかどうかを、判断する。
データ転送中である場合(ステップS12:Yes)には、ストレージデバイス20は所定の割合で「NAK」を返信する通信処理を行う(ステップS14)。すなわち、ホスト側であるコンピュータ10からトークンパケットやデータを受信した場合、所定の割合で「NAK」をコンピュータ10に返信する「割り込みモード」に移行する。
図5は、本実施形態に係るUSBデバイスコントローラ40の内部構成を説明する図である。この図5に示すように、USBデバイスコントローラ40は、指示判断部40aと、NAK返信部40bと、USB通信制御部40cとを備えている。
指示判断部40aは、CPU46からの指示が、所定の割合で「NAK」を返信する指示なのか、通常のUSB通信を行う指示なのかを判断する。NAK返信部40bは、指示判断部40aからの指示に基づいて、所定の割合で「NAK」を返信する通信処理を行う。一方、USB通信制御部40cは、指示判断部40aからの指示に基づいて、通常のUSB通信の通信処理を行う。
したがって、ステップS14においては、CPU46は、所定の割合で「NAK」を返信する通信処理を実現するために、USBデバイスコントローラ40に、所定の割合で「NAK」を返信する通信処理を行うように指示をする。この指示を受け取ったUSBデバイスコントローラ40のNAK返信部40bでは、コンピュータ10から送信されてくるトークンパケットやデータに対して、所定の割合で「NAK」を強制的に返信する。すなわち、「NAK」を返信した場合には、受信したデータはハードディスクドライブ42に格納することなく破棄される。また、ハードディスクドライブ42からデータを読み出す要求に対しては、これを受け入れることなく破棄される。
所定の割合は、種々に設定することが可能であるが、例えば、100%(すなわち、すべて「NAK」を返信する)、や50%などが考えられる。このようにすることにより、ストレージデバイス20は、データ通信のための処理を行う必要がなくなり、ユーザが要求した割り込み処理を実行することができるようになる。
なお、所定の割合は、0%を超えて100%以下であれば任意に設定可能である。但し、所定の割合を100%に設定した場合、コンピュータ10側でデータ送信の再試行の回数に制限がある場合や、タイムアウトの制限がある場合には、これらのエラーに該当してしまう可能性がある。このような場合、所定の割合を50%や70%に設定することにより、エラーに該当する可能性を低減することができる。
さらに、OUTトランザクションにおいて、「NAK」を返信する割合と、INトランザクションにおいて「NAK」を返信する割合は、同じでもよいし、異なっていてもよい。
このように所定の割合で「NAK」を返信する通信処理を行いながら、ユーザが操作した割り込み処理を実行する(ステップS16)。そして、ストレージデバイス20は、この割り込み処理が終了したかどうかを判断する(ステップS18)。
ユーザが操作した割り込み処理が終了していないと判断した場合(ステップS18:No)には、ストレージデバイス20は、この割り込み処理を続行する(ステップS16)。一方、割り込み処理が終了したと判断した場合(ステップS18:Yes)には、ストレージデバイス20は、通常の通信処理(通常モード)に戻る。具体的には、CPU46は、USBデバイスコントローラ40に、所定の割合で「NAK」を返信する通信処理を終了し、通常の通信処理に戻るように指示をする(ステップS20)。すなわち、ステップS20で、CPU46がUSBデバイスコントローラ40に対して、通常のUSB通信処理を行う指示を送信する。この指示を受信したUSBデバイスコントローラ40では、USB通信制御部40cが通常のUSB通信処理を行う。そして、CPU46は、上述したステップS10からを繰り返す。
これに対して、上述したステップS12で、データ転送中でないと判断した場合(ステップS12:No)には、ストレージデバイス20は、「通常モード」で、ユーザが操作した割り込み処理を実行する(ステップS30)。そして、ストレージデバイス20は、この割り込み処理が終了したかどうかを判断する(ステップS32)。
ユーザが操作した割り込み処理が終了していないと判断した場合(ステップS32:No)には、ストレージデバイス20は、この割り込み処理を続行する(ステップS30)。一方、割り込み処理が終了したと判断した場合(ステップS32:Yes)には、ストレージデバイス20は、上述したステップS10の処理に戻る。
以上のように、本実施形態に係る情報処理システムによれば、ストレージデバイス20が、ユーザ操作による割り込み処理などの優先順位の高い割り込み処理を受け付けた際に、データ転送中である場合には、所定の割合でデータを正常に受信できなかった返信をし、その間に割り込み処理を実行できるようにした。このため、ユーザ操作に対する応答の待ち時間を短くすることができる。
すなわち、本実施形態に係る情報処理システムによれば、ストレージデバイス20とコンピュータ10との間のデータ転送をユーザには処理しているように見せかけて、実は所定の割合でしか処理をしないことにより、ユーザが要求する処理を優先させて実行するようにしている。これにより、データ転送中におけるユーザ要求処理の遅延を防ぐことができる。
しかも、このような制御をするにあたり、ストレージデバイス20はコンピュータ10に「NAK」を返信するだけであるので、ホスト側であるコンピュータ10に特別なドライバソフトウェアを追加しなくても、本実施形態を実現することができる。すなわち、USBインターフェースのように、デバイス側から自発的に通信できない規格仕様において、データの送受信の成否を伝達するハンドシェークパケットを利用することにより、デバイス側におけるハードディスクドライブ42へのアクセスを拒否するという要望を満たすことができる。
なお、本実施形態においては、例えば、図6に示すように、バルク転送処理のうちのOUTトランザクションについては、上述した図3のステップS14の処理で、「NAK」の代わりに「NYET」を返信するようにしてもよい(ステップS50)。この「NYET」はUSB2.0のハイスピード転送でのみサポートされている。
この場合、バルク転送処理のうちのINトランザクションについては、上述した図3と同様の処理を行うこととなる。また、USBインターフェースの規格仕様では、デバイス側から「NYET」を返信されたホスト側は、データ送信を再開する前に、「PING」を用いてデバイスのビジーチェックをすることになっている。
すなわち、図7に示すように、「NYET」を受信したホストは、所定時間経過後に、デバイスのビジーチェックをするために、「PING」をデバイスに送信し、デバイスはそれに対して「ACK」または「NAK」のステータスを返す事になっている。デバイスの準備がまだできていない場合、すなわち、本実施形態では割り込み処理が終了していない場合には、デバイスは所定の割合で「NAK」を返信する。或いは、図8に示すように、割り込み処理が終了していない場合には、デバイスは「PING」に対して一旦「ACK」をホスト側に返信し、その後、データを受信した際に所定の割合で「NYET」をホスト側に再度返信するようにしてもよい。
〔第2実施形態〕
上述した第1実施形態では、本発明をUSB規格に適用した例を説明したが、第2実施形態では、本発明をIEEE1394規格に適用した例を説明する。なお、以下に説明する第2実施形態乃至第6実施形態では、上述した第1実施形態と異なる部分のみ説明する。
IEEE1394には、転送モードとして、アイソクロナス転送とアシンクロナス転送の2種類が存在する。アイソクロナス転送は、主に映像や音声などのリアルタイムデータの転送に用いられるモードであり、帯域幅が保証されている。アシンクロナス転送は、非同期データ転送用のモードであり、帯域幅は保証されていない。これら2つの転送モードのうち、アイソクロナス転送ではデータの受信確認は行われないが、アシンクロナス転送では、データの受信確認が行われる。受信確認の際には、データの受信側は、送信側からのデータを正常に受け取った場合には、アクノーレッジパケットを返信し、データを正常に受け取れなかった場合には、アクノーレッジビジーパケットを返信して、データを再送させる。但し、受信側が、相手先を指定しない全ノード宛のブロードキャストパケットを受信した場合には、データを正常に受け取った場合でも、アクノーレッジパケットを返信しないことになっている。
図9は、本実施形態に係る情報処理システムの構成を説明するブロック図であり、上述した図1に対応する図である。この図9は、コンピュータ10とストレージデバイス20との間が、IEEE1394ケーブル200で接続されている点で、図1と相違する。このため、コンピュータ10は、IEEE1394ケーブル200のコネクタに合致した接続ポート202を備えており、ストレージデバイス20もIEEE1394ケーブル200のコネクタに合致した接続ポート204を備えている。また、ストレージデバイス20は、USBデバイスコントローラ40に代えて、IEEE1394コントローラ210を備えている。
図10は、IEEE1394コントローラ210の内部構成を説明する図であり、上述した図5に対応する図である。この図10に示すように、IEEE1394コントローラ210は、指示判断部210aと、ビジーパケット返信部210bと、IEEE1394通信制御部210cとを備えている。
指示判断部210aは、CPU46からの指示が、所定の割合でアクノーレッジビジーパケットを返信する指示なのか、通常のIEEE1394通信を行う指示なのかを判断する。ビジーパケット返信部210bは、指示判断部210aからの指示に基づいて、所定の割合でアクノーレッジビジーパケットを返信する通信処理を行う。一方、IEEE1394通信制御部210cは、指示判断部210aからの指示に基づいて、通常のIEEE1394通信の通信処理を行う。
図11は、本実施形態に係るユーザ操作割り込み処理の内容を説明するフローチャートを示す図であり、上述した図3に対応する図である。この図11から分かるように、本実施形態においては、ステップS14の代わりにステップS200が実行される。すなわち、コンピュータ10とストレージデバイス20との間でデータ転送中である場合(ステップS12:Yes)には、ストレージデバイス20は、所定の割合で、アクノーレッジビジーパケットを返信する通信処理を行う(ステップS200)。すなわち、ホスト側であるコンピュータ10からデータを受信した際に、正常にデータが受信できた場合でも、所定の割合で、アクノーレッジビジーパケットをコンピュータ10に返信する。上述した第1実施形態と同様に、所定の割合でアクノーレッジビジーパケットを返信するための処理は、CPU46からの指示に基づいて、IEEE1394コントローラ210のビジーパケット返信部210bで自律的に行われる。そして、ユーザ操作の割り込み処理が終了した場合には、CPU46は、アクノーレッジビジーパケットを所定の割合で返信する処理を止めて、通常の処理に戻るよう、IEEE1394コントローラ210に指示をする(ステップS20)。この指示を受信したIEEE1394コントローラ210では、IEEE1394通信制御部210cが、IEEE1394の通常の通信処理を行う。
以上のように、本実施形態に係る情報処理システムにおいても、ストレージデバイス20とコンピュータ10との間のデータ転送をユーザには処理しているように見せかけて、実は所定の割合でしか処理をしないことにより、ユーザが要求する処理を優先させて実行するようにしている。したがって、これにより、データ転送中におけるユーザ要求処理の遅延を防ぐことができる。
〔第3実施形態〕
第3実施形態は、本発明をBluetooth規格に適用した実施形態である。Bluetoothには、通信リンクとして、SCOリンクとACLリンクとが存在する。
SCOリンクは、回線交換型であり、1つのマスターと1つのスレーブとの間で、1対1の通信を行うものである。リアルタイム伝送が可能で、主に、音声の伝送等に使用される。SCOリンクでは、受信したパケットに誤りがあっても、SCOリンクではデータパケットは再送されない。一方、ACLリンクは、パケット交換型で、マスターと複数のスレーブとの間で、1対多の通信を行うものである。
SCOリンク上で送受信されるデータパケットは、SCOパケットと総称される。SCOパケットは、そのペイロードに誤り検出符号を持っていない。ACLリンク上で送受信されるデータパケットは、ACLパケットと総称される。ACLパケットは、原則として、そのペイロードに誤り検出符号を持っており、再送機能を備えている。さらに、SCOリンクとACLリンクの双方に共通で定義されるパケットとして、共通パケットがある。
図12Aは、ACLリンクで用いられるパケットのフォーマットを示す図である。この図12Aに示すように、各パケットはフィールドとして、アクセスコードと、ヘッダと、ペイロードとを備えている。図12Bに示すように、アクセスコードはフィールドとして、プリアンブルと、シンクワードと、トレーラとを備えている。図12Cに示すように、ヘッダはフィールドとして、AM_ADDRと、TYPEと、FLOWと、ARQNと、SEQNと、HECとを備えている。図12Dに示すように、ペイロードは、ペイロードヘッダと、ペイロードボディと、CRCとを備えている。
Bluetoothには、受信確認用のパケットは無く、その代わりに、ARQNフィールドを用いて、受信確認を行う。正しくデータを受信できた場合には、アクノーレッジの意味でARQN=1とし、正しくデータを受信できなかった場合には、ネガティブアクノーレッジの意味でARQN=0とすることにより、送信した相手に受信結果を伝達する。ARQN=0の場合、これを受け取った送信側は、データを再送信する。
例えば、図13に示すように、受信側がデータAを正常に受信できなかった場合には、送信側にARQN=0を返信して、再送を要求する。これを受けて、送信側は、データAを再度送信する。受信側がデータAを正常に受信できた場合には、送信側にARQN=1を返信して、正常に受信したことを伝える。これを受けて、送信側は、次のデータBを送信する。
また、Bluetoothには、通信リンク監視用のタイマーが定義されており、予め通信リンク監視タイマーに設定されている設定値以上の再送が続くと、マスター側がスレーブは通信不能と見なして、リンクを切断するようになっている。
図14は、本実施形態に係る情報処理システムの構成を説明するブロック図であり、上述した図1に対応する図である。この図14は、コンピュータ10とストレージデバイス20との間が、Bluetooth規格、つまり無線で接続されている点で、図1と相違する。このため、コンピュータ10は、Bluetooth規格に合致した送受信ユニット302を備えており、ストレージデバイス20もBluetooth規格に合致した送受信ユニット304を備えている。また、ストレージデバイス20は、USBデバイスコントローラ40に代えて、BLUETOOTHコントローラ310を備えている。
図15は、BLUETOOTHコントローラ310の内部構成を説明する図であり、上述した図5に対応する図である。この図15に示すように、BLUETOOTHコントローラ310は、指示判断部310aと、ARQN返信部310bと、BLUETOOTH通信制御部310cとを備えている。
指示判断部310aは、CPU46からの指示が、所定の割合でARQN=0を返信する指示なのか、通常のBLUETOOTH通信を行う指示なのかを判断する。ARQN返信部310bは、指示判断部310aからの指示に基づいて、所定の割合でARQN=0を返信する通信処理を行う。一方、BLUETOOTH通信制御部310cは、指示判断部310aからの指示に基づいて、通常のBLUETOOTH通信の通信処理を行う。
図16は、本実施形態に係るユーザ操作割り込み処理の内容を説明するフローチャートを示す図であり、上述した図3に対応する図である。この図16から分かるように、本実施形態においては、ステップS14の代わりにステップS300が実行される。すなわち、コンピュータ10とストレージデバイス20との間でデータ転送中である場合(ステップS12:Yes)には、ストレージデバイス20は、所定の割合で、正常に受信できなかったことを示すARQN=0を返信する通信処理を行う(ステップS300)。すなわち、ホスト側であるコンピュータ10からデータを受信した際に、正常にデータが受信できた場合でも、所定の割合で、ヘッダにARQN=0を含むパケットをコンピュータ10に返信する。上述した第1実施形態と同様に、所定の割合でヘッダにARQN=0を含むパケットを返信するための処理は、CPU46からの指示に基づいて、BLUETOOTHコントローラ310のARQN返信部310bで自律的に行われる。そして、ユーザ操作の割り込み処理が終了した場合には、CPU46は、ARQN=0を所定の割合で返信する処理を止めて、通常の処理に戻るよう、BLUETOOTHコントローラ310に指示をする(ステップS20)。この指示を受信したBLUETOOTHコントローラ310では、BLUETOOTH通信制御部310cが、通常のBLUETOOTH通信処理を行う。
以上のように、本実施形態に係る情報処理システムにおいても、ストレージデバイス20とコンピュータ10との間のデータ転送をユーザには処理しているように見せかけて、実は所定の割合でしか処理をしないことにより、ユーザが要求する処理を優先させて実行するようにしている。したがって、これにより、データ転送中におけるユーザ要求処理の遅延を防ぐことができる。
〔第4実施形態〕
第4実施形態は、本発明をTCP(Transmission Control Protocol)に適用した実施形態である。
TCPは送信されるすべてのデータについて、一定時間内にアクノーレッジによる受信確認を行うことになっている。すなわち、データセグメントが送信側から送出されると、タイマーが起動し、このタイマーが終了するまでにアクノーレッジを送信側が受信しなければならない。タイマーが終了するまでにアクノーレッジを受信できない場合、送信側はデータが失われたと判断して、データセグメントの再送信を行う。アクノーレッジは、図17に示すTCPセグメントヘッダフォーマットにおけるACKフラグを立てることにより行う。そして、所定回数再送信しても、アクノーレッジを受信できない場合には、送信側はRSTフラグを立てたセグメントを送信して、コネクションを強制終了する。
図18は、本実施形態に係る情報処理システムの構成を説明するブロック図であり、上述した図1に対応する図である。この図18は、コンピュータ10とストレージデバイス20との間が、ネットワーク400を介したTCP規格により接続されている点で、図1と相違する。このため、コンピュータ10は、TCP規格のインターフェース402を備えており、ストレージデバイス20もTCP規格のインターフェース404を備えている。また、ストレージデバイス20は、USBデバイスコントローラ40に代えて、TCPコントローラ410を備えている。
図19は、TCPコントローラ410の内部構成を説明する図であり、上述した図5に対応する図である。この図19に示すように、TCPコントローラ410は、指示判断部410aと、アクノーレッジ停止部410bと、TCP通信制御部410cとを備えている。
指示判断部410aは、CPU46からの指示が、所定の割合でアクノーレッジを返信しないようにする指示なのか、通常のTCP通信を行う指示なのかを判断する。アクノーレッジ停止部410bは、指示判断部410aからの指示に基づいて、所定の割合でアクノーレッジを返信しない通信処理を行う。一方、TCP通信制御部410cは、指示判断部410aからの指示に基づいて、通常のTCP通信の通信処理を行う。
図20は、本実施形態に係るユーザ操作割り込み処理の内容を説明するフローチャートを示す図であり、上述した図3に対応する図である。この図20から分かるように、本実施形態においては、ステップS14の代わりにステップS400が実行される。すなわち、コンピュータ10とストレージデバイス20との間でデータ転送中である場合(ステップS12:Yes)には、ストレージデバイス20は、所定の割合で、アクノーレッジを返信しない通信処理を行う(ステップS400)。すなわち、ホスト側であるコンピュータ10からデータを受信した際に、正常にデータが受信できた場合でも、所定の割合で、アクノーレッジを返信せずに、受信したデータを破棄する。上述した第1実施形態と同様に、所定の割合でアクノーレッジを返信しないようにするための処理は、CPU46からの指示に基づいて、TCPコントローラ410のアクノーレッジ停止部410bで自律的に行われる。所定時間経過してもアクノーレッジを受信できないコンピュータ10は、データの再送信をすることとなる。そして、ユーザ操作の割り込み処理が終了した場合には、CPU46は、所定の割合でアクノーレッジを返信しないようにする処理を止めて、通常の処理に戻るよう、TCPコントローラ410に指示をする(ステップS20)。この指示を受信したTCPコントローラ410では、TCP通信制御部410cが、通常のTCP通信処理を行う。
以上のように、本実施形態に係る情報処理システムにおいても、ストレージデバイス20とコンピュータ10との間のデータ転送をユーザには処理しているように見せかけて、実は所定の割合でしか処理をしないことにより、ユーザが要求する処理を優先させて実行するようにしている。したがって、これにより、データ転送中におけるユーザ要求処理の遅延を防ぐことができる。
〔第5実施形態〕
上述した第1実施形態では、割り込みモードにおいて、「NAK」の返信割合を高くするとタイムアウトが発生し、USB通信が切断されてしまう可能性がある。USB通信が切断されてしまった場合、ユーザはコネクションの確立をやり直さなければならない。具体的には、ユーザは、USBコネクタの抜き差しを行って、再度、コネクションを確立しなければならない。
しかし、タイムアウトになるまでの時間は、コンピュータ10やストレージデバイス20で使用されているOSの種類や、使用する通信ドライバの種類によって、変動するため、予め適正な所定の割合を定めておくのは困難である。
そこで、本実施形態においては、USBデバイスコントローラ40に学習機能を持たせ、ある割合で「NAK」を返信している割り込みモードにおいてコネクションが切断されてしまった場合には、次回からは、これまでよりも「NAK」を返信する割合を少なく設定することにより、コネクションが切断されるのを回避できるようにしたものである。以下、上述した第1実施形態と異なる部分のみ説明する。
図21は、本実施形態に係るUSBデバイスコントローラ40の内部構成を説明する図であり、上述した図5に対応する図である。この図21に示すように、USBデバイスコントローラ40は、指示判断部40aと、USB通信制御部40cと、NAK返信部500と、NAK割合格納部502と、NAK割合調整部504とを備えて構成されている。
指示判断部40aとUSB通信制御部40cの機能は、上述した第1実施形態と同様である。NAK返信部500は、割り込みモードにおいて、NAK割合格納部502に格納されているNAK割合を取得して、このNAK割合で定められている割合で、「NAK」をコンピュータ10に返信する。NAK割合調整部504は、割り込みモードにおいて、タイムアウトが発生したかどうかを監視し、タイムアウトが発生した場合には、NAK割合を削減して、NAK割合格納部502に格納する。
なお、本実施形態においては、これらの処理をハードウェアにより実現しているが、USBデバイスコントローラ40にマイクロコンピュータが内蔵されている場合には、これらの処理をソフトウェアにより実現することもできる。
図22は、本実施形態に係るNAK返信部500で実行されるNAK返信処理を説明するフローチャートを示す図である。このNAK返信処理は、NAK返信部500が指示判断部40aから、所定の割合でNAKを返信するように指示された場合に、起動される処理である。
このNAK返信処理においては、NAK返信部500は、まず、NAK割合格納部502に格納されているNAK割合を取得する(ステップS500)。このNAK割合格納部500には、例えば、初期値としては90%の値のNAK割合が格納されている。
次に、NAK返信部500は、この取得したNAK割合で定められている割合で、「NAK」を返信する処理を行う(ステップS502)。すなわち、コンピュータ10から送信されてくるデータやトークンパケットに対して、正常に受信できた場合でも、或いは、正常に処理できる場合でも、NAK割合で定められている割合で、「NAK」を返信する。
次に、NAK返信部500は、指示判断部40aから、所定の割合で「NAK」を返信する処理を終了するように指示されたかどうかを判断する(ステップS504)。所定の割合で「NAK」を返信する処理を終了するように指示されていない場合(ステップS504:NO)には、上述したステップS502の処理を繰り返す。
一方、所定の割合で「NAK」を返信する処理を終了するように指示された場合(ステップS504:YES)には、このNAK返信処理を終了し、通常モードに戻る。
図23は、本実施形態に係るNAK割合調整部504で実行されるNAK割合調整処理を説明するフローチャートを示す図である。このNAK割合調整処理は、NAK調整部504が指示判断部40aから、所定の割合でNAKを返信する割り込みモードに移行する通知を受けた場合に、起動される処理である。
このNAK割合調整処理においては、NAK調整部504は、まず、NAK割合格納部502から、NAK割合を取得する(ステップS520)。
次に、NAK割合調整部504は、タイムアウトが発生したかどうかを判断する(ステップS522)。タイムアウトが発生したかどうかの判断は、様々なものが考えられるが、例えば、INトランザクションにおいては、(100%−NAK割合)の割合で、データを送信することになるが、その送信したデータに対して、所定時間(例えば10秒)待ってもコンピュータ10からアクノーレッジが返信されてこない場合には、コンピュータ10でタイムアウトが発生し、コネクションが切断されたと判断できる。これに対して、OUTトランザクションにおいては、(100%−NAK割合)の割合で、コンピュータ10から送信されたデータに対してアクノーレッジを返信することになるが、所定時間(例えば10秒)待っても、コンピュータ10からデータが送信されてこない場合には、コンピュータ10でタイムアウトが発生し、コネクションが切断されたと判断できる。
タイムアウトが発生していない場合(ステップS522:NO)には、NAK割合調整部504は、指示判断部40aから所定の割合でNAKを返信する処理が終了した旨の通知を受けたかどうかを判断する(ステップS524)。NAKを返信する処理が終了した旨の通知を受けていない場合(ステップS524:NO)には、上述したステップS522からを繰り返す。一方、NAKを返信する処理が終了した旨の通知を受けた場合(ステップS524:YES)には、このNAK割合調整処理を終了する。
これに対して、ステップS522でタイムアウトが発生したと判断した場合(ステップS522:YES)には、ステップS520で取得したNAK割合を削減する(ステップS526)。本実施形態においては、ステップS520で取得したNAK割合から、5%を減算し、これを新たなNAK割合とする。
次に、NAK割合調整部504は、この削減したNAK割合をNAK割合格納部502に格納する(ステップS528)。したがって、次回、NAK返信処理が起動された場合には、この削減した新たなNAK割合に基づいて、「NAK」を返信する処理が行われることとなる。そして、このNAK割合調整処理を終了する。
以上のように、本実施形態に係る情報処理システムによれば、割り込みモードにおいて、コンピュータ10でタイムアウトが発生した場合には、次回からは、NAKを返信する割合が少なくなるようにしたので、タイムアウトを繰り返すうちに、やがて、タイムアウトが発生しないようにすることができる。
なお、本実施形態においては、NAK割合調整処理をUSBデバイスコントローラ40で行うこととしたが、CPU46で行うようにしてもよい。この場合、CPU46は「NAK」を返信する指示をUSBデバイスコントローラ40に送信する際(ステップS16)に、そのNAK割合もUSBデバイスコントローラ40に指示することとなる。
〔第6実施形態〕
上述した第5実施形態では、割り込みモードにおいてタイムアウトが発生した場合には、NAK割合を所定の割合だけ少なくすることとしたが、本実施形態においては、タイムアウトが発生するまでの時間に基づいて、新たなNAK割合を決定するようにしたものである。以下、上述した第5実施形態と異なる部分のみを説明する。
図24は、本実施形態に係るUSBデバイスコントローラ40の内部構成を説明する図であり、上述した図21に対応する図である。この図24に示すように、USBデバイスコントローラ40は、指示判断部40aと、USB通信制御部40cと、NAK返信部500と、NAK割合格納部502と、NAK割合決定部600と、時間計測部602とを備えて構成されている。
指示判断部40aとUSB通信制御部40cとNAK返信部500とNAK格納部502の機能は、上述した第5実施形態と同様である。NAK割合決定部600は、割り込みモードにおいて、タイムアウトが発生したかどうかを監視し、タイムアウトが発生した場合には、タイムアウトが発生するまでの時間に基づいて、新たなNAK割合を決定して、NAK割合格納部502に格納する。
時間計測部602は、タイムアウトが発生するまでの時間を計測する。したがって、NAK割合決定部600は、タイムアウトが発生した場合には、この時間計測部602から、タイムアウトが発生するまでの時間を取得する。
タイムアウトが発生するまでの時間の計測の手法には、様々なものが考えられる。例えば、連続して「NAK」を返信している場合には、その連続している時間を計測し、その連続している時間をタイムアウトが発生するまでの時間としてもよい。或いは、最後に「ACK」を返信してからタイムアウトが発生するまでの時間を計測してもよい。
なお、本実施形態においては、これらの処理をハードウェアにより実現しているが、USBデバイスコントローラ40にマイクロコンピュータが内蔵されている場合には、これらの処理をソフトウェアにより実現することもできる。
また、本実施形態に係るNAK返信部500で実行されるNAK返信処理は、上述した第5実施形態と同様である。
図25は、本実施形態に係るNAK割合決定部600で実行されるNAK割合決定処理を説明するフローチャートを示す図である。このNAK割合決定処理は、NAK割合決定部600が指示判断部40aから、所定の割合でNAKを返信する割り込みモードに移行する通知を受けた場合に、起動される処理である。
このNAK割合決定処理においては、NAK割合決定部600は、まず、タイムアウトが発生したかどうかを判断する(ステップS600)。タイムアウトが発生したかどうかの判断は、上述した第5実施形態と同様である。
タイムアウトが発生していない場合(ステップS600:NO)には、NAK割合決定部600は、指示判断部40aから所定の割合でNAKを返信する処理が終了した旨の通知を受けたかどうかを判断する(ステップS602)。NAKを返信する処理が終了した旨の通知を受けていない場合(ステップS602:NO)には、上述したステップS600からを繰り返す。一方、NAKを返信する処理が終了した旨の通知を受けた場合(ステップS602:YES)には、このNAK割合決定処理を終了する。
これに対して、ステップS600でタイムアウトが発生したと判断した場合(ステップS600:YES)には、時間計測部602からタイムアウトまでの時間を取得する(ステップS604)。
次に、NAK割合決定部600は、この取得したタイムアウトまでの時間に基づいて、新たなNAK割合を決定する(ステップS606)。図26は、このとき使用されるNAK割合テーブルTB10の構成の一例を示す図である。本実施形態においては、このNAK割合テーブルTB10は、NAK割合決定部600の内部に設けられているROMに格納されている。このNAK割合テーブルTB10には、タイムアウトまでの時間と、これに対応するNAK割合とが格納されている。したがって、ステップS606では、取得したタイムアウトまでの時間に基づいて、このNAK割合テーブルTB10を検索し、タイムアウトまでの時間に対応する新たなNAK割合を取得する。
タイムアウトまでの時間に対する適正なNAK割合は、通信プロトコルに基づいておよそ予測することが可能である。したがって、本実施形態では、この予測されたケースに基づいて、NAK割合を定めている。
次に、図25に示すように、NAK割合決定部600は、この新たなNAK割合をNAK割合格納部502に格納する(ステップS608)。したがって、次回、NAK返信処理が起動された場合には、この新たなNAK割合に基づいて、「NAK」を返信する処理が行われることとなる。そして、このNAK割合決定処理を終了する。
以上のように、本実施形態に係る情報処理システムによれば、割り込みモードにおいて、コンピュータ10でタイムアウトが発生した場合には、このタイムアウトが発生するまでの時間に基づいて、次回のNAK割合を決定するようにしたので、次回からはタイムアウトが発生する可能性を著しく低減することができる。
なお、本実施形態においては、NAK割合決定処理をUSBデバイスコントローラ40で行うこととしたが、CPU46で行うようにしてもよい。この場合、CPU46は「NAK」を返信する指示をUSBデバイスコントローラ40に送信する際(ステップS16)に、そのNAK割合もUSBデバイスコントローラ40に指示することとなる。
なお、本発明は上記実施形態に限定されず種々に変形可能である。例えば、上述した各実施形態では、通信処理よりも優先順位の高い処理を実行する情報機器としてストレージデバイス20を例に説明したが、デジタルカメラやパーソナルコンピュータなどの他の情報機器に対しても本発明を適用することができる。
また、上述した第1実施形態乃至第4実施形態における「所定の割合」(ステップS14、ステップS50、ステップS200、ステップS300、及び、ステップS400)は、0%を超えて100%以下であれば任意に設定可能である。但し、所定の割合を100%に設定した場合、コンピュータ10側でデータ送信の再試行の回数に制限がある場合や、タイムアウトの制限がある場合には、これらのエラーに該当してしまう可能性がある。このような場合、所定の割合を50%や70%に設定することにより、エラーに該当する可能性を低減することができる。また、ユーザ操作による割り込みの処理内容などに応じて、所定の割合を動的に変更するようにしてもよい。
また、上述した各実施形態においては、所定の割合でデータが正常に受信できなかった旨を返信するための制御を、USBデバイスコントローラ40、IEEE1394コントローラ210、BLUETOOTHコントローラ310、又は、TCPコントローラ410が自律的に行うこととしたが、この返信するための制御をCPU46が自ら行うようにしてもよい。さらには、所定の割合でデータが正常に受信できなかった旨を返信するための制御の一部を、CPU46が行うようにしてもよい。この場合、例えば、図24において、指示判断部40a、NAK返信部500、NAK割合格納部502、NAK割合決定部600、及び、時間計測部602が行う処理の少なくとも1つを、CPU46が行うようにすればよい。
また、上述した第5実施形態及び第6実施形態では、USB通信の例を用いて、タイムアウトが発生した場合にNAK割合を調整したり変更したりする手法を説明したが、他の通信規格においても、この手法を適用することができる。
また、上述の実施形態で説明した各処理については、これら各処理を実行するためのプログラムをフレキシブルディスク、CD−ROM(Compact Disc-Read Only Memory)、ROM、メモリカード等の記録媒体に記録して、記録媒体の形で頒布することが可能である。この場合、このプログラムが記録された記録媒体をストレージデバイス20などの情報機器に読み込ませ、実行させることにより、上述した実施形態を実現することができる。
また、ストレージデバイス20などの情報機器は、オペレーティングシステムや別のアプリケーションプログラム等の他のプログラムを備える場合がある。この場合、情報機器の備える他のプログラムを活用し、記録媒体にはその情報機器が備えるプログラムの中から、上述した実施形態と同等の処理を実現するプログラムを呼び出すような命令を記録するようにしてもよい。
さらに、このようなプログラムは、記録媒体の形ではなく、ネットワークを通じて搬送波として頒布することも可能である。ネットワーク上を搬送波の形で伝送されたプログラムは、ストレージデバイス20などの情報機器に取り込まれて、このプログラムを実行することにより上述した実施形態を実現することができる。
また、記録媒体にプログラムを記録する際や、ネットワーク上を搬送波として伝送される際に、プログラムの暗号化や圧縮化がなされている場合がある。この場合には、これら記録媒体や搬送波からプログラムを読み込んだストレージデバイス20などの情報機器は、そのプログラムの復号や伸張化を行った上で、実行する必要がある。
第1実施形態に係る情報処理システムの構成を説明するブロック図。 USBインターフェースのバルク転送におけるトランザクションを説明する図。 第1実施形態に係るユーザ操作割り込み処理の内容を説明するフローチャートを示す図。 第1実施形態に係る情報機器の操作ボタン側の平面レイアウトを示す図。 第1実施形態に係るUSBデバイスコントローラの内部構成の一例を説明する図。 ユーザ操作割り込み処理の変形例を説明するフローチャートを示す図。 図6のユーザ操作割り込み処理を行った場合のホストとデバイスとの間におけるやり取りの一例を示す図。 図6のユーザ操作割り込み処理を行った場合のホストとデバイスとの間におけるやり取りの変形例を示す図。 第2実施形態に係る情報処理システムの構成を説明するブロック図。 第2実施形態に係るIEEE1394コントローラの内部構成の一例を説明する図。 第2実施形態に係るユーザ操作割り込み処理の内容を説明するフローチャートを示す図。 図12Aは、第3実施形態におけるBluetoothで用いられるパケット構成を示す図、図12Bは、アクセスコード部の構成を詳細に示す図、図12Cは、ヘッダ部の構成を詳細に示す図、図12Dは、ペイロード部の構成を詳細に示す図。 第3実施形態におけるデータ送受信フローを説明する図。 第3実施形態に係る情報処理システムの構成を説明するブロック図。 第3実施形態に係るBLUETOOTHコントローラの内部構成の一例を説明する図。 第3実施形態に係るユーザ操作割り込み処理の内容を説明するフローチャートを示す図。 第4実施形態にけるTCP規格で用いられるセグメント構成を説明する図。 第4実施形態に係る情報処理システムの構成を説明するブロック図。 第4実施形態に係るTCPコントローラの内部構成の一例を説明する図。 第4実施形態に係るユーザ操作割り込み処理の内容を説明するフローチャートを示す図。 第5実施形態に係るUSBデバイスコントローラの内部構成の一例を説明する図。 第5実施形態に係るUSBデバイスコントローラで実行されるNAK返信処理の内容を説明するフローチャートを示す図。 第5実施形態に係るUSBデバイスコントローラで実行されるNAK割合調整処理の内容を説明するフローチャートを示す図。 第6実施形態に係るUSBデバイスコントローラの内部構成の一例を説明する図。 第6実施形態に係るUSBデバイスコントローラで実行されるNAK割合決定処理の内容を説明するフローチャートを示す図。 第6実施形態に係るNAK割合テーブルの構成の一例を説明する図。
符号の説明
10 コンピュータ
12 タイプAの接続ポート
20 ストレージデバイス
22 タイプBの接続ポート
30 USBケーブル
40 USBデバイスコントローラ
42 ハードディスクドライブ
44 ATAブリッジコントローラ
46 CPU
48 フラッシュROM

Claims (16)

  1. ホストと通信を行う通信手段であって、通常モードでは、正常にデータを受信できた場合には正常にデータを受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できなかった旨の返信をホストに行うとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できなかった旨の返信をホストに行う、通信手段と、
    前記通信手段が行っている前記ホストとの通信よりも優先順位の高い割り込み処理を受け付ける、割り込み処理受付手段と、
    前記割り込み処理受付手段が、前記割り込み処理を受け付けた場合には、前記通信手段を前記通常モードから前記割り込みモードに変更する、第1モード変更手段と、
    を備えることを特徴とする情報機器。
  2. 前記通信手段は、
    前記通常モードでは、当該情報機器のデータを前記ホストに送信する要求を受信した際に、前記データを前記ホストに送信できる場合にはそのデータを前記ホストに送信し、前記データを送信できない場合には送信できない旨の返信を前記ホストに送信するとともに、
    前記割り込みモードでは、前記データを前記ホストに送信できる場合でも、所定の割合で、前記データを送信できない旨の返信を前記ホストに送信する、
    ことを特徴とする請求項1に記載の情報機器。
  3. 前記割り込み処理受付手段が受け付けた前記割り込み処理が終了した場合には、前記通信手段を前記割り込みモードから前記通常モードに変更する、第2モード変更手段をさらに備えることを特徴とする請求項1又は請求項2に記載の情報機器。
  4. 前記割り込みモードにおける前記所定の割合は100%であることを特徴とする請求項1乃至請求項3のいずれかに記載の情報機器。
  5. 前記データを正常に受信できなかった旨の返信は、ネガティブアクノーレッジである、ことを特徴とする請求項1乃至請求項4のいずれかに記載の情報機器。
  6. 前記データを送信できない旨の返信は、ネガティブアクノーレッジである、ことを特徴とする請求項2に記載の情報機器。
  7. 前記割り込みモードでは、前記通信手段は、前記データを正常に受信できなかった旨の返信の代わりに、所定の割合で、次回のデータを所定時間送信しないように要求する旨の返信をホストに行う、ことを特徴とする請求項1乃至請求項6のいずれかに記載の情報機器。
  8. 前記割り込みモードにおいて、ホストとの通信でタイムアウトが発生した場合には、前記割り込みモードにおける前記所定の割合を少なくする、割合調整部を、さらに備えることを特徴とする請求項1乃至請求項7のいずれかに記載の情報機器。
  9. 前記割り込みモードにおいて、ホストとの通信でタイムアウトが発生した場合には、タイムアウトが発生するまでの時間に基づいて、前記割り込みモードにおける前記所定の割合を決定する、割合決定部を、さらに備えることを特徴とする請求項1乃至請求項7のいずれかに記載の情報機器。
  10. 当該情報機器から前記ホストに対して、自主的にデータの送信を停止させる要求を送信することができない通信の規格仕様である、ことを特徴とする請求項1乃至請求項9のいずれかに記載の情報機器。
  11. 前記割り込み処理は、ユーザ操作により指示された処理である、ことを特徴とする請求項1乃至請求項10のいずれかに記載の情報機器。
  12. ホストと通信を行う情報機器の制御方法であって、
    前記ホストとの通信の際には、通常モードでは、正常にデータを受信できた場合には正常にデータを受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できなかった旨の返信をホストに行うとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できなかった旨の返信をホストに行い、
    前記ホストとの通信よりも優先順位の高い割り込み処理を受け付けた場合には、前記ホストとの通信を、前記通常モードから前記割り込みモードに変更する、
    ことを特徴とする情報機器の制御方法。
  13. ホストと通信を行う情報機器を制御するためのプログラムであって、
    前記ホストとの通信の際には、通常モードでは、正常にデータを受信できた場合には正常にデータを受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できなかった旨の返信をホストに行うとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できなかった旨の返信をホストに行い、
    前記ホストとの通信よりも優先順位の高い割り込み処理を受け付けた場合には、前記ホストとの通信を、前記通常モードから前記割り込みモードに変更する、
    ように情報機器を制御するためのプログラム。
  14. ホストと通信を行う通信手段であって、通常モードでは、正常にデータを受信できた場合にはデータを正常に受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できた旨の返信を行わないとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できた旨の返信を行わない、通信手段と、
    前記通信手段が行っている前記ホストとの通信よりも優先順位の高い割り込み処理を受け付ける、割り込み処理受付手段と、
    前記割り込み処理受付手段が、前記割り込み処理を受け付けた場合には、前記通信手段を前記通常モードから前記割り込みモードに変更する、モード変更手段と、
    を備えることを特徴とする情報機器。
  15. ホストと通信を行う情報機器の制御方法であって、
    前記ホストとの通信の際には、通常モードでは、正常にデータを受信できた場合にはデータを正常に受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できた旨の返信を行わず、且つ、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できた旨の返信を行わず、
    前記ホストとの通信よりも優先順位の高い割り込み処理を受け付けた場合には、前記ホストとの通信を、前記通常モードから前記割り込みモードに変更する、
    ことを特徴とする情報機器の制御方法。
  16. ホストと通信を行う情報機器を制御するためのプログラムであって、
    前記ホストとの通信の際には、通常モードでは、正常にデータを受信できた場合にはデータを正常に受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できた旨の返信を行わず、且つ、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できた旨の返信を行わず、
    前記ホストとの通信よりも優先順位の高い割り込み処理を受け付けた場合には、前記ホストとの通信を、前記通常モードから前記割り込みモードに変更する、
    ように情報機器を制御するプログラム。
JP2005086045A 2004-09-22 2005-03-24 情報機器及びその制御方法 Pending JP2006120115A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005086045A JP2006120115A (ja) 2004-09-22 2005-03-24 情報機器及びその制御方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004275693 2004-09-22
JP2005086045A JP2006120115A (ja) 2004-09-22 2005-03-24 情報機器及びその制御方法

Publications (1)

Publication Number Publication Date
JP2006120115A true JP2006120115A (ja) 2006-05-11

Family

ID=36537914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005086045A Pending JP2006120115A (ja) 2004-09-22 2005-03-24 情報機器及びその制御方法

Country Status (1)

Country Link
JP (1) JP2006120115A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008278060A (ja) * 2007-04-26 2008-11-13 Kyocera Corp データ処理システム、および同システムにおけるデータ伝送方法、ならびに携帯無線端末装置
JP2008278053A (ja) * 2007-04-26 2008-11-13 Kyocera Corp 携帯端末装置
JP2010172355A (ja) * 2009-01-27 2010-08-12 Kyoraku Sangyo Kk 遊技機
WO2013111507A1 (ja) * 2012-01-23 2013-08-01 シャープ株式会社 制御装置
JP2015212052A (ja) * 2014-05-02 2015-11-26 キヤノン株式会社 画像形成装置とその制御方法、及びプログラム
JP2017520052A (ja) * 2014-06-18 2017-07-20 クアルコム,インコーポレイテッド ユニバーサルシリアルバス(usb)通信システムおよび方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000261447A (ja) * 1999-03-05 2000-09-22 Nec Corp Usbネットワーク構成システム
JP2003167837A (ja) * 2001-11-30 2003-06-13 Kawasaki Microelectronics Kk 通信仲介装置
JP2003256351A (ja) * 2002-03-04 2003-09-12 Yamaha Corp Usbハブ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000261447A (ja) * 1999-03-05 2000-09-22 Nec Corp Usbネットワーク構成システム
JP2003167837A (ja) * 2001-11-30 2003-06-13 Kawasaki Microelectronics Kk 通信仲介装置
JP2003256351A (ja) * 2002-03-04 2003-09-12 Yamaha Corp Usbハブ

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008278060A (ja) * 2007-04-26 2008-11-13 Kyocera Corp データ処理システム、および同システムにおけるデータ伝送方法、ならびに携帯無線端末装置
JP2008278053A (ja) * 2007-04-26 2008-11-13 Kyocera Corp 携帯端末装置
JP2010172355A (ja) * 2009-01-27 2010-08-12 Kyoraku Sangyo Kk 遊技機
WO2013111507A1 (ja) * 2012-01-23 2013-08-01 シャープ株式会社 制御装置
JP2013149180A (ja) * 2012-01-23 2013-08-01 Sharp Corp 制御装置
JP2015212052A (ja) * 2014-05-02 2015-11-26 キヤノン株式会社 画像形成装置とその制御方法、及びプログラム
JP2017520052A (ja) * 2014-06-18 2017-07-20 クアルコム,インコーポレイテッド ユニバーサルシリアルバス(usb)通信システムおよび方法

Similar Documents

Publication Publication Date Title
TWI296083B (en) Communication controller, host-side controller, communication system, usb system, communication equipment, communication method, packet-based communication method, packet-based communication program, and storage medium
US10430374B2 (en) Selective acknowledgement of RDMA packets
JP4415317B2 (ja) 情報機器及びその制御方法
JP3649227B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
US9875206B2 (en) Methods and devices for extending USB 3.0-compliant communication
US9325519B2 (en) Distributed proxy for bi-directional network connectivity over point-to-point connection
JP3632695B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2006120115A (ja) 情報機器及びその制御方法
EP1754160B1 (en) Bus connection device
KR101357162B1 (ko) 호스트 장치와 usb 장치간의 통신을 제어하는 장치,방법 및 시스템
WO2012110798A1 (en) Serial interface
US7924767B2 (en) Control and status protocol
US20040198223A1 (en) Flow control in a bluetooth wireless communication system
TWI233553B (en) Bus system and bus interface for connection to a bus
JP3636160B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JPWO2015059889A1 (ja) イニシエータ端末、ターゲット端末、イニシエータ端末のエラー処理方法、ターゲット端末のエラー処理方法
JP2014096162A (ja) インタフェース変換装置及びインタフェース変換方法
JP4264924B2 (ja) データ転送方法
JP4458873B2 (ja) シリアルデータ転送方法とその装置
KR20120042745A (ko) 비접속 환경에서 신뢰적인 통신을 수립하기 위한 방법 및 시스템
JP2002251260A (ja) データ送受信システム
JP2002290442A (ja) 通信装置、プログラム、情報記憶媒体および通信制御方法
JP2004246750A (ja) Usb通信方法
JP3148733B2 (ja) 信号処理装置及び信号処理システム
JP4362199B2 (ja) データ伝送装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080129

A977 Report on retrieval

Effective date: 20101029

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101203

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110621