(57)【要約】【課題】ホスト装置とデバイス間のデータ伝送の効率を高める。【解決手段】ホスト装置５０とデバイスが接続されてなるＷＵＳＢシステムにおいて、ホスト装置５０に備えられた、デバイスのデータ伝送をスケジューリングするスケジューリング部４０は、データ伝送中止中のデバイスがデータ伝送再開要求を送信可能とする再開要求送信制御情報を制御部３０により設定された出力間隔で出力し、データ伝送中のデバイスからの中止要求に応じて該デバイスをスケジューリング対象から除外し、データ伝送中止中のデバイスが送信要求制御情報を受けてデータ伝送再開要求を送信したときにこのデバイスに対するスケジューリングを再開する。制御部３０は、データ伝送中止中のデバイスの有無に応じて、スケジューリング部による再開要求送信制御情報の出力間隔を設定する。【選択図】図２
2008136075.tif 000002
【特許請求の範囲】
【請求項１】
複数のデバイスが接続可能なホスト装置とデータ伝送中の前記デバイスに対してデータ伝送のスケジューリングをするスケジューリング部と、
前記スケジューリング部を制御する制御部とを備え、
前記スケジューリング部は、
データ伝送中止中のデバイスがデータ伝送再開要求を送信可能とする再開要求送信制御情報を前記制御部により設定された出力間隔で出力し、
データ伝送中のデバイスからの中止要求に応じて該デバイスをスケジューリング対象から除外し、
データ伝送中止中のデバイスが前記再開要求送信制御情報を受けて前記データ伝送再開要求を送信したときに該デバイスに対してデータ伝送のスケジューリングを再開し、
前記制御部は、
データ伝送中止中のデバイスの有無に応じて、前記スケジューリング部による前記再開要求送信制御情報の出力間隔を設定することを特徴とするスケジューリング装置。
【請求項２】
前記制御部は、データ伝送中止中のデバイスがある場合の前記出力間隔を、データ伝送中止中のデバイスが無い場合の前記出力間隔以下に設定することを特徴とする請求項１に記載のスケジューリング装置。
【請求項３】
前記制御部は、
データ伝送中止中のデバイスがある場合にさらにデータ伝送中のデバイスの有無を確認し、
データ伝送中のデバイスが無い場合の前記出力間隔を、データ伝送中のデバイスがある場合の前記出力間隔以下に設定することを特徴とする請求項２に記載のスケジューリング装置。
【請求項４】
前記制御部は、
データ伝送中のデバイスがある場合において、前記出力間隔を小さく設定することが前記デバイスのデータ伝送に与える影響の大きさをさらに判定し、前記影響が小さいほど前記出力間隔を小さく設定することを特徴とする請求項３に記載のスケジューリング装置。
【請求項５】
前記ホスト装置と前記デバイスは、ＷＵＳＢ（ＷｉｒｅＬｅｓｓ  Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格に準拠したものであり、
前記制御部は、データ伝送中のデバイスにアシンクロナス（Ａｓｙｎｃｈｒｏｎｏｕｓ）デバイスが含まれていないときよりアシンクロナスデバイスが含まれているときの前記影響が大きいと判定することを特徴とする請求項４に記載のスケジューリング装置。
【請求項６】
複数のデバイスが接続可能なホスト装置とデータ伝送中の前記デバイスに対してデータ伝送のスケジューリングをし、
データ伝送中止中のデバイスがデータ伝送再開要求を送信可能とする再開要求送信制御情報を所定の出力間隔で出力し、
データ伝送中のデバイスからの中止要求に応じて該デバイスをスケジューリング対象から除外し、
データ伝送中止中のデバイスが前記再開要求送信制御情報を受けて前記データ伝送再開要求を送信したときに該デバイスに対してデータ伝送のスケジューリングを再開し、
データ伝送中止中のデバイスの有無に応じて前記再開要求送信制御情報の出力間隔を設定することを特徴とするスケジューリング方法。
【請求項７】
データ伝送中止中のデバイスがある場合の前記出力間隔を、データ伝送中止中のデバイスが無い場合の前記出力間隔以下に設定することを特徴とする請求項６に記載のスケジューリング方法。
【請求項８】
データ伝送中止中のデバイスがある場合にさらにデータ伝送中のデバイスの有無を確認し、
データ伝送中のデバイスが無い場合の前記出力間隔を、データ伝送中のデバイスがある場合の前記出力間隔以下に設定することを特徴とする請求項７に記載のスケジューリング方法。
【請求項９】
データ伝送中のデバイスがある場合において、前記出力間隔を小さく設定することが前記デバイスのデータ伝送に与える影響の大きさをさらに判定し、前記影響が小さいほど前記出力間隔を小さく設定することを特徴とする請求項８に記載のスケジューリング方法。
【請求項１０】
前記ホスト装置と前記デバイスは、ＷＵＳＢ（ＷｉｒｅＬｅｓｓ  Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格に準拠したものであり、
データ伝送中のデバイスにアシンクロナス（Ａｓｙｎｃｈｒｏｎｏｕｓ）デバイスが含まれていないときよりアシンクロナスデバイスが含まれているときの前記影響が大きいと判定することを特徴とする請求項９に記載のスケジューリング方法。
【請求項１１】
複数のデバイスが接続可能なホスト装置であって、
該ホスト装置とデータ伝送中の前記デバイスに対してデータ伝送のスケジューリングをするスケジューリング部と、
前記スケジューリング部を制御する制御部とを備え、
前記スケジューリング部は、
データ伝送中止中のデバイスがデータ伝送再開要求を送信可能とする再開要求送信制御情報を前記制御部により設定された出力間隔で出力し、
データ伝送中のデバイスからの中止要求に応じて該デバイスをスケジューリング対象から除外し、
データ伝送中止中のデバイスが前記再開要求送信制御情報を受けて前記データ伝送再開要求を送信したときに該デバイスに対してデータ伝送のスケジューリングを再開し、
前記制御部は、
データ伝送中止中のデバイスの有無に応じて、前記スケジューリング部による前記再開要求送信制御情報の出力間隔を設定することを特徴とするホスト装置。
【請求項１２】
前記制御部は、データ伝送中止中のデバイスがある場合の前記出力間隔を、データ伝送中止中のデバイスが無い場合の前記出力間隔以下に設定することを特徴とする請求項１１に記載のホスト装置。
【請求項１３】
前記制御部は、
データ伝送中止中のデバイスがある場合にさらにデータ伝送中のデバイスの有無を確認し、
データ伝送中のデバイスが無い場合の前記出力間隔を、データ伝送中のデバイスがある場合の前記出力間隔以下に設定することを特徴とする請求項１２に記載のホスト装置。
【請求項１４】
前記制御部は、
データ伝送中のデバイスがある場合において、前記出力間隔を小さく設定することが前記デバイスのデータ伝送に与える影響の大きさをさらに判定し、前記影響が小さいほど前記出力間隔を小さく設定することを特徴とする請求項１３に記載のホスト装置。
【請求項１５】
前記ホスト装置と前記デバイスは、ＷＵＳＢ（ＷｉｒｅＬｅｓｓ  Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格に準拠したものであり、
データ伝送中のデバイスにアシンクロナス（Ａｓｙｎｃｈｒｏｎｏｕｓ）デバイスが含まれていないときよりアシンクロナスデバイスが含まれているときの前記影響が大きいと判定することを特徴とする請求項１４に記載のホスト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スケジューリング特にホスト装置によりデバイスのデータ伝送をスケジューリングする技術に関する。
【背景技術】
【０００２】
従来、データの送受信が行われるシステムにおいて、データの受信側により送信側のデータ伝送を制御することがなされている。例えば特許文献１に開示されたように、広域ネットワークにおいて、受信側がクレジットを送信側に伝え、送信側では受け取ったクレジット分だけパケットを送信するクレジット制御が用いられている。
【０００３】
また、高速なデータ伝送ができることから、パーソナルコンピュータ（以下パソコンという）のインターフェースとして脚光を浴びることが予想されるＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）のネットワークにおいては、データの伝送はホスト装置により制御される構造になっている。（非特許文献１）
【０００４】
ＷＵＳＢのネットワークの接続形態は、ハブ＆スポーク型であり、中心に位置するホスト装置（たとえばパソコン）に対してデバイスが接続される。ホスト装置とデバイス間の通信は１対１にコネクションが張られるポイント・ツー・ポイント（ＰｎＰ）である。デバイスはたとえばプリンタ、ハードディスク、マウス、デジタルカメラ、ゲーム機、ＰＤＡなどである。
【０００５】
ＷＵＳＢ規格に基づいてホスト装置とデバイスが接続されてなるＷＵＳＢクラスタ（以下単にクラスタともいう）において、ホスト装置は、ＭＭＣ（Ｍｉｃｒｏ−ｓｃｈｅｄｕｌｅｄ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｍｍａｎｄ）を用いてクラスタ（クラスタ内のデバイスを含む）を管理する。図５に示すように、ＭＭＣは所定の間隔Ａでホスト装置から発信され、ＭＭＣにはホスト装置の識別情報や次のＭＭＣの発信時間などが含まれている。
【０００６】
ＷＵＳＢシステムにおいて、接続については、デバイスからアクションを起こすデバイス・オリエンテッドな接続アソシエーションが採用されている。ホスト装置は、ホスト識別情報などをＭＭＣを介して送信することにより、クラスタ内のデバイスに通知する。なお、このＭＭＣには、ホスト装置は、デバイスがホスト装置に接続要求を発行できるように設定したＤＮＴＳ（Ｄｅｖｉｃｅ  Ｎｏｔｉｆｉｃａｔｉｏｎ  Ｔｉｍｅ  Ｓｌｏｔ）の開始時刻情報（ＷｄｎｔｓＣＴＡ。Ｗ：Ｗｉｒｅｌｅｓｓ  ＵＳＢ、ＣＴＡ：Ｃｈａｎｎｅｌ  Ｔｉｍｅ  Ａｌｌｏｃａｔｉｏｎ）も含まれている。ＤＮＴＳは、個々のデバイスが小さい非同期の通知メッセージをホスト装置に送信するために用意されるスロットであり、複数個設定されている。デバイスは、自身が属するクラスタの構成時においてホスト識別情報を取得して保持しており、ホスト装置からのＭＭＣに含まれるホスト識別情報を元に自身が属するクラスタのホスト装置であるか否かを判断することができる。自身が属するクラスタのホスト装置に接続要求を出す際に、用意されたスロットから送信するスロットをランダムに選択して接続要求を出す。その後、ホスト装置とデバイスはハンドシェークによる相互認証を行い、接続を完了する。図５は、ＭＭＣとＷｄｎｔｓＣＴＡの送信タイミングを示す。図５に示すように、ＷｄｎｔｓＣＴＡは、  ＭＭＣを介して送信されるものであるが、その送信間隔Ｂは、ＭＭＣの送信間隔Ａと異なり、送信間隔Ａ以上の長さをとる。
【０００７】
一方、ＷＵＳＢシステムにおいて、クラスタ内のホスト装置とデバイスとのデータ伝送では、ホスト装置が主導権を持っている。図６に示すように、ホスト装置とデータ伝送を行う複数のデバイスに対して、ホスト装置はこれらの各デバイスがデータを送受信する帯域（時間帯域）を割り当てる（以下スケジューリングともいう）と共に、それを示すＷｄｒ／ｄｔＣＴＡ（Ｗｉｒｅｌｅｓｓ  ＵＳＢ  Ａｌｌｏｃａｔｉｏｎ  Ｂｌｏｃｋ。ｄｒ：受信。ｄｔ：送信。以下送受信を含めてＷｘＣＴＡともいう）をＭＭＣを介して送信する。デバイスは、このＷｘＣＴＡを受信し、ＷｘＣＴＡにより自身のために確保された帯域で送受信する。
【特許文献１】特開平９−１９１３２１号公報
【非特許文献１】Ｗｉｒｅｌｅｓｓ  Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ、Ｒｅｖｉｓｉｏｎ  １．０、２００５年５月１２日、インターネット＜http://www.usb.org/developers/wusb/docs/WirelessUSBSpecification_r10.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ホスト装置が送信するＷｄｎｔｓＣＴＡは、デバイスが接続要求を発信するために用いられる以外に、データ伝送中のデバイスがデータ伝送の再開を要求するためにも用いられる。図７を用いてこれを具体的に説明する。
【０００９】
図７に示すように、デバイスは、ホスト装置から送信されるＷｄｎｔｓＣＴＡに応じて、ホスト装置とデータの送受信を行う。あるデバイスが次に伝送するデータを準備するなどのためにＷｘＣＴＡに対してＮＡＫ（Ｎｅｇａｔｉｖｅ  Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）応答をホスト装置にし、データ伝送を一旦中止する。ホスト装置はこのＮＡＫ応答を受信すると、ＮＡＫ応答をしたデバイスをスケジューリング対象から除外する。この状態のデバイスの状態を、以下「フロー制御中」という。
【００１０】
ホスト装置は、ＮＡＫ応答をしたデバイスを、スケジューリング対象から外す。このとき、他にデータ伝送中のデバイスがあれば、ホスト装置は引き続きそれらのデバイスに対してスケジューリングをしＷｘＣＴＡを送信し続ける。分かりやすくするために、図７では、ＮＡＫ応答をしたデバイスについてのみＷｘＣＴＡを示す。図示のように、ＮＡＫ応答したデバイスに対して、該デバイスを対象とするＷｘＣＴＡがホスト装置から送信されないこととなる。
【００１１】
フロー制御中のデバイスは、データの準備が完了し、データ伝送を再開するために、ホスト装置にＥＰＲｅａｄｙを送信することによってデータ伝送の再開を要求する。ホスト装置は、デバイスからＥＰＲｅａｄｙを受信すると、このデバイスを再びスケジューリング対象にし、該デバイスを対象とするＷｘＣＴＡを再び送信する。
【００１２】
ＷＵＳＢシステムでは、このＥＰＲｅａｄｙも、デバイス・ノティフィケーション（Ｄｅｖｉｃｅ  Ｎｏｔｉｆｉｃａｔｉｏｎ）として、ＷｄｎｔｓＣＴＡにより確保された帯域でのみデバイスにより送信可能である。一方、ＷｄｎｔｓＣＴＡの送信間隔は、ホスト装置のドライバにより設定され、通常数ｍｓｅｃに固定されている。そのため、図７に示すように、フロー制御中のデバイスは、データ準備が完了したにもかかわらず、ＥＰＲｅａｄｙを送信するためにＷｄｎｔｓＣＴＡを待つ必要がある。この待ち時間が長いほど、フロー制御中のデバイスのデータ伝送の再開が遅くなり、データ伝送の効率が悪いという問題がある。
【課題を解決するための手段】
【００１３】
本発明の一つの態様は、スケジューリング装置である。このスケジューリング装置は、複数のデバイスが接続可能なホスト装置とデータ伝送中のデバイスに対してデータ伝送のスケジューリングをするスケジューリング部と、スケジューリング部を制御する制御部とを備える。スケジューリング部は、データ伝送中止中のデバイスがデータ伝送再開要求を送信可能とする再開要求送信制御情報を制御部により設定された出力間隔で出力し、データ伝送中のデバイスからの中止要求に応じて該デバイスをスケジューリング対象から除外し、データ伝送中止中のデバイスが再開要求送信制御情報を受けてデータ伝送再開要求を送信したときに該デバイスに対してデータ伝送のスケジューリングを再開する。制御部は、データ伝送中止中のデバイスの有無に応じて、スケジューリング部による再開要求送信制御情報の出力間隔を設定する。
【００１４】
本発明の別の態様は、スケジューリング方法である。このスケジューリング方法は、複数のデバイスが接続可能なホスト装置とデータ伝送中のデバイスに対してデータ伝送のスケジューリングをし、データ伝送中止中のデバイスがデータ伝送再開要求を送信可能とする再開要求送信制御情報を所定の出力間隔で出力し、データ伝送中のデバイスからの中止要求に応じて該デバイスをスケジューリング対象から除外し、データ伝送中止中のデバイスが再開要求送信制御情報を受けてデータ伝送再開要求を送信したときに該デバイスに対してデータ伝送のスケジューリングを再開する。この方法は、データ伝送中止中のデバイスの有無に応じて再開要求送信制御情報の出力間隔を設定する。
【００１５】
本発明のさらなる別の態様は、上述したスケジューリング装置を備えたホスト装置である。
【００１６】
なお、上記各態様をシステムやプログラムとして表現したものも、本発明の態様として有効である。
【発明の効果】
【００１７】
本発明の技術によれば、フロー制御中のデバイスのデータ伝送を早く再開することができ、データ伝送の効率向上を図ることができる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して本発明の実施の形態について説明する。
【００１９】
図１は、本発明の実施の形態のＷＵＳＢシステム１００を示す。ＷＵＳＢシステム１００は、ホスト装置５０と、複数のＷＵＳＢデバイス（図示の例では３つ：デバイス７０、デバイス８０、デバイス９０）を備える。
【００２０】
ホスト装置５０は、例えばパソコンであり、図２はその構成を示す。なお、本発明の主旨を分かりやすくするために、以下において、本発明と関連性のある処理を担う部分についてのみ説明および図示する。
【００２１】
図２に示すように、ホスト装置５０は、インターフェース１０と、デバイス情報・伝送情報更新制御部（以下単に更新制御部という）２４と、デバイス情報・伝送情報記憶部（以下単に記憶部という）２８と、制御部３０と、スケジューリング部４０を有する。なお、ホスト装置５０の様々な処理を行う機能ブロックとして図中に記載れた各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００２２】
インターフェース１０は、ＷＵＳＢ規格に準拠し、それを介して、ホスト装置５０と各デバイスの接続や、データ伝送などがなされる。インターフェース１０は、ホスト装置５０からデバイスへ送信するためのデータ送信部１４と、デバイスからの応答やデータなどを受信する受信部１８を有する。
【００２３】
記憶部２８は、デバイス情報および伝送情報を記憶するものである。デバイス情報は、たとえば接続中のデバイスの識別情報や種類（デバイスの種類については後述する）、これらのデバイスがデータ伝送中かフロー制御中かなどのデバイスの状態を示す情報を含む。伝送情報は、伝送データの残りデータ長やデータ伝送中に発生したエラー回数、伝送データ格納先のメモリアドレス情報などを含む。
【００２４】
更新制御部２４は、データ受信部１８を介してデバイスが行った応答やデバイスが送信してきたデータなどに応じて記憶部２８に記憶された内容を更新する。
【００２５】
スケジューリング部４０は、デバイスからホスト装置５０への通信のスケジューリングを行う。これらの通信は、デバイスとホスト装置５０間のデータ伝送、およびデバイスからホスト装置５０への応答や要求など、デバイスからのノティフィケーション（Ｎｏｔｉｆｉｃａｔｉｏｎ）の送信が含まれる。
【００２６】
データ伝送に関しては、スケジューリング部４０は、ＭＭＣを介してＷｘＣＴＡを送信することによってデバイスのデータ伝送をスケジューリングする。このＷｘＣＴＡには、受信か送信かを指定する情報、受信または送信するデバイスを指定する情報、受信または送信のタイムスロット（帯域）などが含まれる。デバイスは、ＷｘＣＴＡに従って、自身のために指定されたタイムスロットで指定された動作（受信または送信）をする。なお、以下の説明において、「ホスト装置５０と接続して動作中のデバイス」を、「アクティブなデバイス」という。
【００２７】
デバイスからのノティフィケーションに関しては、スケジューリング部４０は、ＭＭＣを介してＷｄｎｔｓＣＴＡを送信することによってスケジューリングする。このＷｄｎｔｓＣＴＡは、クラスタ内のすべてのデバイスに対してブロードキャストとして送信されるものであり、ノティフィケーションを行おうとするデバイスは、このＷｄｎｔｓＣＴＡにより指定された帯域でノティフィケーションを送信する。
【００２８】
アクティブなデバイスは、データを準備するためにＮＡＫ応答をし、フロー制御に入る場合がある。スケジューリング部４０は、ＮＡＫ応答をしたデバイスをデータ伝送のスケジューリングの対象から除外する。フロー制御中のデバイスは、データ準備が完了すれば、スケジューリング部４０から送信されてきたＷｄｎｔｓＣＴＡにより指定された帯域でＥＰＲｅａｄｙとなるノティフィケーションを送信することによって、データ伝送の再開を要求する。スケジューリング部４０は、フロー制御中のデバイスからのＥＰＲｅａｄｙを受信すると、再びこのデバイスをデータ伝送のスケジューリング対象にし、ＷｘＣＴＡにてこのデバイスのデータ伝送のための帯域を確保する。
【００２９】
フロー制御中のデバイスがデータの準備が完了しても、ＷｄｎｔｓＣＴＡを受信しなければＥＰＲｅａｄｙを送信することができないので、ＷｄｎｔｓＣＴＡの間隔が短いほどデータ伝送の再開が早くなる。
【００３０】
本実施の形態のＷＵＳＢシステム１００において、スケジューリング部４０によるＷｄｎｔｓＣＴＡの送信間隔Ｋ１は制御部３０により制御される。図２に示すように、制御部３０は、ドライバ設定記憶部３２と、判定部３４と、ＷｄｎｔｓＣＴＡ送信間隔決定部３６を有する。
【００３１】
ドライバ設定記憶部３２は、ホスト装置５０のＷＵＳＢにより設定されたＷｄｎｔｓＣＴＡの送信間隔Ｋ０（通常数ｍｓｅｃ）を記憶している。ＷｄｎｔｓＣＴＡ送信間隔決定部３６は、判定部３４の判定結果に応じて、スケジューリング部４０によるＷｄｎｔｓＣＴＡの送信間隔Ｋ１を、ドライバ設定記憶部３２に記憶されたＷｄｎｔｓＣＴＡの送信間隔Ｋ０のままにするか、送信間隔Ｋを変更した値にするかを決定する。
【００３２】
ここで、制御部３０の判定部３４とＷｄｎｔｓＣＴＡ送信間隔決定部３６の詳細を説明する前に、デバイスの種類を踏まえてＷｄｎｔｓＣＴＡとＷｘＣＴＡの関係について考える。ＷＵＳＢデバイスは、データ伝送において、ピリオディック（Ｐｅｒｉｏｄｉｃ）デバイスとアシンクロナス（Ａｓｙｎｃｈｒｏｎｏｕｓ）デバイスの２種類に大きく分けられる。
【００３３】
ピリオディックデバイスは、データ伝送の帯域を多く割り当てられることを必要としないが、定期的に帯域が確実に割り当てられることが必要である。ピリオディックデバイスの例として、マウスや、キーボードなどのヒューマンインターフェースがある。
【００３４】
アシンクロナスデバイスは、ピリオディックデバイスとは逆に、割り当てられる帯域の定期性を要求しないが、多くの帯域を必要とする。アシンクロナスデバイスの例として、ハードディスクなどのストレージデバイスがある。
【００３５】
前述したように、ＷｘＣＴＡは、データ伝送をするデバイスのために帯域を指定するものであり、ＷｄｎｔｓＣＴＡは、デバイスがノティフィケーションを送信するための帯域を指定するものである。そのため、ＷｄｎｔｓＣＴＡの頻度が高いと、ＷｄｎｔｓＣＴＡによってデバイスがノティフィケーションを送信するために確保された帯域が増え、ＷｘＣＴＡが使用できる帯域は相対的に減少する。したがって、データ伝送中のデバイスに、帯域を多く必要とするアシンクロナスデバイスがある場合には、ＷｄｎｔｓＣＴＡの頻度を高くすると、アシンクロナスデバイスに割り当てられる帯域が減り、データ伝送の効率が悪くなる。
【００３６】
一方、ピリオディックデバイスは定期的に帯域が割り当てられていればよく、帯域の量を必要としないので、ＷｄｎｔｓＣＴＡの頻度を高くしても、ピリオディックデバイスのデータ伝送に及ぼす影響が少ない。
【００３７】
勿論、その種類に関わらずデータ伝送中のデバイスが無い場合には、ＷｄｎｔｓＣＴＡの頻度を高くしてもデータ伝送に及ぼす影響が無い。
【００３８】
ホスト装置５０における制御部３０の判定部３４は、ＷｄｎｔｓＣＴＡ送信間隔決定部３６がスケジューリング部４０により送信されるＷｄｎｔｓＣＴＡの送信間隔を設定するための判定をする。具体的には、フロー制御中のデバイスの有無と、ＷｄｎｔｓＣＴＡの送信間隔を短くした場合に、データ伝送中のデバイスのデータ伝送に影響を及ぼすか否か、影響の大きさを判定する。フロー制御中のデバイスの有無は記憶部２８に記憶されたデバイス情報に基づいて判定される。影響の有無及びその大きさについては、例えば、接続中のすべてのデバイスがフロー制御中である（すなわちデータ伝送中のデバイスが無い）場合には、「影響無し」と判定し、データ伝送中のすべてのデバイスがピリオディックデバイスである場合には「影響：小」と判定する。また、データ伝送中のデバイスのうち、アシンクロナスデバイスがある場合には、「影響：大」と判定する。なお、アクティブなデバイスの状態（フロー制御中か否か）およびそれらの種類は、記憶部２８に記憶されている。
【００３９】
ＷｄｎｔｓＣＴＡ送信間隔決定部３６は、デバイス判定部３４によるこのような判定結果に応じて、「影響：大」の場合は、スケジューリング部４０によるＷｄｎｔｓＣＴＡの送信間隔Ｋ１をドライバ設定記憶部３２に記憶された送信間隔Ｋ０のままにし、「影響無し」および「影響：小」の場合には、スケジューリング部４０によるＷｄｎｔｓＣＴＡの送信間隔Ｋ１を送信間隔Ｋ０より小さい値に変更してスケジューリング部４０に出力する。
【００４０】
ここで図３および図４を参照して、制御部３０およびスケジューリング部４０の処理をより詳しく説明する。
【００４１】
図３は、制御部３０による処理を示すフローチャートである。制御部３０において、ＷｄｎｔｓＣＴＡ送信間隔決定部３６は、判定部３４の判定結果に応じて、スケジューリング部４０により送信されるＷｄｎｔｓＣＴＡの送信間隔Ｋ１を決定する。
【００４２】
具体的には、まず、判定部３４はアクティブなデバイスの有無を確認する（Ｓ１０）。アクティブなデバイスが無ければ、ＷｄｎｔｓＣＴＡ送信間隔決定部３６は、送信間隔Ｋ１を、ドライバ設定記憶部３２に記憶された送信間隔Ｋ０に設定する（Ｓ１０：Ｎｏ、Ｓ６０）一方、アクティブなデバイスがあれば、判定部３４はさらに、これらのデバイスのうちに、フロー制御中のデバイスの有無を確認する（Ｓ１０：Ｙｅｓ、Ｓ２０）。
【００４３】
フロー制御中のデバイスが無ければ、ＷｄｎｔｓＣＴＡ送信間隔決定部３６は、送信間隔Ｋ１を、ドライバ設定記憶部３２に記憶された送信間隔Ｋ０に設定する（Ｓ２０：ＮＯ、Ｓ６０）。一方、フロー制御中のデバイスがある場合には、ＷｄｎｔｓＣＴＡ送信間隔決定部３６は、さらに、データ伝送中のデバイスの有無を確認する（Ｓ２０：Ｙｅｓ、Ｓ３０）。
【００４４】
ＷｄｎｔｓＣＴＡ送信間隔決定部３６は、データ伝送中のデバイスが無い、すなわちアクティブなデバイスがすべてフロー制御中の場合には、ＷｄｎｔｓＣＴＡの送信間隔を小さくすることによる影響が「無し」として、それをドライバ設定の送信間隔Ｋ０より小さい値に変更する（Ｓ３０：Ｙｅｓ、Ｓ５０）。
【００４５】
一方、データ伝送中のデバイスがある場合には、ＷｄｎｔｓＣＴＡ送信間隔決定部３６は、ＷｄｎｔｓＣＴＡの送信間隔を小さくすることによるこれらのデバイスのデータ伝送に与える影響の大小を確認する（Ｓ３０：Ｎｏ、Ｓ３４）。本実施の形態において、ＷｄｎｔｓＣＴＡ送信間隔決定部３６は、データ伝送中のデバイスの種類に基づいてこの影響の大小を確認するものであり、具体的には、データ伝送中のデバイスに、多くの帯域を必要とするアシンクロナスデバイスが含まれている場合には、「影響：大」として、送信間隔Ｋ１を、ドライバ設定記憶部３２に記憶された送信間隔Ｋ０に設定する（Ｓ３４：Ｙｅｓ、Ｓ６０）。一方、データ伝送中のデバイスにピリオディックデバイスしか含まれず、アシンクロナスデバイスが無い場合には、ＷｄｎｔｓＣＴＡ送信間隔決定部３６は、「影響：小」として、ＷｄｎｔｓＣＴＡの送信間隔Ｋ１を、ドライバ設定の送信間隔Ｋ０より小さい値に変更する（Ｓ３４：Ｎｏ、Ｓ５０）。
【００４６】
スケジューリング部４０は、ＷｄｎｔｓＣＴＡ送信間隔決定部３６により設定された送信間隔Ｋ１でＷｄｎｔｓＣＴＡを送信する。図４は、制御部３０の上述した制御下におけるスケジューリング部４０のスケジューリング動作を示す。
【００４７】
デフォルト状態では、ＷｄｎｔｓＣＴＡの送信間隔Ｋ１は、ドライバ設定の送信間隔Ｋ０にされているとする。図４の前段に示すように、データ伝送中のデバイスは、ホスト装置５０のスケジューリング部４０から出力されたＷｘＣＴＡに応じて、自身のために指定された帯域でホスト装置５０とのデータ伝送を行う。なお、図４の前段は、フロー制御中のデバイスが無い場合である。この場合、ＷｄｎｔｓＣＴＡは、デフォルト値のまますなわちドライバ設定の送信間隔Ｋ０で送信される。
【００４８】
図４の中段に示すように、データ伝送中のあるデバイスがデータ準備のためにホスト装置５０にＮＡＫ応答をしたとする。ＮＡＫ応答を受けたホスト装置５０のスケジューリング部４０は、このデバイスをスケジューリングの対象から除外し、その後送出するＷｘＣＴＡには、このデバイスのための帯域の指定が無い。なお、図４において、分かりやすくするために、デバイスがＮＡＫ応答をした後にスケジューリング部４０からＷｘＣＴＡを出力してないように示しているが、これはＮＡＫ応答をしたデバイスをスケジューリング対象から外したことを示すためであり、他にデータ伝送中のデバイスがあれば、それらのデバイスのデータ伝送をスケジューリングするＷｘＣＴＡが出力されている。
【００４９】
ＮＡＫ応答をしたデバイスはデータを準備するフロー制御期間に入る。このとき、制御部３０は、図３に示す処理でＷｄｎｔｓＣＴＡの送信間隔Ｋ１を設定する。図４は、制御部３０によりＷｄｎｔｓＣＴＡの送信間隔Ｋ１がドライバ設定値のＫ０より小さい値（図示の例ではＭＭＣと同じ間隔）に設定された場合を示している。この設定によって、ＮＡＫ応答をしたデバイスのフロー制御期間において、スケジューリング部４０からＷｄｎｔｓＣＴＡの送信頻度が高くなるため、フロー制御期間に入ったデバイスが、データ準備を完了した際に、より早くＷｄｎｔｓＣＴＡを受信することができ、ＥＰＲｅａｄｙを早く送信することができる。ホスト装置５０のスケジューリング部４０は、フロー制御中のデバイスからＥＰＲｅａｄｙを受信すると、再びこのデバイスをスケジューリング対象にするので、ＷｄｎｔｓＣＴＡの送信間隔を小さくすることによってフロー制御に入ったデバイスのデータ伝送の再開を早くすることができ、伝送効率を高めることができる。
【００５０】
また、フロー制御中のデバイスが無い場合において、ＷｄｎｔｓＣＴＡの送信間隔をドライバ設定のままにすることによって、システム内に無駄なＷｄｎｔｓＣＴＡが流れることを防ぐことができる。
【００５１】
さらに、フロー制御中のデバイスがある場合でも、ＷｄｎｔｓＣＴＡの送信間隔をドライバ設定より小さくすることにより他のデバイスのデータ伝送へ与える影響が大きい場合には、ＷｄｎｔｓＣＴＡの送信間隔をドライバ設定のままにしているので、ＷｄｎｔｓＣＴＡの送信間隔を変えることでアシンクロナスデバイスなどのデータ伝送効率の悪化を防ぐことができる。
【００５２】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、さまざまな変更、増減を加えてもよい。これらの変更、増減が加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
【００５３】
例えば、本実施の形態のＷＵＳＢシステム１００において、ホスト装置５０の制御部３０は、ＷｄｎｔｓＣＴＡの送信間隔を小さくすることによって他のデバイスのデータ伝送へ与える影響を、「影響：大」、「影響：小」、「影響：無し」の３段階に分けて判定しているが、例えば、データ伝送中のデバイスに含まれるアシンクロナスデバイスの数が多いほど影響が大きいように、影響をより多くの段階に分けて判定してもよい。そして、ＷｄｎｔｓＣＴＡの送信間隔を設定するときも、制御部３０のように、ドライバ設定のままか、ＭＭＣと同じ間隔かの２種類に設定するのではなく、ドライバ設定値Ｋ０からＭＭＣの間隔までの範囲内で、影響の小さい段階ほどＷｄｎｔｓＣＴＡの送信間隔を小さくするように、ＷｄｎｔｓＣＴＡの送信間隔を設定すればよい。
【００５４】
また、本実施の形態は、本発明の技術をＷＵＳＢシステムに適用した例である。ホスト装置がデバイスのデータ伝送をスケジューリングし、デバイスがデータ準備のためにスケジューリング対象から外れ、データ伝送の再開のためにホスト装置に再開要求を出すために、ホスト装置からの、この再開要求を送信可能とする制御情報を受信する必要があるいかなるシステムにも、本発明の技術を適用することができる。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施の形態にかかるＷＵＳＢシステム１００を示す図である。
【図２】図１に示すＷＵＳＢシステムにおけるホスト装置を示す図である。
【図３】図２に示すホスト装置における制御部の処理を示すフローチャートである。
【図４】図２に示すホスト装置におけるスケジューリング部によるスケジューリングの例を示す図である。
【図５】ＷＵＳＢシステムにおけるＷｄｎｔｓＣＴＡの送信間隔を説明するための図である。
【図６】ＷＵＳＢシステムにおけるデータ伝送のスケジューリングを説明するための図である。
【図７】従来のＷＵＳＢシステムにおいてフロー制御のデバイスのデータ伝送再開のタイミングを示す図である。
【符号の説明】
【００５６】
１０  インターフェース
１４  データ送信部
１８  データ受信部
２４  更新制御部
２８  記憶部
３０  制御部
３２  ドライバ設定記憶部
３４  状態判定部
３６  ＷｄｎｔｓＣＴＡ送信間隔決定部
４０  スケジューリング部
５０  ホスト装置
７０  デバイス
８０  デバイス
９０  デバイス
１００  ＷＵＳＢシステム
【図１】
2008136075.tif 000003
【図２】
2008136075.tif 000004
【図３】
2008136075.tif 000005
【図４】
2008136075.tif 000006
【図５】
2008136075.tif 000007
【図６】
2008136075.tif 000008
【図７】
2008136075.tif 000009