(57)【要約】【課題】ホスト装置によりデバイスからホスト装置へのデータ転送の時間帯域を指定するシステムの効率向上を図る。【解決手段】ホスト装置のスケジューリング部は、デバイスがホスト装置へのデータ転送を正常に行うときに必要な最短時間の長さを有する時間帯域をデバイスに対してスケジューリングする。デバイスから転送されてきたデータの受信時にエラーが連続して生じた場合に、該デバイスに対して指定する帯域の長さを一時的に延長する。【選択図】図３
2009278507.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置に接続したデバイスから前記ホスト装置へのデータ転送の時間帯域を指定するスケジューリング部と、
該スケジューリング部が指定した前記時間帯域に前記デバイスから転送されてきたデータを受信する受信部とを備え、
前記スケジューリング部は、前記データ転送を正常に行うときに必要な最短時間を前記時間帯域の長さに指定することを特徴とする前記ホスト装置。
【請求項２】
前記スケジューリング部は、前記受信部による前記デバイスからのデータ受信にエラーが連続的に生じた際に、該デバイスに対して指定する前記時間帯域の長さを一時的に長くすることを特徴とする請求項１に記載のホスト装置。
【請求項３】
前記スケジューリング部は、前記エラーが連続的に生じた回数が所定の閾値（閾値≧２）に達したときに、前記デバイスに対して指定する前記時間帯域の長さを一時的に長くすることを特徴とする請求項２に記載のホスト装置。
【請求項４】
ＷＵＳＢ（ＷｉｒｅＬｅｓｓ  Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格に準拠することを特徴とする請求項１から３のいずれか１項に記載のホスト装置。
【請求項５】
ホスト装置により、該ホストに装置に接続したデバイスから前記ホスト装置へのデータ転送の時間帯域を指定するスケジューリング方法であって、
前記デバイスが前記データ転送を正常に行うときに必要な最短時間を前記時間帯域の長さに指定することを特徴とするスケジューリング方法。
【請求項６】
前記デバイスからのデータ受信にエラーが連続的に生じた際に、該デバイスに対して指定する前記時間帯域の長さを一時的に長くすることを特徴とする請求項５に記載のスケジューリング方法。
【請求項７】
前記エラーが連続的に生じた回数が所定の閾値（閾値≧２）に達したときに、前記デバイスに対して指定する前記時間帯域の長さを一時的に長くすることを特徴とする請求項６に記載のスケジューリング方法。
【請求項８】
前記ホスト装置と前記デバイスは、ＷＵＳＢ（ＷｉｒｅＬｅｓｓ  Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格に準拠することを特徴とする請求項５から７のいずれか１項に記載のスケジューリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスからホスト装置へのデータ転送の時間帯域を指定するスケジューリング技術に関する。
【背景技術】
【０００２】
デバイスによるデータ転送はホスト装置によりスケジューリングされ、デバイスがスケジューリング通りにデータ転送を行う規格がいくつか存在し、これらの規格に準拠したシステムについて、様々な視点からデータ転送の制御手法が提案されている。
【０００３】
例えば、特許文献１には、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ）規格に準拠したシステムにおいて、パケットエラー率に応じてデータ転送のパケットタイプを変更させ、転送効率を向上させる手法が開示されている。
【０００４】
ブルートゥース以外に、パーソナルコンピュータ（以下パソコンという）のインタフェースとして脚光を浴びることが予想されるＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格がある。ＷＵＳＢのネットワークでは、ホスト装置がデータ伝送のタイミングを支配し、ホスト装置からのデータ伝送要求にデバイスが応答することでデータ伝送が行われる構造になっている。
【０００５】
ＷＵＳＢのネットワークの接続形態は、ハブ＆スポーク型であり、中心に位置するホスト装置（たとえばパソコン）に対してデバイスが接続される。ホスト装置とデバイス間の通信は１対１にコネクションが張られるポイント・ツー・ポイント（ＰｎＰ）である。デバイスはたとえばプリンタ、ハードディスク、マウス、デジタルカメラ、ゲーム機、ＰＤＡなどである。
【０００６】
ＷＵＳＢ規格に基づいてホスト装置とデバイスが接続されてなるＷＵＳＢクラスタ（以下単にクラスタともいう）において、ホスト装置は、ＭＭＣ（Ｍｉｃｒｏ−ｓｃｈｅｄｕｌｅｄ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｍｍａｎｄ）を用いてクラスタ（クラスタ内のデバイスを含む）を管理する。
【０００７】
ＭＭＣはホスト装置側において決まったタイミングでホスト装置から発信される。ＭＭＣにはホスト装置の識別情報や次のＭＭＣの発信時刻などが含まれている。
【０００８】
ＷＵＳＢシステムにおいて、クラスタ内のホスト装置とデバイスとのデータ伝送では、ホスト装置が主導権を持っている。ホスト装置とデータ伝送を行う複数のデバイスに対して、ホスト装置はこれらの各デバイスがデータを送受信する時間帯域を割り当てることによってスケジューリングし、スケジューリングした通りにＭＭＣを介してデバイスにデータ伝送要求を行う。
【０００９】
具体的には、ホスト装置は、デバイスに対してデータの送信を要求する場合、ＭＭＣを介してＷｄｔＣＴＡ（ｄｔ：Ｄａｔａ  Ｔｒａｎｓｍｉｔ）を送信する。このＷｄｔＣＴＡには、データの送信が要求されるデバイスの識別情報や、デバイスの送信開始時刻と終了時刻を指定する情報が含まれている。以下、デバイスの送信開始時刻と終了時刻を帯域指定情報という。
【００１０】
データ送信が要求されたデバイスは、帯域指定情報により指定された時間帯域にデータをパケット単位に分割してホスト装置に送信する。
【００１１】
ＷＵＳＢ規格では、ホスト装置がデバイスに対して指定する時間帯域の長さは、データ長さや転送レートなどの要因から決定される。ホスト装置がデバイスに対してデータ送信をスケジューリングする際、パケットに含まれるデータ長と転送レートから算出された、そのパケットの転送に必要十分な帯域を確保する必要がある。
【００１２】
また、デバイスが１パケットに含めることができるデータの最大長はＭａｘＰａｃｋｅｔＳｉｚｅとしてホスト装置より指定される。つまり、デバイスに対して１パケット分の送信を要求する際に指定する時間帯域の長さを算出する際、パケットに含まれるデータ長をＭａｘＰａｃｋｅｔＳｉｚｅとして算出することによって、常に必要十分な帯域が確保されることになる。
【特許文献１】特開２００３−１９９１５２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかし、ＭａｘＰａｃｋｅｔＳｉｚｅに満たないデータ長のパケット（ＳｈｏｒｔＰａｃｋｅｔ）を転送する際にかかる時間は上記ＭａｘＰａｃｋｅｔＳｉｚｅで算出した時間より短い。デバイスに対して常に１パケット分のデータ最大長の時間帯域を指定するのでは、比較的ＳｈｏｒｔＰａｃｋｅｔの転送が多い状況において、時間帯域に無駄が生じ、転送効率低下を引き起こす問題がある。
【課題を解決するための手段】
【００１４】
本発明の一つの態様は、ホスト装置である。このホスト装置は、ホスト装置に接続したデバイスからホスト装置へのデータ転送の時間帯域を指定するスケジューリング部と、該スケジューリング部が指定した時間帯域にデバイスから転送されてきたデータを受信する受信部を備える。スケジューリング部は、デバイスがホスト装置へのデータ転送を正常に行うときに必要な最短時間を時間帯域の長さに指定する。
【００１５】
なお、上記態様の装置を方法やシステム、またはコンピュータを上記態様の装置として動作せしめるプログラムとして置き換えて表現したものも、本発明の態様として有効である。
【発明の効果】
【００１６】
本発明の技術によれば、ホスト装置によりデバイスからホスト装置へのデータ転送の時間帯域を指定するシステムの効率向上を図ることができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明の実施の形態について説明する。なお。以下の説明に用いられる図面に、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、プロセッサ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリに記録された、またはロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００１８】
図１は、本発明の実施の形態にかかるＷＵＳＢシステム１００を示す。ＷＵＳＢシステム１００は、ホスト装置５０と、複数のデバイス（図示の例では３つ：デバイス７０、デバイス８０、デバイス９０）を備える。
【００１９】
デバイス７０、デバイス８０、デバイス９０は、ＷＵＳＢに準拠し、例えばプリンタ、ハードディスク、マウス、デジタルカメラ、ゲーム機、ＰＤＡなどであり、ホスト装置５０と無線接続して使用される。これらのデバイスは、ＷＵＳＢ規格に準拠したハードウェアおよびソフトウェアが実装されており、ＷＵＳＢシステムにおける通常のデバイスであり、ここで詳細な説明を省略する。
【００２０】
ホスト装置５０は、例えばパソコンであり、ＷＵＳＢ規格に準拠する。図２を参照してホスト装置５０を説明する。なお、本発明の主旨を分かりやすくするために、以下において、本発明と関連性のある処理を担う部分についてのみ説明および図示する。
【００２１】
図２に示すように、ホスト装置５０は、ＷＵＳＢ  インタフェース（以下ＷＵＳＢ  Ｉ／Ｆという）１０と、制御部２０を備える。
【００２２】
ＷＵＳＢ  Ｉ／Ｆ１０は、ＷＵＳＢ規格に準拠し、それを介して、ホスト装置５０と書くデバイス間のデータ伝送がなされる。ＷＵＳＢ  Ｉ／Ｆ１０は、各デバイスからホスト装置５０へのデータや接続要求などを受信する受信部１２と、ホスト装置５０から各デバイスへのデータや送信要求（帯域指定情報を含む）などを送信する送信部１４を有する。
【００２３】
制御部２０は、ホスト装置５０と各デバイス間の接続やデータ送受信を制御するものであり、デバイス情報管理部２２と、スケジューリング部２４を備える。なお、図示していないが、ホスト装置５０はドライバが実装されており、このドライバにより、ＭａｘＰａｃｋｅｔＳｉｚｅ、転送データのデータ長、データ転送レート（５３．３ＭＨ〜４８０ＭＨｚ）を指定する。なお、転送データのデータ長については、ドライバはさらに上位のドライバ（クラスドライバ）やアプリケーションソフトウェアなどから要求される。
【００２４】
デバイス情報管理部２２は、接続された各デバイスの識別情報や属性などの情報を管理してスケジューリング部２４に供する。また、デバイス情報管理部２２は、デバイスからの受信にエラーが生じた際に、エラーが連続した回数をカウントする処理も行う。以下、デバイス情報管理部２２によりカウントされた、エラーが連続した回数を「エラーカウント値」という。
【００２５】
スケジューリング部２４は、デバイス情報管理部２２に管理されたデバイス情報（エラーカウント値を含む）を参照してスケジューリングを行う。スケジューリング部２４による処理を詳細に説明する前に、まず、ＷＵＳＢシステムにおいて、ホスト装置によりデバイスに対して指定する時間帯域の長さについて説明する。
【００２６】
ホスト装置が時間帯域の長さを決定する要素は、ＭａｘＰａｃｋｅｔＳｉｚｅ、転送データのデータ長、転送パケット数、データ転送レート（５３．３ＭＨ〜４８０ＭＨｚ）などがある。ＭａｘＰａｃｋｅｔＳｉｚｅとデータ転送レートについて、前述したドライバは、デバイスのサポート範囲や通信環境の状態に基づいて指定する。また、転送データのデータ長については、ドライバはさらに上位のクラスドライバやアプリケーションソフトウェアなどからの要求に従って要求する。このデータ長は、「ＭａｘＰａｃｋｅｔＳｉｚｅの整数倍＋ＳｈｏｒｔＰａｃｋｅｔ」の場合もあれば、ＭａｘＰａｃｋｅｔＳｉｚｅ未満である場合もある。
【００２７】
ドライバから要求されるデータ長さがＭａｘＰａｃｋｅｔＳｉｚｅより大きい場合には、ホスト装置は、ＭａｘＰａｃｋｅｔＳｉｚｅ分のパケットに分割して複数のパケットでデータ転送要求を行う。また、ホスト装置においてスケジューリングする際に、そのときのＭａｘＰａｃｋｅｔＳｉｚｅと、ドライバから要求されたデータ長の残り値などからデバイスに対して指定する時間帯域の長さを計算する。
【００２８】
本実施の形態のＷＵＳＢシステム１００において、スケジューリング部２４は、初期状態時にデバイスに対してＷｄｔＣＴＡを発行して帯域を指定する際に、上記各要素に基づいて、当該デバイスがホスト装置へのデータ転送を正常に行う場合の最短時間を帯域の長さに決定する。その後のスケジューリングに際して、上記各要素に加え、デバイスのエラーカウント値に基づいて該デバイスに指定する帯域の長さを決定する。
【００２９】
図３は、ホスト装置５０が行うスケジューリングに関する処理を示すフローチャートである。デバイスが接続した直後、デバイス情報管理部２２は、該デバイスの受信エラーカウント値Ｋを０に設定する（Ｓ１０）。スケジューリング部２４は、帯域指定情報（ＷｄｔＣＴＡに含まれる）を作成する際に、デバイス情報管理部２２に管理されたと該デバイスの受信エラーカウント値Ｋを参照し、受信エラーカウント値Ｋが所定の閾値（たとえば３）以下である場合には、上述した最短時間（以下の説明および図示においてＴ０で表示する）を算出して、帯域指定情報に含まれる、該デバイスに対して指定する時間帯域の長さを最短時間Ｔ０に設定する（Ｓ２０：Ｎｏ、Ｓ３０）。一方、受信エラーカウント値Ｋが所定の閾値を超えた場合には、スケジューリング部２４は、該デバイスに対して指定する時間帯域の長さを上記最短時間Ｔ０より長いＴ１に設定する（Ｓ２０：Ｙｅｓ、Ｓ４０）。以下、長さＴ１を延長時間という。
【００３０】
スケジューリング部２４は、ステップＳ３０またはＳ４０で設定した長さを有する時間帯域を示す帯域指定情報が含まれたＷｄｔＣＴＡを、送信部１４を介してデバイスに送信する（Ｓ５０）。その後、受信部１２は、ステップＳ５０で送信したＷｄｔＣＴＡに含まれる帯域指定情報が示す帯域にデバイスから転送されてきたデータを受信する（Ｓ６０）。
【００３１】
デバイス情報管理部２２は、ステップＳ６０における受信にエラーが生じたか否かを確認し、正常に受信できたならば、該デバイスの受信エラーカウント値Ｋを０にリセットする（Ｓ７０：Ｎｏ、Ｓ１０）。一方、ステップＳ６０における受信にエラーが生じたならば、デバイス情報管理部２２は、該デバイスの受信エラーカウント値Ｋを「１」インクリメントする（Ｓ７０：Ｙｅｓ、Ｓ８０）。
その後、ステップＳ２０からの処理が繰り返される。
【００３２】
すなわち、本実施の形態のＷＵＳＢシステム１００において、ホスト装置５０のスケジューリング部２４は、デバイスから転送されてきたデータの受信にエラーが連続して発生した回数が所定の閾値以下であるときに、該デバイスに対して指定する時間帯域の長さを、該デバイスがデータ転送を正常に行うときに必要な最短時間Ｔ０に設定している。また、デバイスから転送されてきたデータの受信にエラーが連続して発生した回数が上記閾値を超えたときに、該デバイスに対して指定する時間帯域の長さを最短時間Ｔ０から延長時間Ｔ１に一時的に延長する。
【００３３】
ここで、ホスト装置５０によるこのようなスケジューリング処理の意義を具体的に説明する。以下の説明および図示において、１パケットのデータ長をそのときのＭａｘＰａｃｋｅｔＳｉｚｅ）として計算した場合の時間帯域の長さを「最大長」という。なお、この最大長および最短時間Ｔ０が、常に一定ではないが、分かりやすいように、最大長と最短時間Ｔ０を一定にして図示する。
【００３４】
図４は、ホスト装置が常に時間帯域の長さを最大長に指定する場合の、ホスト装置が指定する帯域と、デバイスからホスト装置へのデータ転送にかかる時間との関係例を示す。
【００３５】
図４に示すように、ホスト装置からのＷｄｔＣＴＡに応じて、当該デバイスは、ＷｄｔＣＴＡに含まれる開始時刻ｔ０において、ホスト装置へのデータ転送を開始する。図示の例では、このデータのパケットサイズがＭａｘＰａｃｋｅｔＳｉｚｅより小さいＳｈｏｒｔＰａｃｋｅｔであり、デバイスがデータ転送を正常に行う場合に必要な時間は最大長より短いＴ０である。そのため、ＷｄｔＣＴＡにより指定される終了時刻ｔ１（ｔ１−ｔ０＝最大長）より前にデータ転送を終了する。ホスト装置によるＷｄｔＣＴＡの発行と、デバイスによるデータ転送が繰り返される。例えば、時間帯域が開始時刻ｔ２から終了時刻ｔ３（ｔ３−ｔ２＝最大長）に指定されたＷｄｔＣＴＡに応じて、デバイスは、開始時刻ｔ２においてホスト装置へのデータ転送を開始する。図示の例では、ここでも、転送データのパケットサイズがＭａｘＰａｃｋｅｔＳｉｚｅより小さいＳｈｏｒｔＰａｃｋｅｔであり、デバイスは、終了時刻ｔ３より前にデータ転送を終了する。
【００３６】
通常、デバイス自身またはシステムに故障が生じない限り、デバイスからホストへのデータ転送に必要な時間が上記最短時間Ｔ０で足りる。そのため、図４に示すように、デバイスに対して指定する帯域の長さを常に最大長にするのでは、ＳｈｏｒｔＰａｃｋｅｔの転送が多い状況において、時間帯域に無駄が生じ、転送効率の低下を引き起こしてしまう。
【００３７】
図５は、本実施の形態において、ホスト装置５０が指定する帯域の長さと、デバイスからホスト装置５０へのデータ転送にかかる時間との関係例を示す。
【００３８】
帯域「ｔ０〜ｔ１」、「ｔ２〜ｔ３」は、デバイスからデータを正常に受信した場合、または受信エラーが生じたものに、受信エラーの連続発生回数が所定の閾値以下である場合にホスト装置５０が当該デバイスに対して指定した帯域である。図示のように、これらの場合、ホスト装置５０が指定した帯域の長さと、デバイスがデータ転送を正常に行う場合必要な最短時間Ｔ０と同一である。そのため、ホスト装置５０が指定した帯域の終了時刻にデバイスのデータ転送が終了する。これにより、図４に示すような帯域の無駄が発生せず、システムの効率は向上する。
【００３９】
ところで、上述した故障などの影響で、上記最短時間Ｔ０に対応するパケットのデータ長（以下期待長という）と、デバイスが送信を試みるパケットのデータ長は、必ずしも一致するとは限らない。例えば、図５に示すように、ホスト装置５０からのＷｄｔＣＴＡの発行と、デバイスからのデータ転送が続き、帯域「ｔ４〜ｔ５」が指定されたＷｄｔＣＴＡに応じて、デバイスが開始時刻ｔ４からホスト装置５０へのデータ転送を開始する。このとき、デバイスがデータ転送を完了するために必要な時間Ｔｅが最短時間Ｔ０より大きい。そのため、指定された帯域内にデバイスによるデータ転送が完了できず、ホスト装置５０側において受信エラーが発生する。
【００４０】
受信エラーが一時的な外乱によるものである場合は、デバイスは、その後のＷｄｔＣＴＡを受信して再度データを転送することにより、最短時間Ｔ０でデータ転送を正常にできる可能性が高い。
【００４１】
しかし、デバイス自身またはシステムの故障によってＴｅがＴ０より大きい場合、すなわちデバイスが送信を試みるパケットのデータ長がホスト装置の期待長より長いパケットである場合、ホスト装置５０はシステムに異常が発生していることを、ドライバに通知する必要がある。当該パケットが単なる一時的な外乱によるエラーなのか期待長以上のデータを含むパケットであるのかを判定するために、ホスト装置５０はこのパケットを正常に受信する必要がある。ホスト装置５０が期待長に対応した時間帯域を指定し続けるのでは、時間帯域が足りず、デバイスが正常にデータ転送できない状態が続き、ホスト装置５０側で受信エラーが連続して発生する。これにより上記の判定ができない。
【００４２】
そこで、本実施の形態のＷＵＳＢシステム１００におけるホスト装置５０は、受信エラーが連続して発生した回数をカウントし、カウント値が所定の閾値を超えたときに、帯域指定情報により指定される帯域の長さを最短時間Ｔ０より長い延長時間Ｔ１に設定する。図５に示すように、帯域「ｔ４〜ｔ５」において受信エラーが発生し、その後も受信エラーが続いたため、ホスト装置５０は、当該デバイスに対して指定する帯域の長さをＴ１（Ｔ１＝ｔ７−ｔ６）に設定している。これにより、デバイスは、必要な転送時間がＴｅであるエラーパケットをホスト装置５０に送信することができ、ホスト装置５０は、それを受信してエラー判定ができる。そのため、故障によるエラーパケットの転送が繰り返されることを避けることができ、システムの効率は向上する。
【００４３】
また、一度の受信エラーで直ちに帯域の長さを変更するのではなく、２以上の値である閾値を設け、受信エラーが連続して発生した回数がこの閾値を超えたときに帯域の長さを変更するようにしている。これにより、一時的な外乱時に帯域を長くすることに生じる無駄を省くことができ、システムの効率を一層向上させることができる。
【００４４】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、さまざまな変更、増減を加えてもよい。これらの変更、増減が加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
【００４５】
例えば、上述した説明において、ホスト装置５０による帯域の長さの変更はＴ０からＴ１への一度である。例えば、１回目の変更時に、Ｔ０より長い帯域に変更し、その後も、受信エラーが連続して発生すれば、さらに帯域を長くするように段階的に変更するようにしてもよい。
【００４６】
また、変更後の帯域の長さＴ１は、最大長以下であり、かつ最短時間Ｔ０より長ければ、いかなる値を用いても本発明の効果を得ることができる。
【００４７】
また、本実施の形態は、本発明にかかる技術をＷＵＳＢシステムに適用した例である。デバイスからホスト装置へのデータ転送の時間帯域がホスト装置により指定されるいかなるシステムにも、本発明の技術を適用することができる。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施の形態にかかるＷＵＳＢシステムを示す図である。
【図２】図１に示すＷＵＳＢシステムにおけるホスト装置を示す図である。
【図３】図２に示すホスト装置によるスケジューリング関連の処理を示すフローチャートである。
【図４】帯域の長さを最大長にした場合の問題点を説明するための図である。
【図５】図２に示すホスト装置が指定する帯域の長さと、デバイスからホスト装置へのデータ転送にかかる時間との関係例を示す図である。
【符号の説明】
【００４９】
１０  ＷＵＳＢ  インタフェース
１２  受信部
１４  送信部
２０  制御部
２２  デバイス情報管理部
２４  スケジューリング部
５０  ホスト装置
７０  デバイス
８０  デバイス
９０  デバイス
１００  ＷＵＳＢシステム
【図１】
2009278507.tif 000003
【図２】
2009278507.tif 000004
【図３】
2009278507.tif 000005
【図４】
2009278507.tif 000006
【図５】
2009278507.tif 000007