JP5639107B2 - ユニバーサル・シリアル・バス(usb)のためのフロー制御 - Google Patents

ユニバーサル・シリアル・バス(usb)のためのフロー制御 Download PDF

Info

Publication number
JP5639107B2
JP5639107B2 JP2012087356A JP2012087356A JP5639107B2 JP 5639107 B2 JP5639107 B2 JP 5639107B2 JP 2012087356 A JP2012087356 A JP 2012087356A JP 2012087356 A JP2012087356 A JP 2012087356A JP 5639107 B2 JP5639107 B2 JP 5639107B2
Authority
JP
Japan
Prior art keywords
usb
notification
usb device
flow control
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.)
Expired - Fee Related
Application number
JP2012087356A
Other languages
English (en)
Other versions
JP2012168965A (ja
Inventor
ホンシ・グオ
ジェフリー・アラン・ディック
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2012168965A publication Critical patent/JP2012168965A/ja
Application granted granted Critical
Publication of JP5639107B2 publication Critical patent/JP5639107B2/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
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/426Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using an embedded synchronisation, e.g. Firewire bus, Fibre Channel bus, SSA bus
    • 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
    • G06F13/14Handling requests for interconnection or transfer
    • 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
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Description

優先権の主張
本願は、本願の譲受人に譲渡され、本明細書に参照によって組み込まれている2006年5月25日に出願の"Optimized USB Flow Control Mechanism"と題された米国仮特許出願60/808,691号の優先権を主張する。
本開示は、一般に、データ通信に関し、更に詳しくは、USBを経由したデータ交換を制御する技術に関する。
USBは、例えば、キーボード、マウス・デバイス、プリンタ、スキャナ、メモリ・スティック、ディスク・ドライブ、デジタル・カメラ、ウェブカメラ等のような外部デバイスをコンピュータに相互接続するために広く使用されているシリアル・バスである。USBは、例えば、携帯情報端末(PDA)、ゲーム機等などのような他の電子デバイスにも共通して使用される。
USBは、USBホストと、USBホストに接続されたUSBデバイスとの間でのデータ交換のために、ホスト中心アーキテクチャを利用する。USBホストは、コンピュータ上に存在することができ、USBデバイスは、USBワイヤによってコンピュータに接続された外部デバイスでありうる。ホスト中心アーキテクチャでは、USBホストが、全てのUSBデバイスとの通信を制御する。新たなUSBデバイスがコンピュータに接続している場合にはいつでも、USBホストとUSBデバイスとは、USBデバイスを設定するためシグナリングを交換する。その後、USBホストが、USBデバイスへデータを送ったり、あるいはUSBデバイスからデータを受信しようと望む場合には常に、USBホストは、トークン・パケットをUSBデバイスに定期的に送ることができる。トークン・パケットがUSBホストから発行された場合にはいつでも、USBデバイスは、USBホストからデータを受信するか、あるいはUSBホストにデータを送ることができる。
USBホストは、USBデバイスへトークン・パケットを送ることにより、トランザクションを開始することができる。トークン・パケットを受信すると、USBデバイスがデータを一時的に送信も受信もできない場合、USBデバイスは、否定的なアクノレッジメント(NAK)ハンドシェイク・パケットを送ることができる。USBデバイスからNAKを受信すると、USBホストは、後の時間に別のトークン・パケットを送ることによって、NAKされたトランザクションを再試行することができる。
NAKハンドシェイク・パケットは、USBにおけるフロー制御に使用されうる。USBデバイスは、データ・レートを調節し、バッファがアンダー・フローまたはオーバー・フローすることを防ぐために、NAKハンドシェイク・パケットを送ることができる。しかしながら、NAKされたトランザクションは、著しい量のUSB帯域幅および電力を消費しうる。
従って、当該技術分野では、USBにおけるフロー制御をより効率的に実行するための技術に対するニーズがある。
本明細書では、NAKされるトランザクションを減らし、データ・パフォーマンスおよび電力効率を改善するために、USBにおけるフロー制御を実行する技術が記述される。フロー制御のために、USBデバイスは、USBホストとデータを交換する能力を判定し、その能力に基づいて、フロー制御のための通知を送る。
1つの設計では、USBホストは、USBデバイスとのデータ交換(例えば、USBデバイスへのデータの送信、または、USBデバイスからのデータの受信)を開始するために、(例えば定期的に)パケットをUSBデバイスに送ることができる。例えば、送るデータが存在しなかったり、バッファがフルあるいはほとんどフルであることによって、USBデバイスは、USBホストとデータを交換できないことを判定する。USBデバイスは、データ交換を中止するために、(例えば、割り込みパイプで)「フロー・オフ」通知をUSBホストに送ることができる。USBホストは、このフロー・オフ通知を受信し、USBデバイスへトークン・パケットを送ることを中止することができる。その後、USBデバイスは、USBホストとデータを交換できることを判定することができる。そして、USBデバイスは、データ交換を再開するために、USBホストに「フロー・オン」通知を送ることができる。USBホストは、このフロー・オン通知を受信し、USBデバイスへのトークン・パケットの送信を再開することができる。USBデバイスがデータを交換できない間、トークン・パケットの送信を中止することによって、NAKされるトランザクションが低減あるいは回避されうる。
本開示の様々な局面および特徴が、以下に更に詳細に記載される。
図1は、USBホストおよびUSBデバイスのブロック図を示す。 図2Aは、USBデバイスからのデータを読み取るINトランザクションを示す。 図2Bは、USBデバイスへデータを送るOUTトランザクションを示す。 図2Cは、USBデバイスへデータを送るOUTトランザクションを示す。 図3は、フロー制御のないトークン・パケットおよびNAKされたトランザクションの送信を示す。 図4は、割り込みパイプで送られた通知を用いたUSBのフロー制御を示す。 図5は、フロー制御のためにUSBデバイスによって実行される処理を示す。 図6は、フロー制御のためにUSBホストによって実行される処理を示す。 図7は、無線通信デバイスのブロック図を示す。
本明細書に記載されたフロー制御技術は、USB、その他のバス、ポーリング・ベースの入力/出力(I/O)システム、およびデータがエンティティ間で交換されるその他のシステムのために使用されうる。明確にするために、本技術は特に、2000年4月27日に発行された公的に利用可能な文献"Universal Serial Bus Specification" 改訂2.0でカバーされたUSBについて以下に記載されている。
USBは、以下の専門用語を用いる。
・ファンクション−USBホストに機能/タスクを与えるUSBデバイス。
・エンドポイント−USBデバイス(またはファンクション)とUSBホストとの間の通信フロー内の情報シンクまたはソース。
・パイプ−USBデバイス上のエンドポイントとUSBホストとの間の論理チャネル。
・トランザクション−トークン・パケット、オプションのデータ・パケット、およびオプションのハンドシェイク・パケットからなるサービスのエンドポイントへの配信。
USBデバイスは、1または複数のファンクションを有することができる。例えば、ウェブカメラは、ビデオのための1つのファンクションと、音のための別のファンクションとを有することができる。物理的なUSBデバイスはそれぞれ、USBホストによって割り当てられたユニークな7ビットのアドレスによって識別される。USBホストは、1から127までの127の異なるアドレスを備えた最大127の物理的なUSBデバイスをサポートすることができる。ファンクションは、1または複数のエンドポイントを有することができる。エンドポイントはそれぞれ、4ビットのエンドポイント番号によって識別される。例えば、ファンクションは、USBホストへデータを送るINエンドポイントと、USBホストからデータを受信するOUTエンドポイントとを有する。ここで、「IN」および「OUT」は、USBホストから見た場合である。
図1は、USBホスト110およびUSBデバイス120の設計のブロック図を示す。この設計では、USBホスト110は、アプリケーション112、ファンクション・ドライバ114、およびバス・ドライバ116を含む。アプリケーション112は、USBデバイスと交換するためのデータを有する任意のアプリケーションを備えうる。図1に示すように、アプリケーション112は、USBホスト110上に存在しうるか、あるいは、USBホスト110が存在するコンピュータまたはその他の幾つかの電子デバイスの一部でありうる。ファンクション・ドライバ114は、USBホスト110に接続されたUSBデバイスのファンクションのためのデータ交換を管理する。ファンクション・ドライバ114は、アプリケーション112とインタフェースしており、アプリケーションのためにデータを送信および/または受信するトランザクションを開始する。バス・ドライバ116は、USBワイヤ130を経由したUSBデバイスとのパケット通信をサポートし、パケット交換のための物理レイヤ処理を実行する。バス・ドライバ116は、ファンクション・ドライバ114によって指示されたように、パケットの送信および受信を行う。
図1に示す設計では、USBデバイス120は、アプリケーション122、ファンクション124、USBドライバ126、INバッファ128a、およびOUTバッファ128bを含んでいる。一般に、USBデバイス120は、1または複数のファンクションを有しうる。簡略化のために、以下の説明は、USBデバイス120が、1つのファンクションを持っていると仮定する。アプリケーション122は、USBホスト110と交換するためのデータを有する任意のアプリケーションを備えうる。ファンクション124は、アプリケーション122とインタフェースし、このアプリケーションのためUSBホスト110とのデータ交換をサポートする。USBドライバ126は、USBワイヤ130を経由したUSBホスト110とのパケット交換をサポートし、このパケット交換のための物理レイヤ処理を実行する。INバッファ128aは、USBホスト110に送られるデータを格納し、OUTバッファ128bは、USBホスト110から受信したデータを格納する。
図1は、USBホスト110およびUSBデバイス120の具体的設計を示す。一般に、USBホストは、USBデバイス110について図1に示すものと同じまたは異なるモジュールを含むことができる。USBデバイスはさらに、USBデバイス120について図1に示すものと同じまたは異なるモジュールを含むことができる。モジュールはそれぞれ、ハードウェア、ファームウェア、ソフトウェア、あるいはそれらの組み合わせで実現されうる。
USBホスト110は、USBデバイス120におけるファンクション124のINエンドポイントからデータを受信するか、あるいは、ファンクション124のOUTエンドポイントへデータを送るためのトランザクションを開始することができる。トランザクションのタイプが異なると、異なるパケット・シーケンスが交換されうる。USB2.0は、3つの異なる速度設定、すなわち、最大1.5メガビット/秒(Mbps)をカバーする低速度、最大12Mbpsをカバーするフル速度、最大480Mbpsをカバーする高速度をサポートする。異なる速度設定のOUTトランザクションについては、異なるパケット・シーケンスが交換されうる。
図2Aは、3つ全ての速度設定について、USBデバイス120からデータを読み取るINトランザクションを示す。INトランザクションについては、USBホスト110が、USBデバイス120からデータを読み取ることを要求するパケットであるINトークン・パケットを送る(ステップ212)。INトークン・パケットは、USBデバイス120のアドレス、およびINエンドポイント番号を含んでいる。USBデバイス120は、INトークン・パケットを受信し、送るデータを持っており、このデータを送ることができることを判定し、データ・パケットをUSBホスト110へ送る(ステップ214)。USBホスト110は、このデータ・パケットを受信し、パケットを正しく受信したことを判定し、アクノレッジメント(ACK)ハンドシェイク・パケットを送る(ステップ216)。ステップ212、214および216は、成功したINトランザクションを構成する。
別のINトランザクションについては後の時間に、USBホスト110が、USBデバイス120におけるファンクション124のINエンドポイントにINトークン・パケットを送る(ステップ222)。USBデバイス120は、INトークン・パケットを受信し、送るデータを持っておらず、このデータを送ることができないことを判定し、NAKハンドシェイク・パケットをUSBホスト110へ送る(ステップ224)。USBホスト110は、NAKパケットを受信し、後の時間に、INトランザクションを再試行することができる。ステップ222および224は、NAKされたINトランザクションを構成する。ここでは、2つのオーバヘッド・パケット(データ・パケットはない)が、USBホスト110とUSBデバイス120との間で交換される。
図2Bは、低速度およびフル速度の場合に、USBデバイス120にデータを送るOUTトランザクションを示す。OUTトランザクションの場合、USBホスト110は、USBデバイス120にデータを書き込むことを要求するパケットであるOUTトークン・パケットを送る(ステップ232)。OUTトークン・パケットは、USBデバイス120のアドレスと、OUTエンドポイント番号を含んでいる。その後、USBホスト110は、USBデバイス120からの返答を待たずに、OUTトークン・パケットの直後に、データ・パケットをUSBデバイス120へ送る(ステップ234)。USBデバイス120は、OUTトークン・パケットを受信し、データ・パケットを受信し、このパケットを正しく受信したことを判定し、ACKハンドシェイク・パケットを送る(ステップ236)。ステップ232、234および236は、低速度またはフル速度における成功したOUTトランザクションを構成する。
後の時間の別のOUTトランザクションの場合、USBホスト110が、OUTトークン・パケットとデータ・パケットとの両方を、USBデバイス120におけるファンクション124のOUTエンドポイントへ送る(ステップ242,244)。USBデバイス120は、OUTトークン・パケットおよびデータ・パケットを受信し、データを受信することができないことを判定し、NAKハンドシェイク・パケットを送る(ステップ246)。USBホスト110は、NAKパケットを受信し、後の時間に、OUTトランザクションを再試行することができる。ステップ242、244および246は、NAKされたOUTトランザクションを構成する。この失敗した転送の場合、2つのオーバヘッド・パケットおよび1つのデータ・パケットが、USBホスト110とUSBデバイス120との間で交換される。
図2Cは、USBデバイス120へデータを高速で送るOUTトランザクションを示す。OUTトランザクションの場合、USBホスト110は、USBデバイス120の機能に対して、データを受信するように求めるPINGトークン・パケットを送る(ステップ252)。PINGパケットは、USBにおいて特別なパケットとして分類されるが、本明細書では、トークン・パケットと称する。ステップ252におけるPINGトークン・パケットは、USBデバイス120のアドレスとOUTエンドポイント番号を含んでいる。USBデバイス120は、PINGトークン・パケットを受信し、データを受信できるのであれば、ACKハンドシェイク・パケットを送る(ステップ254)。ACKを受信すると、USBホスト110は、OUTトークン・パケットおよびデータ・パケットをUSBデバイス120へ送り(ステップ262、264)、USBデバイス120は、ACKまたはNYETハンドシェイク・パケットを返す(ステップ266)。ステップ252乃至266は、高速度での成功したOUTトランザクションを構成する。
後の時間の別のOUTトランザクションの場合、USBホスト110が、USBデバイス120へPINGトークン・パケットを送る(ステップ272)。USBデバイス120は、PINGトークン・パケットを受信し、データを受信できないことを判定し、NAKハンドシェイク・パケットを送る(ステップ274)。USBホスト110は、NAKパケットを受信し、後の時間に、OUTトランザクションを再試行することができる。ステップ272および274は、NAKされたOUTトランザクションを構成する。この失敗した転送について、2つのオーバヘッド・パケットが、USBホスト110とUSBデバイス120との間で交換される。
図2Aおよび図2Bに示すように、USBホスト110は、USBデバイス120とのデータ交換を制御する。USBホスト110は、USBデバイス120からデータを読み取るINトランザクションと、USBデバイスへデータを書き込むOUTトランザクションとの両方を開始する。USBホスト110は、USBデバイス120のデータ要件と利用可能な帯域幅とに基づいて、INトークン・パケットを定期的に送ることができる。USBホスト110は、USBデバイス120へ送るデータを有する場合には常に、OUTトークン・パケットまたはPINGトークン・パケットを送信することができる。USBホスト110は一般に、INトークン・パケットを暗黙的に送り、USBホスト110が、送るデータを持っているか、あるいはデータを送ることができるかを前もって知っていない。またUSBホスト110は一般に、送るデータを持っておりかつUSBホスト110がデータを受信できるか否かを前もって知らない場合、OUTトークン・パケットまたはPINGトークン・パケットを送る。
図3は、USBホスト110とUSBデバイス120との間のパケット交換の一例を示す。この例において、USBデバイス120は、USBホスト110とのデータ・パイプおよび割り込みパイプを持っている。USBでは、パイプは一般に、特定のファンクション、特定のエンドポイント、および特定の方向に関連付けられる。割り込みパイプは、例えば、フロー制御情報のようなシグナリング情報を送るために使用されうるシグナリング・チャネルと見なすことができる。一般に、USBデバイスは、割り込みパイプを持っている場合も、持っていない場合もある。データ・パイプは、データ・トラフィックを送るために使用されうるデータ・チャネルと見なされうる。データ・パイプは、USBにおけるバルク・パイプまたは等時性(isochronous)パイプであり、IN方向またはOUT方向用でありうる。パイプは一方向であり、USBデバイス120からUSBホスト110へのIN方向であるか、あるいは、USBホスト110からUSBデバイス120へのOUT方向かの何れかで、情報を搬送することができる。図3に示す例では、割り込みパイプおよびデータ・パイプの両方ともIN方向用である。
割り込みパイプのエンドポイントは、USBホスト110とのセットアップ中に、このパイプのための所望のバス・アクセス期間を特定することができる。割り込みパイプのためのバス・アクセス期間は、以下の範囲のうちの1つから選択されうる。
・エンドポイントが低速度をサポートする場合、10乃至255ミリ秒(ms)、
・エンドポイントがフル速度をサポートする場合、1乃至255ms、
・エンドポイントが高速度をサポートする場合、0.125乃至0.125×2ms、ただしM≦15。
USBホスト110は、割り込みパイプ用のINトークン・パケットを、割り込みパイプ用のバス・アクセス周期と等しいかまたはそれ未満であるTinterruptの周期でUSBデバイス120へ送ることができる。INトークン・パケットが、割り込みパイプについて受信される場合には常に、USBデバイス120は、制御情報を有するデータ・パケットか、またはNAKハンドシェイク・パケットかの何れかを、例えば図2Aに示すようにしてUSBホスト110へ送ることができる。
USBホスト110は、データ・パイプのINトークン・パケットを、USBデバイス120のデータ要件、利用可能なUSB帯域幅等に基づいて決定されうる周期Tdataで、USBデバイス120へ送ることができる。Tdataは、Tinterruptよりもはるかに短く、フル速度および高速度の場合、マイクロ秒(μs)のオーダでありうる。したがって、USBホスト110は、割り込みパイプのために送られる各INトークン・パケットのデータ・パイプについて、多くの(例えば、何百もの)INトークン・パケットを送ることができる。INトークン・パケットが、データ・パイプについて受信される場合には常に、USBデバイス120は、トラフィック・データを伴うデータ・パケット、または、NAKハンドシェイク・パケットかの何れか一方をUSBホスト110へ送ることができる。簡略のために、ACKハンドシェイク・パケットは、図3に示されていない。
図3に示すように、データ・パイプについてNAKされたトランザクションが多く存在する。NAKされたトランザクションは、かなりの量のUSB帯域幅を消費し、USBワイヤ上の他のパイプの最大実効データ・スループットを低減しうる。NAKされたトランザクションはまた、どのような有益な結果も与えることなく、USBホスト110およびUSBデバイス120における電力をも消費する。
局面では、NAKされたトランザクションを低減または回避するために、USBについてのフロー制御が実行される。これは、データ・パフォーマンスおよび電力効率を向上することができる。フロー制御のために、USBデバイス120は、USBホスト110とデータを交換する能力を判定することができる。USBデバイス120は、この判定された能力に基づいて、フロー制御に関する通知を、USBホスト110へ送ることができる。
一般に、USBデバイス120は、フロー制御のために、様々なタイプの情報をUSBホスト110へ送ることができる。例えば、フロー制御のために以下の情報を送ることができる。
・フロー・オフ通知−トランザクション/データ交換を中止する表示。
・フロー・オン通知−トランザクション/データ交換を再開する表示。
・データ・レート−交換するトラフィック・データのレートを示す。
・バッファ・サイズ−IN方向またはOUT方向で送るデータ量を示す。
・トークン・レート−USBホスト110によって送られるトークン・パケットのレートを示す。
・タイムアウト−フロー制御をイネーブルするか否かを定期的に判定するために使用される。
・Nショット表示−N回(N≧1)のデータ転送を実行して停止する表示。
・制御持続時間−フロー制御が適用される持続時間を示す。
フロー制御情報は、フロー制御されているパイプ以外のパイプで送られる。
1つの設計では、フロー制御は、別の名称でも称されうるフロー・オン通知およびフロー・オフ通知に基づいて実行される。この設計では、USBデバイス120が、特定のパイプについてデータを交換できないことを判定すると、USBデバイス120は、このパイプにおけるトランザクションを中止するためにUSBホスト110へフロー・オフ通知を送る。フロー・オフ通知を受信すると、USBホスト110は、このパイプにおけるトランザクションをスケジュールしない。これは、NAKされたトランザクションによるUSB帯域幅の浪費を回避する。その後USBデバイス120が、中止されたパイプのデータを再び交換できることを判定すると、USBデバイス120は、このパイプにおけるトランザクションを再開するために、USBホスト110へフロー・オン通知を送る。フロー・オン通知を受信すると、USBホスト110は、このパイプにおけるトランザクションを再開する。この設計では、フロー・オフ通知およびフロー・オン通知は、このパイプにおけるトランザクションの停止および開始に対する実質的な要求である。
フロー制御は、USBデバイス120において、各パイプについて独立して実行されうる。各パイプは一方向であるので、フロー制御は、IN方向およびOUT方向について独立して実行されうる。フロー制御はまた、例えば単一の論理ユニットのように、ともに「バンドルされた」パイプのセットについても実行される。
USBデバイス120は、アップストリームおよび/またはダウンストリームで、USBホスト110とデータを交換することができる。したがって、データを交換することは、IN方向(アップストリーム)でUSBホスト110へデータを送ること、または、OUT方向(ダウンストリーム)でUSBホスト110からデータを受信することを称する。USBデバイス120は、様々な理由で、与えられた方向で、USBホスト110とデータを正しく交換できうる。IN方向の場合、USBデバイス120は、送るデータが存在しない場合、INバッファ128aが空またはほとんど空である場合、USBデバイスにおいて処理リソースが利用可能ではない場合等において、USBホスト110にデータを送ることができない。OUT方向の場合、USBデバイス120は、OUTバッファ128bがフルまたはほとんどフルである場合、USBデバイスにおいて処理リソースが利用可能ではない場合、USBデバイスのCPUが他のタスクによって占有されている場合等において、USBホスト110からデータを受信できない。
IN方向でのアップストリームUSB転送の場合、USBデバイス120が、USBホスト110へと特定のパイプxで送るデータを有していない場合、USBデバイス120は、パイプxのためのフロー・オフ通知を送ることができる。フロー・オフ通知は、USBホスト110に対するパイプxを識別する情報を含むことができる。USBホスト110は、パイプxでデータを求める要求を停止し、パイプxのためのINトークン・パケットを、USBデバイス120へ送ることを中止することができる。USBデバイス120が、パイプxで送るための利用可能なデータを有している場合、USBデバイス120は、パイプxに関するフロー・オン通知をUSBホスト110へ送ることができる。このフロー・オン通知は、USBホスト110に対するパイプxを識別する情報を含むことができる。その後、USBホスト110は、パイプxに関するINトークン・パケットをUSBデバイス120へ送ることを再開することができる。
パイプxによるアップストリームUSB転送は、パイプxに関するフロー・オフ通知が送られた時点において不完全であるかもしれない。この場合、USBデバイス120は、アップストリームUSB転送を再開し、フロー・オン通知を送ると、中止されたところから継続することができる。あるいは、USBデバイス120は、アップストリームUSB転送を最初から再開し、フロー・オフ通知前に送られた部分を再送信することができる。
OUT方向におけるダウンストリームUSB転送の場合、USBデバイス120が、USBホスト110から、特定のパイプxでデータを受信できないことを判定した場合、USBデバイス120は、パイプxに関するフロー・オフ通知を送ることができる。例えば、USBデバイス120におけるOUTバッファ128bがフル、またはほとんどフルであり、USBデバイス120は、その時、あるいはその直後、新たなデータを受信できない。フロー・オフ通知は、USBホスト110へのパイプxを識別する情報を含みうる。USBホスト110は、パイプxでデータを送ることを止め、USBデバイス120へとパイプxでOUTトークン・パケットまたはPINGトークン・パケットを送ることを中止する。USBデバイス120が再び、パイプxでデータを受信できる場合、USBデバイス120は、パイプxに関するフロー・オン通知をUSBホスト110へ送ることができる。このフロー・オン通知は、USBホスト110へのパイプxを識別する情報を含みうる。その後、USBホスト110は、パイプxでデータの送信を開始し、OUTトークン・パケットまたはPINGトークン・パケットをパイプxでUSBデバイス120へ送信することを再開することができる。
パイプxによるダウンストリームUSB転送は、パイプxのフロー・オフ通知が送られた時に不完全であるかもしれない。この場合、その後ホスト110がダウンストリームUSB転送を再開し、フロー・オン通知を受信すると、中止されたところから継続することができる。あるいは、USBホスト110は、ダウンストリームUSB転送を最初から再開し、フロー・オフ通知前に送られた部分を再送信することができる。
フロー・オフ通知およびフロー・オン通知は、例えば、既存のUSBメッセージまたは新たなUSBメッセージを用いることによって、様々な方法で送られうる。1つの設計では、通信デバイスのためのUSBクラス定義で定義された既存の接続速度変更(ConnectionSpeedChange)通知メッセージが、フロー・オフ通知およびフロー・オン通知を搬送するために使用される。この設計では、ゼロ値である接続速度が、フロー・オフ通知を搬送するために使用され、非ゼロ値が、フロー・オン通知(および恐らくは許容可能なデータ・レート)を搬送するために使用される。接続速度変更(ConnectionSpeedChange)通知メッセージは、割り込みパイプで送られうる。フロー・オフ通知およびフロー・オン通知は、既存の別のUSBメッセージ、あるいは、この目的のために定義された新たなUSBメッセージで搬送される。
1つの設計では、フロー・オフ通知およびフロー・オン通知は、USBデバイス120がUSBホスト110に接続されている間、常に利用可能である割り込みパイプで送られる。割り込みパイプは、データ・パイプと同様の方法で動作する。しかしながら、バス・アクセス周期は、例えば、割り込みパイプの場合、ミリ秒のオーダであり、フル速度のデータ・パイプまたは高速度のデータ・パイプの場合、マイクロ秒のオーダであるように、データ・パイプよりもはるかにゆっくりしている。従って、USBホスト110は、データ・パイプよりも、割り込みパイプの場合、はるかに遅いレートでトークン・パケットを送ることができる。USBデバイス120が、割り込みパイプに関するINトークン・パケットを受信した場合にはいつでも、USBデバイス120は、フロー制御通知メッセージ、NAKハンドシェイク・パケット、またはその他幾つかのパケットを、割り込みパイプでUSBホスト110へ送ることができる。フロー制御通知は、フロー・オフ通知またはフロー・オン通知でありうる。
図4は、割り込みパイプで送られた通知を用いたUSBのためのフロー制御設計を示す。一般に、フロー制御は、IN方向および/またはOUT方向のために実行されうる。図4に示す例では、USBデバイス120は、ともにIN方向用である割り込みパイプおよびデータ・パイプを有する。
USBホスト110は、データ・パイプに関するINトークン・パケットを、USBデバイス120へ周期的に送る。USBデバイス120は、ACKハンドシェイク・パケットおよびデータ・パケットを、あるいは、NAKハンドシェイク・パケットをUSBホスト110に送ることによって、各INトークン・パケットに応答する。時間T1において、USBデバイス120は、USBホスト110へ送るデータがデータ・パイプ上にないと判定する。USBデバイス120はその後、割り込みパイプのための次のINトークン・パケットを待ち、時間T2において、フロー・オフ通知メッセージを、割り込みパイプによってUSBホスト110へ送る。USBホスト110は、このフロー・オフ通知を受信し、時間T3において、データ・パイプに関するINトークン・パケットを送ることを中止する。USBホスト110は、割り込みパイプに関するINトークン・パケットであって、USBデバイス120によってNAKされたINトークン・パケットを、定期的に送ることができる。
時間T4では、USBデバイス120は、USBホスト110へ送るデータがデータ・パイプ上に存在すると判定する。その後、USBデバイス120は、割り込みパイプに関する次のINトークン・パケットを待ち、時間T5において、USBホスト110へ割り込みパイプでフロー・オン通知を送る。USBホスト110は、フロー・オン通知を受信し、時間T6において、データ・パイプに関してINトークン・パケットを送ることを再開する。
図4に示すように、データ・パイプで送るデータが存在しないと判定されると、フロー・オフ通知を送ることによって、データ・パイプ上でNAKされたトランザクションが低減または回避される。データ・パイプ上でNAKされたトランザクションを回避することによって節約される帯域幅は、USBホスト110に接続されたUSBワイヤを共有する他のパイプのために使用されうる。
図4に示すように、割り込みパイプに関してINトークン・パケットが受信される場合、USBデバイス120は、フロー制御通知を送る場合も、送らない場合もある。従って、割り込みパイプ上の幾つかのトランザクションは、NAKされうる。しかしながら、割り込みパイプのトランザクション・レートは、データ・パイプのトランザクション・レートよりもはるかに低くなりうる。従って、割り込みパイプ上でNAKされたトランザクションは、データ・パイプ上でNAKされたトランザクションよりも、より少ないUSB帯域幅しか浪費されない。更に、割り込みパイプのためのバス・アクセス周期は、NAKされたトランザクションによるオーバヘッドを低減させながら通知を送るための所望の応答時間を得るように選択されうる。
図4に示す設計では、USBデバイス120は、任意の時間の代わりに、割り込みパイプのINトークン・パケットを受信した後、フロー制御通知を送ることができる。更に、USBホスト110がフロー・オフ通知を受信した時から、データ・パイプ上でトランザクションが中止される時までの遅延があるだろう。USBデバイス120は、割り込みパイプのバス・アクセス周期およびUSBホスト110の遅延に対処する方法で、フロー制御通知を送ることができる。OUT方向のデータ・パイプの場合、USBデバイス120は、OUTトランザクションが中止されるまで、USBホスト110からデータを受信し続けることができる。USBデバイス120は、フロー・オフ通知が送られた時と、USBホスト110がデータ・パイプ上のOUTトランザクションを中止する時との間の期間に、OUTトランザクションをNAKすることを回避するために、OUTバッファ128b内の幾つかの容量を節約することができる。節約されたバッファ容量の量は、この期間の予期された長さ、データ・パイプの最大データ・レートまたは平均データ・レート等に基づいて判定される。
図4に示す設計では、フロー制御は、フロー・オフ通知およびフロー・オン通知のみに基づいて実行されうる。別の設計では、フロー制御は、フロー・オフ通知およびフロー・オン通知に加えて、あるいはその代わりに、データ・レートに基づいて実行される。USBデバイス120は、データ・レートをUSBホスト110に送ることができる。USBホスト110は、データ・レートが達成されるように、その後、トークン・パケットを送ることができる。また別の設計では、送ることができるデータ量を示すバッファ・サイズに基づいてフロー制御が実行される。USBホスト110は、バッファ・サイズに基づいて決定されたレートでトークン・パケットを送ることができる。また別の設計では、フロー制御は、フロー・オフ通知およびフロー・オン通知に加えて、あるいはその代わりに、トークン・レートに基づいて実行される。USBホスト110は、トークン・パケットをトークン・レートでUSBデバイス120へ送ることができる。一般に、フロー制御は、上にリストしたパラメータ(例えば、フロー・オフ通知およびフロー・オン通知、データ・レート、バッファ・サイズ、トークン・レート、制御期間等)のうちの何れかおよび/またはその他のパラメータに基づいて実行されうる。
図5は、フロー制御のためにUSBデバイスによって実行される処理500の設計を示す。USBホストとデータを交換するUSBデバイスの能力が判定されうる(ブロック512)。USBデバイスの判定された能力に基づいて、フロー制御のための第1の通知が、USBホストに送られる(ブロック514)。USBデバイスがデータを交換する能力における変化が判定される(ブロック516)。USBデバイスの能力における判定された変化に基づいて、フロー制御のための第2の通知がUSBホストに送られる(ブロック518)。フロー制御のためのこれら通知は、USBデバイスとUSBホストとの間の複数のパイプのうちの特定のパイプに対して送られる。
ブロック512乃至518の場合、USBデバイスは、USBホストとデータを交換できないと判定される。データ交換を中止するために、USBホストへフロー・オフ通知が送られうる。その後、USBデバイスが、USBホストとデータを交換できるとの判定がなされる。データ交換を再開するために、フロー・オン通知が、USBホストへ送られうる。フロー・オフ通知およびフロー・オン通知は、第1の通知および第2の通知にそれぞれ対応する。
IN方向のパイプの場合、例えば、送るデータが存在しないことによって、USBデバイスが、USBホストにデータを送ることができないとの判定がなされる。フロー・オフ通知が、USBホストへ送られる。USBホストはその後、USBデバイスへINトークン・パケットを送ることを中止する。その後、USBデバイスが、USBホストへデータを送ることができるとの判定がなされる。フロー・オン通知がUSBホストへ送られる。USBホストはその後、USBデバイスへのINトークン・パケットの送信を再開する。
OUT方向のパイプの場合、例えば、USBデバイスにおけるバッファがフルまたはほとんどフルであることによって、USBデバイスが、USBホストからデータを受信できないとの判定がなされる。フロー・オフ通知がUSBホストに送られる。USBホストはその後、OUTトークン・パケットまたはPINGトークン・パケットをUSBデバイスへ送ることを中止する。USBホストによるフロー・オフ通知の受信後、OUTトークン・パケットまたはPINGトークン・パケットの送信を中止する際における遅れに対処するために確保されたバッファ容量を使用することができる。その後、USBデバイスが、USBホストからデータを受信できるとの判定がなされうる。フロー・オン通知がUSBホストに送られうる。USBホストは、その後、OUTトークン・パケットまたはPINGトークン・パケットのUSBデバイスへの送信を再開することができる。
フロー制御のための通知は、割り込みパイプでUSBホストへ送られうる。割り込みパイプ用のINトークン・パケットは、USBホストから受信され、フロー制御のための通知は、INトークン・パケットを受信した後に、割り込みパイプで送られうる。
図6は、フロー制御のために、USBホストによって実行される処理600の設計を示す。USBデバイスとのデータ交換を開始するために、USBデバイスへトークン・パケットが送られうる(ブロック612)。これらのトークン・パケットは、USBデバイスからのデータを要求するINトークン・パケットであるか、USBデバイスに送るデータを示すOUTトークン・パケットまたはPINGトークン・パケットでありうる。フロー制御のための第1の通知が、USBデバイスから受信される(ブロック614)。USBホストは、この第1の通知に応答して、トークン・パケットをUSBデバイスに送ることを変更する(ブロック616)。例えば、USBホストは、トークン・パケットを送ることを中止したり、あるいは、トークン・パケットをより遅いレートで送ることができる。その後、フロー制御のための第2の通知が、USBデバイスから受信される(ブロック618)。USBホストは、トークン・パケットをUSBデバイスへ送ることを再開することができる(ブロック620)。
これらトークン・パケットおよび通知は、USBデバイスとUSBホストとの間の複数のパイプのうちの特定のパイプのためのものでありうる。これらの通知は、USBデバイスからの割り込みパイプ上で受信されうる。割り込みパイプのINトークン・パケットは、バス・アクセス周期に従って送られる。これら通知は、割り込みパイプのINトークン・パケット後に受信される。
本明細書に記載のフロー制御技術は、デバイスによって起動されたより高いレベルのフロー制御で実現されうる。これら技術は、フロー制御通知を送るために既存のメッセージを用いる現在のUSB仕様内で実現されうる。これら技術は、USBホストおよびUSBデバイスにおけるより高次のレイヤ・ドライバを修正することによって実現される。これは、実現を単純化する。
本明細書に記載のフロー制御技術は、ある利点を与える。第1に、フロー制御を用いて、NAKされたトランザクションが低減または回避される。節約された帯域幅は、他のパイプへ再割当されうる。これは、USBワイヤに対する全体的なデータ・スループットを改善することができる。第2に、USBデバイスおよびUSBホストについて、全体的な電力効率が改良されうる。
本明細書に記載したフロー制御技術は、コンピュータ、無線通信デバイス、およびその他の電子デバイスのために共通して使用されるUSBデバイスとUSBホストのために使用される。無線デバイスのための本技術の使用が、下記に述べられる。
図7は、無線通信システムにおける無線通信デバイス700の設計のブロック図を示す。無線デバイス700は、セルラ電話、端末、ハンドセット、PDA等でありうる。無線通信システムは、符号分割多元接続(CDMA)システム、グローバル移動体通信(GSM(登録商標))システム等でありうる。
無線デバイス700は、受信パスおよび送信パスによって双方向通信を提供することができる。受信パスにおいては、基地局(図7に図示せず)によって送信された信号が、アンテナ712によって受信され、受信機(RCVR)714に提供される。受信機714は、受信信号を調整してデジタル化し、サンプルを、更なる処理のために、デジタル・セクション720へ提供する。送信パスにおいては、送信機(TMTR)716は、デジタル・セクション720から送られたデータを受け取り、データを処理して調整し、変調信号を生成する。変調信号は、アンテナ712を経由して基地局へ送信される。
デジタル・セクション720は、例えば、モデム・プロセッサ722、コントローラ/プロセッサ724、内部メモリ726、グラフィック処理装置(GPU)728、中央処理装置(CPU)730、外部バス・インタフェース(EBI)732、USBデバイス734、そしてUSBホスト736のような様々な処理ユニット、インタフェース・ユニット、およびメモリ・ユニットを含む。モデム・プロセッサ722は、例えば、符合化、変調、復調、および復号のようなデータ送信および受信のための処理を実行することができる。コントローラ/プロセッサ724は、デジタル・セクション720内の様々なユニットの動作を指示することができる。内部メモリ726は、デジタル・セクション720内の様々なユニットのためのデータおよび/または指示を格納することができる。GPU728は、グラフィクス、画像、ビデオ、テキスト等の処理を実行する。CPU730は、無線デバイス700における様々なアプリケーションのための汎用処理を実行することができる。EBI732は、デジタル・セクション720(例えば、内部メモリ726)と主メモリ742との間のデータの転送を容易にすることができる。USBデバイス734は、ラップトップ・コンピュータまたはその他幾つかの電子デバイス内に存在しうるUSBホスト744と通信することができる。USBホスト736は、表示装置、スピーカ、ウェブカメラ等でありうるUSBデバイス746と通信することができる。USBデバイス734および/またはUSBホスト736は、本明細書に記載のフロー制御技術を実施することができる。
デジタル・セクション720は、1または複数のプロセッサを用いて実現されうる。デジタル・セクション720はまた、1または複数の特定用途向けIC(ASIC)および/またはその他幾つかのタイプの集積回路(IC)でありうる。
本明細書に記載のフロー制御技術は、様々な手段によって実現されうる。例えば、これらの技術は、ハードウェア、ファームウェア、ソフトウェア、あるいはこれらの組み合わせで実現されうる。ハードウェアによる実現の場合、USBホストまたはUSBデバイスにおいてフロー制御を実施するために使用される処理ユニットは、1または複数のASIC、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラム可能論理回路(PLD)、フィールド・プログラム可能ゲート・アレイ(FPGA)、プロセッサ、コントローラ、マイクロ・コントローラ、マイクロプロセッサ、電子デバイス、本明細書に記載の機能を実行するように設計されたその他の電子ユニット、コンピュータ、またはこれらの組み合わせ内で実施される。
ファームウェア及び/又はソフトウェアによる実現の場合、本明細書に記載の機能を実行するモジュール(例えば、手順、関数等)を用いて、フロー制御技術が実現されうる。ファームウェア命令および/またはソフトウェア命令は、メモリ(例えば、図7におけるメモリ726または742)に格納され、プロセッサ(例えば、プロセッサ724)によって実行されうる。メモリは、プロセッサ内に実装されるか、あるいはプロセッサの外部に実装されうる。ファームウェア命令および/またはソフトウェア命令は、例えば、ランダム・アクセス・メモリ(RAM)、読取専用メモリ(ROM)、不揮発性ランダム・アクセス・メモリ(NVRAM)、プログラマブル読取専用メモリ(PROM)、電子的消去可能PROM(EEPROM)、FLASHメモリ、コンパクト・ディスク(CD)、磁気または光学的なデータ記憶デバイス等のようなその他のプロセッサ読取可能媒体内にも格納されうる。
本明細書に記載の技術を実現する装置は、スタンド・アロン・ユニットであるか、あるいは、デバイスの一部でありうる。このデバイスは、(i)スタンド・アロンの集積回路(IC)、(ii)データおよび/または命令を格納するためのメモリICを含む1または複数のICからなるセット、(iii)移動局モデム(MSM)のようなASIC、(iv)他のデバイス内に組み込まれたモジュール、(v)セルラ電話、無線デバイス、ハンドセット、またはモバイル・ユニット、(vi)その他でありうる。
本開示の前述の説明は、当業者が、本開示を製造または利用できるように提供される。本開示に対する様々な修正が当業者には容易に明らかになるだろう。そして、本明細書に定義された一般原理は、本開示の精神または範囲から逸脱することなく、その他のバリエーションにも適用されうる。従って、本開示は、本明細書に記載の例および設計に限定されることは意図されておらず、本明細書に開示された原理および斬新な特徴と一致した最も広い範囲であると考えられる。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[発明1]
ユニバーサル・シリアル・バス(USB)デバイスの、USBホストとデータを交換する能力を判定し、前記判定されたUSBデバイスの能力に基づいて、フロー制御のための通知を、前記USBホストへ送るように構成されたプロセッサと、
前記プロセッサに接続されたメモリと
を備える装置。
[発明2]
前記プロセッサは、前記USBデバイスと前記USBホストとの間の複数のパイプのうちの特定のパイプのために、前記フロー制御のための通知を送るように構成された発明1に記載の装置。
[発明3]
前記プロセッサは、前記USBデバイスが前記USBホストとデータを交換できないことを判定し、データ交換を中止するために、前記USBホストに、フロー・オフ通知を送るように構成された発明1に記載の装置。
[発明4]
前記フロー・オフ通知を送った後、前記プロセッサは、前記USBデバイスが前記USBホストとデータを交換できることを判定し、データ交換を再開するために、前記USBホストへフロー・オン通知を送るように構成された発明3に記載の装置。
[発明5]
前記プロセッサは、前記USBデバイスが前記USBホストへデータを送ることができないことを判定し、前記USBホストへとフロー・オフ通知を送るように構成され、
前記USBホストは、前記フロー・オフ通知に応答して、INトークン・パケットを前記USBデバイスへ送ることを中止する発明1に記載の装置。
[発明6]
前記プロセッサは、送るデータが存在しない場合、前記USBデバイスが前記USBホストへデータを送ることができないことを判定するように構成された発明5に記載の装置。
[発明7]
前記フロー・オフ通知を送った後、前記プロセッサは、前記USBデバイスが前記USBホストへデータを送ることができることを判定し、前記USBホストへフロー・オン通知を送るように構成され、
前記USBホストは、前記フロー・オン通知に応答して、前記USBデバイスへINトークン・パケットを送ることを再開する発明5に記載の装置。
[発明8]
前記プロセッサは、前記USBデバイスが前記USBホストからデータを受信できないことを判定し、前記USBホストへフロー・オフ通知を送るように構成され、
前記USBホストは、前記フロー・オフ通知に応答して、OUTトークン・パケットまたはPINGトークン・パケットを前記USBデバイスへ送ることを中止する発明1に記載の装置。
[発明9]
前記プロセッサは、前記USBデバイスにおけるバッファがフルまたはほとんどフルである場合、前記USBデバイスが前記USBホストからデータを受信できないことを判定するように構成された発明8に記載の装置。
[発明10]
前記プロセッサは、前記USBデバイスにおけるバッファが、フルである予め定めた量内である場合、前記USBデバイスが、前記USBホストからデータを受信できないことを判定するように構成され、
前記予め定めた量は、前記フロー・オフ通知を受信した後、OUTトークン・パケットまたはPINGトークン・パケットを中止する際における前記USBホストによる遅延に対処するための予備バッファ容量に対応している発明8に記載の装置。
[発明11]
前記フロー・オフ通知を送った後、前記プロセッサは、前記USBデバイスが前記USBホストからデータを受信できることを判定し、前記USBホストへフロー・オン通知を送るように構成され、
前記USBホストは、前記フロー・オン通知に応答して、OUTトークン・パケットまたはPINGトークン・パケットを送信することを再開する発明8に記載の装置。
[発明12]
前記プロセッサは、フロー制御のための通知を、割り込みパイプで、前記USBホストへ送信するように構成された発明1に記載の装置。
[発明13]
前記プロセッサは、前記割り込みパイプのINトークン・パケットを、前記USBホストから受信し、前記INトークン・パケットを受信した後、フロー制御のための通知を、前記割り込みパイプで送るように構成された発明12に記載の装置。
[発明14]
ユニバーサル・シリアル・バス(USB)デバイスの、USBホストとデータを交換する能力を判定することと、
前記判定されたUSBデバイスの能力に基づいて、フロー制御のための通知を、前記USBホストへ送ることと
を備える方法。
[発明15]
前記USBデバイスの能力を判定することは、前記USBデバイスが前記USBホストとデータを交換できないことを判定し、
前記フロー制御のための通知を送ることは、データ交換を中止するために、前記USBホストにフロー・オフ通知を送ることを備える発明14に記載の方法。
[発明16]
前記USBデバイスが前記USBホストとデータを交換できることを判定することと、
データ交換を再開するために、前記USBホストへフロー・オン通知を送ることと
を更に備える発明15に記載の方法。
[発明17]
前記フロー制御のための通知を送ることは、前記フロー制御のための通知を、割り込みパイプで、前記USBホストへ送ることを備える発明14に記載の方法。
[発明18]
ユニバーサル・シリアル・バス(USB)デバイスがUSBホストとデータを交換できないことを判定する手段と、
データ交換を中止するために、フロー・オフ通知を前記USBホストへ送る手段と
を備える装置。
[発明19]
前記USBデバイスが前記USBホストとデータを交換できることを判定する手段と、
データ交換を再開するために、前記USBホストへフロー・オン通知を送る手段と
を備える発明18に記載の装置。
[発明20]
ユニバーサル・シリアル・バス(USB)デバイスがUSBホストとデータを交換できないことを判定し、
データ交換を中止するために、フロー・オフ通知を前記USBホストへ送る
ための命令群を格納するプロセッサ読取可能媒体。
[発明21]
前記USBデバイスが前記USBホストとデータを交換できることを判定し、
データ交換を再開するために、前記USBホストへフロー・オン通知を送る
ための命令群を更に格納する発明20に記載のプロセッサ読取可能媒体。
[発明22]
ユニバーサル・シリアル・バス(USB)デバイスへトークン・パケットを送り、フロー制御のための第1の通知を前記USBデバイスから受信し、前記第1の通知に応答して、前記USBデバイスへトークン・パケットを送ることを変更するように構成されたプロセッサと、
前記プロセッサに接続されたメモリと
を備える装置。
[発明23]
前記トークン・パケットおよび第1の通知は、前記USBデバイスとUSBホストとの間の複数のパイプのうちの特定のパイプのためのものである発明1に記載の装置。
[発明24]
前記プロセッサは、前記第1の通知に応答して、前記USBデバイスへトークン・パケットを送ることを中止するように構成された発明22に記載の装置。
[発明25]
前記プロセッサは、前記第1の通知に応答して、トークン・パケットを前記USBデバイスへより遅いレートで送るように構成された発明22に記載の装置。
[発明26]
前記プロセッサは、フロー制御のための第2の通知を前記USBデバイスから受信し、前記USBデバイスへトークン・パケットを送ることを再開するように構成された発明22に記載の装置。
[発明27]
前記プロセッサは、前記USBデバイスからのデータを要求するために、前記USBデバイスへINトークン・パケットを送るように構成された発明22に記載の装置。
[発明28]
前記プロセッサは、前記USBデバイスへ送るデータを示すために、前記USBデバイスへOUTトークン・パケットまたはPINGトークン・パケットを送るように構成された発明22に記載の装置。
[発明29]
前記プロセッサは、データ・パイプのためのトークン・パケットを前記USBデバイスへ送り、前記第1の通知を、前記USBデバイスから、割り込みパイプで受信するように構成された発明22に記載の装置。
[発明30]
前記プロセッサは、選択されたバス・アクセス周期に従って、前記割り込みパイプのためのINトークン・パケットを送り、前記割り込みパイプのために、前記INトークン・パケットのうちの1つが送られた後、前記フロー制御のための第1の通知を受信するように構成された発明29に記載の装置。
[発明31]
トークン・パケットをユニバーサル・シリアル・バス(USB)デバイスへ送ることと、
フロー制御のための第1の通知を、前記USBデバイスから受信することと、
前記第1の通知に応答して、前記USBデバイスへトークン・パケットを送ることを中止することと
を備える方法。
[発明32]
フロー制御のための第2の通信を前記USBデバイスから受信することと、
前記USBデバイスへトークン・パケットを送ることを再開することと
を更に備える発明31に記載の方法。
[発明33]
前記フロー制御のための第1の通知を受信することは、前記フロー制御のための第1の通知を、前記USBデバイスから、割り込みパイプで受信することを備える発明31に記載の方法。
[発明34]
トークン・パケットをユニバーサル・シリアル・バス(USB)デバイスへ送る手段と、
フロー制御のための第1の通知を、前記USBデバイスから受信する手段と、
前記第1の通知に応答して、前記USBデバイスへトークン・パケットを送ることを中止する手段と
を備える装置。
[発明35]
フロー制御のための第2の通信を前記USBデバイスから受信する手段と、
前記USBデバイスへトークン・パケットを送ることを再開する手段と
を更に備える発明34に記載の装置。
[発明36]
トークン・パケットをユニバーサル・シリアル・バス(USB)デバイスへ送り、
フロー制御のための第1の通知を、前記USBデバイスから受信し、
前記第1の通知に応答して、前記USBデバイスへトークン・パケットを送ることを中止する
命令群を格納するプロセッサ読取可能媒体。
[発明37]
フロー制御のための第2の通信を前記USBデバイスから受信し、
前記USBデバイスへトークン・パケットを送ることを再開する
命令群を更に格納する発明36に記載のプロセッサ読取可能媒体。

Claims (33)

  1. 装置の外部のユニバーサル・シリアル・バス(USB)ホストと通信することができるUSBデバイスを備える前記装置であって、
    第1の時間(T1)に、前記UBデバイスの、後の時間に前記USBホストとデータを交換する能力を、バッファ・サイズ、確保されたバッファ容量の量、またはバッファが空、フル、またはほとんどフルであるかに対応するバッファ状態、のうちの少なくとも1つに、少なくとも部分的に基づいて判定し、
    前記後の時間の前の第2の時間(T2)に、前記判定されたUSBデバイスの能力に基づいて、フロー制御のための第1の通知を、前記USBホストへ送り(614)
    前記第2の時間の後に、前記第1の通知に応答して、前記USBホストから、より遅いレートで、トークン・パケットを受信し(616)
    前記後の時間の後の第3の時間(T3)に、前記USBデバイスの、前記USBホストとデータを交換する前記能力が、記バッファ・サイズ、前記確保されたバッファ容量の量、または前記バッファ状態のうちの少なくとも1つに、少なくとも部分的に基づいて変化したという判定に応答して、フロー制御のための第2の通知を、前記USBホストへ送り(618)
    前記第2の通知に応答して、前記USBホストから、前記より遅いレートとは異なるレートでさらなるトークン・パケットを受信し(620)、ここにおいて、フロー制御のための他の何れの通知、前記第2の時間と前記第3の時間との間に、前記USBデバイスによって、前記USBホストに送られない、ためのプロセッサと、
    前記プロセッサに接続されたメモリと
    を備える装置。
  2. 前記プロセッサは、前記USBデバイスと前記USBホストとの間の複数のパイプのうちの特定のパイプのために、前記フロー制御のための第1の通知を送る請求項1に記載の装置。
  3. 前記プロセッサは、前記USBデバイスが前記USBホストとデータを交換できないことをさらに判定し、データ交換を中止するために、前記USBホストに、前記第1の通知としてフロー・オフ通知を送る請求項1に記載の装置。
  4. 前記フロー・オフ通知を送った後、前記プロセッサは、前記USBデバイスが前記USBホストとデータを交換できることをさらに判定し、データ交換を再開するために、前記USBホストへ、前記第2の通知としてフロー・オン通知を送る請求項3に記載の装置。
  5. 前記プロセッサは、前記USBデバイスのバッファが空であることをさらに判定し、
    前記USBデバイスは、前記USBホストへデータおよび/またはハンドシェイク・パケットを送信することを控える、請求項1に記載の装置。
  6. 前記プロセッサは、前記USBホストから、トークン・パケットが受信されたレートを下げることを促すために第4の時間(T4)に前記第1の通知としてフロー・オフ通知をさらに送る請求項5に記載の装置。
  7. 前記フロー・オフ通知を送った後、第5の時間(T5)に、前記プロセッサはさらに前記プロセッサが、前記USBデバイスから前記USBホストへ送るデータがあると判定した場合、前記USBホストへフロー・オン通知を送り、
    前記USBホストは、前記フロー・オン通知に応答して、前記USBデバイスへINトークン・パケットを送ることを再開する請求項6に記載の装置。
  8. 前記プロセッサは、前記USBデバイスが前記USBホストからデータを受信できないことをさらに判定し、前記USBホストへフロー・オフ通知を送り、
    前記USBホストは、前記フロー・オフ通知に応答して、OUTトークン・パケットまたはPINGトークン・パケットを前記USBデバイスへ送信することを中止する請求項1に記載の装置。
  9. 前記プロセッサは、前記USBデバイスにおけるバッファがフルまたは、ほとんどフルである場合、前記USBデバイスが前記USBホストからデータを受信できないことをさらに判定する請求項8に記載の装置。
  10. 前記プロセッサは、前記USBデバイスにおけるバッファが、フル、またはほとんどフルである場合、前記USBデバイスが、前記USBホストからデータを受信できないことをさらに判定し、
    前記予め定めた量は、前記フロー・オフ通知の受信後、前記OUTトークン・パケットまたはPINGトークン・パケットを中止する際における前記USBホストによる遅れに対処するために確保されたバッファ容量に対応している請求項8に記載の装置。
  11. 前記フロー・オフ通知を送った後、前記プロセッサは、前記USBデバイスが前記USBホストからデータを受信できることを判定し、前記USBホストへフロー・オン通知を送り、
    前記USBホストは、前記フロー・オン通知に応答して、OUTトークン・パケットまたはPINGトークン・パケットを前記USBデバイスへ送信することを再開する請求項8に記載の装置。
  12. 前記プロセッサは、フロー制御のための前記第1の通知、またはフロー制御のための前記第2の通知のうちの少なくとも1つを、割り込みパイプで、前記USBホストへさらに送信する請求項1に記載の装置。
  13. 前記プロセッサは、前記割り込みパイプのINトークン・パケットを、前記USBホストからさらに受信し、前記INトークン・パケットを受信した後、前記フロー制御のための第1の通知を、前記割り込みパイプで送る請求項12に記載の装置。
  14. 装置のユニバーサル・シリアル・バス(USB)デバイスによって実行される方法であって
    第1の時間に、前記USBデバイスの、後の時間にUSBホストとデータを交換する能力を、バッファ・サイズ、確保されたバッファ容量の量、または前記装置のバッファが空、フル、またはほとんどフルであるかに対応するバッファ状態、のうちの少なくとも1つに、少なくとも部分的づいて定することと、
    前記後の時間の前の第2の時間に、前記判定されたUSBデバイスの能力に基づいて、フロー制御のための第1の通知を、前記USBホストへ送ることと、
    前記第2の時間の後に、前記第1の通知に応答して、前記USBホストから、より遅いレートで、トークン・パケットを受信することと、
    前記後の時間の後の第3の時間に、前記USBデバイスの、前記USBホストとデータを交換する前記能力が、前記バッファ・サイズ、前記確保されたバッファ容量の量、または前記バッファ状態のうちの少なくとも1つに、少なくとも部分的に基づいて変化したという判定に応答して、フロー制御のための第2の通知を、前記USBホストへ送ることと、
    前記第2の通知に応答して、前記USBホストから、前記より遅いレートとは異なるレートでさらなるトークン・パケットを受信することと、ここにおいて、フロー制御のための他の何れの知も、前記第2の時間と前記第3の時間との間に、前記USBデバイスによって、前記USBホストに送られない、
    を備える方法。
  15. 前記USBデバイスの能力を判定することは、前記USBデバイスが前記USBホストとデータを交換できないことを判定することを含み
    前記フロー制御のための第1の通知を送ることは、データ交換を中止するために、前記USBホストに、前記第1の通知としてフロー・オフ通知を送ることを含む請求項14に記載の方法。
  16. 前記USBデバイスが、前記USBホストとデータを交換することができないと判定した後、前記USBデバイス
    前記USBデバイスが前記USBホストとデータを交換できることを判定することと、
    データ交換を再開するために、前記USBホストへ、前記第2の通知としてフロー・オン通知を送ることと
    を更に含む請求項15に記載の方法。
  17. 前記フロー制御のための第1の通知を送ることは、前記フロー制御のための第1の通知を、割り込みパイプで、前記USBホストへ送ることを含む請求項14に記載の方法。
  18. ユニバーサル・シリアル・バス(USB)デバイスとして使用するための装置であって、
    第1の時間に、前記USBデバイスの、後の時間にUSBホストとデータを交換する能力を、バッファ・サイズ、確保されたバッファ容量の量、またはバッファが空、フル、またはほとんどフルであるかに対応するバッファ状態、のうちの少なくとも1つに、少なくとも部分的に基づいて判定する手段と、
    前記後の時間の前の第2の時間に、前記判定されたUSBデバイスの能力に基づいて、前記USBホストへ、フロー制御のための第1の通知を送信する手段と、
    前記第2の時間の後に、前記第1の通知に応答して、前記USBホストから、より遅いレートで、前記USBデバイスにおいてトークン・パケットを受信する手段と、
    前記後の時間の後の第3の時間に、前記USBデバイスの、前記USBホストとデータを交換する前記能力が、前記バッファ・サイズ、前記確保されたバッファ容量の量、または前記バッファ状態、に少なくとも部分的に基づいて変化したという判定に応答して、フロー制御のための第2の通知を、前記USBホストへ送る手段と、
    前記第2の通知に応答して、前記USBホストから、前記より遅いレートとは異なるレートでさらなるトークン・パケットを受信する手段、ここにおいて、フロー制御のための他の何れの知も、前記第2の時間と前記第3の時間との間に、前記USBデバイスによって、前記ホストに送られない、
    を備える装置。
  19. 第1の時間に、ユニバーサル・シリアル・バス(USB)デバイスの、後の時間にUSBホストとデータを交換する能力を、バッファ・サイズ、確保されたバッファ容量の量、または前記USBデバイスのバッファが空、フル、またはほとんどフルであるかに対応するバッファ状態、のうちの少なくとも1つに、少なくとも部分的に基づいて判定し、
    前記後の時間の前の第2の時間に、前記判定されたUSBデバイスの能力に基づいて、前記USBホストへ、前記USBデバイスが、フロー制御のための第1の通知を送信し、
    前記第2の時間の後に、前記USBデバイスが、前記第1の通知に応答して、前記USBホストから、より遅いレートで、トークン・パケットを受信し、
    前記後の時間の後の第3の時間に、前記USBデバイスの、前記USBホストとデータを交換する前記能力が、前記バッファ・サイズ、前記確保されたバッファ容量の量、または前記バッファ状態、に少なくとも部分的に基づいて変化したという判定に応答して、フロー制御のための第2の通知を、前記USBデバイスが、前記USBホストへ送り、
    前記第2の通知に応答して、前記USBデバイスが、前記USBホストから、前記より遅いレートとは異なるレートでさらなるトークン・パケットを受信する、ここにおいて、フロー制御のための、前記第2の時間と前記第3の時間との間に、前記USBデバイスによって、前記USBホストに送られない、
    ための、命令群を格納したプロセッサ読取可能記憶媒体
    を備える装置
  20. ユニバーサル・シリアル・バス(USB)デバイスへトークン・パケットを第1のレートで送り、
    フロー制御のための第1の通知を前記USBデバイスから受信し、ここにおいて前記フロー制御のための第1の通知は、前記USBデバイスにおけるバッファ・サイズ、確保されたバッファ容量の量、またはバッファが空、フル、またはほとんどフルであるかに対応するバッファ状態、のうちの少なくとも1つに、少なくとも部分的に基づいて後の時間に先立つ第1の時間に前記USBデバイスによって送られ、
    記第1の通知に応答して、前記USBデバイスへその後のトークン・パケットを、前記第1のレートよりも遅い第2のレートで送り、
    前記後の時間の後の第2の時間に、前記USBデバイスから、フロー制御のための第2の通知を受信し、ここにおいて前記フロー制御のための第2の通知は、前記USBデバイスの、前記USBホストとデータを交換する能力が、前記バッファ・サイズ、前記確保されたバッファ容量の量、または前記バッファ状態、に少なくとも部分的に基づいて変化したという判定に応答して、前記USBデバイスによって送られ、
    記第2の通知に応答して、前記第2のレートとは異なるレートで、前記USBデバイスにさらなるトークン・パケットを送る、ここにおいてフロー制御のための他の何れの知も、前記第1の時間と前記第2の時間との間に、前記USBデバイスから受信されない
    ためのプロセッサと、
    前記プロセッサに接続されたメモリと
    を備える装置。
  21. 前記トークン・パケットおよび第1の通知は、前記USBデバイスとUSBホストとの間の複数のパイプのうちの特定のパイプのためのものである請求項20に記載の装置。
  22. 前記第2のレートとは異なる前記レートは、前記第1のレートである、請求項20に記載の装置。
  23. 前記プロセッサは、前記USBデバイスからのデータを要求するために、前記USBデバイスへINトークン・パケットをさらに送る請求項20に記載の装置。
  24. 前記プロセッサは、前記USBデバイスへ送るデータを示すために、前記USBデバイスへOUTトークン・パケットまたはPINGトークン・パケットをさらに送る請求項20に記載の装置。
  25. 前記プロセッサは、データ・パイプのためのトークン・パケットを前記USBデバイスへさらに送り、前記第1の通知を、前記USBデバイスから、割り込みパイプで受信する請求項20に記載の装置。
  26. 前記プロセッサは、選択されたバス・アクセス周期に従って、前記割り込みパイプのためのINトークン・パケットをさらに送り、前記割り込みパイプのために、前記INトークン・パケットのうちの1つが送られた後、前記フロー制御のための第1の通知を受信する請求項25に記載の装置。
  27. ユニバーサル・シリアル・バス(USB)ホストによって実行される方法であって
    トークン・パケットをUSBデバイスへ第1のレートで送ることと、
    フロー制御のための第1の通知を、前記USBデバイスから受信することと、ここにおいて前記フロー制御のための第1の通知は、記USBデバイスにおけるバッファ・サイズ、確保されたバッファ容量の量、またはバッファが空、フル、またはほとんどフルであるかに対応するバッファ状態、のうちの少なくとも1つに、少なくとも部分的に基づいて、第1の時間に前記USBデバイスによって送られ、
    記第1の通知に応答して、前記USBデバイスへその後のトークン・パケットを、前記第1のレートよりも遅い第2のレートで送ることと、
    前記第1の時間の後の第2の時間に、前記USBデバイスから、フロー制御のための第2の通知を受信することと、ここにおいて前記フロー制御のための第2の通知は、前記USBデバイスの、前記USBホストとデータを交換する能力が、前記バッファ・サイズ、前記確保されたバッファ容量の量、または前記バッファ状態、のうちの少なくとも1つに、少なくとも部分的に基づいて変化したという判定に応答して、前記USBデバイスによって送られ、
    記第2の通知に応答して、前記第2のレートとは異なるレートで、前記USBデバイスにさらなるトークン・パケットを送ることと、ここにおいてフロー制御のためのが、前記第1の時間と前記第2の時間との間に、前記USBデバイスから受信されない
    含む方法。
  28. 前記第2のレートとは異なる前記レートは、前記第1のレートである、請求項27に記載の方法。
  29. 前記フロー制御のための第1の通知を受信することは、前記フロー制御のための第1の通知を、前記USBデバイスから、割り込みパイプで受信することを含む請求項27に記載の方法。
  30. ユニバーサル・シリアル・バス(USB)ホストとして使用するための装置であって、
    トークン・パケットをUSBデバイスへ第1のレートで送る手段と、
    フロー制御のための第1の通知を、前記USBデバイスから受信する手段と、ここにおいて前記フロー制御のための第1の通知は、前記USBデバイスにおけるバッファ・サイズ、確保されたバッファ容量の量、またはバッファが空、フル、またはほとんどフルであるかに対応するバッファ状態、のうちの少なくとも1つに、少なくとも部分的に基づいて、前記USBがデータを受信することができないと前記USBが判定した、後の時間に先立つ第1の時間に前記USBデバイスによって送られ、
    記第1の通知に応答して、前記USBデバイスへその後のトークン・パケットを、前記第1のレートよりも遅い第2のレートで送る手段と
    前記第1の時間の後の第2の時間に、前記USBデバイスから、フロー制御のための第2の通知を受信する手段と、ここにおいて前記フロー制御のための第2の通知は、前記USBデバイスの、前記USBホストとデータを交換する能力が、前記バッファ・サイズ、前記確保されたバッファ容量の量、または前記バッファ状態、に少なくとも部分的に基づいて変化したという判定に応答して、前記USBデバイスによって送られ、
    続いて、前記第2の通知に応答して、前記第2のレートとは異なるレートで、前記USBデバイスにさらなるトークン・パケットを送る手段と、ここにおいてフロー制御のための他の何れの知も、前記第1の時間と前記第2の時間との間に、前記USBデバイスから受信されない
    を備える装置。
  31. 前記第2のレートとは異なる前記レートは、前記第1のレートである請求項30に記載の装置。
  32. トークン・パケットを第1のレートでUBデバイスへ送り、
    フロー制御のための第1の通知を、前記USBデバイスから受信し、ここにおいて前記フロー制御のための第1の通知は、前記USBデバイスにおけるバッファ・サイズ、確保されたバッファ容量の量、またはバッファが空、フル、またはほとんどフルであるかに対応するバッファ状態、のうちの少なくとも1つに、少なくとも部分的に基づいて前記USBがデータを受信することができないと前記USBが判定した、後の時間に先立つ第1の時間に前記USBデバイスによって送られ、
    記第1の通知に応答して、前記USBデバイスへ、その後のトークン・パケットを、前記第1のレートよりも低い第2のレートで送り、
    前記後の時間の後の第2の時間に、記USBデバイスから、フロー制御のための第2の通知を受信し、ここにおいて前記フロー制御のための第2の通知は、前記USBデバイスの、前記USBホストとデータを交換する能力が、前記バッファ・サイズ、前記確保されたバッファ容量の量、または前記バッファ状態、に少なくとも部分的に基づいて変化したという判定に応答して、前記USBデバイスによって送られ、
    続いて、前記第2の通知に応答して、前記第2のレートとは異なるレートで、前記USBデバイスにさらなるトークン・パケットを送る、ここにおいてフロー制御のための他の何れの知も、前記第1の時間と前記第2の時間との間に、前記USBデバイスから受信されない
    ための、命令群を格納したプロセッサ読取可能記憶媒体
  33. 前記第2のレートとは異なる前記レートは前記第1のレートである請求項32に記載のプロセッサ読取可能記憶媒体
JP2012087356A 2006-05-25 2012-04-06 ユニバーサル・シリアル・バス(usb)のためのフロー制御 Expired - Fee Related JP5639107B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US80869106P 2006-05-25 2006-05-25
US60/808,691 2006-05-25
US11/753,473 2007-05-24
US11/753,473 US8200856B2 (en) 2006-05-25 2007-05-24 Flow control for universal serial bus (USB)

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009512322A Division JP2009538483A (ja) 2006-05-25 2007-05-25 ユニバーサル・シリアル・バス(usb)のためのフロー制御

Publications (2)

Publication Number Publication Date
JP2012168965A JP2012168965A (ja) 2012-09-06
JP5639107B2 true JP5639107B2 (ja) 2014-12-10

Family

ID=38669809

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009512322A Withdrawn JP2009538483A (ja) 2006-05-25 2007-05-25 ユニバーサル・シリアル・バス(usb)のためのフロー制御
JP2012087356A Expired - Fee Related JP5639107B2 (ja) 2006-05-25 2012-04-06 ユニバーサル・シリアル・バス(usb)のためのフロー制御

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2009512322A Withdrawn JP2009538483A (ja) 2006-05-25 2007-05-25 ユニバーサル・シリアル・バス(usb)のためのフロー制御

Country Status (6)

Country Link
US (1) US8200856B2 (ja)
EP (2) EP2397949B1 (ja)
JP (2) JP2009538483A (ja)
KR (1) KR101197749B1 (ja)
AT (1) ATE556375T1 (ja)
WO (1) WO2007140324A2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8200856B2 (en) * 2006-05-25 2012-06-12 Qualcomm Incorporated Flow control for universal serial bus (USB)
KR101357162B1 (ko) * 2007-03-30 2014-02-04 삼성전자주식회사 호스트 장치와 usb 장치간의 통신을 제어하는 장치,방법 및 시스템
JP5506304B2 (ja) * 2009-09-18 2014-05-28 ルネサスエレクトロニクス株式会社 データ処理装置及びデータ処理システム
US8332676B2 (en) * 2009-09-24 2012-12-11 Intel Mobile Communications GmbH Methods of preparing a power saving state, universal serial bus device and universal serial bus host
TW201117011A (en) * 2009-11-02 2011-05-16 Ralink Technology Corp Method for transmitting universal serial bus data and apparatus using the same
KR101298593B1 (ko) * 2009-12-21 2013-08-22 한국전자통신연구원 Usb-무선 랜(lan) 시스템에서 usb 통신 동기화를 통한 데이터 송신 장치 및 방법
US8953631B2 (en) * 2010-06-30 2015-02-10 Intel Corporation Interruption, at least in part, of frame transmission
US8510583B2 (en) * 2010-07-01 2013-08-13 Intel Corporation Asynchronous sleep mode for host controller
US10635393B2 (en) * 2012-03-29 2020-04-28 Intel Corporation Buffer-related USB communication
US9240951B2 (en) 2012-11-22 2016-01-19 Intel Corporation Apparatus, system and method of controlling data flow to a plurality of endpoints over a communication network
TWI497306B (zh) 2012-11-29 2015-08-21 Faraday Tech Corp 超高速通用序列匯流排集線器及其相關流量管理方法
US9021143B2 (en) * 2012-11-30 2015-04-28 Intel Corporation Polling of I/O devices on host initiated communication transports
KR102153543B1 (ko) 2013-10-31 2020-09-08 삼성전자주식회사 무선 환경에서 usb 통신을 위한 버퍼 관리 방법 및 장치
KR20150124796A (ko) * 2014-04-29 2015-11-06 삼성전자주식회사 무선 환경에서 usb 통신을 위한 데이터 전송을 제어하는 방법 및 장치
US10474604B2 (en) 2016-04-01 2019-11-12 Intel Corporation Transmitting universal serial bus (USB) data over alternate mode connection

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119190A (en) 1996-11-06 2000-09-12 Intel Corporation Method to reduce system bus load due to USB bandwidth reclamation
JP3605242B2 (ja) * 1996-11-12 2004-12-22 富士通株式会社 データ送信装置、データ受信装置、およびデータファイル記憶媒体
JP3711432B2 (ja) 1998-04-15 2005-11-02 セイコーエプソン株式会社 周辺処理装置およびその制御方法
US6311294B1 (en) 1998-10-20 2001-10-30 Cypress Semiconductor Corp. Device and method for efficient bulk data retrieval using a universal serial bus
TW413763B (en) 1999-03-16 2000-12-01 Winbond Electronics Corp Data conversion device and data flow control method in between USB host and network end
US7007110B2 (en) 2001-03-30 2006-02-28 Intel Corporation Nak throttling for USB host controllers
US7079856B2 (en) * 2002-04-05 2006-07-18 Lucent Technologies Inc. Data flow control between a base station and a mobile station
US6795872B2 (en) * 2002-05-09 2004-09-21 Renesas Technology America, Inc. Maintaining at least partial functionality of a device as defined by a hardware configuration at a USB bus enumeration while the device memory is programmed
KR100557215B1 (ko) 2003-08-19 2006-03-10 삼성전자주식회사 유에스비 디바이스의 엔드포인트 제어 장치 및 그 방법
KR100654465B1 (ko) * 2005-09-23 2006-12-06 삼성전자주식회사 무선 중계 장치 및 방법
US8200856B2 (en) * 2006-05-25 2012-06-12 Qualcomm Incorporated Flow control for universal serial bus (USB)

Also Published As

Publication number Publication date
KR20090025278A (ko) 2009-03-10
EP2397949A1 (en) 2011-12-21
EP2038755A2 (en) 2009-03-25
US20080028113A1 (en) 2008-01-31
JP2009538483A (ja) 2009-11-05
KR101197749B1 (ko) 2012-11-06
JP2012168965A (ja) 2012-09-06
US8200856B2 (en) 2012-06-12
EP2038755B1 (en) 2012-05-02
ATE556375T1 (de) 2012-05-15
WO2007140324A3 (en) 2008-01-31
EP2397949B1 (en) 2016-10-05
WO2007140324A2 (en) 2007-12-06

Similar Documents

Publication Publication Date Title
JP5639107B2 (ja) ユニバーサル・シリアル・バス(usb)のためのフロー制御
US11379280B2 (en) Methods and systems for managing communication lanes between a universal flash storage (USF) device and a USF host
JP3636157B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2004021613A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2004334417A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2005107683A (ja) 通信コントローラ、通信システム、通信機器、および通信方法
US7337382B2 (en) Data transfer control device, electronic instrument, and data transfer control method
US20190238362A1 (en) In-datagram critical-signaling using pulse-count-modulation for i3c bus
TW200815994A (en) Flow control for universal serial bus (USB)
US20190018818A1 (en) Accelerated i3c stop initiated by a third party
TWI233553B (en) Bus system and bus interface for connection to a bus
US20240281403A1 (en) I3c pending read with retransmission
CN116627869A (zh) 应用于电子设备的数据传输方法及装置
JP3636160B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
TW583572B (en) Bus system and bus interface
TWI239508B (en) Storage device controller apparatus, storage system and storage method
JP4127071B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2004355041A (ja) Dma転送中継装置,dma転送方法,及びdma転送システム
JP2001256171A (ja) データ転送方法及びモジュール
JP2004021976A (ja) データ転送制御装置、電子機器及びデータ転送制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130702

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131126

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140319

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141023

R150 Certificate of patent or registration of utility model

Ref document number: 5639107

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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