(57)【要約】【課題】  高い優先順位の割り込み処理を通信処理よりも優先して実行させつつ、通信処理におけるコネクションが切断されないようにした情報機器及びその制御方法を提供する。【解決手段】  情報機器は、ホストと通信を行う通信部であって、通常モードでは、正常にデータを受信できた場合には正常にデータを受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できなかった旨の返信をホストに行うとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できなかった旨の返信をホストに行う、通信手段と、前記通信手段が行っている前記ホストとの通信よりも優先順位の高い割り込み処理を受け付ける、割り込み処理受付手段と、前記割り込み処理受付手段が、前記割り込み処理を受け付けた場合には、前記通信手段を前記通常モードから前記割り込みモードに変更する、第１モード変更手段と、を備える。【選択図】  図１
2006120115.tif 000002
【特許請求の範囲】
【請求項１】
ホストと通信を行う通信手段であって、通常モードでは、正常にデータを受信できた場合には正常にデータを受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できなかった旨の返信をホストに行うとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できなかった旨の返信をホストに行う、通信手段と、
前記通信手段が行っている前記ホストとの通信よりも優先順位の高い割り込み処理を受け付ける、割り込み処理受付手段と、
前記割り込み処理受付手段が、前記割り込み処理を受け付けた場合には、前記通信手段を前記通常モードから前記割り込みモードに変更する、第１モード変更手段と、
を備えることを特徴とする情報機器。
【請求項２】
前記通信手段は、
前記通常モードでは、当該情報機器のデータを前記ホストに送信する要求を受信した際に、前記データを前記ホストに送信できる場合にはそのデータを前記ホストに送信し、前記データを送信できない場合には送信できない旨の返信を前記ホストに送信するとともに、
前記割り込みモードでは、前記データを前記ホストに送信できる場合でも、所定の割合で、前記データを送信できない旨の返信を前記ホストに送信する、
ことを特徴とする請求項１に記載の情報機器。
【請求項３】
前記割り込み処理受付手段が受け付けた前記割り込み処理が終了した場合には、前記通信手段を前記割り込みモードから前記通常モードに変更する、第２モード変更手段をさらに備えることを特徴とする請求項１又は請求項２に記載の情報機器。
【請求項４】
前記割り込みモードにおける前記所定の割合は１００％であることを特徴とする請求項１乃至請求項３のいずれかに記載の情報機器。
【請求項５】
前記データを正常に受信できなかった旨の返信は、ネガティブアクノーレッジである、ことを特徴とする請求項１乃至請求項４のいずれかに記載の情報機器。
【請求項６】
前記データを送信できない旨の返信は、ネガティブアクノーレッジである、ことを特徴とする請求項２に記載の情報機器。
【請求項７】
前記割り込みモードでは、前記通信手段は、前記データを正常に受信できなかった旨の返信の代わりに、所定の割合で、次回のデータを所定時間送信しないように要求する旨の返信をホストに行う、ことを特徴とする請求項１乃至請求項６のいずれかに記載の情報機器。
【請求項８】
前記割り込みモードにおいて、ホストとの通信でタイムアウトが発生した場合には、前記割り込みモードにおける前記所定の割合を少なくする、割合調整部を、さらに備えることを特徴とする請求項１乃至請求項７のいずれかに記載の情報機器。
【請求項９】
前記割り込みモードにおいて、ホストとの通信でタイムアウトが発生した場合には、タイムアウトが発生するまでの時間に基づいて、前記割り込みモードにおける前記所定の割合を決定する、割合決定部を、さらに備えることを特徴とする請求項１乃至請求項７のいずれかに記載の情報機器。
【請求項１０】
当該情報機器から前記ホストに対して、自主的にデータの送信を停止させる要求を送信することができない通信の規格仕様である、ことを特徴とする請求項１乃至請求項９のいずれかに記載の情報機器。
【請求項１１】
前記割り込み処理は、ユーザ操作により指示された処理である、ことを特徴とする請求項１乃至請求項１０のいずれかに記載の情報機器。
【請求項１２】
ホストと通信を行う情報機器の制御方法であって、
前記ホストとの通信の際には、通常モードでは、正常にデータを受信できた場合には正常にデータを受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できなかった旨の返信をホストに行うとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できなかった旨の返信をホストに行い、
前記ホストとの通信よりも優先順位の高い割り込み処理を受け付けた場合には、前記ホストとの通信を、前記通常モードから前記割り込みモードに変更する、
ことを特徴とする情報機器の制御方法。
【請求項１３】
ホストと通信を行う情報機器を制御するためのプログラムであって、
前記ホストとの通信の際には、通常モードでは、正常にデータを受信できた場合には正常にデータを受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できなかった旨の返信をホストに行うとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できなかった旨の返信をホストに行い、
前記ホストとの通信よりも優先順位の高い割り込み処理を受け付けた場合には、前記ホストとの通信を、前記通常モードから前記割り込みモードに変更する、
ように情報機器を制御するためのプログラム。
【請求項１４】
ホストと通信を行う通信手段であって、通常モードでは、正常にデータを受信できた場合にはデータを正常に受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できた旨の返信を行わないとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できた旨の返信を行わない、通信手段と、
前記通信手段が行っている前記ホストとの通信よりも優先順位の高い割り込み処理を受け付ける、割り込み処理受付手段と、
前記割り込み処理受付手段が、前記割り込み処理を受け付けた場合には、前記通信手段を前記通常モードから前記割り込みモードに変更する、モード変更手段と、
を備えることを特徴とする情報機器。
【請求項１５】
ホストと通信を行う情報機器の制御方法であって、
前記ホストとの通信の際には、通常モードでは、正常にデータを受信できた場合にはデータを正常に受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できた旨の返信を行わず、且つ、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できた旨の返信を行わず、
前記ホストとの通信よりも優先順位の高い割り込み処理を受け付けた場合には、前記ホストとの通信を、前記通常モードから前記割り込みモードに変更する、
ことを特徴とする情報機器の制御方法。
【請求項１６】
ホストと通信を行う情報機器を制御するためのプログラムであって、
前記ホストとの通信の際には、通常モードでは、正常にデータを受信できた場合にはデータを正常に受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できた旨の返信を行わず、且つ、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できた旨の返信を行わず、
前記ホストとの通信よりも優先順位の高い割り込み処理を受け付けた場合には、前記ホストとの通信を、前記通常モードから前記割り込みモードに変更する、
ように情報機器を制御するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報機器及びその制御方法に関し、特に、外部から接続されたホストとのデータ通信において応答確認を行いながら通信を行う情報機器及びその制御方法に関する。
【背景技術】
【０００２】
近年、デジタルビデオカメラやデジタルスチルカメラなどに代表されるマルチメディアを扱う機器が、急速に普及してきている。このため、コンピュータとストレージ機能（情報蓄積記録機能）を持った情報機器（特にポータブルな機器）との間において、通常のデータファイルに限らず、ビデオデータや画像データ、音楽データなどのいわゆるマルチメディアファイルのデータのやり取りが頻繁に行われるようになっている。また、インターネットの普及により、ＷＥＢ経由で、マルチメディアファイルのダウンロードも頻繁に行われるようになっている。
【０００３】
マルチメディアファイル（特に画像データ）の容量は、ファイルフォーマットや圧縮率、収録時間などの要素によって変動があるものの、一般的には大容量である。このマルチメディアファイルの転送には、有線通信においては、ＩＥＥＥ１３９４やユニバーサル・シリアル・バス（以下、ＵＳＢという）などの高速シリアルインターフェースが使われることが多くなっている。また、無線通信においては、ＢｌｕｅｔｏｏｔｈやＩＥＥＥ８０２．１１ａ／ｂ／ｇなどの無線ＬＡＮインターフェースが使われることが多くなっている。これは、ＷＥＢ経由でＴＣＰプロトコルを使った通信でも同様である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、コンピュータと情報機器との間において、ＵＳＢインターフェース等による通信やインターネットによる通信などで、大量のデータの送受信が行われると、連続的にデータアクセスをするため、マルチタスクでない処理環境においては、この処理が終わるまで待たされることがあった。すなわち、ユーザによる情報機器の操作や、情報機器内の処理が、データ通信の完了まで待たされることがあった。この場合、一旦、外部機器であるコンピュータとの通信を理論上、切断しないと、この情報機器内の処理に移行できなかった。
【０００５】
また、Ｗｉｎｄｏｗｓ（登録商標）やＭａｃＯＳのようなマルチタスクＯＳの処理環境においても、ごく短い時間に複数のプログラムの処理を少しずつ進めて、ユーザにはあたかも複数のプログラムが同時に動いているように見えるようにしている。しかし、複数のプログラムで大量のデータ通信を行った場合、その処理量が大量になり、その間にデータ送受信を伴わないハードディスクアクセス処理を要求した場合、マルチタスク処理環境でも、ユーザが待たされることがあった。
【０００６】
これは、マルチタスクのプロセス制御において、ある処理を優先して実行させた場合、それよりも優先順位が下位の処理は、継続して処理を実行することができないためである。また、データ通信を行う処理の優先順位が低いと、タイムアウト等によりデータ通信のコネクションが切断されてしまうためである。
【０００７】
そこで本発明は、前記課題に鑑みてなされたものであり、高い優先順位の割り込み処理を通信処理よりも優先して実行させつつ、通信処理におけるコネクションが切断されないようにした情報機器及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明に係る情報機器は、
ホストと通信を行う通信部であって、通常モードでは、正常にデータを受信できた場合には正常にデータを受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できなかった旨の返信をホストに行うとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できなかった旨の返信をホストに行う、通信手段と、
前記通信手段が行っている前記ホストとの通信よりも優先順位の高い割り込み処理を受け付ける、割り込み処理受付手段と、
前記割り込み処理受付手段が、前記割り込み処理を受け付けた場合には、前記通信手段を前記通常モードから前記割り込みモードに変更する、第１モード変更手段と、
を備えることを特徴とする。
【０００９】
この場合、前記通信部は、
前記通常モードでは、当該情報機器のデータを前記ホストに送信する要求を受信した際に、前記データを前記ホストに送信できる場合にはそのデータを前記ホストに送信し、前記データを送信できない場合には送信できない旨の返信を前記ホストに送信するとともに、
前記割り込みモードでは、前記データを前記ホストに送信できる場合でも、所定の割合で、前記データを送信できない旨の返信を前記ホストに送信する、
ようにしてもよい。
【００１０】
この場合、前記割り込み処理受付手段が受け付けた前記割り込み処理が終了した場合には、前記通信手段を前記割り込みモードから前記通常モードに変更する、第２モード変更手段をさらに備えるようにしてもよい。
【００１１】
また、前記割り込みモードにおける前記所定の割合は１００％であるようにしてもよい。
【００１２】
また、前記データを正常に受信できなかった旨の返信は、ネガティブアクノーレッジであるようにしてもよい。同様に、前記データを送信できない旨の返信は、ネガティブアクノーレッジであるようにしてもよい。
【００１３】
また、前記割り込みモードにおいて、ホストとの通信でタイムアウトが発生した場合には、前記割り込みモードにおける前記所定の割合を少なくする、割合調整部を、さらに備えるようにしてもよい。
【００１４】
或いは、前記割り込みモードにおいて、ホストとの通信でタイムアウトが発生した場合には、タイムアウトが発生するまでの時間に基づいて、前記割り込みモードにおける前記所定の割合を決定する、割合決定部を、さらに備えるようにしてもよい。
【００１５】
また、前記割り込みモードでは、前記通信部は、前記データを正常に受信できなかった旨の返信の代わりに、所定の割合で、次回のデータを所定時間送信しないように要求する旨の返信をホストに行うようにしてもよい。
【００１６】
また、当該情報機器から前記ホストに対して、自主的にデータの送信を停止させる要求を送信することができない通信の規格仕様であってもよい。
【００１７】
また、前記割り込み処理は、ユーザ操作により指示された処理であってもよい。
【００１８】
本発明に係る情報機器の制御方法は、
ホストと通信を行う情報機器の制御方法であって、
前記ホストとの通信の際には、通常モードでは、正常にデータを受信できた場合には正常にデータを受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できなかった旨の返信をホストに行うとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できなかった旨の返信をホストに行い、
前記ホストとの通信よりも優先順位の高い割り込み処理を受け付けた場合には、前記ホストとの通信を、前記通常モードから前記割り込みモードに変更する、
ことを特徴とする。
【００１９】
本発明に係るプログラムは、
ホストと通信を行う情報機器を制御するためのプログラムであって、
前記ホストとの通信の際には、通常モードでは、正常にデータを受信できた場合には正常にデータを受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できなかった旨の返信をホストに行うとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できなかった旨の返信をホストに行い、
前記ホストとの通信よりも優先順位の高い割り込み処理を受け付けた場合には、前記ホストとの通信を、前記通常モードから前記割り込みモードに変更する、
ように情報機器を制御することを特徴とする。
【００２０】
本発明に係る情報機器は、
ホストと通信を行う通信手段であって、通常モードでは、正常にデータを受信できた場合にはデータを正常に受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できた旨の返信を行わないとともに、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できた旨の返信を行わない、通信手段と、
前記通信手段が行っている前記ホストとの通信よりも優先順位の高い割り込み処理を受け付ける、割り込み処理受付手段と、
前記割り込み処理受付手段が、前記割り込み処理を受け付けた場合には、前記通信手段を前記通常モードから前記割り込みモードに変更する、モード変更手段と、
を備えることを特徴とする。
【００２１】
本発明に係る情報機器の制御方法は、
ホストと通信を行う情報機器の制御方法であって、
前記ホストとの通信の際には、通常モードでは、正常にデータを受信できた場合にはデータを正常に受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できた旨の返信を行わず、且つ、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できた旨の返信を行わず、
前記ホストとの通信よりも優先順位の高い割り込み処理を受け付けた場合には、前記ホストとの通信を、前記通常モードから前記割り込みモードに変更する、
ことを特徴とする。
【００２２】
本発明に係るプログラムは、
ホストと通信を行う情報機器を制御するためのプログラムであって、
前記ホストとの通信の際には、通常モードでは、正常にデータを受信できた場合にはデータを正常に受信できた旨の返信をホストに行い、正常にデータを受信できなかった場合にはデータを正常に受信できた旨の返信を行わず、且つ、割り込みモードでは、正常にデータを受信できた場合でも、所定の割合でデータを正常に受信できた旨の返信を行わず、
前記ホストとの通信よりも優先順位の高い割り込み処理を受け付けた場合には、前記ホストとの通信を、前記通常モードから前記割り込みモードに変更する、
ように情報機器を制御することを特徴とする。
【発明を実施するための最良の形態】
【００２３】
〔第１実施形態〕
まず、第１実施形態に係る情報処理システムの概要を説明する。本実施形態においては、ホストであるコンピュータと、ハードディスクドライブなどを搭載した情報機器との間は、ＵＳＢインターフェースで接続されている。ＵＳＢインターフェースで規定されている規格仕様では、実際のデータのやり取りは、ハードディスクドライブなどを搭載する情報機器が属するマスストレージクラスのデバイスにおけるバルク転送で行われる。
【００２４】
バルク転送では、情報機器がデータを正常に受け取れなかった場合には、ハンドシェークパケットとして「ＮＡＫ」（ネガティブアクノーレッジ）を情報機器からコンピュータに送信する。この「ＮＡＫ」を受信したコンピュータでは、データが正常に受け取れたことを意味する「ＡＣＫ」（アクノーレッジ）を情報機器から受信するまで、或いは、要求したデータを情報機器から受信するまで、何度もデータの送信を再試行する仕様になっている。
【００２５】
本実施形態ではこの仕様を応用して、データが正常に受け取れた場合でも、コンピュータに「ＮＡＫ」を所定の割合（０％を超えて１００％以下の所定の割合）で返信し続けることにより、コンピュータと情報機器との間の接続を切断することなく通信を一旦待機させ、その間に情報機器側では、他の処理を実行できるようにしている。一方、コンピュータは「ＡＣＫ」を受信するまで、或いは、要求したデータを受信するまで、同じデータを情報機器に送信し続ける。したがって、情報機器側で他の処理が終了し、「ＮＡＫ」を所定の割合で返信する処理が終了すれば、通常通りのデータ通信に戻るのである。より詳しい実施形態を、以下に説明する。
【００２６】
図１は、本実施形態に係る情報処理システムの構成を説明するブロック図である。この図１に示すように、本実施形態における情報処理システムは、ホストとしてコンピュータ１０を備えており、情報機器としてストレージデバイス２０を備えている。これらコンピュータ１０とストレージデバイス２０との間は、ＵＳＢインターフェースにより接続されている。
【００２７】
すなわち、コンピュータ１０にはタイプＡの接続ポート１２が設けられており、ストレージデバイス２０にはタイプＢの接続ポート２２が設けられている。これらコンピュータ１０の接続ポート１２とストレージデバイス２０の接続ポート２２との間を、ＵＳＢケーブル３０が接続している。
【００２８】
さらに、ストレージデバイス２０は、ＵＳＢデバイスコントローラ４０と、ハードディスクドライブ４２と、ＡＴＡブリッジコントローラ４４と、ＣＰＵ４６と、フラッシュＲＯＭ４８とを備えて構成されている。ＵＳＢデバイスコントローラ４０と接続ポート２２との間はデータバスにより接続されている。ＵＳＢデバイスコントローラ４０とハードディスクドライブ４２との間、ＵＳＢデバイスコントローラ４０とＡＴＡブリッジコントローラ４４との間も、データバスにより接続されている。ＡＴＡブリッジコントローラ４４とＣＰＵ４６との間も、データバスにより接続されており、フラッシュＲＯＭ４８とＣＰＵ４６との間も、データバスにより接続さている。
【００２９】
ＵＳＢデバイスコントローラ４０は、ＵＳＢインターフェースに基づいて、コンピュータ１０とストレージデバイス２０との間のデータやり取りを制御する。ＵＳＢデバイスコントローラ４０とハードディスクドライブ４２とＡＴＡブリッジコントローラ４４との間は、ＡＴＡ規格に基づいてデータのやり取りがされている。ＡＴＡブリッジコントローラ４４は、ＡＴＡ規格に基づいて受信したデータをＣＰＵ４６用のデータ規格に変換し、ＣＰＵ４６に送信するとともに、ＣＰＵ４６からのデータをＡＴＡ規格に基づくデータに変換して、ＵＳＢデバイスコントローラ４０やハードディスクドライブ４２に送信する。
【００３０】
ここで、ＵＳＢインターフェースにおいては、デバイスクラスというものが定義されている。通常、ＵＳＢインターフェースにおいて、ストレージデバイス２０のような記録装置を扱う場合、マスストレージクラスというクラスを使用する。マスストレージクラスには、フレキシブルディスクドライブ、ハードディスクドライブ、光ディスクドライブなどのディスクドライブが包含されている。また、ＵＳＢインターフェースにおいては、データ転送のタイプとして、コントロール転送、アイソクロナス転送、インタラプト転送、バルク転送の４種類が用意されている。
【００３１】
ハードディスクドライブなどの記録装置が属するマスストレージクラスのデバイスにおいては、実際のデータのやり取りは、バルク転送により行われる。バルク転送は、ファイルをプリンタに送信したり、ディスクの読み書きをしたりするような、非周期的な転送のうち、遅延が問題にならない大量のデータを、高い信頼性で転送する場合に用いられる。このバルク転送では、アイソクロナス転送やインタラプト転送によりバスが使用されている間は、処理を待つ必要があり、バスが空いた場合に転送が行われる。このため、データの転送速度は保証されていない。その代わり、バスが空いている時間をすべて使用することができるため、バスが空いていると非常に速い速度でデータ転送できるという利点がある。また、このバルク転送では、ホスト側がデバイス側（本実施形態では、ストレージデバイス２０側）から「ＮＡＫ」を受け取ると、「ＡＣＫ」を受け取るまで何度もデータ転送を再試行するようになっている。
【００３２】
ＵＳＢのバルク転送におけるトランザクションは、図２に示すようになっている。この図２から分かるように、バルク転送は、トークンパケットと、データパケットと、ハンドシェークパケットという３種類のパケットから構成されている。また、トランザクションとしては、ＩＮトランザクションと、ＯＵＴトランザクションとがある。ＩＮトランザクションは、デバイス内のデータをホストへ送信するトランザクションである。ＯＵＴトランザクションは、ホストから送信されたデータをデバイスが受信するトランザクションである。
【００３３】
ＩＮトランザクションの場合は、ホストからのＩＮトークンパケットに対して、デバイスがデータを送信できる場合はデータを送信し、送信できない場合は「ＮＡＫ」を返信する。すなわち、「ＮＡＫ」は返すデータが無い、または送信できる状態にないことを意味している。サポートしていないリクエストを要求された場合やエンドポイントが閉じている場合等には、「ＳＴＡＬＬ」（ストール）を返信する。
【００３４】
ＯＵＴトランザクションの場合は、ホストからのＯＵＴトークンパケットに続いてデータが送信されてくるので、このデータをデバイス側が受信できたかどうかを「ＡＣＫ」、「ＮＡＫ」、「ＮＹＥＴ」（ノットイエット）、「ＳＴＡＬＬ」で返信する。「ＡＣＫ」はデバイスがデータを正常に受信した場合に返信する。「ＮＡＫ」はデバイスがデータを正常に受信できなかった場合に返信する。すなわち、「ＮＡＫ」はデバイス側がビジーであることを意味している。「ＮＹＥＴ」は今回送信されたデータは正常に受信したが、次の送信はしばらく待ってからにして欲しい場合に返信する。つまり、「ＮＹＥＴ」を返信すれば、ホスト側に所定時間はデータを送信しないように要求したこととになる。「ＳＴＡＬＬ」はサポートしていないリクエストであった場合やエンドポイントが閉じている場合等に返信する。
【００３５】
バルク転送では、ＯＵＴトランザクションにおいて、ホスト側がデバイス側から「ＮＡＫ」を受け取った場合、ホスト側はデバイス側から「ＡＣＫ」を受け取るまで、データ転送を再試行する。また、ＩＮトランザクションにおいて、ホスト側がデバイス側から「ＮＡＫ」を受け取った場合、ホスト側はデバイス側から要求したデータを受け取るまで、ＩＮトークンパケットを再送信する。
【００３６】
本実施形態においては、ＵＳＢのこの規格仕様を利用して、ホスト側とデバイス側のバルク転送によるデータ通信において、優先順位の高い割り込み処理が発生した場合、デバイス側からホスト側に「ＮＡＫ」を返信するようにする。すなわち、ＩＮトランザクションの場合、デバイス側は、ホスト側からのＩＮトークンパケットに対して、データを送信する代わりに、「ＮＡＫ」を返す。ＯＵＴトランザクションの場合、デバイス側は、ホスト側からのＯＵＴトークンパケットに続いて、データを受信するが、正常にデータを受け取れた場合でも「ＮＡＫ」を返信する。このような処理をしている間に、ストレージデバイス２０は、優先順位の高い割り込み処理を実行する。
【００３７】
そして、割り込み処理が終了した場合、ホスト側から再送信されてくるデータに対して、デバイス側は「ＡＣＫ」を返信することにより、正常なデータ転送が再開される。
【００３８】
この処理を図３及び図４を用いて詳細に説明する。図３は、本実施形態に係るユーザ操作割り込み処理の内容を説明するフローチャートを示す図である。この図３に示すユーザ操作割り込み処理は、フラッシュＲＯＭ４８に格納されているユーザ操作割り込みプログラムをＣＰＵ４６が読み込んで実行することにより、実現される処理である。また、このユーザ操作割り込み処理は、定常的に実行されている処理である。図４は、本実施形態に係るストレージデバイス２０における操作ボタン側のレイアウトを示す図である。
【００３９】
図４に示すように、ストレージデバイス２０には、表示画面５０が設けられている。この表示画面５０の右側には、ユーザが指で操作する、メニューボタンＢ１０と、ＯＫボタンＢ１２と、キャンセルボタンＢ１４とが設けられている。また、その上にも、ユーザが指で操作する、上側移動ボタンＢ２０と、左側移動ボタンＢ２２と、右側移動ボタンＢ２４と、下側移動ボタンＢ２６とが、設けられている。
【００４０】
まず、図３に示すように、デバイス側であるストレージデバイス２０は、ユーザからの割り込み操作がなされたかどうかを判断する（ステップＳ１０）。本実施形態では、図４のボタンＢ１０〜Ｂ２６をユーザが操作して、何らかの処理をストレージデバイス２０に指示した場合に、ユーザからの割り込み操作がなされたと判断する。例えば、サムネール画面を表示画面５０に表示させるための操作をした場合などが、想定される。
【００４１】
次に、ストレージデバイス２０は、コンピュータ１０とストレージデバイス２０との間でデータ転送中であるかどうかを判断する（ステップＳ１２）。すなわち、コンピュータ１０からストレージデバイス２０にデータを送信してる最中であるか、或いは、ストレージデバイス２０からコンピュータ１０にデータを送信している最中であるかどうかを、判断する。
【００４２】
データ転送中である場合（ステップＳ１２：Ｙｅｓ）には、ストレージデバイス２０は所定の割合で「ＮＡＫ」を返信する通信処理を行う（ステップＳ１４）。すなわち、ホスト側であるコンピュータ１０からトークンパケットやデータを受信した場合、所定の割合で「ＮＡＫ」をコンピュータ１０に返信する「割り込みモード」に移行する。
【００４３】
図５は、本実施形態に係るＵＳＢデバイスコントローラ４０の内部構成を説明する図である。この図５に示すように、ＵＳＢデバイスコントローラ４０は、指示判断部４０ａと、ＮＡＫ返信部４０ｂと、ＵＳＢ通信制御部４０ｃとを備えている。
【００４４】
指示判断部４０ａは、ＣＰＵ４６からの指示が、所定の割合で「ＮＡＫ」を返信する指示なのか、通常のＵＳＢ通信を行う指示なのかを判断する。ＮＡＫ返信部４０ｂは、指示判断部４０ａからの指示に基づいて、所定の割合で「ＮＡＫ」を返信する通信処理を行う。一方、ＵＳＢ通信制御部４０ｃは、指示判断部４０ａからの指示に基づいて、通常のＵＳＢ通信の通信処理を行う。
【００４５】
したがって、ステップＳ１４においては、ＣＰＵ４６は、所定の割合で「ＮＡＫ」を返信する通信処理を実現するために、ＵＳＢデバイスコントローラ４０に、所定の割合で「ＮＡＫ」を返信する通信処理を行うように指示をする。この指示を受け取ったＵＳＢデバイスコントローラ４０のＮＡＫ返信部４０ｂでは、コンピュータ１０から送信されてくるトークンパケットやデータに対して、所定の割合で「ＮＡＫ」を強制的に返信する。すなわち、「ＮＡＫ」を返信した場合には、受信したデータはハードディスクドライブ４２に格納することなく破棄される。また、ハードディスクドライブ４２からデータを読み出す要求に対しては、これを受け入れることなく破棄される。
【００４６】
所定の割合は、種々に設定することが可能であるが、例えば、１００％（すなわち、すべて「ＮＡＫ」を返信する）、や５０％などが考えられる。このようにすることにより、ストレージデバイス２０は、データ通信のための処理を行う必要がなくなり、ユーザが要求した割り込み処理を実行することができるようになる。
【００４７】
なお、所定の割合は、０％を超えて１００％以下であれば任意に設定可能である。但し、所定の割合を１００％に設定した場合、コンピュータ１０側でデータ送信の再試行の回数に制限がある場合や、タイムアウトの制限がある場合には、これらのエラーに該当してしまう可能性がある。このような場合、所定の割合を５０％や７０％に設定することにより、エラーに該当する可能性を低減することができる。
【００４８】
さらに、ＯＵＴトランザクションにおいて、「ＮＡＫ」を返信する割合と、ＩＮトランザクションにおいて「ＮＡＫ」を返信する割合は、同じでもよいし、異なっていてもよい。
【００４９】
このように所定の割合で「ＮＡＫ」を返信する通信処理を行いながら、ユーザが操作した割り込み処理を実行する（ステップＳ１６）。そして、ストレージデバイス２０は、この割り込み処理が終了したかどうかを判断する（ステップＳ１８）。
【００５０】
ユーザが操作した割り込み処理が終了していないと判断した場合（ステップＳ１８：Ｎｏ）には、ストレージデバイス２０は、この割り込み処理を続行する（ステップＳ１６）。一方、割り込み処理が終了したと判断した場合（ステップＳ１８：Ｙｅｓ）には、ストレージデバイス２０は、通常の通信処理（通常モード）に戻る。具体的には、ＣＰＵ４６は、ＵＳＢデバイスコントローラ４０に、所定の割合で「ＮＡＫ」を返信する通信処理を終了し、通常の通信処理に戻るように指示をする（ステップＳ２０）。すなわち、ステップＳ２０で、ＣＰＵ４６がＵＳＢデバイスコントローラ４０に対して、通常のＵＳＢ通信処理を行う指示を送信する。この指示を受信したＵＳＢデバイスコントローラ４０では、ＵＳＢ通信制御部４０ｃが通常のＵＳＢ通信処理を行う。そして、ＣＰＵ４６は、上述したステップＳ１０からを繰り返す。
【００５１】
これに対して、上述したステップＳ１２で、データ転送中でないと判断した場合（ステップＳ１２：Ｎｏ）には、ストレージデバイス２０は、「通常モード」で、ユーザが操作した割り込み処理を実行する（ステップＳ３０）。そして、ストレージデバイス２０は、この割り込み処理が終了したかどうかを判断する（ステップＳ３２）。
【００５２】
ユーザが操作した割り込み処理が終了していないと判断した場合（ステップＳ３２：Ｎｏ）には、ストレージデバイス２０は、この割り込み処理を続行する（ステップＳ３０）。一方、割り込み処理が終了したと判断した場合（ステップＳ３２：Ｙｅｓ）には、ストレージデバイス２０は、上述したステップＳ１０の処理に戻る。
【００５３】
以上のように、本実施形態に係る情報処理システムによれば、ストレージデバイス２０が、ユーザ操作による割り込み処理などの優先順位の高い割り込み処理を受け付けた際に、データ転送中である場合には、所定の割合でデータを正常に受信できなかった返信をし、その間に割り込み処理を実行できるようにした。このため、ユーザ操作に対する応答の待ち時間を短くすることができる。
【００５４】
すなわち、本実施形態に係る情報処理システムによれば、ストレージデバイス２０とコンピュータ１０との間のデータ転送をユーザには処理しているように見せかけて、実は所定の割合でしか処理をしないことにより、ユーザが要求する処理を優先させて実行するようにしている。これにより、データ転送中におけるユーザ要求処理の遅延を防ぐことができる。
【００５５】
しかも、このような制御をするにあたり、ストレージデバイス２０はコンピュータ１０に「ＮＡＫ」を返信するだけであるので、ホスト側であるコンピュータ１０に特別なドライバソフトウェアを追加しなくても、本実施形態を実現することができる。すなわち、ＵＳＢインターフェースのように、デバイス側から自発的に通信できない規格仕様において、データの送受信の成否を伝達するハンドシェークパケットを利用することにより、デバイス側におけるハードディスクドライブ４２へのアクセスを拒否するという要望を満たすことができる。
【００５６】
なお、本実施形態においては、例えば、図６に示すように、バルク転送処理のうちのＯＵＴトランザクションについては、上述した図３のステップＳ１４の処理で、「ＮＡＫ」の代わりに「ＮＹＥＴ」を返信するようにしてもよい（ステップＳ５０）。この「ＮＹＥＴ」はＵＳＢ２．０のハイスピード転送でのみサポートされている。
【００５７】
この場合、バルク転送処理のうちのＩＮトランザクションについては、上述した図３と同様の処理を行うこととなる。また、ＵＳＢインターフェースの規格仕様では、デバイス側から「ＮＹＥＴ」を返信されたホスト側は、データ送信を再開する前に、「ＰＩＮＧ」を用いてデバイスのビジーチェックをすることになっている。
【００５８】
すなわち、図７に示すように、「ＮＹＥＴ」を受信したホストは、所定時間経過後に、デバイスのビジーチェックをするために、「ＰＩＮＧ」をデバイスに送信し、デバイスはそれに対して「ＡＣＫ」または「ＮＡＫ」のステータスを返す事になっている。デバイスの準備がまだできていない場合、すなわち、本実施形態では割り込み処理が終了していない場合には、デバイスは所定の割合で「ＮＡＫ」を返信する。或いは、図８に示すように、割り込み処理が終了していない場合には、デバイスは「ＰＩＮＧ」に対して一旦「ＡＣＫ」をホスト側に返信し、その後、データを受信した際に所定の割合で「ＮＹＥＴ」をホスト側に再度返信するようにしてもよい。
【００５９】
〔第２実施形態〕
上述した第１実施形態では、本発明をＵＳＢ規格に適用した例を説明したが、第２実施形態では、本発明をＩＥＥＥ１３９４規格に適用した例を説明する。なお、以下に説明する第２実施形態乃至第６実施形態では、上述した第１実施形態と異なる部分のみ説明する。
【００６０】
ＩＥＥＥ１３９４には、転送モードとして、アイソクロナス転送とアシンクロナス転送の２種類が存在する。アイソクロナス転送は、主に映像や音声などのリアルタイムデータの転送に用いられるモードであり、帯域幅が保証されている。アシンクロナス転送は、非同期データ転送用のモードであり、帯域幅は保証されていない。これら２つの転送モードのうち、アイソクロナス転送ではデータの受信確認は行われないが、アシンクロナス転送では、データの受信確認が行われる。受信確認の際には、データの受信側は、送信側からのデータを正常に受け取った場合には、アクノーレッジパケットを返信し、データを正常に受け取れなかった場合には、アクノーレッジビジーパケットを返信して、データを再送させる。但し、受信側が、相手先を指定しない全ノード宛のブロードキャストパケットを受信した場合には、データを正常に受け取った場合でも、アクノーレッジパケットを返信しないことになっている。
【００６１】
図９は、本実施形態に係る情報処理システムの構成を説明するブロック図であり、上述した図１に対応する図である。この図９は、コンピュータ１０とストレージデバイス２０との間が、ＩＥＥＥ１３９４ケーブル２００で接続されている点で、図１と相違する。このため、コンピュータ１０は、ＩＥＥＥ１３９４ケーブル２００のコネクタに合致した接続ポート２０２を備えており、ストレージデバイス２０もＩＥＥＥ１３９４ケーブル２００のコネクタに合致した接続ポート２０４を備えている。また、ストレージデバイス２０は、ＵＳＢデバイスコントローラ４０に代えて、ＩＥＥＥ１３９４コントローラ２１０を備えている。
【００６２】
図１０は、ＩＥＥＥ１３９４コントローラ２１０の内部構成を説明する図であり、上述した図５に対応する図である。この図１０に示すように、ＩＥＥＥ１３９４コントローラ２１０は、指示判断部２１０ａと、ビジーパケット返信部２１０ｂと、ＩＥＥＥ１３９４通信制御部２１０ｃとを備えている。
【００６３】
指示判断部２１０ａは、ＣＰＵ４６からの指示が、所定の割合でアクノーレッジビジーパケットを返信する指示なのか、通常のＩＥＥＥ１３９４通信を行う指示なのかを判断する。ビジーパケット返信部２１０ｂは、指示判断部２１０ａからの指示に基づいて、所定の割合でアクノーレッジビジーパケットを返信する通信処理を行う。一方、ＩＥＥＥ１３９４通信制御部２１０ｃは、指示判断部２１０ａからの指示に基づいて、通常のＩＥＥＥ１３９４通信の通信処理を行う。
【００６４】
図１１は、本実施形態に係るユーザ操作割り込み処理の内容を説明するフローチャートを示す図であり、上述した図３に対応する図である。この図１１から分かるように、本実施形態においては、ステップＳ１４の代わりにステップＳ２００が実行される。すなわち、コンピュータ１０とストレージデバイス２０との間でデータ転送中である場合（ステップＳ１２：Ｙｅｓ）には、ストレージデバイス２０は、所定の割合で、アクノーレッジビジーパケットを返信する通信処理を行う（ステップＳ２００）。すなわち、ホスト側であるコンピュータ１０からデータを受信した際に、正常にデータが受信できた場合でも、所定の割合で、アクノーレッジビジーパケットをコンピュータ１０に返信する。上述した第１実施形態と同様に、所定の割合でアクノーレッジビジーパケットを返信するための処理は、ＣＰＵ４６からの指示に基づいて、ＩＥＥＥ１３９４コントローラ２１０のビジーパケット返信部２１０ｂで自律的に行われる。そして、ユーザ操作の割り込み処理が終了した場合には、ＣＰＵ４６は、アクノーレッジビジーパケットを所定の割合で返信する処理を止めて、通常の処理に戻るよう、ＩＥＥＥ１３９４コントローラ２１０に指示をする（ステップＳ２０）。この指示を受信したＩＥＥＥ１３９４コントローラ２１０では、ＩＥＥＥ１３９４通信制御部２１０ｃが、ＩＥＥＥ１３９４の通常の通信処理を行う。
【００６５】
以上のように、本実施形態に係る情報処理システムにおいても、ストレージデバイス２０とコンピュータ１０との間のデータ転送をユーザには処理しているように見せかけて、実は所定の割合でしか処理をしないことにより、ユーザが要求する処理を優先させて実行するようにしている。したがって、これにより、データ転送中におけるユーザ要求処理の遅延を防ぐことができる。
【００６６】
〔第３実施形態〕
第３実施形態は、本発明をBluetooth規格に適用した実施形態である。Bluetoothには、通信リンクとして、ＳＣＯリンクとＡＣＬリンクとが存在する。
【００６７】
ＳＣＯリンクは、回線交換型であり、１つのマスターと１つのスレーブとの間で、１対１の通信を行うものである。リアルタイム伝送が可能で、主に、音声の伝送等に使用される。ＳＣＯリンクでは、受信したパケットに誤りがあっても、ＳＣＯリンクではデータパケットは再送されない。一方、ＡＣＬリンクは、パケット交換型で、マスターと複数のスレーブとの間で、１対多の通信を行うものである。
【００６８】
ＳＣＯリンク上で送受信されるデータパケットは、ＳＣＯパケットと総称される。ＳＣＯパケットは、そのペイロードに誤り検出符号を持っていない。ＡＣＬリンク上で送受信されるデータパケットは、ＡＣＬパケットと総称される。ＡＣＬパケットは、原則として、そのペイロードに誤り検出符号を持っており、再送機能を備えている。さらに、ＳＣＯリンクとＡＣＬリンクの双方に共通で定義されるパケットとして、共通パケットがある。
【００６９】
図１２Ａは、ＡＣＬリンクで用いられるパケットのフォーマットを示す図である。この図１２Ａに示すように、各パケットはフィールドとして、アクセスコードと、ヘッダと、ペイロードとを備えている。図１２Ｂに示すように、アクセスコードはフィールドとして、プリアンブルと、シンクワードと、トレーラとを備えている。図１２Ｃに示すように、ヘッダはフィールドとして、AM_ADDRと、TYPEと、FLOWと、ARQNと、SEQNと、HECとを備えている。図１２Ｄに示すように、ペイロードは、ペイロードヘッダと、ペイロードボディと、CRCとを備えている。
【００７０】
Bluetoothには、受信確認用のパケットは無く、その代わりに、ARQNフィールドを用いて、受信確認を行う。正しくデータを受信できた場合には、アクノーレッジの意味でARQN＝１とし、正しくデータを受信できなかった場合には、ネガティブアクノーレッジの意味でARQN＝０とすることにより、送信した相手に受信結果を伝達する。ARQN＝０の場合、これを受け取った送信側は、データを再送信する。
【００７１】
例えば、図１３に示すように、受信側がデータＡを正常に受信できなかった場合には、送信側にARQN＝０を返信して、再送を要求する。これを受けて、送信側は、データＡを再度送信する。受信側がデータＡを正常に受信できた場合には、送信側にARQN＝１を返信して、正常に受信したことを伝える。これを受けて、送信側は、次のデータＢを送信する。
【００７２】
また、Bluetoothには、通信リンク監視用のタイマーが定義されており、予め通信リンク監視タイマーに設定されている設定値以上の再送が続くと、マスター側がスレーブは通信不能と見なして、リンクを切断するようになっている。
【００７３】
図１４は、本実施形態に係る情報処理システムの構成を説明するブロック図であり、上述した図１に対応する図である。この図１４は、コンピュータ１０とストレージデバイス２０との間が、Bluetooth規格、つまり無線で接続されている点で、図１と相違する。このため、コンピュータ１０は、Bluetooth規格に合致した送受信ユニット３０２を備えており、ストレージデバイス２０もBluetooth規格に合致した送受信ユニット３０４を備えている。また、ストレージデバイス２０は、ＵＳＢデバイスコントローラ４０に代えて、ＢＬＵＥＴＯＯＴＨコントローラ３１０を備えている。
【００７４】
図１５は、ＢＬＵＥＴＯＯＴＨコントローラ３１０の内部構成を説明する図であり、上述した図５に対応する図である。この図１５に示すように、ＢＬＵＥＴＯＯＴＨコントローラ３１０は、指示判断部３１０ａと、ＡＲＱＮ返信部３１０ｂと、ＢＬＵＥＴＯＯＴＨ通信制御部３１０ｃとを備えている。
【００７５】
指示判断部３１０ａは、ＣＰＵ４６からの指示が、所定の割合でＡＲＱＮ＝０を返信する指示なのか、通常のＢＬＵＥＴＯＯＴＨ通信を行う指示なのかを判断する。ＡＲＱＮ返信部３１０ｂは、指示判断部３１０ａからの指示に基づいて、所定の割合でＡＲＱＮ＝０を返信する通信処理を行う。一方、ＢＬＵＥＴＯＯＴＨ通信制御部３１０ｃは、指示判断部３１０ａからの指示に基づいて、通常のＢＬＵＥＴＯＯＴＨ通信の通信処理を行う。
【００７６】
図１６は、本実施形態に係るユーザ操作割り込み処理の内容を説明するフローチャートを示す図であり、上述した図３に対応する図である。この図１６から分かるように、本実施形態においては、ステップＳ１４の代わりにステップＳ３００が実行される。すなわち、コンピュータ１０とストレージデバイス２０との間でデータ転送中である場合（ステップＳ１２：Ｙｅｓ）には、ストレージデバイス２０は、所定の割合で、正常に受信できなかったことを示すARQN＝０を返信する通信処理を行う（ステップＳ３００）。すなわち、ホスト側であるコンピュータ１０からデータを受信した際に、正常にデータが受信できた場合でも、所定の割合で、ヘッダにARQN＝０を含むパケットをコンピュータ１０に返信する。上述した第１実施形態と同様に、所定の割合でヘッダにARQN＝０を含むパケットを返信するための処理は、ＣＰＵ４６からの指示に基づいて、ＢＬＵＥＴＯＯＴＨコントローラ３１０のＡＲＱＮ返信部３１０ｂで自律的に行われる。そして、ユーザ操作の割り込み処理が終了した場合には、ＣＰＵ４６は、ARQN＝０を所定の割合で返信する処理を止めて、通常の処理に戻るよう、ＢＬＵＥＴＯＯＴＨコントローラ３１０に指示をする（ステップＳ２０）。この指示を受信したＢＬＵＥＴＯＯＴＨコントローラ３１０では、ＢＬＵＥＴＯＯＴＨ通信制御部３１０ｃが、通常のＢＬＵＥＴＯＯＴＨ通信処理を行う。
【００７７】
以上のように、本実施形態に係る情報処理システムにおいても、ストレージデバイス２０とコンピュータ１０との間のデータ転送をユーザには処理しているように見せかけて、実は所定の割合でしか処理をしないことにより、ユーザが要求する処理を優先させて実行するようにしている。したがって、これにより、データ転送中におけるユーザ要求処理の遅延を防ぐことができる。
【００７８】
〔第４実施形態〕
第４実施形態は、本発明をＴＣＰ（Transmission Control Protocol）に適用した実施形態である。
【００７９】
ＴＣＰは送信されるすべてのデータについて、一定時間内にアクノーレッジによる受信確認を行うことになっている。すなわち、データセグメントが送信側から送出されると、タイマーが起動し、このタイマーが終了するまでにアクノーレッジを送信側が受信しなければならない。タイマーが終了するまでにアクノーレッジを受信できない場合、送信側はデータが失われたと判断して、データセグメントの再送信を行う。アクノーレッジは、図１７に示すＴＣＰセグメントヘッダフォーマットにおけるＡＣＫフラグを立てることにより行う。そして、所定回数再送信しても、アクノーレッジを受信できない場合には、送信側はＲＳＴフラグを立てたセグメントを送信して、コネクションを強制終了する。
【００８０】
図１８は、本実施形態に係る情報処理システムの構成を説明するブロック図であり、上述した図１に対応する図である。この図１８は、コンピュータ１０とストレージデバイス２０との間が、ネットワーク４００を介したＴＣＰ規格により接続されている点で、図１と相違する。このため、コンピュータ１０は、ＴＣＰ規格のインターフェース４０２を備えており、ストレージデバイス２０もＴＣＰ規格のインターフェース４０４を備えている。また、ストレージデバイス２０は、ＵＳＢデバイスコントローラ４０に代えて、ＴＣＰコントローラ４１０を備えている。
【００８１】
図１９は、ＴＣＰコントローラ４１０の内部構成を説明する図であり、上述した図５に対応する図である。この図１９に示すように、ＴＣＰコントローラ４１０は、指示判断部４１０ａと、アクノーレッジ停止部４１０ｂと、ＴＣＰ通信制御部４１０ｃとを備えている。
【００８２】
指示判断部４１０ａは、ＣＰＵ４６からの指示が、所定の割合でアクノーレッジを返信しないようにする指示なのか、通常のＴＣＰ通信を行う指示なのかを判断する。アクノーレッジ停止部４１０ｂは、指示判断部４１０ａからの指示に基づいて、所定の割合でアクノーレッジを返信しない通信処理を行う。一方、ＴＣＰ通信制御部４１０ｃは、指示判断部４１０ａからの指示に基づいて、通常のＴＣＰ通信の通信処理を行う。
【００８３】
図２０は、本実施形態に係るユーザ操作割り込み処理の内容を説明するフローチャートを示す図であり、上述した図３に対応する図である。この図２０から分かるように、本実施形態においては、ステップＳ１４の代わりにステップＳ４００が実行される。すなわち、コンピュータ１０とストレージデバイス２０との間でデータ転送中である場合（ステップＳ１２：Ｙｅｓ）には、ストレージデバイス２０は、所定の割合で、アクノーレッジを返信しない通信処理を行う（ステップＳ４００）。すなわち、ホスト側であるコンピュータ１０からデータを受信した際に、正常にデータが受信できた場合でも、所定の割合で、アクノーレッジを返信せずに、受信したデータを破棄する。上述した第１実施形態と同様に、所定の割合でアクノーレッジを返信しないようにするための処理は、ＣＰＵ４６からの指示に基づいて、ＴＣＰコントローラ４１０のアクノーレッジ停止部４１０ｂで自律的に行われる。所定時間経過してもアクノーレッジを受信できないコンピュータ１０は、データの再送信をすることとなる。そして、ユーザ操作の割り込み処理が終了した場合には、ＣＰＵ４６は、所定の割合でアクノーレッジを返信しないようにする処理を止めて、通常の処理に戻るよう、ＴＣＰコントローラ４１０に指示をする（ステップＳ２０）。この指示を受信したＴＣＰコントローラ４１０では、ＴＣＰ通信制御部４１０ｃが、通常のＴＣＰ通信処理を行う。
【００８４】
以上のように、本実施形態に係る情報処理システムにおいても、ストレージデバイス２０とコンピュータ１０との間のデータ転送をユーザには処理しているように見せかけて、実は所定の割合でしか処理をしないことにより、ユーザが要求する処理を優先させて実行するようにしている。したがって、これにより、データ転送中におけるユーザ要求処理の遅延を防ぐことができる。
【００８５】
〔第５実施形態〕
上述した第１実施形態では、割り込みモードにおいて、「ＮＡＫ」の返信割合を高くするとタイムアウトが発生し、ＵＳＢ通信が切断されてしまう可能性がある。ＵＳＢ通信が切断されてしまった場合、ユーザはコネクションの確立をやり直さなければならない。具体的には、ユーザは、ＵＳＢコネクタの抜き差しを行って、再度、コネクションを確立しなければならない。
【００８６】
しかし、タイムアウトになるまでの時間は、コンピュータ１０やストレージデバイス２０で使用されているＯＳの種類や、使用する通信ドライバの種類によって、変動するため、予め適正な所定の割合を定めておくのは困難である。
【００８７】
そこで、本実施形態においては、ＵＳＢデバイスコントローラ４０に学習機能を持たせ、ある割合で「ＮＡＫ」を返信している割り込みモードにおいてコネクションが切断されてしまった場合には、次回からは、これまでよりも「ＮＡＫ」を返信する割合を少なく設定することにより、コネクションが切断されるのを回避できるようにしたものである。以下、上述した第１実施形態と異なる部分のみ説明する。
【００８８】
図２１は、本実施形態に係るＵＳＢデバイスコントローラ４０の内部構成を説明する図であり、上述した図５に対応する図である。この図２１に示すように、ＵＳＢデバイスコントローラ４０は、指示判断部４０ａと、ＵＳＢ通信制御部４０ｃと、ＮＡＫ返信部５００と、ＮＡＫ割合格納部５０２と、ＮＡＫ割合調整部５０４とを備えて構成されている。
【００８９】
指示判断部４０ａとＵＳＢ通信制御部４０ｃの機能は、上述した第１実施形態と同様である。ＮＡＫ返信部５００は、割り込みモードにおいて、ＮＡＫ割合格納部５０２に格納されているＮＡＫ割合を取得して、このＮＡＫ割合で定められている割合で、「ＮＡＫ」をコンピュータ１０に返信する。ＮＡＫ割合調整部５０４は、割り込みモードにおいて、タイムアウトが発生したかどうかを監視し、タイムアウトが発生した場合には、ＮＡＫ割合を削減して、ＮＡＫ割合格納部５０２に格納する。
【００９０】
なお、本実施形態においては、これらの処理をハードウェアにより実現しているが、ＵＳＢデバイスコントローラ４０にマイクロコンピュータが内蔵されている場合には、これらの処理をソフトウェアにより実現することもできる。
【００９１】
図２２は、本実施形態に係るＮＡＫ返信部５００で実行されるＮＡＫ返信処理を説明するフローチャートを示す図である。このＮＡＫ返信処理は、ＮＡＫ返信部５００が指示判断部４０ａから、所定の割合でＮＡＫを返信するように指示された場合に、起動される処理である。
【００９２】
このＮＡＫ返信処理においては、ＮＡＫ返信部５００は、まず、ＮＡＫ割合格納部５０２に格納されているＮＡＫ割合を取得する（ステップＳ５００）。このＮＡＫ割合格納部５００には、例えば、初期値としては９０％の値のＮＡＫ割合が格納されている。
【００９３】
次に、ＮＡＫ返信部５００は、この取得したＮＡＫ割合で定められている割合で、「ＮＡＫ」を返信する処理を行う（ステップＳ５０２）。すなわち、コンピュータ１０から送信されてくるデータやトークンパケットに対して、正常に受信できた場合でも、或いは、正常に処理できる場合でも、ＮＡＫ割合で定められている割合で、「ＮＡＫ」を返信する。
【００９４】
次に、ＮＡＫ返信部５００は、指示判断部４０ａから、所定の割合で「ＮＡＫ」を返信する処理を終了するように指示されたかどうかを判断する（ステップＳ５０４）。所定の割合で「ＮＡＫ」を返信する処理を終了するように指示されていない場合（ステップＳ５０４：ＮＯ）には、上述したステップＳ５０２の処理を繰り返す。
【００９５】
一方、所定の割合で「ＮＡＫ」を返信する処理を終了するように指示された場合（ステップＳ５０４：ＹＥＳ）には、このＮＡＫ返信処理を終了し、通常モードに戻る。
【００９６】
図２３は、本実施形態に係るＮＡＫ割合調整部５０４で実行されるＮＡＫ割合調整処理を説明するフローチャートを示す図である。このＮＡＫ割合調整処理は、ＮＡＫ調整部５０４が指示判断部４０ａから、所定の割合でＮＡＫを返信する割り込みモードに移行する通知を受けた場合に、起動される処理である。
【００９７】
このＮＡＫ割合調整処理においては、ＮＡＫ調整部５０４は、まず、ＮＡＫ割合格納部５０２から、ＮＡＫ割合を取得する（ステップＳ５２０）。
【００９８】
次に、ＮＡＫ割合調整部５０４は、タイムアウトが発生したかどうかを判断する（ステップＳ５２２）。タイムアウトが発生したかどうかの判断は、様々なものが考えられるが、例えば、ＩＮトランザクションにおいては、（１００％−ＮＡＫ割合）の割合で、データを送信することになるが、その送信したデータに対して、所定時間（例えば１０秒）待ってもコンピュータ１０からアクノーレッジが返信されてこない場合には、コンピュータ１０でタイムアウトが発生し、コネクションが切断されたと判断できる。これに対して、ＯＵＴトランザクションにおいては、（１００％−ＮＡＫ割合）の割合で、コンピュータ１０から送信されたデータに対してアクノーレッジを返信することになるが、所定時間（例えば１０秒）待っても、コンピュータ１０からデータが送信されてこない場合には、コンピュータ１０でタイムアウトが発生し、コネクションが切断されたと判断できる。
【００９９】
タイムアウトが発生していない場合（ステップＳ５２２：ＮＯ）には、ＮＡＫ割合調整部５０４は、指示判断部４０ａから所定の割合でＮＡＫを返信する処理が終了した旨の通知を受けたかどうかを判断する（ステップＳ５２４）。ＮＡＫを返信する処理が終了した旨の通知を受けていない場合（ステップＳ５２４：ＮＯ）には、上述したステップＳ５２２からを繰り返す。一方、ＮＡＫを返信する処理が終了した旨の通知を受けた場合（ステップＳ５２４：ＹＥＳ）には、このＮＡＫ割合調整処理を終了する。
【０１００】
これに対して、ステップＳ５２２でタイムアウトが発生したと判断した場合（ステップＳ５２２：ＹＥＳ）には、ステップＳ５２０で取得したＮＡＫ割合を削減する（ステップＳ５２６）。本実施形態においては、ステップＳ５２０で取得したＮＡＫ割合から、５％を減算し、これを新たなＮＡＫ割合とする。
【０１０１】
次に、ＮＡＫ割合調整部５０４は、この削減したＮＡＫ割合をＮＡＫ割合格納部５０２に格納する（ステップＳ５２８）。したがって、次回、ＮＡＫ返信処理が起動された場合には、この削減した新たなＮＡＫ割合に基づいて、「ＮＡＫ」を返信する処理が行われることとなる。そして、このＮＡＫ割合調整処理を終了する。
【０１０２】
以上のように、本実施形態に係る情報処理システムによれば、割り込みモードにおいて、コンピュータ１０でタイムアウトが発生した場合には、次回からは、ＮＡＫを返信する割合が少なくなるようにしたので、タイムアウトを繰り返すうちに、やがて、タイムアウトが発生しないようにすることができる。
【０１０３】
なお、本実施形態においては、ＮＡＫ割合調整処理をＵＳＢデバイスコントローラ４０で行うこととしたが、ＣＰＵ４６で行うようにしてもよい。この場合、ＣＰＵ４６は「ＮＡＫ」を返信する指示をＵＳＢデバイスコントローラ４０に送信する際（ステップＳ１６）に、そのＮＡＫ割合もＵＳＢデバイスコントローラ４０に指示することとなる。
【０１０４】
〔第６実施形態〕
上述した第５実施形態では、割り込みモードにおいてタイムアウトが発生した場合には、ＮＡＫ割合を所定の割合だけ少なくすることとしたが、本実施形態においては、タイムアウトが発生するまでの時間に基づいて、新たなＮＡＫ割合を決定するようにしたものである。以下、上述した第５実施形態と異なる部分のみを説明する。
【０１０５】
図２４は、本実施形態に係るＵＳＢデバイスコントローラ４０の内部構成を説明する図であり、上述した図２１に対応する図である。この図２４に示すように、ＵＳＢデバイスコントローラ４０は、指示判断部４０ａと、ＵＳＢ通信制御部４０ｃと、ＮＡＫ返信部５００と、ＮＡＫ割合格納部５０２と、ＮＡＫ割合決定部６００と、時間計測部６０２とを備えて構成されている。
【０１０６】
指示判断部４０ａとＵＳＢ通信制御部４０ｃとＮＡＫ返信部５００とＮＡＫ格納部５０２の機能は、上述した第５実施形態と同様である。ＮＡＫ割合決定部６００は、割り込みモードにおいて、タイムアウトが発生したかどうかを監視し、タイムアウトが発生した場合には、タイムアウトが発生するまでの時間に基づいて、新たなＮＡＫ割合を決定して、ＮＡＫ割合格納部５０２に格納する。
【０１０７】
時間計測部６０２は、タイムアウトが発生するまでの時間を計測する。したがって、ＮＡＫ割合決定部６００は、タイムアウトが発生した場合には、この時間計測部６０２から、タイムアウトが発生するまでの時間を取得する。
【０１０８】
タイムアウトが発生するまでの時間の計測の手法には、様々なものが考えられる。例えば、連続して「ＮＡＫ」を返信している場合には、その連続している時間を計測し、その連続している時間をタイムアウトが発生するまでの時間としてもよい。或いは、最後に「ＡＣＫ」を返信してからタイムアウトが発生するまでの時間を計測してもよい。
【０１０９】
なお、本実施形態においては、これらの処理をハードウェアにより実現しているが、ＵＳＢデバイスコントローラ４０にマイクロコンピュータが内蔵されている場合には、これらの処理をソフトウェアにより実現することもできる。
【０１１０】
また、本実施形態に係るＮＡＫ返信部５００で実行されるＮＡＫ返信処理は、上述した第５実施形態と同様である。
【０１１１】
図２５は、本実施形態に係るＮＡＫ割合決定部６００で実行されるＮＡＫ割合決定処理を説明するフローチャートを示す図である。このＮＡＫ割合決定処理は、ＮＡＫ割合決定部６００が指示判断部４０ａから、所定の割合でＮＡＫを返信する割り込みモードに移行する通知を受けた場合に、起動される処理である。
【０１１２】
このＮＡＫ割合決定処理においては、ＮＡＫ割合決定部６００は、まず、タイムアウトが発生したかどうかを判断する（ステップＳ６００）。タイムアウトが発生したかどうかの判断は、上述した第５実施形態と同様である。
【０１１３】
タイムアウトが発生していない場合（ステップＳ６００：ＮＯ）には、ＮＡＫ割合決定部６００は、指示判断部４０ａから所定の割合でＮＡＫを返信する処理が終了した旨の通知を受けたかどうかを判断する（ステップＳ６０２）。ＮＡＫを返信する処理が終了した旨の通知を受けていない場合（ステップＳ６０２：ＮＯ）には、上述したステップＳ６００からを繰り返す。一方、ＮＡＫを返信する処理が終了した旨の通知を受けた場合（ステップＳ６０２：ＹＥＳ）には、このＮＡＫ割合決定処理を終了する。
【０１１４】
これに対して、ステップＳ６００でタイムアウトが発生したと判断した場合（ステップＳ６００：ＹＥＳ）には、時間計測部６０２からタイムアウトまでの時間を取得する（ステップＳ６０４）。
【０１１５】
次に、ＮＡＫ割合決定部６００は、この取得したタイムアウトまでの時間に基づいて、新たなＮＡＫ割合を決定する（ステップＳ６０６）。図２６は、このとき使用されるＮＡＫ割合テーブルＴＢ１０の構成の一例を示す図である。本実施形態においては、このＮＡＫ割合テーブルＴＢ１０は、ＮＡＫ割合決定部６００の内部に設けられているＲＯＭに格納されている。このＮＡＫ割合テーブルＴＢ１０には、タイムアウトまでの時間と、これに対応するＮＡＫ割合とが格納されている。したがって、ステップＳ６０６では、取得したタイムアウトまでの時間に基づいて、このＮＡＫ割合テーブルＴＢ１０を検索し、タイムアウトまでの時間に対応する新たなＮＡＫ割合を取得する。
【０１１６】
タイムアウトまでの時間に対する適正なＮＡＫ割合は、通信プロトコルに基づいておよそ予測することが可能である。したがって、本実施形態では、この予測されたケースに基づいて、ＮＡＫ割合を定めている。
【０１１７】
次に、図２５に示すように、ＮＡＫ割合決定部６００は、この新たなＮＡＫ割合をＮＡＫ割合格納部５０２に格納する（ステップＳ６０８）。したがって、次回、ＮＡＫ返信処理が起動された場合には、この新たなＮＡＫ割合に基づいて、「ＮＡＫ」を返信する処理が行われることとなる。そして、このＮＡＫ割合決定処理を終了する。
【０１１８】
以上のように、本実施形態に係る情報処理システムによれば、割り込みモードにおいて、コンピュータ１０でタイムアウトが発生した場合には、このタイムアウトが発生するまでの時間に基づいて、次回のＮＡＫ割合を決定するようにしたので、次回からはタイムアウトが発生する可能性を著しく低減することができる。
【０１１９】
なお、本実施形態においては、ＮＡＫ割合決定処理をＵＳＢデバイスコントローラ４０で行うこととしたが、ＣＰＵ４６で行うようにしてもよい。この場合、ＣＰＵ４６は「ＮＡＫ」を返信する指示をＵＳＢデバイスコントローラ４０に送信する際（ステップＳ１６）に、そのＮＡＫ割合もＵＳＢデバイスコントローラ４０に指示することとなる。
【０１２０】
なお、本発明は上記実施形態に限定されず種々に変形可能である。例えば、上述した各実施形態では、通信処理よりも優先順位の高い処理を実行する情報機器としてストレージデバイス２０を例に説明したが、デジタルカメラやパーソナルコンピュータなどの他の情報機器に対しても本発明を適用することができる。
【０１２１】
また、上述した第１実施形態乃至第４実施形態における「所定の割合」（ステップＳ１４、ステップＳ５０、ステップＳ２００、ステップＳ３００、及び、ステップＳ４００）は、０％を超えて１００％以下であれば任意に設定可能である。但し、所定の割合を１００％に設定した場合、コンピュータ１０側でデータ送信の再試行の回数に制限がある場合や、タイムアウトの制限がある場合には、これらのエラーに該当してしまう可能性がある。このような場合、所定の割合を５０％や７０％に設定することにより、エラーに該当する可能性を低減することができる。また、ユーザ操作による割り込みの処理内容などに応じて、所定の割合を動的に変更するようにしてもよい。
【０１２２】
また、上述した各実施形態においては、所定の割合でデータが正常に受信できなかった旨を返信するための制御を、ＵＳＢデバイスコントローラ４０、ＩＥＥＥ１３９４コントローラ２１０、ＢＬＵＥＴＯＯＴＨコントローラ３１０、又は、ＴＣＰコントローラ４１０が自律的に行うこととしたが、この返信するための制御をＣＰＵ４６が自ら行うようにしてもよい。さらには、所定の割合でデータが正常に受信できなかった旨を返信するための制御の一部を、ＣＰＵ４６が行うようにしてもよい。この場合、例えば、図２４において、指示判断部４０ａ、ＮＡＫ返信部５００、ＮＡＫ割合格納部５０２、ＮＡＫ割合決定部６００、及び、時間計測部６０２が行う処理の少なくとも１つを、ＣＰＵ４６が行うようにすればよい。
【０１２３】
また、上述した第５実施形態及び第６実施形態では、ＵＳＢ通信の例を用いて、タイムアウトが発生した場合にＮＡＫ割合を調整したり変更したりする手法を説明したが、他の通信規格においても、この手法を適用することができる。
【０１２４】
また、上述の実施形態で説明した各処理については、これら各処理を実行するためのプログラムをフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＲＯＭ、メモリカード等の記録媒体に記録して、記録媒体の形で頒布することが可能である。この場合、このプログラムが記録された記録媒体をストレージデバイス２０などの情報機器に読み込ませ、実行させることにより、上述した実施形態を実現することができる。
【０１２５】
また、ストレージデバイス２０などの情報機器は、オペレーティングシステムや別のアプリケーションプログラム等の他のプログラムを備える場合がある。この場合、情報機器の備える他のプログラムを活用し、記録媒体にはその情報機器が備えるプログラムの中から、上述した実施形態と同等の処理を実現するプログラムを呼び出すような命令を記録するようにしてもよい。
【０１２６】
さらに、このようなプログラムは、記録媒体の形ではなく、ネットワークを通じて搬送波として頒布することも可能である。ネットワーク上を搬送波の形で伝送されたプログラムは、ストレージデバイス２０などの情報機器に取り込まれて、このプログラムを実行することにより上述した実施形態を実現することができる。
【０１２７】
また、記録媒体にプログラムを記録する際や、ネットワーク上を搬送波として伝送される際に、プログラムの暗号化や圧縮化がなされている場合がある。この場合には、これら記録媒体や搬送波からプログラムを読み込んだストレージデバイス２０などの情報機器は、そのプログラムの復号や伸張化を行った上で、実行する必要がある。
【図面の簡単な説明】
【０１２８】
【図１】第１実施形態に係る情報処理システムの構成を説明するブロック図。
【図２】ＵＳＢインターフェースのバルク転送におけるトランザクションを説明する図。
【図３】第１実施形態に係るユーザ操作割り込み処理の内容を説明するフローチャートを示す図。
【図４】第１実施形態に係る情報機器の操作ボタン側の平面レイアウトを示す図。
【図５】第１実施形態に係るＵＳＢデバイスコントローラの内部構成の一例を説明する図。
【図６】ユーザ操作割り込み処理の変形例を説明するフローチャートを示す図。
【図７】図６のユーザ操作割り込み処理を行った場合のホストとデバイスとの間におけるやり取りの一例を示す図。
【図８】図６のユーザ操作割り込み処理を行った場合のホストとデバイスとの間におけるやり取りの変形例を示す図。
【図９】第２実施形態に係る情報処理システムの構成を説明するブロック図。
【図１０】第２実施形態に係るＩＥＥＥ１３９４コントローラの内部構成の一例を説明する図。
【図１１】第２実施形態に係るユーザ操作割り込み処理の内容を説明するフローチャートを示す図。
【図１２】図１２Ａは、第３実施形態におけるBluetoothで用いられるパケット構成を示す図、図１２Ｂは、アクセスコード部の構成を詳細に示す図、図１２Ｃは、ヘッダ部の構成を詳細に示す図、図１２Ｄは、ペイロード部の構成を詳細に示す図。
【図１３】第３実施形態におけるデータ送受信フローを説明する図。
【図１４】第３実施形態に係る情報処理システムの構成を説明するブロック図。
【図１５】第３実施形態に係るＢＬＵＥＴＯＯＴＨコントローラの内部構成の一例を説明する図。
【図１６】第３実施形態に係るユーザ操作割り込み処理の内容を説明するフローチャートを示す図。
【図１７】第４実施形態にけるＴＣＰ規格で用いられるセグメント構成を説明する図。
【図１８】第４実施形態に係る情報処理システムの構成を説明するブロック図。
【図１９】第４実施形態に係るＴＣＰコントローラの内部構成の一例を説明する図。
【図２０】第４実施形態に係るユーザ操作割り込み処理の内容を説明するフローチャートを示す図。
【図２１】第５実施形態に係るＵＳＢデバイスコントローラの内部構成の一例を説明する図。
【図２２】第５実施形態に係るＵＳＢデバイスコントローラで実行されるＮＡＫ返信処理の内容を説明するフローチャートを示す図。
【図２３】第５実施形態に係るＵＳＢデバイスコントローラで実行されるＮＡＫ割合調整処理の内容を説明するフローチャートを示す図。
【図２４】第６実施形態に係るＵＳＢデバイスコントローラの内部構成の一例を説明する図。
【図２５】第６実施形態に係るＵＳＢデバイスコントローラで実行されるＮＡＫ割合決定処理の内容を説明するフローチャートを示す図。
【図２６】第６実施形態に係るＮＡＫ割合テーブルの構成の一例を説明する図。
【符号の説明】
【０１２９】
１０  コンピュータ
１２  タイプＡの接続ポート
２０  ストレージデバイス
２２  タイプＢの接続ポート
３０  ＵＳＢケーブル
４０  ＵＳＢデバイスコントローラ
４２  ハードディスクドライブ
４４  ＡＴＡブリッジコントローラ
４６  ＣＰＵ
４８  フラッシュＲＯＭ
【図１】
2006120115.tif 000003
【図２】
2006120115.tif 000004
【図３】
2006120115.tif 000005
【図４】
2006120115.tif 000006
【図５】
2006120115.tif 000007
【図６】
2006120115.tif 000008
【図７】
2006120115.tif 000009
【図８】
2006120115.tif 000010
【図９】
2006120115.tif 000011
【図１０】
2006120115.tif 000012
【図１１】
2006120115.tif 000013
【図１２】
2006120115.tif 000014
【図１３】
2006120115.tif 000015
【図１４】
2006120115.tif 000016
【図１５】
2006120115.tif 000017
【図１６】
2006120115.tif 000018
【図１７】
2006120115.tif 000019
【図１８】
2006120115.tif 000020
【図１９】
2006120115.tif 000021
【図２０】
2006120115.tif 000022
【図２１】
2006120115.tif 000023
【図２２】
2006120115.tif 000024
【図２３】
2006120115.tif 000025
【図２４】
2006120115.tif 000026
【図２５】
2006120115.tif 000027
【図２６】
2006120115.tif 000028