JP2017520052A - ユニバーサルシリアルバス(usb)通信システムおよび方法 - Google Patents

ユニバーサルシリアルバス(usb)通信システムおよび方法 Download PDF

Info

Publication number
JP2017520052A
JP2017520052A JP2016572235A JP2016572235A JP2017520052A JP 2017520052 A JP2017520052 A JP 2017520052A JP 2016572235 A JP2016572235 A JP 2016572235A JP 2016572235 A JP2016572235 A JP 2016572235A JP 2017520052 A JP2017520052 A JP 2017520052A
Authority
JP
Japan
Prior art keywords
bulk
data
endpoints
usb
host
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.)
Pending
Application number
JP2016572235A
Other languages
English (en)
Other versions
JP2017520052A5 (ja
Inventor
ニア・ガーバー
ダニエル・ヒョンキュ・キム
エミール・ボロヴィエツキー
ダン・ヴァルディ
アンドレイ・マイケル・バラノフスキー
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2017520052A publication Critical patent/JP2017520052A/ja
Publication of JP2017520052A5 publication Critical patent/JP2017520052A5/ja
Pending legal-status Critical Current

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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded 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)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

ユニバーサルシリアルバス(USB)通信システムおよび方法が開示される。具体的には、本開示の態様は、USB接続を通して接続されるバルクエンドポイントからのバルクデータ転送のポーリングおよびスケジューリングを最適化する。ポーリングの回数を減らすことによって、かつ転送すべきデータを有することがわかっているエンドポイントを優遇することによって、不要なシグナリングが回避される。シグナリングの削減によって、より短い時間内に、より多くのデータを転送できるようになる。データ転送のために必要とされる時間を短縮することによって、低電力モードを使用できるようになる場合があり、それによりさらに電力が節約される。

Description

優先権主張
本出願は、その内容全体が参照により本明細書に組み込まれている、2014年6月18日に出願された、「UNIVERSAL SERIAL BUS (USB) COMMUNICATION SYSTEMS AND METHODS」という名称の米国特許出願第14/308,053号の優先権を主張するものである。
本開示の技術は一般に、ユニバーサルシリアルバス(USB)対応接続を介して結合される構成要素間の通信を制御することに関する。
コンピューティングデバイスは、ある形態のデータバスを介して互いに通信する複数のモジュールから構築されることがよくある。さらに、そのようなデータバスと相互運用するコネクタまたはケーブルを通して、1つまたは複数の周辺構成要素をコンピューティングデバイスに結合することができる。たとえば、デスクトップコンピュータを、メモリスティックをソケットに差し込むことによってリムーバブルFLASHメモリスティックに結合することができるか、またはコンピュータおよび電話をケーブルで結合することによって電話に結合することができる。モジュールまたは周辺構成要素を相互接続するために使用されるデータバスの多くは、ユニバーサルシリアルバス(USB)プロトコルに準拠することができる。USBプロトコルの複数のバージョンが存在するが、最も一般的であるのはUSB2.0およびUSB3.0である。
USBプロトコル内で、単一のUSB対応コネクタが、ホストを、最大で32のエンドポイントを有するデバイスに接続することができる。USBプロトコルに関する仕様は、アイソクロナス、インタラプト、コントロールおよびバルクを含む種々のタイプのエンドポイントを許す。バルクデータ転送は通常、バースト性であり、時間の制約を受けない大量のデータを含む(たとえば、印刷ジョブがプリンタに送信される)。USBプロトコルの仕様は、エンドポイント間の公平性を要求する。この公平性は、各エンドポイントに1マイクロフレーム内の1スロットを与えることにより実施される。さらに、USB2.0では、公平性は、ラウンドロビンフォーマットを通して、ホストが順次にデバイスの各エンドポイントをポーリングすることにより達成される。バルクエンドポイントの場合、データが存在しない場合には、バルクエンドポイントはNAK信号を返送する。USB3.0は、エンドポイントが、記憶されたノットレディ(NRDY)信号を返送することができる代替のプロセスを提供する。その後、バルクエンドポイントにおいてデータが入手可能であるとき、デバイスはエンドポイントレディ信号(ERDY)を送信し、ホストはトランザクションをスケジューリングし直すことができる。
実際には、NAK信号を繰返し返送するいくつかのバルクエンドポイントが、ポーリングされる場合がある。ラウンドロビン要件は、異なるエンドポイントが転送すべきデータを有することをホストがわかっている場合であっても、同じエンドポイントが再びポーリングされることを指示する(たとえば、エンドポイントが、前回ポーリングされた時点で転送すべきデータを有していたが、マイクロフレーム内の割り振られた空間内にすべてのデータが収まるとは限らないため)。さらに、そのような一定のポーリングは、低電力モードに入るのを妨げる。USB3.0の場合においても、どのエンドポイントが転送すべきデータを有するかに基づいて、スループット最適化が行われ得る。
発明を実施するための形態において開示される態様は、ユニバーサルシリアルバス(USB)通信システムおよび方法を含む。具体的には、本開示の態様は、USB接続を通して接続されるバルクエンドポイントからのバルクデータ転送のポーリングおよびスケジューリングを最適化する。ポーリングの回数を減らすことによって、かつ転送すべきデータを有することがわかっているエンドポイントを優遇することによって、不要なシグナリングが回避される。シグナリングの削減によって、より短い時間内で、より多くのデータを転送できるようになる。データ転送のために必要とされる時間を短縮することによって、低電力モードを使用できるようになる場合があり、それによりさらに電力が節約される。
第1の例示的な態様では、最適化は、バルクエンドポイントが否定指示(たとえば、NAK、NYET、NRDY)信号を送信すると、バルクエンドポイントをポーリングしないか、またはスキップすることによって行われる。このスキップ処理は、所定の期間だけ継続することができる。第2の例示的な態様では、新たなフレームの開始時にインタラプト転送を行うのを待つのではなく、行われるべきバルク転送が存在しないときに、インタラプト転送に関連付けられる信号がスケジューリングされる。それぞれの場合に、最適化の結果として、活動していないエンドポイントへのシグナリングを削減することを通して、かつ低電力モードを使用できるように、シグナリングをより短い時間およびより少ないフレームに統合することを通して、電力が節約される。
この関連で、一態様では、USB接続を通してデータ転送を制御する方法が開示される。その方法は、USB接続に結合されるホストに関連付けられる制御システムにおいて、複数のバルクエンドポイントのうちの少なくとも1つから、複数のバルクエンドポイントのうちの少なくとも1つが転送準備完了のデータを有しないことを指示する否定指示を受信することを含む。また、その方法は、否定指示に基づいて、複数のバルクエンドポイントのうちの他のエンドポイントとのUSB接続を通してのバルクデータ転送を優先させることを含む。
別の態様では、コンピューティングデバイスが開示される。コンピューティングデバイスは、USB接続に結合されるように構成されるホストを備える。また、コンピューティングデバイスは、ホストおよびUSB接続に関連付けられる制御システムも備える。制御システムは、複数のバルクエンドポイントのうちの少なくとも1つから、複数のバルクエンドポイントのうちの少なくとも1つが転送すべきデータを有しないことを指示する否定指示を受信するように構成される。また、制御システムは、否定指示に基づいて、複数のバルクエンドポイントのうちの他のエンドポイントとのUSB接続を通してのバルクデータ転送を優先させるように構成される。
別の態様では、USB接続を通してデータ転送を制御する方法が開示される。その方法は、複数のバルクエンドポイントのそれぞれがホストに転送すべきデータを有しないと判断することを含む。また、その方法は、未決フレームが1つまたは複数のインタラプト転送を含むと判断することを含む。また、その方法は、未決フレームが始まる前に、インタラプトエンドポイントにインタラプト問合せを送信することを含む。
別の態様では、コンピューティングデバイスが開示される。コンピューティングデバイスは、USB接続に結合されるように構成されるホストを備える。また、コンピューティングデバイスは、ホストに関連付けられる制御システムも備える。制御システムは、複数のバルクエンドポイントのそれぞれがホストに転送すべきデータを有しないと判断するように構成される。また、制御システムは、未決フレームが1つまたは複数のインタラプト転送を含むと判断するように構成される。また、制御システムは、未決フレームが始まる前に、USB接続を通してインタラプトエンドポイントにインタラプト問合せを送信するように構成される。
それぞれが1つまたは複数のエンドポイントを有する複数のデバイスに結合されるホストを有し、ホストがユニバーサルシリアルバス(USB)接続を通して複数のデバイスに結合されるコンピューティングデバイスの簡略化されたブロック図である。 例示されるエンドポイントを有する図1Aの複数のデバイスのうちの1つの簡略化されたブロック図である。 従来のUSB2.0ラウンドロビンバルク転送シーケンスの問合せ応答を示す、タイムスタンプを有するフレームの簡略化された図である。 4つのバルクINエンドポイントを有するデバイスへのUSB2.0バスを通しての従来のラウンドロビン問合せの簡略化された図である。 複数のデバイスに結合されるホストを有し、各デバイスが1つまたは複数のエンドポイントを有し、ホストが本開示の例示的な態様に従ってUSB接続を通してデバイス結合されるコンピューティングデバイスの簡略化されたブロック図である。 最適化されたバルク転送プロセスの例示的な態様の簡略化された図である。 重み付けバルク転送プロセスの例示的な態様の簡略化された図である。 最適化されたインタラプト転送の例示的な態様の簡略化された図である。 低電力モードを使用できるようにする最適化されたバルク転送の簡略化された図である。 本開示の例示的な態様による、USB2.0のための例示的なエンドポイント調停プロセスを示す流れ図である。 本開示の例示的な態様による、USB3.0のための例示的なエンドポイント調停プロセスを示す流れ図である。 USBコネクタを通してのデータ転送を最適化するために使用することができる外部スケジューラのブロック図である。 本開示の例示的な態様による、最適化されたUSBコネクタを含むことができる例示的なプロセッサベースシステムのブロック図である。
ここで図面を参照しながら、本開示のいくつかの例示的な態様が説明される。「例示的」という語は、本明細書において「一例、事例、または例示としての役割を果たすこと」を意味するために使用される。「例示的」として本明細書において説明されるいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきでない。
発明を実施するための形態において開示される態様は、ユニバーサルシリアルバス(USB)通信システムおよび方法を含む。具体的には、本開示の態様は、USB接続を通して接続されるバルクエンドポイントからのバルクデータ転送のポーリングおよびスケジューリングを最適化する。ポーリングの回数を減らすことによって、かつ転送すべきデータを有することがわかっているエンドポイントを優遇することによって、不要なシグナリングが回避される。シグナリングの削減によって、より短い時間内で、より多くのデータを転送できるようになる。データ転送のために必要とされる時間を短縮することによって、低電力モードを使用できるようになる場合があり、それによりさらに電力が節約される。
第1の例示的な態様では、最適化は、バルクエンドポイントが否定指示(たとえば、NAK、NYET、NRDY)信号を送信すると、バルクエンドポイントをポーリングしないか、またはスキップすることによって行われる。このスキップ処理は、所定の期間だけ継続することができる。第2の例示的な態様では、フレームの開始時ではなく、行われるべきバルク転送が存在しないときに、インタラプト転送に関連付けられる信号がスケジューリングされる。それぞれの場合に、最適化の結果として、活動していないエンドポイントへのシグナリングを削減することを通して、かつ低電力モードを使用できるように、シグナリングをより短い時間およびより少ないフレームに統合することを通して、電力が節約される。
本開示の例示的な態様に取りかかる前に、USB接続を通して複数のデバイスに結合される従来のホストの手短な概説が図1A〜図3を参照しながら論じられる。本開示の例示的な態様は、図4を参照しながら、後に始められる。
この関連で、図1Aは、ホスト12を有するコンピューティングデバイス10の簡略化されたブロック図である。ホスト12は制御システム(CS)14を有することができ、制御システムは、USBホストの従来の機能を提供するハードウェアおよび/またはソフトウェアを含むことができる。ホスト12は、USB接続18を通してUSBハブ16に結合することができる。USB接続18は、十分に理解されているように、コネクタ、コネクタおよびケーブル、または固定接続とすることができ、USB2.0、USB3.0またはUSB3.1標準規格に従って動作することができる。USBハブ16は、それぞれのUSB接続22(1)〜22(N)(全体として接続22)を通して、1つまたは複数のデバイス20(1)〜20(N)(全体としてデバイス20)に結合することができる。USB接続22(1)〜22(N)は、十分に理解されているように、コネクタ、コネクタおよびケーブル、または固定接続とすることができ、USB2.0、USB3.0またはUSB3.1標準規格に従って動作することができる。さらに、USB接続22のうちの1つまたは複数が、介在するさらなるUSBハブ26を有することができる。たとえば、図示されるように、USB接続22(N)は、介在するさらなるUSBハブ26を有する。USBハブ16および介在するさらなるUSBハブ26はいずれもオプションであることに留意されたい。
例として、ホスト12は、BELKIN(登録商標)USB 2.0 4-PORT ULTRA-MINI HUBまたは9 USB 3.0 DATA PORTS + 1 SMART CHARGING PORTを備えるANKER(登録商標)AH231 USB HUBのようなUSBハブ16に結合されるデスクトップコンピュータであり、デバイス20(1)〜20(N)は、USBメモリスティック、プリンタ、スピーカ、マウス、キーボードなどの周辺デバイスである。介在するさらなるUSBハブ26を用いて、十分に理解されているように、短いケーブルを延長することができるか、またはさらなるポートを設けることができる。
デバイス20が、図1Bを参照しながら、さらに詳細に図示される。具体的には、図1Bのデバイス20は、1つまたは複数のエンドポイント(EP)28(1)〜28(M)を含むことができる。USB標準規格は、1つのデバイス内に最大で32までのEPを許す。したがって、Mは1〜32とすることができる。EP28(1)〜28(M)は、アイソクロナス、インタラプト、コントロールおよびバルクを含む、種々のタイプのエンドポイントのいずれかとすることができる。同様に、EP28(1)〜28(M)は、十分に理解されているように、INまたはOUT EPとすることができる。
図1Aおよび図1Bの両方を参照すると、CS14は、ホストコントローラインターフェース(HCI)標準規格を用いて、デバイス20(1)〜20(N)のEP28に問い合わせる。たとえば、USB2.0対応システムでは、HCIはエンハンストHCI(eHCI)標準規格に準拠することができ、USB3.0またはUSB3.1対応システムでは、HCIは拡張可能(xHCI)標準規格に準拠することができる。そのようなHCI標準規格下で、4つのタイプのデータ転送:コントロール、インタラプト、バルクおよびアイソクロナスが存在する場合がある。したがって、EP28は、コントロールエンドポイント、インタラプトエンドポイント、バルクエンドポイントまたはアイソクロナスエンドポイントとすることができる。対象とするのはバルクデータ転送であり、バルクデータ転送は通常、大きく、バースト性であり、時間的制約を受けないデータブロックであり、たとえば、プリンタに送信される印刷ジョブ、記憶装置に送信されるファイルなどである。
引き続き図1A〜図1Bを参照すると、公平性を確保するために、CS14は、デバイス20(1)〜20(N)のEP28のうちのバルクエンドポイントにラウンドロビン形式で問い合わせる。しかしながら、そのようなラウンドロビン問合せは、特にバルクエンドポイントにとって効率的でない。具体的には、バルクエンドポイントが、ホスト12に転送すべきデータを有していない場合には、バルクエンドポイントは、ホスト12に否定指示を返送する。USB2.0では、否定指示はNAK信号である。USB3.0およびUSB3.1では、否定指示はNRDY(ノットレディ)またはNYET信号である。問合せおよび否定指示が送信されるたびに、データを有する他のバルクエンドポイントからのデータ転送のための使用することができた時間が失われる。
この関連で、図2は、図1Aのホスト12によって送信される仮想フレーム30を示す。例示のために、各デバイス20(1)〜20(N)のすべてのEP28(1)〜28(M)がバルクエンドポイントであり、これ以降、バルクEP28と呼ばれるものと仮定する。フレーム開始(SOF)32がフレーム30を始める。ホストは、34(1)におけるINトークンの形で第1のバルクEP28(1)に問合せを送信する。第1のバルクEP28(1)は、NAK信号36(1)を送信する。タイムスタンプ38内の値によって証明されるように、これは、0.2マイクロ秒を要する場合がある。さらなるINトークンが、34(2)、34(3)において他のバルクEP28(2)〜28(M)に送信され、さらなるNAK信号36(2)、36(3)が受信される。さらなるINトークンを送信するのに、タイムスタンプ38において示されるように、6.2マイクロ秒を消費する。最後に、34(4)における第4のバルクEP28(4)へのINトークンの結果として、データ40がホスト12に送信され、後続のACK信号42が送信される。このプロセスは、フレーム30全体にわたって継続し、INトークンがバルクEP28に送信され、否定指示がホスト12によって受信される。所与のフレーム30の場合に、バルク転送のバースト性を考えると、バルクEP28のうちの所与の1つが一度NAK信号を通してデータがないことを一度指示する場合には、そのバルクEP28は、フレーム30の残りにわたってNAK信号を返送し続けることになる可能性が高い。同様に、INトークンを受信した後に、バルクEP28がデータを返送する場合には、バルク転送に関連付けられる大きなデータファイルを考えると、バルクEP28は、フレーム30内の単一のスロットにおいて、そのデータのすべてを送信できる可能性は低い。
ラウンドロビン要件を細分した簡略図が図3に示されており、図3は、問い合わせられるべき4つのバルクエンドポイントEP28(1)〜28(4)が存在すると仮定する。これらのEP28(1)〜EP28(4)は、単一のデバイス20内に存在する場合があるか、または複数のデバイス20にわたって分散される場合がある。図3のために、バルクEP28(1)、28(2)および28(4)はすべてホスト12に転送すべきデータを有する。バルクEP28(3)は転送すべきデータを有しない。フレーム30のサブフレーム44において、ホスト12は各エンドポイントに順次にINトークンを送信し、EP28(1)およびEP28(2)からデータを受信するが、EP28(3)からNAK信号を受信し、その後、EP28(4)からデータを受信する。サブフレーム46において、同じ結果が生じ、フレーム30全体を通して、サブフレーム48およびフレーム30の終了まで同様である。
容易に理解されるように、各問合せおよび否定指示は電力を消費する。同様に、EP28ごとの一定の問合せは、データ転送が多くの場合に2つ以上のフレーム30にわたって継続することを意味し、それは、ホスト12が複数のフレーム30にわたって活動状態のままであることを意味する。そのような活動状態は、低電力モードに入るのを妨げる。余分なメッセージ伝送および低電力状態の欠如はいずれも、電力消費の一因になる。デスクトップコンピューティングデバイスでは、電力消費が心配でない場合があるが、スマートフォン、タブレット、ラップトップのようなモバイル端末は、次の再充電までの間に利用可能な時間を延長するために、電力消費量を削減するよう圧力を受ける。
本開示の例示的な態様は、バルクデータ転送を最適化することによって、電力消費量を削減する。具体的には、xHCIおよびeHCIのラウンドロビン形式の代わりに、本開示の例示的な態様では、データを有することがわかっているバルクエンドポイントに優先権が与えられ、否定指示を送信するエンドポイントは後続のサブフレームにおいてスキップされる。スキップ処理は、フレームの終了まで、または否定指示後の所定の時間(たとえば、数ミリ秒)まで行うことができる。
この関連で、図4は、CS54を備えるホスト52を有するコンピューティングデバイス50を示す。ホスト52は、USB接続58を通して、デバイス56に結合される。デバイス56は、複数のEP60(1)〜60(N)(全体としてEP60と呼ばれる)を含むことができる。CS54は、本開示の例示的な態様を実施するハードウェアおよび/またはソフトウェアを含むことができる。USB接続58は、本明細書において開示される態様によって変更されるようなUSB2.0、USB3.0またはUSB3.1標準規格に従って動作することができる。
先に言及されたように、例示的な態様では、制御システム54は、データを有していないバルクエンドポイントをスキップすることによってデータ転送を最適化することができる。このスキップ処理が図5に示される。具体的には、フレーム開始(SOF)72を有するフレーム70が示される。フレーム70はさらにサブフレーム74(1)〜74(N)を有する。第1のサブフレーム74(1)では、コンピューティングデバイス50(図4)のEP60(1)〜EP60(4)にそれぞれ問合せが送信される。問合せは、先に論じられたようなINトークンとすることができる。第1のEP60(1)は、第2のEP60(2)と同様にデータを返送する。しかしながら、第3のEP60(3)はNAK信号を返送する。第4のEP60(4)はデータを返送する。したがって、後続のサブフレーム74(2)〜74(N)において、第3のEP60(3)はスキップされる。第3のEP60(3)をスキップすることによって、ホスト52はNAK信号を生成する可能性が高いINトークンを送信する電力および時間を使用しない。後続のフレームにおいて、ホスト52は第3のEP60(3)に再び問い合わせる。しかしながら、バルクデータ転送の一般的に時間的制約を受けない性質を考えると、そのように第3のEP60(3)に問い合わせるのを遅らせることは許容可能である。後続の問合せを後続のフレームまで遅らせる代わりに、ホスト52は、そのような後続の問合せを所定の時間だけ遅らせることができる。
図5を参照しながら説明されたスキップ処理を通して達成される最適化の代わりに、またはそれに加えて、特定のエンドポイントを重み付けすることによって、さらなる最適化を行うことができる。この関連で、図6は、第1のEP60(1)を重み付けし、順次のサブフレームにおいて残りのEP60(2)、60(3)、60(4)に問合せし続けることを示す。このようにして、与えられる例では、フレーム78内の各サブフレーム76(1)〜76(3)は第1のEP60(1)に3つのスロットを与える。サブフレーム76(1)〜76(3)はそれぞれ他のEP60(2)〜60(4)のうちの1つに1スロットを与える(すなわち、第1のサブフレーム76(1)もまた、第2のEP60(2)に問い合わせ、第2のサブフレーム76(2)は第3のEP60(3)に問い合わせ、それ以降も同様である)。この変更された公平性を用いて、優遇されるエンドポイントからの特に大量のデータ転送を優先させることができるか、またはバルクデータ転送が実際には時間的制約がある可能性が低いイベントでは、適時にバルクデータ転送を与えることができる。重み付けラウンドロビンは、デバイス56の所与のEP60、すべてのEP60(1)〜60(N)のACK/NAK応答履歴に基づくことができるか、または必要に応じて、もしくは所望により他の判定基準に基づくこともできる。
バルクデータ転送を優先させる代わりに、またはそれに加えて、本開示の例示的な態様は、インタラプト転送に適用することもできる。通常、USBプロトコルでは、EP60がホスト52の注意を引く必要がある場合には、EP60は、ホスト52がEP60をポーリングするまで待たなければならない。ホスト52は、インタラプトEP60(すなわち、インタラプトエンドポイントとして指定されるEP60)を定期的にポーリングする。ポーリングの頻度は、エンドポイント記述子によって設定されるが、通常はフレームの開始時に生じる。しかしながら、行われるべきバルク転送が存在しないとき、インタラプトエンドポイントをポーリングするために都合良く使用することができる時点が頻繁に存在する。
この関連で、図7は、サブフレーム82(1)〜82(N)を有する簡略化されたフレーム80を示す。第1のサブフレーム82(1)において、EP60(1)〜60(4)はバルクEPであり、1つのEP60(3)のみがNAKを返送する。後続のサブフレーム82(2)において、残りのEP60(1)、60(2)および60(4)がNAKを返送する。先に言及されたように、EP60(3)は、以前のNAK信号に起因して、すでにスキップされている。本開示の例示的な態様下で、すべてのバルクEP60がNAK信号を返すと、各EP60は、フレーム80の終了までスキップされる。図示されるように、フレーム80内の最後のサブフレーム82(N)前にすべてのバルクEP60のスキップが生じる場合には、残りのサブフレーム82は、インタラプトEP60にインタラプト問合せ84を送信するために使用することができる。後続のフレーム86は、フレーム開始90以降に通常スケジューリングされるインタラプト問合せ88を除外するか、またはスキップすることができる。
図7を参照しながら先に説明されたようにインタラプト問合せを移す代わりに、またはそれに加えて、バルク転送のスケジューリングを、ホストが低電力モードまたはスリープモードに入ることができるほど十分に最適化することができる。そのような低電力モードまたはスリープモードに入ることにより、モバイル端末の場合に、電力が節約され、電池寿命が延長される。この関連で、図8を参照すると、制御システム54に関連付けられるソフトウェアが、ソフトウェアスケジューリングレジスタ92を含むことができ、ソフトウェアスケジューリングレジスタ92は、バルクデータ転送を最適化するために異なる比率のバルク転送を優先させることができるスケジューリングコントローラ94と通信する。具体的には、スケジューリングコントローラ94は、未決のバルクデータ転送のサイズを認識している場合があり、すべての転送を最も短い時間で終わらせるように、転送をスケジューリングする最適な方法を評価する場合がある。たとえば、1つのバルク転送が特に大きい場合には、フレーム98のサブフレーム96(1)内のすべてのスロットを、そのデータ転送に充てることができる。その後、後続のサブフレーム96(2)を、次に大きなバルクデータ転送に充てることができ、他のデータ転送には1(または数)スロットが充てられる。より大きな転送からのデータの大部分が転送されたとき、後続のサブフレーム(たとえば、サブフレーム96(3))のために、より均一なバランスのデータ転送をスケジューリングすることができる。そのようなスケジューリングによれば、USB標準規格の従来のHCIのラウンドロビンフォーマットに対して、所与のフレーム98の中により多くのデータを入れることができるようになる。したがって、全フレームが自由にデータ転送できる可能性がある。スケジューリングコントローラ94は、特定のフレームに対してデータがスケジューリングされていないことを認識することができ、そのような空いているフレーム100の間に低電力モードまたはスリープモードに入ることができる。この態様は、USB3.0およびUSB3.1にも適用可能であることに留意されたい。
上記の図は、フレームまたはサブフレーム内で起こる場合があることの簡略化されたバージョンを提示するが、その検討は、ホスト52へのデータ転送に焦点を合わせてきた。本開示はそれには限定されない。同様の最適化を、ホストから特定のエンドポイントへのデータ転送の場合に行うことができる。
この関連で、図9は、USB2.0に適用可能であるプロセス110の単一の流れ図において種々の最適化技法を示す。プロセス110は、ホスト52がEP調停を開始するときに始まる(ブロック112)。CS54が、フレーム開始を待つ(ブロック114)。フレーム(たとえば、フレーム80)開始後に、CS54は、ホスト52に、任意の関連するインタラプトまたはアイソクロナスEP60に対してINトークンを発行させる(ブロック116)。CS54は、EP構成が任意の必要とされるバルクEPを含むか否かを評価する(ブロック118)。EP構成は、アプリケーションおよび関連する接続デバイスあたりのホスト52のアクティブEP60のリストである。したがって、EP構成は、デバイスおよびホストドライバによって決まる。ブロック118に対する答えが否定である場合には、プロセス110はブロック114に戻る。しかしながら、ブロック118に対する答えが肯定である場合には、CS54は、バルクEPラウンドロビン問合せを開始する(ブロック120)。
引き続き図9を参照すると、CS54は、ホスト52が既存のデータおよび公平分配制約に従って、データを送信しているバルクEP60に対してOUTトークンを発行することができる(ブロック122)。CS54は、さらに多くのOUT EP60が存在するか否かを評価する(ブロック124)。ブロック124に対する答えが肯定である場合、ブロック122において、さらに多くのOUTトークンが発行される。ブロック124に対する答えが否定である場合には、プロセス110が継続し、CS54はバルクEP60にバルクINトークンを発行する(ブロック126)。CS54は、ACKがあり、短いパケットが存在しなかったか否かを判断する(すなわち、USB2.0では512バイト未満、USB3.0では1024バイト未満のパケットであり、それは通常、転送が行われることを意味し、それは、次の転送におけるデータに関する確率が低いことを暗示しており;短いパケットが存在しない場合には、このIN EP60においてより多くのデータが存在する確率が高い)(ブロック128)。答えが肯定であった場合には、ACKが存在し、ブロック126に戻ることによって、次のバルクEP60に対してプロセスが繰り返される。ブロック128は、N個のバルクEP60(1)〜60(N)のそれぞれに対して繰り返され、その後、プロセッサ110は継続する。CS54は、次の調停またはフレームの場合のACKの数を節約する。NAKのみが返された場合には、CS54は、このEP60のためのバルクINトークンを再び発行する前に待ち時間を設定する(ブロック130)。CS54は、データを有するさらに多くの潜在的なバルクEP60が存在するか否かをチェックする(ブロック132)。答えが肯定である場合には、プロセス110は次のバルクEP60に移行し(ブロック134)、その後、プロセス110は、バルクラウンドロビンを伴うブロック120に戻る。
引き続き図9を参照すると、ブロック132に対する答えが否定である場合には、潜在的なバルクEP60は存在せず、CS54は、未決フレームからの未決インタラプトEP60が存在するか否かを評価する(ブロック136)。ブロック136に対する答えが肯定である場合には、CS54は、関連するインタラプトEPに対して(次のフレームの代わりに)INトークンを発行する(ブロック138)。その後、プロセスはブロック114に戻る。ブロック136に対する答えが否定である場合には、そのような優先的INトークンを発行することなく、プロセスはブロック114に戻る。
プロセス110は、EP応答を適応的に学習できるようにし、トークンを最適化し、かつ問合せを送信し、否定指示を受信する時間および電力が使用される可能性を小さくするように、バルクEP転送をスケジューリングできるようにする。さらに、そのプロセスは、スループット要件に基づいて、かつ先行する応答に基づいて、バルクEP60を転送できるようにする。したがって、転送が不要である場合には、コンピューティングデバイス50は、設定可能な時間にわたって低電力モードに入ることができる。同様に、転送すべきデータを有するEP60に優先権を与えることができ、フレーム内のより多くのスロットを割り振ることができる。さらなる最適化態様として、バルクOUT EP60がデータを転送している場合には、CS54は、より良好な効率を得るために、その転送が完了するまで、そのデータ転送を優先させることができる。すなわち、一般に、EP60間の変更が余分な時間を消費する。データが特定のEP60において入手可能であるとき、そのEP60に留まり、OUTにデータが存在しなくなるまで、またはIN EP60内にデータが存在しなくなるという予測に従って、バルクOUT EP60またはバルクIN EP60を実施し続けるのが一般的に効率的である。
プロセス110はUSB2.0の場合に適しているが、USB3.0は異なるINトークンおよび応答プロセスを有する。したがって、本開示の例示的な態様は、USB3.0および3.1で運用するように変更することができる。そのようなプロセス140の例示的な態様が、図10を参照しながら与えられる。プロセス140は、USBホスト52がEP調停を開始することから始まる(ブロック142)。CS54が、フレーム開始を待つ(ブロック144)。フレーム(たとえば、フレーム80)開始後に、CS54は、ホスト52に、任意の関連するインタラプトまたはアイソクロナスEP60に対してINトークンを発行させる(ブロック146)。CS54は、構成が任意の必要とされるバルクEP60を含むか否かを評価する(ブロック148)。ブロック148に対する答えが否定である場合、プロセス140はブロック144に戻る。しかしながら、ブロック148に対する答えが肯定である場合には、CS54は、バルクEPラウンドロビン問合せを開始する(ブロック150)。
引き続き図10を参照すると、CS54は、ホスト52が既存のデータおよび公平分配制約に従って、データを送信しているバルクEP60に対してOUTトークンを発行することができる(ブロック152)。CS54は、さらに多くのOUT EP60が存在するか否かを評価する(ブロック154)。ブロック154に対する答えが肯定である場合、ブロック152において、さらに多くのOUTトークンが発行される。ブロック154に対する答えが否定である場合には、CS54がバルクEP60にバルクINトークンを発行して、またはEP60からERDY信号を受信した後に、プロセス140が継続する(ブロック156)。CS54は、データが存在し、短いパケットが存在しないか否かを判断する(ブロック158)。答えが肯定であった場合には、データが存在し、ブロック156に戻ることによって、次のバルクEP60に対してプロセスが繰り返される。ブロック158は、N個のバルクEPのそれぞれに対して繰り返され、その後、プロセス140は継続する。CS54は、次の調停またはフレームの場合のデータ応答の数を節約する。否定指示(NRDYまたはNYET)のみが返された場合には、CS54は、次にERDYが受信される時点まで、そのEPのための優先順位を下げる(ブロック160)。CS54は、データを有するさらに多くの潜在的なバルクEP60が存在するか否かをチェックする(ブロック162)。答えが肯定である場合には、プロセス140は次のバルクEP60に移行し(ブロック164)、その後、プロセス140は、バルクラウンドロビンを伴うブロック150に戻る。
引き続き図10を参照すると、ブロック152に対する答えが否定である場合には、潜在的なバルクEP60は存在せず、CS54は、未決フレームからの未決インタラプトEP60が存在するか否かを評価する(ブロック166)。ブロック166に対する答えが肯定である場合には、CS54は、関連するインタラプトEPに対して(次のフレームの代わりに)INトークンを発行する(ブロック168)。次いで、プロセスはブロック144に戻る。ブロック166に対する答えが否定である場合には、そのような優先的INトークンを発行することなく、プロセスはブロック134に戻る。
上記の検討は、CS54がホスト52の内部にあると考えるが、本開示はそれには限定されない。外部コントローラまたは外部スケジューラも使用することができる。この関連で、図11は、アドバンスト高性能バス(AHB)スレーブモジュール174を用いるスレーブとしてのAHB172を通してホスト52に結合される外部スケジューラ170を示す。構成データが、ソフトウェアスケジューリングおよび設定用レジスタ176に渡される。外部スケジューラ170はさらに、高度拡張可能インターフェース(AXI)マスタモジュール180においてAXI178に結合することができる。外部ホストスケジューラモジュール182は、USB接続58を通してデバイス56と通信するために、上記のようにデータを受信し、USBホスト/デュアルロールコントローラ188とともにAHBマスタモジュール184およびAXIスレーブモジュール186を通してデータを送信する。オプションのハブ116を、外部スケジューラ170とデバイス56との間に位置決めすることができる。したがって、図示されるように、システムメモリへのAXI書込みに基づいて、応答が解析される。外部スケジューラ170が、NAKに起因して、特定のEP60からのデータが存在しないことを識別する場合には、外部スケジューラ170は、コントローラに、その特定のEP60に問い合わせるのを中止するように指示することができる。
本明細書において開示される態様による、USBおよび関連する構成要素を介して、改善された性能を得るためのシステムおよび方法は、任意のプロセッサベースデバイス内に設けることができるか、またはその中に組み込むことができる。例は、限定はしないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、定置データユニット、モバイル位置データユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤを含む。
この関連で、図12は、本明細書において開示される方法およびハードウェアを利用することができるプロセッサベースシステム190の一例を示す。この例では、プロセッサベースシステム190は、1つまたは複数の中央処理ユニット(CPU)192を含み、各CPUが1つまたは複数のプロセッサ194を含む。CPU192は、一時的に記憶されたデータへの高速アクセスのためにプロセッサ194に結合されたキャッシュメモリ196を有することができる。CPU192は、システムバス198に結合され、プロセッサベースシステム190中に含まれるデバイスを相互結合することができる。システムバス198は、図4に示されるような、ホスト52およびデバイス56を伴うUSB対応バスとすることができる。よく知られているように、CPU192は、システムバス198を介してアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信する。たとえば、CPU192は、バストランザクション要求をメモリシステム200に通信することができる。
他のデバイスをシステムバス198に接続することができる。図12に示されるように、これらのデバイスは、例として、メモリシステム200、1つまたは複数の入力デバイス202、1つまたは複数の出力デバイス204、1つまたは複数のネットワークインターフェースデバイス206、および1つまたは複数のディスプレイコントローラ208を含むことができる。入力デバイス202は、限定はしないが、入力キー、スイッチ、音声プロセッサなどを含む、任意のタイプの入力デバイスを含むことができる。入力デバイス202は、USB接続を通してプロセッサベースシステム190に結合される周辺機器とすることができる。出力デバイス204は、限定はしないが、音声、ビデオ、他の視覚インジケータなどを含む、任意のタイプの出力デバイスを含むことができる。出力デバイス204は、USB接続を通してプロセッサベースシステム190に結合される周辺機器とすることができる。ネットワークインターフェースデバイス206は、ネットワーク210との間でのデータ交換を可能にするように構成される任意のデバイスとすることができる。ネットワーク210は、限定はしないが、有線ネットワークまたはワイヤレスネットワーク、プライベートネットワークまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク、ワイヤレスローカルエリアネットワークおよびインターネットを含む、任意のタイプのネットワークとすることができる。ネットワークインターフェースデバイス206は、所望の任意のタイプの通信プロトコルをサポートするように構成することができる。
また、CPU192は、1つまたは複数のディスプレイ212に送られる情報を制御するために、システムバス198を介してディスプレイコントローラ208にアクセスするように構成することもできる。ディスプレイコントローラ208は、1つまたは複数のビデオプロセッサ214を介して表示される情報をディスプレイ212に送り、ビデオプロセッサ214は、表示される情報を、ディスプレイ212に適したフォーマットとなるように処理する。ディスプレイ212は、限定はしないが、陰極線管(CRT)、発光ダイオード(LED)ディスプレイ、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む任意のタイプのディスプレイを含むことができる。
本明細書において開示される態様に関して説明される種々の例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子ハードウェア、メモリもしくは別のコンピュータ可読媒体に記憶され、プロセッサもしくは他の処理デバイスによって実行される命令、または両方の組合せとして実装できることは、当業者はさらに理解されよう。本明細書において説明されるデバイスは、例として、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップにおいて利用することができる。本明細書において開示されるメモリは、任意のタイプおよびサイズのメモリとすることができ、所望の任意のタイプの情報を記憶するように構成することができる。このような互換性を明確に例示するために、種々の例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してその機能に関してこれまで説明されてきた。そのような機能がいかに実装されるかは、特定の用途、設計上の選択、および/または、システム全体に課された設計上の制約によって決まる。当業者は、説明された機能を特定の適用例ごとに様々な方法で実施することができるが、そのような実装についての決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
本明細書において開示される態様に関して説明される種々の例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書において説明される機能を実行するように設計されたそれらの任意の組合せにおいて実装または実行することができる。プロセッサは、マイクロプロセッサとすることができるが、代替形態では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンとすることができる。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装することができる。
本明細書において開示される態様は、ハードウェアにおいて、また、ハードウェアに記憶された命令において具現化される場合があり、命令は、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態のコンピュータ可読媒体内に存在することができる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替形態では、記憶媒体は、プロセッサと一体に構成することができる。プロセッサおよび記憶媒体は、ASIC内に存在することができる。ASICは、リモート局内に存在することができる。代替形態では、プロセッサおよび記憶媒体は、個別構成要素として、リモート局、基地局、またはサーバ内に存在することができる。
本明細書の例示的な態様のいずれかにおいて説明される動作ステップは、例および考察を提供するために説明されることにも留意されたい。説明される動作は、図示するシーケンス以外の多数の異なるシーケンスにおいて実行される場合がある。さらに、単一の動作ステップにおいて説明される動作は、実際にはいくつかの異なるステップにおいて実行される場合がある。さらに、例示的な態様において論じられる1つまたは複数の動作ステップが組み合わせられる場合がある。流れ図において図示した動作ステップは、当業者に容易に明らかとなるような多くの異なる修正を受けることができることを理解されたい。また、情報および信号を種々の異なる技術および技法のいずれかを使用して表すことができることは、当業者には理解されよう。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表される場合がある。
本開示のこれまでの説明は、当業者が本開示を作製または使用することを可能にするために提供される。本開示に対する種々の変更は、当業者に容易に明らかになり、本明細書において規定される一般原理は、本開示の趣旨または範囲から逸脱することなく、他の変形形態に適用される場合がある。したがって、本開示は、本明細書において説明される例および設計に限定されるものではなく、本明細書において開示される原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
10 コンピューティングデバイス
12 ホスト
14 制御システム(CS)
16 USBハブ
18 USB接続
20(1)〜20(N) デバイス
22(1)〜22(N) USB接続
26 USBハブ
28(1)〜28(M) エンドポイント(EP)
30 仮想フレーム
32 フレーム開始(SOF)
34(1)、(2)、(3)、(4) INトークン
36(1)、(2)、(3) NAK信号
38 タイムスタンプ
40 データ
42 ACK信号
44 サブフレーム
50 コンピューティングデバイス
52 ホスト
54 制御システム(CS)
56 デバイス
58 USB接続
60(1)〜60(N) EP
70 フレーム
72 フレーム開始(SOF)
74(1)〜74(N) サブフレーム
76(1)〜76(3) サブフレーム
78 フレーム
80 フレーム
82(1)〜82(N) サブフレーム
84 インタラプト問合せ
86 フレーム
88 インタラプト問合せ
90 フレーム開始
92 ソフトウェアスケジューリングレジスタ
94 スケジューリングコントローラ
96(1)、(2)、(3) サブフレーム
98 フレーム
100 フレーム
110 プロセス
116 ハブ
140 プロセス
170 外部スケジューラ
172 アドバンスト高性能バス(AHB)
174 アドバンスト高性能バス(AHB)スレーブモジュール
176 ソフトウェアスケジューリングおよび設定用レジスタ
178 高度拡張可能インターフェース(AXI)
180 高度拡張可能インターフェース(AXI)マスタモジュール
182 外部ホストスケジューラモジュール
184 AHBマスタモジュール
186 AXIスレーブモジュール
188 USBホスト/デュアルロールコントローラ
190 プロセッサベースシステム
192 中央処理ユニット(CPU)
194 プロセッサ
196 キャッシュメモリ
198 システムバス
200 メモリシステム
202 入力デバイス
204 出力デバイス
206 ネットワークインターフェースデバイス
208 ディスプレイコントローラ
210 ネットワーク
212 ディスプレイ
214 ビデオプロセッサ

Claims (26)

  1. ユニバーサルシリアルバス(USB)接続を通してのデータ転送を制御する方法であって、
    前記USB接続に結合されるホストに関連付けられる制御システムにおいて、複数のバルクエンドポイントのうちの少なくとも1つから、前記複数のバルクエンドポイントのうちの前記少なくとも1つが転送準備完了のデータを有しないことを指示する否定指示を受信するステップと、
    前記否定指示に基づいて、前記複数のバルクエンドポイントのうちの他のエンドポイントとの前記USB接続を通してのバルクデータ転送を優先させるステップとを含む、方法。
  2. 前記否定指示はNAK信号、NRDY信号またはNYET信号のうちの1つを含む、請求項1に記載の方法。
  3. バルクデータ転送を優先させるステップは、前記否定指示が受信された少なくとも1つのフレームにわたってバルクデータ転送を優先させるステップを含む、請求項1に記載の方法。
  4. バルクデータ転送を優先させるステップは、前記否定指示が受信された後の所定の時間にわたってバルクデータ転送を優先させるステップを含む、請求項1に記載の方法。
  5. 前記複数のバルクエンドポイントのそれぞれに、入手可能なデータを要求する問合せを送信するステップをさらに含む、請求項1に記載の方法。
  6. 前記問合せを送信するステップは、INトークンを発行するステップを含む、請求項5に記載の方法。
  7. バルクデータ転送を優先させるステップは、前記否定指示に関連付けられる前記少なくとも1つのバルクエンドポイントをスキップするステップを含む、請求項1に記載の方法。
  8. 前記複数のバルクエンドポイントのうちの第2のバルクエンドポイントからデータを受信するステップをさらに含む、請求項5に記載の方法。
  9. バルクデータ転送を優先させるステップは、前記複数のバルクエンドポイントのうちの前記第2のバルクエンドポイントからデータを優先的に受信するステップを含む、請求項8に記載の方法。
  10. 他のエンドポイントとの前記USB接続を介してのバルクデータ転送を優先させるステップは、転送すべきデータを有するエンドポイントとのバルクデータ転送を優先させるために適応的学習アルゴリズムを使用するステップを含む、請求項1に記載の方法。
  11. 複数のバルクエンドポイントのうちの少なくとも1つから、前記複数のバルクエンドポイントのうちの前記少なくとも1つが転送準備完了のデータを有しないことを指示する前記否定指示を受信するステップは、外部コントローラにおいて前記否定指示を最初に受信するステップと、前記否定指示を前記制御システムに渡すステップとを含む、請求項1に記載の方法。
  12. ユニバーサルシリアルバス(USB)接続に結合されるように構成されるホストと、
    前記ホストおよび前記USB接続に関連付けられる制御システムとを備えるコンピューティングデバイスであって、前記制御システムは、
    複数のバルクエンドポイントのうちの少なくとも1つから、前記複数のバルクエンドポイントのうちの前記少なくとも1つが転送準備完了のデータを有しないことを指示する否定指示を受信し、
    前記否定指示に基づいて、前記複数のバルクエンドポイントのうちの他のエンドポイントとの前記USB接続を通してのバルクデータ転送を優先させるように構成される、コンピューティングデバイス。
  13. 前記否定指示はNAK信号を含む、請求項12に記載のコンピューティングデバイス。
  14. 前記制御システムはさらに、前記複数のバルクエンドポイントのそれぞれに、入手可能なデータを要求する問合せを送信するように構成される、請求項12に記載のコンピューティングデバイス。
  15. 前記制御システムは、前記否定指示に関連付けられる前記少なくとも1つのバルクエンドポイントをスキップすることによって優先させるように構成される、請求項12に記載のコンピューティングデバイス。
  16. 前記制御システムは前記ホストの外部にある、請求項12に記載のコンピューティングデバイス。
  17. 前記制御システムは前記ホストに組み込まれる、請求項12に記載のコンピューティングデバイス。
  18. 前記制御システムは、前記複数のバルクエンドポイントがいずれも転送すべきデータを有しない場合には、低電力モードに入るように構成される、請求項12に記載のコンピューティングデバイス。
  19. 前記ホストおよび前記制御システムは、集積回路(IC)に組み込まれる、請求項12に記載のコンピューティングデバイス。
  20. セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、定置データユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなるグループから選択されるデバイスに組み込まれる、請求項12に記載のコンピューティングデバイス。
  21. 前記制御システムに関連付けられる外部スケジューラをさらに備え、前記外部スケジューラは、前記否定指示を受信し、情報を前記制御システムに渡すように構成される、請求項12に記載のコンピューティングデバイス。
  22. ユニバーサルシリアルバス(USB)接続を通してのデータ転送を制御する方法であって、
    複数のバルクエンドポイントのそれぞれがホストに転送すべきデータを有しないと判断するステップと、
    未決フレームが1つまたは複数のインタラプト転送を含むと判断するステップと、
    前記未決フレームが始まる前に、インタラプトエンドポイントにインタラプト問合せを送信するステップとを含む、方法。
  23. インタラプト問合せを用いることなく、前記未決フレームを開始するステップをさらに含む、請求項22に記載の方法。
  24. 前記インタラプト問合せに応答してインタラプトデータが受信されない場合には、低電力モードに入るステップをさらに含む、請求項22に記載の方法。
  25. 前記複数のバルクエンドポイントのいずれかが前記ホストに転送すべきデータを有する場合には、バルクデータ転送を優先させるステップをさらに含む、請求項22に記載の方法。
  26. ユニバーサルシリアルバス(USB)接続に結合されるように構成されるホストと、
    前記ホストに関連付けられる制御システムとを備えるコンピューティングデバイスであって、前記制御システムは、
    複数のバルクエンドポイントのそれぞれが前記ホストに転送すべきデータを有しないと判断し、
    未決フレームが1つまたは複数のインタラプト転送を含むと判断し、
    前記未決フレームが始まる前に、前記USB接続を通してインタラプトエンドポイントにインタラプト問合せを送信するように構成される、コンピューティングデバイス。
JP2016572235A 2014-06-18 2015-06-17 ユニバーサルシリアルバス(usb)通信システムおよび方法 Pending JP2017520052A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/308,053 2014-06-18
US14/308,053 US9524260B2 (en) 2014-06-18 2014-06-18 Universal serial bus (USB) communication systems and methods
PCT/US2015/036210 WO2015195790A1 (en) 2014-06-18 2015-06-17 Universal serial bus (usb) communication systems and methods

Publications (2)

Publication Number Publication Date
JP2017520052A true JP2017520052A (ja) 2017-07-20
JP2017520052A5 JP2017520052A5 (ja) 2018-07-05

Family

ID=53496971

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016572235A Pending JP2017520052A (ja) 2014-06-18 2015-06-17 ユニバーサルシリアルバス(usb)通信システムおよび方法

Country Status (5)

Country Link
US (1) US9524260B2 (ja)
EP (1) EP3158460A1 (ja)
JP (1) JP2017520052A (ja)
CN (1) CN106489137A (ja)
WO (1) WO2015195790A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220111912A (ko) * 2021-02-03 2022-08-10 효성티앤에스 주식회사 금융자동화기기의 호스트와 디바이스 간 통신 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170024344A1 (en) * 2015-07-22 2017-01-26 Microchip Technology Incorporated Method and System for USB 2.0 Bandwidth Reservation
CN108628784B (zh) * 2018-04-28 2020-05-19 湖南大学 串行通信器及串行通信系统
CN110990323B (zh) * 2019-10-17 2023-09-15 尧芯微半导体(重庆)有限公司 一种优化的xhci调度方法
US11709791B2 (en) * 2020-09-21 2023-07-25 Icron Technologies Corporation Techniques for deconflicting USB traffic in an extension environment

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5140586A (en) * 1988-01-26 1992-08-18 E-Systems, Inc. Token associated data network communications protocol
JP2003218871A (ja) * 2002-01-17 2003-07-31 Sharp Corp ポーリング装置および通信装置
JP2005122372A (ja) * 2003-10-15 2005-05-12 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
JP2006120115A (ja) * 2004-09-22 2006-05-11 Seiko Epson Corp 情報機器及びその制御方法
JP2006216015A (ja) * 2004-12-03 2006-08-17 Microsoft Corp 無線usbハードウェアのスケジューリング
US20120084469A1 (en) * 2010-09-30 2012-04-05 Via Technologies, Inc. Usb transaction translator and a bulk transaction method
JP2013029884A (ja) * 2011-07-26 2013-02-07 Ricoh Co Ltd データ転送装置、画像投影装置、データ転送方法およびプログラム
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
JP2014052981A (ja) * 2012-09-10 2014-03-20 Renesas Electronics Corp Usbペリフェラル装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832492A (en) * 1995-09-05 1998-11-03 Compaq Computer Corporation Method of scheduling interrupts to the linked lists of transfer descriptors scheduled at intervals on a serial bus
US6311294B1 (en) * 1998-10-20 2001-10-30 Cypress Semiconductor Corp. Device and method for efficient bulk data retrieval using a universal serial bus
US7023868B2 (en) * 1999-04-13 2006-04-04 Broadcom Corporation Voice gateway with downstream voice synchronization
EP1102171A3 (en) 1999-11-22 2004-09-08 Texas Instruments Incorporated Universal serial bus network peripheral device
US6718412B2 (en) 2000-12-14 2004-04-06 Agilent Technologies, Inc. Apparatus and method for universal serial bus communications
CA2345596C (en) * 2001-04-27 2007-12-04 Icron Systems Inc. Method and apparatus for extending the range of the universal serial bus protocol
US20090024746A1 (en) * 2003-09-25 2009-01-22 Eric Welch Method and apparatus for host controller operations over a network
US7600843B2 (en) * 2004-05-27 2009-10-13 Silverbrook Research Pty Ltd Printer controller for controlling a printhead module based on thermal sensing
US7640378B2 (en) * 2005-03-11 2009-12-29 Icron Technologies Corporation Method and apparatus for improving the performance of USB mass storage devices in the presence of long transmission delays
US8560753B1 (en) * 2005-03-30 2013-10-15 Teradici Corporation Method and apparatus for remote input/output in a computer system
US20060277330A1 (en) 2005-06-01 2006-12-07 Wilhelmus Diepstraten Techniques for managing priority queues and escalation considerations in USB wireless communication systems
TWI297439B (en) 2006-01-20 2008-06-01 Via Tech Inc Method for exchanging data with an usb device
US8169185B2 (en) * 2006-01-31 2012-05-01 Mojo Mobility, Inc. System and method for inductive charging of portable devices
TW200900933A (en) 2007-03-15 2009-01-01 Wionics Research Virtual pipe for wire adapter communications
US20100198999A1 (en) 2009-02-05 2010-08-05 Qualcomm Incorporated Method and system for wireless usb transfer of isochronous data using bulk data transfer type
US8200858B1 (en) * 2009-06-08 2012-06-12 Wisair Ltd. System and a method for quality of service in USB and WUSB endpoints

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5140586A (en) * 1988-01-26 1992-08-18 E-Systems, Inc. Token associated data network communications protocol
JP2003218871A (ja) * 2002-01-17 2003-07-31 Sharp Corp ポーリング装置および通信装置
JP2005122372A (ja) * 2003-10-15 2005-05-12 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
JP2006120115A (ja) * 2004-09-22 2006-05-11 Seiko Epson Corp 情報機器及びその制御方法
JP2006216015A (ja) * 2004-12-03 2006-08-17 Microsoft Corp 無線usbハードウェアのスケジューリング
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
US20120084469A1 (en) * 2010-09-30 2012-04-05 Via Technologies, Inc. Usb transaction translator and a bulk transaction method
JP2013029884A (ja) * 2011-07-26 2013-02-07 Ricoh Co Ltd データ転送装置、画像投影装置、データ転送方法およびプログラム
JP2014052981A (ja) * 2012-09-10 2014-03-20 Renesas Electronics Corp Usbペリフェラル装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220111912A (ko) * 2021-02-03 2022-08-10 효성티앤에스 주식회사 금융자동화기기의 호스트와 디바이스 간 통신 방법
WO2022169183A1 (ko) * 2021-02-03 2022-08-11 효성티앤에스 주식회사 금융자동화기기의 호스트와 디바이스 간 통신 방법
KR102487899B1 (ko) 2021-02-03 2023-01-12 효성티앤에스 주식회사 금융자동화기기의 호스트와 디바이스 간 통신 방법

Also Published As

Publication number Publication date
CN106489137A (zh) 2017-03-08
EP3158460A1 (en) 2017-04-26
US9524260B2 (en) 2016-12-20
WO2015195790A1 (en) 2015-12-23
US20150370733A1 (en) 2015-12-24

Similar Documents

Publication Publication Date Title
RU2633126C2 (ru) Усиление механизма перечисления и/или конфигурации одного протокола межсоединений для другого протокола межсоединений
EP3044688B1 (en) Providing command queuing in embedded memories
JP2017520052A (ja) ユニバーサルシリアルバス(usb)通信システムおよび方法
US8892800B2 (en) Apparatuses for inter-component communication including slave component initiated transaction
JP4837659B2 (ja) 分割トランザクションを処理するためのバス・コントローラ
US10572410B2 (en) Function-specific communication on a multi-drop bus for coexistence management
EP3844628B1 (en) Slave-to-slave direct communication
US20200192838A1 (en) Extended message signaled interrupts (msi) message data
US7853748B2 (en) Method and apparatus to obtain code data for USB device
CN103353851A (zh) 一种管理任务的方法和设备
JP2005122372A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
CN108885588B (zh) 基于硬件的转译后备缓冲器(tlb)失效
US20160077986A1 (en) Electronic apparatus providing real-time switching and sharing of usb electronic devices among hosts
US7058747B2 (en) Bus system and bus interface for connection to a bus
WO2022227565A1 (zh) 中断控制器、中断控制方法、芯片、计算机设备以及介质
US10176133B2 (en) Smart device with no AP
US7043589B2 (en) Bus system and bus interface
CN107408092B (zh) 用于多端口物理层(phy)的锁相环(pll)的共享控制
CN103744816B (zh) 通用串行总线设备以及其数据传输方法
CN104850517A (zh) 一种dma传输报文数据的方法及装置
EP4318250A1 (en) Management system, processing chip, apparatus, device, and method
CN107818064B (zh) 支持主从变换的通用串行总线的集线器的运作方法
CN117880364A (zh) 一种数据传输方法、系统以及相关装置
TW201321986A (zh) 降低傳輸延遲的方法及其控制模組

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180518

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190415

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200106