JP2006216015A - 無線usbハードウェアのスケジューリング - Google Patents

無線usbハードウェアのスケジューリング Download PDF

Info

Publication number
JP2006216015A
JP2006216015A JP2005351236A JP2005351236A JP2006216015A JP 2006216015 A JP2006216015 A JP 2006216015A JP 2005351236 A JP2005351236 A JP 2005351236A JP 2005351236 A JP2005351236 A JP 2005351236A JP 2006216015 A JP2006216015 A JP 2006216015A
Authority
JP
Japan
Prior art keywords
data transfer
transfer
threshold
queue head
data
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.)
Granted
Application number
JP2005351236A
Other languages
English (en)
Other versions
JP4878475B2 (ja
Inventor
Firdosh Bhesania
ベーサニア ファードッシュ
T Slick Glen
ティー.スリック グレン
Randall E Aull
イー.オール ランダール
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006216015A publication Critical patent/JP2006216015A/ja
Application granted granted Critical
Publication of JP4878475B2 publication Critical patent/JP4878475B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S370/00Multiplex communications
    • Y10S370/912Packet communications
    • Y10S370/913Wireless or radio

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)

Abstract

【課題】有線USBと無線USBとの間の多くの相違点を考慮して、無線USBにおける比較的重大なエラー率を補償するメカニズムを提供すること。
【解決手段】UWBを介する無線USBデータ転送において、ソフトウェアは、不良な接続よりも良好な接続に帯域幅を使用する形でデータ転送を制御するようにハードウェア閾値を構成する。失敗が発生すると、ハードウェアは、スケジュール内で休止されるまでに所与のエンドポイントが許容できるエラー数を指定するソフトウェア構成可能閾値を有するメカニズムを含む。再度失敗する可能性が高い転送試行を休止することによって、エラーを経験するエンドポイントよりも転送が成功するエンドポイントの方が選択される。保留中のアクティブな転送の数が、閾値を超えるとソフトウェアは閾値を再構成し、バッファ内にデータを転送させるために他の転送を非アクティブ化することができる。
【選択図】図2

Description

本発明は、一般に、無線通信を介したコンピュータシステムと周辺装置との間でのデータ通信に関する。
現代のほぼすべてのコンピュータシステムは、コンピュータシステムとマウス、プリンタ、デジタルカメラなどの外部周辺装置との間のシリアル通信用の外部周辺インターフェース規格である、USB(Universal Serial Bus)を使用するように構成される。USBを使用する場合、各周辺装置は、コンピュータシステム上の標準化されたUSBポートにプラグインされたケーブルを介して接続される。
USBケーブルをコンピュータシステムおよび外部周辺装置に接続する必要をなくす目的で、超広帯域(UWB)技術に基づく無線USB(またはWUSB)が標準化されつつある。無線USBは、たとえば10mまでの距離にわたる480MbpsなどのUSB2.0標準に匹敵する通信速度を有する方向に向かっている。
しかしながら、伝送エラーが極端に少ない有線USBとは異なり、重大なパケットエラー率(たとえば、約10パーセント)が存在し、UWB伝送には、何らかの方法で補償しなければユーザにとって無線USBが有線USBに比べて著しく劣るものになる。一般に失敗したパケットの再試行に基づく、パケットエラー率が高いことによって生じる問題は、それぞれが異なる伝送関連要件を備えた、非同期式(コントロールおよびバルクデータ)通信および周期的(割り込みおよび等時性(isochronous))通信を含む、異なる種類のUSB通信が存在するため複雑になる。無線USBでは、装置がUWBを介して通信することにより、いかなる時にも、1つの装置への接続はパケットエラーが非常に少ない一方で、他の装置への接続はパケットエラーが多い可能性がある。
有線USBと無線USBとの間の多くの相違点に鑑みて、無線USBにおける比較的重大なエラー率を補償するメカニズムが求められている。こうしたメカニズムは、ソフトウェアが所与の環境で必要に応じてこのメカニズムを制御できるように、十分にフレキシブルでなければならない。
簡潔に言えば本発明は、失敗した転送が再試行されるように制御するものであって、コンピュータシステム上でハードウェアおよびソフトウェアが協働してUSB無線データ転送をスケジューリングする際に使用する、システムおよび方法を対象とする。無線USB転送が受信側でバッファリングされるため、再試行が成功すると、バッファの適切な位置に挿入すべき欠落データが供給される。失敗した転送を再試行するよう制御することにより、通常の動作では、帯域幅は、失敗する確率が最も高い接続上での再試行に無駄に使われることはなく、代わりに成功する確率が最も高い接続において用いられる。しかしながら、受信側装置の低バッファ状態などの危機的状況では、制御ソフトウェアが設定可能なスケジューリングパラメータを変更して、対応する接続によってデータを転送させるようにすることができる。
本発明の無線USBデータ転送メカニズムによって、割り込み転送、等時性転送、コントロール転送、およびバルク転送を含む4つの異なる種類の(エンドポイントに対応する)データ転送がサポートされる。割り込み転送および等時性転送は、断続的な進行を介して現時間スロットとなる時間スロットでの転送としてスケジューリングされるという点で、周期的な転送である。コントロール転送およびバルク転送は非同期式であり、現時間スロットでいずれかの周期的転送後に時間が残っている場合に試行される。無線USBを用いたコンピューティング体験を許容されうるものとするためには、データ転送におけるエラー率が高いことから、送達が保証されない等時性転送の場合であっても再試行が実行されることを必要とする。
様々なデータ転送をスケジューリングするために、本発明はハードウェアにおける無線USBコンポーネントと、ソフトウェアにおける無線USBコントローラドライバとを備える。無線USBハードウェアは、関連するパケットが成功裏に受信されたか否かに基づき、エンドポイントに対応するキューヘッド(queue head)データ構造内の情報を操作するスケジューリングプロセスを含む。ハードウェアスケジューリングプロセスは、エラーの数を指定するソフトウェア構成可能閾値を有するメカニズムを含む。指定されるエラーの数は、(エンドポイントに対応する)所与のキューヘッドが、他のキューヘッドに関連付けられたパケットが転送可能なようなスケジュールにおいて、その所与のキューヘッドが休止されるまでの時間枠中に許容可能な数である。スケジューリングプロセスは、一時的なエラー状態によって失敗する確率が高いデータ転送において帯域幅が無駄に使用されるのを避けるようにソフトウェア制御することによって、失敗した転送の再試行を処理する。ソフトウェアコントローラドライバは、データ構造内で他の情報(たとえば閾値)も構成する。
周期的スケジュールデータ構造は、各エントリが周期的時間スロットに対応し、ゼロまたはそれ以上の周期的スケジュールエントリ(PSE)のリストを指すポインタを含む、エントリの循環バッファ(circular buffer)を備える。周期的スケジュールエントリは、その時間スロット枠中にアクティブにならなければならない(したがって可能であれば転送されなければならない)データ転送を表す。このため、周期的スケジュールエントリは、キューヘッドまたはキューヘッドに関連付けられた転送記述子を指し、このキューヘッドは、転送が実行されている装置上のエンドポイントに対応する。各キューヘッドは、それら各々に対応するエンドポイントに対する任意の保留転送を含む、転送の状態に関する情報を含む。各転送記述子は、転送に関与する実際のデータ、転送バッファの長さ、実際に転送されるバイト数などを、格納し、または取り出すためのアドレスなどの、特定の転送に関する詳細を提供する。各転送記述子は、「アクティブ」または「非アクティブ」の状態値、ならびに転送がオンであるかオフであるかを指定するソフトウェア書き込み可能値も含む。
スケジューリングプロセスで等時性周期的スケジュールエントリに遭遇すると、対応する転送記述子がその「アクティブ」状態に移り、データが可能な限り早急に転送される準備が整っている旨を通知する。スケジュール内で割り込み周期的スケジュールエントリに遭遇すると、対応するキューヘッドが「アクティブ」状態に移り、スケジュールがパケット転送を実行すべきである旨を通知する。コントロール転送およびバルク転送は、非同期式であり、所与の時間スロット内に残った時間を使用して周期的転送後に実行される。
ソフトウェアは、キューヘッドを休止するタイミングを決定するエラーカウント閾値を含む様々な閾値のパラメータへの書き込みによって、ハードウェア動作を制御する。より具体的に言えば、この閾値で初期設定され、かつエラーごとに減分されるキューヘッド内のエラーカウンタが1からゼロに遷移すると、時間スロットの残りに対してその特定のキューヘッドは休止される(もはや再試行されない)。休止することにより、閾値エラーレベルに合致し、かつ再度失敗する可能性のある接続を介して転送を再試行するのではなく、時間スロット内で他のキューヘッドのパケットを転送することができる。休止されたキューヘッドは、次の時間スロットが開始するとき、あるいは、成功、休止、または中止によって現時間スロット内に他のエンドポイント(キューヘッドのパケット)がなくなった後、普通であれば未使用となる(使用可能な帯域幅に対応する)時間が時間スロット内に依然として残っているときのいずれかに、その休止状態から出る。失敗した転送に応答してキューヘッドを休止することにより、成功裏にパケットを転送することのできないエンドポイントよりも、成功裏にパケットを転送することのできるエンドポイントをスケジュールに選ばせることができる。
他の閾値のパラメータは、キューヘッドを中止すべきとされる前の連続エラーの数を指定する。次の時間スロットで、または現時間スロット内に未使用の帯域幅が残っている場合、リセットされる休止状態とは異なり、中止されたキューヘッドは中止状態から出るためにソフトウェアの介入を必要とする。
Isoch通知閾値パラメータは、成功裏に転送されないせいでキューヘッドに関連付けられたアクティブな転送記述子が多すぎる場合、これは本来、対応する受信側装置での低バッファ状態に対応するものだが、通知をソフトウェアに送信させるために無線USBソフトウェアコントローラによって設定される。この数が閾値に達すると、ハードウェアは、割り込みによって無線USBソフトウェアコントローラドライバに通知する。その後ソフトウェアは、危機的に低いバッファに対し強制的にデータを入れるように閾値を調整することができる。またキューヘッドをオフまたはオンにするために、ソフトウェアによって「使用可能」パラメータ値を設定することも可能であり、オフ状態の場合、そのキューヘッドに対しては転送が実行されず、それによってデータを必要としている1つまたは複数のエンドポイントにデータ転送を集中させることができる。
スケジューリングプロセスは、現時間スロットが、前のスケジューリング期間に続く次の時間スロットに進んだ場合に再開される。スケジュールサイクルの第1段階には、スケジュール状態のリセット、ならびに、適切な非アクティブキューヘッドおよび転送記述子のアクティブ化を含む、その時間スロットに対する周期的転送の必要性の決定が含まれる。この段階では、期間ごとの初期化も発生し、任意のキューヘッドに関するIsoch通知閾値に達した場合、通知が送信される。
スケジュールサイクルの第2段階は、周期的(等時性および割り込み)転送の実行、および結果の分析を対象とする。一般にハードウェアは、現在アクティブな周期的キューヘッドを探索し、そのキューヘッドの対応する転送記述子に対するパケット転送の実行を開始する。成功した転送は、アクティブな転送記述子がなくなるまで完了するとマーク付けされ、その時点でキューヘッドは非アクティブ化される。失敗すると、結果としてエラーカウントは減分され、それによってそれぞれの値が1からゼロに遷移するとその後の転送試行は中止または休止される。試行されたそれぞれの周期的転送が分析され、試行される転送が残っていない場合、すなわち周期的転送が完了、休止、または中止した場合、プロセスは戻る。
転送するアクティブな周期的キューヘッドがないと、スケジュールは、非同期式(コントロールおよびバルク)キューヘッドの転送を対象とする第3段階を実行する。同様に非同期式転送は、非同期式キューヘッド内のエラーカウンタに基づいて完了、休止、または中止されるまで試行される。現時間スロットに時間が残っている場合、第2および第3の段階が繰り返される。
以上から分かるように、周期的転送が第1に試行されるが、再度失敗する確率の高い転送の試行を繰り返すことによって使用可能帯域幅を無駄に使用することがないように、閾値の回数だけ失敗したキューヘッドは休止(または中止)される。その代わりに、残りの時間は非同期式転送の試行に使用され、これも失敗した場合には同様に休止(または中止)される。このように本発明は、ある時間スロットの中で周期的転送の試行と非同期式障害試行とを必要に応じて、ただし制御された形で交互に繰り返すことができる。
他の利点は、図面と共に以下の詳細な説明を読めば明らかとなろう。
(例示的オペレーティング環境)
図1は、本発明が実施可能な好適なコンピューティングシステム環境100の一例を示す。コンピューティングシステム環境100は好適なコンピューティング環境の一例に過ぎず、本発明の用途または機能性の範囲に関していかなる制限をも示唆することを意図するものではない。さらにコンピューティング環境100は、例示的なオペレーティング環境100に示されたコンポーネントのいずれか1つまたはそれらの組み合わせに関して、いかなる依存関係または要件をも有するものと解釈されるべきでない。
本発明は、多数の他の汎用または特定用途向けのコンピューティングシステム環境または構成で動作可能である。本発明と共に使用するのに好適な可能性のある良く知られたコンピューティングシステム、環境、および/または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、タブレット装置、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能大衆消費電子製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システムまたは装置のいずれかを含む分散型コンピューティング環境、などが含まれるが、これらに限定されるものではない。
本発明について、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで説明することができる。一般にプログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データ型をインプリメントする、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、などを含む。本発明は、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実行される分散型コンピューティング環境で実施することもできる。分散型コンピューティング環境では、プログラムモジュールは、メモリストレージ装置を含むローカルおよび/またはリモートのコンピュータストレージ媒体内に配置することができる。
図1を参照すると、本発明をインプリメントするための例示的システムには、コンピュータ110の形の汎用コンピューティング装置が含まれる。コンピュータ110のコンポーネントは、処理装置120、システムメモリ130、および、システムメモリを含む様々なシステムコンポーネントを処理装置120に結合するシステムバス121を含むことができるが、これらに限定されるものではない。システムバス121は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのうちのいずれかを使用するローカルバスを含む、いくつかの種類のバス構造のうちのいずれかとすることができる。例を挙げると、こうしたアーキテクチャはISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(拡張ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびメザニンバスとも呼ばれるPCI(Peripheral Component Interconnect)バスを含むが、これらに限定されるものではない。
コンピュータ110は、通常、様々なコンピュータ読み取り可能媒体を含む。コンピュータ読み取り可能媒体は、コンピュータ110によってアクセス可能であり、揮発性および不揮発性媒体ならびに取り外し可能および固定の媒体の両方を含む、任意の使用可能媒体とすることができる。例を挙げると、コンピュータ読み取り可能媒体はコンピュータストレージ媒体および通信媒体を含むことができるが、これらに限定されるものではない。コンピュータストレージ媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するための任意の方法または技術でインプリメントされた、揮発性および不揮発性、取り外し可能および固定の媒体を含む。コンピュータストレージ媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージ装置、あるいは所望の情報を格納するために使用可能でありコンピュータ110によってアクセス可能な任意の他の媒体を含むが、これらに限定されるものではない。通信媒体は、通常、搬送波などの変調データ信号または他の移送メカニズムにおいて、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、または他のデータを具体化し、任意の情報送達媒体を含む。「変調データ信号」という用語は、その特徴のうちの1つまたは複数を、信号内の情報を符号化するような様式で設定または変更した信号を意味する。例を挙げると、通信媒体は、有線ネットワークまたはダイレクトワイヤード接続などの有線媒体と、音波、RF、赤外線、および他の無線媒体などの無線媒体とを含むが、これらに限定されるものではない。上記のもののいずれかの組み合わせも、コンピュータ読み取り可能媒体の範囲内に含まれるべきである。
システムメモリ130は、読み取り専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132などの、揮発性および/または不揮発性メモリの形のコンピュータストレージ媒体を含む。起動時などにコンピュータ110内の要素間での情報転送を助ける基本ルーチンを含む、基本入力/出力システム133(BIOS)は、通常、ROM131内に格納される。RAM132は通常、処理装置120が即時にアクセス可能である、および/または処理装置120によって現在動作中である、データおよび/またはプログラムモジュールを含む。例を挙げると、図1にはオペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137が示されるが、これらに限定されるものではない。
コンピュータ110は、他の取り外し可能/固定の、揮発性/不揮発性コンピュータストレージ媒体を含むこともできる。単なる例を挙げると、図1には、固定の、不揮発性磁気媒体からの読み取りまたはこれへの書き込みを行うハードディスクドライブ141と、取り外し可能、不揮発性の磁気ディスク152からの読み取りまたはこれへの書き込みを行う磁気ディスクドライブ151と、CD−ROMまたは他の光媒体などの取り外し可能、不揮発性の光ディスク156からの読み取りまたはこれへの書き込みを行う光ディスクドライブ155と、が示されている。例示的なオペレーティング環境で使用可能な他の取り外し可能/固定の、揮発性/不揮発性コンピュータストレージ媒体には、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROM、などが含まれるが、これらに限定されるものではない。ハードディスクドライブ141は、通常、インターフェース140などの固定のメモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は、通常、インターフェース150などの取り外し可能メモリインターフェースによってシステムバス121に接続される。
上記で説明し図1に示したドライブおよびそれらの関連するコンピュータストレージ媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、およびコンピュータ110に関する他のデータのストレージを提供する。たとえば図1では、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を格納しているものとして示される。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じであるか、またはこれらと異なるかの、いずれであってもよいことに留意されたい。本明細書では、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147が少なくとも異なるコピーであることを示すために、異なる番号が与えられている。ユーザは、タブレットまたは電子デジタイザ164、マイクロフォン163、キーボード162、および、一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス161などの、入力装置を介して、コンピュータ110にコマンドおよび情報を入力することができる。図1に示されていない他の入力装置には、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、スキャナ、などが含まれる。これらおよび他の入力装置は、多くの場合、システムバスに結合されたユーザ入力インターフェース160を介して処理装置120に接続されるが、パラレルポート、ゲームポート、またはUSB(ユニバーサルシリアルバス)などの、他のインターフェースおよびバス構造によって接続することも可能である。モニタ191または他の種類のディスプレイ装置も、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。モニタ191は、タッチスクリーンパネルなどと一体型とすることもできる。タブレットタイプのパーソナルコンピュータなどでは、モニタおよび/またはタッチスクリーンパネルを、コンピューティング装置110が組み込まれたハウジングに物理的に結合できることに留意されたい。さらに、コンピューティング装置110などのコンピュータは、出力周辺インターフェース194などを介して接続可能な、スピーカ195およびプリンタ196などの他の周辺出力装置も含むことができる。
コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク化環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置、または他の共通ネットワークノードとすることが可能であり、通常は、コンピュータ110に関して上記で説明した要素のうちの多くまたはすべてを含むが、図1にはメモリストレージ装置181のみが図示されている。図1に示された論理接続は、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173を含むが、他のネットワークを含むこともできる。こうしたネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットで広く普及している。
LANネットワーキング環境で使用される場合、コンピュータ110はネットワークインターフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用される場合、コンピュータ110は通常、インターネットなどのWAN173を介して通信を確立するためのモデム172または他の手段を含む。モデム172は内蔵型または外付けとすることが可能であり、ユーザ入力インターフェース160または他の適切なメカニズムを介してシステムバス121に接続することができる。ネットワーク化環境では、コンピュータ110に関して示したプログラムモジュールまたはその一部を、リモートメモリストレージ装置に格納することができる。例を挙げると、図1にはリモートアプリケーションプログラム185がメモリ装置181上に常駐しているように示されるが、これに限定されるものではない。図示されたネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段が使用可能であることを理解されよう。
(無線USBハードウェアスケジューリング)
本発明は、一般に、成功裏に転送されない無線USBデータ構造が、最も失敗する確率が高い接続での再試行に帯域幅が無駄に使用されるのではなく、成功する確率が高い接続に使用されるように制御されて転送を再試行されるシステムおよび方法を対象とする。このため、ハードウェアが、ソフトウェア構成可能パラメータを使用して、通常は転送エラーを発生させる条件、すなわち一時的なエラー条件の種類を考慮の上、転送のスケジューリングを知的に管理する。さらに以上のことから理解されるように、本発明を実施するための多数の方法が実現可能であり、本明細書に記載されているのは代替の実施形態のうちの一部のみである。たとえば主として本発明について、性能を最適化するためにスケジューリングハードウェアの動作を制御するソフトウェアによって提供される閾値および初期設定値に基づくデータ構造のマーク付け、ならびにそれらの内部カウンタの維持および評価によって動作する、ハードウェア実行スケジュールを参照しながら、以下で説明する。次いで、他のハードウェアは、アクティブとしてマーク付けされたデータ構造を取り、超広帯域無線を使用して対応するデータを伝送する。にもかかわらず、他の種類の伝送メカニズムが実現可能であり、実際、本発明は、転送レートが大幅に上がることによりエラーカウントが高くなる可能性のある将来のバージョンのUSBなどの有線技術においても使用可能である。したがって本発明は、本明細書で示すいかなる特定の例にも限定されるものではなく、むしろ、一般のコンピューティングにおいて便益および利点を提供する様々な形で使用可能である。
さらに、主として本発明について、無線USBデータの伝送先である1つまたは複数の周辺装置を有するホストコンピュータシステムを参照しながら説明するが、他の種類の装置がホストを備える場合があることを理解されよう。たとえば、オーディオおよび/またはビデオUSBプレーヤなどは、受信側ホストのテレビジョンセットまたはオーディオプレーヤなどにパケットを送信することができる。
図2は、ホストコンピュータ上で動作するソフトウェア202が、ドライバ/インターフェース204を介してハードウェア/ファームウェア(以下、簡単にするために略してハードウェアと言う)206と通信する、アーキテクチャ200の例を示す。たとえばソフトウェア202は、図1のコンピュータシステム120上で動作するオペレーティングシステムコンポーネントなどとすることが可能であり、ハードウェア206は、メインコンピュータシステム120にプラグインされるPCIベースカード上などに構築することが可能である。容易に理解されるように、コンピュータシステムに無線USBを構築するなどの他の代替実施形態も等価である。
一般にハードウェア206は、たとえばそれぞれ周辺装置214および215のトランシーバ212および213などの、1つまたは複数の相手方無線トランシーバと通信するように配置構成された無線トランシーバ210などを含む。図2では2つの周辺装置214および215のみが示されているが、コンピュータシステムの無線210と通信する任意の実用的な数の無線周辺装置が存在可能であることを理解されよう。ホストは、有線USB接続(図示せず)を有することもできる。
簡潔にするために本明細書では詳細に説明しないが、図2に、ホストコンピュータ上の異なるProtocol Adaptation Layers(PAL、たとえばWUSB、アドホックネットワーキングなど)間で共有される無線リソースを管理するために使用されるハードウェア/ソフトウェアインターフェースを備える、UWB無線管理コンポーネント220を示す。UWB MAC(媒体アクセス制御)およびPHY(物理)レイヤ221は、データ転送プロセス、すなわちデータを送信し、どのデータが成功裏に受信されたかに関するステータス情報の取得、ならびに周辺装置からデータが成功裏に受信された場合にステータス情報の戻しの責務を負っているものとみなすことができることを理解されよう。これらのレイヤ221は、データパケットの通信を管理し、一般に超広帯域技術で知られる並列オペレーションで、周辺装置214および215と交換したステータスなどを戻す。本発明は一般に、戻されたステータス情報に基づき、成功裏に転送されなかったデータ構造の制御された再試行を実行することを含む、転送用のデータのスケジューリングを対象とすることを理解されよう。
データ転送をスケジューリングするために、本発明は、ハードウェア内の無線USBコンポーネント222と、ソフトウェア内の無線USBコントローラドライバ224とを備える。以下で説明するように、無線USBコンポーネント222は、周辺装置214および215によって戻された対応するステータス情報230(または戻されたはずのステータス情報がないこと)に基づいて、様々な型のデータ構造228内の情報を操作するスケジューリングプロセス226を含む。さらに以下で説明するように、ソフトウェア無線USBコントローラ224は、スケジューリングプロセスが、失敗する確率が高いデータ転送で帯域幅を無駄に使用することを避けるようにソフトウェア制御を行って失敗した転送の再試行を処理するように、データ構造内の情報の一部を構成する。
より具体的に言えば、前述のようにUWBの性質上、UWBには、他との相違点の中でも何らかの方法で補償する必要のある、非常に高いパケットエラー率が存在するため、無線USB転送のスケジューリングを有線USBと同一にすることはできず、本発明の一実施形態では、これがハードウェアおよびソフトウェアの設計によって実行される。このハードウェアおよびソフトウェアの設計は、一般に、通常見られるUWB通信での動作、すなわち、2つのノード間でパケット転送が失敗した場合、同じノード間での次のパケット転送も失敗する確率が高いことに基づく。反対にパケット転送が成功した場合、同じノード間での次のパケット転送も成功する確率が高い。したがって経時的に見ると、所与の接続上でのパケットの失敗は、時間の経過と共に平均的に分散されるのではなく、一般に一群のスパイクで(in bunched−up spikes)発生する。したがって、こうしたエラー状況の状態は一時的であり、通常は時間の経過と共に解決する。
これらの観察に基づき、本発明は、最も失敗する確率の高い再試行で帯域幅を無駄に使うのを防ぐソフトウェアによって構成可能な再試行メカニズムを提供する。本発明は通常、全体のスループットを最大にするため、転送を成功させようとするが、必要に応じて危機的な要求を満たすために通常のオペレーティング動作を変更するように、ソフトウェアの再構成を可能にするメカニズムを提供する。
USB技術で一般に知られるように、エンドポイントに対応する様々な型のデータ転送オペレーションが存在する。現在の有線USB標準は、コントロール転送、バルク転送、割り込み転送、および等時性転送という、4つの転送/エンドポイント型を定義している。コントロール転送は、通常、コマンドおよびステータスオペレーションに使用され、非同期式であり送達が保証される。バルク転送も非同期式であり、通常は急激に増えた大量のデータに対して使用され、送達も保証されるが、待ち時間または帯域幅に関してはいかなる保証もない。こうした非同期式転送は、転送時間スロット内で、その時間スロットに関する他の(周期的)トランザクション後に発生するため、時間に依存した転送には使用されない。
割り込み転送は、装置開始転送とすることが可能であり、限界のある待ち時間を必要とする。割り込み転送は、周期的に繰り返す時間スロット中に発生するポーリングを使用して、ポーリングされるまで装置によってキューに入れられる。ホスト開始割り込み通信も、周期的時間スロットに基づいて送られる。割り込み転送は、送達が保証される。
等時性転送は周期的であり(時間スロットごとにスケジュールされる)、通常は、ビデオおよびオーディオストリーミングなどの時間に依存した情報を転送するために使用される。等時性転送は、保証された帯域幅および限界のある待ち時間を提供するが、送達の保証はない。
無線USBは、これらのエンドポイントをサポートするが、前述のようにデータ転送におけるエラー率が高いため、たとえ送達が保証されない等時性転送であっても再試行の実行が必要である。有線転送とは異なり、無線等時性転送はバッファリングされ、再試行によって受信側でバッファ内の適切な位置に挿入するために欠落データが供給できることに留意されたい。
本発明の一態様によれば、エンドポイントに対応するデータ構造は、スケジューリングプロセス226によって、失敗する確率の高いデータ転送よりも成功する確率の高いデータ転送を評価する傾向に制御された形でスケジューリングされる。これによりいかなる場合でも、帯域幅は、現在不良な接続に対してではなく、現在良好な接続に対して使用される。このためスケジューリングプロセスは、以下で説明するように転送スケジュールを設定し、一般に連続して失敗した転送は、データ転送用の次の時間スロットまで休止されるため、このような転送が失敗する確率の高い再試行によって追加の帯域幅が消費されることがない。
図3は、スケジューリングプロセス226によって管理される様々なデータ構造およびそれら相互の関係を表す図である。図3に表されるように、データ構造は周期的スケジュール302、周期的スケジュールエントリ(たとえばPSE1〜PSE3)、キューヘッド(QH1〜QH7)、および転送記述子(TD)を含む。周期的スケジュール302は、各エントリが周期的時間スロットに対応するエントリの循環バッファを備える。各エントリは、以下で説明するように、他のデータ構造を指すポインタを有するゼロまたはそれ以上の周期的スケジュールエントリ(PSE)のリストを指すポインタを含む。時間スロットは単一の時間ユニットを表し、時間ユニットは(最大でも)エンドポイントが指定できる最も小さな期間である。「現時間スロット」ポインタは、時間枠の終わりに次のエントリに進む。
周期的スケジュールエントリは、その時間スロット枠中にアクティブになる(UWBコンポーネントによって転送される)はずのデータ転送を表す。各周期的スケジュールエントリは、実行される準備が整った転送を表す。
転送の宛先を指定するために、転送の実行先である各装置上の各エンドポイントに対応するキューヘッド(QH)がある。以下で説明するように、各キューヘッドは、その対応するエンドポイントに対する任意の保留転送を含む、転送の状態に関する情報を含む。
各転送記述子(TD)は、関連するキューヘッドを有し、転送に関与する実際のデータ、転送バッファの長さ、実際に転送されるバイト数などを格納し、または取り出すためのアドレスなどの、特定の転送に関する詳細を提供する。各転送記述子は、「アクティブ」または「非アクティブ」の状態値、ならびに転送がオンであるかオフであるかを指定するソフトウェア書き込み可能値も含む。
周期的スケジュールエントリには、等時性エンドポイント用の型と、割り込みエンドポイント用の型との2つの型がある。以下で説明するように、等時性PSEが等時性転送記述子を指す一方で、割り込みPSEは割り込みエンドポイントキューヘッドを指し、次にこれが対応する転送記述子を指す。たとえば図3の例では、PSE1が(キューヘッドQH1に関連付けられた)等時性転送記述子を指し、PSE2は割り込みエンドポイントに対応するキューヘッド(QH2)を指す。異なる時間スロットに含まれる周期的スケジュールエントリPSE3は、(キューヘッドQH1に関連付けられた)他の等時性転送記述子を指す。
以下で説明するように、スケジューリングプロセスで等時性PSEに遭遇すると、対応する転送記述子がその「アクティブ」状態に移り、データが可能な限り早急に転送される準備が整っている旨を信号通知する。スケジュール内で割り込みPSEに遭遇すると、対応するキューヘッドが「アクティブ」状態に移り、スケジュールがパケット転送を実行すべきである旨を信号通知する。図3でPSEを持たないキューヘッド、たとえばQH4〜QH7は、所与の時間スロット内に残ったいくらかの時間を使用する周期的転送後に生じる非同期式転送を表す。
本発明の一態様によれば、様々なオペレーティング環境に適応するための柔軟性を提供するために、オペレーティングシステムコンポーネントまたはアプリケーションプログラムを備える可能性のあるWUSBコントローラドライバ224は、スケジュール実行の様々な態様を制御することができる。ソフトウェアがスケジュール実行を操作するための主な方法は、キューヘッドを介するものである。より具体的に言えば、以下で説明する図4〜6の流れ図を通じて理解されるように、ソフトウェアが修正可能な様々なパラメータ(カウンタおよび閾値)の値がキューヘッド内に保持され、それによってスケジュール実行の動作を修正する。以下の表は、どの値がハードウェアおよびソフトウェアの読み取り書き込み可能または読み取り専用であるかを含む、各キューヘッド内に含まれる値の一部に関する情報を提供するものである。
Figure 2006216015
表に示されるように、ソフトウェアは、その特定のキューヘッドが休止されるまで(もはや再試行されない)にスケジュールが許可する失敗パケット数を決定するために、キューヘッド内のエラー休止閾値パラメータに値を書き込むことが可能であり、これは時間スロットの残り部分についてとすることができる。これは、前述のように知られた転送失敗の特徴(たとえば一時エラースパイク)を考慮してソフトウェアがスケジュールを最適化する主な方法である。エラー休止閾値の値は、転送の実行を継続するためには接続がどの程度良いまたは悪い必要があるかを示すために、ソフトウェアによって設定される。この値が1に設定された場合、キューヘッド内に保留中のアクティブ転送があり、この時間スロット内に失敗したパケット転送がない限り、スケジュールはそのキューヘッドの転送を実行し続けることになる。
しかしながら、パケット転送が失敗すると「現在のエラーカウント」値は減分され、1からゼロに遷移するとキューヘッドは休止される。これにより、所与の時間スロット中に、他のキューヘッドが完全に(それらも休止されることのない程度に)処理されるまでそれ以上の転送が実行されるのを防ぐ。容易に理解されるように、値が2に設定されると、キューヘッドが休止されるまでに2つの失敗パケット転送が試行される、ということになる。開始値が0であれば、(以下で説明するように、こうした状況では1からゼロへの遷移はないため)キューヘッドは決して休止されないことを示す。
一般に、休止されたキューヘッドは、次の時間スロットが開始する時点、あるいは、現時間スロット内に他のエンドポイントがなくなった後、普通であれば未使用となる帯域幅が残っている場合のいずれかに、その休止状態から出る。失敗した転送を休止することにより、スケジュールに、成功裏にパケットを転送することのできないエンドポイントよりも、成功裏にパケットを転送することのできるエンドポイントを選ばせることができる。伝送エラーは一時的である傾向があるため、転送エラーを有するエンドポイントが次の時間スロット中には成功する可能性がある。特定のエンドポイントでパケットが至急必要な点に状態が達した場合、無線USBソフトウェアコントローラドライバ224は通知を受け、そのエンドポイントに関するキューヘッド内の様々な構成可能な値を調整することが可能であり、本来は、他の転送に使用することができた帯域幅を犠牲にして、パケットを成功裏に転送する確率を上げるために、他のエンドポイントよりもデータを必要とするエンドポイントを評価する。
エラー中止閾値パラメータは、エラー休止閾値パラメータとある程度同じであるが、この値はキューヘッドを中止すべきとなるまでの連続エラー数を指定する。次の時間スロット時または現時間スロット内に未使用の帯域幅が残っている場合にリセットする休止状態とは異なり、中止されたキューヘッドが中止状態を出るためにはソフトウェアの介入が必要である。
Isoch通知閾値パラメータは、ソフトウェアに通知を送信させるために無線USBソフトウェアコントローラドライバ224によって設定可能な値であり、無線USBソフトウェアコントローラドライバ224が特に悪い失敗状態に関して通知を受けるように使用される。より具体的に言えば、無線USB内の等時性ストリームは、受信側と送信側の両方で一定量のバッファリングを必要とし、送信側がオーバフローしない限りストリームは保持される。バッファがオーバフローしないことを保証するために、ホストはバッファの状態に応答して何らかの設定値の調整を必要とする場合がある。Isoch通知閾値は、ハードウェアがバッファの状態に基づいて無線USBソフトウェアコントローラドライバ224へ通知すべきである場合を定義する。Isoch通知閾値の値は、キューヘッドに関連付けられたアクティブなIsoch転送記述子(TD)の数として定義される。この数がIsoch通知閾値に達すると、ハードウェアは割り込みによって無線USBソフトウェアコントローラドライバ224に通知する。
イネーブルド値は、ソフトウェアによって設定することができ、キューヘッドをオフまたはオンにする。オフ状態にある場合、転送は実行されない。
本発明の説明に戻ると、図4〜6は各時間スロットで発生するオペレーションおよびイベントに関するスケジューリングプロセス226の論理例を示し、時間スロットの開始を表す図4のステップ400から始まる。本来、スケジュールサイクルには異なる段階があり、時間スロットの開始時に新しいサイクルが始まる。その新しいサイクルが完了し、次の時間スロットが開始するまでに時間が残っている場合、新しいサイクルを実行するか、または転送用にスケジュールされたが完了しなかったものがあれば再試行することができる。
スケジュールサイクルの第1段階には、スケジュール状態をリセットすること、およびその時間スロットに必要な周期的転送を決定することが含まれる。この段階で、現時間スロットポインタが新しい現時間スロットを示すように増分され、これはステップ400によって表される。その後、その時間スロットがいずれかのPSEを指す場合、PSEのリストが探索される。リスト内のあらゆる割り込みPSEについて、対応する割り込みエンドポイントキューヘッドが(エンドポイントが中止状態にない限り)起動される。リスト内のあらゆる等時性PSEについて、対応する等時性エンドポイント転送記述子がキューヘッドと共にアクティブ化される。これは図4のステップ402で表され、新しい時間スロットのスケジュール状態をリセットすることには、「休止」状態にある各キューヘッドを「アクティブ」状態に遷移することが含まれる。
他のステップにはステップ404および406が含まれ、ステップ404は、単一のキューヘッドに対するアクティブなIsoch転送記述子の数に基づいて、通知閾値が達成された場合に必ずソフトウェアに通知するための割り込みの発動(firing)を表す。ステップ406は、この時間スロットの値を再度初期設定する。
スケジュールサイクルの第2段階は、周期的転送の実行を対象とする。一般にハードウェアは、現在アクティブな周期的キューヘッドを検索し(ステップ408)、図5のステップ500で表されるように、そのキューヘッドの対応する転送記述子に対してパケット転送の実行を開始する。WUSBの場合、複数の転送を並行して実行することができる。所与の時間にどの転送を実行するかを決定するためのスキームは、一般にこのスキームが、転送のターンアラウンド(無線を伝送状態から受信状態に変更する)を最小限にすること、ならびにプロトコルのオーバヘッドを低く保つことに基づくべきであるということを除き、本発明に関連しない。WUSBハードウェアは、他の複数のパケット転送と同時に何らかの非同期式転送を実行するように選択できることに留意されたい。
各周期的パケット転送(ステップ502)について、その転送の状況はステップ504を介して分析される。パケット転送が成功すると、ステップ504はステップ506に分岐し、対応する連続エラーカウントがエラー中止閾値の値にリセットされる。ステップ508でエンドポイントが割り込みエンドポイントである場合、対応するキューヘッドはステップ510を介して非アクティブ状態に入り、そのパケット転送も転送記述子を完了した場合、転送記述子は完了としてマーク付けされる。
ステップ504でパケット転送が成功し、ステップ508でエンドポイントが等時性エンドポイントである場合、ステップ508はステップ512に分岐し、転送記述子は完了としてマーク付けされる。また、等時性転送記述子リストにそれ以上アクティブな転送記述子がない場合、キューヘッドは非アクティブ状態に移る。
ステップ504に戻り、パケット転送が失敗した場合、ステップ504はステップ520に分岐し、連続エラーカウントが減分される(ゼロよりも大きい場合)。ステップ522による評価で、この値が値1から値ゼロに遷移している場合、キューヘッドはステップ524を介して中止される。そうでない場合はステップ526が実行され、キューヘッド内の現在のエラーカウントがゼロよりも大きい場合に減分される。ステップ528での評価としてこのカウントが値1から値ゼロに遷移すると、ステップ530でキューヘッドは休止状態に移る。エラーカウントがすでにゼロであった場合、キューヘッドの状態はそのまま残り、これによってソフトウェアは初期にキューヘッドのエラーカウントをゼロに設定することが可能であり、これによってその状態は休止されないことに留意されたい。連続エラーカウントで同様の「ゼロに初期設定」オペレーションを使用して、中止を防ぐことができる。
プロセスがステップ502に戻ることによってわかるように、図5の分析は試行された各転送が分析されるまで続行する。
このプロセスが完了すると、ハードウェアスケジューリングプロセス226は図4のステップ408に戻り、さらに他のアクティブな周期的キューヘッドが存在するか否かを再度判別して、それら(これらには、すでに試行された転送を伴うキューヘッドが含まれる可能性がある)を実行する。これは、アクティブな周期的キューヘッドがなくなるまで繰り返され、すなわち、休止または中止されたものだけが保留状態で残すことができる。アクティブな周期的キューヘッドがなくなると、スケジュールは非同期式キューヘッドの転送を対象とする第3段階を実行する。この第3段階では、任意のアクティブな非同期式(バルクおよびコントロール)転送が、ステップ410および412を介して実行される。ステップ600で始まる図6に分岐するステップ414に示すように、各パケット転送についてその転送の状況が分析される。
ステップ600はパケット転送が成功したか否かを評価し、成功した場合はステップ602に分岐して、そのパケットが転送記述子を完了したか否かの評価が行われ、完了した場合は、ステップ604で転送記述子が完了したとしてマーク付けされる。また、キューヘッド内に保留されている転送記述子がない場合、キューヘッドはステップ606および608を介して非アクティブ状態に移る。プロセスは図4のステップ410に戻る。
ステップ600に戻り、パケットが失敗した場合、ステップ600はステップ610に分岐してキューヘッドの連続エラーカウントが(ゼロよりも大きい場合)減分される。ステップ612でこの値が値1から値ゼロに遷移した場合、ステップ614を介してキューヘッドは中止される。
そうでない場合、ステップ616でキューヘッドの現在のエラーカウント値が(その値がゼロよりも大きい場合)減分される。ステップ618でこの値を値1から値ゼロに遷移させるように決定された場合、ステップ620でキューヘッドは休止される。
プロセスは図4のステップ410に戻り、アクティブな非同期式キューヘッドがなくなるまで、または時間スロットが終了するまで、この第3段階が繰り返される。時間スロット内に時間が残っていない状態で第3(非同期式処理)段階が終了した場合、ステップ410がステップ406に分岐することによって、休止されたQHがあればステップ406でアクティブ状態に移り、第2(図5)および第3(図6)段階が繰り返される。
このようにして、転送が成功、休止、または中止されるまで、時間スロット内にあるアクティブな周期的キューヘッドをスケジューリングおよび転送するように試行されることがわかる。その後、転送が成功、休止、または中止されるまで、時間スロット内にある非同期式キューヘッドを転送するように試行される。このプロセスは時間スロット内の時間がなくなるまで繰り返されるが、プロセスは、時間スロットに対してスケジュールされたすべてが成功裏に転送された場合に停止し、次の適切な時点で新しくスケジュールされたキューヘッドを再開することもできる。
ソフトウェアがデータ構造内の様々なカウンタおよび他の情報を制御するため、本発明によってとても高い柔軟性が提供される。たとえば通常のオペレーションでは、時間スロット開始時にエラーカウントを1に初期設定することが可能であり、これによって単一のエラーが、その時間スロットの残りの部分に対して(時間スロット内に時間が残っているために再度アクティブ化されない限り)失敗したキューヘッドを休止させることになる。結果として、失敗したキューヘッドの転送について何らかの再試行が実行される前に、その時間スロット内で他のキューヘッドの転送試行が実行されることになる。しかしながら、等時性通知閾値に達した旨の通知を受け取ると、ソフトウェアは、伝送の失敗によって過度のアクティブな転送記述子をバックアップしなければならないことから、受信側のバッファが少なくなっていることを認識する。その後ソフトウェアは、たとえば、バックアップされた転送記述子に対応して特定のキューヘッドに対するエラーカウント値を上げること、何らかの他のキューヘッドを使用禁止にすることなどによって、データをそのバッファに入れるように様々なカウントを調整することができる。その後ソフトウェアは、十分なデータがバッファに入れられると、通常のオペレーション用にカウンタおよび閾値をリセットすることができる。
前述の詳細な説明から明らかなように、失敗する確率の高いキューヘッドよりも成功する確率の高いキューヘッドに対応するパケットに帯域幅を使用することによって、無線USB内のエラーを処理する方法およびシステムが提供される。ソフトウェアは、所与の環境において、必要に応じてこのメカニズムを動的に制御することができる。
本発明は様々な修正および代替構造が可能であるが、図面にはその中のある種の例示された実施形態が示され、上記で詳細に説明してきた。しかしながら、本発明を開示された特定の形に限定する意図はなく、反対に、本発明の趣旨および範囲に入るすべての修正、代替構造、および等価物をカバーすることを意図するものであることを理解されたい。
本発明を組み込むことが可能なコンピューティング環境を全体として表すブロック図である。 本発明の様々な態様に従った、ハードウェアスケジューリングを使用してUWBを介した周辺装置への無線USBデータ転送を制御するための、コンピュータシステム内のソフトウェアおよびハードウェアを含むブロック図である。 本発明の様々な態様に従った、データ転送のハードウェアスケジューリングで使用されるデータ構造の表現を含むブロック図である。 本発明の様々な態様に従い、制御されたデータ転送を実行するためにデータ構造を操作するための論理を全体として表す流れ図である。 本発明の様々な態様に従い、制御されたデータ転送を実行するためにデータ構造を操作するための論理を全体として表す流れ図である。 本発明の様々な態様に従い、制御されたデータ転送を実行するためにデータ構造を操作するための論理を全体として表す流れ図である。

Claims (40)

  1. コンピューティング環境において、
    転送される1つまたは複数のパケットに対応してデータ構造内のエラー閾値を構成することができるプログラムを備える、ソフトウェアコントローラコンポーネントと、
    ハードウェア内のスケジューリングプロセスであって、前記スケジューリングプロセスは、前記1つまたは複数のパケットを実行のためにアクティブ化し、各パケットが成功裏に受信されたか否かを評価するメカニズムを含み、前記スケジューリングプロセスは、送信されたが受信されない1つまたは複数のパケットのエラーカウントが前記エラー閾値に達した場合、もはや前記データ構造をスケジューリングしない、スケジューリングプロセスと
    を備えたことを特徴とするシステム。
  2. 前記データ構造は、割り込みエンドポイントのキューヘッドに対応することを特徴とする請求項1に記載のシステム。
  3. 前記データ構造は、等時性エンドポイントのキューヘッドに対応することを特徴とする請求項1に記載のシステム。
  4. 前記データ構造は、コントロールエンドポイントのキューヘッドに対応することを特徴とする請求項1に記載のシステム。
  5. 前記データ構造は、バルクエンドポイントのキューヘッドに対応することを特徴とする請求項1に記載のシステム。
  6. 前記エラー閾値は休止カウントに対応し、前記データ構造は前記閾値に達した場合に休止状態に設定され、前記スケジューリングプロセスは前記データ構造を後で再度アクティブ化することができることを特徴とする請求項1に記載のシステム。
  7. 前記データ構造は前記休止状態に設定され、前記スケジューリングプロセスは前記データ構造を後続の周期的時間スロットで実行するために再度アクティブ化することを特徴とする請求項6に記載のシステム。
  8. 前記データ構造は前記休止状態に設定され、前記スケジューリングプロセスは前記データ構造を前記周期的時間スロット内で実行するために再度アクティブ化することを特徴とする請求項6に記載のシステム。
  9. 前記データ構造は、少なくとも1つの他のエラー閾値を含むことを特徴とする請求項1に記載のシステム。
  10. 前記エラー閾値は連続エラーカウントに対応し、前記データ構造は前記閾値に達した場合に中止状態に設定されることを特徴とする請求項1に記載のシステム。
  11. 前記ソフトウェアコンポーネントおよびハードウェアは、1つまたは複数のUSB周辺装置に伝送するホストコンピュータシステムに組み込まれることを特徴とする請求項1に記載のシステム。
  12. 前記ホストコンピュータシステムは、周辺装置から前記ホストへのデータの転送を開始することを特徴とする請求項11に記載のシステム。
  13. 前記1つまたは複数のパケットは、超広帯域無線を介して伝送されることを特徴とする請求項1に記載のシステム。
  14. 前記ハードウェアは、エンドポイントに転送するデータの量がソフトウェア構成可能通知閾値に達した場合に、前記ソフトウェアコンポーネントに通知する通知メカニズムを含むことを特徴とする請求項1に記載のシステム。
  15. 前記ソフトウェアコンポーネントは、前記通知に応答して前記データ構成内で少なくとも1つの値を構成することを特徴とする請求項14に記載のシステム。
  16. 前記通知メカニズムは、前記ソフトウェアコンポーネントに通知するために割り込みを発行することを特徴とする請求項14に記載のシステム。
  17. コンピューティング環境において、
    時間スロット内で無線USB伝送のためのデータ転送をスケジューリングするステップと、
    前記データ転送の伝送を試行するステップと、
    前記データ転送が少なくとも1つの試行の閾値回数内に成功裏に受信されたか否かを判別するステップと、成功裏に受信されなかった場合、前記データ転送を、前記データ転送の伝送が他の状態に変更されるまで再試行されない状態に設定するステップと、
    を備えたことを特徴とする方法。
  18. 前記データ転送は、エンドポイントに対応するキューヘッドに関連付けられた少なくとも1つのデータパケット群を有し、前記データ転送を前記データ転送の伝送が再試行されない状態に設定するステップは、その中の状態値を修正することによって前記キューヘッドを休止させるステップを含むことを特徴とする請求項17に記載の方法。
  19. 他の時間スロットの開始時に前記状態値をアクティブ状態に修正することによって、前記データ転送を再試行するステップをさらに備えたことを特徴とする請求項17に記載の方法。
  20. 他のパケットの伝送が試行された後に、前記時間スロット内に時間が残っている場合、前記状態値をアクティブ状態に修正することによって、前記データ転送を再試行するステップをさらに備えたことを特徴とする請求項17に記載の方法。
  21. 前記データ転送は、エンドポイントに対応するキューヘッドに関連付けられた少なくとも1つのデータパケット群を有し、前記データ転送を前記データ転送の伝送が再試行されない状態に設定するステップは、その中の状態値を修正することによって前記キューヘッドを中止させるステップを含むことを特徴とする請求項17に記載の方法。
  22. 前記データ転送は、エンドポイントに対応するキューヘッドに関連付けられた少なくとも1つのデータパケットのセットを備え、前記キューヘッドに対するアクティブなデータ転送の数が閾値に達したか否かを判別するステップと、達した場合には通知を送信するステップとをさらに備えることを特徴とする請求項17に記載の方法。
  23. 実行された場合は請求項17に記載の方法を実行する、コンピュータ実行可能命令を有することを特徴とする少なくとも1つのコンピュータ読み取り可能媒体。
  24. 実行された場合、
    (a)時間スロット内で、周期的データ転送およびアクティブな非同期式データ転送をアクティブとしてスケジューリングするステップであって、各データ転送は無線USB伝送のキューヘッドに関連付けられる、スケジューリングするステップと、
    前記時間スロット内に時間が残っている間に、
    (b)前記アクティブな周期的データ転送を実行するステップと、
    (c)各周期的データ転送について、前記転送が成功したか否かを評価するステップと、
    (i)成功しなかった場合、休止カウンタを調整するステップと、前記休止カウンタが対応する閾値に達したか否かを評価し、達した場合、そのデータ転送に関連付けられた前記キューヘッドを休止するステップと、
    (ii)成功し、割り込みエンドポイントである場合、前記キューヘッドを非アクティブ化し、および前記データ転送が完了した場合は完了とマーク付けするステップと、
    (iii)成功し、等時性エンドポイントである場合、前記データ転送を完了としてマーク付けし、前記キューヘッドに関連付けられた各データ転送が完了としてマーク付けされた場合に前記キューヘッドを非アクティブ化するステップと、
    (d)任意の非アクティブな周期的キューヘッドおよび休止された周期的キューヘッドに基づいて、実行する予定の任意のアクティブな周期的データ転送が残っているか否かを判別し、残っている場合はステップ(b)に戻り、および残っていない場合はステップ(e)に進むステップと、
    (e)前記アクティブな非同期式データ転送を実行するステップと、
    (f)各非同期式データ転送について、前記転送が成功したか否かを評価するステップと、
    (i)成功しなかった場合、休止カウンタを調整し、および閾値に達したか否かを評価し、達した場合、そのデータ転送に関連付けられた前記キューヘッドを休止するステップと、
    (ii)成功した場合、前記データ転送が完了した場合は完了とマーク付けするステップと、
    (g)任意の非アクティブな非同期式キューヘッドおよび休止された非同期式キューヘッドに基づいて、実行する予定の任意のアクティブな非同期式データ転送が残っているか否かを判別し、残っている場合はステップ(e)に戻り、および残っていない場合は、任意の休止された周期的データ転送および休止された非同期式データ転送をアクティブ化してステップ(b)に戻るステップと、
    を実行する、コンピュータ実行可能命令を有することを特徴とする少なくとも1つのコンピュータ読み取り可能媒体。
  25. 各周期的データ転送について、前記周期的データ転送が成功しなかった場合、連続エラーカウンタを調整するステップと、連続エラーカウンタが対応する連続エラー閾値に達したか否かを評価するステップと、達した場合、その周期的データ転送に関連付けられた前記キューヘッドを中止するステップとを実行する、コンピュータ実行可能命令さらに有することを特徴とする請求項24に記載のコンピュータ読み取り可能媒体。
  26. 各非同期式データ転送について、前記非同期式データ転送が成功しなかった場合、連続エラーカウンタを調整するステップと、連続エラーカウンタが対応する連続エラー閾値に達したか否かを評価するステップと、達した場合、その非同期式データ転送に関連付けられた前記キューヘッドを中止するステップとを実行する、コンピュータ実行可能命令をさらに有することを特徴とする請求項24に記載のコンピュータ読み取り可能媒体。
  27. 各キューヘッドについて、アクティブな等時性転送記述子の数を通知閾値に照らして評価するステップと、前記閾値に達している場合、そのキューヘッドに関して通知を送信するステップとを実行する、コンピュータ実行可能命令をさらに有することを特徴とする請求項24に記載のコンピュータ読み取り可能媒体。
  28. 前記通知の受信側は、前記対応するキューヘッドの少なくとも1つの閾値を修正することを特徴とする請求項27に記載のコンピュータ読み取り可能媒体。
  29. 成功した各非同期式データ転送について、そのキューヘッドに対して保留されているデータ転送が残っていない場合、前記キューヘッドを非アクティブに設定するステップを実行する、コンピュータ実行可能命令をさらに有することを特徴とする請求項24に記載のコンピュータ読み取り可能媒体。
  30. 受信側装置に転送される予定の無線USBデータに関連付けられたキューヘッド内に、
    前記キューヘッドが休止されるまでに前記キューヘッドに関連付けられたパケットの転送を試行する回数に対応する閾値を含む、エラー休止閾値フィールドと、
    前記キューヘッドに関連付けられた転送されたパケットが成功裏に受信されなかった場合、パケットエラーに関して追跡するように調整されるカウントを含む、現在のエラーカウントフィールドと、
    前記キューヘッド内の少なくとも1つのパケットが転送に対してアクティブであることを示す第1の状態と、前記キューヘッドが休止され、前記第1の状態に変更されるまでデータ転送が再試行されないことを示す第2の状態とを含む、前記キューヘッドに関連付けられたパケットの転送が試行されるか否かを示す状態を有する状態フィールドと、
    を備え、
    前記現在のエラーカウントフィールド内のカウントが、前記エラー休止閾値フィールド内の前記エラー休止閾値に達したことを示すカウントに調整された場合、前記状態フィールドは、前記アクティブ状態から前記休止状態へと変更されることを特徴とするデータ構造を格納している少なくとも1つのコンピュータ読み取り可能媒体。
  31. 前記現在のエラーカウント値は、前記エラー休止閾値フィールド内の前記閾値で初期設定され、転送されたパケットが成功裏に受信されなかった場合、前記カウントを減分することによって調整されるものであり、前記状態フィールドは、前記現在のエラーカウントフィールド内のカウントがゼロに遷移した場合に、前記アクティブ状態から前記休止状態に変更されることを特徴とする請求項30に記載のコンピュータ読み取り可能媒体。
  32. 前記キューヘッドが中止されるまでに前記キューヘッドに関連付けられたパケットの転送を試行した結果生じた連続エラー数に対応する閾値を含む、エラー中止閾値フィールドと、
    パケットエラーに関して、前記キューヘッドに対する連続パケットエラー数を追跡するように調整されるカウントを含む、連続エラーカウントフィールドと、
    をさらに備え、
    前記連続エラーカウントフィールド内のカウントが、前記エラー中止閾値フィールド内の前記エラー中止閾値に達したことを示すカウントに調整された場合、前記状態フィールドは、前記アクティブ状態から前記中止状態へと変更されることを特徴とする請求項30に記載のコンピュータ読み取り可能媒体。
  33. 前記キューヘッドに関するアクティブなデータ転送の現在の数を示す、現在のアクティブな転送記述子カウントと、
    その後に通知が発行されることになる、前記キューヘッドに関するアクティブな転送記述子の数を示す値を含む、等時性通知閾値フィールドと、
    をさらに備え、
    前記現在のアクティブな転送記述子カウントは、前記等時性通知閾値に達しているか否かに基づいて通知を発行するか否かを決定するために、前記等時性通知閾値フィールド内の前記値に照らして評価されることを特徴とする請求項30に記載のコンピュータ読み取り可能媒体。
  34. 前記キューヘッドに関連付けられた任意の転送が実行されるか否かを示す値を有するイネーブルフィールドを、さらに備えることを特徴とする請求項30に記載のコンピュータ読み取り可能媒体。
  35. コンピューティング環境において、
    (a)時間スロットセットの中の現時間スロット内で、キューヘッドに関連付けられた各データ転送が、前記データ転送に対応する1つまたは複数のデータパケットを転送するための情報を含む場合、無線USBエンドポイントに転送するために周期的データ転送をアクティブ化するステップと、
    (b)アクティブなキューヘッドに関連付けられた周期的パケットの転送を試行するステップと、
    (c)エンドポイントへの後続のデータ転送が失敗する確率が高いか否かを、そのエンドポイントに対して試行された少なくとも1つの以前のデータ転送が成功したか否かに基づいて評価し、ならびに失敗する確率が高い場合、前記後続のデータ転送を休止し、および失敗する確率が高くない場合、前記後続のデータ転送を試行するステップと、
    (d)いずれかの周期的データ転送が転送される予定でアクティブな状態で残っているか否かを判別し、および残っている場合、前記現時間スロット内に時間が残っていればステップ(b)に戻るステップと、
    を有することを特徴とする方法。
  36. エンドポイントへの後続のデータ転送が失敗する確率が高いか否かを評価するステップは、失敗カウンタを更新するステップと、前記失敗カウンタを閾値に基づいて評価するステップとを含むことを特徴とする請求項35に記載の方法。
  37. ステップ(d)で、周期的データ転送が転送される予定でアクティブな状態で残っておらず、現時間スロット内に時間が残っており、
    (e)アクティブな非同期式キューヘッドに関連付けられたパケットの転送を試行するステップと、
    (f)非同期式エンドポイントへの後続のデータ転送が失敗する確率が高いか否かを、そのエンドポイントに対して試行された少なくとも1つの以前のデータ転送が成功したか否かに基づいて評価し、ならびに失敗する確率が高い場合、前記後続のデータ転送を休止し、および失敗する確率が高くない場合、前記後続のデータ転送を試行するステップと、
    (g)いずれかの非同期式キューヘッドが、転送される予定でアクティブな状態で残っているデータ転送を含むか否かを判別し、ならびに残っている場合、前記現時間スロット内に時間が残っていればステップ(e)に戻し、および残っていない場合、いずれかの休止されたキューヘッドをアクティブ化し、現時間スロット内に時間が残っていればステップ(b)に戻るステップと、
    をさらに有することを特徴とする請求項35に記載の方法。
  38. 非同期式エンドポイントへの後続のデータ転送が失敗する確率が高いか否かを評価するステップは、失敗カウンタを更新するステップと、前記失敗カウンタを閾値に基づいて評価するステップとを含むことを特徴とする請求項37に記載の方法。
  39. 各キューヘッドについて、アクティブな等時性転送記述子の数を通知閾値に照らして評価し、および前記閾値に達している場合、そのキューヘッドに関して通知を送信するステップをさらに有することを特徴とする請求項35に記載の方法。
  40. 実行された場合は請求項35に記載の方法を実行する、コンピュータ実行可能命令を有することを特徴とする少なくとも1つのコンピュータ読み取り可能媒体。
JP2005351236A 2004-12-03 2005-12-05 無線usbハードウェアのスケジューリング Expired - Fee Related JP4878475B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/004,429 US7149839B2 (en) 2004-12-03 2004-12-03 Wireless USB hardware scheduling
US11/004,429 2004-12-03

Publications (2)

Publication Number Publication Date
JP2006216015A true JP2006216015A (ja) 2006-08-17
JP4878475B2 JP4878475B2 (ja) 2012-02-15

Family

ID=36003037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005351236A Expired - Fee Related JP4878475B2 (ja) 2004-12-03 2005-12-05 無線usbハードウェアのスケジューリング

Country Status (5)

Country Link
US (2) US7149839B2 (ja)
EP (1) EP1667387B1 (ja)
JP (1) JP4878475B2 (ja)
KR (1) KR101238460B1 (ja)
CN (1) CN1783041B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008072409A1 (ja) 2006-12-15 2008-06-19 Sony Corporation 通信システム、通信装置及び通信方法、並びにコンピュータ・プログラム
JP2009093636A (ja) * 2007-10-03 2009-04-30 Internatl Business Mach Corp <Ibm> Pciエキスプレス帯域幅を動的に平衡化するためのシステム
JP2016526325A (ja) * 2013-05-15 2016-09-01 クアルコム,インコーポレイテッド Wi−Fiシリアルバスのための媒体時間ベースのUSBフレームカウンタ同期
JP2017520052A (ja) * 2014-06-18 2017-07-20 クアルコム,インコーポレイテッド ユニバーサルシリアルバス(usb)通信システムおよび方法
JP2021174368A (ja) * 2020-04-28 2021-11-01 株式会社デンソー リアルタイム演算処理装置

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100679023B1 (ko) * 2004-11-03 2007-02-05 삼성전자주식회사 조정자 기반 무선 네트워크에서 복수의 무선 범용 직렬버스 호스트를 지원하는 방법 및 장치
US7149839B2 (en) * 2004-12-03 2006-12-12 Microsoft Corporation Wireless USB hardware scheduling
KR100619068B1 (ko) * 2005-01-31 2006-08-31 삼성전자주식회사 무선 범용 직렬 버스 통신에 있어서, 피어투피어 통신을위한 채널 시간을 할당하는 방법 및 그 피어투피어 통신방법
DE102005020062B4 (de) * 2005-04-29 2011-07-21 Globalfoundries Inc. Mobile drahtlose Datenspeichereinrichtung und entsprechendes Verfahren zum speichern von Daten
TWI268669B (en) * 2005-05-27 2006-12-11 Bluepacket Communications Co Ltd System and method for wireless signal transmission establishing an inter-transmission and exchange of files between a computer peripheral and a host system through a wireless signal transmission module
US7281074B2 (en) * 2005-06-29 2007-10-09 Intel Corporation Method and apparatus to quiesce USB activities using interrupt descriptor caching and asynchronous notifications
US20070055804A1 (en) * 2005-09-07 2007-03-08 Ran Hay Method and apparatus for managing multiple components
KR100725932B1 (ko) * 2006-05-02 2007-06-11 삼성전자주식회사 무선 유에스비 장치의 동작 방법 및 이를 이용한 무선유에스비 장치
KR100872178B1 (ko) * 2006-12-04 2008-12-09 한국전자통신연구원 우선순위 기반의 무선 usb 전송 서비스 관리 장치 및방법
CA2671610C (en) * 2006-12-22 2013-11-19 Qualcomm Incorporated Enhanced wireless usb protocol and hub
KR100720709B1 (ko) * 2007-01-26 2007-05-21 주식회사 유비콘테크놀로지 무선 usb 시스템
CN101237445B (zh) * 2007-01-30 2013-01-02 世意法(北京)半导体研发有限责任公司 缓冲器管理方法和用于缓冲器管理及封装wusb分组的设备
US7844760B2 (en) * 2007-09-29 2010-11-30 Intel Corporation Schedule and data caching for wireless transmission
JP2009093418A (ja) * 2007-10-09 2009-04-30 Nec Electronics Corp ホストコントローラ装置及びデータ転送制御方法
US7853739B1 (en) * 2007-11-19 2010-12-14 Wisair Ltd. Method and system for transmitting USB communication
US8934890B2 (en) * 2008-01-11 2015-01-13 Texas Instruments Incorporated Transmission of data bursts on a constant data rate channel
US20090210609A1 (en) * 2008-02-04 2009-08-20 Iain Thomas Learmonth Wireless USB hub
US8660486B2 (en) * 2008-02-28 2014-02-25 Dell Products, Lp Method and system for providing concurrent wireless universal serial bus (WUSB) hub and wireless audio/video interfaces within a single device
JP2009278507A (ja) * 2008-05-16 2009-11-26 Nec Electronics Corp ホスト装置およびスケジューリング方法
US8781300B2 (en) * 2008-05-23 2014-07-15 At&T Intellectual Property I, Lp System and apparatus for managing video content recordings
WO2009150613A1 (en) * 2008-06-09 2009-12-17 Nxp B.V. Wireless universal serial bus micro-schedule management command scheduling method
US8843661B2 (en) * 2008-08-28 2014-09-23 Intel Corporation Data transfer between wireless universal serial bus (USB) host controller driver and wireless USB host controller in a wireless USB host
US7853748B2 (en) * 2008-09-30 2010-12-14 Intel Corporation Method and apparatus to obtain code data for USB device
US8554174B2 (en) * 2009-06-15 2013-10-08 Alcatel Lucent Selective first delivery attempt (FDA) processing for text messages
CN201897788U (zh) * 2009-07-27 2011-07-13 罗技欧洲公司 配置成与多个无线设备配对的接收器
US8521930B1 (en) * 2010-02-25 2013-08-27 Fresco Logic, Inc. Method and apparatus for scheduling transactions in a host-controlled packet-based bus environment
KR101216959B1 (ko) 2011-01-06 2012-12-31 주식회사 이노와이어리스 시리얼 디바이스의 에러 검출 시스템
US8996772B1 (en) * 2012-02-15 2015-03-31 Cypress Semiconductor Corporation Host communication device and method with data transfer scheduler
CN103793344B (zh) * 2012-10-31 2017-06-27 华为技术有限公司 处理数据冲突的方法及系统
US9736521B2 (en) * 2013-12-23 2017-08-15 Qualcomm Incorporated Using timed transport stream for receiver-side inter-device communication
JP6232604B2 (ja) * 2014-02-10 2017-11-22 サイレックス・テクノロジー株式会社 デバイスサーバとその制御方法
US10684906B2 (en) 2016-06-15 2020-06-16 Microsoft Technology Licensing, Llc Monitoring peripheral transactions

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11112524A (ja) * 1997-08-07 1999-04-23 Internatl Business Mach Corp <Ibm> 接続確立方法、通信方法、状態変化伝達方法、状態変化実行方法、無線装置、無線デバイス、及びコンピュータ
US6717947B1 (en) * 1998-12-03 2004-04-06 Lsi Logic Corporation Method and apparatus for isochronous data transfer with retry capability

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6469991B1 (en) * 1997-10-14 2002-10-22 Lucent Technologies Inc. Method for overload control in a multiple access system for communication networks
US6243753B1 (en) * 1998-06-12 2001-06-05 Microsoft Corporation Method, system, and computer program product for creating a raw data channel form an integrating component to a series of kernel mode filters
US6378005B1 (en) * 1998-06-12 2002-04-23 Microsoft Corporation Method, computer program product, and system for separating connection management functionality from a connection-oriented device driver
US6609167B1 (en) * 1999-03-17 2003-08-19 Adaptec, Inc. Host and device serial communication protocols and communication packet formats
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
KR100444702B1 (ko) * 2002-04-18 2004-08-16 삼성전자주식회사 고속 범용 직렬 버스 인터페이스를 지원하는 디지탈가입자 회선 모뎀
KR100876765B1 (ko) * 2002-05-10 2009-01-07 삼성전자주식회사 이동 통신 시스템에서 데이터 재전송 장치 및 방법
TWI292270B (en) * 2002-10-08 2008-01-01 Texas Instruments Inc System and method for transparently attaching wireless peripherals to a computer using an uwb wireless network
KR100479262B1 (ko) * 2002-10-12 2005-03-31 한국전자통신연구원 통합 랜 호 제어 시스템
US6788676B2 (en) * 2002-10-30 2004-09-07 Nokia Corporation User equipment device enabled for SIP signalling to provide multimedia services with QoS
US6950859B1 (en) * 2002-12-23 2005-09-27 Microtune (San Diego), Inc. Wireless cable replacement for computer peripherals
US7149839B2 (en) * 2004-12-03 2006-12-12 Microsoft Corporation Wireless USB hardware scheduling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11112524A (ja) * 1997-08-07 1999-04-23 Internatl Business Mach Corp <Ibm> 接続確立方法、通信方法、状態変化伝達方法、状態変化実行方法、無線装置、無線デバイス、及びコンピュータ
US6717947B1 (en) * 1998-12-03 2004-04-06 Lsi Logic Corporation Method and apparatus for isochronous data transfer with retry capability

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008072409A1 (ja) 2006-12-15 2008-06-19 Sony Corporation 通信システム、通信装置及び通信方法、並びにコンピュータ・プログラム
JP2009093636A (ja) * 2007-10-03 2009-04-30 Internatl Business Mach Corp <Ibm> Pciエキスプレス帯域幅を動的に平衡化するためのシステム
JP2016526325A (ja) * 2013-05-15 2016-09-01 クアルコム,インコーポレイテッド Wi−Fiシリアルバスのための媒体時間ベースのUSBフレームカウンタ同期
JP2017520052A (ja) * 2014-06-18 2017-07-20 クアルコム,インコーポレイテッド ユニバーサルシリアルバス(usb)通信システムおよび方法
JP2021174368A (ja) * 2020-04-28 2021-11-01 株式会社デンソー リアルタイム演算処理装置
JP7331768B2 (ja) 2020-04-28 2023-08-23 株式会社デンソー リアルタイム演算処理装置

Also Published As

Publication number Publication date
US20060123181A1 (en) 2006-06-08
EP1667387B1 (en) 2013-05-08
KR20060063693A (ko) 2006-06-12
US7263573B2 (en) 2007-08-28
CN1783041A (zh) 2006-06-07
CN1783041B (zh) 2012-01-11
JP4878475B2 (ja) 2012-02-15
EP1667387A3 (en) 2011-08-17
KR101238460B1 (ko) 2013-03-04
EP1667387A2 (en) 2006-06-07
US7149839B2 (en) 2006-12-12
US20070083695A1 (en) 2007-04-12

Similar Documents

Publication Publication Date Title
JP4878475B2 (ja) 無線usbハードウェアのスケジューリング
US11176068B2 (en) Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
JP5661874B2 (ja) 電力管理のためのアイドル期間報告
US9740455B2 (en) Apparatus and method for adjusting a rate at which data is transferred from a media access controller to a memory in a physical-layer circuit
US10331612B1 (en) Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors
US7653773B2 (en) Dynamically balancing bus bandwidth
US8694725B2 (en) Storage system and control method thereof as well as program
US8019887B2 (en) Method, system, and program for managing a speed at which data is transmitted between network adaptors
JP2005527007A (ja) コンピュータネットワーク内のブロックデータ保存
US7616566B2 (en) Data flow control apparatus and method of mobile terminal for reverse communication from high speed communication device to wireless network
US20040198223A1 (en) Flow control in a bluetooth wireless communication system
JP2004070570A (ja) データ転送制御システム、電子機器、プログラム及びデータ転送制御方法
US6898654B1 (en) Method and system for managing bandwidth on a master-slave bus
US7392333B2 (en) Fibre channel environment supporting serial ATA devices
US8180926B2 (en) Adaptable resource spoofing for an extended computer system
US20090287862A1 (en) Host device and scheduling method
TW202009698A (zh) 操作頻率調整方法及電腦程式產品及裝置
US20240089886A1 (en) Method for lane synchronization for an interconnection protocol, controller, and storage device
JP2000032005A (ja) デ―タ通信システム、デ―タ通信方法、デ―タ通信装置、デジタルインタフェ―ス及び記憶媒体
US20220326855A1 (en) Peripheral component interconnect express interface device and operating method thereof
JP2000032010A (ja) デ―タ通信システム、デ―タ通信方法、デ―タ通信装置、デジタルインタフェ―ス及び記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110325

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110624

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110722

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111128

R150 Certificate of patent or registration of utility model

Ref document number: 4878475

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

LAPS Cancellation because of no payment of annual fees